[
  {
    "path": ".idea/compiler.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"CompilerConfiguration\">\n    <annotationProcessing>\n      <profile name=\"Maven default annotation processors profile\" enabled=\"true\">\n        <sourceOutputDir name=\"target/generated-sources/annotations\" />\n        <sourceTestOutputDir name=\"target/generated-test-sources/test-annotations\" />\n        <outputRelativeToContentRoot value=\"true\" />\n        <module name=\"kkvideo-admin-common\" />\n        <module name=\"kkvideo-admin-dao\" />\n        <module name=\"kkvideo-admin-pojo\" />\n        <module name=\"kkvideo-admin-service\" />\n        <module name=\"kkvideo-admin-web\" />\n        <module name=\"kkvideoapi\" />\n        <module name=\"kkvideocommon\" />\n        <module name=\"kkvideodao\" />\n        <module name=\"kkvideopojo\" />\n        <module name=\"kkvideoservice\" />\n      </profile>\n    </annotationProcessing>\n    <bytecodeTargetLevel>\n      <module name=\"kkvideoadmin\" target=\"1.8\" />\n    </bytecodeTargetLevel>\n  </component>\n</project>"
  },
  {
    "path": ".idea/encodings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Encoding\" defaultCharsetForPropertiesFiles=\"UTF-8\">\n    <file url=\"file://$PROJECT_DIR$\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kk-video-api\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kk-video-common\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kk-video-dao\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kk-video-pojo\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kk-video-service\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kkvideo-admin\" charset=\"UTF-8\" />\n  </component>\n</project>"
  },
  {
    "path": ".idea/inspectionProfiles/Project_Default.xml",
    "content": "<component name=\"InspectionProjectProfileManager\">\n  <profile version=\"1.0\">\n    <option name=\"myName\" value=\"Project Default\" />\n    <inspection_tool class=\"JavaDoc\" enabled=\"true\" level=\"WARNING\" enabled_by_default=\"true\">\n      <option name=\"TOP_LEVEL_CLASS_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"\" />\n        </value>\n      </option>\n      <option name=\"INNER_CLASS_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"\" />\n        </value>\n      </option>\n      <option name=\"METHOD_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"@return@param@throws or @exception\" />\n        </value>\n      </option>\n      <option name=\"FIELD_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"\" />\n        </value>\n      </option>\n      <option name=\"IGNORE_DEPRECATED\" value=\"false\" />\n      <option name=\"IGNORE_JAVADOC_PERIOD\" value=\"true\" />\n      <option name=\"IGNORE_DUPLICATED_THROWS\" value=\"false\" />\n      <option name=\"IGNORE_POINT_TO_ITSELF\" value=\"false\" />\n      <option name=\"myAdditionalJavadocTags\" value=\"date\" />\n    </inspection_tool>\n  </profile>\n</component>"
  },
  {
    "path": ".idea/misc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ExternalStorageConfigurationManager\" enabled=\"true\" />\n  <component name=\"FrameworkDetectionExcludesConfiguration\">\n    <file type=\"web\" url=\"file://$PROJECT_DIR$/kk-video-api\" />\n    <file type=\"web\" url=\"file://$PROJECT_DIR$/kkvideo-admin/kkvideo-admin-web\" />\n  </component>\n  <component name=\"MavenProjectsManager\">\n    <option name=\"originalFiles\">\n      <list>\n        <option value=\"$PROJECT_DIR$/pom.xml\" />\n      </list>\n    </option>\n    <option name=\"ignoredFiles\">\n      <set>\n        <option value=\"$PROJECT_DIR$/kkvideo-admin/pom.xml\" />\n      </set>\n    </option>\n  </component>\n  <component name=\"ProjectRootManager\" version=\"2\" languageLevel=\"JDK_1_8\" project-jdk-name=\"1.8\" project-jdk-type=\"JavaSDK\">\n    <output url=\"file://$PROJECT_DIR$/out\" />\n  </component>\n</project>"
  },
  {
    "path": ".idea/uiDesigner.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Palette2\">\n    <group name=\"Swing\">\n      <item class=\"com.intellij.uiDesigner.HSpacer\" tooltip-text=\"Horizontal Spacer\" icon=\"/com/intellij/uiDesigner/icons/hspacer.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"1\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"com.intellij.uiDesigner.VSpacer\" tooltip-text=\"Vertical Spacer\" icon=\"/com/intellij/uiDesigner/icons/vspacer.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"1\" anchor=\"0\" fill=\"2\" />\n      </item>\n      <item class=\"javax.swing.JPanel\" icon=\"/com/intellij/uiDesigner/icons/panel.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JScrollPane\" icon=\"/com/intellij/uiDesigner/icons/scrollPane.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"7\" hsize-policy=\"7\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JButton\" icon=\"/com/intellij/uiDesigner/icons/button.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"0\" fill=\"1\" />\n        <initial-values>\n          <property name=\"text\" value=\"Button\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JRadioButton\" icon=\"/com/intellij/uiDesigner/icons/radioButton.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"RadioButton\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JCheckBox\" icon=\"/com/intellij/uiDesigner/icons/checkBox.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"CheckBox\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JLabel\" icon=\"/com/intellij/uiDesigner/icons/label.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"0\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"Label\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JTextField\" icon=\"/com/intellij/uiDesigner/icons/textField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JPasswordField\" icon=\"/com/intellij/uiDesigner/icons/passwordField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JFormattedTextField\" icon=\"/com/intellij/uiDesigner/icons/formattedTextField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTextArea\" icon=\"/com/intellij/uiDesigner/icons/textArea.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTextPane\" icon=\"/com/intellij/uiDesigner/icons/textPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JEditorPane\" icon=\"/com/intellij/uiDesigner/icons/editorPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JComboBox\" icon=\"/com/intellij/uiDesigner/icons/comboBox.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"2\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JTable\" icon=\"/com/intellij/uiDesigner/icons/table.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JList\" icon=\"/com/intellij/uiDesigner/icons/list.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"2\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTree\" icon=\"/com/intellij/uiDesigner/icons/tree.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTabbedPane\" icon=\"/com/intellij/uiDesigner/icons/tabbedPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"200\" height=\"200\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JSplitPane\" icon=\"/com/intellij/uiDesigner/icons/splitPane.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"200\" height=\"200\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JSpinner\" icon=\"/com/intellij/uiDesigner/icons/spinner.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JSlider\" icon=\"/com/intellij/uiDesigner/icons/slider.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JSeparator\" icon=\"/com/intellij/uiDesigner/icons/separator.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JProgressBar\" icon=\"/com/intellij/uiDesigner/icons/progressbar.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JToolBar\" icon=\"/com/intellij/uiDesigner/icons/toolbar.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\">\n          <preferred-size width=\"-1\" height=\"20\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JToolBar$Separator\" icon=\"/com/intellij/uiDesigner/icons/toolbarSeparator.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"0\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JScrollBar\" icon=\"/com/intellij/uiDesigner/icons/scrollbar.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"0\" anchor=\"0\" fill=\"2\" />\n      </item>\n    </group>\n  </component>\n</project>"
  },
  {
    "path": ".idea/vcs.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"VcsDirectoryMappings\">\n    <mapping directory=\"$PROJECT_DIR$\" vcs=\"Git\" />\n  </component>\n</project>"
  },
  {
    "path": ".idea/workspace.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"BookmarkManager\">\n    <bookmark url=\"file://$PROJECT_DIR$/kk-video-pojo/src/main/java/com/kkvideo/pojo/Users.java\" description=\"*/\" line=\"24\" />\n  </component>\n  <component name=\"ChangeListManager\">\n    <list default=\"true\" id=\"283d249b-ec15-434d-9bbd-9f5518e4ac10\" name=\"Default\" comment=\"add kkvideo-admin\">\n      <change beforePath=\"$PROJECT_DIR$/.idea/workspace.xml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/.idea/workspace.xml\" afterDir=\"false\" />\n      <change beforePath=\"$PROJECT_DIR$/kkvideo.iml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/kk-video-wechat.iml\" afterDir=\"false\" />\n      <change beforePath=\"$PROJECT_DIR$/pom.xml\" beforeDir=\"false\" afterPath=\"$PROJECT_DIR$/pom.xml\" afterDir=\"false\" />\n    </list>\n    <option name=\"TRACKING_ENABLED\" value=\"true\" />\n    <option name=\"SHOW_DIALOG\" value=\"false\" />\n    <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\n    <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\n    <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\n  </component>\n  <component name=\"CompilerWorkspaceConfiguration\">\n    <option name=\"MAKE_PROJECT_ON_SAVE\" value=\"true\" />\n  </component>\n  <component name=\"FileEditorManager\">\n    <leaf SIDE_TABS_SIZE_LIMIT_KEY=\"300\">\n      <file leaf-file-name=\"kk-video-wechat.iml\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/kk-video-wechat.iml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\" />\n        </entry>\n      </file>\n      <file leaf-file-name=\"README.md\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/README.md\">\n          <provider selected=\"true\" editor-type-id=\"split-provider[text-editor;markdown-preview-editor]\">\n            <state split_layout=\"SPLIT\">\n              <first_editor relative-caret-position=\"32\">\n                <caret line=\"2\" lean-forward=\"true\" selection-start-line=\"2\" selection-end-line=\"2\" />\n              </first_editor>\n              <second_editor />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"pom.xml\" pinned=\"false\" current-in-tab=\"true\">\n        <entry file=\"file://$PROJECT_DIR$/pom.xml\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"288\">\n              <caret line=\"18\" column=\"37\" selection-start-line=\"18\" selection-start-column=\"37\" selection-end-line=\"18\" selection-end-column=\"37\" />\n            </state>\n          </provider>\n        </entry>\n      </file>\n    </leaf>\n  </component>\n  <component name=\"Git.Settings\">\n    <option name=\"RECENT_GIT_ROOT_PATH\" value=\"$PROJECT_DIR$\" />\n  </component>\n  <component name=\"IdeDocumentHistory\">\n    <option name=\"CHANGED_PATHS\">\n      <list>\n        <option value=\"$PROJECT_DIR$/pom.xml\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"JsBuildToolGruntFileManager\" detection-done=\"true\" sorting=\"DEFINITION_ORDER\" />\n  <component name=\"JsBuildToolPackageJson\" detection-done=\"true\" sorting=\"DEFINITION_ORDER\" />\n  <component name=\"JsGulpfileManager\">\n    <detection-done>true</detection-done>\n    <sorting>DEFINITION_ORDER</sorting>\n  </component>\n  <component name=\"MavenImportPreferences\">\n    <option name=\"generalSettings\">\n      <MavenGeneralSettings>\n        <option name=\"mavenHome\" value=\"E:/maven/apache-maven-3.3.9\" />\n        <option name=\"userSettingsFile\" value=\"E:\\maven\\apache-maven-3.3.9\\conf\\settings.xml\" />\n      </MavenGeneralSettings>\n    </option>\n  </component>\n  <component name=\"MavenRunner\">\n    <option name=\"vmOptions\" value=\"-DarchetypeCatalog=internal\" />\n  </component>\n  <component name=\"NodePackageJsonFileManager\">\n    <packageJsonPaths>\n      <path value=\"$PROJECT_DIR$/kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/package.json\" />\n      <path value=\"$PROJECT_DIR$/kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/package.json\" />\n      <path value=\"$PROJECT_DIR$/kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/package.json\" />\n      <path value=\"$PROJECT_DIR$/kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/package.json\" />\n      <path value=\"$PROJECT_DIR$/kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/package.json\" />\n      <path value=\"$PROJECT_DIR$/kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/package.json\" />\n    </packageJsonPaths>\n  </component>\n  <component name=\"ProjectFrameBounds\" extendedState=\"6\">\n    <option name=\"x\" value=\"25\" />\n    <option name=\"y\" value=\"52\" />\n    <option name=\"width\" value=\"1940\" />\n    <option name=\"height\" value=\"1103\" />\n  </component>\n  <component name=\"ProjectLevelVcsManager\" settingsEditedManually=\"true\">\n    <ConfirmationsSetting value=\"1\" id=\"Add\" />\n  </component>\n  <component name=\"ProjectView\">\n    <navigator proportions=\"\" version=\"1\">\n      <foldersAlwaysOnTop value=\"true\" />\n    </navigator>\n    <panes>\n      <pane id=\"AndroidView\" />\n      <pane id=\"ProjectPane\">\n        <subPane>\n          <expand>\n            <path>\n              <item name=\"kkvideo\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n          </expand>\n          <select />\n        </subPane>\n      </pane>\n      <pane id=\"PackagesPane\" />\n      <pane id=\"Scope\" />\n    </panes>\n  </component>\n  <component name=\"RunDashboard\">\n    <option name=\"ruleStates\">\n      <list>\n        <RuleState>\n          <option name=\"name\" value=\"ConfigurationTypeDashboardGroupingRule\" />\n        </RuleState>\n        <RuleState>\n          <option name=\"name\" value=\"StatusDashboardGroupingRule\" />\n        </RuleState>\n      </list>\n    </option>\n  </component>\n  <component name=\"RunManager\">\n    <configuration default=\"true\" type=\"Application\" factoryName=\"Application\">\n      <option name=\"WORKING_DIRECTORY\" value=\"$PROJECT_DIR$\" />\n    </configuration>\n    <configuration default=\"true\" type=\"JUnit\" factoryName=\"JUnit\">\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"class\" />\n      <option name=\"VM_PARAMETERS\" value=\"-ea\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"%MODULE_WORKING_DIR%\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"singleModule\" />\n      </option>\n      <patterns />\n    </configuration>\n    <configuration default=\"true\" type=\"TestNG\" factoryName=\"TestNG\">\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"SUITE_NAME\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"GROUP_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"CLASS\" />\n      <option name=\"VM_PARAMETERS\" value=\"-ea\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"%MODULE_WORKING_DIR%\" />\n      <option name=\"OUTPUT_DIRECTORY\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"singleModule\" />\n      </option>\n      <option name=\"USE_DEFAULT_REPORTERS\" value=\"false\" />\n      <option name=\"PROPERTIES_FILE\" />\n      <properties />\n      <listeners />\n    </configuration>\n  </component>\n  <component name=\"SvnConfiguration\">\n    <configuration />\n  </component>\n  <component name=\"TaskManager\">\n    <task active=\"true\" id=\"Default\" summary=\"Default task\">\n      <changelist id=\"283d249b-ec15-434d-9bbd-9f5518e4ac10\" name=\"Default\" comment=\"\" />\n      <created>1528628278006</created>\n      <option name=\"number\" value=\"Default\" />\n      <option name=\"presentableId\" value=\"Default\" />\n      <updated>1528628278006</updated>\n      <workItem from=\"1528628279880\" duration=\"13399000\" />\n      <workItem from=\"1528693994331\" duration=\"29900000\" />\n      <workItem from=\"1528859253759\" duration=\"2047000\" />\n      <workItem from=\"1528898078718\" duration=\"12235000\" />\n      <workItem from=\"1529029441543\" duration=\"4171000\" />\n      <workItem from=\"1529118327791\" duration=\"7665000\" />\n      <workItem from=\"1529465784285\" duration=\"12605000\" />\n      <workItem from=\"1529492469656\" duration=\"2194000\" />\n      <workItem from=\"1529550578931\" duration=\"4903000\" />\n      <workItem from=\"1529641658137\" duration=\"65000\" />\n      <workItem from=\"1529663107542\" duration=\"6000\" />\n      <workItem from=\"1529680455110\" duration=\"4782000\" />\n      <workItem from=\"1529735647379\" duration=\"14515000\" />\n      <workItem from=\"1529830338673\" duration=\"1093000\" />\n      <workItem from=\"1529834199822\" duration=\"13239000\" />\n      <workItem from=\"1529908693569\" duration=\"14000\" />\n      <workItem from=\"1529915031381\" duration=\"1610000\" />\n      <workItem from=\"1529942766961\" duration=\"4297000\" />\n    </task>\n    <task id=\"LOCAL-00001\" summary=\"add kkvideo-admin\">\n      <created>1529859567218</created>\n      <option name=\"number\" value=\"00001\" />\n      <option name=\"presentableId\" value=\"LOCAL-00001\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1529859567218</updated>\n    </task>\n    <task id=\"LOCAL-00002\" summary=\"add kkvideo-admin\">\n      <created>1529943810614</created>\n      <option name=\"number\" value=\"00002\" />\n      <option name=\"presentableId\" value=\"LOCAL-00002\" />\n      <option name=\"project\" value=\"LOCAL\" />\n      <updated>1529943810614</updated>\n    </task>\n    <option name=\"localTasksCounter\" value=\"3\" />\n    <servers />\n  </component>\n  <component name=\"TimeTrackingManager\">\n    <option name=\"totallyTimeSpent\" value=\"1479000\" />\n  </component>\n  <component name=\"ToolWindowManager\">\n    <frame x=\"-7\" y=\"-7\" width=\"1550\" height=\"838\" extended-state=\"6\" />\n    <editor active=\"true\" />\n    <layout>\n      <window_info anchor=\"right\" id=\"Palette\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Event Log\" order=\"15\" sideWeight=\"0.50067025\" side_tool=\"true\" weight=\"0.56918687\" />\n      <window_info anchor=\"right\" id=\"Maven Projects\" order=\"9\" weight=\"0.3297587\" />\n      <window_info anchor=\"bottom\" id=\"Database Changes\" order=\"13\" show_stripe_button=\"false\" />\n      <window_info id=\"Capture Tool\" order=\"7\" />\n      <window_info id=\"Designer\" order=\"2\" />\n      <window_info anchor=\"right\" id=\"Database\" order=\"5\" weight=\"0.3297587\" />\n      <window_info id=\"Structure\" order=\"1\" side_tool=\"true\" weight=\"0.25\" />\n      <window_info anchor=\"right\" id=\"Ant Build\" order=\"1\" weight=\"0.25\" />\n      <window_info id=\"UI Designer\" order=\"4\" />\n      <window_info anchor=\"bottom\" id=\"Debug\" order=\"3\" weight=\"0.39942938\" />\n      <window_info anchor=\"bottom\" id=\"TODO\" order=\"6\" weight=\"0.32952926\" />\n      <window_info anchor=\"bottom\" id=\"Messages\" order=\"10\" weight=\"0.32952926\" />\n      <window_info anchor=\"right\" id=\"Palette&#9;\" order=\"6\" />\n      <window_info id=\"Image Layers\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Java Enterprise\" order=\"11\" weight=\"0.32952926\" />\n      <window_info anchor=\"right\" id=\"Capture Analysis\" order=\"4\" />\n      <window_info anchor=\"bottom\" id=\"Version Control\" order=\"14\" weight=\"0.6134094\" />\n      <window_info anchor=\"bottom\" id=\"Run\" order=\"2\" weight=\"0.35520685\" />\n      <window_info anchor=\"bottom\" id=\"Spring\" order=\"8\" weight=\"0.32952926\" />\n      <window_info anchor=\"bottom\" id=\"Terminal\" order=\"9\" sideWeight=\"0.49932975\" visible=\"true\" weight=\"0.3366619\" />\n      <window_info active=\"true\" content_ui=\"combo\" id=\"Project\" order=\"0\" visible=\"true\" weight=\"0.28753352\" />\n      <window_info anchor=\"bottom\" id=\"Problems\" order=\"12\" />\n      <window_info anchor=\"right\" id=\"Bean Validation\" order=\"8\" weight=\"0.3297587\" />\n      <window_info id=\"Web\" order=\"6\" side_tool=\"true\" />\n      <window_info anchor=\"right\" id=\"Theme Preview\" order=\"7\" />\n      <window_info id=\"Favorites\" order=\"5\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Inspection\" order=\"5\" weight=\"0.4\" />\n      <window_info anchor=\"right\" id=\"Commander\" internal_type=\"SLIDING\" order=\"0\" type=\"SLIDING\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"Find\" order=\"1\" />\n      <window_info anchor=\"bottom\" id=\"Cvs\" order=\"4\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Message\" order=\"0\" />\n      <window_info anchor=\"right\" content_ui=\"combo\" id=\"Hierarchy\" order=\"2\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Application Servers\" order=\"7\" weight=\"0.32952926\" />\n    </layout>\n    <layout-to-restore>\n      <window_info anchor=\"bottom\" id=\"Application Servers\" order=\"7\" weight=\"0.32952926\" />\n      <window_info id=\"Designer\" order=\"2\" />\n      <window_info anchor=\"right\" id=\"Palette\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Spring\" order=\"8\" />\n      <window_info id=\"Image Layers\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Run\" order=\"2\" visible=\"true\" weight=\"0.3280142\" />\n      <window_info anchor=\"bottom\" id=\"Cvs\" order=\"4\" weight=\"0.25\" />\n      <window_info anchor=\"right\" id=\"Ant Build\" order=\"1\" weight=\"0.25\" />\n      <window_info id=\"UI Designer\" order=\"4\" />\n      <window_info id=\"Favorites\" order=\"5\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Terminal\" order=\"9\" weight=\"0.3281027\" />\n      <window_info id=\"Capture Tool\" order=\"7\" />\n      <window_info anchor=\"right\" id=\"Capture Analysis\" order=\"4\" />\n      <window_info anchor=\"right\" id=\"Commander\" internal_type=\"SLIDING\" order=\"0\" type=\"SLIDING\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"Event Log\" order=\"15\" side_tool=\"true\" weight=\"0.32905984\" />\n      <window_info anchor=\"bottom\" id=\"Messages\" order=\"10\" weight=\"0.32952926\" />\n      <window_info anchor=\"bottom\" id=\"TODO\" order=\"6\" weight=\"0.32952926\" />\n      <window_info anchor=\"right\" content_ui=\"combo\" id=\"Hierarchy\" order=\"2\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Problems\" order=\"12\" />\n      <window_info anchor=\"bottom\" id=\"Java Enterprise\" order=\"11\" />\n      <window_info anchor=\"bottom\" id=\"Database Changes\" order=\"13\" show_stripe_button=\"false\" />\n      <window_info anchor=\"bottom\" id=\"Version Control\" order=\"14\" weight=\"0.32952926\" />\n      <window_info anchor=\"right\" id=\"Maven Projects\" order=\"9\" weight=\"0.3297587\" />\n      <window_info active=\"true\" content_ui=\"combo\" id=\"Project\" order=\"0\" visible=\"true\" weight=\"0.38429055\" />\n      <window_info anchor=\"right\" id=\"Database\" order=\"5\" weight=\"0.3297587\" />\n      <window_info anchor=\"bottom\" id=\"Message\" order=\"0\" />\n      <window_info id=\"Web\" order=\"6\" side_tool=\"true\" />\n      <window_info anchor=\"right\" id=\"Palette&#9;\" order=\"6\" />\n      <window_info anchor=\"right\" id=\"Theme Preview\" order=\"7\" />\n      <window_info id=\"Structure\" order=\"1\" side_tool=\"true\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Inspection\" order=\"5\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"Find\" order=\"1\" />\n      <window_info anchor=\"right\" id=\"Bean Validation\" order=\"8\" weight=\"0.3297587\" />\n      <window_info anchor=\"bottom\" id=\"Debug\" order=\"3\" weight=\"0.4\" />\n    </layout-to-restore>\n  </component>\n  <component name=\"Vcs.Log.Tabs.Properties\">\n    <option name=\"TAB_STATES\">\n      <map>\n        <entry key=\"MAIN\">\n          <value>\n            <State>\n              <option name=\"RECENTLY_FILTERED_USER_GROUPS\">\n                <collection />\n              </option>\n              <option name=\"RECENTLY_FILTERED_BRANCH_GROUPS\">\n                <collection />\n              </option>\n              <option name=\"COLUMN_ORDER\">\n                <list>\n                  <option value=\"0\" />\n                  <option value=\"1\" />\n                  <option value=\"2\" />\n                  <option value=\"3\" />\n                </list>\n              </option>\n            </State>\n          </value>\n        </entry>\n      </map>\n    </option>\n  </component>\n  <component name=\"VcsContentAnnotationSettings\">\n    <option name=\"myLimit\" value=\"2678400000\" />\n  </component>\n  <component name=\"VcsManagerConfiguration\">\n    <MESSAGE value=\"add kkvideo-admin\" />\n    <option name=\"LAST_COMMIT_MESSAGE\" value=\"add kkvideo-admin\" />\n  </component>\n  <component name=\"XDebuggerManager\">\n    <breakpoint-manager>\n      <option name=\"time\" value=\"2\" />\n    </breakpoint-manager>\n  </component>\n  <component name=\"editorHistoryManager\">\n    <entry file=\"file://$PROJECT_DIR$/kk-video-common/src/main/java/org/n3r/idworker/Sid.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"48\">\n          <caret line=\"3\" column=\"10\" lean-forward=\"true\" selection-start-line=\"3\" selection-start-column=\"10\" selection-end-line=\"3\" selection-end-column=\"10\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/resources/mapper/SearchRecordsMapper.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"208\">\n          <caret line=\"13\" column=\"84\" lean-forward=\"true\" selection-start-line=\"13\" selection-start-column=\"84\" selection-end-line=\"13\" selection-end-column=\"84\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/java/com/kkvideo/mapper/SearchRecordsMapper.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"80\">\n          <caret line=\"8\" selection-start-line=\"8\" selection-end-line=\"8\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-pojo/src/main/java/com/kkvideo/pojo/Videos.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"288\">\n          <caret line=\"26\" column=\"28\" selection-start-line=\"26\" selection-start-column=\"19\" selection-end-line=\"26\" selection-end-column=\"28\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/interceptor/UserInterceptor.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-107\">\n          <caret line=\"31\" column=\"61\" selection-start-line=\"31\" selection-start-column=\"46\" selection-end-line=\"31\" selection-end-column=\"61\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/resources/mapper/UsersMapper.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"175\">\n          <caret line=\"24\" column=\"16\" selection-start-line=\"24\" selection-start-column=\"16\" selection-end-line=\"24\" selection-end-column=\"16\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/java/com/kkvideo/mapper/UsersMapper.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"136\">\n          <caret line=\"18\" column=\"26\" selection-start-line=\"18\" selection-start-column=\"21\" selection-end-line=\"18\" selection-end-column=\"26\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-pojo/src/main/java/com/kkvideo/vo/UsersVo.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"1083\">\n          <caret line=\"222\" column=\"31\" selection-start-line=\"222\" selection-start-column=\"31\" selection-end-line=\"222\" selection-end-column=\"31\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/java/com/kkvideo/mapper/VideosMapperCustom.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"380\">\n          <caret line=\"38\" column=\"24\" selection-start-line=\"38\" selection-start-column=\"24\" selection-end-line=\"38\" selection-end-column=\"24\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/resources/mapper/VideosMapperCustom.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"944\">\n          <caret line=\"59\" lean-forward=\"true\" selection-start-line=\"59\" selection-end-line=\"59\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-service/src/main/java/com/kkvideo/service/UserService.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"832\">\n          <caret line=\"53\" column=\"19\" selection-start-line=\"53\" selection-start-column=\"19\" selection-end-line=\"53\" selection-end-column=\"19\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-pojo/src/main/java/com/kkvideo/vo/PublisherVideo.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"80\">\n          <caret line=\"5\" column=\"32\" selection-start-line=\"5\" selection-start-column=\"19\" selection-end-line=\"5\" selection-end-column=\"32\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-common/src/main/java/com/kkvideo/utils/RedisOperator.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"240\">\n          <caret line=\"21\" column=\"4\" lean-forward=\"true\" selection-start-line=\"21\" selection-start-column=\"4\" selection-end-line=\"21\" selection-end-column=\"4\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-common/src/main/java/com/kkvideo/utils/TimeAgoUtils.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"64\">\n          <caret line=\"5\" column=\"13\" selection-start-line=\"5\" selection-start-column=\"13\" selection-end-line=\"5\" selection-end-column=\"13\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-common/src/main/java/com/kkvideo/utils/MyMapper.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"96\">\n          <caret line=\"29\" column=\"17\" selection-start-line=\"29\" selection-start-column=\"17\" selection-end-line=\"29\" selection-end-column=\"17\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/resources/mapper/CommentsMapperCustom.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"208\">\n          <caret line=\"13\" column=\"71\" lean-forward=\"true\" selection-start-line=\"13\" selection-start-column=\"71\" selection-end-line=\"13\" selection-end-column=\"71\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-dao/src/main/java/com/kkvideo/mapper/CommentsMapperCustom.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"256\">\n          <caret line=\"16\" column=\"1\" lean-forward=\"true\" selection-start-line=\"16\" selection-start-column=\"1\" selection-end-line=\"16\" selection-end-column=\"1\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/controller/BgmController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"256\">\n          <caret line=\"25\" column=\"34\" lean-forward=\"true\" selection-start-line=\"25\" selection-start-column=\"34\" selection-end-line=\"25\" selection-end-column=\"34\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/controller/RegistLoginController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"145\">\n          <caret line=\"91\" column=\"11\" lean-forward=\"true\" selection-start-line=\"91\" selection-start-column=\"8\" selection-end-line=\"91\" selection-end-column=\"13\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-pojo/src/main/java/com/kkvideo/pojo/UsersReport.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-951\">\n          <caret line=\"45\" column=\"23\" selection-start-line=\"45\" selection-start-column=\"18\" selection-end-line=\"45\" selection-end-column=\"23\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-service/src/main/java/com/kkvideo/service/VideoService.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"411\">\n          <caret line=\"63\" column=\"16\" selection-start-line=\"63\" selection-start-column=\"16\" selection-end-line=\"63\" selection-end-column=\"16\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-pojo/src/main/java/com/kkvideo/pojo/Comments.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"149\">\n          <caret line=\"102\" column=\"25\" selection-start-line=\"102\" selection-start-column=\"15\" selection-end-line=\"102\" selection-end-column=\"25\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-service/src/main/java/com/kkvideo/service/BgmService.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"224\">\n          <caret line=\"17\" column=\"40\" selection-start-line=\"17\" selection-start-column=\"40\" selection-end-line=\"17\" selection-end-column=\"40\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-service/src/main/java/com/kkvideo/service/impl/BgmServiceImpl.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"224\">\n          <caret line=\"22\" column=\"32\" lean-forward=\"true\" selection-start-line=\"22\" selection-start-column=\"32\" selection-end-line=\"22\" selection-end-column=\"32\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-service/src/main/java/com/kkvideo/service/impl/VideoServiceImpl.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"300\">\n          <caret line=\"62\" column=\"36\" lean-forward=\"true\" selection-start-line=\"62\" selection-start-column=\"36\" selection-end-line=\"62\" selection-end-column=\"36\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-service/src/main/java/com/kkvideo/service/impl/UserServiceImpl.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"307\">\n          <caret line=\"177\" selection-start-line=\"177\" selection-end-line=\"177\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/WarStartApplication.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"256\">\n          <caret line=\"16\" column=\"5\" lean-forward=\"true\" selection-start-line=\"16\" selection-start-column=\"5\" selection-end-line=\"16\" selection-end-column=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/WebMvcConfig.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"368\">\n          <caret line=\"30\" column=\"25\" selection-start-line=\"30\" selection-start-column=\"25\" selection-end-line=\"30\" selection-end-column=\"25\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/Application.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"80\">\n          <caret line=\"8\" column=\"46\" selection-start-line=\"8\" selection-start-column=\"40\" selection-end-line=\"8\" selection-end-column=\"46\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-common/src/main/java/com/kkvideo/utils/FetchVideoCover.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"954\">\n          <caret line=\"80\" column=\"40\" selection-start-line=\"80\" selection-start-column=\"36\" selection-end-line=\"80\" selection-end-column=\"40\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/pom.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"160\">\n          <caret line=\"10\" column=\"18\" selection-start-line=\"10\" selection-start-column=\"18\" selection-end-line=\"10\" selection-end-column=\"18\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/controller/UserController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"528\">\n          <caret line=\"63\" column=\"21\" lean-forward=\"true\" selection-start-line=\"63\" selection-start-column=\"21\" selection-end-line=\"63\" selection-end-column=\"21\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/resources/application.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"528\">\n          <caret line=\"33\" column=\"34\" selection-start-line=\"33\" selection-start-column=\"27\" selection-end-line=\"33\" selection-end-column=\"34\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$MAVEN_REPOSITORY$/org/springframework/boot/spring-boot/1.5.12.RELEASE/spring-boot-1.5.12.RELEASE.jar!/org/springframework/boot/context/properties/ConfigurationProperties.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"144\">\n          <caret line=\"17\" column=\"18\" selection-start-line=\"17\" selection-start-column=\"18\" selection-end-line=\"17\" selection-end-column=\"18\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/cofig/ResourceConfig.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"96\">\n          <caret line=\"8\" column=\"39\" selection-start-line=\"8\" selection-start-column=\"39\" selection-end-line=\"8\" selection-end-column=\"39\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/resources/resource.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"16\">\n          <caret line=\"1\" column=\"21\" selection-start-line=\"1\" selection-start-column=\"12\" selection-end-line=\"1\" selection-end-column=\"21\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/ZKCuratorClient.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"1029\">\n          <caret line=\"88\" column=\"20\" selection-start-line=\"88\" selection-start-column=\"20\" selection-end-line=\"88\" selection-end-column=\"20\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-common/src/main/java/com/kkvideo/utils/MD5Utils.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"224\">\n          <caret line=\"16\" column=\"4\" selection-start-line=\"16\" selection-start-column=\"4\" selection-end-line=\"16\" selection-end-column=\"4\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/resources/log4j.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"352\">\n          <caret line=\"22\" lean-forward=\"true\" selection-start-line=\"22\" selection-end-line=\"22\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin/pom.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"208\">\n          <caret line=\"13\" column=\"10\" lean-forward=\"true\" selection-start-line=\"13\" selection-start-column=\"10\" selection-end-line=\"13\" selection-end-column=\"10\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/controller/BasicController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"208\">\n          <caret line=\"15\" column=\"31\" selection-start-line=\"15\" selection-start-column=\"31\" selection-end-line=\"15\" selection-end-column=\"31\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/PageController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"176\">\n          <caret line=\"13\" column=\"13\" selection-start-line=\"13\" selection-start-column=\"13\" selection-end-line=\"13\" selection-end-column=\"13\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-api/src/main/java/com/kkvideo/controller/VideoController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"240\">\n          <caret line=\"142\" column=\"33\" selection-start-line=\"142\" selection-start-column=\"33\" selection-end-line=\"142\" selection-end-column=\"33\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-common/src/main/java/com/kkvideo/utils/MergeVideoMp3.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"208\">\n          <caret line=\"17\" column=\"16\" selection-start-line=\"17\" selection-start-column=\"16\" selection-end-line=\"17\" selection-end-column=\"16\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/first.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"513\">\n          <caret line=\"35\" column=\"22\" lean-forward=\"true\" selection-start-line=\"35\" selection-start-column=\"22\" selection-end-line=\"35\" selection-end-column=\"22\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/center.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"193\">\n          <caret line=\"52\" column=\"42\" selection-start-line=\"52\" selection-start-column=\"42\" selection-end-line=\"52\" selection-end-column=\"42\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo/pages/chooseBgm/chooseBgm.js\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/.idea/workspace.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"16\">\n          <caret line=\"8\" column=\"11\" selection-start-line=\"8\" selection-start-column=\"11\" selection-end-line=\"8\" selection-end-column=\"11\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kk-video-wechat.iml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\" />\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/README.md\">\n      <provider selected=\"true\" editor-type-id=\"split-provider[text-editor;markdown-preview-editor]\">\n        <state split_layout=\"SPLIT\">\n          <first_editor relative-caret-position=\"32\">\n            <caret line=\"2\" lean-forward=\"true\" selection-start-line=\"2\" selection-end-line=\"2\" />\n          </first_editor>\n          <second_editor />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/pom.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"288\">\n          <caret line=\"18\" column=\"37\" selection-start-line=\"18\" selection-start-column=\"37\" selection-end-line=\"18\" selection-end-column=\"37\" />\n        </state>\n      </provider>\n    </entry>\n  </component>\n</project>"
  },
  {
    "path": "README.md",
    "content": "# kkvideo\nKkvideo 是一款关于微信小程序及音频产品相关的学习产品，可以微信小程序通过请求（kk-video）服务端获取数据，展现在小程序内，（kk-admin）管理端通过zookeeper于服务端（kk-video）进行通信进行管理相关数据，所有静态资源均通过Nginx访问。\n\n\n\n----------------------------\nPS : 此项目为个人学习项目，因时间过长不再维护。 2022-03-25\n"
  },
  {
    "path": "kk-video-admin/.idea/compiler.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"CompilerConfiguration\">\n    <annotationProcessing>\n      <profile name=\"Maven default annotation processors profile\" enabled=\"true\">\n        <sourceOutputDir name=\"target/generated-sources/annotations\" />\n        <sourceTestOutputDir name=\"target/generated-test-sources/test-annotations\" />\n        <outputRelativeToContentRoot value=\"true\" />\n        <module name=\"kkvideoadmincommon\" />\n        <module name=\"kkvideoadmindao\" />\n        <module name=\"kkvideoadminpojo\" />\n        <module name=\"kkvideoadminservice\" />\n        <module name=\"kkvideoadminweb\" />\n      </profile>\n    </annotationProcessing>\n    <bytecodeTargetLevel>\n      <module name=\"kkvideo-admin-dao\" target=\"1.8\" />\n    </bytecodeTargetLevel>\n  </component>\n</project>"
  },
  {
    "path": "kk-video-admin/.idea/encodings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Encoding\" defaultCharsetForPropertiesFiles=\"UTF-8\">\n    <file url=\"file://$PROJECT_DIR$\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kkvideo-admin-common\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kkvideo-admin-dao\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kkvideo-admin-pojo\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kkvideo-admin-service\" charset=\"UTF-8\" />\n    <file url=\"file://$PROJECT_DIR$/kkvideo-admin-web\" charset=\"UTF-8\" />\n  </component>\n</project>"
  },
  {
    "path": "kk-video-admin/.idea/inspectionProfiles/Project_Default.xml",
    "content": "<component name=\"InspectionProjectProfileManager\">\n  <profile version=\"1.0\">\n    <option name=\"myName\" value=\"Project Default\" />\n    <inspection_tool class=\"JavaDoc\" enabled=\"true\" level=\"WARNING\" enabled_by_default=\"true\">\n      <option name=\"TOP_LEVEL_CLASS_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"\" />\n        </value>\n      </option>\n      <option name=\"INNER_CLASS_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"\" />\n        </value>\n      </option>\n      <option name=\"METHOD_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"@return@param@throws or @exception\" />\n        </value>\n      </option>\n      <option name=\"FIELD_OPTIONS\">\n        <value>\n          <option name=\"ACCESS_JAVADOC_REQUIRED_FOR\" value=\"none\" />\n          <option name=\"REQUIRED_TAGS\" value=\"\" />\n        </value>\n      </option>\n      <option name=\"IGNORE_DEPRECATED\" value=\"false\" />\n      <option name=\"IGNORE_JAVADOC_PERIOD\" value=\"true\" />\n      <option name=\"IGNORE_DUPLICATED_THROWS\" value=\"false\" />\n      <option name=\"IGNORE_POINT_TO_ITSELF\" value=\"false\" />\n      <option name=\"myAdditionalJavadocTags\" value=\"date\" />\n    </inspection_tool>\n  </profile>\n</component>"
  },
  {
    "path": "kk-video-admin/.idea/misc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ExternalStorageConfigurationManager\" enabled=\"true\" />\n  <component name=\"FrameworkDetectionExcludesConfiguration\">\n    <file type=\"web\" url=\"file://$PROJECT_DIR$/kkvideo-admin-web\" />\n  </component>\n  <component name=\"MavenProjectsManager\">\n    <option name=\"originalFiles\">\n      <list>\n        <option value=\"$PROJECT_DIR$/pom.xml\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"ProjectRootManager\" version=\"2\" languageLevel=\"JDK_1_8\" project-jdk-name=\"1.8\" project-jdk-type=\"JavaSDK\">\n    <output url=\"file://$PROJECT_DIR$/out\" />\n  </component>\n</project>"
  },
  {
    "path": "kk-video-admin/.idea/uiDesigner.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Palette2\">\n    <group name=\"Swing\">\n      <item class=\"com.intellij.uiDesigner.HSpacer\" tooltip-text=\"Horizontal Spacer\" icon=\"/com/intellij/uiDesigner/icons/hspacer.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"1\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"com.intellij.uiDesigner.VSpacer\" tooltip-text=\"Vertical Spacer\" icon=\"/com/intellij/uiDesigner/icons/vspacer.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"1\" anchor=\"0\" fill=\"2\" />\n      </item>\n      <item class=\"javax.swing.JPanel\" icon=\"/com/intellij/uiDesigner/icons/panel.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JScrollPane\" icon=\"/com/intellij/uiDesigner/icons/scrollPane.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"7\" hsize-policy=\"7\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JButton\" icon=\"/com/intellij/uiDesigner/icons/button.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"0\" fill=\"1\" />\n        <initial-values>\n          <property name=\"text\" value=\"Button\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JRadioButton\" icon=\"/com/intellij/uiDesigner/icons/radioButton.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"RadioButton\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JCheckBox\" icon=\"/com/intellij/uiDesigner/icons/checkBox.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"3\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"CheckBox\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JLabel\" icon=\"/com/intellij/uiDesigner/icons/label.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"0\" anchor=\"8\" fill=\"0\" />\n        <initial-values>\n          <property name=\"text\" value=\"Label\" />\n        </initial-values>\n      </item>\n      <item class=\"javax.swing.JTextField\" icon=\"/com/intellij/uiDesigner/icons/textField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JPasswordField\" icon=\"/com/intellij/uiDesigner/icons/passwordField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JFormattedTextField\" icon=\"/com/intellij/uiDesigner/icons/formattedTextField.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\">\n          <preferred-size width=\"150\" height=\"-1\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTextArea\" icon=\"/com/intellij/uiDesigner/icons/textArea.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTextPane\" icon=\"/com/intellij/uiDesigner/icons/textPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JEditorPane\" icon=\"/com/intellij/uiDesigner/icons/editorPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JComboBox\" icon=\"/com/intellij/uiDesigner/icons/comboBox.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"2\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JTable\" icon=\"/com/intellij/uiDesigner/icons/table.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JList\" icon=\"/com/intellij/uiDesigner/icons/list.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"2\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTree\" icon=\"/com/intellij/uiDesigner/icons/tree.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"150\" height=\"50\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JTabbedPane\" icon=\"/com/intellij/uiDesigner/icons/tabbedPane.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"200\" height=\"200\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JSplitPane\" icon=\"/com/intellij/uiDesigner/icons/splitPane.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"3\" hsize-policy=\"3\" anchor=\"0\" fill=\"3\">\n          <preferred-size width=\"200\" height=\"200\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JSpinner\" icon=\"/com/intellij/uiDesigner/icons/spinner.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"true\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JSlider\" icon=\"/com/intellij/uiDesigner/icons/slider.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"8\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JSeparator\" icon=\"/com/intellij/uiDesigner/icons/separator.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"6\" anchor=\"0\" fill=\"3\" />\n      </item>\n      <item class=\"javax.swing.JProgressBar\" icon=\"/com/intellij/uiDesigner/icons/progressbar.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JToolBar\" icon=\"/com/intellij/uiDesigner/icons/toolbar.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"6\" anchor=\"0\" fill=\"1\">\n          <preferred-size width=\"-1\" height=\"20\" />\n        </default-constraints>\n      </item>\n      <item class=\"javax.swing.JToolBar$Separator\" icon=\"/com/intellij/uiDesigner/icons/toolbarSeparator.png\" removable=\"false\" auto-create-binding=\"false\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"0\" hsize-policy=\"0\" anchor=\"0\" fill=\"1\" />\n      </item>\n      <item class=\"javax.swing.JScrollBar\" icon=\"/com/intellij/uiDesigner/icons/scrollbar.png\" removable=\"false\" auto-create-binding=\"true\" can-attach-label=\"false\">\n        <default-constraints vsize-policy=\"6\" hsize-policy=\"0\" anchor=\"0\" fill=\"2\" />\n      </item>\n    </group>\n  </component>\n</project>"
  },
  {
    "path": "kk-video-admin/.idea/workspace.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ChangeListManager\">\n    <list default=\"true\" id=\"8b799445-075d-4723-8fc8-8d33bb07eefd\" name=\"Default\" comment=\"\" />\n    <ignored path=\"$PROJECT_DIR$/out/\" />\n    <ignored path=\"$PROJECT_DIR$/target/\" />\n    <ignored path=\"$PROJECT_DIR$/kkvideo-admin-common/target/\" />\n    <ignored path=\"$PROJECT_DIR$/kkvideo-admin-pojo/target/\" />\n    <ignored path=\"$PROJECT_DIR$/video-admin-dao/target/\" />\n    <ignored path=\"$PROJECT_DIR$/kkvideo-admin-service/target/\" />\n    <ignored path=\"$PROJECT_DIR$/kkvideo-admin-dao/target/\" />\n    <ignored path=\"$PROJECT_DIR$/kkvideo-admin-web/target/\" />\n    <option name=\"EXCLUDED_CONVERTED_TO_IGNORED\" value=\"true\" />\n    <option name=\"TRACKING_ENABLED\" value=\"true\" />\n    <option name=\"SHOW_DIALOG\" value=\"false\" />\n    <option name=\"HIGHLIGHT_CONFLICTS\" value=\"true\" />\n    <option name=\"HIGHLIGHT_NON_ACTIVE_CHANGELIST\" value=\"false\" />\n    <option name=\"LAST_RESOLUTION\" value=\"IGNORE\" />\n  </component>\n  <component name=\"CompilerWorkspaceConfiguration\">\n    <option name=\"MAKE_PROJECT_ON_SAVE\" value=\"true\" />\n  </component>\n  <component name=\"DatabaseView\">\n    <option name=\"SHOW_INTERMEDIATE\" value=\"true\" />\n    <option name=\"GROUP_DATA_SOURCES\" value=\"true\" />\n    <option name=\"GROUP_SCHEMA\" value=\"true\" />\n    <option name=\"GROUP_CONTENTS\" value=\"false\" />\n    <option name=\"SORT_POSITIONED\" value=\"false\" />\n    <option name=\"SHOW_EMPTY_GROUPS\" value=\"false\" />\n    <option name=\"AUTO_SCROLL_FROM_SOURCE\" value=\"false\" />\n    <option name=\"HIDDEN_KINDS\">\n      <set />\n    </option>\n    <expand />\n    <select />\n  </component>\n  <component name=\"FileEditorManager\">\n    <leaf>\n      <file leaf-file-name=\"reportList.js\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/reportList.js\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"51\">\n              <caret line=\"38\" column=\"28\" selection-start-line=\"38\" selection-start-column=\"28\" selection-end-line=\"38\" selection-end-column=\"28\" />\n              <folding>\n                <element signature=\"n#style#0;n#button#0;n#!!top\" expanded=\"true\" />\n              </folding>\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"first.jsp\" pinned=\"false\" current-in-tab=\"true\">\n        <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/first.jsp\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"886\">\n              <caret line=\"89\" column=\"55\" selection-start-line=\"89\" selection-start-column=\"55\" selection-end-line=\"89\" selection-end-column=\"55\" />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"emotion.js\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/emotion/emotion.js\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"302\">\n              <caret line=\"51\" column=\"26\" selection-start-line=\"51\" selection-start-column=\"26\" selection-end-line=\"51\" selection-end-column=\"26\" />\n              <folding>\n                <element signature=\"n#style#0;n#img#0;n#!!top\" expanded=\"true\" />\n              </folding>\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"MD5Utils.java\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/MD5Utils.java\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"240\">\n              <caret line=\"17\" selection-start-line=\"17\" selection-end-line=\"17\" />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"commonFooterJS.jsp\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/commonFooterJS.jsp\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"114\">\n              <caret line=\"13\" column=\"40\" selection-start-line=\"13\" selection-start-column=\"25\" selection-end-line=\"13\" selection-end-column=\"40\" />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"index.jsp\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/index.jsp\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"16\">\n              <caret line=\"1\" column=\"33\" selection-start-line=\"1\" selection-start-column=\"27\" selection-end-line=\"1\" selection-end-column=\"33\" />\n            </state>\n          </provider>\n        </entry>\n      </file>\n      <file leaf-file-name=\"center.jsp\" pinned=\"false\" current-in-tab=\"false\">\n        <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/center.jsp\">\n          <provider selected=\"true\" editor-type-id=\"text-editor\">\n            <state relative-caret-position=\"-752\">\n              <caret line=\"7\" column=\"13\" selection-start-line=\"7\" selection-start-column=\"13\" selection-end-line=\"7\" selection-end-column=\"13\" />\n            </state>\n          </provider>\n        </entry>\n      </file>\n    </leaf>\n  </component>\n  <component name=\"FileTemplateManagerImpl\">\n    <option name=\"RECENT_TEMPLATES\">\n      <list>\n        <option value=\"Interface\" />\n        <option value=\"Class\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"FindInProjectRecents\">\n    <findStrings>\n      <find>static</find>\n      <find>js</find>\n      <find>css</find>\n      <find>action</find>\n      <find>login</find>\n      <find>upliad</find>\n      <find>mvc</find>\n      <find>bgmServer</find>\n      <find>add</find>\n      <find>log</find>\n      <find>zookeeper</find>\n      <find>list</find>\n      <find>getUser</find>\n      <find>user</find>\n      <find>users</find>\n      <find>updateByPrimaryKeySelective</find>\n      <find>reportList</find>\n      <find>hdnContextPath</find>\n      <find>sy</find>\n      <find>face</find>\n      <find>server</find>\n      <find>admin</find>\n      <find>apiSourceServer</find>\n      <find>慕</find>\n      <find>imooc</find>\n      <find>慕课</find>\n    </findStrings>\n  </component>\n  <component name=\"IdeDocumentHistory\">\n    <option name=\"CHANGED_PATHS\">\n      <list>\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-common/pom.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-common/src/main/java/idworker/utils/Ip.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-common/src/main/java/org/n3r/idworker/utils/Ip.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-pojo/pom.xml\" />\n        <option value=\"$PROJECT_DIR$/video-admin-dao/pom.xml\" />\n        <option value=\"$PROJECT_DIR$/pom.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-dao/pom.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-service/pom.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/web.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/log4j.properties\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-dao.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-service.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-transaction.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/TestController.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/footer.jsp\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/MergeVideoMp3.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/bean/AdminUser.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/resource/admin.properties\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/login.js\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/PageController.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/springmvc.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/interceptor/LoginInterceptor.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/addBgm.jsp\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/web/util/ZKCurator.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/enums/BGMOperatorTypeEnum.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/util/ZKCurator.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-service/src/main/resources/resource.properties\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/UserService.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/UserServiceImpl.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoService.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/vo/Reports.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapperCustom.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapperCustom.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/enums/VideoStatusEnum.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/VideosMapper.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoServiceImpl.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/userInfoList.js\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/users/usersList.jsp\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/UserController.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/resource/resource.properties\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/resource/db.properties\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-zookeeper.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/usersList.js\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/pom.xml\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/commonFooterJS.jsp\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/reportList.js\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/VideoController.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/center.jsp\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/MD5Utils.java\" />\n        <option value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/first.jsp\" />\n      </list>\n    </option>\n  </component>\n  <component name=\"JsBuildToolGruntFileManager\" detection-done=\"true\" sorting=\"DEFINITION_ORDER\" />\n  <component name=\"JsBuildToolPackageJson\" detection-done=\"true\" sorting=\"DEFINITION_ORDER\" />\n  <component name=\"JsGulpfileManager\">\n    <detection-done>true</detection-done>\n    <sorting>DEFINITION_ORDER</sorting>\n  </component>\n  <component name=\"LogFilters\">\n    <option name=\"FILTER_ERRORS\" value=\"false\" />\n    <option name=\"FILTER_WARNINGS\" value=\"false\" />\n    <option name=\"FILTER_INFO\" value=\"true\" />\n    <option name=\"FILTER_DEBUG\" value=\"true\" />\n    <option name=\"CUSTOM_FILTER\" />\n  </component>\n  <component name=\"MavenImportPreferences\">\n    <option name=\"generalSettings\">\n      <MavenGeneralSettings>\n        <option name=\"mavenHome\" value=\"E:/maven/apache-maven-3.3.9\" />\n        <option name=\"userSettingsFile\" value=\"E:\\maven\\apache-maven-3.3.9\\conf\\settings.xml\" />\n      </MavenGeneralSettings>\n    </option>\n  </component>\n  <component name=\"MavenProjectNavigator\">\n    <treeState>\n      <expand>\n        <path>\n          <item name=\"\" type=\"16c1761:MavenProjectsStructure$RootNode\" />\n          <item name=\"kkvideo-admin-web\" type=\"9519ce18:MavenProjectsStructure$ProjectNode\" />\n        </path>\n        <path>\n          <item name=\"\" type=\"16c1761:MavenProjectsStructure$RootNode\" />\n          <item name=\"kkvideo-admin-web\" type=\"9519ce18:MavenProjectsStructure$ProjectNode\" />\n          <item name=\"Lifecycle\" type=\"58874e2:MavenProjectsStructure$LifecycleNode\" />\n        </path>\n      </expand>\n      <select />\n    </treeState>\n  </component>\n  <component name=\"MavenRunner\">\n    <option name=\"vmOptions\" value=\"-DarchetypeCatalog=internal\" />\n  </component>\n  <component name=\"NodePackageJsonFileManager\">\n    <packageJsonPaths>\n      <path value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/package.json\" />\n      <path value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/package.json\" />\n      <path value=\"$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/package.json\" />\n    </packageJsonPaths>\n  </component>\n  <component name=\"ProjectFrameBounds\" extendedState=\"7\">\n    <option name=\"x\" value=\"-110\" />\n    <option name=\"y\" value=\"95\" />\n    <option name=\"width\" value=\"1940\" />\n    <option name=\"height\" value=\"1095\" />\n  </component>\n  <component name=\"ProjectView\">\n    <navigator proportions=\"\" version=\"1\">\n      <foldersAlwaysOnTop value=\"true\" />\n    </navigator>\n    <panes>\n      <pane id=\"ProjectPane\">\n        <subPane>\n          <expand>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"java\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"java\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"admin\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"java\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"controller\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"java\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"interceptor\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"resources\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"resources\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"resource\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"resources\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"spring\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"static\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"static\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"pages\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"static\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"pages\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"js\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"WEB-INF\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"WEB-INF\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"center\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"WEB-INF\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"center\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"common\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"WEB-INF\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"center\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"users\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"src\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"main\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"webapp\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"WEB-INF\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"center\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"video\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n            <path>\n              <item name=\"kkvideo-admin\" type=\"b2602c69:ProjectViewProjectNode\" />\n              <item name=\"kkvideo-admin\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"kkvideo-admin-web\" type=\"462c0819:PsiDirectoryNode\" />\n              <item name=\"target\" type=\"462c0819:PsiDirectoryNode\" />\n            </path>\n          </expand>\n          <select />\n        </subPane>\n      </pane>\n      <pane id=\"Scope\" />\n      <pane id=\"PackagesPane\" />\n      <pane id=\"AndroidView\" />\n    </panes>\n  </component>\n  <component name=\"PropertiesComponent\">\n    <property name=\"SearchEverywhereHistoryKey\" value=\"&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/reportList.js&#10;Zk&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/util/ZKCurator.java&#10;vide&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/VideoController.java&#10;videoc&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/VideoController.java&#10;reportList&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/reportList.js&#10;videos&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoServiceImpl.java&#10;bgmlist&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/bgmList.jsp&#10;videocon&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/VideoController.java&#10;videoser&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoService.java&#10;index.jsp&#9;FILE&#9;file://E:/IntelliJIDEAWork/kkvideo-admin/kkvideo-admin-web/src/main/webapp/index.jsp\" />\n    <property name=\"WebServerToolWindowFactoryState\" value=\"false\" />\n    <property name=\"aspect.path.notification.shown\" value=\"true\" />\n    <property name=\"last_opened_file_path\" value=\"D:/百度云盘/百度云盘下载位置/Java仿抖音短视频小程序开发 全栈式实战项目/小程序实战代码文件专用分享文件夹/imooc-video-admin 20180530 精简版\" />\n    <property name=\"nodejs_interpreter_path.stuck_in_default_project\" value=\"undefined stuck path\" />\n    <property name=\"nodejs_npm_path_reset_for_default_project\" value=\"true\" />\n    <property name=\"project.structure.last.edited\" value=\"Problems\" />\n    <property name=\"project.structure.proportion\" value=\"0.15\" />\n    <property name=\"project.structure.side.proportion\" value=\"0.2\" />\n    <property name=\"settings.editor.selected.configurable\" value=\"editor.preferences.import\" />\n  </component>\n  <component name=\"RecentsManager\">\n    <key name=\"MoveClassesOrPackagesDialog.RECENTS_KEY\">\n      <recent name=\"\" />\n    </key>\n    <key name=\"CopyClassDialog.RECENTS_KEY\">\n      <recent name=\"kkvideo.admin.enums\" />\n      <recent name=\"kkvideo.admin.pojo.vo\" />\n      <recent name=\"kkvideo.admin.service.util\" />\n      <recent name=\"kkvideo.admin.web.util\" />\n      <recent name=\"kkvideo.admin.bean\" />\n    </key>\n    <key name=\"CopyFile.RECENT_KEYS\">\n      <recent name=\"E:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\webapp\\static\\pages\\js\" />\n      <recent name=\"E:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-dao\\src\\main\\java\\kkvideo\\admin\\mapper\" />\n      <recent name=\"E:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\" />\n      <recent name=\"E:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\webapp\\static\" />\n      <recent name=\"E:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\resources\" />\n    </key>\n  </component>\n  <component name=\"RunDashboard\">\n    <option name=\"ruleStates\">\n      <list>\n        <RuleState>\n          <option name=\"name\" value=\"ConfigurationTypeDashboardGroupingRule\" />\n        </RuleState>\n        <RuleState>\n          <option name=\"name\" value=\"StatusDashboardGroupingRule\" />\n        </RuleState>\n      </list>\n    </option>\n  </component>\n  <component name=\"RunManager\">\n    <configuration default=\"true\" type=\"Application\" factoryName=\"Application\">\n      <option name=\"WORKING_DIRECTORY\" value=\"$PROJECT_DIR$\" />\n    </configuration>\n    <configuration default=\"true\" type=\"JUnit\" factoryName=\"JUnit\">\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"class\" />\n      <option name=\"VM_PARAMETERS\" value=\"-ea\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"%MODULE_WORKING_DIR%\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"singleModule\" />\n      </option>\n      <patterns />\n    </configuration>\n    <configuration default=\"true\" type=\"TestNG\" factoryName=\"TestNG\">\n      <option name=\"ALTERNATIVE_JRE_PATH_ENABLED\" value=\"false\" />\n      <option name=\"ALTERNATIVE_JRE_PATH\" />\n      <option name=\"SUITE_NAME\" />\n      <option name=\"PACKAGE_NAME\" />\n      <option name=\"MAIN_CLASS_NAME\" />\n      <option name=\"METHOD_NAME\" />\n      <option name=\"GROUP_NAME\" />\n      <option name=\"TEST_OBJECT\" value=\"CLASS\" />\n      <option name=\"VM_PARAMETERS\" value=\"-ea\" />\n      <option name=\"PARAMETERS\" />\n      <option name=\"WORKING_DIRECTORY\" value=\"%MODULE_WORKING_DIR%\" />\n      <option name=\"OUTPUT_DIRECTORY\" />\n      <option name=\"PASS_PARENT_ENVS\" value=\"true\" />\n      <option name=\"TEST_SEARCH_SCOPE\">\n        <value defaultName=\"singleModule\" />\n      </option>\n      <option name=\"USE_DEFAULT_REPORTERS\" value=\"false\" />\n      <option name=\"PROPERTIES_FILE\" />\n      <properties />\n      <listeners />\n    </configuration>\n    <configuration name=\"Tomcat7\" type=\"#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory\" factoryName=\"Local\" APPLICATION_SERVER_NAME=\"Tomcat 7.0.86\" ALTERNATIVE_JRE_ENABLED=\"false\">\n      <option name=\"UPDATING_POLICY\" value=\"restart-server\" />\n      <deployment />\n      <server-settings>\n        <option name=\"BASE_DIRECTORY_NAME\" value=\"Unnamed_Default_(Template)_Project\" />\n      </server-settings>\n      <predefined_log_file id=\"Tomcat\" enabled=\"true\" />\n      <predefined_log_file id=\"Tomcat Catalina\" enabled=\"true\" />\n      <predefined_log_file id=\"Tomcat Manager\" enabled=\"false\" />\n      <predefined_log_file id=\"Tomcat Host Manager\" enabled=\"false\" />\n      <predefined_log_file id=\"Tomcat Localhost Access\" enabled=\"false\" />\n      <RunnerSettings RunnerId=\"Debug\">\n        <option name=\"DEBUG_PORT\" value=\"61324\" />\n      </RunnerSettings>\n      <ConfigurationWrapper VM_VAR=\"JAVA_OPTS\" RunnerId=\"Cover\">\n        <option name=\"USE_ENV_VARIABLES\" value=\"true\" />\n        <STARTUP>\n          <option name=\"USE_DEFAULT\" value=\"true\" />\n          <option name=\"SCRIPT\" value=\"\" />\n          <option name=\"VM_PARAMETERS\" value=\"\" />\n          <option name=\"PROGRAM_PARAMETERS\" value=\"\" />\n        </STARTUP>\n        <SHUTDOWN>\n          <option name=\"USE_DEFAULT\" value=\"true\" />\n          <option name=\"SCRIPT\" value=\"\" />\n          <option name=\"VM_PARAMETERS\" value=\"\" />\n          <option name=\"PROGRAM_PARAMETERS\" value=\"\" />\n        </SHUTDOWN>\n      </ConfigurationWrapper>\n      <ConfigurationWrapper VM_VAR=\"JAVA_OPTS\" RunnerId=\"Debug\">\n        <option name=\"USE_ENV_VARIABLES\" value=\"true\" />\n        <STARTUP>\n          <option name=\"USE_DEFAULT\" value=\"true\" />\n          <option name=\"SCRIPT\" value=\"\" />\n          <option name=\"VM_PARAMETERS\" value=\"\" />\n          <option name=\"PROGRAM_PARAMETERS\" value=\"\" />\n        </STARTUP>\n        <SHUTDOWN>\n          <option name=\"USE_DEFAULT\" value=\"true\" />\n          <option name=\"SCRIPT\" value=\"\" />\n          <option name=\"VM_PARAMETERS\" value=\"\" />\n          <option name=\"PROGRAM_PARAMETERS\" value=\"\" />\n        </SHUTDOWN>\n      </ConfigurationWrapper>\n      <ConfigurationWrapper VM_VAR=\"JAVA_OPTS\" RunnerId=\"Run\">\n        <option name=\"USE_ENV_VARIABLES\" value=\"true\" />\n        <STARTUP>\n          <option name=\"USE_DEFAULT\" value=\"true\" />\n          <option name=\"SCRIPT\" value=\"\" />\n          <option name=\"VM_PARAMETERS\" value=\"\" />\n          <option name=\"PROGRAM_PARAMETERS\" value=\"\" />\n        </STARTUP>\n        <SHUTDOWN>\n          <option name=\"USE_DEFAULT\" value=\"true\" />\n          <option name=\"SCRIPT\" value=\"\" />\n          <option name=\"VM_PARAMETERS\" value=\"\" />\n          <option name=\"PROGRAM_PARAMETERS\" value=\"\" />\n        </SHUTDOWN>\n      </ConfigurationWrapper>\n    </configuration>\n  </component>\n  <component name=\"SvnConfiguration\">\n    <configuration />\n  </component>\n  <component name=\"TaskManager\">\n    <task active=\"true\" id=\"Default\" summary=\"Default task\">\n      <changelist id=\"8b799445-075d-4723-8fc8-8d33bb07eefd\" name=\"Default\" comment=\"\" />\n      <created>1529583712085</created>\n      <option name=\"number\" value=\"Default\" />\n      <option name=\"presentableId\" value=\"Default\" />\n      <updated>1529583712085</updated>\n      <workItem from=\"1529583713584\" duration=\"76000\" />\n      <workItem from=\"1529586683040\" duration=\"2387000\" />\n      <workItem from=\"1529589175419\" duration=\"5829000\" />\n      <workItem from=\"1529598331176\" duration=\"13378000\" />\n      <workItem from=\"1529680177645\" duration=\"4897000\" />\n      <workItem from=\"1529735647879\" duration=\"10243000\" />\n      <workItem from=\"1529829875637\" duration=\"306000\" />\n      <workItem from=\"1529830544170\" duration=\"1010000\" />\n      <workItem from=\"1529850715341\" duration=\"3520000\" />\n    </task>\n    <servers />\n  </component>\n  <component name=\"TimeTrackingManager\">\n    <option name=\"totallyTimeSpent\" value=\"41646000\" />\n  </component>\n  <component name=\"ToolWindowManager\">\n    <frame x=\"-7\" y=\"-7\" width=\"1550\" height=\"838\" extended-state=\"7\" />\n    <layout>\n      <window_info anchor=\"right\" id=\"Palette\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Event Log\" order=\"7\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Application Servers\" order=\"7\" />\n      <window_info anchor=\"right\" id=\"Maven Projects\" order=\"3\" weight=\"0.18364611\" />\n      <window_info anchor=\"bottom\" id=\"Database Changes\" order=\"7\" show_stripe_button=\"false\" />\n      <window_info id=\"Capture Tool\" order=\"2\" />\n      <window_info id=\"Designer\" order=\"2\" />\n      <window_info anchor=\"right\" id=\"Database\" order=\"3\" weight=\"0.3297587\" />\n      <window_info id=\"Structure\" order=\"1\" side_tool=\"true\" weight=\"0.25\" />\n      <window_info anchor=\"right\" id=\"Ant Build\" order=\"1\" weight=\"0.25\" />\n      <window_info id=\"UI Designer\" order=\"2\" />\n      <window_info anchor=\"bottom\" id=\"Debug\" order=\"3\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"TODO\" order=\"6\" />\n      <window_info anchor=\"right\" id=\"Palette&#9;\" order=\"3\" />\n      <window_info id=\"Image Layers\" order=\"2\" />\n      <window_info anchor=\"bottom\" id=\"Java Enterprise\" order=\"8\" />\n      <window_info anchor=\"right\" id=\"Capture Analysis\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Version Control\" order=\"7\" show_stripe_button=\"false\" />\n      <window_info anchor=\"bottom\" id=\"Run\" order=\"2\" visible=\"true\" weight=\"0.2877493\" />\n      <window_info anchor=\"bottom\" id=\"Spring\" order=\"8\" />\n      <window_info anchor=\"bottom\" id=\"Terminal\" order=\"7\" />\n      <window_info active=\"true\" content_ui=\"combo\" id=\"Project\" order=\"0\" visible=\"true\" weight=\"0.2774799\" />\n      <window_info anchor=\"bottom\" id=\"Problems\" order=\"7\" />\n      <window_info id=\"Web\" order=\"3\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Find\" order=\"1\" />\n      <window_info anchor=\"right\" id=\"Theme Preview\" order=\"3\" />\n      <window_info id=\"Favorites\" order=\"2\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Inspection\" order=\"5\" weight=\"0.4\" />\n      <window_info anchor=\"right\" id=\"Commander\" internal_type=\"SLIDING\" order=\"0\" type=\"SLIDING\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"Cvs\" order=\"4\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Messages\" order=\"8\" />\n      <window_info anchor=\"bottom\" id=\"Message\" order=\"0\" />\n      <window_info anchor=\"right\" content_ui=\"combo\" id=\"Hierarchy\" order=\"2\" weight=\"0.25\" />\n    </layout>\n    <layout-to-restore>\n      <window_info anchor=\"bottom\" id=\"Application Servers\" order=\"7\" />\n      <window_info id=\"Designer\" order=\"2\" />\n      <window_info anchor=\"right\" id=\"Palette\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Spring\" order=\"13\" />\n      <window_info id=\"Image Layers\" order=\"3\" />\n      <window_info anchor=\"bottom\" id=\"Run\" order=\"2\" visible=\"true\" weight=\"0.13817663\" />\n      <window_info anchor=\"bottom\" id=\"Cvs\" order=\"4\" weight=\"0.25\" />\n      <window_info anchor=\"right\" id=\"Ant Build\" order=\"1\" weight=\"0.25\" />\n      <window_info id=\"UI Designer\" order=\"4\" />\n      <window_info id=\"Favorites\" order=\"5\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"Terminal\" order=\"8\" />\n      <window_info id=\"Capture Tool\" order=\"6\" />\n      <window_info anchor=\"right\" id=\"Capture Analysis\" order=\"4\" />\n      <window_info anchor=\"right\" id=\"Commander\" internal_type=\"SLIDING\" order=\"0\" type=\"SLIDING\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"Event Log\" order=\"9\" side_tool=\"true\" />\n      <window_info anchor=\"bottom\" id=\"TODO\" order=\"6\" />\n      <window_info anchor=\"right\" content_ui=\"combo\" id=\"Hierarchy\" order=\"2\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Problems\" order=\"10\" />\n      <window_info anchor=\"bottom\" id=\"Java Enterprise\" order=\"14\" />\n      <window_info anchor=\"bottom\" id=\"Database Changes\" order=\"11\" show_stripe_button=\"false\" />\n      <window_info anchor=\"bottom\" id=\"Version Control\" order=\"12\" show_stripe_button=\"false\" />\n      <window_info anchor=\"right\" id=\"Maven Projects\" order=\"5\" weight=\"0.3297587\" />\n      <window_info content_ui=\"combo\" id=\"Project\" order=\"0\" visible=\"true\" weight=\"0.2600536\" />\n      <window_info anchor=\"right\" id=\"Database\" order=\"6\" weight=\"0.3297587\" />\n      <window_info anchor=\"bottom\" id=\"Message\" order=\"0\" />\n      <window_info id=\"Web\" order=\"7\" side_tool=\"true\" />\n      <window_info anchor=\"right\" id=\"Palette&#9;\" order=\"7\" />\n      <window_info anchor=\"right\" id=\"Theme Preview\" order=\"8\" />\n      <window_info id=\"Structure\" order=\"1\" side_tool=\"true\" weight=\"0.25\" />\n      <window_info anchor=\"bottom\" id=\"Inspection\" order=\"5\" weight=\"0.4\" />\n      <window_info anchor=\"bottom\" id=\"Find\" order=\"1\" />\n      <window_info anchor=\"bottom\" id=\"Debug\" order=\"3\" weight=\"0.4\" />\n    </layout-to-restore>\n  </component>\n  <component name=\"TypeScriptGeneratedFilesManager\">\n    <option name=\"version\" value=\"1\" />\n  </component>\n  <component name=\"VcsContentAnnotationSettings\">\n    <option name=\"myLimit\" value=\"2678400000\" />\n  </component>\n  <component name=\"XDebuggerManager\">\n    <breakpoint-manager>\n      <option name=\"time\" value=\"3\" />\n    </breakpoint-manager>\n  </component>\n  <component name=\"editorHistoryManager\">\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/log4j.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"80\">\n          <caret line=\"5\" column=\"30\" selection-start-line=\"5\" selection-start-column=\"30\" selection-end-line=\"5\" selection-end-column=\"30\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/mybatis/SqlMapConfig.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-68\">\n          <caret line=\"9\" column=\"16\" lean-forward=\"true\" selection-start-line=\"9\" selection-start-column=\"16\" selection-end-line=\"9\" selection-end-column=\"16\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/web.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"172\">\n          <caret line=\"31\" column=\"14\" lean-forward=\"true\" selection-start-line=\"31\" selection-start-column=\"14\" selection-end-line=\"31\" selection-end-column=\"14\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/TestController.java\" />\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/footer.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"64\">\n          <caret line=\"4\" column=\"38\" selection-start-line=\"4\" selection-start-column=\"38\" selection-end-line=\"4\" selection-end-column=\"38\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/login.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"305\">\n          <caret line=\"108\" column=\"42\" lean-forward=\"true\" selection-start-line=\"108\" selection-start-column=\"42\" selection-end-line=\"108\" selection-end-column=\"42\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/bean/AdminUser.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"96\">\n          <caret line=\"6\" column=\"28\" lean-forward=\"true\" selection-start-line=\"6\" selection-start-column=\"28\" selection-end-line=\"6\" selection-end-column=\"28\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/4.3.8.RELEASE/spring-core-4.3.8.RELEASE.jar!/org/springframework/util/PropertyPlaceholderHelper.class\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"47\">\n          <caret line=\"95\" selection-start-line=\"95\" selection-end-line=\"95\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/PageController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"291\">\n          <caret line=\"30\" column=\"23\" lean-forward=\"true\" selection-start-line=\"30\" selection-start-column=\"23\" selection-end-line=\"30\" selection-end-column=\"23\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/login.js\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-208\">\n          <caret line=\"35\" column=\"14\" lean-forward=\"true\" selection-start-line=\"35\" selection-start-column=\"14\" selection-end-line=\"35\" selection-end-column=\"14\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/menu.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"288\">\n          <caret line=\"60\" column=\"90\" lean-forward=\"true\" selection-start-line=\"60\" selection-start-column=\"90\" selection-end-line=\"60\" selection-end-column=\"90\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-service/src/main/java/util/ZKCurator.java\" />\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/enums/BGMOperatorTypeEnum.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"32\">\n          <caret line=\"2\" column=\"30\" selection-start-line=\"2\" selection-start-column=\"30\" selection-end-line=\"2\" selection-end-column=\"30\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-service/src/main/resources/resource.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state>\n          <caret column=\"18\" lean-forward=\"true\" selection-start-column=\"18\" selection-end-column=\"53\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/resource/admin.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state>\n          <caret column=\"13\" selection-end-column=\"13\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/UserService.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state>\n          <caret selection-end-line=\"1\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/UserServiceImpl.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"288\">\n          <caret line=\"20\" column=\"8\" selection-start-line=\"20\" selection-start-column=\"8\" selection-end-line=\"20\" selection-end-column=\"8\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapperCustom.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"32\">\n          <caret line=\"2\" column=\"63\" selection-start-line=\"2\" selection-start-column=\"63\" selection-end-line=\"2\" selection-end-column=\"63\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoService.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"304\">\n          <caret line=\"19\" column=\"23\" selection-start-line=\"19\" selection-start-column=\"23\" selection-end-line=\"19\" selection-end-column=\"23\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/enums/VideoStatusEnum.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"224\">\n          <caret line=\"18\" lean-forward=\"true\" selection-start-line=\"18\" selection-end-line=\"18\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapperCustom.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"32\">\n          <caret line=\"2\" column=\"33\" selection-start-line=\"2\" selection-start-column=\"33\" selection-end-line=\"2\" selection-end-column=\"33\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/VideosMapper.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"352\">\n          <caret line=\"26\" selection-start-line=\"26\" selection-end-line=\"26\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoServiceImpl.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"652\">\n          <caret line=\"124\" column=\"36\" selection-start-line=\"124\" selection-start-column=\"36\" selection-end-line=\"124\" selection-end-column=\"36\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/interceptor/LoginInterceptor.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"320\">\n          <caret line=\"25\" column=\"60\" selection-start-line=\"25\" selection-start-column=\"60\" selection-end-line=\"25\" selection-end-column=\"60\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-service.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"285\">\n          <caret line=\"20\" column=\"27\" selection-start-line=\"20\" selection-start-column=\"27\" selection-end-line=\"20\" selection-end-column=\"27\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-transaction.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"608\">\n          <caret line=\"38\" column=\"8\" selection-start-line=\"38\" selection-start-column=\"8\" selection-end-line=\"38\" selection-end-column=\"8\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/commonHeaderCSS.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"288\">\n          <caret line=\"18\" lean-forward=\"true\" selection-start-line=\"18\" selection-end-line=\"18\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/resource/db.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"80\">\n          <caret line=\"5\" lean-forward=\"true\" selection-start-line=\"5\" selection-end-line=\"5\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/UserController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"378\">\n          <caret line=\"91\" column=\"13\" lean-forward=\"true\" selection-start-line=\"91\" selection-start-column=\"13\" selection-end-line=\"91\" selection-end-column=\"13\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/resource/resource.properties\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"16\">\n          <caret line=\"1\" column=\"20\" lean-forward=\"true\" selection-start-line=\"1\" selection-start-column=\"20\" selection-end-line=\"1\" selection-end-column=\"20\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/springmvc.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"188\">\n          <caret line=\"13\" column=\"70\" lean-forward=\"true\" selection-start-line=\"13\" selection-start-column=\"70\" selection-end-line=\"13\" selection-end-column=\"70\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-dao.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"208\">\n          <caret line=\"13\" column=\"19\" lean-forward=\"true\" selection-start-line=\"13\" selection-start-column=\"19\" selection-end-line=\"13\" selection-end-column=\"19\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/userInfoList.js\" />\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/userInfo.js\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-672\">\n          <caret line=\"51\" column=\"72\" selection-start-line=\"51\" selection-start-column=\"57\" selection-end-line=\"51\" selection-end-column=\"72\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/users/usersList.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"32\">\n          <caret line=\"2\" column=\"66\" selection-start-line=\"2\" selection-start-column=\"66\" selection-end-line=\"2\" selection-end-column=\"66\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/pom.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"441\">\n          <caret line=\"51\" column=\"28\" selection-start-line=\"51\" selection-start-column=\"28\" selection-end-line=\"51\" selection-end-column=\"28\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/bgmList.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"48\">\n          <caret line=\"3\" column=\"64\" lean-forward=\"true\" selection-start-line=\"3\" selection-start-column=\"64\" selection-end-line=\"3\" selection-end-column=\"64\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/bgmList.js\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"193\">\n          <caret line=\"70\" column=\"14\" selection-start-line=\"70\" selection-start-column=\"14\" selection-end-line=\"70\" selection-end-column=\"14\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/addBgm.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"267\">\n          <caret line=\"105\" column=\"35\" selection-start-line=\"105\" selection-start-column=\"26\" selection-end-line=\"105\" selection-end-column=\"35\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-service/src/main/java/kkvideo/admin/service/util/ZKCurator.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state>\n          <caret column=\"35\" lean-forward=\"true\" selection-start-column=\"35\" selection-end-column=\"35\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/resources/spring/applicationContext-zookeeper.xml\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"119\">\n          <caret line=\"27\" column=\"51\" selection-start-line=\"27\" selection-start-column=\"51\" selection-end-line=\"27\" selection-end-column=\"51\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/reportList.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"32\">\n          <caret line=\"2\" column=\"65\" selection-start-line=\"2\" selection-start-column=\"60\" selection-end-line=\"2\" selection-end-column=\"70\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/VideoController.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"352\">\n          <caret line=\"133\" column=\"21\" lean-forward=\"true\" selection-start-line=\"133\" selection-start-column=\"21\" selection-end-line=\"133\" selection-end-column=\"21\" />\n          <folding>\n            <element signature=\"imports\" expanded=\"true\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/usersList.js\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"336\">\n          <caret line=\"24\" column=\"49\" selection-start-line=\"24\" selection-start-column=\"34\" selection-end-line=\"24\" selection-end-column=\"49\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/commonFooterJS.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"114\">\n          <caret line=\"13\" column=\"40\" selection-start-line=\"13\" selection-start-column=\"25\" selection-end-line=\"13\" selection-end-column=\"40\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/index.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"16\">\n          <caret line=\"1\" column=\"33\" selection-start-line=\"1\" selection-start-column=\"27\" selection-end-line=\"1\" selection-end-column=\"33\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/center.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"-752\">\n          <caret line=\"7\" column=\"13\" selection-start-line=\"7\" selection-start-column=\"13\" selection-end-line=\"7\" selection-end-column=\"13\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/pages/js/reportList.js\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"51\">\n          <caret line=\"38\" column=\"28\" selection-start-line=\"38\" selection-start-column=\"28\" selection-end-line=\"38\" selection-end-column=\"28\" />\n          <folding>\n            <element signature=\"n#style#0;n#button#0;n#!!top\" expanded=\"true\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/emotion/emotion.js\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"302\">\n          <caret line=\"51\" column=\"26\" selection-start-line=\"51\" selection-start-column=\"26\" selection-end-line=\"51\" selection-end-column=\"26\" />\n          <folding>\n            <element signature=\"n#style#0;n#img#0;n#!!top\" expanded=\"true\" />\n          </folding>\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/MD5Utils.java\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"240\">\n          <caret line=\"17\" selection-start-line=\"17\" selection-end-line=\"17\" />\n        </state>\n      </provider>\n    </entry>\n    <entry file=\"file://$PROJECT_DIR$/kkvideo-admin-web/src/main/webapp/WEB-INF/center/first.jsp\">\n      <provider selected=\"true\" editor-type-id=\"text-editor\">\n        <state relative-caret-position=\"886\">\n          <caret line=\"89\" column=\"55\" selection-start-line=\"89\" selection-start-column=\"55\" selection-end-line=\"89\" selection-end-column=\"55\" />\n        </state>\n      </provider>\n    </entry>\n  </component>\n  <component name=\"masterDetails\">\n    <states>\n      <state key=\"GlobalLibrariesConfigurable.UI\">\n        <settings>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"JdkListConfigurable.UI\">\n        <settings>\n          <last-edited>1.8</last-edited>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"ProjectJDKs.UI\">\n        <settings>\n          <last-edited>1.8</last-edited>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n      <state key=\"ProjectLibrariesConfigurable.UI\">\n        <settings>\n          <last-edited>jsp-api</last-edited>\n          <splitter-proportions>\n            <option name=\"proportions\">\n              <list>\n                <option value=\"0.2\" />\n              </list>\n            </option>\n          </splitter-proportions>\n        </settings>\n      </state>\n    </states>\n  </component>\n</project>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/kkvideoadmincommon.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>kkvideo-admin</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    \n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kkvideo-admin-common</artifactId>\n\n\n    <dependencies>\n        <!-- Apache工具组件 -->\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-lang3</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-io</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>commons-net</groupId>\n            <artifactId>commons-net</artifactId>\n        </dependency>\n        <!-- Jackson Json处理工具包 -->\n        <dependency>\n            <groupId>com.fasterxml.jackson.core</groupId>\n            <artifactId>jackson-databind</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.fasterxml.jackson.core</groupId>\n            <artifactId>jackson-core</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.fasterxml.jackson.core</groupId>\n            <artifactId>jackson-annotations</artifactId>\n        </dependency>\n        <!-- httpclient -->\n        <dependency>\n            <groupId>org.apache.httpcomponents</groupId>\n            <artifactId>httpclient</artifactId>\n        </dependency>\n        <!-- httpclient -->\n        <dependency>\n            <groupId>org.apache.httpcomponents</groupId>\n            <artifactId>httpclient</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>commons-httpclient</groupId>\n            <artifactId>commons-httpclient</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>servlet-api</artifactId>\n            <scope>provided</scope>\n        </dependency>\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>jsp-api</artifactId>\n            <scope>provided</scope>\n        </dependency>\n        <!-- 日志处理 -->\n        <dependency>\n            <groupId>org.slf4j</groupId>\n            <artifactId>slf4j-api</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.slf4j</groupId>\n            <artifactId>slf4j-log4j12</artifactId>\n        </dependency>\n\n        <!-- zookeeper -->\n        <dependency>\n            <groupId>org.apache.curator</groupId>\n            <artifactId>curator-framework</artifactId>\n        </dependency>\n\n        <dependency>\n            <groupId>org.apache.zookeeper</groupId>\n            <artifactId>zookeeper</artifactId>\n        </dependency>\n\n        <dependency>\n            <groupId>org.apache.curator</groupId>\n            <artifactId>curator-recipes</artifactId>\n        </dependency>\n    </dependencies>\n\n\n</project>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/enums/BGMOperatorTypeEnum.java",
    "content": "package kkvideo.admin.enums;\n\npublic enum BGMOperatorTypeEnum {\n\n    ADD(\"1\", \"添加bgm\"),\n    DELETE(\"2\", \"删除bgm\");\n\n    public final String type;\n    public final String value;\n\n    BGMOperatorTypeEnum(String type, String value){\n        this.type = type;\n        this.value = value;\n    }\n\n    public String getUserType() {\n        return type;\n    }\n\n    public String getValue() {\n        return value;\n    }\n\n    public static String getValueByKey(String key) {\n        for (BGMOperatorTypeEnum type : BGMOperatorTypeEnum.values()) {\n            if (type.getUserType().equals(key)) {\n                return type.value;\n            }\n        }\n        return null;\n    }\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/enums/VideoStatusEnum.java",
    "content": "package kkvideo.admin.enums;\n\npublic enum VideoStatusEnum {\n\t\n\tSUCCESS(1),\t\t// 发布成功\n\tFORBID(2);\t\t// 禁止播放，管理员操作\n\t\n\tpublic final int value;\n\t\n\tVideoStatusEnum(int value) {\n\t\tthis.value = value;\n\t}\n\t\n\tpublic int getValue() {\n\t\treturn value;\n\t}\n\t\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/FFMpegTest.java",
    "content": "package kkvideo.admin.utils;\n\nimport java.io.BufferedReader;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class FFMpegTest {\n\n\tprivate String ffmpegEXE;\n\t\n\tpublic FFMpegTest(String ffmpegEXE) {\n\t\tsuper();\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\t\n\tpublic void convertor(String videoInputPath, String videoOutputPath) throws Exception {\n//\t\tffmpeg -i input.mp4 -y output.avi\n\t\tList<String> command = new ArrayList<>();\n\t\tcommand.add(ffmpegEXE);\n\t\t\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(videoInputPath);\n\t\tcommand.add(\"-y\");\n\t\tcommand.add(videoOutputPath);\n\t\t\n\t\tfor (String c : command) {\n\t\t\tSystem.out.print(c + \" \");\n\t\t}\n\t\t\n\t\tProcessBuilder builder = new ProcessBuilder(command);\n\t\tProcess process = builder.start();\n\t\t\n\t\tInputStream errorStream = process.getErrorStream();\n\t\tInputStreamReader inputStreamReader = new InputStreamReader(errorStream);\n\t\tBufferedReader br = new BufferedReader(inputStreamReader);\n\t\t\n\t\tString line = \"\";\n\t\twhile ( (line = br.readLine()) != null ) {\n\t\t}\n\t\t\n\t\tif (br != null) {\n\t\t\tbr.close();\n\t\t}\n\t\tif (inputStreamReader != null) {\n\t\t\tinputStreamReader.close();\n\t\t}\n\t\tif (errorStream != null) {\n\t\t\terrorStream.close();\n\t\t}\n\t\t\n\t}\n\n\tpublic static void main(String[] args) {\n\t\tFFMpegTest ffmpeg = new FFMpegTest(\"C:\\\\ffmpeg\\\\bin\\\\ffmpeg.exe\");\n\t\ttry {\n\t\t\tffmpeg.convertor(\"C:\\\\苏州大裤衩.mp4\", \"C:\\\\北京北京.avi\");\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/FetchVideoCover.java",
    "content": "package kkvideo.admin.utils;\n\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.util.List;\n\n/**\n * \n * @Description: 获取视频的信息\n */\npublic class FetchVideoCover {\n\t// 视频路径\n\tprivate String ffmpegEXE;\n\n\tpublic void getCover(String videoInputPath, String coverOutputPath) throws IOException, InterruptedException {\n//\t\tffmpeg.exe -ss 00:00:01 -i spring.mp4 -vframes 1 bb.jpg\n\t\tList<String> command = new java.util.ArrayList<String>();\n\t\tcommand.add(ffmpegEXE);\n\t\t\n\t\t// 指定截取第1秒\n\t\tcommand.add(\"-ss\");\n\t\tcommand.add(\"00:00:01\");\n\t\t\t\t\n\t\tcommand.add(\"-y\");\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(videoInputPath);\n\t\t\n\t\tcommand.add(\"-vframes\");\n\t\tcommand.add(\"1\");\n\t\t\n\t\tcommand.add(coverOutputPath);\n\t\t\n\t\tfor (String c : command) {\n\t\t\tSystem.out.print(c + \" \");\n\t\t}\n\t\t\n\t\tProcessBuilder builder = new ProcessBuilder(command);\n\t\tProcess process = builder.start();\n\t\t\n\t\tInputStream errorStream = process.getErrorStream();\n\t\tInputStreamReader inputStreamReader = new InputStreamReader(errorStream);\n\t\tBufferedReader br = new BufferedReader(inputStreamReader);\n\t\t\n\t\tString line = \"\";\n\t\twhile ( (line = br.readLine()) != null ) {\n\t\t}\n\t\t\n\t\tif (br != null) {\n\t\t\tbr.close();\n\t\t}\n\t\tif (inputStreamReader != null) {\n\t\t\tinputStreamReader.close();\n\t\t}\n\t\tif (errorStream != null) {\n\t\t\terrorStream.close();\n\t\t}\n\t}\n\n\tpublic String getFfmpegEXE() {\n\t\treturn ffmpegEXE;\n\t}\n\n\tpublic void setFfmpegEXE(String ffmpegEXE) {\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\n\tpublic FetchVideoCover() {\n\t\tsuper();\n\t}\n\n\tpublic FetchVideoCover(String ffmpegEXE) {\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\t\n\tpublic static void main(String[] args) {\n\t\t// 获取视频信息。\n\t\tFetchVideoCover videoInfo = new FetchVideoCover(\"c:\\\\ffmpeg\\\\bin\\\\ffmpeg.exe\");\n\t\ttry {\n\t\t\tvideoInfo.getCover(\"c:\\\\北京北京.avi\",\"c:\\\\北京.jpg\");\n\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/JsonUtils.java",
    "content": "package kkvideo.admin.utils;\n\nimport com.fasterxml.jackson.core.JsonProcessingException;\nimport com.fasterxml.jackson.databind.JavaType;\nimport com.fasterxml.jackson.databind.ObjectMapper;\n\nimport java.util.List;\n\n/**\n * \n * @Title: JsonUtils.java\n * @Package com.lee.utils\n * @Description: 自定义响应结构, 转换类\n * Copyright: Copyright (c) 2016\n * Company:Nathan.Lee.Salvatore\n * \n * @author leechenxiang\n * @date 2016年4月29日 下午11:05:03\n * @version V1.0\n */\npublic class JsonUtils {\n\n    // 定义jackson对象\n    private static final ObjectMapper MAPPER = new ObjectMapper();\n\n    /**\n     * 将对象转换成json字符串。\n     * <p>Title: pojoToJson</p>\n     * <p>Description: </p>\n     * @param data\n     * @return\n     */\n    public static String objectToJson(Object data) {\n    \ttry {\n\t\t\tString string = MAPPER.writeValueAsString(data);\n\t\t\treturn string;\n\t\t} catch (JsonProcessingException e) {\n\t\t\te.printStackTrace();\n\t\t}\n    \treturn null;\n    }\n    \n    /**\n     * 将json结果集转化为对象\n     * \n     * @param jsonData json数据\n     * @param clazz 对象中的object类型\n     * @return\n     */\n    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {\n        try {\n            T t = MAPPER.readValue(jsonData, beanType);\n            return t;\n        } catch (Exception e) {\n        \te.printStackTrace();\n        }\n        return null;\n    }\n    \n    /**\n     * 将json数据转换成pojo对象list\n     * <p>Title: jsonToList</p>\n     * <p>Description: </p>\n     * @param jsonData\n     * @param beanType\n     * @return\n     */\n    public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {\n    \tJavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);\n    \ttry {\n    \t\tList<T> list = MAPPER.readValue(jsonData, javaType);\n    \t\treturn list;\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n    \t\n    \treturn null;\n    }\n    \n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/KkJsonResult.java",
    "content": "package kkvideo.admin.utils;\n\n/**\n * @Description: 自定义响应数据结构\n * \t\t\t\t这个类是提供给门户，ios，安卓，微信商城用的\n * \t\t\t\t门户接受此类数据后需要使用本类的方法转换成对于的数据类型格式（类，或者list）\n * \t\t\t\t其他自行处理\n * \t\t\t\t200：表示成功\n * \t\t\t\t500：表示错误，错误信息在msg字段中\n * \t\t\t\t501：bean验证错误，不管多少个错误都以map形式返回\n * \t\t\t\t502：拦截器拦截到用户token出错\n * \t\t\t\t555：异常抛出信息\n */\npublic class KkJsonResult {\n\n    // 响应业务状态\n    private Integer status;\n\n    // 响应消息\n    private String msg;\n\n    // 响应中的数据\n    private Object data;\n    \n    private String ok;\t// 不使用\n\n    public static KkJsonResult build(Integer status, String msg, Object data) {\n        return new KkJsonResult(status, msg, data);\n    }\n\n    public static KkJsonResult ok(Object data) {\n        return new KkJsonResult(data);\n    }\n\n    public static KkJsonResult ok() {\n        return new KkJsonResult(null);\n    }\n    \n    public static KkJsonResult errorMsg(String msg) {\n        return new KkJsonResult(500, msg, null);\n    }\n    \n    public static KkJsonResult errorMap(Object data) {\n        return new KkJsonResult(501, \"error\", data);\n    }\n    \n    public static KkJsonResult errorTokenMsg(String msg) {\n        return new KkJsonResult(502, msg, null);\n    }\n    \n    public static KkJsonResult errorException(String msg) {\n        return new KkJsonResult(555, msg, null);\n    }\n\n    public KkJsonResult() {\n\n    }\n\n    public KkJsonResult(Integer status, String msg, Object data) {\n        this.status = status;\n        this.msg = msg;\n        this.data = data;\n    }\n\n    public KkJsonResult(Object data) {\n        this.status = 200;\n        this.msg = \"OK\";\n        this.data = data;\n    }\n\n    public Boolean isOK() {\n        return this.status == 200;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public String getMsg() {\n        return msg;\n    }\n\n    public void setMsg(String msg) {\n        this.msg = msg;\n    }\n\n    public Object getData() {\n        return data;\n    }\n\n    public void setData(Object data) {\n        this.data = data;\n    }\n\n\tpublic String getOk() {\n\t\treturn ok;\n\t}\n\n\tpublic void setOk(String ok) {\n\t\tthis.ok = ok;\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/MD5Utils.java",
    "content": "package kkvideo.admin.utils;\n\nimport org.apache.commons.codec.binary.Base64;\n\nimport java.security.MessageDigest;\n\npublic class MD5Utils {\n\n\t/**\n\t * @Description: 对字符串进行md5加密\n\t */\n\tpublic static String getMD5Str(String strValue) throws Exception {\n\t\tMessageDigest md5 = MessageDigest.getInstance(\"MD5\");\n\t\tString newstr = Base64.encodeBase64String(md5.digest(strValue.getBytes()));\n\t\treturn newstr;\n\t}\n\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/MergeVideoMp3.java",
    "content": "package kkvideo.admin.utils;\n\nimport java.io.BufferedReader;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class MergeVideoMp3 {\n\n\tprivate String ffmpegEXE;\n\t\n\tpublic MergeVideoMp3(String ffmpegEXE) {\n\t\tsuper();\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\t\n\tpublic void convertor(String videoInputPath, String mp3InputPath,\n\t\t\tdouble seconds, String videoOutputPath) throws Exception {\n//\t\tffmpeg.exe -i 苏州大裤衩.mp4 -i bgm.mp3 -t 7 -y 新的视频.mp4\n\t\tList<String> command = new ArrayList<>();\n\t\tcommand.add(ffmpegEXE);\n\t\t\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(videoInputPath);\n\t\t\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(mp3InputPath);\n\t\t\n\t\tcommand.add(\"-t\");\n\t\tcommand.add(String.valueOf(seconds));\n\t\t\n\t\tcommand.add(\"-y\");\n\t\tcommand.add(videoOutputPath);\n\t\t\n//\t\tfor (String c : command) {\n//\t\t\tSystem.out.print(c + \" \");\n//\t\t}\n\t\t\n\t\tProcessBuilder builder = new ProcessBuilder(command);\n\t\tProcess process = builder.start();\n\t\t\n\t\tInputStream errorStream = process.getErrorStream();\n\t\tInputStreamReader inputStreamReader = new InputStreamReader(errorStream);\n\t\tBufferedReader br = new BufferedReader(inputStreamReader);\n\t\t\n\t\tString line = \"\";\n\t\twhile ( (line = br.readLine()) != null ) {\n\t\t}\n\t\t\n\t\tif (br != null) {\n\t\t\tbr.close();\n\t\t}\n\t\tif (inputStreamReader != null) {\n\t\t\tinputStreamReader.close();\n\t\t}\n\t\tif (errorStream != null) {\n\t\t\terrorStream.close();\n\t\t}\n\t\t\n\t}\n\n\tpublic static void main(String[] args) {\n\t\tMergeVideoMp3 ffmpeg = new MergeVideoMp3(\"C:\\\\ffmpeg\\\\bin\\\\ffmpeg.exe\");\n\t\ttry {\n\t\t\tffmpeg.convertor(\"C:\\\\苏州大裤衩.mp4\", \"C:\\\\music.mp3\", 7.1, \"C:\\\\这是通过java生产的视频.mp4\");\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/PagedResult.java",
    "content": "package kkvideo.admin.utils;\n\nimport java.util.List;\n\n/**\n * @Description: 封装分页后的数据格式\n */\npublic class PagedResult {\n\t\n\tprivate int page;\t\t\t// 当前页数\n\tprivate int total;\t\t\t// 总页数\t\n\tprivate long records;\t\t// 总记录数\n\tprivate List<?> rows;\t\t// 每行显示的内容\n\t\n\tpublic int getPage() {\n\t\treturn page;\n\t}\n\tpublic void setPage(int page) {\n\t\tthis.page = page;\n\t}\n\tpublic int getTotal() {\n\t\treturn total;\n\t}\n\tpublic void setTotal(int total) {\n\t\tthis.total = total;\n\t}\n\tpublic long getRecords() {\n\t\treturn records;\n\t}\n\tpublic void setRecords(long records) {\n\t\tthis.records = records;\n\t}\n\tpublic List<?> getRows() {\n\t\treturn rows;\n\t}\n\tpublic void setRows(List<?> rows) {\n\t\tthis.rows = rows;\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/kkvideo/admin/utils/TimeAgoUtils.java",
    "content": "package kkvideo.admin.utils;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\npublic class TimeAgoUtils {\n\n\tprivate static final long ONE_MINUTE = 60000L;\n\tprivate static final long ONE_HOUR = 3600000L;\n\tprivate static final long ONE_DAY = 86400000L;\n\tprivate static final long ONE_WEEK = 604800000L;\n\n\tprivate static final String ONE_SECOND_AGO = \"秒前\";\n\tprivate static final String ONE_MINUTE_AGO = \"分钟前\";\n\tprivate static final String ONE_HOUR_AGO = \"小时前\";\n\tprivate static final String ONE_DAY_AGO = \"天前\";\n\tprivate static final String ONE_MONTH_AGO = \"月前\";\n\tprivate static final String ONE_YEAR_AGO = \"年前\";\n\n\tpublic static String format(Date date) {\n\t\tlong delta = new Date().getTime() - date.getTime();\n\t\tif (delta < 1L * ONE_MINUTE) {\n\t\t\tlong seconds = toSeconds(delta);\n\t\t\treturn (seconds <= 0 ? 1 : seconds) + ONE_SECOND_AGO;\n\t\t}\n\t\tif (delta < 45L * ONE_MINUTE) {\n\t\t\tlong minutes = toMinutes(delta);\n\t\t\treturn (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_AGO;\n\t\t}\n\t\tif (delta < 24L * ONE_HOUR) {\n\t\t\tlong hours = toHours(delta);\n\t\t\treturn (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO;\n\t\t}\n\t\tif (delta < 48L * ONE_HOUR) {\n\t\t\treturn \"昨天\";\n\t\t}\n\t\tif (delta < 30L * ONE_DAY) {\n\t\t\tlong days = toDays(delta);\n\t\t\treturn (days <= 0 ? 1 : days) + ONE_DAY_AGO;\n\t\t}\n\t\tif (delta < 12L * 4L * ONE_WEEK) {\n\t\t\tlong months = toMonths(delta);\n\t\t\treturn (months <= 0 ? 1 : months) + ONE_MONTH_AGO;\n\t\t} else {\n\t\t\tlong years = toYears(delta);\n\t\t\treturn (years <= 0 ? 1 : years) + ONE_YEAR_AGO;\n\t\t}\n\t}\n\n\tprivate static long toSeconds(long date) {\n\t\treturn date / 1000L;\n\t}\n\n\tprivate static long toMinutes(long date) {\n\t\treturn toSeconds(date) / 60L;\n\t}\n\n\tprivate static long toHours(long date) {\n\t\treturn toMinutes(date) / 60L;\n\t}\n\n\tprivate static long toDays(long date) {\n\t\treturn toHours(date) / 24L;\n\t}\n\n\tprivate static long toMonths(long date) {\n\t\treturn toDays(date) / 30L;\n\t}\n\n\tprivate static long toYears(long date) {\n\t\treturn toMonths(date) / 365L;\n\t}\n\n\tpublic static void main(String[] args) throws Exception {\n\t\tSimpleDateFormat format = new SimpleDateFormat(\"yyyy-MM-dd HH:m:s\");\n\t\tDate date = format.parse(\"2018-05-01 18:35:35\");\n\t\tSystem.out.println(format(date));\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/Code.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DefaultRandomCodeStrategy;\n\npublic class Code {\n    private static RandomCodeStrategy strategy;\n\n    static {\n        RandomCodeStrategy strategy = new DefaultRandomCodeStrategy();\n        strategy.init();\n        configure(strategy);\n    }\n\n    public static synchronized void configure(RandomCodeStrategy custom) {\n        if (strategy == custom) return;\n        if (strategy != null) strategy.release();\n\n        strategy = custom;\n    }\n\n    /**\n     * Next Unique code.\n     * The max length will be 1024-Integer.MAX-Integer.MAX(2147483647) which has 4+10+10+2*1=26 characters.\n     * The min length will be 0-0.\n     *\n     * @return unique string code.\n     */\n    public static synchronized String next() {\n        long workerId = Id.getWorkerId();\n        int prefix = strategy.prefix();\n        int next = strategy.next();\n\n        return String.format(\"%d-%03d-%06d\", workerId, prefix, next);\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/DayCode.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DayPrefixRandomCodeStrategy;\n\npublic class DayCode {\n    static RandomCodeStrategy strategy;\n\n    static {\n        DayPrefixRandomCodeStrategy dayPrefixCodeStrategy = new DayPrefixRandomCodeStrategy(\"yyMM\");\n        dayPrefixCodeStrategy.setMinRandomSize(7);\n        dayPrefixCodeStrategy.setMaxRandomSize(7);\n        strategy = dayPrefixCodeStrategy;\n        strategy.init();\n    }\n\n    public static synchronized String next() {\n        return String.format(\"%d-%04d-%07d\", Id.getWorkerId(), strategy.prefix(), strategy.next());\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/Id.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DefaultWorkerIdStrategy;\n\npublic class Id {\n    private static WorkerIdStrategy workerIdStrategy;\n    private static IdWorker idWorker;\n\n    static {\n        configure(DefaultWorkerIdStrategy.instance);\n    }\n\n    public static synchronized void configure(WorkerIdStrategy custom) {\n        if (workerIdStrategy == custom) return;\n\n        if (workerIdStrategy != null) workerIdStrategy.release();\n        workerIdStrategy = custom;\n        workerIdStrategy.initialize();\n        idWorker = new IdWorker(workerIdStrategy.availableWorkerId());\n    }\n\n    public static long next() {\n        return idWorker.nextId();\n    }\n\n    public static long getWorkerId() {\n        return idWorker.getWorkerId();\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/IdWorker.java",
    "content": "package org.n3r.idworker;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.security.SecureRandom;\n\npublic class IdWorker {\n    protected long epoch = 1288834974657L;\n//    protected long epoch = 1387886498127L; // 2013-12-24 20:01:38.127\n    \n\n    protected long workerIdBits = 10L;\n    protected long maxWorkerId = -1L ^ (-1L << workerIdBits);\n    protected long sequenceBits = 11L;\n\n    protected long workerIdShift = sequenceBits;\n    protected long timestampLeftShift = sequenceBits + workerIdBits;\n    protected long sequenceMask = -1L ^ (-1L << sequenceBits);\n\n    protected long lastMillis = -1L;\n\n    protected final long workerId;\n    protected long sequence = 0L;\n    protected Logger logger = LoggerFactory.getLogger(IdWorker.class);\n\n    public IdWorker(long workerId) {\n        this.workerId = checkWorkerId(workerId);\n\n        logger.debug(\"worker starting. timestamp left shift {}, worker id {}\", timestampLeftShift, workerId);\n    }\n\n    public long getEpoch() {\n        return epoch;\n    }\n\n    private long checkWorkerId(long workerId) {\n        // sanity check for workerId\n        if (workerId > maxWorkerId || workerId < 0) {\n            int rand = new SecureRandom().nextInt((int) maxWorkerId + 1);\n            logger.warn(\"worker Id can't be greater than {} or less than 0, use a random {}\", maxWorkerId, rand);\n            return rand;\n        }\n\n        return workerId;\n    }\n\n    public synchronized long nextId() {\n        long timestamp = millisGen();\n\n        if (timestamp < lastMillis) {\n            logger.error(\"clock is moving backwards.  Rejecting requests until {}.\", lastMillis);\n            throw new InvalidSystemClock(String.format(\n                    \"Clock moved backwards.  Refusing to generate id for {} milliseconds\", lastMillis - timestamp));\n        }\n\n        if (lastMillis == timestamp) {\n            sequence = (sequence + 1) & sequenceMask;\n            if (sequence == 0)\n                timestamp = tilNextMillis(lastMillis);\n        } else {\n            sequence = 0;\n        }\n\n        lastMillis = timestamp;\n        long diff = timestamp - getEpoch();\n        return (diff << timestampLeftShift) |\n                (workerId << workerIdShift) |\n                sequence;\n    }\n\n    protected long tilNextMillis(long lastMillis) {\n        long millis = millisGen();\n        while (millis <= lastMillis)\n            millis = millisGen();\n\n        return millis;\n    }\n\n    protected long millisGen() {\n        return System.currentTimeMillis();\n    }\n\n    public long getLastMillis() {\n        return lastMillis;\n    }\n\n    public long getWorkerId() {\n        return workerId;\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/InvalidSystemClock.java",
    "content": "package org.n3r.idworker;\n\npublic class InvalidSystemClock extends RuntimeException {\n    public InvalidSystemClock(String message) {\n        super(message);\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/RandomCodeStrategy.java",
    "content": "package org.n3r.idworker;\n\npublic interface RandomCodeStrategy {\n    void init();\n\n    int prefix();\n\n    int next();\n\n    void release();\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/Sid.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DefaultWorkerIdStrategy;\nimport org.n3r.idworker.utils.Utils;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\npublic class Sid {\n    private static WorkerIdStrategy workerIdStrategy;\n    private static IdWorker idWorker;\n\n    static {\n        configure(DefaultWorkerIdStrategy.instance);\n    }\n\n\n    public static synchronized void configure(WorkerIdStrategy custom) {\n        if (workerIdStrategy != null) workerIdStrategy.release();\n        workerIdStrategy = custom;\n        idWorker = new IdWorker(workerIdStrategy.availableWorkerId()) {\n            @Override\n            public long getEpoch() {\n                return Utils.midnightMillis();\n            }\n        };\n    }\n\n    /**\n     * 一天最大毫秒86400000，最大占用27比特\n     * 27+10+11=48位 最大值281474976710655(15字)，YK0XXHZ827(10字)\n     * 6位(YYMMDD)+15位，共21位\n     *\n     * @return 固定21位数字字符串\n     */\n\n    public static String next() {\n        long id = idWorker.nextId();\n        String yyMMdd = new SimpleDateFormat(\"yyMMdd\").format(new Date());\n        return yyMMdd + String.format(\"%014d\", id);\n    }\n\n\n    /**\n     * 返回固定16位的字母数字混编的字符串。\n     */\n    public String nextShort() {\n        long id = idWorker.nextId();\n        String yyMMdd = new SimpleDateFormat(\"yyMMdd\").format(new Date());\n        return yyMMdd + Utils.padLeft(Utils.encode(id), 10, '0');\n    }\n    \n//    public static void main(String[] args) {\n//\t\tString aa = new Sid().nextShort();\n//\t\tString bb = new Sid().next();\n//\t\t\n//\t\tSystem.out.println(aa);\n//\t\tSystem.out.println(bb);\n//\t}\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/Test.java",
    "content": "package org.n3r.idworker;\n\npublic class Test {\n\n\tpublic static void main(String[] args) {\n\n\t\tfor (int i = 0 ; i < 1000 ; i ++) {\n//\t\t\tSystem.out.println(Sid.nextShort());\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/WorkerIdStrategy.java",
    "content": "package org.n3r.idworker;\n\npublic interface WorkerIdStrategy {\n    void initialize();\n\n    long availableWorkerId();\n\n    void release();\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/strategy/DayPrefixRandomCodeStrategy.java",
    "content": "package org.n3r.idworker.strategy;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\npublic class DayPrefixRandomCodeStrategy extends DefaultRandomCodeStrategy {\n    private final String dayFormat;\n    private String lastDay;\n\n    public DayPrefixRandomCodeStrategy(String dayFormat) {\n        this.dayFormat = dayFormat;\n    }\n\n    @Override\n    public void init() {\n        String day = createDate();\n        if (day.equals(lastDay))\n            throw new RuntimeException(\"init failed for day unrolled\");\n\n        lastDay = day;\n\n        availableCodes.clear();\n        release();\n\n        prefixIndex = Integer.parseInt(lastDay);\n        if (tryUsePrefix()) return;\n\n        throw new RuntimeException(\"prefix is not available \" + prefixIndex);\n    }\n\n    private String createDate() {\n        return new SimpleDateFormat(dayFormat).format(new Date());\n    }\n\n    @Override\n    public int next() {\n        if (!lastDay.equals(createDate())) init();\n\n        return super.next();\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/strategy/DefaultRandomCodeStrategy.java",
    "content": "package org.n3r.idworker.strategy;\n\nimport org.n3r.idworker.Id;\nimport org.n3r.idworker.RandomCodeStrategy;\nimport org.n3r.idworker.utils.Utils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.security.SecureRandom;\nimport java.util.ArrayDeque;\nimport java.util.BitSet;\nimport java.util.Queue;\n\npublic class DefaultRandomCodeStrategy implements RandomCodeStrategy {\n    public static final int MAX_BITS = 1000000;\n\n    Logger log = LoggerFactory.getLogger(DefaultRandomCodeStrategy.class);\n\n    File idWorkerHome = Utils.createIdWorkerHome();\n    volatile FileLock fileLock;\n    BitSet codesFilter;\n\n    int prefixIndex = -1;\n    File codePrefixIndex;\n\n    int minRandomSize = 6;\n    int maxRandomSize = 6;\n\n    public DefaultRandomCodeStrategy() {\n        destroyFileLockWhenShutdown();\n    }\n\n    @Override\n    public void init() {\n        release();\n\n        while (++prefixIndex < 1000) {\n            if (tryUsePrefix()) return;\n        }\n\n        throw new RuntimeException(\"all prefixes are used up, the world maybe ends!\");\n    }\n\n    public DefaultRandomCodeStrategy setMinRandomSize(int minRandomSize) {\n        this.minRandomSize = minRandomSize;\n        return this;\n    }\n\n    public DefaultRandomCodeStrategy setMaxRandomSize(int maxRandomSize) {\n        this.maxRandomSize = maxRandomSize;\n        return this;\n    }\n\n    protected boolean tryUsePrefix() {\n        codePrefixIndex = new File(idWorkerHome, Id.getWorkerId() + \".code.prefix.\" + prefixIndex);\n\n        if (!createPrefixIndexFile()) return false;\n        if (!createFileLock()) return false;\n        if (!createBloomFilter()) return false;\n\n        log.info(\"get available prefix index file {}\", codePrefixIndex);\n\n        return true;\n    }\n\n    private boolean createFileLock() {\n        if (fileLock != null) fileLock.destroy();\n        fileLock = new FileLock(codePrefixIndex);\n        return fileLock.tryLock();\n    }\n\n    private boolean createBloomFilter() {\n        codesFilter = fileLock.readObject();\n        if (codesFilter == null) {\n            log.info(\"create new bloom filter\");\n            codesFilter = new BitSet(MAX_BITS); // 2^24\n        } else {\n            int size = codesFilter.cardinality();\n            if (size >= MAX_BITS) {\n                log.warn(\"bloom filter with prefix file {} is already full\", codePrefixIndex);\n                return false;\n            }\n            log.info(\"recreate bloom filter with cardinality {}\", size);\n        }\n\n        return true;\n    }\n\n    private void destroyFileLockWhenShutdown() {\n        Runtime.getRuntime().addShutdownHook(new Thread() {\n            @Override\n            public void run() {\n                release();\n            }\n        });\n    }\n\n    private boolean createPrefixIndexFile() {\n        try {\n            codePrefixIndex.createNewFile();\n            return codePrefixIndex.exists();\n        } catch (IOException e) {\n            e.printStackTrace();\n            log.warn(\"create file {} error {}\", codePrefixIndex, e.getMessage());\n        }\n        return false;\n    }\n\n    @Override\n    public int prefix() {\n        return prefixIndex;\n    }\n\n    static final int CACHE_CODES_NUM = 1000;\n\n    SecureRandom secureRandom = new SecureRandom();\n    Queue<Integer> availableCodes = new ArrayDeque<Integer>(CACHE_CODES_NUM);\n\n    @Override\n    public int next() {\n        if (availableCodes.isEmpty()) generate();\n\n        return availableCodes.poll();\n    }\n\n    @Override\n    public synchronized void release() {\n        if (fileLock != null) {\n            fileLock.writeObject(codesFilter);\n            fileLock.destroy();\n            fileLock = null;\n        }\n    }\n\n    private void generate() {\n        for (int i = 0; i < CACHE_CODES_NUM; ++i)\n            availableCodes.add(generateOne());\n\n        fileLock.writeObject(codesFilter);\n    }\n\n    private int generateOne() {\n        while (true) {\n            int code = secureRandom.nextInt(max(maxRandomSize));\n            boolean existed = contains(code);\n\n            code = !existed ? add(code) : tryFindAvailableCode(code);\n            if (code >= 0) return code;\n\n            init();\n        }\n    }\n\n    private int tryFindAvailableCode(int code) {\n        int next = codesFilter.nextClearBit(code);\n        if (next != -1 && next < max(maxRandomSize)) return add(next);\n\n        next = codesFilter.previousClearBit(code);\n        if (next != -1) return add(next);\n\n        return -1;\n    }\n\n    private int add(int code) {\n        codesFilter.set(code);\n        return code;\n    }\n\n    private boolean contains(int code) {\n        return codesFilter.get(code);\n    }\n\n\n    private int max(int size) {\n        switch (size) {\n            case 1: // fall through\n            case 2: // fall through\n            case 3: // fall through\n            case 4:\n                return 10000;\n            case 5:\n                return 100000;\n            case 6:\n                return 1000000;\n            case 7:\n                return 10000000;\n            case 8:\n                return 100000000;\n            case 9:\n                return 1000000000;\n            default:\n                return Integer.MAX_VALUE;\n        }\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/strategy/DefaultWorkerIdStrategy.java",
    "content": "package org.n3r.idworker.strategy;\n\nimport org.n3r.idworker.WorkerIdStrategy;\nimport org.n3r.idworker.utils.HttpReq;\nimport org.n3r.idworker.utils.Ip;\nimport org.n3r.idworker.utils.Props;\nimport org.n3r.idworker.utils.Utils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.security.SecureRandom;\nimport java.util.Properties;\nimport java.util.Random;\n\npublic class DefaultWorkerIdStrategy implements WorkerIdStrategy {\n    static long workerIdBits = 10L;\n    static long maxWorkerId = -1L ^ (-1L << workerIdBits);\n    static Random random = new SecureRandom();\n\n    public static final WorkerIdStrategy instance = new DefaultWorkerIdStrategy();\n\n    private final Properties props =\n            Props.tryProperties(\"idworker-client.properties\", Utils.DOT_IDWORKERS);\n    private final String idWorkerServerUrl =\n            props.getProperty(\"server.address\", \"http://id.worker.server:18001\");\n\n    String userName = System.getProperty(\"user.name\");\n\n    String ipDotUsername = Ip.ip + \".\" + userName;\n    String ipudotlock = ipDotUsername + \".lock.\";\n    int workerIdIndex = ipudotlock.length();\n    long workerId;\n    FileLock fileLock;\n\n    Logger logger = LoggerFactory.getLogger(DefaultWorkerIdStrategy.class);\n    private boolean inited;\n\n\n    private void init() {\n        workerId = findAvailWorkerId();\n        if (workerId >= 0) {\n            destroyFileLockWhenShutdown();\n            startSyncThread();\n        } else {\n            syncWithWorkerIdServer();\n            workerId = findAvailWorkerId();\n            if (workerId < 0) workerId = increaseWithWorkerIdServer();\n        }\n\n        if (workerId < 0) workerId = tryToCreateOnIp();\n        if (workerId < 0) {\n            logger.warn(\"DANGEROUS!!! Try to use random worker id.\");\n            workerId = tryToRandomOnIp(); // Try avoiding! it could cause duplicated\n        }\n\n        if (workerId < 0) {\n            logger.warn(\"the world may be ended!\");\n            throw new RuntimeException(\"the world may be ended\");\n        }\n    }\n\n    private void destroyFileLockWhenShutdown() {\n        Runtime.getRuntime().addShutdownHook(new Thread() {\n            @Override\n            public void run() {\n                fileLock.destroy();\n            }\n        });\n    }\n\n    private void startSyncThread() {\n        new Thread() {\n            @Override\n            public void run() {\n                syncWithWorkerIdServer();\n            }\n        }.start();\n    }\n\n    private long increaseWithWorkerIdServer() {\n        String incId = HttpReq.get(idWorkerServerUrl)\n                .req(\"/inc\")\n                .param(\"ipu\", ipDotUsername)\n                .exec();\n        if (incId == null || incId.trim().isEmpty()) return -1L;\n\n        long lid = Long.parseLong(incId);\n\n        return checkAvail(lid);\n    }\n\n    private long tryToCreateOnIp() {\n        long wid = Ip.lip & maxWorkerId;\n\n        return checkAvail(wid);\n    }\n\n    private long tryToRandomOnIp() {\n        long avaiWorkerId = -1L;\n        long tryTimes = -1;\n\n        while (avaiWorkerId < 0 && ++tryTimes < maxWorkerId) {\n            long wid = Ip.lip & random.nextInt((int) maxWorkerId);\n\n            avaiWorkerId = checkAvail(wid);\n        }\n        return avaiWorkerId;\n    }\n\n    private long checkAvail(long wid) {\n        long availWorkerId = -1L;\n        try {\n            File idWorkerHome = Utils.createIdWorkerHome();\n            new File(idWorkerHome, ipudotlock + String.format(\"%04d\", wid)).createNewFile();\n            availWorkerId = findAvailWorkerId();\n        } catch (IOException e) {\n            logger.warn(\"checkAvail error\", e);\n        }\n\n        return availWorkerId;\n    }\n\n    private void syncWithWorkerIdServer() {\n        String syncIds = HttpReq.get(idWorkerServerUrl).req(\"/sync\")\n                .param(\"ipu\", ipDotUsername).param(\"ids\", buildWorkerIdsOfCurrentIp())\n                .exec();\n        if (syncIds == null || syncIds.trim().isEmpty()) return;\n\n        String[] syncIdsArr = syncIds.split(\",\");\n        File idWorkerHome = Utils.createIdWorkerHome();\n        for (String syncId : syncIdsArr) {\n            try {\n                new File(idWorkerHome, ipudotlock + syncId).createNewFile();\n            } catch (IOException e) {\n                logger.warn(\"create workerid lock file error\", e);\n            }\n        }\n    }\n\n    private String buildWorkerIdsOfCurrentIp() {\n        StringBuilder sb = new StringBuilder();\n        File idWorkerHome = Utils.createIdWorkerHome();\n        for (File lockFile : idWorkerHome.listFiles()) {\n            // check the format like 10.142.1.151.lock.0001\n            if (!lockFile.getName().startsWith(ipudotlock)) continue;\n\n            String workerId = lockFile.getName().substring(workerIdIndex);\n            if (!workerId.matches(\"\\\\d\\\\d\\\\d\\\\d\")) continue;\n\n            if (sb.length() > 0) sb.append(',');\n            sb.append(workerId);\n        }\n\n        return sb.toString();\n    }\n\n\n    /**\n     * Find the local available worker id.\n     *\n     * @return -1 when N/A\n     */\n    private long findAvailWorkerId() {\n        File idWorkerHome = Utils.createIdWorkerHome();\n\n        for (File lockFile : idWorkerHome.listFiles()) {\n            // check the format like 10.142.1.151.lock.0001\n            if (!lockFile.getName().startsWith(ipudotlock)) continue;\n\n            String workerId = lockFile.getName().substring(workerIdIndex);\n            if (!workerId.matches(\"\\\\d\\\\d\\\\d\\\\d\")) continue;\n\n            FileLock fileLock = new FileLock(lockFile);\n            if (!fileLock.tryLock()) {\n                fileLock.destroy();\n                continue;\n            }\n\n            this.fileLock = fileLock;\n            return Long.parseLong(workerId);\n        }\n\n        return -1;\n    }\n\n    @Override\n    public void initialize() {\n        if (inited) return;\n        init();\n        this.inited = true;\n    }\n\n    @Override\n    public long availableWorkerId() {\n        return workerId;\n    }\n\n    @Override\n    public void release() {\n        if (fileLock != null) fileLock.destroy();\n        inited = false;\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/strategy/FileLock.java",
    "content": "package org.n3r.idworker.strategy;\n\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.*;\nimport java.nio.channels.Channels;\nimport java.nio.channels.ClosedChannelException;\nimport java.nio.channels.FileChannel;\nimport java.nio.channels.OverlappingFileLockException;\n\n/**\n * A file lock a la flock/funlock\n * <p/>\n * The given path will be created and opened if it doesn't exist.\n */\npublic class FileLock {\n    private final File file;\n    private FileChannel channel;\n    private java.nio.channels.FileLock flock = null;\n    Logger logger = LoggerFactory.getLogger(FileLock.class);\n\n    public FileLock(File file) {\n        this.file = file;\n\n        try {\n            file.createNewFile(); // create the file if it doesn't exist\n            channel = new RandomAccessFile(file, \"rw\").getChannel();\n        } catch (IOException e) {\n            throw new RuntimeException(e);\n        }\n    }\n\n\n    /**\n     * Lock the file or throw an exception if the lock is already held\n     */\n    public void lock() {\n        try {\n            synchronized (this) {\n                logger.trace(\"Acquiring lock on {}\", file.getAbsolutePath());\n                flock = channel.lock();\n            }\n        } catch (IOException e) {\n            throw new RuntimeException(e);\n        }\n    }\n\n    /**\n     * Try to lock the file and return true if the locking succeeds\n     */\n    public boolean tryLock() {\n        synchronized (this) {\n            logger.trace(\"Acquiring lock on {}\", file.getAbsolutePath());\n            try {\n                // weirdly this method will return null if the lock is held by another\n                // process, but will throw an exception if the lock is held by this process\n                // so we have to handle both cases\n                flock = channel.tryLock();\n                return flock != null;\n            } catch (OverlappingFileLockException e) {\n                return false;\n            } catch (IOException e) {\n                throw new RuntimeException(e);\n            }\n        }\n    }\n\n    /**\n     * Unlock the lock if it is held\n     */\n    public void unlock() {\n        synchronized (this) {\n            logger.trace(\"Releasing lock on {}\", file.getAbsolutePath());\n            if (flock == null) return;\n            try {\n                flock.release();\n            } catch (ClosedChannelException e) {\n                // Ignore\n            } catch (IOException e) {\n                throw new RuntimeException(e);\n            }\n        }\n    }\n\n    /**\n     * Destroy this lock, closing the associated FileChannel\n     */\n    public void destroy() {\n        synchronized (this) {\n            unlock();\n            if (!channel.isOpen()) return;\n\n            try {\n                channel.close();\n            } catch (IOException e) {\n                throw new RuntimeException(e);\n            }\n        }\n    }\n\n\n    @SuppressWarnings(\"unchecked\")\n    public <T> T readObject() {\n        try {\n            InputStream is = Channels.newInputStream(channel);\n            ObjectInputStream objectReader = new ObjectInputStream(is);\n            return (T) objectReader.readObject();\n        } catch (EOFException e) {\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        }\n\n        return null;\n    }\n\n\n    public synchronized boolean writeObject(Object object) {\n        if (!channel.isOpen()) return false;\n\n        try {\n            channel.position(0);\n            OutputStream out = Channels.newOutputStream(channel);\n            ObjectOutputStream objectOutput = new ObjectOutputStream(out);\n            objectOutput.writeObject(object);\n            return true;\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        }\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/utils/HttpReq.java",
    "content": "package org.n3r.idworker.utils;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.ByteArrayOutputStream;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.UnsupportedEncodingException;\nimport java.net.HttpURLConnection;\nimport java.net.URL;\nimport java.net.URLEncoder;\n\npublic class HttpReq {\n    private final String baseUrl;\n    private String req;\n    private StringBuilder params = new StringBuilder();\n    Logger logger = LoggerFactory.getLogger(HttpReq.class);\n\n    public HttpReq(String baseUrl) {\n        this.baseUrl = baseUrl;\n    }\n\n    public static HttpReq get(String baseUrl) {\n        return new HttpReq(baseUrl);\n    }\n\n    public HttpReq req(String req) {\n        this.req = req;\n        return this;\n    }\n\n    public HttpReq param(String name, String value) {\n        if (params.length() > 0) params.append('&');\n        try {\n            params.append(name).append('=').append(URLEncoder.encode(value, \"UTF-8\"));\n        } catch (UnsupportedEncodingException e) {\n            throw new RuntimeException(e);\n        }\n\n        return this;\n    }\n\n    public String exec() {\n        HttpURLConnection http = null;\n        try {\n            http = (HttpURLConnection) new URL(baseUrl\n                    + (req == null ? \"\" : req)\n                    + (params.length() > 0 ? (\"?\" + params) : \"\")).openConnection();\n            http.setRequestProperty(\"Accept-Charset\", \"UTF-8\");\n            HttpURLConnection.setFollowRedirects(false);\n            http.setConnectTimeout(5 * 1000);\n            http.setReadTimeout(5 * 1000);\n            http.connect();\n\n            int status = http.getResponseCode();\n            String charset = getCharset(http.getHeaderField(\"Content-Type\"));\n\n            if (status == 200) {\n                return readResponseBody(http, charset);\n            } else {\n                logger.warn(\"non 200 respoonse :\" + readErrorResponseBody(http, status, charset));\n                return null;\n            }\n        } catch (Exception e) {\n            logger.error(\"exec error {}\", e.getMessage());\n            return null;\n        } finally {\n            if (http != null) http.disconnect();\n        }\n\n    }\n\n    private static String readErrorResponseBody(HttpURLConnection http, int status, String charset) throws IOException {\n        InputStream errorStream = http.getErrorStream();\n        if (errorStream != null) {\n            String error = toString(charset, errorStream);\n            return (\"STATUS CODE =\" + status + \"\\n\\n\" + error);\n        } else {\n            return (\"STATUS CODE =\" + status);\n        }\n    }\n\n    private static String readResponseBody(HttpURLConnection http, String charset) throws IOException {\n        InputStream inputStream = http.getInputStream();\n\n        return toString(charset, inputStream);\n    }\n\n    private static String toString(String charset, InputStream inputStream) throws IOException {\n        ByteArrayOutputStream baos = new ByteArrayOutputStream();\n        byte[] buffer = new byte[1024];\n\n        int length;\n        while ((length = inputStream.read(buffer)) != -1) {\n            baos.write(buffer, 0, length);\n        }\n\n        return new String(baos.toByteArray(), charset);\n    }\n\n    private static String getCharset(String contentType) {\n        if (contentType == null) return \"UTF-8\";\n\n        String charset = null;\n        for (String param : contentType.replace(\" \", \"\").split(\";\")) {\n            if (param.startsWith(\"charset=\")) {\n                charset = param.split(\"=\", 2)[1];\n                break;\n            }\n        }\n\n        return charset == null ? \"UTF-8\" : charset;\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/utils/IPv4Utils.java",
    "content": "package org.n3r.idworker.utils;\n\n/**\n * This utility provides methods to either convert an IPv4 address to its long format or a 32bit dotted format.\n *\n * @author Aion\n *         Created on 22/11/12\n */\npublic class IPv4Utils {\n\n    /**\n     * Returns the long format of the provided IP address.\n     *\n     * @param ipAddress the IP address\n     * @return the long format of <code>ipAddress</code>\n     * @throws IllegalArgumentException if <code>ipAddress</code> is invalid\n     */\n    public static long toLong(String ipAddress) {\n        if (ipAddress == null || ipAddress.isEmpty()) {\n            throw new IllegalArgumentException(\"ip address cannot be null or empty\");\n        }\n        String[] octets = ipAddress.split(java.util.regex.Pattern.quote(\".\"));\n        if (octets.length != 4) {\n            throw new IllegalArgumentException(\"invalid ip address\");\n        }\n        long ip = 0;\n        for (int i = 3; i >= 0; i--) {\n            long octet = Long.parseLong(octets[3 - i]);\n            if (octet > 255 || octet < 0) {\n                throw new IllegalArgumentException(\"invalid ip address\");\n            }\n            ip |= octet << (i * 8);\n        }\n        return ip;\n    }\n\n    /**\n     * Returns the 32bit dotted format of the provided long ip.\n     *\n     * @param ip the long ip\n     * @return the 32bit dotted format of <code>ip</code>\n     * @throws IllegalArgumentException if <code>ip</code> is invalid\n     */\n    public static String toString(long ip) {\n        // if ip is bigger than 255.255.255.255 or smaller than 0.0.0.0\n        if (ip > 4294967295l || ip < 0) {\n            throw new IllegalArgumentException(\"invalid ip\");\n        }\n        StringBuilder ipAddress = new StringBuilder();\n        for (int i = 3; i >= 0; i--) {\n            int shift = i * 8;\n            ipAddress.append((ip & (0xff << shift)) >> shift);\n            if (i > 0) {\n                ipAddress.append(\".\");\n            }\n        }\n        return ipAddress.toString();\n    }\n\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/utils/Ip.java",
    "content": "package org.n3r.idworker.utils;\n\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.net.Inet4Address;\nimport java.net.InetAddress;\nimport java.net.NetworkInterface;\nimport java.net.SocketException;\nimport java.util.Enumeration;\n\npublic class Ip {\n    static Logger logger = LoggerFactory.getLogger(Ip.class);\n\n    public static String ip;\n    public static long lip;\n\n    static {\n        try {\n            InetAddress localHostLANAddress = getFirstNonLoopbackAddress();\n            ip = localHostLANAddress.getHostAddress();\n\n            byte[] address = localHostLANAddress.getAddress();\n            lip =  ((address [0] & 0xFFL) << (3*8)) +\n                    ((address [1] & 0xFFL) << (2*8)) +\n                    ((address [2] & 0xFFL) << (1*8)) +\n                    (address [3] &  0xFFL);\n        } catch (Exception e) {\n            logger.error(\"get ipv4 failed \", e);\n        }\n    }\n\n    private static InetAddress getFirstNonLoopbackAddress() throws SocketException {\n        Enumeration en = NetworkInterface.getNetworkInterfaces();\n        while (en.hasMoreElements()) {\n            NetworkInterface i = (NetworkInterface) en.nextElement();\n            for (Enumeration en2 = i.getInetAddresses(); en2.hasMoreElements(); ) {\n                InetAddress addr = (InetAddress) en2.nextElement();\n                if (addr.isLoopbackAddress()) continue;\n\n                if (addr instanceof Inet4Address) {\n                    return addr;\n                }\n            }\n        }\n        return null;\n    }\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/utils/Props.java",
    "content": "package org.n3r.idworker.utils;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.*;\nimport java.util.Properties;\n\nimport static java.io.File.separator;\nimport static org.n3r.idworker.utils.Serializes.closeQuietly;\n\npublic class Props {\n    static Logger log = LoggerFactory.getLogger(Props.class);\n\n    public static Properties tryProperties(String propertiesFileName, String userHomeBasePath) {\n        Properties properties = new Properties();\n        InputStream is = null;\n        try {\n            is = Props.tryResource(propertiesFileName, userHomeBasePath, Silent.ON);\n            if (is != null) properties.load(is);\n        } catch (IOException e) {\n            log.error(\"load properties error: {}\", e.getMessage());\n        } finally {\n            closeQuietly(is);\n        }\n\n        return properties;\n    }\n\n\n    enum Silent {ON, OFF}\n\n    public static InputStream tryResource(String propertiesFileName, String userHomeBasePath, Silent silent) {\n        InputStream is = currentDirResource(new File(propertiesFileName));\n        if (is != null) return is;\n\n        is = userHomeResource(propertiesFileName, userHomeBasePath);\n        if (is != null) return is;\n\n        is = classpathResource(propertiesFileName);\n        if (is != null || silent == Silent.ON) return is;\n\n        throw new RuntimeException(\"fail to find \" + propertiesFileName + \" in current dir or classpath\");\n    }\n\n    private static InputStream userHomeResource(String pathname, String appHome) {\n        String filePath = System.getProperty(\"user.home\") + separator + appHome;\n        File dir = new File(filePath);\n        if (!dir.exists()) return null;\n\n        return currentDirResource(new File(dir, pathname));\n    }\n\n    private static InputStream currentDirResource(File file) {\n        if (!file.exists()) return null;\n\n        try {\n            return new FileInputStream(file);\n        } catch (FileNotFoundException e) {\n            // This should not happened\n            log.error(\"read file {} error\", file, e);\n            return null;\n        }\n    }\n\n    public static InputStream classpathResource(String resourceName) {\n        return Props.class.getClassLoader().getResourceAsStream(resourceName);\n    }\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/utils/Serializes.java",
    "content": "package org.n3r.idworker.utils;\n\nimport java.io.*;\nimport java.nio.channels.FileChannel;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class Serializes {\n\n    @SuppressWarnings(\"unchecked\")\n    public static <T> List<T> readObjects(File file) {\n        ArrayList<T> objects = new ArrayList<T>();\n        ObjectInputStream objectReader = null;\n        FileInputStream fis = null;\n        try {\n            fis = new FileInputStream(file);\n            objectReader = new ObjectInputStream(fis);\n            while (true)\n                objects.add((T) objectReader.readObject());\n\n        } catch (EOFException e) {\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectReader);\n            closeQuietly(fis);\n        }\n\n        return objects;\n    }\n\n\n    @SuppressWarnings(\"unchecked\")\n    public static <T> T readObject(File file) {\n        ObjectInputStream objectReader = null;\n        FileInputStream fis = null;\n        try {\n            fis = new FileInputStream(file);\n            objectReader = new ObjectInputStream(fis);\n            return (T) objectReader.readObject();\n\n        } catch (EOFException e) {\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectReader);\n            closeQuietly(fis);\n        }\n\n        return null;\n    }\n\n    public static void writeObject(File file, Object object) {\n        ObjectOutputStream objectOutput = null;\n        FileOutputStream fos = null;\n        try {\n            fos = new FileOutputStream(file);\n            objectOutput = new ObjectOutputStream(fos);\n            objectOutput.writeObject(object);\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectOutput);\n            closeQuietly(fos);\n        }\n    }\n\n    public static void writeObject(FileOutputStream fos, Object object) {\n        FileChannel channel = fos.getChannel();\n        if (!channel.isOpen()) throw new RuntimeException(\"channel is closed\");\n\n        try {\n            channel.position(0);\n            ObjectOutputStream objectOutput = new ObjectOutputStream(fos);\n            objectOutput.writeObject(object);\n            fos.flush();\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n        }\n    }\n\n    public static void writeObjects(File file, Object... objects) {\n        ObjectOutputStream objectOutput = null;\n        FileOutputStream fos = null;\n        try {\n            fos = new FileOutputStream(file);\n            objectOutput = new ObjectOutputStream(fos);\n\n            for (Object object : objects)\n                objectOutput.writeObject(object);\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectOutput);\n            closeQuietly(fos);\n        }\n\n    }\n\n    public static void closeQuietly(OutputStream os) {\n        if (os != null) try {\n            os.close();\n        } catch (IOException e) {\n            // ignore\n        }\n    }\n\n\n    public static void closeQuietly(InputStream is) {\n        if (is != null) try {\n            is.close();\n        } catch (IOException e) {\n            // ignore\n        }\n\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/src/main/java/org/n3r/idworker/utils/Utils.java",
    "content": "package org.n3r.idworker.utils;\n\nimport java.io.*;\nimport java.sql.Timestamp;\nimport java.text.SimpleDateFormat;\nimport java.util.Calendar;\n\npublic class Utils {\n\n    public static final String DOT_IDWORKERS = \".idworkers\";\n\n    public static ClassLoader getClassLoader() {\n        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();\n        return contextClassLoader != null ? contextClassLoader : Utils.class.getClassLoader();\n    }\n\n\n    public static InputStream classResourceToStream(String resourceName) {\n        return getClassLoader().getResourceAsStream(resourceName);\n    }\n\n\n    public static String firstLine(String classResourceName) {\n        InputStream inputStream = null;\n        try {\n            inputStream = classResourceToStream(classResourceName);\n            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, \"UTF-8\"));\n\n            return bufferedReader.readLine();\n        } catch (IOException e) {\n            return null;\n        } finally {\n            if (inputStream != null) try {\n                inputStream.close();\n            } catch (IOException e) {\n                // ignore\n            }\n        }\n    }\n\n    public static String checkNotEmpty(String param, String name) {\n        if (param == null || param.isEmpty())\n            throw new IllegalArgumentException(name + \" is empty\");\n\n        return param;\n    }\n\n\n    public static long midnightMillis() {\n        // today\n        Calendar date = Calendar.getInstance();\n        // reset hour, minutes, seconds and millis\n        date.set(Calendar.HOUR_OF_DAY, 0);\n        date.set(Calendar.MINUTE, 0);\n        date.set(Calendar.SECOND, 0);\n        date.set(Calendar.MILLISECOND, 0);\n\n        return date.getTimeInMillis();\n    }\n\n    public static void main(String[] args) {\n        // 2013-12-25 00:00:00.000\n        System.out.println(new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Timestamp(midnightMillis())));\n        System.out.println(encode(281474976710655L));\n    }\n\n    public static long decode(String s, String symbols) {\n        final int B = symbols.length();\n        long num = 0;\n        for (char ch : s.toCharArray()) {\n            num *= B;\n            num += symbols.indexOf(ch);\n        }\n        return num;\n    }\n\n    public static String encode(long num) {\n        return encode(num, defaultRange);\n    }\n\n    public static String encode(long num, String symbols) {\n        final int B = symbols.length();\n        StringBuilder sb = new StringBuilder();\n        while (num != 0) {\n            sb.append(symbols.charAt((int) (num % B)));\n            num /= B;\n        }\n        return sb.reverse().toString();\n    }\n\n    // all un-clearly-recognized letters are skiped.\n    static String defaultRange = \"0123456789ABCDFGHKMNPRSTWXYZ\";\n\n    public static String padLeft(String str, int size, char padChar) {\n        if (str.length() >= size) return str;\n\n        StringBuilder s = new StringBuilder();\n        for (int i = size - str.length(); i > 0; --i) {\n            s.append(padChar);\n        }\n        s.append(str);\n\n        return s.toString();\n    }\n\n    public static File createIdWorkerHome() {\n        String userHome = System.getProperty(\"user.home\");\n        File idWorkerHome = new File(userHome + File.separator + DOT_IDWORKERS);\n        idWorkerHome.mkdirs();\n        if (idWorkerHome.isDirectory()) return idWorkerHome;\n\n        throw new RuntimeException(\"failed to create .idworkers at user home\");\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/target/maven-archiver/pom.properties",
    "content": "#Generated by Maven\n#Mon Jun 25 16:40:17 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kkvideo-admin-common\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\Sid.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\IdWorker.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\enums\\BGMOperatorTypeEnum.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\DayPrefixRandomCodeStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\Test.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\TimeAgoUtils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\MergeVideoMp3.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\DefaultRandomCodeStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\JsonUtils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\DayCode.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Utils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\PagedResult.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Serializes.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\IPv4Utils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\WorkerIdStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\enums\\VideoStatusEnum.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Ip.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\Code.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\HttpReq.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\KkJsonResult.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\InvalidSystemClock.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\MD5Utils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\Id.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\DefaultWorkerIdStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Props.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\RandomCodeStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\FFMpegTest.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\FileLock.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-common\\src\\main\\java\\kkvideo\\admin\\utils\\FetchVideoCover.java\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>kkvideo-admin</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kkvideo-admin-dao</artifactId>\n\n\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kkvideo-admin-pojo</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n\n        <!-- Mybatis -->\n        <dependency>\n            <groupId>org.mybatis</groupId>\n            <artifactId>mybatis</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.mybatis</groupId>\n            <artifactId>mybatis-spring</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.github.miemiedev</groupId>\n            <artifactId>mybatis-paginator</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.github.pagehelper</groupId>\n            <artifactId>pagehelper</artifactId>\n        </dependency>\n        <!-- MySql -->\n        <dependency>\n            <groupId>mysql</groupId>\n            <artifactId>mysql-connector-java</artifactId>\n        </dependency>\n        <!-- 连接池 -->\n        <dependency>\n            <groupId>com.alibaba</groupId>\n            <artifactId>druid</artifactId>\n        </dependency>\n\n    </dependencies>\n\n    <build>\n\n        <resources>\n            <!-- 如果不加，那么打包的时候mapper文件不会被加载进来 -->\n            <resource>\n                <directory>src/main/java</directory>\n                <includes>\n                    <include>**/*.properties</include>\n                    <include>**/*.xml</include>\n                </includes>\n                <filtering>false</filtering>\n            </resource>\n        </resources>\n\n    </build>\n\n\n</project>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/BgmMapper.java",
    "content": "package kkvideo.admin.mapper;\n\nimport kkvideo.admin.pojo.Bgm;\nimport kkvideo.admin.pojo.BgmExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface BgmMapper {\n    int countByExample(BgmExample example);\n\n    int deleteByExample(BgmExample example);\n\n    int deleteByPrimaryKey(String id);\n\n    int insert(Bgm record);\n\n    int insertSelective(Bgm record);\n\n    List<Bgm> selectByExample(BgmExample example);\n\n    Bgm selectByPrimaryKey(String id);\n\n    int updateByExampleSelective(@Param(\"record\") Bgm record, @Param(\"example\") BgmExample example);\n\n    int updateByExample(@Param(\"record\") Bgm record, @Param(\"example\") BgmExample example);\n\n    int updateByPrimaryKeySelective(Bgm record);\n\n    int updateByPrimaryKey(Bgm record);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/BgmMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.BgmMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.Bgm\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"author\" property=\"author\" jdbcType=\"VARCHAR\" />\n    <result column=\"name\" property=\"name\" jdbcType=\"VARCHAR\" />\n    <result column=\"path\" property=\"path\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, author, name, path\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.BgmExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from bgm\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from bgm\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from bgm\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.BgmExample\" >\n    delete from bgm\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    insert into bgm (id, author, name, \n      path)\n    values (#{id,jdbcType=VARCHAR}, #{author,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, \n      #{path,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    insert into bgm\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"author != null\" >\n        author,\n      </if>\n      <if test=\"name != null\" >\n        name,\n      </if>\n      <if test=\"path != null\" >\n        path,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"author != null\" >\n        #{author,jdbcType=VARCHAR},\n      </if>\n      <if test=\"name != null\" >\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"path != null\" >\n        #{path,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.BgmExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from bgm\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update bgm\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.author != null\" >\n        author = #{record.author,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.name != null\" >\n        name = #{record.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.path != null\" >\n        path = #{record.path,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update bgm\n    set id = #{record.id,jdbcType=VARCHAR},\n      author = #{record.author,jdbcType=VARCHAR},\n      name = #{record.name,jdbcType=VARCHAR},\n      path = #{record.path,jdbcType=VARCHAR}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    update bgm\n    <set >\n      <if test=\"author != null\" >\n        author = #{author,jdbcType=VARCHAR},\n      </if>\n      <if test=\"name != null\" >\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"path != null\" >\n        path = #{path,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    update bgm\n    set author = #{author,jdbcType=VARCHAR},\n      name = #{name,jdbcType=VARCHAR},\n      path = #{path,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersMapper.java",
    "content": "package kkvideo.admin.mapper;\n\nimport kkvideo.admin.pojo.Users;\nimport kkvideo.admin.pojo.UsersExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface UsersMapper {\n    int countByExample(UsersExample example);\n\n    int deleteByExample(UsersExample example);\n\n    int deleteByPrimaryKey(String id);\n\n    int insert(Users record);\n\n    int insertSelective(Users record);\n\n    List<Users> selectByExample(UsersExample example);\n\n    Users selectByPrimaryKey(String id);\n\n    int updateByExampleSelective(@Param(\"record\") Users record, @Param(\"example\") UsersExample example);\n\n    int updateByExample(@Param(\"record\") Users record, @Param(\"example\") UsersExample example);\n\n    int updateByPrimaryKeySelective(Users record);\n\n    int updateByPrimaryKey(Users record);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.UsersMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.Users\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"username\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"password\" property=\"password\" jdbcType=\"VARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"fans_counts\" property=\"fansCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"follow_counts\" property=\"followCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"receive_like_counts\" property=\"receiveLikeCounts\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, username, password, face_image, nickname, fans_counts, follow_counts, receive_like_counts\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.UsersExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from users\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from users\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from users\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.UsersExample\" >\n    delete from users\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    insert into users (id, username, password, \n      face_image, nickname, fans_counts, \n      follow_counts, receive_like_counts)\n    values (#{id,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, \n      #{faceImage,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{fansCounts,jdbcType=INTEGER}, \n      #{followCounts,jdbcType=INTEGER}, #{receiveLikeCounts,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    insert into users\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"username != null\" >\n        username,\n      </if>\n      <if test=\"password != null\" >\n        password,\n      </if>\n      <if test=\"faceImage != null\" >\n        face_image,\n      </if>\n      <if test=\"nickname != null\" >\n        nickname,\n      </if>\n      <if test=\"fansCounts != null\" >\n        fans_counts,\n      </if>\n      <if test=\"followCounts != null\" >\n        follow_counts,\n      </if>\n      <if test=\"receiveLikeCounts != null\" >\n        receive_like_counts,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"faceImage != null\" >\n        #{faceImage,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickname != null\" >\n        #{nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"fansCounts != null\" >\n        #{fansCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"followCounts != null\" >\n        #{followCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveLikeCounts != null\" >\n        #{receiveLikeCounts,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.UsersExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from users\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update users\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.username != null\" >\n        username = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.password != null\" >\n        password = #{record.password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.faceImage != null\" >\n        face_image = #{record.faceImage,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.nickname != null\" >\n        nickname = #{record.nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.fansCounts != null\" >\n        fans_counts = #{record.fansCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.followCounts != null\" >\n        follow_counts = #{record.followCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.receiveLikeCounts != null\" >\n        receive_like_counts = #{record.receiveLikeCounts,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update users\n    set id = #{record.id,jdbcType=VARCHAR},\n      username = #{record.username,jdbcType=VARCHAR},\n      password = #{record.password,jdbcType=VARCHAR},\n      face_image = #{record.faceImage,jdbcType=VARCHAR},\n      nickname = #{record.nickname,jdbcType=VARCHAR},\n      fans_counts = #{record.fansCounts,jdbcType=INTEGER},\n      follow_counts = #{record.followCounts,jdbcType=INTEGER},\n      receive_like_counts = #{record.receiveLikeCounts,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    update users\n    <set >\n      <if test=\"username != null\" >\n        username = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        password = #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"faceImage != null\" >\n        face_image = #{faceImage,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickname != null\" >\n        nickname = #{nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"fansCounts != null\" >\n        fans_counts = #{fansCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"followCounts != null\" >\n        follow_counts = #{followCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveLikeCounts != null\" >\n        receive_like_counts = #{receiveLikeCounts,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    update users\n    set username = #{username,jdbcType=VARCHAR},\n      password = #{password,jdbcType=VARCHAR},\n      face_image = #{faceImage,jdbcType=VARCHAR},\n      nickname = #{nickname,jdbcType=VARCHAR},\n      fans_counts = #{fansCounts,jdbcType=INTEGER},\n      follow_counts = #{followCounts,jdbcType=INTEGER},\n      receive_like_counts = #{receiveLikeCounts,jdbcType=INTEGER}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapper.java",
    "content": "package kkvideo.admin.mapper;\n\nimport kkvideo.admin.pojo.UsersReport;\nimport kkvideo.admin.pojo.UsersReportExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface UsersReportMapper {\n    int countByExample(UsersReportExample example);\n\n    int deleteByExample(UsersReportExample example);\n\n    int deleteByPrimaryKey(String id);\n\n    int insert(UsersReport record);\n\n    int insertSelective(UsersReport record);\n\n    List<UsersReport> selectByExample(UsersReportExample example);\n\n    UsersReport selectByPrimaryKey(String id);\n\n    int updateByExampleSelective(@Param(\"record\") UsersReport record, @Param(\"example\") UsersReportExample example);\n\n    int updateByExample(@Param(\"record\") UsersReport record, @Param(\"example\") UsersReportExample example);\n\n    int updateByPrimaryKeySelective(UsersReport record);\n\n    int updateByPrimaryKey(UsersReport record);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.UsersReportMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.UsersReport\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_user_id\" property=\"dealUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_video_id\" property=\"dealVideoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"title\" property=\"title\" jdbcType=\"VARCHAR\" />\n    <result column=\"content\" property=\"content\" jdbcType=\"VARCHAR\" />\n    <result column=\"userid\" property=\"userid\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_date\" property=\"createDate\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, deal_user_id, deal_video_id, title, content, userid, create_date\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.UsersReportExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from users_report\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from users_report\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from users_report\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.UsersReportExample\" >\n    delete from users_report\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    insert into users_report (id, deal_user_id, deal_video_id, \n      title, content, userid, \n      create_date)\n    values (#{id,jdbcType=VARCHAR}, #{dealUserId,jdbcType=VARCHAR}, #{dealVideoId,jdbcType=VARCHAR}, \n      #{title,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR}, #{userid,jdbcType=VARCHAR}, \n      #{createDate,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    insert into users_report\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"dealUserId != null\" >\n        deal_user_id,\n      </if>\n      <if test=\"dealVideoId != null\" >\n        deal_video_id,\n      </if>\n      <if test=\"title != null\" >\n        title,\n      </if>\n      <if test=\"content != null\" >\n        content,\n      </if>\n      <if test=\"userid != null\" >\n        userid,\n      </if>\n      <if test=\"createDate != null\" >\n        create_date,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"dealUserId != null\" >\n        #{dealUserId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"dealVideoId != null\" >\n        #{dealVideoId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\" >\n        #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createDate != null\" >\n        #{createDate,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.UsersReportExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from users_report\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update users_report\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.dealUserId != null\" >\n        deal_user_id = #{record.dealUserId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.dealVideoId != null\" >\n        deal_video_id = #{record.dealVideoId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.title != null\" >\n        title = #{record.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.content != null\" >\n        content = #{record.content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.userid != null\" >\n        userid = #{record.userid,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.createDate != null\" >\n        create_date = #{record.createDate,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update users_report\n    set id = #{record.id,jdbcType=VARCHAR},\n      deal_user_id = #{record.dealUserId,jdbcType=VARCHAR},\n      deal_video_id = #{record.dealVideoId,jdbcType=VARCHAR},\n      title = #{record.title,jdbcType=VARCHAR},\n      content = #{record.content,jdbcType=VARCHAR},\n      userid = #{record.userid,jdbcType=VARCHAR},\n      create_date = #{record.createDate,jdbcType=TIMESTAMP}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    update users_report\n    <set >\n      <if test=\"dealUserId != null\" >\n        deal_user_id = #{dealUserId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"dealVideoId != null\" >\n        deal_video_id = #{dealVideoId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\" >\n        content = #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userid != null\" >\n        userid = #{userid,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createDate != null\" >\n        create_date = #{createDate,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    update users_report\n    set deal_user_id = #{dealUserId,jdbcType=VARCHAR},\n      deal_video_id = #{dealVideoId,jdbcType=VARCHAR},\n      title = #{title,jdbcType=VARCHAR},\n      content = #{content,jdbcType=VARCHAR},\n      userid = #{userid,jdbcType=VARCHAR},\n      create_date = #{createDate,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapperCustom.java",
    "content": "package kkvideo.admin.mapper;\n\nimport kkvideo.admin.pojo.vo.Reports;\n\nimport java.util.List;\n\npublic interface UsersReportMapperCustom {\n    List<Reports> selectAllVideoReport();\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/UsersReportMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.UsersReportMapperCustom\" >\n\t\t\n\t<select id=\"selectAllVideoReport\" resultType=\"kkvideo.admin.pojo.vo.Reports\" >\n\t    select \n\t    \tur.id as id,\n\t    \tur.title as title,\n\t    \tur.content as content,\n\t    \tur.create_date as createDate,\n\t    \tdu.username as dealUsername,\n\t    \tv.id as dealVideoId,\n\t    \tv.video_desc as videoDesc,\n\t    \tv.video_path as videoPath,\n\t    \tv.status as status,\n\t    \tu.username as submitUsername\n\t \tfrom users_report ur \n\t\t \tleft join users du on ur.deal_user_id = du.id \n\t\t \tleft join videos v on ur.deal_video_id = v.id \n\t\t\tleft join users u on ur.userid=u.id\n\t\tgroup by ur.create_date desc\n\t</select>\n\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/VideosMapper.java",
    "content": "package kkvideo.admin.mapper;\n\nimport kkvideo.admin.pojo.Videos;\nimport kkvideo.admin.pojo.VideosExample;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface VideosMapper {\n    int countByExample(VideosExample example);\n\n    int deleteByExample(VideosExample example);\n\n    int deleteByPrimaryKey(String id);\n\n    int insert(Videos record);\n\n    int insertSelective(Videos record);\n\n    List<Videos> selectByExample(VideosExample example);\n\n    Videos selectByPrimaryKey(String id);\n\n    int updateByExampleSelective(@Param(\"record\") Videos record, @Param(\"example\") VideosExample example);\n\n    int updateByExample(@Param(\"record\") Videos record, @Param(\"example\") VideosExample example);\n\n    int updateByPrimaryKeySelective(Videos record);\n\n    int updateByPrimaryKey(Videos record);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/src/main/java/kkvideo/admin/mapper/VideosMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.VideosMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.Videos\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"audio_id\" property=\"audioId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_desc\" property=\"videoDesc\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_path\" property=\"videoPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_seconds\" property=\"videoSeconds\" jdbcType=\"REAL\" />\n    <result column=\"video_width\" property=\"videoWidth\" jdbcType=\"INTEGER\" />\n    <result column=\"video_height\" property=\"videoHeight\" jdbcType=\"INTEGER\" />\n    <result column=\"cover_path\" property=\"coverPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"like_counts\" property=\"likeCounts\" jdbcType=\"BIGINT\" />\n    <result column=\"status\" property=\"status\" jdbcType=\"INTEGER\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, user_id, audio_id, video_desc, video_path, video_seconds, video_width, video_height, \n    cover_path, like_counts, status, create_time\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.VideosExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from videos\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from videos\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from videos\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.VideosExample\" >\n    delete from videos\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    insert into videos (id, user_id, audio_id, \n      video_desc, video_path, video_seconds, \n      video_width, video_height, cover_path, \n      like_counts, status, create_time\n      )\n    values (#{id,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, #{audioId,jdbcType=VARCHAR}, \n      #{videoDesc,jdbcType=VARCHAR}, #{videoPath,jdbcType=VARCHAR}, #{videoSeconds,jdbcType=REAL}, \n      #{videoWidth,jdbcType=INTEGER}, #{videoHeight,jdbcType=INTEGER}, #{coverPath,jdbcType=VARCHAR}, \n      #{likeCounts,jdbcType=BIGINT}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    insert into videos\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"userId != null\" >\n        user_id,\n      </if>\n      <if test=\"audioId != null\" >\n        audio_id,\n      </if>\n      <if test=\"videoDesc != null\" >\n        video_desc,\n      </if>\n      <if test=\"videoPath != null\" >\n        video_path,\n      </if>\n      <if test=\"videoSeconds != null\" >\n        video_seconds,\n      </if>\n      <if test=\"videoWidth != null\" >\n        video_width,\n      </if>\n      <if test=\"videoHeight != null\" >\n        video_height,\n      </if>\n      <if test=\"coverPath != null\" >\n        cover_path,\n      </if>\n      <if test=\"likeCounts != null\" >\n        like_counts,\n      </if>\n      <if test=\"status != null\" >\n        status,\n      </if>\n      <if test=\"createTime != null\" >\n        create_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userId != null\" >\n        #{userId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"audioId != null\" >\n        #{audioId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoDesc != null\" >\n        #{videoDesc,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoPath != null\" >\n        #{videoPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoSeconds != null\" >\n        #{videoSeconds,jdbcType=REAL},\n      </if>\n      <if test=\"videoWidth != null\" >\n        #{videoWidth,jdbcType=INTEGER},\n      </if>\n      <if test=\"videoHeight != null\" >\n        #{videoHeight,jdbcType=INTEGER},\n      </if>\n      <if test=\"coverPath != null\" >\n        #{coverPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"likeCounts != null\" >\n        #{likeCounts,jdbcType=BIGINT},\n      </if>\n      <if test=\"status != null\" >\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\" >\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.VideosExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from videos\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update videos\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.userId != null\" >\n        user_id = #{record.userId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.audioId != null\" >\n        audio_id = #{record.audioId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.videoDesc != null\" >\n        video_desc = #{record.videoDesc,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.videoPath != null\" >\n        video_path = #{record.videoPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.videoSeconds != null\" >\n        video_seconds = #{record.videoSeconds,jdbcType=REAL},\n      </if>\n      <if test=\"record.videoWidth != null\" >\n        video_width = #{record.videoWidth,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.videoHeight != null\" >\n        video_height = #{record.videoHeight,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coverPath != null\" >\n        cover_path = #{record.coverPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.likeCounts != null\" >\n        like_counts = #{record.likeCounts,jdbcType=BIGINT},\n      </if>\n      <if test=\"record.status != null\" >\n        status = #{record.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.createTime != null\" >\n        create_time = #{record.createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update videos\n    set id = #{record.id,jdbcType=VARCHAR},\n      user_id = #{record.userId,jdbcType=VARCHAR},\n      audio_id = #{record.audioId,jdbcType=VARCHAR},\n      video_desc = #{record.videoDesc,jdbcType=VARCHAR},\n      video_path = #{record.videoPath,jdbcType=VARCHAR},\n      video_seconds = #{record.videoSeconds,jdbcType=REAL},\n      video_width = #{record.videoWidth,jdbcType=INTEGER},\n      video_height = #{record.videoHeight,jdbcType=INTEGER},\n      cover_path = #{record.coverPath,jdbcType=VARCHAR},\n      like_counts = #{record.likeCounts,jdbcType=BIGINT},\n      status = #{record.status,jdbcType=INTEGER},\n      create_time = #{record.createTime,jdbcType=TIMESTAMP}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    update videos\n    <set >\n      <if test=\"userId != null\" >\n        user_id = #{userId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"audioId != null\" >\n        audio_id = #{audioId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoDesc != null\" >\n        video_desc = #{videoDesc,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoPath != null\" >\n        video_path = #{videoPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoSeconds != null\" >\n        video_seconds = #{videoSeconds,jdbcType=REAL},\n      </if>\n      <if test=\"videoWidth != null\" >\n        video_width = #{videoWidth,jdbcType=INTEGER},\n      </if>\n      <if test=\"videoHeight != null\" >\n        video_height = #{videoHeight,jdbcType=INTEGER},\n      </if>\n      <if test=\"coverPath != null\" >\n        cover_path = #{coverPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"likeCounts != null\" >\n        like_counts = #{likeCounts,jdbcType=BIGINT},\n      </if>\n      <if test=\"status != null\" >\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\" >\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    update videos\n    set user_id = #{userId,jdbcType=VARCHAR},\n      audio_id = #{audioId,jdbcType=VARCHAR},\n      video_desc = #{videoDesc,jdbcType=VARCHAR},\n      video_path = #{videoPath,jdbcType=VARCHAR},\n      video_seconds = #{videoSeconds,jdbcType=REAL},\n      video_width = #{videoWidth,jdbcType=INTEGER},\n      video_height = #{videoHeight,jdbcType=INTEGER},\n      cover_path = #{coverPath,jdbcType=VARCHAR},\n      like_counts = #{likeCounts,jdbcType=BIGINT},\n      status = #{status,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/classes/kkvideo/admin/mapper/BgmMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.BgmMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.Bgm\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"author\" property=\"author\" jdbcType=\"VARCHAR\" />\n    <result column=\"name\" property=\"name\" jdbcType=\"VARCHAR\" />\n    <result column=\"path\" property=\"path\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, author, name, path\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.BgmExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from bgm\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from bgm\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from bgm\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.BgmExample\" >\n    delete from bgm\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    insert into bgm (id, author, name, \n      path)\n    values (#{id,jdbcType=VARCHAR}, #{author,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, \n      #{path,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    insert into bgm\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"author != null\" >\n        author,\n      </if>\n      <if test=\"name != null\" >\n        name,\n      </if>\n      <if test=\"path != null\" >\n        path,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"author != null\" >\n        #{author,jdbcType=VARCHAR},\n      </if>\n      <if test=\"name != null\" >\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"path != null\" >\n        #{path,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.BgmExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from bgm\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update bgm\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.author != null\" >\n        author = #{record.author,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.name != null\" >\n        name = #{record.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.path != null\" >\n        path = #{record.path,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update bgm\n    set id = #{record.id,jdbcType=VARCHAR},\n      author = #{record.author,jdbcType=VARCHAR},\n      name = #{record.name,jdbcType=VARCHAR},\n      path = #{record.path,jdbcType=VARCHAR}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    update bgm\n    <set >\n      <if test=\"author != null\" >\n        author = #{author,jdbcType=VARCHAR},\n      </if>\n      <if test=\"name != null\" >\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"path != null\" >\n        path = #{path,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.Bgm\" >\n    update bgm\n    set author = #{author,jdbcType=VARCHAR},\n      name = #{name,jdbcType=VARCHAR},\n      path = #{path,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/classes/kkvideo/admin/mapper/UsersMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.UsersMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.Users\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"username\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"password\" property=\"password\" jdbcType=\"VARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"fans_counts\" property=\"fansCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"follow_counts\" property=\"followCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"receive_like_counts\" property=\"receiveLikeCounts\" jdbcType=\"INTEGER\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, username, password, face_image, nickname, fans_counts, follow_counts, receive_like_counts\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.UsersExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from users\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from users\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from users\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.UsersExample\" >\n    delete from users\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    insert into users (id, username, password, \n      face_image, nickname, fans_counts, \n      follow_counts, receive_like_counts)\n    values (#{id,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, \n      #{faceImage,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{fansCounts,jdbcType=INTEGER}, \n      #{followCounts,jdbcType=INTEGER}, #{receiveLikeCounts,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    insert into users\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"username != null\" >\n        username,\n      </if>\n      <if test=\"password != null\" >\n        password,\n      </if>\n      <if test=\"faceImage != null\" >\n        face_image,\n      </if>\n      <if test=\"nickname != null\" >\n        nickname,\n      </if>\n      <if test=\"fansCounts != null\" >\n        fans_counts,\n      </if>\n      <if test=\"followCounts != null\" >\n        follow_counts,\n      </if>\n      <if test=\"receiveLikeCounts != null\" >\n        receive_like_counts,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"username != null\" >\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"faceImage != null\" >\n        #{faceImage,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickname != null\" >\n        #{nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"fansCounts != null\" >\n        #{fansCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"followCounts != null\" >\n        #{followCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveLikeCounts != null\" >\n        #{receiveLikeCounts,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.UsersExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from users\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update users\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.username != null\" >\n        username = #{record.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.password != null\" >\n        password = #{record.password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.faceImage != null\" >\n        face_image = #{record.faceImage,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.nickname != null\" >\n        nickname = #{record.nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.fansCounts != null\" >\n        fans_counts = #{record.fansCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.followCounts != null\" >\n        follow_counts = #{record.followCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.receiveLikeCounts != null\" >\n        receive_like_counts = #{record.receiveLikeCounts,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update users\n    set id = #{record.id,jdbcType=VARCHAR},\n      username = #{record.username,jdbcType=VARCHAR},\n      password = #{record.password,jdbcType=VARCHAR},\n      face_image = #{record.faceImage,jdbcType=VARCHAR},\n      nickname = #{record.nickname,jdbcType=VARCHAR},\n      fans_counts = #{record.fansCounts,jdbcType=INTEGER},\n      follow_counts = #{record.followCounts,jdbcType=INTEGER},\n      receive_like_counts = #{record.receiveLikeCounts,jdbcType=INTEGER}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    update users\n    <set >\n      <if test=\"username != null\" >\n        username = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\" >\n        password = #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"faceImage != null\" >\n        face_image = #{faceImage,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickname != null\" >\n        nickname = #{nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"fansCounts != null\" >\n        fans_counts = #{fansCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"followCounts != null\" >\n        follow_counts = #{followCounts,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveLikeCounts != null\" >\n        receive_like_counts = #{receiveLikeCounts,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.Users\" >\n    update users\n    set username = #{username,jdbcType=VARCHAR},\n      password = #{password,jdbcType=VARCHAR},\n      face_image = #{faceImage,jdbcType=VARCHAR},\n      nickname = #{nickname,jdbcType=VARCHAR},\n      fans_counts = #{fansCounts,jdbcType=INTEGER},\n      follow_counts = #{followCounts,jdbcType=INTEGER},\n      receive_like_counts = #{receiveLikeCounts,jdbcType=INTEGER}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/classes/kkvideo/admin/mapper/UsersReportMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.UsersReportMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.UsersReport\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_user_id\" property=\"dealUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_video_id\" property=\"dealVideoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"title\" property=\"title\" jdbcType=\"VARCHAR\" />\n    <result column=\"content\" property=\"content\" jdbcType=\"VARCHAR\" />\n    <result column=\"userid\" property=\"userid\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_date\" property=\"createDate\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, deal_user_id, deal_video_id, title, content, userid, create_date\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.UsersReportExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from users_report\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from users_report\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from users_report\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.UsersReportExample\" >\n    delete from users_report\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    insert into users_report (id, deal_user_id, deal_video_id, \n      title, content, userid, \n      create_date)\n    values (#{id,jdbcType=VARCHAR}, #{dealUserId,jdbcType=VARCHAR}, #{dealVideoId,jdbcType=VARCHAR}, \n      #{title,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR}, #{userid,jdbcType=VARCHAR}, \n      #{createDate,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    insert into users_report\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"dealUserId != null\" >\n        deal_user_id,\n      </if>\n      <if test=\"dealVideoId != null\" >\n        deal_video_id,\n      </if>\n      <if test=\"title != null\" >\n        title,\n      </if>\n      <if test=\"content != null\" >\n        content,\n      </if>\n      <if test=\"userid != null\" >\n        userid,\n      </if>\n      <if test=\"createDate != null\" >\n        create_date,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"dealUserId != null\" >\n        #{dealUserId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"dealVideoId != null\" >\n        #{dealVideoId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\" >\n        #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userid != null\" >\n        #{userid,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createDate != null\" >\n        #{createDate,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.UsersReportExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from users_report\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update users_report\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.dealUserId != null\" >\n        deal_user_id = #{record.dealUserId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.dealVideoId != null\" >\n        deal_video_id = #{record.dealVideoId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.title != null\" >\n        title = #{record.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.content != null\" >\n        content = #{record.content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.userid != null\" >\n        userid = #{record.userid,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.createDate != null\" >\n        create_date = #{record.createDate,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update users_report\n    set id = #{record.id,jdbcType=VARCHAR},\n      deal_user_id = #{record.dealUserId,jdbcType=VARCHAR},\n      deal_video_id = #{record.dealVideoId,jdbcType=VARCHAR},\n      title = #{record.title,jdbcType=VARCHAR},\n      content = #{record.content,jdbcType=VARCHAR},\n      userid = #{record.userid,jdbcType=VARCHAR},\n      create_date = #{record.createDate,jdbcType=TIMESTAMP}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    update users_report\n    <set >\n      <if test=\"dealUserId != null\" >\n        deal_user_id = #{dealUserId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"dealVideoId != null\" >\n        deal_video_id = #{dealVideoId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\" >\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\" >\n        content = #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userid != null\" >\n        userid = #{userid,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createDate != null\" >\n        create_date = #{createDate,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.UsersReport\" >\n    update users_report\n    set deal_user_id = #{dealUserId,jdbcType=VARCHAR},\n      deal_video_id = #{dealVideoId,jdbcType=VARCHAR},\n      title = #{title,jdbcType=VARCHAR},\n      content = #{content,jdbcType=VARCHAR},\n      userid = #{userid,jdbcType=VARCHAR},\n      create_date = #{createDate,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/classes/kkvideo/admin/mapper/UsersReportMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.UsersReportMapperCustom\" >\n\t\t\n\t<select id=\"selectAllVideoReport\" resultType=\"kkvideo.admin.pojo.vo.Reports\" >\n\t    select \n\t    \tur.id as id,\n\t    \tur.title as title,\n\t    \tur.content as content,\n\t    \tur.create_date as createDate,\n\t    \tdu.username as dealUsername,\n\t    \tv.id as dealVideoId,\n\t    \tv.video_desc as videoDesc,\n\t    \tv.video_path as videoPath,\n\t    \tv.status as status,\n\t    \tu.username as submitUsername\n\t \tfrom users_report ur \n\t\t \tleft join users du on ur.deal_user_id = du.id \n\t\t \tleft join videos v on ur.deal_video_id = v.id \n\t\t\tleft join users u on ur.userid=u.id\n\t\tgroup by ur.create_date desc\n\t</select>\n\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/classes/kkvideo/admin/mapper/VideosMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"kkvideo.admin.mapper.VideosMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"kkvideo.admin.pojo.Videos\" >\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"audio_id\" property=\"audioId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_desc\" property=\"videoDesc\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_path\" property=\"videoPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_seconds\" property=\"videoSeconds\" jdbcType=\"REAL\" />\n    <result column=\"video_width\" property=\"videoWidth\" jdbcType=\"INTEGER\" />\n    <result column=\"video_height\" property=\"videoHeight\" jdbcType=\"INTEGER\" />\n    <result column=\"cover_path\" property=\"coverPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"like_counts\" property=\"likeCounts\" jdbcType=\"BIGINT\" />\n    <result column=\"status\" property=\"status\" jdbcType=\"INTEGER\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\" >\n    <where >\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\" >\n        <if test=\"criteria.valid\" >\n          <trim prefix=\"(\" suffix=\")\" prefixOverrides=\"and\" >\n            <foreach collection=\"criteria.criteria\" item=\"criterion\" >\n              <choose >\n                <when test=\"criterion.noValue\" >\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\" >\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\" >\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\" >\n                  and ${criterion.condition}\n                  <foreach collection=\"criterion.value\" item=\"listItem\" open=\"(\" close=\")\" separator=\",\" >\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\" >\n    id, user_id, audio_id, video_desc, video_path, video_seconds, video_width, video_height, \n    cover_path, like_counts, status, create_time\n  </sql>\n  <select id=\"selectByExample\" resultMap=\"BaseResultMap\" parameterType=\"kkvideo.admin.pojo.VideosExample\" >\n    select\n    <if test=\"distinct\" >\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from videos\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\" >\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" resultMap=\"BaseResultMap\" parameterType=\"java.lang.String\" >\n    select \n    <include refid=\"Base_Column_List\" />\n    from videos\n    where id = #{id,jdbcType=VARCHAR}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.String\" >\n    delete from videos\n    where id = #{id,jdbcType=VARCHAR}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"kkvideo.admin.pojo.VideosExample\" >\n    delete from videos\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    insert into videos (id, user_id, audio_id, \n      video_desc, video_path, video_seconds, \n      video_width, video_height, cover_path, \n      like_counts, status, create_time\n      )\n    values (#{id,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, #{audioId,jdbcType=VARCHAR}, \n      #{videoDesc,jdbcType=VARCHAR}, #{videoPath,jdbcType=VARCHAR}, #{videoSeconds,jdbcType=REAL}, \n      #{videoWidth,jdbcType=INTEGER}, #{videoHeight,jdbcType=INTEGER}, #{coverPath,jdbcType=VARCHAR}, \n      #{likeCounts,jdbcType=BIGINT}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    insert into videos\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        id,\n      </if>\n      <if test=\"userId != null\" >\n        user_id,\n      </if>\n      <if test=\"audioId != null\" >\n        audio_id,\n      </if>\n      <if test=\"videoDesc != null\" >\n        video_desc,\n      </if>\n      <if test=\"videoPath != null\" >\n        video_path,\n      </if>\n      <if test=\"videoSeconds != null\" >\n        video_seconds,\n      </if>\n      <if test=\"videoWidth != null\" >\n        video_width,\n      </if>\n      <if test=\"videoHeight != null\" >\n        video_height,\n      </if>\n      <if test=\"coverPath != null\" >\n        cover_path,\n      </if>\n      <if test=\"likeCounts != null\" >\n        like_counts,\n      </if>\n      <if test=\"status != null\" >\n        status,\n      </if>\n      <if test=\"createTime != null\" >\n        create_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\" >\n      <if test=\"id != null\" >\n        #{id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userId != null\" >\n        #{userId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"audioId != null\" >\n        #{audioId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoDesc != null\" >\n        #{videoDesc,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoPath != null\" >\n        #{videoPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoSeconds != null\" >\n        #{videoSeconds,jdbcType=REAL},\n      </if>\n      <if test=\"videoWidth != null\" >\n        #{videoWidth,jdbcType=INTEGER},\n      </if>\n      <if test=\"videoHeight != null\" >\n        #{videoHeight,jdbcType=INTEGER},\n      </if>\n      <if test=\"coverPath != null\" >\n        #{coverPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"likeCounts != null\" >\n        #{likeCounts,jdbcType=BIGINT},\n      </if>\n      <if test=\"status != null\" >\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\" >\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"kkvideo.admin.pojo.VideosExample\" resultType=\"java.lang.Integer\" >\n    select count(*) from videos\n    <if test=\"_parameter != null\" >\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\" >\n    update videos\n    <set >\n      <if test=\"record.id != null\" >\n        id = #{record.id,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.userId != null\" >\n        user_id = #{record.userId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.audioId != null\" >\n        audio_id = #{record.audioId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.videoDesc != null\" >\n        video_desc = #{record.videoDesc,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.videoPath != null\" >\n        video_path = #{record.videoPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.videoSeconds != null\" >\n        video_seconds = #{record.videoSeconds,jdbcType=REAL},\n      </if>\n      <if test=\"record.videoWidth != null\" >\n        video_width = #{record.videoWidth,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.videoHeight != null\" >\n        video_height = #{record.videoHeight,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.coverPath != null\" >\n        cover_path = #{record.coverPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"record.likeCounts != null\" >\n        like_counts = #{record.likeCounts,jdbcType=BIGINT},\n      </if>\n      <if test=\"record.status != null\" >\n        status = #{record.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"record.createTime != null\" >\n        create_time = #{record.createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\" >\n    update videos\n    set id = #{record.id,jdbcType=VARCHAR},\n      user_id = #{record.userId,jdbcType=VARCHAR},\n      audio_id = #{record.audioId,jdbcType=VARCHAR},\n      video_desc = #{record.videoDesc,jdbcType=VARCHAR},\n      video_path = #{record.videoPath,jdbcType=VARCHAR},\n      video_seconds = #{record.videoSeconds,jdbcType=REAL},\n      video_width = #{record.videoWidth,jdbcType=INTEGER},\n      video_height = #{record.videoHeight,jdbcType=INTEGER},\n      cover_path = #{record.coverPath,jdbcType=VARCHAR},\n      like_counts = #{record.likeCounts,jdbcType=BIGINT},\n      status = #{record.status,jdbcType=INTEGER},\n      create_time = #{record.createTime,jdbcType=TIMESTAMP}\n    <if test=\"_parameter != null\" >\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    update videos\n    <set >\n      <if test=\"userId != null\" >\n        user_id = #{userId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"audioId != null\" >\n        audio_id = #{audioId,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoDesc != null\" >\n        video_desc = #{videoDesc,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoPath != null\" >\n        video_path = #{videoPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"videoSeconds != null\" >\n        video_seconds = #{videoSeconds,jdbcType=REAL},\n      </if>\n      <if test=\"videoWidth != null\" >\n        video_width = #{videoWidth,jdbcType=INTEGER},\n      </if>\n      <if test=\"videoHeight != null\" >\n        video_height = #{videoHeight,jdbcType=INTEGER},\n      </if>\n      <if test=\"coverPath != null\" >\n        cover_path = #{coverPath,jdbcType=VARCHAR},\n      </if>\n      <if test=\"likeCounts != null\" >\n        like_counts = #{likeCounts,jdbcType=BIGINT},\n      </if>\n      <if test=\"status != null\" >\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\" >\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"kkvideo.admin.pojo.Videos\" >\n    update videos\n    set user_id = #{userId,jdbcType=VARCHAR},\n      audio_id = #{audioId,jdbcType=VARCHAR},\n      video_desc = #{videoDesc,jdbcType=VARCHAR},\n      video_path = #{videoPath,jdbcType=VARCHAR},\n      video_seconds = #{videoSeconds,jdbcType=REAL},\n      video_width = #{videoWidth,jdbcType=INTEGER},\n      video_height = #{videoHeight,jdbcType=INTEGER},\n      cover_path = #{coverPath,jdbcType=VARCHAR},\n      like_counts = #{likeCounts,jdbcType=BIGINT},\n      status = #{status,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=VARCHAR}\n  </update>\n</mapper>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/maven-archiver/pom.properties",
    "content": "#Generated by Maven\n#Mon Jun 25 16:40:18 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kkvideo-admin-dao\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-dao\\src\\main\\java\\kkvideo\\admin\\mapper\\UsersReportMapperCustom.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-dao\\src\\main\\java\\kkvideo\\admin\\mapper\\BgmMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-dao\\src\\main\\java\\kkvideo\\admin\\mapper\\UsersReportMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-dao\\src\\main\\java\\kkvideo\\admin\\mapper\\VideosMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-dao\\src\\main\\java\\kkvideo\\admin\\mapper\\UsersMapper.java\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-dao/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/kkvideoadminpojo.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>kkvideo-admin</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kkvideo-admin-pojo</artifactId>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kkvideo-admin-common</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n    </dependencies>\n\n\n</project>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/Bgm.java",
    "content": "package kkvideo.admin.pojo;\n\npublic class Bgm {\n    private String id;\n\n    private String author;\n\n    private String name;\n\n    private String path;\n\n    public String getId() {\n        return id;\n    }\n\n    public void setId(String id) {\n        this.id = id == null ? null : id.trim();\n    }\n\n    public String getAuthor() {\n        return author;\n    }\n\n    public void setAuthor(String author) {\n        this.author = author == null ? null : author.trim();\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name == null ? null : name.trim();\n    }\n\n    public String getPath() {\n        return path;\n    }\n\n    public void setPath(String path) {\n        this.path = path == null ? null : path.trim();\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/BgmExample.java",
    "content": "package kkvideo.admin.pojo;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class BgmExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public BgmExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(String value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(String value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(String value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(String value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(String value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLike(String value) {\n            addCriterion(\"id like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotLike(String value) {\n            addCriterion(\"id not like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<String> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<String> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(String value1, String value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(String value1, String value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorIsNull() {\n            addCriterion(\"author is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorIsNotNull() {\n            addCriterion(\"author is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorEqualTo(String value) {\n            addCriterion(\"author =\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorNotEqualTo(String value) {\n            addCriterion(\"author <>\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorGreaterThan(String value) {\n            addCriterion(\"author >\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorGreaterThanOrEqualTo(String value) {\n            addCriterion(\"author >=\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorLessThan(String value) {\n            addCriterion(\"author <\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorLessThanOrEqualTo(String value) {\n            addCriterion(\"author <=\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorLike(String value) {\n            addCriterion(\"author like\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorNotLike(String value) {\n            addCriterion(\"author not like\", value, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorIn(List<String> values) {\n            addCriterion(\"author in\", values, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorNotIn(List<String> values) {\n            addCriterion(\"author not in\", values, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorBetween(String value1, String value2) {\n            addCriterion(\"author between\", value1, value2, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAuthorNotBetween(String value1, String value2) {\n            addCriterion(\"author not between\", value1, value2, \"author\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathIsNull() {\n            addCriterion(\"path is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathIsNotNull() {\n            addCriterion(\"path is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathEqualTo(String value) {\n            addCriterion(\"path =\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathNotEqualTo(String value) {\n            addCriterion(\"path <>\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathGreaterThan(String value) {\n            addCriterion(\"path >\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathGreaterThanOrEqualTo(String value) {\n            addCriterion(\"path >=\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathLessThan(String value) {\n            addCriterion(\"path <\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathLessThanOrEqualTo(String value) {\n            addCriterion(\"path <=\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathLike(String value) {\n            addCriterion(\"path like\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathNotLike(String value) {\n            addCriterion(\"path not like\", value, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathIn(List<String> values) {\n            addCriterion(\"path in\", values, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathNotIn(List<String> values) {\n            addCriterion(\"path not in\", values, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathBetween(String value1, String value2) {\n            addCriterion(\"path between\", value1, value2, \"path\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPathNotBetween(String value1, String value2) {\n            addCriterion(\"path not between\", value1, value2, \"path\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/Users.java",
    "content": "package kkvideo.admin.pojo;\n\npublic class Users {\n    private String id;\n\n    private String username;\n\n    private String password;\n\n    private String faceImage;\n\n    private String nickname;\n\n    private Integer fansCounts;\n\n    private Integer followCounts;\n\n    private Integer receiveLikeCounts;\n\n    public String getId() {\n        return id;\n    }\n\n    public void setId(String id) {\n        this.id = id == null ? null : id.trim();\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username == null ? null : username.trim();\n    }\n\n    public String getPassword() {\n        return password;\n    }\n\n    public void setPassword(String password) {\n        this.password = password == null ? null : password.trim();\n    }\n\n    public String getFaceImage() {\n        return faceImage;\n    }\n\n    public void setFaceImage(String faceImage) {\n        this.faceImage = faceImage == null ? null : faceImage.trim();\n    }\n\n    public String getNickname() {\n        return nickname;\n    }\n\n    public void setNickname(String nickname) {\n        this.nickname = nickname == null ? null : nickname.trim();\n    }\n\n    public Integer getFansCounts() {\n        return fansCounts;\n    }\n\n    public void setFansCounts(Integer fansCounts) {\n        this.fansCounts = fansCounts;\n    }\n\n    public Integer getFollowCounts() {\n        return followCounts;\n    }\n\n    public void setFollowCounts(Integer followCounts) {\n        this.followCounts = followCounts;\n    }\n\n    public Integer getReceiveLikeCounts() {\n        return receiveLikeCounts;\n    }\n\n    public void setReceiveLikeCounts(Integer receiveLikeCounts) {\n        this.receiveLikeCounts = receiveLikeCounts;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/UsersExample.java",
    "content": "package kkvideo.admin.pojo;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UsersExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UsersExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(String value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(String value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(String value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(String value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(String value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLike(String value) {\n            addCriterion(\"id like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotLike(String value) {\n            addCriterion(\"id not like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<String> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<String> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(String value1, String value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(String value1, String value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNull() {\n            addCriterion(\"username is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNotNull() {\n            addCriterion(\"username is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameEqualTo(String value) {\n            addCriterion(\"username =\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotEqualTo(String value) {\n            addCriterion(\"username <>\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThan(String value) {\n            addCriterion(\"username >\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"username >=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThan(String value) {\n            addCriterion(\"username <\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"username <=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLike(String value) {\n            addCriterion(\"username like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotLike(String value) {\n            addCriterion(\"username not like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIn(List<String> values) {\n            addCriterion(\"username in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotIn(List<String> values) {\n            addCriterion(\"username not in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameBetween(String value1, String value2) {\n            addCriterion(\"username between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"username not between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNull() {\n            addCriterion(\"password is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNotNull() {\n            addCriterion(\"password is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordEqualTo(String value) {\n            addCriterion(\"password =\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotEqualTo(String value) {\n            addCriterion(\"password <>\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThan(String value) {\n            addCriterion(\"password >\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThanOrEqualTo(String value) {\n            addCriterion(\"password >=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThan(String value) {\n            addCriterion(\"password <\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThanOrEqualTo(String value) {\n            addCriterion(\"password <=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLike(String value) {\n            addCriterion(\"password like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotLike(String value) {\n            addCriterion(\"password not like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIn(List<String> values) {\n            addCriterion(\"password in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotIn(List<String> values) {\n            addCriterion(\"password not in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordBetween(String value1, String value2) {\n            addCriterion(\"password between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotBetween(String value1, String value2) {\n            addCriterion(\"password not between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageIsNull() {\n            addCriterion(\"face_image is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageIsNotNull() {\n            addCriterion(\"face_image is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageEqualTo(String value) {\n            addCriterion(\"face_image =\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageNotEqualTo(String value) {\n            addCriterion(\"face_image <>\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageGreaterThan(String value) {\n            addCriterion(\"face_image >\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageGreaterThanOrEqualTo(String value) {\n            addCriterion(\"face_image >=\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageLessThan(String value) {\n            addCriterion(\"face_image <\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageLessThanOrEqualTo(String value) {\n            addCriterion(\"face_image <=\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageLike(String value) {\n            addCriterion(\"face_image like\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageNotLike(String value) {\n            addCriterion(\"face_image not like\", value, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageIn(List<String> values) {\n            addCriterion(\"face_image in\", values, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageNotIn(List<String> values) {\n            addCriterion(\"face_image not in\", values, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageBetween(String value1, String value2) {\n            addCriterion(\"face_image between\", value1, value2, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFaceImageNotBetween(String value1, String value2) {\n            addCriterion(\"face_image not between\", value1, value2, \"faceImage\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameIsNull() {\n            addCriterion(\"nickname is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameIsNotNull() {\n            addCriterion(\"nickname is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameEqualTo(String value) {\n            addCriterion(\"nickname =\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotEqualTo(String value) {\n            addCriterion(\"nickname <>\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameGreaterThan(String value) {\n            addCriterion(\"nickname >\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"nickname >=\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameLessThan(String value) {\n            addCriterion(\"nickname <\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameLessThanOrEqualTo(String value) {\n            addCriterion(\"nickname <=\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameLike(String value) {\n            addCriterion(\"nickname like\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotLike(String value) {\n            addCriterion(\"nickname not like\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameIn(List<String> values) {\n            addCriterion(\"nickname in\", values, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotIn(List<String> values) {\n            addCriterion(\"nickname not in\", values, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameBetween(String value1, String value2) {\n            addCriterion(\"nickname between\", value1, value2, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotBetween(String value1, String value2) {\n            addCriterion(\"nickname not between\", value1, value2, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsIsNull() {\n            addCriterion(\"fans_counts is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsIsNotNull() {\n            addCriterion(\"fans_counts is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsEqualTo(Integer value) {\n            addCriterion(\"fans_counts =\", value, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsNotEqualTo(Integer value) {\n            addCriterion(\"fans_counts <>\", value, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsGreaterThan(Integer value) {\n            addCriterion(\"fans_counts >\", value, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"fans_counts >=\", value, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsLessThan(Integer value) {\n            addCriterion(\"fans_counts <\", value, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsLessThanOrEqualTo(Integer value) {\n            addCriterion(\"fans_counts <=\", value, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsIn(List<Integer> values) {\n            addCriterion(\"fans_counts in\", values, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsNotIn(List<Integer> values) {\n            addCriterion(\"fans_counts not in\", values, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsBetween(Integer value1, Integer value2) {\n            addCriterion(\"fans_counts between\", value1, value2, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountsNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"fans_counts not between\", value1, value2, \"fansCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsIsNull() {\n            addCriterion(\"follow_counts is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsIsNotNull() {\n            addCriterion(\"follow_counts is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsEqualTo(Integer value) {\n            addCriterion(\"follow_counts =\", value, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsNotEqualTo(Integer value) {\n            addCriterion(\"follow_counts <>\", value, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsGreaterThan(Integer value) {\n            addCriterion(\"follow_counts >\", value, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"follow_counts >=\", value, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsLessThan(Integer value) {\n            addCriterion(\"follow_counts <\", value, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsLessThanOrEqualTo(Integer value) {\n            addCriterion(\"follow_counts <=\", value, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsIn(List<Integer> values) {\n            addCriterion(\"follow_counts in\", values, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsNotIn(List<Integer> values) {\n            addCriterion(\"follow_counts not in\", values, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsBetween(Integer value1, Integer value2) {\n            addCriterion(\"follow_counts between\", value1, value2, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFollowCountsNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"follow_counts not between\", value1, value2, \"followCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsIsNull() {\n            addCriterion(\"receive_like_counts is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsIsNotNull() {\n            addCriterion(\"receive_like_counts is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsEqualTo(Integer value) {\n            addCriterion(\"receive_like_counts =\", value, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsNotEqualTo(Integer value) {\n            addCriterion(\"receive_like_counts <>\", value, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsGreaterThan(Integer value) {\n            addCriterion(\"receive_like_counts >\", value, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"receive_like_counts >=\", value, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsLessThan(Integer value) {\n            addCriterion(\"receive_like_counts <\", value, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsLessThanOrEqualTo(Integer value) {\n            addCriterion(\"receive_like_counts <=\", value, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsIn(List<Integer> values) {\n            addCriterion(\"receive_like_counts in\", values, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsNotIn(List<Integer> values) {\n            addCriterion(\"receive_like_counts not in\", values, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsBetween(Integer value1, Integer value2) {\n            addCriterion(\"receive_like_counts between\", value1, value2, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveLikeCountsNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"receive_like_counts not between\", value1, value2, \"receiveLikeCounts\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/UsersReport.java",
    "content": "package kkvideo.admin.pojo;\n\nimport java.util.Date;\n\npublic class UsersReport {\n    private String id;\n\n    private String dealUserId;\n\n    private String dealVideoId;\n\n    private String title;\n\n    private String content;\n\n    private String userid;\n\n    private Date createDate;\n\n    public String getId() {\n        return id;\n    }\n\n    public void setId(String id) {\n        this.id = id == null ? null : id.trim();\n    }\n\n    public String getDealUserId() {\n        return dealUserId;\n    }\n\n    public void setDealUserId(String dealUserId) {\n        this.dealUserId = dealUserId == null ? null : dealUserId.trim();\n    }\n\n    public String getDealVideoId() {\n        return dealVideoId;\n    }\n\n    public void setDealVideoId(String dealVideoId) {\n        this.dealVideoId = dealVideoId == null ? null : dealVideoId.trim();\n    }\n\n    public String getTitle() {\n        return title;\n    }\n\n    public void setTitle(String title) {\n        this.title = title == null ? null : title.trim();\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content == null ? null : content.trim();\n    }\n\n    public String getUserid() {\n        return userid;\n    }\n\n    public void setUserid(String userid) {\n        this.userid = userid == null ? null : userid.trim();\n    }\n\n    public Date getCreateDate() {\n        return createDate;\n    }\n\n    public void setCreateDate(Date createDate) {\n        this.createDate = createDate;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/UsersReportExample.java",
    "content": "package kkvideo.admin.pojo;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UsersReportExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UsersReportExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(String value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(String value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(String value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(String value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(String value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLike(String value) {\n            addCriterion(\"id like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotLike(String value) {\n            addCriterion(\"id not like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<String> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<String> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(String value1, String value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(String value1, String value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdIsNull() {\n            addCriterion(\"deal_user_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdIsNotNull() {\n            addCriterion(\"deal_user_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdEqualTo(String value) {\n            addCriterion(\"deal_user_id =\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdNotEqualTo(String value) {\n            addCriterion(\"deal_user_id <>\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdGreaterThan(String value) {\n            addCriterion(\"deal_user_id >\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"deal_user_id >=\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdLessThan(String value) {\n            addCriterion(\"deal_user_id <\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdLessThanOrEqualTo(String value) {\n            addCriterion(\"deal_user_id <=\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdLike(String value) {\n            addCriterion(\"deal_user_id like\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdNotLike(String value) {\n            addCriterion(\"deal_user_id not like\", value, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdIn(List<String> values) {\n            addCriterion(\"deal_user_id in\", values, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdNotIn(List<String> values) {\n            addCriterion(\"deal_user_id not in\", values, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdBetween(String value1, String value2) {\n            addCriterion(\"deal_user_id between\", value1, value2, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealUserIdNotBetween(String value1, String value2) {\n            addCriterion(\"deal_user_id not between\", value1, value2, \"dealUserId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdIsNull() {\n            addCriterion(\"deal_video_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdIsNotNull() {\n            addCriterion(\"deal_video_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdEqualTo(String value) {\n            addCriterion(\"deal_video_id =\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdNotEqualTo(String value) {\n            addCriterion(\"deal_video_id <>\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdGreaterThan(String value) {\n            addCriterion(\"deal_video_id >\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"deal_video_id >=\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdLessThan(String value) {\n            addCriterion(\"deal_video_id <\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdLessThanOrEqualTo(String value) {\n            addCriterion(\"deal_video_id <=\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdLike(String value) {\n            addCriterion(\"deal_video_id like\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdNotLike(String value) {\n            addCriterion(\"deal_video_id not like\", value, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdIn(List<String> values) {\n            addCriterion(\"deal_video_id in\", values, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdNotIn(List<String> values) {\n            addCriterion(\"deal_video_id not in\", values, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdBetween(String value1, String value2) {\n            addCriterion(\"deal_video_id between\", value1, value2, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDealVideoIdNotBetween(String value1, String value2) {\n            addCriterion(\"deal_video_id not between\", value1, value2, \"dealVideoId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNull() {\n            addCriterion(\"title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNotNull() {\n            addCriterion(\"title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleEqualTo(String value) {\n            addCriterion(\"title =\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotEqualTo(String value) {\n            addCriterion(\"title <>\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThan(String value) {\n            addCriterion(\"title >\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"title >=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThan(String value) {\n            addCriterion(\"title <\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"title <=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLike(String value) {\n            addCriterion(\"title like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotLike(String value) {\n            addCriterion(\"title not like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIn(List<String> values) {\n            addCriterion(\"title in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotIn(List<String> values) {\n            addCriterion(\"title not in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleBetween(String value1, String value2) {\n            addCriterion(\"title between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotBetween(String value1, String value2) {\n            addCriterion(\"title not between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNull() {\n            addCriterion(\"content is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNotNull() {\n            addCriterion(\"content is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentEqualTo(String value) {\n            addCriterion(\"content =\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotEqualTo(String value) {\n            addCriterion(\"content <>\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThan(String value) {\n            addCriterion(\"content >\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThanOrEqualTo(String value) {\n            addCriterion(\"content >=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThan(String value) {\n            addCriterion(\"content <\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThanOrEqualTo(String value) {\n            addCriterion(\"content <=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLike(String value) {\n            addCriterion(\"content like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotLike(String value) {\n            addCriterion(\"content not like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIn(List<String> values) {\n            addCriterion(\"content in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotIn(List<String> values) {\n            addCriterion(\"content not in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentBetween(String value1, String value2) {\n            addCriterion(\"content between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotBetween(String value1, String value2) {\n            addCriterion(\"content not between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIsNull() {\n            addCriterion(\"userid is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIsNotNull() {\n            addCriterion(\"userid is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridEqualTo(String value) {\n            addCriterion(\"userid =\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotEqualTo(String value) {\n            addCriterion(\"userid <>\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThan(String value) {\n            addCriterion(\"userid >\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridGreaterThanOrEqualTo(String value) {\n            addCriterion(\"userid >=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThan(String value) {\n            addCriterion(\"userid <\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLessThanOrEqualTo(String value) {\n            addCriterion(\"userid <=\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridLike(String value) {\n            addCriterion(\"userid like\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotLike(String value) {\n            addCriterion(\"userid not like\", value, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridIn(List<String> values) {\n            addCriterion(\"userid in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotIn(List<String> values) {\n            addCriterion(\"userid not in\", values, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridBetween(String value1, String value2) {\n            addCriterion(\"userid between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseridNotBetween(String value1, String value2) {\n            addCriterion(\"userid not between\", value1, value2, \"userid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateIsNull() {\n            addCriterion(\"create_date is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateIsNotNull() {\n            addCriterion(\"create_date is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateEqualTo(Date value) {\n            addCriterion(\"create_date =\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateNotEqualTo(Date value) {\n            addCriterion(\"create_date <>\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateGreaterThan(Date value) {\n            addCriterion(\"create_date >\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_date >=\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateLessThan(Date value) {\n            addCriterion(\"create_date <\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_date <=\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateIn(List<Date> values) {\n            addCriterion(\"create_date in\", values, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateNotIn(List<Date> values) {\n            addCriterion(\"create_date not in\", values, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateBetween(Date value1, Date value2) {\n            addCriterion(\"create_date between\", value1, value2, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_date not between\", value1, value2, \"createDate\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/Videos.java",
    "content": "package kkvideo.admin.pojo;\n\nimport java.util.Date;\n\npublic class Videos {\n    private String id;\n\n    private String userId;\n\n    private String audioId;\n\n    private String videoDesc;\n\n    private String videoPath;\n\n    private Float videoSeconds;\n\n    private Integer videoWidth;\n\n    private Integer videoHeight;\n\n    private String coverPath;\n\n    private Long likeCounts;\n\n    private Integer status;\n\n    private Date createTime;\n\n    public String getId() {\n        return id;\n    }\n\n    public void setId(String id) {\n        this.id = id == null ? null : id.trim();\n    }\n\n    public String getUserId() {\n        return userId;\n    }\n\n    public void setUserId(String userId) {\n        this.userId = userId == null ? null : userId.trim();\n    }\n\n    public String getAudioId() {\n        return audioId;\n    }\n\n    public void setAudioId(String audioId) {\n        this.audioId = audioId == null ? null : audioId.trim();\n    }\n\n    public String getVideoDesc() {\n        return videoDesc;\n    }\n\n    public void setVideoDesc(String videoDesc) {\n        this.videoDesc = videoDesc == null ? null : videoDesc.trim();\n    }\n\n    public String getVideoPath() {\n        return videoPath;\n    }\n\n    public void setVideoPath(String videoPath) {\n        this.videoPath = videoPath == null ? null : videoPath.trim();\n    }\n\n    public Float getVideoSeconds() {\n        return videoSeconds;\n    }\n\n    public void setVideoSeconds(Float videoSeconds) {\n        this.videoSeconds = videoSeconds;\n    }\n\n    public Integer getVideoWidth() {\n        return videoWidth;\n    }\n\n    public void setVideoWidth(Integer videoWidth) {\n        this.videoWidth = videoWidth;\n    }\n\n    public Integer getVideoHeight() {\n        return videoHeight;\n    }\n\n    public void setVideoHeight(Integer videoHeight) {\n        this.videoHeight = videoHeight;\n    }\n\n    public String getCoverPath() {\n        return coverPath;\n    }\n\n    public void setCoverPath(String coverPath) {\n        this.coverPath = coverPath == null ? null : coverPath.trim();\n    }\n\n    public Long getLikeCounts() {\n        return likeCounts;\n    }\n\n    public void setLikeCounts(Long likeCounts) {\n        this.likeCounts = likeCounts;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/VideosExample.java",
    "content": "package kkvideo.admin.pojo;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class VideosExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public VideosExample() {\n        oredCriteria = new ArrayList<Criteria>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<Criterion>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(String value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(String value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(String value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(String value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(String value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLike(String value) {\n            addCriterion(\"id like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotLike(String value) {\n            addCriterion(\"id not like\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<String> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<String> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(String value1, String value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(String value1, String value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdIsNull() {\n            addCriterion(\"user_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdIsNotNull() {\n            addCriterion(\"user_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdEqualTo(String value) {\n            addCriterion(\"user_id =\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdNotEqualTo(String value) {\n            addCriterion(\"user_id <>\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdGreaterThan(String value) {\n            addCriterion(\"user_id >\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"user_id >=\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdLessThan(String value) {\n            addCriterion(\"user_id <\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdLessThanOrEqualTo(String value) {\n            addCriterion(\"user_id <=\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdLike(String value) {\n            addCriterion(\"user_id like\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdNotLike(String value) {\n            addCriterion(\"user_id not like\", value, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdIn(List<String> values) {\n            addCriterion(\"user_id in\", values, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdNotIn(List<String> values) {\n            addCriterion(\"user_id not in\", values, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdBetween(String value1, String value2) {\n            addCriterion(\"user_id between\", value1, value2, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserIdNotBetween(String value1, String value2) {\n            addCriterion(\"user_id not between\", value1, value2, \"userId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdIsNull() {\n            addCriterion(\"audio_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdIsNotNull() {\n            addCriterion(\"audio_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdEqualTo(String value) {\n            addCriterion(\"audio_id =\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdNotEqualTo(String value) {\n            addCriterion(\"audio_id <>\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdGreaterThan(String value) {\n            addCriterion(\"audio_id >\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdGreaterThanOrEqualTo(String value) {\n            addCriterion(\"audio_id >=\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdLessThan(String value) {\n            addCriterion(\"audio_id <\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdLessThanOrEqualTo(String value) {\n            addCriterion(\"audio_id <=\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdLike(String value) {\n            addCriterion(\"audio_id like\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdNotLike(String value) {\n            addCriterion(\"audio_id not like\", value, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdIn(List<String> values) {\n            addCriterion(\"audio_id in\", values, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdNotIn(List<String> values) {\n            addCriterion(\"audio_id not in\", values, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdBetween(String value1, String value2) {\n            addCriterion(\"audio_id between\", value1, value2, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAudioIdNotBetween(String value1, String value2) {\n            addCriterion(\"audio_id not between\", value1, value2, \"audioId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescIsNull() {\n            addCriterion(\"video_desc is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescIsNotNull() {\n            addCriterion(\"video_desc is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescEqualTo(String value) {\n            addCriterion(\"video_desc =\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescNotEqualTo(String value) {\n            addCriterion(\"video_desc <>\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescGreaterThan(String value) {\n            addCriterion(\"video_desc >\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescGreaterThanOrEqualTo(String value) {\n            addCriterion(\"video_desc >=\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescLessThan(String value) {\n            addCriterion(\"video_desc <\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescLessThanOrEqualTo(String value) {\n            addCriterion(\"video_desc <=\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescLike(String value) {\n            addCriterion(\"video_desc like\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescNotLike(String value) {\n            addCriterion(\"video_desc not like\", value, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescIn(List<String> values) {\n            addCriterion(\"video_desc in\", values, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescNotIn(List<String> values) {\n            addCriterion(\"video_desc not in\", values, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescBetween(String value1, String value2) {\n            addCriterion(\"video_desc between\", value1, value2, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoDescNotBetween(String value1, String value2) {\n            addCriterion(\"video_desc not between\", value1, value2, \"videoDesc\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathIsNull() {\n            addCriterion(\"video_path is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathIsNotNull() {\n            addCriterion(\"video_path is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathEqualTo(String value) {\n            addCriterion(\"video_path =\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathNotEqualTo(String value) {\n            addCriterion(\"video_path <>\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathGreaterThan(String value) {\n            addCriterion(\"video_path >\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathGreaterThanOrEqualTo(String value) {\n            addCriterion(\"video_path >=\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathLessThan(String value) {\n            addCriterion(\"video_path <\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathLessThanOrEqualTo(String value) {\n            addCriterion(\"video_path <=\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathLike(String value) {\n            addCriterion(\"video_path like\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathNotLike(String value) {\n            addCriterion(\"video_path not like\", value, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathIn(List<String> values) {\n            addCriterion(\"video_path in\", values, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathNotIn(List<String> values) {\n            addCriterion(\"video_path not in\", values, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathBetween(String value1, String value2) {\n            addCriterion(\"video_path between\", value1, value2, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoPathNotBetween(String value1, String value2) {\n            addCriterion(\"video_path not between\", value1, value2, \"videoPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsIsNull() {\n            addCriterion(\"video_seconds is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsIsNotNull() {\n            addCriterion(\"video_seconds is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsEqualTo(Float value) {\n            addCriterion(\"video_seconds =\", value, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsNotEqualTo(Float value) {\n            addCriterion(\"video_seconds <>\", value, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsGreaterThan(Float value) {\n            addCriterion(\"video_seconds >\", value, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsGreaterThanOrEqualTo(Float value) {\n            addCriterion(\"video_seconds >=\", value, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsLessThan(Float value) {\n            addCriterion(\"video_seconds <\", value, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsLessThanOrEqualTo(Float value) {\n            addCriterion(\"video_seconds <=\", value, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsIn(List<Float> values) {\n            addCriterion(\"video_seconds in\", values, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsNotIn(List<Float> values) {\n            addCriterion(\"video_seconds not in\", values, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsBetween(Float value1, Float value2) {\n            addCriterion(\"video_seconds between\", value1, value2, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoSecondsNotBetween(Float value1, Float value2) {\n            addCriterion(\"video_seconds not between\", value1, value2, \"videoSeconds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthIsNull() {\n            addCriterion(\"video_width is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthIsNotNull() {\n            addCriterion(\"video_width is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthEqualTo(Integer value) {\n            addCriterion(\"video_width =\", value, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthNotEqualTo(Integer value) {\n            addCriterion(\"video_width <>\", value, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthGreaterThan(Integer value) {\n            addCriterion(\"video_width >\", value, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"video_width >=\", value, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthLessThan(Integer value) {\n            addCriterion(\"video_width <\", value, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthLessThanOrEqualTo(Integer value) {\n            addCriterion(\"video_width <=\", value, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthIn(List<Integer> values) {\n            addCriterion(\"video_width in\", values, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthNotIn(List<Integer> values) {\n            addCriterion(\"video_width not in\", values, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthBetween(Integer value1, Integer value2) {\n            addCriterion(\"video_width between\", value1, value2, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoWidthNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"video_width not between\", value1, value2, \"videoWidth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightIsNull() {\n            addCriterion(\"video_height is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightIsNotNull() {\n            addCriterion(\"video_height is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightEqualTo(Integer value) {\n            addCriterion(\"video_height =\", value, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightNotEqualTo(Integer value) {\n            addCriterion(\"video_height <>\", value, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightGreaterThan(Integer value) {\n            addCriterion(\"video_height >\", value, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"video_height >=\", value, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightLessThan(Integer value) {\n            addCriterion(\"video_height <\", value, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightLessThanOrEqualTo(Integer value) {\n            addCriterion(\"video_height <=\", value, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightIn(List<Integer> values) {\n            addCriterion(\"video_height in\", values, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightNotIn(List<Integer> values) {\n            addCriterion(\"video_height not in\", values, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightBetween(Integer value1, Integer value2) {\n            addCriterion(\"video_height between\", value1, value2, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVideoHeightNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"video_height not between\", value1, value2, \"videoHeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathIsNull() {\n            addCriterion(\"cover_path is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathIsNotNull() {\n            addCriterion(\"cover_path is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathEqualTo(String value) {\n            addCriterion(\"cover_path =\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathNotEqualTo(String value) {\n            addCriterion(\"cover_path <>\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathGreaterThan(String value) {\n            addCriterion(\"cover_path >\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathGreaterThanOrEqualTo(String value) {\n            addCriterion(\"cover_path >=\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathLessThan(String value) {\n            addCriterion(\"cover_path <\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathLessThanOrEqualTo(String value) {\n            addCriterion(\"cover_path <=\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathLike(String value) {\n            addCriterion(\"cover_path like\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathNotLike(String value) {\n            addCriterion(\"cover_path not like\", value, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathIn(List<String> values) {\n            addCriterion(\"cover_path in\", values, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathNotIn(List<String> values) {\n            addCriterion(\"cover_path not in\", values, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathBetween(String value1, String value2) {\n            addCriterion(\"cover_path between\", value1, value2, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPathNotBetween(String value1, String value2) {\n            addCriterion(\"cover_path not between\", value1, value2, \"coverPath\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsIsNull() {\n            addCriterion(\"like_counts is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsIsNotNull() {\n            addCriterion(\"like_counts is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsEqualTo(Long value) {\n            addCriterion(\"like_counts =\", value, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsNotEqualTo(Long value) {\n            addCriterion(\"like_counts <>\", value, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsGreaterThan(Long value) {\n            addCriterion(\"like_counts >\", value, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"like_counts >=\", value, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsLessThan(Long value) {\n            addCriterion(\"like_counts <\", value, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsLessThanOrEqualTo(Long value) {\n            addCriterion(\"like_counts <=\", value, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsIn(List<Long> values) {\n            addCriterion(\"like_counts in\", values, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsNotIn(List<Long> values) {\n            addCriterion(\"like_counts not in\", values, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsBetween(Long value1, Long value2) {\n            addCriterion(\"like_counts between\", value1, value2, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLikeCountsNotBetween(Long value1, Long value2) {\n            addCriterion(\"like_counts not between\", value1, value2, \"likeCounts\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/src/main/java/kkvideo/admin/pojo/vo/Reports.java",
    "content": "package kkvideo.admin.pojo.vo;\n\nimport java.util.Date;\n\npublic class Reports {\n    private String id;\n    private String title;\n    private String content;\n    private Date createDate;\n    \n    private String dealUsername;\n\n    private String dealVideoId;\n    private String videoDesc;\n    private String videoPath;\n    private Integer status;\n    \n    private String submitUsername;\n\n\tpublic String getId() {\n\t\treturn id;\n\t}\n\n\tpublic void setId(String id) {\n\t\tthis.id = id;\n\t}\n\n\tpublic String getTitle() {\n\t\treturn title;\n\t}\n\n\tpublic void setTitle(String title) {\n\t\tthis.title = title;\n\t}\n\n\tpublic String getContent() {\n\t\treturn content;\n\t}\n\n\tpublic void setContent(String content) {\n\t\tthis.content = content;\n\t}\n\n\tpublic Date getCreateDate() {\n\t\treturn createDate;\n\t}\n\n\tpublic void setCreateDate(Date createDate) {\n\t\tthis.createDate = createDate;\n\t}\n\n\tpublic String getDealUsername() {\n\t\treturn dealUsername;\n\t}\n\n\tpublic void setDealUsername(String dealUsername) {\n\t\tthis.dealUsername = dealUsername;\n\t}\n\n\tpublic String getDealVideoId() {\n\t\treturn dealVideoId;\n\t}\n\n\tpublic void setDealVideoId(String dealVideoId) {\n\t\tthis.dealVideoId = dealVideoId;\n\t}\n\n\tpublic String getVideoDesc() {\n\t\treturn videoDesc;\n\t}\n\n\tpublic void setVideoDesc(String videoDesc) {\n\t\tthis.videoDesc = videoDesc;\n\t}\n\n\tpublic String getVideoPath() {\n\t\treturn videoPath;\n\t}\n\n\tpublic void setVideoPath(String videoPath) {\n\t\tthis.videoPath = videoPath;\n\t}\n\n\tpublic String getSubmitUsername() {\n\t\treturn submitUsername;\n\t}\n\n\tpublic void setSubmitUsername(String submitUsername) {\n\t\tthis.submitUsername = submitUsername;\n\t}\n\n\tpublic Integer getStatus() {\n\t\treturn status;\n\t}\n\n\tpublic void setStatus(Integer status) {\n\t\tthis.status = status;\n\t}\n\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/target/maven-archiver/pom.properties",
    "content": "#Generated by Maven\n#Mon Jun 25 16:40:17 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kkvideo-admin-pojo\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\UsersReport.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\Videos.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\Users.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\BgmExample.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\VideosExample.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\vo\\Reports.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\Bgm.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\UsersExample.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-pojo\\src\\main\\java\\kkvideo\\admin\\pojo\\UsersReportExample.java\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-pojo/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/kkvideoadminservice.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>kkvideo-admin</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kkvideo-admin-service</artifactId>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kkvideo-admin-dao</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n\n        <!-- Spring -->\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-context</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-beans</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-webmvc</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-jdbc</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-aspects</artifactId>\n        </dependency>\n    </dependencies>\n\n\n</project>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/UserService.java",
    "content": "package kkvideo.admin.service;\n\nimport kkvideo.admin.pojo.Users;\nimport kkvideo.admin.utils.PagedResult;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 00:18 2018-06-23\n * @Modified By:\n */\npublic interface UserService {\n\n    public PagedResult queryUsers(Users user, Integer page, Integer pageSize);\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/UserServiceImpl.java",
    "content": "package kkvideo.admin.service;\n\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\nimport kkvideo.admin.mapper.UsersMapper;\nimport kkvideo.admin.pojo.Users;\nimport kkvideo.admin.pojo.UsersExample;\nimport kkvideo.admin.utils.PagedResult;\nimport org.apache.commons.lang3.StringUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 00:19 2018-06-23\n * @Modified By:\n */\n@Service\npublic class UserServiceImpl implements UserService {\n\n    @Autowired\n    private UsersMapper userMapper;\n\n    @Override\n    public PagedResult queryUsers(Users user, Integer page, Integer pageSize) {\n\n        String username = \"\";\n        String nickname = \"\";\n        if (user != null) {\n            username = user.getUsername();\n            nickname = user.getNickname();\n        }\n\n        PageHelper.startPage(page, pageSize);\n\n        UsersExample userExample = new UsersExample();\n        UsersExample.Criteria userCriteria = userExample.createCriteria();\n        if (StringUtils.isNotBlank(username)) {\n            userCriteria.andUsernameLike(\"%\" + username + \"%\");\n        }\n        if (StringUtils.isNotBlank(nickname)) {\n            userCriteria.andNicknameLike(\"%\" + nickname + \"%\");\n        }\n\n        List<Users> userList = userMapper.selectByExample(userExample);\n\n        PageInfo<Users> pageList = new PageInfo<Users>(userList);\n\n        PagedResult grid = new PagedResult();\n        grid.setTotal(pageList.getPages());\n        grid.setRows(userList);\n        grid.setPage(page);\n        grid.setRecords(pageList.getTotal());\n\n        return grid;\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoService.java",
    "content": "package kkvideo.admin.service;\n\nimport kkvideo.admin.pojo.Bgm;\nimport kkvideo.admin.utils.PagedResult;\nimport org.springframework.stereotype.Service;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 12:42 2018-06-22\n * @Modified By:\n */\npublic interface VideoService {\n\n    public void addBgm(Bgm bgm);\n    public PagedResult queryBgmList(Integer page,Integer pageSize);\n    public void deleteBgm(String bgmId);\n\n\n    public PagedResult queryReportList(Integer page, Integer pageSize);\n\n    public void updateVideoStatus(String videoId, Integer status);\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/VideoServiceImpl.java",
    "content": "package kkvideo.admin.service;\n\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\nimport kkvideo.admin.enums.BGMOperatorTypeEnum;\nimport kkvideo.admin.mapper.BgmMapper;\nimport kkvideo.admin.mapper.UsersReportMapperCustom;\nimport kkvideo.admin.mapper.VideosMapper;\nimport kkvideo.admin.pojo.Bgm;\nimport kkvideo.admin.pojo.BgmExample;\nimport kkvideo.admin.pojo.Videos;\nimport kkvideo.admin.pojo.vo.Reports;\nimport kkvideo.admin.service.util.ZKCurator;\nimport kkvideo.admin.utils.JsonUtils;\nimport kkvideo.admin.utils.PagedResult;\nimport org.n3r.idworker.Sid;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.io.File;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 12:41 2018-06-22\n * @Modified By:\n */\n@Service\npublic class VideoServiceImpl implements VideoService {\n\n\n    @Autowired\n    private BgmMapper bgmMapper;\n\n    @Autowired\n    private Sid sid;\n\n    @Autowired\n    private ZKCurator zkCurator;\n\n    @Autowired\n    private VideosMapper videosMapper;\n\n    @Autowired\n    private UsersReportMapperCustom usersReportMapperCustom;\n\n\n    @Override\n    public void addBgm(Bgm bgm) {\n        String id = sid.nextShort();\n        bgm.setId(id);\n        bgmMapper.insert(bgm);\n        Map<String, String> map = new HashMap<>();\n        map.put(\"operType\", BGMOperatorTypeEnum.ADD.type);\n        map.put(\"path\", bgm.getPath());\n\n        zkCurator.sendBgmOperator(id, JsonUtils.objectToJson(map));\n    }\n\n    @Override\n    public PagedResult queryBgmList(Integer page, Integer pageSize) {\n\n        PageHelper.startPage(page, pageSize);\n\n        BgmExample example = new BgmExample();\n        List<Bgm> list = bgmMapper.selectByExample(example);\n\n        PageInfo<Bgm> pageList = new PageInfo<>(list);\n\n        PagedResult result = new PagedResult();\n        result.setTotal(pageList.getPages());\n        result.setRows(list);\n        result.setPage(page);\n        result.setRecords(pageList.getTotal());\n\n        return result;\n    }\n\n    @Override\n    public void deleteBgm(String bgmId) {\n        Bgm bgm = bgmMapper.selectByPrimaryKey(bgmId);\n\n        bgmMapper.deleteByPrimaryKey(bgmId);\n\n        /**\n         * 调用zookeeper进行通知springboot进行删除\n         */\n        Map<String, String> map = new HashMap<>();\n        map.put(\"operType\", BGMOperatorTypeEnum.DELETE.type);\n        map.put(\"path\", bgm.getPath());\n\n        zkCurator.sendBgmOperator(bgmId, JsonUtils.objectToJson(map));\n\n        //删除本地的音乐 TODO\n        File file = new File(\"E:\\\\worktest\\\\kkvideo\\\\kkvideoadmin\" + bgm.getPath());\n        if (file.exists()) {\n            file.delete();\n        }\n    }\n\n    @Override\n    public PagedResult queryReportList(Integer page, Integer pageSize) {\n\n        PageHelper.startPage(page, pageSize);\n\n        List<Reports> reportsList = usersReportMapperCustom.selectAllVideoReport();\n\n        PageInfo<Reports> pageList = new PageInfo<Reports>(reportsList);\n\n        PagedResult grid = new PagedResult();\n        grid.setTotal(pageList.getPages());\n        grid.setRows(reportsList);\n        grid.setPage(page);\n        grid.setRecords(pageList.getTotal());\n\n        return grid;\n    }\n\n    @Override\n    public void updateVideoStatus(String videoId, Integer status) {\n\n        Videos video = new Videos();\n        video.setId(videoId);\n        video.setStatus(status);\n        videosMapper.updateByPrimaryKeySelective(video);\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/src/main/java/kkvideo/admin/service/util/ZKCurator.java",
    "content": "package kkvideo.admin.service.util;\n\nimport org.apache.curator.framework.CuratorFramework;\nimport org.apache.zookeeper.CreateMode;\nimport org.apache.zookeeper.ZooDefs.Ids;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\npublic class ZKCurator {\n\n\t// zk客户端\n\tprivate CuratorFramework client = null;\t\n\tfinal static Logger log = LoggerFactory.getLogger(ZKCurator.class);\n\t\n\tpublic ZKCurator(CuratorFramework client) {\n\t\tthis.client = client;\n\t}\n\t\n\tpublic void init() {\n\t\tclient = client.usingNamespace(\"admin\");\n\t\t\n\t\ttry {\n\t\t\t// 判断在admin命名空间下是否有bgm节点  /admin/bmg\n\t\t\tif (client.checkExists().forPath(\"/bgm\") == null) {\n\t\t\t\t/**\n\t\t\t\t * 对于zk来讲，有两种类型的节点:\n\t\t\t\t * 持久节点: 当你创建一个节点的时候，这个节点就永远存在，除非你手动删除\n\t\t\t\t * 临时节点: 你创建一个节点之后，会话断开，会自动删除，当然也可以手动删除\n\t\t\t\t */\n\t\t\t\tclient.create().creatingParentsIfNeeded()\n\t\t\t\t\t.withMode(CreateMode.PERSISTENT)\t\t// 节点类型：持久节点\n\t\t\t\t\t.withACL(Ids.OPEN_ACL_UNSAFE)\t\t\t// acl：匿名权限\n\t\t\t\t\t.forPath(\"/bgm\");\n\t\t\t\tlog.info(\"zookeeper初始化成功...\");\n\t\t\t\tSystem.out.println(\"zookeeper初始化成功\");\n\n\t\t\t\tlog.info(\"zookeeper服务器状态：{}\", client.isStarted());\n\t\t\t}\n\t\t} catch (Exception e) {\n\t\t\tlog.error(\"zookeeper客户端连接、初始化错误...\");\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\t\n\t/**\n\t * @Description: 增加或者删除bgm，向zk-server创建子节点，供小程序后端监听\n\t */\n\tpublic void sendBgmOperator(String bgmId, String operObj) {\n\t\ttry {\n\t\t\t\n\t\t\tclient.create().creatingParentsIfNeeded()\n\t\t\t\t.withMode(CreateMode.PERSISTENT)\t\t// 节点类型：持久节点\n\t\t\t\t.withACL(Ids.OPEN_ACL_UNSAFE)\t\t\t// acl：匿名权限\n\t\t\t\t.forPath(\"/bgm/\" + bgmId, operObj.getBytes());\n\t\t} catch (Exception e) { \n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\t\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/src/main/resources/resource.properties",
    "content": "adminResourceFile=E:\\\\worktest\\\\kkvideo\\\\kkvideoadmin"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/target/classes/resource.properties",
    "content": "adminResourceFile=E:\\\\worktest\\\\kkvideo\\\\kkvideoadmin"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/target/maven-archiver/pom.properties",
    "content": "#Generated by Maven\n#Mon Jun 25 16:40:18 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kkvideo-admin-service\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-service\\src\\main\\java\\kkvideo\\admin\\service\\UserService.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-service\\src\\main\\java\\kkvideo\\admin\\service\\UserServiceImpl.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-service\\src\\main\\java\\kkvideo\\admin\\service\\VideoServiceImpl.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-service\\src\\main\\java\\kkvideo\\admin\\service\\util\\ZKCurator.java\nE:\\IntelliJIDEAWork\\kkvideo\\kkvideo-admin\\kkvideo-admin-service\\src\\main\\java\\kkvideo\\admin\\service\\VideoService.java\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/kkvideoadminweb.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>kkvideo-admin</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>war</packaging>\n    <artifactId>kkvideo-admin-web</artifactId>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kkvideo-admin-service</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n        <!-- JSP相关 -->\n        <dependency>\n            <groupId>jstl</groupId>\n            <artifactId>jstl</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>servlet-api</artifactId>\n            <scope>provided</scope>\n        </dependency>\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>jsp-api</artifactId>\n            <scope>provided</scope>\n        </dependency>\n        <!-- 文件上传组件 -->\n        <dependency>\n            <groupId>commons-fileupload</groupId>\n            <artifactId>commons-fileupload</artifactId>\n        </dependency>\n\n\n    </dependencies>\n\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.apache.tomcat.maven</groupId>\n                <artifactId>tomcat7-maven-plugin</artifactId>\n                <configuration>\n                    <port>80</port>\n                    <server>tomcat7</server>\n                    <path>/</path>\n                    <useBodyEncodingForURI>true</useBodyEncodingForURI>\n                    <uriEncoding>UTF-8</uriEncoding>\n                </configuration>\n            </plugin>\n        </plugins>\n    </build>\n\n\n</project>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/bean/AdminUser.java",
    "content": "package kkvideo.admin.bean;\n\npublic class AdminUser {\n\t\n\tprivate String usertoken;\n\tprivate String username;\n\tprivate String password;\n\t\n\tpublic AdminUser() {\n\t}\n\t\n\tpublic AdminUser(String username, String password, String usertoken) {\n\t\tsuper();\n\t\tthis.username = username;\n\t\tthis.password = password;\n\t\tthis.usertoken = usertoken;\n\t}\n\t\n\tpublic String getUsername() {\n\t\treturn username;\n\t}\n\tpublic void setUsername(String username) {\n\t\tthis.username = username;\n\t}\n\tpublic String getPassword() {\n\t\treturn password;\n\t}\n\tpublic void setPassword(String password) {\n\t\tthis.password = password;\n\t}\n\n\tpublic String getUsertoken() {\n\t\treturn usertoken;\n\t}\n\n\tpublic void setUsertoken(String usertoken) {\n\t\tthis.usertoken = usertoken;\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/PageController.java",
    "content": "package kkvideo.admin.controller;\n\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestMapping;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 00:02 2018-06-22\n * @Modified By:\n */\n@Controller\npublic class PageController {\n\n    /**\n     * 跳转后台首页\n     * @return\n     */\n    @RequestMapping(\"/center\")\n    public String goCenter(){\n        return \"center\";\n    }\n\n    /**\n     * 跳转用户登陆页面\n     * @return\n     */\n    @GetMapping(\"/login\")\n    public String gologin(){\n        return \"login\";\n    }\n}\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/UserController.java",
    "content": "package kkvideo.admin.controller;\n\nimport kkvideo.admin.bean.AdminUser;\nimport kkvideo.admin.pojo.Users;\nimport kkvideo.admin.service.UserService;\nimport kkvideo.admin.utils.KkJsonResult;\nimport kkvideo.admin.utils.PagedResult;\nimport org.apache.commons.lang3.StringUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\nimport java.util.UUID;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 10:54 2018-06-22\n * @Modified By:\n */\n@Controller\n@RequestMapping(\"/users\")\npublic class UserController {\n\n\n    @Value(\"${adminusername}\")\n    private String adminUsername;\n\n    @Value(\"${adminpassword}\")\n    private String adminPassword;\n\n    @Autowired\n    private UserService userService;\n\n\n    /**\n     * 用户登陆\n     * @param username\n     * @param password\n     * @param request\n     * @param response\n     * @return\n     */\n    @PostMapping(\"/login\")\n    @ResponseBody\n    public KkJsonResult userLogin(String username, String password,\n                                     HttpServletRequest request, HttpServletResponse response) {\n\n\n        // TODO 模拟登陆\n        if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {\n            return KkJsonResult.errorMap(\"用户名和密码不能为空\");\n        } else if (username.equals(adminUsername) && password.equals(adminPassword)) {\n            String token = UUID.randomUUID().toString();\n            AdminUser user = new AdminUser(username, password, token);\n            request.getSession().setAttribute(\"existUser\", user);\n            return KkJsonResult.ok();\n        }\n\n        return KkJsonResult.errorMsg(\"登陆失败，请重试...\");\n    }\n\n    /**\n     * 用户退出\n     * @param request\n     * @param response\n     * @return\n     */\n    @GetMapping(\"/logout\")\n    public String logout(HttpServletRequest request, HttpServletResponse response) {\n        request.getSession().removeAttribute(\"sessionUser\");\n        return \"login\";\n    }\n\n\n    /**\n     * 跳转用户列表\n     * @return\n     */\n    @GetMapping(\"/showList\")\n    public String showList() {\n        return \"users/usersList\";\n    }\n\n    /**\n     * 查询用户列表\n     * @param user\n     * @param page\n     * @return\n     */\n    @RequestMapping(\"/list\")\n    @ResponseBody\n    public PagedResult list(Users user,Integer page) {\n        PagedResult result = userService.queryUsers(user, page == null ? 1 : page, 10);\n        return result;\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/controller/VideoController.java",
    "content": "package kkvideo.admin.controller;\n\nimport kkvideo.admin.enums.VideoStatusEnum;\nimport kkvideo.admin.pojo.Bgm;\nimport kkvideo.admin.service.VideoService;\nimport kkvideo.admin.utils.KkJsonResult;\nimport kkvideo.admin.utils.PagedResult;\nimport org.apache.commons.io.IOUtils;\nimport org.apache.commons.lang3.StringUtils;\nimport org.n3r.idworker.Sid;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\nimport org.springframework.web.multipart.MultipartFile;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\nimport java.io.InputStream;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 11:51 2018-06-22\n * @Modified By:\n */\n@Controller\n@RequestMapping(\"/video\")\npublic class VideoController {\n\n    @Value(\"${FILE_SPACE}\")\n    private String FILE_SPACE;\n\n    @Autowired\n    private Sid sid;\n\n    @Autowired\n    private VideoService videoService;\n\n\n    /**\n     * 分页查询所有bgm使用Pagehelper\n     * @param page\n     * @return\n     */\n    @PostMapping(\"/queryBgmList\")\n    @ResponseBody\n    public PagedResult queryBgmList(Integer page) {\n        return videoService.queryBgmList(page, 10);\n    }\n\n\n    /**\n     * 跳转背景音乐列表\n     *\n     * @return\n     */\n    @RequestMapping(\"/showBgmList\")\n    public String showBgmList() {\n        return \"video/bgmList\";\n    }\n\n    /**\n     * 删除bgm\n     * @param bgmId\n     * @return\n     */\n    @PostMapping(\"/delBgm\")\n    @ResponseBody\n    public KkJsonResult delBgm(String bgmId) {\n        videoService.deleteBgm(bgmId);\n        return KkJsonResult.ok();\n    }\n\n    /**\n     * 跳转到添加背景音乐地址\n     *\n     * @return\n     */\n    @RequestMapping(\"/showAddBgm\")\n    public String showAddBgm() {\n        return \"video/addBgm\";\n    }\n\n    /**\n     * 添加bgm\n     *\n     * @param bgm\n     * @return\n     */\n    @PostMapping(\"/addBgm\")\n    @ResponseBody\n    public KkJsonResult addBgm(Bgm bgm) {\n        videoService.addBgm(bgm);\n        return KkJsonResult.ok();\n    }\n\n    /**\n     * 后台上传Bgm音乐\n     *\n     * @param files\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(\"/bgmUpload\")\n    @ResponseBody\n    public KkJsonResult bgmUpload(@RequestParam(\"file\") MultipartFile[] files) throws Exception {\n\n        // 文件保存的命名空间\n       // String fileSpace = \"E:\" + File.separator + \"worktest\" + File.separator + \"kkvideo\" + File.separator + \"kkvideoadmin\";\n\n        // 保存到数据库中的相对路径\n        String uploadPathDB = File.separator + \"bgm\";\n\n        FileOutputStream fileOutputStream = null;\n        InputStream inputStream = null;\n        try {\n            if (files != null && files.length > 0) {\n\n                String fileName = files[0].getOriginalFilename();\n                String fileType = fileName.substring(fileName.lastIndexOf(\".\")+1);\n                String uuid = sid.nextShort();\n                fileName=uuid+\".\"+fileType;\n                if (StringUtils.isNotBlank(fileName)) {\n                    // 文件上传的最终保存路径\n                    String finalPath = FILE_SPACE + uploadPathDB + File.separator + fileName;\n                    // 设置数据库保存的路径\n                    uploadPathDB += (File.separator + fileName);\n\n                    File outFile = new File(finalPath);\n                    if (outFile.getParentFile() != null || !outFile.getParentFile().isDirectory()) {\n                        // 创建父文件夹\n                        outFile.getParentFile().mkdirs();\n                    }\n\n                    fileOutputStream = new FileOutputStream(outFile);\n                    inputStream = files[0].getInputStream();\n                    IOUtils.copy(inputStream, fileOutputStream);\n                }\n\n            } else {\n                return KkJsonResult.errorMsg(\"上传出错...\");\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n            return KkJsonResult.errorMsg(\"上传出错...\");\n        } finally {\n            if (fileOutputStream != null) {\n                fileOutputStream.flush();\n                fileOutputStream.close();\n            }\n        }\n\n        return KkJsonResult.ok(uploadPathDB);\n    }\n\n    /**\n     * 跳转举报页面\n     * @return\n     */\n    @GetMapping(\"/showReportList\")\n    public String showReportList() {\n        return \"video/reportList\";\n    }\n\n    /**\n     * 查询举报列表\n     * @param page\n     * @return\n     */\n    @PostMapping(\"/reportList\")\n    @ResponseBody\n    public PagedResult reportList(Integer page) {\n\n        PagedResult result = videoService.queryReportList(page, 10);\n        return result;\n    }\n\n    /**\n     * 更逊举报状态\n     * @param videoId\n     * @return\n     */\n    @PostMapping(\"/forbidVideo\")\n    @ResponseBody\n    public KkJsonResult forbidVideo(String videoId) {\n\n        videoService.updateVideoStatus(videoId, VideoStatusEnum.FORBID.value);\n        return KkJsonResult.ok();\n    }\n\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/java/kkvideo/admin/interceptor/LoginInterceptor.java",
    "content": "package kkvideo.admin.interceptor;\n\nimport org.springframework.web.servlet.HandlerInterceptor;\nimport org.springframework.web.servlet.ModelAndView;\n\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\nimport java.util.List;\n\npublic class LoginInterceptor implements HandlerInterceptor {\n\n\tprivate List<String> unCheckUrls;\n\t\n\t@Override\n\tpublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {\n\t\t\n\t\tString requestUrl = request.getRequestURI();\n\t\trequestUrl=requestUrl.replaceAll(request.getContextPath(), \"\");\n\t\t// 判断是否针对匿名路径需要拦截，如果包含，则表示匿名路径，需要拦截，否则通过拦截器\n\t\tif (unCheckUrls.contains(requestUrl)){\n\t\t\t// 包含公开url，直接跳过\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\tif(null == request.getSession().getAttribute(\"existUser\")){\n\t\t\tresponse.sendRedirect(request.getContextPath()+\"/login.action\");\n\t\t\t\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\t// 放行\n\t\treturn true;\n\t}\n\t\n\t\n\t@Override\n\tpublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)\n\t\t\tthrows Exception {\n\t\t// TODO Auto-generated method stub\n\t}\n\t\n\t@Override\n\tpublic void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)\n\t\t\tthrows Exception {\n\t\t// TODO Auto-generated method stub\n\t}\n\n\tpublic List<String> getUnCheckUrls() {\n\t\treturn unCheckUrls;\n\t}\n\n\tpublic void setUnCheckUrls(List<String> unCheckUrls) {\n\t\tthis.unCheckUrls = unCheckUrls;\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/log4j.properties",
    "content": "log4j.rootLogger=INFO,console\n# TODO \\u53d1\\u5e03\\u5230\\u963f\\u91cc\\u4e91\\u8bb0\\u5f97\\u6dfb\\u52a0\\uff0c\\u53e6\\u5916\\u63a7\\u5236\\u53f0\\u4e0d\\u8f93\\u51fa(\\u53ea\\u8f93\\u51fawarn\\u6216\\u8005error\\u4fe1\\u606f)\n#INFO,console,dailyFile\n\n# log4j.logger.org.mybatis = INFO\nlog4j.logger.kkvideo.admin.dao=INFO\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender.console.encoding=UTF-8\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/mybatis/SqlMapConfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE configuration\n\t\tPUBLIC \"-//mybatis.org//DTD Config 3.0//EN\"\n\t\t\"http://mybatis.org/dtd/mybatis-3-config.dtd\">\n<configuration>\n\n\t<!-- 用于输出日志 log4j:LOG4J SLF4J -->\n    <settings>  \n        <setting name=\"logImpl\" value=\"SLF4J\"/>  \n    </settings>  \n\n\t<!-- 此文件可以为空文件, 但是必须要有这文件 -->\n\t\n\t<!-- plugins在配置文件中的位置必须符合要求，否则会报错，顺序如下: properties?, settings?, typeAliases?, \n\t\ttypeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, \n\t\tdatabaseIdProvider?, mappers? -->\n\t<plugins>\n\t\t<!-- com.github.pagehelper为PageHelper类所在包名 -->\n\t\t<plugin interceptor=\"com.github.pagehelper.PageHelper\">\n\t\t\t<!-- 4.0.0以后版本可以不设置该参数 -->\n\t\t\t<property name=\"dialect\" value=\"mysql\" />\n\t\t\t<!-- 该参数默认为false -->\n\t\t\t<!-- 设置为true时，会将RowBounds第一个参数offset当成pageNum页码使用 -->\n\t\t\t<!-- 和startPage中的pageNum效果一样 -->\n\t\t\t<property name=\"offsetAsPageNum\" value=\"true\" />\n\t\t\t<!-- 该参数默认为false -->\n\t\t\t<!-- 设置为true时，使用RowBounds分页会进行count查询 -->\n\t\t\t<property name=\"rowBoundsWithCount\" value=\"true\" />\n\t\t\t<!-- 设置为true时，如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->\n\t\t\t<!-- （相当于没有执行分页查询，但是返回结果仍然是Page类型） -->\n\t\t\t<property name=\"pageSizeZero\" value=\"true\" />\n\t\t\t<!-- 3.3.0版本可用 - 分页参数合理化，默认false禁用 -->\n\t\t\t<!-- 启用合理化时，如果pageNum<1会查询第一页，如果pageNum>pages会查询最后一页 -->\n\t\t\t<!-- 禁用合理化时，如果pageNum<1或pageNum>pages会返回空数据 -->\n<!-- \t\t\t<property name=\"reasonable\" value=\"false\" /> -->\n\t\t\t<!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->\n\t\t\t<!-- 增加了一个`params`参数来配置参数映射，用于从Map或ServletRequest中取值 -->\n\t\t\t<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->\n\t\t\t<!-- 不理解该含义的前提下，不要随便复制该配置 -->\n<!-- \t\t\t<property name=\"params\"\tvalue=\"pageNum=pageHelperStart;pageSize=pageHelperRows;\" /> -->\n\t\t\t<!-- 支持通过Mapper接口参数来传递分页参数 -->\n\t\t\t<property name=\"supportMethodsArguments\" value=\"false\" />\n\t\t\t<!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->\n\t\t\t<property name=\"returnPageInfo\" value=\"none\" />\n\t\t</plugin>\n\t</plugins>\n\t\n</configuration>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/resource/admin.properties",
    "content": "adminusername=admin\nadminpassword=admin"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/resource/db.properties",
    "content": "jdbc.driver=com.mysql.jdbc.Driver\n#jdbc.url=jdbc:mysql://localhost:3306/kkvideo\njdbc.url=jdbc:mysql://video.redrat.cn:3306/kkvideo\njdbc.username=root\njdbc.password=jimisun\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/resource/resource.properties",
    "content": "#FILE_SPACE=E:\\\\worktest\\\\kkvideo\\\\kkvideoadmin\nFILE_SPACE=/resource"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/spring/applicationContext-dao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<!-- 数据库连接池 -->\n\t<!-- 加载配置文件 -->\n\t<!-- \n\t\t由db.properties改为*.properties, 这样也会加载其他的属性文件 可以使用 @Value\n\t\t由于父子容器关系，service层（父）的属性文件在springmvc层（子）是读取不到的，子只能读取对象，属性是读取不到的\n\t -->\n\t<context:property-placeholder location=\"classpath:resource/*.properties\" />\n\t<!-- 数据库连接池 -->\n\t<bean id=\"dataSource\" class=\"com.alibaba.druid.pool.DruidDataSource\"\n\t\tdestroy-method=\"close\">\n\t\t<property name=\"url\" value=\"${jdbc.url}\" />\n\t\t<property name=\"username\" value=\"${jdbc.username}\" />\n\t\t<property name=\"password\" value=\"${jdbc.password}\" />\n\t\t<property name=\"driverClassName\" value=\"${jdbc.driver}\" />\n\t\t<!-- 最大并发连接数 -->\n\t\t<property name=\"maxActive\" value=\"30\" />\n\t\t<!-- 最小空闲连接数 -->\n\t\t<property name=\"minIdle\" value=\"5\" />\n\t\t<!-- 用于显示数据源监控中的sql语句监控 -->\n\t\t<property name=\"filters\" value=\"stat\" />\n\t</bean>\n\t\n\t<!-- 配置sqlsessionFactory -->\n\t<bean id=\"sqlSessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">\n\t\t<property name=\"configLocation\" value=\"classpath:mybatis/SqlMapConfig.xml\"></property>\n\t\t<property name=\"dataSource\" ref=\"dataSource\"></property>\n\t</bean>\n\t\n\t<!-- 配置扫描包，加载mapper代理对象 -->\n\t<bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n\t\t<property name=\"basePackage\" value=\"kkvideo.admin.mapper\"></property>\n\t</bean>\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/spring/applicationContext-service.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\t\t\n\t<!-- 扫描包加载Service实现类 -->\n\t<context:component-scan base-package=\"kkvideo.admin.service\"></context:component-scan>\n\t\n\t<!-- 自动创建代理 对@AspectJ注解的支持 -->\n\t<!-- 通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Service --> \n\t<aop:aspectj-autoproxy proxy-target-class=\"true\"></aop:aspectj-autoproxy>\n\n\t<!--配置工具类sid到Spring的容器中-->\n\t<bean id=\"sid\" class=\"org.n3r.idworker.Sid\"></bean>\n\t\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/spring/applicationContext-transaction.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\" xmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<!-- 事务管理器 -->\n\t<bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\">\n\t\t<!-- 数据源 -->\n\t\t<property name=\"dataSource\" ref=\"dataSource\" />\n\t</bean>\n\t\n\t<!-- 通知 -->\n\t<tx:advice id=\"txAdvice\" transaction-manager=\"transactionManager\">\n\t\t<tx:attributes>\n\t\t\t<!-- 传播行为 -->\n\t\t\t<tx:method name=\"save*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"insert*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"add*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"create*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"delete*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"update*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"display*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"do*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"query*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"find*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"select*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"get*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t</tx:attributes>\n\t</tx:advice>\n\t\n\t<!-- 切面 -->\n\t<aop:config>\n\t\t<aop:advisor advice-ref=\"txAdvice\" pointcut=\"execution(* kkvideo.admin.service.*.*(..))\" />\n\t</aop:config>\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/spring/applicationContext-zookeeper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\t\t\n\t<description>zookeeper 放入spring容器，项目启动加载的时候就建立和zk的连接</description>\n\t\n\t<!--&lt;!&ndash; 创建重连策略 &ndash;&gt;-->\n\t<bean id=\"retryPolicy\" class=\"org.apache.curator.retry.ExponentialBackoffRetry\">\n\t\t<!--&lt;!&ndash; 每次重试连接的等待时间 &ndash;&gt;-->\n\t\t<constructor-arg index=\"0\" value=\"1000\"></constructor-arg>\n\t\t<!--&lt;!&ndash; 设置的重连的次数 &ndash;&gt;-->\n\t\t<constructor-arg index=\"1\" value=\"5\"></constructor-arg>\n\t</bean>\n\t\n\t<!--&lt;!&ndash; 创建zookeeper客户端 &ndash;&gt;-->\n\t<bean id=\"client\" class=\"org.apache.curator.framework.CuratorFrameworkFactory\" \n\t\tfactory-method=\"newClient\" init-method=\"start\">\n\t\t<constructor-arg index=\"0\" value=\"admin.video.redrat.cn:2181\"></constructor-arg>\n\t\t<!--<constructor-arg index=\"0\" value=\"192.168.25.137:2181\"></constructor-arg>-->\n\t\t<constructor-arg index=\"1\" value=\"10000\"></constructor-arg>\n\t\t<constructor-arg index=\"2\" value=\"10000\"></constructor-arg>\n\t\t<constructor-arg index=\"3\" ref=\"retryPolicy\"></constructor-arg>\n\t</bean>\n\t\n\t<!--&lt;!&ndash; 客户端配置 &ndash;&gt;\n\t&lt;!&ndash; init-method=\"init\" 不使用zk的话，仅仅只是测试为了方便可以把这个方法暂时拿掉 &ndash;&gt;-->\n\t<bean id=\"ZKCurator\" class=\"kkvideo.admin.service.util.ZKCurator\" init-method=\"init\">\n\t\t<constructor-arg index=\"0\" ref=\"client\"></constructor-arg>\n\t</bean>\n\n\t\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/resources/spring/springmvc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:mvc=\"http://www.springframework.org/schema/mvc\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd\n\t\thttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<context:component-scan base-package=\"kkvideo.admin.controller\" />\n\t\n\t<!-- 自动创建代理 对@AspectJ注解的支持 -->\n\t<!-- 通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Controller --> \n\t<aop:aspectj-autoproxy proxy-target-class=\"true\"></aop:aspectj-autoproxy>\n\n\t<!--配置注解驱动-->\n\t<mvc:annotation-driven />\n\t\n\t<!-- 静态资源映射 -->\n\t<!-- 缓存存在时间 cache-period 1年 -->\n\t<mvc:resources mapping=\"/static/**\" location=\"/static/\" cache-period=\"31556926\"/>\n\n\t<!--配置视图解析器-->\n\t<bean class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\">\n\t\t<property name=\"prefix\" value=\"/WEB-INF/center/\" />\n\t\t<property name=\"suffix\" value=\".jsp\" />\n\t</bean>\n\t\n\t <!--配置文件方式配置拦截器-->\n   <mvc:interceptors>\n        <mvc:interceptor>\n            <mvc:mapping path=\"/*/**\"/>\n            <mvc:exclude-mapping path=\"/static/**\"/>  \n            <bean class=\"kkvideo.admin.interceptor.LoginInterceptor\">\n               <property name=\"unCheckUrls\"> \n                  <list> \n\t\t\t\t\t<value>/login.action</value>\n\t\t\t\t\t<value>/users/login.action</value>\n                  </list>\n              </property> \n            </bean>\n        </mvc:interceptor>\n    </mvc:interceptors>\n\t\n\t<!-- 配置多媒体文件解析器（视图解析器） -->\n\t<bean id=\"multipartResolver\"\n\t\tclass=\"org.springframework.web.multipart.commons.CommonsMultipartResolver\">\n\t\t<!-- 设定默认编码 -->\n\t\t<property name=\"defaultEncoding\" value=\"UTF-8\"></property>\n\t\t<!-- 设定文件上传的最大值2MB， 10*1024*1024 -->\n\t\t<property name=\"maxUploadSize\" value=\"20485760\"></property>\n\t\t<!--resolveLazily属性启用是为了推迟文件解析，以便在UploadAction 中捕获文件大小异常--> \n\t\t<property name=\"resolveLazily\" value=\"true\"/>    \n\t</bean>\n\t\n\t<!-- 属性文件不能跨容器，要在controller中也能被访问到，也需要配置  加载属性文件 -->\n\t<context:property-placeholder location=\"classpath:resource/*.properties\" />\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/center.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\" %>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html>\n\n<!-- BEGIN HEAD -->\n<head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n    <title>KK短视频后台管理系统</title>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\"/>\n\n    <!-- 公用头部JS start -->\n    <jsp:include page=\"common/commonHeaderCSS.jsp\"></jsp:include>\n    <!-- 公用头部JS end -->\n\n    <style>\n        /* 设置jqgrid列中文字内容垂直居中 jqgrid 单元格自动换行 */\n        .ui-jqgrid tr.jqgrow td {\n            vertical-align: middle;\n            white-space: normal !important;\n            height: auto;\n            word-break: break-all;\n        }\n    </style>\n\n</head>\n<!-- END HEAD -->\n\n<body class=\"page-header-fixed page-sidebar-closed-hide-logo page-content-white\">\n<div class=\"page-wrapper\">\n\n    <!-- 引入header页面 start -->\n    <jsp:include page=\"common/header.jsp\"></jsp:include>\n    <!-- 引入header页面  end -->\n\n    <!-- BEGIN HEADER & CONTENT DIVIDER -->\n    <div class=\"clearfix\"></div>\n    <!-- END HEADER & CONTENT DIVIDER -->\n\n    <div class=\"page-container\">\n\n        <!-- 菜单 start -->\n        <jsp:include page=\"common/menu.jsp\"></jsp:include>\n        <!-- 菜单 end -->\n\n        <!-- BEGIN CONTENT -->\n        <div class=\"page-content-wrapper\">\n            <!-- BEGIN CONTENT BODY -->\n            <div class=\"page-content\">\n\n                <div class=\"page-content-body\">\n\n                    <jsp:include page=\"first.jsp\"></jsp:include>\n\n                </div>\n\n            </div>\n            <!-- END CONTENT BODY -->\n        </div>\n        <!-- END CONTENT -->\n\n    </div>\n    <!-- END CONTAINER -->\n</div>\n\n<!-- 引入footer页面 start -->\n<jsp:include page=\"common/footer.jsp\"></jsp:include>\n<!-- 引入footer页面  end -->\n\n\n<!-- 公用尾部JS start -->\n<jsp:include page=\"common/commonFooterJS.jsp\"></jsp:include>\n<!-- 公用尾部JS end -->\n\n</body>\n\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/commonFooterJS.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%-- <%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %> --%>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!--[if lt IE 9]>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/respond.min.js\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/excanvas.min.js\"></script> \n<script src=\"<%=request.getContextPath() %>/static/global/plugins/ie8.fix.min.js\"></script> \n<![endif]-->\n\n<!-- 上下文对象路径 -->\n<input type=\"hidden\" id=\"hdnContextPath\" name=\"hdnContextPath\" value=\"<%=request.getContextPath() %>\"/>\n<input type=\"hidden\" id=\"apiServer\" name=\"apiServer\" value=\"https://video.redrat.cn\"/>\n<input type=\"hidden\" id=\"bgmServer\" name=\"bgmServer\" value=\"http://admin.video.redrat.cn:8888\"/>\n<input type=\"hidden\" id=\"apiSourceServer\" name=\"apiSourceServer\" value=\"http://video.redrat.cn:8888\"/>\n<%--<input type=\"hidden\" id=\"apiServer\" name=\"apiServer\" value=\"http://192.168.1.2:8081\"/>\n<input type=\"hidden\" id=\"bgmServer\" name=\"bgmServer\" value=\"http://192.168.1.2:8080/mvc\"/>--%>\n\n\n\n<!-- BEGIN CORE PLUGINS -->\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap/js/bootstrap.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/js.cookie.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/morris/morris.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery-validation/js/jquery.validate.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery-validation/js/additional-methods.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<!-- END PAGE LEVEL PLUGINS -->\n<!-- BEGIN THEME GLOBAL SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/global/scripts/app.js?v=3.1415926\" type=\"text/javascript\"></script>\n<!-- END THEME GLOBAL SCRIPTS -->\n<!-- BEGIN PAGE LEVEL SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery.form.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/form-validation.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-sweetalert/sweetalert.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/i18n/grid.locale-cn.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/jquery.jqGrid.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<!-- END PAGE LEVEL SCRIPTS -->\n\n<!-- BEGIN PAGE LEVEL SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/dashboard.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/ui-sweetalert.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/ui-blockui.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/icheck/icheck.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/form-icheck.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/js/bootstrap-modalmanager.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/js/bootstrap-modal.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/file-uploader/js/vendor/jquery.ui.widget.js?v=3.1415926\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/file-uploader/js/jquery.fileupload.js?v=3.1415926\"></script>\n\n\n\n<!-- END PAGE LEVEL SCRIPTS -->\n\n<!-- BEGIN 自己写的页面JS -->\n<script src=\"<%=request.getContextPath() %>/static/pages/js/commonJSFunction.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<!-- END 自己写的页面JS -->\n\n<!-- BEGIN THEME LAYOUT SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/layouts/layout/scripts/layout.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/layouts/layout/scripts/demo.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/layouts/global/scripts/quick-sidebar.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/layouts/global/scripts/quick-nav.js?v=3.1415926\" type=\"text/javascript\"></script>\n<!-- END THEME LAYOUT SCRIPTS -->\n\n      \n      \n      \n      \n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/commonHeaderCSS.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n\n<%-- <%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %> --%>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- BEGIN GLOBAL MANDATORY STYLES -->\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/font-awesome/css/font-awesome.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/simple-line-icons/simple-line-icons.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap/css/bootstrap.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-switch/css/bootstrap-switch.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<!-- END GLOBAL MANDATORY STYLES -->\n<!-- BEGIN PAGE LEVEL PLUGINS -->\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-daterangepicker/daterangepicker.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/clockface/css/clockface.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/morris/morris.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/fullcalendar/fullcalendar.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/jqvmap/jqvmap/jqvmap.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/jquery-multi-select/css/multi-select.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2-bootstrap.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-sweetalert/sweetalert.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/icheck/skins/all.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap-ui.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/css/bootstrap-modal-bs3patch.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/css/bootstrap-modal.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n        \n<!-- END PAGE LEVEL PLUGINS -->\n\n<!-- BEGIN THEME GLOBAL STYLES -->\n<link href=\"<%=request.getContextPath() %>/static/global/css/components.css\" rel=\"stylesheet\" id=\"style_components\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/css/plugins.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<!-- END THEME GLOBAL STYLES -->\n<!-- BEGIN THEME LAYOUT STYLES -->\n<link href=\"<%=request.getContextPath() %>/static/layouts/layout/css/layout.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/layouts/layout/css/themes/darkblue.css\" rel=\"stylesheet\" type=\"text/css\" id=\"style_color\" />\n<link href=\"<%=request.getContextPath() %>/static/layouts/layout/css/custom.css\" rel=\"stylesheet\" type=\"text/css\" />\n<!-- END THEME LAYOUT STYLES -->\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/footer.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- BEGIN FOOTER -->\n<div class=\"page-footer\">\n    <div class=\"page-footer-inner\"> kk短视频 2018 &copy; All Rights Reserved.\n    </div>\n    <div class=\"scroll-to-top\">\n        <i class=\"icon-arrow-up\"></i>\n    </div>\n</div>\n<!-- END FOOTER -->"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/header.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- BEGIN HEADER -->\n<div class=\"page-header navbar navbar-fixed-top\">\n    <!-- BEGIN HEADER INNER -->\n    <div class=\"page-header-inner \">\n        <!-- BEGIN LOGO -->\n        <div class=\"page-logo\">\n            <a href=\"<%=request.getContextPath()%>/\">\n                <img src=\"<%=request.getContextPath()%>/static/pages/img/logos/logo.png\" alt=\"logo\" class=\"logo-default\" /> \n            </a>\n            <div class=\"menu-toggler sidebar-toggler\" style=\"width: 19px; height: 19px;\">\n                <span style=\"top: 8px;\"></span>\n            </div>\n        </div>\n        <!-- END LOGO -->\n        <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n        <a href=\"javascript:;\" class=\"menu-toggler responsive-toggler\" data-toggle=\"collapse\" data-target=\".navbar-collapse\" style=\"width: 19px; height: 19px;\">\n            <span style=\"top: 8px;\"></span>\n        </a>\n        <!-- END RESPONSIVE MENU TOGGLER -->\n        <!-- BEGIN TOP NAVIGATION MENU -->\n        <div class=\"top-menu\">\n            <ul class=\"nav navbar-nav pull-right\">\n                <!-- BEGIN USER LOGIN DROPDOWN -->\n                <!-- DOC: Apply \"dropdown-dark\" class after below \"dropdown-extended\" to change the dropdown styte -->\n                <li class=\"dropdown dropdown-user\">\n                    <a href=\"<%=request.getContextPath()%>/center.shtml\" class=\"dropdown-toggle\" data-toggle=\"dropdown\" data-hover=\"dropdown\" data-close-others=\"true\">\n                        <span class=\"username username-hide-on-mobile\"> 欢迎登录 </span>\n                    </a>\n                </li>\n                <!-- END USER LOGIN DROPDOWN -->\n                <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n                <!-- DOC: Apply \"dropdown-dark\" class after below \"dropdown-extended\" to change the dropdown styte -->\n                <li class=\"dropdown dropdown-quick-sidebar-toggler\">\n                    <a href=\"<%=request.getContextPath() %>/users/logout.action\" class=\"dropdown-toggle\">\n                        <i class=\"icon-logout\"></i>\n                    </a>\n                </li>\n                <!-- END QUICK SIDEBAR TOGGLER -->\n            </ul>\n        </div>\n        <!-- END TOP NAVIGATION MENU -->\n    </div>\n    <!-- END HEADER INNER -->\n</div>\n<!-- END HEADER -->"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/common/menu.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n\n<!-- BEGIN CONTAINER -->\n    <!-- BEGIN SIDEBAR -->\n    <div class=\"page-sidebar-wrapper\">\n        <!-- BEGIN SIDEBAR -->\n        <div class=\"page-sidebar navbar-collapse collapse\">\n            <!-- BEGIN SIDEBAR MENU -->\n            <ul class=\"page-sidebar-menu  page-header-fixed \" data-keep-expanded=\"false\" data-auto-scroll=\"false\" data-slide-speed=\"200\" style=\"padding-top: 20px\">\n                <!-- DOC: To remove the sidebar toggler from the sidebar you just need to completely remove the below \"sidebar-toggler-wrapper\" LI element -->\n                <!-- BEGIN SIDEBAR TOGGLER BUTTON -->\n                <li class=\"sidebar-toggler-wrapper hide\">\n                    <div class=\"sidebar-toggler\">\n                        <span>\n                        \t\n                        </span>\n                    </div>\n                </li>\n                \n               \t<!-- 控制台  start -->\n               \t<li class=\"nav-item\">\n                \t<a href=\"<%=request.getContextPath() %>/\">\n                    \t<i class=\"icon-home\"></i>\n                        \t<span class=\"title\">首页</span>\n\t\t\t\t\t</a>\n               \t</li>\n               \t\n               \t<!-- 用户管理 start -->\n\t\t\t\t<li class=\"nav-item \">\n                    <a href=\"javascript:;\" class=\"nav-link nav-toggle\">\n                        <i class=\"icon-user\"></i>\n                        <span class=\"title\">用户信息</span>\n\t\t\t\t\t\t<span class=\"arrow\"></span>\n                    </a>\n                    <ul class=\"sub-menu\">\n                        <li class=\"nav-item \">\n                            <a href=\"<%=request.getContextPath() %>/users/showList.action\" class=\"ajaxify nav-link \">\n                                <span class=\"title\">用户列表</span>\n                            </a>\n                        </li>\n                    </ul>\n               \t</li>\n               \t\n               \t<!-- 背景音乐 start -->\n\t\t\t\t<li class=\"nav-item \">\n                    <a href=\"javascript:;\" class=\"nav-link nav-toggle\">\n                        <i class=\"icon-basket-loaded\"></i>\n                        <span class=\"title\">bgm管理</span>\n\t\t\t\t\t\t<span class=\"arrow\"></span>\n                    </a>\n                    <ul class=\"sub-menu\">\n\t\t\t\t\t\t<li class=\"nav-item \">\n                            <a id=\"bgmListMenu\" href=\"<%=request.getContextPath() %>/video/showBgmList.action\" class=\"ajaxify nav-link \" id=\"bgmListMenu\">\n                                <span class=\"title\">bgm列表</span>\n                            </a>\n                        </li>\n                        <li class=\"nav-item \">\n                            <a href=\"<%=request.getContextPath() %>/video/showAddBgm.action\" class=\"ajaxify nav-link \">\n                                <span class=\"title\">添加bgm</span>\n                            </a>\n                        </li>\n                    </ul>\n               \t</li>\n               \t\n               \t<!-- 举报管理 start -->\n\t\t\t\t<li class=\"nav-item \">\n                    <a href=\"javascript:;\" class=\"nav-link nav-toggle\">\n                        <i class=\"icon-notebook\"></i>\n                        <span class=\"title\">举报管理</span>\n\t\t\t\t\t\t<span class=\"arrow\"></span>\n                    </a>\n                    <ul class=\"sub-menu\">\n\t\t\t\t\t\t<li class=\"nav-item \">\n                            <a href=\"<%=request.getContextPath() %>/video/showReportList.action\" class=\"ajaxify nav-link \">\n                                <span class=\"title\">举报列表</span>\n                            </a>\n                        </li>\n                    </ul>\n               \t</li>\n               \t\n            </ul>\n            <!-- END SIDEBAR MENU -->\n        </div>\n        <!-- END SIDEBAR -->\n    </div>\n    <!-- END SIDEBAR -->"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/first.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n        \n<style>\n\n.desc {\n\tline-height:18px;\n\ttext-indent:2em;\n}\n\n</style>\n        \n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <a href=\"index.html\">首页</a>\n\t        </li>\n\t    </ul>\n\t</div>\n\t\n\t<h1 class=\"page-title\"> KK短视频后台管理系统 </h1>\n                        \n\t<div class=\"clearfix\"></div>\n        \n\n\t</div>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/login.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"spring\" uri=\"http://www.springframework.org/tags\"%>  \n<!DOCTYPE html>\n<html>\n<head>\n\t<meta charset=\"utf-8\" />\n    <title>短视频后台管理系统</title>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n    <meta content=\"leechenxiang\" name=\"author\" />\n    \n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/font-awesome/css/font-awesome.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/simple-line-icons/simple-line-icons.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap/css/bootstrap.css\" rel=\"stylesheet\" type=\"text/css\" />\n\t<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-switch/css/bootstrap-switch.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END GLOBAL MANDATORY STYLES -->\n    <!-- BEGIN PAGE LEVEL PLUGINS -->\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2-bootstrap.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-sweetalert/sweetalert.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END PAGE LEVEL PLUGINS -->\n    <!-- BEGIN THEME GLOBAL STYLES -->\n    <link href=\"<%=request.getContextPath() %>/static/global/css/components.min.css\" rel=\"stylesheet\" id=\"style_components\" type=\"text/css\" />\n\t<link href=\"<%=request.getContextPath() %>/static/global/css/plugins.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END THEME GLOBAL STYLES -->\n    <!-- BEGIN PAGE LEVEL STYLES -->\n    <link href=\"<%=request.getContextPath() %>/static/pages/css/login-2.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END PAGE LEVEL STYLES -->\n\n\t<link rel=\"shortcut icon\" href=\"<%=request.getContextPath()%>/portal/image/itzixi_favicon.ico\" type=\"image/x-icon\">\n        \n\t<style type=\"text/css\">\n\t\t.help-block {\n\t\t\tdisplay: block;\n\t\t  \tmargin-top: 5px;\n\t\t  \tmargin-bottom: 10px;\n\t\t  \tcolor: red; \n\t\t}\n\t</style>\n\t\n</head>\n<body class=\"login\">\n        <!-- BEGIN LOGO -->\n        <div class=\"logo\">\n            <a href=\"<%=request.getContextPath()%>/\">\n                <img src=\"<%=request.getContextPath()%>/static/pages/img/logos/logo.png\" /> \n            </a>\n        </div>\n        <!-- END LOGO -->\n        <!-- BEGIN LOGIN -->\n        <div class=\"content\">\n            <!-- BEGIN LOGIN FORM -->\n            <form class=\"login-form\">\n\n                <div class=\"form-group\">\n                    <!--ie8, ie9 does not support html5 placeholder, so we just show field title for that-->\n                    <label class=\"control-label visible-ie8 visible-ie9\">用户名</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control form-control-solid placeholder-no-fix\" type=\"text\" autocomplete=\"off\" placeholder=\"用户名\" name=\"username\" /> </div>\n                    </div>\n                <div class=\"form-group\">\n                    <label class=\"control-label visible-ie8 visible-ie9\">密码</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control form-control-solid placeholder-no-fix\" type=\"password\" autocomplete=\"off\" placeholder=\"密码\" name=\"password\" /> </div>\n                    </div>\n                \n                \n                <div class=\"form-actions\" style=\"padding: 0 30px 15px;\">\n                    <button type=\"submit\" class=\"btn red btn-block uppercase\">登 录</button>\n                </div>\n                <div class=\"create-account\">\n                    <p>\n                        <a href=\"javascript:;\" class=\"btn-primary btn\" id=\"register-btn\">注 册 用 户</a>\n                    </p>\n                </div>\n            </form>\n            <!-- END LOGIN FORM -->\n\n            <!-- BEGIN REGISTRATION FORM -->\n            <form class=\"register-form\">\n                <div class=\"form-group\">\n                    <label class=\"control-label visible-ie8 visible-ie9\">用户名</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control placeholder-no-fix\" type=\"text\" placeholder=\"用户名\" name=\"username\" />\n                    </div> \n                </div>\n                <div class=\"form-group\">\n                    <label class=\"control-label visible-ie8 visible-ie9\">密码</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control placeholder-no-fix\" type=\"text\" placeholder=\"密码\" name=\"password\" />\n                    </div> \n                </div>\n                <div class=\"form-actions\">\n                    <button type=\"button\" id=\"register-back-btn\" class=\"btn btn-default\">返 回</button>\n                </div>\n            </form>\n            <!-- END REGISTRATION FORM -->\n        </div>\n        \n        <input type=\"hidden\" id=\"hdnContextPath\" name=\"hdnContextPath\" value=\"<%=request.getContextPath() %>\"/>\n        \n<!--[if lt IE 9]>\n<script src=\"../assets/global/plugins/respond.min.js?v=3.1415926\"></script>\n<script src=\"../assets/global/plugins/excanvas.min.js?v=3.1415926\"></script> \n<script src=\"../assets/global/plugins/ie8.fix.min.js?v=3.1415926\"></script> \n<![endif]-->\n        \n        <!-- 公用尾部JS start -->\n\t    <jsp:include page=\"common/commonFooterJS.jsp\"></jsp:include>\n\t    <!-- 公用尾部JS end -->\n    \n        <script src=\"<%=request.getContextPath() %>/static/pages/js/login.js?v=1.1\" type=\"text/javascript\"></script>\n        \n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/users/usersList.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n\n<script src=\"<%=request.getContextPath() %>/static/pages/js/usersList.js\" type=\"text/javascript\"></script>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>用户信息</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>用户列表</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n        \n    <!-- 用户信息列表 jqgrid start -->                \n\t<div class=\"row\">\n\t\n\t\t<!-- 搜索内容 -->\n\t\t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t\t<form id=\"searchUserListForm\" class=\"form-inline\" method=\"post\" role=\"form\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"sr-only\" for=\"username\">用户名:</label>\n\t\t\t\t\t\t<input id=\"username\" name=\"username\" type=\"text\" class=\"form-control\" placeholder=\"用户名\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"sr-only\" for=\"nickname\">昵称:</label>\n\t\t\t\t\t\t<input id=\"nickname\" name=\"nickname\" type=\"text\" class=\"form-control\" placeholder=\"昵称\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<button id=\"searchUserListButton\" class=\"btn yellow-casablanca\" type=\"button\">搜    索</button>\n\t\t\t\t</form>\n\t\t\t</div>\n\t\n\t\n    \t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t\n\t\t\t<div class=\"usersList_wrapper\">  \n\t\t\t    <table id=\"usersList\"></table>  \n\t\t\t    <div id=\"usersListPager\"></div>  \n\t\t\t</div>  \n\t\t\t\n\t\t</div>\n\t</div>\n\t<!-- 用户信息列表 jqgrid end -->\n\t\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/addBgm.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>bgm管理</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>添加背景音乐</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n                        \n\t<div class=\"row\">\n    \t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t<!-- 意见反馈 start -->\n\t\t\t<div class=\"tabbable-line boxless tabbable-reversed\">\n            \t<div class=\"portlet box green-jungle\">\n                \t<div class=\"portlet-title\">\n                    \t<div class=\"caption\">\n                    \t\t<i class=\"icon-plus\"></i>添加背景音乐\n                    \t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"portlet-body form\">\n\t\t\t\t\t\n\t                    <!-- BEGIN FORM-->\n\t                    <form id=\"addBgmForm\" class=\"form-horizontal\">\n\t\t                    <div class=\"form-body\">\n\t\t                    \n\t\t                    \t<div class=\"form-group\">\n\t\t                        \t<label class=\"col-md-3 control-label\"><span class=\"field-required\"> * </span>歌手：</label>\n\t\t                            <div class=\"col-md-4\">\n\t\t                            \t<div id=\"input-error\">\n\t\t                            \t\t<input id=\"author\" name=\"author\" type=\"text\" class=\"form-control\" placeholder=\"1-4字\">\n\t\t                            \t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t                        \t<label class=\"col-md-3 control-label\"><span class=\"field-required\"> * </span>歌曲：</label>\n\t\t                            <div class=\"col-md-4\">\n\t\t                            \t<div id=\"input-error\">\n\t\t                            \t\t<input id=\"name\" name=\"name\" type=\"text\" class=\"form-control\" placeholder=\"1-50字\">\n\t\t                            \t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t                        \t<label class=\"col-md-3 control-label\"><span class=\"field-required\"> * </span>音乐片段</label>\n\t\t                            <div class=\"col-md-4\">\n\t\t                            \t<div id=\"input-error\">\n\t                            \t\t\t<input type=\"hidden\" id=\"path\" name=\"path\" class=\"form-control\"/>\n\n\t\t\t\t\t\t\t\t\t\t\t<input id=\"file\" type=\"file\" name=\"file\" data-url=\"<%=request.getContextPath() %>/video/bgmUpload.action\" accept=\".mp3\"/>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<div id=\"bgmContent\"></div>\n\t                            \t\t</div>\n\t                            \t\t\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t                                                  \n\t\t\t\t\t\t\t</div>\n\t                                                        \n\t\t\t\t\t\t\t<div class=\"form-actions\">\n\t\t\t                    <div class=\"row\">\n\t\t\t                        <div class=\"col-md-offset-3 col-md-9\">\n\t\t\t                            <button type=\"submit\" class=\"btn green-jungle\">提 交</button>\n\t\t\t                            <button type=\"reset\" class=\"btn grey-salsa btn-outline\">取  消</button>\n\t\t\t                        </div>\n\t\t\t                    </div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t\t<!-- END FORM-->\n\t\t\t\t\t\t\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n                            \n\t\t</div>\n\t</div>\n\t\n<script type=\"text/javascript\">\n    \n    $(\"#file\").fileupload({\n    \tpasteZone: \"#bgmContent\",\n    \tdataType: \"json\",\n    \tdone: function(e, data) {\n    \t\tconsole.log(data);\n    \t\t\n    \t\tif (data.result.status != '200') {\n    \t\t\talert(\"上传失败...\");\n    \t\t} else {\n    \t\t\tvar bgmServer = $(\"#bgmServer\").val();\n    \t\t\tvar url = bgmServer + data.result.data;\n    \t\t\t$(\"#bgmContent\").html(\"<a href='\" + url + \"' target='_blank'>点我播放</a>\");\n    \t\t\t$(\"#path\").attr(\"value\", data.result.data);\n    \t\t}\n    \t\t\n    \t}\n    });\n    \n    var submitBgm = function() {\n    \t$('#addBgmForm').ajaxSubmit({\n    \t\turl: $('#hdnContextPath').val() + '/video/addBgm.action',\n    \t\ttype: 'POST',\n    \t\tsuccess: function(data) {\n    \t\t\t\n    \t\t\tif (data.status == 200 && data.msg == 'OK') {\n    \t\t\t\talert('BGM添加成功...')\n    \t\t\t} else {\n    \t\t\t\talert('BGM添加失败...')\n    \t\t\t}\n    \t\t\t\n    \t\t\t$(\"#bgmListMenu\").click();\n    \t\t}\n    \t});\n    }\n    \n    $('#addBgmForm').validate({\n    \terrorElement: 'span', //default input error message container\n        errorClass: 'help-block', // default input error message class\n        focusInvalid: false, // do not focus the last invalid input\n        ignore: \"\", // validate all fields including form hidden input\n        rules: {\n        \tauthor: {\n                required: true,\n                rangelength: [1,8]\n            },\n            name: {\n                required: true,\n                rangelength: [1,50]\n            },\n            path: {\n                required: true\n            }\n        },\n        messages: {\n        \tauthor: {\n                required: \"歌手不能为空.\",\n                rangelength: \"歌手长度请控制在1-8位.\"\n            },\n            name: {\n                required: \"歌曲不能为空.\",\n                rangelength: \"歌曲长度请控制在1-50位.\"\n            },\n            path: {\n                required: \"路径不能为空.\"\n            }\n        },\n        invalidHandler: function(event, validator) { //display error alert on form submit   \n            $('.alert-danger', $('#addBgmForm')).show();\n        },\n\n        highlight: function(element) { // hightlight error inputs\n            $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n        },\n        success: function(label) {\n            label.closest('.form-group').removeClass('has-error');\n            label.remove();\n        },\n        errorPlacement: function(error, element) {\n            error.insertAfter(element.closest('#input-error'));\n        },\n        submitHandler: function(form) {\n        \t// FIXME\n        \tsubmitBgm();\n        }\n    });\n    \n    \n</script>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/bgmList.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n\n<script src=\"<%=request.getContextPath() %>/static/pages/js/bgmList.js?v=1.0.0.2\" \n\ttype=\"text/javascript\"></script>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>bgm管理</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>背景音乐列表展示</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n                        \n\t<div class=\"row\">\n    \t<div class=\"col-md-12\">\n                   \n\t\t\t<div class=\"bgmList_wrapper\">\n                <table id=\"bgmList\"></table> \n    \t\t\t<div id=\"bgmListPager\"></div>\n             </div>\n             \n\t\t</div>\n\t</div>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/center/video/reportList.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n\n<script src=\"<%=request.getContextPath() %>/static/pages/js/reportList.js?v=1.1\" type=\"text/javascript\"></script>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>举报信息</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>举报列表</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n        \n    <!-- 列表 jqgrid start -->                \n\t<div class=\"row\">\n\t\n    \t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t\n\t\t\t<div class=\"usersReportsList_wrapper\">  \n\t\t\t    <table id=\"usersReportsList\"></table>  \n\t\t\t    <div id=\"usersReportsListPager\"></div>  \n\t\t\t</div>  \n\t\t\t\n\t\t</div>\n\t</div>\n\t<!-- 列表 jqgrid end -->\n\t\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/WEB-INF/web.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<web-app xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns=\"http://java.sun.com/xml/ns/javaee\" xmlns:web=\"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"\n\txsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"\n\tversion=\"2.5\">\n\n\t<display-name>kkvideo-admin-web</display-name>\n\n\t<welcome-file-list>\n\t\t<welcome-file>index.html</welcome-file>\n\t\t<welcome-file>index.htm</welcome-file>\n\t\t<welcome-file>index.jsp</welcome-file>\n\t\t<welcome-file>default.html</welcome-file>\n\t\t<welcome-file>default.htm</welcome-file>\n\t\t<welcome-file>default.jsp</welcome-file>\n\t</welcome-file-list>\n\n\t<!-- 加载log4j -->\n\t<context-param>\n\t    <param-name>log4jConfigLocation</param-name>\n\t    <param-value>classpath:log4j.properties</param-value>\n\t</context-param>\n\t<listener>\n\t    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>\n\t</listener>\n\n\t<!-- 加载spring容器 -->\n\t<context-param>\n\t\t<param-name>contextConfigLocation</param-name>\n\t\t<param-value>classpath:spring/applicationContext-*.xml</param-value>\n\t</context-param>\n\t<listener>\n\t\t<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>\n\t</listener>\n\t\n\t<!-- 解决post乱码 -->\n\t<filter>\n\t\t<filter-name>CharacterEncodingFilter</filter-name>\n\t\t<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>\n\t\t<init-param>\n\t\t\t<param-name>encoding</param-name>\n\t\t\t<param-value>utf-8</param-value>\n\t\t</init-param>\n\t</filter>\n\t<filter-mapping>\n\t\t<filter-name>CharacterEncodingFilter</filter-name>\n\t\t<url-pattern>/*</url-pattern>\n\t</filter-mapping>\n\t\n\t<!-- springmvc的前端控制器 -->\n\t<servlet>\n\t\t<servlet-name>kkvideo-admin-web</servlet-name>\n\t\t<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>\n\t\t<!-- contextConfigLocation不是必须的， 如果不配置contextConfigLocation， springmvc的配置文件默认在：WEB-INF/servlet的name+\"-servlet.xml\" -->\n\t\t<init-param>\n\t\t\t<param-name>contextConfigLocation</param-name>\n\t\t\t<param-value>classpath:spring/springmvc.xml</param-value>\n\t\t</init-param>\n\t\t<load-on-startup>1</load-on-startup>\n\t</servlet>\n\t\n\t<servlet-mapping>\n\t\t<servlet-name>kkvideo-admin-web</servlet-name>\n\t\t<url-pattern>*.action</url-pattern>\n\t</servlet-mapping>\n    \n</web-app>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/index.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<jsp:forward page=\"${base}/center.action\"></jsp:forward>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/css/inbox.css",
    "content": "/* Cubic Bezier Transition */\n/***\nInbox Page\n***/\n.inbox {\n  margin-bottom: 20px; }\n  .inbox .compose-btn {\n    padding: 8px 14px; }\n  .inbox .inbox-content {\n    min-height: 400px; }\n  .inbox .inbox-nav {\n    margin: 30px 0;\n    padding: 0;\n    list-style: none; }\n    .inbox .inbox-nav > li {\n      padding: 0;\n      margin: 0; }\n      .inbox .inbox-nav > li > a {\n        text-decoration: none !important;\n        display: block;\n        padding: 8px 16px;\n        border-left: 4px solid transparent; }\n        .inbox .inbox-nav > li > a:hover {\n          background: #f1f4f7; }\n        .inbox .inbox-nav > li > a .badge {\n          float: right;\n          margin-top: 1px; }\n      .inbox .inbox-nav > li.active > a {\n        border-left: 4px solid #ed6b75; }\n      .inbox .inbox-nav > li.divider {\n        padding: 0;\n        margin: 4px 16px;\n        border-top: 1px solid #eef1f5; }\n  .inbox .inbox-contacts {\n    margin: 0 0 30px 0;\n    padding: 0;\n    list-style: none; }\n    .inbox .inbox-contacts > li {\n      padding: 0;\n      margin: 0; }\n      .inbox .inbox-contacts > li.divider {\n        padding: 0;\n        margin: 4px 16px;\n        border-top: 1px solid #eef1f5; }\n      .inbox .inbox-contacts > li > a {\n        position: relative;\n        display: block;\n        padding: 8px 16px;\n        color: #3f444a; }\n        .inbox .inbox-contacts > li > a:hover {\n          background: #f1f4f7;\n          text-decoration: none; }\n        .inbox .inbox-contacts > li > a .contact-name {\n          display: inline-block;\n          padding-left: 5px; }\n        .inbox .inbox-contacts > li > a .contact-pic {\n          width: 30px;\n          height: 30px;\n          border-radius: 50% !important; }\n        .inbox .inbox-contacts > li > a .contact-status {\n          position: absolute;\n          width: 10px;\n          height: 10px;\n          border-radius: 50% !important;\n          left: 38px;\n          top: 30px; }\n  .inbox .input-actions .btn {\n    margin-left: 10px; }\n  .inbox .inbox-view-info {\n    color: #666;\n    padding: 5px 0;\n    border-top: solid 1px #eee;\n    border-bottom: solid 1px #eee; }\n    .inbox .inbox-view-info .inbox-author {\n      border-radius: 50% !important;\n      margin-right: 10px; }\n    .inbox .inbox-view-info .inbox-info-btn .btn-group {\n      float: right;\n      margin-top: 5px; }\n  .inbox .inbox-sidebar {\n    padding: 20px;\n    border: 1px solid #e7ecf1;\n    border-radius: 4px; }\n  .inbox .inbox-body {\n    padding: 20px;\n    border: 1px solid #e7ecf1;\n    border-radius: 4px; }\n  .page-container-bg-solid .inbox .inbox-sidebar {\n    background: #ffffff;\n    border: 0; }\n  .page-container-bg-solid .inbox .inbox-body {\n    background: #ffffff;\n    border: 0; }\n\n.inbox .inbox {\n  margin-bottom: 0px; }\n\n.inbox .tab-content {\n  overflow: inherit; }\n\n.inbox .inbox-loading {\n  display: none;\n  font-size: 22px;\n  font-weight: 300; }\n\n/*Inbox Content*/\n.inbox .inbox-header {\n  overflow: hidden; }\n\n.inbox .inbox-header h1 {\n  margin: 0;\n  color: #666;\n  margin-bottom: 20px; }\n\n.inbox .pagination-control {\n  text-align: right; }\n\n.inbox .pagination-control .pagination-info {\n  display: inline-block;\n  padding-right: 10px;\n  font-size: 14px;\n  line-height: 14px; }\n\n.inbox tr {\n  color: #777;\n  font-size: 13px; }\n\n.inbox tr label {\n  display: inline-block; }\n\n.inbox tr.unread td {\n  font-weight: 600; }\n\n.inbox td i.icon-paper-clip {\n  top: 2px;\n  color: #d8e0e5;\n  font-size: 17px;\n  position: relative; }\n\n.inbox tr i.icon-star,\n.inbox tr i.icon-trash {\n  cursor: pointer; }\n\n.inbox tr i.icon-star {\n  color: #eceef0; }\n\n.inbox tr i.icon-star:hover {\n  color: #fd7b12; }\n\n.inbox tr i.inbox-started {\n  color: #fd7b12; }\n\n.inbox .table th,\n.inbox .table td {\n  border: none; }\n\n.inbox .table th {\n  background: #eef4f7;\n  border-bottom: solid 5px #fff; }\n\n.inbox th.text-right {\n  text-align: right; }\n\n.inbox th label.inbox-select-all {\n  color: #828f97;\n  font-size: 13px;\n  padding: 1px 4px 0; }\n\n.inbox td.text-right {\n  width: 100px;\n  text-align: right; }\n\n.inbox td.inbox-small-cells {\n  width: 10px; }\n\n.inbox .table-hover tbody tr:hover > td,\n.inbox .table-hover tbody tr:hover > th,\n.inbox .table-striped tbody > tr:nth-child(odd) > td,\n.inbox .table-striped tbody > tr:nth-child(odd) > th {\n  background: #f8fbfd;\n  cursor: pointer; }\n\n.inbox .table-hover tbody tr:hover > td,\n.inbox .table-hover tbody tr:hover > th {\n  background: #eef4f7; }\n\n/*Inbox Drafts*/\n.inbox .inbox-drafts {\n  padding: 8px 0;\n  text-align: center;\n  border-top: solid 1px #eee;\n  border-bottom: solid 1px #eee; }\n\n/*Inbox View*/\n.inbox-view-header {\n  margin-bottom: 20px; }\n\n.inbox-view-header h1 {\n  color: #666;\n  font-size: 22px;\n  line-height: 24px;\n  margin-bottom: 0 !important; }\n\n.inbox-view-header h1 a {\n  top: -2px;\n  color: #fff;\n  cursor: pointer;\n  font-size: 13px;\n  padding: 2px 7px;\n  line-height: 16px;\n  position: relative;\n  background: #b0bcc4;\n  display: inline-block; }\n\n.inbox-view-header h1 a:hover {\n  background: #aab5bc;\n  text-decoration: none; }\n\n.inbox-view-header i.icon-print {\n  color: #94a4ab;\n  cursor: pointer;\n  font-size: 14px;\n  display: inline-block;\n  padding: 6px 8px !important;\n  background: #edf1f4 !important; }\n\n.inbox-view-header i.icon-print:hover {\n  background: #e7ebef !important; }\n\n.inbox-view-info strong {\n  color: #666;\n  margin: 0 10px 0 5px; }\n\n.inbox-view {\n  color: #666;\n  padding: 10px 0 0; }\n\n.inbox-view a {\n  color: #169ce9; }\n\n.inbox-attached {\n  line-height: 16px; }\n\n.inbox-attached a {\n  margin: 0 2px; }\n\n.inbox-attached img {\n  height: auto;\n  max-width: 250px;\n  margin-bottom: 5px; }\n\n.inbox-attached span {\n  margin-right: 3px; }\n\n.inbox-attached strong {\n  color: #555;\n  display: block;\n  font-size: 13px; }\n\n.inbox-attached .margin-bottom-25 {\n  margin-bottom: 25px; }\n\n.inbox-attached .margin-bottom-15 {\n  margin-bottom: 15px; }\n\n/*Inbox Compose*/\n.inbox-compose {\n  margin-top: 1px;\n  border: solid 1px #eee; }\n\n.inbox-compose-btn {\n  padding: 12px 12px;\n  background: #f0f6fa; }\n\n.inbox-compose-attachment {\n  padding: 8px 8px; }\n\n.inbox-compose-attachment .btn {\n  padding: 4px 10px; }\n\n.inbox-compose .inbox-form-group {\n  margin-bottom: 0;\n  position: relative;\n  border-bottom: solid 1px #eee; }\n\n.inbox-compose .controls {\n  margin-left: 85px; }\n\n.inbox-compose .inbox-form-group > label {\n  width: 80px;\n  float: left;\n  color: #979797;\n  text-align: right; }\n\n.inbox-compose .controls > input {\n  border: none !important; }\n\n.inbox-compose .controls-to {\n  padding-right: 55px; }\n\n.inbox-compose .controls-cc {\n  padding-right: 20px; }\n\n.inbox-compose .controls-bcc {\n  padding-right: 20px; }\n\n.inbox-compose .inbox-form-group a.close {\n  top: 13px;\n  right: 10px;\n  position: absolute; }\n\n.inbox-compose .mail-to .inbox-cc-bcc {\n  display: inline-block;\n  top: 7px;\n  right: 10px;\n  color: #979797;\n  font-size: 14px;\n  cursor: pointer;\n  position: absolute; }\n\n.inbox-compose .mail-to .inbox-bcc {\n  margin-left: 5px; }\n\n.inbox-compose .mail-to inbox-cc:hover,\n.inbox-compose .mail-to inbox-bcc:hover {\n  color: #777; }\n\n.inbox-compose .wysihtml5 {\n  padding: 0px !important;\n  margin: 0px !important;\n  border: 0 !important; }\n\n.inbox-compose .wysihtml5-sandbox {\n  padding: 0px !important;\n  margin: 0px !important;\n  display: block !important;\n  border: 0 !important;\n  margin-top: 5px;\n  width: 100% !important;\n  border-left: none;\n  border-right: none;\n  border-color: #eee; }\n\n.inbox-compose .wysihtml5-toolbar {\n  border: 0;\n  border-bottom: 1px solid #eee; }\n\n.inbox-compose .wysihtml5-toolbar > li {\n  height: 34px;\n  margin-right: 0;\n  margin-bottom: 0; }\n\n.inbox-compose .wysihtml5-toolbar > li > a,\n.inbox-compose .wysihtml5-toolbar > li > div > a {\n  background: #fff !important;\n  border-color: #fff !important; }\n  .inbox-compose .wysihtml5-toolbar > li > a:hover,\n  .inbox-compose .wysihtml5-toolbar > li > div > a:hover {\n    background: #f1f1f1 !important;\n    border-color: #f1f1f1 !important;\n    border-radius: 0; }\n\n.inbox-compose .wysihtml5-toolbar .dropdown.open .dropdown-toggle,\nul.wysihtml5-toolbar a.btn.wysihtml5-command-active {\n  background: #eee !important; }\n\n@media (max-width: 480px) {\n  .inbox-compose .inbox-form-group > label {\n    margin-top: 7px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/css/ticket.css",
    "content": "/***\nTicket Page\n***/\n/* Cubic Bezier Transition */\n.app-ticket {\n  overflow: hidden; }\n  .app-ticket h3 {\n    margin: 0 0 15px 0;\n    font-size: 14px;\n    font-weight: bold; }\n  .app-ticket h3 i {\n    color: #a1acb7;\n    margin-right: 5px; }\n  .app-ticket p {\n    margin: 0; }\n\n.app-ticket-details .portlet-body .row {\n  margin-bottom: 30px; }\n\n.app-ticket-details .ticket-line {\n  width: 100%;\n  height: 1px;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  margin-bottom: 30px; }\n\n.app-ticket-details .ticket-id,\n.app-ticket-details .ticket-title {\n  display: inline-block;\n  font-size: 16px;\n  margin-right: 30px; }\n\n.app-ticket-details .ticket-cust a:hover {\n  text-decoration: none; }\n\n.app-ticket-details .ticket-reply-msg {\n  width: 100%;\n  height: 7em;\n  border-color: #e7ecf1;\n  outline: none; }\n\n.app-ticket-details .ticket-assign,\n.app-ticket-details .ticket-status {\n  padding: 5px;\n  border: 1px solid;\n  border-color: #e7ecf1;\n  outline: none; }\n\n.app-ticket-config .ticket-counter {\n  text-align: center; }\n  .app-ticket-config .ticket-counter > h4 {\n    font-size: 24px; }\n\n@media (max-width: 991px) {\n  .app-ticket-details .ticket-margin {\n    margin-top: 30px; } }\n\n@media (max-width: 480px) {\n  .app-ticket-config .ticket-counter {\n    margin-bottom: 30px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/css/todo-2.css",
    "content": "/***\nTODO Page\n***/\n/* Cubic Bezier Transition */\n.todo-sidebar {\n  float: left;\n  width: 230px;\n  margin-right: 20px; }\n\n.todo-content {\n  overflow: hidden; }\n\n.todo-tasklist-item-border-green {\n  border-left: #3faba4 2px solid; }\n\n.todo-tasklist-item-border-blue {\n  border-left: #4c87b9 2px solid; }\n\n.todo-tasklist-item-border-purple {\n  border-left: #8877a9 2px solid; }\n\n.todo-tasklist-item-border-red {\n  border-left: #d05454 2px solid; }\n\n.todo-tasklist-item-border-yellow {\n  border-left: #d4ad38 2px solid; }\n\n.padding-top-10px {\n  padding-top: 15px; }\n\n.todo-userpic {\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important;\n  border: 1px #cedae1 solid; }\n\n.todo-text-color {\n  color: #45535b; }\n\n/* PROJECT LIST */\n.todo-projects-config {\n  padding: 6px 9px 3px 9px !important; }\n  .todo-projects-config > i {\n    font-size: 14px !important; }\n\n.todo-tasklist {\n  padding: 0; }\n\n.todo-project-list ul li a {\n  font-size: 14px !important;\n  padding: 8px 10px; }\n\n.todo-project-list .nav li a .badge {\n  float: right;\n  margin-top: 1px !important; }\n\n.todo-project-list .nav > li.active > a {\n  color: #3f444a;\n  background-color: #f1f4f7 !important; }\n\n/* END PROJECT LIST */\n/* TASK HISTORY */\n.todo-task-history {\n  padding: 0;\n  margin: 0; }\n  .todo-task-history > li {\n    padding: 5px 0; }\n    .todo-task-history > li > .todo-task-history-desc {\n      overflow: hidden; }\n    .todo-task-history > li > .todo-task-history-date {\n      font-size: 12px;\n      float: right;\n      width: 150px;\n      margin-left: 10px;\n      text-align: right;\n      color: #999; }\n\n/* TASKS LIST */\n.todo-tasklist-item {\n  background: #f6fbfc;\n  padding: 10px;\n  margin-bottom: 10px;\n  margin-bottom: 15px;\n  overflow: hidden; }\n  .todo-tasklist-item:last-child {\n    margin-bottom: 0; }\n\ndiv .todo-tasklist-item:hover {\n  cursor: pointer;\n  background-color: #edf7f9; }\n\n.todo-tasklist-item img {\n  margin: 0 10px 10px 0; }\n\n.todo-tasklist-item-title {\n  font-size: 15px;\n  color: #2b4a5c;\n  font-weight: 600;\n  padding-top: 3px;\n  padding-bottom: 13px; }\n\n.todo-tasklist-item-text {\n  font-size: 13px;\n  color: #577688;\n  padding-bottom: 5px; }\n\n.todo-tasklist-item ul {\n  margin: 5px 0 0 0px; }\n\n.todo-tasklist-item li {\n  color: #577688;\n  font-size: 13px;\n  margin-right: 10px;\n  margin-bottom: 5px;\n  padding: 0 !important; }\n\n.todo-tasklist-item li i {\n  color: #b3bfcb;\n  font-size: 15px; }\n\n.todo-tasklist-controls {\n  margin-top: 5px; }\n\n.todo-tasklist-date {\n  color: #637b89 !important;\n  margin-right: 12px; }\n\n.todo-tasklist-date i {\n  color: #abbfca !important;\n  margin-right: 5px; }\n\n/* END TASKS LIST */\n/* TASK BODY */\n.todo-taskbody-tasktitle {\n  font-size: 18px;\n  color: #778d96; }\n\n.todo-taskbody-taskdesc {\n  font-size: 14px;\n  color: #778d96; }\n\n.todo-username {\n  font-size: 16px;\n  color: #2b4a5c;\n  font-weight: 600;\n  padding: 15px 0 0 15px; }\n\n.todo-comment-head {\n  padding-top: 3px; }\n\n.todo-comment {\n  position: relative; }\n\n.todo-comment:hover > .todo-comment-btn {\n  display: block; }\n\n.todo-comment-btn {\n  display: none;\n  position: absolute;\n  top: 1px;\n  right: 0px;\n  font-size: 12px;\n  color: #566e7c;\n  border-color: #a2aeb5; }\n\n.todo-comment-btn:hover {\n  color: #fff;\n  background-color: #a1b6c2;\n  border-color: #a1b6c2; }\n\n.todo-comment-username {\n  font-size: 14px;\n  color: #2b4a5c;\n  font-weight: 600; }\n\n.todo-comment-date {\n  font-size: 12px;\n  color: #2b4a5c;\n  font-weight: 400; }\n\n.todo-username-btn {\n  margin: 14px 0 0 15px;\n  color: #566e7c;\n  border-color: #a2aeb5; }\n\n.todo-username-btn:hover {\n  color: #fff;\n  background-color: #a1b6c2;\n  border-color: #a1b6c2; }\n\n.form .form-actions.todo-form-actions {\n  padding-top: 10px;\n  border: 0;\n  margin: 0 0 20px 0; }\n\n/* END TASK BODY */\n/* RESPONSIVE MODE */\n@media (max-width: 991px) {\n  /* 991px */\n  .todo-sidebar {\n    float: none;\n    width: 100%;\n    margin: 0; }\n    .todo-sidebar > .portlet {\n      margin-bottom: 20px; }\n      .todo-sidebar > .portlet .portlet-title .tools {\n        margin-left: 5px; }\n  .todo-content {\n    overflow: visible; } }\n\n.todo-tasklist-devider {\n  display: none; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .todo-tasklist-devider {\n    display: block;\n    height: 20px;\n    margin: 20px -10px;\n    background: #F1F3FA; }\n  /* TASK HISTORY */\n  .todo-task-history > li {\n    padding: 9px 0; }\n    .todo-task-history > li > .todo-task-history-date {\n      width: 100px;\n      font-size: 11px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/css/todo.css",
    "content": "@charset \"UTF-8\";\n/***\nNEW TODO Page\n***/\n/* Cubic Bezier Transition */\n.todo-main-header {\n  margin-top: -20px; }\n  .todo-main-header > h3 {\n    font-weight: 400;\n    font-size: 22px;\n    margin-right: 1em;\n    display: inline-block;\n    color: #3b464f; }\n  .todo-main-header > .todo-breadcrumb {\n    border-left: 1px solid;\n    border-color: #dae3eb;\n    padding: 0.5em 2em;\n    display: inline-block;\n    margin-top: 17px; }\n    .todo-main-header > .todo-breadcrumb > li {\n      display: inline-block;\n      font-size: 11px; }\n      .todo-main-header > .todo-breadcrumb > li > a {\n        color: #77838d;\n        text-transform: uppercase;\n        text-decoration: none; }\n        .todo-main-header > .todo-breadcrumb > li > a:hover {\n          color: #337ab7;\n          text-decoration: none; }\n      .todo-main-header > .todo-breadcrumb > li > .todo-active {\n        color: #49a7fa; }\n      .todo-main-header > .todo-breadcrumb > li:before {\n        content: \"•\";\n        color: #b6c1cb;\n        margin: 0 1em; }\n      .todo-main-header > .todo-breadcrumb > li:first-child:before {\n        content: \"\";\n        margin: 0; }\n\n.todo-container .todo-projects-container,\n.todo-container .todo-tasks-container {\n  background-color: #fff;\n  border: 1px solid;\n  border-color: #ebf0f5; }\n\n.todo-container .todo-projects-container {\n  padding: 0; }\n  .todo-container .todo-projects-container > li {\n    list-style: none;\n    padding: 30px 20px; }\n\n.todo-container .todo-projects-divider {\n  height: 1px;\n  margin: 0;\n  background-color: #ebf0f5; }\n\n.todo-container .todo-tasks-container {\n  padding: 30px 20px; }\n\n.todo-container .todo-head {\n  border-bottom: 1px solid;\n  border-color: #ebf0f5;\n  padding-bottom: 20px; }\n  .todo-container .todo-head > h3 {\n    margin-top: 0;\n    display: inline-block;\n    color: #4db3a4;\n    font-weight: 600;\n    text-transform: uppercase;\n    font-size: 15px; }\n  .todo-container .todo-head > p {\n    display: inline-block;\n    color: #9eacb4;\n    font-size: 12px;\n    margin-left: 2em;\n    margin-bottom: 0;\n    margin-top: 0; }\n  .todo-container .todo-head > button {\n    float: right;\n    font-weight: 600;\n    font-size: 11px;\n    text-transform: uppercase; }\n\n.todo-container .todo-projects-content,\n.todo-container .todo-tasks-content {\n  padding-left: 0; }\n\n.todo-container .todo-projects-item,\n.todo-container .todo-tasks-item {\n  list-style: none;\n  margin-left: 0; }\n\n.todo-container .todo-projects-item > h3 {\n  font-size: 20px;\n  color: #4e5a64;\n  font-weight: 600;\n  margin-top: 0;\n  margin-bottom: 15px; }\n\n.todo-container .todo-projects-item p {\n  color: #a0a9b4;\n  margin-bottom: 15px;\n  margin-top: 0; }\n\n.todo-container .todo-projects-item:last-child {\n  border-bottom: none; }\n\n.todo-container .todo-projects-item.todo-active {\n  background-color: #fafbfc;\n  position: relative; }\n  .todo-container .todo-projects-item.todo-active > h3 {\n    color: #49a7fa; }\n  .todo-container .todo-projects-item.todo-active:after {\n    content: \" \";\n    width: 0;\n    height: 0;\n    border-top: 40px solid transparent;\n    border-bottom: 40px solid transparent;\n    border-left: 20px solid #fafbfc;\n    position: absolute;\n    right: -20px;\n    top: 65px; }\n\n.todo-container .todo-projects-item:hover {\n  background-color: #fafbfc;\n  cursor: pointer; }\n\n.todo-container .todo-projects-item > .todo-project-item-foot {\n  font-size: 12px; }\n\n.todo-container .todo-tasks-item {\n  padding: 30px 0;\n  border-bottom: 1px solid;\n  border-color: #ebf0f5; }\n  .todo-container .todo-tasks-item > h4 {\n    font-size: 16px;\n    font-weight: 600;\n    margin: 0;\n    line-height: 1.3em; }\n    .todo-container .todo-tasks-item > h4 > a {\n      color: #65717b; }\n      .todo-container .todo-tasks-item > h4 > a:hover {\n        color: #49a7fa;\n        text-decoration: none; }\n      .todo-container .todo-tasks-item > h4 > a:focus {\n        color: #65717b;\n        text-decoration: none; }\n  .todo-container .todo-tasks-item > p {\n    margin: 0;\n    color: #9eacb4; }\n  .todo-container .todo-tasks-item:last-child {\n    border-bottom: none; }\n\n.todo-add-button {\n  border: 1px solid;\n  border-color: #e0e6e9;\n  background-color: #fff;\n  color: #c1cbd1;\n  text-decoration: none;\n  padding: 0 0.4em;\n  font-size: 20px;\n  margin: -0.3em 0 0 0.5em;\n  float: right; }\n  .todo-add-button:hover {\n    background-color: #4db3a4;\n    color: #fff;\n    text-decoration: none; }\n  .todo-add-button:focus {\n    color: #c1cbd1;\n    text-decoration: none; }\n\n#todo-members-modal > .modal-dialog {\n  top: 20px; }\n\n#todo-members-modal .select-height {\n  height: 10em; }\n\n#todo-task-modal > .modal-dialog {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  width: 60%;\n  margin: 0 auto; }\n  #todo-task-modal > .modal-dialog .modal-content {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    left: 0;\n    overflow: auto; }\n    #todo-task-modal > .modal-dialog .modal-content .todo-task-modal-title {\n      font-weight: 600;\n      text-transform: uppercase;\n      margin-left: 2em; }\n    #todo-task-modal > .modal-dialog .modal-content .todo-task-due {\n      margin-left: 1em;\n      font-weight: 600;\n      color: #4db3a4;\n      width: 150px !important; }\n    #todo-task-modal > .modal-dialog .modal-content .todo-task-assign {\n      margin-left: 1em;\n      border: 1px solid;\n      border-color: #ccc;\n      padding: 6px 10px;\n      font-weight: 600;\n      color: #4db3a4;\n      text-transform: uppercase; }\n      #todo-task-modal > .modal-dialog .modal-content .todo-task-assign:hover, #todo-task-modal > .modal-dialog .modal-content .todo-task-assign:focus {\n        text-decoration: none; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-modal-bg {\n      background-color: #f7f9fa;\n      padding: 20px; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > h3 {\n      margin: 15px 0;\n      font-size: 20px;\n      color: #4e5a64;\n      font-weight: 600; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > p {\n      font-size: 15px;\n      color: #8f9ea6;\n      line-height: 24px; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > h4 {\n      font-size: 14px;\n      font-weight: 600;\n      text-transform: uppercase;\n      color: #9eacb4;\n      margin-top: 25px; }\n      #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > h4 > .todo-add-button {\n        float: none; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file {\n      color: #49a7fa;\n      font-size: 13px; }\n      #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file > i {\n        margin-right: 0.5em; }\n      #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file > .todo-remove-file {\n        color: #9eacb4;\n        margin-left: 0.5em; }\n        #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file > .todo-remove-file:hover {\n          color: #4db3a4;\n          cursor: pointer; }\n\n.todo-inline {\n  display: inline-block; }\n\n.todo-float-r {\n  float: right; }\n\n.todo-bold {\n  font-weight: 600;\n  font-size: 11px;\n  text-transform: uppercase; }\n\n.todo-padding-b-0 {\n  padding-bottom: 0 !important; }\n\n.todo-grey {\n  color: #9eacb4; }\n\n.todo-red {\n  color: #d39790 !important; }\n\n.todo-green {\n  color: #4db3a4; }\n\n/* RESPONSIVE MODE */\n@media (max-width: 1199px) {\n  .todo-head > p {\n    display: block;\n    margin-left: 0 !important; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  #todo-task-modal > .modal-dialog {\n    width: 95%; }\n  .todo-active:after {\n    border: none !important; } }\n\n@media (max-width: 480px) {\n  .todo-task-modal-title {\n    margin-left: 0 !important;\n    margin-top: 1em;\n    display: block !important; }\n  .todo-tasks-container .todo-head > p {\n    margin-left: 0 !important;\n    margin-top: 1em; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/scripts/calendar.js",
    "content": "var AppCalendar = function() {\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            this.initCalendar();\n        },\n\n        initCalendar: function() {\n\n            if (!jQuery().fullCalendar) {\n                return;\n            }\n\n            var date = new Date();\n            var d = date.getDate();\n            var m = date.getMonth();\n            var y = date.getFullYear();\n\n            var h = {};\n\n            if (App.isRTL()) {\n                if ($('#calendar').parents(\".portlet\").width() <= 720) {\n                    $('#calendar').addClass(\"mobile\");\n                    h = {\n                        right: 'title, prev, next',\n                        center: '',\n                        left: 'agendaDay, agendaWeek, month, today'\n                    };\n                } else {\n                    $('#calendar').removeClass(\"mobile\");\n                    h = {\n                        right: 'title',\n                        center: '',\n                        left: 'agendaDay, agendaWeek, month, today, prev,next'\n                    };\n                }\n            } else {\n                if ($('#calendar').parents(\".portlet\").width() <= 720) {\n                    $('#calendar').addClass(\"mobile\");\n                    h = {\n                        left: 'title, prev, next',\n                        center: '',\n                        right: 'today,month,agendaWeek,agendaDay'\n                    };\n                } else {\n                    $('#calendar').removeClass(\"mobile\");\n                    h = {\n                        left: 'title',\n                        center: '',\n                        right: 'prev,next,today,month,agendaWeek,agendaDay'\n                    };\n                }\n            }\n\n            var initDrag = function(el) {\n                // create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)\n                // it doesn't need to have a start or end\n                var eventObject = {\n                    title: $.trim(el.text()) // use the element's text as the event title\n                };\n                // store the Event Object in the DOM element so we can get to it later\n                el.data('eventObject', eventObject);\n                // make the event draggable using jQuery UI\n                el.draggable({\n                    zIndex: 999,\n                    revert: true, // will cause the event to go back to its\n                    revertDuration: 0 //  original position after the drag\n                });\n            };\n\n            var addEvent = function(title) {\n                title = title.length === 0 ? \"Untitled Event\" : title;\n                var html = $('<div class=\"external-event label label-default\">' + title + '</div>');\n                jQuery('#event_box').append(html);\n                initDrag(html);\n            };\n\n            $('#external-events div.external-event').each(function() {\n                initDrag($(this));\n            });\n\n            $('#event_add').unbind('click').click(function() {\n                var title = $('#event_title').val();\n                addEvent(title);\n            });\n\n            //predefined events\n            $('#event_box').html(\"\");\n            addEvent(\"My Event 1\");\n            addEvent(\"My Event 2\");\n            addEvent(\"My Event 3\");\n            addEvent(\"My Event 4\");\n            addEvent(\"My Event 5\");\n            addEvent(\"My Event 6\");\n\n            $('#calendar').fullCalendar('destroy'); // destroy the calendar\n            $('#calendar').fullCalendar({ //re-initialize the calendar\n                header: h,\n                defaultView: 'month', // change default view with available options from http://arshaw.com/fullcalendar/docs/views/Available_Views/ \n                slotMinutes: 15,\n                editable: true,\n                droppable: true, // this allows things to be dropped onto the calendar !!!\n                drop: function(date, allDay) { // this function is called when something is dropped\n\n                    // retrieve the dropped element's stored Event Object\n                    var originalEventObject = $(this).data('eventObject');\n                    // we need to copy it, so that multiple events don't have a reference to the same object\n                    var copiedEventObject = $.extend({}, originalEventObject);\n\n                    // assign it the date that was reported\n                    copiedEventObject.start = date;\n                    copiedEventObject.allDay = allDay;\n                    copiedEventObject.className = $(this).attr(\"data-class\");\n\n                    // render the event on the calendar\n                    // the last `true` argument determines if the event \"sticks\" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)\n                    $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);\n\n                    // is the \"remove after drop\" checkbox checked?\n                    if ($('#drop-remove').is(':checked')) {\n                        // if so, remove the element from the \"Draggable Events\" list\n                        $(this).remove();\n                    }\n                },\n                events: [{\n                    title: 'All Day Event',\n                    start: new Date(y, m, 1),\n                    backgroundColor: App.getBrandColor('yellow')\n                }, {\n                    title: 'Long Event',\n                    start: new Date(y, m, d - 5),\n                    end: new Date(y, m, d - 2),\n                    backgroundColor: App.getBrandColor('green')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d - 3, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('red')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d + 4, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('green')\n                }, {\n                    title: 'Meeting',\n                    start: new Date(y, m, d, 10, 30),\n                    allDay: false,\n                }, {\n                    title: 'Lunch',\n                    start: new Date(y, m, d, 12, 0),\n                    end: new Date(y, m, d, 14, 0),\n                    backgroundColor: App.getBrandColor('grey'),\n                    allDay: false,\n                }, {\n                    title: 'Birthday Party',\n                    start: new Date(y, m, d + 1, 19, 0),\n                    end: new Date(y, m, d + 1, 22, 30),\n                    backgroundColor: App.getBrandColor('purple'),\n                    allDay: false,\n                }, {\n                    title: 'Click for Google',\n                    start: new Date(y, m, 28),\n                    end: new Date(y, m, 29),\n                    backgroundColor: App.getBrandColor('yellow'),\n                    url: 'http://google.com/',\n                }]\n            });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   AppCalendar.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/scripts/inbox.js",
    "content": "var AppInbox = function () {\n\n    var content = $('.inbox-content');\n    var listListing = '';\n\n    var loadInbox = function (el, name) {\n        var url = 'app_inbox_inbox.html';\n        var title = el.attr('data-title');\n        listListing = name;\n\n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                App.unblockUI('.inbox-content');\n\n                $('.inbox-nav > li.active').removeClass('active');\n                el.closest('li').addClass('active');\n                $('.inbox-header > h1').text(title);\n\n                content.html(res);\n\n                if (Layout.fixContentHeight) {\n                    Layout.fixContentHeight();\n                }\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n\n        // handle group checkbox:\n        jQuery('body').on('change', '.mail-group-checkbox', function () {\n            var set = jQuery('.mail-checkbox');\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                $(this).attr(\"checked\", checked);\n            });\n        });\n    }\n\n    var loadMessage = function (el, name, resetMenu) {\n        var url = 'app_inbox_view.html';\n\n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        var message_id = el.parent('tr').attr(\"data-messageid\");  \n        \n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            data: {'message_id': message_id},\n            success: function(res) \n            {\n                App.unblockUI(content);\n\n                toggleButton(el);\n\n                if (resetMenu) {\n                    $('.inbox-nav > li.active').removeClass('active');\n                }\n                $('.inbox-header > h1').text('View Message');\n\n                content.html(res);\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var initWysihtml5 = function () {\n        $('.inbox-wysihtml5').wysihtml5({\n            \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n        });\n    }\n\n    var initFileupload = function () {\n\n        $('#fileupload').fileupload({\n            // Uncomment the following to send cross-domain cookies:\n            //xhrFields: {withCredentials: true},\n            url: '../assets/global/plugins/jquery-file-upload/server/php/',\n            autoUpload: true\n        });\n\n        // Upload server status check for browsers with CORS support:\n        if ($.support.cors) {\n            $.ajax({\n                url: '../assets/global/plugins/jquery-file-upload/server/php/',\n                type: 'HEAD'\n            }).fail(function () {\n                $('<span class=\"alert alert-error\"/>')\n                    .text('Upload server currently unavailable - ' +\n                    new Date())\n                    .appendTo('#fileupload');\n            });\n        }\n    }\n\n    var loadCompose = function (el) {\n        var url = 'app_inbox_compose.html';\n\n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                App.unblockUI(content);\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Compose');\n\n                content.html(res);\n\n                initFileupload();\n                initWysihtml5();\n\n                $('.inbox-wysihtml5').focus();\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var loadReply = function (el) {\n        var messageid = $(el).attr(\"data-messageid\");\n        var url = 'app_inbox_reply.html';\n        \n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                App.unblockUI(content);\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Reply');\n\n                content.html(res);\n                $('[name=\"message\"]').val($('#reply_email_content_body').html());\n\n                handleCCInput(); // init \"CC\" input field\n\n                initFileupload();\n                initWysihtml5();\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var handleCCInput = function () {\n        var the = $('.inbox-compose .mail-to .inbox-cc');\n        var input = $('.inbox-compose .input-cc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var handleBCCInput = function () {\n\n        var the = $('.inbox-compose .mail-to .inbox-bcc');\n        var input = $('.inbox-compose .input-bcc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var toggleButton = function(el) {\n        if (typeof el == 'undefined') {\n            return;\n        }\n        if (el.attr(\"disabled\")) {\n            el.attr(\"disabled\", false);\n        } else {\n            el.attr(\"disabled\", true);\n        }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            // handle compose btn click\n            $('.inbox').on('click', '.compose-btn', function () {\n                loadCompose($(this));\n            });\n\n            // handle discard btn\n            $('.inbox').on('click', '.inbox-discard-btn', function(e) {\n                e.preventDefault();\n                loadInbox($(this), listListing);\n            });\n\n            // handle reply and forward button click\n            $('.inbox').on('click', '.reply-btn', function () {\n                loadReply($(this));\n            });\n\n            // handle view message\n            $('.inbox').on('click', '.view-message', function () {\n                loadMessage($(this));\n            });\n\n            // handle inbox listing\n            $('.inbox-nav > li > a').click(function () {\n                loadInbox($(this), 'inbox');\n            });\n\n            //handle compose/reply cc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-cc', function () {\n                handleCCInput();\n            });\n\n            //handle compose/reply bcc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-bcc', function () {\n                handleBCCInput();\n            });\n\n            //handle loading content based on URL parameter\n            if (App.getURLParameter(\"a\") === \"view\") {\n                loadMessage();\n            } else if (App.getURLParameter(\"a\") === \"compose\") {\n                loadCompose();\n            } else {\n               $('.inbox-nav > li:first > a').click();\n            }\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppInbox.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/scripts/todo-2.js",
    "content": "/**\nTodo 2 Module\n**/\nvar AppTodo2 = function () {\n\n    // private functions & variables\n\n    var _initComponents = function() {\n        \n        // init datepicker\n        $('.todo-taskbody-due').datepicker({\n            rtl: App.isRTL(),\n            orientation: \"left\",\n            autoclose: true\n        });\n\n        // init tags        \n        $(\".todo-taskbody-tags\").select2({\n            placeholder: 'Status'\n        });\n    }\n\n    var _handleProjectListMenu = function() {\n        if (App.getViewPort().width <= 992) {\n            $('.todo-project-list-content').addClass(\"collapse\");\n        } else {\n            $('.todo-project-list-content').removeClass(\"collapse\").css(\"height\", \"auto\");\n        }\n    }\n\n    // public functions\n    return {\n\n        //main function\n        init: function () {\n            _initComponents();     \n            _handleProjectListMenu();\n\n            App.addResizeHandler(function(){\n                _handleProjectListMenu();    \n            });       \n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {\n        AppTodo2.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/apps/scripts/todo.js",
    "content": "/**\nTodo Module\n**/\nvar AppTodo = function () {\n\n    // private functions & variables\n\n    var _initComponents = function() {\n        \n        // init datepicker\n        $('.todo-taskbody-due').datepicker({\n            rtl: App.isRTL(),\n            orientation: \"left\",\n            autoclose: true\n        });\n\n        // init tags        \n        $(\".todo-taskbody-tags\").select2({\n            tags: [\"Testing\", \"Important\", \"Info\", \"Pending\", \"Completed\", \"Requested\", \"Approved\"]\n        });\n    }\n\n    var _handleProjectListMenu = function() {\n        if (App.getViewPort().width <= 992) {\n            $('.todo-project-list-content').addClass(\"collapse\");\n        } else {\n            $('.todo-project-list-content').removeClass(\"collapse\").css(\"height\", \"auto\");\n        }\n    }\n\n    // public functions\n    return {\n\n        //main function\n        init: function () {\n            _initComponents();     \n            _handleProjectListMenu();\n\n            App.addResizeHandler(function(){\n                _handleProjectListMenu();    \n            });       \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTodo.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/citys/css/main.css",
    "content": "body{\n\tbackground: #494A5F;\n\tcolor: #D5D6E2;\n\tfont-weight: 500;\n\tfont-size: 1.05em;\n\tfont-family: \"Microsoft YaHei\",\"宋体\",\"Segoe UI\", \"Lucida Grande\", Helvetica, Arial,sans-serif, FreeSans, Arimo;\n}\na{color: #2fa0ec;outline: none;text-decoration: none;}\na:hover,a:focus{color:#74777b;text-decoration: none;}\n\n.htmleaf-container{\n\tmargin: 0 auto;\n}\n\n/* Basic */\n\nbody {\n  margin: 0;\n  overflow-x: hidden;\n}\n\n.browserupgrade {\n  margin: 0;\n  padding: .5em 1em;\n  background-color: #fcfcfc;\n  text-align: center;\n}\n\n\n/* Header */\n\n.docs-header {\n  margin-bottom: 0;\n}\n\n.navbar-toggle:hover,\n.navbar-toggle:focus {\n  border-color: #0074d9;\n}\n\n.navbar-toggle .icon-bar {\n  background-color: #0074d9;\n}\n\n\n/* Jumbotron */\n\n.docs-jumbotron {\n  background-color: #0074d9;\n  color: #fff;\n}\n\n.docs-jumbotron .version {\n  font-size: 14px;\n  color: #fff;\n  filter: alpha(opacity=50);\n  opacity: 0.5;\n}\n\n@media (min-width: 992px) {\n  .docs-jumbotron h1,\n  .docs-jumbotron p {\n    margin-right: 380px;\n  }\n}\n\n.docs-carbonads-container {\n  position: relative;\n}\n\n.docs-carbonads {\n  max-width: 350px;\n  padding: 15px;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  overflow: hidden;\n}\n\n.carbon-wrap {\n  overflow: hidden;\n}\n\n.carbon-img {\n  clear: left;\n  float: left;\n  display: block;\n}\n\n.carbon-text,\n.carbon-poweredby {\n  display: block;\n  margin-left: 140px;\n}\n\n.carbon-text,\n.carbon-text:hover,\n.carbon-text:focus {\n  color: #fff;\n  text-decoration: none;\n}\n\n.carbon-poweredby,\n.carbon-poweredby:hover,\n.carbon-poweredby:focus {\n  color: #ddd;\n  text-decoration: none;\n}\n\n@media (min-width: 992px) {\n  .docs-carbonads {\n    position: absolute;\n    right: 0;\n    bottom: 5px;\n  }\n}\n\n\n/* Content */\n\n\n/* Footer */\n\n.docs-footer {\n  overflow: hidden;\n}\n\n.links {\n  text-align: center;\n  margin-bottom: 30px;\n}\n\n.heart {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 30px;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  color: #ddd;\n  font-size: 18px;\n  line-height: 30px;\n  text-align: center;\n}\n\n.heart:hover {\n  color: #ff4136;\n}\n\n.heart:before {\n  position: absolute;\n  top: 50%;\n  right: 0;\n  left: 0;\n  display: block;\n  height: 0;\n  border-top: 1px solid #eee;\n  content: \" \";\n}\n\n.heart:after {\n  position: relative;\n  z-index: 1;\n  padding-left: 8px;\n  padding-right: 8px;\n  background-color: #fff;\n  content: \"♥\";\n}\n\n\n/* Google Code Prettify */\n\n.prettyprint {\n  margin-bottom: 0;\n  padding: 15px !important;\n  border: 1px solid #ddd !important;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/citys/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n<head>\n<meta charset=\"UTF-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"> \n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Bootstrap省市区三级联动菜单 - 源码之家</title>\n\n<link href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css\" rel=\"stylesheet\">\n<link href=\"css/main.css\" rel=\"stylesheet\">\n\n</head>\n<body>\n\t<div class=\"container\">\n\t\t<h3>Basic</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province1\">Province</label>\n\t  <select class=\"form-control\" id=\"province1\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city1\">City</label>\n\t  <select class=\"form-control\" id=\"city1\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district1\">District</label>\n\t  <select class=\"form-control\" id=\"district1\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom placeholders</h3>\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select data-province=&quot;---- 选择省 ----&quot;&gt;&lt;/select&gt;\n&lt;select data-city=&quot;---- 选择市 ----&quot;&gt;&lt;/select&gt;\n&lt;select data-district=&quot;---- 选择区 ----&quot;&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province2\">Province</label>\n\t  <select class=\"form-control\" id=\"province2\" data-province=\"---- 选择省 ----\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city2\">City</label>\n\t  <select class=\"form-control\" id=\"city2\" data-city=\"---- 选择市 ----\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district2\">District</label>\n\t  <select class=\"form-control\" id=\"district2\" data-district=\"---- 选择区 ----\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom districts</h3>\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select data-province=&quot;浙江省&quot;&gt;&lt;/select&gt;\n&lt;select data-city=&quot;杭州市&quot;&gt;&lt;/select&gt;\n&lt;select data-district=&quot;西湖区&quot;&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province3\">Province</label>\n\t  <select class=\"form-control\" id=\"province3\" data-province=\"浙江省\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city3\">City</label>\n\t  <select class=\"form-control\" id=\"city3\" data-city=\"杭州市\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district3\">District</label>\n\t  <select class=\"form-control\" id=\"district3\" data-district=\"西湖区\"></select>\n\t</div>\n  </div>\n</form>\n<br>\n<p class=\"alert alert-warning\"><i class=\"glyphicon glyphicon-exclamation-sign\"></i> The districts must be existed in the <strong class=\"text-primary\">distpicker.data.js</strong> file!</p>\n\n<h2 class=\"page-header\">Initialize with <code>$.fn.distpicker</code> method</h2>\n\n<h3>Basic</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div id=\"distpicker1\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker1&quot;).distpicker();</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker1\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province4\">Province</label>\n\t  <select class=\"form-control\" id=\"province4\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city4\">City</label>\n\t  <select class=\"form-control\" id=\"city4\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district4\">District</label>\n\t  <select class=\"form-control\" id=\"district4\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom placeholders</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div id=\"distpicker2\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker2&quot;).distpicker({\nprovince: &quot;---- 所在省 ----&quot;,\ncity: &quot;---- 所在市 ----&quot;,\ndistrict: &quot;---- 所在区 ----&quot;\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker2\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province5\">Province</label>\n\t  <select class=\"form-control\" id=\"province5\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city5\">City</label>\n\t  <select class=\"form-control\" id=\"city5\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district5\">District</label>\n\t  <select class=\"form-control\" id=\"district5\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom districts</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div id=\"distpicker3\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker3&quot;).distpicker({\nprovince: &quot;浙江省&quot;,\ncity: &quot;杭州市&quot;,\ndistrict: &quot;西湖区&quot;\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker3\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province6\">Province</label>\n\t  <select class=\"form-control\" id=\"province6\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city6\">City</label>\n\t  <select class=\"form-control\" id=\"city6\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district6\">District</label>\n\t  <select class=\"form-control\" id=\"district6\"></select>\n\t</div>\n  </div>\n</form>\n<br>\n<p class=\"alert alert-warning\"><i class=\"glyphicon glyphicon-exclamation-sign\"></i> The districts must be existed in the <strong class=\"text-primary\">distpicker.data.js</strong> file!</p>\n\n<h2 class=\"page-header\">Methods</h2>\n<div class=\"docs-methods\">\n  <form class=\"form-inline\">\n\t<div id=\"distpicker\">\n\t  <div class=\"form-group\">\n\t\t<label class=\"sr-only\" for=\"province\">Province</label>\n\t\t<select class=\"form-control\" id=\"province\"></select>\n\t  </div>\n\t  <div class=\"form-group\">\n\t\t<label class=\"sr-only\" for=\"city\">City</label>\n\t\t<select class=\"form-control\" id=\"city\"></select>\n\t  </div>\n\t  <div class=\"form-group\">\n\t\t<label class=\"sr-only\" for=\"district\">District</label>\n\t\t<select class=\"form-control\" id=\"district\"></select>\n\t  </div>\n\t  <div class=\"form-group\">\n\t\t<button class=\"btn btn-primary\" id=\"reset\" type=\"button\">Reset</button>\n\t\t<button class=\"btn btn-warning\" id=\"reset-deep\" type=\"button\">Reset (deep)</button>\n\t\t<button class=\"btn btn-danger\" id=\"destroy\" type=\"button\">Destroy</button>\n\t  </div>\n\t</div>\n  </form>\n</div>\n\n<h2 class=\"page-header\">More examples</h2>\n\n<h3 class=\"page-header\">Only province and city</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province7\">Province</label>\n\t  <select class=\"form-control\" id=\"province7\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city7\">City</label>\n\t  <select class=\"form-control\" id=\"city7\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3 class=\"page-header\">Only province</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province8\">Province</label>\n\t  <select class=\"form-control\" id=\"province8\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3 class=\"page-header\">Without placeholders</h3>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker4&quot;).distpicker({\nplaceholder: false\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker4\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province9\">Province</label>\n\t  <select class=\"form-control\" id=\"province9\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city9\">City</label>\n\t  <select class=\"form-control\" id=\"city9\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district9\">District</label>\n\t  <select class=\"form-control\" id=\"district9\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3 class=\"page-header\">Without automatic selection</h3>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker5&quot;).distpicker({\nautoSelect: false\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker5\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province10\">Province</label>\n\t  <select class=\"form-control\" id=\"province10\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city10\">City</label>\n\t  <select class=\"form-control\" id=\"city10\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district10\">District</label>\n\t  <select class=\"form-control\" id=\"district10\"></select>\n\t</div>\n  </div>\n</form>\n</div>\n\n<script src=\"js/jquery-1.11.0.min.js\" type=\"text/javascript\"></script>\n<script src=\"js/bootstrap.min.js\"></script>\n<script src=\"js/distpicker.data.js\"></script>\n<script src=\"js/distpicker.js\"></script>\n<script src=\"js/main.js\"></script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/citys/js/distpicker.data.js",
    "content": "/*!\n * Distpicker v1.0.4\n * https://github.com/fengyuanchen/distpicker\n *\n * Copyright (c) 2014-2016 Fengyuan Chen\n * Released under the MIT license\n *\n * Date: 2016-06-01T15:05:52.606Z\n */\n\n(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as anonymous module.\n    define('ChineseDistricts', [], factory);\n  } else {\n    // Browser globals.\n    factory();\n  }\n})(function () {\n\n  var ChineseDistricts = {\n    86: {\n      110000: '北京市',\n      120000: '天津市',\n      130000: '河北省',\n      140000: '山西省',\n      150000: '内蒙古自治区',\n      210000: '辽宁省',\n      220000: '吉林省',\n      230000: '黑龙江省',\n      310000: '上海市',\n      320000: '江苏省',\n      330000: '浙江省',\n      340000: '安徽省',\n      350000: '福建省',\n      360000: '江西省',\n      370000: '山东省',\n      410000: '河南省',\n      420000: '湖北省',\n      430000: '湖南省',\n      440000: '广东省',\n      450000: '广西壮族自治区',\n      460000: '海南省',\n      500000: '重庆市',\n      510000: '四川省',\n      520000: '贵州省',\n      530000: '云南省',\n      540000: '西藏自治区',\n      610000: '陕西省',\n      620000: '甘肃省',\n      630000: '青海省',\n      640000: '宁夏回族自治区',\n      650000: '新疆维吾尔自治区',\n      710000: '台湾省',\n      810000: '香港特别行政区',\n      820000: '澳门特别行政区'\n    },\n    110000: {\n      110100: '北京市市辖区'\n    },\n    110100: {\n      110101: '东城区',\n      110102: '西城区',\n      110105: '朝阳区',\n      110106: '丰台区',\n      110107: '石景山区',\n      110108: '海淀区',\n      110109: '门头沟区',\n      110111: '房山区',\n      110112: '通州区',\n      110113: '顺义区',\n      110114: '昌平区',\n      110115: '大兴区',\n      110116: '怀柔区',\n      110117: '平谷区',\n      110118: '密云区',\n      110119: '延庆区'\n    },\n    120000: {\n      120100: '天津市市辖区',\n      120200: '天津市郊县'\n    },\n    120100: {\n      120101: '和平区',\n      120102: '河东区',\n      120103: '河西区',\n      120104: '南开区',\n      120105: '河北区',\n      120106: '红桥区',\n      120110: '东丽区',\n      120111: '西青区',\n      120112: '津南区',\n      120113: '北辰区',\n      120114: '武清区',\n      120115: '宝坻区',\n      120116: '滨海新区',\n      120117: '宁河区',\n      120118: '静海区',\n      120225: '蓟县'\n    },\n    130000: {\n      130100: '石家庄市',\n      130200: '唐山市',\n      130300: '秦皇岛市',\n      130400: '邯郸市',\n      130500: '邢台市',\n      130600: '保定市',\n      130700: '张家口市',\n      130800: '承德市',\n      130900: '沧州市',\n      131000: '廊坊市',\n      131100: '衡水市'\n    },\n    130100: {\n      130102: '长安区',\n      130104: '桥西区',\n      130105: '新华区',\n      130107: '井陉矿区',\n      130108: '裕华区',\n      130109: '藁城区',\n      130110: '鹿泉区',\n      130111: '栾城区',\n      130121: '井陉县',\n      130123: '正定县',\n      130125: '行唐县',\n      130126: '灵寿县',\n      130127: '高邑县',\n      130128: '深泽县',\n      130129: '赞皇县',\n      130130: '无极县',\n      130131: '平山县',\n      130132: '元氏县',\n      130133: '赵县',\n      130181: '辛集市',\n      130183: '晋州市',\n      130184: '新乐市'\n    },\n    130200: {\n      130202: '路南区',\n      130203: '路北区',\n      130204: '古冶区',\n      130205: '开平区',\n      130207: '丰南区',\n      130208: '丰润区',\n      130209: '曹妃甸区',\n      130223: '滦县',\n      130224: '滦南县',\n      130225: '乐亭县',\n      130227: '迁西县',\n      130229: '玉田县',\n      130281: '遵化市',\n      130283: '迁安市'\n    },\n    130300: {\n      130302: '海港区',\n      130303: '山海关区',\n      130304: '北戴河区',\n      130306: '抚宁区',\n      130321: '青龙满族自治县',\n      130322: '昌黎县',\n      130324: '卢龙县'\n    },\n    130400: {\n      130402: '邯山区',\n      130403: '丛台区',\n      130404: '复兴区',\n      130406: '峰峰矿区',\n      130421: '邯郸县',\n      130423: '临漳县',\n      130424: '成安县',\n      130425: '大名县',\n      130426: '涉县',\n      130427: '磁县',\n      130428: '肥乡县',\n      130429: '永年县',\n      130430: '邱县',\n      130431: '鸡泽县',\n      130432: '广平县',\n      130433: '馆陶县',\n      130434: '魏县',\n      130435: '曲周县',\n      130481: '武安市'\n    },\n    130500: {\n      130502: '桥东区',\n      130503: '桥西区',\n      130521: '邢台县',\n      130522: '临城县',\n      130523: '内丘县',\n      130524: '柏乡县',\n      130525: '隆尧县',\n      130526: '任县',\n      130527: '南和县',\n      130528: '宁晋县',\n      130529: '巨鹿县',\n      130530: '新河县',\n      130531: '广宗县',\n      130532: '平乡县',\n      130533: '威县',\n      130534: '清河县',\n      130535: '临西县',\n      130581: '南宫市',\n      130582: '沙河市'\n    },\n    130600: {\n      130602: '竞秀区',\n      130606: '莲池区',\n      130607: '满城区',\n      130608: '清苑区',\n      130609: '徐水区',\n      130623: '涞水县',\n      130624: '阜平县',\n      130626: '定兴县',\n      130627: '唐县',\n      130628: '高阳县',\n      130629: '容城县',\n      130630: '涞源县',\n      130631: '望都县',\n      130632: '安新县',\n      130633: '易县',\n      130634: '曲阳县',\n      130635: '蠡县',\n      130636: '顺平县',\n      130637: '博野县',\n      130638: '雄县',\n      130681: '涿州市',\n      130682: '定州市',\n      130683: '安国市',\n      130684: '高碑店市'\n    },\n    130700: {\n      130702: '桥东区',\n      130703: '桥西区',\n      130705: '宣化区',\n      130706: '下花园区',\n      130721: '宣化县',\n      130722: '张北县',\n      130723: '康保县',\n      130724: '沽源县',\n      130725: '尚义县',\n      130726: '蔚县',\n      130727: '阳原县',\n      130728: '怀安县',\n      130729: '万全县',\n      130730: '怀来县',\n      130731: '涿鹿县',\n      130732: '赤城县',\n      130733: '崇礼县'\n    },\n    130800: {\n      130802: '双桥区',\n      130803: '双滦区',\n      130804: '鹰手营子矿区',\n      130821: '承德县',\n      130822: '兴隆县',\n      130823: '平泉县',\n      130824: '滦平县',\n      130825: '隆化县',\n      130826: '丰宁满族自治县',\n      130827: '宽城满族自治县',\n      130828: '围场满族蒙古族自治县'\n    },\n    130900: {\n      130902: '新华区',\n      130903: '运河区',\n      130921: '沧县',\n      130922: '青县',\n      130923: '东光县',\n      130924: '海兴县',\n      130925: '盐山县',\n      130926: '肃宁县',\n      130927: '南皮县',\n      130928: '吴桥县',\n      130929: '献县',\n      130930: '孟村回族自治县',\n      130981: '泊头市',\n      130982: '任丘市',\n      130983: '黄骅市',\n      130984: '河间市'\n    },\n    131000: {\n      131002: '安次区',\n      131003: '广阳区',\n      131022: '固安县',\n      131023: '永清县',\n      131024: '香河县',\n      131025: '大城县',\n      131026: '文安县',\n      131028: '大厂回族自治县',\n      131081: '霸州市',\n      131082: '三河市'\n    },\n    131100: {\n      131102: '桃城区',\n      131121: '枣强县',\n      131122: '武邑县',\n      131123: '武强县',\n      131124: '饶阳县',\n      131125: '安平县',\n      131126: '故城县',\n      131127: '景县',\n      131128: '阜城县',\n      131181: '冀州市',\n      131182: '深州市'\n    },\n    140000: {\n      140100: '太原市',\n      140200: '大同市',\n      140300: '阳泉市',\n      140400: '长治市',\n      140500: '晋城市',\n      140600: '朔州市',\n      140700: '晋中市',\n      140800: '运城市',\n      140900: '忻州市',\n      141000: '临汾市',\n      141100: '吕梁市'\n    },\n    140100: {\n      140105: '小店区',\n      140106: '迎泽区',\n      140107: '杏花岭区',\n      140108: '尖草坪区',\n      140109: '万柏林区',\n      140110: '晋源区',\n      140121: '清徐县',\n      140122: '阳曲县',\n      140123: '娄烦县',\n      140181: '古交市'\n    },\n    140200: {\n      140202: '城区',\n      140203: '矿区',\n      140211: '南郊区',\n      140212: '新荣区',\n      140221: '阳高县',\n      140222: '天镇县',\n      140223: '广灵县',\n      140224: '灵丘县',\n      140225: '浑源县',\n      140226: '左云县',\n      140227: '大同县'\n    },\n    140300: {\n      140302: '城区',\n      140303: '矿区',\n      140311: '郊区',\n      140321: '平定县',\n      140322: '盂县'\n    },\n    140400: {\n      140402: '城区',\n      140411: '郊区',\n      140421: '长治县',\n      140423: '襄垣县',\n      140424: '屯留县',\n      140425: '平顺县',\n      140426: '黎城县',\n      140427: '壶关县',\n      140428: '长子县',\n      140429: '武乡县',\n      140430: '沁县',\n      140431: '沁源县',\n      140481: '潞城市'\n    },\n    140500: {\n      140502: '城区',\n      140521: '沁水县',\n      140522: '阳城县',\n      140524: '陵川县',\n      140525: '泽州县',\n      140581: '高平市'\n    },\n    140600: {\n      140602: '朔城区',\n      140603: '平鲁区',\n      140621: '山阴县',\n      140622: '应县',\n      140623: '右玉县',\n      140624: '怀仁县'\n    },\n    140700: {\n      140702: '榆次区',\n      140721: '榆社县',\n      140722: '左权县',\n      140723: '和顺县',\n      140724: '昔阳县',\n      140725: '寿阳县',\n      140726: '太谷县',\n      140727: '祁县',\n      140728: '平遥县',\n      140729: '灵石县',\n      140781: '介休市'\n    },\n    140800: {\n      140802: '盐湖区',\n      140821: '临猗县',\n      140822: '万荣县',\n      140823: '闻喜县',\n      140824: '稷山县',\n      140825: '新绛县',\n      140826: '绛县',\n      140827: '垣曲县',\n      140828: '夏县',\n      140829: '平陆县',\n      140830: '芮城县',\n      140881: '永济市',\n      140882: '河津市'\n    },\n    140900: {\n      140902: '忻府区',\n      140921: '定襄县',\n      140922: '五台县',\n      140923: '代县',\n      140924: '繁峙县',\n      140925: '宁武县',\n      140926: '静乐县',\n      140927: '神池县',\n      140928: '五寨县',\n      140929: '岢岚县',\n      140930: '河曲县',\n      140931: '保德县',\n      140932: '偏关县',\n      140981: '原平市'\n    },\n    141000: {\n      141002: '尧都区',\n      141021: '曲沃县',\n      141022: '翼城县',\n      141023: '襄汾县',\n      141024: '洪洞县',\n      141025: '古县',\n      141026: '安泽县',\n      141027: '浮山县',\n      141028: '吉县',\n      141029: '乡宁县',\n      141030: '大宁县',\n      141031: '隰县',\n      141032: '永和县',\n      141033: '蒲县',\n      141034: '汾西县',\n      141081: '侯马市',\n      141082: '霍州市'\n    },\n    141100: {\n      141102: '离石区',\n      141121: '文水县',\n      141122: '交城县',\n      141123: '兴县',\n      141124: '临县',\n      141125: '柳林县',\n      141126: '石楼县',\n      141127: '岚县',\n      141128: '方山县',\n      141129: '中阳县',\n      141130: '交口县',\n      141181: '孝义市',\n      141182: '汾阳市'\n    },\n    150000: {\n      150100: '呼和浩特市',\n      150200: '包头市',\n      150300: '乌海市',\n      150400: '赤峰市',\n      150500: '通辽市',\n      150600: '鄂尔多斯市',\n      150700: '呼伦贝尔市',\n      150800: '巴彦淖尔市',\n      150900: '乌兰察布市',\n      152200: '兴安盟',\n      152500: '锡林郭勒盟',\n      152900: '阿拉善盟'\n    },\n    150100: {\n      150102: '新城区',\n      150103: '回民区',\n      150104: '玉泉区',\n      150105: '赛罕区',\n      150121: '土默特左旗',\n      150122: '托克托县',\n      150123: '和林格尔县',\n      150124: '清水河县',\n      150125: '武川县'\n    },\n    150200: {\n      150202: '东河区',\n      150203: '昆都仑区',\n      150204: '青山区',\n      150205: '石拐区',\n      150206: '白云鄂博矿区',\n      150207: '九原区',\n      150221: '土默特右旗',\n      150222: '固阳县',\n      150223: '达尔罕茂明安联合旗'\n    },\n    150300: {\n      150302: '海勃湾区',\n      150303: '海南区',\n      150304: '乌达区'\n    },\n    150400: {\n      150402: '红山区',\n      150403: '元宝山区',\n      150404: '松山区',\n      150421: '阿鲁科尔沁旗',\n      150422: '巴林左旗',\n      150423: '巴林右旗',\n      150424: '林西县',\n      150425: '克什克腾旗',\n      150426: '翁牛特旗',\n      150428: '喀喇沁旗',\n      150429: '宁城县',\n      150430: '敖汉旗'\n    },\n    150500: {\n      150502: '科尔沁区',\n      150521: '科尔沁左翼中旗',\n      150522: '科尔沁左翼后旗',\n      150523: '开鲁县',\n      150524: '库伦旗',\n      150525: '奈曼旗',\n      150526: '扎鲁特旗',\n      150581: '霍林郭勒市'\n    },\n    150600: {\n      150602: '东胜区',\n      150621: '达拉特旗',\n      150622: '准格尔旗',\n      150623: '鄂托克前旗',\n      150624: '鄂托克旗',\n      150625: '杭锦旗',\n      150626: '乌审旗',\n      150627: '伊金霍洛旗'\n    },\n    150700: {\n      150702: '海拉尔区',\n      150703: '扎赉诺尔区',\n      150721: '阿荣旗',\n      150722: '莫力达瓦达斡尔族自治旗',\n      150723: '鄂伦春自治旗',\n      150724: '鄂温克族自治旗',\n      150725: '陈巴尔虎旗',\n      150726: '新巴尔虎左旗',\n      150727: '新巴尔虎右旗',\n      150781: '满洲里市',\n      150782: '牙克石市',\n      150783: '扎兰屯市',\n      150784: '额尔古纳市',\n      150785: '根河市'\n    },\n    150800: {\n      150802: '临河区',\n      150821: '五原县',\n      150822: '磴口县',\n      150823: '乌拉特前旗',\n      150824: '乌拉特中旗',\n      150825: '乌拉特后旗',\n      150826: '杭锦后旗'\n    },\n    150900: {\n      150902: '集宁区',\n      150921: '卓资县',\n      150922: '化德县',\n      150923: '商都县',\n      150924: '兴和县',\n      150925: '凉城县',\n      150926: '察哈尔右翼前旗',\n      150927: '察哈尔右翼中旗',\n      150928: '察哈尔右翼后旗',\n      150929: '四子王旗',\n      150981: '丰镇市'\n    },\n    152200: {\n      152201: '乌兰浩特市',\n      152202: '阿尔山市',\n      152221: '科尔沁右翼前旗',\n      152222: '科尔沁右翼中旗',\n      152223: '扎赉特旗',\n      152224: '突泉县'\n    },\n    152500: {\n      152501: '二连浩特市',\n      152502: '锡林浩特市',\n      152522: '阿巴嘎旗',\n      152523: '苏尼特左旗',\n      152524: '苏尼特右旗',\n      152525: '东乌珠穆沁旗',\n      152526: '西乌珠穆沁旗',\n      152527: '太仆寺旗',\n      152528: '镶黄旗',\n      152529: '正镶白旗',\n      152530: '正蓝旗',\n      152531: '多伦县'\n    },\n    152900: {\n      152921: '阿拉善左旗',\n      152922: '阿拉善右旗',\n      152923: '额济纳旗'\n    },\n    210000: {\n      210100: '沈阳市',\n      210200: '大连市',\n      210300: '鞍山市',\n      210400: '抚顺市',\n      210500: '本溪市',\n      210600: '丹东市',\n      210700: '锦州市',\n      210800: '营口市',\n      210900: '阜新市',\n      211000: '辽阳市',\n      211100: '盘锦市',\n      211200: '铁岭市',\n      211300: '朝阳市',\n      211400: '葫芦岛市'\n    },\n    210100: {\n      210102: '和平区',\n      210103: '沈河区',\n      210104: '大东区',\n      210105: '皇姑区',\n      210106: '铁西区',\n      210111: '苏家屯区',\n      210112: '浑南区',\n      210113: '沈北新区',\n      210114: '于洪区',\n      210122: '辽中县',\n      210123: '康平县',\n      210124: '法库县',\n      210181: '新民市'\n    },\n    210200: {\n      210202: '中山区',\n      210203: '西岗区',\n      210204: '沙河口区',\n      210211: '甘井子区',\n      210212: '旅顺口区',\n      210213: '金州区',\n      210214: '普兰店区',\n      210224: '长海县',\n      210281: '瓦房店市',\n      210283: '庄河市'\n    },\n    210300: {\n      210302: '铁东区',\n      210303: '铁西区',\n      210304: '立山区',\n      210311: '千山区',\n      210321: '台安县',\n      210323: '岫岩满族自治县',\n      210381: '海城市'\n    },\n    210400: {\n      210402: '新抚区',\n      210403: '东洲区',\n      210404: '望花区',\n      210411: '顺城区',\n      210421: '抚顺县',\n      210422: '新宾满族自治县',\n      210423: '清原满族自治县'\n    },\n    210500: {\n      210502: '平山区',\n      210503: '溪湖区',\n      210504: '明山区',\n      210505: '南芬区',\n      210521: '本溪满族自治县',\n      210522: '桓仁满族自治县'\n    },\n    210600: {\n      210602: '元宝区',\n      210603: '振兴区',\n      210604: '振安区',\n      210624: '宽甸满族自治县',\n      210681: '东港市',\n      210682: '凤城市'\n    },\n    210700: {\n      210702: '古塔区',\n      210703: '凌河区',\n      210711: '太和区',\n      210726: '黑山县',\n      210727: '义县',\n      210781: '凌海市',\n      210782: '北镇市'\n    },\n    210800: {\n      210802: '站前区',\n      210803: '西市区',\n      210804: '鲅鱼圈区',\n      210811: '老边区',\n      210881: '盖州市',\n      210882: '大石桥市'\n    },\n    210900: {\n      210902: '海州区',\n      210903: '新邱区',\n      210904: '太平区',\n      210905: '清河门区',\n      210911: '细河区',\n      210921: '阜新蒙古族自治县',\n      210922: '彰武县'\n    },\n    211000: {\n      211002: '白塔区',\n      211003: '文圣区',\n      211004: '宏伟区',\n      211005: '弓长岭区',\n      211011: '太子河区',\n      211021: '辽阳县',\n      211081: '灯塔市'\n    },\n    211100: {\n      211102: '双台子区',\n      211103: '兴隆台区',\n      211121: '大洼县',\n      211122: '盘山县'\n    },\n    211200: {\n      211202: '银州区',\n      211204: '清河区',\n      211221: '铁岭县',\n      211223: '西丰县',\n      211224: '昌图县',\n      211281: '调兵山市',\n      211282: '开原市'\n    },\n    211300: {\n      211302: '双塔区',\n      211303: '龙城区',\n      211321: '朝阳县',\n      211322: '建平县',\n      211324: '喀喇沁左翼蒙古族自治县',\n      211381: '北票市',\n      211382: '凌源市'\n    },\n    211400: {\n      211402: '连山区',\n      211403: '龙港区',\n      211404: '南票区',\n      211421: '绥中县',\n      211422: '建昌县',\n      211481: '兴城市'\n    },\n    220000: {\n      220100: '长春市',\n      220200: '吉林市',\n      220300: '四平市',\n      220400: '辽源市',\n      220500: '通化市',\n      220600: '白山市',\n      220700: '松原市',\n      220800: '白城市',\n      222400: '延边朝鲜族自治州'\n    },\n    220100: {\n      220102: '南关区',\n      220103: '宽城区',\n      220104: '朝阳区',\n      220105: '二道区',\n      220106: '绿园区',\n      220112: '双阳区',\n      220113: '九台区',\n      220122: '农安县',\n      220182: '榆树市',\n      220183: '德惠市'\n    },\n    220200: {\n      220202: '昌邑区',\n      220203: '龙潭区',\n      220204: '船营区',\n      220211: '丰满区',\n      220221: '永吉县',\n      220281: '蛟河市',\n      220282: '桦甸市',\n      220283: '舒兰市',\n      220284: '磐石市'\n    },\n    220300: {\n      220302: '铁西区',\n      220303: '铁东区',\n      220322: '梨树县',\n      220323: '伊通满族自治县',\n      220381: '公主岭市',\n      220382: '双辽市'\n    },\n    220400: {\n      220402: '龙山区',\n      220403: '西安区',\n      220421: '东丰县',\n      220422: '东辽县'\n    },\n    220500: {\n      220502: '东昌区',\n      220503: '二道江区',\n      220521: '通化县',\n      220523: '辉南县',\n      220524: '柳河县',\n      220581: '梅河口市',\n      220582: '集安市'\n    },\n    220600: {\n      220602: '浑江区',\n      220605: '江源区',\n      220621: '抚松县',\n      220622: '靖宇县',\n      220623: '长白朝鲜族自治县',\n      220681: '临江市'\n    },\n    220700: {\n      220702: '宁江区',\n      220721: '前郭尔罗斯蒙古族自治县',\n      220722: '长岭县',\n      220723: '乾安县',\n      220781: '扶余市'\n    },\n    220800: {\n      220802: '洮北区',\n      220821: '镇赉县',\n      220822: '通榆县',\n      220881: '洮南市',\n      220882: '大安市'\n    },\n    222400: {\n      222401: '延吉市',\n      222402: '图们市',\n      222403: '敦化市',\n      222404: '珲春市',\n      222405: '龙井市',\n      222406: '和龙市',\n      222424: '汪清县',\n      222426: '安图县'\n    },\n    230000: {\n      230100: '哈尔滨市',\n      230200: '齐齐哈尔市',\n      230300: '鸡西市',\n      230400: '鹤岗市',\n      230500: '双鸭山市',\n      230600: '大庆市',\n      230700: '伊春市',\n      230800: '佳木斯市',\n      230900: '七台河市',\n      231000: '牡丹江市',\n      231100: '黑河市',\n      231200: '绥化市',\n      232700: '大兴安岭地区'\n    },\n    230100: {\n      230102: '道里区',\n      230103: '南岗区',\n      230104: '道外区',\n      230108: '平房区',\n      230109: '松北区',\n      230110: '香坊区',\n      230111: '呼兰区',\n      230112: '阿城区',\n      230113: '双城区',\n      230123: '依兰县',\n      230124: '方正县',\n      230125: '宾县',\n      230126: '巴彦县',\n      230127: '木兰县',\n      230128: '通河县',\n      230129: '延寿县',\n      230183: '尚志市',\n      230184: '五常市'\n    },\n    230200: {\n      230202: '龙沙区',\n      230203: '建华区',\n      230204: '铁锋区',\n      230205: '昂昂溪区',\n      230206: '富拉尔基区',\n      230207: '碾子山区',\n      230208: '梅里斯达斡尔族区',\n      230221: '龙江县',\n      230223: '依安县',\n      230224: '泰来县',\n      230225: '甘南县',\n      230227: '富裕县',\n      230229: '克山县',\n      230230: '克东县',\n      230231: '拜泉县',\n      230281: '讷河市'\n    },\n    230300: {\n      230302: '鸡冠区',\n      230303: '恒山区',\n      230304: '滴道区',\n      230305: '梨树区',\n      230306: '城子河区',\n      230307: '麻山区',\n      230321: '鸡东县',\n      230381: '虎林市',\n      230382: '密山市'\n    },\n    230400: {\n      230402: '向阳区',\n      230403: '工农区',\n      230404: '南山区',\n      230405: '兴安区',\n      230406: '东山区',\n      230407: '兴山区',\n      230421: '萝北县',\n      230422: '绥滨县'\n    },\n    230500: {\n      230502: '尖山区',\n      230503: '岭东区',\n      230505: '四方台区',\n      230506: '宝山区',\n      230521: '集贤县',\n      230522: '友谊县',\n      230523: '宝清县',\n      230524: '饶河县'\n    },\n    230600: {\n      230602: '萨尔图区',\n      230603: '龙凤区',\n      230604: '让胡路区',\n      230605: '红岗区',\n      230606: '大同区',\n      230621: '肇州县',\n      230622: '肇源县',\n      230623: '林甸县',\n      230624: '杜尔伯特蒙古族自治县'\n    },\n    230700: {\n      230702: '伊春区',\n      230703: '南岔区',\n      230704: '友好区',\n      230705: '西林区',\n      230706: '翠峦区',\n      230707: '新青区',\n      230708: '美溪区',\n      230709: '金山屯区',\n      230710: '五营区',\n      230711: '乌马河区',\n      230712: '汤旺河区',\n      230713: '带岭区',\n      230714: '乌伊岭区',\n      230715: '红星区',\n      230716: '上甘岭区',\n      230722: '嘉荫县',\n      230781: '铁力市'\n    },\n    230800: {\n      230803: '向阳区',\n      230804: '前进区',\n      230805: '东风区',\n      230811: '郊区',\n      230822: '桦南县',\n      230826: '桦川县',\n      230828: '汤原县',\n      230833: '抚远市',\n      230881: '同江市',\n      230882: '富锦市'\n    },\n    230900: {\n      230902: '新兴区',\n      230903: '桃山区',\n      230904: '茄子河区',\n      230921: '勃利县'\n    },\n    231000: {\n      231002: '东安区',\n      231003: '阳明区',\n      231004: '爱民区',\n      231005: '西安区',\n      231025: '林口县',\n      231081: '绥芬河市',\n      231083: '海林市',\n      231084: '宁安市',\n      231085: '穆棱市',\n      231086: '东宁市'\n    },\n    231100: {\n      231102: '爱辉区',\n      231121: '嫩江县',\n      231123: '逊克县',\n      231124: '孙吴县',\n      231181: '北安市',\n      231182: '五大连池市'\n    },\n    231200: {\n      231202: '北林区',\n      231221: '望奎县',\n      231222: '兰西县',\n      231223: '青冈县',\n      231224: '庆安县',\n      231225: '明水县',\n      231226: '绥棱县',\n      231281: '安达市',\n      231282: '肇东市',\n      231283: '海伦市'\n    },\n    232700: {\n      232701: '加格达奇区',\n      232721: '呼玛县',\n      232722: '塔河县',\n      232723: '漠河县'\n    },\n    310000: {\n      310100: '上海市市辖区',\n      310200: '上海市郊县'\n    },\n    310100: {\n      310101: '黄浦区',\n      310104: '徐汇区',\n      310105: '长宁区',\n      310106: '静安区',\n      310107: '普陀区',\n      310109: '虹口区',\n      310110: '杨浦区',\n      310112: '闵行区',\n      310113: '宝山区',\n      310114: '嘉定区',\n      310115: '浦东新区',\n      310116: '金山区',\n      310117: '松江区',\n      310118: '青浦区',\n      310120: '奉贤区',\n      310230: '崇明县'\n    },\n    320000: {\n      320100: '南京市',\n      320200: '无锡市',\n      320300: '徐州市',\n      320400: '常州市',\n      320500: '苏州市',\n      320600: '南通市',\n      320700: '连云港市',\n      320800: '淮安市',\n      320900: '盐城市',\n      321000: '扬州市',\n      321100: '镇江市',\n      321200: '泰州市',\n      321300: '宿迁市'\n    },\n    320100: {\n      320102: '玄武区',\n      320104: '秦淮区',\n      320105: '建邺区',\n      320106: '鼓楼区',\n      320111: '浦口区',\n      320113: '栖霞区',\n      320114: '雨花台区',\n      320115: '江宁区',\n      320116: '六合区',\n      320117: '溧水区',\n      320118: '高淳区'\n    },\n    320200: {\n      320205: '锡山区',\n      320206: '惠山区',\n      320211: '滨湖区',\n      320213: '梁溪区',\n      320214: '新吴区',\n      320281: '江阴市',\n      320282: '宜兴市'\n    },\n    320300: {\n      320302: '鼓楼区',\n      320303: '云龙区',\n      320305: '贾汪区',\n      320311: '泉山区',\n      320312: '铜山区',\n      320321: '丰县',\n      320322: '沛县',\n      320324: '睢宁县',\n      320381: '新沂市',\n      320382: '邳州市'\n    },\n    320400: {\n      320402: '天宁区',\n      320404: '钟楼区',\n      320411: '新北区',\n      320412: '武进区',\n      320413: '金坛区',\n      320481: '溧阳市'\n    },\n    320500: {\n      320505: '虎丘区',\n      320506: '吴中区',\n      320507: '相城区',\n      320508: '姑苏区',\n      320509: '吴江区',\n      320581: '常熟市',\n      320582: '张家港市',\n      320583: '昆山市',\n      320585: '太仓市'\n    },\n    320600: {\n      320602: '崇川区',\n      320611: '港闸区',\n      320612: '通州区',\n      320621: '海安县',\n      320623: '如东县',\n      320681: '启东市',\n      320682: '如皋市',\n      320684: '海门市'\n    },\n    320700: {\n      320703: '连云区',\n      320706: '海州区',\n      320707: '赣榆区',\n      320722: '东海县',\n      320723: '灌云县',\n      320724: '灌南县'\n    },\n    320800: {\n      320802: '清河区',\n      320803: '淮安区',\n      320804: '淮阴区',\n      320811: '清浦区',\n      320826: '涟水县',\n      320829: '洪泽县',\n      320830: '盱眙县',\n      320831: '金湖县'\n    },\n    320900: {\n      320902: '亭湖区',\n      320903: '盐都区',\n      320904: '大丰区',\n      320921: '响水县',\n      320922: '滨海县',\n      320923: '阜宁县',\n      320924: '射阳县',\n      320925: '建湖县',\n      320981: '东台市'\n    },\n    321000: {\n      321002: '广陵区',\n      321003: '邗江区',\n      321012: '江都区',\n      321023: '宝应县',\n      321081: '仪征市',\n      321084: '高邮市'\n    },\n    321100: {\n      321102: '京口区',\n      321111: '润州区',\n      321112: '丹徒区',\n      321181: '丹阳市',\n      321182: '扬中市',\n      321183: '句容市'\n    },\n    321200: {\n      321202: '海陵区',\n      321203: '高港区',\n      321204: '姜堰区',\n      321281: '兴化市',\n      321282: '靖江市',\n      321283: '泰兴市'\n    },\n    321300: {\n      321302: '宿城区',\n      321311: '宿豫区',\n      321322: '沭阳县',\n      321323: '泗阳县',\n      321324: '泗洪县'\n    },\n    330000: {\n      330100: '杭州市',\n      330200: '宁波市',\n      330300: '温州市',\n      330400: '嘉兴市',\n      330500: '湖州市',\n      330600: '绍兴市',\n      330700: '金华市',\n      330800: '衢州市',\n      330900: '舟山市',\n      331000: '台州市',\n      331100: '丽水市'\n    },\n    330100: {\n      330102: '上城区',\n      330103: '下城区',\n      330104: '江干区',\n      330105: '拱墅区',\n      330106: '西湖区',\n      330108: '滨江区',\n      330109: '萧山区',\n      330110: '余杭区',\n      330111: '富阳区',\n      330122: '桐庐县',\n      330127: '淳安县',\n      330182: '建德市',\n      330185: '临安市'\n    },\n    330200: {\n      330203: '海曙区',\n      330204: '江东区',\n      330205: '江北区',\n      330206: '北仑区',\n      330211: '镇海区',\n      330212: '鄞州区',\n      330225: '象山县',\n      330226: '宁海县',\n      330281: '余姚市',\n      330282: '慈溪市',\n      330283: '奉化市'\n    },\n    330300: {\n      330302: '鹿城区',\n      330303: '龙湾区',\n      330304: '瓯海区',\n      330305: '洞头区',\n      330324: '永嘉县',\n      330326: '平阳县',\n      330327: '苍南县',\n      330328: '文成县',\n      330329: '泰顺县',\n      330381: '瑞安市',\n      330382: '乐清市'\n    },\n    330400: {\n      330402: '南湖区',\n      330411: '秀洲区',\n      330421: '嘉善县',\n      330424: '海盐县',\n      330481: '海宁市',\n      330482: '平湖市',\n      330483: '桐乡市'\n    },\n    330500: {\n      330502: '吴兴区',\n      330503: '南浔区',\n      330521: '德清县',\n      330522: '长兴县',\n      330523: '安吉县'\n    },\n    330600: {\n      330602: '越城区',\n      330603: '柯桥区',\n      330604: '上虞区',\n      330624: '新昌县',\n      330681: '诸暨市',\n      330683: '嵊州市'\n    },\n    330700: {\n      330702: '婺城区',\n      330703: '金东区',\n      330723: '武义县',\n      330726: '浦江县',\n      330727: '磐安县',\n      330781: '兰溪市',\n      330782: '义乌市',\n      330783: '东阳市',\n      330784: '永康市'\n    },\n    330800: {\n      330802: '柯城区',\n      330803: '衢江区',\n      330822: '常山县',\n      330824: '开化县',\n      330825: '龙游县',\n      330881: '江山市'\n    },\n    330900: {\n      330902: '定海区',\n      330903: '普陀区',\n      330921: '岱山县',\n      330922: '嵊泗县'\n    },\n    331000: {\n      331002: '椒江区',\n      331003: '黄岩区',\n      331004: '路桥区',\n      331021: '玉环县',\n      331022: '三门县',\n      331023: '天台县',\n      331024: '仙居县',\n      331081: '温岭市',\n      331082: '临海市'\n    },\n    331100: {\n      331102: '莲都区',\n      331121: '青田县',\n      331122: '缙云县',\n      331123: '遂昌县',\n      331124: '松阳县',\n      331125: '云和县',\n      331126: '庆元县',\n      331127: '景宁畲族自治县',\n      331181: '龙泉市'\n    },\n    340000: {\n      340100: '合肥市',\n      340200: '芜湖市',\n      340300: '蚌埠市',\n      340400: '淮南市',\n      340500: '马鞍山市',\n      340600: '淮北市',\n      340700: '铜陵市',\n      340800: '安庆市',\n      341000: '黄山市',\n      341100: '滁州市',\n      341200: '阜阳市',\n      341300: '宿州市',\n      341500: '六安市',\n      341600: '亳州市',\n      341700: '池州市',\n      341800: '宣城市'\n    },\n    340100: {\n      340102: '瑶海区',\n      340103: '庐阳区',\n      340104: '蜀山区',\n      340111: '包河区',\n      340121: '长丰县',\n      340122: '肥东县',\n      340123: '肥西县',\n      340124: '庐江县',\n      340181: '巢湖市'\n    },\n    340200: {\n      340202: '镜湖区',\n      340203: '弋江区',\n      340207: '鸠江区',\n      340208: '三山区',\n      340221: '芜湖县',\n      340222: '繁昌县',\n      340223: '南陵县',\n      340225: '无为县'\n    },\n    340300: {\n      340302: '龙子湖区',\n      340303: '蚌山区',\n      340304: '禹会区',\n      340311: '淮上区',\n      340321: '怀远县',\n      340322: '五河县',\n      340323: '固镇县'\n    },\n    340400: {\n      340402: '大通区',\n      340403: '田家庵区',\n      340404: '谢家集区',\n      340405: '八公山区',\n      340406: '潘集区',\n      340421: '凤台县',\n      340422: '寿县'\n    },\n    340500: {\n      340503: '花山区',\n      340504: '雨山区',\n      340506: '博望区',\n      340521: '当涂县',\n      340522: '含山县',\n      340523: '和县'\n    },\n    340600: {\n      340602: '杜集区',\n      340603: '相山区',\n      340604: '烈山区',\n      340621: '濉溪县'\n    },\n    340700: {\n      340705: '铜官区',\n      340706: '义安区',\n      340711: '郊区',\n      340722: '枞阳县'\n    },\n    340800: {\n      340802: '迎江区',\n      340803: '大观区',\n      340811: '宜秀区',\n      340822: '怀宁县',\n      340824: '潜山县',\n      340825: '太湖县',\n      340826: '宿松县',\n      340827: '望江县',\n      340828: '岳西县',\n      340881: '桐城市'\n    },\n    341000: {\n      341002: '屯溪区',\n      341003: '黄山区',\n      341004: '徽州区',\n      341021: '歙县',\n      341022: '休宁县',\n      341023: '黟县',\n      341024: '祁门县'\n    },\n    341100: {\n      341102: '琅琊区',\n      341103: '南谯区',\n      341122: '来安县',\n      341124: '全椒县',\n      341125: '定远县',\n      341126: '凤阳县',\n      341181: '天长市',\n      341182: '明光市'\n    },\n    341200: {\n      341202: '颍州区',\n      341203: '颍东区',\n      341204: '颍泉区',\n      341221: '临泉县',\n      341222: '太和县',\n      341225: '阜南县',\n      341226: '颍上县',\n      341282: '界首市'\n    },\n    341300: {\n      341302: '埇桥区',\n      341321: '砀山县',\n      341322: '萧县',\n      341323: '灵璧县',\n      341324: '泗县'\n    },\n    341500: {\n      341502: '金安区',\n      341503: '裕安区',\n      341504: '叶集区',\n      341522: '霍邱县',\n      341523: '舒城县',\n      341524: '金寨县',\n      341525: '霍山县'\n    },\n    341600: {\n      341602: '谯城区',\n      341621: '涡阳县',\n      341622: '蒙城县',\n      341623: '利辛县'\n    },\n    341700: {\n      341702: '贵池区',\n      341721: '东至县',\n      341722: '石台县',\n      341723: '青阳县'\n    },\n    341800: {\n      341802: '宣州区',\n      341821: '郎溪县',\n      341822: '广德县',\n      341823: '泾县',\n      341824: '绩溪县',\n      341825: '旌德县',\n      341881: '宁国市'\n    },\n    350000: {\n      350100: '福州市',\n      350200: '厦门市',\n      350300: '莆田市',\n      350400: '三明市',\n      350500: '泉州市',\n      350600: '漳州市',\n      350700: '南平市',\n      350800: '龙岩市',\n      350900: '宁德市'\n    },\n    350100: {\n      350102: '鼓楼区',\n      350103: '台江区',\n      350104: '仓山区',\n      350105: '马尾区',\n      350111: '晋安区',\n      350121: '闽侯县',\n      350122: '连江县',\n      350123: '罗源县',\n      350124: '闽清县',\n      350125: '永泰县',\n      350128: '平潭县',\n      350181: '福清市',\n      350182: '长乐市'\n    },\n    350200: {\n      350203: '思明区',\n      350205: '海沧区',\n      350206: '湖里区',\n      350211: '集美区',\n      350212: '同安区',\n      350213: '翔安区'\n    },\n    350300: {\n      350302: '城厢区',\n      350303: '涵江区',\n      350304: '荔城区',\n      350305: '秀屿区',\n      350322: '仙游县'\n    },\n    350400: {\n      350402: '梅列区',\n      350403: '三元区',\n      350421: '明溪县',\n      350423: '清流县',\n      350424: '宁化县',\n      350425: '大田县',\n      350426: '尤溪县',\n      350427: '沙县',\n      350428: '将乐县',\n      350429: '泰宁县',\n      350430: '建宁县',\n      350481: '永安市'\n    },\n    350500: {\n      350502: '鲤城区',\n      350503: '丰泽区',\n      350504: '洛江区',\n      350505: '泉港区',\n      350521: '惠安县',\n      350524: '安溪县',\n      350525: '永春县',\n      350526: '德化县',\n      350527: '金门县',\n      350581: '石狮市',\n      350582: '晋江市',\n      350583: '南安市'\n    },\n    350600: {\n      350602: '芗城区',\n      350603: '龙文区',\n      350622: '云霄县',\n      350623: '漳浦县',\n      350624: '诏安县',\n      350625: '长泰县',\n      350626: '东山县',\n      350627: '南靖县',\n      350628: '平和县',\n      350629: '华安县',\n      350681: '龙海市'\n    },\n    350700: {\n      350702: '延平区',\n      350703: '建阳区',\n      350721: '顺昌县',\n      350722: '浦城县',\n      350723: '光泽县',\n      350724: '松溪县',\n      350725: '政和县',\n      350781: '邵武市',\n      350782: '武夷山市',\n      350783: '建瓯市'\n    },\n    350800: {\n      350802: '新罗区',\n      350803: '永定区',\n      350821: '长汀县',\n      350823: '上杭县',\n      350824: '武平县',\n      350825: '连城县',\n      350881: '漳平市'\n    },\n    350900: {\n      350902: '蕉城区',\n      350921: '霞浦县',\n      350922: '古田县',\n      350923: '屏南县',\n      350924: '寿宁县',\n      350925: '周宁县',\n      350926: '柘荣县',\n      350981: '福安市',\n      350982: '福鼎市'\n    },\n    360000: {\n      360100: '南昌市',\n      360200: '景德镇市',\n      360300: '萍乡市',\n      360400: '九江市',\n      360500: '新余市',\n      360600: '鹰潭市',\n      360700: '赣州市',\n      360800: '吉安市',\n      360900: '宜春市',\n      361000: '抚州市',\n      361100: '上饶市'\n    },\n    360100: {\n      360102: '东湖区',\n      360103: '西湖区',\n      360104: '青云谱区',\n      360105: '湾里区',\n      360111: '青山湖区',\n      360112: '新建区',\n      360121: '南昌县',\n      360123: '安义县',\n      360124: '进贤县'\n    },\n    360200: {\n      360202: '昌江区',\n      360203: '珠山区',\n      360222: '浮梁县',\n      360281: '乐平市'\n    },\n    360300: {\n      360302: '安源区',\n      360313: '湘东区',\n      360321: '莲花县',\n      360322: '上栗县',\n      360323: '芦溪县'\n    },\n    360400: {\n      360402: '庐山区',\n      360403: '浔阳区',\n      360421: '九江县',\n      360423: '武宁县',\n      360424: '修水县',\n      360425: '永修县',\n      360426: '德安县',\n      360427: '星子县',\n      360428: '都昌县',\n      360429: '湖口县',\n      360430: '彭泽县',\n      360481: '瑞昌市',\n      360482: '共青城市'\n    },\n    360500: {\n      360502: '渝水区',\n      360521: '分宜县'\n    },\n    360600: {\n      360602: '月湖区',\n      360622: '余江县',\n      360681: '贵溪市'\n    },\n    360700: {\n      360702: '章贡区',\n      360703: '南康区',\n      360721: '赣县',\n      360722: '信丰县',\n      360723: '大余县',\n      360724: '上犹县',\n      360725: '崇义县',\n      360726: '安远县',\n      360727: '龙南县',\n      360728: '定南县',\n      360729: '全南县',\n      360730: '宁都县',\n      360731: '于都县',\n      360732: '兴国县',\n      360733: '会昌县',\n      360734: '寻乌县',\n      360735: '石城县',\n      360781: '瑞金市'\n    },\n    360800: {\n      360802: '吉州区',\n      360803: '青原区',\n      360821: '吉安县',\n      360822: '吉水县',\n      360823: '峡江县',\n      360824: '新干县',\n      360825: '永丰县',\n      360826: '泰和县',\n      360827: '遂川县',\n      360828: '万安县',\n      360829: '安福县',\n      360830: '永新县',\n      360881: '井冈山市'\n    },\n    360900: {\n      360902: '袁州区',\n      360921: '奉新县',\n      360922: '万载县',\n      360923: '上高县',\n      360924: '宜丰县',\n      360925: '靖安县',\n      360926: '铜鼓县',\n      360981: '丰城市',\n      360982: '樟树市',\n      360983: '高安市'\n    },\n    361000: {\n      361002: '临川区',\n      361021: '南城县',\n      361022: '黎川县',\n      361023: '南丰县',\n      361024: '崇仁县',\n      361025: '乐安县',\n      361026: '宜黄县',\n      361027: '金溪县',\n      361028: '资溪县',\n      361029: '东乡县',\n      361030: '广昌县'\n    },\n    361100: {\n      361102: '信州区',\n      361103: '广丰区',\n      361121: '上饶县',\n      361123: '玉山县',\n      361124: '铅山县',\n      361125: '横峰县',\n      361126: '弋阳县',\n      361127: '余干县',\n      361128: '鄱阳县',\n      361129: '万年县',\n      361130: '婺源县',\n      361181: '德兴市'\n    },\n    370000: {\n      370100: '济南市',\n      370200: '青岛市',\n      370300: '淄博市',\n      370400: '枣庄市',\n      370500: '东营市',\n      370600: '烟台市',\n      370700: '潍坊市',\n      370800: '济宁市',\n      370900: '泰安市',\n      371000: '威海市',\n      371100: '日照市',\n      371200: '莱芜市',\n      371300: '临沂市',\n      371400: '德州市',\n      371500: '聊城市',\n      371600: '滨州市',\n      371700: '菏泽市'\n    },\n    370100: {\n      370102: '历下区',\n      370103: '市中区',\n      370104: '槐荫区',\n      370105: '天桥区',\n      370112: '历城区',\n      370113: '长清区',\n      370124: '平阴县',\n      370125: '济阳县',\n      370126: '商河县',\n      370181: '章丘市'\n    },\n    370200: {\n      370202: '市南区',\n      370203: '市北区',\n      370211: '黄岛区',\n      370212: '崂山区',\n      370213: '李沧区',\n      370214: '城阳区',\n      370281: '胶州市',\n      370282: '即墨市',\n      370283: '平度市',\n      370285: '莱西市'\n    },\n    370300: {\n      370302: '淄川区',\n      370303: '张店区',\n      370304: '博山区',\n      370305: '临淄区',\n      370306: '周村区',\n      370321: '桓台县',\n      370322: '高青县',\n      370323: '沂源县'\n    },\n    370400: {\n      370402: '市中区',\n      370403: '薛城区',\n      370404: '峄城区',\n      370405: '台儿庄区',\n      370406: '山亭区',\n      370481: '滕州市'\n    },\n    370500: {\n      370502: '东营区',\n      370503: '河口区',\n      370521: '垦利县',\n      370522: '利津县',\n      370523: '广饶县'\n    },\n    370600: {\n      370602: '芝罘区',\n      370611: '福山区',\n      370612: '牟平区',\n      370613: '莱山区',\n      370634: '长岛县',\n      370681: '龙口市',\n      370682: '莱阳市',\n      370683: '莱州市',\n      370684: '蓬莱市',\n      370685: '招远市',\n      370686: '栖霞市',\n      370687: '海阳市'\n    },\n    370700: {\n      370702: '潍城区',\n      370703: '寒亭区',\n      370704: '坊子区',\n      370705: '奎文区',\n      370724: '临朐县',\n      370725: '昌乐县',\n      370781: '青州市',\n      370782: '诸城市',\n      370783: '寿光市',\n      370784: '安丘市',\n      370785: '高密市',\n      370786: '昌邑市'\n    },\n    370800: {\n      370811: '任城区',\n      370812: '兖州区',\n      370826: '微山县',\n      370827: '鱼台县',\n      370828: '金乡县',\n      370829: '嘉祥县',\n      370830: '汶上县',\n      370831: '泗水县',\n      370832: '梁山县',\n      370881: '曲阜市',\n      370883: '邹城市'\n    },\n    370900: {\n      370902: '泰山区',\n      370911: '岱岳区',\n      370921: '宁阳县',\n      370923: '东平县',\n      370982: '新泰市',\n      370983: '肥城市'\n    },\n    371000: {\n      371002: '环翠区',\n      371003: '文登区',\n      371082: '荣成市',\n      371083: '乳山市'\n    },\n    371100: {\n      371102: '东港区',\n      371103: '岚山区',\n      371121: '五莲县',\n      371122: '莒县'\n    },\n    371200: {\n      371202: '莱城区',\n      371203: '钢城区'\n    },\n    371300: {\n      371302: '兰山区',\n      371311: '罗庄区',\n      371312: '河东区',\n      371321: '沂南县',\n      371322: '郯城县',\n      371323: '沂水县',\n      371324: '兰陵县',\n      371325: '费县',\n      371326: '平邑县',\n      371327: '莒南县',\n      371328: '蒙阴县',\n      371329: '临沭县'\n    },\n    371400: {\n      371402: '德城区',\n      371403: '陵城区',\n      371422: '宁津县',\n      371423: '庆云县',\n      371424: '临邑县',\n      371425: '齐河县',\n      371426: '平原县',\n      371427: '夏津县',\n      371428: '武城县',\n      371481: '乐陵市',\n      371482: '禹城市'\n    },\n    371500: {\n      371502: '东昌府区',\n      371521: '阳谷县',\n      371522: '莘县',\n      371523: '茌平县',\n      371524: '东阿县',\n      371525: '冠县',\n      371526: '高唐县',\n      371581: '临清市'\n    },\n    371600: {\n      371602: '滨城区',\n      371603: '沾化区',\n      371621: '惠民县',\n      371622: '阳信县',\n      371623: '无棣县',\n      371625: '博兴县',\n      371626: '邹平县'\n    },\n    371700: {\n      371702: '牡丹区',\n      371721: '曹县',\n      371722: '单县',\n      371723: '成武县',\n      371724: '巨野县',\n      371725: '郓城县',\n      371726: '鄄城县',\n      371727: '定陶县',\n      371728: '东明县'\n    },\n    410000: {\n      410100: '郑州市',\n      410200: '开封市',\n      410300: '洛阳市',\n      410400: '平顶山市',\n      410500: '安阳市',\n      410600: '鹤壁市',\n      410700: '新乡市',\n      410800: '焦作市',\n      410900: '濮阳市',\n      411000: '许昌市',\n      411100: '漯河市',\n      411200: '三门峡市',\n      411300: '南阳市',\n      411400: '商丘市',\n      411500: '信阳市',\n      411600: '周口市',\n      411700: '驻马店市',\n      419001: '济源市'\n    },\n    410100: {\n      410102: '中原区',\n      410103: '二七区',\n      410104: '管城回族区',\n      410105: '金水区',\n      410106: '上街区',\n      410108: '惠济区',\n      410122: '中牟县',\n      410181: '巩义市',\n      410182: '荥阳市',\n      410183: '新密市',\n      410184: '新郑市',\n      410185: '登封市'\n    },\n    410200: {\n      410202: '龙亭区',\n      410203: '顺河回族区',\n      410204: '鼓楼区',\n      410205: '禹王台区',\n      410212: '祥符区',\n      410221: '杞县',\n      410222: '通许县',\n      410223: '尉氏县',\n      410225: '兰考县'\n    },\n    410300: {\n      410302: '老城区',\n      410303: '西工区',\n      410304: '瀍河回族区',\n      410305: '涧西区',\n      410306: '吉利区',\n      410311: '洛龙区',\n      410322: '孟津县',\n      410323: '新安县',\n      410324: '栾川县',\n      410325: '嵩县',\n      410326: '汝阳县',\n      410327: '宜阳县',\n      410328: '洛宁县',\n      410329: '伊川县',\n      410381: '偃师市'\n    },\n    410400: {\n      410402: '新华区',\n      410403: '卫东区',\n      410404: '石龙区',\n      410411: '湛河区',\n      410421: '宝丰县',\n      410422: '叶县',\n      410423: '鲁山县',\n      410425: '郏县',\n      410481: '舞钢市',\n      410482: '汝州市'\n    },\n    410500: {\n      410502: '文峰区',\n      410503: '北关区',\n      410505: '殷都区',\n      410506: '龙安区',\n      410522: '安阳县',\n      410523: '汤阴县',\n      410526: '滑县',\n      410527: '内黄县',\n      410581: '林州市'\n    },\n    410600: {\n      410602: '鹤山区',\n      410603: '山城区',\n      410611: '淇滨区',\n      410621: '浚县',\n      410622: '淇县'\n    },\n    410700: {\n      410702: '红旗区',\n      410703: '卫滨区',\n      410704: '凤泉区',\n      410711: '牧野区',\n      410721: '新乡县',\n      410724: '获嘉县',\n      410725: '原阳县',\n      410726: '延津县',\n      410727: '封丘县',\n      410728: '长垣县',\n      410781: '卫辉市',\n      410782: '辉县市'\n    },\n    410800: {\n      410802: '解放区',\n      410803: '中站区',\n      410804: '马村区',\n      410811: '山阳区',\n      410821: '修武县',\n      410822: '博爱县',\n      410823: '武陟县',\n      410825: '温县',\n      410882: '沁阳市',\n      410883: '孟州市'\n    },\n    410900: {\n      410902: '华龙区',\n      410922: '清丰县',\n      410923: '南乐县',\n      410926: '范县',\n      410927: '台前县',\n      410928: '濮阳县'\n    },\n    411000: {\n      411002: '魏都区',\n      411023: '许昌县',\n      411024: '鄢陵县',\n      411025: '襄城县',\n      411081: '禹州市',\n      411082: '长葛市'\n    },\n    411100: {\n      411102: '源汇区',\n      411103: '郾城区',\n      411104: '召陵区',\n      411121: '舞阳县',\n      411122: '临颍县'\n    },\n    411200: {\n      411202: '湖滨区',\n      411203: '陕州区',\n      411221: '渑池县',\n      411224: '卢氏县',\n      411281: '义马市',\n      411282: '灵宝市'\n    },\n    411300: {\n      411302: '宛城区',\n      411303: '卧龙区',\n      411321: '南召县',\n      411322: '方城县',\n      411323: '西峡县',\n      411324: '镇平县',\n      411325: '内乡县',\n      411326: '淅川县',\n      411327: '社旗县',\n      411328: '唐河县',\n      411329: '新野县',\n      411330: '桐柏县',\n      411381: '邓州市'\n    },\n    411400: {\n      411402: '梁园区',\n      411403: '睢阳区',\n      411421: '民权县',\n      411422: '睢县',\n      411423: '宁陵县',\n      411424: '柘城县',\n      411425: '虞城县',\n      411426: '夏邑县',\n      411481: '永城市'\n    },\n    411500: {\n      411502: '浉河区',\n      411503: '平桥区',\n      411521: '罗山县',\n      411522: '光山县',\n      411523: '新县',\n      411524: '商城县',\n      411525: '固始县',\n      411526: '潢川县',\n      411527: '淮滨县',\n      411528: '息县'\n    },\n    411600: {\n      411602: '川汇区',\n      411621: '扶沟县',\n      411622: '西华县',\n      411623: '商水县',\n      411624: '沈丘县',\n      411625: '郸城县',\n      411626: '淮阳县',\n      411627: '太康县',\n      411628: '鹿邑县',\n      411681: '项城市'\n    },\n    411700: {\n      411702: '驿城区',\n      411721: '西平县',\n      411722: '上蔡县',\n      411723: '平舆县',\n      411724: '正阳县',\n      411725: '确山县',\n      411726: '泌阳县',\n      411727: '汝南县',\n      411728: '遂平县',\n      411729: '新蔡县'\n    },\n    420000: {\n      420100: '武汉市',\n      420200: '黄石市',\n      420300: '十堰市',\n      420500: '宜昌市',\n      420600: '襄阳市',\n      420700: '鄂州市',\n      420800: '荆门市',\n      420900: '孝感市',\n      421000: '荆州市',\n      421100: '黄冈市',\n      421200: '咸宁市',\n      421300: '随州市',\n      422800: '恩施土家族苗族自治州',\n      429004: '仙桃市',\n      429005: '潜江市',\n      429006: '天门市',\n      429021: '神农架林区'\n    },\n    420100: {\n      420102: '江岸区',\n      420103: '江汉区',\n      420104: '硚口区',\n      420105: '汉阳区',\n      420106: '武昌区',\n      420107: '青山区',\n      420111: '洪山区',\n      420112: '东西湖区',\n      420113: '汉南区',\n      420114: '蔡甸区',\n      420115: '江夏区',\n      420116: '黄陂区',\n      420117: '新洲区'\n    },\n    420200: {\n      420202: '黄石港区',\n      420203: '西塞山区',\n      420204: '下陆区',\n      420205: '铁山区',\n      420222: '阳新县',\n      420281: '大冶市'\n    },\n    420300: {\n      420302: '茅箭区',\n      420303: '张湾区',\n      420304: '郧阳区',\n      420322: '郧西县',\n      420323: '竹山县',\n      420324: '竹溪县',\n      420325: '房县',\n      420381: '丹江口市'\n    },\n    420500: {\n      420502: '西陵区',\n      420503: '伍家岗区',\n      420504: '点军区',\n      420505: '猇亭区',\n      420506: '夷陵区',\n      420525: '远安县',\n      420526: '兴山县',\n      420527: '秭归县',\n      420528: '长阳土家族自治县',\n      420529: '五峰土家族自治县',\n      420581: '宜都市',\n      420582: '当阳市',\n      420583: '枝江市'\n    },\n    420600: {\n      420602: '襄城区',\n      420606: '樊城区',\n      420607: '襄州区',\n      420624: '南漳县',\n      420625: '谷城县',\n      420626: '保康县',\n      420682: '老河口市',\n      420683: '枣阳市',\n      420684: '宜城市'\n    },\n    420700: {\n      420702: '梁子湖区',\n      420703: '华容区',\n      420704: '鄂城区'\n    },\n    420800: {\n      420802: '东宝区',\n      420804: '掇刀区',\n      420821: '京山县',\n      420822: '沙洋县',\n      420881: '钟祥市'\n    },\n    420900: {\n      420902: '孝南区',\n      420921: '孝昌县',\n      420922: '大悟县',\n      420923: '云梦县',\n      420981: '应城市',\n      420982: '安陆市',\n      420984: '汉川市'\n    },\n    421000: {\n      421002: '沙市区',\n      421003: '荆州区',\n      421022: '公安县',\n      421023: '监利县',\n      421024: '江陵县',\n      421081: '石首市',\n      421083: '洪湖市',\n      421087: '松滋市'\n    },\n    421100: {\n      421102: '黄州区',\n      421121: '团风县',\n      421122: '红安县',\n      421123: '罗田县',\n      421124: '英山县',\n      421125: '浠水县',\n      421126: '蕲春县',\n      421127: '黄梅县',\n      421181: '麻城市',\n      421182: '武穴市'\n    },\n    421200: {\n      421202: '咸安区',\n      421221: '嘉鱼县',\n      421222: '通城县',\n      421223: '崇阳县',\n      421224: '通山县',\n      421281: '赤壁市'\n    },\n    421300: {\n      421303: '曾都区',\n      421321: '随县',\n      421381: '广水市'\n    },\n    422800: {\n      422801: '恩施市',\n      422802: '利川市',\n      422822: '建始县',\n      422823: '巴东县',\n      422825: '宣恩县',\n      422826: '咸丰县',\n      422827: '来凤县',\n      422828: '鹤峰县'\n    },\n    430000: {\n      430100: '长沙市',\n      430200: '株洲市',\n      430300: '湘潭市',\n      430400: '衡阳市',\n      430500: '邵阳市',\n      430600: '岳阳市',\n      430700: '常德市',\n      430800: '张家界市',\n      430900: '益阳市',\n      431000: '郴州市',\n      431100: '永州市',\n      431200: '怀化市',\n      431300: '娄底市',\n      433100: '湘西土家族苗族自治州'\n    },\n    430100: {\n      430102: '芙蓉区',\n      430103: '天心区',\n      430104: '岳麓区',\n      430105: '开福区',\n      430111: '雨花区',\n      430112: '望城区',\n      430121: '长沙县',\n      430124: '宁乡县',\n      430181: '浏阳市'\n    },\n    430200: {\n      430202: '荷塘区',\n      430203: '芦淞区',\n      430204: '石峰区',\n      430211: '天元区',\n      430221: '株洲县',\n      430223: '攸县',\n      430224: '茶陵县',\n      430225: '炎陵县',\n      430281: '醴陵市'\n    },\n    430300: {\n      430302: '雨湖区',\n      430304: '岳塘区',\n      430321: '湘潭县',\n      430381: '湘乡市',\n      430382: '韶山市'\n    },\n    430400: {\n      430405: '珠晖区',\n      430406: '雁峰区',\n      430407: '石鼓区',\n      430408: '蒸湘区',\n      430412: '南岳区',\n      430421: '衡阳县',\n      430422: '衡南县',\n      430423: '衡山县',\n      430424: '衡东县',\n      430426: '祁东县',\n      430481: '耒阳市',\n      430482: '常宁市'\n    },\n    430500: {\n      430502: '双清区',\n      430503: '大祥区',\n      430511: '北塔区',\n      430521: '邵东县',\n      430522: '新邵县',\n      430523: '邵阳县',\n      430524: '隆回县',\n      430525: '洞口县',\n      430527: '绥宁县',\n      430528: '新宁县',\n      430529: '城步苗族自治县',\n      430581: '武冈市'\n    },\n    430600: {\n      430602: '岳阳楼区',\n      430603: '云溪区',\n      430611: '君山区',\n      430621: '岳阳县',\n      430623: '华容县',\n      430624: '湘阴县',\n      430626: '平江县',\n      430681: '汨罗市',\n      430682: '临湘市'\n    },\n    430700: {\n      430702: '武陵区',\n      430703: '鼎城区',\n      430721: '安乡县',\n      430722: '汉寿县',\n      430723: '澧县',\n      430724: '临澧县',\n      430725: '桃源县',\n      430726: '石门县',\n      430781: '津市市'\n    },\n    430800: {\n      430802: '永定区',\n      430811: '武陵源区',\n      430821: '慈利县',\n      430822: '桑植县'\n    },\n    430900: {\n      430902: '资阳区',\n      430903: '赫山区',\n      430921: '南县',\n      430922: '桃江县',\n      430923: '安化县',\n      430981: '沅江市'\n    },\n    431000: {\n      431002: '北湖区',\n      431003: '苏仙区',\n      431021: '桂阳县',\n      431022: '宜章县',\n      431023: '永兴县',\n      431024: '嘉禾县',\n      431025: '临武县',\n      431026: '汝城县',\n      431027: '桂东县',\n      431028: '安仁县',\n      431081: '资兴市'\n    },\n    431100: {\n      431102: '零陵区',\n      431103: '冷水滩区',\n      431121: '祁阳县',\n      431122: '东安县',\n      431123: '双牌县',\n      431124: '道县',\n      431125: '江永县',\n      431126: '宁远县',\n      431127: '蓝山县',\n      431128: '新田县',\n      431129: '江华瑶族自治县'\n    },\n    431200: {\n      431202: '鹤城区',\n      431221: '中方县',\n      431222: '沅陵县',\n      431223: '辰溪县',\n      431224: '溆浦县',\n      431225: '会同县',\n      431226: '麻阳苗族自治县',\n      431227: '新晃侗族自治县',\n      431228: '芷江侗族自治县',\n      431229: '靖州苗族侗族自治县',\n      431230: '通道侗族自治县',\n      431281: '洪江市'\n    },\n    431300: {\n      431302: '娄星区',\n      431321: '双峰县',\n      431322: '新化县',\n      431381: '冷水江市',\n      431382: '涟源市'\n    },\n    433100: {\n      433101: '吉首市',\n      433122: '泸溪县',\n      433123: '凤凰县',\n      433124: '花垣县',\n      433125: '保靖县',\n      433126: '古丈县',\n      433127: '永顺县',\n      433130: '龙山县'\n    },\n    440000: {\n      440100: '广州市',\n      440200: '韶关市',\n      440300: '深圳市',\n      440400: '珠海市',\n      440500: '汕头市',\n      440600: '佛山市',\n      440700: '江门市',\n      440800: '湛江市',\n      440900: '茂名市',\n      441200: '肇庆市',\n      441300: '惠州市',\n      441400: '梅州市',\n      441500: '汕尾市',\n      441600: '河源市',\n      441700: '阳江市',\n      441800: '清远市',\n      441900: '东莞市',\n      442000: '中山市',\n      445100: '潮州市',\n      445200: '揭阳市',\n      445300: '云浮市'\n    },\n    440100: {\n      440103: '荔湾区',\n      440104: '越秀区',\n      440105: '海珠区',\n      440106: '天河区',\n      440111: '白云区',\n      440112: '黄埔区',\n      440113: '番禺区',\n      440114: '花都区',\n      440115: '南沙区',\n      440117: '从化区',\n      440118: '增城区'\n    },\n    440200: {\n      440203: '武江区',\n      440204: '浈江区',\n      440205: '曲江区',\n      440222: '始兴县',\n      440224: '仁化县',\n      440229: '翁源县',\n      440232: '乳源瑶族自治县',\n      440233: '新丰县',\n      440281: '乐昌市',\n      440282: '南雄市'\n    },\n    440300: {\n      440303: '罗湖区',\n      440304: '福田区',\n      440305: '南山区',\n      440306: '宝安区',\n      440307: '龙岗区',\n      440308: '盐田区'\n    },\n    440400: {\n      440402: '香洲区',\n      440403: '斗门区',\n      440404: '金湾区'\n    },\n    440500: {\n      440507: '龙湖区',\n      440511: '金平区',\n      440512: '濠江区',\n      440513: '潮阳区',\n      440514: '潮南区',\n      440515: '澄海区',\n      440523: '南澳县'\n    },\n    440600: {\n      440604: '禅城区',\n      440605: '南海区',\n      440606: '顺德区',\n      440607: '三水区',\n      440608: '高明区'\n    },\n    440700: {\n      440703: '蓬江区',\n      440704: '江海区',\n      440705: '新会区',\n      440781: '台山市',\n      440783: '开平市',\n      440784: '鹤山市',\n      440785: '恩平市'\n    },\n    440800: {\n      440802: '赤坎区',\n      440803: '霞山区',\n      440804: '坡头区',\n      440811: '麻章区',\n      440823: '遂溪县',\n      440825: '徐闻县',\n      440881: '廉江市',\n      440882: '雷州市',\n      440883: '吴川市'\n    },\n    440900: {\n      440902: '茂南区',\n      440904: '电白区',\n      440981: '高州市',\n      440982: '化州市',\n      440983: '信宜市'\n    },\n    441200: {\n      441202: '端州区',\n      441203: '鼎湖区',\n      441204: '高要区',\n      441223: '广宁县',\n      441224: '怀集县',\n      441225: '封开县',\n      441226: '德庆县',\n      441284: '四会市'\n    },\n    441300: {\n      441302: '惠城区',\n      441303: '惠阳区',\n      441322: '博罗县',\n      441323: '惠东县',\n      441324: '龙门县'\n    },\n    441400: {\n      441402: '梅江区',\n      441403: '梅县区',\n      441422: '大埔县',\n      441423: '丰顺县',\n      441424: '五华县',\n      441426: '平远县',\n      441427: '蕉岭县',\n      441481: '兴宁市'\n    },\n    441500: {\n      441502: '城区',\n      441521: '海丰县',\n      441523: '陆河县',\n      441581: '陆丰市'\n    },\n    441600: {\n      441602: '源城区',\n      441621: '紫金县',\n      441622: '龙川县',\n      441623: '连平县',\n      441624: '和平县',\n      441625: '东源县'\n    },\n    441700: {\n      441702: '江城区',\n      441704: '阳东区',\n      441721: '阳西县',\n      441781: '阳春市'\n    },\n    441800: {\n      441802: '清城区',\n      441803: '清新区',\n      441821: '佛冈县',\n      441823: '阳山县',\n      441825: '连山壮族瑶族自治县',\n      441826: '连南瑶族自治县',\n      441881: '英德市',\n      441882: '连州市'\n    },\n    441900: {\n      441900: '三元里'\n    },\n    442000: {\n      442000: '湖滨北路'\n    },\n    445100: {\n      445102: '湘桥区',\n      445103: '潮安区',\n      445122: '饶平县'\n    },\n    445200: {\n      445202: '榕城区',\n      445203: '揭东区',\n      445222: '揭西县',\n      445224: '惠来县',\n      445281: '普宁市'\n    },\n    445300: {\n      445302: '云城区',\n      445303: '云安区',\n      445321: '新兴县',\n      445322: '郁南县',\n      445381: '罗定市'\n    },\n    450000: {\n      450100: '南宁市',\n      450200: '柳州市',\n      450300: '桂林市',\n      450400: '梧州市',\n      450500: '北海市',\n      450600: '防城港市',\n      450700: '钦州市',\n      450800: '贵港市',\n      450900: '玉林市',\n      451000: '百色市',\n      451100: '贺州市',\n      451200: '河池市',\n      451300: '来宾市',\n      451400: '崇左市'\n    },\n    450100: {\n      450102: '兴宁区',\n      450103: '青秀区',\n      450105: '江南区',\n      450107: '西乡塘区',\n      450108: '良庆区',\n      450109: '邕宁区',\n      450110: '武鸣区',\n      450123: '隆安县',\n      450124: '马山县',\n      450125: '上林县',\n      450126: '宾阳县',\n      450127: '横县'\n    },\n    450200: {\n      450202: '城中区',\n      450203: '鱼峰区',\n      450204: '柳南区',\n      450205: '柳北区',\n      450221: '柳江县',\n      450222: '柳城县',\n      450223: '鹿寨县',\n      450224: '融安县',\n      450225: '融水苗族自治县',\n      450226: '三江侗族自治县'\n    },\n    450300: {\n      450302: '秀峰区',\n      450303: '叠彩区',\n      450304: '象山区',\n      450305: '七星区',\n      450311: '雁山区',\n      450312: '临桂区',\n      450321: '阳朔县',\n      450323: '灵川县',\n      450324: '全州县',\n      450325: '兴安县',\n      450326: '永福县',\n      450327: '灌阳县',\n      450328: '龙胜各族自治县',\n      450329: '资源县',\n      450330: '平乐县',\n      450331: '荔浦县',\n      450332: '恭城瑶族自治县'\n    },\n    450400: {\n      450403: '万秀区',\n      450405: '长洲区',\n      450406: '龙圩区',\n      450421: '苍梧县',\n      450422: '藤县',\n      450423: '蒙山县',\n      450481: '岑溪市'\n    },\n    450500: {\n      450502: '海城区',\n      450503: '银海区',\n      450512: '铁山港区',\n      450521: '合浦县'\n    },\n    450600: {\n      450602: '港口区',\n      450603: '防城区',\n      450621: '上思县',\n      450681: '东兴市'\n    },\n    450700: {\n      450702: '钦南区',\n      450703: '钦北区',\n      450721: '灵山县',\n      450722: '浦北县'\n    },\n    450800: {\n      450802: '港北区',\n      450803: '港南区',\n      450804: '覃塘区',\n      450821: '平南县',\n      450881: '桂平市'\n    },\n    450900: {\n      450902: '玉州区',\n      450903: '福绵区',\n      450921: '容县',\n      450922: '陆川县',\n      450923: '博白县',\n      450924: '兴业县',\n      450981: '北流市'\n    },\n    451000: {\n      451002: '右江区',\n      451021: '田阳县',\n      451022: '田东县',\n      451023: '平果县',\n      451024: '德保县',\n      451026: '那坡县',\n      451027: '凌云县',\n      451028: '乐业县',\n      451029: '田林县',\n      451030: '西林县',\n      451031: '隆林各族自治县',\n      451081: '靖西市'\n    },\n    451100: {\n      451102: '八步区',\n      451121: '昭平县',\n      451122: '钟山县',\n      451123: '富川瑶族自治县'\n    },\n    451200: {\n      451202: '金城江区',\n      451221: '南丹县',\n      451222: '天峨县',\n      451223: '凤山县',\n      451224: '东兰县',\n      451225: '罗城仫佬族自治县',\n      451226: '环江毛南族自治县',\n      451227: '巴马瑶族自治县',\n      451228: '都安瑶族自治县',\n      451229: '大化瑶族自治县',\n      451281: '宜州市'\n    },\n    451300: {\n      451302: '兴宾区',\n      451321: '忻城县',\n      451322: '象州县',\n      451323: '武宣县',\n      451324: '金秀瑶族自治县',\n      451381: '合山市'\n    },\n    451400: {\n      451402: '江州区',\n      451421: '扶绥县',\n      451422: '宁明县',\n      451423: '龙州县',\n      451424: '大新县',\n      451425: '天等县',\n      451481: '凭祥市'\n    },\n    460000: {\n      460100: '海口市',\n      460200: '三亚市',\n      460300: '三沙市',\n      460400: '儋州市',\n      469001: '五指山市',\n      469002: '琼海市',\n      469005: '文昌市',\n      469006: '万宁市',\n      469007: '东方市',\n      469021: '定安县',\n      469022: '屯昌县',\n      469023: '澄迈县',\n      469024: '临高县',\n      469025: '白沙黎族自治县',\n      469026: '昌江黎族自治县',\n      469027: '乐东黎族自治县',\n      469028: '陵水黎族自治县',\n      469029: '保亭黎族苗族自治县',\n      469030: '琼中黎族苗族自治县'\n    },\n    460100: {\n      460105: '秀英区',\n      460106: '龙华区',\n      460107: '琼山区',\n      460108: '美兰区'\n    },\n    460200: {\n      460200: '三亚湾',\n      460202: '海棠区',\n      460203: '吉阳区',\n      460204: '天涯区',\n      460205: '崖州区'\n    },\n    460300: {\n      460321: '西沙群岛',\n      460322: '南沙群岛',\n      460323: '中沙群岛的岛礁及其海域'\n    },\n    500000: {\n      500100: '重庆市市辖区',\n      500200: '重庆市郊县'\n    },\n    500100: {\n      500101: '万州区',\n      500102: '涪陵区',\n      500103: '渝中区',\n      500104: '大渡口区',\n      500105: '江北区',\n      500106: '沙坪坝区',\n      500107: '九龙坡区',\n      500108: '南岸区',\n      500109: '北碚区',\n      500110: '綦江区',\n      500111: '大足区',\n      500112: '渝北区',\n      500113: '巴南区',\n      500114: '黔江区',\n      500115: '长寿区',\n      500116: '江津区',\n      500117: '合川区',\n      500118: '永川区',\n      500119: '南川区',\n      500120: '璧山区',\n      500151: '铜梁区',\n      500152: '潼南区',\n      500153: '荣昌区',\n      500228: '梁平县',\n      500229: '城口县',\n      500230: '丰都县',\n      500231: '垫江县',\n      500232: '武隆县',\n      500233: '忠县',\n      500234: '开县',\n      500235: '云阳县',\n      500236: '奉节县',\n      500237: '巫山县',\n      500238: '巫溪县',\n      500240: '石柱土家族自治县',\n      500241: '秀山土家族苗族自治县',\n      500242: '酉阳土家族苗族自治县',\n      500243: '彭水苗族土家族自治县'\n    },\n    510000: {\n      510100: '成都市',\n      510300: '自贡市',\n      510400: '攀枝花市',\n      510500: '泸州市',\n      510600: '德阳市',\n      510700: '绵阳市',\n      510800: '广元市',\n      510900: '遂宁市',\n      511000: '内江市',\n      511100: '乐山市',\n      511300: '南充市',\n      511400: '眉山市',\n      511500: '宜宾市',\n      511600: '广安市',\n      511700: '达州市',\n      511800: '雅安市',\n      511900: '巴中市',\n      512000: '资阳市',\n      513200: '阿坝藏族羌族自治州',\n      513300: '甘孜藏族自治州',\n      513400: '凉山彝族自治州'\n    },\n    510100: {\n      510104: '锦江区',\n      510105: '青羊区',\n      510106: '金牛区',\n      510107: '武侯区',\n      510108: '成华区',\n      510112: '龙泉驿区',\n      510113: '青白江区',\n      510114: '新都区',\n      510115: '温江区',\n      510116: '双流区',\n      510121: '金堂县',\n      510124: '郫县',\n      510129: '大邑县',\n      510131: '蒲江县',\n      510132: '新津县',\n      510181: '都江堰市',\n      510182: '彭州市',\n      510183: '邛崃市',\n      510184: '崇州市'\n    },\n    510300: {\n      510302: '自流井区',\n      510303: '贡井区',\n      510304: '大安区',\n      510311: '沿滩区',\n      510321: '荣县',\n      510322: '富顺县'\n    },\n    510400: {\n      510402: '东区',\n      510403: '西区',\n      510411: '仁和区',\n      510421: '米易县',\n      510422: '盐边县'\n    },\n    510500: {\n      510502: '江阳区',\n      510503: '纳溪区',\n      510504: '龙马潭区',\n      510521: '泸县',\n      510522: '合江县',\n      510524: '叙永县',\n      510525: '古蔺县'\n    },\n    510600: {\n      510603: '旌阳区',\n      510623: '中江县',\n      510626: '罗江县',\n      510681: '广汉市',\n      510682: '什邡市',\n      510683: '绵竹市'\n    },\n    510700: {\n      510703: '涪城区',\n      510704: '游仙区',\n      510722: '三台县',\n      510723: '盐亭县',\n      510724: '安县',\n      510725: '梓潼县',\n      510726: '北川羌族自治县',\n      510727: '平武县',\n      510781: '江油市'\n    },\n    510800: {\n      510802: '利州区',\n      510811: '昭化区',\n      510812: '朝天区',\n      510821: '旺苍县',\n      510822: '青川县',\n      510823: '剑阁县',\n      510824: '苍溪县'\n    },\n    510900: {\n      510903: '船山区',\n      510904: '安居区',\n      510921: '蓬溪县',\n      510922: '射洪县',\n      510923: '大英县'\n    },\n    511000: {\n      511002: '市中区',\n      511011: '东兴区',\n      511024: '威远县',\n      511025: '资中县',\n      511028: '隆昌县'\n    },\n    511100: {\n      511102: '市中区',\n      511111: '沙湾区',\n      511112: '五通桥区',\n      511113: '金口河区',\n      511123: '犍为县',\n      511124: '井研县',\n      511126: '夹江县',\n      511129: '沐川县',\n      511132: '峨边彝族自治县',\n      511133: '马边彝族自治县',\n      511181: '峨眉山市'\n    },\n    511300: {\n      511302: '顺庆区',\n      511303: '高坪区',\n      511304: '嘉陵区',\n      511321: '南部县',\n      511322: '营山县',\n      511323: '蓬安县',\n      511324: '仪陇县',\n      511325: '西充县',\n      511381: '阆中市'\n    },\n    511400: {\n      511402: '东坡区',\n      511403: '彭山区',\n      511421: '仁寿县',\n      511423: '洪雅县',\n      511424: '丹棱县',\n      511425: '青神县'\n    },\n    511500: {\n      511502: '翠屏区',\n      511503: '南溪区',\n      511521: '宜宾县',\n      511523: '江安县',\n      511524: '长宁县',\n      511525: '高县',\n      511526: '珙县',\n      511527: '筠连县',\n      511528: '兴文县',\n      511529: '屏山县'\n    },\n    511600: {\n      511602: '广安区',\n      511603: '前锋区',\n      511621: '岳池县',\n      511622: '武胜县',\n      511623: '邻水县',\n      511681: '华蓥市'\n    },\n    511700: {\n      511702: '通川区',\n      511703: '达川区',\n      511722: '宣汉县',\n      511723: '开江县',\n      511724: '大竹县',\n      511725: '渠县',\n      511781: '万源市'\n    },\n    511800: {\n      511802: '雨城区',\n      511803: '名山区',\n      511822: '荥经县',\n      511823: '汉源县',\n      511824: '石棉县',\n      511825: '天全县',\n      511826: '芦山县',\n      511827: '宝兴县'\n    },\n    511900: {\n      511902: '巴州区',\n      511903: '恩阳区',\n      511921: '通江县',\n      511922: '南江县',\n      511923: '平昌县'\n    },\n    512000: {\n      512002: '雁江区',\n      512021: '安岳县',\n      512022: '乐至县',\n      512081: '简阳市'\n    },\n    513200: {\n      513201: '马尔康市',\n      513221: '汶川县',\n      513222: '理县',\n      513223: '茂县',\n      513224: '松潘县',\n      513225: '九寨沟县',\n      513226: '金川县',\n      513227: '小金县',\n      513228: '黑水县',\n      513230: '壤塘县',\n      513231: '阿坝县',\n      513232: '若尔盖县',\n      513233: '红原县'\n    },\n    513300: {\n      513301: '康定市',\n      513322: '泸定县',\n      513323: '丹巴县',\n      513324: '九龙县',\n      513325: '雅江县',\n      513326: '道孚县',\n      513327: '炉霍县',\n      513328: '甘孜县',\n      513329: '新龙县',\n      513330: '德格县',\n      513331: '白玉县',\n      513332: '石渠县',\n      513333: '色达县',\n      513334: '理塘县',\n      513335: '巴塘县',\n      513336: '乡城县',\n      513337: '稻城县',\n      513338: '得荣县'\n    },\n    513400: {\n      513401: '西昌市',\n      513422: '木里藏族自治县',\n      513423: '盐源县',\n      513424: '德昌县',\n      513425: '会理县',\n      513426: '会东县',\n      513427: '宁南县',\n      513428: '普格县',\n      513429: '布拖县',\n      513430: '金阳县',\n      513431: '昭觉县',\n      513432: '喜德县',\n      513433: '冕宁县',\n      513434: '越西县',\n      513435: '甘洛县',\n      513436: '美姑县',\n      513437: '雷波县'\n    },\n    520000: {\n      520100: '贵阳市',\n      520200: '六盘水市',\n      520300: '遵义市',\n      520400: '安顺市',\n      520500: '毕节市',\n      520600: '铜仁市',\n      522300: '黔西南布依族苗族自治州',\n      522600: '黔东南苗族侗族自治州',\n      522700: '黔南布依族苗族自治州'\n    },\n    520100: {\n      520102: '南明区',\n      520103: '云岩区',\n      520111: '花溪区',\n      520112: '乌当区',\n      520113: '白云区',\n      520115: '观山湖区',\n      520121: '开阳县',\n      520122: '息烽县',\n      520123: '修文县',\n      520181: '清镇市'\n    },\n    520200: {\n      520201: '钟山区',\n      520203: '六枝特区',\n      520221: '水城县',\n      520222: '盘县'\n    },\n    520300: {\n      520302: '红花岗区',\n      520303: '汇川区',\n      520321: '遵义县',\n      520322: '桐梓县',\n      520323: '绥阳县',\n      520324: '正安县',\n      520325: '道真仡佬族苗族自治县',\n      520326: '务川仡佬族苗族自治县',\n      520327: '凤冈县',\n      520328: '湄潭县',\n      520329: '余庆县',\n      520330: '习水县',\n      520381: '赤水市',\n      520382: '仁怀市'\n    },\n    520400: {\n      520402: '西秀区',\n      520403: '平坝区',\n      520422: '普定县',\n      520423: '镇宁布依族苗族自治县',\n      520424: '关岭布依族苗族自治县',\n      520425: '紫云苗族布依族自治县'\n    },\n    520500: {\n      520502: '七星关区',\n      520521: '大方县',\n      520522: '黔西县',\n      520523: '金沙县',\n      520524: '织金县',\n      520525: '纳雍县',\n      520526: '威宁彝族回族苗族自治县',\n      520527: '赫章县'\n    },\n    520600: {\n      520602: '碧江区',\n      520603: '万山区',\n      520621: '江口县',\n      520622: '玉屏侗族自治县',\n      520623: '石阡县',\n      520624: '思南县',\n      520625: '印江土家族苗族自治县',\n      520626: '德江县',\n      520627: '沿河土家族自治县',\n      520628: '松桃苗族自治县'\n    },\n    522300: {\n      522301: '兴义市',\n      522322: '兴仁县',\n      522323: '普安县',\n      522324: '晴隆县',\n      522325: '贞丰县',\n      522326: '望谟县',\n      522327: '册亨县',\n      522328: '安龙县'\n    },\n    522600: {\n      522601: '凯里市',\n      522622: '黄平县',\n      522623: '施秉县',\n      522624: '三穗县',\n      522625: '镇远县',\n      522626: '岑巩县',\n      522627: '天柱县',\n      522628: '锦屏县',\n      522629: '剑河县',\n      522630: '台江县',\n      522631: '黎平县',\n      522632: '榕江县',\n      522633: '从江县',\n      522634: '雷山县',\n      522635: '麻江县',\n      522636: '丹寨县'\n    },\n    522700: {\n      522701: '都匀市',\n      522702: '福泉市',\n      522722: '荔波县',\n      522723: '贵定县',\n      522725: '瓮安县',\n      522726: '独山县',\n      522727: '平塘县',\n      522728: '罗甸县',\n      522729: '长顺县',\n      522730: '龙里县',\n      522731: '惠水县',\n      522732: '三都水族自治县'\n    },\n    530000: {\n      530100: '昆明市',\n      530300: '曲靖市',\n      530400: '玉溪市',\n      530500: '保山市',\n      530600: '昭通市',\n      530700: '丽江市',\n      530800: '普洱市',\n      530900: '临沧市',\n      532300: '楚雄彝族自治州',\n      532500: '红河哈尼族彝族自治州',\n      532600: '文山壮族苗族自治州',\n      532800: '西双版纳傣族自治州',\n      532900: '大理白族自治州',\n      533100: '德宏傣族景颇族自治州',\n      533300: '怒江傈僳族自治州',\n      533400: '迪庆藏族自治州'\n    },\n    530100: {\n      530102: '五华区',\n      530103: '盘龙区',\n      530111: '官渡区',\n      530112: '西山区',\n      530113: '东川区',\n      530114: '呈贡区',\n      530122: '晋宁县',\n      530124: '富民县',\n      530125: '宜良县',\n      530126: '石林彝族自治县',\n      530127: '嵩明县',\n      530128: '禄劝彝族苗族自治县',\n      530129: '寻甸回族彝族自治县',\n      530181: '安宁市'\n    },\n    530300: {\n      530302: '麒麟区',\n      530321: '马龙县',\n      530322: '陆良县',\n      530323: '师宗县',\n      530324: '罗平县',\n      530325: '富源县',\n      530326: '会泽县',\n      530328: '沾益县',\n      530381: '宣威市'\n    },\n    530400: {\n      530402: '红塔区',\n      530403: '江川区',\n      530422: '澄江县',\n      530423: '通海县',\n      530424: '华宁县',\n      530425: '易门县',\n      530426: '峨山彝族自治县',\n      530427: '新平彝族傣族自治县',\n      530428: '元江哈尼族彝族傣族自治县'\n    },\n    530500: {\n      530502: '隆阳区',\n      530521: '施甸县',\n      530523: '龙陵县',\n      530524: '昌宁县',\n      530581: '腾冲市'\n    },\n    530600: {\n      530602: '昭阳区',\n      530621: '鲁甸县',\n      530622: '巧家县',\n      530623: '盐津县',\n      530624: '大关县',\n      530625: '永善县',\n      530626: '绥江县',\n      530627: '镇雄县',\n      530628: '彝良县',\n      530629: '威信县',\n      530630: '水富县'\n    },\n    530700: {\n      530702: '古城区',\n      530721: '玉龙纳西族自治县',\n      530722: '永胜县',\n      530723: '华坪县',\n      530724: '宁蒗彝族自治县'\n    },\n    530800: {\n      530802: '思茅区',\n      530821: '宁洱哈尼族彝族自治县',\n      530822: '墨江哈尼族自治县',\n      530823: '景东彝族自治县',\n      530824: '景谷傣族彝族自治县',\n      530825: '镇沅彝族哈尼族拉祜族自治县',\n      530826: '江城哈尼族彝族自治县',\n      530827: '孟连傣族拉祜族佤族自治县',\n      530828: '澜沧拉祜族自治县',\n      530829: '西盟佤族自治县'\n    },\n    530900: {\n      530902: '临翔区',\n      530921: '凤庆县',\n      530922: '云县',\n      530923: '永德县',\n      530924: '镇康县',\n      530925: '双江拉祜族佤族布朗族傣族自治县',\n      530926: '耿马傣族佤族自治县',\n      530927: '沧源佤族自治县'\n    },\n    532300: {\n      532301: '楚雄市',\n      532322: '双柏县',\n      532323: '牟定县',\n      532324: '南华县',\n      532325: '姚安县',\n      532326: '大姚县',\n      532327: '永仁县',\n      532328: '元谋县',\n      532329: '武定县',\n      532331: '禄丰县'\n    },\n    532500: {\n      532501: '个旧市',\n      532502: '开远市',\n      532503: '蒙自市',\n      532504: '弥勒市',\n      532523: '屏边苗族自治县',\n      532524: '建水县',\n      532525: '石屏县',\n      532527: '泸西县',\n      532528: '元阳县',\n      532529: '红河县',\n      532530: '金平苗族瑶族傣族自治县',\n      532531: '绿春县',\n      532532: '河口瑶族自治县'\n    },\n    532600: {\n      532601: '文山市',\n      532622: '砚山县',\n      532623: '西畴县',\n      532624: '麻栗坡县',\n      532625: '马关县',\n      532626: '丘北县',\n      532627: '广南县',\n      532628: '富宁县'\n    },\n    532800: {\n      532801: '景洪市',\n      532822: '勐海县',\n      532823: '勐腊县'\n    },\n    532900: {\n      532901: '大理市',\n      532922: '漾濞彝族自治县',\n      532923: '祥云县',\n      532924: '宾川县',\n      532925: '弥渡县',\n      532926: '南涧彝族自治县',\n      532927: '巍山彝族回族自治县',\n      532928: '永平县',\n      532929: '云龙县',\n      532930: '洱源县',\n      532931: '剑川县',\n      532932: '鹤庆县'\n    },\n    533100: {\n      533102: '瑞丽市',\n      533103: '芒市',\n      533122: '梁河县',\n      533123: '盈江县',\n      533124: '陇川县'\n    },\n    533300: {\n      533321: '泸水县',\n      533323: '福贡县',\n      533324: '贡山独龙族怒族自治县',\n      533325: '兰坪白族普米族自治县'\n    },\n    533400: {\n      533401: '香格里拉市',\n      533422: '德钦县',\n      533423: '维西傈僳族自治县'\n    },\n    540000: {\n      540100: '拉萨市',\n      540200: '日喀则市',\n      540300: '昌都市',\n      540400: '林芝市',\n      542200: '山南地区',\n      542400: '那曲地区',\n      542500: '阿里地区'\n    },\n    540100: {\n      540102: '城关区',\n      540103: '堆龙德庆区',\n      540121: '林周县',\n      540122: '当雄县',\n      540123: '尼木县',\n      540124: '曲水县',\n      540126: '达孜县',\n      540127: '墨竹工卡县'\n    },\n    540200: {\n      540202: '桑珠孜区',\n      540221: '南木林县',\n      540222: '江孜县',\n      540223: '定日县',\n      540224: '萨迦县',\n      540225: '拉孜县',\n      540226: '昂仁县',\n      540227: '谢通门县',\n      540228: '白朗县',\n      540229: '仁布县',\n      540230: '康马县',\n      540231: '定结县',\n      540232: '仲巴县',\n      540233: '亚东县',\n      540234: '吉隆县',\n      540235: '聂拉木县',\n      540236: '萨嘎县',\n      540237: '岗巴县'\n    },\n    540300: {\n      540302: '卡若区',\n      540321: '江达县',\n      540322: '贡觉县',\n      540323: '类乌齐县',\n      540324: '丁青县',\n      540325: '察雅县',\n      540326: '八宿县',\n      540327: '左贡县',\n      540328: '芒康县',\n      540329: '洛隆县',\n      540330: '边坝县'\n    },\n    540400: {\n      540402: '巴宜区',\n      540421: '工布江达县',\n      540422: '米林县',\n      540423: '墨脱县',\n      540424: '波密县',\n      540425: '察隅县',\n      540426: '朗县'\n    },\n    542200: {\n      542221: '乃东县',\n      542222: '扎囊县',\n      542223: '贡嘎县',\n      542224: '桑日县',\n      542225: '琼结县',\n      542226: '曲松县',\n      542227: '措美县',\n      542228: '洛扎县',\n      542229: '加查县',\n      542231: '隆子县',\n      542232: '错那县',\n      542233: '浪卡子县'\n    },\n    542400: {\n      542421: '那曲县',\n      542422: '嘉黎县',\n      542423: '比如县',\n      542424: '聂荣县',\n      542425: '安多县',\n      542426: '申扎县',\n      542427: '索县',\n      542428: '班戈县',\n      542429: '巴青县',\n      542430: '尼玛县',\n      542431: '双湖县'\n    },\n    542500: {\n      542521: '普兰县',\n      542522: '札达县',\n      542523: '噶尔县',\n      542524: '日土县',\n      542525: '革吉县',\n      542526: '改则县',\n      542527: '措勤县'\n    },\n    610000: {\n      610100: '西安市',\n      610200: '铜川市',\n      610300: '宝鸡市',\n      610400: '咸阳市',\n      610500: '渭南市',\n      610600: '延安市',\n      610700: '汉中市',\n      610800: '榆林市',\n      610900: '安康市',\n      611000: '商洛市'\n    },\n    610100: {\n      610102: '新城区',\n      610103: '碑林区',\n      610104: '莲湖区',\n      610111: '灞桥区',\n      610112: '未央区',\n      610113: '雁塔区',\n      610114: '阎良区',\n      610115: '临潼区',\n      610116: '长安区',\n      610117: '高陵区',\n      610122: '蓝田县',\n      610124: '周至县',\n      610125: '户县'\n    },\n    610200: {\n      610202: '王益区',\n      610203: '印台区',\n      610204: '耀州区',\n      610222: '宜君县'\n    },\n    610300: {\n      610302: '渭滨区',\n      610303: '金台区',\n      610304: '陈仓区',\n      610322: '凤翔县',\n      610323: '岐山县',\n      610324: '扶风县',\n      610326: '眉县',\n      610327: '陇县',\n      610328: '千阳县',\n      610329: '麟游县',\n      610330: '凤县',\n      610331: '太白县'\n    },\n    610400: {\n      610402: '秦都区',\n      610403: '杨陵区',\n      610404: '渭城区',\n      610422: '三原县',\n      610423: '泾阳县',\n      610424: '乾县',\n      610425: '礼泉县',\n      610426: '永寿县',\n      610427: '彬县',\n      610428: '长武县',\n      610429: '旬邑县',\n      610430: '淳化县',\n      610431: '武功县',\n      610481: '兴平市'\n    },\n    610500: {\n      610502: '临渭区',\n      610503: '华州区',\n      610522: '潼关县',\n      610523: '大荔县',\n      610524: '合阳县',\n      610525: '澄城县',\n      610526: '蒲城县',\n      610527: '白水县',\n      610528: '富平县',\n      610581: '韩城市',\n      610582: '华阴市'\n    },\n    610600: {\n      610602: '宝塔区',\n      610621: '延长县',\n      610622: '延川县',\n      610623: '子长县',\n      610624: '安塞县',\n      610625: '志丹县',\n      610626: '吴起县',\n      610627: '甘泉县',\n      610628: '富县',\n      610629: '洛川县',\n      610630: '宜川县',\n      610631: '黄龙县',\n      610632: '黄陵县'\n    },\n    610700: {\n      610702: '汉台区',\n      610721: '南郑县',\n      610722: '城固县',\n      610723: '洋县',\n      610724: '西乡县',\n      610725: '勉县',\n      610726: '宁强县',\n      610727: '略阳县',\n      610728: '镇巴县',\n      610729: '留坝县',\n      610730: '佛坪县'\n    },\n    610800: {\n      610802: '榆阳区',\n      610803: '横山区',\n      610821: '神木县',\n      610822: '府谷县',\n      610824: '靖边县',\n      610825: '定边县',\n      610826: '绥德县',\n      610827: '米脂县',\n      610828: '佳县',\n      610829: '吴堡县',\n      610830: '清涧县',\n      610831: '子洲县'\n    },\n    610900: {\n      610902: '汉滨区',\n      610921: '汉阴县',\n      610922: '石泉县',\n      610923: '宁陕县',\n      610924: '紫阳县',\n      610925: '岚皋县',\n      610926: '平利县',\n      610927: '镇坪县',\n      610928: '旬阳县',\n      610929: '白河县'\n    },\n    611000: {\n      611002: '商州区',\n      611021: '洛南县',\n      611022: '丹凤县',\n      611023: '商南县',\n      611024: '山阳县',\n      611025: '镇安县',\n      611026: '柞水县'\n    },\n    620000: {\n      620100: '兰州市',\n      620200: '嘉峪关市',\n      620300: '金昌市',\n      620400: '白银市',\n      620500: '天水市',\n      620600: '武威市',\n      620700: '张掖市',\n      620800: '平凉市',\n      620900: '酒泉市',\n      621000: '庆阳市',\n      621100: '定西市',\n      621200: '陇南市',\n      622900: '临夏回族自治州',\n      623000: '甘南藏族自治州'\n    },\n    620100: {\n      620102: '城关区',\n      620103: '七里河区',\n      620104: '西固区',\n      620105: '安宁区',\n      620111: '红古区',\n      620121: '永登县',\n      620122: '皋兰县',\n      620123: '榆中县'\n    },\n    620300: {\n      620302: '金川区',\n      620321: '永昌县'\n    },\n    620400: {\n      620402: '白银区',\n      620403: '平川区',\n      620421: '靖远县',\n      620422: '会宁县',\n      620423: '景泰县'\n    },\n    620500: {\n      620502: '秦州区',\n      620503: '麦积区',\n      620521: '清水县',\n      620522: '秦安县',\n      620523: '甘谷县',\n      620524: '武山县',\n      620525: '张家川回族自治县'\n    },\n    620600: {\n      620602: '凉州区',\n      620621: '民勤县',\n      620622: '古浪县',\n      620623: '天祝藏族自治县'\n    },\n    620700: {\n      620702: '甘州区',\n      620721: '肃南裕固族自治县',\n      620722: '民乐县',\n      620723: '临泽县',\n      620724: '高台县',\n      620725: '山丹县'\n    },\n    620800: {\n      620802: '崆峒区',\n      620821: '泾川县',\n      620822: '灵台县',\n      620823: '崇信县',\n      620824: '华亭县',\n      620825: '庄浪县',\n      620826: '静宁县'\n    },\n    620900: {\n      620902: '肃州区',\n      620921: '金塔县',\n      620922: '瓜州县',\n      620923: '肃北蒙古族自治县',\n      620924: '阿克塞哈萨克族自治县',\n      620981: '玉门市',\n      620982: '敦煌市'\n    },\n    621000: {\n      621002: '西峰区',\n      621021: '庆城县',\n      621022: '环县',\n      621023: '华池县',\n      621024: '合水县',\n      621025: '正宁县',\n      621026: '宁县',\n      621027: '镇原县'\n    },\n    621100: {\n      621102: '安定区',\n      621121: '通渭县',\n      621122: '陇西县',\n      621123: '渭源县',\n      621124: '临洮县',\n      621125: '漳县',\n      621126: '岷县'\n    },\n    621200: {\n      621202: '武都区',\n      621221: '成县',\n      621222: '文县',\n      621223: '宕昌县',\n      621224: '康县',\n      621225: '西和县',\n      621226: '礼县',\n      621227: '徽县',\n      621228: '两当县'\n    },\n    622900: {\n      622901: '临夏市',\n      622921: '临夏县',\n      622922: '康乐县',\n      622923: '永靖县',\n      622924: '广河县',\n      622925: '和政县',\n      622926: '东乡族自治县',\n      622927: '积石山保安族东乡族撒拉族自治县'\n    },\n    623000: {\n      623001: '合作市',\n      623021: '临潭县',\n      623022: '卓尼县',\n      623023: '舟曲县',\n      623024: '迭部县',\n      623025: '玛曲县',\n      623026: '碌曲县',\n      623027: '夏河县'\n    },\n    630000: {\n      630100: '西宁市',\n      630200: '海东市',\n      632200: '海北藏族自治州',\n      632300: '黄南藏族自治州',\n      632500: '海南藏族自治州',\n      632600: '果洛藏族自治州',\n      632700: '玉树藏族自治州',\n      632800: '海西蒙古族藏族自治州'\n    },\n    630100: {\n      630102: '城东区',\n      630103: '城中区',\n      630104: '城西区',\n      630105: '城北区',\n      630121: '大通回族土族自治县',\n      630122: '湟中县',\n      630123: '湟源县'\n    },\n    630200: {\n      630202: '乐都区',\n      630203: '平安区',\n      630222: '民和回族土族自治县',\n      630223: '互助土族自治县',\n      630224: '化隆回族自治县',\n      630225: '循化撒拉族自治县'\n    },\n    632200: {\n      632221: '门源回族自治县',\n      632222: '祁连县',\n      632223: '海晏县',\n      632224: '刚察县'\n    },\n    632300: {\n      632321: '同仁县',\n      632322: '尖扎县',\n      632323: '泽库县',\n      632324: '河南蒙古族自治县'\n    },\n    632500: {\n      632521: '共和县',\n      632522: '同德县',\n      632523: '贵德县',\n      632524: '兴海县',\n      632525: '贵南县'\n    },\n    632600: {\n      632621: '玛沁县',\n      632622: '班玛县',\n      632623: '甘德县',\n      632624: '达日县',\n      632625: '久治县',\n      632626: '玛多县'\n    },\n    632700: {\n      632701: '玉树市',\n      632722: '杂多县',\n      632723: '称多县',\n      632724: '治多县',\n      632725: '囊谦县',\n      632726: '曲麻莱县'\n    },\n    632800: {\n      632801: '格尔木市',\n      632802: '德令哈市',\n      632821: '乌兰县',\n      632822: '都兰县',\n      632823: '天峻县',\n      632825: '海西蒙古族藏族自治州直辖'\n    },\n    640000: {\n      640100: '银川市',\n      640200: '石嘴山市',\n      640300: '吴忠市',\n      640400: '固原市',\n      640500: '中卫市'\n    },\n    640100: {\n      640104: '兴庆区',\n      640105: '西夏区',\n      640106: '金凤区',\n      640121: '永宁县',\n      640122: '贺兰县',\n      640181: '灵武市'\n    },\n    640200: {\n      640202: '大武口区',\n      640205: '惠农区',\n      640221: '平罗县'\n    },\n    640300: {\n      640302: '利通区',\n      640303: '红寺堡区',\n      640323: '盐池县',\n      640324: '同心县',\n      640381: '青铜峡市'\n    },\n    640400: {\n      640402: '原州区',\n      640422: '西吉县',\n      640423: '隆德县',\n      640424: '泾源县',\n      640425: '彭阳县'\n    },\n    640500: {\n      640502: '沙坡头区',\n      640521: '中宁县',\n      640522: '海原县'\n    },\n    650000: {\n      650100: '乌鲁木齐市',\n      650200: '克拉玛依市',\n      650400: '吐鲁番市',\n      652200: '哈密地区',\n      652300: '昌吉回族自治州',\n      652700: '博尔塔拉蒙古自治州',\n      652800: '巴音郭楞蒙古自治州',\n      652900: '阿克苏地区',\n      653000: '克孜勒苏柯尔克孜自治州',\n      653100: '喀什地区',\n      653200: '和田地区',\n      654000: '伊犁哈萨克自治州',\n      654200: '塔城地区',\n      654300: '阿勒泰地区',\n      659001: '石河子市',\n      659002: '阿拉尔市',\n      659003: '图木舒克市',\n      659004: '五家渠市',\n      659005: '北屯市',\n      659006: '铁门关市',\n      659007: '双河市',\n      659008: '可克达拉市'\n    },\n    650100: {\n      650102: '天山区',\n      650103: '沙依巴克区',\n      650104: '新市区',\n      650105: '水磨沟区',\n      650106: '头屯河区',\n      650107: '达坂城区',\n      650109: '米东区',\n      650121: '乌鲁木齐县'\n    },\n    650200: {\n      650202: '独山子区',\n      650203: '克拉玛依区',\n      650204: '白碱滩区',\n      650205: '乌尔禾区'\n    },\n    650400: {\n      650402: '高昌区',\n      650421: '鄯善县',\n      650422: '托克逊县'\n    },\n    652200: {\n      652201: '哈密市',\n      652222: '巴里坤哈萨克自治县',\n      652223: '伊吾县'\n    },\n    652300: {\n      652301: '昌吉市',\n      652302: '阜康市',\n      652323: '呼图壁县',\n      652324: '玛纳斯县',\n      652325: '奇台县',\n      652327: '吉木萨尔县',\n      652328: '木垒哈萨克自治县'\n    },\n    652700: {\n      652701: '博乐市',\n      652702: '阿拉山口市',\n      652722: '精河县',\n      652723: '温泉县'\n    },\n    652800: {\n      652801: '库尔勒市',\n      652822: '轮台县',\n      652823: '尉犁县',\n      652824: '若羌县',\n      652825: '且末县',\n      652826: '焉耆回族自治县',\n      652827: '和静县',\n      652828: '和硕县',\n      652829: '博湖县'\n    },\n    652900: {\n      652901: '阿克苏市',\n      652922: '温宿县',\n      652923: '库车县',\n      652924: '沙雅县',\n      652925: '新和县',\n      652926: '拜城县',\n      652927: '乌什县',\n      652928: '阿瓦提县',\n      652929: '柯坪县'\n    },\n    653000: {\n      653001: '阿图什市',\n      653022: '阿克陶县',\n      653023: '阿合奇县',\n      653024: '乌恰县'\n    },\n    653100: {\n      653101: '喀什市',\n      653121: '疏附县',\n      653122: '疏勒县',\n      653123: '英吉沙县',\n      653124: '泽普县',\n      653125: '莎车县',\n      653126: '叶城县',\n      653127: '麦盖提县',\n      653128: '岳普湖县',\n      653129: '伽师县',\n      653130: '巴楚县',\n      653131: '塔什库尔干塔吉克自治县'\n    },\n    653200: {\n      653201: '和田市',\n      653221: '和田县',\n      653222: '墨玉县',\n      653223: '皮山县',\n      653224: '洛浦县',\n      653225: '策勒县',\n      653226: '于田县',\n      653227: '民丰县'\n    },\n    654000: {\n      654002: '伊宁市',\n      654003: '奎屯市',\n      654004: '霍尔果斯市',\n      654021: '伊宁县',\n      654022: '察布查尔锡伯自治县',\n      654023: '霍城县',\n      654024: '巩留县',\n      654025: '新源县',\n      654026: '昭苏县',\n      654027: '特克斯县',\n      654028: '尼勒克县'\n    },\n    654200: {\n      654201: '塔城市',\n      654202: '乌苏市',\n      654221: '额敏县',\n      654223: '沙湾县',\n      654224: '托里县',\n      654225: '裕民县',\n      654226: '和布克赛尔蒙古自治县'\n    },\n    654300: {\n      654301: '阿勒泰市',\n      654321: '布尔津县',\n      654322: '富蕴县',\n      654323: '福海县',\n      654324: '哈巴河县',\n      654325: '青河县',\n      654326: '吉木乃县'\n    },\n    810000: {\n      810001: '中西区',\n      810002: '湾仔区',\n      810003: '东区',\n      810004: '南区',\n      810005: '油尖旺区',\n      810006: '深水埗区',\n      810007: '九龙城区',\n      810008: '黄大仙区',\n      810009: '观塘区',\n      810010: '荃湾区',\n      810011: '屯门区',\n      810012: '元朗区',\n      810013: '北区',\n      810014: '大埔区',\n      810015: '西贡区',\n      810016: '沙田区',\n      810017: '葵青区',\n      810018: '离岛区'\n    },\n    820000: {\n      820001: '花地玛堂区',\n      820002: '花王堂区',\n      820003: '望德堂区',\n      820004: '大堂区',\n      820005: '风顺堂区',\n      820006: '嘉模堂区',\n      820007: '路凼填海区',\n      820008: '圣方济各堂区'\n    }\n  };\n\n  if (typeof window !== 'undefined') {\n    window.ChineseDistricts = ChineseDistricts;\n  }\n\n  return ChineseDistricts;\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/citys/js/distpicker.js",
    "content": "/*!\n * Distpicker v1.0.4\n * https://github.com/fengyuanchen/distpicker\n *\n * Copyright (c) 2014-2016 Fengyuan Chen\n * Released under the MIT license\n *\n * Date: 2016-06-01T15:05:52.606Z\n */\n\n(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as anonymous module.\n    define(['jquery', 'ChineseDistricts'], factory);\n  } else if (typeof exports === 'object') {\n    // Node / CommonJS\n    factory(require('jquery'), require('ChineseDistricts'));\n  } else {\n    // Browser globals.\n    factory(jQuery, ChineseDistricts);\n  }\n})(function ($, ChineseDistricts) {\n\n  'use strict';\n\n  if (typeof ChineseDistricts === 'undefined') {\n    throw new Error('The file \"distpicker.data.js\" must be included first!');\n  }\n\n  var NAMESPACE = 'distpicker';\n  var EVENT_CHANGE = 'change.' + NAMESPACE;\n  var PROVINCE = 'province';\n  var CIRY = 'city';\n  var DISTRICT = 'district';\n\n  function Distpicker(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, Distpicker.DEFAULTS, $.isPlainObject(options) && options);\n    this.placeholders = $.extend({}, Distpicker.DEFAULTS);\n    this.active = false;\n    this.init();\n  }\n\n  Distpicker.prototype = {\n    constructor: Distpicker,\n\n    init: function () {\n      var options = this.options;\n      var $select = this.$element.find('select');\n      var length = $select.length;\n      var data = {};\n\n      $select.each(function () {\n        $.extend(data, $(this).data());\n      });\n\n      $.each([PROVINCE, CIRY, DISTRICT], $.proxy(function (i, type) {\n        if (data[type]) {\n          options[type] = data[type];\n          this['$' + type] = $select.filter('[data-' + type + ']');\n        } else {\n          this['$' + type] = length > i ? $select.eq(i) : null;\n        }\n      }, this));\n\n      this.bind();\n\n      // Reset all the selects (after event binding)\n      this.reset();\n\n      this.active = true;\n    },\n\n    bind: function () {\n      if (this.$province) {\n        this.$province.on(EVENT_CHANGE, (this._changeProvince = $.proxy(function () {\n          this.output(CIRY);\n          this.output(DISTRICT);\n        }, this)));\n      }\n\n      if (this.$city) {\n        this.$city.on(EVENT_CHANGE, (this._changeCity = $.proxy(function () {\n          this.output(DISTRICT);\n        }, this)));\n      }\n    },\n\n    unbind: function () {\n      if (this.$province) {\n        this.$province.off(EVENT_CHANGE, this._changeProvince);\n      }\n\n      if (this.$city) {\n        this.$city.off(EVENT_CHANGE, this._changeCity);\n      }\n    },\n\n    output: function (type) {\n      var options = this.options;\n      var placeholders = this.placeholders;\n      var $select = this['$' + type];\n      var districts = {};\n      var data = [];\n      var code;\n      var matched;\n      var value;\n\n      if (!$select || !$select.length) {\n        return;\n      }\n\n      value = options[type];\n\n      code = (\n        type === PROVINCE ? 86 :\n        type === CIRY ? this.$province && this.$province.find(':selected').data('code') :\n        type === DISTRICT ? this.$city && this.$city.find(':selected').data('code') : code\n      );\n\n      districts = $.isNumeric(code) ? ChineseDistricts[code] : null;\n\n      if ($.isPlainObject(districts)) {\n        $.each(districts, function (code, address) {\n          var selected = address === value;\n\n          if (selected) {\n            matched = true;\n          }\n\n          data.push({\n            code: code,\n            address: address,\n            selected: selected\n          });\n        });\n      }\n\n      if (!matched) {\n        if (data.length && (options.autoSelect || options.autoselect)) {\n          data[0].selected = true;\n        }\n\n        // Save the unmatched value as a placeholder at the first output\n        if (!this.active && value) {\n          placeholders[type] = value;\n        }\n      }\n\n      // Add placeholder option\n      if (options.placeholder) {\n        data.unshift({\n          code: '',\n          address: placeholders[type],\n          selected: false\n        });\n      }\n\n      $select.html(this.getList(data));\n    },\n\n    getList: function (data) {\n      var list = [];\n\n      $.each(data, function (i, n) {\n        list.push(\n          '<option' +\n          ' value=\"' + (n.address && n.code ? n.address : '') + '\"' +\n          ' data-code=\"' + (n.code || '') + '\"' +\n          (n.selected ? ' selected' : '') +\n          '>' +\n            (n.address || '') +\n          '</option>'\n        );\n      });\n\n      return list.join('');\n    },\n\n    reset: function (deep) {\n      if (!deep) {\n        this.output(PROVINCE);\n        this.output(CIRY);\n        this.output(DISTRICT);\n      } else if (this.$province) {\n        this.$province.find(':first').prop('selected', true).trigger(EVENT_CHANGE);\n      }\n    },\n\n    destroy: function () {\n      this.unbind();\n      this.$element.removeData(NAMESPACE);\n    }\n  };\n\n  Distpicker.DEFAULTS = {\n    autoSelect: true,\n    placeholder: true,\n    province: '请选择',\n    city: '请选择',\n    district: '请选择'\n  };\n\n  Distpicker.setDefaults = function (options) {\n    $.extend(Distpicker.DEFAULTS, options);\n  };\n\n  // Save the other distpicker\n  Distpicker.other = $.fn.distpicker;\n\n  // Register as jQuery plugin\n  $.fn.distpicker = function (option) {\n    var args = [].slice.call(arguments, 1);\n\n    return this.each(function () {\n      var $this = $(this);\n      var data = $this.data(NAMESPACE);\n      var options;\n      var fn;\n\n      if (!data) {\n        if (/destroy/.test(option)) {\n          return;\n        }\n\n        options = $.extend({}, $this.data(), $.isPlainObject(option) && option);\n        $this.data(NAMESPACE, (data = new Distpicker(this, options)));\n      }\n\n      if (typeof option === 'string' && $.isFunction(fn = data[option])) {\n        fn.apply(data, args);\n      }\n    });\n  };\n\n  $.fn.distpicker.Constructor = Distpicker;\n  $.fn.distpicker.setDefaults = Distpicker.setDefaults;\n\n  // No conflict\n  $.fn.distpicker.noConflict = function () {\n    $.fn.distpicker = Distpicker.other;\n    return this;\n  };\n\n  $(function () {\n    $('[data-toggle=\"distpicker\"]').distpicker();\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/citys/js/main.js",
    "content": "$(function () {\n\n  'use strict';\n\n  var $distpicker = $('#distpicker');\n\n  $distpicker.distpicker({\n    province: '福建省',\n    city: '厦门市',\n    district: '思明区'\n  });\n\n  $('#reset').click(function () {\n    $distpicker.distpicker('reset');\n  });\n\n  $('#reset-deep').click(function () {\n    $distpicker.distpicker('reset', true);\n  });\n\n  $('#destroy').click(function () {\n    $distpicker.distpicker('destroy');\n  });\n\n  $('#distpicker1').distpicker();\n\n  $('#distpicker2').distpicker({\n    province: '---- 所在省 ----',\n    city: '---- 所在市 ----',\n    district: '---- 所在区 ----'\n  });\n\n  $('#distpicker3').distpicker({\n    province: '浙江省',\n    city: '杭州市',\n    district: '西湖区'\n  });\n\n  $('#distpicker4').distpicker({\n    placeholder: false\n  });\n\n  $('#distpicker5').distpicker({\n    autoSelect: false\n  });\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/cityselect/css/main.css",
    "content": "@charset \"utf-8\";\n/* CSS Document */\nhtml,body,div,span,h1,h2,h3,h4,h5,h6,p,pre,a,code,em,img,small,strong,sub,sup,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}\na{color:#007bc4/*#424242*/; text-decoration:none;}\na:hover{text-decoration:underline}\nol,ul{list-style:none}\ntable{border-collapse:collapse;border-spacing:0}\nbody{height:100%; font:12px/18px \"Microsoft Yahei\", Tahoma, Helvetica, Arial, Verdana, \"\\5b8b\\4f53\", sans-serif; color:#51555C; background:#FFFFFF;}\nimg{border:none}\n\n\n#main{width:980px; min-height:600px; margin:30px auto 0 auto; background:#fff; -moz-border-radius:12px;-khtml-border-radius: 12px;-webkit-border-radius: 12px; border-radius:12px;}\nh2.top_title{margin:4px 20px; padding-top:15px; padding-left:20px; padding-bottom:10px; border-bottom:1px solid #d3d3d3; font-size:18px; color:#a84c10;}\n\n#footer{height:60px;}\n#footer p{ padding:10px 2px; line-height:24px; text-align:center}\n#footer p a:hover{color:#51555C}\n#stat{display:none}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/cityselect/js/jquery.cityselect.js",
    "content": "/**\n * \n * @Description: 省市区三级联动api\n * Copyright: Copyright (c) 2016\n * \n * ==============================\n * 参数说明\n * url:省市数据josn文件路径\n * prov:默认省份\n * city:默认城市\n * dist:默认地区（县）\n * nodata:无数据状态\n * required:必选项\n * ==============================\n * \n * @author leechenxiang\n * @date 2016年6月16日 下午3:46:58\n * @version V1.0\n */\n\n(function($){\n\t$.fn.citySelect=function(settings){\n\t\tif(this.length<1){return;};\n\t\t\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\n\t\t// 默认值\n\t\tsettings=$.extend({\n\t\t\turl: hdnContextPath + \"/common/getCities\",\n\t\t\tprov:null,\n\t\t\tcity:null,\n\t\t\tdist:null,\n\t\t\tnodata:null,\n\t\t\trequired:true\n\t\t},settings);\n\n\t\tvar box_obj=this;\n\t\tvar prov_obj=box_obj.find(\".prov\");\n\t\tvar city_obj=box_obj.find(\".city\");\n\t\tvar dist_obj=box_obj.find(\".dist\");\n\t\tvar prov_val=settings.prov;\n\t\tvar city_val=settings.city;\n\t\tvar dist_val=settings.dist;\n\t\tvar select_prehtml=(settings.required) ? \"\" : \"<option value=''>请选择</option>\";\n\t\tvar city_json;\n\n\t\t// 赋值市级函数\n\t\tvar cityStart=function(){\n\t\t\tvar prov_id=prov_obj.get(0).selectedIndex;\n\t\t\tif(!settings.required){\n\t\t\t\tprov_id--;\n\t\t\t};\n\t\t\tcity_obj.empty().attr(\"disabled\",true);\n\t\t\tdist_obj.empty().attr(\"disabled\",true);\n\n\t\t\tif(prov_id<0||typeof(city_json.citylist[prov_id].c)==\"undefined\"){\n\t\t\t\tif(settings.nodata==\"none\"){\n\t\t\t\t\tcity_obj.css(\"display\",\"none\");\n\t\t\t\t\tdist_obj.css(\"display\",\"none\");\n\t\t\t\t}else if(settings.nodata==\"hidden\"){\n\t\t\t\t\tcity_obj.css(\"visibility\",\"hidden\");\n\t\t\t\t\tdist_obj.css(\"visibility\",\"hidden\");\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t};\n\t\t\t\n\t\t\t// 遍历赋值市级下拉列表\n\t\t\ttemp_html=select_prehtml;\n\t\t\t$.each(city_json.citylist[prov_id].c,function(i,city){\n\t\t\t\ttemp_html+=\"<option value='\"+city.n+\"'>\"+city.n+\"</option>\";\n\t\t\t});\n\t\t\tcity_obj.html(temp_html).attr(\"disabled\",false).css({\"display\":\"\",\"visibility\":\"\"});\n\t\t\tdistStart();\n\t\t};\n\n\t\t// 赋值地区（县）函数\n\t\tvar distStart=function(){\n\t\t\tvar prov_id=prov_obj.get(0).selectedIndex;\n\t\t\tvar city_id=city_obj.get(0).selectedIndex;\n\t\t\tif(!settings.required){\n\t\t\t\tprov_id--;\n\t\t\t\tcity_id--;\n\t\t\t};\n\t\t\tdist_obj.empty().attr(\"disabled\",true);\n\n\t\t\tif(prov_id<0||city_id<0||typeof(city_json.citylist[prov_id].c[city_id].a)==\"undefined\"){\n\t\t\t\tif(settings.nodata==\"none\"){\n\t\t\t\t\tdist_obj.css(\"display\",\"none\");\n\t\t\t\t}else if(settings.nodata==\"hidden\"){\n\t\t\t\t\tdist_obj.css(\"visibility\",\"hidden\");\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t};\n\t\t\t\n\t\t\t// 遍历赋值市级下拉列表\n\t\t\ttemp_html=select_prehtml;\n\t\t\t$.each(city_json.citylist[prov_id].c[city_id].a,function(i,dist){\n\t\t\t\ttemp_html+=\"<option value='\"+dist.s+\"'>\"+dist.s+\"</option>\";\n\t\t\t});\n\t\t\tdist_obj.html(temp_html).attr(\"disabled\",false).css({\"display\":\"\",\"visibility\":\"\"});\n\t\t};\n\n\t\tvar init=function(){\n\t\t\t// 遍历赋值省份下拉列表\n\t\t\ttemp_html=select_prehtml;\n\t\t\t$.each(city_json.citylist,function(i,prov){\n\t\t\t\ttemp_html+=\"<option value='\"+prov.p+\"'>\"+prov.p+\"</option>\";\n\t\t\t});\n\t\t\tprov_obj.html(temp_html);\n\n\t\t\t// 若有传入省份与市级的值，则选中。（setTimeout为兼容IE6而设置）\n\t\t\tsetTimeout(function(){\n\t\t\t\tif(settings.prov!=null){\n\t\t\t\t\tprov_obj.val(settings.prov);\n\t\t\t\t\tcityStart();\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif(settings.city!=null){\n\t\t\t\t\t\t\tcity_obj.val(settings.city);\n\t\t\t\t\t\t\tdistStart();\n\t\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t\tif(settings.dist!=null){\n\t\t\t\t\t\t\t\t\tdist_obj.val(settings.dist);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},1);\n\t\t\t\t\t\t};\n\t\t\t\t\t},1);\n\t\t\t\t};\n\t\t\t},1);\n\n\t\t\t// 选择省份时发生事件\n\t\t\tprov_obj.bind(\"change\",function(){\n\t\t\t\tcityStart();\n\t\t\t});\n\n\t\t\t// 选择市级时发生事件\n\t\t\tcity_obj.bind(\"change\",function(){\n\t\t\t\tdistStart();\n\t\t\t});\n\t\t};\n\n\t\t// 设置省市json数据\n\t\tif(typeof(settings.url)==\"string\"){\n\t\t\t$.getJSON(settings.url,function(json){\n\t\t\t\tcity_json=json;\n\t\t\t\tinit();\n\t\t\t});\n\t\t}else{\n\t\t\tcity_json=settings.url;\n\t\t\tinit();\n\t\t};\n\t};\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/cityselect/js/jquery.js",
    "content": "/*!\n * jQuery JavaScript Library v1.4.2\n * http://jquery.com/\n *\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n * Copyright 2010, The Dojo Foundation\n * Released under the MIT, BSD, and GPL Licenses.\n *\n * Date: Sat Feb 13 22:33:48 2010 -0500\n */\n(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll(\"left\")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:\"script\"}):c.globalEval(b.text||b.textContent||b.innerHTML||\"\");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b===\"object\"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?\ne(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,\"events\");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type===\"click\")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,\"\")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=\nj.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType===\"mouseenter\"||i.preType===\"mouseleave\")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return\"live.\"+(a&&a!==\"*\"?a+\".\":\"\")+b.replace(/\\./g,\"`\").replace(/ /g,\n\"&\")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]===\"string\"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=\ntrue;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return\"scrollTo\"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\\w\\W]+>)[^>]*$|^#([\\w-]+)$/,Ua=/^.[^:#\\[\\.,]*$/,Va=/\\S/,\nWa=/^(\\s|\\u00A0)+|(\\s|\\u00A0)+$/g,Xa=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a===\"body\"&&!b){this.context=s;this[0]=s.body;this.selector=\"body\";this.length=1;return this}if(typeof a===\"string\")if((d=Ta.exec(a))&&\n(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,\na)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:\"\",jquery:\"1.4.2\",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===\n\"find\")f.selector=this.selector+(this.selector?\" \":\"\")+d;else if(b)f.selector=this.selector+\".\"+b+\"(\"+d+\")\";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),\"slice\",R.call(arguments).join(\",\"))},map:function(a){return this.pushStack(c.map(this,\nfunction(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a===\"boolean\"){f=a;a=arguments[1]||{};b=2}if(typeof a!==\"object\"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||\nc.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler(\"ready\")}},bindReady:function(){if(!xa){xa=true;if(s.readyState===\"complete\")return c.ready();if(s.addEventListener){s.addEventListener(\"DOMContentLoaded\",\nL,false);A.addEventListener(\"load\",c.ready,false)}else if(s.attachEvent){s.attachEvent(\"onreadystatechange\",L);A.attachEvent(\"onload\",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)===\"[object Function]\"},isArray:function(a){return $.call(a)===\"[object Array]\"},isPlainObject:function(a){if(!a||$.call(a)!==\"[object Object]\"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,\"constructor\")&&!aa.call(a.constructor.prototype,\n\"isPrototypeOf\"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!==\"string\"||!a)return null;a=c.trim(a);if(/^[\\],:{}\\s]*$/.test(a.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,\"@\").replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\"]\").replace(/(?:^|:|,)(?:\\s*\\[)+/g,\"\")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function(\"return \"+\na))();else c.error(\"Invalid JSON: \"+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName(\"head\")[0]||s.documentElement,d=s.createElement(\"script\");d.type=\"text/javascript\";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],\nd)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||\"\").replace(Wa,\"\")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a===\"string\"||c.isFunction(a)||typeof a!==\"function\"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===\na)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length===\"number\")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b===\"string\"){d=a;a=d[b];b=w}else if(b&&\n!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \\/]([\\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \\/]([\\w.]+)/.exec(a)||/(msie) ([\\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\\w.]+))?/.exec(a)||[];return{browser:a[1]||\"\",version:a[2]||\"0\"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=\ntrue;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener(\"DOMContentLoaded\",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState===\"complete\"){s.detachEvent(\"onreadystatechange\",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement(\"script\"),d=s.createElement(\"div\"),f=\"script\"+J();d.style.display=\"none\";d.innerHTML=\"   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>\";\nvar e=d.getElementsByTagName(\"*\"),j=d.getElementsByTagName(\"a\")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName(\"tbody\").length,htmlSerialize:!!d.getElementsByTagName(\"link\").length,style:/red/.test(j.getAttribute(\"style\")),hrefNormalized:j.getAttribute(\"href\")===\"/a\",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName(\"input\")[0].value===\"on\",optSelected:s.createElement(\"select\").appendChild(s.createElement(\"option\")).selected,\nparentNode:d.removeChild(d.appendChild(s.createElement(\"div\"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type=\"text/javascript\";try{b.appendChild(s.createTextNode(\"window.\"+f+\"=1;\"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent(\"onclick\",function k(){c.support.noCloneEvent=\nfalse;d.detachEvent(\"onclick\",k)});d.cloneNode(true).fireEvent(\"onclick\")}d=s.createElement(\"div\");d.innerHTML=\"<input type='radio' name='radiotest' checked='checked'/>\";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement(\"div\");k.style.width=k.style.paddingLeft=\"1px\";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display=\"none\"});a=function(k){var n=\ns.createElement(\"div\");k=\"on\"+k;var r=k in n;if(!r){n.setAttribute(k,\"return;\");r=typeof n[k]===\"function\"}return r};c.support.submitBubbles=a(\"submit\");c.support.changeBubbles=a(\"change\");a=b=d=e=j=null}})();c.props={\"for\":\"htmlFor\",\"class\":\"className\",readonly:\"readOnly\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",rowspan:\"rowSpan\",colspan:\"colSpan\",tabindex:\"tabIndex\",usemap:\"useMap\",frameborder:\"frameBorder\"};var G=\"jQuery\"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,\napplet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b===\"string\"&&d===w)return null;f||(f=++Ya);if(typeof b===\"object\"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b===\"string\"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];\nelse a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a===\"undefined\"&&this.length)return c.data(this[0]);else if(typeof a===\"object\")return this.each(function(){c.data(this,a)});var d=a.split(\".\");d[1]=d[1]?\".\"+d[1]:\"\";if(b===w){var f=this.triggerHandler(\"getData\"+d[1]+\"!\",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger(\"setData\"+d[1]+\"!\",[d[0],b]).each(function(){c.data(this,\na,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||\"fx\")+\"queue\";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||\"fx\";var d=c.queue(a,b),f=d.shift();if(f===\"inprogress\")f=d.shift();if(f){b===\"fx\"&&d.unshift(\"inprogress\");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!==\"string\"){b=a;a=\"fx\"}if(b===\nw)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a===\"fx\"&&d[0]!==\"inprogress\"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||\"fx\";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||\"fx\",[])}});var Aa=/[\\n\\t]/g,ca=/\\s+/,Za=/\\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,\ncb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,\"\");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr(\"class\")))});if(a&&typeof a===\"string\")for(var b=(a||\"\").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=\" \"+e.className+\" \",\ni=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(\" \"+b[o]+\" \")<0)i+=\" \"+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr(\"class\")))});if(a&&typeof a===\"string\"||a===w)for(var b=(a||\"\").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(\" \"+e.className+\" \").replace(Aa,\" \"),i=0,o=b.length;i<o;i++)j=j.replace(\" \"+b[i]+\" \",\n\" \");e.className=c.trim(j)}else e.className=\"\"}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b===\"boolean\";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr(\"class\"),b),b)});return this.each(function(){if(d===\"string\")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?\"addClass\":\"removeClass\"](e)}else if(d===\"undefined\"||d===\"boolean\"){this.className&&c.data(this,\"__className__\",this.className);this.className=\nthis.className||a===false?\"\":c.data(this,\"__className__\")||\"\"}})},hasClass:function(a){a=\" \"+a+\" \";for(var b=0,d=this.length;b<d;b++)if((\" \"+this[b].className+\" \").replace(Aa,\" \").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,\"option\"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,\"select\")){var d=b.selectedIndex,f=[],e=b.options;b=b.type===\"select-one\";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=\ne[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute(\"value\")===null?\"on\":b.value;return(b.value||\"\").replace(Za,\"\")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r===\"number\")r+=\"\";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,\"select\")){var u=c.makeArray(r);c(\"option\",this).each(function(){this.selected=\nc.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b===\"type\"&&ab.test(a.nodeName)&&a.parentNode&&c.error(\"type property can't be changed\");\na[b]=d}if(c.nodeName(a,\"form\")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b===\"tabIndex\")return(b=a.getAttributeNode(\"tabIndex\"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b===\"style\"){if(e)a.style.cssText=\"\"+d;return a.style.cssText}e&&a.setAttribute(b,\"\"+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\\.(.*)$/,db=function(a){return a.replace(/[^\\w\\s\\.\\|`]/g,\nfunction(b){return\"\\\\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!==\"undefined\"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(\" \");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(\".\")>-1){r=k.split(\".\");\nk=r.shift();j.namespace=r.slice(0).sort().join(\".\")}else{r=[];j.namespace=\"\"}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent(\"on\"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),\nC=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b===\"string\"&&b.charAt(0)===\".\"){b=b||\"\";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(\" \");e=b[j++];){n=e;i=e.indexOf(\".\")<0;o=[];if(!i){o=e.split(\".\");e=o.shift();k=new RegExp(\"(^|\\\\.)\"+c.map(o.slice(0).sort(),db).join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=\nnull)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a===\"object\"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf(\"!\")>=0){a.type=\ne=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,\"handle\"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d[\"on\"+e]&&d[\"on\"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&\nf)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,\"a\")&&e===\"click\",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f[\"on\"+e])f[\"on\"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f[\"on\"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(\".\")<0&&!a.exclusive;\nif(!b){d=a.type.split(\".\");a.type=d.shift();f=new RegExp(\"(^|\\\\.)\"+d.slice(0).sort().join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\")}e=c.data(this,\"events\");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:\"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which\".split(\" \"),\nfix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||\nd&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,\"\");c.each(c.data(this,\n\"events\").live||[],function(){if(d===this.origType.replace(O,\"\"))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent(\"on\"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=\na;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,\nisImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=\n{setup:function(){if(this.nodeName.toLowerCase()!==\"form\"){c.event.add(this,\"click.specialSubmit\",function(a){var b=a.target,d=b.type;if((d===\"submit\"||d===\"image\")&&c(b).closest(\"form\").length)return na(\"submit\",this,arguments)});c.event.add(this,\"keypress.specialSubmit\",function(a){var b=a.target,d=b.type;if((d===\"text\"||d===\"password\")&&c(b).closest(\"form\").length&&a.keyCode===13)return na(\"submit\",this,arguments)})}else return false},teardown:function(){c.event.remove(this,\".specialSubmit\")}};\nif(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b===\"radio\"||b===\"checkbox\")d=a.checked;else if(b===\"select-multiple\")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join(\"-\"):\"\";else if(a.nodeName.toLowerCase()===\"select\")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,\"_change_data\");e=Fa(d);if(a.type!==\"focusout\"||d.type!==\"radio\")c.data(d,\"_change_data\",\ne);if(!(f===w||e===f))if(f!=null||e){a.type=\"change\";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d===\"radio\"||d===\"checkbox\"||b.nodeName.toLowerCase()===\"select\")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!==\"textarea\"||a.keyCode===32&&(d===\"checkbox\"||d===\"radio\")||d===\"select-multiple\")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,\n\"_change_data\",Fa(a))}},setup:function(){if(this.type===\"file\")return false;for(var a in ea)c.event.add(this,a+\".specialChange\",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,\".specialChange\");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,\nd,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each([\"bind\",\"one\"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d===\"object\"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b===\"one\"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d===\"unload\"&&b!==\"one\")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a===\"object\"&&\n!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind(\"live\"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},\ntoggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,\"lastToggle\"+a.guid)||0)%d;c.data(this,\"lastToggle\"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:\"focusin\",blur:\"focusout\",mouseenter:\"mouseover\",mouseleave:\"mouseout\"};c.each([\"live\",\"die\"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,\nu=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||\"\").split(\" \");(i=d[o++])!=null;){j=O.exec(i);k=\"\";if(j){k=j[0];i=i.replace(O,\"\")}if(i===\"hover\")d.push(\"mouseenter\"+k,\"mouseleave\"+k);else{n=i;if(i===\"focus\"||i===\"blur\"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b===\"live\"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error\".split(\" \"),\nfunction(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent(\"onunload\",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h=\"\",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];\nif(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!==\"string\"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^[\\]]*\\]|['\"][^'\"]*['\"]|[^[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,\ne=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!==\"string\")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(\"\"),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();\nt=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]===\"~\"||p[0]===\"+\")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D=\"\";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||\ng);if(j.call(y)===\"[object Array]\")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];\nfor(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!==\"\\\\\"){q[1]=(q[1]||\"\").replace(/\\\\/g,\"\");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],\"\");break}}}}m||(m=h.getElementsByTagName(\"*\"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-\n1)!==\"\\\\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],\"\");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw\"Syntax error, unrecognized expression: \"+g;};var n=k.selectors={order:[\"ID\",\"NAME\",\"TAG\"],match:{ID:/#((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)/,\nCLASS:/\\.((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)/,NAME:/\\[name=['\"]*((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)['\"]*\\]/,ATTR:/\\[\\s*((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(['\"]*)(.*?)\\3|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*-]|\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\((even|odd|[\\dn+-]*)\\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\))?(?=[^-]|$)/,PSEUDO:/:((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)(?:\\((['\"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},leftMatch:{},attrMap:{\"class\":\"className\",\"for\":\"htmlFor\"},attrHandle:{href:function(g){return g.getAttribute(\"href\")}},\nrelative:{\"+\":function(g,h){var l=typeof h===\"string\",m=l&&!/\\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},\">\":function(g,h){var l=typeof h===\"string\";if(l&&!/\\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=\nl?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},\"\":function(g,h,l){var m=e++,q=d;if(typeof h===\"string\"&&!/\\W/.test(h)){var p=h=h.toLowerCase();q=b}q(\"parentNode\",h,m,g,p,l)},\"~\":function(g,h,l){var m=e++,q=d;if(typeof h===\"string\"&&!/\\W/.test(h)){var p=h=h.toLowerCase();q=b}q(\"previousSibling\",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!==\"undefined\"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!==\"undefined\"){var l=[];\nh=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute(\"name\")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=\" \"+g[1].replace(/\\\\/g,\"\")+\" \";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(\" \"+v.className+\" \").replace(/[\\t\\n]/g,\" \").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\\\/g,\"\")},TAG:function(g){return g[1].toLowerCase()},\nCHILD:function(g){if(g[1]===\"nth\"){var h=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.exec(g[2]===\"even\"&&\"2n\"||g[2]===\"odd\"&&\"2n+1\"||!/\\D/.test(g[2])&&\"0n+\"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\\\/g,\"\");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]===\"~=\")g[4]=\" \"+g[4]+\" \";return g},PSEUDO:function(g,h,l,m,q){if(g[1]===\"not\")if((f.exec(g[3])||\"\").length>1||/^\\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,\ng);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!==\"hidden\"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\\d/i.test(g.nodeName)},\ntext:function(g){return\"text\"===g.type},radio:function(g){return\"radio\"===g.type},checkbox:function(g){return\"checkbox\"===g.type},file:function(g){return\"file\"===g.type},password:function(g){return\"password\"===g.type},submit:function(g){return\"submit\"===g.type},image:function(g){return\"image\"===g.type},reset:function(g){return\"reset\"===g.type},button:function(g){return\"button\"===g.type||g.nodeName.toLowerCase()===\"button\"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},\nsetFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q===\"contains\")return(g.textContent||g.innerText||a([g])||\"\").indexOf(h[3])>=0;else if(q===\"not\"){h=\nh[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error(\"Syntax error, unrecognized expression: \"+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case \"only\":case \"first\":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l===\"first\")return true;m=g;case \"last\":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case \"nth\":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=\nm.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute(\"id\")===h},TAG:function(g,h){return h===\"*\"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(\" \"+(g.className||g.getAttribute(\"class\"))+\" \").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+\"\";var m=h[2];h=h[4];return g==null?m===\"!=\":m===\n\"=\"?l===h:m===\"*=\"?l.indexOf(h)>=0:m===\"~=\"?(\" \"+l+\" \").indexOf(h)>=0:!h?l&&g!==false:m===\"!=\"?l!==h:m===\"^=\"?l.indexOf(h)===0:m===\"$=\"?l.substr(l.length-h.length)===h:m===\"|=\"?l===h||l.substr(0,h.length+1)===h+\"-\":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+n.match[u].source.replace(/\\\\(\\d+)/g,function(g,\nh){return\"\\\\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)===\"[object Array]\")Array.prototype.push.apply(h,g);else if(typeof g.length===\"number\")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||\n!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if(\"sourceIndex\"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=\nh.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement(\"div\"),h=\"script\"+(new Date).getTime();g.innerHTML=\"<a name='\"+h+\"'/>\";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!==\"undefined\"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!==\"undefined\"&&\nq.getAttributeNode(\"id\").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!==\"undefined\"&&m.getAttributeNode(\"id\");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement(\"div\");g.appendChild(s.createComment(\"\"));if(g.getElementsByTagName(\"*\").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]===\"*\"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=\"<a href='#'></a>\";\nif(g.firstChild&&typeof g.firstChild.getAttribute!==\"undefined\"&&g.firstChild.getAttribute(\"href\")!==\"#\")n.attrHandle.href=function(h){return h.getAttribute(\"href\",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement(\"div\");h.innerHTML=\"<p class='TEST'></p>\";if(!(h.querySelectorAll&&h.querySelectorAll(\".TEST\").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();\n(function(){var g=s.createElement(\"div\");g.innerHTML=\"<div class='test e'></div><div class='test'></div>\";if(!(!g.getElementsByClassName||g.getElementsByClassName(\"e\").length===0)){g.lastChild.className=\"e\";if(g.getElementsByClassName(\"e\").length!==1){n.order.splice(1,0,\"CLASS\");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!==\"undefined\"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:\nfunction(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!==\"HTML\":false},ga=function(g,h){var l=[],m=\"\",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,\"\")}g=n.relative[g]?g+\"*\":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[\":\"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,\ngb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b===\"string\"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack(\"\",\"find\",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;\nc.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),\"not\",a)},filter:function(a){return this.pushStack(Ia(this,a,true),\"filter\",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=\n{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===\n\"string\")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a===\"string\"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,\"parentNode\")},parentsUntil:function(a,b,d){return c.dir(a,\"parentNode\",\nd)},next:function(a){return c.nth(a,2,\"nextSibling\")},prev:function(a){return c.nth(a,2,\"previousSibling\")},nextAll:function(a){return c.dir(a,\"nextSibling\")},prevAll:function(a){return c.dir(a,\"previousSibling\")},nextUntil:function(a,b,d){return c.dir(a,\"nextSibling\",d)},prevUntil:function(a,b,d){return c.dir(a,\"previousSibling\",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,\"iframe\")?\na.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f===\"string\")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(\",\"))}});c.extend({filter:function(a,b,d){if(d)a=\":not(\"+a+\")\";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===\n1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\\d+=\"(?:\\d+|null)\"/g,V=/^\\s+/,Ka=/(<([\\w:]+)[^>]*?)\\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\\w:]+)/,ib=/<tbody/i,jb=/<|&#?\\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?\na:b+\"></\"+d+\">\"},F={option:[1,\"<select multiple='multiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\"\",\"\"]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,\"div<div>\",\"</div>\"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=\nc(this);d.text(a.call(this,b,d.text()))});if(typeof a!==\"object\"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},\nwrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,\"body\")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},\nprepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,\"before\",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,\nthis.nextSibling)});else if(arguments.length){var a=this.pushStack(this,\"after\",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName(\"*\"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName(\"*\"));b.firstChild;)b.removeChild(b.firstChild);\nreturn this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement(\"div\");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,\"\").replace(/=([^=\"'>\\s]+\\/)>/g,'=\"$1\">').replace(V,\"\")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find(\"*\"),b.find(\"*\"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,\n\"\"):null;else if(typeof a===\"string\"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName(\"*\"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&\nthis[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!==\"string\")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),\"replaceWith\",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,\"table\")?u.getElementsByTagName(\"tbody\")[0]||\nu.appendChild(u.ownerDocument.createElement(\"tbody\")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i===\"string\"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===\n1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,\"tr\");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);\nreturn this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement===\"undefined\")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i===\"number\")i+=\"\";if(i){if(typeof i===\"string\"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i===\"string\"){i=i.replace(Ka,Ma);var o=(La.exec(i)||[\"\",\n\"\"])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement(\"div\");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o===\"table\"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===\"<table>\"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],\"tbody\")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=\nc.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],\"script\")&&(!e[j].type||e[j].type.toLowerCase()===\"text/javascript\"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName(\"script\"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?\nc.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\\([^)]*\\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\\d+(?:px)?$/i,nb=/^-?\\d/,ob={position:\"absolute\",visibility:\"hidden\",display:\"block\"},pb=[\"Left\",\"Right\"],qb=[\"Top\",\"Bottom\"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?\"cssFloat\":\"styleFloat\",ja=\nfunction(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e===\"number\"&&!kb.test(f))e+=\"px\";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b===\"width\"||b===\"height\")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b===\"opacity\"){if(e){f.zoom=1;b=parseInt(d,10)+\"\"===\"NaN\"?\"\":\"alpha(opacity=\"+d*100+\")\";a=f.filter||c.curCSS(a,\"filter\")||\"\";f.filter=\nNa.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf(\"opacity=\")>=0?parseFloat(Oa.exec(f.filter)[1])/100+\"\":\"\"}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b===\"width\"||b===\"height\"){var e,j=b===\"width\"?pb:qb;function i(){e=b===\"width\"?a.offsetWidth:a.offsetHeight;f!==\"border\"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,\"padding\"+this,true))||0);if(f===\"margin\")e+=parseFloat(c.curCSS(a,\"margin\"+this,true))||0;else e-=parseFloat(c.curCSS(a,\n\"border\"+this+\"Width\",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b===\"opacity\"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||\"\")?parseFloat(RegExp.$1)/100+\"\":\"\";return f===\"\"?\"1\":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b=\"float\";b=b.replace(lb,\"-$1\").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=\na.getPropertyValue(b);if(b===\"opacity\"&&f===\"\")f=\"1\"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d===\"fontSize\"?\"1em\":f||0;f=e.pixelLeft+\"px\";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=\na.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()===\"tr\";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,\"display\")===\"none\"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\\s)*?\\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\\?(&|$)/,ka=/\\?/,wb=/(\\?|&)_=.*?(&|$)/,xb=/^(\\w+:)?\\/\\/([^\\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==\n\"string\")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(\" \");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f=\"GET\";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===\"object\"){b=c.param(b,c.ajaxSettings.traditional);f=\"POST\"}var j=this;c.ajax({url:a,type:f,dataType:\"html\",data:b,complete:function(i,o){if(o===\"success\"||o===\"notmodified\")j.html(e?c(\"<div />\").append(i.responseText.replace(tb,\"\")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},\nserialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),\nfunction(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:\"GET\",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,\"script\")},getJSON:function(a,b,d){return c.get(a,b,d,\"json\")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:\"POST\",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,\nglobal:true,type:\"GET\",contentType:\"application/x-www-form-urlencoded\",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!==\"file:\"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(a){}},accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",script:\"text/javascript, application/javascript\",json:\"application/json, text/javascript\",text:\"text/plain\",_default:\"*/*\"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&\ne.success.call(k,o,i,x);e.global&&f(\"ajaxSuccess\",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f(\"ajaxComplete\",[x,e]);e.global&&!--c.active&&c.event.trigger(\"ajaxStop\")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!==\"string\")e.data=c.param(e.data,e.traditional);if(e.dataType===\"jsonp\"){if(n===\"GET\")N.test(e.url)||(e.url+=(ka.test(e.url)?\n\"&\":\"?\")+(e.jsonp||\"callback\")+\"=?\");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+\"&\":\"\")+(e.jsonp||\"callback\")+\"=?\";e.dataType=\"json\"}if(e.dataType===\"json\"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||\"jsonp\"+sb++;if(e.data)e.data=(e.data+\"\").replace(N,\"=\"+j+\"$1\");e.url=e.url.replace(N,\"=\"+j+\"$1\");e.dataType=\"script\";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType===\"script\"&&e.cache===null)e.cache=false;if(e.cache===\nfalse&&n===\"GET\"){var r=J(),u=e.url.replace(wb,\"$1_=\"+r+\"$2\");e.url=u+(u===e.url?(ka.test(e.url)?\"&\":\"?\")+\"_=\"+r:\"\")}if(e.data&&n===\"GET\")e.url+=(ka.test(e.url)?\"&\":\"?\")+e.data;e.global&&!c.active++&&c.event.trigger(\"ajaxStart\");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType===\"script\"&&n===\"GET\"&&r){var z=s.getElementsByTagName(\"head\")[0]||s.documentElement,C=s.createElement(\"script\");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=\nfalse;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState===\"loaded\"||this.readyState===\"complete\")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader(\"Content-Type\",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader(\"If-Modified-Since\",\nc.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader(\"If-None-Match\",c.etag[e.url])}r||x.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\");x.setRequestHeader(\"Accept\",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+\", */*\":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger(\"ajaxStop\");x.abort();return false}e.global&&f(\"ajaxSend\",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q===\"abort\"){E||\nd();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q===\"timeout\")){E=true;x.onreadystatechange=c.noop;i=q===\"timeout\"?\"timeout\":!c.httpSuccess(x)?\"error\":e.ifModified&&c.httpNotModified(x,e.url)?\"notmodified\":\"success\";var p;if(i===\"success\")try{o=c.httpData(x,e.dataType,e)}catch(v){i=\"parsererror\";p=v}if(i===\"success\"||i===\"notmodified\")j||b();else c.handleError(e,x,i,p);d();q===\"timeout\"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);\ng(\"abort\")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g(\"timeout\")},e.timeout);try{x.send(n===\"POST\"||n===\"PUT\"||n===\"DELETE\"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger(\"ajaxError\",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol===\"file:\"||a.status>=200&&a.status<300||a.status===304||a.status===\n1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader(\"Last-Modified\"),f=a.getResponseHeader(\"Etag\");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader(\"content-type\")||\"\",e=b===\"xml\"||!b&&f.indexOf(\"xml\")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName===\"parsererror\"&&c.error(\"parsererror\");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a===\"string\")if(b===\n\"json\"||!b&&f.indexOf(\"json\")>=0)a=c.parseJSON(a);else if(b===\"script\"||!b&&f.indexOf(\"javascript\")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\\[\\]$/.test(i)?f(i,n):d(i+\"[\"+(typeof n===\"object\"||c.isArray(n)?k:\"\")+\"]\",n)});else!b&&o!=null&&typeof o===\"object\"?c.each(o,function(k,n){d(i+\"[\"+k+\"]\",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+\"=\"+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;\nif(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join(\"&\").replace(yb,\"+\")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\\d+-.]+)(.*)$/,W,va=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"],[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\"opacity\"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K(\"show\",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],\"olddisplay\");\nthis[a].style.display=d||\"\";if(c.css(this[a],\"display\")===\"none\"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c(\"<\"+d+\" />\").appendTo(\"body\");f=e.css(\"display\");if(f===\"none\")f=\"block\";e.remove();la[d]=f}c.data(this[a],\"olddisplay\",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],\"olddisplay\")||\"\";return this}},hide:function(a,b){if(a||a===0)return this.animate(K(\"hide\",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],\"olddisplay\");!d&&d!==\"none\"&&c.data(this[a],\n\"olddisplay\",c.css(this[a],\"display\"))}a=0;for(b=this.length;a<b;a++)this[a].style.display=\"none\";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a===\"boolean\";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(\":hidden\");c(this)[f?\"show\":\"hide\"]()}):this.animate(K(\"toggle\",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(\":hidden\").css(\"opacity\",0).show().end().animate({opacity:b},a,d)},\nanimate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?\"each\":\"queue\"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(\":hidden\"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]===\"hide\"&&o||a[i]===\"show\"&&!o)return j.complete.call(this);if((i===\"height\"||i===\"width\")&&this.style){j.display=c.css(this,\"display\");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=\nj.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow=\"hidden\";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u===\"toggle\"?o?\"show\":\"hide\":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||\"px\";if(E!==\"px\"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]===\"-=\"?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,\"\")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);\nthis.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K(\"show\",1),slideUp:K(\"hide\",1),slideToggle:K(\"toggle\",1),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a===\"object\"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===\n\"number\"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||\nc.fx.step._default)(this);if((this.prop===\"height\"||this.prop===\"width\")&&this.elem.style)this.elem.style.display=\"block\"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||\"px\";this.now=this.start;\nthis.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===\"width\"||this.prop===\"height\"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=\nthis.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,\"olddisplay\");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,\"display\")===\"none\")this.elem.style.display=\"block\"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,\ne,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?\"swing\":\"linear\");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||\nc.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,\"opacity\",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop===\"width\"||a.prop===\"height\"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset=\"getBoundingClientRect\"in s.documentElement?\nfunction(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=\nthis[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position===\"fixed\")break;j=e?e.getComputedStyle(b,null):b.currentStyle;\nk-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!==\"visible\"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position===\"relative\"||f.position===\"static\"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&\nf.position===\"fixed\"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement(\"div\"),d,f,e,j=parseFloat(c.curCSS(a,\"marginTop\",true))||0;c.extend(b.style,{position:\"absolute\",top:0,left:0,margin:0,border:0,width:\"1px\",height:\"1px\",visibility:\"hidden\"});b.innerHTML=\"<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>\";\na.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position=\"fixed\";f.style.top=\"20px\";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top=\"\";d.style.overflow=\"hidden\";d.style.position=\"relative\";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);\nc.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,\"marginTop\",true))||0;d+=parseFloat(c.curCSS(a,\"marginLeft\",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,\"position\")))a.style.position=\"relative\";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,\"top\",true),10)||0,i=parseInt(c.curCSS(a,\"left\",true),10)||0;if(c.isFunction(b))b=b.call(a,\nd,e);d={top:b.top-e.top+j,left:b.left-e.left+i};\"using\"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,\"marginTop\",true))||0;d.left-=parseFloat(c.curCSS(a,\"marginLeft\",true))||0;f.top+=parseFloat(c.curCSS(b[0],\"borderTopWidth\",true))||0;f.left+=parseFloat(c.curCSS(b[0],\"borderLeftWidth\",true))||0;return{top:d.top-\nf.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,\"position\")===\"static\";)a=a.offsetParent;return a})}});c.each([\"Left\",\"Top\"],function(a,b){var d=\"scroll\"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?\"pageXOffset\"in j?j[a?\"pageYOffset\":\n\"pageXOffset\"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each([\"Height\",\"Width\"],function(a,b){var d=b.toLowerCase();c.fn[\"inner\"+b]=function(){return this[0]?c.css(this[0],d,false,\"padding\"):null};c.fn[\"outer\"+b]=function(f){return this[0]?c.css(this[0],d,false,f?\"margin\":\"border\"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return\"scrollTo\"in\ne&&e.document?e.document.compatMode===\"CSS1Compat\"&&e.document.documentElement[\"client\"+b]||e.document.body[\"client\"+b]:e.nodeType===9?Math.max(e.documentElement[\"client\"+b],e.body[\"scroll\"+b],e.documentElement[\"scroll\"+b],e.body[\"offset\"+b],e.documentElement[\"offset\"+b]):f===w?c.css(e,d):this.css(d,typeof f===\"string\"?f:f+\"px\")}});A.jQuery=A.$=c})(window);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/css/components-buttons.css",
    "content": "\ndiv,\nsvg,\ninput,\nselect,\ntextarea,\nspan,\nimg,\ntable,\nlabel,\ntd,\nth,\np,\na,\nbutton,\nul,\ncode,\npre,\nli {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n  \n  \n/* sweet-alert */\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n/* sweet-alert */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/css/components-md.css",
    "content": "/*****************************************\n METRONIC MATERIAL DESIGN STYLE COMPONENTS \n******************************************/\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1, .alert, .badge, .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all), .btn-group > .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all), .btn.btn-link:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all):hover, .icon-btn, .label:not(.md-skip), .note, .panel, .social-icons li > a, .social-icons.social-icons-color > li > a, .well {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2, .ver-inline-menu, .popover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i, .dropdown-menu, .btn-group > .dropdown-menu {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover, .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all):hover, .icon-btn:hover, .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .social-icons li:hover > a, .social-icons.social-icons-color > li > a:hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3, .modal .modal-content {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover, .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all):active, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #fbe1e3; }\n  .form-md-checkboxes.has-info label {\n    color: #e0ebf9; }\n  .form-md-checkboxes.has-success label {\n    color: #abe7ed; }\n  .form-md-checkboxes.has-warning label {\n    color: #f9e491; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #fbe1e3; }\n  .form-md-radios.has-info label {\n    color: #e0ebf9; }\n  .form-md-radios.has-success label {\n    color: #abe7ed; }\n  .form-md-radios.has-warning label {\n    color: #f9e491; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\np {\n  margin: 20px 0; }\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-family: \"Open Sans\", sans-serif;\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 500 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n.ver-inline-menu {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n.alert {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border-width: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline;\n  padding: 4px 6px 2px 6px; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n.badge {\n  text-transform: uppercase;\n  font-size: 10px;\n  font-weight: 600;\n  padding: 4px 6px 2px 6px; }\n\n.page-sidebar .badge {\n  font-size: 10px !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all) {\n  font-size: 12px;\n  font-weight: 600;\n  text-transform: uppercase;\n  transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  overflow: hidden;\n  position: relative;\n  user-select: none;\n  padding: 8px 14px 7px 14px; }\n  .search-form .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all),\n  .btn-theme-panel .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all) {\n    box-shadow: none !important;\n    overflow: visible; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-link {\n    box-shadow: none;\n    color: #337ab7; }\n    .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-link:hover {\n      text-decoration: none; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all) > i {\n    margin-top: 0;\n    margin-left: 3px;\n    margin-right: 3px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-sm {\n    font-size: 11px;\n    padding: 6px 18px 6px 18px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-xs {\n    font-size: 11px;\n    padding: 3px 8px 3px 8px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-lg {\n    font-size: 16px;\n    padding: 12px 26px 10px 26px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-icon-only {\n    padding-left: 0;\n    padding-right: 0; }\n    .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-icon-only > i {\n      margin-left: 0;\n      margin-right: 0; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 2px 2px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 2px 2px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu.pull-left:before,\n.dropdown-toggle > .dropdown-menu.pull-left:before,\n.btn-group > .dropdown-menu.pull-left:before {\n  left: auto;\n  right: 9px; }\n\n.dropdown > .dropdown-menu.pull-left:after,\n.dropdown-toggle > .dropdown-menu.pull-left:after,\n.btn-group > .dropdown-menu.pull-left:after {\n  left: auto;\n  right: 10px; }\n\n.dropdown > .dropdown-menu.pull-right:before,\n.dropdown-toggle > .dropdown-menu.pull-right:before,\n.btn-group > .dropdown-menu.pull-right:before {\n  left: auto;\n  right: 9px; }\n\n.dropdown > .dropdown-menu.pull-right:after,\n.dropdown-toggle > .dropdown-menu.pull-right:after,\n.btn-group > .dropdown-menu.pull-right:after {\n  left: auto;\n  right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*rtl:ignore*/\n.dropdown-menu {\n  border: 0 !important;\n  border-radius: 2px !important;\n  margin: 0; }\n  .dropdown-menu:before, .dropdown-menu:after {\n    display: none !important; }\n\n.btn-group > .dropdown-menu {\n  opacity: 0 ;\n  filter: alpha(opacity=0) ;\n  margin-top: 0px; }\n\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 0px; }\n\n.btn-group.open > .dropdown-menu {\n  transition: opacity 1500ms cubic-bezier(0.23, 1, 0.32, 1) 0.1ms;\n  opacity: 1 ;\n  filter: alpha(opacity=100) ; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.input-group-btn .btn {\n  box-shadow: none; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n.icon-btn {\n  border: 0;\n  transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); }\n  .icon-btn > div {\n    text-transform: uppercase;\n    font-weight: 600;\n    font-size: 11px;\n    color: #565d66; }\n  .icon-btn:hover {\n    text-decoration: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 2px 0 0 2px;\n      -moz-border-radius: 2px 0 0 2px;\n      -ms-border-radius: 2px 0 0 2px;\n      -o-border-radius: 2px 0 0 2px;\n      border-radius: 2px 0 0 2px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 2px 2px 0;\n        -moz-border-radius: 0 2px 2px 0;\n        -ms-border-radius: 0 2px 2px 0;\n        -o-border-radius: 0 2px 2px 0;\n        border-radius: 0 2px 2px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n.label:not(.md-skip) {\n  text-transform: uppercase;\n  padding: 2px 6px 4px 6px;\n  font-size: 10px;\n  font-weight: 600; }\n  .label:not(.md-skip).label-sm {\n    font-size: 10px;\n    font-weight: 600;\n    padding: 3px 6px 3px 6px; }\n\n.label:not(.md-skip).label-icon {\n  padding: 4px 0px 4px 4px !important;\n  font-size: 12px !important; }\n  .ie8 .label:not(.md-skip).label-icon,\n  .ie9 .label:not(.md-skip).label-icon {\n    padding: 3px 0 3px 3px !important; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 2px;\n  border-radius-topright: 2px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 2px;\n  border-radius-bottomright: 2px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n.modal .modal-content {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0; }\n  .modal .modal-content .modal-title {\n    font-weight: 400; }\n  .modal .modal-content .modal-footer {\n    border: 0; }\n\n.modal-backdrop.in {\n  opacity: 0.2 ;\n  filter: alpha(opacity=20) ; }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 2px 2px 0;\n  -moz-border-radius: 0 2px 2px 0;\n  -ms-border-radius: 0 2px 2px 0;\n  -o-border-radius: 0 2px 2px 0;\n  border-radius: 0 2px 2px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n.note {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0; }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel-group .panel {\n  overflow: visible; }\n\n.panel .panel-body {\n  font-size: 13px; }\n\n.panel .panel-title > a:hover {\n  text-decoration: none; }\n\n.accordion .panel .panel-heading {\n  padding: 0; }\n\n.accordion .panel .panel-title {\n  padding: 0; }\n  .accordion .panel .panel-title .accordion-toggle {\n    display: block;\n    padding: 10px 15px; }\n  .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n    background: url(\"../img/accordion-plusminus.png\") no-repeat;\n    background-position: right -19px;\n    margin-right: 15px; }\n  .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n    background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n.panel {\n  border: 0; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/*rtl:ignore*/\n.popover {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0;\n  background: #fff; }\n\n.popover > .popover-title {\n  background: #fff;\n  font-weight: 600;\n  font-size: 12px;\n  text-transform: uppercase;\n  padding: 10px 14px 6px 14px;\n  border: 0; }\n\n.popover .arrow,\n.popover .arrow:after {\n  display: none !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 4px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered > .portlet-title {\n  border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n.portlet {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88;\n      box-shadow: none; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0;\n      box-shadow: none; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4;\n      box-shadow: none; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7;\n      box-shadow: none; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798;\n      box-shadow: none; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4;\n      box-shadow: none; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3;\n      box-shadow: none; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0;\n      box-shadow: none; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7;\n      box-shadow: none; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef;\n      box-shadow: none; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec;\n      box-shadow: none; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb;\n      box-shadow: none; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3;\n      box-shadow: none; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de;\n      box-shadow: none; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0;\n      box-shadow: none; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda;\n      box-shadow: none; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1;\n      box-shadow: none; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6;\n      box-shadow: none; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4;\n      box-shadow: none; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6;\n      box-shadow: none; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4;\n      box-shadow: none; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a;\n      box-shadow: none; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5;\n      box-shadow: none; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd;\n      box-shadow: none; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9;\n      box-shadow: none; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc;\n      box-shadow: none; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0;\n      box-shadow: none; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd;\n      box-shadow: none; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0;\n      box-shadow: none; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89;\n      box-shadow: none; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6;\n      box-shadow: none; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0;\n      box-shadow: none; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda;\n      box-shadow: none; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7;\n      box-shadow: none; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af;\n      box-shadow: none; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79;\n      box-shadow: none; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb;\n      box-shadow: none; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e;\n      box-shadow: none; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d;\n      box-shadow: none; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1;\n      box-shadow: none; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4;\n      box-shadow: none; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca;\n      box-shadow: none; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce;\n      box-shadow: none; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da;\n      box-shadow: none; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd;\n      box-shadow: none; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa;\n      box-shadow: none; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da;\n      box-shadow: none; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0;\n      box-shadow: none; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef;\n      box-shadow: none; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd;\n      box-shadow: none; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0;\n      box-shadow: none; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde;\n      box-shadow: none; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n.progress {\n  height: 8px;\n  border-radius: 0 !important; }\n  .progress.progress-sm {\n    height: 6px; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px;\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 2px 0 0 2px;\n      -moz-border-radius: 2px 0 0 2px;\n      -ms-border-radius: 2px 0 0 2px;\n      -o-border-radius: 2px 0 0 2px;\n      border-radius: 2px 0 0 2px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 2px 0 0 2px;\n    -moz-border-radius: 2px 0 0 2px;\n    -ms-border-radius: 2px 0 0 2px;\n    -o-border-radius: 2px 0 0 2px;\n    border-radius: 2px 0 0 2px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 2px 2px 0;\n      -moz-border-radius: 0 2px 2px 0;\n      -ms-border-radius: 0 2px 2px 0;\n      -o-border-radius: 0 2px 2px 0;\n      border-radius: 0 2px 2px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 2px 2px 0;\n    -moz-border-radius: 0 2px 2px 0;\n    -ms-border-radius: 0 2px 2px 0;\n    -o-border-radius: 0 2px 2px 0;\n    border-radius: 0 2px 2px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #36c6d3;\n      position: relative; }\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #9fe4ea; }\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px; }\n\n.well {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 2px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 2px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 2px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 2px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 2px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 2px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 2px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 2px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 2px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 2px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 2px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 2px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 2px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-120%); }\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/css/components-portal.css",
    "content": "/*********************************\n METRONIC SQUARE STYLE COMPONENTS \n*********************************/\n/***\nRounded corners reset\n***/\n/* Reset rounded corners for all elements */\ndiv,\nsvg,\ninput,\nselect,\ntextarea,\nspan,\nimg,\ntable,\nlabel,\ntd,\nth,\np,\na,\nbutton,\nul,\ncode,\npre,\nli {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/* except below bootstrap elements */\n.img-circle {\n  border-radius: 50% !important; }\n  \n.img-circle-userFace {\n  border-radius: 50% !important; \n  width: 100px;\n  height: 100px;\n  margin-top: -25px;\n  margin-bottom: 10px;\n}\n\n.img-rounded {\n  border-radius: 6px !important; }\n\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3 {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #ed6b75; }\n  .form-md-checkboxes.has-info label {\n    color: #659be0; }\n  .form-md-checkboxes.has-success label {\n    color: #36c6d3; }\n  .form-md-checkboxes.has-warning label {\n    color: #F1C40F; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #ed6b75; }\n  .form-md-radios.has-info label {\n    color: #659be0; }\n  .form-md-radios.has-success label {\n    color: #36c6d3; }\n  .form-md-radios.has-warning label {\n    color: #F1C40F; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\n/* p { */\n/*   margin: 20px 0; } */\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n/*   font-family: \"Open Sans\", sans-serif; */\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 300 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n/*rtl:ignore*/\n.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 4px 4px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 4px 4px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu,\n.dropdown-toggle > .dropdown-menu,\n.btn-group > .dropdown-menu {\n  margin-top: 10px; }\n  .dropdown > .dropdown-menu:before,\n  .dropdown-toggle > .dropdown-menu:before,\n  .btn-group > .dropdown-menu:before {\n    position: absolute;\n    top: -8px;\n    left: 9px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 8px solid transparent;\n    border-bottom: 8px solid #e0e0e0;\n    border-left: 8px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu:after,\n  .dropdown-toggle > .dropdown-menu:after,\n  .btn-group > .dropdown-menu:after {\n    position: absolute;\n    top: -7px;\n    left: 10px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 7px solid transparent;\n    border-bottom: 7px solid #fff;\n    border-left: 7px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu.pull-left:before,\n  .dropdown-toggle > .dropdown-menu.pull-left:before,\n  .btn-group > .dropdown-menu.pull-left:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-left:after,\n  .dropdown-toggle > .dropdown-menu.pull-left:after,\n  .btn-group > .dropdown-menu.pull-left:after {\n    left: auto;\n    right: 10px; }\n  .dropdown > .dropdown-menu.pull-right:before,\n  .dropdown-toggle > .dropdown-menu.pull-right:before,\n  .btn-group > .dropdown-menu.pull-right:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-right:after,\n  .dropdown-toggle > .dropdown-menu.pull-right:after,\n  .btn-group > .dropdown-menu.pull-right:after {\n    left: auto;\n    right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e7ecf1;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0;\n    border-bottom: 1px solid #e7ecf1; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px;\n  border-bottom: 1px solid #e7ecf1; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease;\n      -webkit-box-shadow: none;\n      -moz-box-shadow: none;\n      box-shadow: none; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 4px 4px 0;\n        -moz-border-radius: 0 4px 4px 0;\n        -ms-border-radius: 0 4px 4px 0;\n        -o-border-radius: 0 4px 4px 0;\n        border-radius: 0 4px 4px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 4px;\n  border-radius-topright: 4px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 4px;\n  border-radius-bottomright: 4px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 4px 4px 0;\n  -moz-border-radius: 0 4px 4px 0;\n  -ms-border-radius: 0 4px 4px 0;\n  -o-border-radius: 0 4px 4px 0;\n  border-radius: 0 4px 4px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n  .panel-group .panel {\n    overflow: visible; }\n  .panel .panel-body {\n    font-size: 13px; }\n  .panel .panel-title > a:hover {\n    text-decoration: none; }\n  .accordion .panel .panel-heading {\n    padding: 0; }\n  .accordion .panel .panel-title {\n    padding: 0; }\n    .accordion .panel .panel-title .accordion-toggle {\n      display: block;\n      padding: 10px 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n      background: url(\"../img/accordion-plusminus.png\") no-repeat;\n      background-position: right -19px;\n      margin-right: 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n      background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 3px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered {\n  border-left: 2px solid #e6e9ec !important; }\n  .portlet.bordered > .portlet-title {\n    border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px; }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 4px 0 0 4px;\n    -moz-border-radius: 4px 0 0 4px;\n    -ms-border-radius: 4px 0 0 4px;\n    -o-border-radius: 4px 0 0 4px;\n    border-radius: 4px 0 0 4px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 4px 4px 0;\n    -moz-border-radius: 0 4px 4px 0;\n    -ms-border-radius: 0 4px 4px 0;\n    -o-border-radius: 0 4px 4px 0;\n    border-radius: 0 4px 4px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #36c6d3;\n      position: relative; }\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #9fe4ea; }\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 4px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 4px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 4px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 4px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 4px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 4px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 4px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 4px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 4px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 4px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 4px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-120%); }\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/css/components-rounded.css",
    "content": "/*********************************\n METRONIC ROUNDED STYLE COMPONENTS \n*********************************/\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3 {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #ed6b75; }\n  .form-md-checkboxes.has-info label {\n    color: #659be0; }\n  .form-md-checkboxes.has-success label {\n    color: #36c6d3; }\n  .form-md-checkboxes.has-warning label {\n    color: #F1C40F; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #ed6b75; }\n  .form-md-radios.has-info label {\n    color: #659be0; }\n  .form-md-radios.has-success label {\n    color: #36c6d3; }\n  .form-md-radios.has-warning label {\n    color: #F1C40F; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\np {\n  margin: 20px 0; }\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-family: \"Open Sans\", sans-serif;\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 300 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n/*rtl:ignore*/\n.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 4px 4px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 4px 4px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu,\n.dropdown-toggle > .dropdown-menu,\n.btn-group > .dropdown-menu {\n  margin-top: 10px; }\n  .dropdown > .dropdown-menu:before,\n  .dropdown-toggle > .dropdown-menu:before,\n  .btn-group > .dropdown-menu:before {\n    position: absolute;\n    top: -8px;\n    left: 9px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 8px solid transparent;\n    border-bottom: 8px solid #e0e0e0;\n    border-left: 8px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu:after,\n  .dropdown-toggle > .dropdown-menu:after,\n  .btn-group > .dropdown-menu:after {\n    position: absolute;\n    top: -7px;\n    left: 10px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 7px solid transparent;\n    border-bottom: 7px solid #fff;\n    border-left: 7px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu.pull-left:before,\n  .dropdown-toggle > .dropdown-menu.pull-left:before,\n  .btn-group > .dropdown-menu.pull-left:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-left:after,\n  .dropdown-toggle > .dropdown-menu.pull-left:after,\n  .btn-group > .dropdown-menu.pull-left:after {\n    left: auto;\n    right: 10px; }\n  .dropdown > .dropdown-menu.pull-right:before,\n  .dropdown-toggle > .dropdown-menu.pull-right:before,\n  .btn-group > .dropdown-menu.pull-right:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-right:after,\n  .dropdown-toggle > .dropdown-menu.pull-right:after,\n  .btn-group > .dropdown-menu.pull-right:after {\n    left: auto;\n    right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e7ecf1;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0;\n    border-bottom: 1px solid #e7ecf1; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px;\n  border-bottom: 1px solid #e7ecf1; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease;\n      -webkit-box-shadow: none;\n      -moz-box-shadow: none;\n      box-shadow: none; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 4px 4px 0;\n        -moz-border-radius: 0 4px 4px 0;\n        -ms-border-radius: 0 4px 4px 0;\n        -o-border-radius: 0 4px 4px 0;\n        border-radius: 0 4px 4px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 4px;\n  border-radius-topright: 4px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 4px;\n  border-radius-bottomright: 4px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 4px 4px 0;\n  -moz-border-radius: 0 4px 4px 0;\n  -ms-border-radius: 0 4px 4px 0;\n  -o-border-radius: 0 4px 4px 0;\n  border-radius: 0 4px 4px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n  .panel-group .panel {\n    overflow: visible; }\n  .panel .panel-body {\n    font-size: 13px; }\n  .panel .panel-title > a:hover {\n    text-decoration: none; }\n  .accordion .panel .panel-heading {\n    padding: 0; }\n  .accordion .panel .panel-title {\n    padding: 0; }\n    .accordion .panel .panel-title .accordion-toggle {\n      display: block;\n      padding: 10px 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n      background: url(\"../img/accordion-plusminus.png\") no-repeat;\n      background-position: right -19px;\n      margin-right: 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n      background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 3px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered {\n  border-left: 2px solid #e6e9ec !important; }\n  .portlet.bordered > .portlet-title {\n    border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px; }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 4px 0 0 4px;\n    -moz-border-radius: 4px 0 0 4px;\n    -ms-border-radius: 4px 0 0 4px;\n    -o-border-radius: 4px 0 0 4px;\n    border-radius: 4px 0 0 4px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 4px 4px 0;\n    -moz-border-radius: 0 4px 4px 0;\n    -ms-border-radius: 0 4px 4px 0;\n    -o-border-radius: 0 4px 4px 0;\n    border-radius: 0 4px 4px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #36c6d3;\n      position: relative; }\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #9fe4ea; }\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 4px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 4px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 4px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 4px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 4px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 4px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 4px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 4px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 4px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 4px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 4px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-120%); }\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/css/components.css",
    "content": "/*********************************\n METRONIC SQUARE STYLE COMPONENTS \n*********************************/\n/***\nRounded corners reset\n***/\n/* Reset rounded corners for all elements */\ndiv,\nsvg,\ninput,\nselect,\ntextarea,\nspan,\nimg,\ntable,\nlabel,\ntd,\nth,\np,\na,\nbutton,\nul,\ncode,\npre,\nli {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/* except below bootstrap elements */\n.img-circle {\n  border-radius: 50% !important; }\n  \n.img-circle-userFace {\n  border-radius: 50% !important; \n  width: 100px;\n  height: 100px;\n  margin-top: -25px;\n  margin-bottom: 10px;\n}\n\n.img-rounded {\n  border-radius: 6px !important; }\n\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3 {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #ed6b75; }\n  .form-md-checkboxes.has-info label {\n    color: #659be0; }\n  .form-md-checkboxes.has-success label {\n    color: #36c6d3; }\n  .form-md-checkboxes.has-warning label {\n    color: #F1C40F; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #ed6b75; }\n  .form-md-radios.has-info label {\n    color: #659be0; }\n  .form-md-radios.has-success label {\n    color: #36c6d3; }\n  .form-md-radios.has-warning label {\n    color: #F1C40F; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\np {\n  margin: 20px 0; }\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-family: \"Open Sans\", sans-serif;\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 300 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n/*rtl:ignore*/\n.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 4px 4px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 4px 4px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu,\n.dropdown-toggle > .dropdown-menu,\n.btn-group > .dropdown-menu {\n  margin-top: 10px; }\n  .dropdown > .dropdown-menu:before,\n  .dropdown-toggle > .dropdown-menu:before,\n  .btn-group > .dropdown-menu:before {\n    position: absolute;\n    top: -8px;\n    left: 9px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 8px solid transparent;\n    border-bottom: 8px solid #e0e0e0;\n    border-left: 8px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu:after,\n  .dropdown-toggle > .dropdown-menu:after,\n  .btn-group > .dropdown-menu:after {\n    position: absolute;\n    top: -7px;\n    left: 10px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 7px solid transparent;\n    border-bottom: 7px solid #fff;\n    border-left: 7px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu.pull-left:before,\n  .dropdown-toggle > .dropdown-menu.pull-left:before,\n  .btn-group > .dropdown-menu.pull-left:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-left:after,\n  .dropdown-toggle > .dropdown-menu.pull-left:after,\n  .btn-group > .dropdown-menu.pull-left:after {\n    left: auto;\n    right: 10px; }\n  .dropdown > .dropdown-menu.pull-right:before,\n  .dropdown-toggle > .dropdown-menu.pull-right:before,\n  .btn-group > .dropdown-menu.pull-right:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-right:after,\n  .dropdown-toggle > .dropdown-menu.pull-right:after,\n  .btn-group > .dropdown-menu.pull-right:after {\n    left: auto;\n    right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e7ecf1;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0;\n    border-bottom: 1px solid #e7ecf1; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px;\n  border-bottom: 1px solid #e7ecf1; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease;\n      -webkit-box-shadow: none;\n      -moz-box-shadow: none;\n      box-shadow: none; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 4px 4px 0;\n        -moz-border-radius: 0 4px 4px 0;\n        -ms-border-radius: 0 4px 4px 0;\n        -o-border-radius: 0 4px 4px 0;\n        border-radius: 0 4px 4px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 4px;\n  border-radius-topright: 4px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 4px;\n  border-radius-bottomright: 4px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 4px 4px 0;\n  -moz-border-radius: 0 4px 4px 0;\n  -ms-border-radius: 0 4px 4px 0;\n  -o-border-radius: 0 4px 4px 0;\n  border-radius: 0 4px 4px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n  .panel-group .panel {\n    overflow: visible; }\n  .panel .panel-body {\n    font-size: 13px; }\n  .panel .panel-title > a:hover {\n    text-decoration: none; }\n  .accordion .panel .panel-heading {\n    padding: 0; }\n  .accordion .panel .panel-title {\n    padding: 0; }\n    .accordion .panel .panel-title .accordion-toggle {\n      display: block;\n      padding: 10px 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n      background: url(\"../img/accordion-plusminus.png\") no-repeat;\n      background-position: right -19px;\n      margin-right: 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n      background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 3px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered {\n  border-left: 2px solid #e6e9ec !important; }\n  .portlet.bordered > .portlet-title {\n    border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px; }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 4px 0 0 4px;\n    -moz-border-radius: 4px 0 0 4px;\n    -ms-border-radius: 4px 0 0 4px;\n    -o-border-radius: 4px 0 0 4px;\n    border-radius: 4px 0 0 4px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 4px 4px 0;\n    -moz-border-radius: 0 4px 4px 0;\n    -ms-border-radius: 0 4px 4px 0;\n    -o-border-radius: 0 4px 4px 0;\n    border-radius: 0 4px 4px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #33c389;\n      position: relative; }\n/*       #36c6d3 */\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #94eca7; }\n/*       #9fe4ea */\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 4px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 4px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 4px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 4px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 4px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 4px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 4px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 4px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 4px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 4px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 4px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-50%); }\n/*     transform: translateY(-120%); */\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/css/plugins-md.css",
    "content": "@charset \"UTF-8\";\n/******************************\n 3RD PARTY PLUGIN CUSTOMIZATION \n******************************/\n/* Cubic Bezier Transition */\n/***\nBootstrap Colorpicker\n***/\n.input-group.color .input-group-btn i {\n  position: absolute;\n  display: block;\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  right: 6px; }\n\n.colorpicker.dropdown-menu {\n  padding: 5px; }\n\n/* change z-index when opened in modal */\n.modal-open .colorpicker {\n  z-index: 10055 !important; }\n\n/***\nBootstrap Datepaginator\n***/\n.datepaginator a {\n  font-family: 'Open Sans';\n  font-size: 13px;\n  font-weight: 300; }\n\n.datepicker .today {\n  background-image: none !important;\n  filter: none !important; }\n\n#dp-calendar {\n  right: 4px !important; }\n\n.datepaginator .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepaginator .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Datepicker\n***/\n.datepicker.dropdown-menu {\n  padding: 5px; }\n\n.datepicker .selected {\n  background-color: #909090 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .input-daterange input {\n  text-align: left; }\n\n/* change z-index when opened in modal */\n.modal-open .datepicker {\n  z-index: 10055 !important; }\n\n.datepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datepicker table th {\n  color: #333;\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datepicker.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.datepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Daterangepicker\n***/\n.modal-open .daterangepicker {\n  z-index: 10055 !important; }\n\n.daterangepicker {\n  margin-top: 4px; }\n  .daterangepicker .input-mini {\n    width: 100% !important;\n    outline: none !important; }\n\n.daterangepicker td {\n  text-shadow: none; }\n\n.daterangepicker td.active {\n  background-color: #4b8df8;\n  background-image: none;\n  filter: none; }\n\n.daterangepicker th {\n  font-weight: 400;\n  font-size: 14px; }\n\n.daterangepicker .ranges input[type=\"text\"] {\n  width: 70px !important;\n  font-size: 11px;\n  vertical-align: middle; }\n\n.daterangepicker .ranges label {\n  font-weight: 300;\n  display: block; }\n\n.daterangepicker .ranges {\n  width: 170px; }\n  .daterangepicker .ranges ul > li.active {\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px; }\n\n.daterangepicker .ranges .btn {\n  margin-top: 10px; }\n\n.daterangepicker.dropdown-menu {\n  padding: 5px; }\n\n.daterangepicker .ranges li {\n  color: #333; }\n\n.daterangepicker .ranges li.active,\n.daterangepicker .ranges li:hover {\n  background: #4b8df8 !important;\n  border: 1px solid #4b8df8 !important;\n  color: #fff; }\n\n.daterangepicker .range_inputs input {\n  margin-bottom: 0 !important; }\n\n.daterangepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.daterangepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap  Datetimepicker\n***/\n.datetimepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datetimepicker table th {\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datetimepicker.dropdown-menu {\n  padding: 5px; }\n\n.datetimepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datetimepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/* change z-index when opened in modal */\n.modal-open .datetimepicker {\n  z-index: 10055; }\n\n/***\nBootstrap Editable\n***/\n.editable-input table,\n.editable-input table th,\n.editable-input table td,\n.editable-input table tr {\n  border: 0 !important; }\n\n.editable-input .combodate select {\n  margin-bottom: 5px; }\n\n/***\nJansy File Input plugin css changes\n***/\n.fileinput {\n  margin-bottom: 0; }\n  .fileinput .close {\n    float: none; }\n  .fileinput .input-group {\n    white-space: nowrap;\n    overflow: hidden; }\n\n/***\nBootstrap Markdown\n***/\n.md-input {\n  padding: 5px !important;\n  border-bottom: 0 !important;\n  -webkit-border-radius: 0 0 2px 2px;\n  -moz-border-radius: 0 0 2px 2px;\n  -ms-border-radius: 0 0 2px 2px;\n  -o-border-radius: 0 0 2px 2px;\n  border-radius: 0 0 2px 2px; }\n\n.md-editor {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .md-editor .btn-toolbar {\n    margin-left: 0px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n    .md-editor .btn-toolbar .btn-group .btn-sm.btn {\n      padding-bottom: 3px; }\n    .md-editor .btn-toolbar .btn-group .btn-primary {\n      padding-top: 5px;\n      padding-bottom: 7px; }\n\n.md-editor.active {\n  border: 1px solid #999999;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .md-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .md-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .md-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap Modal\n***/\n/* fix: content shifting to the right on modal open */\n.modal-open.page-overflow .page-container,\n.modal-open.page-overflow .page-container .navbar-fixed-top,\n.modal-open.page-overflow .page-container .navbar-fixed-bottom,\n.modal-open.page-overflow .modal-scrollable {\n  overflow-y: auto !important; }\n\n.modal-scrollable {\n  overflow: hidden !important; }\n\n/* BS 3.3.1 fix */\n.modal-backdrop {\n  position: fixed;\n  bottom: 0; }\n\n.modal-scrollable {\n  overflow: hidden !important;\n  z-index: 10051;\n  overflow-y: scroll !important; }\n\n.modal {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0 !important; }\n  .modal .modal-body {\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px;\n    border: 0; }\n  .modal .modal-title {\n    font-weight: 400; }\n  .modal .modal-footer {\n    border: 0 !important; }\n\n.modal-backdrop,\n.modal-backdrop.fade.in {\n  opacity: 0.2 ;\n  filter: alpha(opacity=20) ; }\n\n/***\nBootstrap Select\n***/\n.bootstrap-select .btn {\n  border-color: #c2cad8; }\n\n.has-error .bootstrap-select .btn {\n  border-color: #fbe1e3; }\n\n.has-success .bootstrap-select .btn {\n  border-color: #abe7ed; }\n\n.has-warning .bootstrap-select .btn {\n  border-color: #f9e491; }\n\n.bootstrap-select.open .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select.open.dropup .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select .btn:focus {\n  outline: none !important;\n  outline-offset: 0; }\n\n.bootstrap-select.btn-group .dropdown-menu {\n  margin-top: 1px; }\n\n.bootstrap-select.btn-group .dropdown-menu > li > dt > .text {\n  font-weight: 600;\n  font-family: 'Open Sans';\n  font-size: 14px; }\n\n.bootstrap-select.btn-group .dropdown-menu .text-muted {\n  color: #999 !important; }\n\n.bootstrap-select .caret {\n  border: 0;\n  width: auto;\n  height: auto;\n  margin-top: -10px !important; }\n\n.bootstrap-select .caret:before {\n  content: \"\\f107\";\n  display: inline-block;\n  border: 0;\n  font-family: FontAwesome;\n  font-style: normal;\n  font-weight: normal; }\n\n.bootstrap-select .selected i {\n  color: #aaa; }\n\n.bootstrap-select .dropdown-menu {\n  z-index: 1000 !important; }\n\n.modal-open .bootstrap-select .dropdown-menu {\n  z-index: 10050 !important; }\n\n/***\nBootstrap Switch \n***/\n.bootstrap-switch {\n  border-color: #c2cad8; }\n  .bootstrap-switch.bootstrap-switch-focused {\n    box-shadow: none;\n    border-color: #c2cad8; }\n\n/***\nColor variants\n***/\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #337ab7; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #659be0; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #36c6d3; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  color: #fff;\n  background: #F1C40F; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #ed6b75; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #444;\n  background: #e8eaef; }\n\n/* Bootstrap switch on portlet headers */\n.portlet:not(.light) > .portlet-title > .actions > .bootstrap-switch {\n  border-color: transparent;\n  margin-top: 0px; }\n\n/***\nBootstrap Time Picker\n***/\n.bootstrap-timepicker-widget table td a {\n  padding: 4px 0; }\n\n.bootstrap-timepicker-widget input,\n.bootstrap-timepicker-widget input:focus {\n  outline: none !important;\n  border: 0; }\n\n.modal-open .bootstrap-timepicker-widget {\n  z-index: 10055 !important; }\n\n.bootstrap-timepicker-widget.timepicker-orient-bottom:before,\n.bootstrap-timepicker-widget.timepicker-orient-bottom:after {\n  top: auto; }\n\n/***\nToastr Notifications\n***/\n.toast {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.toast {\n  background-color: #030303; }\n\n.toast-success {\n  background-color: #51a351; }\n\n.toast-error {\n  background-color: #bd362f; }\n\n.toast-info {\n  background-color: #2f96b4; }\n\n.toast-warning {\n  background-color: #f89406; }\n\n.toast .toast-close-button {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  text-indent: -100000px;\n  width: 11px;\n  height: 16px;\n  background-repeat: no-repeat !important;\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important; }\n\n.toast-top-center {\n  top: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-top-center .toast {\n    margin: 0 !important; }\n\n.toast-bottom-center {\n  bottom: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-bottom-center .toast {\n    margin: 0 !important; }\n\n/***\nBootstrap Wizard\n***/\n.form-wizard .progress {\n  margin-bottom: 30px; }\n\n.form-wizard .steps {\n  padding: 10px 0;\n  margin-bottom: 15px;\n  background-color: #fff;\n  background-image: none;\n  filter: none;\n  border: 0px;\n  box-shadow: none; }\n  .form-wizard .steps > li > a.step {\n    background-color: #fff;\n    background-image: none;\n    filter: none;\n    border: 0px;\n    box-shadow: none; }\n    .form-wizard .steps > li > a.step:hover {\n      background: none; }\n    .form-wizard .steps > li > a.step > .number {\n      background-color: #eee;\n      display: inline-block;\n      text-align: center !important;\n      font-size: 16px;\n      font-weight: 300;\n      padding: 11px 15px 13px 15px;\n      margin-right: 10px;\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .form-wizard .steps > li > a.step > .desc {\n      display: inline-block;\n      font-size: 16px;\n      font-weight: 300; }\n      .form-wizard .steps > li > a.step > .desc > i {\n        display: none; }\n  .form-wizard .steps > li.active > a.step .number {\n    background-color: #36c6d3;\n    color: #fff; }\n  .form-wizard .steps > li.active > a.step .desc {\n    color: #333; }\n  .form-wizard .steps > li.done > a.step .number {\n    background-color: #F1C40F;\n    color: #fff; }\n  .form-wizard .steps > li.done > a.step .desc {\n    color: #333; }\n    .form-wizard .steps > li.done > a.step .desc i {\n      font-size: 12px;\n      font-weight: normal;\n      color: #999;\n      display: inline-block; }\n\n@media (min-width: 768px) and (max-width: 1200px) {\n  /* 768px & 1200px */\n  .form-wizard .step .desc {\n    margin-top: 10px;\n    display: block; } }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .form-wizard .steps > li > a {\n    text-align: left; } }\n\n/*!\n * Tab drop for Bootstrap\n */\n.tabbable-tabdrop .nav-tabs,\n.tabbable-tabdrop .nav-pills {\n  position: relative; }\n  .tabbable-tabdrop .nav-tabs .caret,\n  .tabbable-tabdrop .nav-pills .caret {\n    display: none; }\n  .tabbable-tabdrop .nav-tabs .tabdrop .dropdown-toggle i,\n  .tabbable-tabdrop .nav-pills .tabdrop .dropdown-toggle i {\n    font-size: 14px; }\n\n.tabbable-tabdrop .dropdown-menu:after {\n  right: 10px;\n  left: auto; }\n\n.tabbable-tabdrop .dropdown-menu:before {\n  right: 9px;\n  left: auto; }\n\n/***\nwysihtml5\n***/\n.wysihtml5-sandbox {\n  width: 100% !important; }\n\n.wysihtml5-toolbar li {\n  margin: 0px;\n  height: 29px; }\n\n.wysihtml5-toolbar li .dropdown-menu {\n  margin-top: 5px; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .wysihtml5-sandbox {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .wysihtml5-sandbox {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .wysihtml5-sandbox {\n  border: 1px solid #f9e491 !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.note-editor {\n  border: 1px solid #c2cad8;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .note-editor .note-toolbar {\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n  .note-editor .note-statusbar {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n    .note-editor .note-statusbar .note-resizebar {\n      border-top: 1px solid #c2cad8; }\n  .note-editor.note-frame.fullscreen {\n    z-index: 10050;\n    width: 100% !important; }\n  .note-editor .dropdown-menu:before {\n    left: 9px;\n    right: auto; }\n  .note-editor .dropdown-menu:after {\n    left: 10px;\n    right: auto; }\n\n.note-link-dialog .checkbox {\n  margin-left: 20px; }\n\n.has-error .note-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .note-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .note-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap GtreeTable\n***/\n.gtreetable .dropdown-menu {\n  margin-top: 0px; }\n  .gtreetable .dropdown-menu:after, .gtreetable .dropdown-menu:before {\n    display: none !important; }\n\n.gtreetable .node-action .form-control {\n  position: relative;\n  top: 2px;\n  display: inline-block; }\n\n.gtreetable .node-icon-selected,\n.gtreetable .node-icon-handle,\n.gtreetable .node-icon-ce,\n.gtreetable .node-icon-type {\n  opacity: 0.6 ;\n  filter: alpha(opacity=60) ; }\n\n/***\nModify bootstrap-tagsinput plugin's css\n***/\n.bootstrap-tagsinput .tag [data-role=\"remove\"] {\n  box-shadow: none;\n  font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:after {\n    font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:hover {\n    text-decoration: none;\n    box-shadow: none; }\n\n.mt-bootstrap-tables .mt-btm-transform .bars {\n  height: auto; }\n\n.fixed-table-toolbar .columns label {\n  margin: 10px;\n  padding: 0 0 0 30px; }\n\n.fixed-table-header th.bs-checkbox {\n  outline: none; }\n  .fixed-table-header th.bs-checkbox .th-inner {\n    overflow: visible; }\n    .fixed-table-header th.bs-checkbox .th-inner .mt-checkbox {\n      right: -5px; }\n\n/***\nBootbox\n***/\n.bootbox .bootbox-close-button {\n  margin-top: 0px !important; }\n\n/*--------------------------------------------------\n    [CSS Animation Amchart]\n----------------------------------------------------*/\n.CSSAnimationChart {\n  width: 100%;\n  height: 500px; }\n  .CSSAnimationChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n.amcharts-graph-g2 .amcharts-graph-stroke {\n  stroke-dasharray: 3px 3px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n.lastBullet {\n  -webkit-animation: am-pulsating 1s ease-out infinite;\n  animation: am-pulsating 1s ease-out infinite; }\n\n@-webkit-keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n@keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n.amcharts-graph-column-front {\n  -webkit-transition: all .3s .3s ease-out;\n  transition: all .3s .3s ease-out; }\n\n.amcharts-graph-column-front:hover {\n  fill: #496375;\n  stroke: #496375;\n  -webkit-transition: all .3s ease-out;\n  transition: all .3s ease-out; }\n\n.amcharts-graph-g3 {\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  stroke-dasharray: 500%;\n  stroke-dasharray: 0 \\0;\n  /* fixes IE prob */\n  stroke-dashoffset: 0 \\0;\n  /* fixes IE prob */\n  -webkit-animation: am-draw 40s;\n  animation: am-draw 40s; }\n\n@-webkit-keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n@keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n/*--------------------------------------------------\n    [Mao Amchart]\n----------------------------------------------------*/\n.mapChart {\n  width: 100%;\n  height: 500px; }\n  .mapChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n/*--------------------------------------------------\n    [Column Line]\n----------------------------------------------------*/\n.columnLine {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n.amcharts-graph-graph2 .amcharts-graph-stroke {\n  stroke-dasharray: 4px 5px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n/*--------------------------------------------------\n    [Animated Pie Chart]\n----------------------------------------------------*/\n.animated-pie-chart {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n/***\nCKEditor css changes\n***/\n.cke {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .cke .cke-top {\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n  .cke .cke-bottom {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n\n.cke_bottom,\n.cke_inner,\n.cke_top,\n.cke_reset,\n.cke_dialog_title,\n.cke_dialog_footer,\n.cke_dialog {\n  background-image: none !important;\n  filter: none;\n  border-top: 0;\n  border-bottom: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none; }\n\n.cke_dialog_ui_button,\n.cke_dialog_tab {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none !important; }\n\n.cke_dialog_ui_button:hover,\n.cke_dialog_tab:hover {\n  text-decoration: none;\n  text-shadow: none; }\n\n.cke_dialog_ui_input_text {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_combo_button,\n.cke_button,\n.cke_toolbar,\n.cke_toolgroup {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_button,\n.cke_combo_button,\n.cke_panel_grouptitle,\n.cke_hc.cke_panel_listItem a {\n  background-image: none !important;\n  filter: none;\n  text-shadow: none; }\n\n.cke_button:hover,\n.cke_combo_button:hover {\n  background-color: #ddd; }\n\n.cke_toolbar_break {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  box-shadow: none !important;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  -ms-box-shadow: none !important;\n  -o-box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .cke {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .cke {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .cke {\n  border: 1px solid #f9e491 !important; }\n\n/***\nClockface\n***/\n.modal-open .clockface {\n  z-index: 10055 !important; }\n\n.clockface .cell .inner.active,\n.clockface .cell .outer.active {\n  background-color: #4b8df8 !important;\n  background-image: none;\n  filter: none; }\n\n/***\nDatatables general customization\n***/\n.table-checkable tr > th:first-child,\n.table-checkable tr > td:first-child {\n  text-align: center;\n  max-width: 50px;\n  min-width: 40px;\n  padding-left: 0;\n  padding-right: 0; }\n\ntable.dataTable thead th,\ntable.dataTable thead td {\n  border-bottom: 2px solid #e7ecf1;\n  outline: none !important; }\n\ntable.dataTable.no-footer {\n  border-bottom-color: #e7ecf1; }\n\ntable.dataTable tr.heading > th {\n  background-color: #fbfcfd; }\n\ntable.dataTable td.sorting_1, table.dataTable td.sorting_2, table.dataTable td.sorting_3,\ntable.dataTable th.sorting_1,\ntable.dataTable th.sorting_2,\ntable.dataTable th.sorting_3 {\n  background: #fbfcfd !important; }\n\n/***\nExtended pagination\n***/\n.paging_bootstrap_extended {\n  margin: 5px 0 0 0 !important;\n  padding: 0 !important;\n  float: none !important;\n  font-size: 13px; }\n\n.dataTables_extended_wrapper {\n  margin-top: 10px; }\n  .dataTables_extended_wrapper .seperator {\n    padding: 0 2px; }\n  .dataTables_extended_wrapper .table.dataTable {\n    margin: 20px 0 !important; }\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: inline-block;\n    float: none !important;\n    padding: 0 !important;\n    margin: 0 !important;\n    position: static !important; }\n  .dataTables_extended_wrapper .table-group-actions > span {\n    font-size: 13px; }\n  .dataTables_extended_wrapper.DTS .paging_bootstrap_extended {\n    display: inline-block; }\n  .dataTables_extended_wrapper.DTS .dataTables_info {\n    display: inline-block;\n    padding-top: 8px !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_info .seperator {\n      display: none; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollHead {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollHead .dataTables_scrollHeadInner .table.dataTable {\n      margin-bottom: 0 !important; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollBody {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollBody .table.dataTable {\n      margin: 0 !important; }\n\n@media (max-width: 480px) {\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: block;\n    margin-bottom: 10px !important; }\n  .dataTables_extended_wrapper .seperator {\n    display: none !important; } }\n\n.dataTables_extended_wrapper div.dataTables_length label {\n  margin: 0 !important;\n  padding: 0 !important;\n  font-size: 13px;\n  float: none !important;\n  display: inline-block !important; }\n\n.table-container .table-actions-wrapper {\n  display: none; }\n\n/***\nScroller Extension\n***/\n.dataTables_scroll {\n  margin-bottom: 10px; }\n\n.dataTables_scrollHead {\n  border-bottom: 2px solid #e7ecf1 !important; }\n  .dataTables_scrollHead thead th {\n    border-bottom: 0 !important; }\n\n.dataTables_scrollBody {\n  border-bottom: 1px solid #e7ecf1 !important; }\n\n.table-both-scroll .dataTables_scrollBody {\n  border-bottom: 0 !important; }\n\n/***\nDatatables processing\n***/\n.dataTables_wrapper .dataTables_processing {\n  width: 200px;\n  display: inline-block;\n  padding: 7px;\n  left: 50%;\n  margin-left: -100px;\n  margin-top: 10px;\n  text-align: center;\n  color: #3f444a;\n  border: 1px solid #e7ecf1;\n  background: #eef1f5;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n/***\nTool Buttons\n***/\n.dt-button-background {\n  display: none !important; }\n\ndiv.dt-button-collection {\n  border: 1px solid #eee;\n  background: #ffffff;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n  div.dt-button-collection > a.dt-button {\n    background: none;\n    padding: 8px 16px;\n    font-weight: 300;\n    margin: 1px 1px;\n    box-shadow: none !important;\n    border: 0 !important; }\n    div.dt-button-collection > a.dt-button > span {\n      font-size: 14px;\n      color: #333; }\n    div.dt-button-collection > a.dt-button.active {\n      background: #f6f6f6 !important;\n      box-shadow: none !important;\n      border: 0 !important; }\n      div.dt-button-collection > a.dt-button.active > span {\n        color: #333; }\n\nbutton.dt-button,\ndiv.dt-button,\na.dt-button {\n  background-image: none !important;\n  padding: 6px 12px !important; }\n  button.dt-button:last-child,\n  div.dt-button:last-child,\n  a.dt-button:last-child {\n    margin-right: 0; }\n\n.dataTables_wrapper .dt-buttons {\n  float: right; }\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: -64px; }\n  .portlet.box .dataTables_wrapper .dt-buttons {\n    margin-top: -50px; }\n\n/***\nRot Details\n***/\n.dataTable .row-details.row-details-close {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 0; }\n\n.dataTable .row-details.row-details-open {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 -23px; }\n\n/***\nSorting\n***/\ntable.dataTable thead .sorting,\ntable.dataTable thead .sorting_asc,\ntable.dataTable thead .sorting_desc,\ntable.dataTable thead .sorting_asc_disabled,\ntable.dataTable thead .sorting_desc_disabled {\n  cursor: pointer; }\n  table.dataTable thead .sorting:after,\n  table.dataTable thead .sorting_asc:after,\n  table.dataTable thead .sorting_desc:after,\n  table.dataTable thead .sorting_asc_disabled:after,\n  table.dataTable thead .sorting_desc_disabled:after {\n    display: none; }\n\ntable.dataTable thead .sorting {\n  background: url(\"../plugins/datatables/images/sort_both.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc {\n  background: url(\"../plugins/datatables/images/sort_asc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc {\n  background: url(\"../plugins/datatables/images/sort_desc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc_disabled {\n  background: url(\"../plugins/datatables/images/sort_asc_disabled.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc_disabled {\n  background: url(\"../plugins/datatables/images/sort_desc_disabled.png\") no-repeat center right; }\n\ntable.dataTable th:active {\n  outline: none; }\n\n/***\nFixed Header\n***/\ntable.dataTable.fixedHeader-floating {\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n  border: 1px solid #dee5ec;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n.table-header-fixed thead > tr > th {\n  border-top: 0; }\n\n.table > tfoot > tr > th,\n.table > tfoot > tr > td {\n  border-bottom: 0;\n  padding: 10px 18px;\n  border-top: 1px solid #e7ecf1;\n  font-weight: 600; }\n\n/***\nResponsive Datatables\n***/\n.table.dataTable.dt-responsive .table.dataTable.responsive {\n  width: 100%; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control,\ntable.dataTable.dtr-column > tbody > tr > th.control {\n  text-align: center;\n  width: 14px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before, table.dataTable.dtr-column > tbody > tr > th.control:before {\n  margin-left: -8px;\n  text-align: center;\n  text-indent: 0;\n  line-height: 0; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  box-shadow: none !important;\n  background-color: #b0c1d2;\n  font-weight: 300;\n  vertical-align: middle;\n  line-height: 16px;\n  border: 0; }\n\ntable.dataTable.dtr-column > tbody > tr.parent td.control:before,\ntable.dataTable.dtr-column > tbody > tr.parent th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {\n  background-color: #36c6d3;\n  font-weight: 300;\n  vertical-align: middle;\n  border: 0; }\n\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  top: 10px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before {\n  text-align: center;\n  margin-top: -8px; }\n\ntable.dataTable > tbody > tr.child ul li {\n  border: 0; }\n\n@-moz-document url-prefix() {\n  .portlet-datatable .dataTables_wrapper .table-responsive {\n    padding: 0 2px !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .portlet.box .dataTables_wrapper .dt-buttons,\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: 0;\n    margin-bottom: 20px; }\n    .portlet.box .dataTables_wrapper .dt-buttons > .dt-button,\n    .portlet.light .dataTables_wrapper .dt-buttons > .dt-button {\n      margin-top: 5px; } }\n\n.table-scrollable .dataTable th > .btn-group,\n.table-scrollable .dataTable td > .btn-group {\n  position: absolute;\n  margin-top: -2px; }\n\n.dataTable td .popover-content .btn-group {\n  position: static !important; }\n\n.table .btn-group .btn {\n  margin-left: 0;\n  margin-right: -1px; }\n\n/***\nDropzone css changes(new in v1.1.1)\n***/\n.dropzone {\n  -webkit-border-radius: 0px;\n  -moz-border-radius: 0px;\n  border-radius: 0px; }\n\n.dropzone-file-area {\n  border: 2px dashed #028AF4;\n  background: white;\n  padding: 20px;\n  margin: 0 auto;\n  text-align: center; }\n\n.dz-hidden-input {\n  left: 0; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .dropzone-file-area {\n    width: auto; } }\n\n/***\nFancy box fix overlay fix\n***/\n.fancybox-overlay {\n  z-index: 100000; }\n\n.fancybox-opened {\n  z-index: 100001; }\n\n/***\nFuelUX Spinners\n***/\n.spinner-buttons.btn-group-vertical .btn {\n  text-align: center;\n  margin: 0;\n  height: 17px;\n  width: 22px;\n  padding-left: 6px;\n  padding-right: 6px;\n  padding-top: 0px; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up {\n    border-radius: 0;\n    border-top-right-radius: 2px !important; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down {\n    border-radius: 0;\n    border-bottom-right-radius: 2px; }\n\n/***\nFullcalendar\n***/\n/* External events */\n.external-event {\n  display: inline-block;\n  cursor: move;\n  margin-bottom: 5px;\n  margin-left: 5px; }\n\n.fc-scroller {\n  overflow-y: auto;\n  overflow-x: hidden; }\n\n.fc-month-view .fc-scroller {\n  height: auto !important; }\n\n.portlet .event-form-title {\n  font-size: 16px;\n  margin-top: 4px;\n  font-weight: 400;\n  margin-bottom: 10px; }\n\n.portlet.calendar .fc-button {\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  text-shadow: none;\n  border: 0;\n  height: 35px;\n  padding: 5px 8px 8px 8px;\n  margin-left: 2px;\n  border-top-style: none;\n  border-bottom-style: none;\n  border-right-style: solid;\n  border-left-style: solid;\n  border-color: #ddd;\n  background: transparent;\n  color: #fff;\n  top: -48px;\n  outline: none !important;\n  -webkit-border-radius: 2px 2px 0 0;\n  -moz-border-radius: 2px 2px 0 0;\n  -ms-border-radius: 2px 2px 0 0;\n  -o-border-radius: 2px 2px 0 0;\n  border-radius: 2px 2px 0 0; }\n\n.portlet.calendar .fc-toolbar {\n  margin-bottom: 0px; }\n  .portlet.calendar .fc-toolbar h2 {\n    margin-top: 3px;\n    font-size: 17px; }\n\n.portlet.calendar .fc-header {\n  margin-bottom: -21px; }\n\n.portlet.calendar .fc-button-prev {\n  padding-right: 10px;\n  padding-left: 8px; }\n\n.portlet.calendar .fc-button-next {\n  padding-right: 8px;\n  padding-left: 10px; }\n\n.portlet.calendar .fc-button .fc-icon {\n  height: 20px;\n  top: -5px; }\n\n.portlet.calendar .fc-button.fc-state-active, .portlet.calendar .fc-button.fc-state-hover {\n  color: #666;\n  background-color: #fff; }\n\n.portlet.calendar .fc-button.fc-state-disabled {\n  color: #ddd; }\n\n.portlet.calendar .fc-button .fc-icon-left-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:after {\n    content: \"\";\n    margin: 0; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:before {\n    content: \"\\f104\"; }\n\n.portlet.calendar .fc-button .fc-icon-right-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:after {\n    margin: 0;\n    content: \"\"; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:before {\n    content: \"\\f105\"; }\n\n.portlet.calendar .fc-text-arrow {\n  font-size: 22px;\n  font-family: \"Courier New\", Courier, monospace;\n  vertical-align: baseline; }\n\n.portlet.calendar .fc-event {\n  border: 0px;\n  background-color: #69a4e0;\n  color: #fff; }\n  .portlet.calendar .fc-event .fc-content {\n    border: 0px;\n    padding: 5px 7px; }\n  .portlet.calendar .fc-event .fc-time {\n    float: left;\n    text-align: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300;\n    padding-right: 5px; }\n  .portlet.calendar .fc-event .fc-title {\n    text-align: left;\n    float: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300; }\n\n.portlet.calendar .fc-header-title h2 {\n  font-size: 14px;\n  line-height: 20px;\n  font-weight: 400;\n  color: #111; }\n\n.portlet.calendar .fc-widget-header {\n  background-image: none;\n  filter: none;\n  background-color: #eee;\n  text-transform: uppercase;\n  font-weight: 300; }\n\n.portlet.calendar.light .fc-button {\n  top: -60px;\n  color: #666;\n  text-transform: uppercase;\n  font-size: 12px;\n  padding-bottom: 35px; }\n  .portlet.calendar.light .fc-button .fc-text-arrow {\n    margin-top: -6px;\n    display: inline-block; }\n  .portlet.calendar.light .fc-button.fc-state-active, .portlet.calendar.light .fc-button.fc-state-hover {\n    color: #333;\n    border-bottom: 2px solid #36c6d3; }\n  .portlet.calendar.light .fc-button.fc-state-disabled {\n    color: #aaa; }\n\n.portlet.calendar .mobile .fc-button {\n  padding: 0px 6px 20px 6px;\n  margin-left: 2px;\n  border: 0;\n  background-color: #ddd;\n  background-image: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n  color: #000;\n  text-shadow: none;\n  text-align: center; }\n  .portlet.calendar .mobile .fc-button.fc-state-hover, .portlet.calendar .mobile .fc-button.fc-state-active {\n    background-color: #eee; }\n  .portlet.calendar .mobile .fc-button.fc-state-disabled {\n    color: #bbb; }\n\n.portlet.calendar .mobile .fc-button-prev {\n  margin-right: 5px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-button-next {\n  margin-right: -0px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-header-space {\n  margin: 0px;\n  padding: 0px;\n  width: 0px; }\n\n.portlet.calendar .mobile .fc-header-left {\n  position: absolute;\n  z-index: 10; }\n  .portlet.calendar .mobile .fc-header-left .fc-button {\n    top: -2px; }\n\n.portlet.calendar .mobile .fc-header-right {\n  position: relative;\n  right: 0; }\n  .portlet.calendar .mobile .fc-header-right .fc-button {\n    top: 35px; }\n\n.portlet.calendar .mobile .fc-content {\n  margin-top: 53px; }\n\n.portlet.calendar.light .fc-button {\n  top: -47px; }\n\n/***\nGoogle Maps\n***/\n.gmaps {\n  height: 300px;\n  width: 100%;\n  /* important!  bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ }\n  .gmaps img {\n    max-width: none; }\n\n#gmap_static div {\n  background-repeat: no-repeat;\n  background-position: 50% 50%;\n  height: 100%;\n  display: block;\n  height: 300px; }\n\n#gmap_routes_instructions {\n  margin-top: 10px;\n  margin-bottom: 0px; }\n\n/***\nGritter notification modify\n***/\n#gritter-notice-wrapper {\n  right: 1px !important; }\n\n.gritter-close {\n  left: auto !important;\n  right: 3px !important; }\n\n.gritter-title {\n  font-family: 'Open Sans';\n  font-size: 18px;\n  font-weight: 300; }\n\n/***\nDashboard Charts(new in v1.2.1)\n***/\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 14px !important;\n  font-weight: 300;\n  margin: 0 auto;\n  position: relative;\n  text-align: center;\n  width: 75px;\n  height: 75px;\n  line-height: 75px; }\n  .easy-pie-chart .number canvas {\n    position: absolute;\n    top: 0;\n    left: 0; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery File Upload\n***/\n.blueimp-gallery .close {\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important;\n  margin-top: -2px; }\n\n.blueimp-gallery .prev,\n.blueimp-gallery .next {\n  border-radius: 23px !important; }\n\n/***\njQuery Multi Select\n***/\n.ms-container .ms-list {\n  border: 1px solid #e5e5e5;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-optgroup-label {\n  font-size: 14px; }\n\n.ms-container .ms-selectable li.ms-elem-selectable,\n.ms-container .ms-selection li.ms-elem-selection {\n  font-size: 13px; }\n\n.ms-container .ms-list.ms-focus {\n  border-color: #999999;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-selectable li.ms-hover,\n.ms-container .ms-selection li.ms-hover {\n  color: #333;\n  background-color: #eee; }\n\n.ms-container .form-control {\n  margin-bottom: 5px; }\n\n/***\njQuery Notific8 Plugin\n***/\n.jquery-notific8-message {\n  font-size: 13px; }\n\n[class*=\"jquery-notific8\"],\n[class*=\"jquery-notific8\"]:after,\n[class*=\"jquery-notific8\"]:before {\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box; }\n\n.right .jquery-notific8-close-sticky span,\n.left .jquery-notific8-close-sticky span {\n  font-size: 10px; }\n\n.jquery-notific8-heading {\n  font-weight: 300;\n  font-size: 16px; }\n\n/***\nPassword Strength(in v1.4)\n***/\n.password-strength .password-verdict {\n  display: inline-block;\n  margin-top: 6px;\n  margin-left: 5px; }\n\n.password-strength .progress {\n  margin-top: 5px;\n  margin-bottom: 0; }\n\n.password-strength .progress-bar {\n  padding: 2px; }\n\n/***\njQuery Slimscroll\n***/\n.scroller {\n  padding: 0px;\n  margin: 0px;\n  padding-right: 12px;\n  overflow: hidden; }\n\n.scroller-footer {\n  margin-top: 10px; }\n  .scroller-footer:before, .scroller-footer:after {\n    content: \" \";\n    display: table; }\n  .scroller-footer:after {\n    clear: both; }\n\n.portlet-body .slimScrollBar {\n  margin-right: 0px; }\n\n/***\njQuery Sparkline\n***/\n.jqstooltip {\n  width: auto !important;\n  height: auto !important; }\n\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 16px;\n  font-weight: 300;\n  width: 85px;\n  margin: 0 auto; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery UI Sliders(new in v1.1.1)\n***/\n.slider {\n  border: 0;\n  padding: 0;\n  display: block;\n  margin: 12px 5px;\n  min-height: 11px; }\n\n.ui-slider-vertical {\n  width: 11px; }\n\n.ui-slider-horizontal .ui-slider-handle {\n  top: -3px; }\n\n.ui-slider-vertical .ui-slider-handle {\n  left: -3px; }\n\n.ui-slider-vertical,\n.ui-slider-handle {\n  filter: none !important;\n  background-image: none !important; }\n\n/***\nJQVMAP Plugin\n***/\n.jqvmap-zoomout,\n.jqvmap-zoomin {\n  height: 16px;\n  width: 16px;\n  background-color: #666; }\n\n.vmaps {\n  position: relative;\n  overflow: hidden;\n  height: 300px; }\n\n/***\nJstree\n***/\n.jstree-default .jstree-clicked {\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-clicked,\n.jstree-wholerow .jstree-wholerow-clicked {\n  background: none;\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-hovered,\n.jstree-wholerow .jstree-wholerow-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-icon.icon-lg {\n  margin-top: 1px; }\n\n.jstree-open > .jstree-anchor > .fa-folder:before {\n  margin-left: 2px;\n  content: \"\\f07c\"; }\n\n.jstree-default.jstree-rtl .jstree-last {\n  background: transparent;\n  background-repeat: no-repeat; }\n\n.vakata-context,\n.vakata-context ul {\n  padding: 0;\n  min-width: 125px;\n  background-color: #ffffff;\n  font-size: 14px;\n  font-family: \"Segoe UI\",Helvetica, Arial, sans-serif;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.vakata-context li {\n  border: 0; }\n  .vakata-context li a {\n    padding: 0 10px;\n    border: 0; }\n    .vakata-context li a i {\n      display: none; }\n    .vakata-context li a .vakata-contextmenu-sep {\n      display: none; }\n\n.vakata-context .vakata-context-hover > a,\n.vakata-context li a:hover {\n  background-color: #eee;\n  color: #333;\n  box-shadow: none;\n  margin: 0; }\n  .vakata-context .vakata-context-hover > a .span,\n  .vakata-context .vakata-context-hover > a .ins,\n  .vakata-context li a:hover .span,\n  .vakata-context li a:hover .ins {\n    border: 0 !important; }\n\n.vakata-context li a span,\n.vakata-context li a ins {\n  display: none;\n  border: 0 !important; }\n\n.vakata-context .vakata-context-separator a,\n.vakata-context-rtl .vakata-context-separator a {\n  margin: 0;\n  border: 0; }\n\n.jstree-rename-input {\n  background-color: #ffffff !important;\n  border: 1px solid #e5e5e5 !important;\n  outline: none !important;\n  padding: 2px 6px !important;\n  margin-right: -4px !important; }\n\n/***\nNoUIRangeSlider\n***/\n.noUi-horizontal {\n  margin: 9px 0; }\n\n/***\nColor variants\n***/\n.noUi-primary .noUi-connect {\n  background: #337ab7; }\n\n.noUi-info .noUi-connect {\n  background: #659be0; }\n\n.noUi-success .noUi-connect {\n  background: #36c6d3; }\n\n.noUi-warning .noUi-connect {\n  background: #F1C40F; }\n\n.noUi-danger .noUi-connect {\n  background: #ed6b75; }\n\n.noUi-default .noUi-connect {\n  background: #bac3d0; }\n\n/* Conect slider */\n/* For this slider, disable the 'origin' size. */\n.noui-connect .noUi-origin {\n  right: auto;\n  width: 0; }\n\n/* Position the bar and color it. */\n.noui-connect .connect {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  background: #80C9F5;\n  box-shadow: inset 0 0 3px rgba(51, 51, 51, 0.45); }\n\n/* When the slider is moved by tap,\n   transition the connect bar like the handle. */\n.noui-connect.noUi-state-tap .connect {\n  -webkit-transition: left 300ms, right 300ms;\n  transition: left 300ms, right 300ms; }\n\n/**\nnoUI Tooltips\n**/\n.noUi-handle .noUi-tooltip {\n  display: block;\n  position: absolute;\n  border: 1px solid #D9D9D9;\n  font-size: 12px;\n  border-radius: 3px;\n  background: #fff;\n  top: -55px;\n  padding: 5px;\n  left: -10px;\n  text-align: center;\n  min-width: 50px; }\n  .noUi-handle .noUi-tooltip strong {\n    display: block;\n    padding: 2px; }\n\n/***\nGoogle reCaptcha\n***/\n.form-recaptcha-img {\n  margin-bottom: 10px;\n  clear: both;\n  border: 1px solid #e5e5e5;\n  padding: 5px; }\n\niframe[src=\"about:blank\"] {\n  display: none; }\n\n.select2-container--bootstrap .select2-search--dropdown .select2-search__field,\n.select2-container--bootstrap .select2-selection,\n.select2-container--bootstrap.select2-container--focus .select2-selection,\n.select2-container--bootstrap.select2-container--open .select2-selection {\n  -webkit-box-shadow: none;\n  box-shadow: none; }\n\n.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove {\n  cursor: pointer;\n  display: inline-block;\n  font-weight: 700;\n  margin-right: 3px; }\n\n.select2-container--bootstrap .select2-results__group {\n  display: block;\n  font-size: 12px;\n  white-space: nowrap;\n  font-weight: 600;\n  font-family: \"Open Sans\", sans-serif; }\n\n.select2-container--bootstrap .select2-selection {\n  font-family: \"Open Sans\", sans-serif; }\n\n.modal-open .select2-dropdown {\n  z-index: 10060; }\n\n.modal-open .select2-close-mask {\n  z-index: 10055; }\n\n.modal-open .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field {\n  width: auto !important; }\n\n.select2-result-repository {\n  padding-top: 4px;\n  padding-bottom: 3px; }\n\n.select2-result-repository__avatar {\n  float: left;\n  width: 60px;\n  margin-right: 10px; }\n\n.select2-result-repository__avatar img {\n  width: 100%;\n  height: auto;\n  border-radius: 2px; }\n\n.select2-result-repository__meta {\n  margin-left: 70px; }\n\n.select2-result-repository__title {\n  color: black;\n  font-weight: bold;\n  word-wrap: break-word;\n  line-height: 1.1;\n  margin-bottom: 4px; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers {\n  margin-right: 1em; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers, .select2-result-repository__watchers {\n  display: inline-block;\n  color: #aaa;\n  font-size: 11px; }\n\n.select2-result-repository__description {\n  font-size: 13px;\n  color: #777;\n  margin-top: 4px; }\n\n.select2-results__option--highlighted .select2-result-repository__title {\n  color: white; }\n\n.select2-results__option--highlighted .select2-result-repository__forks, .select2-results__option--highlighted .select2-result-repository__stargazers, .select2-results__option--highlighted .select2-result-repository__description, .select2-results__option--highlighted .select2-result-repository__watchers {\n  color: #c1d7e9; }\n\n.select2-selection__choice {\n  background-color: #eee !important;\n  border: 1px solid #eee !important; }\n  .select2-selection__choice .select2-selection__choice__remove {\n    font-weight: normal !important; }\n\n/***\nMorris Charts\n***/\n.portlet-body-morris-fit {\n  margin-right: -20px;\n  margin-left: -20px;\n  margin-bottom: -15px; }\n  .portlet-body-morris-fit > svg {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n\n.morris-hover.morris-default-style .morris-hover-row-label {\n  text-align: left;\n  font-weight: 400;\n  font-size: 15px;\n  color: #7D8C9D;\n  font-family: \"Open Sans\", sans-serif; }\n\n.morris-hover.morris-default-style .morris-hover-point {\n  text-align: left;\n  font-size: 14px;\n  font-weight: 400;\n  font-family: \"Open Sans\", sans-serif; }\n\n/***\niCheck\n***/\n.icheck-list > label {\n  display: block;\n  margin-bottom: 8px; }\n  .icheck-list > label:last-child {\n    margin-bottom: 0; }\n\n.form-horizontal .icheck-inline {\n  margin-top: 8px; }\n\n.icheck-inline > label {\n  display: inline-block;\n  margin-left: 15px; }\n  .icheck-inline > label:first-child {\n    margin-left: 0; }\n\ndiv[class*='icheckbox_'],\ndiv[class*='iradio_'] {\n  margin-right: 5px;\n  top: -1px !important; }\n\n.icheck-colors {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .icheck-colors > li {\n    padding: 0;\n    margin: 4px;\n    float: left;\n    display: inline-block;\n    height: 20px;\n    width: 20px;\n    background: #000000;\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n    .icheck-colors > li:first-child {\n      margin-left: 0; }\n    .icheck-colors > li:hover {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ;\n      cursor: pointer; }\n    .icheck-colors > li.active {\n      height: 26px;\n      margin-top: 0;\n      opacity: 0.6 ;\n      filter: alpha(opacity=60) ; }\n    .icheck-colors > li.red {\n      background: #d54e21; }\n    .icheck-colors > li.green {\n      background: #78a300; }\n    .icheck-colors > li.blue {\n      background: #0e76a8; }\n    .icheck-colors > li.aero {\n      background: #9cc2cb; }\n    .icheck-colors > li.grey {\n      background: #73716e; }\n    .icheck-colors > li.orange {\n      background: #f70; }\n    .icheck-colors > li.yellow {\n      background: #fc0; }\n    .icheck-colors > li.pink {\n      background: #ff66b5; }\n    .icheck-colors > li.purple {\n      background: #6a5a8c; }\n\n/***\nAngularJS UI-select\n***/\n.ui-select-match-close {\n  margin-top: 5px !important;\n  margin-left: 5px !important; }\n\n.minicolors-swatch {\n  border: 0; }\n\n/***\nCodemirror Plugin\n***/\n.CodeMirror {\n  border: 1px solid #eee;\n  height: auto; }\n\n/***\nPrism Plugin\n***/\npre[class*=\"language-\"] {\n  padding: 10px;\n  background: none !important;\n  border: 1px solid #f1f4f7 !important;\n  box-shadow: none !important;\n  margin: 0; }\n  pre[class*=\"language-\"] code {\n    background: none !important;\n    box-shadow: none !important;\n    border: 0 !important; }\n\n.socicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased; }\n\n.socicon-btn:empty .socicon:empty {\n  width: 1em; }\n\n.socicon-btn {\n  position: relative;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  text-align: center;\n  width: 44px;\n  height: 44px;\n  padding-top: 11px;\n  font-size: 24px;\n  border: 1px solid #e7ecf1;\n  color: #3f444a;\n  transition: background, color 0.3s; }\n  .socicon-btn.socicon-solid {\n    border: 0;\n    width: 46px;\n    height: 46px;\n    padding-top: 12px; }\n  .socicon-btn.socicon-btn-circle {\n    border-radius: 44px !important; }\n  .socicon-btn:hover {\n    transition: background, color 0.3s;\n    text-decoration: none; }\n  .socicon-btn.socicon-lg {\n    width: 54px;\n    height: 54px;\n    padding-top: 13px;\n    font-size: 28px; }\n    .socicon-btn.socicon-lg.socicon-solid {\n      border: 0;\n      width: 55px;\n      height: 55px;\n      padding-top: 13px; }\n  .socicon-btn.socicon-sm {\n    width: 30px;\n    height: 30px;\n    padding-top: 8px;\n    font-size: 16px; }\n    .socicon-btn.socicon-sm.socicon-solid {\n      border: 0;\n      width: 30px;\n      height: 30px;\n      padding-top: 8px; }\n\n.socicons .socicon-btn {\n  margin-bottom: 5px; }\n\n.socicon-twitter:before {\n  content: \"a\"; }\n\n.socicon-facebook:before {\n  content: \"b\"; }\n\n.socicon-google:before {\n  content: \"c\"; }\n\n.socicon-pinterest:before {\n  content: \"d\"; }\n\n.socicon-foursquare:before {\n  content: \"e\"; }\n\n.socicon-yahoo:before {\n  content: \"f\"; }\n\n.socicon-skype:before {\n  content: \"g\"; }\n\n.socicon-yelp:before {\n  content: \"h\"; }\n\n.socicon-feedburner:before {\n  content: \"i\"; }\n\n.socicon-linkedin:before {\n  content: \"j\"; }\n\n.socicon-viadeo:before {\n  content: \"k\"; }\n\n.socicon-xing:before {\n  content: \"l\"; }\n\n.socicon-myspace:before {\n  content: \"m\"; }\n\n.socicon-soundcloud:before {\n  content: \"n\"; }\n\n.socicon-spotify:before {\n  content: \"o\"; }\n\n.socicon-grooveshark:before {\n  content: \"p\"; }\n\n.socicon-lastfm:before {\n  content: \"q\"; }\n\n.socicon-youtube:before {\n  content: \"r\"; }\n\n.socicon-vimeo:before {\n  content: \"s\"; }\n\n.socicon-dailymotion:before {\n  content: \"t\"; }\n\n.socicon-vine:before {\n  content: \"u\"; }\n\n.socicon-flickr:before {\n  content: \"v\"; }\n\n.socicon-500px:before {\n  content: \"w\"; }\n\n.socicon-instagram:before {\n  content: \"x\"; }\n\n.socicon-wordpress:before {\n  content: \"y\"; }\n\n.socicon-tumblr:before {\n  content: \"z\"; }\n\n.socicon-blogger:before {\n  content: \"A\"; }\n\n.socicon-technorati:before {\n  content: \"B\"; }\n\n.socicon-reddit:before {\n  content: \"C\"; }\n\n.socicon-dribbble:before {\n  content: \"D\"; }\n\n.socicon-stumbleupon:before {\n  content: \"E\"; }\n\n.socicon-digg:before {\n  content: \"F\"; }\n\n.socicon-envato:before {\n  content: \"G\"; }\n\n.socicon-behance:before {\n  content: \"H\"; }\n\n.socicon-delicious:before {\n  content: \"I\"; }\n\n.socicon-deviantart:before {\n  content: \"J\"; }\n\n.socicon-forrst:before {\n  content: \"K\"; }\n\n.socicon-playstore:before {\n  content: \"L\"; }\n\n.socicon-zerply:before {\n  content: \"M\"; }\n\n.socicon-wikipedia:before {\n  content: \"N\"; }\n\n.socicon-apple:before {\n  content: \"O\"; }\n\n.socicon-flattr:before {\n  content: \"P\"; }\n\n.socicon-github:before {\n  content: \"Q\"; }\n\n.socicon-chimein:before {\n  content: \"R\"; }\n\n.socicon-friendfeed:before {\n  content: \"S\"; }\n\n.socicon-newsvine:before {\n  content: \"T\"; }\n\n.socicon-identica:before {\n  content: \"U\"; }\n\n.socicon-bebo:before {\n  content: \"V\"; }\n\n.socicon-zynga:before {\n  content: \"W\"; }\n\n.socicon-steam:before {\n  content: \"X\"; }\n\n.socicon-xbox:before {\n  content: \"Y\"; }\n\n.socicon-windows:before {\n  content: \"Z\"; }\n\n.socicon-outlook:before {\n  content: \"1\"; }\n\n.socicon-coderwall:before {\n  content: \"2\"; }\n\n.socicon-tripadvisor:before {\n  content: \"3\"; }\n\n.socicon-appnet:before {\n  content: \"4\"; }\n\n.socicon-goodreads:before {\n  content: \"5\"; }\n\n.socicon-tripit:before {\n  content: \"6\"; }\n\n.socicon-lanyrd:before {\n  content: \"7\"; }\n\n.socicon-slideshare:before {\n  content: \"8\"; }\n\n.socicon-buffer:before {\n  content: \"9\"; }\n\n.socicon-rss:before {\n  content: \",\"; }\n\n.socicon-vkontakte:before {\n  content: \";\"; }\n\n.socicon-disqus:before {\n  content: \":\"; }\n\n.socicon-houzz:before {\n  content: \"+\"; }\n\n.socicon-mail:before {\n  content: \"@\"; }\n\n.socicon-patreon:before {\n  content: \"=\"; }\n\n.socicon-paypal:before {\n  content: \"-\"; }\n\n.socicon-playstation:before {\n  content: \"^\"; }\n\n.socicon-smugmug:before {\n  content: \"¨\"; }\n\n.socicon-swarm:before {\n  content: \"$\"; }\n\n.socicon-triplej:before {\n  content: \"*\"; }\n\n.socicon-yammer:before {\n  content: \"&\"; }\n\n.socicon-stackoverflow:before {\n  content: \"(\"; }\n\n.socicon-drupal:before {\n  content: \"#\"; }\n\n.socicon-odnoklassniki:before {\n  content: \".\"; }\n\n.socicon-android:before {\n  content: \"_\"; }\n\n.socicon-meetup:before {\n  content: \"]\"; }\n\n.socicon-persona:before {\n  content: \")\"; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/css/plugins.css",
    "content": "@charset \"UTF-8\";\n/******************************\n 3RD PARTY PLUGIN CUSTOMIZATION \n******************************/\n/* Cubic Bezier Transition */\n/***\nBootstrap Colorpicker\n***/\n.input-group.color .input-group-btn i {\n  position: absolute;\n  display: block;\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  right: 6px; }\n\n.colorpicker.dropdown-menu {\n  padding: 5px; }\n\n/* change z-index when opened in modal */\n.modal-open .colorpicker {\n  z-index: 10055 !important; }\n\n/***\nBootstrap Datepaginator\n***/\n.datepaginator a {\n  font-family: 'Open Sans';\n  font-size: 13px;\n  font-weight: 300; }\n\n.datepicker .today {\n  background-image: none !important;\n  filter: none !important; }\n\n#dp-calendar {\n  right: 4px !important; }\n\n.datepaginator .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepaginator .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Datepicker\n***/\n.datepicker.dropdown-menu {\n  padding: 5px; }\n\n.datepicker .selected {\n  background-color: #909090 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .input-daterange input {\n  text-align: left; }\n\n/* change z-index when opened in modal */\n.modal-open .datepicker {\n  z-index: 10055 !important; }\n\n.datepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datepicker table th {\n  color: #333;\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datepicker.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.datepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Daterangepicker\n***/\n.modal-open .daterangepicker {\n  z-index: 10055 !important; }\n\n.daterangepicker {\n  margin-top: 4px; }\n  .daterangepicker .input-mini {\n    width: 100% !important;\n    outline: none !important; }\n\n.daterangepicker td {\n  text-shadow: none; }\n\n.daterangepicker td.active {\n  background-color: #4b8df8;\n  background-image: none;\n  filter: none; }\n\n.daterangepicker th {\n  font-weight: 400;\n  font-size: 14px; }\n\n.daterangepicker .ranges input[type=\"text\"] {\n  width: 70px !important;\n  font-size: 11px;\n  vertical-align: middle; }\n\n.daterangepicker .ranges label {\n  font-weight: 300;\n  display: block; }\n\n.daterangepicker .ranges {\n  width: 170px; }\n  .daterangepicker .ranges ul > li.active {\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n\n.daterangepicker .ranges .btn {\n  margin-top: 10px; }\n\n.daterangepicker.dropdown-menu {\n  padding: 5px; }\n\n.daterangepicker .ranges li {\n  color: #333; }\n\n.daterangepicker .ranges li.active,\n.daterangepicker .ranges li:hover {\n  background: #4b8df8 !important;\n  border: 1px solid #4b8df8 !important;\n  color: #fff; }\n\n.daterangepicker .range_inputs input {\n  margin-bottom: 0 !important; }\n\n.daterangepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.daterangepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap  Datetimepicker\n***/\n.datetimepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datetimepicker table th {\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datetimepicker.dropdown-menu {\n  padding: 5px; }\n\n.datetimepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datetimepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/* change z-index when opened in modal */\n.modal-open .datetimepicker {\n  z-index: 10055; }\n\n/***\nBootstrap Editable\n***/\n.editable-input table,\n.editable-input table th,\n.editable-input table td,\n.editable-input table tr {\n  border: 0 !important; }\n\n.editable-input .combodate select {\n  margin-bottom: 5px; }\n\n/***\nJansy File Input plugin css changes\n***/\n.fileinput {\n  margin-bottom: 0; }\n  .fileinput .close {\n    float: none; }\n  .fileinput .input-group {\n    white-space: nowrap;\n    overflow: hidden; }\n\n/***\nBootstrap Markdown\n***/\n.md-input {\n  padding: 5px !important;\n  border-bottom: 0 !important;\n  -webkit-border-radius: 0 0 4px 4px;\n  -moz-border-radius: 0 0 4px 4px;\n  -ms-border-radius: 0 0 4px 4px;\n  -o-border-radius: 0 0 4px 4px;\n  border-radius: 0 0 4px 4px; }\n\n.md-editor {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .md-editor .btn-toolbar {\n    margin-left: 0px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .md-editor .btn-toolbar .btn-group .btn-sm.btn {\n      padding-bottom: 3px; }\n    .md-editor .btn-toolbar .btn-group .btn-primary {\n      padding-top: 5px;\n      padding-bottom: 7px; }\n\n.md-editor.active {\n  border: 1px solid #999999;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .md-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .md-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .md-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap Modal\n***/\n/* fix: content shifting to the right on modal open */\n.modal-open.page-overflow .page-container,\n.modal-open.page-overflow .page-container .navbar-fixed-top,\n.modal-open.page-overflow .page-container .navbar-fixed-bottom,\n.modal-open.page-overflow .modal-scrollable {\n  overflow-y: auto !important; }\n\n.modal-scrollable {\n  overflow: hidden !important; }\n\n/* BS 3.3.1 fix */\n.modal-backdrop {\n  position: fixed;\n  bottom: 0; }\n\n.modal-scrollable {\n  overflow: hidden !important;\n  z-index: 10051;\n  overflow-y: scroll !important; }\n\n/***\nBootstrap Select\n***/\n.bootstrap-select .btn {\n  border-color: #c2cad8; }\n\n.has-error .bootstrap-select .btn {\n  border-color: #fbe1e3; }\n\n.has-success .bootstrap-select .btn {\n  border-color: #abe7ed; }\n\n.has-warning .bootstrap-select .btn {\n  border-color: #f9e491; }\n\n.bootstrap-select.open .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select.open.dropup .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select .btn:focus {\n  outline: none !important;\n  outline-offset: 0; }\n\n.bootstrap-select.btn-group .dropdown-menu {\n  margin-top: 1px; }\n\n.bootstrap-select.btn-group .dropdown-menu > li > dt > .text {\n  font-weight: 600;\n  font-family: 'Open Sans';\n  font-size: 14px; }\n\n.bootstrap-select.btn-group .dropdown-menu .text-muted {\n  color: #999 !important; }\n\n.bootstrap-select .caret {\n  border: 0;\n  width: auto;\n  height: auto;\n  margin-top: -10px !important; }\n\n.bootstrap-select .caret:before {\n  content: \"\\f107\";\n  display: inline-block;\n  border: 0;\n  font-family: FontAwesome;\n  font-style: normal;\n  font-weight: normal; }\n\n.bootstrap-select .selected i {\n  color: #aaa; }\n\n.bootstrap-select .dropdown-menu {\n  z-index: 1000 !important; }\n\n.modal-open .bootstrap-select .dropdown-menu {\n  z-index: 10050 !important; }\n\n/***\nBootstrap Switch \n***/\n.bootstrap-switch {\n  border-color: #c2cad8; }\n  .bootstrap-switch.bootstrap-switch-focused {\n    box-shadow: none;\n    border-color: #c2cad8; }\n\n/***\nColor variants\n***/\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #337ab7; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #659be0; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #36c6d3; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  color: #fff;\n  background: #F1C40F; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #ed6b75; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #444;\n  background: #e8eaef; }\n\n/* Bootstrap switch on portlet headers */\n.portlet:not(.light) > .portlet-title > .actions > .bootstrap-switch {\n  border-color: transparent;\n  margin-top: 0px; }\n\n/***\nBootstrap Time Picker\n***/\n.bootstrap-timepicker-widget table td a {\n  padding: 4px 0; }\n\n.bootstrap-timepicker-widget input,\n.bootstrap-timepicker-widget input:focus {\n  outline: none !important;\n  border: 0; }\n\n.modal-open .bootstrap-timepicker-widget {\n  z-index: 10055 !important; }\n\n.bootstrap-timepicker-widget.timepicker-orient-bottom:before,\n.bootstrap-timepicker-widget.timepicker-orient-bottom:after {\n  top: auto; }\n\n/***\nToastr Notifications\n***/\n.toast {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.toast {\n  background-color: #030303; }\n\n.toast-success {\n  background-color: #51a351; }\n\n.toast-error {\n  background-color: #bd362f; }\n\n.toast-info {\n  background-color: #2f96b4; }\n\n.toast-warning {\n  background-color: #f89406; }\n\n.toast .toast-close-button {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  text-indent: -100000px;\n  width: 11px;\n  height: 16px;\n  background-repeat: no-repeat !important;\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important; }\n\n.toast-top-center {\n  top: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-top-center .toast {\n    margin: 0 !important; }\n\n.toast-bottom-center {\n  bottom: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-bottom-center .toast {\n    margin: 0 !important; }\n\n/***\nBootstrap Wizard\n***/\n.form-wizard .progress {\n  margin-bottom: 30px; }\n\n.form-wizard .steps {\n  padding: 10px 0;\n  margin-bottom: 15px;\n  background-color: #fff;\n  background-image: none;\n  filter: none;\n  border: 0px;\n  box-shadow: none; }\n  .form-wizard .steps > li > a.step {\n    background-color: #fff;\n    background-image: none;\n    filter: none;\n    border: 0px;\n    box-shadow: none; }\n    .form-wizard .steps > li > a.step:hover {\n      background: none; }\n    .form-wizard .steps > li > a.step > .number {\n      background-color: #eee;\n      display: inline-block;\n      text-align: center !important;\n      font-size: 16px;\n      font-weight: 300;\n      padding: 11px 15px 13px 15px;\n      margin-right: 10px;\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .form-wizard .steps > li > a.step > .desc {\n      display: inline-block;\n      font-size: 16px;\n      font-weight: 300; }\n      .form-wizard .steps > li > a.step > .desc > i {\n        display: none; }\n  .form-wizard .steps > li.active > a.step .number {\n    background-color: #36c6d3;\n    color: #fff; }\n  .form-wizard .steps > li.active > a.step .desc {\n    color: #333; }\n  .form-wizard .steps > li.done > a.step .number {\n    background-color: #F1C40F;\n    color: #fff; }\n  .form-wizard .steps > li.done > a.step .desc {\n    color: #333; }\n    .form-wizard .steps > li.done > a.step .desc i {\n      font-size: 12px;\n      font-weight: normal;\n      color: #999;\n      display: inline-block; }\n\n@media (min-width: 768px) and (max-width: 1200px) {\n  /* 768px & 1200px */\n  .form-wizard .step .desc {\n    margin-top: 10px;\n    display: block; } }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .form-wizard .steps > li > a {\n    text-align: left; } }\n\n/*!\n * Tab drop for Bootstrap\n */\n.tabbable-tabdrop .nav-tabs,\n.tabbable-tabdrop .nav-pills {\n  position: relative; }\n  .tabbable-tabdrop .nav-tabs .caret,\n  .tabbable-tabdrop .nav-pills .caret {\n    display: none; }\n  .tabbable-tabdrop .nav-tabs .tabdrop .dropdown-toggle i,\n  .tabbable-tabdrop .nav-pills .tabdrop .dropdown-toggle i {\n    font-size: 14px; }\n\n.tabbable-tabdrop .dropdown-menu:after {\n  right: 10px;\n  left: auto; }\n\n.tabbable-tabdrop .dropdown-menu:before {\n  right: 9px;\n  left: auto; }\n\n/***\nwysihtml5\n***/\n.wysihtml5-sandbox {\n  width: 100% !important; }\n\n.wysihtml5-toolbar li {\n  margin: 0px;\n  height: 29px; }\n\n.wysihtml5-toolbar li .dropdown-menu {\n  margin-top: 5px; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .wysihtml5-sandbox {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .wysihtml5-sandbox {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .wysihtml5-sandbox {\n  border: 1px solid #f9e491 !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.note-editor {\n  border: 1px solid #c2cad8;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .note-editor .note-toolbar {\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .note-editor .note-statusbar {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .note-editor .note-statusbar .note-resizebar {\n      border-top: 1px solid #c2cad8; }\n  .note-editor.note-frame.fullscreen {\n    z-index: 10050;\n    width: 100% !important; }\n  .note-editor .dropdown-menu:before {\n    left: 9px;\n    right: auto; }\n  .note-editor .dropdown-menu:after {\n    left: 10px;\n    right: auto; }\n\n.note-link-dialog .checkbox {\n  margin-left: 20px; }\n\n.has-error .note-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .note-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .note-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap GtreeTable\n***/\n.gtreetable .dropdown-menu {\n  margin-top: 0px; }\n  .gtreetable .dropdown-menu:after, .gtreetable .dropdown-menu:before {\n    display: none !important; }\n\n.gtreetable .node-action .form-control {\n  position: relative;\n  top: 2px;\n  display: inline-block; }\n\n.gtreetable .node-icon-selected,\n.gtreetable .node-icon-handle,\n.gtreetable .node-icon-ce,\n.gtreetable .node-icon-type {\n  opacity: 0.6 ;\n  filter: alpha(opacity=60) ; }\n\n/***\nModify bootstrap-tagsinput plugin's css\n***/\n.bootstrap-tagsinput .tag [data-role=\"remove\"] {\n  box-shadow: none;\n  font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:after {\n    font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:hover {\n    text-decoration: none;\n    box-shadow: none; }\n\n.mt-bootstrap-tables .mt-btm-transform .bars {\n  height: auto; }\n\n.fixed-table-toolbar .columns label {\n  margin: 10px;\n  padding: 0 0 0 30px; }\n\n.fixed-table-header th.bs-checkbox {\n  outline: none; }\n  .fixed-table-header th.bs-checkbox .th-inner {\n    overflow: visible; }\n    .fixed-table-header th.bs-checkbox .th-inner .mt-checkbox {\n      right: -5px; }\n\n/***\nBootbox\n***/\n.bootbox .bootbox-close-button {\n  margin-top: 0px !important; }\n\n/*--------------------------------------------------\n    [CSS Animation Amchart]\n----------------------------------------------------*/\n.CSSAnimationChart {\n  width: 100%;\n  height: 500px; }\n  .CSSAnimationChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n.amcharts-graph-g2 .amcharts-graph-stroke {\n  stroke-dasharray: 3px 3px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n.lastBullet {\n  -webkit-animation: am-pulsating 1s ease-out infinite;\n  animation: am-pulsating 1s ease-out infinite; }\n\n@-webkit-keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n@keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n.amcharts-graph-column-front {\n  -webkit-transition: all .3s .3s ease-out;\n  transition: all .3s .3s ease-out; }\n\n.amcharts-graph-column-front:hover {\n  fill: #496375;\n  stroke: #496375;\n  -webkit-transition: all .3s ease-out;\n  transition: all .3s ease-out; }\n\n.amcharts-graph-g3 {\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  stroke-dasharray: 500%;\n  stroke-dasharray: 0 \\0;\n  /* fixes IE prob */\n  stroke-dashoffset: 0 \\0;\n  /* fixes IE prob */\n  -webkit-animation: am-draw 40s;\n  animation: am-draw 40s; }\n\n@-webkit-keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n@keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n/*--------------------------------------------------\n    [Mao Amchart]\n----------------------------------------------------*/\n.mapChart {\n  width: 100%;\n  height: 500px; }\n  .mapChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n/*--------------------------------------------------\n    [Column Line]\n----------------------------------------------------*/\n.columnLine {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n.amcharts-graph-graph2 .amcharts-graph-stroke {\n  stroke-dasharray: 4px 5px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n/*--------------------------------------------------\n    [Animated Pie Chart]\n----------------------------------------------------*/\n.animated-pie-chart {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n/***\nCKEditor css changes\n***/\n.cke {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .cke .cke-top {\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .cke .cke-bottom {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n\n.cke_bottom,\n.cke_inner,\n.cke_top,\n.cke_reset,\n.cke_dialog_title,\n.cke_dialog_footer,\n.cke_dialog {\n  background-image: none !important;\n  filter: none;\n  border-top: 0;\n  border-bottom: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none; }\n\n.cke_dialog_ui_button,\n.cke_dialog_tab {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none !important; }\n\n.cke_dialog_ui_button:hover,\n.cke_dialog_tab:hover {\n  text-decoration: none;\n  text-shadow: none; }\n\n.cke_dialog_ui_input_text {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_combo_button,\n.cke_button,\n.cke_toolbar,\n.cke_toolgroup {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_button,\n.cke_combo_button,\n.cke_panel_grouptitle,\n.cke_hc.cke_panel_listItem a {\n  background-image: none !important;\n  filter: none;\n  text-shadow: none; }\n\n.cke_button:hover,\n.cke_combo_button:hover {\n  background-color: #ddd; }\n\n.cke_toolbar_break {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  box-shadow: none !important;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  -ms-box-shadow: none !important;\n  -o-box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .cke {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .cke {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .cke {\n  border: 1px solid #f9e491 !important; }\n\n/***\nClockface\n***/\n.modal-open .clockface {\n  z-index: 10055 !important; }\n\n.clockface .cell .inner.active,\n.clockface .cell .outer.active {\n  background-color: #4b8df8 !important;\n  background-image: none;\n  filter: none; }\n\n/***\nDatatables general customization\n***/\n.table-checkable tr > th:first-child,\n.table-checkable tr > td:first-child {\n  text-align: center;\n  max-width: 50px;\n  min-width: 40px;\n  padding-left: 0;\n  padding-right: 0; }\n\ntable.dataTable thead th,\ntable.dataTable thead td {\n  border-bottom: 2px solid #e7ecf1;\n  outline: none !important; }\n\ntable.dataTable.no-footer {\n  border-bottom-color: #e7ecf1; }\n\ntable.dataTable tr.heading > th {\n  background-color: #fbfcfd; }\n\ntable.dataTable td.sorting_1, table.dataTable td.sorting_2, table.dataTable td.sorting_3,\ntable.dataTable th.sorting_1,\ntable.dataTable th.sorting_2,\ntable.dataTable th.sorting_3 {\n  background: #fbfcfd !important; }\n\n/***\nExtended pagination\n***/\n.paging_bootstrap_extended {\n  margin: 5px 0 0 0 !important;\n  padding: 0 !important;\n  float: none !important;\n  font-size: 13px; }\n\n.dataTables_extended_wrapper {\n  margin-top: 10px; }\n  .dataTables_extended_wrapper .seperator {\n    padding: 0 2px; }\n  .dataTables_extended_wrapper .table.dataTable {\n    margin: 20px 0 !important; }\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: inline-block;\n    float: none !important;\n    padding: 0 !important;\n    margin: 0 !important;\n    position: static !important; }\n  .dataTables_extended_wrapper .table-group-actions > span {\n    font-size: 13px; }\n  .dataTables_extended_wrapper.DTS .paging_bootstrap_extended {\n    display: inline-block; }\n  .dataTables_extended_wrapper.DTS .dataTables_info {\n    display: inline-block;\n    padding-top: 8px !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_info .seperator {\n      display: none; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollHead {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollHead .dataTables_scrollHeadInner .table.dataTable {\n      margin-bottom: 0 !important; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollBody {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollBody .table.dataTable {\n      margin: 0 !important; }\n\n@media (max-width: 480px) {\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: block;\n    margin-bottom: 10px !important; }\n  .dataTables_extended_wrapper .seperator {\n    display: none !important; } }\n\n.dataTables_extended_wrapper div.dataTables_length label {\n  margin: 0 !important;\n  padding: 0 !important;\n  font-size: 13px;\n  float: none !important;\n  display: inline-block !important; }\n\n.table-container .table-actions-wrapper {\n  display: none; }\n\n/***\nScroller Extension\n***/\n.dataTables_scroll {\n  margin-bottom: 10px; }\n\n.dataTables_scrollHead {\n  border-bottom: 2px solid #e7ecf1 !important; }\n  .dataTables_scrollHead thead th {\n    border-bottom: 0 !important; }\n\n.dataTables_scrollBody {\n  border-bottom: 1px solid #e7ecf1 !important; }\n\n.table-both-scroll .dataTables_scrollBody {\n  border-bottom: 0 !important; }\n\n/***\nDatatables processing\n***/\n.dataTables_wrapper .dataTables_processing {\n  width: 200px;\n  display: inline-block;\n  padding: 7px;\n  left: 50%;\n  margin-left: -100px;\n  margin-top: 10px;\n  text-align: center;\n  color: #3f444a;\n  border: 1px solid #e7ecf1;\n  background: #eef1f5;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n/***\nTool Buttons\n***/\n.dt-button-background {\n  display: none !important; }\n\ndiv.dt-button-collection {\n  border: 1px solid #eee;\n  background: #ffffff;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n  div.dt-button-collection > a.dt-button {\n    background: none;\n    padding: 8px 16px;\n    font-weight: 300;\n    margin: 1px 1px;\n    box-shadow: none !important;\n    border: 0 !important; }\n    div.dt-button-collection > a.dt-button > span {\n      font-size: 14px;\n      color: #333; }\n    div.dt-button-collection > a.dt-button.active {\n      background: #f6f6f6 !important;\n      box-shadow: none !important;\n      border: 0 !important; }\n      div.dt-button-collection > a.dt-button.active > span {\n        color: #333; }\n\nbutton.dt-button,\ndiv.dt-button,\na.dt-button {\n  background-image: none !important;\n  padding: 6px 12px !important; }\n  button.dt-button:last-child,\n  div.dt-button:last-child,\n  a.dt-button:last-child {\n    margin-right: 0; }\n\n.dataTables_wrapper .dt-buttons {\n  float: right; }\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: -64px; }\n  .portlet.box .dataTables_wrapper .dt-buttons {\n    margin-top: -50px; }\n\n/***\nRot Details\n***/\n.dataTable .row-details.row-details-close {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 0; }\n\n.dataTable .row-details.row-details-open {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 -23px; }\n\n/***\nSorting\n***/\ntable.dataTable thead .sorting,\ntable.dataTable thead .sorting_asc,\ntable.dataTable thead .sorting_desc,\ntable.dataTable thead .sorting_asc_disabled,\ntable.dataTable thead .sorting_desc_disabled {\n  cursor: pointer; }\n  table.dataTable thead .sorting:after,\n  table.dataTable thead .sorting_asc:after,\n  table.dataTable thead .sorting_desc:after,\n  table.dataTable thead .sorting_asc_disabled:after,\n  table.dataTable thead .sorting_desc_disabled:after {\n    display: none; }\n\ntable.dataTable thead .sorting {\n  background: url(\"../plugins/datatables/images/sort_both.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc {\n  background: url(\"../plugins/datatables/images/sort_asc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc {\n  background: url(\"../plugins/datatables/images/sort_desc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc_disabled {\n  background: url(\"../plugins/datatables/images/sort_asc_disabled.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc_disabled {\n  background: url(\"../plugins/datatables/images/sort_desc_disabled.png\") no-repeat center right; }\n\ntable.dataTable th:active {\n  outline: none; }\n\n/***\nFixed Header\n***/\ntable.dataTable.fixedHeader-floating {\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n  border: 1px solid #dee5ec;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n.table-header-fixed thead > tr > th {\n  border-top: 0; }\n\n.table > tfoot > tr > th,\n.table > tfoot > tr > td {\n  border-bottom: 0;\n  padding: 10px 18px;\n  border-top: 1px solid #e7ecf1;\n  font-weight: 600; }\n\n/***\nResponsive Datatables\n***/\n.table.dataTable.dt-responsive\n.table.dataTable.responsive {\n  width: 100%; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control,\ntable.dataTable.dtr-column > tbody > tr > th.control {\n  text-align: center;\n  width: 14px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before, table.dataTable.dtr-column > tbody > tr > th.control:before {\n  margin-left: -8px;\n  text-align: center;\n  text-indent: 0;\n  line-height: 0; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  box-shadow: none !important;\n  background-color: #b0c1d2;\n  font-weight: 300;\n  vertical-align: middle;\n  line-height: 16px;\n  border: 0; }\n\ntable.dataTable.dtr-column > tbody > tr.parent td.control:before,\ntable.dataTable.dtr-column > tbody > tr.parent th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {\n  background-color: #36c6d3;\n  font-weight: 300;\n  vertical-align: middle;\n  border: 0; }\n\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  top: 10px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before {\n  text-align: center;\n  margin-top: -8px; }\n\ntable.dataTable > tbody > tr.child ul li {\n  border: 0; }\n\n@-moz-document url-prefix() {\n  .portlet-datatable .dataTables_wrapper .table-responsive {\n    padding: 0 2px !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .portlet.box .dataTables_wrapper .dt-buttons,\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: 0;\n    margin-bottom: 20px; }\n    .portlet.box .dataTables_wrapper .dt-buttons > .dt-button,\n    .portlet.light .dataTables_wrapper .dt-buttons > .dt-button {\n      margin-top: 5px; } }\n\n.table-scrollable .dataTable th > .btn-group,\n.table-scrollable .dataTable td > .btn-group {\n  position: absolute;\n  margin-top: -2px; }\n\n.dataTable td .popover-content .btn-group {\n  position: static !important; }\n\n.table .btn-group .btn {\n  margin-left: 0;\n  margin-right: -1px; }\n\n/***\nDropzone css changes(new in v1.1.1)\n***/\n.dropzone {\n  -webkit-border-radius: 0px;\n  -moz-border-radius: 0px;\n  border-radius: 0px; }\n\n.dropzone-file-area {\n  border: 2px dashed #028AF4;\n  background: white;\n  padding: 20px;\n  margin: 0 auto;\n  text-align: center; }\n\n.dz-hidden-input {\n  left: 0; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .dropzone-file-area {\n    width: auto; } }\n\n/***\nFancy box fix overlay fix\n***/\n.fancybox-overlay {\n  z-index: 100000; }\n\n.fancybox-opened {\n  z-index: 100001; }\n\n/***\nFuelUX Spinners\n***/\n.spinner-buttons.btn-group-vertical .btn {\n  text-align: center;\n  margin: 0;\n  height: 17px;\n  width: 22px;\n  padding-left: 6px;\n  padding-right: 6px;\n  padding-top: 0px; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up {\n    border-radius: 0;\n    border-top-right-radius: 4px !important; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down {\n    border-radius: 0;\n    border-bottom-right-radius: 4px; }\n\n/***\nFullcalendar\n***/\n/* External events */\n.external-event {\n  display: inline-block;\n  cursor: move;\n  margin-bottom: 5px;\n  margin-left: 5px; }\n\n.fc-scroller {\n  overflow-y: auto;\n  overflow-x: hidden; }\n\n.fc-month-view .fc-scroller {\n  height: auto !important; }\n\n.portlet .event-form-title {\n  font-size: 16px;\n  margin-top: 4px;\n  font-weight: 400;\n  margin-bottom: 10px; }\n\n.portlet.calendar .fc-button {\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  text-shadow: none;\n  border: 0;\n  height: 35px;\n  padding: 5px 8px 8px 8px;\n  margin-left: 2px;\n  border-top-style: none;\n  border-bottom-style: none;\n  border-right-style: solid;\n  border-left-style: solid;\n  border-color: #ddd;\n  background: transparent;\n  color: #fff;\n  top: -48px;\n  outline: none !important;\n  -webkit-border-radius: 4px 4px 0 0;\n  -moz-border-radius: 4px 4px 0 0;\n  -ms-border-radius: 4px 4px 0 0;\n  -o-border-radius: 4px 4px 0 0;\n  border-radius: 4px 4px 0 0; }\n\n.portlet.calendar .fc-toolbar {\n  margin-bottom: 0px; }\n  .portlet.calendar .fc-toolbar h2 {\n    margin-top: 3px;\n    font-size: 17px; }\n\n.portlet.calendar .fc-header {\n  margin-bottom: -21px; }\n\n.portlet.calendar .fc-button-prev {\n  padding-right: 10px;\n  padding-left: 8px; }\n\n.portlet.calendar .fc-button-next {\n  padding-right: 8px;\n  padding-left: 10px; }\n\n.portlet.calendar .fc-button .fc-icon {\n  height: 20px;\n  top: -5px; }\n\n.portlet.calendar .fc-button.fc-state-active, .portlet.calendar .fc-button.fc-state-hover {\n  color: #666;\n  background-color: #fff; }\n\n.portlet.calendar .fc-button.fc-state-disabled {\n  color: #ddd; }\n\n.portlet.calendar .fc-button .fc-icon-left-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:after {\n    content: \"\";\n    margin: 0; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:before {\n    content: \"\\f104\"; }\n\n.portlet.calendar .fc-button .fc-icon-right-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:after {\n    margin: 0;\n    content: \"\"; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:before {\n    content: \"\\f105\"; }\n\n.portlet.calendar .fc-text-arrow {\n  font-size: 22px;\n  font-family: \"Courier New\", Courier, monospace;\n  vertical-align: baseline; }\n\n.portlet.calendar .fc-event {\n  border: 0px;\n  background-color: #69a4e0;\n  color: #fff; }\n  .portlet.calendar .fc-event .fc-content {\n    border: 0px;\n    padding: 5px 7px; }\n  .portlet.calendar .fc-event .fc-time {\n    float: left;\n    text-align: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300;\n    padding-right: 5px; }\n  .portlet.calendar .fc-event .fc-title {\n    text-align: left;\n    float: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300; }\n\n.portlet.calendar .fc-header-title h2 {\n  font-size: 14px;\n  line-height: 20px;\n  font-weight: 400;\n  color: #111; }\n\n.portlet.calendar .fc-widget-header {\n  background-image: none;\n  filter: none;\n  background-color: #eee;\n  text-transform: uppercase;\n  font-weight: 300; }\n\n.portlet.calendar.light .fc-button {\n  top: -60px;\n  color: #666;\n  text-transform: uppercase;\n  font-size: 12px;\n  padding-bottom: 35px; }\n  .portlet.calendar.light .fc-button .fc-text-arrow {\n    margin-top: -6px;\n    display: inline-block; }\n  .portlet.calendar.light .fc-button.fc-state-active, .portlet.calendar.light .fc-button.fc-state-hover {\n    color: #333;\n    border-bottom: 2px solid #36c6d3; }\n  .portlet.calendar.light .fc-button.fc-state-disabled {\n    color: #aaa; }\n\n.portlet.calendar .mobile .fc-button {\n  padding: 0px 6px 20px 6px;\n  margin-left: 2px;\n  border: 0;\n  background-color: #ddd;\n  background-image: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n  color: #000;\n  text-shadow: none;\n  text-align: center; }\n  .portlet.calendar .mobile .fc-button.fc-state-hover, .portlet.calendar .mobile .fc-button.fc-state-active {\n    background-color: #eee; }\n  .portlet.calendar .mobile .fc-button.fc-state-disabled {\n    color: #bbb; }\n\n.portlet.calendar .mobile .fc-button-prev {\n  margin-right: 5px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-button-next {\n  margin-right: -0px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-header-space {\n  margin: 0px;\n  padding: 0px;\n  width: 0px; }\n\n.portlet.calendar .mobile .fc-header-left {\n  position: absolute;\n  z-index: 10; }\n  .portlet.calendar .mobile .fc-header-left .fc-button {\n    top: -2px; }\n\n.portlet.calendar .mobile .fc-header-right {\n  position: relative;\n  right: 0; }\n  .portlet.calendar .mobile .fc-header-right .fc-button {\n    top: 35px; }\n\n.portlet.calendar .mobile .fc-content {\n  margin-top: 53px; }\n\n/***\nGoogle Maps\n***/\n.gmaps {\n  height: 300px;\n  width: 100%;\n  /* important!  bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ }\n  .gmaps img {\n    max-width: none; }\n\n#gmap_static div {\n  background-repeat: no-repeat;\n  background-position: 50% 50%;\n  height: 100%;\n  display: block;\n  height: 300px; }\n\n#gmap_routes_instructions {\n  margin-top: 10px;\n  margin-bottom: 0px; }\n\n/***\nGritter notification modify\n***/\n#gritter-notice-wrapper {\n  right: 1px !important; }\n\n.gritter-close {\n  left: auto !important;\n  right: 3px !important; }\n\n.gritter-title {\n  font-family: 'Open Sans';\n  font-size: 18px;\n  font-weight: 300; }\n\n/***\nDashboard Charts(new in v1.2.1)\n***/\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 14px !important;\n  font-weight: 300;\n  margin: 0 auto;\n  position: relative;\n  text-align: center;\n  width: 75px;\n  height: 75px;\n  line-height: 75px; }\n  .easy-pie-chart .number canvas {\n    position: absolute;\n    top: 0;\n    left: 0; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery File Upload\n***/\n.blueimp-gallery .close {\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important;\n  margin-top: -2px; }\n\n.blueimp-gallery .prev,\n.blueimp-gallery .next {\n  border-radius: 23px !important; }\n\n/***\njQuery Multi Select\n***/\n.ms-container .ms-list {\n  border: 1px solid #e5e5e5;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-optgroup-label {\n  font-size: 14px; }\n\n.ms-container .ms-selectable li.ms-elem-selectable,\n.ms-container .ms-selection li.ms-elem-selection {\n  font-size: 13px; }\n\n.ms-container .ms-list.ms-focus {\n  border-color: #999999;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-selectable li.ms-hover,\n.ms-container .ms-selection li.ms-hover {\n  color: #333;\n  background-color: #eee; }\n\n.ms-container .form-control {\n  margin-bottom: 5px; }\n\n/***\njQuery Notific8 Plugin\n***/\n.jquery-notific8-message {\n  font-size: 13px; }\n\n[class*=\"jquery-notific8\"],\n[class*=\"jquery-notific8\"]:after,\n[class*=\"jquery-notific8\"]:before {\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box; }\n\n.right .jquery-notific8-close-sticky span,\n.left .jquery-notific8-close-sticky span {\n  font-size: 10px; }\n\n.jquery-notific8-heading {\n  font-weight: 300;\n  font-size: 16px; }\n\n/***\nPassword Strength(in v1.4)\n***/\n.password-strength .password-verdict {\n  display: inline-block;\n  margin-top: 6px;\n  margin-left: 5px; }\n\n.password-strength .progress {\n  margin-top: 5px;\n  margin-bottom: 0; }\n\n.password-strength .progress-bar {\n  padding: 2px; }\n\n/***\njQuery Slimscroll\n***/\n.scroller {\n  padding: 0px;\n  margin: 0px;\n  padding-right: 12px;\n  overflow: hidden; }\n\n.scroller-footer {\n  margin-top: 10px; }\n  .scroller-footer:before, .scroller-footer:after {\n    content: \" \";\n    display: table; }\n  .scroller-footer:after {\n    clear: both; }\n\n.portlet-body .slimScrollBar {\n  margin-right: 0px; }\n\n/***\njQuery Sparkline\n***/\n.jqstooltip {\n  width: auto !important;\n  height: auto !important; }\n\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 16px;\n  font-weight: 300;\n  width: 85px;\n  margin: 0 auto; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery UI Sliders(new in v1.1.1)\n***/\n.slider {\n  border: 0;\n  padding: 0;\n  display: block;\n  margin: 12px 5px;\n  min-height: 11px; }\n\n.ui-slider-vertical {\n  width: 11px; }\n\n.ui-slider-horizontal .ui-slider-handle {\n  top: -3px; }\n\n.ui-slider-vertical .ui-slider-handle {\n  left: -3px; }\n\n.ui-slider-vertical,\n.ui-slider-handle {\n  filter: none !important;\n  background-image: none !important; }\n\n/***\nJQVMAP Plugin\n***/\n.jqvmap-zoomout,\n.jqvmap-zoomin {\n  height: 16px;\n  width: 16px;\n  background-color: #666; }\n\n.vmaps {\n  position: relative;\n  overflow: hidden;\n  height: 300px; }\n\n/***\nJstree\n***/\n.jstree-default .jstree-clicked {\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-clicked,\n.jstree-wholerow .jstree-wholerow-clicked {\n  background: none;\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-hovered,\n.jstree-wholerow .jstree-wholerow-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-icon.icon-lg {\n  margin-top: 1px; }\n\n.jstree-open > .jstree-anchor > .fa-folder:before {\n  margin-left: 2px;\n  content: \"\\f07c\"; }\n\n.jstree-default.jstree-rtl .jstree-last {\n  background: transparent;\n  background-repeat: no-repeat; }\n\n.vakata-context,\n.vakata-context ul {\n  padding: 0;\n  min-width: 125px;\n  background-color: #ffffff;\n  font-size: 14px;\n  font-family: \"Segoe UI\",Helvetica, Arial, sans-serif;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.vakata-context li {\n  border: 0; }\n  .vakata-context li a {\n    padding: 0 10px;\n    border: 0; }\n    .vakata-context li a i {\n      display: none; }\n    .vakata-context li a .vakata-contextmenu-sep {\n      display: none; }\n\n.vakata-context .vakata-context-hover > a,\n.vakata-context li a:hover {\n  background-color: #eee;\n  color: #333;\n  box-shadow: none;\n  margin: 0; }\n  .vakata-context .vakata-context-hover > a .span,\n  .vakata-context .vakata-context-hover > a .ins,\n  .vakata-context li a:hover .span,\n  .vakata-context li a:hover .ins {\n    border: 0 !important; }\n\n.vakata-context li a span,\n.vakata-context li a ins {\n  display: none;\n  border: 0 !important; }\n\n.vakata-context .vakata-context-separator a,\n.vakata-context-rtl .vakata-context-separator a {\n  margin: 0;\n  border: 0; }\n\n.jstree-rename-input {\n  background-color: #ffffff !important;\n  border: 1px solid #e5e5e5 !important;\n  outline: none !important;\n  padding: 2px 6px !important;\n  margin-right: -4px !important; }\n\n/***\nNoUIRangeSlider\n***/\n.noUi-horizontal {\n  margin: 9px 0; }\n\n/***\nColor variants\n***/\n.noUi-primary .noUi-connect {\n  background: #337ab7; }\n\n.noUi-info .noUi-connect {\n  background: #659be0; }\n\n.noUi-success .noUi-connect {\n  background: #36c6d3; }\n\n.noUi-warning .noUi-connect {\n  background: #F1C40F; }\n\n.noUi-danger .noUi-connect {\n  background: #ed6b75; }\n\n.noUi-default .noUi-connect {\n  background: #bac3d0; }\n\n/* Conect slider */\n/* For this slider, disable the 'origin' size. */\n.noui-connect .noUi-origin {\n  right: auto;\n  width: 0; }\n\n/* Position the bar and color it. */\n.noui-connect .connect {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  background: #80C9F5;\n  box-shadow: inset 0 0 3px rgba(51, 51, 51, 0.45); }\n\n/* When the slider is moved by tap,\n   transition the connect bar like the handle. */\n.noui-connect.noUi-state-tap .connect {\n  -webkit-transition: left 300ms, right 300ms;\n  transition: left 300ms, right 300ms; }\n\n/**\nnoUI Tooltips\n**/\n.noUi-handle .noUi-tooltip {\n  display: block;\n  position: absolute;\n  border: 1px solid #D9D9D9;\n  font-size: 12px;\n  border-radius: 3px;\n  background: #fff;\n  top: -55px;\n  padding: 5px;\n  left: -10px;\n  text-align: center;\n  min-width: 50px; }\n  .noUi-handle .noUi-tooltip strong {\n    display: block;\n    padding: 2px; }\n\n/***\nGoogle reCaptcha\n***/\n.form-recaptcha-img {\n  margin-bottom: 10px;\n  clear: both;\n  border: 1px solid #e5e5e5;\n  padding: 5px; }\n\niframe[src=\"about:blank\"] {\n  display: none; }\n\n.select2-container--bootstrap .select2-search--dropdown .select2-search__field,\n.select2-container--bootstrap .select2-selection,\n.select2-container--bootstrap.select2-container--focus .select2-selection,\n.select2-container--bootstrap.select2-container--open .select2-selection {\n  -webkit-box-shadow: none;\n  box-shadow: none; }\n\n.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove {\n  cursor: pointer;\n  display: inline-block;\n  font-weight: 700;\n  margin-right: 3px; }\n\n.select2-container--bootstrap .select2-results__group {\n  display: block;\n  font-size: 12px;\n  white-space: nowrap;\n  font-weight: 600;\n  font-family: \"Open Sans\", sans-serif; }\n\n.select2-container--bootstrap .select2-selection {\n  font-family: \"Open Sans\", sans-serif; }\n\n.modal-open .select2-dropdown {\n  z-index: 10060; }\n\n.modal-open .select2-close-mask {\n  z-index: 10055; }\n\n.modal-open .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field {\n  width: auto !important; }\n\n.select2-result-repository {\n  padding-top: 4px;\n  padding-bottom: 3px; }\n\n.select2-result-repository__avatar {\n  float: left;\n  width: 60px;\n  margin-right: 10px; }\n\n.select2-result-repository__avatar img {\n  width: 100%;\n  height: auto;\n  border-radius: 2px; }\n\n.select2-result-repository__meta {\n  margin-left: 70px; }\n\n.select2-result-repository__title {\n  color: black;\n  font-weight: bold;\n  word-wrap: break-word;\n  line-height: 1.1;\n  margin-bottom: 4px; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers {\n  margin-right: 1em; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers, .select2-result-repository__watchers {\n  display: inline-block;\n  color: #aaa;\n  font-size: 11px; }\n\n.select2-result-repository__description {\n  font-size: 13px;\n  color: #777;\n  margin-top: 4px; }\n\n.select2-results__option--highlighted .select2-result-repository__title {\n  color: white; }\n\n.select2-results__option--highlighted .select2-result-repository__forks, .select2-results__option--highlighted .select2-result-repository__stargazers, .select2-results__option--highlighted .select2-result-repository__description, .select2-results__option--highlighted .select2-result-repository__watchers {\n  color: #c1d7e9; }\n\n.select2-selection__choice {\n  background-color: #eee !important;\n  border: 1px solid #eee !important; }\n  .select2-selection__choice .select2-selection__choice__remove {\n    font-weight: normal !important; }\n\n/***\nMorris Charts\n***/\n.portlet-body-morris-fit {\n  margin-right: -20px;\n  margin-left: -20px;\n  margin-bottom: -15px; }\n  .portlet-body-morris-fit > svg {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n\n.morris-hover.morris-default-style .morris-hover-row-label {\n  text-align: left;\n  font-weight: 400;\n  font-size: 15px;\n  color: #7D8C9D;\n  font-family: \"Open Sans\", sans-serif; }\n\n.morris-hover.morris-default-style .morris-hover-point {\n  text-align: left;\n  font-size: 14px;\n  font-weight: 400;\n  font-family: \"Open Sans\", sans-serif; }\n\n/***\niCheck\n***/\n.icheck-list > label {\n  display: block;\n  margin-bottom: 8px; }\n  .icheck-list > label:last-child {\n    margin-bottom: 0; }\n\n.form-horizontal .icheck-inline {\n  margin-top: 8px; }\n\n.icheck-inline > label {\n  display: inline-block;\n  margin-left: 15px; }\n  .icheck-inline > label:first-child {\n    margin-left: 0; }\n\ndiv[class*='icheckbox_'],\ndiv[class*='iradio_'] {\n  margin-right: 5px;\n  top: -1px !important; }\n\n.icheck-colors {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .icheck-colors > li {\n    padding: 0;\n    margin: 4px;\n    float: left;\n    display: inline-block;\n    height: 20px;\n    width: 20px;\n    background: #000000;\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n    .icheck-colors > li:first-child {\n      margin-left: 0; }\n    .icheck-colors > li:hover {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ;\n      cursor: pointer; }\n    .icheck-colors > li.active {\n      height: 26px;\n      margin-top: 0;\n      opacity: 0.6 ;\n      filter: alpha(opacity=60) ; }\n    .icheck-colors > li.red {\n      background: #d54e21; }\n    .icheck-colors > li.green {\n      background: #78a300; }\n    .icheck-colors > li.blue {\n      background: #0e76a8; }\n    .icheck-colors > li.aero {\n      background: #9cc2cb; }\n    .icheck-colors > li.grey {\n      background: #73716e; }\n    .icheck-colors > li.orange {\n      background: #f70; }\n    .icheck-colors > li.yellow {\n      background: #fc0; }\n    .icheck-colors > li.pink {\n      background: #ff66b5; }\n    .icheck-colors > li.purple {\n      background: #6a5a8c; }\n\n/***\nAngularJS UI-select\n***/\n.ui-select-match-close {\n  margin-top: 5px !important;\n  margin-left: 5px !important; }\n\n.minicolors-swatch {\n  border: 0; }\n\n/***\nCodemirror Plugin\n***/\n.CodeMirror {\n  border: 1px solid #eee;\n  height: auto; }\n\n/***\nPrism Plugin\n***/\npre[class*=\"language-\"] {\n  padding: 10px;\n  background: none !important;\n  border: 1px solid #f1f4f7 !important;\n  box-shadow: none !important;\n  margin: 0; }\n  pre[class*=\"language-\"] code {\n    background: none !important;\n    box-shadow: none !important;\n    border: 0 !important; }\n\n.socicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased; }\n\n.socicon-btn:empty\n.socicon:empty {\n  width: 1em; }\n\n.socicon-btn {\n  position: relative;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  text-align: center;\n  width: 44px;\n  height: 44px;\n  padding-top: 11px;\n  font-size: 24px;\n  border: 1px solid #e7ecf1;\n  color: #3f444a;\n  transition: background, color 0.3s; }\n  .socicon-btn.socicon-solid {\n    border: 0;\n    width: 46px;\n    height: 46px;\n    padding-top: 12px; }\n  .socicon-btn.socicon-btn-circle {\n    border-radius: 44px !important; }\n  .socicon-btn:hover {\n    transition: background, color 0.3s;\n    text-decoration: none; }\n  .socicon-btn.socicon-lg {\n    width: 54px;\n    height: 54px;\n    padding-top: 13px;\n    font-size: 28px; }\n    .socicon-btn.socicon-lg.socicon-solid {\n      border: 0;\n      width: 55px;\n      height: 55px;\n      padding-top: 13px; }\n  .socicon-btn.socicon-sm {\n    width: 30px;\n    height: 30px;\n    padding-top: 8px;\n    font-size: 16px; }\n    .socicon-btn.socicon-sm.socicon-solid {\n      border: 0;\n      width: 30px;\n      height: 30px;\n      padding-top: 8px; }\n\n.socicons .socicon-btn {\n  margin-bottom: 5px; }\n\n.socicon-twitter:before {\n  content: \"a\"; }\n\n.socicon-facebook:before {\n  content: \"b\"; }\n\n.socicon-google:before {\n  content: \"c\"; }\n\n.socicon-pinterest:before {\n  content: \"d\"; }\n\n.socicon-foursquare:before {\n  content: \"e\"; }\n\n.socicon-yahoo:before {\n  content: \"f\"; }\n\n.socicon-skype:before {\n  content: \"g\"; }\n\n.socicon-yelp:before {\n  content: \"h\"; }\n\n.socicon-feedburner:before {\n  content: \"i\"; }\n\n.socicon-linkedin:before {\n  content: \"j\"; }\n\n.socicon-viadeo:before {\n  content: \"k\"; }\n\n.socicon-xing:before {\n  content: \"l\"; }\n\n.socicon-myspace:before {\n  content: \"m\"; }\n\n.socicon-soundcloud:before {\n  content: \"n\"; }\n\n.socicon-spotify:before {\n  content: \"o\"; }\n\n.socicon-grooveshark:before {\n  content: \"p\"; }\n\n.socicon-lastfm:before {\n  content: \"q\"; }\n\n.socicon-youtube:before {\n  content: \"r\"; }\n\n.socicon-vimeo:before {\n  content: \"s\"; }\n\n.socicon-dailymotion:before {\n  content: \"t\"; }\n\n.socicon-vine:before {\n  content: \"u\"; }\n\n.socicon-flickr:before {\n  content: \"v\"; }\n\n.socicon-500px:before {\n  content: \"w\"; }\n\n.socicon-instagram:before {\n  content: \"x\"; }\n\n.socicon-wordpress:before {\n  content: \"y\"; }\n\n.socicon-tumblr:before {\n  content: \"z\"; }\n\n.socicon-blogger:before {\n  content: \"A\"; }\n\n.socicon-technorati:before {\n  content: \"B\"; }\n\n.socicon-reddit:before {\n  content: \"C\"; }\n\n.socicon-dribbble:before {\n  content: \"D\"; }\n\n.socicon-stumbleupon:before {\n  content: \"E\"; }\n\n.socicon-digg:before {\n  content: \"F\"; }\n\n.socicon-envato:before {\n  content: \"G\"; }\n\n.socicon-behance:before {\n  content: \"H\"; }\n\n.socicon-delicious:before {\n  content: \"I\"; }\n\n.socicon-deviantart:before {\n  content: \"J\"; }\n\n.socicon-forrst:before {\n  content: \"K\"; }\n\n.socicon-playstore:before {\n  content: \"L\"; }\n\n.socicon-zerply:before {\n  content: \"M\"; }\n\n.socicon-wikipedia:before {\n  content: \"N\"; }\n\n.socicon-apple:before {\n  content: \"O\"; }\n\n.socicon-flattr:before {\n  content: \"P\"; }\n\n.socicon-github:before {\n  content: \"Q\"; }\n\n.socicon-chimein:before {\n  content: \"R\"; }\n\n.socicon-friendfeed:before {\n  content: \"S\"; }\n\n.socicon-newsvine:before {\n  content: \"T\"; }\n\n.socicon-identica:before {\n  content: \"U\"; }\n\n.socicon-bebo:before {\n  content: \"V\"; }\n\n.socicon-zynga:before {\n  content: \"W\"; }\n\n.socicon-steam:before {\n  content: \"X\"; }\n\n.socicon-xbox:before {\n  content: \"Y\"; }\n\n.socicon-windows:before {\n  content: \"Z\"; }\n\n.socicon-outlook:before {\n  content: \"1\"; }\n\n.socicon-coderwall:before {\n  content: \"2\"; }\n\n.socicon-tripadvisor:before {\n  content: \"3\"; }\n\n.socicon-appnet:before {\n  content: \"4\"; }\n\n.socicon-goodreads:before {\n  content: \"5\"; }\n\n.socicon-tripit:before {\n  content: \"6\"; }\n\n.socicon-lanyrd:before {\n  content: \"7\"; }\n\n.socicon-slideshare:before {\n  content: \"8\"; }\n\n.socicon-buffer:before {\n  content: \"9\"; }\n\n.socicon-rss:before {\n  content: \",\"; }\n\n.socicon-vkontakte:before {\n  content: \";\"; }\n\n.socicon-disqus:before {\n  content: \":\"; }\n\n.socicon-houzz:before {\n  content: \"+\"; }\n\n.socicon-mail:before {\n  content: \"@\"; }\n\n.socicon-patreon:before {\n  content: \"=\"; }\n\n.socicon-paypal:before {\n  content: \"-\"; }\n\n.socicon-playstation:before {\n  content: \"^\"; }\n\n.socicon-smugmug:before {\n  content: \"¨\"; }\n\n.socicon-swarm:before {\n  content: \"$\"; }\n\n.socicon-triplej:before {\n  content: \"*\"; }\n\n.socicon-yammer:before {\n  content: \"&\"; }\n\n.socicon-stackoverflow:before {\n  content: \"(\"; }\n\n.socicon-drupal:before {\n  content: \"#\"; }\n\n.socicon-odnoklassniki:before {\n  content: \".\"; }\n\n.socicon-android:before {\n  content: \"_\"; }\n\n.socicon-meetup:before {\n  content: \"]\"; }\n\n.socicon-persona:before {\n  content: \")\"; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/img/flags/readme.txt",
    "content": "Flag icons - http://www.famfamfam.com\n\nThese icons are public domain, and as such are free for any use (attribution appreciated but not required).\n\nNote that these flags are named using the ISO3166-1 alpha-2 country codes where appropriate. A list of codes can be found at http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n\nIf you find these icons useful, please donate via paypal to mjames@gmail.com (or click the donate button available at http://www.famfamfam.com/lab/icons/silk)\n\nContact: mjames@gmail.com"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap-ui.css",
    "content": "/*\nTo change this license header, choose License Headers in Project Properties.\nTo change this template file, choose Tools | Templates\nand open the template in the editor.\n*/\n/* \n    Created on : Mar 16, 2015, 10:24:01 AM\n    Author     : tony\n*/\n\n.ui-jqgrid tr.jqgrow td { height: 26px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:20px }\n.ui-state-hover\n{\n    border: .15em solid;\n\tborder-color: inherit;\n\n}\n.ui-jqdialog .ui-jqdialog-titlebar  {\n\theight:29px;\n\tborder-color: inherit;\n}\n\n.ui-jqdialog-content input.FormElement {\n    padding: 0.25em;\n}\n\n.fm-button {\n    height:30px;\n}\n#nData, #pData { height:20px; width:18px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative; \n\tborder: 1px solid #ddd;      /*default*/\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n}\n.ui-jqgrid .ui-jqgrid-view {\n\tposition: relative;\n\tleft:0; \n\ttop: 0; \n\tpadding: 0;\n}\n.ui-jqgrid .ui-common-table {}\n\n/* Caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {\n\tfont-weight: normal;\n\tmin-height:37px; \n\tpadding: 4px 8px; \n\tposition: relative; \n\tmargin-right: 2px;\n\tborder-bottom: 1px solid #ddd; /*default*/\n\n}\n.ui-jqgrid .ui-jqgrid-caption {\n\ttext-align: left;\n}\n.ui-jqgrid .ui-jqgrid-title { \n\tpadding-top: 5px; \n\tvertical-align: middle;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close { \n\tcolor: inherit; \n\tposition: absolute;\n\ttop: 50%; \n\tmargin: -10px 7px 0 0; \n\tpadding: 1px; \n\tcursor:pointer;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { \n\tdisplay: block; \n\tmargin: 1px; \n}\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover {  }\n\n/* Header*/\n.ui-jqgrid .ui-jqgrid-hdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-hbox {\n\tfloat: left; \n\tpadding-right: 20px;\n}\n.ui-jqgrid .ui-jqgrid-htable { \n\tmargin-bottom: 0; \n\ttable-layout: fixed; \n\tborder-top:none;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th {\n\toverflow : hidden; \n\tborder-bottom : none;\n\tpadding-right: 2px;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th div {\n\toverflow: hidden; \n\tposition:relative;\n}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-column-header, \n.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; }\n.ui-first-th-ltr { }\n.ui-first-th-rtl { }\n.ui-jqgrid tr.jqg-first-row-header th {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n\ttext-align: center;\n}\n.ui-jqgrid tr.jqg-second-row-header th,\n.ui-jqgrid tr.jqg-third--row-header th\n{\n\tborder-top:none;\n\ttext-align: center;\n}\n\n.ui-jqgrid .ui-th-div-ie {\n\twhite-space: nowrap; \n\tzoom :1; \n\theight:17px;\n}\n.ui-jqgrid .ui-jqgrid-resize {\n\theight:20px !important;\n\tposition: relative; \n\tcursor :e-resize;\n\tdisplay: inline;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-grid-ico-sort { \n\tmargin-left:5px; \n\toverflow:hidden;\n\tposition:absolute;\n\tright: auto;\n\tfont-size:12px;\n}\n.ui-jqgrid .ui-icon-asc {\n\tmargin-top:-3px;\n}\n.ui-jqgrid .ui-icon-desc {\n\tmargin-top:4px;\n}\n.ui-jqgrid .ui-i-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-i-desc {\n\tmargin-top:0;\n\tmargin-right:13px;\n}\n.ui-jqgrid .ui-single-sort-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-single-sort-desc {}\n.ui-jqgrid .ui-jqgrid-sortable {\n\tcursor:pointer;\n}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { }\n.ui-jqgrid tr.ui-search-toolbar td > input { }\n.ui-jqgrid tr.ui-search-toolbar select {}\n\n/* Body */ \n.ui-jqgrid .table-bordered,\n.ui-jqgrid .table-bordered td,\n.ui-jqgrid .table-bordered th.ui-th-ltr\n{\n\tborder-left:0px none !important;\n}\n.ui-jqgrid .table-bordered th.ui-th-rtl\n{\n\tborder-right:0px none !important;\n}\n.ui-jqgrid .table-bordered tr.ui-row-rtl td\n{\n\tborder-right:0px none !important;\n\tborder-left: 1px solid #ddd !important;\n}\ndiv.tablediv > .table-bordered {\n\tborder-left : 1px solid #ddd !important;\n}\n.ui-jqgrid  .ui-jqgrid-bdiv table.table-bordered td {\n\tborder-top: 0px none;\n}\n.ui-jqgrid .ui-jqgrid-bdiv {\n\tposition: relative; \n\tmargin: 0; \n\tpadding:0; \n\toverflow: auto; \n\ttext-align:left; \n}\n.ui-jqgrid .ui-jqgrid-btable {\n\ttable-layout: fixed; \n\tborder-left:none ; \n\tborder-top:none; \n\tmargin-bottom: 0px\n}\n.ui-jqgrid tr.jqgrow {  \n\toutline-style: none; \n}\n.ui-jqgrid tr.jqgroup {  \n\toutline-style: none; \n}\n.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td { \n\toverflow: hidden; \n\twhite-space: pre; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgfirstrow  td {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgroup td { \n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.jqfoot td {\n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.ui-row-ltr td {}\n.ui-jqgrid tr.ui-row-rtl td {}\n.ui-jqgrid td.jqgrid-rownum { }\n.ui-jqgrid .ui-jqgrid-resize-mark { \n\twidth:2px; \n\tleft:0; \n\tbackground-color:#777; \n\tcursor: e-resize; \n\tcursor: col-resize; \n\tposition:absolute; \n\ttop:0; \n\theight:100px; \n\toverflow:hidden; \n\tdisplay:none; \n\tborder:0 none; \n\tz-index: 99999;\n\n}\n/* Footer */\n.ui-jqgrid .ui-jqgrid-sdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden; \n\tborder-left: 0 none !important; \n\tborder-top : 0 none !important; \n\tborder-right : 0 none !important;\n}\n.ui-jqgrid .ui-jqgrid-ftable {\n\ttable-layout:fixed;\n\tmargin-bottom:0;\n}\n\n.ui-jqgrid tr.footrow td {\n\tfont-weight: bold; \n\toverflow: hidden; \n\twhite-space:nowrap; \n\tpadding-right: 2px;\n\tborder-bottom: 0px none;\n}\n.ui-jqgrid tr.footrow-ltr td {\n\ttext-align:left;\n}\n.ui-jqgrid tr.footrow-rtl td {\n\ttext-align:right;\n}\n\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager\n{ \n\tborder-left-width: 0px;\n\tborder-top: 1px solid #ddd;  \n\t/*padding : 4px 0px;*/\n\tposition: relative; \n\t/*height: auto; */\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-toppager {\n\tborder-top-width :0;\n\tborder-bottom : 1px solid #ddd;\n}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, \n.ui-jqgrid .ui-jqgrid-pager .ui-pager-control {\n\tposition: relative;\n\tborder-left: 0;\n\tborder-bottom: 0;\n\tborder-top: 0; \n\t/*height: 30px;*/\n}\n.ui-jqgrid .ui-pg-table {\n\tposition: relative; \n\tpadding: 1px 0; \n\twidth:auto; \n\tmargin: 0;\n}\n.ui-jqgrid .ui-pg-table td {\n\tfont-weight:normal; \n\tvertical-align:middle; \n\t/*padding:0px 6px;*/\n}\n.ui-jqgrid .ui-pager-control .ui-pager-table td {\n\tborder-top : 0px none !important;\n\tmin-height : 20px !important;\n}\n.ui-jqgrid .ui-pg-button  { \n\theight:auto; \n}\n.ui-jqgrid  .ui-paging-pager td {\n\tpadding : 0 5px;\n}\n.ui-jqgrid .ui-pg-button span { \n\tdisplay: block; \n\tmargin: 0px 2px; \n\tfloat:left;\n}\n.ui-jqgrid .ui-pg-button:hover {  }\n.ui-jqgrid .ui-disabled:hover {}\n.ui-jqgrid .ui-pg-input,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { \n\tdisplay: inline-block;\n\theight:auto;\n\twidth: auto;\n\tfont-size:.9em; \n\tmargin:0;\n\tline-height: inherit;\n\tborder: none; \n\tpadding: 0px 3px\n}\n.ui-jqgrid .ui-pg-selbox, \n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {\n\tfont-size:.9em; \n\tline-height:inherit; \n\tdisplay:block; \n\theight:22px; \n\tmargin: 0; \n\tpadding: 3px 0px 3px 3px; \n\tborder:none;\n}\n.ui-jqgrid .ui-separator {\n\theight: 18px; \n\tborder : none;\n\tborder-left: 2px solid #ccc ; /*default*/\n\t\n}\n.ui-separator-li {\n\theight: 2px; \n\tborder : none;\n\tborder-top: 2px solid #ccc ;  /*default*/\n\tmargin: 0; padding: 0; width:100%\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{\n\tfloat:left;\n\tposition:relative; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ \n\tcursor:pointer; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span\n{\n\tfloat:left;\n}\n.ui-jqgrid td input, \n.ui-jqgrid td select, \n.ui-jqgrid td textarea { \n\tmargin: 0;\n}\n.ui-jqgrid td textarea {\n\twidth:auto;\n\theight:auto;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table\n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable td,\n.ui-jqgrid .ui-jqgrid-toppager .navtable td \n{ \n\tpadding : 0 5px;\n}\n\n/*Subgrid*/\n\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {\n\tdisplay: block;\n}\n.ui-jqgrid .ui-subgrid {\n\tmargin:0;\n\tpadding:0; \n\twidth:100%;\n}\n.ui-jqgrid .ui-subgrid table {\n\ttable-layout: fixed;\n}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {}\n.ui-jqgrid .ui-subgrid td.subgrid-data {\n\tborder-top:  0 none !important;\n}\n.ui-jqgrid .ui-subgrid td.subgrid-cell { \n\tvertical-align: middle\n}\n.ui-jqgrid a.ui-sghref {\n\ttext-decoration: none;\n\tcolor : #010101; /*default*/\n}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n.tablediv > .row { margin: 0 0}\n/* loading */\n.ui-jqgrid .loading {\n\tposition: absolute; \n\ttop: 45%;\n\tleft: 45%;\n\twidth: auto;\n\tz-index:101;\n\tpadding: 6px; \n\tmargin: 5px;\n\ttext-align: center;\n\tdisplay: none;\n\tborder: 1px solid #ddd;  /*default*/\n\tfont-size: 14px;\n\tbackground-color: #d9edf7;\n}\n.ui-jqgrid .jqgrid-overlay { \n\tdisplay:none;\n\tz-index:100;\n}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n\n/* Toolbar */\n.ui-jqgrid .ui-userdata {\n\tpadding: 4px 0px; \n\toverflow: hidden; \n\tmin-height: 32px; \n}\n.ui-jqgrid .ui-userdata-top {\n\tborder-left-width: 0px;    /*default*/\n\tborder-bottom: 1px solid #ddd;\t\n}\n.ui-jqgrid .ui-userdata-bottom {\n\tborder-left-width: 0px;    /*default*/\n\tborder-top: 1px solid #ddd;\t\n}\n/*Modal Window */\n.ui-jqdialog { }\n.ui-jqdialog { \n\tdisplay: none; \n\twidth: 500px; \n\tposition: absolute; \n\t/*padding: 5px; */\n\toverflow:visible;\n}\n.ui-jqdialog .ui-jqdialog-titlebar {\n\tpadding: .1em .1em; \n\tmin-height: 35px; \n}\n.ui-jqdialog .ui-jqdialog-title { \n\tmargin: .3em 0 .2em;  \n\tfont-weight: bold;\n\tpadding-left :6px;\n\tpadding-right:6px;\n} \n.ui-jqdialog .ui-jqdialog-titlebar-close { \n\tposition: absolute;  \n\ttop: 0%; \n\tmargin: 3px 5px 0 0; \n\tpadding: 8px;  \n\tcursor:pointer;\n}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span {  }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, \n.ui-jqdialog .ui-jqdialog-titlebar-close:focus { \n\tpadding: 8px; \n}\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { \n\tborder: 0; \n\tpadding: .3em .2em; \n\tbackground: none; \n\theight:auto;\n}\n.ui-jqdialog .ui-jqconfirm {\n\tpadding: .4em 1em; \n\tborder-width:3px;\n\tposition:absolute;\n\tbottom:10px;\n\tright:10px;\n\toverflow:visible;\n\tdisplay:none;\n\theight:120px;\n\twidth:220px;\n\ttext-align:center;\n\tbackground-color: #fff;\n\tborder-radius: 4px;\n\t-webkit-border-radius: 4px;\n\t-moz-border-radius: 4px;\n}\n.ui-jqdialog>.ui-resizable-se { }\n.ui-jqgrid>.ui-resizable-se { }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid { \n\tmargin: 0 8px 0 8px; \n\toverflow:auto;\n\tposition:relative;\n}\n.ui-jqdialog-content .EditTable { \n\twidth: 100%; \n\tmargin-bottom:0; \n}\n.ui-jqdialog-content .DelTable { \n\twidth: 100%; \n\tmargin-bottom:0;\n}\n.EditTable td input, \n.EditTable td select, \n.EditTable td textarea { \n\twidth: 98%; \n\tdisplay: inline-block;\n}\n.EditTable td textarea { \n\twidth:auto; \n\theight:auto;\n}\n.EditTable .FormData td { \n\theight:37px !important;\n}\n.ui-jqdialog-content td.EditButton {\n\ttext-align: right; \n\tpadding: 5px 5px 5px 0;\n}\n.ui-jqdialog-content td.navButton {\n\ttext-align: center; \n\tborder-left: 0 none;\n\tborder-top: 0 none;\n\tborder-right: 0 none; \n\tpadding-bottom:5px; \n\tpadding-top:5px;\n}\n.ui-jqdialog-content input.FormElement {\n\tpadding: .5em .3em; \n\tmargin-bottom: 5px\n}\n.ui-jqdialog-content select.FormElement {\n\tpadding:.3em; \n\tmargin-bottom: 3px;\n}\n.ui-jqdialog-content .data-line {\n\tpadding-top:.1em;\n\tborder: 0 none;\n}\n\n.ui-jqdialog-content .CaptionTD {\n\tvertical-align: middle;\n\tborder: 0 none; \n\tpadding: 2px;\n\twhite-space: nowrap;\n}\n.ui-jqdialog-content .DataTD {\n\tpadding: 2px; \n\tborder: 0 none; \n\tvertical-align: top;\n}\n.ui-jqdialog-content .form-view-data {\n\twhite-space:pre\n}\n.fm-button {  }\n.fm-button-icon-left { \n\tmargin-left: 4px; \n\tmargin-right: 4px;  \n}\n.fm-button-icon-right { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n.fm-button-icon-left  {  }\n.fm-button-icon-right  { }\n#nData, #pData { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n#sData span, #cData span { \n\tmargin-left: 5px;\n}\n/* End Eorm edit */\n/*.ui-jqgrid .edit-cell {}*/\n.ui-jqgrid .selected-row, \ndiv.ui-jqgrid .selected-row td {\n\tfont-style : normal;\n}\n/* inline edit actions button*/\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 14px;\n}\n.ui-jqgrid .inline-edit-cell {}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {\n\tfloat: left; \n\tposition: relative;\n\theight: 18px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-minus {\n\tposition: absolute; \n\theight: 18px; \n\twidth: 18px; \n\toverflow: hidden;\n}\n.ui-jqgrid .tree-plus {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\t\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-leaf {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\n\toverflow: hidden;\n}\n.ui-jqgrid .treeclick {\n\tcursor: pointer;\n}\n/* moda dialog */\n* iframe.jqm {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {\n\tborder-right-width: 1px;\n\tborder-right-color: inherit;\n\tborder-right-style: solid; \n\theight:20px\n}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {\n\ttext-align: right;\n}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {\n\tfloat: right; \n\t/*padding-left: 20px;*/\n}\n.ui-jqgrid .ui-jqgrid-resize-ltr {\n\tfloat: right;\n\tmargin: -2px -2px -2px 0;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-resize-rtl {\n\tfloat: left;\n\tmargin: -2px -2px -2px -0px;\n}\n.ui-jqgrid .ui-sort-rtl {\n\t\n}\n.ui-jqgrid .tree-wrap-ltr {\n\tfloat: left;\n}\n.ui-jqgrid .tree-wrap-rtl {\n\tfloat: right;\n}\n.ui-jqgrid .ui-ellipsis {\n\t-moz-text-overflow:ellipsis;\n\ttext-overflow:ellipsis;\n}\n/* Toolbar Search Menu. Nav menu */\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { \n\tpadding: 0; \n\tborder: 0 none; \n\theight:20px; \n\twidth:100%;\n}\n.ui-jqgrid .ui-search-table .ui-search-oper { \n\twidth:20px; \n}\na.g-menu-item, a.soptclass, a.clearsearchclass { \n\tcursor: pointer; \n} \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    /*font-size: 11px*/\n}\n.ui-jqgrid .ui-scroll-popup {\n\twidth: 100px;\n}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\t\n.ui-disabled {\n\topacity: .35;\n\tfilter:Alpha(Opacity=35); /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0,0,0,0.5);\n\topacity: .3;\n\tfilter: Alpha(Opacity=30); /* support: IE8 */\n}\n \n.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover,\n.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover\n{\n\tbackground-color: #ddd;\n}\n.ui-jqgrid-corner  {\n\t border-radius: 5px\n}\n.ui-resizable-handle {\n\t/*position: absolute;*/\n\tdisplay: block;\n\tleft :97%;\n}\n.ui-jqdialog .ui-resizable-se {\n\twidth: 12px;\n\theight: 12px;\n\tright: -5px;\n\tbottom: -5px;\n\tbackground-position: 16px 16px;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-top-corner {\n\tborder-top-left-radius: 5px;\n\tborder-top-right-radius: 5px;\n}\n.ui-bottom-corner {\n\tborder-bottom-left-radius: 5px;\n\tborder-bottom-right-radius: 5px;\n}\n\n.ui-search-table {\n\tmargin-bottom: 0;\n}\n.ui-search-table .columns, .ui-search-table .operators {\n\tpadding-right: 5px;\n}\n.opsel {\n\tfloat :left;\n\twidth : 100px;\n\tmargin-right : 5px;\n}\n.add-group, .add-rule, .delete-group {\n\twidth: 14%;\t\n\tmargin-right : 5px;\n}\n.delete-rule {\n\twidth : 15px;\n}\nul.ui-search-menu, ul.ui-nav-menu {\n\t list-style-type:  none;\n}\nul.ui-search-menu li a, \nul.ui-nav-menu li a,\n.soptclass, \n.clearsearchclass {\n\ttext-decoration: none;\n\tcolor : #010101;\n}\nul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover {\n\tbackground-color: #ddd;\n\tpadding: 1px 1px;\n\ttext-decoration: none;\n}\nul.ui-search-menu li, ul.ui-nav-menu li {\n\tpadding : 5px 5px;\n}\n.ui-menu-item hr {\n\tmargin-bottom: 0px;\n\tmargin-top:0px;\n}\n\n.searchFilter .ui-search-table td,\n.searchFilter .ui-search-table th\n{\n\tborder-top: 0px none !important;\n}\n\n.searchFilter .queryresult {\n\tmargin-bottom: 5px;\n}\n.searchFilter .queryresult tr td{\n\tborder-top: 0px none;\n}\n.ui-search-label { \n\tpadding-left: 5px;\n}\n\n.frozen-div, .frozen-bdiv {\n\tbackground-color: #fff;\n}\n/*\n.ui-jqgrid .ui-jqgrid-caption,\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager,\n.ui-jqgrid .ui-jqgrid-htable thead th,\n.ui-jqgrid .ui-userdata-top,\n.ui-jqgrid .ui-userdata-bottom,\n.ui-jqgrid .ui-jqgrid-hdiv,\n.ui-jqdialog .ui-jqdialog-titlebar\n{\n    background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%);\n    background-repeat: repeat-x;\n    border-color: #ccc;\n    text-shadow: 0 1px 0 #fff;\n}\n*/\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright: auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 15px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\tpadding-right: 8px;\n\tpadding-left: 8px;\n}\ntd.menu_text {\n\twidth: auto;\n\tpadding-left: 1px;\n\twhite-space: nowrap;\n}\n#search_menu .ui-menu-item div {\n\tpadding: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n\tpadding: 3px 3px;\n}\n.search_buttons .btn-default:hover {\n\tpadding-bottom: 6px;\n\tpadding-top: 6px;\n}\n.search_buttons #bs_reset {\n\tmargin-right: 3px;\n}\n.search_buttons #bs_search {\n\tmargin-left: 3px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative;\n\t-moz-box-sizing: content-box; \n\t-webkit-box-sizing: content-box; \n\tbox-sizing: content-box;\n}\n.ui-jqgrid .ui-jqgrid-view {position: relative;left:0; top: 0; padding: 0; font-size:11px; z-index:100;}\n.ui-jqgrid .ui-common-table {border-width: 0px; border-style: none; border-spacing: 0px; padding: 0;}\n/* caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {height:19px; padding: .3em .2em .2em .3em; position: relative; font-size: 12px; border-left: 0 none;border-right: 0 none; border-top: 0 none;}\n.ui-jqgrid .ui-jqgrid-caption {text-align: left;}\n.ui-jqgrid .ui-jqgrid-title { margin: .1em 0 .2em; }\n.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px; cursor:pointer;}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }\n/* header*/\n.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}\n.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0;border-collapse: separate;}\n.ui-jqgrid .ui-jqgrid-htable th { height: 27px; padding: 0 2px 0 2px;}\n.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative;margin: .1em 0em .1em 0em;}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none;border-bottom : 0 none;}\n.ui-th-column-header, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none; height: 26px;}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0 none;}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0 none;}\n.ui-first-th-ltr {border-right: 1px solid; }\n.ui-first-th-rtl {border-left: 1px solid; }\n.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}\n.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}\n.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}\n.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}\n.ui-jqgrid .ui-icon-desc {margin-top:3px;margin-left:-1px;height:12px;}\n.ui-jqgrid .ui-i-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-i-desc {margin-top:0;margin-left:12px;height:18px;}\n.ui-jqgrid .ui-single-sort-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-single-sort-desc {margin-top:-1px;height:18px;}\n.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;height:14px}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { width:25px;}\n.ui-jqgrid tr.ui-search-toolbar td > input { padding-right: 0px; width: 95%;}\n.ui-jqgrid tr.ui-search-toolbar select {}\n/* body */ \n.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0; padding:0; overflow: auto; text-align:left;z-index: 101;}\n.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0; outline-style: none; border-collapse: separate;}\n.ui-jqgrid tr.jqgrow { outline-style: none; }\n.ui-jqgrid tr.jqgroup { outline-style: none; }\n.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 23px;padding: 1px 2px 1px 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqgfirstrow td {padding: 0 2px 0 2px;border-right-width: 1px; border-right-style: solid; height:auto;}\n.ui-jqgrid tr.jqgroup td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqfoot td {font-weight: bold; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0; border: 0 none;}\n.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none; border:0 none; z-index: 99999;}\n/* footer */\n.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0;border-collapse: separate;}\n.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 20px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager { border-left: 0 none !important;border-right: 0 none !important; border-bottom: 0 none !important; border-top: 0 none; margin: 0 !important; padding: 0 !important; position: relative; height: auto; min-height: 28px; white-space: nowrap;overflow: hidden;font-size:11px; z-index:101}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, .ui-jqgrid .ui-jqgrid-pager .ui-pager-control {position: relative;border-left: 0;border-bottom: 0;border-top: 0; height: 28px;}\n.ui-jqgrid .ui-pg-table {position: relative; padding: 1px 0; width:auto; margin: 0;}\n.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:0px 1px;}\n.ui-jqgrid .ui-pg-button  { height:auto}\n.ui-jqgrid .ui-pg-button span { display: block; margin: 2px; float:left;}\n.ui-jqgrid .ui-pg-button:hover { padding: 0;}\n.ui-jqgrid .ui-state-disabled:hover {padding:0px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:14px;width: auto;font-size:.9em; margin:0;line-height: inherit;border: none; padding: 3px 2px}\n.ui-jqgrid .ui-pg-selbox, .ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {font-size:.9em; line-height:inherit; display:block; height:19px; margin: 0; padding: 3px 0px; border:none;}\n.ui-jqgrid .ui-separator {height: 18px; border-left: 2px solid #ccc ;}\n.ui-separator-li {height: 2px; border : none;border-top: 2px solid #ccc ; margin: 0; padding: 0; width:100%}\n.ui-jqgrid  .dropdownmenu {\n\tpadding: 3px 0 3px 0;\n\tmargin-left: 4px;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{padding:1px 0;float:left;position:relative; line-height: 20px;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon\n{float:left;margin: 2px; width:18px;}\n.ui-jqgrid td input, .ui-jqgrid td select, .ui-jqgrid td textarea { margin: 0; padding-top:5px;padding-bottom: 5px;}\n.ui-jqgrid td textarea {width:auto;height:auto;}\n.ui-jqgrid .ui-jqgrid-toppager {border-left: 0 none !important;border-right: 0 none !important; border-top: 0 none !important; margin: 0 !important; padding: 0 !important; position: relative;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table \n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n\n/*.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div {padding:1px 0;float:left;position:relative; line-height: 20px; margin-right:3px;}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button { cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon {float:left;margin: 2px; width:18px;}\n*/\n\n/*subgrid*/\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}\n.ui-jqgrid .ui-subgrid {margin:0;padding:0; width:100%;}\n.ui-jqgrid .ui-subgrid table {table-layout: fixed;}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0 none !important; border-left: 0 none !important;}\n.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0 1px 1px 0;}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n/* loading */\n.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important; font-size:11px;}\n.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n/* toolbar */\n.ui-jqgrid .ui-userdata {border-left: 0 none;    border-right: 0 none;\theight : 27px;overflow: hidden;\t}\n/*Modal Window */\n.ui-jqdialog { font-size:11px !important; }\n.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}\n.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative; height:20px;}\n.ui-jqdialog .ui-jqdialog-title { margin: .3em .2em .2em .2em;} \n.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -12px 0 0 0; padding: 1px; height: 18px; cursor:pointer;}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}\n.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}\n.ui-jqdialog>.ui-resizable-se { bottom: -3px; right: -3px}\n.ui-jqgrid>.ui-resizable-se { bottom: -3px; right: -3px }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid {margin: 0; overflow:auto;position:relative;}\n.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0;}\n.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0;}\n.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0;}\n.EditTable td textarea { width:auto; height:auto;}\n.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0 none;border-left: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content td.navButton {text-align: center; border-left: 0 none;border-top: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content input.FormElement {padding: .5em .3em; margin-bottom: 3px}\n.ui-jqdialog-content select.FormElement {padding:.3em; margin-bottom: 3px;}\n.ui-jqdialog-content .data-line {padding-top:.1em;border: 0 none;}\n\n.ui-jqdialog-content .CaptionTD {vertical-align: middle;border: 0 none; padding: 2px;white-space: nowrap;}\n.ui-jqdialog-content .DataTD {padding: 2px; border: 0 none; vertical-align: top;}\n.ui-jqdialog-content .form-view-data {white-space:pre}\n.fm-button { height: 18px; display: inline-block; margin:2px 4px 0 0; padding: .6em .5em .2em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }\n.fm-button-icon-left { padding-left: 1.9em; }\n.fm-button-icon-right { padding-right: 1.9em; }\n.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }\n.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}\n#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }\n.ViewTable {\n\tborder-width: 0; \n\tborder-style: none; \n\tborder-spacing: 1px;\n\tpadding: 4px;\n\ttable-layout: fixed;\n}\n.ViewTable .CaptionTD, .ViewTable .DataTD {padding : 4px;} \n/* End Eorm edit */\n/*cell edit*/\n.ui-jqgrid .edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0 none;}\n/* inline edit actions button*/\n.ui-inline-del.ui-state-hover span, .ui-inline-edit.ui-state-hover span,\n.ui-inline-save.ui-state-hover span, .ui-inline-cancel.ui-state-hover span {\n    margin: -1px;\n}\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 8px;\n}\n\n.ui-jqgrid .inline-edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}\n.ui-jqgrid .tree-plus {position: absolute;\theight: 18px; width: 18px;\toverflow: hidden;}\n.ui-jqgrid .tree-leaf {position: absolute;\theight: 18px; width: 18px;overflow: hidden;}\n.ui-jqgrid .treeclick {cursor: pointer;}\n/* moda dialog */\n* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {text-align: right;}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right;}\n.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0;}\n.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0 -1px -3px;}\n.ui-jqgrid .ui-sort-rtl {left:0;}\n.ui-jqgrid .tree-wrap-ltr {float: left;}\n.ui-jqgrid .tree-wrap-rtl {float: right;}\n.ui-jqgrid .ui-ellipsis {-moz-text-overflow:ellipsis;text-overflow:ellipsis;}\n\n/* Toolbar Search Menu , Nav menu*/\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n\t-webkit-box-shadow: 7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\t-moz-box-shadow:    7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\tbox-shadow:         7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { padding: 0; border: 0 none; height:20px; width:100%;}\n.ui-jqgrid .ui-search-table .ui-search-oper { width:20px; }\na.g-menu-item, a.soptclass, a.clearsearchclass { cursor: pointer; } \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    font-size: 11px;\n}\n.ui-jqgrid .ui-scroll-popup {width: 95px;}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-separator {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-pg-div > .ui-icon {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright:auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 10px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\twhite-space: pre;\n\tpadding-right: 4px;\n\tpadding-left: 4px;\n\twidth : auto;\n}\n.ui-menu-item .ui-common-table .menu_icon .ui-icon {\n\tdisplay : inline-block;\n\tposition: relative;\n}\ntd.menu_text {\n\twidth: auto;\n\twhite-space: nowrap;\n}\n.ui-search-menu .ui-menu-item {\n\tpadding : 0 0;\n}\n.ui-col-menu .ui-menu-item td.menu_text{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left : 1px;\n}\n.ui-col-menu .ui-menu-item td.menu_icon{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tvertical-align: middle;\n}\n.ui-col-menu .ui-menu-item td.menu_icon input{\n\tmargin: 2px 0;\n\t\n}\n#search_menu .ui-menu-item div {\n\tmargin: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu .ui-menu-item div input,\n#search_menu .ui-menu-item div select\n{\n\tpadding: 3px 2px;\n}\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n}\n#column_menu.ui-menu .ui-menu-item {\n\tposition :static;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/i18n/grid.locale-cn.js",
    "content": "/**\n * jqGrid Chinese Translation\n * 咖啡兔 yanhonglei@gmail.com \n * http://www.kafeitu.me \n * \n * 花岗岩 marbleqi@163.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html \n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"cn\"] = {\n    defaults : {\n        recordtext: \"第{0}到第{1}条\\u3000共 {2} 条\", // 共字前是全角空格\n        emptyrecords: \"没有记录！\",\n        loadtext: \"读取中...\",\n\tsavetext: \"保存中...\",\n        pgtext : \"第{0}页\\u3000共{1}页\",\n\t\tpgfirst : \"第一页\",\n\t\tpglast : \"最后一页\",\n\t\tpgnext : \"下一页\",\n\t\tpgprev : \"上一页\",\n\t\tpgrecs : \"每页记录数\",\n\t\tshowhide: \"切换 展开 折叠 表格\",\n\t\t// mobile\n\t\tpagerCaption : \"表格::页面设置\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"每页记录数\",\n\t\tnomorerecs : \"没有更多记录...\",\n\t\tscrollPullup: \"加载更多...\",\n\t\tscrollPulldown : \"刷新...\",\n\t\tscrollRefresh : \"滚动刷新...\"\n    },\n    search : {\n        caption: \"搜索...\",\n        Find: \"查找\",\n        Reset: \"重置\",\n        odata: [{ oper:'eq', text:'等于\\u3000\\u3000'},{ oper:'ne', text:'不等于\\u3000'},{ oper:'lt', text:'小于\\u3000\\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\\u3000\\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于\\u3000\\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含\\u3000\\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}],\n        groupOps: [ { op: \"AND\", text: \"满足所有条件\" },    { op: \"OR\",  text: \"满足任一条件\" } ],\n\t\toperandTitle : \"单击进行搜索。\",\n\t\tresetTitle : \"重置搜索条件\",\n\t\taddsubgrup : \"添加条件组\",\n\t\taddrule : \"添加条件\",\n\t\tdelgroup : \"删除条件组\",\n\t\tdelrule : \"删除条件\"\t\t\n    },\n    edit : {\n        addCaption: \"添加记录\",\n        editCaption: \"编辑记录\",\n        bSubmit: \"提交\",\n        bCancel: \"取消\",\n        bClose: \"关闭\",\n        saveData: \"数据已修改，是否保存？\",\n        bYes : \"是\",\n        bNo : \"否\",\n        bExit : \"取消\",\n        msg: {\n            required:\"此字段必需\",\n            number:\"请输入有效数字\",\n            minValue:\"输值必须大于等于 \",\n            maxValue:\"输值必须小于等于 \",\n            email: \"这不是有效的e-mail地址\",\n            integer: \"请输入有效整数\",\n            date: \"请输入有效时间\",\n            url: \"无效网址。前缀必须为 ('http://' 或 'https://')\",\n            nodefined : \" 未定义！\",\n            novalue : \" 需要返回值！\",\n            customarray : \"自定义函数需要返回数组！\",\n            customfcheck : \"必须有自定义函数!\"\n        }\n    },\n    view : {\n        caption: \"查看记录\",\n        bClose: \"关闭\"\n    },\n    del : {\n        caption: \"删除\",\n        msg: \"删除所选记录？\",\n        bSubmit: \"删除\",\n        bCancel: \"取消\"\n    },\n    nav : {\n        edittext: \"\",\n        edittitle: \"编辑所选记录\",\n        addtext:\"\",\n        addtitle: \"添加新记录\",\n        deltext: \"\",\n        deltitle: \"删除所选记录\",\n        searchtext: \"\",\n        searchtitle: \"查找\",\n        refreshtext: \"\",\n        refreshtitle: \"刷新表格\",\n        alertcap: \"注意\",\n        alerttext: \"请选择记录\",\n        viewtext: \"\",\n        viewtitle: \"查看所选记录\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"保存记录\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"取消编辑记录\",\n\t\tselectcaption : \"操作...\"\n    },\n    col : {\n        caption: \"选择列\",\n        bSubmit: \"确定\",\n        bCancel: \"取消\"\n    },\n    errors : {\n        errcap : \"错误\",\n        nourl : \"没有设置url\",\n        norecords: \"没有需要处理的记录\",\n        model : \"colNames 和 colModel 长度不等！\"\n    },\n    formatter : {\n        integer : {thousandsSeparator: \",\", defaultValue: '0'},\n        number : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n        currency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n        date : {\n            dayNames:   [\n                \"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\",\n                \"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\",\n            ],\n            monthNames: [\n                \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\", \"十\", \"十一\", \"十二\",\n                \"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n            ],\n            AmPm : [\"am\",\"pm\",\"上午\",\"下午\"],\n            S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n            srcformat: 'Y-m-d',\n            newformat: 'Y-m-d',\n            parseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n            masks : {\n                // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n                // and see http://docs.jquery.com/UI/Datepicker/formatDate\n                // and https://github.com/jquery/globalize#dates for alternative formats used frequently\n                // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n                // information about date, time, numbers and currency formats used in different countries\n                // one should just convert the information in PHP format\n                ISO8601Long:\"Y-m-d H:i:s\",\n                ISO8601Short:\"Y-m-d\",\n                // short date:\n                //    n - Numeric representation of a month, without leading zeros\n                //    j - Day of the month without leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                // example: 3/1/2012 which means 1 March 2012\n                ShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n                // long date:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                LongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n                // long date with long time:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                FullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n                // month day:\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                MonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n                // short time (without seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                ShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n                // long time (with seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                LongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n                SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                // month with year\n                //    Y - A full numeric representation of a year, 4 digits\n                //    F - A full textual representation of a month\n                YearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n            },\n            reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n        },\n        baseLinkUrl: '',\n        showAction: '',\n        target: '',\n        checkbox : {disabled:true},\n        idName : 'id'\n    },\n\tcolmenu : {\n\t\tsortasc : \"升序排序\",\n\t\tsortdesc : \"降序排序\",\n\t\tcolumns : \"列\",\n\t\tfilter : \"筛选\",\n\t\tgrouping : \"分类\",\n\t\tungrouping : \"取消分类\",\n\t\tsearchTitle : \"查找:\",\n\t\tfreeze : \"冻结\",\n\t\tunfreeze : \"取消冻结\",\n\t\treorder : \"重新排序\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/install.txt",
    "content": "Installation\n\nDownload the jqGrid package from the www.trirand/blog site section downloads.\nNote the new download manager where you can choose which modules you want to\ninclude in the download.\n\nIn order to use jqGrid 3.5, first a UI theme css file should be loaded.\nDownload the desired theme (or build a custom one) from jQueryUI site\n(www.jqueryui.com) and point in your link tag in head section the path to the\ntheme css\n\n<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"path_to_ui_css_file/jquery-ui-1.7.1.custom.css\" />\n\nwhere the path_to_ui_css_file is a valid path to the ui theme file\n\nExtract the jqGrid package and copy the ui.jqgrid.css from css directory to\nyour webserver directory. It is not necessary that the jqgrid css file is in\nthe same directory as those of the jquery ui css.\n\n<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"path_to_jqgrid_css_file/ui.jqgrid.css\" />\n\nStarting with this version, jqGrid does not use a loader (which loads the\nneeded files one by one), but all the needed code is contained in one file.\nThe desired modules can be built using the jqGrid download manager from the\nsite pointed above. In order to use this, first a language file should be\nloaded and then the jqgrid file.\n\nCopy the desired language file from js/i18n directory to your web server\ndirectory where you store the java script files. Every language file is\nnamed grid.locale-XX.js, where XX is a two-letter code for the language.\nCopy the jquery.jqGid.min.js file to the same or other valid directory in\nyour web server\n\nInclude both the files in script tags in the head section\n\n<script src=\"path_to_js_files/grid.locale-en.js\" type=\"text/javascript\"></script>\n<script src=\"path_to_js_files/jquery.jqGrid.min.js\" type=\"text/javascript\"></script>\n\nFor debugging purposes, I have created a grid.loader.js which does the same\nloading of the files as in previous versions. The location of the file is in\nsrc directory of the package. In order to use this, the variable pathojsfiles\nshould be adjusted to point to the appropriate folder - see 3.4.x docs.\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/grid.addons.js",
    "content": "(function($){\n/*\n * jqGrid methods without support. Use as you wish\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n *\n * This list of deprecated methods.\n * If you instead want to use them, please include this file after the grid main file.\n * Some methods will be then overwritten.\n *\n */\n/*global jQuery, $ */\n\n$.jgrid.extend({\n// This is the ols search Filter method used in navigator.\n\tsearchGrid : function (p) {\n\t\tp = $.extend({\n\t\t\trecreateFilter: false,\n\t\t\tdrag: true,\n\t\t\tsField:'searchField',\n\t\t\tsValue:'searchString',\n\t\t\tsOper: 'searchOper',\n\t\t\tsFilter: 'filters',\n            loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.\n\t\t\tbeforeShowSearch: null,\n\t\t\tafterShowSearch : null,\n\t\t\tonInitializeSearch: null,\n\t\t\tcloseAfterSearch : false,\n\t\t\tcloseAfterReset: false,\n\t\t\tcloseOnEscape : false,\n\t\t\tmultipleSearch : false,\n\t\t\tcloneSearchRowOnAdd: true,\n\t\t\t// translation\n\t\t\t// if you want to change or remove the order change it in sopt\n\t\t\t// ['bw','eq','ne','lt','le','gt','ge','ew','cn']\n\t\t\tsopt: null,\n\t\t\t// Note: stringResult is intentionally declared \"undefined by default\".\n\t\t\t//  you are velcome to define stringResult expressly in the options you pass to searchGrid()\n\t\t\t//  stringResult is a \"safeguard\" measure to insure we post sensible data when communicated as form-encoded\n\t\t\t//  see http://github.com/tonytomov/jqGrid/issues/#issue/36\n\t\t\t//\n\t\t\t//  If this value is not expressly defined in the incoming options,\n\t\t\t// lower in the code we will infer the value based on value of multipleSearch\n\t\t\tstringResult: undefined,\n\t\t\tonClose : null,\n\t\t\t// useDataProxy allows ADD, EDIT and DEL code to bypass calling $.ajax\n\t\t\t// directly when grid's 'dataProxy' property (grid.p.dataProxy) is a function.\n\t\t\t// Used for \"editGridRow\" and \"delGridRow\" below and automatically flipped to TRUE\n\t\t\t// when ajax setting's 'url' (grid's 'editurl') property is undefined.\n\t\t\t// When 'useDataProxy' is true, instead of calling $.ajax.call(gridDOMobj, o, i) we call\n\t\t\t// gridDOMobj.p.dataProxy.call(gridDOMobj, o, i)\n\t\t\t//\n\t\t\t// Behavior is extremely similar to when 'datatype' is a function, but arguments are slightly different.\n\t\t\t// Normally the following is fed to datatype.call(a, b, c):\n\t\t\t//   a = Pointer to grid's table DOM element, b = grid.p.postdata, c = \"load_\"+grid's ID\n\t\t\t// In cases of \"edit\" and \"del\" the following is fed:\n\t\t\t//   a = Pointer to grid's table DOM element (same),\n\t\t\t//   b = extended Ajax Options including postdata in \"data\" property. (different object type)\n\t\t\t//   c = \"set_\"+grid's ID in case of \"edit\" and \"del_\"+grid's ID in case of \"del\" (same type, different content)\n\t\t\t// The major difference is that complete ajax options object, with attached \"complete\" and \"error\"\n\t\t\t// callback functions is fed instead of only post data.\n\t\t\t// This allows you to emulate a $.ajax call (including calling \"complete\"/\"error\"),\n\t\t\t// while retrieving the data locally in the browser.\n\t\t\tuseDataProxy: false,\n\t\t\toverlay : true\n\t\t}, $.jgrid.search, p || {});\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar fid = \"fbox_\"+$t.p.id,\n\t\t\tshowFrm = true;\n            function applyDefaultFilters(gridDOMobj, filterSettings) {\n\t\t\t\t/*\n                gridDOMobj = ointer to grid DOM object ( $(#list)[0] )\n                What we need from gridDOMobj:\n                gridDOMobj.SearchFilter is the pointer to the Search box, once it's created.\n                gridDOMobj.p.postData - dictionary of post settings. These can be overriden at grid creation to\n                contain default filter settings. We will parse these and will populate the search with defaults.\n                filterSettings - same settings object you (would) pass to $().jqGrid('searchGrid', filterSettings);\n                */\n\n                // Pulling default filter settings out of postData property of grid's properties.:\n                var defaultFilters = gridDOMobj.p.postData[filterSettings.sFilter];\n                // example of what we might get: {\"groupOp\":\"and\",\"rules\":[{\"field\":\"amount\",\"op\":\"eq\",\"data\":\"100\"}]}\n\t\t\t\t// suppose we have imported this with grid import, the this is a string.\n\t\t\t\tif(typeof(defaultFilters) == \"string\") {\n\t\t\t\t\tdefaultFilters = $.jgrid.parse(defaultFilters);\n\t\t\t\t}\n                if (defaultFilters) {\n                    if (defaultFilters.groupOp) {\n                        gridDOMobj.SearchFilter.setGroupOp(defaultFilters.groupOp);\n                    }\n                    if (defaultFilters.rules) {\n                        var f, i = 0, li = defaultFilters.rules.length, success = false;\n                        for (; i < li; i++) {\n                            f = defaultFilters.rules[i];\n                            // we are not trying to counter all issues with filter declaration here. Just the basics to avoid lookup exceptions.\n                            if (f.field !== undefined && f.op !== undefined && f.data !== undefined) {\n                                success = gridDOMobj.SearchFilter.setFilter({\n                                    'sfref':gridDOMobj.SearchFilter.$.find(\".sf:last\"),\n                                    'filter':$.extend({},f)\n                                });\n\t\t\t\t\t\t\t\tif (success) { gridDOMobj.SearchFilter.add(); }\n                            }\n                        }\n                    }\n\t\t\t\t}\n            } // end of applyDefaultFilters\n\t\t\tfunction hideFilter(selector) {\n\t\t\t\tif(p.onClose){\n\t\t\t\t\tvar fclm = p.onClose(selector);\n\t\t\t\t\tif(typeof fclm == 'boolean' && !fclm) { return; }\n\t\t\t\t}\n\t\t\t\tselector.hide();\n\t\t\t\tif(p.overlay === true) {\n\t\t\t\t\t$(\".jqgrid-overlay:first\",\"#gbox_\"+$t.p.id).hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction showFilter(){\n\t\t\t\tvar fl = $(\".ui-searchFilter\").length;\n\t\t\t\tif(fl > 1) {\n\t\t\t\t\tvar zI = $(\"#\"+fid).css(\"zIndex\");\n\t\t\t\t\t$(\"#\"+fid).css({zIndex:parseInt(zI,10)+fl});\n\t\t\t\t}\n\t\t\t\t$(\"#\"+fid).show();\n\t\t\t\tif(p.overlay === true) {\n\t\t\t\t\t$(\".jqgrid-overlay:first\",\"#gbox_\"+$t.p.id).show();\n\t\t\t\t}\n\t\t\t\ttry{$(':input:visible',\"#\"+fid)[0].focus();}catch(_){}\n\t\t\t}\n\t\t\tfunction searchFilters(filters) {\n\t\t\t\tvar hasFilters = (filters !== undefined),\n\t\t\t\tgrid = $(\"#\"+$t.p.id),\n\t\t\t\tsdata={};\n\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\tsdata[p.sField] = filters.rules[0].field;\n\t\t\t\t\tsdata[p.sValue] = filters.rules[0].data;\n\t\t\t\t\tsdata[p.sOper] = filters.rules[0].op;\n\t\t\t\t\tif(sdata.hasOwnProperty(p.sFilter) ) {\n\t\t\t\t\t\tdelete sdata[p.sFilter];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsdata[p.sFilter] = filters;\n\t\t\t\t\t$.each([p.sField, p.sValue, p.sOper], function(i, n){\n\t\t\t\t\t\tif(sdata.hasOwnProperty(n)) { delete sdata[n];}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tgrid[0].p.search = hasFilters;\n\t\t\t\t$.extend(grid[0].p.postData,sdata);\n\t\t\t\tgrid.trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\tif(p.closeAfterSearch) { hideFilter($(\"#\"+fid)); }\n\t\t\t}\n\t\t\tfunction resetFilters(op) {\n\t\t\t\tvar reload = op && op.hasOwnProperty(\"reload\") ? op.reload : true,\n\t\t\t\tgrid = $(\"#\"+$t.p.id),\n\t\t\t\tsdata={};\n\t\t\t\tgrid[0].p.search = false;\n\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\tsdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = \"\";\n\t\t\t\t} else {\n\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t}\n\t\t\t\t$.extend(grid[0].p.postData,sdata);\n\t\t\t\tif(reload) {\n\t\t\t\t\tgrid.trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t}\n\t\t\t\tif(p.closeAfterReset) { hideFilter($(\"#\"+fid)); }\n\t\t\t}\n\t\t\tif($.fn.searchFilter) {\n\t\t\t\tif(p.recreateFilter===true) {$(\"#\"+fid).remove();}\n\t\t\t\tif( $(\"#\"+fid).html() !== null ) {\n\t\t\t\t\tif ( $.isFunction(p.beforeShowSearch) ) {\n\t\t\t\t\t\tshowFrm = p.beforeShowSearch($(\"#\"+fid));\n\t\t\t\t\t\tif(typeof(showFrm) == \"undefined\") {\n\t\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(showFrm === false) { return; }\n\t\t\t\t\tshowFilter();\n\t\t\t\t\tif( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($(\"#\"+fid)); }\n\t\t\t\t} else {\n\t\t\t\t\tvar fields = [],\n\t\t\t\t\tcolNames = $(\"#\"+$t.p.id).jqGrid(\"getGridParam\",\"colNames\"),\n\t\t\t\t\tcolModel = $(\"#\"+$t.p.id).jqGrid(\"getGridParam\",\"colModel\"),\n\t\t\t\t\tstempl = ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],\n\t\t\t\t\tj,pos,k,oprtr=[];\n\t\t\t\t\tif (p.sopt !==null) {\n\t\t\t\t\t\tk=0;\n\t\t\t\t\t\tfor(j=0;j<p.sopt.length;j++) {\n\t\t\t\t\t\t\tif( (pos= $.inArray(p.sopt[j],stempl)) != -1 ){\n\t\t\t\t\t\t\t\toprtr[k] = {op:p.sopt[j],text: p.odata[pos]};\n\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(j=0;j<stempl.length;j++) {\n\t\t\t\t\t\t\toprtr[j] = {op:stempl[j],text: p.odata[j]};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t    $.each(colModel, function(i, v) {\n\t\t\t\t        var searchable = (typeof v.search === 'undefined') ?  true: v.search ,\n\t\t\t\t        hidden = (v.hidden === true),\n\t\t\t\t\t\tsoptions = $.extend({}, {text: colNames[i], itemval: v.index || v.name}, this.searchoptions),\n\t\t\t\t\t\tignoreHiding = (soptions.searchhidden === true);\n\t\t\t\t\t\tif(typeof soptions.sopt !== 'undefined') {\n\t\t\t\t\t\t\tk=0;\n\t\t\t\t\t\t\tsoptions.ops =[];\n\t\t\t\t\t\t\tif(soptions.sopt.length>0) {\n\t\t\t\t\t\t\t\tfor(j=0;j<soptions.sopt.length;j++) {\n\t\t\t\t\t\t\t\t\tif( (pos= $.inArray(soptions.sopt[j],stempl)) != -1 ){\n\t\t\t\t\t\t\t\t\t\tsoptions.ops[k] = {op:soptions.sopt[j],text: p.odata[pos]};\n\t\t\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(typeof(this.stype) === 'undefined') { this.stype='text'; }\n\t\t\t\t\t\tif(this.stype == 'select') {\n\t\t\t\t\t\t\tif ( soptions.dataUrl !== undefined) {}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvar eov;\n\t\t\t\t\t\t\t\tif(soptions.value) {\n\t\t\t\t\t\t\t\t\teov = soptions.value;\n\t\t\t\t\t\t\t\t} else if(this.editoptions) {\n\t\t\t\t\t\t\t\t\teov = this.editoptions.value;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(eov) {\n\t\t\t\t\t\t\t\t\tsoptions.dataValues =[];\n\t\t\t\t\t\t\t\t\tif(typeof(eov) === 'string') {\n\t\t\t\t\t\t\t\t\t\tvar so = eov.split(\";\"),sv;\n\t\t\t\t\t\t\t\t\t\tfor(j=0;j<so.length;j++) {\n\t\t\t\t\t\t\t\t\t\t\tsv = so[j].split(\":\");\n\t\t\t\t\t\t\t\t\t\t\tsoptions.dataValues[j] ={value:sv[0],text:sv[1]};\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (typeof(eov) === 'object') {\n\t\t\t\t\t\t\t\t\t\tj=0;\n\t\t\t\t\t\t\t\t\t\tfor (var key in eov) {\n\t\t\t\t\t\t\t\t\t\t\tif(eov.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsoptions.dataValues[j] ={value:key,text:eov[key]};\n\t\t\t\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t        if ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\t\tfields.push(soptions);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(fields.length>0){\n\t\t\t\t\t\t$(\"<div id='\"+fid+\"' role='dialog' tabindex='-1'></div>\").insertBefore(\"#gview_\"+$t.p.id);\n\t\t\t\t\t\t// Before we create searchFilter we need to decide if we want to get back a string or a JS object.\n\t\t\t\t\t\t//  see http://github.com/tonytomov/jqGrid/issues/#issue/36 for background on the issue.\n\t\t\t\t\t\t// If p.stringResult is defined, it was explisitly passed to us by user. Honor the choice, whatever it is.\n\t\t\t\t\t\tif (p.stringResult===undefined) {\n\t\t\t\t\t\t\t// to provide backward compatibility, inferring stringResult value from multipleSearch\n\t\t\t\t\t\t\tp.stringResult = p.multipleSearch;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// we preserve the return value here to retain access to .add() and other good methods of search form.\n\t\t\t\t\t\t$t.SearchFilter = $(\"#\"+fid).searchFilter(fields, { groupOps: p.groupOps, operators: oprtr, onClose:hideFilter, resetText: p.Reset, searchText: p.Find, windowTitle: p.caption,  rulesText:p.rulesText, matchText:p.matchText, onSearch: searchFilters, onReset: resetFilters,stringResult:p.stringResult, ajaxSelectOptions: $.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions ||{}), clone: p.cloneSearchRowOnAdd });\n\t\t\t\t\t\t$(\".ui-widget-overlay\",\"#\"+fid).remove();\n\t\t\t\t\t\tif($t.p.direction==\"rtl\") { $(\".ui-closer\",\"#\"+fid).css(\"float\",\"left\"); }\n\t\t\t\t\t\tif (p.drag===true) {\n\t\t\t\t\t\t\t$(\"#\"+fid+\" table thead tr:first td:first\").css('cursor','move');\n\t\t\t\t\t\t\tif(jQuery.fn.jqDrag) {\n\t\t\t\t\t\t\t\t$(\"#\"+fid).jqDrag($(\"#\"+fid+\" table thead tr:first td:first\"));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t$(\"#\"+fid).draggable({handle: $(\"#\"+fid+\" table thead tr:first td:first\")});\n\t\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(p.multipleSearch === false) {\n\t\t\t\t\t\t\t$(\".ui-del, .ui-add, .ui-del, .ui-add-last, .matchText, .rulesText\", \"#\"+fid).hide();\n\t\t\t\t\t\t\t$(\"select[name='groupOp']\",\"#\"+fid).hide();\n\t\t\t\t\t\t}\n                        if (p.multipleSearch === true && p.loadDefaults === true) {\n                            applyDefaultFilters($t, p);\n                        }\n\t\t\t\t\t\tif ( $.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch( $(\"#\"+fid) ); }\n\t\t\t\t\t\tif ( $.isFunction(p.beforeShowSearch) ) {\n\t\t\t\t\t\t\tshowFrm = p.beforeShowSearch($(\"#\"+fid));\n\t\t\t\t\t\t\tif(typeof(showFrm) == \"undefined\") {\n\t\t\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(showFrm === false) { return; }\n\t\t\t\t\t\tshowFilter();\n\t\t\t\t\t\tif( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($(\"#\"+fid)); }\n\t\t\t\t\t\tif(p.closeOnEscape===true){\n\t\t\t\t\t\t\t$(\"#\"+fid).keydown( function( e ) {\n\t\t\t\t\t\t\t\tif( e.which == 27 ) {\n\t\t\t\t\t\t\t\t\thideFilter($(\"#\"+fid));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (e.which == 13) {\n\t\t\t\t\t\t\t\t\t$(\".ui-search\", this).click();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\t// methods taken from grid.custom.\n\tupdateGridRows : function (data, rowidname, jsonreader) {\n\t\tvar nm, success=false, title;\n\t\tthis.each(function(){\n\t\t\tvar t = this, vl, ind, srow, sid;\n\t\t\tif(!t.grid) {return false;}\n\t\t\tif(!rowidname) { rowidname = \"id\"; }\n\t\t\tif( data  && data.length >0 ) {\n\t\t\t\t$(data).each(function(j){\n\t\t\t\t\tsrow = this;\n\t\t\t\t\tind = t.rows.namedItem(srow[rowidname]);\n\t\t\t\t\tif(ind) {\n\t\t\t\t\t\tsid = srow[rowidname];\n\t\t\t\t\t\tif(jsonreader === true){\n\t\t\t\t\t\t\tif(t.p.jsonReader.repeatitems === true) {\n\t\t\t\t\t\t\t\tif(t.p.jsonReader.cell) {srow = srow[t.p.jsonReader.cell];}\n\t\t\t\t\t\t\t\tfor (var k=0;k<srow.length;k++) {\n\t\t\t\t\t\t\t\t\tvl = t.formatter( sid, srow[k], k, srow, 'edit');\n\t\t\t\t\t\t\t\t\ttitle = t.p.colModel[k].title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm == t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+k+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+k+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(t.p.colModel).each(function(i){\n\t\t\t\t\t\t\tnm = jsonreader===true ? this.jsonmap || this.name :this.name;\n\t\t\t\t\t\t\tif( srow[nm] !== undefined) {\n\t\t\t\t\t\t\t\tvl = t.formatter( sid, srow[nm], i, srow, 'edit');\n\t\t\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm == t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+i+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+i+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\t// Form search - sorry for this method. Instead use ne jqFilter method.\n\tfilterGrid : function(gridid,p){\n\t\tp = $.extend({\n\t\t\tgridModel : false,\n\t\t\tgridNames : false,\n\t\t\tgridToolbar : false,\n\t\t\tfilterModel: [], // label/name/stype/defval/surl/sopt\n\t\t\tformtype : \"horizontal\", // horizontal/vertical\n\t\t\tautosearch: true, // if set to false a serch button should be enabled.\n\t\t\tformclass: \"filterform\",\n\t\t\ttableclass: \"filtertable\",\n\t\t\tbuttonclass: \"filterbutton\",\n\t\t\tsearchButton: \"Search\",\n\t\t\tclearButton: \"Clear\",\n\t\t\tenableSearch : false,\n\t\t\tenableClear: false,\n\t\t\tbeforeSearch: null,\n\t\t\tafterSearch: null,\n\t\t\tbeforeClear: null,\n\t\t\tafterClear: null,\n\t\t\turl : '',\n\t\t\tmarksearched: true\n\t\t},p  || {});\n\t\treturn this.each(function(){\n\t\t\tvar self = this;\n\t\t\tthis.p = p;\n\t\t\tif(this.p.filterModel.length === 0 && this.p.gridModel===false) { alert(\"No filter is set\"); return;}\n\t\t\tif( !gridid) {alert(\"No target grid is set!\"); return;}\n\t\t\tthis.p.gridid = gridid.indexOf(\"#\") != -1 ? gridid : \"#\"+gridid;\n\t\t\tvar gcolMod = $(this.p.gridid).jqGrid(\"getGridParam\",'colModel');\n\t\t\tif(gcolMod) {\n\t\t\t\tif( this.p.gridModel === true) {\n\t\t\t\t\tvar thegrid = $(this.p.gridid)[0];\n\t\t\t\t\tvar sh;\n\t\t\t\t\t// we should use the options search, edittype, editoptions\n\t\t\t\t\t// additionally surl and defval can be added in grid colModel\n\t\t\t\t\t$.each(gcolMod, function (i,n) {\n\t\t\t\t\t\tvar tmpFil = [];\n\t\t\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\t\t\tif(this.editrules && this.editrules.searchhidden === true) {\n\t\t\t\t\t\t\tsh = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(this.hidden === true ) {\n\t\t\t\t\t\t\t\tsh = false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsh = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( this.search === true && sh === true) {\n\t\t\t\t\t\t\tif(self.p.gridNames===true) {\n\t\t\t\t\t\t\t\ttmpFil.label = thegrid.p.colNames[i];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmpFil.label = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpFil.name = this.name;\n\t\t\t\t\t\t\ttmpFil.index = this.index || this.name;\n\t\t\t\t\t\t\t// we support only text and selects, so all other to text\n\t\t\t\t\t\t\ttmpFil.stype = this.edittype || 'text';\n\t\t\t\t\t\t\tif(tmpFil.stype != 'select' ) {\n\t\t\t\t\t\t\t\ttmpFil.stype = 'text';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpFil.defval = this.defval || '';\n\t\t\t\t\t\t\ttmpFil.surl = this.surl || '';\n\t\t\t\t\t\t\ttmpFil.sopt = this.editoptions || {};\n\t\t\t\t\t\t\ttmpFil.width = this.width;\n\t\t\t\t\t\t\tself.p.filterModel.push(tmpFil);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.each(self.p.filterModel,function(i,n) {\n\t\t\t\t\t\tfor(var j=0;j<gcolMod.length;j++) {\n\t\t\t\t\t\t\tif(this.name == gcolMod[j].name) {\n\t\t\t\t\t\t\t\tthis.index = gcolMod[j].index || this.name;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!this.index) {\n\t\t\t\t\t\t\tthis.index = this.name;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\talert(\"Could not get grid colModel\"); return;\n\t\t\t}\n\t\t\tvar triggerSearch = function() {\n\t\t\t\tvar sdata={}, j=0, v;\n\t\t\t\tvar gr = $(self.p.gridid)[0], nm;\n                gr.p.searchdata = {};\n\t\t\t\tif($.isFunction(self.p.beforeSearch)){self.p.beforeSearch();}\n\t\t\t\t$.each(self.p.filterModel,function(i,n){\n                    nm = this.index;\n\t\t\t\t\tif(this.stype === 'select') {\n\t\t\t\t\t\tv = $(\"select[name=\"+nm+\"]\",self).val();\n\t\t\t\t\t\tif(v) {\n\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n                               try {\n                                   delete gr.p.postData[this.index];\n                               } catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tv = $(\"input[name=\"+nm+\"]\",self).val();\n\t\t\t\t\t\tif(v) {\n\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete gr.p.postData[this.index];\n                            } catch(x) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n                $.extend(gr.p.postData,sdata);\n\t\t\t\tvar saveurl;\n\t\t\t\tif(self.p.url) {\n\t\t\t\t\tsaveurl = $(gr).jqGrid(\"getGridParam\",'url');\n\t\t\t\t\t$(gr).jqGrid(\"setGridParam\",{url:self.p.url});\n\t\t\t\t}\n\t\t\t    $(gr).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\tif(saveurl) {$(gr).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\tif($.isFunction(self.p.afterSearch)){self.p.afterSearch();}\n\t\t\t};\n\t\t\tvar clearSearch = function(){\n\t\t\t\tvar sdata={}, v, j=0;\n\t\t\t\tvar gr = $(self.p.gridid)[0], nm;\n\t\t\t\tif($.isFunction(self.p.beforeClear)){self.p.beforeClear();}\n\t\t\t\t$.each(self.p.filterModel,function(i,n){\n                    nm = this.index;\n\t\t\t\t\tv = (this.defval) ? this.defval : \"\";\n\t\t\t\t\tif(!this.stype){this.stype='text';}\n\t\t\t\t\tswitch (this.stype) {\n\t\t\t\t\t\tcase 'select' :\n\t\t\t\t\t\t\tvar v1;\n\t\t\t\t\t\t\t$(\"select[name=\"+nm+\"] option\",self).each(function (i){\n                                if(i===0) { this.selected = true; }\n\t\t\t\t\t\t\t\tif ($(this).text() == v) {\n\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\tv1 = $(this).val();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif(v1) {\n\t\t\t\t\t\t\t\t// post the key and not the text\n\t\t\t\t\t\t\t\tsdata[nm] = v1;\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n                                try {\n                                    delete gr.p.postData[this.index];\n                                } catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\t$(\"input[name=\"+nm+\"]\",self).val(v);\n\t\t\t\t\t\t\tif(v) {\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n                                try {\n                                    delete gr.p.postData[this.index];\n                                } catch (k) {}\n\t\t\t\t\t\t\t}\n                            break;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n                $.extend(gr.p.postData,sdata);\n\t\t\t\tvar saveurl;\n\t\t\t\tif(self.p.url) {\n\t\t\t\t\tsaveurl = $(gr).jqGrid(\"getGridParam\",'url');\n\t\t\t\t\t$(gr).jqGrid(\"setGridParam\",{url:self.p.url});\n\t\t\t\t}\n\t\t\t\t$(gr).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\tif(saveurl) {$(gr).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\tif($.isFunction(self.p.afterClear)){self.p.afterClear();}\n\t\t\t};\n\t\t\tvar tbl;\n\t\t\tvar formFill = function(){\n\t\t\t\tvar tr = document.createElement(\"tr\");\n\t\t\t\tvar tr1, sb, cb,tl,td;\n\t\t\t\tif(self.p.formtype=='horizontal'){\n\t\t\t\t\t$(tbl).append(tr);\n\t\t\t\t}\n\t\t\t\t$.each(self.p.filterModel,function(i,n){\n\t\t\t\t\ttl = document.createElement(\"td\");\n\t\t\t\t\t$(tl).append(\"<label for='\"+this.name+\"'>\"+this.label+\"</label>\");\n\t\t\t\t\ttd = document.createElement(\"td\");\n\t\t\t\t\tvar $t=this;\n\t\t\t\t\tif(!this.stype) { this.stype='text';}\n\t\t\t\t\tswitch (this.stype)\n\t\t\t\t\t{\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(this.surl) {\n\t\t\t\t\t\t\t// data returned should have already constructed html select\n\t\t\t\t\t\t\t$(td).load(this.surl,function(){\n\t\t\t\t\t\t\t\tif($t.defval) { $(\"select\",this).val($t.defval); }\n\t\t\t\t\t\t\t\t$(\"select\",this).attr({name:$t.index || $t.name, id: \"sg_\"+$t.name});\n\t\t\t\t\t\t\t\tif($t.sopt) { $(\"select\",this).attr($t.sopt); }\n\t\t\t\t\t\t\t\tif(self.p.gridToolbar===true && $t.width) {\n\t\t\t\t\t\t\t\t\t$(\"select\",this).width($t.width);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(self.p.autosearch===true){\n\t\t\t\t\t\t\t\t\t$(\"select\",this).change(function(e){\n\t\t\t\t\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// sopt to construct the values\n\t\t\t\t\t\t\tif($t.sopt.value) {\n\t\t\t\t\t\t\t\tvar oSv = $t.sopt.value;\n\t\t\t\t\t\t\t\tvar elem = document.createElement(\"select\");\n\t\t\t\t\t\t\t\t$(elem).attr({name:$t.index || $t.name, id: \"sg_\"+$t.name}).attr($t.sopt);\n\t\t\t\t\t\t\t\tvar so, sv, ov;\n\t\t\t\t\t\t\t\tif(typeof oSv === \"string\") {\n\t\t\t\t\t\t\t\t\tso = oSv.split(\";\");\n\t\t\t\t\t\t\t\t\tfor(var k=0; k<so.length;k++){\n\t\t\t\t\t\t\t\t\t\tsv = so[k].split(\":\");\n\t\t\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\t\t\tov.value = sv[0]; ov.innerHTML = sv[1];\n\t\t\t\t\t\t\t\t\t\tif (sv[1]==$t.defval) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if(typeof oSv === \"object\" ) {\n\t\t\t\t\t\t\t\t\tfor ( var key in oSv) {\n\t\t\t\t\t\t\t\t\t\tif(oSv.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = oSv[key];\n\t\t\t\t\t\t\t\t\t\t\tif (oSv[key]==$t.defval) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(self.p.gridToolbar===true && $t.width) {\n\t\t\t\t\t\t\t\t\t$(elem).width($t.width);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$(td).append(elem);\n\t\t\t\t\t\t\t\tif(self.p.autosearch===true){\n\t\t\t\t\t\t\t\t\t$(elem).change(function(e){\n\t\t\t\t\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'text':\n\t\t\t\t\t\tvar df = this.defval ? this.defval: \"\";\n\t\t\t\t\t\t$(td).append(\"<input type='text' name='\"+(this.index || this.name)+\"' id='sg_\"+this.name+\"' value='\"+df+\"'/>\");\n\t\t\t\t\t\tif($t.sopt) { $(\"input\",td).attr($t.sopt); }\n\t\t\t\t\t\tif(self.p.gridToolbar===true && $t.width) {\n\t\t\t\t\t\t\tif($.browser.msie) {\n\t\t\t\t\t\t\t\t$(\"input\",td).width($t.width-4);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(\"input\",td).width($t.width-2);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(self.p.autosearch===true){\n\t\t\t\t\t\t\t$(\"input\",td).keypress(function(e){\n\t\t\t\t\t\t\t\tvar key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;\n\t\t\t\t\t\t\t\tif(key == 13){\n\t\t\t\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn this;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(self.p.formtype=='horizontal'){\n\t\t\t\t\t\tif(self.p.gridToolbar===true && self.p.gridNames===false) {\n\t\t\t\t\t\t\t$(tr).append(td);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(tr).append(tl).append(td);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(tr).append(td);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttr1 = document.createElement(\"tr\");\n\t\t\t\t\t\t$(tr1).append(tl).append(td);\n\t\t\t\t\t\t$(tbl).append(tr1);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttd = document.createElement(\"td\");\n\t\t\t\tif(self.p.enableSearch === true){\n\t\t\t\t\tsb = \"<input type='button' id='sButton' class='\"+self.p.buttonclass+\"' value='\"+self.p.searchButton+\"'/>\";\n\t\t\t\t\t$(td).append(sb);\n\t\t\t\t\t$(\"input#sButton\",td).click(function(){\n\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(self.p.enableClear === true) {\n\t\t\t\t\tcb = \"<input type='button' id='cButton' class='\"+self.p.buttonclass+\"' value='\"+self.p.clearButton+\"'/>\";\n\t\t\t\t\t$(td).append(cb);\n\t\t\t\t\t$(\"input#cButton\",td).click(function(){\n\t\t\t\t\t\tclearSearch();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(self.p.enableClear === true || self.p.enableSearch === true) {\n\t\t\t\t\tif(self.p.formtype=='horizontal') {\n\t\t\t\t\t\t$(tr).append(td);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttr1 = document.createElement(\"tr\");\n\t\t\t\t\t\t$(tr1).append(\"<td>&#160;</td>\").append(td);\n\t\t\t\t\t\t$(tbl).append(tr1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar frm = $(\"<form name='SearchForm' style=display:inline;' class='\"+this.p.formclass+\"'></form>\");\n\t\t\ttbl =$(\"<table class='\"+this.p.tableclass+\"' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>\");\n\t\t\t$(frm).append(tbl);\n\t\t\tformFill();\n\t\t\t$(this).append(frm);\n\t\t\tthis.triggerSearch = triggerSearch;\n\t\t\tthis.clearSearch = clearSearch;\n\t\t});\n\t}\n\n});\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/grid.postext.js",
    "content": ";(function($){\n/**\n * jqGrid extension\n * Paul Tiseo ptiseo@wasteconsultants.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n**/ \n$.jgrid.extend({\n\tgetPostData : function(){\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.postData;\n\t},\n\tsetPostData : function( newdata ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\t// check if newdata is correct type\n\t\tif ( typeof(newdata) === 'object' ) {\n\t\t\t$t.p.postData = newdata;\n\t\t}\n\t\telse {\n\t\t\talert(\"Error: cannot add a non-object postData value. postData unchanged.\");\n\t\t}\n\t},\n\tappendPostData : function( newdata ) { \n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\t// check if newdata is correct type\n\t\tif ( typeof(newdata) === 'object' ) {\n\t\t\t$.extend($t.p.postData, newdata);\n\t\t}\n\t\telse {\n\t\t\talert(\"Error: cannot append a non-object postData value. postData unchanged.\");\n\t\t}\n\t},\n\tsetPostDataItem : function( key, val ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\t$t.p.postData[key] = val;\n\t},\n\tgetPostDataItem : function( key ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.postData[key];\n\t},\n\tremovePostDataItem : function( key ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\tdelete $t.p.postData[key];\n\t},\n\tgetUserData : function(){\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.userData;\n\t},\n\tgetUserDataItem : function( key ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.userData[key];\n\t}\n});\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/grid.setcolumns.js",
    "content": ";(function($){\n/**\n * jqGrid extension for manipulating columns properties\n * Piotr Roznicki roznicki@o2.pl\n * http://www.roznicki.prv.pl\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n**/\n$.jgrid.extend({\n\tsetColumns : function(p) {\n\t\tp = $.extend({\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 200,\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\tdrag: true,\n\t\t\tbeforeShowForm: null,\n\t\t\tafterShowForm: null,\n\t\t\tafterSubmitForm: null,\n\t\t\tcloseOnEscape : true,\n\t\t\tShrinkToFit : false,\n\t\t\tjqModal : false,\n\t\t\tsaveicon: [true,\"left\",\"ui-icon-disk\"],\n\t\t\tcloseicon: [true,\"left\",\"ui-icon-close\"],\n\t\t\tonClose : null,\n\t\t\tcolnameview : true,\n\t\t\tcloseAfterSubmit : true,\n\t\t\tupdateAfterCheck : false,\n\t\t\trecreateForm : false\n\t\t}, $.jgrid.col, p ||{});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tvar onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;\n\t\t\tvar onAfterShow = typeof p.afterShowForm === 'function' ? true: false;\n\t\t\tvar onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true: false;\t\t\t\n\t\t\tvar gID = $t.p.id,\n\t\t\tdtbl = \"ColTbl_\"+gID,\n\t\t\tIDs = {themodal:'colmod'+gID,modalhead:'colhd'+gID,modalcontent:'colcnt'+gID, scrollelm: dtbl};\n\t\t\tif(p.recreateForm===true && $(\"#\"+IDs.themodal).html() != null) {\n\t\t\t\t$(\"#\"+IDs.themodal).remove();\n\t\t\t}\n\t\t\tif ( $(\"#\"+IDs.themodal).html() != null ) {\n\t\t\t\tif(onBeforeShow) { p.beforeShowForm($(\"#\"+dtbl)); }\n\t\t\t\t$.jgrid.viewModal(\"#\"+IDs.themodal,{gbox:\"#gbox_\"+gID,jqm:p.jqModal, jqM:false, modal:p.modal});\n\t\t\t\tif(onAfterShow) { p.afterShowForm($(\"#\"+dtbl)); }\n\t\t\t} else {\n\t\t\t\tvar dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+\"px\";\n\t\t\t\tvar formdata = \"<div id='\"+dtbl+\"' class='formdata' style='width:100%;overflow:auto;position:relative;height:\"+dh+\";'>\";\n\t\t\t\tformdata += \"<table class='ColTable' cellspacing='1' cellpading='2' border='0'><tbody>\";\n\t\t\t\tfor(i=0;i<this.p.colNames.length;i++){\n\t\t\t\t\tif(!$t.p.colModel[i].hidedlg) { // added from T. Tomov\n\t\t\t\t\t\tformdata += \"<tr><td style='white-space: pre;'><input type='checkbox' style='margin-right:5px;' id='col_\" + this.p.colModel[i].name + \"' class='cbox' value='T' \" + \n\t\t\t\t\t\t((this.p.colModel[i].hidden===false)?\"checked\":\"\") + \"/>\" +  \"<label for='col_\" + this.p.colModel[i].name + \"'>\" + this.p.colNames[i] + ((p.colnameview) ? \" (\" + this.p.colModel[i].name + \")\" : \"\" )+ \"</label></td></tr>\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tformdata += \"</tbody></table></div>\"\n\t\t\t\tvar bS  = !p.updateAfterCheck ? \"<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>\"+p.bSubmit+\"</a>\" : \"\",\n\t\t\t\tbC  =\"<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>\"+p.bCancel+\"</a>\";\n\t\t\t\tformdata += \"<table border='0' class='EditTable' id='\"+dtbl+\"_2'><tbody><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DataTD ui-widget-content'></td></tr><tr><td class='ColButton EditButton'>\"+bS+\"&#160;\"+bC+\"</td></tr></tbody></table>\";\n\t\t\t\tp.gbox = \"#gbox_\"+gID;\n\t\t\t\t$.jgrid.createModal(IDs,formdata,p,\"#gview_\"+$t.p.id,$(\"#gview_\"+$t.p.id)[0]);\n\t\t\t\tif(p.saveicon[0]==true) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").addClass(p.saveicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='ui-icon \"+p.saveicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(p.closeicon[0]==true) {\n\t\t\t\t\t$(\"#eData\",\"#\"+dtbl+\"_2\").addClass(p.closeicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='ui-icon \"+p.closeicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(!p.updateAfterCheck) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").click(function(e){\n\t\t\t\t\t\tfor(i=0;i<$t.p.colModel.length;i++){\n\t\t\t\t\t\t\tif(!$t.p.colModel[i].hidedlg) { // added from T. Tomov\n\t\t\t\t\t\t\t\tvar nm = $t.p.colModel[i].name.replace(/\\./g, \"\\\\.\");\n\t\t\t\t\t\t\t\tif($(\"#col_\" + nm,\"#\"+dtbl).attr(\"checked\")) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"showCol\",$t.p.colModel[i].name);\n\t\t\t\t\t\t\t\t\t$(\"#col_\" + nm,\"#\"+dtbl).attr(\"defaultChecked\",true); // Added from T. Tomov IE BUG\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"hideCol\",$t.p.colModel[i].name);\n\t\t\t\t\t\t\t\t\t$(\"#col_\" + nm,\"#\"+dtbl).attr(\"defaultChecked\",\"\"); // Added from T. Tomov IE BUG\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(p.ShrinkToFit===true) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.grid.width-0.001,true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(p.closeAfterSubmit) $.jgrid.hideModal(\"#\"+IDs.themodal,{gb:\"#gbox_\"+gID,jqm:p.jqModal, onClose: p.onClose});\n\t\t\t\t\t\tif (onAfterSubmit) { p.afterSubmitForm($(\"#\"+dtbl)); }\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(\":input\",\"#\"+dtbl).click(function(e){\n\t\t\t\t\t\tvar cn = this.id.substr(4);\n\t\t\t\t\t\tif(cn){\n\t\t\t\t\t\t\tif(this.checked) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"showCol\",cn);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"hideCol\",cn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(p.ShrinkToFit===true) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.grid.width-0.001,true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$(\"#eData\", \"#\"+dtbl+\"_2\").click(function(e){\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+IDs.themodal,{gb:\"#gbox_\"+gID,jqm:p.jqModal, onClose: p.onClose});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#dData, #eData\",\"#\"+dtbl+\"_2\").hover(\n\t\t\t\t   function(){$(this).addClass('ui-state-hover');}, \n\t\t\t\t   function(){$(this).removeClass('ui-state-hover');}\n\t\t\t\t);\t\t\t\t\n\t\t\t\tif(onBeforeShow) { p.beforeShowForm($(\"#\"+dtbl)); }\n\t\t\t\t$.jgrid.viewModal(\"#\"+IDs.themodal,{gbox:\"#gbox_\"+gID,jqm:p.jqModal, jqM: true, modal:p.modal});\n\t\t\t\tif(onAfterShow) { p.afterShowForm($(\"#\"+dtbl)); }\n\t\t\t}\n\t\t});\n\t}\n});\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/jquery.contextmenu.js",
    "content": "/*\n * ContextMenu - jQuery plugin for right-click context menus\n *\n * Author: Chris Domigan\n * Contributors: Dan G. Switzer, II\n * Parts of this plugin are inspired by Joern Zaefferer's Tooltip plugin\n *\n * Dual licensed under the MIT and GPL licenses:\n *   http://www.opensource.org/licenses/mit-license.php\n *   http://www.gnu.org/licenses/gpl.html\n *\n * Version: r2\n * Date: 16 July 2007\n *\n * For documentation visit http://www.trendskitchens.co.nz/jquery/contextmenu/\n *\n */\n\n(function($) {\n\n \tvar menu, shadow, content, hash, currentTarget;\n  var defaults = {\n    menuStyle: {\n      listStyle: 'none',\n      padding: '1px',\n      margin: '0px',\n      backgroundColor: '#fff',\n      border: '1px solid #999',\n      width: '100px'\n    },\n    itemStyle: {\n      margin: '0px',\n      color: '#000',\n      display: 'block',\n      cursor: 'default',\n      padding: '3px',\n      border: '1px solid #fff',\n      backgroundColor: 'transparent'\n    },\n    itemHoverStyle: {\n      border: '1px solid #0a246a',\n      backgroundColor: '#b6bdd2'\n    },\n    eventPosX: 'pageX',\n    eventPosY: 'pageY',\n    shadow : true,\n    onContextMenu: null,\n    onShowMenu: null\n \t};\n\n  $.fn.contextMenu = function(id, options) {\n    if (!menu) {                                      // Create singleton menu\n      menu = $('<div id=\"jqContextMenu\"></div>')\n               .hide()\n               .css({position:'absolute', zIndex:'500'})\n               .appendTo('body')\n               .bind('click', function(e) {\n                 e.stopPropagation();\n               });\n    }\n    if (!shadow) {\n      shadow = $('<div></div>')\n                 .css({backgroundColor:'#000',position:'absolute',opacity:0.2,zIndex:499})\n                 .appendTo('body')\n                 .hide();\n    }\n    hash = hash || [];\n    hash.push({\n      id : id,\n      menuStyle: $.extend({}, defaults.menuStyle, options.menuStyle || {}),\n      itemStyle: $.extend({}, defaults.itemStyle, options.itemStyle || {}),\n      itemHoverStyle: $.extend({}, defaults.itemHoverStyle, options.itemHoverStyle || {}),\n      bindings: options.bindings || {},\n      shadow: options.shadow || options.shadow === false ? options.shadow : defaults.shadow,\n      onContextMenu: options.onContextMenu || defaults.onContextMenu,\n      onShowMenu: options.onShowMenu || defaults.onShowMenu,\n      eventPosX: options.eventPosX || defaults.eventPosX,\n      eventPosY: options.eventPosY || defaults.eventPosY\n    });\n\n    var index = hash.length - 1;\n    $(this).bind('contextmenu', function(e) {\n      // Check if onContextMenu() defined\n      var bShowContext = (!!hash[index].onContextMenu) ? hash[index].onContextMenu(e) : true;\n\t  currentTarget = e.target;\n      if (bShowContext) {\n\t\tdisplay(index, this, e );\n\t\treturn false;\n\t  }\n    });\n    return this;\n  };\n\n  function display(index, trigger, e ) {\n    var cur = hash[index];\n    content = $('#'+cur.id).find('ul:first').clone(true);\n    content.css(cur.menuStyle).find('li').css(cur.itemStyle).hover(\n      function() {\n        $(this).css(cur.itemHoverStyle);\n      },\n      function(){\n        $(this).css(cur.itemStyle);\n      }\n    ).find('img').css({verticalAlign:'middle',paddingRight:'2px'});\n\n    // Send the content to the menu\n    menu.html(content);\n\n    // if there's an onShowMenu, run it now -- must run after content has been added\n\t\t// if you try to alter the content variable before the menu.html(), IE6 has issues\n\t\t// updating the content\n    if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);\n\n    $.each(cur.bindings, function(id, func) {\n      $('#'+id, menu).bind('click', function() {\n        hide();\n        func(trigger, currentTarget);\n      });\n    });\n\n    menu.css({'left':e[cur.eventPosX],'top':e[cur.eventPosY]}).show();\n    if (cur.shadow) shadow.css({width:menu.width(),height:menu.height(),left:e.pageX+2,top:e.pageY+2}).show();\n    $(document).one('click', hide);\n  }\n\n  function hide() {\n    menu.hide();\n    shadow.hide();\n  }\n\n  // Apply defaults\n  $.contextMenu = {\n    defaults : function(userDefaults) {\n      $.each(userDefaults, function(i, val) {\n        if (typeof val == 'object' && defaults[i]) {\n          $.extend(defaults[i], val);\n        }\n        else defaults[i] = val;\n      });\n    }\n  };\n\n})(jQuery);\n\n$(function() {\n  $('div.contextMenu').hide();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/jquery.searchFilter.js",
    "content": "/* Plugin:      searchFilter v1.2.9\n * Author:      Kasey Speakman (kasey@cornerspeed.com)\n * License:     Dual Licensed, MIT and GPL v2 (http://www.gnu.org/licenses/gpl-2.0.html)\n *\n * REQUIREMENTS:\n *    jQuery 1.3+           (http://jquery.com/)\n *    A Themeroller Theme   (http://jqueryui.com/themeroller/)\n *\n * SECURITY WARNING\n *    You should always implement server-side checking to ensure that\n *    the query will fail when forged/invalid data is received.\n *    Clever users can send any value they want through JavaScript and HTTP POST/GET.\n *\n * THEMES\n *    Simply include the CSS file for your Themeroller theme.\n *\n * DESCRIPTION\n *     This plugin creates a new searchFilter object in the specified container\n *\n * INPUT TYPE\n *     fields:  an array of field objects. each object has the following properties:\n *              text: a string containing the display name of the field (e.g. \"Field 1\")\n *              itemval: a string containing the actual field name (e.g. \"field1\")\n *              optional properties:\n *                  ops: an array of operators in the same format as jQuery.fn.searchFilter.defaults.operators\n *                       that is: [ { op: 'gt', text: 'greater than'}, { op:'lt', text: 'less than'}, ... ]\n *                       if not specified, the passed-in options used, and failting that, jQuery.fn.searchFilter.defaults.operators will be used\n *                  *** NOTE ***\n *                  Specifying a dataUrl or dataValues property means that a <select ...> (drop-down-list) will be generated\n *                  instead of a text input <input type='text'.../> where the user would normally type in their search data\n *                  ************\n *                  dataUrl: a url that will return the html select for this field, this url will only be called once for this field\n *                  dataValues: the possible values for this field in the form [ { text: 'Data Display Text', value: 'data_actual_value' }, { ... } ]\n *                  dataInit: a function that you can use to initialize the data field. this function is passed the jQuery-fied data element\n *                  dataEvents: list of events to apply to the data element. uses $(\"#id\").bind(type, [data], fn) to bind events to data element\n *              *** JSON of this object could look like this: ***\n *               var fields = [\n *                 {\n *                   text: 'Field Display Name',\n *                   itemval: 'field_actual_name',\n *                   // below this are optional values\n *                   ops: [ // this format is the same as jQuery.fn.searchFilter.defaults.operators\n *                     { op: 'gt', text: 'greater than' },\n *                     { op: 'lt', text: 'less than' }\n *                   ],\n *                   dataUrl: 'http://server/path/script.php?propName=propValue', // using this creates a select for the data input instead of an input type='text'\n *                   dataValues: [ // using this creates a select for the data input instead of an input type='text'\n *                     { text: 'Data Value Display Name', value: 'data_actual_value' },\n *                     { ... }\n *                   ],\n *                   dataInit: function(jElem) { jElem.datepicker(options); },\n *                   dataEvents: [ // these are the same options that you pass to $(\"#id\").bind(type, [data], fn)\n *                     { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },\n *                     { type: 'keypress', fn: function(e) { console.log('keypress'); } }\n *                   ]\n *                 },\n *                 { ... }\n *               ]\n *     options: name:value properties containing various creation options\n *              see jQuery.fn.searchFilter.defaults for the overridable options\n *\n * RETURN TYPE: This plugin returns a SearchFilter object, which has additional SearchFilter methods:\n *     Methods\n *         add:    Adds a filter. added to the end of the list unless a jQuery event object or valid row number is passed.\n *         del:    Removes a filter. removed from the end of the list unless a jQuery event object or valid row number is passed.\n *         reset:  resets filters back to original state (only one blank filter), and calls onReset\n *         search: puts the search rules into an object and calls onSearch with it\n *         close:  calls the onClose event handler\n *\n * USAGE\n *     HTML\n *         <head>\n *             ...\n *             <script src=\"path/to/jquery.min.js\" type=\"text/javascript\"></script>\n *             <link href=\"path/to/themeroller.css\" rel=\"Stylesheet\" type=\"text/css\" />\n *             <script src=\"path/to/jquery.searchFilter.js\" type=\"text/javascript\"></script>\n *             <link href=\"path/to/jquery.searchFilter.css\" rel=\"Stylesheet\" type=\"text/css\" />\n *             ...\n *         </head>\n *         <body>\n *             ...\n *             <div id='mySearch'></div>\n *             ...\n *         </body>\n *     JQUERY\n *         Methods\n *             initializing: $(\"#mySearch\").searchFilter([{text: \"Field 1\", value: \"field1\"},{text: \"Field 2\", value: \"field2\"}], {onSearch: myFilterRuleReceiverFn, onReset: myFilterResetFn });\n *         Manual Methods (there's no need to call these methods unless you are trying to manipulate searchFilter with script)\n *             add:          $(\"#mySearch\").searchFilter().add();     // appends a blank filter\n *                           $(\"#mySearch\").searchFilter().add(0);    // copies the first filter as second\n *             del:          $(\"#mySearch\").searchFilter().del();     // removes the bottom filter\n *                           $(\"#mySearch\").searchFilter().del(1);    // removes the second filter\n *             search:       $(\"#mySearch\").searchFilter().search();  // invokes onSearch, passing it a ruleGroup object\n *             reset:        $(\"#mySearch\").searchFilter().reset();   // resets rules and invokes onReset\n *             close:        $(\"#mySearch\").searchFilter().close();   // without an onClose handler, equivalent to $(\"#mySearch\").hide();\n * \n * NOTE: You can get the jQuery object back from the SearchFilter object by chaining .$\n *     Example\n *         $(\"#mySearch\").searchFilter().add().add().reset().$.hide();\n *     Verbose Example\n *         $(\"#mySearch\")      // gets jQuery object for the HTML element with id=\"mySearch\"\n *             .searchFilter() // gets the SearchFilter object for an existing search filter\n *             .add()          // adds a new filter to the end of the list\n *             .add()          // adds another new filter to the end of the list\n *             .reset()        // resets filters back to original state, triggers onReset\n *             .$              // returns jQuery object for $(\"#mySearch\")\n *             .hide();        // equivalent to $(\"#mySearch\").hide();\n */\n\njQuery.fn.searchFilter = function(fields, options) {\n\n    function SearchFilter(jQ, fields, options) {\n\n\n        //---------------------------------------------------------------\n        // PUBLIC VARS\n        //---------------------------------------------------------------\n\n        this.$ = jQ; // makes the jQuery object available as .$ from the return value\n\n\n        //---------------------------------------------------------------\n        // PUBLIC FUNCTIONS\n        //---------------------------------------------------------------\n\n        this.add = function(i) {\n            if (i == null) jQ.find(\".ui-add-last\").click();\n            else jQ.find(\".sf:eq(\" + i + \") .ui-add\").click();\n            return this;\n        };\n\n        this.del = function(i) {\n            if (i == null) jQ.find(\".sf:last .ui-del\").click();\n            else jQ.find(\".sf:eq(\" + i + \") .ui-del\").click();\n            return this;\n        };\n\n        this.search = function(e) {\n            jQ.find(\".ui-search\").click();\n            return this;\n        };\n\n        this.reset = function(o) {\n            if(o===undefined) o = false;\n            jQ.find(\".ui-reset\").trigger('click',[o]);\n            return this;\n        };\n\n        this.close = function() {\n            jQ.find(\".ui-closer\").click();\n            return this;\n        };\n\n\n\n        //---------------------------------------------------------------\n        // \"CONSTRUCTOR\" (in air quotes)\n        //---------------------------------------------------------------\n\n        if (fields != null) { // type coercion matches undefined as well as null\n\n\n            //---------------------------------------------------------------\n            // UTILITY FUNCTIONS\n            //---------------------------------------------------------------\n\n            function hover() {\n                jQuery(this).toggleClass(\"ui-state-hover\");\n                return false;\n            }\n\n            function active(e) {\n                jQuery(this).toggleClass(\"ui-state-active\", (e.type == \"mousedown\"));\n                return false;\n            }\n\n            function buildOpt(value, text) {\n                return \"<option value='\" + value + \"'>\" + text + \"</option>\";\n            }\n\n            function buildSel(className, options, isHidden) {\n                return \"<select class='\" + className + \"'\" + (isHidden ? \" style='display:none;'\" : \"\") + \">\" + options + \"</select>\";\n            }\n\n            function initData(selector, fn) {\n                var jElem = jQ.find(\"tr.sf td.data \" + selector);\n                if (jElem[0] != null)\n                    fn(jElem);\n            }\n\n            function bindDataEvents(selector, events) {\n                var jElem = jQ.find(\"tr.sf td.data \" + selector);\n                if (jElem[0] != null) {\n                    jQuery.each(events, function() {\n                        if (this.data != null)\n                            jElem.bind(this.type, this.data, this.fn);\n                        else\n                            jElem.bind(this.type, this.fn);\n                    });\n                }\n            }\n\n\n            //---------------------------------------------------------------\n            // SUPER IMPORTANT PRIVATE VARS\n            //---------------------------------------------------------------\n\n            // copies jQuery.fn.searchFilter.defaults.options properties onto an empty object, then options onto that\n            var opts = jQuery.extend({}, jQuery.fn.searchFilter.defaults, options);\n\n            // this is keeps track of the last asynchronous setup\n            var highest_late_setup = -1;\n\n\n            //---------------------------------------------------------------\n            // CREATION PROCESS STARTS\n            //---------------------------------------------------------------\n\n            // generate the global ops\n            var gOps_html = \"\";\n            jQuery.each(opts.groupOps, function() { gOps_html += buildOpt(this.op, this.text); });\n            gOps_html = \"<select name='groupOp'>\" + gOps_html + \"</select>\";\n\n            /* original content - doesn't minify very well\n            jQ\n            .html(\"\") // clear any old content\n            .addClass(\"ui-searchFilter\") // add classes\n            .append( // add content\n            \"\\\n            <div class='ui-widget-overlay' style='z-index: -1'>&nbsp;</div>\\\n            <table class='ui-widget-content ui-corner-all'>\\\n            <thead>\\\n            <tr>\\\n            <td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'>\\\n            <div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'>\\\n            <span class='ui-icon ui-icon-close'></span>\\\n            </div>\\\n            \" + opts.windowTitle + \"\\\n            </td>\\\n            </tr>\\\n            </thead>\\\n            <tbody>\\\n            <tr class='sf'>\\\n            <td class='fields'></td>\\\n            <td class='ops'></td>\\\n            <td class='data'></td>\\\n            <td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td>\\\n            <td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td>\\\n            </tr>\\\n            <tr>\\\n            <td colspan='5' class='divider'><div>&nbsp;</div></td>\\\n            </tr>\\\n            </tbody>\\\n            <tfoot>\\\n            <tr>\\\n            <td colspan='3'>\\\n            <span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.resetText + \"</span></span>\\\n            <span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.searchText + \"</span></span>\\\n            <span class='matchText'>\" + opts.matchText + \"</span> \\\n            \" + gOps_html + \" \\\n            <span class='rulesText'>\" + opts.rulesText + \"</span>\\\n            </td>\\\n            <td>&nbsp;</td>\\\n            <td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td>\\\n            </tr>\\\n            </tfoot>\\\n            </table>\\\n            \");\n            /* end hard-to-minify code */\n            /* begin easier to minify code */\n            jQ.html(\"\").addClass(\"ui-searchFilter\").append(\"<div class='ui-widget-overlay' style='z-index: -1'>&#160;</div><table class='ui-widget-content ui-corner-all'><thead><tr><td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'><div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'><span class='ui-icon ui-icon-close'></span></div>\" + opts.windowTitle + \"</td></tr></thead><tbody><tr class='sf'><td class='fields'></td><td class='ops'></td><td class='data'></td><td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td><td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td></tr><tr><td colspan='5' class='divider'><hr class='ui-widget-content' style='margin:1px'/></td></tr></tbody><tfoot><tr><td colspan='3'><span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.resetText + \"</span></span><span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.searchText + \"</span></span><span class='matchText'>\" + opts.matchText + \"</span> \" + gOps_html + \" <span class='rulesText'>\" + opts.rulesText + \"</span></td><td>&#160;</td><td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td></tr></tfoot></table>\");\n            /* end easier-to-minify code */\n\n            var jRow = jQ.find(\"tr.sf\");\n            var jFields = jRow.find(\"td.fields\");\n            var jOps = jRow.find(\"td.ops\");\n            var jData = jRow.find(\"td.data\");\n\n            // generate the defaults\n            var default_ops_html = \"\";\n            jQuery.each(opts.operators, function() { default_ops_html += buildOpt(this.op, this.text); });\n            default_ops_html = buildSel(\"default\", default_ops_html, true);\n            jOps.append(default_ops_html);\n            var default_data_html = \"<input type='text' class='default' style='display:none;' />\";\n            jData.append(default_data_html);\n\n            // generate the field list as a string\n            var fields_html = \"\";\n            var has_custom_ops = false;\n            var has_custom_data = false;\n            jQuery.each(fields, function(i) {\n                var field_num = i;\n                fields_html += buildOpt(this.itemval, this.text);\n                // add custom ops if they exist\n                if (this.ops != null) {\n                    has_custom_ops = true;\n                    var custom_ops = \"\";\n                    jQuery.each(this.ops, function() { custom_ops += buildOpt(this.op, this.text); });\n                    custom_ops = buildSel(\"field\" + field_num, custom_ops, true);\n                    jOps.append(custom_ops);\n                }\n                // add custom data if it is given\n                if (this.dataUrl != null) {\n                    if (i > highest_late_setup) highest_late_setup = i;\n                    has_custom_data = true;\n                    var dEvents = this.dataEvents;\n                    var iEvent = this.dataInit;\n                    var bs = this.buildSelect;\n                    jQuery.ajax(jQuery.extend({\n                        url : this.dataUrl,\n                        complete: function(data) {\n                            var $d;\n                            if(bs != null) $d =jQuery(\"<div />\").append(bs(data));\n                            else $d = jQuery(\"<div />\").append(data.responseText);\n                            $d.find(\"select\").addClass(\"field\" + field_num).hide();\n                            jData.append($d.html());\n                            if (iEvent) initData(\".field\" + i, iEvent);\n                            if (dEvents) bindDataEvents(\".field\" + i, dEvents);\n                            if (i == highest_late_setup) { // change should get called no more than twice when this searchFilter is constructed\n                                jQ.find(\"tr.sf td.fields select[name='field']\").change();\n                            }\n                        }\n                    },opts.ajaxSelectOptions));\n                } else if (this.dataValues != null) {\n                    has_custom_data = true;\n                    var custom_data = \"\";\n                    jQuery.each(this.dataValues, function() { custom_data += buildOpt(this.value, this.text); });\n                    custom_data = buildSel(\"field\" + field_num, custom_data, true);\n                    jData.append(custom_data);\n                } else if (this.dataEvents != null || this.dataInit != null) {\n                    has_custom_data = true;\n                    var custom_data = \"<input type='text' class='field\" + field_num + \"' />\";\n                    jData.append(custom_data);\n                }\n                // attach events to data if they exist\n                if (this.dataInit != null && i != highest_late_setup)\n                    initData(\".field\" + i, this.dataInit);\n                if (this.dataEvents != null && i != highest_late_setup)\n                    bindDataEvents(\".field\" + i, this.dataEvents);\n            });\n            fields_html = \"<select name='field'>\" + fields_html + \"</select>\";\n            jFields.append(fields_html);\n\n            // setup the field select with an on-change event if there are custom ops or data\n            var jFSelect = jFields.find(\"select[name='field']\");\n            if (has_custom_ops) jFSelect.change(function(e) {\n                var index = e.target.selectedIndex;\n                var td = jQuery(e.target).parents(\"tr.sf\").find(\"td.ops\");\n                td.find(\"select\").removeAttr(\"name\").hide(); // disown and hide all elements\n                var jElem = td.find(\".field\" + index);\n                if (jElem[0] == null) jElem = td.find(\".default\"); // if there's not an element for that field, use the default one\n                jElem.attr(\"name\", \"op\").show();\n                return false;\n            });\n            else jOps.find(\".default\").attr(\"name\", \"op\").show();\n            if (has_custom_data) jFSelect.change(function(e) {\n                var index = e.target.selectedIndex;\n                var td = jQuery(e.target).parents(\"tr.sf\").find(\"td.data\");\n                td.find(\"select,input\").removeClass(\"vdata\").hide(); // disown and hide all elements\n                var jElem = td.find(\".field\" + index);\n                if (jElem[0] == null) jElem = td.find(\".default\"); // if there's not an element for that field, use the default one\n                jElem.show().addClass(\"vdata\");\n                return false;\n            });\n            else jData.find(\".default\").show().addClass(\"vdata\");\n            // go ahead and call the change event and setup the ops and data values\n            if (has_custom_ops || has_custom_data) jFSelect.change();\n\n            // bind events\n            jQ.find(\".ui-state-default\").hover(hover, hover).mousedown(active).mouseup(active); // add hover/active effects to all buttons\n            jQ.find(\".ui-closer\").click(function(e) {\n                opts.onClose(jQuery(jQ.selector));\n                return false;\n            });\n            jQ.find(\".ui-del\").click(function(e) {\n                var row = jQuery(e.target).parents(\".sf\");\n                if (row.siblings(\".sf\").length > 0) { // doesn't remove if there's only one filter left\n                    if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined)\n                        row.find(\".hasDatepicker\").datepicker(\"destroy\"); // clean up datepicker's $.data mess\n                    row.remove(); // also unbinds\n                } else { // resets the filter if it's the last one\n                    row.find(\"select[name='field']\")[0].selectedIndex = 0;\n                    row.find(\"select[name='op']\")[0].selectedIndex = 0;\n                    row.find(\".data input\").val(\"\"); // blank all input values\n                    row.find(\".data select\").each(function() { this.selectedIndex = 0; }); // select first option on all selects\n                    row.find(\"select[name='field']\").change(function(event){event.stopPropagation();}); // trigger any change events\n                }\n                return false;\n            });\n            jQ.find(\".ui-add\").click(function(e) {\n                var row = jQuery(e.target).parents(\".sf\");\n                var newRow = row.clone(true).insertAfter(row);\n                newRow.find(\".ui-state-default\").removeClass(\"ui-state-hover ui-state-active\");\n                if (opts.clone) {\n                    newRow.find(\"select[name='field']\")[0].selectedIndex = row.find(\"select[name='field']\")[0].selectedIndex;\n                    var stupid_browser = (newRow.find(\"select[name='op']\")[0] == null); // true for IE6\n                    if (!stupid_browser)\n                        newRow.find(\"select[name='op']\").focus()[0].selectedIndex = row.find(\"select[name='op']\")[0].selectedIndex;\n                    var jElem = newRow.find(\"select.vdata\");\n                    if (jElem[0] != null) // select doesn't copy it's selected index when cloned\n                        jElem[0].selectedIndex = row.find(\"select.vdata\")[0].selectedIndex;\n                } else {\n                    newRow.find(\".data input\").val(\"\"); // blank all input values\n                    newRow.find(\"select[name='field']\").focus();\n                }\n                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good\n                    row.find(\".hasDatepicker\").each(function() {\n                        var settings = jQuery.data(this, \"datepicker\").settings;\n                        newRow.find(\"#\" + this.id).unbind().removeAttr(\"id\").removeClass(\"hasDatepicker\").datepicker(settings);\n                    });\n                }\n                newRow.find(\"select[name='field']\").change(function(event){event.stopPropagation();} );\n                return false;\n            });\n            jQ.find(\".ui-search\").click(function(e) {\n                var ui = jQuery(jQ.selector); // pointer to search box wrapper element\n                var ruleGroup;\n                var group_op = ui.find(\"select[name='groupOp'] :selected\").val(); // puls \"AND\" or \"OR\"\n                if (!opts.stringResult) {\n                    ruleGroup = {\n                        groupOp: group_op,\n                        rules: []\n                    };\n                } else {\n                    ruleGroup = \"{\\\"groupOp\\\":\\\"\" + group_op + \"\\\",\\\"rules\\\":[\";\n                }\n                ui.find(\".sf\").each(function(i) {\n                    var tField = jQuery(this).find(\"select[name='field'] :selected\").val();\n                    var tOp = jQuery(this).find(\"select[name='op'] :selected\").val();\n                    var tData = jQuery(this).find(\"input.vdata,select.vdata :selected\").val();\n                    tData += \"\";\n                    if (!opts.stringResult) {\n                        ruleGroup.rules.push({\n                            field: tField,\n                            op: tOp,\n                            data: tData\n                        });\n                    } else {\n\t\t\t\t\t\ttData = tData.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"');\n                        if (i > 0) ruleGroup += \",\";\n                        ruleGroup += \"{\\\"field\\\":\\\"\" + tField + \"\\\",\";\n                        ruleGroup += \"\\\"op\\\":\\\"\" + tOp + \"\\\",\";\n                        ruleGroup += \"\\\"data\\\":\\\"\" + tData + \"\\\"}\";\n                    }\n                });\n                if (opts.stringResult) ruleGroup += \"]}\";\n                opts.onSearch(ruleGroup);\n                return false;\n            });\n            jQ.find(\".ui-reset\").click(function(e,op) {\n                var ui = jQuery(jQ.selector);\n                ui.find(\".ui-del\").click(); // removes all filters, resets the last one\n                ui.find(\"select[name='groupOp']\")[0].selectedIndex = 0; // changes the op back to the default one\n                opts.onReset(op);\n                return false;\n            });\n            jQ.find(\".ui-add-last\").click(function() {\n                var row = jQuery(jQ.selector + \" .sf:last\");\n                var newRow = row.clone(true).insertAfter(row);\n                newRow.find(\".ui-state-default\").removeClass(\"ui-state-hover ui-state-active\");\n                newRow.find(\".data input\").val(\"\"); // blank all input values\n                newRow.find(\"select[name='field']\").focus();\n                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good\n                    row.find(\".hasDatepicker\").each(function() {\n                        var settings = jQuery.data(this, \"datepicker\").settings;\n                        newRow.find(\"#\" + this.id).unbind().removeAttr(\"id\").removeClass(\"hasDatepicker\").datepicker(settings);\n                    });\n                }\n                newRow.find(\"select[name='field']\").change(function(event){event.stopPropagation();});\n                return false;\n            });\n\n            this.setGroupOp = function(setting) {\n                /* a \"setter\" for groupping argument.\n                 *  (\"AND\" or \"OR\")\n                 *\n                 * Inputs:\n                 *  setting - a string\n                 *\n                 * Returns:\n                 *  Does not return anything. May add success / failure reporting in future versions.\n                 *\n                 *  author: Daniel Dotsenko (dotsa@hotmail.com)\n                 */\n                selDOMobj = jQ.find(\"select[name='groupOp']\")[0];\n                var indexmap = {}, l = selDOMobj.options.length, i;\n                for (i=0; i<l; i++) {\n                    indexmap[selDOMobj.options[i].value] = i;\n                }\n                selDOMobj.selectedIndex = indexmap[setting];\n                jQuery(selDOMobj).change(function(event){event.stopPropagation();});\n            };\n\n            this.setFilter = function(settings) {\n                /* a \"setter\" for an arbitrary SearchFilter's filter line.\n                 * designed to abstract the DOM manipulations required to infer\n                 * a particular filter is a fit to the search box.\n                 *\n                 * Inputs:\n                 *  settings - an \"object\" (dictionary)\n                 *   index (optional*) (to be implemented in the future) : signed integer index (from top to bottom per DOM) of the filter line to fill.\n                 *           Negative integers (rooted in -1 and lower) denote position of the line from the bottom.\n                 *   sfref (optional*) : DOM object referencing individual '.sf' (normally a TR element) to be populated. (optional)\n                 *   filter (mandatory) : object (dictionary) of form {'field':'field_value','op':'op_value','data':'data value'}\n                 *\n                 * * It is mandatory to have either index or sfref defined.\n                 *\n                 * Returns:\n                 *  Does not return anything. May add success / failure reporting in future versions.\n                 *\n                 *  author: Daniel Dotsenko (dotsa@hotmail.com)\n                 */\n\n                var o = settings['sfref'], filter = settings['filter'];\n                \n                // setting up valueindexmap that we will need to manipulate SELECT elements.\n                var fields = [], i, j , l, lj, li,\n                    valueindexmap = {};\n                    // example of valueindexmap:\n                    // {'field1':{'index':0,'ops':{'eq':0,'ne':1}},'fieldX':{'index':1,'ops':{'eq':0,'ne':1},'data':{'true':0,'false':1}}},\n                    // if data is undefined it's a INPUT field. If defined, it's SELECT\n                selDOMobj = o.find(\"select[name='field']\")[0];\n                for (i=0, l=selDOMobj.options.length; i<l; i++) {\n                    valueindexmap[selDOMobj.options[i].value] = {'index':i,'ops':{}};\n                    fields.push(selDOMobj.options[i].value);\n                }\n                for (i=0, li=fields.length; i < li; i++) {\n                    selDOMobj = o.find(\".ops > select[class='field\"+i+\"']\")[0];\n                    if (selDOMobj) {\n                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {\n                            valueindexmap[fields[i]]['ops'][selDOMobj.options[j].value] = j;\n                        }\n                    }\n                    selDOMobj = o.find(\".data > select[class='field\"+i+\"']\")[0];\n                    if (selDOMobj) {\n                        valueindexmap[fields[i]]['data'] = {}; // this setting is the flag that 'data' is contained in a SELECT\n                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {\n                            valueindexmap[fields[i]]['data'][selDOMobj.options[j].value] = j;\n                        }\n                    }\n                } // done populating valueindexmap\n\n                // preparsing the index values for SELECT elements.\n                var fieldvalue, fieldindex, opindex, datavalue, dataindex;\n                fieldvalue = filter['field'];\n\t\t\t\tif (valueindexmap[fieldvalue]) {\n\t\t\t\t\tfieldindex = valueindexmap[fieldvalue]['index'];\n\t\t\t\t}\n                if (fieldindex != null) {\n                    opindex = valueindexmap[fieldvalue]['ops'][filter['op']];\n                    if(opindex === undefined) {\n                        for(i=0,li=options.operators.length; i<li;i++) {\n                            if(options.operators[i].op == filter.op ){\n                                opindex = i;\n                                break;\n                            }\n                        }\n                    }\n                    datavalue = filter['data'];\n                    if (valueindexmap[fieldvalue]['data'] == null) {\n                        dataindex = -1; // 'data' is not SELECT, Making the var 'defined'\n                    } else {\n                        dataindex = valueindexmap[fieldvalue]['data'][datavalue]; // 'undefined' may come from here.\n                    }\n                }\n                // only if values for 'field' and 'op' and 'data' are 'found' in mapping...\n                if (fieldindex != null && opindex != null && dataindex != null) {\n                    o.find(\"select[name='field']\")[0].selectedIndex = fieldindex;\n                    o.find(\"select[name='field']\").change();\n                    o.find(\"select[name='op']\")[0].selectedIndex = opindex;\n                    o.find(\"input.vdata\").val(datavalue); // if jquery does not find any INPUT, it does not set any. This means we deal with SELECT\n                    o = o.find(\"select.vdata\")[0];\n                    if (o) {\n                        o.selectedIndex = dataindex;\n                    }\n\t\t\t\t\treturn true\n                } else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n            }; // end of this.setFilter fn\n        } // end of if fields != null\n    }\n    return new SearchFilter(this, fields, options);\n};\n\njQuery.fn.searchFilter.version = '1.2.9';\n\n/* This property contains the default options */\njQuery.fn.searchFilter.defaults = {\n\n    /*\n     * PROPERTY\n     * TYPE:        boolean \n     * DESCRIPTION: clone a row if it is added from an existing row\n     *              when false, any new added rows will be blank.\n     */\n    clone: true,\n\n    /*\n     * PROPERTY\n     * TYPE:        boolean \n     * DESCRIPTION: current version of datepicker uses a data store,\n     *              which is incompatible with $().clone(true)\n     */\n    datepickerFix: true,\n\n    /*\n     * FUNCTION\n     * DESCRIPTION: the function that will be called when the user clicks Reset\n     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string\n     */\n    onReset: function(data) { alert(\"Reset Clicked. Data Returned: \" + data) },\n\n    /*\n     * FUNCTION\n     * DESCRIPTION: the function that will be called when the user clicks Search\n     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string\n     */\n    onSearch: function(data) { alert(\"Search Clicked. Data Returned: \" + data) },\n\n    /*\n     * FUNCTION\n     * DESCRIPTION: the function that will be called when the user clicks the Closer icon\n     *              or the close() function is called\n     *              if left null, it simply does a .hide() on the searchFilter\n     * INPUT TYPE:  a jQuery object for the searchFilter\n     */\n    onClose: function(jElem) { jElem.hide(); },\n\n    /* \n     * PROPERTY\n     * TYPE:        array of objects, each object has the properties op and text \n     * DESCRIPTION: the selectable operators that are applied between rules\n     *              e.g. for {op:\"AND\", text:\"all\"}\n     *                  the search filter box will say: match all rules\n     *                  the server should interpret this as putting the AND op between each rule:\n     *                      rule1 AND rule2 AND rule3\n     *              text will be the option text, and op will be the option value\n     */\n    groupOps: [\n        { op: \"AND\", text: \"all\" },\n        { op: \"OR\",  text: \"any\" }\n    ],\n\n\n    /* \n     * PROPERTY\n     * TYPE:        array of objects, each object has the properties op and text \n     * DESCRIPTION: the operators that will appear as drop-down options\n     *              text will be the option text, and op will be the option value\n     */\n    operators: [\n        { op: \"eq\", text: \"is equal to\" },\n        { op: \"ne\", text: \"is not equal to\" },\n        { op: \"lt\", text: \"is less than\" },\n        { op: \"le\", text: \"is less or equal to\" },\n        { op: \"gt\", text: \"is greater than\" },\n        { op: \"ge\", text: \"is greater or equal to\" },\n        { op: \"in\", text: \"is in\" },\n        { op: \"ni\", text: \"is not in\" },\n        { op: \"bw\", text: \"begins with\" },\n        { op: \"bn\", text: \"does not begin with\" },\n        { op: \"ew\", text: \"ends with\" },\n        { op: \"en\", text: \"does not end with\" },\n        { op: \"cn\", text: \"contains\" },\n        { op: \"nc\", text: \"does not contain\" }\n    ],\n\n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: part of the phrase: _match_ ANY/ALL rules\n     */\n    matchText: \"match\",\n\n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: part of the phrase: match ANY/ALL _rules_\n     */\n    rulesText: \"rules\",\n\n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: the text that will be displayed in the reset button\n     */\n    resetText: \"Reset\",\n    \n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: the text that will be displayed in the search button\n     */\n    searchText: \"Search\",\n    \n    /*\n     * PROPERTY\n     * TYPE:        boolean\n     * DESCRIPTION: a flag that, when set, will make the onSearch and onReset return strings instead of objects\n     */\n    stringResult: true,    \n    \n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: the title of the searchFilter window\n     */\n    windowTitle: \"Search Rules\",\n    /*\n     * PROPERTY\n     * TYPE:        object\n     * DESCRIPTION: options to extend the ajax request\n     */\n    ajaxSelectOptions : {}\n}; /* end of searchFilter */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/jquery.tablednd.js",
    "content": "/**\n * TableDnD plug-in for JQuery, allows you to drag and drop table rows\n * You can set up various options to control how the system will work\n * Copyright (c) Denis Howlett <denish@isocra.com>\n * Licensed like jQuery, see http://docs.jquery.com/License.\n *\n * Configuration options:\n * \n * onDragStyle\n *     This is the style that is assigned to the row during drag. There are limitations to the styles that can be\n *     associated with a row (such as you can't assign a border--well you can, but it won't be\n *     displayed). (So instead consider using onDragClass.) The CSS style to apply is specified as\n *     a map (as used in the jQuery css(...) function).\n * onDropStyle\n *     This is the style that is assigned to the row when it is dropped. As for onDragStyle, there are limitations\n *     to what you can do. Also this replaces the original style, so again consider using onDragClass which\n *     is simply added and then removed on drop.\n * onDragClass\n *     This class is added for the duration of the drag and then removed when the row is dropped. It is more\n *     flexible than using onDragStyle since it can be inherited by the row cells and other content. The default\n *     is class is tDnD_whileDrag. So to use the default, simply customise this CSS class in your\n *     stylesheet.\n * onDrop\n *     Pass a function that will be called when the row is dropped. The function takes 2 parameters: the table\n *     and the row that was dropped. You can work out the new order of the rows by using\n *     table.rows.\n * onDragStart\n *     Pass a function that will be called when the user starts dragging. The function takes 2 parameters: the\n *     table and the row which the user has started to drag.\n * onAllowDrop\n *     Pass a function that will be called as a row is over another row. If the function returns true, allow \n *     dropping on that row, otherwise not. The function takes 2 parameters: the dragged row and the row under\n *     the cursor. It returns a boolean: true allows the drop, false doesn't allow it.\n * scrollAmount\n *     This is the number of pixels to scroll if the user moves the mouse cursor to the top or bottom of the\n *     window. The page should automatically scroll up or down as appropriate (tested in IE6, IE7, Safari, FF2,\n *     FF3 beta\n * dragHandle\n *     This is the name of a class that you assign to one or more cells in each row that is draggable. If you\n *     specify this class, then you are responsible for setting cursor: move in the CSS and only these cells\n *     will have the drag behaviour. If you do not specify a dragHandle, then you get the old behaviour where\n *     the whole row is draggable.\n * \n * Other ways to control behaviour:\n *\n * Add class=\"nodrop\" to any rows for which you don't want to allow dropping, and class=\"nodrag\" to any rows\n * that you don't want to be draggable.\n *\n * Inside the onDrop method you can also call $.tableDnD.serialize() this returns a string of the form\n * <tableID>[]=<rowID1>&<tableID>[]=<rowID2> so that you can send this back to the server. The table must have\n * an ID as must all the rows.\n *\n * Other methods:\n *\n * $(\"...\").tableDnDUpdate() \n * Will update all the matching tables, that is it will reapply the mousedown method to the rows (or handle cells).\n * This is useful if you have updated the table rows using Ajax and you want to make the table draggable again.\n * The table maintains the original configuration (so you don't have to specify it again).\n *\n * $(\"...\").tableDnDSerialize()\n * Will serialize and return the serialized string as above, but for each of the matching tables--so it can be\n * called from anywhere and isn't dependent on the currentTable being set up correctly before calling\n *\n * Known problems:\n * - Auto-scoll has some problems with IE7  (it scrolls even when it shouldn't), work-around: set scrollAmount to 0\n * \n * Version 0.2: 2008-02-20 First public version\n * Version 0.3: 2008-02-07 Added onDragStart option\n *                         Made the scroll amount configurable (default is 5 as before)\n * Version 0.4: 2008-03-15 Changed the noDrag/noDrop attributes to nodrag/nodrop classes\n *                         Added onAllowDrop to control dropping\n *                         Fixed a bug which meant that you couldn't set the scroll amount in both directions\n *                         Added serialize method\n * Version 0.5: 2008-05-16 Changed so that if you specify a dragHandle class it doesn't make the whole row\n *                         draggable\n *                         Improved the serialize method to use a default (and settable) regular expression.\n *                         Added tableDnDupate() and tableDnDSerialize() to be called when you are outside the table\n */\njQuery.tableDnD = {\n    /** Keep hold of the current table being dragged */\n    currentTable : null,\n    /** Keep hold of the current drag object if any */\n    dragObject: null,\n    /** The current mouse offset */\n    mouseOffset: null,\n    /** Remember the old value of Y so that we don't do too much processing */\n    oldY: 0,\n\n    /** Actually build the structure */\n    build: function(options) {\n        // Set up the defaults if any\n\n        this.each(function() {\n            // This is bound to each matching table, set up the defaults and override with user options\n            this.tableDnDConfig = jQuery.extend({\n                onDragStyle: null,\n                onDropStyle: null,\n\t\t\t\t// Add in the default class for whileDragging\n\t\t\t\tonDragClass: \"tDnD_whileDrag\",\n                onDrop: null,\n                onDragStart: null,\n                scrollAmount: 5,\n\t\t\t\tserializeRegexp: /[^\\-]*$/, // The regular expression to use to trim row IDs\n\t\t\t\tserializeParamName: null, // If you want to specify another parameter name instead of the table ID\n                dragHandle: null // If you give the name of a class here, then only Cells with this class will be draggable\n            }, options || {});\n            // Now make the rows draggable\n            jQuery.tableDnD.makeDraggable(this);\n        });\n\n        // Now we need to capture the mouse up and mouse move event\n        // We can use bind so that we don't interfere with other event handlers\n        jQuery(document)\n            .bind('mousemove', jQuery.tableDnD.mousemove)\n            .bind('mouseup', jQuery.tableDnD.mouseup);\n\n        // Don't break the chain\n        return this;\n    },\n\n    /** This function makes all the rows on the table draggable apart from those marked as \"NoDrag\" */\n    makeDraggable: function(table) {\n        var config = table.tableDnDConfig;\n\t\tif (table.tableDnDConfig.dragHandle) {\n\t\t\t// We only need to add the event to the specified cells\n\t\t\tvar cells = jQuery(\"td.\"+table.tableDnDConfig.dragHandle, table);\n\t\t\tcells.each(function() {\n\t\t\t\t// The cell is bound to \"this\"\n                jQuery(this).mousedown(function(ev) {\n                    jQuery.tableDnD.dragObject = this.parentNode;\n                    jQuery.tableDnD.currentTable = table;\n                    jQuery.tableDnD.mouseOffset = jQuery.tableDnD.getMouseOffset(this, ev);\n                    if (config.onDragStart) {\n                        // Call the onDrop method if there is one\n                        config.onDragStart(table, this);\n                    }\n                    return false;\n                });\n\t\t\t})\n\t\t} else {\n\t\t\t// For backwards compatibility, we add the event to the whole row\n\t        var rows = jQuery(\"tr\", table); // get all the rows as a wrapped set\n\t        rows.each(function() {\n\t\t\t\t// Iterate through each row, the row is bound to \"this\"\n\t\t\t\tvar row = jQuery(this);\n\t\t\t\tif (! row.hasClass(\"nodrag\")) {\n\t                row.mousedown(function(ev) {\n\t                    if (ev.target.tagName == \"TD\") {\n\t                        jQuery.tableDnD.dragObject = this;\n\t                        jQuery.tableDnD.currentTable = table;\n\t                        jQuery.tableDnD.mouseOffset = jQuery.tableDnD.getMouseOffset(this, ev);\n\t                        if (config.onDragStart) {\n\t                            // Call the onDrop method if there is one\n\t                            config.onDragStart(table, this);\n\t                        }\n\t                        return false;\n\t                    }\n\t                }).css(\"cursor\", \"move\"); // Store the tableDnD object\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\n\tupdateTables: function() {\n\t\tthis.each(function() {\n\t\t\t// this is now bound to each matching table\n\t\t\tif (this.tableDnDConfig) {\n\t\t\t\tjQuery.tableDnD.makeDraggable(this);\n\t\t\t}\n\t\t})\n\t},\n\n    /** Get the mouse coordinates from the event (allowing for browser differences) */\n    mouseCoords: function(ev){\n        if(ev.pageX || ev.pageY){\n            return {x:ev.pageX, y:ev.pageY};\n        }\n        return {\n            x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,\n            y:ev.clientY + document.body.scrollTop  - document.body.clientTop\n        };\n    },\n\n    /** Given a target element and a mouse event, get the mouse offset from that element.\n        To do this we need the element's position and the mouse position */\n    getMouseOffset: function(target, ev) {\n        ev = ev || window.event;\n\n        var docPos    = this.getPosition(target);\n        var mousePos  = this.mouseCoords(ev);\n        return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};\n    },\n\n    /** Get the position of an element by going up the DOM tree and adding up all the offsets */\n    getPosition: function(e){\n        var left = 0;\n        var top  = 0;\n        /** Safari fix -- thanks to Luis Chato for this! */\n        if (e.offsetHeight == 0) {\n            /** Safari 2 doesn't correctly grab the offsetTop of a table row\n            this is detailed here:\n            http://jacob.peargrove.com/blog/2006/technical/table-row-offsettop-bug-in-safari/\n            the solution is likewise noted there, grab the offset of a table cell in the row - the firstChild.\n            note that firefox will return a text node as a first child, so designing a more thorough\n            solution may need to take that into account, for now this seems to work in firefox, safari, ie */\n            e = e.firstChild; // a table cell\n        }\n\t\tif (e && e.offsetParent) {\n        \twhile (e.offsetParent){\n            \tleft += e.offsetLeft;\n            \ttop  += e.offsetTop;\n            \te     = e.offsetParent;\n        \t}\n\n        \tleft += e.offsetLeft;\n        \ttop  += e.offsetTop;\n        }\n\n        return {x:left, y:top};\n    },\n\n    mousemove: function(ev) {\n        if (jQuery.tableDnD.dragObject == null) {\n            return;\n        }\n\n        var dragObj = jQuery(jQuery.tableDnD.dragObject);\n        var config = jQuery.tableDnD.currentTable.tableDnDConfig;\n        var mousePos = jQuery.tableDnD.mouseCoords(ev);\n        var y = mousePos.y - jQuery.tableDnD.mouseOffset.y;\n        //auto scroll the window\n\t    var yOffset = window.pageYOffset;\n\t \tif (document.all) {\n\t        // Windows version\n\t        //yOffset=document.body.scrollTop;\n\t        if (typeof document.compatMode != 'undefined' &&\n\t             document.compatMode != 'BackCompat') {\n\t           yOffset = document.documentElement.scrollTop;\n\t        }\n\t        else if (typeof document.body != 'undefined') {\n\t           yOffset=document.body.scrollTop;\n\t        }\n\n\t    }\n\t\t    \n\t\tif (mousePos.y-yOffset < config.scrollAmount) {\n\t    \twindow.scrollBy(0, -config.scrollAmount);\n\t    } else {\n            var windowHeight = window.innerHeight ? window.innerHeight\n                    : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;\n            if (windowHeight-(mousePos.y-yOffset) < config.scrollAmount) {\n                window.scrollBy(0, config.scrollAmount);\n            }\n        }\n\n\n        if (y != jQuery.tableDnD.oldY) {\n            // work out if we're going up or down...\n            var movingDown = y > jQuery.tableDnD.oldY;\n            // update the old value\n            jQuery.tableDnD.oldY = y;\n            // update the style to show we're dragging\n\t\t\tif (config.onDragClass) {\n\t\t\t\tdragObj.addClass(config.onDragClass);\n\t\t\t} else {\n\t            dragObj.css(config.onDragStyle);\n\t\t\t}\n            // If we're over a row then move the dragged row to there so that the user sees the\n            // effect dynamically\n            var currentRow = jQuery.tableDnD.findDropTargetRow(dragObj, y);\n            if (currentRow) {\n                // TODO worry about what happens when there are multiple TBODIES\n                if (movingDown && jQuery.tableDnD.dragObject != currentRow) {\n                    jQuery.tableDnD.dragObject.parentNode.insertBefore(jQuery.tableDnD.dragObject, currentRow.nextSibling);\n                } else if (! movingDown && jQuery.tableDnD.dragObject != currentRow) {\n                    jQuery.tableDnD.dragObject.parentNode.insertBefore(jQuery.tableDnD.dragObject, currentRow);\n                }\n            }\n        }\n\n        return false;\n    },\n\n    /** We're only worried about the y position really, because we can only move rows up and down */\n    findDropTargetRow: function(draggedRow, y) {\n        var rows = jQuery.tableDnD.currentTable.rows;\n        for (var i=0; i<rows.length; i++) {\n            var row = rows[i];\n            var rowY    = this.getPosition(row).y;\n            var rowHeight = parseInt(row.offsetHeight)/2;\n            if (row.offsetHeight == 0) {\n                rowY = this.getPosition(row.firstChild).y;\n                rowHeight = parseInt(row.firstChild.offsetHeight)/2;\n            }\n            // Because we always have to insert before, we need to offset the height a bit\n            if ((y > rowY - rowHeight) && (y < (rowY + rowHeight))) {\n                // that's the row we're over\n\t\t\t\t// If it's the same as the current row, ignore it\n\t\t\t\tif (row == draggedRow) {return null;}\n                var config = jQuery.tableDnD.currentTable.tableDnDConfig;\n                if (config.onAllowDrop) {\n                    if (config.onAllowDrop(draggedRow, row)) {\n                        return row;\n                    } else {\n                        return null;\n                    }\n                } else {\n\t\t\t\t\t// If a row has nodrop class, then don't allow dropping (inspired by John Tarr and Famic)\n                    var nodrop = jQuery(row).hasClass(\"nodrop\");\n                    if (! nodrop) {\n                        return row;\n                    } else {\n                        return null;\n                    }\n                }\n                return row;\n            }\n        }\n        return null;\n    },\n\n    mouseup: function(e) {\n        if (jQuery.tableDnD.currentTable && jQuery.tableDnD.dragObject) {\n            var droppedRow = jQuery.tableDnD.dragObject;\n            var config = jQuery.tableDnD.currentTable.tableDnDConfig;\n            // If we have a dragObject, then we need to release it,\n            // The row will already have been moved to the right place so we just reset stuff\n\t\t\tif (config.onDragClass) {\n\t            jQuery(droppedRow).removeClass(config.onDragClass);\n\t\t\t} else {\n\t            jQuery(droppedRow).css(config.onDropStyle);\n\t\t\t}\n            jQuery.tableDnD.dragObject   = null;\n            if (config.onDrop) {\n                // Call the onDrop method if there is one\n                config.onDrop(jQuery.tableDnD.currentTable, droppedRow);\n            }\n            jQuery.tableDnD.currentTable = null; // let go of the table too\n        }\n    },\n\n    serialize: function() {\n        if (jQuery.tableDnD.currentTable) {\n            return jQuery.tableDnD.serializeTable(jQuery.tableDnD.currentTable);\n        } else {\n            return \"Error: No Table id set, you need to set an id on your table and every row\";\n        }\n    },\n\n\tserializeTable: function(table) {\n        var result = \"\";\n        var tableId = table.id;\n        var rows = table.rows;\n        for (var i=0; i<rows.length; i++) {\n            if (result.length > 0) result += \"&\";\n            var rowId = rows[i].id;\n            if (rowId && rowId && table.tableDnDConfig && table.tableDnDConfig.serializeRegexp) {\n                rowId = rowId.match(table.tableDnDConfig.serializeRegexp)[0];\n            }\n\n            result += tableId + '[]=' + rowId;\n        }\n        return result;\n\t},\n\n\tserializeTables: function() {\n        var result = \"\";\n        this.each(function() {\n\t\t\t// this is now bound to each matching table\n\t\t\tresult += jQuery.tableDnD.serializeTable(this);\n\t\t});\n        return result;\n    }\n\n}\n\njQuery.fn.extend(\n\t{\n\t\ttableDnD : jQuery.tableDnD.build,\n\t\ttableDnDUpdate : jQuery.tableDnD.updateTables,\n\t\ttableDnDSerialize: jQuery.tableDnD.serializeTables\n\t}\n);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/searchFilter.css",
    "content": ".ui-searchFilter { display: none; position: absolute; z-index: 770; overflow: visible;}\n.ui-searchFilter table {position:relative; margin:0em; width:auto}\n.ui-searchFilter table td {margin: 0em; padding: 1px;}\n.ui-searchFilter table td input, .ui-searchFilter table td select {margin: 0.1em;}\n.ui-searchFilter .ui-state-default { cursor: pointer; }\n.ui-searchFilter .divider hr {margin: 1px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/ui.multiselect.css",
    "content": "/* Multiselect\n----------------------------------*/\n\n.ui-multiselect { border: solid 1px; font-size: 0.8em; }\n.ui-multiselect ul { -moz-user-select: none; }\n.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }\n.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}\n.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }\n\n.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }\n.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }\n.ui-multiselect ul.selected li { }\n\n.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }\n.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }\n.ui-multiselect ul.available li { padding-left: 10px; }\n \n.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}\n.ui-multiselect .ui-state-hover { border: none; }\n.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}\n \n.ui-multiselect .add-all { float: right; padding: 7px;}\n.ui-multiselect .remove-all { float: right; padding: 7px;}\n.ui-multiselect .search { float: left; padding: 4px;}\n.ui-multiselect .count { float: left; padding: 7px;}\n\n.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }\n.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }\n \n.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/ui.multiselect.js",
    "content": "/*\n * jQuery UI Multiselect\n *\n * Authors:\n *  Michael Aufreiter (quasipartikel.at)\n *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)\n * \n * Dual licensed under the MIT (MIT-LICENSE.txt)\n * and GPL (GPL-LICENSE.txt) licenses.\n * \n * http://www.quasipartikel.at/multiselect/\n *\n * \n * Depends:\n *\tui.core.js\n *\tui.sortable.js\n *\n * Optional:\n * localization (http://plugins.jquery.com/project/localisation)\n * scrollTo (http://plugins.jquery.com/project/ScrollTo)\n * \n * Todo:\n *  Make batch actions faster\n *  Implement dynamic insertion through remote calls\n */\n\n\n(function($) {\n\n$.widget(\"ui.multiselect\", {\n  options: {\n\t\tsortable: true,\n\t\tsearchable: true,\n\t\tdoubleClickable: true,\n\t\tanimated: 'fast',\n\t\tshow: 'slideDown',\n\t\thide: 'slideUp',\n\t\tdividerLocation: 0.6,\n\t\tavailableFirst: false,\n\t\tnodeComparator: function(node1,node2) {\n\t\t\tvar text1 = node1.text(),\n\t\t\t    text2 = node2.text();\n\t\t\treturn text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);\n\t\t}\n\t},\n\t_create: function() {\n\t\tthis.element.hide();\n\t\tthis.id = this.element.attr(\"id\");\n\t\tthis.container = $('<div class=\"ui-multiselect ui-helper-clearfix ui-widget\"></div>').insertAfter(this.element);\n\t\tthis.count = 0; // number of currently selected options\n\t\tthis.selectedContainer = $('<div class=\"selected\"></div>').appendTo(this.container);\n\t\tthis.availableContainer = $('<div class=\"available\"></div>')[this.options.availableFirst?'prependTo': 'appendTo'](this.container);\n\t\tthis.selectedActions = $('<div class=\"actions ui-widget-header ui-helper-clearfix\"><span class=\"count\">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href=\"#\" class=\"remove-all\">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);\n\t\tthis.availableActions = $('<div class=\"actions ui-widget-header ui-helper-clearfix\"><input type=\"text\" class=\"search empty ui-widget-content ui-corner-all\"/><a href=\"#\" class=\"add-all\">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);\n\t\tthis.selectedList = $('<ul class=\"selected connected-list\"><li class=\"ui-helper-hidden-accessible\"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);\n\t\tthis.availableList = $('<ul class=\"available connected-list\"><li class=\"ui-helper-hidden-accessible\"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);\n\t\t\n\t\tvar that = this;\n\n\t\t// set dimensions\n\t\tthis.container.width(this.element.width()+1);\n\t\tthis.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));\n\t\tthis.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));\n\n\t\t// fix list height to match <option> depending on their individual header's heights\n\t\tthis.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));\n\t\tthis.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));\n\t\t\n\t\tif ( !this.options.animated ) {\n\t\t\tthis.options.show = 'show';\n\t\t\tthis.options.hide = 'hide';\n\t\t}\n\t\tthis.useProp = !!$.fn.prop;\n\t\t// init lists\n\t\tthis._populateLists(this.element.find('option'));\n\t\t\n\t\t// make selection sortable\n\t\tif (this.options.sortable) {\n\t\t\tthis.selectedList.sortable({\n\t\t\t\tplaceholder: 'ui-state-highlight',\n\t\t\t\taxis: 'y',\n\t\t\t\tupdate: function(event, ui) {\n\t\t\t\t\t// apply the new sort order to the original selectbox\n\t\t\t\t\tthat.selectedList.find('li').each(function() {\n\t\t\t\t\t\tif ($(this).data('optionLink'))\n\t\t\t\t\t\t\t$(this).data('optionLink').remove().appendTo(that.element);\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\treceive: function(event, ui) {\n\t\t\t\t\tui.item.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', true);\n\t\t\t\t\t// increment count\n\t\t\t\t\tthat.count += 1;\n\t\t\t\t\tthat._updateCount();\n\t\t\t\t\t// workaround, because there's no way to reference \n\t\t\t\t\t// the new element, see http://dev.jqueryui.com/ticket/4303\n\t\t\t\t\tthat.selectedList.children('.ui-draggable').each(function() {\n\t\t\t\t\t\t$(this).removeClass('ui-draggable');\n\t\t\t\t\t\t$(this).data('optionLink', ui.item.data('optionLink'));\n\t\t\t\t\t\t$(this).data('idx', ui.item.data('idx'));\n\t\t\t\t\t\tthat._applyItemState($(this), true);\n\t\t\t\t\t});\n\t\t\t\n\t\t\t\t\t// workaround according to http://dev.jqueryui.com/ticket/4088\n\t\t\t\t\tsetTimeout(function() { ui.item.remove(); }, 1);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t// set up livesearch\n\t\tif (this.options.searchable) {\n\t\t\tthis._registerSearchEvents(this.availableContainer.find('input.search'));\n\t\t} else {\n\t\t\t$('.search').hide();\n\t\t}\n\t\t\n\t\t// batch actions\n\t\tthis.container.find(\".remove-all\").click(function() {\n\t\t\tthat._populateLists(that.element.find('option').removeAttr('selected'));\n\t\t\treturn false;\n\t\t});\n\t\t\n\t\tthis.container.find(\".add-all\").click(function() {\n\t\t\tvar options = that.element.find('option').not(\":selected\");\n\t\t\tif (that.availableList.children('li:hidden').length > 1) {\n\t\t\t\tthat.availableList.children('li').each(function(i) {\n\t\t\t\t\tif ($(this).is(\":visible\")) $(options[i-1])[ that.useProp ? 'prop' : 'attr' ]('selected', true); \n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\toptions[ that.useProp ? 'prop' : 'attr' ]('selected', true);\n\t\t\t}\n\t\t\tthat._populateLists(that.element.find('option'));\n\t\t\treturn false;\n\t\t});\n\t},\n\tdestroy: function() {\n\t\tthis.element.show();\n\t\tthis.container.remove();\n\n\t\t$.Widget.prototype.destroy.apply(this, arguments);\n\t},\n\t_populateLists: function(options) {\n\t\tthis.selectedList.children('.ui-element').remove();\n\t\tthis.availableList.children('.ui-element').remove();\n\t\tthis.count = 0;\n\n\t\tvar that = this;\n\t\tvar items = $(options.map(function(i) {\n\t      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();\n\n\t\t\tif (this.selected) that.count += 1;\n\t\t\tthat._applyItemState(item, this.selected);\n\t\t\titem.data('idx', i);\n\t\t\treturn item[0];\n    }));\n\t\t\n\t\t// update count\n\t\tthis._updateCount();\n\t\tthat._filter.apply(this.availableContainer.find('input.search'), [that.availableList]);\n  },\n\t_updateCount: function() {\n\t\tthis.element.trigger('change');\n\t\tthis.selectedContainer.find('span.count').text(this.count+\" \"+$.ui.multiselect.locale.itemsCount);\n\t},\n\t_getOptionNode: function(option) {\n\t\toption = $(option);\n\t\tvar node = $('<li class=\"ui-state-default ui-element\" title=\"'+option.text()+'\"><span class=\"ui-icon\"/>'+option.text()+'<a href=\"#\" class=\"action\"><span class=\"ui-corner-all ui-icon\"/></a></li>').hide();\n\t\tnode.data('optionLink', option);\n\t\treturn node;\n\t},\n\t// clones an item with associated data\n\t// didn't find a smarter away around this\n\t_cloneWithData: function(clonee) {\n\t\tvar clone = clonee.clone(false,false);\n\t\tclone.data('optionLink', clonee.data('optionLink'));\n\t\tclone.data('idx', clonee.data('idx'));\n\t\treturn clone;\n\t},\n\t_setSelected: function(item, selected) {\n\t\titem.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', selected);\n\n\t\tif (selected) {\n\t\t\tvar selectedItem = this._cloneWithData(item);\n\t\t\titem[this.options.hide](this.options.animated, function() { $(this).remove(); });\n\t\t\tselectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);\n\t\t\t\n\t\t\tthis._applyItemState(selectedItem, true);\n\t\t\treturn selectedItem;\n\t\t} else {\n\t\t\t\n\t\t\t// look for successor based on initial option index\n\t\t\tvar items = this.availableList.find('li'), comparator = this.options.nodeComparator;\n\t\t\tvar succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));\n\n\t\t\t// TODO: test needed for dynamic list populating\n\t\t\tif ( direction ) {\n\t\t\t\twhile (i>=0 && i<items.length) {\n\t\t\t\t\tdirection > 0 ? i++ : i--;\n\t\t\t\t\tif ( direction != comparator(item, $(items[i])) ) {\n\t\t\t\t\t\t// going up, go back one item down, otherwise leave as is\n\t\t\t\t\t\tsucc = items[direction > 0 ? i : i+1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsucc = items[i];\n\t\t\t}\n\t\t\t\n\t\t\tvar availableItem = this._cloneWithData(item);\n\t\t\tsucc ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);\n\t\t\titem[this.options.hide](this.options.animated, function() { $(this).remove(); });\n\t\t\tavailableItem.hide()[this.options.show](this.options.animated);\n\t\t\t\n\t\t\tthis._applyItemState(availableItem, false);\n\t\t\treturn availableItem;\n\t\t}\n\t},\n\t_applyItemState: function(item, selected) {\n\t\tif (selected) {\n\t\t\tif (this.options.sortable)\n\t\t\t\titem.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');\n\t\t\telse\n\t\t\t\titem.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');\n\t\t\titem.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');\n\t\t\tthis._registerRemoveEvents(item.find('a.action'));\n\t\t\t\n\t\t} else {\n\t\t\titem.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');\n\t\t\titem.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');\n\t\t\tthis._registerAddEvents(item.find('a.action'));\n\t\t}\n\t\t\n\t\tthis._registerDoubleClickEvents(item);\n\t\tthis._registerHoverEvents(item);\n\t},\n\t// taken from John Resig's liveUpdate script\n\t_filter: function(list) {\n\t\tvar input = $(this);\n\t\tvar rows = list.children('li'),\n\t\t\tcache = rows.map(function(){\n\t\t\t\t\n\t\t\t\treturn $(this).text().toLowerCase();\n\t\t\t});\n\t\t\n\t\tvar term = $.trim(input.val().toLowerCase()), scores = [];\n\t\t\n\t\tif (!term) {\n\t\t\trows.show();\n\t\t} else {\n\t\t\trows.hide();\n\n\t\t\tcache.each(function(i) {\n\t\t\t\tif (this.indexOf(term)>-1) { scores.push(i); }\n\t\t\t});\n\n\t\t\t$.each(scores, function() {\n\t\t\t\t$(rows[this]).show();\n\t\t\t});\n\t\t}\n\t},\n\t_registerDoubleClickEvents: function(elements) {\n\t\tif (!this.options.doubleClickable) return;\n\t\telements.dblclick(function(ev) {\n\t\t\tif ($(ev.target).closest('.action').length === 0) {\n\t\t\t\t// This may be triggered with rapid clicks on actions as well. In that\n\t\t\t\t// case don't trigger an additional click.\n\t\t\t\telements.find('a.action').click();\n\t\t\t}\n\t\t});\n\t},\n\t_registerHoverEvents: function(elements) {\n\t\telements.removeClass('ui-state-hover');\n\t\telements.mouseover(function() {\n\t\t\t$(this).addClass('ui-state-hover');\n\t\t});\n\t\telements.mouseout(function() {\n\t\t\t$(this).removeClass('ui-state-hover');\n\t\t});\n\t},\n\t_registerAddEvents: function(elements) {\n\t\tvar that = this;\n\t\telements.click(function() {\n\t\t\tvar item = that._setSelected($(this).parent(), true);\n\t\t\tthat.count += 1;\n\t\t\tthat._updateCount();\n\t\t\treturn false;\n\t\t});\n\t\t\n\t\t// make draggable\n\t\tif (this.options.sortable) {\n  \t\telements.each(function() {\n  \t\t\t$(this).parent().draggable({\n  \t      connectToSortable: that.selectedList,\n  \t\t\t\thelper: function() {\n  \t\t\t\t\tvar selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);\n  \t\t\t\t\tselectedItem.width($(this).width());\n  \t\t\t\t\treturn selectedItem;\n  \t\t\t\t},\n  \t\t\t\tappendTo: that.container,\n  \t\t\t\tcontainment: that.container,\n  \t\t\t\trevert: 'invalid'\n  \t    });\n  \t\t});\t\t  \n\t\t}\n\t},\n\t_registerRemoveEvents: function(elements) {\n\t\tvar that = this;\n\t\telements.click(function() {\n\t\t\tthat._setSelected($(this).parent(), false);\n\t\t\tthat.count -= 1;\n\t\t\tthat._updateCount();\n\t\t\treturn false;\n\t\t});\n \t},\n\t_registerSearchEvents: function(input) {\n\t\tvar that = this;\n\n\t\tinput.focus(function() {\n\t\t\t$(this).addClass('ui-state-active');\n\t\t})\n\t\t.blur(function() {\n\t\t\t$(this).removeClass('ui-state-active');\n\t\t})\n\t\t.keypress(function(e) {\n\t\t\tif (e.keyCode == 13)\n\t\t\t\treturn false;\n\t\t})\n\t\t.keyup(function() {\n\t\t\tthat._filter.apply(this, [that.availableList]);\n\t\t});\n\t}\n});\n\t\t\n$.extend($.ui.multiselect, {\n\tlocale: {\n\t\taddAll:'Add all',\n\t\tremoveAll:'Remove all',\n\t\titemsCount:'items selected'\n\t}\n});\n\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.jqgrid-bootstrap-ui.css",
    "content": "/*\nTo change this license header, choose License Headers in Project Properties.\nTo change this template file, choose Tools | Templates\nand open the template in the editor.\n*/\n/* \n    Created on : Mar 16, 2015, 10:24:01 AM\n    Author     : tony\n*/\n\n.ui-jqgrid tr.jqgrow td { height: 26px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:20px }\n.ui-state-hover\n{\n    border: .15em solid;\n\tborder-color: inherit;\n\n}\n.ui-jqdialog .ui-jqdialog-titlebar  {\n\theight:29px;\n\tborder-color: inherit;\n}\n\n.ui-jqdialog-content input.FormElement {\n    padding: 0.25em;\n}\n\n.fm-button {\n    height:30px;\n}\n#nData, #pData { height:20px; width:18px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.jqgrid-bootstrap.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative; \n\tborder: 1px solid #ddd;      /*default*/\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n}\n.ui-jqgrid .ui-jqgrid-view {\n\tposition: relative;\n\tleft:0; \n\ttop: 0; \n\tpadding: 0;\n}\n.ui-jqgrid .ui-common-table {}\n\n/* Caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {\n\tfont-weight: normal;\n\tmin-height:37px; \n\tpadding: 4px 8px; \n\tposition: relative; \n\tmargin-right: 2px;\n\tborder-bottom: 1px solid #ddd; /*default*/\n\n}\n.ui-jqgrid .ui-jqgrid-caption {\n\ttext-align: left;\n}\n.ui-jqgrid .ui-jqgrid-title { \n\tpadding-top: 5px; \n\tvertical-align: middle;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close { \n\tcolor: inherit; \n\tposition: absolute;\n\ttop: 50%; \n\tmargin: -10px 7px 0 0; \n\tpadding: 1px; \n\tcursor:pointer;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { \n\tdisplay: block; \n\tmargin: 1px; \n}\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover {  }\n\n/* Header*/\n.ui-jqgrid .ui-jqgrid-hdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-hbox {\n\tfloat: left; \n\tpadding-right: 20px;\n}\n.ui-jqgrid .ui-jqgrid-htable { \n\tmargin-bottom: 0; \n\ttable-layout: fixed; \n\tborder-top:none;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th {\n\toverflow : hidden; \n\tborder-bottom : none;\n\tpadding-right: 2px;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th div {\n\toverflow: hidden; \n\tposition:relative;\n}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-column-header, \n.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; }\n.ui-first-th-ltr { }\n.ui-first-th-rtl { }\n.ui-jqgrid tr.jqg-first-row-header th {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n\ttext-align: center;\n}\n.ui-jqgrid tr.jqg-second-row-header th,\n.ui-jqgrid tr.jqg-third--row-header th\n{\n\tborder-top:none;\n\ttext-align: center;\n}\n\n.ui-jqgrid .ui-th-div-ie {\n\twhite-space: nowrap; \n\tzoom :1; \n\theight:17px;\n}\n.ui-jqgrid .ui-jqgrid-resize {\n\theight:20px !important;\n\tposition: relative; \n\tcursor :e-resize;\n\tdisplay: inline;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-grid-ico-sort { \n\tmargin-left:5px; \n\toverflow:hidden;\n\tposition:absolute;\n\tright: auto;\n\tfont-size:12px;\n}\n.ui-jqgrid .ui-icon-asc {\n\tmargin-top:-3px;\n}\n.ui-jqgrid .ui-icon-desc {\n\tmargin-top:4px;\n}\n.ui-jqgrid .ui-i-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-i-desc {\n\tmargin-top:0;\n\tmargin-right:13px;\n}\n.ui-jqgrid .ui-single-sort-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-single-sort-desc {}\n.ui-jqgrid .ui-jqgrid-sortable {\n\tcursor:pointer;\n}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { }\n.ui-jqgrid tr.ui-search-toolbar td > input { }\n.ui-jqgrid tr.ui-search-toolbar select {}\n\n/* Body */ \n.ui-jqgrid .table-bordered,\n.ui-jqgrid .table-bordered td,\n.ui-jqgrid .table-bordered th.ui-th-ltr\n{\n\tborder-left:0px none !important;\n}\n.ui-jqgrid .table-bordered th.ui-th-rtl\n{\n\tborder-right:0px none !important;\n}\n.ui-jqgrid .table-bordered tr.ui-row-rtl td\n{\n\tborder-right:0px none !important;\n\tborder-left: 1px solid #ddd !important;\n}\ndiv.tablediv > .table-bordered {\n\tborder-left : 1px solid #ddd !important;\n}\n.ui-jqgrid  .ui-jqgrid-bdiv table.table-bordered td {\n\tborder-top: 0px none;\n}\n.ui-jqgrid .ui-jqgrid-bdiv {\n\tposition: relative; \n\tmargin: 0; \n\tpadding:0; \n\toverflow: auto; \n\ttext-align:left; \n}\n.ui-jqgrid .ui-jqgrid-btable {\n\ttable-layout: fixed; \n\tborder-left:none ; \n\tborder-top:none; \n\tmargin-bottom: 0px\n}\n.ui-jqgrid tr.jqgrow {  \n\toutline-style: none; \n}\n.ui-jqgrid tr.jqgroup {  \n\toutline-style: none; \n}\n.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td { \n\toverflow: hidden; \n\twhite-space: pre; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgfirstrow  td {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgroup td { \n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.jqfoot td {\n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.ui-row-ltr td {}\n.ui-jqgrid tr.ui-row-rtl td {}\n.ui-jqgrid td.jqgrid-rownum { }\n.ui-jqgrid .ui-jqgrid-resize-mark { \n\twidth:2px; \n\tleft:0; \n\tbackground-color:#777; \n\tcursor: e-resize; \n\tcursor: col-resize; \n\tposition:absolute; \n\ttop:0; \n\theight:100px; \n\toverflow:hidden; \n\tdisplay:none; \n\tborder:0 none; \n\tz-index: 99999;\n\n}\n/* Footer */\n.ui-jqgrid .ui-jqgrid-sdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden; \n\tborder-left: 0 none !important; \n\tborder-top : 0 none !important; \n\tborder-right : 0 none !important;\n}\n.ui-jqgrid .ui-jqgrid-ftable {\n\ttable-layout:fixed;\n\tmargin-bottom:0;\n}\n\n.ui-jqgrid tr.footrow td {\n\tfont-weight: bold; \n\toverflow: hidden; \n\twhite-space:nowrap; \n\tpadding-right: 2px;\n\tborder-bottom: 0px none;\n}\n.ui-jqgrid tr.footrow-ltr td {\n\ttext-align:left;\n}\n.ui-jqgrid tr.footrow-rtl td {\n\ttext-align:right;\n}\n\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager\n{ \n\tborder-left-width: 0px;\n\tborder-top: 1px solid #ddd;  \n\t/*padding : 4px 0px;*/\n\tposition: relative; \n\t/*height: auto; */\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-toppager {\n\tborder-top-width :0;\n\tborder-bottom : 1px solid #ddd;\n}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, \n.ui-jqgrid .ui-jqgrid-pager .ui-pager-control {\n\tposition: relative;\n\tborder-left: 0;\n\tborder-bottom: 0;\n\tborder-top: 0; \n\t/*height: 30px;*/\n}\n.ui-jqgrid .ui-pg-table {\n\tposition: relative; \n\tpadding: 1px 0; \n\twidth:auto; \n\tmargin: 0;\n}\n.ui-jqgrid .ui-pg-table td {\n\tfont-weight:normal; \n\tvertical-align:middle; \n\t/*padding:0px 6px;*/\n}\n.ui-jqgrid .ui-pager-control .ui-pager-table td {\n\tborder-top : 0px none !important;\n\tmin-height : 20px !important;\n}\n.ui-jqgrid .ui-pg-button  { \n\theight:auto; \n}\n.ui-jqgrid  .ui-paging-pager td {\n\tpadding : 0 5px;\n}\n.ui-jqgrid .ui-pg-button span { \n\tdisplay: block; \n\tmargin: 0px 2px; \n\tfloat:left;\n}\n.ui-jqgrid .ui-pg-button:hover {  }\n.ui-jqgrid .ui-disabled:hover {}\n.ui-jqgrid .ui-pg-input,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { \n\tdisplay: inline-block;\n\theight:auto;\n\twidth: auto;\n\tfont-size:.9em; \n\tmargin:0;\n\tline-height: inherit;\n\tborder: none; \n\tpadding: 0px 3px\n}\n.ui-jqgrid .ui-pg-selbox, \n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {\n\tfont-size:.9em; \n\tline-height:inherit; \n\tdisplay:block; \n\theight:22px; \n\tmargin: 0; \n\tpadding: 3px 0px 3px 3px; \n\tborder:none;\n}\n.ui-jqgrid .ui-separator {\n\theight: 18px; \n\tborder : none;\n\tborder-left: 2px solid #ccc ; /*default*/\n\t\n}\n.ui-separator-li {\n\theight: 2px; \n\tborder : none;\n\tborder-top: 2px solid #ccc ;  /*default*/\n\tmargin: 0; padding: 0; width:100%\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{\n\tfloat:left;\n\tposition:relative; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ \n\tcursor:pointer; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span\n{\n\tfloat:left;\n}\n.ui-jqgrid td input, \n.ui-jqgrid td select, \n.ui-jqgrid td textarea { \n\tmargin: 0;\n}\n.ui-jqgrid td textarea {\n\twidth:auto;\n\theight:auto;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table\n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable td,\n.ui-jqgrid .ui-jqgrid-toppager .navtable td \n{ \n\tpadding : 0 5px;\n}\n\n/*Subgrid*/\n\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {\n\tdisplay: block;\n}\n.ui-jqgrid .ui-subgrid {\n\tmargin:0;\n\tpadding:0; \n\twidth:100%;\n}\n.ui-jqgrid .ui-subgrid table {\n\ttable-layout: fixed;\n}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {}\n.ui-jqgrid .ui-subgrid td.subgrid-data {\n\tborder-top:  0 none !important;\n}\n.ui-jqgrid .ui-subgrid td.subgrid-cell { \n\tvertical-align: middle\n}\n.ui-jqgrid a.ui-sghref {\n\ttext-decoration: none;\n\tcolor : #010101; /*default*/\n}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n.tablediv > .row { margin: 0 0}\n/* loading */\n.ui-jqgrid .loading {\n\tposition: absolute; \n\ttop: 45%;\n\tleft: 45%;\n\twidth: auto;\n\tz-index:101;\n\tpadding: 6px; \n\tmargin: 5px;\n\ttext-align: center;\n\tdisplay: none;\n\tborder: 1px solid #ddd;  /*default*/\n\tfont-size: 14px;\n\tbackground-color: #d9edf7;\n}\n.ui-jqgrid .jqgrid-overlay { \n\tdisplay:none;\n\tz-index:100;\n}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n\n/* Toolbar */\n.ui-jqgrid .ui-userdata {\n\tpadding: 4px 0px; \n\toverflow: hidden; \n\tmin-height: 32px; \n}\n.ui-jqgrid .ui-userdata-top {\n\tborder-left-width: 0px;    /*default*/\n\tborder-bottom: 1px solid #ddd;\t\n}\n.ui-jqgrid .ui-userdata-bottom {\n\tborder-left-width: 0px;    /*default*/\n\tborder-top: 1px solid #ddd;\t\n}\n/*Modal Window */\n.ui-jqdialog { }\n.ui-jqdialog { \n\tdisplay: none; \n\twidth: 500px; \n\tposition: absolute; \n\t/*padding: 5px; */\n\toverflow:visible;\n}\n.ui-jqdialog .ui-jqdialog-titlebar {\n\tpadding: .1em .1em; \n\tmin-height: 35px; \n}\n.ui-jqdialog .ui-jqdialog-title { \n\tmargin: .3em 0 .2em;  \n\tfont-weight: bold;\n\tpadding-left :6px;\n\tpadding-right:6px;\n} \n.ui-jqdialog .ui-jqdialog-titlebar-close { \n\tposition: absolute;  \n\ttop: 0%; \n\tmargin: 3px 5px 0 0; \n\tpadding: 8px;  \n\tcursor:pointer;\n}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span {  }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, \n.ui-jqdialog .ui-jqdialog-titlebar-close:focus { \n\tpadding: 8px; \n}\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { \n\tborder: 0; \n\tpadding: .3em .2em; \n\tbackground: none; \n\theight:auto;\n}\n.ui-jqdialog .ui-jqconfirm {\n\tpadding: .4em 1em; \n\tborder-width:3px;\n\tposition:absolute;\n\tbottom:10px;\n\tright:10px;\n\toverflow:visible;\n\tdisplay:none;\n\theight:120px;\n\twidth:220px;\n\ttext-align:center;\n\tbackground-color: #fff;\n\tborder-radius: 4px;\n\t-webkit-border-radius: 4px;\n\t-moz-border-radius: 4px;\n}\n.ui-jqdialog>.ui-resizable-se { }\n.ui-jqgrid>.ui-resizable-se { }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid { \n\tmargin: 0 8px 0 8px; \n\toverflow:auto;\n\tposition:relative;\n}\n.ui-jqdialog-content .EditTable { \n\twidth: 100%; \n\tmargin-bottom:0; \n}\n.ui-jqdialog-content .DelTable { \n\twidth: 100%; \n\tmargin-bottom:0;\n}\n.EditTable td input, \n.EditTable td select, \n.EditTable td textarea { \n\twidth: 98%; \n\tdisplay: inline-block;\n}\n.EditTable td textarea { \n\twidth:auto; \n\theight:auto;\n}\n.EditTable .FormData td { \n\theight:37px !important;\n}\n.ui-jqdialog-content td.EditButton {\n\ttext-align: right; \n\tpadding: 5px 5px 5px 0;\n}\n.ui-jqdialog-content td.navButton {\n\ttext-align: center; \n\tborder-left: 0 none;\n\tborder-top: 0 none;\n\tborder-right: 0 none; \n\tpadding-bottom:5px; \n\tpadding-top:5px;\n}\n.ui-jqdialog-content input.FormElement {\n\tpadding: .5em .3em; \n\tmargin-bottom: 5px\n}\n.ui-jqdialog-content select.FormElement {\n\tpadding:.3em; \n\tmargin-bottom: 3px;\n}\n.ui-jqdialog-content .data-line {\n\tpadding-top:.1em;\n\tborder: 0 none;\n}\n\n.ui-jqdialog-content .CaptionTD {\n\tvertical-align: middle;\n\tborder: 0 none; \n\tpadding: 2px;\n\twhite-space: nowrap;\n}\n.ui-jqdialog-content .DataTD {\n\tpadding: 2px; \n\tborder: 0 none; \n\tvertical-align: top;\n}\n.ui-jqdialog-content .form-view-data {\n\twhite-space:pre\n}\n.fm-button {  }\n.fm-button-icon-left { \n\tmargin-left: 4px; \n\tmargin-right: 4px;  \n}\n.fm-button-icon-right { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n.fm-button-icon-left  {  }\n.fm-button-icon-right  { }\n#nData, #pData { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n#sData span, #cData span { \n\tmargin-left: 5px;\n}\n/* End Eorm edit */\n/*.ui-jqgrid .edit-cell {}*/\n.ui-jqgrid .selected-row, \ndiv.ui-jqgrid .selected-row td {\n\tfont-style : normal;\n}\n/* inline edit actions button*/\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 14px;\n}\n.ui-jqgrid .inline-edit-cell {}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {\n\tfloat: left; \n\tposition: relative;\n\theight: 18px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-minus {\n\tposition: absolute; \n\theight: 18px; \n\twidth: 18px; \n\toverflow: hidden;\n}\n.ui-jqgrid .tree-plus {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\t\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-leaf {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\n\toverflow: hidden;\n}\n.ui-jqgrid .treeclick {\n\tcursor: pointer;\n}\n/* moda dialog */\n* iframe.jqm {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {\n\tborder-right-width: 1px;\n\tborder-right-color: inherit;\n\tborder-right-style: solid; \n\theight:20px\n}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {\n\ttext-align: right;\n}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {\n\tfloat: right; \n\t/*padding-left: 20px;*/\n}\n.ui-jqgrid .ui-jqgrid-resize-ltr {\n\tfloat: right;\n\tmargin: -2px -2px -2px 0;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-resize-rtl {\n\tfloat: left;\n\tmargin: -2px -2px -2px -0px;\n}\n.ui-jqgrid .ui-sort-rtl {\n\t\n}\n.ui-jqgrid .tree-wrap-ltr {\n\tfloat: left;\n}\n.ui-jqgrid .tree-wrap-rtl {\n\tfloat: right;\n}\n.ui-jqgrid .ui-ellipsis {\n\t-moz-text-overflow:ellipsis;\n\ttext-overflow:ellipsis;\n}\n/* Toolbar Search Menu. Nav menu */\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { \n\tpadding: 0; \n\tborder: 0 none; \n\theight:20px; \n\twidth:100%;\n}\n.ui-jqgrid .ui-search-table .ui-search-oper { \n\twidth:20px; \n}\na.g-menu-item, a.soptclass, a.clearsearchclass { \n\tcursor: pointer; \n} \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    /*font-size: 11px*/\n}\n.ui-jqgrid .ui-scroll-popup {\n\twidth: 100px;\n}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\t\n.ui-disabled {\n\topacity: .35;\n\tfilter:Alpha(Opacity=35); /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0,0,0,0.5);\n\topacity: .3;\n\tfilter: Alpha(Opacity=30); /* support: IE8 */\n}\n \n.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover,\n.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover\n{\n\tbackground-color: #ddd;\n}\n.ui-jqgrid-corner  {\n\t border-radius: 5px\n}\n.ui-resizable-handle {\n\t/*position: absolute;*/\n\tdisplay: block;\n\tleft :97%;\n}\n.ui-jqdialog .ui-resizable-se {\n\twidth: 12px;\n\theight: 12px;\n\tright: -5px;\n\tbottom: -5px;\n\tbackground-position: 16px 16px;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-top-corner {\n\tborder-top-left-radius: 5px;\n\tborder-top-right-radius: 5px;\n}\n.ui-bottom-corner {\n\tborder-bottom-left-radius: 5px;\n\tborder-bottom-right-radius: 5px;\n}\n\n.ui-search-table {\n\tmargin-bottom: 0;\n}\n.ui-search-table .columns, .ui-search-table .operators {\n\tpadding-right: 5px;\n}\n.opsel {\n\tfloat :left;\n\twidth : 100px;\n\tmargin-right : 5px;\n}\n.add-group, .add-rule, .delete-group {\n\twidth: 14%;\t\n\tmargin-right : 5px;\n}\n.delete-rule {\n\twidth : 15px;\n}\nul.ui-search-menu, ul.ui-nav-menu {\n\t list-style-type:  none;\n}\nul.ui-search-menu li a, \nul.ui-nav-menu li a,\n.soptclass, \n.clearsearchclass {\n\ttext-decoration: none;\n\tcolor : #010101;\n}\nul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover {\n\tbackground-color: #ddd;\n\tpadding: 1px 1px;\n\ttext-decoration: none;\n}\nul.ui-search-menu li, ul.ui-nav-menu li {\n\tpadding : 5px 5px;\n}\n.ui-menu-item hr {\n\tmargin-bottom: 0px;\n\tmargin-top:0px;\n}\n\n.searchFilter .ui-search-table td,\n.searchFilter .ui-search-table th\n{\n\tborder-top: 0px none !important;\n}\n\n.searchFilter .queryresult {\n\tmargin-bottom: 5px;\n}\n.searchFilter .queryresult tr td{\n\tborder-top: 0px none;\n}\n.ui-search-label { \n\tpadding-left: 5px;\n}\n\n.frozen-div, .frozen-bdiv {\n\tbackground-color: #fff;\n}\n/*\n.ui-jqgrid .ui-jqgrid-caption,\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager,\n.ui-jqgrid .ui-jqgrid-htable thead th,\n.ui-jqgrid .ui-userdata-top,\n.ui-jqgrid .ui-userdata-bottom,\n.ui-jqgrid .ui-jqgrid-hdiv,\n.ui-jqdialog .ui-jqdialog-titlebar\n{\n    background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%);\n    background-repeat: repeat-x;\n    border-color: #ccc;\n    text-shadow: 0 1px 0 #fff;\n}\n*/\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright: auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 15px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\tpadding-right: 8px;\n\tpadding-left: 8px;\n}\ntd.menu_text {\n\twidth: auto;\n\tpadding-left: 1px;\n\twhite-space: nowrap;\n}\n#search_menu .ui-menu-item div {\n\tpadding: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n\tpadding: 3px 3px;\n}\n.search_buttons .btn-default:hover {\n\tpadding-bottom: 6px;\n\tpadding-top: 6px;\n}\n.search_buttons #bs_reset {\n\tmargin-right: 3px;\n}\n.search_buttons #bs_search {\n\tmargin-left: 3px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.jqgrid.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative;\n\t-moz-box-sizing: content-box; \n\t-webkit-box-sizing: content-box; \n\tbox-sizing: content-box;\n}\n.ui-jqgrid .ui-jqgrid-view {position: relative;left:0; top: 0; padding: 0; font-size:11px; z-index:100;}\n.ui-jqgrid .ui-common-table {border-width: 0px; border-style: none; border-spacing: 0px; padding: 0;}\n/* caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {height:19px; padding: .3em .2em .2em .3em; position: relative; font-size: 12px; border-left: 0 none;border-right: 0 none; border-top: 0 none;}\n.ui-jqgrid .ui-jqgrid-caption {text-align: left;}\n.ui-jqgrid .ui-jqgrid-title { margin: .1em 0 .2em; }\n.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px; cursor:pointer;}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }\n/* header*/\n.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}\n.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0;border-collapse: separate;}\n.ui-jqgrid .ui-jqgrid-htable th { height: 27px; padding: 0 2px 0 2px;}\n.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative;margin: .1em 0em .1em 0em;}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none;border-bottom : 0 none;}\n.ui-th-column-header, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none; height: 26px;}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0 none;}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0 none;}\n.ui-first-th-ltr {border-right: 1px solid; }\n.ui-first-th-rtl {border-left: 1px solid; }\n.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}\n.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}\n.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}\n.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}\n.ui-jqgrid .ui-icon-desc {margin-top:3px;margin-left:-1px;height:12px;}\n.ui-jqgrid .ui-i-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-i-desc {margin-top:0;margin-left:12px;height:18px;}\n.ui-jqgrid .ui-single-sort-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-single-sort-desc {margin-top:-1px;height:18px;}\n.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;height:14px}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { width:25px;}\n.ui-jqgrid tr.ui-search-toolbar td > input { padding-right: 0px; width: 95%;}\n.ui-jqgrid tr.ui-search-toolbar select {}\n/* body */ \n.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0; padding:0; overflow: auto; text-align:left;z-index: 101;}\n.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0; outline-style: none; border-collapse: separate;}\n.ui-jqgrid tr.jqgrow { outline-style: none; }\n.ui-jqgrid tr.jqgroup { outline-style: none; }\n.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 23px;padding: 1px 2px 1px 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqgfirstrow td {padding: 0 2px 0 2px;border-right-width: 1px; border-right-style: solid; height:auto;}\n.ui-jqgrid tr.jqgroup td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqfoot td {font-weight: bold; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0; border: 0 none;}\n.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none; border:0 none; z-index: 99999;}\n/* footer */\n.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0;border-collapse: separate;}\n.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 20px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager { border-left: 0 none !important;border-right: 0 none !important; border-bottom: 0 none !important; border-top: 0 none; margin: 0 !important; padding: 0 !important; position: relative; height: auto; min-height: 28px; white-space: nowrap;overflow: hidden;font-size:11px; z-index:101}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, .ui-jqgrid .ui-jqgrid-pager .ui-pager-control {position: relative;border-left: 0;border-bottom: 0;border-top: 0; height: 28px;}\n.ui-jqgrid .ui-pg-table {position: relative; padding: 1px 0; width:auto; margin: 0;}\n.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:0px 1px;}\n.ui-jqgrid .ui-pg-button  { height:auto}\n.ui-jqgrid .ui-pg-button span { display: block; margin: 2px; float:left;}\n.ui-jqgrid .ui-pg-button:hover { padding: 0;}\n.ui-jqgrid .ui-state-disabled:hover {padding:0px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:14px;width: auto;font-size:.9em; margin:0;line-height: inherit;border: none; padding: 3px 2px}\n.ui-jqgrid .ui-pg-selbox, .ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {font-size:.9em; line-height:inherit; display:block; height:19px; margin: 0; padding: 3px 0px; border:none;}\n.ui-jqgrid .ui-separator {height: 18px; border-left: 2px solid #ccc ;}\n.ui-separator-li {height: 2px; border : none;border-top: 2px solid #ccc ; margin: 0; padding: 0; width:100%}\n.ui-jqgrid  .dropdownmenu {\n\tpadding: 3px 0 3px 0;\n\tmargin-left: 4px;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{padding:1px 0;float:left;position:relative; line-height: 20px;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon\n{float:left;margin: 2px; width:18px;}\n.ui-jqgrid td input, .ui-jqgrid td select, .ui-jqgrid td textarea { margin: 0; padding-top:5px;padding-bottom: 5px;}\n.ui-jqgrid td textarea {width:auto;height:auto;}\n.ui-jqgrid .ui-jqgrid-toppager {border-left: 0 none !important;border-right: 0 none !important; border-top: 0 none !important; margin: 0 !important; padding: 0 !important; position: relative;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table \n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n\n/*.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div {padding:1px 0;float:left;position:relative; line-height: 20px; margin-right:3px;}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button { cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon {float:left;margin: 2px; width:18px;}\n*/\n\n/*subgrid*/\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}\n.ui-jqgrid .ui-subgrid {margin:0;padding:0; width:100%;}\n.ui-jqgrid .ui-subgrid table {table-layout: fixed;}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0 none !important; border-left: 0 none !important;}\n.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0 1px 1px 0;}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n/* loading */\n.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important; font-size:11px;}\n.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n/* toolbar */\n.ui-jqgrid .ui-userdata {border-left: 0 none;    border-right: 0 none;\theight : 27px;overflow: hidden;\t}\n/*Modal Window */\n.ui-jqdialog { font-size:11px !important; }\n.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}\n.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative; height:20px;}\n.ui-jqdialog .ui-jqdialog-title { margin: .3em .2em .2em .2em;} \n.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -12px 0 0 0; padding: 1px; height: 18px; cursor:pointer;}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}\n.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}\n.ui-jqdialog>.ui-resizable-se { bottom: -3px; right: -3px}\n.ui-jqgrid>.ui-resizable-se { bottom: -3px; right: -3px }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid {margin: 0; overflow:auto;position:relative;}\n.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0;}\n.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0;}\n.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0;}\n.EditTable td textarea { width:auto; height:auto;}\n.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0 none;border-left: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content td.navButton {text-align: center; border-left: 0 none;border-top: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content input.FormElement {padding: .5em .3em; margin-bottom: 3px}\n.ui-jqdialog-content select.FormElement {padding:.3em; margin-bottom: 3px;}\n.ui-jqdialog-content .data-line {padding-top:.1em;border: 0 none;}\n\n.ui-jqdialog-content .CaptionTD {vertical-align: middle;border: 0 none; padding: 2px;white-space: nowrap;}\n.ui-jqdialog-content .DataTD {padding: 2px; border: 0 none; vertical-align: top;}\n.ui-jqdialog-content .form-view-data {white-space:pre}\n.fm-button { height: 18px; display: inline-block; margin:2px 4px 0 0; padding: .6em .5em .2em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }\n.fm-button-icon-left { padding-left: 1.9em; }\n.fm-button-icon-right { padding-right: 1.9em; }\n.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }\n.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}\n#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }\n.ViewTable {\n\tborder-width: 0; \n\tborder-style: none; \n\tborder-spacing: 1px;\n\tpadding: 4px;\n\ttable-layout: fixed;\n}\n.ViewTable .CaptionTD, .ViewTable .DataTD {padding : 4px;} \n/* End Eorm edit */\n/*cell edit*/\n.ui-jqgrid .edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0 none;}\n/* inline edit actions button*/\n.ui-inline-del.ui-state-hover span, .ui-inline-edit.ui-state-hover span,\n.ui-inline-save.ui-state-hover span, .ui-inline-cancel.ui-state-hover span {\n    margin: -1px;\n}\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 8px;\n}\n\n.ui-jqgrid .inline-edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}\n.ui-jqgrid .tree-plus {position: absolute;\theight: 18px; width: 18px;\toverflow: hidden;}\n.ui-jqgrid .tree-leaf {position: absolute;\theight: 18px; width: 18px;overflow: hidden;}\n.ui-jqgrid .treeclick {cursor: pointer;}\n/* moda dialog */\n* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {text-align: right;}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right;}\n.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0;}\n.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0 -1px -3px;}\n.ui-jqgrid .ui-sort-rtl {left:0;}\n.ui-jqgrid .tree-wrap-ltr {float: left;}\n.ui-jqgrid .tree-wrap-rtl {float: right;}\n.ui-jqgrid .ui-ellipsis {-moz-text-overflow:ellipsis;text-overflow:ellipsis;}\n\n/* Toolbar Search Menu , Nav menu*/\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n\t-webkit-box-shadow: 7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\t-moz-box-shadow:    7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\tbox-shadow:         7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { padding: 0; border: 0 none; height:20px; width:100%;}\n.ui-jqgrid .ui-search-table .ui-search-oper { width:20px; }\na.g-menu-item, a.soptclass, a.clearsearchclass { cursor: pointer; } \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    font-size: 11px;\n}\n.ui-jqgrid .ui-scroll-popup {width: 95px;}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-separator {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-pg-div > .ui-icon {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright:auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 10px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\twhite-space: pre;\n\tpadding-right: 4px;\n\tpadding-left: 4px;\n\twidth : auto;\n}\n.ui-menu-item .ui-common-table .menu_icon .ui-icon {\n\tdisplay : inline-block;\n\tposition: relative;\n}\ntd.menu_text {\n\twidth: auto;\n\twhite-space: nowrap;\n}\n.ui-search-menu .ui-menu-item {\n\tpadding : 0 0;\n}\n.ui-col-menu .ui-menu-item td.menu_text{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left : 1px;\n}\n.ui-col-menu .ui-menu-item td.menu_icon{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tvertical-align: middle;\n}\n.ui-col-menu .ui-menu-item td.menu_icon input{\n\tmargin: 2px 0;\n\t\n}\n#search_menu .ui-menu-item div {\n\tmargin: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu .ui-menu-item div input,\n#search_menu .ui-menu-item div select\n{\n\tpadding: 3px 2px;\n}\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n}\n#column_menu.ui-menu .ui-menu-item {\n\tposition :static;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.multiselect.css",
    "content": "/* Multiselect\n----------------------------------*/\n\n.ui-multiselect { border: solid 1px; font-size: 0.8em; }\n.ui-multiselect ul { -moz-user-select: none; }\n.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }\n.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}\n.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }\n\n.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }\n.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }\n.ui-multiselect ul.selected li { }\n\n.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }\n.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }\n.ui-multiselect ul.available li { padding-left: 10px; }\n \n.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}\n.ui-multiselect .ui-state-hover { border: none; }\n.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}\n \n.ui-multiselect .add-all { float: right; padding: 7px;}\n.ui-multiselect .remove-all { float: right; padding: 7px;}\n.ui-multiselect .search { float: left; padding: 4px;}\n.ui-multiselect .count { float: left; padding: 7px;}\n\n.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }\n.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }\n \n.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.base.js",
    "content": "// ==ClosureCompiler==\n// @compilation_level SIMPLE_OPTIMIZATIONS\n\n/**\n * @license Guriddo jqGrid JS 5.2.0 (2016-11-21)\n * Copyright (c) 2008, Tony Tomov, tony@trirand.com\n * \n * License: http://guriddo.net/?page_id=103334\n */\n//jsHint options\n/*jshint evil:true, eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, window, define, navigator, document */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"defaults\")) {\n\t$.jgrid.defaults = {};\n}\n$.extend($.jgrid,{\n\tversion : \"5.2.0\",\n\thtmlDecode : function(value){\n\t\tif(value && (value==='&nbsp;' || value==='&#160;' || (value.length===1 && value.charCodeAt(0)===160))) { return \"\";}\n\t\treturn !value ? value : String(value).replace(/&gt;/g, \">\").replace(/&lt;/g, \"<\").replace(/&quot;/g, '\"').replace(/&amp;/g, \"&\");\t\t\n\t},\n\thtmlEncode : function (value){\n\t\treturn !value ? value : String(value).replace(/&/g, \"&amp;\").replace(/\\\"/g, \"&quot;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n\t},\n\ttemplate : function(format){ //jqgformat\n\t\tvar args = $.makeArray(arguments).slice(1), j, al = args.length;\n\t\tif(format==null) { format = \"\"; }\n\t\treturn format.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\tif(!isNaN(parseInt(i,10))) {\n\t\t\t\treturn args[parseInt(i,10)];\n\t\t\t}\n\t\t\tfor(j=0; j < al;j++) {\n\t\t\t\tif($.isArray(args[j])) {\n\t\t\t\t\tvar nmarr = args[ j ],\n\t\t\t\t\tk = nmarr.length;\n\t\t\t\t\twhile(k--) {\n\t\t\t\t\t\tif(i===nmarr[k].nm) {\n\t\t\t\t\t\t\treturn nmarr[k].v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}, \n\tmsie : function () {\n\t\treturn $.jgrid.msiever() > 0;\n\t},\n\tmsiever : function () {\n\t\tvar rv =0,\n\t\tsAgent = window.navigator.userAgent,\n\t\tIdx = sAgent.indexOf(\"MSIE\");\n\n\t\tif (Idx > 0)  {\n\t\t\trv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(\".\", Idx)));\n\t\t} else if ( !!navigator.userAgent.match(/Trident\\/7\\./) ) {\n\t\t\trv = 11;\n\t\t}\n\t\treturn rv;\n\t},\n\tgetCellIndex : function (cell) {\n\t\tvar c = $(cell);\n\t\tif (c.is('tr')) { return -1; }\n\t\tc = (!c.is('td') && !c.is('th') ? c.closest(\"td,th\") : c)[0];\n\t\tif ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); }\n\t\treturn c.cellIndex;\n\t},\n\tstripHtml : function(v) {\n\t\tv = String(v);\n\t\tvar regexp = /<(\"[^\"]*\"|'[^']*'|[^'\">])*>/gi;\n\t\tif (v) {\n\t\t\tv = v.replace(regexp,\"\");\n\t\t\treturn (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\\\"/g,\"'\") : \"\";\n\t\t} \n\t\t\treturn v;\n\t},\n\tstripPref : function (pref, id) {\n\t\tvar obj = $.type( pref );\n\t\tif( obj === \"string\" || obj === \"number\") {\n\t\t\tpref =  String(pref);\n\t\t\tid = pref !== \"\" ? String(id).replace(String(pref), \"\") : id;\n\t\t}\n\t\treturn id;\n\t},\n\tuseJSON : true,\n\tparse : function(jsonString) {\n\t\tvar js = jsonString;\n\t\tif (js.substr(0,9) === \"while(1);\") { js = js.substr(9); }\n\t\tif (js.substr(0,2) === \"/*\") { js = js.substr(2,js.length-4); }\n\t\tif(!js) { js = \"{}\"; }\n\t\treturn ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ?\n\t\t\tJSON.parse(js) :\n\t\t\teval('(' + js + ')');\n\t},\n\tparseDate : function(format, date, newformat, opts) {\n\t\tvar\ttoken = /\\\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,\n\t\ttimezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\n\t\ttimezoneClip = /[^-+\\dA-Z]/g,\n\t\tmsDateRegExp = new RegExp(\"^\\/Date\\\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\\\)\\/$\"),\n\t\tmsMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null),\n\t\tpad = function (value, length) {\n\t\t\tvalue = String(value);\n\t\t\tlength = parseInt(length,10) || 2;\n\t\t\twhile (value.length < length)  { value = '0' + value; }\n\t\t\treturn value;\n\t\t},\n\t\tts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},\n\t\ttimestamp=0, dM, k,hl,\n\t\th12to24 = function(ampm, h){\n\t\t\tif (ampm === 0){ if (h === 12) { h = 0;} }\n\t\t\telse { if (h !== 12) { h += 12; } }\n\t\t\treturn h;\n\t\t},\n\t\toffset =0;\n\t\tif(opts === undefined) {\n\t\t\topts = $.jgrid.getRegional(this, \"formatter.date\");//$.jgrid.formatter.date;\n\t\t}\n\t\t// old lang files\n\t\tif(opts.parseRe === undefined ) {\n\t\t\topts.parseRe = /[#%\\\\\\/:_;.,\\t\\s-]/;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; }\n\t\tif(date && date != null) {\n\t\t\tif( !isNaN( date - 0 ) && String(format).toLowerCase() === \"u\") {\n\t\t\t\t//Unix timestamp\n\t\t\t\ttimestamp = new Date( parseFloat(date)*1000 );\n\t\t\t} else if(date.constructor === Date) {\n\t\t\t\ttimestamp = date;\n\t\t\t\t// Microsoft date format support\n\t\t\t} else if( msMatch !== null ) {\n\t\t\t\ttimestamp = new Date(parseInt(msMatch[1], 10));\n\t\t\t\tif (msMatch[3]) {\n\t\t\t\t\toffset = Number(msMatch[5]) * 60 + Number(msMatch[6]);\n\t\t\t\t\toffset *= ((msMatch[4] === '-') ? 1 : -1);\n\t\t\t\t\toffset -= timestamp.getTimezoneOffset();\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//Support ISO8601Long that have Z at the end to indicate UTC timezone\n\t\t\t\tif(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') {\n\t\t\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\t\t}\n\t\t\t\tdate = String(date).replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\tformat = format.replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\t// parsing for month names\n\t\t\t\tfor(k=0,hl=format.length;k<hl;k++){\n\t\t\t\t\tswitch ( format[k] ) {\n\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'F':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames,12);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tformat[k] = 'm';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'j': \n\t\t\t\t\t\t\tformat[k] = 'd';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'A':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM-2;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tts.h = parseInt(date[k], 10);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(date[k] !== undefined) {\n\t\t\t\t\t\tts[format[k].toLowerCase()] = parseInt(date[k],10);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.f) {ts.m = ts.f;}\n\t\t\t\tif( ts.m === 0 && ts.y === 0 && ts.d === 0) {\n\t\t\t\t\treturn \"&#160;\" ;\n\t\t\t\t}\n\t\t\t\tts.m = parseInt(ts.m,10)-1;\n\t\t\t\tvar ty = ts.y;\n\t\t\t\tif (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;}\n\t\t\t\telse if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;}\n\t\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t\t\t//Apply offset to show date as local time.\n\t\t\t\tif(offset > 0) {\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t}\n\t\tif(opts.userLocalTime && offset === 0) {\n\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\tif( offset > 0 ) {\n\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t}\n\t\t}\n\t\tif( newformat === undefined ) {\n\t\t\treturn timestamp;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(newformat) )  {\n\t\t\tnewformat = opts.masks[newformat];\n\t\t} else if ( !newformat ) {\n\t\t\tnewformat = 'Y-m-d';\n\t\t}\n\t\tvar \n\t\t\tG = timestamp.getHours(),\n\t\t\ti = timestamp.getMinutes(),\n\t\t\tj = timestamp.getDate(),\n\t\t\tn = timestamp.getMonth() + 1,\n\t\t\to = timestamp.getTimezoneOffset(),\n\t\t\ts = timestamp.getSeconds(),\n\t\t\tu = timestamp.getMilliseconds(),\n\t\t\tw = timestamp.getDay(),\n\t\t\tY = timestamp.getFullYear(),\n\t\t\tN = (w + 6) % 7 + 1,\n\t\t\tz = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,\n\t\t\tflags = {\n\t\t\t\t// Day\n\t\t\t\td: pad(j),\n\t\t\t\tD: opts.dayNames[w],\n\t\t\t\tj: j,\n\t\t\t\tl: opts.dayNames[w + 7],\n\t\t\t\tN: N,\n\t\t\t\tS: opts.S(j),\n\t\t\t\t//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',\n\t\t\t\tw: w,\n\t\t\t\tz: z,\n\t\t\t\t// Week\n\t\t\t\tW: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),\n\t\t\t\t// Month\n\t\t\t\tF: opts.monthNames[n - 1 + 12],\n\t\t\t\tm: pad(n),\n\t\t\t\tM: opts.monthNames[n - 1],\n\t\t\t\tn: n,\n\t\t\t\tt: '?',\n\t\t\t\t// Year\n\t\t\t\tL: '?',\n\t\t\t\to: '?',\n\t\t\t\tY: Y,\n\t\t\t\ty: String(Y).substring(2),\n\t\t\t\t// Time\n\t\t\t\ta: G < 12 ? opts.AmPm[0] : opts.AmPm[1],\n\t\t\t\tA: G < 12 ? opts.AmPm[2] : opts.AmPm[3],\n\t\t\t\tB: '?',\n\t\t\t\tg: G % 12 || 12,\n\t\t\t\tG: G,\n\t\t\t\th: pad(G % 12 || 12),\n\t\t\t\tH: pad(G),\n\t\t\t\ti: pad(i),\n\t\t\t\ts: pad(s),\n\t\t\t\tu: u,\n\t\t\t\t// Timezone\n\t\t\t\te: '?',\n\t\t\t\tI: '?',\n\t\t\t\tO: (o > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\n\t\t\t\tP: '?',\n\t\t\t\tT: (String(timestamp).match(timezone) || [\"\"]).pop().replace(timezoneClip, \"\"),\n\t\t\t\tZ: '?',\n\t\t\t\t// Full Date/Time\n\t\t\t\tc: '?',\n\t\t\t\tr: '?',\n\t\t\t\tU: Math.floor(timestamp / 1000)\n\t\t\t};\n\t\treturn newformat.replace(token, function ($0) {\n\t\t\treturn flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1);\n\t\t});\n\t},\n\tjqID : function(sid){\n\t\treturn String(sid).replace(/[!\"#$%&'()*+,.\\/:; <=>?@\\[\\\\\\]\\^`{|}~]/g,\"\\\\$&\");\n\t},\n\tguid : 1,\n\tuidPref: 'jqg',\n\trandId : function( prefix )\t{\n\t\treturn (prefix || $.jgrid.uidPref) + ($.jgrid.guid++);\n\t},\n\tgetAccessor : function(obj, expr) {\n\t\tvar ret,p,prm = [], i;\n\t\tif( typeof expr === 'function') { return expr(obj); }\n\t\tret = obj[expr];\n\t\tif(ret===undefined) {\n\t\t\ttry {\n\t\t\t\tif ( typeof expr === 'string' ) {\n\t\t\t\t\tprm = expr.split('.');\n\t\t\t\t}\n\t\t\t\ti = prm.length;\n\t\t\t\tif( i ) {\n\t\t\t\t\tret = obj;\n\t\t\t\t\twhile (ret && i--) {\n\t\t\t\t\t\tp = prm.shift();\n\t\t\t\t\t\tret = ret[p];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t\treturn ret;\n\t},\n\tgetXmlData: function (obj, expr, returnObj) {\n\t\tvar ret, m = typeof expr === 'string' ? expr.match(/^(.*)\\[(\\w+)\\]$/) : null;\n\t\tif (typeof expr === 'function') { return expr(obj); }\n\t\tif (m && m[2]) {\n\t\t\t// m[2] is the attribute selector\n\t\t\t// m[1] is an optional element selector\n\t\t\t// examples: \"[id]\", \"rows[page]\"\n\t\t\treturn m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]);\n\t\t}\n\t\t\tret = $(expr, obj);\n\t\t\tif (returnObj) { return ret; }\n\t\t\t//$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid\n\t\t\treturn ret.length > 0 ? $(ret).text() : undefined;\n\t},\n\tcellWidth : function () {\n\t\tvar $testDiv = $(\"<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>\"),\n\t\ttestCell = $testDiv.appendTo(\"body\")\n\t\t\t.find(\"td\")\n\t\t\t.width();\n\t\t$testDiv.remove();\n\t\treturn Math.abs(testCell-5) > 0.1;\n\t},\n\tisLocalStorage : function () {\n\t\ttry {\n\t\t\treturn 'localStorage' in window && window.localStorage !== null;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t},\n\tgetRegional : function(inst, param, def_val) {\n\t\tvar ret;\n\t\tif(def_val !== undefined) {\n\t\t\treturn def_val;\n\t\t}\n\t\tif(inst.p && inst.p.regional && $.jgrid.regional) {\n\t\t\t\tret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param);\n\t\t}\n\t\tif(ret === undefined ) {\n\t\t\tret = $.jgrid.getAccessor( $.jgrid, param);\n\t\t}\n\t\treturn ret;\n\t},\n\tisMobile : function() {\n\t\ttry {\n\t\t\tif(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t} catch(e)\t{ \n\t\t\treturn false; \n\t\t}\t\n\t},\n\tcell_width : true,\n\tajaxOptions: {},\n\tfrom : function(source){\n\t\t// Original Author Hugo Bonacci\n\t\t// License MIT http://jlinq.codeplex.com/license\n\t\tvar $t = this,\n\t\tQueryObject=function(d,q){\n\t\tif(typeof d===\"string\"){\n\t\t\td=$.data(d);\n\t\t}\n\t\tvar self=this,\n\t\t_data=d,\n\t\t_usecase=true,\n\t\t_trim=false,\n\t\t_query=q,\n\t\t_stripNum = /[\\$,%]/g,\n\t\t_lastCommand=null,\n\t\t_lastField=null,\n\t\t_orDepth=0,\n\t\t_negate=false,\n\t\t_queuedOperator=\"\",\n\t\t_sorting=[],\n\t\t_useProperties=true;\n\t\tif(typeof d===\"object\"&&d.push) {\n\t\t\tif(d.length>0){\n\t\t\t\tif(typeof d[0]!==\"object\"){\n\t\t\t\t\t_useProperties=false;\n\t\t\t\t}else{\n\t\t\t\t\t_useProperties=true;\n\t\t\t\t}\n\t\t\t}\n\t\t}else{\n\t\t\tthrow \"data provides is not an array\";\n\t\t}\n\t\tthis._hasData=function(){\n\t\t\treturn _data===null?false:_data.length===0?false:true;\n\t\t};\n\t\tthis._getStr=function(s){\n\t\t\tvar phrase=[];\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\"jQuery.trim(\");\n\t\t\t}\n\t\t\tphrase.push(\"String(\"+s+\")\");\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\")\");\n\t\t\t}\n\t\t\tif(!_usecase){\n\t\t\t\tphrase.push(\".toLowerCase()\");\n\t\t\t}\n\t\t\treturn phrase.join(\"\");\n\t\t};\n\t\tthis._strComp=function(val){\n\t\t\tif(typeof val===\"string\"){\n\t\t\t\treturn\".toString()\";\n\t\t\t}\n\t\t\treturn\"\";\n\t\t};\n\t\tthis._group=function(f,u){\n\t\t\treturn({field:f.toString(),unique:u,items:[]});\n\t\t};\n\t\tthis._toStr=function(phrase){\n\t\t\tif(_trim){\n\t\t\t\tphrase=$.trim(phrase);\n\t\t\t}\n\t\t\tphrase=phrase.toString().replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"');\n\t\t\treturn _usecase ? phrase : phrase.toLowerCase();\n\t\t};\n\t\tthis._funcLoop=function(func){\n\t\t\tvar results=[];\n\t\t\t$.each(_data,function(i,v){\n\t\t\t\tresults.push(func(v));\n\t\t\t});\n\t\t\treturn results;\n\t\t};\n\t\tthis._append=function(s){\n\t\t\tvar i;\n\t\t\tif(_query===null){\n\t\t\t\t_query=\"\";\n\t\t\t} else {\n\t\t\t\t_query+=_queuedOperator === \"\" ? \" && \" :_queuedOperator;\n\t\t\t}\n\t\t\tfor (i=0;i<_orDepth;i++){\n\t\t\t\t_query+=\"(\";\n\t\t\t}\n\t\t\tif(_negate){\n\t\t\t\t_query+=\"!\";\n\t\t\t}\n\t\t\t_query+=\"(\"+s+\")\";\n\t\t\t_negate=false;\n\t\t\t_queuedOperator=\"\";\n\t\t\t_orDepth=0;\n\t\t};\n\t\tthis._setCommand=function(f,c){\n\t\t\t_lastCommand=f;\n\t\t\t_lastField=c;\n\t\t};\n\t\tthis._resetNegate=function(){\n\t\t\t_negate=false;\n\t\t};\n\t\tthis._repeatCommand=function(f,v){\n\t\t\tif(_lastCommand===null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\tif(f!==null&&v!==null){\n\t\t\t\treturn _lastCommand(f,v);\n\t\t\t}\n\t\t\tif(_lastField===null){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\tif(!_useProperties){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\treturn _lastCommand(_lastField,f);\n\t\t};\n\t\tthis._equals=function(a,b){\n\t\t\treturn(self._compare(a,b,1)===0);\n\t\t};\n\t\tthis._compare=function(a,b,d){\n\t\t\tvar toString = Object.prototype.toString;\n\t\t\tif( d === undefined) { d = 1; }\n\t\t\tif(a===undefined) { a = null; }\n\t\t\tif(b===undefined) { b = null; }\n\t\t\tif(a===null && b===null){\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(a===null&&b!==null){\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif(a!==null&&b===null){\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') {\n\t\t\t\tif (a < b) { return -d; }\n\t\t\t\tif (a > b) { return d; }\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(!_usecase && typeof a !== \"number\" && typeof b !== \"number\" ) {\n\t\t\t\ta=String(a);\n\t\t\t\tb=String(b);\n\t\t\t}\n\t\t\tif(a<b){return -d;}\n\t\t\tif(a>b){return d;}\n\t\t\treturn 0;\n\t\t};\n\t\tthis._performSort=function(){\n\t\t\tif(_sorting.length===0){return;}\n\t\t\t_data=self._doSort(_data,0);\n\t\t};\n\t\tthis._doSort=function(d,q){\n\t\t\tvar by=_sorting[q].by,\n\t\t\tdir=_sorting[q].dir,\n\t\t\ttype = _sorting[q].type,\n\t\t\tdfmt = _sorting[q].datefmt,\n\t\t\tsfunc = _sorting[q].sfunc;\n\t\t\tif(q===_sorting.length-1){\n\t\t\t\treturn self._getOrder(d, by, dir, type, dfmt, sfunc);\n\t\t\t}\n\t\t\tq++;\n\t\t\tvar values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted;\n\t\t\tfor(i=0;i<values.length;i++){\n\t\t\t\tsorted=self._doSort(values[i].items,q);\n\t\t\t\tfor(j=0;j<sorted.length;j++){\n\t\t\t\t\tresults.push(sorted[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis._getOrder=function(data,by,dir,type, dfmt, sfunc){\n\t\t\tvar sortData=[],_sortData=[], newDir = dir===\"a\" ? 1 : -1, i,ab,j,\n\t\t\tfindSortKey;\n\n\t\t\tif(type === undefined ) { type = \"text\"; }\n\t\t\tif (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\tvar key = parseFloat( String($cell).replace(_stripNum, ''));\n\t\t\t\t\treturn isNaN(key) ? Number.NEGATIVE_INFINITY : key;\n\t\t\t\t};\n\t\t\t} else if (type==='int' || type==='integer') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY;\n\t\t\t\t};\n\t\t\t} else if(type === 'date' || type === 'datetime') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $.jgrid.parseDate.call($t, dfmt, $cell).getTime();\n\t\t\t\t};\n\t\t\t} else if($.isFunction(type)) {\n\t\t\t\tfindSortKey = type;\n\t\t\t} else {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\t$cell = $cell ? $.trim(String($cell)) : \"\";\n\t\t\t\t\treturn _usecase ? $cell : $cell.toLowerCase();\n\t\t\t\t};\n\t\t\t}\n\t\t\t$.each(data,function(i,v){\n\t\t\t\tab = by!==\"\" ? $.jgrid.getAccessor(v,by) : v;\n\t\t\t\tif(ab === undefined) { ab = \"\"; }\n\t\t\t\tab = findSortKey(ab, v);\n\t\t\t\t_sortData.push({ 'vSort': ab,'index':i});\n\t\t\t});\n\t\t\tif($.isFunction(sfunc)) {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn sfunc.call(this,a.vSort, b.vSort, newDir, a, b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn self._compare(a.vSort, b.vSort,newDir);\n\t\t\t\t});\n\t\t\t}\n\t\t\tj=0;\n\t\t\tvar nrec= data.length;\n\t\t\t// overhead, but we do not change the original data.\n\t\t\twhile(j<nrec) {\n\t\t\t\ti = _sortData[j].index;\n\t\t\t\tsortData.push(data[i]);\n\t\t\t\tj++;\n\t\t\t}\n\t\t\treturn sortData;\n\t\t};\n\t\tthis._getGroup=function(data,by,dir,type, dfmt){\n\t\t\tvar results=[],\n\t\t\tgroup=null,\n\t\t\tlast=null, val;\n\t\t\t$.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){\n\t\t\t\tval = $.jgrid.getAccessor(v, by);\n\t\t\t\tif(val == null) { val = \"\"; }\n\t\t\t\tif(!self._equals(last,val)){\n\t\t\t\t\tlast=val;\n\t\t\t\t\tif(group !== null){\n\t\t\t\t\t\tresults.push(group);\n\t\t\t\t\t}\n\t\t\t\t\tgroup=self._group(by,val);\n\t\t\t\t}\n\t\t\t\tgroup.items.push(v);\n\t\t\t});\n\t\t\tif(group !== null){\n\t\t\t\tresults.push(group);\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis.ignoreCase=function(){\n\t\t\t_usecase=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.useCase=function(){\n\t\t\t_usecase=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.trim=function(){\n\t\t\t_trim=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.noTrim=function(){\n\t\t\t_trim=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.execute=function(){\n\t\t\tvar match=_query, results=[];\n\t\t\tif(match === null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\t$.each(_data,function(){\n\t\t\t\tif(eval(match)){results.push(this);}\n\t\t\t});\n\t\t\t_data=results;\n\t\t\treturn self;\n\t\t};\n\t\tthis.data=function(){\n\t\t\treturn _data;\n\t\t};\n\t\tthis.select=function(f){\n\t\t\tself._performSort();\n\t\t\tif(!self._hasData()){ return[]; }\n\t\t\tself.execute();\n\t\t\tif($.isFunction(f)){\n\t\t\t\tvar results=[];\n\t\t\t\t$.each(_data,function(i,v){\n\t\t\t\t\tresults.push(f(v));\n\t\t\t\t});\n\t\t\t\treturn results;\n\t\t\t}\n\t\t\treturn _data;\n\t\t};\n\t\tthis.hasMatch=function(){\n\t\t\tif(!self._hasData()) { return false; }\n\t\t\tself.execute();\n\t\t\treturn _data.length>0;\n\t\t};\n\t\tthis.andNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.and(f,v,x);\n\t\t};\n\t\tthis.orNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.or(f,v,x);\n\t\t};\n\t\tthis.not=function(f,v,x){\n\t\t\treturn self.andNot(f,v,x);\n\t\t};\n\t\tthis.and=function(f,v,x){\n\t\t\t_queuedOperator=\" && \";\n\t\t\tif(f===undefined){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.or=function(f,v,x){\n\t\t\t_queuedOperator=\" || \";\n\t\t\tif(f===undefined) { return self; }\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.orBegin=function(){\n\t\t\t_orDepth++;\n\t\t\treturn self;\n\t\t};\n\t\tthis.orEnd=function(){\n\t\t\tif (_query !== null){\n\t\t\t\t_query+=\")\";\n\t\t\t}\n\t\t\treturn self;\n\t\t};\n\t\tthis.isNot=function(f){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.is(f);\n\t\t};\n\t\tthis.is=function(f){\n\t\t\tself._append('this.'+f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis._compareValues=function(func,f,v,how,t){\n\t\t\tvar fld;\n\t\t\tif(_useProperties){\n\t\t\t\tfld='jQuery.jgrid.getAccessor(this,\\''+f+'\\')';\n\t\t\t}else{\n\t\t\t\tfld='this';\n\t\t\t}\n\t\t\tif(v===undefined) { v = null; }\n\t\t\t//var val=v===null?f:v,\n\t\t\tvar val =v,\n\t\t\tswst = t.stype === undefined ? \"text\" : t.stype;\n\t\t\tif(v !== null) {\n\t\t\tswitch(swst) {\n\t\t\t\tcase 'int':\n\t\t\t\tcase 'integer':\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseInt('+fld+',10)';\n\t\t\t\t\tval = 'parseInt('+val+',10)';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'float':\n\t\t\t\tcase 'number':\n\t\t\t\tcase 'numeric':\n\t\t\t\t\tval = String(val).replace(_stripNum, '');\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseFloat('+fld+')';\n\t\t\t\t\tval = 'parseFloat('+val+')';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':\n\t\t\t\tcase 'datetime':\n\t\t\t\t\tval = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime());\n\t\t\t\t\tfld = 'jQuery.jgrid.parseDate.call(jQuery(\"#'+$.jgrid.jqID($t.p.id)+'\")[0],\"'+t.srcfmt+'\",'+fld+').getTime()';\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tfld=self._getStr(fld);\n\t\t\t\t\tval=self._getStr('\"'+self._toStr(val)+'\"');\n\t\t\t}\n\t\t\t}\n\t\t\tself._append(fld+' '+how+' '+val);\n\t\t\tself._setCommand(func,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.equals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"==\",t);\n\t\t};\n\t\tthis.notEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"!==\",t);\n\t\t};\n\t\tthis.isNull = function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,null,\"===\",t);\n\t\t};\n\t\tthis.greater=function(f,v,t){\n\t\t\treturn self._compareValues(self.greater,f,v,\">\",t);\n\t\t};\n\t\tthis.less=function(f,v,t){\n\t\t\treturn self._compareValues(self.less,f,v,\"<\",t);\n\t\t};\n\t\tthis.greaterOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.greaterOrEquals,f,v,\">=\",t);\n\t\t};\n\t\tthis.lessOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.lessOrEquals,f,v,\"<=\",t);\n\t\t};\n\t\tthis.startsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length : val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(v)+'\"'));\n\t\t\t}else{\n\t\t\t\tif (v!=null) { length=_trim?$.trim(v.toString()).length:v.toString().length; }\n\t\t\t\tself._append(self._getStr('this')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(f)+'\"'));\n\t\t\t}\n\t\t\tself._setCommand(self.startsWith,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.endsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length:val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.length-'+length+','+length+') == \"'+self._toStr(v)+'\"');\n\t\t\t} else {\n\t\t\t\tself._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-\"'+self._toStr(f)+'\".length,\"'+self._toStr(f)+'\".length) == \"'+self._toStr(f)+'\"');\n\t\t\t}\n\t\t\tself._setCommand(self.endsWith,f);self._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.contains=function(f,v){\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.indexOf(\"'+self._toStr(v)+'\",0) > -1');\n\t\t\t}else{\n\t\t\t\tself._append(self._getStr('this')+'.indexOf(\"'+self._toStr(f)+'\",0) > -1');\n\t\t\t}\n\t\t\tself._setCommand(self.contains,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.groupBy=function(by,dir,type, datefmt){\n\t\t\tif(!self._hasData()){\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn self._getGroup(_data,by,dir,type, datefmt);\n\t\t};\n\t\tthis.orderBy=function(by,dir,stype, dfmt, sfunc){\n\t\t\tdir = dir == null ? \"a\" :$.trim(dir.toString().toLowerCase());\n\t\t\tif(stype == null) { stype = \"text\"; }\n\t\t\tif(dfmt == null) { dfmt = \"Y-m-d\"; }\n\t\t\tif(sfunc == null) { sfunc = false; }\n\t\t\tif(dir===\"desc\"||dir===\"descending\"){dir=\"d\";}\n\t\t\tif(dir===\"asc\"||dir===\"ascending\"){dir=\"a\";}\n\t\t\t_sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc});\n\t\t\treturn self;\n\t\t};\n\t\treturn self;\n\t\t};\n\treturn new QueryObject(source,null);\n\t},\n\tgetMethod: function (name) {\n        return this.getAccessor($.fn.jqGrid, name);\n\t},\n\textend : function(methods) {\n\t\t$.extend($.fn.jqGrid,methods);\n\t\tif (!this.no_legacy_api) {\n\t\t\t$.fn.extend(methods);\n\t\t}\n\t},\n\tclearBeforeUnload : function( jqGridId ) {\n\t\tvar $t = $(\"#\"+$.jgrid.jqID( jqGridId ))[0], grid;\n\t\tif(!$t.grid) { return;}\n\t\tgrid = $t.grid;\n\t\tif ($.isFunction(grid.emptyRows)) {\n\t\t\tgrid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone\n\t\t}\n\n\t\t$(document).off(\"mouseup.jqGrid\" + $t.p.id ); \n\t\t$(grid.hDiv).off(\"mousemove\"); // TODO add namespace\n\t\t$($t).off();\n\t\tvar i, l = grid.headers.length,\n\t\tremovevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData'];\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tgrid.headers[i].el = null;\n\t\t}\n\n\t\tfor( i in grid) {\n\t\t\tif( grid.hasOwnProperty(i)) {\n\t\t\t\tgrid[i] = null;\n\t\t\t}\n\t\t}\n\t\t// experimental \n\t\tfor( i in $t.p) {\n\t\t\tif($t.p.hasOwnProperty(i)) {\n\t\t\t\t$t.p[i] = $.isArray($t.p[i]) ? [] : null;\n\t\t\t}\n\t\t}\n\t\tl = removevents.length;\n\t\tfor(i = 0; i < l; i++) {\n\t\t\tif($t.hasOwnProperty(removevents[i])) {\n\t\t\t\t$t[removevents[i]] = null;\n\t\t\t\tdelete($t[removevents[i]]);\n\t\t\t}\n\t\t}\n\t},\n\tgridUnload : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\t\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tvar defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')};\n\t\tif ($t.p.pager) {\n\t\t\t$($t.p.pager).off().empty().removeClass(\"ui-state-default ui-jqgrid-pager ui-corner-bottom\");\n\t\t}\n\t\tvar newtable = document.createElement('table');\n\t\tnewtable.className = defgrid.cl;\n\t\tvar gid = $.jgrid.jqID($t.id);\n\t\t$(newtable).removeClass(\"ui-jqgrid-btable ui-common-table\").insertBefore(\"#gbox_\"+gid);\n\t\tif( $($t.p.pager).parents(\"#gbox_\"+gid).length === 1 ) {\n\t\t\t$($t.p.pager).insertBefore(\"#gbox_\"+gid);\n\t\t}\n\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t$(\"#gbox_\"+gid).remove();\n\t\t$(newtable).attr({id:defgrid.id});\n\t\t$(\"#alertmod_\"+$.jgrid.jqID(jqGridId)).remove();\n\t},\n\tgridDestroy : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tif ( $t.p.pager ) { // if not part of grid\n\t\t\t$($t.p.pager).remove();\n\t\t}\n\t\ttry {\n\t\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(jqGridId)).remove();\n\t\t} catch (_) {}\n\t},\n\tstyleUI : {\n\t\tjQueryUI : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-state-disabled\",\n\t\t\t\thighlight : \"ui-state-highlight\",\n\t\t\t\thover : \"ui-state-hover\",\n\t\t\t\tcornerall: \"ui-corner-all\",\n\t\t\t\tcornertop: \"ui-corner-top\",\n\t\t\t\tcornerbottom : \"ui-corner-bottom\",\n\t\t\t\thidden : \"ui-helper-hidden\",\n\t\t\t\ticon_base : \"ui-icon\",\n\t\t\t\toverlay : \"ui-widget-overlay\",\n\t\t\t\tactive : \"ui-state-active\",\n\t\t\t\terror : \"ui-state-error\",\n\t\t\t\tbutton : \"ui-state-default ui-corner-all\",\n\t\t\t\tcontent : \"ui-widget-content\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"ui-widget ui-widget-content ui-corner-all\", // entrie div  incl everthing\n\t\t\t\tviewBox : \"\", // view diw\n\t\t\t\theaderTable : \"\",\n\t\t\t\theaderBox : \"ui-state-default\",\n\t\t\t\trowTable : \"\",\n\t\t\t\trowBox : \"ui-widget-content\",\n\t\t\t\tfooterTable : \"\",\n\t\t\t\tfooterBox : \"ui-widget-content\",\n\t\t\t\theaderDiv : \"ui-state-default\",\n\t\t\t\tgridtitleBox : \"ui-widget-header ui-corner-top ui-helper-clearfix\",\n\t\t\t\tcustomtoolbarBox : \"ui-state-default\",\n\t\t\t\t//overlayBox: \"ui-widget-overlay\",\n\t\t\t\tloadingBox : \"ui-state-default ui-state-active\",\n\t\t\t\trownumBox :  \"ui-state-default\",\n\t\t\t\tscrollBox : \"ui-widget-content\",\n\t\t\t\tmultiBox : \"\",\n\t\t\t\tpagerBox : \"ui-state-default ui-corner-bottom\",\n\t\t\t\tpagerTable : \"\",\n\t\t\t\ttoppagerBox : \"ui-state-default\",\n\t\t\t\tpgInput : \"ui-corner-all\",\n\t\t\t\tpgSelectBox : \"ui-widget-content ui-corner-all\",\n\t\t\t\tpgButtonBox : \"ui-corner-all\",\n\t\t\t\ticon_first : \"ui-icon-seek-first\",\n\t\t\t\ticon_prev : \"ui-icon-seek-prev\",\n\t\t\t\ticon_next: \"ui-icon-seek-next\",\n\t\t\t\ticon_end: \"ui-icon-seek-end\",\n\t\t\t\ticon_asc : \"ui-icon-triangle-1-n\",\n\t\t\t\ticon_desc : \"ui-icon-triangle-1-s\",\n\t\t\t\ticon_caption_open : \"ui-icon-circle-triangle-n\",\n\t\t\t\ticon_caption_close : \"ui-icon-circle-triangle-s\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"ui-widget ui-widget-content ui-corner-all ui-dialog\",\n\t\t\t\theader : \"ui-widget-header ui-corner-all ui-helper-clearfix\",\n\t\t\t\tcontent :\"ui-widget-content\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"ui-icon-closethick\",\n\t\t\t\ticon_resizable : \"ui-icon-gripsmall-diagonal-se\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\"\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_save_nav : \"ui-icon-disk\",\n\t\t\t\ticon_cancel_nav : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_prev : \"ui-icon-triangle-1-w\",\n\t\t\t\ticon_next : \"ui-icon-triangle-1-e\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_close : \"ui-icon-close\",\n\t\t\t\ticon_del : \"ui-icon-scissors\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_del_nav : \"ui-icon-trash\",\n\t\t\t\ticon_search_nav : \"ui-icon-search\",\n\t\t\t\ticon_refresh_nav : \"ui-icon-refresh\",\n\t\t\t\ticon_view_nav : \"ui-icon-document\",\n\t\t\t\ticon_newbutton_nav : \"ui-icon-newwin\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'ui-icon-circlesmall-plus',\n\t\t\t\ticon_minus : 'ui-icon-circlesmall-minus'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'ui-widget ui-widget-content',\n\t\t\t\tsrSelect : 'ui-widget-content ui-corner-all',\n\t\t\t\tsrInput : 'ui-widget-content ui-corner-all',\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\ticon_search : 'ui-icon-search',\n\t\t\t\ticon_reset : 'ui-icon-arrowreturnthick-1-w',\n\t\t\t\ticon_query :'ui-icon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'ui-icon-plus',\n\t\t\t\ticon_minus : 'ui-icon-minus',\n\t\t\t\ticon_open : 'ui-icon-carat-1-sw'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'ui-icon-triangle-1-',\n\t\t\t\ticon_minus : 'ui-icon-triangle-1-s',\n\t\t\t\ticon_leaf : 'ui-icon-radio-off'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"ui-icon-pencil\",\n\t\t\t\ticon_add : \"ui-icon-plus\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\",\n\t\t\t\ticon_del : \"ui-icon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\tinput_checkbox : \"ui-widget ui-widget-content\",\n\t\t\t\tfilter_select: \"ui-widget-content ui-corner-all\",\n\t\t\t\tfilter_input : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_menu : \"ui-icon-comment\",\n\t\t\t\ticon_sort_asc : \"ui-icon-arrow-1-n\",\n\t\t\t\ticon_sort_desc : \"ui-icon-arrow-1-s\",\n\t\t\t\ticon_columns : \"ui-icon-extlink\",\n\t\t\t\ticon_filter : \"ui-icon-calculator\",\n\t\t\t\ticon_group : \"ui-icon-grip-solid-horizontal\",\n\t\t\t\ticon_freeze : \"ui-icon-grip-solid-vertical\",\n\t\t\t\ticon_move: \"ui-icon-arrow-4\"\n\t\t\t}\n\t\t},\n\t\tBootstrap : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-disabled\",\n\t\t\t\thighlight : \"success\",\n\t\t\t\thover : \"active\",\n\t\t\t\tcornerall: \"\", \n\t\t\t\tcornertop: \"\",\n\t\t\t\tcornerbottom : \"\",\n\t\t\t\thidden : \"\",\n\t\t\t\ticon_base : \"glyphicon\",\n\t\t\t\toverlay: \"ui-overlay\",\n\t\t\t\tactive : \"active\",\n\t\t\t\terror : \"bg-danger\",\n\t\t\t\tbutton : \"btn btn-default\",\n\t\t\t\tcontent : \"\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"\",\n\t\t\t\tviewBox : \"table-responsive\",\n\t\t\t\theaderTable : \"table table-bordered\",\n\t\t\t\theaderBox : \"\",\n\t\t\t\trowTable : \"table table-bordered\",\n\t\t\t\trowBox : \"\",\n\t\t\t\tfooterTable : \"table table-bordered\",\n\t\t\t\tfooterBox : \"\",\n\t\t\t\theaderDiv : \"\",\n\t\t\t\tgridtitleBox : \"\",\n\t\t\t\tcustomtoolbarBox : \"\",\n\t\t\t\t//overlayBox: \"ui-overlay\",\n\t\t\t\tloadingBox : \"row\",\n\t\t\t\trownumBox :  \"active\",\n\t\t\t\tscrollBox : \"\",\n\t\t\t\tmultiBox : \"checkbox\",\n\t\t\t\tpagerBox : \"\",\n\t\t\t\tpagerTable : \"table\",\n\t\t\t\ttoppagerBox : \"\",\n\t\t\t\tpgInput : \"form-control\",\n\t\t\t\tpgSelectBox : \"form-control\",\n\t\t\t\tpgButtonBox : \"\",\n\t\t\t\ticon_first : \"glyphicon-step-backward\",\n\t\t\t\ticon_prev : \"glyphicon-backward\",\n\t\t\t\ticon_next: \"glyphicon-forward\",\n\t\t\t\ticon_end: \"glyphicon-step-forward\",\n\t\t\t\ticon_asc : \"glyphicon-triangle-top\",\n\t\t\t\ticon_desc : \"glyphicon-triangle-bottom\",\n\t\t\t\ticon_caption_open : \"glyphicon-circle-arrow-up\",\n\t\t\t\ticon_caption_close : \"glyphicon-circle-arrow-down\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"modal-content\",\n\t\t\t\theader : \"modal-header\",\n\t\t\t\ttitle : \"modal-title\",\n\t\t\t\tcontent :\"modal-body\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_resizable : \"glyphicon-import\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : 'form-control'\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : 'form-control',\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_save_nav : \"glyphicon-save\",\n\t\t\t\ticon_cancel_nav : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"form-control\",\n\t\t\t\ticon_prev : \"glyphicon-step-backward\",\n\t\t\t\ticon_next : \"glyphicon-step-forward\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_del_nav : \"glyphicon-trash\",\n\t\t\t\ticon_search_nav : \"glyphicon-search\",\n\t\t\t\ticon_refresh_nav : \"glyphicon-refresh\",\n\t\t\t\ticon_view_nav : \"glyphicon-info-sign\",\n\t\t\t\ticon_newbutton_nav : \"glyphicon-new-window\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'table table-condensed',\n\t\t\t\tsrSelect : 'form-control',\n\t\t\t\tsrInput : 'form-control',\n\t\t\t\tmenu_widget : '',\n\t\t\t\ticon_search : 'glyphicon-search',\n\t\t\t\ticon_reset : 'glyphicon-refresh',\n\t\t\t\ticon_query :'glyphicon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_open : 'glyphicon-indent-left'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_leaf : 'glyphicon-unchecked'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"glyphicon-edit\",\n\t\t\t\ticon_add : \"glyphicon-plus\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : '',\n\t\t\t\tinput_checkbox : \"\",\n\t\t\t\tfilter_select: \"form-control\",\n\t\t\t\tfilter_input : \"form-control\",\n\t\t\t\ticon_menu : \"glyphicon-menu-hamburger\",\n\t\t\t\ticon_sort_asc : \"glyphicon-sort-by-alphabet\",\n\t\t\t\ticon_sort_desc : \"glyphicon-sort-by-alphabet-alt\",\n\t\t\t\ticon_columns : \"glyphicon-list-alt\",\n\t\t\t\ticon_filter : \"glyphicon-filter\",\n\t\t\t\ticon_group : \"glyphicon-align-left\",\n\t\t\t\ticon_freeze : \"glyphicon-object-align-horizontal\",\n\t\t\t\ticon_move: \"glyphicon-move\"\n\t\t\t}\n\t\t}\n\t}\n});\n\n$.fn.jqGrid = function( pin ) {\n\tif (typeof pin === 'string') {\n\t\tvar fn = $.jgrid.getMethod(pin);\n\t\tif (!fn) {\n\t\t\tthrow (\"jqGrid - No such method: \" + pin);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\treturn this.each( function() {\n\t\tif(this.grid) {return;}\n\t\tvar localData;\n\t\tif (pin != null && pin.data !== undefined) {\n\t\t\tlocalData = pin.data;\n\t\t\tpin.data = [];\n\t\t}\n\n\t\tvar p = $.extend(true,{\n\t\t\turl: \"\",\n\t\t\theight: 150,\n\t\t\tpage: 1,\n\t\t\trowNum: 20,\n\t\t\trowTotal : null,\n\t\t\trecords: 0,\n\t\t\tpager: \"\",\n\t\t\tpgbuttons: true,\n\t\t\tpginput: true,\n\t\t\tcolModel: [],\n\t\t\trowList: [],\n\t\t\tcolNames: [],\n\t\t\tsortorder: \"asc\",\n\t\t\tsortname: \"\",\n\t\t\tdatatype: \"xml\",\n\t\t\tmtype: \"GET\",\n\t\t\taltRows: false,\n\t\t\tselarrrow: [],\n\t\t\tsavedRow: [],\n\t\t\tshrinkToFit: true,\n\t\t\txmlReader: {},\n\t\t\tjsonReader: {},\n\t\t\tsubGrid: false,\n\t\t\tsubGridModel :[],\n\t\t\treccount: 0,\n\t\t\tlastpage: 0,\n\t\t\tlastsort: 0,\n\t\t\tselrow: null,\n\t\t\tbeforeSelectRow: null,\n\t\t\tonSelectRow: null,\n\t\t\tonSortCol: null,\n\t\t\tondblClickRow: null,\n\t\t\tonRightClickRow: null,\n\t\t\tonPaging: null,\n\t\t\tonSelectAll: null,\n\t\t\tonInitGrid : null,\n\t\t\tloadComplete: null,\n\t\t\tgridComplete: null,\n\t\t\tloadError: null,\n\t\t\tloadBeforeSend: null,\n\t\t\tafterInsertRow: null,\n\t\t\tbeforeRequest: null,\n\t\t\tbeforeProcessing : null,\n\t\t\tonHeaderClick: null,\n\t\t\tviewrecords: false,\n\t\t\tloadonce: false,\n\t\t\tmultiselect: false,\n\t\t\tmultikey: false,\n\t\t\tediturl: null,\n\t\t\tsearch: false,\n\t\t\tcaption: \"\",\n\t\t\thidegrid: true,\n\t\t\thiddengrid: false,\n\t\t\tpostData: {},\n\t\t\tuserData: {},\n\t\t\ttreeGrid : false,\n\t\t\ttreeGridModel : 'nested',\n\t\t\ttreeReader : {},\n\t\t\ttreeANode : -1,\n\t\t\tExpandColumn: null,\n\t\t\ttree_root_level : 0,\n\t\t\tprmNames: {\n\t\t\t\tpage:\"page\",\n\t\t\t\trows:\"rows\", \n\t\t\t\tsort: \"sidx\",\n\t\t\t\torder: \"sord\", \n\t\t\t\tsearch:\"_search\", \n\t\t\t\tnd:\"nd\", \n\t\t\t\tid:\"id\",\n\t\t\t\toper:\"oper\",\n\t\t\t\teditoper:\"edit\",\n\t\t\t\taddoper:\"add\",\n\t\t\t\tdeloper:\"del\", \n\t\t\t\tsubgridid:\"id\", \n\t\t\t\tnpage: null, \n\t\t\t\ttotalrows:\"totalrows\"\n\t\t\t},\n\t\t\tforceFit : false,\n\t\t\tgridstate : \"visible\",\n\t\t\tcellEdit: false,\n\t\t\tcellsubmit: \"remote\",\n\t\t\tnv:0,\n\t\t\tloadui: \"enable\",\n\t\t\ttoolbar: [false,\"\"],\n\t\t\tscroll: false,\n\t\t\tmultiboxonly : false,\n\t\t\tdeselectAfterSort : true,\n\t\t\tscrollrows : false,\n\t\t\tautowidth: false,\n\t\t\tscrollOffset : 18,\n\t\t\tcellLayout: 5,\n\t\t\tsubGridWidth: 20,\n\t\t\tmultiselectWidth: 30,\n\t\t\tgridview: true,\n\t\t\trownumWidth: 35,\n\t\t\trownumbers : false,\n\t\t\tpagerpos: 'center',\n\t\t\trecordpos: 'right',\n\t\t\tfooterrow : false,\n\t\t\tuserDataOnFooter : false,\n\t\t\thoverrows : true,\n\t\t\taltclass : 'ui-priority-secondary',\n\t\t\tviewsortcols : [false,'vertical',true],\n\t\t\tresizeclass : '',\n\t\t\tautoencode : false,\n\t\t\tremapColumns : [],\n\t\t\tajaxGridOptions :{},\n\t\t\tdirection : \"ltr\",\n\t\t\ttoppager: false,\n\t\t\theadertitles: false,\n\t\t\tscrollTimeout: 40,\n\t\t\tdata : [],\n\t\t\t_index : {},\n\t\t\tgrouping : false,\n\t\t\tgroupingView : {\n\t\t\t\tgroupField:[],\n\t\t\t\tgroupOrder:[], \n\t\t\t\tgroupText:[],\n\t\t\t\tgroupColumnShow:[],\n\t\t\t\tgroupSummary:[], \n\t\t\t\tshowSummaryOnHide: false, \n\t\t\t\tsortitems:[], \n\t\t\t\tsortnames:[], \n\t\t\t\tsummary:[],\n\t\t\t\tsummaryval:[], \n\t\t\t\tplusicon: '',  \n\t\t\t\tminusicon: '', \n\t\t\t\tdisplayField: [], \n\t\t\t\tgroupSummaryPos:[], \n\t\t\t\tformatDisplayField : [], \n\t\t\t\t_locgr : false\n\t\t\t},\n\t\t\tignoreCase : true,\n\t\t\tcmTemplate : {},\n\t\t\tidPrefix : \"\",\n\t\t\tmultiSort :  false,\n\t\t\tminColWidth : 33,\n\t\t\tscrollPopUp : false,\n\t\t\tscrollTopOffset: 0, // pixel\n\t\t\tscrollLeftOffset : \"100%\", //percent\n\t\t\tstoreNavOptions: false,\n\t\t\tregional :  \"en\",\n\t\t\tstyleUI : \"jQueryUI\",\n\t\t\tresponsive : false,\n\t\t\trestoreCellonFail : true,\n\t\t\tcolFilters : {},\n\t\t\tcolMenu : false\n\t\t}, $.jgrid.defaults , pin );\n\t\tif (localData !== undefined) {\n\t\t\tp.data = localData;\n\t\t\tpin.data = localData;\n\t\t}\n\t\tvar ts= this, grid={\n\t\t\theaders:[],\n\t\t\tcols:[],\n\t\t\tfooters: [],\n\t\t\tdragStart: function(i,x,y) {\n\t\t\t\tvar gridLeftPos = $(this.bDiv).offset().left;\n\t\t\t\tthis.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos };\n\t\t\t\tthis.hDiv.style.cursor = \"col-resize\";\n\t\t\t\tthis.curGbox = $(\"#rs_m\"+$.jgrid.jqID(p.id),\"#gbox_\"+$.jgrid.jqID(p.id));\n\t\t\t\tthis.curGbox.css({display:\"block\",left:x.pageX-gridLeftPos,top:y[1],height:y[2]});\n\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStart\", [x, i]);\n\t\t\t\tif($.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); }\n\t\t\t\tdocument.onselectstart=function(){return false;};\n\t\t\t},\n\t\t\tdragMove: function(x) {\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar diff = x.pageX-this.resizing.startX,\n\t\t\t\t\th = this.headers[this.resizing.idx],\n\t\t\t\t\tnewWidth = p.direction === \"ltr\" ? h.width + diff : h.width - diff, hn, nWn;\n\t\t\t\t\tif(newWidth > 33) {\n\t\t\t\t\t\tthis.curGbox.css({left:this.resizing.sOL+diff});\n\t\t\t\t\t\tif(p.forceFit===true ){\n\t\t\t\t\t\t\thn = this.headers[this.resizing.idx+p.nv];\n\t\t\t\t\t\t\tnWn = p.direction === \"ltr\" ? hn.width - diff : hn.width + diff;\n\t\t\t\t\t\t\tif(nWn > p.minColWidth ) {\n\t\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t\t\thn.newWidth = nWn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.newWidth = p.direction === \"ltr\" ? p.tblwidth+diff : p.tblwidth-diff;\n\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdragEnd: function( events ) {\n\t\t\t\tthis.hDiv.style.cursor = \"default\";\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar idx = this.resizing.idx,\n\t\t\t\t\tnw = this.headers[idx].newWidth || this.headers[idx].width;\n\t\t\t\t\tnw = parseInt(nw,10);\n\t\t\t\t\tthis.resizing = false;\n\t\t\t\t\t$(\"#rs_m\"+$.jgrid.jqID(p.id)).css(\"display\",\"none\");\n\t\t\t\t\tp.colModel[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].el.style.width = nw + \"px\";\n\t\t\t\t\tthis.cols[idx].style.width = nw+\"px\";\n\t\t\t\t\tif(this.footers.length>0) {this.footers[idx].style.width = nw+\"px\";}\n\t\t\t\t\tif(p.forceFit===true){\n\t\t\t\t\t\tnw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;\n\t\t\t\t\t\tthis.headers[idx+p.nv].width = nw;\n\t\t\t\t\t\tthis.headers[idx+p.nv].el.style.width = nw + \"px\";\n\t\t\t\t\t\tthis.cols[idx+p.nv].style.width = nw+\"px\";\n\t\t\t\t\t\tif(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+\"px\";}\n\t\t\t\t\t\tp.colModel[idx+p.nv].width = nw;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.tblwidth = this.newWidth || p.tblwidth;\n\t\t\t\t\t\t$('table:first',this.bDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t$('table:first',this.hDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\tif(p.footerrow) {\n\t\t\t\t\t\t\t$('table:first',this.sDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t\tthis.sDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(events) {\n\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStop\", [nw, idx]);\n\t\t\t\t\t\tif($.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.curGbox = null;\n\t\t\t\tdocument.onselectstart=function(){return true;};\n\t\t\t},\n\t\t\tpopulateVisible: function() {\n\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\tgrid.timer = null;\n\t\t\t\tvar dh = $(grid.bDiv).height();\n\t\t\t\tif (!dh) { return; }\n\t\t\t\tvar table = $(\"table:first\", grid.bDiv);\n\t\t\t\tvar rows, rh;\n\t\t\t\tif(table[0].rows.length) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\trows = table[0].rows[1];\n\t\t\t\t\t\trh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight;\n\t\t\t\t\t} catch (pv) {\n\t\t\t\t\t\trh = grid.prevRowHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!rh) { return; }\n\t\t\t\tgrid.prevRowHeight = rh;\n\t\t\t\tvar rn = p.rowNum;\n\t\t\t\tvar scrollTop = grid.scrollTop = grid.bDiv.scrollTop;\n\t\t\t\tvar ttop = Math.round(table.position().top) - scrollTop;\n\t\t\t\tvar tbot = ttop + table.height();\n\t\t\t\tvar div = rh * rn;\n\t\t\t\tvar page, npage, empty;\n\t\t\t\tif ( tbot < dh && ttop <= 0 &&\n\t\t\t\t\t(p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage))\n\t\t\t\t{\n\t\t\t\t\tnpage = parseInt((dh - tbot + div - 1) / div,10) || 1;\n\t\t\t\t\tif (tbot >= 0 || npage < 2 || p.scroll === true) {\n\t\t\t\t\t\tpage = ( Math.round((tbot + scrollTop) / div) || 0) + 1;\n\t\t\t\t\t\tttop = -1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tttop = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ttop > 0) {\n\t\t\t\t\tpage = ( parseInt(scrollTop / div,10) || 0 ) + 1;\n\t\t\t\t\tnpage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page;\n\t\t\t\t\tempty = true;\n\t\t\t\t}\n\t\t\t\tif (npage) {\n\t\t\t\t\tif (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (grid.hDiv.loading) {\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.page = page;\n\t\t\t\t\t\tif (empty) {\n\t\t\t\t\t\t\tgrid.selectionPreserver(table[0]);\n\t\t\t\t\t\t\tgrid.emptyRows.call(table[0], false, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgrid.populate(npage);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.scrollPopUp && p.lastpage != null) {\n\t\t\t\t\t\t$(\"#scroll_g\"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", p.pgtext) , p.page, p.lastpage)).css({ \"top\": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +\"px\", \"left\" : p.scrollLeftOffset});\n\t\t\t\t\t\t$(this).mouseout(function(){ \n\t\t\t\t\t\t\t$(\"#scroll_g\"+p.id).hide();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tscrollGrid: function( e ) {\n\t\t\t\tif(p.scroll) {\n\t\t\t\t\tvar scrollTop = grid.bDiv.scrollTop;\n\t\t\t\t\tif(grid.scrollTop === undefined) { grid.scrollTop = 0; }\n\t\t\t\t\tif (scrollTop !== grid.scrollTop) {\n\t\t\t\t\t\tgrid.scrollTop = scrollTop;\n\t\t\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\tif(p.footerrow) {\n\t\t\t\t\tgrid.sDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\t}\n\t\t\t\tif(p.frozenColumns) {\n\t\t\t\t\t$(grid.fbDiv).scrollTop( grid.bDiv.scrollTop );\n\t\t\t\t}\n\t\t\t\tif( e ) { e.stopPropagation(); }\n\t\t\t},\n\t\t\tselectionPreserver : function(ts) {\n\t\t\t\tvar p = ts.p,\n\t\t\t\tsr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null,\n\t\t\t\tleft = ts.grid.bDiv.scrollLeft,\n\t\t\t\trestoreSelection = function() {\n\t\t\t\t\tvar i;\n\t\t\t\t\tp.selrow = null;\n\t\t\t\t\tp.selarrrow = [];\n\t\t\t\t\tif(p.multiselect && sra && sra.length>0) {\n\t\t\t\t\t\tfor(i=0;i<sra.length;i++){\n\t\t\t\t\t\t\tif (sra[i] !== sr) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sra[i],false, null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sr,false,null);\n\t\t\t\t\t}\n\t\t\t\t\tts.grid.bDiv.scrollLeft = left;\n\t\t\t\t\t$(ts).off('.selectionPreserver', restoreSelection);\n\t\t\t\t};\n\t\t\t\t$(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection);\t\t\t\t\n\t\t\t}\n\t\t};\n\t\tif(this.tagName.toUpperCase() !== 'TABLE' || this.id == null) {\n\t\t\talert(\"Element is not a table or has no id!\");\n\t\t\treturn;\n\t\t}\n\t\tif(document.documentMode !== undefined ) { // IE only\n\t\t\tif(document.documentMode <= 5) {\n\t\t\t\talert(\"Grid can not be used in this ('quirks') mode!\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tvar i =0, lr, lk, dir;\n\t\tfor( lk in $.jgrid.regional ){\n\t\t\tif($.jgrid.regional.hasOwnProperty(lk)) {\n\t\t\t\tif(i===0) { lr = lk; }\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\t\tif(i === 1 && lr !== p.regional) {\n\t\t\tp.regional = lr;\n\t\t}\n\t\t$(this).empty().attr(\"tabindex\",\"0\");\n\t\tthis.p = p ;\n\t\tthis.p.useProp = !!$.fn.prop;\n\t\tif(this.p.colNames.length === 0) {\n\t\t\tfor (i=0;i<this.p.colModel.length;i++){\n\t\t\t\tthis.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tif( this.p.colNames.length !== this.p.colModel.length ) {\n\t\t\talert($.jgrid.getRegional(this,\"errors.model\"));\n\t\t\treturn;\n\t\t}\n\t\tvar getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\tstylemodule = ts.p.styleUI + \".common\",\n\t\tdisabled = getstyle(stylemodule,'disabled', true),\n\t\thighlight = getstyle(stylemodule,'highlight', true),\n\t\thover = getstyle(stylemodule,'hover', true),\n\t\tcornerall = getstyle(stylemodule,'cornerall', true),\n\t\ticonbase = getstyle(stylemodule,'icon_base', true),\n\t\tcolmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,\n\t\tisMSIE = $.jgrid.msie(),\n\t\tgv, sortarr = [], sortord = [], sotmp=[];\n\t\tstylemodule = ts.p.styleUI + \".base\";\n\t\tgv = $(\"<div \"+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+\" role='grid'></div>\");\n\t\tts.p.direction = $.trim(ts.p.direction.toLowerCase());\n\t\tts.p._ald = false;\n\t\tif($.inArray(ts.p.direction,[\"ltr\",\"rtl\"]) === -1) { ts.p.direction = \"ltr\"; }\n\t\tdir = ts.p.direction;\n\t\t\n\t\t$(gv).insertBefore(this);\n\t\t$(this).appendTo(gv);\n\t\n\t\tvar eg = $(\"<div \"+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +\"></div>\");\n\t\t$(eg).attr({\"id\" : \"gbox_\"+this.id,\"dir\":dir}).insertBefore(gv);\n\t\t$(gv).attr(\"id\",\"gview_\"+this.id).appendTo(eg);\n\t\t$(\"<div \"+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ \" id='lui_\"+this.id+\"'></div>\").insertBefore(gv);\n\t\t$(\"<div \"+getstyle(stylemodule,'loadingBox', false, 'loading')+\" id='load_\"+this.id+\"'>\"+$.jgrid.getRegional(ts, \"defaults.loadtext\", this.p.loadtext)+\"</div>\").insertBefore(gv);\n\t\t\n\t\t$(this).attr({role:\"presentation\",\"aria-multiselectable\":!!this.p.multiselect,\"aria-labelledby\":\"gbox_\"+this.id});\n\t\t\n\t\tvar sortkeys = [\"shiftKey\",\"altKey\",\"ctrlKey\"],\n\t\tintNum = function(val,defval) {\n\t\t\tval = parseInt(val,10);\n\t\t\tif (isNaN(val)) { return defval || 0;}\n\t\t\treturn val;\n\t\t},\n\t\tformatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){\n\t\t\tvar cm = ts.p.colModel[pos], cellAttrFunc,\n\t\t\tral = cm.align, result=\"style=\\\"\", clas = cm.classes, nm = cm.name, celp, acp=[];\n\t\t\tif(ral) { result += \"text-align:\"+ral+\";\"; }\n\t\t\tif(cm.hidden===true) { result += \"display:none;\"; }\n\t\t\tif(rowInd===0) {\n\t\t\t\tresult += \"width: \"+grid.headers[pos].width+\"px;\";\n\t\t\t} else if ($.isFunction(cm.cellattr) || (typeof cm.cellattr === \"string\" && $.jgrid.cellattr != null && $.isFunction($.jgrid.cellattr[cm.cellattr]))) {\n\t\t\t\tcellAttrFunc = $.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr];\n\t\t\t\tcelp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata);\n\t\t\t\tif(celp && typeof celp === \"string\") {\n\t\t\t\t\tcelp = celp.replace(/style/i,'style').replace(/title/i,'title');\n\t\t\t\t\tif(celp.indexOf('title') > -1) { cm.title=false;}\n\t\t\t\t\tif(celp.indexOf('class') > -1) { clas = undefined;}\n\t\t\t\t\tacp = celp.replace(/\\-style/g,'-sti').split(/style/);\n\t\t\t\t\tif(acp.length === 2 ) {\n\t\t\t\t\t\tacp[1] =  $.trim(acp[1].replace(/\\-sti/g,'-style').replace(\"=\",\"\"));\n\t\t\t\t\t\tif(acp[1].indexOf(\"'\") === 0 || acp[1].indexOf('\"') === 0) {\n\t\t\t\t\t\t\tacp[1] = acp[1].substring(1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult += acp[1].replace(/'/gi,'\"');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult += \"\\\"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!acp.length) { acp[0] = \"\"; result += \"\\\"\";}\n\t\t\tresult += (clas !== undefined ? (\" class=\\\"\"+clas+\"\\\"\") :\"\") + ((cm.title && tv) ? (\" title=\\\"\"+$.jgrid.stripHtml(tv)+\"\\\"\") :\"\");\n\t\t\tresult += \" aria-describedby=\\\"\"+ts.p.id+\"_\"+nm+\"\\\"\";\n\t\t\treturn result + acp[0];\n\t\t},\n\t\tcellVal =  function (val) {\n\t\t\treturn val == null || val === \"\" ? \"&#160;\" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val));\n\t\t},\n\t\tformatter = function (rowId, cellval , colpos, rwdat, _act){\n\t\t\tvar cm = ts.p.colModel[colpos],v;\n\t\t\tif(cm.formatter !== undefined) {\n\t\t\t\trowId = String(ts.p.idPrefix) !== \"\" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId;\n\t\t\t\tvar opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI };\n\t\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\t\tv = cm.formatter.call(ts,cellval,opts,rwdat,_act);\n\t\t\t\t} else if($.fmatter){\n\t\t\t\t\tv = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act);\n\t\t\t\t} else {\n\t\t\t\t\tv = cellVal(cellval);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv = cellVal(cellval);\n\t\t\t}\n\t\t\treturn v;\n\t\t},\n\t\taddCell = function(rowId,cell,pos,irow, srvr, rdata) {\n\t\t\tvar v,prp;\n\t\t\tv = formatter(rowId,cell,pos,srvr,'add');\n\t\t\tprp = formatCol( pos,irow, v, srvr, rowId, rdata);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddMulti = function(rowid, pos, irow, checked, uiclass){\n\t\t\tvar\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\" \"+uiclass+\" name=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\"\" + (checked ? \"checked=\\\"checked\\\"\" : \"\")+\"/>\",\n\t\t\tprp = formatCol( pos,irow,'',null, rowid, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddRowNum = function (pos, irow, pG, rN, uiclass ) {\n\t\t\tvar v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,\n\t\t\tprp = formatCol( pos,irow,v, null, irow, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+uiclass+\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\treader = function (datatype) {\n\t\t\tvar field, f=[], j=0, i;\n\t\t\tfor(i =0; i<ts.p.colModel.length; i++){\n\t\t\t\tfield = ts.p.colModel[i];\n\t\t\t\tif (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {\n\t\t\t\t\tf[j]= datatype === \"local\" ?\n\t\t\t\t\tfield.name :\n\t\t\t\t\t( (datatype===\"xml\" || datatype === \"xmlstring\") ? field.xmlmap || field.name : field.jsonmap || field.name );\n\t\t\t\t\tif(ts.p.keyName !== false && field.key===true ) {\n\t\t\t\t\t\tts.p.keyName = f[j];\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn f;\n\t\t},\n\t\torderedCols = function (offset) {\n\t\t\tvar order = ts.p.remapColumns;\n\t\t\tif (!order || !order.length) {\n\t\t\t\torder = $.map(ts.p.colModel, function(v,i) { return i; });\n\t\t\t}\n\t\t\tif (offset) {\n\t\t\t\torder = $.map(order, function(v) { return v<offset?null:v-offset; });\n\t\t\t}\n\t\t\treturn order;\n\t\t},\n\t\temptyRows = function (scroll, locdata) {\n\t\t\tvar firstrow;\n\t\t\tif (this.p.deepempty) {\n\t\t\t\t$(this.rows).slice(1).remove();\n\t\t\t} else {\n\t\t\t\tfirstrow = this.rows.length > 0 ? this.rows[0] : null;\n\t\t\t\t$(this.firstChild).empty().append(firstrow);\n\t\t\t}\n\t\t\tif (scroll && this.p.scroll) {\n\t\t\t\t$(this.grid.bDiv.firstChild).css({height: \"auto\"});\n\t\t\t\t$(this.grid.bDiv.firstChild.firstChild).css({height: \"0px\", display: \"none\"});\n\t\t\t\tif (this.grid.bDiv.scrollTop !== 0) {\n\t\t\t\t\tthis.grid.bDiv.scrollTop = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(locdata === true && this.p.treeGrid && !this.p.loadonce ) {\n\t\t\t\tthis.p.data = []; this.p._index = {};\n\t\t\t}\n\t\t},\n\t\tnormalizeData = function() {\n\t\t\tvar p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd,\n\t\t\tlocalReader = p.localReader,\n\t\t\tcolModel = p.colModel,\n\t\t\tcellName = localReader.cell,\n\t\t\tiOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0),\n\t\t\tbr = p.scroll ? $.jgrid.randId() : 1,\n\t\t\tarrayReader, objectReader, rowReader;\n\n\t\t\tif (p.datatype !== \"local\" || localReader.repeatitems !== true) {\n\t\t\t\treturn; // nothing to do\n\t\t\t}\n\n\t\t\tarrayReader = orderedCols(iOffset);\n\t\t\tobjectReader = reader(\"local\");\n\t\t\t// read ALL input items and convert items to be read by\n\t\t\t// $.jgrid.getAccessor with column name as the second parameter\n\t\t\tidn = p.keyIndex === false ?\n\t\t\t\t($.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) :\n\t\t\t\tp.keyIndex; \n\t\t\tfor (i = 0; i < dataLength; i++) {\n\t\t\t\tcur = data[i];\n\t\t\t\t// read id in the same way like addJSONData do\n\t\t\t\t// probably it would be better to start with \"if (cellName) {...}\"\n\t\t\t\t// but the goal of the current implementation was just have THE SAME\n\t\t\t\t// id values like in addJSONData ...\n\t\t\t\tidr = $.jgrid.getAccessor(cur, idn);\n\t\t\t\tif (idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && colModel[idn + iOffset] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name);\n\t\t\t\t\t}\n\t\t\t\t\tif (idr === undefined) {\n\t\t\t\t\t\tidr = br + i;\n\t\t\t\t\t\tif (cellName) {\n\t\t\t\t\t\t\tccur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\tccur = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trd = { };\n\t\t\t\trd[localReader.id] = idr;\n\t\t\t\tif (cellName) {\n\t\t\t\t\tcur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t}\n\t\t\t\trowReader = $.isArray(cur) ? arrayReader : objectReader;\n\t\t\t\tfor (j = 0; j < rowReader.length; j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur, rowReader[j]);\n\t\t\t\t\trd[colModel[j + iOffset].name] = v;\n\t\t\t\t}\n\t\t\t\t$.extend(true, data[i], rd);\n\t\t\t}\n\t\t},\n\t\trefreshIndex = function() {\n\t\t\tvar datalen = ts.p.data.length, idname, i, val;\n\n\t\t\tif(ts.p.keyName === false || ts.p.loadonce === true) {\n\t\t\t\tidname = ts.p.localReader.id;\n\t\t\t} else {\n\t\t\t\tidname = ts.p.keyName;\n\t\t\t}\n\t\t\tts.p._index = [];\n\t\t\tfor(i =0;i < datalen; i++) {\n\t\t\t\tval = $.jgrid.getAccessor(ts.p.data[i],idname);\n\t\t\t\tif (val === undefined) { val=String(i+1); }\n\t\t\t\tts.p._index[val] = i;\n\t\t\t}\n\t\t},\n\t\tconstructTr = function(id, hide, classes, rd, cur ) {\n\t\t\tvar tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '',\n\t\t\t\t//classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''),\n\t\t\t\trowAttrObj = $(ts).triggerHandler(\"jqGridRowAttr\", [rd, cur, id]);\n\t\t\tif( typeof rowAttrObj !== \"object\" ) {\n\t\t\t\trowAttrObj = $.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) :\n\t\t\t\t\t(typeof ts.p.rowattr === \"string\" && $.jgrid.rowattr != null && $.isFunction($.jgrid.rowattr[ts.p.rowattr]) ?\n\t\t\t\t\t$.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {});\n\t\t\t}\n\t\t\tif(!$.isEmptyObject( rowAttrObj )) {\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"id\")) {\n\t\t\t\t\tid = rowAttrObj.id;\n\t\t\t\t\tdelete rowAttrObj.id;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"tabindex\")) {\n\t\t\t\t\ttabindex = rowAttrObj.tabindex;\n\t\t\t\t\tdelete rowAttrObj.tabindex;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"style\")) {\n\t\t\t\t\tstyle += rowAttrObj.style;\n\t\t\t\t\tdelete rowAttrObj.style;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"class\")) {\n\t\t\t\t\tclasses += ' ' + rowAttrObj['class'];\n\t\t\t\t\tdelete rowAttrObj['class'];\n\t\t\t\t}\n\t\t\t\t// dot't allow to change role attribute\n\t\t\t\ttry { delete rowAttrObj.role; } catch(ra){}\n\t\t\t\tfor (attrName in rowAttrObj) {\n\t\t\t\t\tif (rowAttrObj.hasOwnProperty(attrName)) {\n\t\t\t\t\t\trestAttr += ' ' + attrName + '=' + rowAttrObj[attrName];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '<tr role=\"row\" id=\"' + id + '\" tabindex=\"' + tabindex + '\" class=\"' + classes + '\"' +\n\t\t\t\t(style === '' ? '' : ' style=\"' + style + '\"') + restAttr + '>';\n\t\t},\n\t\taddXmlData = function (xml, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date(),\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"xmlstring\",\n\t\t\txmlid = \"_id_\", xmlRd = ts.p.xmlReader,\n\t\t\tfrd = ts.p.datatype === \"local\" ? \"local\" : \"xml\";\n\t\t\tif(locdata) {\n\t\t\t\tts.p.data = [];\n\t\t\t\tts.p._index = {};\n\t\t\t\tts.p.localReader.id = xmlid;\n\t\t\t}\n\t\t\tts.p.reccount = 0;\n\t\t\tif($.isXMLDoc(xml)) {\n\t\t\t\tif(ts.p.treeANode===-1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\t\t\tvar self= $(ts), i,fpos,ir=0,v,gi=ts.p.multiselect===true?1:0,si=0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,idn, getId,f=[],F,rd ={}, \n\t\t\t\t\txmlr,rid, rowData=[], cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tif(ts.p.subGrid===true) {\n\t\t\t\tsi = 1;\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif(!xmlRd.repeatitems) {f = reader(frd);}\n\t\t\tif( ts.p.keyName===false) {\n\t\t\t\tidn = $.isFunction( xmlRd.id ) ?  xmlRd.id.call(ts, xml) : xmlRd.id;\n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tif( String(idn).indexOf(\"[\") === -1 ) {\n\t\t\t\tif (f.length) {\n\t\t\t\t\tgetId = function( trow, k) {return $(idn,trow).text() || k;};\n\t\t\t\t} else {\n\t\t\t\t\tgetId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;};\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tgetId = function( trow, k) {return trow.getAttribute(idn.replace(/[\\[\\]]/g,\"\")) || k;};\n\t\t\t}\n\t\t\tts.p.userData = {};\n\t\t\tts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records));\n\t\t\tif($.isFunction(xmlRd.userdata)) {\n\t\t\t\tts.p.userData = xmlRd.userdata.call(ts, xml) || {};\n\t\t\t} else {\n\t\t\t\t$.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute(\"name\")]= $(this).text();});\n\t\t\t}\n\t\t\tvar gxml = $.jgrid.getXmlData( xml, xmlRd.root, true);\n\t\t\tgxml = $.jgrid.getXmlData( gxml, xmlRd.row, true);\n\t\t\tif (!gxml) { gxml = []; }\n\t\t\tvar gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1, altr,\n\t\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\");\n\t\t\tif (gl > 0 &&  ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tif(gxml && gl){\n\t\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), hiderow=false, groupingPrepare,\n\t\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\t\tif(ts.p.grouping)  {\n\t\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t\t}\n\t\t\t\twhile (j<gl) {\n\t\t\t\t\txmlr = gxml[j];\n\t\t\t\t\trid = getId(xmlr,br+j);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\taltr = rcnt === 0 ? 0 : rcnt+1;\n\t\t\t\t\tclasses = cn1 + ( (altr+j)%2 === 1 ? ' ' + cn : '');\n\t\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\t\trowData.push(\"\");\n\t\t\t\t\tif( ni ) {\n\t\t\t\t\t\trowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t\t}\n\t\t\t\t\tif( gi ) {\n\t\t\t\t\t\trowData.push( addMulti(rid, ni, j, false, mlc) );\n\t\t\t\t\t}\n\t\t\t\t\tif( si ) {\n\t\t\t\t\t\trowData.push( addSubGridCell.call(self, gi+ni, j+rcnt) );\n\t\t\t\t\t}\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr, rd) );\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr, rd) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr);\n\t\t\t\t\trowData.push(\"</tr>\");\n\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self , rd, j );\n\t\t\t\t\t\t}\n\t\t\t\t\t\trowData = [];\n\t\t\t\t\t}\n\t\t\t\t\tif(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) {\n\t\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [rid, rd, xmlr]);\n\t\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}\n\t\t\t\t\t\trowData=[];\n\t\t\t\t\t}\n\t\t\t\t\trd={};\n\t\t\t\t\tir++;\n\t\t\t\t\tj++;\n\t\t\t\t\tif(ir===rn) {break;}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.gridview === true) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else {\n\t\t\t\t\t//$(\"tbody:first\",t).append(rowData.join(''));\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells; // update cached first row\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData =null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry {self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} }\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = gl;\n\t\t\t\tts.p.lastpage = Math.ceil(gl/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<gl) {\n\t\t\t\t\txmlr = gxml[ir];\n\t\t\t\t\trid = getId(xmlr,ir+br);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells2[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\tif( ts.p.grouping ) {\n\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t}\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\trd = {};\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddJSONData = function(data, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date();\n\t\t\tif(data) {\n\t\t\t\tif(ts.p.treeANode === -1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\n\t\t\tvar dReader, locid = \"_id_\", frd,\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"jsonstring\";\n\t\t\tif(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = locid;}\n\t\t\tts.p.reccount = 0;\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tdReader =  ts.p.localReader;\n\t\t\t\tfrd= 'local';\n\t\t\t} else {\n\t\t\t\tdReader =  ts.p.jsonReader;\n\t\t\t\tfrd='json';\n\t\t\t}\n\t\t\tvar self = $(ts), ir=0,v,i,j,f=[],cur,gi=ts.p.multiselect?1:0,si=ts.p.subGrid===true?1:0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,arrayReader=orderedCols(gi+si+ni),objectReader=reader(frd),rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[],cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getAccessor(data,dReader.records));\n\t\t\tts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {};\n\t\t\tif(si) {\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif( ts.p.keyName===false ) {\n\t\t\t\tidn = $.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id; \n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tdrows = $.jgrid.getAccessor(data,dReader.root);\n\t\t\tif (drows == null && $.isArray(data)) { drows = data; }\n\t\t\tif (!drows) { drows = []; }\n\t\t\tlen = drows.length; i=0;\n\t\t\tif (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tvar rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?$.jgrid.randId():1, altr, selected=false, selr;\n\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\tif(ts.p.datatype === \"local\" && !ts.p.deselectAfterSort) {\n\t\t\t\tselected = true;\n\t\t\t}\n\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare,\n\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"),\n\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\tif(ts.p.grouping)  {\n\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t}\n\t\t\twhile (i<len) {\n\t\t\t\tcur = drows[i];\n\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\tif(idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t}\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tidr = br+i;\n\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\tvar ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\t\tccur=null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\taltr = rcnt === 1 ? 0 : rcnt;\n\t\t\t\tclasses = cn1+ ( (altr+i)%2 === 1 ? ' '+cn : '');\n\t\t\t\tif( selected) {\n\t\t\t\t\tif( ts.p.multiselect) {\n\t\t\t\t\t\tselr = ($.inArray(idr, ts.p.selarrrow) !== -1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselr = (idr === ts.p.selrow);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\trowData.push(\"\");\n\t\t\t\tif( ni ) {\n\t\t\t\t\trowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t}\n\t\t\t\tif( gi ){\n\t\t\t\t\trowData.push( addMulti(idr, ni, i, selr, mlc) );\n\t\t\t\t}\n\t\t\t\tif( si ) {\n\t\t\t\t\trowData.push( addSubGridCell.call(self ,gi+ni,i+rcnt) );\n\t\t\t\t}\n\t\t\t\trowReader=objectReader;\n\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t}\n\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = v;\n\t\t\t\t\trowData.push( addCell(idr,v,j+gi+si+ni,i+rcnt,cur, rd) );\n\t\t\t\t}\n\t\t\t\tclasses += (selr ? ' ' + highlight : '');\n\t\t\t\trowData[iStartTrTag] = constructTr(idr, hiderow, classes, rd, cur);\n\t\t\t\trowData.push( \"</tr>\" );\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\tgroupingPrepare.call(self , rd, i);\n\t\t\t\t\t}\n\t\t\t\t\trowData = [];\n\t\t\t\t}\n\t\t\t\tif(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) {\n\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t}\n\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [idr, rd, cur]);\n\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}\n\t\t\t\t\trowData=[];//ari=0;\n\t\t\t\t}\n\t\t\t\trd={};\n\t\t\t\tir++;\n\t\t\t\ti++;\n\t\t\t\tif(ir===rn) { break; }\n\t\t\t}\n\t\t\tif(ts.p.gridview === true ) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else { \n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells;\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData = null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry { self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) {\n\t\t\t\tif(ts.p.records===0) { ts.p.records=len; }\n\t\t\t}\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = len;\n\t\t\t\tts.p.lastpage = Math.ceil(len/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<len && drows[ir]) {\n\t\t\t\t\tcur = drows[ir];\n\t\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\t\tidr = br+ir;\n\t\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\t\tvar ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\t\tidr = ccur2 != null && ccur2[idn] !== undefined ? ccur2[idn] : idr;\n\t\t\t\t\t\t\t\t\tccur2=null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cur) {\n\t\t\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\t\t\trowReader=objectReader;\n\t\t\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t\t\trd = {};\n\t\t\t\t\t}\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddLocalData = function( retAll ) {\n\t\t\tvar st = ts.p.multiSort ? [] : \"\", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld;\n\t\t\tif(!$.isArray(ts.p.data)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si;\n\t\t\t$.each(ts.p.colModel,function(){\n\t\t\t\tsorttype = this.sorttype || \"text\";\n\t\t\t\tsi = this.index || this.name;\n\t\t\t\tif(sorttype === \"date\" || sorttype === \"datetime\") {\n\t\t\t\t\tif(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') {\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.srcformat) {\n\t\t\t\t\t\t\tsrcformat = this.formatoptions.srcformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsrcformat = $.jgrid.getRegional(ts, \"formatter.date.srcformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.newformat) {\n\t\t\t\t\t\t\tnewformat = this.formatoptions.newformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewformat = $.jgrid.getRegional(ts, \"formatter.date.newformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsrcformat = newformat = this.datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\": srcformat,\"newfmt\":newformat, \"sfunc\": this.sortfunc || null};\n\t\t\t\t} else {\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\":'',\"newfmt\":'', \"sfunc\": this.sortfunc || null};\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping ) {\n\t\t\t\t\tfor(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) {\n\t\t\t\t\t\tif( this.name === grpview.groupField[gin]) {\n\t\t\t\t\t\t\tgrtypes[gin] = cmtypes[si];\n\t\t\t\t\t\t\tgrindexes[gin]= si;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!ts.p.multiSort) {\n\t\t\t\t\tif(!fndsort && (si === ts.p.sortname)){\n\t\t\t\t\t\tst = si; \n\t\t\t\t\t\tfndsort = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tst =  sortarr;\n\t\t\t\tsto = sortord;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p._sort) {\n\t\t\t\t$(ts).jqGrid(\"SortTree\", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || '');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar compareFnMap = {\n\t\t\t\t'eq':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'ne':function(queryObj) {return queryObj.notEquals;},\n\t\t\t\t'lt':function(queryObj) {return queryObj.less;},\n\t\t\t\t'le':function(queryObj) {return queryObj.lessOrEquals;},\n\t\t\t\t'gt':function(queryObj) {return queryObj.greater;},\n\t\t\t\t'ge':function(queryObj) {return queryObj.greaterOrEquals;},\n\t\t\t\t'cn':function(queryObj) {return queryObj.contains;},\n\t\t\t\t'nc':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().contains : queryObj.andNot().contains;},\n\t\t\t\t'bw':function(queryObj) {return queryObj.startsWith;},\n\t\t\t\t'bn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;},\n\t\t\t\t'en':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;},\n\t\t\t\t'ew':function(queryObj) {return queryObj.endsWith;},\n\t\t\t\t'ni':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().equals : queryObj.andNot().equals;},\n\t\t\t\t'in':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'nu':function(queryObj) {return queryObj.isNull;},\n\t\t\t\t'nn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().isNull : queryObj.andNot().isNull;}\n\n\t\t\t},\n\t\t\tquery = $.jgrid.from.call(ts, ts.p.data);\n\t\t\tif (ts.p.ignoreCase) { query = query.ignoreCase(); }\n\t\t\tfunction tojLinq ( group ) {\n\t\t\t\tvar s = 0, index, gor, ror, opr, rule, fld;\n\t\t\t\tif (group.groups != null) {\n\t\t\t\t\tgor = group.groups.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t}\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s > 0 && gor) {\n\t\t\t\t\t\t\tquery.or();\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttojLinq(group.groups[index]);\n\t\t\t\t\t\t} catch (e) {alert(e);}\n\t\t\t\t\t\ts++;\n\t\t\t\t\t}\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (group.rules != null) {\n\t\t\t\t\t//if(s>0) {\n\t\t\t\t\t//\tvar result = query.select();\n\t\t\t\t\t//\tquery = $.jgrid.from( result);\n\t\t\t\t\t//\tif (ts.p.ignoreCase) { query = query.ignoreCase(); } \n\t\t\t\t\t//}\n\t\t\t\t\ttry{\n\t\t\t\t\t\tror = group.rules.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\t\trule = group.rules[index];\n\t\t\t\t\t\t\topr = group.groupOp.toString().toUpperCase();\n\t\t\t\t\t\t\tif (compareFnMap[rule.op] && rule.field ) {\n\t\t\t\t\t\t\t\tif(s > 0 && opr && opr === \"OR\") {\n\t\t\t\t\t\t\t\t\tquery = query.or();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfld = cmtypes[rule.field];\n\t\t\t\t\t\t\t\tif(fld.stype === 'date') {\n\t\t\t\t\t\t\t\t\tif(fld.srcfmt && fld.newfmt && fld.srcfmt !== fld.newfmt ) {\n\t\t\t\t\t\t\t\t\t\trule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tquery = compareFnMap[rule.op](query, opr)(rule.field, rule.data, cmtypes[rule.field]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ts++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (g) {alert(g);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ts.p.search === true) {\n\t\t\t\tvar srules = ts.p.postData.filters;\n\t\t\t\tif(srules) {\n\t\t\t\t\tif(typeof srules === \"string\") { srules = $.jgrid.parse(srules);}\n\t\t\t\t\ttojLinq( srules );\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsfld = cmtypes[ts.p.postData.searchField];\n\t\t\t\t\t\tif(sfld.stype === 'date') {\n\t\t\t\t\t\t\tif(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) {\n\t\t\t\t\t\t\t\tts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tquery = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]);\n\t\t\t\t\t} catch (se){}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"nested\") {\n\t\t\t\t\tquery.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"adjacency\") {\n\t\t\t\tlengrp =0;\n\t\t\t\tst = null;\n\t\t\t}\n\t\t\tif(ts.p.grouping) {\n\t\t\t\tfor(gin=0; gin<lengrp;gin++) {\n\t\t\t\t\tquery.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\t$.each(st,function(i){\n\t\t\t\t\tquery.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (st && ts.p.sortorder && fndsort) {\n\t\t\t\t\t// to be fixed in case sortname has more than one field\n\t\t\t\t\tif(ts.p.sortorder.toUpperCase() === \"DESC\") {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"d\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"a\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar queryResults = query.select(),\n\t\t\trecordsperpage = parseInt(ts.p.rowNum,10),\n\t\t\ttotal = queryResults.length,\n\t\t\tpage = parseInt(ts.p.page,10),\n\t\t\ttotalpages = Math.ceil(total / recordsperpage),\n\t\t\tretresult = {};\n\t\t\tif((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) {\n\t\t\t\tts.p.groupingView.groups =[];\n\t\t\t\tvar j, grPrepare = $.jgrid.getMethod(\"groupingPrepare\"), key, udc;\n\t\t\t\tif(ts.p.footerrow && ts.p.userDataOnFooter) {\n\t\t\t\t\tfor (key in ts.p.userData) {\n\t\t\t\t\t\tif(ts.p.userData.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tts.p.userData[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tudc = true;\n\t\t\t\t}\n\t\t\t\tfor(j=0; j<total; j++) {\n\t\t\t\t\tif(udc) {\n\t\t\t\t\t\tfor(key in ts.p.userData){\n\t\t\t\t\t\t\tif( ts.p.userData.hasOwnProperty( key ) ) {\n\t\t\t\t\t\t\t\tts.p.userData[key] += parseFloat(queryResults[j][key] || 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrPrepare.call($(ts),queryResults[j],j, recordsperpage );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( retAll ) {\n\t\t\t\treturn  queryResults;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.search) {\n\t\t\t\tqueryResults = $(ts).jqGrid(\"searchTree\", queryResults);\n\t\t\t} else {\n\t\t\t\tqueryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );\n\t\t\t}\n\t\t\tquery = null;\n\t\t\tcmtypes = null;\n\t\t\tretresult[ts.p.localReader.total] = totalpages;\n\t\t\tretresult[ts.p.localReader.page] = page;\n\t\t\tretresult[ts.p.localReader.records] = total;\n\t\t\tretresult[ts.p.localReader.root] = queryResults;\n\t\t\tretresult[ts.p.localReader.userdata] = ts.p.userData;\n\t\t\tqueryResults = null;\n\t\t\treturn  retresult;\n\t\t},\n\t\tupdatepager = function(rn, dnd) {\n\t\t\tvar cp, last, base, from,to,tot,fmt, pgboxes = \"\", sppg,\n\t\t\tpgid = ts.p.pager ? $.jgrid.jqID(ts.p.pager.substr(1)) : \"\",\n\t\t\ttspg = pgid ? \"_\"+pgid : \"\",\n\t\t\ttspg_t = ts.p.toppager ? \"_\"+ts.p.toppager.substr(1) : \"\";\n\t\t\tbase = parseInt(ts.p.page,10)-1;\n\t\t\tif(base < 0) { base = 0; }\n\t\t\tbase = base*parseInt(ts.p.rowNum,10);\n\t\t\tto = base + ts.p.reccount;\n\t\t\tif (ts.p.scroll) {\n\t\t\t\tvar rows = $(\"tbody:first > tr:gt(0)\", ts.grid.bDiv);\n\t\t\t\tif(to > ts.p.records) {\n\t\t\t\t\tto = ts.p.records;\n\t\t\t\t}\n\t\t\t\tbase = to - rows.length;\n\t\t\t\tts.p.reccount = rows.length;\n\t\t\t\tvar rh = rows.outerHeight() || ts.grid.prevRowHeight;\n\t\t\t\tif (rh) {\n\t\t\t\t\tvar top = base * rh;\n\t\t\t\t\tvar height = parseInt(ts.p.records,10) * rh;\n\t\t\t\t\t$(\">div:first\",ts.grid.bDiv).css({height : height}).children(\"div:first\").css({height:top,display:top?\"\":\"none\"});\n\t\t\t\t\tif (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;\n\t\t\t}\n\t\t\tpgboxes = ts.p.pager || \"\";\n\t\t\tpgboxes += ts.p.toppager ?  (pgboxes ? \",\" + ts.p.toppager : ts.p.toppager) : \"\";\n\t\t\tif(pgboxes) {\n\t\t\t\tfmt = $.jgrid.getRegional(ts, \"formatter.integer\");\n\t\t\t\tcp = intNum(ts.p.page);\n\t\t\t\tlast = intNum(ts.p.lastpage);\n\t\t\t\t$(\".selbox\",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ](\"disabled\",false);\n\t\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t\t$(\"#input\"+tspg).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\"));\n\t\t\t\t\tif(ts.p.toppager) {\n\t\t\t\t\t\t$(\"#input_t\"+tspg_t).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"_toppager'></span>\"));\n\t\t\t\t\t}\n\t\t\t\t\t$('.ui-pg-input',pgboxes).val(ts.p.page);\n\t\t\t\t\tsppg = ts.p.toppager ? '#sp_1'+tspg+\",#sp_1\"+tspg+\"_toppager\" : '#sp_1'+tspg;\n\t\t\t\t\t$(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);\n\t\t\t\t}\n\t\t\t\tif (ts.p.viewrecords){\n\t\t\t\t\tif(ts.p.reccount === 0) {\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.getRegional(ts, \"defaults.emptyrecords\", ts.p.emptyrecords ));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfrom = base+1;\n\t\t\t\t\t\ttot=ts.p.records;\n\t\t\t\t\t\tif($.fmatter) {\n\t\t\t\t\t\t\tfrom = $.fmatter.util.NumberFormat(from,fmt);\n\t\t\t\t\t\t\tto = $.fmatter.util.NumberFormat(to,fmt);\n\t\t\t\t\t\t\ttot = $.fmatter.util.NumberFormat(tot,fmt);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rt = $.jgrid.getRegional(ts, \"defaults.recordtext\", ts.p.recordtext);\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.template( rt ,from,to,tot));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t\tif(cp<=0) {cp = last = 0;}\n\t\t\t\t\tif(cp===1 || cp === 0) {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t\tif(cp===last || cp === 0) {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(rn===true && ts.p.rownumbers === true) {\n\t\t\t\t$(\">td.jqgrid-rownum\",ts.rows).each(function(i){\n\t\t\t\t\t$(this).html(base+1+i);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}\n\t\t\t$(ts).triggerHandler(\"jqGridGridComplete\");\n\t\t\tif($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}\n\t\t\t$(ts).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t},\n\t\tbeginReq = function() {\n\t\t\tts.grid.hDiv.loading = true;\n\t\t\tif(ts.p.hiddengrid) { return;}\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"show\", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, \"defaults.loadtext\", ts.p.loadtext) });\n\t\t},\n\t\tendReq = function() {\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"hide\", loadtype : ts.p.loadui });\n\t\t},\n\t\tpopulate = function (npage) {\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tvar pvis = ts.p.scroll && npage === false,\n\t\t\t\tprm = {}, dt, dstr, pN=ts.p.prmNames;\n\t\t\t\tif(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); }\n\t\t\t\tif(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}\n\t\t\t\tif(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}\n\t\t\t\tif(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}\n\t\t\t\tif(ts.p.rowTotal !== null && pN.totalrows !== null) { prm[pN.totalrows]= ts.p.rowTotal; }\n\t\t\t\tvar lcf = $.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null;\n\t\t\t\tvar adjust = 0;\n\t\t\t\tnpage = npage || 1;\n\t\t\t\tif (npage > 1) {\n\t\t\t\t\tif(pN.npage !== null) {\n\t\t\t\t\t\tprm[pN.npage] = npage;\n\t\t\t\t\t\tadjust = npage - 1;\n\t\t\t\t\t\tnpage = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlc = function(req) {\n\t\t\t\t\t\t\tts.p.page++;\n\t\t\t\t\t\t\tts.grid.hDiv.loading = false;\n\t\t\t\t\t\t\tif (lcf) {\n\t\t\t\t\t\t\t\tts.p.loadComplete.call(ts,req);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopulate(npage-1);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} else if (pN.npage !== null) {\n\t\t\t\t\tdelete ts.p.postData[pN.npage];\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t$(ts).jqGrid('groupingSetup');\n\t\t\t\t\tvar grp = ts.p.groupingView, gi, gs=\"\";\n\t\t\t\t\tfor(gi=0;gi<grp.groupField.length;gi++) {\n\t\t\t\t\t\tvar index = grp.groupField[gi];\n\t\t\t\t\t\t$.each(ts.p.colModel, function(cmIndex, cmValue) {\n\t\t\t\t\t\t\tif (cmValue.name === index && cmValue.index){\n\t\t\t\t\t\t\t\tindex = cmValue.index;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tgs += index +\" \"+grp.groupOrder[gi]+\", \";\n\t\t\t\t\t}\n\t\t\t\t\tprm[pN.sort] = gs + prm[pN.sort];\n\t\t\t\t}\n\t\t\t\t$.extend(ts.p.postData,prm);\n\t\t\t\tvar rcnt = !ts.p.scroll ? 1 : ts.rows.length-1;\n\t\t\t\tvar bfr = $(ts).triggerHandler(\"jqGridBeforeRequest\");\n\t\t\t\tif (bfr === false || bfr === 'stop') { return; }\n\t\t\t\tif ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,\"load_\"+ts.p.id, rcnt, npage, adjust); return;}\n\t\t\t\tif ($.isFunction(ts.p.beforeRequest)) {\n\t\t\t\t\tbfr = ts.p.beforeRequest.call(ts);\n\t\t\t\t\tif(bfr === undefined) { bfr = true; }\n\t\t\t\t\tif ( bfr === false ) { return; }\n\t\t\t\t}\n\t\t\t\tdt = ts.p.datatype.toLowerCase();\n\t\t\t\tswitch(dt)\n\t\t\t\t{\n\t\t\t\tcase \"json\":\n\t\t\t\tcase \"jsonp\":\n\t\t\t\tcase \"xml\":\n\t\t\t\tcase \"script\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl:ts.p.url,\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\tdataType: dt ,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,\n\t\t\t\t\t\tsuccess:function(data,st, xhr) {\n\t\t\t\t\t\t\tif ($.isFunction(ts.p.beforeProcessing)) {\n\t\t\t\t\t\t\t\tif (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) {\n\t\t\t\t\t\t\t\t\tendReq();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dt === \"xml\") { addXmlData(data, rcnt,npage>1,adjust); }\n\t\t\t\t\t\t\telse { addJSONData(data, rcnt, npage>1, adjust); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [data]);\n\t\t\t\t\t\t\tif(lc) { lc.call(ts,data); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [data]);\n\t\t\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\t\t\tif( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = \"local\";}\n\t\t\t\t\t\t\tdata=null;\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror:function(xhr,st,err){\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t\txhr=null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbeforeSend: function(xhr, settings ){\n\t\t\t\t\t\t\tvar gotoreq = true;\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadBeforeSend)) {\n\t\t\t\t\t\t\t\tgotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(gotoreq === undefined) { gotoreq = true; }\n\t\t\t\t\t\t\tif(gotoreq === false) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbeginReq();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));\n\t\t\t\tbreak;\n\t\t\t\tcase \"xmlstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tdstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr);\n\t\t\t\t\taddXmlData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"jsonstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tif(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); }\n\t\t\t\t\telse { dstr = ts.p.datastr; }\n\t\t\t\t\taddJSONData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"local\":\n\t\t\t\tcase \"clientside\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p._ald = true;\n\t\t\t\t\tvar req = addLocalData( false );\n\t\t\t\t\taddJSONData(req,rcnt,npage>1,adjust);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [req]);\n\t\t\t\t\tif(lc) { lc.call(ts,req); }\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [req]);\n\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\tendReq();\n\t\t\t\t\tts.p._ald = false;\n\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tts.p._sort = false;\n\t\t\t}\n\t\t},\n\t\tsetHeadCheckBox = function ( checked ) {\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\tvar fid = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\tif(fid) {\n\t\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\t}\n\t\t},\n\t\tsetPager = function (pgid, tp){\n\t\t\t// TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid);\n\t\t\tvar sep = \"<td class='ui-pg-button \"+disabled+\"'><span class='ui-separator'></span></td>\",\n\t\t\tpginp = \"\",\n\t\t\tpgl=\"<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>\",\n\t\t\tstr=\"\", pgcnt, lft, cent, rgt, twd, tdw, i,\n\t\t\tclearVals = function(onpaging, thus){\n\t\t\t\tvar ret;\n\t\t\t\tif ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); }\n\t\t\t\tif(ret==='stop') {return false;}\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[]; setHeadCheckBox( false );}\n\t\t\t\tts.p.savedRow = [];\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tpgid = pgid.substr(1);\n\t\t\ttp += \"_\" + pgid;\n\t\t\tpgcnt = \"pg_\"+pgid;\n\t\t\tlft = pgid+\"_left\"; cent = pgid+\"_center\"; rgt = pgid+\"_right\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pgid) )\n\t\t\t.append(\"<div id='\"+pgcnt+\"' class='ui-pager-control' role='group'><table \" + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + \"><tbody><tr><td id='\"+lft+\"' align='left'></td><td id='\"+cent+\"' align='center' style='white-space:pre;'></td><td id='\"+rgt+\"' align='right'></td></tr></tbody></table></div>\")\n\t\t\t.attr(\"dir\",\"ltr\"); //explicit setting\n\t\t\tif(ts.p.rowList.length >0){\n\t\t\t\tstr = \"<td dir=\\\"\"+dir+\"\\\">\";\n\t\t\t\tstr +=\"<select \"+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+\" role=\\\"listbox\\\" title=\\\"\"+($.jgrid.getRegional(ts,\"defaults.pgrecs\",ts.p.pgrecs) || \"\")+ \"\\\">\";\n\t\t\t\tvar strnm;\n\t\t\t\tfor(i=0;i<ts.p.rowList.length;i++){\n\t\t\t\t\tstrnm = ts.p.rowList[i].toString().split(\":\");\n\t\t\t\t\tif(strnm.length === 1) {\n\t\t\t\t\t\tstrnm[1] = strnm[0];\n\t\t\t\t\t}\n\t\t\t\t\tstr +=\"<option role=\\\"option\\\" value=\\\"\"+strnm[0]+\"\\\"\"+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?\" selected=\\\"selected\\\"\":\"\")+\">\"+strnm[1]+\"</option>\";\n\t\t\t\t}\n\t\t\t\tstr +=\"</select></td>\";\n\t\t\t}\n\t\t\tif(dir===\"rtl\") { pgl += str; }\n\t\t\tif(ts.p.pginput===true) { \n\t\t\t\tpginp= \"<td id='input\"+tp+\"' dir='\"+dir+\"'>\"+$.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\")+\"</td>\";\n\t\t\t}\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\tvar po=[\"first\"+tp,\"prev\"+tp, \"next\"+tp,\"last\"+tp], btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'),\n\t\t\t\t\t\tpot = [($.jgrid.getRegional(ts,\"defaults.pgfirst\",ts.p.pgfirst) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgprev\",ts.p.pgprev) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgnext\",ts.p.pgnext) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pglast\",ts.p.pglast) || \"\")];\n\t\t\t\tif(dir===\"rtl\") { \n\t\t\t\t\tpo.reverse();\n\t\t\t\t\tpot.reverse();\n\t\t\t\t}\n\t\t\t\tpgl += \"<td id='\"+po[0]+\"' class='\"+btc+\"' title='\"+ pot[0] +\"'\" + \"><span \" + getstyle(stylemodule, 'icon_first', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[1]+\"' class='\"+btc+\"'  title='\"+ pot[1] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_prev', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += pginp !== \"\" ? sep+pginp+sep:\"\";\n\t\t\t\tpgl += \"<td id='\"+po[2]+\"' class='\"+btc+\"' title='\"+ pot[2] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_next',false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[3]+\"' class='\"+btc+\"' title='\"+ pot[3] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_end',false, iconbase)+\"></span></td>\";\n\t\t\t} else if (pginp !== \"\") { \n\t\t\t\tpgl += pginp; \n\t\t\t}\n\t\t\tif(dir===\"ltr\") { \n\t\t\t\tpgl += str; \n\t\t\t}\n\t\t\tpgl += \"</tr></tbody></table>\";\n\t\t\tif(ts.p.viewrecords===true) {\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.recordpos,\"#\"+pgcnt).append(\"<div dir='\"+dir+\"' style='text-align:\"+ts.p.recordpos+\"' class='ui-paging-info'></div>\");\n\t\t\t}\n\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).append(pgl);\n\t\t\ttdw = $(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).css(\"font-size\") || \"11px\";\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).append(\"<div id='testpg' \"+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+\" style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\ttwd = $(pgl).clone().appendTo(\"#testpg\").width();\n\t\t\t$(\"#testpg\").remove();\n\t\t\tif(twd > 0) {\n\t\t\t\tif(pginp !== \"\") { twd += 50; } //should be param\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).width(twd);\n\t\t\t}\n\t\t\tts.p._nvtd = [];\n\t\t\tts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);\n\t\t\tts.p._nvtd[1] = 0; \n\t\t\tpgl=null;\n\t\t\t$('.ui-pg-selbox',\"#\"+pgcnt).on('change',function() {\n\t\t\t\tif(!clearVals('records', this)) { return false; }\n\t\t\t\tts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;\n\t\t\t\tts.p.rowNum = this.value;\n\t\t\t\tif(ts.p.pager) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }\n\t\t\t\tif(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }\n\t\t\t\tpopulate();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t$(\".ui-pg-button\",\"#\"+pgcnt).hover(function(){\n\t\t\t\t\tif($(this).hasClass(disabled)) {\n\t\t\t\t\t\tthis.style.cursor='default';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\tthis.style.cursor='pointer';\n\t\t\t\t\t}\n\t\t\t\t},function() {\n\t\t\t\t\tif(!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t$(this).removeClass(hover);\n\t\t\t\t\t\tthis.style.cursor= \"default\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#first\"+$.jgrid.jqID(tp)+\", #prev\"+$.jgrid.jqID(tp)+\", #next\"+$.jgrid.jqID(tp)+\", #last\"+$.jgrid.jqID(tp)).click( function() {\n\t\t\t\t\tif ($(this).hasClass(disabled)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tvar cp = intNum(ts.p.page,1),\n\t\t\t\t\tlast = intNum(ts.p.lastpage,1), selclick = false,\n\t\t\t\t\tfp=true, pp=true, np=true,lp=true;\n\t\t\t\t\tif(last ===0 || last===1) {\n\t\t\t\t\t\tfp=false;\n\t\t\t\t\t\tpp=false;\n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t} else if( last>1 && cp >=1) {\n\t\t\t\t\t\tif( cp === 1) { \n\t\t\t\t\t\t\tfp=false; \n\t\t\t\t\t\t\tpp=false; \n\t\t\t\t\t\t} else if( cp===last){ \n\t\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( last>1 && cp===0 ) { \n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\tcp=last-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(!clearVals(this.id.split(\"_\")[0], this)) { return false; }\n\t\t\t\t\tif( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;}\n\t\t\t\t\tif( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;}\n\t\t\t\t\tif( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;}\n\t\t\t\t\tif( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}\n\t\t\t\t\tif(selclick) {\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t$(\"#\"+pgcnt).on('keypress','input.ui-pg-input', function(e) {\n\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\tif(key === 13) {\n\t\t\t\t\t\tif(!clearVals('user', this)) { return false; }\n\t\t\t\t\t\t$(this).val( intNum( $(this).val(), 1));\n\t\t\t\t\t\tts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmultiSort = function(iCol, obj, sor ) {\n\t\t\tvar cm = ts.p.colModel,\n\t\t\t\t\tselTh = ts.p.frozenColumns ?  obj : ts.grid.headers[iCol].el, so=\"\", sn;\n\t\t\t$(\"span.ui-grid-ico-sort\",selTh).addClass(disabled);\n\t\t\t$(selTh).attr(\"aria-selected\",\"false\");\n\t\t\tsn = (cm[iCol].index || cm[iCol].name);\n\t\t\tif ( typeof sor == \"undefined\" )\n\t\t\t{\n\t\t\t\tif(cm[iCol].lso) {\n\t\t\t\t\tif(cm[iCol].lso===\"asc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-desc\";\n\t\t\t\t\t\tso = \"desc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"desc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-asc\";\n\t\t\t\t\t\tso = \"asc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"asc-desc\" || cm[iCol].lso===\"desc-asc\") {\n\t\t\t\t\t\tcm[iCol].lso=\"\";\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcm[iCol].lso = so = cm[iCol].firstsortorder || 'asc';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcm[iCol].lso = so = sor;\n\t\t\t}\t\n\t\t\tif( so ) {\n\t\t\t\t$(\"span.s-ico\",selTh).show();\n\t\t\t\t$(\"span.ui-icon-\"+so,selTh).removeClass(disabled);\n\t\t\t\t$(selTh).attr(\"aria-selected\",\"true\");\n\t\t\t} else {\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\t$(\"span.s-ico\",selTh).hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar isn = sortarr.indexOf( sn );\n\t\t\tif( isn === -1 ) {\n\t\t\t\tsortarr.push( sn );\n\t\t\t\tsortord.push( so );\n\t\t\t} else {\n\t\t\t\tif( so ) {\n\t\t\t\t\tsortord[isn] = so;\n\t\t\t\t} else {\n\t\t\t\t\tsortord.splice( isn, 1 );\n\t\t\t\t\tsortarr.splice( isn, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = \"\";\n\t\t\tts.p.sortname = \"\";\n\t\t\tfor( var i = 0, len = sortarr.length; i < len ; i++) {\n\t\t\t\tif( i > 0) {\n\t\t\t\t\tts.p.sortname += \", \";\n\t\t\t\t}\n\t\t\t\tts.p.sortname += sortarr[ i ];\n\t\t\t\tif( i !== len -1) {\n\t\t\t\t\tts.p.sortname += \" \"+sortord[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = sortord[ len -1 ];\n\t\t\t/*\n\t\t\t$.each(cm, function(i){\n\t\t\t\tif(this.lso) {\n\t\t\t\t\tif(i>0 && fs) {\n\t\t\t\t\t\tsort += \", \";\n\t\t\t\t\t}\n\t\t\t\t\tsplas = this.lso.split(\"-\");\n\t\t\t\t\tsort += cm[i].index || cm[i].name;\n\t\t\t\t\tsort += \" \"+splas[splas.length-1];\n\t\t\t\t\tfs = true;\n\t\t\t\t\tts.p.sortorder = splas[splas.length-1];\n\t\t\t\t}\n\t\t\t});\n\t\t\tls = sort.lastIndexOf(ts.p.sortorder);\n\t\t\tsort = sort.substring(0, ls);\n\t\t\tts.p.sortname = sort;\n\t\t\t*/\n\t\t},\n\t\tsortData = function (index, idxcol,reload,sor, obj){\n\t\t\tif(!ts.p.colModel[idxcol].sortable) { return; }\n\t\t\tif(ts.p.savedRow.length > 0) {return;}\n\t\t\tif(!reload) {\n\t\t\t\tif( ts.p.lastsort === idxcol && ts.p.sortname !== \"\" ) {\n\t\t\t\t\tif( ts.p.sortorder === 'asc') {\n\t\t\t\t\t\tts.p.sortorder = 'desc';\n\t\t\t\t\t} else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';}\n\t\t\t\t} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }\n\t\t\t\tts.p.page = 1;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tmultiSort( idxcol, obj, sor);\n\t\t\t} else {\n\t\t\t\tif(sor) {\n\t\t\t\t\tif(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; }\n\t\t\t\t\tts.p.sortorder = sor;\n\t\t\t\t}\n\t\t\t\tvar previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = ts.p.frozenColumns ?  obj : ts.grid.headers[idxcol].el,\n\t\t\t\t\t\t//sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled);\n\t\t\t\t\tusehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon;\n\t\t\t\ttmpicon = $(previousSelectedTh).find(\"span.ui-grid-ico-sort\");\n\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\tif(usehide) { \n\t\t\t\t\t$(tmpicon).css(\"display\",\"none\"); \n\t\t\t\t}\n\t\t\t\t$(previousSelectedTh).attr(\"aria-selected\",\"false\");\n\t\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t\ttmpicon = ts.grid.fhDiv.find(\"span.ui-grid-ico-sort\");\n\t\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"none\"); }\n\t\t\t\t\tts.grid.fhDiv.find(\"th\").attr(\"aria-selected\",\"false\");\n\t\t\t\t}\n\t\t\t\ttmpicon = $(newSelectedTh).find(\"span.ui-icon-\"+ts.p.sortorder);\n\t\t\t\ttmpicon.removeClass(disabled);\n\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"\"); }\n\t\t\t\t$(newSelectedTh).attr(\"aria-selected\",\"true\");\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\tif(ts.p.lastsort !== idxcol) {\n\t\t\t\t\t\tif(ts.p.frozenColumns){\n\t\t\t\t\t\t\tts.grid.fhDiv.find(\"span.s-ico\").hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"span.s-ico\",previousSelectedTh).hide();\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t} else if (ts.p.sortname === \"\") { // if ts.p.lastsort === idxcol but ts.p.sortname === \"\"\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tindex = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?!\n\t\t\t\tts.p.sortname = ts.p.colModel[idxcol].index || index;\n\t\t\t}\n\t\t\tif ($(ts).triggerHandler(\"jqGridSortCol\", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') {\n\t\t\t\tts.p.lastsort = idxcol;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') {ts.p.lastsort = idxcol; return;}}\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tif(ts.p.deselectAfterSort) {$(ts).jqGrid(\"resetSelection\");}\n\t\t\t} else {\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect){setHeadCheckBox( false );}\n\t\t\t\tts.p.selarrrow =[];\n\t\t\t\tts.p.savedRow =[];\n\t\t\t}\n\t\t\tif(ts.p.scroll) {\n\t\t\t\tvar sscroll = ts.grid.bDiv.scrollLeft;\n\t\t\t\temptyRows.call(ts, true, false);\n\t\t\t\tts.grid.hDiv.scrollLeft = sscroll;\n\t\t\t}\n\t\t\tif(ts.p.subGrid && ts.p.datatype === 'local') {\n\t\t\t\t$(\"td.sgexpanded\",\"#\"+$.jgrid.jqID(ts.p.id)).each(function(){\n\t\t\t\t\t$(this).trigger(\"click\");\n\t\t\t\t});\n\t\t\t}\n\t\t\tts.p._sort = true;\n\t\t\tpopulate();\n\t\t\tts.p.lastsort = idxcol;\n\t\t\tif(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;}\n\t\t},\n\t\tsetColWidth = function () {\n\t\t\tvar initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr;\n\t\t\t$.each(ts.p.colModel, function() {\n\t\t\t\tif(this.hidden === undefined) {this.hidden=false;}\n\t\t\t\tif(ts.p.grouping && ts.p.autowidth) {\n\t\t\t\t\tvar ind = $.inArray(this.name, ts.p.groupingView.groupField);\n\t\t\t\t\tif(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) {\n\t\t\t\t\t\tthis.hidden = !ts.p.groupingView.groupColumnShow[ind];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.widthOrg = cw = intNum(this.width,0);\n\t\t\t\tif(this.hidden===false){\n\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvc++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(isNaN(ts.p.width)) {\n\t\t\t\tts.p.width  = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0);\n\t\t\t}\n\t\t\tgrid.width = parseInt(ts.p.width,10);\n\t\t\tts.p.tblwidth = initwidth;\n\t\t\tif(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}\n\t\t\tif(ts.p.shrinkToFit===true && vc > 0) {\n\t\t\t\taw = grid.width-brd*vc-gw;\n\t\t\t\tif(!isNaN(ts.p.height)) {\n\t\t\t\t\taw -= scw;\n\t\t\t\t\ths = true;\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\t$.each(ts.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(grid.width-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\tts.p.colModel[lvc].width += cr;\n\t\t\t\tts.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif(ts.p.tblwidth > ts.p.width) {\n\t\t\t\t\tts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));\n\t\t\t\t\tts.p.tblwidth = ts.p.width;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tnextVisible= function(iCol) {\n\t\t\tvar ret = iCol, j=iCol, i;\n\t\t\tfor (i = iCol+1;i<ts.p.colModel.length;i++){\n\t\t\t\tif(ts.p.colModel[i].hidden !== true ) {\n\t\t\t\t\tj=i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn j-ret;\n\t\t},\n\t\tgetOffset = function (iCol) {\n\t\t\tvar $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()];\n\t\t\tif(ts.p.direction===\"rtl\") { ret[0] = ts.p.width - ret[0]; }\n\t\t\tret[0] -= ts.grid.bDiv.scrollLeft;\n\t\t\tret.push($(ts.grid.hDiv).position().top);\n\t\t\tret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height());\n\t\t\treturn ret;\n\t\t},\n\t\tgetColumnHeaderIndex = function (th) {\n\t\t\tvar i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th);\n\t\t\tfor (i = 0; i < headers.length; i++) {\n\t\t\t\tif (th === headers[i].el) {\n\t\t\t\t\tci = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn ci;\n\t\t},\n\t\tbuildColItems = function (top, left, parent) {\n\t\t\tvar cm = ts.p.colModel, len = cm.length, i, cols=[], disp,\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tstr1 = '<ul id=\"col_menu\" class=\"ui-search-menu  ui-col-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\">';\n\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t//if(!cm[i].hidedlg) { // column chooser\n\t\t\t\tvar hid = !cm[i].hidden ? \"checked\" : \"\", nm = cm[i].name, lb = ts.p.colNames[i];\n\t\t\t\tdisp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || cm[i].hidedlg) ? \"style='display:none'\" :\"\";\n\t\t\t\tstr1 += '<li '+disp+' class=\"ui-menu-item\" role=\"presentation\" draggable=\"true\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" ><table class=\"ui-common-table\" ><tr><td class=\"menu_icon\" title=\"'+texts.reorder+'\"><span class=\"'+iconbase+' '+colmenustyle.icon_move+' notclick\"></span></td><td class=\"menu_icon\"><input class=\"'+colmenustyle.input_checkbox+'\" type=\"checkbox\" name=\"'+nm+'\" '+hid+'></td><td class=\"menu_text\">'+lb+'</td></tr></table></a></li>';\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\tstr1 += \"</ul>\";\n\t\t\t$(parent).append(str1);\n\t\t\t$(\"#col_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif($.fn.html5sortable()) {\n\t\t\t\t$(\"#col_menu\").html5sortable({\n\t\t\t\t\thandle: 'span',\n\t\t\t\t\tforcePlaceholderSize: true }\n\t\t\t\t).on('sortupdate', function(e, ui) {\n\t\t\t\t\tcols.splice( ui.startindex, 1);\n\t\t\t\t\tcols.splice(ui.endindex, 0, ui.startindex);\n\t\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t\t\tcols[i] = i;\n\t\t\t\t\t}\n\t\t\t\t});\t\t\t\n\t\t\t} // NO jQuery UI \n\t\t\t$(\"#col_menu > li > a\").on(\"click\", function(e) {\n\t\t\t\tvar checked;\n\t\t\t\tif($(e.target).hasClass('notclick')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif($(e.target).is(\":input\")) {\n\t\t\t\t\tchecked = $(e.target).is(\":checked\");\n\t\t\t\t} else {\n\t\t\t\t\tchecked = !$(\"input\", this).is(\":checked\");\n\t\t\t\t\t$(\"input\", this).prop(\"checked\",checked);\n\t\t\t\t}\n\t\t\t\tif(!checked) {\n\t\t\t\t\t$(ts).jqGrid('hideCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"false\");\n\t\t\t\t} else {\n\t\t\t\t\t$(ts).jqGrid('showCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"true\");\n\t\t\t\t}\n\t\t\t}).hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\t\t},\n\t\tbuildSearchBox = function (index, top, left, parent) {\n\t\t\tvar cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem,\n\t\t\tnumopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\t\tstropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\t\ttexts = $.jgrid.getRegional(ts, \"search\"),\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tif(!cm ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\trules = ts.p.colFilters && ts.p.colFilters[cm.name] ?  ts.p.colFilters[cm.name] : false;\n\t\t\tif(rules && !$.isEmptyObject( rules )) {\n\t\t\t\to1 = rules.oper1;\n\t\t\t\tv1 = rules.value1;\n\t\t\t\tr1 = rules.rule;\n\t\t\t\to2 = rules.oper2;\n\t\t\t\tv2 = rules.value2;\n\t\t\t}\n\t\t\tif(! cm.searchoptions ) {\n\t\t\t\tcm.searchoptions = {};\n\t\t\t}\n\t\t\tif(cm.searchoptions.sopt) {\n\t\t\t\tso = cm.searchoptions.sopt;\n\t\t\t} else if(cm.sorttype === 'text') {\n\t\t\t\tso = stropts;\n\t\t\t} else {\n\t\t\t\tso = numopts;\n\t\t\t}\n\t\t\tif(cm.searchoptions.operands) {\n\t\t\t\top = cm.searchoptions.operands;\n\t\t\t} else  {\n\t\t\t\top = texts.groupOps;\n\t\t\t} \n\t\t\t\n\t\t\t//elem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>');\n\t\t\telem = $('<form></form>');\n\t\t\tvar str1= '<div>'+$.jgrid.getRegional(ts, \"colmenu.searchTitle\")+'</div>';\n\t\t\tstr1 += '<div><select id=\"oper1\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o1 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 += repstr;\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\tvar df=\"\";\n\t\t\tif(cm.searchoptions.defaultValue ) {\n\t\t\t\tdf = $.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;\n\t\t\t}\n\t\t\t//overwrite default value if restore from filters\n\t\t\tif( v1 ) {\n\t\t\t\tdf = v1;\n\t\t\t}\n\t\t\tvar soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval1_\" + ts.p.idPrefix+cm.name, oper:'search'}),\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// and/or\n\t\t\tstr1 ='<div><select id=\"operand\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(op, function(i, n){\n\t\t\t\tselected = n.op === r1 ? 'selected=\"selected\"' : '';\n\t\t\t\tstr1 += \"<option value='\"+n.op+\"' \"+selected+\">\"+n.text+\"</option>\";\n\t\t\t});\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\t//oper2 \t\t\n\t\t\trepstr ='';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o2 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 = '<div><select id=\"oper2\" class=\"'+colmenustyle.filter_select+'\">' + repstr +'</select></div>';\n\t\t\telem.append(str1);\n\t\t\t// value2\n\t\t\tif( v2 ) {\n\t\t\t\tdf = v2;\n\t\t\t} else {\n\t\t\t\tdf = \"\";\n\t\t\t}\n\t\t\tsoptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval2_\" + ts.p.idPrefix+cm.name, oper:'search'});\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// buttons\n\t\t\tstr1 = \"<div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button \" + common.button +\" ui-reset'>\"+texts.Reset+\"</a></div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button \" + common.button + \" ui-search'>\"+texts.Find+\"</a></div>\";\n\t\t\tstr1 += \"</div>\";\n\t\t\telem.append(str1);\n\t\t\telem = $('<li class=\"ui-menu-item\" role=\"presentation\"></li>').append( elem );\n\t\t\telem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>').append(elem);\n\t\t\t$(parent).append(elem);\n\t\t\t$(\"#search_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\t$(\"#bs_reset, #bs_search\", \"#search_menu\").hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\n\t\t\t$(elem).find(\"#bs_reset\").click(function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(elem).find(\"#bs_search\").click( function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {\n\t\t\t\t\toper1: $(\"#oper1\",\"#search_menu\").val(),\n\t\t\t\t\tvalue1: $(\"#sval1_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val(),\n\t\t\t\t\trule: $(\"#operand\",\"#search_menu\").val(),\n\t\t\t\t\toper2 : $(\"#oper2\",\"#search_menu\").val(),\n\t\t\t\t\tvalue2 : $(\"#sval2_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val()\n\t\t\t\t};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\t\tbuildFilters = function() {\n\t\t\tvar go = \"AND\",\n\t\t\tfilters =\"{\\\"groupOp\\\":\\\"\" + go + \"\\\",\\\"rules\\\":[], \\\"groups\\\" : [\", i=0;\n\t\t\tfor (var item in ts.p.colFilters) {\n\t\t\t\tif(ts.p.colFilters.hasOwnProperty(item)) {\n\t\t\t\t\tvar si = ts.p.colFilters[item];\n\t\t\t\t\tif(!$.isEmptyObject(si)) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tfilters += \",\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"{\\\"groupOp\\\": \\\"\"+si.rule +\"\\\", \\\"rules\\\" : [\";\n\t\t\t\t\t\tfilters += \"{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper1 + \"\\\",\";\n\t\t\t\t\t\tsi.value1 +=\"\";\n\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value1.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tif(si.value2) {\n\t\t\t\t\t\t\tfilters += \",{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper2 + \"\\\",\";\n\t\t\t\t\t\t\tsi.value2 +=\"\";\n\t\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value2.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"]}\";\n\t\t\t\t\t\ti++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//console.log('empty object');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfilters += \"]}\";\n\t\t\treturn filters;\n\t\t},\n\t\tbuildGrouping = function( index, isgroup ) {\n\t\t\tvar cm = ts.p.colModel[index],\n\t\t\t\tgroup = ts.p.groupingView;\n\t\t\tif(isgroup !== -1) {\n\t\t\t\tgroup.groupField.splice(isgroup,1);\n\t\t\t} else {\n\t\t\t\tgroup.groupField.push( cm.name);\n\t\t\t}\n\t\t\t$(ts).jqGrid('groupingGroupBy', group.groupField );\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t}\n\t\t},\n\t\tbuildFreeze = function( index, isfreeze ) {\n\t\t\tvar cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel;\n\t\t\tfor(i=0; i < len; i++) {\n\t\t\t\tif(cm[i].frozen) {\n\t\t\t\t\tlastfrozen = i;\n\t\t\t\t}\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\t\t// from position index to lastfrozen+1\n\t\t\tcols.splice( index, 1);\n\t\t\tcols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index);\n\t\t\tcm[index].frozen = isfreeze;\n\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t},\n\t\tbuildColMenu = function( index, left, top ){\n\t\t\t//$(\"#sopt_menu\").remove();\n\t\t\tleft=parseInt(left,10);\n\t\t\ttop=parseInt(top,10) + 25;\n\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\tvar str = '<ul id=\"column_menu\" class=\"ui-search-menu modal-content column-menu\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\tcm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions),\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tisgroup, isfreeze; // ???\n\t\t\t// sorting\n\t\t\tif(op.sorting) {\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortasc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_asc+'\"></span></td><td class=\"menu_text\">'+texts.sortasc+'</td></tr></table></a></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortdesc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_desc+'\"></span></td><td class=\"menu_text\">'+texts.sortdesc+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.columns) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"columns\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_columns+'\"></span></td><td class=\"menu_text\">'+texts.columns+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.filtering) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"filtering\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_filter+'\"></span></td><td class=\"menu_text\">'+texts.filter + ' ' +(cm.label || cm.name)+'</td></tr></table></a></li>';\t\t\t\n\t\t\t}\n\t\t\tif(op.grouping) {\n\t\t\t\tisgroup = $.inArray(cm.name, ts.p.groupingView.groupField);\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"grouping\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_group+'\"></span></td><td class=\"menu_text\">'+(isgroup !== -1 ?  texts.ungrouping: texts.grouping + ' ' + (cm.label || cm.name))+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.freeze) {\n\t\t\t\tisfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true;\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"freeze\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_freeze+'\"></span></td><td class=\"menu_text\">'+(isfreeze ? (texts.freeze + \" \"+(cm.label || cm.name)) : texts.unfreeze)+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tstr += \"</ul>\";\n\t\t\t$('body').append( str );\n\t\t\t$(\"#column_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\tvar wcm = $(\"#column_menu\").width() + 26;\n\t\t\t\t$(\"#column_menu\").css(\"left\", left- wcm);\n\t\t\t}\n\t\t\t$(\"#column_menu > li > a\").hover(\n\t\t\t\tfunction(){\n\t\t\t\t\t$(\"#col_menu\").remove();\n\t\t\t\t\t$(\"#search_menu\").remove();\n\t\t\t\t\tvar left1, top1;\n\t\t\t\t\tif($(this).attr(\"value\") === 'columns') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildColItems(top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\tif($(this).attr(\"value\") === 'filtering') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildSearchBox(index, top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\t$(this).addClass(hover); \n\t\t\t\t},\n\t\t\t\tfunction(){ $(this).removeClass(hover); }\n\t\t\t).click(function(){\n\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\tsobj = ts.grid.headers[index].el;\n\t\t\t\tif(v === 'sortasc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'asc', sobj);\n\t\t\t\t} else if(v === 'sortdesc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'desc', sobj);\n\t\t\t\t} else if (v === 'grouping') {\n\t\t\t\t\tbuildGrouping(index, isgroup);\n\t\t\t\t} else if( v==='freeze') {\n\t\t\t\t\tbuildFreeze( index, isfreeze);\n\t\t\t\t}\n\t\t\t\tif(v.indexOf('sort') !== -1 || v === 'grouping' || v==='freeze') {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tcolTemplate;\n\t\tif(ts.p.colMenu) {\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).closest(\".column-menu\").length) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.p.id = this.id;\n\t\tif ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;}\n\t\tts.p.keyName=false;\n\t\tfor (i=0; i<ts.p.colModel.length;i++) {\n\t\t\tcolTemplate = typeof ts.p.colModel[i].template === \"string\" ?\n\t\t\t\t($.jgrid.cmTemplate != null && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === \"object\" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) :\n\t\t\t\tts.p.colModel[i].template;\n\t\t\tts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]);\n\t\t\tif (ts.p.keyName === false && ts.p.colModel[i].key===true) {\n\t\t\t\tts.p.keyName = ts.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tts.p.sortorder = ts.p.sortorder.toLowerCase();\n\t\t$.jgrid.cell_width = $.jgrid.cellWidth();\n\t\tif(ts.p.grouping===true) {\n\t\t\tts.p.scroll = false;\n\t\t\tts.p.rownumbers = false;\n\t\t\t//ts.p.subGrid = false; expiremental\n\t\t\tts.p.treeGrid = false;\n\t\t\tts.p.gridview = true;\n\t\t}\n\t\tif(this.p.treeGrid === true) {\n\t\t\ttry { $(this).jqGrid(\"setTreeGrid\");} catch (_) {}\n\t\t\tif(ts.p.datatype !== \"local\") { ts.p.localReader = {id: \"_id_\"};\t}\n\t\t}\n\t\tif(this.p.subGrid) {\n\t\t\ttry { $(ts).jqGrid(\"setSubGrid\");} catch (s){}\n\t\t}\n\t\tif(this.p.multiselect) {\n\t\t\tthis.p.colNames.unshift(\"<input role='checkbox' id='cb_\"+this.p.id+\"' class='cbox' type='checkbox'/>\");\n\t\t\tthis.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true});\n\t\t}\n\t\tif(this.p.rownumbers) {\n\t\t\tthis.p.colNames.unshift(\"\");\n\t\t\tthis.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true});\n\t\t}\n\t\tts.p.xmlReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\trow: \"row\",\n\t\t\tpage: \"rows>page\",\n\t\t\ttotal: \"rows>total\",\n\t\t\trecords : \"rows>records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"[id]\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", row: \"row\", repeatitems: true, cell:\"cell\"}\n\t\t}, ts.p.xmlReader);\n\t\tts.p.jsonReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.jsonReader);\n\t\tts.p.localReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: false,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.localReader);\n\t\tif(ts.p.scroll){\n\t\t\tts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];\n\t\t}\n\t\tif(ts.p.data.length) { normalizeData(); refreshIndex(); }\n\t\tvar thead = \"<thead><tr class='ui-jqgrid-labels' role='row'>\",\n\t\ttdc, idn, w, res, sort =\"\",\n\t\ttd, ptr, tbody, imgs, iac=\"\", idc=\"\", tmpcm;\n\t\tif(ts.p.shrinkToFit===true && ts.p.forceFit===true) {\n\t\t\tfor (i=ts.p.colModel.length-1;i>=0;i--){\n\t\t\t\tif(!ts.p.colModel[i].hidden) {\n\t\t\t\t\tts.p.colModel[i].resizable=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(ts.p.viewsortcols[1] === 'horizontal') {\n\t\t\tiac=\" ui-i-asc\";\n\t\t\tidc=\" ui-i-desc\";\n\t\t} else if(ts.p.viewsortcols[1] === \"single\") { \n\t\t\tiac = \" ui-single-sort-asc\";\n\t\t\tidc = \" ui-single-sort-desc\";\n\t\t\tsort = \" style='display:none'\";\n\t\t\tts.p.viewsortcols[0] = false;\n\t\t}\n\t\ttdc = isMSIE ?  \"class='ui-th-div-ie'\" :\"\";\n\t\timgs = \"<span class='s-ico' style='display:none'>\";\n\t\timgs += \"<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc\"+iac+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_asc', true)+ \"'\" + sort + \"></span>\";\n\t\timgs += \"<span sort='desc' class='ui-grid-ico-sort ui-icon-desc\"+idc+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_desc', true)+\"'\" + sort + \"></span></span>\";\n\t\tif(ts.p.multiSort) {\n\t\t\tif(ts.p.sortname ) {\n\t\t\tsortarr = ts.p.sortname.split(\",\");\n\t\t\tfor (i=0; i < sortarr.length; i++) {\n\t\t\t\tsotmp = $.trim(sortarr[i]).split(\" \");\n\t\t\t\tsortarr[i] = $.trim(sotmp[0]);\n\t\t\t\tsortord[i] = sotmp[1] ? $.trim(sotmp[1]) : ts.p.sortorder || \"asc\";\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor(i=0;i<this.p.colNames.length;i++){\n\t\t\tvar tooltip = ts.p.headertitles ? (\" title=\\\"\"+$.jgrid.stripHtml(ts.p.colNames[i])+\"\\\"\") :\"\";\n\t\t\ttmpcm = ts.p.colModel[i];\n\t\t\tif(!tmpcm.hasOwnProperty('colmenu')) {\n\t\t\t\ttmpcm.colmenu = (tmpcm.name === \"rn\" || tmpcm.name === \"cb\" || tmpcm.name === \"subgrid\") ? false : true;\n\t\t\t}\n\t\t\tthead += \"<th id='\"+ts.p.id+\"_\" + tmpcm.name+\"' role='columnheader' \"+getstyle(stylemodule,'headerBox',false, \"ui-th-column ui-th-\"+dir)+\" \"+ tooltip+\">\";\n\t\t\tidn = tmpcm.index || tmpcm.name;\n\t\t\tthead += \"<div class='ui-th-div' id='jqgh_\"+ts.p.id+\"_\"+tmpcm.name+\"' \"+tdc+\">\"+ts.p.colNames[i];\n\t\t\tif(!tmpcm.width)  { \n\t\t\t\ttmpcm.width = 150; \n\t\t\t} else { \n\t\t\t\ttmpcm.width = parseInt(tmpcm.width,10); \n\t\t\t}\n\t\t\tif(typeof tmpcm.title !== \"boolean\") { \n\t\t\t\ttmpcm.title = true; \n\t\t\t}\n\t\t\ttmpcm.lso = \"\";\n\t\t\tif (idn === ts.p.sortname) {\n\t\t\t\tts.p.lastsort = i;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tsotmp = $.inArray(idn,sortarr);\n\t\t\t\tif( sotmp !== -1 ) {\n\t\t\t\t\ttmpcm.lso = sortord[sotmp];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthead += imgs;\n\t\t\tif(ts.p.colMenu && tmpcm.colmenu) {\n\t\t\t\tthead += \"<a class='colmenu' href='#/'><span class='colmenuspan \"+iconbase+' '+colmenustyle.icon_menu+\"'></span></a>\";\n\t\t\t}\n\t\t\tthead += \"</div></th>\";\n\t\t}\n\t\tthead += \"</tr></thead>\";\n\t\timgs = null;\n\t\ttmpcm = null;\n\t\t$(this).append(thead);\n\t\t$(\"thead tr:first th\",this).hover(\n\t\t\tfunction(){ $(this).addClass(hover);},\n\t\t\tfunction(){\t$(this).removeClass(hover);}\n\t\t);\n\t\tif(this.p.multiselect) {\n\t\t\tvar emp=[], chk;\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){\n\t\t\t\tts.p.selarrrow = [];\n\t\t\t\tvar froz = ts.p.frozenColumns === true ? ts.p.id + \"_frozen\" : \"\";\n\t\t\t\tif (this.checked) {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif (i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t$(this).addClass(highlight).attr(\"aria-selected\",\"true\");  \n\t\t\t\t\t\t\t\tts.p.selarrrow.push(this.id);\n\t\t\t\t\t\t\t\tts.p.selrow = this.id;\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tchk=true;\n\t\t\t\t\temp=[];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t$(this).removeClass(highlight).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t\t\t\temp.push(this.id);\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tts.p.selrow = null;\n\t\t\t\t\tchk=false;\n\t\t\t\t}\n\t\t\t\t$(ts).triggerHandler(\"jqGridSelectAll\", [chk ? ts.p.selarrrow : emp, chk]);\n\t\t\t\tif($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}\n\t\t\t});\n\t\t}\n\n\t\tif(ts.p.autowidth===true) {\n\t\t\tvar pw = $(eg).innerWidth();\n\t\t\tts.p.width = pw > 0?  pw: 'nw';\n\t\t}\n\t\tsetColWidth();\n\t\t$(eg).css(\"width\",grid.width+\"px\").append(\"<div class='ui-jqgrid-resize-mark' id='rs_m\"+ts.p.id+\"'>&#160;</div>\");\n\t\tif(ts.p.scrollPopUp) {\n\t\t\t$(eg).append(\"<div \"+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+\" id='scroll_g\"+ts.p.id+\"'></div>\");\n\t\t}\n\t\t$(gv).css(\"width\",grid.width+\"px\");\n\t\tthead = $(\"thead:first\",ts).get(0);\n\t\tvar\ttfoot = \"\";\n\t\tif(ts.p.footerrow) { tfoot += \"<table role='presentation' style='width:\"+ts.p.tblwidth+\"px' \"+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ \"><tbody><tr role='row' \"+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+\">\"; }\n\t\tvar thr = $(\"tr:first\",thead),\n\t\tfirstr = \"<tr class='jqgfirstrow' role='row'>\";\n\t\tts.p.disableClick=false;\n\t\t$(\"th\",thr).each(function ( j ) {\n\t\t\ttmpcm = ts.p.colModel[j];\n\t\t\tw = tmpcm.width;\n\t\t\tif(tmpcm.resizable === undefined) {\n\t\t\t\ttmpcm.resizable = true;\n\t\t\t}\n\t\t\tif(tmpcm.resizable){\n\t\t\t\tres = document.createElement(\"span\");\n\t\t\t\t$(res).html(\"&#160;\").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir)\n\t\t\t\t.css(\"cursor\",\"col-resize\");\n\t\t\t\t$(this).addClass(ts.p.resizeclass);\n\t\t\t} else {\n\t\t\t\tres = \"\";\n\t\t\t}\n\t\t\t$(this).css(\"width\",w+\"px\").prepend(res);\n\t\t\tres = null;\n\t\t\tvar hdcol = \"\";\n\t\t\tif( tmpcm.hidden ) {\n\t\t\t\t$(this).css(\"display\",\"none\");\n\t\t\t\thdcol = \"display:none;\";\n\t\t\t}\n\t\t\tfirstr += \"<td role='gridcell' style='height:0px;width:\"+w+\"px;\"+hdcol+\"'></td>\";\n\t\t\tgrid.headers[j] = { width: w, el: this };\n\t\t\tsort = tmpcm.sortable;\n\t\t\tif( typeof sort !== 'boolean') { \n\t\t\t\ttmpcm.sortable =  true; \n\t\t\t\tsort=true;\n\t\t\t}\n\t\t\tvar nm = tmpcm.name;\n\t\t\tif( !(nm === 'cb' || nm==='subgrid' || nm==='rn') ) {\n\t\t\t\tif(ts.p.viewsortcols[2]){\n\t\t\t\t\t$(\">div\",this).addClass('ui-jqgrid-sortable');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(sort) {\n\t\t\t\tif(ts.p.multiSort) {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(ts.p.colModel[j].lso){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( ts.p.colModel[j].lso) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(j===ts.p.lastsort){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(j === ts.p.lastsort && ts.p.sortname !== \"\") {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.footerrow) {\n\t\t\t\ttfoot += \"<td role='gridcell' \"+formatCol(j,0,'', null, '', false)+\">&#160;</td>\"; \n\t\t\t}\n\t\t}).mousedown(function(e) {\n\t\t\tif ($(e.target).closest(\"th>span.ui-jqgrid-resize\").length !== 1) { return; }\n\t\t\tvar ci = getColumnHeaderIndex(this);\n\t\t\tif(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}\n\t\t\tgrid.dragStart(ci, e, getOffset(ci));\n\t\t\treturn false;\n\t\t}).click(function(e) {\n\t\t\tif (ts.p.disableClick) {\n\t\t\t\tts.p.disableClick = false;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar s = \"th>div.ui-jqgrid-sortable\",r,d;\n\t\t\tif (!ts.p.viewsortcols[2]) { s = \"th>div>span>span.ui-grid-ico-sort\"; }\n\t\t\tvar t = $(e.target).closest(s);\n\t\t\tif (t.length !== 1) { return; }\n\t\t\tvar ci;\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\tvar tid =  $(this)[0].id.substring( ts.p.id.length + 1 );\n\t\t\t\t$(ts.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === tid) {\n\t\t\t\t\t\tci = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tci = getColumnHeaderIndex(this);\n\t\t\t}\n\t\t\t//\n\t\t\tif($(e.target).hasClass('colmenuspan')) {\n\t\t\t\tif($(\"#column_menu\")[0] != null) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\n\t\t\t\tvar colindex = $.jgrid.getCellIndex(e.target);\n\t\t\t\tif(colindex === -1) { return;}\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = ( offset.top);\n\t\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\t\tleft += $(this).outerWidth();\n\t\t\t\t}\n\t\t\t\tbuildColMenu(colindex, left, top, t );\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t//\n\t\t\tif (!ts.p.viewsortcols[2]) { r=true;d=t.attr(\"sort\"); }\n\t\t\tif(ci != null){\n\t\t\t\tsortData( $('div',this)[0].id, ci, r, d, this);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t\ttmpcm = null;\n\t\tif (ts.p.sortable && $.fn.sortable) {\n\t\t\ttry {\n\t\t\t\t$(ts).jqGrid(\"sortableColumns\", thr);\n\t\t\t} catch (e){}\n\t\t}\n\t\tif(ts.p.footerrow) { tfoot += \"</tr></tbody></table>\"; }\n\t\tfirstr += \"</tr>\";\n\t\ttbody = document.createElement(\"tbody\");\n\t\t//$(this).append(firstr);\n\t\tthis.appendChild(tbody);\n\t\t$(this).addClass(getstyle(stylemodule,\"rowTable\", true, 'ui-jqgrid-btable ui-common-table')).append(firstr);\n\t\t//$(firstr).insertAfter(this);\n\t\tfirstr = null;\n\t\tvar hTable = $(\"<table \"+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+\" style='width:\"+ts.p.tblwidth+\"px' role='presentation' aria-labelledby='gbox_\"+this.id+\"'></table>\").append(thead),\n\t\thg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,\n\t\thb = $(\"<div class='ui-jqgrid-hbox\" + (dir===\"rtl\" ? \"-rtl\" : \"\" )+\"'></div>\"),\n\t\tbstw = ts.p.styleUI === 'Bootstrap' && !isNaN(ts.p.height) ? 2 : 0;\n\t\tthead = null;\n\t\tgrid.hDiv = document.createElement(\"div\");\n\t\tgrid.hDiv.style.width = (grid.width - bstw) + \"px\";\n\t\tgrid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv');\n\n\t\t$(grid.hDiv).append(hb);\n\t\t$(hb).append(hTable);\n\t\thTable = null;\n\t\tif(hg) { $(grid.hDiv).hide(); }\n\t\tif(ts.p.pager){\n\t\t\t// TBD -- escape ts.p.pager here?\n\t\t\tif(typeof ts.p.pager === \"string\") {if(ts.p.pager.substr(0,1) !== \"#\") { ts.p.pager = \"#\"+ts.p.pager;} }\n\t\t\telse { ts.p.pager = \"#\"+ $(ts.p.pager).attr(\"id\");}\n\t\t\t$(ts.p.pager).css({width: grid.width+\"px\"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg);\n\t\t\tif(hg) {$(ts.p.pager).hide();}\n\t\t\tsetPager(ts.p.pager,'');\n\t\t}\n\t\tif( ts.p.cellEdit === false && ts.p.hoverrows === true) {\n\t\t\t$(ts).on({\n\t\t\t\tmouseover: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t$(ptr).addClass(hover);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmouseout: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t$(ptr).removeClass(hover);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tvar ri,ci, tdHtml;\n\t\t$(ts).before(grid.hDiv).on({\n\t\t\t'click': function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest(\"table.ui-jqgrid-btable\").attr('id') || '').replace(\"_frozen\",\"\") !== ts.id ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tvar scb = $(td).filter(\":enabled\").hasClass(\"cbox\"),\n\t\t\t\tcSel = $(ts).triggerHandler(\"jqGridBeforeSelectRow\", [ptr[0].id, e]);\n\t\t\t\tcSel = (cSel === false || cSel === 'stop') ? false : true;\n\t\t\t\tif ($.isFunction(ts.p.beforeSelectRow)) {\n\t\t\t\t\tvar allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e);\n\t\t\t\t\tif (allowRowSelect === false || allowRowSelect === 'stop') {\n\t\t\t\t\t\tcSel = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && !scb) ) { return; }\n\t\t\t\tri = ptr[0].id;\n\t\t\t\ttd = $(td).closest(\"tr.jqgrow>td\");\n\t\t\t\tif (td.length > 0) {\n\t\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\t\ttdHtml = $(td).closest(\"td,th\").html();\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridCellSelect\", [ri,ci,tdHtml,e]);\n\t\t\t\t\tif($.isFunction(ts.p.onCellSelect)) {\n\t\t\t\t\t\tts.p.onCellSelect.call(ts,ri,ci,tdHtml,e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.cellEdit === true) {\n\t\t\t\t\tif(ts.p.multiselect && scb && cSel){\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\", ri ,true,e);\n\t\t\t\t\t} else if (td.length > 0) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$(ts).jqGrid(\"editCell\", ptr[0].rowIndex, ci, true);\n\t\t\t\t\t\t} catch (_) {}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!cSel) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( !ts.p.multikey ) {\n\t\t\t\t\tif(ts.p.multiselect && ts.p.multiboxonly) {\n\t\t\t\t\t\tif(scb){$(ts).jqGrid(\"setSelection\",ri,true,e);}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar frz = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\t\t\t\t\t$(ts.p.selarrrow).each(function(i,n){\n\t\t\t\t\t\t\t\tvar trid = $(ts).jqGrid('getGridRowById',n);\n\t\t\t\t\t\t\t\tif(trid) { \n\t\t\t\t\t\t\t\t\t$( trid ).removeClass(highlight); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz)).removeClass(highlight);\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tts.p.selarrrow = [];\n\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(e[ts.p.multikey]) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t} else if(ts.p.multiselect && scb) {\n\t\t\t\t\t\tscb = $(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri).is(\":checked\");\n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", !scb);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'reloadGrid': function(e,opts) {\n\t\t\t\tif(ts.p.treeGrid ===true) {\tts.p.datatype = ts.p.treedatatype;}\n\t\t\t\topts = opts || {};\n\t\t\t\tif (opts.current) {\n\t\t\t\t\tts.grid.selectionPreserver(ts);\n\t\t\t\t}\n\t\t\t\tif(ts.p.datatype===\"local\"){ $(ts).jqGrid(\"resetSelection\");  if(ts.p.data.length) { normalizeData(); refreshIndex();} }\n\t\t\t\telse if(!ts.p.treeGrid) {\n\t\t\t\t\tts.p.selrow=null;\n\t\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[];setHeadCheckBox(false);}\n\t\t\t\t\tts.p.savedRow = [];\n\t\t\t\t}\n\t\t\t\tif(ts.p.scroll) {emptyRows.call(ts, true, false);}\n\t\t\t\tif (opts.page) {\n\t\t\t\t\tvar page = opts.page;\n\t\t\t\t\tif (page > ts.p.lastpage) { page = ts.p.lastpage; }\n\t\t\t\t\tif (page < 1) { page = 1; }\n\t\t\t\t\tts.p.page = page;\n\t\t\t\t\tif (ts.grid.prevRowHeight) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) {\n\t\t\t\t\tdelete ts.p.lastpage;\n\t\t\t\t\tts.grid.populateVisible();\n\t\t\t\t} else {\n\t\t\t\t\tts.grid.populate();\n\t\t\t\t}\n\t\t\t\tif(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t'dblclick' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar dbcr = $(ts).triggerHandler(\"jqGridDblClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\tif ($.isFunction(ts.p.ondblClickRow)) { \n\t\t\t\t\tdbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\t}\n\t\t\t},\n\t\t\t'contextmenu' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tif(!ts.p.multiselect) {\t$(ts).jqGrid(\"setSelection\",ptr[0].id,true,e);\t}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar rcr = $(ts).triggerHandler(\"jqGridRightClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\tif ($.isFunction(ts.p.onRightClickRow)) { \n\t\t\t\t\trcr = ts.p.onRightClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t//---\n\t\tgrid.bDiv = document.createElement(\"div\");\n\t\tif(isMSIE) { if(String(ts.p.height).toLowerCase() === \"auto\") { ts.p.height = \"100%\"; } }\n\t\t$(grid.bDiv)\n\t\t\t.append($('<div style=\"position:relative;\"></div>').append('<div></div>').append(this))\n\t\t\t.addClass(\"ui-jqgrid-bdiv\")\n\t\t\t.css({ height: ts.p.height+(isNaN(ts.p.height)?\"\":\"px\"), width: (grid.width - bstw)+\"px\"})\n\t\t\t.scroll(grid.scrollGrid);\n\t\t$(\"table:first\",grid.bDiv).css({width:ts.p.tblwidth+\"px\"});\n\t\tif( !$.support.tbody ) { //IE\n\t\t\tif( $(\"tbody\",this).length === 2 ) { $(\"tbody:gt(0)\",this).remove();}\n\t\t}\n\t\tif(ts.p.multikey){\n\t\t\tif( $.jgrid.msie()) {\n\t\t\t\t$(grid.bDiv).on(\"selectstart\",function(){return false;});\n\t\t\t} else {\n\t\t\t\t$(grid.bDiv).on(\"mousedown\",function(){return false;});\n\t\t\t}\n\t\t}\n\t\tif(hg) { // hidden grid\n\t\t\t$(grid.bDiv).hide();\n\t\t}\n\t\tvar icoo =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_open', true),\n\t\ticoc =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_close', true);\n\t\tgrid.cDiv = document.createElement(\"div\");\n\t\tvar arf = ts.p.hidegrid===true ? $(\"<a role='link' class='ui-jqgrid-titlebar-close HeaderButton \"+cornerall+\"' title='\"+($.jgrid.getRegional(ts, \"defaults.showhide\", ts.p.showhide) || \"\")+\"'\" + \" />\").hover(\n\t\t\tfunction(){ arf.addClass(hover);},\n\t\t\tfunction() {arf.removeClass(hover);})\n\t\t.append(\"<span class='ui-jqgrid-headlink \" + icoo +\"'></span>\").css((dir===\"rtl\"?\"left\":\"right\"),\"0px\") : \"\";\n\t\t$(grid.cDiv).append(arf).append(\"<span class='ui-jqgrid-title'>\"+ts.p.caption+\"</span>\")\n\t\t.addClass(\"ui-jqgrid-titlebar ui-jqgrid-caption\"+(dir===\"rtl\" ? \"-rtl\" :\"\" )+\" \"+getstyle(stylemodule,'gridtitleBox',true));\n\t\t$(grid.cDiv).insertBefore(grid.hDiv);\n\t\tif( ts.p.toolbar[0] ) {\n\t\t\tvar tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata');\n\t\t\tgrid.uDiv = document.createElement(\"div\");\n\t\t\tif(ts.p.toolbar[1] === \"top\") {$(grid.uDiv).insertBefore(grid.hDiv);}\n\t\t\telse if (ts.p.toolbar[1]===\"bottom\" ) {$(grid.uDiv).insertAfter(grid.hDiv);}\n\t\t\tif(ts.p.toolbar[1]===\"both\") {\n\t\t\t\tgrid.ubDiv = document.createElement(\"div\");\n\t\t\t\t$(grid.uDiv).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw);\n\t\t\t\t$(grid.ubDiv).addClass( tbstyle + \" ui-userdata-bottom\").attr(\"id\",\"tb_\"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw);\n\t\t\t\tif(hg)  {$(grid.ubDiv).hide();}\n\t\t\t} else {\n\t\t\t\t$(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id);\n\t\t\t}\n\t\t\tif(hg) {$(grid.uDiv).hide();}\n\t\t}\n\t\tif(ts.p.toppager) {\n\t\t\tts.p.toppager = $.jgrid.jqID(ts.p.id)+\"_toppager\";\n\t\t\tgrid.topDiv = $(\"<div id='\"+ts.p.toppager+\"'></div>\")[0];\n\t\t\tts.p.toppager = \"#\"+ts.p.toppager;\n\t\t\t$(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv);\n\t\t\tsetPager(ts.p.toppager,'_t');\n\t\t}\n\t\tif(ts.p.footerrow) {\n\t\t\tgrid.sDiv = $(\"<div class='ui-jqgrid-sdiv'></div>\")[0];\n\t\t\thb = $(\"<div class='ui-jqgrid-hbox\"+(dir===\"rtl\"?\"-rtl\":\"\")+\"'></div>\");\n\t\t\t$(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);\n\t\t\t$(hb).append(tfoot);\n\t\t\tgrid.footers = $(\".ui-jqgrid-ftable\",grid.sDiv)[0].rows[0].cells;\n\t\t\tif(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); }\n\t\t\tif(hg) {$(grid.sDiv).hide();}\n\t\t}\n\t\thb = null;\n\t\tif(ts.p.caption) {\n\t\t\tvar tdt = ts.p.datatype;\n\t\t\tif(ts.p.hidegrid===true) {\n\t\t\t\t$(\".ui-jqgrid-titlebar-close\",grid.cDiv).click( function(e){\n\t\t\t\t\tvar onHdCl = $.isFunction(ts.p.onHeaderClick),\n\t\t\t\t\telems = \".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv\",\n\t\t\t\t\tcounter, self = this;\n\t\t\t\t\tif(ts.p.toolbar[0]===true) {\n\t\t\t\t\t\tif( ts.p.toolbar[1]==='both') {\n\t\t\t\t\t\t\telems += ', #' + $(grid.ubDiv).attr('id');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telems += ', #' + $(grid.uDiv).attr('id');\n\t\t\t\t\t}\n\t\t\t\t\tcounter = $(elems,\"#gview_\"+$.jgrid.jqID(ts.p.id)).length;\n\n\t\t\t\t\tif(ts.p.gridstate === 'visible') {\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideUp(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoo).addClass(icoc);\n\t\t\t\t\t\t\t\tts.p.gridstate = 'hidden';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hide(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if(ts.p.gridstate === 'hidden'){\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideDown(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoc).addClass(icoo);\n\t\t\t\t\t\t\t\tif(hg) {ts.p.datatype = tdt;populate();hg=false;}\n\t\t\t\t\t\t\t\tts.p.gridstate = 'visible';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).show(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(hg) {ts.p.datatype=\"local\"; $(\".ui-jqgrid-titlebar-close\",grid.cDiv).trigger(\"click\");}\n\t\t\t}\n\t\t} else {\n\t\t\t$(grid.cDiv).hide();\n\t\t\tif(!ts.p.toppager) {\n\t\t\t\t$(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true));\n\t\t\t}\n\t\t}\n\t\t$(grid.hDiv).after(grid.bDiv)\n\t\t.mousemove(function (e) {\n\t\t\tif(grid.resizing){grid.dragMove(e);return false;}\n\t\t});\n\t\t$(\".ui-jqgrid-labels\",grid.hDiv).on(\"selectstart\", function () { return false; });\n\t\t$(document).on( \"mouseup.jqGrid\" + ts.p.id, function () {\n\t\t\tif(grid.resizing) {\tgrid.dragEnd( true ); return false;}\n\t\t\treturn true;\n\t\t});\n\t\tif(ts.p.direction === 'rtl') {\n\t\t\t$(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){\n\t\t\t\t\tvar  vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth;\n\t\t\t\t\t//gridhbox = $(\"div:first\",grid.hDiv);\n\t\t\t\t\tts.p.scrollOffset = vScrollWidth;\n\t\t\t\t\t// for future implementation\n\t\t\t\t\t//if (gridhbox.hasClass(\"ui-jqgrid-hbox-rtl\")) {\n\t\t\t\t\t\t$(\"div:first\",grid.hDiv).css({paddingLeft: vScrollWidth + \"px\"});\n\t\t\t\t\t//} else {\n\t\t\t\t\t\t//gridhbox.css({paddingRight: vScrollWidth + \"px\"});\n\t\t\t\t\t//}\n\t\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t});\n\t\t}\n\t\tts.formatCol = formatCol;\n\t\tts.sortData = sortData;\n\t\tts.updatepager = updatepager;\n\t\tts.refreshIndex = refreshIndex;\n\t\tts.setHeadCheckBox = setHeadCheckBox;\n\t\tts.constructTr = constructTr;\n\t\tts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};\n\t\t$.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq});\n\t\tthis.grid = grid;\n\t\tts.addXmlData = function(d) {addXmlData( d );};\n\t\tts.addJSONData = function(d) {addJSONData( d );};\n\t\tts.addLocalData = function(d) { return addLocalData( d );};\n\t\tthis.grid.cols = this.rows[0].cells;\n\t\t$(ts).triggerHandler(\"jqGridInitGrid\");\n\t\tif ($.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); }\n\t\tpopulate();\n\t\tts.p.hiddengrid=false;\n\t\tif(ts.p.responsive) {\n\t\t\tvar supportsOrientationChange = \"onorientationchange\" in window,\n\t\t\torientationEvent = supportsOrientationChange ? \"orientationchange\" : \"resize\";\t\t\n\t\t\t$(window).on( orientationEvent, function(){\n\t\t\t\t$(ts).jqGrid('resizeGrid');\n\t\t\t});\n\t\t}\n\t});\n};\n$.jgrid.extend({\n\tgetGridParam : function(name, module) {\n\t\tvar $t = this[0], ret;\n\t\tif (!$t || !$t.grid) {return;}\n\t\tif(module === undefined && typeof module !== 'string') {\n\t\t\tmodule = 'jqGrid'; //$t.p\n\t\t}\n\t\tret = $t.p;\n\t\tif(module !== 'jqGrid') {\n\t\t\ttry {\n\t\t\t\tret = $($t).data( module );\n\t\t\t} catch (e) {\n\t\t\t\tret = $t.p;\n\t\t\t}\n\t\t}\n\t\tif (!name) { return ret; }\t\n\t\treturn ret[name] !== undefined ? ret[name] : null;\n\t},\n\tsetGridParam : function (newParams, overwrite){\n\t\treturn this.each(function(){\n\t\t\tif(overwrite == null) {\n\t\t\t\toverwrite = false;\n\t\t\t}\n\t\t\tif (this.grid && typeof newParams === 'object') {\n\t\t\t\tif(overwrite === true) {\n\t\t\t\t\tvar params = $.extend({}, this.p, newParams);\n\t\t\t\t\tthis.p = params;\n\t\t\t\t} else {\n\t\t\t\t\t$.extend(true,this.p,newParams);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetGridRowById: function ( rowid ) {\n\t\tvar row;\n\t\tthis.each( function(){\n\t\t\ttry {\n\t\t\t\t//row = this.rows.namedItem( rowid );\n\t\t\t\tvar i = this.rows.length;\n\t\t\t\twhile(i--) {\n\t\t\t\t\tif( rowid.toString() === this.rows[i].id) {\n\t\t\t\t\t\trow = this.rows[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch ( e ) {\n\t\t\t\trow = $(this.grid.bDiv).find( \"#\" + $.jgrid.jqID( rowid ));\n\t\t\t}\n\t\t});\n\t\treturn row;\n\t},\n\tgetDataIDs : function () {\n\t\tvar ids=[], i=0, len, j=0;\n\t\tthis.each(function(){\n\t\t\tlen = this.rows.length;\n\t\t\tif(len && len>0){\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($(this.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\tids[j] = this.rows[i].id;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ids;\n\t},\n\tsetSelection : function(selection,onsr, e) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, stat,pt, ner, ia, tpsr, fid, csr,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle($t.p.styleUI+'.common','highlight', true),\n\t\t\tdisabled = getstyle($t.p.styleUI+'.common','disabled', true);\n\t\t\tif(selection === undefined) { return; }\n\t\t\tonsr = onsr === false ? false : true;\n\t\t\tpt=$($t).jqGrid('getGridRowById', selection);\n\t\t\tif(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; }\n\t\t\tfunction scrGrid(iR){\n\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\trpos = $($t.rows[iR]).position().top,\n\t\t\t\trh = $t.rows[iR].clientHeight;\n\t\t\t\tif(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }\n\t\t\t\telse if(rpos < ch+st) {\n\t\t\t\t\tif(rpos < st) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = rpos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.scrollrows===true) {\n\t\t\t\tner = $($t).jqGrid('getGridRowById',selection).rowIndex;\n\t\t\t\tif(ner >=0 ){\n\t\t\t\t\tscrGrid(ner);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.frozenColumns === true ) {\n\t\t\t\tfid = $t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(!$t.p.multiselect) {\t\n\t\t\t\tif(pt.className !== \"ui-subgrid\") {\n\t\t\t\t\tif( $t.p.selrow !== pt.id ) {\n\t\t\t\t\t\tcsr = $($t).jqGrid('getGridRowById', $t.p.selrow);\n\t\t\t\t\t\tif( csr ) {\n\t\t\t\t\t\t\t$(  csr ).removeClass(highlight).attr({\"aria-selected\":\"false\", \"tabindex\" : \"-1\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(pt).addClass(highlight).attr({\"aria-selected\":\"true\", \"tabindex\" : \"0\"});//.focus();\n\t\t\t\t\t\tif(fid) {\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstat = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\t\tif( onsr ) { \n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//unselect selectall checkbox when deselecting a specific row\n\t\t\t\t$t.setHeadCheckBox( false );\n\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\tia = $.inArray($t.p.selrow,$t.p.selarrrow);\n\t\t\t\tif (  ia === -1 ){\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).addClass(highlight).attr(\"aria-selected\",\"true\");}\n\t\t\t\t\tstat = true;\n\t\t\t\t\t$t.p.selarrrow.push($t.p.selrow);\n\t\t\t\t} else {\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).removeClass(highlight).attr(\"aria-selected\",\"false\");}\n\t\t\t\t\tstat = false;\n\t\t\t\t\t$t.p.selarrrow.splice(ia,1);\n\t\t\t\t\ttpsr = $t.p.selarrrow[0];\n\t\t\t\t\t$t.p.selrow = (tpsr === undefined) ? null : tpsr;\n\t\t\t\t}\n\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\tif(fid) {\n\t\t\t\t\tif(ia === -1) {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\t}\n\t\t\t\tif( onsr ) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tresetSelection : function( rowid ){\n\t\treturn this.each(function(){\n\t\t\tvar t = this, sr, fid,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle(t.p.styleUI+'.common','highlight', true),\n\t\t\thover = getstyle(t.p.styleUI+'.common','hover', true);\n\t\t\tif( t.p.frozenColumns === true ) {\n\t\t\t\tfid = t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(rowid !== undefined ) {\n\t\t\t\tsr = rowid === t.p.selrow ? t.p.selrow : rowid;\n\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(sr)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\tif (fid) { $(\"#\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\tif(t.p.multiselect) {\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { $(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false); }\n\t\t\t\t\tt.setHeadCheckBox( false);\n\t\t\t\t\tvar ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow);\n\t\t\t\t\tif (  ia !== -1 ){\n\t\t\t\t\t\tt.p.selarrrow.splice(ia,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); }\n\t\t\t\tsr = null;\n\t\t\t} else if(!t.p.multiselect) {\n\t\t\t\tif(t.p.selrow) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\tif(fid) { $(\"#\"+$.jgrid.jqID(t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); }\n\t\t\t\t\tt.p.selrow = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$(t.p.selarrrow).each(function(i,n){\n\t\t\t\t\t$( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { \n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); \n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t}\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); }\n\t\t\t\t});\n\t\t\t\tt.setHeadCheckBox( false );\n\t\t\t\tt.p.selarrrow = [];\n\t\t\t\tt.p.selrow = null;\n\t\t\t}\n\t\t\tif(t.p.cellEdit === true) {\n\t\t\t\tif(parseInt(t.p.iCol,10)>=0  && parseInt(t.p.iRow,10)>=0) {\n\t\t\t\t\t$(\"td:eq(\"+t.p.iCol+\")\",t.rows[t.p.iRow]).removeClass(\"edit-cell \" + highlight );\n\t\t\t\t\t$(t.rows[t.p.iRow]).removeClass(\"selected-row \" + hover );\n\t\t\t\t}\n\t\t\t}\n\t\t\tt.p.savedRow = [];\n\t\t});\n\t},\n\tgetRowData : function( rowid, usedata ) {\n\t\tvar res = {}, resall, getall=false, len, j=0;\n\t\tthis.each(function(){\n\t\t\tvar $t = this,nm,ind;\n\t\t\tif(rowid == null) {\n\t\t\t\tgetall = true;\n\t\t\t\tresall = [];\n\t\t\t\tlen = $t.rows.length-1;\n\t\t\t} else {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(!ind) { return res; }\n\t\t\t\tlen = 1;\n\t\t\t}\n\t\t\tif( !(usedata && usedata === true && $t.p.data.length > 0)  ) {\n\t\t\t\tusedata = false;\n\t\t\t}\n\t\t\twhile(j<len){\n\t\t\t\tif(getall) { \n\t\t\t\t\tind = $t.rows[j+1];  // ignore first not visible row\n\t\t\t\t}\n\t\t\t\tif( $(ind).hasClass('jqgrow') ) {\n\t\t\t\t\tif(usedata) {\n\t\t\t\t\t\tres = $t.p.data[$t.p._index[ind.id]]; \n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\t\t\tif($t.p.treeGrid===true && nm === $t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(\"span:first\",this).html());\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(getall) { resall.push(res); res={}; }\n\t\t\t\t}\n\t\t\t\tj++;\n\t\t\t}\n\t\t});\n\t\treturn resall || res;\n\t},\n\tdelRowData : function(rowid) {\n\t\tvar success = false, rowInd, ia, nextRow;\n\t\tthis.each(function() {\n\t\t\tvar $t = this;\n\t\t\trowInd = $($t).jqGrid('getGridRowById', rowid);\n\t\t\tif(!rowInd) {return false;}\n\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\tnextRow = $(rowInd).next();\n\t\t\t\t\tif(nextRow.hasClass('ui-subgrid')) {\n\t\t\t\t\t\tnextRow.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(rowInd).remove();\n\t\t\t\t$t.p.records--;\n\t\t\t\t$t.p.reccount--;\n\t\t\t\t$t.updatepager(true,false);\n\t\t\t\tsuccess=true;\n\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\tia = $.inArray(rowid,$t.p.selarrrow);\n\t\t\t\t\tif(ia !== -1) { $t.p.selarrrow.splice(ia,1);}\n\t\t\t\t}\n\t\t\t\tif ($t.p.multiselect && $t.p.selarrrow.length > 0) {\n\t\t\t\t\t$t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1];\n\t\t\t\t} else {\n\t\t\t\t\tif( $t.p.selrow === rowid ) {\n\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tif($t.p.datatype === 'local') {\n\t\t\t\tvar id = $.jgrid.stripPref($t.p.idPrefix, rowid),\n\t\t\t\tpos = $t.p._index[id];\n\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t$t.p.data.splice(pos,1);\n\t\t\t\t\t$t.refreshIndex();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( $t.p.altRows === true && success ) {\n\t\t\t\tvar cn = $t.p.altclass;\n\t\t\t\t$($t.rows).each(function(i){\n\t\t\t\t\tif(i % 2 === 1) { $(this).addClass(cn); }\n\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\tsetRowData : function(rowid, data, cssp) {\n\t\tvar nm, success=true, title;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid) {return false;}\n\t\t\tvar t = this, vl, ind, cp = typeof cssp, lcdata={};\n\t\t\tind = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(!ind) { return false; }\n\t\t\tif( data ) {\n\t\t\t\ttry {\n\t\t\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\tvar dval =$.jgrid.getAccessor(data,nm);\n\t\t\t\t\t\tif( dval !== undefined) {\n\t\t\t\t\t\t\tlcdata[nm] = this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval;\n\t\t\t\t\t\t\tvl = t.formatter( rowid, lcdata[nm], i, data, 'edit');\n\t\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm === t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tvar id = $.jgrid.stripPref(t.p.idPrefix, rowid),\n\t\t\t\t\t\tpos = t.p._index[id], key;\n\t\t\t\t\t\tif(t.p.treeGrid) {\n\t\t\t\t\t\t\tfor(key in t.p.treeReader){\n\t\t\t\t\t\t\t\tif(t.p.treeReader.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tdelete lcdata[t.p.treeReader[key]];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t\t\tt.p.data[pos] = $.extend(true, t.p.data[pos], lcdata);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlcdata = null;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tsuccess = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(success) {\n\t\t\t\tif(cp === 'string') {$(ind).addClass(cssp);} else if(cssp !== null && cp === 'object') {$(ind).css(cssp);}\n\t\t\t\t$(t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\taddRowData : function(rowid,rdata,pos,src) {\n\t\tif($.inArray( pos, [\"first\", \"last\", \"before\", \"after\"] ) === -1) {pos = \"last\";}\n\t\tvar success = false, nm, row, rnc=\"\", msc=\"\", gi, si, ni,sind, i, v, prp=\"\", aradd, cnm, cn, data, cm, id;\n\t\tif(rdata) {\n\t\t\tif($.isArray(rdata)) {\n\t\t\t\taradd=true;\n\t\t\t\t//pos = \"last\";\n\t\t\t\tcnm = rowid;\n\t\t\t} else {\n\t\t\t\trdata = [rdata];\n\t\t\t\taradd = false;\n\t\t\t}\n\t\t\tthis.each(function() {\n\t\t\t\tvar t = this, datalen = rdata.length;\n\t\t\t\tni = t.p.rownumbers===true ? 1 :0;\n\t\t\t\tgi = t.p.multiselect ===true ? 1 :0;\n\t\t\t\tsi = t.p.subGrid===true ? 1 :0;\n\t\t\t\tif(!aradd) {\n\t\t\t\t\tif(rowid !== undefined) { rowid = String(rowid);}\n\t\t\t\t\telse {\n\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\tif(t.p.keyName !== false) {\n\t\t\t\t\t\t\tcnm = t.p.keyName;\n\t\t\t\t\t\t\tif(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcn = t.p.altclass;\n\t\t\t\tvar k = 0, cna = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {}, classes,\n\t\t\t\tair = $.isFunction(t.p.afterInsertRow) ? true : false;\n\t\t\t\tif(ni) {\n\t\t\t\t\trnc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rownumBox', false, 'jqgrid-rownum');\n\t\t\t\t}\n\t\t\t\tif(gi) {\n\t\t\t\t\tmsc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'multiBox', false, 'cbox');\n\t\t\t\t}\n\t\t\t\twhile(k < datalen) {\n\t\t\t\t\tdata = rdata[k];\n\t\t\t\t\trow=[];\n\t\t\t\t\tclasses = cna;\n\t\t\t\t\tif(aradd) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trowid = data[cnm];\n\t\t\t\t\t\t\tif(rowid===undefined) {\n\t\t\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {rowid = $.jgrid.randId();}\n\t\t\t\t\t\tclasses += (t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? \" \" + cn : \"\" : \"\");\n\t\t\t\t\t}\n\t\t\t\t\tid = rowid;\n\t\t\t\t\trowid  = t.p.idPrefix + rowid;\n\t\t\t\t\tif(ni){\n\t\t\t\t\t\tprp = t.formatCol(0,1,'',null,rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \" + rnc +\" \"+prp+\">0</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(gi) {\n\t\t\t\t\t\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+t.p.id+\"_\"+rowid+\"\\\" \"+msc+\"/>\";\n\t\t\t\t\t\tprp = t.formatCol(ni,1,'', null, rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(si) {\n\t\t\t\t\t\trow[row.length] = $(t).jqGrid(\"addSubGridCell\",gi+ni,1);\n\t\t\t\t\t}\n\t\t\t\t\tfor(i = gi+si+ni; i < t.p.colModel.length;i++){\n\t\t\t\t\t\tcm = t.p.colModel[i];\n\t\t\t\t\t\tnm = cm.name;\n\t\t\t\t\t\tlcdata[nm] = data[nm];\n\t\t\t\t\t\tv = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data );\n\t\t\t\t\t\tprp = t.formatCol(i,1,v, data, rowid, lcdata);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\trow.unshift( t.constructTr(rowid, false, classes, lcdata, data ) );\n\t\t\t\t\trow[row.length] = \"</tr>\";\n\t\t\t\t\tif(t.rows.length === 0){\n\t\t\t\t\t\t$(\"table:first\",t.grid.bDiv).append(row.join(''));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch (pos) {\n\t\t\t\t\t\t\tcase 'last':\n\t\t\t\t\t\t\t\t$(t.rows[t.rows.length-1]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = t.rows.length-1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'first':\n\t\t\t\t\t\t\t\t$(t.rows[0]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif (sind) {\n\t\t\t\t\t\t\t\t\tif($(t.rows[sind.rowIndex+1]).hasClass(\"ui-subgrid\")) { $(t.rows[sind.rowIndex+1]).after(row); }\n\t\t\t\t\t\t\t\t\telse { $(sind).after(row.join('')); }\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex + 1;\n\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif(sind) {\n\t\t\t\t\t\t\t\t\t$(sind).before(row.join(''));\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex - 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(t.p.subGrid===true) {\n\t\t\t\t\t\t$(t).jqGrid(\"addSubGrid\",gi+ni, sind);\n\t\t\t\t\t}\n\t\t\t\t\tt.p.records++;\n\t\t\t\t\tt.p.reccount++;\n\t\t\t\t\t$(t).triggerHandler(\"jqGridAfterInsertRow\", [rowid,data,data]);\n\t\t\t\t\tif(air) { t.p.afterInsertRow.call(t,rowid,data,data); }\n\t\t\t\t\tk++;\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tlcdata[t.p.localReader.id] = id;\n\t\t\t\t\t\tt.p._index[id] = t.p.data.length;\n\t\t\t\t\t\tt.p.data.push(lcdata);\n\t\t\t\t\t\tlcdata = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.altRows === true && !aradd) {\n\t\t\t\t\tif (pos === \"last\") {\n\t\t\t\t\t\tif ((t.rows.length-1)%2 === 0)  {$(t.rows[t.rows.length-1]).addClass(cn);}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(t.rows).each(function(i){\n\t\t\t\t\t\t\tif(i % 2 ===0) { $(this).addClass(cn); }\n\t\t\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt.updatepager(true,true);\n\t\t\t\tsuccess = true;\n\t\t\t});\n\t\t}\n\t\treturn success;\n\t},\n\tfooterData : function(action,data, format) {\n\t\tvar nm, success=false, res={}, title;\n\t\tfunction isEmpty(obj) {\n\t\t\tvar i;\n\t\t\tfor(i in obj) {\n\t\t\t\tif (obj.hasOwnProperty(i)) { return false; }\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\tif(action === undefined) { action = \"get\"; }\n\t\tif(typeof format !== \"boolean\") { format  = true; }\n\t\taction = action.toLowerCase();\n\t\tthis.each(function(){\n\t\t\tvar t = this, vl;\n\t\t\tif(!t.grid || !t.p.footerrow) {return false;}\n\t\t\tif(action === \"set\") { if(isEmpty(data)) { return false; } }\n\t\t\tsuccess=true;\n\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\tnm = this.name;\n\t\t\t\tif(action === \"set\") {\n\t\t\t\t\tif( data[nm] !== undefined) {\n\t\t\t\t\t\tvl = format ? t.formatter( \"\", data[nm], i, data, 'edit') : data[nm];\n\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t$(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html(vl).attr(title);\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t} else if(action === \"get\") {\n\t\t\t\t\tres[nm] = $(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn action === \"get\" ? res : success;\n\t},\n\tshowHideCol : function(colname,show) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif( typeof colname === 'string') {colname=[colname];}\n\t\t\tshow = show !== \"none\" ? \"\" : \"none\";\n\t\t\tvar sw = show === \"\" ? true :false,\n\t\t\tgh = $t.p.groupHeader && ($.isArray($t.p.groupHeader) || $.isFunction($t.p.groupHeader) );\n\t\t\tif(gh) { $($t).jqGrid('destroyGroupHeader', false); }\n\t\t\t$(this.p.colModel).each(function(i) {\n\t\t\t\tif ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {\n\t\t\t\t\tif($t.p.frozenColumns === true && this.frozen === true) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr[role=row]\",$t.grid.hDiv).each(function(){\n\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t});\n\t\t\t\t\t$($t.rows).each(function(){\n\t\t\t\t\t\tif (!$(this).hasClass(\"jqgroup\")) {\n\t\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.footerrow) { $(\"tr.footrow td:eq(\"+i+\")\", $t.grid.sDiv).css(\"display\", show); }\n\t\t\t\t\tcw =  parseInt(this.width,10);\n\t\t\t\t\tif(show === \"none\") {\n\t\t\t\t\t\t$t.p.tblwidth -= cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$t.p.tblwidth += cw+brd;\n\t\t\t\t\t}\n\t\t\t\t\tthis.hidden = !sw;\n\t\t\t\t\tfndh=true;\n\t\t\t\t\t$($t).triggerHandler(\"jqGridShowHideCol\", [sw,this.name,i]);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(fndh===true) {\n\t\t\t\tif($t.p.shrinkToFit === true && !isNaN($t.p.height)) { $t.p.tblwidth += parseInt($t.p.scrollOffset,10);}\n\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.p.shrinkToFit === true ? $t.p.tblwidth : $t.p.width );\n\t\t\t}\n\t\t\tif( gh )  {\n\t\t\t\tvar gHead = $.extend([],$t.p.groupHeader);\n\t\t\t\t$t.p.groupHeader = null;\n\t\t\t\tfor(var k =0; k < gHead.length; k++) {\n\t\t\t\t\t$($t).jqGrid('setGroupHeaders', gHead[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\thideCol : function (colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"none\");});\n\t},\n\tshowCol : function(colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"\");});\n\t},\n\tremapColumns : function(permutation, updateCells, keepHeader) {\n\t\tfunction resortArray(a) {\n\t\t\tvar ac;\n\t\t\tif (a.length) {\n\t\t\t\tac = $.makeArray(a);\n\t\t\t} else {\n\t\t\t\tac = $.extend({}, a);\n\t\t\t}\n\t\t\t$.each(permutation, function(i) {\n\t\t\t\ta[i] = ac[this];\n\t\t\t});\n\t\t}\n\t\tvar ts = this.get(0);\n\t\tfunction resortRows(parent, clobj) {\n\t\t\t$(\">tr\"+(clobj||\"\"), parent).each(function() {\n\t\t\t\tvar row = this;\n\t\t\t\tvar elems = $.makeArray(row.cells);\n\t\t\t\t$.each(permutation, function() {\n\t\t\t\t\tvar e = elems[this];\n\t\t\t\t\tif (e) {\n\t\t\t\t\t\trow.appendChild(e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tresortArray(ts.p.colModel);\n\t\tresortArray(ts.p.colNames);\n\t\tresortArray(ts.grid.headers);\n\t\tresortRows($(\"thead:first\", ts.grid.hDiv), keepHeader && \":not(.ui-jqgrid-labels)\");\n\t\tif (updateCells) {\n\t\t\tresortRows($(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"), \".jqgfirstrow, tr.jqgrow, tr.jqfoot\");\n\t\t}\n\t\tif (ts.p.footerrow) {\n\t\t\tresortRows($(\"tbody:first\", ts.grid.sDiv));\n\t\t}\n\t\tif (ts.p.remapColumns) {\n\t\t\tif (!ts.p.remapColumns.length){\n\t\t\t\tts.p.remapColumns = $.makeArray(permutation);\n\t\t\t} else {\n\t\t\t\tresortArray(ts.p.remapColumns);\n\t\t\t}\n\t\t}\n\t\tts.p.lastsort = $.inArray(ts.p.lastsort, permutation);\n\t\tif(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }\n\t\t$(ts).triggerHandler(\"jqGridRemapColumns\", [permutation, updateCells, keepHeader]);\n\t},\n\tsetGridWidth : function(nwidth, shrink) {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) {return;}\n\t\t\tvar $t = this, cw,\n\t\t\tinitwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI === 'Bootstrap' ? 2 : 0;\n\t\t\tif(typeof shrink !== 'boolean') {\n\t\t\t\tshrink=$t.p.shrinkToFit;\n\t\t\t}\n\t\t\tif(isNaN(nwidth)) {return;}\n\t\t\tnwidth = parseInt(nwidth,10); \n\t\t\t$t.grid.width = $t.p.width = nwidth;\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$($t.grid.bDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\t$($t.grid.hDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\tif($t.p.pager ) {\n\t\t\t\t$($t.p.pager).css(\"width\",nwidth+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toppager ) {\n\t\t\t\t$($t.p.toppager).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toolbar[0] === true){\n\t\t\t\t$($t.grid.uDiv).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t\tif($t.p.toolbar[1]===\"both\") {$($t.grid.ubDiv).css(\"width\",(nwidth - bstw)+\"px\");}\n\t\t\t}\n\t\t\tif($t.p.footerrow) { \n\t\t\t\t$($t.grid.sDiv).css(\"width\",(nwidth - bstw)+\"px\"); \n\t\t\t}\n\t\t\tif(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}\n\t\t\tif(shrink===true) {\n\t\t\t\t$.each($t.p.colModel, function() {\n\t\t\t\t\tif(this.hidden===false){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvc++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(vc  === 0) { return; }\n\t\t\t\t$t.p.tblwidth = initwidth;\n\t\t\t\taw = nwidth-brd*vc-gw;\n\t\t\t\tif(!isNaN($t.p.height)) {\n\t\t\t\t\tif($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === 1){\n\t\t\t\t\t\ths = true;\n\t\t\t\t\t\taw -= scw;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\tvar cle = $t.grid.cols.length >0;\n\t\t\t\t$.each($t.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tcw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tif (cw < 0) { return; }\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\t$t.grid.headers[i].width=cw;\n\t\t\t\t\t\t$t.grid.headers[i].el.style.width=cw+\"px\";\n\t\t\t\t\t\tif($t.p.footerrow) { $t.grid.footers[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tif(cle) { $t.grid.cols[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (!lvc) { return; }\n\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(nwidth-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\t$t.p.colModel[lvc].width += cr;\n\t\t\t\t$t.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif($t.p.tblwidth > nwidth) {\n\t\t\t\t\tvar delta = $t.p.tblwidth - parseInt(nwidth,10);\n\t\t\t\t\t$t.p.tblwidth = nwidth;\n\t\t\t\t\tcw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;\n\t\t\t\t} else {\n\t\t\t\t\tcw= $t.p.colModel[lvc].width;\n\t\t\t\t}\n\t\t\t\t$t.grid.headers[lvc].width = cw;\n\t\t\t\t$t.grid.headers[lvc].el.style.width=cw+\"px\";\n\t\t\t\tif(cle) { $t.grid.cols[lvc].style.width = cw+\"px\"; }\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$t.grid.footers[lvc].style.width = cw+\"px\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.tblwidth) {\n\t\t\t\t$('table:first',$t.grid.bDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$('table:first',$t.grid.hDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$('table:first',$t.grid.sDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsetGridHeight : function (nh) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar bDiv = $($t.grid.bDiv);\n\t\t\tbDiv.css({height: nh+(isNaN(nh)?\"\":\"px\")});\n\t\t\tif($t.p.frozenColumns === true){\n\t\t\t\t//follow the original set height to use 16, better scrollbar width detection\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+\"_frozen\").parent().height(bDiv.height() - 16);\n\t\t\t}\n\t\t\t$t.p.height = nh;\n\t\t\tif ($t.p.scroll) { $t.grid.populateVisible(); }\n\t\t});\n\t},\n\tsetCaption : function (newcap){\n\t\treturn this.each(function(){\n\t\t\tvar ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+\".common\",'cornertop', true);\n\t\t\tthis.p.caption=newcap;\n\t\t\t$(\".ui-jqgrid-title, .ui-jqgrid-title-rtl\",this.grid.cDiv).html(newcap);\n\t\t\t$(this.grid.cDiv).show();\n\t\t\t$(this.grid.hDiv).removeClass(ctop);\n\t\t});\n\t},\n\tsetLabel : function(colname, nData, prop, attrp ){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { return; }\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif (nData){\n\t\t\t\t\tvar ico = $(\".s-ico\",thecol);\n\t\t\t\t\t$(\"[id^=jqgh_]\",thecol).empty().html(nData).append(ico);\n\t\t\t\t\t$t.p.colNames[pos] = nData;\n\t\t\t\t}\n\t\t\t\tif (prop) {\n\t\t\t\t\tif(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}\n\t\t\t\t}\n\t\t\t\tif(typeof attrp === 'object') {$(thecol).attr(attrp);}\n\t\t\t}\n\t\t});\n\t},\n\tsetSortIcon : function(colname, position) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1, addpix = 8;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif(position === 'left') {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"left\");\n\t\t\t\t} else {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"none\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t},\n\tsetCell : function(rowid,colname,nData,cssp,attrp, forceupd) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos =-1,v, title;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(colname)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(colname,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ind = $($t).jqGrid('getGridRowById', rowid); \n\t\t\t\tif (ind){\n\t\t\t\t\tvar tcell = $(\"td:eq(\"+pos+\")\",ind), cl=0, rawdat=[];\n\t\t\t\t\tif(nData !== \"\" || forceupd === true ) {\n\t\t\t\t\t\tif(ind.cells !== undefined) {\n\t\t\t\t\t\t\twhile(cl<ind.cells.length) {\n\t\t\t\t\t\t\t\t// slow down speed\n\t\t\t\t\t\t\t\trawdat.push(ind.cells[cl].innerHTML);\n\t\t\t\t\t\t\t\tcl++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $t.formatter(rowid, nData, pos, rawdat, 'edit');\n\t\t\t\t\t\ttitle = $t.p.colModel[pos].title ? {\"title\":$.jgrid.stripHtml(v)} : {};\n\t\t\t\t\t\tif($t.p.treeGrid && $(\".tree-wrap\",$(tcell)).length>0) {\n\t\t\t\t\t\t\t$(\"span\",$(tcell)).html(v).attr(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(tcell).html(v).attr(title);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.datatype === \"local\") {\n\t\t\t\t\t\t\tvar cm = $t.p.colModel[pos], index;\n\t\t\t\t\t\t\tnData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData;\n\t\t\t\t\t\t\tindex = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)];\n\t\t\t\t\t\t\tif(index !== undefined) {\n\t\t\t\t\t\t\t\t$t.p.data[index][cm.name] = nData;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cssp === 'string'){\n\t\t\t\t\t\t$(tcell).addClass(cssp);\n\t\t\t\t\t} else if(cssp) {\n\t\t\t\t\t\t$(tcell).css(cssp);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof attrp === 'object') {$(tcell).attr(attrp);}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetCell : function(rowid,col) {\n\t\tvar ret = false;\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1, cnm, ind;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tcnm = col;\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tcnm = this.name;\n\t\t\t\t\t\tpos = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpos = parseInt(col,10);\n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(ind) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tret = $.unformat.call($t,$(\"td:eq(\"+pos+\")\",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t} catch (e){\n\t\t\t\t\t\tret = $.jgrid.htmlDecode($(\"td:eq(\"+pos+\")\",ind).html());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($t.p.treeGrid && ret && $t.p.ExpandColumn === cnm) {\n\t\t\t\t\tret = $( \"<div>\" + ret +\"</div>\").find(\"span:first\").html();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetCol : function (col, obj, mathopr) {\n\t\tvar ret = [], val, sum=0, min, max, v;\n\t\tobj = typeof obj !== 'boolean' ? false : obj;\n\t\tif(mathopr === undefined) { mathopr = false; }\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(col,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ln = $t.rows.length, i =0, dlen=0;\n\t\t\t\tif (ln && ln>0){\n\t\t\t\t\twhile(i<ln){\n\t\t\t\t\t\tif($($t.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tval = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tval = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\t\t\tv = parseFloat(val);\n\t\t\t\t\t\t\t\tif(!isNaN(v)) {\n\t\t\t\t\t\t\t\t\tsum += v;\n\t\t\t\t\t\t\t\t\tif (max === undefined) {max = min = v;}\n\t\t\t\t\t\t\t\t\tmin = Math.min(min, v);\n\t\t\t\t\t\t\t\t\tmax = Math.max(max, v);\n\t\t\t\t\t\t\t\t\tdlen++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(obj) { ret.push( {id:$t.rows[i].id,value:val} ); }\n\t\t\t\t\t\t\telse { ret.push( val ); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\tswitch(mathopr.toLowerCase()){\n\t\t\t\t\t\t\tcase 'sum': ret =sum; break;\n\t\t\t\t\t\t\tcase 'avg': ret = sum/dlen; break;\n\t\t\t\t\t\t\tcase 'count': ret = (ln-1); break;\n\t\t\t\t\t\t\tcase 'min': ret = min; break;\n\t\t\t\t\t\t\tcase 'max': ret = max; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tclearGridData : function(clearfooter) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(typeof clearfooter !== 'boolean') { clearfooter = false; }\n\t\t\tif($t.p.deepempty) {$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:gt(0)\").remove();}\n\t\t\telse {\n\t\t\t\tvar trf = $(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:first\")[0];\n\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").empty().append(trf);\n\t\t\t}\n\t\t\tif($t.p.footerrow && clearfooter) { $(\".ui-jqgrid-ftable td\",$t.grid.sDiv).html(\"&#160;\"); }\n\t\t\t$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];\n\t\t\t$t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0;\n\t\t\t$t.p.data = []; $t.p._index = {};\n\t\t\t$t.updatepager(true,false);\n\t\t});\n\t},\n\tgetInd : function(rowid,rc){\n\t\tvar ret =false,rw;\n\t\tthis.each(function(){\n\t\t\trw = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(rw) {\n\t\t\t\tret = rc===true ? rw: rw.rowIndex;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tbindKeys : function( settings ){\n\t\tvar o = $.extend({\n\t\t\tonEnter: null,\n\t\t\tonSpace: null,\n\t\t\tonLeftKey: null,\n\t\t\tonRightKey: null,\n\t\t\tscrollingRows : true\n\t\t},settings || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$('body').is('[role]') ){$('body').attr('role','application');}\n\t\t\t$t.p.scrollrows = o.scrollingRows;\n\t\t\t$($t).keydown(function(event){\n\t\t\t\tvar target = $($t).find('tr[tabindex=0]')[0], id, r, mind,\n\t\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t\t//check for arrow keys\n\t\t\t\tif(target) {\n\t\t\t\t\tmind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)];\n\t\t\t\t\tif(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){\n\t\t\t\t\t\t// up key\n\t\t\t\t\t\tif(event.keyCode === 38 ){\n\t\t\t\t\t\t\tr = target.previousSibling;\n\t\t\t\t\t\t\tid = \"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.previousSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow')) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if key is down arrow\n\t\t\t\t\t\tif(event.keyCode === 40){\n\t\t\t\t\t\t\tr = target.nextSibling;\n\t\t\t\t\t\t\tid =\"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow') ) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// left\n\t\t\t\t\t\tif(event.keyCode === 37 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && $t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyLeft\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onLeftKey)) {\n\t\t\t\t\t\t\t\to.onLeftKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// right\n\t\t\t\t\t\tif(event.keyCode === 39 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && !$t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyRight\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onRightKey)) {\n\t\t\t\t\t\t\t\to.onRightKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//check if enter was pressed on a grid or treegrid node\n\t\t\t\t\telse if( event.keyCode === 13 ){\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyEnter\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onEnter)) {\n\t\t\t\t\t\t\to.onEnter.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(event.keyCode === 32) {\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeySpace\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onSpace)) {\n\t\t\t\t\t\t\to.onSpace.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tunbindKeys : function(){\n\t\treturn this.each(function(){\n\t\t\t$(this).off('keydown');\n\t\t});\n\t},\n\tgetLocalRow : function (rowid) {\n\t\tvar ret = false, ind;\n\t\tthis.each(function(){\n\t\t\tif(rowid !== undefined) {\n\t\t\t\tind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)];\n\t\t\t\tif(ind >= 0 ) {\n\t\t\t\t\tret = this.p.data[ind];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tprogressBar : function ( p ) {\n\t\tp = $.extend({\n\t\t\thtmlcontent : \"\",\n\t\t\tmethod : \"hide\",\n\t\t\tloadtype : \"disable\" \n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar sh = p.method===\"show\" ? true : false,\n\t\t\tloadDiv = $(\"#load_\"+$.jgrid.jqID(this.p.id)), \n\t\t\toffsetParent, top, \n\t\t\tscrollTop = $(window).scrollTop();\n\t\t\tif(p.htmlcontent !== \"\") {\n\t\t\t\tloadDiv.html( p.htmlcontent );\n\t\t\t}\n\t\t\tswitch(p.loadtype) {\n\t\t\t\tcase \"disable\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"enable\":\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"block\":\n\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID(this.p.id)).toggle( sh );\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (loadDiv.is(':visible')) {\n\t\t\t\toffsetParent = loadDiv.offsetParent();\n\t\t\t\tloadDiv.css('top', '');\n\t\t\t\tif (loadDiv.offset().top < scrollTop) {\n\t\t\t\t\ttop = Math.min(\n\t\t\t\t\t\t10 + scrollTop - offsetParent.offset().top,\n\t\t\t\t\t\toffsetParent.height() - loadDiv.height()\n\t\t\t\t\t);\n\t\t\t\t\tloadDiv.css('top', top + 'px');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetColProp : function(colname){\n\t\tvar ret ={}, $t = this[0];\n\t\tif ( !$t.grid ) { return false; }\n\t\tvar cM = $t.p.colModel, i;\n\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\tret = cM[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t},\n\tsetColProp : function(colname, obj){\n\t\t//do not set width will not work\n\t\treturn this.each(function(){\n\t\t\tif ( this.grid ) {\n\t\t\t\tif ( obj ) {\n\t\t\t\t\tvar cM = this.p.colModel, i;\n\t\t\t\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\t\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\t\t\t\t$.extend(true, this.p.colModel[i],obj);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsortGrid : function(colname,reload, sor){\n\t\treturn this.each(function(){\n\t\t\tvar $t=this,idx=-1,i, sobj=false;\n\t\t\tif ( !$t.grid ) { return;}\n\t\t\tif ( !colname ) { colname = $t.p.sortname; }\n\t\t\tfor ( i=0;i<$t.p.colModel.length;i++ ) {\n\t\t\t\tif ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) {\n\t\t\t\t\tidx = i;\n\t\t\t\t\tif($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) {\n\t\t\t\t\t\tsobj = $t.grid.fhDiv.find(\"#\" + $t.p.id + \"_\" + colname);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( idx !== -1 ){\n\t\t\t\tvar sort = $t.p.colModel[idx].sortable;\n\t\t\t\tif(!sobj) {\n\t\t\t\t\tsobj = $t.grid.headers[idx].el;\n\t\t\t\t}\n\t\t\t\tif ( typeof sort !== 'boolean' ) { sort =  true; }\n\t\t\t\tif ( typeof reload !=='boolean' ) { reload = false; }\n\t\t\t\tif ( sort ) { $t.sortData(\"jqgh_\"+$t.p.id+\"_\" + colname, idx, reload, sor, sobj); }\n\t\t\t}\n\t\t});\n\t},\n\tsetGridState : function(state) {\n\t\treturn this.each(function(){\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this,\n\t\t\topen = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_open', true),\n\t\t\tclose = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_close', true);\n\n\t\t\tif(state === 'hidden'){\n\t\t\t\t$(\".ui-jqgrid-bdiv, .ui-jqgrid-hdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideUp(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideUp(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( open ).addClass( close );\n\t\t\t\t$t.p.gridstate = 'hidden';\n\t\t\t} else if(state === 'visible') {\n\t\t\t\t$(\".ui-jqgrid-hdiv, .ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideDown(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideDown(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( close ).addClass( open );\n\t\t\t\t$t.p.gridstate = 'visible';\n\t\t\t}\n\n\t\t});\n\t},\n\tsetFrozenColumns : function () {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this, cm = $t.p.colModel,i=0, len = cm.length, maxfrozen = -1, frozen= false,\n\t\t\thd= $($t).jqGrid('getStyleUI',$t.p.styleUI+\".base\",'headerDiv', true, 'ui-jqgrid-hdiv'),\n\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t// TODO treeGrid and grouping  Support\n\t\t\tif($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll )\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($t.p.rownumbers) { i++; }\n\t\t\tif($t.p.multiselect) { i++; }\n\t\t\t\n\t\t\t// get the max index of frozen col\n\t\t\twhile(i<len)\n\t\t\t{\n\t\t\t\t// from left, no breaking frozen\n\t\t\t\tif(cm[i].frozen === true)\n\t\t\t\t{\n\t\t\t\t\tfrozen = true;\n\t\t\t\t\tmaxfrozen = i;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif( maxfrozen>=0 && frozen) {\n\t\t\t\tvar top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0,\n\t\t\t\thth = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\t\t\t\t//headers\n\t\t\t\tif($t.p.toppager) {\n\t\t\t\t\ttop = top + $($t.grid.topDiv).outerHeight();\n\t\t\t\t}\n\t\t\t\tif($t.p.toolbar[0] === true) {\n\t\t\t\t\tif($t.p.toolbar[1] !== \"bottom\") {\n\t\t\t\t\t\ttop = top + $($t.grid.uDiv).outerHeight();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$t.grid.fhDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+top+'px;height:'+hth+'px;\" class=\"frozen-div ' + hd +'\"></div>');\n\t\t\t\t$t.grid.fbDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+(parseInt(top,10)+parseInt(hth,10) + 1)+'px;overflow-y:hidden\" class=\"frozen-bdiv ui-jqgrid-bdiv\"></div>');\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv);\n\t\t\t\tvar htbl = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t// groupheader support - only if useColSpanstyle is false\n\t\t\t\tif($t.p.groupHeader) {\n\t\t\t\t\t$(\"tr.jqg-first-row-header, tr.jqg-third-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\tvar swapfroz = -1, fdel = -1, cs, rs;\n\t\t\t\t\t$(\"tr.jqg-second-row-header th\", htbl).each(function(){\n\t\t\t\t\t\tcs= parseInt($(this).attr(\"colspan\"),10);\n\t\t\t\t\t\trs= parseInt($(this).attr(\"rowspan\"),10);\n\t\t\t\t\t\tif(rs) {\n\t\t\t\t\t\t\tswapfroz++;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cs) {\n\t\t\t\t\t\t\tswapfroz = swapfroz+cs;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(swapfroz === maxfrozen) {\n\t\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(swapfroz !== maxfrozen) {\n\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr.jqg-second-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+fdel+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$(htbl).width(1);\n\t\t\t\tif(!$.jgrid.msie()) { $(htbl).css(\"height\",\"100%\"); }\n\t\t\t\t// resizing stuff\n\t\t\t\t$($t.grid.fhDiv).append(htbl)\n\t\t\t\t.mousemove(function (e) {\n\t\t\t\t\tif($t.grid.resizing){ $t.grid.dragMove(e);return false; }\n\t\t\t\t});\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\tvar hbd = $(\".ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\n\t\t\t\t\t$t.grid.fsDiv = $('<div style=\"position:absolute;left:0px;top:'+(parseInt(top,10)+parseInt(hth,10) + parseInt(hbd,10)+1)+'px;\" class=\"frozen-sdiv ui-jqgrid-sdiv\"></div>');\n\t\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv);\n\t\t\t\t\tvar ftbl = $(\".ui-jqgrid-ftable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr\",ftbl).each(function(){\n\t\t\t\t\t\t$(\"td:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\t$(ftbl).width(1);\n\t\t\t\t\t$($t.grid.fsDiv).append(ftbl);\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridResizeStop.setFrozenColumns', function (e, w, index) {\n\t\t\t\t\tvar rhth = $(\".ui-jqgrid-htable\",$t.grid.fhDiv);\n\t\t\t\t\t$(\"th:eq(\"+index+\")\",rhth).width( w ); \n\t\t\t\t\tvar btd = $(\".ui-jqgrid-btable\",$t.grid.fbDiv);\n\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",btd).width( w );\n\t\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t\tvar ftd = $(\".ui-jqgrid-ftable\",$t.grid.fsDiv);\n\t\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",ftd).width( w );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t// data stuff\n\t\t\t\t//TODO support for setRowData\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv);\n\t\t\t\t\n\t\t\t\t$($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) {\n\t\t\t\t\tvar st = $($t.grid.bDiv).scrollTop();\n\t\t\t\t\tif (e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0) {\n\t\t\t\t\t\t//up\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st - 25 );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//down\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st + 25 );\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout');\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridAfterGridComplete.setFrozenColumns', function () {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").remove();\n\t\t\t\t\t$($t.grid.fbDiv).height($($t.grid.bDiv).height()-14);\n\t\t\t\t\t// find max height\n\t\t\t\t\tvar mh = [];\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id) + \" tr[role=row].jqgrow\").each(function(){\n\t\t\t\t\t\tmh.push( $(\"td:visible:first\", this).height() );\n\t\t\t\t\t});\n\n\t\t\t\t\tvar btbl = $(\"#\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr[role=row]\",btbl).each(function(){\n\t\t\t\t\t\t$(\"td[role=gridcell]:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\n\t\t\t\t\t$(btbl).width(1).attr(\"id\",$t.p.id+\"_frozen\");\n\t\t\t\t\t$($t.grid.fbDiv).append(btbl);\n\t\t\t\t\t// set the height\n\t\t\t\t\t$(\"tr[role=row].jqgrow\",btbl).each(function(i, n){\n\t\t\t\t\t\t$(\"td:not(.jqgrid-rownum):visible:first\", this).height( mh[i] );\n\t\t\t\t\t});\n\n\t\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t\t$(\"tr.jqgrow\", btbl).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).addClass( hover ); },\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$(\"tr.jqgrow\", \"#\"+$.jgrid.jqID($t.p.id)).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").addClass( hover );},\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbtbl=null;\n\t\t\t\t});\n\t\t\t\tif(!$t.grid.hDiv.loading) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\t$t.p.frozenColumns = true;\n\t\t\t}\n\t\t});\n\t},\n\tdestroyFrozenColumns :  function() {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tif(this.p.frozenColumns === true) {\n\t\t\t\tvar $t = this,\n\t\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t\t$($t.grid.fhDiv).remove();\n\t\t\t\t$($t.grid.fbDiv).remove();\n\t\t\t\t$t.grid.fhDiv = null; $t.grid.fbDiv=null;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$($t.grid.fsDiv).remove();\n\t\t\t\t\t$t.grid.fsDiv = null;\n\t\t\t\t}\n\t\t\t\t$(this).off('.setFrozenColumns');\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\tvar ptr;\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).on({\n\t\t\t\t\t\t'mouseover': function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t\t\t$(ptr).addClass( hover );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'mouseout' : function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\t$(ptr).removeClass( hover );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.p.frozenColumns = false;\n\t\t\t}\n\t\t});\n\t},\n\tresizeColumn : function (iCol, newWidth) {\n\t\treturn this.each(function(){\n\t\t\tvar grid = this.grid, p = this.p, cm = p.colModel, i, cmLen = cm.length, diff, diffnv;\n\t\t\tif(typeof iCol === \"string\" ) {\n\t\t\t\tfor(i = 0; i < cmLen; i++) {\n\t\t\t\t\tif(cm[i].name === iCol) {\n\t\t\t\t\t\tiCol = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tiCol = parseInt( iCol, 10 );\n\t\t\t}\n\t\t\tnewWidth = parseInt( newWidth, 10);\n\t\t\t// filters\n\t\t\tif(typeof iCol !== \"number\" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== \"number\" ) { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\t\n\t\t\tif( newWidth < p.minColWidth ) { return; }\n\t\t\t\n\t\t\tif( p.forceFit ) {\n\t\t\t\tp.nv = 0;\n\t\t\t\tfor (i = iCol+1; i < cmLen; i++){\n\t\t\t\t\tif(cm[i].hidden !== true ) {\n\t\t\t\t\t\tp.nv = i - iCol; \n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// use resize stuff\n\t\t\tgrid.resizing = {idx : iCol };\n\t\t\tdiff = newWidth - grid.headers[iCol].width;\n\t\t\tif(p.forceFit) {\n\t\t\t\tdiffnv = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t\tif(diffnv < p.minColWidth) { return; }\n\t\t\t\tgrid.headers[ iCol + p.nv].newWidth = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t} \n\t\t\tgrid.newWidth = p.tblwidth + diff;\n\t\t\tgrid.headers[ iCol ].newWidth = newWidth;\n\t\t\tgrid.dragEnd( false );\n\t\t\t\n\t\t});\n\t},\n\tgetStyleUI : function( styleui, classui, notclasstag, gridclass) {\n\t\tvar ret = \"\", q = \"\";\n\t\ttry {\n\t\t\tvar stylemod = styleui.split(\".\");\n\t\t\tif(!notclasstag) {\n\t\t\t\tret = \"class=\";\n\t\t\t\tq = \"\\\"\";\n\t\t\t}\n\t\t\tif(gridclass == null) {\n\t\t\t\tgridclass = \"\";\n\t\t\t}\n\t\t\tswitch(stylemod.length) {\n\t\t\t\tcase 1 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][classui] + q);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q);\n\t\t\t}\n\t\t} catch (cls) {\n\t\t\tret = \"\";\n\t\t}\n\t\treturn ret;\n\t},\n\tresizeGrid : function (timeout) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(timeout === undefined) {\n\t\t\t\ttimeout = 500;\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\ttry {\n\t\t\t\t\tvar winwidth = $(window).width(),\n\t\t\t\t\tparentwidth = $(\"#gbox_\"+$.jgrid.jqID($t.p.id)).parent().width(),\n\t\t\t\t\tww = $t.p.width;\n\t\t\t\t\tif( (winwidth-parentwidth) > 3 ) {\n\t\t\t\t\t\tww = parentwidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tww = winwidth;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww);\n\t\t\t\t} catch(e){}\n\t\t\t}, timeout);\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.celledit.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n/**\n * all events and options here are aded anonynous and not in the base grid\n * since the array is to big. Here is the order of execution.\n * From this point we use jQuery isFunction\n * formatCell\n * beforeEditCell,\n * onSelectCell (used only for noneditable cels)\n * afterEditCell,\n * beforeSaveCell, (called before validation of values if any)\n * beforeSubmitCell (if cellsubmit remote (ajax))\n * afterSubmitCell(if cellsubmit remote (ajax)),\n * afterSaveCell,\n * errorCell,\n * validationCell\n * serializeCellData - new\n * Options\n * cellsubmit (remote,clientArray) (added in grid options)\n * cellurl\n * ajaxCellOptions\n * restoreCellonFail\n* */\n\"use strict\";\n//module begin\n$.jgrid.extend({\n\teditCell : function (iRow,iCol, ed){\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nm, tmp,cc, cm,\n\t\t\thighlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true),\n\t\t\t\n\t\t\thover = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true),\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".celledit\",'inputClass', true);\n\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tiCol = parseInt(iCol,10);\n\t\t\t// select the row that can be used for other methods\n\t\t\t$t.p.selrow = $t.rows[iRow].id;\n\t\t\tif (!$t.p.knv) {$($t).jqGrid(\"GridNav\");}\n\t\t\t// check to see if we have already edited cell\n\t\t\tif ($t.p.savedRow.length>0) {\n\t\t\t\t// prevent second click on that field and enable selects\n\t\t\t\tif (ed===true ) {\n\t\t\t\t\tif(iRow == $t.p.iRow && iCol == $t.p.iCol){\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// save the cell\n\t\t\t\t$($t).jqGrid(\"saveCell\",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},1);\n\t\t\t}\n\t\t\tcm = $t.p.colModel[iCol];\n\t\t\tnm = cm.name;\n\t\t\tif (nm==='subgrid' || nm==='cb' || nm==='rn') {return;}\n\t\t\ttry {\n\t\t\t\tcc = $($t.rows[iRow].cells[iCol]);\n\t\t\t} catch(e) {\n\t\t\t\tcc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t}\n\t\t\tif (cm.editable===true && ed===true && !cc.hasClass(\"not-editable-cell\") && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {\n\t\t\t\tif(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttry {\n\t\t\t\t\ttmp =  $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);\n\t\t\t\t} catch (_) {\n\t\t\t\t\ttmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html();\n\t\t\t\t}\n\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\tif (!cm.edittype) {cm.edittype = \"text\";}\n\t\t\t\t$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});\n\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\tif($.isFunction($t.p.formatCell)) {\n\t\t\t\t\tvar tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t\tif(tmp2 !== undefined ) {tmp = tmp2;}\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridBeforeEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.beforeEditCell)) {\n\t\t\t\t\t$t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t\tvar opt = $.extend({}, cm.editoptions || {} ,{id:iRow+\"_\"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit'});\n\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\tif( $.inArray(cm.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t$(elc).addClass(inpclass);\n\t\t\t\t}\n\n\t\t\t\tcc.html(\"\").append(elc).attr(\"tabindex\",\"0\");\n\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\twindow.setTimeout(function () { $(elc).focus();},1);\n\t\t\t\t$(\"input, select, textarea\",cc).on(\"keydown\",function(e) {\n\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\tif($(\"input.hasDatepicker\",cc).length >0) {\n\t\t\t\t\t\t\tif( $(\".ui-datepicker\").is(\":hidden\") )  { $($t).jqGrid(\"restoreCell\",iRow,iCol); }\n\t\t\t\t\t\t\telse { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t}\n\t\t\t\t\t} //ESC\n\t\t\t\t\tif (e.keyCode === 13 && !e.shiftKey) {\n\t\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t\t\t// Prevent default action\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} //Enter\n\t\t\t\t\tif (e.keyCode === 9)  {\n\t\t\t\t\t\tif(!$t.grid.hDiv.loading ) {\n\t\t\t\t\t\t\tif (e.shiftKey) {$($t).jqGrid(\"prevCell\",iRow,iCol);} //Shift TAb\n\t\t\t\t\t\t\telse {$($t).jqGrid(\"nextCell\",iRow,iCol);} //Tab\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterEditCell)) {\n\t\t\t\t\t$t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttmp = cc.html().replace(/\\&#160\\;/ig,'');\n\t\t\t\t$($t).triggerHandler(\"jqGridSelectCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.onSelectCell)) {\n\t\t\t\t\t$t.p.onSelectCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$t.p.iCol = iCol; $t.p.iRow = iRow;\n\t\t});\n\t},\n\tsaveCell : function (iRow, iCol){\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr,\n\t\t\terrors = $.jgrid.getRegional(this, 'errors'),\n\t\t\tedit =$.jgrid.getRegional(this, 'edit');\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} \n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]),v,v2,\n\t\t\t\tcm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm),\n\t\t\t\tp = $(cc).offset();\n\n\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).val();\n\t\t\t\t\t\t\tv2 = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar sel = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), selectedText = [];\n\t\t\t\t\t\t\tv = $(sel).val();\n\t\t\t\t\t\t\tif(v) { v.join(\",\");} else { v=\"\"; }\n\t\t\t\t\t\t\t$(\"option:selected\",sel).each(\n\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tv2 = selectedText.join(\",\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm.formatter) { v2 = v; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\tvar cbv  = [\"Yes\",\"No\"];\n\t\t\t\t\t\tif(cm.editoptions){\n\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"password\":\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).val();\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\tv = cm.editoptions.custom_value.call($t, $(\".customelement\",cc),'get');\n\t\t\t\t\t\t\t\tif (v===undefined) { throw \"e2\";} else { v2=v; }\n\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// The common approach is if nothing changed do not do anything\n\t\t\t\tif (v2 !== $t.p.savedRow[fr].v){\n\t\t\t\t\tvar vvv = $($t).triggerHandler(\"jqGridBeforeSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\tif (vvv) {v = vvv; v2=vvv;}\n\t\t\t\t\tif ($.isFunction($t.p.beforeSaveCell)) {\n\t\t\t\t\t\tvar vv = $t.p.beforeSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\tif (vv) {v = vv; v2=vv;}\n\t\t\t\t\t}\n\t\t\t\t\tvar cv = $.jgrid.checkValues.call($t,v,iCol), nuem = false;\n\t\t\t\t\tif(cv[0] === true) {\n\t\t\t\t\t\tvar addpost = $($t).triggerHandler(\"jqGridBeforeSubmitCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]) || {};\n\t\t\t\t\t\tif ($.isFunction($t.p.beforeSubmitCell)) {\n\t\t\t\t\t\t\taddpost = $t.p.beforeSubmitCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\tif (!addpost) {addpost={};}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( $(\"input.hasDatepicker\",cc).length >0) { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'remote') {\n\t\t\t\t\t\t\tif ($t.p.cellurl) {\n\t\t\t\t\t\t\t\tvar postdata = {};\n\t\t\t\t\t\t\t\tif($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }\n\t\t\t\t\t\t\t\tif(cm.editoptions && cm.editoptions.NullIfEmpty && v === \"\") {\n\t\t\t\t\t\t\t\t\tv = 'null';\n\t\t\t\t\t\t\t\t\tnuem = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tpostdata[nm] = v;\n\t\t\t\t\t\t\t\tvar idname,oper, opers;\n\t\t\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.rows[iRow].id);\n\t\t\t\t\t\t\t\tpostdata[oper] = opers.editoper;\n\t\t\t\t\t\t\t\tpostdata = $.extend(addpost,postdata);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') });\n\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = true;\n\t\t\t\t\t\t\t\t$.ajax( $.extend( {\n\t\t\t\t\t\t\t\t\turl: $t.p.cellurl,\n\t\t\t\t\t\t\t\t\tdata :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata,\n\t\t\t\t\t\t\t\t\ttype: \"POST\",\n\t\t\t\t\t\t\t\t\tcomplete: function (result, stat) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : $t.p.loadui });\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\tif (stat === 'success') {\n\t\t\t\t\t\t\t\t\t\t\tvar ret = $($t).triggerHandler(\"jqGridAfterSubmitCell\", [$t, result, postdata.id, nm, v, iRow, iCol]) || [true, ''];\n\t\t\t\t\t\t\t\t\t\t\tif (ret[0] === true && $.isFunction($t.p.afterSubmitCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\tret = $t.p.afterSubmitCell.call($t, result,postdata.id,nm,v,iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif(ret[0] === true){\n\t\t\t\t\t\t\t\t\t\t\t\tif(nuem) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = \"\";\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, v2, false, false, true);\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, result, stat);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\terror:function(res,stat,err) {\n\t\t\t\t\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridErrorCell\", [res, stat, err]);\n\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, res,stat,err);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, res.status+\" : \"+res.statusText+\"<br/>\"+stat, edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'clientArray') {\n\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id,iCol, v2, false, false, true);\n\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t\t\t$t.p.validationCell.call($t, $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), cv[1], iRow, iCol);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.setTimeout(function(){\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,v+ \" \" + cv[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},50);\n\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\talert(cv[1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\trestoreCell : function(iRow, iCol) {\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}\n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t\t// datepicker fix\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",cc).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$(cc).empty().attr(\"tabindex\",\"-1\");\n\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterRestoreCell\", [$t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterRestoreCell)) {\n\t\t\t\t\t$t.p.afterRestoreCell.call($t, $t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol);\n\t\t\t\t}\t\t\t\t\n\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$t.p.knv).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\tnextCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol+1; i<$t.p.colModel.length; i++) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tprevCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol-1; i>=0; i--) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tGridNav : function() {\n\t\treturn this.each(function () {\n\t\t\tvar  $t = this;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t// trick to process keydown on non input elements\n\t\t\t$t.p.knv = $t.p.id + \"_kn\";\n\t\t\tvar selection = $(\"<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='\"+$t.p.knv+\"'></div></div>\"),\n\t\t\ti, kdir;\n\t\t\tfunction scrollGrid(iR, iC, tp){\n\t\t\t\tif (tp.substr(0,1)==='v') {\n\t\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\t\tnROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,\n\t\t\t\t\tpROT = $t.rows[iR].offsetTop;\n\t\t\t\t\tif(tp === 'vd') {\n\t\t\t\t\t\tif(nROT >= ch) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(tp === 'vu'){\n\t\t\t\t\t\tif (pROT < st ) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(tp==='h') {\n\t\t\t\t\tvar cw = $($t.grid.bDiv)[0].clientWidth,\n\t\t\t\t\tsl = $($t.grid.bDiv)[0].scrollLeft,\n\t\t\t\t\tnCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,\n\t\t\t\t\tpCOL = $t.rows[iR].cells[iC].offsetLeft;\n\t\t\t\t\tif(nCOL >= cw+parseInt(sl,10)) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t} else if (pCOL < sl) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction findNextVisible(iC,act){\n\t\t\t\tvar ind, i;\n\t\t\t\tif(act === 'lft') {\n\t\t\t\t\tind = iC+1;\n\t\t\t\t\tfor (i=iC;i>=0;i--){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(act === 'rgt') {\n\t\t\t\t\tind = iC-1;\n\t\t\t\t\tfor (i=iC; i<$t.p.colModel.length;i++){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ind;\n\t\t\t}\n\n\t\t\t$(selection).insertBefore($t.grid.cDiv);\n\t\t\t$(\"#\"+$t.p.knv)\n\t\t\t.focus()\n\t\t\t.keydown(function (e){\n\t\t\t\tkdir = e.keyCode;\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\tif(kdir===37) { kdir = 39;}\n\t\t\t\t\telse if (kdir===39) { kdir = 37; }\n\t\t\t\t}\n\t\t\t\tswitch (kdir) {\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tif ($t.p.iRow-1 >0 ) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow-1,$t.p.iCol,'vu');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow-1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 40 :\n\t\t\t\t\t\tif ($t.p.iRow+1 <=  $t.rows.length-1) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow+1,$t.p.iCol,'vd');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow+1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 37 :\n\t\t\t\t\t\tif ($t.p.iCol -1 >=  0) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol-1,'lft');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow, i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow, i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 39 :\n\t\t\t\t\t\tif ($t.p.iCol +1 <=  $t.p.colModel.length-1) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol+1,'rgt');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow,i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 13:\n\t\t\t\t\t\tif (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,$t.p.iCol,true);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tdefault :\n\t\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t});\n\t},\n\tgetChangedCells : function (mthd) {\n\t\tvar ret=[];\n\t\tif (!mthd) {mthd='all';}\n\t\tthis.each(function(){\n\t\t\tvar $t= this,nm;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t$($t.rows).each(function(j){\n\t\t\t\tvar res = {};\n\t\t\t\tif ($(this).hasClass(\"edited\")) {\n\t\t\t\t\t$('td',this).each( function(i) {\n\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid') {\n\t\t\t\t\t\t\tif (mthd==='dirty') {\n\t\t\t\t\t\t\t\tif ($(this).hasClass('dirty-cell')) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tres.id = this.id;\n\t\t\t\t\tret.push(res);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn ret;\n\t}\n/// end  cell editing\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.common.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./jqModal\",\n\t\t\t\"./jqDnR\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.extend($.jgrid,{\n// Modal functions\n\tshowModal : function(h) {\n\t\th.w.show();\n\t},\n\tcloseModal : function(h) {\n\t\th.w.hide().attr(\"aria-hidden\",\"true\");\n\t\tif(h.o) {h.o.remove();}\n\t},\n\thideModal : function (selector,o) {\n\t\to = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {});\n\t\tvar thisgrid = o.gb && typeof o.gb === \"string\" && o.gb.substr(0,6) === \"#gbox_\" ? $(\"#\" + o.gb.substr(6))[0] : false;\n\t\tif(o.onClose) {\n\t\t\tvar oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector);\n\t\t\tif (typeof oncret === 'boolean'  && !oncret ) { return; }\n\t\t}\n\t\tif( o.formprop && thisgrid  && o.form) {\n\t\t\tvar fh = $(selector)[0].style.height,\n\t\t\tfw = $(selector)[0].style.width;\n\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\tfh = parseFloat(fh);\n\t\t\t}\n\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\tfw = parseFloat(fw);\n\t\t\t}\n\t\t\tvar frmgr, frmdata;\n\t\t\tif(o.form==='edit'){\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"FrmGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"formProp\";\n\t\t\t} else if( o.form === 'view') {\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"ViewGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"viewProp\";\n\t\t\t}\n\t\t\t$(thisgrid).data(frmdata, {\n\t\t\t\ttop:parseFloat($(selector).css(\"top\")),\n\t\t\t\tleft : parseFloat($(selector).css(\"left\")),\n\t\t\t\twidth : fw,\n\t\t\t\theight : fh,\n\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t});\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\t$(selector).attr(\"aria-hidden\",\"true\").jqmHide();\n\t\t} else {\n\t\t\tif(o.gb !== '') {\n\t\t\t\ttry {$(\".jqgrid-overlay:first\",o.gb).hide();} catch (e){}\n\t\t\t}\n\t\t\t$(selector).hide().attr(\"aria-hidden\",\"true\");\n\t\t}\n\t\tif( o.removemodal ) {\n\t\t\t$(selector).remove();\n\t\t}\n\t},\n//Helper functions\n\tfindPos : function(obj) {\n\t\tvar offset = $(obj).offset();\n\t\treturn [offset.left,offset.top];\n\t},\n\tcreateModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {\n\t\tp = $.extend(true, {}, $.jgrid.jqModal || {}, p);\n\t\tvar self = this,\n\t\t\trtlsup = $(p.gbox).attr(\"dir\") === \"rtl\" ? true : false,\n\t\t\tclasses = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal,\n\t\t\tcommon = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common,\n\t\t\tmw  = document.createElement('div');\n\t\tcss = $.extend({}, css || {});\n\t\tmw.className= \"ui-jqdialog \" + classes.modal;\n\t\tmw.id = aIDs.themodal;\n\t\tvar mh = document.createElement('div');\n\t\tmh.className = \"ui-jqdialog-titlebar \" + classes.header;\n\t\tmh.id = aIDs.modalhead;\n\t\t$(mh).append(\"<span class='ui-jqdialog-title'>\"+p.caption+\"</span>\");\n\t\tvar ahr= $(\"<a class='ui-jqdialog-titlebar-close \"+common.cornerall+\"'></a>\")\n\t\t.hover(function(){ahr.addClass(common.hover);},\n\t\t\tfunction(){ahr.removeClass(common.hover);})\n\t\t.append(\"<span class='\" + common.icon_base+\" \" + classes.icon_close + \"'></span>\");\n\t\t$(mh).append(ahr);\n\t\tif(rtlsup) {\n\t\t\tmw.dir = \"rtl\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"right\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"left\",0.3+\"em\");\n\t\t} else {\n\t\t\tmw.dir = \"ltr\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"left\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"right\",0.3+\"em\");\n\t\t}\n\t\tvar mc = document.createElement('div');\n\t\t$(mc).addClass(\"ui-jqdialog-content \" + classes.content).attr(\"id\",aIDs.modalcontent);\n\t\t$(mc).append(content);\n\t\tmw.appendChild(mc);\n\t\t$(mw).prepend(mh);\n\t\tif(appendsel===true) { \n\t\t\t$('body').append(mw); \n\t\t} //append as first child in body -for alert dialog\n\t\telse if (typeof appendsel === \"string\") {\n\t\t\t$(appendsel).append(mw);\n\t\t} else {\n\t\t\t$(mw).insertBefore(insertSelector);\n\t\t}\n\t\t$(mw).css(css);\n\t\tif(p.jqModal === undefined) {p.jqModal = true;} // internal use\n\t\tvar coord = {};\n\t\tif ( $.fn.jqm && p.jqModal === true) {\n\t\t\tif(p.left ===0 && p.top===0 && p.overlay) {\n\t\t\t\tvar pos = [];\n\t\t\t\tpos = $.jgrid.findPos(posSelector);\n\t\t\t\tp.left = pos[0] + 4;\n\t\t\t\tp.top = pos[1] + 4;\n\t\t\t}\n\t\t\tcoord.top = p.top+\"px\";\n\t\t\tcoord.left = p.left;\n\t\t} else if(p.left !==0 || p.top!==0) {\n\t\t\tcoord.left = p.left;\n\t\t\tcoord.top = p.top+\"px\";\n\t\t}\n\t\t$(\"a.ui-jqdialog-titlebar-close\",mh).click(function(){\n\t\t\tvar oncm = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\tvar gboxclose = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"gbox\") || p.gbox;\n\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\treturn false;\n\t\t});\n\t\tif (p.width === 0 || !p.width) {p.width = 300;}\n\t\tif(p.height === 0 || !p.height) {p.height =200;}\n\t\tif(!p.zIndex) {\n\t\t\tvar parentZ = $(insertSelector).parents(\"*[role=dialog]\").filter(':first').css(\"z-index\");\n\t\t\tif(parentZ) {\n\t\t\t\tp.zIndex = parseInt(parentZ,10)+2;\n\t\t\t} else {\n\t\t\t\tp.zIndex = 950;\n\t\t\t}\n\t\t}\n\t\tvar rtlt = 0;\n\t\tif( rtlsup && coord.left && !appendsel) {\n\t\t\trtlt = $(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do\n\t\t// just in case\n\t\t\tcoord.left = parseInt(coord.left,10) + parseInt(rtlt,10);\n\t\t}\n\t\tif(coord.left) { coord.left += \"px\"; }\n\t\t$(mw).css($.extend({\n\t\t\twidth: isNaN(p.width) ? \"auto\": p.width+\"px\",\n\t\t\theight:isNaN(p.height) ? \"auto\" : p.height + \"px\",\n\t\t\tzIndex:p.zIndex,\n\t\t\toverflow: 'hidden'\n\t\t},coord))\n\t\t.attr({tabIndex: \"-1\",\"role\":\"dialog\",\"aria-labelledby\":aIDs.modalhead,\"aria-hidden\":\"true\"});\n\t\tif(p.drag === undefined) { p.drag=true;}\n\t\tif(p.resize === undefined) {p.resize=true;}\n\t\tif (p.drag) {\n\t\t\t$(mh).css('cursor','move');\n\t\t\tif($.fn.tinyDraggable) {\n\t\t\t\t//$(mw).jqDrag(mh);\n\t\t\t\t$(mw).tinyDraggable({ handle:\"#\"+$.jgrid.jqID(mh.id) });\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).draggable({handle: $(\"#\"+$.jgrid.jqID(mh.id))});\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t}\n\t\tif(p.resize) {\n\t\t\tif($.fn.jqResize) {\n\t\t\t\t$(mw).append(\"<div class='jqResize \"+classes.resizable+\" \"+common.icon_base + \" \" +classes.icon_resizable+\"'></div>\");\n\t\t\t\t$(\"#\"+$.jgrid.jqID(aIDs.themodal)).jqResize(\".jqResize\",aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false});\n\t\t\t\t} catch (r) {}\n\t\t\t}\n\t\t}\n\t\tif(p.closeOnEscape === true){\n\t\t\t$(mw).keydown( function( e ) {\n\t\t\t\tif( e.which === 27 ) {\n\t\t\t\t\tvar cone = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tviewModal : function (selector,o){\n\t\to = $.extend({\n\t\t\ttoTop: true,\n\t\t\toverlay: 10,\n\t\t\tmodal: false,\n\t\t\toverlayClass : 'ui-widget-overlay', // to be fixed\n\t\t\tonShow: $.jgrid.showModal,\n\t\t\tonHide: $.jgrid.closeModal,\n\t\t\tgbox: '',\n\t\t\tjqm : true,\n\t\t\tjqM : true\n\t\t}, o || {});\n\t\tif(o.focusField === undefined) {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif(typeof o.focusField === \"number\" && o.focusField >= 0 ) {\n\t\t\to.focusField = parseInt(o.focusField,10);\n\t\t} else if(typeof o.focusField === \"boolean\" && !o.focusField) {\n\t\t\to.focusField = false;\n\t\t} else {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\tif(o.jqM) { $(selector).attr(\"aria-hidden\",\"false\").jqm(o).jqmShow(); }\n\t\t\telse {$(selector).attr(\"aria-hidden\",\"false\").jqmShow();}\n\t\t} else {\n\t\t\tif(o.gbox !== '') {\n\t\t\t\t$(\".jqgrid-overlay:first\",o.gbox).show();\n\t\t\t\t$(selector).data(\"gbox\",o.gbox);\n\t\t\t}\n\t\t\t$(selector).show().attr(\"aria-hidden\",\"false\");\n\t\t\tif(o.focusField >= 0) {\n\t\t\t\ttry{$(':input:visible',selector)[parseInt(o.focusField,10)].focus();}catch(_){}\n\t\t\t}\n\t\t}\n\t},\n\tinfo_dialog : function(caption, content,c_b, modalopt) {\n\t\tvar mopt = {\n\t\t\twidth:290,\n\t\t\theight:'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tdrag: true,\n\t\t\tresize: false,\n\t\t\tleft:250,\n\t\t\ttop:170,\n\t\t\tzIndex : 1000,\n\t\t\tjqModal : true,\n\t\t\tmodal : false,\n\t\t\tcloseOnEscape : true,\n\t\t\talign: 'center',\n\t\t\tbuttonalign : 'center',\n\t\t\tbuttons : []\n\t\t// {text:'textbutt', id:\"buttid\", onClick : function(){...}}\n\t\t// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...\n\t\t};\n\t\t$.extend(true, mopt, $.jgrid.jqModal || {}, {caption:\"<b>\"+caption+\"</b>\"}, modalopt || {});\n\t\tvar jm = mopt.jqModal, self = this,\n\t\tclasses = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].modal,\n\t\tcommon = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].common;\n\t\tif($.fn.jqm && !jm) { jm = false; }\n\t\t// in case there is no jqModal\n\t\tvar buttstr =\"\", i;\n\t\tif(mopt.buttons.length > 0) {\n\t\t\tfor(i=0;i<mopt.buttons.length;i++) {\n\t\t\t\tif(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = \"info_button_\"+i; }\n\t\t\t\tbuttstr += \"<a id='\"+mopt.buttons[i].id+\"' class='fm-button \" + common.button+\"'>\"+mopt.buttons[i].text+\"</a>\";\n\t\t\t}\n\t\t}\n\t\tvar dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+\"px\",\n\t\tcn = \"text-align:\"+mopt.align+\";\";\n\t\tvar cnt = \"<div id='info_id'>\";\n\t\tcnt += \"<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:\"+dh+\";\"+cn+\"'>\"+content+\"</div>\";\n\t\tcnt += c_b ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button \" + common.button + \"'>\"+c_b+\"</a>\"+buttstr+\"</div>\" :\n\t\t\tbuttstr !== \"\"  ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>\"+buttstr+\"</div>\" : \"\";\n\t\tcnt += \"</div>\";\n\n\t\ttry {\n\t\t\tif($(\"#info_dialog\").attr(\"aria-hidden\") === \"false\") {\n\t\t\t\t$.jgrid.hideModal(\"#info_dialog\",{jqm:jm});\n\t\t\t}\n\t\t\t$(\"#info_dialog\").remove();\n\t\t} catch (e){}\n\t\t$.jgrid.createModal({\n\t\t\tthemodal:'info_dialog',\n\t\t\tmodalhead:'info_head',\n\t\t\tmodalcontent:'info_content',\n\t\t\tscrollelm: 'infocnt'},\n\t\t\tcnt,\n\t\t\tmopt,\n\t\t\t'','',true\n\t\t);\n\t\t// attach onclick after inserting into the dom\n\t\tif(buttstr) {\n\t\t\t$.each(mopt.buttons,function(i){\n\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id),\"#info_id\").on('click',function(){mopt.buttons[i].onClick.call($(\"#info_dialog\")); return false;});\n\t\t\t});\n\t\t}\n\t\t$(\"#closedialog\", \"#info_id\").on('click',function(){\n\t\t\tself.hideModal(\"#info_dialog\",{\n\t\t\t\tjqm:jm,\n\t\t\t\tonClose: $(\"#info_dialog\").data(\"onClose\") || mopt.onClose,\n\t\t\t\tgb: $(\"#info_dialog\").data(\"gbox\") || mopt.gbox\n\t\t\t});\n\t\t\treturn false;\n\t\t});\n\t\t$(\".fm-button\",\"#info_dialog\").hover(\n\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t);\n\t\tif($.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); }\n\t\t$.jgrid.viewModal(\"#info_dialog\",{\n\t\t\tonHide: function(h) {\n\t\t\t\th.w.hide().remove();\n\t\t\t\tif(h.o) { h.o.remove(); }\n\t\t\t},\n\t\t\tmodal :mopt.modal,\n\t\t\tjqm:jm\n\t\t});\n\t\tif($.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); }\n\t\ttry{ $(\"#info_dialog\").focus();} catch (m){}\n\t},\n\tbindEv: function  (el, opt) {\n\t\tvar $t = this;\n\t\tif($.isFunction(opt.dataInit)) {\n\t\t\topt.dataInit.call($t,el,opt);\n\t\t}\n\t\tif(opt.dataEvents) {\n\t\t\t$.each(opt.dataEvents, function() {\n\t\t\t\tif (this.data !== undefined) {\n\t\t\t\t\t$(el).on(this.type, this.data, this.fn);\n\t\t\t\t} else {\n\t\t\t\t\t$(el).on(this.type, this.fn);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n// Form Functions\n\tcreateEl : function(eltype,options,vl,autowidth, ajaxso) {\n\t\tvar elem = \"\", $t = this;\n\t\tfunction setAttributes(elm, atr, exl ) {\n\t\t\tvar exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper'];\n\t\t\tif(exl !== undefined && $.isArray(exl)) {\n\t\t\t\t$.merge(exclude, exl);\n\t\t\t}\n\t\t\t$.each(atr, function(key, value){\n\t\t\t\tif($.inArray(key, exclude) === -1) {\n\t\t\t\t\t$(elm).attr(key,value);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!atr.hasOwnProperty('id')) {\n\t\t\t\t$(elm).attr('id', $.jgrid.randId());\n\t\t\t}\n\t\t}\n\t\tswitch (eltype)\n\t\t{\n\t\t\tcase \"textarea\" :\n\t\t\t\telem = document.createElement(\"textarea\");\n\t\t\t\tif(autowidth) {\n\t\t\t\t\tif(!options.cols) { $(elem).css({width:\"98%\"});}\n\t\t\t\t} else if (!options.cols) { options.cols = 20; }\n\t\t\t\tif(!options.rows) { options.rows = 2; }\n\t\t\t\tif(vl==='&nbsp;' || vl==='&#160;' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl=\"\";}\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\t$(elem).attr({\"role\":\"textbox\",\"multiline\":\"true\"});\n\t\t\tbreak;\n\t\t\tcase \"checkbox\" : //what code for simple checkbox\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = \"checkbox\";\n\t\t\t\tif( !options.value ) {\n\t\t\t\t\tvar vl1 = (vl+\"\").toLowerCase();\n\t\t\t\t\tif(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!==\"\") {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t\telem.value = vl;\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.value = \"on\";\n\t\t\t\t\t}\n\t\t\t\t\t$(elem).attr(\"offval\",\"off\");\n\t\t\t\t} else {\n\t\t\t\t\tvar cbval = options.value.split(\":\");\n\t\t\t\t\tif(vl === cbval[0]) {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t}\n\t\t\t\t\telem.value = cbval[0];\n\t\t\t\t\t$(elem).attr(\"offval\",cbval[1]);\n\t\t\t\t}\n\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t$(elem).attr(\"role\",\"checkbox\");\n\t\t\tbreak;\n\t\t\tcase \"select\" :\n\t\t\t\telem = document.createElement(\"select\");\n\t\t\t\telem.setAttribute(\"role\",\"select\");\n\t\t\t\tvar msl, ovm = [];\n\t\t\t\tif(options.multiple===true) {\n\t\t\t\t\tmsl = true;\n\t\t\t\t\telem.multiple=\"multiple\";\n\t\t\t\t\t$(elem).attr(\"aria-multiselectable\",\"true\");\n\t\t\t\t} else { msl = false; }\n\t\t\t\tif(options.dataUrl != null) {\n\t\t\t\t\tvar rowid = null, postData = options.postData || ajaxso.postData;\n\t\t\t\t\ttry {\n\t\t\t\t\t\trowid = options.rowId;\n\t\t\t\t\t} catch(e) {}\n\n\t\t\t\t\tif ($t.p && $t.p.idPrefix) {\n\t\t\t\t\t\trowid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\t}\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl: $.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl,\n\t\t\t\t\t\ttype : \"GET\",\n\t\t\t\t\t\tdataType: \"html\",\n\t\t\t\t\t\tdata: $.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData,\n\t\t\t\t\t\tcontext: {elem:elem, options:options, vl:vl},\n\t\t\t\t\t\tsuccess: function(data){\n\t\t\t\t\t\t\tvar ovm = [], elem = this.elem, vl = this.vl,\n\t\t\t\t\t\t\toptions = $.extend({},this.options),\n\t\t\t\t\t\t\tmsl = options.multiple===true,\n\t\t\t\t\t\t\tcU = options.cacheUrlData === true,\n\t\t\t\t\t\t\toV ='', txt,\n\t\t\t\t\t\t\ta = $.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data;\n\t\t\t\t\t\t\tif(typeof a === 'string') {\n\t\t\t\t\t\t\t\ta = $( $.trim( a ) ).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(a) {\n\t\t\t\t\t\t\t\t$(elem).append(a);\n\t\t\t\t\t\t\t\tsetAttributes(elem, options, postData ? ['postData'] : undefined );\n\t\t\t\t\t\t\t\tif(options.size === undefined) { options.size =  msl ? 3 : 1;}\n\t\t\t\t\t\t\t\tif(msl) {\n\t\t\t\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tovm[0] = $.trim(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//$(elem).attr(options);\n\t\t\t\t\t\t\t\t//setTimeout(function(){\n\t\t\t\t\t\t\t\t$(\"option\",elem).each(function(i){\n\t\t\t\t\t\t\t\t\ttxt = $(this).text();\n\t\t\t\t\t\t\t\t\tvl = $(this).val();\n\t\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\t\toV += (i!== 0 ? \";\": \"\")+ vl+\":\"+txt; \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//if(i===0) { this.selected = \"\"; }\n\t\t\t\t\t\t\t\t\t// fix IE8/IE7 problem with selecting of the first item on multiple=true\n\t\t\t\t\t\t\t\t\tif (i === 0 && elem.multiple) { this.selected = false; }\n\t\t\t\t\t\t\t\t\t$(this).attr(\"role\",\"option\");\n\t\t\t\t\t\t\t\t\tif($.inArray($.trim(txt),ovm) > -1 || $.inArray($.trim(vl),ovm) > -1 ) {\n\t\t\t\t\t\t\t\t\t\tthis.selected= \"selected\";\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\tif(options.oper === 'edit') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper === 'search') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper ==='filter') {\n\t\t\t\t\t\t\t\t\t\tif($(\"#fbox_\"+$t.p.id)[0].p) {\n\t\t\t\t\t\t\t\t\t\t\tvar cols = $(\"#fbox_\"+$t.p.id)[0].p.columns, nm;\n\t\t\t\t\t\t\t\t\t\t\t$.each(cols,function(i) {\n\t\t\t\t\t\t\t\t\t\t\t\tnm  =  this.index || this.name;\n\t\t\t\t\t\t\t\t\t\t\t\tif(options.name === nm) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.dataUrl = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.value = oV;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterSelectUrlComplete\", [elem]);\n\t\t\t\t\t\t\t\t//},0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},ajaxso || {}));\n\t\t\t\t} else if(options.value) {\n\t\t\t\t\tvar i;\n\t\t\t\t\tif(options.size === undefined) {\n\t\t\t\t\t\toptions.size = msl ? 3 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof options.value === 'function') { options.value = options.value(); }\n\t\t\t\t\tvar so,sv, ov, oSv, key, value,\n\t\t\t\t\tsep = options.separator === undefined ? \":\" : options.separator,\n\t\t\t\t\tdelim = options.delimiter === undefined ? \";\" : options.delimiter;\n\t\t\t\t\tif(typeof options.value === 'string') {\n\t\t\t\t\t\tso = options.value.split(delim);\n\t\t\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\t\t\tsv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\tov.value = sv[0]; ov.innerHTML = sv[1];\n\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\tif (!msl &&  ($.trim(sv[0]) === $.trim(vl) || $.trim(sv[1]) === $.trim(vl))) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(sv[1]), ovm)>-1 || $.inArray($.trim(sv[0]), ovm)>-1)) {ov.selected =\"selected\";}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (Object.prototype.toString.call(options.value) === \"[object Array]\") {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\t// array of arrays [[Key, Value], [Key, Value], ...]\n\t\t\t\t\t\tfor (i=0; i<oSv.length; i++) {\n\t\t\t\t\t\t\tif(oSv[i].length === 2) {\n\t\t\t\t\t\t\t\tkey = oSv[i][0]; \n\t\t\t\t\t\t\t\tvalue = oSv[i][1];\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = value;\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(value) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(value),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (typeof options.value === 'object') {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\tfor (key in oSv) {\n\t\t\t\t\t\t\tif (oSv.hasOwnProperty(key ) ){\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = oSv[key];\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(oSv[key]) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(oSv[key]),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"image\" :\n\t\t\tcase \"file\" :\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tbreak;\n\t\t\tcase \"custom\" :\n\t\t\t\telem = document.createElement(\"span\");\n\t\t\t\ttry {\n\t\t\t\t\tif($.isFunction(options.custom_element)) {\n\t\t\t\t\t\tvar celm = options.custom_element.call($t,vl,options);\n\t\t\t\t\t\tif(celm) {\n\t\t\t\t\t\t\tcelm = $(celm).addClass(\"customelement\").attr({id:options.id,name:options.name});\n\t\t\t\t\t\t\t$(elem).empty().append(celm);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow \"e2\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow \"e1\";\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\t\t\t\t\tedit =$.jgrid.getRegional($t, 'edit');\n\n\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,typeof e===\"string\"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tdefault :\n\t\t\t\tvar role;\n\t\t\t\tif(eltype===\"button\") { role = \"button\"; }\n\t\t\t\telse { role = \"textbox\"; } // ???\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tif(eltype !== \"button\"){\n\t\t\t\t\tif(autowidth) {\n\t\t\t\t\t\tif(!options.size) { $(elem).css({width:\"96%\"}); }\n\t\t\t\t\t} else if (!options.size) { options.size = 20; }\n\t\t\t\t}\n\t\t\t\t$(elem).attr(\"role\",role);\n\t\t}\n\t\treturn elem;\n\t},\n// Date Validation Javascript\n\tcheckDate : function (format, date) {\n\t\tvar daysInFebruary = function(year){\n\t\t// February has 29 days in any year evenly divisible by four,\n\t\t// EXCEPT for centurial years which are not also divisible by 400.\n\t\t\treturn (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );\n\t\t},\n\t\ttsp = {}, sep;\n\t\tformat = format.toLowerCase();\n\t\t//we search for /,-,. for the date separator\n\t\tif(format.indexOf(\"/\") !== -1) {\n\t\t\tsep = \"/\";\n\t\t} else if(format.indexOf(\"-\") !== -1) {\n\t\t\tsep = \"-\";\n\t\t} else if(format.indexOf(\".\") !== -1) {\n\t\t\tsep = \".\";\n\t\t} else {\n\t\t\tsep = \"/\";\n\t\t}\n\t\tformat = format.split(sep);\n\t\tdate = date.split(sep);\n\t\tif (date.length !== 3) { return false; }\n\t\tvar j=-1,yln, dln=-1, mln=-1, i;\n\t\tfor(i=0;i<format.length;i++){\n\t\t\tvar dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10);\n\t\t\ttsp[format[i]] = dv;\n\t\t\tyln = format[i];\n\t\t\tif(yln.indexOf(\"y\") !== -1) { j=i; }\n\t\t\tif(yln.indexOf(\"m\") !== -1) { mln=i; }\n\t\t\tif(yln.indexOf(\"d\") !== -1) { dln=i; }\n\t\t}\n\t\tif (format[j] === \"y\" || format[j] === \"yyyy\") {\n\t\t\tyln=4;\n\t\t} else if(format[j] ===\"yy\"){\n\t\t\tyln = 2;\n\t\t} else {\n\t\t\tyln = -1;\n\t\t}\n\t\tvar daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31],\n\t\tstrDate;\n\t\tif (j === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[j]].toString();\n\t\t\tif(yln === 2 && strDate.length === 1) {yln = 1;}\n\t\t\tif (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!==\"00\")){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(mln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[mln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(dln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[dln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){\n\t\t\t\treturn false;\n\t\t\t}\n\t\treturn true;\n\t},\n\tisEmpty : function(val)\n\t{\n\t\tif (val === undefined || val.match(/^\\s+$/) || val === \"\")\t{\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\tcheckTime : function(time){\n\t// checks only hh:ss (and optional am/pm)\n\t\tvar re = /^(\\d{1,2}):(\\d{2})([apAP][Mm])?$/,regs;\n\t\tif(!$.jgrid.isEmpty(time))\n\t\t{\n\t\t\tregs = time.match(re);\n\t\t\tif(regs) {\n\t\t\t\tif(regs[3]) {\n\t\t\t\t\tif(regs[1] < 1 || regs[1] > 12) { return false; }\n\t\t\t\t} else {\n\t\t\t\t\tif(regs[1] > 23) { return false; }\n\t\t\t\t}\n\t\t\t\tif(regs[2] > 59) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\tcheckValues : function(val, valref, customobject, nam) {\n\t\tvar edtrul,i, nm, dft, len, g = this, cm = g.p.colModel,\n\t\tmsg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate;\n\t\tif(customobject === undefined) {\n\t\t\tif(typeof valref==='string'){\n\t\t\t\tfor( i =0, len=cm.length;i<len; i++){\n\t\t\t\t\tif(cm[i].name===valref) {\n\t\t\t\t\t\tedtrul = cm[i].editrules;\n\t\t\t\t\t\tvalref = i;\n\t\t\t\t\t\tif(cm[i].formoptions != null) { nm = cm[i].formoptions.label; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(valref >=0) {\n\t\t\t\tedtrul = cm[valref].editrules;\n\t\t\t}\n\t\t} else {\n\t\t\tedtrul = customobject;\n\t\t\tnm = nam===undefined ? \"_\" : nam;\n\t\t}\n\t\tif(edtrul) {\n\t\t\tif(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; }\n\t\t\tif(edtrul.required === true) {\n\t\t\t\tif( $.jgrid.isEmpty(val) )  { return [false,nm+\": \"+msg.required,\"\"]; }\n\t\t\t}\n\t\t\t// force required\n\t\t\tvar rqfield = edtrul.required === false ? false : true;\n\t\t\tif(edtrul.number === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.number,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) {\n\t\t\t\tif (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+\": \"+msg.minValue+\" \"+edtrul.minValue,\"\"];}\n\t\t\t}\n\t\t\tif(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) {\n\t\t\t\tif (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+\": \"+msg.maxValue+\" \"+edtrul.maxValue,\"\"];}\n\t\t\t}\n\t\t\tvar filter;\n\t\t\tif(edtrul.email === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t// taken from $ Validate plugin\n\t\t\t\t\tfilter = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.email,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.integer === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.integer,\"\"]; }\n\t\t\t\t\tif ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+\": \"+msg.integer,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.date === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(cm[valref].formatoptions && cm[valref].formatoptions.newformat) {\n\t\t\t\t\t\tdft = cm[valref].formatoptions.newformat;\n\t\t\t\t\t\tfmtdate = $.jgrid.getRegional(g, 'formatter.date.masks');\n\t\t\t\t\t\tif(fmtdate && fmtdate.hasOwnProperty(dft) ) {\n\t\t\t\t\t\t\tdft = fmtdate[dft];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdft = cm[valref].datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tif(!$.jgrid.checkDate (dft, val)) { return [false,nm+\": \"+msg.date+\" - \"+dft,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.time === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(!$.jgrid.checkTime (val)) { return [false,nm+\": \"+msg.date+\" - hh:mm (am/pm)\",\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.url === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tfilter = /^(((https?)|(ftp)):\\/\\/([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\\\/+@&#;`~=%!]*)(\\.\\w{2,})?)*\\/?)/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.url,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.custom === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif($.isFunction(edtrul.custom_func)) {\n\t\t\t\t\t\tvar ret = edtrul.custom_func.call(g,val,nm,valref);\n\t\t\t\t\t\treturn $.isArray(ret) ? ret : [false,msg.customarray,\"\"];\n\t\t\t\t\t}\n\t\t\t\t\treturn [false,msg.customfcheck,\"\"];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [true,\"\",\"\"];\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.export.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, jqGridUtils, JSZip, pdfMake */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./jquery.fmatter\",\n\t\t\t\"./grid.utils\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n\n$.jgrid = $.jgrid || {};\n\n\n$.extend($.jgrid,{\n\tformatCell : function ( cellval , colpos, rwdat, cm, $t){\n\t\tvar v;\n\t\tif(cm.formatter !== undefined) {\n\t\t\tvar opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '' };\n\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\tv = cm.formatter.call($t,cellval,opts,rwdat);\n\t\t\t} else if($.fmatter){\n\t\t\t\tv = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat);\n\t\t\t} else {\n\t\t\t\tv = cellval;\n\t\t\t}\n\t\t} else {\n\t\t\tv = cellval;\n\t\t}\n\t\treturn v;\n\t},\n\tformatCellCsv : function (v, p) {\n\t\tv = v == null ? '' : String(v);\n\t\ttry {\n\t\t\tv = v.replace(p._regexsep ,p.separatorReplace).replace(/\\r\\n/g, p.replaceNewLine).replace(/\\n/g, p.replaceNewLine);\n\t\t} catch (_e) {\n\t\t\tv=\"\";\n\t\t}\n\t\tif(p.escquote) {\n\t\t\tv = v.replace(p._regexquot, p.escquote + p.quote);\n\t\t}\n\t\tif( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) {\n\t\t\tv = p.quote + v + p.quote;\n\t\t}\n\t\treturn v;\t\t\n\t},\n\n\texcelCellPos : function ( n ){\n\t\tvar ordA = 'A'.charCodeAt(0),\n\t\tordZ = 'Z'.charCodeAt(0),\n\t\tlen = ordZ - ordA + 1,\n\t\ts = \"\";\n\n\t\twhile( n >= 0 ) {\n\t\t\ts = String.fromCharCode(n % len + ordA) + s;\n\t\t\tn = Math.floor(n / len) - 1;\n\t\t}\n\n\t\treturn s;\n\t},\n\n\tmakeNode : function ( root, elemName, options ) {\n\t\tvar currNode = root.createElement( elemName );\n\n\t\tif ( options ) {\n\t\t\tif ( options.attr ) {\n\t\t\t\t$(currNode).attr( options.attr );\n\t\t\t}\n\t\t\tif( options.children ) {\n\t\t\t\t$.each( options.children, function ( key, value ) {\n\t\t\t\t\tcurrNode.appendChild( value );\n\t\t\t\t});\n\t\t\t}\n\t\t\tif( options.text ) {\n\t\t\t\tcurrNode.appendChild( root.createTextNode( options.text ) );\n\t\t\t}\n\t\t}\n\t\treturn currNode;\n\t},\n\txmlToZip : function ( zip, obj ) {\n\t\tvar $t = this,\n\t\txmlserialiser = new XMLSerializer(),\n\t\t// IE >= 9\n\t\tieExcel = xmlserialiser.serializeToString(\t\n\t\t\t$.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) )\n\t\t\t.indexOf( 'xmlns:r' ) === -1,\n\t\tnewDir, worksheet, i, ien, attr, attrs = [], str;\n\n\t\t$.each( obj, function ( name, val ) {\n\t\t\tif ( $.isPlainObject( val ) ) {\n\t\t\t\tnewDir = zip.folder( name );\n\t\t\t\t$t.xmlToZip( newDir, val );\n\t\t\t} else {\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tworksheet = val.childNodes[0];\n\t\t\t\t\tfor ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {\n\t\t\t\t\t\tvar attrName = worksheet.attributes[i].nodeName;\n\t\t\t\t\t\tvar attrValue = worksheet.attributes[i].nodeValue;\n\n\t\t\t\t\t\tif ( attrName.indexOf( ':' ) !== -1 ) {\n\t\t\t\t\t\t\tattrs.push( { name: attrName, value: attrValue } );\n\n\t\t\t\t\t\t\tworksheet.removeAttribute( attrName );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( i=0, ien=attrs.length ; i<ien ; i++ ) {\n\t\t\t\t\t\tattr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );\n\t\t\t\t\t\tattr.value = attrs[i].value;\n\t\t\t\t\t\tworksheet.setAttributeNode( attr );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// suuport of all browsers\n\t\t\t\tstr = xmlserialiser.serializeToString(val);\n\t\t\t\t// Fix IE's XML\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tif ( str.indexOf( '<?xml' ) === -1 ) {\n\t\t\t\t\t\tstr = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+str;\n\t\t\t\t\t}\n\t\t\t\t\tstr = str.replace( /_dt_b_namespace_token_/g, ':' );\n\t\t\t\t}\n\n\t\t\t\tstr = str\n\t\t\t\t\t.replace( /<row xmlns=\"\" /g, '<row ' )\n\t\t\t\t\t.replace( /<cols xmlns=\"\">/g, '<cols>' )\n\t\t\t\t\t.replace( /<mergeCells xmlns=\"\" /g, '<mergeCells ' );\n\n\t\t\t\tzip.file( name, str );\n\t\t\t}\n\t\t} );\n\t},\n\t// Excel - Pre-defined strings to build a basic XLSX file\n\texcelStrings  : {\n\t\t\"_rels/.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"xl/_rels/workbook.xml.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>'+\n\t\t\t\t'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"[Content_Types].xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">'+\n\t\t\t\t'<Default Extension=\"xml\" ContentType=\"application/xml\" />'+\n\t\t\t\t'<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />'+\n\t\t\t\t'<Default Extension=\"jpeg\" ContentType=\"image/jpeg\" />'+\n\t\t\t\t'<Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" />'+\n\t\t\t'</Types>',\n\n\t\t\"xl/workbook.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">'+\n\t\t\t\t'<fileVersion appName=\"xl\" lastEdited=\"5\" lowestEdited=\"5\" rupBuild=\"24816\"/>'+\n\t\t\t\t'<workbookPr showInkAnnotation=\"0\" autoCompressPictures=\"0\"/>'+\n\t\t\t\t'<bookViews>'+\n\t\t\t\t\t'<workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"25600\" windowHeight=\"19020\" tabRatio=\"500\"/>'+\n\t\t\t\t'</bookViews>'+\n\t\t\t\t'<sheets>'+\n\t\t\t\t\t'<sheet name=\"\" sheetId=\"1\" r:id=\"rId1\"/>'+\n\t\t\t\t'</sheets>'+\n\t\t\t'</workbook>',\n\n\t\t\"xl/worksheets/sheet1.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<sheetData/>'+\n\t\t\t'</worksheet>',\n\n\t\t\"xl/styles.xml\": \n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\"?>'+\n\t\t\t'<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<fonts count=\"5\" x14ac:knownFonts=\"1\">'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<color rgb=\"FFFFFFFF\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<b />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<i />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<u />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t'</fonts>'+\n\t\t\t\t'<fills count=\"6\">'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"none\" />'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill/>'+ \n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD9D9D9\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD99795\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6efce\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6cfef\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t'</fills>'+\n\t\t\t\t'<borders count=\"2\">'+\n\t\t\t\t\t'<border>'+\n\t\t\t\t\t\t'<left />'+\n\t\t\t\t\t\t'<right />'+\n\t\t\t\t\t\t'<top />'+\n\t\t\t\t\t\t'<bottom />'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t\t'<border diagonalUp=\"false\" diagonalDown=\"false\">'+\n\t\t\t\t\t\t'<left style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</left>'+\n\t\t\t\t\t\t'<right style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</right>'+\n\t\t\t\t\t\t'<top style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</top>'+\n\t\t\t\t\t\t'<bottom style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</bottom>'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t'</borders>'+\n\t\t\t\t'<cellStyleXfs count=\"1\">'+\n\t\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" />'+\n\t\t\t\t'</cellStyleXfs>'+\n\t\t\t\t'<cellXfs count=\"2\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'</cellXfs>'+\n\t\t\t\t'<cellStyles count=\"1\">'+\n\t\t\t\t\t'<cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\" />'+\n\t\t\t\t'</cellStyles>'+\n\t\t\t\t'<dxfs count=\"0\" />'+\n\t\t\t\t'<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\" />'+\n\t\t\t'</styleSheet>'\n\t}\n\t\n});\n/******************************************************************** \n*\n* due to speed, every export method will have separate module\n* to collect grouped data\n*\n*********************************************************************/\n$.jgrid.extend({\n\texportToCsv : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tseparator: \",\",\n\t\t\tseparatorReplace : \" \",\n\t\t\tquote : '\"', \n\t\t\tescquote : '\"', \n\t\t\tnewLine : \"\\r\\n\", // navigator.userAgent.match(/Windows/) ?\t'\\r\\n' : '\\n';\n\t\t\treplaceNewLine : \" \",\n\t\t\tincludeCaption : true,\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.csv\",\n\t\t\tmimetype : \"text/csv;charset=utf-8\",\n\t\t\treturnAsString : false\n\t\t}, p || {});\n\t\tvar ret =\"\";\n\t\tthis.each(function(){\n\n\t\t\tp._regexsep = new RegExp(p.separator, \"g\");\n\t\t\tp._regexquot = new RegExp(p.quote, \"g\");\n\t\t\t\t\t\t\n\t\t\tvar $t = this,\n\t\t\t// get the filtered data\n\t\t\tdata1 = this.addLocalData( true ), \n\t\t\tdlen = data1.length,\n\t\t\tcm = $t.p.colModel,\n\t\t\tcmlen = cm.length,\n\t\t\ti, j=0, row, str = '' , tmp, k,\n\t\t\tcap = \"\", hdr = \"\", ftr=\"\",\tlbl=\"\", albl=[], restorevis = [];\n\t\t\tfunction groupToCsv (grdata, p) {\n\t\t\t\tvar str=\"\",\n\t\t\t\tgrp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0;\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[j] = \n\t\t\t\t\t\t\t\t\t$.jgrid.formatCellCsv(\n\t\t\t\t\t\t\t\t\t$.jgrid.stripHtml( \n\t\t\t\t\t\t\t\t\t$.jgrid.template(tplfld,vv) \n\t\t\t\t\t\t\t\t\t), p ) ;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv, k;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = new Array(p.collen);\n\t\t\t\t\t}\n\t\t\t\t\tarr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p);\n\t\t\t\t\tstr +=  arr.join( p.separator ) + p.newLine;\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tto = grdata[kk - offset];\n\t\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t\tfor(ik = 0; ik < cm.length; ik++) {\n\t\t\t\t\t\t\t\tif(!cm[ik].hidden) {\n\t\t\t\t\t\t\t\t\tarr[k] = $.jgrid.formatCellCsv( \n\t\t\t\t\t\t\t\t\t\t$.jgrid.formatCell( to[cm[ik].name], ik, to, cm[ik], $t ) , p);\n\t\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn str;\n\t\t\t}\n\n\t\t\t// end group function\n\t\t\tvar def = {}, key;\n\t\t\t$.each(cm,function(i,n) {\n\t\t\t\tif((n.name === 'cb' || n.name === 'rn') && !n.hidden) {\n\t\t\t\t\trestorevis.push(i);\n\t\t\t\t\tn.hidden = true;\n\t\t\t\t}\n\t\t\t\tif(!n.hidden) {\n\t\t\t\t\talbl.push( $.jgrid.formatCellCsv( n.label || n.name, p) );\n\t\t\t\t\tdef[n.name] = n.label || n.name;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tif(p.includeLabels) {\n\t\t\t\tlbl = albl.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\t\n\t\t\tp.collen = albl.length;\n\t\t\t\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\t\n\t\t\t\tstr += groupToCsv(data1, p);\n\t\t\t\t\n\t\t\t}  else {\n\t\t\t\twhile(j < dlen) {\n\t\t\t\t\trow = data1[j];\n\t\t\t\t\ttmp = [];\n\t\t\t\t\tk =0;\n\t\t\t\t\tfor(i = 0; i < cmlen; i++) {\n\t\t\t\t\t\tif(!cm[i].hidden) {\n\t\t\t\t\t\t\ttmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t ), p );\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tstr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata1 = null; // free\n\t\t\t// get the column length.\n\t\t\ttmp = new Array(p.collen);\n\t\t\tif(p.includeCaption && $t.p.caption) {\n\t\t\t\tj=p.collen;\n\t\t\t\twhile(--j) {tmp[j]=\"\";}\n\t\t\t\ttmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p );\n\t\t\t\tcap += tmp.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\tif(p.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders;\n\t\t\t\t\tj = 0; tmp = [];\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttmp[j] = '';\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\ttmp[j]= ghdata[k].titleText;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\thdr += tmp.join( p.separator ) + p.newLine;\n \t\t\t\t}\n\t\t\t}\n\t\t\tif(p.includeFooter && $t.p.footerrow) {\n\t\t\t\t// already formated\n\t\t\t\tvar foot = $(\".ui-jqgrid-ftable\", this.sDiv);\n\t\t\t\tif(foot.length) {\n\t\t\t\t\tvar frows = foot[0].rows[0];\n\t\t\t\t\ti=0;j=0; tmp=[];\n\t\t\t\t\twhile(i < frows.cells.length){\n\t\t\t\t\t\tvar fc = frows.cells[i],\n\t\t\t\t\t\tcoln = $(fc).attr('aria-describedby').slice(-3);\n\t\t\t\t\t\tif(!fc.hidden && coln !== '_cb' && coln !== '_rn' ) {\n\t\t\t\t\t\t\ttmp[j] = $.jgrid.formatCellCsv( $(fc).text(), p );\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tftr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t}\n\t\t\t}\n\t\t\tret = cap + hdr + lbl + str + ftr;\n\t\t\t\n\t\t\tfor(i=0;i<restorevis.length;i++) {\n\t\t\t\tcm[restorevis[i]].hidden = false;\n\t\t\t}\n\t\t});\n\t\tif (p.returnAsString) {\n\t\t\treturn ret;\n\t\t} else {\n\t\t\tjqGridUtils.saveAs( ret, p.fileName, { type : p.mimetype });\n\t\t}\n\t},\n\t/*\n\t * \n\t * @param object o - settings for the export\n\t * @returns excel 2007 document\n\t * The method requiere jsZip lib in order to create excel document\n\t */\n\texportToExcel : function ( o ) {\n\t\to = $.extend(true, {\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.xlsx\",\n\t\t\tmimetype : \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n\t\t\tmaxlength : 40 // maxlength for visible string data \n\t\t}, o || {} );\n\t\tthis.each(function() {\n\t\t\tvar $t = this,\n\t\t\tes = $.jgrid.excelStrings,\n\t\t\trowPos = 0,\n\t\t\trels = $.parseXML( es['xl/worksheets/sheet1.xml']),\n\t\t\trelsGet = rels.getElementsByTagName( \"sheetData\" )[0],\n\t\t\txlsx = {\n\t\t\t\t_rels: {\n\t\t\t\t\t\".rels\": $.parseXML( es['_rels/.rels'])\n\t\t\t\t},\n\t\t\t\txl: {\n\t\t\t\t\t_rels: {\n\t\t\t\t\t\t\"workbook.xml.rels\": $.parseXML( es['xl/_rels/workbook.xml.rels'])\n\t\t\t\t\t},\n\t\t\t\t\t\"workbook.xml\": $.parseXML( es['xl/workbook.xml']),\n\t\t\t\t\t\"styles.xml\": $.parseXML( es['xl/styles.xml']),\n\t\t\t\t\t\"worksheets\": {\n\t\t\t\t\t\t\"sheet1.xml\": rels\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"[Content_Types].xml\": $.parseXML( es['[Content_Types].xml'])\n\t\t\t},\n\t\t\tcm = $t.p.colModel,\n\t\t\ti=0, j, ien, obj={},\n\t\t\tdata = { \n\t\t\t\tbody  : $t.addLocalData( true ),\n\t\t\t\theader : [],\n\t\t\t\tfooter : [],\n\t\t\t\twidth : [],\n\t\t\t\tmap : [] \n\t\t\t};\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj[ cm[j].name ] = cm[j].label || cm[j].name;\n\t\t\t\tdata.width[ i ] = 5;\n\t\t\t\tdata.map[i] = j;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tdata.header.push( obj );\n\t\t\tvar currentRow, rowNode,\n\t\t\taddRow = function ( row, header ) {\n\t\t\t\tcurrentRow = rowPos+1;\n\t\t\t\trowNode = $.jgrid.makeNode( rels, \"row\", { attr: {r:currentRow} } );\n\t\t\t\tvar i=0;\n\t\t\t\tfor ( var key  in data.header[0]) {\n\t\t\t\t\tif(!data.header[0].hasOwnProperty( key )) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t// key = cm[i].name;\n\t\t\t\t\t// Concat both the Cell Columns as a letter and the Row of the cell.\n\t\t\t\t\tvar cellId = $.jgrid.excelCellPos(i) + '' + currentRow,\n\t\t\t\t\tcell,\n\t\t\t\t\tv= row[key];\n\t\t\t\t\tif ( v == null ) {\n\t\t\t\t\t\tv = '';\n\t\t\t\t\t}\n\t\t\t\t\tif(!header) {\n\t\t\t\t\t\tv = v !== '' ? $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t) : v;\n\t\t\t\t\t}\n\t\t\t\t\tdata.width[i] = Math.max(data.width[i], Math.min(parseInt(v.length,10), o.maxlength) );\n\t\t\t\t\t// Detect numbers - don't match numbers with leading zeros or a negative\n\t\t\t\t\t// anywhere but the start\n\t\t\t\t\t// $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t )\n\t\t\t\t\tif ( typeof v === 'number' || (\n\t\t\t\t\t\t\tv.match &&\n\t\t\t\t\t\t\t$.trim(v).match(/^-?\\d+(\\.\\d+)?$/) &&\n\t\t\t\t\t\t\t! $.trim(v).match(/^0\\d+/) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'n',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t$.jgrid.makeNode( rels, 'v', { text: v } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Replace non standard characters for text output\n\t\t\t\t\t\tvar text = ! v.replace ?\n\t\t\t\t\t\t\tv :\n\t\t\t\t\t\t\t$.jgrid.htmlEncode (v );\n\t\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'inlineStr',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren:{\n\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 'is', {\n\t\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 't', {\n\t\t\t\t\t\t\t\t\t\t\ttext: text\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\trowNode.appendChild( cell );\n\t\t\t\t}\n\t\t\t\trelsGet.appendChild(rowNode);\n\t\t\t\trowPos++;\n\t\t\t};\n//=========================================================================\t\t\t\n\t\t\tfunction groupToExcel ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\t\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(data.header[0]);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(data.header[0]);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\taddRow( to, false );\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\t\n\t\t\t$( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName );\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader, mergecell=[];\n\t\t\t\tvar mrow = 0;\n\t\t\t\tfor (i=0;i<gh.length;i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders, clone ={};\n\t\t\t\t\tj=0; mrow++;\n\t\t\t\t\tfor(var key in data.header[0] ) {\n\t\t\t\t\t\tif(!data.header[0].hasOwnProperty(key)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\tfor(var k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tclone[key] = ghdata[k].titleText;\n\t\t\t\t\t\t\t\tvar start = $.jgrid.excelCellPos(j) + mrow,\n\t\t\t\t\t\t\t\t\tend = $.jgrid.excelCellPos(j+ghdata[k].numberOfColumns -1) + mrow;\n\t\t\t\t\t\t\t\tmergecell.push({ ref: start+\":\"+end });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\taddRow( clone, true );\n \t\t\t\t}\n\t\t\t\tvar merge = $.jgrid.makeNode( rels, 'mergeCells', {\n\t\t\t\t\tattr : {\n\t\t\t\t\t\tcount : mergecell.length\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$('worksheet', rels).append( merge );\n\t\t\t\tfor(i=0;i<mergecell.length;i++) {\n\t\t\t\t\tmerge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{ \n\t\t\t\t\t\tattr:  mergecell[i]\n\t\t\t\t\t}));\n\t\t\t\t}\t\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeLabels ) {\n\t\t\t\taddRow( data.header[0], true );\n\t\t\t\t$('row c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\tgroupToExcel(data.body);\n\t\t\t} else {\n\t\t\t\tfor ( var n=0, ie=data.body.length ; n<ie ; n++ ) {\n\t\t\t\t\taddRow( data.body[n], false );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( o.includeFooter || $t.p.footerrow) {\n\t\t\t\tdata.footer = $($t).jqGrid('footerData', 'get');\n\t\t\t\tfor( i in data.footer) {\n\t\t\t\t\tif(data.footer.hasOwnProperty(i)) {\n\t\t\t\t\t\tdata.footer[i] = $.jgrid.stripHtml(data.footer[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\taddRow( data.footer, true );\n\t\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\t\n\t\t\t// Set column widths\n\t\t\tvar cols = $.jgrid.makeNode( rels, 'cols' );\n\t\t\t$('worksheet', rels).prepend( cols );\n\n\t\t\tfor ( i=0, ien=data.width.length ; i<ien ; i++ ) {\n\t\t\t\tcols.appendChild( $.jgrid.makeNode( rels, 'col', {\n\t\t\t\t\tattr: {\n\t\t\t\t\t\tmin: i+1,\n\t\t\t\t\t\tmax: i+1,\n\t\t\t\t\t\twidth: data.width[i],\n\t\t\t\t\t\tcustomWidth: 1\n\t\t\t\t\t}\n\t\t\t\t} ) );\n\t\t\t}\n\t\t\tdata = null; // free memory\n\t\t\ttry {\n\t\t\t\tvar zip = new JSZip();\n\t\t\t\tvar zipConfig = {\n\t\t\t\t\ttype: 'blob',\n\t\t\t\t\tmimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t};\n\t\t\t\t$.jgrid.xmlToZip( zip, xlsx );\n\t\t\t\t\tif ( zip.generateAsync ) {\n\t\t\t\t\t// JSZip 3+\n\t\t\t\t\tzip\n\t\t\t\t\t\t.generateAsync( zipConfig )\n\t\t\t\t\t\t.then( function ( blob ) {\n\t\t\t\t\t\t\tjqGridUtils.saveAs( blob, o.fileName, { type : o.mimetype } );\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// JSZip 2.5\n\t\t\t\t\tjqGridUtils.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } );\t\t\t\t}\n\t\t\t}\n\t\t\tcatch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t},\n\texportToPdf : function (o) {\n\t\to = $.extend(true,{\n\t\t\ttitle: null,\n\t\t\torientation: 'portrait',\n\t\t\tpageSize: 'A4',\n\t\t\tdescription: null,\n\t\t\tcustomSettings: null,\n\t\t\tdownload: 'download',\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.pdf\",\n\t\t\tmimetype : \"application/pdf\"\n\t\t\t\n\t\t}, o || {} );\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key, \n\t\t\tdata = $t.addLocalData( true ), def = {}, i=0, map=[], test=[], widths = [],  align={};\n// Group function\t\t\t\n\t\t\tfunction groupToPdf ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tfunction constructRow( row, fmt ) {\n\t\t\t\t\tvar k =0, test=[];\n\t\t\t\t\t//row = data[i];\n\t\t\t\t\tfor( var key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif(def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj = {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : (fmt ? $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t) : row[key]),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn test;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(def);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(def);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\trows.push( constructRow (to, true) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\tvar k;\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj = { text:  cm[j].label || cm[j].name, style: 'tableHeader' };\n\t\t\t\ttest.push( obj );\n\t\t\t\tdef[cm[j].name]  = cm[j].label || cm[j].name;\n\t\t\t\tmap[i] = j;\n\t\t\t\twidths.push(cm[j].width); \n\t\t\t\talign[cm[j].name] = cm[j].align || 'left';\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tvar gh;\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tgh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar clone = [],\n\t\t\t\t\tghdata = gh[i].groupHeaders;\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tobj = {text:'', style: 'tableHeader'};\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tobj = { \n\t\t\t\t\t\t\t\t\ttext : ghdata[k].titleText, \n\t\t\t\t\t\t\t\t\tcolSpan: ghdata[k].numberOfColumns,\n\t\t\t\t\t\t\t\t\tstyle: 'tableHeader'\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone.push(obj);\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\trows.push(clone);\n \t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif(o.includeLabels) {\n\t\t\t\trows.push( test );\n\t\t\t}\n\t\t\tif($t.p.grouping) {\n\t\t\t\tgroupToPdf(data);\n\t\t\t} else {\n\t\t\t\tvar row;\n\t\t\t\tfor ( i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\t\tk =0; \n\t\t\t\t\ttest=[];\n\t\t\t\t\trow = data[i];\n\t\t\t\t\tfor( key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif( def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj\t= {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trows.push(test);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeFooter && $t.p.footerrow) {\n\t\t\t\tvar fdata = $($t).jqGrid('footerData', 'get');\n\t\t\t\ttest=[];\n\t\t\t\tfor( key in def) {\n\t\t\t\t\tif(def.hasOwnProperty(key) ) {\n\t\t\t\t\t\tobj  =  {\n\t\t\t\t\t\t\ttext : $.jgrid.stripHtml(fdata[key]),\n\t\t\t\t\t\t\tstyle : 'tableFooter',\n\t\t\t\t\t\t\talignment : align[key]\n\t\t\t\t\t\t};\n\t\t\t\t\t\ttest.push( obj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trows.push( test );\n\t\t\t}\n\n\t\t\tvar doc = {\n\t\t\t\tpageSize: o.pageSize,\n\t\t\t\tpageOrientation: o.orientation,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\tstyle : 'tableExample',\n\t\t\t\t\t\twidths : widths,\n\t\t\t\t\t\ttable: {\n\t\t\t\t\t\t\theaderRows: (gh!=null) ? 0 : 1,\n\t\t\t\t\t\t\tbody: rows\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tstyles: {\n\t\t\t\t\ttableHeader: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc',\n\t\t\t\t\t\talignment: 'center'\n\t\t\t\t\t},\n\t\t\t\t\ttableBody: {\n\t\t\t\t\t\tfontSize: 10\n\t\t\t\t\t},\n\t\t\t\t\ttableFooter: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc'\n\t\t\t\t\t},\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\talignment: 'center',\n\t\t\t\t\t\tfontSize: 15\n\t\t\t\t\t},\n\t\t\t\t\tdescription: {}\n\t\t\t\t},\n\t\t\t\tdefaultStyle: {\n\t\t\t\t\tfontSize: 10\n\t\t\t\t}\n\t\t\t};\n\t\t\tif ( o.description ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.description,\n\t\t\t\t\tstyle: 'description',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( o.title ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.title,\n\t\t\t\t\tstyle: 'title',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif( o. customSettings ) {\n\t\t\t\to.customSettings.call($t, doc);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvar pdf = pdfMake.createPdf( doc );\n\t\t\t\tif ( o.download === 'open' ) {\n\t\t\t\t\tpdf.open();\n\t\t\t\t} else {\n\t\t\t\t\tpdf.getBuffer( function (buffer) {\n\t\t\t\t\t\tjqGridUtils.saveAs( buffer, o.fileName, {type: o.mimetype } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t}\n});\n//module end\t\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.filter.js",
    "content": "/*\n *\n * The filter uses JSON entities to hold filter rules and groups. Here is an example of a filter:\n\n{ \"groupOp\": \"AND\",\n      \"groups\" : [ \n        { \"groupOp\": \"OR\",\n            \"rules\": [\n                { \"field\": \"name\", \"op\": \"eq\", \"data\": \"England\" }, \n                { \"field\": \"id\", \"op\": \"le\", \"data\": \"5\"}\n             ]\n        } \n      ],\n      \"rules\": [\n        { \"field\": \"name\", \"op\": \"eq\", \"data\": \"Romania\" }, \n        { \"field\": \"id\", \"op\": \"le\", \"data\": \"1\"}\n      ]\n}\n*/\n/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.common\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.fn.jqFilter = function( arg ) {\n\tif (typeof arg === 'string') {\n\t\t\n\t\tvar fn = $.fn.jqFilter[arg];\n\t\tif (!fn) {\n\t\t\tthrow (\"jqFilter - No such method: \" + arg);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\n\tvar p = $.extend(true,{\n\t\tfilter: null,\n\t\tcolumns: [],\n\t\tsortStrategy: null,\n\t\tonChange : null,\n\t\tafterRedraw : null,\n\t\tcheckValues : null,\n\t\terror: false,\n\t\terrmsg : \"\",\n\t\terrorcheck : true,\n\t\tshowQuery : true,\n\t\tsopt : null,\n\t\tops : [],\n\t\toperands : null,\n\t\tnumopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\tstropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\tstrarr : ['text', 'string', 'blob'],\n\t\tgroupOps : [{ op: \"AND\", text: \"AND\" },\t{ op: \"OR\",  text: \"OR\" }],\n\t\tgroupButton : true,\n\t\truleButtons : true,\n\t\tuniqueSearchFields : false,\n\t\tdirection : \"ltr\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t}, $.jgrid.filter, arg || {});\n\treturn this.each( function() {\n\t\tif (this.filter) {return;}\n\t\tthis.p = p;\n\t\t// setup filter in case if they is not defined\n\t\tif (this.p.filter === null || this.p.filter === undefined) {\n\t\t\tthis.p.filter = {\n\t\t\t\tgroupOp: this.p.groupOps[0].op,\n\t\t\t\trules: [],\n\t\t\t\tgroups: []\n\t\t\t};\n\t\t}\n\n\t\t// Sort the columns if the sort strategy is provided.\n\t\tif (this.p.sortStrategy != null && $.isFunction(this.p.sortStrategy)) {\n\t\t\tthis.p.columns.sort(this.p.sortStrategy);\n\t\t}\n\n\t\tvar i, len = this.p.columns.length, cl,\n\t\tisIE = /msie/i.test(navigator.userAgent) && !window.opera;\n\n\t\t// translating the options\n\t\tthis.p.initFilter = $.extend(true,{},this.p.filter);\n\n\t\t// set default values for the columns if they are not set\n\t\tif( !len ) {return;}\n\t\tfor(i=0; i < len; i++) {\n\t\t\tcl = this.p.columns[i];\n\t\t\tif( cl.stype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.inputtype = cl.stype;\n\t\t\t} else if(!cl.inputtype) {\n\t\t\t\tcl.inputtype = 'text';\n\t\t\t}\n\t\t\tif( cl.sorttype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.searchtype = cl.sorttype;\n\t\t\t} else if (!cl.searchtype) {\n\t\t\t\tcl.searchtype = 'string';\n\t\t\t}\n\t\t\tif(cl.hidden === undefined) {\n\t\t\t\t// jqGrid compatibility\n\t\t\t\tcl.hidden = false;\n\t\t\t}\n\t\t\tif(!cl.label) {\n\t\t\t\tcl.label = cl.name;\n\t\t\t}\n\t\t\tif(cl.index) {\n\t\t\t\tcl.name = cl.index;\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchoptions')) {\n\t\t\t\tcl.searchoptions = {};\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchrules')) {\n\t\t\t\tcl.searchrules = {};\n\t\t\t}\n\t\t\tif(cl.search === undefined) {\n\t\t\t\tcl.inlist = true;\n\t\t\t} else {\n\t\t\t\tcl.inlist = cl.search;\n\t\t\t}\n\t\t}\n\t\tvar getGrid = function () {\n\t\t\treturn $(\"#\" + $.jgrid.jqID(p.id))[0] || null;\n\t\t},\n\t\t\n\t\t$tg = getGrid(),\n\t\tclasses = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter,\n\t\tcommon = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common;\n\n\t\t\n\t\tif(this.p.showQuery) {\n\t\t\t$(this).append(\"<table class='queryresult \" + classes.table_widget + \"' style='display:block;max-width:440px;border:0px none;' dir='\"+this.p.direction+\"'><tbody><tr><td class='query'></td></tr></tbody></table>\");\n\t\t}\n\t\t/*\n\t\t *Perform checking.\n\t\t *\n\t\t*/\n\t\tvar checkData = function(val, colModelItem) {\n\t\t\tvar ret = [true,\"\"], $t = getGrid();\n\t\t\tif($.isFunction(colModelItem.searchrules)) {\n\t\t\t\tret = colModelItem.searchrules.call($t, val, colModelItem);\n\t\t\t} else if($.jgrid && $.jgrid.checkValues) {\n\t\t\t\ttry {\n\t\t\t\t\tret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label);\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\tif(ret && ret.length && ret[0] === false) {\n\t\t\t\tp.error = !ret[0];\n\t\t\t\tp.errmsg = ret[1];\n\t\t\t}\n\t\t};\n\t\t/* moving to common\n\t\trandId = function() {\n\t\t\treturn Math.floor(Math.random()*10000).toString();\n\t\t};\n\t\t*/\n\n\t\tthis.onchange = function (  ){\n\t\t\t// clear any error \n\t\t\tthis.p.error = false;\n\t\t\tthis.p.errmsg=\"\";\n\t\t\treturn $.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false;\n\t\t};\n\t\t/*\n\t\t * Redraw the filter every time when new field is added/deleted\n\t\t * and field is  changed\n\t\t */\n\t\tthis.reDraw = function() {\n\t\t\t$(\"table.group:first\",this).remove();\n\t\t\tvar t = this.createTableForGroup(p.filter, null);\n\t\t\t$(this).append(t);\n\t\t\tif($.isFunction(this.p.afterRedraw) ) {\n\t\t\t\tthis.p.afterRedraw.call(this, this.p);\n\t\t\t}\n\t\t};\n\t\t/*\n\t\t * Creates a grouping data for the filter\n\t\t * @param group - object\n\t\t * @param parentgroup - object\n\t\t */\n\t\tthis.createTableForGroup = function(group, parentgroup) {\n\t\t\tvar that = this,  i;\n\t\t\t// this table will hold all the group (tables) and rules (rows)\n\t\t\tvar table = $(\"<table class='group \" + classes.table_widget +\" ui-search-table' style='border:0px none;'><tbody></tbody></table>\"),\n\t\t\t// create error message row\n\t\t\talign = \"left\";\n\t\t\tif(this.p.direction === \"rtl\") {\n\t\t\t\talign = \"right\";\n\t\t\t\ttable.attr(\"dir\",\"rtl\");\n\t\t\t}\n\t\t\tif(parentgroup === null) {\n\t\t\t\ttable.append(\"<tr class='error' style='display:none;'><th colspan='5' class='\" + common.error + \"' align='\"+align+\"'></th></tr>\");\n\t\t\t}\n\n\t\t\tvar tr = $(\"<tr></tr>\");\n\t\t\ttable.append(tr);\n\t\t\t// this header will hold the group operator type and group action buttons for\n\t\t\t// creating subgroup \"+ {}\", creating rule \"+\" or deleting the group \"-\"\n\t\t\tvar th = $(\"<th colspan='5' align='\"+align+\"'></th>\");\n\t\t\ttr.append(th);\n\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// dropdown for: choosing group operator type\n\t\t\tvar groupOpSelect = $(\"<select class='opsel \" + classes.srSelect + \"'></select>\");\n\t\t\tth.append(groupOpSelect);\n\t\t\t// populate dropdown with all posible group operators: or, and\n\t\t\tvar str= \"\", selected;\n\t\t\tfor (i = 0; i < p.groupOps.length; i++) {\n\t\t\t\tselected =  group.groupOp === that.p.groupOps[i].op ? \" selected='selected'\" :\"\";\n\t\t\t\tstr += \"<option value='\"+that.p.groupOps[i].op+\"'\" + selected+\">\"+that.p.groupOps[i].text+\"</option>\";\n\t\t\t}\n\n\t\t\tgroupOpSelect\n\t\t\t.append(str)\n\t\t\t.on('change',function() {\n\t\t\t\tgroup.groupOp = $(groupOpSelect).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\t\t\t}\n\t\t\t// button for adding a new subgroup\n\t\t\tvar inputAddSubgroup =\"<span></span>\";\n\t\t\tif(this.p.groupButton) {\n\t\t\t\tinputAddSubgroup = $(\"<input type='button' value='+ {}' title='\" +that.p.subgroup+\"' class='add-group \" + common.button + \"'/>\");\n\t\t\t\tinputAddSubgroup.on('click',function() {\n\t\t\t\t\tif (group.groups === undefined ) {\n\t\t\t\t\t\tgroup.groups = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgroup.groups.push({\n\t\t\t\t\t\tgroupOp: p.groupOps[0].op,\n\t\t\t\t\t\trules: [],\n\t\t\t\t\t\tgroups: []\n\t\t\t\t\t}); // adding a new group\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tth.append(inputAddSubgroup);\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// button for adding a new rule\n\t\t\tvar inputAddRule = $(\"<input type='button' value='+' title='\"+that.p.addrule+\"' class='add-rule ui-add \" + common.button + \"'/>\"), cm;\n\t\t\tinputAddRule.on('click',function() {\n\t\t\t\t//if(!group) { group = {};}\n\t\t\t\tif (group.rules === undefined) {\n\t\t\t\t\tgroup.rules = [];\n\t\t\t\t}\n\t\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ?  true: that.p.columns[i].search,\n\t\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( !cm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar opr;\n\t\t\t\tif( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { opr= that.p.sopt; }\n\t\t\t\telse if  ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;}\n\t\t\t\telse {opr = that.p.numopts;}\n\n\t\t\t\tgroup.rules.push({\n\t\t\t\t\tfield: cm.name,\n\t\t\t\t\top: opr[0],\n\t\t\t\t\tdata: \"\"\n\t\t\t\t}); // adding a new rule\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\t\t\t\t// for the moment no change have been made to the rule, so\n\t\t\t\t// this will not trigger onchange event\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tth.append(inputAddRule);\n\t\t\t}\n\n\t\t\t// button for delete the group\n\t\t\tif (parentgroup !== null) { // ignore the first group\n\t\t\t\tvar inputDeleteGroup = $(\"<input type='button' value='-' title='\"+that.p.delgroup+\"' class='delete-group \" + common.button + \"'/>\");\n\t\t\t\tth.append(inputDeleteGroup);\n\t\t\t\tinputDeleteGroup.on('click',function() {\n\t\t\t\t// remove group from parent\n\t\t\t\t\tfor (i = 0; i < parentgroup.groups.length; i++) {\n\t\t\t\t\t\tif (parentgroup.groups[i] === group) {\n\t\t\t\t\t\t\tparentgroup.groups.splice(i, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// append subgroup rows\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (i = 0; i < group.groups.length; i++) {\n\t\t\t\t\tvar trHolderForSubgroup = $(\"<tr></tr>\");\n\t\t\t\t\ttable.append(trHolderForSubgroup);\n\n\t\t\t\t\tvar tdFirstHolderForSubgroup = $(\"<td class='first'></td>\");\n\t\t\t\t\ttrHolderForSubgroup.append(tdFirstHolderForSubgroup);\n\n\t\t\t\t\tvar tdMainHolderForSubgroup = $(\"<td colspan='4'></td>\");\n\t\t\t\t\ttdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));\n\t\t\t\t\ttrHolderForSubgroup.append(tdMainHolderForSubgroup);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(group.groupOp === undefined) {\n\t\t\t\tgroup.groupOp = that.p.groupOps[0].op;\n\t\t\t}\n\n\t\t\t// append rules rows\n\t\t\tvar suni = that.p.ruleButtons && that.p.uniqueSearchFields;\n\t\t\tif( suni ) {\n\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\tif(that.p.columns[ii].inlist) {\n\t\t\t\t\t\tthat.p.columns[ii].search = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\ttable.append(\n                       this.createTableRowForRule(group.rules[i], group)\n\t\t\t\t\t);\n\t\t\t\t\tif( suni ) {\n\t\t\t\t\t\tvar field = group.rules[i].field;\n\t\t\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\t\t\tif(field === that.p.columns[ii].name) {\n\t\t\t\t\t\t\t\tthat.p.columns[ii].search = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn table;\n\t\t};\n\t\t/*\n\t\t * Create the rule data for the filter\n\t\t */\n\t\tthis.createTableRowForRule = function(rule, group ) {\n\t\t\t// save current entity in a variable so that it could\n\t\t\t// be referenced in anonimous method calls\n\n\t\t\tvar that=this, $t = getGrid(), tr = $(\"<tr></tr>\"),\n\t\t\t//document.createElement(\"tr\"),\n\n\t\t\t// first column used for padding\n\t\t\t//tdFirstHolderForRule = document.createElement(\"td\"),\n\t\t\ti, op, trpar, cm, str=\"\", selected;\n\t\t\t//tdFirstHolderForRule.setAttribute(\"class\", \"first\");\n\t\t\ttr.append(\"<td class='first'></td>\");\n\n\n\t\t\t// create field container\n\t\t\tvar ruleFieldTd = $(\"<td class='columns'></td>\");\n\t\t\ttr.append(ruleFieldTd);\n\n\n\t\t\t// dropdown for: choosing field\n\t\t\tvar ruleFieldSelect = $(\"<select class='\" + classes.srSelect + \"'></select>\"), ina, aoprs = [];\n\t\t\truleFieldTd.append(ruleFieldSelect);\n\t\t\truleFieldSelect.on('change',function() {\n\t\t\t\tif( that.p.ruleButtons && that.p.uniqueSearchFields ) {\n\t\t\t\t\tvar prev = parseInt($(this).data('curr'),10),\n\t\t\t\t\tcurr = this.selectedIndex;\n\t\t\t\t\tif(prev >= 0 ) {\n\t\t\t\t\t\tthat.p.columns[prev].search = true;\n\t\t\t\t\t\t$(this).data('curr', curr);\n\t\t\t\t\t\tthat.p.columns[curr].search = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trule.field = $(ruleFieldSelect).val();\n\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\t$(\".data\",trpar).empty();\n\t\t\t\tfor (i=0;i<that.p.columns.length;i++) {\n\t\t\t\t\tif(that.p.columns[i].name ===  rule.field) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cm) {return;}\n\t\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\t\tcm.searchoptions.name = rule.field;\n\t\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\t\t\n\t\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, \"\", true, that.p.ajaxSelectOptions || {}, true);\n\t\t\t\t$(elm).addClass(\"input-elm \" + classes.srInput );\n\t\t\t\t//that.createElement(rule, \"\");\n\n\t\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\t\telse {op = that.p.numopts;}\n\t\t\t\t// operators\n\t\t\t\tvar s =\"\", so = 0;\n\t\t\t\taoprs = [];\n\t\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < op.length; i++) {\n\t\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tif(so===0) {\n\t\t\t\t\t\t\trule.op = that.p.ops[ina].oper;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += \"<option value='\"+that.p.ops[ina].oper+\"'>\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t\t\tso++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\".selectopts\",trpar).empty().append( s );\n\t\t\t\t$(\".selectopts\",trpar)[0].selectedIndex = 0;\n\t\t\t\tif( $.jgrid.msie() && $.jgrid.msiever() < 9) {\n\t\t\t\t\tvar sw = parseInt($(\"select.selectopts\",trpar)[0].offsetWidth, 10) + 1;\n\t\t\t\t\t$(\".selectopts\",trpar).width( sw );\n\t\t\t\t\t$(\".selectopts\",trpar).css(\"width\",\"auto\");\n\t\t\t\t}\n\t\t\t\t// data\n\t\t\t\t$(\".data\",trpar).append( elm );\n\t\t\t\t$.jgrid.bindEv.call($t, elm, cm.searchoptions);\n\t\t\t\t$(\".input-elm\",trpar).on('change',function( e ) {\n\t\t\t\t\tvar elem = e.target;\n\t\t\t\t\trule.data = elem.nodeName.toUpperCase() === \"SPAN\" && cm.searchoptions && $.isFunction(cm.searchoptions.custom_value) ?\n\t\t\t\t\t\tcm.searchoptions.custom_value.call($t, $(elem).children(\".customelement:first\"), 'get') : elem.value;\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t});\n\t\t\t\tsetTimeout(function(){ //IE, Opera, Chrome\n\t\t\t\trule.data = $(elm).val();\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t\t}, 0);\n\t\t\t});\n\n\t\t\t// populate drop down with user provided column definitions\n\t\t\tvar j=0;\n\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,\n\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\tselected = \"\";\n\t\t\t\t\tif(rule.field === that.p.columns[i].name) {\n\t\t\t\t\t\tselected = \" selected='selected'\";\n\t\t\t\t\t\tj=i;\n\t\t\t\t\t}\n\t\t\t\t\tstr += \"<option value='\"+that.p.columns[i].name+\"'\" +selected+\">\"+that.p.columns[i].label+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleFieldSelect.append( str );\n\t\t\truleFieldSelect.data('curr', j);\n\n\n\t\t\t// create operator container\n\t\t\tvar ruleOperatorTd = $(\"<td class='operators'></td>\");\n\t\t\ttr.append(ruleOperatorTd);\n\t\t\tcm = p.columns[j];\n\t\t\t// create it here so it can be referentiated in the onchange event\n\t\t\t//var RD = that.createElement(rule, rule.data);\n\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcm.searchoptions.name = rule.field;\n\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\tvar ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true);\n\t\t\tif(rule.op === 'nu' || rule.op === 'nn') {\n\t\t\t\t$(ruleDataInput).attr('readonly','true');\n\t\t\t\t$(ruleDataInput).attr('disabled','true');\n\t\t\t} //retain the state of disabled text fields in case of null ops\n\t\t\t// dropdown for: choosing operator\n\t\t\tvar ruleOperatorSelect = $(\"<select class='selectopts \" + classes.srSelect + \"'></select>\");\n\t\t\truleOperatorTd.append(ruleOperatorSelect);\n\t\t\truleOperatorSelect.on('change',function() {\n\t\t\t\trule.op = $(ruleOperatorSelect).val();\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\tvar rd = $(\".input-elm\",trpar)[0];\n\t\t\t\tif (rule.op === \"nu\" || rule.op === \"nn\") { // disable for operator \"is null\" and \"is not null\"\n\t\t\t\t\trule.data = \"\";\n\t\t\t\t\tif(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = \"\"; }\n\t\t\t\t\trd.setAttribute(\"readonly\", \"true\");\n\t\t\t\t\trd.setAttribute(\"disabled\", \"true\");\n\t\t\t\t} else {\n\t\t\t\t\tif(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; }\n\t\t\t\t\trd.removeAttribute(\"readonly\");\n\t\t\t\t\trd.removeAttribute(\"disabled\");\n\t\t\t\t}\n\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// populate drop down with all available operators\n\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\telse {op = that.p.numopts;}\n\t\t\tstr=\"\";\n\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\tfor ( i = 0; i < op.length; i++) {\n\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\tif(ina !== -1) {\n\t\t\t\t\tselected = rule.op === that.p.ops[ina].oper ? \" selected='selected'\" : \"\";\n\t\t\t\t\tstr += \"<option value='\"+that.p.ops[ina].oper+\"'\"+selected+\">\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleOperatorSelect.append( str );\n\t\t\t// create data container\n\t\t\tvar ruleDataTd = $(\"<td class='data'></td>\");\n\t\t\ttr.append(ruleDataTd);\n\n\t\t\t// textbox for: data\n\t\t\t// is created previously\n\t\t\t//ruleDataInput.setAttribute(\"type\", \"text\");\n\t\t\truleDataTd.append(ruleDataInput);\n\t\t\t$.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions);\n\t\t\t$(ruleDataInput)\n\t\t\t.addClass(\"input-elm \" + classes.srInput )\n\t\t\t.on('change', function() {\n\t\t\t\trule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(this).children(\".customelement:first\"),'get') : $(this).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// create action container\n\t\t\tvar ruleDeleteTd = $(\"<td></td>\");\n\t\t\ttr.append(ruleDeleteTd);\n\n\t\t\t// create button for: delete rule\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\tvar ruleDeleteInput = $(\"<input type='button' value='-' title='\"+that.p.delrule+\"' class='delete-rule ui-del \" + common.button + \"'/>\");\n\t\t\truleDeleteTd.append(ruleDeleteInput);\n\t\t\t//$(ruleDeleteInput).html(\"\").height(20).width(30).button({icons: {  primary: \"ui-icon-minus\", text:false}});\n\t\t\truleDeleteInput.on('click',function() {\n\t\t\t\t// remove rule from group\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\tif (group.rules[i] === rule) {\n\t\t\t\t\t\tgroup.rules.splice(i, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t}\n\t\t\treturn tr;\n\t\t};\n\n\t\tthis.getStringForGroup = function(group) {\n\t\t\tvar s = \"(\", index;\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\ts += this.getStringForGroup(group.groups[index]);\n\t\t\t\t\t} catch (eg) {alert(eg);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\ttry{\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += this.getStringForRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {alert(e);}\n\t\t\t}\n\n\t\t\ts += \")\";\n\n\t\t\tif (s === \"()\") {\n\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t}\n\t\t\treturn s;\n\t\t};\n\t\tthis.getStringForRule = function(rule) {\n\t\t\tvar opUF = \"\",opC=\"\", i, cm, ret, val,\n\t\t\tnumtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid\n\t\t\tfor (i = 0; i < this.p.ops.length; i++) {\n\t\t\t\tif (this.p.ops[i].oper === rule.op) {\n\t\t\t\t\topUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : \"\";\n\t\t\t\t\topC = this.p.ops[i].oper;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (i=0; i<this.p.columns.length; i++) {\n\t\t\t\tif(this.p.columns[i].name === rule.field) {\n\t\t\t\t\tcm = this.p.columns[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cm === undefined) { return \"\"; }\n\t\t\tval = rule.data;\n\t\t\tif(opC === 'bw' || opC === 'bn') { val = val+\"%\"; }\n\t\t\tif(opC === 'ew' || opC === 'en') { val = \"%\"+val; }\n\t\t\tif(opC === 'cn' || opC === 'nc') { val = \"%\"+val+\"%\"; }\n\t\t\tif(opC === 'in' || opC === 'ni') { val = \" (\"+val+\")\"; }\n\t\t\tif(p.errorcheck) { checkData(rule.data, cm); }\n\t\t\tif($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu') { ret = rule.field + \" \" + opUF + \" \" + val; }\n\t\t\telse { ret = rule.field + \" \" + opUF + \" \\\"\" + val + \"\\\"\"; }\n\t\t\treturn ret;\n\t\t};\n\t\tthis.resetFilter = function () {\n\t\t\tthis.p.filter = $.extend(true,{},this.p.initFilter);\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t};\n\t\tthis.hideError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(\"\");\n\t\t\t$(\"tr.error\", this).hide();\n\t\t};\n\t\tthis.showError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(this.p.errmsg);\n\t\t\t$(\"tr.error\", this).show();\n\t\t};\n\t\tthis.toUserFriendlyString = function() {\n\t\t\treturn this.getStringForGroup(p.filter);\n\t\t};\n\t\tthis.toString = function() {\n\t\t\t// this will obtain a string that can be used to match an item.\n\t\t\tvar that = this;\n\t\t\tfunction getStringRule(rule) {\n\t\t\t\tif(that.p.errorcheck) {\n\t\t\t\t\tvar i, cm;\n\t\t\t\t\tfor (i=0; i<that.p.columns.length; i++) {\n\t\t\t\t\t\tif(that.p.columns[i].name === rule.field) {\n\t\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cm) {checkData(rule.data, cm);}\n\t\t\t\t}\n\t\t\t\treturn rule.op + \"(item.\" + rule.field + \",'\" + rule.data + \"')\";\n\t\t\t}\n\n\t\t\tfunction getStringForGroup(group) {\n\t\t\t\tvar s = \"(\", index;\n\n\t\t\t\tif (group.groups !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringForGroup(group.groups[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (group.rules !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse  {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ts += \")\";\n\n\t\t\t\tif (s === \"()\") {\n\t\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t}\n\n\t\t\treturn getStringForGroup(this.p.filter);\n\t\t};\n\n\t\t// Here we init the filter\n\t\tthis.reDraw();\n\n\t\tif(this.p.showQuery) {\n\t\t\tthis.onchange();\n\t\t}\n\t\t// mark is as created so that it will not be created twice on this element\n\t\tthis.filter = true;\n\t});\n};\n$.extend($.fn.jqFilter,{\n\t/*\n\t * Return SQL like string. Can be used directly\n\t */\n\ttoSQLString : function()\n\t{\n\t\tvar s =\"\";\n\t\tthis.each(function(){\n\t\t\ts = this.toUserFriendlyString();\n\t\t});\n\t\treturn s;\n\t},\n\t/*\n\t * Return filter data as object.\n\t */\n\tfilterData : function()\n\t{\n\t\tvar s;\n\t\tthis.each(function(){\n\t\t\ts = this.p.filter;\n\t\t});\n\t\treturn s;\n\n\t},\n\tgetParameter : function (param) {\n\t\tif(param !== undefined) {\n\t\t\tif (this.p.hasOwnProperty(param) ) {\n\t\t\t\treturn this.p[param];\n\t\t\t}\n\t\t}\n\t\treturn this.p;\n\t},\n\tresetFilter: function() {\n\t\treturn this.each(function(){\n\t\t\tthis.resetFilter();\n\t\t});\n\t},\n\taddFilter: function (pfilter) {\n\t\tif (typeof pfilter === \"string\") {\n\t\t\tpfilter = $.jgrid.parse( pfilter );\n\t\t}\n\t\tthis.each(function(){\n\t\t\tthis.p.filter = pfilter;\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t});\n\t}\n\n});\n$.jgrid.extend({\n\tfilterToolbar : function(p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend({\n\t\t\tautosearch: true,\n\t\t\tautosearchDelay: 500,\n\t\t\tsearchOnEnter : true,\n\t\t\tbeforeSearch: null,\n\t\t\tafterSearch: null,\n\t\t\tbeforeClear: null,\n\t\t\tafterClear: null,\n\t\t\tonClearSearchValue : null,\n\t\t\tsearchurl : '',\n\t\t\tstringResult: false,\n\t\t\tgroupOp: 'AND',\n\t\t\tdefaultSearch : \"bw\",\n\t\t\tsearchOperators : false,\n\t\t\tresetIcon : \"x\",\n\t\t\tsplitSelect : \",\",\n\t\t\tgroupOpSelect : \"OR\",\n\t\t\toperands : { \"eq\" :\"==\", \"ne\":\"!\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"^\",\"bn\":\"!^\",\"in\":\"=\",\"ni\":\"!=\",\"ew\":\"|\",\"en\":\"!@\",\"cn\":\"~\",\"nc\":\"!~\",\"nu\":\"#\",\"nn\":\"!#\", \"bt\":\"...\"}\n\t\t}, regional , p  || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif($t.p.filterToolbar) { return; }\n\t\t\tif(!$($t).data('filterToolbar')) {\n\t\t\t\t$($t).data('filterToolbar', p);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\tp = $.extend(p, regional);\n\t\t\t}\n\t\t\tvar classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tbase = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base,\t\t\t\n\n\t\t\ttriggerToolbar = function() {\n\t\t\t\tvar sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], bbt =false, sop;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar $elem = $(\"#gs_\"+ $t.p.idPrefix + $.jgrid.jqID(this.name), (this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\t\tif(p.searchOperators &&  sop.searchOperMenu) {\n\t\t\t\t\t\tso = $elem.parent().prev().children(\"a\").attr(\"soper\") || p.defaultSearch;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tso  = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t}\n\t\t\t\t\tv = this.stype === \"custom\" && $.isFunction(sop.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\" ?\n\t\t\t\t\t\tsop.custom_value.call($t, $elem.children(\".customelement:first\"), \"get\") :\n\t\t\t\t\t\t$elem.val();\n\t\t\t\t\t// detect multiselect\n\t\t\t\t\tif(this.stype === 'select' && sop.multiple && $.isArray(v) && v.length) {\n\t\t\t\t\t\tms = true;\n\t\t\t\t\t\tssfield.push(nm);\n\t\t\t\t\t\tv= v.length === 1 ? v[0] : v;\n\t\t\t\t\t}\n\t\t\t\t\tif(so===\"bt\") {\n\t\t\t\t\t\tbbt = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(v || so===\"nu\" || so===\"nn\") {\n\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\tsopt[nm] = so;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t} catch (z) {}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\" || p.searchOperators === true) \n\t\t\t\t{\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + sopt[i] + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t// multiselect\n\t\t\t\t\tvar filters, rules, k,str, rule, ssdata, group;\n\t\t\t\t\tif(ms) {\n\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);//, rules, k,str, rule, ssdata, group;\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif($.inArray(rule.filed, ssfield)) {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(p.splitSelect);\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: p.groupOpSelect, groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: rule.op, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//ruleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt) {\n\t\t\t\t\t\tif(!$.isPlainObject(filters)) {\n\t\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif(rule.op === \"bt\") {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(\"...\");\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: 'AND', groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tvar btop = l === 0 ? 'ge' : 'le';\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif(str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: btop, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt || ms ) {\n\t\t\t\t\t\truleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bsr = $($t).triggerHandler(\"jqGridToolbarBeforeSearch\") === 'stop' ? true : false;\n\t\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterSearch\");\n\t\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t\t},\n\t\t\tclearToolbar = function(trigger){\n\t\t\t\tvar sdata={}, j=0, nm;\n\t\t\t\ttrigger = (typeof trigger !== 'boolean') ? true : trigger;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar v, $elem = $(\"#gs_\"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tif(this.searchoptions && this.searchoptions.defaultValue !== undefined) { \n\t\t\t\t\t\tv = this.searchoptions.defaultValue; \n\t\t\t\t\t}\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tswitch (this.stype) {\n\t\t\t\t\t\tcase 'select' :\n\t\t\t\t\t\t\t$elem.find(\"option\").each(function (i){\n\t\t\t\t\t\t\t\tif(i===0) { this.selected = true; }\n\t\t\t\t\t\t\t\tif ($(this).val() === v) {\n\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif ( v !== undefined ) {\n\t\t\t\t\t\t\t\t// post the key and not the text\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\t$elem.val(v || \"\");\n\t\t\t\t\t\t\tif(v !== undefined) {\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch (y){}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom':\n\t\t\t\t\t\t\tif ($.isFunction(this.searchoptions.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\") {\n\t\t\t\t\t\t\t\tthis.searchoptions.custom_value.call($t, $elem.children(\".customelement:first\"), \"set\", v || \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\") {\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + \"eq\" + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bcv = $($t).triggerHandler(\"jqGridToolbarBeforeClear\") === 'stop' ? true : false;\n\t\t\t\tif(!bcv && $.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}\n\t\t\t\tif(!bcv) {\n\t\t\t\t\tif(trigger) {\n\t\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterClear\");\n\t\t\t\tif($.isFunction(p.afterClear)){p.afterClear();}\n\t\t\t},\n\t\t\ttoggleToolbar = function(){\n\t\t\t\tvar trow = $(\"tr.ui-search-toolbar\",$t.grid.hDiv),\n\t\t\t\ttrow2 = $t.p.frozenColumns === true ?  $(\"tr.ui-search-toolbar\",$t.grid.fhDiv) : false;\n\t\t\t\tif(trow.css(\"display\") === 'none') {\n\t\t\t\t\ttrow.show(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.show();\n\t\t\t\t\t}\n\t\t\t\t} else { \n\t\t\t\t\ttrow.hide(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tbuildRuleMenu = function( elem, left, top ){\n\t\t\t\t$(\"#sopt_menu\").remove();\n\n\t\t\t\tleft=parseInt(left,10);\n\t\t\t\ttop=parseInt(top,10) + 18;\n\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\t\tvar str = '<ul id=\"sopt_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\t\tselected = $(elem).attr(\"soper\"), selclass,\n\t\t\t\taoprs = [], ina;\n\t\t\t\tvar i=0, nm =$(elem).attr(\"colname\"),len = $t.p.colModel.length;\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($t.p.colModel[i].name === nm) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tvar cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions);\n\t\t\t\tif(!options.sopt) {\n\t\t\t\t\toptions.sopt = [];\n\t\t\t\t\toptions.sopt[0]= cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t}\n\t\t\t\t$.each(p.odata, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < options.sopt.length; i++) {\n\t\t\t\t\tina = $.inArray(options.sopt[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tselclass = selected === p.odata[ina].oper ? common.highlight : \"\";\n\t\t\t\t\t\tstr += '<li class=\"ui-menu-item '+selclass+'\" role=\"presentation\"><a class=\"'+ common.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"'+p.odata[ina].oper+'\" oper=\"'+p.operands[p.odata[ina].oper]+'\"><table class=\"ui-common-table\"><tr><td width=\"25px\">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstr += \"</ul>\";\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#sopt_menu\").addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#sopt_menu > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(common.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(common.hover); }\n\t\t\t\t).click(function() {\n\t\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\t\toper = $(this).attr(\"oper\");\n\t\t\t\t\t$($t).triggerHandler(\"jqGridToolbarSelectOper\", [v, oper, elem]);\n\t\t\t\t\t$(\"#sopt_menu\").hide();\n\t\t\t\t\t$(elem).text(oper).attr(\"soper\",v);\n\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\tvar inpelm = $(elem).parent().next().children()[0];\n\t\t\t\t\t\tif( $(inpelm).val() || v===\"nu\" || v ===\"nn\") {\n\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t// create the row\n\t\t\tvar tr = $(\"<tr class='ui-search-toolbar' role='row'></tr>\"),\n\t\t\ttimeoutHnd, rules, filterobj;\n\t\t\tif( p.restoreFromFilters ) {\n\t\t\t\tfilterobj = $t.p.postData.filters;\n\t\t\t\tif(filterobj) {\n\t\t\t\t\tif( typeof filterobj === \"string\") {\n\t\t\t\t\t\tfilterobj = $.jgrid.parse( filterobj );\n\t\t\t\t\t}\n\t\t\t\t\trules = filterobj.rules.length ? filterobj.rules : false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.colModel,function(ci){\n\t\t\t\tvar cm=this, soptions, select=\"\", sot=\"=\", so, i, st, csv, df, elem, restores,\n\t\t\t\tth = $(\"<th role='columnheader' class='\" + base.headerBox+\" ui-th-\"+$t.p.direction+\"' id='gsh_\" + $t.p.id + \"_\" + cm.name + \"' ></th>\"),\n\t\t\t\tthd = $(\"<div></div>\"),\n\t\t\t\tstbl = $(\"<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>\");\n\t\t\t\tif(this.hidden===true) { $(th).css(\"display\",\"none\");}\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif(this.stype === undefined) {this.stype='text';}\n\t\t\t\tthis.searchoptions = this.searchoptions || {};\n\t\t\t\tif(this.searchoptions.searchOperMenu === undefined) {\n\t\t\t\t\tthis.searchoptions.searchOperMenu = true;\n\t\t\t\t}\n\t\t\t\tsoptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: \"gs_\"+$t.p.idPrefix+cm.name, oper:'search'});\n\t\t\t\tif(this.search){\n\t\t\t\t\tif( p.restoreFromFilters && rules) {\n\t\t\t\t\t\trestores = false;\n\t\t\t\t\t\tfor( var is = 0; is < rules.length; is++) {\n\t\t\t\t\t\t\tif(rules[is].field ) {\n\t\t\t\t\t\t\t\tvar snm = cm.index || cm.name;\n\t\t\t\t\t\t\t\tif( snm === rules[is].field) {\n\t\t\t\t\t\t\t\t\trestores = rules[is];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(p.searchOperators) {\n\t\t\t\t\t\tso  = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t\t// overwrite  search operators\n\t\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\t\tso = restores.op;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i = 0;i<p.odata.length;i++) {\n\t\t\t\t\t\t\tif(p.odata[i].oper === so) {\n\t\t\t\t\t\t\t\tsot = p.operands[so] || \"\";\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tst = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle;\n\t\t\t\t\t\tselect = this.searchoptions.searchOperMenu ? \"<a title='\"+st+\"' style='padding-right: 0.5em;' soper='\"+so+\"' class='soptclass' colname='\"+this.name+\"'>\"+sot+\"</a>\" : \"\";\n\t\t\t\t\t}\n\t\t\t\t\t$(\"td:eq(0)\",stbl).attr(\"colindex\",ci).append(select);\n\t\t\t\t\tif(soptions.clearSearch === undefined) {\n\t\t\t\t\t\tsoptions.clearSearch = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(soptions.clearSearch) {\n\t\t\t\t\t\tcsv = p.resetTitle || 'Clear Search Value';\n\t\t\t\t\t\t$(\"td:eq(2)\",stbl).append(\"<a title='\"+csv+\"' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>\"+p.resetIcon+\"</a>\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"td:eq(2)\", stbl).hide();\n\t\t\t\t\t}\n\t\t\t\t\tif(this.surl) {\n\t\t\t\t\t\tsoptions.dataUrl = this.surl;\n\t\t\t\t\t}\n\t\t\t\t\tdf=\"\";\n\t\t\t\t\tif(soptions.defaultValue ) {\n\t\t\t\t\t\tdf = $.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue;\n\t\t\t\t\t}\n\t\t\t\t\t//overwrite default value if restore from filters\n\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\tdf = restores.data;\n\t\t\t\t\t}\n\t\t\t\t\telem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t$(elem).addClass( classes.srInput );\n\t\t\t\t\t$(\"td:eq(1)\",stbl).append(elem);\n\t\t\t\t\t$(thd).append(stbl);\n\t\t\t\t\tif(soptions.dataEvents == null ) {\n\t\t\t\t\t\tsoptions.dataEvents = [];\n\t\t\t\t\t}\n\t\t\t\t\tswitch (this.stype)\n\t\t\t\t\t{\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(p.autosearch === true) {\n\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\ttype : \"change\",\n\t\t\t\t\t\t\t\tfn : function() {\n\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\t\tif(p.searchOnEnter) {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keypress\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\t\t\t\t\t\tif(key === 13){\n\t\t\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn this;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keydown\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.which;\n\t\t\t\t\t\t\t\t\t\tswitch (key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\tcase 9 :\n\t\t\t\t\t\t\t\t\t\t\tcase 16:\n\t\t\t\t\t\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\t\t\t\t\tcase 27:\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault :\n\t\t\t\t\t\t\t\t\t\t\t\tif(timeoutHnd) { clearTimeout(timeoutHnd); }\n\t\t\t\t\t\t\t\t\t\t\t\ttimeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$.jgrid.bindEv.call($t, elem , soptions);\n\t\t\t\t}\n\t\t\t\t$(th).append(thd);\n\t\t\t\t$(tr).append(th);\n\t\t\t\tif(!p.searchOperators || select === \"\") {\n\t\t\t\t\t$(\"td:eq(0)\",stbl).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"table thead\",$t.grid.hDiv).append(tr);\n\t\t\tif(p.searchOperators) {\n\t\t\t\t$(\".soptclass\",tr).click(function(e){\n\t\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\t\tleft = ( offset.left ),\n\t\t\t\t\ttop = ( offset.top);\n\t\t\t\t\tbuildRuleMenu(this, left, top );\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\t\tif(e.target.className !== \"soptclass\") {\n\t\t\t\t\t\t$(\"#sopt_menu\").remove();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".clearsearchclass\",tr).click(function() {\n\t\t\t\tvar ptr = $(this).parents(\"tr:first\"),\n\t\t\t\tcoli = parseInt($(\"td.ui-search-oper\", ptr).attr('colindex'),10),\n\t\t\t\tsval  = $.extend({},$t.p.colModel[coli].searchoptions || {}),\n\t\t\t\tdval = sval.defaultValue ? sval.defaultValue : \"\",\n\t\t\t\telem;\n\t\t\t\tif($t.p.colModel[coli].stype === \"select\") {\n\t\t\t\t\telem = $(\"td.ui-search-input select\", ptr);\n\t\t\t\t\tif(dval) {\n\t\t\t\t\t\telem.val( dval );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[0].selectedIndex = 0;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telem = $(\"td.ui-search-input input\", ptr);\n\t\t\t\t\telem.val( dval );\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarClearVal\",[elem[0], coli, sval, dval]);\n\t\t\t\tif($.isFunction(p.onClearSearchValue)) {\n\t\t\t\t\tp.onClearSearchValue.call($t, elem[0], coli, sval, dval);\n\t\t\t\t}\n\t\t\t\t// ToDo custom search type\n\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\ttriggerToolbar();\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tthis.p.filterToolbar = true;\n\t\t\tthis.triggerToolbar = triggerToolbar;\n\t\t\tthis.clearToolbar = clearToolbar;\n\t\t\tthis.toggleToolbar = toggleToolbar;\n\t\t});\n\t},\n\tdestroyFilterToolbar: function () {\n\t\treturn this.each(function () {\n\t\t\tif (!this.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.triggerToolbar = null;\n\t\t\tthis.clearToolbar = null;\n\t\t\tthis.toggleToolbar = null;\n\t\t\tthis.p.filterToolbar = false;\n\t\t\t$(this.grid.hDiv).find(\"table thead tr.ui-search-toolbar\").remove();\n\t\t});\n\t},\n\trefreshFilterToolbar : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tfilters : \"\",\n\t\t\tonClearVal : null,\n\t\t\tonSetVal : null\n\t\t}, p || {});\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length,\n\t\t\tsearchitem, filters, rules, rule, ssfield =[], ia;\n\t\t\t// clear the values on toolbar.\n\t\t\t// do not call clearToolbar \n\t\t\tif(!$t.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\tssfield.push(cm[i].name);\n\t\t\t\tsearchitem = $(\"#gs_\" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name));\n\t\t\t\tswitch (cm[i].stype) {\n\t\t\t\t\tcase 'select' :\n\t\t\t\t\tcase 'text' :\n\t\t\t\t\t\tsearchitem.val(\"\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif($.isFunction(p.onClearVal)) {\n\t\t\t\t\tp.onClearVal.call($t, searchitem, cm[i].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setrules (filter) {\n\t\t\t\tif(filter && filter.rules) { // condition to exit\n\t\t\t\t\trules = filter.rules;\n\t\t\t\t\tl = rules.length;\n\t\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\t\trule = rules[i];\n\t\t\t\t\t\tia = $.inArray(rule.field, ssfield);\n\t\t\t\t\t\tif( ia !== -1) {\n\t\t\t\t\t\t\tsearchitem = $(\"#gs_\" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name));\n\t\t\t\t\t\t\t// problem for between operator\n\t\t\t\t\t\t\tif ( searchitem.length > 0) {\n\t\t\t\t\t\t\t\tif (cm[ia].stype === \"select\") { \n\t\t\t\t\t\t\t\t\tsearchitem.find(\"option[value='\" + $.jgrid.jqID(rule.data) + \"']\").prop('selected', true);\n\t\t\t\t\t\t\t\t} else if (cm[ia].stype === \"text\") {\n\t\t\t\t\t\t\t\t\tsearchitem.val(rule.data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(p.onSetVal)) {\n\t\t\t\t\t\t\t\t\tp.onSetVal.call($t, searchitem, cm[ia].name);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t    }\n\t\t\t\t\t}\n\t\t\t\t\tif(filter.groups) {\n\t\t\t\t\t\tfor(var k=0;k<filter.groups.length;k++) {\n\t\t\t\t\t\t\tsetrules(filter.groups[k]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof (p.filters) === \"string\" && p.filters.length) {\n\t\t\t\tfilters = $.jgrid.parse(p.filters);\n\t\t\t\t// flat filters only\n\t\t\t}\n\t        if ($.isPlainObject(filters)) {\n\t\t\t\tsetrules( filters );\n\t        }\n\t\t});\n\t},\n\tsearchGrid : function (p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend(true, {\n\t\t\trecreateFilter: false,\n\t\t\tdrag: true,\n\t\t\tsField:'searchField',\n\t\t\tsValue:'searchString',\n\t\t\tsOper: 'searchOper',\n\t\t\tsFilter: 'filters',\n\t\t\tloadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.\n\t\t\tbeforeShowSearch: null,\n\t\t\tafterShowSearch : null,\n\t\t\tonInitializeSearch: null,\n\t\t\tafterRedraw : null,\n\t\t\tafterChange: null,\n\t\t\tsortStrategy: null,\n\t\t\tcloseAfterSearch : false,\n\t\t\tcloseAfterReset: false,\n\t\t\tcloseOnEscape : false,\n\t\t\tsearchOnEnter : false,\n\t\t\tmultipleSearch : false,\n\t\t\tmultipleGroup : false,\n\t\t\t//cloneSearchRowOnAdd: true,\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\tjqModal : true,\n\t\t\tmodal: false,\n\t\t\tresize : true,\n\t\t\twidth: 450,\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tshowQuery: false,\n\t\t\terrorcheck : true,\n\t\t\tsopt: null,\n\t\t\tstringResult: undefined,\n\t\t\tonClose : null,\n\t\t\tonSearch : null,\n\t\t\tonReset : null,\n\t\t\ttoTop : true,\n\t\t\toverlay : 30,\n\t\t\tcolumns : [],\n\t\t\ttmplNames : null,\n\t\t\ttmplFilters : null,\n\t\t\ttmplLabel : ' Template: ',\n\t\t\tshowOnLoad: false,\n\t\t\tlayer: null,\n\t\t\toperands : { \"eq\" :\"=\", \"ne\":\"<>\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"LIKE\",\"bn\":\"NOT LIKE\",\"in\":\"IN\",\"ni\":\"NOT IN\",\"ew\":\"LIKE\",\"en\":\"NOT LIKE\",\"cn\":\"LIKE\",\"nc\":\"NOT LIKE\",\"nu\":\"IS NULL\",\"nn\":\"ISNOT NULL\"}\n\t\t}, regional,  p || {});\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar fid = \"fbox_\"+$t.p.id,\n\t\t\tshowFrm = true,\n\t\t\tmustReload = true,\n\t\t\tIDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid},\n\t\t\tdefaultFilters  = $t.p.postData[p.sFilter],\n\t\t\tfl,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\t\t\tp.styleUI = $t.p.styleUI;\n\t\t\tif(typeof defaultFilters === \"string\") {\n\t\t\t\tdefaultFilters = $.jgrid.parse( defaultFilters );\n\t\t\t}\n\t\t\tif(p.recreateFilter === true) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).remove();\n\t\t\t}\n\t\t\tfunction showFilter(_filter) {\n\t\t\t\tshowFrm = $($t).triggerHandler(\"jqGridFilterBeforeShow\", [_filter]);\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t\tif(showFrm && $.isFunction(p.beforeShowSearch)) {\n\t\t\t\t\tshowFrm = p.beforeShowSearch.call($t,_filter);\n\t\t\t\t}\n\t\t\t\tif(showFrm) {\n\t\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(fid),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});\n\t\t\t\t\t$($t).triggerHandler(\"jqGridFilterAfterShow\", [_filter]);\n\t\t\t\t\tif($.isFunction(p.afterShowSearch)) {\n\t\t\t\t\t\tp.afterShowSearch.call($t, _filter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tshowFilter($(\"#fbox_\"+$.jgrid.jqID( $t.p.id )));\n\t\t\t} else {\n\t\t\t\tvar fil = $(\"<div><div id='\"+fid+\"' class='searchFilter' style='overflow:auto'></div></div>\").insertBefore(\"#gview_\"+$.jgrid.jqID($t.p.id)),\n\t\t\t\talign = \"left\", butleft =\"\"; \n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\talign = \"right\";\n\t\t\t\t\tbutleft = \" style='text-align:left'\";\n\t\t\t\t\tfil.attr(\"dir\",\"rtl\");\n\t\t\t\t}\n\t\t\t\tvar columns = $.extend([],$t.p.colModel),\n\t\t\t\tbS  =\"<a id='\"+fid+\"_search' class='fm-button \" + common.button + \" fm-button-icon-right ui-search'><span class='\" + common.icon_base + \" \" +classes.icon_search + \"'></span>\"+p.Find+\"</a>\",\n\t\t\t\tbC  =\"<a id='\"+fid+\"_reset' class='fm-button \" + common.button +\" fm-button-icon-left ui-reset'><span class='\" + common.icon_base + \" \" +classes.icon_reset + \"'></span>\"+p.Reset+\"</a>\",\n\t\t\t\tbQ = \"\", tmpl=\"\", colnm, found = false, bt, cmi=-1;\n\t\t\t\tif(p.showQuery) {\n\t\t\t\t\tbQ =\"<a id='\"+fid+\"_query' class='fm-button \" + common.button + \" fm-button-icon-left'><span class='\" + common.icon_base + \" \" +classes.icon_query + \"'></span>Query</a>\";\n\t\t\t\t}\n\t\t\t\tif(!p.columns.length) {\n\t\t\t\t\t$.each(columns, function(i,n){\n\t\t\t\t\t\tif(!n.label) {\n\t\t\t\t\t\t\tn.label = $t.p.colNames[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// find first searchable column and set it if no default filter\n\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\tvar searchable = (n.search === undefined) ?  true: n.search ,\n\t\t\t\t\t\t\thidden = (n.hidden === true),\n\t\t\t\t\t\t\tignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);\n\t\t\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\tcolnm = n.index || n.name;\n\t\t\t\t\t\t\t\tcmi =i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcolumns = p.columns;\n\t\t\t\t\tcmi = 0;\n\t\t\t\t\tcolnm = columns[0].index || columns[0].name;\n\t\t\t\t}\n\t\t\t\t// old behaviour\n\t\t\t\tif( (!defaultFilters && colnm) || p.multipleSearch === false  ) {\n\t\t\t\t\tvar cmop = \"eq\";\n\t\t\t\t\tif(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) {\n\t\t\t\t\t\tcmop = columns[cmi].searchoptions.sopt[0];\n\t\t\t\t\t} else if(p.sopt && p.sopt.length) {\n\t\t\t\t\t\tcmop = p.sopt[0];\n\t\t\t\t\t}\n\t\t\t\t\tdefaultFilters = {groupOp: \"AND\", rules: [{field: colnm, op: cmop, data: \"\"}]};\n\t\t\t\t}\n\t\t\t\tfound = false;\n\t\t\t\tif(p.tmplNames && p.tmplNames.length) {\n\t\t\t\t\tfound = true;\n\t\t\t\t\ttmpl = \"<tr><td class='ui-search-label'>\"+ p.tmplLabel +\"</td>\";\n\t\t\t\t\ttmpl += \"<td><select class='ui-template \" + classes.srSelect + \"'>\";\n\t\t\t\t\ttmpl += \"<option value='default'>Default</option>\";\n\t\t\t\t\t$.each(p.tmplNames, function(i,n){\n\t\t\t\t\t\ttmpl += \"<option value='\"+i+\"'>\"+n+\"</option>\";\n\t\t\t\t\t});\n\t\t\t\t\ttmpl += \"</select></td></tr>\";\n\t\t\t\t}\n\n\t\t\t\tbt = \"<table class='EditTable' style='border:0px none;margin-top:5px' id='\"+fid+\"_2'><tbody><tr><td colspan='2'><hr class='\" + common.content + \"' style='margin:1px'/></td></tr>\"+tmpl+\"<tr><td class='EditButton' style='text-align:\"+align+\"'>\"+bC+\"</td><td class='EditButton' \"+butleft+\">\"+bQ+bS+\"</td></tr></tbody></table>\";\n\t\t\t\tfid = $.jgrid.jqID( fid);\n\t\t\t\t$(\"#\"+fid).jqFilter({\n\t\t\t\t\tcolumns: columns,\n\t\t\t\t\tsortStrategy: p.sortStrategy,\n\t\t\t\t\tfilter: p.loadDefaults ? defaultFilters : null,\n\t\t\t\t\tshowQuery: p.showQuery,\n\t\t\t\t\terrorcheck : p.errorcheck,\n\t\t\t\t\tsopt: p.sopt,\n\t\t\t\t\tgroupButton : p.multipleGroup,\n\t\t\t\t\truleButtons : p.multipleSearch,\n\t\t\t\t\tuniqueSearchFields : p.uniqueSearchFields,\n\t\t\t\t\tafterRedraw : p.afterRedraw,\n\t\t\t\t\tops : p.odata,\n\t\t\t\t\toperands : p.operands,\n\t\t\t\t\tajaxSelectOptions: $t.p.ajaxSelectOptions,\n\t\t\t\t\tgroupOps: p.groupOps,\n\t\t\t\t\taddsubgrup : p.addsubgrup,\n\t\t\t\t\taddrule : p.addrule,\n\t\t\t\t\tdelgroup : p.delgroup,\n\t\t\t\t\tdelrule : p.delrule,\n\t\t\t\t\tonChange : function() {\n\t\t\t\t\t\tif(this.p.showQuery) {\n\t\t\t\t\t\t\t$('.query',this).html(this.toUserFriendlyString());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($.isFunction(p.afterChange)) {\n\t\t\t\t\t\t\tp.afterChange.call($t, $(\"#\"+fid), p);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tdirection : $t.p.direction,\n\t\t\t\t\tid: $t.p.id\n\t\t\t\t});\n\t\t\t\tfil.append( bt );\n\t\t\t\tif(found && p.tmplFilters && p.tmplFilters.length) {\n\t\t\t\t\t$(\".ui-template\", fil).on('change', function(){\n\t\t\t\t\t\tvar curtempl = $(this).val();\n\t\t\t\t\t\tif(curtempl===\"default\") {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', defaultFilters);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(p.multipleGroup === true) {p.multipleSearch = true;}\n\t\t\t\t$($t).triggerHandler(\"jqGridFilterInitialize\", [$(\"#\"+fid)]);\n\t\t\t\tif($.isFunction(p.onInitializeSearch) ) {\n\t\t\t\t\tp.onInitializeSearch.call($t, $(\"#\"+fid));\n\t\t\t\t}\n\t\t\t\tp.gbox = \"#gbox_\"+fid;\n\t\t\t\tif (p.layer) {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0], \"#\"+$.jgrid.jqID(p.layer), {position: \"relative\"});\n\t\t\t\t} else {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\t\t}\n\t\t\t\tif (p.searchOnEnter || p.closeOnEscape) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {\n\t\t\t\t\t\tvar $target = $(e.target);\n\t\t\t\t\t\tif (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER\n\t\t\t\t\t\t\t\t!$target.hasClass('add-group') && !$target.hasClass('add-rule') &&\n\t\t\t\t\t\t\t\t!$target.hasClass('delete-group') && !$target.hasClass('delete-rule') &&\n\t\t\t\t\t\t\t\t(!$target.hasClass(\"fm-button\") || !$target.is(\"[id$=_query]\"))) {\n\t\t\t\t\t\t\t$(\"#\"+fid+\"_search\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.modalhead)).find(\".ui-jqdialog-titlebar-close\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(bQ) {\n\t\t\t\t\t$(\"#\"+fid+\"_query\").on('click', function(){\n\t\t\t\t\t\t$(\".queryresult\", fil).toggle();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (p.stringResult===undefined) {\n\t\t\t\t\t// to provide backward compatibility, inferring stringResult value from multipleSearch\n\t\t\t\t\tp.stringResult = p.multipleSearch;\n\t\t\t\t}\n\t\t\t\t$(\"#\"+fid+\"_search\").on('click', function(){\n\t\t\t\t\tvar sdata={}, res, filters;\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\tfl.find(\".input-elm:focus\").change();\n\t\t\t\t\tfilters = fl.jqFilter('filterData');\n\t\t\t\t\tif(p.errorcheck) {\n\t\t\t\t\t\tfl[0].hideError();\n\t\t\t\t\t\tif(!p.showQuery) {fl.jqFilter('toSQLString');}\n\t\t\t\t\t\tif(fl[0].p.error) {\n\t\t\t\t\t\t\tfl[0].showError();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(p.stringResult) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tres = JSON.stringify(filters);\n\t\t\t\t\t\t} catch (e2) { }\n\t\t\t\t\t\tif(typeof res===\"string\") {\n\t\t\t\t\t\t\tsdata[p.sFilter] = res;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(p.multipleSearch) {\n\t\t\t\t\t\t\tsdata[p.sFilter] = filters;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsdata[p.sField] = filters.rules[0].field;\n\t\t\t\t\t\t\tsdata[p.sValue] = filters.rules[0].data;\n\t\t\t\t\t\t\tsdata[p.sOper] = filters.rules[0].op;\n\t\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.search = true;\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterSearch\");\n\t\t\t\t\tif( mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onSearch) ) {\n\t\t\t\t\t\tmustReload = p.onSearch.call($t, $t.p.filters);\n\t\t\t\t\t}\n\t\t\t\t\tif (mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.closeAfterSearch) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#\"+fid+\"_reset\").on('click', function(){\n\t\t\t\t\tvar sdata={},\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\t\tsdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = \"\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfl[0].resetFilter();\n\t\t\t\t\tif(found) {\n\t\t\t\t\t\t$(\".ui-template\", fil).val(\"default\");\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterReset\");\n\t\t\t\t\tif(mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onReset) ) {\n\t\t\t\t\t\tmustReload = p.onReset.call($t);\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif (p.closeAfterReset) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tshowFilter($(\"#\"+fid));\n\t\t\t\t$(\".fm-button:not(.\"+common.disabled+\")\",fil).hover(\n\t\t\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t},\n\tfilterInput : function( val, p) {\n\t\tp = $.extend(true, {\n\t\t\tdefaultSearch : 'cn',\n\t\t\tgroupOp : 'OR',\n\t\t\tsearchAll : false,\n\t\t\tbeforeSearch : null,\n\t\t\tafterSearch : null\n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar nm, sop,ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\", gi=0, so;\n\t\t\tval +=\"\";\n\t\t\tif(!$t.p.datatype === 'local') { return; }\n\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\tnm = this.index || this.name;\n\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\tso  = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch;\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif (this.search || p.searchAll) {\n\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + nm + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + so + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + val.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\tgi++;\n\t}\n});\n\t\t\truleGroup += \"]}\";\n\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t});\n\t\t\tvar bsr = $($t).triggerHandler(\"jqGridFilterInputBeforeSearch\") === 'stop' ? true : false;\n\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:true}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t$($t).triggerHandler(\"jqGridFilterInputAfterSearch\");\n\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.formedit.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.common\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\nvar rp_ge = {};\n$.jgrid.extend({\n\teditGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'edit'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: '500',\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay : 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl: null,\n\t\t\tmtype : \"POST\",\n\t\t\tclearAfterAdd :true,\n\t\t\tcloseAfterEdit : false,\n\t\t\treloadAfterSubmit : true,\n\t\t\tonInitializeForm: null,\n\t\t\tbeforeInitData: null,\n\t\t\tbeforeShowForm: null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterComplete: null,\n\t\t\tonclickPgButtons : null,\n\t\t\tafterclickPgButtons: null,\n\t\t\teditData : {},\n\t\t\trecreateForm : false,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\taddedrow : \"first\",\n\t\t\ttopinfo : '',\n\t\t\tbottominfo: '',\n\t\t\tsaveicon : [],\n\t\t\tcloseicon : [],\n\t\t\tsavekey: [false,13],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tcheckOnSubmit : false,\n\t\t\tcheckOnUpdate : false,\n\t\t\tprocessing : false,\n\t\t\tonClose : null,\n\t\t\tajaxEditOptions : {},\n\t\t\tserializeEditData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\toverlayClass : commonstyle.overlay,\n\t\t\tremovemodal : true,\n\t\t\tform: 'edit',\n\t\t\ttemplate : null,\n\t\t\tfocusField : true,\n\t\t\teditselected : false\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\t$t.p.savedData = {};\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"FrmGrid_\"+gID, frmtborg = \"TblGrid_\"+gID, frmtb = \"#\"+$.jgrid.jqID(frmtborg), frmtb2,\n\t\t\tIDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},\n\t\t\tshowFrm = true, maxCols = 1, maxRows=0,\tpostdata, diff, frmoper,\n\t\t\ttempl = typeof rp_ge[$t.p.id].template === \"string\" && rp_ge[$t.p.id].template.length > 0,\n\t\t\terrors =$.jgrid.getRegional(this, 'errors');\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif($.jgrid.isMobile()) {\n\t\t\t\trp_ge[$t.p.id].resize = false;\n\t\t\t}\n\t\t\tif (rowid === \"new\") {\n\t\t\t\trowid = \"_empty\";\n\t\t\t\tfrmoper = \"add\";\n\t\t\t\tp.caption=rp_ge[$t.p.id].addCaption;\n\t\t\t} else {\n\t\t\t\tp.caption=rp_ge[$t.p.id].editCaption;\n\t\t\t\tfrmoper = \"edit\";\n\t\t\t}\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"formProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"formProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar closeovrl = true;\n\t\t\tif(p.checkOnUpdate && p.jqModal && !p.modal) {\n\t\t\t\tcloseovrl = false;\n\t\t\t}\n\t\t\tfunction getFormData(){\n\t\t\t\tvar a2 ={}, i;\n\t\t\t\t$(frmtb).find(\".FormElement\").each(function() {\n\t\t\t\t\tvar celm = $(\".customelement\", this);\n\t\t\t\t\tif (celm.length) {\n\t\t\t\t\t\tvar  elem = celm[0], nm = $(elem).attr('name');\n\t\t\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\t\t\tif(this.name === nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tpostdata[nm] = this.editoptions.custom_value.call($t, $(\"#\"+$.jgrid.jqID(nm),frmtb),'get');\n\t\t\t\t\t\t\t\t\tif (postdata[nm] === undefined) {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch ($(this).get(0).type) {\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\tif($(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar ofv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= ofv;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-one\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-multiple\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\tpostdata[this.name] = postdata[this.name] ? postdata[this.name].join(\",\") : \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\tcase \"button\":\n\t\t\t\t\t\t\t\tpostdata[this.name] = $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"radio\" :\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfor(i in a2 ) {\n\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frmtb).val();\n\t\t\t\t\t\tpostdata[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[i] = $.jgrid.htmlEncode(postdata[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD'>&#160;</td><td class='DataTD'>&#160;</td>\", tmpl=\"\", i, ffld; //*2\n\t\t\t\tfor (i =1; i<=maxcols;i++) {\n\t\t\t\t\ttmpl += tdtmpl;\n\t\t\t\t}\n\t\t\t\tif(rowid !== '_empty') {\n\t\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t}\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]),{rowId:rowid, colModel:this},i);\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\ttmp =  (this.edittype && this.edittype === \"textarea\") ? $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text() : $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(!tmp || tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:'edit'}),\n\t\t\t\t\t\tfrmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(rowid === \"_empty\" && opt.defaultValue ) {\n\t\t\t\t\t\t\ttmp = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!this.edittype) {this.edittype = \"text\";}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\telc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"checkbox\") {tmp = $(elc).attr(\"offval\");}\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"select\") {tmp = $(\"option:eq(0)\",elc).text();}\n\t\t\t\t\t\tif(this.edittype === \"select\") {\n\t\t\t\t\t\t\ttmp = $(elc).val();\n\t\t\t\t\t\t\tif($(elc).get(0).type === 'select-multiple' && tmp) {\n\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype === 'checkbox') {\n\t\t\t\t\t\t\tif($(elc).is(\":checked\")) {\n\t\t\t\t\t\t\t\ttmp= $(elc).val();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(elc).attr(\"offval\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(elc).addClass(\"FormElement\");\n\t\t\t\t\t\tif( $.inArray(this.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t$(elc).addClass( styles.inputClass );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tffld = true;\n\t\t\t\t\t\tif(templ) {\n\t\t\t\t\t\t\tvar ftmplfld = $(frm).find(\"#\"+nm);\n\t\t\t\t\t\t\tif(ftmplfld.length){\n\t\t\t\t\t\t\t\tftmplfld.replaceWith( elc );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tffld = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//--------------------\n\t\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"tr_\"+nm);\n\t\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html(\"<label for='\"+nm+\"'>\"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + \"</label>\");\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);\n\t\t\t\t\t\t\t//-------------------------\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) {\n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype==='custom' && $.isFunction(opt.custom_value) ) {\n\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm, frmgr),'set',tmp);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow;\n\t\t\t\t\tif(templ) {\n\t\t\t\t\t\tidrow = \"<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/>\";\n\t\t\t\t\t\t$(frm).append(idrow);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\t\tidrow[0].rp = cnt+999;\n\t\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t\t} \n\t\t\t\t\t//$(tb).append(idrow);\n\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\t\t\t\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj,fmid){\n\t\t\t\tvar nm,cnt=0,tmp, fld,opt,vl,vlc;\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t$t.p.savedData = {};\n\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"]=rowid;\n\t\t\t\t}\n\t\t\t\tvar cm = obj.p.colModel;\n\t\t\t\tif(rowid === '_empty') {\n\t\t\t\t\t$(cm).each(function(){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\topt = $.extend({}, this.editoptions || {} );\n\t\t\t\t\t\tfld = $(\"#\"+$.jgrid.jqID(nm),fmid);\n\t\t\t\t\t\tif(fld && fld.length && fld[0] !== null) {\n\t\t\t\t\t\t\tvl = \"\";\n\t\t\t\t\t\t\tif(this.edittype === 'custom' && $.isFunction(opt.custom_value)) {\n\t\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm,fmid),'set',vl);\n\t\t\t\t\t\t\t} else if(opt.defaultValue ) {\n\t\t\t\t\t\t\t\tvl = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t\t\tif(fld[0].type==='checkbox') {\n\t\t\t\t\t\t\t\t\tvlc = vl.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!==\"\") {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].value = vl;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {fld.val(vl);}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif( fld[0].type==='checkbox' ) {\n\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\tvl = $(fld).attr(\"offval\");\n\t\t\t\t\t\t\t\t} else if (fld[0].type && fld[0].type.substr(0,6)==='select') {\n\t\t\t\t\t\t\t\t\tfld[0].selectedIndex = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfld.val(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t$t.p.savedData[nm] = vl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$(\"#id_g\",fmid).val(rowid);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar tre = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!tre) {return;}\n\t\t\t\t$('td[role=\"gridcell\"]',tre).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\ttmp = cm[i].edittype===\"textarea\" ? $(this).text() : $(this).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(nm);\n\t\t\t\t\t\tswitch (cm[i].edittype) {\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t\t$(\"#\"+nm,fmid).val(tmp);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\t\t\tvar opv = tmp.split(\",\");\n\t\t\t\t\t\t\t\topv = $.map(opv,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t$(\"#\"+nm+\" option\",fmid).each(function(){\n\t\t\t\t\t\t\t\t\tif (!cm[i].editoptions.multiple && ($.trim(tmp) === $.trim($(this).text()) || opv[0] === $.trim($(this).text()) || opv[0] === $.trim($(this).val())) ){\n\t\t\t\t\t\t\t\t\t\tthis.selected= true;\n\t\t\t\t\t\t\t\t\t} else if (cm[i].editoptions.multiple){\n\t\t\t\t\t\t\t\t\t\tif(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm,fmid).val();\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions.multiple) {\n\t\t\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\ttmp = String(tmp);\n\t\t\t\t\t\t\t\tif(cm[i].editoptions && cm[i].editoptions.value) {\n\t\t\t\t\t\t\t\t\tvar cb = cm[i].editoptions.value.split(\":\");\n\t\t\t\t\t\t\t\t\tif(cb[0] === tmp) {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":true, \"defaultChecked\" : true});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":false, \"defaultChecked\" : false});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttmp = tmp.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!==\"\") {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\",true); //ie\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\", false); //ie\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\tif($(\"#\"+nm, fmid).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).val();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).attr(\"offval\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\t\tcm[i].editoptions.custom_value.call($t, $(\"#\"+nm, fmid),'set',tmp);\n\t\t\t\t\t\t\t\t\t} else {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {\n\t\t\t\t\t$(\"#id_g\",frmtb).val(rowid);\n\t\t\t\t\tif( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setNulls() {\n\t\t\t\t$.each($t.p.colModel, function(i,n){\n\t\t\t\t\tif(n.editoptions && n.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(postdata.hasOwnProperty(n.name) && postdata[n.name] === \"\") {\n\t\t\t\t\t\t\tpostdata[n.name] = 'null';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction postIt() {\n\t\t\t\tvar copydata, ret=[true,\"\",\"\"], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url;\n\t\t\t\t\n\t\t\t\tvar retvals = $($t).triggerHandler(\"jqGridAddEditBeforeCheckValues\", [$(frmgr), frmoper]);\n\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t\n\t\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {\n\t\t\t\t\tretvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata,$(frmgr),frmoper);\n\t\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t}\n\t\t\t\tfor( key in postdata ){\n\t\t\t\t\tif(postdata.hasOwnProperty(key)) {\n\t\t\t\t\t\tret = $.jgrid.checkValues.call($t,postdata[key],key);\n\t\t\t\t\t\tif(ret[0] === false) {break;}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetNulls();\n\t\t\t\tif(ret[0]) {\n\t\t\t\t\tonCS = $($t).triggerHandler(\"jqGridAddEditClickSubmit\", [rp_ge[$t.p.id], postdata, frmoper]);\n\t\t\t\t\tif( onCS === undefined && $.isFunction( rp_ge[$t.p.id].onclickSubmit)) { \n\t\t\t\t\t\tonCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; \n\t\t\t\t\t}\n\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditBeforeSubmit\", [postdata, $(frmgr), frmoper]);\n\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t}\n\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].beforeSubmit))  {\n\t\t\t\t\t\tret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").addClass( commonstyle.active );\n\t\t\t\t\turl = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl');\n\t\t\t\t\toper = opers.oper;\n\t\t\t\t\tidname = url === 'clientArray' ? $t.p.keyName : opers.id;\n\t\t\t\t\t// we add to pos data array the action - the name is oper\n\t\t\t\t\tpostdata[oper] = ($.trim(postdata[$t.p.id+\"_id\"]) === \"_empty\") ? opers.addoper : opers.editoper;\n\t\t\t\t\tif(postdata[oper] !== opers.addoper) {\n\t\t\t\t\t\tpostdata[idname] = postdata[$t.p.id+\"_id\"];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// check to see if we have allredy this field in the form and if yes lieve it\n\t\t\t\t\t\tif( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+\"_id\"];}\n\t\t\t\t\t}\n\t\t\t\t\tdelete postdata[$t.p.id+\"_id\"];\n\t\t\t\t\tpostdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS);\n\t\t\t\t\tif($t.p.treeGrid === true)  {\n\t\t\t\t\t\tif(postdata[oper] === opers.addoper) {\n\t\t\t\t\t\tselr = $($t).jqGrid(\"getGridParam\", 'selrow');\n\t\t\t\t\t\t\tvar tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id';\n\t\t\t\t\t\t\tpostdata[tr_par_id] = selr;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i in $t.p.treeReader){\n\t\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(i)) {\n\t\t\t\t\t\t\t\tvar itm = $t.p.treeReader[i];\n\t\t\t\t\t\t\t\tif(postdata.hasOwnProperty(itm)) {\n\t\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;}\n\t\t\t\t\t\t\t\t\tdelete postdata[itm];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]);\n\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) :  postdata,\n\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\tvar key;\n\t\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\tpostdata[idname] = $t.p.idPrefix + postdata[idname];\n\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = $($t).triggerHandler(\"jqGridAddEditErrorTextFormat\", [data, frmoper]);\n\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditAfterSubmit\", [data, postdata, frmoper]);\n\t\t\t\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].afterSubmit) ) {\n\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(postdata,function(n,v){\n\t\t\t\t\t\t\t\t\t\tpostdata[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != \"local\";\n\t\t\t\t\t\t\t\t// the action is add\n\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper ) {\n\t\t\t\t\t\t\t\t\t//id processing\n\t\t\t\t\t\t\t\t\t// user not set the id ret[2]\n\t\t\t\t\t\t\t\t\tif(!ret[2]) {ret[2] = $.jgrid.randId();}\n\t\t\t\t\t\t\t\t\tif(postdata[idname] == null || postdata[idname] === \"_empty\" || postdata[idname] == \"\"){\n\t\t\t\t\t\t\t\t\t\tpostdata[idname] = ret[2];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[2] = postdata[idname];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addChildNode\",ret[2],selr,postdata );\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addRowData\",ret[2],postdata,p.addedrow);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid !== true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ret[2]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t\t} else if (rp_ge[$t.p.id].clearAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tfillData(\"_empty\", $t, frmgr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// the action is update\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t\tif( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid(\"setSelection\",postdata[idname]);},1000);}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setTreeRow\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\tcopydata = data;\n\t\t\t\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterComplete\", [copydata, postdata, $(frmgr), frmoper]);\n\t\t\t\t\t\t\t\t\t\trp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper);\n\t\t\t\t\t\t\t\t\t\tcopydata=null;\n\t\t\t\t\t\t\t\t\t},500);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t\t\t\t\tif($t.p.savedData[$t.p.id+\"_id\"] !== \"_empty\"){\n\t\t\t\t\t\t\t\t\t\tfor(key in $t.p.savedData) {\n\t\t\t\t\t\t\t\t\t\t\tif($t.p.savedData.hasOwnProperty(key) && postdata[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedData[key] = postdata[key];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\ttry{$(':input:visible',frmgr)[0].focus();} catch (e){}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions );\n\n\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+errors.nourl;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"set_\"+$t.p.id); \n\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].reloadAfterSubmit = false;\n\t\t\t\t\t\t\t\tpostdata = ajaxOptions.data;\n\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t// return;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction compareData(nObj, oObj ) {\n\t\t\t\tvar ret = false,key;\n\t\t\t\tret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj)\n\t\t\t\t\t&& Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length);\n\t\t\t\tif(!ret) {\n\t\t\t\t\tfor (key in oObj) {\n\t\t\t\t\t\tif(oObj.hasOwnProperty(key) )  {\n\t\t\t\t\t\t\tif(nObj.hasOwnProperty(key) ) {\n\t\t\t\t\t\t\t\tif( nObj[key] !== oObj[key] ) {\n\t\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction checkUpdates () {\n\t\t\t\tvar stat = true;\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tif(rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\tpostdata = {};\n\t\t\t\t\tgetFormData();\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+IDs.themodal).show();\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn stat;\n\t\t\t}\n\t\t\tfunction restoreInline() {\n\t\t\t\tvar i;\n\t\t\t\tif (rowid !== \"_empty\" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.isFunction($.fn.jqGrid.restoreRow)) {\n\t\t\t\t\tfor (i=0;i<$t.p.savedRow.length;i++) {\n\t\t\t\t\t\tif ($t.p.savedRow[i].id === rowid) {\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow',rowid);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction updateNav(cr, posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid =  $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",frmtb).val(), pos;\n\t\t\t\tif($t.p.multiselect && rp_ge[$t.p.id].editselected) {\n\t\t\t\t\tvar arr = [];\n\t\t\t\t\tfor(var i=0, len = rowsInGrid.length;i<len;i++) {\n\t\t\t\t\t\tif($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {\n\t\t\t\t\t\t\tarr.push(rowsInGrid[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpos = $.inArray(selrow,arr);\n\t\t\t\t\treturn [pos, arr];\n\t\t\t\t} else {\n\t\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\t}\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\t\t\tfunction parseTemplate ( template ){\n\t\t\t\tvar   tmpl =\"\";\n\t\t\t\tif(typeof template === \"string\") {\n\t\t\t\t\ttmpl = template.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\t\t\t\treturn '<span id=\"'+ i+ '\" ></span>';\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn tmpl;\n\t\t\t}\n\t\t\tfunction syncSavedData () {\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\n\t\t\t\t\tvar a1=[], a2={};\n\t\t\t\t\ta1 = $.map($t.p.savedData, function(v, i){\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t});\n\t\t\t\t\t$(\".FormElement\", frm ).each(function(){\n\t\t\t\t\t\tif( a1.indexOf(this.name) === -1 ) {\n\t\t\t\t\t\t\tvar tv = $(this).val(), tt = $(this).get(0).type;\n\t\t\t\t\t\t\tif( tt === 'checkbox') {\n\t\t\t\t\t\t\t\tif(!$(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\ttv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if(tt === 'select-multiple') {\n\t\t\t\t\t\t\t\ttv = tv.join(\",\");\n\t\t\t\t\t\t\t} else if(tt === 'radio') {\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedData[this.name] = tv;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tfor(var i in a2 ) {\n\t\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frm).val();\n\t\t\t\t\t\t\t$t.p.savedData[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr+\"' class='FormGrid' onSubmit='return false;' style='width:\"+dw+\";height:\"+dh+\";'></form>\").data(\"disabled\",false),\n\t\t\ttbl;\n\t\t\tif(templ) {\n\t\t\t\ttbl = parseTemplate( rp_ge[$(this)[0].p.id].template );\n\t\t\t\tfrmtb2 = frmtb;\n\t\t\t} else {\n\t\t\t\ttbl = $(\"<table id='\"+frmtborg+\"' class='EditTable ui-common-table'><tbody></tbody></table>\");\n\t\t\t\tfrmtb2 = frmtb+\"_2\";\n\t\t\t}\n\t\t\tfrmgr = \"#\"+ $.jgrid.jqID(frmgr);\n\t\t\t// errors\n\t\t\t$(frm).append(\"<div class='FormError \" + commonstyle.error + \"' style='display:none;'></div>\" );\n\t\t\t// topinfo\n\t\t\t$(frm).append(\"<div class='tinfo topinfo'>\"+rp_ge[$t.p.id].topinfo+\"</div>\");\n\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t$(frm).append(tbl);\n\n\t\t\tshowFrm = $($t).triggerHandler(\"jqGridAddEditBeforeInitData\", [frm, frmoper]);\n\t\t\tif(showFrm === undefined) {\n\t\t\t\tshowFrm = true;\n\t\t\t}\n\t\t\tif(showFrm && $.isFunction(rp_ge[$t.p.id].beforeInitData)) {\n\t\t\t\tshowFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper);\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\n\t\t\trestoreInline();\n\t\t\t// set the id.\n\t\t\t// use carefull only to change here colproperties.\n\t\t\t// create data\n\t\t\tcreateData(rowid,$t,tbl,maxCols);\n\t\t\t// buttons at footer\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\";\n\t\t\tvar bP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbS  =\"<a id='sData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\tvar bt = \"<table style='height:auto' class='EditTable ui-common-table' id='\"+frmtborg+\"_2'><tbody><tr><td colspan='2'><hr class='\"+commonstyle.content+\"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bS+bC+\"</td></tr>\";\n\t\t\t//bt += \"<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>\"+rp_ge[$t.p.id].bottominfo+\"</td></tr>\";\n\t\t\tbt += \"</tbody></table>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar cle = false;\n\t\t\tif(p.closeOnEscape===true){\n\t\t\t\tp.closeOnEscape = false;\n\t\t\t\tcle = true;\n\t\t\t}\n\t\t\tvar tms;\n\t\t\tif(templ) {\n\t\t\t\t$(frm).find(\"#pData\").replaceWith( bP );\n\t\t\t\t$(frm).find(\"#nData\").replaceWith( bN );\n\t\t\t\t$(frm).find(\"#sData\").replaceWith( bS );\n\t\t\t\t$(frm).find(\"#cData\").replaceWith( bC );\n\t\t\t\ttms = $(\"<div id=\"+frmtborg+\"></div>\").append(frm);\n\t\t\t} else {\n\t\t\t\ttms = $(\"<div></div>\").append(frm).append(bt);\n\t\t\t}\n\t\t\t\n\t\t\t$(frm).append(\"<div class='binfo topinfo bottominfo'>\"+rp_ge[$t.p.id].bottominfo+\"</div>\");\n\n\t\t\t$.jgrid.createModal(IDs,tms, rp_ge[$(this)[0].p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\n\t\t\tif(rp_ge[$t.p.id].topinfo) {$(\".tinfo\", frmgr).show();}\n\t\t\tif(rp_ge[$t.p.id].bottominfo) {$(\".binfo\",frmgr).show();}\n\n\t\t\ttms = null;bt=null;\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) {\n\t\t\t\tvar wkey = e.target;\n\t\t\t\tif ($(frmgr).data(\"disabled\")===true ) {return false;}//??\n\t\t\t\tif(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save\n\t\t\t\t\tif(wkey.tagName !== \"TEXTAREA\") {\n\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\tif(cle)\t{$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tif($(\"#id_g\",frmtb).val() === \"_empty\") {return true;}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(p.checkOnUpdate) {\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close span\",\"#\"+$.jgrid.jqID(IDs.themodal)).removeClass(\"jqmClose\");\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.themodal)).off(\"click\")\n\t\t\t\t.click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.saveicon = $.extend([true,\"left\", styles.icon_save ],p.saveicon);\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\t// beforeinitdata after creation of the form\n\t\t\tif(p.saveicon[0]===true) {\n\t\t\t\t$(\"#sData\",frmtb2).addClass(p.saveicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\"+commonstyle.icon_base + \" \" +p.saveicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",frmtb2).addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base +\" \"+p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\tbS  =\"<a id='sNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002'>\"+p.bYes+\"</a>\";\n\t\t\t\tbN  =\"<a id='nNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px'>\"+p.bNo+\"</a>\";\n\t\t\t\tbC  =\"<a id='cNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px;'>\"+p.bExit+\"</a>\";\n\t\t\t\tvar zI = p.zIndex  || 999;zI ++;\n\t\t\t\t$(\"<div class='\"+ p.overlayClass+\" jqgrid-overlay confirm' style='z-index:\"+zI+\";display:none;'>&#160;\"+\"</div><div class='confirm ui-jqconfirm \"+commonstyle.content+\"' style='z-index:\"+(zI+1)+\"'>\"+p.saveData+\"<br/><br/>\"+bS+bN+bC+\"</div>\").insertAfter(frmgr);\n\t\t\t\t$(\"#sNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\tpostIt();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#nNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\tsetTimeout(function(){$(\":input:visible\",frmgr)[0].focus();},0);\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#cNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t// here initform - only once\n\t\t\t$($t).triggerHandler(\"jqGridAddEditInitializeForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);}\n\t\t\tif(rowid===\"_empty\" || !rp_ge[$t.p.id].viewPagerButtons) {$(\"#pData,#nData\",frmtb2).hide();} else {$(\"#pData,#nData\",frmtb2).show();}\n\t\t\t$($t).triggerHandler(\"jqGridAddEditBeforeShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);}\n\t\t\tsyncSavedData();\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).data(\"onClose\",rp_ge[$t.p.id].onClose);\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal, \n\t\t\t\toverlay: p.overlay,\n\t\t\t\tmodal:p.modal, \n\t\t\t\toverlayClass: p.overlayClass,\n\t\t\t\tfocusField : p.focusField,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\tvar fh = $('#editmod'+gID)[0].style.height,\n\t\t\t\t\t\tfw = $('#editmod'+gID)[0].style.width;\n\t\t\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfh = parseFloat(fh);\n\t\t\t\t\t}\n\t\t\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfw = parseFloat(fw);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).data(\"formProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : fw,\n\t\t\t\t\t\theight : fh,\n\t\t\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!closeovrl) {\n\t\t\t\t$(\".\" + $.jgrid.jqID(p.overlayClass)).click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".fm-button\",\"#\"+$.jgrid.jqID(IDs.themodal)).hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\t$(\"#sData\", frmtb2).click(function(){\n\t\t\t\tpostdata = {};\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\t// all depend on ret array\n\t\t\t\t//ret[0] - succes\n\t\t\t\t//ret[1] - msg if not succes\n\t\t\t\t//ret[2] - the id  that will be set if reload after submit false\n\t\t\t\tgetFormData();\n\t\t\t\tif(postdata[$t.p.id+\"_id\"] === \"_empty\")\t{postIt();}\n\t\t\t\telse if(p.checkOnSubmit===true ) {\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpostIt();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpostIt();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#cData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tvar nposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tnposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]);\n\t\t\t\t\t\tif( nposret !== undefined && nposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tvar pposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tpposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t\tif( pposret !== undefined && pposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); }\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tviewGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'view'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 500,\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\tjqModal: true,\n\t\t\tcloseOnEscape : false,\n\t\t\tlabelswidth: '30%',\n\t\t\tcloseicon: [],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tonClose: null,\n\t\t\tbeforeShowForm : null,\n\t\t\tbeforeInitData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\trecreateForm : false,\n\t\t\tremovemodal: true,\n\t\t\tform: 'view'\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"ViewGrid_\"+$.jgrid.jqID( gID  ), frmtb = \"ViewTbl_\" + $.jgrid.jqID( gID ),\n\t\t\tfrmgr_id = \"ViewGrid_\"+gID, frmtb_id = \"ViewTbl_\"+gID,\n\t\t\tIDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tshowFrm = true,\n\t\t\tmaxCols = 1, maxRows=0;\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"viewProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"viewProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction focusaref(){ //Sfari 3 issues\n\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\", \"-1\").focus();},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD form-view-label \" + commonstyle.content + \"' width='\"+p.labelswidth+\"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset \"  + commonstyle.content +\"'>&#160;</td>\", tmpl=\"\",\n\t\t\t\ttdtmpl2 = \"<td class='CaptionTD form-view-label \" + commonstyle.content +\"'>&#160;</td><td class='DataTD form-view-data \" + commonstyle.content +\"'>&#160;</td>\",\n\t\t\t\tfmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;\n\t\t\t\tfor (i=1;i<=maxcols;i++) {\n\t\t\t\t\ttmpl += i === 1 ? tdtmpl : tdtmpl2;\n\t\t\t\t}\n\t\t\t\t// find max number align rigth with property formatter\n\t\t\t\t$(obj.p.colModel).each( function() {\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif(!hc && this.align==='right') {\n\t\t\t\t\t\tif(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {\n\t\t\t\t\t\t\tmax1 = Math.max(max1,parseInt(this.width,10));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmax2 = Math.max(max2,parseInt(this.width,10));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tmaxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;\n\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\tsetme = false;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tviewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable;\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetme = this.align === 'right' && maxw !==0 ? true : false;\n\t\t\t\t\t\tvar frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"trv_\"+nm);\n\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>');\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(\"<span>\"+tmp+\"</span>\").attr(\"id\",\"v_\"+nm);\n\t\t\t\t\t\tif(setme){\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\") span\",trdata[0]).css({'text-align':'right',width:maxw+\"px\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\tidrow[0].rp = cnt+99;\n\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t}\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj){\n\t\t\t\tvar nm, hc,cnt=0,tmp,trv;\n\t\t\t\ttrv = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!trv) {return;}\n\t\t\t\t$('td',trv).each( function(i) {\n\t\t\t\t\tnm = obj.p.colModel[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = obj.p.colModel[i].hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttmp = $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(\"v_\"+nm);\n\t\t\t\t\t\t$(\"#\"+nm+\" span\",\"#\"+frmtb).html(tmp);\n\t\t\t\t\t\tif (hc) {$(\"#\"+nm,\"#\"+frmtb).parents(\"tr:first\").hide();}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {$(\"#id_g\",\"#\"+frmtb).val(rowid);}\n\t\t\t}\n\t\t\tfunction updateNav(cr,posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(\"#pData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid = $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",\"#\"+frmtb).val(),\n\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr_id+\"' class='FormGrid' style='width:\"+dw+\";height:\"+dh+\";'></form>\"),\n\t\t\ttbl =$(\"<table id='\"+frmtb_id+\"' class='EditTable ViewTable'><tbody></tbody></table>\");\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t// set the id.\n\t\t\t$(frm).append(tbl);\n\t\t\tif(onBeforeInit) {\n\t\t\t\tshowFrm = onBeforeInit.call($t, frm );\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\t\t\tcreateData(rowid, $t, tbl, maxCols);\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\",\n\t\t\t\t// buttons at footer\n\t\t\tbP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bClose+\"</a>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar bt = $(\"<div></div>\").append(frm).append(\"<table border='0' class='EditTable' id='\"+frmtb+\"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='\"+p.labelswidth+\"'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bC+\"</td></tr></tbody></table>\");\n\t\t\t$.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",\"#\"+frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\t\t\tif(!p.viewPagerButtons) {$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").hide();}\n\t\t\tbt = null;\n\t\t\t$(\"#\"+IDs.themodal).keydown( function( e ) {\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(p.navkeys[0]===true) {\n\t\t\t\t\tif(e.which === p.navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === p.navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",\"#\"+frmtb+\"_2\").addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base+ \" \" +p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif($.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$(\"#\"+frmgr));}\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal,\n\t\t\t\toverlay: p.overlay, \n\t\t\t\tmodal:p.modal,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\t$($t).data(\"viewProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : $(h.w).width(),\n\t\t\t\t\t\theight : $(h.w).height(),\n\t\t\t\t\t\tdataheight : $(\"#\"+frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(\"#\"+frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\".fm-button:not(.\" + commonstyle.disabled + \")\",\"#\"+frmtb+\"_2\").hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\tfocusaref();\n\t\t\t$(\"#cData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tdelGridRow : function(rowids,p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'del'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 240,\n\t\t\theight: 'auto',\n\t\t\tdataheight : 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl : '',\n\t\t\tmtype : \"POST\",\n\t\t\treloadAfterSubmit: true,\n\t\t\tbeforeShowForm: null,\n\t\t\tbeforeInitData : null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\tdelData: {},\n\t\t\tdelicon : [],\n\t\t\tcancelicon : [],\n\t\t\tonClose : null,\n\t\t\tajaxDelOptions : {},\n\t\t\tprocessing : false,\n\t\t\tserializeDelData : null,\n\t\t\tuseDataProxy : false\n\t\t}, regional, p ||{});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif(!rowids) {return;}\n\t\t\tvar onBeforeShow = $.isFunction( rp_ge[$t.p.id].beforeShowForm  ),\n\t\t\tonAfterShow = $.isFunction( rp_ge[$t.p.id].afterShowForm ),\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tgID = $t.p.id, onCS = {},\n\t\t\tshowFrm = true,\n\t\t\tdtbl = \"DelTbl_\"+$.jgrid.jqID(gID),postd, idname, opers, oper,\n\t\t\tdtbl_id = \"DelTbl_\" + gID,\n\t\t\tIDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif ($.isArray(rowids)) {rowids = rowids.join();}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(\"#\"+dtbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\t\t\t\t$(\"#DelData>td\",\"#\"+dtbl).text(rowids);\n\t\t\t\t$(\"#DelError\",\"#\"+dtbl).hide();\n\t\t\t\tif( rp_ge[$t.p.id].processing === true) {\n\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t$(\"#dData\", \"#\"+dtbl).removeClass( commonstyle.active );\n\t\t\t\t}\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal,jqM: false, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t} else {\n\t\t\t\tvar dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+\"px\",\n\t\t\t\tdw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+\"px\",\n\t\t\t\ttbl = \"<div id='\"+dtbl_id+\"' class='formdata' style='width:\"+dw+\";overflow:auto;position:relative;height:\"+dh+\";'>\";\n\t\t\t\ttbl += \"<table class='DelTable'><tbody>\";\n\t\t\t\t// error data\n\t\t\t\ttbl += \"<tr id='DelError' style='display:none'><td class='\" + commonstyle.error +\"'></td></tr>\";\n\t\t\t\ttbl += \"<tr id='DelData' style='display:none'><td >\"+rowids+\"</td></tr>\";\n\t\t\t\ttbl += \"<tr><td class=\\\"delmsg\\\" style=\\\"white-space:pre;\\\">\"+rp_ge[$t.p.id].msg+\"</td></tr><tr><td >&#160;</td></tr>\";\n\t\t\t\t// buttons at footer\n\t\t\t\ttbl += \"</tbody></table></div>\";\n\t\t\t\tvar bS  = \"<a id='dData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\t\tbC  = \"<a id='eData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\t\ttbl += \"<table class='EditTable ui-common-table' id='\"+dtbl+\"_2'><tbody><tr><td><hr class='\" + commonstyle.content + \"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>\"+bS+\"&#160;\"+bC+\"</td></tr></tbody></table>\";\n\t\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\t\t$.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(tbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\n\t\t\t\t$(\".fm-button\",\"#\"+dtbl+\"_2\").hover(\n\t\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t\t);\n\t\t\t\tp.delicon = $.extend([true,\"left\", styles.icon_del ],rp_ge[$t.p.id].delicon);\n\t\t\t\tp.cancelicon = $.extend([true,\"left\", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon);\n\t\t\t\tif(p.delicon[0]===true) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").addClass(p.delicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.delicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(p.cancelicon[0]===true) {\n\t\t\t\t\t$(\"#eData\",\"#\"+dtbl+\"_2\").addClass(p.cancelicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.cancelicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\tvar ret=[true,\"\"], pk,\n\t\t\t\t\tpostdata = $(\"#DelData>td\",\"#\"+dtbl).text(); //the pair is name=val1,val2,...\n\t\t\t\t\tonCS = {};\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {onCS = rp_ge[$t.p.id].onclickSubmit.call($t,rp_ge[$t.p.id], postdata) || {};}\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].beforeSubmit ) ) {ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata);}\n\t\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\tpostd = $.extend({},rp_ge[$t.p.id].delData, onCS);\n\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\tpostd[oper] = opers.deloper;\n\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\tpostdata = String(postdata).split(\",\");\n\t\t\t\t\t\tif(!postdata.length) { return false; }\n\t\t\t\t\t\tfor(pk in postdata) {\n\t\t\t\t\t\t\tif(postdata.hasOwnProperty(pk)) {\n\t\t\t\t\t\t\t\tpostdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpostd[idname] = postdata.join();\n\t\t\t\t\t\t$(this).addClass( commonstyle.active );\n\t\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\t\turl: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'),\n\t\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd,\n\t\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t$(\"#dData\", \"#\"+dtbl+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t,data);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].afterSubmit ) ) {\n\t\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t,data,postd);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== \"local\") {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid===true){\n\t\t\t\t\t\t\t\t\t\t\t\ttry {$($t).jqGrid(\"delTreeNode\",$t.p.idPrefix+postdata[0]);} catch(e){}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tfor(i=0;i<postdata.length;i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",$t.p.idPrefix+ postdata[i]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t\t\t\t\t\t$t.p.selarrrow = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\t\tsetTimeout(function(){rp_ge[$t.p.id].afterComplete.call($t,data,postdata);},500);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\t\tif(ret[0]) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);\n\n\n\t\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+$.jgrid.getRegional($t, 'errors.nourl');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"del_\"+$t.p.id); \n\t\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\t\tpostd = ajaxOptions.data;\n\t\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#eData\", \"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true) {\n\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t\t}\n\t\t});\n\t},\n\tnavGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'nav'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tedit: true,\n\t\t\tediticon: styles.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon: styles.icon_add_nav,\n\t\t\tdel: true,\n\t\t\tdelicon: styles.icon_del_nav,\n\t\t\tsearch: true,\n\t\t\tsearchicon: styles.icon_search_nav,\n\t\t\trefresh: true,\n\t\t\trefreshicon: styles.icon_refresh_nav,\n\t\t\trefreshstate: 'firstpage',\n\t\t\tview: false,\n\t\t\tviewicon : styles.icon_view_nav,\n\t\t\tposition : \"left\",\n\t\t\tcloseOnEscape : true,\n\t\t\tbeforeRefresh : null,\n\t\t\tafterRefresh : null,\n\t\t\tcloneToTop : false,\n\t\t\talertwidth : 200,\n\t\t\talertheight : 'auto',\n\t\t\talerttop: null,\n\t\t\talertleft: null,\n\t\t\talertzIndex : null,\n\t\t\tdropmenu : false,\n\t\t\tnavButtonText : ''\n\t\t}, regional, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif(this.p.navGrid) {return;}\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t$t = this, twd, tdw, o;\n\t\t\tif(!$t.grid || typeof elem !== 'string') {return;}\n\t\t\tif(!$($t).data('navGrid')) {\n\t\t\t\t$($t).data('navGrid',p);\n\t\t\t}\n\t\t\t// speedoverhead, but usefull for future \n\t\t\to = $($t).data('navGrid');\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\t\t\tif ($(\"#\"+alertIDs.themodal)[0] === undefined) {\n\t\t\t\tif(!o.alerttop && !o.alertleft) {\n\t\t\t\t\tif (window.innerWidth !== undefined) {\n\t\t\t\t\t\to.alertleft = window.innerWidth;\n\t\t\t\t\t\to.alerttop = window.innerHeight;\n\t\t\t\t\t} else if (document.documentElement !== undefined && document.documentElement.clientWidth !== undefined && document.documentElement.clientWidth !== 0) {\n\t\t\t\t\t\to.alertleft = document.documentElement.clientWidth;\n\t\t\t\t\t\to.alerttop = document.documentElement.clientHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\to.alertleft=1024;\n\t\t\t\t\t\to.alerttop=768;\n\t\t\t\t\t}\n\t\t\t\t\to.alertleft = o.alertleft/2 - parseInt(o.alertwidth,10)/2;\n\t\t\t\t\to.alerttop = o.alerttop/2-25;\n\t\t\t\t}\n\t\t\t\t$.jgrid.createModal(alertIDs,\n\t\t\t\t\t\"<div>\"+o.alerttext+\"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>\",\n\t\t\t\t\t{ \n\t\t\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t\tjqModal:true,\n\t\t\t\t\t\tdrag:true,\n\t\t\t\t\t\tresize:true,\n\t\t\t\t\t\tcaption:o.alertcap,\n\t\t\t\t\t\ttop:o.alerttop,\n\t\t\t\t\t\tleft:o.alertleft,\n\t\t\t\t\t\twidth:o.alertwidth,\n\t\t\t\t\t\theight: o.alertheight,\n\t\t\t\t\t\tcloseOnEscape:o.closeOnEscape, \n\t\t\t\t\t\tzIndex: o.alertzIndex,\n\t\t\t\t\t\tstyleUI: $t.p.styleUI\n\t\t\t\t\t},\n\t\t\t\t\t\"#gview_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0],\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t\tvar clone = 1, i,\n\t\t\tonHoverIn = function () {\n\t\t\t\tif (!$(this).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(this).addClass(commonstyle.hover);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHoverOut = function () {\n\t\t\t\t$(this).removeClass(commonstyle.hover);\n\t\t\t};\n\t\t\tif(o.cloneToTop && $t.p.toppager) {clone = 2;}\n\t\t\tfor(i = 0; i<clone; i++) {\n\t\t\t\tvar tbd,\n\t\t\t\tnavtbl = $(\"<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>\"),\n\t\t\t\tsep = \"<td class='ui-pg-button \" +commonstyle.disabled + \"' style='width:4px;'><span class='ui-separator'></span></td>\",\n\t\t\t\tpgid, elemids;\n\t\t\t\tif(i===0) {\n\t\t\t\t\tpgid = elem;\n\t\t\t\t\telemids = $t.p.id;\n\t\t\t\t\tif(pgid === $t.p.toppager) {\n\t\t\t\t\t\telemids += \"_top\";\n\t\t\t\t\t\tclone = 1;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpgid = $t.p.toppager;\n\t\t\t\t\telemids = $t.p.id+\"_top\";\n\t\t\t\t}\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\t$(navtbl).attr(\"dir\",\"rtl\").css(\"float\",\"right\");\n\t\t\t\t}\n\t\t\t\tpAdd = pAdd || {};\n\t\t\t\tif (o.add) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base +\" \" +o.addicon+\"'></span>\"+o.addtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.addtitle || \"\",id : pAdd.id || \"add_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( o.addfunc )) {\n\t\t\t\t\t\t\t\to.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpEdit = pEdit || {};\n\t\t\t\tif (o.edit) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.editicon+\"'></span>\"+o.edittext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.edittitle || \"\",id: pEdit.id || \"edit_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.editfunc ) ) {\n\t\t\t\t\t\t\t\t\to.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpView = pView || {};\n\t\t\t\tif (o.view) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.viewicon+\"'></span>\"+o.viewtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.viewtitle || \"\",id: pView.id || \"view_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.viewfunc ) ) {\n\t\t\t\t\t\t\t\t\to.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpDel = pDel || {};\n\t\t\t\tif (o.del) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.delicon+\"'></span>\"+o.deltext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.deltitle || \"\",id: pDel.id || \"del_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( o.delfunc )){\n\t\t\t\t\t\t\t\t\to.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif(o.add || o.edit || o.del || o.view) {$(\"tr\",navtbl).append(sep);}\n\t\t\t\tpSearch = pSearch || {};\n\t\t\t\tif (o.search) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.searchicon+\"'></span>\"+o.searchtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.searchtitle  || \"\",id:pSearch.id || \"search_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( o.searchfunc )) {\n\t\t\t\t\t\t\t\to.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$(tbd,navtbl).click();\n\t\t\t\t\t}\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif (o.refresh) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.refreshicon+\"'></span>\"+o.refreshtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.refreshtitle  || \"\",id: \"refresh_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( o.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (o.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\ttdw = $(\".ui-jqgrid\").css(\"font-size\") || \"11px\";\n\t\t\t\t$('body').append(\"<div id='testpg2' class='ui-jqgrid \"+$.jgrid.styleUI[currstyle].base.entrieBox+\"' style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\t\ttwd = $(navtbl).clone().appendTo(\"#testpg2\").width();\n\t\t\t\t$(\"#testpg2\").remove();\n\t\t\t\t\n\t\t\t\tif($t.p._nvtd) {\n\t\t\t\t\tif(o.dropmenu) {\n\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\t\t\t\t\t\t\n\t\t\t\t\t} else if(twd > $t.p._nvtd[0] ) {\n\t\t\t\t\t\tif($t.p.responsive) {\n\t\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl).width(twd);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$t.p._nvtd[0] = twd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl);\n\t\t\t\t\t}\n\t\t\t\t\t$t.p._nvtd[1] = twd;\n\t\t\t\t}\n\t\t\t\t$t.p.navGrid = true;\n\t\t\t}\n\t\t\tif($t.p.storeNavOptions) {\n\t\t\t\t$t.p.navOptions = o;\n\t\t\t\t$t.p.editOptions = pEdit;\n\t\t\t\t$t.p.addOptions = pAdd;\n\t\t\t\t$t.p.delOptions = pDel;\n\t\t\t\t$t.p.searchOptions = pSearch;\n\t\t\t\t$t.p.viewOptions = pView;\n\t\t\t\t$t.p.navButtons =[];\n\t\t\t}\n\n\t\t});\n\t},\n\tnavButtonAdd : function (elem, p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator;\n\t\tp = $.extend({\n\t\t\tcaption : \"newButton\",\n\t\t\ttitle: '',\n\t\t\tbuttonicon : styles.icon_newbutton_nav,\n\t\t\tonClickButton: null,\n\t\t\tposition : \"last\",\n\t\t\tcursor : 'pointer',\n\t\t\tinternal : false\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], $t = this,\n\t\t\t//getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\tdisabled = $.jgrid.styleUI[currstyle].common.disabled,\n\t\t\thover = $.jgrid.styleUI[currstyle].common.hover,\n\t\t\tcornerall = $.jgrid.styleUI[currstyle].common.cornerall,\n\t\t\ticonbase = $.jgrid.styleUI[currstyle].common.icon_base;\n\n\t\t\tif ($t.p.storeNavOptions && !p.internal) {\n\t\t\t\t$t.p.navButtons.push([elem,p]);\n\t\t\t}\n\n\t\t\tif (findnav) {\n\t\t\t\tif( p.id && $(\"#\"+$.jgrid.jqID(p.id), findnav)[0] !== undefined )  {return;}\n\t\t\t\tvar tbd = $(\"<td></td>\");\n\t\t\t\tif(p.buttonicon.toString().toUpperCase() === \"NONE\") {\n                    $(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'>\"+p.caption+\"</div>\");\n\t\t\t\t} else\t{\n\t\t\t\t\t$(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'><span class='\"+iconbase+\" \"+p.buttonicon+\"'></span>\"+p.caption+\"</div>\");\n\t\t\t\t}\n\t\t\t\tif(p.id) {$(tbd).attr(\"id\",p.id);}\n\t\t\t\tif(p.position==='first'){\n\t\t\t\t\tif(findnav.rows[0].cells.length ===0 ) {\n\t\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\",findnav).before(tbd);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t}\n\t\t\t\t$(tbd,findnav)\n\t\t\t\t.attr(\"title\",p.title  || \"\")\n\t\t\t\t.click(function(e){\n\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);}\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t\t.hover(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tif (findnav) {\n\t\t\t\t\tvar id = $(findnav).val(),\n\t\t\t\t\teid = p.id || $.jgrid.randId(),\n\t\t\t\t\titem = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.caption || p.title)+'</a></li>');\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === 'first') {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( item );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( item );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(item).on(\"click\", function(e){\n\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t$(\"#\"+id).hide();\n\t\t\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {\n\t\t\t\t\t\t\t\t\tp.onClickButton.call($t,e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}).find(\"a\")\n\t\t\t\t\t\t.hover(\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tnavSeparatorAdd:function (elem,p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tsepclass : \"ui-separator\",\n\t\t\tsepcontent: '',\n\t\t\tposition : \"last\"\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], sep, id;\n\t\t\tif ( this.p.storeNavOptions ) {\n\t\t\t\tthis.p.navButtons.push([elem,p]);\n\t\t\t}\n\t\t\t\n\t\t\tif(findnav) {\n\t\t\t\tsep = \"<td class='ui-pg-button \"+ commonstyle.disabled +\"' style='width:4px;'><span class='\"+p.sepclass+\"'></span>\"+p.sepcontent+\"</td>\";\n\t\t\t\tif (p.position === 'first') {\n\t\t\t\t\tif (findnav.rows[0].cells.length === 0) {\n\t\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\", findnav).before(sep);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tsep = \"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\";\n\t\t\t\tif(findnav) {\n\t\t\t\t\tid = $(findnav).val();\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === \"first\") {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( sep );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( sep );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\t_buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this,\n\t\t\t//actions = ['add','edit', 'del', 'view', 'search','refresh'],\n\t\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\t\tcurrstyle = $t.p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tclasses = $.jgrid.styleUI[currstyle].filter,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common,\n\t\t\tmid = \"form_menu_\"+$.jgrid.randId(),\n\t\t\tbt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions',\n\t\t\tact = \"<button class='dropdownmenu \"+commonstyle.button+\"' value='\"+mid+\"'>\" + bt +\"</button>\";\n\t\t\t$(elem+\"_\"+p.position, elem).append( act );\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t_buildMenu = function() {\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px',\n\t\t\t\teid, itm,\n\t\t\t\tstr = $('<ul id=\"'+mid+'\" class=\"ui-nav-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"display:none;font-size:'+fs+'\"></ul>');\n\t\t\t\tif( p.add ) {\n\t\t\t\t\tpAdd = pAdd || {};\n\t\t\t\t\teid = pAdd.id || \"add_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.addtext || p.addtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( p.addfunc )) {\n\t\t\t\t\t\t\t\tp.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.edit ) {\n\t\t\t\t\tpEdit = pEdit || {};\n\t\t\t\t\teid = pEdit.id || \"edit_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.edittext || p.edittitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.view ) {\n\t\t\t\t\tpView = pView || {};\n\t\t\t\t\teid = pView.id || \"view_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.viewtext || p.viewtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.del ) {\n\t\t\t\t\tpDel = pDel || {};\n\t\t\t\t\teid = pDel.id || \"del_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.deltext || p.deltitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( p.delfunc )){\n\t\t\t\t\t\t\t\t\tp.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif(p.add || p.edit || p.del || p.view) {\n\t\t\t\t\t$(str).append(\"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\");\n\t\t\t\t}\n\t\t\t\tif( p.search ) {\n\t\t\t\t\tpSearch = pSearch || {};\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.searchtext || p.searchtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( p.searchfunc )) {\n\t\t\t\t\t\t\t\tp.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$( itm ).click();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( p.refresh ) {\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( p.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (p.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\t$(str).hide();\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#\"+mid).addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#\"+mid+\" > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(commonstyle.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(commonstyle.hover); }\n\t\t\t\t);\n\t\t\t};\n\t\t\t_buildMenu();\n\t\t\t$(\".dropdownmenu\", elem+\"_\"+p.position).on(\"click\", function( e ){\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = parseInt( offset.top),\n\t\t\t\tbid =$(this).val();\n\t\t\t\t//if( $(\"#\"+mid)[0] === undefined)  {\n\t\t\t\t\t//_buildMenu();\n\t\t\t\t//}\n\t\t\t\t$(\"#\"+bid).show().css({\"top\":top - ($(\"#\"+bid).height() +10)+\"px\", \"left\":left+\"px\"});\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).hasClass(\"dropdownmenu\")) {\n\t\t\t\t\t$(\"#\"+mid).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tGridToForm : function( rowid, formid ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, i;\n\t\t\tif (!$t.grid) {return;}\n\t\t\tvar rowdata = $($t).jqGrid(\"getRowData\",rowid);\n\t\t\tif (rowdata) {\n\t\t\t\tfor(i in rowdata) {\n\t\t\t\t\tif(rowdata.hasOwnProperty(i)) {\n\t\t\t\t\tif ( $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:radio\") || $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:checkbox\"))  {\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).each( function() {\n\t\t\t\t\t\t\tif( $(this).val() == rowdata[i] ) {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t// this is very slow on big table and form.\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).val(rowdata[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tFormToGrid : function(rowid, formid, mode, position){\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(!mode) {mode = 'set';}\n\t\t\tif(!position) {position = 'first';}\n\t\t\tvar fields = $(formid).serializeArray();\n\t\t\tvar griddata = {};\n\t\t\t$.each(fields, function(i, field){\n\t\t\t\tgriddata[field.name] = field.value;\n\t\t\t});\n\t\t\tif(mode==='add') {$($t).jqGrid(\"addRowData\",rowid,griddata, position);}\n\t\t\telse if(mode==='set') {$($t).jqGrid(\"setRowData\",rowid,griddata);}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.grouping.js",
    "content": "/*jshint eqeqeq:false, eqnull:true */\n/*global jQuery, define */\n// Grouping module\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.extend({\n\tgroupingSetup : function () {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping;\n\t\t\tif(grp !== null && ( (typeof grp === 'object') || $.isFunction(grp) ) ) {\n\t\t\t\tif(!grp.plusicon) { grp.plusicon = classes.icon_plus;}\n\t\t\t\tif(!grp.minusicon) { grp.minusicon = classes.icon_minus;}\n\t\t\t\tif(!grp.groupField.length) {\n\t\t\t\t\t$t.p.grouping = false;\n\t\t\t\t} else {\n\t\t\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgrp.lastvalues=[];\n\t\t\t\t\tif(!grp._locgr) {\n\t\t\t\t\t\tgrp.groups =[];\n\t\t\t\t\t}\n\t\t\t\t\tgrp.counters =[];\n\t\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\t\t\tif(!grp.groupOrder[i]) {\n\t\t\t\t\t\t\tgrp.groupOrder[i] = 'asc';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!grp.groupText[i]) {\n\t\t\t\t\t\t\tgrp.groupText[i] = '{0}';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupColumnShow[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupColumnShow[i] = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupSummary[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupSummary[i] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( !grp.groupSummaryPos[i]) {\n\t\t\t\t\t\t\tgrp.groupSummaryPos[i] = 'footer';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(grp.groupColumnShow[i] === true) {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = true;\n\t\t\t\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id+\"_\"+grp.groupField[i])).is(\":visible\");\n\t\t\t\t\t\t\t$($t).jqGrid('hideCol',grp.groupField[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrp.summary =[];\n\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\tif($.isArray(grp.formatDisplayField) && !$.isFunction(grp.formatDisplayField[0] ) ) {\n\t\t\t\t\t\t\tgrp.formatDisplayField[0] = function (v) { return v;};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(j=0, cml = cm.length; j < cml; j++) {\n\t\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\t\tif(!cm[j].hidden && grp.groupField[0] === cm[j].name) {\n\t\t\t\t\t\t\t\tcm[j].formatter = function(){return '';};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm[j].summaryType ) {\n\t\t\t\t\t\t\tif(cm[j].summaryDivider) {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$t.p.grouping = false;\n\t\t\t}\n\t\t});\n\t},\n\tgroupingPrepare : function ( record, irow ) {\n\t\tthis.each(function(){\n\t\t\tvar grp = this.p.groupingView, $t= this, i,\n\t\t\tsumGroups = function() {\n\t\t\t\tif ($.isFunction(this.st)) {\n\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\n\t\t\t\t} else {\n\t\t\t\t\tthis.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record);\n\t\t\t\t\tif(this.st.toLowerCase() === 'avg' && this.sd) {\n\t\t\t\t\t\tthis.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tgrlen = grp.groupField.length, \n\t\t\tfieldName,\n\t\t\tv,\n\t\t\tdisplayName,\n\t\t\tdisplayValue,\n\t\t\tchanged = 0;\n\t\t\tfor(i=0;i<grlen;i++) {\n\t\t\t\tfieldName = grp.groupField[i];\n\t\t\t\tdisplayName = grp.displayField[i];\n\t\t\t\tv = record[fieldName];\n\t\t\t\tdisplayValue = displayName == null ? null : record[displayName];\n\n\t\t\t\tif( displayValue == null ) {\n\t\t\t\t\tdisplayValue = v;\n\t\t\t\t}\n\t\t\t\tif( v !== undefined ) {\n\t\t\t\t\tif(irow === 0 ) {\n\t\t\t\t\t\t// First record always starts a new group\n\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (typeof v !== \"object\" && ($.isArray(grp.isInTheSameGroup) && $.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) {\n\t\t\t\t\t\t\t// This record is not in same group as previous one\n\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\tchanged = 1;\n\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (changed === 1) {\n\t\t\t\t\t\t\t\t// This group has changed because an earlier group changed.\n\t\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.counters[i].cnt += 1;\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt;\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t//gdata.push( rData );\n\t\t});\n\t\treturn this;\n\t},\n\tgroupingToggle : function(hid){\n\t\tthis.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstrpos = hid.split('_'),\n\t\t\tnum = parseInt(strpos[strpos.length-2], 10);\n\t\t\tstrpos.splice(strpos.length-2,2);\n\t\t\tvar uid = strpos.join(\"_\"),\n\t\t\tminus = grp.minusicon,\n\t\t\tplus = grp.plusicon,\n\t\t\ttar = $(\"#\"+$.jgrid.jqID(hid)),\n\t\t\tr = tar.length ? tar[0].nextSibling : null,\n\t\t\ttarspan = $(\"#\"+$.jgrid.jqID(hid)+\" span.\"+\"tree-wrap-\"+$t.p.direction),\n\t\t\tgetGroupingLevelFromClass = function (className) {\n\t\t\t\tvar nums = $.map(className.split(\" \"), function (item) {\n\t\t\t\t\tif (item.substring(0, uid.length + 1) === uid + \"_\") {\n\t\t\t\t\t\treturn parseInt(item.substring(uid.length + 1), 10);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn nums.length > 0 ? nums[0] : undefined;\n\t\t\t},\n\t\t\titemGroupingLevel,\n\t\t\tshowData,\n\t\t\tcollapsed = false,\n\t\t\tskip = false,\n\t\t\tfrz = $t.p.frozenColumns ? $t.p.id+\"_frozen\" : false,\n\t\t\ttar2 = frz ? $(\"#\"+$.jgrid.jqID(hid), \"#\"+$.jgrid.jqID(frz) ) : false,\n\t\t\tr2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null;\n\t\t\tif( tarspan.hasClass(minus) ) {\n\t\t\t\tif(r){\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined && itemGroupingLevel <= num) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(r).hide();\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t$(r2).hide();\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(minus).addClass(plus);\n\t\t\t\tcollapsed = true;\n\t\t\t} else {\n\t\t\t\tif(r){\n\t\t\t\t\tshowData = undefined;\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (showData === undefined) {\n\t\t\t\t\t\t\tshowData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows\n\t\t\t\t\t\t}\n\t\t\t\t\t\tskip = $(r).hasClass(\"ui-subgrid\") && $(r).hasClass(\"ui-sg-collapsed\");\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined) {\n\t\t\t\t\t\t\tif (itemGroupingLevel <= num) {\n\t\t\t\t\t\t\t\tbreak;// next item of the same lever are found\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (itemGroupingLevel === num + 1) {\n\t\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t\t$(r).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t\t$(r2).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (showData) {\n\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t$(r).show();\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(r2).show();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(plus).addClass(minus);\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridGroupingClickGroup\", [hid , collapsed]);\n\t\t\tif( $.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); }\n\n\t\t});\n\t\treturn false;\n\t},\n\tgroupingRender : function (grdata, colspans, page, rn ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstr = \"\", icon = \"\", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length,\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tpmrtl = pmrtl+\" tree-wrap-\"+$t.p.direction; \n\t\t\t$.each($t.p.colModel, function (i,n){\n\t\t\t\tvar ii;\n\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar toEnd = 0;\n\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\tvar ret = false, i;\n\t\t\t\tif(offset===0) {\n\t\t\t\t\tret = grp[ind];\n\t\t\t\t} else {\n\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t}  else {\n\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tvv, grlen = fdata.cnt, str=\"\", k;\n\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\tvar tmpdata = \"<td \"+$t.formatCol(k,1,'')+\">&#160;</td>\",\n\t\t\t\t\ttplfld = \"{0}\";\n\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpdata= \"<td \"+$t.formatCol(k,1,'')+\">\"+$.jgrid.template(tplfld,vv)+ \"</td>\";\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tstr += tmpdata;\n\t\t\t\t}\n\t\t\t\treturn str;\n\t\t\t}\n\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), mul;\n\t\t\tsumreverse.reverse();\n\t\t\tmul = $t.p.multiselect ? \" colspan=\\\"2\\\"\" : \"\";\n\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\tif(grp._locgr) {\n\t\t\t\t\tif( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttoEnd++;\n\t\t\t\tclid = $t.p.id+\"ghead_\"+n.idx;\n\t\t\t\thid = clid+\"_\"+i;\n\t\t\t\ticon = \"<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='\" + common.icon_base +\" \"+pmrtl+\"' onclick=\\\"jQuery('#\"+$.jgrid.jqID($t.p.id)+\"').jqGrid('groupingToggle','\"+hid+\"');return false;\\\"></span>\";\n\t\t\t\ttry {\n\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t}\n\t\t\t\t} catch (egv) {\n\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t}\n\t\t\t\tvar grpTextStr = ''; \n\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t} else {\n\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t}\n\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t}\n\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\"\" + mul +\">\" + icon+grpTextStr + \"</td>\";\n\t\t\t\t\tstr += buildSummaryTd(i, 0, grp.groups, grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2) );\n\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t} else {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\" colspan=\\\"\"+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+\"\\\">\" + icon + grpTextStr + \"</td></tr>\";\n\t\t\t\t}\n\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\tif( leaf ) {\n\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\tif(grp._locgr) {\n\t\t\t\t\t\toffset = (page-1)*rn;\n\t\t\t\t\t\tif(offset > n.startRow) {\n\t\t\t\t\t\t\tsgr = offset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\tstr += grdata[kk - offset].join('');\n\t\t\t\t\t}\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\tvar hhdr = \"\";\n\t\t\t\t\t\t\tif(grp.groupCollapse && !grp.showSummaryOnHide) {\n\t\t\t\t\t\t\t\thhdr = \" style=\\\"display:none;\\\"\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += \"<tr\"+hhdr+\" jqfootlevel=\\\"\"+(n.idx-ik)+\"\\\" role=\\\"row\\\" class=\\\"\" + common.content + \" jqfoot ui-row-\"+$t.p.direction+\"\\\">\";\n\t\t\t\t\t\t\tstr += buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").append(str);\n\t\t\t// free up memory\n\t\t\tstr = null;\n\t\t});\n\t},\n\tgroupingGroupBy : function (name, options ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(typeof name === \"string\") {\n\t\t\t\tname = [name];\n\t\t\t}\n\t\t\tvar grp = $t.p.groupingView;\n\t\t\t$t.p.grouping = true;\n\t\t\tgrp._locgr = false;\n\t\t\t//Set default, in case visibilityOnNextGrouping is undefined \n\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t}\n\t\t\tvar i;\n\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// set visibility status of current group columns on next grouping\n\t\t\tfor(i=0;i<name.length;i++) {\n\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(name[i])).is(\":visible\");\n\t\t\t}\n\t\t\t$t.p.groupingView = $.extend($t.p.groupingView, options || {});\n\t\t\tgrp.groupField = name;\n\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t});\n\t},\n\tgroupingRemove : function (current) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(current === undefined) {\n\t\t\t\tcurrent = true;\n\t\t\t}\n\t\t\t$t.p.grouping = false;\n\t\t\tif(current===true) {\n\t\t\t\tvar grp = $t.p.groupingView, i;\n\t\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t\t\t$($t).jqGrid('showCol', grp.groupField);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\"tr.jqgroup, tr.jqfoot\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").remove();\n\t\t\t\t$(\"tr.jqgrow:hidden\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").show();\n\t\t\t} else {\n\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t}\n\t\t});\n\t},\n\tgroupingCalculations : {\n\t\thandler: function(fn, v, field, round, roundType, rc) {\n\t\t\tvar funcs = {\n\t\t\t\tsum: function() {\n\t\t\t\t\treturn parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmin: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmax: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tcount: function() {\n\t\t\t\t\tif(v===\"\") {v=0;}\n\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\treturn v+1;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t},\n\n\t\t\t\tavg: function() {\n\t\t\t\t\t// the same as sum, but at end we divide it\n\t\t\t\t\t// so use sum instead of duplicating the code (?)\n\t\t\t\t\treturn funcs.sum();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif(!funcs[fn]) {\n\t\t\t\tthrow (\"jqGrid Grouping No such method: \" + fn);\n\t\t\t}\n\t\t\tvar res = funcs[fn]();\n\n\t\t\tif (round != null) {\n\t\t\t\tif (roundType === 'fixed') {\n\t\t\t\t\tres = res.toFixed(round);\n\t\t\t\t} else {\n\t\t\t\t\tvar mul = Math.pow(10, round);\n\t\t\t\t\tres = Math.round(res * mul) / mul;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\t\n\t},\n\tsetGroupHeaders : function ( o ) {\n\t\to = $.extend({\n\t\t\tuseColSpanStyle :  false,\n\t\t\tgroupHeaders: []\n\t\t},o  || {});\n\t\treturn this.each(function(){\n\t\t\tvar ts = this,\n\t\t\ti, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle,\n\t\t\tiCol,\n\t\t\tcghi,\n\t\t\t//startColumnName,\n\t\t\tnumberOfColumns,\n\t\t\ttitleText,\n\t\t\tcVisibleColumns,\n\t\t\tclassName,\n\t\t\tcolModel = ts.p.colModel,\n\t\t\tcml = colModel.length,\n\t\t\tths = ts.grid.headers,\n\t\t\t$htable = $(\"table.ui-jqgrid-htable\", ts.grid.hDiv),\n\t\t\t$trLabels = $htable.children(\"thead\").children(\"tr.ui-jqgrid-labels:last\").addClass(\"jqg-second-row-header\"),\n\t\t\t$thead = $htable.children(\"thead\"),\n\t\t\t$theadInTable,\n\t\t\t$firstHeaderRow = $htable.find(\".jqg-first-row-header\"),\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tbase = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;\n\t\t\tif(!ts.p.groupHeader) {\n\t\t\t\tts.p.groupHeader = [];\n\t\t\t}\n\t\t\tts.p.groupHeader.push(o);\n\t\t\tif($firstHeaderRow[0] === undefined) {\n\t\t\t\t$firstHeaderRow = $('<tr>', {role: \"row\", \"aria-hidden\": \"true\"}).addClass(\"jqg-first-row-header\").css(\"height\", \"auto\");\n\t\t\t} else {\n\t\t\t\t$firstHeaderRow.empty();\n\t\t\t}\n\t\t\tvar $firstRow,\n\t\t\tinColumnHeader = function (text, columnHeaders) {\n\t\t\t\tvar length = columnHeaders.length, i;\n\t\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\t\tif (columnHeaders[i].startColumnName === text) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t};\n\n\t\t\t$(ts).prepend($thead);\n\t\t\t$tr = $('<tr>', {role: \"row\"}).addClass(\"ui-jqgrid-labels jqg-third-row-header\");\n\t\t\tfor (i = 0; i < cml; i++) {\n\t\t\t\tth = ths[i].el;\n\t\t\t\t$th = $(th);\n\t\t\t\tcmi = colModel[i];\n\t\t\t\t// build the next cell for the first header row\n\t\t\t\tthStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};\n\t\t\t\t$(\"<th>\", {role: 'gridcell'}).css(thStyle).addClass(\"ui-first-th-\"+ts.p.direction).appendTo($firstHeaderRow);\n\n\t\t\t\tth.style.width = \"\"; // remove unneeded style\n\t\t\t\tiCol = inColumnHeader(cmi.name, o.groupHeaders);\n\t\t\t\tif (iCol >= 0) {\n\t\t\t\t\tcghi = o.groupHeaders[iCol];\n\t\t\t\t\tnumberOfColumns = cghi.numberOfColumns;\n\t\t\t\t\ttitleText = cghi.titleText;\n\t\t\t\t\tclassName = cghi.className || \"\";\n\t\t\t\t\t// caclulate the number of visible columns from the next numberOfColumns columns\n\t\t\t\t\tfor (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {\n\t\t\t\t\t\tif (!colModel[i + iCol].hidden) {\n\t\t\t\t\t\t\tcVisibleColumns++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// The next numberOfColumns headers will be moved in the next row\n\t\t\t\t\t// in the current row will be placed the new column header with the titleText.\n\t\t\t\t\t// The text will be over the cVisibleColumns columns\n\t\t\t\t\t$colHeader = $('<th>').attr({role: \"columnheader\"})\n\t\t\t\t\t\t.addClass(base.headerBox+ \" ui-th-column-header ui-th-\"+ts.p.direction+\" \"+className)\n\t\t\t\t\t\t//.css({'height':'22px', 'border-top': '0 none'})\n\t\t\t\t\t\t.html(titleText);\n\t\t\t\t\tif(cVisibleColumns > 0) {\n\t\t\t\t\t\t$colHeader.attr(\"colspan\", String(cVisibleColumns));\n\t\t\t\t\t}\n\t\t\t\t\tif (ts.p.headertitles) {\n\t\t\t\t\t\t$colHeader.attr(\"title\", $colHeader.text());\n\t\t\t\t\t}\n\t\t\t\t\t// hide if not a visible cols\n\t\t\t\t\tif( cVisibleColumns === 0) {\n\t\t\t\t\t\t$colHeader.hide();\n\t\t\t\t\t}\n\n\t\t\t\t\t$th.before($colHeader); // insert new column header before the current\n\t\t\t\t\t$tr.append(th);         // move the current header in the next row\n\n\t\t\t\t\t// set the coumter of headers which will be moved in the next row\n\t\t\t\t\tskip = numberOfColumns - 1;\n\t\t\t\t} else {\n\t\t\t\t\tif (skip === 0) {\n\t\t\t\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t\t\t\t// expand the header height to two rows\n\t\t\t\t\t\t\t$th.attr(\"rowspan\", \"2\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$('<th>', {role: \"columnheader\"})\n\t\t\t\t\t\t\t\t.addClass(base.headerBox+\" ui-th-column-header ui-th-\"+ts.p.direction)\n\t\t\t\t\t\t\t\t.css({\"display\": cmi.hidden ? 'none' : ''})\n\t\t\t\t\t\t\t\t.insertBefore($th);\n\t\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// move the header to the next row\n\t\t\t\t\t\t//$th.css({\"padding-top\": \"2px\", height: \"19px\"});\n\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\tskip--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$theadInTable = $(ts).children(\"thead\");\n\t\t\t$theadInTable.prepend($firstHeaderRow);\n\t\t\t$tr.insertAfter($trLabels);\n\t\t\t$htable.append($theadInTable);\n\n\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t// Increase the height of resizing span of visible headers\n\t\t\t\t$htable.find(\"span.ui-jqgrid-resize\").each(function () {\n\t\t\t\t\tvar $parent = $(this).parent();\n\t\t\t\t\tif ($parent.is(\":visible\")) {\n\t\t\t\t\t\tthis.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Set position of the sortable div (the main lable)\n\t\t\t\t// with the column header text to the middle of the cell.\n\t\t\t\t// One should not do this for hidden headers.\n\t\t\t\t$htable.find(\"div.ui-jqgrid-sortable\").each(function () {\n\t\t\t\t\tvar $ts = $(this), $parent = $ts.parent();\n\t\t\t\t\tif ($parent.is(\":visible\") && $parent.is(\":has(span.ui-jqgrid-resize)\")) {\n\t\t\t\t\t\t// minus 4px from the margins of the resize markers\n\t\t\t\t\t\t$ts.css('top', ($parent.height() - $ts.outerHeight()) / 2  - 4 +  'px');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$firstRow = $theadInTable.find(\"tr.jqg-first-row-header\");\n\t\t\t$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {\n\t\t\t\t$firstRow.find('th').eq(idx)[0].style.width = nw + \"px\";\n\t\t\t});\n\t\t});\t\t\t\t\n\t},\n\tdestroyGroupHeader : function(nullHeader) {\n\t\tif(nullHeader === undefined) {\n\t\t\tnullHeader = true;\n\t\t}\n\t\treturn this.each(function()\n\t\t{\n\t\t\tvar $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,\n\t\t\tthead = $(\"table.ui-jqgrid-htable thead\", grid.hDiv), cm = $t.p.colModel, hc;\n\t\t\tif(!grid) { return; }\n\n\t\t\t$(this).off('.setGroupHeaders');\n\t\t\t$tr = $(\"<tr>\", {role: \"row\"}).addClass(\"ui-jqgrid-labels\");\n\t\t\theaders = grid.headers;\n\t\t\tfor (i = 0, l = headers.length; i < l; i++) {\n\t\t\t\thc = cm[i].hidden ? \"none\" : \"\";\n\t\t\t\t$th = $(headers[i].el)\n\t\t\t\t\t.width(headers[i].width)\n\t\t\t\t\t.css('display',hc);\n\t\t\t\ttry {\n\t\t\t\t\t$th.removeAttr(\"rowSpan\");\n\t\t\t\t} catch (rs) {\n\t\t\t\t\t//IE 6/7\n\t\t\t\t\t$th.attr(\"rowSpan\",1);\n\t\t\t\t}\n\t\t\t\t$tr.append($th);\n\t\t\t\t$resizing = $th.children(\"span.ui-jqgrid-resize\");\n\t\t\t\tif ($resizing.length>0) {// resizable column\n\t\t\t\t\t$resizing[0].style.height = \"\";\n\t\t\t\t}\n\t\t\t\t$th.children(\"div\")[0].style.top = \"\";\n\t\t\t}\n\t\t\t$(thead).children('tr.ui-jqgrid-labels').remove();\n\t\t\t$(thead).prepend($tr);\n\n\t\t\tif(nullHeader === true) {\n\t\t\t\t$($t).jqGrid('setGridParam',{ 'groupHeader': null});\n\t\t\t}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.import.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, jqGridUtils, define, URL */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.utils\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid = $.jgrid || {};\n$.extend($.jgrid,{\n\tsaveState : function ( jqGridId, o ) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\", // localStorage or sessionStorage\n\t\t\tbeforeSetItem : null,\n\t\t\tcompression: false,\n\t\t\tcompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tcompressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16\n\t\t\tdebug : false\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar gridstate = \"\", data = \"\", ret, $t = $(\"#\"+jqGridId)[0], tmp;\n\t\t// to use navigator set storeNavOptions to true in grid options\n\t\tif(!$t.grid) { return;}\n\t\ttmp = $($t).data('inlineNav');\n\t\tif(tmp && $t.p.inlineNav) {\n\t\t\t$($t).jqGrid('setGridParam',{_iN: tmp});\n\t\t}\n\t\ttmp = $($t).data('filterToolbar');\n\t\tif(tmp && $t.p.filterToolbar) {\n\t\t\t$($t).jqGrid('setGridParam',{_fT: tmp});\n\t\t}\n\t\tgridstate  =  $($t).jqGrid('jqGridExport', { exptype : \"jsonstring\", ident:\"\", root:\"\" });\n\t\tdata = $($t.grid.bDiv).find(\".ui-jqgrid-btable tbody:first\").html();\n\t\tvar firstrow  = data.indexOf(\"</tr>\");\n\t\tdata = data.slice(firstrow + 5);\n\t\tif($.isFunction(o.beforeSetItem)) {\n\t\t\tret = o.beforeSetItem.call($t, gridstate);\n\t\t\tif(ret != null) {\n\t\t\t\tgridstate = ret;\n\t\t\t}\n\t\t}\n\t\tif(o.debug) {\n\t\t\t$(\"#gbox_tree\").prepend('<a id=\"link_save\" target=\"_blank\" download=\"jqGrid_dump.txt\">Click to save Dump Data</a>');\n\t\t\tvar temp = [], file, properties = {}, url;\n\t\t\ttemp.push(\"Grid Options\\n\");\n\t\t\ttemp.push(gridstate);\n\t\t\ttemp.push(\"\\n\");\n\t\t\ttemp.push(\"GridData\\n\");\n\t\t\ttemp.push(data);\n\t\t\tproperties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type.\n\t\t\ttry {\n\t\t\t\tfile = new File(temp, \"jqGrid_dump.txt\", properties);\n\t\t\t} catch (e) {\n\t\t\t\tfile = new Blob(temp, properties);\n\t\t\t}\n\t\t\turl = URL.createObjectURL(file);\n\t\t\t$(\"#link_save\").attr(\"href\",url).on('click',function(){\n\t\t\t\t$(this).remove();\n\t\t\t});\n\t\t}\t\t\n\t\tif(o.compression) {\n\t\t\tif(o.compressionModule) {\n\t\t\t\ttry { \n\t\t\t\t\tret = window[o.compressionModule][o.compressionMethod](gridstate);\n\t\t\t\t\tif(ret != null) {\n\t\t\t\t\t\tgridstate = ret;\n\t\t\t\t\t\tdata = window[o.compressionModule][o.compressionMethod](data);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// can not execute a compression.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(o.useStorage && $.jgrid.isLocalStorage()) {\n\t\t\ttry {\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id, gridstate);\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id+\"_data\", data);\n\t\t\t} catch (e) {\n\t\t\t\tif(e.code === 22) { // chrome is 21\n\t\t\t\t\t// just for now. we should make some additionla changes and eventually clear some local items\n\t\t\t\t\talert(\"Local storage limit is over!\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn gridstate;\n\t},\n\tloadState : function (jqGridId, gridstring, o) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\",\n\t\t\tclearAfterLoad: false,  // clears the jqGrid localStorage items aftre load\n\t\t\tbeforeSetGrid : null,\n\t\t\tafterSetGrid : null,\n\t\t\tdecompression: false,\n\t\t\tdecompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tdecompressionMethod : 'decompressFromUTF16' // string by example unzip, decompressFromUTF16\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar ret, tmp, $t = $(\"#\"+jqGridId)[0], data, iN, fT;\n\t\tif(o.useStorage) {\n\t\t\ttry {\n\t\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+$t.id);\n\t\t\t\tdata = window[o.storageType].getItem(\"jqGrid\"+$t.id+\"_data\");\n\t\t\t} catch (e) {\n\t\t\t\t// can not get data\n\t\t\t}\n\t\t}\n\t\tif(!gridstring) { return; }\n\t\tif(o.decompression) {\n\t\t\tif(o.decompressionModule) {\n\t\t\ttry {\n\t\t\t\t\tret = window[o.decompressionModule][o.decompressionMethod]( gridstring );\n\t\t\t\t\tif(ret != null ) {\n\t\t\t\t\t\tgridstring = ret;\n\t\t\t\t\t\tdata = window[o.decompressionModule][o.decompressionMethod]( data );\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// decompression can not be done\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tret = jqGridUtils.parse( gridstring );\n\t\tif( ret && $.type(ret) === 'object') {\n\t\t\tif($t.grid) { \n\t\t\t\t$.jgrid.gridUnload( jqGridId ); \n\t\t\t}\n\t\t\tif($.isFunction(o.beforeSetGrid)) {\n\t\t\t\ttmp = o.beforeSetGrid( ret );\n\t\t\t\tif(tmp && $.type(tmp) === 'object') {\n\t\t\t\t\tret = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// some preparings\n\t\t\tvar retfunc = function( param ) { var p; p = param; return p;},\n\t\t\tprm = {\n\t\t\t\t\"reccount\" : ret.reccount,\n\t\t\t\t\"records\" : ret.records,\n\t\t\t\t\"lastpage\" : ret.lastpage,\n\t\t\t\t\"shrinkToFit\" : retfunc( ret.shrinkToFit),\n\t\t\t\t\"data\": retfunc(ret.data),\n\t\t\t\t\"datatype\" : retfunc(ret.datatype),\n\t\t\t\t\"grouping\" : retfunc(ret.grouping)\n\t\t\t};\n\t\t\tret.shrinkToFit = false;\n\t\t\tret.data = [];\n\t\t\tret.datatype = 'local';\n\t\t\tret.grouping = false;\n\t\t\t//ret.navGrid = false;\n\n\t\t\tif(ret.inlineNav) {\n\t\t\t\tiN = retfunc( ret._iN );\n\t\t\t\tret._iN = null; delete ret._iN; \n\t\t\t}\n\t\t\tif(ret.filterToolbar) {\n\t\t\t\tfT = retfunc( ret._fT );\n\t\t\t\tret._fT = null; delete ret._fT; \n\t\t\t}\n\t\t\tvar grid = $(\"#\"+jqGridId).jqGrid( ret );\n\t\t\tgrid.append( data );\n\t\t\tgrid.jqGrid( 'setGridParam', prm);\n\t\t\tif(ret.storeNavOptions && ret.navGrid) {\n\t\t\t\t// set to false so that nav grid can be run\n\t\t\t\tgrid[0].p.navGrid = false;\n\t\t\t\tgrid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions);\n\t\t\t\tif(ret.navButtons && ret.navButtons.length) {\n\t\t\t\t\tfor(var b = 0; b < ret.navButtons.length; b++) {\n\t\t\t\t\t\tif( 'sepclass'  in ret.navButtons[b][1]) {\n\t\t\t\t\t\t\tgrid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// refresh index \n\t\t\tgrid[0].refreshIndex();\n\t\t\t// subgrid\n\t\t\tif(ret.subGrid) {\n\t\t\t\tvar ms = ret.multiselect === 1 ? 1 : 0,\n\t\t\t\t\trn = ret.rownumbers === true ? 1 :0;\n\t\t\t\tgrid.jqGrid('addSubGrid', ms + rn);\n\t\t\t}\n\t\t\t// treegrid\n\t\t\tif(ret.treeGrid) {\n\t\t\t\tvar i = 1, len = grid[0].rows.length,\n\t\t\t\texpCol = ret.expColInd,\n\t\t\t\tisLeaf = ret.treeReader.leaf_field,\n\t\t\t\texpanded = ret.treeReader.expanded_field;\n\t\t\t\t// optimization of code needed here\n\t\t\t\twhile(i<len) {\n\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\tif(ret.ExpandColClick === true) {\n\t\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgrid.jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// multiselect\n\t\t\tif(ret.multiselect) {\n\t\t\t\t$.each(ret.selarrrow, function(){\n\t\t\t\t\t$(\"#jqg_\" + jqGridId + \"_\"+this)[ret.useProp ? 'prop': 'attr'](\"checked\", \"checked\");\n\t\t\t\t});\n\t\t\t}\n\t\t\t// grouping\n\t\t\t// pivotgrid\n\t\t\tif(ret.inlineNav && iN) {\n\t\t\t\tgrid.jqGrid('setGridParam', { inlineNav:false });\n\t\t\t\tgrid.jqGrid('inlineNav', ret.pager, iN);\n\t\t\t}\n\t\t\tif(ret.filterToolbar && fT) {\n\t\t\t\tgrid.jqGrid('setGridParam', { filterToolbar:false });\n\t\t\t\tfT.restoreFromFilters = true;\n\t\t\t\tgrid.jqGrid('filterToolbar', fT);\n\t\t\t}\n\t\t\t// finally frozenColums\n\t\t\tif( ret.frozenColumns ) {\n\t\t\t\tgrid.jqGrid('setFrozenColumns');\n\t\t\t}\n\t\t\tgrid[0].updatepager(true, true);\n\t\t\t\n\t\t\tif($.isFunction(o.afterSetGrid)) {\n\t\t\t\to.afterSetGrid( grid );\n\t\t\t}\n\t\t\tif(o.clearAfterLoad) {\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id);\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id + \"_data\");\n\t\t\t}\n\t\t} else {\n\t\t\talert(\"can not convert to object\");\n\t\t}\n\t},\n\tisGridInStorage : function ( jqGridId, options ) {\n\t\tvar o = {\n\t\t\tstorageType: \"localStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\tvar ret, gridstring, data;\n\t\ttry {\n\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+jqGridId);\n\t\t\tdata = window[o.storageType].getItem(\"jqGrid\" + jqGridId + \"_data\");\n\t\t\tret = gridstring != null && data != null && typeof gridstring === \"string\" && typeof data === \"string\" ;\n\t\t} catch (e) {\n\t\t\tret = false;\n\t\t}\n\t\treturn ret;\n\t},\n\tsetRegional : function( jqGridId , options) {\n\t\tvar o = {\n\t\t\tstorageType: \"sessionStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\t\n\t\tif( !o.regional ) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t$.jgrid.saveState( jqGridId, o );\n\t\t\n\t\to.beforeSetGrid = function(params) {\n\t\t\tparams.regional = o.regional;\n\t\t\tparams.force_regional = true;\n\t\t\treturn params;\n\t\t};\n\t\t\n\t\t$.jgrid.loadState( jqGridId, null, o);\n\t\t// check for formatter actions\n\t\tvar grid = $(\"#\"+jqGridId)[0],\n\t\tmodel = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav');\n\t\t$.each(model,function(k){\n\t\t\tif(this.formatter && this.formatter === 'actions') {\n\t\t\t\ti = k;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(i !== -1 && nav) {\n\t\t\t$(\"#\"+jqGridId + \" tbody tr\").each(function(){\n\t\t\t\tvar td = this.cells[i];\n\t\t\t\t$(td).find(\".ui-inline-edit\").attr(\"title\",nav.edittitle);\n\t\t\t\t$(td).find(\".ui-inline-del\").attr(\"title\",nav.deltitle);\n\t\t\t\t$(td).find(\".ui-inline-save\").attr(\"title\",nav.savetitle);\n\t\t\t\t$(td).find(\".ui-inline-cancel\").attr(\"title\",nav.canceltitle);\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id);\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id+\"_data\");\n\t\t} catch (e) {}\n\t},\n\tjqGridImport : function(jqGridId, o) {\n\t\to = $.extend({\n\t\t\timptype : \"xml\", // xml, json, xmlstring, jsonstring\n\t\t\timpstring: \"\",\n\t\t\timpurl: \"\",\n\t\t\tmtype: \"GET\",\n\t\t\timpData : {},\n\t\t\txmlGrid :{\n\t\t\t\tconfig : \"root>grid\",\n\t\t\t\tdata: \"root>rows\"\n\t\t\t},\n\t\t\tjsonGrid :{\n\t\t\t\tconfig : \"grid\",\n\t\t\t\tdata: \"data\"\n\t\t\t},\n\t\t\tajaxOptions :{}\n\t\t}, o || {});\n\t\tvar $t = (jqGridId.indexOf(\"#\") === 0 ? \"\": \"#\") + $.jgrid.jqID(jqGridId);\n\t\tvar xmlConvert = function (xml,o) {\n\t\t\tvar cnfg = $(o.xmlGrid.config,xml)[0];\n\t\t\tvar xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key;\n\t\t\tif(jqGridUtils.xmlToJSON ) {\n\t\t\t\tjstr = jqGridUtils.xmlToJSON( cnfg );\n\t\t\t\t//jstr = $.jgrid.parse(jstr);\n\t\t\t\tfor(key in jstr) {\n\t\t\t\t\tif(jstr.hasOwnProperty(key)) {\n\t\t\t\t\t\tjstr1=jstr[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(xmldata) {\n\t\t\t\t// save the datatype\n\t\t\t\t\tvar svdatatype = jstr.grid.datatype;\n\t\t\t\t\tjstr.grid.datatype = 'xmlstring';\n\t\t\t\t\tjstr.grid.datastr = xml;\n\t\t\t\t\t$($t).jqGrid( jstr1 ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() { $($t).jqGrid( jstr1 ); },0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\talert(\"xml2json or parse are not present\");\n\t\t\t}\n\t\t};\n\t\tvar jsonConvert = function (jsonstr,o){\n\t\t\tif (jsonstr && typeof jsonstr === 'string') {\n\t\t\t\tvar json = jqGridUtils.parse(jsonstr);\n\t\t\t\tvar gprm = json[o.jsonGrid.config];\n\t\t\t\tvar jdata = json[o.jsonGrid.data];\n\t\t\t\tif(jdata) {\n\t\t\t\t\tvar svdatatype = gprm.datatype;\n\t\t\t\t\tgprm.datatype = 'jsonstring';\n\t\t\t\t\tgprm.datastr = jdata;\n\t\t\t\t\t$($t).jqGrid( gprm ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid( gprm );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tswitch (o.imptype){\n\t\t\tcase 'xml':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"xml\",\n\t\t\t\t\tcomplete: function(xml,stat) {\n\t\t\t\t\t\tif(stat === 'success') {\n\t\t\t\t\t\t\txmlConvert(xml.responseXML,o);\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xml, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(xml);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\txml=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions));\n\t\t\t\tbreak;\n\t\t\tcase 'xmlstring' :\n\t\t\t\t// we need to make just the conversion and use the same code as xml\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tvar xmld = $.parseXML(o.impstring);\n\t\t\t\t\tif(xmld) {\n\t\t\t\t\t\txmlConvert(xmld,o);\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xmld, o]);\n\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\to.importComplete(xmld);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'json':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"json\",\n\t\t\t\t\tcomplete: function(json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tjsonConvert(json.responseText,o );\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [json, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(json);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (ee){}\n\t\t\t\t\t\tjson=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions ));\n\t\t\t\tbreak;\n\t\t\tcase 'jsonstring' :\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tjsonConvert(o.impstring,o );\n\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [o.impstring, o]);\n\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\to.importComplete(o.impstring);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n});\n\t$.jgrid.extend({\n\t\tjqGridExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"xmlstring\",\n\t\t\t\troot: \"grid\",\n\t\t\t\tident: \"\\t\",\n\t\t\t\taddOptions : {}\n\t\t\t}, o || {});\n\t\t\tvar ret = null;\n\t\t\tthis.each(function () {\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar key, gprm = $.extend(true, {}, $(this).jqGrid(\"getGridParam\"), o.addOptions);\n\t\t\t\t// we need to check for:\n\t\t\t\t// 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames\n\t\t\t\tif(gprm.rownumbers) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.multiselect) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.subGrid) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tgprm.knv = null;\n\t\t\t\tswitch (o.exptype) {\n\t\t\t\t\tcase 'xmlstring' :\n\t\t\t\t\t\tret = \"<\"+o.root+\">\"+ jqGridUtils.jsonToXML( gprm, {xmlDecl:\"\"} )+\"</\"+o.root+\">\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'jsonstring' :\n\t\t\t\t\t\tret =  jqGridUtils.stringify( gprm );\n\t\t\t\t\t\tif(o.root) { ret = \"{\"+ o.root +\":\"+ret+\"}\"; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ret;\n\t\t},\n\t\texcelExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"remote\",\n\t\t\t\turl : null,\n\t\t\t\toper: \"oper\",\n\t\t\t\ttag: \"excel\",\n\t\t\t\tbeforeExport : null,\n\t\t\t\texporthidden : false,\n\t\t\t\texportgrouping: false,\n\t\t\t\texportOptions : {}\n\t\t\t}, o || {});\n\t\t\treturn this.each(function(){\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar url;\n\t\t\t\tif(o.exptype === \"remote\") {\n\t\t\t\t\tvar pdata = $.extend({},this.p.postData), expg;\n\t\t\t\t\tpdata[o.oper] = o.tag;\n\t\t\t\t\tif($.isFunction(o.beforeExport)) {\n\t\t\t\t\t\tvar result = o.beforeExport.call(this, pdata );\n\t\t\t\t\t\tif( $.isPlainObject( result ) ) {\n\t\t\t\t\t\t\tpdata = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exporthidden) {\n\t\t\t\t\t\tvar cm = this.p.colModel, i, len = cm.length, newm=[];\n\t\t\t\t\t\tfor(i=0; i< len; i++) {\n\t\t\t\t\t\t\tif(cm[i].hidden === undefined) { cm[i].hidden = false; }\n\t\t\t\t\t\t\tnewm.push({name:cm[i].name, hidden:cm[i].hidden});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar newm1 = JSON.stringify( newm );\n\t\t\t\t\t\tif(typeof newm1 === 'string' ) {\n\t\t\t\t\t\t\tpdata['colModel'] = newm1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exportgrouping) {\n\t\t\t\t\t\texpg = JSON.stringify( this.p.groupingView );\n\t\t\t\t\t\tif(typeof expg === 'string' ) {\n\t\t\t\t\t\t\tpdata['groupingView'] = expg;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar params = jQuery.param(pdata);\n\t\t\t\t\tif(o.url.indexOf(\"?\") !== -1) { url = o.url+\"&\"+params; }\n\t\t\t\t\telse { url = o.url+\"?\"+params; }\n\t\t\t\t\twindow.location = url;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n    });\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.inlinedit.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.common\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.inlineEdit = $.jgrid.inlineEdit || {};\n$.jgrid.extend({\n//Editing\n\teditRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar o={}, args = $.makeArray(arguments).slice(1);\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif (keys !== undefined) { o.keys = keys; }\n\t\t\tif ($.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; }\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t\t// last two not as param, but as object (sorry)\n\t\t\t//if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; }\n\t\t\t//if (mtype !== undefined) { o.mtype = mtype || \"POST\"; }\t\t\t\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tkeys : false,\n\t\t\tkeyevent : \"keydown\",\n\t\t\toneditfunc: null,\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tfocusField : true\n\t\t}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer,\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".inlinedit\",'inputClass', true);\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif( ind === false ) {return;}\n\t\t\t$t.p.beforeAction = true;\n\t\t\tbfer = $.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) :  undefined;\n\t\t\tif( bfer === undefined ) {\n\t\t\t\tbfer = true;\n\t\t\t}\n\t\t\tif(!bfer) { \n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\teditable = $(ind).attr(\"editable\") || \"0\";\n\t\t\tif (editable === \"0\" && !$(ind).hasClass(\"not-editable-row\")) {\n\t\t\t\tcm = $t.p.colModel;\n\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\tvar treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn;\n\t\t\t\t\tif(treeg) { tmp = $(\"span:first\",this).html();}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\ttmp =  ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\t\t\tsvr[nm]=tmp;\n\t\t\t\t\t\tif(cm[i].editable===true) {\n\t\t\t\t\t\t\tif(focus===null) { focus = i; }\n\t\t\t\t\t\t\tif (treeg) { $(\"span:first\",this).html(\"\"); }\n\t\t\t\t\t\t\telse { $(this).html(\"\"); }\n\t\t\t\t\t\t\tvar opt = $.extend({},cm[i].editoptions || {},{id:rowid+\"_\"+nm,name:nm,rowId:rowid, oper:'edit'});\n\t\t\t\t\t\t\tif(!cm[i].edittype) { cm[i].edittype = \"text\"; }\n\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t\t$(elc).addClass(\"editable inline-edit-cell\");\n\t\t\t\t\t\t\tif( $.inArray(cm[i].edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t\t$(elc).addClass( inpclass );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(treeg) { $(\"span:first\",this).append(elc); }\n\t\t\t\t\t\t\telse { $(this).append(elc); }\n\t\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\t\t//Again IE\n\t\t\t\t\t\t\tif(cm[i].edittype === \"select\" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true  && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) {\n\t\t\t\t\t\t\t\t$(elc).width($(elc).width());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcnt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt > 0) {\n\t\t\t\t\tsvr.id = rowid; $t.p.savedRow.push(svr);\n\t\t\t\t\t$(ind).attr(\"editable\",\"1\");\n\t\t\t\t\tif(o.focusField ) {\n\t\t\t\t\t\tif(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) {\n\t\t\t\t\t\t\tfocus = o.focusField;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetTimeout(function(){ \n\t\t\t\t\t\t\tvar fe = $(\"td:eq(\"+focus+\") :input:visible\",ind).not(\":disabled\"); \n\t\t\t\t\t\t\tif(fe.length > 0) {\n\t\t\t\t\t\t\t\tfe.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},0);\n\t\t\t\t\t}\n\t\t\t\t\tif(o.keys===true) {\n\t\t\t\t\t\t$(ind).on( o.keyevent ,function(e) {\n\t\t\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t} catch (eer1) {}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (e.keyCode === 13) {\n\t\t\t\t\t\t\t\tvar ta = e.target;\n\t\t\t\t\t\t\t\tif(ta.tagName === 'TEXTAREA') { return true; }\n\t\t\t\t\t\t\t\tif( $($t).jqGrid(\"saveRow\", rowid, o ) ) {\n\t\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t\t} catch (eer2) {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineEditRow\", [rowid, o]);\n\t\t\t\t\tif( $.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsaveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o = {}, $t = this[0];\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tsaveui : \"enable\",\n\t\t\tsavetext : $.jgrid.getRegional($t,'defaults.savetext')\n\t\t}, $.jgrid.inlineEdit, o );\n\t\t// End compatible\n\n\t\tvar success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false,\n\t\terror = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) );\n\t\tif (!$t.grid ) { return success; }\n\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\tif(ind === false) {return success;}\n\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\tedit =$.jgrid.getRegional($t, 'edit'),\n\t\tbfsr = $.isFunction( o.beforeSaveRow ) ?\to.beforeSaveRow.call($t,o, rowid) :  undefined;\n\t\tif( bfsr === undefined ) {\n\t\t\tbfsr = true;\n\t\t}\n\t\tif(!bfsr) { return; }\n\t\teditable = $(ind).attr(\"editable\");\n\t\to.url = o.url || $t.p.editurl;\n\t\tif (editable===\"1\") {\n\t\t\tvar cm, index, elem;\n\t\t\t$('td[role=\"gridcell\"]',ind).each(function(i) {\n\t\t\t\tcm = $t.p.colModel[i];\n\t\t\t\tnm = cm.name;\n\t\t\t\telem = \"\";\n\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn' && !$(this).hasClass('not-editable-cell')) {\n\t\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\tvar cbv = [\"Yes\",\"No\"];\n\t\t\t\t\t\t\tif(cm.editoptions ) {\n\t\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmp[nm]=  $(\"input\",this).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\t\telem = $(\"input\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\tcase 'password':\n\t\t\t\t\t\tcase 'textarea':\n\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\ttmp[nm]=$(\"input, textarea\",this).val();\n\t\t\t\t\t\t\telem = $(\"input, textarea\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'select':\n\t\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\t\ttmp[nm] = $(\"select option:selected\",this).val();\n\t\t\t\t\t\t\t\ttmp2[nm] = $(\"select option:selected\", this).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar sel = $(\"select\",this), selectedText = [];\n\t\t\t\t\t\t\t\ttmp[nm] = $(sel).val();\n\t\t\t\t\t\t\t\tif(tmp[nm]) { tmp[nm]= tmp[nm].join(\",\"); } else { tmp[nm] =\"\"; }\n\t\t\t\t\t\t\t\t$(\"select option:selected\",this).each(\n\t\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\ttmp2[nm] = selectedText.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(cm.formatter && cm.formatter === 'select') { tmp2={}; }\n\t\t\t\t\t\t\telem = $(\"select\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\ttmp[nm] = cm.editoptions.custom_value.call($t, $(\".customelement\",this),'get');\n\t\t\t\t\t\t\t\t\tif (tmp[nm] === undefined) { throw \"e2\"; }\n\t\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcv = $.jgrid.checkValues.call($t,tmp[nm],i);\n\t\t\t\t\tif(cv[0] === false) {\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }\n\t\t\t\t\tif(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(tmp[nm] === \"\") {\n\t\t\t\t\t\t\ttmp3[nm] = 'null';\n\t\t\t\t\t\t\tnullIfEmpty = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (cv[0] === false){\n\t\t\t\ttry {\n\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t$t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar tr = $($t).jqGrid('getGridRowById', rowid), \n\t\t\t\t\t\t\tpositions = $.jgrid.findPos(tr);\n\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{\n\t\t\t\t\t\t\tleft:positions[0],\n\t\t\t\t\t\t\ttop:positions[1]+$(tr).outerHeight(), \n\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\tonClose: function(){\n\t\t\t\t\t\t\t\tif(index >= 0 ) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+rowid+\"_\" +$t.p.colModel[index].name).focus();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\talert(cv[1]);\n\t\t\t\t}\n\t\t\t\treturn success;\n\t\t\t}\n\t\t\tvar idname, opers = $t.p.prmNames, oldRowId = rowid;\n\t\t\tif ($t.p.keyName === false) {\n\t\t\t\tidname = opers.id;\n\t\t\t} else {\n\t\t\t\tidname = $t.p.keyName;\n\t\t\t}\n\t\t\tif(tmp) {\n\t\t\t\ttmp[opers.oper] = opers.editoper;\n\t\t\t\tif (tmp[idname] === undefined || tmp[idname]===\"\") {\n\t\t\t\t\ttmp[idname] = rowid;\n\t\t\t\t} else if (ind.id !== $t.p.idPrefix + tmp[idname]) {\n\t\t\t\t\t// rename rowid\n\t\t\t\t\tvar oldid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\tif ($t.p._index[oldid] !== undefined) {\n\t\t\t\t\t\t$t.p._index[tmp[idname]] = $t.p._index[oldid];\n\t\t\t\t\t\tdelete $t.p._index[oldid];\n\t\t\t\t\t}\n\t\t\t\t\trowid = $t.p.idPrefix + tmp[idname];\n\t\t\t\t\t$(ind).attr(\"id\", rowid);\n\t\t\t\t\tif ($t.p.selrow === oldRowId) {\n\t\t\t\t\t\t$t.p.selrow = rowid;\n\t\t\t\t\t}\n\t\t\t\t\tif ($.isArray($t.p.selarrrow)) {\n\t\t\t\t\t\tvar i = $.inArray(oldRowId, $t.p.selarrrow);\n\t\t\t\t\t\tif (i>=0) {\n\t\t\t\t\t\t\t$t.p.selarrrow[i] = rowid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ($t.p.multiselect) {\n\t\t\t\t\t\tvar newCboxId = \"jqg_\" + $t.p.id + \"_\" + rowid;\n\t\t\t\t\t\t$(\"input.cbox\",ind)\n\t\t\t\t\t\t\t.attr(\"id\", newCboxId)\n\t\t\t\t\t\t\t.attr(\"name\", newCboxId);\n\t\t\t\t\t}\n\t\t\t\t\t// TODO: to test the case of frozen columns\n\t\t\t\t}\n\t\t\t\tif($t.p.inlineData === undefined) { $t.p.inlineData ={}; }\n\t\t\t\ttmp = $.extend({},tmp,$t.p.inlineData,o.extraparam);\n\t\t\t}\n\t\t\tif (o.url === 'clientArray') {\n\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tvar k, resp = $($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}\n\t\t\t\t}\n\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, resp, tmp, o]);\n\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }\n\t\t\t\tsuccess = true;\n\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t} else {\n\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : o.saveui, htmlcontent: o.savetext });\n\t\t\t\ttmp3 = $.extend({},tmp,tmp3);\n\t\t\t\ttmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.url,\n\t\t\t\t\tdata: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3,\n\t\t\t\t\ttype: o.mtype,\n\t\t\t\t\tasync : false, //?!?\n\t\t\t\t\tcomplete: function(res,stat){\n\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : o.saveui, htmlcontent: o.savetext});\n\t\t\t\t\t\tif (stat === \"success\"){\n\t\t\t\t\t\t\tvar ret = true, sucret, k;\n\t\t\t\t\t\t\tsucret = $($t).triggerHandler(\"jqGridInlineSuccessSaveRow\", [res, rowid, o]);\n\t\t\t\t\t\t\tif (!$.isArray(sucret)) {sucret = [true, tmp3];}\n\t\t\t\t\t\t\tif (sucret[0] && $.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);}\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif($.isArray(sucret)) {\n\t\t\t\t\t\t\t\t// expect array - status, data, rowid\n\t\t\t\t\t\t\t\tret = sucret[0];\n\t\t\t\t\t\t\t\ttmp = sucret[1] || tmp;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = sucret;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (ret===true) {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(nullIfEmpty) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function( n ){\n\t\t\t\t\t\t\t\t\t\tif(tmp[n] === 'null' ) {\n\t\t\t\t\t\t\t\t\t\t\ttmp[n] = '';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\t\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, res, tmp, o]);\n\t\t\t\t\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); }\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, null, o]);\n\t\t\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror:function(res,stat,err){\n\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, err, o]);\n\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar rT = res.responseText || res.statusText;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,'<div class=\"'+error+'\">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\t\talert(rT);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));\n\t\t\t}\n\t\t}\n\t\treturn success;\n\t},\n\trestoreRow : function(rowid, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o={};\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr=-1, ind, ares={}, k;\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(ind === false) {return;}\n\t\t\tvar bfcr = $.isFunction( o.beforeCancelRow ) ?\to.beforeCancelRow.call($t, o, rowid) :  undefined;\n\t\t\tif( bfcr === undefined ) {\n\t\t\t\tbfcr = true;\n\t\t\t}\n\t\t\tif(!bfcr) { return; }\n\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t}\n\t\t\tif(fr >= 0) {\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",\"#\"+$.jgrid.jqID(ind.id)).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\tif(this.editable === true && $t.p.savedRow[fr].hasOwnProperty(this.name)) {\n\t\t\t\t\t\tares[this.name] = $t.p.savedRow[fr][this.name];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,ares);\n\t\t\t\t$(ind).attr(\"editable\",\"0\").off(\"keydown\");\n\t\t\t\t$t.p.savedRow.splice(fr,1);\n\t\t\t\tif($(\"#\"+$.jgrid.jqID(rowid), \"#\"+$.jgrid.jqID($t.p.id)).hasClass(\"jqgrid-new-row\")){\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",rowid);\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridInlineAfterRestoreRow\", [rowid]);\n\t\t\tif ($.isFunction(o.afterrestorefunc))\n\t\t\t{\n\t\t\t\to.afterrestorefunc.call($t, rowid);\n\t\t\t}\n\t\t});\n\t},\n\taddRow : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\trowID : null,\n\t\t\tinitdata : {},\n\t\t\tposition :\"first\",\n\t\t\tuseDefValues : true,\n\t\t\tuseFormatter : false,\n\t\t\taddRowParams : {extraparam:{}}\n\t\t},p  || {});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar $t = this;\n\t\t\t$t.p.beforeAction = true;\n\t\t\tvar bfar = $.isFunction( p.beforeAddRow ) ?\tp.beforeAddRow.call($t,p.addRowParams) :  undefined;\n\t\t\tif( bfar === undefined ) {\n\t\t\t\tbfar = true;\n\t\t\t}\n\t\t\tif(!bfar) {\n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\tp.rowID = $.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId());\n\t\t\tif(p.useDefValues === true) {\n\t\t\t\t$($t.p.colModel).each(function(){\n\t\t\t\t\tif( this.editoptions && this.editoptions.defaultValue ) {\n\t\t\t\t\t\tvar opt = this.editoptions.defaultValue,\n\t\t\t\t\t\ttmp = $.isFunction(opt) ? opt.call($t) : opt;\n\t\t\t\t\t\tp.initdata[this.name] = tmp;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$($t).jqGrid('addRowData', p.rowID, p.initdata, p.position);\n\t\t\tp.rowID = $t.p.idPrefix + p.rowID;\n\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID), \"#\"+$.jgrid.jqID($t.p.id)).addClass(\"jqgrid-new-row\");\n\t\t\tif(p.useFormatter) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID)+\" .ui-inline-edit\", \"#\"+$.jgrid.jqID($t.p.id)).click();\n\t\t\t} else {\n\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\toper = opers.oper;\n\t\t\t\tp.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t$($t).jqGrid('editRow', p.rowID, p.addRowParams);\n\t\t\t\t$($t).jqGrid('setSelection', p.rowID);\n\t\t\t}\n\t\t});\n\t},\n\tinlineNav : function (elem, o) {\n\t\tvar $t = this[0],\n\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\ticons = $.jgrid.styleUI[$t.p.styleUI].inlinedit;\n\t\to = $.extend(true,{\n\t\t\tedit: true,\n\t\t\tediticon: icons.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon:icons.icon_add_nav,\n\t\t\tsave: true,\n\t\t\tsaveicon: icons.icon_save_nav,\n\t\t\tcancel: true,\n\t\t\tcancelicon: icons.icon_cancel_nav,\n\t\t\taddParams : {addRowParams: {extraparam: {}}},\n\t\t\teditParams : {},\n\t\t\trestoreAfterSelect : true,\n\t\t\tsaveAfterSelect : false\n\t\t}, regional, o ||{});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid  || this.p.inlineNav) { return; }\n\t\t\tvar gID = $.jgrid.jqID($t.p.id),\n\t\t\tdisabled = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) );\n\t\t\t// check to see if navgrid is started, if not call it with all false parameters.\n\t\t\tif(!$t.p.navGrid) {\n\t\t\t\t$($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false});\n\t\t\t}\n\t\t\tif(!$($t).data('inlineNav')) {\n\t\t\t\t$($t).data('inlineNav',o);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\n\t\t\t$t.p.inlineNav = true;\n\t\t\t// detect the formatactions column\n\t\t\tif(o.addParams.useFormatter === true) {\n\t\t\t\tvar cm = $t.p.colModel,i;\n\t\t\t\tfor (i = 0; i<cm.length; i++) {\n\t\t\t\t\tif(cm[i].formatter && cm[i].formatter === \"actions\" ) {\n\t\t\t\t\t\tif(cm[i].formatoptions) {\n\t\t\t\t\t\t\tvar defaults =  {\n\t\t\t\t\t\t\t\tkeys:false,\n\t\t\t\t\t\t\t\tonEdit : null,\n\t\t\t\t\t\t\t\tonSuccess: null,\n\t\t\t\t\t\t\t\tafterSave:null,\n\t\t\t\t\t\t\t\tonError: null,\n\t\t\t\t\t\t\t\tafterRestore: null,\n\t\t\t\t\t\t\t\textraparam: {},\n\t\t\t\t\t\t\t\turl: null\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tap = $.extend( defaults, cm[i].formatoptions );\n\t\t\t\t\t\t\to.addParams.addRowParams = {\n\t\t\t\t\t\t\t\t\"keys\" : ap.keys,\n\t\t\t\t\t\t\t\t\"oneditfunc\" : ap.onEdit,\n\t\t\t\t\t\t\t\t\"successfunc\" : ap.onSuccess,\n\t\t\t\t\t\t\t\t\"url\" : ap.url,\n\t\t\t\t\t\t\t\t\"extraparam\" : ap.extraparam,\n\t\t\t\t\t\t\t\t\"aftersavefunc\" : ap.afterSave,\n\t\t\t\t\t\t\t\t\"errorfunc\": ap.onError,\n\t\t\t\t\t\t\t\t\"afterrestorefunc\" : ap.afterRestore\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.add) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.addtext,\n\t\t\t\t\ttitle : o.addtitle,\n\t\t\t\t\tbuttonicon : o.addicon,\n\t\t\t\t\tid : $t.p.id+\"_iladd\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('addRow', o.addParams);\n\t\t\t\t\t\tif(!o.addParams.useFormatter && $t.p.beforeAction) {\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.edit) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.edittext,\n\t\t\t\t\ttitle : o.edittitle,\n\t\t\t\t\tbuttonicon : o.editicon,\n\t\t\t\t\tid : $t.p.id+\"_iledit\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $($t).jqGrid('getGridParam','selrow');\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('editRow', sr, o.editParams);\n\t\t\t\t\t\t\tif($t.p.beforeAction) {\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.save) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.savetext || '',\n\t\t\t\t\ttitle : o.savetitle || 'Save row',\n\t\t\t\t\tbuttonicon : o.saveicon,\n\t\t\t\t\tid : $t.p.id+\"_ilsave\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\t\t\t\toper = opers.oper, tmpParams = o.editParams;\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\to.addParams.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t\t\t\t\ttmpParams = o.addParams.addRowParams;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(!o.editParams.extraparam) {\n\t\t\t\t\t\t\t\t\to.editParams.extraparam = {};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\to.editParams.extraparam[oper] = opers.editoper;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif( $($t).jqGrid('saveRow', sr, tmpParams) ) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.cancel) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.canceltext || '',\n\t\t\t\t\ttitle : o.canceltitle || 'Cancel row editing',\n\t\t\t\t\tbuttonicon : o.cancelicon,\n\t\t\t\t\tid : $t.p.id+\"_ilcancel\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id, cancelPrm = o.editParams;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\tcancelPrm = o.addParams.addRowParams;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', sr, cancelPrm);\n\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod\",{gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.restoreAfterSelect === true || o.saveAfterSelect === true) {\n\t\t\t\t$($t).on(\"jqGridBeforeSelectRow.inlineNav\", function( event, id ) {\n\t\t\t\t\tif($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) {\n\t\t\t\t\t\tif($t.p.selrow === o.addParams.rowID ) {\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData', $t.p.selrow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(o.restoreAfterSelect === true) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid('saveRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t});\n\t},\n\tshowAddEditButtons : function()  {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar gID = $.jgrid.jqID(this.p.id),\n\t\t\tdisabled = $.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );\n\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iladd\").removeClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iledit\").removeClass( disabled );\n\t\t});\n\t}\n//end inline edit\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.jqueryui.js",
    "content": "/*jshint evil:true, eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"jquery-ui/dialog\",\n\t\t\t\"jquery-ui/draggable\",\n\t\t\t\"jquery-ui/droppable\",\n\t\t\t\"jquery-ui/resizable\",\n\t\t\t\"jquery-ui/sortable\",\n\t\t\t\"./addons/ui.multiselect\"\t\t\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {/*\n**\n * jqGrid addons using jQuery UI \n * Author: Mark Williams\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n * depends on jQuery UI \n**/\n\"use strict\";\n//module begin\nif ($.jgrid.msie() && $.jgrid.msiever()===8) {\n\t$.expr[\":\"].hidden = function(elem) {\n\t\treturn elem.offsetWidth === 0 || elem.offsetHeight === 0 ||\n\t\t\telem.style.display === \"none\";\n\t};\n}\n// requiere load multiselect before grid\n$.jgrid._multiselect = false;\nif($.ui) {\n\tif ($.ui.multiselect ) {\n\t\tif($.ui.multiselect.prototype._setSelected) {\n\t\t\tvar setSelected = $.ui.multiselect.prototype._setSelected;\n\t\t\t$.ui.multiselect.prototype._setSelected = function(item,selected) {\n\t\t\t\tvar ret = setSelected.call(this,item,selected);\n\t\t\t\tif (selected && this.selectedList) {\n\t\t\t\t\tvar elt = this.element;\n\t\t\t\t\tthis.selectedList.find('li').each(function() {\n\t\t\t\t\t\tif ($(this).data('optionLink')) {\n\t\t\t\t\t\t\t$(this).data('optionLink').remove().appendTo(elt);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t};\n\t\t}\n\t\tif($.ui.multiselect.prototype.destroy) {\n\t\t\t$.ui.multiselect.prototype.destroy = function() {\n\t\t\t\tthis.element.show();\n\t\t\t\tthis.container.remove();\n\t\t\t\tif ($.Widget === undefined) {\n\t\t\t\t\t$.widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t} else {\n\t\t\t\t\t$.Widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t$.jgrid._multiselect = true;\n\t}\n}\n        \n$.jgrid.extend({\n\tsortableColumns : function (tblrow)\n\t{\n\t\treturn this.each(function (){\n\t\t\tvar ts = this, tid= $.jgrid.jqID( ts.p.id );\n\t\t\tfunction start() {ts.p.disableClick = true;}\n\t\t\tvar sortable_opts = {\n\t\t\t\t\"tolerance\" : \"pointer\",\n\t\t\t\t\"axis\" : \"x\",\n\t\t\t\t\"scrollSensitivity\": \"1\",\n\t\t\t\t\"items\": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)',\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\telement: function(item) {\n\t\t\t\t\t\tvar el = $(document.createElement(item[0].nodeName))\n\t\t\t\t\t\t.addClass(item[0].className+\" ui-sortable-placeholder ui-state-highlight\")\n\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\")[0];\n\t\t\t\t\t\treturn el;\n\t\t\t\t\t},\n\t\t\t\t\tupdate: function(self, p) {\n\t\t\t\t\t\tp.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));\n\t\t\t\t\t\tp.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"update\": function(event, ui) {\n\t\t\t\t\tvar p = $(ui.item).parent(),\n\t\t\t\t\tth = $(\">th\", p),\n\t\t\t\t\tcolModel = ts.p.colModel,\n\t\t\t\t\tcmMap = {}, tid= ts.p.id+\"_\";\n\t\t\t\t\t$.each(colModel, function(i) { cmMap[this.name]=i; });\n\t\t\t\t\tvar permutation = [];\n\t\t\t\t\tth.each(function() {\n\t\t\t\t\t\tvar id = $(\">div\", this).get(0).id.replace(/^jqgh_/, \"\").replace(tid,\"\");\n\t\t\t\t\t\t\tif (cmMap.hasOwnProperty(id)) {\n\t\t\t\t\t\t\t\tpermutation.push(cmMap[id]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\",permutation, true, true);\n\t\t\t\t\tif ($.isFunction(ts.p.sortable.update)) {\n\t\t\t\t\t\tts.p.sortable.update(permutation);\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(function(){ts.p.disableClick=false;}, 50);\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (ts.p.sortable.options) {\n\t\t\t\t$.extend(sortable_opts, ts.p.sortable.options);\n\t\t\t} else if ($.isFunction(ts.p.sortable)) {\n\t\t\t\tts.p.sortable = { \"update\" : ts.p.sortable };\n\t\t\t}\n\t\t\tif (sortable_opts.start) {\n\t\t\t\tvar s = sortable_opts.start;\n\t\t\t\tsortable_opts.start = function(e,ui) {\n\t\t\t\t\tstart();\n\t\t\t\t\ts.call(this,e,ui);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsortable_opts.start = start;\n\t\t\t}\n\t\t\tif (ts.p.sortable.exclude) {\n\t\t\t\tsortable_opts.items += \":not(\"+ts.p.sortable.exclude+\")\";\n\t\t\t}\n\t\t\tvar $e = tblrow.sortable(sortable_opts), dataObj = $e.data(\"sortable\") || $e.data(\"uiSortable\");\n\t\t\tif (dataObj != null) {\n\t\t\t\tdataObj.data(\"sortable\").floating = true;\n\t\t\t}\n\t\t});\n\t},\n    columnChooser : function(opts) {\n\t\tvar self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight,\n\t\t\tcolModel = self.jqGrid(\"getGridParam\", \"colModel\"),\n\t\t\tcolNames = self.jqGrid(\"getGridParam\", \"colNames\"),\n\t\t\tgetMultiselectWidgetData = function ($elem) {\n\t\t\t\treturn ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) ||\n\t\t\t\t\t$elem.data(\"ui-multiselect\") || $elem.data(\"multiselect\");\n\t\t\t},\n\t\t\tregional =  $.jgrid.getRegional(this[0], 'col');\n\n\t\tif ($(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id)).length) { return; }\n\t\tselector = $('<div id=\"colchooser_'+self[0].p.id+'\" style=\"position:relative;overflow:hidden\"><div><select multiple=\"multiple\"></select></div></div>');\n\t\tselect = $('select', selector);\n\n\t\tfunction insert(perm,i,v) {\n\t\t\tvar a, b;\n\t\t\tif(i>=0){\n\t\t\t\ta = perm.slice();\n\t\t\t\tb = a.splice(i,Math.max(perm.length-i,i));\n\t\t\t\tif(i>perm.length) { i = perm.length; }\n\t\t\t\ta[i] = v;\n\t\t\t\treturn a.concat(b);\n\t\t\t}\n\t\t\treturn perm;\n\t\t}\n\t\tfunction call(fn, obj) {\n\t\t\tif (!fn) { return; }\n\t\t\tif (typeof fn === 'string') {\n\t\t\t\tif ($.fn[fn]) {\n\t\t\t\t\t$.fn[fn].apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t\t}\n\t\t\t} else if ($.isFunction(fn)) {\n\t\t\t\tfn.apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t}\n\t\t}\n\n\t\topts = $.extend({\n\t\t\twidth : 400,\n\t\t\theight : 240,\n\t\t\tclassname : null,\n\t\t\tdone : function(perm) { if (perm) { self.jqGrid(\"remapColumns\", perm, true); } },\n\t\t\t/* msel is either the name of a ui widget class that\n\t\t\t   extends a multiselect, or a function that supports\n\t\t\t   creating a multiselect object (with no argument,\n\t\t\t   or when passed an object), and destroying it (when\n\t\t\t   passed the string \"destroy\"). */\n\t\t\tmsel : \"multiselect\",\n\t\t\t/* \"msel_opts\" : {}, */\n\n\t\t\t/* dlog is either the name of a ui widget class that \n\t\t\t   behaves in a dialog-like way, or a function, that\n\t\t\t   supports creating a dialog (when passed dlog_opts)\n\t\t\t   or destroying a dialog (when passed the string\n\t\t\t   \"destroy\")\n\t\t\t   */\n\t\t\tdlog : \"dialog\",\n\t\t\tdialog_opts : {\n\t\t\t\tminWidth: 470,\n\t\t\t\tdialogClass: \"ui-jqdialog\"\n\t\t\t},\n\t\t\t/* dlog_opts is either an option object to be passed \n\t\t\t   to \"dlog\", or (more likely) a function that creates\n\t\t\t   the options object.\n\t\t\t   The default produces a suitable options object for\n\t\t\t   ui.dialog */\n\t\t\tdlog_opts : function(options) {\n\t\t\t\tvar buttons = {};\n\t\t\t\tbuttons[options.bSubmit] = function() {\n\t\t\t\t\toptions.apply_perm();\n\t\t\t\t\toptions.cleanup(false);\n\t\t\t\t};\n\t\t\t\tbuttons[options.bCancel] = function() {\n\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t};\n\t\t\t\treturn $.extend(true, {\n\t\t\t\t\tbuttons: buttons,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t\t},\n\t\t\t\t\tmodal: options.modal || false,\n\t\t\t\t\tresizable: options.resizable || true,\n\t\t\t\t\twidth: options.width + 70,\n\t\t\t\t\tresize: function () {\n\t\t\t\t\t\tvar widgetData = getMultiselectWidgetData(select),\n\t\t\t\t\t\t\t$thisDialogContent = widgetData.container.closest(\".ui-dialog-content\");\n\n\t\t\t\t\t\tif ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === \"object\") {\n\t\t\t\t\t\t\t$thisDialogContent[0].style.width = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$thisDialogContent.css(\"width\", \"\"); // or just remove width style\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twidgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() - 1, 1));\n\t\t\t\t\t\twidgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() - 1, 1));\n\t\t\t\t\t}\n\t\t\t\t}, options.dialog_opts || {});\n\t\t\t},\n\t\t\t/* Function to get the permutation array, and pass it to the\n\t\t\t   \"done\" function */\n\t\t\tapply_perm : function() {\n\t\t\t\tvar perm = [];\n\t\t\t\t$('option',select).each(function() {\n\t\t\t\t\tif ($(this).is(\":selected\")) {\n\t\t\t\t\t\tself.jqGrid(\"showCol\", colModel[this.value].name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.jqGrid(\"hideCol\", colModel[this.value].name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t//fixedCols.slice(0);\n\t\t\t\t$('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });\n\t\t\t\t$.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });\n\t\t\t\t$.each(colMap, function() {\n\t\t\t\t\tvar ti = parseInt(this,10);\n\t\t\t\t\tperm = insert(perm,ti,ti);\n\t\t\t\t});\n\t\t\t\tif (opts.done) {\n\t\t\t\t\topts.done.call(self, perm);\n\t\t\t\t}\n\t\t\t\tself.jqGrid(\"setGridWidth\", self[0].p.width, self[0].p.shrinkToFit);\n\t\t\t},\n\t\t\t/* Function to cleanup the dialog, and select. Also calls the\n\t\t\t   done function with no permutation (to indicate that the\n\t\t\t   columnChooser was aborted */\n\t\t\tcleanup : function(calldone) {\n\t\t\t\tcall(opts.dlog, selector, 'destroy');\n\t\t\t\tcall(opts.msel, select, 'destroy');\n\t\t\t\tselector.remove();\n\t\t\t\tif (calldone && opts.done) {\n\t\t\t\t\topts.done.call(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tmsel_opts : {}\n\t\t}, regional, opts || {} );\n\t\tif($.ui) {\n\t\t\tif ($.ui.multiselect && $.ui.multiselect.defaults) {\n\t\t\t\tif (!$.jgrid._multiselect) {\n\t\t\t\t\t// should be in language file\n\t\t\t\t\talert(\"Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ??? the next line uses $.ui.multiselect.defaults which will be typically undefined\n\t\t\t\topts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts);\n\t\t\t}\n\t\t}\n\t\tif (opts.caption) {\n\t\t\tselector.attr(\"title\", opts.caption);\n\t\t}\n\t\tif (opts.classname) {\n\t\t\tselector.addClass(opts.classname);\n\t\t\tselect.addClass(opts.classname);\n\t\t}\n\t\tif (opts.width) {\n\t\t\t$(\">div\",selector).css({width: opts.width,margin:\"0 auto\"});\n\t\t\tselect.css(\"width\", opts.width);\n\t\t}\n\t\tif (opts.height) {\n\t\t\t$(\">div\",selector).css(\"height\", opts.height);\n\t\t\tselect.css(\"height\", opts.height - 10);\n\t\t}\n\n\t\tselect.empty();\n\t\t$.each(colModel, function(i) {\n\t\t\tcolMap[this.name] = i;\n\t\t\tif (this.hidedlg) {\n\t\t\t\tif (!this.hidden) {\n\t\t\t\t\tfixedCols.push(i);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselect.append(\"<option value='\"+i+\"' \"+\n\t\t\t\t\t\t  (this.hidden?\"\":\"selected='selected'\")+\">\"+$.jgrid.stripHtml(colNames[i])+\"</option>\");\n\t\t});\n\n\t\tdopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;\n\t\tcall(opts.dlog, selector, dopts);\n\t\tmopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;\n\t\tcall(opts.msel, select, mopts);\n\n\t\t// fix height of elements of the multiselect widget\n\t\t$dialogContent = $(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id));\n\n\t\t$dialogContent.css({ margin: \"auto\" });\n\t\t$dialogContent.find(\">div\").css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData = getMultiselectWidgetData(select);\n\t\tmultiselectData.container.css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\t\tmultiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\n\t\t// set height for both selectedList and availableList\n\t\tmultiselectData.selectedList.css(\"height\", \"auto\");\n\t\tmultiselectData.availableList.css(\"height\", \"auto\");\n\t\tlistHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height());\n\t\tlistHeight = Math.min(listHeight, $(window).height());\n\t\tmultiselectData.selectedList.css(\"height\", listHeight);\n\t\tmultiselectData.availableList.css(\"height\", listHeight);\n\t},\n\tsortableRows : function (opts) {\n\t\t// Can accept all sortable options and events\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) { return; }\n\t\t\t// Currently we disable a treeGrid sortable\n\t\t\tif($t.p.treeGrid) { return; }\n\t\t\tif($.fn.sortable) {\n\t\t\t\topts = $.extend({\n\t\t\t\t\t\"cursor\":\"move\",\n\t\t\t\t\t\"axis\" : \"y\",\n\t\t\t\t\t\"items\": \" > .jqgrow\"\n\t\t\t\t\t},\n\t\t\t\topts || {});\n\t\t\t\tif(opts.start && $.isFunction(opts.start)) {\n\t\t\t\t\topts._start_ = opts.start;\n\t\t\t\t\tdelete opts.start;\n\t\t\t\t} else {opts._start_=false;}\n\t\t\t\tif(opts.update && $.isFunction(opts.update)) {\n\t\t\t\t\topts._update_ = opts.update;\n\t\t\t\t\tdelete opts.update;\n\t\t\t\t} else {opts._update_ = false;}\n\t\t\t\topts.start = function(ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"0\");\n\t\t\t\t\t$(\"td\",ui.item).each(function(i){\n\t\t\t\t\t\tthis.style.width = $t.grid.cols[i].style.width;\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\tvar subgid = $(ui.item).attr(\"id\");\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._start_) {\n\t\t\t\t\t\topts._start_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\topts.update = function (ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"\");\n\t\t\t\t\tif($t.p.rownumbers === true) {\n\t\t\t\t\t\t$(\"td.jqgrid-rownum\",$t.rows).each(function( i ){\n\t\t\t\t\t\t\t$(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) );\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._update_) {\n\t\t\t\t\t\topts._update_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\t$(\"tbody:first\",$t).sortable(opts);\n\t\t\t\t$(\"tbody:first > .jqgrow\",$t).disableSelection();\n\t\t\t}\n\t\t});\n\t},\n\tgridDnD : function(opts) {\n\t\treturn this.each(function(){\n\t\tvar $t = this, i, cn;\n\t\tif(!$t.grid) { return; }\n\t\t// Currently we disable a treeGrid drag and drop\n\t\tif($t.p.treeGrid) { return; }\n\t\tif(!$.fn.draggable || !$.fn.droppable) { return; }\n\t\tfunction updateDnD ()\n\t\t{\n\t\t\tvar datadnd = $.data($t,\"dnd\");\n\t\t\t$(\"tr.jqgrow:not(.ui-draggable)\",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);\n\t\t}\n\t\tvar appender = \"<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>\";\n\t\tif($(\"#jqgrid_dnd\")[0] === undefined) {\n\t\t\t$('body').append(appender);\n\t\t}\n\n\t\tif(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) {\n\t\t\tupdateDnD();\n\t\t\treturn;\n\t\t}\n\t\tvar tid;\n\t\topts = $.extend({\n\t\t\t\"drag\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\tstart : function (ev, ui) {\n\t\t\t\t\t\tvar i, subgid;\n\t\t\t\t\t\t// if we are in subgrid mode try to collapse the node\n\t\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\t\tsubgid = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// hack\n\t\t\t\t\t\t// drag and drop does not insert tr in table, when the table has no rows\n\t\t\t\t\t\t// we try to insert new empty row on the target(s)\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\tif($($.data($t,\"dnd\").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){\n\t\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.addClass(\"ui-state-highlight\");\n\t\t\t\t\t\t$(\"td\",ui.helper).each(function(i) {\n\t\t\t\t\t\t\tthis.style.width = $t.grid.headers[i].width+\"px\";\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }\n\t\t\t\t\t},\n\t\t\t\t\tstop :function(ev,ui) {\n\t\t\t\t\t\tvar i, ids;\n\t\t\t\t\t\tif(ui.helper.dropped && !opts.dragcopy) {\n\t\t\t\t\t\t\tids = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\tif(ids === undefined) { ids = $(this).attr(\"id\"); }\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData',ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if we have a empty row inserted from start event try to delete it\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('delRowData','jqg_empty_row');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }\n\t\t\t\t\t}\n\t\t\t\t},opts.drag_opts || {});\n\t\t\t},\n\t\t\t\"drop\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\taccept: function(d) {\n\t\t\t\t\t\tif (!$(d).hasClass('jqgrow')) { return d;}\n\t\t\t\t\t\ttid = $(d).closest(\"table.ui-jqgrid-btable\");\n\t\t\t\t\t\tif(tid.length > 0 && $.data(tid[0],\"dnd\") !== undefined) {\n\t\t\t\t\t\t\tvar cn = $.data(tid[0],\"dnd\").connectWith;\n\t\t\t\t\t\t\treturn $.inArray('#'+$.jgrid.jqID(this.id),cn) !== -1 ? true : false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t},\n\t\t\t\t\tdrop: function(ev, ui) {\n\t\t\t\t\t\tif (!$(ui.draggable).hasClass('jqgrow')) { return; }\n\t\t\t\t\t\tvar accept = $(ui.draggable).attr(\"id\");\n\t\t\t\t\t\tvar getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept);\n\t\t\t\t\t\tif(!opts.dropbyname) {\n\t\t\t\t\t\t\tvar j =0, tmpdata = {}, nm, key;\n\t\t\t\t\t\t\tvar dropmodel = $(\"#\"+$.jgrid.jqID(this.id)).jqGrid('getGridParam','colModel');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tfor (key in getdata) {\n\t\t\t\t\t\t\t\t\tif (getdata.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tnm = dropmodel[j].name;\n\t\t\t\t\t\t\t\t\tif( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' )) {\n\t\t\t\t\t\t\t\t\t\tif(getdata.hasOwnProperty(key) && dropmodel[j]) {\n\t\t\t\t\t\t\t\t\t\t\ttmpdata[nm] = getdata[key];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgetdata = tmpdata;\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.dropped = true;\n\t\t\t\t\t\tif($.data(tid[0],\"dnd\").beforedrop && $.isFunction($.data(tid[0],\"dnd\").beforedrop) ) {\n\t\t\t\t\t\t\t//parameters to this callback - event, element, data to be inserted, sender, reciever\n\t\t\t\t\t\t\t// should return object which will be inserted into the reciever\n\t\t\t\t\t\t\tvar datatoinsert = $.data(tid[0],\"dnd\").beforedrop.call(this,ev,ui,getdata,$(tid[0]),$(this));\n\t\t\t\t\t\t\tif (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === \"object\") { getdata = datatoinsert; }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ui.helper.dropped) {\n\t\t\t\t\t\t\tvar grid;\n\t\t\t\t\t\t\tif(opts.autoid) {\n\t\t\t\t\t\t\t\tif($.isFunction(opts.autoid)) {\n\t\t\t\t\t\t\t\t\tgrid = opts.autoid.call(this,getdata);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid = Math.ceil(Math.random()*1000);\n\t\t\t\t\t\t\t\t\tgrid = opts.autoidprefix+grid;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// NULL is interpreted as undefined while null as object\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id)).jqGrid('addRowData',grid,getdata,opts.droppos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }\n\t\t\t\t\t}}, opts.drop_opts || {});\n\t\t\t},\n\t\t\t\"onstart\" : null,\n\t\t\t\"onstop\" : null,\n\t\t\t\"beforedrop\": null,\n\t\t\t\"ondrop\" : null,\n\t\t\t\"drop_opts\" : {\n\t\t\t\t\"activeClass\": \"ui-state-active\",\n\t\t\t\t\"hoverClass\": \"ui-state-hover\"\n\t\t\t},\n\t\t\t\"drag_opts\" : {\n\t\t\t\t\"revert\": \"invalid\",\n\t\t\t\t\"helper\": \"clone\",\n\t\t\t\t\"cursor\": \"move\",\n\t\t\t\t\"appendTo\" : \"#jqgrid_dnd\",\n\t\t\t\t\"zIndex\": 5000\n\t\t\t},\n\t\t\t\"dragcopy\": false,\n\t\t\t\"dropbyname\" : false,\n\t\t\t\"droppos\" : \"first\",\n\t\t\t\"autoid\" : true,\n\t\t\t\"autoidprefix\" : \"dnd_\"\n\t\t}, opts || {});\n\t\t\n\t\tif(!opts.connectWith) { return; }\n\t\topts.connectWith = opts.connectWith.split(\",\");\n\t\topts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});\n\t\t$.data($t,\"dnd\",opts);\n\t\t\n\t\tif($t.p.reccount !== 0 && !$t.p.jqgdnd) {\n\t\t\tupdateDnD();\n\t\t}\n\t\t$t.p.jqgdnd = true;\n\t\tfor (i=0;i<opts.connectWith.length;i++){\n\t\t\tcn =opts.connectWith[i];\n\t\t\t$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);\n\t\t}\n\t\t});\n\t},\n\tgridResize : function(opts) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, gID = $.jgrid.jqID($t.p.id), req;\n\t\t\tif(!$t.grid || !$.fn.resizable) { return; }\n\t\t\topts = $.extend({}, opts || {});\n\t\t\tif(opts.alsoResize ) {\n\t\t\t\topts._alsoResize_ = opts.alsoResize;\n\t\t\t\tdelete opts.alsoResize;\n\t\t\t} else {\n\t\t\t\topts._alsoResize_ = false;\n\t\t\t}\n\t\t\tif(opts.stop && $.isFunction(opts.stop)) {\n\t\t\t\topts._stop_ = opts.stop;\n\t\t\t\tdelete opts.stop;\n\t\t\t} else {\n\t\t\t\topts._stop_ = false;\n\t\t\t}\n\t\t\topts.stop = function (ev, ui) {\n\t\t\t\t$($t).jqGrid('setGridParam',{height:$(\"#gview_\"+gID+\" .ui-jqgrid-bdiv\").height()});\n\t\t\t\t$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);\n\t\t\t\tif(opts._stop_) { opts._stop_.call($t,ev,ui); }\n\t\t\t\tif($t.p.caption) {\n\t\t\t\t\t$(\"#gbox_\"+ gID).css({ 'height': 'auto' });\n\t\t\t\t}\n\t\t\t\tif($t.p.frozenColumns) {\n\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\treq = setTimeout(function(){\n\t\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t\tif(opts._alsoResize_) {\n\t\t\t\tvar optstest = \"{\\'#gview_\"+gID+\" .ui-jqgrid-bdiv\\':true,'\" +opts._alsoResize_+\"':true}\";\n\t\t\t\topts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this\n\t\t\t} else {\n\t\t\t\topts.alsoResize = $(\".ui-jqgrid-bdiv\",\"#gview_\"+gID);\n\t\t\t}\n\t\t\tdelete opts._alsoResize_;\n\t\t\t$(\"#gbox_\"+gID).resizable(opts);\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.pivot.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.grouping\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n// To optimize the search we need custom array filter\n// This code is taken from\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter\n//module begin\nfunction _pivotfilter (fn, context) {\n\t/*jshint validthis: true */\n\tvar i,\n\t\tvalue,\n\t\tresult = [],\n\t\tlength;\n\t\t\n\tif (!this || typeof fn !== 'function' || (fn instanceof RegExp)) {\n\t\tthrow new TypeError();\n\t}\n\n\tlength = this.length;\n\n\tfor (i = 0; i < length; i++) {\n\t\tif (this.hasOwnProperty(i)) {\n\t\t\tvalue = this[i];\n\t\t\tif (fn.call(context, value, i, this)) {\n\t\t\t\tresult.push(value);\n\t\t\t\t// We need break in order to cancel loop \n\t\t\t\t// in case the row is found\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n}\n$.assocArraySize = function(obj) {\n    // http://stackoverflow.com/a/6700/11236\n    var size = 0, key;\n    for (key in obj) {\n        if (obj.hasOwnProperty(key)) {\n        \tsize++;\n        }\n    }\n    return size;\n};\n\n$.jgrid.extend({\n\tpivotSetup : function( data, options ){\n\t\t// data should come in json format\n\t\t// The function return the new colModel and the transformed data\n\t\t// again with group setup options which then will be passed to the grid\n\t\tvar columns =[],\n\t\tpivotrows =[],\n\t\tsummaries = [],\n\t\tmember=[],\n\t\tlabels=[],\n\t\tgroupOptions = {\n\t\t\tgrouping : true,\n\t\t\tgroupingView :  {\n\t\t\t\tgroupField : [],\n\t\t\t\tgroupSummary: [],\n\t\t\t\tgroupSummaryPos:[]\n\t\t\t}\n\t\t},\n\t\theaders = [],\n\t\to = $.extend ( {\n\t\t\trowTotals : false,\n\t\t\trowTotalsText : 'Total',\n\t\t\t// summary columns\n\t\t\tcolTotals : false,\n\t\t\tgroupSummary : true,\n\t\t\tgroupSummaryPos :  'header',\n\t\t\tfrozenStaticCols : false\n\t\t}, options || {});\n\t\tthis.each(function(){\n\n\t\t\tvar \n\t\t\t\trow,\n\t\t\t\trowindex,\n\t\t\t\ti,\n\t\t\t\t\n\t\t\t\trowlen = data.length,\n\t\t\t\txlen, ylen, aggrlen,\n\t\t\t\ttmp,\n\t\t\t\tnewObj,\n\t\t\t\tr=0;\n\t\t\t// utility funcs\n\t\t\t/* \n\t\t\t * Filter the data to a given criteria. Return the firt occurance\n\t\t\t */\n\t\t\tfunction find(ar, fun, extra) {\n\t\t\t\tvar res;\n\t\t\t\tres = _pivotfilter.call(ar, fun, extra);\n\t\t\t\treturn res.length > 0 ? res[0] : null;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Check if the grouped row column exist (See find)\n\t\t\t * If the row is not find in pivot rows retun null,\n\t\t\t * otherviese the column\n\t\t\t */\n\t\t\tfunction findGroup(item, index) {\n\t\t\t\t/*jshint validthis: true */\n\t\t\t\tvar j = 0, ret = true, i;\n\t\t\t\tfor(i in item) {\n\t\t\t\t\tif( item.hasOwnProperty(i) ) {\n\t\t\t\t\t\tif(item[i] != this[j]) {\n\t\t\t\t\t\t\tret =  false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t\tif(j>=this.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret) {\n\t\t\t\t\trowindex =  index;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Perform calculations of the pivot values.\n\t\t\t */\n\t\t\tfunction calculation(oper, v, field, rc, _cnt)  {\n\t\t\t\tvar ret;\n\t\t\t\tif( $.isFunction(oper)) {\n\t\t\t\t\tret = oper.call(this, v, field, rc);\n\t\t\t\t} else {\n\t\t\t\t\tswitch (oper) {\n\t\t\t\t\t\tcase  \"sum\" : \n\t\t\t\t\t\t\tret = parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"count\" :\n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tv=0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\t\t\tret = v+1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"min\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret =Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"max\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"avg\" : //avg grouping\n\t\t\t\t\t\t\tret = (parseFloat(v||0) * (_cnt -1) + parseFloat(rc[field]||0) ) /_cnt;\n\t\t\t\t\t\t\tbreak;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * The function agragates the values of the pivot grid.\n\t\t\t * Return the current row with pivot summary values\n\t\t\t */\n\t\t\tfunction agregateFunc ( row, aggr, value, curr) {\n\t\t\t\t// default is sum\n\t\t\t\tvar arrln = aggr.length, i, label, j, jv, mainval=\"\",swapvals=[], swapstr, _cntavg = 1, lbl;\n\t\t\t\tif($.isArray(value)) {\n\t\t\t\t\tjv = value.length;\n\t\t\t\t\tswapvals = value;\n\t\t\t\t} else {\n\t\t\t\t\tjv = 1;\n\t\t\t\t\tswapvals[0]=value;\n\t\t\t\t}\n\t\t\t\tmember = [];\n\t\t\t\tlabels = [];\n\t\t\t\tmember.root = 0;\n\t\t\t\tfor(j=0;j<jv;j++) {\n\t\t\t\t\tvar  tmpmember = [], vl;\n\t\t\t\t\tfor(i=0; i < arrln; i++) {\n\t\t\t\t\t\tswapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust';\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif(value == null) {\n\t\t\t\t\t\t\tlabel = $.trim(aggr[i].member)+\"_\" + swapstr;\n\t\t\t\t\t\t\tvl = label;\n\t\t\t\t\t\t\tswapvals[0]= aggr[i].label || (swapstr + \" \" +$.trim(aggr[i].member));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvl = value[j].replace(/\\s+/g, '');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tlabel = (arrln === 1 ? mainval + vl : mainval + vl + \"_\" + swapstr + \"_\" + String(i));\n\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\tswapvals[j] = value[j];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if(j<=1 && vl !==  '_r_Totals' && mainval === \"\") { // this does not fix full the problem\n\t\t\t\t\t\t\t//mainval = vl;\n\t\t\t\t\t\t//}\n\t\t\t\t\t\tlabel = !isNaN(parseInt(label,10)) ? label + \" \" : label;\n\t\t\t\t\t\tif(aggr[i].aggregator === 'avg') {\n\t\t\t\t\t\t\tlbl = rowindex === -1 ? pivotrows.length+\"_\"+label : rowindex+\"_\"+label;\n\t\t\t\t\t\t\tif(!_avg[lbl]) {\n\t\t\t\t\t\t\t\t_avg[lbl] = 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_avg[lbl]++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_cntavg = _avg[lbl];\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\tcurr[label] =  tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg);\n\t\t\t\t\t}\n\t\t\t\t\tmainval += (value && value[j] != null) ? value[j].replace(/\\s+/g, '') : ''\n\t\t\t\t\t//vl = !isNaN(parseInt(vl,10)) ? vl + \" \" : vl;\n\t\t\t\t\tmember[label] = tmpmember;\n\t\t\t\t\tlabels[label] = swapvals[j];\n\t\t\t\t}\n\t\t\t\treturn curr;\n\t\t\t}\n\t\t\t// Making the row totals without to add in yDimension\n\t\t\tif(o.rowTotals && o.yDimension.length > 0) {\n\t\t\t\tvar dn = o.yDimension[0].dataName;\n\t\t\t\to.yDimension.splice(0,0,{dataName:dn});\n\t\t\t\to.yDimension[0].converter =  function(){ return '_r_Totals'; };\n\t\t\t}\n\t\t\t// build initial columns (colModel) from xDimension\n\t\t\txlen = $.isArray(o.xDimension) ? o.xDimension.length : 0;\n\t\t\tylen = o.yDimension.length;\n\t\t\taggrlen  = $.isArray(o.aggregates) ? o.aggregates.length : 0;\n\t\t\tif(xlen === 0 || aggrlen === 0) {\n\t\t\t\tthrow(\"xDimension or aggregates optiona are not set!\");\n\t\t\t}\n\t\t\tvar colc;\n\t\t\tfor(i = 0; i< xlen; i++) {\n\t\t\t\tcolc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols};\n\t\t\t\tif(o.xDimension[i].isGroupField == null) {\n\t\t\t\t\to.xDimension[i].isGroupField =  true;\n\t\t\t\t}\n\t\t\t\tcolc = $.extend(true, colc, o.xDimension[i]);\n\t\t\t\tcolumns.push( colc );\n\t\t\t}\n\t\t\tvar groupfields = xlen - 1, tree={}, _avg=[];\n\t\t\t//tree = { text: 'root', leaf: false, children: [] };\n\t\t\t//loop over alll the source data\n\t\t\twhile( r < rowlen ) {\n\t\t\t\trow = data[r];\n\t\t\t\tvar xValue = [];\n\t\t\t\tvar yValue = []; \n\t\t\t\ttmp = {};\n\t\t\t\ti = 0;\n\t\t\t\t// build the data from xDimension\n\t\t\t\tdo {\n\t\t\t\t\txValue[i]  = $.trim(row[o.xDimension[i].dataName]);\n\t\t\t\t\ttmp[o.xDimension[i].dataName] = xValue[i];\n\t\t\t\t\ti++;\n\t\t\t\t} while( i < xlen );\n\t\t\t\t\n\t\t\t\tvar k = 0;\n\t\t\t\trowindex = -1;\n\t\t\t\t// check to see if the row is in our new pivotrow set\n\t\t\t\tnewObj = find(pivotrows, findGroup, xValue);\n\t\t\t\tif(!newObj) {\n\t\t\t\t\t// if the row is not in our set\n\t\t\t\t\tk = 0;\n\t\t\t\t\t// if yDimension is set\n\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t// build the cols set in yDimension\n\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t// Check to see if we have user defined conditions\n\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// make the colums based on aggregates definition \n\t\t\t\t\t\t// and return the members for late calculation\n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, yValue, tmp );\n\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t// if not set use direct the aggregates \n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, null, tmp );\n\t\t\t\t\t}\n\t\t\t\t\t// add the result in pivot rows\n\t\t\t\t\tpivotrows.push( tmp );\n\t\t\t\t} else {\n\t\t\t\t\t// the pivot exists\n\t\t\t\t\tif( rowindex >= 0) {\n\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t// make the recalculations \n\t\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, yValue, newObj );\n\t\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, null, newObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// update the row\n\t\t\t\t\t\tpivotrows[rowindex] = newObj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar kj=0, current = null,existing = null, kk;\n\t\t\t\t// Build a JSON tree from the member (see aggregateFunc) \n\t\t\t\t// to make later the columns \n\t\t\t\t// \n\t\t\t\tfor (kk in member) {\n\t\t\t\t\tif(member.hasOwnProperty( kk )) {\n\t\t\t\t\t\tif(kj === 0) {\n\t\t\t\t\t\t\tif (!tree.children||tree.children === undefined){\n\t\t\t\t\t\t\t\ttree = { text: kk, level : 0, children: [], label: kk  };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurrent = tree.children;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\texisting = null;\n\t\t\t\t\t\t\tfor (i=0; i < current.length; i++) {\n\t\t\t\t\t\t\t\tif (current[i].text === kk) {\n\t\t\t\t\t\t\t\t//current[i].fields=member[kk];\n\t\t\t\t\t\t\t\t\texisting = current[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (existing) {\n\t\t\t\t\t\t\t\tcurrent = existing.children;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrent.push({ children: [], text: kk, level: kj,  fields: member[kk], label: labels[kk] });\n\t\t\t\t\t\t\t\tcurrent = current[current.length - 1].children;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tkj++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tr++;\n\t\t\t}\n\t\t\t_avg = null; // free mem\n\t\t\tvar  lastval=[], initColLen = columns.length, swaplen = initColLen;\n\t\t\tif(ylen>0) {\n\t\t\t\theaders[ylen-1] = {\tuseColSpanStyle: false,\tgroupHeaders: []};\n\t\t\t}\n\t\t\t/*\n\t\t\t * Recursive function which uses the tree to build the \n\t\t\t * columns from the pivot values and set the group Headers\n\t\t\t */\n\t\t\tfunction list(items) {\n\t\t\t\tvar l, j, key, k, col;\n\t\t\t\tfor (key in items) {\t // iterate\n\t\t\t\t\tif (items.hasOwnProperty(key)) {\n\t\t\t\t\t// write amount of spaces according to level\n\t\t\t\t\t// and write name and newline\n\t\t\t\t\t\tif(typeof items[key] !== \"object\") {\n\t\t\t\t\t\t\t// If not a object build the header of the appropriate level\n\t\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\t\tif(lastval[items.level] === undefined) {\n\t\t\t\t\t\t\t\t\tlastval[items.level] ='';\n\t\t\t\t\t\t\t\t\tif(items.level>0 && items.text.indexOf('_r_Totals') === -1) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1] = {\n\t\t\t\t\t\t\t\t\t\t\tuseColSpanStyle: false,\n\t\t\t\t\t\t\t\t\t\t\tgroupHeaders: []\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) {\n\t\t\t\t\t\t\t\t\tif(items.level>0) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders.push({\n\t\t\t\t\t\t\t\t\t\t\ttitleText: items.label,\n\t\t\t\t\t\t\t\t\t\t\tnumberOfColumns : 0\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tvar collen = headers[items.level-1].groupHeaders.length-1,\n\t\t\t\t\t\t\t\t\t\tcolpos = collen === 0 ? swaplen : initColLen;//+aggrlen;\n\t\t\t\t\t\t\t\t\t\tif(items.level-1=== (o.rowTotals ? 1 : 0)) {\n\t\t\t\t\t\t\t\t\t\t\tif(collen>0) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar l1=0;\n\t\t\t\t\t\t\t\t\t\t\t\tfor(var kk=0; kk<collen; kk++) { \n\t\t\t\t\t\t\t\t\t\t\t\t\tl1 += headers[items.level-1].groupHeaders[kk].numberOfColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif(l1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolpos = l1  + xlen;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif(columns[colpos]) {\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name;\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tinitColLen = columns.length;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastval[items.level] = items.text;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// This is in case when the member contain more than one summary item\n\t\t\t\t\t\t\tif(items.level === ylen  && key==='level' && ylen >0) {\n\t\t\t\t\t\t\t\tif( aggrlen > 1){\n\t\t\t\t\t\t\t\t\tvar ll=1;\n\t\t\t\t\t\t\t\t\tfor( l in items.fields) {\n\t\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty(l)) {\n\t\t\t\t\t\t\t\t\t\t\tif(ll===1) {\n\t\t\t\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tll++;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\theaders.splice(ylen-1,1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if object, call recursively\n\t\t\t\t\t\tif (items[key] != null && typeof items[key] === \"object\") {\n\t\t\t\t\t\t\tlist(items[key]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Finally build the columns\n\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\tif( items.level > 0 &&  (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){\n\t\t\t\t\t\t\t\tj=0;\n\t\t\t\t\t\t\t\tfor(l in items.fields) {\n\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty( l ) ) {\n\t\t\t\t\t\t\t\t\t\tcol = {};\n\t\t\t\t\t\t\t\t\t\tfor(k in o.aggregates[j]) {\n\t\t\t\t\t\t\t\t\t\t\tif(o.aggregates[j].hasOwnProperty(k)) {\n\t\t\t\t\t\t\t\t\t\t\t\tswitch( k ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'member':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'label':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'aggregator':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcol[k] = o.aggregates[j][k];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\tif(aggrlen > 1) {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = l;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = o.aggregates[j].label || items.label;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = items.text;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcolumns.push (col);\n\t\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlist( tree );\n\t\t\tvar nm;\n\t\t\t// loop again trougth the pivot rows in order to build grand total \n\t\t\tif(o.colTotals) {\n\t\t\t\tvar plen = pivotrows.length;\n\t\t\t\twhile(plen--) {\n\t\t\t\t\tfor(i=xlen;i<columns.length;i++) {\n\t\t\t\t\t\tnm = columns[i].name;\n\t\t\t\t\t\tif(!summaries[nm]) {\n\t\t\t\t\t\t\tsummaries[nm] = parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsummaries[nm] += parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// based on xDimension  levels build grouping \n\t\t\tif( groupfields > 0) {\n\t\t\t\tfor(i=0;i<groupfields;i++) {\n\t\t\t\t\tif(columns[i].isGroupField) {\n\t\t\t\t\t\tgroupOptions.groupingView.groupField.push(columns[i].name);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummary.push(o.groupSummary);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// no grouping is needed\n\t\t\t\tgroupOptions.grouping = false;\n\t\t\t}\n\t\t\tgroupOptions.sortname = columns[groupfields].name;\n\t\t\tgroupOptions.groupingView.hideFirstGroupCol = true;\n\t\t});\n\t\t// return the final result.\n\t\treturn { \"colModel\" : columns, \"rows\": pivotrows, \"groupOptions\" : groupOptions, \"groupHeaders\" :  headers, summary : summaries };\n\t},\n\tjqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\n\t\t\tfunction pivot( data) {\n\t\t\t\tif(!$.isArray(data)) {\n\t\t\t\t\tthrow \"data provides is not an array\";\n\t\t\t\t}\n\t\t\t\tvar pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt),\n\t\t\t\tfooterrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false,\n\t\t\t\tquery= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len;\n\t\t\t\tif(pivotOpt.ignoreCase) {\n\t\t\t\t\tquery = query.ignoreCase();\n\t\t\t\t}\n\t\t\t\tfor(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) {\n\t\t\t\t\tso = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc';\n\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st);\n\t\t\t\t}\n\t\t\t\tlen = pivotOpt.xDimension.length;\n\t\t\t\tif(gridOpt.sortname) { // should be a part of xDimension\n\t\t\t\t\tso = gridOpt.sortorder ? gridOpt.sortorder : 'asc';\n\t\t\t\t\tst = 'text';\n\t\t\t\t\tfor( i=0; i< len; i++) {\n\t\t\t\t\t\tif(pivotOpt.xDimension[i].dataName === gridOpt.sortname) {\n\t\t\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tquery.orderBy(gridOpt.sortname, so, st, '', st);\n\t\t\t\t} else {\n\t\t\t\t\tif(pivotGrid.groupOptions.sortname && len) {\n\t\t\t\t\t\tso = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc';\n\t\t\t\t\t\tst = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text';\n\t\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st);\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tjQuery($t).jqGrid($.extend(true, {\n\t\t\t\t\tdatastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}),\n\t\t\t\t\tdatatype: \"jsonstring\",\n\t\t\t\t\tfooterrow : footerrow,\n\t\t\t\t\tuserDataOnFooter: footerrow,\n\t\t\t\t\tcolModel: pivotGrid.colModel,\n\t\t\t\t\tviewrecords: true,\n\t\t\t\t\tsortname: pivotOpt.xDimension[0].dataName // ?????\n\t\t\t\t}, pivotGrid.groupOptions, gridOpt || {}));\n\t\t\t\tvar gHead = pivotGrid.groupHeaders;\n\t\t\t\tif(gHead.length) {\n\t\t\t\t\tfor( i = 0;i < gHead.length ; i++) {\n\t\t\t\t\t\tif(gHead[i] && gHead[i].groupHeaders.length) {\n\t\t\t\t\t\t\tjQuery($t).jqGrid('setGroupHeaders',gHead[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(pivotOpt.frozenStaticCols) {\n\t\t\t\t\tjQuery($t).jqGrid(\"setFrozenColumns\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(typeof data === \"string\") {\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl : data,\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tsuccess : function(response) {\n\t\t\t\t\t\tpivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') );\n\t\t\t\t\t}\n\t\t\t\t}, ajaxOpt || {}) );\n\t\t\t} else {\n\t\t\t\tpivot( data );\n\t\t\t}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.subgrid.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.extend({\nsetSubGrid : function () {\n\treturn this.each(function (){\n\t\tvar $t = this, cm, i,\n\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid,\n\t\tsuboptions = {\n\t\t\tplusicon : classes.icon_plus,\n\t\t\tminusicon : classes.icon_minus,\n\t\t\topenicon:  classes.icon_open,\n\t\t\texpandOnLoad:  false,\n\t\t\tdelayOnLoad : 50,\n\t\t\tselectOnExpand : false,\n\t\t\tselectOnCollapse : false,\n\t\t\treloadOnExpand : true\n\t\t};\n\t\t$t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {});\n\t\t$t.p.colNames.unshift(\"\");\n\t\t$t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});\n\t\tcm = $t.p.subGridModel;\n\t\tif(cm[0]) {\n\t\t\tcm[0].align = $.extend([],cm[0].align || []);\n\t\t\tfor(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}\n\t\t}\n\t});\n},\naddSubGridCell :function (pos,iRow) {\n\tvar prp='', ic, sid, icb ;\n\tthis.each(function(){\n\t\tprp = this.formatCol(pos,iRow);\n\t\tsid= this.p.id;\n\t\tic = this.p.subGridOptions.plusicon;\n\t\ticb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common;\n\t});\n\treturn \"<td role=\\\"gridcell\\\" aria-describedby=\\\"\"+sid+\"_subgrid\\\" class=\\\"ui-sgcollapsed sgcollapsed\\\" \"+prp+\"><a style='cursor:pointer;' class='ui-sghref'><span class='\" + icb.icon_base +\" \"+ic+\"'></span></a></td>\";\n},\naddSubGrid : function( pos, sind ) {\n\treturn this.each(function(){\n\t\tvar ts = this;\n\t\tif (!ts.grid ) { return; }\n\t\tvar base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base,\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\t\t//-------------------------\n\t\tvar subGridCell = function(trdiv,cell,pos)\n\t\t{\n\t\t\tvar tddiv = $(\"<td align='\"+ts.p.subGridModel[0].align[pos]+\"'></td>\").html(cell);\n\t\t\t$(trdiv).append(tddiv);\n\t\t};\n\t\tvar subGridXml = function(sjxml, sbid){\n\t\t\tvar tddiv, i,  sgmap,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox+\" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.xmlReader.subgrid;\n\t\t\t\t$(sgmap.root+\" \"+sgmap.row, sjxml).each( function(){\n\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t$(sgmap.cell,this).each( function(i) {\n\t\t\t\t\t\t\tsubGridCell(trdiv, $(this).text() || '&#160;',i);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\tif (f) {\n\t\t\t\t\t\t\tfor (i=0;i<f.length;i++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, $(f[i],this).text() || '&#160;',i);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar subGridJson = function(sjxml, sbid){\n\t\t\tvar tddiv,result,i,cur, sgmap,j,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox + \" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.jsonReader.subgrid;\n\t\t\t\tresult = $.jgrid.getAccessor(sjxml, sgmap.root);\n\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\tfor (i=0;i<result.length;i++) {\n\t\t\t\t\t\tcur = result[i];\n\t\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t\tif(sgmap.cell) { cur=cur[sgmap.cell]; }\n\t\t\t\t\t\t\tfor (j=0;j<cur.length;j++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[j] || '&#160;',j);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\t\tif(f.length) {\n\t\t\t\t\t\t\t\tfor (j=0;j<f.length;j++) {\n\t\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[f[j]] || '&#160;',j);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar populatesubgrid = function( rd )\n\t\t{\n\t\t\tvar sid,dp, i, j;\n\t\t\tsid = $(rd).attr(\"id\");\n\t\t\tdp = {nd_: (new Date().getTime())};\n\t\t\tdp[ts.p.prmNames.subgridid]=sid;\n\t\t\tif(!ts.p.subGridModel[0]) { return false; }\n\t\t\tif(ts.p.subGridModel[0].params) {\n\t\t\t\tfor(j=0; j < ts.p.subGridModel[0].params.length; j++) {\n\t\t\t\t\tfor(i=0; i<ts.p.colModel.length; i++) {\n\t\t\t\t\t\tif(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) {\n\t\t\t\t\t\t\tdp[ts.p.colModel[i].name]= $(\"td:eq(\"+i+\")\",rd).text().replace(/\\&#160\\;/ig,'');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tts.grid.hDiv.loading = true;\n\t\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).show();\n\t\t\t\tif(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }\n\t\t\t\tif($.isFunction(ts.p.subgridtype)) {\n\t\t\t\t\tts.p.subgridtype.call(ts, dp);\n\t\t\t\t} else {\n\t\t\t\t\tts.p.subgridtype = ts.p.subgridtype.toLowerCase();\n\t\t\t\t}\n\t\t\t\tswitch(ts.p.subgridtype) {\n\t\t\t\t\tcase \"xml\":\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\turl: $.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl,\n\t\t\t\t\t\tdataType:ts.p.subgridtype,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp,\n\t\t\t\t\t\tcomplete: function(sxml) {\n\t\t\t\t\t\t\tif(ts.p.subgridtype === \"xml\") {\n\t\t\t\t\t\t\t\tsubGridXml(sxml.responseXML, sid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsubGridJson($.jgrid.parse(sxml.responseText),sid);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsxml=null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\tvar _id, pID,atd, nhc=0, bfsc, $r;\n\t\t$.each(ts.p.colModel,function(){\n\t\t\tif(this.hidden === true || this.name === 'rn' || this.name === 'cb') {\n\t\t\t\tnhc++;\n\t\t\t}\n\t\t});\n\t\tvar len = ts.rows.length, i=1,hsret, ishsg = $.isFunction(ts.p.isHasSubGrid);\n\t\tif( sind !== undefined && sind > 0) {\n\t\t\ti = sind;\n\t\t\tlen = sind+1;\n\t\t}\n\t\twhile(i < len) {\n\t\t\tif($(ts.rows[i]).hasClass('jqgrow')) {\n\t\t\t\tif(ts.p.scroll) {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).off('click');\n\t\t\t\t}\n\t\t\t\thsret = null;\n\t\t\t\tif(ishsg) {\n\t\t\t\t\tvar hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id);\n\t\t\t\t}\n\t\t\t\tif(hsret === false) {\n\t\t\t\t\tts.rows[i].cells[pos].innerHTML = \"\";\n\t\t\t\t} else {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).on('click', function() {\n\t\t\t\t\t\tvar tr = $(this).parent(\"tr\")[0];\n\t\t\t\t\t\tpID = ts.p.id;\n\t\t\t\t\t\t_id = tr.id;\n\t\t\t\t\t\t$r = $(\"#\" + pID + \"_\" + _id + \"_expandedContent\");\n\t\t\t\t\t\tif($(this).hasClass(\"sgcollapsed\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridBeforeExpand\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif(bfsc && $.isFunction(ts.p.subGridBeforeExpand)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridBeforeExpand.call(ts, pID+\"_\"+_id,_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc === false) {return false;}\n\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) {\n\t\t\t\t\t\t\t\tatd = pos >=1 ? \"<td colspan='\"+pos+\"'>&#160;</td>\":\"\";\n\t\t\t\t\t\t\t\t$(tr).after( \"<tr role='row' id='\" + pID + \"_\" + _id + \"_expandedContent\" + \"' class='ui-subgrid ui-sg-expanded'>\"+atd+\"<td class='\" + common.content +\" subgrid-cell'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.openicon+\"'></span></td><td colspan='\"+parseInt(ts.p.colNames.length-1-nhc,10)+\"' class='\" + common.content +\" subgrid-data'><div id=\"+pID+\"_\"+_id+\" class='tablediv'></div></td></tr>\" );\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridSubGridRowExpanded\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\t\tif( $.isFunction(ts.p.subGridRowExpanded)) {\n\t\t\t\t\t\t\t\t\tts.p.subGridRowExpanded.call(ts, pID+\"_\"+ _id,_id);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpopulatesubgrid(tr);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$r.show().removeClass(\"ui-sg-collapsed\").addClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.minusicon+\"'></span></a>\").removeClass(\"sgcollapsed\").addClass(\"sgexpanded\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnExpand) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if($(this).hasClass(\"sgexpanded\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridRowColapsed\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif( bfsc &&  $.isFunction(ts.p.subGridRowColapsed)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridRowColapsed.call(ts, pID+\"_\"+_id,_id );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc===false) {return false;}\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true) {\n\t\t\t\t\t\t\t\t$r.remove(\".ui-subgrid\");\n\t\t\t\t\t\t\t} else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting\n\t\t\t\t\t\t\t\t$r.hide().addClass(\"ui-sg-collapsed\").removeClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\"+common.icon_base +\" \"+ts.p.subGridOptions.plusicon+\"'></span></a>\").removeClass(\"sgexpanded\").addClass(\"sgcollapsed\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnCollapse) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\tif(ts.p.subGridOptions.expandOnLoad === true) {\n\t\t\t$(ts.rows).filter('.jqgrow').each(function(index,row){\n\t\t\t\t$(row.cells[0]).click();\n\t\t\t});\n\t\t}\n\t\tts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};\n\t\tts.subGridJson = function(json,sid) {subGridJson(json,sid);};\n\t});\n},\nexpandSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ncollapseSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ntoggleSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t} else {\n\t\t\t\t\tsgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\t\tif(sgc) {\n\t\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.treegrid.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.extend({\n\tsetTreeNode : function(i, len){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$t.grid || !$t.p.treeGrid ) {return;}\n\t\t\tvar expCol = $t.p.expColInd,\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\ticon = $t.p.treeReader.icon_field,\n\t\t\tloaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,\n\t\t\tldat, lf,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tindex = i;\n\t\t\t$($t).triggerHandler(\"jqGridBeforeSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.beforeSetTreeNode)) {\n\t\t\t\t$t.p.beforeSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t\twhile(i<len) {\n\t\t\t\tvar ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan;\n\t\t\t\tldat = $t.p.data[dind];\n\t\t\t\t//$t.rows[i].level = ldat[level];\n\t\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t\tif(!ldat[isLeaf]) {\n\t\t\t\t\tlft = parseInt(ldat[$t.p.treeReader.left_field],10);\n\t\t\t\t\trgt = parseInt(ldat[$t.p.treeReader.right_field],10);\n\t\t\t\t\t// NS Model\n\t\t\t\t\t\tldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';\n\t\t\t\t\t\t$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//else {\n\t\t\t\t\t//row.parent_id = rd[$t.p.treeReader.parent_id_field];\n\t\t\t\t//}\n\t\t\t\tcurLevel = parseInt(ldat[level],10);\n\t\t\t\tif($t.p.tree_root_level === 0) {\n\t\t\t\t\tident = curLevel+1;\n\t\t\t\t\tlftpos = curLevel;\n\t\t\t\t} else {\n\t\t\t\t\tident = curLevel;\n\t\t\t\t\tlftpos = curLevel -1;\n\t\t\t\t}\n\t\t\t\ttwrap = \"<div class='tree-wrap tree-wrap-\"+$t.p.direction+\"' style='width:\"+(ident*18)+\"px;'>\";\n\t\t\t\ttwrap += \"<div style='\"+($t.p.direction===\"rtl\" ? \"right:\" : \"left:\")+(lftpos*18)+\"px;' class='\"+common.icon_base+\" \";\n\n\n\t\t\t\tif(ldat[loaded] !== undefined) {\n\t\t\t\t\tif(ldat[loaded]===\"true\" || ldat[loaded]===true) {\n\t\t\t\t\t\tldat[loaded] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tldat[loaded] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ldat[isLeaf] === \"true\" || ldat[isLeaf] === true) {\n\t\t\t\t\ttwrap += ((ldat[icon] !== undefined && ldat[icon] !== \"\") ? ldat[icon] : $t.p.treeIcons.leaf)+\" tree-leaf treeclick\";\n\t\t\t\t\tldat[isLeaf] = true;\n\t\t\t\t\tlf=\"leaf\";\n\t\t\t\t} else {\n\t\t\t\t\tldat[isLeaf] = false;\n\t\t\t\t\tlf=\"\";\n\t\t\t\t}\n\t\t\t\tldat[expanded] = ((ldat[expanded] === \"true\" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined);\n\t\t\t\tif(ldat[expanded] === false) {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.plus+\" tree-plus treeclick'\");\n\t\t\t\t} else {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.minus+\" tree-minus treeclick'\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttwrap += \"></div></div>\";\n\t\t\t\t$($t.rows[i].cells[expCol]).wrapInner(\"<span class='cell-wrapper\"+lf+\"'></span>\").prepend(twrap);\n\n\t\t\t\tif(curLevel !== parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t//var pn = $($t).jqGrid('getNodeParent',ldat);\n\t\t\t\t\t//expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;\n\t\t\t\t\texpan = $($t).jqGrid('isVisibleNode',ldat); // overhead\n\t\t\t\t\tif( !expan ){\n\t\t\t\t\t\t$($t.rows[i]).css(\"display\",\"none\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\tif($t.p.ExpandColClick === true) {\n\t\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridAfterSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.afterSetTreeNode)) {\n\t\t\t\t$t.p.afterSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t});\n\t},\n\tsetTreeGrid : function() {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[],\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid;\n\t\t\tif(!$t.p.treeGrid) {return;}\n\t\t\tif(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}\n\t\t\tif($t.p.loadonce) { $t.p.treedatatype = 'local'; }\n\t\t\t$t.p.subGrid = false;$t.p.altRows =false;\n\t\t\t$t.p.pgbuttons = false;$t.p.pginput = false;\n\t\t\t$t.p.gridview =  true;\n\t\t\tif($t.p.rowTotal === null ) { $t.p.rowNum = 10000; }\n\t\t\t$t.p.multiselect = false;$t.p.rowList = [];\n\t\t\t$t.p.expColInd = 0;\n\t\t\tpico = classes.icon_plus;\n\t\t\tif($t.p.styleUI === 'jQueryUI') {\n\t\t\t\tpico += ($t.p.direction===\"rtl\" ? 'w' : 'e');\n\t\t\t}\n\t\t\t$t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {});\n\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\tleft_field:\"lft\",\n\t\t\t\t\tright_field: \"rgt\",\n\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader);\n\t\t\t} else if($t.p.treeGridModel === 'adjacency') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\t\tparent_id_field: \"parent\",\n\t\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader );\n\t\t\t}\n\t\t\tfor ( key in $t.p.colModel){\n\t\t\t\tif($t.p.colModel.hasOwnProperty(key)) {\n\t\t\t\t\tnm = $t.p.colModel[key].name;\n\t\t\t\t\tif( nm === $t.p.ExpandColumn && !ecol ) {\n\t\t\t\t\t\tecol = true;\n\t\t\t\t\t\t$t.p.expColInd = i;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\t//\n\t\t\t\t\tfor(tkey in $t.p.treeReader) {\n\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) {\n\t\t\t\t\t\t\tdupcols.push(nm);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.treeReader,function(j,n){\n\t\t\t\tif(n && $.inArray(n, dupcols) === -1){\n\t\t\t\t\tif(j==='leaf_field') { $t.p._treeleafpos= i; }\n\t\t\t\ti++;\n\t\t\t\t\t$t.p.colNames.push(n);\n\t\t\t\t\t$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});\n\t\t\t\t}\n\t\t\t});\t\t\t\n\t\t});\n\t},\n\texpandRow: function (record){\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\t//if ($($t).jqGrid(\"isVisibleNode\",record)) {\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeExpandTreeGridRow) ? $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"\");\n\t\t\t\tif(this[expanded]) {\n\t\t\t\t\t$($t).jqGrid(\"expandRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterExpandTreeGridRow)) {\n\t\t\t\t$t.p.afterExpandTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\n\t\t\t//}\n\t\t});\n\t},\n\tcollapseRow : function (record) {\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeCollapseTreeGridRow) ? $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"none\");\n\t\t\t\tif(this[expanded]){\n\t\t\t\t\t$($t).jqGrid(\"collapseRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterCollapseTreeGridRow)) {\n\t\t\t\t$t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\t\t\t\n\t\t});\n\t},\n\t// NS ,adjacency models\n\tgetRootNodes : function(currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, level, parent_id, view;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif( typeof currentview !== 'boolean') {\n\t\t\t\tcurrentview = false;\n\t\t\t}\n\t\t\tif(currentview) {\n\t\t\t\tview = $($t).jqGrid('getRowData', null, true);\n\t\t\t} else {\n\t\t\t\tview = $t.p.data;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tlevel = $t.p.treeReader.level_field;\n\t\t\t\t\t$(view).each(function() {\n\t\t\t\t\t\tif(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tparent_id = $t.p.treeReader.parent_id_field;\n\t\t\t\t\t$(view).each(function(){\n\t\t\t\t\t\tif(this[parent_id] === null || String(this[parent_id]).toLowerCase() === \"null\") {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeDepth : function(rc) {\n\t\tvar ret = null;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar $t = this;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar level = $t.p.treeReader.level_field;\n\t\t\t\t\tret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tret = $($t).jqGrid(\"getNodeAncestors\",rc).length;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetNodeParent : function(rc) {\n\t\tvar result = null;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {\n\t\t\t\t\t\t\tresult = this;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id,\n\t\t\t\t\tind = rc[dtid], pos = $t.p._index[ind];\n\t\t\t\t\twhile(pos--) {\n\t\t\t\t\t\tif($t.p.data[pos][dtid] === $.jgrid.stripPref($t.p.idPrefix, rc[parent_id])) {\n\t\t\t\t\t\t\tresult = $t.p.data[pos];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeChildren : function(rc, currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar i, len = currentview ? this.rows.length : this.p.data.length, row;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && String(row[parent_id]) === $.jgrid.stripPref($t.p.idPrefix, rc[dtid])) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetFullTreeNode : function(rc, expand) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, len,expanded = $t.p.treeReader.expanded_field;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif(expand == null || typeof expand !== 'boolean') {\n\t\t\t\texpand = false;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {\n\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tif(rc) {\n\t\t\t\t\tresult.push(rc);\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\t$(this.p.data).each(function(i){\n\t\t\t\t\t\tlen = result.length;\n\t\t\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\t\t\tif ($.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) === this[parent_id]) {\n\t\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\t\n\t// End NS, adjacency Model\n\tgetNodeAncestors : function(rc, reverse, expanded) {\n\t\tvar ancestors = [];\n\t\tif(reverse === undefined ) {\n\t\t\treverse = false;\n\t\t}\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tif(expanded === undefined ) {\n\t\t\t\texpanded = false;\n\t\t\t} else {\n\t\t\t\texpanded = this.p.treeReader.expanded_field;\n\t\t\t}\n\t\t\tvar parent = $(this).jqGrid(\"getNodeParent\",rc);\n\t\t\twhile (parent) {\n\t\t\t\tif(expanded) {\n\t\t\t\t\ttry{\n\t\t\t\t\t\tparent[expanded] = true;\n\t\t\t\t\t} catch (etn) {}\n\t\t\t\t}\n\t\t\t\tif(reverse) {\n\t\t\t\t\tancestors.unshift(parent);\n\t\t\t\t} else {\n\t\t\t\tancestors.push(parent);\n\t\t\t\t}\n\t\t\t\tparent = $(this).jqGrid(\"getNodeParent\",parent);\t\n\t\t\t}\n\t\t});\n\t\treturn ancestors;\n\t},\n\tisVisibleNode : function(rc) {\n\t\tvar result = true;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar ancestors = $($t).jqGrid(\"getNodeAncestors\",rc),\n\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t$(ancestors).each(function(){\n\t\t\t\tresult = result && this[expanded];\n\t\t\t\tif(!result) {return false;}\n\t\t\t});\n\t\t});\n\t\treturn result;\n\t},\n\tisNodeLoaded : function(rc) {\n\t\tvar result;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar isLeaf = $t.p.treeReader.leaf_field,\n\t\t\tloaded = $t.p.treeReader.loaded;\n\t\t\tif(rc !== undefined ) {\n\t\t\t\tif(rc[loaded] !== undefined) {\n\t\t\t\t\tresult = rc[loaded];\n\t\t\t\t} else if( rc[isLeaf] || $($t).jqGrid(\"getNodeChildren\",rc).length > 0){\n\t\t\t\t\tresult = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tsetLeaf : function (rc, state, collapsed) {\n\t\treturn this.each(function(){\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0],\n\t\t\tisLeaf = this.p.treeReader.leaf_field;\n\t\t\ttry {\n\t\t\t\tvar dr = this.p._index[id];\n\t\t\t\tif(dr != null) {\n\t\t\t\t\tthis.p.data[dr][isLeaf] = state;\n\t\t\t\t}\n\t\t\t} catch(E){}\n\t\t\tif(state === true) {\n\t\t\t\t// set it in data\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus \"+this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.leaf +\" tree-leaf\");\n\t\t\t} else if(state === false) {\n\t\t\t\tvar ico = this.p.treeIcons.minus+\" tree-minus\";\n\t\t\t\tif(collapsed) {\n\t\t\t\t\tico = this.p.treeIcons.plus+\" tree-plus\";\n\t\t\t\t}\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.leaf +\" tree-leaf\").addClass( ico );\n\t\t\t}\t\n\t\t});\n\t},\n\treloadNode: function(rc, reloadcurrent) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar rid = this.p.localReader.id,\n\t\t\tcurrselection  = this.p.selrow;\n\n\t\t\t$(this).jqGrid(\"delChildren\", rc[rid]);\n\n\t\t\tif(reloadcurrent=== undefined) {\n\t\t\t\treloadcurrent = false;\n\t\t\t}\n\t\t\t\n\t\t\tif(!reloadcurrent) {\n\t\t\t\tif(!jQuery._data( this, \"events\" ).jqGridAfterSetTreeNode) {\n\t\t\t\t\t$(this).on(\"jqGridAfterSetTreeNode.reloadNode\", function(){\n\t\t\t\t\t\tvar isLeaf = this.p.treeReader.leaf_field;\n\t\t\t\t\t\tif(this.p.reloadnode ) {\n\t\t\t\t\t\t\tvar rc = this.p.reloadnode,\n\t\t\t\t\t\t\tchld = $(this).jqGrid('getNodeChildren', rc);\n\t\t\t\t\t\t\tif(rc[isLeaf] && chld.length) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, false);\n\t\t\t\t\t\t\t} else if(!rc[isLeaf] && chld.length === 0) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.p.reloadnode = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tisLeaf = this.p.treeReader.leaf_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0];\n\n\t\t\trc[expanded] = true;\n\t\t\tif(!rc[isLeaf]) {\n\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t}\n\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\tthis.p.reloadnode = rc;\n\t\t\tif(reloadcurrent) {\n\t\t\t\tthis.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1;\n\t\t\t\t$(this).jqGrid('delRowData', id);\n\t\t\t}\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t}\n\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\n\t\t\trc[loaded] = true;\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}});\n\t\t\t}\n\t\t});\n\t},\n\texpandNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tif(!rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],\n\t\t\t\tposition = this.p._index[id],\n\t\t\t\tret = $.isFunction(this.p.beforeExpandTreeGridNode) ? this.p.beforeExpandTreeGridNode.call(this, id, rc ) : true;\n\t\t\t\tif( ret === false ) { return; }\n\n\t\t\t\tif( $(this).jqGrid(\"isNodeLoaded\",this.p.data[position]) ) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t} else if (!this.grid.hDiv.loading) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t\t\t}\n\t\t\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\t\trc[loaded] = true;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',parentid:'',n_level:''}}); \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($.isFunction(this.p.afterExpandTreeGridNode)) {\n\t\t\t\t\tthis.p.afterExpandTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tcollapseNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field;\n\t\t\tif(rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\tret = $.isFunction(this.p.beforeCollapseTreeGridNode) ? this.p.beforeCollapseTreeGridNode.call(this, id, rc ) : true,\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0];\n\t\t\t\trc[expanded] = false;\n\t\t\t\tif( ret === false ) { return; }\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus\").addClass(this.p.treeIcons.plus+\" tree-plus\");\n\t\t\t\tif($.isFunction(this.p.afterCollapseTreeGridNode)) {\n\t\t\t\t\tthis.p.afterCollapseTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tSortTree : function( sortname, newDir, st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\trec, records = [], $t = this, query, roots,\n\t\t\trt = $(this).jqGrid(\"getRootNodes\", $t.p.search);\n\t\t\t// Sorting roots\n\t\t\tquery = $.jgrid.from.call(this, rt);\n\t\t\tquery.orderBy(sortname,newDir,st, datefmt);\n\t\t\troots = query.select();\n\n\t\t\t// Sorting children\n\t\t\tfor (i = 0, len = roots.length; i < len; i++) {\n\t\t\t\trec = roots[i];\n\t\t\t\trecords.push(rec);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, rec, sortname, newDir,st, datefmt);\n\t\t\t}\n\t\t\t$.each(records, function(index) {\n\t\t\t\tvar id  = $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr:eq('+index+')').after($('tr#'+$.jgrid.jqID(id),$t.grid.bDiv));\n\t\t\t});\n\t\t\tquery = null;roots=null;records=null;\n\t\t});\n\t},\n\tsearchTree : function ( recs ) {\n\t\tvar i= recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(i) {\n\t\t\t\tlid = this.p.localReader.id;\n\t\t\t\twhile( i-- ) { // reverse \n\t\t\t\t\tancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true);\n\t\t\t\t\t//add the searched item\n\t\t\t\t\tancestors.push(recs[i]);\n\t\t\t\t\ttid = ancestors[0][lid]; \n\t\t\t\t\tif($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing\n\t\t\t\t\t\tfor( j = 0, alen = ancestors.length; j < alen; j++) {\n\t\t\t\t\t\t\t//$.inArray ?!?\n\t\t\t\t\t\t\tvar found = false;\n\t\t\t\t\t\t\tfor( k=0, rlen = result.length; k < rlen; k++) {\n\t\t\t\t\t\t\t\tif(ancestors[j][lid] === result[k][lid]) {\n\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\t\tresult.push(ancestors[j]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\troots.push( tid );\n\t\t\t\t\t\t}\n\t\t\t\t\tresult = result.concat( ancestors );\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tcollectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\tchild, ch, query, children;\n\t\t\tch = $(this).jqGrid(\"getNodeChildren\",rec, this.p.search);\n\t\t\tquery = $.jgrid.from.call(this, ch);\n\t\t\tquery.orderBy(sortname, newDir, st, datefmt);\n\t\t\tchildren = query.select();\n\t\t\tfor (i = 0, len = children.length; i < len; i++) {\n\t\t\t\tchild = children[i];\n\t\t\t\trecords.push(child);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, child, sortname, newDir, st, datefmt); \n\t\t\t}\n\t\t});\n\t},\n\t// experimental \n\tsetTreeRow : function(rowid, data) {\n\t\tvar success=false;\n\t\tthis.each(function(){\n\t\t\tvar t = this;\n\t\t\tif(!t.grid || !t.p.treeGrid) {return;}\n\t\t\tsuccess = $(t).jqGrid(\"setRowData\",rowid,data);\n\t\t});\n\t\treturn success;\n\t},\n\tdelTreeNode : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id, i,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (i=0;i<dr.length;i++){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tdelChildren : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (var i=0;i<dr.length;i++){\n\t\t\t\t\t\tif(dr[i][rid] !== rowid)\n\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\taddChildNode : function( nodeid, parentid, data, expandData ) {\n\t\t//return this.each(function(){\n\t\tvar $t = this[0];\n\t\tif(data) {\n\t\t\t// we suppose tha the id is autoincremet and\n\t\t\tvar expanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\t//icon = $t.p.treeReader.icon_field,\n\t\t\tparent = $t.p.treeReader.parent_id_field,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field,\n\t\t\tloaded = $t.p.treeReader.loaded,\n\t\t\tmethod, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;\n\t\t\tif(expandData===undefined) {expandData = false;}\n\t\t\tif ( nodeid == null ) {\n\t\t\t\ti = $t.p.data.length-1;\n\t\t\t\tif(\ti>= 0 ) {\n\t\t\t\t\twhile(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}\n\t\t\t\t}\n\t\t\t\tnodeid = max+1;\n\t\t\t}\n\t\t\tvar prow = $($t).jqGrid('getInd', parentid);\n\t\t\tleaf = false;\n\t\t\t// if not a parent we assume root\n\t\t\tif ( parentid === undefined  || parentid === null || parentid===\"\") {\n\t\t\t\tparentid = null;\n\t\t\t\trowind = null;\n\t\t\t\tmethod = 'last';\n\t\t\t\tparentlevel = $t.p.tree_root_level;\n\t\t\t\ti = $t.p.data.length+1;\n\t\t\t} else {\n\t\t\t\tmethod = 'after';\n\t\t\t\tparentindex = $t.p._index[parentid];\n\t\t\t\tparentdata = $t.p.data[parentindex];\n\t\t\t\tparentid = parentdata[$t.p.localReader.id];\n\t\t\t\tparentlevel = parseInt(parentdata[level],10)+1;\n\t\t\t\tvar childs = $($t).jqGrid('getFullTreeNode', parentdata);\n\t\t\t\t// if there are child nodes get the last index of it\n\t\t\t\tif(childs.length) {\n\t\t\t\t\ti = childs[childs.length-1][$t.p.localReader.id];\n\t\t\t\t\trowind = i;\n\t\t\t\t\ti = $($t).jqGrid('getInd',rowind)+1;\n\t\t\t\t} else {\n\t\t\t\t\ti = $($t).jqGrid('getInd', parentid)+1;\n\t\t\t\t}\n\t\t\t\t// if the node is leaf\n\t\t\t\tif(parentdata[isLeaf]) {\n\t\t\t\t\tleaf = true;\n\t\t\t\t\tparentdata[expanded] = true;\n\t\t\t\t\t//var prow = $($t).jqGrid('getInd', parentid);\n\t\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t\t.find(\"span.cell-wrapperleaf\").removeClass(\"cell-wrapperleaf\").addClass(\"cell-wrapper\")\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find(\"div.tree-leaf\").removeClass($t.p.treeIcons.leaf+\" tree-leaf\").addClass($t.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\t$t.p.data[parentindex][isLeaf] = false;\n\t\t\t\t\tparentdata[loaded] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlen = i+1;\n\n\t\t\tif( data[expanded]===undefined)  {data[expanded]= false;}\n\t\t\tif( data[loaded]===undefined )  { data[loaded] = false;}\n\t\t\tdata[level] = parentlevel;\n\t\t\tif( data[isLeaf]===undefined) {data[isLeaf]= true;}\n\t\t\tif( $t.p.treeGridModel === \"adjacency\") {\n\t\t\t\tdata[parent] = parentid;\n\t\t\t}\n\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t// this method requiere more attention\n\t\t\t\tvar query, res, key;\n\t\t\t\t//maxright = parseInt(maxright,10);\n\t\t\t\t// ToDo - update grid data\n\t\t\t\tif(parentid !== null) {\n\t\t\t\t\tmaxright = parseInt(parentdata[right],10);\n\t\t\t\t\tquery = $.jgrid.from.call($t, $t.p.data);\n\t\t\t\t\tquery = query.greaterOrEquals(right,maxright,{stype:'integer'});\n\t\t\t\t\tres = query.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];\n\t\t\t\t\t\t\t\tres[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright;\n\t\t\t\t\tdata[right]= maxright+1;\n\t\t\t\t} else {\n\t\t\t\t\tmaxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright+1;\n\t\t\t\t\tdata[right] = maxright + 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( parentid === null || $($t).jqGrid(\"isNodeLoaded\",parentdata) || leaf ) {\n\t\t\t\t\t$($t).jqGrid('addRowData', nodeid, data, method, rowind);\n\t\t\t\t\t$($t).jqGrid('setTreeNode', i, len);\n\t\t\t}\n\t\t\tif(parentdata && !parentdata[expanded] && expandData) {\n\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.click();\n\t\t\t}\n\t\t}\n\t\t//});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.utils.js",
    "content": "/*global jQuery, define, URL */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\n\t// Browser globals\n\t\tfactory();\n\t}\n}(function() {\n\"use strict\";\n//module begin\nwindow.jqGridUtils = {\n\tstringify : function(obj) {\n\t\treturn JSON.stringify(obj,function(key, value){\n            return (typeof value === 'function' ) ? value.toString() : value;\n        });\n\t},\n\tparse : function(str) {\n\t\treturn JSON.parse(str,function(key, value){\n\t\t\tif(typeof value === \"string\" && value.indexOf(\"function\") !== -1) {\n\t\t\t\tvar sv = value.split(\" \");\n\t\t\t\tif(sv[0].trim() === 'function' && value.trim().slice(-1) === \"}\") {\n\t\t\t\t\treturn  eval('('+value+')');\n\t\t\t\t} else {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t},\n\tencode : function ( text ) { // repeated, but should not depend on grid\n\t\treturn String(text).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;');\n\t},\n\tjsonToXML : function ( tree, options ) {\n\t\tvar o = $.extend( {\n\t\t\txmlDecl : '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\\n',\n\t\t\tattr_prefix : '-',\n\t\t\tencode : true\n\t\t}, options || {}),\n\t\tthat = this,\n\t\tscalarToxml = function ( name, text ) {\n\t\t\tif ( name === \"#text\" ) {\n\t\t\t\treturn (o.encode ? that.encode(text) : text);\n\t\t\t} else if(typeof(text) ==='function') {\n\t\t\t\treturn \"<\"+name+\"><![CDATA[\"+ text +\"]]></\"+name+\">\\n\";\n\t\t\t} if(text === \"\") {\n\t\t\t\treturn \"<\"+name+\">__EMPTY_STRING_</\"+name+\">\\n\";\n\t\t\t} else {\n\t\t\t\treturn \"<\"+name+\">\"+(o.encode ? that.encode(text) : text )+\"</\"+name+\">\\n\";\n\t\t\t}\n\t\t},\n\t\tarrayToxml = function ( name, array ) {\n\t\t\tvar out = [];\n\t\t    for( var i=0; i<array.length; i++ ) {\n\t\t\t\tvar val = array[i];\n\t\t        if ( typeof(val) === \"undefined\" || val == null ) {\n\t\t\t\t\tout[out.length] = \"<\"+name+\" />\";\n\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor == Array ) {\n\t\t\t\t\tout[out.length] = arrayToxml( name, val );\n\t\t\t\t} else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\tout[out.length] = hashToxml( name, val );\n\t\t\t\t} else {\n\t\t\t\t\tout[out.length] = scalarToxml( name, val );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!out.length) {\n\t\t\t\tout[0] = \"<\"+ name+\">__EMPTY_ARRAY_</\"+name+\">\\n\";\n\t\t\t}\n\t\t\treturn out.join(\"\");\n\t\t},\n\t\thashToxml = function ( name, tree ) {\n\t\t\tvar elem = [];\n\t\t    var attr = [];\n\t\t    for( var key in tree ) {\n\t\t\t\tif ( ! tree.hasOwnProperty(key) ) continue;\n\t\t\t\tvar val = tree[key];\n\t\t\t\tif ( key.charAt(0) !==  o.attr_prefix ) {\n\t\t\t\t\tif ( val == null ) { // null or undefined\n\t\t               elem[elem.length] = \"<\"+key+\" />\";\n\t\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor === Array ) {\n\t\t                elem[elem.length] = arrayToxml( key, val );\n\t\t            } else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\t\telem[elem.length] = hashToxml( key, val );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[elem.length] = scalarToxml( key, val );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tattr[attr.length] = \" \"+(key.substring(1))+'=\"'+(o.encode ? that.encode( val ) : val)+'\"';\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar jattr = attr.join(\"\");\n\t\t\tvar jelem = elem.join(\"\");\n\t\t\tif ( name == null ) { // null or undefined\n\t\t\t\t// no tag\n\t\t\t} else if ( elem.length > 0 ) {\n\t\t\t\tif ( jelem.match( /\\n/ )) {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\\n\"+jelem+\"</\"+name+\">\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\"  +jelem+\"</\"+name+\">\\n\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tjelem = \"<\"+name+jattr+\" />\\n\";\n\t\t\t}\n\t\t\treturn jelem;\n\t\t};\n\n\t\tvar xml = hashToxml( null, tree );\n\t\treturn o.xmlDecl + xml;\n\t},\n\txmlToJSON : function ( root, options ) {\n\t\tvar o = $.extend ( {\n\t\t\tforce_array : [], //[ \"rdf:li\", \"item\", \"-xmlns\" ];\n\t\t\tattr_prefix : '-'\n\t\t}, options || {} );\n\t\t\n\t\tif(!root) { return; }\n\t\t\n\t    var __force_array = {};\n\t\tif ( o.force_array ) {\n\t\t\tfor( var i=0; i< o.force_array.length; i++ ) {\n\t\t\t\t__force_array[o.force_array[i]] = 1;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(typeof root === 'string') {\n\t\t\troot = $.parseXML(root);\n\t\t} \n\t\tif(root.documentElement) {\n\t\t\troot = root.documentElement;\n\t\t}\n\t\tvar addNode = function ( hash, key, cnts, val ) {\n\t\t\tif(typeof val === 'string') {\n\t\t\t\tif( val.indexOf('function') !== -1) {\n\t\t\t\t\tval =  eval( '(' + val +')'); // we need this in our implement\n\t\t\t\t} else {\n\t\t\t\t\tswitch(val) {\n\t\t\t\t\t\tcase '__EMPTY_ARRAY_' :\n\t\t\t\t\t\t\tval = [];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase '__EMPTY_STRING_':\n\t\t\t\t\t\t\tval = \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"false\" :\n\t\t\t\t\t\t\tval = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"true\":\n\t\t\t\t\t\t\tval = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} \n\t\t\tif ( __force_array[key] ) {\n\t\t\t\tif ( cnts === 1 ) {\n\t\t\t\t\thash[key] = [];\n\t\t\t\t}\n\t\t\t\thash[key][hash[key].length] = val;      // push\n\t\t\t} else if ( cnts === 1 ) {                   // 1st sibling\n\t\t\t\thash[key] = val;\n\t\t\t} else if ( cnts === 2 ) {                   // 2nd sibling\n\t\t\t\thash[key] = [ hash[key], val ];\n\t\t\t} else {                                    // 3rd sibling and more\n\t\t\t\thash[key][hash[key].length] = val;\n\t\t\t}\n\t\t},\n\t\tparseElement = function ( elem ) {\n\t\t\t//  COMMENT_NODE\n\t\t\tif ( elem.nodeType === 7 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t//  TEXT_NODE CDATA_SECTION_NODE\n\t\t\tif ( elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\tvar bool = elem.nodeValue.match( /[^\\x00-\\x20]/ );\n\t\t\t\tif ( bool == null ) return;     // ignore white spaces\n\t\t\t\treturn elem.nodeValue;\n\t\t\t}\n\t\t\t\n\t\t\tvar retval,\tcnt = {}, i, key, val;\n\n\t\t\t//  parse attributes\n\t\t\tif ( elem.attributes && elem.attributes.length ) {\n\t\t\t\tretval = {};\n\t\t\t\tfor ( i=0; i<elem.attributes.length; i++ ) {\n\t\t\t\t\tkey = elem.attributes[i].nodeName;\n\t\t\t\t\tif ( typeof(key) !== \"string\" )  {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tval = elem.attributes[i].nodeValue;\n\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tkey = o.attr_prefix + key;\n\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t}\n\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//  parse child nodes (recursive)\n\t\t\tif ( elem.childNodes && elem.childNodes.length ) {\n\t\t\t\tvar textonly = true;\n\t\t\t\tif ( retval ) {\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}        // some attributes exists\n\t\t\t\tfor ( i=0; i<elem.childNodes.length && textonly; i++ ) {\n\t\t\t\t\tvar ntype = elem.childNodes[i].nodeType;\n\t\t\t\t\tif ( ntype === 3 || ntype === 4 ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}\n\t\t\t\tif ( textonly ) {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tretval += elem.childNodes[i].nodeValue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = {};\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tkey = elem.childNodes[i].nodeName;\n\t\t\t\t\t\tif ( typeof(key) !== \"string\" ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tval = parseElement( elem.childNodes[i] );\n\t\t\t\t\t\tif ( !val ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn retval;\n\t\t};\n\t\t\n\t    var json = parseElement( root );   // parse root node\n\t\tif ( __force_array[root.nodeName] ) {\n\t\t\tjson = [ json ];\n\t\t}\n\t\tif ( root.nodeType !== 11 ) {            // DOCUMENT_FRAGMENT_NODE\n\t\t\tvar tmp = {};\n\t\t\ttmp[root.nodeName] = json;          // root nodeName\n\t\t\tjson = tmp;\n\t\t}\n\t\treturn json;\n\t},\n\tsaveAs : function (data, fname, opts) {\n\t\topts = $.extend(true,{\n\t\t\ttype : 'plain/text;charset=utf-8'\n\t\t}, opts || {});\n\n\t\tvar file, url, tmp = []; \n\n\t\tfname = fname == null || fname === '' ? 'jqGridFile.txt' : fname;\n\n\t\tif(!$.isArray(data) ) {\n\t\t\ttmp[0]= data ;\n\t\t} else {\n\t\t\ttmp = data;\t\n\t\t}\n\t\ttry {\n\t\t\tfile = new File(tmp, fname, opts);\n\t\t} catch (e) {\n\t\t\tfile = new Blob(tmp, opts);\n\t\t}\n\t\turl = URL.createObjectURL(file);\n\t\tvar a = document.createElement(\"a\");\n\t\ta.href = url;\n\t\ta.download = fname;\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tsetTimeout(function() {\n\t\t\tdocument.body.removeChild(a);\n\t\t\twindow.URL.revokeObjectURL(url);  \n\t\t}, 0);\t\n\t}\n};\n//module end\nreturn window.jqGridUtils;\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ar.js",
    "content": "/**\n * jqGrid Arabic Translation\n * \n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ar\"] = {\n\tdefaults : {\n\t\trecordtext: \"تسجيل {0} - {1} على {2}\",\n\t\temptyrecords: \"لا يوجد تسجيل\",\n\t\tloadtext: \"تحميل...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"صفحة {0} على {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"بحث...\",\n\t\tFind: \"بحث\",\n\t\tReset: \"إلغاء\",\n\t\todata: [{ oper:'eq', text:\"يساوي\"},{ oper:'ne', text:\"يختلف\"},{ oper:'lt', text:\"أقل\"},{ oper:'le', text:\"أقل أو يساوي\"},{ oper:'gt', text:\"أكبر\"},{ oper:'ge', text:\"أكبر أو يساوي\"},{ oper:'bw', text:\"يبدأ بـ\"},{ oper:'bn', text:\"لا يبدأ بـ\"},{ oper:'in', text:\"est dans\"},{ oper:'ni', text:\"n'est pas dans\"},{ oper:'ew', text:\"ينته بـ\"},{ oper:'en', text:\"لا ينته بـ\"},{ oper:'cn', text:\"يحتوي\"},{ oper:'nc', text:\"لا يحتوي\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"مع\", text: \"الكل\" },\t{ op: \"أو\",  text: \"لا أحد\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n},\n\tedit : {\n\t\taddCaption: \"اضافة\",\n\t\teditCaption: \"تحديث\",\n\t\tbSubmit: \"تثبيث\",\n\t\tbCancel: \"إلغاء\",\n\t\tbClose: \"غلق\",\n\t\tsaveData: \"تغيرت المعطيات هل تريد التسجيل ?\",\n\t\tbYes: \"نعم\",\n\t\tbNo: \"لا\",\n\t\tbExit: \"إلغاء\",\n\t\tmsg: {\n\t\t\trequired: \"خانة إجبارية\",\n\t\t\tnumber: \"سجل رقم صحيح\",\n\t\t\tminValue: \"يجب أن تكون القيمة أكبر أو تساوي 0\",\n\t\t\tmaxValue: \"يجب أن تكون القيمة أقل أو تساوي 0\",\n\t\t\temail: \"بريد غير صحيح\",\n\t\t\tinteger: \"سجل عدد طبييعي صحيح\",\n\t\t\turl: \"ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')\",\n\t\t\tnodefined : \" ليس محدد!\",\n\t\t\tnovalue : \" قيمة الرجوع مطلوبة!\",\n\t\t\tcustomarray : \"يجب على الدالة الشخصية أن تنتج جدولا\",\n\t\t\tcustomfcheck : \"الدالة الشخصية مطلوبة في حالة التحقق الشخصي\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"رأيت التسجيلات\",\n\t\tbClose: \"غلق\"\n\t},\n\tdel : {\n\t\tcaption: \"حذف\",\n\t\tmsg: \"حذف التسجيلات المختارة ?\",\n\t\tbSubmit: \"حذف\",\n\t\tbCancel: \"إلغاء\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"تغيير التسجيل المختار\",\n\t\taddtext:\" \",\n\t\taddtitle: \"إضافة تسجيل\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"حذف التسجيل المختار\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"بحث عن تسجيل\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"تحديث الجدول\",\n\t\talertcap: \"تحذير\",\n\t\talerttext: \"يرجى إختيار السطر\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"إظهار السطر المختار\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"إظهار/إخفاء الأعمدة\",\n\t\tbSubmit: \"تثبيث\",\n\t\tbCancel: \"إلغاء\"\n\t},\n\terrors : {\n\t\terrcap : \"خطأ\",\n\t\tnourl : \"لا يوجد عنوان محدد\",\n\t\tnorecords: \"لا يوجد تسجيل للمعالجة\",\n\t\tmodel : \"عدد العناوين (colNames) <> عدد التسجيلات (colModel)!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"الأحد\", \"الإثنين\", \"الثلاثاء\", \"الأربعاء\", \"الخميس\", \"الجمعة\", \"السبت\",\n\t\t\t\t\"الأحد\", \"الإثنين\", \"الثلاثاء\", \"الأربعاء\", \"الخميس\", \"الجمعة\", \"السبت\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"جانفي\", \"فيفري\", \"مارس\", \"أفريل\", \"ماي\", \"جوان\", \"جويلية\", \"أوت\", \"سبتمبر\", \"أكتوبر\", \"نوفمبر\", \"ديسمبر\",\n\t\t\t\t\"جانفي\", \"فيفري\", \"مارس\", \"أفريل\", \"ماي\", \"جوان\", \"جويلية\", \"أوت\", \"سبتمبر\", \"أكتوبر\", \"نوفمبر\", \"ديسمبر\"\n\t\t\t],\n\t\t\tAmPm : [\"صباحا\",\"مساءا\",\"صباحا\",\"مساءا\"],\n\t\t\tS: function (j) {return j == 1 ? 'er' : 'e';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-bg.js",
    "content": "/**\n * jqGrid Bulgarian Translation \n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"bg\"] = {\n\tdefaults : {\n\t\trecordtext: \"{0} - {1} от {2}\",\n\t\temptyrecords: \"Няма запис(и)\",\n\t\tloadtext: \"Зареждам...\",\n\t\tsavetext: \"Записвам...\",\n\t\tpgtext : \"Стр. {0} от {1}\",\n\t\tpgfirst : \"Първа Стр.\",\n\t\tpglast : \"Последна Стр.\",\n\t\tpgnext : \"Следваща Стр.\",\n\t\tpgprev : \"Предишна Стр.\",\n\t\tpgrecs : \"Брой записи на Стр.\",\n\t\tshowhide: \"Свиване/Разтягане на таблицата\",\n\t\t// mobile\n\t\tpagerCaption : \"Таблица::Настр. Страница\",\n\t\tpageText : \"Страница:\",\n\t\trecordPage : \"Записи на стр.\",\n\t\tnomorerecs : \"Няма повече записи...\",\n\t\tscrollPullup: \"Издърпайте нагоре за повече...\",\n\t\tscrollPulldown : \"Дръпнете надолу за опресняване...\",\n\t\tscrollRefresh : \"Освободете за да опресните...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Търсене...\",\n\t\tFind: \"Намери\",\n\t\tReset: \"Изчисти\",\n\t\todata: [{ oper:'eq', text:\"равно\"},{ oper:'ne', text:\"различно\"},{ oper:'lt', text:\"по-малко\"},{ oper:'le', text:\"по-малко или=\"},{ oper:'gt', text:\"по-голямо\"},{ oper:'ge', text:\"по-голямо или =\"},{ oper:'bw', text:\"започва с\"},{ oper:'bn', text:\"не започва с\"},{ oper:'in', text:\"се намира в\"},{ oper:'ni', text:\"не се намира в\"},{ oper:'ew', text:\"завършва с\"},{ oper:'en', text:\"не завършава с\"},{ oper:'cn', text:\"съдържа\"},{ oper:'nc', text:\"не съдържа\"},{ oper:'nu', text:'е NULL'},{ oper:'nn', text:'не е NULL'}, {oper:'bt', text:'между'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"&nbsp;И \" },\t{ op: \"OR\",  text: \"ИЛИ\" }\t],\n\t\toperandTitle : \"Натисни за избор на операнд.\",\n\t\tresetTitle : \"Изчисти стойността\",\n\t\taddsubgrup : \"Добави група\",\n\t\taddrule : \"Добави правило\",\n\t\tdelgroup : \"Изтрий група\",\n\t\tdelrule : \"Изтрий правило\"\n\t},\n\tedit : {\n\t\taddCaption: \"Нов Запис\",\n\t\teditCaption: \"Редакция Запис\",\n\t\tbSubmit: \"Запиши\",\n\t\tbCancel: \"Изход\",\n\t\tbClose: \"Затвори\",\n\t\tsaveData: \"Данните са променени! Да съхраня ли промените?\",\n\t\tbYes : \"Да\",\n\t\tbNo : \"Не\",\n\t\tbExit : \"Отказ\",\n\t\tmsg: {\n\t\t\trequired:\"Полето е задължително\",\n\t\t\tnumber:\"Въведете валидно число!\",\n\t\t\tminValue:\"стойността трябва да е по-голяма или равна от\",\n\t\t\tmaxValue:\"стойността трябва да е по-малка или равна от\",\n\t\t\temail: \"не е валиден ел. адрес\",\n\t\t\tinteger: \"Въведете валидно цяло число\",\n\t\t\tdate: \"Въведете валидна дата\",\n\t\t\turl: \"e невалиден URL. Изискава се префикс('http://' или 'https://')\",\n\t\t\tnodefined : \" е недефинирана!\",\n\t\t\tnovalue : \" изисква връщане на стойност!\",\n\t\t\tcustomarray : \"Потреб. Функция трябва да върне масив!\",\n\t\t\tcustomfcheck : \"Потребителска функция е задължителна при този тип елемент!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Преглед запис\",\n\t\tbClose: \"Затвори\"\n\t},\n\tdel : {\n\t\tcaption: \"Изтриване\",\n\t\tmsg: \"Да изтрия ли избраният запис?\",\n\t\tbSubmit: \"Изтрий\",\n\t\tbCancel: \"Отказ\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Редакция избран запис\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Добавяне нов запис\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Изтриване избран запис\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Търсене запис(и)\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Обнови таблица\",\n\t\talertcap: \"Предупреждение\",\n\t\talerttext: \"Моля, изберете запис\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Преглед избран запис\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Съхрани запис\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Отказ редакция\",\n\t\tselectcaption : \"Действия...\"\n\t},\n\tcol : {\n\t\tcaption: \"Избери колони\",\n\t\tbSubmit: \"Ок\",\n\t\tbCancel: \"Изход\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Грешка\",\n\t\tnourl : \"Няма посочен url адрес\",\n\t\tnorecords: \"Няма запис за обработка\",\n\t\tmodel : \"Модела не съответства на имената!\"\t\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\" лв.\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Нед\", \"Пон\", \"Вт\", \"Ср\", \"Чет\", \"Пет\", \"Съб\",\n\t\t\t\t\"Неделя\", \"Понеделник\", \"Вторник\", \"Сряда\", \"Четвъртък\", \"Петък\", \"Събота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Яну\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Юни\", \"Юли\", \"Авг\", \"Сеп\", \"Окт\", \"Нов\", \"Дек\",\n\t\t\t\t\"Януари\", \"Февруари\", \"Март\", \"Април\", \"Май\", \"Юни\", \"Юли\", \"Август\", \"Септември\", \"Октомври\", \"Ноември\", \"Декември\"\n\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function (j) {\n\t\t\t\tif(j==7 || j==8 || j== 27 || j== 28) {\n\t\t\t\t\treturn 'ми';\n\t\t\t\t}\n\t\t\t\treturn ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];\n\t\t\t},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Сортирай възходящо\",\n\t\tsortdesc : \"Сортирай низходящо\",\n\t\tcolumns : \"Колони\",\n\t\tfilter : \"Филтрирай\",\n\t\tgrouping : \"Групирай по\",\n\t\tungrouping : \"Разгрупиране\",\n\t\tsearchTitle : \"Търси данни със стойност, която\",\n\t\tfreeze : \"Неподвижна\",\n\t\tunfreeze : \"Отмяна неподвижност\",\n\t\treorder : \"Премести за пренареждане\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ca.js",
    "content": "/**\n * jqGrid Catalan Translation\n * Traducció jqGrid en Catatà per Faserline, S.L.\n * http://www.faserline.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ca\"] = {\n\tdefaults : {\n\t\trecordtext: \"Mostrant {0} - {1} de {2}\",\n\t    emptyrecords: \"Sense registres que mostrar\",\n\t\tloadtext: \"Carregant...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Pàgina {0} de {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Cerca...\",\n\t\tFind: \"Cercar\",\n\t\tReset: \"Buidar\",\n\t    odata: [{ oper:'eq', text:\"equal\"},{ oper:'ne', text:\"not equal\"},{ oper:'lt', text:\"less\"},{ oper:'le', text:\"less or equal\"},{ oper:'gt', text:\"greater\"},{ oper:'ge', text:\"greater or equal\"},{ oper:'bw', text:\"begins with\"},{ oper:'bn', text:\"does not begin with\"},{ oper:'in', text:\"is in\"},{ oper:'ni', text:\"is not in\"},{ oper:'ew', text:\"ends with\"},{ oper:'en', text:\"does not end with\"},{ oper:'cn', text:\"contains\"},{ oper:'nc', text:\"does not contain\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"tot\" },\t{ op: \"OR\",  text: \"qualsevol\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n\t},\n\tedit : {\n\t\taddCaption: \"Afegir registre\",\n\t\teditCaption: \"Modificar registre\",\n\t\tbSubmit: \"Guardar\",\n\t\tbCancel: \"Cancelar\",\n\t\tbClose: \"Tancar\",\n\t\tsaveData: \"Les dades han canviat. Guardar canvis?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t\tmsg: {\n\t\t    required:\"Camp obligatori\",\n\t\t    number:\"Introdueixi un nombre\",\n\t\t    minValue:\"El valor ha de ser major o igual que \",\n\t\t    maxValue:\"El valor ha de ser menor o igual a \",\n\t\t    email: \"no és una direcció de correu vàlida\",\n\t\t    integer: \"Introdueixi un valor enter\",\n\t\t\tdate: \"Introdueixi una data correcta \",\n\t\t\turl: \"no és una URL vàlida. Prefix requerit ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Veure registre\",\n\t\tbClose: \"Tancar\"\n\t},\n\tdel : {\n\t\tcaption: \"Eliminar\",\n\t\tmsg: \"¿Desitja eliminar els registres seleccionats?\",\n\t\tbSubmit: \"Eliminar\",\n\t\tbCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Modificar fila seleccionada\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Agregar nova fila\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Eliminar fila seleccionada\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Cercar informació\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Refrescar taula\",\n\t\talertcap: \"Avís\",\n\t\talerttext: \"Seleccioni una fila\",\n\t\tviewtext: \" \",\n\t\tviewtitle: \"Veure fila seleccionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n// setcolumns module\n\tcol : {\n\t\tcaption: \"Mostrar/ocultar columnes\",\n\t\tbSubmit: \"Enviar\",\n\t\tbCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"No s'ha especificat una URL\",\n\t\tnorecords: \"No hi ha dades per processar\",\n\t\tmodel : \"Les columnes de noms són diferents de les columnes del model\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dg\", \"Dl\", \"Dt\", \"Dc\", \"Dj\", \"Dv\", \"Ds\",\n\t\t\t\t\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Gen\", \"Febr\", \"Març\", \"Abr\", \"Maig\", \"Juny\", \"Jul\", \"Ag\", \"Set\", \"Oct\", \"Nov\", \"Des\",\n\t\t\t\t\"Gener\", \"Febrer\", \"Març\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd-m-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t        ISO8601Long:\"Y-m-d H:i:s\",\n\t\t        ISO8601Short:\"Y-m-d\",\n\t\t        ShortDate: \"n/j/Y\",\n\t\t        LongDate: \"l, F d, Y\",\n\t\t        FullDateTime: \"l, F d, Y g:i:s A\",\n\t\t        MonthDay: \"F d\",\n\t\t        ShortTime: \"g:i A\",\n\t\t        LongTime: \"g:i:s A\",\n\t\t        SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t        UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t        YearMonth: \"F, Y\"\n\t\t    },\n\t\t    reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: 'show',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-cn.js",
    "content": "/**\n * jqGrid Chinese Translation\n * 咖啡兔 yanhonglei@gmail.com \n * http://www.kafeitu.me \n * \n * 花岗岩 marbleqi@163.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html \n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"cn\"] = {\n    defaults : {\n        recordtext: \"第{0}到第{1}条\\u3000共 {2} 条\", // 共字前是全角空格\n        emptyrecords: \"没有记录！\",\n        loadtext: \"读取中...\",\n\tsavetext: \"保存中...\",\n        pgtext : \"第{0}页\\u3000共{1}页\",\n\t\tpgfirst : \"第一页\",\n\t\tpglast : \"最后一页\",\n\t\tpgnext : \"下一页\",\n\t\tpgprev : \"上一页\",\n\t\tpgrecs : \"每页记录数\",\n\t\tshowhide: \"切换 展开 折叠 表格\",\n\t\t// mobile\n\t\tpagerCaption : \"表格::页面设置\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"每页记录数\",\n\t\tnomorerecs : \"没有更多记录...\",\n\t\tscrollPullup: \"加载更多...\",\n\t\tscrollPulldown : \"刷新...\",\n\t\tscrollRefresh : \"滚动刷新...\"\n    },\n    search : {\n        caption: \"搜索...\",\n        Find: \"查找\",\n        Reset: \"重置\",\n        odata: [{ oper:'eq', text:'等于\\u3000\\u3000'},{ oper:'ne', text:'不等于\\u3000'},{ oper:'lt', text:'小于\\u3000\\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\\u3000\\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于\\u3000\\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含\\u3000\\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}],\n        groupOps: [ { op: \"AND\", text: \"满足所有条件\" },    { op: \"OR\",  text: \"满足任一条件\" } ],\n\t\toperandTitle : \"单击进行搜索。\",\n\t\tresetTitle : \"重置搜索条件\",\n\t\taddsubgrup : \"添加条件组\",\n\t\taddrule : \"添加条件\",\n\t\tdelgroup : \"删除条件组\",\n\t\tdelrule : \"删除条件\"\t\t\n    },\n    edit : {\n        addCaption: \"添加记录\",\n        editCaption: \"编辑记录\",\n        bSubmit: \"提交\",\n        bCancel: \"取消\",\n        bClose: \"关闭\",\n        saveData: \"数据已修改，是否保存？\",\n        bYes : \"是\",\n        bNo : \"否\",\n        bExit : \"取消\",\n        msg: {\n            required:\"此字段必需\",\n            number:\"请输入有效数字\",\n            minValue:\"输值必须大于等于 \",\n            maxValue:\"输值必须小于等于 \",\n            email: \"这不是有效的e-mail地址\",\n            integer: \"请输入有效整数\",\n            date: \"请输入有效时间\",\n            url: \"无效网址。前缀必须为 ('http://' 或 'https://')\",\n            nodefined : \" 未定义！\",\n            novalue : \" 需要返回值！\",\n            customarray : \"自定义函数需要返回数组！\",\n            customfcheck : \"必须有自定义函数!\"\n        }\n    },\n    view : {\n        caption: \"查看记录\",\n        bClose: \"关闭\"\n    },\n    del : {\n        caption: \"删除\",\n        msg: \"删除所选记录？\",\n        bSubmit: \"删除\",\n        bCancel: \"取消\"\n    },\n    nav : {\n        edittext: \"\",\n        edittitle: \"编辑所选记录\",\n        addtext:\"\",\n        addtitle: \"添加新记录\",\n        deltext: \"\",\n        deltitle: \"删除所选记录\",\n        searchtext: \"\",\n        searchtitle: \"查找\",\n        refreshtext: \"\",\n        refreshtitle: \"刷新表格\",\n        alertcap: \"注意\",\n        alerttext: \"请选择记录\",\n        viewtext: \"\",\n        viewtitle: \"查看所选记录\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"保存记录\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"取消编辑记录\",\n\t\tselectcaption : \"操作...\"\n    },\n    col : {\n        caption: \"选择列\",\n        bSubmit: \"确定\",\n        bCancel: \"取消\"\n    },\n    errors : {\n        errcap : \"错误\",\n        nourl : \"没有设置url\",\n        norecords: \"没有需要处理的记录\",\n        model : \"colNames 和 colModel 长度不等！\"\n    },\n    formatter : {\n        integer : {thousandsSeparator: \",\", defaultValue: '0'},\n        number : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n        currency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n        date : {\n            dayNames:   [\n                \"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\",\n                \"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\",\n            ],\n            monthNames: [\n                \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\", \"十\", \"十一\", \"十二\",\n                \"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n            ],\n            AmPm : [\"am\",\"pm\",\"上午\",\"下午\"],\n            S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n            srcformat: 'Y-m-d',\n            newformat: 'Y-m-d',\n            parseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n            masks : {\n                // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n                // and see http://docs.jquery.com/UI/Datepicker/formatDate\n                // and https://github.com/jquery/globalize#dates for alternative formats used frequently\n                // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n                // information about date, time, numbers and currency formats used in different countries\n                // one should just convert the information in PHP format\n                ISO8601Long:\"Y-m-d H:i:s\",\n                ISO8601Short:\"Y-m-d\",\n                // short date:\n                //    n - Numeric representation of a month, without leading zeros\n                //    j - Day of the month without leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                // example: 3/1/2012 which means 1 March 2012\n                ShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n                // long date:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                LongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n                // long date with long time:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                FullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n                // month day:\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                MonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n                // short time (without seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                ShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n                // long time (with seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                LongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n                SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                // month with year\n                //    Y - A full numeric representation of a year, 4 digits\n                //    F - A full textual representation of a month\n                YearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n            },\n            reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n        },\n        baseLinkUrl: '',\n        showAction: '',\n        target: '',\n        checkbox : {disabled:true},\n        idName : 'id'\n    },\n\tcolmenu : {\n\t\tsortasc : \"升序排序\",\n\t\tsortdesc : \"降序排序\",\n\t\tcolumns : \"列\",\n\t\tfilter : \"筛选\",\n\t\tgrouping : \"分类\",\n\t\tungrouping : \"取消分类\",\n\t\tsearchTitle : \"查找:\",\n\t\tfreeze : \"冻结\",\n\t\tunfreeze : \"取消冻结\",\n\t\treorder : \"重新排序\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-cs.js",
    "content": "/**\n * jqGrid Czech Translation\n * Pavel Jirak pavel.jirak@jipas.cz\n * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"cs\"] = {\n\tdefaults : {\n\t\trecordtext: \"Zobrazeno {0} - {1} z {2} záznamů\",\n\t    emptyrecords: \"Nenalezeny žádné záznamy\",\n\t\tloadtext: \"Načítám...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Strana {0} z {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\t\t\n\t},\n\tsearch : {\n\t\tcaption: \"Vyhledávám...\",\n\t\tFind: \"Hledat\",\n\t\tReset: \"Reset\",\n\t    odata: [{ oper:'eq', text:\"rovno\"},{ oper:'ne', text:\"nerovno\"},{ oper:'lt', text:\"menší\"},{ oper:'le', text:\"menší nebo rovno\"},{ oper:'gt', text:\"větší\"},{ oper:'ge', text:\"větší nebo rovno\"},{ oper:'bw', text:\"začíná s\"},{ oper:'bn', text:\"nezačíná s\"},{ oper:'in', text:\"je v\"},{ oper:'ni', text:\"není v\"},{ oper:'ew', text:\"končí s\"},{ oper:'en', text:\"nekončí s\"},{ oper:'cn', text:\"obsahuje\"},{ oper:'nc', text:\"neobsahuje\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"všech\" },\t{ op: \"OR\",  text: \"některého z\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Přidat záznam\",\n\t\teditCaption: \"Editace záznamu\",\n\t\tbSubmit: \"Uložit\",\n\t\tbCancel: \"Storno\",\n\t\tbClose: \"Zavřít\",\n\t\tsaveData: \"Data byla změněna! Uložit změny?\",\n\t\tbYes : \"Ano\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Zrušit\",\n\t\tmsg: {\n\t\t    required:\"Pole je vyžadováno\",\n\t\t    number:\"Prosím, vložte validní číslo\",\n\t\t    minValue:\"hodnota musí být větší než nebo rovná \",\n\t\t    maxValue:\"hodnota musí být menší než nebo rovná \",\n\t\t    email: \"není validní e-mail\",\n\t\t    integer: \"Prosím, vložte celé číslo\",\n\t\t\tdate: \"Prosím, vložte validní datum\",\n\t\t\turl: \"není platnou URL. Vyžadován prefix ('http://' or 'https://')\",\n\t\t\tnodefined : \" není definován!\",\n\t\t\tnovalue : \" je vyžadována návratová hodnota!\",\n\t\t\tcustomarray : \"Custom function mělá vrátit pole!\",\n\t\t\tcustomfcheck : \"Custom function by měla být přítomna v případě custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Zobrazit záznam\",\n\t    bClose: \"Zavřít\"\n\t},\n\tdel : {\n\t\tcaption: \"Smazat\",\n\t\tmsg: \"Smazat vybraný(é) záznam(y)?\",\n\t\tbSubmit: \"Smazat\",\n\t\tbCancel: \"Storno\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Editovat vybraný řádek\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Přidat nový řádek\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Smazat vybraný záznam \",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Najít záznamy\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Obnovit tabulku\",\n\t\talertcap: \"Varování\",\n\t\talerttext: \"Prosím, vyberte řádek\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Zobrazit vybraný řádek\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Zobrazit/Skrýt sloupce\",\n\t\tbSubmit: \"Uložit\",\n\t\tbCancel: \"Storno\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Chyba\",\n\t\tnourl : \"Není nastavena url\",\n\t\tnorecords: \"Žádné záznamy ke zpracování\",\n\t\tmodel : \"Délka colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\",\n\t\t\t\t\"Neděle\", \"Pondělí\", \"Úterý\", \"Středa\", \"Čtvrtek\", \"Pátek\", \"Sobota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Led\", \"Úno\", \"Bře\", \"Dub\", \"Kvě\", \"Čer\", \"Čvc\", \"Srp\", \"Zář\", \"Říj\", \"Lis\", \"Pro\",\n\t\t\t\t\"Leden\", \"Únor\", \"Březen\", \"Duben\", \"Květen\", \"Červen\", \"Červenec\", \"Srpen\", \"Září\", \"Říjen\", \"Listopad\", \"Prosinec\"\n\t\t\t],\n\t\t\tAmPm : [\"do\",\"od\",\"DO\",\"OD\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t        ISO8601Long:\"Y-m-d H:i:s\",\n\t\t        ISO8601Short:\"Y-m-d\",\n\t\t        ShortDate: \"n/j/Y\",\n\t\t        LongDate: \"l, F d, Y\",\n\t\t        FullDateTime: \"l, F d, Y g:i:s A\",\n\t\t        MonthDay: \"F d\",\n\t\t        ShortTime: \"g:i A\",\n\t\t        LongTime: \"g:i:s A\",\n\t\t        SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t        UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t        YearMonth: \"F, Y\"\n\t\t    },\n\t\t    reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-de.js",
    "content": "/**\n * jqGrid German Translation\n * Version 1.0.0 (developed for jQuery Grid 3.3.1)\n * Olaf Klöppel opensource@blue-hit.de\n * http://blue-hit.de/ \n *\n * Updated for jqGrid 3.8\n * Andreas Flack\n * http://www.contentcontrol-berlin.de\n *\n * Updated for jQuery 4.4\n * Oleg Kiriljuk oleg.kiriljuk@ok-soft-gmbh.com\n * the format corresponds now the format from\n * https://github.com/jquery/globalize/blob/master/lib/cultures/globalize.culture.de.js\n * \n * Updated for jqGrid 4.8\n * Tony Tomov\n * http://www.guriddo.net\n *\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"de\"] = {\n\tdefaults : {\n\t\trecordtext: \"Zeige {0} - {1} von {2}\",\n\t\temptyrecords: \"Keine Datensätze vorhanden\",\n\t\tloadtext: \"Lädt...\",\n\t\tsavetext: \"Speichern...\",\n\t\tpgtext : \"Seite {0} von {1}\",\n\t\tpgfirst : \"erste Seite\",\n\t\tpglast : \"letzte Seite\",\n\t\tpgnext : \"nächste Seite\",\n\t\tpgprev : \"vorherige Seite\",\n\t\tpgrecs : \"Datensätze pro Seite\",\n\t\tshowhide: \"Toggle erweitern reduzieren\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Seite Optionen\",\n\t\tpageText : \"Seite:\",\n\t\trecordPage : \"Ergebnisse pro Seite\",\n\t\tnomorerecs : \"Keine weiteren Datensätze...\",\n\t\tscrollPullup: \"Ziehen Sie, um mehr zu laden...\",\n\t\tscrollPulldown : \"Pulldown zu aktualisieren...\",\n\t\tscrollRefresh : \"Lassen Sie zu aktualisieren...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Suche...\",\n\t\tFind: \"Suchen\",\n\t\tReset: \"Zurücksetzen\",\n\t\todata: [{ oper:'eq', text:\"gleich\"},{ oper:'ne', text:\"ungleich\"},{ oper:'lt', text:\"kleiner\"},{ oper:'le', text:\"kleiner gleich\"},{ oper:'gt', text:\"größer\"},{ oper:'ge', text:\"größer gleich\"},{ oper:'bw', text:\"beginnt mit\"},{ oper:'bn', text:\"beginnt nicht mit\"},{ oper:'in', text:\"ist in\"},{ oper:'ni', text:\"ist nicht in\"},{ oper:'ew', text:\"endet mit\"},{ oper:'en', text:\"endet nicht mit\"},{ oper:'cn', text:\"enthält\"},{ oper:'nc', text:\"enthält nicht\"}, { oper:'nu', text:\"ist Null\" }, { oper:'nn', text:\"ist nicht Null\" }, {oper:'bt', text:'zwischen'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"alle\" },{ op: \"OR\", text: \"mindestens eine\" }],\n\t\toperandTitle : \"Klicken Sie auf Suchoperation zu wählen.\",\n\t\tresetTitle : \"Reset Suche Wert\",\n\t\taddsubgrup : \"Gruppe hinzufügen\",\n\t\taddrule : \"In der Regel\",\n\t\tdelgroup : \"Gruppe löschen\",\n\t\tdelrule : \"Regel löschen\"\n\t},\n\tedit : {\n\t\taddCaption: \"Datensatz hinzufügen\",\n\t\teditCaption: \"Datensatz bearbeiten\",\n\t\tbSubmit: \"Speichern\",\n\t\tbCancel: \"Abbrechen\",\n\t\tbClose: \"Schließen\",\n\t\tsaveData: \"Daten wurden geändert! Änderungen speichern?\",\n\t\tbYes : \"ja\",\n\t\tbNo : \"nein\",\n\t\tbExit : \"abbrechen\",\n\t\tmsg: {\n\t\t\trequired:\"Feld ist erforderlich\",\n\t\t\tnumber: \"Bitte geben Sie eine Zahl ein\",\n\t\t\tminValue:\"Wert muss größer oder gleich sein, als \",\n\t\t\tmaxValue:\"Wert muss kleiner oder gleich sein, als \",\n\t\t\temail: \"ist keine gültige E-Mail-Adresse\",\n\t\t\tinteger: \"Bitte geben Sie eine Ganzzahl ein\",\n\t\t\tdate: \"Bitte geben Sie ein gültiges Datum ein\",\n\t\t\turl: \"ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')\",\n\t\t\tnodefined : \" ist nicht definiert!\",\n\t\t\tnovalue : \" Rückgabewert ist erforderlich!\",\n\t\t\tcustomarray : \"Benutzerdefinierte Funktion sollte ein Array zurückgeben!\",\n\t\t\tcustomfcheck : \"Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Datensatz anzeigen\",\n\t\tbClose: \"Schließen\"\n\t},\n\tdel : {\n\t\tcaption: \"Löschen\",\n\t\tmsg: \"Ausgewählte Datensätze löschen?\",\n\t\tbSubmit: \"Löschen\",\n\t\tbCancel: \"Abbrechen\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Ausgewählte Zeile editieren\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Neue Zeile einfügen\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Ausgewählte Zeile löschen\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Datensatz suchen\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Tabelle neu laden\",\n\t\talertcap: \"Warnung\",\n\t\talerttext: \"Bitte Zeile auswählen\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ausgewählte Zeile anzeigen\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Zeile speihern\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Zeile abbrechen\",\n\t\tselectcaption : \"Aktionen...\"\n\t},\n\tcol : {\n\t\tcaption: \"Spalten auswählen\",\n\t\tbSubmit: \"Speichern\",\n\t\tbCancel: \"Abbrechen\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Fehler\",\n\t\tnourl : \"Keine URL angegeben\",\n\t\tnorecords: \"Keine Datensätze zu bearbeiten\",\n\t\tmodel : \"colNames und colModel sind unterschiedlich lang!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\" €\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\",\n\t\t\t\t\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\",\n\t\t\t\t\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"\n\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function () {return '.';}, // one can also use 'er' instead of '.' but one have to use additional word like 'der' or 'den' before\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\tISO8601Long: \"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short: \"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    m - Numeric representation of a month, with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tShortDate: \"d.m.Y\",\t// in jQuery UI Datepicker: \"dd.MM.yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, j. F Y\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tFullDateTime: \"l, j. F Y H:i:s\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy HH:mm:ss\"\n\t\t\t\t// month day:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tMonthDay: \"d F\", // in jQuery UI Datepicker: \"dd MMMM\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\tShortTime: \"H:i\", // in jQuery UI Datepicker: \"HH:mm\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tLongTime: \"H:i:s\", // in jQuery UI Datepicker: \"HH:mm:ss\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tYearMonth: \"F Y\" // in jQuery UI Datepicker: \"MMMM yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Aufsteigend sortieren\",\n\t\tsortdesc : \"Absteigend sortieren\",\n\t\tcolumns : \"Spalte\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Gruppiere nach\",\n\t\tungrouping : \"Gruppierung aufheben\",\n\t\tsearchTitle : \"Erhalten Sie Artikel mit Wert:\",\n\t\tfreeze : \"Einfrieren\",\n\t\tunfreeze : \"Freigeben\",\n\t\treorder : \"Bewegen neu anordnen\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-dk.js",
    "content": "/**\n * jqGrid Danish Translation\n * Kaare Rasmussen kjs@jasonic.dk\n * http://jasonic.dk/blog \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"dk\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t    emptyrecords: \"No records to view\",\n\t\tloadtext: \"Loading...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Page {0} of {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Søg...\",\n\t    Find: \"Find\",\n\t    Reset: \"Nulstil\",\n\t    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Tilføj\",\n\t    editCaption: \"Ret\",\n\t    bSubmit: \"Send\",\n\t    bCancel: \"Annuller\",\n\t\tbClose: \"Luk\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t    msg: {\n\t        required:\"Felt er nødvendigt\",\n\t        number:\"Indtast venligst et validt tal\",\n\t        minValue:\"værdi skal være større end eller lig med\",\n\t        maxValue:\"værdi skal være mindre end eller lig med\",\n\t        email: \"er ikke en valid email\",\n\t        integer: \"Indtast venligst et validt heltalt\",\n\t\t\tdate: \"Indtast venligst en valid datoværdi\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"View Record\",\n\t    bClose: \"Close\"\n\t},\n\tdel : {\n\t    caption: \"Slet\",\n\t    msg: \"Slet valgte række(r)?\",\n\t    bSubmit: \"Slet\",\n\t    bCancel: \"Annuller\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Rediger valgte række\",\n\t\taddtext:\" \",\n\t    addtitle: \"Tilføj ny række\",\n\t    deltext: \" \",\n\t    deltitle: \"Slet valgte række\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Find poster\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Indlæs igen\",\n\t    alertcap: \"Advarsel\",\n\t    alerttext: \"Vælg venligst række\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Vis/skjul kolonner\",\n\t    bSubmit: \"Send\",\n\t    bCancel: \"Annuller\"\n\t},\n\terrors : {\n\t\terrcap : \"Fejl\",\n\t\tnourl : \"Ingel url valgt\",\n\t\tnorecords: \"Ingen poster at behandle\",\n\t    model : \"colNames og colModel har ikke samme længde!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Søn\", \"Man\", \"Tirs\", \"Ons\", \"Tors\", \"Fre\", \"Lør\",\n\t\t\t\t\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function (j) {return '.'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"j/n/Y\",\n\t            LongDate: \"l d. F Y\",\n\t            FullDateTime: \"l d F Y G:i:s\",\n\t            MonthDay: \"d. F\",\n\t            ShortTime: \"G:i\",\n\t            LongTime: \"G:i:s\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n// DK\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-el.js",
    "content": "/**\n * jqGrid Greek (el) Translation\n * Alex Cicovic\n * http://www.alexcicovic.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"el\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t    emptyrecords: \"No records to view\",\n\t\tloadtext: \"Φόρτωση...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Page {0} of {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\t\t\n\t},\n\tsearch : {\n\t    caption: \"Αναζήτηση...\",\n\t    Find: \"Εύρεση\",\n\t    Reset: \"Επαναφορά\",\n\t    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Εισαγωγή Εγγραφής\",\n\t    editCaption: \"Επεξεργασία Εγγραφής\",\n\t    bSubmit: \"Καταχώρηση\",\n\t    bCancel: \"Άκυρο\",\n\t\tbClose: \"Κλείσιμο\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t    msg: {\n\t        required:\"Το πεδίο είναι απαραίτητο\",\n\t        number:\"Το πεδίο δέχεται μόνο αριθμούς\",\n\t        minValue:\"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του \",\n\t        maxValue:\"Η τιμή πρέπει να είναι μικρότερη ή ίση του \",\n\t        email: \"Η διεύθυνση e-mail δεν είναι έγκυρη\",\n\t        integer: \"Το πεδίο δέχεται μόνο ακέραιους αριθμούς\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"View Record\",\n\t    bClose: \"Close\"\n\t},\n\tdel : {\n\t    caption: \"Διαγραφή\",\n\t    msg: \"Διαγραφή των επιλεγμένων εγγραφών;\",\n\t    bSubmit: \"Ναι\",\n\t    bCancel: \"Άκυρο\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Επεξεργασία επιλεγμένης εγγραφής\",\n\t\taddtext:\" \",\n\t    addtitle: \"Εισαγωγή νέας εγγραφής\",\n\t    deltext: \" \",\n\t    deltitle: \"Διαγραφή επιλεγμένης εγγραφής\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Εύρεση Εγγραφών\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Ανανέωση Πίνακα\",\n\t    alertcap: \"Προσοχή\",\n\t    alerttext: \"Δεν έχετε επιλέξει εγγραφή\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Εμφάνιση / Απόκρυψη Στηλών\",\n\t    bSubmit: \"ΟΚ\",\n\t    bCancel: \"Άκυρο\"\n\t},\n\terrors : {\n\t\terrcap : \"Σφάλμα\",\n\t\tnourl : \"Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια\",\n\t\tnorecords: \"Δεν υπάρχουν εγγραφές προς επεξεργασία\",\n\t\tmodel : \"Άνισος αριθμός πεδίων colNames/colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Κυρ\", \"Δευ\", \"Τρι\", \"Τετ\", \"Πεμ\", \"Παρ\", \"Σαβ\",\n\t\t\t\t\"Κυριακή\", \"Δευτέρα\", \"Τρίτη\", \"Τετάρτη\", \"Πέμπτη\", \"Παρασκευή\", \"Σάββατο\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Ιαν\", \"Φεβ\", \"Μαρ\", \"Απρ\", \"Μαι\", \"Ιουν\", \"Ιουλ\", \"Αυγ\", \"Σεπ\", \"Οκτ\", \"Νοε\", \"Δεκ\",\n\t\t\t\t\"Ιανουάριος\", \"Φεβρουάριος\", \"Μάρτιος\", \"Απρίλιος\", \"Μάιος\", \"Ιούνιος\", \"Ιούλιος\", \"Αύγουστος\", \"Σεπτέμβριος\", \"Οκτώβριος\", \"Νοέμβριος\", \"Δεκέμβριος\"\n\t\t\t],\n\t\t\tAmPm : [\"πμ\",\"μμ\",\"ΠΜ\",\"ΜΜ\"],\n\t\t\tS: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-en.js",
    "content": "/**\n * jqGrid English Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"en\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t\temptyrecords: \"No records to view\",\n\t\tloadtext: \"Loading...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Page {0} of {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Search...\",\n\t\tFind: \"Find\",\n\t\tReset: \"Reset\",\n\t\todata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"all\" },{ op: \"OR\",  text: \"any\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Add Record\",\n\t\teditCaption: \"Edit Record\",\n\t\tbSubmit: \"Submit\",\n\t\tbCancel: \"Cancel\",\n\t\tbClose: \"Close\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t\tmsg: {\n\t\t\trequired:\"Field is required\",\n\t\t\tnumber:\"Please, enter valid number\",\n\t\t\tminValue:\"value must be greater than or equal to \",\n\t\t\tmaxValue:\"value must be less than or equal to\",\n\t\t\temail: \"is not a valid e-mail\",\n\t\t\tinteger: \"Please, enter valid integer value\",\n\t\t\tdate: \"Please, enter valid date value\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"View Record\",\n\t\tbClose: \"Close\"\n\t},\n\tdel : {\n\t\tcaption: \"Delete\",\n\t\tmsg: \"Delete selected record(s)?\",\n\t\tbSubmit: \"Delete\",\n\t\tbCancel: \"Cancel\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Edit selected row\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Add new row\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Delete selected row\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Find records\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Reload Grid\",\n\t\talertcap: \"Warning\",\n\t\talerttext: \"Please, select row\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Select columns\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Cancel\"\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"No url is set\",\n\t\tnorecords: \"No records to process\",\n\t\tmodel : \"Length of colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \",\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thr\", \"Fri\", \"Sat\",\n\t\t\t\t\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\",\n\t\t\t\t\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-es.js",
    "content": "/**\n * jqGrid Spanish Translation\n * Traduccion jqGrid en Español por Yamil Bracho\n * Traduccion corregida y ampliada por Faserline, S.L. \n * http://www.faserline.com\n * Traduccion corregida y ampliada por Fernán Castro Asensio\n * Traducción corregida y ampliada por Luis Sánchez\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"es\"] = {\n\tdefaults : {\n\t\trecordtext: \"Mostrando {0} - {1} de {2}\",\n\t    emptyrecords: \"Sin registros que mostrar\",\n\t\tloadtext: \"Cargando...\",\n\t\tsavetext: \"Guardando...\",\n\t\tpgtext : \"Página {0} de {1}\",\n\t\tpgfirst : \"Primera página\",\n\t\tpglast : \"Última página\",\n\t\tpgnext : \"Siguiente página\",\n\t\tpgprev : \"Anterior página\",\n\t\tpgrecs : \"Registros por página\",\n\t\tshowhide: \"Alternar Contraer Expandir Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Configurar página\",\n\t\tpageText : \"Página:\",\n\t\trecordPage : \"Registros por página\",\n\t\tnomorerecs : \"No más registros...\",\n\t\tscrollPullup: \"Arrastrar arriba para cargar más...\",\n\t\tscrollPulldown : \"Arrastrar arriba para refrescar...\",\n\t\tscrollRefresh : \"Soltar para refrescar...\"\t\t\n\t},\n\tsearch : {\n\t    caption: \"Búsqueda...\",\n\t    Find: \"Buscar\",\n\t    Reset: \"Limpiar\",\n\t    odata: [{ oper:'eq', text:\"igual \"},{ oper:'ne', text:\"no igual a\"},{ oper:'lt', text:\"menor que\"},{ oper:'le', text:\"menor o igual que\"},{ oper:'gt', text:\"mayor que\"},{ oper:'ge', text:\"mayor o igual a\"},{ oper:'bw', text:\"empiece por\"},{ oper:'bn', text:\"no empiece por\"},{ oper:'in', text:\"está en\"},{ oper:'ni', text:\"no está en\"},{ oper:'ew', text:\"termina por\"},{ oper:'en', text:\"no termina por\"},{ oper:'cn', text:\"contiene\"},{ oper:'nc', text:\"no contiene\"},{ oper:'nu', text:'es nulo'},{ oper:'nn', text:'no es nulo'}, {oper:'bt', text:'entre'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"todo\" },\t{ op: \"OR\",  text: \"cualquier\" }\t],\n\t\toperandTitle : \"Clic para seleccionar la operación de búsqueda.\",\n\t\tresetTitle : \"Reiniciar valores de búsqueda\",\n\t\taddsubgrup : \"Agregar subgrupo\",\n\t\taddrule : \"Agregar regla\",\n\t\tdelgroup : \"Borrar grupo\",\n\t\tdelrule : \"Borrar regla\"\n\t},\n\tedit : {\n\t    addCaption: \"Agregar registro\",\n\t    editCaption: \"Modificar registro\",\n\t    bSubmit: \"Guardar\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Cerrar\",\n\t\tsaveData: \"Se han modificado los datos, ¿guardar cambios?\",\n\t\tbYes : \"Si\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancelar\",\n\t    msg: {\n\t        required:\"Campo obligatorio\",\n\t        number:\"Introduzca un número\",\n\t        minValue:\"El valor debe ser mayor o igual a \",\n\t        maxValue:\"El valor debe ser menor o igual a \",\n\t        email: \"no es una dirección de correo válida\",\n\t        integer: \"Introduzca un valor entero\",\n\t\tdate: \"Introduzca una fecha correcta \",\n\t\turl: \"no es una URL válida. Prefijo requerido ('http://' or 'https://')\",\n\t\tnodefined : \" no está definido.\",\n\t\tnovalue : \" valor de retorno es requerido.\",\n\t\tcustomarray : \"La función personalizada debe devolver un array.\",\n\t\tcustomfcheck : \"La función personalizada debe estar presente en el caso de validación personalizada.\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Consultar registro\",\n\t    bClose: \"Cerrar\"\n\t},\n\tdel : {\n\t    caption: \"Eliminar\",\n\t    msg: \"¿Desea eliminar los registros seleccionados?\",\n\t    bSubmit: \"Eliminar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t    edittext: \" \",\n\t    edittitle: \"Modificar fila seleccionada\",\n\t    addtext:\" \",\n\t    addtitle: \"Agregar nueva fila\",\n\t    deltext: \" \",\n\t    deltitle: \"Eliminar fila seleccionada\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Buscar información\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Recargar datos\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Seleccione una fila\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ver fila seleccionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Guardar fila\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancelar edición de fila\",\n\t\tselectcaption : \"Acciones...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/ocultar columnas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"No se ha especificado una URL\",\n\t\tnorecords: \"No hay datos para procesar\",\n\t    model : \"Las columnas de nombres son diferentes de las columnas del modelo\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Do\", \"Lu\", \"Ma\", \"Mi\", \"Ju\", \"Vi\", \"Sa\",\n\t\t\t\t\"Domingo\", \"Lunes\", \"Martes\", \"Miércoles\", \"Jueves\", \"Viernes\", \"Sábado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\",\n\t\t\t\t\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd-m-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Ordenar ascendentemente\",\n\t\tsortdesc : \"Ordenar descendientemente\",\n\t\tcolumns : \"Columnas\",\n\t\tfilter : \"Filtrar\",\n\t\tgrouping : \"Agrupar por\",\n\t\tungrouping : \"Desagrupar\",\n\t\tsearchTitle : \"Obtener elementos con un valor que:\",\n\t\tfreeze : \"Congelar\",\n\t\tunfreeze : \"Descongelar\",\n\t\treorder : \"Mover para reordenar\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-fa.js",
    "content": "/**\n * jqGrid Persian Translation\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"fa\"] = {\n        defaults: {\n            recordtext: \"نمابش {0} - {1} از {2}\",\n            emptyrecords: \"رکوردی یافت نشد\",\n            loadtext: \"بارگزاري...\",\n\t\t\tsavetext: \"Saving...\",\n\t\t\tpgtext: \"صفحه {0} از {1}\",\n\t\t\tpgfirst : \"First Page\",\n\t\t\tpglast : \"Last Page\",\n\t\t\tpgnext : \"Next Page\",\n\t\t\tpgprev : \"Previous Page\",\n\t\t\tpgrecs : \"Records per Page\",\n\t\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n        },\n        search: {\n            caption: \"جستجو...\",\n            Find: \"يافته ها\",\n            Reset: \"از نو\",\n            odata: [{ oper:'eq', text:\"برابر\"},{ oper:'ne', text:\"نا برابر\"},{ oper:'lt', text:\"به\"},{ oper:'le', text:\"کوچکتر\"},{ oper:'gt', text:\"از\"},{ oper:'ge', text:\"بزرگتر\"},{ oper:'bw', text:\"شروع با\"},{ oper:'bn', text:\"شروع نشود با\"},{ oper:'in', text:\"نباشد\"},{ oper:'ni', text:\"عضو این نباشد\"},{ oper:'ew', text:\"اتمام با\"},{ oper:'en', text:\"تمام نشود با\"},{ oper:'cn', text:\"حاوی\"},{ oper:'nc', text:\"نباشد حاوی\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n            groupOps: [{\n                op: \"AND\",\n                text: \"کل\"\n            },\n            {\n                op: \"OR\",\n                text: \"مجموع\"\n            }],\n\t\t\toperandTitle : \"Click to select search operation.\",\n\t\t\tresetTitle : \"Reset Search Value\",\n\t\t\taddsubgrup : \"Add subgroup\",\n\t\t\taddrule : \"Add rule\",\n\t\t\tdelgroup : \"Delete group\",\n\t\t\tdelrule : \"Delete rule\"\n        },\n        edit: {\n            addCaption: \"اضافه کردن رکورد\",\n            editCaption: \"ويرايش رکورد\",\n            bSubmit: \"ثبت\",\n            bCancel: \"انصراف\",\n            bClose: \"بستن\",\n            saveData: \"دیتا تعییر کرد! ذخیره شود؟\",\n            bYes: \"بله\",\n            bNo: \"خیر\",\n            bExit: \"انصراف\",\n            msg: {\n                required: \"فيلدها بايد ختما پر شوند\",\n                number: \"لطفا عدد وعتبر وارد کنيد\",\n                minValue: \"مقدار وارد شده بايد بزرگتر يا مساوي با\",\n                maxValue: \"مقدار وارد شده بايد کوچکتر يا مساوي\",\n                email: \"پست الکترونيک وارد شده معتبر نيست\",\n                integer: \"لطفا يک عدد صحيح وارد کنيد\",\n                date: \"لطفا يک تاريخ معتبر وارد کنيد\",\n                url: \"این آدرس صحیح نمی باشد. پیشوند نیاز است ('http://' یا 'https://')\",\n                nodefined: \" تعریف نشده!\",\n                novalue: \" مقدار برگشتی اجباری است!\",\n                customarray: \"تابع شما باید مقدار آرایه داشته باشد!\",\n                customfcheck: \"برای داشتن متد دلخواه شما باید سطون با چکینگ دلخواه داشته باشید!\"\n            }\n        },\n        view: {\n            caption: \"نمایش رکورد\",\n            bClose: \"بستن\"\n        },\n        del: {\n            caption: \"حذف\",\n            msg: \"از حذف گزينه هاي انتخاب شده مطمئن هستيد؟\",\n            bSubmit: \"حذف\",\n            bCancel: \"ابطال\"\n        },\n        nav: {\n            edittext: \" \",\n            edittitle: \"ويرايش رديف هاي انتخاب شده\",\n            addtext: \" \",\n            addtitle: \"افزودن رديف جديد\",\n            deltext: \" \",\n            deltitle: \"حذف ردبف هاي انتیاب شده\",\n            searchtext: \" \",\n            searchtitle: \"جستجوي رديف\",\n            refreshtext: \"\",\n            refreshtitle: \"بازيابي مجدد صفحه\",\n            alertcap: \"اخطار\",\n            alerttext: \"لطفا يک رديف انتخاب کنيد\",\n            viewtext: \"\",\n            viewtitle: \"نمایش رکورد های انتخاب شده\",\n\t\t\tsavetext: \"\",\n\t\t\tsavetitle: \"Save row\",\n\t\t\tcanceltext: \"\",\n\t\t\tcanceltitle : \"Cancel row editing\",\n\t\t\tselectcaption : \"Actions...\"\n        },\n        col: {\n            caption: \"نمايش/عدم نمايش ستون\",\n            bSubmit: \"ثبت\",\n            bCancel: \"انصراف\"\n        },\n        errors: {\n            errcap: \"خطا\",\n            nourl: \"هيچ آدرسي تنظيم نشده است\",\n            norecords: \"هيچ رکوردي براي پردازش موجود نيست\",\n            model: \"طول نام ستون ها محالف ستون هاي مدل مي باشد!\"\n        },\n        formatter: {\n            integer: {\n                thousandsSeparator: \" \",\n                defaultValue: \"0\"\n            },\n            number: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \" \",\n                decimalPlaces: 2,\n                defaultValue: \"0.00\"\n            },\n            currency: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \" \",\n                decimalPlaces: 2,\n                prefix: \"\",\n                suffix: \"\",\n                defaultValue: \"0\"\n            },\n            date: {\n                dayNames: [\"يک\", \"دو\", \"سه\", \"چهار\", \"پنج\", \"جمع\", \"شنب\", \"يکشنبه\", \"دوشنبه\", \"سه شنبه\", \"چهارشنبه\", \"پنجشنبه\", \"جمعه\", \"شنبه\"],\n                monthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"ژانويه\", \"فوريه\", \"مارس\", \"آوريل\", \"مه\", \"ژوئن\", \"ژوئيه\", \"اوت\", \"سپتامبر\", \"اکتبر\", \"نوامبر\", \"December\"],\n                AmPm: [\"ب.ظ\", \"ب.ظ\", \"ق.ظ\", \"ق.ظ\"],\n                S: function (b) {\n                    return b < 11 || b > 13 ? [\"st\", \"nd\", \"rd\", \"th\"][Math.min((b - 1) % 10, 3)] : \"th\"\n                },\n                srcformat: \"Y-m-d\",\n                newformat: \"d/m/Y\",\n\t\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n                masks: {\n                    ISO8601Long: \"Y-m-d H:i:s\",\n                    ISO8601Short: \"Y-m-d\",\n                    ShortDate: \"n/j/Y\",\n                    LongDate: \"l, F d, Y\",\n                    FullDateTime: \"l, F d, Y g:i:s A\",\n                    MonthDay: \"F d\",\n                    ShortTime: \"g:i A\",\n                    LongTime: \"g:i:s A\",\n                    SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                    UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                    YearMonth: \"F, Y\"\n                },\n                reformatAfterEdit: false,\n\t\t\t\tuserLocalTime : false\n            },\n            baseLinkUrl: \"\",\n            showAction: \"نمايش\",\n            target: \"\",\n            checkbox: {\n                disabled: true\n            },\n            idName: \"id\"\n        },\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n    };\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-fi.js",
    "content": "/**\n * jqGrid (fi) Finnish Translation\n * Jukka Inkeri  awot.fi  2010-05-19\n * Alex Grönholm  alex.gronholm@nextday.fi  2011-05-18\n * http://awot.fi\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"fi\"] = {\n\tdefaults: {\n\t\trecordtext: \"Rivit {0} - {1} / {2}\",\n\t    emptyrecords: \"Ei n&auml;ytett&auml;vi&auml;\",\n\t\tloadtext: \"Haetaan...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext: \"Sivu {0} / {1}\",\t\t\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch: {\n\t    caption: \"Etsi...\",\n\t    Find: \"Etsi\",\n\t    Reset: \"Tyhjenn&auml;\",\n\t    odata: [{ oper:'eq', text:\"on\"},{ oper:'ne', text:\"ei ole\"},{ oper:'lt', text:\"pienempi\"},{ oper:'le', text:\"pienempi tai yht&auml;suuri\"},{ oper:'gt', text:\"suurempi\"},{ oper:'ge', text:\"suurempi tai yht&auml;suuri\"},{ oper:'bw', text:\"alkaa\"},{ oper:'bn', text:\"ei ala\"},{ oper:'in', text:\"joukossa\"},{ oper:'ni', text:\"ei joukossa\"},{ oper:'ew', text:\"loppuu\"},{ oper:'en', text:\"ei lopu\"},{ oper:'cn', text:\"sis&auml;lt&auml;&auml;\"},{ oper:'nc', text:\"ei sis&auml;ll&auml;\"},{ oper:'nu', text:\"on tyhj&auml;\"},{ oper:'nn', text:\"ei ole tyhj&auml;\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"kaikki\" }, { op: \"OR\", text: \"mik&auml; tahansa\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit: {\n\t    addCaption: \"Uusi rivi\",\n\t    editCaption: \"Muokkaa rivi&auml;\",\n\t    bSubmit: \"OK\",\n\t    bCancel: \"Peru\",\n\t\tbClose: \"Sulje\",\n\t\tsaveData: \"Tietoja muutettu! Tallennetaanko?\",\n\t\tbYes: \"Kyll&auml;\",\n\t\tbNo: \"Ei\",\n\t\tbExit: \"Peru\",\n\t    msg: {\n\t        required: \"pakollinen\",\n\t        number: \"Anna kelvollinen nro\",\n\t        minValue: \"arvon oltava suurempi tai yht&auml;suuri kuin \",\n\t        maxValue: \"arvon oltava pienempi tai yht&auml;suuri kuin \",\n\t        email: \"ei ole kelvollinen s&auml;postiosoite\",\n\t        integer: \"Anna kelvollinen kokonaisluku\",\n\t\t\tdate: \"Anna kelvollinen pvm\",\n\t\t\turl: \"Ei ole kelvollinen linkki(URL). Alku oltava ('http://' tai 'https://')\",\n\t\t\tnodefined: \" ei ole m&auml;&auml;ritelty!\",\n\t\t\tnovalue: \" paluuarvo vaaditaan!\",\n\t\t\tcustomarray: \"Oman funktion tulee palauttaa jono!\",\n\t\t\tcustomfcheck: \"Oma funktio on m&auml;&auml;ritelt&auml;v&auml; r&auml;&auml;t&auml;l&ouml;ity&auml; tarkastusta varten!\"\n\t\t}\n\t},\n\tview: {\n\t    caption: \"N&auml;yt&auml; rivi\",\n\t    bClose: \"Sulje\"\n\t},\n\tdel: {\n\t    caption: \"Poista\",\n\t    msg: \"Poista valitut rivit?\",\n\t    bSubmit: \"Poista\",\n\t    bCancel: \"Peru\"\n\t},\n\tnav: {\n\t\tedittext: \"\",\n\t    edittitle: \"Muokkaa valittua rivi&auml;\",\n\t\taddtext: \"\",\n\t    addtitle: \"Uusi rivi\",\n\t    deltext: \"\",\n\t    deltitle: \"Poista valittu rivi\",\n\t    searchtext: \"\",\n\t    searchtitle: \"Etsi tietoja\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Lataa uudelleen\",\n\t    alertcap: \"Varoitus\",\n\t    alerttext: \"Valitse rivi\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"N&auml;yta valitut rivit\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol: {\n\t    caption: \"Valitse sarakkeet\",\n\t    bSubmit: \"OK\",\n\t    bCancel: \"Peru\"\t\n\t},\n\terrors : {\n\t\terrcap: \"Virhe\",\n\t\tnourl: \"URL on asettamatta\",\n\t\tnorecords: \"Ei muokattavia tietoja\",\n\t    model: \"Pituus colNames <> colModel!\"\n\t},\n\tformatter: {\n\t\tinteger: {thousandsSeparator: \"\", defaultValue: '0'},\n\t\tnumber: {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency: {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate: {\n\t\t\tdayNames:   [\n\t\t\t\t\"Su\", \"Ma\", \"Ti\", \"Ke\", \"To\", \"Pe\", \"La\",\n\t\t\t\t\"Sunnuntai\", \"Maanantai\", \"Tiistai\", \"Keskiviikko\", \"Torstai\", \"Perjantai\", \"Lauantai\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Tam\", \"Hel\", \"Maa\", \"Huh\", \"Tou\", \"Kes\", \"Hei\", \"Elo\", \"Syy\", \"Lok\", \"Mar\", \"Jou\",\n\t\t\t\t\"Tammikuu\", \"Helmikuu\", \"Maaliskuu\", \"Huhtikuu\", \"Toukokuu\", \"Kes&auml;kuu\", \"Hein&auml;kuu\", \"Elokuu\", \"Syyskuu\", \"Lokakuu\", \"Marraskuu\", \"Joulukuu\"\n\t\t\t],\n\t\t\tAmPm: [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks: {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"d.m.Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox: {disabled:true},\n\t\tidName: 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n// FI\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-fr.js",
    "content": "/**\n * jqGrid French Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"fr\"] = {\n\tdefaults : {\n\t\trecordtext: \"Enregistrements {0} - {1} sur {2}\",\n\t\temptyrecords: \"Aucun enregistrement à afficher\",\n\t\tloadtext: \"Chargement...\",\n\t\tsavetext: \"Sauvegarde en cours...\",\n\t\tpgtext : \"Page {0} de {1}\",\n\t\tpgfirst : \"Première page\",\n\t\tpglast : \"Dernière page\",\n\t\tpgnext : \"Page suivante\",\n\t\tpgprev : \"Page précédente\",\n\t\tpgrecs : \"Enregistrements par page\",\n\t\tshowhide: \"Réduire/Agrandir la grille\",\n\t\t// mobile\n\t\tpagerCaption : \"Grille::Options de pagination\",\n\t\tpageText : \"Page:\",\n\t\trecordPage: \"Enregistrements par page\",\n\t\tnomorerecs : \"Plus de données...\",\n\t\tscrollPullup: \"Glisser vers le haut pour charger plus de données...\",\n\t\tscrollPulldown : \"Glisser vers le bas pour rafraîchir...\",\n\t\tscrollRefresh : \"Relâcher pour rafraîchir...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Recherche...\",\n\t\tFind: \"Chercher\",\n\t\tReset: \"Réinitialiser\",\n\t\todata: [{ oper:'eq', text:\"égal\"},{ oper:'ne', text:\"différent\"},{ oper:'lt', text:\"inférieur\"},{ oper:'le', text:\"inférieur ou égal\"},{ oper:'gt', text:\"supérieur\"},{ oper:'ge', text:\"supérieur ou égal\"},{ oper:'bw', text:\"commence par\"},{ oper:'bn', text:\"ne commence pas par\"},{ oper:'in', text:\"est dans\"},{ oper:'ni', text:\"n'est pas dans\"},{ oper:'ew', text:\"finit par\"},{ oper:'en', text:\"ne finit pas par\"},{ oper:'cn', text:\"contient\"},{ oper:'nc', text:\"ne contient pas\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'entre'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"tous\" },\t{ op: \"OR\",  text: \"au moins un\" }\t],\n\t\toperandTitle : \"Cliquer pour sélectionner l'opérateur.\",\n\t\tresetTitle : \"Réinitialiser la valeur de recherche\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Ajouter\",\n\t\teditCaption: \"Éditer\",\n\t\tbSubmit: \"Valider\",\n\t\tbCancel: \"Annuler\",\n\t\tbClose: \"Fermer\",\n\t\tsaveData: \"Les données ont changé ! Enregistrer les modifications ?\",\n\t\tbYes: \"Oui\",\n\t\tbNo: \"Non\",\n\t\tbExit: \"Annuler\",\n\t\tmsg: {\n\t\t\trequired: \"Champ obligatoire\",\n\t\t\tnumber: \"Saisissez un nombre correct\",\n\t\t\tminValue: \"La valeur doit être supérieure ou égale à\",\n\t\t\tmaxValue: \"La valeur doit être inférieure ou égale à\",\n\t\t\temail: \"n'est pas un email valide\",\n\t\t\tinteger: \"Saisissez un entier valide\",\n\t\t\turl: \"n'est pas une adresse valide. Préfixe requis ('http://' or 'https://')\",\n\t\t\tnodefined : \" n'est pas défini!\",\n\t\t\tnovalue : \" la valeur de retour est requise!\",\n\t\t\tcustomarray : \"Une fonction personnalisée devrait retourner un tableau (array)!\",\n\t\t\tcustomfcheck : \"Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Voir les enregistrements\",\n\t\tbClose: \"Fermer\"\n\t},\n\tdel : {\n\t\tcaption: \"Supprimer\",\n\t\tmsg: \"Supprimer les enregistrements sélectionnés ?\",\n\t\tbSubmit: \"Supprimer\",\n\t\tbCancel: \"Annuler\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Editer la ligne sélectionnée\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Ajouter une ligne\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Supprimer la ligne sélectionnée\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Chercher un enregistrement\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Recharger le tableau\",\n\t\talertcap: \"Avertissement\",\n\t\talerttext: \"Veuillez sélectionner une ligne\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Afficher la ligne sélectionnée\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Sauvegarder la ligne\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Annuler l'édition de la ligne\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Afficher/Masquer les colonnes\",\n\t\tbSubmit: \"Valider\",\n\t\tbCancel: \"Annuler\"\n\t},\n\terrors : {\n\t\terrcap : \"Erreur\",\n\t\tnourl : \"Aucune adresse n'est paramétrée\",\n\t\tnorecords: \"Aucun enregistrement à traiter\",\n\t\tmodel : \"Nombre de titres (colNames) <> Nombre de données (colModel)!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\",\n\t\t\t\t\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Fév\", \"Mar\", \"Avr\", \"Mai\", \"Jui\", \"Jul\", \"Aou\", \"Sep\", \"Oct\", \"Nov\", \"Déc\",\n\t\t\t\t\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Aout\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j == 1 ? 'er' : 'e';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Trier en ordre croissant\",\n\t\tsortdesc: \"Trier en ordre décroissant\",\n\t\tcolumns : \"Colonnes\",\n\t\tfilter : \"Filtrer\",\n\t\tgrouping : \"Grouper par\",\n\t\tungrouping : \"Séparer\",\n\t\tsearchTitle : \"Prendre les items avec la valeur:\",\n\t\tfreeze : \"Figer\",\n\t\tunfreeze : \"Relâcher\",\n\t\treorder : \"Déplacer pour changer l'ordre\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-gl.js",
    "content": "/**\n * jqGrid Galician Translation\n * Translated by Jorge Barreiro <yortx.barry@gmail.com>\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"gl\"] = {\n\tdefaults : {\n\t\trecordtext: \"Amosando {0} - {1} de {2}\",\n\t    emptyrecords: \"Sen rexistros que amosar\",\n\t\tloadtext: \"Cargando...\",\n\t\tpgtext : \"Páxina {0} de {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Búsqueda...\",\n\t    Find: \"Buscar\",\n\t    Reset: \"Limpar\",\n\t    odata: [{ oper:'eq', text:\"igual \"},{ oper:'ne', text:\"diferente a\"},{ oper:'lt', text:\"menor que\"},{ oper:'le', text:\"menor ou igual que\"},{ oper:'gt', text:\"maior que\"},{ oper:'ge', text:\"maior ou igual a\"},{ oper:'bw', text:\"empece por\"},{ oper:'bn', text:\"non empece por\"},{ oper:'in', text:\"está en\"},{ oper:'ni', text:\"non está en\"},{ oper:'ew', text:\"termina por\"},{ oper:'en', text:\"non termina por\"},{ oper:'cn', text:\"contén\"},{ oper:'nc', text:\"non contén\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"todo\" },\t{ op: \"OR\",  text: \"calquera\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Engadir rexistro\",\n\t    editCaption: \"Modificar rexistro\",\n\t    bSubmit: \"Gardar\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Pechar\",\n\t\tsaveData: \"Modificáronse os datos, quere gardar os cambios?\",\n\t\tbYes : \"Si\",\n\t\tbNo : \"Non\",\n\t\tbExit : \"Cancelar\",\n\t    msg: {\n\t        required:\"Campo obrigatorio\",\n\t        number:\"Introduza un número\",\n\t        minValue:\"O valor debe ser maior ou igual a \",\n\t        maxValue:\"O valor debe ser menor ou igual a \",\n\t        email: \"non é un enderezo de correo válido\",\n\t        integer: \"Introduza un valor enteiro\",\n\t\t\tdate: \"Introduza unha data correcta \",\n\t\t\turl: \"non é unha URL válida. Prefixo requerido ('http://' ou 'https://')\",\n\t\t\tnodefined : \" non está definido.\",\n\t\t\tnovalue : \" o valor de retorno é obrigatorio.\",\n\t\t\tcustomarray : \"A función persoalizada debe devolver un array.\",\n\t\t\tcustomfcheck : \"A función persoalizada debe estar presente no caso de ter validación persoalizada.\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Consultar rexistro\",\n\t    bClose: \"Pechar\"\n\t},\n\tdel : {\n\t    caption: \"Eliminar\",\n\t    msg: \"Desexa eliminar os rexistros seleccionados?\",\n\t    bSubmit: \"Eliminar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Modificar a fila seleccionada\",\n\t\taddtext:\" \",\n\t    addtitle: \"Engadir unha nova fila\",\n\t    deltext: \" \",\n\t    deltitle: \"Eliminar a fila seleccionada\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Buscar información\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Recargar datos\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Seleccione unha fila\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ver fila seleccionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/ocultar columnas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Erro\",\n\t\tnourl : \"Non especificou unha URL\",\n\t\tnorecords: \"Non hai datos para procesar\",\n\t    model : \"As columnas de nomes son diferentes das columnas de modelo\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Do\", \"Lu\", \"Ma\", \"Me\", \"Xo\", \"Ve\", \"Sa\",\n\t\t\t\t\"Domingo\", \"Luns\", \"Martes\", \"Mércoles\", \"Xoves\", \"Vernes\", \"Sábado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Xan\", \"Feb\", \"Mar\", \"Abr\", \"Mai\", \"Xuñ\", \"Xul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dec\",\n\t\t\t\t\"Xaneiro\", \"Febreiro\", \"Marzo\", \"Abril\", \"Maio\", \"Xuño\", \"Xullo\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Decembro\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd-m-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-he.js",
    "content": "/**\n * jqGrid Hebrew Translation\n * Shuki Shukrun shukrun.shuki@gmail.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"he\"] = {\n\tdefaults : {\n\t\trecordtext: \"מציג {0} - {1} מתוך {2}\",\n\t\temptyrecords: \"אין רשומות להציג\",\n\t\tloadtext: \"טוען...\",\n\t\tpgtext : \"דף {0} מתוך {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"מחפש...\",\n\t\tFind: \"חפש\",\n\t\tReset: \"התחל\",\n\t\todata: [{ oper:'eq', text:\"שווה\"},{ oper:'ne', text:\"לא שווה\"},{ oper:'lt', text:\"קטן\"},{ oper:'le', text:\"קטן או שווה\"},{ oper:'gt', text:\"גדול\"},{ oper:'ge', text:\"גדול או שווה\"},{ oper:'bw', text:\"מתחיל ב\"},{ oper:'bn', text:\"לא מתחיל ב\"},{ oper:'in', text:\"נמצא ב\"},{ oper:'ni', text:\"לא נמצא ב\"},{ oper:'ew', text:\"מסתיים ב\"},{ oper:'en', text:\"לא מסתיים ב\"},{ oper:'cn', text:\"מכיל\"},{ oper:'nc', text:\"לא מכיל\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"הכל\" },\t{ op: \"OR\",  text: \"אחד מ\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"הוסף רשומה\",\n\t\teditCaption: \"ערוך רשומה\",\n\t\tbSubmit: \"שלח\",\n\t\tbCancel: \"בטל\",\n\t\tbClose: \"סגור\",\n\t\tsaveData: \"נתונים השתנו! לשמור?\",\n\t\tbYes : \"כן\",\n\t\tbNo : \"לא\",\n\t\tbExit : \"בטל\",\n\t\tmsg: {\n\t\t\trequired:\"שדה חובה\",\n\t\t\tnumber:\"אנא, הכנס מספר תקין\",\n\t\t\tminValue:\"ערך צריך להיות גדול או שווה ל \",\n\t\t\tmaxValue:\"ערך צריך להיות קטן או שווה ל \",\n\t\t\temail: \"היא לא כתובת איימל תקינה\",\n\t\t\tinteger: \"אנא, הכנס מספר שלם\",\n\t\t\tdate: \"אנא, הכנס תאריך תקין\",\n\t\t\turl: \"הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"הצג רשומה\",\n\t\tbClose: \"סגור\"\n\t},\n\tdel : {\n\t\tcaption: \"מחק\",\n\t\tmsg: \"האם למחוק את הרשומה/ות המסומנות?\",\n\t\tbSubmit: \"מחק\",\n\t\tbCancel: \"בטל\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"ערוך שורה מסומנת\",\n\t\taddtext:\"\",\n\t\taddtitle: \"הוסף שורה חדשה\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"מחק שורה מסומנת\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"חפש רשומות\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"טען גריד מחדש\",\n\t\talertcap: \"אזהרה\",\n\t\talerttext: \"אנא, בחר שורה\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"הצג שורה מסומנת\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"הצג/הסתר עמודות\",\n\t\tbSubmit: \"שלח\",\n\t\tbCancel: \"בטל\"\n\t},\n\terrors : {\n\t\terrcap : \"שגיאה\",\n\t\tnourl : \"לא הוגדרה כתובת url\",\n\t\tnorecords: \"אין רשומות לעבד\",\n\t\tmodel : \"אורך של colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\",\n\t\t\t\t\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"ינו\", \"פבר\", \"מרץ\", \"אפר\", \"מאי\", \"יונ\", \"יול\", \"אוג\", \"ספט\", \"אוק\", \"נוב\", \"דצמ\",\n\t\t\t\t\"ינואר\", \"פברואר\", \"מרץ\", \"אפריל\", \"מאי\", \"יוני\", \"יולי\", \"אוגוסט\", \"ספטמבר\", \"אוקטובר\", \"נובמבר\", \"דצמבר\"\n\t\t\t],\n\t\t\tAmPm : [\"לפני הצהרים\",\"אחר הצהרים\",\"לפני הצהרים\",\"אחר הצהרים\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-hr.js",
    "content": "/**\n * jqGrid Croatian Translation\n * Version 1.0.1 (developed for jQuery Grid 4.4)\n * msajko@gmail.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"hr\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pregled {0} - {1} od {2}\",\n\t\temptyrecords: \"Nema zapisa\",\n\t\tloadtext: \"Učitavam...\",\n\t\tpgtext : \"Stranica {0} od {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Traži...\",\n\t\tFind: \"Pretraživanje\",\n\t\tReset: \"Poništi\",\n\t\todata: [{ oper:'eq', text:\"jednak\"},{ oper:'ne', text:\"nije identičan\"},{ oper:'lt', text:\"manje\"},{ oper:'le', text:\"manje ili identično\"},{ oper:'gt', text:\"veće\"},{ oper:'ge', text:\"veće ili identično\"},{ oper:'bw', text:\"počinje sa\"},{ oper:'bn', text:\"ne počinje sa \"},{ oper:'in', text:\"je u\"},{ oper:'ni', text:\"nije u\"},{ oper:'ew', text:\"završava sa\"},{ oper:'en', text:\"ne završava sa\"},{ oper:'cn', text:\"sadrži\"},{ oper:'nc', text:\"ne sadrži\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"I\", text: \"sve\" },\t{ op: \"ILI\",  text: \"bilo koji\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj zapis\",\n\t\teditCaption: \"Promijeni zapis\",\n\t\tbSubmit: \"Preuzmi\",\n\t\tbCancel: \"Odustani\",\n\t\tbClose: \"Zatvri\",\n\t\tsaveData: \"Podaci su promijenjeni! Preuzmi promijene?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Odustani\",\n\t\tmsg: {\n\t\t\trequired:\"Polje je obavezno\",\n\t\t\tnumber:\"Molim, unesite ispravan broj\",\n\t\t\tminValue:\"Vrijednost mora biti veća ili identična \",\n\t\t\tmaxValue:\"Vrijednost mora biti manja ili identična\",\n\t\t\temail: \"neispravan e-mail\",\n\t\t\tinteger: \"Molim, unjeti ispravan cijeli broj (integer)\",\n\t\t\tdate: \"Molim, unjeti ispravan datum \",\n\t\t\turl: \"neispravan URL. Prefiks je obavezan ('http://' or 'https://')\",\n\t\t\tnodefined : \" nije definiran!\",\n\t\t\tnovalue : \" zahtjevan podatak je obavezan!\",\n\t\t\tcustomarray : \"Opcionalna funkcija trebala bi bili polje (array)!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Otvori zapis\",\n\t\tbClose: \"Zatvori\"\n\t},\n\tdel : {\n\t\tcaption: \"Obriši\",\n\t\tmsg: \"Obriši označen zapis ili više njih?\",\n\t\tbSubmit: \"Obriši\",\n\t\tbCancel: \"Odustani\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Promijeni obilježeni red\",\n\t\taddtext: \"\",\n\t\taddtitle: \"Dodaj novi red\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Obriši obilježeni red\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Potraži zapise\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ponovo preuzmi podatke\",\n\t\talertcap: \"Upozorenje\",\n\t\talerttext: \"Molim, odaberi red\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pregled obilježenog reda\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Obilježi kolonu\",\n\t\tbSubmit: \"Uredu\",\n\t\tbCancel: \"Odustani\"\n\t},\n\terrors : {\n\t\terrcap : \"Greška\",\n\t\tnourl : \"Nedostaje URL\",\n\t\tnorecords: \"Bez zapisa za obradu\",\n\t\tmodel : \"colNames i colModel imaju različitu duljinu!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\",\n\t\t\t\t\"Nedjelja\", \"Ponedjeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Sij\", \"Velj\", \"Ožu\", \"Tra\", \"Svi\", \"Lip\", \"Srp\", \"Kol\", \"Ruj\", \"Lis\", \"Stu\", \"Pro\",\n\t\t\t\t\"Siječanj\", \"Veljača\", \"Ožujak\", \"Travanj\", \"Svibanj\", \"Lipanj\", \"Srpanj\", \"Kolovoz\", \"Rujan\", \"Listopad\", \"Studeni\", \"Prosinac\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y.',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\tISO8601Long: \"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short: \"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    m - Numeric representation of a month, with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tShortDate: \"d.m.Y.\",\t// in jQuery UI Datepicker: \"dd.mm.yy.\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, j. F Y\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tFullDateTime: \"l, j. F Y H:i:s\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy HH:mm:ss\"\n\t\t\t\t// month day:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tMonthDay: \"d F\", // in jQuery UI Datepicker: \"dd MMMM\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\tShortTime: \"H:i\", // in jQuery UI Datepicker: \"HH:mm\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tLongTime: \"H:i:s\", // in jQuery UI Datepicker: \"HH:mm:ss\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tYearMonth: \"F Y\" // in jQuery UI Datepicker: \"MMMM yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-hu.js",
    "content": "/**\n * jqGrid Hungarian Translation\n * Őrszigety Ádám udx6bs@freemail.hu\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"hu\"] = {\n\tdefaults : {\n\t\trecordtext: \"Oldal {0} - {1} / {2}\",\n\t\temptyrecords: \"Nincs találat\",\n\t\tloadtext: \"Betöltés...\",\n\t\tpgtext : \"Oldal {0} / {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Keresés...\",\n\t\tFind: \"Keres\",\n\t\tReset: \"Alapértelmezett\",\n\t\todata: [{ oper:'eq', text:\"egyenlő\"},{ oper:'ne', text:\"nem egyenlő\"},{ oper:'lt', text:\"kevesebb\"},{ oper:'le', text:\"kevesebb vagy egyenlő\"},{ oper:'gt', text:\"nagyobb\"},{ oper:'ge', text:\"nagyobb vagy egyenlő\"},{ oper:'bw', text:\"ezzel kezdődik\"},{ oper:'bn', text:\"nem ezzel kezdődik\"},{ oper:'in', text:\"tartalmaz\"},{ oper:'ni', text:\"nem tartalmaz\"},{ oper:'ew', text:\"végződik\"},{ oper:'en', text:\"nem végződik\"},{ oper:'cn', text:\"tartalmaz\"},{ oper:'nc', text:\"nem tartalmaz\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Új tétel\",\n\t\teditCaption: \"Tétel szerkesztése\",\n\t\tbSubmit: \"Mentés\",\n\t\tbCancel: \"Mégse\",\n\t\tbClose: \"Bezárás\",\n\t\tsaveData: \"A tétel megváltozott! Tétel mentése?\",\n\t\tbYes : \"Igen\",\n\t\tbNo : \"Nem\",\n\t\tbExit : \"Mégse\",\n\t\tmsg: {\n\t\t\trequired:\"Kötelező mező\",\n\t\t\tnumber:\"Kérjük, adjon meg egy helyes számot\",\n\t\t\tminValue:\"Nagyobb vagy egyenlőnek kell lenni mint \",\n\t\t\tmaxValue:\"Kisebb vagy egyenlőnek kell lennie mint\",\n\t\t\temail: \"hibás emailcím\",\n\t\t\tinteger: \"Kérjük adjon meg egy helyes egész számot\",\n\t\t\tdate: \"Kérjük adjon meg egy helyes dátumot\",\n\t\t\turl: \"nem helyes cím. Előtag kötelező ('http://' vagy 'https://')\",\n\t\t\tnodefined : \" nem definiált!\",\n\t\t\tnovalue : \" visszatérési érték kötelező!!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Tétel megtekintése\",\n\t\tbClose: \"Bezárás\"\n\t},\n\tdel : {\n\t\tcaption: \"Törlés\",\n\t\tmsg: \"Kiválaztott tétel(ek) törlése?\",\n\t\tbSubmit: \"Törlés\",\n\t\tbCancel: \"Mégse\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Tétel szerkesztése\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Új tétel hozzáadása\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Tétel törlése\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Keresés\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Frissítés\",\n\t\talertcap: \"Figyelmeztetés\",\n\t\talerttext: \"Kérem válasszon tételt.\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Tétel megtekintése\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Oszlopok kiválasztása\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Mégse\"\n\t},\n\terrors : {\n\t\terrcap : \"Hiba\",\n\t\tnourl : \"Nincs URL beállítva\",\n\t\tnorecords: \"Nincs feldolgozásra váró tétel\",\n\t\tmodel : \"colNames és colModel hossza nem egyenlő!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Va\", \"Hé\", \"Ke\", \"Sze\", \"Csü\", \"Pé\", \"Szo\",\n\t\t\t\t\"Vasárnap\", \"Hétfő\", \"Kedd\", \"Szerda\", \"Csütörtök\", \"Péntek\", \"Szombat\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Már\", \"Ápr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Szep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Január\", \"Február\", \"Március\", \"Áprili\", \"Május\", \"Június\", \"Július\", \"Augusztus\", \"Szeptember\", \"Október\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"de\",\"du\",\"DE\",\"DU\"],\n\t\t\tS: function (j) {return '.-ik';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'Y/m/d',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"Y/j/n\",\n\t\t\t\tLongDate: \"Y. F hó d., l\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"a g:i\",\n\t\t\t\tLongTime: \"a g:i:s\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"Y, F\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-id.js",
    "content": "/**\n * jqGrid Indonesian Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"id\"] = {\n\tdefaults : {\n\t\trecordtext: \"Data {0} - {1} dari {2}\",\n\t\temptyrecords: \"Tidak ada data\",\n\t\tloadtext: \"Memuat...\",\n\t\tpgtext : \"Halaman {0} dari {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Pencarian\",\n\t\tFind: \"Cari !\",\n\t\tReset: \"Segarkan\",\n\t\todata: [{ oper:'eq', text:\"sama dengan\"},{ oper:'ne', text:\"tidak sama dengan\"},{ oper:'lt', text:\"kurang dari\"},{ oper:'le', text:\"kurang dari atau sama dengan\"},{ oper:'gt', text:\"lebih besar\"},{ oper:'ge', text:\"lebih besar atau sama dengan\"},{ oper:'bw', text:\"dimulai dengan\"},{ oper:'bn', text:\"tidak dimulai dengan\"},{ oper:'in', text:\"di dalam\"},{ oper:'ni', text:\"tidak di dalam\"},{ oper:'ew', text:\"diakhiri dengan\"},{ oper:'en', text:\"tidak diakhiri dengan\"},{ oper:'cn', text:\"mengandung\"},{ oper:'nc', text:\"tidak mengandung\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Tambah Data\",\n\t\teditCaption: \"Sunting Data\",\n\t\tbSubmit: \"Submit\",\n\t\tbCancel: \"Tutup\",\n\t\tbClose: \"Tutup\",\n\t\tsaveData: \"Data telah berubah! Simpan perubahan?\",\n\t\tbYes : \"Ya\",\n\t\tbNo : \"Tidak\",\n\t\tbExit : \"Tutup\",\n\t\tmsg: {\n\t\t\trequired:\"kolom wajib diisi\",\n\t\t\tnumber:\"hanya nomer yang diperbolehkan\",\n\t\t\tminValue:\"kolom harus lebih besar dari atau sama dengan\",\n\t\t\tmaxValue:\"kolom harus lebih kecil atau sama dengan\",\n\t\t\temail: \"alamat e-mail tidak valid\",\n\t\t\tinteger: \"hanya nilai integer yang diperbolehkan\",\n\t\t\tdate: \"nilai tanggal tidak valid\",\n\t\t\turl: \"Bukan URL yang valid. Harap gunakan ('http://' or 'https://')\",\n\t\t\tnodefined : \" belum didefinisikan!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Menampilkan data\",\n\t\tbClose: \"Tutup\"\n\t},\n\tdel : {\n\t\tcaption: \"Hapus\",\n\t\tmsg: \"Hapus data terpilih?\",\n\t\tbSubmit: \"Hapus\",\n\t\tbCancel: \"Batalkan\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Sunting data terpilih\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Tambah baris baru\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Hapus baris terpilih\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Temukan data\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Segarkan Grid\",\n\t\talertcap: \"Warning\",\n\t\talerttext: \"Harap pilih baris\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Tampilkan baris terpilih\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Pilih Kolom\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Batal\"\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"Tidak ada url yang diset\",\n\t\tnorecords: \"Tidak ada data untuk diproses\",\n\t\tmodel : \"Lebar dari colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"Rp. \", suffix:\"\", defaultValue: '0'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ming\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\",\n\t\t\t\t\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Agu\", \"Sep\", \"Okt\", \"Nov\", \"Des\",\n\t\t\t\t\"Januari\", \"Februari\", \"Maret\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Agustus\", \"September\", \"Oktober\", \"November\", \"Desember\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-is.js",
    "content": "/**\n * jqGrid Icelandic Translation\n * jtm@hi.is Univercity of Iceland\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"is\"] = {\n\tdefaults : {\n\t\trecordtext: \"Skoða {0} - {1} af {2}\",\n\t    emptyrecords: \"Engar færslur\",\n\t\tloadtext: \"Hleður...\",\n\t\tpgtext : \"Síða {0} af {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Leita...\",\n\t    Find: \"Leita\",\n\t    Reset: \"Endursetja\",\n\t    odata: [{ oper:'eq', text:\"sama og\"},{ oper:'ne', text:\"ekki sama og\"},{ oper:'lt', text:\"minna en\"},{ oper:'le', text:\"minna eða jafnt og\"},{ oper:'gt', text:\"stærra en\"},{ oper:'ge', text:\"stærra eða jafnt og\"},{ oper:'bw', text:\"byrjar á\"},{ oper:'bn', text:\"byrjar ekki á\"},{ oper:'in', text:\"er í\"},{ oper:'ni', text:\"er ekki í\"},{ oper:'ew', text:\"endar á\"},{ oper:'en', text:\"endar ekki á\"},{ oper:'cn', text:\"inniheldur\"},{ oper:'nc', text:\"inniheldur ekki\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"allt\" },\t{ op: \"OR\",  text: \"eða\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Bæta við færslu\",\n\t    editCaption: \"Breyta færslu\",\n\t    bSubmit: \"Vista\",\n\t    bCancel: \"Hætta við\",\n\t\tbClose: \"Loka\",\n\t\tsaveData: \"Gögn hafa breyst! Vista breytingar?\",\n\t\tbYes : \"Já\",\n\t\tbNo : \"Nei\",\n\t\tbExit : \"Hætta við\",\n\t    msg: {\n\t        required:\"Reitur er nauðsynlegur\",\n\t        number:\"Vinsamlega settu inn tölu\",\n\t        minValue:\"gildi verður að vera meira en eða jafnt og \",\n\t        maxValue:\"gildi verður að vera minna en eða jafnt og \",\n\t        email: \"er ekki löglegt email\",\n\t        integer: \"Vinsamlega settu inn tölu\",\n\t\t\tdate: \"Vinsamlega setti inn dagsetningu\",\n\t\t\turl: \"er ekki löglegt URL. Vantar ('http://' eða 'https://')\",\n\t\t\tnodefined : \" er ekki skilgreint!\",\n\t\t\tnovalue : \" skilagildi nauðsynlegt!\",\n\t\t\tcustomarray : \"Fall skal skila fylki!\",\n\t\t\tcustomfcheck : \"Fall skal vera skilgreint!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Skoða færslu\",\n\t    bClose: \"Loka\"\n\t},\n\tdel : {\n\t    caption: \"Eyða\",\n\t    msg: \"Eyða völdum færslum ?\",\n\t    bSubmit: \"Eyða\",\n\t    bCancel: \"Hætta við\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Breyta færslu\",\n\t\taddtext:\" \",\n\t    addtitle: \"Ný færsla\",\n\t    deltext: \" \",\n\t    deltitle: \"Eyða færslu\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Leita\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Endurhlaða\",\n\t    alertcap: \"Viðvörun\",\n\t    alerttext: \"Vinsamlega veldu færslu\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Skoða valda færslu\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Sýna / fela dálka\",\n\t    bSubmit: \"Vista\",\n\t    bCancel: \"Hætta við\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Villa\",\n\t\tnourl : \"Vantar slóð\",\n\t\tnorecords: \"Engar færslur valdar\",\n\t    model : \"Lengd colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sun\", \"Mán\", \"Þri\", \"Mið\", \"Fim\", \"Fös\", \"Lau\",\n\t\t\t\t\"Sunnudagur\", \"Mánudagur\", \"Þriðjudagur\", \"Miðvikudagur\", \"Fimmtudagur\", \"Föstudagur\", \"Laugardagur\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maí\", \"Jún\", \"Júl\", \"Ágú\", \"Sep\", \"Oct\", \"Nóv\", \"Des\",\n\t\t\t\t\"Janúar\", \"Febrúar\", \"Mars\", \"Apríl\", \"Maí\", \"Júný\", \"Júlý\", \"Ágúst\", \"September\", \"Október\", \"Nóvember\", \"Desember\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-it.js",
    "content": "/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"it\"] = {\n\tdefaults : {\n\t\trecordtext: \"Mostra {0} - {1} di {2}\",\n\t\temptyrecords: \"Non ci sono record da mostrare\",\n\t\tloadtext: \"Caricamento...\",\n\t\tsavetext: \"Salvataggio...\",\n\t\tpgtext : \"Pagina {0} di {1}\",\n\t\tpgfirst : \"Prima Pagina\",\n\t\tpglast : \"Ultima Pagina\",\n\t\tpgnext : \"Pagina Successiva\",\n\t\tpgprev : \"Pagina Precedente\",\n\t\tpgrecs : \"Records per Pagina\",\n\t\tshowhide: \"Espandi o collassa griglia\",\n\t\t// mobile\n\t\tpagerCaption : \"Griglia::Impostaioni della pagina\",\n\t\tpageText : \"Pagina:\",\n\t\trecordPage : \"Records per Pagina\",\n\t\tnomorerecs : \"Non ci sono altri record...\",\n\t\tscrollPullup: \"Trascina verso l'alto per altri...\",\n\t\tscrollPulldown : \"Trascina verso il basso per aggiornare...\",\n\t\tscrollRefresh : \"Rilascia per aggiornare...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Cerca...\",\n\t\tFind: \"Trova\",\n\t\tReset: \"Reset\",\n\t\todata: [{ oper:'eq', text:'uguale'},{ oper:'ne', text:'diverso'},{ oper:'lt', text:'minore'},{ oper:'le', text:'minore o uguale'},{ oper:'gt', text:'maggiore'},{ oper:'ge', text:'maggiore o uguale'},{ oper:'bw', text:'inizia per'},{ oper:'bn', text:'non inizia per'},{ oper:'in', text:'è in'},{ oper:'ni', text:'non è in'},{ oper:'ew', text:'finisce per'},{ oper:'en', text:'non finisce per'},{ oper:'cn', text:'contiene'},{ oper:'nc', text:'non contiene'},{ oper:'nu', text:'è null'},{ oper:'nn', text:'non è null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"tutti\" },{ op: \"OR\",  text: \"ciascuno\" }],\n\t\toperandTitle : \"Clicca sull'opzione di ricerca scelta.\",\n\t\tresetTitle : \"Resetta valori di ricerca\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Aggiungi Record\",\n\t\teditCaption: \"Modifica Record\",\n\t\tbSubmit: \"Invia\",\n\t\tbCancel: \"Annulla\",\n\t\tbClose: \"Chiudi\",\n\t\tsaveData: \"I dati sono stati modificati! Salvare le modifiche?\",\n\t\tbYes : \"Si\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Annulla\",\n\t\tmsg: {\n\t\t\trequired:\"Campo obbligatorio\",\n\t\t\tnumber:\"Per favore, inserisci un numero valido\",\n\t\t\tminValue:\"il valore deve essere maggiore o uguale a \",\n\t\t\tmaxValue:\"il valore deve essere minore o uguale a \",\n\t\t\temail: \"non è una e-mail valida\",\n\t\t\tinteger: \"Per favore, inserisci un intero valido\",\n\t\t\tdate: \"Per favore, inserisci una data valida\",\n\t\t\turl: \"non è un URL valido. Prefissi richiesti ('http://' o 'https://')\",\n\t\t\tnodefined : \" non è definito!\",\n\t\t\tnovalue : \" valore di ritorno richiesto!\",\n\t\t\tcustomarray : \"La funzione personalizzata deve restituire un array!\",\n\t\t\tcustomfcheck : \"La funzione personalizzata deve essere presente in caso di controlli personalizzati!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Visualizza Record\",\n\t\tbClose: \"Chiudi\"\n\t},\n\tdel : {\n\t\tcaption: \"Cancella\",\n\t\tmsg: \"Cancellare i record selezionati?\",\n\t\tbSubmit: \"Canella\",\n\t\tbCancel: \"Annulla\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Modifica riga selezionata\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Aggiungi riga\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Cancella riga\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Trova record\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ricarica tabella\",\n\t\talertcap: \"Attenzione\",\n\t\talerttext: \"Per favore, seleziona un record\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Visualizza riga selezionata\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Salva riga\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Annulla modifica riga\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Seleziona colonne\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Annulla\"\n\t},\n\terrors : {\n\t\terrcap : \"Errore\",\n\t\tnourl : \"Nessun url impostato\",\n\t\tnorecords: \"Non ci sono record da elaborare\",\n\t\tmodel : \"Lunghezza dei colNames <> colModel!\"\n\t},\n\tformatter:{\n\t\tinteger:{ \n\t\t\tthousandsSeparator:\".\",\n\t\t\tdefaultValue:\"0\"\n\t\t},\n\t\tnumber:{\n\t\t\tdecimalSeparator:\",\",\n\t\t\tthousandsSeparator:\".\",\n\t\t\tdecimalPlaces:2,\n\t\t\tdefaultValue:\"0,00\"\n\t\t},\n\t\tcurrency:{\n\t\t\tdecimalSeparator:\",\",\n\t\t\tthousandsSeparator:\".\",\n\t\t\tdecimalPlaces:2,\n\t\t\tprefix:\"€ \",\n\t\t\tsuffix:\"\",\n\t\t\tdefaultValue:\"0,00\"\n\t\t},\n\t\tdate:{\n\t\t\tdayNames:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\",\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"],\n\t\t\tmonthNames:[\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\",\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],\n\t\t\tAmPm:[\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS:function(b){return b<11||b>13?[\"st\",\"nd\",\"rd\",\"th\"][Math.min((b-1)%10,3)]:\"th\"},\n\t\t\tsrcformat:\"Y-m-d\",\n\t\t\tnewformat:\"d/m/Y\",\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks:{\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\", \n\t\t\t\tShortDate:\"d/m/Y\", \n\t\t\t\tLongDate:\"l d F Y\",\n\t\t\t\tFullDateTime:\"l d F Y G:i:s\",\n\t\t\t\tMonthDay:\"F d\",\n\t\t\t\tShortTime:\"H:i\",\n\t\t\t\tLongTime:\"H:i:s\",\n\t\t\t\tSortableDateTime:\"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime:\"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth:\"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit:false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl:\"\",\n\t\tshowAction:\"\",\n\t\ttarget:\"\",\n\t\tcheckbox:{ disabled:true},\n\t\tidName:\"id\"\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ja.js",
    "content": "/**\n * jqGrid Japanese Translation\n * OKADA Yoshitada okada.dev@sth.jp\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ja\"] = {\n\tdefaults : {\n\t\trecordtext: \"{2} \\u4EF6\\u4E2D {0} - {1} \\u3092\\u8868\\u793A \",\n\t    emptyrecords: \"\\u8868\\u793A\\u3059\\u308B\\u30EC\\u30B3\\u30FC\\u30C9\\u304C\\u3042\\u308A\\u307E\\u305B\\u3093\",\n\t\tloadtext: \"\\u8aad\\u307f\\u8fbc\\u307f\\u4e2d...\",\n\t\tpgtext : \"{1} \\u30DA\\u30FC\\u30B8\\u4E2D {0} \\u30DA\\u30FC\\u30B8\\u76EE \",\n\t\tsavetext: \"\\u4fdd\\u5b58\\u4e2d...\",\n\t\tpgfirst : \"\\u6700\\u521d\\u306e\\u30da\\u30fc\\u30b8\\u3078\",\n\t\tpglast : \"\\u6700\\u5f8c\\u306e\\u30da\\u30fc\\u30b8\\u3078\",\n\t\tpgnext : \"\\u6b21\\u306e\\u30da\\u30fc\\u30b8\",\n\t\tpgprev : \"\\u524d\\u306e\\u30da\\u30fc\\u30b8\",\n\t\tpgrecs : \"\\u30da\\u30fc\\u30b8\\u5358\\u4f4d\\u306e\\u30ec\\u30b3\\u30fc\\u30c9\\u6570\",\n\t\tshowhide: \"\\u30b0\\u30ea\\u30c3\\u30c9\\u306e\\u5c55\\u958b/\\u9589\\u3058\\u8fbc\\u307f\",\n\t\t// mobile\n\t\tpagerCaption : \"\\u30b0\\u30ea\\u30c3\\u30c9::\\u30da\\u30fc\\u30b8\\u8a2d\\u5b9a\",\n\t\tpageText : \"\\u30da\\u30fc\\u30b8:\",\n\t\trecordPage : \"\\u30da\\u30fc\\u30b8\\u5358\\u4f4d\\u306e\\u30ec\\u30b3\\u30fc\\u30c9\\u6570\",\n\t\tnomorerecs : \"\\u30ec\\u30b3\\u30fc\\u30c9\\u304c\\u3042\\u308a\\u307e\\u305b\\u3093...\",\n\t\tscrollPullup: \"\\u4e0a\\u306b\\u30b9\\u30af\\u30ed\\u30fc\\u30eb\\u3057\\u3066\\u8aad\\u307f\\u8fbc\\u307f...\",\n\t\tscrollPulldown : \"\\u4e0b\\u306b\\u30b9\\u30af\\u30ed\\u30fc\\u30eb\\u3057\\u3066\\u66f4\\u65b0...\",\n\t\tscrollRefresh : \"\\u653e\\u3057\\u3066\\u66f4\\u65b0...\"\n\t},\n\tsearch : {\n\t    caption: \"\\u691c\\u7d22...\",\n\t    Find: \"\\u691c\\u7d22\",\n\t    Reset: \"\\u30ea\\u30bb\\u30c3\\u30c8\",\n\t    odata: [{ oper:'eq', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u3044\"}, { oper:'ne', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u304F\\u306A\\u3044\"},\n            { oper:'lt', text:\"\\u6B21\\u3088\\u308A\\u5C0F\\u3055\\u3044\"}, { oper:'le', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u3044\\u304B\\u5C0F\\u3055\\u3044\"},\n            { oper:'gt', text:\"\\u6B21\\u3088\\u308A\\u5927\\u304D\\u3044\"}, { oper:'ge', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u3044\\u304B\\u5927\\u304D\\u3044\"},\n            { oper:'bw', text:\"\\u6B21\\u3067\\u59CB\\u307E\\u308B\"}, { oper:'bn', text:\"\\u6B21\\u3067\\u59CB\\u307E\\u3089\\u306A\\u3044\"},\n            { oper:'in', text:\"\\u6B21\\u306B\\u542B\\u307E\\u308C\\u308B\"}, { oper:'ni', text:\"\\u6B21\\u306B\\u542B\\u307E\\u308C\\u306A\\u3044\"},\n            { oper:'ew', text:\"\\u6B21\\u3067\\u7D42\\u308F\\u308B\"}, { oper:'en', text:\"\\u6B21\\u3067\\u7D42\\u308F\\u3089\\u306A\\u3044\"},\n            { oper:'cn', text:\"\\u6B21\\u3092\\u542B\\u3080\"}, { oper:'nc', text:\"\\u6B21\\u3092\\u542B\\u307E\\u306A\\u3044\"},\n\t\t\t{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [{\n                op: \"AND\",\n                text: \"\\u3059\\u3079\\u3066\\u306E\"\n            },\n            {\n                op: \"OR\",\n                text: \"\\u3044\\u305A\\u308C\\u304B\\u306E\"\n            }],\n\t\toperandTitle : \"\\u30af\\u30ea\\u30c3\\u30af\\u3057\\u3066\\u691c\\u7d22\\u64cd\\u4f5c\\u3092\\u9078\\u629e\",\n\t\tresetTitle : \"\\u691c\\u7d22\\u5024\\u3092\\u30ea\\u30bb\\u30c3\\u30c8\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n\t},\n\tedit : {\n\t    addCaption: \"\\u30ec\\u30b3\\u30fc\\u30c9\\u8ffd\\u52a0\",\n\t    editCaption: \"\\u30ec\\u30b3\\u30fc\\u30c9\\u7de8\\u96c6\",\n\t    bSubmit: \"\\u9001\\u4fe1\",\n\t    bCancel: \"\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\",\n  \t\tbClose: \"\\u9589\\u3058\\u308b\",\n      saveData: \"\\u30C7\\u30FC\\u30BF\\u304C\\u5909\\u66F4\\u3055\\u308C\\u3066\\u3044\\u307E\\u3059\\u3002\\u4FDD\\u5B58\\u3057\\u307E\\u3059\\u304B\\uFF1F\",\n      bYes: \"\\u306F\\u3044\",\n      bNo: \"\\u3044\\u3044\\u3048\",\n      bExit: \"\\u30AD\\u30E3\\u30F3\\u30BB\\u30EB\",\n\t    msg: {\n\t        required:\"\\u3053\\u306e\\u9805\\u76ee\\u306f\\u5fc5\\u9808\\u3067\\u3059\\u3002\",\n\t        number:\"\\u6b63\\u3057\\u3044\\u6570\\u5024\\u3092\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n\t        minValue:\"\\u6b21\\u306e\\u5024\\u4ee5\\u4e0a\\u3067\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n\t        maxValue:\"\\u6b21\\u306e\\u5024\\u4ee5\\u4e0b\\u3067\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n\t        email: \"e-mail\\u304c\\u6b63\\u3057\\u304f\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\",\n\t        integer: \"\\u6b63\\u3057\\u3044\\u6574\\u6570\\u5024\\u3092\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n    \t\t\tdate: \"\\u6b63\\u3057\\u3044\\u5024\\u3092\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n          url: \"\\u306F\\u6709\\u52B9\\u306AURL\\u3067\\u306F\\u3042\\u308A\\u307E\\u305B\\u3093\\u3002\\20\\u30D7\\u30EC\\u30D5\\u30A3\\u30C3\\u30AF\\u30B9\\u304C\\u5FC5\\u8981\\u3067\\u3059\\u3002 ('http://' \\u307E\\u305F\\u306F 'https://')\",\n          nodefined: \" \\u304C\\u5B9A\\u7FA9\\u3055\\u308C\\u3066\\u3044\\u307E\\u305B\\u3093\",\n          novalue: \" \\u623B\\u308A\\u5024\\u304C\\u5FC5\\u8981\\u3067\\u3059\",\n          customarray: \"\\u30AB\\u30B9\\u30BF\\u30E0\\u95A2\\u6570\\u306F\\u914D\\u5217\\u3092\\u8FD4\\u3059\\u5FC5\\u8981\\u304C\\u3042\\u308A\\u307E\\u3059\",\n          customfcheck: \"\\u30AB\\u30B9\\u30BF\\u30E0\\u691C\\u8A3C\\u306B\\u306F\\u30AB\\u30B9\\u30BF\\u30E0\\u95A2\\u6570\\u304C\\u5FC5\\u8981\\u3067\\u3059\"\n\t\t}\n\t},\n\tview : {\n      caption: \"\\u30EC\\u30B3\\u30FC\\u30C9\\u3092\\u8868\\u793A\",\n      bClose: \"\\u9589\\u3058\\u308B\"\n\t},\n\tdel : {\n\t    caption: \"\\u524a\\u9664\",\n\t    msg: \"\\u9078\\u629e\\u3057\\u305f\\u30ec\\u30b3\\u30fc\\u30c9\\u3092\\u524a\\u9664\\u3057\\u307e\\u3059\\u304b\\uff1f\",\n\t    bSubmit: \"\\u524a\\u9664\",\n\t    bCancel: \"\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\"\n\t},\n\tnav : {\n    \tedittext: \" \",\n\t    edittitle: \"\\u9078\\u629e\\u3057\\u305f\\u884c\\u3092\\u7de8\\u96c6\",\n      addtext:\" \",\n\t    addtitle: \"\\u884c\\u3092\\u65b0\\u898f\\u8ffd\\u52a0\",\n\t    deltext: \" \",\n\t    deltitle: \"\\u9078\\u629e\\u3057\\u305f\\u884c\\u3092\\u524a\\u9664\",\n\t    searchtext: \" \",\n\t    searchtitle: \"\\u30ec\\u30b3\\u30fc\\u30c9\\u691c\\u7d22\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"\\u30b0\\u30ea\\u30c3\\u30c9\\u3092\\u30ea\\u30ed\\u30fc\\u30c9\",\n\t    alertcap: \"\\u8b66\\u544a\",\n\t    alerttext: \"\\u884c\\u3092\\u9078\\u629e\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n      viewtext: \"\",\n      viewtitle: \"\\u9078\\u629E\\u3057\\u305F\\u884C\\u3092\\u8868\\u793A\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"\\u5217\\u3092\\u4fdd\\u5b58\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"\\u5217\\u306e\\u7de8\\u96c6\\u3092\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\",\n\t\tselectcaption : \"\\u30a2\\u30af\\u30b7\\u30e7\\u30f3...\"\n\t},\n\tcol : {\n\t    caption: \"\\u5217\\u3092\\u8868\\u793a\\uff0f\\u96a0\\u3059\",\n\t    bSubmit: \"\\u9001\\u4fe1\",\n\t    bCancel: \"\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\"\t\n\t},\n\terrors : {\n\t\terrcap : \"\\u30a8\\u30e9\\u30fc\",\n\t\tnourl : \"URL\\u304c\\u8a2d\\u5b9a\\u3055\\u308c\\u3066\\u3044\\u307e\\u305b\\u3093\\u3002\",\n\t\tnorecords: \"\\u51e6\\u7406\\u5bfe\\u8c61\\u306e\\u30ec\\u30b3\\u30fc\\u30c9\\u304c\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\",\n\t    model : \"colNames\\u306e\\u9577\\u3055\\u304ccolModel\\u3068\\u4e00\\u81f4\\u3057\\u307e\\u305b\\u3093\\u3002\"\n\t},\n\tformatter : {\n            integer: {\n                thousandsSeparator: \",\",\n                defaultValue: '0'\n            },\n            number: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \",\",\n                decimalPlaces: 2,\n                defaultValue: '0.00'\n            },\n            currency: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \",\",\n                decimalPlaces: 0,\n                prefix: \"\",\n                suffix: \"\",\n                defaultValue: '0'\n            },\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"\\u65e5\", \"\\u6708\", \"\\u706b\", \"\\u6c34\", \"\\u6728\", \"\\u91d1\", \"\\u571f\",\n\t\t\t\t\"\\u65e5\", \"\\u6708\", \"\\u706b\", \"\\u6c34\", \"\\u6728\", \"\\u91d1\", \"\\u571f\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\",\n\t\t\t\t\"1\\u6708\", \"2\\u6708\", \"3\\u6708\", \"4\\u6708\", \"5\\u6708\", \"6\\u6708\", \"7\\u6708\", \"8\\u6708\", \"9\\u6708\", \"10\\u6708\", \"11\\u6708\", \"12\\u6708\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) { return \"\\u756a\\u76ee\"; },\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-kr.js",
    "content": "/**\n * jqGrid English Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"kr\"] = {\n\tdefaults : {\n\t\trecordtext: \"보기 {0} - {1} / {2}\",\n\t\temptyrecords: \"표시할 행이 없습니다\",\n\t\tloadtext: \"조회중...\",\n\t\tpgtext : \"페이지 {0} / {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"검색...\",\n\t\tFind: \"찾기\",\n\t\tReset: \"초기화\",\n\t\todata: [{ oper:'eq', text:\"같다\"},{ oper:'ne', text:\"같지 않다\"},{ oper:'lt', text:\"작다\"},{ oper:'le', text:\"작거나 같다\"},{ oper:'gt', text:\"크다\"},{ oper:'ge', text:\"크거나 같다\"},{ oper:'bw', text:\"로 시작한다\"},{ oper:'bn', text:\"로 시작하지 않는다\"},{ oper:'in', text:\"내에 있다\"},{ oper:'ni', text:\"내에 있지 않다\"},{ oper:'ew', text:\"로 끝난다\"},{ oper:'en', text:\"로 끝나지 않는다\"},{ oper:'cn', text:\"내에 존재한다\"},{ oper:'nc', text:\"내에 존재하지 않는다\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"전부\" },\t{ op: \"OR\",  text: \"임의\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"행 추가\",\n\t\teditCaption: \"행 수정\",\n\t\tbSubmit: \"전송\",\n\t\tbCancel: \"취소\",\n\t\tbClose: \"닫기\",\n\t\tsaveData: \"자료가 변경되었습니다! 저장하시겠습니까?\",\n\t\tbYes : \"예\",\n\t\tbNo : \"아니오\",\n\t\tbExit : \"취소\",\n\t\tmsg: {\n\t\t\trequired:\"필수항목입니다\",\n\t\t\tnumber:\"유효한 번호를 입력해 주세요\",\n\t\t\tminValue:\"입력값은 크거나 같아야 합니다\",\n\t\t\tmaxValue:\"입력값은 작거나 같아야 합니다\",\n\t\t\temail: \"유효하지 않은 이메일주소입니다\",\n\t\t\tinteger: \"유효한 숫자를 입력하세요\",\n\t\t\tdate: \"유효한 날짜를 입력하세요\",\n\t\t\turl: \"은 유효하지 않은 URL입니다. 문장앞에 다음단어가 필요합니다('http://' or 'https://')\",\n\t\t\tnodefined : \" 은 정의도지 않았습니다!\",\n\t\t\tnovalue : \" 반환값이 필요합니다!\",\n\t\t\tcustomarray : \"사용자정의 함수는 배열을 반환해야 합니다!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"행 조회\",\n\t\tbClose: \"닫기\"\n\t},\n\tdel : {\n\t\tcaption: \"삭제\",\n\t\tmsg: \"선택된 행을 삭제하시겠습니까?\",\n\t\tbSubmit: \"삭제\",\n\t\tbCancel: \"취소\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"선택된 행 편집\",\n\t\taddtext:\"\",\n\t\taddtitle: \"행 삽입\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"선택된 행 삭제\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"행 찾기\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"그리드 갱신\",\n\t\talertcap: \"경고\",\n\t\talerttext: \"행을 선택하세요\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"선택된 행 조회\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"열을 선택하세요\",\n\t\tbSubmit: \"확인\",\n\t\tbCancel: \"취소\"\n\t},\n\terrors : {\n\t\terrcap : \"오류\",\n\t\tnourl : \"설정된 url이 없습니다\",\n\t\tnorecords: \"처리할 행이 없습니다\",\n\t\tmodel : \"colNames의 길이가 colModel과 일치하지 않습니다!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \",\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thr\", \"Fri\", \"Sat\",\n\t\t\t\t\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\",\n\t\t\t\t\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'm-d-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"Y/j/n\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-lt.js",
    "content": "/**\n * jqGrid Lithuanian Translation\n * aur1mas aur1mas@devnet.lt\n * http://aur1mas.devnet.lt\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"lt\"] = {\n\tdefaults : {\n\t\trecordtext: \"Peržiūrima {0} - {1} iš {2}\",\n\t\temptyrecords: \"Įrašų nėra\",\n\t\tloadtext: \"Kraunama...\",\n\t\tpgtext : \"Puslapis {0} iš {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Paieška...\",\n\t\tFind: \"Ieškoti\",\n\t\tReset: \"Atstatyti\",\n\t\todata: [{ oper:'eq', text:\"lygu\"},{ oper:'ne', text:\"nelygu\"},{ oper:'lt', text:\"mažiau\"},{ oper:'le', text:\"mažiau arba lygu\"},{ oper:'gt', text:\"daugiau\"},{ oper:'ge', text:\"daugiau arba lygu\"},{ oper:'bw', text:\"prasideda\"},{ oper:'bn', text:\"neprasideda\"},{ oper:'in', text:\"reikšmė yra\"},{ oper:'ni', text:\"reikšmės nėra\"},{ oper:'ew', text:\"baigiasi\"},{ oper:'en', text:\"nesibaigia\"},{ oper:'cn', text:\"yra sudarytas\"},{ oper:'nc', text:\"nėra sudarytas\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"visi\" },\t{ op: \"OR\",  text: \"bet kuris\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Sukurti įrašą\",\n\t\teditCaption: \"Redaguoti įrašą\",\n\t\tbSubmit: \"Išsaugoti\",\n\t\tbCancel: \"Atšaukti\",\n\t\tbClose: \"Uždaryti\",\n\t\tsaveData: \"Duomenys buvo pakeisti! Išsaugoti pakeitimus?\",\n\t\tbYes : \"Taip\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Atšaukti\",\n\t\tmsg: {\n\t\t\trequired:\"Privalomas laukas\",\n\t\t\tnumber:\"Įveskite tinkamą numerį\",\n\t\t\tminValue:\"reikšmė turi būti didesnė arba lygi \",\n\t\t\tmaxValue:\"reikšmė turi būti mažesnė arba lygi\",\n\t\t\temail: \"neteisingas el. pašto adresas\",\n\t\t\tinteger: \"Įveskite teisingą sveikąjį skaičių\",\n\t\t\tdate: \"Įveskite teisingą datą\",\n\t\t\turl: \"blogas adresas. Nepamirškite pridėti ('http://' arba 'https://')\",\n\t\t\tnodefined : \" nėra apibrėžta!\",\n\t\t\tnovalue : \" turi būti gražinama kokia nors reikšmė!\",\n\t\t\tcustomarray : \"Custom f-ja turi grąžinti masyvą!\",\n\t\t\tcustomfcheck : \"Custom f-ja tūrėtų būti sukurta, prieš bandant ją naudoti!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Peržiūrėti įrašus\",\n\t\tbClose: \"Uždaryti\"\n\t},\n\tdel : {\n\t\tcaption: \"Ištrinti\",\n\t\tmsg: \"Ištrinti pažymėtus įrašus(-ą)?\",\n\t\tbSubmit: \"Ištrinti\",\n\t\tbCancel: \"Atšaukti\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Redaguoti pažymėtą eilutę\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Pridėti naują eilutę\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Ištrinti pažymėtą eilutę\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Rasti įrašus\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Perkrauti lentelę\",\n\t\talertcap: \"Įspėjimas\",\n\t\talerttext: \"Pasirinkite eilutę\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Peržiūrėti pasirinktą eilutę\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Pasirinkti stulpelius\",\n\t\tbSubmit: \"Gerai\",\n\t\tbCancel: \"Atšaukti\"\n\t},\n\terrors : {\n\t\terrcap : \"Klaida\",\n\t\tnourl : \"Url reikšmė turi būti perduota\",\n\t\tnorecords: \"Nėra įrašų, kuriuos būtų galima apdoroti\",\n\t\tmodel : \"colNames skaičius <> colModel skaičiui!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \"\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sek\", \"Pir\", \"Ant\", \"Tre\", \"Ket\", \"Pen\", \"Šeš\",\n\t\t\t\t\"Sekmadienis\", \"Pirmadienis\", \"Antradienis\", \"Trečiadienis\", \"Ketvirtadienis\", \"Penktadienis\", \"Šeštadienis\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Sau\", \"Vas\", \"Kov\", \"Bal\", \"Geg\", \"Bir\", \"Lie\", \"Rugj\", \"Rugs\", \"Spa\", \"Lap\", \"Gru\",\n\t\t\t\t\"Sausis\", \"Vasaris\", \"Kovas\", \"Balandis\", \"Gegužė\", \"Birželis\", \"Liepa\", \"Rugpjūtis\", \"Rugsėjis\", \"Spalis\", \"Lapkritis\", \"Gruodis\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-me.js",
    "content": "/**\n * jqGrid Montenegrian Translation\n * Bild Studio info@bild-studio.net\n * http://www.bild-studio.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"me\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pregled {0} - {1} od {2}\",\n\t\temptyrecords: \"Ne postoji nijedan zapis\",\n\t\tloadtext: \"Učitivanje...\",\n\t\tpgtext : \"Strana {0} od {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Traženje...\",\n\t\tFind: \"Traži\",\n\t\tReset: \"Resetuj\",\n\t\todata: [{ oper:'eq', text:\"jednako\"},{ oper:'ne', text:\"nije jednako\"},{ oper:'lt', text:\"manje\"},{ oper:'le', text:\"manje ili jednako\"},{ oper:'gt', text:\"veće\"},{ oper:'ge', text:\"veće ili jednako\"},{ oper:'bw', text:\"počinje sa\"},{ oper:'bn', text:\"ne počinje sa\"},{ oper:'in', text:\"je u\"},{ oper:'ni', text:\"nije u\"},{ oper:'ew', text:\"završava sa\"},{ oper:'en', text:\"ne završava sa\"},{ oper:'cn', text:\"sadrži\"},{ oper:'nc', text:\"ne sadrži\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"sva\" },\t{ op: \"OR\",  text: \"bilo koje\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj zapis\",\n\t\teditCaption: \"Izmjeni zapis\",\n\t\tbSubmit: \"Pošalji\",\n\t\tbCancel: \"Odustani\",\n\t\tbClose: \"Zatvori\",\n\t\tsaveData: \"Podatak je izmjenjen! Sačuvaj izmjene?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Odustani\",\n\t\tmsg: {\n\t\t\trequired:\"Polje je obavezno\",\n\t\t\tnumber:\"Unesite ispravan broj\",\n\t\t\tminValue:\"vrijednost mora biti veća od ili jednaka sa \",\n\t\t\tmaxValue:\"vrijednost mora biti manja ili jednaka sa\",\n\t\t\temail: \"nije ispravna email adresa, nije valjda da ne umiješ ukucati mail!?\",\n\t\t\tinteger: \"Ne zajebaji se unesi cjelobrojnu vrijednost \",\n\t\t\tdate: \"Unesite ispravan datum\",\n\t\t\turl: \"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')\",\n\t\t\tnodefined : \" nije definisan!\",\n\t\t\tnovalue : \" zahtjevana je povratna vrijednost!\",\n\t\t\tcustomarray : \"Prilagođena funkcija treba da vrati niz!\",\n\t\t\tcustomfcheck : \"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provjere!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Pogledaj zapis\",\n\t\tbClose: \"Zatvori\"\n\t},\n\tdel : {\n\t\tcaption: \"Izbrisi\",\n\t\tmsg: \"Izbrisi izabran(e) zapise(e)?\",\n\t\tbSubmit: \"Izbriši\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Izmjeni izabrani red\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Dodaj novi red\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Izbriši izabran red\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Nađi zapise\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ponovo učitaj podatke\",\n\t\talertcap: \"Upozorenje\",\n\t\talerttext: \"Izaberite red\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pogledaj izabrani red\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Izaberi kolone\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\terrors : {\n\t\terrcap : \"Greška\",\n\t\tnourl : \"Nije postavljen URL\",\n\t\tnorecords: \"Nema zapisa za obradu\",\n\t\tmodel : \"Dužina modela colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\",\n\t\t\t\t\"Nedelja\", \"Ponedeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-nl.js",
    "content": "//NETHERLANDS\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"nl\"] = {\n        defaults:\n        {\n            recordtext: \"regels {0} - {1} van {2}\",\n            emptyrecords: \"Geen data gevonden.\",\n            loadtext: \"Laden...\",\n            pgtext: \"pagina  {0}  van {1}\",\n\t\t\tsavetext: \"Saving...\",\n\t\t\tpgfirst : \"Eerste Pagina\",\n\t\t\tpglast : \"Laatste Pagina\",\n\t\t\tpgnext : \"Volgende Pagina\",\n\t\t\tpgprev : \"Vorige Pagina\",\n\t\t\tpgrecs : \"Records per Pagina\",\n\t\t\tshowhide: \"Schakelen Uitklappen Inklappen Grid\",\n\t\t\t// mobile\n\t\t\tpagerCaption : \"Grid::Page Settings\",\n\t\t\tpageText : \"Page:\",\n\t\t\trecordPage : \"Records per Page\",\n\t\t\tnomorerecs : \"No more records...\",\n\t\t\tscrollPullup: \"Pull up to load more...\",\n\t\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\t\tscrollRefresh : \"Release to refresh...\"\n        },\n        search:\n        {\n            caption: \"Zoeken...\",\n            Find: \"Zoek\",\n            Reset: \"Herstellen\",\n            odata: [{ oper:'eq', text:\"gelijk aan\"},{ oper:'ne', text:\"niet gelijk aan\"},{ oper:'lt', text:\"kleiner dan\"},{ oper:'le', text:\"kleiner dan of gelijk aan\"},{ oper:'gt', text:\"groter dan\"},{ oper:'ge', text:\"groter dan of gelijk aan\"},{ oper:'bw', text:\"begint met\"},{ oper:'bn', text:\"begint niet met\"},{ oper:'in', text:\"is in\"},{ oper:'ni', text:\"is niet in\"},{ oper:'ew', text:\"eindigt met\"},{ oper:'en', text:\"eindigt niet met\"},{ oper:'cn', text:\"bevat\"},{ oper:'nc', text:\"bevat niet\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n            groupOps: [{ op: \"AND\", text: \"alle\" }, { op: \"OR\", text: \"een van de\"}],\n\t\t\toperandTitle : \"Klik om de zoekterm te selecteren.\",\n\t\t\tresetTitle : \"Herstel zoekterm\",\n\t\t\taddsubgrup : \"Add subgroup\",\n\t\t\taddrule : \"Add rule\",\n\t\t\tdelgroup : \"Delete group\",\n\t\t\tdelrule : \"Delete rule\"\n        },\n        edit:\n        {\n            addCaption: \"Nieuw\",\n            editCaption: \"Bewerken\",\n            bSubmit: \"Opslaan\",\n            bCancel: \"Annuleren\",\n            bClose: \"Sluiten\",\n            saveData: \"Er is data aangepast! Wijzigingen opslaan?\",\n            bYes: \"Ja\",\n            bNo: \"Nee\",\n            bExit: \"Sluiten\",\n            msg:\n            {\n                required: \"Veld is verplicht\",\n                number: \"Voer a.u.b. geldig nummer in\",\n                minValue: \"Waarde moet groter of gelijk zijn aan \",\n                maxValue: \"Waarde moet kleiner of gelijk zijn aan\",\n                email: \"is geen geldig e-mailadres\",\n                integer: \"Voer a.u.b. een geldig getal in\",\n                date: \"Voer a.u.b. een geldige waarde in\",\n                url: \"is geen geldige URL. Prefix is verplicht ('http://' or 'https://')\",\n                nodefined : \" is niet gedefineerd!\",\n                novalue : \" return waarde is verplicht!\",\n                customarray : \"Aangepaste functie moet array teruggeven!\",\n                customfcheck : \"Aangepaste function moet aanwezig zijn in het geval van aangepaste controle!\"\n            }\n        },\n        view:\n        {\n            caption: \"Tonen\",\n            bClose: \"Sluiten\"\n        },\n        del:\n        {\n            caption: \"Verwijderen\",\n            msg: \"Verwijder geselecteerde regel(s)?\",\n            bSubmit: \"Verwijderen\",\n            bCancel: \"Annuleren\"\n        },\n        nav:\n        {\n            edittext: \"\",\n            edittitle: \"Bewerken\",\n            addtext: \"\",\n            addtitle: \"Nieuw\",\n            deltext: \"\",\n            deltitle: \"Verwijderen\",\n            searchtext: \"\",\n            searchtitle: \"Zoeken\",\n            refreshtext: \"\",\n            refreshtitle: \"Vernieuwen\",\n            alertcap: \"Waarschuwing\",\n            alerttext: \"Selecteer a.u.b. een regel\",\n            viewtext: \"\",\n            viewtitle: \"Openen\",\n\t\t\tsavetext: \"\",\n\t\t\tsavetitle: \"Save row\",\n\t\t\tcanceltext: \"\",\n\t\t\tcanceltitle : \"Cancel row editing\",\n\t\t\tselectcaption : \"Actions...\"\n        },\n        col:\n        {\n            caption: \"Tonen/verbergen kolommen\",\n            bSubmit: \"OK\",\n            bCancel: \"Annuleren\"\n        },\n        errors:\n        {\n            errcap: \"Fout\",\n            nourl: \"Er is geen URL gedefinieerd\",\n            norecords: \"Geen data om te verwerken\",\n            model: \"Lengte van 'colNames' is niet gelijk aan 'colModel'!\"\n        },\n        formatter:\n        {\n            integer:\n            {\n                thousandsSeparator: \".\",\n                defaultValue: \"0\"\n            },\n            number:\n            {\n                decimalSeparator: \",\",\n                thousandsSeparator: \".\",\n                decimalPlaces: 2,\n                defaultValue: \"0.00\"\n            },\n            currency:\n            {\n                decimalSeparator: \",\",\n                thousandsSeparator: \".\",\n                decimalPlaces: 2,\n                prefix: \"EUR \",\n                suffix: \"\",\n                defaultValue: \"0.00\"\n            },\n            date:\n            {\n                dayNames: [\"Zo\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\", \"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\n                monthNames: [\"Jan\", \"Feb\", \"Maa\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"Januari\", \"Februari\", \"Maart\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Augustus\", \"September\", \"October\", \"November\", \"December\"],\n                AmPm: [\"am\", \"pm\", \"AM\", \"PM\"],\n                S: function(b) {\n                    return b < 11 || b > 13 ? [\"st\", \"nd\", \"rd\", \"th\"][Math.min((b - 1) % 10, 3)] : \"th\"\n                },\n                srcformat: \"Y-m-d\",\n                newformat: \"d/m/Y\",\n\t\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n                masks:\n                {\n                    ISO8601Long: \"Y-m-d H:i:s\",\n                    ISO8601Short: \"Y-m-d\",\n                    ShortDate: \"n/j/Y\",\n                    LongDate: \"l, F d, Y\",\n                    FullDateTime: \"l d F Y G:i:s\",\n                    MonthDay: \"d F\",\n                    ShortTime: \"G:i\",\n                    LongTime: \"G:i:s\",\n                    SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                    UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                    YearMonth: \"F, Y\"\n                },\n                reformatAfterEdit: false,\n\t\t\t\tuserLocalTime : false\n            },\n            baseLinkUrl: \"\",\n            showAction: \"\",\n            target: \"\",\n            checkbox:\n            {\n                disabled: true\n            },\n            idName: \"id\"\n        },\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n    };\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-no.js",
    "content": "//NORWAY\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"no\"] = {\n    defaults : {\n        recordtext: \"Rad {0} - {1}, totalt {2}\",\n        loadtext: \"Laster...\",\n        pgtext: \"Side {0} av {1}\",\n\t\tsavetext: \"Saving...\",\n        pgfirst: \"First Page\",\n        pglast: \"Last Page\",\n        pgnext: \"Next Page\",\n        pgprev: \"Previous Page\",\n        pgrecs: \"Records per Page\",\n        showhide: \"Toggle Expand Collapse Grid\",\n        emptyrecords: \"Ingen poster funnet\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\n    },\n    search : {\n\t\tcaption: \"Søk...\", \n\t\tFind: \"Finn\", \n\t\tReset: \"Nullstill\", \n\t\todata: [\n        {oper: 'eq', text: \"lik\"},\n        {oper: 'ne', text: \"forskjellig fra\"},\n        {oper: 'lt', text: \"mindre enn\"},\n        {oper: 'le', text: \"mindre eller lik\"},\n        {oper: 'gt', text: \"større enn\"},\n        {oper: 'ge', text: \" større eller lik\"},\n        {oper: 'bw', text: \"starter med\"},\n        {oper: 'ew', text: \"slutter med\"},\n        {oper: 'cn', text: \"inneholder\"},\n        { oper: 'nu', text: 'is null'},\n        { oper: 'nn', text: 'is not null'}, \n\t\t{oper:'bt', text:'between'}\n\t\t], \n\t\toperandTitle: \"Click to select search operation.\", \n\t\tresetTitle: \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n    edit : {addCaption: \"Ny rad\", editCaption: \"Rediger\", bSubmit: \"Send\", bCancel: \"Avbryt\", bClose: \"Lukk\", processData: \"Laster...\", msg: {required: \"Felt er obligatorisk\", number: \"Legg inn et gyldig tall\", minValue: \"verdi mø vøre større enn eller lik\", maxValue: \"verdi må være mindre enn eller lik\", email: \"er ikke en gyldig e-post adresse\", integer: \"Legg inn et gyldig heltall\", date: \"Legg inn en gyldig dato\", url: \"er ikke en gyldig URL. Prefiks påkrevd ('http://' eller 'https://')\", nodefined: \" er ikke definert!\", novalue: \" returverdi er påkrevd!\", customarray: \"Tilpasset funksjon må returnere en tabell!\", customfcheck: \"Tilpasset funksjon må eksistere!\"}},\n    view : {caption: \"Åpne post\", bClose: \"Lukk\"},\n    del : {caption: \"Slett\", msg: \"Slett valgte rad(er)?\", bSubmit: \"Slett\", bCancel: \"Avbryt\", processData: \"Behandler...\"},\n    nav : {edittext: \" \", edittitle: \"Rediger valgte rad(er)\", addtext: \" \", addtitle: \"Legg til ny rad\", deltext: \" \", deltitle: \"Slett valgte rad(er)\", searchtext: \" \", searchtitle: \"Søk\", refreshtext: \"\", refreshtitle: \"Oppdater tabell\", alertcap: \"Advarsel\", alerttext: \"Velg rad\", viewtext: \" \", viewtitle: \"Åpne valgt rad\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n    col : {caption: \"Vis/skjul kolonner\", bSubmit: \"Utfør\", bCancel: \"Avbryt\"},\n    errors : {errcap: \"Feil\", nourl: \"Ingen url er satt\", norecords: \"Ingen poster å behandle\", model: \"colNames og colModel har forskjellig lengde!\"},\n    formatter : {integer: {thousandsSeparator: \" \", defaultValue: 0}, number: {decimalSeparator: \",\", thousandsSeparator: \" \", decimalPlaces: 2, defaulValue: 0}, currency: {decimalSeparator: \",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix: \"\", defaulValue: 0}, date: {dayNames: [\"sø.\", \"ma.\", \"ti.\", \"on.\", \"to.\", \"fr.\", \"lø.\", \"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"], monthNames: [\"jan.\", \"feb.\", \"mars\", \"april\", \"mai\", \"juni\", \"juli\", \"aug.\", \"sep.\", \"okt.\", \"nov.\", \"des.\", \"januar\", \"februar\", \"mars\", \"april\", \"mai\", \"juni\", \"juli\", \"august\", \"september\", \"oktober\", \"november\", \"desember\"], AmPm: [\"\", \"\", \"\", \"\"], S: function (b) {\n        return\".\";\n    }, srcformat: \"Y-m-d H:i:s\", newformat: \"Y-m-d H:i:s\", parseRe: /[#%\\\\\\/:_;.,\\t\\s-]/, masks: {ISO8601Long: \"Y-m-d H:i:s\", ISO8601Short: \"Y-m-d\", ShortDate: \"j.n.Y\", LongDate: \"l j. F Y\", FullDateTime: \"l j. F Y kl. G.i.s\", MonthDay: \"j. F\", ShortTime: \"H:i\", LongTime: \"H:i:s\", SortableDateTime: \"Y-m-d\\\\TH:i:s\", UniversalSortableDateTime: \"Y-m-d H:i:sO\", YearMonth: \"F Y\"}, reformatAfterEdit: false, userLocalTime: false}, baseLinkUrl: \"\", showAction: \"show\", addParam: \"\", checkbox: {disabled: true}\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-pl.js",
    "content": "/**\n * jqGrid Polish Translation\n * Łukasz Schab lukasz@freetree.pl\n * http://FreeTree.pl\n *\n * Updated names, abbreviations, currency and date/time formats for Polish norms (also corresponding with CLDR v21.0.1 --> http://cldr.unicode.org/index) \n * Tomasz Pęczek tpeczek@gmail.com\n * http://tpeczek.blogspot.com; http://tpeczek.codeplex.com\n *\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"pl\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pokaż {0} - {1} z {2}\",\n\t\temptyrecords: \"Brak rekordów do pokazania\",\n\t\tloadtext: \"Ładowanie...\",\n\t\tpgtext : \"Strona {0} z {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Wyszukiwanie...\",\n\t\tFind: \"Szukaj\",\n\t\tReset: \"Czyść\",\n\t\todata: [{ oper:'eq', text:\"dokładnie\"},{ oper:'ne', text:\"różne od\"},{ oper:'lt', text:\"mniejsze od\"},{ oper:'le', text:\"mniejsze lub równe\"},{ oper:'gt', text:\"większe od\"},{ oper:'ge', text:\"większe lub równe\"},{ oper:'bw', text:\"zaczyna się od\"},{ oper:'bn', text:\"nie zaczyna się od\"},{ oper:'in', text:\"jest w\"},{ oper:'ni', text:\"nie jest w\"},{ oper:'ew', text:\"kończy się na\"},{ oper:'en', text:\"nie kończy się na\"},{ oper:'cn', text:\"zawiera\"},{ oper:'nc', text:\"nie zawiera\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"oraz\" },\t{ op: \"OR\",  text: \"lub\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj rekord\",\n\t\teditCaption: \"Edytuj rekord\",\n\t\tbSubmit: \"Zapisz\",\n\t\tbCancel: \"Anuluj\",\n\t\tbClose: \"Zamknij\",\n\t\tsaveData: \"Dane zostały zmienione! Zapisać zmiany?\",\n\t\tbYes: \"Tak\",\n\t\tbNo: \"Nie\",\n\t\tbExit: \"Anuluj\",\n\t\tmsg: {\n\t\t\trequired: \"Pole jest wymagane\",\n\t\t\tnumber: \"Proszę wpisać poprawną liczbę\",\n\t\t\tminValue: \"wartość musi być większa lub równa od\",\n\t\t\tmaxValue: \"wartość musi być mniejsza lub równa od\",\n\t\t\temail: \"nie jest poprawnym adresem e-mail\",\n\t\t\tinteger: \"Proszę wpisać poprawną liczbę\",\n\t\t\tdate: \"Proszę podaj poprawną datę\",\n\t\t\turl: \"jest niewłaściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')\",\n\t\t\tnodefined: \" niezdefiniowane!\",\n\t\t\tnovalue: \" wymagana jest wartość zwracana!\",\n\t\t\tcustomarray: \"Funkcja niestandardowa powinna zwracać tablicę!\",\n\t\t\tcustomfcheck: \"Funkcja niestandardowa powinna być obecna w przypadku niestandardowego sprawdzania!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Pokaż rekord\",\n\t\tbClose: \"Zamknij\"\n\t},\n\tdel : {\n\t\tcaption: \"Usuń\",\n\t\tmsg: \"Czy usunąć wybrany rekord(y)?\",\n\t\tbSubmit: \"Usuń\",\n\t\tbCancel: \"Anuluj\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Edytuj wybrany wiersz\",\n\t\taddtext: \"\",\n\t\taddtitle: \"Dodaj nowy wiersz\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Usuń wybrany wiersz\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Wyszukaj rekord\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Przeładuj\",\n\t\talertcap: \"Uwaga\",\n\t\talerttext: \"Proszę wybrać wiersz\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pokaż wybrany wiersz\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Pokaż/Ukryj kolumny\",\n\t\tbSubmit: \"Zatwierdź\",\n\t\tbCancel: \"Anuluj\"\n\t},\n\terrors : {\n\t\terrcap: \"Błąd\",\n\t\tnourl: \"Brak adresu url\",\n\t\tnorecords: \"Brak danych\",\n\t\tmodel : \"Długość colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\" zł\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"niedz.\", \"pon.\", \"wt.\", \"śr.\", \"czw.\", \"pt.\", \"sob.\",\n\t\t\t\t\"niedziela\", \"poniedziałek\", \"wtorek\", \"środa\", \"czwartek\", \"piątek\", \"sobota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"sty\", \"lut\", \"mar\", \"kwi\", \"maj\", \"cze\", \"lip\", \"sie\", \"wrz\", \"paź\", \"lis\", \"gru\",\n\t\t\t\t\"styczeń\", \"luty\", \"marzec\", \"kwiecień\", \"maj\", \"czerwiec\", \"lipiec\", \"sierpień\", \"wrzesień\", \"październik\", \"listopad\", \"grudzień\"\n\t\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function (j) {return '';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long: \"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short: \"Y-m-d\",\n\t\t\t\tShortDate: \"d.m.y\",\n\t\t\t\tLongDate: \"l, j F Y\",\n\t\t\t\tFullDateTime: \"l, j F Y H:i:s\",\n\t\t\t\tMonthDay: \"j F\",\n\t\t\t\tShortTime: \"H:i\",\n\t\t\t\tLongTime: \"H:i:s\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-pt-br.js",
    "content": "/**\n * jqGrid Brazilian-Portuguese Translation\n * Sergio Righi sergio.righi@gmail.com\n * http://curve.com.br\n * \n * Updated by Jonnas Fonini\n * http://fonini.net\n *\n *\n * Updated by Fabio Ferreira da Silva fabio_ferreiradasilva@yahoo.com.br\n * \n * Updated by Anderson Pimentel anderson.pimentel[at]gmail.com\n *\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"pt-br\"] = {\n\tdefaults : {\n\t\trecordtext: \"Ver {0} - {1} de {2}\",\n\t    emptyrecords: \"Nenhum registro para visualizar\",\n\t\tloadtext: \"Carregando...\",\n\t\tpgtext : \"Página {0} de {1}\",\n\t\tsavetext: \"Salvando...\",\n\t\tpgfirst : \"Primeira Página\",\n\t\tpglast : \"Última Página\",\n\t\tpgnext : \"Próxima Página\",\n\t\tpgprev : \"Página Anterior\",\n\t\tpgrecs : \"Registros por Página\",\n\t\tshowhide: \"Mostrar/Ocultar Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Procurar...\",\n\t    Find: \"Procurar\",\n\t    Reset: \"Limpar\",\n\t    odata: [{ oper:'eq', text:\"igual\"},{ oper:'ne', text:\"diferente\"},{ oper:'lt', text:\"menor\"},{ oper:'le', text:\"menor ou igual\"},{ oper:'gt', text:\"maior\"},{ oper:'ge', text:\"maior ou igual\"},{ oper:'bw', text:\"inicia com\"},{ oper:'bn', text:\"não inicia com\"},{ oper:'in', text:\"está em\"},{ oper:'ni', text:\"não está em\"},{ oper:'ew', text:\"termina com\"},{ oper:'en', text:\"não termina com\"},{ oper:'cn', text:\"contém\"},{ oper:'nc', text:\"não contém\"},{ oper:'nu', text:\"nulo\"},{ oper:'nn', text:\"não nulo\"}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"todos\" },{ op: \"OR\",  text: \"qualquer um\" }\t],\n\t\toperandTitle : \"Clique para escolher a operação de pesquisa.\",\n\t\tresetTitle : \"Limpar valor de pesquisa\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Incluir\",\n\t    editCaption: \"Alterar\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Fechar\",\n\t\tsaveData: \"Os dados foram alterados! Salvar alterações?\",\n\t\tbYes : \"Sim\",\n\t\tbNo : \"Não\",\n\t\tbExit : \"Cancelar\",\n\t    msg: {\n\t        required:\"Campo obrigatório\",\n\t        number:\"Por favor, informe um número válido\",\n\t        minValue:\"valor deve ser igual ou maior que \",\n\t        maxValue:\"valor deve ser menor ou igual a\",\n\t        email: \"este e-mail não é válido\",\n\t        integer: \"Por favor, informe um valor inteiro\",\n\t\t\tdate: \"Por favor, informe uma data válida\",\n\t\t\turl: \"não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')\",\n\t\t\tnodefined : \" não está definido!\",\n\t\t\tnovalue : \" um valor de retorno é obrigatório!\",\n\t\t\tcustomarray : \"Função customizada deve retornar um array!\",\n\t\t\tcustomfcheck : \"Função customizada deve estar presente em caso de validação customizada!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Ver Registro\",\n\t    bClose: \"Fechar\"\n\t},\n\tdel : {\n    caption: \"Apagar\",\n\t    msg: \"Apagar registro(s) selecionado(s)?\",\n\t    bSubmit: \"Apagar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Alterar registro selecionado\",\n\t\taddtext:\" \",\n\t    addtitle: \"Incluir novo registro\",\n\t    deltext: \" \",\n\t    deltitle: \"Apagar registro selecionado\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Procurar registros\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Recarregar tabela\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Por favor, selecione um registro\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ver linha selecionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Salvar linha\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancelar edição da linha\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/Esconder Colunas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\terrors : {\n\t\terrcap : \"Erro\",\n\t\tnourl : \"Nenhuma URL definida\",\n\t\tnorecords: \"Sem registros para exibir\",\n\t    model : \"Comprimento de colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"R$ \", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\",\n\t\t\t\t\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\",\n\t\t\t\t\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-pt.js",
    "content": "/**\n * jqGrid Portuguese Translation\n * Traduçã da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"pt\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t    emptyrecords: \"No records to view\",\n\t\tloadtext: \"A carregar...\",\n\t\tpgtext : \"Página {0} de {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Busca...\",\n\t    Find: \"Procurar\",\n\t    Reset: \"Limpar\",\n\t    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Adicionar Registo\",\n\t    editCaption: \"Modificar Registo\",\n\t    bSubmit: \"Submeter\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Fechar\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t    msg: {\n\t        required:\"Campo obrigat�rio\",\n\t        number:\"Por favor, introduza um numero\",\n\t        minValue:\"O valor deve ser maior ou igual que\",\n\t        maxValue:\"O valor deve ser menor ou igual a\",\n\t        email: \"N�o � um endere�o de email v�lido\",\n\t        integer: \"Por favor, introduza um numero inteiro\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"View Record\",\n\t    bClose: \"Close\"\n\t},\n\tdel : {\n\t    caption: \"Eliminar\",\n\t    msg: \"Deseja eliminar o(s) registo(s) seleccionado(s)?\",\n\t    bSubmit: \"Eliminar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Modificar registo seleccionado\",\n\t\taddtext:\" \",\n\t    addtitle: \"Adicionar novo registo\",\n\t    deltext: \" \",\n\t    deltitle: \"Eliminar registo seleccionado\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Procurar\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Actualizar\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Por favor, seleccione um registo\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/Ocultar Colunas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Erro\",\n\t\tnourl : \"N�o especificou um url\",\n\t\tnorecords: \"N�o existem dados para processar\",\n\t    model : \"Tamanho do colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\",\n\t\t\t\t\"Domingo\", \"Segunda-Feira\", \"Ter�a-Feira\", \"Quarta-Feira\", \"Quinta-Feira\", \"Sexta-Feira\", \"S�bado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\",\n\t\t\t\t\"Janeiro\", \"Fevereiro\", \"Mar�o\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ro.js",
    "content": "/**\n * jqGrid Romanian Translation\n * Alexandru Emil Lupu contact@alecslupu.ro\n * http://www.alecslupu.ro/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ro\"] = {\n\tdefaults : {\n\t\trecordtext: \"Vizualizare {0} - {1} din {2}\",\n\t\temptyrecords: \"Nu există înregistrări de vizualizat\",\n\t\tloadtext: \"Încărcare...\",\n\t\tpgtext : \"Pagina {0} din {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Caută...\",\n\t\tFind: \"Caută\",\n\t\tReset: \"Resetare\",\n\t\todata: [{ oper:'eq', text:\"egal\"},{ oper:'ne', text:\"diferit\"},{ oper:'lt', text:\"mai mic\"},{ oper:'le', text:\"mai mic sau egal\"},{ oper:'gt', text:\"mai mare\"},{ oper:'ge', text:\"mai mare sau egal\"},{ oper:'bw', text:\"începe cu\"},{ oper:'bn', text:\"nu începe cu\"},{ oper:'in', text:\"se găsește în\"},{ oper:'ni', text:\"nu se găsește în\"},{ oper:'ew', text:\"se termină cu\"},{ oper:'en', text:\"nu se termină cu\"},{ oper:'cn', text:\"conține\"},{ oper:'nc', text:\"\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"toate\" },\t{ op: \"OR\",  text: \"oricare\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Adăugare înregistrare\",\n\t\teditCaption: \"Modificare înregistrare\",\n\t\tbSubmit: \"Salvează\",\n\t\tbCancel: \"Anulare\",\n\t\tbClose: \"Închide\",\n\t\tsaveData: \"Informațiile au fost modificate! Salvați modificările?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Nu\",\n\t\tbExit : \"Anulare\",\n\t\tmsg: {\n\t\t\trequired:\"Câmpul este obligatoriu\",\n\t\t\tnumber:\"Vă rugăm introduceți un număr valid\",\n\t\t\tminValue:\"valoarea trebuie sa fie mai mare sau egală cu\",\n\t\t\tmaxValue:\"valoarea trebuie sa fie mai mică sau egală cu\",\n\t\t\temail: \"nu este o adresă de e-mail validă\",\n\t\t\tinteger: \"Vă rugăm introduceți un număr valid\",\n\t\t\tdate: \"Vă rugăm să introduceți o dată validă\",\n\t\t\turl: \"Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Vizualizare înregistrare\",\n\t\tbClose: \"Închidere\"\n\t},\n\tdel : {\n\t\tcaption: \"Ștegere\",\n\t\tmsg: \"Ștergeți înregistrarea (înregistrările) selectate?\",\n\t\tbSubmit: \"Șterge\",\n\t\tbCancel: \"Anulare\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Modifică rândul selectat\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Adaugă rând nou\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Șterge rândul selectat\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Căutare înregistrări\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Reîncarcare Grid\",\n\t\talertcap: \"Avertisment\",\n\t\talerttext: \"Vă rugăm să selectați un rând\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Vizualizează rândul selectat\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Arată/Ascunde coloanele\",\n\t\tbSubmit: \"Salvează\",\n\t\tbCancel: \"Anulare\"\n\t},\n\terrors : {\n\t\terrcap : \"Eroare\",\n\t\tnourl : \"Niciun url nu este setat\",\n\t\tnorecords: \"Nu sunt înregistrări de procesat\",\n\t\tmodel : \"Lungimea colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dum\", \"Lun\", \"Mar\", \"Mie\", \"Joi\", \"Vin\", \"Sâm\",\n\t\t\t\t\"Duminică\", \"Luni\", \"Marți\", \"Miercuri\", \"Joi\", \"Vineri\", \"Sâmbătă\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Ian\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Iun\", \"Iul\", \"Aug\", \"Sep\", \"Oct\", \"Noi\", \"Dec\",\n\t\t\t\t\"Ianuarie\", \"Februarie\", \"Martie\", \"Aprilie\", \"Mai\", \"Iunie\", \"Iulie\", \"August\", \"Septembrie\", \"Octombrie\", \"Noiembrie\", \"Decembrie\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\t/*\n\t\t\t Here is a problem in romanian: \n\t\t\t\t\tM\t/\tF\n\t\t\t 1st = primul / prima\n\t\t\t 2nd = Al doilea / A doua\n\t\t\t 3rd = Al treilea / A treia \n\t\t\t 4th = Al patrulea/ A patra\n\t\t\t 5th = Al cincilea / A cincea \n\t\t\t 6th = Al șaselea / A șasea\n\t\t\t 7th = Al șaptelea / A șaptea\n\t\t\t .... \n\t\t\t */\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ru.js",
    "content": "/**\n * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru)\n * Sergey Dyagovchenko\n * http://d.sumy.ua\n * Tony Tomov\n * http://www.guriddo.net\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ru\"] = {\n\tdefaults : {\n\t\trecordtext: \"Просмотр {0} - {1} из {2}\",\n\t\temptyrecords: \"Нет записей для просмотра\",\n\t\tloadtext: \"Загрузка...\",\n\t\tpgtext : \"Стр. {0} из {1}\",\n\t\tsavetext: \"Сохранения...\",\n\t\tpgfirst : \"Первая\",\n\t\tpglast : \"Последняя\",\n\t\tpgnext : \"Следующая\",\n\t\tpgprev : \"Предыдущая\",\n\t\tpgrecs : \"Записей на стр.\",\n\t\tshowhide: \"Показать/Скрыть таблицу\",\n\t\t// mobile\n\t\tpagerCaption : \"Грид::Параметры страницы\",\n\t\tpageText : \"Страница:\",\n\t\trecordPage : \"Записей на стр.\",\n\t\tnomorerecs : \"Нет больше записей...\",\n\t\tscrollPullup: \"Потяните, чтобы загрузить более...\",\n\t\tscrollPulldown : \"Потяните вниз чтобы обновить...\",\n\t\tscrollRefresh : \"Отпустите, чтобы обновить...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Поиск...\",\n\t\tFind: \"Найти\",\n\t\tReset: \"Сброс\",\n\t\todata: [{ oper:'eq', text:\"равно\"},{ oper:'ne', text:\"не равно\"},{ oper:'lt', text:\"меньше\"},{ oper:'le', text:\"меньше или равно\"},{ oper:'gt', text:\"больше\"},{ oper:'ge', text:\"больше или равно\"},{ oper:'bw', text:\"начинается с\"},{ oper:'bn', text:\"не начинается с\"},{ oper:'in', text:\"находится в\"},{ oper:'ni', text:\"не находится в\"},{ oper:'ew', text:\"заканчивается на\"},{ oper:'en', text:\"не заканчивается на\"},{ oper:'cn', text:\"содержит\"},{ oper:'nc', text:\"не содержит\"},{ oper:'nu', text:\"равно NULL\"},{ oper:'nn', text:\"не равно NULL\"}, {oper:'bt', text:'между'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"все\" }, { op: \"OR\", text: \"любой\" }],\n\t\toperandTitle : \"Выбрать поисковую операцию.\",\n\t\tresetTitle : \"Сбросить поиск\",\n\t\taddsubgrup : \"Добавить группу\",\n\t\taddrule : \"Добавить правило\",\n\t\tdelgroup : \"Удалить группу\",\n\t\tdelrule : \"Удалить правило\"\n\t},\n\tedit : {\n\t\taddCaption: \"Добавить запись\",\n\t\teditCaption: \"Редактировать запись\",\n\t\tbSubmit: \"Сохранить\",\n\t\tbCancel: \"Отмена\",\n\t\tbClose: \"Закрыть\",\n\t\tsaveData: \"Данные были измененны! Сохранить изменения?\",\n\t\tbYes : \"Да\",\n\t\tbNo : \"Нет\",\n\t\tbExit : \"Отмена\",\n\t\tmsg: {\n\t\t\trequired:\"Поле является обязательным\",\n\t\t\tnumber:\"Пожалуйста, введите правильное число\",\n\t\t\tminValue:\"значение должно быть больше либо равно\",\n\t\t\tmaxValue:\"значение должно быть меньше либо равно\",\n\t\t\temail: \"некорректное значение e-mail\",\n\t\t\tinteger: \"Пожалуйста, введите целое число\",\n\t\t\tdate: \"Пожалуйста, введите правильную дату\",\n\t\t\turl: \"неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')\",\n\t\t\tnodefined : \" не определено!\",\n\t\t\tnovalue : \" возвращаемое значение обязательно!\",\n\t\t\tcustomarray : \"Пользовательская функция должна возвращать массив!\",\n\t\t\tcustomfcheck : \"Пользовательская функция должна присутствовать в случаи пользовательской проверки!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Просмотр записи\",\n\t\tbClose: \"Закрыть\"\n\t},\n\tdel : {\n\t\tcaption: \"Удалить\",\n\t\tmsg: \"Удалить выбранную запись(и)?\",\n\t\tbSubmit: \"Удалить\",\n\t\tbCancel: \"Отмена\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Редактировать выбранную запись\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Добавить новую запись\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Удалить выбранную запись\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Найти записи\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Обновить таблицу\",\n\t\talertcap: \"Внимание\",\n\t\talerttext: \"Пожалуйста, выберите запись\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Просмотреть выбранную запись\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Сохранить запись\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Отмена сохранения\",\n\t\tselectcaption : \"Действия...\"\n\t},\n\tcol : {\n\t\tcaption: \"Показать/скрыть столбцы\",\n\t\tbSubmit: \"Сохранить\",\n\t\tbCancel: \"Отмена\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Ошибка\",\n\t\tnourl : \"URL не установлен\",\n\t\tnorecords: \"Нет записей для обработки\",\n\t\tmodel : \"Число полей не соответствует числу столбцов таблицы!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\",\n\t\t\t\t\"Воскресение\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Янв\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Июн\", \"Июл\", \"Авг\", \"Сен\", \"Окт\", \"Ноя\", \"Дек\",\n\t\t\t\t\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n.j.Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y G:i:s\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"G:i\",\n\t\t\t\tLongTime: \"G:i:s\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Сортировка по возрастанию\",\n\t\tsortdesc : \"Сортировка по убыванию\",\n\t\tcolumns : \"Колонны\",\n\t\tfilter : \"Филтрировать\",\n\t\tgrouping : \"Группа по\",\n\t\tungrouping : \"Разгруппировать\",\n\t\tsearchTitle : \"Строки со значениями\",\n\t\tfreeze : \"Закрепление\",\n\t\tunfreeze : \"Отмена закрепление\",\n\t\treorder : \"Переместить в порядок\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sk.js",
    "content": "/**\n * jqGrid Slovak Translation\n * Milan Cibulka\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sk\"] = {\n\tdefaults : {\n\t\trecordtext: \"Zobrazených {0} - {1} z {2} záznamov\",\n\t    emptyrecords: \"Neboli nájdené žiadne záznamy\",\n\t\tloadtext: \"Načítám...\",\n\t\tpgtext : \"Strana {0} z {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Vyhľadávam...\",\n\t\tFind: \"Hľadať\",\n\t\tReset: \"Reset\",\n\t    odata: [{ oper:'eq', text:\"rovná sa\"},{ oper:'ne', text:\"nerovná sa\"},{ oper:'lt', text:\"menšie\"},{ oper:'le', text:\"menšie alebo rovnajúce sa\"},{ oper:'gt', text:\"väčšie\"},{ oper:'ge', text:\"väčšie alebo rovnajúce sa\"},{ oper:'bw', text:\"začína s\"},{ oper:'bn', text:\"nezačína s\"},{ oper:'in', text:\"je v\"},{ oper:'ni', text:\"nie je v\"},{ oper:'ew', text:\"končí s\"},{ oper:'en', text:\"nekončí s\"},{ oper:'cn', text:\"obahuje\"},{ oper:'nc', text:\"neobsahuje\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"všetkých\" },\t{ op: \"OR\",  text: \"niektorého z\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Pridať záznam\",\n\t\teditCaption: \"Editácia záznamov\",\n\t\tbSubmit: \"Uložiť\",\n\t\tbCancel: \"Storno\",\n\t\tbClose: \"Zavrieť\",\n\t\tsaveData: \"Údaje boli zmenené! Uložiť zmeny?\",\n\t\tbYes : \"Ano\",\n\t\tbNo : \"Nie\",\n\t\tbExit : \"Zrušiť\",\n\t\tmsg: {\n\t\t    required:\"Pole je požadované\",\n\t\t    number:\"Prosím, vložte valídne číslo\",\n\t\t    minValue:\"hodnota musí býť väčšia ako alebo rovná \",\n\t\t    maxValue:\"hodnota musí býť menšia ako alebo rovná \",\n\t\t    email: \"nie je valídny e-mail\",\n\t\t    integer: \"Prosím, vložte celé číslo\",\n\t\t\tdate: \"Prosím, vložte valídny dátum\",\n\t\t\turl: \"nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')\",\n\t\t\tnodefined : \" nie je definovaný!\",\n\t\t\tnovalue : \" je vyžadovaná návratová hodnota!\",\n\t\t\tcustomarray : \"Custom function mala vrátiť pole!\",\n\t\t\tcustomfcheck : \"Custom function by mala byť prítomná v prípade custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Zobraziť záznam\",\n\t    bClose: \"Zavrieť\"\n\t},\n\tdel : {\n\t\tcaption: \"Zmazať\",\n\t\tmsg: \"Zmazať vybraný(é) záznam(y)?\",\n\t\tbSubmit: \"Zmazať\",\n\t\tbCancel: \"Storno\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Editovať vybraný riadok\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Pridať nový riadek\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Zmazať vybraný záznam \",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Nájsť záznamy\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Obnoviť tabuľku\",\n\t\talertcap: \"Varovanie\",\n\t\talerttext: \"Prosím, vyberte riadok\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Zobraziť vybraný riadok\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Zobrazit/Skrýť stĺpce\",\n\t\tbSubmit: \"Uložiť\",\n\t\tbCancel: \"Storno\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Chyba\",\n\t\tnourl : \"Nie je nastavená url\",\n\t\tnorecords: \"Žiadne záznamy k spracovaniu\",\n\t\tmodel : \"Dĺžka colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ne\", \"Po\", \"Ut\", \"St\", \"Št\", \"Pi\", \"So\",\n\t\t\t\t\"Nedela\", \"Pondelok\", \"Utorok\", \"Streda\", \"Štvrtok\", \"Piatek\", \"Sobota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Január\", \"Február\", \"Marec\", \"Apríl\", \"Máj\", \"Jún\", \"Júl\", \"August\", \"September\", \"Október\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"do\",\"od\",\"DO\",\"OD\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t        ISO8601Long:\"Y-m-d H:i:s\",\n\t\t        ISO8601Short:\"Y-m-d\",\n\t\t        ShortDate: \"n/j/Y\",\n\t\t        LongDate: \"l, F d, Y\",\n\t\t        FullDateTime: \"l, F d, Y g:i:s A\",\n\t\t        MonthDay: \"F d\",\n\t\t        ShortTime: \"g:i A\",\n\t\t        LongTime: \"g:i:s A\",\n\t\t        SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t        UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t        YearMonth: \"F, Y\"\n\t\t    },\n\t\t    reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sq.js",
    "content": "/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"en\"] = {\n\tdefaults : {\n\t\trecordtext: \"Shfaq {0} - {1}/{2}\",\n\t\temptyrecords: \"Nuk ka rreshta për të shfaqur\",\n\t\tloadtext: \"Duke u ngarkuar...\",\n\t\tsavetext: \"Duke ruajtur...\",\n\t\tpgtext : \"Faqja {0}/{1}\",\n\t\tpgfirst : \"Faqja e parë\",\n\t\tpglast : \"Faqja e fundit\",\n\t\tpgnext : \"Faqja tjetër\",\n\t\tpgprev : \"Faqja mëparshme\",\n\t\tpgrecs : \"Rreshta për faqe\",\n\t\tshowhide: \"Shpalos ose mbyll tabelën\",\n\t\t// mobile\n\t\tpagerCaption : \"Tabela::Kruskoti i faqes\",\n\t\tpageText : \"Faqja:\",\n\t\trecordPage : \"Rreshta për faqe\",\n\t\tnomorerecs : \"Nuk ka rreshta të tjerë...\",\n\t\tscrollPullup: \"Tërhiq për lart për të tjerë...\",\n\t\tscrollPulldown : \"Tërqiq për poshtë për rifreskim...\",\n\t\tscrollRefresh : \"Lësho për rifreskim...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Kërko...\",\n\t\tFind: \"Gjej\",\n\t\tReset: \"Pastro\",\n\t\todata: [{ oper:'eq', text:'baraz'},{ oper:'ne', text:'jo baraz'},{ oper:'lt', text:'me e vogel'},{ oper:'le', text:'me e vogel ose baraz'},{ oper:'gt', text:'me e madhe'},{ oper:'ge', text:'me e madhe ose baraz'},{ oper:'bw', text:'fillon me'},{ oper:'bn', text:'nuk fillon me'},{ oper:'in', text:'brenda'},{ oper:'ni', text:'jo brenda'},{ oper:'ew', text:'mbaron me'},{ oper:'en', text:'nuk mbaron me'},{ oper:'cn', text:'permban'},{ oper:'nc', text:'nuk permban'},{ oper:'nu', text:'eshte bosh'},{ oper:'nn', text:'nuk eshte bosh'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"te gjithe\" },{ op: \"OR\",  text: \"cfaredo\" }],\n\t\toperandTitle : \"Kliko per te zgjedhur veprimin.\",\n\t\tresetTitle : \"Fshi vlerat e kerkimit\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\n\t},\n\tedit : {\n\t\taddCaption: \"Shto rresht\",\n\t\teditCaption: \"Fshi rresht\",\n\t\tbSubmit: \"Vendos\",\n\t\tbCancel: \"Anullo\",\n\t\tbClose: \"Mbyll\",\n\t\tsaveData: \"Te dhenat jane ndryshuar! Deshironi ti ruani ndryshimet?\",\n\t\tbYes : \"Po\",\n\t\tbNo : \"Jo\",\n\t\tbExit : \"Anullo\",\n\t\tmsg: {\n\t\t\trequired:\"Kjo fushe eshte e detyrueshme\",\n\t\t\tnumber:\"Ju lutem, vendosni nje numer te vlefshem\",\n\t\t\tminValue:\"vlera duhet te jete me e madhe ose e njejte me \",\n\t\t\tmaxValue:\"vlera duhet te jete me e vogel ose e njejte me\",\n\t\t\temail: \"nuk eshte adrese poste elektronike e vlefshme\",\n\t\t\tinteger: \"Ju lutem, vendosni nje numer te plote te vlefshem\",\n\t\t\tdate: \"Ju lutem, vendosni nje date te vlefshme\",\n\t\t\turl: \"nuk eshte URL e vlefshme. Nevojitet prefiksi ('http://' ose 'https://')\",\n\t\t\tnodefined : \" nuk eshte percaktuar!\",\n\t\t\tnovalue : \" vlera si pergjigje eshte e detyreshme!\",\n\t\t\tcustomarray : \"Funksioni i personalizuar duhet te ktheje nje array!\",\n\t\t\tcustomfcheck : \"unksioni i personalizuar duhet te egzistoje ne rast kontrolli te personalizuar!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Shfaq Rreshtin\",\n\t\tbClose: \"Mbyll\"\n\t},\n\tdel : {\n\t\tcaption: \"Fshi\",\n\t\tmsg: \"Deshironi te fshini rreshtin/rreshtat e zgjedhur?\",\n\t\tbSubmit: \"Fshi\",\n\t\tbCancel: \"Anullo\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Modifiko rreshtin e zgjedhur\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Shto rresht te ri\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Fshi rreshtin e zgjedhur\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Gjej rreshtat\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ringarko listen\",\n\t\talertcap: \"Paralajmerim\",\n\t\talerttext: \"Ju lutem, zgjidh nje rresht\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Shfaq rreshtin e zgjedhur\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Ruaj rreshtin\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Anullo modifikim rreshti\",\n\t\tselectcaption : \"Veprime...\"\n\t},\n\tcol : {\n\t\tcaption: \"Zgjidh kolona\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Anullo\"\n\t},\n\terrors : {\n\t\terrcap : \"Gabim\",\n\t\tnourl : \"Nuk eshte percaktuar asnje URL\",\n\t\tnorecords: \"Nuk ka rreshta per perpunim\",\n\t\tmodel : \"Gjatesia e emrit te kolones <> modeli i kolones!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \",\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dje\", \"Hën\", \"Mar\", \"Mër\", \"Enj\", \"Pre\", \"Sht\",\n\t\t\t\t\"Djelë\", \"Hënë\", \"Martë\", \"Mërkurë\", \"Enjte\", \"Premte\", \"Shtunë\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Shk\", \"Mar\", \"Pri\", \"Maj\", \"Qer\", \"Kor\", \"Gus\", \"Sht\", \"Tet\", \"Nën\", \"Dhj\",\n\t\t\t\t\"Janar\", \"Shkurt\", \"Mars\", \"Prill\", \"Maj\", \"Qershor\", \"Korrik\", \"Gusht\", \"Shtator\", \"Tetor\", \"Nëntor\", \"Dhjetor\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sr-latin.js",
    "content": "/**\n * jqGrid Serbian latin Translation\n * Bild Studio info@bild-studio.net\n * http://www.bild-studio.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sr-latin\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pregled {0} - {1} od {2}\",\n\t\temptyrecords: \"Ne postoji nijedan zapis\",\n\t\tloadtext: \"Učitavanje…\",\n\t\tpgtext : \"Strana {0} od {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Traženje...\",\n\t\tFind: \"Traži\",\n\t\tReset: \"Resetuj\",\n\t\todata: [{ oper:'eq', text:\"jednako\"},{ oper:'ne', text:\"nije jednako\"},{ oper:'lt', text:\"manje\"},{ oper:'le', text:\"manje ili jednako\"},{ oper:'gt', text:\"veće\"},{ oper:'ge', text:\"veće ili jednako\"},{ oper:'bw', text:\"počinje sa\"},{ oper:'bn', text:\"ne počinje sa\"},{ oper:'in', text:\"je u\"},{ oper:'ni', text:\"nije u\"},{ oper:'ew', text:\"završava sa\"},{ oper:'en', text:\"ne završava sa\"},{ oper:'cn', text:\"sadrži\"},{ oper:'nc', text:\"ne sadrži\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"sva\" },\t{ op: \"OR\",  text: \"bilo koje\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj zapis\",\n\t\teditCaption: \"Izmeni zapis\",\n\t\tbSubmit: \"Pošalji\",\n\t\tbCancel: \"Odustani\",\n\t\tbClose: \"Zatvori\",\n\t\tsaveData: \"Podatak je izmenjen! Sačuvaj izmene?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Odustani\",\n\t\tmsg: {\n\t\t\trequired: \"Polje je obavezno\",\n\t\t\tnumber: \"Unesite ispravan broj\",\n\t\t\tminValue: \"vrednost mora biti veća od ili jednaka sa \",\n\t\t\tmaxValue: \"vrednost mora biti manja ili jednaka sa\",\n\t\t\temail: \"nije ispravna email adresa, nije valjda da ne umeš ukucati mail!?\",\n\t\t\tinteger: \"Unesi celobrojnu vrednost \",\n\t\t\tdate: \"Unesite ispravan datum\",\n\t\t\turl: \"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')\",\n\t\t\tnodefined : \" nije definisan!\",\n\t\t\tnovalue : \" zahtevana je povratna vrednost!\",\n\t\t\tcustomarray : \"Prilagođena funkcija treba da vrati niz!\",\n\t\t\tcustomfcheck : \"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provere!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Pogledaj zapis\",\n\t\tbClose: \"Zatvori\"\n\t},\n\tdel : {\n\t\tcaption: \"Izbrisi\",\n\t\tmsg: \"Izbrisi izabran(e) zapise(e)?\",\n\t\tbSubmit: \"Izbriši\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Izmeni izabrani red\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Dodaj novi red\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Izbriši izabran red\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Nađi zapise\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ponovo učitaj podatke\",\n\t\talertcap: \"Upozorenje\",\n\t\talerttext: \"Izaberite red\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pogledaj izabrani red\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Izaberi kolone\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\terrors : {\n\t\terrcap : \"Greška\",\n\t\tnourl : \"Nije postavljen URL\",\n\t\tnorecords: \"Nema zapisa za obradu\",\n\t\tmodel : \"Dužina modela colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\",\n\t\t\t\t\"Nedelja\", \"Ponedeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sr.js",
    "content": "/**\n * jqGrid Serbian Translation\n * Александар Миловац(Aleksandar Milovac) aleksandar.milovac@gmail.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sr\"] = {\n\tdefaults : {\n\t\trecordtext: \"Преглед {0} - {1} од {2}\",\n\t\temptyrecords: \"Не постоји ниједан запис\",\n\t\tloadtext: \"Учитавање...\",\n\t\tpgtext : \"Страна {0} од {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Тражење...\",\n\t\tFind: \"Тражи\",\n\t\tReset: \"Ресетуј\",\n\t\todata: [{ oper:'eq', text:\"једнако\"},{ oper:'ne', text:\"није једнако\"},{ oper:'lt', text:\"мање\"},{ oper:'le', text:\"мање или једнако\"},{ oper:'gt', text:\"веће\"},{ oper:'ge', text:\"веће или једнако\"},{ oper:'bw', text:\"почиње са\"},{ oper:'bn', text:\"не почиње са\"},{ oper:'in', text:\"је у\"},{ oper:'ni', text:\"није у\"},{ oper:'ew', text:\"завршава са\"},{ oper:'en', text:\"не завршава са\"},{ oper:'cn', text:\"садржи\"},{ oper:'nc', text:\"не садржи\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"И\", text: \"сви\" },\t{ op: \"ИЛИ\",  text: \"сваки\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n\t},\n\tedit : {\n\t\taddCaption: \"Додај запис\",\n\t\teditCaption: \"Измени запис\",\n\t\tbSubmit: \"Пошаљи\",\n\t\tbCancel: \"Одустани\",\n\t\tbClose: \"Затвори\",\n\t\tsaveData: \"Податак је измењен! Сачувај измене?\",\n\t\tbYes : \"Да\",\n\t\tbNo : \"Не\",\n\t\tbExit : \"Одустани\",\n\t\tmsg: {\n\t\t\trequired:\"Поље је обавезно\",\n\t\t\tnumber:\"Молим, унесите исправан број\",\n\t\t\tminValue:\"вредност мора бити већа од или једнака са \",\n\t\t\tmaxValue:\"вредност мора бити мања од или једнака са\",\n\t\t\temail: \"није исправна имејл адреса\",\n\t\t\tinteger: \"Молим, унесите исправну целобројну вредност \",\n\t\t\tdate: \"Молим, унесите исправан датум\",\n\t\t\turl: \"није исправан УРЛ. Потребан је префикс ('http://' or 'https://')\",\n\t\t\tnodefined : \" није дефинисан!\",\n\t\t\tnovalue : \" захтевана је повратна вредност!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Погледај запис\",\n\t\tbClose: \"Затвори\"\n\t},\n\tdel : {\n\t\tcaption: \"Избриши\",\n\t\tmsg: \"Избриши изабран(е) запис(е)?\",\n\t\tbSubmit: \"Ибриши\",\n\t\tbCancel: \"Одбаци\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Измени изабрани ред\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Додај нови ред\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Избриши изабран ред\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Нађи записе\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Поново учитај податке\",\n\t\talertcap: \"Упозорење\",\n\t\talerttext: \"Молим, изаберите ред\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Погледај изабрани ред\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Изабери колоне\",\n\t\tbSubmit: \"ОК\",\n\t\tbCancel: \"Одбаци\"\n\t},\n\terrors : {\n\t\terrcap : \"Грешка\",\n\t\tnourl : \"Није постављен URL\",\n\t\tnorecords: \"Нема записа за обраду\",\n\t\tmodel : \"Дужина модела colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Нед\", \"Пон\", \"Уто\", \"Сре\", \"Чет\", \"Пет\", \"Суб\",\n\t\t\t\t\"Недеља\", \"Понедељак\", \"Уторак\", \"Среда\", \"Четвртак\", \"Петак\", \"Субота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Јан\", \"Феб\", \"Мар\", \"Апр\", \"Мај\", \"Јун\", \"Јул\", \"Авг\", \"Сеп\", \"Окт\", \"Нов\", \"Дец\",\n\t\t\t\t\"Јануар\", \"Фебруар\", \"Март\", \"Април\", \"Мај\", \"Јун\", \"Јул\", \"Август\", \"Септембар\", \"Октобар\", \"Новембар\", \"Децембар\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sv.js",
    "content": "/**\n * jqGrid Swedish Translation\n * Harald Normann harald.normann@wts.se, harald.normann@gmail.com\n * http://www.worldteamsoftware.com \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sv\"] = {\n\tdefaults : {\n\t\trecordtext: \"Visar {0} - {1} av {2}\",\n\t\temptyrecords: \"Det finns inga poster att visa\",\n\t\tloadtext: \"Laddar...\",\n\t\tpgtext : \"Sida {0} av {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Sök Poster - Ange sökvillkor\",\n\t\tFind: \"Sök\",\n\t\tReset: \"Nollställ Villkor\",\n\t\todata: [{ oper:'eq', text:\"lika\"},{ oper:'ne', text:\"ej lika\"},{ oper:'lt', text:\"mindre\"},{ oper:'le', text:\"mindre eller lika\"},{ oper:'gt', text:\"större\"},{ oper:'ge', text:\"större eller lika\"},{ oper:'bw', text:\"börjar med\"},{ oper:'bn', text:\"börjar inte med\"},{ oper:'in', text:\"tillhör\"},{ oper:'ni', text:\"tillhör inte\"},{ oper:'ew', text:\"slutar med\"},{ oper:'en', text:\"slutar inte med\"},{ oper:'cn', text:\"innehåller\"},{ oper:'nc', text:\"innehåller inte\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"alla\" },\t{ op: \"OR\",  text: \"eller\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Ny Post\",\n\t\teditCaption: \"Redigera Post\",\n\t\tbSubmit: \"Spara\",\n\t\tbCancel: \"Avbryt\",\n\t\tbClose: \"Stäng\",\n\t\tsaveData: \"Data har ändrats! Spara förändringar?\",\n\t\tbYes : \"Ja\",\n\t\tbNo : \"Nej\",\n\t\tbExit : \"Avbryt\",\n\t\tmsg: {\n\t        required:\"Fältet är obligatoriskt\",\n\t        number:\"Välj korrekt nummer\",\n\t        minValue:\"värdet måste vara större än eller lika med\",\n\t        maxValue:\"värdet måste vara mindre än eller lika med\",\n\t        email: \"är inte korrekt e-post adress\",\n\t        integer: \"Var god ange korrekt heltal\",\n\t        date: \"Var god ange korrekt datum\",\n\t        url: \"är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')\",\n\t        nodefined : \" är inte definierad!\",\n\t        novalue : \" returvärde måste anges!\",\n\t        customarray : \"Custom funktion måste returnera en vektor!\",\n\t\t\tcustomfcheck : \"Custom funktion måste finnas om Custom kontroll sker!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Visa Post\",\n\t\tbClose: \"Stäng\"\n\t},\n\tdel : {\n\t\tcaption: \"Radera\",\n\t\tmsg: \"Radera markerad(e) post(er)?\",\n\t\tbSubmit: \"Radera\",\n\t\tbCancel: \"Avbryt\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Redigera markerad rad\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Skapa ny post\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Radera markerad rad\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Sök poster\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Uppdatera data\",\n\t\talertcap: \"Varning\",\n\t\talerttext: \"Ingen rad är markerad\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Visa markerad rad\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Välj Kolumner\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Avbryt\"\n\t},\n\terrors : {\n\t\terrcap : \"Fel\",\n\t\tnourl : \"URL saknas\",\n\t\tnorecords: \"Det finns inga poster att bearbeta\",\n\t\tmodel : \"Antal colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"Kr\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\",\n\t\t\t\t\"Söndag\", \"Måndag\", \"Tisdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lördag\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"fm\",\"em\",\"FM\",\"EM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'Y-m-d',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate:  \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-th.js",
    "content": "/**\n * jqGrid Thai Translation\n * Kittituch Manakul m.kittituch@Gmail.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"th\"] = {\n\tdefaults : {\n\t\trecordtext: \"แสดง {0} - {1} จาก {2}\",\n\t\temptyrecords: \"ไม่พบข้อมูล\",\n\t\tloadtext: \"กำลังร้องขอข้อมูล...\",\n\t\tpgtext : \"หน้า {0} จาก {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"กำลังค้นหา...\",\n\t\tFind: \"ค้นหา\",\n\t\tReset: \"คืนค่ากลับ\",\n\t\todata: [{ oper:'eq', text:\"เท่ากับ\"},{ oper:'ne', text:\"ไม่เท่ากับ\"},{ oper:'lt', text:\"น้อยกว่า\"},{ oper:'le', text:\"ไม่มากกว่า\"},{ oper:'gt', text:\"มากกกว่า\"},{ oper:'ge', text:\"ไม่น้อยกว่า\"},{ oper:'bw', text:\"ขึ้นต้นด้วย\"},{ oper:'bn', text:\"ไม่ขึ้นต้นด้วย\"},{ oper:'in', text:\"มีคำใดคำหนึ่งใน\"},{ oper:'ni', text:\"ไม่มีคำใดคำหนึ่งใน\"},{ oper:'ew', text:\"ลงท้ายด้วย\"},{ oper:'en', text:\"ไม่ลงท้ายด้วย\"},{ oper:'cn', text:\"มีคำว่า\"},{ oper:'nc', text:\"ไม่มีคำว่า\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"และ\", text: \"ทั้งหมด\" },\t{ op: \"หรือ\",  text: \"ใดๆ\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"เพิ่มข้อมูล\",\n\t\teditCaption: \"แก้ไขข้อมูล\",\n\t\tbSubmit: \"บันทึก\",\n\t\tbCancel: \"ยกเลิก\",\n\t\tbClose: \"ปิด\",\n\t\tsaveData: \"คุณต้องการบันทึการแก้ไข ใช่หรือไม่?\",\n\t\tbYes : \"บันทึก\",\n\t\tbNo : \"ละทิ้งการแก้ไข\",\n\t\tbExit : \"ยกเลิก\",\n\t\tmsg: {\n\t\t\trequired:\"ข้อมูลนี้จำเป็น\",\n\t\t\tnumber:\"กรุณากรอกหมายเลขให้ถูกต้อง\",\n\t\t\tminValue:\"ค่าของข้อมูลนี้ต้องไม่น้อยกว่า\",\n\t\t\tmaxValue:\"ค่าของข้อมูลนี้ต้องไม่มากกว่า\",\n\t\t\temail: \"อีเมลล์นี้ไม่ถูกต้อง\",\n\t\t\tinteger: \"กรุณากรอกเป็นจำนวนเต็ม\",\n\t\t\tdate: \"กรุณากรอกวันที่ให้ถูกต้อง\",\n\t\t\turl: \"URL ไม่ถูกต้อง URL จำเป็นต้องขึ้นต้นด้วย 'http://' หรือ 'https://'\",\n\t\t\tnodefined : \"ไม่ได้ถูกกำหนดค่า!\",\n\t\t\tnovalue : \"ต้องการการคืนค่า!\",\n\t\t\tcustomarray : \"ฟังก์ชันที่สร้างขึ้นต้องส่งค่ากลับเป็นแบบแอเรย์\",\n\t\t\tcustomfcheck : \"ระบบต้องการฟังก์ชันที่สร้างขึ้นสำหรับการตรวจสอบ!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"เรียกดูข้อมูล\",\n\t\tbClose: \"ปิด\"\n\t},\n\tdel : {\n\t\tcaption: \"ลบข้อมูล\",\n\t\tmsg: \"คุณต้องการลบข้อมูลที่ถูกเลือก ใช่หรือไม่?\",\n\t\tbSubmit: \"ต้องการลบ\",\n\t\tbCancel: \"ยกเลิก\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"แก้ไขข้อมูล\",\n\t\taddtext:\"\",\n\t\taddtitle: \"เพิ่มข้อมูล\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"ลบข้อมูล\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"ค้นหาข้อมูล\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"รีเฟรช\",\n\t\talertcap: \"คำเตือน\",\n\t\talerttext: \"กรุณาเลือกข้อมูล\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"ดูรายละเอียดข้อมูล\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"กรุณาเลือกคอลัมน์\",\n\t\tbSubmit: \"ตกลง\",\n\t\tbCancel: \"ยกเลิก\"\n\t},\n\terrors : {\n\t\terrcap : \"เกิดความผิดพลาด\",\n\t\tnourl : \"ไม่ได้กำหนด URL\",\n\t\tnorecords: \"ไม่มีข้อมูลให้ดำเนินการ\",\n\t\tmodel : \"จำนวนคอลัมน์ไม่เท่ากับจำนวนคอลัมน์โมเดล!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"อา\", \"จ\", \"อ\", \"พ\", \"พฤ\", \"ศ\", \"ส\",\n\t\t\t\t\"อาทิตย์\", \"จันทร์\", \"อังคาร\", \"พุธ\", \"พฤหัสบดี\", \"ศูกร์\", \"เสาร์\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"ม.ค.\", \"ก.พ.\", \"มี.ค.\", \"เม.ย.\", \"พ.ค.\", \"มิ.ย.\", \"ก.ค.\", \"ส.ค.\", \"ก.ย.\", \"ต.ค.\", \"พ.ย.\", \"ธ.ค.\",\n\t\t\t\t\"มกราคม\", \"กุมภาพันธ์\", \"มีนาคม\", \"เมษายน\", \"พฤษภาคม\", \"มิถุนายน\", \"กรกฏาคม\", \"สิงหาคม\", \"กันยายน\", \"ตุลาคม\", \"พฤศจิกายน\", \"ธันวาคม\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-tr.js",
    "content": "/**\n * jqGrid Turkish Translation\n * Erhan Gündoğan (erhan@trposta.net)\n * http://blog.zakkum.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"tr\"] = {\n\tdefaults : {\n\t\trecordtext: \"{0}-{1} listeleniyor. Toplam:{2}\",\n\t    emptyrecords: \"Kayıt bulunamadı\",\n\t\tloadtext: \"Yükleniyor...\",\n\t\tpgtext : \"{0}/{1}. Sayfa\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Arama...\",\n\t    Find: \"Bul\",\n\t    Reset: \"Temizle\",\t    \n\t    odata: [{ oper:'eq', text:\"eşit\"},{ oper:'ne', text:\"eşit değil\"},{ oper:'lt', text:\"daha az\"},{ oper:'le', text:\"daha az veya eşit\"},{ oper:'gt', text:\"daha fazla\"},{ oper:'ge', text:\"daha fazla veya eşit\"},{ oper:'bw', text:\"ile başlayan\"},{ oper:'bn', text:\"ile başlamayan\"},{ oper:'in', text:\"içinde\"},{ oper:'ni', text:\"içinde değil\"},{ oper:'ew', text:\"ile biten\"},{ oper:'en', text:\"ile bitmeyen\"},{ oper:'cn', text:\"içeren\"},{ oper:'nc', text:\"içermeyen\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"VE\", text: \"tüm\" },\t{ op: \"VEYA\",  text: \"herhangi\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Kayıt Ekle\",\n\t    editCaption: \"Kayıt Düzenle\",\n\t    bSubmit: \"Gönder\",\n\t    bCancel: \"İptal\",\n\t\tbClose: \"Kapat\",\n\t\tsaveData: \"Veriler değişti! Kayıt edilsin mi?\",\n\t\tbYes : \"Evet\",\n\t\tbNo : \"Hayıt\",\n\t\tbExit : \"İptal\",\n\t    msg: {\n\t        required:\"Alan gerekli\",\n\t        number:\"Lütfen bir numara giriniz\",\n\t        minValue:\"girilen değer daha büyük ya da buna eşit olmalıdır\",\n\t        maxValue:\"girilen değer daha küçük ya da buna eşit olmalıdır\",\n\t        email: \"geçerli bir e-posta adresi değildir\",\n\t        integer: \"Lütfen bir tamsayı giriniz\",\n\t\t\turl: \"Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Kayıt Görüntüle\",\n\t    bClose: \"Kapat\"\n\t},\n\tdel : {\n\t    caption: \"Sil\",\n\t    msg: \"Seçilen kayıtlar silinsin mi?\",\n\t    bSubmit: \"Sil\",\n\t    bCancel: \"İptal\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Seçili satırı düzenle\",\n\t\taddtext:\" \",\n\t    addtitle: \"Yeni satır ekle\",\n\t    deltext: \" \",\n\t    deltitle: \"Seçili satırı sil\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Kayıtları bul\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Tabloyu yenile\",\n\t    alertcap: \"Uyarı\",\n\t    alerttext: \"Lütfen bir satır seçiniz\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Seçilen satırı görüntüle\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Sütunları göster/gizle\",\n\t    bSubmit: \"Gönder\",\n\t    bCancel: \"İptal\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Hata\",\n\t\tnourl : \"Bir url yapılandırılmamış\",\n\t\tnorecords: \"İşlem yapılacak bir kayıt yok\",\n\t    model : \"colNames uzunluğu <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Paz\", \"Pts\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cts\",\n\t\t\t\t\"Pazar\", \"Pazartesi\", \"Salı\", \"Çarşamba\", \"Perşembe\", \"Cuma\", \"Cumartesi\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Oca\", \"Şub\", \"Mar\", \"Nis\", \"May\", \"Haz\", \"Tem\", \"Ağu\", \"Eyl\", \"Eki\", \"Kas\", \"Ara\",\n\t\t\t\t\"Ocak\", \"Şubat\", \"Mart\", \"Nisan\", \"Mayıs\", \"Haziran\", \"Temmuz\", \"Ağustos\", \"Eylül\", \"Ekim\", \"Kasım\", \"Aralık\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-tw.js",
    "content": "/**\n * jqGrid Chinese (Taiwan) Translation for v4.2\n * linquize\n * https://github.com/linquize/jqGrid\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n * \n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"tw\"] = {\n\tdefaults : {\n\t\trecordtext: \"{0} - {1} 共 {2} 條\",\n\t\temptyrecords: \"沒有記錄\",\n\t\tloadtext: \"載入中...\",\n\t\tpgtext : \" {0} 共 {1} 頁\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"搜尋...\",\n\t\tFind: \"搜尋\",\n\t\tReset: \"重設\",\n\t\todata: [{ oper:'eq', text:\"等於 \"},{ oper:'ne', text:\"不等於 \"},{ oper:'lt', text:\"小於 \"},{ oper:'le', text:\"小於等於 \"},{ oper:'gt', text:\"大於 \"},{ oper:'ge', text:\"大於等於 \"},{ oper:'bw', text:\"開始於 \"},{ oper:'bn', text:\"不開始於 \"},{ oper:'in', text:\"在其中 \"},{ oper:'ni', text:\"不在其中 \"},{ oper:'ew', text:\"結束於 \"},{ oper:'en', text:\"不結束於 \"},{ oper:'cn', text:\"包含 \"},{ oper:'nc', text:\"不包含 \"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"所有\" },\t{ op: \"OR\",  text: \"任一\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"新增記錄\",\n\t\teditCaption: \"編輯記錄\",\n\t\tbSubmit: \"提交\",\n\t\tbCancel: \"取消\",\n\t\tbClose: \"關閉\",\n\t\tsaveData: \"資料已改變，是否儲存？\",\n\t\tbYes : \"是\",\n\t\tbNo : \"否\",\n\t\tbExit : \"取消\",\n\t\tmsg: {\n\t\t\trequired:\"此欄必要\",\n\t\t\tnumber:\"請輸入有效的數字\",\n\t\t\tminValue:\"值必須大於等於 \",\n\t\t\tmaxValue:\"值必須小於等於 \",\n\t\t\temail: \"不是有效的e-mail地址\",\n\t\t\tinteger: \"請輸入有效整数\",\n\t\t\tdate: \"請輸入有效時間\",\n\t\t\turl: \"網址無效。前綴必須為 ('http://' 或 'https://')\",\n\t\t\tnodefined : \" 未定義！\",\n\t\t\tnovalue : \" 需要傳回值！\",\n\t\t\tcustomarray : \"自訂函數應傳回陣列！\",\n\t\t\tcustomfcheck : \"自訂檢查應有自訂函數！\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"查看記錄\",\n\t\tbClose: \"關閉\"\n\t},\n\tdel : {\n\t\tcaption: \"刪除\",\n\t\tmsg: \"刪除已選記錄？\",\n\t\tbSubmit: \"刪除\",\n\t\tbCancel: \"取消\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"編輯已選列\",\n\t\taddtext:\"\",\n\t\taddtitle: \"新增列\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"刪除已選列\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"搜尋記錄\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"重新整理表格\",\n\t\talertcap: \"警告\",\n\t\talerttext: \"請選擇列\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"檢視已選列\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"選擇欄\",\n\t\tbSubmit: \"確定\",\n\t\tbCancel: \"取消\"\n\t},\n\terrors : {\n\t\terrcap : \"錯誤\",\n\t\tnourl : \"未設定URL\",\n\t\tnorecords: \"無需要處理的記錄\",\n\t\tmodel : \"colNames 和 colModel 長度不同！\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\",\n\t\t         \"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\", \"十\", \"十一\", \"十二\",\n\t\t\t\t\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n\t\t\t],\n\t\t\tAmPm : [\"上午\",\"下午\",\"上午\",\"下午\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'm-d-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"Y/j/n\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-uk.js",
    "content": "/**\n * jqGrid Ukrainian Translation v1.0 02.07.2009\n * Sergey Dyagovchenko\n * http://d.sumy.ua\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ua\"] = {\n\tdefaults : {\n\t\trecordtext: \"Перегляд {0} - {1} з {2}\",\n\t  emptyrecords: \"Немає записів для перегляду\",\n\t\tloadtext: \"Завантаження...\",\n\t\tpgtext : \"Стор. {0} з {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n    caption: \"Пошук...\",\n    Find: \"Знайти\",\n    Reset: \"Скидання\",\n    odata: [{ oper:'eq', text:\"рівно\"},{ oper:'ne', text:\"не рівно\"},{ oper:'lt', text:\"менше\"},{ oper:'le', text:\"менше або рівне\"},{ oper:'gt', text:\"більше\"},{ oper:'ge', text:\"більше або рівне\"},{ oper:'bw', text:\"починається з\"},{ oper:'bn', text:\"не починається з\"},{ oper:'in', text:\"знаходиться в\"},{ oper:'ni', text:\"не знаходиться в\"},{ oper:'ew', text:\"закінчується на\"},{ oper:'en', text:\"не закінчується на\"},{ oper:'cn', text:\"містить\"},{ oper:'nc', text:\"не містить\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n    groupOps: [\t{ op: \"AND\", text: \"все\" },\t{ op: \"OR\",  text: \"будь-який\" }],\n\toperandTitle : \"Click to select search operation.\",\n\tresetTitle : \"Reset Search Value\",\n\taddsubgrup : \"Add subgroup\",\n\taddrule : \"Add rule\",\n\tdelgroup : \"Delete group\",\n\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n    addCaption: \"Додати запис\",\n    editCaption: \"Змінити запис\",\n    bSubmit: \"Зберегти\",\n    bCancel: \"Відміна\",\n\t\tbClose: \"Закрити\",\n\t\tsaveData: \"До данних були внесені зміни! Зберегти зміни?\",\n\t\tbYes : \"Так\",\n\t\tbNo : \"Ні\",\n\t\tbExit : \"Відміна\",\n\t    msg: {\n        required:\"Поле є обов'язковим\",\n        number:\"Будь ласка, введіть правильне число\",\n        minValue:\"значення повинне бути більше або дорівнює\",\n        maxValue:\"значення повинно бути менше або дорівнює\",\n        email: \"некоректна адреса електронної пошти\",\n        integer: \"Будь ласка, введення дійсне ціле значення\",\n        date: \"Будь ласка, введення дійсне значення дати\",\n        url: \"не дійсний URL. Необхідна приставка ('http://' or 'https://')\",\n\t\tnodefined : \" is not defined!\",\n\t\tnovalue : \" return value is required!\",\n\t\tcustomarray : \"Custom function should return array!\",\n\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Переглянути запис\",\n\t    bClose: \"Закрити\"\n\t},\n\tdel : {\n\t    caption: \"Видалити\",\n\t    msg: \"Видалити обраний запис(и)?\",\n\t    bSubmit: \"Видалити\",\n\t    bCancel: \"Відміна\"\n\t},\n\tnav : {\n  \t\tedittext: \" \",\n\t    edittitle: \"Змінити вибраний запис\",\n  \t\taddtext:\" \",\n\t    addtitle: \"Додати новий запис\",\n\t    deltext: \" \",\n\t    deltitle: \"Видалити вибраний запис\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Знайти записи\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Оновити таблицю\",\n\t    alertcap: \"Попередження\",\n\t    alerttext: \"Будь ласка, виберіть запис\",\n  \t\tviewtext: \"\",\n  \t\tviewtitle: \"Переглянути обраний запис\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Показати/Приховати стовпці\",\n\t    bSubmit: \"Зберегти\",\n\t    bCancel: \"Відміна\"\n\t},\n\terrors : {\n\t\terrcap : \"Помилка\",\n\t\tnourl : \"URL не задан\",\n\t\tnorecords: \"Немає записів для обробки\",\n    model : \"Число полів не відповідає числу стовпців таблиці!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\",\n\t\t\t\t\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четвер\", \"П'ятниця\", \"Субота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Січ\", \"Лют\", \"Бер\", \"Кві\", \"Тра\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Гру\",\n\t\t\t\t\"Січень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n.j.Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y G:i:s\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"G:i\",\n\t            LongTime: \"G:i:s\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t  target: '',\n\t  checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-vi.js",
    "content": "/**\n * jqGrid Vietnamese Translation\n * Lê Đình Dũng dungtdc@gmail.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"vi\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t\temptyrecords: \"Không có dữ liệu\",\n\t\tloadtext: \"Đang nạp dữ liệu...\",\n\t\tpgtext : \"Trang {0} trong tổng số {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Tìm kiếm...\",\n\t\tFind: \"Tìm\",\n\t\tReset: \"Khởi tạo lại\",\n\t\todata: [{ oper:'eq', text:\"bằng\"},{ oper:'ne', text:\"không bằng\"},{ oper:'lt', text:\"bé hơn\"},{ oper:'le', text:\"bé hơn hoặc bằng\"},{ oper:'gt', text:\"lớn hơn\"},{ oper:'ge', text:\"lớn hơn hoặc bằng\"},{ oper:'bw', text:\"bắt đầu với\"},{ oper:'bn', text:\"không bắt đầu với\"},{ oper:'in', text:\"trong\"},{ oper:'ni', text:\"không nằm trong\"},{ oper:'ew', text:\"kết thúc với\"},{ oper:'en', text:\"không kết thúc với\"},{ oper:'cn', text:\"chứa\"},{ oper:'nc', text:\"không chứa\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"VÀ\", text: \"tất cả\" },\t{ op: \"HOẶC\",  text: \"bất kỳ\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Thêm bản ghi\",\n\t\teditCaption: \"Sửa bản ghi\",\n\t\tbSubmit: \"Gửi\",\n\t\tbCancel: \"Hủy bỏ\",\n\t\tbClose: \"Đóng\",\n\t\tsaveData: \"Dữ liệu đã thay đổi! Có lưu thay đổi không?\",\n\t\tbYes : \"Có\",\n\t\tbNo : \"Không\",\n\t\tbExit : \"Hủy bỏ\",\n\t\tmsg: {\n\t\t\trequired:\"Trường dữ liệu bắt buộc có\",\n\t\t\tnumber:\"Hãy điền đúng số\",\n\t\t\tminValue:\"giá trị phải lớn hơn hoặc bằng với \",\n\t\t\tmaxValue:\"giá trị phải bé hơn hoặc bằng\",\n\t\t\temail: \"không phải là một email đúng\",\n\t\t\tinteger: \"Hãy điền đúng số nguyên\",\n\t\t\tdate: \"Hãy điền đúng ngày tháng\",\n\t\t\turl: \"không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')\",\n\t\t\tnodefined : \" chưa được định nghĩa!\",\n\t\t\tnovalue : \" giá trị trả về bắt buộc phải có!\",\n\t\t\tcustomarray : \"Hàm nên trả về một mảng!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Xem bản ghi\",\n\t\tbClose: \"Đóng\"\n\t},\n\tdel : {\n\t\tcaption: \"Xóa\",\n\t\tmsg: \"Xóa bản ghi đã chọn?\",\n\t\tbSubmit: \"Xóa\",\n\t\tbCancel: \"Hủy bỏ\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Sửa dòng đã chọn\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Thêm mới 1 dòng\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Xóa dòng đã chọn\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Tìm bản ghi\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Nạp lại lưới\",\n\t\talertcap: \"Cảnh báo\",\n\t\talerttext: \"Hãy chọn một dòng\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Xem dòng đã chọn\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Chọn cột\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Hủy bỏ\"\n\t},\n\terrors : {\n\t\terrcap : \"Lỗi\",\n\t\tnourl : \"không url được đặt\",\n\t\tnorecords: \"Không có bản ghi để xử lý\",\n\t\tmodel : \"Chiều dài của colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\",\n\t\t\t\t\"Chủ nhật\", \"Thứ hai\", \"Thứ ba\", \"Thứ tư\", \"Thứ năm\", \"Thứ sáu\", \"Thứ bảy\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Th1\", \"Th2\", \"Th3\", \"Th4\", \"Th5\", \"Th6\", \"Th7\", \"Th8\", \"Th9\", \"Th10\", \"Th11\", \"Th12\",\n\t\t\t\t\"Tháng một\", \"Tháng hai\", \"Tháng ba\", \"Tháng tư\", \"Tháng năm\", \"Tháng sáu\", \"Tháng bảy\", \"Tháng tám\", \"Tháng chín\", \"Tháng mười\", \"Tháng mười một\", \"Tháng mười hai\"\n\t\t\t],\n\t\t\tAmPm : [\"sáng\",\"chiều\",\"SÁNG\",\"CHIỀU\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jqDnR.js",
    "content": "/*\n * jqDnR - Minimalistic Drag'n'Resize for jQuery.\n *\n * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net\n * Licensed under the MIT License:\n * http://www.opensource.org/licenses/mit-license.php\n * \n * $Version: 2007.08.19 +r2\n */\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} (function( $ ) {\n\"use strict\";\n//module begin\n$.fn.jqDrag=function(h){return i(this,h,'d');};\n$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};\n$.jqDnR={\n\tdnr:{},\n\te:0,\n\tdrag:function(v){\n\t\tif(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}\n\t\telse {\n\t\t\tE.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});\n\t\t\tif(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}\n\t\t}\n\t\treturn false;\n\t},\n\tstop:function(){\n\t\t//E.css('opacity',M.o);\n\t\t$(document).off('mousemove',J.drag).off('mouseup',J.stop);\n\t}\n};\nvar J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,\ni=function(e,h,k,aR){\n\treturn e.each(function(){\n\t\th=(h)?$(h,e):e;\n\t\th.on('mousedown',{e:e,k:k},function(v){\n\t\t\tvar d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;\n\t\t\t// attempt utilization of dimensions plugin to fix IE issues\n\t\t\tif(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}\n\t\t\tM={\n\t\t\t\tX:p.left||f('left')||0,\n\t\t\t\tY:p.top||f('top')||0,\n\t\t\t\tW:f('width')||E[0].scrollWidth||0,\n\t\t\t\tH:f('height')||E[0].scrollHeight||0,\n\t\t\t\tpX:v.pageX,\n\t\t\t\tpY:v.pageY,\n\t\t\t\tk:d.k\n\t\t\t\t//o:E.css('opacity')\n\t\t\t};\n\t\t\t// also resize\n\t\t\tif(E1 && d.k != 'd'){\n\t\t\t\tM1={\n\t\t\t\t\tX:p.left||f1('left')||0,\n\t\t\t\t\tY:p.top||f1('top')||0,\n\t\t\t\t\tW:E1[0].offsetWidth||f1('width')||0,\n\t\t\t\t\tH:E1[0].offsetHeight||f1('height')||0,\n\t\t\t\t\tpX:v.pageX,\n\t\t\t\t\tpY:v.pageY,\n\t\t\t\t\tk:d.k\n\t\t\t\t};\n\t\t\t} else {M1 = false;}\t\t\t\n\t\t\t//E.css({opacity:0.8});\n\t\t\tif($(\"input.hasDatepicker\",E[0])[0]) {\n\t\t\ttry {$(\"input.hasDatepicker\",E[0]).datepicker('hide');}catch (dpe){}\n\t\t\t}\n\t\t\t$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);\n\t\t\treturn false;\n\t\t});\n\t});\n},\nf=function(k){return parseInt(E.css(k),10)||false;},\nf1=function(k){return parseInt(E1.css(k),10)||false;};\n/*\n\tjQuery tinyDraggable v1.0.2\n    Copyright (c) 2014 Simon Steinberger / Pixabay\n    GitHub: https://github.com/Pixabay/jQuery-tinyDraggable\n    More info: https://pixabay.com/blog/posts/p-52/\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n$.fn.tinyDraggable = function(options){\n\tvar settings = $.extend({ handle: 0, exclude: 0 }, options);\n\treturn this.each(function(){\n\t    var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el;\n        handle.on({\n        mousedown: function(e){\n\t\t\tif (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; }\n\t\t\te.preventDefault();\n\t\t\tvar os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top;\n\t\t\t$(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); });\n\t\t\t},\n\t\t\tmouseup: function(e){ $(document).off('mousemove.drag'); }\n\t\t});\n\t});\n};\n//module end\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jqModal.js",
    "content": "/*\n * jqModal - Minimalist Modaling with jQuery\n *   (http://dev.iceburg.net/jquery/jqmodal/)\n *\n * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>\n * Dual licensed under the MIT and GPL licenses:\n *   http://www.opensource.org/licenses/mit-license.php\n *   http://www.gnu.org/licenses/gpl.html\n * \n * $Version: 07/06/2008 +r13\n */\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} (function( $ ) {\n\"use strict\";\n//module begin\n$.fn.jqm=function(o){\nvar p={\noverlay: 50,\ncloseoverlay : true,\noverlayClass: 'jqmOverlay',\ncloseClass: 'jqmClose',\ntrigger: '.jqModal',\najax: F,\najaxText: '',\ntarget: F,\nmodal: F,\ntoTop: F,\nonShow: F,\nonHide: F,\nonLoad: F\n};\nreturn this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s;\nH[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};\nif(p.trigger){$(this).jqmAddTrigger(p.trigger);}\n});};\n\n$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};\n$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};\n$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};\n$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});};\n\n$.jqm = {\nhash:{},\nopen:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z);\n if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);}\n else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}}\n else {o=F;}\n\n h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;\n\n if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u;\n  r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});}\n else if(cc){h.w.jqmAddClose($(cc,h.w));}\n\n if(c.toTop&&h.o){h.w.before('<span id=\"jqmP'+h.w[0]._jqm+'\"></span>').insertAfter(h.o);}\n (c.onShow)?c.onShow(h):h.w.show();e(h);return F;\n},\nclose:function(s){var h=H[s];if(!h.a){return F;}h.a=F;\n if(A[0]){A.pop();if(!A[0]){new L('unbind');}}\n if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();}\n if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F;\n},\nparams:{}};\nvar s=0,H=$.jqm.hash,A=[],F=false,\ne=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} },\nf=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus();\t}catch(_){}},\nL=function(t){$(document)[t](\"keypress\",m)[t](\"keydown\",m)[t](\"mousedown\",m);},\nm=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width()){r=false;return false;}});f(h);}return !r;},\nhs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {\n if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});}\n this[c].push(s);});});};\n//module end\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jquery.fmatter.js",
    "content": "/*\n**\n * formatter for values but most of the values if for jqGrid\n * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion\n * we are trying to keep it as light as possible\n * Joshua Burnett josh@9ci.com\t\n * http://www.greenbill.com\n *\n * Changes from Tony Tomov tony@trirand.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n * \n**/\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n\t$.fmatter = {};\n\t//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column\n\t//example {id:1234,}\n\t$.extend($.fmatter,{\n\t\tisBoolean : function(o) {\n\t\t\treturn typeof o === 'boolean';\n\t\t},\n\t\tisObject : function(o) {\n\t\t\treturn (o && (typeof o === 'object' || $.isFunction(o))) || false;\n\t\t},\n\t\tisString : function(o) {\n\t\t\treturn typeof o === 'string';\n\t\t},\n\t\tisNumber : function(o) {\n\t\t\treturn typeof o === 'number' && isFinite(o);\n\t\t},\n\t\tisValue : function (o) {\n\t\t\treturn (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));\n\t\t},\n\t\tisEmpty : function(o) {\n\t\t\tif(!this.isString(o) && this.isValue(o)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!this.isValue(o)){\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\to = $.trim(o).replace(/\\&nbsp\\;/ig,'').replace(/\\&#160\\;/ig,'');\n\t\t\treturn o===\"\";\t\n\t\t}\n\t});\n\t$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {\n\t\t// build main options before element iteration\n\t\tvar v=cellval;\n\t\topts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts);\n\n\t\ttry {\n\t\t\tv = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);\n\t\t} catch(fe){}\n\t\treturn v;\n\t};\n\t$.fmatter.util = {\n\t\t// Taken from YAHOO utils\n\t\tNumberFormat : function(nData,opts) {\n\t\t\tif(!$.fmatter.isNumber(nData)) {\n\t\t\t\tnData *= 1;\n\t\t\t}\n\t\t\tif($.fmatter.isNumber(nData)) {\n\t\t\t\tvar bNegative = (nData < 0);\n\t\t\t\tvar sOutput = String(nData);\n\t\t\t\tvar sDecimalSeparator = opts.decimalSeparator || \".\";\n\t\t\t\tvar nDotIndex;\n\t\t\t\tif($.fmatter.isNumber(opts.decimalPlaces)) {\n\t\t\t\t\t// Round to the correct decimal place\n\t\t\t\t\tvar nDecimalPlaces = opts.decimalPlaces;\n\t\t\t\t\tvar nDecimal = Math.pow(10, nDecimalPlaces);\n\t\t\t\t\tsOutput = String(Math.round(nData*nDecimal)/nDecimal);\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(\".\");\n\t\t\t\t\tif(nDecimalPlaces > 0) {\n\t\t\t\t\t// Add the decimal separator\n\t\t\t\t\t\tif(nDotIndex < 0) {\n\t\t\t\t\t\t\tsOutput += sDecimalSeparator;\n\t\t\t\t\t\t\tnDotIndex = sOutput.length-1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Replace the \".\"\n\t\t\t\t\t\telse if(sDecimalSeparator !== \".\"){\n\t\t\t\t\t\t\tsOutput = sOutput.replace(\".\",sDecimalSeparator);\n\t\t\t\t\t\t}\n\t\t\t\t\t// Add missing zeros\n\t\t\t\t\t\twhile((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {\n\t\t\t\t\t\t\tsOutput += \"0\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(opts.thousandsSeparator) {\n\t\t\t\t\tvar sThousandsSeparator = opts.thousandsSeparator;\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(sDecimalSeparator);\n\t\t\t\t\tnDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;\n\t\t\t\t\tvar sNewOutput = sOutput.substring(nDotIndex);\n\t\t\t\t\tvar nCount = -1, i;\n\t\t\t\t\tfor (i=nDotIndex; i>0; i--) {\n\t\t\t\t\t\tnCount++;\n\t\t\t\t\t\tif ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {\n\t\t\t\t\t\t\tsNewOutput = sThousandsSeparator + sNewOutput;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsNewOutput = sOutput.charAt(i-1) + sNewOutput;\n\t\t\t\t\t}\n\t\t\t\t\tsOutput = sNewOutput;\n\t\t\t\t}\n\t\t\t\t// Prepend prefix\n\t\t\t\tsOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;\n\t\t\t\t// Append suffix\n\t\t\t\tsOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;\n\t\t\t\treturn sOutput;\n\t\t\t\t\n\t\t\t}\n\t\t\treturn nData;\n\t\t}\n\t};\n\t$.fn.fmatter.defaultFormat = function(cellval, opts) {\n\t\treturn ($.fmatter.isValue(cellval) && cellval!==\"\" ) ?  cellval : opts.defaultValue || \"&#160;\";\n\t};\n\t$.fn.fmatter.email = function(cellval, opts) {\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a href=\\\"mailto:\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts );\n\t};\n\t$.fn.fmatter.checkbox =function(cval, opts) {\n\t\tvar op = $.extend({},opts.checkbox), ds;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.disabled===true) {ds = \"disabled=\\\"disabled\\\"\";} else {ds=\"\";}\n\t\tif($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}\n\t\tcval=String(cval);\n\t\tcval=(cval+\"\").toLowerCase();\n\t\tvar bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? \" checked='checked' \" : \"\";\n\t\treturn \"<input type=\\\"checkbox\\\" \" + bchk  + \" value=\\\"\"+ cval+\"\\\" offval=\\\"no\\\" \"+ds+ \"/>\";\n\t};\n\t$.fn.fmatter.link = function(cellval, opts) {\n\t\tvar op = {target:opts.target};\n\t\tvar target = \"\";\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.showlink = function(cellval, opts) {\n\t\tvar op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || \"\", target: opts.target, idName: opts.idName},\n\t\ttarget = \"\", idUrl;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tidUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;\n\t\tif($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) {\t//add this one even if its blank string\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + idUrl + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.integer = function(cellval, opts) {\n\t\tvar op = $.extend({},opts.integer);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.number = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.number);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.currency = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.currency);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.date = function (cellval, opts, rwd, act) {\n\t\tvar op = $.extend({},opts.date);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(!op.reformatAfterEdit && act === 'edit'){\n\t\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t\t}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n\t$.fn.fmatter.select = function (cellval,opts) {\n\t\t// jqGrid specific\n\t\tcellval = String(cellval);\n\t\tvar oSelect = false, ret=[], sep, delim;\n\t\tif(opts.colModel.formatoptions !== undefined){\n\t\t\toSelect= opts.colModel.formatoptions.value;\n\t\t\tsep = opts.colModel.formatoptions.separator === undefined ? \":\" : opts.colModel.formatoptions.separator;\n\t\t\tdelim = opts.colModel.formatoptions.delimiter === undefined ? \";\" : opts.colModel.formatoptions.delimiter;\n\t\t} else if(opts.colModel.editoptions !== undefined){\n\t\t\toSelect= opts.colModel.editoptions.value;\n\t\t\tsep = opts.colModel.editoptions.separator === undefined ? \":\" : opts.colModel.editoptions.separator;\n\t\t\tdelim = opts.colModel.editoptions.delimiter === undefined ? \";\" : opts.colModel.editoptions.delimiter;\n\t\t}\n\t\tif (oSelect) {\n\t\t\tvar\tmsl =  (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cellval.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\t// mybe here we can use some caching with care ????\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray(sv[0],scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[1];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[0]) === $.trim(cellval)) {\n\t\t\t\t\t\tret[0] = sv[1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect)) {\n\t\t\t\t// this is quicker\n\t\t\t\tif(msl) {\n\t\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\t\treturn oSelect[n];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tret[0] = oSelect[cellval] || \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcellval = ret.join(\", \");\n\t\treturn  cellval === \"\" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;\n\t};\n\t$.fn.fmatter.rowactions = function(act) {\n\t\tvar $tr = $(this).closest(\"tr.jqgrow\"),\n\t\t\trid = $tr.attr(\"id\"),\n\t\t\t$id = $(this).closest(\"table.ui-jqgrid-btable\").attr('id').replace(/_frozen([^_]*)$/,'$1'),\n\t\t\t$grid = $(\"#\"+$id),\n\t\t\t$t = $grid[0],\n\t\t\tp = $t.p,\n\t\t\tcm = p.colModel[$.jgrid.getCellIndex(this)],\n\t\t\t$actionsDiv = cm.frozen ? $(\"tr#\"+rid+\" td:eq(\"+$.jgrid.getCellIndex(this)+\") > div\",$grid) :$(this).parent(),\n\t\t\top = {\n\t\t\t\textraparam: {}\n\t\t\t},\n\t\t\tsaverow = function(rowid, res) {\n\t\t\t\tif($.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t},\n\t\t\trestorerow = function(rowid) {\n\t\t\t\tif($.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t};\n\n\t\tif (cm.formatoptions !== undefined) {\n\t\t\top = $.extend(op,cm.formatoptions);\n\t\t}\n\t\tif (p.editOptions !== undefined) {\n\t\t\top.editOptions = p.editOptions;\n\t\t}\n\t\tif (p.delOptions !== undefined) {\n\t\t\top.delOptions = p.delOptions;\n\t\t}\n\t\tif ($tr.hasClass(\"jqgrid-new-row\")){\n\t\t\top.extraparam[p.prmNames.oper] = p.prmNames.addoper;\n\t\t}\n\t\tvar actop = {\n\t\t\tkeys: op.keys,\n\t\t\toneditfunc: op.onEdit,\n\t\t\tsuccessfunc: op.onSuccess,\n\t\t\turl: op.url,\n\t\t\textraparam: op.extraparam,\n\t\t\taftersavefunc: saverow,\n\t\t\terrorfunc: op.onError,\n\t\t\tafterrestorefunc: restorerow,\n\t\t\trestoreAfterError: op.restoreAfterError,\n\t\t\tmtype: op.mtype\n\t\t};\n\t\tswitch(act)\n\t\t{\n\t\t\tcase 'edit':\n\t\t\t\t$grid.jqGrid('editRow', rid, actop);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").hide();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").show();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'save':\n\t\t\t\tif ($grid.jqGrid('saveRow', rid, actop)) {\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'cancel' :\n\t\t\t\t$grid.jqGrid('restoreRow', rid, restorerow);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'del':\n\t\t\t\t$grid.jqGrid('delGridRow', rid, op.delOptions);\n\t\t\t\tbreak;\n\t\t\tcase 'formedit':\n\t\t\t\t$grid.jqGrid('setSelection', rid);\n\t\t\t\t$grid.jqGrid('editGridRow', rid, op.editOptions);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\t$.fn.fmatter.actions = function(cellval,opts) {\n\t\tvar op={keys:false, editbutton:true, delbutton:true, editformbutton: false},\n\t\t\trowid=opts.rowId, str=\"\",ocl,\n\t\t\tnav = $.jgrid.getRegional(this, 'nav'),\n\t\t\tclasses = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter,\n\t\t\tcommon = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common;\n\t\tif(opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend(op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(rowid === undefined || $.fmatter.isEmpty(rowid)) {return \"\";}\n\t\tvar hover = \"onmouseover=jQuery(this).addClass('\" + common.hover +\"'); onmouseout=jQuery(this).removeClass('\" + common.hover +\"');  \";\n\t\tif(op.editformbutton){ \n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t} else if(op.editbutton){\n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t}\n\t\tif(op.delbutton) {\n\t\t\tocl = \"id='jDeleteButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.deltitle+\"' style='float:left;' class='ui-pg-div ui-inline-del' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_del +\"'></span></div>\";\n\t\t}\n\t\tocl = \"id='jSaveButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); \" + hover;\n\t\tstr += \"<div title='\"+nav.savetitle+\"' style='float:left;display:none' class='ui-pg-div ui-inline-save' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_save +\"'></span></div>\";\n\t\tocl = \"id='jCancelButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); \" + hover;\n\t\tstr += \"<div title='\"+nav.canceltitle+\"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_cancel +\"'></span></div>\";\n\t\treturn \"<div style='margin-left:8px;'>\" + str + \"</div>\";\n\t};\n\t$.unformat = function (cellval,options,pos,cnt) {\n\t\t// specific for jqGrid only\n\t\tvar ret, formatType = options.colModel.formatter,\n\t\top =options.colModel.formatoptions || {}, sep,\n\t\tre = /([\\.\\*\\_\\'\\(\\)\\{\\}\\+\\?\\\\])/g,\n\t\tunformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);\n\t\tif(unformatFunc !== undefined && $.isFunction(unformatFunc) ) {\n\t\t\tret = unformatFunc.call(this, $(cellval).text(), options, cellval);\n\t\t} else if(formatType !== undefined && $.fmatter.isString(formatType) ) {\n\t\t\tvar opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag;\n\t\t\tswitch(formatType) {\n\t\t\t\tcase 'integer' :\n\t\t\t\t\top = $.extend({},opts.integer,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,'');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'number' :\n\t\t\t\t\top = $.extend({},opts.number,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,\"\").replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'currency':\n\t\t\t\t\top = $.extend({},opts.currency,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text();\n\t\t\t\t\tif (op.prefix && op.prefix.length) {\n\t\t\t\t\t\tret = ret.substr(op.prefix.length);\n\t\t\t\t\t}\n\t\t\t\t\tif (op.suffix && op.suffix.length) {\n\t\t\t\t\t\tret = ret.substr(0, ret.length - op.suffix.length);\n\t\t\t\t\t}\n\t\t\t\t\tret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\tvar cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(\":\") : [\"Yes\",\"No\"];\n\t\t\t\t\tret = $('input',cellval).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select' :\n\t\t\t\t\tret = $.unformat.select(cellval,options,pos,cnt);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'actions':\n\t\t\t\t\treturn \"\";\n\t\t\t\tdefault:\n\t\t\t\t\tret= $(cellval).text();\n\t\t\t}\n\t\t}\n\t\treturn ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());\n\t};\n\t$.unformat.select = function (cellval,options,pos,cnt) {\n\t\t// Spacial case when we have local data and perform a sort\n\t\t// cnt is set to true only in sortDataArray\n\t\tvar ret = [];\n\t\tvar cell = $(cellval).text();\n\t\tif(cnt===true) {return cell;}\n\t\tvar op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions),\n\t\tsep = op.separator === undefined ? \":\" : op.separator,\n\t\tdelim = op.delimiter === undefined ? \";\" : op.delimiter;\n\t\t\n\t\tif(op.value){\n\t\t\tvar oSelect = op.value,\n\t\t\tmsl =  op.multiple === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cell.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray($.trim(sv[1]),scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[0];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[1]) === $.trim(cell)) {\n\t\t\t\t\t\tret[0] = sv[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect) || $.isArray(oSelect) ){\n\t\t\t\tif(!msl) {scell[0] =  cell;}\n\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\tvar rv;\n\t\t\t\t\t$.each(oSelect, function(i,val){\n\t\t\t\t\t\tif (val === n) {\n\t\t\t\t\t\t\trv = i;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif( rv !== undefined ) {return rv;}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ret.join(\", \");\n\t\t}\n\t\treturn cell || \"\";\n\t};\n\t$.unformat.date = function (cellval, opts) {\n\t\tvar op = $.jgrid.getRegional(this, 'formatter.date') || {};\n\t\tif(opts.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.formatoptions);\n\t\t}\t\t\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jquery.jqGrid.js",
    "content": "/**\n*\n* @license Guriddo jqGrid JS - v5.2.0 - 2016-11-21\n* Copyright(c) 2008, Tony Tomov, tony@trirand.com\n* \n* License: http://guriddo.net/?page_id=103334\n*/\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \n\t\t\t\"jquery\"\n\t\t], factory );\n \t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n \t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"defaults\")) {\n\t$.jgrid.defaults = {};\n}\n$.extend($.jgrid,{\n\tversion : \"5.2.0\",\n\thtmlDecode : function(value){\n\t\tif(value && (value==='&nbsp;' || value==='&#160;' || (value.length===1 && value.charCodeAt(0)===160))) { return \"\";}\n\t\treturn !value ? value : String(value).replace(/&gt;/g, \">\").replace(/&lt;/g, \"<\").replace(/&quot;/g, '\"').replace(/&amp;/g, \"&\");\t\t\n\t},\n\thtmlEncode : function (value){\n\t\treturn !value ? value : String(value).replace(/&/g, \"&amp;\").replace(/\\\"/g, \"&quot;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n\t},\n\ttemplate : function(format){ //jqgformat\n\t\tvar args = $.makeArray(arguments).slice(1), j, al = args.length;\n\t\tif(format==null) { format = \"\"; }\n\t\treturn format.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\tif(!isNaN(parseInt(i,10))) {\n\t\t\t\treturn args[parseInt(i,10)];\n\t\t\t}\n\t\t\tfor(j=0; j < al;j++) {\n\t\t\t\tif($.isArray(args[j])) {\n\t\t\t\t\tvar nmarr = args[ j ],\n\t\t\t\t\tk = nmarr.length;\n\t\t\t\t\twhile(k--) {\n\t\t\t\t\t\tif(i===nmarr[k].nm) {\n\t\t\t\t\t\t\treturn nmarr[k].v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}, \n\tmsie : function () {\n\t\treturn $.jgrid.msiever() > 0;\n\t},\n\tmsiever : function () {\n\t\tvar rv =0,\n\t\tsAgent = window.navigator.userAgent,\n\t\tIdx = sAgent.indexOf(\"MSIE\");\n\n\t\tif (Idx > 0)  {\n\t\t\trv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(\".\", Idx)));\n\t\t} else if ( !!navigator.userAgent.match(/Trident\\/7\\./) ) {\n\t\t\trv = 11;\n\t\t}\n\t\treturn rv;\n\t},\n\tgetCellIndex : function (cell) {\n\t\tvar c = $(cell);\n\t\tif (c.is('tr')) { return -1; }\n\t\tc = (!c.is('td') && !c.is('th') ? c.closest(\"td,th\") : c)[0];\n\t\tif ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); }\n\t\treturn c.cellIndex;\n\t},\n\tstripHtml : function(v) {\n\t\tv = String(v);\n\t\tvar regexp = /<(\"[^\"]*\"|'[^']*'|[^'\">])*>/gi;\n\t\tif (v) {\n\t\t\tv = v.replace(regexp,\"\");\n\t\t\treturn (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\\\"/g,\"'\") : \"\";\n\t\t} \n\t\t\treturn v;\n\t},\n\tstripPref : function (pref, id) {\n\t\tvar obj = $.type( pref );\n\t\tif( obj === \"string\" || obj === \"number\") {\n\t\t\tpref =  String(pref);\n\t\t\tid = pref !== \"\" ? String(id).replace(String(pref), \"\") : id;\n\t\t}\n\t\treturn id;\n\t},\n\tuseJSON : true,\n\tparse : function(jsonString) {\n\t\tvar js = jsonString;\n\t\tif (js.substr(0,9) === \"while(1);\") { js = js.substr(9); }\n\t\tif (js.substr(0,2) === \"/*\") { js = js.substr(2,js.length-4); }\n\t\tif(!js) { js = \"{}\"; }\n\t\treturn ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ?\n\t\t\tJSON.parse(js) :\n\t\t\teval('(' + js + ')');\n\t},\n\tparseDate : function(format, date, newformat, opts) {\n\t\tvar\ttoken = /\\\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,\n\t\ttimezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\n\t\ttimezoneClip = /[^-+\\dA-Z]/g,\n\t\tmsDateRegExp = new RegExp(\"^\\/Date\\\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\\\)\\/$\"),\n\t\tmsMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null),\n\t\tpad = function (value, length) {\n\t\t\tvalue = String(value);\n\t\t\tlength = parseInt(length,10) || 2;\n\t\t\twhile (value.length < length)  { value = '0' + value; }\n\t\t\treturn value;\n\t\t},\n\t\tts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},\n\t\ttimestamp=0, dM, k,hl,\n\t\th12to24 = function(ampm, h){\n\t\t\tif (ampm === 0){ if (h === 12) { h = 0;} }\n\t\t\telse { if (h !== 12) { h += 12; } }\n\t\t\treturn h;\n\t\t},\n\t\toffset =0;\n\t\tif(opts === undefined) {\n\t\t\topts = $.jgrid.getRegional(this, \"formatter.date\");//$.jgrid.formatter.date;\n\t\t}\n\t\t// old lang files\n\t\tif(opts.parseRe === undefined ) {\n\t\t\topts.parseRe = /[#%\\\\\\/:_;.,\\t\\s-]/;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; }\n\t\tif(date && date != null) {\n\t\t\tif( !isNaN( date - 0 ) && String(format).toLowerCase() === \"u\") {\n\t\t\t\t//Unix timestamp\n\t\t\t\ttimestamp = new Date( parseFloat(date)*1000 );\n\t\t\t} else if(date.constructor === Date) {\n\t\t\t\ttimestamp = date;\n\t\t\t\t// Microsoft date format support\n\t\t\t} else if( msMatch !== null ) {\n\t\t\t\ttimestamp = new Date(parseInt(msMatch[1], 10));\n\t\t\t\tif (msMatch[3]) {\n\t\t\t\t\toffset = Number(msMatch[5]) * 60 + Number(msMatch[6]);\n\t\t\t\t\toffset *= ((msMatch[4] === '-') ? 1 : -1);\n\t\t\t\t\toffset -= timestamp.getTimezoneOffset();\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//Support ISO8601Long that have Z at the end to indicate UTC timezone\n\t\t\t\tif(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') {\n\t\t\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\t\t}\n\t\t\t\tdate = String(date).replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\tformat = format.replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\t// parsing for month names\n\t\t\t\tfor(k=0,hl=format.length;k<hl;k++){\n\t\t\t\t\tswitch ( format[k] ) {\n\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'F':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames,12);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tformat[k] = 'm';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'j': \n\t\t\t\t\t\t\tformat[k] = 'd';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'A':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM-2;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tts.h = parseInt(date[k], 10);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(date[k] !== undefined) {\n\t\t\t\t\t\tts[format[k].toLowerCase()] = parseInt(date[k],10);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.f) {ts.m = ts.f;}\n\t\t\t\tif( ts.m === 0 && ts.y === 0 && ts.d === 0) {\n\t\t\t\t\treturn \"&#160;\" ;\n\t\t\t\t}\n\t\t\t\tts.m = parseInt(ts.m,10)-1;\n\t\t\t\tvar ty = ts.y;\n\t\t\t\tif (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;}\n\t\t\t\telse if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;}\n\t\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t\t\t//Apply offset to show date as local time.\n\t\t\t\tif(offset > 0) {\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t}\n\t\tif(opts.userLocalTime && offset === 0) {\n\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\tif( offset > 0 ) {\n\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t}\n\t\t}\n\t\tif( newformat === undefined ) {\n\t\t\treturn timestamp;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(newformat) )  {\n\t\t\tnewformat = opts.masks[newformat];\n\t\t} else if ( !newformat ) {\n\t\t\tnewformat = 'Y-m-d';\n\t\t}\n\t\tvar \n\t\t\tG = timestamp.getHours(),\n\t\t\ti = timestamp.getMinutes(),\n\t\t\tj = timestamp.getDate(),\n\t\t\tn = timestamp.getMonth() + 1,\n\t\t\to = timestamp.getTimezoneOffset(),\n\t\t\ts = timestamp.getSeconds(),\n\t\t\tu = timestamp.getMilliseconds(),\n\t\t\tw = timestamp.getDay(),\n\t\t\tY = timestamp.getFullYear(),\n\t\t\tN = (w + 6) % 7 + 1,\n\t\t\tz = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,\n\t\t\tflags = {\n\t\t\t\t// Day\n\t\t\t\td: pad(j),\n\t\t\t\tD: opts.dayNames[w],\n\t\t\t\tj: j,\n\t\t\t\tl: opts.dayNames[w + 7],\n\t\t\t\tN: N,\n\t\t\t\tS: opts.S(j),\n\t\t\t\t//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',\n\t\t\t\tw: w,\n\t\t\t\tz: z,\n\t\t\t\t// Week\n\t\t\t\tW: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),\n\t\t\t\t// Month\n\t\t\t\tF: opts.monthNames[n - 1 + 12],\n\t\t\t\tm: pad(n),\n\t\t\t\tM: opts.monthNames[n - 1],\n\t\t\t\tn: n,\n\t\t\t\tt: '?',\n\t\t\t\t// Year\n\t\t\t\tL: '?',\n\t\t\t\to: '?',\n\t\t\t\tY: Y,\n\t\t\t\ty: String(Y).substring(2),\n\t\t\t\t// Time\n\t\t\t\ta: G < 12 ? opts.AmPm[0] : opts.AmPm[1],\n\t\t\t\tA: G < 12 ? opts.AmPm[2] : opts.AmPm[3],\n\t\t\t\tB: '?',\n\t\t\t\tg: G % 12 || 12,\n\t\t\t\tG: G,\n\t\t\t\th: pad(G % 12 || 12),\n\t\t\t\tH: pad(G),\n\t\t\t\ti: pad(i),\n\t\t\t\ts: pad(s),\n\t\t\t\tu: u,\n\t\t\t\t// Timezone\n\t\t\t\te: '?',\n\t\t\t\tI: '?',\n\t\t\t\tO: (o > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\n\t\t\t\tP: '?',\n\t\t\t\tT: (String(timestamp).match(timezone) || [\"\"]).pop().replace(timezoneClip, \"\"),\n\t\t\t\tZ: '?',\n\t\t\t\t// Full Date/Time\n\t\t\t\tc: '?',\n\t\t\t\tr: '?',\n\t\t\t\tU: Math.floor(timestamp / 1000)\n\t\t\t};\n\t\treturn newformat.replace(token, function ($0) {\n\t\t\treturn flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1);\n\t\t});\n\t},\n\tjqID : function(sid){\n\t\treturn String(sid).replace(/[!\"#$%&'()*+,.\\/:; <=>?@\\[\\\\\\]\\^`{|}~]/g,\"\\\\$&\");\n\t},\n\tguid : 1,\n\tuidPref: 'jqg',\n\trandId : function( prefix )\t{\n\t\treturn (prefix || $.jgrid.uidPref) + ($.jgrid.guid++);\n\t},\n\tgetAccessor : function(obj, expr) {\n\t\tvar ret,p,prm = [], i;\n\t\tif( typeof expr === 'function') { return expr(obj); }\n\t\tret = obj[expr];\n\t\tif(ret===undefined) {\n\t\t\ttry {\n\t\t\t\tif ( typeof expr === 'string' ) {\n\t\t\t\t\tprm = expr.split('.');\n\t\t\t\t}\n\t\t\t\ti = prm.length;\n\t\t\t\tif( i ) {\n\t\t\t\t\tret = obj;\n\t\t\t\t\twhile (ret && i--) {\n\t\t\t\t\t\tp = prm.shift();\n\t\t\t\t\t\tret = ret[p];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t\treturn ret;\n\t},\n\tgetXmlData: function (obj, expr, returnObj) {\n\t\tvar ret, m = typeof expr === 'string' ? expr.match(/^(.*)\\[(\\w+)\\]$/) : null;\n\t\tif (typeof expr === 'function') { return expr(obj); }\n\t\tif (m && m[2]) {\n\t\t\t// m[2] is the attribute selector\n\t\t\t// m[1] is an optional element selector\n\t\t\t// examples: \"[id]\", \"rows[page]\"\n\t\t\treturn m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]);\n\t\t}\n\t\t\tret = $(expr, obj);\n\t\t\tif (returnObj) { return ret; }\n\t\t\t//$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid\n\t\t\treturn ret.length > 0 ? $(ret).text() : undefined;\n\t},\n\tcellWidth : function () {\n\t\tvar $testDiv = $(\"<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>\"),\n\t\ttestCell = $testDiv.appendTo(\"body\")\n\t\t\t.find(\"td\")\n\t\t\t.width();\n\t\t$testDiv.remove();\n\t\treturn Math.abs(testCell-5) > 0.1;\n\t},\n\tisLocalStorage : function () {\n\t\ttry {\n\t\t\treturn 'localStorage' in window && window.localStorage !== null;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t},\n\tgetRegional : function(inst, param, def_val) {\n\t\tvar ret;\n\t\tif(def_val !== undefined) {\n\t\t\treturn def_val;\n\t\t}\n\t\tif(inst.p && inst.p.regional && $.jgrid.regional) {\n\t\t\t\tret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param);\n\t\t}\n\t\tif(ret === undefined ) {\n\t\t\tret = $.jgrid.getAccessor( $.jgrid, param);\n\t\t}\n\t\treturn ret;\n\t},\n\tisMobile : function() {\n\t\ttry {\n\t\t\tif(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t} catch(e)\t{ \n\t\t\treturn false; \n\t\t}\t\n\t},\n\tcell_width : true,\n\tajaxOptions: {},\n\tfrom : function(source){\n\t\t// Original Author Hugo Bonacci\n\t\t// License MIT http://jlinq.codeplex.com/license\n\t\tvar $t = this,\n\t\tQueryObject=function(d,q){\n\t\tif(typeof d===\"string\"){\n\t\t\td=$.data(d);\n\t\t}\n\t\tvar self=this,\n\t\t_data=d,\n\t\t_usecase=true,\n\t\t_trim=false,\n\t\t_query=q,\n\t\t_stripNum = /[\\$,%]/g,\n\t\t_lastCommand=null,\n\t\t_lastField=null,\n\t\t_orDepth=0,\n\t\t_negate=false,\n\t\t_queuedOperator=\"\",\n\t\t_sorting=[],\n\t\t_useProperties=true;\n\t\tif(typeof d===\"object\"&&d.push) {\n\t\t\tif(d.length>0){\n\t\t\t\tif(typeof d[0]!==\"object\"){\n\t\t\t\t\t_useProperties=false;\n\t\t\t\t}else{\n\t\t\t\t\t_useProperties=true;\n\t\t\t\t}\n\t\t\t}\n\t\t}else{\n\t\t\tthrow \"data provides is not an array\";\n\t\t}\n\t\tthis._hasData=function(){\n\t\t\treturn _data===null?false:_data.length===0?false:true;\n\t\t};\n\t\tthis._getStr=function(s){\n\t\t\tvar phrase=[];\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\"jQuery.trim(\");\n\t\t\t}\n\t\t\tphrase.push(\"String(\"+s+\")\");\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\")\");\n\t\t\t}\n\t\t\tif(!_usecase){\n\t\t\t\tphrase.push(\".toLowerCase()\");\n\t\t\t}\n\t\t\treturn phrase.join(\"\");\n\t\t};\n\t\tthis._strComp=function(val){\n\t\t\tif(typeof val===\"string\"){\n\t\t\t\treturn\".toString()\";\n\t\t\t}\n\t\t\treturn\"\";\n\t\t};\n\t\tthis._group=function(f,u){\n\t\t\treturn({field:f.toString(),unique:u,items:[]});\n\t\t};\n\t\tthis._toStr=function(phrase){\n\t\t\tif(_trim){\n\t\t\t\tphrase=$.trim(phrase);\n\t\t\t}\n\t\t\tphrase=phrase.toString().replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"');\n\t\t\treturn _usecase ? phrase : phrase.toLowerCase();\n\t\t};\n\t\tthis._funcLoop=function(func){\n\t\t\tvar results=[];\n\t\t\t$.each(_data,function(i,v){\n\t\t\t\tresults.push(func(v));\n\t\t\t});\n\t\t\treturn results;\n\t\t};\n\t\tthis._append=function(s){\n\t\t\tvar i;\n\t\t\tif(_query===null){\n\t\t\t\t_query=\"\";\n\t\t\t} else {\n\t\t\t\t_query+=_queuedOperator === \"\" ? \" && \" :_queuedOperator;\n\t\t\t}\n\t\t\tfor (i=0;i<_orDepth;i++){\n\t\t\t\t_query+=\"(\";\n\t\t\t}\n\t\t\tif(_negate){\n\t\t\t\t_query+=\"!\";\n\t\t\t}\n\t\t\t_query+=\"(\"+s+\")\";\n\t\t\t_negate=false;\n\t\t\t_queuedOperator=\"\";\n\t\t\t_orDepth=0;\n\t\t};\n\t\tthis._setCommand=function(f,c){\n\t\t\t_lastCommand=f;\n\t\t\t_lastField=c;\n\t\t};\n\t\tthis._resetNegate=function(){\n\t\t\t_negate=false;\n\t\t};\n\t\tthis._repeatCommand=function(f,v){\n\t\t\tif(_lastCommand===null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\tif(f!==null&&v!==null){\n\t\t\t\treturn _lastCommand(f,v);\n\t\t\t}\n\t\t\tif(_lastField===null){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\tif(!_useProperties){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\treturn _lastCommand(_lastField,f);\n\t\t};\n\t\tthis._equals=function(a,b){\n\t\t\treturn(self._compare(a,b,1)===0);\n\t\t};\n\t\tthis._compare=function(a,b,d){\n\t\t\tvar toString = Object.prototype.toString;\n\t\t\tif( d === undefined) { d = 1; }\n\t\t\tif(a===undefined) { a = null; }\n\t\t\tif(b===undefined) { b = null; }\n\t\t\tif(a===null && b===null){\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(a===null&&b!==null){\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif(a!==null&&b===null){\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') {\n\t\t\t\tif (a < b) { return -d; }\n\t\t\t\tif (a > b) { return d; }\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(!_usecase && typeof a !== \"number\" && typeof b !== \"number\" ) {\n\t\t\t\ta=String(a);\n\t\t\t\tb=String(b);\n\t\t\t}\n\t\t\tif(a<b){return -d;}\n\t\t\tif(a>b){return d;}\n\t\t\treturn 0;\n\t\t};\n\t\tthis._performSort=function(){\n\t\t\tif(_sorting.length===0){return;}\n\t\t\t_data=self._doSort(_data,0);\n\t\t};\n\t\tthis._doSort=function(d,q){\n\t\t\tvar by=_sorting[q].by,\n\t\t\tdir=_sorting[q].dir,\n\t\t\ttype = _sorting[q].type,\n\t\t\tdfmt = _sorting[q].datefmt,\n\t\t\tsfunc = _sorting[q].sfunc;\n\t\t\tif(q===_sorting.length-1){\n\t\t\t\treturn self._getOrder(d, by, dir, type, dfmt, sfunc);\n\t\t\t}\n\t\t\tq++;\n\t\t\tvar values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted;\n\t\t\tfor(i=0;i<values.length;i++){\n\t\t\t\tsorted=self._doSort(values[i].items,q);\n\t\t\t\tfor(j=0;j<sorted.length;j++){\n\t\t\t\t\tresults.push(sorted[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis._getOrder=function(data,by,dir,type, dfmt, sfunc){\n\t\t\tvar sortData=[],_sortData=[], newDir = dir===\"a\" ? 1 : -1, i,ab,j,\n\t\t\tfindSortKey;\n\n\t\t\tif(type === undefined ) { type = \"text\"; }\n\t\t\tif (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\tvar key = parseFloat( String($cell).replace(_stripNum, ''));\n\t\t\t\t\treturn isNaN(key) ? Number.NEGATIVE_INFINITY : key;\n\t\t\t\t};\n\t\t\t} else if (type==='int' || type==='integer') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY;\n\t\t\t\t};\n\t\t\t} else if(type === 'date' || type === 'datetime') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $.jgrid.parseDate.call($t, dfmt, $cell).getTime();\n\t\t\t\t};\n\t\t\t} else if($.isFunction(type)) {\n\t\t\t\tfindSortKey = type;\n\t\t\t} else {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\t$cell = $cell ? $.trim(String($cell)) : \"\";\n\t\t\t\t\treturn _usecase ? $cell : $cell.toLowerCase();\n\t\t\t\t};\n\t\t\t}\n\t\t\t$.each(data,function(i,v){\n\t\t\t\tab = by!==\"\" ? $.jgrid.getAccessor(v,by) : v;\n\t\t\t\tif(ab === undefined) { ab = \"\"; }\n\t\t\t\tab = findSortKey(ab, v);\n\t\t\t\t_sortData.push({ 'vSort': ab,'index':i});\n\t\t\t});\n\t\t\tif($.isFunction(sfunc)) {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn sfunc.call(this,a.vSort, b.vSort, newDir, a, b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn self._compare(a.vSort, b.vSort,newDir);\n\t\t\t\t});\n\t\t\t}\n\t\t\tj=0;\n\t\t\tvar nrec= data.length;\n\t\t\t// overhead, but we do not change the original data.\n\t\t\twhile(j<nrec) {\n\t\t\t\ti = _sortData[j].index;\n\t\t\t\tsortData.push(data[i]);\n\t\t\t\tj++;\n\t\t\t}\n\t\t\treturn sortData;\n\t\t};\n\t\tthis._getGroup=function(data,by,dir,type, dfmt){\n\t\t\tvar results=[],\n\t\t\tgroup=null,\n\t\t\tlast=null, val;\n\t\t\t$.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){\n\t\t\t\tval = $.jgrid.getAccessor(v, by);\n\t\t\t\tif(val == null) { val = \"\"; }\n\t\t\t\tif(!self._equals(last,val)){\n\t\t\t\t\tlast=val;\n\t\t\t\t\tif(group !== null){\n\t\t\t\t\t\tresults.push(group);\n\t\t\t\t\t}\n\t\t\t\t\tgroup=self._group(by,val);\n\t\t\t\t}\n\t\t\t\tgroup.items.push(v);\n\t\t\t});\n\t\t\tif(group !== null){\n\t\t\t\tresults.push(group);\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis.ignoreCase=function(){\n\t\t\t_usecase=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.useCase=function(){\n\t\t\t_usecase=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.trim=function(){\n\t\t\t_trim=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.noTrim=function(){\n\t\t\t_trim=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.execute=function(){\n\t\t\tvar match=_query, results=[];\n\t\t\tif(match === null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\t$.each(_data,function(){\n\t\t\t\tif(eval(match)){results.push(this);}\n\t\t\t});\n\t\t\t_data=results;\n\t\t\treturn self;\n\t\t};\n\t\tthis.data=function(){\n\t\t\treturn _data;\n\t\t};\n\t\tthis.select=function(f){\n\t\t\tself._performSort();\n\t\t\tif(!self._hasData()){ return[]; }\n\t\t\tself.execute();\n\t\t\tif($.isFunction(f)){\n\t\t\t\tvar results=[];\n\t\t\t\t$.each(_data,function(i,v){\n\t\t\t\t\tresults.push(f(v));\n\t\t\t\t});\n\t\t\t\treturn results;\n\t\t\t}\n\t\t\treturn _data;\n\t\t};\n\t\tthis.hasMatch=function(){\n\t\t\tif(!self._hasData()) { return false; }\n\t\t\tself.execute();\n\t\t\treturn _data.length>0;\n\t\t};\n\t\tthis.andNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.and(f,v,x);\n\t\t};\n\t\tthis.orNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.or(f,v,x);\n\t\t};\n\t\tthis.not=function(f,v,x){\n\t\t\treturn self.andNot(f,v,x);\n\t\t};\n\t\tthis.and=function(f,v,x){\n\t\t\t_queuedOperator=\" && \";\n\t\t\tif(f===undefined){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.or=function(f,v,x){\n\t\t\t_queuedOperator=\" || \";\n\t\t\tif(f===undefined) { return self; }\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.orBegin=function(){\n\t\t\t_orDepth++;\n\t\t\treturn self;\n\t\t};\n\t\tthis.orEnd=function(){\n\t\t\tif (_query !== null){\n\t\t\t\t_query+=\")\";\n\t\t\t}\n\t\t\treturn self;\n\t\t};\n\t\tthis.isNot=function(f){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.is(f);\n\t\t};\n\t\tthis.is=function(f){\n\t\t\tself._append('this.'+f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis._compareValues=function(func,f,v,how,t){\n\t\t\tvar fld;\n\t\t\tif(_useProperties){\n\t\t\t\tfld='jQuery.jgrid.getAccessor(this,\\''+f+'\\')';\n\t\t\t}else{\n\t\t\t\tfld='this';\n\t\t\t}\n\t\t\tif(v===undefined) { v = null; }\n\t\t\t//var val=v===null?f:v,\n\t\t\tvar val =v,\n\t\t\tswst = t.stype === undefined ? \"text\" : t.stype;\n\t\t\tif(v !== null) {\n\t\t\tswitch(swst) {\n\t\t\t\tcase 'int':\n\t\t\t\tcase 'integer':\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseInt('+fld+',10)';\n\t\t\t\t\tval = 'parseInt('+val+',10)';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'float':\n\t\t\t\tcase 'number':\n\t\t\t\tcase 'numeric':\n\t\t\t\t\tval = String(val).replace(_stripNum, '');\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseFloat('+fld+')';\n\t\t\t\t\tval = 'parseFloat('+val+')';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':\n\t\t\t\tcase 'datetime':\n\t\t\t\t\tval = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime());\n\t\t\t\t\tfld = 'jQuery.jgrid.parseDate.call(jQuery(\"#'+$.jgrid.jqID($t.p.id)+'\")[0],\"'+t.srcfmt+'\",'+fld+').getTime()';\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tfld=self._getStr(fld);\n\t\t\t\t\tval=self._getStr('\"'+self._toStr(val)+'\"');\n\t\t\t}\n\t\t\t}\n\t\t\tself._append(fld+' '+how+' '+val);\n\t\t\tself._setCommand(func,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.equals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"==\",t);\n\t\t};\n\t\tthis.notEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"!==\",t);\n\t\t};\n\t\tthis.isNull = function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,null,\"===\",t);\n\t\t};\n\t\tthis.greater=function(f,v,t){\n\t\t\treturn self._compareValues(self.greater,f,v,\">\",t);\n\t\t};\n\t\tthis.less=function(f,v,t){\n\t\t\treturn self._compareValues(self.less,f,v,\"<\",t);\n\t\t};\n\t\tthis.greaterOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.greaterOrEquals,f,v,\">=\",t);\n\t\t};\n\t\tthis.lessOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.lessOrEquals,f,v,\"<=\",t);\n\t\t};\n\t\tthis.startsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length : val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(v)+'\"'));\n\t\t\t}else{\n\t\t\t\tif (v!=null) { length=_trim?$.trim(v.toString()).length:v.toString().length; }\n\t\t\t\tself._append(self._getStr('this')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(f)+'\"'));\n\t\t\t}\n\t\t\tself._setCommand(self.startsWith,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.endsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length:val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.length-'+length+','+length+') == \"'+self._toStr(v)+'\"');\n\t\t\t} else {\n\t\t\t\tself._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-\"'+self._toStr(f)+'\".length,\"'+self._toStr(f)+'\".length) == \"'+self._toStr(f)+'\"');\n\t\t\t}\n\t\t\tself._setCommand(self.endsWith,f);self._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.contains=function(f,v){\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.indexOf(\"'+self._toStr(v)+'\",0) > -1');\n\t\t\t}else{\n\t\t\t\tself._append(self._getStr('this')+'.indexOf(\"'+self._toStr(f)+'\",0) > -1');\n\t\t\t}\n\t\t\tself._setCommand(self.contains,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.groupBy=function(by,dir,type, datefmt){\n\t\t\tif(!self._hasData()){\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn self._getGroup(_data,by,dir,type, datefmt);\n\t\t};\n\t\tthis.orderBy=function(by,dir,stype, dfmt, sfunc){\n\t\t\tdir = dir == null ? \"a\" :$.trim(dir.toString().toLowerCase());\n\t\t\tif(stype == null) { stype = \"text\"; }\n\t\t\tif(dfmt == null) { dfmt = \"Y-m-d\"; }\n\t\t\tif(sfunc == null) { sfunc = false; }\n\t\t\tif(dir===\"desc\"||dir===\"descending\"){dir=\"d\";}\n\t\t\tif(dir===\"asc\"||dir===\"ascending\"){dir=\"a\";}\n\t\t\t_sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc});\n\t\t\treturn self;\n\t\t};\n\t\treturn self;\n\t\t};\n\treturn new QueryObject(source,null);\n\t},\n\tgetMethod: function (name) {\n        return this.getAccessor($.fn.jqGrid, name);\n\t},\n\textend : function(methods) {\n\t\t$.extend($.fn.jqGrid,methods);\n\t\tif (!this.no_legacy_api) {\n\t\t\t$.fn.extend(methods);\n\t\t}\n\t},\n\tclearBeforeUnload : function( jqGridId ) {\n\t\tvar $t = $(\"#\"+$.jgrid.jqID( jqGridId ))[0], grid;\n\t\tif(!$t.grid) { return;}\n\t\tgrid = $t.grid;\n\t\tif ($.isFunction(grid.emptyRows)) {\n\t\t\tgrid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone\n\t\t}\n\n\t\t$(document).off(\"mouseup.jqGrid\" + $t.p.id ); \n\t\t$(grid.hDiv).off(\"mousemove\"); // TODO add namespace\n\t\t$($t).off();\n\t\tvar i, l = grid.headers.length,\n\t\tremovevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData'];\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tgrid.headers[i].el = null;\n\t\t}\n\n\t\tfor( i in grid) {\n\t\t\tif( grid.hasOwnProperty(i)) {\n\t\t\t\tgrid[i] = null;\n\t\t\t}\n\t\t}\n\t\t// experimental \n\t\tfor( i in $t.p) {\n\t\t\tif($t.p.hasOwnProperty(i)) {\n\t\t\t\t$t.p[i] = $.isArray($t.p[i]) ? [] : null;\n\t\t\t}\n\t\t}\n\t\tl = removevents.length;\n\t\tfor(i = 0; i < l; i++) {\n\t\t\tif($t.hasOwnProperty(removevents[i])) {\n\t\t\t\t$t[removevents[i]] = null;\n\t\t\t\tdelete($t[removevents[i]]);\n\t\t\t}\n\t\t}\n\t},\n\tgridUnload : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\t\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tvar defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')};\n\t\tif ($t.p.pager) {\n\t\t\t$($t.p.pager).off().empty().removeClass(\"ui-state-default ui-jqgrid-pager ui-corner-bottom\");\n\t\t}\n\t\tvar newtable = document.createElement('table');\n\t\tnewtable.className = defgrid.cl;\n\t\tvar gid = $.jgrid.jqID($t.id);\n\t\t$(newtable).removeClass(\"ui-jqgrid-btable ui-common-table\").insertBefore(\"#gbox_\"+gid);\n\t\tif( $($t.p.pager).parents(\"#gbox_\"+gid).length === 1 ) {\n\t\t\t$($t.p.pager).insertBefore(\"#gbox_\"+gid);\n\t\t}\n\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t$(\"#gbox_\"+gid).remove();\n\t\t$(newtable).attr({id:defgrid.id});\n\t\t$(\"#alertmod_\"+$.jgrid.jqID(jqGridId)).remove();\n\t},\n\tgridDestroy : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tif ( $t.p.pager ) { // if not part of grid\n\t\t\t$($t.p.pager).remove();\n\t\t}\n\t\ttry {\n\t\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(jqGridId)).remove();\n\t\t} catch (_) {}\n\t},\n\tstyleUI : {\n\t\tjQueryUI : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-state-disabled\",\n\t\t\t\thighlight : \"ui-state-highlight\",\n\t\t\t\thover : \"ui-state-hover\",\n\t\t\t\tcornerall: \"ui-corner-all\",\n\t\t\t\tcornertop: \"ui-corner-top\",\n\t\t\t\tcornerbottom : \"ui-corner-bottom\",\n\t\t\t\thidden : \"ui-helper-hidden\",\n\t\t\t\ticon_base : \"ui-icon\",\n\t\t\t\toverlay : \"ui-widget-overlay\",\n\t\t\t\tactive : \"ui-state-active\",\n\t\t\t\terror : \"ui-state-error\",\n\t\t\t\tbutton : \"ui-state-default ui-corner-all\",\n\t\t\t\tcontent : \"ui-widget-content\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"ui-widget ui-widget-content ui-corner-all\", // entrie div  incl everthing\n\t\t\t\tviewBox : \"\", // view diw\n\t\t\t\theaderTable : \"\",\n\t\t\t\theaderBox : \"ui-state-default\",\n\t\t\t\trowTable : \"\",\n\t\t\t\trowBox : \"ui-widget-content\",\n\t\t\t\tfooterTable : \"\",\n\t\t\t\tfooterBox : \"ui-widget-content\",\n\t\t\t\theaderDiv : \"ui-state-default\",\n\t\t\t\tgridtitleBox : \"ui-widget-header ui-corner-top ui-helper-clearfix\",\n\t\t\t\tcustomtoolbarBox : \"ui-state-default\",\n\t\t\t\t//overlayBox: \"ui-widget-overlay\",\n\t\t\t\tloadingBox : \"ui-state-default ui-state-active\",\n\t\t\t\trownumBox :  \"ui-state-default\",\n\t\t\t\tscrollBox : \"ui-widget-content\",\n\t\t\t\tmultiBox : \"\",\n\t\t\t\tpagerBox : \"ui-state-default ui-corner-bottom\",\n\t\t\t\tpagerTable : \"\",\n\t\t\t\ttoppagerBox : \"ui-state-default\",\n\t\t\t\tpgInput : \"ui-corner-all\",\n\t\t\t\tpgSelectBox : \"ui-widget-content ui-corner-all\",\n\t\t\t\tpgButtonBox : \"ui-corner-all\",\n\t\t\t\ticon_first : \"ui-icon-seek-first\",\n\t\t\t\ticon_prev : \"ui-icon-seek-prev\",\n\t\t\t\ticon_next: \"ui-icon-seek-next\",\n\t\t\t\ticon_end: \"ui-icon-seek-end\",\n\t\t\t\ticon_asc : \"ui-icon-triangle-1-n\",\n\t\t\t\ticon_desc : \"ui-icon-triangle-1-s\",\n\t\t\t\ticon_caption_open : \"ui-icon-circle-triangle-n\",\n\t\t\t\ticon_caption_close : \"ui-icon-circle-triangle-s\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"ui-widget ui-widget-content ui-corner-all ui-dialog\",\n\t\t\t\theader : \"ui-widget-header ui-corner-all ui-helper-clearfix\",\n\t\t\t\tcontent :\"ui-widget-content\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"ui-icon-closethick\",\n\t\t\t\ticon_resizable : \"ui-icon-gripsmall-diagonal-se\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\"\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_save_nav : \"ui-icon-disk\",\n\t\t\t\ticon_cancel_nav : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_prev : \"ui-icon-triangle-1-w\",\n\t\t\t\ticon_next : \"ui-icon-triangle-1-e\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_close : \"ui-icon-close\",\n\t\t\t\ticon_del : \"ui-icon-scissors\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_del_nav : \"ui-icon-trash\",\n\t\t\t\ticon_search_nav : \"ui-icon-search\",\n\t\t\t\ticon_refresh_nav : \"ui-icon-refresh\",\n\t\t\t\ticon_view_nav : \"ui-icon-document\",\n\t\t\t\ticon_newbutton_nav : \"ui-icon-newwin\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'ui-icon-circlesmall-plus',\n\t\t\t\ticon_minus : 'ui-icon-circlesmall-minus'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'ui-widget ui-widget-content',\n\t\t\t\tsrSelect : 'ui-widget-content ui-corner-all',\n\t\t\t\tsrInput : 'ui-widget-content ui-corner-all',\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\ticon_search : 'ui-icon-search',\n\t\t\t\ticon_reset : 'ui-icon-arrowreturnthick-1-w',\n\t\t\t\ticon_query :'ui-icon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'ui-icon-plus',\n\t\t\t\ticon_minus : 'ui-icon-minus',\n\t\t\t\ticon_open : 'ui-icon-carat-1-sw'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'ui-icon-triangle-1-',\n\t\t\t\ticon_minus : 'ui-icon-triangle-1-s',\n\t\t\t\ticon_leaf : 'ui-icon-radio-off'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"ui-icon-pencil\",\n\t\t\t\ticon_add : \"ui-icon-plus\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\",\n\t\t\t\ticon_del : \"ui-icon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\tinput_checkbox : \"ui-widget ui-widget-content\",\n\t\t\t\tfilter_select: \"ui-widget-content ui-corner-all\",\n\t\t\t\tfilter_input : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_menu : \"ui-icon-comment\",\n\t\t\t\ticon_sort_asc : \"ui-icon-arrow-1-n\",\n\t\t\t\ticon_sort_desc : \"ui-icon-arrow-1-s\",\n\t\t\t\ticon_columns : \"ui-icon-extlink\",\n\t\t\t\ticon_filter : \"ui-icon-calculator\",\n\t\t\t\ticon_group : \"ui-icon-grip-solid-horizontal\",\n\t\t\t\ticon_freeze : \"ui-icon-grip-solid-vertical\",\n\t\t\t\ticon_move: \"ui-icon-arrow-4\"\n\t\t\t}\n\t\t},\n\t\tBootstrap : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-disabled\",\n\t\t\t\thighlight : \"success\",\n\t\t\t\thover : \"active\",\n\t\t\t\tcornerall: \"\", \n\t\t\t\tcornertop: \"\",\n\t\t\t\tcornerbottom : \"\",\n\t\t\t\thidden : \"\",\n\t\t\t\ticon_base : \"glyphicon\",\n\t\t\t\toverlay: \"ui-overlay\",\n\t\t\t\tactive : \"active\",\n\t\t\t\terror : \"bg-danger\",\n\t\t\t\tbutton : \"btn btn-default\",\n\t\t\t\tcontent : \"\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"\",\n\t\t\t\tviewBox : \"table-responsive\",\n\t\t\t\theaderTable : \"table table-bordered\",\n\t\t\t\theaderBox : \"\",\n\t\t\t\trowTable : \"table table-bordered\",\n\t\t\t\trowBox : \"\",\n\t\t\t\tfooterTable : \"table table-bordered\",\n\t\t\t\tfooterBox : \"\",\n\t\t\t\theaderDiv : \"\",\n\t\t\t\tgridtitleBox : \"\",\n\t\t\t\tcustomtoolbarBox : \"\",\n\t\t\t\t//overlayBox: \"ui-overlay\",\n\t\t\t\tloadingBox : \"row\",\n\t\t\t\trownumBox :  \"active\",\n\t\t\t\tscrollBox : \"\",\n\t\t\t\tmultiBox : \"checkbox\",\n\t\t\t\tpagerBox : \"\",\n\t\t\t\tpagerTable : \"table\",\n\t\t\t\ttoppagerBox : \"\",\n\t\t\t\tpgInput : \"form-control\",\n\t\t\t\tpgSelectBox : \"form-control\",\n\t\t\t\tpgButtonBox : \"\",\n\t\t\t\ticon_first : \"glyphicon-step-backward\",\n\t\t\t\ticon_prev : \"glyphicon-backward\",\n\t\t\t\ticon_next: \"glyphicon-forward\",\n\t\t\t\ticon_end: \"glyphicon-step-forward\",\n\t\t\t\ticon_asc : \"glyphicon-triangle-top\",\n\t\t\t\ticon_desc : \"glyphicon-triangle-bottom\",\n\t\t\t\ticon_caption_open : \"glyphicon-circle-arrow-up\",\n\t\t\t\ticon_caption_close : \"glyphicon-circle-arrow-down\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"modal-content\",\n\t\t\t\theader : \"modal-header\",\n\t\t\t\ttitle : \"modal-title\",\n\t\t\t\tcontent :\"modal-body\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_resizable : \"glyphicon-import\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : 'form-control'\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : 'form-control',\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_save_nav : \"glyphicon-save\",\n\t\t\t\ticon_cancel_nav : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"form-control\",\n\t\t\t\ticon_prev : \"glyphicon-step-backward\",\n\t\t\t\ticon_next : \"glyphicon-step-forward\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_del_nav : \"glyphicon-trash\",\n\t\t\t\ticon_search_nav : \"glyphicon-search\",\n\t\t\t\ticon_refresh_nav : \"glyphicon-refresh\",\n\t\t\t\ticon_view_nav : \"glyphicon-info-sign\",\n\t\t\t\ticon_newbutton_nav : \"glyphicon-new-window\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'table table-condensed',\n\t\t\t\tsrSelect : 'form-control',\n\t\t\t\tsrInput : 'form-control',\n\t\t\t\tmenu_widget : '',\n\t\t\t\ticon_search : 'glyphicon-search',\n\t\t\t\ticon_reset : 'glyphicon-refresh',\n\t\t\t\ticon_query :'glyphicon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_open : 'glyphicon-indent-left'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_leaf : 'glyphicon-unchecked'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"glyphicon-edit\",\n\t\t\t\ticon_add : \"glyphicon-plus\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : '',\n\t\t\t\tinput_checkbox : \"\",\n\t\t\t\tfilter_select: \"form-control\",\n\t\t\t\tfilter_input : \"form-control\",\n\t\t\t\ticon_menu : \"glyphicon-menu-hamburger\",\n\t\t\t\ticon_sort_asc : \"glyphicon-sort-by-alphabet\",\n\t\t\t\ticon_sort_desc : \"glyphicon-sort-by-alphabet-alt\",\n\t\t\t\ticon_columns : \"glyphicon-list-alt\",\n\t\t\t\ticon_filter : \"glyphicon-filter\",\n\t\t\t\ticon_group : \"glyphicon-align-left\",\n\t\t\t\ticon_freeze : \"glyphicon-object-align-horizontal\",\n\t\t\t\ticon_move: \"glyphicon-move\"\n\t\t\t}\n\t\t}\n\t}\n});\n\n$.fn.jqGrid = function( pin ) {\n\tif (typeof pin === 'string') {\n\t\tvar fn = $.jgrid.getMethod(pin);\n\t\tif (!fn) {\n\t\t\tthrow (\"jqGrid - No such method: \" + pin);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\treturn this.each( function() {\n\t\tif(this.grid) {return;}\n\t\tvar localData;\n\t\tif (pin != null && pin.data !== undefined) {\n\t\t\tlocalData = pin.data;\n\t\t\tpin.data = [];\n\t\t}\n\n\t\tvar p = $.extend(true,{\n\t\t\turl: \"\",\n\t\t\theight: 150,\n\t\t\tpage: 1,\n\t\t\trowNum: 20,\n\t\t\trowTotal : null,\n\t\t\trecords: 0,\n\t\t\tpager: \"\",\n\t\t\tpgbuttons: true,\n\t\t\tpginput: true,\n\t\t\tcolModel: [],\n\t\t\trowList: [],\n\t\t\tcolNames: [],\n\t\t\tsortorder: \"asc\",\n\t\t\tsortname: \"\",\n\t\t\tdatatype: \"xml\",\n\t\t\tmtype: \"GET\",\n\t\t\taltRows: false,\n\t\t\tselarrrow: [],\n\t\t\tsavedRow: [],\n\t\t\tshrinkToFit: true,\n\t\t\txmlReader: {},\n\t\t\tjsonReader: {},\n\t\t\tsubGrid: false,\n\t\t\tsubGridModel :[],\n\t\t\treccount: 0,\n\t\t\tlastpage: 0,\n\t\t\tlastsort: 0,\n\t\t\tselrow: null,\n\t\t\tbeforeSelectRow: null,\n\t\t\tonSelectRow: null,\n\t\t\tonSortCol: null,\n\t\t\tondblClickRow: null,\n\t\t\tonRightClickRow: null,\n\t\t\tonPaging: null,\n\t\t\tonSelectAll: null,\n\t\t\tonInitGrid : null,\n\t\t\tloadComplete: null,\n\t\t\tgridComplete: null,\n\t\t\tloadError: null,\n\t\t\tloadBeforeSend: null,\n\t\t\tafterInsertRow: null,\n\t\t\tbeforeRequest: null,\n\t\t\tbeforeProcessing : null,\n\t\t\tonHeaderClick: null,\n\t\t\tviewrecords: false,\n\t\t\tloadonce: false,\n\t\t\tmultiselect: false,\n\t\t\tmultikey: false,\n\t\t\tediturl: null,\n\t\t\tsearch: false,\n\t\t\tcaption: \"\",\n\t\t\thidegrid: true,\n\t\t\thiddengrid: false,\n\t\t\tpostData: {},\n\t\t\tuserData: {},\n\t\t\ttreeGrid : false,\n\t\t\ttreeGridModel : 'nested',\n\t\t\ttreeReader : {},\n\t\t\ttreeANode : -1,\n\t\t\tExpandColumn: null,\n\t\t\ttree_root_level : 0,\n\t\t\tprmNames: {\n\t\t\t\tpage:\"page\",\n\t\t\t\trows:\"rows\", \n\t\t\t\tsort: \"sidx\",\n\t\t\t\torder: \"sord\", \n\t\t\t\tsearch:\"_search\", \n\t\t\t\tnd:\"nd\", \n\t\t\t\tid:\"id\",\n\t\t\t\toper:\"oper\",\n\t\t\t\teditoper:\"edit\",\n\t\t\t\taddoper:\"add\",\n\t\t\t\tdeloper:\"del\", \n\t\t\t\tsubgridid:\"id\", \n\t\t\t\tnpage: null, \n\t\t\t\ttotalrows:\"totalrows\"\n\t\t\t},\n\t\t\tforceFit : false,\n\t\t\tgridstate : \"visible\",\n\t\t\tcellEdit: false,\n\t\t\tcellsubmit: \"remote\",\n\t\t\tnv:0,\n\t\t\tloadui: \"enable\",\n\t\t\ttoolbar: [false,\"\"],\n\t\t\tscroll: false,\n\t\t\tmultiboxonly : false,\n\t\t\tdeselectAfterSort : true,\n\t\t\tscrollrows : false,\n\t\t\tautowidth: false,\n\t\t\tscrollOffset : 18,\n\t\t\tcellLayout: 5,\n\t\t\tsubGridWidth: 20,\n\t\t\tmultiselectWidth: 30,\n\t\t\tgridview: true,\n\t\t\trownumWidth: 35,\n\t\t\trownumbers : false,\n\t\t\tpagerpos: 'center',\n\t\t\trecordpos: 'right',\n\t\t\tfooterrow : false,\n\t\t\tuserDataOnFooter : false,\n\t\t\thoverrows : true,\n\t\t\taltclass : 'ui-priority-secondary',\n\t\t\tviewsortcols : [false,'vertical',true],\n\t\t\tresizeclass : '',\n\t\t\tautoencode : false,\n\t\t\tremapColumns : [],\n\t\t\tajaxGridOptions :{},\n\t\t\tdirection : \"ltr\",\n\t\t\ttoppager: false,\n\t\t\theadertitles: false,\n\t\t\tscrollTimeout: 40,\n\t\t\tdata : [],\n\t\t\t_index : {},\n\t\t\tgrouping : false,\n\t\t\tgroupingView : {\n\t\t\t\tgroupField:[],\n\t\t\t\tgroupOrder:[], \n\t\t\t\tgroupText:[],\n\t\t\t\tgroupColumnShow:[],\n\t\t\t\tgroupSummary:[], \n\t\t\t\tshowSummaryOnHide: false, \n\t\t\t\tsortitems:[], \n\t\t\t\tsortnames:[], \n\t\t\t\tsummary:[],\n\t\t\t\tsummaryval:[], \n\t\t\t\tplusicon: '',  \n\t\t\t\tminusicon: '', \n\t\t\t\tdisplayField: [], \n\t\t\t\tgroupSummaryPos:[], \n\t\t\t\tformatDisplayField : [], \n\t\t\t\t_locgr : false\n\t\t\t},\n\t\t\tignoreCase : true,\n\t\t\tcmTemplate : {},\n\t\t\tidPrefix : \"\",\n\t\t\tmultiSort :  false,\n\t\t\tminColWidth : 33,\n\t\t\tscrollPopUp : false,\n\t\t\tscrollTopOffset: 0, // pixel\n\t\t\tscrollLeftOffset : \"100%\", //percent\n\t\t\tstoreNavOptions: false,\n\t\t\tregional :  \"en\",\n\t\t\tstyleUI : \"jQueryUI\",\n\t\t\tresponsive : false,\n\t\t\trestoreCellonFail : true,\n\t\t\tcolFilters : {},\n\t\t\tcolMenu : false\n\t\t}, $.jgrid.defaults , pin );\n\t\tif (localData !== undefined) {\n\t\t\tp.data = localData;\n\t\t\tpin.data = localData;\n\t\t}\n\t\tvar ts= this, grid={\n\t\t\theaders:[],\n\t\t\tcols:[],\n\t\t\tfooters: [],\n\t\t\tdragStart: function(i,x,y) {\n\t\t\t\tvar gridLeftPos = $(this.bDiv).offset().left;\n\t\t\t\tthis.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos };\n\t\t\t\tthis.hDiv.style.cursor = \"col-resize\";\n\t\t\t\tthis.curGbox = $(\"#rs_m\"+$.jgrid.jqID(p.id),\"#gbox_\"+$.jgrid.jqID(p.id));\n\t\t\t\tthis.curGbox.css({display:\"block\",left:x.pageX-gridLeftPos,top:y[1],height:y[2]});\n\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStart\", [x, i]);\n\t\t\t\tif($.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); }\n\t\t\t\tdocument.onselectstart=function(){return false;};\n\t\t\t},\n\t\t\tdragMove: function(x) {\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar diff = x.pageX-this.resizing.startX,\n\t\t\t\t\th = this.headers[this.resizing.idx],\n\t\t\t\t\tnewWidth = p.direction === \"ltr\" ? h.width + diff : h.width - diff, hn, nWn;\n\t\t\t\t\tif(newWidth > 33) {\n\t\t\t\t\t\tthis.curGbox.css({left:this.resizing.sOL+diff});\n\t\t\t\t\t\tif(p.forceFit===true ){\n\t\t\t\t\t\t\thn = this.headers[this.resizing.idx+p.nv];\n\t\t\t\t\t\t\tnWn = p.direction === \"ltr\" ? hn.width - diff : hn.width + diff;\n\t\t\t\t\t\t\tif(nWn > p.minColWidth ) {\n\t\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t\t\thn.newWidth = nWn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.newWidth = p.direction === \"ltr\" ? p.tblwidth+diff : p.tblwidth-diff;\n\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdragEnd: function( events ) {\n\t\t\t\tthis.hDiv.style.cursor = \"default\";\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar idx = this.resizing.idx,\n\t\t\t\t\tnw = this.headers[idx].newWidth || this.headers[idx].width;\n\t\t\t\t\tnw = parseInt(nw,10);\n\t\t\t\t\tthis.resizing = false;\n\t\t\t\t\t$(\"#rs_m\"+$.jgrid.jqID(p.id)).css(\"display\",\"none\");\n\t\t\t\t\tp.colModel[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].el.style.width = nw + \"px\";\n\t\t\t\t\tthis.cols[idx].style.width = nw+\"px\";\n\t\t\t\t\tif(this.footers.length>0) {this.footers[idx].style.width = nw+\"px\";}\n\t\t\t\t\tif(p.forceFit===true){\n\t\t\t\t\t\tnw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;\n\t\t\t\t\t\tthis.headers[idx+p.nv].width = nw;\n\t\t\t\t\t\tthis.headers[idx+p.nv].el.style.width = nw + \"px\";\n\t\t\t\t\t\tthis.cols[idx+p.nv].style.width = nw+\"px\";\n\t\t\t\t\t\tif(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+\"px\";}\n\t\t\t\t\t\tp.colModel[idx+p.nv].width = nw;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.tblwidth = this.newWidth || p.tblwidth;\n\t\t\t\t\t\t$('table:first',this.bDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t$('table:first',this.hDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\tif(p.footerrow) {\n\t\t\t\t\t\t\t$('table:first',this.sDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t\tthis.sDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(events) {\n\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStop\", [nw, idx]);\n\t\t\t\t\t\tif($.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.curGbox = null;\n\t\t\t\tdocument.onselectstart=function(){return true;};\n\t\t\t},\n\t\t\tpopulateVisible: function() {\n\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\tgrid.timer = null;\n\t\t\t\tvar dh = $(grid.bDiv).height();\n\t\t\t\tif (!dh) { return; }\n\t\t\t\tvar table = $(\"table:first\", grid.bDiv);\n\t\t\t\tvar rows, rh;\n\t\t\t\tif(table[0].rows.length) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\trows = table[0].rows[1];\n\t\t\t\t\t\trh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight;\n\t\t\t\t\t} catch (pv) {\n\t\t\t\t\t\trh = grid.prevRowHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!rh) { return; }\n\t\t\t\tgrid.prevRowHeight = rh;\n\t\t\t\tvar rn = p.rowNum;\n\t\t\t\tvar scrollTop = grid.scrollTop = grid.bDiv.scrollTop;\n\t\t\t\tvar ttop = Math.round(table.position().top) - scrollTop;\n\t\t\t\tvar tbot = ttop + table.height();\n\t\t\t\tvar div = rh * rn;\n\t\t\t\tvar page, npage, empty;\n\t\t\t\tif ( tbot < dh && ttop <= 0 &&\n\t\t\t\t\t(p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage))\n\t\t\t\t{\n\t\t\t\t\tnpage = parseInt((dh - tbot + div - 1) / div,10) || 1;\n\t\t\t\t\tif (tbot >= 0 || npage < 2 || p.scroll === true) {\n\t\t\t\t\t\tpage = ( Math.round((tbot + scrollTop) / div) || 0) + 1;\n\t\t\t\t\t\tttop = -1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tttop = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ttop > 0) {\n\t\t\t\t\tpage = ( parseInt(scrollTop / div,10) || 0 ) + 1;\n\t\t\t\t\tnpage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page;\n\t\t\t\t\tempty = true;\n\t\t\t\t}\n\t\t\t\tif (npage) {\n\t\t\t\t\tif (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (grid.hDiv.loading) {\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.page = page;\n\t\t\t\t\t\tif (empty) {\n\t\t\t\t\t\t\tgrid.selectionPreserver(table[0]);\n\t\t\t\t\t\t\tgrid.emptyRows.call(table[0], false, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgrid.populate(npage);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.scrollPopUp && p.lastpage != null) {\n\t\t\t\t\t\t$(\"#scroll_g\"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", p.pgtext) , p.page, p.lastpage)).css({ \"top\": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +\"px\", \"left\" : p.scrollLeftOffset});\n\t\t\t\t\t\t$(this).mouseout(function(){ \n\t\t\t\t\t\t\t$(\"#scroll_g\"+p.id).hide();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tscrollGrid: function( e ) {\n\t\t\t\tif(p.scroll) {\n\t\t\t\t\tvar scrollTop = grid.bDiv.scrollTop;\n\t\t\t\t\tif(grid.scrollTop === undefined) { grid.scrollTop = 0; }\n\t\t\t\t\tif (scrollTop !== grid.scrollTop) {\n\t\t\t\t\t\tgrid.scrollTop = scrollTop;\n\t\t\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\tif(p.footerrow) {\n\t\t\t\t\tgrid.sDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\t}\n\t\t\t\tif(p.frozenColumns) {\n\t\t\t\t\t$(grid.fbDiv).scrollTop( grid.bDiv.scrollTop );\n\t\t\t\t}\n\t\t\t\tif( e ) { e.stopPropagation(); }\n\t\t\t},\n\t\t\tselectionPreserver : function(ts) {\n\t\t\t\tvar p = ts.p,\n\t\t\t\tsr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null,\n\t\t\t\tleft = ts.grid.bDiv.scrollLeft,\n\t\t\t\trestoreSelection = function() {\n\t\t\t\t\tvar i;\n\t\t\t\t\tp.selrow = null;\n\t\t\t\t\tp.selarrrow = [];\n\t\t\t\t\tif(p.multiselect && sra && sra.length>0) {\n\t\t\t\t\t\tfor(i=0;i<sra.length;i++){\n\t\t\t\t\t\t\tif (sra[i] !== sr) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sra[i],false, null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sr,false,null);\n\t\t\t\t\t}\n\t\t\t\t\tts.grid.bDiv.scrollLeft = left;\n\t\t\t\t\t$(ts).off('.selectionPreserver', restoreSelection);\n\t\t\t\t};\n\t\t\t\t$(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection);\t\t\t\t\n\t\t\t}\n\t\t};\n\t\tif(this.tagName.toUpperCase() !== 'TABLE' || this.id == null) {\n\t\t\talert(\"Element is not a table or has no id!\");\n\t\t\treturn;\n\t\t}\n\t\tif(document.documentMode !== undefined ) { // IE only\n\t\t\tif(document.documentMode <= 5) {\n\t\t\t\talert(\"Grid can not be used in this ('quirks') mode!\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tvar i =0, lr, lk, dir;\n\t\tfor( lk in $.jgrid.regional ){\n\t\t\tif($.jgrid.regional.hasOwnProperty(lk)) {\n\t\t\t\tif(i===0) { lr = lk; }\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\t\tif(i === 1 && lr !== p.regional) {\n\t\t\tp.regional = lr;\n\t\t}\n\t\t$(this).empty().attr(\"tabindex\",\"0\");\n\t\tthis.p = p ;\n\t\tthis.p.useProp = !!$.fn.prop;\n\t\tif(this.p.colNames.length === 0) {\n\t\t\tfor (i=0;i<this.p.colModel.length;i++){\n\t\t\t\tthis.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tif( this.p.colNames.length !== this.p.colModel.length ) {\n\t\t\talert($.jgrid.getRegional(this,\"errors.model\"));\n\t\t\treturn;\n\t\t}\n\t\tvar getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\tstylemodule = ts.p.styleUI + \".common\",\n\t\tdisabled = getstyle(stylemodule,'disabled', true),\n\t\thighlight = getstyle(stylemodule,'highlight', true),\n\t\thover = getstyle(stylemodule,'hover', true),\n\t\tcornerall = getstyle(stylemodule,'cornerall', true),\n\t\ticonbase = getstyle(stylemodule,'icon_base', true),\n\t\tcolmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,\n\t\tisMSIE = $.jgrid.msie(),\n\t\tgv, sortarr = [], sortord = [], sotmp=[];\n\t\tstylemodule = ts.p.styleUI + \".base\";\n\t\tgv = $(\"<div \"+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+\" role='grid'></div>\");\n\t\tts.p.direction = $.trim(ts.p.direction.toLowerCase());\n\t\tts.p._ald = false;\n\t\tif($.inArray(ts.p.direction,[\"ltr\",\"rtl\"]) === -1) { ts.p.direction = \"ltr\"; }\n\t\tdir = ts.p.direction;\n\t\t\n\t\t$(gv).insertBefore(this);\n\t\t$(this).appendTo(gv);\n\t\n\t\tvar eg = $(\"<div \"+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +\"></div>\");\n\t\t$(eg).attr({\"id\" : \"gbox_\"+this.id,\"dir\":dir}).insertBefore(gv);\n\t\t$(gv).attr(\"id\",\"gview_\"+this.id).appendTo(eg);\n\t\t$(\"<div \"+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ \" id='lui_\"+this.id+\"'></div>\").insertBefore(gv);\n\t\t$(\"<div \"+getstyle(stylemodule,'loadingBox', false, 'loading')+\" id='load_\"+this.id+\"'>\"+$.jgrid.getRegional(ts, \"defaults.loadtext\", this.p.loadtext)+\"</div>\").insertBefore(gv);\n\t\t\n\t\t$(this).attr({role:\"presentation\",\"aria-multiselectable\":!!this.p.multiselect,\"aria-labelledby\":\"gbox_\"+this.id});\n\t\t\n\t\tvar sortkeys = [\"shiftKey\",\"altKey\",\"ctrlKey\"],\n\t\tintNum = function(val,defval) {\n\t\t\tval = parseInt(val,10);\n\t\t\tif (isNaN(val)) { return defval || 0;}\n\t\t\treturn val;\n\t\t},\n\t\tformatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){\n\t\t\tvar cm = ts.p.colModel[pos], cellAttrFunc,\n\t\t\tral = cm.align, result=\"style=\\\"\", clas = cm.classes, nm = cm.name, celp, acp=[];\n\t\t\tif(ral) { result += \"text-align:\"+ral+\";\"; }\n\t\t\tif(cm.hidden===true) { result += \"display:none;\"; }\n\t\t\tif(rowInd===0) {\n\t\t\t\tresult += \"width: \"+grid.headers[pos].width+\"px;\";\n\t\t\t} else if ($.isFunction(cm.cellattr) || (typeof cm.cellattr === \"string\" && $.jgrid.cellattr != null && $.isFunction($.jgrid.cellattr[cm.cellattr]))) {\n\t\t\t\tcellAttrFunc = $.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr];\n\t\t\t\tcelp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata);\n\t\t\t\tif(celp && typeof celp === \"string\") {\n\t\t\t\t\tcelp = celp.replace(/style/i,'style').replace(/title/i,'title');\n\t\t\t\t\tif(celp.indexOf('title') > -1) { cm.title=false;}\n\t\t\t\t\tif(celp.indexOf('class') > -1) { clas = undefined;}\n\t\t\t\t\tacp = celp.replace(/\\-style/g,'-sti').split(/style/);\n\t\t\t\t\tif(acp.length === 2 ) {\n\t\t\t\t\t\tacp[1] =  $.trim(acp[1].replace(/\\-sti/g,'-style').replace(\"=\",\"\"));\n\t\t\t\t\t\tif(acp[1].indexOf(\"'\") === 0 || acp[1].indexOf('\"') === 0) {\n\t\t\t\t\t\t\tacp[1] = acp[1].substring(1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult += acp[1].replace(/'/gi,'\"');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult += \"\\\"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!acp.length) { acp[0] = \"\"; result += \"\\\"\";}\n\t\t\tresult += (clas !== undefined ? (\" class=\\\"\"+clas+\"\\\"\") :\"\") + ((cm.title && tv) ? (\" title=\\\"\"+$.jgrid.stripHtml(tv)+\"\\\"\") :\"\");\n\t\t\tresult += \" aria-describedby=\\\"\"+ts.p.id+\"_\"+nm+\"\\\"\";\n\t\t\treturn result + acp[0];\n\t\t},\n\t\tcellVal =  function (val) {\n\t\t\treturn val == null || val === \"\" ? \"&#160;\" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val));\n\t\t},\n\t\tformatter = function (rowId, cellval , colpos, rwdat, _act){\n\t\t\tvar cm = ts.p.colModel[colpos],v;\n\t\t\tif(cm.formatter !== undefined) {\n\t\t\t\trowId = String(ts.p.idPrefix) !== \"\" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId;\n\t\t\t\tvar opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI };\n\t\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\t\tv = cm.formatter.call(ts,cellval,opts,rwdat,_act);\n\t\t\t\t} else if($.fmatter){\n\t\t\t\t\tv = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act);\n\t\t\t\t} else {\n\t\t\t\t\tv = cellVal(cellval);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv = cellVal(cellval);\n\t\t\t}\n\t\t\treturn v;\n\t\t},\n\t\taddCell = function(rowId,cell,pos,irow, srvr, rdata) {\n\t\t\tvar v,prp;\n\t\t\tv = formatter(rowId,cell,pos,srvr,'add');\n\t\t\tprp = formatCol( pos,irow, v, srvr, rowId, rdata);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddMulti = function(rowid, pos, irow, checked, uiclass){\n\t\t\tvar\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\" \"+uiclass+\" name=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\"\" + (checked ? \"checked=\\\"checked\\\"\" : \"\")+\"/>\",\n\t\t\tprp = formatCol( pos,irow,'',null, rowid, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddRowNum = function (pos, irow, pG, rN, uiclass ) {\n\t\t\tvar v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,\n\t\t\tprp = formatCol( pos,irow,v, null, irow, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+uiclass+\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\treader = function (datatype) {\n\t\t\tvar field, f=[], j=0, i;\n\t\t\tfor(i =0; i<ts.p.colModel.length; i++){\n\t\t\t\tfield = ts.p.colModel[i];\n\t\t\t\tif (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {\n\t\t\t\t\tf[j]= datatype === \"local\" ?\n\t\t\t\t\tfield.name :\n\t\t\t\t\t( (datatype===\"xml\" || datatype === \"xmlstring\") ? field.xmlmap || field.name : field.jsonmap || field.name );\n\t\t\t\t\tif(ts.p.keyName !== false && field.key===true ) {\n\t\t\t\t\t\tts.p.keyName = f[j];\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn f;\n\t\t},\n\t\torderedCols = function (offset) {\n\t\t\tvar order = ts.p.remapColumns;\n\t\t\tif (!order || !order.length) {\n\t\t\t\torder = $.map(ts.p.colModel, function(v,i) { return i; });\n\t\t\t}\n\t\t\tif (offset) {\n\t\t\t\torder = $.map(order, function(v) { return v<offset?null:v-offset; });\n\t\t\t}\n\t\t\treturn order;\n\t\t},\n\t\temptyRows = function (scroll, locdata) {\n\t\t\tvar firstrow;\n\t\t\tif (this.p.deepempty) {\n\t\t\t\t$(this.rows).slice(1).remove();\n\t\t\t} else {\n\t\t\t\tfirstrow = this.rows.length > 0 ? this.rows[0] : null;\n\t\t\t\t$(this.firstChild).empty().append(firstrow);\n\t\t\t}\n\t\t\tif (scroll && this.p.scroll) {\n\t\t\t\t$(this.grid.bDiv.firstChild).css({height: \"auto\"});\n\t\t\t\t$(this.grid.bDiv.firstChild.firstChild).css({height: \"0px\", display: \"none\"});\n\t\t\t\tif (this.grid.bDiv.scrollTop !== 0) {\n\t\t\t\t\tthis.grid.bDiv.scrollTop = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(locdata === true && this.p.treeGrid && !this.p.loadonce ) {\n\t\t\t\tthis.p.data = []; this.p._index = {};\n\t\t\t}\n\t\t},\n\t\tnormalizeData = function() {\n\t\t\tvar p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd,\n\t\t\tlocalReader = p.localReader,\n\t\t\tcolModel = p.colModel,\n\t\t\tcellName = localReader.cell,\n\t\t\tiOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0),\n\t\t\tbr = p.scroll ? $.jgrid.randId() : 1,\n\t\t\tarrayReader, objectReader, rowReader;\n\n\t\t\tif (p.datatype !== \"local\" || localReader.repeatitems !== true) {\n\t\t\t\treturn; // nothing to do\n\t\t\t}\n\n\t\t\tarrayReader = orderedCols(iOffset);\n\t\t\tobjectReader = reader(\"local\");\n\t\t\t// read ALL input items and convert items to be read by\n\t\t\t// $.jgrid.getAccessor with column name as the second parameter\n\t\t\tidn = p.keyIndex === false ?\n\t\t\t\t($.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) :\n\t\t\t\tp.keyIndex; \n\t\t\tfor (i = 0; i < dataLength; i++) {\n\t\t\t\tcur = data[i];\n\t\t\t\t// read id in the same way like addJSONData do\n\t\t\t\t// probably it would be better to start with \"if (cellName) {...}\"\n\t\t\t\t// but the goal of the current implementation was just have THE SAME\n\t\t\t\t// id values like in addJSONData ...\n\t\t\t\tidr = $.jgrid.getAccessor(cur, idn);\n\t\t\t\tif (idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && colModel[idn + iOffset] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name);\n\t\t\t\t\t}\n\t\t\t\t\tif (idr === undefined) {\n\t\t\t\t\t\tidr = br + i;\n\t\t\t\t\t\tif (cellName) {\n\t\t\t\t\t\t\tccur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\tccur = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trd = { };\n\t\t\t\trd[localReader.id] = idr;\n\t\t\t\tif (cellName) {\n\t\t\t\t\tcur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t}\n\t\t\t\trowReader = $.isArray(cur) ? arrayReader : objectReader;\n\t\t\t\tfor (j = 0; j < rowReader.length; j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur, rowReader[j]);\n\t\t\t\t\trd[colModel[j + iOffset].name] = v;\n\t\t\t\t}\n\t\t\t\t$.extend(true, data[i], rd);\n\t\t\t}\n\t\t},\n\t\trefreshIndex = function() {\n\t\t\tvar datalen = ts.p.data.length, idname, i, val;\n\n\t\t\tif(ts.p.keyName === false || ts.p.loadonce === true) {\n\t\t\t\tidname = ts.p.localReader.id;\n\t\t\t} else {\n\t\t\t\tidname = ts.p.keyName;\n\t\t\t}\n\t\t\tts.p._index = [];\n\t\t\tfor(i =0;i < datalen; i++) {\n\t\t\t\tval = $.jgrid.getAccessor(ts.p.data[i],idname);\n\t\t\t\tif (val === undefined) { val=String(i+1); }\n\t\t\t\tts.p._index[val] = i;\n\t\t\t}\n\t\t},\n\t\tconstructTr = function(id, hide, classes, rd, cur ) {\n\t\t\tvar tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '',\n\t\t\t\t//classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''),\n\t\t\t\trowAttrObj = $(ts).triggerHandler(\"jqGridRowAttr\", [rd, cur, id]);\n\t\t\tif( typeof rowAttrObj !== \"object\" ) {\n\t\t\t\trowAttrObj = $.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) :\n\t\t\t\t\t(typeof ts.p.rowattr === \"string\" && $.jgrid.rowattr != null && $.isFunction($.jgrid.rowattr[ts.p.rowattr]) ?\n\t\t\t\t\t$.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {});\n\t\t\t}\n\t\t\tif(!$.isEmptyObject( rowAttrObj )) {\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"id\")) {\n\t\t\t\t\tid = rowAttrObj.id;\n\t\t\t\t\tdelete rowAttrObj.id;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"tabindex\")) {\n\t\t\t\t\ttabindex = rowAttrObj.tabindex;\n\t\t\t\t\tdelete rowAttrObj.tabindex;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"style\")) {\n\t\t\t\t\tstyle += rowAttrObj.style;\n\t\t\t\t\tdelete rowAttrObj.style;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"class\")) {\n\t\t\t\t\tclasses += ' ' + rowAttrObj['class'];\n\t\t\t\t\tdelete rowAttrObj['class'];\n\t\t\t\t}\n\t\t\t\t// dot't allow to change role attribute\n\t\t\t\ttry { delete rowAttrObj.role; } catch(ra){}\n\t\t\t\tfor (attrName in rowAttrObj) {\n\t\t\t\t\tif (rowAttrObj.hasOwnProperty(attrName)) {\n\t\t\t\t\t\trestAttr += ' ' + attrName + '=' + rowAttrObj[attrName];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '<tr role=\"row\" id=\"' + id + '\" tabindex=\"' + tabindex + '\" class=\"' + classes + '\"' +\n\t\t\t\t(style === '' ? '' : ' style=\"' + style + '\"') + restAttr + '>';\n\t\t},\n\t\taddXmlData = function (xml, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date(),\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"xmlstring\",\n\t\t\txmlid = \"_id_\", xmlRd = ts.p.xmlReader,\n\t\t\tfrd = ts.p.datatype === \"local\" ? \"local\" : \"xml\";\n\t\t\tif(locdata) {\n\t\t\t\tts.p.data = [];\n\t\t\t\tts.p._index = {};\n\t\t\t\tts.p.localReader.id = xmlid;\n\t\t\t}\n\t\t\tts.p.reccount = 0;\n\t\t\tif($.isXMLDoc(xml)) {\n\t\t\t\tif(ts.p.treeANode===-1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\t\t\tvar self= $(ts), i,fpos,ir=0,v,gi=ts.p.multiselect===true?1:0,si=0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,idn, getId,f=[],F,rd ={}, \n\t\t\t\t\txmlr,rid, rowData=[], cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tif(ts.p.subGrid===true) {\n\t\t\t\tsi = 1;\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif(!xmlRd.repeatitems) {f = reader(frd);}\n\t\t\tif( ts.p.keyName===false) {\n\t\t\t\tidn = $.isFunction( xmlRd.id ) ?  xmlRd.id.call(ts, xml) : xmlRd.id;\n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tif( String(idn).indexOf(\"[\") === -1 ) {\n\t\t\t\tif (f.length) {\n\t\t\t\t\tgetId = function( trow, k) {return $(idn,trow).text() || k;};\n\t\t\t\t} else {\n\t\t\t\t\tgetId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;};\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tgetId = function( trow, k) {return trow.getAttribute(idn.replace(/[\\[\\]]/g,\"\")) || k;};\n\t\t\t}\n\t\t\tts.p.userData = {};\n\t\t\tts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records));\n\t\t\tif($.isFunction(xmlRd.userdata)) {\n\t\t\t\tts.p.userData = xmlRd.userdata.call(ts, xml) || {};\n\t\t\t} else {\n\t\t\t\t$.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute(\"name\")]= $(this).text();});\n\t\t\t}\n\t\t\tvar gxml = $.jgrid.getXmlData( xml, xmlRd.root, true);\n\t\t\tgxml = $.jgrid.getXmlData( gxml, xmlRd.row, true);\n\t\t\tif (!gxml) { gxml = []; }\n\t\t\tvar gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1, altr,\n\t\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\");\n\t\t\tif (gl > 0 &&  ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tif(gxml && gl){\n\t\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), hiderow=false, groupingPrepare,\n\t\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\t\tif(ts.p.grouping)  {\n\t\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t\t}\n\t\t\t\twhile (j<gl) {\n\t\t\t\t\txmlr = gxml[j];\n\t\t\t\t\trid = getId(xmlr,br+j);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\taltr = rcnt === 0 ? 0 : rcnt+1;\n\t\t\t\t\tclasses = cn1 + ( (altr+j)%2 === 1 ? ' ' + cn : '');\n\t\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\t\trowData.push(\"\");\n\t\t\t\t\tif( ni ) {\n\t\t\t\t\t\trowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t\t}\n\t\t\t\t\tif( gi ) {\n\t\t\t\t\t\trowData.push( addMulti(rid, ni, j, false, mlc) );\n\t\t\t\t\t}\n\t\t\t\t\tif( si ) {\n\t\t\t\t\t\trowData.push( addSubGridCell.call(self, gi+ni, j+rcnt) );\n\t\t\t\t\t}\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr, rd) );\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr, rd) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr);\n\t\t\t\t\trowData.push(\"</tr>\");\n\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self , rd, j );\n\t\t\t\t\t\t}\n\t\t\t\t\t\trowData = [];\n\t\t\t\t\t}\n\t\t\t\t\tif(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) {\n\t\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [rid, rd, xmlr]);\n\t\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}\n\t\t\t\t\t\trowData=[];\n\t\t\t\t\t}\n\t\t\t\t\trd={};\n\t\t\t\t\tir++;\n\t\t\t\t\tj++;\n\t\t\t\t\tif(ir===rn) {break;}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.gridview === true) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else {\n\t\t\t\t\t//$(\"tbody:first\",t).append(rowData.join(''));\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells; // update cached first row\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData =null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry {self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} }\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = gl;\n\t\t\t\tts.p.lastpage = Math.ceil(gl/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<gl) {\n\t\t\t\t\txmlr = gxml[ir];\n\t\t\t\t\trid = getId(xmlr,ir+br);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells2[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\tif( ts.p.grouping ) {\n\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t}\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\trd = {};\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddJSONData = function(data, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date();\n\t\t\tif(data) {\n\t\t\t\tif(ts.p.treeANode === -1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\n\t\t\tvar dReader, locid = \"_id_\", frd,\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"jsonstring\";\n\t\t\tif(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = locid;}\n\t\t\tts.p.reccount = 0;\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tdReader =  ts.p.localReader;\n\t\t\t\tfrd= 'local';\n\t\t\t} else {\n\t\t\t\tdReader =  ts.p.jsonReader;\n\t\t\t\tfrd='json';\n\t\t\t}\n\t\t\tvar self = $(ts), ir=0,v,i,j,f=[],cur,gi=ts.p.multiselect?1:0,si=ts.p.subGrid===true?1:0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,arrayReader=orderedCols(gi+si+ni),objectReader=reader(frd),rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[],cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getAccessor(data,dReader.records));\n\t\t\tts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {};\n\t\t\tif(si) {\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif( ts.p.keyName===false ) {\n\t\t\t\tidn = $.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id; \n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tdrows = $.jgrid.getAccessor(data,dReader.root);\n\t\t\tif (drows == null && $.isArray(data)) { drows = data; }\n\t\t\tif (!drows) { drows = []; }\n\t\t\tlen = drows.length; i=0;\n\t\t\tif (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tvar rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?$.jgrid.randId():1, altr, selected=false, selr;\n\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\tif(ts.p.datatype === \"local\" && !ts.p.deselectAfterSort) {\n\t\t\t\tselected = true;\n\t\t\t}\n\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare,\n\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"),\n\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\tif(ts.p.grouping)  {\n\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t}\n\t\t\twhile (i<len) {\n\t\t\t\tcur = drows[i];\n\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\tif(idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t}\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tidr = br+i;\n\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\tvar ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\t\tccur=null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\taltr = rcnt === 1 ? 0 : rcnt;\n\t\t\t\tclasses = cn1+ ( (altr+i)%2 === 1 ? ' '+cn : '');\n\t\t\t\tif( selected) {\n\t\t\t\t\tif( ts.p.multiselect) {\n\t\t\t\t\t\tselr = ($.inArray(idr, ts.p.selarrrow) !== -1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselr = (idr === ts.p.selrow);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\trowData.push(\"\");\n\t\t\t\tif( ni ) {\n\t\t\t\t\trowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t}\n\t\t\t\tif( gi ){\n\t\t\t\t\trowData.push( addMulti(idr, ni, i, selr, mlc) );\n\t\t\t\t}\n\t\t\t\tif( si ) {\n\t\t\t\t\trowData.push( addSubGridCell.call(self ,gi+ni,i+rcnt) );\n\t\t\t\t}\n\t\t\t\trowReader=objectReader;\n\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t}\n\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = v;\n\t\t\t\t\trowData.push( addCell(idr,v,j+gi+si+ni,i+rcnt,cur, rd) );\n\t\t\t\t}\n\t\t\t\tclasses += (selr ? ' ' + highlight : '');\n\t\t\t\trowData[iStartTrTag] = constructTr(idr, hiderow, classes, rd, cur);\n\t\t\t\trowData.push( \"</tr>\" );\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\tgroupingPrepare.call(self , rd, i);\n\t\t\t\t\t}\n\t\t\t\t\trowData = [];\n\t\t\t\t}\n\t\t\t\tif(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) {\n\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t}\n\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [idr, rd, cur]);\n\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}\n\t\t\t\t\trowData=[];//ari=0;\n\t\t\t\t}\n\t\t\t\trd={};\n\t\t\t\tir++;\n\t\t\t\ti++;\n\t\t\t\tif(ir===rn) { break; }\n\t\t\t}\n\t\t\tif(ts.p.gridview === true ) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else { \n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells;\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData = null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry { self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) {\n\t\t\t\tif(ts.p.records===0) { ts.p.records=len; }\n\t\t\t}\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = len;\n\t\t\t\tts.p.lastpage = Math.ceil(len/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<len && drows[ir]) {\n\t\t\t\t\tcur = drows[ir];\n\t\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\t\tidr = br+ir;\n\t\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\t\tvar ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\t\tidr = ccur2 != null && ccur2[idn] !== undefined ? ccur2[idn] : idr;\n\t\t\t\t\t\t\t\t\tccur2=null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cur) {\n\t\t\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\t\t\trowReader=objectReader;\n\t\t\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t\t\trd = {};\n\t\t\t\t\t}\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddLocalData = function( retAll ) {\n\t\t\tvar st = ts.p.multiSort ? [] : \"\", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld;\n\t\t\tif(!$.isArray(ts.p.data)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si;\n\t\t\t$.each(ts.p.colModel,function(){\n\t\t\t\tsorttype = this.sorttype || \"text\";\n\t\t\t\tsi = this.index || this.name;\n\t\t\t\tif(sorttype === \"date\" || sorttype === \"datetime\") {\n\t\t\t\t\tif(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') {\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.srcformat) {\n\t\t\t\t\t\t\tsrcformat = this.formatoptions.srcformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsrcformat = $.jgrid.getRegional(ts, \"formatter.date.srcformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.newformat) {\n\t\t\t\t\t\t\tnewformat = this.formatoptions.newformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewformat = $.jgrid.getRegional(ts, \"formatter.date.newformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsrcformat = newformat = this.datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\": srcformat,\"newfmt\":newformat, \"sfunc\": this.sortfunc || null};\n\t\t\t\t} else {\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\":'',\"newfmt\":'', \"sfunc\": this.sortfunc || null};\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping ) {\n\t\t\t\t\tfor(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) {\n\t\t\t\t\t\tif( this.name === grpview.groupField[gin]) {\n\t\t\t\t\t\t\tgrtypes[gin] = cmtypes[si];\n\t\t\t\t\t\t\tgrindexes[gin]= si;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!ts.p.multiSort) {\n\t\t\t\t\tif(!fndsort && (si === ts.p.sortname)){\n\t\t\t\t\t\tst = si; \n\t\t\t\t\t\tfndsort = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tst =  sortarr;\n\t\t\t\tsto = sortord;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p._sort) {\n\t\t\t\t$(ts).jqGrid(\"SortTree\", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || '');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar compareFnMap = {\n\t\t\t\t'eq':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'ne':function(queryObj) {return queryObj.notEquals;},\n\t\t\t\t'lt':function(queryObj) {return queryObj.less;},\n\t\t\t\t'le':function(queryObj) {return queryObj.lessOrEquals;},\n\t\t\t\t'gt':function(queryObj) {return queryObj.greater;},\n\t\t\t\t'ge':function(queryObj) {return queryObj.greaterOrEquals;},\n\t\t\t\t'cn':function(queryObj) {return queryObj.contains;},\n\t\t\t\t'nc':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().contains : queryObj.andNot().contains;},\n\t\t\t\t'bw':function(queryObj) {return queryObj.startsWith;},\n\t\t\t\t'bn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;},\n\t\t\t\t'en':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;},\n\t\t\t\t'ew':function(queryObj) {return queryObj.endsWith;},\n\t\t\t\t'ni':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().equals : queryObj.andNot().equals;},\n\t\t\t\t'in':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'nu':function(queryObj) {return queryObj.isNull;},\n\t\t\t\t'nn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().isNull : queryObj.andNot().isNull;}\n\n\t\t\t},\n\t\t\tquery = $.jgrid.from.call(ts, ts.p.data);\n\t\t\tif (ts.p.ignoreCase) { query = query.ignoreCase(); }\n\t\t\tfunction tojLinq ( group ) {\n\t\t\t\tvar s = 0, index, gor, ror, opr, rule, fld;\n\t\t\t\tif (group.groups != null) {\n\t\t\t\t\tgor = group.groups.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t}\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s > 0 && gor) {\n\t\t\t\t\t\t\tquery.or();\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttojLinq(group.groups[index]);\n\t\t\t\t\t\t} catch (e) {alert(e);}\n\t\t\t\t\t\ts++;\n\t\t\t\t\t}\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (group.rules != null) {\n\t\t\t\t\t//if(s>0) {\n\t\t\t\t\t//\tvar result = query.select();\n\t\t\t\t\t//\tquery = $.jgrid.from( result);\n\t\t\t\t\t//\tif (ts.p.ignoreCase) { query = query.ignoreCase(); } \n\t\t\t\t\t//}\n\t\t\t\t\ttry{\n\t\t\t\t\t\tror = group.rules.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\t\trule = group.rules[index];\n\t\t\t\t\t\t\topr = group.groupOp.toString().toUpperCase();\n\t\t\t\t\t\t\tif (compareFnMap[rule.op] && rule.field ) {\n\t\t\t\t\t\t\t\tif(s > 0 && opr && opr === \"OR\") {\n\t\t\t\t\t\t\t\t\tquery = query.or();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfld = cmtypes[rule.field];\n\t\t\t\t\t\t\t\tif(fld.stype === 'date') {\n\t\t\t\t\t\t\t\t\tif(fld.srcfmt && fld.newfmt && fld.srcfmt !== fld.newfmt ) {\n\t\t\t\t\t\t\t\t\t\trule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tquery = compareFnMap[rule.op](query, opr)(rule.field, rule.data, cmtypes[rule.field]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ts++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (g) {alert(g);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ts.p.search === true) {\n\t\t\t\tvar srules = ts.p.postData.filters;\n\t\t\t\tif(srules) {\n\t\t\t\t\tif(typeof srules === \"string\") { srules = $.jgrid.parse(srules);}\n\t\t\t\t\ttojLinq( srules );\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsfld = cmtypes[ts.p.postData.searchField];\n\t\t\t\t\t\tif(sfld.stype === 'date') {\n\t\t\t\t\t\t\tif(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) {\n\t\t\t\t\t\t\t\tts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tquery = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]);\n\t\t\t\t\t} catch (se){}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"nested\") {\n\t\t\t\t\tquery.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"adjacency\") {\n\t\t\t\tlengrp =0;\n\t\t\t\tst = null;\n\t\t\t}\n\t\t\tif(ts.p.grouping) {\n\t\t\t\tfor(gin=0; gin<lengrp;gin++) {\n\t\t\t\t\tquery.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\t$.each(st,function(i){\n\t\t\t\t\tquery.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (st && ts.p.sortorder && fndsort) {\n\t\t\t\t\t// to be fixed in case sortname has more than one field\n\t\t\t\t\tif(ts.p.sortorder.toUpperCase() === \"DESC\") {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"d\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"a\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar queryResults = query.select(),\n\t\t\trecordsperpage = parseInt(ts.p.rowNum,10),\n\t\t\ttotal = queryResults.length,\n\t\t\tpage = parseInt(ts.p.page,10),\n\t\t\ttotalpages = Math.ceil(total / recordsperpage),\n\t\t\tretresult = {};\n\t\t\tif((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) {\n\t\t\t\tts.p.groupingView.groups =[];\n\t\t\t\tvar j, grPrepare = $.jgrid.getMethod(\"groupingPrepare\"), key, udc;\n\t\t\t\tif(ts.p.footerrow && ts.p.userDataOnFooter) {\n\t\t\t\t\tfor (key in ts.p.userData) {\n\t\t\t\t\t\tif(ts.p.userData.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tts.p.userData[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tudc = true;\n\t\t\t\t}\n\t\t\t\tfor(j=0; j<total; j++) {\n\t\t\t\t\tif(udc) {\n\t\t\t\t\t\tfor(key in ts.p.userData){\n\t\t\t\t\t\t\tif( ts.p.userData.hasOwnProperty( key ) ) {\n\t\t\t\t\t\t\t\tts.p.userData[key] += parseFloat(queryResults[j][key] || 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrPrepare.call($(ts),queryResults[j],j, recordsperpage );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( retAll ) {\n\t\t\t\treturn  queryResults;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.search) {\n\t\t\t\tqueryResults = $(ts).jqGrid(\"searchTree\", queryResults);\n\t\t\t} else {\n\t\t\t\tqueryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );\n\t\t\t}\n\t\t\tquery = null;\n\t\t\tcmtypes = null;\n\t\t\tretresult[ts.p.localReader.total] = totalpages;\n\t\t\tretresult[ts.p.localReader.page] = page;\n\t\t\tretresult[ts.p.localReader.records] = total;\n\t\t\tretresult[ts.p.localReader.root] = queryResults;\n\t\t\tretresult[ts.p.localReader.userdata] = ts.p.userData;\n\t\t\tqueryResults = null;\n\t\t\treturn  retresult;\n\t\t},\n\t\tupdatepager = function(rn, dnd) {\n\t\t\tvar cp, last, base, from,to,tot,fmt, pgboxes = \"\", sppg,\n\t\t\tpgid = ts.p.pager ? $.jgrid.jqID(ts.p.pager.substr(1)) : \"\",\n\t\t\ttspg = pgid ? \"_\"+pgid : \"\",\n\t\t\ttspg_t = ts.p.toppager ? \"_\"+ts.p.toppager.substr(1) : \"\";\n\t\t\tbase = parseInt(ts.p.page,10)-1;\n\t\t\tif(base < 0) { base = 0; }\n\t\t\tbase = base*parseInt(ts.p.rowNum,10);\n\t\t\tto = base + ts.p.reccount;\n\t\t\tif (ts.p.scroll) {\n\t\t\t\tvar rows = $(\"tbody:first > tr:gt(0)\", ts.grid.bDiv);\n\t\t\t\tif(to > ts.p.records) {\n\t\t\t\t\tto = ts.p.records;\n\t\t\t\t}\n\t\t\t\tbase = to - rows.length;\n\t\t\t\tts.p.reccount = rows.length;\n\t\t\t\tvar rh = rows.outerHeight() || ts.grid.prevRowHeight;\n\t\t\t\tif (rh) {\n\t\t\t\t\tvar top = base * rh;\n\t\t\t\t\tvar height = parseInt(ts.p.records,10) * rh;\n\t\t\t\t\t$(\">div:first\",ts.grid.bDiv).css({height : height}).children(\"div:first\").css({height:top,display:top?\"\":\"none\"});\n\t\t\t\t\tif (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;\n\t\t\t}\n\t\t\tpgboxes = ts.p.pager || \"\";\n\t\t\tpgboxes += ts.p.toppager ?  (pgboxes ? \",\" + ts.p.toppager : ts.p.toppager) : \"\";\n\t\t\tif(pgboxes) {\n\t\t\t\tfmt = $.jgrid.getRegional(ts, \"formatter.integer\");\n\t\t\t\tcp = intNum(ts.p.page);\n\t\t\t\tlast = intNum(ts.p.lastpage);\n\t\t\t\t$(\".selbox\",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ](\"disabled\",false);\n\t\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t\t$(\"#input\"+tspg).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\"));\n\t\t\t\t\tif(ts.p.toppager) {\n\t\t\t\t\t\t$(\"#input_t\"+tspg_t).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"_toppager'></span>\"));\n\t\t\t\t\t}\n\t\t\t\t\t$('.ui-pg-input',pgboxes).val(ts.p.page);\n\t\t\t\t\tsppg = ts.p.toppager ? '#sp_1'+tspg+\",#sp_1\"+tspg+\"_toppager\" : '#sp_1'+tspg;\n\t\t\t\t\t$(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);\n\t\t\t\t}\n\t\t\t\tif (ts.p.viewrecords){\n\t\t\t\t\tif(ts.p.reccount === 0) {\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.getRegional(ts, \"defaults.emptyrecords\", ts.p.emptyrecords ));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfrom = base+1;\n\t\t\t\t\t\ttot=ts.p.records;\n\t\t\t\t\t\tif($.fmatter) {\n\t\t\t\t\t\t\tfrom = $.fmatter.util.NumberFormat(from,fmt);\n\t\t\t\t\t\t\tto = $.fmatter.util.NumberFormat(to,fmt);\n\t\t\t\t\t\t\ttot = $.fmatter.util.NumberFormat(tot,fmt);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rt = $.jgrid.getRegional(ts, \"defaults.recordtext\", ts.p.recordtext);\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.template( rt ,from,to,tot));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t\tif(cp<=0) {cp = last = 0;}\n\t\t\t\t\tif(cp===1 || cp === 0) {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t\tif(cp===last || cp === 0) {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(rn===true && ts.p.rownumbers === true) {\n\t\t\t\t$(\">td.jqgrid-rownum\",ts.rows).each(function(i){\n\t\t\t\t\t$(this).html(base+1+i);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}\n\t\t\t$(ts).triggerHandler(\"jqGridGridComplete\");\n\t\t\tif($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}\n\t\t\t$(ts).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t},\n\t\tbeginReq = function() {\n\t\t\tts.grid.hDiv.loading = true;\n\t\t\tif(ts.p.hiddengrid) { return;}\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"show\", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, \"defaults.loadtext\", ts.p.loadtext) });\n\t\t},\n\t\tendReq = function() {\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"hide\", loadtype : ts.p.loadui });\n\t\t},\n\t\tpopulate = function (npage) {\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tvar pvis = ts.p.scroll && npage === false,\n\t\t\t\tprm = {}, dt, dstr, pN=ts.p.prmNames;\n\t\t\t\tif(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); }\n\t\t\t\tif(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}\n\t\t\t\tif(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}\n\t\t\t\tif(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}\n\t\t\t\tif(ts.p.rowTotal !== null && pN.totalrows !== null) { prm[pN.totalrows]= ts.p.rowTotal; }\n\t\t\t\tvar lcf = $.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null;\n\t\t\t\tvar adjust = 0;\n\t\t\t\tnpage = npage || 1;\n\t\t\t\tif (npage > 1) {\n\t\t\t\t\tif(pN.npage !== null) {\n\t\t\t\t\t\tprm[pN.npage] = npage;\n\t\t\t\t\t\tadjust = npage - 1;\n\t\t\t\t\t\tnpage = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlc = function(req) {\n\t\t\t\t\t\t\tts.p.page++;\n\t\t\t\t\t\t\tts.grid.hDiv.loading = false;\n\t\t\t\t\t\t\tif (lcf) {\n\t\t\t\t\t\t\t\tts.p.loadComplete.call(ts,req);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopulate(npage-1);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} else if (pN.npage !== null) {\n\t\t\t\t\tdelete ts.p.postData[pN.npage];\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t$(ts).jqGrid('groupingSetup');\n\t\t\t\t\tvar grp = ts.p.groupingView, gi, gs=\"\";\n\t\t\t\t\tfor(gi=0;gi<grp.groupField.length;gi++) {\n\t\t\t\t\t\tvar index = grp.groupField[gi];\n\t\t\t\t\t\t$.each(ts.p.colModel, function(cmIndex, cmValue) {\n\t\t\t\t\t\t\tif (cmValue.name === index && cmValue.index){\n\t\t\t\t\t\t\t\tindex = cmValue.index;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tgs += index +\" \"+grp.groupOrder[gi]+\", \";\n\t\t\t\t\t}\n\t\t\t\t\tprm[pN.sort] = gs + prm[pN.sort];\n\t\t\t\t}\n\t\t\t\t$.extend(ts.p.postData,prm);\n\t\t\t\tvar rcnt = !ts.p.scroll ? 1 : ts.rows.length-1;\n\t\t\t\tvar bfr = $(ts).triggerHandler(\"jqGridBeforeRequest\");\n\t\t\t\tif (bfr === false || bfr === 'stop') { return; }\n\t\t\t\tif ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,\"load_\"+ts.p.id, rcnt, npage, adjust); return;}\n\t\t\t\tif ($.isFunction(ts.p.beforeRequest)) {\n\t\t\t\t\tbfr = ts.p.beforeRequest.call(ts);\n\t\t\t\t\tif(bfr === undefined) { bfr = true; }\n\t\t\t\t\tif ( bfr === false ) { return; }\n\t\t\t\t}\n\t\t\t\tdt = ts.p.datatype.toLowerCase();\n\t\t\t\tswitch(dt)\n\t\t\t\t{\n\t\t\t\tcase \"json\":\n\t\t\t\tcase \"jsonp\":\n\t\t\t\tcase \"xml\":\n\t\t\t\tcase \"script\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl:ts.p.url,\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\tdataType: dt ,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,\n\t\t\t\t\t\tsuccess:function(data,st, xhr) {\n\t\t\t\t\t\t\tif ($.isFunction(ts.p.beforeProcessing)) {\n\t\t\t\t\t\t\t\tif (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) {\n\t\t\t\t\t\t\t\t\tendReq();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dt === \"xml\") { addXmlData(data, rcnt,npage>1,adjust); }\n\t\t\t\t\t\t\telse { addJSONData(data, rcnt, npage>1, adjust); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [data]);\n\t\t\t\t\t\t\tif(lc) { lc.call(ts,data); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [data]);\n\t\t\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\t\t\tif( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = \"local\";}\n\t\t\t\t\t\t\tdata=null;\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror:function(xhr,st,err){\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t\txhr=null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbeforeSend: function(xhr, settings ){\n\t\t\t\t\t\t\tvar gotoreq = true;\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadBeforeSend)) {\n\t\t\t\t\t\t\t\tgotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(gotoreq === undefined) { gotoreq = true; }\n\t\t\t\t\t\t\tif(gotoreq === false) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbeginReq();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));\n\t\t\t\tbreak;\n\t\t\t\tcase \"xmlstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tdstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr);\n\t\t\t\t\taddXmlData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"jsonstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tif(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); }\n\t\t\t\t\telse { dstr = ts.p.datastr; }\n\t\t\t\t\taddJSONData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"local\":\n\t\t\t\tcase \"clientside\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p._ald = true;\n\t\t\t\t\tvar req = addLocalData( false );\n\t\t\t\t\taddJSONData(req,rcnt,npage>1,adjust);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [req]);\n\t\t\t\t\tif(lc) { lc.call(ts,req); }\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [req]);\n\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\tendReq();\n\t\t\t\t\tts.p._ald = false;\n\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tts.p._sort = false;\n\t\t\t}\n\t\t},\n\t\tsetHeadCheckBox = function ( checked ) {\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\tvar fid = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\tif(fid) {\n\t\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\t}\n\t\t},\n\t\tsetPager = function (pgid, tp){\n\t\t\t// TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid);\n\t\t\tvar sep = \"<td class='ui-pg-button \"+disabled+\"'><span class='ui-separator'></span></td>\",\n\t\t\tpginp = \"\",\n\t\t\tpgl=\"<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>\",\n\t\t\tstr=\"\", pgcnt, lft, cent, rgt, twd, tdw, i,\n\t\t\tclearVals = function(onpaging, thus){\n\t\t\t\tvar ret;\n\t\t\t\tif ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); }\n\t\t\t\tif(ret==='stop') {return false;}\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[]; setHeadCheckBox( false );}\n\t\t\t\tts.p.savedRow = [];\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tpgid = pgid.substr(1);\n\t\t\ttp += \"_\" + pgid;\n\t\t\tpgcnt = \"pg_\"+pgid;\n\t\t\tlft = pgid+\"_left\"; cent = pgid+\"_center\"; rgt = pgid+\"_right\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pgid) )\n\t\t\t.append(\"<div id='\"+pgcnt+\"' class='ui-pager-control' role='group'><table \" + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + \"><tbody><tr><td id='\"+lft+\"' align='left'></td><td id='\"+cent+\"' align='center' style='white-space:pre;'></td><td id='\"+rgt+\"' align='right'></td></tr></tbody></table></div>\")\n\t\t\t.attr(\"dir\",\"ltr\"); //explicit setting\n\t\t\tif(ts.p.rowList.length >0){\n\t\t\t\tstr = \"<td dir=\\\"\"+dir+\"\\\">\";\n\t\t\t\tstr +=\"<select \"+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+\" role=\\\"listbox\\\" title=\\\"\"+($.jgrid.getRegional(ts,\"defaults.pgrecs\",ts.p.pgrecs) || \"\")+ \"\\\">\";\n\t\t\t\tvar strnm;\n\t\t\t\tfor(i=0;i<ts.p.rowList.length;i++){\n\t\t\t\t\tstrnm = ts.p.rowList[i].toString().split(\":\");\n\t\t\t\t\tif(strnm.length === 1) {\n\t\t\t\t\t\tstrnm[1] = strnm[0];\n\t\t\t\t\t}\n\t\t\t\t\tstr +=\"<option role=\\\"option\\\" value=\\\"\"+strnm[0]+\"\\\"\"+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?\" selected=\\\"selected\\\"\":\"\")+\">\"+strnm[1]+\"</option>\";\n\t\t\t\t}\n\t\t\t\tstr +=\"</select></td>\";\n\t\t\t}\n\t\t\tif(dir===\"rtl\") { pgl += str; }\n\t\t\tif(ts.p.pginput===true) { \n\t\t\t\tpginp= \"<td id='input\"+tp+\"' dir='\"+dir+\"'>\"+$.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\")+\"</td>\";\n\t\t\t}\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\tvar po=[\"first\"+tp,\"prev\"+tp, \"next\"+tp,\"last\"+tp], btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'),\n\t\t\t\t\t\tpot = [($.jgrid.getRegional(ts,\"defaults.pgfirst\",ts.p.pgfirst) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgprev\",ts.p.pgprev) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgnext\",ts.p.pgnext) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pglast\",ts.p.pglast) || \"\")];\n\t\t\t\tif(dir===\"rtl\") { \n\t\t\t\t\tpo.reverse();\n\t\t\t\t\tpot.reverse();\n\t\t\t\t}\n\t\t\t\tpgl += \"<td id='\"+po[0]+\"' class='\"+btc+\"' title='\"+ pot[0] +\"'\" + \"><span \" + getstyle(stylemodule, 'icon_first', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[1]+\"' class='\"+btc+\"'  title='\"+ pot[1] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_prev', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += pginp !== \"\" ? sep+pginp+sep:\"\";\n\t\t\t\tpgl += \"<td id='\"+po[2]+\"' class='\"+btc+\"' title='\"+ pot[2] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_next',false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[3]+\"' class='\"+btc+\"' title='\"+ pot[3] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_end',false, iconbase)+\"></span></td>\";\n\t\t\t} else if (pginp !== \"\") { \n\t\t\t\tpgl += pginp; \n\t\t\t}\n\t\t\tif(dir===\"ltr\") { \n\t\t\t\tpgl += str; \n\t\t\t}\n\t\t\tpgl += \"</tr></tbody></table>\";\n\t\t\tif(ts.p.viewrecords===true) {\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.recordpos,\"#\"+pgcnt).append(\"<div dir='\"+dir+\"' style='text-align:\"+ts.p.recordpos+\"' class='ui-paging-info'></div>\");\n\t\t\t}\n\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).append(pgl);\n\t\t\ttdw = $(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).css(\"font-size\") || \"11px\";\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).append(\"<div id='testpg' \"+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+\" style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\ttwd = $(pgl).clone().appendTo(\"#testpg\").width();\n\t\t\t$(\"#testpg\").remove();\n\t\t\tif(twd > 0) {\n\t\t\t\tif(pginp !== \"\") { twd += 50; } //should be param\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).width(twd);\n\t\t\t}\n\t\t\tts.p._nvtd = [];\n\t\t\tts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);\n\t\t\tts.p._nvtd[1] = 0; \n\t\t\tpgl=null;\n\t\t\t$('.ui-pg-selbox',\"#\"+pgcnt).on('change',function() {\n\t\t\t\tif(!clearVals('records', this)) { return false; }\n\t\t\t\tts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;\n\t\t\t\tts.p.rowNum = this.value;\n\t\t\t\tif(ts.p.pager) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }\n\t\t\t\tif(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }\n\t\t\t\tpopulate();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t$(\".ui-pg-button\",\"#\"+pgcnt).hover(function(){\n\t\t\t\t\tif($(this).hasClass(disabled)) {\n\t\t\t\t\t\tthis.style.cursor='default';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\tthis.style.cursor='pointer';\n\t\t\t\t\t}\n\t\t\t\t},function() {\n\t\t\t\t\tif(!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t$(this).removeClass(hover);\n\t\t\t\t\t\tthis.style.cursor= \"default\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#first\"+$.jgrid.jqID(tp)+\", #prev\"+$.jgrid.jqID(tp)+\", #next\"+$.jgrid.jqID(tp)+\", #last\"+$.jgrid.jqID(tp)).click( function() {\n\t\t\t\t\tif ($(this).hasClass(disabled)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tvar cp = intNum(ts.p.page,1),\n\t\t\t\t\tlast = intNum(ts.p.lastpage,1), selclick = false,\n\t\t\t\t\tfp=true, pp=true, np=true,lp=true;\n\t\t\t\t\tif(last ===0 || last===1) {\n\t\t\t\t\t\tfp=false;\n\t\t\t\t\t\tpp=false;\n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t} else if( last>1 && cp >=1) {\n\t\t\t\t\t\tif( cp === 1) { \n\t\t\t\t\t\t\tfp=false; \n\t\t\t\t\t\t\tpp=false; \n\t\t\t\t\t\t} else if( cp===last){ \n\t\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( last>1 && cp===0 ) { \n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\tcp=last-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(!clearVals(this.id.split(\"_\")[0], this)) { return false; }\n\t\t\t\t\tif( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;}\n\t\t\t\t\tif( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;}\n\t\t\t\t\tif( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;}\n\t\t\t\t\tif( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}\n\t\t\t\t\tif(selclick) {\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t$(\"#\"+pgcnt).on('keypress','input.ui-pg-input', function(e) {\n\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\tif(key === 13) {\n\t\t\t\t\t\tif(!clearVals('user', this)) { return false; }\n\t\t\t\t\t\t$(this).val( intNum( $(this).val(), 1));\n\t\t\t\t\t\tts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmultiSort = function(iCol, obj, sor ) {\n\t\t\tvar cm = ts.p.colModel,\n\t\t\t\t\tselTh = ts.p.frozenColumns ?  obj : ts.grid.headers[iCol].el, so=\"\", sn;\n\t\t\t$(\"span.ui-grid-ico-sort\",selTh).addClass(disabled);\n\t\t\t$(selTh).attr(\"aria-selected\",\"false\");\n\t\t\tsn = (cm[iCol].index || cm[iCol].name);\n\t\t\tif ( typeof sor == \"undefined\" )\n\t\t\t{\n\t\t\t\tif(cm[iCol].lso) {\n\t\t\t\t\tif(cm[iCol].lso===\"asc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-desc\";\n\t\t\t\t\t\tso = \"desc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"desc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-asc\";\n\t\t\t\t\t\tso = \"asc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"asc-desc\" || cm[iCol].lso===\"desc-asc\") {\n\t\t\t\t\t\tcm[iCol].lso=\"\";\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcm[iCol].lso = so = cm[iCol].firstsortorder || 'asc';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcm[iCol].lso = so = sor;\n\t\t\t}\t\n\t\t\tif( so ) {\n\t\t\t\t$(\"span.s-ico\",selTh).show();\n\t\t\t\t$(\"span.ui-icon-\"+so,selTh).removeClass(disabled);\n\t\t\t\t$(selTh).attr(\"aria-selected\",\"true\");\n\t\t\t} else {\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\t$(\"span.s-ico\",selTh).hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar isn = sortarr.indexOf( sn );\n\t\t\tif( isn === -1 ) {\n\t\t\t\tsortarr.push( sn );\n\t\t\t\tsortord.push( so );\n\t\t\t} else {\n\t\t\t\tif( so ) {\n\t\t\t\t\tsortord[isn] = so;\n\t\t\t\t} else {\n\t\t\t\t\tsortord.splice( isn, 1 );\n\t\t\t\t\tsortarr.splice( isn, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = \"\";\n\t\t\tts.p.sortname = \"\";\n\t\t\tfor( var i = 0, len = sortarr.length; i < len ; i++) {\n\t\t\t\tif( i > 0) {\n\t\t\t\t\tts.p.sortname += \", \";\n\t\t\t\t}\n\t\t\t\tts.p.sortname += sortarr[ i ];\n\t\t\t\tif( i !== len -1) {\n\t\t\t\t\tts.p.sortname += \" \"+sortord[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = sortord[ len -1 ];\n\t\t\t/*\n\t\t\t$.each(cm, function(i){\n\t\t\t\tif(this.lso) {\n\t\t\t\t\tif(i>0 && fs) {\n\t\t\t\t\t\tsort += \", \";\n\t\t\t\t\t}\n\t\t\t\t\tsplas = this.lso.split(\"-\");\n\t\t\t\t\tsort += cm[i].index || cm[i].name;\n\t\t\t\t\tsort += \" \"+splas[splas.length-1];\n\t\t\t\t\tfs = true;\n\t\t\t\t\tts.p.sortorder = splas[splas.length-1];\n\t\t\t\t}\n\t\t\t});\n\t\t\tls = sort.lastIndexOf(ts.p.sortorder);\n\t\t\tsort = sort.substring(0, ls);\n\t\t\tts.p.sortname = sort;\n\t\t\t*/\n\t\t},\n\t\tsortData = function (index, idxcol,reload,sor, obj){\n\t\t\tif(!ts.p.colModel[idxcol].sortable) { return; }\n\t\t\tif(ts.p.savedRow.length > 0) {return;}\n\t\t\tif(!reload) {\n\t\t\t\tif( ts.p.lastsort === idxcol && ts.p.sortname !== \"\" ) {\n\t\t\t\t\tif( ts.p.sortorder === 'asc') {\n\t\t\t\t\t\tts.p.sortorder = 'desc';\n\t\t\t\t\t} else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';}\n\t\t\t\t} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }\n\t\t\t\tts.p.page = 1;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tmultiSort( idxcol, obj, sor);\n\t\t\t} else {\n\t\t\t\tif(sor) {\n\t\t\t\t\tif(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; }\n\t\t\t\t\tts.p.sortorder = sor;\n\t\t\t\t}\n\t\t\t\tvar previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = ts.p.frozenColumns ?  obj : ts.grid.headers[idxcol].el,\n\t\t\t\t\t\t//sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled);\n\t\t\t\t\tusehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon;\n\t\t\t\ttmpicon = $(previousSelectedTh).find(\"span.ui-grid-ico-sort\");\n\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\tif(usehide) { \n\t\t\t\t\t$(tmpicon).css(\"display\",\"none\"); \n\t\t\t\t}\n\t\t\t\t$(previousSelectedTh).attr(\"aria-selected\",\"false\");\n\t\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t\ttmpicon = ts.grid.fhDiv.find(\"span.ui-grid-ico-sort\");\n\t\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"none\"); }\n\t\t\t\t\tts.grid.fhDiv.find(\"th\").attr(\"aria-selected\",\"false\");\n\t\t\t\t}\n\t\t\t\ttmpicon = $(newSelectedTh).find(\"span.ui-icon-\"+ts.p.sortorder);\n\t\t\t\ttmpicon.removeClass(disabled);\n\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"\"); }\n\t\t\t\t$(newSelectedTh).attr(\"aria-selected\",\"true\");\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\tif(ts.p.lastsort !== idxcol) {\n\t\t\t\t\t\tif(ts.p.frozenColumns){\n\t\t\t\t\t\t\tts.grid.fhDiv.find(\"span.s-ico\").hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"span.s-ico\",previousSelectedTh).hide();\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t} else if (ts.p.sortname === \"\") { // if ts.p.lastsort === idxcol but ts.p.sortname === \"\"\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tindex = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?!\n\t\t\t\tts.p.sortname = ts.p.colModel[idxcol].index || index;\n\t\t\t}\n\t\t\tif ($(ts).triggerHandler(\"jqGridSortCol\", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') {\n\t\t\t\tts.p.lastsort = idxcol;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') {ts.p.lastsort = idxcol; return;}}\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tif(ts.p.deselectAfterSort) {$(ts).jqGrid(\"resetSelection\");}\n\t\t\t} else {\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect){setHeadCheckBox( false );}\n\t\t\t\tts.p.selarrrow =[];\n\t\t\t\tts.p.savedRow =[];\n\t\t\t}\n\t\t\tif(ts.p.scroll) {\n\t\t\t\tvar sscroll = ts.grid.bDiv.scrollLeft;\n\t\t\t\temptyRows.call(ts, true, false);\n\t\t\t\tts.grid.hDiv.scrollLeft = sscroll;\n\t\t\t}\n\t\t\tif(ts.p.subGrid && ts.p.datatype === 'local') {\n\t\t\t\t$(\"td.sgexpanded\",\"#\"+$.jgrid.jqID(ts.p.id)).each(function(){\n\t\t\t\t\t$(this).trigger(\"click\");\n\t\t\t\t});\n\t\t\t}\n\t\t\tts.p._sort = true;\n\t\t\tpopulate();\n\t\t\tts.p.lastsort = idxcol;\n\t\t\tif(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;}\n\t\t},\n\t\tsetColWidth = function () {\n\t\t\tvar initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr;\n\t\t\t$.each(ts.p.colModel, function() {\n\t\t\t\tif(this.hidden === undefined) {this.hidden=false;}\n\t\t\t\tif(ts.p.grouping && ts.p.autowidth) {\n\t\t\t\t\tvar ind = $.inArray(this.name, ts.p.groupingView.groupField);\n\t\t\t\t\tif(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) {\n\t\t\t\t\t\tthis.hidden = !ts.p.groupingView.groupColumnShow[ind];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.widthOrg = cw = intNum(this.width,0);\n\t\t\t\tif(this.hidden===false){\n\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvc++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(isNaN(ts.p.width)) {\n\t\t\t\tts.p.width  = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0);\n\t\t\t}\n\t\t\tgrid.width = parseInt(ts.p.width,10);\n\t\t\tts.p.tblwidth = initwidth;\n\t\t\tif(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}\n\t\t\tif(ts.p.shrinkToFit===true && vc > 0) {\n\t\t\t\taw = grid.width-brd*vc-gw;\n\t\t\t\tif(!isNaN(ts.p.height)) {\n\t\t\t\t\taw -= scw;\n\t\t\t\t\ths = true;\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\t$.each(ts.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(grid.width-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\tts.p.colModel[lvc].width += cr;\n\t\t\t\tts.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif(ts.p.tblwidth > ts.p.width) {\n\t\t\t\t\tts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));\n\t\t\t\t\tts.p.tblwidth = ts.p.width;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tnextVisible= function(iCol) {\n\t\t\tvar ret = iCol, j=iCol, i;\n\t\t\tfor (i = iCol+1;i<ts.p.colModel.length;i++){\n\t\t\t\tif(ts.p.colModel[i].hidden !== true ) {\n\t\t\t\t\tj=i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn j-ret;\n\t\t},\n\t\tgetOffset = function (iCol) {\n\t\t\tvar $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()];\n\t\t\tif(ts.p.direction===\"rtl\") { ret[0] = ts.p.width - ret[0]; }\n\t\t\tret[0] -= ts.grid.bDiv.scrollLeft;\n\t\t\tret.push($(ts.grid.hDiv).position().top);\n\t\t\tret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height());\n\t\t\treturn ret;\n\t\t},\n\t\tgetColumnHeaderIndex = function (th) {\n\t\t\tvar i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th);\n\t\t\tfor (i = 0; i < headers.length; i++) {\n\t\t\t\tif (th === headers[i].el) {\n\t\t\t\t\tci = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn ci;\n\t\t},\n\t\tbuildColItems = function (top, left, parent) {\n\t\t\tvar cm = ts.p.colModel, len = cm.length, i, cols=[], disp,\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tstr1 = '<ul id=\"col_menu\" class=\"ui-search-menu  ui-col-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\">';\n\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t//if(!cm[i].hidedlg) { // column chooser\n\t\t\t\tvar hid = !cm[i].hidden ? \"checked\" : \"\", nm = cm[i].name, lb = ts.p.colNames[i];\n\t\t\t\tdisp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || cm[i].hidedlg) ? \"style='display:none'\" :\"\";\n\t\t\t\tstr1 += '<li '+disp+' class=\"ui-menu-item\" role=\"presentation\" draggable=\"true\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" ><table class=\"ui-common-table\" ><tr><td class=\"menu_icon\" title=\"'+texts.reorder+'\"><span class=\"'+iconbase+' '+colmenustyle.icon_move+' notclick\"></span></td><td class=\"menu_icon\"><input class=\"'+colmenustyle.input_checkbox+'\" type=\"checkbox\" name=\"'+nm+'\" '+hid+'></td><td class=\"menu_text\">'+lb+'</td></tr></table></a></li>';\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\tstr1 += \"</ul>\";\n\t\t\t$(parent).append(str1);\n\t\t\t$(\"#col_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif($.fn.html5sortable()) {\n\t\t\t\t$(\"#col_menu\").html5sortable({\n\t\t\t\t\thandle: 'span',\n\t\t\t\t\tforcePlaceholderSize: true }\n\t\t\t\t).on('sortupdate', function(e, ui) {\n\t\t\t\t\tcols.splice( ui.startindex, 1);\n\t\t\t\t\tcols.splice(ui.endindex, 0, ui.startindex);\n\t\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t\t\tcols[i] = i;\n\t\t\t\t\t}\n\t\t\t\t});\t\t\t\n\t\t\t} // NO jQuery UI \n\t\t\t$(\"#col_menu > li > a\").on(\"click\", function(e) {\n\t\t\t\tvar checked;\n\t\t\t\tif($(e.target).hasClass('notclick')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif($(e.target).is(\":input\")) {\n\t\t\t\t\tchecked = $(e.target).is(\":checked\");\n\t\t\t\t} else {\n\t\t\t\t\tchecked = !$(\"input\", this).is(\":checked\");\n\t\t\t\t\t$(\"input\", this).prop(\"checked\",checked);\n\t\t\t\t}\n\t\t\t\tif(!checked) {\n\t\t\t\t\t$(ts).jqGrid('hideCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"false\");\n\t\t\t\t} else {\n\t\t\t\t\t$(ts).jqGrid('showCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"true\");\n\t\t\t\t}\n\t\t\t}).hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\t\t},\n\t\tbuildSearchBox = function (index, top, left, parent) {\n\t\t\tvar cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem,\n\t\t\tnumopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\t\tstropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\t\ttexts = $.jgrid.getRegional(ts, \"search\"),\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tif(!cm ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\trules = ts.p.colFilters && ts.p.colFilters[cm.name] ?  ts.p.colFilters[cm.name] : false;\n\t\t\tif(rules && !$.isEmptyObject( rules )) {\n\t\t\t\to1 = rules.oper1;\n\t\t\t\tv1 = rules.value1;\n\t\t\t\tr1 = rules.rule;\n\t\t\t\to2 = rules.oper2;\n\t\t\t\tv2 = rules.value2;\n\t\t\t}\n\t\t\tif(! cm.searchoptions ) {\n\t\t\t\tcm.searchoptions = {};\n\t\t\t}\n\t\t\tif(cm.searchoptions.sopt) {\n\t\t\t\tso = cm.searchoptions.sopt;\n\t\t\t} else if(cm.sorttype === 'text') {\n\t\t\t\tso = stropts;\n\t\t\t} else {\n\t\t\t\tso = numopts;\n\t\t\t}\n\t\t\tif(cm.searchoptions.operands) {\n\t\t\t\top = cm.searchoptions.operands;\n\t\t\t} else  {\n\t\t\t\top = texts.groupOps;\n\t\t\t} \n\t\t\t\n\t\t\t//elem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>');\n\t\t\telem = $('<form></form>');\n\t\t\tvar str1= '<div>'+$.jgrid.getRegional(ts, \"colmenu.searchTitle\")+'</div>';\n\t\t\tstr1 += '<div><select id=\"oper1\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o1 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 += repstr;\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\tvar df=\"\";\n\t\t\tif(cm.searchoptions.defaultValue ) {\n\t\t\t\tdf = $.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;\n\t\t\t}\n\t\t\t//overwrite default value if restore from filters\n\t\t\tif( v1 ) {\n\t\t\t\tdf = v1;\n\t\t\t}\n\t\t\tvar soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval1_\" + ts.p.idPrefix+cm.name, oper:'search'}),\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// and/or\n\t\t\tstr1 ='<div><select id=\"operand\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(op, function(i, n){\n\t\t\t\tselected = n.op === r1 ? 'selected=\"selected\"' : '';\n\t\t\t\tstr1 += \"<option value='\"+n.op+\"' \"+selected+\">\"+n.text+\"</option>\";\n\t\t\t});\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\t//oper2 \t\t\n\t\t\trepstr ='';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o2 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 = '<div><select id=\"oper2\" class=\"'+colmenustyle.filter_select+'\">' + repstr +'</select></div>';\n\t\t\telem.append(str1);\n\t\t\t// value2\n\t\t\tif( v2 ) {\n\t\t\t\tdf = v2;\n\t\t\t} else {\n\t\t\t\tdf = \"\";\n\t\t\t}\n\t\t\tsoptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval2_\" + ts.p.idPrefix+cm.name, oper:'search'});\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// buttons\n\t\t\tstr1 = \"<div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button \" + common.button +\" ui-reset'>\"+texts.Reset+\"</a></div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button \" + common.button + \" ui-search'>\"+texts.Find+\"</a></div>\";\n\t\t\tstr1 += \"</div>\";\n\t\t\telem.append(str1);\n\t\t\telem = $('<li class=\"ui-menu-item\" role=\"presentation\"></li>').append( elem );\n\t\t\telem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>').append(elem);\n\t\t\t$(parent).append(elem);\n\t\t\t$(\"#search_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\t$(\"#bs_reset, #bs_search\", \"#search_menu\").hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\n\t\t\t$(elem).find(\"#bs_reset\").click(function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(elem).find(\"#bs_search\").click( function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {\n\t\t\t\t\toper1: $(\"#oper1\",\"#search_menu\").val(),\n\t\t\t\t\tvalue1: $(\"#sval1_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val(),\n\t\t\t\t\trule: $(\"#operand\",\"#search_menu\").val(),\n\t\t\t\t\toper2 : $(\"#oper2\",\"#search_menu\").val(),\n\t\t\t\t\tvalue2 : $(\"#sval2_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val()\n\t\t\t\t};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\t\tbuildFilters = function() {\n\t\t\tvar go = \"AND\",\n\t\t\tfilters =\"{\\\"groupOp\\\":\\\"\" + go + \"\\\",\\\"rules\\\":[], \\\"groups\\\" : [\", i=0;\n\t\t\tfor (var item in ts.p.colFilters) {\n\t\t\t\tif(ts.p.colFilters.hasOwnProperty(item)) {\n\t\t\t\t\tvar si = ts.p.colFilters[item];\n\t\t\t\t\tif(!$.isEmptyObject(si)) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tfilters += \",\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"{\\\"groupOp\\\": \\\"\"+si.rule +\"\\\", \\\"rules\\\" : [\";\n\t\t\t\t\t\tfilters += \"{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper1 + \"\\\",\";\n\t\t\t\t\t\tsi.value1 +=\"\";\n\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value1.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tif(si.value2) {\n\t\t\t\t\t\t\tfilters += \",{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper2 + \"\\\",\";\n\t\t\t\t\t\t\tsi.value2 +=\"\";\n\t\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value2.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"]}\";\n\t\t\t\t\t\ti++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//console.log('empty object');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfilters += \"]}\";\n\t\t\treturn filters;\n\t\t},\n\t\tbuildGrouping = function( index, isgroup ) {\n\t\t\tvar cm = ts.p.colModel[index],\n\t\t\t\tgroup = ts.p.groupingView;\n\t\t\tif(isgroup !== -1) {\n\t\t\t\tgroup.groupField.splice(isgroup,1);\n\t\t\t} else {\n\t\t\t\tgroup.groupField.push( cm.name);\n\t\t\t}\n\t\t\t$(ts).jqGrid('groupingGroupBy', group.groupField );\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t}\n\t\t},\n\t\tbuildFreeze = function( index, isfreeze ) {\n\t\t\tvar cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel;\n\t\t\tfor(i=0; i < len; i++) {\n\t\t\t\tif(cm[i].frozen) {\n\t\t\t\t\tlastfrozen = i;\n\t\t\t\t}\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\t\t// from position index to lastfrozen+1\n\t\t\tcols.splice( index, 1);\n\t\t\tcols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index);\n\t\t\tcm[index].frozen = isfreeze;\n\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t},\n\t\tbuildColMenu = function( index, left, top ){\n\t\t\t//$(\"#sopt_menu\").remove();\n\t\t\tleft=parseInt(left,10);\n\t\t\ttop=parseInt(top,10) + 25;\n\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\tvar str = '<ul id=\"column_menu\" class=\"ui-search-menu modal-content column-menu\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\tcm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions),\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tisgroup, isfreeze; // ???\n\t\t\t// sorting\n\t\t\tif(op.sorting) {\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortasc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_asc+'\"></span></td><td class=\"menu_text\">'+texts.sortasc+'</td></tr></table></a></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortdesc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_desc+'\"></span></td><td class=\"menu_text\">'+texts.sortdesc+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.columns) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"columns\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_columns+'\"></span></td><td class=\"menu_text\">'+texts.columns+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.filtering) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"filtering\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_filter+'\"></span></td><td class=\"menu_text\">'+texts.filter + ' ' +(cm.label || cm.name)+'</td></tr></table></a></li>';\t\t\t\n\t\t\t}\n\t\t\tif(op.grouping) {\n\t\t\t\tisgroup = $.inArray(cm.name, ts.p.groupingView.groupField);\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"grouping\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_group+'\"></span></td><td class=\"menu_text\">'+(isgroup !== -1 ?  texts.ungrouping: texts.grouping + ' ' + (cm.label || cm.name))+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.freeze) {\n\t\t\t\tisfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true;\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"freeze\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_freeze+'\"></span></td><td class=\"menu_text\">'+(isfreeze ? (texts.freeze + \" \"+(cm.label || cm.name)) : texts.unfreeze)+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tstr += \"</ul>\";\n\t\t\t$('body').append( str );\n\t\t\t$(\"#column_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\tvar wcm = $(\"#column_menu\").width() + 26;\n\t\t\t\t$(\"#column_menu\").css(\"left\", left- wcm);\n\t\t\t}\n\t\t\t$(\"#column_menu > li > a\").hover(\n\t\t\t\tfunction(){\n\t\t\t\t\t$(\"#col_menu\").remove();\n\t\t\t\t\t$(\"#search_menu\").remove();\n\t\t\t\t\tvar left1, top1;\n\t\t\t\t\tif($(this).attr(\"value\") === 'columns') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildColItems(top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\tif($(this).attr(\"value\") === 'filtering') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildSearchBox(index, top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\t$(this).addClass(hover); \n\t\t\t\t},\n\t\t\t\tfunction(){ $(this).removeClass(hover); }\n\t\t\t).click(function(){\n\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\tsobj = ts.grid.headers[index].el;\n\t\t\t\tif(v === 'sortasc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'asc', sobj);\n\t\t\t\t} else if(v === 'sortdesc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'desc', sobj);\n\t\t\t\t} else if (v === 'grouping') {\n\t\t\t\t\tbuildGrouping(index, isgroup);\n\t\t\t\t} else if( v==='freeze') {\n\t\t\t\t\tbuildFreeze( index, isfreeze);\n\t\t\t\t}\n\t\t\t\tif(v.indexOf('sort') !== -1 || v === 'grouping' || v==='freeze') {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tcolTemplate;\n\t\tif(ts.p.colMenu) {\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).closest(\".column-menu\").length) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.p.id = this.id;\n\t\tif ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;}\n\t\tts.p.keyName=false;\n\t\tfor (i=0; i<ts.p.colModel.length;i++) {\n\t\t\tcolTemplate = typeof ts.p.colModel[i].template === \"string\" ?\n\t\t\t\t($.jgrid.cmTemplate != null && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === \"object\" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) :\n\t\t\t\tts.p.colModel[i].template;\n\t\t\tts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]);\n\t\t\tif (ts.p.keyName === false && ts.p.colModel[i].key===true) {\n\t\t\t\tts.p.keyName = ts.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tts.p.sortorder = ts.p.sortorder.toLowerCase();\n\t\t$.jgrid.cell_width = $.jgrid.cellWidth();\n\t\tif(ts.p.grouping===true) {\n\t\t\tts.p.scroll = false;\n\t\t\tts.p.rownumbers = false;\n\t\t\t//ts.p.subGrid = false; expiremental\n\t\t\tts.p.treeGrid = false;\n\t\t\tts.p.gridview = true;\n\t\t}\n\t\tif(this.p.treeGrid === true) {\n\t\t\ttry { $(this).jqGrid(\"setTreeGrid\");} catch (_) {}\n\t\t\tif(ts.p.datatype !== \"local\") { ts.p.localReader = {id: \"_id_\"};\t}\n\t\t}\n\t\tif(this.p.subGrid) {\n\t\t\ttry { $(ts).jqGrid(\"setSubGrid\");} catch (s){}\n\t\t}\n\t\tif(this.p.multiselect) {\n\t\t\tthis.p.colNames.unshift(\"<input role='checkbox' id='cb_\"+this.p.id+\"' class='cbox' type='checkbox'/>\");\n\t\t\tthis.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true});\n\t\t}\n\t\tif(this.p.rownumbers) {\n\t\t\tthis.p.colNames.unshift(\"\");\n\t\t\tthis.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true});\n\t\t}\n\t\tts.p.xmlReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\trow: \"row\",\n\t\t\tpage: \"rows>page\",\n\t\t\ttotal: \"rows>total\",\n\t\t\trecords : \"rows>records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"[id]\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", row: \"row\", repeatitems: true, cell:\"cell\"}\n\t\t}, ts.p.xmlReader);\n\t\tts.p.jsonReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.jsonReader);\n\t\tts.p.localReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: false,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.localReader);\n\t\tif(ts.p.scroll){\n\t\t\tts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];\n\t\t}\n\t\tif(ts.p.data.length) { normalizeData(); refreshIndex(); }\n\t\tvar thead = \"<thead><tr class='ui-jqgrid-labels' role='row'>\",\n\t\ttdc, idn, w, res, sort =\"\",\n\t\ttd, ptr, tbody, imgs, iac=\"\", idc=\"\", tmpcm;\n\t\tif(ts.p.shrinkToFit===true && ts.p.forceFit===true) {\n\t\t\tfor (i=ts.p.colModel.length-1;i>=0;i--){\n\t\t\t\tif(!ts.p.colModel[i].hidden) {\n\t\t\t\t\tts.p.colModel[i].resizable=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(ts.p.viewsortcols[1] === 'horizontal') {\n\t\t\tiac=\" ui-i-asc\";\n\t\t\tidc=\" ui-i-desc\";\n\t\t} else if(ts.p.viewsortcols[1] === \"single\") { \n\t\t\tiac = \" ui-single-sort-asc\";\n\t\t\tidc = \" ui-single-sort-desc\";\n\t\t\tsort = \" style='display:none'\";\n\t\t\tts.p.viewsortcols[0] = false;\n\t\t}\n\t\ttdc = isMSIE ?  \"class='ui-th-div-ie'\" :\"\";\n\t\timgs = \"<span class='s-ico' style='display:none'>\";\n\t\timgs += \"<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc\"+iac+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_asc', true)+ \"'\" + sort + \"></span>\";\n\t\timgs += \"<span sort='desc' class='ui-grid-ico-sort ui-icon-desc\"+idc+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_desc', true)+\"'\" + sort + \"></span></span>\";\n\t\tif(ts.p.multiSort) {\n\t\t\tif(ts.p.sortname ) {\n\t\t\tsortarr = ts.p.sortname.split(\",\");\n\t\t\tfor (i=0; i < sortarr.length; i++) {\n\t\t\t\tsotmp = $.trim(sortarr[i]).split(\" \");\n\t\t\t\tsortarr[i] = $.trim(sotmp[0]);\n\t\t\t\tsortord[i] = sotmp[1] ? $.trim(sotmp[1]) : ts.p.sortorder || \"asc\";\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor(i=0;i<this.p.colNames.length;i++){\n\t\t\tvar tooltip = ts.p.headertitles ? (\" title=\\\"\"+$.jgrid.stripHtml(ts.p.colNames[i])+\"\\\"\") :\"\";\n\t\t\ttmpcm = ts.p.colModel[i];\n\t\t\tif(!tmpcm.hasOwnProperty('colmenu')) {\n\t\t\t\ttmpcm.colmenu = (tmpcm.name === \"rn\" || tmpcm.name === \"cb\" || tmpcm.name === \"subgrid\") ? false : true;\n\t\t\t}\n\t\t\tthead += \"<th id='\"+ts.p.id+\"_\" + tmpcm.name+\"' role='columnheader' \"+getstyle(stylemodule,'headerBox',false, \"ui-th-column ui-th-\"+dir)+\" \"+ tooltip+\">\";\n\t\t\tidn = tmpcm.index || tmpcm.name;\n\t\t\tthead += \"<div class='ui-th-div' id='jqgh_\"+ts.p.id+\"_\"+tmpcm.name+\"' \"+tdc+\">\"+ts.p.colNames[i];\n\t\t\tif(!tmpcm.width)  { \n\t\t\t\ttmpcm.width = 150; \n\t\t\t} else { \n\t\t\t\ttmpcm.width = parseInt(tmpcm.width,10); \n\t\t\t}\n\t\t\tif(typeof tmpcm.title !== \"boolean\") { \n\t\t\t\ttmpcm.title = true; \n\t\t\t}\n\t\t\ttmpcm.lso = \"\";\n\t\t\tif (idn === ts.p.sortname) {\n\t\t\t\tts.p.lastsort = i;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tsotmp = $.inArray(idn,sortarr);\n\t\t\t\tif( sotmp !== -1 ) {\n\t\t\t\t\ttmpcm.lso = sortord[sotmp];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthead += imgs;\n\t\t\tif(ts.p.colMenu && tmpcm.colmenu) {\n\t\t\t\tthead += \"<a class='colmenu' href='#/'><span class='colmenuspan \"+iconbase+' '+colmenustyle.icon_menu+\"'></span></a>\";\n\t\t\t}\n\t\t\tthead += \"</div></th>\";\n\t\t}\n\t\tthead += \"</tr></thead>\";\n\t\timgs = null;\n\t\ttmpcm = null;\n\t\t$(this).append(thead);\n\t\t$(\"thead tr:first th\",this).hover(\n\t\t\tfunction(){ $(this).addClass(hover);},\n\t\t\tfunction(){\t$(this).removeClass(hover);}\n\t\t);\n\t\tif(this.p.multiselect) {\n\t\t\tvar emp=[], chk;\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){\n\t\t\t\tts.p.selarrrow = [];\n\t\t\t\tvar froz = ts.p.frozenColumns === true ? ts.p.id + \"_frozen\" : \"\";\n\t\t\t\tif (this.checked) {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif (i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t$(this).addClass(highlight).attr(\"aria-selected\",\"true\");  \n\t\t\t\t\t\t\t\tts.p.selarrrow.push(this.id);\n\t\t\t\t\t\t\t\tts.p.selrow = this.id;\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tchk=true;\n\t\t\t\t\temp=[];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t$(this).removeClass(highlight).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t\t\t\temp.push(this.id);\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tts.p.selrow = null;\n\t\t\t\t\tchk=false;\n\t\t\t\t}\n\t\t\t\t$(ts).triggerHandler(\"jqGridSelectAll\", [chk ? ts.p.selarrrow : emp, chk]);\n\t\t\t\tif($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}\n\t\t\t});\n\t\t}\n\n\t\tif(ts.p.autowidth===true) {\n\t\t\tvar pw = $(eg).innerWidth();\n\t\t\tts.p.width = pw > 0?  pw: 'nw';\n\t\t}\n\t\tsetColWidth();\n\t\t$(eg).css(\"width\",grid.width+\"px\").append(\"<div class='ui-jqgrid-resize-mark' id='rs_m\"+ts.p.id+\"'>&#160;</div>\");\n\t\tif(ts.p.scrollPopUp) {\n\t\t\t$(eg).append(\"<div \"+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+\" id='scroll_g\"+ts.p.id+\"'></div>\");\n\t\t}\n\t\t$(gv).css(\"width\",grid.width+\"px\");\n\t\tthead = $(\"thead:first\",ts).get(0);\n\t\tvar\ttfoot = \"\";\n\t\tif(ts.p.footerrow) { tfoot += \"<table role='presentation' style='width:\"+ts.p.tblwidth+\"px' \"+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ \"><tbody><tr role='row' \"+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+\">\"; }\n\t\tvar thr = $(\"tr:first\",thead),\n\t\tfirstr = \"<tr class='jqgfirstrow' role='row'>\";\n\t\tts.p.disableClick=false;\n\t\t$(\"th\",thr).each(function ( j ) {\n\t\t\ttmpcm = ts.p.colModel[j];\n\t\t\tw = tmpcm.width;\n\t\t\tif(tmpcm.resizable === undefined) {\n\t\t\t\ttmpcm.resizable = true;\n\t\t\t}\n\t\t\tif(tmpcm.resizable){\n\t\t\t\tres = document.createElement(\"span\");\n\t\t\t\t$(res).html(\"&#160;\").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir)\n\t\t\t\t.css(\"cursor\",\"col-resize\");\n\t\t\t\t$(this).addClass(ts.p.resizeclass);\n\t\t\t} else {\n\t\t\t\tres = \"\";\n\t\t\t}\n\t\t\t$(this).css(\"width\",w+\"px\").prepend(res);\n\t\t\tres = null;\n\t\t\tvar hdcol = \"\";\n\t\t\tif( tmpcm.hidden ) {\n\t\t\t\t$(this).css(\"display\",\"none\");\n\t\t\t\thdcol = \"display:none;\";\n\t\t\t}\n\t\t\tfirstr += \"<td role='gridcell' style='height:0px;width:\"+w+\"px;\"+hdcol+\"'></td>\";\n\t\t\tgrid.headers[j] = { width: w, el: this };\n\t\t\tsort = tmpcm.sortable;\n\t\t\tif( typeof sort !== 'boolean') { \n\t\t\t\ttmpcm.sortable =  true; \n\t\t\t\tsort=true;\n\t\t\t}\n\t\t\tvar nm = tmpcm.name;\n\t\t\tif( !(nm === 'cb' || nm==='subgrid' || nm==='rn') ) {\n\t\t\t\tif(ts.p.viewsortcols[2]){\n\t\t\t\t\t$(\">div\",this).addClass('ui-jqgrid-sortable');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(sort) {\n\t\t\t\tif(ts.p.multiSort) {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(ts.p.colModel[j].lso){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( ts.p.colModel[j].lso) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(j===ts.p.lastsort){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(j === ts.p.lastsort && ts.p.sortname !== \"\") {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.footerrow) {\n\t\t\t\ttfoot += \"<td role='gridcell' \"+formatCol(j,0,'', null, '', false)+\">&#160;</td>\"; \n\t\t\t}\n\t\t}).mousedown(function(e) {\n\t\t\tif ($(e.target).closest(\"th>span.ui-jqgrid-resize\").length !== 1) { return; }\n\t\t\tvar ci = getColumnHeaderIndex(this);\n\t\t\tif(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}\n\t\t\tgrid.dragStart(ci, e, getOffset(ci));\n\t\t\treturn false;\n\t\t}).click(function(e) {\n\t\t\tif (ts.p.disableClick) {\n\t\t\t\tts.p.disableClick = false;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar s = \"th>div.ui-jqgrid-sortable\",r,d;\n\t\t\tif (!ts.p.viewsortcols[2]) { s = \"th>div>span>span.ui-grid-ico-sort\"; }\n\t\t\tvar t = $(e.target).closest(s);\n\t\t\tif (t.length !== 1) { return; }\n\t\t\tvar ci;\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\tvar tid =  $(this)[0].id.substring( ts.p.id.length + 1 );\n\t\t\t\t$(ts.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === tid) {\n\t\t\t\t\t\tci = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tci = getColumnHeaderIndex(this);\n\t\t\t}\n\t\t\t//\n\t\t\tif($(e.target).hasClass('colmenuspan')) {\n\t\t\t\tif($(\"#column_menu\")[0] != null) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\n\t\t\t\tvar colindex = $.jgrid.getCellIndex(e.target);\n\t\t\t\tif(colindex === -1) { return;}\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = ( offset.top);\n\t\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\t\tleft += $(this).outerWidth();\n\t\t\t\t}\n\t\t\t\tbuildColMenu(colindex, left, top, t );\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t//\n\t\t\tif (!ts.p.viewsortcols[2]) { r=true;d=t.attr(\"sort\"); }\n\t\t\tif(ci != null){\n\t\t\t\tsortData( $('div',this)[0].id, ci, r, d, this);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t\ttmpcm = null;\n\t\tif (ts.p.sortable && $.fn.sortable) {\n\t\t\ttry {\n\t\t\t\t$(ts).jqGrid(\"sortableColumns\", thr);\n\t\t\t} catch (e){}\n\t\t}\n\t\tif(ts.p.footerrow) { tfoot += \"</tr></tbody></table>\"; }\n\t\tfirstr += \"</tr>\";\n\t\ttbody = document.createElement(\"tbody\");\n\t\t//$(this).append(firstr);\n\t\tthis.appendChild(tbody);\n\t\t$(this).addClass(getstyle(stylemodule,\"rowTable\", true, 'ui-jqgrid-btable ui-common-table')).append(firstr);\n\t\t//$(firstr).insertAfter(this);\n\t\tfirstr = null;\n\t\tvar hTable = $(\"<table \"+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+\" style='width:\"+ts.p.tblwidth+\"px' role='presentation' aria-labelledby='gbox_\"+this.id+\"'></table>\").append(thead),\n\t\thg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,\n\t\thb = $(\"<div class='ui-jqgrid-hbox\" + (dir===\"rtl\" ? \"-rtl\" : \"\" )+\"'></div>\"),\n\t\tbstw = ts.p.styleUI === 'Bootstrap' && !isNaN(ts.p.height) ? 2 : 0;\n\t\tthead = null;\n\t\tgrid.hDiv = document.createElement(\"div\");\n\t\tgrid.hDiv.style.width = (grid.width - bstw) + \"px\";\n\t\tgrid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv');\n\n\t\t$(grid.hDiv).append(hb);\n\t\t$(hb).append(hTable);\n\t\thTable = null;\n\t\tif(hg) { $(grid.hDiv).hide(); }\n\t\tif(ts.p.pager){\n\t\t\t// TBD -- escape ts.p.pager here?\n\t\t\tif(typeof ts.p.pager === \"string\") {if(ts.p.pager.substr(0,1) !== \"#\") { ts.p.pager = \"#\"+ts.p.pager;} }\n\t\t\telse { ts.p.pager = \"#\"+ $(ts.p.pager).attr(\"id\");}\n\t\t\t$(ts.p.pager).css({width: grid.width+\"px\"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg);\n\t\t\tif(hg) {$(ts.p.pager).hide();}\n\t\t\tsetPager(ts.p.pager,'');\n\t\t}\n\t\tif( ts.p.cellEdit === false && ts.p.hoverrows === true) {\n\t\t\t$(ts).on({\n\t\t\t\tmouseover: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t$(ptr).addClass(hover);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmouseout: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t$(ptr).removeClass(hover);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tvar ri,ci, tdHtml;\n\t\t$(ts).before(grid.hDiv).on({\n\t\t\t'click': function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest(\"table.ui-jqgrid-btable\").attr('id') || '').replace(\"_frozen\",\"\") !== ts.id ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tvar scb = $(td).filter(\":enabled\").hasClass(\"cbox\"),\n\t\t\t\tcSel = $(ts).triggerHandler(\"jqGridBeforeSelectRow\", [ptr[0].id, e]);\n\t\t\t\tcSel = (cSel === false || cSel === 'stop') ? false : true;\n\t\t\t\tif ($.isFunction(ts.p.beforeSelectRow)) {\n\t\t\t\t\tvar allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e);\n\t\t\t\t\tif (allowRowSelect === false || allowRowSelect === 'stop') {\n\t\t\t\t\t\tcSel = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && !scb) ) { return; }\n\t\t\t\tri = ptr[0].id;\n\t\t\t\ttd = $(td).closest(\"tr.jqgrow>td\");\n\t\t\t\tif (td.length > 0) {\n\t\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\t\ttdHtml = $(td).closest(\"td,th\").html();\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridCellSelect\", [ri,ci,tdHtml,e]);\n\t\t\t\t\tif($.isFunction(ts.p.onCellSelect)) {\n\t\t\t\t\t\tts.p.onCellSelect.call(ts,ri,ci,tdHtml,e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.cellEdit === true) {\n\t\t\t\t\tif(ts.p.multiselect && scb && cSel){\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\", ri ,true,e);\n\t\t\t\t\t} else if (td.length > 0) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$(ts).jqGrid(\"editCell\", ptr[0].rowIndex, ci, true);\n\t\t\t\t\t\t} catch (_) {}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!cSel) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( !ts.p.multikey ) {\n\t\t\t\t\tif(ts.p.multiselect && ts.p.multiboxonly) {\n\t\t\t\t\t\tif(scb){$(ts).jqGrid(\"setSelection\",ri,true,e);}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar frz = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\t\t\t\t\t$(ts.p.selarrrow).each(function(i,n){\n\t\t\t\t\t\t\t\tvar trid = $(ts).jqGrid('getGridRowById',n);\n\t\t\t\t\t\t\t\tif(trid) { \n\t\t\t\t\t\t\t\t\t$( trid ).removeClass(highlight); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz)).removeClass(highlight);\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tts.p.selarrrow = [];\n\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(e[ts.p.multikey]) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t} else if(ts.p.multiselect && scb) {\n\t\t\t\t\t\tscb = $(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri).is(\":checked\");\n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", !scb);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'reloadGrid': function(e,opts) {\n\t\t\t\tif(ts.p.treeGrid ===true) {\tts.p.datatype = ts.p.treedatatype;}\n\t\t\t\topts = opts || {};\n\t\t\t\tif (opts.current) {\n\t\t\t\t\tts.grid.selectionPreserver(ts);\n\t\t\t\t}\n\t\t\t\tif(ts.p.datatype===\"local\"){ $(ts).jqGrid(\"resetSelection\");  if(ts.p.data.length) { normalizeData(); refreshIndex();} }\n\t\t\t\telse if(!ts.p.treeGrid) {\n\t\t\t\t\tts.p.selrow=null;\n\t\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[];setHeadCheckBox(false);}\n\t\t\t\t\tts.p.savedRow = [];\n\t\t\t\t}\n\t\t\t\tif(ts.p.scroll) {emptyRows.call(ts, true, false);}\n\t\t\t\tif (opts.page) {\n\t\t\t\t\tvar page = opts.page;\n\t\t\t\t\tif (page > ts.p.lastpage) { page = ts.p.lastpage; }\n\t\t\t\t\tif (page < 1) { page = 1; }\n\t\t\t\t\tts.p.page = page;\n\t\t\t\t\tif (ts.grid.prevRowHeight) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) {\n\t\t\t\t\tdelete ts.p.lastpage;\n\t\t\t\t\tts.grid.populateVisible();\n\t\t\t\t} else {\n\t\t\t\t\tts.grid.populate();\n\t\t\t\t}\n\t\t\t\tif(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t'dblclick' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar dbcr = $(ts).triggerHandler(\"jqGridDblClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\tif ($.isFunction(ts.p.ondblClickRow)) { \n\t\t\t\t\tdbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\t}\n\t\t\t},\n\t\t\t'contextmenu' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tif(!ts.p.multiselect) {\t$(ts).jqGrid(\"setSelection\",ptr[0].id,true,e);\t}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar rcr = $(ts).triggerHandler(\"jqGridRightClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\tif ($.isFunction(ts.p.onRightClickRow)) { \n\t\t\t\t\trcr = ts.p.onRightClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t//---\n\t\tgrid.bDiv = document.createElement(\"div\");\n\t\tif(isMSIE) { if(String(ts.p.height).toLowerCase() === \"auto\") { ts.p.height = \"100%\"; } }\n\t\t$(grid.bDiv)\n\t\t\t.append($('<div style=\"position:relative;\"></div>').append('<div></div>').append(this))\n\t\t\t.addClass(\"ui-jqgrid-bdiv\")\n\t\t\t.css({ height: ts.p.height+(isNaN(ts.p.height)?\"\":\"px\"), width: (grid.width - bstw)+\"px\"})\n\t\t\t.scroll(grid.scrollGrid);\n\t\t$(\"table:first\",grid.bDiv).css({width:ts.p.tblwidth+\"px\"});\n\t\tif( !$.support.tbody ) { //IE\n\t\t\tif( $(\"tbody\",this).length === 2 ) { $(\"tbody:gt(0)\",this).remove();}\n\t\t}\n\t\tif(ts.p.multikey){\n\t\t\tif( $.jgrid.msie()) {\n\t\t\t\t$(grid.bDiv).on(\"selectstart\",function(){return false;});\n\t\t\t} else {\n\t\t\t\t$(grid.bDiv).on(\"mousedown\",function(){return false;});\n\t\t\t}\n\t\t}\n\t\tif(hg) { // hidden grid\n\t\t\t$(grid.bDiv).hide();\n\t\t}\n\t\tvar icoo =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_open', true),\n\t\ticoc =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_close', true);\n\t\tgrid.cDiv = document.createElement(\"div\");\n\t\tvar arf = ts.p.hidegrid===true ? $(\"<a role='link' class='ui-jqgrid-titlebar-close HeaderButton \"+cornerall+\"' title='\"+($.jgrid.getRegional(ts, \"defaults.showhide\", ts.p.showhide) || \"\")+\"'\" + \" />\").hover(\n\t\t\tfunction(){ arf.addClass(hover);},\n\t\t\tfunction() {arf.removeClass(hover);})\n\t\t.append(\"<span class='ui-jqgrid-headlink \" + icoo +\"'></span>\").css((dir===\"rtl\"?\"left\":\"right\"),\"0px\") : \"\";\n\t\t$(grid.cDiv).append(arf).append(\"<span class='ui-jqgrid-title'>\"+ts.p.caption+\"</span>\")\n\t\t.addClass(\"ui-jqgrid-titlebar ui-jqgrid-caption\"+(dir===\"rtl\" ? \"-rtl\" :\"\" )+\" \"+getstyle(stylemodule,'gridtitleBox',true));\n\t\t$(grid.cDiv).insertBefore(grid.hDiv);\n\t\tif( ts.p.toolbar[0] ) {\n\t\t\tvar tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata');\n\t\t\tgrid.uDiv = document.createElement(\"div\");\n\t\t\tif(ts.p.toolbar[1] === \"top\") {$(grid.uDiv).insertBefore(grid.hDiv);}\n\t\t\telse if (ts.p.toolbar[1]===\"bottom\" ) {$(grid.uDiv).insertAfter(grid.hDiv);}\n\t\t\tif(ts.p.toolbar[1]===\"both\") {\n\t\t\t\tgrid.ubDiv = document.createElement(\"div\");\n\t\t\t\t$(grid.uDiv).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw);\n\t\t\t\t$(grid.ubDiv).addClass( tbstyle + \" ui-userdata-bottom\").attr(\"id\",\"tb_\"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw);\n\t\t\t\tif(hg)  {$(grid.ubDiv).hide();}\n\t\t\t} else {\n\t\t\t\t$(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id);\n\t\t\t}\n\t\t\tif(hg) {$(grid.uDiv).hide();}\n\t\t}\n\t\tif(ts.p.toppager) {\n\t\t\tts.p.toppager = $.jgrid.jqID(ts.p.id)+\"_toppager\";\n\t\t\tgrid.topDiv = $(\"<div id='\"+ts.p.toppager+\"'></div>\")[0];\n\t\t\tts.p.toppager = \"#\"+ts.p.toppager;\n\t\t\t$(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv);\n\t\t\tsetPager(ts.p.toppager,'_t');\n\t\t}\n\t\tif(ts.p.footerrow) {\n\t\t\tgrid.sDiv = $(\"<div class='ui-jqgrid-sdiv'></div>\")[0];\n\t\t\thb = $(\"<div class='ui-jqgrid-hbox\"+(dir===\"rtl\"?\"-rtl\":\"\")+\"'></div>\");\n\t\t\t$(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);\n\t\t\t$(hb).append(tfoot);\n\t\t\tgrid.footers = $(\".ui-jqgrid-ftable\",grid.sDiv)[0].rows[0].cells;\n\t\t\tif(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); }\n\t\t\tif(hg) {$(grid.sDiv).hide();}\n\t\t}\n\t\thb = null;\n\t\tif(ts.p.caption) {\n\t\t\tvar tdt = ts.p.datatype;\n\t\t\tif(ts.p.hidegrid===true) {\n\t\t\t\t$(\".ui-jqgrid-titlebar-close\",grid.cDiv).click( function(e){\n\t\t\t\t\tvar onHdCl = $.isFunction(ts.p.onHeaderClick),\n\t\t\t\t\telems = \".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv\",\n\t\t\t\t\tcounter, self = this;\n\t\t\t\t\tif(ts.p.toolbar[0]===true) {\n\t\t\t\t\t\tif( ts.p.toolbar[1]==='both') {\n\t\t\t\t\t\t\telems += ', #' + $(grid.ubDiv).attr('id');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telems += ', #' + $(grid.uDiv).attr('id');\n\t\t\t\t\t}\n\t\t\t\t\tcounter = $(elems,\"#gview_\"+$.jgrid.jqID(ts.p.id)).length;\n\n\t\t\t\t\tif(ts.p.gridstate === 'visible') {\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideUp(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoo).addClass(icoc);\n\t\t\t\t\t\t\t\tts.p.gridstate = 'hidden';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hide(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if(ts.p.gridstate === 'hidden'){\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideDown(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoc).addClass(icoo);\n\t\t\t\t\t\t\t\tif(hg) {ts.p.datatype = tdt;populate();hg=false;}\n\t\t\t\t\t\t\t\tts.p.gridstate = 'visible';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).show(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(hg) {ts.p.datatype=\"local\"; $(\".ui-jqgrid-titlebar-close\",grid.cDiv).trigger(\"click\");}\n\t\t\t}\n\t\t} else {\n\t\t\t$(grid.cDiv).hide();\n\t\t\tif(!ts.p.toppager) {\n\t\t\t\t$(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true));\n\t\t\t}\n\t\t}\n\t\t$(grid.hDiv).after(grid.bDiv)\n\t\t.mousemove(function (e) {\n\t\t\tif(grid.resizing){grid.dragMove(e);return false;}\n\t\t});\n\t\t$(\".ui-jqgrid-labels\",grid.hDiv).on(\"selectstart\", function () { return false; });\n\t\t$(document).on( \"mouseup.jqGrid\" + ts.p.id, function () {\n\t\t\tif(grid.resizing) {\tgrid.dragEnd( true ); return false;}\n\t\t\treturn true;\n\t\t});\n\t\tif(ts.p.direction === 'rtl') {\n\t\t\t$(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){\n\t\t\t\t\tvar  vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth;\n\t\t\t\t\t//gridhbox = $(\"div:first\",grid.hDiv);\n\t\t\t\t\tts.p.scrollOffset = vScrollWidth;\n\t\t\t\t\t// for future implementation\n\t\t\t\t\t//if (gridhbox.hasClass(\"ui-jqgrid-hbox-rtl\")) {\n\t\t\t\t\t\t$(\"div:first\",grid.hDiv).css({paddingLeft: vScrollWidth + \"px\"});\n\t\t\t\t\t//} else {\n\t\t\t\t\t\t//gridhbox.css({paddingRight: vScrollWidth + \"px\"});\n\t\t\t\t\t//}\n\t\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t});\n\t\t}\n\t\tts.formatCol = formatCol;\n\t\tts.sortData = sortData;\n\t\tts.updatepager = updatepager;\n\t\tts.refreshIndex = refreshIndex;\n\t\tts.setHeadCheckBox = setHeadCheckBox;\n\t\tts.constructTr = constructTr;\n\t\tts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};\n\t\t$.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq});\n\t\tthis.grid = grid;\n\t\tts.addXmlData = function(d) {addXmlData( d );};\n\t\tts.addJSONData = function(d) {addJSONData( d );};\n\t\tts.addLocalData = function(d) { return addLocalData( d );};\n\t\tthis.grid.cols = this.rows[0].cells;\n\t\t$(ts).triggerHandler(\"jqGridInitGrid\");\n\t\tif ($.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); }\n\t\tpopulate();\n\t\tts.p.hiddengrid=false;\n\t\tif(ts.p.responsive) {\n\t\t\tvar supportsOrientationChange = \"onorientationchange\" in window,\n\t\t\torientationEvent = supportsOrientationChange ? \"orientationchange\" : \"resize\";\t\t\n\t\t\t$(window).on( orientationEvent, function(){\n\t\t\t\t$(ts).jqGrid('resizeGrid');\n\t\t\t});\n\t\t}\n\t});\n};\n$.jgrid.extend({\n\tgetGridParam : function(name, module) {\n\t\tvar $t = this[0], ret;\n\t\tif (!$t || !$t.grid) {return;}\n\t\tif(module === undefined && typeof module !== 'string') {\n\t\t\tmodule = 'jqGrid'; //$t.p\n\t\t}\n\t\tret = $t.p;\n\t\tif(module !== 'jqGrid') {\n\t\t\ttry {\n\t\t\t\tret = $($t).data( module );\n\t\t\t} catch (e) {\n\t\t\t\tret = $t.p;\n\t\t\t}\n\t\t}\n\t\tif (!name) { return ret; }\t\n\t\treturn ret[name] !== undefined ? ret[name] : null;\n\t},\n\tsetGridParam : function (newParams, overwrite){\n\t\treturn this.each(function(){\n\t\t\tif(overwrite == null) {\n\t\t\t\toverwrite = false;\n\t\t\t}\n\t\t\tif (this.grid && typeof newParams === 'object') {\n\t\t\t\tif(overwrite === true) {\n\t\t\t\t\tvar params = $.extend({}, this.p, newParams);\n\t\t\t\t\tthis.p = params;\n\t\t\t\t} else {\n\t\t\t\t\t$.extend(true,this.p,newParams);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetGridRowById: function ( rowid ) {\n\t\tvar row;\n\t\tthis.each( function(){\n\t\t\ttry {\n\t\t\t\t//row = this.rows.namedItem( rowid );\n\t\t\t\tvar i = this.rows.length;\n\t\t\t\twhile(i--) {\n\t\t\t\t\tif( rowid.toString() === this.rows[i].id) {\n\t\t\t\t\t\trow = this.rows[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch ( e ) {\n\t\t\t\trow = $(this.grid.bDiv).find( \"#\" + $.jgrid.jqID( rowid ));\n\t\t\t}\n\t\t});\n\t\treturn row;\n\t},\n\tgetDataIDs : function () {\n\t\tvar ids=[], i=0, len, j=0;\n\t\tthis.each(function(){\n\t\t\tlen = this.rows.length;\n\t\t\tif(len && len>0){\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($(this.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\tids[j] = this.rows[i].id;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ids;\n\t},\n\tsetSelection : function(selection,onsr, e) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, stat,pt, ner, ia, tpsr, fid, csr,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle($t.p.styleUI+'.common','highlight', true),\n\t\t\tdisabled = getstyle($t.p.styleUI+'.common','disabled', true);\n\t\t\tif(selection === undefined) { return; }\n\t\t\tonsr = onsr === false ? false : true;\n\t\t\tpt=$($t).jqGrid('getGridRowById', selection);\n\t\t\tif(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; }\n\t\t\tfunction scrGrid(iR){\n\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\trpos = $($t.rows[iR]).position().top,\n\t\t\t\trh = $t.rows[iR].clientHeight;\n\t\t\t\tif(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }\n\t\t\t\telse if(rpos < ch+st) {\n\t\t\t\t\tif(rpos < st) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = rpos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.scrollrows===true) {\n\t\t\t\tner = $($t).jqGrid('getGridRowById',selection).rowIndex;\n\t\t\t\tif(ner >=0 ){\n\t\t\t\t\tscrGrid(ner);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.frozenColumns === true ) {\n\t\t\t\tfid = $t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(!$t.p.multiselect) {\t\n\t\t\t\tif(pt.className !== \"ui-subgrid\") {\n\t\t\t\t\tif( $t.p.selrow !== pt.id ) {\n\t\t\t\t\t\tcsr = $($t).jqGrid('getGridRowById', $t.p.selrow);\n\t\t\t\t\t\tif( csr ) {\n\t\t\t\t\t\t\t$(  csr ).removeClass(highlight).attr({\"aria-selected\":\"false\", \"tabindex\" : \"-1\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(pt).addClass(highlight).attr({\"aria-selected\":\"true\", \"tabindex\" : \"0\"});//.focus();\n\t\t\t\t\t\tif(fid) {\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstat = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\t\tif( onsr ) { \n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//unselect selectall checkbox when deselecting a specific row\n\t\t\t\t$t.setHeadCheckBox( false );\n\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\tia = $.inArray($t.p.selrow,$t.p.selarrrow);\n\t\t\t\tif (  ia === -1 ){\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).addClass(highlight).attr(\"aria-selected\",\"true\");}\n\t\t\t\t\tstat = true;\n\t\t\t\t\t$t.p.selarrrow.push($t.p.selrow);\n\t\t\t\t} else {\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).removeClass(highlight).attr(\"aria-selected\",\"false\");}\n\t\t\t\t\tstat = false;\n\t\t\t\t\t$t.p.selarrrow.splice(ia,1);\n\t\t\t\t\ttpsr = $t.p.selarrrow[0];\n\t\t\t\t\t$t.p.selrow = (tpsr === undefined) ? null : tpsr;\n\t\t\t\t}\n\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\tif(fid) {\n\t\t\t\t\tif(ia === -1) {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\t}\n\t\t\t\tif( onsr ) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tresetSelection : function( rowid ){\n\t\treturn this.each(function(){\n\t\t\tvar t = this, sr, fid,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle(t.p.styleUI+'.common','highlight', true),\n\t\t\thover = getstyle(t.p.styleUI+'.common','hover', true);\n\t\t\tif( t.p.frozenColumns === true ) {\n\t\t\t\tfid = t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(rowid !== undefined ) {\n\t\t\t\tsr = rowid === t.p.selrow ? t.p.selrow : rowid;\n\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(sr)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\tif (fid) { $(\"#\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\tif(t.p.multiselect) {\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { $(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false); }\n\t\t\t\t\tt.setHeadCheckBox( false);\n\t\t\t\t\tvar ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow);\n\t\t\t\t\tif (  ia !== -1 ){\n\t\t\t\t\t\tt.p.selarrrow.splice(ia,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); }\n\t\t\t\tsr = null;\n\t\t\t} else if(!t.p.multiselect) {\n\t\t\t\tif(t.p.selrow) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\tif(fid) { $(\"#\"+$.jgrid.jqID(t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); }\n\t\t\t\t\tt.p.selrow = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$(t.p.selarrrow).each(function(i,n){\n\t\t\t\t\t$( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { \n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); \n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t}\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); }\n\t\t\t\t});\n\t\t\t\tt.setHeadCheckBox( false );\n\t\t\t\tt.p.selarrrow = [];\n\t\t\t\tt.p.selrow = null;\n\t\t\t}\n\t\t\tif(t.p.cellEdit === true) {\n\t\t\t\tif(parseInt(t.p.iCol,10)>=0  && parseInt(t.p.iRow,10)>=0) {\n\t\t\t\t\t$(\"td:eq(\"+t.p.iCol+\")\",t.rows[t.p.iRow]).removeClass(\"edit-cell \" + highlight );\n\t\t\t\t\t$(t.rows[t.p.iRow]).removeClass(\"selected-row \" + hover );\n\t\t\t\t}\n\t\t\t}\n\t\t\tt.p.savedRow = [];\n\t\t});\n\t},\n\tgetRowData : function( rowid, usedata ) {\n\t\tvar res = {}, resall, getall=false, len, j=0;\n\t\tthis.each(function(){\n\t\t\tvar $t = this,nm,ind;\n\t\t\tif(rowid == null) {\n\t\t\t\tgetall = true;\n\t\t\t\tresall = [];\n\t\t\t\tlen = $t.rows.length-1;\n\t\t\t} else {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(!ind) { return res; }\n\t\t\t\tlen = 1;\n\t\t\t}\n\t\t\tif( !(usedata && usedata === true && $t.p.data.length > 0)  ) {\n\t\t\t\tusedata = false;\n\t\t\t}\n\t\t\twhile(j<len){\n\t\t\t\tif(getall) { \n\t\t\t\t\tind = $t.rows[j+1];  // ignore first not visible row\n\t\t\t\t}\n\t\t\t\tif( $(ind).hasClass('jqgrow') ) {\n\t\t\t\t\tif(usedata) {\n\t\t\t\t\t\tres = $t.p.data[$t.p._index[ind.id]]; \n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\t\t\tif($t.p.treeGrid===true && nm === $t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(\"span:first\",this).html());\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(getall) { resall.push(res); res={}; }\n\t\t\t\t}\n\t\t\t\tj++;\n\t\t\t}\n\t\t});\n\t\treturn resall || res;\n\t},\n\tdelRowData : function(rowid) {\n\t\tvar success = false, rowInd, ia, nextRow;\n\t\tthis.each(function() {\n\t\t\tvar $t = this;\n\t\t\trowInd = $($t).jqGrid('getGridRowById', rowid);\n\t\t\tif(!rowInd) {return false;}\n\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\tnextRow = $(rowInd).next();\n\t\t\t\t\tif(nextRow.hasClass('ui-subgrid')) {\n\t\t\t\t\t\tnextRow.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(rowInd).remove();\n\t\t\t\t$t.p.records--;\n\t\t\t\t$t.p.reccount--;\n\t\t\t\t$t.updatepager(true,false);\n\t\t\t\tsuccess=true;\n\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\tia = $.inArray(rowid,$t.p.selarrrow);\n\t\t\t\t\tif(ia !== -1) { $t.p.selarrrow.splice(ia,1);}\n\t\t\t\t}\n\t\t\t\tif ($t.p.multiselect && $t.p.selarrrow.length > 0) {\n\t\t\t\t\t$t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1];\n\t\t\t\t} else {\n\t\t\t\t\tif( $t.p.selrow === rowid ) {\n\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tif($t.p.datatype === 'local') {\n\t\t\t\tvar id = $.jgrid.stripPref($t.p.idPrefix, rowid),\n\t\t\t\tpos = $t.p._index[id];\n\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t$t.p.data.splice(pos,1);\n\t\t\t\t\t$t.refreshIndex();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( $t.p.altRows === true && success ) {\n\t\t\t\tvar cn = $t.p.altclass;\n\t\t\t\t$($t.rows).each(function(i){\n\t\t\t\t\tif(i % 2 === 1) { $(this).addClass(cn); }\n\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\tsetRowData : function(rowid, data, cssp) {\n\t\tvar nm, success=true, title;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid) {return false;}\n\t\t\tvar t = this, vl, ind, cp = typeof cssp, lcdata={};\n\t\t\tind = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(!ind) { return false; }\n\t\t\tif( data ) {\n\t\t\t\ttry {\n\t\t\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\tvar dval =$.jgrid.getAccessor(data,nm);\n\t\t\t\t\t\tif( dval !== undefined) {\n\t\t\t\t\t\t\tlcdata[nm] = this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval;\n\t\t\t\t\t\t\tvl = t.formatter( rowid, lcdata[nm], i, data, 'edit');\n\t\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm === t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tvar id = $.jgrid.stripPref(t.p.idPrefix, rowid),\n\t\t\t\t\t\tpos = t.p._index[id], key;\n\t\t\t\t\t\tif(t.p.treeGrid) {\n\t\t\t\t\t\t\tfor(key in t.p.treeReader){\n\t\t\t\t\t\t\t\tif(t.p.treeReader.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tdelete lcdata[t.p.treeReader[key]];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t\t\tt.p.data[pos] = $.extend(true, t.p.data[pos], lcdata);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlcdata = null;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tsuccess = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(success) {\n\t\t\t\tif(cp === 'string') {$(ind).addClass(cssp);} else if(cssp !== null && cp === 'object') {$(ind).css(cssp);}\n\t\t\t\t$(t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\taddRowData : function(rowid,rdata,pos,src) {\n\t\tif($.inArray( pos, [\"first\", \"last\", \"before\", \"after\"] ) === -1) {pos = \"last\";}\n\t\tvar success = false, nm, row, rnc=\"\", msc=\"\", gi, si, ni,sind, i, v, prp=\"\", aradd, cnm, cn, data, cm, id;\n\t\tif(rdata) {\n\t\t\tif($.isArray(rdata)) {\n\t\t\t\taradd=true;\n\t\t\t\t//pos = \"last\";\n\t\t\t\tcnm = rowid;\n\t\t\t} else {\n\t\t\t\trdata = [rdata];\n\t\t\t\taradd = false;\n\t\t\t}\n\t\t\tthis.each(function() {\n\t\t\t\tvar t = this, datalen = rdata.length;\n\t\t\t\tni = t.p.rownumbers===true ? 1 :0;\n\t\t\t\tgi = t.p.multiselect ===true ? 1 :0;\n\t\t\t\tsi = t.p.subGrid===true ? 1 :0;\n\t\t\t\tif(!aradd) {\n\t\t\t\t\tif(rowid !== undefined) { rowid = String(rowid);}\n\t\t\t\t\telse {\n\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\tif(t.p.keyName !== false) {\n\t\t\t\t\t\t\tcnm = t.p.keyName;\n\t\t\t\t\t\t\tif(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcn = t.p.altclass;\n\t\t\t\tvar k = 0, cna = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {}, classes,\n\t\t\t\tair = $.isFunction(t.p.afterInsertRow) ? true : false;\n\t\t\t\tif(ni) {\n\t\t\t\t\trnc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rownumBox', false, 'jqgrid-rownum');\n\t\t\t\t}\n\t\t\t\tif(gi) {\n\t\t\t\t\tmsc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'multiBox', false, 'cbox');\n\t\t\t\t}\n\t\t\t\twhile(k < datalen) {\n\t\t\t\t\tdata = rdata[k];\n\t\t\t\t\trow=[];\n\t\t\t\t\tclasses = cna;\n\t\t\t\t\tif(aradd) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trowid = data[cnm];\n\t\t\t\t\t\t\tif(rowid===undefined) {\n\t\t\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {rowid = $.jgrid.randId();}\n\t\t\t\t\t\tclasses += (t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? \" \" + cn : \"\" : \"\");\n\t\t\t\t\t}\n\t\t\t\t\tid = rowid;\n\t\t\t\t\trowid  = t.p.idPrefix + rowid;\n\t\t\t\t\tif(ni){\n\t\t\t\t\t\tprp = t.formatCol(0,1,'',null,rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \" + rnc +\" \"+prp+\">0</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(gi) {\n\t\t\t\t\t\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+t.p.id+\"_\"+rowid+\"\\\" \"+msc+\"/>\";\n\t\t\t\t\t\tprp = t.formatCol(ni,1,'', null, rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(si) {\n\t\t\t\t\t\trow[row.length] = $(t).jqGrid(\"addSubGridCell\",gi+ni,1);\n\t\t\t\t\t}\n\t\t\t\t\tfor(i = gi+si+ni; i < t.p.colModel.length;i++){\n\t\t\t\t\t\tcm = t.p.colModel[i];\n\t\t\t\t\t\tnm = cm.name;\n\t\t\t\t\t\tlcdata[nm] = data[nm];\n\t\t\t\t\t\tv = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data );\n\t\t\t\t\t\tprp = t.formatCol(i,1,v, data, rowid, lcdata);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\trow.unshift( t.constructTr(rowid, false, classes, lcdata, data ) );\n\t\t\t\t\trow[row.length] = \"</tr>\";\n\t\t\t\t\tif(t.rows.length === 0){\n\t\t\t\t\t\t$(\"table:first\",t.grid.bDiv).append(row.join(''));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch (pos) {\n\t\t\t\t\t\t\tcase 'last':\n\t\t\t\t\t\t\t\t$(t.rows[t.rows.length-1]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = t.rows.length-1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'first':\n\t\t\t\t\t\t\t\t$(t.rows[0]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif (sind) {\n\t\t\t\t\t\t\t\t\tif($(t.rows[sind.rowIndex+1]).hasClass(\"ui-subgrid\")) { $(t.rows[sind.rowIndex+1]).after(row); }\n\t\t\t\t\t\t\t\t\telse { $(sind).after(row.join('')); }\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex + 1;\n\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif(sind) {\n\t\t\t\t\t\t\t\t\t$(sind).before(row.join(''));\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex - 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(t.p.subGrid===true) {\n\t\t\t\t\t\t$(t).jqGrid(\"addSubGrid\",gi+ni, sind);\n\t\t\t\t\t}\n\t\t\t\t\tt.p.records++;\n\t\t\t\t\tt.p.reccount++;\n\t\t\t\t\t$(t).triggerHandler(\"jqGridAfterInsertRow\", [rowid,data,data]);\n\t\t\t\t\tif(air) { t.p.afterInsertRow.call(t,rowid,data,data); }\n\t\t\t\t\tk++;\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tlcdata[t.p.localReader.id] = id;\n\t\t\t\t\t\tt.p._index[id] = t.p.data.length;\n\t\t\t\t\t\tt.p.data.push(lcdata);\n\t\t\t\t\t\tlcdata = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.altRows === true && !aradd) {\n\t\t\t\t\tif (pos === \"last\") {\n\t\t\t\t\t\tif ((t.rows.length-1)%2 === 0)  {$(t.rows[t.rows.length-1]).addClass(cn);}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(t.rows).each(function(i){\n\t\t\t\t\t\t\tif(i % 2 ===0) { $(this).addClass(cn); }\n\t\t\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt.updatepager(true,true);\n\t\t\t\tsuccess = true;\n\t\t\t});\n\t\t}\n\t\treturn success;\n\t},\n\tfooterData : function(action,data, format) {\n\t\tvar nm, success=false, res={}, title;\n\t\tfunction isEmpty(obj) {\n\t\t\tvar i;\n\t\t\tfor(i in obj) {\n\t\t\t\tif (obj.hasOwnProperty(i)) { return false; }\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\tif(action === undefined) { action = \"get\"; }\n\t\tif(typeof format !== \"boolean\") { format  = true; }\n\t\taction = action.toLowerCase();\n\t\tthis.each(function(){\n\t\t\tvar t = this, vl;\n\t\t\tif(!t.grid || !t.p.footerrow) {return false;}\n\t\t\tif(action === \"set\") { if(isEmpty(data)) { return false; } }\n\t\t\tsuccess=true;\n\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\tnm = this.name;\n\t\t\t\tif(action === \"set\") {\n\t\t\t\t\tif( data[nm] !== undefined) {\n\t\t\t\t\t\tvl = format ? t.formatter( \"\", data[nm], i, data, 'edit') : data[nm];\n\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t$(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html(vl).attr(title);\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t} else if(action === \"get\") {\n\t\t\t\t\tres[nm] = $(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn action === \"get\" ? res : success;\n\t},\n\tshowHideCol : function(colname,show) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif( typeof colname === 'string') {colname=[colname];}\n\t\t\tshow = show !== \"none\" ? \"\" : \"none\";\n\t\t\tvar sw = show === \"\" ? true :false,\n\t\t\tgh = $t.p.groupHeader && ($.isArray($t.p.groupHeader) || $.isFunction($t.p.groupHeader) );\n\t\t\tif(gh) { $($t).jqGrid('destroyGroupHeader', false); }\n\t\t\t$(this.p.colModel).each(function(i) {\n\t\t\t\tif ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {\n\t\t\t\t\tif($t.p.frozenColumns === true && this.frozen === true) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr[role=row]\",$t.grid.hDiv).each(function(){\n\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t});\n\t\t\t\t\t$($t.rows).each(function(){\n\t\t\t\t\t\tif (!$(this).hasClass(\"jqgroup\")) {\n\t\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.footerrow) { $(\"tr.footrow td:eq(\"+i+\")\", $t.grid.sDiv).css(\"display\", show); }\n\t\t\t\t\tcw =  parseInt(this.width,10);\n\t\t\t\t\tif(show === \"none\") {\n\t\t\t\t\t\t$t.p.tblwidth -= cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$t.p.tblwidth += cw+brd;\n\t\t\t\t\t}\n\t\t\t\t\tthis.hidden = !sw;\n\t\t\t\t\tfndh=true;\n\t\t\t\t\t$($t).triggerHandler(\"jqGridShowHideCol\", [sw,this.name,i]);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(fndh===true) {\n\t\t\t\tif($t.p.shrinkToFit === true && !isNaN($t.p.height)) { $t.p.tblwidth += parseInt($t.p.scrollOffset,10);}\n\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.p.shrinkToFit === true ? $t.p.tblwidth : $t.p.width );\n\t\t\t}\n\t\t\tif( gh )  {\n\t\t\t\tvar gHead = $.extend([],$t.p.groupHeader);\n\t\t\t\t$t.p.groupHeader = null;\n\t\t\t\tfor(var k =0; k < gHead.length; k++) {\n\t\t\t\t\t$($t).jqGrid('setGroupHeaders', gHead[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\thideCol : function (colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"none\");});\n\t},\n\tshowCol : function(colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"\");});\n\t},\n\tremapColumns : function(permutation, updateCells, keepHeader) {\n\t\tfunction resortArray(a) {\n\t\t\tvar ac;\n\t\t\tif (a.length) {\n\t\t\t\tac = $.makeArray(a);\n\t\t\t} else {\n\t\t\t\tac = $.extend({}, a);\n\t\t\t}\n\t\t\t$.each(permutation, function(i) {\n\t\t\t\ta[i] = ac[this];\n\t\t\t});\n\t\t}\n\t\tvar ts = this.get(0);\n\t\tfunction resortRows(parent, clobj) {\n\t\t\t$(\">tr\"+(clobj||\"\"), parent).each(function() {\n\t\t\t\tvar row = this;\n\t\t\t\tvar elems = $.makeArray(row.cells);\n\t\t\t\t$.each(permutation, function() {\n\t\t\t\t\tvar e = elems[this];\n\t\t\t\t\tif (e) {\n\t\t\t\t\t\trow.appendChild(e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tresortArray(ts.p.colModel);\n\t\tresortArray(ts.p.colNames);\n\t\tresortArray(ts.grid.headers);\n\t\tresortRows($(\"thead:first\", ts.grid.hDiv), keepHeader && \":not(.ui-jqgrid-labels)\");\n\t\tif (updateCells) {\n\t\t\tresortRows($(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"), \".jqgfirstrow, tr.jqgrow, tr.jqfoot\");\n\t\t}\n\t\tif (ts.p.footerrow) {\n\t\t\tresortRows($(\"tbody:first\", ts.grid.sDiv));\n\t\t}\n\t\tif (ts.p.remapColumns) {\n\t\t\tif (!ts.p.remapColumns.length){\n\t\t\t\tts.p.remapColumns = $.makeArray(permutation);\n\t\t\t} else {\n\t\t\t\tresortArray(ts.p.remapColumns);\n\t\t\t}\n\t\t}\n\t\tts.p.lastsort = $.inArray(ts.p.lastsort, permutation);\n\t\tif(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }\n\t\t$(ts).triggerHandler(\"jqGridRemapColumns\", [permutation, updateCells, keepHeader]);\n\t},\n\tsetGridWidth : function(nwidth, shrink) {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) {return;}\n\t\t\tvar $t = this, cw,\n\t\t\tinitwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI === 'Bootstrap' ? 2 : 0;\n\t\t\tif(typeof shrink !== 'boolean') {\n\t\t\t\tshrink=$t.p.shrinkToFit;\n\t\t\t}\n\t\t\tif(isNaN(nwidth)) {return;}\n\t\t\tnwidth = parseInt(nwidth,10); \n\t\t\t$t.grid.width = $t.p.width = nwidth;\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$($t.grid.bDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\t$($t.grid.hDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\tif($t.p.pager ) {\n\t\t\t\t$($t.p.pager).css(\"width\",nwidth+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toppager ) {\n\t\t\t\t$($t.p.toppager).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toolbar[0] === true){\n\t\t\t\t$($t.grid.uDiv).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t\tif($t.p.toolbar[1]===\"both\") {$($t.grid.ubDiv).css(\"width\",(nwidth - bstw)+\"px\");}\n\t\t\t}\n\t\t\tif($t.p.footerrow) { \n\t\t\t\t$($t.grid.sDiv).css(\"width\",(nwidth - bstw)+\"px\"); \n\t\t\t}\n\t\t\tif(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}\n\t\t\tif(shrink===true) {\n\t\t\t\t$.each($t.p.colModel, function() {\n\t\t\t\t\tif(this.hidden===false){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvc++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(vc  === 0) { return; }\n\t\t\t\t$t.p.tblwidth = initwidth;\n\t\t\t\taw = nwidth-brd*vc-gw;\n\t\t\t\tif(!isNaN($t.p.height)) {\n\t\t\t\t\tif($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === 1){\n\t\t\t\t\t\ths = true;\n\t\t\t\t\t\taw -= scw;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\tvar cle = $t.grid.cols.length >0;\n\t\t\t\t$.each($t.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tcw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tif (cw < 0) { return; }\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\t$t.grid.headers[i].width=cw;\n\t\t\t\t\t\t$t.grid.headers[i].el.style.width=cw+\"px\";\n\t\t\t\t\t\tif($t.p.footerrow) { $t.grid.footers[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tif(cle) { $t.grid.cols[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (!lvc) { return; }\n\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(nwidth-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\t$t.p.colModel[lvc].width += cr;\n\t\t\t\t$t.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif($t.p.tblwidth > nwidth) {\n\t\t\t\t\tvar delta = $t.p.tblwidth - parseInt(nwidth,10);\n\t\t\t\t\t$t.p.tblwidth = nwidth;\n\t\t\t\t\tcw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;\n\t\t\t\t} else {\n\t\t\t\t\tcw= $t.p.colModel[lvc].width;\n\t\t\t\t}\n\t\t\t\t$t.grid.headers[lvc].width = cw;\n\t\t\t\t$t.grid.headers[lvc].el.style.width=cw+\"px\";\n\t\t\t\tif(cle) { $t.grid.cols[lvc].style.width = cw+\"px\"; }\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$t.grid.footers[lvc].style.width = cw+\"px\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.tblwidth) {\n\t\t\t\t$('table:first',$t.grid.bDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$('table:first',$t.grid.hDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$('table:first',$t.grid.sDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsetGridHeight : function (nh) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar bDiv = $($t.grid.bDiv);\n\t\t\tbDiv.css({height: nh+(isNaN(nh)?\"\":\"px\")});\n\t\t\tif($t.p.frozenColumns === true){\n\t\t\t\t//follow the original set height to use 16, better scrollbar width detection\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+\"_frozen\").parent().height(bDiv.height() - 16);\n\t\t\t}\n\t\t\t$t.p.height = nh;\n\t\t\tif ($t.p.scroll) { $t.grid.populateVisible(); }\n\t\t});\n\t},\n\tsetCaption : function (newcap){\n\t\treturn this.each(function(){\n\t\t\tvar ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+\".common\",'cornertop', true);\n\t\t\tthis.p.caption=newcap;\n\t\t\t$(\".ui-jqgrid-title, .ui-jqgrid-title-rtl\",this.grid.cDiv).html(newcap);\n\t\t\t$(this.grid.cDiv).show();\n\t\t\t$(this.grid.hDiv).removeClass(ctop);\n\t\t});\n\t},\n\tsetLabel : function(colname, nData, prop, attrp ){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { return; }\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif (nData){\n\t\t\t\t\tvar ico = $(\".s-ico\",thecol);\n\t\t\t\t\t$(\"[id^=jqgh_]\",thecol).empty().html(nData).append(ico);\n\t\t\t\t\t$t.p.colNames[pos] = nData;\n\t\t\t\t}\n\t\t\t\tif (prop) {\n\t\t\t\t\tif(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}\n\t\t\t\t}\n\t\t\t\tif(typeof attrp === 'object') {$(thecol).attr(attrp);}\n\t\t\t}\n\t\t});\n\t},\n\tsetSortIcon : function(colname, position) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1, addpix = 8;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif(position === 'left') {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"left\");\n\t\t\t\t} else {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"none\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t},\n\tsetCell : function(rowid,colname,nData,cssp,attrp, forceupd) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos =-1,v, title;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(colname)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(colname,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ind = $($t).jqGrid('getGridRowById', rowid); \n\t\t\t\tif (ind){\n\t\t\t\t\tvar tcell = $(\"td:eq(\"+pos+\")\",ind), cl=0, rawdat=[];\n\t\t\t\t\tif(nData !== \"\" || forceupd === true ) {\n\t\t\t\t\t\tif(ind.cells !== undefined) {\n\t\t\t\t\t\t\twhile(cl<ind.cells.length) {\n\t\t\t\t\t\t\t\t// slow down speed\n\t\t\t\t\t\t\t\trawdat.push(ind.cells[cl].innerHTML);\n\t\t\t\t\t\t\t\tcl++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $t.formatter(rowid, nData, pos, rawdat, 'edit');\n\t\t\t\t\t\ttitle = $t.p.colModel[pos].title ? {\"title\":$.jgrid.stripHtml(v)} : {};\n\t\t\t\t\t\tif($t.p.treeGrid && $(\".tree-wrap\",$(tcell)).length>0) {\n\t\t\t\t\t\t\t$(\"span\",$(tcell)).html(v).attr(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(tcell).html(v).attr(title);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.datatype === \"local\") {\n\t\t\t\t\t\t\tvar cm = $t.p.colModel[pos], index;\n\t\t\t\t\t\t\tnData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData;\n\t\t\t\t\t\t\tindex = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)];\n\t\t\t\t\t\t\tif(index !== undefined) {\n\t\t\t\t\t\t\t\t$t.p.data[index][cm.name] = nData;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cssp === 'string'){\n\t\t\t\t\t\t$(tcell).addClass(cssp);\n\t\t\t\t\t} else if(cssp) {\n\t\t\t\t\t\t$(tcell).css(cssp);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof attrp === 'object') {$(tcell).attr(attrp);}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetCell : function(rowid,col) {\n\t\tvar ret = false;\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1, cnm, ind;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tcnm = col;\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tcnm = this.name;\n\t\t\t\t\t\tpos = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpos = parseInt(col,10);\n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(ind) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tret = $.unformat.call($t,$(\"td:eq(\"+pos+\")\",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t} catch (e){\n\t\t\t\t\t\tret = $.jgrid.htmlDecode($(\"td:eq(\"+pos+\")\",ind).html());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($t.p.treeGrid && ret && $t.p.ExpandColumn === cnm) {\n\t\t\t\t\tret = $( \"<div>\" + ret +\"</div>\").find(\"span:first\").html();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetCol : function (col, obj, mathopr) {\n\t\tvar ret = [], val, sum=0, min, max, v;\n\t\tobj = typeof obj !== 'boolean' ? false : obj;\n\t\tif(mathopr === undefined) { mathopr = false; }\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(col,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ln = $t.rows.length, i =0, dlen=0;\n\t\t\t\tif (ln && ln>0){\n\t\t\t\t\twhile(i<ln){\n\t\t\t\t\t\tif($($t.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tval = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tval = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\t\t\tv = parseFloat(val);\n\t\t\t\t\t\t\t\tif(!isNaN(v)) {\n\t\t\t\t\t\t\t\t\tsum += v;\n\t\t\t\t\t\t\t\t\tif (max === undefined) {max = min = v;}\n\t\t\t\t\t\t\t\t\tmin = Math.min(min, v);\n\t\t\t\t\t\t\t\t\tmax = Math.max(max, v);\n\t\t\t\t\t\t\t\t\tdlen++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(obj) { ret.push( {id:$t.rows[i].id,value:val} ); }\n\t\t\t\t\t\t\telse { ret.push( val ); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\tswitch(mathopr.toLowerCase()){\n\t\t\t\t\t\t\tcase 'sum': ret =sum; break;\n\t\t\t\t\t\t\tcase 'avg': ret = sum/dlen; break;\n\t\t\t\t\t\t\tcase 'count': ret = (ln-1); break;\n\t\t\t\t\t\t\tcase 'min': ret = min; break;\n\t\t\t\t\t\t\tcase 'max': ret = max; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tclearGridData : function(clearfooter) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(typeof clearfooter !== 'boolean') { clearfooter = false; }\n\t\t\tif($t.p.deepempty) {$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:gt(0)\").remove();}\n\t\t\telse {\n\t\t\t\tvar trf = $(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:first\")[0];\n\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").empty().append(trf);\n\t\t\t}\n\t\t\tif($t.p.footerrow && clearfooter) { $(\".ui-jqgrid-ftable td\",$t.grid.sDiv).html(\"&#160;\"); }\n\t\t\t$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];\n\t\t\t$t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0;\n\t\t\t$t.p.data = []; $t.p._index = {};\n\t\t\t$t.updatepager(true,false);\n\t\t});\n\t},\n\tgetInd : function(rowid,rc){\n\t\tvar ret =false,rw;\n\t\tthis.each(function(){\n\t\t\trw = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(rw) {\n\t\t\t\tret = rc===true ? rw: rw.rowIndex;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tbindKeys : function( settings ){\n\t\tvar o = $.extend({\n\t\t\tonEnter: null,\n\t\t\tonSpace: null,\n\t\t\tonLeftKey: null,\n\t\t\tonRightKey: null,\n\t\t\tscrollingRows : true\n\t\t},settings || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$('body').is('[role]') ){$('body').attr('role','application');}\n\t\t\t$t.p.scrollrows = o.scrollingRows;\n\t\t\t$($t).keydown(function(event){\n\t\t\t\tvar target = $($t).find('tr[tabindex=0]')[0], id, r, mind,\n\t\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t\t//check for arrow keys\n\t\t\t\tif(target) {\n\t\t\t\t\tmind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)];\n\t\t\t\t\tif(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){\n\t\t\t\t\t\t// up key\n\t\t\t\t\t\tif(event.keyCode === 38 ){\n\t\t\t\t\t\t\tr = target.previousSibling;\n\t\t\t\t\t\t\tid = \"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.previousSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow')) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if key is down arrow\n\t\t\t\t\t\tif(event.keyCode === 40){\n\t\t\t\t\t\t\tr = target.nextSibling;\n\t\t\t\t\t\t\tid =\"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow') ) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// left\n\t\t\t\t\t\tif(event.keyCode === 37 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && $t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyLeft\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onLeftKey)) {\n\t\t\t\t\t\t\t\to.onLeftKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// right\n\t\t\t\t\t\tif(event.keyCode === 39 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && !$t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyRight\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onRightKey)) {\n\t\t\t\t\t\t\t\to.onRightKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//check if enter was pressed on a grid or treegrid node\n\t\t\t\t\telse if( event.keyCode === 13 ){\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyEnter\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onEnter)) {\n\t\t\t\t\t\t\to.onEnter.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(event.keyCode === 32) {\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeySpace\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onSpace)) {\n\t\t\t\t\t\t\to.onSpace.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tunbindKeys : function(){\n\t\treturn this.each(function(){\n\t\t\t$(this).off('keydown');\n\t\t});\n\t},\n\tgetLocalRow : function (rowid) {\n\t\tvar ret = false, ind;\n\t\tthis.each(function(){\n\t\t\tif(rowid !== undefined) {\n\t\t\t\tind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)];\n\t\t\t\tif(ind >= 0 ) {\n\t\t\t\t\tret = this.p.data[ind];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tprogressBar : function ( p ) {\n\t\tp = $.extend({\n\t\t\thtmlcontent : \"\",\n\t\t\tmethod : \"hide\",\n\t\t\tloadtype : \"disable\" \n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar sh = p.method===\"show\" ? true : false,\n\t\t\tloadDiv = $(\"#load_\"+$.jgrid.jqID(this.p.id)), \n\t\t\toffsetParent, top, \n\t\t\tscrollTop = $(window).scrollTop();\n\t\t\tif(p.htmlcontent !== \"\") {\n\t\t\t\tloadDiv.html( p.htmlcontent );\n\t\t\t}\n\t\t\tswitch(p.loadtype) {\n\t\t\t\tcase \"disable\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"enable\":\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"block\":\n\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID(this.p.id)).toggle( sh );\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (loadDiv.is(':visible')) {\n\t\t\t\toffsetParent = loadDiv.offsetParent();\n\t\t\t\tloadDiv.css('top', '');\n\t\t\t\tif (loadDiv.offset().top < scrollTop) {\n\t\t\t\t\ttop = Math.min(\n\t\t\t\t\t\t10 + scrollTop - offsetParent.offset().top,\n\t\t\t\t\t\toffsetParent.height() - loadDiv.height()\n\t\t\t\t\t);\n\t\t\t\t\tloadDiv.css('top', top + 'px');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetColProp : function(colname){\n\t\tvar ret ={}, $t = this[0];\n\t\tif ( !$t.grid ) { return false; }\n\t\tvar cM = $t.p.colModel, i;\n\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\tret = cM[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t},\n\tsetColProp : function(colname, obj){\n\t\t//do not set width will not work\n\t\treturn this.each(function(){\n\t\t\tif ( this.grid ) {\n\t\t\t\tif ( obj ) {\n\t\t\t\t\tvar cM = this.p.colModel, i;\n\t\t\t\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\t\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\t\t\t\t$.extend(true, this.p.colModel[i],obj);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsortGrid : function(colname,reload, sor){\n\t\treturn this.each(function(){\n\t\t\tvar $t=this,idx=-1,i, sobj=false;\n\t\t\tif ( !$t.grid ) { return;}\n\t\t\tif ( !colname ) { colname = $t.p.sortname; }\n\t\t\tfor ( i=0;i<$t.p.colModel.length;i++ ) {\n\t\t\t\tif ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) {\n\t\t\t\t\tidx = i;\n\t\t\t\t\tif($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) {\n\t\t\t\t\t\tsobj = $t.grid.fhDiv.find(\"#\" + $t.p.id + \"_\" + colname);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( idx !== -1 ){\n\t\t\t\tvar sort = $t.p.colModel[idx].sortable;\n\t\t\t\tif(!sobj) {\n\t\t\t\t\tsobj = $t.grid.headers[idx].el;\n\t\t\t\t}\n\t\t\t\tif ( typeof sort !== 'boolean' ) { sort =  true; }\n\t\t\t\tif ( typeof reload !=='boolean' ) { reload = false; }\n\t\t\t\tif ( sort ) { $t.sortData(\"jqgh_\"+$t.p.id+\"_\" + colname, idx, reload, sor, sobj); }\n\t\t\t}\n\t\t});\n\t},\n\tsetGridState : function(state) {\n\t\treturn this.each(function(){\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this,\n\t\t\topen = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_open', true),\n\t\t\tclose = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_close', true);\n\n\t\t\tif(state === 'hidden'){\n\t\t\t\t$(\".ui-jqgrid-bdiv, .ui-jqgrid-hdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideUp(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideUp(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( open ).addClass( close );\n\t\t\t\t$t.p.gridstate = 'hidden';\n\t\t\t} else if(state === 'visible') {\n\t\t\t\t$(\".ui-jqgrid-hdiv, .ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideDown(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideDown(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( close ).addClass( open );\n\t\t\t\t$t.p.gridstate = 'visible';\n\t\t\t}\n\n\t\t});\n\t},\n\tsetFrozenColumns : function () {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this, cm = $t.p.colModel,i=0, len = cm.length, maxfrozen = -1, frozen= false,\n\t\t\thd= $($t).jqGrid('getStyleUI',$t.p.styleUI+\".base\",'headerDiv', true, 'ui-jqgrid-hdiv'),\n\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t// TODO treeGrid and grouping  Support\n\t\t\tif($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll )\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($t.p.rownumbers) { i++; }\n\t\t\tif($t.p.multiselect) { i++; }\n\t\t\t\n\t\t\t// get the max index of frozen col\n\t\t\twhile(i<len)\n\t\t\t{\n\t\t\t\t// from left, no breaking frozen\n\t\t\t\tif(cm[i].frozen === true)\n\t\t\t\t{\n\t\t\t\t\tfrozen = true;\n\t\t\t\t\tmaxfrozen = i;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif( maxfrozen>=0 && frozen) {\n\t\t\t\tvar top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0,\n\t\t\t\thth = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\t\t\t\t//headers\n\t\t\t\tif($t.p.toppager) {\n\t\t\t\t\ttop = top + $($t.grid.topDiv).outerHeight();\n\t\t\t\t}\n\t\t\t\tif($t.p.toolbar[0] === true) {\n\t\t\t\t\tif($t.p.toolbar[1] !== \"bottom\") {\n\t\t\t\t\t\ttop = top + $($t.grid.uDiv).outerHeight();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$t.grid.fhDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+top+'px;height:'+hth+'px;\" class=\"frozen-div ' + hd +'\"></div>');\n\t\t\t\t$t.grid.fbDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+(parseInt(top,10)+parseInt(hth,10) + 1)+'px;overflow-y:hidden\" class=\"frozen-bdiv ui-jqgrid-bdiv\"></div>');\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv);\n\t\t\t\tvar htbl = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t// groupheader support - only if useColSpanstyle is false\n\t\t\t\tif($t.p.groupHeader) {\n\t\t\t\t\t$(\"tr.jqg-first-row-header, tr.jqg-third-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\tvar swapfroz = -1, fdel = -1, cs, rs;\n\t\t\t\t\t$(\"tr.jqg-second-row-header th\", htbl).each(function(){\n\t\t\t\t\t\tcs= parseInt($(this).attr(\"colspan\"),10);\n\t\t\t\t\t\trs= parseInt($(this).attr(\"rowspan\"),10);\n\t\t\t\t\t\tif(rs) {\n\t\t\t\t\t\t\tswapfroz++;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cs) {\n\t\t\t\t\t\t\tswapfroz = swapfroz+cs;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(swapfroz === maxfrozen) {\n\t\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(swapfroz !== maxfrozen) {\n\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr.jqg-second-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+fdel+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$(htbl).width(1);\n\t\t\t\tif(!$.jgrid.msie()) { $(htbl).css(\"height\",\"100%\"); }\n\t\t\t\t// resizing stuff\n\t\t\t\t$($t.grid.fhDiv).append(htbl)\n\t\t\t\t.mousemove(function (e) {\n\t\t\t\t\tif($t.grid.resizing){ $t.grid.dragMove(e);return false; }\n\t\t\t\t});\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\tvar hbd = $(\".ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\n\t\t\t\t\t$t.grid.fsDiv = $('<div style=\"position:absolute;left:0px;top:'+(parseInt(top,10)+parseInt(hth,10) + parseInt(hbd,10)+1)+'px;\" class=\"frozen-sdiv ui-jqgrid-sdiv\"></div>');\n\t\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv);\n\t\t\t\t\tvar ftbl = $(\".ui-jqgrid-ftable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr\",ftbl).each(function(){\n\t\t\t\t\t\t$(\"td:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\t$(ftbl).width(1);\n\t\t\t\t\t$($t.grid.fsDiv).append(ftbl);\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridResizeStop.setFrozenColumns', function (e, w, index) {\n\t\t\t\t\tvar rhth = $(\".ui-jqgrid-htable\",$t.grid.fhDiv);\n\t\t\t\t\t$(\"th:eq(\"+index+\")\",rhth).width( w ); \n\t\t\t\t\tvar btd = $(\".ui-jqgrid-btable\",$t.grid.fbDiv);\n\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",btd).width( w );\n\t\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t\tvar ftd = $(\".ui-jqgrid-ftable\",$t.grid.fsDiv);\n\t\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",ftd).width( w );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t// data stuff\n\t\t\t\t//TODO support for setRowData\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv);\n\t\t\t\t\n\t\t\t\t$($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) {\n\t\t\t\t\tvar st = $($t.grid.bDiv).scrollTop();\n\t\t\t\t\tif (e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0) {\n\t\t\t\t\t\t//up\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st - 25 );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//down\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st + 25 );\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout');\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridAfterGridComplete.setFrozenColumns', function () {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").remove();\n\t\t\t\t\t$($t.grid.fbDiv).height($($t.grid.bDiv).height()-14);\n\t\t\t\t\t// find max height\n\t\t\t\t\tvar mh = [];\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id) + \" tr[role=row].jqgrow\").each(function(){\n\t\t\t\t\t\tmh.push( $(\"td:visible:first\", this).height() );\n\t\t\t\t\t});\n\n\t\t\t\t\tvar btbl = $(\"#\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr[role=row]\",btbl).each(function(){\n\t\t\t\t\t\t$(\"td[role=gridcell]:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\n\t\t\t\t\t$(btbl).width(1).attr(\"id\",$t.p.id+\"_frozen\");\n\t\t\t\t\t$($t.grid.fbDiv).append(btbl);\n\t\t\t\t\t// set the height\n\t\t\t\t\t$(\"tr[role=row].jqgrow\",btbl).each(function(i, n){\n\t\t\t\t\t\t$(\"td:not(.jqgrid-rownum):visible:first\", this).height( mh[i] );\n\t\t\t\t\t});\n\n\t\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t\t$(\"tr.jqgrow\", btbl).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).addClass( hover ); },\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$(\"tr.jqgrow\", \"#\"+$.jgrid.jqID($t.p.id)).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").addClass( hover );},\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbtbl=null;\n\t\t\t\t});\n\t\t\t\tif(!$t.grid.hDiv.loading) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\t$t.p.frozenColumns = true;\n\t\t\t}\n\t\t});\n\t},\n\tdestroyFrozenColumns :  function() {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tif(this.p.frozenColumns === true) {\n\t\t\t\tvar $t = this,\n\t\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t\t$($t.grid.fhDiv).remove();\n\t\t\t\t$($t.grid.fbDiv).remove();\n\t\t\t\t$t.grid.fhDiv = null; $t.grid.fbDiv=null;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$($t.grid.fsDiv).remove();\n\t\t\t\t\t$t.grid.fsDiv = null;\n\t\t\t\t}\n\t\t\t\t$(this).off('.setFrozenColumns');\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\tvar ptr;\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).on({\n\t\t\t\t\t\t'mouseover': function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t\t\t$(ptr).addClass( hover );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'mouseout' : function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\t$(ptr).removeClass( hover );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.p.frozenColumns = false;\n\t\t\t}\n\t\t});\n\t},\n\tresizeColumn : function (iCol, newWidth) {\n\t\treturn this.each(function(){\n\t\t\tvar grid = this.grid, p = this.p, cm = p.colModel, i, cmLen = cm.length, diff, diffnv;\n\t\t\tif(typeof iCol === \"string\" ) {\n\t\t\t\tfor(i = 0; i < cmLen; i++) {\n\t\t\t\t\tif(cm[i].name === iCol) {\n\t\t\t\t\t\tiCol = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tiCol = parseInt( iCol, 10 );\n\t\t\t}\n\t\t\tnewWidth = parseInt( newWidth, 10);\n\t\t\t// filters\n\t\t\tif(typeof iCol !== \"number\" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== \"number\" ) { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\t\n\t\t\tif( newWidth < p.minColWidth ) { return; }\n\t\t\t\n\t\t\tif( p.forceFit ) {\n\t\t\t\tp.nv = 0;\n\t\t\t\tfor (i = iCol+1; i < cmLen; i++){\n\t\t\t\t\tif(cm[i].hidden !== true ) {\n\t\t\t\t\t\tp.nv = i - iCol; \n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// use resize stuff\n\t\t\tgrid.resizing = {idx : iCol };\n\t\t\tdiff = newWidth - grid.headers[iCol].width;\n\t\t\tif(p.forceFit) {\n\t\t\t\tdiffnv = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t\tif(diffnv < p.minColWidth) { return; }\n\t\t\t\tgrid.headers[ iCol + p.nv].newWidth = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t} \n\t\t\tgrid.newWidth = p.tblwidth + diff;\n\t\t\tgrid.headers[ iCol ].newWidth = newWidth;\n\t\t\tgrid.dragEnd( false );\n\t\t\t\n\t\t});\n\t},\n\tgetStyleUI : function( styleui, classui, notclasstag, gridclass) {\n\t\tvar ret = \"\", q = \"\";\n\t\ttry {\n\t\t\tvar stylemod = styleui.split(\".\");\n\t\t\tif(!notclasstag) {\n\t\t\t\tret = \"class=\";\n\t\t\t\tq = \"\\\"\";\n\t\t\t}\n\t\t\tif(gridclass == null) {\n\t\t\t\tgridclass = \"\";\n\t\t\t}\n\t\t\tswitch(stylemod.length) {\n\t\t\t\tcase 1 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][classui] + q);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q);\n\t\t\t}\n\t\t} catch (cls) {\n\t\t\tret = \"\";\n\t\t}\n\t\treturn ret;\n\t},\n\tresizeGrid : function (timeout) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(timeout === undefined) {\n\t\t\t\ttimeout = 500;\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\ttry {\n\t\t\t\t\tvar winwidth = $(window).width(),\n\t\t\t\t\tparentwidth = $(\"#gbox_\"+$.jgrid.jqID($t.p.id)).parent().width(),\n\t\t\t\t\tww = $t.p.width;\n\t\t\t\t\tif( (winwidth-parentwidth) > 3 ) {\n\t\t\t\t\t\tww = parentwidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tww = winwidth;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww);\n\t\t\t\t} catch(e){}\n\t\t\t}, timeout);\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid.extend({\n\teditCell : function (iRow,iCol, ed){\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nm, tmp,cc, cm,\n\t\t\thighlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true),\n\t\t\t\n\t\t\thover = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true),\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".celledit\",'inputClass', true);\n\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tiCol = parseInt(iCol,10);\n\t\t\t// select the row that can be used for other methods\n\t\t\t$t.p.selrow = $t.rows[iRow].id;\n\t\t\tif (!$t.p.knv) {$($t).jqGrid(\"GridNav\");}\n\t\t\t// check to see if we have already edited cell\n\t\t\tif ($t.p.savedRow.length>0) {\n\t\t\t\t// prevent second click on that field and enable selects\n\t\t\t\tif (ed===true ) {\n\t\t\t\t\tif(iRow == $t.p.iRow && iCol == $t.p.iCol){\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// save the cell\n\t\t\t\t$($t).jqGrid(\"saveCell\",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},1);\n\t\t\t}\n\t\t\tcm = $t.p.colModel[iCol];\n\t\t\tnm = cm.name;\n\t\t\tif (nm==='subgrid' || nm==='cb' || nm==='rn') {return;}\n\t\t\ttry {\n\t\t\t\tcc = $($t.rows[iRow].cells[iCol]);\n\t\t\t} catch(e) {\n\t\t\t\tcc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t}\n\t\t\tif (cm.editable===true && ed===true && !cc.hasClass(\"not-editable-cell\") && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {\n\t\t\t\tif(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttry {\n\t\t\t\t\ttmp =  $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);\n\t\t\t\t} catch (_) {\n\t\t\t\t\ttmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html();\n\t\t\t\t}\n\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\tif (!cm.edittype) {cm.edittype = \"text\";}\n\t\t\t\t$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});\n\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\tif($.isFunction($t.p.formatCell)) {\n\t\t\t\t\tvar tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t\tif(tmp2 !== undefined ) {tmp = tmp2;}\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridBeforeEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.beforeEditCell)) {\n\t\t\t\t\t$t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t\tvar opt = $.extend({}, cm.editoptions || {} ,{id:iRow+\"_\"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit'});\n\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\tif( $.inArray(cm.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t$(elc).addClass(inpclass);\n\t\t\t\t}\n\n\t\t\t\tcc.html(\"\").append(elc).attr(\"tabindex\",\"0\");\n\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\twindow.setTimeout(function () { $(elc).focus();},1);\n\t\t\t\t$(\"input, select, textarea\",cc).on(\"keydown\",function(e) {\n\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\tif($(\"input.hasDatepicker\",cc).length >0) {\n\t\t\t\t\t\t\tif( $(\".ui-datepicker\").is(\":hidden\") )  { $($t).jqGrid(\"restoreCell\",iRow,iCol); }\n\t\t\t\t\t\t\telse { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t}\n\t\t\t\t\t} //ESC\n\t\t\t\t\tif (e.keyCode === 13 && !e.shiftKey) {\n\t\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t\t\t// Prevent default action\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} //Enter\n\t\t\t\t\tif (e.keyCode === 9)  {\n\t\t\t\t\t\tif(!$t.grid.hDiv.loading ) {\n\t\t\t\t\t\t\tif (e.shiftKey) {$($t).jqGrid(\"prevCell\",iRow,iCol);} //Shift TAb\n\t\t\t\t\t\t\telse {$($t).jqGrid(\"nextCell\",iRow,iCol);} //Tab\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterEditCell)) {\n\t\t\t\t\t$t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttmp = cc.html().replace(/\\&#160\\;/ig,'');\n\t\t\t\t$($t).triggerHandler(\"jqGridSelectCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.onSelectCell)) {\n\t\t\t\t\t$t.p.onSelectCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$t.p.iCol = iCol; $t.p.iRow = iRow;\n\t\t});\n\t},\n\tsaveCell : function (iRow, iCol){\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr,\n\t\t\terrors = $.jgrid.getRegional(this, 'errors'),\n\t\t\tedit =$.jgrid.getRegional(this, 'edit');\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} \n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]),v,v2,\n\t\t\t\tcm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm),\n\t\t\t\tp = $(cc).offset();\n\n\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).val();\n\t\t\t\t\t\t\tv2 = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar sel = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), selectedText = [];\n\t\t\t\t\t\t\tv = $(sel).val();\n\t\t\t\t\t\t\tif(v) { v.join(\",\");} else { v=\"\"; }\n\t\t\t\t\t\t\t$(\"option:selected\",sel).each(\n\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tv2 = selectedText.join(\",\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm.formatter) { v2 = v; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\tvar cbv  = [\"Yes\",\"No\"];\n\t\t\t\t\t\tif(cm.editoptions){\n\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"password\":\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).val();\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\tv = cm.editoptions.custom_value.call($t, $(\".customelement\",cc),'get');\n\t\t\t\t\t\t\t\tif (v===undefined) { throw \"e2\";} else { v2=v; }\n\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// The common approach is if nothing changed do not do anything\n\t\t\t\tif (v2 !== $t.p.savedRow[fr].v){\n\t\t\t\t\tvar vvv = $($t).triggerHandler(\"jqGridBeforeSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\tif (vvv) {v = vvv; v2=vvv;}\n\t\t\t\t\tif ($.isFunction($t.p.beforeSaveCell)) {\n\t\t\t\t\t\tvar vv = $t.p.beforeSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\tif (vv) {v = vv; v2=vv;}\n\t\t\t\t\t}\n\t\t\t\t\tvar cv = $.jgrid.checkValues.call($t,v,iCol), nuem = false;\n\t\t\t\t\tif(cv[0] === true) {\n\t\t\t\t\t\tvar addpost = $($t).triggerHandler(\"jqGridBeforeSubmitCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]) || {};\n\t\t\t\t\t\tif ($.isFunction($t.p.beforeSubmitCell)) {\n\t\t\t\t\t\t\taddpost = $t.p.beforeSubmitCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\tif (!addpost) {addpost={};}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( $(\"input.hasDatepicker\",cc).length >0) { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'remote') {\n\t\t\t\t\t\t\tif ($t.p.cellurl) {\n\t\t\t\t\t\t\t\tvar postdata = {};\n\t\t\t\t\t\t\t\tif($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }\n\t\t\t\t\t\t\t\tif(cm.editoptions && cm.editoptions.NullIfEmpty && v === \"\") {\n\t\t\t\t\t\t\t\t\tv = 'null';\n\t\t\t\t\t\t\t\t\tnuem = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tpostdata[nm] = v;\n\t\t\t\t\t\t\t\tvar idname,oper, opers;\n\t\t\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.rows[iRow].id);\n\t\t\t\t\t\t\t\tpostdata[oper] = opers.editoper;\n\t\t\t\t\t\t\t\tpostdata = $.extend(addpost,postdata);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') });\n\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = true;\n\t\t\t\t\t\t\t\t$.ajax( $.extend( {\n\t\t\t\t\t\t\t\t\turl: $t.p.cellurl,\n\t\t\t\t\t\t\t\t\tdata :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata,\n\t\t\t\t\t\t\t\t\ttype: \"POST\",\n\t\t\t\t\t\t\t\t\tcomplete: function (result, stat) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : $t.p.loadui });\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\tif (stat === 'success') {\n\t\t\t\t\t\t\t\t\t\t\tvar ret = $($t).triggerHandler(\"jqGridAfterSubmitCell\", [$t, result, postdata.id, nm, v, iRow, iCol]) || [true, ''];\n\t\t\t\t\t\t\t\t\t\t\tif (ret[0] === true && $.isFunction($t.p.afterSubmitCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\tret = $t.p.afterSubmitCell.call($t, result,postdata.id,nm,v,iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif(ret[0] === true){\n\t\t\t\t\t\t\t\t\t\t\t\tif(nuem) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = \"\";\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, v2, false, false, true);\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, result, stat);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\terror:function(res,stat,err) {\n\t\t\t\t\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridErrorCell\", [res, stat, err]);\n\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, res,stat,err);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, res.status+\" : \"+res.statusText+\"<br/>\"+stat, edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'clientArray') {\n\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id,iCol, v2, false, false, true);\n\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t\t\t$t.p.validationCell.call($t, $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), cv[1], iRow, iCol);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.setTimeout(function(){\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,v+ \" \" + cv[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},50);\n\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\talert(cv[1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\trestoreCell : function(iRow, iCol) {\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}\n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t\t// datepicker fix\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",cc).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$(cc).empty().attr(\"tabindex\",\"-1\");\n\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterRestoreCell\", [$t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterRestoreCell)) {\n\t\t\t\t\t$t.p.afterRestoreCell.call($t, $t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol);\n\t\t\t\t}\t\t\t\t\n\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$t.p.knv).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\tnextCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol+1; i<$t.p.colModel.length; i++) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tprevCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol-1; i>=0; i--) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tGridNav : function() {\n\t\treturn this.each(function () {\n\t\t\tvar  $t = this;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t// trick to process keydown on non input elements\n\t\t\t$t.p.knv = $t.p.id + \"_kn\";\n\t\t\tvar selection = $(\"<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='\"+$t.p.knv+\"'></div></div>\"),\n\t\t\ti, kdir;\n\t\t\tfunction scrollGrid(iR, iC, tp){\n\t\t\t\tif (tp.substr(0,1)==='v') {\n\t\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\t\tnROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,\n\t\t\t\t\tpROT = $t.rows[iR].offsetTop;\n\t\t\t\t\tif(tp === 'vd') {\n\t\t\t\t\t\tif(nROT >= ch) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(tp === 'vu'){\n\t\t\t\t\t\tif (pROT < st ) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(tp==='h') {\n\t\t\t\t\tvar cw = $($t.grid.bDiv)[0].clientWidth,\n\t\t\t\t\tsl = $($t.grid.bDiv)[0].scrollLeft,\n\t\t\t\t\tnCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,\n\t\t\t\t\tpCOL = $t.rows[iR].cells[iC].offsetLeft;\n\t\t\t\t\tif(nCOL >= cw+parseInt(sl,10)) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t} else if (pCOL < sl) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction findNextVisible(iC,act){\n\t\t\t\tvar ind, i;\n\t\t\t\tif(act === 'lft') {\n\t\t\t\t\tind = iC+1;\n\t\t\t\t\tfor (i=iC;i>=0;i--){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(act === 'rgt') {\n\t\t\t\t\tind = iC-1;\n\t\t\t\t\tfor (i=iC; i<$t.p.colModel.length;i++){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ind;\n\t\t\t}\n\n\t\t\t$(selection).insertBefore($t.grid.cDiv);\n\t\t\t$(\"#\"+$t.p.knv)\n\t\t\t.focus()\n\t\t\t.keydown(function (e){\n\t\t\t\tkdir = e.keyCode;\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\tif(kdir===37) { kdir = 39;}\n\t\t\t\t\telse if (kdir===39) { kdir = 37; }\n\t\t\t\t}\n\t\t\t\tswitch (kdir) {\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tif ($t.p.iRow-1 >0 ) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow-1,$t.p.iCol,'vu');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow-1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 40 :\n\t\t\t\t\t\tif ($t.p.iRow+1 <=  $t.rows.length-1) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow+1,$t.p.iCol,'vd');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow+1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 37 :\n\t\t\t\t\t\tif ($t.p.iCol -1 >=  0) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol-1,'lft');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow, i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow, i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 39 :\n\t\t\t\t\t\tif ($t.p.iCol +1 <=  $t.p.colModel.length-1) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol+1,'rgt');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow,i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 13:\n\t\t\t\t\t\tif (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,$t.p.iCol,true);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tdefault :\n\t\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t});\n\t},\n\tgetChangedCells : function (mthd) {\n\t\tvar ret=[];\n\t\tif (!mthd) {mthd='all';}\n\t\tthis.each(function(){\n\t\t\tvar $t= this,nm;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t$($t.rows).each(function(j){\n\t\t\t\tvar res = {};\n\t\t\t\tif ($(this).hasClass(\"edited\")) {\n\t\t\t\t\t$('td',this).each( function(i) {\n\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid') {\n\t\t\t\t\t\t\tif (mthd==='dirty') {\n\t\t\t\t\t\t\t\tif ($(this).hasClass('dirty-cell')) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tres.id = this.id;\n\t\t\t\t\tret.push(res);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn ret;\n\t}\n/// end  cell editing\n});\n\n//module begin\n$.extend($.jgrid,{\n// Modal functions\n\tshowModal : function(h) {\n\t\th.w.show();\n\t},\n\tcloseModal : function(h) {\n\t\th.w.hide().attr(\"aria-hidden\",\"true\");\n\t\tif(h.o) {h.o.remove();}\n\t},\n\thideModal : function (selector,o) {\n\t\to = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {});\n\t\tvar thisgrid = o.gb && typeof o.gb === \"string\" && o.gb.substr(0,6) === \"#gbox_\" ? $(\"#\" + o.gb.substr(6))[0] : false;\n\t\tif(o.onClose) {\n\t\t\tvar oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector);\n\t\t\tif (typeof oncret === 'boolean'  && !oncret ) { return; }\n\t\t}\n\t\tif( o.formprop && thisgrid  && o.form) {\n\t\t\tvar fh = $(selector)[0].style.height,\n\t\t\tfw = $(selector)[0].style.width;\n\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\tfh = parseFloat(fh);\n\t\t\t}\n\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\tfw = parseFloat(fw);\n\t\t\t}\n\t\t\tvar frmgr, frmdata;\n\t\t\tif(o.form==='edit'){\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"FrmGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"formProp\";\n\t\t\t} else if( o.form === 'view') {\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"ViewGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"viewProp\";\n\t\t\t}\n\t\t\t$(thisgrid).data(frmdata, {\n\t\t\t\ttop:parseFloat($(selector).css(\"top\")),\n\t\t\t\tleft : parseFloat($(selector).css(\"left\")),\n\t\t\t\twidth : fw,\n\t\t\t\theight : fh,\n\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t});\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\t$(selector).attr(\"aria-hidden\",\"true\").jqmHide();\n\t\t} else {\n\t\t\tif(o.gb !== '') {\n\t\t\t\ttry {$(\".jqgrid-overlay:first\",o.gb).hide();} catch (e){}\n\t\t\t}\n\t\t\t$(selector).hide().attr(\"aria-hidden\",\"true\");\n\t\t}\n\t\tif( o.removemodal ) {\n\t\t\t$(selector).remove();\n\t\t}\n\t},\n//Helper functions\n\tfindPos : function(obj) {\n\t\tvar offset = $(obj).offset();\n\t\treturn [offset.left,offset.top];\n\t},\n\tcreateModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {\n\t\tp = $.extend(true, {}, $.jgrid.jqModal || {}, p);\n\t\tvar self = this,\n\t\t\trtlsup = $(p.gbox).attr(\"dir\") === \"rtl\" ? true : false,\n\t\t\tclasses = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal,\n\t\t\tcommon = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common,\n\t\t\tmw  = document.createElement('div');\n\t\tcss = $.extend({}, css || {});\n\t\tmw.className= \"ui-jqdialog \" + classes.modal;\n\t\tmw.id = aIDs.themodal;\n\t\tvar mh = document.createElement('div');\n\t\tmh.className = \"ui-jqdialog-titlebar \" + classes.header;\n\t\tmh.id = aIDs.modalhead;\n\t\t$(mh).append(\"<span class='ui-jqdialog-title'>\"+p.caption+\"</span>\");\n\t\tvar ahr= $(\"<a class='ui-jqdialog-titlebar-close \"+common.cornerall+\"'></a>\")\n\t\t.hover(function(){ahr.addClass(common.hover);},\n\t\t\tfunction(){ahr.removeClass(common.hover);})\n\t\t.append(\"<span class='\" + common.icon_base+\" \" + classes.icon_close + \"'></span>\");\n\t\t$(mh).append(ahr);\n\t\tif(rtlsup) {\n\t\t\tmw.dir = \"rtl\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"right\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"left\",0.3+\"em\");\n\t\t} else {\n\t\t\tmw.dir = \"ltr\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"left\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"right\",0.3+\"em\");\n\t\t}\n\t\tvar mc = document.createElement('div');\n\t\t$(mc).addClass(\"ui-jqdialog-content \" + classes.content).attr(\"id\",aIDs.modalcontent);\n\t\t$(mc).append(content);\n\t\tmw.appendChild(mc);\n\t\t$(mw).prepend(mh);\n\t\tif(appendsel===true) { \n\t\t\t$('body').append(mw); \n\t\t} //append as first child in body -for alert dialog\n\t\telse if (typeof appendsel === \"string\") {\n\t\t\t$(appendsel).append(mw);\n\t\t} else {\n\t\t\t$(mw).insertBefore(insertSelector);\n\t\t}\n\t\t$(mw).css(css);\n\t\tif(p.jqModal === undefined) {p.jqModal = true;} // internal use\n\t\tvar coord = {};\n\t\tif ( $.fn.jqm && p.jqModal === true) {\n\t\t\tif(p.left ===0 && p.top===0 && p.overlay) {\n\t\t\t\tvar pos = [];\n\t\t\t\tpos = $.jgrid.findPos(posSelector);\n\t\t\t\tp.left = pos[0] + 4;\n\t\t\t\tp.top = pos[1] + 4;\n\t\t\t}\n\t\t\tcoord.top = p.top+\"px\";\n\t\t\tcoord.left = p.left;\n\t\t} else if(p.left !==0 || p.top!==0) {\n\t\t\tcoord.left = p.left;\n\t\t\tcoord.top = p.top+\"px\";\n\t\t}\n\t\t$(\"a.ui-jqdialog-titlebar-close\",mh).click(function(){\n\t\t\tvar oncm = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\tvar gboxclose = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"gbox\") || p.gbox;\n\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\treturn false;\n\t\t});\n\t\tif (p.width === 0 || !p.width) {p.width = 300;}\n\t\tif(p.height === 0 || !p.height) {p.height =200;}\n\t\tif(!p.zIndex) {\n\t\t\tvar parentZ = $(insertSelector).parents(\"*[role=dialog]\").filter(':first').css(\"z-index\");\n\t\t\tif(parentZ) {\n\t\t\t\tp.zIndex = parseInt(parentZ,10)+2;\n\t\t\t} else {\n\t\t\t\tp.zIndex = 950;\n\t\t\t}\n\t\t}\n\t\tvar rtlt = 0;\n\t\tif( rtlsup && coord.left && !appendsel) {\n\t\t\trtlt = $(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do\n\t\t// just in case\n\t\t\tcoord.left = parseInt(coord.left,10) + parseInt(rtlt,10);\n\t\t}\n\t\tif(coord.left) { coord.left += \"px\"; }\n\t\t$(mw).css($.extend({\n\t\t\twidth: isNaN(p.width) ? \"auto\": p.width+\"px\",\n\t\t\theight:isNaN(p.height) ? \"auto\" : p.height + \"px\",\n\t\t\tzIndex:p.zIndex,\n\t\t\toverflow: 'hidden'\n\t\t},coord))\n\t\t.attr({tabIndex: \"-1\",\"role\":\"dialog\",\"aria-labelledby\":aIDs.modalhead,\"aria-hidden\":\"true\"});\n\t\tif(p.drag === undefined) { p.drag=true;}\n\t\tif(p.resize === undefined) {p.resize=true;}\n\t\tif (p.drag) {\n\t\t\t$(mh).css('cursor','move');\n\t\t\tif($.fn.tinyDraggable) {\n\t\t\t\t//$(mw).jqDrag(mh);\n\t\t\t\t$(mw).tinyDraggable({ handle:\"#\"+$.jgrid.jqID(mh.id) });\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).draggable({handle: $(\"#\"+$.jgrid.jqID(mh.id))});\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t}\n\t\tif(p.resize) {\n\t\t\tif($.fn.jqResize) {\n\t\t\t\t$(mw).append(\"<div class='jqResize \"+classes.resizable+\" \"+common.icon_base + \" \" +classes.icon_resizable+\"'></div>\");\n\t\t\t\t$(\"#\"+$.jgrid.jqID(aIDs.themodal)).jqResize(\".jqResize\",aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false});\n\t\t\t\t} catch (r) {}\n\t\t\t}\n\t\t}\n\t\tif(p.closeOnEscape === true){\n\t\t\t$(mw).keydown( function( e ) {\n\t\t\t\tif( e.which === 27 ) {\n\t\t\t\t\tvar cone = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tviewModal : function (selector,o){\n\t\to = $.extend({\n\t\t\ttoTop: true,\n\t\t\toverlay: 10,\n\t\t\tmodal: false,\n\t\t\toverlayClass : 'ui-widget-overlay', // to be fixed\n\t\t\tonShow: $.jgrid.showModal,\n\t\t\tonHide: $.jgrid.closeModal,\n\t\t\tgbox: '',\n\t\t\tjqm : true,\n\t\t\tjqM : true\n\t\t}, o || {});\n\t\tif(o.focusField === undefined) {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif(typeof o.focusField === \"number\" && o.focusField >= 0 ) {\n\t\t\to.focusField = parseInt(o.focusField,10);\n\t\t} else if(typeof o.focusField === \"boolean\" && !o.focusField) {\n\t\t\to.focusField = false;\n\t\t} else {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\tif(o.jqM) { $(selector).attr(\"aria-hidden\",\"false\").jqm(o).jqmShow(); }\n\t\t\telse {$(selector).attr(\"aria-hidden\",\"false\").jqmShow();}\n\t\t} else {\n\t\t\tif(o.gbox !== '') {\n\t\t\t\t$(\".jqgrid-overlay:first\",o.gbox).show();\n\t\t\t\t$(selector).data(\"gbox\",o.gbox);\n\t\t\t}\n\t\t\t$(selector).show().attr(\"aria-hidden\",\"false\");\n\t\t\tif(o.focusField >= 0) {\n\t\t\t\ttry{$(':input:visible',selector)[parseInt(o.focusField,10)].focus();}catch(_){}\n\t\t\t}\n\t\t}\n\t},\n\tinfo_dialog : function(caption, content,c_b, modalopt) {\n\t\tvar mopt = {\n\t\t\twidth:290,\n\t\t\theight:'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tdrag: true,\n\t\t\tresize: false,\n\t\t\tleft:250,\n\t\t\ttop:170,\n\t\t\tzIndex : 1000,\n\t\t\tjqModal : true,\n\t\t\tmodal : false,\n\t\t\tcloseOnEscape : true,\n\t\t\talign: 'center',\n\t\t\tbuttonalign : 'center',\n\t\t\tbuttons : []\n\t\t// {text:'textbutt', id:\"buttid\", onClick : function(){...}}\n\t\t// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...\n\t\t};\n\t\t$.extend(true, mopt, $.jgrid.jqModal || {}, {caption:\"<b>\"+caption+\"</b>\"}, modalopt || {});\n\t\tvar jm = mopt.jqModal, self = this,\n\t\tclasses = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].modal,\n\t\tcommon = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].common;\n\t\tif($.fn.jqm && !jm) { jm = false; }\n\t\t// in case there is no jqModal\n\t\tvar buttstr =\"\", i;\n\t\tif(mopt.buttons.length > 0) {\n\t\t\tfor(i=0;i<mopt.buttons.length;i++) {\n\t\t\t\tif(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = \"info_button_\"+i; }\n\t\t\t\tbuttstr += \"<a id='\"+mopt.buttons[i].id+\"' class='fm-button \" + common.button+\"'>\"+mopt.buttons[i].text+\"</a>\";\n\t\t\t}\n\t\t}\n\t\tvar dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+\"px\",\n\t\tcn = \"text-align:\"+mopt.align+\";\";\n\t\tvar cnt = \"<div id='info_id'>\";\n\t\tcnt += \"<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:\"+dh+\";\"+cn+\"'>\"+content+\"</div>\";\n\t\tcnt += c_b ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button \" + common.button + \"'>\"+c_b+\"</a>\"+buttstr+\"</div>\" :\n\t\t\tbuttstr !== \"\"  ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>\"+buttstr+\"</div>\" : \"\";\n\t\tcnt += \"</div>\";\n\n\t\ttry {\n\t\t\tif($(\"#info_dialog\").attr(\"aria-hidden\") === \"false\") {\n\t\t\t\t$.jgrid.hideModal(\"#info_dialog\",{jqm:jm});\n\t\t\t}\n\t\t\t$(\"#info_dialog\").remove();\n\t\t} catch (e){}\n\t\t$.jgrid.createModal({\n\t\t\tthemodal:'info_dialog',\n\t\t\tmodalhead:'info_head',\n\t\t\tmodalcontent:'info_content',\n\t\t\tscrollelm: 'infocnt'},\n\t\t\tcnt,\n\t\t\tmopt,\n\t\t\t'','',true\n\t\t);\n\t\t// attach onclick after inserting into the dom\n\t\tif(buttstr) {\n\t\t\t$.each(mopt.buttons,function(i){\n\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id),\"#info_id\").on('click',function(){mopt.buttons[i].onClick.call($(\"#info_dialog\")); return false;});\n\t\t\t});\n\t\t}\n\t\t$(\"#closedialog\", \"#info_id\").on('click',function(){\n\t\t\tself.hideModal(\"#info_dialog\",{\n\t\t\t\tjqm:jm,\n\t\t\t\tonClose: $(\"#info_dialog\").data(\"onClose\") || mopt.onClose,\n\t\t\t\tgb: $(\"#info_dialog\").data(\"gbox\") || mopt.gbox\n\t\t\t});\n\t\t\treturn false;\n\t\t});\n\t\t$(\".fm-button\",\"#info_dialog\").hover(\n\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t);\n\t\tif($.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); }\n\t\t$.jgrid.viewModal(\"#info_dialog\",{\n\t\t\tonHide: function(h) {\n\t\t\t\th.w.hide().remove();\n\t\t\t\tif(h.o) { h.o.remove(); }\n\t\t\t},\n\t\t\tmodal :mopt.modal,\n\t\t\tjqm:jm\n\t\t});\n\t\tif($.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); }\n\t\ttry{ $(\"#info_dialog\").focus();} catch (m){}\n\t},\n\tbindEv: function  (el, opt) {\n\t\tvar $t = this;\n\t\tif($.isFunction(opt.dataInit)) {\n\t\t\topt.dataInit.call($t,el,opt);\n\t\t}\n\t\tif(opt.dataEvents) {\n\t\t\t$.each(opt.dataEvents, function() {\n\t\t\t\tif (this.data !== undefined) {\n\t\t\t\t\t$(el).on(this.type, this.data, this.fn);\n\t\t\t\t} else {\n\t\t\t\t\t$(el).on(this.type, this.fn);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n// Form Functions\n\tcreateEl : function(eltype,options,vl,autowidth, ajaxso) {\n\t\tvar elem = \"\", $t = this;\n\t\tfunction setAttributes(elm, atr, exl ) {\n\t\t\tvar exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper'];\n\t\t\tif(exl !== undefined && $.isArray(exl)) {\n\t\t\t\t$.merge(exclude, exl);\n\t\t\t}\n\t\t\t$.each(atr, function(key, value){\n\t\t\t\tif($.inArray(key, exclude) === -1) {\n\t\t\t\t\t$(elm).attr(key,value);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!atr.hasOwnProperty('id')) {\n\t\t\t\t$(elm).attr('id', $.jgrid.randId());\n\t\t\t}\n\t\t}\n\t\tswitch (eltype)\n\t\t{\n\t\t\tcase \"textarea\" :\n\t\t\t\telem = document.createElement(\"textarea\");\n\t\t\t\tif(autowidth) {\n\t\t\t\t\tif(!options.cols) { $(elem).css({width:\"98%\"});}\n\t\t\t\t} else if (!options.cols) { options.cols = 20; }\n\t\t\t\tif(!options.rows) { options.rows = 2; }\n\t\t\t\tif(vl==='&nbsp;' || vl==='&#160;' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl=\"\";}\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\t$(elem).attr({\"role\":\"textbox\",\"multiline\":\"true\"});\n\t\t\tbreak;\n\t\t\tcase \"checkbox\" : //what code for simple checkbox\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = \"checkbox\";\n\t\t\t\tif( !options.value ) {\n\t\t\t\t\tvar vl1 = (vl+\"\").toLowerCase();\n\t\t\t\t\tif(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!==\"\") {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t\telem.value = vl;\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.value = \"on\";\n\t\t\t\t\t}\n\t\t\t\t\t$(elem).attr(\"offval\",\"off\");\n\t\t\t\t} else {\n\t\t\t\t\tvar cbval = options.value.split(\":\");\n\t\t\t\t\tif(vl === cbval[0]) {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t}\n\t\t\t\t\telem.value = cbval[0];\n\t\t\t\t\t$(elem).attr(\"offval\",cbval[1]);\n\t\t\t\t}\n\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t$(elem).attr(\"role\",\"checkbox\");\n\t\t\tbreak;\n\t\t\tcase \"select\" :\n\t\t\t\telem = document.createElement(\"select\");\n\t\t\t\telem.setAttribute(\"role\",\"select\");\n\t\t\t\tvar msl, ovm = [];\n\t\t\t\tif(options.multiple===true) {\n\t\t\t\t\tmsl = true;\n\t\t\t\t\telem.multiple=\"multiple\";\n\t\t\t\t\t$(elem).attr(\"aria-multiselectable\",\"true\");\n\t\t\t\t} else { msl = false; }\n\t\t\t\tif(options.dataUrl != null) {\n\t\t\t\t\tvar rowid = null, postData = options.postData || ajaxso.postData;\n\t\t\t\t\ttry {\n\t\t\t\t\t\trowid = options.rowId;\n\t\t\t\t\t} catch(e) {}\n\n\t\t\t\t\tif ($t.p && $t.p.idPrefix) {\n\t\t\t\t\t\trowid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\t}\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl: $.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl,\n\t\t\t\t\t\ttype : \"GET\",\n\t\t\t\t\t\tdataType: \"html\",\n\t\t\t\t\t\tdata: $.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData,\n\t\t\t\t\t\tcontext: {elem:elem, options:options, vl:vl},\n\t\t\t\t\t\tsuccess: function(data){\n\t\t\t\t\t\t\tvar ovm = [], elem = this.elem, vl = this.vl,\n\t\t\t\t\t\t\toptions = $.extend({},this.options),\n\t\t\t\t\t\t\tmsl = options.multiple===true,\n\t\t\t\t\t\t\tcU = options.cacheUrlData === true,\n\t\t\t\t\t\t\toV ='', txt,\n\t\t\t\t\t\t\ta = $.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data;\n\t\t\t\t\t\t\tif(typeof a === 'string') {\n\t\t\t\t\t\t\t\ta = $( $.trim( a ) ).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(a) {\n\t\t\t\t\t\t\t\t$(elem).append(a);\n\t\t\t\t\t\t\t\tsetAttributes(elem, options, postData ? ['postData'] : undefined );\n\t\t\t\t\t\t\t\tif(options.size === undefined) { options.size =  msl ? 3 : 1;}\n\t\t\t\t\t\t\t\tif(msl) {\n\t\t\t\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tovm[0] = $.trim(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//$(elem).attr(options);\n\t\t\t\t\t\t\t\t//setTimeout(function(){\n\t\t\t\t\t\t\t\t$(\"option\",elem).each(function(i){\n\t\t\t\t\t\t\t\t\ttxt = $(this).text();\n\t\t\t\t\t\t\t\t\tvl = $(this).val();\n\t\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\t\toV += (i!== 0 ? \";\": \"\")+ vl+\":\"+txt; \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//if(i===0) { this.selected = \"\"; }\n\t\t\t\t\t\t\t\t\t// fix IE8/IE7 problem with selecting of the first item on multiple=true\n\t\t\t\t\t\t\t\t\tif (i === 0 && elem.multiple) { this.selected = false; }\n\t\t\t\t\t\t\t\t\t$(this).attr(\"role\",\"option\");\n\t\t\t\t\t\t\t\t\tif($.inArray($.trim(txt),ovm) > -1 || $.inArray($.trim(vl),ovm) > -1 ) {\n\t\t\t\t\t\t\t\t\t\tthis.selected= \"selected\";\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\tif(options.oper === 'edit') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper === 'search') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper ==='filter') {\n\t\t\t\t\t\t\t\t\t\tif($(\"#fbox_\"+$t.p.id)[0].p) {\n\t\t\t\t\t\t\t\t\t\t\tvar cols = $(\"#fbox_\"+$t.p.id)[0].p.columns, nm;\n\t\t\t\t\t\t\t\t\t\t\t$.each(cols,function(i) {\n\t\t\t\t\t\t\t\t\t\t\t\tnm  =  this.index || this.name;\n\t\t\t\t\t\t\t\t\t\t\t\tif(options.name === nm) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.dataUrl = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.value = oV;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterSelectUrlComplete\", [elem]);\n\t\t\t\t\t\t\t\t//},0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},ajaxso || {}));\n\t\t\t\t} else if(options.value) {\n\t\t\t\t\tvar i;\n\t\t\t\t\tif(options.size === undefined) {\n\t\t\t\t\t\toptions.size = msl ? 3 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof options.value === 'function') { options.value = options.value(); }\n\t\t\t\t\tvar so,sv, ov, oSv, key, value,\n\t\t\t\t\tsep = options.separator === undefined ? \":\" : options.separator,\n\t\t\t\t\tdelim = options.delimiter === undefined ? \";\" : options.delimiter;\n\t\t\t\t\tif(typeof options.value === 'string') {\n\t\t\t\t\t\tso = options.value.split(delim);\n\t\t\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\t\t\tsv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\tov.value = sv[0]; ov.innerHTML = sv[1];\n\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\tif (!msl &&  ($.trim(sv[0]) === $.trim(vl) || $.trim(sv[1]) === $.trim(vl))) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(sv[1]), ovm)>-1 || $.inArray($.trim(sv[0]), ovm)>-1)) {ov.selected =\"selected\";}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (Object.prototype.toString.call(options.value) === \"[object Array]\") {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\t// array of arrays [[Key, Value], [Key, Value], ...]\n\t\t\t\t\t\tfor (i=0; i<oSv.length; i++) {\n\t\t\t\t\t\t\tif(oSv[i].length === 2) {\n\t\t\t\t\t\t\t\tkey = oSv[i][0]; \n\t\t\t\t\t\t\t\tvalue = oSv[i][1];\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = value;\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(value) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(value),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (typeof options.value === 'object') {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\tfor (key in oSv) {\n\t\t\t\t\t\t\tif (oSv.hasOwnProperty(key ) ){\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = oSv[key];\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(oSv[key]) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(oSv[key]),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"image\" :\n\t\t\tcase \"file\" :\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tbreak;\n\t\t\tcase \"custom\" :\n\t\t\t\telem = document.createElement(\"span\");\n\t\t\t\ttry {\n\t\t\t\t\tif($.isFunction(options.custom_element)) {\n\t\t\t\t\t\tvar celm = options.custom_element.call($t,vl,options);\n\t\t\t\t\t\tif(celm) {\n\t\t\t\t\t\t\tcelm = $(celm).addClass(\"customelement\").attr({id:options.id,name:options.name});\n\t\t\t\t\t\t\t$(elem).empty().append(celm);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow \"e2\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow \"e1\";\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\t\t\t\t\tedit =$.jgrid.getRegional($t, 'edit');\n\n\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,typeof e===\"string\"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tdefault :\n\t\t\t\tvar role;\n\t\t\t\tif(eltype===\"button\") { role = \"button\"; }\n\t\t\t\telse { role = \"textbox\"; } // ???\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tif(eltype !== \"button\"){\n\t\t\t\t\tif(autowidth) {\n\t\t\t\t\t\tif(!options.size) { $(elem).css({width:\"96%\"}); }\n\t\t\t\t\t} else if (!options.size) { options.size = 20; }\n\t\t\t\t}\n\t\t\t\t$(elem).attr(\"role\",role);\n\t\t}\n\t\treturn elem;\n\t},\n// Date Validation Javascript\n\tcheckDate : function (format, date) {\n\t\tvar daysInFebruary = function(year){\n\t\t// February has 29 days in any year evenly divisible by four,\n\t\t// EXCEPT for centurial years which are not also divisible by 400.\n\t\t\treturn (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );\n\t\t},\n\t\ttsp = {}, sep;\n\t\tformat = format.toLowerCase();\n\t\t//we search for /,-,. for the date separator\n\t\tif(format.indexOf(\"/\") !== -1) {\n\t\t\tsep = \"/\";\n\t\t} else if(format.indexOf(\"-\") !== -1) {\n\t\t\tsep = \"-\";\n\t\t} else if(format.indexOf(\".\") !== -1) {\n\t\t\tsep = \".\";\n\t\t} else {\n\t\t\tsep = \"/\";\n\t\t}\n\t\tformat = format.split(sep);\n\t\tdate = date.split(sep);\n\t\tif (date.length !== 3) { return false; }\n\t\tvar j=-1,yln, dln=-1, mln=-1, i;\n\t\tfor(i=0;i<format.length;i++){\n\t\t\tvar dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10);\n\t\t\ttsp[format[i]] = dv;\n\t\t\tyln = format[i];\n\t\t\tif(yln.indexOf(\"y\") !== -1) { j=i; }\n\t\t\tif(yln.indexOf(\"m\") !== -1) { mln=i; }\n\t\t\tif(yln.indexOf(\"d\") !== -1) { dln=i; }\n\t\t}\n\t\tif (format[j] === \"y\" || format[j] === \"yyyy\") {\n\t\t\tyln=4;\n\t\t} else if(format[j] ===\"yy\"){\n\t\t\tyln = 2;\n\t\t} else {\n\t\t\tyln = -1;\n\t\t}\n\t\tvar daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31],\n\t\tstrDate;\n\t\tif (j === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[j]].toString();\n\t\t\tif(yln === 2 && strDate.length === 1) {yln = 1;}\n\t\t\tif (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!==\"00\")){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(mln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[mln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(dln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[dln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){\n\t\t\t\treturn false;\n\t\t\t}\n\t\treturn true;\n\t},\n\tisEmpty : function(val)\n\t{\n\t\tif (val === undefined || val.match(/^\\s+$/) || val === \"\")\t{\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\tcheckTime : function(time){\n\t// checks only hh:ss (and optional am/pm)\n\t\tvar re = /^(\\d{1,2}):(\\d{2})([apAP][Mm])?$/,regs;\n\t\tif(!$.jgrid.isEmpty(time))\n\t\t{\n\t\t\tregs = time.match(re);\n\t\t\tif(regs) {\n\t\t\t\tif(regs[3]) {\n\t\t\t\t\tif(regs[1] < 1 || regs[1] > 12) { return false; }\n\t\t\t\t} else {\n\t\t\t\t\tif(regs[1] > 23) { return false; }\n\t\t\t\t}\n\t\t\t\tif(regs[2] > 59) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\tcheckValues : function(val, valref, customobject, nam) {\n\t\tvar edtrul,i, nm, dft, len, g = this, cm = g.p.colModel,\n\t\tmsg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate;\n\t\tif(customobject === undefined) {\n\t\t\tif(typeof valref==='string'){\n\t\t\t\tfor( i =0, len=cm.length;i<len; i++){\n\t\t\t\t\tif(cm[i].name===valref) {\n\t\t\t\t\t\tedtrul = cm[i].editrules;\n\t\t\t\t\t\tvalref = i;\n\t\t\t\t\t\tif(cm[i].formoptions != null) { nm = cm[i].formoptions.label; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(valref >=0) {\n\t\t\t\tedtrul = cm[valref].editrules;\n\t\t\t}\n\t\t} else {\n\t\t\tedtrul = customobject;\n\t\t\tnm = nam===undefined ? \"_\" : nam;\n\t\t}\n\t\tif(edtrul) {\n\t\t\tif(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; }\n\t\t\tif(edtrul.required === true) {\n\t\t\t\tif( $.jgrid.isEmpty(val) )  { return [false,nm+\": \"+msg.required,\"\"]; }\n\t\t\t}\n\t\t\t// force required\n\t\t\tvar rqfield = edtrul.required === false ? false : true;\n\t\t\tif(edtrul.number === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.number,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) {\n\t\t\t\tif (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+\": \"+msg.minValue+\" \"+edtrul.minValue,\"\"];}\n\t\t\t}\n\t\t\tif(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) {\n\t\t\t\tif (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+\": \"+msg.maxValue+\" \"+edtrul.maxValue,\"\"];}\n\t\t\t}\n\t\t\tvar filter;\n\t\t\tif(edtrul.email === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t// taken from $ Validate plugin\n\t\t\t\t\tfilter = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.email,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.integer === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.integer,\"\"]; }\n\t\t\t\t\tif ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+\": \"+msg.integer,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.date === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(cm[valref].formatoptions && cm[valref].formatoptions.newformat) {\n\t\t\t\t\t\tdft = cm[valref].formatoptions.newformat;\n\t\t\t\t\t\tfmtdate = $.jgrid.getRegional(g, 'formatter.date.masks');\n\t\t\t\t\t\tif(fmtdate && fmtdate.hasOwnProperty(dft) ) {\n\t\t\t\t\t\t\tdft = fmtdate[dft];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdft = cm[valref].datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tif(!$.jgrid.checkDate (dft, val)) { return [false,nm+\": \"+msg.date+\" - \"+dft,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.time === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(!$.jgrid.checkTime (val)) { return [false,nm+\": \"+msg.date+\" - hh:mm (am/pm)\",\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.url === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tfilter = /^(((https?)|(ftp)):\\/\\/([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\\\/+@&#;`~=%!]*)(\\.\\w{2,})?)*\\/?)/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.url,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.custom === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif($.isFunction(edtrul.custom_func)) {\n\t\t\t\t\t\tvar ret = edtrul.custom_func.call(g,val,nm,valref);\n\t\t\t\t\t\treturn $.isArray(ret) ? ret : [false,msg.customarray,\"\"];\n\t\t\t\t\t}\n\t\t\t\t\treturn [false,msg.customfcheck,\"\"];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [true,\"\",\"\"];\n\t}\n});\n\n//module begin\n$.fn.jqFilter = function( arg ) {\n\tif (typeof arg === 'string') {\n\t\t\n\t\tvar fn = $.fn.jqFilter[arg];\n\t\tif (!fn) {\n\t\t\tthrow (\"jqFilter - No such method: \" + arg);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\n\tvar p = $.extend(true,{\n\t\tfilter: null,\n\t\tcolumns: [],\n\t\tsortStrategy: null,\n\t\tonChange : null,\n\t\tafterRedraw : null,\n\t\tcheckValues : null,\n\t\terror: false,\n\t\terrmsg : \"\",\n\t\terrorcheck : true,\n\t\tshowQuery : true,\n\t\tsopt : null,\n\t\tops : [],\n\t\toperands : null,\n\t\tnumopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\tstropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\tstrarr : ['text', 'string', 'blob'],\n\t\tgroupOps : [{ op: \"AND\", text: \"AND\" },\t{ op: \"OR\",  text: \"OR\" }],\n\t\tgroupButton : true,\n\t\truleButtons : true,\n\t\tuniqueSearchFields : false,\n\t\tdirection : \"ltr\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t}, $.jgrid.filter, arg || {});\n\treturn this.each( function() {\n\t\tif (this.filter) {return;}\n\t\tthis.p = p;\n\t\t// setup filter in case if they is not defined\n\t\tif (this.p.filter === null || this.p.filter === undefined) {\n\t\t\tthis.p.filter = {\n\t\t\t\tgroupOp: this.p.groupOps[0].op,\n\t\t\t\trules: [],\n\t\t\t\tgroups: []\n\t\t\t};\n\t\t}\n\n\t\t// Sort the columns if the sort strategy is provided.\n\t\tif (this.p.sortStrategy != null && $.isFunction(this.p.sortStrategy)) {\n\t\t\tthis.p.columns.sort(this.p.sortStrategy);\n\t\t}\n\n\t\tvar i, len = this.p.columns.length, cl,\n\t\tisIE = /msie/i.test(navigator.userAgent) && !window.opera;\n\n\t\t// translating the options\n\t\tthis.p.initFilter = $.extend(true,{},this.p.filter);\n\n\t\t// set default values for the columns if they are not set\n\t\tif( !len ) {return;}\n\t\tfor(i=0; i < len; i++) {\n\t\t\tcl = this.p.columns[i];\n\t\t\tif( cl.stype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.inputtype = cl.stype;\n\t\t\t} else if(!cl.inputtype) {\n\t\t\t\tcl.inputtype = 'text';\n\t\t\t}\n\t\t\tif( cl.sorttype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.searchtype = cl.sorttype;\n\t\t\t} else if (!cl.searchtype) {\n\t\t\t\tcl.searchtype = 'string';\n\t\t\t}\n\t\t\tif(cl.hidden === undefined) {\n\t\t\t\t// jqGrid compatibility\n\t\t\t\tcl.hidden = false;\n\t\t\t}\n\t\t\tif(!cl.label) {\n\t\t\t\tcl.label = cl.name;\n\t\t\t}\n\t\t\tif(cl.index) {\n\t\t\t\tcl.name = cl.index;\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchoptions')) {\n\t\t\t\tcl.searchoptions = {};\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchrules')) {\n\t\t\t\tcl.searchrules = {};\n\t\t\t}\n\t\t\tif(cl.search === undefined) {\n\t\t\t\tcl.inlist = true;\n\t\t\t} else {\n\t\t\t\tcl.inlist = cl.search;\n\t\t\t}\n\t\t}\n\t\tvar getGrid = function () {\n\t\t\treturn $(\"#\" + $.jgrid.jqID(p.id))[0] || null;\n\t\t},\n\t\t\n\t\t$tg = getGrid(),\n\t\tclasses = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter,\n\t\tcommon = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common;\n\n\t\t\n\t\tif(this.p.showQuery) {\n\t\t\t$(this).append(\"<table class='queryresult \" + classes.table_widget + \"' style='display:block;max-width:440px;border:0px none;' dir='\"+this.p.direction+\"'><tbody><tr><td class='query'></td></tr></tbody></table>\");\n\t\t}\n\t\t/*\n\t\t *Perform checking.\n\t\t *\n\t\t*/\n\t\tvar checkData = function(val, colModelItem) {\n\t\t\tvar ret = [true,\"\"], $t = getGrid();\n\t\t\tif($.isFunction(colModelItem.searchrules)) {\n\t\t\t\tret = colModelItem.searchrules.call($t, val, colModelItem);\n\t\t\t} else if($.jgrid && $.jgrid.checkValues) {\n\t\t\t\ttry {\n\t\t\t\t\tret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label);\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\tif(ret && ret.length && ret[0] === false) {\n\t\t\t\tp.error = !ret[0];\n\t\t\t\tp.errmsg = ret[1];\n\t\t\t}\n\t\t};\n\t\t/* moving to common\n\t\trandId = function() {\n\t\t\treturn Math.floor(Math.random()*10000).toString();\n\t\t};\n\t\t*/\n\n\t\tthis.onchange = function (  ){\n\t\t\t// clear any error \n\t\t\tthis.p.error = false;\n\t\t\tthis.p.errmsg=\"\";\n\t\t\treturn $.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false;\n\t\t};\n\t\t/*\n\t\t * Redraw the filter every time when new field is added/deleted\n\t\t * and field is  changed\n\t\t */\n\t\tthis.reDraw = function() {\n\t\t\t$(\"table.group:first\",this).remove();\n\t\t\tvar t = this.createTableForGroup(p.filter, null);\n\t\t\t$(this).append(t);\n\t\t\tif($.isFunction(this.p.afterRedraw) ) {\n\t\t\t\tthis.p.afterRedraw.call(this, this.p);\n\t\t\t}\n\t\t};\n\t\t/*\n\t\t * Creates a grouping data for the filter\n\t\t * @param group - object\n\t\t * @param parentgroup - object\n\t\t */\n\t\tthis.createTableForGroup = function(group, parentgroup) {\n\t\t\tvar that = this,  i;\n\t\t\t// this table will hold all the group (tables) and rules (rows)\n\t\t\tvar table = $(\"<table class='group \" + classes.table_widget +\" ui-search-table' style='border:0px none;'><tbody></tbody></table>\"),\n\t\t\t// create error message row\n\t\t\talign = \"left\";\n\t\t\tif(this.p.direction === \"rtl\") {\n\t\t\t\talign = \"right\";\n\t\t\t\ttable.attr(\"dir\",\"rtl\");\n\t\t\t}\n\t\t\tif(parentgroup === null) {\n\t\t\t\ttable.append(\"<tr class='error' style='display:none;'><th colspan='5' class='\" + common.error + \"' align='\"+align+\"'></th></tr>\");\n\t\t\t}\n\n\t\t\tvar tr = $(\"<tr></tr>\");\n\t\t\ttable.append(tr);\n\t\t\t// this header will hold the group operator type and group action buttons for\n\t\t\t// creating subgroup \"+ {}\", creating rule \"+\" or deleting the group \"-\"\n\t\t\tvar th = $(\"<th colspan='5' align='\"+align+\"'></th>\");\n\t\t\ttr.append(th);\n\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// dropdown for: choosing group operator type\n\t\t\tvar groupOpSelect = $(\"<select class='opsel \" + classes.srSelect + \"'></select>\");\n\t\t\tth.append(groupOpSelect);\n\t\t\t// populate dropdown with all posible group operators: or, and\n\t\t\tvar str= \"\", selected;\n\t\t\tfor (i = 0; i < p.groupOps.length; i++) {\n\t\t\t\tselected =  group.groupOp === that.p.groupOps[i].op ? \" selected='selected'\" :\"\";\n\t\t\t\tstr += \"<option value='\"+that.p.groupOps[i].op+\"'\" + selected+\">\"+that.p.groupOps[i].text+\"</option>\";\n\t\t\t}\n\n\t\t\tgroupOpSelect\n\t\t\t.append(str)\n\t\t\t.on('change',function() {\n\t\t\t\tgroup.groupOp = $(groupOpSelect).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\t\t\t}\n\t\t\t// button for adding a new subgroup\n\t\t\tvar inputAddSubgroup =\"<span></span>\";\n\t\t\tif(this.p.groupButton) {\n\t\t\t\tinputAddSubgroup = $(\"<input type='button' value='+ {}' title='\" +that.p.subgroup+\"' class='add-group \" + common.button + \"'/>\");\n\t\t\t\tinputAddSubgroup.on('click',function() {\n\t\t\t\t\tif (group.groups === undefined ) {\n\t\t\t\t\t\tgroup.groups = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgroup.groups.push({\n\t\t\t\t\t\tgroupOp: p.groupOps[0].op,\n\t\t\t\t\t\trules: [],\n\t\t\t\t\t\tgroups: []\n\t\t\t\t\t}); // adding a new group\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tth.append(inputAddSubgroup);\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// button for adding a new rule\n\t\t\tvar inputAddRule = $(\"<input type='button' value='+' title='\"+that.p.addrule+\"' class='add-rule ui-add \" + common.button + \"'/>\"), cm;\n\t\t\tinputAddRule.on('click',function() {\n\t\t\t\t//if(!group) { group = {};}\n\t\t\t\tif (group.rules === undefined) {\n\t\t\t\t\tgroup.rules = [];\n\t\t\t\t}\n\t\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ?  true: that.p.columns[i].search,\n\t\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( !cm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar opr;\n\t\t\t\tif( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { opr= that.p.sopt; }\n\t\t\t\telse if  ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;}\n\t\t\t\telse {opr = that.p.numopts;}\n\n\t\t\t\tgroup.rules.push({\n\t\t\t\t\tfield: cm.name,\n\t\t\t\t\top: opr[0],\n\t\t\t\t\tdata: \"\"\n\t\t\t\t}); // adding a new rule\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\t\t\t\t// for the moment no change have been made to the rule, so\n\t\t\t\t// this will not trigger onchange event\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tth.append(inputAddRule);\n\t\t\t}\n\n\t\t\t// button for delete the group\n\t\t\tif (parentgroup !== null) { // ignore the first group\n\t\t\t\tvar inputDeleteGroup = $(\"<input type='button' value='-' title='\"+that.p.delgroup+\"' class='delete-group \" + common.button + \"'/>\");\n\t\t\t\tth.append(inputDeleteGroup);\n\t\t\t\tinputDeleteGroup.on('click',function() {\n\t\t\t\t// remove group from parent\n\t\t\t\t\tfor (i = 0; i < parentgroup.groups.length; i++) {\n\t\t\t\t\t\tif (parentgroup.groups[i] === group) {\n\t\t\t\t\t\t\tparentgroup.groups.splice(i, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// append subgroup rows\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (i = 0; i < group.groups.length; i++) {\n\t\t\t\t\tvar trHolderForSubgroup = $(\"<tr></tr>\");\n\t\t\t\t\ttable.append(trHolderForSubgroup);\n\n\t\t\t\t\tvar tdFirstHolderForSubgroup = $(\"<td class='first'></td>\");\n\t\t\t\t\ttrHolderForSubgroup.append(tdFirstHolderForSubgroup);\n\n\t\t\t\t\tvar tdMainHolderForSubgroup = $(\"<td colspan='4'></td>\");\n\t\t\t\t\ttdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));\n\t\t\t\t\ttrHolderForSubgroup.append(tdMainHolderForSubgroup);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(group.groupOp === undefined) {\n\t\t\t\tgroup.groupOp = that.p.groupOps[0].op;\n\t\t\t}\n\n\t\t\t// append rules rows\n\t\t\tvar suni = that.p.ruleButtons && that.p.uniqueSearchFields;\n\t\t\tif( suni ) {\n\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\tif(that.p.columns[ii].inlist) {\n\t\t\t\t\t\tthat.p.columns[ii].search = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\ttable.append(\n                       this.createTableRowForRule(group.rules[i], group)\n\t\t\t\t\t);\n\t\t\t\t\tif( suni ) {\n\t\t\t\t\t\tvar field = group.rules[i].field;\n\t\t\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\t\t\tif(field === that.p.columns[ii].name) {\n\t\t\t\t\t\t\t\tthat.p.columns[ii].search = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn table;\n\t\t};\n\t\t/*\n\t\t * Create the rule data for the filter\n\t\t */\n\t\tthis.createTableRowForRule = function(rule, group ) {\n\t\t\t// save current entity in a variable so that it could\n\t\t\t// be referenced in anonimous method calls\n\n\t\t\tvar that=this, $t = getGrid(), tr = $(\"<tr></tr>\"),\n\t\t\t//document.createElement(\"tr\"),\n\n\t\t\t// first column used for padding\n\t\t\t//tdFirstHolderForRule = document.createElement(\"td\"),\n\t\t\ti, op, trpar, cm, str=\"\", selected;\n\t\t\t//tdFirstHolderForRule.setAttribute(\"class\", \"first\");\n\t\t\ttr.append(\"<td class='first'></td>\");\n\n\n\t\t\t// create field container\n\t\t\tvar ruleFieldTd = $(\"<td class='columns'></td>\");\n\t\t\ttr.append(ruleFieldTd);\n\n\n\t\t\t// dropdown for: choosing field\n\t\t\tvar ruleFieldSelect = $(\"<select class='\" + classes.srSelect + \"'></select>\"), ina, aoprs = [];\n\t\t\truleFieldTd.append(ruleFieldSelect);\n\t\t\truleFieldSelect.on('change',function() {\n\t\t\t\tif( that.p.ruleButtons && that.p.uniqueSearchFields ) {\n\t\t\t\t\tvar prev = parseInt($(this).data('curr'),10),\n\t\t\t\t\tcurr = this.selectedIndex;\n\t\t\t\t\tif(prev >= 0 ) {\n\t\t\t\t\t\tthat.p.columns[prev].search = true;\n\t\t\t\t\t\t$(this).data('curr', curr);\n\t\t\t\t\t\tthat.p.columns[curr].search = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trule.field = $(ruleFieldSelect).val();\n\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\t$(\".data\",trpar).empty();\n\t\t\t\tfor (i=0;i<that.p.columns.length;i++) {\n\t\t\t\t\tif(that.p.columns[i].name ===  rule.field) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cm) {return;}\n\t\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\t\tcm.searchoptions.name = rule.field;\n\t\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\t\t\n\t\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, \"\", true, that.p.ajaxSelectOptions || {}, true);\n\t\t\t\t$(elm).addClass(\"input-elm \" + classes.srInput );\n\t\t\t\t//that.createElement(rule, \"\");\n\n\t\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\t\telse {op = that.p.numopts;}\n\t\t\t\t// operators\n\t\t\t\tvar s =\"\", so = 0;\n\t\t\t\taoprs = [];\n\t\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < op.length; i++) {\n\t\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tif(so===0) {\n\t\t\t\t\t\t\trule.op = that.p.ops[ina].oper;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += \"<option value='\"+that.p.ops[ina].oper+\"'>\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t\t\tso++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\".selectopts\",trpar).empty().append( s );\n\t\t\t\t$(\".selectopts\",trpar)[0].selectedIndex = 0;\n\t\t\t\tif( $.jgrid.msie() && $.jgrid.msiever() < 9) {\n\t\t\t\t\tvar sw = parseInt($(\"select.selectopts\",trpar)[0].offsetWidth, 10) + 1;\n\t\t\t\t\t$(\".selectopts\",trpar).width( sw );\n\t\t\t\t\t$(\".selectopts\",trpar).css(\"width\",\"auto\");\n\t\t\t\t}\n\t\t\t\t// data\n\t\t\t\t$(\".data\",trpar).append( elm );\n\t\t\t\t$.jgrid.bindEv.call($t, elm, cm.searchoptions);\n\t\t\t\t$(\".input-elm\",trpar).on('change',function( e ) {\n\t\t\t\t\tvar elem = e.target;\n\t\t\t\t\trule.data = elem.nodeName.toUpperCase() === \"SPAN\" && cm.searchoptions && $.isFunction(cm.searchoptions.custom_value) ?\n\t\t\t\t\t\tcm.searchoptions.custom_value.call($t, $(elem).children(\".customelement:first\"), 'get') : elem.value;\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t});\n\t\t\t\tsetTimeout(function(){ //IE, Opera, Chrome\n\t\t\t\trule.data = $(elm).val();\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t\t}, 0);\n\t\t\t});\n\n\t\t\t// populate drop down with user provided column definitions\n\t\t\tvar j=0;\n\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,\n\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\tselected = \"\";\n\t\t\t\t\tif(rule.field === that.p.columns[i].name) {\n\t\t\t\t\t\tselected = \" selected='selected'\";\n\t\t\t\t\t\tj=i;\n\t\t\t\t\t}\n\t\t\t\t\tstr += \"<option value='\"+that.p.columns[i].name+\"'\" +selected+\">\"+that.p.columns[i].label+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleFieldSelect.append( str );\n\t\t\truleFieldSelect.data('curr', j);\n\n\n\t\t\t// create operator container\n\t\t\tvar ruleOperatorTd = $(\"<td class='operators'></td>\");\n\t\t\ttr.append(ruleOperatorTd);\n\t\t\tcm = p.columns[j];\n\t\t\t// create it here so it can be referentiated in the onchange event\n\t\t\t//var RD = that.createElement(rule, rule.data);\n\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcm.searchoptions.name = rule.field;\n\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\tvar ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true);\n\t\t\tif(rule.op === 'nu' || rule.op === 'nn') {\n\t\t\t\t$(ruleDataInput).attr('readonly','true');\n\t\t\t\t$(ruleDataInput).attr('disabled','true');\n\t\t\t} //retain the state of disabled text fields in case of null ops\n\t\t\t// dropdown for: choosing operator\n\t\t\tvar ruleOperatorSelect = $(\"<select class='selectopts \" + classes.srSelect + \"'></select>\");\n\t\t\truleOperatorTd.append(ruleOperatorSelect);\n\t\t\truleOperatorSelect.on('change',function() {\n\t\t\t\trule.op = $(ruleOperatorSelect).val();\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\tvar rd = $(\".input-elm\",trpar)[0];\n\t\t\t\tif (rule.op === \"nu\" || rule.op === \"nn\") { // disable for operator \"is null\" and \"is not null\"\n\t\t\t\t\trule.data = \"\";\n\t\t\t\t\tif(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = \"\"; }\n\t\t\t\t\trd.setAttribute(\"readonly\", \"true\");\n\t\t\t\t\trd.setAttribute(\"disabled\", \"true\");\n\t\t\t\t} else {\n\t\t\t\t\tif(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; }\n\t\t\t\t\trd.removeAttribute(\"readonly\");\n\t\t\t\t\trd.removeAttribute(\"disabled\");\n\t\t\t\t}\n\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// populate drop down with all available operators\n\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\telse {op = that.p.numopts;}\n\t\t\tstr=\"\";\n\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\tfor ( i = 0; i < op.length; i++) {\n\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\tif(ina !== -1) {\n\t\t\t\t\tselected = rule.op === that.p.ops[ina].oper ? \" selected='selected'\" : \"\";\n\t\t\t\t\tstr += \"<option value='\"+that.p.ops[ina].oper+\"'\"+selected+\">\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleOperatorSelect.append( str );\n\t\t\t// create data container\n\t\t\tvar ruleDataTd = $(\"<td class='data'></td>\");\n\t\t\ttr.append(ruleDataTd);\n\n\t\t\t// textbox for: data\n\t\t\t// is created previously\n\t\t\t//ruleDataInput.setAttribute(\"type\", \"text\");\n\t\t\truleDataTd.append(ruleDataInput);\n\t\t\t$.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions);\n\t\t\t$(ruleDataInput)\n\t\t\t.addClass(\"input-elm \" + classes.srInput )\n\t\t\t.on('change', function() {\n\t\t\t\trule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(this).children(\".customelement:first\"),'get') : $(this).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// create action container\n\t\t\tvar ruleDeleteTd = $(\"<td></td>\");\n\t\t\ttr.append(ruleDeleteTd);\n\n\t\t\t// create button for: delete rule\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\tvar ruleDeleteInput = $(\"<input type='button' value='-' title='\"+that.p.delrule+\"' class='delete-rule ui-del \" + common.button + \"'/>\");\n\t\t\truleDeleteTd.append(ruleDeleteInput);\n\t\t\t//$(ruleDeleteInput).html(\"\").height(20).width(30).button({icons: {  primary: \"ui-icon-minus\", text:false}});\n\t\t\truleDeleteInput.on('click',function() {\n\t\t\t\t// remove rule from group\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\tif (group.rules[i] === rule) {\n\t\t\t\t\t\tgroup.rules.splice(i, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t}\n\t\t\treturn tr;\n\t\t};\n\n\t\tthis.getStringForGroup = function(group) {\n\t\t\tvar s = \"(\", index;\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\ts += this.getStringForGroup(group.groups[index]);\n\t\t\t\t\t} catch (eg) {alert(eg);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\ttry{\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += this.getStringForRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {alert(e);}\n\t\t\t}\n\n\t\t\ts += \")\";\n\n\t\t\tif (s === \"()\") {\n\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t}\n\t\t\treturn s;\n\t\t};\n\t\tthis.getStringForRule = function(rule) {\n\t\t\tvar opUF = \"\",opC=\"\", i, cm, ret, val,\n\t\t\tnumtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid\n\t\t\tfor (i = 0; i < this.p.ops.length; i++) {\n\t\t\t\tif (this.p.ops[i].oper === rule.op) {\n\t\t\t\t\topUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : \"\";\n\t\t\t\t\topC = this.p.ops[i].oper;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (i=0; i<this.p.columns.length; i++) {\n\t\t\t\tif(this.p.columns[i].name === rule.field) {\n\t\t\t\t\tcm = this.p.columns[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cm === undefined) { return \"\"; }\n\t\t\tval = rule.data;\n\t\t\tif(opC === 'bw' || opC === 'bn') { val = val+\"%\"; }\n\t\t\tif(opC === 'ew' || opC === 'en') { val = \"%\"+val; }\n\t\t\tif(opC === 'cn' || opC === 'nc') { val = \"%\"+val+\"%\"; }\n\t\t\tif(opC === 'in' || opC === 'ni') { val = \" (\"+val+\")\"; }\n\t\t\tif(p.errorcheck) { checkData(rule.data, cm); }\n\t\t\tif($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu') { ret = rule.field + \" \" + opUF + \" \" + val; }\n\t\t\telse { ret = rule.field + \" \" + opUF + \" \\\"\" + val + \"\\\"\"; }\n\t\t\treturn ret;\n\t\t};\n\t\tthis.resetFilter = function () {\n\t\t\tthis.p.filter = $.extend(true,{},this.p.initFilter);\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t};\n\t\tthis.hideError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(\"\");\n\t\t\t$(\"tr.error\", this).hide();\n\t\t};\n\t\tthis.showError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(this.p.errmsg);\n\t\t\t$(\"tr.error\", this).show();\n\t\t};\n\t\tthis.toUserFriendlyString = function() {\n\t\t\treturn this.getStringForGroup(p.filter);\n\t\t};\n\t\tthis.toString = function() {\n\t\t\t// this will obtain a string that can be used to match an item.\n\t\t\tvar that = this;\n\t\t\tfunction getStringRule(rule) {\n\t\t\t\tif(that.p.errorcheck) {\n\t\t\t\t\tvar i, cm;\n\t\t\t\t\tfor (i=0; i<that.p.columns.length; i++) {\n\t\t\t\t\t\tif(that.p.columns[i].name === rule.field) {\n\t\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cm) {checkData(rule.data, cm);}\n\t\t\t\t}\n\t\t\t\treturn rule.op + \"(item.\" + rule.field + \",'\" + rule.data + \"')\";\n\t\t\t}\n\n\t\t\tfunction getStringForGroup(group) {\n\t\t\t\tvar s = \"(\", index;\n\n\t\t\t\tif (group.groups !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringForGroup(group.groups[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (group.rules !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse  {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ts += \")\";\n\n\t\t\t\tif (s === \"()\") {\n\t\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t}\n\n\t\t\treturn getStringForGroup(this.p.filter);\n\t\t};\n\n\t\t// Here we init the filter\n\t\tthis.reDraw();\n\n\t\tif(this.p.showQuery) {\n\t\t\tthis.onchange();\n\t\t}\n\t\t// mark is as created so that it will not be created twice on this element\n\t\tthis.filter = true;\n\t});\n};\n$.extend($.fn.jqFilter,{\n\t/*\n\t * Return SQL like string. Can be used directly\n\t */\n\ttoSQLString : function()\n\t{\n\t\tvar s =\"\";\n\t\tthis.each(function(){\n\t\t\ts = this.toUserFriendlyString();\n\t\t});\n\t\treturn s;\n\t},\n\t/*\n\t * Return filter data as object.\n\t */\n\tfilterData : function()\n\t{\n\t\tvar s;\n\t\tthis.each(function(){\n\t\t\ts = this.p.filter;\n\t\t});\n\t\treturn s;\n\n\t},\n\tgetParameter : function (param) {\n\t\tif(param !== undefined) {\n\t\t\tif (this.p.hasOwnProperty(param) ) {\n\t\t\t\treturn this.p[param];\n\t\t\t}\n\t\t}\n\t\treturn this.p;\n\t},\n\tresetFilter: function() {\n\t\treturn this.each(function(){\n\t\t\tthis.resetFilter();\n\t\t});\n\t},\n\taddFilter: function (pfilter) {\n\t\tif (typeof pfilter === \"string\") {\n\t\t\tpfilter = $.jgrid.parse( pfilter );\n\t\t}\n\t\tthis.each(function(){\n\t\t\tthis.p.filter = pfilter;\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t});\n\t}\n\n});\n$.jgrid.extend({\n\tfilterToolbar : function(p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend({\n\t\t\tautosearch: true,\n\t\t\tautosearchDelay: 500,\n\t\t\tsearchOnEnter : true,\n\t\t\tbeforeSearch: null,\n\t\t\tafterSearch: null,\n\t\t\tbeforeClear: null,\n\t\t\tafterClear: null,\n\t\t\tonClearSearchValue : null,\n\t\t\tsearchurl : '',\n\t\t\tstringResult: false,\n\t\t\tgroupOp: 'AND',\n\t\t\tdefaultSearch : \"bw\",\n\t\t\tsearchOperators : false,\n\t\t\tresetIcon : \"x\",\n\t\t\tsplitSelect : \",\",\n\t\t\tgroupOpSelect : \"OR\",\n\t\t\toperands : { \"eq\" :\"==\", \"ne\":\"!\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"^\",\"bn\":\"!^\",\"in\":\"=\",\"ni\":\"!=\",\"ew\":\"|\",\"en\":\"!@\",\"cn\":\"~\",\"nc\":\"!~\",\"nu\":\"#\",\"nn\":\"!#\", \"bt\":\"...\"}\n\t\t}, regional , p  || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif($t.p.filterToolbar) { return; }\n\t\t\tif(!$($t).data('filterToolbar')) {\n\t\t\t\t$($t).data('filterToolbar', p);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\tp = $.extend(p, regional);\n\t\t\t}\n\t\t\tvar classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tbase = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base,\t\t\t\n\n\t\t\ttriggerToolbar = function() {\n\t\t\t\tvar sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], bbt =false, sop;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar $elem = $(\"#gs_\"+ $t.p.idPrefix + $.jgrid.jqID(this.name), (this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\t\tif(p.searchOperators &&  sop.searchOperMenu) {\n\t\t\t\t\t\tso = $elem.parent().prev().children(\"a\").attr(\"soper\") || p.defaultSearch;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tso  = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t}\n\t\t\t\t\tv = this.stype === \"custom\" && $.isFunction(sop.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\" ?\n\t\t\t\t\t\tsop.custom_value.call($t, $elem.children(\".customelement:first\"), \"get\") :\n\t\t\t\t\t\t$elem.val();\n\t\t\t\t\t// detect multiselect\n\t\t\t\t\tif(this.stype === 'select' && sop.multiple && $.isArray(v) && v.length) {\n\t\t\t\t\t\tms = true;\n\t\t\t\t\t\tssfield.push(nm);\n\t\t\t\t\t\tv= v.length === 1 ? v[0] : v;\n\t\t\t\t\t}\n\t\t\t\t\tif(so===\"bt\") {\n\t\t\t\t\t\tbbt = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(v || so===\"nu\" || so===\"nn\") {\n\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\tsopt[nm] = so;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t} catch (z) {}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\" || p.searchOperators === true) \n\t\t\t\t{\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + sopt[i] + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t// multiselect\n\t\t\t\t\tvar filters, rules, k,str, rule, ssdata, group;\n\t\t\t\t\tif(ms) {\n\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);//, rules, k,str, rule, ssdata, group;\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif($.inArray(rule.filed, ssfield)) {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(p.splitSelect);\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: p.groupOpSelect, groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: rule.op, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//ruleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt) {\n\t\t\t\t\t\tif(!$.isPlainObject(filters)) {\n\t\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif(rule.op === \"bt\") {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(\"...\");\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: 'AND', groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tvar btop = l === 0 ? 'ge' : 'le';\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif(str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: btop, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt || ms ) {\n\t\t\t\t\t\truleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bsr = $($t).triggerHandler(\"jqGridToolbarBeforeSearch\") === 'stop' ? true : false;\n\t\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterSearch\");\n\t\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t\t},\n\t\t\tclearToolbar = function(trigger){\n\t\t\t\tvar sdata={}, j=0, nm;\n\t\t\t\ttrigger = (typeof trigger !== 'boolean') ? true : trigger;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar v, $elem = $(\"#gs_\"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tif(this.searchoptions && this.searchoptions.defaultValue !== undefined) { \n\t\t\t\t\t\tv = this.searchoptions.defaultValue; \n\t\t\t\t\t}\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tswitch (this.stype) {\n\t\t\t\t\t\tcase 'select' :\n\t\t\t\t\t\t\t$elem.find(\"option\").each(function (i){\n\t\t\t\t\t\t\t\tif(i===0) { this.selected = true; }\n\t\t\t\t\t\t\t\tif ($(this).val() === v) {\n\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif ( v !== undefined ) {\n\t\t\t\t\t\t\t\t// post the key and not the text\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\t$elem.val(v || \"\");\n\t\t\t\t\t\t\tif(v !== undefined) {\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch (y){}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom':\n\t\t\t\t\t\t\tif ($.isFunction(this.searchoptions.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\") {\n\t\t\t\t\t\t\t\tthis.searchoptions.custom_value.call($t, $elem.children(\".customelement:first\"), \"set\", v || \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\") {\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + \"eq\" + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bcv = $($t).triggerHandler(\"jqGridToolbarBeforeClear\") === 'stop' ? true : false;\n\t\t\t\tif(!bcv && $.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}\n\t\t\t\tif(!bcv) {\n\t\t\t\t\tif(trigger) {\n\t\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterClear\");\n\t\t\t\tif($.isFunction(p.afterClear)){p.afterClear();}\n\t\t\t},\n\t\t\ttoggleToolbar = function(){\n\t\t\t\tvar trow = $(\"tr.ui-search-toolbar\",$t.grid.hDiv),\n\t\t\t\ttrow2 = $t.p.frozenColumns === true ?  $(\"tr.ui-search-toolbar\",$t.grid.fhDiv) : false;\n\t\t\t\tif(trow.css(\"display\") === 'none') {\n\t\t\t\t\ttrow.show(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.show();\n\t\t\t\t\t}\n\t\t\t\t} else { \n\t\t\t\t\ttrow.hide(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tbuildRuleMenu = function( elem, left, top ){\n\t\t\t\t$(\"#sopt_menu\").remove();\n\n\t\t\t\tleft=parseInt(left,10);\n\t\t\t\ttop=parseInt(top,10) + 18;\n\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\t\tvar str = '<ul id=\"sopt_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\t\tselected = $(elem).attr(\"soper\"), selclass,\n\t\t\t\taoprs = [], ina;\n\t\t\t\tvar i=0, nm =$(elem).attr(\"colname\"),len = $t.p.colModel.length;\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($t.p.colModel[i].name === nm) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tvar cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions);\n\t\t\t\tif(!options.sopt) {\n\t\t\t\t\toptions.sopt = [];\n\t\t\t\t\toptions.sopt[0]= cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t}\n\t\t\t\t$.each(p.odata, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < options.sopt.length; i++) {\n\t\t\t\t\tina = $.inArray(options.sopt[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tselclass = selected === p.odata[ina].oper ? common.highlight : \"\";\n\t\t\t\t\t\tstr += '<li class=\"ui-menu-item '+selclass+'\" role=\"presentation\"><a class=\"'+ common.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"'+p.odata[ina].oper+'\" oper=\"'+p.operands[p.odata[ina].oper]+'\"><table class=\"ui-common-table\"><tr><td width=\"25px\">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstr += \"</ul>\";\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#sopt_menu\").addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#sopt_menu > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(common.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(common.hover); }\n\t\t\t\t).click(function() {\n\t\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\t\toper = $(this).attr(\"oper\");\n\t\t\t\t\t$($t).triggerHandler(\"jqGridToolbarSelectOper\", [v, oper, elem]);\n\t\t\t\t\t$(\"#sopt_menu\").hide();\n\t\t\t\t\t$(elem).text(oper).attr(\"soper\",v);\n\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\tvar inpelm = $(elem).parent().next().children()[0];\n\t\t\t\t\t\tif( $(inpelm).val() || v===\"nu\" || v ===\"nn\") {\n\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t// create the row\n\t\t\tvar tr = $(\"<tr class='ui-search-toolbar' role='row'></tr>\"),\n\t\t\ttimeoutHnd, rules, filterobj;\n\t\t\tif( p.restoreFromFilters ) {\n\t\t\t\tfilterobj = $t.p.postData.filters;\n\t\t\t\tif(filterobj) {\n\t\t\t\t\tif( typeof filterobj === \"string\") {\n\t\t\t\t\t\tfilterobj = $.jgrid.parse( filterobj );\n\t\t\t\t\t}\n\t\t\t\t\trules = filterobj.rules.length ? filterobj.rules : false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.colModel,function(ci){\n\t\t\t\tvar cm=this, soptions, select=\"\", sot=\"=\", so, i, st, csv, df, elem, restores,\n\t\t\t\tth = $(\"<th role='columnheader' class='\" + base.headerBox+\" ui-th-\"+$t.p.direction+\"' id='gsh_\" + $t.p.id + \"_\" + cm.name + \"' ></th>\"),\n\t\t\t\tthd = $(\"<div></div>\"),\n\t\t\t\tstbl = $(\"<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>\");\n\t\t\t\tif(this.hidden===true) { $(th).css(\"display\",\"none\");}\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif(this.stype === undefined) {this.stype='text';}\n\t\t\t\tthis.searchoptions = this.searchoptions || {};\n\t\t\t\tif(this.searchoptions.searchOperMenu === undefined) {\n\t\t\t\t\tthis.searchoptions.searchOperMenu = true;\n\t\t\t\t}\n\t\t\t\tsoptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: \"gs_\"+$t.p.idPrefix+cm.name, oper:'search'});\n\t\t\t\tif(this.search){\n\t\t\t\t\tif( p.restoreFromFilters && rules) {\n\t\t\t\t\t\trestores = false;\n\t\t\t\t\t\tfor( var is = 0; is < rules.length; is++) {\n\t\t\t\t\t\t\tif(rules[is].field ) {\n\t\t\t\t\t\t\t\tvar snm = cm.index || cm.name;\n\t\t\t\t\t\t\t\tif( snm === rules[is].field) {\n\t\t\t\t\t\t\t\t\trestores = rules[is];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(p.searchOperators) {\n\t\t\t\t\t\tso  = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t\t// overwrite  search operators\n\t\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\t\tso = restores.op;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i = 0;i<p.odata.length;i++) {\n\t\t\t\t\t\t\tif(p.odata[i].oper === so) {\n\t\t\t\t\t\t\t\tsot = p.operands[so] || \"\";\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tst = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle;\n\t\t\t\t\t\tselect = this.searchoptions.searchOperMenu ? \"<a title='\"+st+\"' style='padding-right: 0.5em;' soper='\"+so+\"' class='soptclass' colname='\"+this.name+\"'>\"+sot+\"</a>\" : \"\";\n\t\t\t\t\t}\n\t\t\t\t\t$(\"td:eq(0)\",stbl).attr(\"colindex\",ci).append(select);\n\t\t\t\t\tif(soptions.clearSearch === undefined) {\n\t\t\t\t\t\tsoptions.clearSearch = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(soptions.clearSearch) {\n\t\t\t\t\t\tcsv = p.resetTitle || 'Clear Search Value';\n\t\t\t\t\t\t$(\"td:eq(2)\",stbl).append(\"<a title='\"+csv+\"' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>\"+p.resetIcon+\"</a>\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"td:eq(2)\", stbl).hide();\n\t\t\t\t\t}\n\t\t\t\t\tif(this.surl) {\n\t\t\t\t\t\tsoptions.dataUrl = this.surl;\n\t\t\t\t\t}\n\t\t\t\t\tdf=\"\";\n\t\t\t\t\tif(soptions.defaultValue ) {\n\t\t\t\t\t\tdf = $.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue;\n\t\t\t\t\t}\n\t\t\t\t\t//overwrite default value if restore from filters\n\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\tdf = restores.data;\n\t\t\t\t\t}\n\t\t\t\t\telem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t$(elem).addClass( classes.srInput );\n\t\t\t\t\t$(\"td:eq(1)\",stbl).append(elem);\n\t\t\t\t\t$(thd).append(stbl);\n\t\t\t\t\tif(soptions.dataEvents == null ) {\n\t\t\t\t\t\tsoptions.dataEvents = [];\n\t\t\t\t\t}\n\t\t\t\t\tswitch (this.stype)\n\t\t\t\t\t{\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(p.autosearch === true) {\n\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\ttype : \"change\",\n\t\t\t\t\t\t\t\tfn : function() {\n\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\t\tif(p.searchOnEnter) {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keypress\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\t\t\t\t\t\tif(key === 13){\n\t\t\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn this;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keydown\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.which;\n\t\t\t\t\t\t\t\t\t\tswitch (key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\tcase 9 :\n\t\t\t\t\t\t\t\t\t\t\tcase 16:\n\t\t\t\t\t\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\t\t\t\t\tcase 27:\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault :\n\t\t\t\t\t\t\t\t\t\t\t\tif(timeoutHnd) { clearTimeout(timeoutHnd); }\n\t\t\t\t\t\t\t\t\t\t\t\ttimeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$.jgrid.bindEv.call($t, elem , soptions);\n\t\t\t\t}\n\t\t\t\t$(th).append(thd);\n\t\t\t\t$(tr).append(th);\n\t\t\t\tif(!p.searchOperators || select === \"\") {\n\t\t\t\t\t$(\"td:eq(0)\",stbl).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"table thead\",$t.grid.hDiv).append(tr);\n\t\t\tif(p.searchOperators) {\n\t\t\t\t$(\".soptclass\",tr).click(function(e){\n\t\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\t\tleft = ( offset.left ),\n\t\t\t\t\ttop = ( offset.top);\n\t\t\t\t\tbuildRuleMenu(this, left, top );\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\t\tif(e.target.className !== \"soptclass\") {\n\t\t\t\t\t\t$(\"#sopt_menu\").remove();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".clearsearchclass\",tr).click(function() {\n\t\t\t\tvar ptr = $(this).parents(\"tr:first\"),\n\t\t\t\tcoli = parseInt($(\"td.ui-search-oper\", ptr).attr('colindex'),10),\n\t\t\t\tsval  = $.extend({},$t.p.colModel[coli].searchoptions || {}),\n\t\t\t\tdval = sval.defaultValue ? sval.defaultValue : \"\",\n\t\t\t\telem;\n\t\t\t\tif($t.p.colModel[coli].stype === \"select\") {\n\t\t\t\t\telem = $(\"td.ui-search-input select\", ptr);\n\t\t\t\t\tif(dval) {\n\t\t\t\t\t\telem.val( dval );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[0].selectedIndex = 0;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telem = $(\"td.ui-search-input input\", ptr);\n\t\t\t\t\telem.val( dval );\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarClearVal\",[elem[0], coli, sval, dval]);\n\t\t\t\tif($.isFunction(p.onClearSearchValue)) {\n\t\t\t\t\tp.onClearSearchValue.call($t, elem[0], coli, sval, dval);\n\t\t\t\t}\n\t\t\t\t// ToDo custom search type\n\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\ttriggerToolbar();\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tthis.p.filterToolbar = true;\n\t\t\tthis.triggerToolbar = triggerToolbar;\n\t\t\tthis.clearToolbar = clearToolbar;\n\t\t\tthis.toggleToolbar = toggleToolbar;\n\t\t});\n\t},\n\tdestroyFilterToolbar: function () {\n\t\treturn this.each(function () {\n\t\t\tif (!this.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.triggerToolbar = null;\n\t\t\tthis.clearToolbar = null;\n\t\t\tthis.toggleToolbar = null;\n\t\t\tthis.p.filterToolbar = false;\n\t\t\t$(this.grid.hDiv).find(\"table thead tr.ui-search-toolbar\").remove();\n\t\t});\n\t},\n\trefreshFilterToolbar : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tfilters : \"\",\n\t\t\tonClearVal : null,\n\t\t\tonSetVal : null\n\t\t}, p || {});\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length,\n\t\t\tsearchitem, filters, rules, rule, ssfield =[], ia;\n\t\t\t// clear the values on toolbar.\n\t\t\t// do not call clearToolbar \n\t\t\tif(!$t.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\tssfield.push(cm[i].name);\n\t\t\t\tsearchitem = $(\"#gs_\" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name));\n\t\t\t\tswitch (cm[i].stype) {\n\t\t\t\t\tcase 'select' :\n\t\t\t\t\tcase 'text' :\n\t\t\t\t\t\tsearchitem.val(\"\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif($.isFunction(p.onClearVal)) {\n\t\t\t\t\tp.onClearVal.call($t, searchitem, cm[i].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setrules (filter) {\n\t\t\t\tif(filter && filter.rules) { // condition to exit\n\t\t\t\t\trules = filter.rules;\n\t\t\t\t\tl = rules.length;\n\t\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\t\trule = rules[i];\n\t\t\t\t\t\tia = $.inArray(rule.field, ssfield);\n\t\t\t\t\t\tif( ia !== -1) {\n\t\t\t\t\t\t\tsearchitem = $(\"#gs_\" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name));\n\t\t\t\t\t\t\t// problem for between operator\n\t\t\t\t\t\t\tif ( searchitem.length > 0) {\n\t\t\t\t\t\t\t\tif (cm[ia].stype === \"select\") { \n\t\t\t\t\t\t\t\t\tsearchitem.find(\"option[value='\" + $.jgrid.jqID(rule.data) + \"']\").prop('selected', true);\n\t\t\t\t\t\t\t\t} else if (cm[ia].stype === \"text\") {\n\t\t\t\t\t\t\t\t\tsearchitem.val(rule.data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(p.onSetVal)) {\n\t\t\t\t\t\t\t\t\tp.onSetVal.call($t, searchitem, cm[ia].name);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t    }\n\t\t\t\t\t}\n\t\t\t\t\tif(filter.groups) {\n\t\t\t\t\t\tfor(var k=0;k<filter.groups.length;k++) {\n\t\t\t\t\t\t\tsetrules(filter.groups[k]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof (p.filters) === \"string\" && p.filters.length) {\n\t\t\t\tfilters = $.jgrid.parse(p.filters);\n\t\t\t\t// flat filters only\n\t\t\t}\n\t        if ($.isPlainObject(filters)) {\n\t\t\t\tsetrules( filters );\n\t        }\n\t\t});\n\t},\n\tsearchGrid : function (p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend(true, {\n\t\t\trecreateFilter: false,\n\t\t\tdrag: true,\n\t\t\tsField:'searchField',\n\t\t\tsValue:'searchString',\n\t\t\tsOper: 'searchOper',\n\t\t\tsFilter: 'filters',\n\t\t\tloadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.\n\t\t\tbeforeShowSearch: null,\n\t\t\tafterShowSearch : null,\n\t\t\tonInitializeSearch: null,\n\t\t\tafterRedraw : null,\n\t\t\tafterChange: null,\n\t\t\tsortStrategy: null,\n\t\t\tcloseAfterSearch : false,\n\t\t\tcloseAfterReset: false,\n\t\t\tcloseOnEscape : false,\n\t\t\tsearchOnEnter : false,\n\t\t\tmultipleSearch : false,\n\t\t\tmultipleGroup : false,\n\t\t\t//cloneSearchRowOnAdd: true,\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\tjqModal : true,\n\t\t\tmodal: false,\n\t\t\tresize : true,\n\t\t\twidth: 450,\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tshowQuery: false,\n\t\t\terrorcheck : true,\n\t\t\tsopt: null,\n\t\t\tstringResult: undefined,\n\t\t\tonClose : null,\n\t\t\tonSearch : null,\n\t\t\tonReset : null,\n\t\t\ttoTop : true,\n\t\t\toverlay : 30,\n\t\t\tcolumns : [],\n\t\t\ttmplNames : null,\n\t\t\ttmplFilters : null,\n\t\t\ttmplLabel : ' Template: ',\n\t\t\tshowOnLoad: false,\n\t\t\tlayer: null,\n\t\t\toperands : { \"eq\" :\"=\", \"ne\":\"<>\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"LIKE\",\"bn\":\"NOT LIKE\",\"in\":\"IN\",\"ni\":\"NOT IN\",\"ew\":\"LIKE\",\"en\":\"NOT LIKE\",\"cn\":\"LIKE\",\"nc\":\"NOT LIKE\",\"nu\":\"IS NULL\",\"nn\":\"ISNOT NULL\"}\n\t\t}, regional,  p || {});\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar fid = \"fbox_\"+$t.p.id,\n\t\t\tshowFrm = true,\n\t\t\tmustReload = true,\n\t\t\tIDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid},\n\t\t\tdefaultFilters  = $t.p.postData[p.sFilter],\n\t\t\tfl,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\t\t\tp.styleUI = $t.p.styleUI;\n\t\t\tif(typeof defaultFilters === \"string\") {\n\t\t\t\tdefaultFilters = $.jgrid.parse( defaultFilters );\n\t\t\t}\n\t\t\tif(p.recreateFilter === true) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).remove();\n\t\t\t}\n\t\t\tfunction showFilter(_filter) {\n\t\t\t\tshowFrm = $($t).triggerHandler(\"jqGridFilterBeforeShow\", [_filter]);\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t\tif(showFrm && $.isFunction(p.beforeShowSearch)) {\n\t\t\t\t\tshowFrm = p.beforeShowSearch.call($t,_filter);\n\t\t\t\t}\n\t\t\t\tif(showFrm) {\n\t\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(fid),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});\n\t\t\t\t\t$($t).triggerHandler(\"jqGridFilterAfterShow\", [_filter]);\n\t\t\t\t\tif($.isFunction(p.afterShowSearch)) {\n\t\t\t\t\t\tp.afterShowSearch.call($t, _filter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tshowFilter($(\"#fbox_\"+$.jgrid.jqID( $t.p.id )));\n\t\t\t} else {\n\t\t\t\tvar fil = $(\"<div><div id='\"+fid+\"' class='searchFilter' style='overflow:auto'></div></div>\").insertBefore(\"#gview_\"+$.jgrid.jqID($t.p.id)),\n\t\t\t\talign = \"left\", butleft =\"\"; \n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\talign = \"right\";\n\t\t\t\t\tbutleft = \" style='text-align:left'\";\n\t\t\t\t\tfil.attr(\"dir\",\"rtl\");\n\t\t\t\t}\n\t\t\t\tvar columns = $.extend([],$t.p.colModel),\n\t\t\t\tbS  =\"<a id='\"+fid+\"_search' class='fm-button \" + common.button + \" fm-button-icon-right ui-search'><span class='\" + common.icon_base + \" \" +classes.icon_search + \"'></span>\"+p.Find+\"</a>\",\n\t\t\t\tbC  =\"<a id='\"+fid+\"_reset' class='fm-button \" + common.button +\" fm-button-icon-left ui-reset'><span class='\" + common.icon_base + \" \" +classes.icon_reset + \"'></span>\"+p.Reset+\"</a>\",\n\t\t\t\tbQ = \"\", tmpl=\"\", colnm, found = false, bt, cmi=-1;\n\t\t\t\tif(p.showQuery) {\n\t\t\t\t\tbQ =\"<a id='\"+fid+\"_query' class='fm-button \" + common.button + \" fm-button-icon-left'><span class='\" + common.icon_base + \" \" +classes.icon_query + \"'></span>Query</a>\";\n\t\t\t\t}\n\t\t\t\tif(!p.columns.length) {\n\t\t\t\t\t$.each(columns, function(i,n){\n\t\t\t\t\t\tif(!n.label) {\n\t\t\t\t\t\t\tn.label = $t.p.colNames[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// find first searchable column and set it if no default filter\n\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\tvar searchable = (n.search === undefined) ?  true: n.search ,\n\t\t\t\t\t\t\thidden = (n.hidden === true),\n\t\t\t\t\t\t\tignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);\n\t\t\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\tcolnm = n.index || n.name;\n\t\t\t\t\t\t\t\tcmi =i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcolumns = p.columns;\n\t\t\t\t\tcmi = 0;\n\t\t\t\t\tcolnm = columns[0].index || columns[0].name;\n\t\t\t\t}\n\t\t\t\t// old behaviour\n\t\t\t\tif( (!defaultFilters && colnm) || p.multipleSearch === false  ) {\n\t\t\t\t\tvar cmop = \"eq\";\n\t\t\t\t\tif(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) {\n\t\t\t\t\t\tcmop = columns[cmi].searchoptions.sopt[0];\n\t\t\t\t\t} else if(p.sopt && p.sopt.length) {\n\t\t\t\t\t\tcmop = p.sopt[0];\n\t\t\t\t\t}\n\t\t\t\t\tdefaultFilters = {groupOp: \"AND\", rules: [{field: colnm, op: cmop, data: \"\"}]};\n\t\t\t\t}\n\t\t\t\tfound = false;\n\t\t\t\tif(p.tmplNames && p.tmplNames.length) {\n\t\t\t\t\tfound = true;\n\t\t\t\t\ttmpl = \"<tr><td class='ui-search-label'>\"+ p.tmplLabel +\"</td>\";\n\t\t\t\t\ttmpl += \"<td><select class='ui-template \" + classes.srSelect + \"'>\";\n\t\t\t\t\ttmpl += \"<option value='default'>Default</option>\";\n\t\t\t\t\t$.each(p.tmplNames, function(i,n){\n\t\t\t\t\t\ttmpl += \"<option value='\"+i+\"'>\"+n+\"</option>\";\n\t\t\t\t\t});\n\t\t\t\t\ttmpl += \"</select></td></tr>\";\n\t\t\t\t}\n\n\t\t\t\tbt = \"<table class='EditTable' style='border:0px none;margin-top:5px' id='\"+fid+\"_2'><tbody><tr><td colspan='2'><hr class='\" + common.content + \"' style='margin:1px'/></td></tr>\"+tmpl+\"<tr><td class='EditButton' style='text-align:\"+align+\"'>\"+bC+\"</td><td class='EditButton' \"+butleft+\">\"+bQ+bS+\"</td></tr></tbody></table>\";\n\t\t\t\tfid = $.jgrid.jqID( fid);\n\t\t\t\t$(\"#\"+fid).jqFilter({\n\t\t\t\t\tcolumns: columns,\n\t\t\t\t\tsortStrategy: p.sortStrategy,\n\t\t\t\t\tfilter: p.loadDefaults ? defaultFilters : null,\n\t\t\t\t\tshowQuery: p.showQuery,\n\t\t\t\t\terrorcheck : p.errorcheck,\n\t\t\t\t\tsopt: p.sopt,\n\t\t\t\t\tgroupButton : p.multipleGroup,\n\t\t\t\t\truleButtons : p.multipleSearch,\n\t\t\t\t\tuniqueSearchFields : p.uniqueSearchFields,\n\t\t\t\t\tafterRedraw : p.afterRedraw,\n\t\t\t\t\tops : p.odata,\n\t\t\t\t\toperands : p.operands,\n\t\t\t\t\tajaxSelectOptions: $t.p.ajaxSelectOptions,\n\t\t\t\t\tgroupOps: p.groupOps,\n\t\t\t\t\taddsubgrup : p.addsubgrup,\n\t\t\t\t\taddrule : p.addrule,\n\t\t\t\t\tdelgroup : p.delgroup,\n\t\t\t\t\tdelrule : p.delrule,\n\t\t\t\t\tonChange : function() {\n\t\t\t\t\t\tif(this.p.showQuery) {\n\t\t\t\t\t\t\t$('.query',this).html(this.toUserFriendlyString());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($.isFunction(p.afterChange)) {\n\t\t\t\t\t\t\tp.afterChange.call($t, $(\"#\"+fid), p);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tdirection : $t.p.direction,\n\t\t\t\t\tid: $t.p.id\n\t\t\t\t});\n\t\t\t\tfil.append( bt );\n\t\t\t\tif(found && p.tmplFilters && p.tmplFilters.length) {\n\t\t\t\t\t$(\".ui-template\", fil).on('change', function(){\n\t\t\t\t\t\tvar curtempl = $(this).val();\n\t\t\t\t\t\tif(curtempl===\"default\") {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', defaultFilters);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(p.multipleGroup === true) {p.multipleSearch = true;}\n\t\t\t\t$($t).triggerHandler(\"jqGridFilterInitialize\", [$(\"#\"+fid)]);\n\t\t\t\tif($.isFunction(p.onInitializeSearch) ) {\n\t\t\t\t\tp.onInitializeSearch.call($t, $(\"#\"+fid));\n\t\t\t\t}\n\t\t\t\tp.gbox = \"#gbox_\"+fid;\n\t\t\t\tif (p.layer) {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0], \"#\"+$.jgrid.jqID(p.layer), {position: \"relative\"});\n\t\t\t\t} else {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\t\t}\n\t\t\t\tif (p.searchOnEnter || p.closeOnEscape) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {\n\t\t\t\t\t\tvar $target = $(e.target);\n\t\t\t\t\t\tif (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER\n\t\t\t\t\t\t\t\t!$target.hasClass('add-group') && !$target.hasClass('add-rule') &&\n\t\t\t\t\t\t\t\t!$target.hasClass('delete-group') && !$target.hasClass('delete-rule') &&\n\t\t\t\t\t\t\t\t(!$target.hasClass(\"fm-button\") || !$target.is(\"[id$=_query]\"))) {\n\t\t\t\t\t\t\t$(\"#\"+fid+\"_search\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.modalhead)).find(\".ui-jqdialog-titlebar-close\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(bQ) {\n\t\t\t\t\t$(\"#\"+fid+\"_query\").on('click', function(){\n\t\t\t\t\t\t$(\".queryresult\", fil).toggle();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (p.stringResult===undefined) {\n\t\t\t\t\t// to provide backward compatibility, inferring stringResult value from multipleSearch\n\t\t\t\t\tp.stringResult = p.multipleSearch;\n\t\t\t\t}\n\t\t\t\t$(\"#\"+fid+\"_search\").on('click', function(){\n\t\t\t\t\tvar sdata={}, res, filters;\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\tfl.find(\".input-elm:focus\").change();\n\t\t\t\t\tfilters = fl.jqFilter('filterData');\n\t\t\t\t\tif(p.errorcheck) {\n\t\t\t\t\t\tfl[0].hideError();\n\t\t\t\t\t\tif(!p.showQuery) {fl.jqFilter('toSQLString');}\n\t\t\t\t\t\tif(fl[0].p.error) {\n\t\t\t\t\t\t\tfl[0].showError();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(p.stringResult) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tres = JSON.stringify(filters);\n\t\t\t\t\t\t} catch (e2) { }\n\t\t\t\t\t\tif(typeof res===\"string\") {\n\t\t\t\t\t\t\tsdata[p.sFilter] = res;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(p.multipleSearch) {\n\t\t\t\t\t\t\tsdata[p.sFilter] = filters;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsdata[p.sField] = filters.rules[0].field;\n\t\t\t\t\t\t\tsdata[p.sValue] = filters.rules[0].data;\n\t\t\t\t\t\t\tsdata[p.sOper] = filters.rules[0].op;\n\t\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.search = true;\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterSearch\");\n\t\t\t\t\tif( mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onSearch) ) {\n\t\t\t\t\t\tmustReload = p.onSearch.call($t, $t.p.filters);\n\t\t\t\t\t}\n\t\t\t\t\tif (mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.closeAfterSearch) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#\"+fid+\"_reset\").on('click', function(){\n\t\t\t\t\tvar sdata={},\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\t\tsdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = \"\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfl[0].resetFilter();\n\t\t\t\t\tif(found) {\n\t\t\t\t\t\t$(\".ui-template\", fil).val(\"default\");\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterReset\");\n\t\t\t\t\tif(mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onReset) ) {\n\t\t\t\t\t\tmustReload = p.onReset.call($t);\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif (p.closeAfterReset) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tshowFilter($(\"#\"+fid));\n\t\t\t\t$(\".fm-button:not(.\"+common.disabled+\")\",fil).hover(\n\t\t\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t},\n\tfilterInput : function( val, p) {\n\t\tp = $.extend(true, {\n\t\t\tdefaultSearch : 'cn',\n\t\t\tgroupOp : 'OR',\n\t\t\tsearchAll : false,\n\t\t\tbeforeSearch : null,\n\t\t\tafterSearch : null\n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar nm, sop,ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\", gi=0, so;\n\t\t\tval +=\"\";\n\t\t\tif(!$t.p.datatype === 'local') { return; }\n\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\tnm = this.index || this.name;\n\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\tso  = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch;\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif (this.search || p.searchAll) {\n\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + nm + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + so + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + val.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\tgi++;\n\t}\n});\n\t\t\truleGroup += \"]}\";\n\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t});\n\t\t\tvar bsr = $($t).triggerHandler(\"jqGridFilterInputBeforeSearch\") === 'stop' ? true : false;\n\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:true}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t$($t).triggerHandler(\"jqGridFilterInputAfterSearch\");\n\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t});\n\t}\n});\n\n//module begin\nvar rp_ge = {};\n$.jgrid.extend({\n\teditGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'edit'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: '500',\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay : 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl: null,\n\t\t\tmtype : \"POST\",\n\t\t\tclearAfterAdd :true,\n\t\t\tcloseAfterEdit : false,\n\t\t\treloadAfterSubmit : true,\n\t\t\tonInitializeForm: null,\n\t\t\tbeforeInitData: null,\n\t\t\tbeforeShowForm: null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterComplete: null,\n\t\t\tonclickPgButtons : null,\n\t\t\tafterclickPgButtons: null,\n\t\t\teditData : {},\n\t\t\trecreateForm : false,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\taddedrow : \"first\",\n\t\t\ttopinfo : '',\n\t\t\tbottominfo: '',\n\t\t\tsaveicon : [],\n\t\t\tcloseicon : [],\n\t\t\tsavekey: [false,13],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tcheckOnSubmit : false,\n\t\t\tcheckOnUpdate : false,\n\t\t\tprocessing : false,\n\t\t\tonClose : null,\n\t\t\tajaxEditOptions : {},\n\t\t\tserializeEditData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\toverlayClass : commonstyle.overlay,\n\t\t\tremovemodal : true,\n\t\t\tform: 'edit',\n\t\t\ttemplate : null,\n\t\t\tfocusField : true,\n\t\t\teditselected : false\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\t$t.p.savedData = {};\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"FrmGrid_\"+gID, frmtborg = \"TblGrid_\"+gID, frmtb = \"#\"+$.jgrid.jqID(frmtborg), frmtb2,\n\t\t\tIDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},\n\t\t\tshowFrm = true, maxCols = 1, maxRows=0,\tpostdata, diff, frmoper,\n\t\t\ttempl = typeof rp_ge[$t.p.id].template === \"string\" && rp_ge[$t.p.id].template.length > 0,\n\t\t\terrors =$.jgrid.getRegional(this, 'errors');\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif($.jgrid.isMobile()) {\n\t\t\t\trp_ge[$t.p.id].resize = false;\n\t\t\t}\n\t\t\tif (rowid === \"new\") {\n\t\t\t\trowid = \"_empty\";\n\t\t\t\tfrmoper = \"add\";\n\t\t\t\tp.caption=rp_ge[$t.p.id].addCaption;\n\t\t\t} else {\n\t\t\t\tp.caption=rp_ge[$t.p.id].editCaption;\n\t\t\t\tfrmoper = \"edit\";\n\t\t\t}\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"formProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"formProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar closeovrl = true;\n\t\t\tif(p.checkOnUpdate && p.jqModal && !p.modal) {\n\t\t\t\tcloseovrl = false;\n\t\t\t}\n\t\t\tfunction getFormData(){\n\t\t\t\tvar a2 ={}, i;\n\t\t\t\t$(frmtb).find(\".FormElement\").each(function() {\n\t\t\t\t\tvar celm = $(\".customelement\", this);\n\t\t\t\t\tif (celm.length) {\n\t\t\t\t\t\tvar  elem = celm[0], nm = $(elem).attr('name');\n\t\t\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\t\t\tif(this.name === nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tpostdata[nm] = this.editoptions.custom_value.call($t, $(\"#\"+$.jgrid.jqID(nm),frmtb),'get');\n\t\t\t\t\t\t\t\t\tif (postdata[nm] === undefined) {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch ($(this).get(0).type) {\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\tif($(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar ofv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= ofv;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-one\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-multiple\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\tpostdata[this.name] = postdata[this.name] ? postdata[this.name].join(\",\") : \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\tcase \"button\":\n\t\t\t\t\t\t\t\tpostdata[this.name] = $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"radio\" :\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfor(i in a2 ) {\n\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frmtb).val();\n\t\t\t\t\t\tpostdata[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[i] = $.jgrid.htmlEncode(postdata[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD'>&#160;</td><td class='DataTD'>&#160;</td>\", tmpl=\"\", i, ffld; //*2\n\t\t\t\tfor (i =1; i<=maxcols;i++) {\n\t\t\t\t\ttmpl += tdtmpl;\n\t\t\t\t}\n\t\t\t\tif(rowid !== '_empty') {\n\t\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t}\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]),{rowId:rowid, colModel:this},i);\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\ttmp =  (this.edittype && this.edittype === \"textarea\") ? $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text() : $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(!tmp || tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:'edit'}),\n\t\t\t\t\t\tfrmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(rowid === \"_empty\" && opt.defaultValue ) {\n\t\t\t\t\t\t\ttmp = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!this.edittype) {this.edittype = \"text\";}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\telc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"checkbox\") {tmp = $(elc).attr(\"offval\");}\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"select\") {tmp = $(\"option:eq(0)\",elc).text();}\n\t\t\t\t\t\tif(this.edittype === \"select\") {\n\t\t\t\t\t\t\ttmp = $(elc).val();\n\t\t\t\t\t\t\tif($(elc).get(0).type === 'select-multiple' && tmp) {\n\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype === 'checkbox') {\n\t\t\t\t\t\t\tif($(elc).is(\":checked\")) {\n\t\t\t\t\t\t\t\ttmp= $(elc).val();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(elc).attr(\"offval\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(elc).addClass(\"FormElement\");\n\t\t\t\t\t\tif( $.inArray(this.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t$(elc).addClass( styles.inputClass );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tffld = true;\n\t\t\t\t\t\tif(templ) {\n\t\t\t\t\t\t\tvar ftmplfld = $(frm).find(\"#\"+nm);\n\t\t\t\t\t\t\tif(ftmplfld.length){\n\t\t\t\t\t\t\t\tftmplfld.replaceWith( elc );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tffld = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//--------------------\n\t\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"tr_\"+nm);\n\t\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html(\"<label for='\"+nm+\"'>\"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + \"</label>\");\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);\n\t\t\t\t\t\t\t//-------------------------\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) {\n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype==='custom' && $.isFunction(opt.custom_value) ) {\n\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm, frmgr),'set',tmp);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow;\n\t\t\t\t\tif(templ) {\n\t\t\t\t\t\tidrow = \"<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/>\";\n\t\t\t\t\t\t$(frm).append(idrow);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\t\tidrow[0].rp = cnt+999;\n\t\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t\t} \n\t\t\t\t\t//$(tb).append(idrow);\n\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\t\t\t\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj,fmid){\n\t\t\t\tvar nm,cnt=0,tmp, fld,opt,vl,vlc;\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t$t.p.savedData = {};\n\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"]=rowid;\n\t\t\t\t}\n\t\t\t\tvar cm = obj.p.colModel;\n\t\t\t\tif(rowid === '_empty') {\n\t\t\t\t\t$(cm).each(function(){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\topt = $.extend({}, this.editoptions || {} );\n\t\t\t\t\t\tfld = $(\"#\"+$.jgrid.jqID(nm),fmid);\n\t\t\t\t\t\tif(fld && fld.length && fld[0] !== null) {\n\t\t\t\t\t\t\tvl = \"\";\n\t\t\t\t\t\t\tif(this.edittype === 'custom' && $.isFunction(opt.custom_value)) {\n\t\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm,fmid),'set',vl);\n\t\t\t\t\t\t\t} else if(opt.defaultValue ) {\n\t\t\t\t\t\t\t\tvl = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t\t\tif(fld[0].type==='checkbox') {\n\t\t\t\t\t\t\t\t\tvlc = vl.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!==\"\") {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].value = vl;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {fld.val(vl);}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif( fld[0].type==='checkbox' ) {\n\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\tvl = $(fld).attr(\"offval\");\n\t\t\t\t\t\t\t\t} else if (fld[0].type && fld[0].type.substr(0,6)==='select') {\n\t\t\t\t\t\t\t\t\tfld[0].selectedIndex = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfld.val(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t$t.p.savedData[nm] = vl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$(\"#id_g\",fmid).val(rowid);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar tre = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!tre) {return;}\n\t\t\t\t$('td[role=\"gridcell\"]',tre).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\ttmp = cm[i].edittype===\"textarea\" ? $(this).text() : $(this).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(nm);\n\t\t\t\t\t\tswitch (cm[i].edittype) {\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t\t$(\"#\"+nm,fmid).val(tmp);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\t\t\tvar opv = tmp.split(\",\");\n\t\t\t\t\t\t\t\topv = $.map(opv,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t$(\"#\"+nm+\" option\",fmid).each(function(){\n\t\t\t\t\t\t\t\t\tif (!cm[i].editoptions.multiple && ($.trim(tmp) === $.trim($(this).text()) || opv[0] === $.trim($(this).text()) || opv[0] === $.trim($(this).val())) ){\n\t\t\t\t\t\t\t\t\t\tthis.selected= true;\n\t\t\t\t\t\t\t\t\t} else if (cm[i].editoptions.multiple){\n\t\t\t\t\t\t\t\t\t\tif(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm,fmid).val();\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions.multiple) {\n\t\t\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\ttmp = String(tmp);\n\t\t\t\t\t\t\t\tif(cm[i].editoptions && cm[i].editoptions.value) {\n\t\t\t\t\t\t\t\t\tvar cb = cm[i].editoptions.value.split(\":\");\n\t\t\t\t\t\t\t\t\tif(cb[0] === tmp) {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":true, \"defaultChecked\" : true});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":false, \"defaultChecked\" : false});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttmp = tmp.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!==\"\") {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\",true); //ie\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\", false); //ie\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\tif($(\"#\"+nm, fmid).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).val();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).attr(\"offval\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\t\tcm[i].editoptions.custom_value.call($t, $(\"#\"+nm, fmid),'set',tmp);\n\t\t\t\t\t\t\t\t\t} else {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {\n\t\t\t\t\t$(\"#id_g\",frmtb).val(rowid);\n\t\t\t\t\tif( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setNulls() {\n\t\t\t\t$.each($t.p.colModel, function(i,n){\n\t\t\t\t\tif(n.editoptions && n.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(postdata.hasOwnProperty(n.name) && postdata[n.name] === \"\") {\n\t\t\t\t\t\t\tpostdata[n.name] = 'null';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction postIt() {\n\t\t\t\tvar copydata, ret=[true,\"\",\"\"], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url;\n\t\t\t\t\n\t\t\t\tvar retvals = $($t).triggerHandler(\"jqGridAddEditBeforeCheckValues\", [$(frmgr), frmoper]);\n\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t\n\t\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {\n\t\t\t\t\tretvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata,$(frmgr),frmoper);\n\t\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t}\n\t\t\t\tfor( key in postdata ){\n\t\t\t\t\tif(postdata.hasOwnProperty(key)) {\n\t\t\t\t\t\tret = $.jgrid.checkValues.call($t,postdata[key],key);\n\t\t\t\t\t\tif(ret[0] === false) {break;}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetNulls();\n\t\t\t\tif(ret[0]) {\n\t\t\t\t\tonCS = $($t).triggerHandler(\"jqGridAddEditClickSubmit\", [rp_ge[$t.p.id], postdata, frmoper]);\n\t\t\t\t\tif( onCS === undefined && $.isFunction( rp_ge[$t.p.id].onclickSubmit)) { \n\t\t\t\t\t\tonCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; \n\t\t\t\t\t}\n\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditBeforeSubmit\", [postdata, $(frmgr), frmoper]);\n\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t}\n\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].beforeSubmit))  {\n\t\t\t\t\t\tret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").addClass( commonstyle.active );\n\t\t\t\t\turl = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl');\n\t\t\t\t\toper = opers.oper;\n\t\t\t\t\tidname = url === 'clientArray' ? $t.p.keyName : opers.id;\n\t\t\t\t\t// we add to pos data array the action - the name is oper\n\t\t\t\t\tpostdata[oper] = ($.trim(postdata[$t.p.id+\"_id\"]) === \"_empty\") ? opers.addoper : opers.editoper;\n\t\t\t\t\tif(postdata[oper] !== opers.addoper) {\n\t\t\t\t\t\tpostdata[idname] = postdata[$t.p.id+\"_id\"];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// check to see if we have allredy this field in the form and if yes lieve it\n\t\t\t\t\t\tif( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+\"_id\"];}\n\t\t\t\t\t}\n\t\t\t\t\tdelete postdata[$t.p.id+\"_id\"];\n\t\t\t\t\tpostdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS);\n\t\t\t\t\tif($t.p.treeGrid === true)  {\n\t\t\t\t\t\tif(postdata[oper] === opers.addoper) {\n\t\t\t\t\t\tselr = $($t).jqGrid(\"getGridParam\", 'selrow');\n\t\t\t\t\t\t\tvar tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id';\n\t\t\t\t\t\t\tpostdata[tr_par_id] = selr;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i in $t.p.treeReader){\n\t\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(i)) {\n\t\t\t\t\t\t\t\tvar itm = $t.p.treeReader[i];\n\t\t\t\t\t\t\t\tif(postdata.hasOwnProperty(itm)) {\n\t\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;}\n\t\t\t\t\t\t\t\t\tdelete postdata[itm];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]);\n\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) :  postdata,\n\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\tvar key;\n\t\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\tpostdata[idname] = $t.p.idPrefix + postdata[idname];\n\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = $($t).triggerHandler(\"jqGridAddEditErrorTextFormat\", [data, frmoper]);\n\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditAfterSubmit\", [data, postdata, frmoper]);\n\t\t\t\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].afterSubmit) ) {\n\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(postdata,function(n,v){\n\t\t\t\t\t\t\t\t\t\tpostdata[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != \"local\";\n\t\t\t\t\t\t\t\t// the action is add\n\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper ) {\n\t\t\t\t\t\t\t\t\t//id processing\n\t\t\t\t\t\t\t\t\t// user not set the id ret[2]\n\t\t\t\t\t\t\t\t\tif(!ret[2]) {ret[2] = $.jgrid.randId();}\n\t\t\t\t\t\t\t\t\tif(postdata[idname] == null || postdata[idname] === \"_empty\" || postdata[idname] == \"\"){\n\t\t\t\t\t\t\t\t\t\tpostdata[idname] = ret[2];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[2] = postdata[idname];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addChildNode\",ret[2],selr,postdata );\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addRowData\",ret[2],postdata,p.addedrow);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid !== true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ret[2]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t\t} else if (rp_ge[$t.p.id].clearAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tfillData(\"_empty\", $t, frmgr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// the action is update\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t\tif( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid(\"setSelection\",postdata[idname]);},1000);}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setTreeRow\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\tcopydata = data;\n\t\t\t\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterComplete\", [copydata, postdata, $(frmgr), frmoper]);\n\t\t\t\t\t\t\t\t\t\trp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper);\n\t\t\t\t\t\t\t\t\t\tcopydata=null;\n\t\t\t\t\t\t\t\t\t},500);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t\t\t\t\tif($t.p.savedData[$t.p.id+\"_id\"] !== \"_empty\"){\n\t\t\t\t\t\t\t\t\t\tfor(key in $t.p.savedData) {\n\t\t\t\t\t\t\t\t\t\t\tif($t.p.savedData.hasOwnProperty(key) && postdata[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedData[key] = postdata[key];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\ttry{$(':input:visible',frmgr)[0].focus();} catch (e){}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions );\n\n\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+errors.nourl;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"set_\"+$t.p.id); \n\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].reloadAfterSubmit = false;\n\t\t\t\t\t\t\t\tpostdata = ajaxOptions.data;\n\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t// return;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction compareData(nObj, oObj ) {\n\t\t\t\tvar ret = false,key;\n\t\t\t\tret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj)\n\t\t\t\t\t&& Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length);\n\t\t\t\tif(!ret) {\n\t\t\t\t\tfor (key in oObj) {\n\t\t\t\t\t\tif(oObj.hasOwnProperty(key) )  {\n\t\t\t\t\t\t\tif(nObj.hasOwnProperty(key) ) {\n\t\t\t\t\t\t\t\tif( nObj[key] !== oObj[key] ) {\n\t\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction checkUpdates () {\n\t\t\t\tvar stat = true;\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tif(rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\tpostdata = {};\n\t\t\t\t\tgetFormData();\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+IDs.themodal).show();\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn stat;\n\t\t\t}\n\t\t\tfunction restoreInline() {\n\t\t\t\tvar i;\n\t\t\t\tif (rowid !== \"_empty\" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.isFunction($.fn.jqGrid.restoreRow)) {\n\t\t\t\t\tfor (i=0;i<$t.p.savedRow.length;i++) {\n\t\t\t\t\t\tif ($t.p.savedRow[i].id === rowid) {\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow',rowid);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction updateNav(cr, posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid =  $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",frmtb).val(), pos;\n\t\t\t\tif($t.p.multiselect && rp_ge[$t.p.id].editselected) {\n\t\t\t\t\tvar arr = [];\n\t\t\t\t\tfor(var i=0, len = rowsInGrid.length;i<len;i++) {\n\t\t\t\t\t\tif($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {\n\t\t\t\t\t\t\tarr.push(rowsInGrid[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpos = $.inArray(selrow,arr);\n\t\t\t\t\treturn [pos, arr];\n\t\t\t\t} else {\n\t\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\t}\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\t\t\tfunction parseTemplate ( template ){\n\t\t\t\tvar   tmpl =\"\";\n\t\t\t\tif(typeof template === \"string\") {\n\t\t\t\t\ttmpl = template.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\t\t\t\treturn '<span id=\"'+ i+ '\" ></span>';\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn tmpl;\n\t\t\t}\n\t\t\tfunction syncSavedData () {\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\n\t\t\t\t\tvar a1=[], a2={};\n\t\t\t\t\ta1 = $.map($t.p.savedData, function(v, i){\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t});\n\t\t\t\t\t$(\".FormElement\", frm ).each(function(){\n\t\t\t\t\t\tif( a1.indexOf(this.name) === -1 ) {\n\t\t\t\t\t\t\tvar tv = $(this).val(), tt = $(this).get(0).type;\n\t\t\t\t\t\t\tif( tt === 'checkbox') {\n\t\t\t\t\t\t\t\tif(!$(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\ttv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if(tt === 'select-multiple') {\n\t\t\t\t\t\t\t\ttv = tv.join(\",\");\n\t\t\t\t\t\t\t} else if(tt === 'radio') {\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedData[this.name] = tv;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tfor(var i in a2 ) {\n\t\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frm).val();\n\t\t\t\t\t\t\t$t.p.savedData[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr+\"' class='FormGrid' onSubmit='return false;' style='width:\"+dw+\";height:\"+dh+\";'></form>\").data(\"disabled\",false),\n\t\t\ttbl;\n\t\t\tif(templ) {\n\t\t\t\ttbl = parseTemplate( rp_ge[$(this)[0].p.id].template );\n\t\t\t\tfrmtb2 = frmtb;\n\t\t\t} else {\n\t\t\t\ttbl = $(\"<table id='\"+frmtborg+\"' class='EditTable ui-common-table'><tbody></tbody></table>\");\n\t\t\t\tfrmtb2 = frmtb+\"_2\";\n\t\t\t}\n\t\t\tfrmgr = \"#\"+ $.jgrid.jqID(frmgr);\n\t\t\t// errors\n\t\t\t$(frm).append(\"<div class='FormError \" + commonstyle.error + \"' style='display:none;'></div>\" );\n\t\t\t// topinfo\n\t\t\t$(frm).append(\"<div class='tinfo topinfo'>\"+rp_ge[$t.p.id].topinfo+\"</div>\");\n\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t$(frm).append(tbl);\n\n\t\t\tshowFrm = $($t).triggerHandler(\"jqGridAddEditBeforeInitData\", [frm, frmoper]);\n\t\t\tif(showFrm === undefined) {\n\t\t\t\tshowFrm = true;\n\t\t\t}\n\t\t\tif(showFrm && $.isFunction(rp_ge[$t.p.id].beforeInitData)) {\n\t\t\t\tshowFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper);\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\n\t\t\trestoreInline();\n\t\t\t// set the id.\n\t\t\t// use carefull only to change here colproperties.\n\t\t\t// create data\n\t\t\tcreateData(rowid,$t,tbl,maxCols);\n\t\t\t// buttons at footer\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\";\n\t\t\tvar bP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbS  =\"<a id='sData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\tvar bt = \"<table style='height:auto' class='EditTable ui-common-table' id='\"+frmtborg+\"_2'><tbody><tr><td colspan='2'><hr class='\"+commonstyle.content+\"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bS+bC+\"</td></tr>\";\n\t\t\t//bt += \"<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>\"+rp_ge[$t.p.id].bottominfo+\"</td></tr>\";\n\t\t\tbt += \"</tbody></table>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar cle = false;\n\t\t\tif(p.closeOnEscape===true){\n\t\t\t\tp.closeOnEscape = false;\n\t\t\t\tcle = true;\n\t\t\t}\n\t\t\tvar tms;\n\t\t\tif(templ) {\n\t\t\t\t$(frm).find(\"#pData\").replaceWith( bP );\n\t\t\t\t$(frm).find(\"#nData\").replaceWith( bN );\n\t\t\t\t$(frm).find(\"#sData\").replaceWith( bS );\n\t\t\t\t$(frm).find(\"#cData\").replaceWith( bC );\n\t\t\t\ttms = $(\"<div id=\"+frmtborg+\"></div>\").append(frm);\n\t\t\t} else {\n\t\t\t\ttms = $(\"<div></div>\").append(frm).append(bt);\n\t\t\t}\n\t\t\t\n\t\t\t$(frm).append(\"<div class='binfo topinfo bottominfo'>\"+rp_ge[$t.p.id].bottominfo+\"</div>\");\n\n\t\t\t$.jgrid.createModal(IDs,tms, rp_ge[$(this)[0].p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\n\t\t\tif(rp_ge[$t.p.id].topinfo) {$(\".tinfo\", frmgr).show();}\n\t\t\tif(rp_ge[$t.p.id].bottominfo) {$(\".binfo\",frmgr).show();}\n\n\t\t\ttms = null;bt=null;\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) {\n\t\t\t\tvar wkey = e.target;\n\t\t\t\tif ($(frmgr).data(\"disabled\")===true ) {return false;}//??\n\t\t\t\tif(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save\n\t\t\t\t\tif(wkey.tagName !== \"TEXTAREA\") {\n\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\tif(cle)\t{$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tif($(\"#id_g\",frmtb).val() === \"_empty\") {return true;}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(p.checkOnUpdate) {\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close span\",\"#\"+$.jgrid.jqID(IDs.themodal)).removeClass(\"jqmClose\");\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.themodal)).off(\"click\")\n\t\t\t\t.click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.saveicon = $.extend([true,\"left\", styles.icon_save ],p.saveicon);\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\t// beforeinitdata after creation of the form\n\t\t\tif(p.saveicon[0]===true) {\n\t\t\t\t$(\"#sData\",frmtb2).addClass(p.saveicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\"+commonstyle.icon_base + \" \" +p.saveicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",frmtb2).addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base +\" \"+p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\tbS  =\"<a id='sNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002'>\"+p.bYes+\"</a>\";\n\t\t\t\tbN  =\"<a id='nNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px'>\"+p.bNo+\"</a>\";\n\t\t\t\tbC  =\"<a id='cNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px;'>\"+p.bExit+\"</a>\";\n\t\t\t\tvar zI = p.zIndex  || 999;zI ++;\n\t\t\t\t$(\"<div class='\"+ p.overlayClass+\" jqgrid-overlay confirm' style='z-index:\"+zI+\";display:none;'>&#160;\"+\"</div><div class='confirm ui-jqconfirm \"+commonstyle.content+\"' style='z-index:\"+(zI+1)+\"'>\"+p.saveData+\"<br/><br/>\"+bS+bN+bC+\"</div>\").insertAfter(frmgr);\n\t\t\t\t$(\"#sNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\tpostIt();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#nNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\tsetTimeout(function(){$(\":input:visible\",frmgr)[0].focus();},0);\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#cNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t// here initform - only once\n\t\t\t$($t).triggerHandler(\"jqGridAddEditInitializeForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);}\n\t\t\tif(rowid===\"_empty\" || !rp_ge[$t.p.id].viewPagerButtons) {$(\"#pData,#nData\",frmtb2).hide();} else {$(\"#pData,#nData\",frmtb2).show();}\n\t\t\t$($t).triggerHandler(\"jqGridAddEditBeforeShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);}\n\t\t\tsyncSavedData();\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).data(\"onClose\",rp_ge[$t.p.id].onClose);\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal, \n\t\t\t\toverlay: p.overlay,\n\t\t\t\tmodal:p.modal, \n\t\t\t\toverlayClass: p.overlayClass,\n\t\t\t\tfocusField : p.focusField,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\tvar fh = $('#editmod'+gID)[0].style.height,\n\t\t\t\t\t\tfw = $('#editmod'+gID)[0].style.width;\n\t\t\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfh = parseFloat(fh);\n\t\t\t\t\t}\n\t\t\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfw = parseFloat(fw);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).data(\"formProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : fw,\n\t\t\t\t\t\theight : fh,\n\t\t\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!closeovrl) {\n\t\t\t\t$(\".\" + $.jgrid.jqID(p.overlayClass)).click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".fm-button\",\"#\"+$.jgrid.jqID(IDs.themodal)).hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\t$(\"#sData\", frmtb2).click(function(){\n\t\t\t\tpostdata = {};\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\t// all depend on ret array\n\t\t\t\t//ret[0] - succes\n\t\t\t\t//ret[1] - msg if not succes\n\t\t\t\t//ret[2] - the id  that will be set if reload after submit false\n\t\t\t\tgetFormData();\n\t\t\t\tif(postdata[$t.p.id+\"_id\"] === \"_empty\")\t{postIt();}\n\t\t\t\telse if(p.checkOnSubmit===true ) {\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpostIt();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpostIt();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#cData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tvar nposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tnposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]);\n\t\t\t\t\t\tif( nposret !== undefined && nposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tvar pposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tpposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t\tif( pposret !== undefined && pposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); }\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tviewGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'view'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 500,\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\tjqModal: true,\n\t\t\tcloseOnEscape : false,\n\t\t\tlabelswidth: '30%',\n\t\t\tcloseicon: [],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tonClose: null,\n\t\t\tbeforeShowForm : null,\n\t\t\tbeforeInitData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\trecreateForm : false,\n\t\t\tremovemodal: true,\n\t\t\tform: 'view'\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"ViewGrid_\"+$.jgrid.jqID( gID  ), frmtb = \"ViewTbl_\" + $.jgrid.jqID( gID ),\n\t\t\tfrmgr_id = \"ViewGrid_\"+gID, frmtb_id = \"ViewTbl_\"+gID,\n\t\t\tIDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tshowFrm = true,\n\t\t\tmaxCols = 1, maxRows=0;\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"viewProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"viewProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction focusaref(){ //Sfari 3 issues\n\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\", \"-1\").focus();},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD form-view-label \" + commonstyle.content + \"' width='\"+p.labelswidth+\"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset \"  + commonstyle.content +\"'>&#160;</td>\", tmpl=\"\",\n\t\t\t\ttdtmpl2 = \"<td class='CaptionTD form-view-label \" + commonstyle.content +\"'>&#160;</td><td class='DataTD form-view-data \" + commonstyle.content +\"'>&#160;</td>\",\n\t\t\t\tfmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;\n\t\t\t\tfor (i=1;i<=maxcols;i++) {\n\t\t\t\t\ttmpl += i === 1 ? tdtmpl : tdtmpl2;\n\t\t\t\t}\n\t\t\t\t// find max number align rigth with property formatter\n\t\t\t\t$(obj.p.colModel).each( function() {\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif(!hc && this.align==='right') {\n\t\t\t\t\t\tif(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {\n\t\t\t\t\t\t\tmax1 = Math.max(max1,parseInt(this.width,10));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmax2 = Math.max(max2,parseInt(this.width,10));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tmaxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;\n\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\tsetme = false;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tviewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable;\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetme = this.align === 'right' && maxw !==0 ? true : false;\n\t\t\t\t\t\tvar frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"trv_\"+nm);\n\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>');\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(\"<span>\"+tmp+\"</span>\").attr(\"id\",\"v_\"+nm);\n\t\t\t\t\t\tif(setme){\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\") span\",trdata[0]).css({'text-align':'right',width:maxw+\"px\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\tidrow[0].rp = cnt+99;\n\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t}\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj){\n\t\t\t\tvar nm, hc,cnt=0,tmp,trv;\n\t\t\t\ttrv = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!trv) {return;}\n\t\t\t\t$('td',trv).each( function(i) {\n\t\t\t\t\tnm = obj.p.colModel[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = obj.p.colModel[i].hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttmp = $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(\"v_\"+nm);\n\t\t\t\t\t\t$(\"#\"+nm+\" span\",\"#\"+frmtb).html(tmp);\n\t\t\t\t\t\tif (hc) {$(\"#\"+nm,\"#\"+frmtb).parents(\"tr:first\").hide();}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {$(\"#id_g\",\"#\"+frmtb).val(rowid);}\n\t\t\t}\n\t\t\tfunction updateNav(cr,posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(\"#pData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid = $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",\"#\"+frmtb).val(),\n\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr_id+\"' class='FormGrid' style='width:\"+dw+\";height:\"+dh+\";'></form>\"),\n\t\t\ttbl =$(\"<table id='\"+frmtb_id+\"' class='EditTable ViewTable'><tbody></tbody></table>\");\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t// set the id.\n\t\t\t$(frm).append(tbl);\n\t\t\tif(onBeforeInit) {\n\t\t\t\tshowFrm = onBeforeInit.call($t, frm );\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\t\t\tcreateData(rowid, $t, tbl, maxCols);\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\",\n\t\t\t\t// buttons at footer\n\t\t\tbP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bClose+\"</a>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar bt = $(\"<div></div>\").append(frm).append(\"<table border='0' class='EditTable' id='\"+frmtb+\"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='\"+p.labelswidth+\"'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bC+\"</td></tr></tbody></table>\");\n\t\t\t$.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",\"#\"+frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\t\t\tif(!p.viewPagerButtons) {$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").hide();}\n\t\t\tbt = null;\n\t\t\t$(\"#\"+IDs.themodal).keydown( function( e ) {\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(p.navkeys[0]===true) {\n\t\t\t\t\tif(e.which === p.navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === p.navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",\"#\"+frmtb+\"_2\").addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base+ \" \" +p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif($.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$(\"#\"+frmgr));}\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal,\n\t\t\t\toverlay: p.overlay, \n\t\t\t\tmodal:p.modal,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\t$($t).data(\"viewProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : $(h.w).width(),\n\t\t\t\t\t\theight : $(h.w).height(),\n\t\t\t\t\t\tdataheight : $(\"#\"+frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(\"#\"+frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\".fm-button:not(.\" + commonstyle.disabled + \")\",\"#\"+frmtb+\"_2\").hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\tfocusaref();\n\t\t\t$(\"#cData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tdelGridRow : function(rowids,p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'del'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 240,\n\t\t\theight: 'auto',\n\t\t\tdataheight : 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl : '',\n\t\t\tmtype : \"POST\",\n\t\t\treloadAfterSubmit: true,\n\t\t\tbeforeShowForm: null,\n\t\t\tbeforeInitData : null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\tdelData: {},\n\t\t\tdelicon : [],\n\t\t\tcancelicon : [],\n\t\t\tonClose : null,\n\t\t\tajaxDelOptions : {},\n\t\t\tprocessing : false,\n\t\t\tserializeDelData : null,\n\t\t\tuseDataProxy : false\n\t\t}, regional, p ||{});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif(!rowids) {return;}\n\t\t\tvar onBeforeShow = $.isFunction( rp_ge[$t.p.id].beforeShowForm  ),\n\t\t\tonAfterShow = $.isFunction( rp_ge[$t.p.id].afterShowForm ),\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tgID = $t.p.id, onCS = {},\n\t\t\tshowFrm = true,\n\t\t\tdtbl = \"DelTbl_\"+$.jgrid.jqID(gID),postd, idname, opers, oper,\n\t\t\tdtbl_id = \"DelTbl_\" + gID,\n\t\t\tIDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif ($.isArray(rowids)) {rowids = rowids.join();}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(\"#\"+dtbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\t\t\t\t$(\"#DelData>td\",\"#\"+dtbl).text(rowids);\n\t\t\t\t$(\"#DelError\",\"#\"+dtbl).hide();\n\t\t\t\tif( rp_ge[$t.p.id].processing === true) {\n\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t$(\"#dData\", \"#\"+dtbl).removeClass( commonstyle.active );\n\t\t\t\t}\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal,jqM: false, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t} else {\n\t\t\t\tvar dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+\"px\",\n\t\t\t\tdw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+\"px\",\n\t\t\t\ttbl = \"<div id='\"+dtbl_id+\"' class='formdata' style='width:\"+dw+\";overflow:auto;position:relative;height:\"+dh+\";'>\";\n\t\t\t\ttbl += \"<table class='DelTable'><tbody>\";\n\t\t\t\t// error data\n\t\t\t\ttbl += \"<tr id='DelError' style='display:none'><td class='\" + commonstyle.error +\"'></td></tr>\";\n\t\t\t\ttbl += \"<tr id='DelData' style='display:none'><td >\"+rowids+\"</td></tr>\";\n\t\t\t\ttbl += \"<tr><td class=\\\"delmsg\\\" style=\\\"white-space:pre;\\\">\"+rp_ge[$t.p.id].msg+\"</td></tr><tr><td >&#160;</td></tr>\";\n\t\t\t\t// buttons at footer\n\t\t\t\ttbl += \"</tbody></table></div>\";\n\t\t\t\tvar bS  = \"<a id='dData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\t\tbC  = \"<a id='eData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\t\ttbl += \"<table class='EditTable ui-common-table' id='\"+dtbl+\"_2'><tbody><tr><td><hr class='\" + commonstyle.content + \"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>\"+bS+\"&#160;\"+bC+\"</td></tr></tbody></table>\";\n\t\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\t\t$.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(tbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\n\t\t\t\t$(\".fm-button\",\"#\"+dtbl+\"_2\").hover(\n\t\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t\t);\n\t\t\t\tp.delicon = $.extend([true,\"left\", styles.icon_del ],rp_ge[$t.p.id].delicon);\n\t\t\t\tp.cancelicon = $.extend([true,\"left\", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon);\n\t\t\t\tif(p.delicon[0]===true) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").addClass(p.delicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.delicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(p.cancelicon[0]===true) {\n\t\t\t\t\t$(\"#eData\",\"#\"+dtbl+\"_2\").addClass(p.cancelicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.cancelicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\tvar ret=[true,\"\"], pk,\n\t\t\t\t\tpostdata = $(\"#DelData>td\",\"#\"+dtbl).text(); //the pair is name=val1,val2,...\n\t\t\t\t\tonCS = {};\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {onCS = rp_ge[$t.p.id].onclickSubmit.call($t,rp_ge[$t.p.id], postdata) || {};}\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].beforeSubmit ) ) {ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata);}\n\t\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\tpostd = $.extend({},rp_ge[$t.p.id].delData, onCS);\n\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\tpostd[oper] = opers.deloper;\n\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\tpostdata = String(postdata).split(\",\");\n\t\t\t\t\t\tif(!postdata.length) { return false; }\n\t\t\t\t\t\tfor(pk in postdata) {\n\t\t\t\t\t\t\tif(postdata.hasOwnProperty(pk)) {\n\t\t\t\t\t\t\t\tpostdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpostd[idname] = postdata.join();\n\t\t\t\t\t\t$(this).addClass( commonstyle.active );\n\t\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\t\turl: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'),\n\t\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd,\n\t\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t$(\"#dData\", \"#\"+dtbl+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t,data);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].afterSubmit ) ) {\n\t\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t,data,postd);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== \"local\") {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid===true){\n\t\t\t\t\t\t\t\t\t\t\t\ttry {$($t).jqGrid(\"delTreeNode\",$t.p.idPrefix+postdata[0]);} catch(e){}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tfor(i=0;i<postdata.length;i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",$t.p.idPrefix+ postdata[i]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t\t\t\t\t\t$t.p.selarrrow = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\t\tsetTimeout(function(){rp_ge[$t.p.id].afterComplete.call($t,data,postdata);},500);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\t\tif(ret[0]) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);\n\n\n\t\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+$.jgrid.getRegional($t, 'errors.nourl');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"del_\"+$t.p.id); \n\t\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\t\tpostd = ajaxOptions.data;\n\t\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#eData\", \"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true) {\n\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t\t}\n\t\t});\n\t},\n\tnavGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'nav'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tedit: true,\n\t\t\tediticon: styles.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon: styles.icon_add_nav,\n\t\t\tdel: true,\n\t\t\tdelicon: styles.icon_del_nav,\n\t\t\tsearch: true,\n\t\t\tsearchicon: styles.icon_search_nav,\n\t\t\trefresh: true,\n\t\t\trefreshicon: styles.icon_refresh_nav,\n\t\t\trefreshstate: 'firstpage',\n\t\t\tview: false,\n\t\t\tviewicon : styles.icon_view_nav,\n\t\t\tposition : \"left\",\n\t\t\tcloseOnEscape : true,\n\t\t\tbeforeRefresh : null,\n\t\t\tafterRefresh : null,\n\t\t\tcloneToTop : false,\n\t\t\talertwidth : 200,\n\t\t\talertheight : 'auto',\n\t\t\talerttop: null,\n\t\t\talertleft: null,\n\t\t\talertzIndex : null,\n\t\t\tdropmenu : false,\n\t\t\tnavButtonText : ''\n\t\t}, regional, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif(this.p.navGrid) {return;}\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t$t = this, twd, tdw, o;\n\t\t\tif(!$t.grid || typeof elem !== 'string') {return;}\n\t\t\tif(!$($t).data('navGrid')) {\n\t\t\t\t$($t).data('navGrid',p);\n\t\t\t}\n\t\t\t// speedoverhead, but usefull for future \n\t\t\to = $($t).data('navGrid');\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\t\t\tif ($(\"#\"+alertIDs.themodal)[0] === undefined) {\n\t\t\t\tif(!o.alerttop && !o.alertleft) {\n\t\t\t\t\tif (window.innerWidth !== undefined) {\n\t\t\t\t\t\to.alertleft = window.innerWidth;\n\t\t\t\t\t\to.alerttop = window.innerHeight;\n\t\t\t\t\t} else if (document.documentElement !== undefined && document.documentElement.clientWidth !== undefined && document.documentElement.clientWidth !== 0) {\n\t\t\t\t\t\to.alertleft = document.documentElement.clientWidth;\n\t\t\t\t\t\to.alerttop = document.documentElement.clientHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\to.alertleft=1024;\n\t\t\t\t\t\to.alerttop=768;\n\t\t\t\t\t}\n\t\t\t\t\to.alertleft = o.alertleft/2 - parseInt(o.alertwidth,10)/2;\n\t\t\t\t\to.alerttop = o.alerttop/2-25;\n\t\t\t\t}\n\t\t\t\t$.jgrid.createModal(alertIDs,\n\t\t\t\t\t\"<div>\"+o.alerttext+\"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>\",\n\t\t\t\t\t{ \n\t\t\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t\tjqModal:true,\n\t\t\t\t\t\tdrag:true,\n\t\t\t\t\t\tresize:true,\n\t\t\t\t\t\tcaption:o.alertcap,\n\t\t\t\t\t\ttop:o.alerttop,\n\t\t\t\t\t\tleft:o.alertleft,\n\t\t\t\t\t\twidth:o.alertwidth,\n\t\t\t\t\t\theight: o.alertheight,\n\t\t\t\t\t\tcloseOnEscape:o.closeOnEscape, \n\t\t\t\t\t\tzIndex: o.alertzIndex,\n\t\t\t\t\t\tstyleUI: $t.p.styleUI\n\t\t\t\t\t},\n\t\t\t\t\t\"#gview_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0],\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t\tvar clone = 1, i,\n\t\t\tonHoverIn = function () {\n\t\t\t\tif (!$(this).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(this).addClass(commonstyle.hover);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHoverOut = function () {\n\t\t\t\t$(this).removeClass(commonstyle.hover);\n\t\t\t};\n\t\t\tif(o.cloneToTop && $t.p.toppager) {clone = 2;}\n\t\t\tfor(i = 0; i<clone; i++) {\n\t\t\t\tvar tbd,\n\t\t\t\tnavtbl = $(\"<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>\"),\n\t\t\t\tsep = \"<td class='ui-pg-button \" +commonstyle.disabled + \"' style='width:4px;'><span class='ui-separator'></span></td>\",\n\t\t\t\tpgid, elemids;\n\t\t\t\tif(i===0) {\n\t\t\t\t\tpgid = elem;\n\t\t\t\t\telemids = $t.p.id;\n\t\t\t\t\tif(pgid === $t.p.toppager) {\n\t\t\t\t\t\telemids += \"_top\";\n\t\t\t\t\t\tclone = 1;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpgid = $t.p.toppager;\n\t\t\t\t\telemids = $t.p.id+\"_top\";\n\t\t\t\t}\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\t$(navtbl).attr(\"dir\",\"rtl\").css(\"float\",\"right\");\n\t\t\t\t}\n\t\t\t\tpAdd = pAdd || {};\n\t\t\t\tif (o.add) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base +\" \" +o.addicon+\"'></span>\"+o.addtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.addtitle || \"\",id : pAdd.id || \"add_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( o.addfunc )) {\n\t\t\t\t\t\t\t\to.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpEdit = pEdit || {};\n\t\t\t\tif (o.edit) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.editicon+\"'></span>\"+o.edittext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.edittitle || \"\",id: pEdit.id || \"edit_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.editfunc ) ) {\n\t\t\t\t\t\t\t\t\to.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpView = pView || {};\n\t\t\t\tif (o.view) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.viewicon+\"'></span>\"+o.viewtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.viewtitle || \"\",id: pView.id || \"view_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.viewfunc ) ) {\n\t\t\t\t\t\t\t\t\to.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpDel = pDel || {};\n\t\t\t\tif (o.del) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.delicon+\"'></span>\"+o.deltext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.deltitle || \"\",id: pDel.id || \"del_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( o.delfunc )){\n\t\t\t\t\t\t\t\t\to.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif(o.add || o.edit || o.del || o.view) {$(\"tr\",navtbl).append(sep);}\n\t\t\t\tpSearch = pSearch || {};\n\t\t\t\tif (o.search) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.searchicon+\"'></span>\"+o.searchtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.searchtitle  || \"\",id:pSearch.id || \"search_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( o.searchfunc )) {\n\t\t\t\t\t\t\t\to.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$(tbd,navtbl).click();\n\t\t\t\t\t}\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif (o.refresh) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.refreshicon+\"'></span>\"+o.refreshtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.refreshtitle  || \"\",id: \"refresh_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( o.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (o.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\ttdw = $(\".ui-jqgrid\").css(\"font-size\") || \"11px\";\n\t\t\t\t$('body').append(\"<div id='testpg2' class='ui-jqgrid \"+$.jgrid.styleUI[currstyle].base.entrieBox+\"' style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\t\ttwd = $(navtbl).clone().appendTo(\"#testpg2\").width();\n\t\t\t\t$(\"#testpg2\").remove();\n\t\t\t\t\n\t\t\t\tif($t.p._nvtd) {\n\t\t\t\t\tif(o.dropmenu) {\n\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\t\t\t\t\t\t\n\t\t\t\t\t} else if(twd > $t.p._nvtd[0] ) {\n\t\t\t\t\t\tif($t.p.responsive) {\n\t\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl).width(twd);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$t.p._nvtd[0] = twd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl);\n\t\t\t\t\t}\n\t\t\t\t\t$t.p._nvtd[1] = twd;\n\t\t\t\t}\n\t\t\t\t$t.p.navGrid = true;\n\t\t\t}\n\t\t\tif($t.p.storeNavOptions) {\n\t\t\t\t$t.p.navOptions = o;\n\t\t\t\t$t.p.editOptions = pEdit;\n\t\t\t\t$t.p.addOptions = pAdd;\n\t\t\t\t$t.p.delOptions = pDel;\n\t\t\t\t$t.p.searchOptions = pSearch;\n\t\t\t\t$t.p.viewOptions = pView;\n\t\t\t\t$t.p.navButtons =[];\n\t\t\t}\n\n\t\t});\n\t},\n\tnavButtonAdd : function (elem, p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator;\n\t\tp = $.extend({\n\t\t\tcaption : \"newButton\",\n\t\t\ttitle: '',\n\t\t\tbuttonicon : styles.icon_newbutton_nav,\n\t\t\tonClickButton: null,\n\t\t\tposition : \"last\",\n\t\t\tcursor : 'pointer',\n\t\t\tinternal : false\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], $t = this,\n\t\t\t//getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\tdisabled = $.jgrid.styleUI[currstyle].common.disabled,\n\t\t\thover = $.jgrid.styleUI[currstyle].common.hover,\n\t\t\tcornerall = $.jgrid.styleUI[currstyle].common.cornerall,\n\t\t\ticonbase = $.jgrid.styleUI[currstyle].common.icon_base;\n\n\t\t\tif ($t.p.storeNavOptions && !p.internal) {\n\t\t\t\t$t.p.navButtons.push([elem,p]);\n\t\t\t}\n\n\t\t\tif (findnav) {\n\t\t\t\tif( p.id && $(\"#\"+$.jgrid.jqID(p.id), findnav)[0] !== undefined )  {return;}\n\t\t\t\tvar tbd = $(\"<td></td>\");\n\t\t\t\tif(p.buttonicon.toString().toUpperCase() === \"NONE\") {\n                    $(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'>\"+p.caption+\"</div>\");\n\t\t\t\t} else\t{\n\t\t\t\t\t$(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'><span class='\"+iconbase+\" \"+p.buttonicon+\"'></span>\"+p.caption+\"</div>\");\n\t\t\t\t}\n\t\t\t\tif(p.id) {$(tbd).attr(\"id\",p.id);}\n\t\t\t\tif(p.position==='first'){\n\t\t\t\t\tif(findnav.rows[0].cells.length ===0 ) {\n\t\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\",findnav).before(tbd);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t}\n\t\t\t\t$(tbd,findnav)\n\t\t\t\t.attr(\"title\",p.title  || \"\")\n\t\t\t\t.click(function(e){\n\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);}\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t\t.hover(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tif (findnav) {\n\t\t\t\t\tvar id = $(findnav).val(),\n\t\t\t\t\teid = p.id || $.jgrid.randId(),\n\t\t\t\t\titem = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.caption || p.title)+'</a></li>');\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === 'first') {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( item );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( item );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(item).on(\"click\", function(e){\n\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t$(\"#\"+id).hide();\n\t\t\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {\n\t\t\t\t\t\t\t\t\tp.onClickButton.call($t,e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}).find(\"a\")\n\t\t\t\t\t\t.hover(\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tnavSeparatorAdd:function (elem,p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tsepclass : \"ui-separator\",\n\t\t\tsepcontent: '',\n\t\t\tposition : \"last\"\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], sep, id;\n\t\t\tif ( this.p.storeNavOptions ) {\n\t\t\t\tthis.p.navButtons.push([elem,p]);\n\t\t\t}\n\t\t\t\n\t\t\tif(findnav) {\n\t\t\t\tsep = \"<td class='ui-pg-button \"+ commonstyle.disabled +\"' style='width:4px;'><span class='\"+p.sepclass+\"'></span>\"+p.sepcontent+\"</td>\";\n\t\t\t\tif (p.position === 'first') {\n\t\t\t\t\tif (findnav.rows[0].cells.length === 0) {\n\t\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\", findnav).before(sep);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tsep = \"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\";\n\t\t\t\tif(findnav) {\n\t\t\t\t\tid = $(findnav).val();\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === \"first\") {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( sep );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( sep );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\t_buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this,\n\t\t\t//actions = ['add','edit', 'del', 'view', 'search','refresh'],\n\t\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\t\tcurrstyle = $t.p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tclasses = $.jgrid.styleUI[currstyle].filter,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common,\n\t\t\tmid = \"form_menu_\"+$.jgrid.randId(),\n\t\t\tbt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions',\n\t\t\tact = \"<button class='dropdownmenu \"+commonstyle.button+\"' value='\"+mid+\"'>\" + bt +\"</button>\";\n\t\t\t$(elem+\"_\"+p.position, elem).append( act );\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t_buildMenu = function() {\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px',\n\t\t\t\teid, itm,\n\t\t\t\tstr = $('<ul id=\"'+mid+'\" class=\"ui-nav-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"display:none;font-size:'+fs+'\"></ul>');\n\t\t\t\tif( p.add ) {\n\t\t\t\t\tpAdd = pAdd || {};\n\t\t\t\t\teid = pAdd.id || \"add_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.addtext || p.addtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( p.addfunc )) {\n\t\t\t\t\t\t\t\tp.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.edit ) {\n\t\t\t\t\tpEdit = pEdit || {};\n\t\t\t\t\teid = pEdit.id || \"edit_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.edittext || p.edittitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.view ) {\n\t\t\t\t\tpView = pView || {};\n\t\t\t\t\teid = pView.id || \"view_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.viewtext || p.viewtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.del ) {\n\t\t\t\t\tpDel = pDel || {};\n\t\t\t\t\teid = pDel.id || \"del_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.deltext || p.deltitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( p.delfunc )){\n\t\t\t\t\t\t\t\t\tp.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif(p.add || p.edit || p.del || p.view) {\n\t\t\t\t\t$(str).append(\"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\");\n\t\t\t\t}\n\t\t\t\tif( p.search ) {\n\t\t\t\t\tpSearch = pSearch || {};\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.searchtext || p.searchtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( p.searchfunc )) {\n\t\t\t\t\t\t\t\tp.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$( itm ).click();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( p.refresh ) {\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( p.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (p.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\t$(str).hide();\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#\"+mid).addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#\"+mid+\" > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(commonstyle.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(commonstyle.hover); }\n\t\t\t\t);\n\t\t\t};\n\t\t\t_buildMenu();\n\t\t\t$(\".dropdownmenu\", elem+\"_\"+p.position).on(\"click\", function( e ){\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = parseInt( offset.top),\n\t\t\t\tbid =$(this).val();\n\t\t\t\t//if( $(\"#\"+mid)[0] === undefined)  {\n\t\t\t\t\t//_buildMenu();\n\t\t\t\t//}\n\t\t\t\t$(\"#\"+bid).show().css({\"top\":top - ($(\"#\"+bid).height() +10)+\"px\", \"left\":left+\"px\"});\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).hasClass(\"dropdownmenu\")) {\n\t\t\t\t\t$(\"#\"+mid).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tGridToForm : function( rowid, formid ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, i;\n\t\t\tif (!$t.grid) {return;}\n\t\t\tvar rowdata = $($t).jqGrid(\"getRowData\",rowid);\n\t\t\tif (rowdata) {\n\t\t\t\tfor(i in rowdata) {\n\t\t\t\t\tif(rowdata.hasOwnProperty(i)) {\n\t\t\t\t\tif ( $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:radio\") || $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:checkbox\"))  {\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).each( function() {\n\t\t\t\t\t\t\tif( $(this).val() == rowdata[i] ) {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t// this is very slow on big table and form.\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).val(rowdata[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tFormToGrid : function(rowid, formid, mode, position){\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(!mode) {mode = 'set';}\n\t\t\tif(!position) {position = 'first';}\n\t\t\tvar fields = $(formid).serializeArray();\n\t\t\tvar griddata = {};\n\t\t\t$.each(fields, function(i, field){\n\t\t\t\tgriddata[field.name] = field.value;\n\t\t\t});\n\t\t\tif(mode==='add') {$($t).jqGrid(\"addRowData\",rowid,griddata, position);}\n\t\t\telse if(mode==='set') {$($t).jqGrid(\"setRowData\",rowid,griddata);}\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid.extend({\n\tgroupingSetup : function () {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping;\n\t\t\tif(grp !== null && ( (typeof grp === 'object') || $.isFunction(grp) ) ) {\n\t\t\t\tif(!grp.plusicon) { grp.plusicon = classes.icon_plus;}\n\t\t\t\tif(!grp.minusicon) { grp.minusicon = classes.icon_minus;}\n\t\t\t\tif(!grp.groupField.length) {\n\t\t\t\t\t$t.p.grouping = false;\n\t\t\t\t} else {\n\t\t\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgrp.lastvalues=[];\n\t\t\t\t\tif(!grp._locgr) {\n\t\t\t\t\t\tgrp.groups =[];\n\t\t\t\t\t}\n\t\t\t\t\tgrp.counters =[];\n\t\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\t\t\tif(!grp.groupOrder[i]) {\n\t\t\t\t\t\t\tgrp.groupOrder[i] = 'asc';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!grp.groupText[i]) {\n\t\t\t\t\t\t\tgrp.groupText[i] = '{0}';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupColumnShow[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupColumnShow[i] = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupSummary[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupSummary[i] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( !grp.groupSummaryPos[i]) {\n\t\t\t\t\t\t\tgrp.groupSummaryPos[i] = 'footer';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(grp.groupColumnShow[i] === true) {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = true;\n\t\t\t\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id+\"_\"+grp.groupField[i])).is(\":visible\");\n\t\t\t\t\t\t\t$($t).jqGrid('hideCol',grp.groupField[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrp.summary =[];\n\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\tif($.isArray(grp.formatDisplayField) && !$.isFunction(grp.formatDisplayField[0] ) ) {\n\t\t\t\t\t\t\tgrp.formatDisplayField[0] = function (v) { return v;};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(j=0, cml = cm.length; j < cml; j++) {\n\t\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\t\tif(!cm[j].hidden && grp.groupField[0] === cm[j].name) {\n\t\t\t\t\t\t\t\tcm[j].formatter = function(){return '';};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm[j].summaryType ) {\n\t\t\t\t\t\t\tif(cm[j].summaryDivider) {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$t.p.grouping = false;\n\t\t\t}\n\t\t});\n\t},\n\tgroupingPrepare : function ( record, irow ) {\n\t\tthis.each(function(){\n\t\t\tvar grp = this.p.groupingView, $t= this, i,\n\t\t\tsumGroups = function() {\n\t\t\t\tif ($.isFunction(this.st)) {\n\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\n\t\t\t\t} else {\n\t\t\t\t\tthis.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record);\n\t\t\t\t\tif(this.st.toLowerCase() === 'avg' && this.sd) {\n\t\t\t\t\t\tthis.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tgrlen = grp.groupField.length, \n\t\t\tfieldName,\n\t\t\tv,\n\t\t\tdisplayName,\n\t\t\tdisplayValue,\n\t\t\tchanged = 0;\n\t\t\tfor(i=0;i<grlen;i++) {\n\t\t\t\tfieldName = grp.groupField[i];\n\t\t\t\tdisplayName = grp.displayField[i];\n\t\t\t\tv = record[fieldName];\n\t\t\t\tdisplayValue = displayName == null ? null : record[displayName];\n\n\t\t\t\tif( displayValue == null ) {\n\t\t\t\t\tdisplayValue = v;\n\t\t\t\t}\n\t\t\t\tif( v !== undefined ) {\n\t\t\t\t\tif(irow === 0 ) {\n\t\t\t\t\t\t// First record always starts a new group\n\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (typeof v !== \"object\" && ($.isArray(grp.isInTheSameGroup) && $.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) {\n\t\t\t\t\t\t\t// This record is not in same group as previous one\n\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\tchanged = 1;\n\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (changed === 1) {\n\t\t\t\t\t\t\t\t// This group has changed because an earlier group changed.\n\t\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.counters[i].cnt += 1;\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt;\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t//gdata.push( rData );\n\t\t});\n\t\treturn this;\n\t},\n\tgroupingToggle : function(hid){\n\t\tthis.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstrpos = hid.split('_'),\n\t\t\tnum = parseInt(strpos[strpos.length-2], 10);\n\t\t\tstrpos.splice(strpos.length-2,2);\n\t\t\tvar uid = strpos.join(\"_\"),\n\t\t\tminus = grp.minusicon,\n\t\t\tplus = grp.plusicon,\n\t\t\ttar = $(\"#\"+$.jgrid.jqID(hid)),\n\t\t\tr = tar.length ? tar[0].nextSibling : null,\n\t\t\ttarspan = $(\"#\"+$.jgrid.jqID(hid)+\" span.\"+\"tree-wrap-\"+$t.p.direction),\n\t\t\tgetGroupingLevelFromClass = function (className) {\n\t\t\t\tvar nums = $.map(className.split(\" \"), function (item) {\n\t\t\t\t\tif (item.substring(0, uid.length + 1) === uid + \"_\") {\n\t\t\t\t\t\treturn parseInt(item.substring(uid.length + 1), 10);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn nums.length > 0 ? nums[0] : undefined;\n\t\t\t},\n\t\t\titemGroupingLevel,\n\t\t\tshowData,\n\t\t\tcollapsed = false,\n\t\t\tskip = false,\n\t\t\tfrz = $t.p.frozenColumns ? $t.p.id+\"_frozen\" : false,\n\t\t\ttar2 = frz ? $(\"#\"+$.jgrid.jqID(hid), \"#\"+$.jgrid.jqID(frz) ) : false,\n\t\t\tr2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null;\n\t\t\tif( tarspan.hasClass(minus) ) {\n\t\t\t\tif(r){\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined && itemGroupingLevel <= num) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(r).hide();\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t$(r2).hide();\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(minus).addClass(plus);\n\t\t\t\tcollapsed = true;\n\t\t\t} else {\n\t\t\t\tif(r){\n\t\t\t\t\tshowData = undefined;\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (showData === undefined) {\n\t\t\t\t\t\t\tshowData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows\n\t\t\t\t\t\t}\n\t\t\t\t\t\tskip = $(r).hasClass(\"ui-subgrid\") && $(r).hasClass(\"ui-sg-collapsed\");\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined) {\n\t\t\t\t\t\t\tif (itemGroupingLevel <= num) {\n\t\t\t\t\t\t\t\tbreak;// next item of the same lever are found\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (itemGroupingLevel === num + 1) {\n\t\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t\t$(r).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t\t$(r2).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (showData) {\n\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t$(r).show();\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(r2).show();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(plus).addClass(minus);\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridGroupingClickGroup\", [hid , collapsed]);\n\t\t\tif( $.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); }\n\n\t\t});\n\t\treturn false;\n\t},\n\tgroupingRender : function (grdata, colspans, page, rn ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstr = \"\", icon = \"\", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length,\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tpmrtl = pmrtl+\" tree-wrap-\"+$t.p.direction; \n\t\t\t$.each($t.p.colModel, function (i,n){\n\t\t\t\tvar ii;\n\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar toEnd = 0;\n\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\tvar ret = false, i;\n\t\t\t\tif(offset===0) {\n\t\t\t\t\tret = grp[ind];\n\t\t\t\t} else {\n\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t}  else {\n\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tvv, grlen = fdata.cnt, str=\"\", k;\n\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\tvar tmpdata = \"<td \"+$t.formatCol(k,1,'')+\">&#160;</td>\",\n\t\t\t\t\ttplfld = \"{0}\";\n\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpdata= \"<td \"+$t.formatCol(k,1,'')+\">\"+$.jgrid.template(tplfld,vv)+ \"</td>\";\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tstr += tmpdata;\n\t\t\t\t}\n\t\t\t\treturn str;\n\t\t\t}\n\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), mul;\n\t\t\tsumreverse.reverse();\n\t\t\tmul = $t.p.multiselect ? \" colspan=\\\"2\\\"\" : \"\";\n\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\tif(grp._locgr) {\n\t\t\t\t\tif( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttoEnd++;\n\t\t\t\tclid = $t.p.id+\"ghead_\"+n.idx;\n\t\t\t\thid = clid+\"_\"+i;\n\t\t\t\ticon = \"<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='\" + common.icon_base +\" \"+pmrtl+\"' onclick=\\\"jQuery('#\"+$.jgrid.jqID($t.p.id)+\"').jqGrid('groupingToggle','\"+hid+\"');return false;\\\"></span>\";\n\t\t\t\ttry {\n\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t}\n\t\t\t\t} catch (egv) {\n\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t}\n\t\t\t\tvar grpTextStr = ''; \n\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t} else {\n\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t}\n\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t}\n\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\"\" + mul +\">\" + icon+grpTextStr + \"</td>\";\n\t\t\t\t\tstr += buildSummaryTd(i, 0, grp.groups, grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2) );\n\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t} else {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\" colspan=\\\"\"+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+\"\\\">\" + icon + grpTextStr + \"</td></tr>\";\n\t\t\t\t}\n\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\tif( leaf ) {\n\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\tif(grp._locgr) {\n\t\t\t\t\t\toffset = (page-1)*rn;\n\t\t\t\t\t\tif(offset > n.startRow) {\n\t\t\t\t\t\t\tsgr = offset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\tstr += grdata[kk - offset].join('');\n\t\t\t\t\t}\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\tvar hhdr = \"\";\n\t\t\t\t\t\t\tif(grp.groupCollapse && !grp.showSummaryOnHide) {\n\t\t\t\t\t\t\t\thhdr = \" style=\\\"display:none;\\\"\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += \"<tr\"+hhdr+\" jqfootlevel=\\\"\"+(n.idx-ik)+\"\\\" role=\\\"row\\\" class=\\\"\" + common.content + \" jqfoot ui-row-\"+$t.p.direction+\"\\\">\";\n\t\t\t\t\t\t\tstr += buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").append(str);\n\t\t\t// free up memory\n\t\t\tstr = null;\n\t\t});\n\t},\n\tgroupingGroupBy : function (name, options ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(typeof name === \"string\") {\n\t\t\t\tname = [name];\n\t\t\t}\n\t\t\tvar grp = $t.p.groupingView;\n\t\t\t$t.p.grouping = true;\n\t\t\tgrp._locgr = false;\n\t\t\t//Set default, in case visibilityOnNextGrouping is undefined \n\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t}\n\t\t\tvar i;\n\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// set visibility status of current group columns on next grouping\n\t\t\tfor(i=0;i<name.length;i++) {\n\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(name[i])).is(\":visible\");\n\t\t\t}\n\t\t\t$t.p.groupingView = $.extend($t.p.groupingView, options || {});\n\t\t\tgrp.groupField = name;\n\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t});\n\t},\n\tgroupingRemove : function (current) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(current === undefined) {\n\t\t\t\tcurrent = true;\n\t\t\t}\n\t\t\t$t.p.grouping = false;\n\t\t\tif(current===true) {\n\t\t\t\tvar grp = $t.p.groupingView, i;\n\t\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t\t\t$($t).jqGrid('showCol', grp.groupField);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\"tr.jqgroup, tr.jqfoot\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").remove();\n\t\t\t\t$(\"tr.jqgrow:hidden\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").show();\n\t\t\t} else {\n\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t}\n\t\t});\n\t},\n\tgroupingCalculations : {\n\t\thandler: function(fn, v, field, round, roundType, rc) {\n\t\t\tvar funcs = {\n\t\t\t\tsum: function() {\n\t\t\t\t\treturn parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmin: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmax: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tcount: function() {\n\t\t\t\t\tif(v===\"\") {v=0;}\n\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\treturn v+1;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t},\n\n\t\t\t\tavg: function() {\n\t\t\t\t\t// the same as sum, but at end we divide it\n\t\t\t\t\t// so use sum instead of duplicating the code (?)\n\t\t\t\t\treturn funcs.sum();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif(!funcs[fn]) {\n\t\t\t\tthrow (\"jqGrid Grouping No such method: \" + fn);\n\t\t\t}\n\t\t\tvar res = funcs[fn]();\n\n\t\t\tif (round != null) {\n\t\t\t\tif (roundType === 'fixed') {\n\t\t\t\t\tres = res.toFixed(round);\n\t\t\t\t} else {\n\t\t\t\t\tvar mul = Math.pow(10, round);\n\t\t\t\t\tres = Math.round(res * mul) / mul;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\t\n\t},\n\tsetGroupHeaders : function ( o ) {\n\t\to = $.extend({\n\t\t\tuseColSpanStyle :  false,\n\t\t\tgroupHeaders: []\n\t\t},o  || {});\n\t\treturn this.each(function(){\n\t\t\tvar ts = this,\n\t\t\ti, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle,\n\t\t\tiCol,\n\t\t\tcghi,\n\t\t\t//startColumnName,\n\t\t\tnumberOfColumns,\n\t\t\ttitleText,\n\t\t\tcVisibleColumns,\n\t\t\tclassName,\n\t\t\tcolModel = ts.p.colModel,\n\t\t\tcml = colModel.length,\n\t\t\tths = ts.grid.headers,\n\t\t\t$htable = $(\"table.ui-jqgrid-htable\", ts.grid.hDiv),\n\t\t\t$trLabels = $htable.children(\"thead\").children(\"tr.ui-jqgrid-labels:last\").addClass(\"jqg-second-row-header\"),\n\t\t\t$thead = $htable.children(\"thead\"),\n\t\t\t$theadInTable,\n\t\t\t$firstHeaderRow = $htable.find(\".jqg-first-row-header\"),\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tbase = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;\n\t\t\tif(!ts.p.groupHeader) {\n\t\t\t\tts.p.groupHeader = [];\n\t\t\t}\n\t\t\tts.p.groupHeader.push(o);\n\t\t\tif($firstHeaderRow[0] === undefined) {\n\t\t\t\t$firstHeaderRow = $('<tr>', {role: \"row\", \"aria-hidden\": \"true\"}).addClass(\"jqg-first-row-header\").css(\"height\", \"auto\");\n\t\t\t} else {\n\t\t\t\t$firstHeaderRow.empty();\n\t\t\t}\n\t\t\tvar $firstRow,\n\t\t\tinColumnHeader = function (text, columnHeaders) {\n\t\t\t\tvar length = columnHeaders.length, i;\n\t\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\t\tif (columnHeaders[i].startColumnName === text) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t};\n\n\t\t\t$(ts).prepend($thead);\n\t\t\t$tr = $('<tr>', {role: \"row\"}).addClass(\"ui-jqgrid-labels jqg-third-row-header\");\n\t\t\tfor (i = 0; i < cml; i++) {\n\t\t\t\tth = ths[i].el;\n\t\t\t\t$th = $(th);\n\t\t\t\tcmi = colModel[i];\n\t\t\t\t// build the next cell for the first header row\n\t\t\t\tthStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};\n\t\t\t\t$(\"<th>\", {role: 'gridcell'}).css(thStyle).addClass(\"ui-first-th-\"+ts.p.direction).appendTo($firstHeaderRow);\n\n\t\t\t\tth.style.width = \"\"; // remove unneeded style\n\t\t\t\tiCol = inColumnHeader(cmi.name, o.groupHeaders);\n\t\t\t\tif (iCol >= 0) {\n\t\t\t\t\tcghi = o.groupHeaders[iCol];\n\t\t\t\t\tnumberOfColumns = cghi.numberOfColumns;\n\t\t\t\t\ttitleText = cghi.titleText;\n\t\t\t\t\tclassName = cghi.className || \"\";\n\t\t\t\t\t// caclulate the number of visible columns from the next numberOfColumns columns\n\t\t\t\t\tfor (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {\n\t\t\t\t\t\tif (!colModel[i + iCol].hidden) {\n\t\t\t\t\t\t\tcVisibleColumns++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// The next numberOfColumns headers will be moved in the next row\n\t\t\t\t\t// in the current row will be placed the new column header with the titleText.\n\t\t\t\t\t// The text will be over the cVisibleColumns columns\n\t\t\t\t\t$colHeader = $('<th>').attr({role: \"columnheader\"})\n\t\t\t\t\t\t.addClass(base.headerBox+ \" ui-th-column-header ui-th-\"+ts.p.direction+\" \"+className)\n\t\t\t\t\t\t//.css({'height':'22px', 'border-top': '0 none'})\n\t\t\t\t\t\t.html(titleText);\n\t\t\t\t\tif(cVisibleColumns > 0) {\n\t\t\t\t\t\t$colHeader.attr(\"colspan\", String(cVisibleColumns));\n\t\t\t\t\t}\n\t\t\t\t\tif (ts.p.headertitles) {\n\t\t\t\t\t\t$colHeader.attr(\"title\", $colHeader.text());\n\t\t\t\t\t}\n\t\t\t\t\t// hide if not a visible cols\n\t\t\t\t\tif( cVisibleColumns === 0) {\n\t\t\t\t\t\t$colHeader.hide();\n\t\t\t\t\t}\n\n\t\t\t\t\t$th.before($colHeader); // insert new column header before the current\n\t\t\t\t\t$tr.append(th);         // move the current header in the next row\n\n\t\t\t\t\t// set the coumter of headers which will be moved in the next row\n\t\t\t\t\tskip = numberOfColumns - 1;\n\t\t\t\t} else {\n\t\t\t\t\tif (skip === 0) {\n\t\t\t\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t\t\t\t// expand the header height to two rows\n\t\t\t\t\t\t\t$th.attr(\"rowspan\", \"2\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$('<th>', {role: \"columnheader\"})\n\t\t\t\t\t\t\t\t.addClass(base.headerBox+\" ui-th-column-header ui-th-\"+ts.p.direction)\n\t\t\t\t\t\t\t\t.css({\"display\": cmi.hidden ? 'none' : ''})\n\t\t\t\t\t\t\t\t.insertBefore($th);\n\t\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// move the header to the next row\n\t\t\t\t\t\t//$th.css({\"padding-top\": \"2px\", height: \"19px\"});\n\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\tskip--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$theadInTable = $(ts).children(\"thead\");\n\t\t\t$theadInTable.prepend($firstHeaderRow);\n\t\t\t$tr.insertAfter($trLabels);\n\t\t\t$htable.append($theadInTable);\n\n\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t// Increase the height of resizing span of visible headers\n\t\t\t\t$htable.find(\"span.ui-jqgrid-resize\").each(function () {\n\t\t\t\t\tvar $parent = $(this).parent();\n\t\t\t\t\tif ($parent.is(\":visible\")) {\n\t\t\t\t\t\tthis.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Set position of the sortable div (the main lable)\n\t\t\t\t// with the column header text to the middle of the cell.\n\t\t\t\t// One should not do this for hidden headers.\n\t\t\t\t$htable.find(\"div.ui-jqgrid-sortable\").each(function () {\n\t\t\t\t\tvar $ts = $(this), $parent = $ts.parent();\n\t\t\t\t\tif ($parent.is(\":visible\") && $parent.is(\":has(span.ui-jqgrid-resize)\")) {\n\t\t\t\t\t\t// minus 4px from the margins of the resize markers\n\t\t\t\t\t\t$ts.css('top', ($parent.height() - $ts.outerHeight()) / 2  - 4 +  'px');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$firstRow = $theadInTable.find(\"tr.jqg-first-row-header\");\n\t\t\t$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {\n\t\t\t\t$firstRow.find('th').eq(idx)[0].style.width = nw + \"px\";\n\t\t\t});\n\t\t});\t\t\t\t\n\t},\n\tdestroyGroupHeader : function(nullHeader) {\n\t\tif(nullHeader === undefined) {\n\t\t\tnullHeader = true;\n\t\t}\n\t\treturn this.each(function()\n\t\t{\n\t\t\tvar $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,\n\t\t\tthead = $(\"table.ui-jqgrid-htable thead\", grid.hDiv), cm = $t.p.colModel, hc;\n\t\t\tif(!grid) { return; }\n\n\t\t\t$(this).off('.setGroupHeaders');\n\t\t\t$tr = $(\"<tr>\", {role: \"row\"}).addClass(\"ui-jqgrid-labels\");\n\t\t\theaders = grid.headers;\n\t\t\tfor (i = 0, l = headers.length; i < l; i++) {\n\t\t\t\thc = cm[i].hidden ? \"none\" : \"\";\n\t\t\t\t$th = $(headers[i].el)\n\t\t\t\t\t.width(headers[i].width)\n\t\t\t\t\t.css('display',hc);\n\t\t\t\ttry {\n\t\t\t\t\t$th.removeAttr(\"rowSpan\");\n\t\t\t\t} catch (rs) {\n\t\t\t\t\t//IE 6/7\n\t\t\t\t\t$th.attr(\"rowSpan\",1);\n\t\t\t\t}\n\t\t\t\t$tr.append($th);\n\t\t\t\t$resizing = $th.children(\"span.ui-jqgrid-resize\");\n\t\t\t\tif ($resizing.length>0) {// resizable column\n\t\t\t\t\t$resizing[0].style.height = \"\";\n\t\t\t\t}\n\t\t\t\t$th.children(\"div\")[0].style.top = \"\";\n\t\t\t}\n\t\t\t$(thead).children('tr.ui-jqgrid-labels').remove();\n\t\t\t$(thead).prepend($tr);\n\n\t\t\tif(nullHeader === true) {\n\t\t\t\t$($t).jqGrid('setGridParam',{ 'groupHeader': null});\n\t\t\t}\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid = $.jgrid || {};\n$.extend($.jgrid,{\n\tsaveState : function ( jqGridId, o ) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\", // localStorage or sessionStorage\n\t\t\tbeforeSetItem : null,\n\t\t\tcompression: false,\n\t\t\tcompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tcompressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16\n\t\t\tdebug : false\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar gridstate = \"\", data = \"\", ret, $t = $(\"#\"+jqGridId)[0], tmp;\n\t\t// to use navigator set storeNavOptions to true in grid options\n\t\tif(!$t.grid) { return;}\n\t\ttmp = $($t).data('inlineNav');\n\t\tif(tmp && $t.p.inlineNav) {\n\t\t\t$($t).jqGrid('setGridParam',{_iN: tmp});\n\t\t}\n\t\ttmp = $($t).data('filterToolbar');\n\t\tif(tmp && $t.p.filterToolbar) {\n\t\t\t$($t).jqGrid('setGridParam',{_fT: tmp});\n\t\t}\n\t\tgridstate  =  $($t).jqGrid('jqGridExport', { exptype : \"jsonstring\", ident:\"\", root:\"\" });\n\t\tdata = $($t.grid.bDiv).find(\".ui-jqgrid-btable tbody:first\").html();\n\t\tvar firstrow  = data.indexOf(\"</tr>\");\n\t\tdata = data.slice(firstrow + 5);\n\t\tif($.isFunction(o.beforeSetItem)) {\n\t\t\tret = o.beforeSetItem.call($t, gridstate);\n\t\t\tif(ret != null) {\n\t\t\t\tgridstate = ret;\n\t\t\t}\n\t\t}\n\t\tif(o.debug) {\n\t\t\t$(\"#gbox_tree\").prepend('<a id=\"link_save\" target=\"_blank\" download=\"jqGrid_dump.txt\">Click to save Dump Data</a>');\n\t\t\tvar temp = [], file, properties = {}, url;\n\t\t\ttemp.push(\"Grid Options\\n\");\n\t\t\ttemp.push(gridstate);\n\t\t\ttemp.push(\"\\n\");\n\t\t\ttemp.push(\"GridData\\n\");\n\t\t\ttemp.push(data);\n\t\t\tproperties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type.\n\t\t\ttry {\n\t\t\t\tfile = new File(temp, \"jqGrid_dump.txt\", properties);\n\t\t\t} catch (e) {\n\t\t\t\tfile = new Blob(temp, properties);\n\t\t\t}\n\t\t\turl = URL.createObjectURL(file);\n\t\t\t$(\"#link_save\").attr(\"href\",url).on('click',function(){\n\t\t\t\t$(this).remove();\n\t\t\t});\n\t\t}\t\t\n\t\tif(o.compression) {\n\t\t\tif(o.compressionModule) {\n\t\t\t\ttry { \n\t\t\t\t\tret = window[o.compressionModule][o.compressionMethod](gridstate);\n\t\t\t\t\tif(ret != null) {\n\t\t\t\t\t\tgridstate = ret;\n\t\t\t\t\t\tdata = window[o.compressionModule][o.compressionMethod](data);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// can not execute a compression.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(o.useStorage && $.jgrid.isLocalStorage()) {\n\t\t\ttry {\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id, gridstate);\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id+\"_data\", data);\n\t\t\t} catch (e) {\n\t\t\t\tif(e.code === 22) { // chrome is 21\n\t\t\t\t\t// just for now. we should make some additionla changes and eventually clear some local items\n\t\t\t\t\talert(\"Local storage limit is over!\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn gridstate;\n\t},\n\tloadState : function (jqGridId, gridstring, o) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\",\n\t\t\tclearAfterLoad: false,  // clears the jqGrid localStorage items aftre load\n\t\t\tbeforeSetGrid : null,\n\t\t\tafterSetGrid : null,\n\t\t\tdecompression: false,\n\t\t\tdecompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tdecompressionMethod : 'decompressFromUTF16' // string by example unzip, decompressFromUTF16\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar ret, tmp, $t = $(\"#\"+jqGridId)[0], data, iN, fT;\n\t\tif(o.useStorage) {\n\t\t\ttry {\n\t\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+$t.id);\n\t\t\t\tdata = window[o.storageType].getItem(\"jqGrid\"+$t.id+\"_data\");\n\t\t\t} catch (e) {\n\t\t\t\t// can not get data\n\t\t\t}\n\t\t}\n\t\tif(!gridstring) { return; }\n\t\tif(o.decompression) {\n\t\t\tif(o.decompressionModule) {\n\t\t\ttry {\n\t\t\t\t\tret = window[o.decompressionModule][o.decompressionMethod]( gridstring );\n\t\t\t\t\tif(ret != null ) {\n\t\t\t\t\t\tgridstring = ret;\n\t\t\t\t\t\tdata = window[o.decompressionModule][o.decompressionMethod]( data );\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// decompression can not be done\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tret = jqGridUtils.parse( gridstring );\n\t\tif( ret && $.type(ret) === 'object') {\n\t\t\tif($t.grid) { \n\t\t\t\t$.jgrid.gridUnload( jqGridId ); \n\t\t\t}\n\t\t\tif($.isFunction(o.beforeSetGrid)) {\n\t\t\t\ttmp = o.beforeSetGrid( ret );\n\t\t\t\tif(tmp && $.type(tmp) === 'object') {\n\t\t\t\t\tret = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// some preparings\n\t\t\tvar retfunc = function( param ) { var p; p = param; return p;},\n\t\t\tprm = {\n\t\t\t\t\"reccount\" : ret.reccount,\n\t\t\t\t\"records\" : ret.records,\n\t\t\t\t\"lastpage\" : ret.lastpage,\n\t\t\t\t\"shrinkToFit\" : retfunc( ret.shrinkToFit),\n\t\t\t\t\"data\": retfunc(ret.data),\n\t\t\t\t\"datatype\" : retfunc(ret.datatype),\n\t\t\t\t\"grouping\" : retfunc(ret.grouping)\n\t\t\t};\n\t\t\tret.shrinkToFit = false;\n\t\t\tret.data = [];\n\t\t\tret.datatype = 'local';\n\t\t\tret.grouping = false;\n\t\t\t//ret.navGrid = false;\n\n\t\t\tif(ret.inlineNav) {\n\t\t\t\tiN = retfunc( ret._iN );\n\t\t\t\tret._iN = null; delete ret._iN; \n\t\t\t}\n\t\t\tif(ret.filterToolbar) {\n\t\t\t\tfT = retfunc( ret._fT );\n\t\t\t\tret._fT = null; delete ret._fT; \n\t\t\t}\n\t\t\tvar grid = $(\"#\"+jqGridId).jqGrid( ret );\n\t\t\tgrid.append( data );\n\t\t\tgrid.jqGrid( 'setGridParam', prm);\n\t\t\tif(ret.storeNavOptions && ret.navGrid) {\n\t\t\t\t// set to false so that nav grid can be run\n\t\t\t\tgrid[0].p.navGrid = false;\n\t\t\t\tgrid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions);\n\t\t\t\tif(ret.navButtons && ret.navButtons.length) {\n\t\t\t\t\tfor(var b = 0; b < ret.navButtons.length; b++) {\n\t\t\t\t\t\tif( 'sepclass'  in ret.navButtons[b][1]) {\n\t\t\t\t\t\t\tgrid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// refresh index \n\t\t\tgrid[0].refreshIndex();\n\t\t\t// subgrid\n\t\t\tif(ret.subGrid) {\n\t\t\t\tvar ms = ret.multiselect === 1 ? 1 : 0,\n\t\t\t\t\trn = ret.rownumbers === true ? 1 :0;\n\t\t\t\tgrid.jqGrid('addSubGrid', ms + rn);\n\t\t\t}\n\t\t\t// treegrid\n\t\t\tif(ret.treeGrid) {\n\t\t\t\tvar i = 1, len = grid[0].rows.length,\n\t\t\t\texpCol = ret.expColInd,\n\t\t\t\tisLeaf = ret.treeReader.leaf_field,\n\t\t\t\texpanded = ret.treeReader.expanded_field;\n\t\t\t\t// optimization of code needed here\n\t\t\t\twhile(i<len) {\n\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\tif(ret.ExpandColClick === true) {\n\t\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgrid.jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// multiselect\n\t\t\tif(ret.multiselect) {\n\t\t\t\t$.each(ret.selarrrow, function(){\n\t\t\t\t\t$(\"#jqg_\" + jqGridId + \"_\"+this)[ret.useProp ? 'prop': 'attr'](\"checked\", \"checked\");\n\t\t\t\t});\n\t\t\t}\n\t\t\t// grouping\n\t\t\t// pivotgrid\n\t\t\tif(ret.inlineNav && iN) {\n\t\t\t\tgrid.jqGrid('setGridParam', { inlineNav:false });\n\t\t\t\tgrid.jqGrid('inlineNav', ret.pager, iN);\n\t\t\t}\n\t\t\tif(ret.filterToolbar && fT) {\n\t\t\t\tgrid.jqGrid('setGridParam', { filterToolbar:false });\n\t\t\t\tfT.restoreFromFilters = true;\n\t\t\t\tgrid.jqGrid('filterToolbar', fT);\n\t\t\t}\n\t\t\t// finally frozenColums\n\t\t\tif( ret.frozenColumns ) {\n\t\t\t\tgrid.jqGrid('setFrozenColumns');\n\t\t\t}\n\t\t\tgrid[0].updatepager(true, true);\n\t\t\t\n\t\t\tif($.isFunction(o.afterSetGrid)) {\n\t\t\t\to.afterSetGrid( grid );\n\t\t\t}\n\t\t\tif(o.clearAfterLoad) {\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id);\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id + \"_data\");\n\t\t\t}\n\t\t} else {\n\t\t\talert(\"can not convert to object\");\n\t\t}\n\t},\n\tisGridInStorage : function ( jqGridId, options ) {\n\t\tvar o = {\n\t\t\tstorageType: \"localStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\tvar ret, gridstring, data;\n\t\ttry {\n\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+jqGridId);\n\t\t\tdata = window[o.storageType].getItem(\"jqGrid\" + jqGridId + \"_data\");\n\t\t\tret = gridstring != null && data != null && typeof gridstring === \"string\" && typeof data === \"string\" ;\n\t\t} catch (e) {\n\t\t\tret = false;\n\t\t}\n\t\treturn ret;\n\t},\n\tsetRegional : function( jqGridId , options) {\n\t\tvar o = {\n\t\t\tstorageType: \"sessionStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\t\n\t\tif( !o.regional ) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t$.jgrid.saveState( jqGridId, o );\n\t\t\n\t\to.beforeSetGrid = function(params) {\n\t\t\tparams.regional = o.regional;\n\t\t\tparams.force_regional = true;\n\t\t\treturn params;\n\t\t};\n\t\t\n\t\t$.jgrid.loadState( jqGridId, null, o);\n\t\t// check for formatter actions\n\t\tvar grid = $(\"#\"+jqGridId)[0],\n\t\tmodel = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav');\n\t\t$.each(model,function(k){\n\t\t\tif(this.formatter && this.formatter === 'actions') {\n\t\t\t\ti = k;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(i !== -1 && nav) {\n\t\t\t$(\"#\"+jqGridId + \" tbody tr\").each(function(){\n\t\t\t\tvar td = this.cells[i];\n\t\t\t\t$(td).find(\".ui-inline-edit\").attr(\"title\",nav.edittitle);\n\t\t\t\t$(td).find(\".ui-inline-del\").attr(\"title\",nav.deltitle);\n\t\t\t\t$(td).find(\".ui-inline-save\").attr(\"title\",nav.savetitle);\n\t\t\t\t$(td).find(\".ui-inline-cancel\").attr(\"title\",nav.canceltitle);\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id);\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id+\"_data\");\n\t\t} catch (e) {}\n\t},\n\tjqGridImport : function(jqGridId, o) {\n\t\to = $.extend({\n\t\t\timptype : \"xml\", // xml, json, xmlstring, jsonstring\n\t\t\timpstring: \"\",\n\t\t\timpurl: \"\",\n\t\t\tmtype: \"GET\",\n\t\t\timpData : {},\n\t\t\txmlGrid :{\n\t\t\t\tconfig : \"root>grid\",\n\t\t\t\tdata: \"root>rows\"\n\t\t\t},\n\t\t\tjsonGrid :{\n\t\t\t\tconfig : \"grid\",\n\t\t\t\tdata: \"data\"\n\t\t\t},\n\t\t\tajaxOptions :{}\n\t\t}, o || {});\n\t\tvar $t = (jqGridId.indexOf(\"#\") === 0 ? \"\": \"#\") + $.jgrid.jqID(jqGridId);\n\t\tvar xmlConvert = function (xml,o) {\n\t\t\tvar cnfg = $(o.xmlGrid.config,xml)[0];\n\t\t\tvar xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key;\n\t\t\tif(jqGridUtils.xmlToJSON ) {\n\t\t\t\tjstr = jqGridUtils.xmlToJSON( cnfg );\n\t\t\t\t//jstr = $.jgrid.parse(jstr);\n\t\t\t\tfor(key in jstr) {\n\t\t\t\t\tif(jstr.hasOwnProperty(key)) {\n\t\t\t\t\t\tjstr1=jstr[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(xmldata) {\n\t\t\t\t// save the datatype\n\t\t\t\t\tvar svdatatype = jstr.grid.datatype;\n\t\t\t\t\tjstr.grid.datatype = 'xmlstring';\n\t\t\t\t\tjstr.grid.datastr = xml;\n\t\t\t\t\t$($t).jqGrid( jstr1 ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() { $($t).jqGrid( jstr1 ); },0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\talert(\"xml2json or parse are not present\");\n\t\t\t}\n\t\t};\n\t\tvar jsonConvert = function (jsonstr,o){\n\t\t\tif (jsonstr && typeof jsonstr === 'string') {\n\t\t\t\tvar json = jqGridUtils.parse(jsonstr);\n\t\t\t\tvar gprm = json[o.jsonGrid.config];\n\t\t\t\tvar jdata = json[o.jsonGrid.data];\n\t\t\t\tif(jdata) {\n\t\t\t\t\tvar svdatatype = gprm.datatype;\n\t\t\t\t\tgprm.datatype = 'jsonstring';\n\t\t\t\t\tgprm.datastr = jdata;\n\t\t\t\t\t$($t).jqGrid( gprm ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid( gprm );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tswitch (o.imptype){\n\t\t\tcase 'xml':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"xml\",\n\t\t\t\t\tcomplete: function(xml,stat) {\n\t\t\t\t\t\tif(stat === 'success') {\n\t\t\t\t\t\t\txmlConvert(xml.responseXML,o);\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xml, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(xml);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\txml=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions));\n\t\t\t\tbreak;\n\t\t\tcase 'xmlstring' :\n\t\t\t\t// we need to make just the conversion and use the same code as xml\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tvar xmld = $.parseXML(o.impstring);\n\t\t\t\t\tif(xmld) {\n\t\t\t\t\t\txmlConvert(xmld,o);\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xmld, o]);\n\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\to.importComplete(xmld);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'json':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"json\",\n\t\t\t\t\tcomplete: function(json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tjsonConvert(json.responseText,o );\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [json, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(json);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (ee){}\n\t\t\t\t\t\tjson=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions ));\n\t\t\t\tbreak;\n\t\t\tcase 'jsonstring' :\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tjsonConvert(o.impstring,o );\n\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [o.impstring, o]);\n\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\to.importComplete(o.impstring);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n});\n\t$.jgrid.extend({\n\t\tjqGridExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"xmlstring\",\n\t\t\t\troot: \"grid\",\n\t\t\t\tident: \"\\t\",\n\t\t\t\taddOptions : {}\n\t\t\t}, o || {});\n\t\t\tvar ret = null;\n\t\t\tthis.each(function () {\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar key, gprm = $.extend(true, {}, $(this).jqGrid(\"getGridParam\"), o.addOptions);\n\t\t\t\t// we need to check for:\n\t\t\t\t// 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames\n\t\t\t\tif(gprm.rownumbers) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.multiselect) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.subGrid) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tgprm.knv = null;\n\t\t\t\tswitch (o.exptype) {\n\t\t\t\t\tcase 'xmlstring' :\n\t\t\t\t\t\tret = \"<\"+o.root+\">\"+ jqGridUtils.jsonToXML( gprm, {xmlDecl:\"\"} )+\"</\"+o.root+\">\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'jsonstring' :\n\t\t\t\t\t\tret =  jqGridUtils.stringify( gprm );\n\t\t\t\t\t\tif(o.root) { ret = \"{\"+ o.root +\":\"+ret+\"}\"; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ret;\n\t\t},\n\t\texcelExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"remote\",\n\t\t\t\turl : null,\n\t\t\t\toper: \"oper\",\n\t\t\t\ttag: \"excel\",\n\t\t\t\tbeforeExport : null,\n\t\t\t\texporthidden : false,\n\t\t\t\texportgrouping: false,\n\t\t\t\texportOptions : {}\n\t\t\t}, o || {});\n\t\t\treturn this.each(function(){\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar url;\n\t\t\t\tif(o.exptype === \"remote\") {\n\t\t\t\t\tvar pdata = $.extend({},this.p.postData), expg;\n\t\t\t\t\tpdata[o.oper] = o.tag;\n\t\t\t\t\tif($.isFunction(o.beforeExport)) {\n\t\t\t\t\t\tvar result = o.beforeExport.call(this, pdata );\n\t\t\t\t\t\tif( $.isPlainObject( result ) ) {\n\t\t\t\t\t\t\tpdata = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exporthidden) {\n\t\t\t\t\t\tvar cm = this.p.colModel, i, len = cm.length, newm=[];\n\t\t\t\t\t\tfor(i=0; i< len; i++) {\n\t\t\t\t\t\t\tif(cm[i].hidden === undefined) { cm[i].hidden = false; }\n\t\t\t\t\t\t\tnewm.push({name:cm[i].name, hidden:cm[i].hidden});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar newm1 = JSON.stringify( newm );\n\t\t\t\t\t\tif(typeof newm1 === 'string' ) {\n\t\t\t\t\t\t\tpdata['colModel'] = newm1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exportgrouping) {\n\t\t\t\t\t\texpg = JSON.stringify( this.p.groupingView );\n\t\t\t\t\t\tif(typeof expg === 'string' ) {\n\t\t\t\t\t\t\tpdata['groupingView'] = expg;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar params = jQuery.param(pdata);\n\t\t\t\t\tif(o.url.indexOf(\"?\") !== -1) { url = o.url+\"&\"+params; }\n\t\t\t\t\telse { url = o.url+\"?\"+params; }\n\t\t\t\t\twindow.location = url;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n    });\n\n//module begin\n$.jgrid.inlineEdit = $.jgrid.inlineEdit || {};\n$.jgrid.extend({\n//Editing\n\teditRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar o={}, args = $.makeArray(arguments).slice(1);\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif (keys !== undefined) { o.keys = keys; }\n\t\t\tif ($.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; }\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t\t// last two not as param, but as object (sorry)\n\t\t\t//if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; }\n\t\t\t//if (mtype !== undefined) { o.mtype = mtype || \"POST\"; }\t\t\t\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tkeys : false,\n\t\t\tkeyevent : \"keydown\",\n\t\t\toneditfunc: null,\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tfocusField : true\n\t\t}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer,\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".inlinedit\",'inputClass', true);\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif( ind === false ) {return;}\n\t\t\t$t.p.beforeAction = true;\n\t\t\tbfer = $.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) :  undefined;\n\t\t\tif( bfer === undefined ) {\n\t\t\t\tbfer = true;\n\t\t\t}\n\t\t\tif(!bfer) { \n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\teditable = $(ind).attr(\"editable\") || \"0\";\n\t\t\tif (editable === \"0\" && !$(ind).hasClass(\"not-editable-row\")) {\n\t\t\t\tcm = $t.p.colModel;\n\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\tvar treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn;\n\t\t\t\t\tif(treeg) { tmp = $(\"span:first\",this).html();}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\ttmp =  ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\t\t\tsvr[nm]=tmp;\n\t\t\t\t\t\tif(cm[i].editable===true) {\n\t\t\t\t\t\t\tif(focus===null) { focus = i; }\n\t\t\t\t\t\t\tif (treeg) { $(\"span:first\",this).html(\"\"); }\n\t\t\t\t\t\t\telse { $(this).html(\"\"); }\n\t\t\t\t\t\t\tvar opt = $.extend({},cm[i].editoptions || {},{id:rowid+\"_\"+nm,name:nm,rowId:rowid, oper:'edit'});\n\t\t\t\t\t\t\tif(!cm[i].edittype) { cm[i].edittype = \"text\"; }\n\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t\t$(elc).addClass(\"editable inline-edit-cell\");\n\t\t\t\t\t\t\tif( $.inArray(cm[i].edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t\t$(elc).addClass( inpclass );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(treeg) { $(\"span:first\",this).append(elc); }\n\t\t\t\t\t\t\telse { $(this).append(elc); }\n\t\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\t\t//Again IE\n\t\t\t\t\t\t\tif(cm[i].edittype === \"select\" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true  && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) {\n\t\t\t\t\t\t\t\t$(elc).width($(elc).width());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcnt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt > 0) {\n\t\t\t\t\tsvr.id = rowid; $t.p.savedRow.push(svr);\n\t\t\t\t\t$(ind).attr(\"editable\",\"1\");\n\t\t\t\t\tif(o.focusField ) {\n\t\t\t\t\t\tif(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) {\n\t\t\t\t\t\t\tfocus = o.focusField;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetTimeout(function(){ \n\t\t\t\t\t\t\tvar fe = $(\"td:eq(\"+focus+\") :input:visible\",ind).not(\":disabled\"); \n\t\t\t\t\t\t\tif(fe.length > 0) {\n\t\t\t\t\t\t\t\tfe.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},0);\n\t\t\t\t\t}\n\t\t\t\t\tif(o.keys===true) {\n\t\t\t\t\t\t$(ind).on( o.keyevent ,function(e) {\n\t\t\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t} catch (eer1) {}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (e.keyCode === 13) {\n\t\t\t\t\t\t\t\tvar ta = e.target;\n\t\t\t\t\t\t\t\tif(ta.tagName === 'TEXTAREA') { return true; }\n\t\t\t\t\t\t\t\tif( $($t).jqGrid(\"saveRow\", rowid, o ) ) {\n\t\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t\t} catch (eer2) {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineEditRow\", [rowid, o]);\n\t\t\t\t\tif( $.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsaveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o = {}, $t = this[0];\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tsaveui : \"enable\",\n\t\t\tsavetext : $.jgrid.getRegional($t,'defaults.savetext')\n\t\t}, $.jgrid.inlineEdit, o );\n\t\t// End compatible\n\n\t\tvar success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false,\n\t\terror = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) );\n\t\tif (!$t.grid ) { return success; }\n\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\tif(ind === false) {return success;}\n\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\tedit =$.jgrid.getRegional($t, 'edit'),\n\t\tbfsr = $.isFunction( o.beforeSaveRow ) ?\to.beforeSaveRow.call($t,o, rowid) :  undefined;\n\t\tif( bfsr === undefined ) {\n\t\t\tbfsr = true;\n\t\t}\n\t\tif(!bfsr) { return; }\n\t\teditable = $(ind).attr(\"editable\");\n\t\to.url = o.url || $t.p.editurl;\n\t\tif (editable===\"1\") {\n\t\t\tvar cm, index, elem;\n\t\t\t$('td[role=\"gridcell\"]',ind).each(function(i) {\n\t\t\t\tcm = $t.p.colModel[i];\n\t\t\t\tnm = cm.name;\n\t\t\t\telem = \"\";\n\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn' && !$(this).hasClass('not-editable-cell')) {\n\t\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\tvar cbv = [\"Yes\",\"No\"];\n\t\t\t\t\t\t\tif(cm.editoptions ) {\n\t\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmp[nm]=  $(\"input\",this).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\t\telem = $(\"input\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\tcase 'password':\n\t\t\t\t\t\tcase 'textarea':\n\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\ttmp[nm]=$(\"input, textarea\",this).val();\n\t\t\t\t\t\t\telem = $(\"input, textarea\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'select':\n\t\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\t\ttmp[nm] = $(\"select option:selected\",this).val();\n\t\t\t\t\t\t\t\ttmp2[nm] = $(\"select option:selected\", this).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar sel = $(\"select\",this), selectedText = [];\n\t\t\t\t\t\t\t\ttmp[nm] = $(sel).val();\n\t\t\t\t\t\t\t\tif(tmp[nm]) { tmp[nm]= tmp[nm].join(\",\"); } else { tmp[nm] =\"\"; }\n\t\t\t\t\t\t\t\t$(\"select option:selected\",this).each(\n\t\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\ttmp2[nm] = selectedText.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(cm.formatter && cm.formatter === 'select') { tmp2={}; }\n\t\t\t\t\t\t\telem = $(\"select\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\ttmp[nm] = cm.editoptions.custom_value.call($t, $(\".customelement\",this),'get');\n\t\t\t\t\t\t\t\t\tif (tmp[nm] === undefined) { throw \"e2\"; }\n\t\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcv = $.jgrid.checkValues.call($t,tmp[nm],i);\n\t\t\t\t\tif(cv[0] === false) {\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }\n\t\t\t\t\tif(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(tmp[nm] === \"\") {\n\t\t\t\t\t\t\ttmp3[nm] = 'null';\n\t\t\t\t\t\t\tnullIfEmpty = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (cv[0] === false){\n\t\t\t\ttry {\n\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t$t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar tr = $($t).jqGrid('getGridRowById', rowid), \n\t\t\t\t\t\t\tpositions = $.jgrid.findPos(tr);\n\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{\n\t\t\t\t\t\t\tleft:positions[0],\n\t\t\t\t\t\t\ttop:positions[1]+$(tr).outerHeight(), \n\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\tonClose: function(){\n\t\t\t\t\t\t\t\tif(index >= 0 ) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+rowid+\"_\" +$t.p.colModel[index].name).focus();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\talert(cv[1]);\n\t\t\t\t}\n\t\t\t\treturn success;\n\t\t\t}\n\t\t\tvar idname, opers = $t.p.prmNames, oldRowId = rowid;\n\t\t\tif ($t.p.keyName === false) {\n\t\t\t\tidname = opers.id;\n\t\t\t} else {\n\t\t\t\tidname = $t.p.keyName;\n\t\t\t}\n\t\t\tif(tmp) {\n\t\t\t\ttmp[opers.oper] = opers.editoper;\n\t\t\t\tif (tmp[idname] === undefined || tmp[idname]===\"\") {\n\t\t\t\t\ttmp[idname] = rowid;\n\t\t\t\t} else if (ind.id !== $t.p.idPrefix + tmp[idname]) {\n\t\t\t\t\t// rename rowid\n\t\t\t\t\tvar oldid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\tif ($t.p._index[oldid] !== undefined) {\n\t\t\t\t\t\t$t.p._index[tmp[idname]] = $t.p._index[oldid];\n\t\t\t\t\t\tdelete $t.p._index[oldid];\n\t\t\t\t\t}\n\t\t\t\t\trowid = $t.p.idPrefix + tmp[idname];\n\t\t\t\t\t$(ind).attr(\"id\", rowid);\n\t\t\t\t\tif ($t.p.selrow === oldRowId) {\n\t\t\t\t\t\t$t.p.selrow = rowid;\n\t\t\t\t\t}\n\t\t\t\t\tif ($.isArray($t.p.selarrrow)) {\n\t\t\t\t\t\tvar i = $.inArray(oldRowId, $t.p.selarrrow);\n\t\t\t\t\t\tif (i>=0) {\n\t\t\t\t\t\t\t$t.p.selarrrow[i] = rowid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ($t.p.multiselect) {\n\t\t\t\t\t\tvar newCboxId = \"jqg_\" + $t.p.id + \"_\" + rowid;\n\t\t\t\t\t\t$(\"input.cbox\",ind)\n\t\t\t\t\t\t\t.attr(\"id\", newCboxId)\n\t\t\t\t\t\t\t.attr(\"name\", newCboxId);\n\t\t\t\t\t}\n\t\t\t\t\t// TODO: to test the case of frozen columns\n\t\t\t\t}\n\t\t\t\tif($t.p.inlineData === undefined) { $t.p.inlineData ={}; }\n\t\t\t\ttmp = $.extend({},tmp,$t.p.inlineData,o.extraparam);\n\t\t\t}\n\t\t\tif (o.url === 'clientArray') {\n\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tvar k, resp = $($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}\n\t\t\t\t}\n\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, resp, tmp, o]);\n\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }\n\t\t\t\tsuccess = true;\n\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t} else {\n\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : o.saveui, htmlcontent: o.savetext });\n\t\t\t\ttmp3 = $.extend({},tmp,tmp3);\n\t\t\t\ttmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.url,\n\t\t\t\t\tdata: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3,\n\t\t\t\t\ttype: o.mtype,\n\t\t\t\t\tasync : false, //?!?\n\t\t\t\t\tcomplete: function(res,stat){\n\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : o.saveui, htmlcontent: o.savetext});\n\t\t\t\t\t\tif (stat === \"success\"){\n\t\t\t\t\t\t\tvar ret = true, sucret, k;\n\t\t\t\t\t\t\tsucret = $($t).triggerHandler(\"jqGridInlineSuccessSaveRow\", [res, rowid, o]);\n\t\t\t\t\t\t\tif (!$.isArray(sucret)) {sucret = [true, tmp3];}\n\t\t\t\t\t\t\tif (sucret[0] && $.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);}\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif($.isArray(sucret)) {\n\t\t\t\t\t\t\t\t// expect array - status, data, rowid\n\t\t\t\t\t\t\t\tret = sucret[0];\n\t\t\t\t\t\t\t\ttmp = sucret[1] || tmp;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = sucret;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (ret===true) {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(nullIfEmpty) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function( n ){\n\t\t\t\t\t\t\t\t\t\tif(tmp[n] === 'null' ) {\n\t\t\t\t\t\t\t\t\t\t\ttmp[n] = '';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\t\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, res, tmp, o]);\n\t\t\t\t\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); }\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, null, o]);\n\t\t\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror:function(res,stat,err){\n\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, err, o]);\n\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar rT = res.responseText || res.statusText;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,'<div class=\"'+error+'\">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\t\talert(rT);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));\n\t\t\t}\n\t\t}\n\t\treturn success;\n\t},\n\trestoreRow : function(rowid, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o={};\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr=-1, ind, ares={}, k;\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(ind === false) {return;}\n\t\t\tvar bfcr = $.isFunction( o.beforeCancelRow ) ?\to.beforeCancelRow.call($t, o, rowid) :  undefined;\n\t\t\tif( bfcr === undefined ) {\n\t\t\t\tbfcr = true;\n\t\t\t}\n\t\t\tif(!bfcr) { return; }\n\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t}\n\t\t\tif(fr >= 0) {\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",\"#\"+$.jgrid.jqID(ind.id)).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\tif(this.editable === true && $t.p.savedRow[fr].hasOwnProperty(this.name)) {\n\t\t\t\t\t\tares[this.name] = $t.p.savedRow[fr][this.name];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,ares);\n\t\t\t\t$(ind).attr(\"editable\",\"0\").off(\"keydown\");\n\t\t\t\t$t.p.savedRow.splice(fr,1);\n\t\t\t\tif($(\"#\"+$.jgrid.jqID(rowid), \"#\"+$.jgrid.jqID($t.p.id)).hasClass(\"jqgrid-new-row\")){\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",rowid);\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridInlineAfterRestoreRow\", [rowid]);\n\t\t\tif ($.isFunction(o.afterrestorefunc))\n\t\t\t{\n\t\t\t\to.afterrestorefunc.call($t, rowid);\n\t\t\t}\n\t\t});\n\t},\n\taddRow : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\trowID : null,\n\t\t\tinitdata : {},\n\t\t\tposition :\"first\",\n\t\t\tuseDefValues : true,\n\t\t\tuseFormatter : false,\n\t\t\taddRowParams : {extraparam:{}}\n\t\t},p  || {});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar $t = this;\n\t\t\t$t.p.beforeAction = true;\n\t\t\tvar bfar = $.isFunction( p.beforeAddRow ) ?\tp.beforeAddRow.call($t,p.addRowParams) :  undefined;\n\t\t\tif( bfar === undefined ) {\n\t\t\t\tbfar = true;\n\t\t\t}\n\t\t\tif(!bfar) {\n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\tp.rowID = $.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId());\n\t\t\tif(p.useDefValues === true) {\n\t\t\t\t$($t.p.colModel).each(function(){\n\t\t\t\t\tif( this.editoptions && this.editoptions.defaultValue ) {\n\t\t\t\t\t\tvar opt = this.editoptions.defaultValue,\n\t\t\t\t\t\ttmp = $.isFunction(opt) ? opt.call($t) : opt;\n\t\t\t\t\t\tp.initdata[this.name] = tmp;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$($t).jqGrid('addRowData', p.rowID, p.initdata, p.position);\n\t\t\tp.rowID = $t.p.idPrefix + p.rowID;\n\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID), \"#\"+$.jgrid.jqID($t.p.id)).addClass(\"jqgrid-new-row\");\n\t\t\tif(p.useFormatter) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID)+\" .ui-inline-edit\", \"#\"+$.jgrid.jqID($t.p.id)).click();\n\t\t\t} else {\n\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\toper = opers.oper;\n\t\t\t\tp.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t$($t).jqGrid('editRow', p.rowID, p.addRowParams);\n\t\t\t\t$($t).jqGrid('setSelection', p.rowID);\n\t\t\t}\n\t\t});\n\t},\n\tinlineNav : function (elem, o) {\n\t\tvar $t = this[0],\n\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\ticons = $.jgrid.styleUI[$t.p.styleUI].inlinedit;\n\t\to = $.extend(true,{\n\t\t\tedit: true,\n\t\t\tediticon: icons.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon:icons.icon_add_nav,\n\t\t\tsave: true,\n\t\t\tsaveicon: icons.icon_save_nav,\n\t\t\tcancel: true,\n\t\t\tcancelicon: icons.icon_cancel_nav,\n\t\t\taddParams : {addRowParams: {extraparam: {}}},\n\t\t\teditParams : {},\n\t\t\trestoreAfterSelect : true,\n\t\t\tsaveAfterSelect : false\n\t\t}, regional, o ||{});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid  || this.p.inlineNav) { return; }\n\t\t\tvar gID = $.jgrid.jqID($t.p.id),\n\t\t\tdisabled = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) );\n\t\t\t// check to see if navgrid is started, if not call it with all false parameters.\n\t\t\tif(!$t.p.navGrid) {\n\t\t\t\t$($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false});\n\t\t\t}\n\t\t\tif(!$($t).data('inlineNav')) {\n\t\t\t\t$($t).data('inlineNav',o);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\n\t\t\t$t.p.inlineNav = true;\n\t\t\t// detect the formatactions column\n\t\t\tif(o.addParams.useFormatter === true) {\n\t\t\t\tvar cm = $t.p.colModel,i;\n\t\t\t\tfor (i = 0; i<cm.length; i++) {\n\t\t\t\t\tif(cm[i].formatter && cm[i].formatter === \"actions\" ) {\n\t\t\t\t\t\tif(cm[i].formatoptions) {\n\t\t\t\t\t\t\tvar defaults =  {\n\t\t\t\t\t\t\t\tkeys:false,\n\t\t\t\t\t\t\t\tonEdit : null,\n\t\t\t\t\t\t\t\tonSuccess: null,\n\t\t\t\t\t\t\t\tafterSave:null,\n\t\t\t\t\t\t\t\tonError: null,\n\t\t\t\t\t\t\t\tafterRestore: null,\n\t\t\t\t\t\t\t\textraparam: {},\n\t\t\t\t\t\t\t\turl: null\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tap = $.extend( defaults, cm[i].formatoptions );\n\t\t\t\t\t\t\to.addParams.addRowParams = {\n\t\t\t\t\t\t\t\t\"keys\" : ap.keys,\n\t\t\t\t\t\t\t\t\"oneditfunc\" : ap.onEdit,\n\t\t\t\t\t\t\t\t\"successfunc\" : ap.onSuccess,\n\t\t\t\t\t\t\t\t\"url\" : ap.url,\n\t\t\t\t\t\t\t\t\"extraparam\" : ap.extraparam,\n\t\t\t\t\t\t\t\t\"aftersavefunc\" : ap.afterSave,\n\t\t\t\t\t\t\t\t\"errorfunc\": ap.onError,\n\t\t\t\t\t\t\t\t\"afterrestorefunc\" : ap.afterRestore\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.add) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.addtext,\n\t\t\t\t\ttitle : o.addtitle,\n\t\t\t\t\tbuttonicon : o.addicon,\n\t\t\t\t\tid : $t.p.id+\"_iladd\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('addRow', o.addParams);\n\t\t\t\t\t\tif(!o.addParams.useFormatter && $t.p.beforeAction) {\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.edit) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.edittext,\n\t\t\t\t\ttitle : o.edittitle,\n\t\t\t\t\tbuttonicon : o.editicon,\n\t\t\t\t\tid : $t.p.id+\"_iledit\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $($t).jqGrid('getGridParam','selrow');\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('editRow', sr, o.editParams);\n\t\t\t\t\t\t\tif($t.p.beforeAction) {\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.save) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.savetext || '',\n\t\t\t\t\ttitle : o.savetitle || 'Save row',\n\t\t\t\t\tbuttonicon : o.saveicon,\n\t\t\t\t\tid : $t.p.id+\"_ilsave\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\t\t\t\toper = opers.oper, tmpParams = o.editParams;\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\to.addParams.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t\t\t\t\ttmpParams = o.addParams.addRowParams;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(!o.editParams.extraparam) {\n\t\t\t\t\t\t\t\t\to.editParams.extraparam = {};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\to.editParams.extraparam[oper] = opers.editoper;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif( $($t).jqGrid('saveRow', sr, tmpParams) ) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.cancel) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.canceltext || '',\n\t\t\t\t\ttitle : o.canceltitle || 'Cancel row editing',\n\t\t\t\t\tbuttonicon : o.cancelicon,\n\t\t\t\t\tid : $t.p.id+\"_ilcancel\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id, cancelPrm = o.editParams;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\tcancelPrm = o.addParams.addRowParams;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', sr, cancelPrm);\n\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod\",{gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.restoreAfterSelect === true || o.saveAfterSelect === true) {\n\t\t\t\t$($t).on(\"jqGridBeforeSelectRow.inlineNav\", function( event, id ) {\n\t\t\t\t\tif($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) {\n\t\t\t\t\t\tif($t.p.selrow === o.addParams.rowID ) {\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData', $t.p.selrow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(o.restoreAfterSelect === true) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid('saveRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t});\n\t},\n\tshowAddEditButtons : function()  {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar gID = $.jgrid.jqID(this.p.id),\n\t\t\tdisabled = $.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );\n\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iladd\").removeClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iledit\").removeClass( disabled );\n\t\t});\n\t}\n//end inline edit\n});\n\n//module begin\nif ($.jgrid.msie() && $.jgrid.msiever()===8) {\n\t$.expr[\":\"].hidden = function(elem) {\n\t\treturn elem.offsetWidth === 0 || elem.offsetHeight === 0 ||\n\t\t\telem.style.display === \"none\";\n\t};\n}\n// requiere load multiselect before grid\n$.jgrid._multiselect = false;\nif($.ui) {\n\tif ($.ui.multiselect ) {\n\t\tif($.ui.multiselect.prototype._setSelected) {\n\t\t\tvar setSelected = $.ui.multiselect.prototype._setSelected;\n\t\t\t$.ui.multiselect.prototype._setSelected = function(item,selected) {\n\t\t\t\tvar ret = setSelected.call(this,item,selected);\n\t\t\t\tif (selected && this.selectedList) {\n\t\t\t\t\tvar elt = this.element;\n\t\t\t\t\tthis.selectedList.find('li').each(function() {\n\t\t\t\t\t\tif ($(this).data('optionLink')) {\n\t\t\t\t\t\t\t$(this).data('optionLink').remove().appendTo(elt);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t};\n\t\t}\n\t\tif($.ui.multiselect.prototype.destroy) {\n\t\t\t$.ui.multiselect.prototype.destroy = function() {\n\t\t\t\tthis.element.show();\n\t\t\t\tthis.container.remove();\n\t\t\t\tif ($.Widget === undefined) {\n\t\t\t\t\t$.widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t} else {\n\t\t\t\t\t$.Widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t$.jgrid._multiselect = true;\n\t}\n}\n        \n$.jgrid.extend({\n\tsortableColumns : function (tblrow)\n\t{\n\t\treturn this.each(function (){\n\t\t\tvar ts = this, tid= $.jgrid.jqID( ts.p.id );\n\t\t\tfunction start() {ts.p.disableClick = true;}\n\t\t\tvar sortable_opts = {\n\t\t\t\t\"tolerance\" : \"pointer\",\n\t\t\t\t\"axis\" : \"x\",\n\t\t\t\t\"scrollSensitivity\": \"1\",\n\t\t\t\t\"items\": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)',\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\telement: function(item) {\n\t\t\t\t\t\tvar el = $(document.createElement(item[0].nodeName))\n\t\t\t\t\t\t.addClass(item[0].className+\" ui-sortable-placeholder ui-state-highlight\")\n\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\")[0];\n\t\t\t\t\t\treturn el;\n\t\t\t\t\t},\n\t\t\t\t\tupdate: function(self, p) {\n\t\t\t\t\t\tp.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));\n\t\t\t\t\t\tp.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"update\": function(event, ui) {\n\t\t\t\t\tvar p = $(ui.item).parent(),\n\t\t\t\t\tth = $(\">th\", p),\n\t\t\t\t\tcolModel = ts.p.colModel,\n\t\t\t\t\tcmMap = {}, tid= ts.p.id+\"_\";\n\t\t\t\t\t$.each(colModel, function(i) { cmMap[this.name]=i; });\n\t\t\t\t\tvar permutation = [];\n\t\t\t\t\tth.each(function() {\n\t\t\t\t\t\tvar id = $(\">div\", this).get(0).id.replace(/^jqgh_/, \"\").replace(tid,\"\");\n\t\t\t\t\t\t\tif (cmMap.hasOwnProperty(id)) {\n\t\t\t\t\t\t\t\tpermutation.push(cmMap[id]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\",permutation, true, true);\n\t\t\t\t\tif ($.isFunction(ts.p.sortable.update)) {\n\t\t\t\t\t\tts.p.sortable.update(permutation);\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(function(){ts.p.disableClick=false;}, 50);\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (ts.p.sortable.options) {\n\t\t\t\t$.extend(sortable_opts, ts.p.sortable.options);\n\t\t\t} else if ($.isFunction(ts.p.sortable)) {\n\t\t\t\tts.p.sortable = { \"update\" : ts.p.sortable };\n\t\t\t}\n\t\t\tif (sortable_opts.start) {\n\t\t\t\tvar s = sortable_opts.start;\n\t\t\t\tsortable_opts.start = function(e,ui) {\n\t\t\t\t\tstart();\n\t\t\t\t\ts.call(this,e,ui);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsortable_opts.start = start;\n\t\t\t}\n\t\t\tif (ts.p.sortable.exclude) {\n\t\t\t\tsortable_opts.items += \":not(\"+ts.p.sortable.exclude+\")\";\n\t\t\t}\n\t\t\tvar $e = tblrow.sortable(sortable_opts), dataObj = $e.data(\"sortable\") || $e.data(\"uiSortable\");\n\t\t\tif (dataObj != null) {\n\t\t\t\tdataObj.data(\"sortable\").floating = true;\n\t\t\t}\n\t\t});\n\t},\n    columnChooser : function(opts) {\n\t\tvar self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight,\n\t\t\tcolModel = self.jqGrid(\"getGridParam\", \"colModel\"),\n\t\t\tcolNames = self.jqGrid(\"getGridParam\", \"colNames\"),\n\t\t\tgetMultiselectWidgetData = function ($elem) {\n\t\t\t\treturn ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) ||\n\t\t\t\t\t$elem.data(\"ui-multiselect\") || $elem.data(\"multiselect\");\n\t\t\t},\n\t\t\tregional =  $.jgrid.getRegional(this[0], 'col');\n\n\t\tif ($(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id)).length) { return; }\n\t\tselector = $('<div id=\"colchooser_'+self[0].p.id+'\" style=\"position:relative;overflow:hidden\"><div><select multiple=\"multiple\"></select></div></div>');\n\t\tselect = $('select', selector);\n\n\t\tfunction insert(perm,i,v) {\n\t\t\tvar a, b;\n\t\t\tif(i>=0){\n\t\t\t\ta = perm.slice();\n\t\t\t\tb = a.splice(i,Math.max(perm.length-i,i));\n\t\t\t\tif(i>perm.length) { i = perm.length; }\n\t\t\t\ta[i] = v;\n\t\t\t\treturn a.concat(b);\n\t\t\t}\n\t\t\treturn perm;\n\t\t}\n\t\tfunction call(fn, obj) {\n\t\t\tif (!fn) { return; }\n\t\t\tif (typeof fn === 'string') {\n\t\t\t\tif ($.fn[fn]) {\n\t\t\t\t\t$.fn[fn].apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t\t}\n\t\t\t} else if ($.isFunction(fn)) {\n\t\t\t\tfn.apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t}\n\t\t}\n\n\t\topts = $.extend({\n\t\t\twidth : 400,\n\t\t\theight : 240,\n\t\t\tclassname : null,\n\t\t\tdone : function(perm) { if (perm) { self.jqGrid(\"remapColumns\", perm, true); } },\n\t\t\t/* msel is either the name of a ui widget class that\n\t\t\t   extends a multiselect, or a function that supports\n\t\t\t   creating a multiselect object (with no argument,\n\t\t\t   or when passed an object), and destroying it (when\n\t\t\t   passed the string \"destroy\"). */\n\t\t\tmsel : \"multiselect\",\n\t\t\t/* \"msel_opts\" : {}, */\n\n\t\t\t/* dlog is either the name of a ui widget class that \n\t\t\t   behaves in a dialog-like way, or a function, that\n\t\t\t   supports creating a dialog (when passed dlog_opts)\n\t\t\t   or destroying a dialog (when passed the string\n\t\t\t   \"destroy\")\n\t\t\t   */\n\t\t\tdlog : \"dialog\",\n\t\t\tdialog_opts : {\n\t\t\t\tminWidth: 470,\n\t\t\t\tdialogClass: \"ui-jqdialog\"\n\t\t\t},\n\t\t\t/* dlog_opts is either an option object to be passed \n\t\t\t   to \"dlog\", or (more likely) a function that creates\n\t\t\t   the options object.\n\t\t\t   The default produces a suitable options object for\n\t\t\t   ui.dialog */\n\t\t\tdlog_opts : function(options) {\n\t\t\t\tvar buttons = {};\n\t\t\t\tbuttons[options.bSubmit] = function() {\n\t\t\t\t\toptions.apply_perm();\n\t\t\t\t\toptions.cleanup(false);\n\t\t\t\t};\n\t\t\t\tbuttons[options.bCancel] = function() {\n\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t};\n\t\t\t\treturn $.extend(true, {\n\t\t\t\t\tbuttons: buttons,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t\t},\n\t\t\t\t\tmodal: options.modal || false,\n\t\t\t\t\tresizable: options.resizable || true,\n\t\t\t\t\twidth: options.width + 70,\n\t\t\t\t\tresize: function () {\n\t\t\t\t\t\tvar widgetData = getMultiselectWidgetData(select),\n\t\t\t\t\t\t\t$thisDialogContent = widgetData.container.closest(\".ui-dialog-content\");\n\n\t\t\t\t\t\tif ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === \"object\") {\n\t\t\t\t\t\t\t$thisDialogContent[0].style.width = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$thisDialogContent.css(\"width\", \"\"); // or just remove width style\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twidgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() - 1, 1));\n\t\t\t\t\t\twidgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() - 1, 1));\n\t\t\t\t\t}\n\t\t\t\t}, options.dialog_opts || {});\n\t\t\t},\n\t\t\t/* Function to get the permutation array, and pass it to the\n\t\t\t   \"done\" function */\n\t\t\tapply_perm : function() {\n\t\t\t\tvar perm = [];\n\t\t\t\t$('option',select).each(function() {\n\t\t\t\t\tif ($(this).is(\":selected\")) {\n\t\t\t\t\t\tself.jqGrid(\"showCol\", colModel[this.value].name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.jqGrid(\"hideCol\", colModel[this.value].name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t//fixedCols.slice(0);\n\t\t\t\t$('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });\n\t\t\t\t$.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });\n\t\t\t\t$.each(colMap, function() {\n\t\t\t\t\tvar ti = parseInt(this,10);\n\t\t\t\t\tperm = insert(perm,ti,ti);\n\t\t\t\t});\n\t\t\t\tif (opts.done) {\n\t\t\t\t\topts.done.call(self, perm);\n\t\t\t\t}\n\t\t\t\tself.jqGrid(\"setGridWidth\", self[0].p.width, self[0].p.shrinkToFit);\n\t\t\t},\n\t\t\t/* Function to cleanup the dialog, and select. Also calls the\n\t\t\t   done function with no permutation (to indicate that the\n\t\t\t   columnChooser was aborted */\n\t\t\tcleanup : function(calldone) {\n\t\t\t\tcall(opts.dlog, selector, 'destroy');\n\t\t\t\tcall(opts.msel, select, 'destroy');\n\t\t\t\tselector.remove();\n\t\t\t\tif (calldone && opts.done) {\n\t\t\t\t\topts.done.call(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tmsel_opts : {}\n\t\t}, regional, opts || {} );\n\t\tif($.ui) {\n\t\t\tif ($.ui.multiselect && $.ui.multiselect.defaults) {\n\t\t\t\tif (!$.jgrid._multiselect) {\n\t\t\t\t\t// should be in language file\n\t\t\t\t\talert(\"Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ??? the next line uses $.ui.multiselect.defaults which will be typically undefined\n\t\t\t\topts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts);\n\t\t\t}\n\t\t}\n\t\tif (opts.caption) {\n\t\t\tselector.attr(\"title\", opts.caption);\n\t\t}\n\t\tif (opts.classname) {\n\t\t\tselector.addClass(opts.classname);\n\t\t\tselect.addClass(opts.classname);\n\t\t}\n\t\tif (opts.width) {\n\t\t\t$(\">div\",selector).css({width: opts.width,margin:\"0 auto\"});\n\t\t\tselect.css(\"width\", opts.width);\n\t\t}\n\t\tif (opts.height) {\n\t\t\t$(\">div\",selector).css(\"height\", opts.height);\n\t\t\tselect.css(\"height\", opts.height - 10);\n\t\t}\n\n\t\tselect.empty();\n\t\t$.each(colModel, function(i) {\n\t\t\tcolMap[this.name] = i;\n\t\t\tif (this.hidedlg) {\n\t\t\t\tif (!this.hidden) {\n\t\t\t\t\tfixedCols.push(i);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselect.append(\"<option value='\"+i+\"' \"+\n\t\t\t\t\t\t  (this.hidden?\"\":\"selected='selected'\")+\">\"+$.jgrid.stripHtml(colNames[i])+\"</option>\");\n\t\t});\n\n\t\tdopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;\n\t\tcall(opts.dlog, selector, dopts);\n\t\tmopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;\n\t\tcall(opts.msel, select, mopts);\n\n\t\t// fix height of elements of the multiselect widget\n\t\t$dialogContent = $(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id));\n\n\t\t$dialogContent.css({ margin: \"auto\" });\n\t\t$dialogContent.find(\">div\").css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData = getMultiselectWidgetData(select);\n\t\tmultiselectData.container.css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\t\tmultiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\n\t\t// set height for both selectedList and availableList\n\t\tmultiselectData.selectedList.css(\"height\", \"auto\");\n\t\tmultiselectData.availableList.css(\"height\", \"auto\");\n\t\tlistHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height());\n\t\tlistHeight = Math.min(listHeight, $(window).height());\n\t\tmultiselectData.selectedList.css(\"height\", listHeight);\n\t\tmultiselectData.availableList.css(\"height\", listHeight);\n\t},\n\tsortableRows : function (opts) {\n\t\t// Can accept all sortable options and events\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) { return; }\n\t\t\t// Currently we disable a treeGrid sortable\n\t\t\tif($t.p.treeGrid) { return; }\n\t\t\tif($.fn.sortable) {\n\t\t\t\topts = $.extend({\n\t\t\t\t\t\"cursor\":\"move\",\n\t\t\t\t\t\"axis\" : \"y\",\n\t\t\t\t\t\"items\": \" > .jqgrow\"\n\t\t\t\t\t},\n\t\t\t\topts || {});\n\t\t\t\tif(opts.start && $.isFunction(opts.start)) {\n\t\t\t\t\topts._start_ = opts.start;\n\t\t\t\t\tdelete opts.start;\n\t\t\t\t} else {opts._start_=false;}\n\t\t\t\tif(opts.update && $.isFunction(opts.update)) {\n\t\t\t\t\topts._update_ = opts.update;\n\t\t\t\t\tdelete opts.update;\n\t\t\t\t} else {opts._update_ = false;}\n\t\t\t\topts.start = function(ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"0\");\n\t\t\t\t\t$(\"td\",ui.item).each(function(i){\n\t\t\t\t\t\tthis.style.width = $t.grid.cols[i].style.width;\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\tvar subgid = $(ui.item).attr(\"id\");\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._start_) {\n\t\t\t\t\t\topts._start_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\topts.update = function (ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"\");\n\t\t\t\t\tif($t.p.rownumbers === true) {\n\t\t\t\t\t\t$(\"td.jqgrid-rownum\",$t.rows).each(function( i ){\n\t\t\t\t\t\t\t$(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) );\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._update_) {\n\t\t\t\t\t\topts._update_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\t$(\"tbody:first\",$t).sortable(opts);\n\t\t\t\t$(\"tbody:first > .jqgrow\",$t).disableSelection();\n\t\t\t}\n\t\t});\n\t},\n\tgridDnD : function(opts) {\n\t\treturn this.each(function(){\n\t\tvar $t = this, i, cn;\n\t\tif(!$t.grid) { return; }\n\t\t// Currently we disable a treeGrid drag and drop\n\t\tif($t.p.treeGrid) { return; }\n\t\tif(!$.fn.draggable || !$.fn.droppable) { return; }\n\t\tfunction updateDnD ()\n\t\t{\n\t\t\tvar datadnd = $.data($t,\"dnd\");\n\t\t\t$(\"tr.jqgrow:not(.ui-draggable)\",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);\n\t\t}\n\t\tvar appender = \"<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>\";\n\t\tif($(\"#jqgrid_dnd\")[0] === undefined) {\n\t\t\t$('body').append(appender);\n\t\t}\n\n\t\tif(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) {\n\t\t\tupdateDnD();\n\t\t\treturn;\n\t\t}\n\t\tvar tid;\n\t\topts = $.extend({\n\t\t\t\"drag\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\tstart : function (ev, ui) {\n\t\t\t\t\t\tvar i, subgid;\n\t\t\t\t\t\t// if we are in subgrid mode try to collapse the node\n\t\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\t\tsubgid = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// hack\n\t\t\t\t\t\t// drag and drop does not insert tr in table, when the table has no rows\n\t\t\t\t\t\t// we try to insert new empty row on the target(s)\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\tif($($.data($t,\"dnd\").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){\n\t\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.addClass(\"ui-state-highlight\");\n\t\t\t\t\t\t$(\"td\",ui.helper).each(function(i) {\n\t\t\t\t\t\t\tthis.style.width = $t.grid.headers[i].width+\"px\";\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }\n\t\t\t\t\t},\n\t\t\t\t\tstop :function(ev,ui) {\n\t\t\t\t\t\tvar i, ids;\n\t\t\t\t\t\tif(ui.helper.dropped && !opts.dragcopy) {\n\t\t\t\t\t\t\tids = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\tif(ids === undefined) { ids = $(this).attr(\"id\"); }\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData',ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if we have a empty row inserted from start event try to delete it\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('delRowData','jqg_empty_row');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }\n\t\t\t\t\t}\n\t\t\t\t},opts.drag_opts || {});\n\t\t\t},\n\t\t\t\"drop\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\taccept: function(d) {\n\t\t\t\t\t\tif (!$(d).hasClass('jqgrow')) { return d;}\n\t\t\t\t\t\ttid = $(d).closest(\"table.ui-jqgrid-btable\");\n\t\t\t\t\t\tif(tid.length > 0 && $.data(tid[0],\"dnd\") !== undefined) {\n\t\t\t\t\t\t\tvar cn = $.data(tid[0],\"dnd\").connectWith;\n\t\t\t\t\t\t\treturn $.inArray('#'+$.jgrid.jqID(this.id),cn) !== -1 ? true : false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t},\n\t\t\t\t\tdrop: function(ev, ui) {\n\t\t\t\t\t\tif (!$(ui.draggable).hasClass('jqgrow')) { return; }\n\t\t\t\t\t\tvar accept = $(ui.draggable).attr(\"id\");\n\t\t\t\t\t\tvar getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept);\n\t\t\t\t\t\tif(!opts.dropbyname) {\n\t\t\t\t\t\t\tvar j =0, tmpdata = {}, nm, key;\n\t\t\t\t\t\t\tvar dropmodel = $(\"#\"+$.jgrid.jqID(this.id)).jqGrid('getGridParam','colModel');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tfor (key in getdata) {\n\t\t\t\t\t\t\t\t\tif (getdata.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tnm = dropmodel[j].name;\n\t\t\t\t\t\t\t\t\tif( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' )) {\n\t\t\t\t\t\t\t\t\t\tif(getdata.hasOwnProperty(key) && dropmodel[j]) {\n\t\t\t\t\t\t\t\t\t\t\ttmpdata[nm] = getdata[key];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgetdata = tmpdata;\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.dropped = true;\n\t\t\t\t\t\tif($.data(tid[0],\"dnd\").beforedrop && $.isFunction($.data(tid[0],\"dnd\").beforedrop) ) {\n\t\t\t\t\t\t\t//parameters to this callback - event, element, data to be inserted, sender, reciever\n\t\t\t\t\t\t\t// should return object which will be inserted into the reciever\n\t\t\t\t\t\t\tvar datatoinsert = $.data(tid[0],\"dnd\").beforedrop.call(this,ev,ui,getdata,$(tid[0]),$(this));\n\t\t\t\t\t\t\tif (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === \"object\") { getdata = datatoinsert; }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ui.helper.dropped) {\n\t\t\t\t\t\t\tvar grid;\n\t\t\t\t\t\t\tif(opts.autoid) {\n\t\t\t\t\t\t\t\tif($.isFunction(opts.autoid)) {\n\t\t\t\t\t\t\t\t\tgrid = opts.autoid.call(this,getdata);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid = Math.ceil(Math.random()*1000);\n\t\t\t\t\t\t\t\t\tgrid = opts.autoidprefix+grid;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// NULL is interpreted as undefined while null as object\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id)).jqGrid('addRowData',grid,getdata,opts.droppos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }\n\t\t\t\t\t}}, opts.drop_opts || {});\n\t\t\t},\n\t\t\t\"onstart\" : null,\n\t\t\t\"onstop\" : null,\n\t\t\t\"beforedrop\": null,\n\t\t\t\"ondrop\" : null,\n\t\t\t\"drop_opts\" : {\n\t\t\t\t\"activeClass\": \"ui-state-active\",\n\t\t\t\t\"hoverClass\": \"ui-state-hover\"\n\t\t\t},\n\t\t\t\"drag_opts\" : {\n\t\t\t\t\"revert\": \"invalid\",\n\t\t\t\t\"helper\": \"clone\",\n\t\t\t\t\"cursor\": \"move\",\n\t\t\t\t\"appendTo\" : \"#jqgrid_dnd\",\n\t\t\t\t\"zIndex\": 5000\n\t\t\t},\n\t\t\t\"dragcopy\": false,\n\t\t\t\"dropbyname\" : false,\n\t\t\t\"droppos\" : \"first\",\n\t\t\t\"autoid\" : true,\n\t\t\t\"autoidprefix\" : \"dnd_\"\n\t\t}, opts || {});\n\t\t\n\t\tif(!opts.connectWith) { return; }\n\t\topts.connectWith = opts.connectWith.split(\",\");\n\t\topts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});\n\t\t$.data($t,\"dnd\",opts);\n\t\t\n\t\tif($t.p.reccount !== 0 && !$t.p.jqgdnd) {\n\t\t\tupdateDnD();\n\t\t}\n\t\t$t.p.jqgdnd = true;\n\t\tfor (i=0;i<opts.connectWith.length;i++){\n\t\t\tcn =opts.connectWith[i];\n\t\t\t$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);\n\t\t}\n\t\t});\n\t},\n\tgridResize : function(opts) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, gID = $.jgrid.jqID($t.p.id), req;\n\t\t\tif(!$t.grid || !$.fn.resizable) { return; }\n\t\t\topts = $.extend({}, opts || {});\n\t\t\tif(opts.alsoResize ) {\n\t\t\t\topts._alsoResize_ = opts.alsoResize;\n\t\t\t\tdelete opts.alsoResize;\n\t\t\t} else {\n\t\t\t\topts._alsoResize_ = false;\n\t\t\t}\n\t\t\tif(opts.stop && $.isFunction(opts.stop)) {\n\t\t\t\topts._stop_ = opts.stop;\n\t\t\t\tdelete opts.stop;\n\t\t\t} else {\n\t\t\t\topts._stop_ = false;\n\t\t\t}\n\t\t\topts.stop = function (ev, ui) {\n\t\t\t\t$($t).jqGrid('setGridParam',{height:$(\"#gview_\"+gID+\" .ui-jqgrid-bdiv\").height()});\n\t\t\t\t$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);\n\t\t\t\tif(opts._stop_) { opts._stop_.call($t,ev,ui); }\n\t\t\t\tif($t.p.caption) {\n\t\t\t\t\t$(\"#gbox_\"+ gID).css({ 'height': 'auto' });\n\t\t\t\t}\n\t\t\t\tif($t.p.frozenColumns) {\n\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\treq = setTimeout(function(){\n\t\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t\tif(opts._alsoResize_) {\n\t\t\t\tvar optstest = \"{\\'#gview_\"+gID+\" .ui-jqgrid-bdiv\\':true,'\" +opts._alsoResize_+\"':true}\";\n\t\t\t\topts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this\n\t\t\t} else {\n\t\t\t\topts.alsoResize = $(\".ui-jqgrid-bdiv\",\"#gview_\"+gID);\n\t\t\t}\n\t\t\tdelete opts._alsoResize_;\n\t\t\t$(\"#gbox_\"+gID).resizable(opts);\n\t\t});\n\t}\n});\n\n//module begin\nfunction _pivotfilter (fn, context) {\n\t/*jshint validthis: true */\n\tvar i,\n\t\tvalue,\n\t\tresult = [],\n\t\tlength;\n\t\t\n\tif (!this || typeof fn !== 'function' || (fn instanceof RegExp)) {\n\t\tthrow new TypeError();\n\t}\n\n\tlength = this.length;\n\n\tfor (i = 0; i < length; i++) {\n\t\tif (this.hasOwnProperty(i)) {\n\t\t\tvalue = this[i];\n\t\t\tif (fn.call(context, value, i, this)) {\n\t\t\t\tresult.push(value);\n\t\t\t\t// We need break in order to cancel loop \n\t\t\t\t// in case the row is found\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n}\n$.assocArraySize = function(obj) {\n    // http://stackoverflow.com/a/6700/11236\n    var size = 0, key;\n    for (key in obj) {\n        if (obj.hasOwnProperty(key)) {\n        \tsize++;\n        }\n    }\n    return size;\n};\n\n$.jgrid.extend({\n\tpivotSetup : function( data, options ){\n\t\t// data should come in json format\n\t\t// The function return the new colModel and the transformed data\n\t\t// again with group setup options which then will be passed to the grid\n\t\tvar columns =[],\n\t\tpivotrows =[],\n\t\tsummaries = [],\n\t\tmember=[],\n\t\tlabels=[],\n\t\tgroupOptions = {\n\t\t\tgrouping : true,\n\t\t\tgroupingView :  {\n\t\t\t\tgroupField : [],\n\t\t\t\tgroupSummary: [],\n\t\t\t\tgroupSummaryPos:[]\n\t\t\t}\n\t\t},\n\t\theaders = [],\n\t\to = $.extend ( {\n\t\t\trowTotals : false,\n\t\t\trowTotalsText : 'Total',\n\t\t\t// summary columns\n\t\t\tcolTotals : false,\n\t\t\tgroupSummary : true,\n\t\t\tgroupSummaryPos :  'header',\n\t\t\tfrozenStaticCols : false\n\t\t}, options || {});\n\t\tthis.each(function(){\n\n\t\t\tvar \n\t\t\t\trow,\n\t\t\t\trowindex,\n\t\t\t\ti,\n\t\t\t\t\n\t\t\t\trowlen = data.length,\n\t\t\t\txlen, ylen, aggrlen,\n\t\t\t\ttmp,\n\t\t\t\tnewObj,\n\t\t\t\tr=0;\n\t\t\t// utility funcs\n\t\t\t/* \n\t\t\t * Filter the data to a given criteria. Return the firt occurance\n\t\t\t */\n\t\t\tfunction find(ar, fun, extra) {\n\t\t\t\tvar res;\n\t\t\t\tres = _pivotfilter.call(ar, fun, extra);\n\t\t\t\treturn res.length > 0 ? res[0] : null;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Check if the grouped row column exist (See find)\n\t\t\t * If the row is not find in pivot rows retun null,\n\t\t\t * otherviese the column\n\t\t\t */\n\t\t\tfunction findGroup(item, index) {\n\t\t\t\t/*jshint validthis: true */\n\t\t\t\tvar j = 0, ret = true, i;\n\t\t\t\tfor(i in item) {\n\t\t\t\t\tif( item.hasOwnProperty(i) ) {\n\t\t\t\t\t\tif(item[i] != this[j]) {\n\t\t\t\t\t\t\tret =  false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t\tif(j>=this.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret) {\n\t\t\t\t\trowindex =  index;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Perform calculations of the pivot values.\n\t\t\t */\n\t\t\tfunction calculation(oper, v, field, rc, _cnt)  {\n\t\t\t\tvar ret;\n\t\t\t\tif( $.isFunction(oper)) {\n\t\t\t\t\tret = oper.call(this, v, field, rc);\n\t\t\t\t} else {\n\t\t\t\t\tswitch (oper) {\n\t\t\t\t\t\tcase  \"sum\" : \n\t\t\t\t\t\t\tret = parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"count\" :\n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tv=0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\t\t\tret = v+1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"min\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret =Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"max\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"avg\" : //avg grouping\n\t\t\t\t\t\t\tret = (parseFloat(v||0) * (_cnt -1) + parseFloat(rc[field]||0) ) /_cnt;\n\t\t\t\t\t\t\tbreak;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * The function agragates the values of the pivot grid.\n\t\t\t * Return the current row with pivot summary values\n\t\t\t */\n\t\t\tfunction agregateFunc ( row, aggr, value, curr) {\n\t\t\t\t// default is sum\n\t\t\t\tvar arrln = aggr.length, i, label, j, jv, mainval=\"\",swapvals=[], swapstr, _cntavg = 1, lbl;\n\t\t\t\tif($.isArray(value)) {\n\t\t\t\t\tjv = value.length;\n\t\t\t\t\tswapvals = value;\n\t\t\t\t} else {\n\t\t\t\t\tjv = 1;\n\t\t\t\t\tswapvals[0]=value;\n\t\t\t\t}\n\t\t\t\tmember = [];\n\t\t\t\tlabels = [];\n\t\t\t\tmember.root = 0;\n\t\t\t\tfor(j=0;j<jv;j++) {\n\t\t\t\t\tvar  tmpmember = [], vl;\n\t\t\t\t\tfor(i=0; i < arrln; i++) {\n\t\t\t\t\t\tswapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust';\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif(value == null) {\n\t\t\t\t\t\t\tlabel = $.trim(aggr[i].member)+\"_\" + swapstr;\n\t\t\t\t\t\t\tvl = label;\n\t\t\t\t\t\t\tswapvals[0]= aggr[i].label || (swapstr + \" \" +$.trim(aggr[i].member));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvl = value[j].replace(/\\s+/g, '');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tlabel = (arrln === 1 ? mainval + vl : mainval + vl + \"_\" + swapstr + \"_\" + String(i));\n\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\tswapvals[j] = value[j];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if(j<=1 && vl !==  '_r_Totals' && mainval === \"\") { // this does not fix full the problem\n\t\t\t\t\t\t\t//mainval = vl;\n\t\t\t\t\t\t//}\n\t\t\t\t\t\tlabel = !isNaN(parseInt(label,10)) ? label + \" \" : label;\n\t\t\t\t\t\tif(aggr[i].aggregator === 'avg') {\n\t\t\t\t\t\t\tlbl = rowindex === -1 ? pivotrows.length+\"_\"+label : rowindex+\"_\"+label;\n\t\t\t\t\t\t\tif(!_avg[lbl]) {\n\t\t\t\t\t\t\t\t_avg[lbl] = 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_avg[lbl]++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_cntavg = _avg[lbl];\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\tcurr[label] =  tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg);\n\t\t\t\t\t}\n\t\t\t\t\tmainval += (value && value[j] != null) ? value[j].replace(/\\s+/g, '') : ''\n\t\t\t\t\t//vl = !isNaN(parseInt(vl,10)) ? vl + \" \" : vl;\n\t\t\t\t\tmember[label] = tmpmember;\n\t\t\t\t\tlabels[label] = swapvals[j];\n\t\t\t\t}\n\t\t\t\treturn curr;\n\t\t\t}\n\t\t\t// Making the row totals without to add in yDimension\n\t\t\tif(o.rowTotals && o.yDimension.length > 0) {\n\t\t\t\tvar dn = o.yDimension[0].dataName;\n\t\t\t\to.yDimension.splice(0,0,{dataName:dn});\n\t\t\t\to.yDimension[0].converter =  function(){ return '_r_Totals'; };\n\t\t\t}\n\t\t\t// build initial columns (colModel) from xDimension\n\t\t\txlen = $.isArray(o.xDimension) ? o.xDimension.length : 0;\n\t\t\tylen = o.yDimension.length;\n\t\t\taggrlen  = $.isArray(o.aggregates) ? o.aggregates.length : 0;\n\t\t\tif(xlen === 0 || aggrlen === 0) {\n\t\t\t\tthrow(\"xDimension or aggregates optiona are not set!\");\n\t\t\t}\n\t\t\tvar colc;\n\t\t\tfor(i = 0; i< xlen; i++) {\n\t\t\t\tcolc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols};\n\t\t\t\tif(o.xDimension[i].isGroupField == null) {\n\t\t\t\t\to.xDimension[i].isGroupField =  true;\n\t\t\t\t}\n\t\t\t\tcolc = $.extend(true, colc, o.xDimension[i]);\n\t\t\t\tcolumns.push( colc );\n\t\t\t}\n\t\t\tvar groupfields = xlen - 1, tree={}, _avg=[];\n\t\t\t//tree = { text: 'root', leaf: false, children: [] };\n\t\t\t//loop over alll the source data\n\t\t\twhile( r < rowlen ) {\n\t\t\t\trow = data[r];\n\t\t\t\tvar xValue = [];\n\t\t\t\tvar yValue = []; \n\t\t\t\ttmp = {};\n\t\t\t\ti = 0;\n\t\t\t\t// build the data from xDimension\n\t\t\t\tdo {\n\t\t\t\t\txValue[i]  = $.trim(row[o.xDimension[i].dataName]);\n\t\t\t\t\ttmp[o.xDimension[i].dataName] = xValue[i];\n\t\t\t\t\ti++;\n\t\t\t\t} while( i < xlen );\n\t\t\t\t\n\t\t\t\tvar k = 0;\n\t\t\t\trowindex = -1;\n\t\t\t\t// check to see if the row is in our new pivotrow set\n\t\t\t\tnewObj = find(pivotrows, findGroup, xValue);\n\t\t\t\tif(!newObj) {\n\t\t\t\t\t// if the row is not in our set\n\t\t\t\t\tk = 0;\n\t\t\t\t\t// if yDimension is set\n\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t// build the cols set in yDimension\n\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t// Check to see if we have user defined conditions\n\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// make the colums based on aggregates definition \n\t\t\t\t\t\t// and return the members for late calculation\n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, yValue, tmp );\n\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t// if not set use direct the aggregates \n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, null, tmp );\n\t\t\t\t\t}\n\t\t\t\t\t// add the result in pivot rows\n\t\t\t\t\tpivotrows.push( tmp );\n\t\t\t\t} else {\n\t\t\t\t\t// the pivot exists\n\t\t\t\t\tif( rowindex >= 0) {\n\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t// make the recalculations \n\t\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, yValue, newObj );\n\t\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, null, newObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// update the row\n\t\t\t\t\t\tpivotrows[rowindex] = newObj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar kj=0, current = null,existing = null, kk;\n\t\t\t\t// Build a JSON tree from the member (see aggregateFunc) \n\t\t\t\t// to make later the columns \n\t\t\t\t// \n\t\t\t\tfor (kk in member) {\n\t\t\t\t\tif(member.hasOwnProperty( kk )) {\n\t\t\t\t\t\tif(kj === 0) {\n\t\t\t\t\t\t\tif (!tree.children||tree.children === undefined){\n\t\t\t\t\t\t\t\ttree = { text: kk, level : 0, children: [], label: kk  };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurrent = tree.children;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\texisting = null;\n\t\t\t\t\t\t\tfor (i=0; i < current.length; i++) {\n\t\t\t\t\t\t\t\tif (current[i].text === kk) {\n\t\t\t\t\t\t\t\t//current[i].fields=member[kk];\n\t\t\t\t\t\t\t\t\texisting = current[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (existing) {\n\t\t\t\t\t\t\t\tcurrent = existing.children;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrent.push({ children: [], text: kk, level: kj,  fields: member[kk], label: labels[kk] });\n\t\t\t\t\t\t\t\tcurrent = current[current.length - 1].children;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tkj++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tr++;\n\t\t\t}\n\t\t\t_avg = null; // free mem\n\t\t\tvar  lastval=[], initColLen = columns.length, swaplen = initColLen;\n\t\t\tif(ylen>0) {\n\t\t\t\theaders[ylen-1] = {\tuseColSpanStyle: false,\tgroupHeaders: []};\n\t\t\t}\n\t\t\t/*\n\t\t\t * Recursive function which uses the tree to build the \n\t\t\t * columns from the pivot values and set the group Headers\n\t\t\t */\n\t\t\tfunction list(items) {\n\t\t\t\tvar l, j, key, k, col;\n\t\t\t\tfor (key in items) {\t // iterate\n\t\t\t\t\tif (items.hasOwnProperty(key)) {\n\t\t\t\t\t// write amount of spaces according to level\n\t\t\t\t\t// and write name and newline\n\t\t\t\t\t\tif(typeof items[key] !== \"object\") {\n\t\t\t\t\t\t\t// If not a object build the header of the appropriate level\n\t\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\t\tif(lastval[items.level] === undefined) {\n\t\t\t\t\t\t\t\t\tlastval[items.level] ='';\n\t\t\t\t\t\t\t\t\tif(items.level>0 && items.text.indexOf('_r_Totals') === -1) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1] = {\n\t\t\t\t\t\t\t\t\t\t\tuseColSpanStyle: false,\n\t\t\t\t\t\t\t\t\t\t\tgroupHeaders: []\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) {\n\t\t\t\t\t\t\t\t\tif(items.level>0) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders.push({\n\t\t\t\t\t\t\t\t\t\t\ttitleText: items.label,\n\t\t\t\t\t\t\t\t\t\t\tnumberOfColumns : 0\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tvar collen = headers[items.level-1].groupHeaders.length-1,\n\t\t\t\t\t\t\t\t\t\tcolpos = collen === 0 ? swaplen : initColLen;//+aggrlen;\n\t\t\t\t\t\t\t\t\t\tif(items.level-1=== (o.rowTotals ? 1 : 0)) {\n\t\t\t\t\t\t\t\t\t\t\tif(collen>0) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar l1=0;\n\t\t\t\t\t\t\t\t\t\t\t\tfor(var kk=0; kk<collen; kk++) { \n\t\t\t\t\t\t\t\t\t\t\t\t\tl1 += headers[items.level-1].groupHeaders[kk].numberOfColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif(l1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolpos = l1  + xlen;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif(columns[colpos]) {\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name;\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tinitColLen = columns.length;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastval[items.level] = items.text;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// This is in case when the member contain more than one summary item\n\t\t\t\t\t\t\tif(items.level === ylen  && key==='level' && ylen >0) {\n\t\t\t\t\t\t\t\tif( aggrlen > 1){\n\t\t\t\t\t\t\t\t\tvar ll=1;\n\t\t\t\t\t\t\t\t\tfor( l in items.fields) {\n\t\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty(l)) {\n\t\t\t\t\t\t\t\t\t\t\tif(ll===1) {\n\t\t\t\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tll++;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\theaders.splice(ylen-1,1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if object, call recursively\n\t\t\t\t\t\tif (items[key] != null && typeof items[key] === \"object\") {\n\t\t\t\t\t\t\tlist(items[key]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Finally build the columns\n\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\tif( items.level > 0 &&  (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){\n\t\t\t\t\t\t\t\tj=0;\n\t\t\t\t\t\t\t\tfor(l in items.fields) {\n\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty( l ) ) {\n\t\t\t\t\t\t\t\t\t\tcol = {};\n\t\t\t\t\t\t\t\t\t\tfor(k in o.aggregates[j]) {\n\t\t\t\t\t\t\t\t\t\t\tif(o.aggregates[j].hasOwnProperty(k)) {\n\t\t\t\t\t\t\t\t\t\t\t\tswitch( k ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'member':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'label':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'aggregator':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcol[k] = o.aggregates[j][k];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\tif(aggrlen > 1) {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = l;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = o.aggregates[j].label || items.label;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = items.text;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcolumns.push (col);\n\t\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlist( tree );\n\t\t\tvar nm;\n\t\t\t// loop again trougth the pivot rows in order to build grand total \n\t\t\tif(o.colTotals) {\n\t\t\t\tvar plen = pivotrows.length;\n\t\t\t\twhile(plen--) {\n\t\t\t\t\tfor(i=xlen;i<columns.length;i++) {\n\t\t\t\t\t\tnm = columns[i].name;\n\t\t\t\t\t\tif(!summaries[nm]) {\n\t\t\t\t\t\t\tsummaries[nm] = parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsummaries[nm] += parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// based on xDimension  levels build grouping \n\t\t\tif( groupfields > 0) {\n\t\t\t\tfor(i=0;i<groupfields;i++) {\n\t\t\t\t\tif(columns[i].isGroupField) {\n\t\t\t\t\t\tgroupOptions.groupingView.groupField.push(columns[i].name);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummary.push(o.groupSummary);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// no grouping is needed\n\t\t\t\tgroupOptions.grouping = false;\n\t\t\t}\n\t\t\tgroupOptions.sortname = columns[groupfields].name;\n\t\t\tgroupOptions.groupingView.hideFirstGroupCol = true;\n\t\t});\n\t\t// return the final result.\n\t\treturn { \"colModel\" : columns, \"rows\": pivotrows, \"groupOptions\" : groupOptions, \"groupHeaders\" :  headers, summary : summaries };\n\t},\n\tjqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\n\t\t\tfunction pivot( data) {\n\t\t\t\tif(!$.isArray(data)) {\n\t\t\t\t\tthrow \"data provides is not an array\";\n\t\t\t\t}\n\t\t\t\tvar pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt),\n\t\t\t\tfooterrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false,\n\t\t\t\tquery= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len;\n\t\t\t\tif(pivotOpt.ignoreCase) {\n\t\t\t\t\tquery = query.ignoreCase();\n\t\t\t\t}\n\t\t\t\tfor(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) {\n\t\t\t\t\tso = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc';\n\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st);\n\t\t\t\t}\n\t\t\t\tlen = pivotOpt.xDimension.length;\n\t\t\t\tif(gridOpt.sortname) { // should be a part of xDimension\n\t\t\t\t\tso = gridOpt.sortorder ? gridOpt.sortorder : 'asc';\n\t\t\t\t\tst = 'text';\n\t\t\t\t\tfor( i=0; i< len; i++) {\n\t\t\t\t\t\tif(pivotOpt.xDimension[i].dataName === gridOpt.sortname) {\n\t\t\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tquery.orderBy(gridOpt.sortname, so, st, '', st);\n\t\t\t\t} else {\n\t\t\t\t\tif(pivotGrid.groupOptions.sortname && len) {\n\t\t\t\t\t\tso = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc';\n\t\t\t\t\t\tst = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text';\n\t\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st);\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tjQuery($t).jqGrid($.extend(true, {\n\t\t\t\t\tdatastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}),\n\t\t\t\t\tdatatype: \"jsonstring\",\n\t\t\t\t\tfooterrow : footerrow,\n\t\t\t\t\tuserDataOnFooter: footerrow,\n\t\t\t\t\tcolModel: pivotGrid.colModel,\n\t\t\t\t\tviewrecords: true,\n\t\t\t\t\tsortname: pivotOpt.xDimension[0].dataName // ?????\n\t\t\t\t}, pivotGrid.groupOptions, gridOpt || {}));\n\t\t\t\tvar gHead = pivotGrid.groupHeaders;\n\t\t\t\tif(gHead.length) {\n\t\t\t\t\tfor( i = 0;i < gHead.length ; i++) {\n\t\t\t\t\t\tif(gHead[i] && gHead[i].groupHeaders.length) {\n\t\t\t\t\t\t\tjQuery($t).jqGrid('setGroupHeaders',gHead[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(pivotOpt.frozenStaticCols) {\n\t\t\t\t\tjQuery($t).jqGrid(\"setFrozenColumns\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(typeof data === \"string\") {\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl : data,\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tsuccess : function(response) {\n\t\t\t\t\t\tpivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') );\n\t\t\t\t\t}\n\t\t\t\t}, ajaxOpt || {}) );\n\t\t\t} else {\n\t\t\t\tpivot( data );\n\t\t\t}\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid.extend({\nsetSubGrid : function () {\n\treturn this.each(function (){\n\t\tvar $t = this, cm, i,\n\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid,\n\t\tsuboptions = {\n\t\t\tplusicon : classes.icon_plus,\n\t\t\tminusicon : classes.icon_minus,\n\t\t\topenicon:  classes.icon_open,\n\t\t\texpandOnLoad:  false,\n\t\t\tdelayOnLoad : 50,\n\t\t\tselectOnExpand : false,\n\t\t\tselectOnCollapse : false,\n\t\t\treloadOnExpand : true\n\t\t};\n\t\t$t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {});\n\t\t$t.p.colNames.unshift(\"\");\n\t\t$t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});\n\t\tcm = $t.p.subGridModel;\n\t\tif(cm[0]) {\n\t\t\tcm[0].align = $.extend([],cm[0].align || []);\n\t\t\tfor(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}\n\t\t}\n\t});\n},\naddSubGridCell :function (pos,iRow) {\n\tvar prp='', ic, sid, icb ;\n\tthis.each(function(){\n\t\tprp = this.formatCol(pos,iRow);\n\t\tsid= this.p.id;\n\t\tic = this.p.subGridOptions.plusicon;\n\t\ticb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common;\n\t});\n\treturn \"<td role=\\\"gridcell\\\" aria-describedby=\\\"\"+sid+\"_subgrid\\\" class=\\\"ui-sgcollapsed sgcollapsed\\\" \"+prp+\"><a style='cursor:pointer;' class='ui-sghref'><span class='\" + icb.icon_base +\" \"+ic+\"'></span></a></td>\";\n},\naddSubGrid : function( pos, sind ) {\n\treturn this.each(function(){\n\t\tvar ts = this;\n\t\tif (!ts.grid ) { return; }\n\t\tvar base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base,\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\t\t//-------------------------\n\t\tvar subGridCell = function(trdiv,cell,pos)\n\t\t{\n\t\t\tvar tddiv = $(\"<td align='\"+ts.p.subGridModel[0].align[pos]+\"'></td>\").html(cell);\n\t\t\t$(trdiv).append(tddiv);\n\t\t};\n\t\tvar subGridXml = function(sjxml, sbid){\n\t\t\tvar tddiv, i,  sgmap,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox+\" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.xmlReader.subgrid;\n\t\t\t\t$(sgmap.root+\" \"+sgmap.row, sjxml).each( function(){\n\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t$(sgmap.cell,this).each( function(i) {\n\t\t\t\t\t\t\tsubGridCell(trdiv, $(this).text() || '&#160;',i);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\tif (f) {\n\t\t\t\t\t\t\tfor (i=0;i<f.length;i++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, $(f[i],this).text() || '&#160;',i);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar subGridJson = function(sjxml, sbid){\n\t\t\tvar tddiv,result,i,cur, sgmap,j,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox + \" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.jsonReader.subgrid;\n\t\t\t\tresult = $.jgrid.getAccessor(sjxml, sgmap.root);\n\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\tfor (i=0;i<result.length;i++) {\n\t\t\t\t\t\tcur = result[i];\n\t\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t\tif(sgmap.cell) { cur=cur[sgmap.cell]; }\n\t\t\t\t\t\t\tfor (j=0;j<cur.length;j++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[j] || '&#160;',j);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\t\tif(f.length) {\n\t\t\t\t\t\t\t\tfor (j=0;j<f.length;j++) {\n\t\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[f[j]] || '&#160;',j);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar populatesubgrid = function( rd )\n\t\t{\n\t\t\tvar sid,dp, i, j;\n\t\t\tsid = $(rd).attr(\"id\");\n\t\t\tdp = {nd_: (new Date().getTime())};\n\t\t\tdp[ts.p.prmNames.subgridid]=sid;\n\t\t\tif(!ts.p.subGridModel[0]) { return false; }\n\t\t\tif(ts.p.subGridModel[0].params) {\n\t\t\t\tfor(j=0; j < ts.p.subGridModel[0].params.length; j++) {\n\t\t\t\t\tfor(i=0; i<ts.p.colModel.length; i++) {\n\t\t\t\t\t\tif(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) {\n\t\t\t\t\t\t\tdp[ts.p.colModel[i].name]= $(\"td:eq(\"+i+\")\",rd).text().replace(/\\&#160\\;/ig,'');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tts.grid.hDiv.loading = true;\n\t\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).show();\n\t\t\t\tif(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }\n\t\t\t\tif($.isFunction(ts.p.subgridtype)) {\n\t\t\t\t\tts.p.subgridtype.call(ts, dp);\n\t\t\t\t} else {\n\t\t\t\t\tts.p.subgridtype = ts.p.subgridtype.toLowerCase();\n\t\t\t\t}\n\t\t\t\tswitch(ts.p.subgridtype) {\n\t\t\t\t\tcase \"xml\":\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\turl: $.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl,\n\t\t\t\t\t\tdataType:ts.p.subgridtype,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp,\n\t\t\t\t\t\tcomplete: function(sxml) {\n\t\t\t\t\t\t\tif(ts.p.subgridtype === \"xml\") {\n\t\t\t\t\t\t\t\tsubGridXml(sxml.responseXML, sid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsubGridJson($.jgrid.parse(sxml.responseText),sid);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsxml=null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\tvar _id, pID,atd, nhc=0, bfsc, $r;\n\t\t$.each(ts.p.colModel,function(){\n\t\t\tif(this.hidden === true || this.name === 'rn' || this.name === 'cb') {\n\t\t\t\tnhc++;\n\t\t\t}\n\t\t});\n\t\tvar len = ts.rows.length, i=1,hsret, ishsg = $.isFunction(ts.p.isHasSubGrid);\n\t\tif( sind !== undefined && sind > 0) {\n\t\t\ti = sind;\n\t\t\tlen = sind+1;\n\t\t}\n\t\twhile(i < len) {\n\t\t\tif($(ts.rows[i]).hasClass('jqgrow')) {\n\t\t\t\tif(ts.p.scroll) {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).off('click');\n\t\t\t\t}\n\t\t\t\thsret = null;\n\t\t\t\tif(ishsg) {\n\t\t\t\t\tvar hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id);\n\t\t\t\t}\n\t\t\t\tif(hsret === false) {\n\t\t\t\t\tts.rows[i].cells[pos].innerHTML = \"\";\n\t\t\t\t} else {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).on('click', function() {\n\t\t\t\t\t\tvar tr = $(this).parent(\"tr\")[0];\n\t\t\t\t\t\tpID = ts.p.id;\n\t\t\t\t\t\t_id = tr.id;\n\t\t\t\t\t\t$r = $(\"#\" + pID + \"_\" + _id + \"_expandedContent\");\n\t\t\t\t\t\tif($(this).hasClass(\"sgcollapsed\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridBeforeExpand\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif(bfsc && $.isFunction(ts.p.subGridBeforeExpand)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridBeforeExpand.call(ts, pID+\"_\"+_id,_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc === false) {return false;}\n\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) {\n\t\t\t\t\t\t\t\tatd = pos >=1 ? \"<td colspan='\"+pos+\"'>&#160;</td>\":\"\";\n\t\t\t\t\t\t\t\t$(tr).after( \"<tr role='row' id='\" + pID + \"_\" + _id + \"_expandedContent\" + \"' class='ui-subgrid ui-sg-expanded'>\"+atd+\"<td class='\" + common.content +\" subgrid-cell'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.openicon+\"'></span></td><td colspan='\"+parseInt(ts.p.colNames.length-1-nhc,10)+\"' class='\" + common.content +\" subgrid-data'><div id=\"+pID+\"_\"+_id+\" class='tablediv'></div></td></tr>\" );\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridSubGridRowExpanded\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\t\tif( $.isFunction(ts.p.subGridRowExpanded)) {\n\t\t\t\t\t\t\t\t\tts.p.subGridRowExpanded.call(ts, pID+\"_\"+ _id,_id);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpopulatesubgrid(tr);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$r.show().removeClass(\"ui-sg-collapsed\").addClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.minusicon+\"'></span></a>\").removeClass(\"sgcollapsed\").addClass(\"sgexpanded\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnExpand) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if($(this).hasClass(\"sgexpanded\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridRowColapsed\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif( bfsc &&  $.isFunction(ts.p.subGridRowColapsed)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridRowColapsed.call(ts, pID+\"_\"+_id,_id );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc===false) {return false;}\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true) {\n\t\t\t\t\t\t\t\t$r.remove(\".ui-subgrid\");\n\t\t\t\t\t\t\t} else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting\n\t\t\t\t\t\t\t\t$r.hide().addClass(\"ui-sg-collapsed\").removeClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\"+common.icon_base +\" \"+ts.p.subGridOptions.plusicon+\"'></span></a>\").removeClass(\"sgexpanded\").addClass(\"sgcollapsed\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnCollapse) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\tif(ts.p.subGridOptions.expandOnLoad === true) {\n\t\t\t$(ts.rows).filter('.jqgrow').each(function(index,row){\n\t\t\t\t$(row.cells[0]).click();\n\t\t\t});\n\t\t}\n\t\tts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};\n\t\tts.subGridJson = function(json,sid) {subGridJson(json,sid);};\n\t});\n},\nexpandSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ncollapseSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ntoggleSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t} else {\n\t\t\t\t\tsgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\t\tif(sgc) {\n\t\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n});\n\n//module begin\n$.jgrid.extend({\n\tsetTreeNode : function(i, len){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$t.grid || !$t.p.treeGrid ) {return;}\n\t\t\tvar expCol = $t.p.expColInd,\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\ticon = $t.p.treeReader.icon_field,\n\t\t\tloaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,\n\t\t\tldat, lf,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tindex = i;\n\t\t\t$($t).triggerHandler(\"jqGridBeforeSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.beforeSetTreeNode)) {\n\t\t\t\t$t.p.beforeSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t\twhile(i<len) {\n\t\t\t\tvar ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan;\n\t\t\t\tldat = $t.p.data[dind];\n\t\t\t\t//$t.rows[i].level = ldat[level];\n\t\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t\tif(!ldat[isLeaf]) {\n\t\t\t\t\tlft = parseInt(ldat[$t.p.treeReader.left_field],10);\n\t\t\t\t\trgt = parseInt(ldat[$t.p.treeReader.right_field],10);\n\t\t\t\t\t// NS Model\n\t\t\t\t\t\tldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';\n\t\t\t\t\t\t$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//else {\n\t\t\t\t\t//row.parent_id = rd[$t.p.treeReader.parent_id_field];\n\t\t\t\t//}\n\t\t\t\tcurLevel = parseInt(ldat[level],10);\n\t\t\t\tif($t.p.tree_root_level === 0) {\n\t\t\t\t\tident = curLevel+1;\n\t\t\t\t\tlftpos = curLevel;\n\t\t\t\t} else {\n\t\t\t\t\tident = curLevel;\n\t\t\t\t\tlftpos = curLevel -1;\n\t\t\t\t}\n\t\t\t\ttwrap = \"<div class='tree-wrap tree-wrap-\"+$t.p.direction+\"' style='width:\"+(ident*18)+\"px;'>\";\n\t\t\t\ttwrap += \"<div style='\"+($t.p.direction===\"rtl\" ? \"right:\" : \"left:\")+(lftpos*18)+\"px;' class='\"+common.icon_base+\" \";\n\n\n\t\t\t\tif(ldat[loaded] !== undefined) {\n\t\t\t\t\tif(ldat[loaded]===\"true\" || ldat[loaded]===true) {\n\t\t\t\t\t\tldat[loaded] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tldat[loaded] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ldat[isLeaf] === \"true\" || ldat[isLeaf] === true) {\n\t\t\t\t\ttwrap += ((ldat[icon] !== undefined && ldat[icon] !== \"\") ? ldat[icon] : $t.p.treeIcons.leaf)+\" tree-leaf treeclick\";\n\t\t\t\t\tldat[isLeaf] = true;\n\t\t\t\t\tlf=\"leaf\";\n\t\t\t\t} else {\n\t\t\t\t\tldat[isLeaf] = false;\n\t\t\t\t\tlf=\"\";\n\t\t\t\t}\n\t\t\t\tldat[expanded] = ((ldat[expanded] === \"true\" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined);\n\t\t\t\tif(ldat[expanded] === false) {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.plus+\" tree-plus treeclick'\");\n\t\t\t\t} else {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.minus+\" tree-minus treeclick'\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttwrap += \"></div></div>\";\n\t\t\t\t$($t.rows[i].cells[expCol]).wrapInner(\"<span class='cell-wrapper\"+lf+\"'></span>\").prepend(twrap);\n\n\t\t\t\tif(curLevel !== parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t//var pn = $($t).jqGrid('getNodeParent',ldat);\n\t\t\t\t\t//expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;\n\t\t\t\t\texpan = $($t).jqGrid('isVisibleNode',ldat); // overhead\n\t\t\t\t\tif( !expan ){\n\t\t\t\t\t\t$($t.rows[i]).css(\"display\",\"none\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\tif($t.p.ExpandColClick === true) {\n\t\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridAfterSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.afterSetTreeNode)) {\n\t\t\t\t$t.p.afterSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t});\n\t},\n\tsetTreeGrid : function() {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[],\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid;\n\t\t\tif(!$t.p.treeGrid) {return;}\n\t\t\tif(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}\n\t\t\tif($t.p.loadonce) { $t.p.treedatatype = 'local'; }\n\t\t\t$t.p.subGrid = false;$t.p.altRows =false;\n\t\t\t$t.p.pgbuttons = false;$t.p.pginput = false;\n\t\t\t$t.p.gridview =  true;\n\t\t\tif($t.p.rowTotal === null ) { $t.p.rowNum = 10000; }\n\t\t\t$t.p.multiselect = false;$t.p.rowList = [];\n\t\t\t$t.p.expColInd = 0;\n\t\t\tpico = classes.icon_plus;\n\t\t\tif($t.p.styleUI === 'jQueryUI') {\n\t\t\t\tpico += ($t.p.direction===\"rtl\" ? 'w' : 'e');\n\t\t\t}\n\t\t\t$t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {});\n\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\tleft_field:\"lft\",\n\t\t\t\t\tright_field: \"rgt\",\n\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader);\n\t\t\t} else if($t.p.treeGridModel === 'adjacency') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\t\tparent_id_field: \"parent\",\n\t\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader );\n\t\t\t}\n\t\t\tfor ( key in $t.p.colModel){\n\t\t\t\tif($t.p.colModel.hasOwnProperty(key)) {\n\t\t\t\t\tnm = $t.p.colModel[key].name;\n\t\t\t\t\tif( nm === $t.p.ExpandColumn && !ecol ) {\n\t\t\t\t\t\tecol = true;\n\t\t\t\t\t\t$t.p.expColInd = i;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\t//\n\t\t\t\t\tfor(tkey in $t.p.treeReader) {\n\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) {\n\t\t\t\t\t\t\tdupcols.push(nm);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.treeReader,function(j,n){\n\t\t\t\tif(n && $.inArray(n, dupcols) === -1){\n\t\t\t\t\tif(j==='leaf_field') { $t.p._treeleafpos= i; }\n\t\t\t\ti++;\n\t\t\t\t\t$t.p.colNames.push(n);\n\t\t\t\t\t$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});\n\t\t\t\t}\n\t\t\t});\t\t\t\n\t\t});\n\t},\n\texpandRow: function (record){\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\t//if ($($t).jqGrid(\"isVisibleNode\",record)) {\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeExpandTreeGridRow) ? $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"\");\n\t\t\t\tif(this[expanded]) {\n\t\t\t\t\t$($t).jqGrid(\"expandRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterExpandTreeGridRow)) {\n\t\t\t\t$t.p.afterExpandTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\n\t\t\t//}\n\t\t});\n\t},\n\tcollapseRow : function (record) {\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeCollapseTreeGridRow) ? $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"none\");\n\t\t\t\tif(this[expanded]){\n\t\t\t\t\t$($t).jqGrid(\"collapseRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterCollapseTreeGridRow)) {\n\t\t\t\t$t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\t\t\t\n\t\t});\n\t},\n\t// NS ,adjacency models\n\tgetRootNodes : function(currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, level, parent_id, view;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif( typeof currentview !== 'boolean') {\n\t\t\t\tcurrentview = false;\n\t\t\t}\n\t\t\tif(currentview) {\n\t\t\t\tview = $($t).jqGrid('getRowData', null, true);\n\t\t\t} else {\n\t\t\t\tview = $t.p.data;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tlevel = $t.p.treeReader.level_field;\n\t\t\t\t\t$(view).each(function() {\n\t\t\t\t\t\tif(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tparent_id = $t.p.treeReader.parent_id_field;\n\t\t\t\t\t$(view).each(function(){\n\t\t\t\t\t\tif(this[parent_id] === null || String(this[parent_id]).toLowerCase() === \"null\") {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeDepth : function(rc) {\n\t\tvar ret = null;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar $t = this;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar level = $t.p.treeReader.level_field;\n\t\t\t\t\tret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tret = $($t).jqGrid(\"getNodeAncestors\",rc).length;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetNodeParent : function(rc) {\n\t\tvar result = null;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {\n\t\t\t\t\t\t\tresult = this;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id,\n\t\t\t\t\tind = rc[dtid], pos = $t.p._index[ind];\n\t\t\t\t\twhile(pos--) {\n\t\t\t\t\t\tif($t.p.data[pos][dtid] === $.jgrid.stripPref($t.p.idPrefix, rc[parent_id])) {\n\t\t\t\t\t\t\tresult = $t.p.data[pos];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeChildren : function(rc, currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar i, len = currentview ? this.rows.length : this.p.data.length, row;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && String(row[parent_id]) === $.jgrid.stripPref($t.p.idPrefix, rc[dtid])) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetFullTreeNode : function(rc, expand) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, len,expanded = $t.p.treeReader.expanded_field;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif(expand == null || typeof expand !== 'boolean') {\n\t\t\t\texpand = false;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {\n\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tif(rc) {\n\t\t\t\t\tresult.push(rc);\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\t$(this.p.data).each(function(i){\n\t\t\t\t\t\tlen = result.length;\n\t\t\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\t\t\tif ($.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) === this[parent_id]) {\n\t\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\t\n\t// End NS, adjacency Model\n\tgetNodeAncestors : function(rc, reverse, expanded) {\n\t\tvar ancestors = [];\n\t\tif(reverse === undefined ) {\n\t\t\treverse = false;\n\t\t}\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tif(expanded === undefined ) {\n\t\t\t\texpanded = false;\n\t\t\t} else {\n\t\t\t\texpanded = this.p.treeReader.expanded_field;\n\t\t\t}\n\t\t\tvar parent = $(this).jqGrid(\"getNodeParent\",rc);\n\t\t\twhile (parent) {\n\t\t\t\tif(expanded) {\n\t\t\t\t\ttry{\n\t\t\t\t\t\tparent[expanded] = true;\n\t\t\t\t\t} catch (etn) {}\n\t\t\t\t}\n\t\t\t\tif(reverse) {\n\t\t\t\t\tancestors.unshift(parent);\n\t\t\t\t} else {\n\t\t\t\tancestors.push(parent);\n\t\t\t\t}\n\t\t\t\tparent = $(this).jqGrid(\"getNodeParent\",parent);\t\n\t\t\t}\n\t\t});\n\t\treturn ancestors;\n\t},\n\tisVisibleNode : function(rc) {\n\t\tvar result = true;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar ancestors = $($t).jqGrid(\"getNodeAncestors\",rc),\n\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t$(ancestors).each(function(){\n\t\t\t\tresult = result && this[expanded];\n\t\t\t\tif(!result) {return false;}\n\t\t\t});\n\t\t});\n\t\treturn result;\n\t},\n\tisNodeLoaded : function(rc) {\n\t\tvar result;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar isLeaf = $t.p.treeReader.leaf_field,\n\t\t\tloaded = $t.p.treeReader.loaded;\n\t\t\tif(rc !== undefined ) {\n\t\t\t\tif(rc[loaded] !== undefined) {\n\t\t\t\t\tresult = rc[loaded];\n\t\t\t\t} else if( rc[isLeaf] || $($t).jqGrid(\"getNodeChildren\",rc).length > 0){\n\t\t\t\t\tresult = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tsetLeaf : function (rc, state, collapsed) {\n\t\treturn this.each(function(){\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0],\n\t\t\tisLeaf = this.p.treeReader.leaf_field;\n\t\t\ttry {\n\t\t\t\tvar dr = this.p._index[id];\n\t\t\t\tif(dr != null) {\n\t\t\t\t\tthis.p.data[dr][isLeaf] = state;\n\t\t\t\t}\n\t\t\t} catch(E){}\n\t\t\tif(state === true) {\n\t\t\t\t// set it in data\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus \"+this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.leaf +\" tree-leaf\");\n\t\t\t} else if(state === false) {\n\t\t\t\tvar ico = this.p.treeIcons.minus+\" tree-minus\";\n\t\t\t\tif(collapsed) {\n\t\t\t\t\tico = this.p.treeIcons.plus+\" tree-plus\";\n\t\t\t\t}\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.leaf +\" tree-leaf\").addClass( ico );\n\t\t\t}\t\n\t\t});\n\t},\n\treloadNode: function(rc, reloadcurrent) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar rid = this.p.localReader.id,\n\t\t\tcurrselection  = this.p.selrow;\n\n\t\t\t$(this).jqGrid(\"delChildren\", rc[rid]);\n\n\t\t\tif(reloadcurrent=== undefined) {\n\t\t\t\treloadcurrent = false;\n\t\t\t}\n\t\t\t\n\t\t\tif(!reloadcurrent) {\n\t\t\t\tif(!jQuery._data( this, \"events\" ).jqGridAfterSetTreeNode) {\n\t\t\t\t\t$(this).on(\"jqGridAfterSetTreeNode.reloadNode\", function(){\n\t\t\t\t\t\tvar isLeaf = this.p.treeReader.leaf_field;\n\t\t\t\t\t\tif(this.p.reloadnode ) {\n\t\t\t\t\t\t\tvar rc = this.p.reloadnode,\n\t\t\t\t\t\t\tchld = $(this).jqGrid('getNodeChildren', rc);\n\t\t\t\t\t\t\tif(rc[isLeaf] && chld.length) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, false);\n\t\t\t\t\t\t\t} else if(!rc[isLeaf] && chld.length === 0) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.p.reloadnode = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tisLeaf = this.p.treeReader.leaf_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0];\n\n\t\t\trc[expanded] = true;\n\t\t\tif(!rc[isLeaf]) {\n\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t}\n\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\tthis.p.reloadnode = rc;\n\t\t\tif(reloadcurrent) {\n\t\t\t\tthis.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1;\n\t\t\t\t$(this).jqGrid('delRowData', id);\n\t\t\t}\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t}\n\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\n\t\t\trc[loaded] = true;\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}});\n\t\t\t}\n\t\t});\n\t},\n\texpandNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tif(!rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],\n\t\t\t\tposition = this.p._index[id],\n\t\t\t\tret = $.isFunction(this.p.beforeExpandTreeGridNode) ? this.p.beforeExpandTreeGridNode.call(this, id, rc ) : true;\n\t\t\t\tif( ret === false ) { return; }\n\n\t\t\t\tif( $(this).jqGrid(\"isNodeLoaded\",this.p.data[position]) ) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t} else if (!this.grid.hDiv.loading) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t\t\t}\n\t\t\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\t\trc[loaded] = true;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',parentid:'',n_level:''}}); \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($.isFunction(this.p.afterExpandTreeGridNode)) {\n\t\t\t\t\tthis.p.afterExpandTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tcollapseNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field;\n\t\t\tif(rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\tret = $.isFunction(this.p.beforeCollapseTreeGridNode) ? this.p.beforeCollapseTreeGridNode.call(this, id, rc ) : true,\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0];\n\t\t\t\trc[expanded] = false;\n\t\t\t\tif( ret === false ) { return; }\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus\").addClass(this.p.treeIcons.plus+\" tree-plus\");\n\t\t\t\tif($.isFunction(this.p.afterCollapseTreeGridNode)) {\n\t\t\t\t\tthis.p.afterCollapseTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tSortTree : function( sortname, newDir, st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\trec, records = [], $t = this, query, roots,\n\t\t\trt = $(this).jqGrid(\"getRootNodes\", $t.p.search);\n\t\t\t// Sorting roots\n\t\t\tquery = $.jgrid.from.call(this, rt);\n\t\t\tquery.orderBy(sortname,newDir,st, datefmt);\n\t\t\troots = query.select();\n\n\t\t\t// Sorting children\n\t\t\tfor (i = 0, len = roots.length; i < len; i++) {\n\t\t\t\trec = roots[i];\n\t\t\t\trecords.push(rec);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, rec, sortname, newDir,st, datefmt);\n\t\t\t}\n\t\t\t$.each(records, function(index) {\n\t\t\t\tvar id  = $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr:eq('+index+')').after($('tr#'+$.jgrid.jqID(id),$t.grid.bDiv));\n\t\t\t});\n\t\t\tquery = null;roots=null;records=null;\n\t\t});\n\t},\n\tsearchTree : function ( recs ) {\n\t\tvar i= recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(i) {\n\t\t\t\tlid = this.p.localReader.id;\n\t\t\t\twhile( i-- ) { // reverse \n\t\t\t\t\tancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true);\n\t\t\t\t\t//add the searched item\n\t\t\t\t\tancestors.push(recs[i]);\n\t\t\t\t\ttid = ancestors[0][lid]; \n\t\t\t\t\tif($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing\n\t\t\t\t\t\tfor( j = 0, alen = ancestors.length; j < alen; j++) {\n\t\t\t\t\t\t\t//$.inArray ?!?\n\t\t\t\t\t\t\tvar found = false;\n\t\t\t\t\t\t\tfor( k=0, rlen = result.length; k < rlen; k++) {\n\t\t\t\t\t\t\t\tif(ancestors[j][lid] === result[k][lid]) {\n\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\t\tresult.push(ancestors[j]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\troots.push( tid );\n\t\t\t\t\t\t}\n\t\t\t\t\tresult = result.concat( ancestors );\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tcollectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\tchild, ch, query, children;\n\t\t\tch = $(this).jqGrid(\"getNodeChildren\",rec, this.p.search);\n\t\t\tquery = $.jgrid.from.call(this, ch);\n\t\t\tquery.orderBy(sortname, newDir, st, datefmt);\n\t\t\tchildren = query.select();\n\t\t\tfor (i = 0, len = children.length; i < len; i++) {\n\t\t\t\tchild = children[i];\n\t\t\t\trecords.push(child);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, child, sortname, newDir, st, datefmt); \n\t\t\t}\n\t\t});\n\t},\n\t// experimental \n\tsetTreeRow : function(rowid, data) {\n\t\tvar success=false;\n\t\tthis.each(function(){\n\t\t\tvar t = this;\n\t\t\tif(!t.grid || !t.p.treeGrid) {return;}\n\t\t\tsuccess = $(t).jqGrid(\"setRowData\",rowid,data);\n\t\t});\n\t\treturn success;\n\t},\n\tdelTreeNode : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id, i,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (i=0;i<dr.length;i++){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tdelChildren : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (var i=0;i<dr.length;i++){\n\t\t\t\t\t\tif(dr[i][rid] !== rowid)\n\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\taddChildNode : function( nodeid, parentid, data, expandData ) {\n\t\t//return this.each(function(){\n\t\tvar $t = this[0];\n\t\tif(data) {\n\t\t\t// we suppose tha the id is autoincremet and\n\t\t\tvar expanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\t//icon = $t.p.treeReader.icon_field,\n\t\t\tparent = $t.p.treeReader.parent_id_field,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field,\n\t\t\tloaded = $t.p.treeReader.loaded,\n\t\t\tmethod, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;\n\t\t\tif(expandData===undefined) {expandData = false;}\n\t\t\tif ( nodeid == null ) {\n\t\t\t\ti = $t.p.data.length-1;\n\t\t\t\tif(\ti>= 0 ) {\n\t\t\t\t\twhile(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}\n\t\t\t\t}\n\t\t\t\tnodeid = max+1;\n\t\t\t}\n\t\t\tvar prow = $($t).jqGrid('getInd', parentid);\n\t\t\tleaf = false;\n\t\t\t// if not a parent we assume root\n\t\t\tif ( parentid === undefined  || parentid === null || parentid===\"\") {\n\t\t\t\tparentid = null;\n\t\t\t\trowind = null;\n\t\t\t\tmethod = 'last';\n\t\t\t\tparentlevel = $t.p.tree_root_level;\n\t\t\t\ti = $t.p.data.length+1;\n\t\t\t} else {\n\t\t\t\tmethod = 'after';\n\t\t\t\tparentindex = $t.p._index[parentid];\n\t\t\t\tparentdata = $t.p.data[parentindex];\n\t\t\t\tparentid = parentdata[$t.p.localReader.id];\n\t\t\t\tparentlevel = parseInt(parentdata[level],10)+1;\n\t\t\t\tvar childs = $($t).jqGrid('getFullTreeNode', parentdata);\n\t\t\t\t// if there are child nodes get the last index of it\n\t\t\t\tif(childs.length) {\n\t\t\t\t\ti = childs[childs.length-1][$t.p.localReader.id];\n\t\t\t\t\trowind = i;\n\t\t\t\t\ti = $($t).jqGrid('getInd',rowind)+1;\n\t\t\t\t} else {\n\t\t\t\t\ti = $($t).jqGrid('getInd', parentid)+1;\n\t\t\t\t}\n\t\t\t\t// if the node is leaf\n\t\t\t\tif(parentdata[isLeaf]) {\n\t\t\t\t\tleaf = true;\n\t\t\t\t\tparentdata[expanded] = true;\n\t\t\t\t\t//var prow = $($t).jqGrid('getInd', parentid);\n\t\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t\t.find(\"span.cell-wrapperleaf\").removeClass(\"cell-wrapperleaf\").addClass(\"cell-wrapper\")\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find(\"div.tree-leaf\").removeClass($t.p.treeIcons.leaf+\" tree-leaf\").addClass($t.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\t$t.p.data[parentindex][isLeaf] = false;\n\t\t\t\t\tparentdata[loaded] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlen = i+1;\n\n\t\t\tif( data[expanded]===undefined)  {data[expanded]= false;}\n\t\t\tif( data[loaded]===undefined )  { data[loaded] = false;}\n\t\t\tdata[level] = parentlevel;\n\t\t\tif( data[isLeaf]===undefined) {data[isLeaf]= true;}\n\t\t\tif( $t.p.treeGridModel === \"adjacency\") {\n\t\t\t\tdata[parent] = parentid;\n\t\t\t}\n\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t// this method requiere more attention\n\t\t\t\tvar query, res, key;\n\t\t\t\t//maxright = parseInt(maxright,10);\n\t\t\t\t// ToDo - update grid data\n\t\t\t\tif(parentid !== null) {\n\t\t\t\t\tmaxright = parseInt(parentdata[right],10);\n\t\t\t\t\tquery = $.jgrid.from.call($t, $t.p.data);\n\t\t\t\t\tquery = query.greaterOrEquals(right,maxright,{stype:'integer'});\n\t\t\t\t\tres = query.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];\n\t\t\t\t\t\t\t\tres[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright;\n\t\t\t\t\tdata[right]= maxright+1;\n\t\t\t\t} else {\n\t\t\t\t\tmaxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright+1;\n\t\t\t\t\tdata[right] = maxright + 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( parentid === null || $($t).jqGrid(\"isNodeLoaded\",parentdata) || leaf ) {\n\t\t\t\t\t$($t).jqGrid('addRowData', nodeid, data, method, rowind);\n\t\t\t\t\t$($t).jqGrid('setTreeNode', i, len);\n\t\t\t}\n\t\t\tif(parentdata && !parentdata[expanded] && expandData) {\n\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.click();\n\t\t\t}\n\t\t}\n\t\t//});\n\t}\n});\n\n//module begin\n$.fn.jqDrag=function(h){return i(this,h,'d');};\n$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};\n$.jqDnR={\n\tdnr:{},\n\te:0,\n\tdrag:function(v){\n\t\tif(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}\n\t\telse {\n\t\t\tE.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});\n\t\t\tif(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}\n\t\t}\n\t\treturn false;\n\t},\n\tstop:function(){\n\t\t//E.css('opacity',M.o);\n\t\t$(document).off('mousemove',J.drag).off('mouseup',J.stop);\n\t}\n};\nvar J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,\ni=function(e,h,k,aR){\n\treturn e.each(function(){\n\t\th=(h)?$(h,e):e;\n\t\th.on('mousedown',{e:e,k:k},function(v){\n\t\t\tvar d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;\n\t\t\t// attempt utilization of dimensions plugin to fix IE issues\n\t\t\tif(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}\n\t\t\tM={\n\t\t\t\tX:p.left||f('left')||0,\n\t\t\t\tY:p.top||f('top')||0,\n\t\t\t\tW:f('width')||E[0].scrollWidth||0,\n\t\t\t\tH:f('height')||E[0].scrollHeight||0,\n\t\t\t\tpX:v.pageX,\n\t\t\t\tpY:v.pageY,\n\t\t\t\tk:d.k\n\t\t\t\t//o:E.css('opacity')\n\t\t\t};\n\t\t\t// also resize\n\t\t\tif(E1 && d.k != 'd'){\n\t\t\t\tM1={\n\t\t\t\t\tX:p.left||f1('left')||0,\n\t\t\t\t\tY:p.top||f1('top')||0,\n\t\t\t\t\tW:E1[0].offsetWidth||f1('width')||0,\n\t\t\t\t\tH:E1[0].offsetHeight||f1('height')||0,\n\t\t\t\t\tpX:v.pageX,\n\t\t\t\t\tpY:v.pageY,\n\t\t\t\t\tk:d.k\n\t\t\t\t};\n\t\t\t} else {M1 = false;}\t\t\t\n\t\t\t//E.css({opacity:0.8});\n\t\t\tif($(\"input.hasDatepicker\",E[0])[0]) {\n\t\t\ttry {$(\"input.hasDatepicker\",E[0]).datepicker('hide');}catch (dpe){}\n\t\t\t}\n\t\t\t$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);\n\t\t\treturn false;\n\t\t});\n\t});\n},\nf=function(k){return parseInt(E.css(k),10)||false;},\nf1=function(k){return parseInt(E1.css(k),10)||false;};\n/*\n\tjQuery tinyDraggable v1.0.2\n    Copyright (c) 2014 Simon Steinberger / Pixabay\n    GitHub: https://github.com/Pixabay/jQuery-tinyDraggable\n    More info: https://pixabay.com/blog/posts/p-52/\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n$.fn.tinyDraggable = function(options){\n\tvar settings = $.extend({ handle: 0, exclude: 0 }, options);\n\treturn this.each(function(){\n\t    var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el;\n        handle.on({\n        mousedown: function(e){\n\t\t\tif (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; }\n\t\t\te.preventDefault();\n\t\t\tvar os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top;\n\t\t\t$(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); });\n\t\t\t},\n\t\t\tmouseup: function(e){ $(document).off('mousemove.drag'); }\n\t\t});\n\t});\n};\n\n//module begin\n$.fn.jqm=function(o){\nvar p={\noverlay: 50,\ncloseoverlay : true,\noverlayClass: 'jqmOverlay',\ncloseClass: 'jqmClose',\ntrigger: '.jqModal',\najax: F,\najaxText: '',\ntarget: F,\nmodal: F,\ntoTop: F,\nonShow: F,\nonHide: F,\nonLoad: F\n};\nreturn this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s;\nH[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};\nif(p.trigger){$(this).jqmAddTrigger(p.trigger);}\n});};\n\n$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};\n$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};\n$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};\n$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});};\n\n$.jqm = {\nhash:{},\nopen:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z);\n if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);}\n else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}}\n else {o=F;}\n\n h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;\n\n if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u;\n  r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});}\n else if(cc){h.w.jqmAddClose($(cc,h.w));}\n\n if(c.toTop&&h.o){h.w.before('<span id=\"jqmP'+h.w[0]._jqm+'\"></span>').insertAfter(h.o);}\n (c.onShow)?c.onShow(h):h.w.show();e(h);return F;\n},\nclose:function(s){var h=H[s];if(!h.a){return F;}h.a=F;\n if(A[0]){A.pop();if(!A[0]){new L('unbind');}}\n if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();}\n if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F;\n},\nparams:{}};\nvar s=0,H=$.jqm.hash,A=[],F=false,\ne=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} },\nf=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus();\t}catch(_){}},\nL=function(t){$(document)[t](\"keypress\",m)[t](\"keydown\",m)[t](\"mousedown\",m);},\nm=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width()){r=false;return false;}});f(h);}return !r;},\nhs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {\n if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});}\n this[c].push(s);});});};\n\n//module begin\n\t$.fmatter = {};\n\t//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column\n\t//example {id:1234,}\n\t$.extend($.fmatter,{\n\t\tisBoolean : function(o) {\n\t\t\treturn typeof o === 'boolean';\n\t\t},\n\t\tisObject : function(o) {\n\t\t\treturn (o && (typeof o === 'object' || $.isFunction(o))) || false;\n\t\t},\n\t\tisString : function(o) {\n\t\t\treturn typeof o === 'string';\n\t\t},\n\t\tisNumber : function(o) {\n\t\t\treturn typeof o === 'number' && isFinite(o);\n\t\t},\n\t\tisValue : function (o) {\n\t\t\treturn (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));\n\t\t},\n\t\tisEmpty : function(o) {\n\t\t\tif(!this.isString(o) && this.isValue(o)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!this.isValue(o)){\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\to = $.trim(o).replace(/\\&nbsp\\;/ig,'').replace(/\\&#160\\;/ig,'');\n\t\t\treturn o===\"\";\t\n\t\t}\n\t});\n\t$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {\n\t\t// build main options before element iteration\n\t\tvar v=cellval;\n\t\topts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts);\n\n\t\ttry {\n\t\t\tv = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);\n\t\t} catch(fe){}\n\t\treturn v;\n\t};\n\t$.fmatter.util = {\n\t\t// Taken from YAHOO utils\n\t\tNumberFormat : function(nData,opts) {\n\t\t\tif(!$.fmatter.isNumber(nData)) {\n\t\t\t\tnData *= 1;\n\t\t\t}\n\t\t\tif($.fmatter.isNumber(nData)) {\n\t\t\t\tvar bNegative = (nData < 0);\n\t\t\t\tvar sOutput = String(nData);\n\t\t\t\tvar sDecimalSeparator = opts.decimalSeparator || \".\";\n\t\t\t\tvar nDotIndex;\n\t\t\t\tif($.fmatter.isNumber(opts.decimalPlaces)) {\n\t\t\t\t\t// Round to the correct decimal place\n\t\t\t\t\tvar nDecimalPlaces = opts.decimalPlaces;\n\t\t\t\t\tvar nDecimal = Math.pow(10, nDecimalPlaces);\n\t\t\t\t\tsOutput = String(Math.round(nData*nDecimal)/nDecimal);\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(\".\");\n\t\t\t\t\tif(nDecimalPlaces > 0) {\n\t\t\t\t\t// Add the decimal separator\n\t\t\t\t\t\tif(nDotIndex < 0) {\n\t\t\t\t\t\t\tsOutput += sDecimalSeparator;\n\t\t\t\t\t\t\tnDotIndex = sOutput.length-1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Replace the \".\"\n\t\t\t\t\t\telse if(sDecimalSeparator !== \".\"){\n\t\t\t\t\t\t\tsOutput = sOutput.replace(\".\",sDecimalSeparator);\n\t\t\t\t\t\t}\n\t\t\t\t\t// Add missing zeros\n\t\t\t\t\t\twhile((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {\n\t\t\t\t\t\t\tsOutput += \"0\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(opts.thousandsSeparator) {\n\t\t\t\t\tvar sThousandsSeparator = opts.thousandsSeparator;\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(sDecimalSeparator);\n\t\t\t\t\tnDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;\n\t\t\t\t\tvar sNewOutput = sOutput.substring(nDotIndex);\n\t\t\t\t\tvar nCount = -1, i;\n\t\t\t\t\tfor (i=nDotIndex; i>0; i--) {\n\t\t\t\t\t\tnCount++;\n\t\t\t\t\t\tif ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {\n\t\t\t\t\t\t\tsNewOutput = sThousandsSeparator + sNewOutput;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsNewOutput = sOutput.charAt(i-1) + sNewOutput;\n\t\t\t\t\t}\n\t\t\t\t\tsOutput = sNewOutput;\n\t\t\t\t}\n\t\t\t\t// Prepend prefix\n\t\t\t\tsOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;\n\t\t\t\t// Append suffix\n\t\t\t\tsOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;\n\t\t\t\treturn sOutput;\n\t\t\t\t\n\t\t\t}\n\t\t\treturn nData;\n\t\t}\n\t};\n\t$.fn.fmatter.defaultFormat = function(cellval, opts) {\n\t\treturn ($.fmatter.isValue(cellval) && cellval!==\"\" ) ?  cellval : opts.defaultValue || \"&#160;\";\n\t};\n\t$.fn.fmatter.email = function(cellval, opts) {\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a href=\\\"mailto:\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts );\n\t};\n\t$.fn.fmatter.checkbox =function(cval, opts) {\n\t\tvar op = $.extend({},opts.checkbox), ds;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.disabled===true) {ds = \"disabled=\\\"disabled\\\"\";} else {ds=\"\";}\n\t\tif($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}\n\t\tcval=String(cval);\n\t\tcval=(cval+\"\").toLowerCase();\n\t\tvar bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? \" checked='checked' \" : \"\";\n\t\treturn \"<input type=\\\"checkbox\\\" \" + bchk  + \" value=\\\"\"+ cval+\"\\\" offval=\\\"no\\\" \"+ds+ \"/>\";\n\t};\n\t$.fn.fmatter.link = function(cellval, opts) {\n\t\tvar op = {target:opts.target};\n\t\tvar target = \"\";\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.showlink = function(cellval, opts) {\n\t\tvar op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || \"\", target: opts.target, idName: opts.idName},\n\t\ttarget = \"\", idUrl;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tidUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;\n\t\tif($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) {\t//add this one even if its blank string\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + idUrl + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.integer = function(cellval, opts) {\n\t\tvar op = $.extend({},opts.integer);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.number = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.number);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.currency = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.currency);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.date = function (cellval, opts, rwd, act) {\n\t\tvar op = $.extend({},opts.date);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(!op.reformatAfterEdit && act === 'edit'){\n\t\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t\t}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n\t$.fn.fmatter.select = function (cellval,opts) {\n\t\t// jqGrid specific\n\t\tcellval = String(cellval);\n\t\tvar oSelect = false, ret=[], sep, delim;\n\t\tif(opts.colModel.formatoptions !== undefined){\n\t\t\toSelect= opts.colModel.formatoptions.value;\n\t\t\tsep = opts.colModel.formatoptions.separator === undefined ? \":\" : opts.colModel.formatoptions.separator;\n\t\t\tdelim = opts.colModel.formatoptions.delimiter === undefined ? \";\" : opts.colModel.formatoptions.delimiter;\n\t\t} else if(opts.colModel.editoptions !== undefined){\n\t\t\toSelect= opts.colModel.editoptions.value;\n\t\t\tsep = opts.colModel.editoptions.separator === undefined ? \":\" : opts.colModel.editoptions.separator;\n\t\t\tdelim = opts.colModel.editoptions.delimiter === undefined ? \";\" : opts.colModel.editoptions.delimiter;\n\t\t}\n\t\tif (oSelect) {\n\t\t\tvar\tmsl =  (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cellval.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\t// mybe here we can use some caching with care ????\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray(sv[0],scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[1];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[0]) === $.trim(cellval)) {\n\t\t\t\t\t\tret[0] = sv[1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect)) {\n\t\t\t\t// this is quicker\n\t\t\t\tif(msl) {\n\t\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\t\treturn oSelect[n];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tret[0] = oSelect[cellval] || \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcellval = ret.join(\", \");\n\t\treturn  cellval === \"\" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;\n\t};\n\t$.fn.fmatter.rowactions = function(act) {\n\t\tvar $tr = $(this).closest(\"tr.jqgrow\"),\n\t\t\trid = $tr.attr(\"id\"),\n\t\t\t$id = $(this).closest(\"table.ui-jqgrid-btable\").attr('id').replace(/_frozen([^_]*)$/,'$1'),\n\t\t\t$grid = $(\"#\"+$id),\n\t\t\t$t = $grid[0],\n\t\t\tp = $t.p,\n\t\t\tcm = p.colModel[$.jgrid.getCellIndex(this)],\n\t\t\t$actionsDiv = cm.frozen ? $(\"tr#\"+rid+\" td:eq(\"+$.jgrid.getCellIndex(this)+\") > div\",$grid) :$(this).parent(),\n\t\t\top = {\n\t\t\t\textraparam: {}\n\t\t\t},\n\t\t\tsaverow = function(rowid, res) {\n\t\t\t\tif($.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t},\n\t\t\trestorerow = function(rowid) {\n\t\t\t\tif($.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t};\n\n\t\tif (cm.formatoptions !== undefined) {\n\t\t\top = $.extend(op,cm.formatoptions);\n\t\t}\n\t\tif (p.editOptions !== undefined) {\n\t\t\top.editOptions = p.editOptions;\n\t\t}\n\t\tif (p.delOptions !== undefined) {\n\t\t\top.delOptions = p.delOptions;\n\t\t}\n\t\tif ($tr.hasClass(\"jqgrid-new-row\")){\n\t\t\top.extraparam[p.prmNames.oper] = p.prmNames.addoper;\n\t\t}\n\t\tvar actop = {\n\t\t\tkeys: op.keys,\n\t\t\toneditfunc: op.onEdit,\n\t\t\tsuccessfunc: op.onSuccess,\n\t\t\turl: op.url,\n\t\t\textraparam: op.extraparam,\n\t\t\taftersavefunc: saverow,\n\t\t\terrorfunc: op.onError,\n\t\t\tafterrestorefunc: restorerow,\n\t\t\trestoreAfterError: op.restoreAfterError,\n\t\t\tmtype: op.mtype\n\t\t};\n\t\tswitch(act)\n\t\t{\n\t\t\tcase 'edit':\n\t\t\t\t$grid.jqGrid('editRow', rid, actop);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").hide();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").show();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'save':\n\t\t\t\tif ($grid.jqGrid('saveRow', rid, actop)) {\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'cancel' :\n\t\t\t\t$grid.jqGrid('restoreRow', rid, restorerow);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'del':\n\t\t\t\t$grid.jqGrid('delGridRow', rid, op.delOptions);\n\t\t\t\tbreak;\n\t\t\tcase 'formedit':\n\t\t\t\t$grid.jqGrid('setSelection', rid);\n\t\t\t\t$grid.jqGrid('editGridRow', rid, op.editOptions);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\t$.fn.fmatter.actions = function(cellval,opts) {\n\t\tvar op={keys:false, editbutton:true, delbutton:true, editformbutton: false},\n\t\t\trowid=opts.rowId, str=\"\",ocl,\n\t\t\tnav = $.jgrid.getRegional(this, 'nav'),\n\t\t\tclasses = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter,\n\t\t\tcommon = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common;\n\t\tif(opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend(op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(rowid === undefined || $.fmatter.isEmpty(rowid)) {return \"\";}\n\t\tvar hover = \"onmouseover=jQuery(this).addClass('\" + common.hover +\"'); onmouseout=jQuery(this).removeClass('\" + common.hover +\"');  \";\n\t\tif(op.editformbutton){ \n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t} else if(op.editbutton){\n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t}\n\t\tif(op.delbutton) {\n\t\t\tocl = \"id='jDeleteButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.deltitle+\"' style='float:left;' class='ui-pg-div ui-inline-del' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_del +\"'></span></div>\";\n\t\t}\n\t\tocl = \"id='jSaveButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); \" + hover;\n\t\tstr += \"<div title='\"+nav.savetitle+\"' style='float:left;display:none' class='ui-pg-div ui-inline-save' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_save +\"'></span></div>\";\n\t\tocl = \"id='jCancelButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); \" + hover;\n\t\tstr += \"<div title='\"+nav.canceltitle+\"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_cancel +\"'></span></div>\";\n\t\treturn \"<div style='margin-left:8px;'>\" + str + \"</div>\";\n\t};\n\t$.unformat = function (cellval,options,pos,cnt) {\n\t\t// specific for jqGrid only\n\t\tvar ret, formatType = options.colModel.formatter,\n\t\top =options.colModel.formatoptions || {}, sep,\n\t\tre = /([\\.\\*\\_\\'\\(\\)\\{\\}\\+\\?\\\\])/g,\n\t\tunformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);\n\t\tif(unformatFunc !== undefined && $.isFunction(unformatFunc) ) {\n\t\t\tret = unformatFunc.call(this, $(cellval).text(), options, cellval);\n\t\t} else if(formatType !== undefined && $.fmatter.isString(formatType) ) {\n\t\t\tvar opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag;\n\t\t\tswitch(formatType) {\n\t\t\t\tcase 'integer' :\n\t\t\t\t\top = $.extend({},opts.integer,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,'');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'number' :\n\t\t\t\t\top = $.extend({},opts.number,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,\"\").replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'currency':\n\t\t\t\t\top = $.extend({},opts.currency,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text();\n\t\t\t\t\tif (op.prefix && op.prefix.length) {\n\t\t\t\t\t\tret = ret.substr(op.prefix.length);\n\t\t\t\t\t}\n\t\t\t\t\tif (op.suffix && op.suffix.length) {\n\t\t\t\t\t\tret = ret.substr(0, ret.length - op.suffix.length);\n\t\t\t\t\t}\n\t\t\t\t\tret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\tvar cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(\":\") : [\"Yes\",\"No\"];\n\t\t\t\t\tret = $('input',cellval).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select' :\n\t\t\t\t\tret = $.unformat.select(cellval,options,pos,cnt);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'actions':\n\t\t\t\t\treturn \"\";\n\t\t\t\tdefault:\n\t\t\t\t\tret= $(cellval).text();\n\t\t\t}\n\t\t}\n\t\treturn ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());\n\t};\n\t$.unformat.select = function (cellval,options,pos,cnt) {\n\t\t// Spacial case when we have local data and perform a sort\n\t\t// cnt is set to true only in sortDataArray\n\t\tvar ret = [];\n\t\tvar cell = $(cellval).text();\n\t\tif(cnt===true) {return cell;}\n\t\tvar op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions),\n\t\tsep = op.separator === undefined ? \":\" : op.separator,\n\t\tdelim = op.delimiter === undefined ? \";\" : op.delimiter;\n\t\t\n\t\tif(op.value){\n\t\t\tvar oSelect = op.value,\n\t\t\tmsl =  op.multiple === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cell.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray($.trim(sv[1]),scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[0];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[1]) === $.trim(cell)) {\n\t\t\t\t\t\tret[0] = sv[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect) || $.isArray(oSelect) ){\n\t\t\t\tif(!msl) {scell[0] =  cell;}\n\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\tvar rv;\n\t\t\t\t\t$.each(oSelect, function(i,val){\n\t\t\t\t\t\tif (val === n) {\n\t\t\t\t\t\t\trv = i;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif( rv !== undefined ) {return rv;}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ret.join(\", \");\n\t\t}\n\t\treturn cell || \"\";\n\t};\n\t$.unformat.date = function (cellval, opts) {\n\t\tvar op = $.jgrid.getRegional(this, 'formatter.date') || {};\n\t\tif(opts.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.formatoptions);\n\t\t}\t\t\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n\n//module begin\nvar dragging, placeholders = $();\n$.fn.html5sortable = function(options) {\n\tvar method = String(options);\n\toptions = $.extend({\n\t\tconnectWith: false\n\t}, options);\n\treturn this.each(function() {\n\t\tif (/^enable|disable|destroy$/.test(method)) {\n\t\t\tvar items = $(this).children($(this).data('items')).attr('draggable', method === 'enable');\n\t\t\tif (method === 'destroy') {\n\t\t\t\titems.add(this).removeData('connectWith items')\n\t\t\t\t\t.off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tvar isHandle, index, items = $(this).children(options.items);\n\t\tvar placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div')\n            + ' class=\"sortable-placeholder ' + options.placeholderClass + '\">').html('&nbsp;');\n        items.find(options.handle).mousedown(function() {\n\t\t\tisHandle = true;\n\t\t}).mouseup(function() {\n\t\t\tisHandle = false;\n\t\t});\n\t\t$(this).data('items', options.items);\n\t\tplaceholders = placeholders.add(placeholder);\n\t\tif (options.connectWith) {\n\t\t\t$(options.connectWith).add(this).data('connectWith', options.connectWith);\n\t\t}\n\t\titems.attr('draggable', 'true').on('dragstart.h5s', function(e) {\n\t\t\tif (options.handle && !isHandle) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tisHandle = false;\n\t\t\tvar dt = e.originalEvent.dataTransfer;\n\t\t\tdt.effectAllowed = 'move';\n\t\t\tdt.setData('Text', 'dummy');\n\t\t\tindex = (dragging = $(this)).addClass('sortable-dragging').index();\n\t\t}).on('dragend.h5s', function() {\n\t\t\tif (!dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdragging.removeClass('sortable-dragging').show();\n\t\t\tplaceholders.detach();\n\t\t\tif (index !== dragging.index()) {\n\t\t\t\tdragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()});\n\t\t\t}\n\t\t\tdragging = null;\n\t\t}).not('a[href], img').on('selectstart.h5s', function() {\n\t\t\tthis.dragDrop && this.dragDrop();\n\t\t\treturn false;\n\t\t}).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) {\n\t\t\tif (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (e.type === 'drop') {\n\t\t\t\te.stopPropagation();\n\t\t\t\tplaceholders.filter(':visible').after(dragging);\n\t\t\t\tdragging.trigger('dragend.h5s');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.originalEvent.dataTransfer.dropEffect = 'move';\n\t\t\tif (items.is(this)) {\n\t\t\t\tif (options.forcePlaceholderSize) {\n\t\t\t\t\tplaceholder.height(dragging.outerHeight());\n\t\t\t\t}\n\t\t\t\tdragging.hide();\n\t\t\t\t$(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder);\n\t\t\t\tplaceholders.not(placeholder).detach();\n\t\t\t} else if (!placeholders.is(this) && !$(this).children(options.items).length) {\n\t\t\t\tplaceholders.detach();\n\t\t\t\t$(this).append(placeholder);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t});\n};\n\n//module begin\nwindow.jqGridUtils = {\n\tstringify : function(obj) {\n\t\treturn JSON.stringify(obj,function(key, value){\n            return (typeof value === 'function' ) ? value.toString() : value;\n        });\n\t},\n\tparse : function(str) {\n\t\treturn JSON.parse(str,function(key, value){\n\t\t\tif(typeof value === \"string\" && value.indexOf(\"function\") !== -1) {\n\t\t\t\tvar sv = value.split(\" \");\n\t\t\t\tif(sv[0].trim() === 'function' && value.trim().slice(-1) === \"}\") {\n\t\t\t\t\treturn  eval('('+value+')');\n\t\t\t\t} else {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t},\n\tencode : function ( text ) { // repeated, but should not depend on grid\n\t\treturn String(text).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;');\n\t},\n\tjsonToXML : function ( tree, options ) {\n\t\tvar o = $.extend( {\n\t\t\txmlDecl : '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\\n',\n\t\t\tattr_prefix : '-',\n\t\t\tencode : true\n\t\t}, options || {}),\n\t\tthat = this,\n\t\tscalarToxml = function ( name, text ) {\n\t\t\tif ( name === \"#text\" ) {\n\t\t\t\treturn (o.encode ? that.encode(text) : text);\n\t\t\t} else if(typeof(text) ==='function') {\n\t\t\t\treturn \"<\"+name+\"><![CDATA[\"+ text +\"]]></\"+name+\">\\n\";\n\t\t\t} if(text === \"\") {\n\t\t\t\treturn \"<\"+name+\">__EMPTY_STRING_</\"+name+\">\\n\";\n\t\t\t} else {\n\t\t\t\treturn \"<\"+name+\">\"+(o.encode ? that.encode(text) : text )+\"</\"+name+\">\\n\";\n\t\t\t}\n\t\t},\n\t\tarrayToxml = function ( name, array ) {\n\t\t\tvar out = [];\n\t\t    for( var i=0; i<array.length; i++ ) {\n\t\t\t\tvar val = array[i];\n\t\t        if ( typeof(val) === \"undefined\" || val == null ) {\n\t\t\t\t\tout[out.length] = \"<\"+name+\" />\";\n\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor == Array ) {\n\t\t\t\t\tout[out.length] = arrayToxml( name, val );\n\t\t\t\t} else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\tout[out.length] = hashToxml( name, val );\n\t\t\t\t} else {\n\t\t\t\t\tout[out.length] = scalarToxml( name, val );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!out.length) {\n\t\t\t\tout[0] = \"<\"+ name+\">__EMPTY_ARRAY_</\"+name+\">\\n\";\n\t\t\t}\n\t\t\treturn out.join(\"\");\n\t\t},\n\t\thashToxml = function ( name, tree ) {\n\t\t\tvar elem = [];\n\t\t    var attr = [];\n\t\t    for( var key in tree ) {\n\t\t\t\tif ( ! tree.hasOwnProperty(key) ) continue;\n\t\t\t\tvar val = tree[key];\n\t\t\t\tif ( key.charAt(0) !==  o.attr_prefix ) {\n\t\t\t\t\tif ( val == null ) { // null or undefined\n\t\t               elem[elem.length] = \"<\"+key+\" />\";\n\t\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor === Array ) {\n\t\t                elem[elem.length] = arrayToxml( key, val );\n\t\t            } else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\t\telem[elem.length] = hashToxml( key, val );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[elem.length] = scalarToxml( key, val );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tattr[attr.length] = \" \"+(key.substring(1))+'=\"'+(o.encode ? that.encode( val ) : val)+'\"';\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar jattr = attr.join(\"\");\n\t\t\tvar jelem = elem.join(\"\");\n\t\t\tif ( name == null ) { // null or undefined\n\t\t\t\t// no tag\n\t\t\t} else if ( elem.length > 0 ) {\n\t\t\t\tif ( jelem.match( /\\n/ )) {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\\n\"+jelem+\"</\"+name+\">\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\"  +jelem+\"</\"+name+\">\\n\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tjelem = \"<\"+name+jattr+\" />\\n\";\n\t\t\t}\n\t\t\treturn jelem;\n\t\t};\n\n\t\tvar xml = hashToxml( null, tree );\n\t\treturn o.xmlDecl + xml;\n\t},\n\txmlToJSON : function ( root, options ) {\n\t\tvar o = $.extend ( {\n\t\t\tforce_array : [], //[ \"rdf:li\", \"item\", \"-xmlns\" ];\n\t\t\tattr_prefix : '-'\n\t\t}, options || {} );\n\t\t\n\t\tif(!root) { return; }\n\t\t\n\t    var __force_array = {};\n\t\tif ( o.force_array ) {\n\t\t\tfor( var i=0; i< o.force_array.length; i++ ) {\n\t\t\t\t__force_array[o.force_array[i]] = 1;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(typeof root === 'string') {\n\t\t\troot = $.parseXML(root);\n\t\t} \n\t\tif(root.documentElement) {\n\t\t\troot = root.documentElement;\n\t\t}\n\t\tvar addNode = function ( hash, key, cnts, val ) {\n\t\t\tif(typeof val === 'string') {\n\t\t\t\tif( val.indexOf('function') !== -1) {\n\t\t\t\t\tval =  eval( '(' + val +')'); // we need this in our implement\n\t\t\t\t} else {\n\t\t\t\t\tswitch(val) {\n\t\t\t\t\t\tcase '__EMPTY_ARRAY_' :\n\t\t\t\t\t\t\tval = [];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase '__EMPTY_STRING_':\n\t\t\t\t\t\t\tval = \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"false\" :\n\t\t\t\t\t\t\tval = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"true\":\n\t\t\t\t\t\t\tval = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} \n\t\t\tif ( __force_array[key] ) {\n\t\t\t\tif ( cnts === 1 ) {\n\t\t\t\t\thash[key] = [];\n\t\t\t\t}\n\t\t\t\thash[key][hash[key].length] = val;      // push\n\t\t\t} else if ( cnts === 1 ) {                   // 1st sibling\n\t\t\t\thash[key] = val;\n\t\t\t} else if ( cnts === 2 ) {                   // 2nd sibling\n\t\t\t\thash[key] = [ hash[key], val ];\n\t\t\t} else {                                    // 3rd sibling and more\n\t\t\t\thash[key][hash[key].length] = val;\n\t\t\t}\n\t\t},\n\t\tparseElement = function ( elem ) {\n\t\t\t//  COMMENT_NODE\n\t\t\tif ( elem.nodeType === 7 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t//  TEXT_NODE CDATA_SECTION_NODE\n\t\t\tif ( elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\tvar bool = elem.nodeValue.match( /[^\\x00-\\x20]/ );\n\t\t\t\tif ( bool == null ) return;     // ignore white spaces\n\t\t\t\treturn elem.nodeValue;\n\t\t\t}\n\t\t\t\n\t\t\tvar retval,\tcnt = {}, i, key, val;\n\n\t\t\t//  parse attributes\n\t\t\tif ( elem.attributes && elem.attributes.length ) {\n\t\t\t\tretval = {};\n\t\t\t\tfor ( i=0; i<elem.attributes.length; i++ ) {\n\t\t\t\t\tkey = elem.attributes[i].nodeName;\n\t\t\t\t\tif ( typeof(key) !== \"string\" )  {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tval = elem.attributes[i].nodeValue;\n\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tkey = o.attr_prefix + key;\n\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t}\n\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//  parse child nodes (recursive)\n\t\t\tif ( elem.childNodes && elem.childNodes.length ) {\n\t\t\t\tvar textonly = true;\n\t\t\t\tif ( retval ) {\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}        // some attributes exists\n\t\t\t\tfor ( i=0; i<elem.childNodes.length && textonly; i++ ) {\n\t\t\t\t\tvar ntype = elem.childNodes[i].nodeType;\n\t\t\t\t\tif ( ntype === 3 || ntype === 4 ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}\n\t\t\t\tif ( textonly ) {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tretval += elem.childNodes[i].nodeValue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = {};\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tkey = elem.childNodes[i].nodeName;\n\t\t\t\t\t\tif ( typeof(key) !== \"string\" ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tval = parseElement( elem.childNodes[i] );\n\t\t\t\t\t\tif ( !val ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn retval;\n\t\t};\n\t\t\n\t    var json = parseElement( root );   // parse root node\n\t\tif ( __force_array[root.nodeName] ) {\n\t\t\tjson = [ json ];\n\t\t}\n\t\tif ( root.nodeType !== 11 ) {            // DOCUMENT_FRAGMENT_NODE\n\t\t\tvar tmp = {};\n\t\t\ttmp[root.nodeName] = json;          // root nodeName\n\t\t\tjson = tmp;\n\t\t}\n\t\treturn json;\n\t},\n\tsaveAs : function (data, fname, opts) {\n\t\topts = $.extend(true,{\n\t\t\ttype : 'plain/text;charset=utf-8'\n\t\t}, opts || {});\n\n\t\tvar file, url, tmp = []; \n\n\t\tfname = fname == null || fname === '' ? 'jqGridFile.txt' : fname;\n\n\t\tif(!$.isArray(data) ) {\n\t\t\ttmp[0]= data ;\n\t\t} else {\n\t\t\ttmp = data;\t\n\t\t}\n\t\ttry {\n\t\t\tfile = new File(tmp, fname, opts);\n\t\t} catch (e) {\n\t\t\tfile = new Blob(tmp, opts);\n\t\t}\n\t\turl = URL.createObjectURL(file);\n\t\tvar a = document.createElement(\"a\");\n\t\ta.href = url;\n\t\ta.download = fname;\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tsetTimeout(function() {\n\t\t\tdocument.body.removeChild(a);\n\t\t\twindow.URL.revokeObjectURL(url);  \n\t\t}, 0);\t\n\t}\n};\n\n//module begin\n\n$.jgrid = $.jgrid || {};\n\n\n$.extend($.jgrid,{\n\tformatCell : function ( cellval , colpos, rwdat, cm, $t){\n\t\tvar v;\n\t\tif(cm.formatter !== undefined) {\n\t\t\tvar opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '' };\n\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\tv = cm.formatter.call($t,cellval,opts,rwdat);\n\t\t\t} else if($.fmatter){\n\t\t\t\tv = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat);\n\t\t\t} else {\n\t\t\t\tv = cellval;\n\t\t\t}\n\t\t} else {\n\t\t\tv = cellval;\n\t\t}\n\t\treturn v;\n\t},\n\tformatCellCsv : function (v, p) {\n\t\tv = v == null ? '' : String(v);\n\t\ttry {\n\t\t\tv = v.replace(p._regexsep ,p.separatorReplace).replace(/\\r\\n/g, p.replaceNewLine).replace(/\\n/g, p.replaceNewLine);\n\t\t} catch (_e) {\n\t\t\tv=\"\";\n\t\t}\n\t\tif(p.escquote) {\n\t\t\tv = v.replace(p._regexquot, p.escquote + p.quote);\n\t\t}\n\t\tif( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) {\n\t\t\tv = p.quote + v + p.quote;\n\t\t}\n\t\treturn v;\t\t\n\t},\n\n\texcelCellPos : function ( n ){\n\t\tvar ordA = 'A'.charCodeAt(0),\n\t\tordZ = 'Z'.charCodeAt(0),\n\t\tlen = ordZ - ordA + 1,\n\t\ts = \"\";\n\n\t\twhile( n >= 0 ) {\n\t\t\ts = String.fromCharCode(n % len + ordA) + s;\n\t\t\tn = Math.floor(n / len) - 1;\n\t\t}\n\n\t\treturn s;\n\t},\n\n\tmakeNode : function ( root, elemName, options ) {\n\t\tvar currNode = root.createElement( elemName );\n\n\t\tif ( options ) {\n\t\t\tif ( options.attr ) {\n\t\t\t\t$(currNode).attr( options.attr );\n\t\t\t}\n\t\t\tif( options.children ) {\n\t\t\t\t$.each( options.children, function ( key, value ) {\n\t\t\t\t\tcurrNode.appendChild( value );\n\t\t\t\t});\n\t\t\t}\n\t\t\tif( options.text ) {\n\t\t\t\tcurrNode.appendChild( root.createTextNode( options.text ) );\n\t\t\t}\n\t\t}\n\t\treturn currNode;\n\t},\n\txmlToZip : function ( zip, obj ) {\n\t\tvar $t = this,\n\t\txmlserialiser = new XMLSerializer(),\n\t\t// IE >= 9\n\t\tieExcel = xmlserialiser.serializeToString(\t\n\t\t\t$.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) )\n\t\t\t.indexOf( 'xmlns:r' ) === -1,\n\t\tnewDir, worksheet, i, ien, attr, attrs = [], str;\n\n\t\t$.each( obj, function ( name, val ) {\n\t\t\tif ( $.isPlainObject( val ) ) {\n\t\t\t\tnewDir = zip.folder( name );\n\t\t\t\t$t.xmlToZip( newDir, val );\n\t\t\t} else {\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tworksheet = val.childNodes[0];\n\t\t\t\t\tfor ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {\n\t\t\t\t\t\tvar attrName = worksheet.attributes[i].nodeName;\n\t\t\t\t\t\tvar attrValue = worksheet.attributes[i].nodeValue;\n\n\t\t\t\t\t\tif ( attrName.indexOf( ':' ) !== -1 ) {\n\t\t\t\t\t\t\tattrs.push( { name: attrName, value: attrValue } );\n\n\t\t\t\t\t\t\tworksheet.removeAttribute( attrName );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( i=0, ien=attrs.length ; i<ien ; i++ ) {\n\t\t\t\t\t\tattr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );\n\t\t\t\t\t\tattr.value = attrs[i].value;\n\t\t\t\t\t\tworksheet.setAttributeNode( attr );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// suuport of all browsers\n\t\t\t\tstr = xmlserialiser.serializeToString(val);\n\t\t\t\t// Fix IE's XML\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tif ( str.indexOf( '<?xml' ) === -1 ) {\n\t\t\t\t\t\tstr = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+str;\n\t\t\t\t\t}\n\t\t\t\t\tstr = str.replace( /_dt_b_namespace_token_/g, ':' );\n\t\t\t\t}\n\n\t\t\t\tstr = str\n\t\t\t\t\t.replace( /<row xmlns=\"\" /g, '<row ' )\n\t\t\t\t\t.replace( /<cols xmlns=\"\">/g, '<cols>' )\n\t\t\t\t\t.replace( /<mergeCells xmlns=\"\" /g, '<mergeCells ' );\n\n\t\t\t\tzip.file( name, str );\n\t\t\t}\n\t\t} );\n\t},\n\t// Excel - Pre-defined strings to build a basic XLSX file\n\texcelStrings  : {\n\t\t\"_rels/.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"xl/_rels/workbook.xml.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>'+\n\t\t\t\t'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"[Content_Types].xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">'+\n\t\t\t\t'<Default Extension=\"xml\" ContentType=\"application/xml\" />'+\n\t\t\t\t'<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />'+\n\t\t\t\t'<Default Extension=\"jpeg\" ContentType=\"image/jpeg\" />'+\n\t\t\t\t'<Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" />'+\n\t\t\t'</Types>',\n\n\t\t\"xl/workbook.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">'+\n\t\t\t\t'<fileVersion appName=\"xl\" lastEdited=\"5\" lowestEdited=\"5\" rupBuild=\"24816\"/>'+\n\t\t\t\t'<workbookPr showInkAnnotation=\"0\" autoCompressPictures=\"0\"/>'+\n\t\t\t\t'<bookViews>'+\n\t\t\t\t\t'<workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"25600\" windowHeight=\"19020\" tabRatio=\"500\"/>'+\n\t\t\t\t'</bookViews>'+\n\t\t\t\t'<sheets>'+\n\t\t\t\t\t'<sheet name=\"\" sheetId=\"1\" r:id=\"rId1\"/>'+\n\t\t\t\t'</sheets>'+\n\t\t\t'</workbook>',\n\n\t\t\"xl/worksheets/sheet1.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<sheetData/>'+\n\t\t\t'</worksheet>',\n\n\t\t\"xl/styles.xml\": \n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\"?>'+\n\t\t\t'<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<fonts count=\"5\" x14ac:knownFonts=\"1\">'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<color rgb=\"FFFFFFFF\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<b />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<i />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<u />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t'</fonts>'+\n\t\t\t\t'<fills count=\"6\">'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"none\" />'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill/>'+ \n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD9D9D9\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD99795\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6efce\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6cfef\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t'</fills>'+\n\t\t\t\t'<borders count=\"2\">'+\n\t\t\t\t\t'<border>'+\n\t\t\t\t\t\t'<left />'+\n\t\t\t\t\t\t'<right />'+\n\t\t\t\t\t\t'<top />'+\n\t\t\t\t\t\t'<bottom />'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t\t'<border diagonalUp=\"false\" diagonalDown=\"false\">'+\n\t\t\t\t\t\t'<left style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</left>'+\n\t\t\t\t\t\t'<right style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</right>'+\n\t\t\t\t\t\t'<top style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</top>'+\n\t\t\t\t\t\t'<bottom style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</bottom>'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t'</borders>'+\n\t\t\t\t'<cellStyleXfs count=\"1\">'+\n\t\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" />'+\n\t\t\t\t'</cellStyleXfs>'+\n\t\t\t\t'<cellXfs count=\"2\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'</cellXfs>'+\n\t\t\t\t'<cellStyles count=\"1\">'+\n\t\t\t\t\t'<cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\" />'+\n\t\t\t\t'</cellStyles>'+\n\t\t\t\t'<dxfs count=\"0\" />'+\n\t\t\t\t'<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\" />'+\n\t\t\t'</styleSheet>'\n\t}\n\t\n});\n/******************************************************************** \n*\n* due to speed, every export method will have separate module\n* to collect grouped data\n*\n*********************************************************************/\n$.jgrid.extend({\n\texportToCsv : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tseparator: \",\",\n\t\t\tseparatorReplace : \" \",\n\t\t\tquote : '\"', \n\t\t\tescquote : '\"', \n\t\t\tnewLine : \"\\r\\n\", // navigator.userAgent.match(/Windows/) ?\t'\\r\\n' : '\\n';\n\t\t\treplaceNewLine : \" \",\n\t\t\tincludeCaption : true,\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.csv\",\n\t\t\tmimetype : \"text/csv;charset=utf-8\",\n\t\t\treturnAsString : false\n\t\t}, p || {});\n\t\tvar ret =\"\";\n\t\tthis.each(function(){\n\n\t\t\tp._regexsep = new RegExp(p.separator, \"g\");\n\t\t\tp._regexquot = new RegExp(p.quote, \"g\");\n\t\t\t\t\t\t\n\t\t\tvar $t = this,\n\t\t\t// get the filtered data\n\t\t\tdata1 = this.addLocalData( true ), \n\t\t\tdlen = data1.length,\n\t\t\tcm = $t.p.colModel,\n\t\t\tcmlen = cm.length,\n\t\t\ti, j=0, row, str = '' , tmp, k,\n\t\t\tcap = \"\", hdr = \"\", ftr=\"\",\tlbl=\"\", albl=[], restorevis = [];\n\t\t\tfunction groupToCsv (grdata, p) {\n\t\t\t\tvar str=\"\",\n\t\t\t\tgrp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0;\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[j] = \n\t\t\t\t\t\t\t\t\t$.jgrid.formatCellCsv(\n\t\t\t\t\t\t\t\t\t$.jgrid.stripHtml( \n\t\t\t\t\t\t\t\t\t$.jgrid.template(tplfld,vv) \n\t\t\t\t\t\t\t\t\t), p ) ;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv, k;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = new Array(p.collen);\n\t\t\t\t\t}\n\t\t\t\t\tarr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p);\n\t\t\t\t\tstr +=  arr.join( p.separator ) + p.newLine;\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tto = grdata[kk - offset];\n\t\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t\tfor(ik = 0; ik < cm.length; ik++) {\n\t\t\t\t\t\t\t\tif(!cm[ik].hidden) {\n\t\t\t\t\t\t\t\t\tarr[k] = $.jgrid.formatCellCsv( \n\t\t\t\t\t\t\t\t\t\t$.jgrid.formatCell( to[cm[ik].name], ik, to, cm[ik], $t ) , p);\n\t\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn str;\n\t\t\t}\n\n\t\t\t// end group function\n\t\t\tvar def = {}, key;\n\t\t\t$.each(cm,function(i,n) {\n\t\t\t\tif((n.name === 'cb' || n.name === 'rn') && !n.hidden) {\n\t\t\t\t\trestorevis.push(i);\n\t\t\t\t\tn.hidden = true;\n\t\t\t\t}\n\t\t\t\tif(!n.hidden) {\n\t\t\t\t\talbl.push( $.jgrid.formatCellCsv( n.label || n.name, p) );\n\t\t\t\t\tdef[n.name] = n.label || n.name;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tif(p.includeLabels) {\n\t\t\t\tlbl = albl.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\t\n\t\t\tp.collen = albl.length;\n\t\t\t\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\t\n\t\t\t\tstr += groupToCsv(data1, p);\n\t\t\t\t\n\t\t\t}  else {\n\t\t\t\twhile(j < dlen) {\n\t\t\t\t\trow = data1[j];\n\t\t\t\t\ttmp = [];\n\t\t\t\t\tk =0;\n\t\t\t\t\tfor(i = 0; i < cmlen; i++) {\n\t\t\t\t\t\tif(!cm[i].hidden) {\n\t\t\t\t\t\t\ttmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t ), p );\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tstr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata1 = null; // free\n\t\t\t// get the column length.\n\t\t\ttmp = new Array(p.collen);\n\t\t\tif(p.includeCaption && $t.p.caption) {\n\t\t\t\tj=p.collen;\n\t\t\t\twhile(--j) {tmp[j]=\"\";}\n\t\t\t\ttmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p );\n\t\t\t\tcap += tmp.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\tif(p.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders;\n\t\t\t\t\tj = 0; tmp = [];\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttmp[j] = '';\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\ttmp[j]= ghdata[k].titleText;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\thdr += tmp.join( p.separator ) + p.newLine;\n \t\t\t\t}\n\t\t\t}\n\t\t\tif(p.includeFooter && $t.p.footerrow) {\n\t\t\t\t// already formated\n\t\t\t\tvar foot = $(\".ui-jqgrid-ftable\", this.sDiv);\n\t\t\t\tif(foot.length) {\n\t\t\t\t\tvar frows = foot[0].rows[0];\n\t\t\t\t\ti=0;j=0; tmp=[];\n\t\t\t\t\twhile(i < frows.cells.length){\n\t\t\t\t\t\tvar fc = frows.cells[i],\n\t\t\t\t\t\tcoln = $(fc).attr('aria-describedby').slice(-3);\n\t\t\t\t\t\tif(!fc.hidden && coln !== '_cb' && coln !== '_rn' ) {\n\t\t\t\t\t\t\ttmp[j] = $.jgrid.formatCellCsv( $(fc).text(), p );\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tftr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t}\n\t\t\t}\n\t\t\tret = cap + hdr + lbl + str + ftr;\n\t\t\t\n\t\t\tfor(i=0;i<restorevis.length;i++) {\n\t\t\t\tcm[restorevis[i]].hidden = false;\n\t\t\t}\n\t\t});\n\t\tif (p.returnAsString) {\n\t\t\treturn ret;\n\t\t} else {\n\t\t\tjqGridUtils.saveAs( ret, p.fileName, { type : p.mimetype });\n\t\t}\n\t},\n\t/*\n\t * \n\t * @param object o - settings for the export\n\t * @returns excel 2007 document\n\t * The method requiere jsZip lib in order to create excel document\n\t */\n\texportToExcel : function ( o ) {\n\t\to = $.extend(true, {\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.xlsx\",\n\t\t\tmimetype : \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n\t\t\tmaxlength : 40 // maxlength for visible string data \n\t\t}, o || {} );\n\t\tthis.each(function() {\n\t\t\tvar $t = this,\n\t\t\tes = $.jgrid.excelStrings,\n\t\t\trowPos = 0,\n\t\t\trels = $.parseXML( es['xl/worksheets/sheet1.xml']),\n\t\t\trelsGet = rels.getElementsByTagName( \"sheetData\" )[0],\n\t\t\txlsx = {\n\t\t\t\t_rels: {\n\t\t\t\t\t\".rels\": $.parseXML( es['_rels/.rels'])\n\t\t\t\t},\n\t\t\t\txl: {\n\t\t\t\t\t_rels: {\n\t\t\t\t\t\t\"workbook.xml.rels\": $.parseXML( es['xl/_rels/workbook.xml.rels'])\n\t\t\t\t\t},\n\t\t\t\t\t\"workbook.xml\": $.parseXML( es['xl/workbook.xml']),\n\t\t\t\t\t\"styles.xml\": $.parseXML( es['xl/styles.xml']),\n\t\t\t\t\t\"worksheets\": {\n\t\t\t\t\t\t\"sheet1.xml\": rels\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"[Content_Types].xml\": $.parseXML( es['[Content_Types].xml'])\n\t\t\t},\n\t\t\tcm = $t.p.colModel,\n\t\t\ti=0, j, ien, obj={},\n\t\t\tdata = { \n\t\t\t\tbody  : $t.addLocalData( true ),\n\t\t\t\theader : [],\n\t\t\t\tfooter : [],\n\t\t\t\twidth : [],\n\t\t\t\tmap : [] \n\t\t\t};\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj[ cm[j].name ] = cm[j].label || cm[j].name;\n\t\t\t\tdata.width[ i ] = 5;\n\t\t\t\tdata.map[i] = j;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tdata.header.push( obj );\n\t\t\tvar currentRow, rowNode,\n\t\t\taddRow = function ( row, header ) {\n\t\t\t\tcurrentRow = rowPos+1;\n\t\t\t\trowNode = $.jgrid.makeNode( rels, \"row\", { attr: {r:currentRow} } );\n\t\t\t\tvar i=0;\n\t\t\t\tfor ( var key  in data.header[0]) {\n\t\t\t\t\tif(!data.header[0].hasOwnProperty( key )) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t// key = cm[i].name;\n\t\t\t\t\t// Concat both the Cell Columns as a letter and the Row of the cell.\n\t\t\t\t\tvar cellId = $.jgrid.excelCellPos(i) + '' + currentRow,\n\t\t\t\t\tcell,\n\t\t\t\t\tv= row[key];\n\t\t\t\t\tif ( v == null ) {\n\t\t\t\t\t\tv = '';\n\t\t\t\t\t}\n\t\t\t\t\tif(!header) {\n\t\t\t\t\t\tv = v !== '' ? $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t) : v;\n\t\t\t\t\t}\n\t\t\t\t\tdata.width[i] = Math.max(data.width[i], Math.min(parseInt(v.length,10), o.maxlength) );\n\t\t\t\t\t// Detect numbers - don't match numbers with leading zeros or a negative\n\t\t\t\t\t// anywhere but the start\n\t\t\t\t\t// $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t )\n\t\t\t\t\tif ( typeof v === 'number' || (\n\t\t\t\t\t\t\tv.match &&\n\t\t\t\t\t\t\t$.trim(v).match(/^-?\\d+(\\.\\d+)?$/) &&\n\t\t\t\t\t\t\t! $.trim(v).match(/^0\\d+/) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'n',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t$.jgrid.makeNode( rels, 'v', { text: v } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Replace non standard characters for text output\n\t\t\t\t\t\tvar text = ! v.replace ?\n\t\t\t\t\t\t\tv :\n\t\t\t\t\t\t\t$.jgrid.htmlEncode (v );\n\t\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'inlineStr',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren:{\n\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 'is', {\n\t\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 't', {\n\t\t\t\t\t\t\t\t\t\t\ttext: text\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\trowNode.appendChild( cell );\n\t\t\t\t}\n\t\t\t\trelsGet.appendChild(rowNode);\n\t\t\t\trowPos++;\n\t\t\t};\n//=========================================================================\t\t\t\n\t\t\tfunction groupToExcel ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\t\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(data.header[0]);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(data.header[0]);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\taddRow( to, false );\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\t\n\t\t\t$( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName );\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader, mergecell=[];\n\t\t\t\tvar mrow = 0;\n\t\t\t\tfor (i=0;i<gh.length;i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders, clone ={};\n\t\t\t\t\tj=0; mrow++;\n\t\t\t\t\tfor(var key in data.header[0] ) {\n\t\t\t\t\t\tif(!data.header[0].hasOwnProperty(key)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\tfor(var k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tclone[key] = ghdata[k].titleText;\n\t\t\t\t\t\t\t\tvar start = $.jgrid.excelCellPos(j) + mrow,\n\t\t\t\t\t\t\t\t\tend = $.jgrid.excelCellPos(j+ghdata[k].numberOfColumns -1) + mrow;\n\t\t\t\t\t\t\t\tmergecell.push({ ref: start+\":\"+end });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\taddRow( clone, true );\n \t\t\t\t}\n\t\t\t\tvar merge = $.jgrid.makeNode( rels, 'mergeCells', {\n\t\t\t\t\tattr : {\n\t\t\t\t\t\tcount : mergecell.length\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$('worksheet', rels).append( merge );\n\t\t\t\tfor(i=0;i<mergecell.length;i++) {\n\t\t\t\t\tmerge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{ \n\t\t\t\t\t\tattr:  mergecell[i]\n\t\t\t\t\t}));\n\t\t\t\t}\t\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeLabels ) {\n\t\t\t\taddRow( data.header[0], true );\n\t\t\t\t$('row c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\tgroupToExcel(data.body);\n\t\t\t} else {\n\t\t\t\tfor ( var n=0, ie=data.body.length ; n<ie ; n++ ) {\n\t\t\t\t\taddRow( data.body[n], false );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( o.includeFooter || $t.p.footerrow) {\n\t\t\t\tdata.footer = $($t).jqGrid('footerData', 'get');\n\t\t\t\tfor( i in data.footer) {\n\t\t\t\t\tif(data.footer.hasOwnProperty(i)) {\n\t\t\t\t\t\tdata.footer[i] = $.jgrid.stripHtml(data.footer[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\taddRow( data.footer, true );\n\t\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\t\n\t\t\t// Set column widths\n\t\t\tvar cols = $.jgrid.makeNode( rels, 'cols' );\n\t\t\t$('worksheet', rels).prepend( cols );\n\n\t\t\tfor ( i=0, ien=data.width.length ; i<ien ; i++ ) {\n\t\t\t\tcols.appendChild( $.jgrid.makeNode( rels, 'col', {\n\t\t\t\t\tattr: {\n\t\t\t\t\t\tmin: i+1,\n\t\t\t\t\t\tmax: i+1,\n\t\t\t\t\t\twidth: data.width[i],\n\t\t\t\t\t\tcustomWidth: 1\n\t\t\t\t\t}\n\t\t\t\t} ) );\n\t\t\t}\n\t\t\tdata = null; // free memory\n\t\t\ttry {\n\t\t\t\tvar zip = new JSZip();\n\t\t\t\tvar zipConfig = {\n\t\t\t\t\ttype: 'blob',\n\t\t\t\t\tmimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t};\n\t\t\t\t$.jgrid.xmlToZip( zip, xlsx );\n\t\t\t\t\tif ( zip.generateAsync ) {\n\t\t\t\t\t// JSZip 3+\n\t\t\t\t\tzip\n\t\t\t\t\t\t.generateAsync( zipConfig )\n\t\t\t\t\t\t.then( function ( blob ) {\n\t\t\t\t\t\t\tjqGridUtils.saveAs( blob, o.fileName, { type : o.mimetype } );\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// JSZip 2.5\n\t\t\t\t\tjqGridUtils.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } );\t\t\t\t}\n\t\t\t}\n\t\t\tcatch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t},\n\texportToPdf : function (o) {\n\t\to = $.extend(true,{\n\t\t\ttitle: null,\n\t\t\torientation: 'portrait',\n\t\t\tpageSize: 'A4',\n\t\t\tdescription: null,\n\t\t\tcustomSettings: null,\n\t\t\tdownload: 'download',\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.pdf\",\n\t\t\tmimetype : \"application/pdf\"\n\t\t\t\n\t\t}, o || {} );\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key, \n\t\t\tdata = $t.addLocalData( true ), def = {}, i=0, map=[], test=[], widths = [],  align={};\n// Group function\t\t\t\n\t\t\tfunction groupToPdf ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tfunction constructRow( row, fmt ) {\n\t\t\t\t\tvar k =0, test=[];\n\t\t\t\t\t//row = data[i];\n\t\t\t\t\tfor( var key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif(def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj = {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : (fmt ? $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t) : row[key]),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn test;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(def);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(def);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\trows.push( constructRow (to, true) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\tvar k;\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj = { text:  cm[j].label || cm[j].name, style: 'tableHeader' };\n\t\t\t\ttest.push( obj );\n\t\t\t\tdef[cm[j].name]  = cm[j].label || cm[j].name;\n\t\t\t\tmap[i] = j;\n\t\t\t\twidths.push(cm[j].width); \n\t\t\t\talign[cm[j].name] = cm[j].align || 'left';\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tvar gh;\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tgh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar clone = [],\n\t\t\t\t\tghdata = gh[i].groupHeaders;\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tobj = {text:'', style: 'tableHeader'};\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tobj = { \n\t\t\t\t\t\t\t\t\ttext : ghdata[k].titleText, \n\t\t\t\t\t\t\t\t\tcolSpan: ghdata[k].numberOfColumns,\n\t\t\t\t\t\t\t\t\tstyle: 'tableHeader'\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone.push(obj);\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\trows.push(clone);\n \t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif(o.includeLabels) {\n\t\t\t\trows.push( test );\n\t\t\t}\n\t\t\tif($t.p.grouping) {\n\t\t\t\tgroupToPdf(data);\n\t\t\t} else {\n\t\t\t\tvar row;\n\t\t\t\tfor ( i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\t\tk =0; \n\t\t\t\t\ttest=[];\n\t\t\t\t\trow = data[i];\n\t\t\t\t\tfor( key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif( def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj\t= {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trows.push(test);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeFooter && $t.p.footerrow) {\n\t\t\t\tvar fdata = $($t).jqGrid('footerData', 'get');\n\t\t\t\ttest=[];\n\t\t\t\tfor( key in def) {\n\t\t\t\t\tif(def.hasOwnProperty(key) ) {\n\t\t\t\t\t\tobj  =  {\n\t\t\t\t\t\t\ttext : $.jgrid.stripHtml(fdata[key]),\n\t\t\t\t\t\t\tstyle : 'tableFooter',\n\t\t\t\t\t\t\talignment : align[key]\n\t\t\t\t\t\t};\n\t\t\t\t\t\ttest.push( obj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trows.push( test );\n\t\t\t}\n\n\t\t\tvar doc = {\n\t\t\t\tpageSize: o.pageSize,\n\t\t\t\tpageOrientation: o.orientation,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\tstyle : 'tableExample',\n\t\t\t\t\t\twidths : widths,\n\t\t\t\t\t\ttable: {\n\t\t\t\t\t\t\theaderRows: (gh!=null) ? 0 : 1,\n\t\t\t\t\t\t\tbody: rows\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tstyles: {\n\t\t\t\t\ttableHeader: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc',\n\t\t\t\t\t\talignment: 'center'\n\t\t\t\t\t},\n\t\t\t\t\ttableBody: {\n\t\t\t\t\t\tfontSize: 10\n\t\t\t\t\t},\n\t\t\t\t\ttableFooter: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc'\n\t\t\t\t\t},\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\talignment: 'center',\n\t\t\t\t\t\tfontSize: 15\n\t\t\t\t\t},\n\t\t\t\t\tdescription: {}\n\t\t\t\t},\n\t\t\t\tdefaultStyle: {\n\t\t\t\t\tfontSize: 10\n\t\t\t\t}\n\t\t\t};\n\t\t\tif ( o.description ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.description,\n\t\t\t\t\tstyle: 'description',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( o.title ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.title,\n\t\t\t\t\tstyle: 'title',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif( o. customSettings ) {\n\t\t\t\to.customSettings.call($t, doc);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvar pdf = pdfMake.createPdf( doc );\n\t\t\t\tif ( o.download === 'open' ) {\n\t\t\t\t\tpdf.open();\n\t\t\t\t} else {\n\t\t\t\t\tpdf.getBuffer( function (buffer) {\n\t\t\t\t\t\tjqGridUtils.saveAs( buffer, o.fileName, {type: o.mimetype } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jquery.sortable.js",
    "content": "/*\n * \n * HTML5 Sortable jQuery Plugin\n * \n * Original code Copyright 2012 Ali Farhadi.\n *\n * This version is maintained by Tony Tomov <tony@trirand.com>\n * \n * Released under the MIT license.\n */\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} (function( $ ) {\n\"use strict\";\n//module begin\nvar dragging, placeholders = $();\n$.fn.html5sortable = function(options) {\n\tvar method = String(options);\n\toptions = $.extend({\n\t\tconnectWith: false\n\t}, options);\n\treturn this.each(function() {\n\t\tif (/^enable|disable|destroy$/.test(method)) {\n\t\t\tvar items = $(this).children($(this).data('items')).attr('draggable', method === 'enable');\n\t\t\tif (method === 'destroy') {\n\t\t\t\titems.add(this).removeData('connectWith items')\n\t\t\t\t\t.off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tvar isHandle, index, items = $(this).children(options.items);\n\t\tvar placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div')\n            + ' class=\"sortable-placeholder ' + options.placeholderClass + '\">').html('&nbsp;');\n        items.find(options.handle).mousedown(function() {\n\t\t\tisHandle = true;\n\t\t}).mouseup(function() {\n\t\t\tisHandle = false;\n\t\t});\n\t\t$(this).data('items', options.items);\n\t\tplaceholders = placeholders.add(placeholder);\n\t\tif (options.connectWith) {\n\t\t\t$(options.connectWith).add(this).data('connectWith', options.connectWith);\n\t\t}\n\t\titems.attr('draggable', 'true').on('dragstart.h5s', function(e) {\n\t\t\tif (options.handle && !isHandle) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tisHandle = false;\n\t\t\tvar dt = e.originalEvent.dataTransfer;\n\t\t\tdt.effectAllowed = 'move';\n\t\t\tdt.setData('Text', 'dummy');\n\t\t\tindex = (dragging = $(this)).addClass('sortable-dragging').index();\n\t\t}).on('dragend.h5s', function() {\n\t\t\tif (!dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdragging.removeClass('sortable-dragging').show();\n\t\t\tplaceholders.detach();\n\t\t\tif (index !== dragging.index()) {\n\t\t\t\tdragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()});\n\t\t\t}\n\t\t\tdragging = null;\n\t\t}).not('a[href], img').on('selectstart.h5s', function() {\n\t\t\tthis.dragDrop && this.dragDrop();\n\t\t\treturn false;\n\t\t}).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) {\n\t\t\tif (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (e.type === 'drop') {\n\t\t\t\te.stopPropagation();\n\t\t\t\tplaceholders.filter(':visible').after(dragging);\n\t\t\t\tdragging.trigger('dragend.h5s');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.originalEvent.dataTransfer.dropEffect = 'move';\n\t\t\tif (items.is(this)) {\n\t\t\t\tif (options.forcePlaceholderSize) {\n\t\t\t\t\tplaceholder.height(dragging.outerHeight());\n\t\t\t\t}\n\t\t\t\tdragging.hide();\n\t\t\t\t$(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder);\n\t\t\t\tplaceholders.not(placeholder).detach();\n\t\t\t} else if (!placeholders.is(this) && !$(this).children(options.items).length) {\n\t\t\t\tplaceholders.detach();\n\t\t\t\t$(this).append(placeholder);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t});\n};\n//module end\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap/css/bootstrap.css",
    "content": "@charset \"UTF-8\";\n/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  font-family: sans-serif;\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block; }\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline; }\n\naudio:not([controls]) {\n  display: none;\n  height: 0; }\n\n[hidden],\ntemplate {\n  display: none; }\n\na {\n  background-color: transparent; }\n\na:active,\na:hover {\n  outline: 0; }\n\nabbr[title] {\n  border-bottom: 1px dotted; }\n\nb,\nstrong {\n  font-weight: bold; }\n\ndfn {\n  font-style: italic; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nmark {\n  background: #ff0;\n  color: #000; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsup {\n  top: -0.5em; }\n\nsub {\n  bottom: -0.25em; }\n\nimg {\n  border: 0; }\n\nsvg:not(:root) {\n  overflow: hidden; }\n\nfigure {\n  margin: 1em 40px; }\n\nhr {\n  box-sizing: content-box;\n  height: 0; }\n\npre {\n  overflow: auto; }\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  font: inherit;\n  margin: 0; }\n\nbutton {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer; }\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default; }\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0; }\n\ninput {\n  line-height: normal; }\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  box-sizing: content-box; }\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em; }\n\nlegend {\n  border: 0;\n  padding: 0; }\n\ntextarea {\n  overflow: auto; }\n\noptgroup {\n  font-weight: bold; }\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0; }\n\ntd,\nth {\n  padding: 0; }\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n  *,\n  *:before,\n  *:after {\n    background: transparent !important;\n    color: #000 !important;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\"; }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .navbar {\n    display: none; }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important; }\n  .label {\n    border: 1px solid #000; }\n  .table {\n    border-collapse: collapse !important; }\n    .table td,\n    .table th {\n      background-color: #fff !important; }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important; } }\n\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url(\"../fonts/bootstrap/glyphicons-halflings-regular.eot\");\n  src: url(\"../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\"); }\n\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\n.glyphicon-asterisk:before {\n  content: \"\\002a\"; }\n\n.glyphicon-plus:before {\n  content: \"\\002b\"; }\n\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"\\20ac\"; }\n\n.glyphicon-minus:before {\n  content: \"\\2212\"; }\n\n.glyphicon-cloud:before {\n  content: \"\\2601\"; }\n\n.glyphicon-envelope:before {\n  content: \"\\2709\"; }\n\n.glyphicon-pencil:before {\n  content: \"\\270f\"; }\n\n.glyphicon-glass:before {\n  content: \"\\e001\"; }\n\n.glyphicon-music:before {\n  content: \"\\e002\"; }\n\n.glyphicon-search:before {\n  content: \"\\e003\"; }\n\n.glyphicon-heart:before {\n  content: \"\\e005\"; }\n\n.glyphicon-star:before {\n  content: \"\\e006\"; }\n\n.glyphicon-star-empty:before {\n  content: \"\\e007\"; }\n\n.glyphicon-user:before {\n  content: \"\\e008\"; }\n\n.glyphicon-film:before {\n  content: \"\\e009\"; }\n\n.glyphicon-th-large:before {\n  content: \"\\e010\"; }\n\n.glyphicon-th:before {\n  content: \"\\e011\"; }\n\n.glyphicon-th-list:before {\n  content: \"\\e012\"; }\n\n.glyphicon-ok:before {\n  content: \"\\e013\"; }\n\n.glyphicon-remove:before {\n  content: \"\\e014\"; }\n\n.glyphicon-zoom-in:before {\n  content: \"\\e015\"; }\n\n.glyphicon-zoom-out:before {\n  content: \"\\e016\"; }\n\n.glyphicon-off:before {\n  content: \"\\e017\"; }\n\n.glyphicon-signal:before {\n  content: \"\\e018\"; }\n\n.glyphicon-cog:before {\n  content: \"\\e019\"; }\n\n.glyphicon-trash:before {\n  content: \"\\e020\"; }\n\n.glyphicon-home:before {\n  content: \"\\e021\"; }\n\n.glyphicon-file:before {\n  content: \"\\e022\"; }\n\n.glyphicon-time:before {\n  content: \"\\e023\"; }\n\n.glyphicon-road:before {\n  content: \"\\e024\"; }\n\n.glyphicon-download-alt:before {\n  content: \"\\e025\"; }\n\n.glyphicon-download:before {\n  content: \"\\e026\"; }\n\n.glyphicon-upload:before {\n  content: \"\\e027\"; }\n\n.glyphicon-inbox:before {\n  content: \"\\e028\"; }\n\n.glyphicon-play-circle:before {\n  content: \"\\e029\"; }\n\n.glyphicon-repeat:before {\n  content: \"\\e030\"; }\n\n.glyphicon-refresh:before {\n  content: \"\\e031\"; }\n\n.glyphicon-list-alt:before {\n  content: \"\\e032\"; }\n\n.glyphicon-lock:before {\n  content: \"\\e033\"; }\n\n.glyphicon-flag:before {\n  content: \"\\e034\"; }\n\n.glyphicon-headphones:before {\n  content: \"\\e035\"; }\n\n.glyphicon-volume-off:before {\n  content: \"\\e036\"; }\n\n.glyphicon-volume-down:before {\n  content: \"\\e037\"; }\n\n.glyphicon-volume-up:before {\n  content: \"\\e038\"; }\n\n.glyphicon-qrcode:before {\n  content: \"\\e039\"; }\n\n.glyphicon-barcode:before {\n  content: \"\\e040\"; }\n\n.glyphicon-tag:before {\n  content: \"\\e041\"; }\n\n.glyphicon-tags:before {\n  content: \"\\e042\"; }\n\n.glyphicon-book:before {\n  content: \"\\e043\"; }\n\n.glyphicon-bookmark:before {\n  content: \"\\e044\"; }\n\n.glyphicon-print:before {\n  content: \"\\e045\"; }\n\n.glyphicon-camera:before {\n  content: \"\\e046\"; }\n\n.glyphicon-font:before {\n  content: \"\\e047\"; }\n\n.glyphicon-bold:before {\n  content: \"\\e048\"; }\n\n.glyphicon-italic:before {\n  content: \"\\e049\"; }\n\n.glyphicon-text-height:before {\n  content: \"\\e050\"; }\n\n.glyphicon-text-width:before {\n  content: \"\\e051\"; }\n\n.glyphicon-align-left:before {\n  content: \"\\e052\"; }\n\n.glyphicon-align-center:before {\n  content: \"\\e053\"; }\n\n.glyphicon-align-right:before {\n  content: \"\\e054\"; }\n\n.glyphicon-align-justify:before {\n  content: \"\\e055\"; }\n\n.glyphicon-list:before {\n  content: \"\\e056\"; }\n\n.glyphicon-indent-left:before {\n  content: \"\\e057\"; }\n\n.glyphicon-indent-right:before {\n  content: \"\\e058\"; }\n\n.glyphicon-facetime-video:before {\n  content: \"\\e059\"; }\n\n.glyphicon-picture:before {\n  content: \"\\e060\"; }\n\n.glyphicon-map-marker:before {\n  content: \"\\e062\"; }\n\n.glyphicon-adjust:before {\n  content: \"\\e063\"; }\n\n.glyphicon-tint:before {\n  content: \"\\e064\"; }\n\n.glyphicon-edit:before {\n  content: \"\\e065\"; }\n\n.glyphicon-share:before {\n  content: \"\\e066\"; }\n\n.glyphicon-check:before {\n  content: \"\\e067\"; }\n\n.glyphicon-move:before {\n  content: \"\\e068\"; }\n\n.glyphicon-step-backward:before {\n  content: \"\\e069\"; }\n\n.glyphicon-fast-backward:before {\n  content: \"\\e070\"; }\n\n.glyphicon-backward:before {\n  content: \"\\e071\"; }\n\n.glyphicon-play:before {\n  content: \"\\e072\"; }\n\n.glyphicon-pause:before {\n  content: \"\\e073\"; }\n\n.glyphicon-stop:before {\n  content: \"\\e074\"; }\n\n.glyphicon-forward:before {\n  content: \"\\e075\"; }\n\n.glyphicon-fast-forward:before {\n  content: \"\\e076\"; }\n\n.glyphicon-step-forward:before {\n  content: \"\\e077\"; }\n\n.glyphicon-eject:before {\n  content: \"\\e078\"; }\n\n.glyphicon-chevron-left:before {\n  content: \"\\e079\"; }\n\n.glyphicon-chevron-right:before {\n  content: \"\\e080\"; }\n\n.glyphicon-plus-sign:before {\n  content: \"\\e081\"; }\n\n.glyphicon-minus-sign:before {\n  content: \"\\e082\"; }\n\n.glyphicon-remove-sign:before {\n  content: \"\\e083\"; }\n\n.glyphicon-ok-sign:before {\n  content: \"\\e084\"; }\n\n.glyphicon-question-sign:before {\n  content: \"\\e085\"; }\n\n.glyphicon-info-sign:before {\n  content: \"\\e086\"; }\n\n.glyphicon-screenshot:before {\n  content: \"\\e087\"; }\n\n.glyphicon-remove-circle:before {\n  content: \"\\e088\"; }\n\n.glyphicon-ok-circle:before {\n  content: \"\\e089\"; }\n\n.glyphicon-ban-circle:before {\n  content: \"\\e090\"; }\n\n.glyphicon-arrow-left:before {\n  content: \"\\e091\"; }\n\n.glyphicon-arrow-right:before {\n  content: \"\\e092\"; }\n\n.glyphicon-arrow-up:before {\n  content: \"\\e093\"; }\n\n.glyphicon-arrow-down:before {\n  content: \"\\e094\"; }\n\n.glyphicon-share-alt:before {\n  content: \"\\e095\"; }\n\n.glyphicon-resize-full:before {\n  content: \"\\e096\"; }\n\n.glyphicon-resize-small:before {\n  content: \"\\e097\"; }\n\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\"; }\n\n.glyphicon-gift:before {\n  content: \"\\e102\"; }\n\n.glyphicon-leaf:before {\n  content: \"\\e103\"; }\n\n.glyphicon-fire:before {\n  content: \"\\e104\"; }\n\n.glyphicon-eye-open:before {\n  content: \"\\e105\"; }\n\n.glyphicon-eye-close:before {\n  content: \"\\e106\"; }\n\n.glyphicon-warning-sign:before {\n  content: \"\\e107\"; }\n\n.glyphicon-plane:before {\n  content: \"\\e108\"; }\n\n.glyphicon-calendar:before {\n  content: \"\\e109\"; }\n\n.glyphicon-random:before {\n  content: \"\\e110\"; }\n\n.glyphicon-comment:before {\n  content: \"\\e111\"; }\n\n.glyphicon-magnet:before {\n  content: \"\\e112\"; }\n\n.glyphicon-chevron-up:before {\n  content: \"\\e113\"; }\n\n.glyphicon-chevron-down:before {\n  content: \"\\e114\"; }\n\n.glyphicon-retweet:before {\n  content: \"\\e115\"; }\n\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\"; }\n\n.glyphicon-folder-close:before {\n  content: \"\\e117\"; }\n\n.glyphicon-folder-open:before {\n  content: \"\\e118\"; }\n\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\"; }\n\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\"; }\n\n.glyphicon-hdd:before {\n  content: \"\\e121\"; }\n\n.glyphicon-bullhorn:before {\n  content: \"\\e122\"; }\n\n.glyphicon-bell:before {\n  content: \"\\e123\"; }\n\n.glyphicon-certificate:before {\n  content: \"\\e124\"; }\n\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\"; }\n\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\"; }\n\n.glyphicon-hand-right:before {\n  content: \"\\e127\"; }\n\n.glyphicon-hand-left:before {\n  content: \"\\e128\"; }\n\n.glyphicon-hand-up:before {\n  content: \"\\e129\"; }\n\n.glyphicon-hand-down:before {\n  content: \"\\e130\"; }\n\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\"; }\n\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\"; }\n\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\"; }\n\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\"; }\n\n.glyphicon-globe:before {\n  content: \"\\e135\"; }\n\n.glyphicon-wrench:before {\n  content: \"\\e136\"; }\n\n.glyphicon-tasks:before {\n  content: \"\\e137\"; }\n\n.glyphicon-filter:before {\n  content: \"\\e138\"; }\n\n.glyphicon-briefcase:before {\n  content: \"\\e139\"; }\n\n.glyphicon-fullscreen:before {\n  content: \"\\e140\"; }\n\n.glyphicon-dashboard:before {\n  content: \"\\e141\"; }\n\n.glyphicon-paperclip:before {\n  content: \"\\e142\"; }\n\n.glyphicon-heart-empty:before {\n  content: \"\\e143\"; }\n\n.glyphicon-link:before {\n  content: \"\\e144\"; }\n\n.glyphicon-phone:before {\n  content: \"\\e145\"; }\n\n.glyphicon-pushpin:before {\n  content: \"\\e146\"; }\n\n.glyphicon-usd:before {\n  content: \"\\e148\"; }\n\n.glyphicon-gbp:before {\n  content: \"\\e149\"; }\n\n.glyphicon-sort:before {\n  content: \"\\e150\"; }\n\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\"; }\n\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\"; }\n\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\"; }\n\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\"; }\n\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\"; }\n\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\"; }\n\n.glyphicon-unchecked:before {\n  content: \"\\e157\"; }\n\n.glyphicon-expand:before {\n  content: \"\\e158\"; }\n\n.glyphicon-collapse-down:before {\n  content: \"\\e159\"; }\n\n.glyphicon-collapse-up:before {\n  content: \"\\e160\"; }\n\n.glyphicon-log-in:before {\n  content: \"\\e161\"; }\n\n.glyphicon-flash:before {\n  content: \"\\e162\"; }\n\n.glyphicon-log-out:before {\n  content: \"\\e163\"; }\n\n.glyphicon-new-window:before {\n  content: \"\\e164\"; }\n\n.glyphicon-record:before {\n  content: \"\\e165\"; }\n\n.glyphicon-save:before {\n  content: \"\\e166\"; }\n\n.glyphicon-open:before {\n  content: \"\\e167\"; }\n\n.glyphicon-saved:before {\n  content: \"\\e168\"; }\n\n.glyphicon-import:before {\n  content: \"\\e169\"; }\n\n.glyphicon-export:before {\n  content: \"\\e170\"; }\n\n.glyphicon-send:before {\n  content: \"\\e171\"; }\n\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\"; }\n\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\"; }\n\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\"; }\n\n.glyphicon-floppy-save:before {\n  content: \"\\e175\"; }\n\n.glyphicon-floppy-open:before {\n  content: \"\\e176\"; }\n\n.glyphicon-credit-card:before {\n  content: \"\\e177\"; }\n\n.glyphicon-transfer:before {\n  content: \"\\e178\"; }\n\n.glyphicon-cutlery:before {\n  content: \"\\e179\"; }\n\n.glyphicon-header:before {\n  content: \"\\e180\"; }\n\n.glyphicon-compressed:before {\n  content: \"\\e181\"; }\n\n.glyphicon-earphone:before {\n  content: \"\\e182\"; }\n\n.glyphicon-phone-alt:before {\n  content: \"\\e183\"; }\n\n.glyphicon-tower:before {\n  content: \"\\e184\"; }\n\n.glyphicon-stats:before {\n  content: \"\\e185\"; }\n\n.glyphicon-sd-video:before {\n  content: \"\\e186\"; }\n\n.glyphicon-hd-video:before {\n  content: \"\\e187\"; }\n\n.glyphicon-subtitles:before {\n  content: \"\\e188\"; }\n\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\"; }\n\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\"; }\n\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\"; }\n\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\"; }\n\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\"; }\n\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\"; }\n\n.glyphicon-registration-mark:before {\n  content: \"\\e195\"; }\n\n.glyphicon-cloud-download:before {\n  content: \"\\e197\"; }\n\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\"; }\n\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\"; }\n\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\"; }\n\n.glyphicon-cd:before {\n  content: \"\\e201\"; }\n\n.glyphicon-save-file:before {\n  content: \"\\e202\"; }\n\n.glyphicon-open-file:before {\n  content: \"\\e203\"; }\n\n.glyphicon-level-up:before {\n  content: \"\\e204\"; }\n\n.glyphicon-copy:before {\n  content: \"\\e205\"; }\n\n.glyphicon-paste:before {\n  content: \"\\e206\"; }\n\n.glyphicon-alert:before {\n  content: \"\\e209\"; }\n\n.glyphicon-equalizer:before {\n  content: \"\\e210\"; }\n\n.glyphicon-king:before {\n  content: \"\\e211\"; }\n\n.glyphicon-queen:before {\n  content: \"\\e212\"; }\n\n.glyphicon-pawn:before {\n  content: \"\\e213\"; }\n\n.glyphicon-bishop:before {\n  content: \"\\e214\"; }\n\n.glyphicon-knight:before {\n  content: \"\\e215\"; }\n\n.glyphicon-baby-formula:before {\n  content: \"\\e216\"; }\n\n.glyphicon-tent:before {\n  content: \"\\26fa\"; }\n\n.glyphicon-blackboard:before {\n  content: \"\\e218\"; }\n\n.glyphicon-bed:before {\n  content: \"\\e219\"; }\n\n.glyphicon-apple:before {\n  content: \"\\f8ff\"; }\n\n.glyphicon-erase:before {\n  content: \"\\e221\"; }\n\n.glyphicon-hourglass:before {\n  content: \"\\231b\"; }\n\n.glyphicon-lamp:before {\n  content: \"\\e223\"; }\n\n.glyphicon-duplicate:before {\n  content: \"\\e224\"; }\n\n.glyphicon-piggy-bank:before {\n  content: \"\\e225\"; }\n\n.glyphicon-scissors:before {\n  content: \"\\e226\"; }\n\n.glyphicon-bitcoin:before {\n  content: \"\\e227\"; }\n\n.glyphicon-btc:before {\n  content: \"\\e227\"; }\n\n.glyphicon-xbt:before {\n  content: \"\\e227\"; }\n\n.glyphicon-yen:before {\n  content: \"\\00a5\"; }\n\n.glyphicon-jpy:before {\n  content: \"\\00a5\"; }\n\n.glyphicon-ruble:before {\n  content: \"\\20bd\"; }\n\n.glyphicon-rub:before {\n  content: \"\\20bd\"; }\n\n.glyphicon-scale:before {\n  content: \"\\e230\"; }\n\n.glyphicon-ice-lolly:before {\n  content: \"\\e231\"; }\n\n.glyphicon-ice-lolly-tasted:before {\n  content: \"\\e232\"; }\n\n.glyphicon-education:before {\n  content: \"\\e233\"; }\n\n.glyphicon-option-horizontal:before {\n  content: \"\\e234\"; }\n\n.glyphicon-option-vertical:before {\n  content: \"\\e235\"; }\n\n.glyphicon-menu-hamburger:before {\n  content: \"\\e236\"; }\n\n.glyphicon-modal-window:before {\n  content: \"\\e237\"; }\n\n.glyphicon-oil:before {\n  content: \"\\e238\"; }\n\n.glyphicon-grain:before {\n  content: \"\\e239\"; }\n\n.glyphicon-sunglasses:before {\n  content: \"\\e240\"; }\n\n.glyphicon-text-size:before {\n  content: \"\\e241\"; }\n\n.glyphicon-text-color:before {\n  content: \"\\e242\"; }\n\n.glyphicon-text-background:before {\n  content: \"\\e243\"; }\n\n.glyphicon-object-align-top:before {\n  content: \"\\e244\"; }\n\n.glyphicon-object-align-bottom:before {\n  content: \"\\e245\"; }\n\n.glyphicon-object-align-horizontal:before {\n  content: \"\\e246\"; }\n\n.glyphicon-object-align-left:before {\n  content: \"\\e247\"; }\n\n.glyphicon-object-align-vertical:before {\n  content: \"\\e248\"; }\n\n.glyphicon-object-align-right:before {\n  content: \"\\e249\"; }\n\n.glyphicon-triangle-right:before {\n  content: \"\\e250\"; }\n\n.glyphicon-triangle-left:before {\n  content: \"\\e251\"; }\n\n.glyphicon-triangle-bottom:before {\n  content: \"\\e252\"; }\n\n.glyphicon-triangle-top:before {\n  content: \"\\e253\"; }\n\n.glyphicon-console:before {\n  content: \"\\e254\"; }\n\n.glyphicon-superscript:before {\n  content: \"\\e255\"; }\n\n.glyphicon-subscript:before {\n  content: \"\\e256\"; }\n\n.glyphicon-menu-left:before {\n  content: \"\\e257\"; }\n\n.glyphicon-menu-right:before {\n  content: \"\\e258\"; }\n\n.glyphicon-menu-down:before {\n  content: \"\\e259\"; }\n\n.glyphicon-menu-up:before {\n  content: \"\\e260\"; }\n\n* {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box; }\n\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box; }\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: transparent; }\n\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #333333;\n  background-color: #fff; }\n\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit; }\n\na {\n  color: #337ab7;\n  text-decoration: none; }\n  a:hover, a:focus {\n    color: #23527c;\n    text-decoration: underline; }\n  a:focus {\n    outline: 5px auto -webkit-focus-ring-color;\n    outline-offset: -2px; }\n\nfigure {\n  margin: 0; }\n\nimg {\n  vertical-align: middle; }\n\n.img-responsive {\n  display: block;\n  max-width: 100%;\n  height: auto; }\n\n.img-rounded {\n  border-radius: 6px; }\n\n.img-thumbnail {\n  padding: 4px;\n  line-height: 1.42857;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: all 0.2s ease-in-out;\n  -o-transition: all 0.2s ease-in-out;\n  transition: all 0.2s ease-in-out;\n  display: inline-block;\n  max-width: 100%;\n  height: auto; }\n\n.img-circle {\n  border-radius: 50%; }\n\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eeeeee; }\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto; }\n\n[role=\"button\"] {\n  cursor: pointer; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit; }\n  h1 small,\n  h1 .small, h2 small,\n  h2 .small, h3 small,\n  h3 .small, h4 small,\n  h4 .small, h5 small,\n  h5 .small, h6 small,\n  h6 .small,\n  .h1 small,\n  .h1 .small, .h2 small,\n  .h2 .small, .h3 small,\n  .h3 .small, .h4 small,\n  .h4 .small, .h5 small,\n  .h5 .small, .h6 small,\n  .h6 .small {\n    font-weight: normal;\n    line-height: 1;\n    color: #777777; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: 20px;\n  margin-bottom: 10px; }\n  h1 small,\n  h1 .small, .h1 small,\n  .h1 .small,\n  h2 small,\n  h2 .small, .h2 small,\n  .h2 .small,\n  h3 small,\n  h3 .small, .h3 small,\n  .h3 .small {\n    font-size: 65%; }\n\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: 10px;\n  margin-bottom: 10px; }\n  h4 small,\n  h4 .small, .h4 small,\n  .h4 .small,\n  h5 small,\n  h5 .small, .h5 small,\n  .h5 .small,\n  h6 small,\n  h6 .small, .h6 small,\n  .h6 .small {\n    font-size: 75%; }\n\nh1, .h1 {\n  font-size: 36px; }\n\nh2, .h2 {\n  font-size: 30px; }\n\nh3, .h3 {\n  font-size: 24px; }\n\nh4, .h4 {\n  font-size: 18px; }\n\nh5, .h5 {\n  font-size: 14px; }\n\nh6, .h6 {\n  font-size: 12px; }\n\np {\n  margin: 0 0 10px; }\n\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4; }\n  @media (min-width: 768px) {\n    .lead {\n      font-size: 21px; } }\n\nsmall,\n.small {\n  font-size: 85%; }\n\nmark,\n.mark {\n  background-color: #f9e491;\n  padding: .2em; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n.text-nowrap {\n  white-space: nowrap; }\n\n.text-lowercase {\n  text-transform: lowercase; }\n\n.text-uppercase, .initialism {\n  text-transform: uppercase; }\n\n.text-capitalize {\n  text-transform: capitalize; }\n\n.text-muted {\n  color: #777777; }\n\n.text-primary {\n  color: #337ab7; }\n\na.text-primary:hover,\na.text-primary:focus {\n  color: #286090; }\n\n.text-success {\n  color: #27a4b0; }\n\na.text-success:hover,\na.text-success:focus {\n  color: #1d7d86; }\n\n.text-info {\n  color: #327ad5; }\n\na.text-info:hover,\na.text-info:focus {\n  color: #2462b0; }\n\n.text-warning {\n  color: #c29d0b; }\n\na.text-warning:hover,\na.text-warning:focus {\n  color: #927608; }\n\n.text-danger {\n  color: #e73d4a; }\n\na.text-danger:hover,\na.text-danger:focus {\n  color: #d71b29; }\n\n.bg-primary {\n  color: #fff; }\n\n.bg-primary {\n  background-color: #337ab7; }\n\na.bg-primary:hover,\na.bg-primary:focus {\n  background-color: #286090; }\n\n.bg-success {\n  background-color: #abe7ed; }\n\na.bg-success:hover,\na.bg-success:focus {\n  background-color: #81dbe3; }\n\n.bg-info {\n  background-color: #e0ebf9; }\n\na.bg-info:hover,\na.bg-info:focus {\n  background-color: #b5cff0; }\n\n.bg-warning {\n  background-color: #f9e491; }\n\na.bg-warning:hover,\na.bg-warning:focus {\n  background-color: #f6d861; }\n\n.bg-danger {\n  background-color: #fbe1e3; }\n\na.bg-danger:hover,\na.bg-danger:focus {\n  background-color: #f6b3b8; }\n\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eeeeee; }\n\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px; }\n  ul ul,\n  ul ol,\n  ol ul,\n  ol ol {\n    margin-bottom: 0; }\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none; }\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n  margin-left: -5px; }\n  .list-inline > li {\n    display: inline-block;\n    padding-left: 5px;\n    padding-right: 5px; }\n\ndl {\n  margin-top: 0;\n  margin-bottom: 20px; }\n\ndt,\ndd {\n  line-height: 1.42857; }\n\ndt {\n  font-weight: bold; }\n\ndd {\n  margin-left: 0; }\n\n.dl-horizontal dd:before, .dl-horizontal dd:after {\n  content: \" \";\n  display: table; }\n\n.dl-horizontal dd:after {\n  clear: both; }\n\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    clear: left;\n    text-align: right;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap; }\n  .dl-horizontal dd {\n    margin-left: 180px; } }\n\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777777; }\n\n.initialism {\n  font-size: 90%; }\n\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eeeeee; }\n  blockquote p:last-child,\n  blockquote ul:last-child,\n  blockquote ol:last-child {\n    margin-bottom: 0; }\n  blockquote footer,\n  blockquote small,\n  blockquote .small {\n    display: block;\n    font-size: 80%;\n    line-height: 1.42857;\n    color: #777777; }\n    blockquote footer:before,\n    blockquote small:before,\n    blockquote .small:before {\n      content: '\\2014 \\00A0'; }\n\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n  text-align: right; }\n  .blockquote-reverse footer:before,\n  .blockquote-reverse small:before,\n  .blockquote-reverse .small:before,\n  blockquote.pull-right footer:before,\n  blockquote.pull-right small:before,\n  blockquote.pull-right .small:before {\n    content: ''; }\n  .blockquote-reverse footer:after,\n  .blockquote-reverse small:after,\n  .blockquote-reverse .small:after,\n  blockquote.pull-right footer:after,\n  blockquote.pull-right small:after,\n  blockquote.pull-right .small:after {\n    content: '\\00A0 \\2014'; }\n\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857; }\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; }\n\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 4px; }\n\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #fff;\n  background-color: #333;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }\n  kbd kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: bold;\n    box-shadow: none; }\n\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.42857;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: #333333;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border-radius: 4px; }\n  pre code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0; }\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll; }\n\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px; }\n  .container:before, .container:after {\n    content: \" \";\n    display: table; }\n  .container:after {\n    clear: both; }\n  @media (min-width: 768px) {\n    .container {\n      width: 750px; } }\n  @media (min-width: 992px) {\n    .container {\n      width: 970px; } }\n  @media (min-width: 1200px) {\n    .container {\n      width: 1170px; } }\n\n.container-fluid {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px; }\n  .container-fluid:before, .container-fluid:after {\n    content: \" \";\n    display: table; }\n  .container-fluid:after {\n    clear: both; }\n\n.row {\n  margin-left: -15px;\n  margin-right: -15px; }\n  .row:before, .row:after {\n    content: \" \";\n    display: table; }\n  .row:after {\n    clear: both; }\n\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-left: 15px;\n  padding-right: 15px; }\n\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n  float: left; }\n\n.col-xs-1 {\n  width: 8.33333%; }\n\n.col-xs-2 {\n  width: 16.66667%; }\n\n.col-xs-3 {\n  width: 25%; }\n\n.col-xs-4 {\n  width: 33.33333%; }\n\n.col-xs-5 {\n  width: 41.66667%; }\n\n.col-xs-6 {\n  width: 50%; }\n\n.col-xs-7 {\n  width: 58.33333%; }\n\n.col-xs-8 {\n  width: 66.66667%; }\n\n.col-xs-9 {\n  width: 75%; }\n\n.col-xs-10 {\n  width: 83.33333%; }\n\n.col-xs-11 {\n  width: 91.66667%; }\n\n.col-xs-12 {\n  width: 100%; }\n\n.col-xs-pull-0 {\n  right: auto; }\n\n.col-xs-pull-1 {\n  right: 8.33333%; }\n\n.col-xs-pull-2 {\n  right: 16.66667%; }\n\n.col-xs-pull-3 {\n  right: 25%; }\n\n.col-xs-pull-4 {\n  right: 33.33333%; }\n\n.col-xs-pull-5 {\n  right: 41.66667%; }\n\n.col-xs-pull-6 {\n  right: 50%; }\n\n.col-xs-pull-7 {\n  right: 58.33333%; }\n\n.col-xs-pull-8 {\n  right: 66.66667%; }\n\n.col-xs-pull-9 {\n  right: 75%; }\n\n.col-xs-pull-10 {\n  right: 83.33333%; }\n\n.col-xs-pull-11 {\n  right: 91.66667%; }\n\n.col-xs-pull-12 {\n  right: 100%; }\n\n.col-xs-push-0 {\n  left: auto; }\n\n.col-xs-push-1 {\n  left: 8.33333%; }\n\n.col-xs-push-2 {\n  left: 16.66667%; }\n\n.col-xs-push-3 {\n  left: 25%; }\n\n.col-xs-push-4 {\n  left: 33.33333%; }\n\n.col-xs-push-5 {\n  left: 41.66667%; }\n\n.col-xs-push-6 {\n  left: 50%; }\n\n.col-xs-push-7 {\n  left: 58.33333%; }\n\n.col-xs-push-8 {\n  left: 66.66667%; }\n\n.col-xs-push-9 {\n  left: 75%; }\n\n.col-xs-push-10 {\n  left: 83.33333%; }\n\n.col-xs-push-11 {\n  left: 91.66667%; }\n\n.col-xs-push-12 {\n  left: 100%; }\n\n.col-xs-offset-0 {\n  margin-left: 0%; }\n\n.col-xs-offset-1 {\n  margin-left: 8.33333%; }\n\n.col-xs-offset-2 {\n  margin-left: 16.66667%; }\n\n.col-xs-offset-3 {\n  margin-left: 25%; }\n\n.col-xs-offset-4 {\n  margin-left: 33.33333%; }\n\n.col-xs-offset-5 {\n  margin-left: 41.66667%; }\n\n.col-xs-offset-6 {\n  margin-left: 50%; }\n\n.col-xs-offset-7 {\n  margin-left: 58.33333%; }\n\n.col-xs-offset-8 {\n  margin-left: 66.66667%; }\n\n.col-xs-offset-9 {\n  margin-left: 75%; }\n\n.col-xs-offset-10 {\n  margin-left: 83.33333%; }\n\n.col-xs-offset-11 {\n  margin-left: 91.66667%; }\n\n.col-xs-offset-12 {\n  margin-left: 100%; }\n\n@media (min-width: 768px) {\n  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n    float: left; }\n  .col-sm-1 {\n    width: 8.33333%; }\n  .col-sm-2 {\n    width: 16.66667%; }\n  .col-sm-3 {\n    width: 25%; }\n  .col-sm-4 {\n    width: 33.33333%; }\n  .col-sm-5 {\n    width: 41.66667%; }\n  .col-sm-6 {\n    width: 50%; }\n  .col-sm-7 {\n    width: 58.33333%; }\n  .col-sm-8 {\n    width: 66.66667%; }\n  .col-sm-9 {\n    width: 75%; }\n  .col-sm-10 {\n    width: 83.33333%; }\n  .col-sm-11 {\n    width: 91.66667%; }\n  .col-sm-12 {\n    width: 100%; }\n  .col-sm-pull-0 {\n    right: auto; }\n  .col-sm-pull-1 {\n    right: 8.33333%; }\n  .col-sm-pull-2 {\n    right: 16.66667%; }\n  .col-sm-pull-3 {\n    right: 25%; }\n  .col-sm-pull-4 {\n    right: 33.33333%; }\n  .col-sm-pull-5 {\n    right: 41.66667%; }\n  .col-sm-pull-6 {\n    right: 50%; }\n  .col-sm-pull-7 {\n    right: 58.33333%; }\n  .col-sm-pull-8 {\n    right: 66.66667%; }\n  .col-sm-pull-9 {\n    right: 75%; }\n  .col-sm-pull-10 {\n    right: 83.33333%; }\n  .col-sm-pull-11 {\n    right: 91.66667%; }\n  .col-sm-pull-12 {\n    right: 100%; }\n  .col-sm-push-0 {\n    left: auto; }\n  .col-sm-push-1 {\n    left: 8.33333%; }\n  .col-sm-push-2 {\n    left: 16.66667%; }\n  .col-sm-push-3 {\n    left: 25%; }\n  .col-sm-push-4 {\n    left: 33.33333%; }\n  .col-sm-push-5 {\n    left: 41.66667%; }\n  .col-sm-push-6 {\n    left: 50%; }\n  .col-sm-push-7 {\n    left: 58.33333%; }\n  .col-sm-push-8 {\n    left: 66.66667%; }\n  .col-sm-push-9 {\n    left: 75%; }\n  .col-sm-push-10 {\n    left: 83.33333%; }\n  .col-sm-push-11 {\n    left: 91.66667%; }\n  .col-sm-push-12 {\n    left: 100%; }\n  .col-sm-offset-0 {\n    margin-left: 0%; }\n  .col-sm-offset-1 {\n    margin-left: 8.33333%; }\n  .col-sm-offset-2 {\n    margin-left: 16.66667%; }\n  .col-sm-offset-3 {\n    margin-left: 25%; }\n  .col-sm-offset-4 {\n    margin-left: 33.33333%; }\n  .col-sm-offset-5 {\n    margin-left: 41.66667%; }\n  .col-sm-offset-6 {\n    margin-left: 50%; }\n  .col-sm-offset-7 {\n    margin-left: 58.33333%; }\n  .col-sm-offset-8 {\n    margin-left: 66.66667%; }\n  .col-sm-offset-9 {\n    margin-left: 75%; }\n  .col-sm-offset-10 {\n    margin-left: 83.33333%; }\n  .col-sm-offset-11 {\n    margin-left: 91.66667%; }\n  .col-sm-offset-12 {\n    margin-left: 100%; } }\n\n@media (min-width: 992px) {\n  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n    float: left; }\n  .col-md-1 {\n    width: 8.33333%; }\n  .col-md-2 {\n    width: 16.66667%; }\n  .col-md-3 {\n    width: 25%; }\n  .col-md-4 {\n    width: 33.33333%; }\n  .col-md-5 {\n    width: 41.66667%; }\n  .col-md-6 {\n    width: 50%; }\n  .col-md-7 {\n    width: 58.33333%; }\n  .col-md-8 {\n    width: 66.66667%; }\n  .col-md-9 {\n    width: 75%; }\n  .col-md-10 {\n    width: 83.33333%; }\n  .col-md-11 {\n    width: 91.66667%; }\n  .col-md-12 {\n    width: 100%; }\n  .col-md-pull-0 {\n    right: auto; }\n  .col-md-pull-1 {\n    right: 8.33333%; }\n  .col-md-pull-2 {\n    right: 16.66667%; }\n  .col-md-pull-3 {\n    right: 25%; }\n  .col-md-pull-4 {\n    right: 33.33333%; }\n  .col-md-pull-5 {\n    right: 41.66667%; }\n  .col-md-pull-6 {\n    right: 50%; }\n  .col-md-pull-7 {\n    right: 58.33333%; }\n  .col-md-pull-8 {\n    right: 66.66667%; }\n  .col-md-pull-9 {\n    right: 75%; }\n  .col-md-pull-10 {\n    right: 83.33333%; }\n  .col-md-pull-11 {\n    right: 91.66667%; }\n  .col-md-pull-12 {\n    right: 100%; }\n  .col-md-push-0 {\n    left: auto; }\n  .col-md-push-1 {\n    left: 8.33333%; }\n  .col-md-push-2 {\n    left: 16.66667%; }\n  .col-md-push-3 {\n    left: 25%; }\n  .col-md-push-4 {\n    left: 33.33333%; }\n  .col-md-push-5 {\n    left: 41.66667%; }\n  .col-md-push-6 {\n    left: 50%; }\n  .col-md-push-7 {\n    left: 58.33333%; }\n  .col-md-push-8 {\n    left: 66.66667%; }\n  .col-md-push-9 {\n    left: 75%; }\n  .col-md-push-10 {\n    left: 83.33333%; }\n  .col-md-push-11 {\n    left: 91.66667%; }\n  .col-md-push-12 {\n    left: 100%; }\n  .col-md-offset-0 {\n    margin-left: 0%; }\n  .col-md-offset-1 {\n    margin-left: 8.33333%; }\n  .col-md-offset-2 {\n    margin-left: 16.66667%; }\n  .col-md-offset-3 {\n    margin-left: 25%; }\n  .col-md-offset-4 {\n    margin-left: 33.33333%; }\n  .col-md-offset-5 {\n    margin-left: 41.66667%; }\n  .col-md-offset-6 {\n    margin-left: 50%; }\n  .col-md-offset-7 {\n    margin-left: 58.33333%; }\n  .col-md-offset-8 {\n    margin-left: 66.66667%; }\n  .col-md-offset-9 {\n    margin-left: 75%; }\n  .col-md-offset-10 {\n    margin-left: 83.33333%; }\n  .col-md-offset-11 {\n    margin-left: 91.66667%; }\n  .col-md-offset-12 {\n    margin-left: 100%; } }\n\n@media (min-width: 1200px) {\n  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n    float: left; }\n  .col-lg-1 {\n    width: 8.33333%; }\n  .col-lg-2 {\n    width: 16.66667%; }\n  .col-lg-3 {\n    width: 25%; }\n  .col-lg-4 {\n    width: 33.33333%; }\n  .col-lg-5 {\n    width: 41.66667%; }\n  .col-lg-6 {\n    width: 50%; }\n  .col-lg-7 {\n    width: 58.33333%; }\n  .col-lg-8 {\n    width: 66.66667%; }\n  .col-lg-9 {\n    width: 75%; }\n  .col-lg-10 {\n    width: 83.33333%; }\n  .col-lg-11 {\n    width: 91.66667%; }\n  .col-lg-12 {\n    width: 100%; }\n  .col-lg-pull-0 {\n    right: auto; }\n  .col-lg-pull-1 {\n    right: 8.33333%; }\n  .col-lg-pull-2 {\n    right: 16.66667%; }\n  .col-lg-pull-3 {\n    right: 25%; }\n  .col-lg-pull-4 {\n    right: 33.33333%; }\n  .col-lg-pull-5 {\n    right: 41.66667%; }\n  .col-lg-pull-6 {\n    right: 50%; }\n  .col-lg-pull-7 {\n    right: 58.33333%; }\n  .col-lg-pull-8 {\n    right: 66.66667%; }\n  .col-lg-pull-9 {\n    right: 75%; }\n  .col-lg-pull-10 {\n    right: 83.33333%; }\n  .col-lg-pull-11 {\n    right: 91.66667%; }\n  .col-lg-pull-12 {\n    right: 100%; }\n  .col-lg-push-0 {\n    left: auto; }\n  .col-lg-push-1 {\n    left: 8.33333%; }\n  .col-lg-push-2 {\n    left: 16.66667%; }\n  .col-lg-push-3 {\n    left: 25%; }\n  .col-lg-push-4 {\n    left: 33.33333%; }\n  .col-lg-push-5 {\n    left: 41.66667%; }\n  .col-lg-push-6 {\n    left: 50%; }\n  .col-lg-push-7 {\n    left: 58.33333%; }\n  .col-lg-push-8 {\n    left: 66.66667%; }\n  .col-lg-push-9 {\n    left: 75%; }\n  .col-lg-push-10 {\n    left: 83.33333%; }\n  .col-lg-push-11 {\n    left: 91.66667%; }\n  .col-lg-push-12 {\n    left: 100%; }\n  .col-lg-offset-0 {\n    margin-left: 0%; }\n  .col-lg-offset-1 {\n    margin-left: 8.33333%; }\n  .col-lg-offset-2 {\n    margin-left: 16.66667%; }\n  .col-lg-offset-3 {\n    margin-left: 25%; }\n  .col-lg-offset-4 {\n    margin-left: 33.33333%; }\n  .col-lg-offset-5 {\n    margin-left: 41.66667%; }\n  .col-lg-offset-6 {\n    margin-left: 50%; }\n  .col-lg-offset-7 {\n    margin-left: 58.33333%; }\n  .col-lg-offset-8 {\n    margin-left: 66.66667%; }\n  .col-lg-offset-9 {\n    margin-left: 75%; }\n  .col-lg-offset-10 {\n    margin-left: 83.33333%; }\n  .col-lg-offset-11 {\n    margin-left: 91.66667%; }\n  .col-lg-offset-12 {\n    margin-left: 100%; } }\n\ntable {\n  background-color: transparent; }\n\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777777;\n  text-align: left; }\n\nth {\n  text-align: left; }\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 20px; }\n  .table > thead > tr > th,\n  .table > thead > tr > td,\n  .table > tbody > tr > th,\n  .table > tbody > tr > td,\n  .table > tfoot > tr > th,\n  .table > tfoot > tr > td {\n    padding: 8px;\n    line-height: 1.42857;\n    vertical-align: top;\n    border-top: 1px solid #e7ecf1; }\n  .table > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid #e7ecf1; }\n  .table > caption + thead > tr:first-child > th,\n  .table > caption + thead > tr:first-child > td,\n  .table > colgroup + thead > tr:first-child > th,\n  .table > colgroup + thead > tr:first-child > td,\n  .table > thead:first-child > tr:first-child > th,\n  .table > thead:first-child > tr:first-child > td {\n    border-top: 0; }\n  .table > tbody + tbody {\n    border-top: 2px solid #e7ecf1; }\n  .table .table {\n    background-color: #fff; }\n\n.table-condensed > thead > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > th,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > th,\n.table-condensed > tfoot > tr > td {\n  padding: 5px; }\n\n.table-bordered {\n  border: 1px solid #e7ecf1; }\n  .table-bordered > thead > tr > th,\n  .table-bordered > thead > tr > td,\n  .table-bordered > tbody > tr > th,\n  .table-bordered > tbody > tr > td,\n  .table-bordered > tfoot > tr > th,\n  .table-bordered > tfoot > tr > td {\n    border: 1px solid #e7ecf1; }\n  .table-bordered > thead > tr > th,\n  .table-bordered > thead > tr > td {\n    border-bottom-width: 2px; }\n\n.table-striped > tbody > tr:nth-of-type(odd) {\n  background-color: #fbfcfd; }\n\n.table-hover > tbody > tr:hover {\n  background-color: #eef1f5; }\n\ntable col[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-column; }\n\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-cell; }\n\n.table > thead > tr > td.active,\n.table > thead > tr > th.active,\n.table > thead > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr > td.active,\n.table > tbody > tr > th.active,\n.table > tbody > tr.active > td,\n.table > tbody > tr.active > th,\n.table > tfoot > tr > td.active,\n.table > tfoot > tr > th.active,\n.table > tfoot > tr.active > td,\n.table > tfoot > tr.active > th {\n  background-color: #eef1f5; }\n\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #dee5ec; }\n\n.table > thead > tr > td.success,\n.table > thead > tr > th.success,\n.table > thead > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr > td.success,\n.table > tbody > tr > th.success,\n.table > tbody > tr.success > td,\n.table > tbody > tr.success > th,\n.table > tfoot > tr > td.success,\n.table > tfoot > tr > th.success,\n.table > tfoot > tr.success > td,\n.table > tfoot > tr.success > th {\n  background-color: #abe7ed; }\n\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #96e1e8; }\n\n.table > thead > tr > td.info,\n.table > thead > tr > th.info,\n.table > thead > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr > td.info,\n.table > tbody > tr > th.info,\n.table > tbody > tr.info > td,\n.table > tbody > tr.info > th,\n.table > tfoot > tr > td.info,\n.table > tfoot > tr > th.info,\n.table > tfoot > tr.info > td,\n.table > tfoot > tr.info > th {\n  background-color: #e0ebf9; }\n\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #caddf4; }\n\n.table > thead > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr > td.warning,\n.table > tbody > tr > th.warning,\n.table > tbody > tr.warning > td,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr > td.warning,\n.table > tfoot > tr > th.warning,\n.table > tfoot > tr.warning > td,\n.table > tfoot > tr.warning > th {\n  background-color: #f9e491; }\n\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #f7de79; }\n\n.table > thead > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr > td.danger,\n.table > tbody > tr > th.danger,\n.table > tbody > tr.danger > td,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr > td.danger,\n.table > tfoot > tr > th.danger,\n.table > tfoot > tr.danger > td,\n.table > tfoot > tr.danger > th {\n  background-color: #fbe1e3; }\n\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #f8cace; }\n\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%; }\n  @media screen and (max-width: 767px) {\n    .table-responsive {\n      width: 100%;\n      margin-bottom: 15px;\n      overflow-y: hidden;\n      -ms-overflow-style: -ms-autohiding-scrollbar;\n      border: 1px solid #e7ecf1; }\n      .table-responsive > .table {\n        margin-bottom: 0; }\n        .table-responsive > .table > thead > tr > th,\n        .table-responsive > .table > thead > tr > td,\n        .table-responsive > .table > tbody > tr > th,\n        .table-responsive > .table > tbody > tr > td,\n        .table-responsive > .table > tfoot > tr > th,\n        .table-responsive > .table > tfoot > tr > td {\n          white-space: nowrap; }\n      .table-responsive > .table-bordered {\n        border: 0; }\n        .table-responsive > .table-bordered > thead > tr > th:first-child,\n        .table-responsive > .table-bordered > thead > tr > td:first-child,\n        .table-responsive > .table-bordered > tbody > tr > th:first-child,\n        .table-responsive > .table-bordered > tbody > tr > td:first-child,\n        .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n        .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n          border-left: 0; }\n        .table-responsive > .table-bordered > thead > tr > th:last-child,\n        .table-responsive > .table-bordered > thead > tr > td:last-child,\n        .table-responsive > .table-bordered > tbody > tr > th:last-child,\n        .table-responsive > .table-bordered > tbody > tr > td:last-child,\n        .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n        .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n          border-right: 0; }\n        .table-responsive > .table-bordered > tbody > tr:last-child > th,\n        .table-responsive > .table-bordered > tbody > tr:last-child > td,\n        .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n        .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n          border-bottom: 0; } }\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0; }\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #34495e;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5; }\n\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold; }\n\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box; }\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal; }\n\ninput[type=\"file\"] {\n  display: block; }\n\ninput[type=\"range\"] {\n  display: block;\n  width: 100%; }\n\nselect[multiple],\nselect[size] {\n  height: auto; }\n\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px; }\n\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #555555; }\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #555555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #c2cad8;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n  -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }\n  .form-control:focus {\n    border-color: #93a1bb;\n    outline: 0;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(147, 161, 187, 0.6);\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(147, 161, 187, 0.6); }\n  .form-control::-moz-placeholder {\n    color: #999;\n    opacity: 1; }\n  .form-control:-ms-input-placeholder {\n    color: #999; }\n  .form-control::-webkit-input-placeholder {\n    color: #999; }\n  .form-control::-ms-expand {\n    border: 0;\n    background-color: transparent; }\n  .form-control[disabled], .form-control[readonly],\n  fieldset[disabled] .form-control {\n    background-color: #eef1f5;\n    opacity: 1; }\n  .form-control[disabled],\n  fieldset[disabled] .form-control {\n    cursor: not-allowed; }\n\ntextarea.form-control {\n  height: auto; }\n\ninput[type=\"search\"] {\n  -webkit-appearance: none; }\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"].form-control,\n  input[type=\"time\"].form-control,\n  input[type=\"datetime-local\"].form-control,\n  input[type=\"month\"].form-control {\n    line-height: 34px; }\n  input[type=\"date\"].input-sm, .input-group-sm > input[type=\"date\"].form-control,\n  .input-group-sm > input[type=\"date\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"date\"].btn,\n  .input-group-sm input[type=\"date\"],\n  input[type=\"time\"].input-sm,\n  .input-group-sm > input[type=\"time\"].form-control,\n  .input-group-sm > input[type=\"time\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"time\"].btn,\n  .input-group-sm\n  input[type=\"time\"],\n  input[type=\"datetime-local\"].input-sm,\n  .input-group-sm > input[type=\"datetime-local\"].form-control,\n  .input-group-sm > input[type=\"datetime-local\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"datetime-local\"].btn,\n  .input-group-sm\n  input[type=\"datetime-local\"],\n  input[type=\"month\"].input-sm,\n  .input-group-sm > input[type=\"month\"].form-control,\n  .input-group-sm > input[type=\"month\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"month\"].btn,\n  .input-group-sm\n  input[type=\"month\"] {\n    line-height: 30px; }\n  input[type=\"date\"].input-lg, .input-group-lg > input[type=\"date\"].form-control,\n  .input-group-lg > input[type=\"date\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"date\"].btn,\n  .input-group-lg input[type=\"date\"],\n  input[type=\"time\"].input-lg,\n  .input-group-lg > input[type=\"time\"].form-control,\n  .input-group-lg > input[type=\"time\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"time\"].btn,\n  .input-group-lg\n  input[type=\"time\"],\n  input[type=\"datetime-local\"].input-lg,\n  .input-group-lg > input[type=\"datetime-local\"].form-control,\n  .input-group-lg > input[type=\"datetime-local\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"datetime-local\"].btn,\n  .input-group-lg\n  input[type=\"datetime-local\"],\n  input[type=\"month\"].input-lg,\n  .input-group-lg > input[type=\"month\"].form-control,\n  .input-group-lg > input[type=\"month\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"month\"].btn,\n  .input-group-lg\n  input[type=\"month\"] {\n    line-height: 46px; } }\n\n.form-group {\n  margin-bottom: 15px; }\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px; }\n  .radio label,\n  .checkbox label {\n    min-height: 20px;\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: normal;\n    cursor: pointer; }\n\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9; }\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; }\n\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer; }\n\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; }\n\ninput[type=\"radio\"][disabled], input[type=\"radio\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled]\ninput[type=\"checkbox\"] {\n  cursor: not-allowed; }\n\n.radio-inline.disabled,\nfieldset[disabled] .radio-inline,\n.checkbox-inline.disabled,\nfieldset[disabled]\n.checkbox-inline {\n  cursor: not-allowed; }\n\n.radio.disabled label,\nfieldset[disabled] .radio label,\n.checkbox.disabled label,\nfieldset[disabled]\n.checkbox label {\n  cursor: not-allowed; }\n\n.form-control-static {\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n  min-height: 34px; }\n  .form-control-static.input-lg, .input-group-lg > .form-control-static.form-control,\n  .input-group-lg > .form-control-static.input-group-addon,\n  .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,\n  .input-group-sm > .form-control-static.input-group-addon,\n  .input-group-sm > .input-group-btn > .form-control-static.btn {\n    padding-left: 0;\n    padding-right: 0; }\n\n.input-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\nselect.input-sm, .input-group-sm > select.form-control,\n.input-group-sm > select.input-group-addon,\n.input-group-sm > .input-group-btn > select.btn {\n  height: 30px;\n  line-height: 30px; }\n\ntextarea.input-sm, .input-group-sm > textarea.form-control,\n.input-group-sm > textarea.input-group-addon,\n.input-group-sm > .input-group-btn > textarea.btn,\nselect[multiple].input-sm,\n.input-group-sm > select[multiple].form-control,\n.input-group-sm > select[multiple].input-group-addon,\n.input-group-sm > .input-group-btn > select[multiple].btn {\n  height: auto; }\n\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\n.form-group-sm select.form-control {\n  height: 30px;\n  line-height: 30px; }\n\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n  height: auto; }\n\n.form-group-sm .form-control-static {\n  height: 30px;\n  min-height: 32px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5; }\n\n.input-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 6px; }\n\nselect.input-lg, .input-group-lg > select.form-control,\n.input-group-lg > select.input-group-addon,\n.input-group-lg > .input-group-btn > select.btn {\n  height: 46px;\n  line-height: 46px; }\n\ntextarea.input-lg, .input-group-lg > textarea.form-control,\n.input-group-lg > textarea.input-group-addon,\n.input-group-lg > .input-group-btn > textarea.btn,\nselect[multiple].input-lg,\n.input-group-lg > select[multiple].form-control,\n.input-group-lg > select[multiple].input-group-addon,\n.input-group-lg > .input-group-btn > select[multiple].btn {\n  height: auto; }\n\n.form-group-lg .form-control {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 6px; }\n\n.form-group-lg select.form-control {\n  height: 46px;\n  line-height: 46px; }\n\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n  height: auto; }\n\n.form-group-lg .form-control-static {\n  height: 46px;\n  min-height: 38px;\n  padding: 11px 16px;\n  font-size: 18px;\n  line-height: 1.33333; }\n\n.has-feedback {\n  position: relative; }\n  .has-feedback .form-control {\n    padding-right: 42.5px; }\n\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none; }\n\n.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback,\n.input-group-lg > .input-group-addon + .form-control-feedback,\n.input-group-lg > .input-group-btn > .btn + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px; }\n\n.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback,\n.input-group-sm > .input-group-addon + .form-control-feedback,\n.input-group-sm > .input-group-btn > .btn + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px; }\n\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #27a4b0; }\n\n.has-success .form-control {\n  border-color: #27a4b0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n  .has-success .form-control:focus {\n    border-color: #1d7d86;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #60d2dc;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #60d2dc; }\n\n.has-success .input-group-addon {\n  color: #27a4b0;\n  border-color: #27a4b0;\n  background-color: #abe7ed; }\n\n.has-success .form-control-feedback {\n  color: #27a4b0; }\n\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #c29d0b; }\n\n.has-warning .form-control {\n  border-color: #c29d0b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n  .has-warning .form-control:focus {\n    border-color: #927608;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f4d03f;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f4d03f; }\n\n.has-warning .input-group-addon {\n  color: #c29d0b;\n  border-color: #c29d0b;\n  background-color: #f9e491; }\n\n.has-warning .form-control-feedback {\n  color: #c29d0b; }\n\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #e73d4a; }\n\n.has-error .form-control {\n  border-color: #e73d4a;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n  .has-error .form-control:focus {\n    border-color: #d71b29;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f2989f;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f2989f; }\n\n.has-error .input-group-addon {\n  color: #e73d4a;\n  border-color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.has-error .form-control-feedback {\n  color: #e73d4a; }\n\n.has-feedback label ~ .form-control-feedback {\n  top: 25px; }\n\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0; }\n\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373; }\n\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle; }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle; }\n  .form-inline .form-control-static {\n    display: inline-block; }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle; }\n    .form-inline .input-group .input-group-addon,\n    .form-inline .input-group .input-group-btn,\n    .form-inline .input-group .form-control {\n      width: auto; }\n  .form-inline .input-group > .form-control {\n    width: 100%; }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle; }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle; }\n    .form-inline .radio label,\n    .form-inline .checkbox label {\n      padding-left: 0; }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0; }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0; } }\n\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding-top: 7px; }\n\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 27px; }\n\n.form-horizontal .form-group {\n  margin-left: -15px;\n  margin-right: -15px; }\n  .form-horizontal .form-group:before, .form-horizontal .form-group:after {\n    content: \" \";\n    display: table; }\n  .form-horizontal .form-group:after {\n    clear: both; }\n\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    text-align: right;\n    margin-bottom: 0;\n    padding-top: 7px; } }\n\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 15px; }\n\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 11px;\n    font-size: 18px; } }\n\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px; } }\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0;\n  font-weight: normal;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857;\n  border-radius: 4px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none; }\n  .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus {\n    outline: 5px auto -webkit-focus-ring-color;\n    outline-offset: -2px; }\n  .btn:hover, .btn:focus, .btn.focus {\n    color: #333;\n    text-decoration: none; }\n  .btn:active, .btn.active {\n    outline: 0;\n    background-image: none;\n    -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n    box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n  .btn.disabled, .btn[disabled],\n  fieldset[disabled] .btn {\n    cursor: not-allowed;\n    opacity: 0.65;\n    filter: alpha(opacity=65);\n    -webkit-box-shadow: none;\n    box-shadow: none; }\n\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none; }\n\n.btn-default {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc; }\n  .btn-default:focus, .btn-default.focus {\n    color: #333;\n    background-color: #e6e6e6;\n    border-color: #8c8c8c; }\n  .btn-default:hover {\n    color: #333;\n    background-color: #e6e6e6;\n    border-color: #adadad; }\n  .btn-default:active, .btn-default.active,\n  .open > .btn-default.dropdown-toggle {\n    color: #333;\n    background-color: #e6e6e6;\n    border-color: #adadad; }\n    .btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus,\n    .open > .btn-default.dropdown-toggle:hover,\n    .open > .btn-default.dropdown-toggle:focus,\n    .open > .btn-default.dropdown-toggle.focus {\n      color: #333;\n      background-color: #d4d4d4;\n      border-color: #8c8c8c; }\n  .btn-default:active, .btn-default.active,\n  .open > .btn-default.dropdown-toggle {\n    background-image: none; }\n  .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus,\n  fieldset[disabled] .btn-default:hover,\n  fieldset[disabled] .btn-default:focus,\n  fieldset[disabled] .btn-default.focus {\n    background-color: #fff;\n    border-color: #ccc; }\n  .btn-default .badge {\n    color: #fff;\n    background-color: #333; }\n\n.btn-primary {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #2e6da4; }\n  .btn-primary:focus, .btn-primary.focus {\n    color: #fff;\n    background-color: #286090;\n    border-color: #122b40; }\n  .btn-primary:hover {\n    color: #fff;\n    background-color: #286090;\n    border-color: #204d74; }\n  .btn-primary:active, .btn-primary.active,\n  .open > .btn-primary.dropdown-toggle {\n    color: #fff;\n    background-color: #286090;\n    border-color: #204d74; }\n    .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,\n    .open > .btn-primary.dropdown-toggle:hover,\n    .open > .btn-primary.dropdown-toggle:focus,\n    .open > .btn-primary.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #204d74;\n      border-color: #122b40; }\n  .btn-primary:active, .btn-primary.active,\n  .open > .btn-primary.dropdown-toggle {\n    background-image: none; }\n  .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus,\n  fieldset[disabled] .btn-primary:hover,\n  fieldset[disabled] .btn-primary:focus,\n  fieldset[disabled] .btn-primary.focus {\n    background-color: #337ab7;\n    border-color: #2e6da4; }\n  .btn-primary .badge {\n    color: #337ab7;\n    background-color: #fff; }\n\n.btn-success {\n  color: #fff;\n  background-color: #36c6d3;\n  border-color: #2bb8c4; }\n  .btn-success:focus, .btn-success.focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #14565c; }\n  .btn-success:hover {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #208992; }\n  .btn-success:active, .btn-success.active,\n  .open > .btn-success.dropdown-toggle {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #208992; }\n    .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,\n    .open > .btn-success.dropdown-toggle:hover,\n    .open > .btn-success.dropdown-toggle:focus,\n    .open > .btn-success.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #208992;\n      border-color: #14565c; }\n  .btn-success:active, .btn-success.active,\n  .open > .btn-success.dropdown-toggle {\n    background-image: none; }\n  .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus,\n  fieldset[disabled] .btn-success:hover,\n  fieldset[disabled] .btn-success:focus,\n  fieldset[disabled] .btn-success.focus {\n    background-color: #36c6d3;\n    border-color: #2bb8c4; }\n  .btn-success .badge {\n    color: #36c6d3;\n    background-color: #fff; }\n\n.btn-info {\n  color: #fff;\n  background-color: #659be0;\n  border-color: #508edb; }\n  .btn-info:focus, .btn-info.focus {\n    color: #fff;\n    background-color: #3a80d7;\n    border-color: #1d4f8e; }\n  .btn-info:hover {\n    color: #fff;\n    background-color: #3a80d7;\n    border-color: #286ec5; }\n  .btn-info:active, .btn-info.active,\n  .open > .btn-info.dropdown-toggle {\n    color: #fff;\n    background-color: #3a80d7;\n    border-color: #286ec5; }\n    .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus,\n    .open > .btn-info.dropdown-toggle:hover,\n    .open > .btn-info.dropdown-toggle:focus,\n    .open > .btn-info.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #286ec5;\n      border-color: #1d4f8e; }\n  .btn-info:active, .btn-info.active,\n  .open > .btn-info.dropdown-toggle {\n    background-image: none; }\n  .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus,\n  fieldset[disabled] .btn-info:hover,\n  fieldset[disabled] .btn-info:focus,\n  fieldset[disabled] .btn-info.focus {\n    background-color: #659be0;\n    border-color: #508edb; }\n  .btn-info .badge {\n    color: #659be0;\n    background-color: #fff; }\n\n.btn-warning {\n  color: #fff;\n  background-color: #F1C40F;\n  border-color: #dab10d; }\n  .btn-warning:focus, .btn-warning.focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #614f06; }\n  .btn-warning:hover {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #a08209; }\n  .btn-warning:active, .btn-warning.active,\n  .open > .btn-warning.dropdown-toggle {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #a08209; }\n    .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus,\n    .open > .btn-warning.dropdown-toggle:hover,\n    .open > .btn-warning.dropdown-toggle:focus,\n    .open > .btn-warning.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #a08209;\n      border-color: #614f06; }\n  .btn-warning:active, .btn-warning.active,\n  .open > .btn-warning.dropdown-toggle {\n    background-image: none; }\n  .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus,\n  fieldset[disabled] .btn-warning:hover,\n  fieldset[disabled] .btn-warning:focus,\n  fieldset[disabled] .btn-warning.focus {\n    background-color: #F1C40F;\n    border-color: #dab10d; }\n  .btn-warning .badge {\n    color: #F1C40F;\n    background-color: #fff; }\n\n.btn-danger {\n  color: #fff;\n  background-color: #ed6b75;\n  border-color: #ea5460; }\n  .btn-danger:focus, .btn-danger.focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #a91520; }\n  .btn-danger:hover {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e31d2d; }\n  .btn-danger:active, .btn-danger.active,\n  .open > .btn-danger.dropdown-toggle {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e31d2d; }\n    .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus,\n    .open > .btn-danger.dropdown-toggle:hover,\n    .open > .btn-danger.dropdown-toggle:focus,\n    .open > .btn-danger.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #e31d2d;\n      border-color: #a91520; }\n  .btn-danger:active, .btn-danger.active,\n  .open > .btn-danger.dropdown-toggle {\n    background-image: none; }\n  .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus,\n  fieldset[disabled] .btn-danger:hover,\n  fieldset[disabled] .btn-danger:focus,\n  fieldset[disabled] .btn-danger.focus {\n    background-color: #ed6b75;\n    border-color: #ea5460; }\n  .btn-danger .badge {\n    color: #ed6b75;\n    background-color: #fff; }\n\n.btn-link {\n  color: #337ab7;\n  font-weight: normal;\n  border-radius: 0; }\n  .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled],\n  fieldset[disabled] .btn-link {\n    background-color: transparent;\n    -webkit-box-shadow: none;\n    box-shadow: none; }\n  .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {\n    border-color: transparent; }\n  .btn-link:hover, .btn-link:focus {\n    color: #23527c;\n    text-decoration: underline;\n    background-color: transparent; }\n  .btn-link[disabled]:hover, .btn-link[disabled]:focus,\n  fieldset[disabled] .btn-link:hover,\n  fieldset[disabled] .btn-link:focus {\n    color: #6c8dae;\n    text-decoration: none; }\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 6px; }\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\n.btn-xs, .btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\n.btn-block {\n  display: block;\n  width: 100%; }\n\n.btn-block + .btn-block {\n  margin-top: 5px; }\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%; }\n\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n  -o-transition: opacity 0.15s linear;\n  transition: opacity 0.15s linear; }\n  .fade.in {\n    opacity: 1; }\n\n.collapse {\n  display: none; }\n  .collapse.in {\n    display: block; }\n\ntr.collapse.in {\n  display: table-row; }\n\ntbody.collapse.in {\n  display: table-row-group; }\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-property: height, visibility;\n  transition-property: height, visibility;\n  -webkit-transition-duration: 0.35s;\n  transition-duration: 0.35s;\n  -webkit-transition-timing-function: ease;\n  transition-timing-function: ease; }\n\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid \\9;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent; }\n\n.dropup,\n.dropdown {\n  position: relative; }\n\n.dropdown-toggle:focus {\n  outline: 0; }\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0/*rtl:auto*/;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  font-size: 14px;\n  text-align: left;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  background-clip: padding-box; }\n  .dropdown-menu.pull-right {\n    right: 0;\n    left: auto; }\n  .dropdown-menu .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background-color: #e5e5e5; }\n  .dropdown-menu > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: 1.42857;\n    color: #333333;\n    white-space: nowrap; }\n\n.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {\n  text-decoration: none;\n  color: #262626;\n  background-color: #e1e5ec; }\n\n.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  background-color: #337ab7; }\n\n.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {\n  color: #777777; }\n\n.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  cursor: not-allowed; }\n\n.open > .dropdown-menu {\n  display: block; }\n\n.open > a {\n  outline: 0; }\n\n.dropdown-menu-right {\n  left: auto;\n  right: 0; }\n\n.dropdown-menu-left {\n  left: 0;\n  right: auto; }\n\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857;\n  color: #777777;\n  white-space: nowrap; }\n\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: 990; }\n\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto; }\n\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px dashed;\n  border-bottom: 4px solid \\9;\n  content: \"\"; }\n\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 2px; }\n\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    right: 0;\n    left: auto; }\n  .navbar-right .dropdown-menu-left {\n    left: 0;\n    right: auto; } }\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; }\n  .btn-group > .btn,\n  .btn-group-vertical > .btn {\n    position: relative;\n    float: left; }\n    .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n    .btn-group-vertical > .btn:hover,\n    .btn-group-vertical > .btn:focus,\n    .btn-group-vertical > .btn:active,\n    .btn-group-vertical > .btn.active {\n      z-index: 2; }\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px; }\n\n.btn-toolbar {\n  margin-left: -5px; }\n  .btn-toolbar:before, .btn-toolbar:after {\n    content: \" \";\n    display: table; }\n  .btn-toolbar:after {\n    clear: both; }\n  .btn-toolbar .btn,\n  .btn-toolbar .btn-group,\n  .btn-toolbar .input-group {\n    float: left; }\n  .btn-toolbar > .btn,\n  .btn-toolbar > .btn-group,\n  .btn-toolbar > .input-group {\n    margin-left: 5px; }\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0; }\n\n.btn-group > .btn:first-child {\n  margin-left: 0; }\n  .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n    border-bottom-right-radius: 0;\n    border-top-right-radius: 0; }\n\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0; }\n\n.btn-group > .btn-group {\n  float: left; }\n\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0; }\n\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0; }\n\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0; }\n\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0; }\n\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px; }\n\n.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px; }\n\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n  .btn-group.open .dropdown-toggle.btn-link {\n    -webkit-box-shadow: none;\n    box-shadow: none; }\n\n.btn .caret {\n  margin-left: 0; }\n\n.btn-lg .caret, .btn-group-lg > .btn .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0; }\n\n.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {\n  border-width: 0 5px 5px; }\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%; }\n\n.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {\n  content: \" \";\n  display: table; }\n\n.btn-group-vertical > .btn-group:after {\n  clear: both; }\n\n.btn-group-vertical > .btn-group > .btn {\n  float: none; }\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0; }\n\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0; }\n\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px; }\n\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0; }\n\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate; }\n  .btn-group-justified > .btn,\n  .btn-group-justified > .btn-group {\n    float: none;\n    display: table-cell;\n    width: 1%; }\n  .btn-group-justified > .btn-group .btn {\n    width: 100%; }\n  .btn-group-justified > .btn-group .dropdown-menu {\n    left: auto; }\n\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none; }\n\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate; }\n  .input-group[class*=\"col-\"] {\n    float: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .input-group .form-control {\n    position: relative;\n    z-index: 2;\n    float: left;\n    width: 100%;\n    margin-bottom: 0; }\n    .input-group .form-control:focus {\n      z-index: 3; }\n\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell; }\n  .input-group-addon:not(:first-child):not(:last-child),\n  .input-group-btn:not(:first-child):not(:last-child),\n  .input-group .form-control:not(:first-child):not(:last-child) {\n    border-radius: 0; }\n\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; }\n\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  border-radius: 4px; }\n  .input-group-addon.input-sm,\n  .input-group-sm > .input-group-addon,\n  .input-group-sm > .input-group-btn > .input-group-addon.btn {\n    padding: 5px 10px;\n    font-size: 12px;\n    border-radius: 3px; }\n  .input-group-addon.input-lg,\n  .input-group-lg > .input-group-addon,\n  .input-group-lg > .input-group-btn > .input-group-addon.btn {\n    padding: 10px 16px;\n    font-size: 18px;\n    border-radius: 6px; }\n  .input-group-addon input[type=\"radio\"],\n  .input-group-addon input[type=\"checkbox\"] {\n    margin-top: 0; }\n\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0; }\n\n.input-group-addon:first-child {\n  border-right: 0; }\n\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0; }\n\n.input-group-addon:last-child {\n  border-left: 0; }\n\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap; }\n  .input-group-btn > .btn {\n    position: relative; }\n    .input-group-btn > .btn + .btn {\n      margin-left: -1px; }\n    .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {\n      z-index: 2; }\n  .input-group-btn:first-child > .btn,\n  .input-group-btn:first-child > .btn-group {\n    margin-right: -1px; }\n  .input-group-btn:last-child > .btn,\n  .input-group-btn:last-child > .btn-group {\n    z-index: 2;\n    margin-left: -1px; }\n\n.nav {\n  margin-bottom: 0;\n  padding-left: 0;\n  list-style: none; }\n  .nav:before, .nav:after {\n    content: \" \";\n    display: table; }\n  .nav:after {\n    clear: both; }\n  .nav > li {\n    position: relative;\n    display: block; }\n    .nav > li > a {\n      position: relative;\n      display: block;\n      padding: 10px 15px; }\n      .nav > li > a:hover, .nav > li > a:focus {\n        text-decoration: none;\n        background-color: #eeeeee; }\n    .nav > li.disabled > a {\n      color: #777777; }\n      .nav > li.disabled > a:hover, .nav > li.disabled > a:focus {\n        color: #777777;\n        text-decoration: none;\n        background-color: transparent;\n        cursor: not-allowed; }\n  .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {\n    background-color: #eeeeee;\n    border-color: #337ab7; }\n  .nav .nav-divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background-color: #e5e5e5; }\n  .nav > li > a > img {\n    max-width: none; }\n\n.nav-tabs {\n  border-bottom: 1px solid #ddd; }\n  .nav-tabs > li {\n    float: left;\n    margin-bottom: -1px; }\n    .nav-tabs > li > a {\n      margin-right: 2px;\n      line-height: 1.42857;\n      border: 1px solid transparent;\n      border-radius: 4px 4px 0 0; }\n      .nav-tabs > li > a:hover {\n        border-color: #eeeeee #eeeeee #ddd; }\n    .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\n      color: #555555;\n      background-color: #fff;\n      border: 1px solid #ddd;\n      border-bottom-color: transparent;\n      cursor: default; }\n\n.nav-pills > li {\n  float: left; }\n  .nav-pills > li > a {\n    border-radius: 4px; }\n  .nav-pills > li + li {\n    margin-left: 2px; }\n  .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {\n    color: #fff;\n    background-color: #337ab7; }\n\n.nav-stacked > li {\n  float: none; }\n  .nav-stacked > li + li {\n    margin-top: 2px;\n    margin-left: 0; }\n\n.nav-justified, .nav-tabs.nav-justified {\n  width: 100%; }\n  .nav-justified > li, .nav-tabs.nav-justified > li {\n    float: none; }\n    .nav-justified > li > a, .nav-tabs.nav-justified > li > a {\n      text-align: center;\n      margin-bottom: 5px; }\n  .nav-justified > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto; }\n  @media (min-width: 768px) {\n    .nav-justified > li, .nav-tabs.nav-justified > li {\n      display: table-cell;\n      width: 1%; }\n      .nav-justified > li > a, .nav-tabs.nav-justified > li > a {\n        margin-bottom: 0; } }\n\n.nav-tabs-justified, .nav-tabs.nav-justified {\n  border-bottom: 0; }\n  .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {\n    margin-right: 0;\n    border-radius: 4px; }\n  .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {\n    border: 1px solid #ddd; }\n  @media (min-width: 768px) {\n    .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {\n      border-bottom: 1px solid #ddd;\n      border-radius: 4px 4px 0 0; }\n    .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,\n    .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,\n    .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {\n      border-bottom-color: #fff; } }\n\n.tab-content > .tab-pane {\n  display: none; }\n\n.tab-content > .active {\n  display: block; }\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent; }\n  .navbar:before, .navbar:after {\n    content: \" \";\n    display: table; }\n  .navbar:after {\n    clear: both; }\n  @media (min-width: 768px) {\n    .navbar {\n      border-radius: 4px; } }\n\n.navbar-header:before, .navbar-header:after {\n  content: \" \";\n  display: table; }\n\n.navbar-header:after {\n  clear: both; }\n\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left; } }\n\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: 15px;\n  padding-left: 15px;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n  -webkit-overflow-scrolling: touch; }\n  .navbar-collapse:before, .navbar-collapse:after {\n    content: \" \";\n    display: table; }\n  .navbar-collapse:after {\n    clear: both; }\n  .navbar-collapse.in {\n    overflow-y: auto; }\n  @media (min-width: 768px) {\n    .navbar-collapse {\n      width: auto;\n      border-top: 0;\n      box-shadow: none; }\n      .navbar-collapse.collapse {\n        display: block !important;\n        height: auto !important;\n        padding-bottom: 0;\n        overflow: visible !important; }\n      .navbar-collapse.in {\n        overflow-y: visible; }\n      .navbar-fixed-top .navbar-collapse,\n      .navbar-static-top .navbar-collapse,\n      .navbar-fixed-bottom .navbar-collapse {\n        padding-left: 0;\n        padding-right: 0; } }\n\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px; }\n  @media (max-device-width: 480px) and (orientation: landscape) {\n    .navbar-fixed-top .navbar-collapse,\n    .navbar-fixed-bottom .navbar-collapse {\n      max-height: 200px; } }\n\n.container > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-header,\n.container-fluid > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px; }\n  @media (min-width: 768px) {\n    .container > .navbar-header,\n    .container > .navbar-collapse,\n    .container-fluid > .navbar-header,\n    .container-fluid > .navbar-collapse {\n      margin-right: 0;\n      margin-left: 0; } }\n\n.navbar-static-top {\n  z-index: 9995;\n  border-width: 0 0 1px; }\n  @media (min-width: 768px) {\n    .navbar-static-top {\n      border-radius: 0; } }\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030; }\n  @media (min-width: 768px) {\n    .navbar-fixed-top,\n    .navbar-fixed-bottom {\n      border-radius: 0; } }\n\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px; }\n\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0; }\n\n.navbar-brand {\n  float: left;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n  height: 50px; }\n  .navbar-brand:hover, .navbar-brand:focus {\n    text-decoration: none; }\n  .navbar-brand > img {\n    display: block; }\n  @media (min-width: 768px) {\n    .navbar > .container .navbar-brand,\n    .navbar > .container-fluid .navbar-brand {\n      margin-left: -15px; } }\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: 15px;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px; }\n  .navbar-toggle:focus {\n    outline: 0; }\n  .navbar-toggle .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px; }\n  .navbar-toggle .icon-bar + .icon-bar {\n    margin-top: 4px; }\n  @media (min-width: 768px) {\n    .navbar-toggle {\n      display: none; } }\n\n.navbar-nav {\n  margin: 7.5px -15px; }\n  .navbar-nav > li > a {\n    padding-top: 10px;\n    padding-bottom: 10px;\n    line-height: 20px; }\n  @media (max-width: 767px) {\n    .navbar-nav .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none; }\n      .navbar-nav .open .dropdown-menu > li > a,\n      .navbar-nav .open .dropdown-menu .dropdown-header {\n        padding: 5px 15px 5px 25px; }\n      .navbar-nav .open .dropdown-menu > li > a {\n        line-height: 20px; }\n        .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {\n          background-image: none; } }\n  @media (min-width: 768px) {\n    .navbar-nav {\n      float: left;\n      margin: 0; }\n      .navbar-nav > li {\n        float: left; }\n        .navbar-nav > li > a {\n          padding-top: 15px;\n          padding-bottom: 15px; } }\n\n.navbar-form {\n  margin-left: -15px;\n  margin-right: -15px;\n  padding: 10px 15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  margin-top: 8px;\n  margin-bottom: 8px; }\n  @media (min-width: 768px) {\n    .navbar-form .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle; }\n    .navbar-form .form-control {\n      display: inline-block;\n      width: auto;\n      vertical-align: middle; }\n    .navbar-form .form-control-static {\n      display: inline-block; }\n    .navbar-form .input-group {\n      display: inline-table;\n      vertical-align: middle; }\n      .navbar-form .input-group .input-group-addon,\n      .navbar-form .input-group .input-group-btn,\n      .navbar-form .input-group .form-control {\n        width: auto; }\n    .navbar-form .input-group > .form-control {\n      width: 100%; }\n    .navbar-form .control-label {\n      margin-bottom: 0;\n      vertical-align: middle; }\n    .navbar-form .radio,\n    .navbar-form .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle; }\n      .navbar-form .radio label,\n      .navbar-form .checkbox label {\n        padding-left: 0; }\n    .navbar-form .radio input[type=\"radio\"],\n    .navbar-form .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0; }\n    .navbar-form .has-feedback .form-control-feedback {\n      top: 0; } }\n  @media (max-width: 767px) {\n    .navbar-form .form-group {\n      margin-bottom: 5px; }\n      .navbar-form .form-group:last-child {\n        margin-bottom: 0; } }\n  @media (min-width: 768px) {\n    .navbar-form {\n      width: auto;\n      border: 0;\n      margin-left: 0;\n      margin-right: 0;\n      padding-top: 0;\n      padding-bottom: 0;\n      -webkit-box-shadow: none;\n      box-shadow: none; } }\n\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px; }\n  .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {\n    margin-top: 10px;\n    margin-bottom: 10px; }\n  .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {\n    margin-top: 14px;\n    margin-bottom: 14px; }\n\n.navbar-text {\n  margin-top: 15px;\n  margin-bottom: 15px; }\n  @media (min-width: 768px) {\n    .navbar-text {\n      float: left;\n      margin-left: 15px;\n      margin-right: 15px; } }\n\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important; }\n  .navbar-right {\n    float: right !important;\n    margin-right: -15px; }\n    .navbar-right ~ .navbar-right {\n      margin-right: 0; } }\n\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7; }\n  .navbar-default .navbar-brand {\n    color: #777; }\n    .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {\n      color: #5e5e5e;\n      background-color: transparent; }\n  .navbar-default .navbar-text {\n    color: #777; }\n  .navbar-default .navbar-nav > li > a {\n    color: #777; }\n    .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {\n      color: #333;\n      background-color: transparent; }\n  .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {\n    color: #555;\n    background-color: #e7e7e7; }\n  .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus {\n    color: #ccc;\n    background-color: transparent; }\n  .navbar-default .navbar-toggle {\n    border-color: #ddd; }\n    .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {\n      background-color: #ddd; }\n    .navbar-default .navbar-toggle .icon-bar {\n      background-color: #888; }\n  .navbar-default .navbar-collapse,\n  .navbar-default .navbar-form {\n    border-color: #e7e7e7; }\n  .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {\n    background-color: #e7e7e7;\n    color: #555; }\n  @media (max-width: 767px) {\n    .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n      color: #777; }\n      .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n        color: #333;\n        background-color: transparent; }\n    .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n      color: #555;\n      background-color: #e7e7e7; }\n    .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n      color: #ccc;\n      background-color: transparent; } }\n  .navbar-default .navbar-link {\n    color: #777; }\n    .navbar-default .navbar-link:hover {\n      color: #333; }\n  .navbar-default .btn-link {\n    color: #777; }\n    .navbar-default .btn-link:hover, .navbar-default .btn-link:focus {\n      color: #333; }\n    .navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus,\n    fieldset[disabled] .navbar-default .btn-link:hover,\n    fieldset[disabled] .navbar-default .btn-link:focus {\n      color: #ccc; }\n\n.navbar-inverse {\n  background-color: #222;\n  border-color: #090909; }\n  .navbar-inverse .navbar-brand {\n    color: #9d9d9d; }\n    .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {\n      color: #fff;\n      background-color: transparent; }\n  .navbar-inverse .navbar-text {\n    color: #9d9d9d; }\n  .navbar-inverse .navbar-nav > li > a {\n    color: #9d9d9d; }\n    .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {\n      color: #fff;\n      background-color: transparent; }\n  .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus {\n    color: #fff;\n    background-color: #090909; }\n  .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus {\n    color: #444;\n    background-color: transparent; }\n  .navbar-inverse .navbar-toggle {\n    border-color: #333; }\n    .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {\n      background-color: #333; }\n    .navbar-inverse .navbar-toggle .icon-bar {\n      background-color: #fff; }\n  .navbar-inverse .navbar-collapse,\n  .navbar-inverse .navbar-form {\n    border-color: #101010; }\n  .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {\n    background-color: #090909;\n    color: #fff; }\n  @media (max-width: 767px) {\n    .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n      border-color: #090909; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n      background-color: #090909; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n      color: #9d9d9d; }\n      .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n        color: #fff;\n        background-color: transparent; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n      color: #fff;\n      background-color: #090909; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n      color: #444;\n      background-color: transparent; } }\n  .navbar-inverse .navbar-link {\n    color: #9d9d9d; }\n    .navbar-inverse .navbar-link:hover {\n      color: #fff; }\n  .navbar-inverse .btn-link {\n    color: #9d9d9d; }\n    .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus {\n      color: #fff; }\n    .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus,\n    fieldset[disabled] .navbar-inverse .btn-link:hover,\n    fieldset[disabled] .navbar-inverse .btn-link:focus {\n      color: #444; }\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px; }\n  .breadcrumb > li {\n    display: inline-block; }\n    .breadcrumb > li + li:before {\n      content: \"/ \";\n      padding: 0 5px;\n      color: #ccc; }\n  .breadcrumb > .active {\n    color: #777777; }\n\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px; }\n  .pagination > li {\n    display: inline; }\n    .pagination > li > a,\n    .pagination > li > span {\n      position: relative;\n      float: left;\n      padding: 6px 12px;\n      line-height: 1.42857;\n      text-decoration: none;\n      color: #337ab7;\n      background-color: #fff;\n      border: 1px solid #ddd;\n      margin-left: -1px; }\n    .pagination > li:first-child > a,\n    .pagination > li:first-child > span {\n      margin-left: 0;\n      border-bottom-left-radius: 4px;\n      border-top-left-radius: 4px; }\n    .pagination > li:last-child > a,\n    .pagination > li:last-child > span {\n      border-bottom-right-radius: 4px;\n      border-top-right-radius: 4px; }\n  .pagination > li > a:hover, .pagination > li > a:focus,\n  .pagination > li > span:hover,\n  .pagination > li > span:focus {\n    z-index: 2;\n    color: #23527c;\n    background-color: #eeeeee;\n    border-color: #ddd; }\n  .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,\n  .pagination > .active > span,\n  .pagination > .active > span:hover,\n  .pagination > .active > span:focus {\n    z-index: 3;\n    color: #fff;\n    background-color: #337ab7;\n    border-color: #337ab7;\n    cursor: default; }\n  .pagination > .disabled > span,\n  .pagination > .disabled > span:hover,\n  .pagination > .disabled > span:focus,\n  .pagination > .disabled > a,\n  .pagination > .disabled > a:hover,\n  .pagination > .disabled > a:focus {\n    color: #777777;\n    background-color: #fff;\n    border-color: #ddd;\n    cursor: not-allowed; }\n\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333; }\n\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-bottom-left-radius: 6px;\n  border-top-left-radius: 6px; }\n\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-bottom-right-radius: 6px;\n  border-top-right-radius: 6px; }\n\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5; }\n\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px; }\n\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px; }\n\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  list-style: none;\n  text-align: center; }\n  .pager:before, .pager:after {\n    content: \" \";\n    display: table; }\n  .pager:after {\n    clear: both; }\n  .pager li {\n    display: inline; }\n    .pager li > a,\n    .pager li > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: #fff;\n      border: 1px solid #ddd;\n      border-radius: 15px; }\n    .pager li > a:hover,\n    .pager li > a:focus {\n      text-decoration: none;\n      background-color: #eeeeee; }\n  .pager .next > a,\n  .pager .next > span {\n    float: right; }\n  .pager .previous > a,\n  .pager .previous > span {\n    float: left; }\n  .pager .disabled > a,\n  .pager .disabled > a:hover,\n  .pager .disabled > a:focus,\n  .pager .disabled > span {\n    color: #777777;\n    background-color: #fff;\n    cursor: not-allowed; }\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em; }\n  .label:empty {\n    display: none; }\n  .btn .label {\n    position: relative;\n    top: -1px; }\n\na.label:hover, a.label:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer; }\n\n.label-default {\n  background-color: #777777; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #5e5e5e; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #5cb85c; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #449d44; }\n\n.label-info {\n  background-color: #5bc0de; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #31b0d5; }\n\n.label-warning {\n  background-color: #f0ad4e; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #ec971f; }\n\n.label-danger {\n  background-color: #d9534f; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #c9302c; }\n\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  color: #fff;\n  line-height: 1;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: #777777;\n  border-radius: 10px; }\n  .badge:empty {\n    display: none; }\n  .btn .badge {\n    position: relative;\n    top: -1px; }\n  .btn-xs .badge, .btn-group-xs > .btn .badge,\n  .btn-group-xs > .btn .badge {\n    top: 0;\n    padding: 1px 5px; }\n  .list-group-item.active > .badge,\n  .nav-pills > .active > a > .badge {\n    color: #337ab7;\n    background-color: #fff; }\n  .list-group-item > .badge {\n    float: right; }\n  .list-group-item > .badge + .badge {\n    margin-right: 5px; }\n  .nav-pills > li > a > .badge {\n    margin-left: 3px; }\n\na.badge:hover, a.badge:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer; }\n\n.jumbotron {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eeeeee; }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    color: inherit; }\n  .jumbotron p {\n    margin-bottom: 15px;\n    font-size: 21px;\n    font-weight: 200; }\n  .jumbotron > hr {\n    border-top-color: #d5d5d5; }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    border-radius: 6px;\n    padding-left: 15px;\n    padding-right: 15px; }\n  .jumbotron .container {\n    max-width: 100%; }\n  @media screen and (min-width: 768px) {\n    .jumbotron {\n      padding-top: 48px;\n      padding-bottom: 48px; }\n      .container .jumbotron,\n      .container-fluid .jumbotron {\n        padding-left: 60px;\n        padding-right: 60px; }\n      .jumbotron h1,\n      .jumbotron .h1 {\n        font-size: 63px; } }\n\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.42857;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: border 0.2s ease-in-out;\n  -o-transition: border 0.2s ease-in-out;\n  transition: border 0.2s ease-in-out; }\n  .thumbnail > img,\n  .thumbnail a > img {\n    display: block;\n    max-width: 100%;\n    height: auto;\n    margin-left: auto;\n    margin-right: auto; }\n  .thumbnail .caption {\n    padding: 9px;\n    color: #333333; }\n\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7; }\n\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px; }\n  .alert h4 {\n    margin-top: 0;\n    color: inherit; }\n  .alert .alert-link {\n    font-weight: bold; }\n  .alert > p,\n  .alert > ul {\n    margin-bottom: 0; }\n  .alert > p + p {\n    margin-top: 5px; }\n\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px; }\n  .alert-dismissable .close,\n  .alert-dismissible .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit; }\n\n.alert-success {\n  background-color: #abe7ed;\n  border-color: #abe7ed;\n  color: #27a4b0; }\n  .alert-success hr {\n    border-top-color: #96e1e8; }\n  .alert-success .alert-link {\n    color: #1d7d86; }\n\n.alert-info {\n  background-color: #e0ebf9;\n  border-color: #e0ebf9;\n  color: #327ad5; }\n  .alert-info hr {\n    border-top-color: #caddf4; }\n  .alert-info .alert-link {\n    color: #2462b0; }\n\n.alert-warning {\n  background-color: #f9e491;\n  border-color: #f9e491;\n  color: #c29d0b; }\n  .alert-warning hr {\n    border-top-color: #f7de79; }\n  .alert-warning .alert-link {\n    color: #927608; }\n\n.alert-danger {\n  background-color: #fbe1e3;\n  border-color: #fbe1e3;\n  color: #e73d4a; }\n  .alert-danger hr {\n    border-top-color: #f8cace; }\n  .alert-danger .alert-link {\n    color: #d71b29; }\n    \n.alert-danger-row-null {\n  background-color: #fbe1e3;\n  border-color: #fbe1e3;\n  color: #e73d4a; }\n  .alert-danger-row-null hr {\n    border-top-color: #f8cace; }\n  .alert-danger-row-null .alert-link {\n    color: #d71b29; }\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0; }\n  to {\n    background-position: 0 0; } }\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0; }\n  to {\n    background-position: 0 0; } }\n\n.progress {\n  overflow: hidden;\n  height: 20px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }\n\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #fff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-transition: width 0.6s ease;\n  -o-transition: width 0.6s ease;\n  transition: width 0.6s ease; }\n\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 40px 40px; }\n\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n  -o-animation: progress-bar-stripes 2s linear infinite;\n  animation: progress-bar-stripes 2s linear infinite; }\n\n.progress-bar-success {\n  background-color: #36c6d3; }\n  .progress-striped .progress-bar-success {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-info {\n  background-color: #659be0; }\n  .progress-striped .progress-bar-info {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-warning {\n  background-color: #F1C40F; }\n  .progress-striped .progress-bar-warning {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-danger {\n  background-color: #ed6b75; }\n  .progress-striped .progress-bar-danger {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.media {\n  margin-top: 15px; }\n  .media:first-child {\n    margin-top: 0; }\n\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden; }\n\n.media-body {\n  width: 10000px; }\n\n.media-object {\n  display: block; }\n  .media-object.img-thumbnail {\n    max-width: none; }\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px; }\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px; }\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top; }\n\n.media-middle {\n  vertical-align: middle; }\n\n.media-bottom {\n  vertical-align: bottom; }\n\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px; }\n\n.media-list {\n  padding-left: 0;\n  list-style: none; }\n\n.list-group {\n  margin-bottom: 20px;\n  padding-left: 0; }\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid #ddd; }\n  .list-group-item:first-child {\n    border-top-right-radius: 4px;\n    border-top-left-radius: 4px; }\n  .list-group-item:last-child {\n    margin-bottom: 0;\n    border-bottom-right-radius: 4px;\n    border-bottom-left-radius: 4px; }\n\na.list-group-item,\nbutton.list-group-item {\n  color: #555; }\n  a.list-group-item .list-group-item-heading,\n  button.list-group-item .list-group-item-heading {\n    color: #333; }\n  a.list-group-item:hover, a.list-group-item:focus,\n  button.list-group-item:hover,\n  button.list-group-item:focus {\n    text-decoration: none;\n    color: #555;\n    background-color: #f5f5f5; }\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left; }\n\n.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus {\n  background-color: #f1f4f7;\n  color: #b1b7bd;\n  cursor: not-allowed; }\n  .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading {\n    color: inherit; }\n  .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text {\n    color: #b1b7bd; }\n\n.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {\n  z-index: 2;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7; }\n  .list-group-item.active .list-group-item-heading,\n  .list-group-item.active .list-group-item-heading > small,\n  .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,\n  .list-group-item.active:hover .list-group-item-heading > small,\n  .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,\n  .list-group-item.active:focus .list-group-item-heading > small,\n  .list-group-item.active:focus .list-group-item-heading > .small {\n    color: inherit; }\n  .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text {\n    color: #c7ddef; }\n\n.list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #27a4b0; }\n  a.list-group-item-success .list-group-item-heading,\n  button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-success:hover, a.list-group-item-success:focus,\n  button.list-group-item-success:hover,\n  button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus,\n  button.list-group-item-success.active,\n  button.list-group-item-success.active:hover,\n  button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #327ad5; }\n  a.list-group-item-info .list-group-item-heading,\n  button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-info:hover, a.list-group-item-info:focus,\n  button.list-group-item-info:hover,\n  button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus,\n  button.list-group-item-info.active,\n  button.list-group-item-info.active:hover,\n  button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #c29d0b; }\n  a.list-group-item-warning .list-group-item-heading,\n  button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-warning:hover, a.list-group-item-warning:focus,\n  button.list-group-item-warning:hover,\n  button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus,\n  button.list-group-item-warning.active,\n  button.list-group-item-warning.active:hover,\n  button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #e73d4a; }\n  a.list-group-item-danger .list-group-item-heading,\n  button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-danger:hover, a.list-group-item-danger:focus,\n  button.list-group-item-danger:hover,\n  button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus,\n  button.list-group-item-danger.active,\n  button.list-group-item-danger.active:hover,\n  button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px; }\n\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3; }\n\n.panel {\n  margin-bottom: 20px;\n  background-color: #fff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n\n.panel-body {\n  padding: 15px; }\n  .panel-body:before, .panel-body:after {\n    content: \" \";\n    display: table; }\n  .panel-body:after {\n    clear: both; }\n\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px; }\n  .panel-heading > .dropdown .dropdown-toggle {\n    color: inherit; }\n\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n  color: inherit; }\n  .panel-title > a,\n  .panel-title > small,\n  .panel-title > .small,\n  .panel-title > small > a,\n  .panel-title > .small > a {\n    color: inherit; }\n\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px; }\n\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0; }\n  .panel > .list-group .list-group-item,\n  .panel > .panel-collapse > .list-group .list-group-item {\n    border-width: 1px 0;\n    border-radius: 0; }\n  .panel > .list-group:first-child .list-group-item:first-child,\n  .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n    border-top: 0;\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n  .panel > .list-group:last-child .list-group-item:last-child,\n  .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n    border-bottom: 0;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px; }\n\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0; }\n\n.list-group + .panel-footer {\n  border-top-width: 0; }\n\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0; }\n  .panel > .table caption,\n  .panel > .table-responsive > .table caption,\n  .panel > .panel-collapse > .table caption {\n    padding-left: 15px;\n    padding-right: 15px; }\n\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px; }\n  .panel > .table:first-child > thead:first-child > tr:first-child,\n  .panel > .table:first-child > tbody:first-child > tr:first-child,\n  .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n  .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n    border-top-left-radius: 3px;\n    border-top-right-radius: 3px; }\n    .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n    .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n      border-top-left-radius: 3px; }\n    .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n    .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n      border-top-right-radius: 3px; }\n\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px; }\n  .panel > .table:last-child > tbody:last-child > tr:last-child,\n  .panel > .table:last-child > tfoot:last-child > tr:last-child,\n  .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n  .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n    border-bottom-left-radius: 3px;\n    border-bottom-right-radius: 3px; }\n    .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n    .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n      border-bottom-left-radius: 3px; }\n    .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n    .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n      border-bottom-right-radius: 3px; }\n\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #e7ecf1; }\n\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0; }\n\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0; }\n  .panel > .table-bordered > thead > tr > th:first-child,\n  .panel > .table-bordered > thead > tr > td:first-child,\n  .panel > .table-bordered > tbody > tr > th:first-child,\n  .panel > .table-bordered > tbody > tr > td:first-child,\n  .panel > .table-bordered > tfoot > tr > th:first-child,\n  .panel > .table-bordered > tfoot > tr > td:first-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0; }\n  .panel > .table-bordered > thead > tr > th:last-child,\n  .panel > .table-bordered > thead > tr > td:last-child,\n  .panel > .table-bordered > tbody > tr > th:last-child,\n  .panel > .table-bordered > tbody > tr > td:last-child,\n  .panel > .table-bordered > tfoot > tr > th:last-child,\n  .panel > .table-bordered > tfoot > tr > td:last-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0; }\n  .panel > .table-bordered > thead > tr:first-child > td,\n  .panel > .table-bordered > thead > tr:first-child > th,\n  .panel > .table-bordered > tbody > tr:first-child > td,\n  .panel > .table-bordered > tbody > tr:first-child > th,\n  .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n  .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n  .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n  .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n    border-bottom: 0; }\n  .panel > .table-bordered > tbody > tr:last-child > td,\n  .panel > .table-bordered > tbody > tr:last-child > th,\n  .panel > .table-bordered > tfoot > tr:last-child > td,\n  .panel > .table-bordered > tfoot > tr:last-child > th,\n  .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n  .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n    border-bottom: 0; }\n\n.panel > .table-responsive {\n  border: 0;\n  margin-bottom: 0; }\n\n.panel-group {\n  margin-bottom: 20px; }\n  .panel-group .panel {\n    margin-bottom: 0;\n    border-radius: 4px; }\n    .panel-group .panel + .panel {\n      margin-top: 5px; }\n  .panel-group .panel-heading {\n    border-bottom: 0; }\n    .panel-group .panel-heading + .panel-collapse > .panel-body,\n    .panel-group .panel-heading + .panel-collapse > .list-group {\n      border-top: 1px solid #ddd; }\n  .panel-group .panel-footer {\n    border-top: 0; }\n    .panel-group .panel-footer + .panel-collapse .panel-body {\n      border-bottom: 1px solid #ddd; }\n\n.panel-default {\n  border-color: #ddd; }\n  .panel-default > .panel-heading {\n    color: #333333;\n    background-color: #f5f5f5;\n    border-color: #ddd; }\n    .panel-default > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #ddd; }\n    .panel-default > .panel-heading .badge {\n      color: #f5f5f5;\n      background-color: #333333; }\n  .panel-default > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #ddd; }\n\n.panel-primary {\n  border-color: #337ab7; }\n  .panel-primary > .panel-heading {\n    color: #fff;\n    background-color: #337ab7;\n    border-color: #337ab7; }\n    .panel-primary > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #337ab7; }\n    .panel-primary > .panel-heading .badge {\n      color: #337ab7;\n      background-color: #fff; }\n  .panel-primary > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #337ab7; }\n\n.panel-success {\n  border-color: #abe7ed; }\n  .panel-success > .panel-heading {\n    color: #27a4b0;\n    background-color: #abe7ed;\n    border-color: #abe7ed; }\n    .panel-success > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #abe7ed; }\n    .panel-success > .panel-heading .badge {\n      color: #abe7ed;\n      background-color: #27a4b0; }\n  .panel-success > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #abe7ed; }\n\n.panel-info {\n  border-color: #e0ebf9; }\n  .panel-info > .panel-heading {\n    color: #327ad5;\n    background-color: #e0ebf9;\n    border-color: #e0ebf9; }\n    .panel-info > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #e0ebf9; }\n    .panel-info > .panel-heading .badge {\n      color: #e0ebf9;\n      background-color: #327ad5; }\n  .panel-info > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #e0ebf9; }\n\n.panel-warning {\n  border-color: #f9e491; }\n  .panel-warning > .panel-heading {\n    color: #c29d0b;\n    background-color: #f9e491;\n    border-color: #f9e491; }\n    .panel-warning > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #f9e491; }\n    .panel-warning > .panel-heading .badge {\n      color: #f9e491;\n      background-color: #c29d0b; }\n  .panel-warning > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #f9e491; }\n\n.panel-danger {\n  border-color: #fbe1e3; }\n  .panel-danger > .panel-heading {\n    color: #e73d4a;\n    background-color: #fbe1e3;\n    border-color: #fbe1e3; }\n    .panel-danger > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #fbe1e3; }\n    .panel-danger > .panel-heading .badge {\n      color: #fbe1e3;\n      background-color: #e73d4a; }\n  .panel-danger > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #fbe1e3; }\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden; }\n  .embed-responsive .embed-responsive-item,\n  .embed-responsive iframe,\n  .embed-responsive embed,\n  .embed-responsive object,\n  .embed-responsive video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    height: 100%;\n    width: 100%;\n    border: 0; }\n\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%; }\n\n.embed-responsive-4by3 {\n  padding-bottom: 75%; }\n\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f1f4f7;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }\n  .well blockquote {\n    border-color: #ddd;\n    border-color: rgba(0, 0, 0, 0.15); }\n\n.well-lg {\n  padding: 24px;\n  border-radius: 6px; }\n\n.well-sm {\n  padding: 9px;\n  border-radius: 3px; }\n\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: 0.2;\n  filter: alpha(opacity=20); }\n  .close:hover, .close:focus {\n    color: #000;\n    text-decoration: none;\n    cursor: pointer;\n    opacity: 0.5;\n    filter: alpha(opacity=50); }\n\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none; }\n\n.modal-open {\n  overflow: hidden; }\n\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 10050;\n  -webkit-overflow-scrolling: touch;\n  outline: 0; }\n  .modal.fade .modal-dialog {\n    -webkit-transform: translate(0, -25%);\n    -ms-transform: translate(0, -25%);\n    -o-transform: translate(0, -25%);\n    transform: translate(0, -25%);\n    -webkit-transition: -webkit-transform 0.3s ease-out;\n    -moz-transition: -moz-transform 0.3s ease-out;\n    -o-transition: -o-transform 0.3s ease-out;\n    transition: transform 0.3s ease-out; }\n  .modal.in .modal-dialog {\n    -webkit-transform: translate(0, 0);\n    -ms-transform: translate(0, 0);\n    -o-transform: translate(0, 0);\n    transform: translate(0, 0); }\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto; }\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px; }\n\n.modal-content {\n  position: relative;\n  background-color: #fff;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n  outline: 0; }\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 10049;\n  background-color: #000; }\n  .modal-backdrop.fade {\n    opacity: 0;\n    filter: alpha(opacity=0); }\n  .modal-backdrop.in {\n    opacity: 0.5;\n    filter: alpha(opacity=50); }\n\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5; }\n  .modal-header:before, .modal-header:after {\n    content: \" \";\n    display: table; }\n  .modal-header:after {\n    clear: both; }\n\n.modal-header .close {\n  margin-top: -2px; }\n\n.modal-title {\n  margin: 0;\n  line-height: 1.42857; }\n\n.modal-body {\n  position: relative;\n  padding: 15px; }\n\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5; }\n  .modal-footer:before, .modal-footer:after {\n    content: \" \";\n    display: table; }\n  .modal-footer:after {\n    clear: both; }\n  .modal-footer .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; }\n  .modal-footer .btn-group .btn + .btn {\n    margin-left: -1px; }\n  .modal-footer .btn-block + .btn-block {\n    margin-left: 0; }\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll; }\n\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto; }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }\n  .modal-sm {\n    width: 300px; } }\n\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px; } }\n\n.tooltip {\n  position: absolute;\n  z-index: 1030;\n  display: block;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 12px;\n  opacity: 0;\n  filter: alpha(opacity=0); }\n  .tooltip.in {\n    opacity: 0.9;\n    filter: alpha(opacity=90); }\n  .tooltip.top {\n    margin-top: -3px;\n    padding: 5px 0; }\n  .tooltip.right {\n    margin-left: 3px;\n    padding: 0 5px; }\n  .tooltip.bottom {\n    margin-top: 3px;\n    padding: 5px 0; }\n  .tooltip.left {\n    margin-left: -3px;\n    padding: 0 5px; }\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 4px; }\n\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid; }\n\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000; }\n\n.tooltip.top-left .tooltip-arrow {\n  bottom: 0;\n  right: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000; }\n\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000; }\n\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0/*rtl:ignore*/;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0/*rtl:ignore*/;\n  border-right-color: #000/*rtl:ignore*/; }\n\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0/*rtl:ignore*/;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px/*rtl:ignore*/;\n  border-left-color: #000/*rtl:ignore*/; }\n\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000; }\n\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000; }\n\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000; }\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0/*rtl:ignore*/;\n  z-index: 1010;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 14px;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }\n  .popover.top {\n    margin-top: -10px; }\n  .popover.right {\n    margin-left: 10px/*rtl:ignore*/; }\n  .popover.bottom {\n    margin-top: 10px; }\n  .popover.left {\n    margin-left: -10px/*rtl:ignore*/; }\n\n.popover-title {\n  margin: 0;\n  padding: 8px 14px;\n  font-size: 14px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0; }\n\n.popover-content {\n  padding: 9px 14px; }\n\n.popover > .arrow, .popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid; }\n\n.popover > .arrow {\n  border-width: 11px; }\n\n.popover > .arrow:after {\n  border-width: 10px;\n  content: \"\"; }\n\n.popover.top > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-width: 0;\n  border-top-color: #999999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  bottom: -11px; }\n  .popover.top > .arrow:after {\n    content: \" \";\n    bottom: 1px;\n    margin-left: -10px;\n    border-bottom-width: 0;\n    border-top-color: #fff; }\n\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px/*rtl:ignore*/;\n  margin-top: -11px;\n  border-left-width: 0/*rtl:ignore*/;\n  border-right-color: #999999/*rtl:ignore*/;\n  border-right-color: rgba(0, 0, 0, 0.25)/*rtl:ignore*/; }\n  .popover.right > .arrow:after {\n    content: \" \";\n    left: 1px/*rtl:ignore*/;\n    bottom: -10px;\n    border-left-width: 0/*rtl:ignore*/;\n    border-right-color: #fff/*rtl:ignore*/; }\n\n.popover.bottom > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  top: -11px; }\n  .popover.bottom > .arrow:after {\n    content: \" \";\n    top: 1px;\n    margin-left: -10px;\n    border-top-width: 0;\n    border-bottom-color: #fff; }\n\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px/*rtl:ignore*/;\n  margin-top: -11px;\n  border-right-width: 0/*rtl:ignore*/;\n  border-left-color: #999999/*rtl:ignore*/;\n  border-left-color: rgba(0, 0, 0, 0.25)/*rtl:ignore*/; }\n  .popover.left > .arrow:after {\n    content: \" \";\n    right: 1px/*rtl:ignore*/;\n    border-right-width: 0/*rtl:ignore*/;\n    border-left-color: #fff/*rtl:ignore*/;\n    bottom: -10px; }\n\n.carousel {\n  position: relative; }\n\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%; }\n  .carousel-inner > .item {\n    display: none;\n    position: relative;\n    -webkit-transition: 0.6s ease-in-out left;\n    -o-transition: 0.6s ease-in-out left;\n    transition: 0.6s ease-in-out left; }\n    .carousel-inner > .item > img,\n    .carousel-inner > .item > a > img {\n      display: block;\n      max-width: 100%;\n      height: auto;\n      line-height: 1; }\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      .carousel-inner > .item {\n        -webkit-transition: -webkit-transform 0.6s ease-in-out;\n        -moz-transition: -moz-transform 0.6s ease-in-out;\n        -o-transition: -o-transform 0.6s ease-in-out;\n        transition: transform 0.6s ease-in-out;\n        -webkit-backface-visibility: hidden;\n        -moz-backface-visibility: hidden;\n        backface-visibility: hidden;\n        -webkit-perspective: 1000px;\n        -moz-perspective: 1000px;\n        perspective: 1000px; }\n        .carousel-inner > .item.next, .carousel-inner > .item.active.right {\n          -webkit-transform: translate3d(100%, 0, 0);\n          transform: translate3d(100%, 0, 0);\n          left: 0; }\n        .carousel-inner > .item.prev, .carousel-inner > .item.active.left {\n          -webkit-transform: translate3d(-100%, 0, 0);\n          transform: translate3d(-100%, 0, 0);\n          left: 0; }\n        .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active {\n          -webkit-transform: translate3d(0, 0, 0);\n          transform: translate3d(0, 0, 0);\n          left: 0; } }\n  .carousel-inner > .active,\n  .carousel-inner > .next,\n  .carousel-inner > .prev {\n    display: block; }\n  .carousel-inner > .active {\n    left: 0; }\n  .carousel-inner > .next,\n  .carousel-inner > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%; }\n  .carousel-inner > .next {\n    left: 100%; }\n  .carousel-inner > .prev {\n    left: -100%; }\n  .carousel-inner > .next.left,\n  .carousel-inner > .prev.right {\n    left: 0; }\n  .carousel-inner > .active.left {\n    left: -100%; }\n  .carousel-inner > .active.right {\n    left: 100%; }\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: 15%;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  font-size: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n  background-color: transparent; }\n  .carousel-control.left {\n    background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n    background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }\n  .carousel-control.right {\n    left: auto;\n    right: 0;\n    background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n    background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }\n  .carousel-control:hover, .carousel-control:focus {\n    outline: 0;\n    color: #fff;\n    text-decoration: none;\n    opacity: 0.9;\n    filter: alpha(opacity=90); }\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next,\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    margin-top: -10px;\n    z-index: 5;\n    display: inline-block; }\n  .carousel-control .icon-prev,\n  .carousel-control .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px; }\n  .carousel-control .icon-next,\n  .carousel-control .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px; }\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 20px;\n    height: 20px;\n    line-height: 1;\n    font-family: serif; }\n  .carousel-control .icon-prev:before {\n    content: '\\2039'; }\n  .carousel-control .icon-next:before {\n    content: '\\203a'; }\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center; }\n  .carousel-indicators li {\n    display: inline-block;\n    width: 10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    border: 1px solid #fff;\n    border-radius: 10px;\n    cursor: pointer;\n    background-color: #000 \\9;\n    background-color: transparent; }\n  .carousel-indicators .active {\n    margin: 0;\n    width: 12px;\n    height: 12px;\n    background-color: #fff; }\n\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }\n  .carousel-caption .btn {\n    text-shadow: none; }\n\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -10px;\n    font-size: 30px; }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -10px; }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -10px; }\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px; }\n  .carousel-indicators {\n    bottom: 20px; } }\n\n.clearfix:before, .clearfix:after {\n  content: \" \";\n  display: table; }\n\n.clearfix:after {\n  clear: both; }\n\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto; }\n\n.pull-right {\n  float: right !important; }\n\n.pull-left {\n  float: left !important; }\n\n.hide {\n  display: none !important; }\n\n.show {\n  display: block !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0; }\n\n.hidden {\n  display: none !important; }\n\n.affix {\n  position: fixed; }\n\n@-ms-viewport {\n  width: device-width; }\n\n.visible-xs {\n  display: none !important; }\n\n.visible-sm {\n  display: none !important; }\n\n.visible-md {\n  display: none !important; }\n\n.visible-lg {\n  display: none !important; }\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important; }\n\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important; }\n  table.visible-xs {\n    display: table !important; }\n  tr.visible-xs {\n    display: table-row !important; }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important; } }\n\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important; } }\n\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important; } }\n\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important; }\n  table.visible-sm {\n    display: table !important; }\n  tr.visible-sm {\n    display: table-row !important; }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important; }\n  table.visible-md {\n    display: table !important; }\n  tr.visible-md {\n    display: table-row !important; }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important; }\n  table.visible-lg {\n    display: table !important; }\n  tr.visible-lg {\n    display: table-row !important; }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important; } }\n\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important; } }\n\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important; } }\n\n.visible-print {\n  display: none !important; }\n\n@media print {\n  .visible-print {\n    display: block !important; }\n  table.visible-print {\n    display: table !important; }\n  tr.visible-print {\n    display: table-row !important; }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important; } }\n\n.visible-print-block {\n  display: none !important; }\n  @media print {\n    .visible-print-block {\n      display: block !important; } }\n\n.visible-print-inline {\n  display: none !important; }\n  @media print {\n    .visible-print-inline {\n      display: inline !important; } }\n\n.visible-print-inline-block {\n  display: none !important; }\n  @media print {\n    .visible-print-inline-block {\n      display: inline-block !important; } }\n\n@media print {\n  .hidden-print {\n    display: none !important; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap/js/bootstrap.js",
    "content": "/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n  'use strict';\n  var version = $.fn.jquery.split(' ')[0].split('.')\n  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')\n  }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.6\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n  // ============================================================\n\n  function transitionEnd() {\n    var el = document.createElement('bootstrap')\n\n    var transEndEventNames = {\n      WebkitTransition : 'webkitTransitionEnd',\n      MozTransition    : 'transitionend',\n      OTransition      : 'oTransitionEnd otransitionend',\n      transition       : 'transitionend'\n    }\n\n    for (var name in transEndEventNames) {\n      if (el.style[name] !== undefined) {\n        return { end: transEndEventNames[name] }\n      }\n    }\n\n    return false // explicit for ie8 (  ._.)\n  }\n\n  // http://blog.alexmaccaw.com/css-transitions\n  $.fn.emulateTransitionEnd = function (duration) {\n    var called = false\n    var $el = this\n    $(this).one('bsTransitionEnd', function () { called = true })\n    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n    setTimeout(callback, duration)\n    return this\n  }\n\n  $(function () {\n    $.support.transition = transitionEnd()\n\n    if (!$.support.transition) return\n\n    $.event.special.bsTransitionEnd = {\n      bindType: $.support.transition.end,\n      delegateType: $.support.transition.end,\n      handle: function (e) {\n        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n      }\n    }\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.6\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // ALERT CLASS DEFINITION\n  // ======================\n\n  var dismiss = '[data-dismiss=\"alert\"]'\n  var Alert   = function (el) {\n    $(el).on('click', dismiss, this.close)\n  }\n\n  Alert.VERSION = '3.3.6'\n\n  Alert.TRANSITION_DURATION = 150\n\n  Alert.prototype.close = function (e) {\n    var $this    = $(this)\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = $(selector)\n\n    if (e) e.preventDefault()\n\n    if (!$parent.length) {\n      $parent = $this.closest('.alert')\n    }\n\n    $parent.trigger(e = $.Event('close.bs.alert'))\n\n    if (e.isDefaultPrevented()) return\n\n    $parent.removeClass('in')\n\n    function removeElement() {\n      // detach from parent, fire event then clean up data\n      $parent.detach().trigger('closed.bs.alert').remove()\n    }\n\n    $.support.transition && $parent.hasClass('fade') ?\n      $parent\n        .one('bsTransitionEnd', removeElement)\n        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n      removeElement()\n  }\n\n\n  // ALERT PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.alert')\n\n      if (!data) $this.data('bs.alert', (data = new Alert(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.alert\n\n  $.fn.alert             = Plugin\n  $.fn.alert.Constructor = Alert\n\n\n  // ALERT NO CONFLICT\n  // =================\n\n  $.fn.alert.noConflict = function () {\n    $.fn.alert = old\n    return this\n  }\n\n\n  // ALERT DATA-API\n  // ==============\n\n  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.6\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // BUTTON PUBLIC CLASS DEFINITION\n  // ==============================\n\n  var Button = function (element, options) {\n    this.$element  = $(element)\n    this.options   = $.extend({}, Button.DEFAULTS, options)\n    this.isLoading = false\n  }\n\n  Button.VERSION  = '3.3.6'\n\n  Button.DEFAULTS = {\n    loadingText: 'loading...'\n  }\n\n  Button.prototype.setState = function (state) {\n    var d    = 'disabled'\n    var $el  = this.$element\n    var val  = $el.is('input') ? 'val' : 'html'\n    var data = $el.data()\n\n    state += 'Text'\n\n    if (data.resetText == null) $el.data('resetText', $el[val]())\n\n    // push to event loop to allow forms to submit\n    setTimeout($.proxy(function () {\n      $el[val](data[state] == null ? this.options[state] : data[state])\n\n      if (state == 'loadingText') {\n        this.isLoading = true\n        $el.addClass(d).attr(d, d)\n      } else if (this.isLoading) {\n        this.isLoading = false\n        $el.removeClass(d).removeAttr(d)\n      }\n    }, this), 0)\n  }\n\n  Button.prototype.toggle = function () {\n    var changed = true\n    var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n    if ($parent.length) {\n      var $input = this.$element.find('input')\n      if ($input.prop('type') == 'radio') {\n        if ($input.prop('checked')) changed = false\n        $parent.find('.active').removeClass('active')\n        this.$element.addClass('active')\n      } else if ($input.prop('type') == 'checkbox') {\n        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n        this.$element.toggleClass('active')\n      }\n      $input.prop('checked', this.$element.hasClass('active'))\n      if (changed) $input.trigger('change')\n    } else {\n      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n      this.$element.toggleClass('active')\n    }\n  }\n\n\n  // BUTTON PLUGIN DEFINITION\n  // ========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.button')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n      if (option == 'toggle') data.toggle()\n      else if (option) data.setState(option)\n    })\n  }\n\n  var old = $.fn.button\n\n  $.fn.button             = Plugin\n  $.fn.button.Constructor = Button\n\n\n  // BUTTON NO CONFLICT\n  // ==================\n\n  $.fn.button.noConflict = function () {\n    $.fn.button = old\n    return this\n  }\n\n\n  // BUTTON DATA-API\n  // ===============\n\n  $(document)\n    .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      var $btn = $(e.target)\n      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n      Plugin.call($btn, 'toggle')\n      if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n    })\n    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n    })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.6\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CAROUSEL CLASS DEFINITION\n  // =========================\n\n  var Carousel = function (element, options) {\n    this.$element    = $(element)\n    this.$indicators = this.$element.find('.carousel-indicators')\n    this.options     = options\n    this.paused      = null\n    this.sliding     = null\n    this.interval    = null\n    this.$active     = null\n    this.$items      = null\n\n    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n  }\n\n  Carousel.VERSION  = '3.3.6'\n\n  Carousel.TRANSITION_DURATION = 600\n\n  Carousel.DEFAULTS = {\n    interval: 5000,\n    pause: 'hover',\n    wrap: true,\n    keyboard: true\n  }\n\n  Carousel.prototype.keydown = function (e) {\n    if (/input|textarea/i.test(e.target.tagName)) return\n    switch (e.which) {\n      case 37: this.prev(); break\n      case 39: this.next(); break\n      default: return\n    }\n\n    e.preventDefault()\n  }\n\n  Carousel.prototype.cycle = function (e) {\n    e || (this.paused = false)\n\n    this.interval && clearInterval(this.interval)\n\n    this.options.interval\n      && !this.paused\n      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n    return this\n  }\n\n  Carousel.prototype.getItemIndex = function (item) {\n    this.$items = item.parent().children('.item')\n    return this.$items.index(item || this.$active)\n  }\n\n  Carousel.prototype.getItemForDirection = function (direction, active) {\n    var activeIndex = this.getItemIndex(active)\n    var willWrap = (direction == 'prev' && activeIndex === 0)\n                || (direction == 'next' && activeIndex == (this.$items.length - 1))\n    if (willWrap && !this.options.wrap) return active\n    var delta = direction == 'prev' ? -1 : 1\n    var itemIndex = (activeIndex + delta) % this.$items.length\n    return this.$items.eq(itemIndex)\n  }\n\n  Carousel.prototype.to = function (pos) {\n    var that        = this\n    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n    if (pos > (this.$items.length - 1) || pos < 0) return\n\n    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n    if (activeIndex == pos) return this.pause().cycle()\n\n    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n  }\n\n  Carousel.prototype.pause = function (e) {\n    e || (this.paused = true)\n\n    if (this.$element.find('.next, .prev').length && $.support.transition) {\n      this.$element.trigger($.support.transition.end)\n      this.cycle(true)\n    }\n\n    this.interval = clearInterval(this.interval)\n\n    return this\n  }\n\n  Carousel.prototype.next = function () {\n    if (this.sliding) return\n    return this.slide('next')\n  }\n\n  Carousel.prototype.prev = function () {\n    if (this.sliding) return\n    return this.slide('prev')\n  }\n\n  Carousel.prototype.slide = function (type, next) {\n    var $active   = this.$element.find('.item.active')\n    var $next     = next || this.getItemForDirection(type, $active)\n    var isCycling = this.interval\n    var direction = type == 'next' ? 'left' : 'right'\n    var that      = this\n\n    if ($next.hasClass('active')) return (this.sliding = false)\n\n    var relatedTarget = $next[0]\n    var slideEvent = $.Event('slide.bs.carousel', {\n      relatedTarget: relatedTarget,\n      direction: direction\n    })\n    this.$element.trigger(slideEvent)\n    if (slideEvent.isDefaultPrevented()) return\n\n    this.sliding = true\n\n    isCycling && this.pause()\n\n    if (this.$indicators.length) {\n      this.$indicators.find('.active').removeClass('active')\n      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n      $nextIndicator && $nextIndicator.addClass('active')\n    }\n\n    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n    if ($.support.transition && this.$element.hasClass('slide')) {\n      $next.addClass(type)\n      $next[0].offsetWidth // force reflow\n      $active.addClass(direction)\n      $next.addClass(direction)\n      $active\n        .one('bsTransitionEnd', function () {\n          $next.removeClass([type, direction].join(' ')).addClass('active')\n          $active.removeClass(['active', direction].join(' '))\n          that.sliding = false\n          setTimeout(function () {\n            that.$element.trigger(slidEvent)\n          }, 0)\n        })\n        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n    } else {\n      $active.removeClass('active')\n      $next.addClass('active')\n      this.sliding = false\n      this.$element.trigger(slidEvent)\n    }\n\n    isCycling && this.cycle()\n\n    return this\n  }\n\n\n  // CAROUSEL PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.carousel')\n      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n      var action  = typeof option == 'string' ? option : options.slide\n\n      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n      if (typeof option == 'number') data.to(option)\n      else if (action) data[action]()\n      else if (options.interval) data.pause().cycle()\n    })\n  }\n\n  var old = $.fn.carousel\n\n  $.fn.carousel             = Plugin\n  $.fn.carousel.Constructor = Carousel\n\n\n  // CAROUSEL NO CONFLICT\n  // ====================\n\n  $.fn.carousel.noConflict = function () {\n    $.fn.carousel = old\n    return this\n  }\n\n\n  // CAROUSEL DATA-API\n  // =================\n\n  var clickHandler = function (e) {\n    var href\n    var $this   = $(this)\n    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n    if (!$target.hasClass('carousel')) return\n    var options = $.extend({}, $target.data(), $this.data())\n    var slideIndex = $this.attr('data-slide-to')\n    if (slideIndex) options.interval = false\n\n    Plugin.call($target, options)\n\n    if (slideIndex) {\n      $target.data('bs.carousel').to(slideIndex)\n    }\n\n    e.preventDefault()\n  }\n\n  $(document)\n    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n  $(window).on('load', function () {\n    $('[data-ride=\"carousel\"]').each(function () {\n      var $carousel = $(this)\n      Plugin.call($carousel, $carousel.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.6\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // COLLAPSE PUBLIC CLASS DEFINITION\n  // ================================\n\n  var Collapse = function (element, options) {\n    this.$element      = $(element)\n    this.options       = $.extend({}, Collapse.DEFAULTS, options)\n    this.$trigger      = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n                           '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n    this.transitioning = null\n\n    if (this.options.parent) {\n      this.$parent = this.getParent()\n    } else {\n      this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n    }\n\n    if (this.options.toggle) this.toggle()\n  }\n\n  Collapse.VERSION  = '3.3.6'\n\n  Collapse.TRANSITION_DURATION = 350\n\n  Collapse.DEFAULTS = {\n    toggle: true\n  }\n\n  Collapse.prototype.dimension = function () {\n    var hasWidth = this.$element.hasClass('width')\n    return hasWidth ? 'width' : 'height'\n  }\n\n  Collapse.prototype.show = function () {\n    if (this.transitioning || this.$element.hasClass('in')) return\n\n    var activesData\n    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n    if (actives && actives.length) {\n      activesData = actives.data('bs.collapse')\n      if (activesData && activesData.transitioning) return\n    }\n\n    var startEvent = $.Event('show.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    if (actives && actives.length) {\n      Plugin.call(actives, 'hide')\n      activesData || actives.data('bs.collapse', null)\n    }\n\n    var dimension = this.dimension()\n\n    this.$element\n      .removeClass('collapse')\n      .addClass('collapsing')[dimension](0)\n      .attr('aria-expanded', true)\n\n    this.$trigger\n      .removeClass('collapsed')\n      .attr('aria-expanded', true)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse in')[dimension]('')\n      this.transitioning = 0\n      this.$element\n        .trigger('shown.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n    this.$element\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n  }\n\n  Collapse.prototype.hide = function () {\n    if (this.transitioning || !this.$element.hasClass('in')) return\n\n    var startEvent = $.Event('hide.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    var dimension = this.dimension()\n\n    this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n    this.$element\n      .addClass('collapsing')\n      .removeClass('collapse in')\n      .attr('aria-expanded', false)\n\n    this.$trigger\n      .addClass('collapsed')\n      .attr('aria-expanded', false)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.transitioning = 0\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse')\n        .trigger('hidden.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    this.$element\n      [dimension](0)\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n  }\n\n  Collapse.prototype.toggle = function () {\n    this[this.$element.hasClass('in') ? 'hide' : 'show']()\n  }\n\n  Collapse.prototype.getParent = function () {\n    return $(this.options.parent)\n      .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n      .each($.proxy(function (i, element) {\n        var $element = $(element)\n        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n      }, this))\n      .end()\n  }\n\n  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n    var isOpen = $element.hasClass('in')\n\n    $element.attr('aria-expanded', isOpen)\n    $trigger\n      .toggleClass('collapsed', !isOpen)\n      .attr('aria-expanded', isOpen)\n  }\n\n  function getTargetFromTrigger($trigger) {\n    var href\n    var target = $trigger.attr('data-target')\n      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n    return $(target)\n  }\n\n\n  // COLLAPSE PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.collapse')\n      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.collapse\n\n  $.fn.collapse             = Plugin\n  $.fn.collapse.Constructor = Collapse\n\n\n  // COLLAPSE NO CONFLICT\n  // ====================\n\n  $.fn.collapse.noConflict = function () {\n    $.fn.collapse = old\n    return this\n  }\n\n\n  // COLLAPSE DATA-API\n  // =================\n\n  $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n    var $this   = $(this)\n\n    if (!$this.attr('data-target')) e.preventDefault()\n\n    var $target = getTargetFromTrigger($this)\n    var data    = $target.data('bs.collapse')\n    var option  = data ? 'toggle' : $this.data()\n\n    Plugin.call($target, option)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.6\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // DROPDOWN CLASS DEFINITION\n  // =========================\n\n  var backdrop = '.dropdown-backdrop'\n  var toggle   = '[data-toggle=\"dropdown\"]'\n  var Dropdown = function (element) {\n    $(element).on('click.bs.dropdown', this.toggle)\n  }\n\n  Dropdown.VERSION = '3.3.6'\n\n  function getParent($this) {\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = selector && $(selector)\n\n    return $parent && $parent.length ? $parent : $this.parent()\n  }\n\n  function clearMenus(e) {\n    if (e && e.which === 3) return\n    $(backdrop).remove()\n    $(toggle).each(function () {\n      var $this         = $(this)\n      var $parent       = getParent($this)\n      var relatedTarget = { relatedTarget: this }\n\n      if (!$parent.hasClass('open')) return\n\n      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this.attr('aria-expanded', 'false')\n      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n    })\n  }\n\n  Dropdown.prototype.toggle = function (e) {\n    var $this = $(this)\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    clearMenus()\n\n    if (!isActive) {\n      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n        // if mobile we use a backdrop because click events don't delegate\n        $(document.createElement('div'))\n          .addClass('dropdown-backdrop')\n          .insertAfter($(this))\n          .on('click', clearMenus)\n      }\n\n      var relatedTarget = { relatedTarget: this }\n      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this\n        .trigger('focus')\n        .attr('aria-expanded', 'true')\n\n      $parent\n        .toggleClass('open')\n        .trigger($.Event('shown.bs.dropdown', relatedTarget))\n    }\n\n    return false\n  }\n\n  Dropdown.prototype.keydown = function (e) {\n    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n    var $this = $(this)\n\n    e.preventDefault()\n    e.stopPropagation()\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    if (!isActive && e.which != 27 || isActive && e.which == 27) {\n      if (e.which == 27) $parent.find(toggle).trigger('focus')\n      return $this.trigger('click')\n    }\n\n    var desc = ' li:not(.disabled):visible a'\n    var $items = $parent.find('.dropdown-menu' + desc)\n\n    if (!$items.length) return\n\n    var index = $items.index(e.target)\n\n    if (e.which == 38 && index > 0)                 index--         // up\n    if (e.which == 40 && index < $items.length - 1) index++         // down\n    if (!~index)                                    index = 0\n\n    $items.eq(index).trigger('focus')\n  }\n\n\n  // DROPDOWN PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.dropdown')\n\n      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.dropdown\n\n  $.fn.dropdown             = Plugin\n  $.fn.dropdown.Constructor = Dropdown\n\n\n  // DROPDOWN NO CONFLICT\n  // ====================\n\n  $.fn.dropdown.noConflict = function () {\n    $.fn.dropdown = old\n    return this\n  }\n\n\n  // APPLY TO STANDARD DROPDOWN ELEMENTS\n  // ===================================\n\n  $(document)\n    .on('click.bs.dropdown.data-api', clearMenus)\n    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.6\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // MODAL CLASS DEFINITION\n  // ======================\n\n  var Modal = function (element, options) {\n    this.options             = options\n    this.$body               = $(document.body)\n    this.$element            = $(element)\n    this.$dialog             = this.$element.find('.modal-dialog')\n    this.$backdrop           = null\n    this.isShown             = null\n    this.originalBodyPad     = null\n    this.scrollbarWidth      = 0\n    this.ignoreBackdropClick = false\n\n    if (this.options.remote) {\n      this.$element\n        .find('.modal-content')\n        .load(this.options.remote, $.proxy(function () {\n          this.$element.trigger('loaded.bs.modal')\n        }, this))\n    }\n  }\n\n  Modal.VERSION  = '3.3.6'\n\n  Modal.TRANSITION_DURATION = 300\n  Modal.BACKDROP_TRANSITION_DURATION = 150\n\n  Modal.DEFAULTS = {\n    backdrop: true,\n    keyboard: true,\n    show: true\n  }\n\n  Modal.prototype.toggle = function (_relatedTarget) {\n    return this.isShown ? this.hide() : this.show(_relatedTarget)\n  }\n\n  Modal.prototype.show = function (_relatedTarget) {\n    var that = this\n    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n    this.$element.trigger(e)\n\n    if (this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = true\n\n    this.checkScrollbar()\n    this.setScrollbar()\n    this.$body.addClass('modal-open')\n\n    this.escape()\n    this.resize()\n\n    this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n    this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n      that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n      })\n    })\n\n    this.backdrop(function () {\n      var transition = $.support.transition && that.$element.hasClass('fade')\n\n      if (!that.$element.parent().length) {\n        that.$element.appendTo(that.$body) // don't move modals dom position\n      }\n\n      that.$element\n        .show()\n        .scrollTop(0)\n\n      that.adjustDialog()\n\n      if (transition) {\n        that.$element[0].offsetWidth // force reflow\n      }\n\n      that.$element.addClass('in')\n\n      that.enforceFocus()\n\n      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n      transition ?\n        that.$dialog // wait for modal to slide in\n          .one('bsTransitionEnd', function () {\n            that.$element.trigger('focus').trigger(e)\n          })\n          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n        that.$element.trigger('focus').trigger(e)\n    })\n  }\n\n  Modal.prototype.hide = function (e) {\n    if (e) e.preventDefault()\n\n    e = $.Event('hide.bs.modal')\n\n    this.$element.trigger(e)\n\n    if (!this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = false\n\n    this.escape()\n    this.resize()\n\n    $(document).off('focusin.bs.modal')\n\n    this.$element\n      .removeClass('in')\n      .off('click.dismiss.bs.modal')\n      .off('mouseup.dismiss.bs.modal')\n\n    this.$dialog.off('mousedown.dismiss.bs.modal')\n\n    $.support.transition && this.$element.hasClass('fade') ?\n      this.$element\n        .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n      this.hideModal()\n  }\n\n  Modal.prototype.enforceFocus = function () {\n    $(document)\n      .off('focusin.bs.modal') // guard against infinite focus loop\n      .on('focusin.bs.modal', $.proxy(function (e) {\n        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n          this.$element.trigger('focus')\n        }\n      }, this))\n  }\n\n  Modal.prototype.escape = function () {\n    if (this.isShown && this.options.keyboard) {\n      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n        e.which == 27 && this.hide()\n      }, this))\n    } else if (!this.isShown) {\n      this.$element.off('keydown.dismiss.bs.modal')\n    }\n  }\n\n  Modal.prototype.resize = function () {\n    if (this.isShown) {\n      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n    } else {\n      $(window).off('resize.bs.modal')\n    }\n  }\n\n  Modal.prototype.hideModal = function () {\n    var that = this\n    this.$element.hide()\n    this.backdrop(function () {\n      that.$body.removeClass('modal-open')\n      that.resetAdjustments()\n      that.resetScrollbar()\n      that.$element.trigger('hidden.bs.modal')\n    })\n  }\n\n  Modal.prototype.removeBackdrop = function () {\n    this.$backdrop && this.$backdrop.remove()\n    this.$backdrop = null\n  }\n\n  Modal.prototype.backdrop = function (callback) {\n    var that = this\n    var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n    if (this.isShown && this.options.backdrop) {\n      var doAnimate = $.support.transition && animate\n\n      this.$backdrop = $(document.createElement('div'))\n        .addClass('modal-backdrop ' + animate)\n        .appendTo(this.$body)\n\n      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n        if (this.ignoreBackdropClick) {\n          this.ignoreBackdropClick = false\n          return\n        }\n        if (e.target !== e.currentTarget) return\n        this.options.backdrop == 'static'\n          ? this.$element[0].focus()\n          : this.hide()\n      }, this))\n\n      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n      this.$backdrop.addClass('in')\n\n      if (!callback) return\n\n      doAnimate ?\n        this.$backdrop\n          .one('bsTransitionEnd', callback)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callback()\n\n    } else if (!this.isShown && this.$backdrop) {\n      this.$backdrop.removeClass('in')\n\n      var callbackRemove = function () {\n        that.removeBackdrop()\n        callback && callback()\n      }\n      $.support.transition && this.$element.hasClass('fade') ?\n        this.$backdrop\n          .one('bsTransitionEnd', callbackRemove)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callbackRemove()\n\n    } else if (callback) {\n      callback()\n    }\n  }\n\n  // these following methods are used to handle overflowing modals\n\n  Modal.prototype.handleUpdate = function () {\n    this.adjustDialog()\n  }\n\n  Modal.prototype.adjustDialog = function () {\n    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n    this.$element.css({\n      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n    })\n  }\n\n  Modal.prototype.resetAdjustments = function () {\n    this.$element.css({\n      paddingLeft: '',\n      paddingRight: ''\n    })\n  }\n\n  Modal.prototype.checkScrollbar = function () {\n    var fullWindowWidth = window.innerWidth\n    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n      var documentElementRect = document.documentElement.getBoundingClientRect()\n      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n    }\n    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n    this.scrollbarWidth = this.measureScrollbar()\n  }\n\n  Modal.prototype.setScrollbar = function () {\n    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n    this.originalBodyPad = document.body.style.paddingRight || ''\n    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n  }\n\n  Modal.prototype.resetScrollbar = function () {\n    this.$body.css('padding-right', this.originalBodyPad)\n  }\n\n  Modal.prototype.measureScrollbar = function () { // thx walsh\n    var scrollDiv = document.createElement('div')\n    scrollDiv.className = 'modal-scrollbar-measure'\n    this.$body.append(scrollDiv)\n    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n    this.$body[0].removeChild(scrollDiv)\n    return scrollbarWidth\n  }\n\n\n  // MODAL PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option, _relatedTarget) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.modal')\n      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n      if (typeof option == 'string') data[option](_relatedTarget)\n      else if (options.show) data.show(_relatedTarget)\n    })\n  }\n\n  var old = $.fn.modal\n\n  $.fn.modal             = Plugin\n  $.fn.modal.Constructor = Modal\n\n\n  // MODAL NO CONFLICT\n  // =================\n\n  $.fn.modal.noConflict = function () {\n    $.fn.modal = old\n    return this\n  }\n\n\n  // MODAL DATA-API\n  // ==============\n\n  $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n    var $this   = $(this)\n    var href    = $this.attr('href')\n    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n    if ($this.is('a')) e.preventDefault()\n\n    $target.one('show.bs.modal', function (showEvent) {\n      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n      $target.one('hidden.bs.modal', function () {\n        $this.is(':visible') && $this.trigger('focus')\n      })\n    })\n    Plugin.call($target, option, this)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.6\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TOOLTIP PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Tooltip = function (element, options) {\n    this.type       = null\n    this.options    = null\n    this.enabled    = null\n    this.timeout    = null\n    this.hoverState = null\n    this.$element   = null\n    this.inState    = null\n\n    this.init('tooltip', element, options)\n  }\n\n  Tooltip.VERSION  = '3.3.6'\n\n  Tooltip.TRANSITION_DURATION = 150\n\n  Tooltip.DEFAULTS = {\n    animation: true,\n    placement: 'top',\n    selector: false,\n    template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    container: false,\n    viewport: {\n      selector: 'body',\n      padding: 0\n    }\n  }\n\n  Tooltip.prototype.init = function (type, element, options) {\n    this.enabled   = true\n    this.type      = type\n    this.$element  = $(element)\n    this.options   = this.getOptions(options)\n    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n    this.inState   = { click: false, hover: false, focus: false }\n\n    if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n    }\n\n    var triggers = this.options.trigger.split(' ')\n\n    for (var i = triggers.length; i--;) {\n      var trigger = triggers[i]\n\n      if (trigger == 'click') {\n        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n      } else if (trigger != 'manual') {\n        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'\n        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n      }\n    }\n\n    this.options.selector ?\n      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n      this.fixTitle()\n  }\n\n  Tooltip.prototype.getDefaults = function () {\n    return Tooltip.DEFAULTS\n  }\n\n  Tooltip.prototype.getOptions = function (options) {\n    options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n    if (options.delay && typeof options.delay == 'number') {\n      options.delay = {\n        show: options.delay,\n        hide: options.delay\n      }\n    }\n\n    return options\n  }\n\n  Tooltip.prototype.getDelegateOptions = function () {\n    var options  = {}\n    var defaults = this.getDefaults()\n\n    this._options && $.each(this._options, function (key, value) {\n      if (defaults[key] != value) options[key] = value\n    })\n\n    return options\n  }\n\n  Tooltip.prototype.enter = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n    }\n\n    if (self.tip().hasClass('in') || self.hoverState == 'in') {\n      self.hoverState = 'in'\n      return\n    }\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'in'\n\n    if (!self.options.delay || !self.options.delay.show) return self.show()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'in') self.show()\n    }, self.options.delay.show)\n  }\n\n  Tooltip.prototype.isInStateTrue = function () {\n    for (var key in this.inState) {\n      if (this.inState[key]) return true\n    }\n\n    return false\n  }\n\n  Tooltip.prototype.leave = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n    }\n\n    if (self.isInStateTrue()) return\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'out'\n\n    if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'out') self.hide()\n    }, self.options.delay.hide)\n  }\n\n  Tooltip.prototype.show = function () {\n    var e = $.Event('show.bs.' + this.type)\n\n    if (this.hasContent() && this.enabled) {\n      this.$element.trigger(e)\n\n      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n      if (e.isDefaultPrevented() || !inDom) return\n      var that = this\n\n      var $tip = this.tip()\n\n      var tipId = this.getUID(this.type)\n\n      this.setContent()\n      $tip.attr('id', tipId)\n      this.$element.attr('aria-describedby', tipId)\n\n      if (this.options.animation) $tip.addClass('fade')\n\n      var placement = typeof this.options.placement == 'function' ?\n        this.options.placement.call(this, $tip[0], this.$element[0]) :\n        this.options.placement\n\n      var autoToken = /\\s?auto?\\s?/i\n      var autoPlace = autoToken.test(placement)\n      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n      $tip\n        .detach()\n        .css({ top: 0, left: 0, display: 'block' })\n        .addClass(placement)\n        .data('bs.' + this.type, this)\n\n      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n      this.$element.trigger('inserted.bs.' + this.type)\n\n      var pos          = this.getPosition()\n      var actualWidth  = $tip[0].offsetWidth\n      var actualHeight = $tip[0].offsetHeight\n\n      if (autoPlace) {\n        var orgPlacement = placement\n        var viewportDim = this.getPosition(this.$viewport)\n\n        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :\n                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :\n                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :\n                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :\n                    placement\n\n        $tip\n          .removeClass(orgPlacement)\n          .addClass(placement)\n      }\n\n      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n      this.applyPlacement(calculatedOffset, placement)\n\n      var complete = function () {\n        var prevHoverState = that.hoverState\n        that.$element.trigger('shown.bs.' + that.type)\n        that.hoverState = null\n\n        if (prevHoverState == 'out') that.leave(that)\n      }\n\n      $.support.transition && this.$tip.hasClass('fade') ?\n        $tip\n          .one('bsTransitionEnd', complete)\n          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n        complete()\n    }\n  }\n\n  Tooltip.prototype.applyPlacement = function (offset, placement) {\n    var $tip   = this.tip()\n    var width  = $tip[0].offsetWidth\n    var height = $tip[0].offsetHeight\n\n    // manually read margins because getBoundingClientRect includes difference\n    var marginTop = parseInt($tip.css('margin-top'), 10)\n    var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n    // we must check for NaN for ie 8/9\n    if (isNaN(marginTop))  marginTop  = 0\n    if (isNaN(marginLeft)) marginLeft = 0\n\n    offset.top  += marginTop\n    offset.left += marginLeft\n\n    // $.fn.offset doesn't round pixel values\n    // so we use setOffset directly with our own function B-0\n    $.offset.setOffset($tip[0], $.extend({\n      using: function (props) {\n        $tip.css({\n          top: Math.round(props.top),\n          left: Math.round(props.left)\n        })\n      }\n    }, offset), 0)\n\n    $tip.addClass('in')\n\n    // check to see if placing tip in new offset caused the tip to resize itself\n    var actualWidth  = $tip[0].offsetWidth\n    var actualHeight = $tip[0].offsetHeight\n\n    if (placement == 'top' && actualHeight != height) {\n      offset.top = offset.top + height - actualHeight\n    }\n\n    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n    if (delta.left) offset.left += delta.left\n    else offset.top += delta.top\n\n    var isVertical          = /top|bottom/.test(placement)\n    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n    $tip.offset(offset)\n    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n  }\n\n  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n    this.arrow()\n      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n      .css(isVertical ? 'top' : 'left', '')\n  }\n\n  Tooltip.prototype.setContent = function () {\n    var $tip  = this.tip()\n    var title = this.getTitle()\n\n    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n    $tip.removeClass('fade in top bottom left right')\n  }\n\n  Tooltip.prototype.hide = function (callback) {\n    var that = this\n    var $tip = $(this.$tip)\n    var e    = $.Event('hide.bs.' + this.type)\n\n    function complete() {\n      if (that.hoverState != 'in') $tip.detach()\n      that.$element\n        .removeAttr('aria-describedby')\n        .trigger('hidden.bs.' + that.type)\n      callback && callback()\n    }\n\n    this.$element.trigger(e)\n\n    if (e.isDefaultPrevented()) return\n\n    $tip.removeClass('in')\n\n    $.support.transition && $tip.hasClass('fade') ?\n      $tip\n        .one('bsTransitionEnd', complete)\n        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n      complete()\n\n    this.hoverState = null\n\n    return this\n  }\n\n  Tooltip.prototype.fixTitle = function () {\n    var $e = this.$element\n    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n    }\n  }\n\n  Tooltip.prototype.hasContent = function () {\n    return this.getTitle()\n  }\n\n  Tooltip.prototype.getPosition = function ($element) {\n    $element   = $element || this.$element\n\n    var el     = $element[0]\n    var isBody = el.tagName == 'BODY'\n\n    var elRect    = el.getBoundingClientRect()\n    if (elRect.width == null) {\n      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n    }\n    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()\n    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n    return $.extend({}, elRect, scroll, outerDims, elOffset)\n  }\n\n  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n  }\n\n  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n    var delta = { top: 0, left: 0 }\n    if (!this.$viewport) return delta\n\n    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n    var viewportDimensions = this.getPosition(this.$viewport)\n\n    if (/right|left/.test(placement)) {\n      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll\n      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n      if (topEdgeOffset < viewportDimensions.top) { // top overflow\n        delta.top = viewportDimensions.top - topEdgeOffset\n      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n      }\n    } else {\n      var leftEdgeOffset  = pos.left - viewportPadding\n      var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n      if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n        delta.left = viewportDimensions.left - leftEdgeOffset\n      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n      }\n    }\n\n    return delta\n  }\n\n  Tooltip.prototype.getTitle = function () {\n    var title\n    var $e = this.$element\n    var o  = this.options\n\n    title = $e.attr('data-original-title')\n      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)\n\n    return title\n  }\n\n  Tooltip.prototype.getUID = function (prefix) {\n    do prefix += ~~(Math.random() * 1000000)\n    while (document.getElementById(prefix))\n    return prefix\n  }\n\n  Tooltip.prototype.tip = function () {\n    if (!this.$tip) {\n      this.$tip = $(this.options.template)\n      if (this.$tip.length != 1) {\n        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n      }\n    }\n    return this.$tip\n  }\n\n  Tooltip.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n  }\n\n  Tooltip.prototype.enable = function () {\n    this.enabled = true\n  }\n\n  Tooltip.prototype.disable = function () {\n    this.enabled = false\n  }\n\n  Tooltip.prototype.toggleEnabled = function () {\n    this.enabled = !this.enabled\n  }\n\n  Tooltip.prototype.toggle = function (e) {\n    var self = this\n    if (e) {\n      self = $(e.currentTarget).data('bs.' + this.type)\n      if (!self) {\n        self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n        $(e.currentTarget).data('bs.' + this.type, self)\n      }\n    }\n\n    if (e) {\n      self.inState.click = !self.inState.click\n      if (self.isInStateTrue()) self.enter(self)\n      else self.leave(self)\n    } else {\n      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n    }\n  }\n\n  Tooltip.prototype.destroy = function () {\n    var that = this\n    clearTimeout(this.timeout)\n    this.hide(function () {\n      that.$element.off('.' + that.type).removeData('bs.' + that.type)\n      if (that.$tip) {\n        that.$tip.detach()\n      }\n      that.$tip = null\n      that.$arrow = null\n      that.$viewport = null\n    })\n  }\n\n\n  // TOOLTIP PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.tooltip')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tooltip\n\n  $.fn.tooltip             = Plugin\n  $.fn.tooltip.Constructor = Tooltip\n\n\n  // TOOLTIP NO CONFLICT\n  // ===================\n\n  $.fn.tooltip.noConflict = function () {\n    $.fn.tooltip = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.6\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // POPOVER PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Popover = function (element, options) {\n    this.init('popover', element, options)\n  }\n\n  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n  Popover.VERSION  = '3.3.6'\n\n  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n  })\n\n\n  // NOTE: POPOVER EXTENDS tooltip.js\n  // ================================\n\n  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n  Popover.prototype.constructor = Popover\n\n  Popover.prototype.getDefaults = function () {\n    return Popover.DEFAULTS\n  }\n\n  Popover.prototype.setContent = function () {\n    var $tip    = this.tip()\n    var title   = this.getTitle()\n    var content = this.getContent()\n\n    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n    ](content)\n\n    $tip.removeClass('fade top bottom left right in')\n\n    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n    // this manually by checking the contents.\n    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n  }\n\n  Popover.prototype.hasContent = function () {\n    return this.getTitle() || this.getContent()\n  }\n\n  Popover.prototype.getContent = function () {\n    var $e = this.$element\n    var o  = this.options\n\n    return $e.attr('data-content')\n      || (typeof o.content == 'function' ?\n            o.content.call($e[0]) :\n            o.content)\n  }\n\n  Popover.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n  }\n\n\n  // POPOVER PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.popover')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.popover\n\n  $.fn.popover             = Plugin\n  $.fn.popover.Constructor = Popover\n\n\n  // POPOVER NO CONFLICT\n  // ===================\n\n  $.fn.popover.noConflict = function () {\n    $.fn.popover = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.6\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // SCROLLSPY CLASS DEFINITION\n  // ==========================\n\n  function ScrollSpy(element, options) {\n    this.$body          = $(document.body)\n    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)\n    this.selector       = (this.options.target || '') + ' .nav li > a'\n    this.offsets        = []\n    this.targets        = []\n    this.activeTarget   = null\n    this.scrollHeight   = 0\n\n    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n    this.refresh()\n    this.process()\n  }\n\n  ScrollSpy.VERSION  = '3.3.6'\n\n  ScrollSpy.DEFAULTS = {\n    offset: 10\n  }\n\n  ScrollSpy.prototype.getScrollHeight = function () {\n    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n  }\n\n  ScrollSpy.prototype.refresh = function () {\n    var that          = this\n    var offsetMethod  = 'offset'\n    var offsetBase    = 0\n\n    this.offsets      = []\n    this.targets      = []\n    this.scrollHeight = this.getScrollHeight()\n\n    if (!$.isWindow(this.$scrollElement[0])) {\n      offsetMethod = 'position'\n      offsetBase   = this.$scrollElement.scrollTop()\n    }\n\n    this.$body\n      .find(this.selector)\n      .map(function () {\n        var $el   = $(this)\n        var href  = $el.data('target') || $el.attr('href')\n        var $href = /^#./.test(href) && $(href)\n\n        return ($href\n          && $href.length\n          && $href.is(':visible')\n          && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n      })\n      .sort(function (a, b) { return a[0] - b[0] })\n      .each(function () {\n        that.offsets.push(this[0])\n        that.targets.push(this[1])\n      })\n  }\n\n  ScrollSpy.prototype.process = function () {\n    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset\n    var scrollHeight = this.getScrollHeight()\n    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()\n    var offsets      = this.offsets\n    var targets      = this.targets\n    var activeTarget = this.activeTarget\n    var i\n\n    if (this.scrollHeight != scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n    }\n\n    if (activeTarget && scrollTop < offsets[0]) {\n      this.activeTarget = null\n      return this.clear()\n    }\n\n    for (i = offsets.length; i--;) {\n      activeTarget != targets[i]\n        && scrollTop >= offsets[i]\n        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n        && this.activate(targets[i])\n    }\n  }\n\n  ScrollSpy.prototype.activate = function (target) {\n    this.activeTarget = target\n\n    this.clear()\n\n    var selector = this.selector +\n      '[data-target=\"' + target + '\"],' +\n      this.selector + '[href=\"' + target + '\"]'\n\n    var active = $(selector)\n      .parents('li')\n      .addClass('active')\n\n    if (active.parent('.dropdown-menu').length) {\n      active = active\n        .closest('li.dropdown')\n        .addClass('active')\n    }\n\n    active.trigger('activate.bs.scrollspy')\n  }\n\n  ScrollSpy.prototype.clear = function () {\n    $(this.selector)\n      .parentsUntil(this.options.target, '.active')\n      .removeClass('active')\n  }\n\n\n  // SCROLLSPY PLUGIN DEFINITION\n  // ===========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.scrollspy')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.scrollspy\n\n  $.fn.scrollspy             = Plugin\n  $.fn.scrollspy.Constructor = ScrollSpy\n\n\n  // SCROLLSPY NO CONFLICT\n  // =====================\n\n  $.fn.scrollspy.noConflict = function () {\n    $.fn.scrollspy = old\n    return this\n  }\n\n\n  // SCROLLSPY DATA-API\n  // ==================\n\n  $(window).on('load.bs.scrollspy.data-api', function () {\n    $('[data-spy=\"scroll\"]').each(function () {\n      var $spy = $(this)\n      Plugin.call($spy, $spy.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.6\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TAB CLASS DEFINITION\n  // ====================\n\n  var Tab = function (element) {\n    // jscs:disable requireDollarBeforejQueryAssignment\n    this.element = $(element)\n    // jscs:enable requireDollarBeforejQueryAssignment\n  }\n\n  Tab.VERSION = '3.3.6'\n\n  Tab.TRANSITION_DURATION = 150\n\n  Tab.prototype.show = function () {\n    var $this    = this.element\n    var $ul      = $this.closest('ul:not(.dropdown-menu)')\n    var selector = $this.data('target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    if ($this.parent('li').hasClass('active')) return\n\n    var $previous = $ul.find('.active:last a')\n    var hideEvent = $.Event('hide.bs.tab', {\n      relatedTarget: $this[0]\n    })\n    var showEvent = $.Event('show.bs.tab', {\n      relatedTarget: $previous[0]\n    })\n\n    $previous.trigger(hideEvent)\n    $this.trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n    var $target = $(selector)\n\n    this.activate($this.closest('li'), $ul)\n    this.activate($target, $target.parent(), function () {\n      $previous.trigger({\n        type: 'hidden.bs.tab',\n        relatedTarget: $this[0]\n      })\n      $this.trigger({\n        type: 'shown.bs.tab',\n        relatedTarget: $previous[0]\n      })\n    })\n  }\n\n  Tab.prototype.activate = function (element, container, callback) {\n    var $active    = container.find('> .active')\n    var transition = callback\n      && $.support.transition\n      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n    function next() {\n      $active\n        .removeClass('active')\n        .find('> .dropdown-menu > .active')\n          .removeClass('active')\n        .end()\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', false)\n\n      element\n        .addClass('active')\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', true)\n\n      if (transition) {\n        element[0].offsetWidth // reflow for transition\n        element.addClass('in')\n      } else {\n        element.removeClass('fade')\n      }\n\n      if (element.parent('.dropdown-menu').length) {\n        element\n          .closest('li.dropdown')\n            .addClass('active')\n          .end()\n          .find('[data-toggle=\"tab\"]')\n            .attr('aria-expanded', true)\n      }\n\n      callback && callback()\n    }\n\n    $active.length && transition ?\n      $active\n        .one('bsTransitionEnd', next)\n        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n      next()\n\n    $active.removeClass('in')\n  }\n\n\n  // TAB PLUGIN DEFINITION\n  // =====================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.tab')\n\n      if (!data) $this.data('bs.tab', (data = new Tab(this)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tab\n\n  $.fn.tab             = Plugin\n  $.fn.tab.Constructor = Tab\n\n\n  // TAB NO CONFLICT\n  // ===============\n\n  $.fn.tab.noConflict = function () {\n    $.fn.tab = old\n    return this\n  }\n\n\n  // TAB DATA-API\n  // ============\n\n  var clickHandler = function (e) {\n    e.preventDefault()\n    Plugin.call($(this), 'show')\n  }\n\n  $(document)\n    .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n    .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.6\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // AFFIX CLASS DEFINITION\n  // ======================\n\n  var Affix = function (element, options) {\n    this.options = $.extend({}, Affix.DEFAULTS, options)\n\n    this.$target = $(this.options.target)\n      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))\n\n    this.$element     = $(element)\n    this.affixed      = null\n    this.unpin        = null\n    this.pinnedOffset = null\n\n    this.checkPosition()\n  }\n\n  Affix.VERSION  = '3.3.6'\n\n  Affix.RESET    = 'affix affix-top affix-bottom'\n\n  Affix.DEFAULTS = {\n    offset: 0,\n    target: window\n  }\n\n  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n    var scrollTop    = this.$target.scrollTop()\n    var position     = this.$element.offset()\n    var targetHeight = this.$target.height()\n\n    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n    if (this.affixed == 'bottom') {\n      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n    }\n\n    var initializing   = this.affixed == null\n    var colliderTop    = initializing ? scrollTop : position.top\n    var colliderHeight = initializing ? targetHeight : height\n\n    if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n    return false\n  }\n\n  Affix.prototype.getPinnedOffset = function () {\n    if (this.pinnedOffset) return this.pinnedOffset\n    this.$element.removeClass(Affix.RESET).addClass('affix')\n    var scrollTop = this.$target.scrollTop()\n    var position  = this.$element.offset()\n    return (this.pinnedOffset = position.top - scrollTop)\n  }\n\n  Affix.prototype.checkPositionWithEventLoop = function () {\n    setTimeout($.proxy(this.checkPosition, this), 1)\n  }\n\n  Affix.prototype.checkPosition = function () {\n    if (!this.$element.is(':visible')) return\n\n    var height       = this.$element.height()\n    var offset       = this.options.offset\n    var offsetTop    = offset.top\n    var offsetBottom = offset.bottom\n    var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n    if (typeof offset != 'object')         offsetBottom = offsetTop = offset\n    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)\n    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n    if (this.affixed != affix) {\n      if (this.unpin != null) this.$element.css('top', '')\n\n      var affixType = 'affix' + (affix ? '-' + affix : '')\n      var e         = $.Event(affixType + '.bs.affix')\n\n      this.$element.trigger(e)\n\n      if (e.isDefaultPrevented()) return\n\n      this.affixed = affix\n      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n      this.$element\n        .removeClass(Affix.RESET)\n        .addClass(affixType)\n        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n    }\n\n    if (affix == 'bottom') {\n      this.$element.offset({\n        top: scrollHeight - height - offsetBottom\n      })\n    }\n  }\n\n\n  // AFFIX PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.affix')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.affix\n\n  $.fn.affix             = Plugin\n  $.fn.affix.Constructor = Affix\n\n\n  // AFFIX NO CONFLICT\n  // =================\n\n  $.fn.affix.noConflict = function () {\n    $.fn.affix = old\n    return this\n  }\n\n\n  // AFFIX DATA-API\n  // ==============\n\n  $(window).on('load', function () {\n    $('[data-spy=\"affix\"]').each(function () {\n      var $spy = $(this)\n      var data = $spy.data()\n\n      data.offset = data.offset || {}\n\n      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n      if (data.offsetTop    != null) data.offset.top    = data.offsetTop\n\n      Plugin.call($spy, data)\n    })\n  })\n\n}(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  padding: 4px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #999999;\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid #999999;\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker td,\n.datepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.day.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  background: #d9edf7;\n  border-radius: 0;\n}\n.datepicker table tr td.today,\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:hover {\n  background-color: #fde19a;\n  background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));\n  background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);\n  border-color: #fdf59a #fdf59a #fbed50;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #000;\n}\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today:hover:hover,\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today.disabled:hover:hover,\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today:hover.disabled,\n.datepicker table tr td.today.disabled.disabled,\n.datepicker table tr td.today.disabled:hover.disabled,\n.datepicker table tr td.today[disabled],\n.datepicker table tr td.today:hover[disabled],\n.datepicker table tr td.today.disabled[disabled],\n.datepicker table tr td.today.disabled:hover[disabled] {\n  background-color: #fdf59a;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active {\n  background-color: #fbf069 \\9;\n}\n.datepicker table tr td.today:hover:hover {\n  color: #000;\n}\n.datepicker table tr td.today.active:hover {\n  color: #fff;\n}\n.datepicker table tr td.range,\n.datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:hover {\n  background: #eeeeee;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today,\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:hover {\n  background-color: #f3d17a;\n  background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));\n  background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);\n  border-color: #f3e97a #f3e97a #edde34;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:hover:hover,\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today.disabled:hover:hover,\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today:hover.disabled,\n.datepicker table tr td.range.today.disabled.disabled,\n.datepicker table tr td.range.today.disabled:hover.disabled,\n.datepicker table tr td.range.today[disabled],\n.datepicker table tr td.range.today:hover[disabled],\n.datepicker table tr td.range.today.disabled[disabled],\n.datepicker table tr td.range.today.disabled:hover[disabled] {\n  background-color: #f3e97a;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active {\n  background-color: #efe24b \\9;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected.disabled:hover {\n  background-color: #9e9e9e;\n  background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));\n  background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: linear-gradient(to bottom, #b3b3b3, #808080);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);\n  border-color: #808080 #808080 #595959;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected:hover:hover,\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.disabled:hover:hover,\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected:hover.disabled,\n.datepicker table tr td.selected.disabled.disabled,\n.datepicker table tr td.selected.disabled:hover.disabled,\n.datepicker table tr td.selected[disabled],\n.datepicker table tr td.selected:hover[disabled],\n.datepicker table tr td.selected.disabled[disabled],\n.datepicker table tr td.selected.disabled:hover[disabled] {\n  background-color: #808080;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active {\n  background-color: #666666 \\9;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active:hover:hover,\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.disabled:hover:hover,\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active:hover.disabled,\n.datepicker table tr td.active.disabled.disabled,\n.datepicker table tr td.active.disabled:hover.disabled,\n.datepicker table tr td.active[disabled],\n.datepicker table tr td.active:hover[disabled],\n.datepicker table tr td.active.disabled[disabled],\n.datepicker table tr td.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active:hover.disabled,\n.datepicker table tr td span.active.disabled.disabled,\n.datepicker table tr td span.active.disabled:hover.disabled,\n.datepicker table tr td span.active[disabled],\n.datepicker table tr td span.active:hover[disabled],\n.datepicker table tr td span.active.disabled[disabled],\n.datepicker table tr td span.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-append.date .add-on,\n.input-prepend.date .add-on {\n  cursor: pointer;\n}\n.input-append.date .add-on i,\n.input-prepend.date .add-on i {\n  margin-top: 3px;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  -webkit-border-radius: 3px 0 0 3px;\n  -moz-border-radius: 3px 0 0 3px;\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  -webkit-border-radius: 0 3px 3px 0;\n  -moz-border-radius: 0 3px 3px 0;\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .add-on {\n  display: inline-block;\n  width: auto;\n  min-width: 16px;\n  height: 18px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 18px;\n  text-align: center;\n  text-shadow: 0 1px 0 #ffffff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker.standalone.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  padding: 4px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #999999;\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid #999999;\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker td,\n.datepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.day.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  background: #d9edf7;\n  border-radius: 0;\n}\n.datepicker table tr td.today,\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:hover {\n  background-color: #fde19a;\n  background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));\n  background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);\n  border-color: #fdf59a #fdf59a #fbed50;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #000;\n}\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today:hover:hover,\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today.disabled:hover:hover,\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today:hover.disabled,\n.datepicker table tr td.today.disabled.disabled,\n.datepicker table tr td.today.disabled:hover.disabled,\n.datepicker table tr td.today[disabled],\n.datepicker table tr td.today:hover[disabled],\n.datepicker table tr td.today.disabled[disabled],\n.datepicker table tr td.today.disabled:hover[disabled] {\n  background-color: #fdf59a;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active {\n  background-color: #fbf069 \\9;\n}\n.datepicker table tr td.today:hover:hover {\n  color: #000;\n}\n.datepicker table tr td.today.active:hover {\n  color: #fff;\n}\n.datepicker table tr td.range,\n.datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:hover {\n  background: #eeeeee;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today,\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:hover {\n  background-color: #f3d17a;\n  background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));\n  background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);\n  border-color: #f3e97a #f3e97a #edde34;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:hover:hover,\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today.disabled:hover:hover,\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today:hover.disabled,\n.datepicker table tr td.range.today.disabled.disabled,\n.datepicker table tr td.range.today.disabled:hover.disabled,\n.datepicker table tr td.range.today[disabled],\n.datepicker table tr td.range.today:hover[disabled],\n.datepicker table tr td.range.today.disabled[disabled],\n.datepicker table tr td.range.today.disabled:hover[disabled] {\n  background-color: #f3e97a;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active {\n  background-color: #efe24b \\9;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected.disabled:hover {\n  background-color: #9e9e9e;\n  background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));\n  background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: linear-gradient(to bottom, #b3b3b3, #808080);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);\n  border-color: #808080 #808080 #595959;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected:hover:hover,\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.disabled:hover:hover,\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected:hover.disabled,\n.datepicker table tr td.selected.disabled.disabled,\n.datepicker table tr td.selected.disabled:hover.disabled,\n.datepicker table tr td.selected[disabled],\n.datepicker table tr td.selected:hover[disabled],\n.datepicker table tr td.selected.disabled[disabled],\n.datepicker table tr td.selected.disabled:hover[disabled] {\n  background-color: #808080;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active {\n  background-color: #666666 \\9;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active:hover:hover,\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.disabled:hover:hover,\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active:hover.disabled,\n.datepicker table tr td.active.disabled.disabled,\n.datepicker table tr td.active.disabled:hover.disabled,\n.datepicker table tr td.active[disabled],\n.datepicker table tr td.active:hover[disabled],\n.datepicker table tr td.active.disabled[disabled],\n.datepicker table tr td.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active:hover.disabled,\n.datepicker table tr td span.active.disabled.disabled,\n.datepicker table tr td span.active.disabled:hover.disabled,\n.datepicker table tr td span.active[disabled],\n.datepicker table tr td span.active:hover[disabled],\n.datepicker table tr td span.active.disabled[disabled],\n.datepicker table tr td span.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-append.date .add-on,\n.input-prepend.date .add-on {\n  cursor: pointer;\n}\n.input-append.date .add-on i,\n.input-prepend.date .add-on i {\n  margin-top: 3px;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  -webkit-border-radius: 3px 0 0 3px;\n  -moz-border-radius: 3px 0 0 3px;\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  -webkit-border-radius: 0 3px 3px 0;\n  -moz-border-radius: 0 3px 3px 0;\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .add-on {\n  display: inline-block;\n  width: auto;\n  min-width: 16px;\n  height: 20px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 20px;\n  text-align: center;\n  text-shadow: 0 1px 0 #ffffff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n.datepicker.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  float: left;\n  display: none;\n  min-width: 160px;\n  list-style: none;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  -webkit-border-radius: 5px;\n  -moz-border-radius: 5px;\n  border-radius: 5px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  color: #333333;\n  font-size: 13px;\n  line-height: 20px;\n}\n.datepicker.dropdown-menu th,\n.datepicker.datepicker-inline th,\n.datepicker.dropdown-menu td,\n.datepicker.datepicker-inline td {\n  padding: 4px 5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n  padding: 4px;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid rgba(0, 0, 0, 0.15);\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid rgba(0, 0, 0, 0.15);\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker table tr td,\n.datepicker table tr th {\n  text-align: center;\n  width: 30px;\n  height: 30px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n  border-radius: 0;\n}\n.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:hover {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active:hover,\n.datepicker table tr td.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted:active:focus,\n.datepicker table tr td.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted:active.focus,\n.datepicker table tr td.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #91cbe8;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.highlighted.disabled:hover,\n.datepicker table tr td.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted.disabled:focus,\n.datepicker table tr td.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.disabled.focus,\n.datepicker table tr td.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.highlighted.focus {\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n}\n.datepicker table tr td.highlighted.focused {\n  background: #afd9ee;\n}\n.datepicker table tr td.highlighted.disabled,\n.datepicker table tr td.highlighted.disabled:active {\n  background: #d9edf7;\n  color: #999999;\n}\n.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today:focus,\n.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:hover {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active:hover,\n.datepicker table tr td.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.today:hover,\n.datepicker table tr td.today:active:focus,\n.datepicker table tr td.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.today:focus,\n.datepicker table tr td.today:active.focus,\n.datepicker table tr td.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffbc42;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  background-image: none;\n}\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled:focus,\n.datepicker table tr td.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.today:focus,\n.datepicker table tr td.today.disabled.focus,\n.datepicker table tr td.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.today.focus {\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today.focused {\n  background: #ffc966;\n}\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:active {\n  background: #ffdb99;\n  color: #999999;\n}\n.datepicker table tr td.range {\n  color: #000000;\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n  border-radius: 0;\n}\n.datepicker table tr td.range:focus,\n.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:hover {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active:hover,\n.datepicker table tr td.range.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range:hover,\n.datepicker table tr td.range:active:focus,\n.datepicker table tr td.range.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range:focus,\n.datepicker table tr td.range:active.focus,\n.datepicker table tr td.range.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #c3c3c3;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  background-image: none;\n}\n.datepicker table tr td.range.disabled:hover,\n.datepicker table tr td.range[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled:focus,\n.datepicker table tr td.range[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range:focus,\n.datepicker table tr td.range.disabled.focus,\n.datepicker table tr td.range[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.focus {\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n}\n.datepicker table tr td.range.focused {\n  background: #d5d5d5;\n}\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:active {\n  background: #eeeeee;\n  color: #999999;\n}\n.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:hover {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active:hover,\n.datepicker table tr td.range.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted:active:focus,\n.datepicker table tr td.range.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted:active.focus,\n.datepicker table tr td.range.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #a8c8d8;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.range.highlighted.disabled:hover,\n.datepicker table tr td.range.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted.disabled:focus,\n.datepicker table tr td.range.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.disabled.focus,\n.datepicker table tr td.range.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted.focus {\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted.focused {\n  background: #c1d7e3;\n}\n.datepicker table tr td.range.highlighted.disabled,\n.datepicker table tr td.range.highlighted.disabled:active {\n  background: #e4eef3;\n  color: #999999;\n}\n.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:hover {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active:hover,\n.datepicker table tr td.range.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:active:focus,\n.datepicker table tr td.range.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today:active.focus,\n.datepicker table tr td.range.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f2aa25;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  background-image: none;\n}\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled:focus,\n.datepicker table tr td.range.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.disabled.focus,\n.datepicker table tr td.range.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.today.focus {\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:active {\n  background: #f7ca77;\n  color: #999999;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #999999;\n  border-color: #555555;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:focus,\n.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.focus,\n.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.highlighted:hover {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active:hover,\n.datepicker table tr td.selected.highlighted:active:hover,\n.datepicker table tr td.selected.active:hover,\n.datepicker table tr td.selected.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected:active:focus,\n.datepicker table tr td.selected.highlighted:active:focus,\n.datepicker table tr td.selected.active:focus,\n.datepicker table tr td.selected.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected:active.focus,\n.datepicker table tr td.selected.highlighted:active.focus,\n.datepicker table tr td.selected.active.focus,\n.datepicker table tr td.selected.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #6e6e6e;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.highlighted.disabled:hover,\n.datepicker table tr td.selected[disabled]:hover,\n.datepicker table tr td.selected.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.selected:hover,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected.disabled:focus,\n.datepicker table tr td.selected.highlighted.disabled:focus,\n.datepicker table tr td.selected[disabled]:focus,\n.datepicker table tr td.selected.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.selected:focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.disabled.focus,\n.datepicker table tr td.selected.highlighted.disabled.focus,\n.datepicker table tr td.selected[disabled].focus,\n.datepicker table tr td.selected.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.selected.focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted.focus {\n  background-color: #999999;\n  border-color: #555555;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:focus,\n.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.focus,\n.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.highlighted:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active:hover,\n.datepicker table tr td.active.highlighted:active:hover,\n.datepicker table tr td.active.active:hover,\n.datepicker table tr td.active.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active:active:focus,\n.datepicker table tr td.active.highlighted:active:focus,\n.datepicker table tr td.active.active:focus,\n.datepicker table tr td.active.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active:active.focus,\n.datepicker table tr td.active.highlighted:active.focus,\n.datepicker table tr td.active.active.focus,\n.datepicker table tr td.active.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.highlighted.disabled:hover,\n.datepicker table tr td.active[disabled]:hover,\n.datepicker table tr td.active.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.active:hover,\nfieldset[disabled] .datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active.disabled:focus,\n.datepicker table tr td.active.highlighted.disabled:focus,\n.datepicker table tr td.active[disabled]:focus,\n.datepicker table tr td.active.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.active:focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.disabled.focus,\n.datepicker table tr td.active.highlighted.disabled.focus,\n.datepicker table tr td.active[disabled].focus,\n.datepicker table tr td.active.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.active.focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:focus,\n.datepicker table tr td span.active:hover:focus,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.focus,\n.datepicker table tr td span.active:hover.focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active:hover,\n.datepicker table tr td span.active:hover:active:hover,\n.datepicker table tr td span.active.disabled:active:hover,\n.datepicker table tr td span.active.disabled:hover:active:hover,\n.datepicker table tr td span.active.active:hover,\n.datepicker table tr td span.active:hover.active:hover,\n.datepicker table tr td span.active.disabled.active:hover,\n.datepicker table tr td span.active.disabled:hover.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active:focus,\n.datepicker table tr td span.active:hover:active:focus,\n.datepicker table tr td span.active.disabled:active:focus,\n.datepicker table tr td span.active.disabled:hover:active:focus,\n.datepicker table tr td span.active.active:focus,\n.datepicker table tr td span.active:hover.active:focus,\n.datepicker table tr td span.active.disabled.active:focus,\n.datepicker table tr td span.active.disabled:hover.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active:active.focus,\n.datepicker table tr td span.active:hover:active.focus,\n.datepicker table tr td span.active.disabled:active.focus,\n.datepicker table tr td span.active.disabled:hover:active.focus,\n.datepicker table tr td span.active.active.focus,\n.datepicker table tr td span.active:hover.active.focus,\n.datepicker table tr td span.active.disabled.active.focus,\n.datepicker table tr td span.active.disabled:hover.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  background-image: none;\n}\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active:hover.disabled:hover,\n.datepicker table tr td span.active.disabled.disabled:hover,\n.datepicker table tr td span.active.disabled:hover.disabled:hover,\n.datepicker table tr td span.active[disabled]:hover,\n.datepicker table tr td span.active:hover[disabled]:hover,\n.datepicker table tr td span.active.disabled[disabled]:hover,\n.datepicker table tr td span.active.disabled:hover[disabled]:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active:hover.disabled:focus,\n.datepicker table tr td span.active.disabled.disabled:focus,\n.datepicker table tr td span.active.disabled:hover.disabled:focus,\n.datepicker table tr td span.active[disabled]:focus,\n.datepicker table tr td span.active:hover[disabled]:focus,\n.datepicker table tr td span.active.disabled[disabled]:focus,\n.datepicker table tr td span.active.disabled:hover[disabled]:focus,\nfieldset[disabled] .datepicker table tr td span.active:focus,\nfieldset[disabled] .datepicker table tr td span.active:hover:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active:hover.disabled.focus,\n.datepicker table tr td span.active.disabled.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.disabled.focus,\n.datepicker table tr td span.active[disabled].focus,\n.datepicker table tr td span.active:hover[disabled].focus,\n.datepicker table tr td span.active.disabled[disabled].focus,\n.datepicker table tr td span.active.disabled:hover[disabled].focus,\nfieldset[disabled] .datepicker table tr td span.active.focus,\nfieldset[disabled] .datepicker table tr td span.active:hover.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-group.date .input-group-addon {\n  cursor: pointer;\n}\n.input-daterange {\n  width: 100%;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .input-group-addon {\n  width: auto;\n  min-width: 16px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: center;\n  text-shadow: 0 1px 0 #fff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: solid #cccccc;\n  border-width: 1px 0;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.standalone.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n  padding: 4px;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid rgba(0, 0, 0, 0.15);\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid rgba(0, 0, 0, 0.15);\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker table tr td,\n.datepicker table tr th {\n  text-align: center;\n  width: 30px;\n  height: 30px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n  border-radius: 0;\n}\n.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:hover {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active:hover,\n.datepicker table tr td.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted:active:focus,\n.datepicker table tr td.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted:active.focus,\n.datepicker table tr td.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #91cbe8;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.highlighted.disabled:hover,\n.datepicker table tr td.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted.disabled:focus,\n.datepicker table tr td.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.disabled.focus,\n.datepicker table tr td.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.highlighted.focus {\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n}\n.datepicker table tr td.highlighted.focused {\n  background: #afd9ee;\n}\n.datepicker table tr td.highlighted.disabled,\n.datepicker table tr td.highlighted.disabled:active {\n  background: #d9edf7;\n  color: #999999;\n}\n.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today:focus,\n.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:hover {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active:hover,\n.datepicker table tr td.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.today:hover,\n.datepicker table tr td.today:active:focus,\n.datepicker table tr td.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.today:focus,\n.datepicker table tr td.today:active.focus,\n.datepicker table tr td.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffbc42;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  background-image: none;\n}\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled:focus,\n.datepicker table tr td.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.today:focus,\n.datepicker table tr td.today.disabled.focus,\n.datepicker table tr td.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.today.focus {\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today.focused {\n  background: #ffc966;\n}\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:active {\n  background: #ffdb99;\n  color: #999999;\n}\n.datepicker table tr td.range {\n  color: #000000;\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n  border-radius: 0;\n}\n.datepicker table tr td.range:focus,\n.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:hover {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active:hover,\n.datepicker table tr td.range.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range:hover,\n.datepicker table tr td.range:active:focus,\n.datepicker table tr td.range.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range:focus,\n.datepicker table tr td.range:active.focus,\n.datepicker table tr td.range.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #c3c3c3;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  background-image: none;\n}\n.datepicker table tr td.range.disabled:hover,\n.datepicker table tr td.range[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled:focus,\n.datepicker table tr td.range[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range:focus,\n.datepicker table tr td.range.disabled.focus,\n.datepicker table tr td.range[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.focus {\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n}\n.datepicker table tr td.range.focused {\n  background: #d5d5d5;\n}\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:active {\n  background: #eeeeee;\n  color: #999999;\n}\n.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:hover {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active:hover,\n.datepicker table tr td.range.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted:active:focus,\n.datepicker table tr td.range.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted:active.focus,\n.datepicker table tr td.range.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #a8c8d8;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.range.highlighted.disabled:hover,\n.datepicker table tr td.range.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted.disabled:focus,\n.datepicker table tr td.range.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.disabled.focus,\n.datepicker table tr td.range.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted.focus {\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted.focused {\n  background: #c1d7e3;\n}\n.datepicker table tr td.range.highlighted.disabled,\n.datepicker table tr td.range.highlighted.disabled:active {\n  background: #e4eef3;\n  color: #999999;\n}\n.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:hover {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active:hover,\n.datepicker table tr td.range.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:active:focus,\n.datepicker table tr td.range.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today:active.focus,\n.datepicker table tr td.range.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f2aa25;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  background-image: none;\n}\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled:focus,\n.datepicker table tr td.range.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.disabled.focus,\n.datepicker table tr td.range.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.today.focus {\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:active {\n  background: #f7ca77;\n  color: #999999;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #999999;\n  border-color: #555555;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:focus,\n.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.focus,\n.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.highlighted:hover {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active:hover,\n.datepicker table tr td.selected.highlighted:active:hover,\n.datepicker table tr td.selected.active:hover,\n.datepicker table tr td.selected.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected:active:focus,\n.datepicker table tr td.selected.highlighted:active:focus,\n.datepicker table tr td.selected.active:focus,\n.datepicker table tr td.selected.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected:active.focus,\n.datepicker table tr td.selected.highlighted:active.focus,\n.datepicker table tr td.selected.active.focus,\n.datepicker table tr td.selected.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #6e6e6e;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.highlighted.disabled:hover,\n.datepicker table tr td.selected[disabled]:hover,\n.datepicker table tr td.selected.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.selected:hover,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected.disabled:focus,\n.datepicker table tr td.selected.highlighted.disabled:focus,\n.datepicker table tr td.selected[disabled]:focus,\n.datepicker table tr td.selected.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.selected:focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.disabled.focus,\n.datepicker table tr td.selected.highlighted.disabled.focus,\n.datepicker table tr td.selected[disabled].focus,\n.datepicker table tr td.selected.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.selected.focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted.focus {\n  background-color: #999999;\n  border-color: #555555;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:focus,\n.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.focus,\n.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.highlighted:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active:hover,\n.datepicker table tr td.active.highlighted:active:hover,\n.datepicker table tr td.active.active:hover,\n.datepicker table tr td.active.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active:active:focus,\n.datepicker table tr td.active.highlighted:active:focus,\n.datepicker table tr td.active.active:focus,\n.datepicker table tr td.active.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active:active.focus,\n.datepicker table tr td.active.highlighted:active.focus,\n.datepicker table tr td.active.active.focus,\n.datepicker table tr td.active.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.highlighted.disabled:hover,\n.datepicker table tr td.active[disabled]:hover,\n.datepicker table tr td.active.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.active:hover,\nfieldset[disabled] .datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active.disabled:focus,\n.datepicker table tr td.active.highlighted.disabled:focus,\n.datepicker table tr td.active[disabled]:focus,\n.datepicker table tr td.active.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.active:focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.disabled.focus,\n.datepicker table tr td.active.highlighted.disabled.focus,\n.datepicker table tr td.active[disabled].focus,\n.datepicker table tr td.active.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.active.focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:focus,\n.datepicker table tr td span.active:hover:focus,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.focus,\n.datepicker table tr td span.active:hover.focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active:hover,\n.datepicker table tr td span.active:hover:active:hover,\n.datepicker table tr td span.active.disabled:active:hover,\n.datepicker table tr td span.active.disabled:hover:active:hover,\n.datepicker table tr td span.active.active:hover,\n.datepicker table tr td span.active:hover.active:hover,\n.datepicker table tr td span.active.disabled.active:hover,\n.datepicker table tr td span.active.disabled:hover.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active:focus,\n.datepicker table tr td span.active:hover:active:focus,\n.datepicker table tr td span.active.disabled:active:focus,\n.datepicker table tr td span.active.disabled:hover:active:focus,\n.datepicker table tr td span.active.active:focus,\n.datepicker table tr td span.active:hover.active:focus,\n.datepicker table tr td span.active.disabled.active:focus,\n.datepicker table tr td span.active.disabled:hover.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active:active.focus,\n.datepicker table tr td span.active:hover:active.focus,\n.datepicker table tr td span.active.disabled:active.focus,\n.datepicker table tr td span.active.disabled:hover:active.focus,\n.datepicker table tr td span.active.active.focus,\n.datepicker table tr td span.active:hover.active.focus,\n.datepicker table tr td span.active.disabled.active.focus,\n.datepicker table tr td span.active.disabled:hover.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  background-image: none;\n}\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active:hover.disabled:hover,\n.datepicker table tr td span.active.disabled.disabled:hover,\n.datepicker table tr td span.active.disabled:hover.disabled:hover,\n.datepicker table tr td span.active[disabled]:hover,\n.datepicker table tr td span.active:hover[disabled]:hover,\n.datepicker table tr td span.active.disabled[disabled]:hover,\n.datepicker table tr td span.active.disabled:hover[disabled]:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active:hover.disabled:focus,\n.datepicker table tr td span.active.disabled.disabled:focus,\n.datepicker table tr td span.active.disabled:hover.disabled:focus,\n.datepicker table tr td span.active[disabled]:focus,\n.datepicker table tr td span.active:hover[disabled]:focus,\n.datepicker table tr td span.active.disabled[disabled]:focus,\n.datepicker table tr td span.active.disabled:hover[disabled]:focus,\nfieldset[disabled] .datepicker table tr td span.active:focus,\nfieldset[disabled] .datepicker table tr td span.active:hover:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active:hover.disabled.focus,\n.datepicker table tr td span.active.disabled.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.disabled.focus,\n.datepicker table tr td span.active[disabled].focus,\n.datepicker table tr td span.active:hover[disabled].focus,\n.datepicker table tr td span.active.disabled[disabled].focus,\n.datepicker table tr td span.active.disabled:hover[disabled].focus,\nfieldset[disabled] .datepicker table tr td span.active.focus,\nfieldset[disabled] .datepicker table tr td span.active:hover.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-group.date .input-group-addon {\n  cursor: pointer;\n}\n.input-daterange {\n  width: 100%;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .input-group-addon {\n  width: auto;\n  min-width: 16px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: center;\n  text-shadow: 0 1px 0 #fff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: solid #cccccc;\n  border-width: 1px 0;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n.datepicker.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  float: left;\n  display: none;\n  min-width: 160px;\n  list-style: none;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 5px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  color: #333333;\n  font-size: 13px;\n  line-height: 1.42857143;\n}\n.datepicker.dropdown-menu th,\n.datepicker.datepicker-inline th,\n.datepicker.dropdown-menu td,\n.datepicker.datepicker-inline td {\n  padding: 0px 5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.js",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */(function(factory){\n    if (typeof define === \"function\" && define.amd) {\n        define([\"jquery\"], factory);\n    } else if (typeof exports === 'object') {\n        factory(require('jquery'));\n    } else {\n        factory(jQuery);\n    }\n}(function($, undefined){\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction isUTCEquals(date1, date2) {\n\t\treturn (\n\t\t\tdate1.getUTCFullYear() === date2.getUTCFullYear() &&\n\t\t\tdate1.getUTCMonth() === date2.getUTCMonth() &&\n\t\t\tdate1.getUTCDate() === date2.getUTCDate()\n\t\t);\n\t}\n\tfunction alias(method){\n\t\treturn function(){\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\tfunction isValidDate(d) {\n\t\treturn d && !isNaN(d.getTime());\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n\t\t\t\t\tif (this[i].valueOf() === val)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.length = 0;\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\t$(element).data('datepicker', this);\n\t\tthis._process_options(options);\n\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = this.o.defaultViewDate;\n\t\tthis.focusDate = null;\n\n\t\tthis.element = $(element);\n\t\tthis.isInline = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\n\t\tthis.picker = $(DPGlobal.template);\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tthis.viewMode = this.o.startView;\n\n\t\tif (this.o.calendarWeeks)\n\t\t\tthis.picker.find('thead .datepicker-title, tfoot .today, tfoot .clear')\n\t\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t\t});\n\n\t\tthis._allow_update = false;\n\n\t\tthis.setStartDate(this._o.startDate);\n\t\tthis.setEndDate(this._o.endDate);\n\t\tthis.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);\n\t\tthis.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted);\n\t\tthis.setDatesDisabled(this.o.datesDisabled);\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis._allow_update = true;\n\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\tswitch (o.startView){\n\t\t\t\tcase 2:\n\t\t\t\tcase 'decade':\n\t\t\t\t\to.startView = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'year':\n\t\t\t\t\to.startView = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.startView = 0;\n\t\t\t}\n\n\t\t\tswitch (o.minViewMode){\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.minViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'years':\n\t\t\t\t\to.minViewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.minViewMode = 0;\n\t\t\t}\n\n\t\t\tswitch (o.maxViewMode) {\n\t\t\t\tcase 0:\n\t\t\t\tcase 'days':\n\t\t\t\t\to.maxViewMode = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.maxViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.maxViewMode = 2;\n\t\t\t}\n\n\t\t\to.startView = Math.min(o.startView, o.maxViewMode);\n\t\t\to.startView = Math.max(o.startView, o.minViewMode);\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = (o.weekStart + 6) % 7;\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled||[];\n\t\t\tif (!$.isArray(o.daysOfWeekDisabled))\n\t\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\\s]*/);\n\t\t\to.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\to.daysOfWeekHighlighted = o.daysOfWeekHighlighted||[];\n\t\t\tif (!$.isArray(o.daysOfWeekHighlighted))\n\t\t\t\to.daysOfWeekHighlighted = o.daysOfWeekHighlighted.split(/[,\\s]*/);\n\t\t\to.daysOfWeekHighlighted = $.map(o.daysOfWeekHighlighted, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\to.datesDisabled = o.datesDisabled||[];\n\t\t\tif (!$.isArray(o.datesDisabled)) {\n\t\t\t\tvar datesDisabled = [];\n\t\t\t\tdatesDisabled.push(DPGlobal.parseDate(o.datesDisabled, format, o.language));\n\t\t\t\to.datesDisabled = datesDisabled;\n\t\t\t}\n\t\t\to.datesDisabled = $.map(o.datesDisabled,function(d){\n\t\t\t\treturn DPGlobal.parseDate(d, format, o.language);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn /^auto|left|right|top|bottom$/.test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^left|right$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^top|bottom$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t\tif (o.defaultViewDate) {\n\t\t\t\tvar year = o.defaultViewDate.year || new Date().getFullYear();\n\t\t\t\tvar month = o.defaultViewDate.month || 0;\n\t\t\t\tvar day = o.defaultViewDate.day || 1;\n\t\t\t\to.defaultViewDate = UTCDate(year, month, day);\n\t\t\t} else {\n\t\t\t\to.defaultViewDate = UTCToday();\n\t\t\t}\n\t\t},\n\t\t_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n            var events = {\n                keyup: $.proxy(function(e){\n                    if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)\n                        this.update();\n                }, this),\n                keydown: $.proxy(this.keydown, this),\n                paste: $.proxy(this.paste, this)\n            };\n\n            if (this.o.showOnFocus === true) {\n                events.focus = $.proxy(this.show, this);\n            }\n\n            if (this.isInput) { // single input\n                this._events = [\n                    [this.element, events]\n                ];\n            }\n            else if (this.component && this.hasInput) { // component: input + button\n                this._events = [\n                    // For components that are not readonly, allow keyboard nav\n                    [this.element.find('input'), events],\n                    [this.component, {\n                        click: $.proxy(this.show, this)\n                    }]\n                ];\n            }\n\t\t\telse if (this.element.is('div')){  // inline datepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tif (this.o.immediateUpdates) {\n\t\t\t\t// Trigger input updates immediately on changed year/month\n\t\t\t\tthis._events.push([this.element, {\n\t\t\t\t\t'changeYear changeMonth': $.proxy(function(e){\n\t\t\t\t\t\tthis.update(e.date);\n\t\t\t\t\t}, this)\n\t\t\t\t}]);\n\t\t\t}\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\tmousedown: $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.hasClass('datepicker-inline')\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n      var element = this.component ? this.element.find('input') : this.element;\n\t\t\tif (element.attr('readonly') && this.o.enableOnReadonly === false)\n\t\t\t\treturn;\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo(this.o.container);\n\t\t\tthis.place();\n\t\t\tthis.picker.show();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t\tif ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {\n\t\t\t\t$(this.element).blur();\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tif (!this.picker.is(':visible'))\n\t\t\t\treturn this;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.viewMode = this.o.startView;\n\t\t\tthis.showMode();\n\n\t\t\tif (\n\t\t\t\tthis.o.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val() ||\n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t\treturn this;\n\t\t},\n\n\t\tremove: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tpaste: function(evt){\n\t\t\tvar dateString;\n\t\t\tif (evt.originalEvent.clipboardData && evt.originalEvent.clipboardData.types\n\t\t\t\t&& $.inArray('text/plain', evt.originalEvent.clipboardData.types) !== -1) {\n\t\t\t\tdateString = evt.originalEvent.clipboardData.getData('text/plain');\n\t\t\t}\n\t\t\telse if (window.clipboardData) {\n\t\t\t\tdateString = window.clipboardData.getData('Text');\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.setDate(dateString);\n\t\t\tthis.update();\n\t\t\tevt.preventDefault();\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\treturn utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\tvar selected_date = this.dates.get(-1);\n\t\t\tif (typeof selected_date !== 'undefined') {\n\t\t\t\treturn new Date(selected_date);\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\n\t\tclearDates: function(){\n\t\t\tvar element;\n\t\t\tif (this.isInput) {\n\t\t\t\telement = this.element;\n\t\t\t} else if (this.component) {\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\n\t\t\tif (element) {\n\t\t\t\telement.val('');\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t\tthis._trigger('changeDate');\n\n\t\t\tif (this.o.autoclose) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, $.map(args, this._utc_to_local));\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput){\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.element.val(formatted);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekHighlighted: function(daysOfWeekHighlighted){\n\t\t\tthis._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDatesDisabled: function(datesDisabled){\n\t\t\tthis._process_options({datesDisabled: datesDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\tcontainer = $(this.o.container),\n\t\t\t\twindowWidth = container.width(),\n\t\t\t\tscrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),\n\t\t\t\tappendOffset = container.offset();\n\n\t\t\tvar parentsZindex = [];\n\t\t\tthis.element.parents().each(function(){\n\t\t\t\tvar itemZIndex = $(this).css('z-index');\n\t\t\t\tif (itemZIndex !== 'auto' && itemZIndex !== 0) parentsZindex.push(parseInt(itemZIndex));\n\t\t\t});\n\t\t\tvar zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left - appendOffset.left,\n\t\t\t\ttop = offset.top - appendOffset.top;\n\n\t\t\tif (this.o.container !== 'body') {\n\t\t\t\ttop += scrollTop;\n\t\t\t}\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\tif (offset.left < 0) {\n\t\t\t\t\t// component is outside the window on the left side. Move it into visible range\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\t} else if (left + calendarWidth > windowWidth) {\n\t\t\t\t\t// the calendar passes the widow right edge. Align it to component right side\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\tleft += width - calendarWidth;\n\t\t\t\t} else {\n\t\t\t\t\t// Default to left\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + top - calendarHeight;\n\t\t\t\tyorient = top_overflow < 0 ? 'bottom' : 'top';\n\t\t\t}\n\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\t\t\telse\n\t\t\t\ttop += height;\n\n\t\t\tif (this.o.rtl) {\n\t\t\t\tvar right = windowWidth - (left + width);\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tright: right,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tleft: left,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn this;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.element.find('input').val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\t!this.dateWithinRange(date) ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.dates.length)\n\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\t\t\telse\n\t\t\t\tthis.viewDate = this.o.defaultViewDate;\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t}\n\t\t\telse if (dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates))\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length)\n\t\t\t\tthis._trigger('clearDate');\n\n\t\t\tthis.fill();\n\t\t\tthis.element.change();\n\t\t\treturn this;\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '<tr>';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\tthis.picker.find('.datepicker-days .datepicker-switch')\n\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t});\n\t\t\t\thtml += '<th class=\"cw\">&#160;</th>';\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += '<th class=\"dow\">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>';\n\t\t\t}\n\t\t\thtml += '</tr>';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12){\n\t\t\t\thtml += '<span class=\"month\">'+dates[this.o.language].monthsShort[i++]+'</span>';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = new Date();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t}\n\t\t\telse if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\tif (this.o.todayHighlight &&\n\t\t\t\tdate.getUTCFullYear() === today.getFullYear() &&\n\t\t\t\tdate.getUTCMonth() === today.getMonth() &&\n\t\t\t\tdate.getUTCDate() === today.getDate()){\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (!this.dateWithinRange(date) || this.dateIsDisabled(date)){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){\n\t\t\t\tcls.push('highlighted');\n\t\t\t}\n\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t\tif (date.valueOf() === this.range[0]){\n          cls.push('range-start');\n        }\n        if (date.valueOf() === this.range[this.range.length-1]){\n          cls.push('range-end');\n        }\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n\t\t\t\ttitleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n\t\t\t\ttooltip;\n\t\t\tif (isNaN(year) || isNaN(month))\n\t\t\t\treturn;\n\t\t\tthis.picker.find('.datepicker-days thead .datepicker-switch')\n\t\t\t\t\t\t.text(DPGlobal.formatDate(new UTCDate(year, month), titleFormat, this.o.language));\n\t\t\tthis.picker.find('tfoot .today')\n\t\t\t\t\t\t.text(todaytxt)\n\t\t\t\t\t\t.toggle(this.o.todayBtn !== false);\n\t\t\tthis.picker.find('tfoot .clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.toggle(this.o.clearBtn !== false);\n\t\t\tthis.picker.find('thead .datepicker-title')\n\t\t\t\t\t\t.text(this.o.title)\n\t\t\t\t\t\t.toggle(this.o.title !== '');\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28),\n\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\tprevMonth.setUTCDate(day);\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tif (prevMonth.getUTCFullYear() < 100){\n        nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());\n      }\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekStart){\n\t\t\t\t\thtml.push('<tr>');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek =  (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push('<td class=\"cw\">'+ calWeek +'</td>');\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tvar before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t}\n\n\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\thtml.push('<td class=\"'+clsName.join(' ')+'\"' + (tooltip ? ' title=\"'+tooltip+'\"' : '') + '>'+prevMonth.getUTCDate() + '</td>');\n\t\t\t\ttooltip = null;\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekEnd){\n\t\t\t\t\thtml.push('</tr>');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').empty().append(html.join(''));\n\n\t\t\tvar monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('.datepicker-switch')\n\t\t\t\t\t\t\t.text(this.o.maxViewMode < 2 ? monthsTitle : year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\tif (this.o.beforeShowMonth !== $.noop){\n\t\t\t\tvar that = this;\n\t\t\t\t$.each(months, function(i, month){\n\t\t\t\t\tif (!$(month).hasClass('disabled')) {\n\t\t\t\t\t\tvar moDate = new Date(year, i, 1);\n\t\t\t\t\t\tvar before = that.o.beforeShowMonth(moDate);\n\t\t\t\t\t\tif (before === false)\n\t\t\t\t\t\t\t$(month).addClass('disabled');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datepicker-years')\n\t\t\t\t\t\t\t\t.find('.datepicker-switch')\n\t\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tvar years = $.map(this.dates, function(d){\n\t\t\t\t\treturn d.getUTCFullYear();\n\t\t\t\t}),\n\t\t\t\tclasses;\n\t\t\tfor (var i = -1; i < 11; i++){\n\t\t\t\tclasses = ['year'];\n\t\t\t\ttooltip = null;\n\n\t\t\t\tif (i === -1)\n\t\t\t\t\tclasses.push('old');\n\t\t\t\telse if (i === 10)\n\t\t\t\t\tclasses.push('new');\n\t\t\t\tif ($.inArray(year, years) !== -1)\n\t\t\t\t\tclasses.push('active');\n\t\t\t\tif (year < startYear || year > endYear)\n\t\t\t\t\tclasses.push('disabled');\n\n\t\t\t\tif (this.o.beforeShowYear !== $.noop) {\n\t\t\t\t\tvar yrBefore = this.o.beforeShowYear(new Date(year, 0, 1));\n\t\t\t\t\tif (yrBefore === undefined)\n\t\t\t\t\t\tyrBefore = {};\n\t\t\t\t\telse if (typeof(yrBefore) === 'boolean')\n\t\t\t\t\t\tyrBefore = {enabled: yrBefore};\n\t\t\t\t\telse if (typeof(yrBefore) === 'string')\n\t\t\t\t\t\tyrBefore = {classes: yrBefore};\n\t\t\t\t\tif (yrBefore.enabled === false)\n\t\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t\tif (yrBefore.classes)\n\t\t\t\t\t\tclasses = classes.concat(yrBefore.classes.split(/\\s+/));\n\t\t\t\t\tif (yrBefore.tooltip)\n\t\t\t\t\t\ttooltip = yrBefore.tooltip;\n\t\t\t\t}\n\n\t\t\t\thtml += '<span class=\"' + classes.join(' ') + '\"' + (tooltip ? ' title=\"'+tooltip+'\"' : '') + '>' + year + '</span>';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth();\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() || this.o.maxViewMode < 2){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() || this.o.maxViewMode < 2){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tvar target = $(e.target).closest('span, td, th'),\n\t\t\t\tyear, month, day;\n\t\t\tif (target.length === 1){\n\t\t\t\tswitch (target[0].nodeName.toLowerCase()){\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch (target[0].className){\n\t\t\t\t\t\t\tcase 'datepicker-switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch (this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode === 1)\n\t\t\t\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tthis.showMode(-2);\n\t\t\t\t\t\t\t\tvar which = this.o.todayBtn === 'linked' ? null : 'view';\n\t\t\t\t\t\t\t\tthis._setDate(UTCToday(), which);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clear':\n\t\t\t\t\t\t\t\tthis.clearDates();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.hasClass('disabled')){\n\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\tif (target.hasClass('month')){\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 1){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t\tthis.showMode();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10)||0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 2){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.hasClass('day') && !target.hasClass('disabled')){\n\t\t\t\t\t\t\tday = parseInt(target.text(), 10)||1;\n\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth();\n\t\t\t\t\t\t\tif (target.hasClass('old')){\n\t\t\t\t\t\t\t\tif (month === 0){\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (target.hasClass('new')){\n\t\t\t\t\t\t\t\tif (month === 11){\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\t$(this._focused_from).focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\n\t\t\tif (ix !== -1){\n\t\t\t\tif (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){\n\t\t\t\t\tthis.dates.remove(ix);\n\t\t\t\t}\n\t\t\t} else if (this.o.multidate === false) {\n\t\t\t\tthis.dates.clear();\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif (!which || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tif (!which || which !== 'view') {\n\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tvar element;\n\t\t\tif (this.isInput){\n\t\t\t\telement = this.element;\n\t\t\t}\n\t\t\telse if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element){\n\t\t\t\telement.change();\n\t\t\t}\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveDay: function(date, dir){\n\t\t\tvar newDate = new Date(date);\n\t\t\tnewDate.setUTCDate(date.getUTCDate() + dir);\n\n\t\t\treturn newDate;\n\t\t},\n\n\t\tmoveWeek: function(date, dir){\n\t\t\treturn this.moveDay(date, dir * 7);\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!isValidDate(date))\n\t\t\t\treturn this.o.defaultViewDate;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tmoveAvailableDate: function(date, dir, fn){\n\t\t\tdo {\n\t\t\t\tdate = this[fn](date, dir);\n\n\t\t\t\tif (!this.dateWithinRange(date))\n\t\t\t\t\treturn false;\n\n\t\t\t\tfn = 'moveDay';\n\t\t\t}\n\t\t\twhile (this.dateIsDisabled(date));\n\n\t\t\treturn date;\n\t\t},\n\n\t\tweekOfDateIsDisabled: function(date){\n\t\t\treturn $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;\n\t\t},\n\n\t\tdateIsDisabled: function(date){\n\t\t\treturn (\n\t\t\t\tthis.weekOfDateIsDisabled(date) ||\n\t\t\t\t$.grep(this.o.datesDisabled, function(d){\n\t\t\t\t\treturn isUTCEquals(date, d);\n\t\t\t\t}).length > 0\n\t\t\t);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (!this.picker.is(':visible')){\n\t\t\t\tif (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\t\te.stopPropagation();\n        }\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 39: // right\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n\n\t\t\t\t\t\tif (newViewDate)\n\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n\n\t\t\t\t\t\tif (newViewDate)\n\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.keyCode === 37 || e.keyCode === 39){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');\n\t\t\t\t\t}\n\t\t\t\t\telse if (!this.weekOfDateIsDisabled(focusDate)){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');\n\t\t\t\t\t}\n\t\t\t\t\tif (newViewDate){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tif (!this.o.forceParse)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tif (this.o.keyboardNavigation) {\n\t\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput){\n\t\t\t\t\telement = this.element;\n\t\t\t\t}\n\t\t\t\telse if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element){\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir){\n\t\t\tif (dir){\n\t\t\t\tthis.viewMode = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, this.viewMode + dir));\n\t\t\t}\n\t\t\tthis.picker\n\t\t\t\t.children('div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-' + DPGlobal.modes[this.viewMode].clsName)\n\t\t\t\t\t.show();\n\t\t\tthis.updateNavArrows();\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\t$(element).data('datepicker', this);\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\tdatepickerPlugin.call($(this.inputs), options)\n\t\t\t.on('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $(i).data('datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling.  Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $(e.target).data('datepicker');\n\n\t\t\tif (typeof(dp) === \"undefined\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar new_date = dp.getUTCDate(),\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tj = i - 1,\n\t\t\t\tk = i + 1,\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate())\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[j]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (j >= 0 && new_date < this.dates[j]){\n\t\t\t\t\tthis.pickers[j--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (new_date > this.dates[k]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (k < l && new_date > this.dates[k]){\n\t\t\t\t\tthis.pickers[k++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tremove: function(){\n\t\t\t$.map(this.pickers, function(p){ p.remove(); });\n\t\t\tdelete this.element.data().datepicker;\n\t\t}\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\tvar datepickerPlugin = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.hasClass('input-daterange') || opts.inputs){\n\t\t\t\t\t$.extend(opts, {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t});\n\t\t\t\t\tdata = new DateRangePicker(this, opts);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata = new Datepicker(this, opts);\n\t\t\t\t}\n\t\t\t\t$this.data('datepicker', data);\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t}\n\t\t});\n\n\t\tif (\n\t\t\tinternal_return === undefined ||\n\t\t\tinternal_return instanceof Datepicker ||\n\t\t\tinternal_return instanceof DateRangePicker\n\t\t)\n\t\t\treturn this;\n\n\t\tif (this.length > 1)\n\t\t\tthrow new Error('Using only allowed for the collection of a single element (' + option + ' function)');\n\t\telse\n\t\t\treturn internal_return;\n\t};\n\t$.fn.datepicker = datepickerPlugin;\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tbeforeShowMonth: $.noop,\n\t\tbeforeShowYear: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\ttoggleActive: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tdaysOfWeekHighlighted: [],\n\t\tdatesDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmaxViewMode: 2,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tweekStart: 0,\n\t\tdisableTouchKeyboard: false,\n\t\tenableOnReadonly: true,\n\t\tshowOnFocus: true,\n\t\tzIndexOffset: 10,\n\t\tcontainer: 'body',\n\t\timmediateUpdates: false,\n\t\ttitle: ''\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\",\n\t\t\ttitleFormat: \"MM yyyy\"\n\t\t},\n\t\tcn: {\n\t\t\tdays: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\", \"周日\"],\n\t\t\tdaysShort: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\"],\n\t\t\tdaysMin: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\"],\n\t\t\tmonths: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\tmonthsShort: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\ttoday: \"今天\",\n\t\t\tclear: \"清除\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function(year){\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\t\t},\n\t\tgetDaysInMonth: function(year, month){\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\t\t},\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\[\\u3400-\\u9fff-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\tif (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')\n                return format;\n            // IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toValue)\n                return format.toValue(date, format, language);\n            var part_re = /([\\-+]\\d+)([dmwy])/,\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g),\n\t\t\t\tfn_map = {\n\t\t\t\t\td: 'moveDay',\n\t\t\t\t\tm: 'moveMonth',\n\t\t\t\t\tw: 'moveWeek',\n\t\t\t\t\ty: 'moveYear'\n\t\t\t\t},\n\t\t\t\tpart, dir, i, fn;\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tfn = fn_map[part[2]];\n\t\t\t\t\tdate = Datepicker.prototype[fn](date, dir);\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n\t\t\t}\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\t\t\tdate = new Date();\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(v);\n\t\t\t\t\t},\n\t\t\t\t\tyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(2000+v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCToday();\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m.toLowerCase() === p.toLowerCase();\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toDisplay)\n                return format.toDisplay(date, format, language);\n            var val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: '<thead>'+\n\t\t\t              '<tr>'+\n\t\t\t                '<th colspan=\"7\" class=\"datepicker-title\"></th>'+\n\t\t\t              '</tr>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th class=\"prev\"><i class=\"fa fa-angle-left\"></i></th>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"5\" class=\"datepicker-switch\"></th>'+\n\t\t\t\t\t\t\t\t'<th class=\"next\"><i class=\"fa fa-angle-right\"></i></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t'</thead>',\n\t\tcontTemplate: '<tbody><tr><td colspan=\"7\"></td></tr></tbody>',\n\t\tfootTemplate: '<tfoot>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"7\" class=\"today\"></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"7\" class=\"clear\"></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t'</tfoot>'\n\t};\n\tDPGlobal.template = '<div class=\"datepicker\">'+\n\t\t\t\t\t\t\t'<div class=\"datepicker-days\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t'<tbody></tbody>'+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datepicker-months\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datepicker-years\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'</div>';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\t/* DATEPICKER VERSION\n\t * =================== */\n\t$.fn.datepicker.version = '1.5.1';\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\tdatepickerPlugin.call($this, 'show');\n\t\t}\n\t);\n\t$(function(){\n\t\tdatepickerPlugin.call($('[data-provide=\"datepicker-inline\"]'));\n\t});\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-daterangepicker/daterangepicker.css",
    "content": "/**\n* A stylesheet for use with Bootstrap 3.x\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved.\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\n* @website: https://www.improvely.com/\n*/\n\n/* Container Appearance */\n\n.daterangepicker {\n  position: absolute;\n  background: #fff;\n  top: 100px;\n  left: 20px;\n  padding: 4px;\n  margin-top: 1px;\n  border-radius: 4px;\n  width:278px;\n}\n\n.daterangepicker.opensleft:before {\n  position: absolute;\n  top: -7px;\n  right: 9px;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.daterangepicker.opensleft:after {\n  position: absolute;\n  top: -6px;\n  right: 10px;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #fff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.daterangepicker.openscenter:before {\n  position: absolute;\n  top: -7px;\n  left: 0;\n  right: 0;\n  width: 0;\n  margin-left: auto;\n  margin-right: auto;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.daterangepicker.openscenter:after {\n  position: absolute;\n  top: -6px;\n  left: 0;\n  right: 0;\n  width: 0;\n  margin-left: auto;\n  margin-right: auto;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #fff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.daterangepicker.opensright:before {\n  position: absolute;\n  top: -7px;\n  left: 9px;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.daterangepicker.opensright:after {\n  position: absolute;\n  top: -6px;\n  left: 10px;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #fff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.daterangepicker.dropup{\n  margin-top: -5px;\n}\n.daterangepicker.dropup:before{\n  top: initial;\n  bottom:-7px;\n  border-bottom: initial;\n  border-top: 7px solid #ccc;\n}\n.daterangepicker.dropup:after{\n  top: initial;\n  bottom:-6px;\n  border-bottom: initial;\n  border-top: 6px solid #fff;\n}\n\n.daterangepicker.dropdown-menu {\n  max-width: none;\n  z-index: 3000;\n}\n\n.daterangepicker.single .ranges, .daterangepicker.single .calendar {\n  float: none;\n}\n\n.daterangepicker .calendar {\n  display: none;\n  max-width: 270px;\n  margin: 4px;\n}\n\n.daterangepicker.show-calendar .calendar {\n  display: block;\n}\n\n.daterangepicker .calendar.single .calendar-table {\n  border: none;\n}\n\n/* Calendars */\n\n.daterangepicker .calendar th, .daterangepicker .calendar td {\n  white-space: nowrap;\n  text-align: center;\n  min-width: 32px;\n}\n\n.daterangepicker .calendar-table {\n  border: 1px solid #ddd;\n  padding: 4px;\n  border-radius: 4px;\n  background: #fff;\n}\n\n.daterangepicker table {\n  width: 100%;\n  margin: 0;\n}\n\n.daterangepicker td, .daterangepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  border-radius: 4px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n\n.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {\n  color: #999;\n  background: #fff;\n}\n\n.daterangepicker td.disabled, .daterangepicker option.disabled {\n  color: #999;\n  cursor: not-allowed;\n  text-decoration: line-through;\n}\n\n.daterangepicker td.available:hover, .daterangepicker th.available:hover {\n  background: #eee;\n}\n\n.daterangepicker td.in-range {\n  background: #ebf4f8;\n  border-radius: 0;\n}\n\n.daterangepicker td.start-date {\n  border-radius: 4px 0 0 4px;\n}\n\n.daterangepicker td.end-date {\n  border-radius: 0 4px 4px 0;\n}\n\n.daterangepicker td.start-date.end-date {\n  border-radius: 4px;\n}\n\n.daterangepicker td.active, .daterangepicker td.active:hover {\n  background-color: #357ebd;\n  border-color: #3071a9;\n  color: #fff;\n}\n\n.daterangepicker td.week, .daterangepicker th.week {\n  font-size: 80%;\n  color: #ccc;\n}\n\n.daterangepicker select.monthselect, .daterangepicker select.yearselect {\n  font-size: 12px;\n  padding: 1px;\n  height: auto;\n  margin: 0;\n  cursor: default;\n}\n\n.daterangepicker select.monthselect {\n  margin-right: 2%;\n  width: 56%;\n}\n\n.daterangepicker select.yearselect {\n  width: 40%;\n}\n\n.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {\n  width: 50px;\n  margin-bottom: 0;\n}\n\n.daterangepicker th.month {\n  width: auto;\n}\n\n/* Text Input Above Each Calendar */\n\n.daterangepicker .input-mini {\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  color: #555;\n  display: block;\n  height: 30px;\n  line-height: 30px;\n  vertical-align: middle;\n  margin: 0 0 5px 0;\n  padding: 0 6px 0 28px;\n  width: 100%;\n}\n\n.daterangepicker .input-mini.active {\n  border: 1px solid #357ebd;\n}\n\n.daterangepicker .daterangepicker_input i {\n  position: absolute;\n  left: 8px;\n  top: 8px;\n}\n\n.daterangepicker .daterangepicker_input {\n  position: relative;\n}\n\n/* Time Picker */\n\n.daterangepicker .calendar-time {\n  text-align: center;\n  margin: 5px auto;\n  line-height: 30px;\n  position: relative;\n  padding-left: 28px;\n}\n\n.daterangepicker .calendar-time select.disabled {\n  color: #ccc;\n  cursor: not-allowed;\n}\n\n/* Predefined Ranges */\n\n.daterangepicker .ranges {\n  font-size: 11px;\n  float: none;\n  margin: 4px;\n  text-align: left;\n}\n\n.daterangepicker .ranges ul {\n  list-style: none;\n  margin: 0 auto;\n  padding: 0;\n  width: 100%;\n}\n\n.daterangepicker .ranges li {\n  font-size: 13px;\n  background: #f5f5f5;\n  border: 1px solid #f5f5f5;\n  color: #08c;\n  padding: 3px 12px;\n  margin-bottom: 8px;\n  border-radius: 5px;\n  cursor: pointer;\n}\n\n.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover {\n  background: #08c;\n  border: 1px solid #08c;\n  color: #fff;\n}\n\n/*  Larger Screen Styling */\n@media (min-width: 564px) {\n  .daterangepicker{\n    width: auto;\n  }\n\n  .daterangepicker .ranges ul {\n    width: 160px;\n  }\n  .daterangepicker.single .ranges ul {\n    width: 100%;\n  }\n  .daterangepicker .calendar.left .calendar-table {\n    border-right: none;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  .daterangepicker .calendar.right .calendar-table {\n    border-left: none;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n\n  .daterangepicker .calendar.left {\n    clear: left;\n    margin-right: 0;\n  }\n  .daterangepicker.single .calendar.left {\n    clear: none;\n  }\n  .daterangepicker.single .ranges,\n  .daterangepicker.single .calendar{\n    float:left;\n  }\n\n  .daterangepicker .calendar.right {\n    margin-left: 0;\n  }\n\n  .daterangepicker .left .daterangepicker_input {\n    padding-right: 12px;\n  }\n\n  .daterangepicker .calendar.left .calendar-table {\n    padding-right: 12px;\n  }\n\n  .daterangepicker .ranges,\n  .daterangepicker .calendar {\n    float: left;\n  }\n}\n\n@media (min-width: 730px) {\n  .daterangepicker .ranges {\n    width: auto;\n    float: left;\n  }\n  .daterangepicker .calendar.left {\n    clear: none;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-daterangepicker/daterangepicker.js",
    "content": "/**\n* @version: 2.1.13\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved.\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\n* @website: https://www.improvely.com/\n*/\n\n(function(root, factory) {\n\n  if (typeof define === 'function' && define.amd) {\n    define(['moment', 'jquery', 'exports'], function(momentjs, $, exports) {\n      root.daterangepicker = factory(root, exports, momentjs, $);\n    });\n\n  } else if (typeof exports !== 'undefined') {\n      var momentjs = require('moment');\n      var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;  //isomorphic issue\n      if (!jQuery) {\n          try {\n              jQuery = require('jquery');\n              if (!jQuery.fn) jQuery.fn = {}; //isomorphic issue\n          } catch (err) {\n              if (!jQuery) throw new Error('jQuery dependency not found');\n          }\n      }\n\n    factory(root, exports, momentjs, jQuery);\n\n  // Finally, as a browser global.\n  } else {\n    root.daterangepicker = factory(root, {}, root.moment || moment, (root.jQuery || root.Zepto || root.ender || root.$));\n  }\n\n}(this || {}, function(root, daterangepicker, moment, $) { // 'this' doesn't exist on a server\n\n    var DateRangePicker = function(element, options, cb) {\n\n        //default settings for options\n        this.parentEl = 'body';\n        this.element = $(element);\n        this.startDate = moment().startOf('day');\n        this.endDate = moment().endOf('day');\n        this.minDate = false;\n        this.maxDate = false;\n        this.dateLimit = false;\n        this.autoApply = false;\n        this.singleDatePicker = false;\n        this.showDropdowns = false;\n        this.showWeekNumbers = false;\n        this.timePicker = false;\n        this.timePicker24Hour = false;\n        this.timePickerIncrement = 1;\n        this.timePickerSeconds = false;\n        this.linkedCalendars = true;\n        this.autoUpdateInput = true;\n        this.ranges = {};\n\n        this.opens = 'right';\n        if (this.element.hasClass('pull-right'))\n            this.opens = 'left';\n\n        this.drops = 'down';\n        if (this.element.hasClass('dropup'))\n            this.drops = 'up';\n\n        this.buttonClasses = 'btn btn-sm';\n        this.applyClass = 'btn-success';\n        this.cancelClass = 'btn-default';\n\n        this.locale = {\n            format: 'MM/DD/YYYY',\n            separator: ' - ',\n            applyLabel: 'Apply',\n            cancelLabel: 'Cancel',\n            weekLabel: 'W',\n            customRangeLabel: 'Custom Range',\n            daysOfWeek: moment.weekdaysMin(),\n            monthNames: moment.monthsShort(),\n            firstDay: moment.localeData().firstDayOfWeek()\n        };\n\n        this.callback = function() { };\n\n        //some state information\n        this.isShowing = false;\n        this.leftCalendar = {};\n        this.rightCalendar = {};\n\n        //custom options from user\n        if (typeof options !== 'object' || options === null)\n            options = {};\n\n        //allow setting options with data attributes\n        //data-api options will be overwritten with custom javascript options\n        options = $.extend(this.element.data(), options);\n\n        //html template for the picker UI\n        if (typeof options.template !== 'string')\n            options.template = '<div class=\"daterangepicker dropdown-menu\">' +\n                '<div class=\"calendar left\">' +\n                    '<div class=\"daterangepicker_input\">' +\n                      '<input class=\"input-mini\" type=\"text\" name=\"daterangepicker_start\" value=\"\" />' +\n                      '<i class=\"fa fa-calendar\"></i>' +\n                      '<div class=\"calendar-time\">' +\n                        '<div></div>' +\n                        '<i class=\"fa fa-clock-o\"></i>' +\n                      '</div>' +\n                    '</div>' +\n                    '<div class=\"calendar-table\"></div>' +\n                '</div>' +\n                '<div class=\"calendar right\">' +\n                    '<div class=\"daterangepicker_input\">' +\n                      '<input class=\"input-mini\" type=\"text\" name=\"daterangepicker_end\" value=\"\" />' +\n                      '<i class=\"fa fa-calendar\"></i>' +\n                      '<div class=\"calendar-time\">' +\n                        '<div></div>' +\n                        '<i class=\"fa fa-clock-o\"></i>' +\n                      '</div>' +\n                    '</div>' +\n                    '<div class=\"calendar-table\"></div>' +\n                '</div>' +\n                '<div class=\"ranges\">' +\n                    '<div class=\"range_inputs\">' +\n                        '<button class=\"applyBtn\" disabled=\"disabled\" type=\"button\"></button> ' +\n                        '<button class=\"cancelBtn\" type=\"button\"></button>' +\n                    '</div>' +\n                '</div>' +\n            '</div>';\n\n        this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);\n        this.container = $(options.template).appendTo(this.parentEl);\n\n        //\n        // handle all the possible options overriding defaults\n        //\n\n        if (typeof options.locale === 'object') {\n\n            if (typeof options.locale.format === 'string')\n                this.locale.format = options.locale.format;\n\n            if (typeof options.locale.separator === 'string')\n                this.locale.separator = options.locale.separator;\n\n            if (typeof options.locale.daysOfWeek === 'object')\n                this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\n\n            if (typeof options.locale.monthNames === 'object')\n              this.locale.monthNames = options.locale.monthNames.slice();\n\n            if (typeof options.locale.firstDay === 'number')\n              this.locale.firstDay = options.locale.firstDay;\n\n            if (typeof options.locale.applyLabel === 'string')\n              this.locale.applyLabel = options.locale.applyLabel;\n\n            if (typeof options.locale.cancelLabel === 'string')\n              this.locale.cancelLabel = options.locale.cancelLabel;\n\n            if (typeof options.locale.weekLabel === 'string')\n              this.locale.weekLabel = options.locale.weekLabel;\n\n            if (typeof options.locale.customRangeLabel === 'string')\n              this.locale.customRangeLabel = options.locale.customRangeLabel;\n\n        }\n\n        if (typeof options.startDate === 'string')\n            this.startDate = moment(options.startDate, this.locale.format);\n\n        if (typeof options.endDate === 'string')\n            this.endDate = moment(options.endDate, this.locale.format);\n\n        if (typeof options.minDate === 'string')\n            this.minDate = moment(options.minDate, this.locale.format);\n\n        if (typeof options.maxDate === 'string')\n            this.maxDate = moment(options.maxDate, this.locale.format);\n\n        if (typeof options.startDate === 'object')\n            this.startDate = moment(options.startDate);\n\n        if (typeof options.endDate === 'object')\n            this.endDate = moment(options.endDate);\n\n        if (typeof options.minDate === 'object')\n            this.minDate = moment(options.minDate);\n\n        if (typeof options.maxDate === 'object')\n            this.maxDate = moment(options.maxDate);\n\n        // sanity check for bad options\n        if (this.minDate && this.startDate.isBefore(this.minDate))\n            this.startDate = this.minDate.clone();\n\n        // sanity check for bad options\n        if (this.maxDate && this.endDate.isAfter(this.maxDate))\n            this.endDate = this.maxDate.clone();\n\n        if (typeof options.applyClass === 'string')\n            this.applyClass = options.applyClass;\n\n        if (typeof options.cancelClass === 'string')\n            this.cancelClass = options.cancelClass;\n\n        if (typeof options.dateLimit === 'object')\n            this.dateLimit = options.dateLimit;\n\n        if (typeof options.opens === 'string')\n            this.opens = options.opens;\n\n        if (typeof options.drops === 'string')\n            this.drops = options.drops;\n\n        if (typeof options.showWeekNumbers === 'boolean')\n            this.showWeekNumbers = options.showWeekNumbers;\n\n        if (typeof options.buttonClasses === 'string')\n            this.buttonClasses = options.buttonClasses;\n\n        if (typeof options.buttonClasses === 'object')\n            this.buttonClasses = options.buttonClasses.join(' ');\n\n        if (typeof options.showDropdowns === 'boolean')\n            this.showDropdowns = options.showDropdowns;\n\n        if (typeof options.singleDatePicker === 'boolean') {\n            this.singleDatePicker = options.singleDatePicker;\n            if (this.singleDatePicker)\n                this.endDate = this.startDate.clone();\n        }\n\n        if (typeof options.timePicker === 'boolean')\n            this.timePicker = options.timePicker;\n\n        if (typeof options.timePickerSeconds === 'boolean')\n            this.timePickerSeconds = options.timePickerSeconds;\n\n        if (typeof options.timePickerIncrement === 'number')\n            this.timePickerIncrement = options.timePickerIncrement;\n\n        if (typeof options.timePicker24Hour === 'boolean')\n            this.timePicker24Hour = options.timePicker24Hour;\n\n        if (typeof options.autoApply === 'boolean')\n            this.autoApply = options.autoApply;\n\n        if (typeof options.autoUpdateInput === 'boolean')\n            this.autoUpdateInput = options.autoUpdateInput;\n\n        if (typeof options.linkedCalendars === 'boolean')\n            this.linkedCalendars = options.linkedCalendars;\n\n        if (typeof options.isInvalidDate === 'function')\n            this.isInvalidDate = options.isInvalidDate;\n\n        // update day names order to firstDay\n        if (this.locale.firstDay != 0) {\n            var iterator = this.locale.firstDay;\n            while (iterator > 0) {\n                this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\n                iterator--;\n            }\n        }\n\n        var start, end, range;\n\n        //if no start/end dates set, check if an input element contains initial values\n        if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\n            if ($(this.element).is('input[type=text]')) {\n                var val = $(this.element).val(),\n                    split = val.split(this.locale.separator);\n\n                start = end = null;\n\n                if (split.length == 2) {\n                    start = moment(split[0], this.locale.format);\n                    end = moment(split[1], this.locale.format);\n                } else if (this.singleDatePicker && val !== \"\") {\n                    start = moment(val, this.locale.format);\n                    end = moment(val, this.locale.format);\n                }\n                if (start !== null && end !== null) {\n                    this.setStartDate(start);\n                    this.setEndDate(end);\n                }\n            }\n        }\n\n        if (typeof options.ranges === 'object') {\n            for (range in options.ranges) {\n\n                if (typeof options.ranges[range][0] === 'string')\n                    start = moment(options.ranges[range][0], this.locale.format);\n                else\n                    start = moment(options.ranges[range][0]);\n\n                if (typeof options.ranges[range][1] === 'string')\n                    end = moment(options.ranges[range][1], this.locale.format);\n                else\n                    end = moment(options.ranges[range][1]);\n\n                // If the start or end date exceed those allowed by the minDate or dateLimit\n                // options, shorten the range to the allowable period.\n                if (this.minDate && start.isBefore(this.minDate))\n                    start = this.minDate.clone();\n\n                var maxDate = this.maxDate;\n                if (this.dateLimit && start.clone().add(this.dateLimit).isAfter(maxDate))\n                    maxDate = start.clone().add(this.dateLimit);\n                if (maxDate && end.isAfter(maxDate))\n                    end = maxDate.clone();\n\n                // If the end of the range is before the minimum or the start of the range is\n                // after the maximum, don't display this range option at all.\n                if ((this.minDate && end.isBefore(this.minDate)) || (maxDate && start.isAfter(maxDate)))\n                    continue;\n                \n                //Support unicode chars in the range names.\n                var elem = document.createElement('textarea');\n                elem.innerHTML = range;\n                rangeHtml = elem.value;\n\n                this.ranges[rangeHtml] = [start, end];\n            }\n\n            var list = '<ul>';\n            for (range in this.ranges) {\n                list += '<li>' + range + '</li>';\n            }\n            list += '<li>' + this.locale.customRangeLabel + '</li>';\n            list += '</ul>';\n            this.container.find('.ranges').prepend(list);\n        }\n\n        if (typeof cb === 'function') {\n            this.callback = cb;\n        }\n\n        if (!this.timePicker) {\n            this.startDate = this.startDate.startOf('day');\n            this.endDate = this.endDate.endOf('day');\n            this.container.find('.calendar-time').hide();\n        }\n\n        //can't be used together for now\n        if (this.timePicker && this.autoApply)\n            this.autoApply = false;\n\n        if (this.autoApply && typeof options.ranges !== 'object') {\n            this.container.find('.ranges').hide();\n        } else if (this.autoApply) {\n            this.container.find('.applyBtn, .cancelBtn').addClass('hide');\n        }\n\n        if (this.singleDatePicker) {\n            this.container.addClass('single');\n            this.container.find('.calendar.left').addClass('single');\n            this.container.find('.calendar.left').show();\n            this.container.find('.calendar.right').hide();\n            this.container.find('.daterangepicker_input input, .daterangepicker_input i').hide();\n            if (!this.timePicker) {\n                this.container.find('.ranges').hide();\n            }\n        }\n\n        if (typeof options.ranges === 'undefined' && !this.singleDatePicker) {\n            this.container.addClass('show-calendar');\n        }\n\n        this.container.addClass('opens' + this.opens);\n\n        //swap the position of the predefined ranges if opens right\n        if (typeof options.ranges !== 'undefined' && this.opens == 'right') {\n            var ranges = this.container.find('.ranges');\n            var html = ranges.clone();\n            ranges.remove();\n            this.container.find('.calendar.left').parent().prepend(html);\n        }\n\n        //apply CSS classes and labels to buttons\n        this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\n        if (this.applyClass.length)\n            this.container.find('.applyBtn').addClass(this.applyClass);\n        if (this.cancelClass.length)\n            this.container.find('.cancelBtn').addClass(this.cancelClass);\n        this.container.find('.applyBtn').html(this.locale.applyLabel);\n        this.container.find('.cancelBtn').html(this.locale.cancelLabel);\n\n        //\n        // event listeners\n        //\n\n        this.container.find('.calendar')\n            .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\n            .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\n            .on('click.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\n            .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\n            .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this))\n            .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\n            .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\n            .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this))\n            .on('click.daterangepicker', '.daterangepicker_input input', $.proxy(this.showCalendars, this))\n            //.on('keyup.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this))\n            .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this));\n\n        this.container.find('.ranges')\n            .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\n            .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this))\n            .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this))\n            .on('mouseenter.daterangepicker', 'li', $.proxy(this.hoverRange, this))\n            .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this));\n\n        if (this.element.is('input')) {\n            this.element.on({\n                'click.daterangepicker': $.proxy(this.show, this),\n                'focus.daterangepicker': $.proxy(this.show, this),\n                'keyup.daterangepicker': $.proxy(this.elementChanged, this),\n                'keydown.daterangepicker': $.proxy(this.keydown, this)\n            });\n        } else {\n            this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\n        }\n\n        //\n        // if attached to a text input, set the initial value\n        //\n\n        if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {\n            this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n            this.element.trigger('change');\n        } else if (this.element.is('input') && this.autoUpdateInput) {\n            this.element.val(this.startDate.format(this.locale.format));\n            this.element.trigger('change');\n        }\n\n    };\n\n    DateRangePicker.prototype = {\n\n        constructor: DateRangePicker,\n\n        setStartDate: function(startDate) {\n            if (typeof startDate === 'string')\n                this.startDate = moment(startDate, this.locale.format);\n\n            if (typeof startDate === 'object')\n                this.startDate = moment(startDate);\n\n            if (!this.timePicker)\n                this.startDate = this.startDate.startOf('day');\n\n            if (this.timePicker && this.timePickerIncrement)\n                this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n            if (this.minDate && this.startDate.isBefore(this.minDate))\n                this.startDate = this.minDate;\n\n            if (this.maxDate && this.startDate.isAfter(this.maxDate))\n                this.startDate = this.maxDate;\n\n            if (!this.isShowing)\n                this.updateElement();\n\n            this.updateMonthsInView();\n        },\n\n        setEndDate: function(endDate) {\n            if (typeof endDate === 'string')\n                this.endDate = moment(endDate, this.locale.format);\n\n            if (typeof endDate === 'object')\n                this.endDate = moment(endDate);\n\n            if (!this.timePicker)\n                this.endDate = this.endDate.endOf('day');\n\n            if (this.timePicker && this.timePickerIncrement)\n                this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n            if (this.endDate.isBefore(this.startDate))\n                this.endDate = this.startDate.clone();\n\n            if (this.maxDate && this.endDate.isAfter(this.maxDate))\n                this.endDate = this.maxDate;\n\n            if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate))\n                this.endDate = this.startDate.clone().add(this.dateLimit);\n\n            if (!this.isShowing)\n                this.updateElement();\n\n            this.updateMonthsInView();\n        },\n\n        isInvalidDate: function() {\n            return false;\n        },\n\n        updateView: function() {\n            if (this.timePicker) {\n                this.renderTimePicker('left');\n                this.renderTimePicker('right');\n                if (!this.endDate) {\n                    this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled');\n                } else {\n                    this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled');\n                }\n            }\n            if (this.endDate) {\n                this.container.find('input[name=\"daterangepicker_end\"]').removeClass('active');\n                this.container.find('input[name=\"daterangepicker_start\"]').addClass('active');\n            } else {\n                this.container.find('input[name=\"daterangepicker_end\"]').addClass('active');\n                this.container.find('input[name=\"daterangepicker_start\"]').removeClass('active');\n            }\n            this.updateMonthsInView();\n            this.updateCalendars();\n            this.updateFormInputs();\n        },\n\n        updateMonthsInView: function() {\n            if (this.endDate) {\n\n                //if both dates are visible already, do nothing\n                if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\n                    (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n                    &&\n                    (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n                    ) {\n                    return;\n                }\n\n                this.leftCalendar.month = this.startDate.clone().date(2);\n                if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\n                    this.rightCalendar.month = this.endDate.clone().date(2);\n                } else {\n                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n                }\n                \n            } else {\n                if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\n                    this.leftCalendar.month = this.startDate.clone().date(2);\n                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n                }\n            }\n        },\n\n        updateCalendars: function() {\n\n            if (this.timePicker) {\n                var hour, minute, second;\n                if (this.endDate) {\n                    hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n                    minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n                    second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.left .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                } else {\n                    hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n                    minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n                    second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.right .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                }\n                this.leftCalendar.month.hour(hour).minute(minute).second(second);\n                this.rightCalendar.month.hour(hour).minute(minute).second(second);\n            }\n\n            this.renderCalendar('left');\n            this.renderCalendar('right');\n\n            //highlight any predefined range matching the current start and end dates\n            this.container.find('.ranges li').removeClass('active');\n            if (this.endDate == null) return;\n\n            var customRange = true;\n            var i = 0;\n            for (var range in this.ranges) {\n                if (this.timePicker) {\n                    if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) {\n                        customRange = false;\n                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();\n                        break;\n                    }\n                } else {\n                    //ignore times when comparing dates if time picker is not enabled\n                    if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\n                        customRange = false;\n                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();\n                        break;\n                    }\n                }\n                i++;\n            }\n            if (customRange) {\n                this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html();\n                this.showCalendars();\n            }\n\n        },\n\n        renderCalendar: function(side) {\n\n            //\n            // Build the matrix of dates that will populate the calendar\n            //\n\n            var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\n            var month = calendar.month.month();\n            var year = calendar.month.year();\n            var hour = calendar.month.hour();\n            var minute = calendar.month.minute();\n            var second = calendar.month.second();\n            var daysInMonth = moment([year, month]).daysInMonth();\n            var firstDay = moment([year, month, 1]);\n            var lastDay = moment([year, month, daysInMonth]);\n            var lastMonth = moment(firstDay).subtract(1, 'month').month();\n            var lastYear = moment(firstDay).subtract(1, 'month').year();\n            var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\n            var dayOfWeek = firstDay.day();\n\n            //initialize a 6 rows x 7 columns array for the calendar\n            var calendar = [];\n            calendar.firstDay = firstDay;\n            calendar.lastDay = lastDay;\n\n            for (var i = 0; i < 6; i++) {\n                calendar[i] = [];\n            }\n\n            //populate the calendar with date objects\n            var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\n            if (startDay > daysInLastMonth)\n                startDay -= 7;\n\n            if (dayOfWeek == this.locale.firstDay)\n                startDay = daysInLastMonth - 6;\n\n            var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\n\n            var col, row;\n            for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\n                if (i > 0 && col % 7 === 0) {\n                    col = 0;\n                    row++;\n                }\n                calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\n                curDate.hour(12);\n\n                if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\n                    calendar[row][col] = this.minDate.clone();\n                }\n\n                if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\n                    calendar[row][col] = this.maxDate.clone();\n                }\n\n            }\n\n            //make the calendar object available to hoverDate/clickDate\n            if (side == 'left') {\n                this.leftCalendar.calendar = calendar;\n            } else {\n                this.rightCalendar.calendar = calendar;\n            }\n\n            //\n            // Display the calendar\n            //\n\n            var minDate = side == 'left' ? this.minDate : this.startDate;\n            var maxDate = this.maxDate;\n            var selected = side == 'left' ? this.startDate : this.endDate;\n\n            var html = '<table class=\"table-condensed\">';\n            html += '<thead>';\n            html += '<tr>';\n\n            // add empty cell for week number\n            if (this.showWeekNumbers)\n                html += '<th></th>';\n\n            if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\n                html += '<th class=\"prev available\"><i class=\"fa fa-angle-left\"></i></th>';\n            } else {\n                html += '<th></th>';\n            }\n\n            var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\n\n            if (this.showDropdowns) {\n                var currentMonth = calendar[1][1].month();\n                var currentYear = calendar[1][1].year();\n                var maxYear = (maxDate && maxDate.year()) || (currentYear + 5);\n                var minYear = (minDate && minDate.year()) || (currentYear - 50);\n                var inMinYear = currentYear == minYear;\n                var inMaxYear = currentYear == maxYear;\n\n                var monthHtml = '<select class=\"monthselect\">';\n                for (var m = 0; m < 12; m++) {\n                    if ((!inMinYear || m >= minDate.month()) && (!inMaxYear || m <= maxDate.month())) {\n                        monthHtml += \"<option value='\" + m + \"'\" +\n                            (m === currentMonth ? \" selected='selected'\" : \"\") +\n                            \">\" + this.locale.monthNames[m] + \"</option>\";\n                    } else {\n                        monthHtml += \"<option value='\" + m + \"'\" +\n                            (m === currentMonth ? \" selected='selected'\" : \"\") +\n                            \" disabled='disabled'>\" + this.locale.monthNames[m] + \"</option>\";\n                    }\n                }\n                monthHtml += \"</select>\";\n\n                var yearHtml = '<select class=\"yearselect\">';\n                for (var y = minYear; y <= maxYear; y++) {\n                    yearHtml += '<option value=\"' + y + '\"' +\n                        (y === currentYear ? ' selected=\"selected\"' : '') +\n                        '>' + y + '</option>';\n                }\n                yearHtml += '</select>';\n\n                dateHtml = monthHtml + yearHtml;\n            }\n\n            html += '<th colspan=\"5\" class=\"month\">' + dateHtml + '</th>';\n            if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\n                html += '<th class=\"next available\"><i class=\"fa fa-angle-right\"></i></th>';\n            } else {\n                html += '<th></th>';\n            }\n\n            html += '</tr>';\n            html += '<tr>';\n\n            // add week number label\n            if (this.showWeekNumbers)\n                html += '<th class=\"week\">' + this.locale.weekLabel + '</th>';\n\n            $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {\n                html += '<th>' + dayOfWeek + '</th>';\n            });\n\n            html += '</tr>';\n            html += '</thead>';\n            html += '<tbody>';\n\n            //adjust maxDate to reflect the dateLimit setting in order to\n            //grey out end dates beyond the dateLimit\n            if (this.endDate == null && this.dateLimit) {\n                var maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day');\n                if (!maxDate || maxLimit.isBefore(maxDate)) {\n                    maxDate = maxLimit;\n                }\n            }\n\n            for (var row = 0; row < 6; row++) {\n                html += '<tr>';\n\n                // add week number\n                if (this.showWeekNumbers)\n                    html += '<td class=\"week\">' + calendar[row][0].week() + '</td>';\n\n                for (var col = 0; col < 7; col++) {\n\n                    var classes = [];\n\n                    //highlight today's date\n                    if (calendar[row][col].isSame(new Date(), \"day\"))\n                        classes.push('today');\n\n                    //highlight weekends\n                    if (calendar[row][col].isoWeekday() > 5)\n                        classes.push('weekend');\n\n                    //grey out the dates in other months displayed at beginning and end of this calendar\n                    if (calendar[row][col].month() != calendar[1][1].month())\n                        classes.push('off');\n\n                    //don't allow selection of dates before the minimum date\n                    if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\n                        classes.push('off', 'disabled');\n\n                    //don't allow selection of dates after the maximum date\n                    if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\n                        classes.push('off', 'disabled');\n\n                    //don't allow selection of date if a custom function decides it's invalid\n                    if (this.isInvalidDate(calendar[row][col]))\n                        classes.push('off', 'disabled');\n\n                    //highlight the currently selected start date\n                    if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\n                        classes.push('active', 'start-date');\n\n                    //highlight the currently selected end date\n                    if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\n                        classes.push('active', 'end-date');\n\n                    //highlight dates in-between the selected dates\n                    if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\n                        classes.push('in-range');\n\n                    var cname = '', disabled = false;\n                    for (var i = 0; i < classes.length; i++) {\n                        cname += classes[i] + ' ';\n                        if (classes[i] == 'disabled')\n                            disabled = true;\n                    }\n                    if (!disabled)\n                        cname += 'available';\n\n                    html += '<td class=\"' + cname.replace(/^\\s+|\\s+$/g, '') + '\" data-title=\"' + 'r' + row + 'c' + col + '\">' + calendar[row][col].date() + '</td>';\n\n                }\n                html += '</tr>';\n            }\n\n            html += '</tbody>';\n            html += '</table>';\n\n            this.container.find('.calendar.' + side + ' .calendar-table').html(html);\n\n        },\n\n        renderTimePicker: function(side) {\n\n            var html, selected, minDate, maxDate = this.maxDate;\n\n            if (this.dateLimit && (!this.maxDate || this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate)))\n                maxDate = this.startDate.clone().add(this.dateLimit);\n\n            if (side == 'left') {\n                selected = this.startDate.clone();\n                minDate = this.minDate;\n            } else if (side == 'right') {\n                selected = this.endDate ? this.endDate.clone() : this.startDate.clone();\n                minDate = this.startDate;\n            }\n\n            //\n            // hours\n            //\n\n            html = '<select class=\"hourselect\">';\n\n            var start = this.timePicker24Hour ? 0 : 1;\n            var end = this.timePicker24Hour ? 23 : 12;\n\n            for (var i = start; i <= end; i++) {\n                var i_in_24 = i;\n                if (!this.timePicker24Hour)\n                    i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);\n\n                var time = selected.clone().hour(i_in_24);\n                var disabled = false;\n                if (minDate && time.minute(59).isBefore(minDate))\n                    disabled = true;\n                if (maxDate && time.minute(0).isAfter(maxDate))\n                    disabled = true;\n\n                if (i_in_24 == selected.hour() && !disabled) {\n                    html += '<option value=\"' + i + '\" selected=\"selected\">' + i + '</option>';\n                } else if (disabled) {\n                    html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + i + '</option>';\n                } else {\n                    html += '<option value=\"' + i + '\">' + i + '</option>';\n                }\n            }\n\n            html += '</select> ';\n\n            //\n            // minutes\n            //\n\n            html += ': <select class=\"minuteselect\">';\n\n            for (var i = 0; i < 60; i += this.timePickerIncrement) {\n                var padded = i < 10 ? '0' + i : i;\n                var time = selected.clone().minute(i);\n\n                var disabled = false;\n                if (minDate && time.second(59).isBefore(minDate))\n                    disabled = true;\n                if (maxDate && time.second(0).isAfter(maxDate))\n                    disabled = true;\n\n                if (selected.minute() == i && !disabled) {\n                    html += '<option value=\"' + i + '\" selected=\"selected\">' + padded + '</option>';\n                } else if (disabled) {\n                    html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + padded + '</option>';\n                } else {\n                    html += '<option value=\"' + i + '\">' + padded + '</option>';\n                }\n            }\n\n            html += '</select> ';\n\n            //\n            // seconds\n            //\n\n            if (this.timePickerSeconds) {\n                html += ': <select class=\"secondselect\">';\n\n                for (var i = 0; i < 60; i++) {\n                    var padded = i < 10 ? '0' + i : i;\n                    var time = selected.clone().second(i);\n\n                    var disabled = false;\n                    if (minDate && time.isBefore(minDate))\n                        disabled = true;\n                    if (maxDate && time.isAfter(maxDate))\n                        disabled = true;\n\n                    if (selected.second() == i && !disabled) {\n                        html += '<option value=\"' + i + '\" selected=\"selected\">' + padded + '</option>';\n                    } else if (disabled) {\n                        html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + padded + '</option>';\n                    } else {\n                        html += '<option value=\"' + i + '\">' + padded + '</option>';\n                    }\n                }\n\n                html += '</select> ';\n            }\n\n            //\n            // AM/PM\n            //\n\n            if (!this.timePicker24Hour) {\n                html += '<select class=\"ampmselect\">';\n\n                var am_html = '';\n                var pm_html = '';\n\n                if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate))\n                    am_html = ' disabled=\"disabled\" class=\"disabled\"';\n\n                if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate))\n                    pm_html = ' disabled=\"disabled\" class=\"disabled\"';\n\n                if (selected.hour() >= 12) {\n                    html += '<option value=\"AM\"' + am_html + '>AM</option><option value=\"PM\" selected=\"selected\"' + pm_html + '>PM</option>';\n                } else {\n                    html += '<option value=\"AM\" selected=\"selected\"' + am_html + '>AM</option><option value=\"PM\"' + pm_html + '>PM</option>';\n                }\n\n                html += '</select>';\n            }\n\n            this.container.find('.calendar.' + side + ' .calendar-time div').html(html);\n\n        },\n\n        updateFormInputs: function() {\n\n            //ignore mouse movements while an above-calendar text input has focus\n            if (this.container.find('input[name=daterangepicker_start]').is(\":focus\") || this.container.find('input[name=daterangepicker_end]').is(\":focus\"))\n                return;\n\n            this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.locale.format));\n            if (this.endDate)\n                this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.locale.format));\n\n            if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {\n                this.container.find('button.applyBtn').removeAttr('disabled');\n            } else {\n                this.container.find('button.applyBtn').attr('disabled', 'disabled');\n            }\n\n        },\n\n        move: function() {\n            var parentOffset = { top: 0, left: 0 },\n                containerTop;\n            var parentRightEdge = $(window).width();\n            if (!this.parentEl.is('body')) {\n                parentOffset = {\n                    top: this.parentEl.offset().top - this.parentEl.scrollTop(),\n                    left: this.parentEl.offset().left - this.parentEl.scrollLeft()\n                };\n                parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\n            }\n\n            if (this.drops == 'up')\n                containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\n            else\n                containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\n            this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('dropup');\n\n            if (this.opens == 'left') {\n                this.container.css({\n                    top: containerTop,\n                    right: parentRightEdge - this.element.offset().left - this.element.outerWidth(),\n                    left: 'auto'\n                });\n                if (this.container.offset().left < 0) {\n                    this.container.css({\n                        right: 'auto',\n                        left: 9\n                    });\n                }\n            } else if (this.opens == 'center') {\n                this.container.css({\n                    top: containerTop,\n                    left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2\n                            - this.container.outerWidth() / 2,\n                    right: 'auto'\n                });\n                if (this.container.offset().left < 0) {\n                    this.container.css({\n                        right: 'auto',\n                        left: 9\n                    });\n                }\n            } else {\n                this.container.css({\n                    top: containerTop,\n                    left: this.element.offset().left - parentOffset.left,\n                    right: 'auto'\n                });\n                if (this.container.offset().left + this.container.outerWidth() > $(window).width()) {\n                    this.container.css({\n                        left: 'auto',\n                        right: 0\n                    });\n                }\n            }\n        },\n\n        show: function(e) {\n            if (this.isShowing) return;\n\n            // Create a click proxy that is private to this instance of datepicker, for unbinding\n            this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);\n\n            // Bind global datepicker mousedown for hiding and\n            $(document)\n              .on('mousedown.daterangepicker', this._outsideClickProxy)\n              // also support mobile devices\n              .on('touchend.daterangepicker', this._outsideClickProxy)\n              // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\n              .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)\n              // and also close when focus changes to outside the picker (eg. tabbing between controls)\n              .on('focusin.daterangepicker', this._outsideClickProxy);\n\n            // Reposition the picker if the window is resized while it's open\n            $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));\n\n            this.oldStartDate = this.startDate.clone();\n            this.oldEndDate = this.endDate.clone();\n\n            this.updateView();\n            this.container.show();\n            this.move();\n            this.element.trigger('show.daterangepicker', this);\n            this.isShowing = true;\n        },\n\n        hide: function(e) {\n            if (!this.isShowing) return;\n\n            //incomplete date selection, revert to last values\n            if (!this.endDate) {\n                this.startDate = this.oldStartDate.clone();\n                this.endDate = this.oldEndDate.clone();\n            }\n\n            //if a new date range was selected, invoke the user callback function\n            if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))\n                this.callback(this.startDate, this.endDate, this.chosenLabel);\n\n            //if picker is attached to a text input, update it\n            this.updateElement();\n\n            $(document).off('.daterangepicker');\n            $(window).off('.daterangepicker');\n            this.container.hide();\n            this.element.trigger('hide.daterangepicker', this);\n            this.isShowing = false;\n        },\n\n        toggle: function(e) {\n            if (this.isShowing) {\n                this.hide();\n            } else {\n                this.show();\n            }\n        },\n\n        outsideClick: function(e) {\n            var target = $(e.target);\n            // if the page is clicked anywhere except within the daterangerpicker/button\n            // itself then call this.hide()\n            if (\n                // ie modal dialog fix\n                e.type == \"focusin\" ||\n                target.closest(this.element).length ||\n                target.closest(this.container).length ||\n                target.closest('.calendar-table').length\n                ) return;\n            this.hide();\n        },\n\n        showCalendars: function() {\n            this.container.addClass('show-calendar');\n            this.move();\n            this.element.trigger('showCalendar.daterangepicker', this);\n        },\n\n        hideCalendars: function() {\n            this.container.removeClass('show-calendar');\n            this.element.trigger('hideCalendar.daterangepicker', this);\n        },\n\n        hoverRange: function(e) {\n\n            //ignore mouse movements while an above-calendar text input has focus\n            if (this.container.find('input[name=daterangepicker_start]').is(\":focus\") || this.container.find('input[name=daterangepicker_end]').is(\":focus\"))\n                return;\n\n            var label = e.target.innerHTML;\n            if (label == this.locale.customRangeLabel) {\n                this.updateView();\n            } else {\n                var dates = this.ranges[label];\n                this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.locale.format));\n                this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.locale.format));\n            }\n            \n        },\n\n        clickRange: function(e) {\n            var label = e.target.innerHTML;\n            this.chosenLabel = label;\n            if (label == this.locale.customRangeLabel) {\n                this.showCalendars();\n            } else {\n                var dates = this.ranges[label];\n                this.startDate = dates[0];\n                this.endDate = dates[1];\n\n                if (!this.timePicker) {\n                    this.startDate.startOf('day');\n                    this.endDate.endOf('day');\n                }\n\n                this.hideCalendars();\n                this.clickApply();\n            }\n        },\n\n        clickPrev: function(e) {\n            var cal = $(e.target).parents('.calendar');\n            if (cal.hasClass('left')) {\n                this.leftCalendar.month.subtract(1, 'month');\n                if (this.linkedCalendars)\n                    this.rightCalendar.month.subtract(1, 'month');\n            } else {\n                this.rightCalendar.month.subtract(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        clickNext: function(e) {\n            var cal = $(e.target).parents('.calendar');\n            if (cal.hasClass('left')) {\n                this.leftCalendar.month.add(1, 'month');\n            } else {\n                this.rightCalendar.month.add(1, 'month');\n                if (this.linkedCalendars)\n                    this.leftCalendar.month.add(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        hoverDate: function(e) {\n\n            //ignore mouse movements while an above-calendar text input has focus\n            if (this.container.find('input[name=daterangepicker_start]').is(\":focus\") || this.container.find('input[name=daterangepicker_end]').is(\":focus\"))\n                return;\n\n            //ignore dates that can't be selected\n            if (!$(e.target).hasClass('available')) return;\n\n            //have the text inputs above calendars reflect the date being hovered over\n            var title = $(e.target).attr('data-title');\n            var row = title.substr(1, 1);\n            var col = title.substr(3, 1);\n            var cal = $(e.target).parents('.calendar');\n            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n            if (this.endDate) {\n                this.container.find('input[name=daterangepicker_start]').val(date.format(this.locale.format));\n            } else {\n                this.container.find('input[name=daterangepicker_end]').val(date.format(this.locale.format));\n            }\n\n            //highlight the dates between the start date and the date being hovered as a potential end date\n            var leftCalendar = this.leftCalendar;\n            var rightCalendar = this.rightCalendar;\n            var startDate = this.startDate;\n            if (!this.endDate) {\n                this.container.find('.calendar td').each(function(index, el) {\n\n                    //skip week numbers, only look at dates\n                    if ($(el).hasClass('week')) return;\n\n                    var title = $(el).attr('data-title');\n                    var row = title.substr(1, 1);\n                    var col = title.substr(3, 1);\n                    var cal = $(el).parents('.calendar');\n                    var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\n\n                    if (dt.isAfter(startDate) && dt.isBefore(date)) {\n                        $(el).addClass('in-range');\n                    } else {\n                        $(el).removeClass('in-range');\n                    }\n\n                });\n            }\n\n        },\n\n        clickDate: function(e) {\n\n            if (!$(e.target).hasClass('available')) return;\n\n            var title = $(e.target).attr('data-title');\n            var row = title.substr(1, 1);\n            var col = title.substr(3, 1);\n            var cal = $(e.target).parents('.calendar');\n            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n            //\n            // this function needs to do a few things:\n            // * alternate between selecting a start and end date for the range,\n            // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\n            // * if autoapply is enabled, and an end date was chosen, apply the selection\n            // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\n            //\n\n            if (this.endDate || date.isBefore(this.startDate)) {\n                if (this.timePicker) {\n                    var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n                    if (!this.timePicker24Hour) {\n                        var ampm = cal.find('.ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                    var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n                    var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n                    date = date.clone().hour(hour).minute(minute).second(second);\n                }\n                this.endDate = null;\n                this.setStartDate(date.clone());\n            } else {\n                if (this.timePicker) {\n                    var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.right .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                    var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n                    var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n                    date = date.clone().hour(hour).minute(minute).second(second);\n                }\n                this.setEndDate(date.clone());\n                if (this.autoApply)\n                    this.clickApply();\n            }\n\n            if (this.singleDatePicker) {\n                this.setEndDate(this.startDate);\n                if (!this.timePicker)\n                    this.clickApply();\n            }\n\n            this.updateView();\n\n        },\n\n        clickApply: function(e) {\n            this.hide();\n            this.element.trigger('apply.daterangepicker', this);\n        },\n\n        clickCancel: function(e) {\n            this.startDate = this.oldStartDate;\n            this.endDate = this.oldEndDate;\n            this.hide();\n            this.element.trigger('cancel.daterangepicker', this);\n        },\n\n        monthOrYearChanged: function(e) {\n            var isLeft = $(e.target).closest('.calendar').hasClass('left'),\n                leftOrRight = isLeft ? 'left' : 'right',\n                cal = this.container.find('.calendar.'+leftOrRight);\n\n            // Month must be Number for new moment versions\n            var month = parseInt(cal.find('.monthselect').val(), 10);\n            var year = cal.find('.yearselect').val();\n\n            if (!isLeft) {\n                if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {\n                    month = this.startDate.month();\n                    year = this.startDate.year();\n                }\n            }\n\n            if (this.minDate) {\n                if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {\n                    month = this.minDate.month();\n                    year = this.minDate.year();\n                }\n            }\n\n            if (this.maxDate) {\n                if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {\n                    month = this.maxDate.month();\n                    year = this.maxDate.year();\n                }\n            }\n\n            if (isLeft) {\n                this.leftCalendar.month.month(month).year(year);\n                if (this.linkedCalendars)\n                    this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\n            } else {\n                this.rightCalendar.month.month(month).year(year);\n                if (this.linkedCalendars)\n                    this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        timeChanged: function(e) {\n\n            var cal = $(e.target).closest('.calendar'),\n                isLeft = cal.hasClass('left');\n\n            var hour = parseInt(cal.find('.hourselect').val(), 10);\n            var minute = parseInt(cal.find('.minuteselect').val(), 10);\n            var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\n\n            if (!this.timePicker24Hour) {\n                var ampm = cal.find('.ampmselect').val();\n                if (ampm === 'PM' && hour < 12)\n                    hour += 12;\n                if (ampm === 'AM' && hour === 12)\n                    hour = 0;\n            }\n\n            if (isLeft) {\n                var start = this.startDate.clone();\n                start.hour(hour);\n                start.minute(minute);\n                start.second(second);\n                this.setStartDate(start);\n                if (this.singleDatePicker) {\n                    this.endDate = this.startDate.clone();\n                } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\n                    this.setEndDate(start.clone());\n                }\n            } else if (this.endDate) {\n                var end = this.endDate.clone();\n                end.hour(hour);\n                end.minute(minute);\n                end.second(second);\n                this.setEndDate(end);\n            }\n\n            //update the calendars so all clickable dates reflect the new time component\n            this.updateCalendars();\n\n            //update the form inputs above the calendars with the new time\n            this.updateFormInputs();\n\n            //re-render the time pickers because changing one selection can affect what's enabled in another\n            this.renderTimePicker('left');\n            this.renderTimePicker('right');\n\n        },\n\n        formInputsChanged: function(e) {\n            var isRight = $(e.target).closest('.calendar').hasClass('right');\n            var start = moment(this.container.find('input[name=\"daterangepicker_start\"]').val(), this.locale.format);\n            var end = moment(this.container.find('input[name=\"daterangepicker_end\"]').val(), this.locale.format);\n\n            if (start.isValid() && end.isValid()) {\n\n                if (isRight && end.isBefore(start))\n                    start = end.clone();\n\n                this.setStartDate(start);\n                this.setEndDate(end);\n\n                if (isRight) {\n                    this.container.find('input[name=\"daterangepicker_start\"]').val(this.startDate.format(this.locale.format));\n                } else {\n                    this.container.find('input[name=\"daterangepicker_end\"]').val(this.endDate.format(this.locale.format));\n                }\n\n            }\n\n            this.updateCalendars();\n            if (this.timePicker) {\n                this.renderTimePicker('left');\n                this.renderTimePicker('right');\n            }\n        },\n\n        elementChanged: function() {\n            if (!this.element.is('input')) return;\n            if (!this.element.val().length) return;\n            if (this.element.val().length < this.locale.format.length) return;\n\n            var dateString = this.element.val().split(this.locale.separator),\n                start = null,\n                end = null;\n\n            if (dateString.length === 2) {\n                start = moment(dateString[0], this.locale.format);\n                end = moment(dateString[1], this.locale.format);\n            }\n\n            if (this.singleDatePicker || start === null || end === null) {\n                start = moment(this.element.val(), this.locale.format);\n                end = start;\n            }\n\n            if (!start.isValid() || !end.isValid()) return;\n\n            this.setStartDate(start);\n            this.setEndDate(end);\n            this.updateView();\n        },\n\n        keydown: function(e) {\n            //hide on tab or enter\n            if ((e.keyCode === 9) || (e.keyCode === 13)) {\n                this.hide();\n            }\n        },\n\n        updateElement: function() {\n            if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {\n                this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n                this.element.trigger('change');\n            } else if (this.element.is('input') && this.autoUpdateInput) {\n                this.element.val(this.startDate.format(this.locale.format));\n                this.element.trigger('change');\n            }\n        },\n\n        remove: function() {\n            this.container.remove();\n            this.element.off('.daterangepicker');\n            this.element.removeData();\n        }\n\n    };\n\n    $.fn.daterangepicker = function(options, callback) {\n        this.each(function() {\n            var el = $(this);\n            if (el.data('daterangepicker'))\n                el.data('daterangepicker').remove();\n            el.data('daterangepicker', new DateRangePicker(el, options, callback));\n        });\n        return this;\n    };\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css",
    "content": "/*!\n * Datetimepicker for Bootstrap\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n */\n.datetimepicker {\n  padding: 4px;\n  margin-top: 1px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  direction: ltr;\n  /*.dow {\n\t\tborder-top: 1px solid #ddd !important;\n\t}*/\n\n}\n.datetimepicker-inline {\n  width: 220px;\n}\n.datetimepicker.datetimepicker-rtl {\n  direction: rtl;\n}\n.datetimepicker.datetimepicker-rtl table tr td span {\n  float: right;\n}\n.datetimepicker-dropdown, .datetimepicker-dropdown-left {\n  top: 0;\n  left: 0;\n}\n[class*=\" datetimepicker-dropdown\"]:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n[class*=\" datetimepicker-dropdown\"]:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  position: absolute;\n}\n[class*=\" datetimepicker-dropdown-top\"]:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-top: 7px solid #ccc;\n  border-top-color: rgba(0, 0, 0, 0.2);\n  border-bottom: 0;\n}\n[class*=\" datetimepicker-dropdown-top\"]:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-top: 6px solid #ffffff;\n  border-bottom: 0;\n}\n.datetimepicker-dropdown-bottom-left:before {\n  top: -7px;\n  right: 6px;\n}\n.datetimepicker-dropdown-bottom-left:after {\n  top: -6px;\n  right: 7px;\n}\n.datetimepicker-dropdown-bottom-right:before {\n  top: -7px;\n  left: 6px;\n}\n.datetimepicker-dropdown-bottom-right:after {\n  top: -6px;\n  left: 7px;\n}\n.datetimepicker-dropdown-top-left:before {\n  bottom: -7px;\n  right: 6px;\n}\n.datetimepicker-dropdown-top-left:after {\n  bottom: -6px;\n  right: 7px;\n}\n.datetimepicker-dropdown-top-right:before {\n  bottom: -7px;\n  left: 6px;\n}\n.datetimepicker-dropdown-top-right:after {\n  bottom: -6px;\n  left: 7px;\n}\n.datetimepicker > div {\n  display: none;\n}\n.datetimepicker.minutes div.datetimepicker-minutes {\n    display: block;\n}\n.datetimepicker.hours div.datetimepicker-hours {\n    display: block;\n}\n.datetimepicker.days div.datetimepicker-days {\n    display: block;\n}\n.datetimepicker.months div.datetimepicker-months {\n  display: block;\n}\n.datetimepicker.years div.datetimepicker-years {\n  display: block;\n}\n.datetimepicker table {\n  margin: 0;\n}\n.datetimepicker  td,\n.datetimepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datetimepicker table tr td,\n.table-striped .datetimepicker table tr th {\n  background-color: transparent;\n}\n.datetimepicker table tr td.minute:hover {\n    background: #eeeeee;\n    cursor: pointer;\n}\n.datetimepicker table tr td.hour:hover {\n    background: #eeeeee;\n    cursor: pointer;\n}\n.datetimepicker table tr td.day:hover {\n    background: #eeeeee;\n    cursor: pointer;\n}\n.datetimepicker table tr td.old,\n.datetimepicker table tr td.new {\n  color: #999999;\n}\n.datetimepicker table tr td.disabled,\n.datetimepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datetimepicker table tr td.today,\n.datetimepicker table tr td.today:hover,\n.datetimepicker table tr td.today.disabled,\n.datetimepicker table tr td.today.disabled:hover {\n  background-color: #fde19a;\n  background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));\n  background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -o-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: linear-gradient(top, #fdd49a, #fdf59a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);\n  border-color: #fdf59a #fdf59a #fbed50;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n.datetimepicker table tr td.today:hover,\n.datetimepicker table tr td.today:hover:hover,\n.datetimepicker table tr td.today.disabled:hover,\n.datetimepicker table tr td.today.disabled:hover:hover,\n.datetimepicker table tr td.today:active,\n.datetimepicker table tr td.today:hover:active,\n.datetimepicker table tr td.today.disabled:active,\n.datetimepicker table tr td.today.disabled:hover:active,\n.datetimepicker table tr td.today.active,\n.datetimepicker table tr td.today:hover.active,\n.datetimepicker table tr td.today.disabled.active,\n.datetimepicker table tr td.today.disabled:hover.active,\n.datetimepicker table tr td.today.disabled,\n.datetimepicker table tr td.today:hover.disabled,\n.datetimepicker table tr td.today.disabled.disabled,\n.datetimepicker table tr td.today.disabled:hover.disabled,\n.datetimepicker table tr td.today[disabled],\n.datetimepicker table tr td.today:hover[disabled],\n.datetimepicker table tr td.today.disabled[disabled],\n.datetimepicker table tr td.today.disabled:hover[disabled] {\n  background-color: #fdf59a;\n}\n.datetimepicker table tr td.today:active,\n.datetimepicker table tr td.today:hover:active,\n.datetimepicker table tr td.today.disabled:active,\n.datetimepicker table tr td.today.disabled:hover:active,\n.datetimepicker table tr td.today.active,\n.datetimepicker table tr td.today:hover.active,\n.datetimepicker table tr td.today.disabled.active,\n.datetimepicker table tr td.today.disabled:hover.active {\n  background-color: #fbf069 \\9;\n}\n.datetimepicker table tr td.active,\n.datetimepicker table tr td.active:hover,\n.datetimepicker table tr td.active.disabled,\n.datetimepicker table tr td.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(top, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datetimepicker table tr td.active:hover,\n.datetimepicker table tr td.active:hover:hover,\n.datetimepicker table tr td.active.disabled:hover,\n.datetimepicker table tr td.active.disabled:hover:hover,\n.datetimepicker table tr td.active:active,\n.datetimepicker table tr td.active:hover:active,\n.datetimepicker table tr td.active.disabled:active,\n.datetimepicker table tr td.active.disabled:hover:active,\n.datetimepicker table tr td.active.active,\n.datetimepicker table tr td.active:hover.active,\n.datetimepicker table tr td.active.disabled.active,\n.datetimepicker table tr td.active.disabled:hover.active,\n.datetimepicker table tr td.active.disabled,\n.datetimepicker table tr td.active:hover.disabled,\n.datetimepicker table tr td.active.disabled.disabled,\n.datetimepicker table tr td.active.disabled:hover.disabled,\n.datetimepicker table tr td.active[disabled],\n.datetimepicker table tr td.active:hover[disabled],\n.datetimepicker table tr td.active.disabled[disabled],\n.datetimepicker table tr td.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datetimepicker table tr td.active:active,\n.datetimepicker table tr td.active:hover:active,\n.datetimepicker table tr td.active.disabled:active,\n.datetimepicker table tr td.active.disabled:hover:active,\n.datetimepicker table tr td.active.active,\n.datetimepicker table tr td.active:hover.active,\n.datetimepicker table tr td.active.disabled.active,\n.datetimepicker table tr td.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datetimepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.datetimepicker .datetimepicker-hours span {\n  height: 26px;\n  line-height: 26px;\n}\n.datetimepicker .datetimepicker-hours table tr td span.hour_am,\n.datetimepicker .datetimepicker-hours table tr td span.hour_pm {\n  width: 14.6%;\n}\n.datetimepicker .datetimepicker-hours fieldset legend,\n.datetimepicker .datetimepicker-minutes fieldset legend {\n  margin-bottom: inherit;\n  line-height: 30px;\n}\n.datetimepicker .datetimepicker-minutes span {\n  height: 26px;\n  line-height: 26px;\n}\n.datetimepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datetimepicker table tr td span.disabled,\n.datetimepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datetimepicker table tr td span.active,\n.datetimepicker table tr td span.active:hover,\n.datetimepicker table tr td span.active.disabled,\n.datetimepicker table tr td span.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(top, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datetimepicker table tr td span.active:hover,\n.datetimepicker table tr td span.active:hover:hover,\n.datetimepicker table tr td span.active.disabled:hover,\n.datetimepicker table tr td span.active.disabled:hover:hover,\n.datetimepicker table tr td span.active:active,\n.datetimepicker table tr td span.active:hover:active,\n.datetimepicker table tr td span.active.disabled:active,\n.datetimepicker table tr td span.active.disabled:hover:active,\n.datetimepicker table tr td span.active.active,\n.datetimepicker table tr td span.active:hover.active,\n.datetimepicker table tr td span.active.disabled.active,\n.datetimepicker table tr td span.active.disabled:hover.active,\n.datetimepicker table tr td span.active.disabled,\n.datetimepicker table tr td span.active:hover.disabled,\n.datetimepicker table tr td span.active.disabled.disabled,\n.datetimepicker table tr td span.active.disabled:hover.disabled,\n.datetimepicker table tr td span.active[disabled],\n.datetimepicker table tr td span.active:hover[disabled],\n.datetimepicker table tr td span.active.disabled[disabled],\n.datetimepicker table tr td span.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datetimepicker table tr td span.active:active,\n.datetimepicker table tr td span.active:hover:active,\n.datetimepicker table tr td span.active.disabled:active,\n.datetimepicker table tr td span.active.disabled:hover:active,\n.datetimepicker table tr td span.active.active,\n.datetimepicker table tr td span.active:hover.active,\n.datetimepicker table tr td span.active.disabled.active,\n.datetimepicker table tr td span.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datetimepicker table tr td span.old {\n  color: #999999;\n}\n.datetimepicker th.switch {\n  width: 145px;\n}\n.datetimepicker thead tr:first-child th,\n.datetimepicker tfoot tr:first-child th {\n  cursor: pointer;\n}\n.datetimepicker thead tr:first-child th:hover,\n.datetimepicker tfoot tr:first-child th:hover {\n  background: #eeeeee;\n}\n.input-append.date .add-on i,\n.input-prepend.date .add-on i {\n  cursor: pointer;\n  width: 14px;\n  height: 14px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.js",
    "content": "﻿/* =========================================================\n * bootstrap-datetimepicker.js\n * =========================================================\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Improvements by Sébastien Malot\n * Improvements by Yun Lai\n * Improved by Keenthemes for Bootstrap 3.0 Support\n\n * Project URL : http://www.malot.fr/bootstrap-datetimepicker\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n\n!function( $ ) {\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), today.getUTCHours(), today.getUTCMinutes(), today.getUTCSeconds(), 0);\n\t}\n\n\t// Picker object\n\n\tvar Datetimepicker = function(element, options) {\n\t\tvar that = this;\n\n\t\tthis.element = $(element);\n\t\tthis.language = options.language || this.element.data('date-language') || \"en\";\n\t\tthis.language = this.language in dates ? this.language : \"en\";\n\t\tthis.isRTL = dates[this.language].rtl || ($('body').css(\"direction\") == 'rtl');\n\t\tthis.formatType = options.formatType || this.element.data('format-type') || 'standard';\n\t\tthis.format = DPGlobal.parseFormat(options.format || this.element.data('date-format') || dates[this.language].format || DPGlobal.getDefaultFormat(this.formatType, 'input'), this.formatType);\n\t\tthis.isInline = false;\n\t\tthis.isVisible = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.is('.date') ? this.element.find('.date-set').parent() : false;\n\t\tthis.componentReset = this.element.is('.date') ? this.element.find('.date-reset').parent() : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0) {\n\t\t\tthis.component = false;\n\t\t}\n\t\tthis.linkField = options.linkField || this.element.data('link-field') || false;\n\t\tthis.linkFormat = DPGlobal.parseFormat(options.linkFormat || this.element.data('link-format') || DPGlobal.getDefaultFormat(this.formatType, 'link'), this.formatType);\n\t\tthis.minuteStep = options.minuteStep || this.element.data('minute-step') || 5;\n\t\tthis.pickerPosition = options.pickerPosition || this.element.data('picker-position') || 'bottom-right';\n\t\t\t\tthis.showMeridian = options.showMeridian || this.element.data('show-meridian') || false;\n\t\t\t\tthis.initialDate = options.initialDate || new Date();\n\n\t\tthis._attachEvents();\n\t\t\n\t\t\tthis.formatViewType = \"datetime\";\n\t\t\tif ('formatViewType' in options) {\n\t\t\t\t\tthis.formatViewType = options.formatViewType;\n\t\t\t} else if ('formatViewType' in this.element.data()) {\n\t\t\t\t\tthis.formatViewType = this.element.data('formatViewType');\n\t\t\t}\n\n\t\tthis.minView = 0;\n\t\tif ('minView' in options) {\n\t\t\tthis.minView = options.minView;\n\t\t} else if ('minView' in this.element.data()) {\n\t\t\tthis.minView = this.element.data('min-view');\n\t\t}\n\t\tthis.minView = DPGlobal.convertViewMode(this.minView);\n\n\t\tthis.maxView = DPGlobal.modes.length-1;\n\t\tif ('maxView' in options) {\n\t\t\tthis.maxView = options.maxView;\n\t\t} else if ('maxView' in this.element.data()) {\n\t\t\tthis.maxView = this.element.data('max-view');\n\t\t}\n\t\tthis.maxView = DPGlobal.convertViewMode(this.maxView);\n\n        this.wheelViewModeNavigation = false;\n        if('wheelViewModeNavigation' in options){\n            this.wheelViewModeNavigation = options.wheelViewModeNavigation;\n        }else if('wheelViewModeNavigation' in this.element.data()){\n            this.wheelViewModeNavigation = this.element.data('view-mode-wheel-navigation');\n        }\n\n        this.wheelViewModeNavigationInverseDirection = false;\n\n        if('wheelViewModeNavigationInverseDirection' in options){\n            this.wheelViewModeNavigationInverseDirection = options.wheelViewModeNavigationInverseDirection;\n        }else if('wheelViewModeNavigationInverseDirection' in this.element.data()){\n            this.wheelViewModeNavigationInverseDirection = this.element.data('view-mode-wheel-navigation-inverse-dir');\n        }\n\n        this.wheelViewModeNavigationDelay = 100;\n        if('wheelViewModeNavigationDelay' in options){\n            this.wheelViewModeNavigationDelay = options.wheelViewModeNavigationDelay;\n        }else if('wheelViewModeNavigationDelay' in this.element.data()){\n            this.wheelViewModeNavigationDelay = this.element.data('view-mode-wheel-navigation-delay');\n        }\n\n\t\tthis.startViewMode = 2;\n\t\tif ('startView' in options) {\n\t\t\tthis.startViewMode = options.startView;\n\t\t} else if ('startView' in this.element.data()) {\n\t\t\tthis.startViewMode = this.element.data('start-view');\n\t\t}\n\t\tthis.startViewMode = DPGlobal.convertViewMode(this.startViewMode);\n\t\tthis.viewMode = this.startViewMode;\n\n\t\t\t\tthis.viewSelect = this.minView;\n\t\t\t\tif ('viewSelect' in options) {\n\t\t\t\t\t\tthis.viewSelect = options.viewSelect;\n\t\t\t\t} else if ('viewSelect' in this.element.data()) {\n\t\t\t\t\t\tthis.viewSelect = this.element.data('view-select');\n\t\t\t\t}\n\t\t\t\tthis.viewSelect = DPGlobal.convertViewMode(this.viewSelect);\n\n\t\tthis.forceParse = true;\n\t\tif ('forceParse' in options) {\n\t\t\tthis.forceParse = options.forceParse;\n\t\t} else if ('dateForceParse' in this.element.data()) {\n\t\t\tthis.forceParse = this.element.data('date-force-parse');\n\t\t}\n\n\t\tthis.picker = $(DPGlobal.template)\n\t\t\t\t\t\t\t.appendTo(this.isInline ? this.element : 'body')\n\t\t\t\t\t\t\t.on({\n\t\t\t\t\t\t\t\tclick: $.proxy(this.click, this),\n\t\t\t\t\t\t\t\tmousedown: $.proxy(this.mousedown, this)\n\t\t\t\t\t\t\t});\n\n        if(this.wheelViewModeNavigation)\n        {\n            if($.fn.mousewheel)\n            {\n                this.picker.on({mousewheel: $.proxy(this.mousewheel,this)});\n            }else\n            {\n                console.log(\"Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option\");\n            }\n        }\n\n\t\tif (this.isInline) {\n\t\t\tthis.picker.addClass('datetimepicker-inline');\n\t\t} else {\n\t\t\tthis.picker.addClass('datetimepicker-dropdown-' + this.pickerPosition + ' dropdown-menu');\n\t\t}\n\t\tif (this.isRTL){\n\t\t\tthis.picker.addClass('datetimepicker-rtl');\n\t\t\tthis.picker.find('.prev i, .next i')\n\t\t\t\t\t\t.toggleClass('fa-arrow-left fa-arrow-right');\n\t\t}\n\t\t$(document).on('mousedown', function (e) {\n\t\t\t// Clicked outside the datetimepicker, hide it\n\t\t\tif ($(e.target).closest('.datetimepicker').length === 0) {\n\t\t\t\tthat.hide();\n\t\t\t}\n\t\t});\n\n\t\tthis.autoclose = false;\n\t\tif ('autoclose' in options) {\n\t\t\tthis.autoclose = options.autoclose;\n\t\t} else if ('dateAutoclose' in this.element.data()) {\n\t\t\tthis.autoclose = this.element.data('date-autoclose');\n\t\t}\n\n\t\tthis.keyboardNavigation = true;\n\t\tif ('keyboardNavigation' in options) {\n\t\t\tthis.keyboardNavigation = options.keyboardNavigation;\n\t\t} else if ('dateKeyboardNavigation' in this.element.data()) {\n\t\t\tthis.keyboardNavigation = this.element.data('date-keyboard-navigation');\n\t\t}\n\n\t\tthis.todayBtn = (options.todayBtn || this.element.data('date-today-btn') || false);\n\t\tthis.todayHighlight = (options.todayHighlight || this.element.data('date-today-highlight') || false);\n\n\t\tthis.weekStart = ((options.weekStart || this.element.data('date-weekstart') || dates[this.language].weekStart || 0) % 7);\n\t\tthis.weekEnd = ((this.weekStart + 6) % 7);\n\t\tthis.startDate = -Infinity;\n\t\tthis.endDate = Infinity;\n\t\tthis.daysOfWeekDisabled = [];\n\t\tthis.setStartDate(options.startDate || this.element.data('date-startdate'));\n\t\tthis.setEndDate(options.endDate || this.element.data('date-enddate'));\n\t\tthis.setDaysOfWeekDisabled(options.daysOfWeekDisabled || this.element.data('date-days-of-week-disabled'));\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif(this.isInline) {\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatetimepicker.prototype = {\n\t\tconstructor: Datetimepicker,\n\n\t\t_events: [],\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tif (this.isInput) { // single input\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(this.update, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.component && this.hasInput){ // component: input + button\n\t\t\t\tthis._events = [\n\t\t\t\t\t// For components that are not readonly, allow keyboard nav\n\t\t\t\t\t[this.element.find('input'), {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(this.update, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}],\n\t\t\t\t\t[this.component, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t\tif (this.componentReset) {\n\t\t\t\t\tthis._events.push([\n\t\t\t\t\t\tthis.componentReset,\n\t\t\t\t\t\t{click: $.proxy(this.reset, this)}\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (this.element.is('div')) {  // inline datetimepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tfor (var i=0, el, ev; i<this._events.length; i++){\n\t\t\t\tel = this._events[i][0];\n\t\t\t\tev = this._events[i][1];\n\t\t\t\tel.on(ev);\n\t\t\t}\n\t\t},\n\t\t\n\t\t_detachEvents: function(){\n\t\t\tfor (var i=0, el, ev; i<this._events.length; i++){\n\t\t\t\tel = this._events[i][0];\n\t\t\t\tev = this._events[i][1];\n\t\t\t\tel.off(ev);\n\t\t\t}\n\t\t\tthis._events = [];\n\t\t},\n\n\t\tshow: function(e) {\n\t\t\tthis.picker.show();\n\t\t\tthis.height = this.component ? this.component.outerHeight() : this.element.outerHeight();\n\t\t\tif (this.forceParse) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t\tthis.place();\n\t\t\t$(window).on('resize', $.proxy(this.place, this));\n\t\t\tif (e) {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\tthis.isVisible = true;\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: 'show',\n\t\t\t\tdate: this.date\n\t\t\t});\n\t\t},\n\n\t\thide: function(e){\n\t\t\tif(!this.isVisible) return;\n\t\t\tif(this.isInline) return;\n\t\t\tthis.picker.hide();\n\t\t\t$(window).off('resize', this.place);\n\t\t\tthis.viewMode = this.startViewMode;\n\t\t\tthis.showMode();\n\t\t\tif (!this.isInput) {\n\t\t\t\t$(document).off('mousedown', this.hide);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val()  || \n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis.isVisible = false;\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: 'hide',\n\t\t\t\tdate: this.date\n\t\t\t});\n\t\t},\n\n\t\tremove: function() {\n\t\t\tthis._detachEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.picker;\n\t\t\tdelete this.element.data().datetimepicker;\n\t\t},\n\n\t\tgetDate: function() {\n\t\t\tvar d = this.getUTCDate();\n\t\t\treturn new Date(d.getTime() + (d.getTimezoneOffset()*60000));\n\t\t},\n\n\t\tgetUTCDate: function() {\n\t\t\treturn this.date;\n\t\t},\n\n\t\tsetDate: function(d) {\n\t\t\tthis.setUTCDate(new Date(d.getTime() - (d.getTimezoneOffset()*60000)));\n\t\t},\n\n\t\tsetUTCDate: function(d) {\n\t\t\tif (d >= this.startDate && d <= this.endDate) {\n\t\t\t\tthis.date = d;\n\t\t\t\tthis.setValue();\n\t\t\t\tthis.viewDate = this.date;\n\t\t\t\tthis.fill();\n\t\t\t} else {\n\t\t\t\tthis.element.trigger({\n\t\t\t\t\ttype: 'outOfRange',\n\t\t\t\t\tdate: d,\n\t\t\t\t\tstartDate: this.startDate,\n\t\t\t\t\tendDate: this.endDate\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n        setFormat: function(format) {\n            this.format = DPGlobal.parseFormat(format, this.formatType);\n            var element;\n            if (this.isInput) {\n                element = this.element;\n            } else if (this.component){\n                element = this.element.find('input');\n            }\n            if (element && element.val()) {\n                this.setValue();\n            }\n        },\n\n\t\tsetValue: function() {\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput) {\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted);\n\t\t\t\t}\n\t\t\t\tthis.element.data('date', formatted);\n\t\t\t} else {\n\t\t\t\tthis.element.val(formatted);\n\t\t\t}\n\t\t\tif (this.linkField) {\n\t\t\t\t$('#' + this.linkField).val(this.getFormattedDate(this.linkFormat));\n\t\t\t}\n\t\t},\n\n\t\tgetFormattedDate: function(format) {\n\t\t\tif(format == undefined) format = this.format;\n\t\t\treturn DPGlobal.formatDate(this.date, format, this.language, this.formatType);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis.startDate = startDate || -Infinity;\n\t\t\tif (this.startDate !== -Infinity) {\n\t\t\t\tthis.startDate = DPGlobal.parseDate(this.startDate, this.format, this.language, this.formatType);\n\t\t\t}\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis.endDate = endDate || Infinity;\n\t\t\tif (this.endDate !== Infinity) {\n\t\t\t\tthis.endDate = DPGlobal.parseDate(this.endDate, this.format, this.language, this.formatType);\n\t\t\t}\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis.daysOfWeekDisabled = daysOfWeekDisabled || [];\n\t\t\tif (!$.isArray(this.daysOfWeekDisabled)) {\n\t\t\t\tthis.daysOfWeekDisabled = this.daysOfWeekDisabled.split(/,\\s*/);\n\t\t\t}\n\t\t\tthis.daysOfWeekDisabled = $.map(this.daysOfWeekDisabled, function (d) {\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif(this.isInline) return;\n\t\t\tvar zIndex = parseInt(this.element.parents().filter(function() {\n\t\t\t\treturn $(this).css('z-index') != 'auto';\n\t\t\t}).first().css('z-index'))+10;\n\t\t\tvar offset, top, left;\n\t\t\tif (this.component) {\n\t\t\t\toffset = this.component.offset();\n\t\t\t\tleft = offset.left;\n\t\t\t\tif (this.pickerPosition == 'bottom-left' || this.pickerPosition == 'top-left') {\n\t\t\t\t\tleft += this.component.outerWidth() - this.picker.outerWidth();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toffset = this.element.offset();\n\t\t\t\tleft = offset.left;\n\t\t\t}\n\t\t\tif (this.pickerPosition == 'top-left' || this.pickerPosition == 'top-right') {\n\t\t\t\ttop = offset.top - this.picker.outerHeight();\n\t\t\t} else {\n\t\t\t\ttop = offset.top + this.height;\n\t\t\t}\n\t\t\tthis.picker.css({\n\t\t\t\ttop: top,\n\t\t\t\tleft: left,\n\t\t\t\tzIndex: zIndex\n\t\t\t});\n\t\t},\n\n\t\tupdate: function(){\n\t\t\tvar date, fromArgs = false;\n\t\t\tif(arguments && arguments.length && (typeof arguments[0] === 'string' || arguments[0] instanceof Date)) {\n\t\t\t\tdate = arguments[0];\n\t\t\t\tfromArgs = true;\n\t\t\t} else {\n                date = this.element.data('date') || (this.isInput ? this.element.val() : this.element.find('input').val()) || this.initialDate;\n\t\t\t}\n\n\t\t\tif (!date) {\n\t\t\t\tdate = new Date();\n\t\t\t\tfromArgs = false;\n\t\t\t}\n\n\t\t\tthis.date = DPGlobal.parseDate(date, this.format, this.language, this.formatType);\n\n\t\t\tif (fromArgs) this.setValue();\n\n\t\t\tif (this.date < this.startDate) {\n\t\t\t\tthis.viewDate = new Date(this.startDate);\n\t\t\t} else if (this.date > this.endDate) {\n\t\t\t\tthis.viewDate = new Date(this.endDate);\n\t\t\t} else {\n\t\t\t\tthis.viewDate = new Date(this.date);\n\t\t\t}\n\t\t\tthis.fill();\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.weekStart,\n\t\t\thtml = '<tr>';\n\t\t\twhile (dowCnt < this.weekStart + 7) {\n\t\t\t\thtml += '<th class=\"dow\">'+dates[this.language].daysMin[(dowCnt++)%7]+'</th>';\n\t\t\t}\n\t\t\thtml += '</tr>';\n\t\t\tthis.picker.find('.datetimepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12) {\n\t\t\t\thtml += '<span class=\"month\">'+dates[this.language].monthsShort[i++]+'</span>';\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-months td').html(html);\n\t\t},\n\n\t\tfill: function() {\n\t\t\tif (this.date == null || this.viewDate == null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tdayMonth = d.getUTCDate(),\n\t\t\t\thours = d.getUTCHours(),\n\t\t\t\tminutes = d.getUTCMinutes(),\n\t\t\t\tstartYear = this.startDate !== -Infinity ? this.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.startDate !== -Infinity ? this.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.endDate !== Infinity ? this.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.endDate !== Infinity ? this.endDate.getUTCMonth() : Infinity,\n\t\t\t\tcurrentDate = (new UTCDate(this.date.getUTCFullYear(), this.date.getUTCMonth(), this.date.getUTCDate())).valueOf(),\n\t\t\t\ttoday = new Date();\n\t\t\tthis.picker.find('.datetimepicker-days thead th:eq(1)')\n\t\t\t\t\t\t.text(dates[this.language].months[month]+' '+year);\n\t\t\t\tif (this.formatViewType == \"time\") {\n\t\t\t\t\t\tvar hourConverted = hours % 12 ? hours % 12 : 12;\n\t\t\t\t\t\tvar hoursDisplay = (hourConverted < 10 ? '0' : '') + hourConverted;\n\t\t\t\t\t\tvar minutesDisplay = (minutes < 10 ? '0' : '') + minutes;\n\t\t\t\t\t\tvar meridianDisplay = dates[this.language].meridiem[hours < 12 ? 0 : 1];\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-hours thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(hoursDisplay + ':' + minutesDisplay + ' ' + meridianDisplay.toUpperCase());\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-minutes thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(hoursDisplay + ':' + minutesDisplay + ' ' + meridianDisplay.toUpperCase());\n\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-hours thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(dayMonth + ' ' + dates[this.language].months[month] + ' ' + year);\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-minutes thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(dayMonth + ' ' + dates[this.language].months[month] + ' ' + year);\t\t        \n\t\t\t\t}\n\t\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.text(dates[this.language].today)\n\t\t\t\t\t\t.toggle(this.todayBtn !== false);\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\t/*var prevMonth = UTCDate(year, month, 0,0,0,0,0);\n\t\t\tprevMonth.setUTCDate(prevMonth.getDate() - (prevMonth.getUTCDay() - this.weekStart + 7)%7);*/\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28,0,0,0,0),\n\t\t\t\t\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\t\tprevMonth.setUTCDate(day);\n\t\t\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile(prevMonth.valueOf() < nextMonth) {\n\t\t\t\tif (prevMonth.getUTCDay() == this.weekStart) {\n\t\t\t\t\thtml.push('<tr>');\n\t\t\t\t}\n\t\t\t\tclsName = '';\n\t\t\t\tif (prevMonth.getUTCFullYear() < year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() < month)) {\n\t\t\t\t\tclsName += ' old';\n\t\t\t\t} else if (prevMonth.getUTCFullYear() > year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() > month)) {\n\t\t\t\t\tclsName += ' new';\n\t\t\t\t}\n\t\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\t\tif (this.todayHighlight &&\n\t\t\t\t\tprevMonth.getUTCFullYear() == today.getFullYear() &&\n\t\t\t\t\tprevMonth.getUTCMonth() == today.getMonth() &&\n\t\t\t\t\tprevMonth.getUTCDate() == today.getDate()) {\n\t\t\t\t\tclsName += ' today';\n\t\t\t\t}\n\t\t\t\tif (prevMonth.valueOf() == currentDate) {\n\t\t\t\t\tclsName += ' active';\n\t\t\t\t}\n\t\t\t\tif ((prevMonth.valueOf() + 86400000) <= this.startDate || prevMonth.valueOf() > this.endDate ||\n\t\t\t\t\t$.inArray(prevMonth.getUTCDay(), this.daysOfWeekDisabled) !== -1) {\n\t\t\t\t\tclsName += ' disabled';\n\t\t\t\t}\n\t\t\t\thtml.push('<td class=\"day'+clsName+'\">'+prevMonth.getUTCDate() + '</td>');\n\t\t\t\tif (prevMonth.getUTCDay() == this.weekEnd) {\n\t\t\t\t\thtml.push('</tr>');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-days tbody').empty().append(html.join(''));\n\n\t\t\thtml = [];\n\t\t\t\t\t\tvar txt = '', meridian = '', meridianOld = '';\n\t\t\tfor (var i=0;i<24;i++) {\n\t\t\t\tvar actual = UTCDate(year, month, dayMonth, i);\n\t\t\t\tclsName = '';\n\t\t\t\t// We want the previous hour for the startDate\n\t\t\t\tif ((actual.valueOf() + 3600000) <= this.startDate || actual.valueOf() > this.endDate) {\n\t\t\t\t\tclsName += ' disabled';\n\t\t\t\t} else if (hours == i) {\n\t\t\t\t\tclsName += ' active';\n\t\t\t\t}\n\t\t\t\t\t\t\t\tif (this.showMeridian && dates[this.language].meridiem.length == 2) {\n\t\t\t\t\t\t\t\t\t\tmeridian = (i<12?dates[this.language].meridiem[0]:dates[this.language].meridiem[1]);\n\t\t\t\t\t\t\t\t\t\tif (meridian != meridianOld) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (meridianOld != '') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('<fieldset class=\"hour\"><legend>'+meridian.toUpperCase()+'</legend>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tmeridianOld = meridian;\n\t\t\t\t\t\t\t\t\t\ttxt = (i%12?i%12:12);\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"hour'+clsName+' hour_'+(i<12?'am':'pm')+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t\t\tif (i == 23) {\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttxt = i+':00';\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"hour'+clsName+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-hours td').html(html.join(''));\n\n\t\t\thtml = [];\n\t\t\t\t\t\ttxt = '', meridian = '', meridianOld = '';\n\t\t\tfor(var i=0;i<60;i+=this.minuteStep) {\n\t\t\t\tvar actual = UTCDate(year, month, dayMonth, hours, i, 0);\n\t\t\t\tclsName = '';\n\t\t\t\tif (actual.valueOf() < this.startDate || actual.valueOf() > this.endDate) {\n\t\t\t\t\tclsName += ' disabled';\n\t\t\t\t} else if (Math.floor(minutes/this.minuteStep) == Math.floor(i/this.minuteStep)) {\n\t\t\t\t\tclsName += ' active';\n\t\t\t\t}\n\t\t\t\t\t\t\t\tif (this.showMeridian && dates[this.language].meridiem.length == 2) {\n\t\t\t\t\t\t\t\t\t\tmeridian = (hours<12?dates[this.language].meridiem[0]:dates[this.language].meridiem[1]);\n\t\t\t\t\t\t\t\t\t\tif (meridian != meridianOld) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (meridianOld != '') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('<fieldset class=\"minute\"><legend>'+meridian.toUpperCase()+'</legend>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tmeridianOld = meridian;\n\t\t\t\t\t\t\t\t\t\ttxt = (hours%12?hours%12:12);\n\t\t\t\t\t\t\t\t\t\t//html.push('<span class=\"minute'+clsName+' minute_'+(hours<12?'am':'pm')+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"minute'+clsName+'\">'+txt+':'+(i<10?'0'+i:i)+'</span>');\n\t\t\t\t\t\t\t\t\t\tif (i == 59) {\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttxt = i+':00';\n\t\t\t\t\t\t\t\t\t\t//html.push('<span class=\"hour'+clsName+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"minute'+clsName+'\">'+hours+':'+(i<10?'0'+i:i)+'</span>');\n\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-minutes td').html(html.join(''));\n\n\t\t\tvar currentYear = this.date.getUTCFullYear();\n\t\t\tvar months = this.picker.find('.datetimepicker-months')\n\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t.text(year)\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\t\t\tif (currentYear == year) {\n\t\t\t\tmonths.eq(this.date.getUTCMonth()).addClass('active');\n\t\t\t}\n\t\t\tif (year < startYear || year > endYear) {\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year == startYear) {\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year == endYear) {\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datetimepicker-years')\n\t\t\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tfor (var i = -1; i < 11; i++) {\n\t\t\t\thtml += '<span class=\"year'+(i == -1 || i == 10 ? ' old' : '')+(currentYear == year ? ' active' : '')+(year < startYear || year > endYear ? ' disabled' : '')+'\">'+year+'</span>';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t\tthis.place();\n\t\t},\n\n\t\tupdateNavArrows: function() {\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tday = d.getUTCDate(),\n\t\t\t\thour = d.getUTCHours();\n\t\t\tswitch (this.viewMode) {\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t && month <= this.startDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t && day <= this.startDate.getUTCDate()\n\t\t\t\t\t\t\t\t\t\t\t\t\t && hour <= this.startDate.getUTCHours()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t&& month >= this.endDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t&& day >= this.endDate.getUTCDate()\n\t\t\t\t\t\t\t\t\t\t\t\t\t&& hour >= this.endDate.getUTCHours()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t && month <= this.startDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t && day <= this.startDate.getUTCDate()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t&& month >= this.endDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t&& day >= this.endDate.getUTCDate()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t && month <= this.startDate.getUTCMonth()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t&& month >= this.endDate.getUTCMonth()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\tcase 4:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n        mousewheel: function(e){\n\n            e.preventDefault();\n            e.stopPropagation();\n\n            if(this.wheelPause)\n            {\n                return;\n            }\n\n            this.wheelPause = true;\n\n            var originalEvent = e.originalEvent;\n\n            var delta = originalEvent.wheelDelta;\n\n            var mode = delta > 0 ? 1:(delta === 0)?0:-1;\n\n            if(this.wheelViewModeNavigationInverseDirection)\n            {\n                mode = -mode;\n            }\n\n            this.showMode(mode);\n\n            setTimeout($.proxy(function(){\n\n                this.wheelPause = false\n\n            },this),this.wheelViewModeNavigationDelay);\n\n\n\n        },\n\n\t\tclick: function(e) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\tvar target = $(e.target).closest('span, td, th, legend');\n\t\t\tif (target.length == 1) {\n\t\t\t\tif (target.is('.disabled')) {\n\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\ttype: 'outOfRange',\n\t\t\t\t\t\tdate: this.viewDate,\n\t\t\t\t\t\tstartDate: this.startDate,\n\t\t\t\t\t\tendDate: this.endDate\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswitch(target[0].nodeName.toLowerCase()) {\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch(target[0].className) {\n\t\t\t\t\t\t\tcase 'switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className == 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch(this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveHour(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveDate(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tvar date = new Date();\n\t\t\t\t\t\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n\n\t\t\t\t\t\t\t\tthis.viewMode = this.startViewMode;\n\t\t\t\t\t\t\t\tthis.showMode(0);\n\t\t\t\t\t\t\t\tthis._setDate(date);\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tif (this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.is('.disabled')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar year    = this.viewDate.getUTCFullYear(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmonth   = this.viewDate.getUTCMonth(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tday     = this.viewDate.getUTCDate(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours   = this.viewDate.getUTCHours(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminutes = this.viewDate.getUTCMinutes(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tseconds = this.viewDate.getUTCSeconds();\n\n\t\t\t\t\t\t\tif (target.is('.month')) {\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tday   = this.viewDate.getUTCDate();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeMonth',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 3) {\n\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.year')) {\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10) || 0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeYear',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 4) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.hour')){\n\t\t\t\t\t\t\t\thours = parseInt(target.text(), 10) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (target.hasClass('hour_am') || target.hasClass('hour_pm')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (hours == 12 && target.hasClass('hour_am')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (hours != 12 && target.hasClass('hour_pm')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours += 12;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCHours(hours);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeHour',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 1) {\n\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.minute')){\n\t\t\t\t\t\t\t\tminutes = parseInt(target.text().substr(target.text().indexOf(':')+1), 10) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCMinutes(minutes);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeMinute',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 0) {\n\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (this.viewMode != 0) {\n\t\t\t\t\t\t\t\tvar oldViewMode = this.viewMode;\n\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tif (oldViewMode == this.viewMode && this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tif (this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.is('.day') && !target.is('.disabled')){\n\t\t\t\t\t\t\tvar day = parseInt(target.text(), 10) || 1;\n\t\t\t\t\t\t\tvar year = this.viewDate.getUTCFullYear(),\n\t\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\t\t\t\t\thours = this.viewDate.getUTCHours(),\n\t\t\t\t\t\t\t\tminutes = this.viewDate.getUTCMinutes(),\n\t\t\t\t\t\t\t\tseconds = this.viewDate.getUTCSeconds();\n\t\t\t\t\t\t\tif (target.is('.old')) {\n\t\t\t\t\t\t\t\tif (month === 0) {\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.new')) {\n\t\t\t\t\t\t\t\tif (month == 11) {\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCDate(day);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'changeDay',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 2) {\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar oldViewMode = this.viewMode;\n\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\tif (oldViewMode == this.viewMode && this.autoclose) {\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which == 'date')\n\t\t\t\tthis.date = date;\n\t\t\tif (!which || which  == 'view')\n\t\t\t\tthis.viewDate = date;\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tvar element;\n\t\t\tif (this.isInput) {\n\t\t\t\telement = this.element;\n\t\t\t} else if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element) {\n\t\t\t\telement.change();\n\t\t\t\tif (this.autoclose && (!which || which == 'date')) {\n\t\t\t\t\t//this.hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: 'changeDate',\n\t\t\t\tdate: this.date\n\t\t\t});\n\t\t},\n\n\t\tmoveMinute: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf());\n\t\t\t//dir = dir > 0 ? 1 : -1;\n\t\t\tnew_date.setUTCMinutes(new_date.getUTCMinutes() + (dir * this.minuteStep));\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveHour: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf());\n\t\t\t//dir = dir > 0 ? 1 : -1;\n\t\t\tnew_date.setUTCHours(new_date.getUTCHours() + dir);\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveDate: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf());\n\t\t\t//dir = dir > 0 ? 1 : -1;\n\t\t\tnew_date.setUTCDate(new_date.getUTCDate() + dir);\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag == 1){\n\t\t\t\ttest = dir == -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){ return new_date.getUTCMonth() == month; }\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){ return new_date.getUTCMonth() != new_month; };\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t} else {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i<mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){ return new_month != new_date.getUTCMonth(); };\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.startDate && date <= this.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (this.picker.is(':not(:visible)')){\n\t\t\t\tif (e.keyCode == 27) // allow escape to hide and re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, day, month,\n\t\t\t\tnewDate, newViewDate;\n\t\t\tswitch(e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 39: // right\n\t\t\t\t\tif (!this.keyboardNavigation) break;\n\t\t\t\t\tdir = e.keyCode == 37 ? -1 : 1;\n\t\t\t\t\t\t\t\t\t\tviewMode = this.viewMode;\n\t\t\t\t\t\t\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 2;\n\t\t\t\t\t\t\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (viewMode == 4) {\n\t\t\t\t\t\tnewDate = this.moveYear(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 3) {\n\t\t\t\t\t\tnewDate = this.moveMonth(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 2) {\n\t\t\t\t\t\tnewDate = this.moveDate(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveDate(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 1) {\n\t\t\t\t\t\tnewDate = this.moveHour(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveHour(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 0) {\n\t\t\t\t\t\tnewDate = this.moveMinute(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveMinute(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.date = newDate;\n\t\t\t\t\t\tthis.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.keyboardNavigation) break;\n\t\t\t\t\tdir = e.keyCode == 38 ? -1 : 1;\n\t\t\t\t\t\t\t\t\t\tviewMode = this.viewMode;\n\t\t\t\t\t\t\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 2;\n\t\t\t\t\t\t\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (viewMode == 4) {\n\t\t\t\t\t\tnewDate = this.moveYear(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 3) {\n\t\t\t\t\t\tnewDate = this.moveMonth(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 2) {\n\t\t\t\t\t\tnewDate = this.moveDate(this.date, dir * 7);\n\t\t\t\t\t\tnewViewDate = this.moveDate(this.viewDate, dir * 7);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.showMeridian) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewDate = this.moveHour(this.date, dir * 6);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewViewDate = this.moveHour(this.viewDate, dir * 6);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewDate = this.moveHour(this.date, dir * 4);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewViewDate = this.moveHour(this.viewDate, dir * 4);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 0) {\n\t\t\t\t\t\tnewDate = this.moveMinute(this.date, dir * 4);\n\t\t\t\t\t\tnewViewDate = this.moveMinute(this.viewDate, dir * 4);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.date = newDate;\n\t\t\t\t\t\tthis.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode != 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar oldViewMode = this.viewMode;\n\t\t\t\t\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\t\t\t\t\tif (oldViewMode == this.viewMode && this.autoclose) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput) {\n\t\t\t\t\telement = this.element;\n\t\t\t\t} else if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t\tthis.element.trigger({\n\t\t\t\t\ttype: 'changeDate',\n\t\t\t\t\tdate: this.date\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir) {\n\t\t\tif (dir) {\n\t\t\t\tvar newViewMode = Math.max(0, Math.min(DPGlobal.modes.length - 1, this.viewMode + dir));\n\t\t\t\tif (newViewMode >= this.minView && newViewMode <= this.maxView) {\n\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\ttype: 'changeMode',\n\t\t\t\t\t\tdate: this.viewDate,\n\t\t\t\t\t\toldViewMode: this.viewMode,\n\t\t\t\t\t\tnewViewMode: newViewMode\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.viewMode = newViewMode;\n\t\t\t\t}\n\t\t\t}\n\t\t\t/*\n\t\t\t\tvitalets: fixing bug of very special conditions:\n\t\t\t\tjquery 1.7.1 + webkit + show inline datetimepicker in bootstrap popover.\n\t\t\t\tMethod show() does not set display css correctly and datetimepicker is not shown.\n\t\t\t\tChanged to .css('display', 'block') solve the problem.\n\t\t\t\tSee https://github.com/vitalets/x-editable/issues/37\n\n\t\t\t\tIn jquery 1.7.2+ everything works fine.\n\t\t\t*/\n\t\t\t//this.picker.find('>div').hide().filter('.datetimepicker-'+DPGlobal.modes[this.viewMode].clsName).show();\n\t\t\tthis.picker.find('>div').hide().filter('.datetimepicker-'+DPGlobal.modes[this.viewMode].clsName).css('display', 'block');\n\t\t\tthis.updateNavArrows();\n\t\t},\n\t\t\n\t\treset: function(e) {\n\t\t\tthis._setDate(null, 'date');\n\t\t}\n\t};\n\n\t$.fn.datetimepicker = function ( option ) {\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\treturn this.each(function () {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datetimepicker'),\n\t\t\t\toptions = typeof option == 'object' && option;\n\t\t\tif (!data) {\n\t\t\t\t$this.data('datetimepicker', (data = new Datetimepicker(this, $.extend({}, $.fn.datetimepicker.defaults,options))));\n\t\t\t}\n\t\t\tif (typeof option == 'string' && typeof data[option] == 'function') {\n\t\t\t\tdata[option].apply(data, args);\n\t\t\t}\n\t\t});\n\t};\n\n\t$.fn.datetimepicker.defaults = {\n\t};\n\t$.fn.datetimepicker.Constructor = Datetimepicker;\n\tvar dates = $.fn.datetimepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\tmeridiem: [\"am\", \"pm\"],\n\t\t\tsuffix: [\"st\", \"nd\", \"rd\", \"th\"],\n\t\t\ttoday: \"Today\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'minutes',\n\t\t\t\tnavFnc: 'Hours',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'hours',\n\t\t\t\tnavFnc: 'Date',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function (year) {\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0))\n\t\t},\n\t\tgetDaysInMonth: function (year, month) {\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]\n\t\t},\n\t\tgetDefaultFormat: function (type, field) {\n\t\t\tif (type == \"standard\") {\n\t\t\t\tif (field == 'input')\n\t\t\t\t\treturn 'yyyy-mm-dd hh:ii';\n\t\t\t\telse\n\t\t\t\t\treturn 'yyyy-mm-dd hh:ii:ss';\n\t\t\t} else if (type == \"php\") {\n\t\t\t\tif (field == 'input')\n\t\t\t\t\treturn 'Y-m-d H:i';\n\t\t\t\telse\n\t\t\t\t\treturn 'Y-m-d H:i:s';\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Invalid format type.\");\n\t\t\t}\n\t\t},\n\t\tvalidParts: function (type) {\n\t\t\tif (type == \"standard\") {\n\t\t\t\treturn /hh?|HH?|p|P|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g;\n\t\t\t} else if (type == \"php\") {\n\t\t\t\treturn /[dDjlNwzFmMnStyYaABgGhHis]/g;\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Invalid format type.\");\n\t\t\t}\n\t\t},\n\t\tnonpunctuation: /[^ -\\/:-@\\[-`{-~\\t\\n\\rTZ]+/g,\n\t\tparseFormat: function(format, type){\n\t\t\t// IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts(type), '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts(type));\n\t\t\tif (!separators || !separators.length || !parts || parts.length == 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language, type) {\n\t\t\tif (date instanceof Date) {\n\t\t\t\tvar dateUTC = new Date(date.valueOf() - date.getTimezoneOffset() * 60000);\n\t\t\t\t\t\t\t\tdateUTC.setMilliseconds(0);\n\t\t\t\treturn dateUTC;\n\t\t\t}\n\t\t\tif (/^\\d{4}\\-\\d{1,2}\\-\\d{1,2}$/.test(date)) {\n\t\t\t\tformat = this.parseFormat('yyyy-mm-dd', type);\n\t\t\t}\n\t\t\tif (/^\\d{4}\\-\\d{1,2}\\-\\d{1,2}[T ]\\d{1,2}\\:\\d{1,2}$/.test(date)) {\n\t\t\t\tformat = this.parseFormat('yyyy-mm-dd hh:ii', type);\n\t\t\t}\n\t\t\tif (/^\\d{4}\\-\\d{1,2}\\-\\d{1,2}[T ]\\d{1,2}\\:\\d{1,2}\\:\\d{1,2}[Z]{0,1}$/.test(date)) {\n\t\t\t\tformat = this.parseFormat('yyyy-mm-dd hh:ii:ss', type);\n\t\t\t}\n\t\t\tif (/^[-+]\\d+[dmwy]([\\s,]+[-+]\\d+[dmwy])*$/.test(date)) {\n\t\t\t\tvar part_re = /([-+]\\d+)([dmwy])/,\n\t\t\t\t\tparts = date.match(/([-+]\\d+)([dmwy])/g),\n\t\t\t\t\tpart, dir;\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (var i=0; i<parts.length; i++) {\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tswitch(part[2]){\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'm':\n\t\t\t\t\t\t\tdate = Datetimepicker.prototype.moveMonth.call(Datetimepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'w':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir * 7);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'y':\n\t\t\t\t\t\t\tdate = Datetimepicker.prototype.moveYear.call(Datetimepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), 0);\n\t\t\t}\n\t\t\tvar parts = date && date.match(this.nonpunctuation) || [],\n\t\t\t\tdate = new Date(0, 0, 0, 0, 0, 0, 0),\n\t\t\t\tparsed = {},\n\t\t\t\tsetters_order = ['hh', 'h', 'ii', 'i', 'ss', 's', 'yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'D', 'DD', 'd', 'dd', 'H', 'HH', 'p', 'P'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\thh: function(d,v){ return d.setUTCHours(v); },\n\t\t\t\t\th:  function(d,v){ return d.setUTCHours(v); },\n\t\t\t\t\tHH: function(d,v){ return d.setUTCHours(v==12?0:v); },\n\t\t\t\t\tH:  function(d,v){ return d.setUTCHours(v==12?0:v); },\n\t\t\t\t\tii: function(d,v){ return d.setUTCMinutes(v); },\n\t\t\t\t\ti:  function(d,v){ return d.setUTCMinutes(v); },\n\t\t\t\t\tss: function(d,v){ return d.setUTCSeconds(v); },\n\t\t\t\t\ts:  function(d,v){ return d.setUTCSeconds(v); },\n\t\t\t\t\tyyyy: function(d,v){ return d.setUTCFullYear(v); },\n\t\t\t\t\tyy: function(d,v){ return d.setUTCFullYear(2000+v); },\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v<0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() != v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){ return d.setUTCDate(v); },\n\t\t\t\t\tp: function(d,v){ return d.setUTCHours(v==1?d.getUTCHours()+12:d.getUTCHours()); }\n\t\t\t\t},\n\t\t\t\tval, filtered, part;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\t\t\tsetters_map['P'] = setters_map['p'];\n\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());\n\t\t\tif (parts.length == format.parts.length) {\n\t\t\t\tfor (var i=0, cnt = format.parts.length; i < cnt; i++) {\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = format.parts[i];\n\t\t\t\t\tif (isNaN(val)) {\n\t\t\t\t\t\tswitch(part) {\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(function(){\n\t\t\t\t\t\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\t\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\t\t\t\t\t\treturn m == p;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(function(){\n\t\t\t\t\t\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\t\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\t\t\t\t\t\treturn m == p;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'p':\n\t\t\t\t\t\t\t\tcase 'P':\n\t\t\t\t\t\t\t\t\t\tval = $.inArray(parts[i].toLowerCase(), dates[language].meridiem);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tfor (var i=0, s; i<setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s]))\n\t\t\t\t\t\tsetters_map[s](date, parsed[s])\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language, type){\n\t\t\tif (date == null) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tvar val;\n\t\t\tif (type == 'standard') {\n\t\t\t\tval = {\n\t\t\t\t\t// year\n\t\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\t\tyyyy: date.getUTCFullYear(),\n\t\t\t\t\t// month\n\t\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\t\t// day\n\t\t\t\t\td: date.getUTCDate(),\n\t\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\t\tp: (dates[language].meridiem.length==2?dates[language].meridiem[date.getUTCHours()<12?0:1]:''),\n\t\t\t\t\t// hour\n\t\t\t\t\th: date.getUTCHours(),\n\t\t\t\t\t// minute\n\t\t\t\t\ti: date.getUTCMinutes(),\n\t\t\t\t\t// second\n\t\t\t\t\ts: date.getUTCSeconds()\n\t\t\t\t};\n\t\t\t\t\t\t\t\tval.H  = (val.h%12==0? 12 : val.h%12);\n\t\t\t\t\t\t\t\tval.HH = (val.H < 10 ? '0' : '') + val.H;\n\t\t\t\t\t\t\t\tval.P  = val.p.toUpperCase();\n\t\t\t\tval.hh = (val.h < 10 ? '0' : '') + val.h;\n\t\t\t\tval.ii = (val.i < 10 ? '0' : '') + val.i;\n\t\t\t\tval.ss = (val.s < 10 ? '0' : '') + val.s;\n\t\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\t} else if (type == 'php') {\n\t\t\t\t// php format\n\t\t\t\tval = {\n\t\t\t\t\t// year\n\t\t\t\t\ty: date.getUTCFullYear().toString().substring(2),\n\t\t\t\t\tY: date.getUTCFullYear(),\n\t\t\t\t\t// month\n\t\t\t\t\tF: dates[language].months[date.getUTCMonth()],\n\t\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\t\tn: date.getUTCMonth() + 1,\n\t\t\t\t\tt: DPGlobal.getDaysInMonth(date.getUTCFullYear(), date.getUTCMonth()),\n\t\t\t\t\t// day\n\t\t\t\t\tj: date.getUTCDate(),\n\t\t\t\t\tl: dates[language].days[date.getUTCDay()],\n\t\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\t\tw: date.getUTCDay(), // 0 -> 6\n\t\t\t\t\tN: (date.getUTCDay()==0?7:date.getUTCDay()),       // 1 -> 7\n\t\t\t\t\tS: (date.getUTCDate()%10<=dates[language].suffix.length?dates[language].suffix[date.getUTCDate()%10-1]:''),\n\t\t\t\t\t// hour\n\t\t\t\t\ta: (dates[language].meridiem.length==2?dates[language].meridiem[date.getUTCHours()<12?0:1]:''),\n\t\t\t\t\tg: (date.getUTCHours()%12==0?12:date.getUTCHours()%12),\n\t\t\t\t\tG: date.getUTCHours(),\n\t\t\t\t\t// minute\n\t\t\t\t\ti: date.getUTCMinutes(),\n\t\t\t\t\t// second\n\t\t\t\t\ts: date.getUTCSeconds()\n\t\t\t\t};\n\t\t\t\tval.m = (val.n < 10 ? '0' : '') + val.n;\n\t\t\t\tval.d = (val.j < 10 ? '0' : '') + val.j;\n\t\t\t\tval.A = val.a.toString().toUpperCase();\n\t\t\t\tval.h = (val.g < 10 ? '0' : '') + val.g;\n\t\t\t\tval.H = (val.G < 10 ? '0' : '') + val.G;\n\t\t\t\tval.i = (val.i < 10 ? '0' : '') + val.i;\n\t\t\t\tval.s = (val.s < 10 ? '0' : '') + val.s;\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Invalid format type.\");\n\t\t\t}\n\t\t\tvar date = [],\n\t\t\t\tseps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i < cnt; i++) {\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift())\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\tconvertViewMode: function(viewMode){\n\t\t\tswitch (viewMode) {\n\t\t\t\tcase 4:\n\t\t\t\tcase 'decade':\n\t\t\t\t\tviewMode = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\tcase 'year':\n\t\t\t\t\tviewMode = 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'month':\n\t\t\t\t\tviewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'day':\n\t\t\t\t\tviewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\tcase 'hour':\n\t\t\t\t\tviewMode = 0;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn viewMode;\n\t\t},\n\t\theadTemplate: '<thead>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th class=\"prev\"><i class=\"fa fa-angle-left\"/></th>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"5\" class=\"switch\"></th>'+\n\t\t\t\t\t\t\t\t'<th class=\"next\"><i class=\"fa fa-angle-right\"/></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t'</thead>',\n\t\tcontTemplate: '<tbody><tr><td colspan=\"7\"></td></tr></tbody>',\n\t\tfootTemplate: '<tfoot><tr><th colspan=\"7\" class=\"today\"></th></tr></tfoot>'\n\t};\n\tDPGlobal.template = '<div class=\"datetimepicker\">'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-minutes\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-hours\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-days\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t'<tbody></tbody>'+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-months\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-years\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'</div>';\n\n\t$.fn.datetimepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATETIMEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datetimepicker.noConflict = function () {\n\t    $.fn.datetimepicker = old;\n\t    return this;\n\t};\n\n\n\t/* DATETIMEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datetimepicker.data-api click.datetimepicker.data-api',\n\t\t'[data-provide=\"datetimepicker\"]',\n\t\tfunction (e) {\n\t\t    var $this = $(this);\n\t\t    if ($this.data('datetimepicker')) return;\n\t\t    e.preventDefault();\n\t\t    // component click requires us to explicitly show it\n\t\t    $this.datetimepicker('show');\n\t\t}\n\t);\n\t$(function () {\n\t    $('[data-provide=\"datetimepicker-inline\"]').datetimepicker();\n\t});\n\n}( window.jQuery );\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.bg.js",
    "content": "/**\n * Bulgarian translation for bootstrap-datetimepicker\n * Apostol Apostolov <apostol.s.apostolov@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['bg'] = {\n\t\tdays: [\"Неделя\", \"Понеделник\", \"Вторник\", \"Сряда\", \"Четвъртък\", \"Петък\", \"Събота\", \"Неделя\"],\n\t\tdaysShort: [\"Нед\", \"Пон\", \"Вто\", \"Сря\", \"Чет\", \"Пет\", \"Съб\", \"Нед\"],\n\t\tdaysMin: [\"Н\", \"П\", \"В\", \"С\", \"Ч\", \"П\", \"С\", \"Н\"],\n\t\tmonths: [\"Януари\", \"Февруари\", \"Март\", \"Април\", \"Май\", \"Юни\", \"Юли\", \"Август\", \"Септември\", \"Октомври\", \"Ноември\", \"Декември\"],\n\t\tmonthsShort: [\"Ян\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Юни\", \"Юли\", \"Авг\", \"Сеп\", \"Окт\", \"Ное\", \"Дек\"],\n\t\ttoday: \"днес\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ca.js",
    "content": "/**\n * Catalan translation for bootstrap-datetimepicker\n * J. Garcia <jogaco.en@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ca'] = {\n\t\tdays: [\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\", \"Diumenge\"],\n\t\tdaysShort: [\"Diu\",  \"Dil\", \"Dmt\", \"Dmc\", \"Dij\", \"Div\", \"Dis\", \"Diu\"],\n\t\tdaysMin: [\"dg\", \"dl\", \"dt\", \"dc\", \"dj\", \"dv\", \"ds\", \"dg\"],\n\t\tmonths: [\"Gener\", \"Febrer\", \"Març\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"],\n\t\tmonthsShort: [\"Gen\", \"Feb\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Oct\", \"Nov\", \"Des\"],\n\t\ttoday: \"Avui\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.cs.js",
    "content": "/**\n * Czech translation for bootstrap-datetimepicker\n * Matěj Koubík <matej@koubik.name>\n * Fixes by Michal Remiš <michal.remis@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['cs'] = {\n\t\tdays: [\"Neděle\", \"Pondělí\", \"Úterý\", \"Středa\", \"Čtvrtek\", \"Pátek\", \"Sobota\", \"Neděle\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Úte\", \"Stř\", \"Čtv\", \"Pát\", \"Sob\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\", \"Ne\"],\n\t\tmonths: [\"Leden\", \"Únor\", \"Březen\", \"Duben\", \"Květen\", \"Červen\", \"Červenec\", \"Srpen\", \"Září\", \"Říjen\", \"Listopad\", \"Prosinec\"],\n\t\tmonthsShort: [\"Led\", \"Úno\", \"Bře\", \"Dub\", \"Kvě\", \"Čer\", \"Čnc\", \"Srp\", \"Zář\", \"Říj\", \"Lis\", \"Pro\"],\n\t\ttoday: \"Dnes\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.da.js",
    "content": "/**\n * Danish translation for bootstrap-datetimepicker\n * Christian Pedersen <http://github.com/chripede>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['da'] = {\n\t\tdays: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\", \"Søndag\"],\n\t\tdaysShort: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\", \"Søn\"],\n\t\tdaysMin: [\"Sø\", \"Ma\", \"Ti\", \"On\", \"To\", \"Fr\", \"Lø\", \"Sø\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"I Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.de.js",
    "content": "/**\n * German translation for bootstrap-datetimepicker\n * Sam Zurcher <sam@orelias.ch>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['de'] = {\n\t\tdays: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\", \"Sonntag\"],\n\t\tdaysShort: [\"Son\", \"Mon\", \"Die\", \"Mit\", \"Don\", \"Fre\", \"Sam\", \"Son\"],\n\t\tdaysMin: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\", \"So\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mär\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\"],\n\t\ttoday: \"Heute\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1,\n\t\tformat: \"dd.mm.yyyy\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.el.js",
    "content": "/**\n* Greek translation for bootstrap-datetimepicker\n*/\n;(function($){\n  $.fn.datetimepicker.dates['el'] = {\n\t    days: [\"Κυριακή\", \"Δευτέρα\", \"Τρίτη\", \"Τετάρτη\", \"Πέμπτη\", \"Παρασκευή\", \"Σάββατο\", \"Κυριακή\"],\n\t    daysShort: [\"Κυρ\", \"Δευ\", \"Τρι\", \"Τετ\", \"Πεμ\", \"Παρ\", \"Σαβ\", \"Κυρ\"],\n\t    daysMin: [\"Κυ\", \"Δε\", \"Τρ\", \"Τε\", \"Πε\", \"Πα\", \"Σα\", \"Κυ\"],\n\t    months: [\"Ιανουάριος\", \"Φεβρουάριος\", \"Μάρτιος\", \"Απρίλιος\", \"Μάιος\", \"Ιούνιος\", \"Ιούλιος\", \"Αύγουστος\", \"Σεπτέμβριος\", \"Οκτώβριος\", \"Νοέμβριος\", \"Δεκέμβριος\"],\n\t    monthsShort: [\"Ιαν\", \"Φεβ\", \"Μαρ\", \"Απρ\", \"Μάι\", \"Ιουν\", \"Ιουλ\", \"Αυγ\", \"Σεπ\", \"Οκτ\", \"Νοε\", \"Δεκ\"],\n\t    today: \"Σήμερα\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n  };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.es.js",
    "content": "/**\n * Spanish translation for bootstrap-datetimepicker\n * Bruno Bonamin <bruno.bonamin@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['es'] = {\n\t\tdays: [\"Domingo\", \"Lunes\", \"Martes\", \"Miércoles\", \"Jueves\", \"Viernes\", \"Sábado\", \"Domingo\"],\n\t\tdaysShort: [\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Lu\", \"Ma\", \"Mi\", \"Ju\", \"Vi\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\n\t\tmonthsShort: [\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\"],\n\t\ttoday: \"Hoy\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fi.js",
    "content": "/**\n * Finnish translation for bootstrap-datetimepicker\n * Jaakko Salonen <https://github.com/jsalonen>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['fi'] = {\n\t\tdays: [\"sunnuntai\", \"maanantai\", \"tiistai\", \"keskiviikko\", \"torstai\", \"perjantai\", \"lauantai\", \"sunnuntai\"],\n\t\tdaysShort: [\"sun\", \"maa\", \"tii\", \"kes\", \"tor\", \"per\", \"lau\", \"sun\"],\n\t\tdaysMin: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\", \"su\"],\n\t\tmonths: [\"tammikuu\", \"helmikuu\", \"maaliskuu\", \"huhtikuu\", \"toukokuu\", \"kesäkuu\", \"heinäkuu\", \"elokuu\", \"syyskuu\", \"lokakuu\", \"marraskuu\", \"joulukuu\"],\n\t\tmonthsShort: [\"tam\", \"hel\", \"maa\", \"huh\", \"tou\", \"kes\", \"hei\", \"elo\", \"syy\", \"lok\", \"mar\", \"jou\"],\n\t\ttoday: \"tänään\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fr.js",
    "content": "/**\n * French translation for bootstrap-datetimepicker\n * Nico Mollet <nico.mollet@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['fr'] = {\n\t\tdays: [\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\", \"Dimanche\"],\n\t\tdaysShort: [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\", \"Dim\"],\n\t\tdaysMin: [\"D\", \"L\", \"Ma\", \"Me\", \"J\", \"V\", \"S\", \"D\"],\n\t\tmonths: [\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"],\n\t\tmonthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Avr\", \"Mai\", \"Jui\", \"Jul\", \"Aou\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Aujourd'hui\",\n\t\tsuffix: [],\n\t\tmeridiem: [\"am\", \"pm\"],\n\t\tweekStart: 1,\n\t\tformat: \"dd/mm/yyyy\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.he.js",
    "content": "/**\n * Hebrew translation for bootstrap-datetimepicker\n * Sagie Maoz <sagie@maoz.info>\n */\n;(function($){\n  $.fn.datetimepicker.dates['he'] = {\n      days: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\", \"ראשון\"],\n      daysShort: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\", \"א\"],\n      daysMin: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\", \"א\"],\n      months: [\"ינואר\", \"פברואר\", \"מרץ\", \"אפריל\", \"מאי\", \"יוני\", \"יולי\", \"אוגוסט\", \"ספטמבר\", \"אוקטובר\", \"נובמבר\", \"דצמבר\"],\n      monthsShort: [\"ינו\", \"פבר\", \"מרץ\", \"אפר\", \"מאי\", \"יונ\", \"יול\", \"אוג\", \"ספט\", \"אוק\", \"נוב\", \"דצמ\"],\n      today: \"היום\",\n\t  suffix: [],\n\t  meridiem: [],\n      rtl: true\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hr.js",
    "content": "/**\n * Croatian localisation\n */\n;(function($){\n\t$.fn.datetimepicker.dates['hr'] = {\n\t\tdays: [\"Nedjelja\", \"Ponedjelja\", \"Utorak\", \"Srijeda\", \"Četrtak\", \"Petak\", \"Subota\", \"Nedjelja\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Uto\", \"Srr\", \"Čet\", \"Pet\", \"Sub\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"Ut\", \"Sr\", \"Če\", \"Pe\", \"Su\", \"Ne\"],\n\t\tmonths: [\"Siječanj\", \"Veljača\", \"Ožujak\", \"Travanj\", \"Svibanj\", \"Lipanj\", \"Srpanj\", \"Kolovoz\", \"Rujan\", \"Listopad\", \"Studeni\", \"Prosinac\"],\n\t\tmonthsShort: [\"Sije\", \"Velj\", \"Ožu\", \"Tra\", \"Svi\", \"Lip\", \"Jul\", \"Kol\", \"Ruj\", \"Lis\", \"Stu\", \"Pro\"],\n\t\ttoday: \"Danas\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hu.js",
    "content": "/**\n * Hungarian translation for bootstrap-datetimepicker\n * darevish <http://github.com/darevish>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['hu'] = {\n\t\tdays: [\"Vasárnap\", \"Hétfő\", \"Kedd\", \"Szerda\", \"Csütörtök\", \"Péntek\", \"Szombat\", \"Vasárnap\"],\n\t\tdaysShort: [\"Vas\", \"Hét\", \"Ked\", \"Sze\", \"Csü\", \"Pén\", \"Szo\", \"Vas\"],\n\t\tdaysMin: [\"V\", \"H\", \"K\", \"Sze\", \"Cs\", \"P\", \"Szo\", \"V\"],\n\t\tmonths: [\"Január\", \"Február\", \"Március\", \"Április\", \"Május\", \"Június\", \"Július\", \"Augusztus\", \"Szeptember\", \"Október\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Már\", \"Ápr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sze\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Ma\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.id.js",
    "content": "/**\n * Bahasa translation for bootstrap-datetimepicker\n * Azwar Akbar <azwar.akbar@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['id'] = {\n\t\tdays: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\", \"Minggu\"],\n\t\tdaysShort: [\"Mgu\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\", \"Mgu\"],\n\t\tdaysMin: [\"Mg\", \"Sn\", \"Sl\", \"Ra\", \"Ka\", \"Ju\", \"Sa\", \"Mg\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Maret\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Agustus\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Ags\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.is.js",
    "content": "/**\n * Icelandic translation for bootstrap-datetimepicker\n * Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['is'] = {\n\t\tdays: [\"Sunnudagur\", \"Mánudagur\", \"Þriðjudagur\", \"Miðvikudagur\", \"Fimmtudagur\", \"Föstudagur\", \"Laugardagur\", \"Sunnudagur\"],\n\t\tdaysShort: [\"Sun\", \"Mán\", \"Þri\", \"Mið\", \"Fim\", \"Fös\", \"Lau\", \"Sun\"],\n\t\tdaysMin: [\"Su\", \"Má\", \"Þr\", \"Mi\", \"Fi\", \"Fö\", \"La\", \"Su\"],\n\t\tmonths: [\"Janúar\", \"Febrúar\", \"Mars\", \"Apríl\", \"Maí\", \"Júní\", \"Júlí\", \"Ágúst\", \"September\", \"Október\", \"Nóvember\", \"Desember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maí\", \"Jún\", \"Júl\", \"Ágú\", \"Sep\", \"Okt\", \"Nóv\", \"Des\"],\n\t\ttoday: \"Í Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.it.js",
    "content": "/**\n * Italian translation for bootstrap-datetimepicker\n * Enrico Rubboli <rubboli@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['it'] = {\n\t\tdays: [\"Domenica\", \"Lunedi\", \"Martedi\", \"Mercoledi\", \"Giovedi\", \"Venerdi\", \"Sabato\", \"Domenica\"],\n\t\tdaysShort: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Lu\", \"Ma\", \"Me\", \"Gi\", \"Ve\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Giugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"],\n\t\tmonthsShort: [\"Gen\", \"Feb\", \"Mar\", \"Apr\", \"Mag\", \"Giu\", \"Lug\", \"Ago\", \"Set\", \"Ott\", \"Nov\", \"Dic\"],\n\t\ttoday: \"Oggi\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1,\n\t\tformat: \"dd.mm.yyyy\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ja.js",
    "content": "/**\n * Japanese translation for bootstrap-datetimepicker\n * Norio Suzuki <https://github.com/suzuki/>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ja'] = {\n\t\tdays: [\"日曜\", \"月曜\", \"火曜\", \"水曜\", \"木曜\", \"金曜\", \"土曜\", \"日曜\"],\n\t\tdaysShort: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\", \"日\"],\n\t\tdaysMin: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\", \"日\"],\n\t\tmonths: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n\t\tmonthsShort: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n\t\ttoday: \"今日\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.kr.js",
    "content": "/**\n * Korean translation for bootstrap-datetimepicker\n * Gu Youn <http://github.com/guyoun>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['kr'] = {\n\t\tdays: [\"일요일\", \"월요일\", \"화요일\", \"수요일\", \"목요일\", \"금요일\", \"토요일\", \"일요일\"],\n\t\tdaysShort: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\", \"일\"],\n\t\tdaysMin: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\", \"일\"],\n\t\tmonths: [\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"],\n\t\tmonthsShort: [\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"],\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lt.js",
    "content": "﻿/**\n * Lithuanian translation for bootstrap-datetimepicker\n * Šarūnas Gliebus <ssharunas@yahoo.co.uk>\n */\n\n;(function($){\n    $.fn.datetimepicker.dates['lt'] = {\n        days: [\"Sekmadienis\", \"Pirmadienis\", \"Antradienis\", \"Trečiadienis\", \"Ketvirtadienis\", \"Penktadienis\", \"Šeštadienis\", \"Sekmadienis\"],\n        daysShort: [\"S\", \"Pr\", \"A\", \"T\", \"K\", \"Pn\", \"Š\", \"S\"],\n        daysMin: [\"Sk\", \"Pr\", \"An\", \"Tr\", \"Ke\", \"Pn\", \"Št\", \"Sk\"],\n        months: [\"Sausis\", \"Vasaris\", \"Kovas\", \"Balandis\", \"Gegužė\", \"Birželis\", \"Liepa\", \"Rugpjūtis\", \"Rugsėjis\", \"Spalis\", \"Lapkritis\", \"Gruodis\"],\n        monthsShort: [\"Sau\", \"Vas\", \"Kov\", \"Bal\", \"Geg\", \"Bir\", \"Lie\", \"Rugp\", \"Rugs\", \"Spa\", \"Lap\", \"Gru\"],\n        today: \"Šiandien\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n        weekStart: 1\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lv.js",
    "content": "/**\n * Latvian translation for bootstrap-datetimepicker\n * Artis Avotins <artis@apit.lv>\n */\n\n;(function($){\n    $.fn.datetimepicker.dates['lv'] = {\n        days: [\"Svētdiena\", \"Pirmdiena\", \"Otrdiena\", \"Trešdiena\", \"Ceturtdiena\", \"Piektdiena\", \"Sestdiena\", \"Svētdiena\"],\n        daysShort: [\"Sv\", \"P\", \"O\", \"T\", \"C\", \"Pk\", \"S\", \"Sv\"],\n        daysMin: [\"Sv\", \"Pr\", \"Ot\", \"Tr\", \"Ce\", \"Pk\", \"St\", \"Sv\"],\n        months: [\"Janvāris\", \"Februāris\", \"Marts\", \"Aprīlis\", \"Maijs\", \"Jūnijs\", \"Jūlijs\", \"Augusts\", \"Septembris\", \"Oktobris\", \"Novembris\", \"Decembris\"],\n        monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jūn\", \"Jūl\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec.\"],\n        today: \"Šodien\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n        weekStart: 1\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ms.js",
    "content": "/**\n * Malay translation for bootstrap-datetimepicker\n * Ateman Faiz <noorulfaiz@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ms'] = {\n\t\tdays: [\"Ahad\", \"Isnin\", \"Selasa\", \"Rabu\", \"Khamis\", \"Jumaat\", \"Sabtu\", \"Ahad\"],\n\t\tdaysShort: [\"Aha\", \"Isn\", \"Sel\", \"Rab\", \"Kha\", \"Jum\", \"Sab\", \"Aha\"],\n\t\tdaysMin: [\"Ah\", \"Is\", \"Se\", \"Ra\", \"Kh\", \"Ju\", \"Sa\", \"Ah\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Mac\", \"April\", \"Mei\", \"Jun\", \"Julai\", \"Ogos\", \"September\", \"Oktober\", \"November\", \"Disember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Ogo\", \"Sep\", \"Okt\", \"Nov\", \"Dis\"],\n\t\ttoday: \"Hari Ini\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nb.js",
    "content": "/**\n * Norwegian (bokmål) translation for bootstrap-datetimepicker\n * Fredrik Sundmyhr <http://github.com/fsundmyhr>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['nb'] = {\n\t\tdays: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\", \"Søndag\"],\n\t\tdaysShort: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\", \"Søn\"],\n\t\tdaysMin: [\"Sø\", \"Ma\", \"Ti\", \"On\", \"To\", \"Fr\", \"Lø\", \"Sø\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n\t\ttoday: \"I Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nl.js",
    "content": "/**\n * Dutch translation for bootstrap-datetimepicker\n * Reinier Goltstein <mrgoltstein@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['nl'] = {\n\t\tdays: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\", \"Zondag\"],\n\t\tdaysShort: [\"Zo\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\", \"Zo\"],\n\t\tdaysMin: [\"Zo\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\", \"Zo\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Maart\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Augustus\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Vandaag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pl.js",
    "content": "/**\n * Polish translation for bootstrap-datetimepicker\n * Robert <rtpm@gazeta.pl>\n */\n;(function($){\n$.fn.datetimepicker.dates['pl'] = {\n        days: [\"Niedziela\", \"Poniedziałek\", \"Wtorek\", \"Środa\", \"Czwartek\", \"Piątek\", \"Sobota\", \"Niedziela\"],\n        daysShort: [\"Nie\", \"Pn\", \"Wt\", \"Śr\", \"Czw\", \"Pt\", \"So\", \"Nie\"],\n        daysMin: [\"N\", \"Pn\", \"Wt\", \"Śr\", \"Cz\", \"Pt\", \"So\", \"N\"],\n        months: [\"Styczeń\", \"Luty\", \"Marzec\", \"Kwiecień\", \"Maj\", \"Czerwiec\", \"Lipiec\", \"Sierpień\", \"Wrzesień\", \"Październik\", \"Listopad\", \"Grudzień\"],\n        monthsShort: [\"Sty\", \"Lu\", \"Mar\", \"Kw\", \"Maj\", \"Cze\", \"Lip\", \"Sie\", \"Wrz\", \"Pa\", \"Lis\", \"Gru\"],\n        today: \"Dzisiaj\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n        weekStart: 1\n};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt-BR.js",
    "content": "/**\n * Brazilian translation for bootstrap-datetimepicker\n * Cauan Cabral <cauan@radig.com.br>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['pt-BR'] = {\n        format: 'dd/mm/yyyy',\n\t\tdays: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\", \"Domingo\"],\n\t\tdaysShort: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Se\", \"Te\", \"Qu\", \"Qu\", \"Se\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n\t\tmonthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"],\n\t\ttoday: \"Hoje\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt.js",
    "content": "/**\n * Portuguese translation for bootstrap-datetimepicker\n * Original code: Cauan Cabral <cauan@radig.com.br>\n * Tiago Melo <tiago.blackcode@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['pt'] = {\n\t\tdays: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\", \"Domingo\"],\n\t\tdaysShort: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Se\", \"Te\", \"Qu\", \"Qu\", \"Se\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n\t\tmonthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"],\n\t\tsuffix: [],\n\t\tmeridiem: [\"am\",\"pm\"],\n\t\ttoday: \"Hoje\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ro.js",
    "content": "/**\n * Romanian translation for bootstrap-datetimepicker\n * Cristian Vasile <cristi.mie@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ro'] = {\n\t\tdays: [\"Duminică\", \"Luni\", \"Marţi\", \"Miercuri\", \"Joi\", \"Vineri\", \"Sâmbătă\", \"Duminică\"],\n\t\tdaysShort: [\"Dum\", \"Lun\", \"Mar\", \"Mie\", \"Joi\", \"Vin\", \"Sâm\", \"Dum\"],\n\t\tdaysMin: [\"Du\", \"Lu\", \"Ma\", \"Mi\", \"Jo\", \"Vi\", \"Sâ\", \"Du\"],\n\t\tmonths: [\"Ianuarie\", \"Februarie\", \"Martie\", \"Aprilie\", \"Mai\", \"Iunie\", \"Iulie\", \"August\", \"Septembrie\", \"Octombrie\", \"Noiembrie\", \"Decembrie\"],\n\t\tmonthsShort: [\"Ian\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Iun\", \"Iul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Astăzi\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.rs-latin.js",
    "content": "/**\n * Serbian latin translation for bootstrap-datetimepicker\n * Bojan Milosavlević <milboj@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['rs'] = {\n\t\tdays: [\"Nedelja\",\"Ponedeljak\", \"Utorak\", \"Sreda\", \"Četvrtak\", \"Petak\", \"Subota\", \"Nedelja\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\", \"Ned\"],\n\t\tdaysMin: [\"N\", \"Po\", \"U\", \"Sr\", \"Č\", \"Pe\", \"Su\", \"N\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Danas\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.rs.js",
    "content": "/**\n * Serbian cyrillic translation for bootstrap-datetimepicker\n * Bojan Milosavlević <milboj@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['rs'] = {\n\t\tdays: [\"Недеља\",\"Понедељак\", \"Уторак\", \"Среда\", \"Четвртак\", \"Петак\", \"Субота\", \"Недеља\"],\n\t\tdaysShort: [\"Нед\", \"Пон\", \"Уто\", \"Сре\", \"Чет\", \"Пет\", \"Суб\", \"Нед\"],\n\t\tdaysMin: [\"Н\", \"По\", \"У\", \"Ср\", \"Ч\", \"Пе\", \"Су\", \"Н\"],\n\t\tmonths: [\"Јануар\", \"Фебруар\", \"Март\", \"Април\", \"Мај\", \"Јун\", \"Јул\", \"Август\", \"Септембар\", \"Октобар\", \"Новембар\", \"Децембар\"],\n\t\tmonthsShort: [\"Јан\", \"Феб\", \"Мар\", \"Апр\", \"Мај\", \"Јун\", \"Јул\", \"Авг\", \"Сеп\", \"Окт\", \"Нов\", \"Дец\"],\n\t\ttoday: \"Данас\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ru.js",
    "content": "/**\n * Russian translation for bootstrap-datetimepicker\n * Victor Taranenko <darwin@snowdale.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ru'] = {\n\t\tdays: [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\", \"Воскресенье\"],\n\t\tdaysShort: [\"Вск\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\", \"Вск\"],\n\t\tdaysMin: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\", \"Вс\"],\n\t\tmonths: [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"],\n\t\tmonthsShort: [\"Янв\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Июн\", \"Июл\", \"Авг\", \"Сен\", \"Окт\", \"Ноя\", \"Дек\"],\n\t\ttoday: \"Сегодня\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sk.js",
    "content": "/**\n * Slovak translation for bootstrap-datetimepicker\n * Marek Lichtner <marek@licht.sk>\n * Fixes by Michal Remiš <michal.remis@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates[\"sk\"] = {\n\t\tdays: [\"Nedeľa\", \"Pondelok\", \"Utorok\", \"Streda\", \"Štvrtok\", \"Piatok\", \"Sobota\", \"Nedeľa\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Uto\", \"Str\", \"Štv\", \"Pia\", \"Sob\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"Ut\", \"St\", \"Št\", \"Pia\", \"So\", \"Ne\"],\n\t\tmonths: [\"Január\", \"Február\", \"Marec\", \"Apríl\", \"Máj\", \"Jún\", \"Júl\", \"August\", \"September\", \"Október\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Dnes\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sl.js",
    "content": "/**\n * Slovene translation for bootstrap-datetimepicker\n * Gregor Rudolf <gregor.rudolf@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['sl'] = {\n\t\tdays: [\"Nedelja\", \"Ponedeljek\", \"Torek\", \"Sreda\", \"Četrtek\", \"Petek\", \"Sobota\", \"Nedelja\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Tor\", \"Sre\", \"Čet\", \"Pet\", \"Sob\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"To\", \"Sr\", \"Če\", \"Pe\", \"So\", \"Ne\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Marec\", \"April\", \"Maj\", \"Junij\", \"Julij\", \"Avgust\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Danes\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sv.js",
    "content": "/**\n * Swedish translation for bootstrap-datetimepicker\n * Patrik Ragnarsson <patrik@starkast.net>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['sv'] = {\n\t\tdays: [\"Söndag\", \"Måndag\", \"Tisdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lördag\", \"Söndag\"],\n\t\tdaysShort: [\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\", \"Sön\"],\n\t\tdaysMin: [\"Sö\", \"Må\", \"Ti\", \"On\", \"To\", \"Fr\", \"Lö\", \"Sö\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"I Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sw.js",
    "content": "/**\n * Swahili translation for bootstrap-datetimepicker\n * Edwin Mugendi <https://github.com/edwinmugendi>\n * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku\n */\n;(function($){\n    $.fn.datetimepicker.dates['sw'] = {\n        days: [\"Jumapili\", \"Jumatatu\", \"Jumanne\", \"Jumatano\", \"Alhamisi\", \"Ijumaa\", \"Jumamosi\", \"Jumapili\"],\n        daysShort: [\"J2\", \"J3\", \"J4\", \"J5\", \"Alh\", \"Ij\", \"J1\", \"J2\"],\n        daysMin: [\"2\", \"3\", \"4\", \"5\", \"A\", \"I\", \"1\", \"2\"],\n        months: [\"Januari\", \"Februari\", \"Machi\", \"Aprili\", \"Mei\", \"Juni\", \"Julai\", \"Agosti\", \"Septemba\", \"Oktoba\", \"Novemba\", \"Desemba\"],\n        monthsShort: [\"Jan\", \"Feb\", \"Mac\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n        today: \"Leo\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.th.js",
    "content": "/**\n * Thai translation for bootstrap-datetimepicker\n * Suchau Jiraprapot <seroz24@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['th'] = {\n\t\tdays: [\"อาทิตย์\", \"จันทร์\", \"อังคาร\", \"พุธ\", \"พฤหัส\", \"ศุกร์\", \"เสาร์\", \"อาทิตย์\"],\n\t\tdaysShort: [\"อา\", \"จ\", \"อ\", \"พ\", \"พฤ\", \"ศ\", \"ส\", \"อา\"],\n\t\tdaysMin: [\"อา\", \"จ\", \"อ\", \"พ\", \"พฤ\", \"ศ\", \"ส\", \"อา\"],\n\t\tmonths: [\"มกราคม\", \"กุมภาพันธ์\", \"มีนาคม\", \"เมษายน\", \"พฤษภาคม\", \"มิถุนายน\", \"กรกฎาคม\", \"สิงหาคม\", \"กันยายน\", \"ตุลาคม\", \"พฤศจิกายน\", \"ธันวาคม\"],\n\t\tmonthsShort: [\"ม.ค.\", \"ก.พ.\", \"มี.ค.\", \"เม.ย.\", \"พ.ค.\", \"มิ.ย.\", \"ก.ค.\", \"ส.ค.\", \"ก.ย.\", \"ต.ค.\", \"พ.ย.\", \"ธ.ค.\"],\n\t\ttoday: \"วันนี้\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.tr.js",
    "content": "/**\n * Turkish translation for bootstrap-datetimepicker\n * Serkan Algur <kaisercrazy_2@hotmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['tr'] = {\n\t\tdays: [\"Pazar\", \"Pazartesi\", \"Salı\", \"Çarşamba\", \"Perşembe\", \"Cuma\", \"Cumartesi\", \"Pazar\"],\n\t\tdaysShort: [\"Pz\", \"Pzt\", \"Sal\", \"Çrş\", \"Prş\", \"Cu\", \"Cts\", \"Pz\"],\n\t\tdaysMin: [\"Pz\", \"Pzt\", \"Sa\", \"Çr\", \"Pr\", \"Cu\", \"Ct\", \"Pz\"],\n\t\tmonths: [\"Ocak\", \"Şubat\", \"Mart\", \"Nisan\", \"Mayıs\", \"Haziran\", \"Temmuz\", \"Ağustos\", \"Eylül\", \"Ekim\", \"Kasım\", \"Aralık\"],\n\t\tmonthsShort: [\"Oca\", \"Şub\", \"Mar\", \"Nis\", \"May\", \"Haz\", \"Tem\", \"Ağu\", \"Eyl\", \"Eki\", \"Kas\", \"Ara\"],\n\t\ttoday: \"Bugün\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ua.js",
    "content": "/**\n * Ukrainian translation for bootstrap-datepicker\n * Igor Polynets\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ua'] = {\n\t\tdays: [\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четверг\", \"П'ятниця\", \"Субота\", \"Неділя\"],\n\t\tdaysShort: [\"Нед\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\", \"Нед\"],\n\t\tdaysMin: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\", \"Нд\"],\n\t\tmonths: [\"Cічень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"],\n\t\tmonthsShort: [\"Січ\", \"Лют\", \"Бер\", \"Квт\", \"Трв\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Грд\"],\n\t\ttoday: \"Сьогодні\",\n\t\tweekStart: 1\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.uk.js",
    "content": "/**\n * Ukrainian translation for bootstrap-datetimepicker\n * Andrey Vityuk <andrey [dot] vityuk [at] gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['uk'] = {\n\t\tdays: [\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четвер\", \"П'ятниця\", \"Субота\", \"Неділя\"],\n\t\tdaysShort: [\"Нед\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\", \"Нед\"],\n\t\tdaysMin: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\", \"Нд\"],\n\t\tmonths: [\"Січень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"],\n\t\tmonthsShort: [\"Січ\", \"Лют\", \"Бер\", \"Кві\", \"Тра\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Гру\"],\n\t\ttoday: \"Сьогодні\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js",
    "content": "/**\n * Simplified Chinese translation for bootstrap-datetimepicker\n * Yuan Cheung <advanimal@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['zh-CN'] = {\n\t\t\t\tdays: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\", \"星期日\"],\n\t\t\tdaysShort: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\", \"周日\"],\n\t\t\tdaysMin:  [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"日\"],\n\t\t\tmonths: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\tmonthsShort: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\ttoday: \"今日\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-TW.js",
    "content": "/**\n * Traditional Chinese translation for bootstrap-datetimepicker\n * Rung-Sheng Jang <daniel@i-trend.co.cc>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['zh-TW'] = {\n\tdays: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\", \"星期日\"],\n\t  daysShort: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\", \"周日\"],\n\t\tdaysMin:  [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"日\"],\n\t\tmonths: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\tmonthsShort: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\ttoday: \"今天\",\n    suffix: [],\n\t\tmeridiem: [\"上午\", \"下午\"]\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/js/bootstrap-markdown.js",
    "content": "/* ===================================================\n * bootstrap-markdown.js v2.9.0\n * http://github.com/toopay/bootstrap-markdown\n * ===================================================\n * Copyright 2013-2015 Taufan Aditya\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================== */\n\n!function ($) {\n\n  \"use strict\"; // jshint ;_;\n\n  /* MARKDOWN CLASS DEFINITION\n   * ========================== */\n\n  var Markdown = function (element, options) {\n    // @TODO : remove this BC on next major release\n    // @see : https://github.com/toopay/bootstrap-markdown/issues/109\n    var opts = ['autofocus', 'savable', 'hideable', 'width', \n      'height', 'resize', 'iconlibrary', 'language', \n      'footer', 'fullscreen', 'hiddenButtons', 'disabledButtons'];\n    $.each(opts,function(_, opt){\n      if (typeof $(element).data(opt) !== 'undefined') {\n        options = typeof options == 'object' ? options : {}\n        options[opt] = $(element).data(opt)\n      }\n    });\n    // End BC\n\n    // Class Properties\n    this.$ns           = 'bootstrap-markdown';\n    this.$element      = $(element);\n    this.$editable     = {el:null, type:null,attrKeys:[], attrValues:[], content:null};\n    this.$options      = $.extend(true, {}, $.fn.markdown.defaults, options, this.$element.data('options'));\n    this.$oldContent   = null;\n    this.$isPreview    = false;\n    this.$isFullscreen = false;\n    this.$editor       = null;\n    this.$textarea     = null;\n    this.$handler      = [];\n    this.$callback     = [];\n    this.$nextTab      = [];\n\n    this.showEditor();\n  };\n\n  Markdown.prototype = {\n\n    constructor: Markdown\n\n  , __alterButtons: function(name,alter) {\n      var handler = this.$handler, isAll = (name == 'all'),that = this;\n\n      $.each(handler,function(k,v) {\n        var halt = true;\n        if (isAll) {\n          halt = false;\n        } else {\n          halt = v.indexOf(name) < 0;\n        }\n\n        if (halt === false) {\n          alter(that.$editor.find('button[data-handler=\"'+v+'\"]'));\n        }\n      });\n    }\n\n  , __buildButtons: function(buttonsArray, container) {\n      var i,\n          ns = this.$ns,\n          handler = this.$handler,\n          callback = this.$callback;\n\n      for (i=0;i<buttonsArray.length;i++) {\n        // Build each group container\n        var y, btnGroups = buttonsArray[i];\n        for (y=0;y<btnGroups.length;y++) {\n          // Build each button group\n          var z,\n              buttons = btnGroups[y].data,\n              btnGroupContainer = $('<div/>', {\n                                    'class': 'btn-group'\n                                  });\n\n          for (z=0;z<buttons.length;z++) {\n            var button = buttons[z],\n                buttonContainer, buttonIconContainer,\n                buttonHandler = ns+'-'+button.name,\n                buttonIcon = this.__getIcon(button.icon),\n                btnText = button.btnText ? button.btnText : '',\n                btnClass = button.btnClass ? button.btnClass : 'btn',\n                tabIndex = button.tabIndex ? button.tabIndex : '-1',\n                hotkey = typeof button.hotkey !== 'undefined' ? button.hotkey : '',\n                hotkeyCaption = typeof jQuery.hotkeys !== 'undefined' && hotkey !== '' ? ' ('+hotkey+')' : '';\n\n            // Construct the button object\n            buttonContainer = $('<button></button>');\n            buttonContainer.text(' ' + this.__localize(btnText)).addClass('btn-default btn-sm').addClass(btnClass);\n            if(btnClass.match(/btn\\-(primary|success|info|warning|danger|link)/)){\n                buttonContainer.removeClass('btn-default');\n            }\n            buttonContainer.attr({\n                'type': 'button',\n                'title': this.__localize(button.title) + hotkeyCaption,\n                'tabindex': tabIndex,\n                'data-provider': ns,\n                'data-handler': buttonHandler,\n                'data-hotkey': hotkey\n            });\n            if (button.toggle === true){\n              buttonContainer.attr('data-toggle', 'button');\n            }\n            buttonIconContainer = $('<span/>');\n            buttonIconContainer.addClass(buttonIcon);\n            buttonIconContainer.prependTo(buttonContainer);\n\n            // Attach the button object\n            btnGroupContainer.append(buttonContainer);\n\n            // Register handler and callback\n            handler.push(buttonHandler);\n            callback.push(button.callback);\n          }\n\n          // Attach the button group into container dom\n          container.append(btnGroupContainer);\n        }\n      }\n\n      return container;\n    }\n  , __setListener: function() {\n      // Set size and resizable Properties\n      var hasRows = typeof this.$textarea.attr('rows') !== 'undefined',\n          maxRows = this.$textarea.val().split(\"\\n\").length > 5 ? this.$textarea.val().split(\"\\n\").length : '5',\n          rowsVal = hasRows ? this.$textarea.attr('rows') : maxRows;\n\n      this.$textarea.attr('rows',rowsVal);\n      if (this.$options.resize) {\n        this.$textarea.css('resize',this.$options.resize);\n      }\n\n      this.$textarea\n        .on('focus',    $.proxy(this.focus, this))\n        .on('keypress', $.proxy(this.keypress, this))\n        .on('keyup',    $.proxy(this.keyup, this))\n        .on('change',   $.proxy(this.change, this))\n        .on('select',   $.proxy(this.select, this));\n\n      if (this.eventSupported('keydown')) {\n        this.$textarea.on('keydown', $.proxy(this.keydown, this));\n      }\n\n      // Re-attach markdown data\n      this.$textarea.data('markdown',this);\n    }\n\n  , __handle: function(e) {\n      var target = $(e.currentTarget),\n          handler = this.$handler,\n          callback = this.$callback,\n          handlerName = target.attr('data-handler'),\n          callbackIndex = handler.indexOf(handlerName),\n          callbackHandler = callback[callbackIndex];\n\n      // Trigger the focusin\n      $(e.currentTarget).focus();\n\n      callbackHandler(this);\n\n      // Trigger onChange for each button handle\n      this.change(this);\n\n      // Unless it was the save handler,\n      // focusin the textarea\n      if (handlerName.indexOf('cmdSave') < 0) {\n        this.$textarea.focus();\n      }\n\n      e.preventDefault();\n    }\n\n  , __localize: function(string) {\n      var messages = $.fn.markdown.messages,\n          language = this.$options.language;\n      if (\n        typeof messages !== 'undefined' &&\n        typeof messages[language] !== 'undefined' &&\n        typeof messages[language][string] !== 'undefined'\n      ) {\n        return messages[language][string];\n      }\n      return string;\n    }\n\n  , __getIcon: function(src) {\n    return typeof src == 'object' ? src[this.$options.iconlibrary] : src;\n  }\n\n  , setFullscreen: function(mode) {\n    var $editor = this.$editor,\n        $textarea = this.$textarea;\n\n    if (mode === true) {\n      $editor.addClass('md-fullscreen-mode');\n      $('body').addClass('md-nooverflow');\n      this.$options.onFullscreen(this);\n    } else {\n      $editor.removeClass('md-fullscreen-mode');\n      $('body').removeClass('md-nooverflow');\n\n      if (this.$isPreview == true) this.hidePreview().showPreview()\n    }\n\n    this.$isFullscreen = mode;\n    $textarea.focus();\n  }\n\n  , showEditor: function() {\n      var instance = this,\n          textarea,\n          ns = this.$ns,\n          container = this.$element,\n          originalHeigth = container.css('height'),\n          originalWidth = container.css('width'),\n          editable = this.$editable,\n          handler = this.$handler,\n          callback = this.$callback,\n          options = this.$options,\n          editor = $( '<div/>', {\n                      'class': 'md-editor',\n                      click: function() {\n                        instance.focus();\n                      }\n                    });\n\n      // Prepare the editor\n      if (this.$editor === null) {\n        // Create the panel\n        var editorHeader = $('<div/>', {\n                            'class': 'md-header btn-toolbar'\n                            });\n\n        // Merge the main & additional button groups together\n        var allBtnGroups = [];\n        if (options.buttons.length > 0) allBtnGroups = allBtnGroups.concat(options.buttons[0]);\n        if (options.additionalButtons.length > 0) {\n          // iterate the additional button groups\n          $.each(options.additionalButtons[0], function(idx, buttonGroup){\n            \n            // see if the group name of the addional group matches an existing group\n            var matchingGroups = $.grep(allBtnGroups, function(allButtonGroup, allIdx){\n              return allButtonGroup.name === buttonGroup.name;\n            });\n\n            // if it matches add the addional buttons to that group, if not just add it to the all buttons group\n            if(matchingGroups.length > 0) {\n              matchingGroups[0].data = matchingGroups[0].data.concat(buttonGroup.data);\n            } else {              \n              allBtnGroups.push(options.additionalButtons[0][idx]);\n            }\n\n          });\n        } \n\n        // Reduce and/or reorder the button groups\n        if (options.reorderButtonGroups.length > 0) {\n          allBtnGroups = allBtnGroups\n              .filter(function(btnGroup) {\n                return options.reorderButtonGroups.indexOf(btnGroup.name) > -1;\n              })\n              .sort(function(a, b) {\n                if (options.reorderButtonGroups.indexOf(a.name) < options.reorderButtonGroups.indexOf(b.name)) return -1;\n                if (options.reorderButtonGroups.indexOf(a.name) > options.reorderButtonGroups.indexOf(b.name)) return 1;\n                return 0;\n              });\n        }\n\n        // Build the buttons\n        if (allBtnGroups.length > 0) {\n          editorHeader = this.__buildButtons([allBtnGroups], editorHeader);\n        }\n\n        if (options.fullscreen.enable) {\n          editorHeader.append('<div class=\"md-controls\"><a class=\"md-control md-control-fullscreen\" href=\"#\"><span class=\"'+this.__getIcon(options.fullscreen.icons.fullscreenOn)+'\"></span></a></div>').on('click', '.md-control-fullscreen', function(e) {\n              e.preventDefault();\n              instance.setFullscreen(true);\n          });\n        }\n\n        editor.append(editorHeader);\n\n        // Wrap the textarea\n        if (container.is('textarea')) {\n          container.before(editor);\n          textarea = container;\n          textarea.addClass('md-input');\n          editor.append(textarea);\n        } else {\n          var rawContent = (typeof toMarkdown == 'function') ? toMarkdown(container.html()) : container.html(),\n              currentContent = $.trim(rawContent);\n\n          // This is some arbitrary content that could be edited\n          textarea = $('<textarea/>', {\n                       'class': 'md-input',\n                       'val' : currentContent\n                      });\n\n          editor.append(textarea);\n\n          // Save the editable\n          editable.el = container;\n          editable.type = container.prop('tagName').toLowerCase();\n          editable.content = container.html();\n\n          $(container[0].attributes).each(function(){\n            editable.attrKeys.push(this.nodeName);\n            editable.attrValues.push(this.nodeValue);\n          });\n\n          // Set editor to blocked the original container\n          container.replaceWith(editor);\n        }\n\n        var editorFooter = $('<div/>', {\n                           'class': 'md-footer'\n                         }),\n            createFooter = false,\n            footer = '';\n        // Create the footer if savable\n        if (options.savable) {\n          createFooter = true;\n          var saveHandler = 'cmdSave';\n\n          // Register handler and callback\n          handler.push(saveHandler);\n          callback.push(options.onSave);\n\n          editorFooter.append('<button class=\"btn btn-success\" data-provider=\"'\n                              + ns\n                              + '\" data-handler=\"'\n                              + saveHandler\n                              + '\"><i class=\"icon icon-white icon-ok\"></i> '\n                              + this.__localize('Save')\n                              + '</button>');\n\n\n        }\n\n        footer = typeof options.footer === 'function' ? options.footer(this) : options.footer;\n\n        if ($.trim(footer) !== '') {\n          createFooter = true;\n          editorFooter.append(footer);\n        }\n\n        if (createFooter) editor.append(editorFooter);\n\n        // Set width\n        if (options.width && options.width !== 'inherit') {\n          if (jQuery.isNumeric(options.width)) {\n            editor.css('display', 'table');\n            textarea.css('width', options.width + 'px');\n          } else {\n            editor.addClass(options.width);\n          }\n        }\n\n        // Set height\n        if (options.height && options.height !== 'inherit') {\n          if (jQuery.isNumeric(options.height)) {\n            var height = options.height;\n            if (editorHeader) height = Math.max(0, height - editorHeader.outerHeight());\n            if (editorFooter) height = Math.max(0, height - editorFooter.outerHeight());\n            textarea.css('height', height + 'px');\n          } else {\n            editor.addClass(options.height);\n          }\n        }\n\n        // Reference\n        this.$editor     = editor;\n        this.$textarea   = textarea;\n        this.$editable   = editable;\n        this.$oldContent = this.getContent();\n\n        this.__setListener();\n\n        // Set editor attributes, data short-hand API and listener\n        this.$editor.attr('id',(new Date()).getTime());\n        this.$editor.on('click', '[data-provider=\"bootstrap-markdown\"]', $.proxy(this.__handle, this));\n\n        if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {\n          this.$editor.addClass('md-editor-disabled');\n          this.disableButtons('all');\n        }\n\n        if (this.eventSupported('keydown') && typeof jQuery.hotkeys === 'object') {\n          editorHeader.find('[data-provider=\"bootstrap-markdown\"]').each(function() {\n            var $button = $(this),\n                hotkey = $button.attr('data-hotkey');\n            if (hotkey.toLowerCase() !== '') {\n              textarea.bind('keydown', hotkey, function() {\n                $button.trigger('click');\n                return false;\n              });\n            }\n          });\n        }\n\n        if (options.initialstate === 'preview') {\n          this.showPreview();\n        } else if (options.initialstate === 'fullscreen' && options.fullscreen.enable) {\n          this.setFullscreen(true);\n        }\n\n      } else {\n        this.$editor.show();\n      }\n\n      if (options.autofocus) {\n        this.$textarea.focus();\n        this.$editor.addClass('active');\n      }\n\n      if (options.fullscreen.enable && options.fullscreen !== false) {\n        this.$editor.append('<div class=\"md-fullscreen-controls\">'\n                        + '<a href=\"#\" class=\"exit-fullscreen\" title=\"Exit fullscreen\"><span class=\"' + this.__getIcon(options.fullscreen.icons.fullscreenOff) + '\">'\n                        + '</span></a>'\n                        + '</div>');\n        this.$editor.on('click', '.exit-fullscreen', function(e) {\n          e.preventDefault();\n          instance.setFullscreen(false);\n        });\n      }\n\n      // hide hidden buttons from options\n      this.hideButtons(options.hiddenButtons);\n\n      // disable disabled buttons from options\n      this.disableButtons(options.disabledButtons);\n\n      // Trigger the onShow hook\n      options.onShow(this);\n\n      return this;\n    }\n\n  , parseContent: function(val) {\n      var content;\n\n      // parse with supported markdown parser\n      var val = val || this.$textarea.val();\n\n      if (this.$options.parser) {\n        content = this.$options.parser(val);\n      } else if (typeof markdown == 'object') {\n        content = markdown.toHTML(val);\n      } else if (typeof marked == 'function') {\n        content = marked(val);\n      } else {\n        content = val;\n      }\n\n      return content;\n    }\n\n  , showPreview: function() {\n      var options = this.$options,\n          container = this.$textarea,\n          afterContainer = container.next(),\n          replacementContainer = $('<div/>',{'class':'md-preview','data-provider':'markdown-preview'}),\n          content,\n          callbackContent;\n\n      if (this.$isPreview == true) {\n        // Avoid sequenced element creation on missused scenario\n        // @see https://github.com/toopay/bootstrap-markdown/issues/170\n        return this;\n      }\n      \n      // Give flag that tell the editor enter preview mode\n      this.$isPreview = true;\n      // Disable all buttons\n      this.disableButtons('all').enableButtons('cmdPreview');\n\n      // Try to get the content from callback\n      callbackContent = options.onPreview(this);\n      // Set the content based from the callback content if string otherwise parse value from textarea\n      content = typeof callbackContent == 'string' ? callbackContent : this.parseContent();\n\n      // Build preview element\n      replacementContainer.html(content);\n\n      if (afterContainer && afterContainer.attr('class') == 'md-footer') {\n        // If there is footer element, insert the preview container before it\n        replacementContainer.insertBefore(afterContainer);\n      } else {\n        // Otherwise, just append it after textarea\n        container.parent().append(replacementContainer);\n      }\n\n      // Set the preview element dimensions\n      replacementContainer.css({\n        width: container.outerWidth() + 'px',\n        height: container.outerHeight() + 'px'\n      });\n\n      if (this.$options.resize) {\n        replacementContainer.css('resize',this.$options.resize);\n      }\n\n      // Hide the last-active textarea\n      container.hide();\n\n      // Attach the editor instances\n      replacementContainer.data('markdown',this);\n\n      if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {\n        this.$editor.addClass('md-editor-disabled');\n        this.disableButtons('all');\n      }\n\n      return this;\n    }\n\n  , hidePreview: function() {\n      // Give flag that tell the editor quit preview mode\n      this.$isPreview = false;\n\n      // Obtain the preview container\n      var container = this.$editor.find('div[data-provider=\"markdown-preview\"]');\n\n      // Remove the preview container\n      container.remove();\n\n      // Enable all buttons\n      this.enableButtons('all');\n      // Disable configured disabled buttons\n      this.disableButtons(this.$options.disabledButtons);\n\n      // Back to the editor\n      this.$textarea.show();\n      this.__setListener();\n\n      return this;\n    }\n\n  , isDirty: function() {\n      return this.$oldContent != this.getContent();\n    }\n\n  , getContent: function() {\n      return this.$textarea.val();\n    }\n\n  , setContent: function(content) {\n      this.$textarea.val(content);\n\n      return this;\n    }\n\n  , findSelection: function(chunk) {\n    var content = this.getContent(), startChunkPosition;\n\n    if (startChunkPosition = content.indexOf(chunk), startChunkPosition >= 0 && chunk.length > 0) {\n      var oldSelection = this.getSelection(), selection;\n\n      this.setSelection(startChunkPosition,startChunkPosition+chunk.length);\n      selection = this.getSelection();\n\n      this.setSelection(oldSelection.start,oldSelection.end);\n\n      return selection;\n    } else {\n      return null;\n    }\n  }\n\n  , getSelection: function() {\n\n      var e = this.$textarea[0];\n\n      return (\n\n          ('selectionStart' in e && function() {\n              var l = e.selectionEnd - e.selectionStart;\n              return { start: e.selectionStart, end: e.selectionEnd, length: l, text: e.value.substr(e.selectionStart, l) };\n          }) ||\n\n          /* browser not supported */\n          function() {\n            return null;\n          }\n\n      )();\n\n    }\n\n  , setSelection: function(start,end) {\n\n      var e = this.$textarea[0];\n\n      return (\n\n          ('selectionStart' in e && function() {\n              e.selectionStart = start;\n              e.selectionEnd = end;\n              return;\n          }) ||\n\n          /* browser not supported */\n          function() {\n            return null;\n          }\n\n      )();\n\n    }\n\n  , replaceSelection: function(text) {\n\n      var e = this.$textarea[0];\n\n      return (\n\n          ('selectionStart' in e && function() {\n              e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length);\n              // Set cursor to the last replacement end\n              e.selectionStart = e.value.length;\n              return this;\n          }) ||\n\n          /* browser not supported */\n          function() {\n              e.value += text;\n              return jQuery(e);\n          }\n\n      )();\n    }\n\n  , getNextTab: function() {\n      // Shift the nextTab\n      if (this.$nextTab.length === 0) {\n        return null;\n      } else {\n        var nextTab, tab = this.$nextTab.shift();\n\n        if (typeof tab == 'function') {\n          nextTab = tab();\n        } else if (typeof tab == 'object' && tab.length > 0) {\n          nextTab = tab;\n        }\n\n        return nextTab;\n      }\n    }\n\n  , setNextTab: function(start,end) {\n      // Push new selection into nextTab collections\n      if (typeof start == 'string') {\n        var that = this;\n        this.$nextTab.push(function(){\n          return that.findSelection(start);\n        });\n      } else if (typeof start == 'number' && typeof end == 'number') {\n        var oldSelection = this.getSelection();\n\n        this.setSelection(start,end);\n        this.$nextTab.push(this.getSelection());\n\n        this.setSelection(oldSelection.start,oldSelection.end);\n      }\n\n      return;\n    }\n\n  , __parseButtonNameParam: function (names) {\n      return typeof names == 'string' ?\n                      names.split(' ') :\n                      names;\n\n    }\n\n  , enableButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.removeAttr('disabled');\n        });\n      });\n\n      return this;\n    }\n\n  , disableButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.attr('disabled','disabled');\n        });\n      });\n\n      return this;\n    }\n\n  , hideButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.addClass('hidden');\n        });\n      });\n\n      return this;\n    }\n\n  , showButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.removeClass('hidden');\n        });\n      });\n\n      return this;\n    }\n\n  , eventSupported: function(eventName) {\n      var isSupported = eventName in this.$element;\n      if (!isSupported) {\n        this.$element.setAttribute(eventName, 'return;');\n        isSupported = typeof this.$element[eventName] === 'function';\n      }\n      return isSupported;\n    }\n\n  , keyup: function (e) {\n      var blocked = false;\n      switch(e.keyCode) {\n        case 40: // down arrow\n        case 38: // up arrow\n        case 16: // shift\n        case 17: // ctrl\n        case 18: // alt\n          break;\n\n        case 9: // tab\n          var nextTab;\n          if (nextTab = this.getNextTab(),nextTab !== null) {\n            // Get the nextTab if exists\n            var that = this;\n            setTimeout(function(){\n              that.setSelection(nextTab.start,nextTab.end);\n            },500);\n\n            blocked = true;\n          } else {\n            // The next tab memory contains nothing...\n            // check the cursor position to determine tab action\n            var cursor = this.getSelection();\n\n            if (cursor.start == cursor.end && cursor.end == this.getContent().length) {\n              // The cursor already reach the end of the content\n              blocked = false;\n            } else {\n              // Put the cursor to the end\n              this.setSelection(this.getContent().length,this.getContent().length);\n\n              blocked = true;\n            }\n          }\n\n          break;\n\n        case 13: // enter\n          blocked = false;\n          break;\n        case 27: // escape\n          if (this.$isFullscreen) this.setFullscreen(false);\n          blocked = false;\n          break;\n\n        default:\n          blocked = false;\n      }\n\n      if (blocked) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n\n      this.$options.onChange(this);\n    }\n\n  , change: function(e) {\n      this.$options.onChange(this);\n      return this;\n    }\n  , select: function (e) {\n      this.$options.onSelect(this);\n      return this;\n    }\n  , focus: function (e) {\n      var options = this.$options,\n          isHideable = options.hideable,\n          editor = this.$editor;\n\n      editor.addClass('active');\n\n      // Blur other markdown(s)\n      $(document).find('.md-editor').each(function(){\n        if ($(this).attr('id') !== editor.attr('id')) {\n          var attachedMarkdown;\n\n          if (attachedMarkdown = $(this).find('textarea').data('markdown'),\n              attachedMarkdown === null) {\n              attachedMarkdown = $(this).find('div[data-provider=\"markdown-preview\"]').data('markdown');\n          }\n\n          if (attachedMarkdown) {\n            attachedMarkdown.blur();\n          }\n        }\n      });\n\n      // Trigger the onFocus hook\n      options.onFocus(this);\n\n      return this;\n    }\n\n  , blur: function (e) {\n      var options = this.$options,\n          isHideable = options.hideable,\n          editor = this.$editor,\n          editable = this.$editable;\n\n      if (editor.hasClass('active') || this.$element.parent().length === 0) {\n        editor.removeClass('active');\n\n        if (isHideable) {\n          // Check for editable elements\n          if (editable.el !== null) {\n            // Build the original element\n            var oldElement = $('<'+editable.type+'/>'),\n                content = this.getContent(),\n                currentContent = this.parseContent(content);\n\n            $(editable.attrKeys).each(function(k,v) {\n              oldElement.attr(editable.attrKeys[k],editable.attrValues[k]);\n            });\n\n            // Get the editor content\n            oldElement.html(currentContent);\n\n            editor.replaceWith(oldElement);\n          } else {\n            editor.hide();\n          }\n        }\n\n        // Trigger the onBlur hook\n        options.onBlur(this);\n      }\n\n      return this;\n    }\n\n  };\n\n /* MARKDOWN PLUGIN DEFINITION\n  * ========================== */\n\n  var old = $.fn.markdown;\n\n  $.fn.markdown = function (option) {\n    return this.each(function () {\n      var $this = $(this)\n        , data = $this.data('markdown')\n        , options = typeof option == 'object' && option;\n      if (!data) $this.data('markdown', (data = new Markdown(this, options)))\n    })\n  };\n\n  $.fn.markdown.messages = {};\n\n  $.fn.markdown.defaults = {\n    /* Editor Properties */\n    autofocus: false,\n    hideable: false,\n    savable: false,\n    width: 'inherit',\n    height: 'inherit',\n    resize: 'none',\n    iconlibrary: 'glyph',\n    language: 'en',\n    initialstate: 'editor',\n    parser: null,\n\n    /* Buttons Properties */\n    buttons: [\n      [{\n        name: 'groupFont',\n        data: [{\n          name: 'cmdBold',\n          hotkey: 'Ctrl+B',\n          title: 'Bold',\n          icon: { glyph: 'glyphicon glyphicon-bold', fa: 'fa fa-bold', 'fa-3': 'icon-bold' },\n          callback: function(e){\n            // Give/remove ** surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('strong text');\n            } else {\n              chunk = selected.text;\n            }\n\n            // transform selection and set the cursor into chunked text\n            if (content.substr(selected.start-2,2) === '**'\n                && content.substr(selected.end,2) === '**' ) {\n              e.setSelection(selected.start-2,selected.end+2);\n              e.replaceSelection(chunk);\n              cursor = selected.start-2;\n            } else {\n              e.replaceSelection('**'+chunk+'**');\n              cursor = selected.start+2;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },{\n          name: 'cmdItalic',\n          title: 'Italic',\n          hotkey: 'Ctrl+I',\n          icon: { glyph: 'glyphicon glyphicon-italic', fa: 'fa fa-italic', 'fa-3': 'icon-italic' },\n          callback: function(e){\n            // Give/remove * surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('emphasized text');\n            } else {\n              chunk = selected.text;\n            }\n\n            // transform selection and set the cursor into chunked text\n            if (content.substr(selected.start-1,1) === '_'\n                && content.substr(selected.end,1) === '_' ) {\n              e.setSelection(selected.start-1,selected.end+1);\n              e.replaceSelection(chunk);\n              cursor = selected.start-1;\n            } else {\n              e.replaceSelection('_'+chunk+'_');\n              cursor = selected.start+1;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },{\n          name: 'cmdHeading',\n          title: 'Heading',\n          hotkey: 'Ctrl+H',\n          icon: { glyph: 'glyphicon glyphicon-header', fa: 'fa fa-header', 'fa-3': 'icon-font' },\n          callback: function(e){\n            // Append/remove ### surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent(), pointer, prevChar;\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('heading text');\n            } else {\n              chunk = selected.text + '\\n';\n            }\n\n            // transform selection and set the cursor into chunked text\n            if ((pointer = 4, content.substr(selected.start-pointer,pointer) === '### ')\n                || (pointer = 3, content.substr(selected.start-pointer,pointer) === '###')) {\n              e.setSelection(selected.start-pointer,selected.end);\n              e.replaceSelection(chunk);\n              cursor = selected.start-pointer;\n            } else if (selected.start > 0 && (prevChar = content.substr(selected.start-1,1), !!prevChar && prevChar != '\\n')) {\n              e.replaceSelection('\\n\\n### '+chunk);\n              cursor = selected.start+6;\n            } else {\n              // Empty string before element\n              e.replaceSelection('### '+chunk);\n              cursor = selected.start+4;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        }]\n      },{\n        name: 'groupLink',\n        data: [{\n          name: 'cmdUrl',\n          title: 'URL/Link',\n          hotkey: 'Ctrl+L',\n          icon: { glyph: 'glyphicon glyphicon-link', fa: 'fa fa-link', 'fa-3': 'icon-link' },\n          callback: function(e){\n            // Give [] surround the selection and prepend the link\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent(), link;\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('enter link description here');\n            } else {\n              chunk = selected.text;\n            }\n\n            link = prompt(e.__localize('Insert Hyperlink'),'http://');\n\n            if (link !== null && link !== '' && link !== 'http://' && link.substr(0,4) === 'http') {\n              var sanitizedLink = $('<div>'+link+'</div>').text();\n\n              // transform selection and set the cursor into chunked text\n              e.replaceSelection('['+chunk+']('+sanitizedLink+')');\n              cursor = selected.start+1;\n\n              // Set the cursor\n              e.setSelection(cursor,cursor+chunk.length);\n            }\n          }\n        },{\n          name: 'cmdImage',\n          title: 'Image',\n          hotkey: 'Ctrl+G',\n          icon: { glyph: 'glyphicon glyphicon-picture', fa: 'fa fa-picture-o', 'fa-3': 'icon-picture' },\n          callback: function(e){\n            // Give ![] surround the selection and prepend the image link\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent(), link;\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('enter image description here');\n            } else {\n              chunk = selected.text;\n            }\n\n            link = prompt(e.__localize('Insert Image Hyperlink'),'http://');\n\n            if (link !== null && link !== '' && link !== 'http://' && link.substr(0,4) === 'http') {\n              var sanitizedLink = $('<div>'+link+'</div>').text();\n\n              // transform selection and set the cursor into chunked text\n              e.replaceSelection('!['+chunk+']('+sanitizedLink+' \"'+e.__localize('enter image title here')+'\")');\n              cursor = selected.start+2;\n\n              // Set the next tab\n              e.setNextTab(e.__localize('enter image title here'));\n\n              // Set the cursor\n              e.setSelection(cursor,cursor+chunk.length);\n            }\n          }\n        }]\n      },{\n        name: 'groupMisc',\n        data: [{\n          name: 'cmdList',\n          hotkey: 'Ctrl+U',\n          title: 'Unordered List',\n          icon: { glyph: 'glyphicon glyphicon-list', fa: 'fa fa-list', 'fa-3': 'icon-list-ul' },\n          callback: function(e){\n            // Prepend/Give - surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            // transform selection and set the cursor into chunked text\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('list text here');\n\n              e.replaceSelection('- '+chunk);\n              // Set the cursor\n              cursor = selected.start+2;\n            } else {\n              if (selected.text.indexOf('\\n') < 0) {\n                chunk = selected.text;\n\n                e.replaceSelection('- '+chunk);\n\n                // Set the cursor\n                cursor = selected.start+2;\n              } else {\n                var list = [];\n\n                list = selected.text.split('\\n');\n                chunk = list[0];\n\n                $.each(list,function(k,v) {\n                  list[k] = '- '+v;\n                });\n\n                e.replaceSelection('\\n\\n'+list.join('\\n'));\n\n                // Set the cursor\n                cursor = selected.start+4;\n              }\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },\n        {\n          name: 'cmdListO',\n          hotkey: 'Ctrl+O',\n          title: 'Ordered List',\n          icon: { glyph: 'glyphicon glyphicon-th-list', fa: 'fa fa-list-ol', 'fa-3': 'icon-list-ol' },\n          callback: function(e) {\n\n            // Prepend/Give - surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            // transform selection and set the cursor into chunked text\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('list text here');\n              e.replaceSelection('1. '+chunk);\n              // Set the cursor\n              cursor = selected.start+3;\n            } else {\n              if (selected.text.indexOf('\\n') < 0) {\n                chunk = selected.text;\n\n                e.replaceSelection('1. '+chunk);\n\n                // Set the cursor\n                cursor = selected.start+3;\n              } else {\n                var list = [];\n\n                list = selected.text.split('\\n');\n                chunk = list[0];\n\n                $.each(list,function(k,v) {\n                  list[k] = '1. '+v;\n                });\n\n                e.replaceSelection('\\n\\n'+list.join('\\n'));\n\n                // Set the cursor\n                cursor = selected.start+5;\n              }\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },\n        {\n          name: 'cmdCode',\n          hotkey: 'Ctrl+K',\n          title: 'Code',\n          icon: { glyph: 'glyphicon glyphicon-asterisk', fa: 'fa fa-code', 'fa-3': 'icon-code' },\n          callback: function(e) {\n            // Give/remove ** surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('code text here');\n            } else {\n              chunk = selected.text;\n            }\n\n            // transform selection and set the cursor into chunked text\n            if (content.substr(selected.start-4,4) === '```\\n'\n                && content.substr(selected.end,4) === '\\n```') {\n              e.setSelection(selected.start-4, selected.end+4);\n              e.replaceSelection(chunk);\n              cursor = selected.start-4;\n            } else if (content.substr(selected.start-1,1) === '`'\n                && content.substr(selected.end,1) === '`') {\n              e.setSelection(selected.start-1,selected.end+1);\n              e.replaceSelection(chunk);\n              cursor = selected.start-1;\n            } else if (content.indexOf('\\n') > -1) {\n              e.replaceSelection('```\\n'+chunk+'\\n```');\n              cursor = selected.start+4;\n            } else {\n              e.replaceSelection('`'+chunk+'`');\n              cursor = selected.start+1;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },\n        {\n          name: 'cmdQuote',\n          hotkey: 'Ctrl+Q',\n          title: 'Quote',\n          icon: { glyph: 'glyphicon glyphicon-comment', fa: 'fa fa-quote-left', 'fa-3': 'icon-quote-left' },\n          callback: function(e) {\n            // Prepend/Give - surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            // transform selection and set the cursor into chunked text\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('quote here');\n\n              e.replaceSelection('> '+chunk);\n\n              // Set the cursor\n              cursor = selected.start+2;\n            } else {\n              if (selected.text.indexOf('\\n') < 0) {\n                chunk = selected.text;\n\n                e.replaceSelection('> '+chunk);\n\n                // Set the cursor\n                cursor = selected.start+2;\n              } else {\n                var list = [];\n\n                list = selected.text.split('\\n');\n                chunk = list[0];\n\n                $.each(list,function(k,v) {\n                  list[k] = '> '+v;\n                });\n\n                e.replaceSelection('\\n\\n'+list.join('\\n'));\n\n                // Set the cursor\n                cursor = selected.start+4;\n              }\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        }]\n      },{\n        name: 'groupUtil',\n        data: [{\n          name: 'cmdPreview',\n          toggle: true,\n          hotkey: 'Ctrl+P',\n          title: 'Preview',\n          btnText: 'Preview',\n          btnClass: 'btn btn-primary btn-sm',\n          icon: { glyph: 'glyphicon glyphicon-search', fa: 'fa fa-search', 'fa-3': 'icon-search' },\n          callback: function(e){\n            // Check the preview mode and toggle based on this flag\n            var isPreview = e.$isPreview,content;\n\n            if (isPreview === false) {\n              // Give flag that tell the editor enter preview mode\n              e.showPreview();\n            } else {\n              e.hidePreview();\n            }\n          }\n        }]\n      }]\n    ],\n    additionalButtons:[], // Place to hook more buttons by code\n    reorderButtonGroups:[],\n    hiddenButtons:[], // Default hidden buttons\n    disabledButtons:[], // Default disabled buttons\n    footer: '',\n    fullscreen: {\n      enable: true,\n      icons: {\n        fullscreenOn: {\n          fa: 'fa fa-expand',\n          glyph: 'glyphicon glyphicon-fullscreen',\n          'fa-3': 'icon-resize-full'\n        },\n        fullscreenOff: {\n          fa: 'fa fa-compress',\n          glyph: 'glyphicon glyphicon-fullscreen',\n          'fa-3': 'icon-resize-small'\n        }\n      }\n    },\n\n    /* Events hook */\n    onShow: function (e) {},\n    onPreview: function (e) {},\n    onSave: function (e) {},\n    onBlur: function (e) {},\n    onFocus: function (e) {},\n    onChange: function(e) {},\n    onFullscreen: function(e) {},\n    onSelect: function (e) {}\n  };\n\n  $.fn.markdown.Constructor = Markdown;\n\n\n /* MARKDOWN NO CONFLICT\n  * ==================== */\n\n  $.fn.markdown.noConflict = function () {\n    $.fn.markdown = old;\n    return this;\n  };\n\n  /* MARKDOWN GLOBAL FUNCTION & DATA-API\n  * ==================================== */\n  var initMarkdown = function(el) {\n    var $this = el;\n\n    if ($this.data('markdown')) {\n      $this.data('markdown').showEditor();\n      return;\n    }\n\n    $this.markdown()\n  };\n\n  var blurNonFocused = function(e) {\n    var $activeElement = $(document.activeElement);\n\n    // Blur event\n    $(document).find('.md-editor').each(function(){\n      var $this            = $(this),\n          focused          = $activeElement.closest('.md-editor')[0] === this,\n          attachedMarkdown = $this.find('textarea').data('markdown') ||\n                             $this.find('div[data-provider=\"markdown-preview\"]').data('markdown');\n\n      if (attachedMarkdown && !focused) {\n        attachedMarkdown.blur();\n      }\n    })\n  };\n\n  $(document)\n    .on('click.markdown.data-api', '[data-provide=\"markdown-editable\"]', function (e) {\n      initMarkdown($(this));\n      e.preventDefault();\n    })\n    .on('click focusin', function (e) {\n      blurNonFocused(e);\n    })\n    .ready(function(){\n      $('textarea[data-provide=\"markdown\"]').each(function(){\n        initMarkdown($(this));\n      })\n    });\n\n}(window.jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/less/bootstrap-markdown.less",
    "content": "/**\n * Bootstrap-Markdown.less\n *\n * @author Taufan Aditya @taufanaditya\n * @copyright 2013-2015 Taufan Aditya\n */\n\n.md-editor {\n  display: block;\n  border: 1px solid @table-border-color;\n\n  > .md-header, .md-footer {\n    display: block;\n    padding: 6px 4px;\n    background: @panel-default-heading-bg;\n  }\n\n  > .md-header {\n    margin: 0;\n  }\n\n  > .md-preview {\n    background: @panel-bg;\n    border-top: 1px dashed @table-border-color;\n    border-bottom: 1px dashed @table-border-color;\n    min-height: 10px;\n    overflow: auto;\n  }\n\n  > textarea {\n    font-family: @font-family-monospace;\n    font-size: @font-size-base;\n    outline: 0;\n    outline: thin dotted  \\9; /* IE6-9 */\n    margin: 0;\n    display: block;\n    padding: 0;\n    width: 100%;\n    border: 0;\n    border-top: 1px dashed @table-border-color;\n    border-bottom: 1px dashed @table-border-color;\n    border-radius: 0;\n    box-shadow: none;\n    background: @input-bg-disabled;\n    &:focus {\n      box-shadow: none;\n      background: @input-bg;\n    }\n  }\n\n  // Hover state\n  @color: @input-border-focus;\n  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n  &.active {\n    border-color: @color;\n    outline: 0;\n    .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n  }\n\n  .md-controls {\n    float: right;\n    padding: 3px;\n\n    .md-control {\n      right: 5px;\n      color: #bebebe;\n      padding: 3px 3px 3px 10px;\n      &:hover {\n        color: #333;\n      }\n    }\n  }\n\n  // fullscreen mode styles\n  &.md-fullscreen-mode {\n    width: 100%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    left: 0;\n    z-index: 99999;\n    padding: 60px 30px 15px;\n    background: #fff !important;\n    border: 0 !important;\n\n    .md-footer {\n      display: none;\n    }\n\n    .md-input,\n    .md-preview {\n      margin: 0 auto !important;\n      height: 100% !important;\n      font-size: 20px !important;\n      padding: 20px !important;\n      color: #999;\n      line-height: 1.6em !important;\n      resize: none !important;\n      box-shadow: none !important;\n      background: #fff !important;\n      border: 0 !important;\n    }\n\n    .md-preview {\n      color: #333;\n      overflow: auto;\n    }\n\n    .md-input {\n      &:hover,\n      &:focus {\n        color: #333;\n        background: #fff !important;\n      }\n    }\n\n    .md-header {\n      background: none;\n      text-align: center;\n      position: fixed;\n      width: 100%;\n      top: 20px;\n    }\n\n    .btn-group {\n      float: none;\n    }\n\n    .btn {\n      border: 0;\n      background: none;\n      color: #b3b3b3;\n\n      &:hover,\n      &:focus,\n      &.active,\n      &:active {\n        box-shadow: none;\n        color: #333;\n      }\n    }\n\n    .md-fullscreen-controls {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      text-align: right;\n      z-index: 1002;\n      display: block;\n      a {\n        color: #b3b3b3;\n        clear: right;\n        margin: 10px;\n        width: 30px;\n        height: 30px;\n        text-align: center;\n\n        &:hover {\n          color: #333;\n          text-decoration: none;\n        }\n      }\n    }\n\n    .md-editor {\n      height: 100% !important;\n      position: relative;\n    }\n  }\n\n  .md-fullscreen-controls {\n    display: none;\n  }\n}\n\n.md-nooverflow {\n  overflow: hidden;\n  position: fixed;\n  width: 100%;    \n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/lib/markdown.js",
    "content": "// Released under MIT license\n// Copyright (c) 2009-2010 Dominic Baggott\n// Copyright (c) 2009-2010 Ash Berlin\n// Copyright (c) 2011 Christoph Dorn <christoph@christophdorn.com> (http://www.christophdorn.com)\n\n(function( expose ) {\n\n/**\n *  class Markdown\n *\n *  Markdown processing in Javascript done right. We have very particular views\n *  on what constitutes 'right' which include:\n *\n *  - produces well-formed HTML (this means that em and strong nesting is\n *    important)\n *\n *  - has an intermediate representation to allow processing of parsed data (We\n *    in fact have two, both as [JsonML]: a markdown tree and an HTML tree).\n *\n *  - is easily extensible to add new dialects without having to rewrite the\n *    entire parsing mechanics\n *\n *  - has a good test suite\n *\n *  This implementation fulfills all of these (except that the test suite could\n *  do with expanding to automatically run all the fixtures from other Markdown\n *  implementations.)\n *\n *  ##### Intermediate Representation\n *\n *  *TODO* Talk about this :) Its JsonML, but document the node names we use.\n *\n *  [JsonML]: http://jsonml.org/ \"JSON Markup Language\"\n **/\nvar Markdown = expose.Markdown = function Markdown(dialect) {\n  switch (typeof dialect) {\n    case \"undefined\":\n      this.dialect = Markdown.dialects.Gruber;\n      break;\n    case \"object\":\n      this.dialect = dialect;\n      break;\n    default:\n      if (dialect in Markdown.dialects) {\n        this.dialect = Markdown.dialects[dialect];\n      }\n      else {\n        throw new Error(\"Unknown Markdown dialect '\" + String(dialect) + \"'\");\n      }\n      break;\n  }\n  this.em_state = [];\n  this.strong_state = [];\n  this.debug_indent = \"\";\n};\n\n/**\n *  parse( markdown, [dialect] ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *\n *  Parse `markdown` and return a markdown document as a Markdown.JsonML tree.\n **/\nexpose.parse = function( source, dialect ) {\n  // dialect will default if undefined\n  var md = new Markdown( dialect );\n  return md.toTree( source );\n};\n\n/**\n *  toHTML( markdown, [dialect]  ) -> String\n *  toHTML( md_tree ) -> String\n *  - markdown (String): markdown string to parse\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Take markdown (either as a string or as a JsonML tree) and run it through\n *  [[toHTMLTree]] then turn it into a well-formated HTML fragment.\n **/\nexpose.toHTML = function toHTML( source , dialect , options ) {\n  var input = expose.toHTMLTree( source , dialect , options );\n\n  return expose.renderJsonML( input );\n};\n\n/**\n *  toHTMLTree( markdown, [dialect] ) -> JsonML\n *  toHTMLTree( md_tree ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Turn markdown into HTML, represented as a JsonML tree. If a string is given\n *  to this function, it is first parsed into a markdown tree by calling\n *  [[parse]].\n **/\nexpose.toHTMLTree = function toHTMLTree( input, dialect , options ) {\n  // convert string input to an MD tree\n  if ( typeof input ===\"string\" ) input = this.parse( input, dialect );\n\n  // Now convert the MD tree to an HTML tree\n\n  // remove references from the tree\n  var attrs = extract_attr( input ),\n      refs = {};\n\n  if ( attrs && attrs.references ) {\n    refs = attrs.references;\n  }\n\n  var html = convert_tree_to_html( input, refs , options );\n  merge_text_nodes( html );\n  return html;\n};\n\n// For Spidermonkey based engines\nfunction mk_block_toSource() {\n  return \"Markdown.mk_block( \" +\n          uneval(this.toString()) +\n          \", \" +\n          uneval(this.trailing) +\n          \", \" +\n          uneval(this.lineNumber) +\n          \" )\";\n}\n\n// node\nfunction mk_block_inspect() {\n  var util = require('util');\n  return \"Markdown.mk_block( \" +\n          util.inspect(this.toString()) +\n          \", \" +\n          util.inspect(this.trailing) +\n          \", \" +\n          util.inspect(this.lineNumber) +\n          \" )\";\n\n}\n\nvar mk_block = Markdown.mk_block = function(block, trail, line) {\n  // Be helpful for default case in tests.\n  if ( arguments.length == 1 ) trail = \"\\n\\n\";\n\n  var s = new String(block);\n  s.trailing = trail;\n  // To make it clear its not just a string\n  s.inspect = mk_block_inspect;\n  s.toSource = mk_block_toSource;\n\n  if (line != undefined)\n    s.lineNumber = line;\n\n  return s;\n};\n\nfunction count_lines( str ) {\n  var n = 0, i = -1;\n  while ( ( i = str.indexOf('\\n', i+1) ) !== -1) n++;\n  return n;\n}\n\n// Internal - split source into rough blocks\nMarkdown.prototype.split_blocks = function splitBlocks( input, startLine ) {\n  // [\\s\\S] matches _anything_ (newline or space)\n  var re = /([\\s\\S]+?)($|\\n(?:\\s*\\n|$)+)/g,\n      blocks = [],\n      m;\n\n  var line_no = 1;\n\n  if ( ( m = /^(\\s*\\n)/.exec(input) ) != null ) {\n    // skip (but count) leading blank lines\n    line_no += count_lines( m[0] );\n    re.lastIndex = m[0].length;\n  }\n\n  while ( ( m = re.exec(input) ) !== null ) {\n    blocks.push( mk_block( m[1], m[2], line_no ) );\n    line_no += count_lines( m[0] );\n  }\n\n  return blocks;\n};\n\n/**\n *  Markdown#processBlock( block, next ) -> undefined | [ JsonML, ... ]\n *  - block (String): the block to process\n *  - next (Array): the following blocks\n *\n * Process `block` and return an array of JsonML nodes representing `block`.\n *\n * It does this by asking each block level function in the dialect to process\n * the block until one can. Succesful handling is indicated by returning an\n * array (with zero or more JsonML nodes), failure by a false value.\n *\n * Blocks handlers are responsible for calling [[Markdown#processInline]]\n * themselves as appropriate.\n *\n * If the blocks were split incorrectly or adjacent blocks need collapsing you\n * can adjust `next` in place using shift/splice etc.\n *\n * If any of this default behaviour is not right for the dialect, you can\n * define a `__call__` method on the dialect that will get invoked to handle\n * the block processing.\n */\nMarkdown.prototype.processBlock = function processBlock( block, next ) {\n  var cbs = this.dialect.block,\n      ord = cbs.__order__;\n\n  if ( \"__call__\" in cbs ) {\n    return cbs.__call__.call(this, block, next);\n  }\n\n  for ( var i = 0; i < ord.length; i++ ) {\n    //D:this.debug( \"Testing\", ord[i] );\n    var res = cbs[ ord[i] ].call( this, block, next );\n    if ( res ) {\n      //D:this.debug(\"  matched\");\n      if ( !isArray(res) || ( res.length > 0 && !( isArray(res[0]) ) ) )\n        this.debug(ord[i], \"didn't return a proper array\");\n      //D:this.debug( \"\" );\n      return res;\n    }\n  }\n\n  // Uhoh! no match! Should we throw an error?\n  return [];\n};\n\nMarkdown.prototype.processInline = function processInline( block ) {\n  return this.dialect.inline.__call__.call( this, String( block ) );\n};\n\n/**\n *  Markdown#toTree( source ) -> JsonML\n *  - source (String): markdown source to parse\n *\n *  Parse `source` into a JsonML tree representing the markdown document.\n **/\n// custom_tree means set this.tree to `custom_tree` and restore old value on return\nMarkdown.prototype.toTree = function toTree( source, custom_root ) {\n  var blocks = source instanceof Array ? source : this.split_blocks( source );\n\n  // Make tree a member variable so its easier to mess with in extensions\n  var old_tree = this.tree;\n  try {\n    this.tree = custom_root || this.tree || [ \"markdown\" ];\n\n    blocks:\n    while ( blocks.length ) {\n      var b = this.processBlock( blocks.shift(), blocks );\n\n      // Reference blocks and the like won't return any content\n      if ( !b.length ) continue blocks;\n\n      this.tree.push.apply( this.tree, b );\n    }\n    return this.tree;\n  }\n  finally {\n    if ( custom_root ) {\n      this.tree = old_tree;\n    }\n  }\n};\n\n// Noop by default\nMarkdown.prototype.debug = function () {\n  var args = Array.prototype.slice.call( arguments);\n  args.unshift(this.debug_indent);\n  if (typeof print !== \"undefined\")\n      print.apply( print, args );\n  if (typeof console !== \"undefined\" && typeof console.log !== \"undefined\")\n      console.log.apply( null, args );\n}\n\nMarkdown.prototype.loop_re_over_block = function( re, block, cb ) {\n  // Dont use /g regexps with this\n  var m,\n      b = block.valueOf();\n\n  while ( b.length && (m = re.exec(b) ) != null) {\n    b = b.substr( m[0].length );\n    cb.call(this, m);\n  }\n  return b;\n};\n\n/**\n * Markdown.dialects\n *\n * Namespace of built-in dialects.\n **/\nMarkdown.dialects = {};\n\n/**\n * Markdown.dialects.Gruber\n *\n * The default dialect that follows the rules set out by John Gruber's\n * markdown.pl as closely as possible. Well actually we follow the behaviour of\n * that script which in some places is not exactly what the syntax web page\n * says.\n **/\nMarkdown.dialects.Gruber = {\n  block: {\n    atxHeader: function atxHeader( block, next ) {\n      var m = block.match( /^(#{1,6})\\s*(.*?)\\s*#*\\s*(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var header = [ \"header\", { level: m[ 1 ].length } ];\n      Array.prototype.push.apply(header, this.processInline(m[ 2 ]));\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    setextHeader: function setextHeader( block, next ) {\n      var m = block.match( /^(.*)\\n([-=])\\2\\2+(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var level = ( m[ 2 ] === \"=\" ) ? 1 : 2;\n      var header = [ \"header\", { level : level }, m[ 1 ] ];\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    code: function code( block, next ) {\n      // |    Foo\n      // |bar\n      // should be a code block followed by a paragraph. Fun\n      //\n      // There might also be adjacent code block to merge.\n\n      var ret = [],\n          re = /^(?: {0,3}\\t| {4})(.*)\\n?/,\n          lines;\n\n      // 4 spaces + content\n      if ( !block.match( re ) ) return undefined;\n\n      block_search:\n      do {\n        // Now pull out the rest of the lines\n        var b = this.loop_re_over_block(\n                  re, block.valueOf(), function( m ) { ret.push( m[1] ); } );\n\n        if (b.length) {\n          // Case alluded to in first comment. push it back on as a new block\n          next.unshift( mk_block(b, block.trailing) );\n          break block_search;\n        }\n        else if (next.length) {\n          // Check the next block - it might be code too\n          if ( !next[0].match( re ) ) break block_search;\n\n          // Pull how how many blanks lines follow - minus two to account for .join\n          ret.push ( block.trailing.replace(/[^\\n]/g, '').substring(2) );\n\n          block = next.shift();\n        }\n        else {\n          break block_search;\n        }\n      } while (true);\n\n      return [ [ \"code_block\", ret.join(\"\\n\") ] ];\n    },\n\n    horizRule: function horizRule( block, next ) {\n      // this needs to find any hr in the block to handle abutting blocks\n      var m = block.match( /^(?:([\\s\\S]*?)\\n)?[ \\t]*([-_*])(?:[ \\t]*\\2){2,}[ \\t]*(?:\\n([\\s\\S]*))?$/ );\n\n      if ( !m ) {\n        return undefined;\n      }\n\n      var jsonml = [ [ \"hr\" ] ];\n\n      // if there's a leading abutting block, process it\n      if ( m[ 1 ] ) {\n        jsonml.unshift.apply( jsonml, this.processBlock( m[ 1 ], [] ) );\n      }\n\n      // if there's a trailing abutting block, stick it into next\n      if ( m[ 3 ] ) {\n        next.unshift( mk_block( m[ 3 ] ) );\n      }\n\n      return jsonml;\n    },\n\n    // There are two types of lists. Tight and loose. Tight lists have no whitespace\n    // between the items (and result in text just in the <li>) and loose lists,\n    // which have an empty line between list items, resulting in (one or more)\n    // paragraphs inside the <li>.\n    //\n    // There are all sorts weird edge cases about the original markdown.pl's\n    // handling of lists:\n    //\n    // * Nested lists are supposed to be indented by four chars per level. But\n    //   if they aren't, you can get a nested list by indenting by less than\n    //   four so long as the indent doesn't match an indent of an existing list\n    //   item in the 'nest stack'.\n    //\n    // * The type of the list (bullet or number) is controlled just by the\n    //    first item at the indent. Subsequent changes are ignored unless they\n    //    are for nested lists\n    //\n    lists: (function( ) {\n      // Use a closure to hide a few variables.\n      var any_list = \"[*+-]|\\\\d+\\\\.\",\n          bullet_list = /[*+-]/,\n          number_list = /\\d+\\./,\n          // Capture leading indent as it matters for determining nested lists.\n          is_list_re = new RegExp( \"^( {0,3})(\" + any_list + \")[ \\t]+\" ),\n          indent_re = \"(?: {0,3}\\\\t| {4})\";\n\n      // TODO: Cache this regexp for certain depths.\n      // Create a regexp suitable for matching an li for a given stack depth\n      function regex_for_depth( depth ) {\n\n        return new RegExp(\n          // m[1] = indent, m[2] = list_type\n          \"(?:^(\" + indent_re + \"{0,\" + depth + \"} {0,3})(\" + any_list + \")\\\\s+)|\" +\n          // m[3] = cont\n          \"(^\" + indent_re + \"{0,\" + (depth-1) + \"}[ ]{0,4})\"\n        );\n      }\n      function expand_tab( input ) {\n        return input.replace( / {0,3}\\t/g, \"    \" );\n      }\n\n      // Add inline content `inline` to `li`. inline comes from processInline\n      // so is an array of content\n      function add(li, loose, inline, nl) {\n        if (loose) {\n          li.push( [ \"para\" ].concat(inline) );\n          return;\n        }\n        // Hmmm, should this be any block level element or just paras?\n        var add_to = li[li.length -1] instanceof Array && li[li.length - 1][0] == \"para\"\n                   ? li[li.length -1]\n                   : li;\n\n        // If there is already some content in this list, add the new line in\n        if (nl && li.length > 1) inline.unshift(nl);\n\n        for (var i=0; i < inline.length; i++) {\n          var what = inline[i],\n              is_str = typeof what == \"string\";\n          if (is_str && add_to.length > 1 && typeof add_to[add_to.length-1] == \"string\" ) {\n            add_to[ add_to.length-1 ] += what;\n          }\n          else {\n            add_to.push( what );\n          }\n        }\n      }\n\n      // contained means have an indent greater than the current one. On\n      // *every* line in the block\n      function get_contained_blocks( depth, blocks ) {\n\n        var re = new RegExp( \"^(\" + indent_re + \"{\" + depth + \"}.*?\\\\n?)*$\" ),\n            replace = new RegExp(\"^\" + indent_re + \"{\" + depth + \"}\", \"gm\"),\n            ret = [];\n\n        while ( blocks.length > 0 ) {\n          if ( re.exec( blocks[0] ) ) {\n            var b = blocks.shift(),\n                // Now remove that indent\n                x = b.replace( replace, \"\");\n\n            ret.push( mk_block( x, b.trailing, b.lineNumber ) );\n          }\n          break;\n        }\n        return ret;\n      }\n\n      // passed to stack.forEach to turn list items up the stack into paras\n      function paragraphify(s, i, stack) {\n        var list = s.list;\n        var last_li = list[list.length-1];\n\n        if (last_li[1] instanceof Array && last_li[1][0] == \"para\") {\n          return;\n        }\n        if (i+1 == stack.length) {\n          // Last stack frame\n          // Keep the same array, but replace the contents\n          last_li.push( [\"para\"].concat( last_li.splice(1) ) );\n        }\n        else {\n          var sublist = last_li.pop();\n          last_li.push( [\"para\"].concat( last_li.splice(1) ), sublist );\n        }\n      }\n\n      // The matcher function\n      return function( block, next ) {\n        var m = block.match( is_list_re );\n        if ( !m ) return undefined;\n\n        function make_list( m ) {\n          var list = bullet_list.exec( m[2] )\n                   ? [\"bulletlist\"]\n                   : [\"numberlist\"];\n\n          stack.push( { list: list, indent: m[1] } );\n          return list;\n        }\n\n\n        var stack = [], // Stack of lists for nesting.\n            list = make_list( m ),\n            last_li,\n            loose = false,\n            ret = [ stack[0].list ],\n            i;\n\n        // Loop to search over block looking for inner block elements and loose lists\n        loose_search:\n        while( true ) {\n          // Split into lines preserving new lines at end of line\n          var lines = block.split( /(?=\\n)/ );\n\n          // We have to grab all lines for a li and call processInline on them\n          // once as there are some inline things that can span lines.\n          var li_accumulate = \"\";\n\n          // Loop over the lines in this block looking for tight lists.\n          tight_search:\n          for (var line_no=0; line_no < lines.length; line_no++) {\n            var nl = \"\",\n                l = lines[line_no].replace(/^\\n/, function(n) { nl = n; return \"\"; });\n\n            // TODO: really should cache this\n            var line_re = regex_for_depth( stack.length );\n\n            m = l.match( line_re );\n            //print( \"line:\", uneval(l), \"\\nline match:\", uneval(m) );\n\n            // We have a list item\n            if ( m[1] !== undefined ) {\n              // Process the previous list item, if any\n              if ( li_accumulate.length ) {\n                add( last_li, loose, this.processInline( li_accumulate ), nl );\n                // Loose mode will have been dealt with. Reset it\n                loose = false;\n                li_accumulate = \"\";\n              }\n\n              m[1] = expand_tab( m[1] );\n              var wanted_depth = Math.floor(m[1].length/4)+1;\n              //print( \"want:\", wanted_depth, \"stack:\", stack.length);\n              if ( wanted_depth > stack.length ) {\n                // Deep enough for a nested list outright\n                //print ( \"new nested list\" );\n                list = make_list( m );\n                last_li.push( list );\n                last_li = list[1] = [ \"listitem\" ];\n              }\n              else {\n                // We aren't deep enough to be strictly a new level. This is\n                // where Md.pl goes nuts. If the indent matches a level in the\n                // stack, put it there, else put it one deeper then the\n                // wanted_depth deserves.\n                var found = false;\n                for (i = 0; i < stack.length; i++) {\n                  if ( stack[ i ].indent != m[1] ) continue;\n                  list = stack[ i ].list;\n                  stack.splice( i+1 );\n                  found = true;\n                  break;\n                }\n\n                if (!found) {\n                  //print(\"not found. l:\", uneval(l));\n                  wanted_depth++;\n                  if (wanted_depth <= stack.length) {\n                    stack.splice(wanted_depth);\n                    //print(\"Desired depth now\", wanted_depth, \"stack:\", stack.length);\n                    list = stack[wanted_depth-1].list;\n                    //print(\"list:\", uneval(list) );\n                  }\n                  else {\n                    //print (\"made new stack for messy indent\");\n                    list = make_list(m);\n                    last_li.push(list);\n                  }\n                }\n\n                //print( uneval(list), \"last\", list === stack[stack.length-1].list );\n                last_li = [ \"listitem\" ];\n                list.push(last_li);\n              } // end depth of shenegains\n              nl = \"\";\n            }\n\n            // Add content\n            if (l.length > m[0].length) {\n              li_accumulate += nl + l.substr( m[0].length );\n            }\n          } // tight_search\n\n          if ( li_accumulate.length ) {\n            add( last_li, loose, this.processInline( li_accumulate ), nl );\n            // Loose mode will have been dealt with. Reset it\n            loose = false;\n            li_accumulate = \"\";\n          }\n\n          // Look at the next block - we might have a loose list. Or an extra\n          // paragraph for the current li\n          var contained = get_contained_blocks( stack.length, next );\n\n          // Deal with code blocks or properly nested lists\n          if (contained.length > 0) {\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            last_li.push.apply( last_li, this.toTree( contained, [] ) );\n          }\n\n          var next_block = next[0] && next[0].valueOf() || \"\";\n\n          if ( next_block.match(is_list_re) || next_block.match( /^ / ) ) {\n            block = next.shift();\n\n            // Check for an HR following a list: features/lists/hr_abutting\n            var hr = this.dialect.block.horizRule( block, next );\n\n            if (hr) {\n              ret.push.apply(ret, hr);\n              break;\n            }\n\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            loose = true;\n            continue loose_search;\n          }\n          break;\n        } // loose_search\n\n        return ret;\n      };\n    })(),\n\n    blockquote: function blockquote( block, next ) {\n      if ( !block.match( /^>/m ) )\n        return undefined;\n\n      var jsonml = [];\n\n      // separate out the leading abutting block, if any\n      if ( block[ 0 ] != \">\" ) {\n        var lines = block.split( /\\n/ ),\n            prev = [];\n\n        // keep shifting lines until you find a crotchet\n        while ( lines.length && lines[ 0 ][ 0 ] != \">\" ) {\n            prev.push( lines.shift() );\n        }\n\n        // reassemble!\n        block = lines.join( \"\\n\" );\n        jsonml.push.apply( jsonml, this.processBlock( prev.join( \"\\n\" ), [] ) );\n      }\n\n      // if the next block is also a blockquote merge it in\n      while ( next.length && next[ 0 ][ 0 ] == \">\" ) {\n        var b = next.shift();\n        block = new String(block + block.trailing + b);\n        block.trailing = b.trailing;\n      }\n\n      // Strip off the leading \"> \" and re-process as a block.\n      var input = block.replace( /^> ?/gm, '' ),\n          old_tree = this.tree;\n      jsonml.push( this.toTree( input, [ \"blockquote\" ] ) );\n\n      return jsonml;\n    },\n\n    referenceDefn: function referenceDefn( block, next) {\n      var re = /^\\s*\\[(.*?)\\]:\\s*(\\S+)(?:\\s+(?:(['\"])(.*?)\\3|\\((.*?)\\)))?\\n?/;\n      // interesting matches are [ , ref_id, url, , title, title ]\n\n      if ( !block.match(re) )\n        return undefined;\n\n      // make an attribute node if it doesn't exist\n      if ( !extract_attr( this.tree ) ) {\n        this.tree.splice( 1, 0, {} );\n      }\n\n      var attrs = extract_attr( this.tree );\n\n      // make a references hash if it doesn't exist\n      if ( attrs.references === undefined ) {\n        attrs.references = {};\n      }\n\n      var b = this.loop_re_over_block(re, block, function( m ) {\n\n        if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        var ref = attrs.references[ m[1].toLowerCase() ] = {\n          href: m[2]\n        };\n\n        if (m[4] !== undefined)\n          ref.title = m[4];\n        else if (m[5] !== undefined)\n          ref.title = m[5];\n\n      } );\n\n      if (b.length)\n        next.unshift( mk_block( b, block.trailing ) );\n\n      return [];\n    },\n\n    para: function para( block, next ) {\n      // everything's a para!\n      return [ [\"para\"].concat( this.processInline( block ) ) ];\n    }\n  }\n};\n\nMarkdown.dialects.Gruber.inline = {\n\n    __oneElement__: function oneElement( text, patterns_or_re, previous_nodes ) {\n      var m,\n          res,\n          lastIndex = 0;\n\n      patterns_or_re = patterns_or_re || this.dialect.inline.__patterns__;\n      var re = new RegExp( \"([\\\\s\\\\S]*?)(\" + (patterns_or_re.source || patterns_or_re) + \")\" );\n\n      m = re.exec( text );\n      if (!m) {\n        // Just boring text\n        return [ text.length, text ];\n      }\n      else if ( m[1] ) {\n        // Some un-interesting text matched. Return that first\n        return [ m[1].length, m[1] ];\n      }\n\n      var res;\n      if ( m[2] in this.dialect.inline ) {\n        res = this.dialect.inline[ m[2] ].call(\n                  this,\n                  text.substr( m.index ), m, previous_nodes || [] );\n      }\n      // Default for now to make dev easier. just slurp special and output it.\n      res = res || [ m[2].length, m[2] ];\n      return res;\n    },\n\n    __call__: function inline( text, patterns ) {\n\n      var out = [],\n          res;\n\n      function add(x) {\n        //D:self.debug(\"  adding output\", uneval(x));\n        if (typeof x == \"string\" && typeof out[out.length-1] == \"string\")\n          out[ out.length-1 ] += x;\n        else\n          out.push(x);\n      }\n\n      while ( text.length > 0 ) {\n        res = this.dialect.inline.__oneElement__.call(this, text, patterns, out );\n        text = text.substr( res.shift() );\n        forEach(res, add )\n      }\n\n      return out;\n    },\n\n    // These characters are intersting elsewhere, so have rules for them so that\n    // chunks of plain text blocks don't include them\n    \"]\": function () {},\n    \"}\": function () {},\n\n    \"\\\\\": function escaped( text ) {\n      // [ length of input processed, node/children to add... ]\n      // Only esacape: \\ ` * _ { } [ ] ( ) # * + - . !\n      if ( text.match( /^\\\\[\\\\`\\*_{}\\[\\]()#\\+.!\\-]/ ) )\n        return [ 2, text[1] ];\n      else\n        // Not an esacpe\n        return [ 1, \"\\\\\" ];\n    },\n\n    \"![\": function image( text ) {\n\n      // Unlike images, alt text is plain text only. no other elements are\n      // allowed in there\n\n      // ![Alt text](/path/to/img.jpg \"Optional title\")\n      //      1          2            3       4         <--- captures\n      var m = text.match( /^!\\[(.*?)\\][ \\t]*\\([ \\t]*(\\S*)(?:[ \\t]+([\"'])(.*?)\\3)?[ \\t]*\\)/ );\n\n      if ( m ) {\n        if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        m[2] = this.dialect.inline.__call__.call( this, m[2], /\\\\/ )[0];\n\n        var attrs = { alt: m[1], href: m[2] || \"\" };\n        if ( m[4] !== undefined)\n          attrs.title = m[4];\n\n        return [ m[0].length, [ \"img\", attrs ] ];\n      }\n\n      // ![Alt text][id]\n      m = text.match( /^!\\[(.*?)\\][ \\t]*\\[(.*?)\\]/ );\n\n      if ( m ) {\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion\n        return [ m[0].length, [ \"img_ref\", { alt: m[1], ref: m[2].toLowerCase(), original: m[0] } ] ];\n      }\n\n      // Just consume the '!['\n      return [ 2, \"![\" ];\n    },\n\n    \"[\": function link( text ) {\n\n      var orig = String(text);\n      // Inline content is possible inside `link text`\n      var res = Markdown.DialectHelpers.inline_until_char.call( this, text.substr(1), ']' );\n\n      // No closing ']' found. Just consume the [\n      if ( !res ) return [ 1, '[' ];\n\n      var consumed = 1 + res[ 0 ],\n          children = res[ 1 ],\n          link,\n          attrs;\n\n      // At this point the first [...] has been parsed. See what follows to find\n      // out which kind of link we are (reference or direct url)\n      text = text.substr( consumed );\n\n      // [link text](/path/to/img.jpg \"Optional title\")\n      //                 1            2       3         <--- captures\n      // This will capture up to the last paren in the block. We then pull\n      // back based on if there a matching ones in the url\n      //    ([here](/url/(test))\n      // The parens have to be balanced\n      var m = text.match( /^\\s*\\([ \\t]*(\\S+)(?:[ \\t]+([\"'])(.*?)\\2)?[ \\t]*\\)/ );\n      if ( m ) {\n        var url = m[1];\n        consumed += m[0].length;\n\n        if ( url && url[0] == '<' && url[url.length-1] == '>' )\n          url = url.substring( 1, url.length - 1 );\n\n        // If there is a title we don't have to worry about parens in the url\n        if ( !m[3] ) {\n          var open_parens = 1; // One open that isn't in the capture\n          for (var len = 0; len < url.length; len++) {\n            switch ( url[len] ) {\n            case '(':\n              open_parens++;\n              break;\n            case ')':\n              if ( --open_parens == 0) {\n                consumed -= url.length - len;\n                url = url.substring(0, len);\n              }\n              break;\n            }\n          }\n        }\n\n        // Process escapes only\n        url = this.dialect.inline.__call__.call( this, url, /\\\\/ )[0];\n\n        attrs = { href: url || \"\" };\n        if ( m[3] !== undefined)\n          attrs.title = m[3];\n\n        link = [ \"link\", attrs ].concat( children );\n        return [ consumed, link ];\n      }\n\n      // [Alt text][id]\n      // [Alt text] [id]\n      m = text.match( /^\\s*\\[(.*?)\\]/ );\n\n      if ( m ) {\n\n        consumed += m[ 0 ].length;\n\n        // [links][] uses links as its reference\n        attrs = { ref: ( m[ 1 ] || String(children) ).toLowerCase(),  original: orig.substr( 0, consumed ) };\n\n        link = [ \"link_ref\", attrs ].concat( children );\n\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion.\n        // Store the original so that conversion can revert if the ref isn't found.\n        return [ consumed, link ];\n      }\n\n      // [id]\n      // Only if id is plain (no formatting.)\n      if ( children.length == 1 && typeof children[0] == \"string\" ) {\n\n        attrs = { ref: children[0].toLowerCase(),  original: orig.substr( 0, consumed ) };\n        link = [ \"link_ref\", attrs, children[0] ];\n        return [ consumed, link ];\n      }\n\n      // Just consume the '['\n      return [ 1, \"[\" ];\n    },\n\n\n    \"<\": function autoLink( text ) {\n      var m;\n\n      if ( ( m = text.match( /^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\\.[a-zA-Z]+))>/ ) ) != null ) {\n        if ( m[3] ) {\n          return [ m[0].length, [ \"link\", { href: \"mailto:\" + m[3] }, m[3] ] ];\n\n        }\n        else if ( m[2] == \"mailto\" ) {\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1].substr(\"mailto:\".length ) ] ];\n        }\n        else\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1] ] ];\n      }\n\n      return [ 1, \"<\" ];\n    },\n\n    \"`\": function inlineCode( text ) {\n      // Inline code block. as many backticks as you like to start it\n      // Always skip over the opening ticks.\n      var m = text.match( /(`+)(([\\s\\S]*?)\\1)/ );\n\n      if ( m && m[2] )\n        return [ m[1].length + m[2].length, [ \"inlinecode\", m[3] ] ];\n      else {\n        // TODO: No matching end code found - warn!\n        return [ 1, \"`\" ];\n      }\n    },\n\n    \"  \\n\": function lineBreak( text ) {\n      return [ 3, [ \"linebreak\" ] ];\n    }\n\n};\n\n// Meta Helper/generator method for em and strong handling\nfunction strong_em( tag, md ) {\n\n  var state_slot = tag + \"_state\",\n      other_slot = tag == \"strong\" ? \"em_state\" : \"strong_state\";\n\n  function CloseTag(len) {\n    this.len_after = len;\n    this.name = \"close_\" + md;\n  }\n\n  return function ( text, orig_match ) {\n\n    if (this[state_slot][0] == md) {\n      // Most recent em is of this type\n      //D:this.debug(\"closing\", md);\n      this[state_slot].shift();\n\n      // \"Consume\" everything to go back to the recrusion in the else-block below\n      return[ text.length, new CloseTag(text.length-md.length) ];\n    }\n    else {\n      // Store a clone of the em/strong states\n      var other = this[other_slot].slice(),\n          state = this[state_slot].slice();\n\n      this[state_slot].unshift(md);\n\n      //D:this.debug_indent += \"  \";\n\n      // Recurse\n      var res = this.processInline( text.substr( md.length ) );\n      //D:this.debug_indent = this.debug_indent.substr(2);\n\n      var last = res[res.length - 1];\n\n      //D:this.debug(\"processInline from\", tag + \": \", uneval( res ) );\n\n      var check = this[state_slot].shift();\n      if (last instanceof CloseTag) {\n        res.pop();\n        // We matched! Huzzah.\n        var consumed = text.length - last.len_after;\n        return [ consumed, [ tag ].concat(res) ];\n      }\n      else {\n        // Restore the state of the other kind. We might have mistakenly closed it.\n        this[other_slot] = other;\n        this[state_slot] = state;\n\n        // We can't reuse the processed result as it could have wrong parsing contexts in it.\n        return [ md.length, md ];\n      }\n    }\n  }; // End returned function\n}\n\nMarkdown.dialects.Gruber.inline[\"**\"] = strong_em(\"strong\", \"**\");\nMarkdown.dialects.Gruber.inline[\"__\"] = strong_em(\"strong\", \"__\");\nMarkdown.dialects.Gruber.inline[\"*\"]  = strong_em(\"em\", \"*\");\nMarkdown.dialects.Gruber.inline[\"_\"]  = strong_em(\"em\", \"_\");\n\n\n// Build default order from insertion order.\nMarkdown.buildBlockOrder = function(d) {\n  var ord = [];\n  for ( var i in d ) {\n    if ( i == \"__order__\" || i == \"__call__\" ) continue;\n    ord.push( i );\n  }\n  d.__order__ = ord;\n};\n\n// Build patterns for inline matcher\nMarkdown.buildInlinePatterns = function(d) {\n  var patterns = [];\n\n  for ( var i in d ) {\n    // __foo__ is reserved and not a pattern\n    if ( i.match( /^__.*__$/) ) continue;\n    var l = i.replace( /([\\\\.*+?|()\\[\\]{}])/g, \"\\\\$1\" )\n             .replace( /\\n/, \"\\\\n\" );\n    patterns.push( i.length == 1 ? l : \"(?:\" + l + \")\" );\n  }\n\n  patterns = patterns.join(\"|\");\n  d.__patterns__ = patterns;\n  //print(\"patterns:\", uneval( patterns ) );\n\n  var fn = d.__call__;\n  d.__call__ = function(text, pattern) {\n    if (pattern != undefined) {\n      return fn.call(this, text, pattern);\n    }\n    else\n    {\n      return fn.call(this, text, patterns);\n    }\n  };\n};\n\nMarkdown.DialectHelpers = {};\nMarkdown.DialectHelpers.inline_until_char = function( text, want ) {\n  var consumed = 0,\n      nodes = [];\n\n  while ( true ) {\n    if ( text[ consumed ] == want ) {\n      // Found the character we were looking for\n      consumed++;\n      return [ consumed, nodes ];\n    }\n\n    if ( consumed >= text.length ) {\n      // No closing char found. Abort.\n      return null;\n    }\n\n    var res = this.dialect.inline.__oneElement__.call(this, text.substr( consumed ) );\n    consumed += res[ 0 ];\n    // Add any returned nodes.\n    nodes.push.apply( nodes, res.slice( 1 ) );\n  }\n}\n\n// Helper function to make sub-classing a dialect easier\nMarkdown.subclassDialect = function( d ) {\n  function Block() {}\n  Block.prototype = d.block;\n  function Inline() {}\n  Inline.prototype = d.inline;\n\n  return { block: new Block(), inline: new Inline() };\n};\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Gruber.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Gruber.inline );\n\nMarkdown.dialects.Maruku = Markdown.subclassDialect( Markdown.dialects.Gruber );\n\nMarkdown.dialects.Maruku.processMetaHash = function processMetaHash( meta_string ) {\n  var meta = split_meta_hash( meta_string ),\n      attr = {};\n\n  for ( var i = 0; i < meta.length; ++i ) {\n    // id: #foo\n    if ( /^#/.test( meta[ i ] ) ) {\n      attr.id = meta[ i ].substring( 1 );\n    }\n    // class: .foo\n    else if ( /^\\./.test( meta[ i ] ) ) {\n      // if class already exists, append the new one\n      if ( attr['class'] ) {\n        attr['class'] = attr['class'] + meta[ i ].replace( /./, \" \" );\n      }\n      else {\n        attr['class'] = meta[ i ].substring( 1 );\n      }\n    }\n    // attribute: foo=bar\n    else if ( /\\=/.test( meta[ i ] ) ) {\n      var s = meta[ i ].split( /\\=/ );\n      attr[ s[ 0 ] ] = s[ 1 ];\n    }\n  }\n\n  return attr;\n}\n\nfunction split_meta_hash( meta_string ) {\n  var meta = meta_string.split( \"\" ),\n      parts = [ \"\" ],\n      in_quotes = false;\n\n  while ( meta.length ) {\n    var letter = meta.shift();\n    switch ( letter ) {\n      case \" \" :\n        // if we're in a quoted section, keep it\n        if ( in_quotes ) {\n          parts[ parts.length - 1 ] += letter;\n        }\n        // otherwise make a new part\n        else {\n          parts.push( \"\" );\n        }\n        break;\n      case \"'\" :\n      case '\"' :\n        // reverse the quotes and move straight on\n        in_quotes = !in_quotes;\n        break;\n      case \"\\\\\" :\n        // shift off the next letter to be used straight away.\n        // it was escaped so we'll keep it whatever it is\n        letter = meta.shift();\n      default :\n        parts[ parts.length - 1 ] += letter;\n        break;\n    }\n  }\n\n  return parts;\n}\n\nMarkdown.dialects.Maruku.block.document_meta = function document_meta( block, next ) {\n  // we're only interested in the first block\n  if ( block.lineNumber > 1 ) return undefined;\n\n  // document_meta blocks consist of one or more lines of `Key: Value\\n`\n  if ( ! block.match( /^(?:\\w+:.*\\n)*\\w+:.*$/ ) ) return undefined;\n\n  // make an attribute node if it doesn't exist\n  if ( !extract_attr( this.tree ) ) {\n    this.tree.splice( 1, 0, {} );\n  }\n\n  var pairs = block.split( /\\n/ );\n  for ( p in pairs ) {\n    var m = pairs[ p ].match( /(\\w+):\\s*(.*)$/ ),\n        key = m[ 1 ].toLowerCase(),\n        value = m[ 2 ];\n\n    this.tree[ 1 ][ key ] = value;\n  }\n\n  // document_meta produces no content!\n  return [];\n};\n\nMarkdown.dialects.Maruku.block.block_meta = function block_meta( block, next ) {\n  // check if the last line of the block is an meta hash\n  var m = block.match( /(^|\\n) {0,3}\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}$/ );\n  if ( !m ) return undefined;\n\n  // process the meta hash\n  var attr = this.dialect.processMetaHash( m[ 2 ] );\n\n  var hash;\n\n  // if we matched ^ then we need to apply meta to the previous block\n  if ( m[ 1 ] === \"\" ) {\n    var node = this.tree[ this.tree.length - 1 ];\n    hash = extract_attr( node );\n\n    // if the node is a string (rather than JsonML), bail\n    if ( typeof node === \"string\" ) return undefined;\n\n    // create the attribute hash if it doesn't exist\n    if ( !hash ) {\n      hash = {};\n      node.splice( 1, 0, hash );\n    }\n\n    // add the attributes in\n    for ( a in attr ) {\n      hash[ a ] = attr[ a ];\n    }\n\n    // return nothing so the meta hash is removed\n    return [];\n  }\n\n  // pull the meta hash off the block and process what's left\n  var b = block.replace( /\\n.*$/, \"\" ),\n      result = this.processBlock( b, [] );\n\n  // get or make the attributes hash\n  hash = extract_attr( result[ 0 ] );\n  if ( !hash ) {\n    hash = {};\n    result[ 0 ].splice( 1, 0, hash );\n  }\n\n  // attach the attributes to the block\n  for ( a in attr ) {\n    hash[ a ] = attr[ a ];\n  }\n\n  return result;\n};\n\nMarkdown.dialects.Maruku.block.definition_list = function definition_list( block, next ) {\n  // one or more terms followed by one or more definitions, in a single block\n  var tight = /^((?:[^\\s:].*\\n)+):\\s+([\\s\\S]+)$/,\n      list = [ \"dl\" ],\n      i;\n\n  // see if we're dealing with a tight or loose block\n  if ( ( m = block.match( tight ) ) ) {\n    // pull subsequent tight DL blocks out of `next`\n    var blocks = [ block ];\n    while ( next.length && tight.exec( next[ 0 ] ) ) {\n      blocks.push( next.shift() );\n    }\n\n    for ( var b = 0; b < blocks.length; ++b ) {\n      var m = blocks[ b ].match( tight ),\n          terms = m[ 1 ].replace( /\\n$/, \"\" ).split( /\\n/ ),\n          defns = m[ 2 ].split( /\\n:\\s+/ );\n\n      // print( uneval( m ) );\n\n      for ( i = 0; i < terms.length; ++i ) {\n        list.push( [ \"dt\", terms[ i ] ] );\n      }\n\n      for ( i = 0; i < defns.length; ++i ) {\n        // run inline processing over the definition\n        list.push( [ \"dd\" ].concat( this.processInline( defns[ i ].replace( /(\\n)\\s+/, \"$1\" ) ) ) );\n      }\n    }\n  }\n  else {\n    return undefined;\n  }\n\n  return [ list ];\n};\n\nMarkdown.dialects.Maruku.inline[ \"{:\" ] = function inline_meta( text, matches, out ) {\n  if ( !out.length ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // get the preceeding element\n  var before = out[ out.length - 1 ];\n\n  if ( typeof before === \"string\" ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // match a meta hash\n  var m = text.match( /^\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}/ );\n\n  // no match, false alarm\n  if ( !m ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // attach the attributes to the preceeding element\n  var meta = this.dialect.processMetaHash( m[ 1 ] ),\n      attr = extract_attr( before );\n\n  if ( !attr ) {\n    attr = {};\n    before.splice( 1, 0, attr );\n  }\n\n  for ( var k in meta ) {\n    attr[ k ] = meta[ k ];\n  }\n\n  // cut out the string and replace it with nothing\n  return [ m[ 0 ].length, \"\" ];\n};\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Maruku.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Maruku.inline );\n\nvar isArray = Array.isArray || function(obj) {\n  return Object.prototype.toString.call(obj) == '[object Array]';\n};\n\nvar forEach;\n// Don't mess with Array.prototype. Its not friendly\nif ( Array.prototype.forEach ) {\n  forEach = function( arr, cb, thisp ) {\n    return arr.forEach( cb, thisp );\n  };\n}\nelse {\n  forEach = function(arr, cb, thisp) {\n    for (var i = 0; i < arr.length; i++) {\n      cb.call(thisp || arr, arr[i], i, arr);\n    }\n  }\n}\n\nfunction extract_attr( jsonml ) {\n  return isArray(jsonml)\n      && jsonml.length > 1\n      && typeof jsonml[ 1 ] === \"object\"\n      && !( isArray(jsonml[ 1 ]) )\n      ? jsonml[ 1 ]\n      : undefined;\n}\n\n\n\n/**\n *  renderJsonML( jsonml[, options] ) -> String\n *  - jsonml (Array): JsonML array to render to XML\n *  - options (Object): options\n *\n *  Converts the given JsonML into well-formed XML.\n *\n *  The options currently understood are:\n *\n *  - root (Boolean): wether or not the root node should be included in the\n *    output, or just its children. The default `false` is to not include the\n *    root itself.\n */\nexpose.renderJsonML = function( jsonml, options ) {\n  options = options || {};\n  // include the root element in the rendered output?\n  options.root = options.root || false;\n\n  var content = [];\n\n  if ( options.root ) {\n    content.push( render_tree( jsonml ) );\n  }\n  else {\n    jsonml.shift(); // get rid of the tag\n    if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n      jsonml.shift(); // get rid of the attributes\n    }\n\n    while ( jsonml.length ) {\n      content.push( render_tree( jsonml.shift() ) );\n    }\n  }\n\n  return content.join( \"\\n\\n\" );\n};\n\nfunction escapeHTML( text ) {\n  return text.replace( /&/g, \"&amp;\" )\n             .replace( /</g, \"&lt;\" )\n             .replace( />/g, \"&gt;\" )\n             .replace( /\"/g, \"&quot;\" )\n             .replace( /'/g, \"&#39;\" );\n}\n\nfunction render_tree( jsonml ) {\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return escapeHTML( jsonml );\n  }\n\n  var tag = jsonml.shift(),\n      attributes = {},\n      content = [];\n\n  if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n    attributes = jsonml.shift();\n  }\n\n  while ( jsonml.length ) {\n    content.push( arguments.callee( jsonml.shift() ) );\n  }\n\n  var tag_attrs = \"\";\n  for ( var a in attributes ) {\n    tag_attrs += \" \" + a + '=\"' + escapeHTML( attributes[ a ] ) + '\"';\n  }\n\n  // be careful about adding whitespace here for inline elements\n  if ( tag == \"img\" || tag == \"br\" || tag == \"hr\" ) {\n    return \"<\"+ tag + tag_attrs + \"/>\";\n  }\n  else {\n    return \"<\"+ tag + tag_attrs + \">\" + content.join( \"\" ) + \"</\" + tag + \">\";\n  }\n}\n\nfunction convert_tree_to_html( tree, references, options ) {\n  var i;\n  options = options || {};\n\n  // shallow clone\n  var jsonml = tree.slice( 0 );\n\n  if (typeof options.preprocessTreeNode === \"function\") {\n      jsonml = options.preprocessTreeNode(jsonml, references);\n  }\n\n  // Clone attributes if they exist\n  var attrs = extract_attr( jsonml );\n  if ( attrs ) {\n    jsonml[ 1 ] = {};\n    for ( i in attrs ) {\n      jsonml[ 1 ][ i ] = attrs[ i ];\n    }\n    attrs = jsonml[ 1 ];\n  }\n\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return jsonml;\n  }\n\n  // convert this node\n  switch ( jsonml[ 0 ] ) {\n    case \"header\":\n      jsonml[ 0 ] = \"h\" + jsonml[ 1 ].level;\n      delete jsonml[ 1 ].level;\n      break;\n    case \"bulletlist\":\n      jsonml[ 0 ] = \"ul\";\n      break;\n    case \"numberlist\":\n      jsonml[ 0 ] = \"ol\";\n      break;\n    case \"listitem\":\n      jsonml[ 0 ] = \"li\";\n      break;\n    case \"para\":\n      jsonml[ 0 ] = \"p\";\n      break;\n    case \"markdown\":\n      jsonml[ 0 ] = \"html\";\n      if ( attrs ) delete attrs.references;\n      break;\n    case \"code_block\":\n      jsonml[ 0 ] = \"pre\";\n      i = attrs ? 2 : 1;\n      var code = [ \"code\" ];\n      code.push.apply( code, jsonml.splice( i ) );\n      jsonml[ i ] = code;\n      break;\n    case \"inlinecode\":\n      jsonml[ 0 ] = \"code\";\n      break;\n    case \"img\":\n      jsonml[ 1 ].src = jsonml[ 1 ].href;\n      delete jsonml[ 1 ].href;\n      break;\n    case \"linebreak\":\n      jsonml[ 0 ] = \"br\";\n    break;\n    case \"link\":\n      jsonml[ 0 ] = \"a\";\n      break;\n    case \"link_ref\":\n      jsonml[ 0 ] = \"a\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.href = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n    case \"img_ref\":\n      jsonml[ 0 ] = \"img\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.src = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n  }\n\n  // convert all the children\n  i = 1;\n\n  // deal with the attribute node, if it exists\n  if ( attrs ) {\n    // if there are keys, skip over it\n    for ( var key in jsonml[ 1 ] ) {\n      i = 2;\n    }\n    // if there aren't, remove it\n    if ( i === 1 ) {\n      jsonml.splice( i, 1 );\n    }\n  }\n\n  for ( ; i < jsonml.length; ++i ) {\n    jsonml[ i ] = arguments.callee( jsonml[ i ], references, options );\n  }\n\n  return jsonml;\n}\n\n\n// merges adjacent text nodes into a single node\nfunction merge_text_nodes( jsonml ) {\n  // skip the tag name and attribute hash\n  var i = extract_attr( jsonml ) ? 2 : 1;\n\n  while ( i < jsonml.length ) {\n    // if it's a string check the next item too\n    if ( typeof jsonml[ i ] === \"string\" ) {\n      if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === \"string\" ) {\n        // merge the second string into the first and remove it\n        jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ];\n      }\n      else {\n        ++i;\n      }\n    }\n    // if it's not a string recurse\n    else {\n      arguments.callee( jsonml[ i ] );\n      ++i;\n    }\n  }\n}\n\n} )( (function() {\n  if ( typeof exports === \"undefined\" ) {\n    window.markdown = {};\n    return window.markdown;\n  }\n  else {\n    return exports;\n  }\n} )() );"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ar.js",
    "content": "/*\n * Arabic translation for bootstrap-markdown\n * George Ajam <george.ejaam@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.nl = {\n    'Bold': \"غامق\",\n    'Italic': \"مائل\",\n    'Heading': \"عنوان\",\n    'URL/Link': \"URL/رابط\",\n    'Image': \"صورة\",\n    'List': \"قائمة\",\n    'Preview': \"استعراض\",\n    'strong text': \"نص غامق\",\n    'emphasized text': \"نص هام\",\n    'heading text': \"العنوان\",\n    'enter link description here': \"ادخل وصف الرابط هنا\",\n    'Insert Hyperlink': \"ادخل الرابط هنا\",\n    'enter image description here': \"ادخل وصف الصورة هنا\",\n    'Insert Image Hyperlink': \"ادخل رابط الصورة هنا\",\n    'enter image title here': \"ادخل عنوان الصورة هنا\",\n    'list text here': \"اكتب النص هنا\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.cs.js",
    "content": "/**\n * Czech translation for bootstrap-markdown\n * Vít Kabele <vit@kabele.me>\n */\n(function ($) {\n  $.fn.markdown.messages.cs = {\n    'Bold': \"Tučně\",\n    'Italic': \"Kurzíva\",\n    'Heading': \"Nadpis\",\n    'URL/Link': \"URL/Odkaz\",\n    'Image': \"Obrázek\",\n    'Unordered List': \"Seznam\",\n    'Ordered List': \"Seřazený seznam\",\n    'Code': \"Úsek kódu\",\n    'Quote': \"Citace\",\n    'Preview': \"Náhled\",\n    'strong text': \"tučný text\",\n    'emphasized text': \"zdůrazněný text\",\n    'heading text': \"text nadpisu\",\n    'enter link description here': \"sem vlož popis odkazu\",\n    'Insert Hyperlink': \"Vložit Hyperlink\",\n    'enter image description here': \"sem vlož popis obrázku\",\n    'Insert Image Hyperlink': \"Vlož adresu obrázku\",\n    'enter image title here': \"sem vlož popis obrázku\",\n    'list text here': \"položka seznamu\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.da.js",
    "content": "/**\n * Danish translation for bootstrap-markdown\n * Dan Storm <storm@catalystcode.net>\n */\n(function ($) {\n  $.fn.markdown.messages.nb = {\n    'Bold': 'Fed',\n    'Italic': 'Kursiv',\n    'Heading': 'Overskrift',\n    'URL/Link': 'URL/Link',\n    'Image': 'Billede',\n    'List': 'Liste',\n    'Preview': 'Forhåndsvisning',\n    'strong text': 'stærk tekst',\n    'emphasized text': 'fremhævet tekst',\n    'heading text': 'overskrift tekst',\n    'enter link description here': 'Skriv link beskrivelse her',\n    'Insert Hyperlink': 'Indsæt link',\n    'enter image description here': 'Indsæt billede beskrivelse her',\n    'Insert Image Hyperlink': 'Indsæt billede link',\n    'enter image title here': 'Indsæt billede titel',\n    'list text here': 'Indsæt liste tekst her',\n    'quote here': 'Indsæt citat her',\n    'code text here': 'Indsæt kode her'\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.de.js",
    "content": "/**\n * German translation for bootstrap-markdown\n * Tobias Nitsche <tobias-nitsche@gmx.net>\n */\n(function ($) {\n  $.fn.markdown.messages.de = {\n    'Bold': \"Fett\",\n    'Italic': \"Kursiv\",\n    'Heading': \"Überschrift\",\n    'URL/Link': \"Link hinzufügen\",\n    'Image': \"Bild hinzufügen\",\n    'Unordered List': \"Unnummerierte Liste\",\n    'Ordered List': \"Nummerierte Liste\",\n    'Code': \"Quelltext\",\n    'Quote': \"Zitat\",\n    'Preview': \"Vorschau\",\n    'strong text': \"Sehr betonter Text\",\n    'emphasized text': \"Betonter Text\",\n    'heading text': \"Überschrift Text\",\n    'enter link description here': \"Linkbeschreibung\",\n    'Insert Hyperlink': \"URL\",\n    'enter image description here': \"Bildbeschreibung\",\n    'Insert Image Hyperlink': \"Bild-URL\",\n    'enter image title here': \"Titel des Bildes\",\n    'list text here': \"Aufzählungs-Text\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.es.js",
    "content": "/**\n * Spanish translation for bootstrap-markdown\n * by Leandro Poblet <leandrodrhouse@gmail.com>\n */\n;(function($){\n  $.fn.markdown.messages['es'] = {\n    'Bold': \"Negrita\",\n    'Italic': \"Itálica\",\n    'Heading': \"Título\",\n    'URL/Link': \"Inserte un link\",\n    'Image': \"Inserte una imagen\",\n    'List': \"Lista de items\",\n    'Preview': \"Previsualizar\",\n    'strong text': \"texto importante\",\n    'emphasized text': \"texto con énfasis\",\n    'heading text': \"texto titular\",\n    'enter link description here': \"descripción del link\",\n    'Insert Hyperlink': \"Inserte un hipervínculo\",\n    'enter image description here': \"descripción de la imagen\",\n    'Insert Image Hyperlink': \"Inserte una imagen con un hipervínculo\",\n    'enter image title here': \"Inserte una imagen con título\",\n    'list text here': \"lista con texto\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.fr.js",
    "content": "/**\n * French translation for bootstrap-markdown\n * Benoît Bourgeois <bierdok@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.fr = {\n    'Bold': \"Gras\",\n    'Italic': \"Italique\",\n    'Heading': \"Titre\",\n    'URL/Link': \"Insérer un lien HTTP\",\n    'Image': \"Insérer une image\",\n    'List': \"Liste à puces\",\n    'Preview': \"Prévisualiser\",\n    'strong text': \"texte important\",\n    'emphasized text': \"texte souligné\",\n    'heading text': \"texte d'entête\",\n    'enter link description here': \"entrez la description du lien ici\",\n    'Insert Hyperlink': \"Insérez le lien hypertexte\",\n    'enter image description here': \"entrez la description de l'image ici\",\n    'Insert Image Hyperlink': \"Insérez le lien hypertexte de l'image\",\n    'enter image title here': \"entrez le titre de l'image ici\",\n    'list text here': \"texte à puce ici\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ja.js",
    "content": "/**\n * Japanese translation for bootstrap-markdown\n * Kenta Murakami <kntmrkm@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages['ja'] = {\n    'Bold': \"太字\",\n    'Italic': \"斜体\",\n    'Heading': \"見出し\",\n    'URL/Link': \"リンク\",\n    'Image': \"画像\",\n    'Unordered List': \"リスト\",\n    'Ordered List': \"数字リスト\",\n    'Code': \"コード\",\n    'Quote': \"引用\",\n    'Preview': \"プレビュー\",\n    'strong text': \"太字\",\n    'emphasized text': \"強調\",\n    'heading text': \"見出し\",\n    'enter link description here': \"リンク説明\",\n    'Insert Hyperlink': \"リンク挿入\",\n    'enter image description here': \"画像説明\",\n    'Insert Image Hyperlink': \"画像挿入\",\n    'enter image title here': \"画像タイトル\",\n    'list text here': \"リスト挿入\",\n    'code text here': \"コード\",\n    'quote here': \"引用挿入\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.kr.js",
    "content": "/**\n + * Korean translation for bootstrap-markdown\n + * WoongBi Kim <ssinss@gmail.com>\n + */\n;(function($){\n  $.fn.markdown.messages['kr'] = {\n    'Bold': \"진하게\",\n    'Italic': \"이탤릭체\",\n    'Heading': \"머리글\",\n    'URL/Link': \"링크주소\",\n    'Image': \"이미지\",\n    'List': \"리스트\",\n    'Preview': \"미리보기\",\n    'strong text': \"강한 강조 텍스트\",\n    'emphasized text': \"강조 텍스트\",\n    'heading text': \"머리글 텍스트\",\n    'enter link description here': \"여기에 링크의 설명을 적으세요\",\n    'Insert Hyperlink': \"하이퍼링크 삽입\",\n    'enter image description here': \"여기세 이미지 설명을 적으세요\",\n    'Insert Image Hyperlink': \"이미지 링크 삽입\",\n    'enter image title here': \"여기에 이미지 제목을 적으세요\",\n    'list text here': \"리스트 텍스트\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.nb.js",
    "content": "/**\n * Norwegian bokmål translation for bootstrap-markdown\n * Tobias Bohwalli <hi@futhr.io>\n */\n(function ($) {\n  $.fn.markdown.messages.nb = {\n    'Bold': 'Fet',\n    'Italic': 'Kursiv',\n    'Heading': 'Overskrift',\n    'URL/Link': 'URL/Lenke',\n    'Image': 'Bilde',\n    'List': 'Liste',\n    'Preview': 'Forhåndsvisning',\n    'strong text': 'sterk tekst',\n    'emphasized text': 'streket tekst',\n    'heading text': 'overskriften tekst',\n    'enter link description here': 'Skriv linken beskrivelse her',\n    'Insert Hyperlink': 'Sett inn lenke',\n    'enter image description here': 'Angi bildebeskrivelse her',\n    'Insert Image Hyperlink': 'Sett inn lenke for bilde',\n    'enter image title here': 'Angi bildetittel her',\n    'list text here': 'liste tekst her'\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.nl.js",
    "content": "/**\n * Dutch translation for bootstrap-markdown\n * Jeroen Thora <jeroenthora@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.nl = {\n    'Bold': \"Vet\",\n    'Italic': \"Cursief\",\n    'Heading': \"Titel\",\n    'URL/Link': \"URL/Link\",\n    'Image': \"Afbeelding\",\n    'List': \"Lijst\",\n    'Preview': \"Voorbeeld\",\n    'strong text': \"vet gedrukte tekst\",\n    'emphasized text': \"schuin gedrukte tekst\",\n    'heading text': \"Titel\",\n    'enter link description here': \"Voer een link beschrijving in\",\n    'Insert Hyperlink': \"Voer een http link in\",\n    'enter image description here': \"Voer een afbeelding beschrijving in\",\n    'Insert Image Hyperlink': \"Voer een afbeelding link in\",\n    'enter image title here': \"Voer de afbeelding titel in\",\n    'list text here': \"lijst item\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.pl.js",
    "content": "/**\n * Polish translation for bootstrap-markdown\n * Marek Kaput\n */\n(function ($) {\n  $.fn.markdown.messages.pl = {\n    'Bold': \"Pogrubienie\",\n    'Italic': \"Kursywa\",\n    'Heading': \"Nagłówek\",\n    'URL/Link': \"Wstaw link\",\n    'Image': \"Wstaw obrazek\",\n    'Unordered List': \"Lista punktowana\",\n    'Ordered List': \"Lista numerowana\",\n    'Code': \"Kod źródłowy\",\n    'Quote': \"Cytat\",\n    'Preview': \"Podgląd\",\n    'strong text': \"pogrubiony tekst\",\n    'emphasized text': \"pochylony tekst\",\n    'heading text': \"nagłówek\",\n    'enter link description here': \"opis linka\",\n    'Insert Hyperlink': \"Wstaw link\",\n    'enter image description here': \"opis obrazka\",\n    'Insert Image Hyperlink': \"Wstaw obrazek\",\n    'enter image title here': \"tytuł obrazka\",\n    'list text here': \"lista\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ru.js",
    "content": "/**\n * Russian translation for bootstrap-markdown\n * by Oleg Vivtash <o@vivtash.net>\n */\n;(function($){\n  $.fn.markdown.messages['ru'] = {\n    'Bold': \"Жирный\",\n    'strong text': \"выделенный текст\",\n    'Italic': \"Курсив\",\n    'emphasized text': \"наклонный текст\",\n    'Heading': \"Заголовок\",\n    'heading text': \"текст заголовка\",\n    'URL/Link': \"Вставьте ссылку\",\n    'Insert Hyperlink': \"Введите гиперссылку\",\n    'enter link description here': \"введите описание ссылки\",\n    'Image': \"Изображение\",\n    'enter image description here': \"Введите описание изображения\",\n    'Insert Image Hyperlink': \"Вставьте ссылку на изображение\",\n    'enter image title here': \"Введите название изображения\",\n    'List': \"Список\",\n    'Unordered List': \"Неупорядоченный список\",\n    'Ordered List': \"Упорядоченный список\",\n    'list text here': \"текст списка\",\n    'Code': \"Код\",\n    'code text here': \"программный код\",\n    'Quote': \"Цитата\",\n    'quote here': \"цитируемый текст\",\n    'Preview': \"Предварительный просмотр\"\n  };\n}(jQuery))\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.sl.js",
    "content": "/**\n * Slovenian translation for bootstrap-markdown\n * Davor Padovan <davor.padovan@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.sl = {\n    'Bold': \"Odebeljeno\",\n    'Italic': \"Poševno\",\n    'Heading': \"Naslov\",\n    'URL/Link': \"Povezava\",\n    'Image': \"Slika\",\n    'Unordered List': \"Neurejen seznam\",\n    'Ordered List': \"Urejen seznam\",\n    'Code': \"Koda\",\n    'Quote': \"Citat\",\n    'Preview': \"Predogled\",\n    'strong text': \"odebeljeno besedilo\",\n    'emphasized text': \"poševno besedilo\",\n    'heading text': \"naslov\",\n    'enter link description here': \"opis povezave\",\n    'Insert Hyperlink': \"Vstavi povezavo\",\n    'enter image description here': \"opis slike\",\n    'Insert Image Hyperlink': \"Vstavi povezavo do slike\",\n    'enter image title here': \"naslov slike\",\n    'list text here': \"seznam\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.sv.js",
    "content": "/**\n * Swedish translation for bootstrap-markdown\n * Tobias Bohwalli <hi@futhr.io>\n */\n(function ($) {\n  $.fn.markdown.messages.sv = {\n    'Bold': 'Fet',\n    'Italic': 'Kursiv',\n    'Heading': 'Rubrik',\n    'URL/Link': 'URL/Länk',\n    'Image': 'Bild',\n    'List': 'Lista',\n    'Preview': 'Förhandsgranska',\n    'strong text': 'fet text',\n    'emphasized text': 'överstruken text',\n    'heading text': 'Rubrik',\n    'enter link description here': 'Ange länk beskrivning här',\n    'Insert Hyperlink': 'Sätt in länk',\n    'enter image description here': 'Ange bild beskrivning här',\n    'Insert Image Hyperlink': 'Sätt in länk för bild',\n    'enter image title here': 'Ange bild rubrik här',\n    'list text here': 'list text'\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.tr.js",
    "content": "/**\n * Turkish translation for bootstrap-markdown\n * Serkan Algur <info@wpadami.com>\n */\n(function ($) {\n  $.fn.markdown.messages.tr = {\n    'Bold': \"Kalın\",\n    'Italic': \"İtalik\",\n    'Heading': \"Başlık\",\n    'URL/Link': \"Link ekle\",\n    'Image': \"Resim ekle\",\n    'List': \"Liste Oluşturun\",\n    'Preview': \"Önizleme\",\n    'strong text': \"kalın yazı\",\n    'emphasized text': \"italik yazı\",\n    'heading text': \"Başlık Yazısı\",\n    'enter link description here': \"Link açıklamasını buraya girin\",\n    'Insert Hyperlink': \"İnternet adresi girin\",\n    'enter image description here': \"resim açıklamasını buraya ekleyin\",\n    'Insert Image Hyperlink': \"Resim linkini ekleyin\",\n    'enter image title here': \"resim başlığını buraya ekleyin\",\n    'list text here': \"liste yazısı\",\n    'Save' : \"Kaydet\",\n    'Ordered List' : \"Numaralı Liste\",\n    'Unordered List' : \"Madde imli liste\",\n    'Quote' : \"Alıntı\",\n    'quote here' : \"alıntıyı buraya ekleyin\",\n    'Code' : \"Kod\",\n    'code text here' : \"kodu buraya ekleyin\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ua.js",
    "content": "/**\n * Ukrainian translation for bootstrap-markdown\n * by Oleg Vivtash <o@vivtash.net>\n */\n;(function($){\n  $.fn.markdown.messages['ua'] = {\n    'Bold': \"Жирний\",\n    'Italic': \"Курсів\",\n    'Heading': \"Заголовок\",\n    'URL/Link': \"Вставте посилання\",\n    'Image': \"Зображення\",\n    'List': \"Список\",\n    'Preview': \"Попередній перегляд\",\n    'strong text': \"виділений текст\",\n    'emphasized text': \"нахилений текст\",\n    'heading text': \"текст заголовку\",\n    'enter link description here': \"введіть опис посилання\",\n    'Insert Hyperlink': \"Введіть гіперпосилання\",\n    'enter image description here': \"Введіть опис зображення\",\n    'Insert Image Hyperlink': \"Вставте посилання на зображення\",\n    'enter image title here': \"Введіть назву зображення\",\n    'list text here': \"текст списку\"\n  };\n}(jQuery))\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js",
    "content": "/**\n * Chinese translation for bootstrap-markdown\n * benhaile <denghaier@163.com>\n */\n(function ($) {\n  $.fn.markdown.messages.zh = {\n    'Bold': \"粗体\",\n    'Italic': \"斜体\",\n    'Heading': \"标题\",\n    'URL/Link': \"链接\",\n    'Image': \"图片\",\n    'List': \"列表\",\n    'Unordered List': \"无序列表\",\n    'Ordered List': \"有序列表\",\n    'Code': \"代码\",\n    'Quote': \"引用\",\n    'Preview': \"预览\",\n    'strong text': \"粗体\",\n    'emphasized text': \"强调\",\n    'heading text': \"标题\",\n    'enter link description here': \"输入链接说明\",\n    'Insert Hyperlink': \"URL地址\",\n    'enter image description here': \"输入图片说明\",\n    'Insert Image Hyperlink': \"图片URL地址\",\n    'enter image title here': \"在这里输入图片标题\",\n    'list text here': \"这里是列表文本\",\n    'code text here': \"这里输入代码\",\n    'quote here': \"这里输入引用文本\"\n\n\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-markdown/package.json",
    "content": "{\n  \"name\": \"bootstrap-markdown\",\n  \"filename\": \"js/bootstrap-markdown.js\",\n  \"version\": \"2.9.0\",\n  \"description\": \"A bootstrap plugin for markdown editing\",\n  \"license\" : \"Apache-2.0\",\n  \"homepage\": \"https://github.com/toopay/bootstrap-markdown\",\n  \"keywords\": [\n    \"twitter\",\n    \"bootstrap\",\n    \"markdown\",\n    \"editor\"\n  ],\n  \"maintainers\": [{\n    \"name\": \"Taufan Aditya\",\n    \"web\": \"https://github.com/toopay\"\n  }],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/toopay/bootstrap-markdown.git\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-modal/css/bootstrap-modal-bs3patch.css",
    "content": "/*!\n * Bootstrap Modal\n *\n * Copyright Jordan Schroter\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Boostrap 3 patch for for bootstrap-modal. Include BEFORE bootstrap-modal.css!\n */\n\nbody.modal-open, \n.modal-open .navbar-fixed-top, \n.modal-open .navbar-fixed-bottom {\n  margin-right: 0;\n}\n\n.modal {\n  left: 50%;\n  bottom: auto;\n  right: auto;\n  padding: 0;\n  width: 500px;\n  margin-left: -250px;\n  background-color: #ffffff;\n  border: 1px solid #999999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n}\n\n.modal.container {\n  max-width: none;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-modal/css/bootstrap-modal.css",
    "content": "/*!\n * Bootstrap Modal\n *\n * Copyright Jordan Schroter\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n */\n\n.modal-open {\n\toverflow: hidden;\n}\n\n\n/* add a scroll bar to stop page from jerking around */\n.modal-open.page-overflow .page-container,\n.modal-open.page-overflow .page-container .navbar-fixed-top,\n.modal-open.page-overflow .page-container .navbar-fixed-bottom,\n.modal-open.page-overflow .modal-scrollable {\n\toverflow-y: scroll;\n}\n\n@media (max-width: 979px) {\n\t.modal-open.page-overflow .page-container .navbar-fixed-top,\n\t.modal-open.page-overflow .page-container .navbar-fixed-bottom  {\n\t\toverflow-y: visible;\n\t}\n}\n\n\n.modal-scrollable {\n\tposition: fixed;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\toverflow: auto;\n}\n\n.modal {\n\toutline: none;\n\tposition: absolute;\n\tmargin-top: 0;\n\ttop: 50%;\n\toverflow: visible; /* allow content to popup out (i.e tooltips) */\n}\n\n.modal.fade {\n\ttop: -100%;\n\t-webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\t\n\t   -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\n\t     -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\n\t        transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\n}\n\n.modal.fade.in {\n\ttop: 50%;\n}\n\n.modal-body {\n\tmax-height: none;\n\toverflow: visible;\n}\n\n.modal.modal-absolute {\n\tposition: absolute;\n\tz-index: 950;\n}\n\n.modal .loading-mask {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: #fff;\n\tborder-radius: 6px;\n}\n\n.modal-backdrop.modal-absolute{\n\tposition: absolute;\n\tz-index: 940;\n}\n\n.modal-backdrop, \n.modal-backdrop.fade.in{\n\topacity: 0.7;\n\tfilter: alpha(opacity=70);\n\tbackground: #fff;\n}\n\n.modal.container {\n  width: 940px;\n  margin-left: -470px;\n}\n\n/* Modal Overflow */\n\n.modal-overflow.modal {\n\ttop: 1%;\n}\n\n.modal-overflow.modal.fade {\n\ttop: -100%;\n}\n\n.modal-overflow.modal.fade.in {\n\ttop: 1%;\n}\n\n.modal-overflow .modal-body {\n\toverflow: auto;\n\t-webkit-overflow-scrolling: touch;\n}\n\n/* Responsive */\n\n@media (min-width: 1200px) {\n\t.modal.container {\n\t\twidth: 1170px;\n\t\tmargin-left: -585px;\n\t}\n}\n\n@media (max-width: 979px) {\n\t.modal, \n\t.modal.container,\n\t.modal.modal-overflow \t{\n\t\ttop: 1%;\n\t\tright: 1%;\n\t\tleft: 1%;\n\t\tbottom: auto;\n\t\twidth: auto !important;\n\t\theight: auto !important;\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t}\n\t\n\t.modal.fade.in, \n\t.modal.container.fade.in,\n\t.modal.modal-overflow.fade.in {\n\t\ttop: 1%;\n\t\tbottom: auto;\n\t}\n\t\n\t.modal-body,\n\t.modal-overflow .modal-body {\n\t\tposition: static;\n\t\tmargin: 0;\n\t\theight: auto !important;\n\t\tmax-height: none !important;\n\t\toverflow: visible !important;\n\t}\n\t\n\t.modal-footer,\n\t.modal-overflow .modal-footer {\n\t\tposition: static;\n\t}\n}\n\n.loading-spinner {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin: -12px 0 0 -12px;\n}\n\n/*\nAnimate.css - http://daneden.me/animate\nLicensed under the ☺ license (http://licence.visualidiot.com/)\n\nCopyright (c) 2012 Dan Eden*/\n\n.animated {\n\t-webkit-animation-duration: 1s;\n\t   -moz-animation-duration: 1s;\n\t     -o-animation-duration: 1s;\n\t        animation-duration: 1s;\n\t-webkit-animation-fill-mode: both;\n\t   -moz-animation-fill-mode: both;\n\t     -o-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n\n@-webkit-keyframes shake {\n\t0%, 100% {-webkit-transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);}\n}\n\n@-moz-keyframes shake {\n\t0%, 100% {-moz-transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {-moz-transform: translateX(10px);}\n}\n\n@-o-keyframes shake {\n\t0%, 100% {-o-transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {-o-transform: translateX(10px);}\n}\n\n@keyframes shake {\n\t0%, 100% {transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {transform: translateX(10px);}\n}\n\n.shake {\n\t-webkit-animation-name: shake;\n\t-moz-animation-name: shake;\n\t-o-animation-name: shake;\n\tanimation-name: shake;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-modal/js/bootstrap-modal.js",
    "content": "/* ===========================================================\n * bootstrap-modal.js v2.2.5\n * ===========================================================\n * Copyright 2012 Jordan Schroter\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================== */\n\n\n!function ($) {\n\n\t\"use strict\"; // jshint ;_;\n\n\t/* MODAL CLASS DEFINITION\n\t* ====================== */\n\n\tvar Modal = function (element, options) {\n\t\tthis.init(element, options);\n\t};\n\n\tModal.prototype = {\n\n\t\tconstructor: Modal,\n\n\t\tinit: function (element, options) {\n\t\t\tvar that = this;\n\n\t\t\tthis.options = options;\n\n\t\t\tthis.$element = $(element)\n\t\t\t\t.delegate('[data-dismiss=\"modal\"]', 'click.dismiss.modal', $.proxy(this.hide, this));\n\n\t\t\tthis.options.remote && this.$element.find('.modal-body').load(this.options.remote, function () {\n\t\t\t\tvar e = $.Event('loaded');\n\t\t\t\tthat.$element.trigger(e);\n\t\t\t});\n\n\t\t\tvar manager = typeof this.options.manager === 'function' ?\n\t\t\t\tthis.options.manager.call(this) : this.options.manager;\n\n\t\t\tmanager = manager.appendModal ?\n\t\t\t\tmanager : $(manager).modalmanager().data('modalmanager');\n\n\t\t\tmanager.appendModal(this);\n\t\t},\n\n\t\ttoggle: function () {\n\t\t\treturn this[!this.isShown ? 'show' : 'hide']();\n\t\t},\n\n\t\tshow: function () {\n\t\t\tvar e = $.Event('show');\n\n\t\t\tif (this.isShown) return;\n\n\t\t\tthis.$element.trigger(e);\n\n\t\t\tif (e.isDefaultPrevented()) return;\n\n\t\t\tthis.escape();\n\n\t\t\tthis.tab();\n\n\t\t\tthis.options.loading && this.loading();\n\t\t},\n\n\t\thide: function (e) {\n\t\t\te && e.preventDefault();\n\n\t\t\te = $.Event('hide');\n\n\t\t\tthis.$element.trigger(e);\n\n\t\t\tif (!this.isShown || e.isDefaultPrevented()) return;\n\n\t\t\tthis.isShown = false;\n\n\t\t\tthis.escape();\n\n\t\t\tthis.tab();\n\n\t\t\tthis.isLoading && this.loading();\n\n\t\t\t$(document).off('focusin.modal');\n\n\t\t\tthis.$element\n\t\t\t\t.removeClass('in')\n\t\t\t\t.removeClass('animated')\n\t\t\t\t.removeClass(this.options.attentionAnimation)\n\t\t\t\t.removeClass('modal-overflow')\n\t\t\t\t.attr('aria-hidden', true);\n\n\t\t\t$.support.transition && this.$element.hasClass('fade') ?\n\t\t\t\tthis.hideWithTransition() :\n\t\t\t\tthis.hideModal();\n\t\t},\n\n\t\tlayout: function () {\n\t\t\tvar prop = this.options.height ? 'height' : 'max-height',\n\t\t\t\tvalue = this.options.height || this.options.maxHeight;\n\n\t\t\tif (this.options.width){\n\t\t\t\tthis.$element.css('width', this.options.width);\n\n\t\t\t\tvar that = this;\n\t\t\t\tthis.$element.css('margin-left', function () {\n\t\t\t\t\tif (/%/ig.test(that.options.width)){\n\t\t\t\t\t\treturn -(parseInt(that.options.width) / 2) + '%';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn -($(this).width() / 2) + 'px';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.$element.css('width', '');\n\t\t\t\tthis.$element.css('margin-left', '');\n\t\t\t}\n\n\t\t\tthis.$element.find('.modal-body')\n\t\t\t\t.css('overflow', '')\n\t\t\t\t.css(prop, '');\n\n\t\t\tif (value){\n\t\t\t\tthis.$element.find('.modal-body')\n\t\t\t\t\t.css('overflow', 'auto')\n\t\t\t\t\t.css(prop, value);\n\t\t\t}\n\n\t\t\tvar modalOverflow = $(window).height() - 10 < this.$element.height();\n            \n\t\t\tif (modalOverflow || this.options.modalOverflow) {\n\t\t\t\tthis.$element\n\t\t\t\t\t.css('margin-top', 0)\n\t\t\t\t\t.addClass('modal-overflow');\n\t\t\t} else {\n\t\t\t\tthis.$element\n\t\t\t\t\t.css('margin-top', 0 - this.$element.height() / 2)\n\t\t\t\t\t.removeClass('modal-overflow');\n\t\t\t}\n\t\t},\n\n\t\ttab: function () {\n\t\t\tvar that = this;\n\n\t\t\tif (this.isShown && this.options.consumeTab) {\n\t\t\t\tthis.$element.on('keydown.tabindex.modal', '[data-tabindex]', function (e) {\n\t\t\t    \tif (e.keyCode && e.keyCode == 9){\n\t\t\t\t\t\tvar elements = [],\n\t\t\t\t\t\t\ttabindex = Number($(this).data('tabindex'));\n\n\t\t\t\t\t\tthat.$element.find('[data-tabindex]:enabled:visible:not([readonly])').each(function (ev) {\n\t\t\t\t\t\t\telements.push(Number($(this).data('tabindex')));\n\t\t\t\t\t\t});\n\t\t\t\t\t\telements.sort(function(a,b){return a-b});\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar arrayPos = $.inArray(tabindex, elements);\n\t\t\t\t\t\tif (!e.shiftKey){\n\t\t\t\t\t\t \t\tarrayPos < elements.length-1 ?\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[arrayPos+1]+']').focus() :\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[0]+']').focus();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tarrayPos == 0 ?\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[elements.length-1]+']').focus() :\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[arrayPos-1]+']').focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (!this.isShown) {\n\t\t\t\tthis.$element.off('keydown.tabindex.modal');\n\t\t\t}\n\t\t},\n\n\t\tescape: function () {\n\t\t\tvar that = this;\n\t\t\tif (this.isShown && this.options.keyboard) {\n\t\t\t\tif (!this.$element.attr('tabindex')) this.$element.attr('tabindex', -1);\n\n\t\t\t\tthis.$element.on('keyup.dismiss.modal', function (e) {\n\t\t\t\t\te.which == 27 && that.hide();\n\t\t\t\t});\n\t\t\t} else if (!this.isShown) {\n\t\t\t\tthis.$element.off('keyup.dismiss.modal')\n\t\t\t}\n\t\t},\n\n\t\thideWithTransition: function () {\n\t\t\tvar that = this\n\t\t\t\t, timeout = setTimeout(function () {\n\t\t\t\t\tthat.$element.off($.support.transition.end);\n\t\t\t\t\tthat.hideModal();\n\t\t\t\t}, 500);\n\n\t\t\tthis.$element.one($.support.transition.end, function () {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tthat.hideModal();\n\t\t\t});\n\t\t},\n\n\t\thideModal: function () {\n\t\t\tvar prop = this.options.height ? 'height' : 'max-height';\n\t\t\tvar value = this.options.height || this.options.maxHeight;\n\n\t\t\tif (value){\n\t\t\t\tthis.$element.find('.modal-body')\n\t\t\t\t\t.css('overflow', '')\n\t\t\t\t\t.css(prop, '');\n\t\t\t}\n\n\t\t\tthis.$element\n\t\t\t\t.hide()\n\t\t\t\t.trigger('hidden');\n\t\t},\n\n\t\tremoveLoading: function () {\n\t\t\tthis.$loading.remove();\n\t\t\tthis.$loading = null;\n\t\t\tthis.isLoading = false;\n\t\t},\n\n\t\tloading: function (callback) {\n\t\t\tcallback = callback || function () {};\n\n\t\t\tvar animate = this.$element.hasClass('fade') ? 'fade' : '';\n\n\t\t\tif (!this.isLoading) {\n\t\t\t\tvar doAnimate = $.support.transition && animate;\n\n\t\t\t\tthis.$loading = $('<div class=\"loading-mask ' + animate + '\">')\n\t\t\t\t\t.append(this.options.spinner)\n\t\t\t\t\t.appendTo(this.$element);\n\n\t\t\t\tif (doAnimate) this.$loading[0].offsetWidth; // force reflow\n\n\t\t\t\tthis.$loading.addClass('in');\n\n\t\t\t\tthis.isLoading = true;\n\n\t\t\t\tdoAnimate ?\n\t\t\t\t\tthis.$loading.one($.support.transition.end, callback) :\n\t\t\t\t\tcallback();\n\n\t\t\t} else if (this.isLoading && this.$loading) {\n\t\t\t\tthis.$loading.removeClass('in');\n\n\t\t\t\tvar that = this;\n\t\t\t\t$.support.transition && this.$element.hasClass('fade')?\n\t\t\t\t\tthis.$loading.one($.support.transition.end, function () { that.removeLoading() }) :\n\t\t\t\t\tthat.removeLoading();\n\n\t\t\t} else if (callback) {\n\t\t\t\tcallback(this.isLoading);\n\t\t\t}\n\t\t},\n\n\t\tfocus: function () {\n\t\t\tvar $focusElem = this.$element.find(this.options.focusOn);\n\n\t\t\t$focusElem = $focusElem.length ? $focusElem : this.$element;\n\n\t\t\t$focusElem.focus();\n\t\t},\n\n\t\tattention: function (){\n\t\t\t// NOTE: transitionEnd with keyframes causes odd behaviour\n\n\t\t\tif (this.options.attentionAnimation){\n\t\t\t\tthis.$element\n\t\t\t\t\t.removeClass('animated')\n\t\t\t\t\t.removeClass(this.options.attentionAnimation);\n\n\t\t\t\tvar that = this;\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tthat.$element\n\t\t\t\t\t\t.addClass('animated')\n\t\t\t\t\t\t.addClass(that.options.attentionAnimation);\n\t\t\t\t}, 0);\n\t\t\t}\n\n\n\t\t\tthis.focus();\n\t\t},\n\n\n\t\tdestroy: function () {\n\t\t\tvar e = $.Event('destroy');\n\n\t\t\tthis.$element.trigger(e);\n\n\t\t\tif (e.isDefaultPrevented()) return;\n\n\t\t\tthis.$element\n\t\t\t\t.off('.modal')\n\t\t\t\t.removeData('modal')\n\t\t\t\t.removeClass('in')\n\t\t\t\t.attr('aria-hidden', true);\n\t\t\t\n\t\t\tif (this.$parent !== this.$element.parent()) {\n\t\t\t\tthis.$element.appendTo(this.$parent);\n\t\t\t} else if (!this.$parent.length) {\n\t\t\t\t// modal is not part of the DOM so remove it.\n\t\t\t\tthis.$element.remove();\n\t\t\t\tthis.$element = null;\n\t\t\t}\n\n\t\t\tthis.$element.trigger('destroyed');\n\t\t}\n\t};\n\n\n\t/* MODAL PLUGIN DEFINITION\n\t* ======================= */\n\n\t$.fn.modal = function (option, args) {\n\t\treturn this.each(function () {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('modal'),\n\t\t\t\toptions = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option);\n\n\t\t\tif (!data) $this.data('modal', (data = new Modal(this, options)));\n\t\t\tif (typeof option == 'string') data[option].apply(data, [].concat(args));\n\t\t\telse if (options.show) data.show()\n\t\t})\n\t};\n\n\t$.fn.modal.defaults = {\n\t\tkeyboard: true,\n\t\tbackdrop: true,\n\t\tloading: false,\n\t\tshow: true,\n\t\twidth: null,\n\t\theight: null,\n\t\tmaxHeight: null,\n\t\tmodalOverflow: false,\n\t\tconsumeTab: true,\n\t\tfocusOn: null,\n\t\treplace: false,\n\t\tresize: false,\n\t\tattentionAnimation: 'shake',\n\t\tmanager: 'body',\n\t\tspinner: '<div class=\"loading-spinner\" style=\"width: 200px; margin-left: -100px;\"><div class=\"progress progress-striped active\"><div class=\"bar\" style=\"width: 100%;\"></div></div></div>',\n\t\tbackdropTemplate: '<div class=\"modal-backdrop\" />'\n\t};\n\n\t$.fn.modal.Constructor = Modal;\n\n\n\t/* MODAL DATA-API\n\t* ============== */\n\n\t$(function () {\n\t\t$(document).off('click.modal').on('click.modal.data-api', '[data-toggle=\"modal\"]', function ( e ) {\n\t\t\tvar $this = $(this),\n\t\t\t\thref = $this.attr('href'),\n\t\t\t\t$target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))), //strip for ie7\n\t\t\t\toption = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data());\n\n\t\t\te.preventDefault();\n\t\t\t$target\n\t\t\t\t.modal(option)\n\t\t\t\t.one('hide', function () {\n\t\t\t\t\t$this.focus();\n\t\t\t\t})\n\t\t});\n\t});\n\n}(window.jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-modal/js/bootstrap-modalmanager.js",
    "content": "/* ===========================================================\n * bootstrap-modalmanager.js v2.2.5\n * ===========================================================\n * Copyright 2012 Jordan Schroter.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================== */\n\n!function ($) {\n\n\t\"use strict\"; // jshint ;_;\n\n\t/* MODAL MANAGER CLASS DEFINITION\n\t* ====================== */\n\n\tvar ModalManager = function (element, options) {\n\t\tthis.init(element, options);\n\t};\n\n\tModalManager.prototype = {\n\n\t\tconstructor: ModalManager,\n\n\t\tinit: function (element, options) {\n\t\t\tthis.$element = $(element);\n\t\t\tthis.options = $.extend({}, $.fn.modalmanager.defaults, this.$element.data(), typeof options == 'object' && options);\n\t\t\tthis.stack = [];\n\t\t\tthis.backdropCount = 0;\n\n\t\t\tif (this.options.resize) {\n\t\t\t\tvar resizeTimeout,\n\t\t\t\t\tthat = this;\n\n\t\t\t\t$(window).on('resize.modal', function(){\n\t\t\t\t\tresizeTimeout && clearTimeout(resizeTimeout);\n\t\t\t\t\tresizeTimeout = setTimeout(function(){\n\t\t\t\t\t\tfor (var i = 0; i < that.stack.length; i++){\n\t\t\t\t\t\t\tthat.stack[i].isShown && that.stack[i].layout();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 10);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tcreateModal: function (element, options) {\n\t\t\t$(element).modal($.extend({ manager: this }, options));\n\t\t},\n\n\t\tappendModal: function (modal) {\n\t\t\tthis.stack.push(modal);\n\n\t\t\tvar that = this;\n\n\t\t\tmodal.$element.on('show.modalmanager', targetIsSelf(function (e) {\n\n\t\t\t\tvar showModal = function(){\n\t\t\t\t\tmodal.isShown = true;\n\n\t\t\t\t\tvar transition = $.support.transition && modal.$element.hasClass('fade');\n\n\t\t\t\t\tthat.$element\n\t\t\t\t\t\t.toggleClass('modal-open', that.hasOpenModal())\n\t\t\t\t\t\t.toggleClass('page-overflow', $(window).height() < that.$element.height());\n\n\t\t\t\t\tmodal.$parent = modal.$element.parent();\n\n\t\t\t\t\tmodal.$container = that.createContainer(modal);\n\n\t\t\t\t\tmodal.$element.appendTo(modal.$container);\n\n\t\t\t\t\tthat.backdrop(modal, function () {\n\t\t\t\t\t\tmodal.$element.show();\n\n\t\t\t\t\t\tif (transition) {       \n\t\t\t\t\t\t\t//modal.$element[0].style.display = 'run-in';       \n\t\t\t\t\t\t\tmodal.$element[0].offsetWidth;\n\t\t\t\t\t\t\t//modal.$element.one($.support.transition.end, function () { modal.$element[0].style.display = 'block' });  \n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tmodal.layout();\n\n\t\t\t\t\t\tmodal.$element\n\t\t\t\t\t\t\t.addClass('in')\n\t\t\t\t\t\t\t.attr('aria-hidden', false);\n\n\t\t\t\t\t\tvar complete = function () {\n\t\t\t\t\t\t\tthat.setFocus();\n\t\t\t\t\t\t\tmodal.$element.trigger('shown');\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\ttransition ?\n\t\t\t\t\t\t\tmodal.$element.one($.support.transition.end, complete) :\n\t\t\t\t\t\t\tcomplete();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tmodal.options.replace ?\n\t\t\t\t\tthat.replace(showModal) :\n\t\t\t\t\tshowModal();\n\t\t\t}));\n\n\t\t\tmodal.$element.on('hidden.modalmanager', targetIsSelf(function (e) {\n\t\t\t\tthat.backdrop(modal);\n\t\t\t\t// handle the case when a modal may have been removed from the dom before this callback executes\n\t\t\t\tif (!modal.$element.parent().length) {\n\t\t\t\t\tthat.destroyModal(modal);\n\t\t\t\t} else if (modal.$backdrop){\n\t\t\t\t\tvar transition = $.support.transition && modal.$element.hasClass('fade');\n\n\t\t\t\t\t// trigger a relayout due to firebox's buggy transition end event \n\t\t\t\t\tif (transition) { modal.$element[0].offsetWidth; }\n\t\t\t\t\t$.support.transition && modal.$element.hasClass('fade') ?\n\t\t\t\t\t\tmodal.$backdrop.one($.support.transition.end, function () { modal.destroy(); }) :\n\t\t\t\t\t\tmodal.destroy();\n\t\t\t\t} else {\n\t\t\t\t\tmodal.destroy();\n\t\t\t\t}\n\n\t\t\t}));\n\n\t\t\tmodal.$element.on('destroyed.modalmanager', targetIsSelf(function (e) {\n\t\t\t\tthat.destroyModal(modal);\n\t\t\t}));\n\t\t},\n\n\t\tgetOpenModals: function () {\n\t\t\tvar openModals = [];\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (this.stack[i].isShown) openModals.push(this.stack[i]);\n\t\t\t}\n\n\t\t\treturn openModals;\n\t\t},\n\n\t\thasOpenModal: function () {\n\t\t\treturn this.getOpenModals().length > 0;\n\t\t},\n\n\t\tsetFocus: function () {\n\t\t\tvar topModal;\n\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (this.stack[i].isShown) topModal = this.stack[i];\n\t\t\t}\n\n\t\t\tif (!topModal) return;\n\n\t\t\ttopModal.focus();\n\t\t},\n\n\t\tdestroyModal: function (modal) {\n\t\t\tmodal.$element.off('.modalmanager');\n\t\t\tif (modal.$backdrop) this.removeBackdrop(modal);\n\t\t\tthis.stack.splice(this.getIndexOfModal(modal), 1);\n\n\t\t\tvar hasOpenModal = this.hasOpenModal();\n\n\t\t\tthis.$element.toggleClass('modal-open', hasOpenModal);\n\n\t\t\tif (!hasOpenModal){\n\t\t\t\tthis.$element.removeClass('page-overflow');\n\t\t\t}\n\n\t\t\tthis.removeContainer(modal);\n\n\t\t\tthis.setFocus();\n\t\t},\n\n\t\tgetModalAt: function (index) {\n\t\t\treturn this.stack[index];\n\t\t},\n\n\t\tgetIndexOfModal: function (modal) {\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (modal === this.stack[i]) return i;\n\t\t\t}\n\t\t},\n\n\t\treplace: function (callback) {\n\t\t\tvar topModal;\n\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (this.stack[i].isShown) topModal = this.stack[i];\n\t\t\t}\n\n\t\t\tif (topModal) {\n\t\t\t\tthis.$backdropHandle = topModal.$backdrop;\n\t\t\t\ttopModal.$backdrop = null;\n\n\t\t\t\tcallback && topModal.$element.one('hidden',\n\t\t\t\t\ttargetIsSelf( $.proxy(callback, this) ));\n\n\t\t\t\ttopModal.hide();\n\t\t\t} else if (callback) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t},\n\n\t\tremoveBackdrop: function (modal) {\n\t\t\tmodal.$backdrop.remove();\n\t\t\tmodal.$backdrop = null;\n\t\t},\n\n\t\tcreateBackdrop: function (animate, tmpl) {\n\t\t\tvar $backdrop;\n\n\t\t\tif (!this.$backdropHandle) {\n\t\t\t\t$backdrop = $(tmpl)\n\t\t\t\t\t.addClass(animate)\n\t\t\t\t\t.appendTo(this.$element);\n\t\t\t} else {\n\t\t\t\t$backdrop = this.$backdropHandle;\n\t\t\t\t$backdrop.off('.modalmanager');\n\t\t\t\tthis.$backdropHandle = null;\n\t\t\t\tthis.isLoading && this.removeSpinner();\n\t\t\t}\n\n\t\t\treturn $backdrop;\n\t\t},\n\n\t\tremoveContainer: function (modal) {\n\t\t\tmodal.$container.remove();\n\t\t\tmodal.$container = null;\n\t\t},\n\n\t\tcreateContainer: function (modal) {\n\t\t\tvar $container;\n\n\t\t\t$container = $('<div class=\"modal-scrollable\">')\n\t\t\t\t.css('z-index', getzIndex('modal', this.getOpenModals().length))\n\t\t\t\t.appendTo(this.$element);\n\n\t\t\tif (modal && modal.options.backdrop != 'static') {\n\t\t\t\t$container.on('click.modal', targetIsSelf(function (e) {\n\t\t\t\t\tmodal.hide();\n\t\t\t\t}));\n\t\t\t} else if (modal) {\n\t\t\t\t$container.on('click.modal', targetIsSelf(function (e) {\n\t\t\t\t\tmodal.attention();\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\treturn $container;\n\n\t\t},\n\n\t\tbackdrop: function (modal, callback) {\n\t\t\tvar animate = modal.$element.hasClass('fade') ? 'fade' : '',\n\t\t\t\tshowBackdrop = modal.options.backdrop &&\n\t\t\t\t\tthis.backdropCount < this.options.backdropLimit;\n\n\t\t\tif (modal.isShown && showBackdrop) {\n\t\t\t\tvar doAnimate = $.support.transition && animate && !this.$backdropHandle;\n\n\t\t\t\tmodal.$backdrop = this.createBackdrop(animate, modal.options.backdropTemplate);\n\n\t\t\t\tmodal.$backdrop.css('z-index', getzIndex( 'backdrop', this.getOpenModals().length ));\n\n\t\t\t\tif (doAnimate) modal.$backdrop[0].offsetWidth; // force reflow\n\n\t\t\t\tmodal.$backdrop.addClass('in');\n\n\t\t\t\tthis.backdropCount += 1;\n\n\t\t\t\tdoAnimate ?\n\t\t\t\t\tmodal.$backdrop.one($.support.transition.end, callback) :\n\t\t\t\t\tcallback();\n\n\t\t\t} else if (!modal.isShown && modal.$backdrop) {\n\t\t\t\tmodal.$backdrop.removeClass('in');\n\n\t\t\t\tthis.backdropCount -= 1;\n\n\t\t\t\tvar that = this;\n\n\t\t\t\t$.support.transition && modal.$element.hasClass('fade')?\n\t\t\t\t\tmodal.$backdrop.one($.support.transition.end, function () { that.removeBackdrop(modal) }) :\n\t\t\t\t\tthat.removeBackdrop(modal);\n\n\t\t\t} else if (callback) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t},\n\n\t\tremoveSpinner: function(){\n\t\t\tthis.$spinner && this.$spinner.remove();\n\t\t\tthis.$spinner = null;\n\t\t\tthis.isLoading = false;\n\t\t},\n\n\t\tremoveLoading: function () {\n\t\t\tthis.$backdropHandle && this.$backdropHandle.remove();\n\t\t\tthis.$backdropHandle = null;\n\t\t\tthis.removeSpinner();\n\t\t},\n\n\t\tloading: function (callback) {\n\t\t\tcallback = callback || function () { };\n\n\t\t\tthis.$element\n\t\t\t\t.toggleClass('modal-open', !this.isLoading || this.hasOpenModal())\n\t\t\t\t.toggleClass('page-overflow', $(window).height() < this.$element.height());\n\n\t\t\tif (!this.isLoading) {\n\n\t\t\t\tthis.$backdropHandle = this.createBackdrop('fade', this.options.backdropTemplate);\n\n\t\t\t\tthis.$backdropHandle[0].offsetWidth; // force reflow\n\n\t\t\t\tvar openModals = this.getOpenModals();\n\n\t\t\t\tthis.$backdropHandle\n\t\t\t\t\t.css('z-index', getzIndex('backdrop', openModals.length + 1))\n\t\t\t\t\t.addClass('in');\n\n\t\t\t\tvar $spinner = $(this.options.spinner)\n\t\t\t\t\t.css('z-index', getzIndex('modal', openModals.length + 1))\n\t\t\t\t\t.appendTo(this.$element)\n\t\t\t\t\t.addClass('in');\n\n\t\t\t\tthis.$spinner = $(this.createContainer())\n\t\t\t\t\t.append($spinner)\n\t\t\t\t\t.on('click.modalmanager', $.proxy(this.loading, this));\n\n\t\t\t\tthis.isLoading = true;\n\n\t\t\t\t$.support.transition ?\n\t\t\t\t\tthis.$backdropHandle.one($.support.transition.end, callback) :\n\t\t\t\t\tcallback();\n\n\t\t\t} else if (this.isLoading && this.$backdropHandle) {\n\t\t\t\tthis.$backdropHandle.removeClass('in');\n\n\t\t\t\tvar that = this;\n\t\t\t\t$.support.transition ?\n\t\t\t\t\tthis.$backdropHandle.one($.support.transition.end, function () { that.removeLoading() }) :\n\t\t\t\t\tthat.removeLoading();\n\n\t\t\t} else if (callback) {\n\t\t\t\tcallback(this.isLoading);\n\t\t\t}\n\t\t}\n\t};\n\n\t/* PRIVATE METHODS\n\t* ======================= */\n\n\t// computes and caches the zindexes\n\tvar getzIndex = (function () {\n\t\tvar zIndexFactor,\n\t\t\tbaseIndex = {};\n\n\t\treturn function (type, pos) {\n\n\t\t\tif (typeof zIndexFactor === 'undefined'){\n\t\t\t\tvar $baseModal = $('<div class=\"modal hide\" />').appendTo('body'),\n\t\t\t\t\t$baseBackdrop = $('<div class=\"modal-backdrop hide\" />').appendTo('body');\n\n\t\t\t\tbaseIndex['modal'] = +$baseModal.css('z-index');\n\t\t\t\tbaseIndex['backdrop'] = +$baseBackdrop.css('z-index');\n\t\t\t\tzIndexFactor = baseIndex['modal'] - baseIndex['backdrop'];\n\n\t\t\t\t$baseModal.remove();\n\t\t\t\t$baseBackdrop.remove();\n\t\t\t\t$baseBackdrop = $baseModal = null;\n\t\t\t}\n\n\t\t\treturn baseIndex[type] + (zIndexFactor * pos);\n\n\t\t}\n\t}());\n\n\t// make sure the event target is the modal itself in order to prevent\n\t// other components such as tabsfrom triggering the modal manager.\n\t// if Boostsrap namespaced events, this would not be needed.\n\tfunction targetIsSelf(callback){\n\t\treturn function (e) {\n\t\t\tif (e && this === e.target){\n\t\t\t\treturn callback.apply(this, arguments);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/* MODAL MANAGER PLUGIN DEFINITION\n\t* ======================= */\n\n\t$.fn.modalmanager = function (option, args) {\n\t\treturn this.each(function () {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('modalmanager');\n\n\t\t\tif (!data) $this.data('modalmanager', (data = new ModalManager(this, option)));\n\t\t\tif (typeof option === 'string') data[option].apply(data, [].concat(args))\n\t\t})\n\t};\n\n\t$.fn.modalmanager.defaults = {\n\t\tbackdropLimit: 999,\n\t\tresize: true,\n\t\tspinner: '<div class=\"loading-spinner fade\" style=\"width: 200px; margin-left: -100px;\"><div class=\"progress progress-striped active\"><div class=\"bar\" style=\"width: 100%;\"></div></div></div>',\n\t\tbackdropTemplate: '<div class=\"modal-backdrop\" />'\n\t};\n\n\t$.fn.modalmanager.Constructor = ModalManager\n\n\t// ModalManager handles the modal-open class so we need \n\t// to remove conflicting bootstrap 3 event handlers\n\t$(function () {\n\t\t$(document).off('show.bs.modal').off('hidden.bs.modal');\n\t});\n\n}(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/css/bootstrap-select.css",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\nselect.bs-select-hidden,\nselect.selectpicker {\n  display: none !important;\n}\n.bootstrap-select {\n  width: 220px \\0;\n  /*IE9 and below*/\n}\n.bootstrap-select > .dropdown-toggle {\n  width: 100%;\n  padding-right: 25px;\n  z-index: 1;\n}\n.bootstrap-select > .dropdown-toggle.bs-placeholder,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:active {\n  color: #999;\n}\n.bootstrap-select > select {\n  position: absolute !important;\n  bottom: 0;\n  left: 50%;\n  display: block !important;\n  width: 0.5px !important;\n  height: 100% !important;\n  padding: 0 !important;\n  opacity: 0 !important;\n  border: none;\n}\n.bootstrap-select > select.mobile-device {\n  top: 0;\n  left: 0;\n  display: block !important;\n  width: 100% !important;\n  z-index: 2;\n}\n.has-error .bootstrap-select .dropdown-toggle,\n.error .bootstrap-select .dropdown-toggle {\n  border-color: #b94a48;\n}\n.bootstrap-select.fit-width {\n  width: auto !important;\n}\n.bootstrap-select:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n  width: 220px;\n}\n.bootstrap-select .dropdown-toggle:focus {\n  outline: thin dotted #333333 !important;\n  outline: 5px auto -webkit-focus-ring-color !important;\n  outline-offset: -2px;\n}\n.bootstrap-select.form-control {\n  margin-bottom: 0;\n  padding: 0;\n  border: none;\n}\n.bootstrap-select.form-control:not([class*=\"col-\"]) {\n  width: 100%;\n}\n.bootstrap-select.form-control.input-group-btn {\n  z-index: auto;\n}\n.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.bootstrap-select.btn-group:not(.input-group-btn),\n.bootstrap-select.btn-group[class*=\"col-\"] {\n  float: none;\n  display: inline-block;\n  margin-left: 0;\n}\n.bootstrap-select.btn-group.dropdown-menu-right,\n.bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right,\n.row .bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right {\n  float: right;\n}\n.form-inline .bootstrap-select.btn-group,\n.form-horizontal .bootstrap-select.btn-group,\n.form-group .bootstrap-select.btn-group {\n  margin-bottom: 0;\n}\n.form-group-lg .bootstrap-select.btn-group.form-control,\n.form-group-sm .bootstrap-select.btn-group.form-control {\n  padding: 0;\n}\n.form-inline .bootstrap-select.btn-group .form-control {\n  width: 100%;\n}\n.bootstrap-select.btn-group.disabled,\n.bootstrap-select.btn-group > .disabled {\n  cursor: not-allowed;\n}\n.bootstrap-select.btn-group.disabled:focus,\n.bootstrap-select.btn-group > .disabled:focus {\n  outline: none !important;\n}\n.bootstrap-select.btn-group.bs-container {\n  position: absolute;\n  height: 0 !important;\n  padding: 0 !important;\n}\n.bootstrap-select.btn-group.bs-container .dropdown-menu {\n  z-index: 1060;\n}\n.bootstrap-select.btn-group .dropdown-toggle .filter-option {\n  display: inline-block;\n  overflow: hidden;\n  width: 100%;\n  text-align: left;\n}\n.bootstrap-select.btn-group .dropdown-toggle .caret {\n  position: absolute;\n  top: 50%;\n  right: 12px;\n  margin-top: -2px;\n  vertical-align: middle;\n}\n.bootstrap-select.btn-group[class*=\"col-\"] .dropdown-toggle {\n  width: 100%;\n}\n.bootstrap-select.btn-group .dropdown-menu {\n  min-width: 100%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bootstrap-select.btn-group .dropdown-menu.inner {\n  position: static;\n  float: none;\n  border: 0;\n  padding: 0;\n  margin: 0;\n  border-radius: 0;\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li {\n  position: relative;\n}\n.bootstrap-select.btn-group .dropdown-menu li.active small {\n  color: #fff;\n}\n.bootstrap-select.btn-group .dropdown-menu li.disabled a {\n  cursor: not-allowed;\n}\n.bootstrap-select.btn-group .dropdown-menu li a {\n  cursor: pointer;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a.opt {\n  position: relative;\n  padding-left: 2.25em;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.check-mark {\n  display: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.text {\n  display: inline-block;\n}\n.bootstrap-select.btn-group .dropdown-menu li small {\n  padding-left: 0.5em;\n}\n.bootstrap-select.btn-group .dropdown-menu .notify {\n  position: absolute;\n  bottom: 5px;\n  width: 96%;\n  margin: 0 2%;\n  min-height: 26px;\n  padding: 3px 5px;\n  background: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  pointer-events: none;\n  opacity: 0.9;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bootstrap-select.btn-group .no-results {\n  padding: 3px;\n  background: #f5f5f5;\n  margin: 0 5px;\n  white-space: nowrap;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option {\n  position: static;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret {\n  position: static;\n  top: auto;\n  margin-top: -1px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark {\n  position: absolute;\n  display: inline-block;\n  right: 15px;\n  margin-top: 5px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {\n  margin-right: 34px;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle {\n  z-index: 1061;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:before {\n  content: '';\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid rgba(204, 204, 204, 0.2);\n  position: absolute;\n  bottom: -4px;\n  left: 9px;\n  display: none;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:after {\n  content: '';\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid white;\n  position: absolute;\n  bottom: -4px;\n  left: 10px;\n  display: none;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {\n  bottom: auto;\n  top: -3px;\n  border-top: 7px solid rgba(204, 204, 204, 0.2);\n  border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {\n  bottom: auto;\n  top: -3px;\n  border-top: 6px solid white;\n  border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {\n  right: 12px;\n  left: auto;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {\n  right: 13px;\n  left: auto;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {\n  display: block;\n}\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n  padding: 4px 8px;\n}\n.bs-actionsbox {\n  width: 100%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bs-actionsbox .btn-group button {\n  width: 50%;\n}\n.bs-donebutton {\n  float: left;\n  width: 100%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bs-donebutton .btn-group button {\n  width: 100%;\n}\n.bs-searchbox + .bs-actionsbox {\n  padding: 0 8px 4px;\n}\n.bs-searchbox .form-control {\n  margin-bottom: 0;\n  width: 100%;\n  float: none;\n}\n/*# sourceMappingURL=bootstrap-select.css.map */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-ar_AR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n/*!\n * Translated default messages for bootstrap-select.\n * Locale: AR (Arabic)\n * Author: Yasser Lotfy <y_l@alive.com>\n */\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'لم يتم إختيار شئ',\n    noneResultsText: 'لا توجد نتائج مطابقة لـ {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} خيار تم إختياره\" : \"{0} خيارات تمت إختيارها\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'تخطى الحد المسموح ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح ({n} خيارات بحد أقصى)',\n        (numGroup == 1) ? 'تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)'\n      ];\n    },\n    selectAllText: 'إختيار الجميع',\n    deselectAllText: 'إلغاء إختيار الجميع',\n    multipleSeparator: '، '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-bg_BG.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Нищо избрано',\n    noneResultsText: 'Няма резултат за {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} избран елемент\" : \"{0} избрани елемента\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Лимита е достигнат ({n} елемент максимум)' : 'Лимита е достигнат ({n} елемента максимум)',\n        (numGroup == 1) ? 'Груповия лимит е достигнат ({n} елемент максимум)' : 'Груповия лимит е достигнат ({n} елемента максимум)'\n      ];\n    },\n    selectAllText: 'Избери всички',\n    deselectAllText: 'Размаркирай всички',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-cro_CRO.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Odaberite stavku',\n    noneResultsText: 'Nema rezultata pretrage {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} stavka selektirana\" : \"{0} stavke selektirane\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit je postignut ({n} stvar maximalno)' : 'Limit je postignut ({n} stavke maksimalno)',\n        (numGroup == 1) ? 'Grupni limit je postignut ({n} stvar maksimalno)' : 'Grupni limit je postignut ({n} stavke maksimalno)'\n      ];\n    },\n    selectAllText: 'Selektiraj sve',\n    deselectAllText: 'Deselektiraj sve',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-cs_CZ.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nic není vybráno',\n    noneResultsText: 'Žádné výsledky {0}',\n    countSelectedText: 'Označeno {0} z {1}',\n    maxOptionsText: ['Limit překročen ({n} {var} max)', 'Limit skupiny překročen ({n} {var} max)', ['položek', 'položka']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-da_DK.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Intet valgt',\n    noneResultsText: 'Ingen resultater fundet {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} valgt\" : \"{0} valgt\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Begrænsning nået (max {n} valgt)' : 'Begrænsning nået (max {n} valgte)',\n        (numGroup == 1) ? 'Gruppe-begrænsning nået (max {n} valgt)' : 'Gruppe-begrænsning nået (max {n} valgte)'\n      ];\n    },\n    selectAllText: 'Markér alle',\n    deselectAllText: 'Afmarkér alle',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-de_DE.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Bitte wählen...',\n    noneResultsText: 'Keine Ergebnisse für {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} Element ausgewählt\" : \"{0} Elemente ausgewählt\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit erreicht ({n} Element max.)' : 'Limit erreicht ({n} Elemente max.)',\n        (numGroup == 1) ? 'Gruppen-Limit erreicht ({n} Element max.)' : 'Gruppen-Limit erreicht ({n} Elemente max.)'\n      ];\n    },\n    selectAllText: 'Alles auswählen',\n    deselectAllText: 'Nichts auswählen',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nothing selected',\n    noneResultsText: 'No results match {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} item selected\" : \"{0} items selected\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\n        (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\n      ];\n    },\n    selectAllText: 'Select All',\n    deselectAllText: 'Deselect All',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-es_CL.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'No hay selección',\n    noneResultsText: 'No hay resultados {0}',\n    countSelectedText: 'Seleccionados {0} de {1}',\n    maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-eu.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Hautapenik ez',\n    noneResultsText: 'Emaitzarik ez {0}',\n    countSelectedText: '{1}(e)tik {0} hautatuta',\n    maxOptionsText: ['Mugara iritsita ({n} {var} gehienez)', 'Taldearen mugara iritsita ({n} {var} gehienez)', ['elementu', 'elementu']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-fa_IR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n    $.fn.selectpicker.defaults = {\n        noneSelectedText: 'چیزی انتخاب نشده است',\n        noneResultsText: 'هیج مشابهی برای {0} پیدا نشد',\n        countSelectedText: \"{0} از {1} مورد انتخاب شده\",\n        maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'],\n        selectAllText: 'انتخاب همه',\n        deselectAllText: 'انتخاب هیچ کدام',\n        multipleSeparator: ', '\n    };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-fi_FI.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Ei valintoja',\n    noneResultsText: 'Ei hakutuloksia {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} valittu\" : \"{0} valitut\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Valintojen maksimimäärä ({n} saavutettu)' : 'Valintojen maksimimäärä ({n} saavutettu)',\n        (numGroup == 1) ? 'Ryhmän maksimimäärä ({n} saavutettu)' : 'Ryhmän maksimimäärä ({n} saavutettu)'\n      ];\n    },\n    selectAllText: 'Valitse kaikki',\n    deselectAllText: 'Poista kaikki',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-fr_FR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Aucune sélection',\n    noneResultsText: 'Aucun résultat pour {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected > 1) ? \"{0} éléments sélectionnés\" : \"{0} élément sélectionné\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll > 1) ? 'Limite atteinte ({n} éléments max)' : 'Limite atteinte ({n} élément max)',\n        (numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' : 'Limite du groupe atteinte ({n} élément max)'\n      ];\n    },\n    multipleSeparator: ', ',\n    selectAllText: 'Tout Sélectionner',\n    deselectAllText: 'Tout Dé-selectionner',\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-hu_HU.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Válasszon!',\n    noneResultsText: 'Nincs találat {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return '{0} elem kiválasztva';\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        'Legfeljebb {n} elem választható',\n        'A csoportban legfeljebb {n} elem választható'\n      ];\n    },\n    selectAllText: 'Mind',\n    deselectAllText: 'Egyik sem',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-id_ID.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Tidak ada yang dipilih',\n    noneResultsText: 'Tidak ada yang cocok {0}',\n    countSelectedText: '{0} terpilih',\n    maxOptionsText: ['Mencapai batas (maksimum {n})', 'Mencapai batas grup (maksimum {n})'],\n    selectAllText: 'Pilih Semua',\n    deselectAllText: 'Hapus Semua',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-it_IT.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nessuna selezione',\n    noneResultsText: 'Nessun risultato per {0}',\n    countSelectedText: 'Selezionati {0} di {1}',\n    maxOptionsText: ['Limite raggiunto ({n} {var} max)', 'Limite del gruppo raggiunto ({n} {var} max)', ['elementi', 'elemento']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-ko_KR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: '항목을 선택해주세요',\n    noneResultsText: '{0} 검색 결과가 없습니다',\n    countSelectedText: function (numSelected, numTotal) {\n      return \"{0}개를 선택하였습니다\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        '{n}개까지 선택 가능합니다',\n        '해당 그룹은 {n}개까지 선택 가능합니다'\n      ];\n    },\n    selectAllText: '전체선택',\n    deselectAllText: '전체해제',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-lt_LT.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Niekas nepasirinkta',\n    noneResultsText: 'Niekas nesutapo su {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} elementas pasirinktas\" : \"{0} elementai(-ų) pasirinkta\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Pasiekta riba ({n} elementas daugiausiai)' : 'Riba pasiekta ({n} elementai(-ų) daugiausiai)',\n        (numGroup == 1) ? 'Grupės riba pasiekta ({n} elementas daugiausiai)' : 'Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)'\n      ];\n    },\n    selectAllText: 'Pasirinkti visus',\n    deselectAllText: 'Atmesti visus',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-nb_NO.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Ingen valgt',\n    noneResultsText: 'Søket gir ingen treff {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} alternativ valgt\" : \"{0} alternativer valgt\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Grense nådd (maks {n} valg)' : 'Grense nådd (maks {n} valg)',\n        (numGroup == 1) ? 'Grense for grupper nådd (maks {n} grupper)' : 'Grense for grupper nådd (maks {n} grupper)'\n      ];\n    },\n    selectAllText: 'Merk alle',\n    deselectAllText: 'Fjern alle',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-nl_NL.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Niets geselecteerd',\n    noneResultsText: 'Geen resultaten gevonden voor {0}',\n    countSelectedText: '{0} van {1} geselecteerd',\n    maxOptionsText: ['Limiet bereikt ({n} {var} max)', 'Groep limiet bereikt ({n} {var} max)', ['items', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-pl_PL.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nic nie zaznaczono',\n    noneResultsText: 'Brak wyników wyszukiwania {0}',\n    countSelectedText: 'Zaznaczono {0} z {1}',\n    maxOptionsText: ['Osiągnięto limit ({n} {var} max)', 'Limit grupy osiągnięty ({n} {var} max)', ['elementy', 'element']],\n    selectAll: 'Zaznacz wszystkie',\n    deselectAll: 'Odznacz wszystkie',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-pt_BR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nada selecionado',\n    noneResultsText: 'Nada encontrado contendo {0}',\n    countSelectedText: 'Selecionado {0} de {1}',\n    maxOptionsText: ['Limite excedido (máx. {n} {var})', 'Limite do grupo excedido (máx. {n} {var})', ['itens', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-pt_PT.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n$.fn.selectpicker.defaults = {\nnoneSelectedText: 'Nenhum seleccionado',\nnoneResultsText: 'Sem resultados contendo {0}',\ncountSelectedText: 'Selecionado {0} de {1}',\nmaxOptionsText: ['Limite ultrapassado (máx. {n} {var})', 'Limite de seleções ultrapassado (máx. {n} {var})', ['itens', 'item']],\nmultipleSeparator: ', '\n};\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-ro_RO.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nu a fost selectat nimic',\n    noneResultsText: 'Nu exista niciun rezultat {0}',\n    countSelectedText: '{0} din {1} selectat(e)',\n    maxOptionsText: ['Limita a fost atinsa ({n} {var} max)', 'Limita de grup a fost atinsa ({n} {var} max)', ['iteme', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Ничего не выбрано',\n    noneResultsText: 'Совпадений не найдено {0}',\n    countSelectedText: 'Выбрано {0} из {1}',\n    maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['items', 'item']],\n    doneButtonText: 'Закрыть',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-sk_SK.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Vyberte zo zoznamu',\n    noneResultsText: 'Pre výraz {0} neboli nájdené žiadne výsledky',\n    countSelectedText: 'Vybrané {0} z {1}',\n    maxOptionsText: ['Limit prekročený ({n} {var} max)', 'Limit skupiny prekročený ({n} {var} max)', ['položiek', 'položka']],\n    selectAllText: 'Vybrať všetky',\n    deselectAllText: 'Zrušiť výber',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-sl_SI.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nič izbranega',\n    noneResultsText: 'Ni zadetkov za {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      \"Število izbranih: {0}\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        'Omejitev dosežena (max. izbranih: {n})',\n        'Omejitev skupine dosežena (max. izbranih: {n})'\n      ];\n    },\n    selectAllText: 'Izberi vse',\n    deselectAllText: 'Počisti izbor',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-sv_SE.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Inget valt',\n    noneResultsText: 'Inget sökresultat matchar {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected === 1) ? \"{0} alternativ valt\" : \"{0} alternativ valda\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        'Gräns uppnåd (max {n} alternativ)',\n        'Gräns uppnåd (max {n} gruppalternativ)'\n      ];\n    },\n    selectAllText: 'Markera alla',\n    deselectAllText: 'Avmarkera alla',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-tr_TR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Hiçbiri seçilmedi',\n    noneResultsText: 'Hiçbir sonuç bulunamadı {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} öğe seçildi\" : \"{0} öğe seçildi\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit aşıldı (maksimum {n} sayıda öğe )' : 'Limit aşıldı (maksimum {n} sayıda öğe)',\n        (numGroup == 1) ? 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' : 'Grup limiti aşıldı (maksimum {n} sayıda öğe)'\n      ];\n    },\n    selectAllText: 'Tümünü Seç',\n    deselectAllText: 'Seçiniz',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-ua_UA.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Нічого не вибрано',\n    noneResultsText: 'Збігів не знайдено {0}',\n    countSelectedText: 'Вибрано {0} із {1}',\n    maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: '没有选中任何项',\n    noneResultsText: '没有找到匹配项',\n    countSelectedText: '选中{1}中的{0}项',\n    maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_TW.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: '沒有選取任何項目',\n    noneResultsText: '沒有找到符合的結果',\n    countSelectedText: '已經選取{0}個項目',\n    maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'],\n    selectAllText: '選取全部',\n    deselectAllText: '全部取消',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-sweetalert/sweetalert.css",
    "content": "@keyframes showSweetAlert {\n  0% {\n    transform: scale(0.7);\n  }\n  45% {\n    transform: scale(1.05);\n  }\n  80% {\n    transform: scale(0.95);\n  }\n  100% {\n    transform: scale(1);\n  }\n}\n@keyframes hideSweetAlert {\n  0% {\n    transform: scale(1);\n  }\n  100% {\n    transform: scale(0.5);\n  }\n}\n@keyframes slideFromTop {\n  0% {\n    top: 0%;\n  }\n  100% {\n    top: 50%;\n  }\n}\n@keyframes slideToTop {\n  0% {\n    top: 50%;\n  }\n  100% {\n    top: 0%;\n  }\n}\n@keyframes slideFromBottom {\n  0% {\n    top: 70%;\n  }\n  100% {\n    top: 50%;\n  }\n}\n@keyframes slideToBottom {\n  0% {\n    top: 50%;\n  }\n  100% {\n    top: 70%;\n  }\n}\n.showSweetAlert {\n  animation: showSweetAlert 0.3s;\n}\n.showSweetAlert[data-animation=none] {\n  animation: none;\n}\n.showSweetAlert[data-animation=slide-from-top] {\n  animation: slideFromTop 0.3s;\n}\n.showSweetAlert[data-animation=slide-from-bottom] {\n  animation: slideFromBottom 0.3s;\n}\n.hideSweetAlert {\n  animation: hideSweetAlert 0.3s;\n}\n.hideSweetAlert[data-animation=none] {\n  animation: none;\n}\n.hideSweetAlert[data-animation=slide-from-top] {\n  animation: slideToTop 0.3s;\n}\n.hideSweetAlert[data-animation=slide-from-bottom] {\n  animation: slideToBottom 0.3s;\n}\n@keyframes animateSuccessTip {\n  0% {\n    width: 0;\n    left: 1px;\n    top: 19px;\n  }\n  54% {\n    width: 0;\n    left: 1px;\n    top: 19px;\n  }\n  70% {\n    width: 50px;\n    left: -8px;\n    top: 37px;\n  }\n  84% {\n    width: 17px;\n    left: 21px;\n    top: 48px;\n  }\n  100% {\n    width: 25px;\n    left: 14px;\n    top: 45px;\n  }\n}\n@keyframes animateSuccessLong {\n  0% {\n    width: 0;\n    right: 46px;\n    top: 54px;\n  }\n  65% {\n    width: 0;\n    right: 46px;\n    top: 54px;\n  }\n  84% {\n    width: 55px;\n    right: 0px;\n    top: 35px;\n  }\n  100% {\n    width: 47px;\n    right: 8px;\n    top: 38px;\n  }\n}\n@keyframes rotatePlaceholder {\n  0% {\n    transform: rotate(-45deg);\n  }\n  5% {\n    transform: rotate(-45deg);\n  }\n  12% {\n    transform: rotate(-405deg);\n  }\n  100% {\n    transform: rotate(-405deg);\n  }\n}\n.animateSuccessTip {\n  animation: animateSuccessTip 0.75s;\n}\n.animateSuccessLong {\n  animation: animateSuccessLong 0.75s;\n}\n.sa-icon.sa-success.animate::after {\n  animation: rotatePlaceholder 4.25s ease-in;\n}\n@keyframes animateErrorIcon {\n  0% {\n    transform: rotateX(100deg);\n    opacity: 0;\n  }\n  100% {\n    transform: rotateX(0deg);\n    opacity: 1;\n  }\n}\n.animateErrorIcon {\n  animation: animateErrorIcon 0.5s;\n}\n@keyframes animateXMark {\n  0% {\n    transform: scale(0.4);\n    margin-top: 26px;\n    opacity: 0;\n  }\n  50% {\n    transform: scale(0.4);\n    margin-top: 26px;\n    opacity: 0;\n  }\n  80% {\n    transform: scale(1.15);\n    margin-top: -6px;\n  }\n  100% {\n    transform: scale(1);\n    margin-top: 0;\n    opacity: 1;\n  }\n}\n.animateXMark {\n  animation: animateXMark 0.5s;\n}\n@keyframes pulseWarning {\n  0% {\n    border-color: #F8D486;\n  }\n  100% {\n    border-color: #F8BB86;\n  }\n}\n.pulseWarning {\n  animation: pulseWarning 0.75s infinite alternate;\n}\n@keyframes pulseWarningIns {\n  0% {\n    background-color: #F8D486;\n  }\n  100% {\n    background-color: #F8BB86;\n  }\n}\n.pulseWarningIns {\n  animation: pulseWarningIns 0.75s infinite alternate;\n}\n@keyframes rotate-loading {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\nbody.stop-scrolling {\n  height: 100%;\n  overflow: hidden;\n}\n.sweet-overlay {\n  background-color: rgba(0, 0, 0, 0.4);\n  position: fixed;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  display: none;\n  z-index: 10040;\n}\n.sweet-alert {\n  background-color: #ffffff;\n  width: 478px;\n  padding: 17px;\n  border-radius: 5px;\n  text-align: center;\n  position: fixed;\n  left: 50%;\n  top: 50%;\n  margin-left: -256px;\n  margin-top: -200px;\n  overflow: hidden;\n  display: none;\n  z-index: 12000;\n}\n@media all and (max-width: 767px) {\n  .sweet-alert {\n    width: auto;\n    margin-left: 0;\n    margin-right: 0;\n    left: 15px;\n    right: 15px;\n  }\n}\n.sweet-alert .form-group {\n  display: none;\n}\n.sweet-alert .form-group .sa-input-error {\n  display: none;\n}\n.sweet-alert.show-input .form-group {\n  display: block;\n}\n.sweet-alert .sa-confirm-button-container {\n  display: inline-block;\n  position: relative;\n}\n.sweet-alert .la-ball-fall {\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  margin-left: -27px;\n  margin-top: -9px;\n  opacity: 0;\n  visibility: hidden;\n}\n.sweet-alert button[disabled] {\n  opacity: .6;\n  cursor: default;\n}\n.sweet-alert button.confirm[disabled] {\n  color: transparent;\n}\n.sweet-alert button.confirm[disabled] ~ .la-ball-fall {\n  opacity: 1;\n  visibility: visible;\n  transition-delay: 0s;\n}\n.sweet-alert .sa-icon {\n  width: 80px;\n  height: 80px;\n  border: 4px solid gray;\n  border-radius: 50%;\n  margin: 20px auto;\n  position: relative;\n  box-sizing: content-box;\n}\n.sweet-alert .sa-icon.sa-error {\n  border-color: #d43f3a;\n}\n.sweet-alert .sa-icon.sa-error .sa-x-mark {\n  position: relative;\n  display: block;\n}\n.sweet-alert .sa-icon.sa-error .sa-line {\n  position: absolute;\n  height: 5px;\n  width: 47px;\n  background-color: #d9534f;\n  display: block;\n  top: 37px;\n  border-radius: 2px;\n}\n.sweet-alert .sa-icon.sa-error .sa-line.sa-left {\n  transform: rotate(45deg);\n  left: 17px;\n}\n.sweet-alert .sa-icon.sa-error .sa-line.sa-right {\n  transform: rotate(-45deg);\n  right: 16px;\n}\n.sweet-alert .sa-icon.sa-warning {\n  border-color: #eea236;\n}\n.sweet-alert .sa-icon.sa-warning .sa-body {\n  position: absolute;\n  width: 5px;\n  height: 47px;\n  left: 50%;\n  top: 10px;\n  border-radius: 2px;\n  margin-left: -2px;\n  background-color: #f0ad4e;\n}\n.sweet-alert .sa-icon.sa-warning .sa-dot {\n  position: absolute;\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  margin-left: -3px;\n  left: 50%;\n  bottom: 10px;\n  background-color: #f0ad4e;\n}\n.sweet-alert .sa-icon.sa-info {\n  border-color: #46b8da;\n}\n.sweet-alert .sa-icon.sa-info::before {\n  content: \"\";\n  position: absolute;\n  width: 5px;\n  height: 29px;\n  left: 50%;\n  bottom: 17px;\n  border-radius: 2px;\n  margin-left: -2px;\n  background-color: #5bc0de;\n}\n.sweet-alert .sa-icon.sa-info::after {\n  content: \"\";\n  position: absolute;\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  margin-left: -3px;\n  top: 19px;\n  background-color: #5bc0de;\n}\n.sweet-alert .sa-icon.sa-success {\n  border-color: #4cae4c;\n}\n.sweet-alert .sa-icon.sa-success::before,\n.sweet-alert .sa-icon.sa-success::after {\n  content: '';\n  border-radius: 50%;\n  position: absolute;\n  width: 60px;\n  height: 120px;\n  background: #ffffff;\n  transform: rotate(45deg);\n}\n.sweet-alert .sa-icon.sa-success::before {\n  border-radius: 120px 0 0 120px;\n  top: -7px;\n  left: -33px;\n  transform: rotate(-45deg);\n  transform-origin: 60px 60px;\n}\n.sweet-alert .sa-icon.sa-success::after {\n  border-radius: 0 120px 120px 0;\n  top: -11px;\n  left: 30px;\n  transform: rotate(-45deg);\n  transform-origin: 0px 60px;\n}\n.sweet-alert .sa-icon.sa-success .sa-placeholder {\n  width: 80px;\n  height: 80px;\n  border: 4px solid rgba(92, 184, 92, 0.2);\n  border-radius: 50%;\n  box-sizing: content-box;\n  position: absolute;\n  left: -4px;\n  top: -4px;\n  z-index: 2;\n}\n.sweet-alert .sa-icon.sa-success .sa-fix {\n  width: 5px;\n  height: 90px;\n  background-color: #ffffff;\n  position: absolute;\n  left: 28px;\n  top: 8px;\n  z-index: 1;\n  transform: rotate(-45deg);\n}\n.sweet-alert .sa-icon.sa-success .sa-line {\n  height: 5px;\n  background-color: #5cb85c;\n  display: block;\n  border-radius: 2px;\n  position: absolute;\n  z-index: 2;\n}\n.sweet-alert .sa-icon.sa-success .sa-line.sa-tip {\n  width: 25px;\n  left: 14px;\n  top: 46px;\n  transform: rotate(45deg);\n}\n.sweet-alert .sa-icon.sa-success .sa-line.sa-long {\n  width: 47px;\n  right: 8px;\n  top: 38px;\n  transform: rotate(-45deg);\n}\n.sweet-alert .sa-icon.sa-custom {\n  background-size: contain;\n  border-radius: 0;\n  border: none;\n  background-position: center center;\n  background-repeat: no-repeat;\n}\n.sweet-alert .btn-default:focus {\n  border-color: #cccccc;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(204, 204, 204, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(204, 204, 204, 0.6);\n}\n.sweet-alert .btn-success:focus {\n  border-color: #4cae4c;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(76, 174, 76, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(76, 174, 76, 0.6);\n}\n.sweet-alert .btn-info:focus {\n  border-color: #46b8da;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 184, 218, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 184, 218, 0.6);\n}\n.sweet-alert .btn-danger:focus {\n  border-color: #d43f3a;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(212, 63, 58, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(212, 63, 58, 0.6);\n}\n.sweet-alert .btn-warning:focus {\n  border-color: #eea236;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238, 162, 54, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238, 162, 54, 0.6);\n}\n.sweet-alert button::-moz-focus-inner {\n  border: 0;\n}\n/*!\n * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)\n * Copyright 2015 Daniel Cardoso <@DanielCardoso>\n * Licensed under MIT\n */\n.la-ball-fall,\n.la-ball-fall > div {\n  position: relative;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.la-ball-fall {\n  display: block;\n  font-size: 0;\n  color: #fff;\n}\n.la-ball-fall.la-dark {\n  color: #333;\n}\n.la-ball-fall > div {\n  display: inline-block;\n  float: none;\n  background-color: currentColor;\n  border: 0 solid currentColor;\n}\n.la-ball-fall {\n  width: 54px;\n  height: 18px;\n}\n.la-ball-fall > div {\n  width: 10px;\n  height: 10px;\n  margin: 4px;\n  border-radius: 100%;\n  opacity: 0;\n  -webkit-animation: ball-fall 1s ease-in-out infinite;\n  -moz-animation: ball-fall 1s ease-in-out infinite;\n  -o-animation: ball-fall 1s ease-in-out infinite;\n  animation: ball-fall 1s ease-in-out infinite;\n}\n.la-ball-fall > div:nth-child(1) {\n  -webkit-animation-delay: -200ms;\n  -moz-animation-delay: -200ms;\n  -o-animation-delay: -200ms;\n  animation-delay: -200ms;\n}\n.la-ball-fall > div:nth-child(2) {\n  -webkit-animation-delay: -100ms;\n  -moz-animation-delay: -100ms;\n  -o-animation-delay: -100ms;\n  animation-delay: -100ms;\n}\n.la-ball-fall > div:nth-child(3) {\n  -webkit-animation-delay: 0ms;\n  -moz-animation-delay: 0ms;\n  -o-animation-delay: 0ms;\n  animation-delay: 0ms;\n}\n.la-ball-fall.la-sm {\n  width: 26px;\n  height: 8px;\n}\n.la-ball-fall.la-sm > div {\n  width: 4px;\n  height: 4px;\n  margin: 2px;\n}\n.la-ball-fall.la-2x {\n  width: 108px;\n  height: 36px;\n}\n.la-ball-fall.la-2x > div {\n  width: 20px;\n  height: 20px;\n  margin: 8px;\n}\n.la-ball-fall.la-3x {\n  width: 162px;\n  height: 54px;\n}\n.la-ball-fall.la-3x > div {\n  width: 30px;\n  height: 30px;\n  margin: 12px;\n}\n/*\n * Animation\n */\n@-webkit-keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n@-moz-keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -moz-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -moz-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -moz-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n@-o-keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -o-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n@keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(-145%);\n    -moz-transform: translateY(-145%);\n    -o-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    -moz-transform: translateY(0);\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    -moz-transform: translateY(0);\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(145%);\n    -moz-transform: translateY(145%);\n    -o-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-sweetalert/sweetalert.js",
    "content": ";(function(window, document, undefined) {\n\"use strict\";\n\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar defaultParams = {\n  title: '',\n  text: '',\n  type: null,\n  allowOutsideClick: false,\n  showConfirmButton: true,\n  showCancelButton: false,\n  closeOnConfirm: true,\n  closeOnCancel: true,\n  confirmButtonText: 'OK',\n  confirmButtonClass: 'btn-primary',\n  cancelButtonText: 'Cancel',\n  cancelButtonClass: 'btn-default',\n  containerClass: '',\n  titleClass: '',\n  textClass: '',\n  imageUrl: null,\n  imageSize: null,\n  timer: null,\n  customClass: '',\n  html: false,\n  animation: true,\n  allowEscapeKey: true,\n  inputType: 'text',\n  inputPlaceholder: '',\n  inputValue: '',\n  showLoaderOnConfirm: false\n};\n\nexports.default = defaultParams;\n\n},{}],2:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.handleCancel = exports.handleConfirm = exports.handleButton = undefined;\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar _handleDom = require('./handle-dom');\n\n/*\n * User clicked on \"Confirm\"/\"OK\" or \"Cancel\"\n */\nvar handleButton = function handleButton(event, params, modal) {\n  var e = event || window.event;\n  var target = e.target || e.srcElement;\n\n  var targetedConfirm = target.className.indexOf('confirm') !== -1;\n  var targetedOverlay = target.className.indexOf('sweet-overlay') !== -1;\n  var modalIsVisible = (0, _handleDom.hasClass)(modal, 'visible');\n  var doneFunctionExists = params.doneFunction && modal.getAttribute('data-has-done-function') === 'true';\n\n  // Since the user can change the background-color of the confirm button programmatically,\n  // we must calculate what the color should be on hover/active\n  var normalColor, hoverColor, activeColor;\n  if (targetedConfirm && params.confirmButtonColor) {\n    normalColor = params.confirmButtonColor;\n    hoverColor = colorLuminance(normalColor, -0.04);\n    activeColor = colorLuminance(normalColor, -0.14);\n  }\n\n  function shouldSetConfirmButtonColor(color) {\n    if (targetedConfirm && params.confirmButtonColor) {\n      target.style.backgroundColor = color;\n    }\n  }\n\n  switch (e.type) {\n    case 'click':\n      var clickedOnModal = modal === target;\n      var clickedOnModalChild = (0, _handleDom.isDescendant)(modal, target);\n\n      // Ignore click outside if allowOutsideClick is false\n      if (!clickedOnModal && !clickedOnModalChild && modalIsVisible && !params.allowOutsideClick) {\n        break;\n      }\n\n      if (targetedConfirm && doneFunctionExists && modalIsVisible) {\n        handleConfirm(modal, params);\n      } else if (doneFunctionExists && modalIsVisible || targetedOverlay) {\n        handleCancel(modal, params);\n      } else if ((0, _handleDom.isDescendant)(modal, target) && target.tagName === 'BUTTON') {\n        sweetAlert.close();\n      }\n      break;\n  }\n};\n\n/*\n *  User clicked on \"Confirm\"/\"OK\"\n */\nvar handleConfirm = function handleConfirm(modal, params) {\n  var callbackValue = true;\n\n  if ((0, _handleDom.hasClass)(modal, 'show-input')) {\n    callbackValue = modal.querySelector('input').value;\n\n    if (!callbackValue) {\n      callbackValue = '';\n    }\n  }\n\n  params.doneFunction(callbackValue);\n\n  if (params.closeOnConfirm) {\n    sweetAlert.close();\n  }\n  // Disable cancel and confirm button if the parameter is true\n  if (params.showLoaderOnConfirm) {\n    sweetAlert.disableButtons();\n  }\n};\n\n/*\n *  User clicked on \"Cancel\"\n */\nvar handleCancel = function handleCancel(modal, params) {\n  // Check if callback function expects a parameter (to track cancel actions)\n  var functionAsStr = String(params.doneFunction).replace(/\\s/g, '');\n  var functionHandlesCancel = functionAsStr.substring(0, 9) === 'function(' && functionAsStr.substring(9, 10) !== ')';\n\n  if (functionHandlesCancel) {\n    params.doneFunction(false);\n  }\n\n  if (params.closeOnCancel) {\n    sweetAlert.close();\n  }\n};\n\nexports.handleButton = handleButton;\nexports.handleConfirm = handleConfirm;\nexports.handleCancel = handleCancel;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar hasClass = function hasClass(elem, className) {\n\tif (elem == null) {\n\t\treturn false;\n\t}\n  return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');\n};\n\nvar addClass = function addClass(elem, className) {\n  if (!hasClass(elem, className)) {\n    elem.className += ' ' + className;\n  }\n};\n\nvar removeClass = function removeClass(elem, className) {\n\n\tvar newClass = ' ' + ' ';\n\tif (elem != null) {\n\t\tnewClass = ' ' + elem.className.replace(/[\\t\\r\\n]/g, ' ') + ' ';\n\t}\n  \n  \n  if (hasClass(elem, className)) {\n    while (newClass.indexOf(' ' + className + ' ') >= 0) {\n      newClass = newClass.replace(' ' + className + ' ', ' ');\n    }\n    elem.className = newClass.replace(/^\\s+|\\s+$/g, '');\n  }\n};\n\nvar escapeHtml = function escapeHtml(str) {\n  var div = document.createElement('div');\n  div.appendChild(document.createTextNode(str));\n  return div.innerHTML;\n};\n\nvar _show = function _show(elem) {\n  elem.style.opacity = '';\n  elem.style.display = 'block';\n};\n\nvar show = function show(elems) {\n  if (elems && !elems.length) {\n    return _show(elems);\n  }\n  for (var i = 0; i < elems.length; ++i) {\n    _show(elems[i]);\n  }\n};\n\nvar _hide = function _hide(elem) {\n  elem.style.opacity = '';\n  elem.style.display = 'none';\n};\n\nvar hide = function hide(elems) {\n  if (elems && !elems.length) {\n    return _hide(elems);\n  }\n  for (var i = 0; i < elems.length; ++i) {\n    _hide(elems[i]);\n  }\n};\n\nvar isDescendant = function isDescendant(parent, child) {\n  var node = child.parentNode;\n  while (node !== null) {\n    if (node === parent) {\n      return true;\n    }\n    node = node.parentNode;\n  }\n  return false;\n};\n\nvar getTopMargin = function getTopMargin(elem) {\n  elem.style.left = '-9999px';\n  elem.style.display = 'block';\n\n  var height = elem.clientHeight,\n      padding;\n  if (typeof getComputedStyle !== \"undefined\") {\n    // IE 8\n    padding = parseInt(getComputedStyle(elem).getPropertyValue('padding-top'), 10);\n  } else {\n    padding = parseInt(elem.currentStyle.padding);\n  }\n\n  elem.style.left = '';\n  elem.style.display = 'none';\n  return '-' + parseInt((height + padding) / 2) + 'px';\n};\n\nvar fadeIn = function fadeIn(elem, interval) {\n  if (+elem.style.opacity < 1) {\n    interval = interval || 16;\n    elem.style.opacity = 0;\n    elem.style.display = 'block';\n    var last = +new Date();\n    var tick = function tick() {\n      elem.style.opacity = +elem.style.opacity + (new Date() - last) / 100;\n      last = +new Date();\n\n      if (+elem.style.opacity < 1) {\n        setTimeout(tick, interval);\n      }\n    };\n    tick();\n  }\n  elem.style.display = 'block'; //fallback IE8\n};\n\nvar fadeOut = function fadeOut(elem, interval) {\n  interval = interval || 16;\n  elem.style.opacity = 1;\n  var last = +new Date();\n  var tick = function tick() {\n    elem.style.opacity = +elem.style.opacity - (new Date() - last) / 100;\n    last = +new Date();\n\n    if (+elem.style.opacity > 0) {\n      setTimeout(tick, interval);\n    } else {\n      elem.style.display = 'none';\n    }\n  };\n  tick();\n};\n\nvar fireClick = function fireClick(node) {\n  // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/\n  // Then fixed for today's Chrome browser.\n  if (typeof MouseEvent === 'function') {\n    // Up-to-date approach\n    var mevt = new MouseEvent('click', {\n      view: window,\n      bubbles: false,\n      cancelable: true\n    });\n    node.dispatchEvent(mevt);\n  } else if (document.createEvent) {\n    // Fallback\n    var evt = document.createEvent('MouseEvents');\n    evt.initEvent('click', false, false);\n    node.dispatchEvent(evt);\n  } else if (document.createEventObject) {\n    node.fireEvent('onclick');\n  } else if (typeof node.onclick === 'function') {\n    node.onclick();\n  }\n};\n\nvar stopEventPropagation = function stopEventPropagation(e) {\n  // In particular, make sure the space bar doesn't scroll the main window.\n  if (typeof e.stopPropagation === 'function') {\n    e.stopPropagation();\n    e.preventDefault();\n  } else if (window.event && window.event.hasOwnProperty('cancelBubble')) {\n    window.event.cancelBubble = true;\n  }\n};\n\nexports.hasClass = hasClass;\nexports.addClass = addClass;\nexports.removeClass = removeClass;\nexports.escapeHtml = escapeHtml;\nexports._show = _show;\nexports.show = show;\nexports._hide = _hide;\nexports.hide = hide;\nexports.isDescendant = isDescendant;\nexports.getTopMargin = getTopMargin;\nexports.fadeIn = fadeIn;\nexports.fadeOut = fadeOut;\nexports.fireClick = fireClick;\nexports.stopEventPropagation = stopEventPropagation;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _handleDom = require('./handle-dom');\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar handleKeyDown = function handleKeyDown(event, params, modal) {\n  var e = event || window.event;\n  var keyCode = e.keyCode || e.which;\n\n  var $okButton = modal.querySelector('button.confirm');\n  var $cancelButton = modal.querySelector('button.cancel');\n  var $modalButtons = modal.querySelectorAll('button[tabindex]');\n\n  if ([9, 13, 32, 27].indexOf(keyCode) === -1) {\n    // Don't do work on keys we don't care about.\n    return;\n  }\n\n  var $targetElement = e.target || e.srcElement;\n\n  var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.\n  for (var i = 0; i < $modalButtons.length; i++) {\n    if ($targetElement === $modalButtons[i]) {\n      btnIndex = i;\n      break;\n    }\n  }\n\n  if (keyCode === 9) {\n    // TAB\n    if (btnIndex === -1) {\n      // No button focused. Jump to the confirm button.\n      $targetElement = $okButton;\n    } else {\n      // Cycle to the next button\n      if (btnIndex === $modalButtons.length - 1) {\n        $targetElement = $modalButtons[0];\n      } else {\n        $targetElement = $modalButtons[btnIndex + 1];\n      }\n    }\n\n    (0, _handleDom.stopEventPropagation)(e);\n    $targetElement.focus();\n\n    if (params.confirmButtonColor) {\n      (0, _handleSwalDom.setFocusStyle)($targetElement, params.confirmButtonColor);\n    }\n  } else {\n    if (keyCode === 13) {\n      if ($targetElement.tagName === 'INPUT') {\n        $targetElement = $okButton;\n        $okButton.focus();\n      }\n\n      if (btnIndex === -1) {\n        // ENTER/SPACE clicked outside of a button.\n        $targetElement = $okButton;\n      } else {\n        // Do nothing - let the browser handle it.\n        $targetElement = undefined;\n      }\n    } else if (keyCode === 27 && params.allowEscapeKey === true) {\n      $targetElement = $cancelButton;\n      (0, _handleDom.fireClick)($targetElement, e);\n    } else {\n      // Fallback - let the browser handle it.\n      $targetElement = undefined;\n    }\n  }\n};\n\nexports.default = handleKeyDown;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.fixVerticalPosition = exports.resetInputError = exports.resetInput = exports.openModal = exports.getInput = exports.getOverlay = exports.getModal = exports.sweetAlertInitialize = undefined;\n\nvar _handleDom = require('./handle-dom');\n\nvar _defaultParams = require('./default-params');\n\nvar _defaultParams2 = _interopRequireDefault(_defaultParams);\n\nvar _injectedHtml = require('./injected-html');\n\nvar _injectedHtml2 = _interopRequireDefault(_injectedHtml);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar modalClass = '.sweet-alert';\nvar overlayClass = '.sweet-overlay';\n\n/*\n * Add modal + overlay to DOM\n */\n\n\nvar sweetAlertInitialize = function sweetAlertInitialize() {\n  var sweetWrap = document.createElement('div');\n  sweetWrap.innerHTML = _injectedHtml2.default;\n\n  // Append elements to body\n  while (sweetWrap.firstChild) {\n    document.body.appendChild(sweetWrap.firstChild);\n  }\n};\n\n/*\n * Get DOM element of modal\n */\nvar getModal = function getModal() {\n  var $modal = document.querySelector(modalClass);\n\n  if (!$modal) {\n    sweetAlertInitialize();\n    $modal = getModal();\n  }\n\n  return $modal;\n};\n\n/*\n * Get DOM element of input (in modal)\n */\nvar getInput = function getInput() {\n  var $modal = getModal();\n  if ($modal) {\n    return $modal.querySelector('input');\n  }\n};\n\n/*\n * Get DOM element of overlay\n */\nvar getOverlay = function getOverlay() {\n  return document.querySelector(overlayClass);\n};\n\n/*\n * Animation when opening modal\n */\nvar openModal = function openModal(callback) {\n  var $modal = getModal();\n  (0, _handleDom.fadeIn)(getOverlay(), 10);\n  (0, _handleDom.show)($modal);\n  (0, _handleDom.addClass)($modal, 'showSweetAlert');\n  (0, _handleDom.removeClass)($modal, 'hideSweetAlert');\n\n  window.previousActiveElement = document.activeElement;\n  var $okButton = $modal.querySelector('button.confirm');\n  $okButton.focus();\n\n  setTimeout(function () {\n    (0, _handleDom.addClass)($modal, 'visible');\n  }, 500);\n\n  var timer = $modal.getAttribute('data-timer');\n\n  if (timer !== 'null' && timer !== '') {\n    var timerCallback = callback;\n    $modal.timeout = setTimeout(function () {\n      var doneFunctionExists = (timerCallback || null) && $modal.getAttribute('data-has-done-function') === 'true';\n      if (doneFunctionExists) {\n        timerCallback(null);\n      } else {\n        sweetAlert.close();\n      }\n    }, timer);\n  }\n};\n\n/*\n * Reset the styling of the input\n * (for example if errors have been shown)\n */\nvar resetInput = function resetInput() {\n  var $modal = getModal();\n  var $input = getInput();\n\n  (0, _handleDom.removeClass)($modal, 'show-input');\n  $input.value = _defaultParams2.default.inputValue;\n  $input.setAttribute('type', _defaultParams2.default.inputType);\n  $input.setAttribute('placeholder', _defaultParams2.default.inputPlaceholder);\n\n  resetInputError();\n};\n\nvar resetInputError = function resetInputError(event) {\n  // If press enter => ignore\n  if (event && event.keyCode === 13) {\n    return false;\n  }\n\n  var $modal = getModal();\n\n  var $errorIcon = $modal.querySelector('.sa-input-error');\n  (0, _handleDom.removeClass)($errorIcon, 'show');\n\n  var $errorContainer = $modal.querySelector('.form-group');\n  (0, _handleDom.removeClass)($errorContainer, 'has-error');\n};\n\n/*\n * Set \"margin-top\"-property on modal based on its computed height\n */\nvar fixVerticalPosition = function fixVerticalPosition() {\n  var $modal = getModal();\n  $modal.style.marginTop = (0, _handleDom.getTopMargin)(getModal());\n};\n\nexports.sweetAlertInitialize = sweetAlertInitialize;\nexports.getModal = getModal;\nexports.getOverlay = getOverlay;\nexports.getInput = getInput;\nexports.openModal = openModal;\nexports.resetInput = resetInput;\nexports.resetInputError = resetInputError;\nexports.fixVerticalPosition = fixVerticalPosition;\n\n},{\"./default-params\":1,\"./handle-dom\":3,\"./injected-html\":6}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar injectedHTML =\n\n// Dark overlay\n\"<div class=\\\"sweet-overlay\\\" tabIndex=\\\"-1\\\"></div>\" +\n\n// Modal\n\"<div class=\\\"sweet-alert\\\" tabIndex=\\\"-1\\\">\" +\n\n// Error icon\n\"<div class=\\\"sa-icon sa-error\\\">\\n      <span class=\\\"sa-x-mark\\\">\\n        <span class=\\\"sa-line sa-left\\\"></span>\\n        <span class=\\\"sa-line sa-right\\\"></span>\\n      </span>\\n    </div>\" +\n\n// Warning icon\n\"<div class=\\\"sa-icon sa-warning\\\">\\n      <span class=\\\"sa-body\\\"></span>\\n      <span class=\\\"sa-dot\\\"></span>\\n    </div>\" +\n\n// Info icon\n\"<div class=\\\"sa-icon sa-info\\\"></div>\" +\n\n// Success icon\n\"<div class=\\\"sa-icon sa-success\\\">\\n      <span class=\\\"sa-line sa-tip\\\"></span>\\n      <span class=\\\"sa-line sa-long\\\"></span>\\n\\n      <div class=\\\"sa-placeholder\\\"></div>\\n      <div class=\\\"sa-fix\\\"></div>\\n    </div>\" + \"<div class=\\\"sa-icon sa-custom\\\"></div>\" +\n\n// Title, text and input\n\"<h2>Title</h2>\\n    <p class=\\\"lead text-muted\\\">Text</p>\\n    <div class=\\\"form-group\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" tabIndex=\\\"3\\\" />\\n      <span class=\\\"sa-input-error help-block\\\">\\n        <span class=\\\"glyphicon glyphicon-exclamation-sign\\\"></span> <span class=\\\"sa-help-text\\\">Not valid</span>\\n      </span>\\n    </div>\" +\n\n// Cancel and confirm buttons\n\"<div class=\\\"sa-button-container\\\">\\n      <button class=\\\"cancel btn btn-lg\\\" tabIndex=\\\"2\\\">Cancel</button>\\n      <div class=\\\"sa-confirm-button-container\\\">\\n        <button class=\\\"confirm btn btn-lg\\\" tabIndex=\\\"1\\\">OK</button>\" +\n\n// Loading animation\n\"<div class=\\\"la-ball-fall\\\">\\n          <div></div>\\n          <div></div>\\n          <div></div>\\n        </div>\\n      </div>\\n    </div>\" +\n\n// End of modal\n\"</div>\";\n\nexports.default = injectedHTML;\n\n},{}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _utils = require('./utils');\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar _handleDom = require('./handle-dom');\n\nvar alertTypes = ['error', 'warning', 'info', 'success', 'input', 'prompt'];\n\n/*\n * Set type, text and actions on modal\n */\nvar setParameters = function setParameters(params) {\n  var modal = (0, _handleSwalDom.getModal)();\n\n  var $title = modal.querySelector('h2');\n  var $text = modal.querySelector('p');\n  var $cancelBtn = modal.querySelector('button.cancel');\n  var $confirmBtn = modal.querySelector('button.confirm');\n\n  /*\n   * Title\n   */\n  $title.innerHTML = params.html ? params.title : (0, _handleDom.escapeHtml)(params.title).split('\\n').join('<br>');\n\n  /*\n   * Text\n   */\n  $text.innerHTML = params.html ? params.text : (0, _handleDom.escapeHtml)(params.text || '').split('\\n').join('<br>');\n  if (params.text) (0, _handleDom.show)($text);\n\n  /*\n   * Custom class\n   */\n  if (params.customClass) {\n    (0, _handleDom.addClass)(modal, params.customClass);\n    modal.setAttribute('data-custom-class', params.customClass);\n  } else {\n    // Find previously set classes and remove them\n    var customClass = modal.getAttribute('data-custom-class');\n    (0, _handleDom.removeClass)(modal, customClass);\n    modal.setAttribute('data-custom-class', '');\n  }\n\n  /*\n   * Icon\n   */\n  (0, _handleDom.hide)(modal.querySelectorAll('.sa-icon'));\n\n  if (params.type && !(0, _utils.isIE8)()) {\n    var _ret = function () {\n\n      var validType = false;\n\n      for (var i = 0; i < alertTypes.length; i++) {\n        if (params.type === alertTypes[i]) {\n          validType = true;\n          break;\n        }\n      }\n\n      if (!validType) {\n        logStr('Unknown alert type: ' + params.type);\n        return {\n          v: false\n        };\n      }\n\n      var typesWithIcons = ['success', 'error', 'warning', 'info'];\n      var $icon = void 0;\n\n      if (typesWithIcons.indexOf(params.type) !== -1) {\n        $icon = modal.querySelector('.sa-icon.' + 'sa-' + params.type);\n        (0, _handleDom.show)($icon);\n      }\n\n      var $input = (0, _handleSwalDom.getInput)();\n\n      // Animate icon\n      switch (params.type) {\n\n        case 'success':\n          (0, _handleDom.addClass)($icon, 'animate');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-tip'), 'animateSuccessTip');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-long'), 'animateSuccessLong');\n          break;\n\n        case 'error':\n          (0, _handleDom.addClass)($icon, 'animateErrorIcon');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-x-mark'), 'animateXMark');\n          break;\n\n        case 'warning':\n          (0, _handleDom.addClass)($icon, 'pulseWarning');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-body'), 'pulseWarningIns');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-dot'), 'pulseWarningIns');\n          break;\n\n        case 'input':\n        case 'prompt':\n          $input.setAttribute('type', params.inputType);\n          $input.value = params.inputValue;\n          $input.setAttribute('placeholder', params.inputPlaceholder);\n          (0, _handleDom.addClass)(modal, 'show-input');\n          setTimeout(function () {\n            $input.focus();\n            $input.addEventListener('keyup', swal.resetInputError);\n          }, 400);\n          break;\n      }\n    }();\n\n    if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n  }\n\n  /*\n   * Custom image\n   */\n  if (params.imageUrl) {\n    var $customIcon = modal.querySelector('.sa-icon.sa-custom');\n\n    $customIcon.style.backgroundImage = 'url(' + params.imageUrl + ')';\n    (0, _handleDom.show)($customIcon);\n\n    var _imgWidth = 80;\n    var _imgHeight = 80;\n\n    if (params.imageSize) {\n      var dimensions = params.imageSize.toString().split('x');\n      var imgWidth = dimensions[0];\n      var imgHeight = dimensions[1];\n\n      if (!imgWidth || !imgHeight) {\n        logStr('Parameter imageSize expects value with format WIDTHxHEIGHT, got ' + params.imageSize);\n      } else {\n        _imgWidth = imgWidth;\n        _imgHeight = imgHeight;\n      }\n    }\n\n    $customIcon.setAttribute('style', $customIcon.getAttribute('style') + 'width:' + _imgWidth + 'px; height:' + _imgHeight + 'px');\n  }\n\n  /*\n   * Show cancel button?\n   */\n  modal.setAttribute('data-has-cancel-button', params.showCancelButton);\n  if (params.showCancelButton) {\n    $cancelBtn.style.display = 'inline-block';\n  } else {\n    (0, _handleDom.hide)($cancelBtn);\n  }\n\n  /*\n   * Show confirm button?\n   */\n  modal.setAttribute('data-has-confirm-button', params.showConfirmButton);\n  if (params.showConfirmButton) {\n    $confirmBtn.style.display = 'inline-block';\n  } else {\n    (0, _handleDom.hide)($confirmBtn);\n  }\n\n  /*\n   * Custom text on cancel/confirm buttons\n   */\n  if (params.cancelButtonText) {\n    $cancelBtn.innerHTML = (0, _handleDom.escapeHtml)(params.cancelButtonText);\n  }\n  if (params.confirmButtonText) {\n    $confirmBtn.innerHTML = (0, _handleDom.escapeHtml)(params.confirmButtonText);\n  }\n\n  /*\n   * Reset confirm buttons to default class (Ugly fix)\n   */\n  $confirmBtn.className = 'confirm btn btn-lg';\n\n  /*\n   * Attach selected class to the sweet alert modal\n   */\n  (0, _handleDom.addClass)(modal, params.containerClass);\n\n  /*\n   * Set confirm button to selected class\n   */\n  (0, _handleDom.addClass)($confirmBtn, params.confirmButtonClass);\n\n  /*\n   * Set cancel button to selected class\n   */\n  (0, _handleDom.addClass)($cancelBtn, params.cancelButtonClass);\n\n  /*\n   * Set title to selected class\n   */\n  (0, _handleDom.addClass)($title, params.titleClass);\n\n  /*\n   * Set text to selected class\n   */\n  (0, _handleDom.addClass)($text, params.textClass);\n\n  /*\n   * Allow outside click\n   */\n  modal.setAttribute('data-allow-outside-click', params.allowOutsideClick);\n\n  /*\n   * Callback function\n   */\n  var hasDoneFunction = params.doneFunction ? true : false;\n  modal.setAttribute('data-has-done-function', hasDoneFunction);\n\n  /*\n   * Animation\n   */\n  if (!params.animation) {\n    modal.setAttribute('data-animation', 'none');\n  } else if (typeof params.animation === 'string') {\n    modal.setAttribute('data-animation', params.animation); // Custom animation\n  } else {\n      modal.setAttribute('data-animation', 'pop');\n    }\n\n  /*\n   * Timer\n   */\n  modal.setAttribute('data-timer', params.timer);\n};\n\nexports.default = setParameters;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5,\"./utils\":8}],8:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Allow user to pass their own params\n */\nvar extend = function extend(a, b) {\n  for (var key in b) {\n    if (b.hasOwnProperty(key)) {\n      a[key] = b[key];\n    }\n  }\n  return a;\n};\n\n/*\n * Check if the user is using Internet Explorer 8 (for fallbacks)\n */\nvar isIE8 = function isIE8() {\n  return window.attachEvent && !window.addEventListener;\n};\n\n/*\n * IE compatible logging for developers\n */\nvar logStr = function logStr(string) {\n  if (window.console) {\n    // IE...\n    window.console.log('SweetAlert: ' + string);\n  }\n};\n\nexports.extend = extend;\nexports.isIE8 = isIE8;\nexports.logStr = logStr;\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; }; // SweetAlert\n// 2014-2015 (c) - Tristan Edwards\n// github.com/t4t5/sweetalert\n\n/*\n * jQuery-like functions for manipulating the DOM\n */\n\n\n/*\n * Handy utilities\n */\n\n\n/*\n *  Handle sweetAlert's DOM elements\n */\n\n\n// Handle button events and keyboard events\n\n\n// Default values\n\n\nvar _handleDom = require('./modules/handle-dom');\n\nvar _utils = require('./modules/utils');\n\nvar _handleSwalDom = require('./modules/handle-swal-dom');\n\nvar _handleClick = require('./modules/handle-click');\n\nvar _handleKey = require('./modules/handle-key');\n\nvar _handleKey2 = _interopRequireDefault(_handleKey);\n\nvar _defaultParams = require('./modules/default-params');\n\nvar _defaultParams2 = _interopRequireDefault(_defaultParams);\n\nvar _setParams = require('./modules/set-params');\n\nvar _setParams2 = _interopRequireDefault(_setParams);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * (We also use window.previousActiveElement as a global variable)\n */\nvar previousWindowKeyDown;\nvar lastFocusedButton;\n\n/*\n * Global sweetAlert function\n * (this is what the user calls)\n */\nvar sweetAlert, _swal;\n\nexports.default = sweetAlert = _swal = function swal() {\n  var customizations = arguments[0];\n\n  (0, _handleDom.addClass)(document.body, 'stop-scrolling');\n  (0, _handleSwalDom.resetInput)();\n\n  /*\n   * Use argument if defined or default value from params object otherwise.\n   * Supports the case where a default value is boolean true and should be\n   * overridden by a corresponding explicit argument which is boolean false.\n   */\n  function argumentOrDefault(key) {\n    var args = customizations;\n    return args[key] === undefined ? _defaultParams2.default[key] : args[key];\n  }\n\n  if (customizations === undefined) {\n    (0, _utils.logStr)('SweetAlert expects at least 1 attribute!');\n    return false;\n  }\n\n  var params = (0, _utils.extend)({}, _defaultParams2.default);\n\n  switch (typeof customizations === 'undefined' ? 'undefined' : _typeof(customizations)) {\n\n    // Ex: swal(\"Hello\", \"Just testing\", \"info\");\n    case 'string':\n      params.title = customizations;\n      params.text = arguments[1] || '';\n      params.type = arguments[2] || '';\n      break;\n\n    // Ex: swal({ title:\"Hello\", text: \"Just testing\", type: \"info\" });\n    case 'object':\n      if (customizations.title === undefined) {\n        (0, _utils.logStr)('Missing \"title\" argument!');\n        return false;\n      }\n\n      params.title = customizations.title;\n\n      for (var customName in _defaultParams2.default) {\n        params[customName] = argumentOrDefault(customName);\n      }\n\n      // Show \"Confirm\" instead of \"OK\" if cancel button is visible\n      params.confirmButtonText = params.showCancelButton ? 'Confirm' : _defaultParams2.default.confirmButtonText;\n      params.confirmButtonText = argumentOrDefault('confirmButtonText');\n\n      // Callback function when clicking on \"OK\"/\"Cancel\"\n      params.doneFunction = arguments[1] || null;\n\n      break;\n\n    default:\n      (0, _utils.logStr)('Unexpected type of argument! Expected \"string\" or \"object\", got ' + (typeof customizations === 'undefined' ? 'undefined' : _typeof(customizations)));\n      return false;\n\n  }\n\n  (0, _setParams2.default)(params);\n  (0, _handleSwalDom.fixVerticalPosition)();\n  (0, _handleSwalDom.openModal)(arguments[1]);\n\n  // Modal interactions\n  var modal = (0, _handleSwalDom.getModal)();\n\n  /*\n   * Make sure all modal buttons respond to all events\n   */\n  var $buttons = modal.querySelectorAll('button');\n  var buttonEvents = ['onclick'];\n  var onButtonEvent = function onButtonEvent(e) {\n    return (0, _handleClick.handleButton)(e, params, modal);\n  };\n\n  for (var btnIndex = 0; btnIndex < $buttons.length; btnIndex++) {\n    for (var evtIndex = 0; evtIndex < buttonEvents.length; evtIndex++) {\n      var btnEvt = buttonEvents[evtIndex];\n      $buttons[btnIndex][btnEvt] = onButtonEvent;\n    }\n  }\n\n  // Clicking outside the modal dismisses it (if allowed by user)\n  (0, _handleSwalDom.getOverlay)().onclick = onButtonEvent;\n\n  previousWindowKeyDown = window.onkeydown;\n\n  var onKeyEvent = function onKeyEvent(e) {\n    return (0, _handleKey2.default)(e, params, modal);\n  };\n  window.onkeydown = onKeyEvent;\n\n  window.onfocus = function () {\n    // When the user has focused away and focused back from the whole window.\n    setTimeout(function () {\n      // Put in a timeout to jump out of the event sequence.\n      // Calling focus() in the event sequence confuses things.\n      if (lastFocusedButton !== undefined) {\n        lastFocusedButton.focus();\n        lastFocusedButton = undefined;\n      }\n    }, 0);\n  };\n\n  // Show alert with enabled buttons always\n  _swal.enableButtons();\n};\n\n/*\n * Set default params for each popup\n * @param {Object} userParams\n */\n\n\nsweetAlert.setDefaults = _swal.setDefaults = function (userParams) {\n  if (!userParams) {\n    throw new Error('userParams is required');\n  }\n  if ((typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {\n    throw new Error('userParams has to be a object');\n  }\n\n  (0, _utils.extend)(_defaultParams2.default, userParams);\n};\n\n/*\n * Animation when closing modal\n */\nsweetAlert.close = _swal.close = function () {\n  var modal = (0, _handleSwalDom.getModal)();\n\n  (0, _handleDom.fadeOut)((0, _handleSwalDom.getOverlay)(), 5);\n  (0, _handleDom.fadeOut)(modal, 5);\n  (0, _handleDom.removeClass)(modal, 'showSweetAlert');\n  (0, _handleDom.addClass)(modal, 'hideSweetAlert');\n  (0, _handleDom.removeClass)(modal, 'visible');\n\n  /*\n   * Reset icon animations\n   */\n  var $successIcon = modal.querySelector('.sa-icon.sa-success');\n  (0, _handleDom.removeClass)($successIcon, 'animate');\n  (0, _handleDom.removeClass)($successIcon.querySelector('.sa-tip'), 'animateSuccessTip');\n  (0, _handleDom.removeClass)($successIcon.querySelector('.sa-long'), 'animateSuccessLong');\n\n  var $errorIcon = modal.querySelector('.sa-icon.sa-error');\n  (0, _handleDom.removeClass)($errorIcon, 'animateErrorIcon');\n  (0, _handleDom.removeClass)($errorIcon.querySelector('.sa-x-mark'), 'animateXMark');\n\n  var $warningIcon = modal.querySelector('.sa-icon.sa-warning');\n  (0, _handleDom.removeClass)($warningIcon, 'pulseWarning');\n  (0, _handleDom.removeClass)($warningIcon.querySelector('.sa-body'), 'pulseWarningIns');\n  (0, _handleDom.removeClass)($warningIcon.querySelector('.sa-dot'), 'pulseWarningIns');\n\n  // Reset custom class (delay so that UI changes aren't visible)\n  setTimeout(function () {\n    var customClass = modal.getAttribute('data-custom-class');\n    (0, _handleDom.removeClass)(modal, customClass);\n  }, 300);\n\n  // Make page scrollable again\n  (0, _handleDom.removeClass)(document.body, 'stop-scrolling');\n\n  // Reset the page to its previous state\n  window.onkeydown = previousWindowKeyDown;\n  if (window.previousActiveElement) {\n    window.previousActiveElement.focus();\n  }\n  lastFocusedButton = undefined;\n  clearTimeout(modal.timeout);\n\n  return true;\n};\n\n/*\n * Validation of the input field is done by user\n * If something is wrong => call showInputError with errorMessage\n */\nsweetAlert.showInputError = _swal.showInputError = function (errorMessage) {\n  var modal = (0, _handleSwalDom.getModal)();\n\n  var $errorIcon = modal.querySelector('.sa-input-error');\n  (0, _handleDom.addClass)($errorIcon, 'show');\n\n  var $errorContainer = modal.querySelector('.form-group');\n  (0, _handleDom.addClass)($errorContainer, 'has-error');\n\n  $errorContainer.querySelector('.sa-help-text').innerHTML = errorMessage;\n\n  setTimeout(function () {\n    sweetAlert.enableButtons();\n  }, 1);\n\n  modal.querySelector('input').focus();\n};\n\n/*\n * Reset input error DOM elements\n */\nsweetAlert.resetInputError = _swal.resetInputError = function (event) {\n  // If press enter => ignore\n  if (event && event.keyCode === 13) {\n    return false;\n  }\n\n  var $modal = (0, _handleSwalDom.getModal)();\n\n  var $errorIcon = $modal.querySelector('.sa-input-error');\n  (0, _handleDom.removeClass)($errorIcon, 'show');\n\n  var $errorContainer = $modal.querySelector('.form-group');\n  (0, _handleDom.removeClass)($errorContainer, 'has-error');\n};\n\n/*\n * Disable confirm and cancel buttons\n */\nsweetAlert.disableButtons = _swal.disableButtons = function (event) {\n  var modal = (0, _handleSwalDom.getModal)();\n  var $confirmButton = modal.querySelector('button.confirm');\n  var $cancelButton = modal.querySelector('button.cancel');\n  $confirmButton.disabled = true;\n  $cancelButton.disabled = true;\n};\n\n/*\n * Enable confirm and cancel buttons\n */\nsweetAlert.enableButtons = _swal.enableButtons = function (event) {\n  var modal = (0, _handleSwalDom.getModal)();\n  var $confirmButton = modal.querySelector('button.confirm');\n  var $cancelButton = modal.querySelector('button.cancel');\n  $confirmButton.disabled = false;\n  $cancelButton.disabled = false;\n};\n\nif (typeof window !== 'undefined') {\n  // The 'handle-click' module requires\n  // that 'sweetAlert' was set as global.\n  window.sweetAlert = window.swal = sweetAlert;\n} else {\n  (0, _utils.logStr)('SweetAlert is a frontend module!');\n}\n\n},{\"./modules/default-params\":1,\"./modules/handle-click\":2,\"./modules/handle-dom\":3,\"./modules/handle-key\":4,\"./modules/handle-swal-dom\":5,\"./modules/set-params\":7,\"./modules/utils\":8}]},{},[9]);\n\n/*\n * Use SweetAlert with RequireJS\n */\n\nif (typeof define === 'function' && define.amd) {\n  define(function () {\n    return sweetAlert;\n  });\n} else if (typeof module !== 'undefined' && module.exports) {\n  module.exports = sweetAlert;\n}\n\n})(window, document);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-switch/css/bootstrap-switch.css",
    "content": "/* ========================================================================\n * bootstrap-switch - v3.3.2\n * http://www.bootstrap-switch.org\n * ========================================================================\n * Copyright 2012-2013 Mattia Larentis\n *\n * ========================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================================\n */\n\n.bootstrap-switch {\n  display: inline-block;\n  direction: ltr;\n  cursor: pointer;\n  border-radius: 4px;\n  border: 1px solid;\n  border-color: #cccccc;\n  position: relative;\n  text-align: left;\n  overflow: hidden;\n  line-height: 8px;\n  z-index: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.bootstrap-switch .bootstrap-switch-container {\n  display: inline-block;\n  top: 0;\n  border-radius: 4px;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  cursor: pointer;\n  display: inline-block !important;\n  height: 100%;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 20px;\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #428bca;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #5bc0de;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #5cb85c;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f0ad4e;\n  color: #fff;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #d9534f;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #000;\n  background: #eeeeee;\n}\n.bootstrap-switch .bootstrap-switch-label {\n  text-align: center;\n  margin-top: -1px;\n  margin-bottom: -1px;\n  z-index: 100;\n  color: #333333;\n  background: #ffffff;\n}\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  position: absolute !important;\n  top: 0;\n  left: 0;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  z-index: -1;\n}\n.bootstrap-switch input[type='radio'].form-control,\n.bootstrap-switch input[type='checkbox'].form-control {\n  height: auto;\n}\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  padding: 6px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n}\n.bootstrap-switch.bootstrap-switch-disabled,\n.bootstrap-switch.bootstrap-switch-readonly,\n.bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  -webkit-transition: margin-left 0.5s;\n  transition: margin-left 0.5s;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-focused {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-timepicker/css/bootstrap-timepicker.css",
    "content": "/*!\n * Timepicker Component for Twitter Bootstrap\n *\n * Copyright 2013 Joris de Wit\n *\n * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n.bootstrap-timepicker {\n  position: relative;\n}\n.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu {\n  left: auto;\n  right: 0;\n}\n.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before {\n  left: auto;\n  right: 12px;\n}\n.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after {\n  left: auto;\n  right: 13px;\n}\n.bootstrap-timepicker .add-on {\n  cursor: pointer;\n}\n.bootstrap-timepicker .add-on i {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.bootstrap-timepicker-widget.dropdown-menu {\n  padding: 4px;\n}\n.bootstrap-timepicker-widget.dropdown-menu.open {\n  display: inline-block;\n}\n.bootstrap-timepicker-widget.dropdown-menu:before {\n  border-bottom: 7px solid rgba(0, 0, 0, 0.2);\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n}\n.bootstrap-timepicker-widget.dropdown-menu:after {\n  border-bottom: 6px solid #FFFFFF;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n}\n.bootstrap-timepicker-widget.timepicker-orient-left:before {\n  left: 6px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-left:after {\n  left: 7px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-right:before {\n  right: 6px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-right:after {\n  right: 7px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-top:before {\n  top: -7px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-top:after {\n  top: -6px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-bottom:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid #999;\n}\n.bootstrap-timepicker-widget.timepicker-orient-bottom:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.bootstrap-timepicker-widget a.btn,\n.bootstrap-timepicker-widget input {\n  border-radius: 4px;\n}\n.bootstrap-timepicker-widget table {\n  width: 100%;\n  margin: 0;\n}\n.bootstrap-timepicker-widget table td {\n  text-align: center;\n  height: 30px;\n  margin: 0;\n  padding: 2px;\n}\n.bootstrap-timepicker-widget table td:not(.separator) {\n  min-width: 30px;\n}\n.bootstrap-timepicker-widget table td span {\n  width: 100%;\n}\n.bootstrap-timepicker-widget table td a {\n  border: 1px transparent solid;\n  width: 100%;\n  display: inline-block;\n  margin: 0;\n  padding: 8px 0;\n  outline: 0;\n  color: #333;\n}\n.bootstrap-timepicker-widget table td a:hover {\n  text-decoration: none;\n  background-color: #eee;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border-color: #ddd;\n}\n.bootstrap-timepicker-widget table td a i {\n  margin-top: 2px;\n  font-size: 18px;\n}\n.bootstrap-timepicker-widget table td input {\n  width: 25px;\n  margin: 0;\n  text-align: center;\n}\n.bootstrap-timepicker-widget .modal-content {\n  padding: 4px;\n}\n@media (min-width: 767px) {\n  .bootstrap-timepicker-widget.modal {\n    width: 200px;\n    margin-left: -100px;\n  }\n}\n@media (max-width: 767px) {\n  .bootstrap-timepicker {\n    width: 100%;\n  }\n  .bootstrap-timepicker .dropdown-menu {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-timepicker/js/bootstrap-timepicker.js",
    "content": "/*!\n * Timepicker Component for Twitter Bootstrap\n *\n * Copyright 2013 Joris de Wit\n *\n * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n(function($, window, document, undefined) {\n  'use strict';\n\n  // TIMEPICKER PUBLIC CLASS DEFINITION\n  var Timepicker = function(element, options) {\n    this.widget = '';\n    this.$element = $(element);\n    this.defaultTime = options.defaultTime;\n    this.disableFocus = options.disableFocus;\n    this.disableMousewheel = options.disableMousewheel;\n    this.isOpen = options.isOpen;\n    this.minuteStep = options.minuteStep;\n    this.modalBackdrop = options.modalBackdrop;\n    this.orientation = options.orientation;\n    this.secondStep = options.secondStep;\n    this.showInputs = options.showInputs;\n    this.showMeridian = options.showMeridian;\n    this.showSeconds = options.showSeconds;\n    this.template = options.template;\n    this.appendWidgetTo = options.appendWidgetTo;\n    this.showWidgetOnAddonClick = options.showWidgetOnAddonClick;\n\n    this._init();\n  };\n\n  Timepicker.prototype = {\n\n    constructor: Timepicker,\n    _init: function() {\n      var self = this;\n\n      if (this.showWidgetOnAddonClick && (this.$element.parent().hasClass('input-append') || this.$element.parent().hasClass('input-prepend'))) {\n        this.$element.parent('.input-append, .input-prepend').find('.add-on').on({\n          'click.timepicker': $.proxy(this.showWidget, this)\n        });\n        this.$element.on({\n          'focus.timepicker': $.proxy(this.highlightUnit, this),\n          'click.timepicker': $.proxy(this.highlightUnit, this),\n          'keydown.timepicker': $.proxy(this.elementKeydown, this),\n          'blur.timepicker': $.proxy(this.blurElement, this),\n          'mousewheel.timepicker DOMMouseScroll.timepicker': $.proxy(this.mousewheel, this)\n        });\n      } else {\n        if (this.template) {\n          this.$element.on({\n            'focus.timepicker': $.proxy(this.showWidget, this),\n            'click.timepicker': $.proxy(this.showWidget, this),\n            'blur.timepicker': $.proxy(this.blurElement, this),\n            'mousewheel.timepicker DOMMouseScroll.timepicker': $.proxy(this.mousewheel, this)\n          });\n        } else {\n          this.$element.on({\n            'focus.timepicker': $.proxy(this.highlightUnit, this),\n            'click.timepicker': $.proxy(this.highlightUnit, this),\n            'keydown.timepicker': $.proxy(this.elementKeydown, this),\n            'blur.timepicker': $.proxy(this.blurElement, this),\n            'mousewheel.timepicker DOMMouseScroll.timepicker': $.proxy(this.mousewheel, this)\n          });\n        }\n      }\n\n      if (this.template !== false) {\n        this.$widget = $(this.getTemplate()).on('click', $.proxy(this.widgetClick, this));\n      } else {\n        this.$widget = false;\n      }\n\n      if (this.showInputs && this.$widget !== false) {\n        this.$widget.find('input').each(function() {\n          $(this).on({\n            'click.timepicker': function() { $(this).select(); },\n            'keydown.timepicker': $.proxy(self.widgetKeydown, self),\n            'keyup.timepicker': $.proxy(self.widgetKeyup, self)\n          });\n        });\n      }\n\n      this.setDefaultTime(this.defaultTime);\n    },\n\n    blurElement: function() {\n      this.highlightedUnit = null;\n      this.updateFromElementVal();\n    },\n\n    clear: function() {\n      this.hour = '';\n      this.minute = '';\n      this.second = '';\n      this.meridian = '';\n\n      this.$element.val('');\n    },\n\n    decrementHour: function() {\n      if (this.showMeridian) {\n        if (this.hour === 1) {\n          this.hour = 12;\n        } else if (this.hour === 12) {\n          this.hour--;\n\n          return this.toggleMeridian();\n        } else if (this.hour === 0) {\n          this.hour = 11;\n\n          return this.toggleMeridian();\n        } else {\n          this.hour--;\n        }\n      } else {\n        if (this.hour <= 0) {\n          this.hour = 23;\n        } else {\n          this.hour--;\n        }\n      }\n    },\n\n    decrementMinute: function(step) {\n      var newVal;\n\n      if (step) {\n        newVal = this.minute - step;\n      } else {\n        newVal = this.minute - this.minuteStep;\n      }\n\n      if (newVal < 0) {\n        this.decrementHour();\n        this.minute = newVal + 60;\n      } else {\n        this.minute = newVal;\n      }\n    },\n\n    decrementSecond: function() {\n      var newVal = this.second - this.secondStep;\n\n      if (newVal < 0) {\n        this.decrementMinute(true);\n        this.second = newVal + 60;\n      } else {\n        this.second = newVal;\n      }\n    },\n\n    elementKeydown: function(e) {\n      switch (e.keyCode) {\n      case 9: //tab\n      case 27: // escape\n        this.updateFromElementVal();\n        break;\n      case 37: // left arrow\n        e.preventDefault();\n        this.highlightPrevUnit();\n        break;\n      case 38: // up arrow\n        e.preventDefault();\n        switch (this.highlightedUnit) {\n        case 'hour':\n          this.incrementHour();\n          this.highlightHour();\n          break;\n        case 'minute':\n          this.incrementMinute();\n          this.highlightMinute();\n          break;\n        case 'second':\n          this.incrementSecond();\n          this.highlightSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          this.highlightMeridian();\n          break;\n        }\n        this.update();\n        break;\n      case 39: // right arrow\n        e.preventDefault();\n        this.highlightNextUnit();\n        break;\n      case 40: // down arrow\n        e.preventDefault();\n        switch (this.highlightedUnit) {\n        case 'hour':\n          this.decrementHour();\n          this.highlightHour();\n          break;\n        case 'minute':\n          this.decrementMinute();\n          this.highlightMinute();\n          break;\n        case 'second':\n          this.decrementSecond();\n          this.highlightSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          this.highlightMeridian();\n          break;\n        }\n\n        this.update();\n        break;\n      }\n    },\n\n    getCursorPosition: function() {\n      var input = this.$element.get(0);\n\n      if ('selectionStart' in input) {// Standard-compliant browsers\n\n        return input.selectionStart;\n      } else if (document.selection) {// IE fix\n        input.focus();\n        var sel = document.selection.createRange(),\n          selLen = document.selection.createRange().text.length;\n\n        sel.moveStart('character', - input.value.length);\n\n        return sel.text.length - selLen;\n      }\n    },\n\n    getTemplate: function() {\n      var template,\n        hourTemplate,\n        minuteTemplate,\n        secondTemplate,\n        meridianTemplate,\n        templateContent;\n\n      if (this.showInputs) {\n        hourTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-hour\" maxlength=\"2\"/>';\n        minuteTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-minute\" maxlength=\"2\"/>';\n        secondTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-second\" maxlength=\"2\"/>';\n        meridianTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-meridian\" maxlength=\"2\"/>';\n      } else {\n        hourTemplate = '<span class=\"bootstrap-timepicker-hour\"></span>';\n        minuteTemplate = '<span class=\"bootstrap-timepicker-minute\"></span>';\n        secondTemplate = '<span class=\"bootstrap-timepicker-second\"></span>';\n        meridianTemplate = '<span class=\"bootstrap-timepicker-meridian\"></span>';\n      }\n\n      templateContent = '<table>'+\n         '<tr>'+\n           '<td><a href=\"#\" data-action=\"incrementHour\"><i class=\"fa fa-angle-up\"></i></a></td>'+\n           '<td class=\"separator\">&nbsp;</td>'+\n           '<td><a href=\"#\" data-action=\"incrementMinute\"><i class=\"fa fa-angle-up\"></i></a></td>'+\n           (this.showSeconds ?\n             '<td class=\"separator\">&nbsp;</td>'+\n             '<td><a href=\"#\" data-action=\"incrementSecond\"><i class=\"fa fa-angle-up\"></i></a></td>'\n           : '') +\n           (this.showMeridian ?\n             '<td class=\"separator\">&nbsp;</td>'+\n             '<td class=\"meridian-column\"><a href=\"#\" data-action=\"toggleMeridian\"><i class=\"fa fa-angle-up\"></i></a></td>'\n           : '') +\n         '</tr>'+\n         '<tr>'+\n           '<td>'+ hourTemplate +'</td> '+\n           '<td class=\"separator\">:</td>'+\n           '<td>'+ minuteTemplate +'</td> '+\n           (this.showSeconds ?\n            '<td class=\"separator\">:</td>'+\n            '<td>'+ secondTemplate +'</td>'\n           : '') +\n           (this.showMeridian ?\n            '<td class=\"separator\">&nbsp;</td>'+\n            '<td>'+ meridianTemplate +'</td>'\n           : '') +\n         '</tr>'+\n         '<tr>'+\n           '<td><a href=\"#\" data-action=\"decrementHour\"><i class=\"fa fa-angle-down\"></i></a></td>'+\n           '<td class=\"separator\"></td>'+\n           '<td><a href=\"#\" data-action=\"decrementMinute\"><i class=\"fa fa-angle-down\"></i></a></td>'+\n           (this.showSeconds ?\n            '<td class=\"separator\">&nbsp;</td>'+\n            '<td><a href=\"#\" data-action=\"decrementSecond\"><i class=\"fa fa-angle-down\"></i></a></td>'\n           : '') +\n           (this.showMeridian ?\n            '<td class=\"separator\">&nbsp;</td>'+\n            '<td><a href=\"#\" data-action=\"toggleMeridian\"><i class=\"fa fa-angle-down\"></i></a></td>'\n           : '') +\n         '</tr>'+\n       '</table>';\n\n      switch(this.template) {\n      case 'modal':\n        template = '<div class=\"bootstrap-timepicker-widget modal hide fade in\" data-backdrop=\"'+ (this.modalBackdrop ? 'true' : 'false') +'\">'+\n          '<div class=\"modal-header\">'+\n            '<a href=\"#\" class=\"close\" data-dismiss=\"modal\">×</a>'+\n            '<h3>Pick a Time</h3>'+\n          '</div>'+\n          '<div class=\"modal-content\">'+\n            templateContent +\n          '</div>'+\n          '<div class=\"modal-footer\">'+\n            '<a href=\"#\" class=\"btn btn-primary\" data-dismiss=\"modal\">OK</a>'+\n          '</div>'+\n        '</div>';\n        break;\n      case 'dropdown':\n        template = '<div class=\"bootstrap-timepicker-widget dropdown-menu\">'+ templateContent +'</div>';\n        break;\n      }\n\n      return template;\n    },\n\n    getTime: function() {\n      if (this.hour === '') {\n        return '';\n      }\n\n      return this.hour + ':' + (this.minute.toString().length === 1 ? '0' + this.minute : this.minute) + (this.showSeconds ? ':' + (this.second.toString().length === 1 ? '0' + this.second : this.second) : '') + (this.showMeridian ? ' ' + this.meridian : '');\n    },\n\n    hideWidget: function() {\n      if (this.isOpen === false) {\n        return;\n      }\n\n      this.$element.trigger({\n        'type': 'hide.timepicker',\n        'time': {\n          'value': this.getTime(),\n          'hours': this.hour,\n          'minutes': this.minute,\n          'seconds': this.second,\n          'meridian': this.meridian\n        }\n      });\n\n      if (this.template === 'modal' && this.$widget.modal) {\n        this.$widget.modal('hide');\n      } else {\n        this.$widget.removeClass('open');\n      }\n\n      $(document).off('mousedown.timepicker, touchend.timepicker');\n\n      this.isOpen = false;\n      // show/hide approach taken by datepicker\n      this.$widget.detach();\n    },\n\n    highlightUnit: function() {\n      this.position = this.getCursorPosition();\n      if (this.position >= 0 && this.position <= 2) {\n        this.highlightHour();\n      } else if (this.position >= 3 && this.position <= 5) {\n        this.highlightMinute();\n      } else if (this.position >= 6 && this.position <= 8) {\n        if (this.showSeconds) {\n          this.highlightSecond();\n        } else {\n          this.highlightMeridian();\n        }\n      } else if (this.position >= 9 && this.position <= 11) {\n        this.highlightMeridian();\n      }\n    },\n\n    highlightNextUnit: function() {\n      switch (this.highlightedUnit) {\n      case 'hour':\n        this.highlightMinute();\n        break;\n      case 'minute':\n        if (this.showSeconds) {\n          this.highlightSecond();\n        } else if (this.showMeridian){\n          this.highlightMeridian();\n        } else {\n          this.highlightHour();\n        }\n        break;\n      case 'second':\n        if (this.showMeridian) {\n          this.highlightMeridian();\n        } else {\n          this.highlightHour();\n        }\n        break;\n      case 'meridian':\n        this.highlightHour();\n        break;\n      }\n    },\n\n    highlightPrevUnit: function() {\n      switch (this.highlightedUnit) {\n      case 'hour':\n        if(this.showMeridian){\n          this.highlightMeridian();\n        } else if (this.showSeconds) {\n          this.highlightSecond();\n        } else {\n          this.highlightMinute();\n        }\n        break;\n      case 'minute':\n        this.highlightHour();\n        break;\n      case 'second':\n        this.highlightMinute();\n        break;\n      case 'meridian':\n        if (this.showSeconds) {\n          this.highlightSecond();\n        } else {\n          this.highlightMinute();\n        }\n        break;\n      }\n    },\n\n    highlightHour: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'hour';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tsetTimeout(function() {\n          if (self.hour < 10) {\n            $element.setSelectionRange(0,1);\n          } else {\n            $element.setSelectionRange(0,2);\n          }\n\t\t\t\t}, 0);\n\t\t\t}\n    },\n\n    highlightMinute: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'minute';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tsetTimeout(function() {\n          if (self.hour < 10) {\n            $element.setSelectionRange(2,4);\n          } else {\n            $element.setSelectionRange(3,5);\n          }\n\t\t\t\t}, 0);\n\t\t\t}\n    },\n\n    highlightSecond: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'second';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tsetTimeout(function() {\n          if (self.hour < 10) {\n            $element.setSelectionRange(5,7);\n          } else {\n            $element.setSelectionRange(6,8);\n          }\n\t\t\t\t}, 0);\n\t\t\t}\n    },\n\n    highlightMeridian: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'meridian';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tif (this.showSeconds) {\n\t\t\t\t\tsetTimeout(function() {\n            if (self.hour < 10) {\n              $element.setSelectionRange(8,10);\n            } else {\n              $element.setSelectionRange(9,11);\n            }\n\t\t\t\t\t}, 0);\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() {\n            if (self.hour < 10) {\n              $element.setSelectionRange(5,7);\n            } else {\n              $element.setSelectionRange(6,8);\n            }\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t}\n    },\n\n    incrementHour: function() {\n      if (this.showMeridian) {\n        if (this.hour === 11) {\n          this.hour++;\n          return this.toggleMeridian();\n        } else if (this.hour === 12) {\n          this.hour = 0;\n        }\n      }\n      if (this.hour === 23) {\n        this.hour = 0;\n\n        return;\n      }\n      this.hour++;\n    },\n\n    incrementMinute: function(step) {\n      var newVal;\n\n      if (step) {\n        newVal = this.minute + step;\n      } else {\n        newVal = this.minute + this.minuteStep - (this.minute % this.minuteStep);\n      }\n\n      if (newVal > 59) {\n        this.incrementHour();\n        this.minute = newVal - 60;\n      } else {\n        this.minute = newVal;\n      }\n    },\n\n    incrementSecond: function() {\n      var newVal = this.second + this.secondStep - (this.second % this.secondStep);\n\n      if (newVal > 59) {\n        this.incrementMinute(true);\n        this.second = newVal - 60;\n      } else {\n        this.second = newVal;\n      }\n    },\n\n    mousewheel: function(e) {\n      if (this.disableMousewheel) {\n        return;\n      }\n\n      e.preventDefault();\n      e.stopPropagation();\n\n      var delta = e.originalEvent.wheelDelta || -e.originalEvent.detail,\n          scrollTo = null;\n\n      if (e.type === 'mousewheel') {\n        scrollTo = (e.originalEvent.wheelDelta * -1);\n      }\n      else if (e.type === 'DOMMouseScroll') {\n        scrollTo = 40 * e.originalEvent.detail;\n      }\n\n      if (scrollTo) {\n        e.preventDefault();\n        $(this).scrollTop(scrollTo + $(this).scrollTop());\n      }\n\n      switch (this.highlightedUnit) {\n      case 'minute':\n        if (delta > 0) {\n          this.incrementMinute();\n        } else {\n          this.decrementMinute();\n        }\n        this.highlightMinute();\n        break;\n      case 'second':\n        if (delta > 0) {\n          this.incrementSecond();\n        } else {\n          this.decrementSecond();\n        }\n        this.highlightSecond();\n        break;\n      case 'meridian':\n        this.toggleMeridian();\n        this.highlightMeridian();\n        break;\n      default:\n        if (delta > 0) {\n          this.incrementHour();\n        } else {\n          this.decrementHour();\n        }\n        this.highlightHour();\n        break;\n      }\n\n      return false;\n    },\n\n    // This method was adapted from bootstrap-datepicker.\n    place : function() {\n      if (this.isInline) {\n        return;\n      }\n      var widgetWidth = this.$widget.outerWidth(), widgetHeight = this.$widget.outerHeight(), visualPadding = 10, windowWidth =\n        $(window).width(), windowHeight = $(window).height(), scrollTop = $(window).scrollTop();\n\n      var zIndex = parseInt(this.$element.parents().filter(function() {}).first().css('z-index'), 10) + 10;\n      var offset = this.component ? this.component.parent().offset() : this.$element.offset();\n      var height = this.component ? this.component.outerHeight(true) : this.$element.outerHeight(false);\n      var width = this.component ? this.component.outerWidth(true) : this.$element.outerWidth(false);\n      var left = offset.left, top = offset.top;\n\n      this.$widget.removeClass('timepicker-orient-top timepicker-orient-bottom timepicker-orient-right timepicker-orient-left');\n\n      if (this.orientation.x !== 'auto') {\n        this.picker.addClass('datepicker-orient-' + this.orientation.x);\n        if (this.orientation.x === 'right') {\n          left -= widgetWidth - width;\n        }\n      } else{\n        // auto x orientation is best-placement: if it crosses a window edge, fudge it sideways\n        // Default to left\n        this.$widget.addClass('timepicker-orient-left');\n        if (offset.left < 0) {\n          left -= offset.left - visualPadding;\n        } else if (offset.left + widgetWidth > windowWidth) {\n          left = windowWidth - widgetWidth - visualPadding;\n        }\n      }\n      // auto y orientation is best-situation: top or bottom, no fudging, decision based on which shows more of the widget\n      var yorient = this.orientation.y, topOverflow, bottomOverflow;\n      if (yorient === 'auto') {\n        topOverflow = -scrollTop + offset.top - widgetHeight;\n        bottomOverflow = scrollTop + windowHeight - (offset.top + height + widgetHeight);\n        if (Math.max(topOverflow, bottomOverflow) === bottomOverflow) {\n          yorient = 'top';\n        } else {\n          yorient = 'bottom';\n        }\n      }\n      this.$widget.addClass('timepicker-orient-' + yorient);\n      if (yorient === 'top'){\n        top += height;\n      } else{\n        top -= widgetHeight + parseInt(this.$widget.css('padding-top'), 10);\n      }\n\n      this.$widget.css({\n        top : top,\n        left : left,\n        zIndex : zIndex\n      });\n    },\n\n    remove: function() {\n      $('document').off('.timepicker');\n      if (this.$widget) {\n        this.$widget.remove();\n      }\n      delete this.$element.data().timepicker;\n    },\n\n    setDefaultTime: function(defaultTime) {\n      if (!this.$element.val()) {\n        if (defaultTime === 'current') {\n          var dTime = new Date(),\n            hours = dTime.getHours(),\n            minutes = dTime.getMinutes(),\n            seconds = dTime.getSeconds(),\n            meridian = 'AM';\n\n          if (seconds !== 0) {\n            seconds = Math.ceil(dTime.getSeconds() / this.secondStep) * this.secondStep;\n            if (seconds === 60) {\n              minutes += 1;\n              seconds = 0;\n            }\n          }\n\n          if (minutes !== 0) {\n            minutes = Math.ceil(dTime.getMinutes() / this.minuteStep) * this.minuteStep;\n            if (minutes === 60) {\n              hours += 1;\n              minutes = 0;\n            }\n          }\n\n          if (this.showMeridian) {\n            if (hours === 0) {\n              hours = 12;\n            } else if (hours >= 12) {\n              if (hours > 12) {\n                hours = hours - 12;\n              }\n              meridian = 'PM';\n            } else {\n              meridian = 'AM';\n            }\n          }\n\n          this.hour = hours;\n          this.minute = minutes;\n          this.second = seconds;\n          this.meridian = meridian;\n\n          this.update();\n\n        } else if (defaultTime === false) {\n          this.hour = 0;\n          this.minute = 0;\n          this.second = 0;\n          this.meridian = 'AM';\n        } else {\n          this.setTime(defaultTime);\n        }\n      } else {\n        this.updateFromElementVal();\n      }\n    },\n\n    setTime: function(time, ignoreWidget) {\n      if (!time) {\n        this.clear();\n        return;\n      }\n\n      var timeArray,\n          hour,\n          minute,\n          second,\n          meridian;\n\n      if (typeof time === 'object' && time.getMonth){\n        // this is a date object\n        hour    = time.getHours();\n        minute  = time.getMinutes();\n        second  = time.getSeconds();\n\n        if (this.showMeridian){\n          meridian = 'AM';\n          if (hour > 12){\n            meridian = 'PM';\n            hour = hour % 12;\n          }\n\n          if (hour === 12){\n            meridian = 'PM';\n          }\n        }\n      } else {\n        if (time.match(/p/i) !== null) {\n          meridian = 'PM';\n        } else {\n          meridian = 'AM';\n        }\n\n        time = time.replace(/[^0-9\\:]/g, '');\n\n        timeArray = time.split(':');\n\n        hour = timeArray[0] ? timeArray[0].toString() : timeArray.toString();\n        minute = timeArray[1] ? timeArray[1].toString() : '';\n        second = timeArray[2] ? timeArray[2].toString() : '';\n\n        // idiot proofing\n        if (hour.length > 4) {\n          second = hour.substr(4, 2);\n        }\n        if (hour.length > 2) {\n          minute = hour.substr(2, 2);\n          hour = hour.substr(0, 2);\n        }\n        if (minute.length > 2) {\n          second = minute.substr(2, 2);\n          minute = minute.substr(0, 2);\n        }\n        if (second.length > 2) {\n          second = second.substr(2, 2);\n        }\n\n        hour = parseInt(hour, 10);\n        minute = parseInt(minute, 10);\n        second = parseInt(second, 10);\n\n        if (isNaN(hour)) {\n          hour = 0;\n        }\n        if (isNaN(minute)) {\n          minute = 0;\n        }\n        if (isNaN(second)) {\n          second = 0;\n        }\n\n        if (this.showMeridian) {\n          if (hour < 1) {\n            hour = 1;\n          } else if (hour > 12) {\n            hour = 12;\n          }\n        } else {\n          if (hour >= 24) {\n            hour = 23;\n          } else if (hour < 0) {\n            hour = 0;\n          }\n          if (hour < 13 && meridian === 'PM') {\n            hour = hour + 12;\n          }\n        }\n\n        if (minute < 0) {\n          minute = 0;\n        } else if (minute >= 60) {\n          minute = 59;\n        }\n\n        if (this.showSeconds) {\n          if (isNaN(second)) {\n            second = 0;\n          } else if (second < 0) {\n            second = 0;\n          } else if (second >= 60) {\n            second = 59;\n          }\n        }\n      }\n\n      this.hour = hour;\n      this.minute = minute;\n      this.second = second;\n      this.meridian = meridian;\n\n      this.update(ignoreWidget);\n    },\n\n    showWidget: function() {\n      if (this.isOpen) {\n        return;\n      }\n\n      if (this.$element.is(':disabled')) {\n        return;\n      }\n\n      // show/hide approach taken by datepicker\n      this.$widget.appendTo(this.appendWidgetTo);\n      var self = this;\n      $(document).on('mousedown.timepicker, touchend.timepicker', function (e) {\n        // This condition was inspired by bootstrap-datepicker.\n        // The element the timepicker is invoked on is the input but it has a sibling for addon/button.\n        if (!(self.$element.parent().find(e.target).length ||\n            self.$widget.is(e.target) ||\n            self.$widget.find(e.target).length)) {\n          self.hideWidget();\n        }\n      });\n\n      this.$element.trigger({\n        'type': 'show.timepicker',\n        'time': {\n          'value': this.getTime(),\n          'hours': this.hour,\n          'minutes': this.minute,\n          'seconds': this.second,\n          'meridian': this.meridian\n        }\n      });\n\n      this.place();\n      if (this.disableFocus) {\n        this.$element.blur();\n      }\n\n      // widget shouldn't be empty on open\n      if (this.hour === '') {\n        if (this.defaultTime) {\n          this.setDefaultTime(this.defaultTime);\n        } else {\n          this.setTime('0:0:0');\n        }\n      }\n\n      if (this.template === 'modal' && this.$widget.modal) {\n        this.$widget.modal('show').on('hidden', $.proxy(this.hideWidget, this));\n      } else {\n        if (this.isOpen === false) {\n          this.$widget.addClass('open');\n        }\n      }\n\n      this.isOpen = true;\n    },\n\n    toggleMeridian: function() {\n      this.meridian = this.meridian === 'AM' ? 'PM' : 'AM';\n    },\n\n    update: function(ignoreWidget) {\n      this.updateElement();\n      if (!ignoreWidget) {\n        this.updateWidget();\n      }\n\n      this.$element.trigger({\n        'type': 'changeTime.timepicker',\n        'time': {\n          'value': this.getTime(),\n          'hours': this.hour,\n          'minutes': this.minute,\n          'seconds': this.second,\n          'meridian': this.meridian\n        }\n      });\n    },\n\n    updateElement: function() {\n      this.$element.val(this.getTime()).change();\n    },\n\n    updateFromElementVal: function() {\n      this.setTime(this.$element.val());\n    },\n\n    updateWidget: function() {\n      if (this.$widget === false) {\n        return;\n      }\n\n      var hour = this.hour,\n          minute = this.minute.toString().length === 1 ? '0' + this.minute : this.minute,\n          second = this.second.toString().length === 1 ? '0' + this.second : this.second;\n\n      if (this.showInputs) {\n        this.$widget.find('input.bootstrap-timepicker-hour').val(hour);\n        this.$widget.find('input.bootstrap-timepicker-minute').val(minute);\n\n        if (this.showSeconds) {\n          this.$widget.find('input.bootstrap-timepicker-second').val(second);\n        }\n        if (this.showMeridian) {\n          this.$widget.find('input.bootstrap-timepicker-meridian').val(this.meridian);\n        }\n      } else {\n        this.$widget.find('span.bootstrap-timepicker-hour').text(hour);\n        this.$widget.find('span.bootstrap-timepicker-minute').text(minute);\n\n        if (this.showSeconds) {\n          this.$widget.find('span.bootstrap-timepicker-second').text(second);\n        }\n        if (this.showMeridian) {\n          this.$widget.find('span.bootstrap-timepicker-meridian').text(this.meridian);\n        }\n      }\n    },\n\n    updateFromWidgetInputs: function() {\n      if (this.$widget === false) {\n        return;\n      }\n\n      var t = this.$widget.find('input.bootstrap-timepicker-hour').val() + ':' +\n              this.$widget.find('input.bootstrap-timepicker-minute').val() +\n              (this.showSeconds ? ':' + this.$widget.find('input.bootstrap-timepicker-second').val() : '') +\n              (this.showMeridian ? this.$widget.find('input.bootstrap-timepicker-meridian').val() : '')\n      ;\n\n      this.setTime(t, true);\n    },\n\n    widgetClick: function(e) {\n      e.stopPropagation();\n      e.preventDefault();\n\n      var $input = $(e.target),\n          action = $input.closest('a').data('action');\n\n      if (action) {\n        this[action]();\n      }\n      this.update();\n\n      if ($input.is('input')) {\n        $input.get(0).setSelectionRange(0,2);\n      }\n    },\n\n    widgetKeydown: function(e) {\n      var $input = $(e.target),\n          name = $input.attr('class').replace('bootstrap-timepicker-', '');\n\n      switch (e.keyCode) {\n      case 9: //tab\n        if ((this.showMeridian && name === 'meridian') || (this.showSeconds && name === 'second') || (!this.showMeridian && !this.showSeconds && name === 'minute')) {\n          return this.hideWidget();\n        }\n        break;\n      case 27: // escape\n        this.hideWidget();\n        break;\n      case 38: // up arrow\n        e.preventDefault();\n        switch (name) {\n        case 'hour':\n          this.incrementHour();\n          break;\n        case 'minute':\n          this.incrementMinute();\n          break;\n        case 'second':\n          this.incrementSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          break;\n        }\n        this.setTime(this.getTime());\n        $input.get(0).setSelectionRange(0,2);\n        break;\n      case 40: // down arrow\n        e.preventDefault();\n        switch (name) {\n        case 'hour':\n          this.decrementHour();\n          break;\n        case 'minute':\n          this.decrementMinute();\n          break;\n        case 'second':\n          this.decrementSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          break;\n        }\n        this.setTime(this.getTime());\n        $input.get(0).setSelectionRange(0,2);\n        break;\n      }\n    },\n\n    widgetKeyup: function(e) {\n      if ((e.keyCode === 65) || (e.keyCode === 77) || (e.keyCode === 80) || (e.keyCode === 46) || (e.keyCode === 8) || (e.keyCode >= 46 && e.keyCode <= 57)) {\n        this.updateFromWidgetInputs();\n      }\n    }\n  };\n\n  //TIMEPICKER PLUGIN DEFINITION\n  $.fn.timepicker = function(option) {\n    var args = Array.apply(null, arguments);\n    args.shift();\n    return this.each(function() {\n      var $this = $(this),\n        data = $this.data('timepicker'),\n        options = typeof option === 'object' && option;\n\n      if (!data) {\n        $this.data('timepicker', (data = new Timepicker(this, $.extend({}, $.fn.timepicker.defaults, options, $(this).data()))));\n      }\n\n      if (typeof option === 'string') {\n        data[option].apply(data, args);\n      }\n    });\n  };\n\n  $.fn.timepicker.defaults = {\n    defaultTime: 'current',\n    disableFocus: false,\n    disableMousewheel: false,\n    isOpen: false,\n    minuteStep: 15,\n    modalBackdrop: false,\n    orientation: { x: 'auto', y: 'auto'},\n    secondStep: 15,\n    showSeconds: false,\n    showInputs: true,\n    showMeridian: true,\n    template: 'dropdown',\n    appendWidgetTo: 'body',\n    showWidgetOnAddonClick: true\n  };\n\n  $.fn.timepicker.Constructor = Timepicker;\n\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.css",
    "content": "ul.wysihtml5-toolbar {\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: block;\n}\n\nul.wysihtml5-toolbar:after {\n\tclear: both;\n\tdisplay: table;\n\tcontent: \"\";\n}\n\nul.wysihtml5-toolbar > li {\n\tfloat: left;\n\tdisplay: list-item;\n\tlist-style: none;\n\tmargin: 0 5px 10px 0;\n}\n\nul.wysihtml5-toolbar a[data-wysihtml5-command=bold] {\n\tfont-weight: bold;\n}\n\nul.wysihtml5-toolbar a[data-wysihtml5-command=italic] {\n\tfont-style: italic;\n}\n\nul.wysihtml5-toolbar a[data-wysihtml5-command=underline] {\n\ttext-decoration: underline;\n}\n\nul.wysihtml5-toolbar a.btn.wysihtml5-command-active {\n\tbackground-image: none;\n\t-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);\n\t-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);\n\tbox-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);\n\tbackground-color: #E6E6E6;\n\tbackground-color: #D9D9D9;\n\toutline: 0;\n}\n\nul.wysihtml5-commands-disabled .dropdown-menu {\n\tdisplay: none !important;\n}\n\nul.wysihtml5-toolbar div.wysihtml5-colors {\n  display:block;\n  width: 50px;\n  height: 20px;\n  margin-top: 2px;\n  margin-left: 5px;\n  position: absolute;\n  pointer-events: none;\n}\n\nul.wysihtml5-toolbar a.wysihtml5-colors-title {\n  padding-left: 70px;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"black\"] {\n  background: black !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"silver\"] {\n  background: silver !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"gray\"] {\n  background: gray !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"maroon\"] {\n  background: maroon !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"red\"] {\n  background: red !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"purple\"] {\n  background: purple !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"green\"] {\n  background: green !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"olive\"] {\n  background: olive !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"navy\"] {\n  background: navy !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"blue\"] {\n  background: blue !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"orange\"] {\n  background: orange !important;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.js",
    "content": "!function($, wysi) {\n    \"use strict\";\n\n    var tpl = {\n        \"font-styles\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li class='dropdown'>\" +\n              \"<a class='btn default dropdown-toggle\" + size + \"' data-toggle='dropdown' href='#'>\" +\n              \"<i class='icon-font'></i>&nbsp;<span class='current-font'>\" + locale.font_styles.normal + \"</span>&nbsp;<b class='caret'></b>\" +\n              \"</a>\" +\n              \"<ul class='dropdown-menu'>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='div' tabindex='-1'>\" + locale.font_styles.normal + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h1' tabindex='-1'>\" + locale.font_styles.h1 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h2' tabindex='-1'>\" + locale.font_styles.h2 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h3' tabindex='-1'>\" + locale.font_styles.h3 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h4'>\" + locale.font_styles.h4 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h5'>\" + locale.font_styles.h5 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h6'>\" + locale.font_styles.h6 + \"</a></li>\" +\n              \"</ul>\" +\n            \"</li>\";\n        },\n\n        \"emphasis\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='btn-group'>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='bold' title='CTRL+B' tabindex='-1'>\" + locale.emphasis.bold + \"</a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='italic' title='CTRL+I' tabindex='-1'>\" + locale.emphasis.italic + \"</a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='underline' title='CTRL+U' tabindex='-1'>\" + locale.emphasis.underline + \"</a>\" +\n              \"</div>\" +\n            \"</li>\";\n        },\n\n        \"lists\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='btn-group'>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='insertUnorderedList' title='\" + locale.lists.unordered + \"' tabindex='-1'><i class='fa fa-list'></i></a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='insertOrderedList' title='\" + locale.lists.ordered + \"' tabindex='-1'><i class='fa fa-th-list'></i></a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='Outdent' title='\" + locale.lists.outdent + \"' tabindex='-1'><i class='fa fa-outdent'></i></a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='Indent' title='\" + locale.lists.indent + \"' tabindex='-1'><i class='fa fa-indent'></i></a>\" +\n              \"</div>\" +\n            \"</li>\";\n        },\n\n        \"link\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='bootstrap-wysihtml5-insert-link-modal modal fade'>\" +\n              ($.fn.modalmanager ? \"\" : \"<div class='modal-dialog'>\") +\n              \" <div class='modal-content'>\" +\n                \"<div class='modal-header'>\" +\n                  \"<a class='close' data-dismiss='modal'>&times;</a>\" +\n                  \"<h3>\" + locale.link.insert + \"</h3>\" +\n                \"</div>\" +\n                \"<div class='modal-body'>\" +\n                  \"<input value='http://' class='bootstrap-wysihtml5-insert-link-url form-control input-xlarge'>\" +\n                  \"<label style='margin-top:5px;'> <input type='checkbox' class='bootstrap-wysihtml5-insert-link-target' checked>\" + locale.link.target + \"</label>\" +\n                \"</div>\" +\n                \"<div class='modal-footer'>\" +\n                  \"<a href='#' class='btn default' data-dismiss='modal'>\" + locale.link.cancel + \"</a>\" +\n                  \"<a href='#' class='btn btn-primary' data-dismiss='modal'>\" + locale.link.insert + \"</a>\" +\n                \"</div>\" +\n              \"</div>\" +\n               ($.fn.modalmanager ? \"\" : \"</div>\") +\n              \"</div>\" +\n              \"<a class='btn default\" + size + \"' data-wysihtml5-command='createLink' title='\" + locale.link.insert + \"' tabindex='-1'><i class='fa fa-share'></i></a>\" +\n            \"</li>\";\n        },\n\n        \"image\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='bootstrap-wysihtml5-insert-image-modal modal fade'>\" +\n              ($.fn.modalmanager ? \"\" : \"<div class='modal-dialog'>\") +\n              \" <div class='modal-content'>\" +\n                \"<div class='modal-header'>\" +\n                  \"<a class='close' data-dismiss='modal'>&times;</a>\" +\n                  \"<h3>\" + locale.image.insert + \"</h3>\" +\n                \"</div>\" +\n                \"<div class='modal-body'>\" +\n                  \"<input value='http://' class='bootstrap-wysihtml5-insert-image-url form-control input-xlarge'>\" +\n                \"</div>\" +\n                \"<div class='modal-footer'>\" +\n                  \"<a href='#' class='btn default' data-dismiss='modal'>\" + locale.image.cancel + \"</a>\" +\n                  \"<a href='#' class='btn btn-primary' data-dismiss='modal'>\" + locale.image.insert + \"</a>\" +\n                \"</div>\" +\n              \"</div>\" +\n               ($.fn.modalmanager ? \"\" : \"</div>\") +\n              \"</div>\" +\n              \"<a class='btn default\" + size + \"' data-wysihtml5-command='insertImage' title='\" + locale.image.insert + \"' tabindex='-1'><i class='fa fa-picture-o'></i></a>\" +\n            \"</li>\";\n        },\n\n        \"html\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='btn-group'>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-action='change_view' title='\" + locale.html.edit + \"' tabindex='-1'><i class='fa fa-pencil'></i></a>\" +\n              \"</div>\" +\n            \"</li>\";\n        },\n\n        \"color\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li class='dropdown'>\" +\n              \"<a class='btn default dropdown-toggle\" + size + \"' data-toggle='dropdown' href='#' tabindex='-1'>\" +\n                \"<span class='current-color'>\" + locale.colours.black + \"</span>&nbsp;<b class='caret'></b>\" +\n              \"</a>\" +\n              \"<ul class='dropdown-menu'>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='black'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='black'>\" + locale.colours.black + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='silver'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='silver'>\" + locale.colours.silver + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='gray'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='gray'>\" + locale.colours.gray + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='maroon'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='maroon'>\" + locale.colours.maroon + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='red'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='red'>\" + locale.colours.red + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='purple'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='purple'>\" + locale.colours.purple + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='green'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='green'>\" + locale.colours.green + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='olive'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='olive'>\" + locale.colours.olive + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='navy'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='navy'>\" + locale.colours.navy + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='blue'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='blue'>\" + locale.colours.blue + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='orange'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='orange'>\" + locale.colours.orange + \"</a></li>\" +\n              \"</ul>\" +\n            \"</li>\";\n        }\n    };\n\n    var templates = function(key, locale, options) {\n        return tpl[key](locale, options);\n    };\n\n\n    var Wysihtml5 = function(el, options) {\n        this.el = el;\n        var toolbarOpts = options || defaultOptions;\n        for(var t in toolbarOpts.customTemplates) {\n          tpl[t] = toolbarOpts.customTemplates[t];\n        }\n        this.toolbar = this.createToolbar(el, toolbarOpts);\n        this.editor =  this.createEditor(options);\n\n        window.editor = this.editor;\n\n        $('iframe.wysihtml5-sandbox').each(function(i, el){\n            $(el.contentWindow).off('focus.wysihtml5').on({\n                'focus.wysihtml5' : function(){\n                    $('li.dropdown').removeClass('open');\n                }\n            });\n        });\n    };\n\n    Wysihtml5.prototype = {\n\n        constructor: Wysihtml5,\n\n        createEditor: function(options) {\n            options = options || {};\n            \n            // Add the toolbar to a clone of the options object so multiple instances\n            // of the WYISYWG don't break because \"toolbar\" is already defined\n            options = $.extend(true, {}, options);\n            options.toolbar = this.toolbar[0];\n\n            var editor = new wysi.Editor(this.el[0], options);\n\n            if(options && options.events) {\n                for(var eventName in options.events) {\n                    editor.on(eventName, options.events[eventName]);\n                }\n            }\n            return editor;\n        },\n\n        createToolbar: function(el, options) {\n            var self = this;\n            var toolbar = $(\"<ul/>\", {\n                'class' : \"wysihtml5-toolbar\",\n                'style': \"display:none\"\n            });\n            var culture = options.locale || defaultOptions.locale || \"en\";\n            for(var key in defaultOptions) {\n                var value = false;\n\n                if(options[key] !== undefined) {\n                    if(options[key] === true) {\n                        value = true;\n                    }\n                } else {\n                    value = defaultOptions[key];\n                }\n\n                if(value === true) {\n                    toolbar.append(templates(key, locale[culture], options));\n\n                    if(key === \"html\") {\n                        this.initHtml(toolbar);\n                    }\n\n                    if(key === \"link\") {\n                        this.initInsertLink(toolbar);\n                    }\n\n                    if(key === \"image\") {\n                        this.initInsertImage(toolbar);\n                    }\n                }\n            }\n\n            if(options.toolbar) {\n                for(key in options.toolbar) {\n                    toolbar.append(options.toolbar[key]);\n                }\n            }\n\n            toolbar.find(\"a[data-wysihtml5-command='formatBlock']\").click(function(e) {\n                var target = e.target || e.srcElement;\n                var el = $(target);\n                self.toolbar.find('.current-font').text(el.html());\n            });\n\n            toolbar.find(\"a[data-wysihtml5-command='foreColor']\").click(function(e) {\n                var target = e.target || e.srcElement;\n                var el = $(target);\n                self.toolbar.find('.current-color').text(el.html());\n            });\n\n            this.el.before(toolbar);\n\n            return toolbar;\n        },\n\n        initHtml: function(toolbar) {\n            var changeViewSelector = \"a[data-wysihtml5-action='change_view']\";\n            toolbar.find(changeViewSelector).click(function(e) {\n                toolbar.find('a.btn').not(changeViewSelector).toggleClass('disabled');\n            });\n        },\n\n        initInsertImage: function(toolbar) {\n            var self = this;\n            var insertImageModal = toolbar.find('.bootstrap-wysihtml5-insert-image-modal');\n            var urlInput = insertImageModal.find('.bootstrap-wysihtml5-insert-image-url');\n            var insertButton = insertImageModal.find('a.btn-primary');\n            var initialValue = urlInput.val();\n            var caretBookmark;\n\n            var insertImage = function() {\n                var url = urlInput.val();\n                urlInput.val(initialValue);\n                self.editor.currentView.element.focus();\n                if (caretBookmark) {\n                  self.editor.composer.selection.setBookmark(caretBookmark);\n                  caretBookmark = null;\n                }\n                self.editor.composer.commands.exec(\"insertImage\", url);\n            };\n\n            urlInput.keypress(function(e) {\n                if(e.which == 13) {\n                    insertImage();\n                    insertImageModal.modal('hide');\n                }\n            });\n\n            insertButton.click(insertImage);\n\n            insertImageModal.on('shown', function() {\n                urlInput.focus();\n            });\n\n            insertImageModal.on('hide', function() {\n                self.editor.currentView.element.focus();\n            });\n\n            toolbar.find('a[data-wysihtml5-command=insertImage]').click(function() {\n                var activeButton = $(this).hasClass(\"wysihtml5-command-active\");\n\n                if (!activeButton) {\n                    self.editor.currentView.element.focus(false);\n                    caretBookmark = self.editor.composer.selection.getBookmark();\n                    insertImageModal.appendTo('body').modal('show');\n                    insertImageModal.on('click.dismiss.modal', '[data-dismiss=\"modal\"]', function(e) {\n                        e.stopPropagation();\n                    });\n                    return false;\n                }\n                else {\n                    return true;\n                }\n            });\n        },\n\n        initInsertLink: function(toolbar) {\n            var self = this;\n            var insertLinkModal = toolbar.find('.bootstrap-wysihtml5-insert-link-modal');\n            var urlInput = insertLinkModal.find('.bootstrap-wysihtml5-insert-link-url');\n            var targetInput = insertLinkModal.find('.bootstrap-wysihtml5-insert-link-target');\n            var insertButton = insertLinkModal.find('a.btn-primary');\n            var initialValue = urlInput.val();\n            var caretBookmark;\n\n            var insertLink = function() {\n                var url = urlInput.val();\n                urlInput.val(initialValue);\n                self.editor.currentView.element.focus();\n                if (caretBookmark) {\n                  self.editor.composer.selection.setBookmark(caretBookmark);\n                  caretBookmark = null;\n                }\n\n                var newWindow = targetInput.prop(\"checked\");\n                self.editor.composer.commands.exec(\"createLink\", {\n                    'href' : url,\n                    'target' : (newWindow ? '_blank' : '_self'),\n                    'rel' : (newWindow ? 'nofollow' : '')\n                });\n            };\n            var pressedEnter = false;\n\n            urlInput.keypress(function(e) {\n                if(e.which == 13) {\n                    insertLink();\n                    insertLinkModal.modal('hide');\n                }\n            });\n\n            insertButton.click(insertLink);\n\n            insertLinkModal.on('shown', function() {\n                urlInput.focus();\n            });\n\n            insertLinkModal.on('hide', function() {\n                self.editor.currentView.element.focus();\n            });\n\n            toolbar.find('a[data-wysihtml5-command=createLink]').click(function() {\n                var activeButton = $(this).hasClass(\"wysihtml5-command-active\");\n\n                if (!activeButton) {\n                    self.editor.currentView.element.focus(false);\n                    caretBookmark = self.editor.composer.selection.getBookmark();\n                    insertLinkModal.appendTo('body').modal('show');\n                    App.initUniform(); //initialize uniform checkboxes\n                    insertLinkModal.on('click.dismiss.modal', '[data-dismiss=\"modal\"]', function(e) {\n                        e.stopPropagation();\n                    });\n                    return false;\n                }\n                else {\n                    return true;\n                }\n            });\n        }\n    };\n\n    // these define our public api\n    var methods = {\n        resetDefaults: function() {\n            $.fn.wysihtml5.defaultOptions = $.extend(true, {}, $.fn.wysihtml5.defaultOptionsCache);\n        },\n        bypassDefaults: function(options) {\n            return this.each(function () {\n                var $this = $(this);\n                $this.data('wysihtml5', new Wysihtml5($this, options));\n            });\n        },\n        shallowExtend: function (options) {\n            var settings = $.extend({}, $.fn.wysihtml5.defaultOptions, options || {}, $(this).data());\n            var that = this;\n            return methods.bypassDefaults.apply(that, [settings]);\n        },\n        deepExtend: function(options) {\n            var settings = $.extend(true, {}, $.fn.wysihtml5.defaultOptions, options || {});\n            var that = this;\n            return methods.bypassDefaults.apply(that, [settings]);\n        },\n        init: function(options) {\n            var that = this;\n            return methods.shallowExtend.apply(that, [options]);\n        }\n    };\n\n    $.fn.wysihtml5 = function ( method ) {\n        if ( methods[method] ) {\n            return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));\n        } else if ( typeof method === 'object' || ! method ) {\n            return methods.init.apply( this, arguments );\n        } else {\n            $.error( 'Method ' +  method + ' does not exist on jQuery.wysihtml5' );\n        }    \n    };\n\n    $.fn.wysihtml5.Constructor = Wysihtml5;\n\n    var defaultOptions = $.fn.wysihtml5.defaultOptions = {\n        \"font-styles\": true,\n        \"color\": false,\n        \"emphasis\": true,\n        \"lists\": true,\n        \"html\": true,\n        \"link\": true,\n        \"image\": true,\n        events: {},\n        parserRules: {\n            classes: {\n                // (path_to_project/lib/css/wysiwyg-color.css)\n                \"wysiwyg-color-silver\" : 1,\n                \"wysiwyg-color-gray\" : 1,\n                \"wysiwyg-color-white\" : 1,\n                \"wysiwyg-color-maroon\" : 1,\n                \"wysiwyg-color-red\" : 1,\n                \"wysiwyg-color-purple\" : 1,\n                \"wysiwyg-color-fuchsia\" : 1,\n                \"wysiwyg-color-green\" : 1,\n                \"wysiwyg-color-lime\" : 1,\n                \"wysiwyg-color-olive\" : 1,\n                \"wysiwyg-color-yellow\" : 1,\n                \"wysiwyg-color-navy\" : 1,\n                \"wysiwyg-color-blue\" : 1,\n                \"wysiwyg-color-teal\" : 1,\n                \"wysiwyg-color-aqua\" : 1,\n                \"wysiwyg-color-orange\" : 1\n            },\n            tags: {\n                \"b\":  {},\n                \"i\":  {},\n                \"br\": {},\n                \"ol\": {},\n                \"ul\": {},\n                \"li\": {},\n                \"h1\": {},\n                \"h2\": {},\n                \"h3\": {},\n                \"h4\": {},\n                \"h5\": {},\n                \"h6\": {},\n                \"blockquote\": {},\n                \"u\": 1,\n                \"img\": {\n                    \"check_attributes\": {\n                        \"width\": \"numbers\",\n                        \"alt\": \"alt\",\n                        \"src\": \"url\",\n                        \"height\": \"numbers\"\n                    }\n                },\n                \"a\":  {\n                    check_attributes: {\n                        'href': \"url\", // important to avoid XSS\n                        'target': 'alt',\n                        'rel': 'alt'\n                    }\n                },\n                \"span\": 1,\n                \"div\": 1,\n                // to allow save and edit files with code tag hacks\n                \"code\": 1,\n                \"pre\": 1\n            }\n        },\n        stylesheets: [\"wysiwyg-color.css\"], // (path_to_project/lib/css/wysiwyg-color.css)\n        locale: \"en\"\n    };\n\n    if (typeof $.fn.wysihtml5.defaultOptionsCache === 'undefined') {\n        $.fn.wysihtml5.defaultOptionsCache = $.extend(true, {}, $.fn.wysihtml5.defaultOptions);\n    }\n\n    var locale = $.fn.wysihtml5.locale = {\n        en: {\n            font_styles: {\n                normal: \"Normal text\",\n                h1: \"Heading 1\",\n                h2: \"Heading 2\",\n                h3: \"Heading 3\",\n                h4: \"Heading 4\",\n                h5: \"Heading 5\",\n                h6: \"Heading 6\"\n            },\n            emphasis: {\n                bold: \"Bold\",\n                italic: \"Italic\",\n                underline: \"Underline\"\n            },\n            lists: {\n                unordered: \"Unordered list\",\n                ordered: \"Ordered list\",\n                outdent: \"Outdent\",\n                indent: \"Indent\"\n            },\n            link: {\n                insert: \"Insert link\",\n                cancel: \"Cancel\",\n                target: \"Open link in new window\"\n            },\n            image: {\n                insert: \"Insert image\",\n                cancel: \"Cancel\"\n            },\n            html: {\n                edit: \"Edit HTML\"\n            },\n            colours: {\n                black: \"Black\",\n                silver: \"Silver\",\n                gray: \"Grey\",\n                maroon: \"Maroon\",\n                red: \"Red\",\n                purple: \"Purple\",\n                green: \"Green\",\n                olive: \"Olive\",\n                navy: \"Navy\",\n                blue: \"Blue\",\n                orange: \"Orange\"\n            }\n        }\n    };\n\n}(window.jQuery, window.wysihtml5);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ar-AR.js",
    "content": "/**\n * Arabic translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"mo-MD\"] = {\n        font_styles: {\n              normal: \"نص عادي\",\n              h1: \"عنوان رئيسي 1\",\n              h2: \"عنوان رئيسي 2\",\n              h3: \"عنوان رئيسي 3\",\n        },\n        emphasis: {\n              bold: \"عريض\",\n              italic: \"مائل\",\n              underline: \"تحته خط\"\n        },\n        lists: {\n              unordered: \"قائمة منقطة\",\n              ordered: \"قائمة مرقمة\",\n              outdent: \"محاذاه للخارج\",\n              indent: \"محاذاه للداخل\"\n        },\n        link: {\n              insert: \"إضافة رابط\",\n              cancel: \"إلغاء\"\n        },\n        image: {\n              insert: \"إضافة صورة\",\n              cancel: \"إلغاء\"\n        },\n        html: {\n            edit: \"تعديل HTML\"\n        },\n\n        colours: {\n            black: \"أسود\",\n            silver: \"فضي\",\n            gray: \"رمادي\",\n            maroon: \"بني\",\n            red: \"أحمر\",\n            purple: \"بنفسجي\",\n            green: \"أخضر\",\n            olive: \"زيتوني\",\n            navy: \"أزرق قاتم\",\n            blue: \"أزرق نيلي\",\n            orange: \"برتقالي\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.bg-BG.js",
    "content": "/**\n * Bulgarian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"bg-BG\"] = {\n        font_styles: {\n            normal: \"Нормален текст\",\n            h1: \"Заглавие 1\",\n            h2: \"Заглавие 2\",\n            h3: \"Заглавие 3\"\n        },\n        emphasis: {\n            bold: \"Удебелен\",\n            italic: \"Курсив\",\n            underline: \"Подчертан\"\n        },\n        lists: {\n            unordered: \"Неподреден списък\",\n            ordered: \"Подреден списък\",\n            outdent: \"Намали отстояние\",\n            indent: \"Увеличи отстояние\"\n        },\n        link: {\n            insert: \"Вмъкни връзка\",\n            cancel: \"Отмени\"\n        },\n        image: {\n            insert: \"Вмъкни картинка\",\n            cancel: \"Отмени\"\n        },\n        html: {\n            edit: \"Редакртирай HTML\"\n        },\n        colours: {\n            black: \"Черен\",\n            silver: \"Сребърен\",\n            gray: \"Сив\",\n            maroon: \"Коричневый\",\n            red: \"Червен\",\n            purple: \"Виолетов\",\n            green: \"Зелен\",\n            olive: \"Маслинен\",\n            navy: \"Морско син\",\n            blue: \"Син\",\n            orange: \"Оранжев\"\n        }\n    };\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ca-CT.js",
    "content": "/**\n * Catalan translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ca-CT\"] = {\n        font_styles: {\n              normal: \"Text normal\",\n              h1: \"Títol 1\",\n              h2: \"Títol 2\"\n        },\n        emphasis: {\n              bold: \"Negreta\",\n              italic: \"Cursiva\",\n              underline: \"Subratllat\"\n        },\n        lists: {\n              unordered: \"Llista desordenada\",\n              ordered: \"Llista ordenada\",\n              outdent: \"Esborrar tabulació\",\n              indent: \"Afegir tabulació\"\n        },\n        link: {\n              insert: \"Afegir enllaç\",\n              cancel: \"Cancelar\"\n        },\n        image: {\n              insert: \"Afegir imatge\",\n              cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n            black: \"Negre\",\n            silver: \"Plata\",\n            gray: \"Gris\",\n            maroon: \"Marró\",\n            red: \"Vermell\",\n            purple: \"Porpre\",\n            green: \"Verd\",\n            olive: \"Oliva\",\n            navy: \"Blau marí\",\n            blue: \"Blau\",\n            orange: \"Taronja\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.cs-CZ.js",
    "content": "/**\n * Czech translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"cs-CZ\"] = {\n        font_styles: {\n            normal: \"Normální text\",\n            h1: \"Nadpis úrovně 1\",\n            h2: \"Nadpis úrovně 2\",\n            h3: \"Nadpis úrovně 3\"\n        },\n        emphasis: {\n            bold: \"Tučné\",\n            italic: \"Kurzíva\",\n            underline: \"Podtržení\"\n        },\n        lists: {\n            unordered: \"Seznam s odrážkami\",\n            ordered: \"Číslovaný seznam\",\n            outdent: \"Zvětšit odsazení\",\n            indent: \"Zmenšit odsazení\"\n        },\n        link: {\n            insert: \"Vložit odkaz\",\n            cancel: \"Zrušit\"\n        },\n        image: {\n            insert: \"Vložit obrázek\",\n            cancel: \"Zrušit\"\n        },\n        html: {\n            edit: \"Upravit HTML\"\n        },\n        colours: {\n            black: \"Černá\",\n            silver: \"Stříbrná\",\n            gray: \"Šedá\",\n            maroon: \"Vínová\",\n            red: \"Červená\",\n            purple: \"Fialová\",\n            green: \"Zelená\",\n            olive: \"Olivová\",\n            navy: \"Tmavomodrá\",\n            blue: \"Modrá\",\n            orange: \"Oranžová\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.da-DK.js",
    "content": "/**\n* Danish translations\n*/\n(function($){\n    $.fn.wysihtml5.locale[\"da-DK\"] = {\n        font_styles: {\n            normal: \"Normal tekst\",\n            h1: \"Overskrift 1\",\n            h2: \"Overskrift 2\",\n            h3: \"Overskrift 3\"\n        },\n        emphasis: {\n            bold: \"Fed\",\n            italic: \"Kursiv\",\n            underline: \"Understreget\"\n        },\n        lists: {\n            unordered: \"Uordnet liste\",\n            ordered: \"Ordnet liste\",\n            outdent: \"Udryk\",\n            indent: \"Indryk\"\n        },\n        link: {\n            insert: \"Indsæt Link\",\n            cancel: \"Annuler\"\n        },\n        image: {\n            insert: \"Indsæt billede\",\n            cancel: \"Annuler\"\n        },\n        html: {\n            edit: \"Rediger HTML\"\n        },\n        colours: {\n            black: \"Sort\",\n            silver: \"Sølv\",\n            gray: \"Grå\",\n            maroon: \"Mørkerød\",\n            red: \"Rød\",\n            purple: \"Lilla\",\n            green: \"Grøn\",\n            olive: \"Lysegrøn\",\n            navy: \"Mørkeblå\",\n            blue: \"Blå\",\n            orange: \"Orange\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.de-DE.js",
    "content": "/**\n * German translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"de-DE\"] = {\n        font_styles: {\n            normal: \"Normaler Text\",\n            h1: \"Überschrift 1\",\n            h2: \"Überschrift 2\",\n            h3: \"Überschrift 3\"\n        },\n        emphasis: {\n            bold: \"Fett\",\n            italic: \"Kursiv\",\n            underline: \"Unterstrichen\"\n        },\n        lists: {\n            unordered: \"Ungeordnete Liste\",\n            ordered: \"Geordnete Liste\",\n            outdent: \"Einzug verkleinern\",\n            indent: \"Einzug vergrößern\"\n        },\n        link: {\n            insert: \"Link einfügen\",\n            cancel: \"Abbrechen\",\n            target: \"Link in neuen Fenster öffnen\"\n        },\n        image: {\n            insert: \"Bild einfügen\",\n            cancel: \"Abbrechen\"\n        },\n        html: {\n            edit: \"HTML bearbeiten\"\n        },\n        colours: {\n            black: \"Schwarz\",\n            silver: \"Silber\",\n            gray: \"Grau\",\n            maroon: \"Kastanienbraun\",\n            red: \"Rot\",\n            purple: \"Violett\",\n            green: \"Grün\",\n            olive: \"Olivgrün\",\n            navy: \"Marineblau\",\n            blue: \"Blau\",\n            orange: \"Orange\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.el-GR.js",
    "content": "/**\n * Greek translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"el-GR\"] = {\n        font_styles: {\n              normal: \"Απλό κείμενο\",\n              h1: \"Κεφαλίδα 1\",\n              h2: \"Κεφαλίδα 2\",\n        \t  h3: \"Κεφαλίδα 3\"\t\n\t\t},\n        emphasis: {\n              bold: \"B\",\n              italic: \"I\",\n              underline: \"U\"\n        },\n        lists: {\n              unordered: \"Λίστα με κουκκίδες\",\n              ordered: \"Αριθμημένη λίστα\",\n              outdent: \"Μείωση εσοχής\",\n              indent: \"Αύξηση εσοχής\"\n        },\n        link: {\n              insert: \"Εισαγωγή Συνδέσμου\",\n              cancel: \"Άκυρο\"\n        },\n        image: {\n              insert: \"Εισαγωγή Εικόνας\",\n              cancel: \"Άκυρο\"\n        },\n        html: {\n            edit: \"Επεξεργασία HTML\"\n        },\n        colours: {\n            black: \"Μαύρο\",\n            silver: \"Ασημί\",\n            gray: \"Γκρι\",\n            maroon: \"Καφέ\",\n            red: \"Κόκκινο\",\n            purple: \"Μωβ\",\n            green: \"Πράσινο\",\n            olive: \"Λαδί\",\n            navy: \"Βαθύ Μπλε\",\n            blue: \"Μπλε\",\n            orange: \"Πορτοκαλί\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.es-AR.js",
    "content": "/**\n * Spanish Argenina translation for bootstrap-wysihtml5\n */\n\n(function($){\n    $.fn.wysihtml5.locale[\"es-AR\"] = {\n        font_styles: {\n            normal: \"Texto normal\",\n            h1: \"Título 1\",\n            h2: \"Título 2\",\n            h3: \"Título 3\"\n        },\n        emphasis: {\n            bold: \"Negrita\",\n            italic: \"Itálica\",\n            underline: \"Subrayado\"\n        },\n        lists: {\n            ordered: \"Lista ordenada\",\n            unordered: \"Lista desordenada\",\n            indent: \"Agregar sangría\",\n            outdent: \"Eliminar sangría\"\n        },\n        link: {\n            insert: \"Insertar enlace\",\n            cancel: \"Cancelar\"\n        },\n        image: {\n            insert: \"Insertar imágen\",\n            cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n            black: \"Negro\",\n            silver: \"Plata\",\n            gray: \"Gris\",\n            maroon: \"Marrón\",\n            red: \"Rojo\",\n            purple: \"Púrpura\",\n            green: \"Verde\",\n            olive: \"Oliva\",\n            navy: \"Azul Marino\",\n            blue: \"Azul\",\n            orange: \"Naranja\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.es-ES.js",
    "content": "/**\n * Uruguayan spanish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"es-ES\"] = {\n        font_styles: {\n              normal: \"Texto normal\",\n              h1: \"Título 1\",\n              h2: \"Título 2\",\n              h3: \"Título 3\"\n        },\n        emphasis: {\n              bold: \"Negrita\",\n              italic: \"Itálica\",\n              underline: \"Subrayado\"\n        },\n        lists: {\n              unordered: \"Lista desordenada\",\n              ordered: \"Lista ordenada\",\n              outdent: \"Eliminar sangría\",\n              indent: \"Agregar sangría\"\n        },\n        link: {\n              insert: \"Insertar enlace\",\n              cancel: \"Cancelar\"\n        },\n        image: {\n              insert: \"Insertar imágen\",\n              cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n          black: \"Negro\",\n          silver: \"Plata\",\n          gray: \"Gris\",\n          maroon: \"Marrón\",\n          red: \"Rojo\",\n          purple: \"Púrpura\",\n          green: \"Verde\",\n          olive: \"Oliva\",\n          navy: \"Azul Marino\",\n          blue: \"Azul\",\n          orange: \"Naranja\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.fr-FR.js",
    "content": "/**\n * French translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"fr-FR\"] = {\n        font_styles: {\n              normal: \"Texte normal\",\n              h1: \"Titre 1\",\n              h2: \"Titre 2\",\n              h3: \"Titre 3\"\n        },\n        emphasis: {\n              bold: \"Gras\",\n              italic: \"Italique\",\n              underline: \"Souligné\"\n        },\n        lists: {\n              unordered: \"Liste à puces\",\n              ordered: \"Liste numérotée\",\n              outdent: \"Diminuer le retrait\",\n              indent: \"Augmenter le retrait\",\n              indered: \"Augmenter le retrait\"\n        },\n        link: {\n              insert: \"Insérer un lien\",\n              cancel: \"Annuler\"\n        },\n        image: {\n              insert: \"Insérer une image\",\n              cancel: \"Annuler\"\n        },\n        html: {\n            edit: \"Editer en HTML\"\n        },\n        colours: {\n          black: \"Noir\",\n          silver: \"Gris clair\",\n          gray: \"Gris\",\n          maroon: \"Marron\",\n          red: \"Rouge\",\n          purple: \"Pourpre\",\n          green: \"Vert\",\n          olive: \"Olive\",\n          navy: \"Bleu marine\",\n          blue: \"Bleu\",\n          orange: \"Orange\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.hr-HR.js",
    "content": "/**\n * Croatian localisation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"hr-HR\"] = {\n        font_styles: {\n            normal: \"Normalan tekst\",\n            h1: \"Naslov 1\",\n            h2: \"Naslov 2\",\n            h3: \"Naslov 3\"\n        },\n        emphasis: {\n            bold: \"Podebljano\",\n            italic: \"Nakrivljeno\",\n            underline: \"Podcrtano\"\n        },\n        lists: {\n            unordered: \"Nesortirana lista\",\n            ordered: \"Sortirana lista\",\n            outdent: \"Izdubi\",\n            indent: \"Udubi\"\n        },\n        link: {\n            insert: \"Umetni poveznicu\",\n            cancel: \"Otkaži\"\n        },\n        image: {\n            insert: \"Umetni sliku\",\n            cancel: \"Otkaži\"\n        },\n        html: {\n            edit: \"Izmjeni HTML\"\n        },\n        colours: {\n            black: \"Crna\",\n            silver: \"Srebrna\",\n            gray: \"Siva\",\n            maroon: \"Kestenjasta\",\n            red: \"Crvena\",\n            purple: \"Ljubičasta\",\n            green: \"Zelena\",\n            olive: \"Maslinasta\",\n            navy: \"Mornarska\",\n            blue: \"Plava\",\n            orange: \"Narandžasta\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.it-IT.js",
    "content": "/**\n * Italian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"it-IT\"] = {\n        font_styles: {\n              normal: \"Testo normale\",\n              h1: \"Titolo 1\",\n              h2: \"Titolo 2\"\n        },\n        emphasis: {\n              bold: \"Grassetto\",\n              italic: \"Corsivo\",\n              underline: \"Sottolineato\"\n        },\n        lists: {\n              unordered: \"Lista non ordinata\",\n              ordered: \"Lista ordinata\",\n              outdent: \"Elimina rientro\",\n              indent: \"Aggiungi rientro\"\n        },\n        link: {\n              insert: \"Inserisci link\",\n              cancel: \"Annulla\"\n        },\n        image: {\n              insert: \"Inserisci immagine\",\n              cancel: \"Annulla\"\n        },\n        html: {\n            edit: \"Modifica HTML\"\n        },\n        colours: {\n          black: \"Nero\",\n          silver: \"Argento\",\n          gray: \"Grigio\",\n          maroon: \"Marrone\",\n          red: \"Rosso\",\n          purple: \"Viola\",\n          green: \"Verde\",\n          olive: \"Oliva\",\n          navy: \"Blu Marino\",\n          blue: \"Blu\",\n          orange: \"Arancio\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ja-JP.js",
    "content": "/**\n * Japanese translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ja-JP\"] = {\n        font_styles: {\n            normal: \"通常の文字\",\n            h1: \"見出し1\",\n            h2: \"見出し2\",\n            h3: \"見出し3\"\n        },\n        emphasis: {\n            bold: \"太字\",\n            italic: \"斜体\",\n            underline: \"下線\"\n        },\n        lists: {\n            unordered: \"点字リスト\",\n            ordered: \"数字リスト\",\n            outdent: \"左寄せ\",\n            indent: \"右寄せ\"\n        },\n        link: {\n            insert: \"リンクの挿入\",\n            cancel: \"キャンセル\"\n        },\n        image: {\n            insert: \"画像の挿入\",\n            cancel: \"キャンセル\"\n        },\n        html: {\n            edit: \"HTMLを編集\"\n        },\n        colours: {\n            black: \"黒色\",\n            silver: \"シルバー\",\n            gray: \"グレー\",\n            maroon: \"栗色\",\n            red: \"赤色\",\n            purple: \"紫色\",\n            green: \"緑色\",\n            olive: \"オリーブ\",\n            navy: \"ネイビー\",\n            blue: \"青色\",\n            orange: \"オレンジ\"\n        }\n\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ko-KR.js",
    "content": "/**\n * Korean translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ko-KR\"] = {\n        font_styles: {\n            normal: \"일반\",\n            h1: \"헤드라인 1\",\n            h2: \"헤드라인 2\",\n            h3: \"헤드라인 3\"\n        },\n        emphasis: {\n            bold: \"굵게\",\n            italic: \"기울게\",\n            underline: \"밑줄\"\n        },\n        lists: {\n            unordered: \"기호목록\",\n            ordered: \"숫자목록\",\n            outdent: \"내어쓰기\",\n            indent: \"들여쓰기\"\n        },\n        link: {\n            insert: \"링크 삽입\",\n            cancel: \"취소\"\n        },\n        image: {\n            insert: \"이미지 삽입\",\n            cancel: \"취소\"\n        },\n        html: {\n            edit: \"HTML 편집\"\n        },\n        colours: {\n            black: \"검은색\",\n            silver: \"은색\",\n            gray: \"회색\",\n            maroon: \"고동색\",\n            red: \"빨간색\",\n            purple: \"보라색\",\n            green: \"초록색\",\n            olive: \"올리브\",\n            navy: \"네이비\",\n            blue: \"파란색\",\n            orange: \"주황색\"\n        }\n\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.lt-LT.js",
    "content": "/**\n * Lithuanian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"lt-LT\"] = {\n        font_styles: {\n              normal: \"Normalus\",\n              h1: \"Antraštė 1\",\n              h2: \"Antraštė 2\",\n              h3: \"Antraštė 3\"\n        },\n        emphasis: {\n              bold: \"Pastorintas\",\n              italic: \"Kursyvas\",\n              underline: \"Pabrauktas\"\n        },\n        lists: {\n              unordered: \"Suženklintas sąrašas\",\n              ordered: \"Numeruotas sąrašas\",\n              outdent: \"Padidinti įtrauką\",\n              indent: \"Sumažinti įtrauką\"\n        },\n        link: {\n              insert: \"Įterpti nuorodą\",\n              cancel: \"Atšaukti\"\n        },\n        image: {\n              insert: \"Įterpti atvaizdą\",\n              cancel: \"Atšaukti\"\n        },\n        html: {\n            edit: \"Redaguoti HTML\"\n        },\n        colours: {\n            black: \"Juoda\",\n            silver: \"Sidabrinė\",\n            gray: \"Pilka\",\n            maroon: \"Kaštoninė\",\n            red: \"Raudona\",\n            purple: \"Violetinė\",\n            green: \"Žalia\",\n            olive: \"Gelsvai žalia\",\n            navy: \"Tamsiai mėlyna\",\n            blue: \"Mėlyna\",\n            orange: \"Oranžinė\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.mo-MD.js",
    "content": "/**\n * Moldavian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"mo-MD\"] = {\n        font_styles: {\n              normal: \"Normal\",\n              h1: \"Titlu 1\",\n              h2: \"Titlu 2\"\n        },\n        emphasis: {\n              bold: \"Bold\",\n              italic: \"Cursiv\",\n              underline: \"Accentuat\"\n        },\n        lists: {\n              unordered: \"Neordonata\",\n              ordered: \"Ordonata\",\n              outdent: \"Margine\",\n              indent: \"zimțuire\"\n        },\n        link: {\n              insert: \"Indroduce link-ul\",\n              cancel: \"Anula\"\n        },\n        image: {\n              insert: \"Insera imagina\",\n              cancel: \"Anula\"\n        },\n        html: {\n            edit: \"Editare HTML\"\n        },\n\n        colours: {\n            black: \"Negru\",\n            silver: \"Argint\",\n            gray: \"Gri\",\n            maroon: \"Castaniu\",\n            red: \"Roșu\",\n            purple: \"Violet\",\n            green: \"Verde\",\n            olive: \"Oliv\",\n            navy: \"Marin\",\n            blue: \"Albastru\",\n            orange: \"Portocaliu\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.nb-NB.js",
    "content": "/**\n * Norwegian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"nb-NB\"] = {\n        font_styles: {\n              normal: \"Normal tekst\",\n              h1: \"Tittel 1\",\n              h2: \"Tittel 2\",\n              h3: \"Tittel 3\"\n        },\n        emphasis: {\n              bold: \"Fet\",\n              italic: \"Kursiv\",\n              underline: \"Understrekning\"\n        },\n        lists: {\n              unordered: \"Usortert\",\n              ordered: \"Sortert\",\n              outdent: \"Detabuler\",\n              indent: \"Tabuler\",\n              indered: \"Tabuler\"\n        },\n        link: {\n              insert: \"Sett inn lenke\",\n              cancel: \"Avbryt\"\n        },\n        image: {\n              insert: \"Sett inn bilde\",\n              cancel: \"Avbryt\"\n        },\n        html: {\n            edit: \"Rediger HTML\"\n        },\n        colours: {\n          black: \"Svart\",\n          silver: \"Sølv\",\n          gray: \"Grå\",\n          maroon: \"Brun\",\n          red: \"Rød\",\n          purple: \"Lilla\",\n          green: \"Grønn\",\n          olive: \"Oliven\",\n          navy: \"Marineblå\",\n          blue: \"Blå\",\n          orange: \"Oransj\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.nl-NL.js",
    "content": "/**\n * Dutch translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"nl-NL\"] = {\n        font_styles: {\n            normal: \"Normale Tekst\",\n            h1: \"Kop 1\",\n            h2: \"Kop 2\",\n            h3: \"Kop 3\"\n        },\n        emphasis: {\n            bold: \"Vet\",\n            italic: \"Cursief\",\n            underline: \"Onderstrepen\"\n        },\n        lists: {\n            unordered: \"Ongeordende lijst\",\n            ordered: \"Geordende lijst\",\n            outdent: \"Inspringen verkleinen\",\n            indent: \"Inspringen vergroten\"\n        },\n        link: {\n            insert: \"Link invoegen\",\n            cancel: \"Annuleren\"\n        },\n        image: {\n            insert: \"Afbeelding invoegen\",\n            cancel: \"Annuleren\"\n        },\n        html: {\n            edit: \"HTML bewerken\"\n        },\n        colours: {\n            black: \"Zwart\",\n            silver: \"Zilver\",\n            gray: \"Grijs\",\n            maroon: \"Kastanjebruin\",\n            red: \"Rood\",\n            purple: \"Paars\",\n            green: \"Groen\",\n            olive: \"Olijfgroen\",\n            navy: \"Donkerblauw\",\n            blue: \"Blauw\",\n            orange: \"Oranje\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.pl-PL.js",
    "content": "/**\n * Polish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"pl-PL\"] = {\n        font_styles: {\n            normal: \"Tekst podstawowy\",\n            h1: \"Nagłówek 1\",\n            h2: \"Nagłówek 2\",\n            h3: \"Nagłówek 3\"\n        },\n        emphasis: {\n            bold: \"Pogrubienie\",\n            italic: \"Kursywa\",\n            underline: \"Podkreślenie\"\n        },\n        lists: {\n            unordered: \"Lista wypunktowana\",\n            ordered: \"Lista numerowana\",\n            outdent: \"Zwiększ wcięcie\",\n            indent: \"Zmniejsz wcięcie\"\n        },\n        link: {\n            insert: \"Wstaw odnośnik\",\n            cancel: \"Anuluj\"\n        },\n        image: {\n            insert: \"Wstaw obrazek\",\n            cancel: \"Anuluj\"\n        },\n        html: {\n            edit: \"Edycja HTML\"\n        },\n        colours: {\n            black: \"Czarny\",\n            silver: \"Srebrny\",\n            gray: \"Szary\",\n            maroon: \"Kasztanowy\",\n            red: \"Czerwony\",\n            purple: \"Fioletowy\",\n            green: \"Zielony\",\n            olive: \"Oliwkowy\",\n            navy: \"Granatowy\",\n            blue: \"Niebieski\",\n            orange: \"Pomarańczowy\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.pt-BR.js",
    "content": "/**\n * Brazilian portuguese translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"pt-BR\"] = {\n        font_styles: {\n            normal: \"Texto normal\",\n            h1: \"Título 1\",\n            h2: \"Título 2\",\n            h3: \"Título 3\"\n        },\n        emphasis: {\n            bold: \"Negrito\",\n            italic: \"Itálico\",\n            underline: \"Sublinhado\"\n        },\n        lists: {\n            unordered: \"Lista\",\n            ordered: \"Lista numerada\",\n            outdent: \"Remover indentação\",\n            indent: \"Indentar\"\n        },\n        link: {\n            insert: \"Inserir link\",\n            cancel: \"Cancelar\"\n        },\n        image: {\n            insert: \"Inserir imagem\",\n            cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n            black: \"Preto\",\n            silver: \"Prata\",\n            gray: \"Cinza\",\n            maroon: \"Marrom\",\n            red: \"Vermelho\",\n            purple: \"Roxo\",\n            green: \"Verde\",\n            olive: \"Oliva\",\n            navy: \"Marinho\",\n            blue: \"Azul\",\n            orange: \"Laranja\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ru-RU.js",
    "content": "/**\n * Russian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ru-RU\"] = {\n        font_styles: {\n            normal: \"Обычный текст\",\n            h1: \"Заголовок 1\",\n            h2: \"Заголовок 2\",\n            h3: \"Заголовок 3\"\n        },\n        emphasis: {\n            bold: \"Полужирный\",\n            italic: \"Курсив\",\n            underline: \"Подчёркнутый\"\n        },\n        lists: {\n            unordered: \"Маркированный список\",\n            ordered: \"Нумерованный список\",\n            outdent: \"Уменьшить отступ\",\n            indent: \"Увеличить отступ\"\n        },\n        link: {\n            insert: \"Вставить ссылку\",\n            cancel: \"Отмена\"\n        },\n        image: {\n            insert: \"Вставить изображение\",\n            cancel: \"Отмена\"\n        },\n        html: {\n            edit: \"HTML код\"\n        },\n        colours: {\n            black: \"Чёрный\",\n            silver: \"Серебряный\",\n            gray: \"Серый\",\n            maroon: \"Коричневый\",\n            red: \"Красный\",\n            purple: \"Фиолетовый\",\n            green: \"Зелёный\",\n            olive: \"Оливковый\",\n            navy: \"Тёмно-синий\",\n            blue: \"Синий\",\n            orange: \"Оранжевый\"\n        }\n    };\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.sk-SK.js",
    "content": "/**\n * Slovak translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"sk-SK\"] = {\n        font_styles: {\n            normal: \"Normálny text\",\n            h1: \"Nadpis úrovne 1\",\n            h2: \"Nadpis úrovne 2\",\n            h3: \"Nadpis úrovne 3\"\n        },\n        emphasis: {\n            bold: \"Tučné\",\n            italic: \"Kurzíva\",\n            underline: \"Podčiarknuté\"\n        },\n        lists: {\n            unordered: \"Neusporiadaný zoznam\",\n            ordered: \"Číslovaný zoznam\",\n            outdent: \"Zväčšiť odsadenie\",\n            indent: \"Zmenšiť odsadenie\"\n        },\n        link: {\n            insert: \"Vložiť odkaz\",\n            cancel: \"Zrušiť\"\n        },\n        image: {\n            insert: \"Vložiť obrázok\",\n            cancel: \"Zrušiť\"\n        },\n        html: {\n            edit: \"Editovať HTML\"\n        },\n        colours: {\n            black: \"Čierna\",\n            silver: \"Strieborná\",\n            gray: \"Šedá\",\n            maroon: \"Bordová\",\n            red: \"Červená\",\n            purple: \"Fialová\",\n            green: \"Zelená\",\n            olive: \"Olivová\",\n            navy: \"Tmavomodrá\",\n            blue: \"Modrá\",\n            orange: \"Oranžová\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.sv-SE.js",
    "content": "/**\n * Swedish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"sv-SE\"] = {\n        font_styles: {\n            normal: \"Normal Text\",\n            h1: \"Rubrik 1\",\n            h2: \"Rubrik 2\",\n            h3: \"Rubrik 3\"\n        },\n        emphasis: {\n            bold: \"Fet\",\n            italic: \"Kursiv\",\n            underline: \"Understruken\"\n        },\n        lists: {\n            unordered: \"Osorterad lista\",\n            ordered: \"Sorterad lista\",\n            outdent: \"Minska indrag\",\n            indent: \"Öka indrag\"\n        },\n        link: {\n            insert: \"Lägg till länk\",\n            cancel: \"Avbryt\"\n        },\n        image: {\n            insert: \"Lägg till Bild\",\n            cancel: \"Avbryt\"\n        },\n        html: {\n            edit: \"Redigera HTML\"\n        },\n        colours: {\n            black: \"Svart\",\n            silver: \"Silver\",\n            gray: \"Grå\",\n            maroon: \"Kastaniebrun\",\n            red: \"Röd\",\n            purple: \"Lila\",\n            green: \"Grön\",\n            olive: \"Olivgrön\",\n            navy: \"Marinblå\",\n            blue: \"Blå\",\n            orange: \"Orange\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.tr-TR.js",
    "content": "/**\n * Turkish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"tr-TR\"] = {\n        font_styles: {\n            normal: \"Normal\",\n            h1: \"Başlık 1\",\n            h2: \"Başlık 2\",\n            h3: \"Başlık 3\"\n        },\n        emphasis: {\n            bold: \"Kalın\",\n            italic: \"İtalik\",\n            underline: \"Altı Çizili\"\n        },\n        lists: {\n            unordered: \"Sırasız Liste\",\n            ordered: \"Sıralı Liste\",\n            outdent: \"Girintiyi Azalt\",\n            indent: \"Girintiyi Arttır\"\n        },\n        link: {\n            insert: \"Ekle\",\n            cancel: \"Vazgeç\"\n        },\n        image: {\n            insert: \"Ekle\",\n            cancel: \"Vazgeç\"\n        },\n        html: {\n            edit: \"HTML Göster\"\n        },\n        colours: {\n            black: \"Siyah\",\n            silver: \"Gümüş\",\n            gray: \"Gri\",\n            maroon: \"Vişne Çürüğü\",\n            red: \"Kırmızı\",\n            purple: \"Pembe\",\n            green: \"Yeşil\",\n            olive: \"Zeytin Yeşili\",\n            navy: \"Lacivert\",\n            blue: \"Mavi\",\n            orange: \"Turuncu\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ua-UA.js",
    "content": "/**\n * Ukrainian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ua-UA\"] = {\n        font_styles: {\n            normal: \"Звичайний текст\",\n            h1: \"Заголовок 1\",\n            h2: \"Заголовок 2\",\n            h3: \"Заголовок 3\"\n        },\n        emphasis: {\n            bold: \"Напівжирний\",\n            italic: \"Курсив\",\n            underline: \"Підкреслений\"\n        },\n        lists: {\n            unordered: \"Маркований список\",\n            ordered: \"Нумерований список\",\n            outdent: \"Зменшити відступ\",\n            indent: \"Збільшити відступ\"\n        },\n        link: {\n            insert: \"Вставити посилання\",\n            cancel: \"Відміна\"\n        },\n        image: {\n            insert: \"Вставити зображення\",\n            cancel: \"Відміна\"\n        },\n        html: {\n            edit: \"HTML код\"\n        },\n        colours: {\n            black: \"Чорний\",\n            silver: \"Срібний\",\n            gray: \"Сірий\",\n            maroon: \"Коричневий\",\n            red: \"Червоний\",\n            purple: \"Фіолетовий\",\n            green: \"Зелений\",\n            olive: \"Оливковий\",\n            navy: \"Темно-синій\",\n            blue: \"Синій\",\n            orange: \"Помаранчевий\"\n        }\n    };\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.zh-CN.js",
    "content": "/**\n * Chinese translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"zh-CN\"] = {\n        font_styles: {\n            normal: \"正文\",\n            h1: \"标题 1\",\n            h2: \"标题 2\",\n            h3: \"标题 3\"\n        },\n        emphasis: {\n            bold: \"粗体\",\n            italic: \"斜体\",\n            underline: \"下划线\"\n        },\n        lists: {\n            unordered: \"项目符号\",\n            ordered: \"编号\",\n            outdent: \"减少缩进\",\n            indent: \"增加缩进\"\n        },\n        link: {\n            insert: \"插入链接\",\n            cancel: \"取消\"\n        },\n        image: {\n            insert: \"插入图片\",\n            cancel: \"取消\"\n        },\n        html: {\n            edit: \"HTML代码\"\n        },\n        colours: {\n            black: \"黑色\",\n            silver: \"银色\",\n            gray: \"灰色\",\n            maroon: \"赤红色\",\n            red: \"红色\",\n            purple: \"紫色\",\n            green: \"绿色\",\n            olive: \"橄榄色\",\n            navy: \"深蓝色\",\n            blue: \"蓝色\",\n            orange: \"橙色\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.zh-TW.js",
    "content": "/**\n * Chinese Traditional translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"zh-TW\"] = {\n        font_styles: {\n            normal: \"內文\",\n            h1: \"標題 1\",\n            h2: \"標題 2\",\n            h3: \"標題 3\"\n        },\n        emphasis: {\n            bold: \"粗體\",\n            italic: \"斜體\",\n            underline: \"底線\"\n        },\n        lists: {\n            unordered: \"項目符號\",\n            ordered: \"編號列表\",\n            outdent: \"減少縮排\",\n            indent: \"增加縮排\"\n        },\n        link: {\n            insert: \"插入超連結\",\n            cancel: \"取消\"\n        },\n        image: {\n            insert: \"插入圖片連結\",\n            cancel: \"取消\"\n        },\n        html: {\n            edit: \"HTML原始碼\"\n        },\n        colours: {\n            black: \"黑色\",\n            silver: \"銀色\",\n            gray: \"灰色\",\n            maroon: \"栗色\",\n            red: \"红色\",\n            purple: \"紫色\",\n            green: \"綠色\",\n            olive: \"橄欖色\",\n            navy: \"深藍色\",\n            blue: \"藍色\",\n            orange: \"橙色\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/wysihtml5-0.3.0.js",
    "content": "/**\n * @license wysihtml5 v0.3.0\n * https://github.com/xing/wysihtml5\n *\n * Author: Christopher Blum (https://github.com/tiff)\n *\n * Copyright (C) 2012 XING AG\n * Licensed under the MIT license (MIT)\n *\n */\nvar wysihtml5 = {\n  version: \"0.3.0\",\n  \n  // namespaces\n  commands:   {},\n  dom:        {},\n  quirks:     {},\n  toolbar:    {},\n  lang:       {},\n  selection:  {},\n  views:      {},\n  \n  INVISIBLE_SPACE: \"\\uFEFF\",\n  \n  EMPTY_FUNCTION: function() {},\n  \n  ELEMENT_NODE: 1,\n  TEXT_NODE:    3,\n  \n  BACKSPACE_KEY:  8,\n  ENTER_KEY:      13,\n  ESCAPE_KEY:     27,\n  SPACE_KEY:      32,\n  DELETE_KEY:     46\n};/**\n * @license Rangy, a cross-browser JavaScript range and selection library\n * http://code.google.com/p/rangy/\n *\n * Copyright 2011, Tim Down\n * Licensed under the MIT license.\n * Version: 1.2.2\n * Build date: 13 November 2011\n */\nwindow['rangy'] = (function() {\n\n\n    var OBJECT = \"object\", FUNCTION = \"function\", UNDEFINED = \"undefined\";\n\n    var domRangeProperties = [\"startContainer\", \"startOffset\", \"endContainer\", \"endOffset\", \"collapsed\",\n        \"commonAncestorContainer\", \"START_TO_START\", \"START_TO_END\", \"END_TO_START\", \"END_TO_END\"];\n\n    var domRangeMethods = [\"setStart\", \"setStartBefore\", \"setStartAfter\", \"setEnd\", \"setEndBefore\",\n        \"setEndAfter\", \"collapse\", \"selectNode\", \"selectNodeContents\", \"compareBoundaryPoints\", \"deleteContents\",\n        \"extractContents\", \"cloneContents\", \"insertNode\", \"surroundContents\", \"cloneRange\", \"toString\", \"detach\"];\n\n    var textRangeProperties = [\"boundingHeight\", \"boundingLeft\", \"boundingTop\", \"boundingWidth\", \"htmlText\", \"text\"];\n\n    // Subset of TextRange's full set of methods that we're interested in\n    var textRangeMethods = [\"collapse\", \"compareEndPoints\", \"duplicate\", \"getBookmark\", \"moveToBookmark\",\n        \"moveToElementText\", \"parentElement\", \"pasteHTML\", \"select\", \"setEndPoint\", \"getBoundingClientRect\"];\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Trio of functions taken from Peter Michaux's article:\n    // http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting\n    function isHostMethod(o, p) {\n        var t = typeof o[p];\n        return t == FUNCTION || (!!(t == OBJECT && o[p])) || t == \"unknown\";\n    }\n\n    function isHostObject(o, p) {\n        return !!(typeof o[p] == OBJECT && o[p]);\n    }\n\n    function isHostProperty(o, p) {\n        return typeof o[p] != UNDEFINED;\n    }\n\n    // Creates a convenience function to save verbose repeated calls to tests functions\n    function createMultiplePropertyTest(testFunc) {\n        return function(o, props) {\n            var i = props.length;\n            while (i--) {\n                if (!testFunc(o, props[i])) {\n                    return false;\n                }\n            }\n            return true;\n        };\n    }\n\n    // Next trio of functions are a convenience to save verbose repeated calls to previous two functions\n    var areHostMethods = createMultiplePropertyTest(isHostMethod);\n    var areHostObjects = createMultiplePropertyTest(isHostObject);\n    var areHostProperties = createMultiplePropertyTest(isHostProperty);\n\n    function isTextRange(range) {\n        return range && areHostMethods(range, textRangeMethods) && areHostProperties(range, textRangeProperties);\n    }\n\n    var api = {\n        version: \"1.2.2\",\n        initialized: false,\n        supported: true,\n\n        util: {\n            isHostMethod: isHostMethod,\n            isHostObject: isHostObject,\n            isHostProperty: isHostProperty,\n            areHostMethods: areHostMethods,\n            areHostObjects: areHostObjects,\n            areHostProperties: areHostProperties,\n            isTextRange: isTextRange\n        },\n\n        features: {},\n\n        modules: {},\n        config: {\n            alertOnWarn: false,\n            preferTextRange: false\n        }\n    };\n\n    function fail(reason) {\n        window.alert(\"Rangy not supported in your browser. Reason: \" + reason);\n        api.initialized = true;\n        api.supported = false;\n    }\n\n    api.fail = fail;\n\n    function warn(msg) {\n        var warningMessage = \"Rangy warning: \" + msg;\n        if (api.config.alertOnWarn) {\n            window.alert(warningMessage);\n        } else if (typeof window.console != UNDEFINED && typeof window.console.log != UNDEFINED) {\n            window.console.log(warningMessage);\n        }\n    }\n\n    api.warn = warn;\n\n    if ({}.hasOwnProperty) {\n        api.util.extend = function(o, props) {\n            for (var i in props) {\n                if (props.hasOwnProperty(i)) {\n                    o[i] = props[i];\n                }\n            }\n        };\n    } else {\n        fail(\"hasOwnProperty not supported\");\n    }\n\n    var initListeners = [];\n    var moduleInitializers = [];\n\n    // Initialization\n    function init() {\n        if (api.initialized) {\n            return;\n        }\n        var testRange;\n        var implementsDomRange = false, implementsTextRange = false;\n\n        // First, perform basic feature tests\n\n        if (isHostMethod(document, \"createRange\")) {\n            testRange = document.createRange();\n            if (areHostMethods(testRange, domRangeMethods) && areHostProperties(testRange, domRangeProperties)) {\n                implementsDomRange = true;\n            }\n            testRange.detach();\n        }\n\n        var body = isHostObject(document, \"body\") ? document.body : document.getElementsByTagName(\"body\")[0];\n\n        if (body && isHostMethod(body, \"createTextRange\")) {\n            testRange = body.createTextRange();\n            if (isTextRange(testRange)) {\n                implementsTextRange = true;\n            }\n        }\n\n        if (!implementsDomRange && !implementsTextRange) {\n            fail(\"Neither Range nor TextRange are implemented\");\n        }\n\n        api.initialized = true;\n        api.features = {\n            implementsDomRange: implementsDomRange,\n            implementsTextRange: implementsTextRange\n        };\n\n        // Initialize modules and call init listeners\n        var allListeners = moduleInitializers.concat(initListeners);\n        for (var i = 0, len = allListeners.length; i < len; ++i) {\n            try {\n                allListeners[i](api);\n            } catch (ex) {\n                if (isHostObject(window, \"console\") && isHostMethod(window.console, \"log\")) {\n                    window.console.log(\"Init listener threw an exception. Continuing.\", ex);\n                }\n\n            }\n        }\n    }\n\n    // Allow external scripts to initialize this library in case it's loaded after the document has loaded\n    api.init = init;\n\n    // Execute listener immediately if already initialized\n    api.addInitListener = function(listener) {\n        if (api.initialized) {\n            listener(api);\n        } else {\n            initListeners.push(listener);\n        }\n    };\n\n    var createMissingNativeApiListeners = [];\n\n    api.addCreateMissingNativeApiListener = function(listener) {\n        createMissingNativeApiListeners.push(listener);\n    };\n\n    function createMissingNativeApi(win) {\n        win = win || window;\n        init();\n\n        // Notify listeners\n        for (var i = 0, len = createMissingNativeApiListeners.length; i < len; ++i) {\n            createMissingNativeApiListeners[i](win);\n        }\n    }\n\n    api.createMissingNativeApi = createMissingNativeApi;\n\n    /**\n     * @constructor\n     */\n    function Module(name) {\n        this.name = name;\n        this.initialized = false;\n        this.supported = false;\n    }\n\n    Module.prototype.fail = function(reason) {\n        this.initialized = true;\n        this.supported = false;\n\n        throw new Error(\"Module '\" + this.name + \"' failed to load: \" + reason);\n    };\n\n    Module.prototype.warn = function(msg) {\n        api.warn(\"Module \" + this.name + \": \" + msg);\n    };\n\n    Module.prototype.createError = function(msg) {\n        return new Error(\"Error in Rangy \" + this.name + \" module: \" + msg);\n    };\n\n    api.createModule = function(name, initFunc) {\n        var module = new Module(name);\n        api.modules[name] = module;\n\n        moduleInitializers.push(function(api) {\n            initFunc(api, module);\n            module.initialized = true;\n            module.supported = true;\n        });\n    };\n\n    api.requireModules = function(modules) {\n        for (var i = 0, len = modules.length, module, moduleName; i < len; ++i) {\n            moduleName = modules[i];\n            module = api.modules[moduleName];\n            if (!module || !(module instanceof Module)) {\n                throw new Error(\"Module '\" + moduleName + \"' not found\");\n            }\n            if (!module.supported) {\n                throw new Error(\"Module '\" + moduleName + \"' not supported\");\n            }\n        }\n    };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Wait for document to load before running tests\n\n    var docReady = false;\n\n    var loadHandler = function(e) {\n\n        if (!docReady) {\n            docReady = true;\n            if (!api.initialized) {\n                init();\n            }\n        }\n    };\n\n    // Test whether we have window and document objects that we will need\n    if (typeof window == UNDEFINED) {\n        fail(\"No window found\");\n        return;\n    }\n    if (typeof document == UNDEFINED) {\n        fail(\"No document found\");\n        return;\n    }\n\n    if (isHostMethod(document, \"addEventListener\")) {\n        document.addEventListener(\"DOMContentLoaded\", loadHandler, false);\n    }\n\n    // Add a fallback in case the DOMContentLoaded event isn't supported\n    if (isHostMethod(window, \"addEventListener\")) {\n        window.addEventListener(\"load\", loadHandler, false);\n    } else if (isHostMethod(window, \"attachEvent\")) {\n        window.attachEvent(\"onload\", loadHandler);\n    } else {\n        fail(\"Window does not have required addEventListener or attachEvent method\");\n    }\n\n    return api;\n})();\nrangy.createModule(\"DomUtil\", function(api, module) {\n\n    var UNDEF = \"undefined\";\n    var util = api.util;\n\n    // Perform feature tests\n    if (!util.areHostMethods(document, [\"createDocumentFragment\", \"createElement\", \"createTextNode\"])) {\n        module.fail(\"document missing a Node creation method\");\n    }\n\n    if (!util.isHostMethod(document, \"getElementsByTagName\")) {\n        module.fail(\"document missing getElementsByTagName method\");\n    }\n\n    var el = document.createElement(\"div\");\n    if (!util.areHostMethods(el, [\"insertBefore\", \"appendChild\", \"cloneNode\"] ||\n            !util.areHostObjects(el, [\"previousSibling\", \"nextSibling\", \"childNodes\", \"parentNode\"]))) {\n        module.fail(\"Incomplete Element implementation\");\n    }\n\n    // innerHTML is required for Range's createContextualFragment method\n    if (!util.isHostProperty(el, \"innerHTML\")) {\n        module.fail(\"Element is missing innerHTML property\");\n    }\n\n    var textNode = document.createTextNode(\"test\");\n    if (!util.areHostMethods(textNode, [\"splitText\", \"deleteData\", \"insertData\", \"appendData\", \"cloneNode\"] ||\n            !util.areHostObjects(el, [\"previousSibling\", \"nextSibling\", \"childNodes\", \"parentNode\"]) ||\n            !util.areHostProperties(textNode, [\"data\"]))) {\n        module.fail(\"Incomplete Text Node implementation\");\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Removed use of indexOf because of a bizarre bug in Opera that is thrown in one of the Acid3 tests. I haven't been\n    // able to replicate it outside of the test. The bug is that indexOf returns -1 when called on an Array that\n    // contains just the document as a single element and the value searched for is the document.\n    var arrayContains = /*Array.prototype.indexOf ?\n        function(arr, val) {\n            return arr.indexOf(val) > -1;\n        }:*/\n\n        function(arr, val) {\n            var i = arr.length;\n            while (i--) {\n                if (arr[i] === val) {\n                    return true;\n                }\n            }\n            return false;\n        };\n\n    // Opera 11 puts HTML elements in the null namespace, it seems, and IE 7 has undefined namespaceURI\n    function isHtmlNamespace(node) {\n        var ns;\n        return typeof node.namespaceURI == UNDEF || ((ns = node.namespaceURI) === null || ns == \"http://www.w3.org/1999/xhtml\");\n    }\n\n    function parentElement(node) {\n        var parent = node.parentNode;\n        return (parent.nodeType == 1) ? parent : null;\n    }\n\n    function getNodeIndex(node) {\n        var i = 0;\n        while( (node = node.previousSibling) ) {\n            i++;\n        }\n        return i;\n    }\n\n    function getNodeLength(node) {\n        var childNodes;\n        return isCharacterDataNode(node) ? node.length : ((childNodes = node.childNodes) ? childNodes.length : 0);\n    }\n\n    function getCommonAncestor(node1, node2) {\n        var ancestors = [], n;\n        for (n = node1; n; n = n.parentNode) {\n            ancestors.push(n);\n        }\n\n        for (n = node2; n; n = n.parentNode) {\n            if (arrayContains(ancestors, n)) {\n                return n;\n            }\n        }\n\n        return null;\n    }\n\n    function isAncestorOf(ancestor, descendant, selfIsAncestor) {\n        var n = selfIsAncestor ? descendant : descendant.parentNode;\n        while (n) {\n            if (n === ancestor) {\n                return true;\n            } else {\n                n = n.parentNode;\n            }\n        }\n        return false;\n    }\n\n    function getClosestAncestorIn(node, ancestor, selfIsAncestor) {\n        var p, n = selfIsAncestor ? node : node.parentNode;\n        while (n) {\n            p = n.parentNode;\n            if (p === ancestor) {\n                return n;\n            }\n            n = p;\n        }\n        return null;\n    }\n\n    function isCharacterDataNode(node) {\n        var t = node.nodeType;\n        return t == 3 || t == 4 || t == 8 ; // Text, CDataSection or Comment\n    }\n\n    function insertAfter(node, precedingNode) {\n        var nextNode = precedingNode.nextSibling, parent = precedingNode.parentNode;\n        if (nextNode) {\n            parent.insertBefore(node, nextNode);\n        } else {\n            parent.appendChild(node);\n        }\n        return node;\n    }\n\n    // Note that we cannot use splitText() because it is bugridden in IE 9.\n    function splitDataNode(node, index) {\n        var newNode = node.cloneNode(false);\n        newNode.deleteData(0, index);\n        node.deleteData(index, node.length - index);\n        insertAfter(newNode, node);\n        return newNode;\n    }\n\n    function getDocument(node) {\n        if (node.nodeType == 9) {\n            return node;\n        } else if (typeof node.ownerDocument != UNDEF) {\n            return node.ownerDocument;\n        } else if (typeof node.document != UNDEF) {\n            return node.document;\n        } else if (node.parentNode) {\n            return getDocument(node.parentNode);\n        } else {\n            throw new Error(\"getDocument: no document found for node\");\n        }\n    }\n\n    function getWindow(node) {\n        var doc = getDocument(node);\n        if (typeof doc.defaultView != UNDEF) {\n            return doc.defaultView;\n        } else if (typeof doc.parentWindow != UNDEF) {\n            return doc.parentWindow;\n        } else {\n            throw new Error(\"Cannot get a window object for node\");\n        }\n    }\n\n    function getIframeDocument(iframeEl) {\n        if (typeof iframeEl.contentDocument != UNDEF) {\n            return iframeEl.contentDocument;\n        } else if (typeof iframeEl.contentWindow != UNDEF) {\n            return iframeEl.contentWindow.document;\n        } else {\n            throw new Error(\"getIframeWindow: No Document object found for iframe element\");\n        }\n    }\n\n    function getIframeWindow(iframeEl) {\n        if (typeof iframeEl.contentWindow != UNDEF) {\n            return iframeEl.contentWindow;\n        } else if (typeof iframeEl.contentDocument != UNDEF) {\n            return iframeEl.contentDocument.defaultView;\n        } else {\n            throw new Error(\"getIframeWindow: No Window object found for iframe element\");\n        }\n    }\n\n    function getBody(doc) {\n        return util.isHostObject(doc, \"body\") ? doc.body : doc.getElementsByTagName(\"body\")[0];\n    }\n\n    function getRootContainer(node) {\n        var parent;\n        while ( (parent = node.parentNode) ) {\n            node = parent;\n        }\n        return node;\n    }\n\n    function comparePoints(nodeA, offsetA, nodeB, offsetB) {\n        // See http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Comparing\n        var nodeC, root, childA, childB, n;\n        if (nodeA == nodeB) {\n\n            // Case 1: nodes are the same\n            return offsetA === offsetB ? 0 : (offsetA < offsetB) ? -1 : 1;\n        } else if ( (nodeC = getClosestAncestorIn(nodeB, nodeA, true)) ) {\n\n            // Case 2: node C (container B or an ancestor) is a child node of A\n            return offsetA <= getNodeIndex(nodeC) ? -1 : 1;\n        } else if ( (nodeC = getClosestAncestorIn(nodeA, nodeB, true)) ) {\n\n            // Case 3: node C (container A or an ancestor) is a child node of B\n            return getNodeIndex(nodeC) < offsetB  ? -1 : 1;\n        } else {\n\n            // Case 4: containers are siblings or descendants of siblings\n            root = getCommonAncestor(nodeA, nodeB);\n            childA = (nodeA === root) ? root : getClosestAncestorIn(nodeA, root, true);\n            childB = (nodeB === root) ? root : getClosestAncestorIn(nodeB, root, true);\n\n            if (childA === childB) {\n                // This shouldn't be possible\n\n                throw new Error(\"comparePoints got to case 4 and childA and childB are the same!\");\n            } else {\n                n = root.firstChild;\n                while (n) {\n                    if (n === childA) {\n                        return -1;\n                    } else if (n === childB) {\n                        return 1;\n                    }\n                    n = n.nextSibling;\n                }\n                throw new Error(\"Should not be here!\");\n            }\n        }\n    }\n\n    function fragmentFromNodeChildren(node) {\n        var fragment = getDocument(node).createDocumentFragment(), child;\n        while ( (child = node.firstChild) ) {\n            fragment.appendChild(child);\n        }\n        return fragment;\n    }\n\n    function inspectNode(node) {\n        if (!node) {\n            return \"[No node]\";\n        }\n        if (isCharacterDataNode(node)) {\n            return '\"' + node.data + '\"';\n        } else if (node.nodeType == 1) {\n            var idAttr = node.id ? ' id=\"' + node.id + '\"' : \"\";\n            return \"<\" + node.nodeName + idAttr + \">[\" + node.childNodes.length + \"]\";\n        } else {\n            return node.nodeName;\n        }\n    }\n\n    /**\n     * @constructor\n     */\n    function NodeIterator(root) {\n        this.root = root;\n        this._next = root;\n    }\n\n    NodeIterator.prototype = {\n        _current: null,\n\n        hasNext: function() {\n            return !!this._next;\n        },\n\n        next: function() {\n            var n = this._current = this._next;\n            var child, next;\n            if (this._current) {\n                child = n.firstChild;\n                if (child) {\n                    this._next = child;\n                } else {\n                    next = null;\n                    while ((n !== this.root) && !(next = n.nextSibling)) {\n                        n = n.parentNode;\n                    }\n                    this._next = next;\n                }\n            }\n            return this._current;\n        },\n\n        detach: function() {\n            this._current = this._next = this.root = null;\n        }\n    };\n\n    function createIterator(root) {\n        return new NodeIterator(root);\n    }\n\n    /**\n     * @constructor\n     */\n    function DomPosition(node, offset) {\n        this.node = node;\n        this.offset = offset;\n    }\n\n    DomPosition.prototype = {\n        equals: function(pos) {\n            return this.node === pos.node & this.offset == pos.offset;\n        },\n\n        inspect: function() {\n            return \"[DomPosition(\" + inspectNode(this.node) + \":\" + this.offset + \")]\";\n        }\n    };\n\n    /**\n     * @constructor\n     */\n    function DOMException(codeName) {\n        this.code = this[codeName];\n        this.codeName = codeName;\n        this.message = \"DOMException: \" + this.codeName;\n    }\n\n    DOMException.prototype = {\n        INDEX_SIZE_ERR: 1,\n        HIERARCHY_REQUEST_ERR: 3,\n        WRONG_DOCUMENT_ERR: 4,\n        NO_MODIFICATION_ALLOWED_ERR: 7,\n        NOT_FOUND_ERR: 8,\n        NOT_SUPPORTED_ERR: 9,\n        INVALID_STATE_ERR: 11\n    };\n\n    DOMException.prototype.toString = function() {\n        return this.message;\n    };\n\n    api.dom = {\n        arrayContains: arrayContains,\n        isHtmlNamespace: isHtmlNamespace,\n        parentElement: parentElement,\n        getNodeIndex: getNodeIndex,\n        getNodeLength: getNodeLength,\n        getCommonAncestor: getCommonAncestor,\n        isAncestorOf: isAncestorOf,\n        getClosestAncestorIn: getClosestAncestorIn,\n        isCharacterDataNode: isCharacterDataNode,\n        insertAfter: insertAfter,\n        splitDataNode: splitDataNode,\n        getDocument: getDocument,\n        getWindow: getWindow,\n        getIframeWindow: getIframeWindow,\n        getIframeDocument: getIframeDocument,\n        getBody: getBody,\n        getRootContainer: getRootContainer,\n        comparePoints: comparePoints,\n        inspectNode: inspectNode,\n        fragmentFromNodeChildren: fragmentFromNodeChildren,\n        createIterator: createIterator,\n        DomPosition: DomPosition\n    };\n\n    api.DOMException = DOMException;\n});rangy.createModule(\"DomRange\", function(api, module) {\n    api.requireModules( [\"DomUtil\"] );\n\n\n    var dom = api.dom;\n    var DomPosition = dom.DomPosition;\n    var DOMException = api.DOMException;\n    \n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Utility functions\n\n    function isNonTextPartiallySelected(node, range) {\n        return (node.nodeType != 3) &&\n               (dom.isAncestorOf(node, range.startContainer, true) || dom.isAncestorOf(node, range.endContainer, true));\n    }\n\n    function getRangeDocument(range) {\n        return dom.getDocument(range.startContainer);\n    }\n\n    function dispatchEvent(range, type, args) {\n        var listeners = range._listeners[type];\n        if (listeners) {\n            for (var i = 0, len = listeners.length; i < len; ++i) {\n                listeners[i].call(range, {target: range, args: args});\n            }\n        }\n    }\n\n    function getBoundaryBeforeNode(node) {\n        return new DomPosition(node.parentNode, dom.getNodeIndex(node));\n    }\n\n    function getBoundaryAfterNode(node) {\n        return new DomPosition(node.parentNode, dom.getNodeIndex(node) + 1);\n    }\n\n    function insertNodeAtPosition(node, n, o) {\n        var firstNodeInserted = node.nodeType == 11 ? node.firstChild : node;\n        if (dom.isCharacterDataNode(n)) {\n            if (o == n.length) {\n                dom.insertAfter(node, n);\n            } else {\n                n.parentNode.insertBefore(node, o == 0 ? n : dom.splitDataNode(n, o));\n            }\n        } else if (o >= n.childNodes.length) {\n            n.appendChild(node);\n        } else {\n            n.insertBefore(node, n.childNodes[o]);\n        }\n        return firstNodeInserted;\n    }\n\n    function cloneSubtree(iterator) {\n        var partiallySelected;\n        for (var node, frag = getRangeDocument(iterator.range).createDocumentFragment(), subIterator; node = iterator.next(); ) {\n            partiallySelected = iterator.isPartiallySelectedSubtree();\n\n            node = node.cloneNode(!partiallySelected);\n            if (partiallySelected) {\n                subIterator = iterator.getSubtreeIterator();\n                node.appendChild(cloneSubtree(subIterator));\n                subIterator.detach(true);\n            }\n\n            if (node.nodeType == 10) { // DocumentType\n                throw new DOMException(\"HIERARCHY_REQUEST_ERR\");\n            }\n            frag.appendChild(node);\n        }\n        return frag;\n    }\n\n    function iterateSubtree(rangeIterator, func, iteratorState) {\n        var it, n;\n        iteratorState = iteratorState || { stop: false };\n        for (var node, subRangeIterator; node = rangeIterator.next(); ) {\n            //log.debug(\"iterateSubtree, partially selected: \" + rangeIterator.isPartiallySelectedSubtree(), nodeToString(node));\n            if (rangeIterator.isPartiallySelectedSubtree()) {\n                // The node is partially selected by the Range, so we can use a new RangeIterator on the portion of the\n                // node selected by the Range.\n                if (func(node) === false) {\n                    iteratorState.stop = true;\n                    return;\n                } else {\n                    subRangeIterator = rangeIterator.getSubtreeIterator();\n                    iterateSubtree(subRangeIterator, func, iteratorState);\n                    subRangeIterator.detach(true);\n                    if (iteratorState.stop) {\n                        return;\n                    }\n                }\n            } else {\n                // The whole node is selected, so we can use efficient DOM iteration to iterate over the node and its\n                // descendant\n                it = dom.createIterator(node);\n                while ( (n = it.next()) ) {\n                    if (func(n) === false) {\n                        iteratorState.stop = true;\n                        return;\n                    }\n                }\n            }\n        }\n    }\n\n    function deleteSubtree(iterator) {\n        var subIterator;\n        while (iterator.next()) {\n            if (iterator.isPartiallySelectedSubtree()) {\n                subIterator = iterator.getSubtreeIterator();\n                deleteSubtree(subIterator);\n                subIterator.detach(true);\n            } else {\n                iterator.remove();\n            }\n        }\n    }\n\n    function extractSubtree(iterator) {\n\n        for (var node, frag = getRangeDocument(iterator.range).createDocumentFragment(), subIterator; node = iterator.next(); ) {\n\n\n            if (iterator.isPartiallySelectedSubtree()) {\n                node = node.cloneNode(false);\n                subIterator = iterator.getSubtreeIterator();\n                node.appendChild(extractSubtree(subIterator));\n                subIterator.detach(true);\n            } else {\n                iterator.remove();\n            }\n            if (node.nodeType == 10) { // DocumentType\n                throw new DOMException(\"HIERARCHY_REQUEST_ERR\");\n            }\n            frag.appendChild(node);\n        }\n        return frag;\n    }\n\n    function getNodesInRange(range, nodeTypes, filter) {\n        //log.info(\"getNodesInRange, \" + nodeTypes.join(\",\"));\n        var filterNodeTypes = !!(nodeTypes && nodeTypes.length), regex;\n        var filterExists = !!filter;\n        if (filterNodeTypes) {\n            regex = new RegExp(\"^(\" + nodeTypes.join(\"|\") + \")$\");\n        }\n\n        var nodes = [];\n        iterateSubtree(new RangeIterator(range, false), function(node) {\n            if ((!filterNodeTypes || regex.test(node.nodeType)) && (!filterExists || filter(node))) {\n                nodes.push(node);\n            }\n        });\n        return nodes;\n    }\n\n    function inspect(range) {\n        var name = (typeof range.getName == \"undefined\") ? \"Range\" : range.getName();\n        return \"[\" + name + \"(\" + dom.inspectNode(range.startContainer) + \":\" + range.startOffset + \", \" +\n                dom.inspectNode(range.endContainer) + \":\" + range.endOffset + \")]\";\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // RangeIterator code partially borrows from IERange by Tim Ryan (http://github.com/timcameronryan/IERange)\n\n    /**\n     * @constructor\n     */\n    function RangeIterator(range, clonePartiallySelectedTextNodes) {\n        this.range = range;\n        this.clonePartiallySelectedTextNodes = clonePartiallySelectedTextNodes;\n\n\n\n        if (!range.collapsed) {\n            this.sc = range.startContainer;\n            this.so = range.startOffset;\n            this.ec = range.endContainer;\n            this.eo = range.endOffset;\n            var root = range.commonAncestorContainer;\n\n            if (this.sc === this.ec && dom.isCharacterDataNode(this.sc)) {\n                this.isSingleCharacterDataNode = true;\n                this._first = this._last = this._next = this.sc;\n            } else {\n                this._first = this._next = (this.sc === root && !dom.isCharacterDataNode(this.sc)) ?\n                    this.sc.childNodes[this.so] : dom.getClosestAncestorIn(this.sc, root, true);\n                this._last = (this.ec === root && !dom.isCharacterDataNode(this.ec)) ?\n                    this.ec.childNodes[this.eo - 1] : dom.getClosestAncestorIn(this.ec, root, true);\n            }\n\n        }\n    }\n\n    RangeIterator.prototype = {\n        _current: null,\n        _next: null,\n        _first: null,\n        _last: null,\n        isSingleCharacterDataNode: false,\n\n        reset: function() {\n            this._current = null;\n            this._next = this._first;\n        },\n\n        hasNext: function() {\n            return !!this._next;\n        },\n\n        next: function() {\n            // Move to next node\n            var current = this._current = this._next;\n            if (current) {\n                this._next = (current !== this._last) ? current.nextSibling : null;\n\n                // Check for partially selected text nodes\n                if (dom.isCharacterDataNode(current) && this.clonePartiallySelectedTextNodes) {\n                    if (current === this.ec) {\n\n                        (current = current.cloneNode(true)).deleteData(this.eo, current.length - this.eo);\n                    }\n                    if (this._current === this.sc) {\n\n                        (current = current.cloneNode(true)).deleteData(0, this.so);\n                    }\n                }\n            }\n\n            return current;\n        },\n\n        remove: function() {\n            var current = this._current, start, end;\n\n            if (dom.isCharacterDataNode(current) && (current === this.sc || current === this.ec)) {\n                start = (current === this.sc) ? this.so : 0;\n                end = (current === this.ec) ? this.eo : current.length;\n                if (start != end) {\n                    current.deleteData(start, end - start);\n                }\n            } else {\n                if (current.parentNode) {\n                    current.parentNode.removeChild(current);\n                } else {\n\n                }\n            }\n        },\n\n        // Checks if the current node is partially selected\n        isPartiallySelectedSubtree: function() {\n            var current = this._current;\n            return isNonTextPartiallySelected(current, this.range);\n        },\n\n        getSubtreeIterator: function() {\n            var subRange;\n            if (this.isSingleCharacterDataNode) {\n                subRange = this.range.cloneRange();\n                subRange.collapse();\n            } else {\n                subRange = new Range(getRangeDocument(this.range));\n                var current = this._current;\n                var startContainer = current, startOffset = 0, endContainer = current, endOffset = dom.getNodeLength(current);\n\n                if (dom.isAncestorOf(current, this.sc, true)) {\n                    startContainer = this.sc;\n                    startOffset = this.so;\n                }\n                if (dom.isAncestorOf(current, this.ec, true)) {\n                    endContainer = this.ec;\n                    endOffset = this.eo;\n                }\n\n                updateBoundaries(subRange, startContainer, startOffset, endContainer, endOffset);\n            }\n            return new RangeIterator(subRange, this.clonePartiallySelectedTextNodes);\n        },\n\n        detach: function(detachRange) {\n            if (detachRange) {\n                this.range.detach();\n            }\n            this.range = this._current = this._next = this._first = this._last = this.sc = this.so = this.ec = this.eo = null;\n        }\n    };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Exceptions\n\n    /**\n     * @constructor\n     */\n    function RangeException(codeName) {\n        this.code = this[codeName];\n        this.codeName = codeName;\n        this.message = \"RangeException: \" + this.codeName;\n    }\n\n    RangeException.prototype = {\n        BAD_BOUNDARYPOINTS_ERR: 1,\n        INVALID_NODE_TYPE_ERR: 2\n    };\n\n    RangeException.prototype.toString = function() {\n        return this.message;\n    };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    /**\n     * Currently iterates through all nodes in the range on creation until I think of a decent way to do it\n     * TODO: Look into making this a proper iterator, not requiring preloading everything first\n     * @constructor\n     */\n    function RangeNodeIterator(range, nodeTypes, filter) {\n        this.nodes = getNodesInRange(range, nodeTypes, filter);\n        this._next = this.nodes[0];\n        this._position = 0;\n    }\n\n    RangeNodeIterator.prototype = {\n        _current: null,\n\n        hasNext: function() {\n            return !!this._next;\n        },\n\n        next: function() {\n            this._current = this._next;\n            this._next = this.nodes[ ++this._position ];\n            return this._current;\n        },\n\n        detach: function() {\n            this._current = this._next = this.nodes = null;\n        }\n    };\n\n    var beforeAfterNodeTypes = [1, 3, 4, 5, 7, 8, 10];\n    var rootContainerNodeTypes = [2, 9, 11];\n    var readonlyNodeTypes = [5, 6, 10, 12];\n    var insertableNodeTypes = [1, 3, 4, 5, 7, 8, 10, 11];\n    var surroundNodeTypes = [1, 3, 4, 5, 7, 8];\n\n    function createAncestorFinder(nodeTypes) {\n        return function(node, selfIsAncestor) {\n            var t, n = selfIsAncestor ? node : node.parentNode;\n            while (n) {\n                t = n.nodeType;\n                if (dom.arrayContains(nodeTypes, t)) {\n                    return n;\n                }\n                n = n.parentNode;\n            }\n            return null;\n        };\n    }\n\n    var getRootContainer = dom.getRootContainer;\n    var getDocumentOrFragmentContainer = createAncestorFinder( [9, 11] );\n    var getReadonlyAncestor = createAncestorFinder(readonlyNodeTypes);\n    var getDocTypeNotationEntityAncestor = createAncestorFinder( [6, 10, 12] );\n\n    function assertNoDocTypeNotationEntityAncestor(node, allowSelf) {\n        if (getDocTypeNotationEntityAncestor(node, allowSelf)) {\n            throw new RangeException(\"INVALID_NODE_TYPE_ERR\");\n        }\n    }\n\n    function assertNotDetached(range) {\n        if (!range.startContainer) {\n            throw new DOMException(\"INVALID_STATE_ERR\");\n        }\n    }\n\n    function assertValidNodeType(node, invalidTypes) {\n        if (!dom.arrayContains(invalidTypes, node.nodeType)) {\n            throw new RangeException(\"INVALID_NODE_TYPE_ERR\");\n        }\n    }\n\n    function assertValidOffset(node, offset) {\n        if (offset < 0 || offset > (dom.isCharacterDataNode(node) ? node.length : node.childNodes.length)) {\n            throw new DOMException(\"INDEX_SIZE_ERR\");\n        }\n    }\n\n    function assertSameDocumentOrFragment(node1, node2) {\n        if (getDocumentOrFragmentContainer(node1, true) !== getDocumentOrFragmentContainer(node2, true)) {\n            throw new DOMException(\"WRONG_DOCUMENT_ERR\");\n        }\n    }\n\n    function assertNodeNotReadOnly(node) {\n        if (getReadonlyAncestor(node, true)) {\n            throw new DOMException(\"NO_MODIFICATION_ALLOWED_ERR\");\n        }\n    }\n\n    function assertNode(node, codeName) {\n        if (!node) {\n            throw new DOMException(codeName);\n        }\n    }\n\n    function isOrphan(node) {\n        return !dom.arrayContains(rootContainerNodeTypes, node.nodeType) && !getDocumentOrFragmentContainer(node, true);\n    }\n\n    function isValidOffset(node, offset) {\n        return offset <= (dom.isCharacterDataNode(node) ? node.length : node.childNodes.length);\n    }\n\n    function assertRangeValid(range) {\n        assertNotDetached(range);\n        if (isOrphan(range.startContainer) || isOrphan(range.endContainer) ||\n                !isValidOffset(range.startContainer, range.startOffset) ||\n                !isValidOffset(range.endContainer, range.endOffset)) {\n            throw new Error(\"Range error: Range is no longer valid after DOM mutation (\" + range.inspect() + \")\");\n        }\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Test the browser's innerHTML support to decide how to implement createContextualFragment\n    var styleEl = document.createElement(\"style\");\n    var htmlParsingConforms = false;\n    try {\n        styleEl.innerHTML = \"<b>x</b>\";\n        htmlParsingConforms = (styleEl.firstChild.nodeType == 3); // Opera incorrectly creates an element node\n    } catch (e) {\n        // IE 6 and 7 throw\n    }\n\n    api.features.htmlParsingConforms = htmlParsingConforms;\n\n    var createContextualFragment = htmlParsingConforms ?\n\n        // Implementation as per HTML parsing spec, trusting in the browser's implementation of innerHTML. See\n        // discussion and base code for this implementation at issue 67.\n        // Spec: http://html5.org/specs/dom-parsing.html#extensions-to-the-range-interface\n        // Thanks to Aleks Williams.\n        function(fragmentStr) {\n            // \"Let node the context object's start's node.\"\n            var node = this.startContainer;\n            var doc = dom.getDocument(node);\n\n            // \"If the context object's start's node is null, raise an INVALID_STATE_ERR\n            // exception and abort these steps.\"\n            if (!node) {\n                throw new DOMException(\"INVALID_STATE_ERR\");\n            }\n\n            // \"Let element be as follows, depending on node's interface:\"\n            // Document, Document Fragment: null\n            var el = null;\n\n            // \"Element: node\"\n            if (node.nodeType == 1) {\n                el = node;\n\n            // \"Text, Comment: node's parentElement\"\n            } else if (dom.isCharacterDataNode(node)) {\n                el = dom.parentElement(node);\n            }\n\n            // \"If either element is null or element's ownerDocument is an HTML document\n            // and element's local name is \"html\" and element's namespace is the HTML\n            // namespace\"\n            if (el === null || (\n                el.nodeName == \"HTML\"\n                && dom.isHtmlNamespace(dom.getDocument(el).documentElement)\n                && dom.isHtmlNamespace(el)\n            )) {\n\n            // \"let element be a new Element with \"body\" as its local name and the HTML\n            // namespace as its namespace.\"\"\n                el = doc.createElement(\"body\");\n            } else {\n                el = el.cloneNode(false);\n            }\n\n            // \"If the node's document is an HTML document: Invoke the HTML fragment parsing algorithm.\"\n            // \"If the node's document is an XML document: Invoke the XML fragment parsing algorithm.\"\n            // \"In either case, the algorithm must be invoked with fragment as the input\n            // and element as the context element.\"\n            el.innerHTML = fragmentStr;\n\n            // \"If this raises an exception, then abort these steps. Otherwise, let new\n            // children be the nodes returned.\"\n\n            // \"Let fragment be a new DocumentFragment.\"\n            // \"Append all new children to fragment.\"\n            // \"Return fragment.\"\n            return dom.fragmentFromNodeChildren(el);\n        } :\n\n        // In this case, innerHTML cannot be trusted, so fall back to a simpler, non-conformant implementation that\n        // previous versions of Rangy used (with the exception of using a body element rather than a div)\n        function(fragmentStr) {\n            assertNotDetached(this);\n            var doc = getRangeDocument(this);\n            var el = doc.createElement(\"body\");\n            el.innerHTML = fragmentStr;\n\n            return dom.fragmentFromNodeChildren(el);\n        };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    var rangeProperties = [\"startContainer\", \"startOffset\", \"endContainer\", \"endOffset\", \"collapsed\",\n        \"commonAncestorContainer\"];\n\n    var s2s = 0, s2e = 1, e2e = 2, e2s = 3;\n    var n_b = 0, n_a = 1, n_b_a = 2, n_i = 3;\n\n    function RangePrototype() {}\n\n    RangePrototype.prototype = {\n        attachListener: function(type, listener) {\n            this._listeners[type].push(listener);\n        },\n\n        compareBoundaryPoints: function(how, range) {\n            assertRangeValid(this);\n            assertSameDocumentOrFragment(this.startContainer, range.startContainer);\n\n            var nodeA, offsetA, nodeB, offsetB;\n            var prefixA = (how == e2s || how == s2s) ? \"start\" : \"end\";\n            var prefixB = (how == s2e || how == s2s) ? \"start\" : \"end\";\n            nodeA = this[prefixA + \"Container\"];\n            offsetA = this[prefixA + \"Offset\"];\n            nodeB = range[prefixB + \"Container\"];\n            offsetB = range[prefixB + \"Offset\"];\n            return dom.comparePoints(nodeA, offsetA, nodeB, offsetB);\n        },\n\n        insertNode: function(node) {\n            assertRangeValid(this);\n            assertValidNodeType(node, insertableNodeTypes);\n            assertNodeNotReadOnly(this.startContainer);\n\n            if (dom.isAncestorOf(node, this.startContainer, true)) {\n                throw new DOMException(\"HIERARCHY_REQUEST_ERR\");\n            }\n\n            // No check for whether the container of the start of the Range is of a type that does not allow\n            // children of the type of node: the browser's DOM implementation should do this for us when we attempt\n            // to add the node\n\n            var firstNodeInserted = insertNodeAtPosition(node, this.startContainer, this.startOffset);\n            this.setStartBefore(firstNodeInserted);\n        },\n\n        cloneContents: function() {\n            assertRangeValid(this);\n\n            var clone, frag;\n            if (this.collapsed) {\n                return getRangeDocument(this).createDocumentFragment();\n            } else {\n                if (this.startContainer === this.endContainer && dom.isCharacterDataNode(this.startContainer)) {\n                    clone = this.startContainer.cloneNode(true);\n                    clone.data = clone.data.slice(this.startOffset, this.endOffset);\n                    frag = getRangeDocument(this).createDocumentFragment();\n                    frag.appendChild(clone);\n                    return frag;\n                } else {\n                    var iterator = new RangeIterator(this, true);\n                    clone = cloneSubtree(iterator);\n                    iterator.detach();\n                }\n                return clone;\n            }\n        },\n\n        canSurroundContents: function() {\n            assertRangeValid(this);\n            assertNodeNotReadOnly(this.startContainer);\n            assertNodeNotReadOnly(this.endContainer);\n\n            // Check if the contents can be surrounded. Specifically, this means whether the range partially selects\n            // no non-text nodes.\n            var iterator = new RangeIterator(this, true);\n            var boundariesInvalid = (iterator._first && (isNonTextPartiallySelected(iterator._first, this)) ||\n                    (iterator._last && isNonTextPartiallySelected(iterator._last, this)));\n            iterator.detach();\n            return !boundariesInvalid;\n        },\n\n        surroundContents: function(node) {\n            assertValidNodeType(node, surroundNodeTypes);\n\n            if (!this.canSurroundContents()) {\n                throw new RangeException(\"BAD_BOUNDARYPOINTS_ERR\");\n            }\n\n            // Extract the contents\n            var content = this.extractContents();\n\n            // Clear the children of the node\n            if (node.hasChildNodes()) {\n                while (node.lastChild) {\n                    node.removeChild(node.lastChild);\n                }\n            }\n\n            // Insert the new node and add the extracted contents\n            insertNodeAtPosition(node, this.startContainer, this.startOffset);\n            node.appendChild(content);\n\n            this.selectNode(node);\n        },\n\n        cloneRange: function() {\n            assertRangeValid(this);\n            var range = new Range(getRangeDocument(this));\n            var i = rangeProperties.length, prop;\n            while (i--) {\n                prop = rangeProperties[i];\n                range[prop] = this[prop];\n            }\n            return range;\n        },\n\n        toString: function() {\n            assertRangeValid(this);\n            var sc = this.startContainer;\n            if (sc === this.endContainer && dom.isCharacterDataNode(sc)) {\n                return (sc.nodeType == 3 || sc.nodeType == 4) ? sc.data.slice(this.startOffset, this.endOffset) : \"\";\n            } else {\n                var textBits = [], iterator = new RangeIterator(this, true);\n\n                iterateSubtree(iterator, function(node) {\n                    // Accept only text or CDATA nodes, not comments\n\n                    if (node.nodeType == 3 || node.nodeType == 4) {\n                        textBits.push(node.data);\n                    }\n                });\n                iterator.detach();\n                return textBits.join(\"\");\n            }\n        },\n\n        // The methods below are all non-standard. The following batch were introduced by Mozilla but have since\n        // been removed from Mozilla.\n\n        compareNode: function(node) {\n            assertRangeValid(this);\n\n            var parent = node.parentNode;\n            var nodeIndex = dom.getNodeIndex(node);\n\n            if (!parent) {\n                throw new DOMException(\"NOT_FOUND_ERR\");\n            }\n\n            var startComparison = this.comparePoint(parent, nodeIndex),\n                endComparison = this.comparePoint(parent, nodeIndex + 1);\n\n            if (startComparison < 0) { // Node starts before\n                return (endComparison > 0) ? n_b_a : n_b;\n            } else {\n                return (endComparison > 0) ? n_a : n_i;\n            }\n        },\n\n        comparePoint: function(node, offset) {\n            assertRangeValid(this);\n            assertNode(node, \"HIERARCHY_REQUEST_ERR\");\n            assertSameDocumentOrFragment(node, this.startContainer);\n\n            if (dom.comparePoints(node, offset, this.startContainer, this.startOffset) < 0) {\n                return -1;\n            } else if (dom.comparePoints(node, offset, this.endContainer, this.endOffset) > 0) {\n                return 1;\n            }\n            return 0;\n        },\n\n        createContextualFragment: createContextualFragment,\n\n        toHtml: function() {\n            assertRangeValid(this);\n            var container = getRangeDocument(this).createElement(\"div\");\n            container.appendChild(this.cloneContents());\n            return container.innerHTML;\n        },\n\n        // touchingIsIntersecting determines whether this method considers a node that borders a range intersects\n        // with it (as in WebKit) or not (as in Gecko pre-1.9, and the default)\n        intersectsNode: function(node, touchingIsIntersecting) {\n            assertRangeValid(this);\n            assertNode(node, \"NOT_FOUND_ERR\");\n            if (dom.getDocument(node) !== getRangeDocument(this)) {\n                return false;\n            }\n\n            var parent = node.parentNode, offset = dom.getNodeIndex(node);\n            assertNode(parent, \"NOT_FOUND_ERR\");\n\n            var startComparison = dom.comparePoints(parent, offset, this.endContainer, this.endOffset),\n                endComparison = dom.comparePoints(parent, offset + 1, this.startContainer, this.startOffset);\n\n            return touchingIsIntersecting ? startComparison <= 0 && endComparison >= 0 : startComparison < 0 && endComparison > 0;\n        },\n\n\n        isPointInRange: function(node, offset) {\n            assertRangeValid(this);\n            assertNode(node, \"HIERARCHY_REQUEST_ERR\");\n            assertSameDocumentOrFragment(node, this.startContainer);\n\n            return (dom.comparePoints(node, offset, this.startContainer, this.startOffset) >= 0) &&\n                   (dom.comparePoints(node, offset, this.endContainer, this.endOffset) <= 0);\n        },\n\n        // The methods below are non-standard and invented by me.\n\n        // Sharing a boundary start-to-end or end-to-start does not count as intersection.\n        intersectsRange: function(range, touchingIsIntersecting) {\n            assertRangeValid(this);\n\n            if (getRangeDocument(range) != getRangeDocument(this)) {\n                throw new DOMException(\"WRONG_DOCUMENT_ERR\");\n            }\n\n            var startComparison = dom.comparePoints(this.startContainer, this.startOffset, range.endContainer, range.endOffset),\n                endComparison = dom.comparePoints(this.endContainer, this.endOffset, range.startContainer, range.startOffset);\n\n            return touchingIsIntersecting ? startComparison <= 0 && endComparison >= 0 : startComparison < 0 && endComparison > 0;\n        },\n\n        intersection: function(range) {\n            if (this.intersectsRange(range)) {\n                var startComparison = dom.comparePoints(this.startContainer, this.startOffset, range.startContainer, range.startOffset),\n                    endComparison = dom.comparePoints(this.endContainer, this.endOffset, range.endContainer, range.endOffset);\n\n                var intersectionRange = this.cloneRange();\n\n                if (startComparison == -1) {\n                    intersectionRange.setStart(range.startContainer, range.startOffset);\n                }\n                if (endComparison == 1) {\n                    intersectionRange.setEnd(range.endContainer, range.endOffset);\n                }\n                return intersectionRange;\n            }\n            return null;\n        },\n\n        union: function(range) {\n            if (this.intersectsRange(range, true)) {\n                var unionRange = this.cloneRange();\n                if (dom.comparePoints(range.startContainer, range.startOffset, this.startContainer, this.startOffset) == -1) {\n                    unionRange.setStart(range.startContainer, range.startOffset);\n                }\n                if (dom.comparePoints(range.endContainer, range.endOffset, this.endContainer, this.endOffset) == 1) {\n                    unionRange.setEnd(range.endContainer, range.endOffset);\n                }\n                return unionRange;\n            } else {\n                throw new RangeException(\"Ranges do not intersect\");\n            }\n        },\n\n        containsNode: function(node, allowPartial) {\n            if (allowPartial) {\n                return this.intersectsNode(node, false);\n            } else {\n                return this.compareNode(node) == n_i;\n            }\n        },\n\n        containsNodeContents: function(node) {\n            return this.comparePoint(node, 0) >= 0 && this.comparePoint(node, dom.getNodeLength(node)) <= 0;\n        },\n\n        containsRange: function(range) {\n            return this.intersection(range).equals(range);\n        },\n\n        containsNodeText: function(node) {\n            var nodeRange = this.cloneRange();\n            nodeRange.selectNode(node);\n            var textNodes = nodeRange.getNodes([3]);\n            if (textNodes.length > 0) {\n                nodeRange.setStart(textNodes[0], 0);\n                var lastTextNode = textNodes.pop();\n                nodeRange.setEnd(lastTextNode, lastTextNode.length);\n                var contains = this.containsRange(nodeRange);\n                nodeRange.detach();\n                return contains;\n            } else {\n                return this.containsNodeContents(node);\n            }\n        },\n\n        createNodeIterator: function(nodeTypes, filter) {\n            assertRangeValid(this);\n            return new RangeNodeIterator(this, nodeTypes, filter);\n        },\n\n        getNodes: function(nodeTypes, filter) {\n            assertRangeValid(this);\n            return getNodesInRange(this, nodeTypes, filter);\n        },\n\n        getDocument: function() {\n            return getRangeDocument(this);\n        },\n\n        collapseBefore: function(node) {\n            assertNotDetached(this);\n\n            this.setEndBefore(node);\n            this.collapse(false);\n        },\n\n        collapseAfter: function(node) {\n            assertNotDetached(this);\n\n            this.setStartAfter(node);\n            this.collapse(true);\n        },\n\n        getName: function() {\n            return \"DomRange\";\n        },\n\n        equals: function(range) {\n            return Range.rangesEqual(this, range);\n        },\n\n        inspect: function() {\n            return inspect(this);\n        }\n    };\n\n    function copyComparisonConstantsToObject(obj) {\n        obj.START_TO_START = s2s;\n        obj.START_TO_END = s2e;\n        obj.END_TO_END = e2e;\n        obj.END_TO_START = e2s;\n\n        obj.NODE_BEFORE = n_b;\n        obj.NODE_AFTER = n_a;\n        obj.NODE_BEFORE_AND_AFTER = n_b_a;\n        obj.NODE_INSIDE = n_i;\n    }\n\n    function copyComparisonConstants(constructor) {\n        copyComparisonConstantsToObject(constructor);\n        copyComparisonConstantsToObject(constructor.prototype);\n    }\n\n    function createRangeContentRemover(remover, boundaryUpdater) {\n        return function() {\n            assertRangeValid(this);\n\n            var sc = this.startContainer, so = this.startOffset, root = this.commonAncestorContainer;\n\n            var iterator = new RangeIterator(this, true);\n\n            // Work out where to position the range after content removal\n            var node, boundary;\n            if (sc !== root) {\n                node = dom.getClosestAncestorIn(sc, root, true);\n                boundary = getBoundaryAfterNode(node);\n                sc = boundary.node;\n                so = boundary.offset;\n            }\n\n            // Check none of the range is read-only\n            iterateSubtree(iterator, assertNodeNotReadOnly);\n\n            iterator.reset();\n\n            // Remove the content\n            var returnValue = remover(iterator);\n            iterator.detach();\n\n            // Move to the new position\n            boundaryUpdater(this, sc, so, sc, so);\n\n            return returnValue;\n        };\n    }\n\n    function createPrototypeRange(constructor, boundaryUpdater, detacher) {\n        function createBeforeAfterNodeSetter(isBefore, isStart) {\n            return function(node) {\n                assertNotDetached(this);\n                assertValidNodeType(node, beforeAfterNodeTypes);\n                assertValidNodeType(getRootContainer(node), rootContainerNodeTypes);\n\n                var boundary = (isBefore ? getBoundaryBeforeNode : getBoundaryAfterNode)(node);\n                (isStart ? setRangeStart : setRangeEnd)(this, boundary.node, boundary.offset);\n            };\n        }\n\n        function setRangeStart(range, node, offset) {\n            var ec = range.endContainer, eo = range.endOffset;\n            if (node !== range.startContainer || offset !== range.startOffset) {\n                // Check the root containers of the range and the new boundary, and also check whether the new boundary\n                // is after the current end. In either case, collapse the range to the new position\n                if (getRootContainer(node) != getRootContainer(ec) || dom.comparePoints(node, offset, ec, eo) == 1) {\n                    ec = node;\n                    eo = offset;\n                }\n                boundaryUpdater(range, node, offset, ec, eo);\n            }\n        }\n\n        function setRangeEnd(range, node, offset) {\n            var sc = range.startContainer, so = range.startOffset;\n            if (node !== range.endContainer || offset !== range.endOffset) {\n                // Check the root containers of the range and the new boundary, and also check whether the new boundary\n                // is after the current end. In either case, collapse the range to the new position\n                if (getRootContainer(node) != getRootContainer(sc) || dom.comparePoints(node, offset, sc, so) == -1) {\n                    sc = node;\n                    so = offset;\n                }\n                boundaryUpdater(range, sc, so, node, offset);\n            }\n        }\n\n        function setRangeStartAndEnd(range, node, offset) {\n            if (node !== range.startContainer || offset !== range.startOffset || node !== range.endContainer || offset !== range.endOffset) {\n                boundaryUpdater(range, node, offset, node, offset);\n            }\n        }\n\n        constructor.prototype = new RangePrototype();\n\n        api.util.extend(constructor.prototype, {\n            setStart: function(node, offset) {\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, true);\n                assertValidOffset(node, offset);\n\n                setRangeStart(this, node, offset);\n            },\n\n            setEnd: function(node, offset) {\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, true);\n                assertValidOffset(node, offset);\n\n                setRangeEnd(this, node, offset);\n            },\n\n            setStartBefore: createBeforeAfterNodeSetter(true, true),\n            setStartAfter: createBeforeAfterNodeSetter(false, true),\n            setEndBefore: createBeforeAfterNodeSetter(true, false),\n            setEndAfter: createBeforeAfterNodeSetter(false, false),\n\n            collapse: function(isStart) {\n                assertRangeValid(this);\n                if (isStart) {\n                    boundaryUpdater(this, this.startContainer, this.startOffset, this.startContainer, this.startOffset);\n                } else {\n                    boundaryUpdater(this, this.endContainer, this.endOffset, this.endContainer, this.endOffset);\n                }\n            },\n\n            selectNodeContents: function(node) {\n                // This doesn't seem well specified: the spec talks only about selecting the node's contents, which\n                // could be taken to mean only its children. However, browsers implement this the same as selectNode for\n                // text nodes, so I shall do likewise\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, true);\n\n                boundaryUpdater(this, node, 0, node, dom.getNodeLength(node));\n            },\n\n            selectNode: function(node) {\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, false);\n                assertValidNodeType(node, beforeAfterNodeTypes);\n\n                var start = getBoundaryBeforeNode(node), end = getBoundaryAfterNode(node);\n                boundaryUpdater(this, start.node, start.offset, end.node, end.offset);\n            },\n\n            extractContents: createRangeContentRemover(extractSubtree, boundaryUpdater),\n\n            deleteContents: createRangeContentRemover(deleteSubtree, boundaryUpdater),\n\n            canSurroundContents: function() {\n                assertRangeValid(this);\n                assertNodeNotReadOnly(this.startContainer);\n                assertNodeNotReadOnly(this.endContainer);\n\n                // Check if the contents can be surrounded. Specifically, this means whether the range partially selects\n                // no non-text nodes.\n                var iterator = new RangeIterator(this, true);\n                var boundariesInvalid = (iterator._first && (isNonTextPartiallySelected(iterator._first, this)) ||\n                        (iterator._last && isNonTextPartiallySelected(iterator._last, this)));\n                iterator.detach();\n                return !boundariesInvalid;\n            },\n\n            detach: function() {\n                detacher(this);\n            },\n\n            splitBoundaries: function() {\n                assertRangeValid(this);\n\n\n                var sc = this.startContainer, so = this.startOffset, ec = this.endContainer, eo = this.endOffset;\n                var startEndSame = (sc === ec);\n\n                if (dom.isCharacterDataNode(ec) && eo > 0 && eo < ec.length) {\n                    dom.splitDataNode(ec, eo);\n\n                }\n\n                if (dom.isCharacterDataNode(sc) && so > 0 && so < sc.length) {\n\n                    sc = dom.splitDataNode(sc, so);\n                    if (startEndSame) {\n                        eo -= so;\n                        ec = sc;\n                    } else if (ec == sc.parentNode && eo >= dom.getNodeIndex(sc)) {\n                        eo++;\n                    }\n                    so = 0;\n\n                }\n                boundaryUpdater(this, sc, so, ec, eo);\n            },\n\n            normalizeBoundaries: function() {\n                assertRangeValid(this);\n\n                var sc = this.startContainer, so = this.startOffset, ec = this.endContainer, eo = this.endOffset;\n\n                var mergeForward = function(node) {\n                    var sibling = node.nextSibling;\n                    if (sibling && sibling.nodeType == node.nodeType) {\n                        ec = node;\n                        eo = node.length;\n                        node.appendData(sibling.data);\n                        sibling.parentNode.removeChild(sibling);\n                    }\n                };\n\n                var mergeBackward = function(node) {\n                    var sibling = node.previousSibling;\n                    if (sibling && sibling.nodeType == node.nodeType) {\n                        sc = node;\n                        var nodeLength = node.length;\n                        so = sibling.length;\n                        node.insertData(0, sibling.data);\n                        sibling.parentNode.removeChild(sibling);\n                        if (sc == ec) {\n                            eo += so;\n                            ec = sc;\n                        } else if (ec == node.parentNode) {\n                            var nodeIndex = dom.getNodeIndex(node);\n                            if (eo == nodeIndex) {\n                                ec = node;\n                                eo = nodeLength;\n                            } else if (eo > nodeIndex) {\n                                eo--;\n                            }\n                        }\n                    }\n                };\n\n                var normalizeStart = true;\n\n                if (dom.isCharacterDataNode(ec)) {\n                    if (ec.length == eo) {\n                        mergeForward(ec);\n                    }\n                } else {\n                    if (eo > 0) {\n                        var endNode = ec.childNodes[eo - 1];\n                        if (endNode && dom.isCharacterDataNode(endNode)) {\n                            mergeForward(endNode);\n                        }\n                    }\n                    normalizeStart = !this.collapsed;\n                }\n\n                if (normalizeStart) {\n                    if (dom.isCharacterDataNode(sc)) {\n                        if (so == 0) {\n                            mergeBackward(sc);\n                        }\n                    } else {\n                        if (so < sc.childNodes.length) {\n                            var startNode = sc.childNodes[so];\n                            if (startNode && dom.isCharacterDataNode(startNode)) {\n                                mergeBackward(startNode);\n                            }\n                        }\n                    }\n                } else {\n                    sc = ec;\n                    so = eo;\n                }\n\n                boundaryUpdater(this, sc, so, ec, eo);\n            },\n\n            collapseToPoint: function(node, offset) {\n                assertNotDetached(this);\n\n                assertNoDocTypeNotationEntityAncestor(node, true);\n                assertValidOffset(node, offset);\n\n                setRangeStartAndEnd(this, node, offset);\n            }\n        });\n\n        copyComparisonConstants(constructor);\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Updates commonAncestorContainer and collapsed after boundary change\n    function updateCollapsedAndCommonAncestor(range) {\n        range.collapsed = (range.startContainer === range.endContainer && range.startOffset === range.endOffset);\n        range.commonAncestorContainer = range.collapsed ?\n            range.startContainer : dom.getCommonAncestor(range.startContainer, range.endContainer);\n    }\n\n    function updateBoundaries(range, startContainer, startOffset, endContainer, endOffset) {\n        var startMoved = (range.startContainer !== startContainer || range.startOffset !== startOffset);\n        var endMoved = (range.endContainer !== endContainer || range.endOffset !== endOffset);\n\n        range.startContainer = startContainer;\n        range.startOffset = startOffset;\n        range.endContainer = endContainer;\n        range.endOffset = endOffset;\n\n        updateCollapsedAndCommonAncestor(range);\n        dispatchEvent(range, \"boundarychange\", {startMoved: startMoved, endMoved: endMoved});\n    }\n\n    function detach(range) {\n        assertNotDetached(range);\n        range.startContainer = range.startOffset = range.endContainer = range.endOffset = null;\n        range.collapsed = range.commonAncestorContainer = null;\n        dispatchEvent(range, \"detach\", null);\n        range._listeners = null;\n    }\n\n    /**\n     * @constructor\n     */\n    function Range(doc) {\n        this.startContainer = doc;\n        this.startOffset = 0;\n        this.endContainer = doc;\n        this.endOffset = 0;\n        this._listeners = {\n            boundarychange: [],\n            detach: []\n        };\n        updateCollapsedAndCommonAncestor(this);\n    }\n\n    createPrototypeRange(Range, updateBoundaries, detach);\n\n    api.rangePrototype = RangePrototype.prototype;\n\n    Range.rangeProperties = rangeProperties;\n    Range.RangeIterator = RangeIterator;\n    Range.copyComparisonConstants = copyComparisonConstants;\n    Range.createPrototypeRange = createPrototypeRange;\n    Range.inspect = inspect;\n    Range.getRangeDocument = getRangeDocument;\n    Range.rangesEqual = function(r1, r2) {\n        return r1.startContainer === r2.startContainer &&\n               r1.startOffset === r2.startOffset &&\n               r1.endContainer === r2.endContainer &&\n               r1.endOffset === r2.endOffset;\n    };\n\n    api.DomRange = Range;\n    api.RangeException = RangeException;\n});rangy.createModule(\"WrappedRange\", function(api, module) {\n    api.requireModules( [\"DomUtil\", \"DomRange\"] );\n\n    /**\n     * @constructor\n     */\n    var WrappedRange;\n    var dom = api.dom;\n    var DomPosition = dom.DomPosition;\n    var DomRange = api.DomRange;\n\n\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    /*\n    This is a workaround for a bug where IE returns the wrong container element from the TextRange's parentElement()\n    method. For example, in the following (where pipes denote the selection boundaries):\n\n    <ul id=\"ul\"><li id=\"a\">| a </li><li id=\"b\"> b |</li></ul>\n\n    var range = document.selection.createRange();\n    alert(range.parentElement().id); // Should alert \"ul\" but alerts \"b\"\n\n    This method returns the common ancestor node of the following:\n    - the parentElement() of the textRange\n    - the parentElement() of the textRange after calling collapse(true)\n    - the parentElement() of the textRange after calling collapse(false)\n     */\n    function getTextRangeContainerElement(textRange) {\n        var parentEl = textRange.parentElement();\n\n        var range = textRange.duplicate();\n        range.collapse(true);\n        var startEl = range.parentElement();\n        range = textRange.duplicate();\n        range.collapse(false);\n        var endEl = range.parentElement();\n        var startEndContainer = (startEl == endEl) ? startEl : dom.getCommonAncestor(startEl, endEl);\n\n        return startEndContainer == parentEl ? startEndContainer : dom.getCommonAncestor(parentEl, startEndContainer);\n    }\n\n    function textRangeIsCollapsed(textRange) {\n        return textRange.compareEndPoints(\"StartToEnd\", textRange) == 0;\n    }\n\n    // Gets the boundary of a TextRange expressed as a node and an offset within that node. This function started out as\n    // an improved version of code found in Tim Cameron Ryan's IERange (http://code.google.com/p/ierange/) but has\n    // grown, fixing problems with line breaks in preformatted text, adding workaround for IE TextRange bugs, handling\n    // for inputs and images, plus optimizations.\n    function getTextRangeBoundaryPosition(textRange, wholeRangeContainerElement, isStart, isCollapsed) {\n        var workingRange = textRange.duplicate();\n\n        workingRange.collapse(isStart);\n        var containerElement = workingRange.parentElement();\n\n        // Sometimes collapsing a TextRange that's at the start of a text node can move it into the previous node, so\n        // check for that\n        // TODO: Find out when. Workaround for wholeRangeContainerElement may break this\n        if (!dom.isAncestorOf(wholeRangeContainerElement, containerElement, true)) {\n            containerElement = wholeRangeContainerElement;\n\n        }\n\n\n\n        // Deal with nodes that cannot \"contain rich HTML markup\". In practice, this means form inputs, images and\n        // similar. See http://msdn.microsoft.com/en-us/library/aa703950%28VS.85%29.aspx\n        if (!containerElement.canHaveHTML) {\n            return new DomPosition(containerElement.parentNode, dom.getNodeIndex(containerElement));\n        }\n\n        var workingNode = dom.getDocument(containerElement).createElement(\"span\");\n        var comparison, workingComparisonType = isStart ? \"StartToStart\" : \"StartToEnd\";\n        var previousNode, nextNode, boundaryPosition, boundaryNode;\n\n        // Move the working range through the container's children, starting at the end and working backwards, until the\n        // working range reaches or goes past the boundary we're interested in\n        do {\n            containerElement.insertBefore(workingNode, workingNode.previousSibling);\n            workingRange.moveToElementText(workingNode);\n        } while ( (comparison = workingRange.compareEndPoints(workingComparisonType, textRange)) > 0 &&\n                workingNode.previousSibling);\n\n        // We've now reached or gone past the boundary of the text range we're interested in\n        // so have identified the node we want\n        boundaryNode = workingNode.nextSibling;\n\n        if (comparison == -1 && boundaryNode && dom.isCharacterDataNode(boundaryNode)) {\n            // This is a character data node (text, comment, cdata). The working range is collapsed at the start of the\n            // node containing the text range's boundary, so we move the end of the working range to the boundary point\n            // and measure the length of its text to get the boundary's offset within the node.\n            workingRange.setEndPoint(isStart ? \"EndToStart\" : \"EndToEnd\", textRange);\n\n\n            var offset;\n\n            if (/[\\r\\n]/.test(boundaryNode.data)) {\n                /*\n                For the particular case of a boundary within a text node containing line breaks (within a <pre> element,\n                for example), we need a slightly complicated approach to get the boundary's offset in IE. The facts:\n\n                - Each line break is represented as \\r in the text node's data/nodeValue properties\n                - Each line break is represented as \\r\\n in the TextRange's 'text' property\n                - The 'text' property of the TextRange does not contain trailing line breaks\n\n                To get round the problem presented by the final fact above, we can use the fact that TextRange's\n                moveStart() and moveEnd() methods return the actual number of characters moved, which is not necessarily\n                the same as the number of characters it was instructed to move. The simplest approach is to use this to\n                store the characters moved when moving both the start and end of the range to the start of the document\n                body and subtracting the start offset from the end offset (the \"move-negative-gazillion\" method).\n                However, this is extremely slow when the document is large and the range is near the end of it. Clearly\n                doing the mirror image (i.e. moving the range boundaries to the end of the document) has the same\n                problem.\n\n                Another approach that works is to use moveStart() to move the start boundary of the range up to the end\n                boundary one character at a time and incrementing a counter with the value returned by the moveStart()\n                call. However, the check for whether the start boundary has reached the end boundary is expensive, so\n                this method is slow (although unlike \"move-negative-gazillion\" is largely unaffected by the location of\n                the range within the document).\n\n                The method below is a hybrid of the two methods above. It uses the fact that a string containing the\n                TextRange's 'text' property with each \\r\\n converted to a single \\r character cannot be longer than the\n                text of the TextRange, so the start of the range is moved that length initially and then a character at\n                a time to make up for any trailing line breaks not contained in the 'text' property. This has good\n                performance in most situations compared to the previous two methods.\n                */\n                var tempRange = workingRange.duplicate();\n                var rangeLength = tempRange.text.replace(/\\r\\n/g, \"\\r\").length;\n\n                offset = tempRange.moveStart(\"character\", rangeLength);\n                while ( (comparison = tempRange.compareEndPoints(\"StartToEnd\", tempRange)) == -1) {\n                    offset++;\n                    tempRange.moveStart(\"character\", 1);\n                }\n            } else {\n                offset = workingRange.text.length;\n            }\n            boundaryPosition = new DomPosition(boundaryNode, offset);\n        } else {\n\n\n            // If the boundary immediately follows a character data node and this is the end boundary, we should favour\n            // a position within that, and likewise for a start boundary preceding a character data node\n            previousNode = (isCollapsed || !isStart) && workingNode.previousSibling;\n            nextNode = (isCollapsed || isStart) && workingNode.nextSibling;\n\n\n\n            if (nextNode && dom.isCharacterDataNode(nextNode)) {\n                boundaryPosition = new DomPosition(nextNode, 0);\n            } else if (previousNode && dom.isCharacterDataNode(previousNode)) {\n                boundaryPosition = new DomPosition(previousNode, previousNode.length);\n            } else {\n                boundaryPosition = new DomPosition(containerElement, dom.getNodeIndex(workingNode));\n            }\n        }\n\n        // Clean up\n        workingNode.parentNode.removeChild(workingNode);\n\n        return boundaryPosition;\n    }\n\n    // Returns a TextRange representing the boundary of a TextRange expressed as a node and an offset within that node.\n    // This function started out as an optimized version of code found in Tim Cameron Ryan's IERange\n    // (http://code.google.com/p/ierange/)\n    function createBoundaryTextRange(boundaryPosition, isStart) {\n        var boundaryNode, boundaryParent, boundaryOffset = boundaryPosition.offset;\n        var doc = dom.getDocument(boundaryPosition.node);\n        var workingNode, childNodes, workingRange = doc.body.createTextRange();\n        var nodeIsDataNode = dom.isCharacterDataNode(boundaryPosition.node);\n\n        if (nodeIsDataNode) {\n            boundaryNode = boundaryPosition.node;\n            boundaryParent = boundaryNode.parentNode;\n        } else {\n            childNodes = boundaryPosition.node.childNodes;\n            boundaryNode = (boundaryOffset < childNodes.length) ? childNodes[boundaryOffset] : null;\n            boundaryParent = boundaryPosition.node;\n        }\n\n        // Position the range immediately before the node containing the boundary\n        workingNode = doc.createElement(\"span\");\n\n        // Making the working element non-empty element persuades IE to consider the TextRange boundary to be within the\n        // element rather than immediately before or after it, which is what we want\n        workingNode.innerHTML = \"&#feff;\";\n\n        // insertBefore is supposed to work like appendChild if the second parameter is null. However, a bug report\n        // for IERange suggests that it can crash the browser: http://code.google.com/p/ierange/issues/detail?id=12\n        if (boundaryNode) {\n            boundaryParent.insertBefore(workingNode, boundaryNode);\n        } else {\n            boundaryParent.appendChild(workingNode);\n        }\n\n        workingRange.moveToElementText(workingNode);\n        workingRange.collapse(!isStart);\n\n        // Clean up\n        boundaryParent.removeChild(workingNode);\n\n        // Move the working range to the text offset, if required\n        if (nodeIsDataNode) {\n            workingRange[isStart ? \"moveStart\" : \"moveEnd\"](\"character\", boundaryOffset);\n        }\n\n        return workingRange;\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    if (api.features.implementsDomRange && (!api.features.implementsTextRange || !api.config.preferTextRange)) {\n        // This is a wrapper around the browser's native DOM Range. It has two aims:\n        // - Provide workarounds for specific browser bugs\n        // - provide convenient extensions, which are inherited from Rangy's DomRange\n\n        (function() {\n            var rangeProto;\n            var rangeProperties = DomRange.rangeProperties;\n            var canSetRangeStartAfterEnd;\n\n            function updateRangeProperties(range) {\n                var i = rangeProperties.length, prop;\n                while (i--) {\n                    prop = rangeProperties[i];\n                    range[prop] = range.nativeRange[prop];\n                }\n            }\n\n            function updateNativeRange(range, startContainer, startOffset, endContainer,endOffset) {\n                var startMoved = (range.startContainer !== startContainer || range.startOffset != startOffset);\n                var endMoved = (range.endContainer !== endContainer || range.endOffset != endOffset);\n\n                // Always set both boundaries for the benefit of IE9 (see issue 35)\n                if (startMoved || endMoved) {\n                    range.setEnd(endContainer, endOffset);\n                    range.setStart(startContainer, startOffset);\n                }\n            }\n\n            function detach(range) {\n                range.nativeRange.detach();\n                range.detached = true;\n                var i = rangeProperties.length, prop;\n                while (i--) {\n                    prop = rangeProperties[i];\n                    range[prop] = null;\n                }\n            }\n\n            var createBeforeAfterNodeSetter;\n\n            WrappedRange = function(range) {\n                if (!range) {\n                    throw new Error(\"Range must be specified\");\n                }\n                this.nativeRange = range;\n                updateRangeProperties(this);\n            };\n\n            DomRange.createPrototypeRange(WrappedRange, updateNativeRange, detach);\n\n            rangeProto = WrappedRange.prototype;\n\n            rangeProto.selectNode = function(node) {\n                this.nativeRange.selectNode(node);\n                updateRangeProperties(this);\n            };\n\n            rangeProto.deleteContents = function() {\n                this.nativeRange.deleteContents();\n                updateRangeProperties(this);\n            };\n\n            rangeProto.extractContents = function() {\n                var frag = this.nativeRange.extractContents();\n                updateRangeProperties(this);\n                return frag;\n            };\n\n            rangeProto.cloneContents = function() {\n                return this.nativeRange.cloneContents();\n            };\n\n            // TODO: Until I can find a way to programmatically trigger the Firefox bug (apparently long-standing, still\n            // present in 3.6.8) that throws \"Index or size is negative or greater than the allowed amount\" for\n            // insertNode in some circumstances, all browsers will have to use the Rangy's own implementation of\n            // insertNode, which works but is almost certainly slower than the native implementation.\n/*\n            rangeProto.insertNode = function(node) {\n                this.nativeRange.insertNode(node);\n                updateRangeProperties(this);\n            };\n*/\n\n            rangeProto.surroundContents = function(node) {\n                this.nativeRange.surroundContents(node);\n                updateRangeProperties(this);\n            };\n\n            rangeProto.collapse = function(isStart) {\n                this.nativeRange.collapse(isStart);\n                updateRangeProperties(this);\n            };\n\n            rangeProto.cloneRange = function() {\n                return new WrappedRange(this.nativeRange.cloneRange());\n            };\n\n            rangeProto.refresh = function() {\n                updateRangeProperties(this);\n            };\n\n            rangeProto.toString = function() {\n                return this.nativeRange.toString();\n            };\n\n            // Create test range and node for feature detection\n\n            var testTextNode = document.createTextNode(\"test\");\n            dom.getBody(document).appendChild(testTextNode);\n            var range = document.createRange();\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for Firefox 2 bug that prevents moving the start of a Range to a point after its current end and\n            // correct for it\n\n            range.setStart(testTextNode, 0);\n            range.setEnd(testTextNode, 0);\n\n            try {\n                range.setStart(testTextNode, 1);\n                canSetRangeStartAfterEnd = true;\n\n                rangeProto.setStart = function(node, offset) {\n                    this.nativeRange.setStart(node, offset);\n                    updateRangeProperties(this);\n                };\n\n                rangeProto.setEnd = function(node, offset) {\n                    this.nativeRange.setEnd(node, offset);\n                    updateRangeProperties(this);\n                };\n\n                createBeforeAfterNodeSetter = function(name) {\n                    return function(node) {\n                        this.nativeRange[name](node);\n                        updateRangeProperties(this);\n                    };\n                };\n\n            } catch(ex) {\n\n\n                canSetRangeStartAfterEnd = false;\n\n                rangeProto.setStart = function(node, offset) {\n                    try {\n                        this.nativeRange.setStart(node, offset);\n                    } catch (ex) {\n                        this.nativeRange.setEnd(node, offset);\n                        this.nativeRange.setStart(node, offset);\n                    }\n                    updateRangeProperties(this);\n                };\n\n                rangeProto.setEnd = function(node, offset) {\n                    try {\n                        this.nativeRange.setEnd(node, offset);\n                    } catch (ex) {\n                        this.nativeRange.setStart(node, offset);\n                        this.nativeRange.setEnd(node, offset);\n                    }\n                    updateRangeProperties(this);\n                };\n\n                createBeforeAfterNodeSetter = function(name, oppositeName) {\n                    return function(node) {\n                        try {\n                            this.nativeRange[name](node);\n                        } catch (ex) {\n                            this.nativeRange[oppositeName](node);\n                            this.nativeRange[name](node);\n                        }\n                        updateRangeProperties(this);\n                    };\n                };\n            }\n\n            rangeProto.setStartBefore = createBeforeAfterNodeSetter(\"setStartBefore\", \"setEndBefore\");\n            rangeProto.setStartAfter = createBeforeAfterNodeSetter(\"setStartAfter\", \"setEndAfter\");\n            rangeProto.setEndBefore = createBeforeAfterNodeSetter(\"setEndBefore\", \"setStartBefore\");\n            rangeProto.setEndAfter = createBeforeAfterNodeSetter(\"setEndAfter\", \"setStartAfter\");\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for and correct Firefox 2 behaviour with selectNodeContents on text nodes: it collapses the range to\n            // the 0th character of the text node\n            range.selectNodeContents(testTextNode);\n            if (range.startContainer == testTextNode && range.endContainer == testTextNode &&\n                    range.startOffset == 0 && range.endOffset == testTextNode.length) {\n                rangeProto.selectNodeContents = function(node) {\n                    this.nativeRange.selectNodeContents(node);\n                    updateRangeProperties(this);\n                };\n            } else {\n                rangeProto.selectNodeContents = function(node) {\n                    this.setStart(node, 0);\n                    this.setEnd(node, DomRange.getEndOffset(node));\n                };\n            }\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for WebKit bug that has the beahviour of compareBoundaryPoints round the wrong way for constants\n            // START_TO_END and END_TO_START: https://bugs.webkit.org/show_bug.cgi?id=20738\n\n            range.selectNodeContents(testTextNode);\n            range.setEnd(testTextNode, 3);\n\n            var range2 = document.createRange();\n            range2.selectNodeContents(testTextNode);\n            range2.setEnd(testTextNode, 4);\n            range2.setStart(testTextNode, 2);\n\n            if (range.compareBoundaryPoints(range.START_TO_END, range2) == -1 &\n                    range.compareBoundaryPoints(range.END_TO_START, range2) == 1) {\n                // This is the wrong way round, so correct for it\n\n\n                rangeProto.compareBoundaryPoints = function(type, range) {\n                    range = range.nativeRange || range;\n                    if (type == range.START_TO_END) {\n                        type = range.END_TO_START;\n                    } else if (type == range.END_TO_START) {\n                        type = range.START_TO_END;\n                    }\n                    return this.nativeRange.compareBoundaryPoints(type, range);\n                };\n            } else {\n                rangeProto.compareBoundaryPoints = function(type, range) {\n                    return this.nativeRange.compareBoundaryPoints(type, range.nativeRange || range);\n                };\n            }\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for existence of createContextualFragment and delegate to it if it exists\n            if (api.util.isHostMethod(range, \"createContextualFragment\")) {\n                rangeProto.createContextualFragment = function(fragmentStr) {\n                    return this.nativeRange.createContextualFragment(fragmentStr);\n                };\n            }\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Clean up\n            dom.getBody(document).removeChild(testTextNode);\n            range.detach();\n            range2.detach();\n        })();\n\n        api.createNativeRange = function(doc) {\n            doc = doc || document;\n            return doc.createRange();\n        };\n    } else if (api.features.implementsTextRange) {\n        // This is a wrapper around a TextRange, providing full DOM Range functionality using rangy's DomRange as a\n        // prototype\n\n        WrappedRange = function(textRange) {\n            this.textRange = textRange;\n            this.refresh();\n        };\n\n        WrappedRange.prototype = new DomRange(document);\n\n        WrappedRange.prototype.refresh = function() {\n            var start, end;\n\n            // TextRange's parentElement() method cannot be trusted. getTextRangeContainerElement() works around that.\n            var rangeContainerElement = getTextRangeContainerElement(this.textRange);\n\n            if (textRangeIsCollapsed(this.textRange)) {\n                end = start = getTextRangeBoundaryPosition(this.textRange, rangeContainerElement, true, true);\n            } else {\n\n                start = getTextRangeBoundaryPosition(this.textRange, rangeContainerElement, true, false);\n                end = getTextRangeBoundaryPosition(this.textRange, rangeContainerElement, false, false);\n            }\n\n            this.setStart(start.node, start.offset);\n            this.setEnd(end.node, end.offset);\n        };\n\n        DomRange.copyComparisonConstants(WrappedRange);\n\n        // Add WrappedRange as the Range property of the global object to allow expression like Range.END_TO_END to work\n        var globalObj = (function() { return this; })();\n        if (typeof globalObj.Range == \"undefined\") {\n            globalObj.Range = WrappedRange;\n        }\n\n        api.createNativeRange = function(doc) {\n            doc = doc || document;\n            return doc.body.createTextRange();\n        };\n    }\n\n    if (api.features.implementsTextRange) {\n        WrappedRange.rangeToTextRange = function(range) {\n            if (range.collapsed) {\n                var tr = createBoundaryTextRange(new DomPosition(range.startContainer, range.startOffset), true);\n\n\n\n                return tr;\n\n                //return createBoundaryTextRange(new DomPosition(range.startContainer, range.startOffset), true);\n            } else {\n                var startRange = createBoundaryTextRange(new DomPosition(range.startContainer, range.startOffset), true);\n                var endRange = createBoundaryTextRange(new DomPosition(range.endContainer, range.endOffset), false);\n                var textRange = dom.getDocument(range.startContainer).body.createTextRange();\n                textRange.setEndPoint(\"StartToStart\", startRange);\n                textRange.setEndPoint(\"EndToEnd\", endRange);\n                return textRange;\n            }\n        };\n    }\n\n    WrappedRange.prototype.getName = function() {\n        return \"WrappedRange\";\n    };\n\n    api.WrappedRange = WrappedRange;\n\n    api.createRange = function(doc) {\n        doc = doc || document;\n        return new WrappedRange(api.createNativeRange(doc));\n    };\n\n    api.createRangyRange = function(doc) {\n        doc = doc || document;\n        return new DomRange(doc);\n    };\n\n    api.createIframeRange = function(iframeEl) {\n        return api.createRange(dom.getIframeDocument(iframeEl));\n    };\n\n    api.createIframeRangyRange = function(iframeEl) {\n        return api.createRangyRange(dom.getIframeDocument(iframeEl));\n    };\n\n    api.addCreateMissingNativeApiListener(function(win) {\n        var doc = win.document;\n        if (typeof doc.createRange == \"undefined\") {\n            doc.createRange = function() {\n                return api.createRange(this);\n            };\n        }\n        doc = win = null;\n    });\n});rangy.createModule(\"WrappedSelection\", function(api, module) {\n    // This will create a selection object wrapper that follows the Selection object found in the WHATWG draft DOM Range\n    // spec (http://html5.org/specs/dom-range.html)\n\n    api.requireModules( [\"DomUtil\", \"DomRange\", \"WrappedRange\"] );\n\n    api.config.checkSelectionRanges = true;\n\n    var BOOLEAN = \"boolean\",\n        windowPropertyName = \"_rangySelection\",\n        dom = api.dom,\n        util = api.util,\n        DomRange = api.DomRange,\n        WrappedRange = api.WrappedRange,\n        DOMException = api.DOMException,\n        DomPosition = dom.DomPosition,\n        getSelection,\n        selectionIsCollapsed,\n        CONTROL = \"Control\";\n\n\n\n    function getWinSelection(winParam) {\n        return (winParam || window).getSelection();\n    }\n\n    function getDocSelection(winParam) {\n        return (winParam || window).document.selection;\n    }\n\n    // Test for the Range/TextRange and Selection features required\n    // Test for ability to retrieve selection\n    var implementsWinGetSelection = api.util.isHostMethod(window, \"getSelection\"),\n        implementsDocSelection = api.util.isHostObject(document, \"selection\");\n\n    var useDocumentSelection = implementsDocSelection && (!implementsWinGetSelection || api.config.preferTextRange);\n\n    if (useDocumentSelection) {\n        getSelection = getDocSelection;\n        api.isSelectionValid = function(winParam) {\n            var doc = (winParam || window).document, nativeSel = doc.selection;\n\n            // Check whether the selection TextRange is actually contained within the correct document\n            return (nativeSel.type != \"None\" || dom.getDocument(nativeSel.createRange().parentElement()) == doc);\n        };\n    } else if (implementsWinGetSelection) {\n        getSelection = getWinSelection;\n        api.isSelectionValid = function() {\n            return true;\n        };\n    } else {\n        module.fail(\"Neither document.selection or window.getSelection() detected.\");\n    }\n\n    api.getNativeSelection = getSelection;\n\n    var testSelection = getSelection();\n    var testRange = api.createNativeRange(document);\n    var body = dom.getBody(document);\n\n    // Obtaining a range from a selection\n    var selectionHasAnchorAndFocus = util.areHostObjects(testSelection, [\"anchorNode\", \"focusNode\"] &&\n                                     util.areHostProperties(testSelection, [\"anchorOffset\", \"focusOffset\"]));\n    api.features.selectionHasAnchorAndFocus = selectionHasAnchorAndFocus;\n\n    // Test for existence of native selection extend() method\n    var selectionHasExtend = util.isHostMethod(testSelection, \"extend\");\n    api.features.selectionHasExtend = selectionHasExtend;\n\n    // Test if rangeCount exists\n    var selectionHasRangeCount = (typeof testSelection.rangeCount == \"number\");\n    api.features.selectionHasRangeCount = selectionHasRangeCount;\n\n    var selectionSupportsMultipleRanges = false;\n    var collapsedNonEditableSelectionsSupported = true;\n\n    if (util.areHostMethods(testSelection, [\"addRange\", \"getRangeAt\", \"removeAllRanges\"]) &&\n            typeof testSelection.rangeCount == \"number\" && api.features.implementsDomRange) {\n\n        (function() {\n            var iframe = document.createElement(\"iframe\");\n            body.appendChild(iframe);\n\n            var iframeDoc = dom.getIframeDocument(iframe);\n            iframeDoc.open();\n            iframeDoc.write(\"<html><head></head><body>12</body></html>\");\n            iframeDoc.close();\n\n            var sel = dom.getIframeWindow(iframe).getSelection();\n            var docEl = iframeDoc.documentElement;\n            var iframeBody = docEl.lastChild, textNode = iframeBody.firstChild;\n\n            // Test whether the native selection will allow a collapsed selection within a non-editable element\n            var r1 = iframeDoc.createRange();\n            r1.setStart(textNode, 1);\n            r1.collapse(true);\n            sel.addRange(r1);\n            collapsedNonEditableSelectionsSupported = (sel.rangeCount == 1);\n            sel.removeAllRanges();\n\n            // Test whether the native selection is capable of supporting multiple ranges\n            var r2 = r1.cloneRange();\n            r1.setStart(textNode, 0);\n            r2.setEnd(textNode, 2);\n            sel.addRange(r1);\n            sel.addRange(r2);\n\n            selectionSupportsMultipleRanges = (sel.rangeCount == 2);\n\n            // Clean up\n            r1.detach();\n            r2.detach();\n\n            body.removeChild(iframe);\n        })();\n    }\n\n    api.features.selectionSupportsMultipleRanges = selectionSupportsMultipleRanges;\n    api.features.collapsedNonEditableSelectionsSupported = collapsedNonEditableSelectionsSupported;\n\n    // ControlRanges\n    var implementsControlRange = false, testControlRange;\n\n    if (body && util.isHostMethod(body, \"createControlRange\")) {\n        testControlRange = body.createControlRange();\n        if (util.areHostProperties(testControlRange, [\"item\", \"add\"])) {\n            implementsControlRange = true;\n        }\n    }\n    api.features.implementsControlRange = implementsControlRange;\n\n    // Selection collapsedness\n    if (selectionHasAnchorAndFocus) {\n        selectionIsCollapsed = function(sel) {\n            return sel.anchorNode === sel.focusNode && sel.anchorOffset === sel.focusOffset;\n        };\n    } else {\n        selectionIsCollapsed = function(sel) {\n            return sel.rangeCount ? sel.getRangeAt(sel.rangeCount - 1).collapsed : false;\n        };\n    }\n\n    function updateAnchorAndFocusFromRange(sel, range, backwards) {\n        var anchorPrefix = backwards ? \"end\" : \"start\", focusPrefix = backwards ? \"start\" : \"end\";\n        sel.anchorNode = range[anchorPrefix + \"Container\"];\n        sel.anchorOffset = range[anchorPrefix + \"Offset\"];\n        sel.focusNode = range[focusPrefix + \"Container\"];\n        sel.focusOffset = range[focusPrefix + \"Offset\"];\n    }\n\n    function updateAnchorAndFocusFromNativeSelection(sel) {\n        var nativeSel = sel.nativeSelection;\n        sel.anchorNode = nativeSel.anchorNode;\n        sel.anchorOffset = nativeSel.anchorOffset;\n        sel.focusNode = nativeSel.focusNode;\n        sel.focusOffset = nativeSel.focusOffset;\n    }\n\n    function updateEmptySelection(sel) {\n        sel.anchorNode = sel.focusNode = null;\n        sel.anchorOffset = sel.focusOffset = 0;\n        sel.rangeCount = 0;\n        sel.isCollapsed = true;\n        sel._ranges.length = 0;\n    }\n\n    function getNativeRange(range) {\n        var nativeRange;\n        if (range instanceof DomRange) {\n            nativeRange = range._selectionNativeRange;\n            if (!nativeRange) {\n                nativeRange = api.createNativeRange(dom.getDocument(range.startContainer));\n                nativeRange.setEnd(range.endContainer, range.endOffset);\n                nativeRange.setStart(range.startContainer, range.startOffset);\n                range._selectionNativeRange = nativeRange;\n                range.attachListener(\"detach\", function() {\n\n                    this._selectionNativeRange = null;\n                });\n            }\n        } else if (range instanceof WrappedRange) {\n            nativeRange = range.nativeRange;\n        } else if (api.features.implementsDomRange && (range instanceof dom.getWindow(range.startContainer).Range)) {\n            nativeRange = range;\n        }\n        return nativeRange;\n    }\n\n    function rangeContainsSingleElement(rangeNodes) {\n        if (!rangeNodes.length || rangeNodes[0].nodeType != 1) {\n            return false;\n        }\n        for (var i = 1, len = rangeNodes.length; i < len; ++i) {\n            if (!dom.isAncestorOf(rangeNodes[0], rangeNodes[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    function getSingleElementFromRange(range) {\n        var nodes = range.getNodes();\n        if (!rangeContainsSingleElement(nodes)) {\n            throw new Error(\"getSingleElementFromRange: range \" + range.inspect() + \" did not consist of a single element\");\n        }\n        return nodes[0];\n    }\n\n    function isTextRange(range) {\n        return !!range && typeof range.text != \"undefined\";\n    }\n\n    function updateFromTextRange(sel, range) {\n        // Create a Range from the selected TextRange\n        var wrappedRange = new WrappedRange(range);\n        sel._ranges = [wrappedRange];\n\n        updateAnchorAndFocusFromRange(sel, wrappedRange, false);\n        sel.rangeCount = 1;\n        sel.isCollapsed = wrappedRange.collapsed;\n    }\n\n    function updateControlSelection(sel) {\n        // Update the wrapped selection based on what's now in the native selection\n        sel._ranges.length = 0;\n        if (sel.docSelection.type == \"None\") {\n            updateEmptySelection(sel);\n        } else {\n            var controlRange = sel.docSelection.createRange();\n            if (isTextRange(controlRange)) {\n                // This case (where the selection type is \"Control\" and calling createRange() on the selection returns\n                // a TextRange) can happen in IE 9. It happens, for example, when all elements in the selected\n                // ControlRange have been removed from the ControlRange and removed from the document.\n                updateFromTextRange(sel, controlRange);\n            } else {\n                sel.rangeCount = controlRange.length;\n                var range, doc = dom.getDocument(controlRange.item(0));\n                for (var i = 0; i < sel.rangeCount; ++i) {\n                    range = api.createRange(doc);\n                    range.selectNode(controlRange.item(i));\n                    sel._ranges.push(range);\n                }\n                sel.isCollapsed = sel.rangeCount == 1 && sel._ranges[0].collapsed;\n                updateAnchorAndFocusFromRange(sel, sel._ranges[sel.rangeCount - 1], false);\n            }\n        }\n    }\n\n    function addRangeToControlSelection(sel, range) {\n        var controlRange = sel.docSelection.createRange();\n        var rangeElement = getSingleElementFromRange(range);\n\n        // Create a new ControlRange containing all the elements in the selected ControlRange plus the element\n        // contained by the supplied range\n        var doc = dom.getDocument(controlRange.item(0));\n        var newControlRange = dom.getBody(doc).createControlRange();\n        for (var i = 0, len = controlRange.length; i < len; ++i) {\n            newControlRange.add(controlRange.item(i));\n        }\n        try {\n            newControlRange.add(rangeElement);\n        } catch (ex) {\n            throw new Error(\"addRange(): Element within the specified Range could not be added to control selection (does it have layout?)\");\n        }\n        newControlRange.select();\n\n        // Update the wrapped selection based on what's now in the native selection\n        updateControlSelection(sel);\n    }\n\n    var getSelectionRangeAt;\n\n    if (util.isHostMethod(testSelection,  \"getRangeAt\")) {\n        getSelectionRangeAt = function(sel, index) {\n            try {\n                return sel.getRangeAt(index);\n            } catch(ex) {\n                return null;\n            }\n        };\n    } else if (selectionHasAnchorAndFocus) {\n        getSelectionRangeAt = function(sel) {\n            var doc = dom.getDocument(sel.anchorNode);\n            var range = api.createRange(doc);\n            range.setStart(sel.anchorNode, sel.anchorOffset);\n            range.setEnd(sel.focusNode, sel.focusOffset);\n\n            // Handle the case when the selection was selected backwards (from the end to the start in the\n            // document)\n            if (range.collapsed !== this.isCollapsed) {\n                range.setStart(sel.focusNode, sel.focusOffset);\n                range.setEnd(sel.anchorNode, sel.anchorOffset);\n            }\n\n            return range;\n        };\n    }\n\n    /**\n     * @constructor\n     */\n    function WrappedSelection(selection, docSelection, win) {\n        this.nativeSelection = selection;\n        this.docSelection = docSelection;\n        this._ranges = [];\n        this.win = win;\n        this.refresh();\n    }\n\n    api.getSelection = function(win) {\n        win = win || window;\n        var sel = win[windowPropertyName];\n        var nativeSel = getSelection(win), docSel = implementsDocSelection ? getDocSelection(win) : null;\n        if (sel) {\n            sel.nativeSelection = nativeSel;\n            sel.docSelection = docSel;\n            sel.refresh(win);\n        } else {\n            sel = new WrappedSelection(nativeSel, docSel, win);\n            win[windowPropertyName] = sel;\n        }\n        return sel;\n    };\n\n    api.getIframeSelection = function(iframeEl) {\n        return api.getSelection(dom.getIframeWindow(iframeEl));\n    };\n\n    var selProto = WrappedSelection.prototype;\n\n    function createControlSelection(sel, ranges) {\n        // Ensure that the selection becomes of type \"Control\"\n        var doc = dom.getDocument(ranges[0].startContainer);\n        var controlRange = dom.getBody(doc).createControlRange();\n        for (var i = 0, el; i < rangeCount; ++i) {\n            el = getSingleElementFromRange(ranges[i]);\n            try {\n                controlRange.add(el);\n            } catch (ex) {\n                throw new Error(\"setRanges(): Element within the one of the specified Ranges could not be added to control selection (does it have layout?)\");\n            }\n        }\n        controlRange.select();\n\n        // Update the wrapped selection based on what's now in the native selection\n        updateControlSelection(sel);\n    }\n\n    // Selecting a range\n    if (!useDocumentSelection && selectionHasAnchorAndFocus && util.areHostMethods(testSelection, [\"removeAllRanges\", \"addRange\"])) {\n        selProto.removeAllRanges = function() {\n            this.nativeSelection.removeAllRanges();\n            updateEmptySelection(this);\n        };\n\n        var addRangeBackwards = function(sel, range) {\n            var doc = DomRange.getRangeDocument(range);\n            var endRange = api.createRange(doc);\n            endRange.collapseToPoint(range.endContainer, range.endOffset);\n            sel.nativeSelection.addRange(getNativeRange(endRange));\n            sel.nativeSelection.extend(range.startContainer, range.startOffset);\n            sel.refresh();\n        };\n\n        if (selectionHasRangeCount) {\n            selProto.addRange = function(range, backwards) {\n                if (implementsControlRange && implementsDocSelection && this.docSelection.type == CONTROL) {\n                    addRangeToControlSelection(this, range);\n                } else {\n                    if (backwards && selectionHasExtend) {\n                        addRangeBackwards(this, range);\n                    } else {\n                        var previousRangeCount;\n                        if (selectionSupportsMultipleRanges) {\n                            previousRangeCount = this.rangeCount;\n                        } else {\n                            this.removeAllRanges();\n                            previousRangeCount = 0;\n                        }\n                        this.nativeSelection.addRange(getNativeRange(range));\n\n                        // Check whether adding the range was successful\n                        this.rangeCount = this.nativeSelection.rangeCount;\n\n                        if (this.rangeCount == previousRangeCount + 1) {\n                            // The range was added successfully\n\n                            // Check whether the range that we added to the selection is reflected in the last range extracted from\n                            // the selection\n                            if (api.config.checkSelectionRanges) {\n                                var nativeRange = getSelectionRangeAt(this.nativeSelection, this.rangeCount - 1);\n                                if (nativeRange && !DomRange.rangesEqual(nativeRange, range)) {\n                                    // Happens in WebKit with, for example, a selection placed at the start of a text node\n                                    range = new WrappedRange(nativeRange);\n                                }\n                            }\n                            this._ranges[this.rangeCount - 1] = range;\n                            updateAnchorAndFocusFromRange(this, range, selectionIsBackwards(this.nativeSelection));\n                            this.isCollapsed = selectionIsCollapsed(this);\n                        } else {\n                            // The range was not added successfully. The simplest thing is to refresh\n                            this.refresh();\n                        }\n                    }\n                }\n            };\n        } else {\n            selProto.addRange = function(range, backwards) {\n                if (backwards && selectionHasExtend) {\n                    addRangeBackwards(this, range);\n                } else {\n                    this.nativeSelection.addRange(getNativeRange(range));\n                    this.refresh();\n                }\n            };\n        }\n\n        selProto.setRanges = function(ranges) {\n            if (implementsControlRange && ranges.length > 1) {\n                createControlSelection(this, ranges);\n            } else {\n                this.removeAllRanges();\n                for (var i = 0, len = ranges.length; i < len; ++i) {\n                    this.addRange(ranges[i]);\n                }\n            }\n        };\n    } else if (util.isHostMethod(testSelection, \"empty\") && util.isHostMethod(testRange, \"select\") &&\n               implementsControlRange && useDocumentSelection) {\n\n        selProto.removeAllRanges = function() {\n            // Added try/catch as fix for issue #21\n            try {\n                this.docSelection.empty();\n\n                // Check for empty() not working (issue #24)\n                if (this.docSelection.type != \"None\") {\n                    // Work around failure to empty a control selection by instead selecting a TextRange and then\n                    // calling empty()\n                    var doc;\n                    if (this.anchorNode) {\n                        doc = dom.getDocument(this.anchorNode);\n                    } else if (this.docSelection.type == CONTROL) {\n                        var controlRange = this.docSelection.createRange();\n                        if (controlRange.length) {\n                            doc = dom.getDocument(controlRange.item(0)).body.createTextRange();\n                        }\n                    }\n                    if (doc) {\n                        var textRange = doc.body.createTextRange();\n                        textRange.select();\n                        this.docSelection.empty();\n                    }\n                }\n            } catch(ex) {}\n            updateEmptySelection(this);\n        };\n\n        selProto.addRange = function(range) {\n            if (this.docSelection.type == CONTROL) {\n                addRangeToControlSelection(this, range);\n            } else {\n                WrappedRange.rangeToTextRange(range).select();\n                this._ranges[0] = range;\n                this.rangeCount = 1;\n                this.isCollapsed = this._ranges[0].collapsed;\n                updateAnchorAndFocusFromRange(this, range, false);\n            }\n        };\n\n        selProto.setRanges = function(ranges) {\n            this.removeAllRanges();\n            var rangeCount = ranges.length;\n            if (rangeCount > 1) {\n                createControlSelection(this, ranges);\n            } else if (rangeCount) {\n                this.addRange(ranges[0]);\n            }\n        };\n    } else {\n        module.fail(\"No means of selecting a Range or TextRange was found\");\n        return false;\n    }\n\n    selProto.getRangeAt = function(index) {\n        if (index < 0 || index >= this.rangeCount) {\n            throw new DOMException(\"INDEX_SIZE_ERR\");\n        } else {\n            return this._ranges[index];\n        }\n    };\n\n    var refreshSelection;\n\n    if (useDocumentSelection) {\n        refreshSelection = function(sel) {\n            var range;\n            if (api.isSelectionValid(sel.win)) {\n                range = sel.docSelection.createRange();\n            } else {\n                range = dom.getBody(sel.win.document).createTextRange();\n                range.collapse(true);\n            }\n\n\n            if (sel.docSelection.type == CONTROL) {\n                updateControlSelection(sel);\n            } else if (isTextRange(range)) {\n                updateFromTextRange(sel, range);\n            } else {\n                updateEmptySelection(sel);\n            }\n        };\n    } else if (util.isHostMethod(testSelection, \"getRangeAt\") && typeof testSelection.rangeCount == \"number\") {\n        refreshSelection = function(sel) {\n            if (implementsControlRange && implementsDocSelection && sel.docSelection.type == CONTROL) {\n                updateControlSelection(sel);\n            } else {\n                sel._ranges.length = sel.rangeCount = sel.nativeSelection.rangeCount;\n                if (sel.rangeCount) {\n                    for (var i = 0, len = sel.rangeCount; i < len; ++i) {\n                        sel._ranges[i] = new api.WrappedRange(sel.nativeSelection.getRangeAt(i));\n                    }\n                    updateAnchorAndFocusFromRange(sel, sel._ranges[sel.rangeCount - 1], selectionIsBackwards(sel.nativeSelection));\n                    sel.isCollapsed = selectionIsCollapsed(sel);\n                } else {\n                    updateEmptySelection(sel);\n                }\n            }\n        };\n    } else if (selectionHasAnchorAndFocus && typeof testSelection.isCollapsed == BOOLEAN && typeof testRange.collapsed == BOOLEAN && api.features.implementsDomRange) {\n        refreshSelection = function(sel) {\n            var range, nativeSel = sel.nativeSelection;\n            if (nativeSel.anchorNode) {\n                range = getSelectionRangeAt(nativeSel, 0);\n                sel._ranges = [range];\n                sel.rangeCount = 1;\n                updateAnchorAndFocusFromNativeSelection(sel);\n                sel.isCollapsed = selectionIsCollapsed(sel);\n            } else {\n                updateEmptySelection(sel);\n            }\n        };\n    } else {\n        module.fail(\"No means of obtaining a Range or TextRange from the user's selection was found\");\n        return false;\n    }\n\n    selProto.refresh = function(checkForChanges) {\n        var oldRanges = checkForChanges ? this._ranges.slice(0) : null;\n        refreshSelection(this);\n        if (checkForChanges) {\n            var i = oldRanges.length;\n            if (i != this._ranges.length) {\n                return false;\n            }\n            while (i--) {\n                if (!DomRange.rangesEqual(oldRanges[i], this._ranges[i])) {\n                    return false;\n                }\n            }\n            return true;\n        }\n    };\n\n    // Removal of a single range\n    var removeRangeManually = function(sel, range) {\n        var ranges = sel.getAllRanges(), removed = false;\n        sel.removeAllRanges();\n        for (var i = 0, len = ranges.length; i < len; ++i) {\n            if (removed || range !== ranges[i]) {\n                sel.addRange(ranges[i]);\n            } else {\n                // According to the draft WHATWG Range spec, the same range may be added to the selection multiple\n                // times. removeRange should only remove the first instance, so the following ensures only the first\n                // instance is removed\n                removed = true;\n            }\n        }\n        if (!sel.rangeCount) {\n            updateEmptySelection(sel);\n        }\n    };\n\n    if (implementsControlRange) {\n        selProto.removeRange = function(range) {\n            if (this.docSelection.type == CONTROL) {\n                var controlRange = this.docSelection.createRange();\n                var rangeElement = getSingleElementFromRange(range);\n\n                // Create a new ControlRange containing all the elements in the selected ControlRange minus the\n                // element contained by the supplied range\n                var doc = dom.getDocument(controlRange.item(0));\n                var newControlRange = dom.getBody(doc).createControlRange();\n                var el, removed = false;\n                for (var i = 0, len = controlRange.length; i < len; ++i) {\n                    el = controlRange.item(i);\n                    if (el !== rangeElement || removed) {\n                        newControlRange.add(controlRange.item(i));\n                    } else {\n                        removed = true;\n                    }\n                }\n                newControlRange.select();\n\n                // Update the wrapped selection based on what's now in the native selection\n                updateControlSelection(this);\n            } else {\n                removeRangeManually(this, range);\n            }\n        };\n    } else {\n        selProto.removeRange = function(range) {\n            removeRangeManually(this, range);\n        };\n    }\n\n    // Detecting if a selection is backwards\n    var selectionIsBackwards;\n    if (!useDocumentSelection && selectionHasAnchorAndFocus && api.features.implementsDomRange) {\n        selectionIsBackwards = function(sel) {\n            var backwards = false;\n            if (sel.anchorNode) {\n                backwards = (dom.comparePoints(sel.anchorNode, sel.anchorOffset, sel.focusNode, sel.focusOffset) == 1);\n            }\n            return backwards;\n        };\n\n        selProto.isBackwards = function() {\n            return selectionIsBackwards(this);\n        };\n    } else {\n        selectionIsBackwards = selProto.isBackwards = function() {\n            return false;\n        };\n    }\n\n    // Selection text\n    // This is conformant to the new WHATWG DOM Range draft spec but differs from WebKit and Mozilla's implementation\n    selProto.toString = function() {\n\n        var rangeTexts = [];\n        for (var i = 0, len = this.rangeCount; i < len; ++i) {\n            rangeTexts[i] = \"\" + this._ranges[i];\n        }\n        return rangeTexts.join(\"\");\n    };\n\n    function assertNodeInSameDocument(sel, node) {\n        if (sel.anchorNode && (dom.getDocument(sel.anchorNode) !== dom.getDocument(node))) {\n            throw new DOMException(\"WRONG_DOCUMENT_ERR\");\n        }\n    }\n\n    // No current browsers conform fully to the HTML 5 draft spec for this method, so Rangy's own method is always used\n    selProto.collapse = function(node, offset) {\n        assertNodeInSameDocument(this, node);\n        var range = api.createRange(dom.getDocument(node));\n        range.collapseToPoint(node, offset);\n        this.removeAllRanges();\n        this.addRange(range);\n        this.isCollapsed = true;\n    };\n\n    selProto.collapseToStart = function() {\n        if (this.rangeCount) {\n            var range = this._ranges[0];\n            this.collapse(range.startContainer, range.startOffset);\n        } else {\n            throw new DOMException(\"INVALID_STATE_ERR\");\n        }\n    };\n\n    selProto.collapseToEnd = function() {\n        if (this.rangeCount) {\n            var range = this._ranges[this.rangeCount - 1];\n            this.collapse(range.endContainer, range.endOffset);\n        } else {\n            throw new DOMException(\"INVALID_STATE_ERR\");\n        }\n    };\n\n    // The HTML 5 spec is very specific on how selectAllChildren should be implemented so the native implementation is\n    // never used by Rangy.\n    selProto.selectAllChildren = function(node) {\n        assertNodeInSameDocument(this, node);\n        var range = api.createRange(dom.getDocument(node));\n        range.selectNodeContents(node);\n        this.removeAllRanges();\n        this.addRange(range);\n    };\n\n    selProto.deleteFromDocument = function() {\n        // Sepcial behaviour required for Control selections\n        if (implementsControlRange && implementsDocSelection && this.docSelection.type == CONTROL) {\n            var controlRange = this.docSelection.createRange();\n            var element;\n            while (controlRange.length) {\n                element = controlRange.item(0);\n                controlRange.remove(element);\n                element.parentNode.removeChild(element);\n            }\n            this.refresh();\n        } else if (this.rangeCount) {\n            var ranges = this.getAllRanges();\n            this.removeAllRanges();\n            for (var i = 0, len = ranges.length; i < len; ++i) {\n                ranges[i].deleteContents();\n            }\n            // The HTML5 spec says nothing about what the selection should contain after calling deleteContents on each\n            // range. Firefox moves the selection to where the final selected range was, so we emulate that\n            this.addRange(ranges[len - 1]);\n        }\n    };\n\n    // The following are non-standard extensions\n    selProto.getAllRanges = function() {\n        return this._ranges.slice(0);\n    };\n\n    selProto.setSingleRange = function(range) {\n        this.setRanges( [range] );\n    };\n\n    selProto.containsNode = function(node, allowPartial) {\n        for (var i = 0, len = this._ranges.length; i < len; ++i) {\n            if (this._ranges[i].containsNode(node, allowPartial)) {\n                return true;\n            }\n        }\n        return false;\n    };\n\n    selProto.toHtml = function() {\n        var html = \"\";\n        if (this.rangeCount) {\n            var container = DomRange.getRangeDocument(this._ranges[0]).createElement(\"div\");\n            for (var i = 0, len = this._ranges.length; i < len; ++i) {\n                container.appendChild(this._ranges[i].cloneContents());\n            }\n            html = container.innerHTML;\n        }\n        return html;\n    };\n\n    function inspect(sel) {\n        var rangeInspects = [];\n        var anchor = new DomPosition(sel.anchorNode, sel.anchorOffset);\n        var focus = new DomPosition(sel.focusNode, sel.focusOffset);\n        var name = (typeof sel.getName == \"function\") ? sel.getName() : \"Selection\";\n\n        if (typeof sel.rangeCount != \"undefined\") {\n            for (var i = 0, len = sel.rangeCount; i < len; ++i) {\n                rangeInspects[i] = DomRange.inspect(sel.getRangeAt(i));\n            }\n        }\n        return \"[\" + name + \"(Ranges: \" + rangeInspects.join(\", \") +\n                \")(anchor: \" + anchor.inspect() + \", focus: \" + focus.inspect() + \"]\";\n\n    }\n\n    selProto.getName = function() {\n        return \"WrappedSelection\";\n    };\n\n    selProto.inspect = function() {\n        return inspect(this);\n    };\n\n    selProto.detach = function() {\n        this.win[windowPropertyName] = null;\n        this.win = this.anchorNode = this.focusNode = null;\n    };\n\n    WrappedSelection.inspect = inspect;\n\n    api.Selection = WrappedSelection;\n\n    api.selectionPrototype = selProto;\n\n    api.addCreateMissingNativeApiListener(function(win) {\n        if (typeof win.getSelection == \"undefined\") {\n            win.getSelection = function() {\n                return api.getSelection(this);\n            };\n        }\n        win = null;\n    });\n});\n/*\n\tBase.js, version 1.1a\n\tCopyright 2006-2010, Dean Edwards\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n\nvar Base = function() {\n\t// dummy\n};\n\nBase.extend = function(_instance, _static) { // subclass\n\tvar extend = Base.prototype.extend;\n\t\n\t// build the prototype\n\tBase._prototyping = true;\n\tvar proto = new this;\n\textend.call(proto, _instance);\n  proto.base = function() {\n    // call this method from any other method to invoke that method's ancestor\n  };\n\tdelete Base._prototyping;\n\t\n\t// create the wrapper for the constructor function\n\t//var constructor = proto.constructor.valueOf(); //-dean\n\tvar constructor = proto.constructor;\n\tvar klass = proto.constructor = function() {\n\t\tif (!Base._prototyping) {\n\t\t\tif (this._constructing || this.constructor == klass) { // instantiation\n\t\t\t\tthis._constructing = true;\n\t\t\t\tconstructor.apply(this, arguments);\n\t\t\t\tdelete this._constructing;\n\t\t\t} else if (arguments[0] != null) { // casting\n\t\t\t\treturn (arguments[0].extend || extend).call(arguments[0], proto);\n\t\t\t}\n\t\t}\n\t};\n\t\n\t// build the class interface\n\tklass.ancestor = this;\n\tklass.extend = this.extend;\n\tklass.forEach = this.forEach;\n\tklass.implement = this.implement;\n\tklass.prototype = proto;\n\tklass.toString = this.toString;\n\tklass.valueOf = function(type) {\n\t\t//return (type == \"object\") ? klass : constructor; //-dean\n\t\treturn (type == \"object\") ? klass : constructor.valueOf();\n\t};\n\textend.call(klass, _static);\n\t// class initialisation\n\tif (typeof klass.init == \"function\") klass.init();\n\treturn klass;\n};\n\nBase.prototype = {\t\n\textend: function(source, value) {\n\t\tif (arguments.length > 1) { // extending with a name/value pair\n\t\t\tvar ancestor = this[source];\n\t\t\tif (ancestor && (typeof value == \"function\") && // overriding a method?\n\t\t\t\t// the valueOf() comparison is to avoid circular references\n\t\t\t\t(!ancestor.valueOf || ancestor.valueOf() != value.valueOf()) &&\n\t\t\t\t/\\bbase\\b/.test(value)) {\n\t\t\t\t// get the underlying method\n\t\t\t\tvar method = value.valueOf();\n\t\t\t\t// override\n\t\t\t\tvalue = function() {\n\t\t\t\t\tvar previous = this.base || Base.prototype.base;\n\t\t\t\t\tthis.base = ancestor;\n\t\t\t\t\tvar returnValue = method.apply(this, arguments);\n\t\t\t\t\tthis.base = previous;\n\t\t\t\t\treturn returnValue;\n\t\t\t\t};\n\t\t\t\t// point to the underlying method\n\t\t\t\tvalue.valueOf = function(type) {\n\t\t\t\t\treturn (type == \"object\") ? value : method;\n\t\t\t\t};\n\t\t\t\tvalue.toString = Base.toString;\n\t\t\t}\n\t\t\tthis[source] = value;\n\t\t} else if (source) { // extending with an object literal\n\t\t\tvar extend = Base.prototype.extend;\n\t\t\t// if this object has a customised extend method then use it\n\t\t\tif (!Base._prototyping && typeof this != \"function\") {\n\t\t\t\textend = this.extend || extend;\n\t\t\t}\n\t\t\tvar proto = {toSource: null};\n\t\t\t// do the \"toString\" and other methods manually\n\t\t\tvar hidden = [\"constructor\", \"toString\", \"valueOf\"];\n\t\t\t// if we are prototyping then include the constructor\n\t\t\tvar i = Base._prototyping ? 0 : 1;\n\t\t\twhile (key = hidden[i++]) {\n\t\t\t\tif (source[key] != proto[key]) {\n\t\t\t\t\textend.call(this, key, source[key]);\n\n\t\t\t\t}\n\t\t\t}\n\t\t\t// copy each of the source object's properties to this object\n\t\t\tfor (var key in source) {\n\t\t\t\tif (!proto[key]) extend.call(this, key, source[key]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n};\n\n// initialise\nBase = Base.extend({\n\tconstructor: function() {\n\t\tthis.extend(arguments[0]);\n\t}\n}, {\n\tancestor: Object,\n\tversion: \"1.1\",\n\t\n\tforEach: function(object, block, context) {\n\t\tfor (var key in object) {\n\t\t\tif (this.prototype[key] === undefined) {\n\t\t\t\tblock.call(context, object[key], key, object);\n\t\t\t}\n\t\t}\n\t},\n\t\t\n\timplement: function() {\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tif (typeof arguments[i] == \"function\") {\n\t\t\t\t// if it's a function, call it\n\t\t\t\targuments[i](this.prototype);\n\t\t\t} else {\n\t\t\t\t// add the interface using the extend method\n\t\t\t\tthis.prototype.extend(arguments[i]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t},\n\t\n\ttoString: function() {\n\t\treturn String(this.valueOf());\n\t}\n});/**\n * Detect browser support for specific features\n */\nwysihtml5.browser = (function() {\n  var userAgent   = navigator.userAgent,\n      testElement = document.createElement(\"div\"),\n      // Browser sniffing is unfortunately needed since some behaviors are impossible to feature detect\n      isIE        = userAgent.indexOf(\"MSIE\")         !== -1 && userAgent.indexOf(\"Opera\") === -1,\n      isGecko     = userAgent.indexOf(\"Gecko\")        !== -1 && userAgent.indexOf(\"KHTML\") === -1,\n      isWebKit    = userAgent.indexOf(\"AppleWebKit/\") !== -1,\n      isChrome    = userAgent.indexOf(\"Chrome/\")      !== -1,\n      isOpera     = userAgent.indexOf(\"Opera/\")       !== -1;\n  \n  function iosVersion(userAgent) {\n    return ((/ipad|iphone|ipod/.test(userAgent) && userAgent.match(/ os (\\d+).+? like mac os x/)) || [, 0])[1];\n  }\n  \n  return {\n    // Static variable needed, publicly accessible, to be able override it in unit tests\n    USER_AGENT: userAgent,\n    \n    /**\n     * Exclude browsers that are not capable of displaying and handling\n     * contentEditable as desired:\n     *    - iPhone, iPad (tested iOS 4.2.2) and Android (tested 2.2) refuse to make contentEditables focusable\n     *    - IE < 8 create invalid markup and crash randomly from time to time\n     *\n     * @return {Boolean}\n     */\n    supported: function() {\n      var userAgent                   = this.USER_AGENT.toLowerCase(),\n          // Essential for making html elements editable\n          hasContentEditableSupport   = \"contentEditable\" in testElement,\n          // Following methods are needed in order to interact with the contentEditable area\n          hasEditingApiSupport        = document.execCommand && document.queryCommandSupported && document.queryCommandState,\n          // document selector apis are only supported by IE 8+, Safari 4+, Chrome and Firefox 3.5+\n          hasQuerySelectorSupport     = document.querySelector && document.querySelectorAll,\n          // contentEditable is unusable in mobile browsers (tested iOS 4.2.2, Android 2.2, Opera Mobile, WebOS 3.05)\n          isIncompatibleMobileBrowser = (this.isIos() && iosVersion(userAgent) < 5) || userAgent.indexOf(\"opera mobi\") !== -1 || userAgent.indexOf(\"hpwos/\") !== -1;\n      \n      return hasContentEditableSupport\n        && hasEditingApiSupport\n        && hasQuerySelectorSupport\n        && !isIncompatibleMobileBrowser;\n    },\n    \n    isTouchDevice: function() {\n      return this.supportsEvent(\"touchmove\");\n    },\n    \n    isIos: function() {\n      var userAgent = this.USER_AGENT.toLowerCase();\n      return userAgent.indexOf(\"webkit\") !== -1 && userAgent.indexOf(\"mobile\") !== -1;\n    },\n    \n    /**\n     * Whether the browser supports sandboxed iframes\n     * Currently only IE 6+ offers such feature <iframe security=\"restricted\">\n     *\n     * http://msdn.microsoft.com/en-us/library/ms534622(v=vs.85).aspx\n     * http://blogs.msdn.com/b/ie/archive/2008/01/18/using-frames-more-securely.aspx\n     *\n     * HTML5 sandboxed iframes are still buggy and their DOM is not reachable from the outside (except when using postMessage)\n     */\n    supportsSandboxedIframes: function() {\n      return isIE;\n    },\n\n    /**\n     * IE6+7 throw a mixed content warning when the src of an iframe\n     * is empty/unset or about:blank\n     * window.querySelector is implemented as of IE8\n     */\n    throwsMixedContentWarningWhenIframeSrcIsEmpty: function() {\n      return !(\"querySelector\" in document);\n    },\n\n    /**\n     * Whether the caret is correctly displayed in contentEditable elements\n     * Firefox sometimes shows a huge caret in the beginning after focusing\n     */\n    displaysCaretInEmptyContentEditableCorrectly: function() {\n      return !isGecko;\n    },\n\n    /**\n     * Opera and IE are the only browsers who offer the css value\n     * in the original unit, thx to the currentStyle object\n     * All other browsers provide the computed style in px via window.getComputedStyle\n     */\n    hasCurrentStyleProperty: function() {\n      return \"currentStyle\" in testElement;\n    },\n\n    /**\n     * Whether the browser inserts a <br> when pressing enter in a contentEditable element\n     */\n    insertsLineBreaksOnReturn: function() {\n      return isGecko;\n    },\n\n    supportsPlaceholderAttributeOn: function(element) {\n      return \"placeholder\" in element;\n    },\n\n    supportsEvent: function(eventName) {\n      return \"on\" + eventName in testElement || (function() {\n        testElement.setAttribute(\"on\" + eventName, \"return;\");\n        return typeof(testElement[\"on\" + eventName]) === \"function\";\n      })();\n    },\n\n    /**\n     * Opera doesn't correctly fire focus/blur events when clicking in- and outside of iframe\n     */\n    supportsEventsInIframeCorrectly: function() {\n      return !isOpera;\n    },\n\n    /**\n     * Chrome & Safari only fire the ondrop/ondragend/... events when the ondragover event is cancelled\n     * with event.preventDefault\n     * Firefox 3.6 fires those events anyway, but the mozilla doc says that the dragover/dragenter event needs\n     * to be cancelled\n     */\n    firesOnDropOnlyWhenOnDragOverIsCancelled: function() {\n      return isWebKit || isGecko;\n    },\n    \n    /**\n     * Whether the browser supports the event.dataTransfer property in a proper way\n     */\n    supportsDataTransfer: function() {\n      try {\n        // Firefox doesn't support dataTransfer in a safe way, it doesn't strip script code in the html payload (like Chrome does)\n        return isWebKit && (window.Clipboard || window.DataTransfer).prototype.getData;\n      } catch(e) {\n        return false;\n      }\n    },\n\n    /**\n     * Everything below IE9 doesn't know how to treat HTML5 tags\n     *\n     * @param {Object} context The document object on which to check HTML5 support\n     *\n     * @example\n     *    wysihtml5.browser.supportsHTML5Tags(document);\n     */\n    supportsHTML5Tags: function(context) {\n      var element = context.createElement(\"div\"),\n          html5   = \"<article>foo</article>\";\n      element.innerHTML = html5;\n      return element.innerHTML.toLowerCase() === html5;\n    },\n\n    /**\n     * Checks whether a document supports a certain queryCommand\n     * In particular, Opera needs a reference to a document that has a contentEditable in it's dom tree\n     * in oder to report correct results\n     *\n     * @param {Object} doc Document object on which to check for a query command\n     * @param {String} command The query command to check for\n     * @return {Boolean}\n     *\n     * @example\n     *    wysihtml5.browser.supportsCommand(document, \"bold\");\n     */\n    supportsCommand: (function() {\n      // Following commands are supported but contain bugs in some browsers\n      var buggyCommands = {\n        // formatBlock fails with some tags (eg. <blockquote>)\n        \"formatBlock\":          isIE,\n         // When inserting unordered or ordered lists in Firefox, Chrome or Safari, the current selection or line gets\n         // converted into a list (<ul><li>...</li></ul>, <ol><li>...</li></ol>)\n         // IE and Opera act a bit different here as they convert the entire content of the current block element into a list\n        \"insertUnorderedList\":  isIE || isOpera || isWebKit,\n        \"insertOrderedList\":    isIE || isOpera || isWebKit\n      };\n      \n      // Firefox throws errors for queryCommandSupported, so we have to build up our own object of supported commands\n      var supported = {\n        \"insertHTML\": isGecko\n      };\n\n      return function(doc, command) {\n        var isBuggy = buggyCommands[command];\n        if (!isBuggy) {\n          // Firefox throws errors when invoking queryCommandSupported or queryCommandEnabled\n          try {\n            return doc.queryCommandSupported(command);\n          } catch(e1) {}\n\n          try {\n            return doc.queryCommandEnabled(command);\n          } catch(e2) {\n            return !!supported[command];\n          }\n        }\n        return false;\n      };\n    })(),\n\n    /**\n     * IE: URLs starting with:\n     *    www., http://, https://, ftp://, gopher://, mailto:, new:, snews:, telnet:, wasis:, file://,\n     *    nntp://, newsrc:, ldap://, ldaps://, outlook:, mic:// and url:\n     * will automatically be auto-linked when either the user inserts them via copy&paste or presses the\n     * space bar when the caret is directly after such an url.\n     * This behavior cannot easily be avoided in IE < 9 since the logic is hardcoded in the mshtml.dll\n     * (related blog post on msdn\n     * http://blogs.msdn.com/b/ieinternals/archive/2009/09/17/prevent-automatic-hyperlinking-in-contenteditable-html.aspx).\n     */\n    doesAutoLinkingInContentEditable: function() {\n      return isIE;\n    },\n\n    /**\n     * As stated above, IE auto links urls typed into contentEditable elements\n     * Since IE9 it's possible to prevent this behavior\n     */\n    canDisableAutoLinking: function() {\n      return this.supportsCommand(document, \"AutoUrlDetect\");\n    },\n\n    /**\n     * IE leaves an empty paragraph in the contentEditable element after clearing it\n     * Chrome/Safari sometimes an empty <div>\n     */\n    clearsContentEditableCorrectly: function() {\n      return isGecko || isOpera || isWebKit;\n    },\n\n    /**\n     * IE gives wrong results for getAttribute\n     */\n    supportsGetAttributeCorrectly: function() {\n      var td = document.createElement(\"td\");\n      return td.getAttribute(\"rowspan\") != \"1\";\n    },\n\n    /**\n     * When clicking on images in IE, Opera and Firefox, they are selected, which makes it easy to interact with them.\n     * Chrome and Safari both don't support this\n     */\n    canSelectImagesInContentEditable: function() {\n      return isGecko || isIE || isOpera;\n    },\n\n    /**\n     * When the caret is in an empty list (<ul><li>|</li></ul>) which is the first child in an contentEditable container\n     * pressing backspace doesn't remove the entire list as done in other browsers\n     */\n    clearsListsInContentEditableCorrectly: function() {\n      return isGecko || isIE || isWebKit;\n    },\n\n    /**\n     * All browsers except Safari and Chrome automatically scroll the range/caret position into view\n     */\n    autoScrollsToCaret: function() {\n      return !isWebKit;\n    },\n\n    /**\n     * Check whether the browser automatically closes tags that don't need to be opened\n     */\n    autoClosesUnclosedTags: function() {\n      var clonedTestElement = testElement.cloneNode(false),\n          returnValue,\n          innerHTML;\n\n      clonedTestElement.innerHTML = \"<p><div></div>\";\n      innerHTML                   = clonedTestElement.innerHTML.toLowerCase();\n      returnValue                 = innerHTML === \"<p></p><div></div>\" || innerHTML === \"<p><div></div></p>\";\n\n      // Cache result by overwriting current function\n      this.autoClosesUnclosedTags = function() { return returnValue; };\n\n      return returnValue;\n    },\n\n    /**\n     * Whether the browser supports the native document.getElementsByClassName which returns live NodeLists\n     */\n    supportsNativeGetElementsByClassName: function() {\n      return String(document.getElementsByClassName).indexOf(\"[native code]\") !== -1;\n    },\n\n    /**\n     * As of now (19.04.2011) only supported by Firefox 4 and Chrome\n     * See https://developer.mozilla.org/en/DOM/Selection/modify\n     */\n    supportsSelectionModify: function() {\n      return \"getSelection\" in window && \"modify\" in window.getSelection();\n    },\n    \n    /**\n     * Whether the browser supports the classList object for fast className manipulation\n     * See https://developer.mozilla.org/en/DOM/element.classList\n     */\n    supportsClassList: function() {\n      return \"classList\" in testElement;\n    },\n    \n    /**\n     * Opera needs a white space after a <br> in order to position the caret correctly\n     */\n    needsSpaceAfterLineBreak: function() {\n      return isOpera;\n    },\n    \n    /**\n     * Whether the browser supports the speech api on the given element\n     * See http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/\n     *\n     * @example\n     *    var input = document.createElement(\"input\");\n     *    if (wysihtml5.browser.supportsSpeechApiOn(input)) {\n     *      // ...\n     *    }\n     */\n    supportsSpeechApiOn: function(input) {\n      var chromeVersion = userAgent.match(/Chrome\\/(\\d+)/) || [, 0];\n      return chromeVersion[1] >= 11 && (\"onwebkitspeechchange\" in input || \"speech\" in input);\n    },\n    \n    /**\n     * IE9 crashes when setting a getter via Object.defineProperty on XMLHttpRequest or XDomainRequest\n     * See https://connect.microsoft.com/ie/feedback/details/650112\n     * or try the POC http://tifftiff.de/ie9_crash/\n     */\n    crashesWhenDefineProperty: function(property) {\n      return isIE && (property === \"XMLHttpRequest\" || property === \"XDomainRequest\");\n    },\n    \n    /**\n     * IE is the only browser who fires the \"focus\" event not immediately when .focus() is called on an element\n     */\n    doesAsyncFocus: function() {\n      return isIE;\n    },\n    \n    /**\n     * In IE it's impssible for the user and for the selection library to set the caret after an <img> when it's the lastChild in the document\n     */\n    hasProblemsSettingCaretAfterImg: function() {\n      return isIE;\n    },\n    \n    hasUndoInContextMenu: function() {\n      return isGecko || isChrome || isOpera;\n    }\n  };\n})();wysihtml5.lang.array = function(arr) {\n  return {\n    /**\n     * Check whether a given object exists in an array\n     *\n     * @example\n     *    wysihtml5.lang.array([1, 2]).contains(1);\n     *    // => true\n     */\n    contains: function(needle) {\n      if (arr.indexOf) {\n        return arr.indexOf(needle) !== -1;\n      } else {\n        for (var i=0, length=arr.length; i<length; i++) {\n          if (arr[i] === needle) { return true; }\n        }\n        return false;\n      }\n    },\n    \n    /**\n     * Substract one array from another\n     *\n     * @example\n     *    wysihtml5.lang.array([1, 2, 3, 4]).without([3, 4]);\n     *    // => [1, 2]\n     */\n    without: function(arrayToSubstract) {\n      arrayToSubstract = wysihtml5.lang.array(arrayToSubstract);\n      var newArr  = [],\n          i       = 0,\n          length  = arr.length;\n      for (; i<length; i++) {\n        if (!arrayToSubstract.contains(arr[i])) {\n          newArr.push(arr[i]);\n        }\n      }\n      return newArr;\n    },\n    \n    /**\n     * Return a clean native array\n     * \n     * Following will convert a Live NodeList to a proper Array\n     * @example\n     *    var childNodes = wysihtml5.lang.array(document.body.childNodes).get();\n     */\n    get: function() {\n      var i        = 0,\n          length   = arr.length,\n          newArray = [];\n      for (; i<length; i++) {\n        newArray.push(arr[i]);\n      }\n      return newArray;\n    }\n  };\n};wysihtml5.lang.Dispatcher = Base.extend(\n  /** @scope wysihtml5.lang.Dialog.prototype */ {\n  observe: function(eventName, handler) {\n    this.events = this.events || {};\n    this.events[eventName] = this.events[eventName] || [];\n    this.events[eventName].push(handler);\n    return this;\n  },\n\n  on: function() {\n    return this.observe.apply(this, wysihtml5.lang.array(arguments).get());\n  },\n\n  fire: function(eventName, payload) {\n    this.events = this.events || {};\n    var handlers = this.events[eventName] || [],\n        i        = 0;\n    for (; i<handlers.length; i++) {\n      handlers[i].call(this, payload);\n    }\n    return this;\n  },\n\n  stopObserving: function(eventName, handler) {\n    this.events = this.events || {};\n    var i = 0,\n        handlers,\n        newHandlers;\n    if (eventName) {\n      handlers    = this.events[eventName] || [],\n      newHandlers = [];\n      for (; i<handlers.length; i++) {\n        if (handlers[i] !== handler && handler) {\n          newHandlers.push(handlers[i]);\n        }\n      }\n      this.events[eventName] = newHandlers;\n    } else {\n      // Clean up all events\n      this.events = {};\n    }\n    return this;\n  }\n});wysihtml5.lang.object = function(obj) {\n  return {\n    /**\n     * @example\n     *    wysihtml5.lang.object({ foo: 1, bar: 1 }).merge({ bar: 2, baz: 3 }).get();\n     *    // => { foo: 1, bar: 2, baz: 3 }\n     */\n    merge: function(otherObj) {\n      for (var i in otherObj) {\n        obj[i] = otherObj[i];\n      }\n      return this;\n    },\n    \n    get: function() {\n      return obj;\n    },\n    \n    /**\n     * @example\n     *    wysihtml5.lang.object({ foo: 1 }).clone();\n     *    // => { foo: 1 }\n     */\n    clone: function() {\n      var newObj = {},\n          i;\n      for (i in obj) {\n        newObj[i] = obj[i];\n      }\n      return newObj;\n    },\n    \n    /**\n     * @example\n     *    wysihtml5.lang.object([]).isArray();\n     *    // => true\n     */\n    isArray: function() {\n      return Object.prototype.toString.call(obj) === \"[object Array]\";\n    }\n  };\n};(function() {\n  var WHITE_SPACE_START = /^\\s+/,\n      WHITE_SPACE_END   = /\\s+$/;\n  wysihtml5.lang.string = function(str) {\n    str = String(str);\n    return {\n      /**\n       * @example\n       *    wysihtml5.lang.string(\"   foo   \").trim();\n       *    // => \"foo\"\n       */\n      trim: function() {\n        return str.replace(WHITE_SPACE_START, \"\").replace(WHITE_SPACE_END, \"\");\n      },\n      \n      /**\n       * @example\n       *    wysihtml5.lang.string(\"Hello #{name}\").interpolate({ name: \"Christopher\" });\n       *    // => \"Hello Christopher\"\n       */\n      interpolate: function(vars) {\n        for (var i in vars) {\n          str = this.replace(\"#{\" + i + \"}\").by(vars[i]);\n        }\n        return str;\n      },\n      \n      /**\n       * @example\n       *    wysihtml5.lang.string(\"Hello Tom\").replace(\"Tom\").with(\"Hans\");\n       *    // => \"Hello Hans\"\n       */\n      replace: function(search) {\n        return {\n          by: function(replace) {\n            return str.split(search).join(replace);\n          }\n        }\n      }\n    };\n  };\n})();/**\n * Find urls in descendant text nodes of an element and auto-links them\n * Inspired by http://james.padolsey.com/javascript/find-and-replace-text-with-javascript/\n *\n * @param {Element} element Container element in which to search for urls\n *\n * @example\n *    <div id=\"text-container\">Please click here: www.google.com</div>\n *    <script>wysihtml5.dom.autoLink(document.getElementById(\"text-container\"));</script>\n */\n(function(wysihtml5) {\n  var /**\n       * Don't auto-link urls that are contained in the following elements:\n       */\n      IGNORE_URLS_IN        = wysihtml5.lang.array([\"CODE\", \"PRE\", \"A\", \"SCRIPT\", \"HEAD\", \"TITLE\", \"STYLE\"]),\n      /**\n       * revision 1:\n       *    /(\\S+\\.{1}[^\\s\\,\\.\\!]+)/g\n       *\n       * revision 2:\n       *    /(\\b(((https?|ftp):\\/\\/)|(www\\.))[-A-Z0-9+&@#\\/%?=~_|!:,.;\\[\\]]*[-A-Z0-9+&@#\\/%=~_|])/gim\n       *\n       * put this in the beginning if you don't wan't to match within a word\n       *    (^|[\\>\\(\\{\\[\\s\\>])\n       */\n      URL_REG_EXP           = /((https?:\\/\\/|www\\.)[^\\s<]{3,})/gi,\n      TRAILING_CHAR_REG_EXP = /([^\\w\\/\\-](,?))$/i,\n      MAX_DISPLAY_LENGTH    = 100,\n      BRACKETS              = { \")\": \"(\", \"]\": \"[\", \"}\": \"{\" };\n  \n  function autoLink(element) {\n    if (_hasParentThatShouldBeIgnored(element)) {\n      return element;\n    }\n\n    if (element === element.ownerDocument.documentElement) {\n      element = element.ownerDocument.body;\n    }\n\n    return _parseNode(element);\n  }\n  \n  /**\n   * This is basically a rebuild of\n   * the rails auto_link_urls text helper\n   */\n  function _convertUrlsToLinks(str) {\n    return str.replace(URL_REG_EXP, function(match, url) {\n      var punctuation = (url.match(TRAILING_CHAR_REG_EXP) || [])[1] || \"\",\n          opening     = BRACKETS[punctuation];\n      url = url.replace(TRAILING_CHAR_REG_EXP, \"\");\n\n      if (url.split(opening).length > url.split(punctuation).length) {\n        url = url + punctuation;\n        punctuation = \"\";\n      }\n      var realUrl    = url,\n          displayUrl = url;\n      if (url.length > MAX_DISPLAY_LENGTH) {\n        displayUrl = displayUrl.substr(0, MAX_DISPLAY_LENGTH) + \"...\";\n      }\n      // Add http prefix if necessary\n      if (realUrl.substr(0, 4) === \"www.\") {\n        realUrl = \"http://\" + realUrl;\n      }\n      \n      return '<a href=\"' + realUrl + '\">' + displayUrl + '</a>' + punctuation;\n    });\n  }\n  \n  /**\n   * Creates or (if already cached) returns a temp element\n   * for the given document object\n   */\n  function _getTempElement(context) {\n    var tempElement = context._wysihtml5_tempElement;\n    if (!tempElement) {\n      tempElement = context._wysihtml5_tempElement = context.createElement(\"div\");\n    }\n    return tempElement;\n  }\n  \n  /**\n   * Replaces the original text nodes with the newly auto-linked dom tree\n   */\n  function _wrapMatchesInNode(textNode) {\n    var parentNode  = textNode.parentNode,\n        tempElement = _getTempElement(parentNode.ownerDocument);\n    \n    // We need to insert an empty/temporary <span /> to fix IE quirks\n    // Elsewise IE would strip white space in the beginning\n    tempElement.innerHTML = \"<span></span>\" + _convertUrlsToLinks(textNode.data);\n    tempElement.removeChild(tempElement.firstChild);\n    \n    while (tempElement.firstChild) {\n      // inserts tempElement.firstChild before textNode\n      parentNode.insertBefore(tempElement.firstChild, textNode);\n    }\n    parentNode.removeChild(textNode);\n  }\n  \n  function _hasParentThatShouldBeIgnored(node) {\n    var nodeName;\n    while (node.parentNode) {\n      node = node.parentNode;\n      nodeName = node.nodeName;\n      if (IGNORE_URLS_IN.contains(nodeName)) {\n        return true;\n      } else if (nodeName === \"body\") {\n        return false;\n      }\n    }\n    return false;\n  }\n  \n  function _parseNode(element) {\n    if (IGNORE_URLS_IN.contains(element.nodeName)) {\n      return;\n    }\n    \n    if (element.nodeType === wysihtml5.TEXT_NODE && element.data.match(URL_REG_EXP)) {\n      _wrapMatchesInNode(element);\n      return;\n    }\n    \n    var childNodes        = wysihtml5.lang.array(element.childNodes).get(),\n        childNodesLength  = childNodes.length,\n        i                 = 0;\n    \n    for (; i<childNodesLength; i++) {\n      _parseNode(childNodes[i]);\n    }\n    \n    return element;\n  }\n  \n  wysihtml5.dom.autoLink = autoLink;\n  \n  // Reveal url reg exp to the outside\n  wysihtml5.dom.autoLink.URL_REG_EXP = URL_REG_EXP;\n})(wysihtml5);(function(wysihtml5) {\n  var supportsClassList = wysihtml5.browser.supportsClassList(),\n      api               = wysihtml5.dom;\n  \n  api.addClass = function(element, className) {\n    if (supportsClassList) {\n      return element.classList.add(className);\n    }\n    if (api.hasClass(element, className)) {\n      return;\n    }\n    element.className += \" \" + className;\n  };\n  \n  api.removeClass = function(element, className) {\n    if (supportsClassList) {\n      return element.classList.remove(className);\n    }\n    \n    element.className = element.className.replace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \");\n  };\n  \n  api.hasClass = function(element, className) {\n    if (supportsClassList) {\n      return element.classList.contains(className);\n    }\n    \n    var elementClassName = element.className;\n    return (elementClassName.length > 0 && (elementClassName == className || new RegExp(\"(^|\\\\s)\" + className + \"(\\\\s|$)\").test(elementClassName)));\n  };\n})(wysihtml5);\nwysihtml5.dom.contains = (function() {\n  var documentElement = document.documentElement;\n  if (documentElement.contains) {\n    return function(container, element) {\n      if (element.nodeType !== wysihtml5.ELEMENT_NODE) {\n        element = element.parentNode;\n      }\n      return container !== element && container.contains(element);\n    };\n  } else if (documentElement.compareDocumentPosition) {\n    return function(container, element) {\n      // https://developer.mozilla.org/en/DOM/Node.compareDocumentPosition\n      return !!(container.compareDocumentPosition(element) & 16);\n    };\n  }\n})();/**\n * Converts an HTML fragment/element into a unordered/ordered list\n *\n * @param {Element} element The element which should be turned into a list\n * @param {String} listType The list type in which to convert the tree (either \"ul\" or \"ol\")\n * @return {Element} The created list\n *\n * @example\n *    <!-- Assume the following dom: -->\n *    <span id=\"pseudo-list\">\n *      eminem<br>\n *      dr. dre\n *      <div>50 Cent</div>\n *    </span>\n *\n *    <script>\n *      wysihtml5.dom.convertToList(document.getElementById(\"pseudo-list\"), \"ul\");\n *    </script>\n *\n *    <!-- Will result in: -->\n *    <ul>\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ul>\n */\nwysihtml5.dom.convertToList = (function() {\n  function _createListItem(doc, list) {\n    var listItem = doc.createElement(\"li\");\n    list.appendChild(listItem);\n    return listItem;\n  }\n  \n  function _createList(doc, type) {\n    return doc.createElement(type);\n  }\n  \n  function convertToList(element, listType) {\n    if (element.nodeName === \"UL\" || element.nodeName === \"OL\" || element.nodeName === \"MENU\") {\n      // Already a list\n      return element;\n    }\n    \n    var doc               = element.ownerDocument,\n        list              = _createList(doc, listType),\n        lineBreaks        = element.querySelectorAll(\"br\"),\n        lineBreaksLength  = lineBreaks.length,\n        childNodes,\n        childNodesLength,\n        childNode,\n        lineBreak,\n        parentNode,\n        isBlockElement,\n        isLineBreak,\n        currentListItem,\n        i;\n    \n    // First find <br> at the end of inline elements and move them behind them\n    for (i=0; i<lineBreaksLength; i++) {\n      lineBreak = lineBreaks[i];\n      while ((parentNode = lineBreak.parentNode) && parentNode !== element && parentNode.lastChild === lineBreak) {\n        if (wysihtml5.dom.getStyle(\"display\").from(parentNode) === \"block\") {\n          parentNode.removeChild(lineBreak);\n          break;\n        }\n        wysihtml5.dom.insert(lineBreak).after(lineBreak.parentNode);\n      }\n    }\n    \n    childNodes        = wysihtml5.lang.array(element.childNodes).get();\n    childNodesLength  = childNodes.length;\n    \n    for (i=0; i<childNodesLength; i++) {\n      currentListItem   = currentListItem || _createListItem(doc, list);\n      childNode         = childNodes[i];\n      isBlockElement    = wysihtml5.dom.getStyle(\"display\").from(childNode) === \"block\";\n      isLineBreak       = childNode.nodeName === \"BR\";\n      \n      if (isBlockElement) {\n        // Append blockElement to current <li> if empty, otherwise create a new one\n        currentListItem = currentListItem.firstChild ? _createListItem(doc, list) : currentListItem;\n        currentListItem.appendChild(childNode);\n        currentListItem = null;\n        continue;\n      }\n      \n      if (isLineBreak) {\n        // Only create a new list item in the next iteration when the current one has already content\n        currentListItem = currentListItem.firstChild ? null : currentListItem;\n        continue;\n      }\n      \n      currentListItem.appendChild(childNode);\n    }\n    \n    element.parentNode.replaceChild(list, element);\n    return list;\n  }\n  \n  return convertToList;\n})();/**\n * Copy a set of attributes from one element to another\n *\n * @param {Array} attributesToCopy List of attributes which should be copied\n * @return {Object} Returns an object which offers the \"from\" method which can be invoked with the element where to\n *    copy the attributes from., this again returns an object which provides a method named \"to\" which can be invoked \n *    with the element where to copy the attributes to (see example)\n *\n * @example\n *    var textarea    = document.querySelector(\"textarea\"),\n *        div         = document.querySelector(\"div[contenteditable=true]\"),\n *        anotherDiv  = document.querySelector(\"div.preview\");\n *    wysihtml5.dom.copyAttributes([\"spellcheck\", \"value\", \"placeholder\"]).from(textarea).to(div).andTo(anotherDiv);\n *\n */\nwysihtml5.dom.copyAttributes = function(attributesToCopy) {\n  return {\n    from: function(elementToCopyFrom) {\n      return {\n        to: function(elementToCopyTo) {\n          var attribute,\n              i         = 0,\n              length    = attributesToCopy.length;\n          for (; i<length; i++) {\n            attribute = attributesToCopy[i];\n            if (typeof(elementToCopyFrom[attribute]) !== \"undefined\" && elementToCopyFrom[attribute] !== \"\") {\n              elementToCopyTo[attribute] = elementToCopyFrom[attribute];\n            }\n          }\n          return { andTo: arguments.callee };\n        }\n      };\n    }\n  };\n};/**\n * Copy a set of styles from one element to another\n * Please note that this only works properly across browsers when the element from which to copy the styles\n * is in the dom\n *\n * Interesting article on how to copy styles\n *\n * @param {Array} stylesToCopy List of styles which should be copied\n * @return {Object} Returns an object which offers the \"from\" method which can be invoked with the element where to\n *    copy the styles from., this again returns an object which provides a method named \"to\" which can be invoked \n *    with the element where to copy the styles to (see example)\n *\n * @example\n *    var textarea    = document.querySelector(\"textarea\"),\n *        div         = document.querySelector(\"div[contenteditable=true]\"),\n *        anotherDiv  = document.querySelector(\"div.preview\");\n *    wysihtml5.dom.copyStyles([\"overflow-y\", \"width\", \"height\"]).from(textarea).to(div).andTo(anotherDiv);\n *\n */\n(function(dom) {\n  \n  /**\n   * Mozilla, WebKit and Opera recalculate the computed width when box-sizing: boder-box; is set\n   * So if an element has \"width: 200px; -moz-box-sizing: border-box; border: 1px;\" then \n   * its computed css width will be 198px\n   */\n  var BOX_SIZING_PROPERTIES = [\"-webkit-box-sizing\", \"-moz-box-sizing\", \"-ms-box-sizing\", \"box-sizing\"];\n  \n  var shouldIgnoreBoxSizingBorderBox = function(element) {\n    if (hasBoxSizingBorderBox(element)) {\n       return parseInt(dom.getStyle(\"width\").from(element), 10) < element.offsetWidth;\n    }\n    return false;\n  };\n  \n  var hasBoxSizingBorderBox = function(element) {\n    var i       = 0,\n        length  = BOX_SIZING_PROPERTIES.length;\n    for (; i<length; i++) {\n      if (dom.getStyle(BOX_SIZING_PROPERTIES[i]).from(element) === \"border-box\") {\n        return BOX_SIZING_PROPERTIES[i];\n      }\n    }\n  };\n  \n  dom.copyStyles = function(stylesToCopy) {\n    return {\n      from: function(element) {\n        if (shouldIgnoreBoxSizingBorderBox(element)) {\n          stylesToCopy = wysihtml5.lang.array(stylesToCopy).without(BOX_SIZING_PROPERTIES);\n        }\n        \n        var cssText = \"\",\n            length  = stylesToCopy.length,\n            i       = 0,\n            property;\n        for (; i<length; i++) {\n          property = stylesToCopy[i];\n          cssText += property + \":\" + dom.getStyle(property).from(element) + \";\";\n        }\n        \n        return {\n          to: function(element) {\n            dom.setStyles(cssText).on(element);\n            return { andTo: arguments.callee };\n          }\n        };\n      }\n    };\n  };\n})(wysihtml5.dom);/**\n * Event Delegation\n *\n * @example\n *    wysihtml5.dom.delegate(document.body, \"a\", \"click\", function() {\n *      // foo\n *    });\n */\n(function(wysihtml5) {\n  \n  wysihtml5.dom.delegate = function(container, selector, eventName, handler) {\n    return wysihtml5.dom.observe(container, eventName, function(event) {\n      var target    = event.target,\n          match     = wysihtml5.lang.array(container.querySelectorAll(selector));\n      \n      while (target && target !== container) {\n        if (match.contains(target)) {\n          handler.call(target, event);\n          break;\n        }\n        target = target.parentNode;\n      }\n    });\n  };\n  \n})(wysihtml5);/**\n * Returns the given html wrapped in a div element\n *\n * Fixing IE's inability to treat unknown elements (HTML5 section, article, ...) correctly\n * when inserted via innerHTML\n * \n * @param {String} html The html which should be wrapped in a dom element\n * @param {Obejct} [context] Document object of the context the html belongs to\n *\n * @example\n *    wysihtml5.dom.getAsDom(\"<article>foo</article>\");\n */\nwysihtml5.dom.getAsDom = (function() {\n  \n  var _innerHTMLShiv = function(html, context) {\n    var tempElement = context.createElement(\"div\");\n    tempElement.style.display = \"none\";\n    context.body.appendChild(tempElement);\n    // IE throws an exception when trying to insert <frameset></frameset> via innerHTML\n    try { tempElement.innerHTML = html; } catch(e) {}\n    context.body.removeChild(tempElement);\n    return tempElement;\n  };\n  \n  /**\n   * Make sure IE supports HTML5 tags, which is accomplished by simply creating one instance of each element\n   */\n  var _ensureHTML5Compatibility = function(context) {\n    if (context._wysihtml5_supportsHTML5Tags) {\n      return;\n    }\n    for (var i=0, length=HTML5_ELEMENTS.length; i<length; i++) {\n      context.createElement(HTML5_ELEMENTS[i]);\n    }\n    context._wysihtml5_supportsHTML5Tags = true;\n  };\n  \n  \n  /**\n   * List of html5 tags\n   * taken from http://simon.html5.org/html5-elements\n   */\n  var HTML5_ELEMENTS = [\n    \"abbr\", \"article\", \"aside\", \"audio\", \"bdi\", \"canvas\", \"command\", \"datalist\", \"details\", \"figcaption\",\n    \"figure\", \"footer\", \"header\", \"hgroup\", \"keygen\", \"mark\", \"meter\", \"nav\", \"output\", \"progress\",\n    \"rp\", \"rt\", \"ruby\", \"svg\", \"section\", \"source\", \"summary\", \"time\", \"track\", \"video\", \"wbr\"\n  ];\n  \n  return function(html, context) {\n    context = context || document;\n    var tempElement;\n    if (typeof(html) === \"object\" && html.nodeType) {\n      tempElement = context.createElement(\"div\");\n      tempElement.appendChild(html);\n    } else if (wysihtml5.browser.supportsHTML5Tags(context)) {\n      tempElement = context.createElement(\"div\");\n      tempElement.innerHTML = html;\n    } else {\n      _ensureHTML5Compatibility(context);\n      tempElement = _innerHTMLShiv(html, context);\n    }\n    return tempElement;\n  };\n})();/**\n * Walks the dom tree from the given node up until it finds a match\n * Designed for optimal performance.\n *\n * @param {Element} node The from which to check the parent nodes\n * @param {Object} matchingSet Object to match against (possible properties: nodeName, className, classRegExp)\n * @param {Number} [levels] How many parents should the function check up from the current node (defaults to 50)\n * @return {null|Element} Returns the first element that matched the desiredNodeName(s)\n * @example\n *    var listElement = wysihtml5.dom.getParentElement(document.querySelector(\"li\"), { nodeName: [\"MENU\", \"UL\", \"OL\"] });\n *    // ... or ...\n *    var unorderedListElement = wysihtml5.dom.getParentElement(document.querySelector(\"li\"), { nodeName: \"UL\" });\n *    // ... or ...\n *    var coloredElement = wysihtml5.dom.getParentElement(myTextNode, { nodeName: \"SPAN\", className: \"wysiwyg-color-red\", classRegExp: /wysiwyg-color-[a-z]/g });\n */\nwysihtml5.dom.getParentElement = (function() {\n  \n  function _isSameNodeName(nodeName, desiredNodeNames) {\n    if (!desiredNodeNames || !desiredNodeNames.length) {\n      return true;\n    }\n    \n    if (typeof(desiredNodeNames) === \"string\") {\n      return nodeName === desiredNodeNames;\n    } else {\n      return wysihtml5.lang.array(desiredNodeNames).contains(nodeName);\n    }\n  }\n  \n  function _isElement(node) {\n    return node.nodeType === wysihtml5.ELEMENT_NODE;\n  }\n  \n  function _hasClassName(element, className, classRegExp) {\n    var classNames = (element.className || \"\").match(classRegExp) || [];\n    if (!className) {\n      return !!classNames.length;\n    }\n    return classNames[classNames.length - 1] === className;\n  }\n  \n  function _getParentElementWithNodeName(node, nodeName, levels) {\n    while (levels-- && node && node.nodeName !== \"BODY\") {\n      if (_isSameNodeName(node.nodeName, nodeName)) {\n        return node;\n      }\n      node = node.parentNode;\n    }\n    return null;\n  }\n  \n  function _getParentElementWithNodeNameAndClassName(node, nodeName, className, classRegExp, levels) {\n    while (levels-- && node && node.nodeName !== \"BODY\") {\n      if (_isElement(node) &&\n          _isSameNodeName(node.nodeName, nodeName) &&\n          _hasClassName(node, className, classRegExp)) {\n        return node;\n      }\n      node = node.parentNode;\n    }\n    return null;\n  }\n  \n  return function(node, matchingSet, levels) {\n    levels = levels || 50; // Go max 50 nodes upwards from current node\n    if (matchingSet.className || matchingSet.classRegExp) {\n      return _getParentElementWithNodeNameAndClassName(\n        node, matchingSet.nodeName, matchingSet.className, matchingSet.classRegExp, levels\n      );\n    } else {\n      return _getParentElementWithNodeName(\n        node, matchingSet.nodeName, levels\n      );\n    }\n  };\n})();\n/**\n * Get element's style for a specific css property\n *\n * @param {Element} element The element on which to retrieve the style\n * @param {String} property The CSS property to retrieve (\"float\", \"display\", \"text-align\", ...)\n *\n * @example\n *    wysihtml5.dom.getStyle(\"display\").from(document.body);\n *    // => \"block\"\n */\nwysihtml5.dom.getStyle = (function() {\n  var stylePropertyMapping = {\n        \"float\": (\"styleFloat\" in document.createElement(\"div\").style) ? \"styleFloat\" : \"cssFloat\"\n      },\n      REG_EXP_CAMELIZE = /\\-[a-z]/g;\n  \n  function camelize(str) {\n    return str.replace(REG_EXP_CAMELIZE, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  }\n  \n  return function(property) {\n    return {\n      from: function(element) {\n        if (element.nodeType !== wysihtml5.ELEMENT_NODE) {\n          return;\n        }\n        \n        var doc               = element.ownerDocument,\n            camelizedProperty = stylePropertyMapping[property] || camelize(property),\n            style             = element.style,\n            currentStyle      = element.currentStyle,\n            styleValue        = style[camelizedProperty];\n        if (styleValue) {\n          return styleValue;\n        }\n        \n        // currentStyle is no standard and only supported by Opera and IE but it has one important advantage over the standard-compliant\n        // window.getComputedStyle, since it returns css property values in their original unit:\n        // If you set an elements width to \"50%\", window.getComputedStyle will give you it's current width in px while currentStyle\n        // gives you the original \"50%\".\n        // Opera supports both, currentStyle and window.getComputedStyle, that's why checking for currentStyle should have higher prio\n        if (currentStyle) {\n          try {\n                return currentStyle[camelizedProperty];\n          } catch(e) {\n            //ie will occasionally fail for unknown reasons. swallowing exception\n          }\n        }\n\n        var win                 = doc.defaultView || doc.parentWindow,\n            needsOverflowReset  = (property === \"height\" || property === \"width\") && element.nodeName === \"TEXTAREA\",\n            originalOverflow,\n            returnValue;\n\n        if (win.getComputedStyle) {\n          // Chrome and Safari both calculate a wrong width and height for textareas when they have scroll bars\n          // therfore we remove and restore the scrollbar and calculate the value in between\n          if (needsOverflowReset) {\n            originalOverflow = style.overflow;\n            style.overflow = \"hidden\";\n          }\n          returnValue = win.getComputedStyle(element, null).getPropertyValue(property);\n          if (needsOverflowReset) {\n            style.overflow = originalOverflow || \"\";\n          }\n          return returnValue;\n        }\n      }\n    };\n  };\n})();/**\n * High performant way to check whether an element with a specific tag name is in the given document\n * Optimized for being heavily executed\n * Unleashes the power of live node lists\n *\n * @param {Object} doc The document object of the context where to check\n * @param {String} tagName Upper cased tag name\n * @example\n *    wysihtml5.dom.hasElementWithTagName(document, \"IMG\");\n */\nwysihtml5.dom.hasElementWithTagName = (function() {\n  var LIVE_CACHE          = {},\n      DOCUMENT_IDENTIFIER = 1;\n  \n  function _getDocumentIdentifier(doc) {\n    return doc._wysihtml5_identifier || (doc._wysihtml5_identifier = DOCUMENT_IDENTIFIER++);\n  }\n  \n  return function(doc, tagName) {\n    var key         = _getDocumentIdentifier(doc) + \":\" + tagName,\n        cacheEntry  = LIVE_CACHE[key];\n    if (!cacheEntry) {\n      cacheEntry = LIVE_CACHE[key] = doc.getElementsByTagName(tagName);\n    }\n    \n    return cacheEntry.length > 0;\n  };\n})();/**\n * High performant way to check whether an element with a specific class name is in the given document\n * Optimized for being heavily executed\n * Unleashes the power of live node lists\n *\n * @param {Object} doc The document object of the context where to check\n * @param {String} tagName Upper cased tag name\n * @example\n *    wysihtml5.dom.hasElementWithClassName(document, \"foobar\");\n */\n(function(wysihtml5) {\n  var LIVE_CACHE          = {},\n      DOCUMENT_IDENTIFIER = 1;\n\n  function _getDocumentIdentifier(doc) {\n    return doc._wysihtml5_identifier || (doc._wysihtml5_identifier = DOCUMENT_IDENTIFIER++);\n  }\n  \n  wysihtml5.dom.hasElementWithClassName = function(doc, className) {\n    // getElementsByClassName is not supported by IE<9\n    // but is sometimes mocked via library code (which then doesn't return live node lists)\n    if (!wysihtml5.browser.supportsNativeGetElementsByClassName()) {\n      return !!doc.querySelector(\".\" + className);\n    }\n\n    var key         = _getDocumentIdentifier(doc) + \":\" + className,\n        cacheEntry  = LIVE_CACHE[key];\n    if (!cacheEntry) {\n      cacheEntry = LIVE_CACHE[key] = doc.getElementsByClassName(className);\n    }\n\n    return cacheEntry.length > 0;\n  };\n})(wysihtml5);\nwysihtml5.dom.insert = function(elementToInsert) {\n  return {\n    after: function(element) {\n      element.parentNode.insertBefore(elementToInsert, element.nextSibling);\n    },\n    \n    before: function(element) {\n      element.parentNode.insertBefore(elementToInsert, element);\n    },\n    \n    into: function(element) {\n      element.appendChild(elementToInsert);\n    }\n  };\n};wysihtml5.dom.insertCSS = function(rules) {\n  rules = rules.join(\"\\n\");\n  \n  return {\n    into: function(doc) {\n      var head         = doc.head || doc.getElementsByTagName(\"head\")[0],\n          styleElement = doc.createElement(\"style\");\n\n      styleElement.type = \"text/css\";\n\n      if (styleElement.styleSheet) {\n        styleElement.styleSheet.cssText = rules;\n      } else {\n        styleElement.appendChild(doc.createTextNode(rules));\n      }\n\n      if (head) {\n        head.appendChild(styleElement);\n      }\n    }\n  };\n};/**\n * Method to set dom events\n *\n * @example\n *    wysihtml5.dom.observe(iframe.contentWindow.document.body, [\"focus\", \"blur\"], function() { ... });\n */\nwysihtml5.dom.observe = function(element, eventNames, handler) {\n  eventNames = typeof(eventNames) === \"string\" ? [eventNames] : eventNames;\n  \n  var handlerWrapper,\n      eventName,\n      i       = 0,\n      length  = eventNames.length;\n  \n  for (; i<length; i++) {\n    eventName = eventNames[i];\n    if (element.addEventListener) {\n      element.addEventListener(eventName, handler, false);\n    } else {\n      handlerWrapper = function(event) {\n        if (!(\"target\" in event)) {\n          event.target = event.srcElement;\n        }\n        event.preventDefault = event.preventDefault || function() {\n          this.returnValue = false;\n        };\n        event.stopPropagation = event.stopPropagation || function() {\n          this.cancelBubble = true;\n        };\n        handler.call(element, event);\n      };\n      element.attachEvent(\"on\" + eventName, handlerWrapper);\n    }\n  }\n  \n  return {\n    stop: function() {\n      var eventName,\n          i       = 0,\n          length  = eventNames.length;\n      for (; i<length; i++) {\n        eventName = eventNames[i];\n        if (element.removeEventListener) {\n          element.removeEventListener(eventName, handler, false);\n        } else {\n          element.detachEvent(\"on\" + eventName, handlerWrapper);\n        }\n      }\n    }\n  };\n};\n/**\n * HTML Sanitizer\n * Rewrites the HTML based on given rules\n *\n * @param {Element|String} elementOrHtml HTML String to be sanitized OR element whose content should be sanitized\n * @param {Object} [rules] List of rules for rewriting the HTML, if there's no rule for an element it will\n *    be converted to a \"span\". Each rule is a key/value pair where key is the tag to convert, and value the\n *    desired substitution.\n * @param {Object} context Document object in which to parse the html, needed to sandbox the parsing\n *\n * @return {Element|String} Depends on the elementOrHtml parameter. When html then the sanitized html as string elsewise the element.\n *\n * @example\n *    var userHTML = '<div id=\"foo\" onclick=\"alert(1);\"><p><font color=\"red\">foo</font><script>alert(1);</script></p></div>';\n *    wysihtml5.dom.parse(userHTML, {\n *      tags {\n *        p:      \"div\",      // Rename p tags to div tags\n *        font:   \"span\"      // Rename font tags to span tags\n *        div:    true,       // Keep them, also possible (same result when passing: \"div\" or true)\n *        script: undefined   // Remove script elements\n *      }\n *    });\n *    // => <div><div><span>foo bar</span></div></div>\n *\n *    var userHTML = '<table><tbody><tr><td>I'm a table!</td></tr></tbody></table>';\n *    wysihtml5.dom.parse(userHTML);\n *    // => '<span><span><span><span>I'm a table!</span></span></span></span>'\n *\n *    var userHTML = '<div>foobar<br>foobar</div>';\n *    wysihtml5.dom.parse(userHTML, {\n *      tags: {\n *        div: undefined,\n *        br:  true\n *      }\n *    });\n *    // => ''\n *\n *    var userHTML = '<div class=\"red\">foo</div><div class=\"pink\">bar</div>';\n *    wysihtml5.dom.parse(userHTML, {\n *      classes: {\n *        red:    1,\n *        green:  1\n *      },\n *      tags: {\n *        div: {\n *          rename_tag:     \"p\"\n *        }\n *      }\n *    });\n *    // => '<p class=\"red\">foo</p><p>bar</p>'\n */\nwysihtml5.dom.parse = (function() {\n  \n  /**\n   * It's not possible to use a XMLParser/DOMParser as HTML5 is not always well-formed XML\n   * new DOMParser().parseFromString('<img src=\"foo.gif\">') will cause a parseError since the\n   * node isn't closed\n   *\n   * Therefore we've to use the browser's ordinary HTML parser invoked by setting innerHTML.\n   */\n  var NODE_TYPE_MAPPING = {\n        \"1\": _handleElement,\n        \"3\": _handleText\n      },\n      // Rename unknown tags to this\n      DEFAULT_NODE_NAME   = \"span\",\n      WHITE_SPACE_REG_EXP = /\\s+/,\n      defaultRules        = { tags: {}, classes: {} },\n      currentRules        = {};\n  \n  /**\n   * Iterates over all childs of the element, recreates them, appends them into a document fragment\n   * which later replaces the entire body content\n   */\n  function parse(elementOrHtml, rules, context, cleanUp) {\n    wysihtml5.lang.object(currentRules).merge(defaultRules).merge(rules).get();\n    \n    context           = context || elementOrHtml.ownerDocument || document;\n    var fragment      = context.createDocumentFragment(),\n        isString      = typeof(elementOrHtml) === \"string\",\n        element,\n        newNode,\n        firstChild;\n    \n    if (isString) {\n      element = wysihtml5.dom.getAsDom(elementOrHtml, context);\n    } else {\n      element = elementOrHtml;\n    }\n    \n    while (element.firstChild) {\n      firstChild  = element.firstChild;\n      element.removeChild(firstChild);\n      newNode = _convert(firstChild, cleanUp);\n      if (newNode) {\n        fragment.appendChild(newNode);\n      }\n    }\n    \n    // Clear element contents\n    element.innerHTML = \"\";\n    \n    // Insert new DOM tree\n    element.appendChild(fragment);\n    \n    return isString ? wysihtml5.quirks.getCorrectInnerHTML(element) : element;\n  }\n  \n  function _convert(oldNode, cleanUp) {\n    var oldNodeType     = oldNode.nodeType,\n        oldChilds       = oldNode.childNodes,\n        oldChildsLength = oldChilds.length,\n        newNode,\n        method          = NODE_TYPE_MAPPING[oldNodeType],\n        i               = 0;\n    \n    newNode = method && method(oldNode);\n    \n    if (!newNode) {\n      return null;\n    }\n    \n    for (i=0; i<oldChildsLength; i++) {\n      newChild = _convert(oldChilds[i], cleanUp);\n      if (newChild) {\n        newNode.appendChild(newChild);\n      }\n    }\n    \n    // Cleanup senseless <span> elements\n    if (cleanUp &&\n        newNode.childNodes.length <= 1 &&\n        newNode.nodeName.toLowerCase() === DEFAULT_NODE_NAME &&\n        !newNode.attributes.length) {\n      return newNode.firstChild;\n    }\n    \n    return newNode;\n  }\n  \n  function _handleElement(oldNode) {\n    var rule,\n        newNode,\n        endTag,\n        tagRules    = currentRules.tags,\n        nodeName    = oldNode.nodeName.toLowerCase(),\n        scopeName   = oldNode.scopeName;\n    \n    /**\n     * We already parsed that element\n     * ignore it! (yes, this sometimes happens in IE8 when the html is invalid)\n     */\n    if (oldNode._wysihtml5) {\n      return null;\n    }\n    oldNode._wysihtml5 = 1;\n    \n    if (oldNode.className === \"wysihtml5-temp\") {\n      return null;\n    }\n    \n    /**\n     * IE is the only browser who doesn't include the namespace in the\n     * nodeName, that's why we have to prepend it by ourselves\n     * scopeName is a proprietary IE feature\n     * read more here http://msdn.microsoft.com/en-us/library/ms534388(v=vs.85).aspx\n     */\n    if (scopeName && scopeName != \"HTML\") {\n      nodeName = scopeName + \":\" + nodeName;\n    }\n    \n    /**\n     * Repair node\n     * IE is a bit bitchy when it comes to invalid nested markup which includes unclosed tags\n     * A <p> doesn't need to be closed according HTML4-5 spec, we simply replace it with a <div> to preserve its content and layout\n     */\n    if (\"outerHTML\" in oldNode) {\n      if (!wysihtml5.browser.autoClosesUnclosedTags() &&\n          oldNode.nodeName === \"P\" &&\n          oldNode.outerHTML.slice(-4).toLowerCase() !== \"</p>\") {\n        nodeName = \"div\";\n      }\n    }\n    \n    if (nodeName in tagRules) {\n      rule = tagRules[nodeName];\n      if (!rule || rule.remove) {\n        return null;\n      }\n      \n      rule = typeof(rule) === \"string\" ? { rename_tag: rule } : rule;\n    } else if (oldNode.firstChild) {\n      rule = { rename_tag: DEFAULT_NODE_NAME };\n    } else {\n      // Remove empty unknown elements\n      return null;\n    }\n    \n    newNode = oldNode.ownerDocument.createElement(rule.rename_tag || nodeName);\n    _handleAttributes(oldNode, newNode, rule);\n    \n    oldNode = null;\n    return newNode;\n  }\n  \n  function _handleAttributes(oldNode, newNode, rule) {\n    var attributes          = {},                         // fresh new set of attributes to set on newNode\n        setClass            = rule.set_class,             // classes to set\n        addClass            = rule.add_class,             // add classes based on existing attributes\n        setAttributes       = rule.set_attributes,        // attributes to set on the current node\n        checkAttributes     = rule.check_attributes,      // check/convert values of attributes\n        allowedClasses      = currentRules.classes,\n        i                   = 0,\n        classes             = [],\n        newClasses          = [],\n        newUniqueClasses    = [],\n        oldClasses          = [],\n        classesLength,\n        newClassesLength,\n        currentClass,\n        newClass,\n        attributeName,\n        newAttributeValue,\n        method;\n    \n    if (setAttributes) {\n      attributes = wysihtml5.lang.object(setAttributes).clone();\n    }\n    \n    if (checkAttributes) {\n      for (attributeName in checkAttributes) {\n        method = attributeCheckMethods[checkAttributes[attributeName]];\n        if (!method) {\n          continue;\n        }\n        newAttributeValue = method(_getAttribute(oldNode, attributeName));\n        if (typeof(newAttributeValue) === \"string\") {\n          attributes[attributeName] = newAttributeValue;\n        }\n      }\n    }\n    \n    if (setClass) {\n      classes.push(setClass);\n    }\n    \n    if (addClass) {\n      for (attributeName in addClass) {\n        method = addClassMethods[addClass[attributeName]];\n        if (!method) {\n          continue;\n        }\n        newClass = method(_getAttribute(oldNode, attributeName));\n        if (typeof(newClass) === \"string\") {\n          classes.push(newClass);\n        }\n      }\n    }\n    \n    // make sure that wysihtml5 temp class doesn't get stripped out\n    allowedClasses[\"_wysihtml5-temp-placeholder\"] = 1;\n    \n    // add old classes last\n    oldClasses = oldNode.getAttribute(\"class\");\n    if (oldClasses) {\n      classes = classes.concat(oldClasses.split(WHITE_SPACE_REG_EXP));\n    }\n    classesLength = classes.length;\n    for (; i<classesLength; i++) {\n      currentClass = classes[i];\n      if (allowedClasses[currentClass]) {\n        newClasses.push(currentClass);\n      }\n    }\n    \n    // remove duplicate entries and preserve class specificity\n    newClassesLength = newClasses.length;\n    while (newClassesLength--) {\n      currentClass = newClasses[newClassesLength];\n      if (!wysihtml5.lang.array(newUniqueClasses).contains(currentClass)) {\n        newUniqueClasses.unshift(currentClass);\n      }\n    }\n    \n    if (newUniqueClasses.length) {\n      attributes[\"class\"] = newUniqueClasses.join(\" \");\n    }\n    \n    // set attributes on newNode\n    for (attributeName in attributes) {\n      // Setting attributes can cause a js error in IE under certain circumstances\n      // eg. on a <img> under https when it's new attribute value is non-https\n      // TODO: Investigate this further and check for smarter handling\n      try {\n        newNode.setAttribute(attributeName, attributes[attributeName]);\n      } catch(e) {}\n    }\n    \n    // IE8 sometimes loses the width/height attributes when those are set before the \"src\"\n    // so we make sure to set them again\n    if (attributes.src) {\n      if (typeof(attributes.width) !== \"undefined\") {\n        newNode.setAttribute(\"width\", attributes.width);\n      }\n      if (typeof(attributes.height) !== \"undefined\") {\n        newNode.setAttribute(\"height\", attributes.height);\n      }\n    }\n  }\n  \n  /**\n   * IE gives wrong results for hasAttribute/getAttribute, for example:\n   *    var td = document.createElement(\"td\");\n   *    td.getAttribute(\"rowspan\"); // => \"1\" in IE\n   *\n   * Therefore we have to check the element's outerHTML for the attribute\n   */\n  var HAS_GET_ATTRIBUTE_BUG = !wysihtml5.browser.supportsGetAttributeCorrectly();\n  function _getAttribute(node, attributeName) {\n    attributeName = attributeName.toLowerCase();\n    var nodeName = node.nodeName;\n    if (nodeName == \"IMG\" && attributeName == \"src\" && _isLoadedImage(node) === true) {\n      // Get 'src' attribute value via object property since this will always contain the\n      // full absolute url (http://...)\n      // this fixes a very annoying bug in firefox (ver 3.6 & 4) and IE 8 where images copied from the same host\n      // will have relative paths, which the sanitizer strips out (see attributeCheckMethods.url)\n      return node.src;\n    } else if (HAS_GET_ATTRIBUTE_BUG && \"outerHTML\" in node) {\n      // Don't trust getAttribute/hasAttribute in IE 6-8, instead check the element's outerHTML\n      var outerHTML      = node.outerHTML.toLowerCase(),\n          // TODO: This might not work for attributes without value: <input disabled>\n          hasAttribute   = outerHTML.indexOf(\" \" + attributeName +  \"=\") != -1;\n      \n      return hasAttribute ? node.getAttribute(attributeName) : null;\n    } else{\n      return node.getAttribute(attributeName);\n    }\n  }\n  \n  /**\n   * Check whether the given node is a proper loaded image\n   * FIXME: Returns undefined when unknown (Chrome, Safari)\n   */\n  function _isLoadedImage(node) {\n    try {\n      return node.complete && !node.mozMatchesSelector(\":-moz-broken\");\n    } catch(e) {\n      if (node.complete && node.readyState === \"complete\") {\n        return true;\n      }\n    }\n  }\n  \n  function _handleText(oldNode) {\n    return oldNode.ownerDocument.createTextNode(oldNode.data);\n  }\n  \n  \n  // ------------ attribute checks ------------ \\\\\n  var attributeCheckMethods = {\n    url: (function() {\n      var REG_EXP = /^https?:\\/\\//i;\n      return function(attributeValue) {\n        if (!attributeValue || !attributeValue.match(REG_EXP)) {\n          return null;\n        }\n        return attributeValue.replace(REG_EXP, function(match) {\n          return match.toLowerCase();\n        });\n      };\n    })(),\n    \n    alt: (function() {\n      var REG_EXP = /[^ a-z0-9_\\-]/gi;\n      return function(attributeValue) {\n        if (!attributeValue) {\n          return \"\";\n        }\n        return attributeValue.replace(REG_EXP, \"\");\n      };\n    })(),\n    \n    numbers: (function() {\n      var REG_EXP = /\\D/g;\n      return function(attributeValue) {\n        attributeValue = (attributeValue || \"\").replace(REG_EXP, \"\");\n        return attributeValue || null;\n      };\n    })()\n  };\n  \n  // ------------ class converter (converts an html attribute to a class name) ------------ \\\\\n  var addClassMethods = {\n    align_img: (function() {\n      var mapping = {\n        left:   \"wysiwyg-float-left\",\n        right:  \"wysiwyg-float-right\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).toLowerCase()];\n      };\n    })(),\n    \n    align_text: (function() {\n      var mapping = {\n        left:     \"wysiwyg-text-align-left\",\n        right:    \"wysiwyg-text-align-right\",\n        center:   \"wysiwyg-text-align-center\",\n        justify:  \"wysiwyg-text-align-justify\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).toLowerCase()];\n      };\n    })(),\n    \n    clear_br: (function() {\n      var mapping = {\n        left:   \"wysiwyg-clear-left\",\n        right:  \"wysiwyg-clear-right\",\n        both:   \"wysiwyg-clear-both\",\n        all:    \"wysiwyg-clear-both\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).toLowerCase()];\n      };\n    })(),\n    \n    size_font: (function() {\n      var mapping = {\n        \"1\": \"wysiwyg-font-size-xx-small\",\n        \"2\": \"wysiwyg-font-size-small\",\n        \"3\": \"wysiwyg-font-size-medium\",\n        \"4\": \"wysiwyg-font-size-large\",\n        \"5\": \"wysiwyg-font-size-x-large\",\n        \"6\": \"wysiwyg-font-size-xx-large\",\n        \"7\": \"wysiwyg-font-size-xx-large\",\n        \"-\": \"wysiwyg-font-size-smaller\",\n        \"+\": \"wysiwyg-font-size-larger\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).charAt(0)];\n      };\n    })()\n  };\n  \n  return parse;\n})();/**\n * Checks for empty text node childs and removes them\n *\n * @param {Element} node The element in which to cleanup\n * @example\n *    wysihtml5.dom.removeEmptyTextNodes(element);\n */\nwysihtml5.dom.removeEmptyTextNodes = function(node) {\n  var childNode,\n      childNodes        = wysihtml5.lang.array(node.childNodes).get(),\n      childNodesLength  = childNodes.length,\n      i                 = 0;\n  for (; i<childNodesLength; i++) {\n    childNode = childNodes[i];\n    if (childNode.nodeType === wysihtml5.TEXT_NODE && childNode.data === \"\") {\n      childNode.parentNode.removeChild(childNode);\n    }\n  }\n};\n/**\n * Renames an element (eg. a <div> to a <p>) and keeps its childs\n *\n * @param {Element} element The list element which should be renamed\n * @param {Element} newNodeName The desired tag name\n *\n * @example\n *    <!-- Assume the following dom: -->\n *    <ul id=\"list\">\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ul>\n *\n *    <script>\n *      wysihtml5.dom.renameElement(document.getElementById(\"list\"), \"ol\");\n *    </script>\n *\n *    <!-- Will result in: -->\n *    <ol>\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ol>\n */\nwysihtml5.dom.renameElement = function(element, newNodeName) {\n  var newElement = element.ownerDocument.createElement(newNodeName),\n      firstChild;\n  while (firstChild = element.firstChild) {\n    newElement.appendChild(firstChild);\n  }\n  wysihtml5.dom.copyAttributes([\"align\", \"className\"]).from(element).to(newElement);\n  element.parentNode.replaceChild(newElement, element);\n  return newElement;\n};/**\n * Takes an element, removes it and replaces it with it's childs\n * \n * @param {Object} node The node which to replace with it's child nodes\n * @example\n *    <div id=\"foo\">\n *      <span>hello</span>\n *    </div>\n *    <script>\n *      // Remove #foo and replace with it's children\n *      wysihtml5.dom.replaceWithChildNodes(document.getElementById(\"foo\"));\n *    </script>\n */\nwysihtml5.dom.replaceWithChildNodes = function(node) {\n  if (!node.parentNode) {\n    return;\n  }\n  \n  if (!node.firstChild) {\n    node.parentNode.removeChild(node);\n    return;\n  }\n  \n  var fragment = node.ownerDocument.createDocumentFragment();\n  while (node.firstChild) {\n    fragment.appendChild(node.firstChild);\n  }\n  node.parentNode.replaceChild(fragment, node);\n  node = fragment = null;\n};\n/**\n * Unwraps an unordered/ordered list\n *\n * @param {Element} element The list element which should be unwrapped\n *\n * @example\n *    <!-- Assume the following dom: -->\n *    <ul id=\"list\">\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ul>\n *\n *    <script>\n *      wysihtml5.dom.resolveList(document.getElementById(\"list\"));\n *    </script>\n *\n *    <!-- Will result in: -->\n *    eminem<br>\n *    dr. dre<br>\n *    50 Cent<br>\n */\n(function(dom) {\n  function _isBlockElement(node) {\n    return dom.getStyle(\"display\").from(node) === \"block\";\n  }\n  \n  function _isLineBreak(node) {\n    return node.nodeName === \"BR\";\n  }\n  \n  function _appendLineBreak(element) {\n    var lineBreak = element.ownerDocument.createElement(\"br\");\n    element.appendChild(lineBreak);\n  }\n  \n  function resolveList(list) {\n    if (list.nodeName !== \"MENU\" && list.nodeName !== \"UL\" && list.nodeName !== \"OL\") {\n      return;\n    }\n    \n    var doc             = list.ownerDocument,\n        fragment        = doc.createDocumentFragment(),\n        previousSibling = list.previousElementSibling || list.previousSibling,\n        firstChild,\n        lastChild,\n        isLastChild,\n        shouldAppendLineBreak,\n        listItem;\n    \n    if (previousSibling && !_isBlockElement(previousSibling)) {\n      _appendLineBreak(fragment);\n    }\n    \n    while (listItem = list.firstChild) {\n      lastChild = listItem.lastChild;\n      while (firstChild = listItem.firstChild) {\n        isLastChild           = firstChild === lastChild;\n        // This needs to be done before appending it to the fragment, as it otherwise will loose style information\n        shouldAppendLineBreak = isLastChild && !_isBlockElement(firstChild) && !_isLineBreak(firstChild);\n        fragment.appendChild(firstChild);\n        if (shouldAppendLineBreak) {\n          _appendLineBreak(fragment);\n        }\n      }\n      \n      listItem.parentNode.removeChild(listItem);\n    }\n    list.parentNode.replaceChild(fragment, list);\n  }\n  \n  dom.resolveList = resolveList;\n})(wysihtml5.dom);/**\n * Sandbox for executing javascript, parsing css styles and doing dom operations in a secure way\n *\n * Browser Compatibility:\n *  - Secure in MSIE 6+, but only when the user hasn't made changes to his security level \"restricted\"\n *  - Partially secure in other browsers (Firefox, Opera, Safari, Chrome, ...)\n *\n * Please note that this class can't benefit from the HTML5 sandbox attribute for the following reasons:\n *    - sandboxing doesn't work correctly with inlined content (src=\"javascript:'<html>...</html>'\")\n *    - sandboxing of physical documents causes that the dom isn't accessible anymore from the outside (iframe.contentWindow, ...)\n *    - setting the \"allow-same-origin\" flag would fix that, but then still javascript and dom events refuse to fire\n *    - therefore the \"allow-scripts\" flag is needed, which then would deactivate any security, as the js executed inside the iframe\n *      can do anything as if the sandbox attribute wasn't set\n *\n * @param {Function} [readyCallback] Method that gets invoked when the sandbox is ready\n * @param {Object} [config] Optional parameters\n *\n * @example\n *    new wysihtml5.dom.Sandbox(function(sandbox) {\n *      sandbox.getWindow().document.body.innerHTML = '<img src=foo.gif onerror=\"alert(document.cookie)\">';\n *    });\n */\n(function(wysihtml5) {\n  var /**\n       * Default configuration\n       */\n      doc                 = document,\n      /**\n       * Properties to unset/protect on the window object\n       */\n      windowProperties    = [\n        \"parent\", \"top\", \"opener\", \"frameElement\", \"frames\",\n        \"localStorage\", \"globalStorage\", \"sessionStorage\", \"indexedDB\"\n      ],\n      /**\n       * Properties on the window object which are set to an empty function\n       */\n      windowProperties2   = [\n        \"open\", \"close\", \"openDialog\", \"showModalDialog\",\n        \"alert\", \"confirm\", \"prompt\",\n        \"openDatabase\", \"postMessage\",\n        \"XMLHttpRequest\", \"XDomainRequest\"\n      ],\n      /**\n       * Properties to unset/protect on the document object\n       */\n      documentProperties  = [\n        \"referrer\",\n        \"write\", \"open\", \"close\"\n      ];\n  \n  wysihtml5.dom.Sandbox = Base.extend(\n    /** @scope wysihtml5.dom.Sandbox.prototype */ {\n\n    constructor: function(readyCallback, config) {\n      this.callback = readyCallback || wysihtml5.EMPTY_FUNCTION;\n      this.config   = wysihtml5.lang.object({}).merge(config).get();\n      this.iframe   = this._createIframe();\n    },\n    \n    insertInto: function(element) {\n      if (typeof(element) === \"string\") {\n        element = doc.getElementById(element);\n      }\n      \n      element.appendChild(this.iframe);\n    },\n\n    getIframe: function() {\n      return this.iframe;\n    },\n\n    getWindow: function() {\n      this._readyError();\n    },\n\n    getDocument: function() {\n      this._readyError();\n    },\n\n    destroy: function() {\n      var iframe = this.getIframe();\n      iframe.parentNode.removeChild(iframe);\n    },\n\n    _readyError: function() {\n      throw new Error(\"wysihtml5.Sandbox: Sandbox iframe isn't loaded yet\");\n    },\n\n    /**\n     * Creates the sandbox iframe\n     *\n     * Some important notes:\n     *  - We can't use HTML5 sandbox for now:\n     *    setting it causes that the iframe's dom can't be accessed from the outside\n     *    Therefore we need to set the \"allow-same-origin\" flag which enables accessing the iframe's dom\n     *    But then there's another problem, DOM events (focus, blur, change, keypress, ...) aren't fired.\n     *    In order to make this happen we need to set the \"allow-scripts\" flag.\n     *    A combination of allow-scripts and allow-same-origin is almost the same as setting no sandbox attribute at all.\n     *  - Chrome & Safari, doesn't seem to support sandboxing correctly when the iframe's html is inlined (no physical document)\n     *  - IE needs to have the security=\"restricted\" attribute set before the iframe is \n     *    inserted into the dom tree\n     *  - Believe it or not but in IE \"security\" in document.createElement(\"iframe\") is false, even\n     *    though it supports it\n     *  - When an iframe has security=\"restricted\", in IE eval() & execScript() don't work anymore\n     *  - IE doesn't fire the onload event when the content is inlined in the src attribute, therefore we rely\n     *    on the onreadystatechange event\n     */\n    _createIframe: function() {\n      var that   = this,\n          iframe = doc.createElement(\"iframe\");\n      iframe.className = \"wysihtml5-sandbox\";\n      wysihtml5.dom.setAttributes({\n        \"security\":           \"restricted\",\n        \"allowtransparency\":  \"true\",\n        \"frameborder\":        0,\n        \"width\":              0,\n        \"height\":             0,\n        \"marginwidth\":        0,\n        \"marginheight\":       0\n      }).on(iframe);\n\n      // Setting the src like this prevents ssl warnings in IE6\n      if (wysihtml5.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()) {\n        iframe.src = \"javascript:'<html></html>'\";\n      }\n\n      iframe.onload = function() {\n        iframe.onreadystatechange = iframe.onload = null;\n        that._onLoadIframe(iframe);\n      };\n\n      iframe.onreadystatechange = function() {\n        if (/loaded|complete/.test(iframe.readyState)) {\n          iframe.onreadystatechange = iframe.onload = null;\n          that._onLoadIframe(iframe);\n        }\n      };\n\n      return iframe;\n    },\n\n    /**\n     * Callback for when the iframe has finished loading\n     */\n    _onLoadIframe: function(iframe) {\n      // don't resume when the iframe got unloaded (eg. by removing it from the dom)\n      if (!wysihtml5.dom.contains(doc.documentElement, iframe)) {\n        return;\n      }\n\n      var that           = this,\n          iframeWindow   = iframe.contentWindow,\n          iframeDocument = iframe.contentWindow.document,\n          charset        = doc.characterSet || doc.charset || \"utf-8\",\n          sandboxHtml    = this._getHtml({\n            charset:      charset,\n            stylesheets:  this.config.stylesheets\n          });\n\n      // Create the basic dom tree including proper DOCTYPE and charset\n      iframeDocument.open(\"text/html\", \"replace\");\n      iframeDocument.write(sandboxHtml);\n      iframeDocument.close();\n\n      this.getWindow = function() { return iframe.contentWindow; };\n      this.getDocument = function() { return iframe.contentWindow.document; };\n\n      // Catch js errors and pass them to the parent's onerror event\n      // addEventListener(\"error\") doesn't work properly in some browsers\n      // TODO: apparently this doesn't work in IE9!\n      iframeWindow.onerror = function(errorMessage, fileName, lineNumber) {\n        throw new Error(\"wysihtml5.Sandbox: \" + errorMessage, fileName, lineNumber);\n      };\n\n      if (!wysihtml5.browser.supportsSandboxedIframes()) {\n        // Unset a bunch of sensitive variables\n        // Please note: This isn't hack safe!  \n        // It more or less just takes care of basic attacks and prevents accidental theft of sensitive information\n        // IE is secure though, which is the most important thing, since IE is the only browser, who\n        // takes over scripts & styles into contentEditable elements when copied from external websites\n        // or applications (Microsoft Word, ...)\n        var i, length;\n        for (i=0, length=windowProperties.length; i<length; i++) {\n          this._unset(iframeWindow, windowProperties[i]);\n        }\n        for (i=0, length=windowProperties2.length; i<length; i++) {\n          this._unset(iframeWindow, windowProperties2[i], wysihtml5.EMPTY_FUNCTION);\n        }\n        for (i=0, length=documentProperties.length; i<length; i++) {\n          this._unset(iframeDocument, documentProperties[i]);\n        }\n        // This doesn't work in Safari 5 \n        // See http://stackoverflow.com/questions/992461/is-it-possible-to-override-document-cookie-in-webkit\n        this._unset(iframeDocument, \"cookie\", \"\", true);\n      }\n\n      this.loaded = true;\n\n      // Trigger the callback\n      setTimeout(function() { that.callback(that); }, 0);\n    },\n\n    _getHtml: function(templateVars) {\n      var stylesheets = templateVars.stylesheets,\n          html        = \"\",\n          i           = 0,\n          length;\n      stylesheets = typeof(stylesheets) === \"string\" ? [stylesheets] : stylesheets;\n      if (stylesheets) {\n        length = stylesheets.length;\n        for (; i<length; i++) {\n          html += '<link rel=\"stylesheet\" href=\"' + stylesheets[i] + '\">';\n        }\n      }\n      templateVars.stylesheets = html;\n\n      return wysihtml5.lang.string(\n        '<!DOCTYPE html><html><head>'\n        + '<meta charset=\"#{charset}\">#{stylesheets}</head>'\n        + '<body></body></html>'\n      ).interpolate(templateVars);\n    },\n\n    /**\n     * Method to unset/override existing variables\n     * @example\n     *    // Make cookie unreadable and unwritable\n     *    this._unset(document, \"cookie\", \"\", true);\n     */\n    _unset: function(object, property, value, setter) {\n      try { object[property] = value; } catch(e) {}\n\n      try { object.__defineGetter__(property, function() { return value; }); } catch(e) {}\n      if (setter) {\n        try { object.__defineSetter__(property, function() {}); } catch(e) {}\n      }\n\n      if (!wysihtml5.browser.crashesWhenDefineProperty(property)) {\n        try {\n          var config = {\n            get: function() { return value; }\n          };\n          if (setter) {\n            config.set = function() {};\n          }\n          Object.defineProperty(object, property, config);\n        } catch(e) {}\n      }\n    }\n  });\n})(wysihtml5);\n(function() {\n  var mapping = {\n    \"className\": \"class\"\n  };\n  wysihtml5.dom.setAttributes = function(attributes) {\n    return {\n      on: function(element) {\n        for (var i in attributes) {\n          element.setAttribute(mapping[i] || i, attributes[i]);\n        }\n      }\n    }\n  };\n})();wysihtml5.dom.setStyles = function(styles) {\n  return {\n    on: function(element) {\n      var style = element.style;\n      if (typeof(styles) === \"string\") {\n        style.cssText += \";\" + styles;\n        return;\n      }\n      for (var i in styles) {\n        if (i === \"float\") {\n          style.cssFloat = styles[i];\n          style.styleFloat = styles[i];\n        } else {\n          style[i] = styles[i];\n        }\n      }\n    }\n  };\n};/**\n * Simulate HTML5 placeholder attribute\n *\n * Needed since\n *    - div[contentEditable] elements don't support it\n *    - older browsers (such as IE8 and Firefox 3.6) don't support it at all\n *\n * @param {Object} parent Instance of main wysihtml5.Editor class\n * @param {Element} view Instance of wysihtml5.views.* class\n * @param {String} placeholderText\n *\n * @example\n *    wysihtml.dom.simulatePlaceholder(this, composer, \"Foobar\");\n */\n(function(dom) {\n  dom.simulatePlaceholder = function(editor, view, placeholderText) {\n    var CLASS_NAME = \"placeholder\",\n        unset = function() {\n          if (view.hasPlaceholderSet()) {\n            view.clear();\n          }\n          dom.removeClass(view.element, CLASS_NAME);\n        },\n        set = function() {\n          if (view.isEmpty()) {\n            view.setValue(placeholderText);\n            dom.addClass(view.element, CLASS_NAME);\n          }\n        };\n\n    editor\n      .observe(\"set_placeholder\", set)\n      .observe(\"unset_placeholder\", unset)\n      .observe(\"focus:composer\", unset)\n      .observe(\"paste:composer\", unset)\n      .observe(\"blur:composer\", set);\n\n    set();\n  };\n})(wysihtml5.dom);\n(function(dom) {\n  var documentElement = document.documentElement;\n  if (\"textContent\" in documentElement) {\n    dom.setTextContent = function(element, text) {\n      element.textContent = text;\n    };\n\n    dom.getTextContent = function(element) {\n      return element.textContent;\n    };\n  } else if (\"innerText\" in documentElement) {\n    dom.setTextContent = function(element, text) {\n      element.innerText = text;\n    };\n\n    dom.getTextContent = function(element) {\n      return element.innerText;\n    };\n  } else {\n    dom.setTextContent = function(element, text) {\n      element.nodeValue = text;\n    };\n\n    dom.getTextContent = function(element) {\n      return element.nodeValue;\n    };\n  }\n})(wysihtml5.dom);\n\n/**\n * Fix most common html formatting misbehaviors of browsers implementation when inserting\n * content via copy & paste contentEditable\n *\n * @author Christopher Blum\n */\nwysihtml5.quirks.cleanPastedHTML = (function() {\n  // TODO: We probably need more rules here\n  var defaultRules = {\n    // When pasting underlined links <a> into a contentEditable, IE thinks, it has to insert <u> to keep the styling\n    \"a u\": wysihtml5.dom.replaceWithChildNodes\n  };\n  \n  function cleanPastedHTML(elementOrHtml, rules, context) {\n    rules   = rules || defaultRules;\n    context = context || elementOrHtml.ownerDocument || document;\n    \n    var element,\n        isString = typeof(elementOrHtml) === \"string\",\n        method,\n        matches,\n        matchesLength,\n        i,\n        j = 0;\n    if (isString) {\n      element = wysihtml5.dom.getAsDom(elementOrHtml, context);\n    } else {\n      element = elementOrHtml;\n    }\n    \n    for (i in rules) {\n      matches       = element.querySelectorAll(i);\n      method        = rules[i];\n      matchesLength = matches.length;\n      for (; j<matchesLength; j++) {\n        method(matches[j]);\n      }\n    }\n    \n    matches = elementOrHtml = rules = null;\n    \n    return isString ? element.innerHTML : element;\n  }\n  \n  return cleanPastedHTML;\n})();/**\n * IE and Opera leave an empty paragraph in the contentEditable element after clearing it\n *\n * @param {Object} contentEditableElement The contentEditable element to observe for clearing events\n * @exaple\n *    wysihtml5.quirks.ensureProperClearing(myContentEditableElement);\n */\n(function(wysihtml5) {\n  var dom = wysihtml5.dom;\n  \n  wysihtml5.quirks.ensureProperClearing = (function() {\n    var clearIfNecessary = function(event) {\n      var element = this;\n      setTimeout(function() {\n        var innerHTML = element.innerHTML.toLowerCase();\n        if (innerHTML == \"<p>&nbsp;</p>\" ||\n            innerHTML == \"<p>&nbsp;</p><p>&nbsp;</p>\") {\n          element.innerHTML = \"\";\n        }\n      }, 0);\n    };\n\n    return function(composer) {\n      dom.observe(composer.element, [\"cut\", \"keydown\"], clearIfNecessary);\n    };\n  })();\n\n\n\n  /**\n   * In Opera when the caret is in the first and only item of a list (<ul><li>|</li></ul>) and the list is the first child of the contentEditable element, it's impossible to delete the list by hitting backspace\n   *\n   * @param {Object} contentEditableElement The contentEditable element to observe for clearing events\n   * @exaple\n   *    wysihtml5.quirks.ensureProperClearing(myContentEditableElement);\n   */\n  wysihtml5.quirks.ensureProperClearingOfLists = (function() {\n    var ELEMENTS_THAT_CONTAIN_LI = [\"OL\", \"UL\", \"MENU\"];\n\n    var clearIfNecessary = function(element, contentEditableElement) {\n      if (!contentEditableElement.firstChild || !wysihtml5.lang.array(ELEMENTS_THAT_CONTAIN_LI).contains(contentEditableElement.firstChild.nodeName)) {\n        return;\n      }\n\n      var list = dom.getParentElement(element, { nodeName: ELEMENTS_THAT_CONTAIN_LI });\n      if (!list) {\n        return;\n      }\n\n      var listIsFirstChildOfContentEditable = list == contentEditableElement.firstChild;\n      if (!listIsFirstChildOfContentEditable) {\n        return;\n      }\n\n      var hasOnlyOneListItem = list.childNodes.length <= 1;\n      if (!hasOnlyOneListItem) {\n        return;\n      }\n\n      var onlyListItemIsEmpty = list.firstChild ? list.firstChild.innerHTML === \"\" : true;\n      if (!onlyListItemIsEmpty) {\n        return;\n      }\n\n      list.parentNode.removeChild(list);\n    };\n\n    return function(composer) {\n      dom.observe(composer.element, \"keydown\", function(event) {\n        if (event.keyCode !== wysihtml5.BACKSPACE_KEY) {\n          return;\n        }\n\n        var element = composer.selection.getSelectedNode();\n        clearIfNecessary(element, composer.element);\n      });\n    };\n  })();\n\n})(wysihtml5);\n// See https://bugzilla.mozilla.org/show_bug.cgi?id=664398\n//\n// In Firefox this:\n//      var d = document.createElement(\"div\");\n//      d.innerHTML ='<a href=\"~\"></a>';\n//      d.innerHTML;\n// will result in:\n//      <a href=\"%7E\"></a>\n// which is wrong\n(function(wysihtml5) {\n  var TILDE_ESCAPED = \"%7E\";\n  wysihtml5.quirks.getCorrectInnerHTML = function(element) {\n    var innerHTML = element.innerHTML;\n    if (innerHTML.indexOf(TILDE_ESCAPED) === -1) {\n      return innerHTML;\n    }\n    \n    var elementsWithTilde = element.querySelectorAll(\"[href*='~'], [src*='~']\"),\n        url,\n        urlToSearch,\n        length,\n        i;\n    for (i=0, length=elementsWithTilde.length; i<length; i++) {\n      url         = elementsWithTilde[i].href || elementsWithTilde[i].src;\n      urlToSearch = wysihtml5.lang.string(url).replace(\"~\").by(TILDE_ESCAPED);\n      innerHTML   = wysihtml5.lang.string(innerHTML).replace(urlToSearch).by(url);\n    }\n    return innerHTML;\n  };\n})(wysihtml5);/**\n * Some browsers don't insert line breaks when hitting return in a contentEditable element\n *    - Opera & IE insert new <p> on return\n *    - Chrome & Safari insert new <div> on return\n *    - Firefox inserts <br> on return (yippie!)\n *\n * @param {Element} element\n *\n * @example\n *    wysihtml5.quirks.insertLineBreakOnReturn(element);\n */\n(function(wysihtml5) {\n  var dom                                           = wysihtml5.dom,\n      USE_NATIVE_LINE_BREAK_WHEN_CARET_INSIDE_TAGS  = [\"LI\", \"P\", \"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"],\n      LIST_TAGS                                     = [\"UL\", \"OL\", \"MENU\"];\n  \n  wysihtml5.quirks.insertLineBreakOnReturn = function(composer) {\n    function unwrap(selectedNode) {\n      var parentElement = dom.getParentElement(selectedNode, { nodeName: [\"P\", \"DIV\"] }, 2);\n      if (!parentElement) {\n        return;\n      }\n\n      var invisibleSpace = document.createTextNode(wysihtml5.INVISIBLE_SPACE);\n      dom.insert(invisibleSpace).before(parentElement);\n      dom.replaceWithChildNodes(parentElement);\n      composer.selection.selectNode(invisibleSpace);\n    }\n\n    function keyDown(event) {\n      var keyCode = event.keyCode;\n      if (event.shiftKey || (keyCode !== wysihtml5.ENTER_KEY && keyCode !== wysihtml5.BACKSPACE_KEY)) {\n        return;\n      }\n\n      var element         = event.target,\n          selectedNode    = composer.selection.getSelectedNode(),\n          blockElement    = dom.getParentElement(selectedNode, { nodeName: USE_NATIVE_LINE_BREAK_WHEN_CARET_INSIDE_TAGS }, 4);\n      if (blockElement) {\n        // Some browsers create <p> elements after leaving a list\n        // check after keydown of backspace and return whether a <p> got inserted and unwrap it\n        if (blockElement.nodeName === \"LI\" && (keyCode === wysihtml5.ENTER_KEY || keyCode === wysihtml5.BACKSPACE_KEY)) {\n          setTimeout(function() {\n            var selectedNode = composer.selection.getSelectedNode(),\n                list,\n                div;\n            if (!selectedNode) {\n              return;\n            }\n\n            list = dom.getParentElement(selectedNode, {\n              nodeName: LIST_TAGS\n            }, 2);\n\n            if (list) {\n              return;\n            }\n\n            unwrap(selectedNode);\n          }, 0);\n        } else if (blockElement.nodeName.match(/H[1-6]/) && keyCode === wysihtml5.ENTER_KEY) {\n          setTimeout(function() {\n            unwrap(composer.selection.getSelectedNode());\n          }, 0);\n        } \n        return;\n      }\n\n      if (keyCode === wysihtml5.ENTER_KEY && !wysihtml5.browser.insertsLineBreaksOnReturn()) {\n        composer.commands.exec(\"insertLineBreak\");\n        event.preventDefault();\n      }\n    }\n    \n    // keypress doesn't fire when you hit backspace\n    dom.observe(composer.element.ownerDocument, \"keydown\", keyDown);\n  };\n})(wysihtml5);/**\n * Force rerendering of a given element\n * Needed to fix display misbehaviors of IE\n *\n * @param {Element} element The element object which needs to be rerendered\n * @example\n *    wysihtml5.quirks.redraw(document.body);\n */\n(function(wysihtml5) {\n  var CLASS_NAME = \"wysihtml5-quirks-redraw\";\n  \n  wysihtml5.quirks.redraw = function(element) {\n    wysihtml5.dom.addClass(element, CLASS_NAME);\n    wysihtml5.dom.removeClass(element, CLASS_NAME);\n    \n    // Following hack is needed for firefox to make sure that image resize handles are properly removed\n    try {\n      var doc = element.ownerDocument;\n      doc.execCommand(\"italic\", false, null);\n      doc.execCommand(\"italic\", false, null);\n    } catch(e) {}\n  };\n})(wysihtml5);/**\n * Selection API\n *\n * @example\n *    var selection = new wysihtml5.Selection(editor);\n */\n(function(wysihtml5) {\n  var dom = wysihtml5.dom;\n  \n  function _getCumulativeOffsetTop(element) {\n    var top = 0;\n    if (element.parentNode) {\n      do {\n        top += element.offsetTop || 0;\n        element = element.offsetParent;\n      } while (element);\n    }\n    return top;\n  }\n  \n  wysihtml5.Selection = Base.extend(\n    /** @scope wysihtml5.Selection.prototype */ {\n    constructor: function(editor) {\n      // Make sure that our external range library is initialized\n      window.rangy.init();\n      \n      this.editor   = editor;\n      this.composer = editor.composer;\n      this.doc      = this.composer.doc;\n    },\n    \n    /**\n     * Get the current selection as a bookmark to be able to later restore it\n     *\n     * @return {Object} An object that represents the current selection\n     */\n    getBookmark: function() {\n      var range = this.getRange();\n      return range && range.cloneRange();\n    },\n\n    /**\n     * Restore a selection retrieved via wysihtml5.Selection.prototype.getBookmark\n     *\n     * @param {Object} bookmark An object that represents the current selection\n     */\n    setBookmark: function(bookmark) {\n      if (!bookmark) {\n        return;\n      }\n\n      this.setSelection(bookmark);\n    },\n\n    /**\n     * Set the caret in front of the given node\n     *\n     * @param {Object} node The element or text node where to position the caret in front of\n     * @example\n     *    selection.setBefore(myElement);\n     */\n    setBefore: function(node) {\n      var range = rangy.createRange(this.doc);\n      range.setStartBefore(node);\n      range.setEndBefore(node);\n      return this.setSelection(range);\n    },\n\n    /**\n     * Set the caret after the given node\n     *\n     * @param {Object} node The element or text node where to position the caret in front of\n     * @example\n     *    selection.setBefore(myElement);\n     */\n    setAfter: function(node) {\n      var range = rangy.createRange(this.doc);\n      range.setStartAfter(node);\n      range.setEndAfter(node);\n      return this.setSelection(range);\n    },\n\n    /**\n     * Ability to select/mark nodes\n     *\n     * @param {Element} node The node/element to select\n     * @example\n     *    selection.selectNode(document.getElementById(\"my-image\"));\n     */\n    selectNode: function(node) {\n      var range           = rangy.createRange(this.doc),\n          isElement       = node.nodeType === wysihtml5.ELEMENT_NODE,\n          canHaveHTML     = \"canHaveHTML\" in node ? node.canHaveHTML : (node.nodeName !== \"IMG\"),\n          content         = isElement ? node.innerHTML : node.data,\n          isEmpty         = (content === \"\" || content === wysihtml5.INVISIBLE_SPACE),\n          displayStyle    = dom.getStyle(\"display\").from(node),\n          isBlockElement  = (displayStyle === \"block\" || displayStyle === \"list-item\");\n\n      if (isEmpty && isElement && canHaveHTML) {\n        // Make sure that caret is visible in node by inserting a zero width no breaking space\n        try { node.innerHTML = wysihtml5.INVISIBLE_SPACE; } catch(e) {}\n      }\n\n      if (canHaveHTML) {\n        range.selectNodeContents(node);\n      } else {\n        range.selectNode(node);\n      }\n\n      if (canHaveHTML && isEmpty && isElement) {\n        range.collapse(isBlockElement);\n      } else if (canHaveHTML && isEmpty) {\n        range.setStartAfter(node);\n        range.setEndAfter(node);\n      }\n\n      this.setSelection(range);\n    },\n\n    /**\n     * Get the node which contains the selection\n     *\n     * @param {Boolean} [controlRange] (only IE) Whether it should return the selected ControlRange element when the selection type is a \"ControlRange\"\n     * @return {Object} The node that contains the caret\n     * @example\n     *    var nodeThatContainsCaret = selection.getSelectedNode();\n     */\n    getSelectedNode: function(controlRange) {\n      var selection,\n          range;\n\n      if (controlRange && this.doc.selection && this.doc.selection.type === \"Control\") {\n        range = this.doc.selection.createRange();\n        if (range && range.length) {\n          return range.item(0);\n        }\n      }\n\n      selection = this.getSelection(this.doc);\n      if (selection.focusNode === selection.anchorNode) {\n        return selection.focusNode;\n      } else {\n        range = this.getRange(this.doc);\n        return range ? range.commonAncestorContainer : this.doc.body;\n      }\n    },\n\n    executeAndRestore: function(method, restoreScrollPosition) {\n      var body                  = this.doc.body,\n          oldScrollTop          = restoreScrollPosition && body.scrollTop,\n          oldScrollLeft         = restoreScrollPosition && body.scrollLeft,\n          className             = \"_wysihtml5-temp-placeholder\",\n          placeholderHTML       = '<span class=\"' + className + '\">' + wysihtml5.INVISIBLE_SPACE + '</span>',\n          range                 = this.getRange(this.doc),\n          newRange;\n      \n      // Nothing selected, execute and say goodbye\n      if (!range) {\n        method(body, body);\n        return;\n      }\n      \n      var node = range.createContextualFragment(placeholderHTML);\n      range.insertNode(node);\n      \n      // Make sure that a potential error doesn't cause our placeholder element to be left as a placeholder\n      try {\n        method(range.startContainer, range.endContainer);\n      } catch(e3) {\n        setTimeout(function() { throw e3; }, 0);\n      }\n      \n      caretPlaceholder = this.doc.querySelector(\".\" + className);\n      if (caretPlaceholder) {\n        newRange = rangy.createRange(this.doc);\n        newRange.selectNode(caretPlaceholder);\n        newRange.deleteContents();\n        this.setSelection(newRange);\n      } else {\n        // fallback for when all hell breaks loose\n        body.focus();\n      }\n\n      if (restoreScrollPosition) {\n        body.scrollTop  = oldScrollTop;\n        body.scrollLeft = oldScrollLeft;\n      }\n\n      // Remove it again, just to make sure that the placeholder is definitely out of the dom tree\n      try {\n        caretPlaceholder.parentNode.removeChild(caretPlaceholder);\n      } catch(e4) {}\n    },\n\n    /**\n     * Different approach of preserving the selection (doesn't modify the dom)\n     * Takes all text nodes in the selection and saves the selection position in the first and last one\n     */\n    executeAndRestoreSimple: function(method) {\n      var range = this.getRange(),\n          body  = this.doc.body,\n          newRange,\n          firstNode,\n          lastNode,\n          textNodes,\n          rangeBackup;\n\n      // Nothing selected, execute and say goodbye\n      if (!range) {\n        method(body, body);\n        return;\n      }\n\n      textNodes = range.getNodes([3]);\n      firstNode = textNodes[0] || range.startContainer;\n      lastNode  = textNodes[textNodes.length - 1] || range.endContainer;\n\n      rangeBackup = {\n        collapsed:      range.collapsed,\n        startContainer: firstNode,\n        startOffset:    firstNode === range.startContainer ? range.startOffset : 0,\n        endContainer:   lastNode,\n        endOffset:      lastNode === range.endContainer ? range.endOffset : lastNode.length\n      };\n\n      try {\n        method(range.startContainer, range.endContainer);\n      } catch(e) {\n        setTimeout(function() { throw e; }, 0);\n      }\n\n      newRange = rangy.createRange(this.doc);\n      try { newRange.setStart(rangeBackup.startContainer, rangeBackup.startOffset); } catch(e1) {}\n      try { newRange.setEnd(rangeBackup.endContainer, rangeBackup.endOffset); } catch(e2) {}\n      try { this.setSelection(newRange); } catch(e3) {}\n    },\n\n    /**\n     * Insert html at the caret position and move the cursor after the inserted html\n     *\n     * @param {String} html HTML string to insert\n     * @example\n     *    selection.insertHTML(\"<p>foobar</p>\");\n     */\n    insertHTML: function(html) {\n      var range     = rangy.createRange(this.doc),\n          node      = range.createContextualFragment(html),\n          lastChild = node.lastChild;\n      this.insertNode(node);\n      if (lastChild) {\n        this.setAfter(lastChild);\n      }\n    },\n\n    /**\n     * Insert a node at the caret position and move the cursor behind it\n     *\n     * @param {Object} node HTML string to insert\n     * @example\n     *    selection.insertNode(document.createTextNode(\"foobar\"));\n     */\n    insertNode: function(node) {\n      var range = this.getRange();\n      if (range) {\n        range.insertNode(node);\n      }\n    },\n\n    /**\n     * Wraps current selection with the given node\n     *\n     * @param {Object} node The node to surround the selected elements with\n     */\n    surround: function(node) {\n      var range = this.getRange();\n      if (!range) {\n        return;\n      }\n\n      try {\n        // This only works when the range boundaries are not overlapping other elements\n        range.surroundContents(node);\n        this.selectNode(node);\n      } catch(e) {\n        // fallback\n        node.appendChild(range.extractContents());\n        range.insertNode(node);\n      }\n    },\n\n    /**\n     * Scroll the current caret position into the view\n     * FIXME: This is a bit hacky, there might be a smarter way of doing this\n     *\n     * @example\n     *    selection.scrollIntoView();\n     */\n    scrollIntoView: function() {\n      var doc           = this.doc,\n          hasScrollBars = doc.documentElement.scrollHeight > doc.documentElement.offsetHeight,\n          tempElement   = doc._wysihtml5ScrollIntoViewElement = doc._wysihtml5ScrollIntoViewElement || (function() {\n            var element = doc.createElement(\"span\");\n            // The element needs content in order to be able to calculate it's position properly\n            element.innerHTML = wysihtml5.INVISIBLE_SPACE;\n            return element;\n          })(),\n          offsetTop;\n\n      if (hasScrollBars) {\n        this.insertNode(tempElement);\n        offsetTop = _getCumulativeOffsetTop(tempElement);\n        tempElement.parentNode.removeChild(tempElement);\n        if (offsetTop > doc.body.scrollTop) {\n          doc.body.scrollTop = offsetTop;\n        }\n      }\n    },\n\n    /**\n     * Select line where the caret is in\n     */\n    selectLine: function() {\n      if (wysihtml5.browser.supportsSelectionModify()) {\n        this._selectLine_W3C();\n      } else if (this.doc.selection) {\n        this._selectLine_MSIE();\n      }\n    },\n\n    /**\n     * See https://developer.mozilla.org/en/DOM/Selection/modify\n     */\n    _selectLine_W3C: function() {\n      var win       = this.doc.defaultView,\n          selection = win.getSelection();\n      selection.modify(\"extend\", \"left\", \"lineboundary\");\n      selection.modify(\"extend\", \"right\", \"lineboundary\");\n    },\n\n    _selectLine_MSIE: function() {\n      var range       = this.doc.selection.createRange(),\n          rangeTop    = range.boundingTop,\n          rangeHeight = range.boundingHeight,\n          scrollWidth = this.doc.body.scrollWidth,\n          rangeBottom,\n          rangeEnd,\n          measureNode,\n          i,\n          j;\n\n      if (!range.moveToPoint) {\n        return;\n      }\n\n      if (rangeTop === 0) {\n        // Don't know why, but when the selection ends at the end of a line\n        // range.boundingTop is 0\n        measureNode = this.doc.createElement(\"span\");\n        this.insertNode(measureNode);\n        rangeTop = measureNode.offsetTop;\n        measureNode.parentNode.removeChild(measureNode);\n      }\n\n      rangeTop += 1;\n\n      for (i=-10; i<scrollWidth; i+=2) {\n        try {\n          range.moveToPoint(i, rangeTop);\n          break;\n        } catch(e1) {}\n      }\n\n      // Investigate the following in order to handle multi line selections\n      // rangeBottom = rangeTop + (rangeHeight ? (rangeHeight - 1) : 0);\n      rangeBottom = rangeTop;\n      rangeEnd = this.doc.selection.createRange();\n      for (j=scrollWidth; j>=0; j--) {\n        try {\n          rangeEnd.moveToPoint(j, rangeBottom);\n          break;\n        } catch(e2) {}\n      }\n\n      range.setEndPoint(\"EndToEnd\", rangeEnd);\n      range.select();\n    },\n\n    getText: function() {\n      var selection = this.getSelection();\n      return selection ? selection.toString() : \"\";\n    },\n\n    getNodes: function(nodeType, filter) {\n      var range = this.getRange();\n      if (range) {\n        return range.getNodes([nodeType], filter);\n      } else {\n        return [];\n      }\n    },\n    \n    getRange: function() {\n      var selection = this.getSelection();\n      return selection && selection.rangeCount && selection.getRangeAt(0);\n    },\n\n    getSelection: function() {\n      return rangy.getSelection(this.doc.defaultView || this.doc.parentWindow);\n    },\n\n    setSelection: function(range) {\n      var win       = this.doc.defaultView || this.doc.parentWindow,\n          selection = rangy.getSelection(win);\n      return selection.setSingleRange(range);\n    }\n  });\n  \n})(wysihtml5);\n/**\n * Inspired by the rangy CSS Applier module written by Tim Down and licensed under the MIT license.\n * http://code.google.com/p/rangy/\n *\n * changed in order to be able ...\n *    - to use custom tags\n *    - to detect and replace similar css classes via reg exp\n */\n(function(wysihtml5, rangy) {\n  var defaultTagName = \"span\";\n  \n  var REG_EXP_WHITE_SPACE = /\\s+/g;\n  \n  function hasClass(el, cssClass, regExp) {\n    if (!el.className) {\n      return false;\n    }\n    \n    var matchingClassNames = el.className.match(regExp) || [];\n    return matchingClassNames[matchingClassNames.length - 1] === cssClass;\n  }\n\n  function addClass(el, cssClass, regExp) {\n    if (el.className) {\n      removeClass(el, regExp);\n      el.className += \" \" + cssClass;\n    } else {\n      el.className = cssClass;\n    }\n  }\n\n  function removeClass(el, regExp) {\n    if (el.className) {\n      el.className = el.className.replace(regExp, \"\");\n    }\n  }\n  \n  function hasSameClasses(el1, el2) {\n    return el1.className.replace(REG_EXP_WHITE_SPACE, \" \") == el2.className.replace(REG_EXP_WHITE_SPACE, \" \");\n  }\n\n  function replaceWithOwnChildren(el) {\n    var parent = el.parentNode;\n    while (el.firstChild) {\n      parent.insertBefore(el.firstChild, el);\n    }\n    parent.removeChild(el);\n  }\n\n  function elementsHaveSameNonClassAttributes(el1, el2) {\n    if (el1.attributes.length != el2.attributes.length) {\n      return false;\n    }\n    for (var i = 0, len = el1.attributes.length, attr1, attr2, name; i < len; ++i) {\n      attr1 = el1.attributes[i];\n      name = attr1.name;\n      if (name != \"class\") {\n        attr2 = el2.attributes.getNamedItem(name);\n        if (attr1.specified != attr2.specified) {\n          return false;\n        }\n        if (attr1.specified && attr1.nodeValue !== attr2.nodeValue) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n\n  function isSplitPoint(node, offset) {\n    if (rangy.dom.isCharacterDataNode(node)) {\n      if (offset == 0) {\n        return !!node.previousSibling;\n      } else if (offset == node.length) {\n        return !!node.nextSibling;\n      } else {\n        return true;\n      }\n    }\n\n    return offset > 0 && offset < node.childNodes.length;\n  }\n\n  function splitNodeAt(node, descendantNode, descendantOffset) {\n    var newNode;\n    if (rangy.dom.isCharacterDataNode(descendantNode)) {\n      if (descendantOffset == 0) {\n        descendantOffset = rangy.dom.getNodeIndex(descendantNode);\n        descendantNode = descendantNode.parentNode;\n      } else if (descendantOffset == descendantNode.length) {\n        descendantOffset = rangy.dom.getNodeIndex(descendantNode) + 1;\n        descendantNode = descendantNode.parentNode;\n      } else {\n        newNode = rangy.dom.splitDataNode(descendantNode, descendantOffset);\n      }\n    }\n    if (!newNode) {\n      newNode = descendantNode.cloneNode(false);\n      if (newNode.id) {\n        newNode.removeAttribute(\"id\");\n      }\n      var child;\n      while ((child = descendantNode.childNodes[descendantOffset])) {\n        newNode.appendChild(child);\n      }\n      rangy.dom.insertAfter(newNode, descendantNode);\n    }\n    return (descendantNode == node) ? newNode : splitNodeAt(node, newNode.parentNode, rangy.dom.getNodeIndex(newNode));\n  }\n  \n  function Merge(firstNode) {\n    this.isElementMerge = (firstNode.nodeType == wysihtml5.ELEMENT_NODE);\n    this.firstTextNode = this.isElementMerge ? firstNode.lastChild : firstNode;\n    this.textNodes = [this.firstTextNode];\n  }\n\n  Merge.prototype = {\n    doMerge: function() {\n      var textBits = [], textNode, parent, text;\n      for (var i = 0, len = this.textNodes.length; i < len; ++i) {\n        textNode = this.textNodes[i];\n        parent = textNode.parentNode;\n        textBits[i] = textNode.data;\n        if (i) {\n          parent.removeChild(textNode);\n          if (!parent.hasChildNodes()) {\n            parent.parentNode.removeChild(parent);\n          }\n        }\n      }\n      this.firstTextNode.data = text = textBits.join(\"\");\n      return text;\n    },\n\n    getLength: function() {\n      var i = this.textNodes.length, len = 0;\n      while (i--) {\n        len += this.textNodes[i].length;\n      }\n      return len;\n    },\n\n    toString: function() {\n      var textBits = [];\n      for (var i = 0, len = this.textNodes.length; i < len; ++i) {\n        textBits[i] = \"'\" + this.textNodes[i].data + \"'\";\n      }\n      return \"[Merge(\" + textBits.join(\",\") + \")]\";\n    }\n  };\n\n  function HTMLApplier(tagNames, cssClass, similarClassRegExp, normalize) {\n    this.tagNames = tagNames || [defaultTagName];\n    this.cssClass = cssClass || \"\";\n    this.similarClassRegExp = similarClassRegExp;\n    this.normalize = normalize;\n    this.applyToAnyTagName = false;\n  }\n\n  HTMLApplier.prototype = {\n    getAncestorWithClass: function(node) {\n      var cssClassMatch;\n      while (node) {\n        cssClassMatch = this.cssClass ? hasClass(node, this.cssClass, this.similarClassRegExp) : true;\n        if (node.nodeType == wysihtml5.ELEMENT_NODE && rangy.dom.arrayContains(this.tagNames, node.tagName.toLowerCase()) && cssClassMatch) {\n          return node;\n        }\n        node = node.parentNode;\n      }\n      return false;\n    },\n\n    // Normalizes nodes after applying a CSS class to a Range.\n    postApply: function(textNodes, range) {\n      var firstNode = textNodes[0], lastNode = textNodes[textNodes.length - 1];\n\n      var merges = [], currentMerge;\n\n      var rangeStartNode = firstNode, rangeEndNode = lastNode;\n      var rangeStartOffset = 0, rangeEndOffset = lastNode.length;\n\n      var textNode, precedingTextNode;\n\n      for (var i = 0, len = textNodes.length; i < len; ++i) {\n        textNode = textNodes[i];\n        precedingTextNode = this.getAdjacentMergeableTextNode(textNode.parentNode, false);\n        if (precedingTextNode) {\n          if (!currentMerge) {\n            currentMerge = new Merge(precedingTextNode);\n            merges.push(currentMerge);\n          }\n          currentMerge.textNodes.push(textNode);\n          if (textNode === firstNode) {\n            rangeStartNode = currentMerge.firstTextNode;\n            rangeStartOffset = rangeStartNode.length;\n          }\n          if (textNode === lastNode) {\n            rangeEndNode = currentMerge.firstTextNode;\n            rangeEndOffset = currentMerge.getLength();\n          }\n        } else {\n          currentMerge = null;\n        }\n      }\n\n      // Test whether the first node after the range needs merging\n      var nextTextNode = this.getAdjacentMergeableTextNode(lastNode.parentNode, true);\n      if (nextTextNode) {\n        if (!currentMerge) {\n          currentMerge = new Merge(lastNode);\n          merges.push(currentMerge);\n        }\n        currentMerge.textNodes.push(nextTextNode);\n      }\n\n      // Do the merges\n      if (merges.length) {\n        for (i = 0, len = merges.length; i < len; ++i) {\n          merges[i].doMerge();\n        }\n        // Set the range boundaries\n        range.setStart(rangeStartNode, rangeStartOffset);\n        range.setEnd(rangeEndNode, rangeEndOffset);\n      }\n    },\n    \n    getAdjacentMergeableTextNode: function(node, forward) {\n        var isTextNode = (node.nodeType == wysihtml5.TEXT_NODE);\n        var el = isTextNode ? node.parentNode : node;\n        var adjacentNode;\n        var propName = forward ? \"nextSibling\" : \"previousSibling\";\n        if (isTextNode) {\n          // Can merge if the node's previous/next sibling is a text node\n          adjacentNode = node[propName];\n          if (adjacentNode && adjacentNode.nodeType == wysihtml5.TEXT_NODE) {\n            return adjacentNode;\n          }\n        } else {\n          // Compare element with its sibling\n          adjacentNode = el[propName];\n          if (adjacentNode && this.areElementsMergeable(node, adjacentNode)) {\n            return adjacentNode[forward ? \"firstChild\" : \"lastChild\"];\n          }\n        }\n        return null;\n    },\n    \n    areElementsMergeable: function(el1, el2) {\n      return rangy.dom.arrayContains(this.tagNames, (el1.tagName || \"\").toLowerCase())\n        && rangy.dom.arrayContains(this.tagNames, (el2.tagName || \"\").toLowerCase())\n        && hasSameClasses(el1, el2)\n        && elementsHaveSameNonClassAttributes(el1, el2);\n    },\n\n    createContainer: function(doc) {\n      var el = doc.createElement(this.tagNames[0]);\n      if (this.cssClass) {\n        el.className = this.cssClass;\n      }\n      return el;\n    },\n\n    applyToTextNode: function(textNode) {\n      var parent = textNode.parentNode;\n      if (parent.childNodes.length == 1 && rangy.dom.arrayContains(this.tagNames, parent.tagName.toLowerCase())) {\n        if (this.cssClass) {\n          addClass(parent, this.cssClass, this.similarClassRegExp);\n        }\n      } else {\n        var el = this.createContainer(rangy.dom.getDocument(textNode));\n        textNode.parentNode.insertBefore(el, textNode);\n        el.appendChild(textNode);\n      }\n    },\n\n    isRemovable: function(el) {\n      return rangy.dom.arrayContains(this.tagNames, el.tagName.toLowerCase()) && wysihtml5.lang.string(el.className).trim() == this.cssClass;\n    },\n\n    undoToTextNode: function(textNode, range, ancestorWithClass) {\n      if (!range.containsNode(ancestorWithClass)) {\n        // Split out the portion of the ancestor from which we can remove the CSS class\n        var ancestorRange = range.cloneRange();\n        ancestorRange.selectNode(ancestorWithClass);\n\n        if (ancestorRange.isPointInRange(range.endContainer, range.endOffset) && isSplitPoint(range.endContainer, range.endOffset)) {\n          splitNodeAt(ancestorWithClass, range.endContainer, range.endOffset);\n          range.setEndAfter(ancestorWithClass);\n        }\n        if (ancestorRange.isPointInRange(range.startContainer, range.startOffset) && isSplitPoint(range.startContainer, range.startOffset)) {\n          ancestorWithClass = splitNodeAt(ancestorWithClass, range.startContainer, range.startOffset);\n        }\n      }\n      \n      if (this.similarClassRegExp) {\n        removeClass(ancestorWithClass, this.similarClassRegExp);\n      }\n      if (this.isRemovable(ancestorWithClass)) {\n        replaceWithOwnChildren(ancestorWithClass);\n      }\n    },\n\n    applyToRange: function(range) {\n        var textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n        if (!textNodes.length) {\n          try {\n            var node = this.createContainer(range.endContainer.ownerDocument);\n            range.surroundContents(node);\n            this.selectNode(range, node);\n            return;\n          } catch(e) {}\n        }\n        \n        range.splitBoundaries();\n        textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n        \n        if (textNodes.length) {\n          var textNode;\n\n          for (var i = 0, len = textNodes.length; i < len; ++i) {\n            textNode = textNodes[i];\n            if (!this.getAncestorWithClass(textNode)) {\n              this.applyToTextNode(textNode);\n            }\n          }\n          \n          range.setStart(textNodes[0], 0);\n          textNode = textNodes[textNodes.length - 1];\n          range.setEnd(textNode, textNode.length);\n          \n          if (this.normalize) {\n            this.postApply(textNodes, range);\n          }\n        }\n    },\n\n    undoToRange: function(range) {\n      var textNodes = range.getNodes([wysihtml5.TEXT_NODE]), textNode, ancestorWithClass;\n      if (textNodes.length) {\n        range.splitBoundaries();\n        textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n      } else {\n        var doc = range.endContainer.ownerDocument,\n            node = doc.createTextNode(wysihtml5.INVISIBLE_SPACE);\n        range.insertNode(node);\n        range.selectNode(node);\n        textNodes = [node];\n      }\n      \n      for (var i = 0, len = textNodes.length; i < len; ++i) {\n        textNode = textNodes[i];\n        ancestorWithClass = this.getAncestorWithClass(textNode);\n        if (ancestorWithClass) {\n          this.undoToTextNode(textNode, range, ancestorWithClass);\n        }\n      }\n      \n      if (len == 1) {\n        this.selectNode(range, textNodes[0]);\n      } else {\n        range.setStart(textNodes[0], 0);\n        textNode = textNodes[textNodes.length - 1];\n        range.setEnd(textNode, textNode.length);\n\n        if (this.normalize) {\n          this.postApply(textNodes, range);\n        }\n      }\n    },\n    \n    selectNode: function(range, node) {\n      var isElement       = node.nodeType === wysihtml5.ELEMENT_NODE,\n          canHaveHTML     = \"canHaveHTML\" in node ? node.canHaveHTML : true,\n          content         = isElement ? node.innerHTML : node.data,\n          isEmpty         = (content === \"\" || content === wysihtml5.INVISIBLE_SPACE);\n\n      if (isEmpty && isElement && canHaveHTML) {\n        // Make sure that caret is visible in node by inserting a zero width no breaking space\n        try { node.innerHTML = wysihtml5.INVISIBLE_SPACE; } catch(e) {}\n      }\n      range.selectNodeContents(node);\n      if (isEmpty && isElement) {\n        range.collapse(false);\n      } else if (isEmpty) {\n        range.setStartAfter(node);\n        range.setEndAfter(node);\n      }\n    },\n    \n    getTextSelectedByRange: function(textNode, range) {\n      var textRange = range.cloneRange();\n      textRange.selectNodeContents(textNode);\n\n      var intersectionRange = textRange.intersection(range);\n      var text = intersectionRange ? intersectionRange.toString() : \"\";\n      textRange.detach();\n\n      return text;\n    },\n\n    isAppliedToRange: function(range) {\n      var ancestors = [],\n          ancestor,\n          textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n      if (!textNodes.length) {\n        ancestor = this.getAncestorWithClass(range.startContainer);\n        return ancestor ? [ancestor] : false;\n      }\n      \n      for (var i = 0, len = textNodes.length, selectedText; i < len; ++i) {\n        selectedText = this.getTextSelectedByRange(textNodes[i], range);\n        ancestor = this.getAncestorWithClass(textNodes[i]);\n        if (selectedText != \"\" && !ancestor) {\n          return false;\n        } else {\n          ancestors.push(ancestor);\n        }\n      }\n      return ancestors;\n    },\n\n    toggleRange: function(range) {\n      if (this.isAppliedToRange(range)) {\n        this.undoToRange(range);\n      } else {\n        this.applyToRange(range);\n      }\n    }\n  };\n\n  wysihtml5.selection.HTMLApplier = HTMLApplier;\n  \n})(wysihtml5, rangy);/**\n * Rich Text Query/Formatting Commands\n * \n * @example\n *    var commands = new wysihtml5.Commands(editor);\n */\nwysihtml5.Commands = Base.extend(\n  /** @scope wysihtml5.Commands.prototype */ {\n  constructor: function(editor) {\n    this.editor   = editor;\n    this.composer = editor.composer;\n    this.doc      = this.composer.doc;\n  },\n  \n  /**\n   * Check whether the browser supports the given command\n   *\n   * @param {String} command The command string which to check (eg. \"bold\", \"italic\", \"insertUnorderedList\")\n   * @example\n   *    commands.supports(\"createLink\");\n   */\n  support: function(command) {\n    return wysihtml5.browser.supportsCommand(this.doc, command);\n  },\n  \n  /**\n   * Check whether the browser supports the given command\n   *\n   * @param {String} command The command string which to execute (eg. \"bold\", \"italic\", \"insertUnorderedList\")\n   * @param {String} [value] The command value parameter, needed for some commands (\"createLink\", \"insertImage\", ...), optional for commands that don't require one (\"bold\", \"underline\", ...)\n   * @example\n   *    commands.exec(\"insertImage\", \"http://a1.twimg.com/profile_images/113868655/schrei_twitter_reasonably_small.jpg\");\n   */\n  exec: function(command, value) {\n    var obj     = wysihtml5.commands[command],\n        args    = wysihtml5.lang.array(arguments).get(),\n        method  = obj && obj.exec,\n        result  = null;\n    \n    this.editor.fire(\"beforecommand:composer\");\n    \n    if (method) {\n      args.unshift(this.composer);\n      result = method.apply(obj, args);\n    } else {\n      try {\n        // try/catch for buggy firefox\n        result = this.doc.execCommand(command, false, value);\n      } catch(e) {}\n    }\n    \n    this.editor.fire(\"aftercommand:composer\");\n    return result;\n  },\n  \n  /**\n   * Check whether the current command is active\n   * If the caret is within a bold text, then calling this with command \"bold\" should return true\n   *\n   * @param {String} command The command string which to check (eg. \"bold\", \"italic\", \"insertUnorderedList\")\n   * @param {String} [commandValue] The command value parameter (eg. for \"insertImage\" the image src)\n   * @return {Boolean} Whether the command is active\n   * @example\n   *    var isCurrentSelectionBold = commands.state(\"bold\");\n   */\n  state: function(command, commandValue) {\n    var obj     = wysihtml5.commands[command],\n        args    = wysihtml5.lang.array(arguments).get(),\n        method  = obj && obj.state;\n    if (method) {\n      args.unshift(this.composer);\n      return method.apply(obj, args);\n    } else {\n      try {\n        // try/catch for buggy firefox\n        return this.doc.queryCommandState(command);\n      } catch(e) {\n        return false;\n      }\n    }\n  },\n  \n  /**\n   * Get the current command's value\n   *\n   * @param {String} command The command string which to check (eg. \"formatBlock\")\n   * @return {String} The command value\n   * @example\n   *    var currentBlockElement = commands.value(\"formatBlock\");\n   */\n  value: function(command) {\n    var obj     = wysihtml5.commands[command],\n        method  = obj && obj.value;\n    if (method) {\n      return method.call(obj, this.composer, command);\n    } else {\n      try {\n        // try/catch for buggy firefox\n        return this.doc.queryCommandValue(command);\n      } catch(e) {\n        return null;\n      }\n    }\n  }\n});\n(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.bold = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"b\");\n    },\n\n    state: function(composer, command, color) {\n      // element.ownerDocument.queryCommandState(\"bold\") results:\n      // firefox: only <b>\n      // chrome:  <b>, <strong>, <h1>, <h2>, ...\n      // ie:      <b>, <strong>\n      // opera:   <b>, <strong>\n      return wysihtml5.commands.formatInline.state(composer, command, \"b\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);\n\n(function(wysihtml5) {\n  var undef,\n      NODE_NAME = \"A\",\n      dom       = wysihtml5.dom;\n  \n  function _removeFormat(composer, anchors) {\n    var length  = anchors.length,\n        i       = 0,\n        anchor,\n        codeElement,\n        textContent;\n    for (; i<length; i++) {\n      anchor      = anchors[i];\n      codeElement = dom.getParentElement(anchor, { nodeName: \"code\" });\n      textContent = dom.getTextContent(anchor);\n\n      // if <a> contains url-like text content, rename it to <code> to prevent re-autolinking\n      // else replace <a> with its childNodes\n      if (textContent.match(dom.autoLink.URL_REG_EXP) && !codeElement) {\n        // <code> element is used to prevent later auto-linking of the content\n        codeElement = dom.renameElement(anchor, \"code\");\n      } else {\n        dom.replaceWithChildNodes(anchor);\n      }\n    }\n  }\n\n  function _format(composer, attributes) {\n    var doc             = composer.doc,\n        tempClass       = \"_wysihtml5-temp-\" + (+new Date()),\n        tempClassRegExp = /non-matching-class/g,\n        i               = 0,\n        length,\n        anchors,\n        anchor,\n        hasElementChild,\n        isEmpty,\n        elementToSetCaretAfter,\n        textContent,\n        whiteSpace,\n        j;\n    wysihtml5.commands.formatInline.exec(composer, undef, NODE_NAME, tempClass, tempClassRegExp);\n    anchors = doc.querySelectorAll(NODE_NAME + \".\" + tempClass);\n    length  = anchors.length;\n    for (; i<length; i++) {\n      anchor = anchors[i];\n      anchor.removeAttribute(\"class\");\n      for (j in attributes) {\n        anchor.setAttribute(j, attributes[j]);\n      }\n    }\n\n    elementToSetCaretAfter = anchor;\n    if (length === 1) {\n      textContent = dom.getTextContent(anchor);\n      hasElementChild = !!anchor.querySelector(\"*\");\n      isEmpty = textContent === \"\" || textContent === wysihtml5.INVISIBLE_SPACE;\n      if (!hasElementChild && isEmpty) {\n        dom.setTextContent(anchor, attributes.text || anchor.href);\n        whiteSpace = doc.createTextNode(\" \");\n        composer.selection.setAfter(anchor);\n        composer.selection.insertNode(whiteSpace);\n        elementToSetCaretAfter = whiteSpace;\n      }\n    }\n    composer.selection.setAfter(elementToSetCaretAfter);\n  }\n  \n  wysihtml5.commands.createLink = {\n    /**\n     * TODO: Use HTMLApplier or formatInline here\n     *\n     * Turns selection into a link\n     * If selection is already a link, it removes the link and wraps it with a <code> element\n     * The <code> element is needed to avoid auto linking\n     * \n     * @example\n     *    // either ...\n     *    wysihtml5.commands.createLink.exec(composer, \"createLink\", \"http://www.google.de\");\n     *    // ... or ...\n     *    wysihtml5.commands.createLink.exec(composer, \"createLink\", { href: \"http://www.google.de\", target: \"_blank\" });\n     */\n    exec: function(composer, command, value) {\n      var anchors = this.state(composer, command);\n      if (anchors) {\n        // Selection contains links\n        composer.selection.executeAndRestore(function() {\n          _removeFormat(composer, anchors);\n        });\n      } else {\n        // Create links\n        value = typeof(value) === \"object\" ? value : { href: value };\n        _format(composer, value);\n      }\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"A\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);/**\n * document.execCommand(\"fontSize\") will create either inline styles (firefox, chrome) or use font tags\n * which we don't want\n * Instead we set a css class\n */\n(function(wysihtml5) {\n  var undef,\n      REG_EXP = /wysiwyg-font-size-[a-z\\-]+/g;\n  \n  wysihtml5.commands.fontSize = {\n    exec: function(composer, command, size) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"span\", \"wysiwyg-font-size-\" + size, REG_EXP);\n    },\n\n    state: function(composer, command, size) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"span\", \"wysiwyg-font-size-\" + size, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);\n/**\n * document.execCommand(\"foreColor\") will create either inline styles (firefox, chrome) or use font tags\n * which we don't want\n * Instead we set a css class\n */\n(function(wysihtml5) {\n  var undef,\n      REG_EXP = /wysiwyg-color-[a-z]+/g;\n  \n  wysihtml5.commands.foreColor = {\n    exec: function(composer, command, color) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"span\", \"wysiwyg-color-\" + color, REG_EXP);\n    },\n\n    state: function(composer, command, color) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"span\", \"wysiwyg-color-\" + color, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      dom                     = wysihtml5.dom,\n      DEFAULT_NODE_NAME       = \"DIV\",\n      // Following elements are grouped\n      // when the caret is within a H1 and the H4 is invoked, the H1 should turn into H4\n      // instead of creating a H4 within a H1 which would result in semantically invalid html\n      BLOCK_ELEMENTS_GROUP    = [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\", \"P\", \"BLOCKQUOTE\", DEFAULT_NODE_NAME];\n  \n  /**\n   * Remove similiar classes (based on classRegExp)\n   * and add the desired class name\n   */\n  function _addClass(element, className, classRegExp) {\n    if (element.className) {\n      _removeClass(element, classRegExp);\n      element.className += \" \" + className;\n    } else {\n      element.className = className;\n    }\n  }\n\n  function _removeClass(element, classRegExp) {\n    element.className = element.className.replace(classRegExp, \"\");\n  }\n\n  /**\n   * Check whether given node is a text node and whether it's empty\n   */\n  function _isBlankTextNode(node) {\n    return node.nodeType === wysihtml5.TEXT_NODE && !wysihtml5.lang.string(node.data).trim();\n  }\n\n  /**\n   * Returns previous sibling node that is not a blank text node\n   */\n  function _getPreviousSiblingThatIsNotBlank(node) {\n    var previousSibling = node.previousSibling;\n    while (previousSibling && _isBlankTextNode(previousSibling)) {\n      previousSibling = previousSibling.previousSibling;\n    }\n    return previousSibling;\n  }\n\n  /**\n   * Returns next sibling node that is not a blank text node\n   */\n  function _getNextSiblingThatIsNotBlank(node) {\n    var nextSibling = node.nextSibling;\n    while (nextSibling && _isBlankTextNode(nextSibling)) {\n      nextSibling = nextSibling.nextSibling;\n    }\n    return nextSibling;\n  }\n\n  /**\n   * Adds line breaks before and after the given node if the previous and next siblings\n   * aren't already causing a visual line break (block element or <br>)\n   */\n  function _addLineBreakBeforeAndAfter(node) {\n    var doc             = node.ownerDocument,\n        nextSibling     = _getNextSiblingThatIsNotBlank(node),\n        previousSibling = _getPreviousSiblingThatIsNotBlank(node);\n\n    if (nextSibling && !_isLineBreakOrBlockElement(nextSibling)) {\n      node.parentNode.insertBefore(doc.createElement(\"br\"), nextSibling);\n    }\n    if (previousSibling && !_isLineBreakOrBlockElement(previousSibling)) {\n      node.parentNode.insertBefore(doc.createElement(\"br\"), node);\n    }\n  }\n\n  /**\n   * Removes line breaks before and after the given node\n   */\n  function _removeLineBreakBeforeAndAfter(node) {\n    var nextSibling     = _getNextSiblingThatIsNotBlank(node),\n        previousSibling = _getPreviousSiblingThatIsNotBlank(node);\n\n    if (nextSibling && _isLineBreak(nextSibling)) {\n      nextSibling.parentNode.removeChild(nextSibling);\n    }\n    if (previousSibling && _isLineBreak(previousSibling)) {\n      previousSibling.parentNode.removeChild(previousSibling);\n    }\n  }\n\n  function _removeLastChildIfLineBreak(node) {\n    var lastChild = node.lastChild;\n    if (lastChild && _isLineBreak(lastChild)) {\n      lastChild.parentNode.removeChild(lastChild);\n    }\n  }\n\n  function _isLineBreak(node) {\n    return node.nodeName === \"BR\";\n  }\n\n  /**\n   * Checks whether the elment causes a visual line break\n   * (<br> or block elements)\n   */\n  function _isLineBreakOrBlockElement(element) {\n    if (_isLineBreak(element)) {\n      return true;\n    }\n\n    if (dom.getStyle(\"display\").from(element) === \"block\") {\n      return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Execute native query command\n   * and if necessary modify the inserted node's className\n   */\n  function _execCommand(doc, command, nodeName, className) {\n    if (className) {\n      var eventListener = dom.observe(doc, \"DOMNodeInserted\", function(event) {\n        var target = event.target,\n            displayStyle;\n        if (target.nodeType !== wysihtml5.ELEMENT_NODE) {\n          return;\n        }\n        displayStyle = dom.getStyle(\"display\").from(target);\n        if (displayStyle.substr(0, 6) !== \"inline\") {\n          // Make sure that only block elements receive the given class\n          target.className += \" \" + className;\n        }\n      });\n    }\n    doc.execCommand(command, false, nodeName);\n    if (eventListener) {\n      eventListener.stop();\n    }\n  }\n\n  function _selectLineAndWrap(composer, element) {\n    composer.selection.selectLine();\n    composer.selection.surround(element);\n    _removeLineBreakBeforeAndAfter(element);\n    _removeLastChildIfLineBreak(element);\n    composer.selection.selectNode(element);\n  }\n\n  function _hasClasses(element) {\n    return !!wysihtml5.lang.string(element.className).trim();\n  }\n  \n  wysihtml5.commands.formatBlock = {\n    exec: function(composer, command, nodeName, className, classRegExp) {\n      var doc          = composer.doc,\n          blockElement = this.state(composer, command, nodeName, className, classRegExp),\n          selectedNode;\n\n      nodeName = typeof(nodeName) === \"string\" ? nodeName.toUpperCase() : nodeName;\n\n      if (blockElement) {\n        composer.selection.executeAndRestoreSimple(function() {\n          if (classRegExp) {\n            _removeClass(blockElement, classRegExp);\n          }\n          var hasClasses = _hasClasses(blockElement);\n          if (!hasClasses && blockElement.nodeName === (nodeName || DEFAULT_NODE_NAME)) {\n            // Insert a line break afterwards and beforewards when there are siblings\n            // that are not of type line break or block element\n            _addLineBreakBeforeAndAfter(blockElement);\n            dom.replaceWithChildNodes(blockElement);\n          } else if (hasClasses) {\n            // Make sure that styling is kept by renaming the element to <div> and copying over the class name\n            dom.renameElement(blockElement, DEFAULT_NODE_NAME);\n          }\n        });\n        return;\n      }\n\n      // Find similiar block element and rename it (<h2 class=\"foo\"></h2>  =>  <h1 class=\"foo\"></h1>)\n      if (nodeName === null || wysihtml5.lang.array(BLOCK_ELEMENTS_GROUP).contains(nodeName)) {\n        selectedNode = composer.selection.getSelectedNode();\n        blockElement = dom.getParentElement(selectedNode, {\n          nodeName: BLOCK_ELEMENTS_GROUP\n        });\n\n        if (blockElement) {\n          composer.selection.executeAndRestoreSimple(function() {\n            // Rename current block element to new block element and add class\n            if (nodeName) {\n              blockElement = dom.renameElement(blockElement, nodeName);\n            }\n            if (className) {\n              _addClass(blockElement, className, classRegExp);\n            }\n          });\n          return;\n        }\n      }\n\n      if (composer.commands.support(command)) {\n        _execCommand(doc, command, nodeName || DEFAULT_NODE_NAME, className);\n        return;\n      }\n\n      blockElement = doc.createElement(nodeName || DEFAULT_NODE_NAME);\n      if (className) {\n        blockElement.className = className;\n      }\n      _selectLineAndWrap(composer, blockElement);\n    },\n\n    state: function(composer, command, nodeName, className, classRegExp) {\n      nodeName = typeof(nodeName) === \"string\" ? nodeName.toUpperCase() : nodeName;\n      var selectedNode = composer.selection.getSelectedNode();\n      return dom.getParentElement(selectedNode, {\n        nodeName:     nodeName,\n        className:    className,\n        classRegExp:  classRegExp\n      });\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);/**\n * formatInline scenarios for tag \"B\" (| = caret, |foo| = selected text)\n *\n *   #1 caret in unformatted text:\n *      abcdefg|\n *   output:\n *      abcdefg<b>|</b>\n *   \n *   #2 unformatted text selected:\n *      abc|deg|h\n *   output:\n *      abc<b>|deg|</b>h\n *   \n *   #3 unformatted text selected across boundaries:\n *      ab|c <span>defg|h</span>\n *   output:\n *      ab<b>|c </b><span><b>defg</b>|h</span>\n *\n *   #4 formatted text entirely selected\n *      <b>|abc|</b>\n *   output:\n *      |abc|\n *\n *   #5 formatted text partially selected\n *      <b>ab|c|</b>\n *   output:\n *      <b>ab</b>|c|\n *\n *   #6 formatted text selected across boundaries\n *      <span>ab|c</span> <b>de|fgh</b>\n *   output:\n *      <span>ab|c</span> de|<b>fgh</b>\n */\n(function(wysihtml5) {\n  var undef,\n      // Treat <b> as <strong> and vice versa\n      ALIAS_MAPPING = {\n        \"strong\": \"b\",\n        \"em\":     \"i\",\n        \"b\":      \"strong\",\n        \"i\":      \"em\"\n      },\n      htmlApplier = {};\n  \n  function _getTagNames(tagName) {\n    var alias = ALIAS_MAPPING[tagName];\n    return alias ? [tagName.toLowerCase(), alias.toLowerCase()] : [tagName.toLowerCase()];\n  }\n  \n  function _getApplier(tagName, className, classRegExp) {\n    var identifier = tagName + \":\" + className;\n    if (!htmlApplier[identifier]) {\n      htmlApplier[identifier] = new wysihtml5.selection.HTMLApplier(_getTagNames(tagName), className, classRegExp, true);\n    }\n    return htmlApplier[identifier];\n  }\n  \n  wysihtml5.commands.formatInline = {\n    exec: function(composer, command, tagName, className, classRegExp) {\n      var range = composer.selection.getRange();\n      if (!range) {\n        return false;\n      }\n      _getApplier(tagName, className, classRegExp).toggleRange(range);\n      composer.selection.setSelection(range);\n    },\n\n    state: function(composer, command, tagName, className, classRegExp) {\n      var doc           = composer.doc,\n          aliasTagName  = ALIAS_MAPPING[tagName] || tagName,\n          range;\n\n      // Check whether the document contains a node with the desired tagName\n      if (!wysihtml5.dom.hasElementWithTagName(doc, tagName) &&\n          !wysihtml5.dom.hasElementWithTagName(doc, aliasTagName)) {\n        return false;\n      }\n\n       // Check whether the document contains a node with the desired className\n      if (className && !wysihtml5.dom.hasElementWithClassName(doc, className)) {\n         return false;\n      }\n\n      range = composer.selection.getRange();\n      if (!range) {\n        return false;\n      }\n\n      return _getApplier(tagName, className, classRegExp).isAppliedToRange(range);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.insertHTML = {\n    exec: function(composer, command, html) {\n      if (composer.commands.support(command)) {\n        composer.doc.execCommand(command, false, html);\n      } else {\n        composer.selection.insertHTML(html);\n      }\n    },\n\n    state: function() {\n      return false;\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var NODE_NAME = \"IMG\";\n  \n  wysihtml5.commands.insertImage = {\n    /**\n     * Inserts an <img>\n     * If selection is already an image link, it removes it\n     * \n     * @example\n     *    // either ...\n     *    wysihtml5.commands.insertImage.exec(composer, \"insertImage\", \"http://www.google.de/logo.jpg\");\n     *    // ... or ...\n     *    wysihtml5.commands.insertImage.exec(composer, \"insertImage\", { src: \"http://www.google.de/logo.jpg\", title: \"foo\" });\n     */\n    exec: function(composer, command, value) {\n      value = typeof(value) === \"object\" ? value : { src: value };\n\n      var doc     = composer.doc,\n          image   = this.state(composer),\n          textNode,\n          i,\n          parent;\n\n      if (image) {\n        // Image already selected, set the caret before it and delete it\n        composer.selection.setBefore(image);\n        parent = image.parentNode;\n        parent.removeChild(image);\n\n        // and it's parent <a> too if it hasn't got any other relevant child nodes\n        wysihtml5.dom.removeEmptyTextNodes(parent);\n        if (parent.nodeName === \"A\" && !parent.firstChild) {\n          composer.selection.setAfter(parent);\n          parent.parentNode.removeChild(parent);\n        }\n\n        // firefox and ie sometimes don't remove the image handles, even though the image got removed\n        wysihtml5.quirks.redraw(composer.element);\n        return;\n      }\n\n      image = doc.createElement(NODE_NAME);\n\n      for (i in value) {\n        image[i] = value[i];\n      }\n\n      composer.selection.insertNode(image);\n      if (wysihtml5.browser.hasProblemsSettingCaretAfterImg()) {\n        textNode = doc.createTextNode(wysihtml5.INVISIBLE_SPACE);\n        composer.selection.insertNode(textNode);\n        composer.selection.setAfter(textNode);\n      } else {\n        composer.selection.setAfter(image);\n      }\n    },\n\n    state: function(composer) {\n      var doc = composer.doc,\n          selectedNode,\n          text,\n          imagesInSelection;\n\n      if (!wysihtml5.dom.hasElementWithTagName(doc, NODE_NAME)) {\n        return false;\n      }\n\n      selectedNode = composer.selection.getSelectedNode();\n      if (!selectedNode) {\n        return false;\n      }\n\n      if (selectedNode.nodeName === NODE_NAME) {\n        // This works perfectly in IE\n        return selectedNode;\n      }\n\n      if (selectedNode.nodeType !== wysihtml5.ELEMENT_NODE) {\n        return false;\n      }\n\n      text = composer.selection.getText();\n      text = wysihtml5.lang.string(text).trim();\n      if (text) {\n        return false;\n      }\n\n      imagesInSelection = composer.selection.getNodes(wysihtml5.ELEMENT_NODE, function(node) {\n        return node.nodeName === \"IMG\";\n      });\n\n      if (imagesInSelection.length !== 1) {\n        return false;\n      }\n\n      return imagesInSelection[0];\n    },\n\n    value: function(composer) {\n      var image = this.state(composer);\n      return image && image.src;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      LINE_BREAK = \"<br>\" + (wysihtml5.browser.needsSpaceAfterLineBreak() ? \" \" : \"\");\n  \n  wysihtml5.commands.insertLineBreak = {\n    exec: function(composer, command) {\n      if (composer.commands.support(command)) {\n        composer.doc.execCommand(command, false, null);\n        if (!wysihtml5.browser.autoScrollsToCaret()) {\n          composer.selection.scrollIntoView();\n        }\n      } else {\n        composer.commands.exec(\"insertHTML\", LINE_BREAK);\n      }\n    },\n\n    state: function() {\n      return false;\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.insertOrderedList = {\n    exec: function(composer, command) {\n      var doc           = composer.doc,\n          selectedNode  = composer.selection.getSelectedNode(),\n          list          = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"OL\" }),\n          otherList     = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"UL\" }),\n          tempClassName =  \"_wysihtml5-temp-\" + new Date().getTime(),\n          isEmpty,\n          tempElement;\n      \n      if (composer.commands.support(command)) {\n        doc.execCommand(command, false, null);\n        return;\n      }\n      \n      if (list) {\n        // Unwrap list\n        // <ol><li>foo</li><li>bar</li></ol>\n        // becomes:\n        // foo<br>bar<br>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.resolveList(list);\n        });\n      } else if (otherList) {\n        // Turn an unordered list into an ordered list\n        // <ul><li>foo</li><li>bar</li></ul>\n        // becomes:\n        // <ol><li>foo</li><li>bar</li></ol>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.renameElement(otherList, \"ol\");\n        });\n      } else {\n        // Create list\n        composer.commands.exec(\"formatBlock\", \"div\", tempClassName);\n        tempElement = doc.querySelector(\".\" + tempClassName);\n        isEmpty = tempElement.innerHTML === \"\" || tempElement.innerHTML === wysihtml5.INVISIBLE_SPACE;\n        composer.selection.executeAndRestoreSimple(function() {\n          list = wysihtml5.dom.convertToList(tempElement, \"ol\");\n        });\n        if (isEmpty) {\n          composer.selection.selectNode(list.querySelector(\"li\"));\n        }\n      }\n    },\n    \n    state: function(composer) {\n      var selectedNode = composer.selection.getSelectedNode();\n      return wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"OL\" });\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.insertUnorderedList = {\n    exec: function(composer, command) {\n      var doc           = composer.doc,\n          selectedNode  = composer.selection.getSelectedNode(),\n          list          = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"UL\" }),\n          otherList     = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"OL\" }),\n          tempClassName =  \"_wysihtml5-temp-\" + new Date().getTime(),\n          isEmpty,\n          tempElement;\n      \n      if (composer.commands.support(command)) {\n        doc.execCommand(command, false, null);\n        return;\n      }\n      \n      if (list) {\n        // Unwrap list\n        // <ul><li>foo</li><li>bar</li></ul>\n        // becomes:\n        // foo<br>bar<br>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.resolveList(list);\n        });\n      } else if (otherList) {\n        // Turn an ordered list into an unordered list\n        // <ol><li>foo</li><li>bar</li></ol>\n        // becomes:\n        // <ul><li>foo</li><li>bar</li></ul>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.renameElement(otherList, \"ul\");\n        });\n      } else {\n        // Create list\n        composer.commands.exec(\"formatBlock\", \"div\", tempClassName);\n        tempElement = doc.querySelector(\".\" + tempClassName);\n        isEmpty = tempElement.innerHTML === \"\" || tempElement.innerHTML === wysihtml5.INVISIBLE_SPACE;\n        composer.selection.executeAndRestoreSimple(function() {\n          list = wysihtml5.dom.convertToList(tempElement, \"ul\");\n        });\n        if (isEmpty) {\n          composer.selection.selectNode(list.querySelector(\"li\"));\n        }\n      }\n    },\n    \n    state: function(composer) {\n      var selectedNode = composer.selection.getSelectedNode();\n      return wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"UL\" });\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.italic = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"i\");\n    },\n\n    state: function(composer, command, color) {\n      // element.ownerDocument.queryCommandState(\"italic\") results:\n      // firefox: only <i>\n      // chrome:  <i>, <em>, <blockquote>, ...\n      // ie:      <i>, <em>\n      // opera:   only <i>\n      return wysihtml5.commands.formatInline.state(composer, command, \"i\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      CLASS_NAME  = \"wysiwyg-text-align-center\",\n      REG_EXP     = /wysiwyg-text-align-[a-z]+/g;\n  \n  wysihtml5.commands.justifyCenter = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatBlock.exec(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatBlock.state(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      CLASS_NAME  = \"wysiwyg-text-align-left\",\n      REG_EXP     = /wysiwyg-text-align-[a-z]+/g;\n  \n  wysihtml5.commands.justifyLeft = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatBlock.exec(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatBlock.state(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      CLASS_NAME  = \"wysiwyg-text-align-right\",\n      REG_EXP     = /wysiwyg-text-align-[a-z]+/g;\n  \n  wysihtml5.commands.justifyRight = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatBlock.exec(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatBlock.state(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  wysihtml5.commands.underline = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"u\");\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"u\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);/**\n * Undo Manager for wysihtml5\n * slightly inspired by http://rniwa.com/editing/undomanager.html#the-undomanager-interface\n */\n(function(wysihtml5) {\n  var Z_KEY               = 90,\n      Y_KEY               = 89,\n      BACKSPACE_KEY       = 8,\n      DELETE_KEY          = 46,\n      MAX_HISTORY_ENTRIES = 40,\n      UNDO_HTML           = '<span id=\"_wysihtml5-undo\" class=\"_wysihtml5-temp\">' + wysihtml5.INVISIBLE_SPACE + '</span>',\n      REDO_HTML           = '<span id=\"_wysihtml5-redo\" class=\"_wysihtml5-temp\">' + wysihtml5.INVISIBLE_SPACE + '</span>',\n      dom                 = wysihtml5.dom;\n  \n  function cleanTempElements(doc) {\n    var tempElement;\n    while (tempElement = doc.querySelector(\"._wysihtml5-temp\")) {\n      tempElement.parentNode.removeChild(tempElement);\n    }\n  }\n  \n  wysihtml5.UndoManager = wysihtml5.lang.Dispatcher.extend(\n    /** @scope wysihtml5.UndoManager.prototype */ {\n    constructor: function(editor) {\n      this.editor = editor;\n      this.composer = editor.composer;\n      this.element = this.composer.element;\n      this.history = [this.composer.getValue()];\n      this.position = 1;\n      \n      // Undo manager currently only supported in browsers who have the insertHTML command (not IE)\n      if (this.composer.commands.support(\"insertHTML\")) {\n        this._observe();\n      }\n    },\n    \n    _observe: function() {\n      var that      = this,\n          doc       = this.composer.sandbox.getDocument(),\n          lastKey;\n          \n      // Catch CTRL+Z and CTRL+Y\n      dom.observe(this.element, \"keydown\", function(event) {\n        if (event.altKey || (!event.ctrlKey && !event.metaKey)) {\n          return;\n        }\n        \n        var keyCode = event.keyCode,\n            isUndo = keyCode === Z_KEY && !event.shiftKey,\n            isRedo = (keyCode === Z_KEY && event.shiftKey) || (keyCode === Y_KEY);\n        \n        if (isUndo) {\n          that.undo();\n          event.preventDefault();\n        } else if (isRedo) {\n          that.redo();\n          event.preventDefault();\n        }\n      });\n      \n      // Catch delete and backspace\n      dom.observe(this.element, \"keydown\", function(event) {\n        var keyCode = event.keyCode;\n        if (keyCode === lastKey) {\n          return;\n        }\n        \n        lastKey = keyCode;\n        \n        if (keyCode === BACKSPACE_KEY || keyCode === DELETE_KEY) {\n          that.transact();\n        }\n      });\n      \n      // Now this is very hacky:\n      // These days browsers don't offer a undo/redo event which we could hook into\n      // to be notified when the user hits undo/redo in the contextmenu.\n      // Therefore we simply insert two elements as soon as the contextmenu gets opened.\n      // The last element being inserted will be immediately be removed again by a exexCommand(\"undo\")\n      //  => When the second element appears in the dom tree then we know the user clicked \"redo\" in the context menu\n      //  => When the first element disappears from the dom tree then we know the user clicked \"undo\" in the context menu\n      if (wysihtml5.browser.hasUndoInContextMenu()) {\n        var interval, observed, cleanUp = function() {\n          cleanTempElements(doc);\n          clearInterval(interval);\n        };\n        \n        dom.observe(this.element, \"contextmenu\", function() {\n          cleanUp();\n          that.composer.selection.executeAndRestoreSimple(function() {\n            if (that.element.lastChild) {\n              that.composer.selection.setAfter(that.element.lastChild);\n            }\n\n            // enable undo button in context menu\n            doc.execCommand(\"insertHTML\", false, UNDO_HTML);\n            // enable redo button in context menu\n            doc.execCommand(\"insertHTML\", false, REDO_HTML);\n            doc.execCommand(\"undo\", false, null);\n          });\n\n          interval = setInterval(function() {\n            if (doc.getElementById(\"_wysihtml5-redo\")) {\n              cleanUp();\n              that.redo();\n            } else if (!doc.getElementById(\"_wysihtml5-undo\")) {\n              cleanUp();\n              that.undo();\n            }\n          }, 400);\n\n          if (!observed) {\n            observed = true;\n            dom.observe(document, \"mousedown\", cleanUp);\n            dom.observe(doc, [\"mousedown\", \"paste\", \"cut\", \"copy\"], cleanUp);\n          }\n        });\n      }\n      \n      this.editor\n        .observe(\"newword:composer\", function() {\n          that.transact();\n        })\n        \n        .observe(\"beforecommand:composer\", function() {\n          that.transact();\n        });\n    },\n    \n    transact: function() {\n      var previousHtml  = this.history[this.position - 1],\n          currentHtml   = this.composer.getValue();\n      \n      if (currentHtml == previousHtml) {\n        return;\n      }\n      \n      var length = this.history.length = this.position;\n      if (length > MAX_HISTORY_ENTRIES) {\n        this.history.shift();\n        this.position--;\n      }\n      \n      this.position++;\n      this.history.push(currentHtml);\n    },\n    \n    undo: function() {\n      this.transact();\n      \n      if (this.position <= 1) {\n        return;\n      }\n      \n      this.set(this.history[--this.position - 1]);\n      this.editor.fire(\"undo:composer\");\n    },\n    \n    redo: function() {\n      if (this.position >= this.history.length) {\n        return;\n      }\n      \n      this.set(this.history[++this.position - 1]);\n      this.editor.fire(\"redo:composer\");\n    },\n    \n    set: function(html) {\n      this.composer.setValue(html);\n      this.editor.focus(true);\n    }\n  });\n})(wysihtml5);\n/**\n * TODO: the following methods still need unit test coverage\n */\nwysihtml5.views.View = Base.extend(\n  /** @scope wysihtml5.views.View.prototype */ {\n  constructor: function(parent, textareaElement, config) {\n    this.parent   = parent;\n    this.element  = textareaElement;\n    this.config   = config;\n    \n    this._observeViewChange();\n  },\n  \n  _observeViewChange: function() {\n    var that = this;\n    this.parent.observe(\"beforeload\", function() {\n      that.parent.observe(\"change_view\", function(view) {\n        if (view === that.name) {\n          that.parent.currentView = that;\n          that.show();\n          // Using tiny delay here to make sure that the placeholder is set before focusing\n          setTimeout(function() { that.focus(); }, 0);\n        } else {\n          that.hide();\n        }\n      });\n    });\n  },\n  \n  focus: function() {\n    if (this.element.ownerDocument.querySelector(\":focus\") === this.element) {\n      return;\n    }\n    \n    try { this.element.focus(); } catch(e) {}\n  },\n  \n  hide: function() {\n    this.element.style.display = \"none\";\n  },\n  \n  show: function() {\n    this.element.style.display = \"\";\n  },\n  \n  disable: function() {\n    this.element.setAttribute(\"disabled\", \"disabled\");\n  },\n  \n  enable: function() {\n    this.element.removeAttribute(\"disabled\");\n  }\n});(function(wysihtml5) {\n  var dom       = wysihtml5.dom,\n      browser   = wysihtml5.browser;\n  \n  wysihtml5.views.Composer = wysihtml5.views.View.extend(\n    /** @scope wysihtml5.views.Composer.prototype */ {\n    name: \"composer\",\n\n    // Needed for firefox in order to display a proper caret in an empty contentEditable\n    CARET_HACK: \"<br>\",\n\n    constructor: function(parent, textareaElement, config) {\n      this.base(parent, textareaElement, config);\n      this.textarea = this.parent.textarea;\n      this._initSandbox();\n    },\n\n    clear: function() {\n      this.element.innerHTML = browser.displaysCaretInEmptyContentEditableCorrectly() ? \"\" : this.CARET_HACK;\n    },\n\n    getValue: function(parse) {\n      var value = this.isEmpty() ? \"\" : wysihtml5.quirks.getCorrectInnerHTML(this.element);\n      \n      if (parse) {\n        value = this.parent.parse(value);\n      }\n\n      // Replace all \"zero width no breaking space\" chars\n      // which are used as hacks to enable some functionalities\n      // Also remove all CARET hacks that somehow got left\n      value = wysihtml5.lang.string(value).replace(wysihtml5.INVISIBLE_SPACE).by(\"\");\n\n      return value;\n    },\n\n    setValue: function(html, parse) {\n      if (parse) {\n        html = this.parent.parse(html);\n      }\n      this.element.innerHTML = html;\n    },\n\n    show: function() {\n      this.iframe.style.display = this._displayStyle || \"\";\n\n      // Firefox needs this, otherwise contentEditable becomes uneditable\n      this.disable();\n      this.enable();\n    },\n\n    hide: function() {\n      this._displayStyle = dom.getStyle(\"display\").from(this.iframe);\n      if (this._displayStyle === \"none\") {\n        this._displayStyle = null;\n      }\n      this.iframe.style.display = \"none\";\n    },\n\n    disable: function() {\n      this.element.removeAttribute(\"contentEditable\");\n      this.base();\n    },\n\n    enable: function() {\n      this.element.setAttribute(\"contentEditable\", \"true\");\n      this.base();\n    },\n\n    focus: function(setToEnd) {\n      // IE 8 fires the focus event after .focus()\n      // This is needed by our simulate_placeholder.js to work\n      // therefore we clear it ourselves this time\n      if (wysihtml5.browser.doesAsyncFocus() && this.hasPlaceholderSet()) {\n        this.clear();\n      }\n      \n      this.base();\n      \n      var lastChild = this.element.lastChild;\n      if (setToEnd && lastChild) {\n        if (lastChild.nodeName === \"BR\") {\n          this.selection.setBefore(this.element.lastChild);\n        } else {\n          this.selection.setAfter(this.element.lastChild);\n        }\n      }\n    },\n\n    getTextContent: function() {\n      return dom.getTextContent(this.element);\n    },\n\n    hasPlaceholderSet: function() {\n      return this.getTextContent() == this.textarea.element.getAttribute(\"placeholder\");\n    },\n\n    isEmpty: function() {\n      var innerHTML               = this.element.innerHTML,\n          elementsWithVisualValue = \"blockquote, ul, ol, img, embed, object, table, iframe, svg, video, audio, button, input, select, textarea\";\n      return innerHTML === \"\"              || \n             innerHTML === this.CARET_HACK ||\n             this.hasPlaceholderSet()      ||\n             (this.getTextContent() === \"\" && !this.element.querySelector(elementsWithVisualValue));\n    },\n\n    _initSandbox: function() {\n      var that = this;\n      \n      this.sandbox = new dom.Sandbox(function() {\n        that._create();\n      }, {\n        stylesheets:  this.config.stylesheets\n      });\n      this.iframe  = this.sandbox.getIframe();\n\n      // Create hidden field which tells the server after submit, that the user used an wysiwyg editor\n      var hiddenField = document.createElement(\"input\");\n      hiddenField.type   = \"hidden\";\n      hiddenField.name   = \"_wysihtml5_mode\";\n      hiddenField.value  = 1;\n\n      // Store reference to current wysihtml5 instance on the textarea element\n      var textareaElement = this.textarea.element;\n      dom.insert(this.iframe).after(textareaElement);\n      dom.insert(hiddenField).after(textareaElement);\n    },\n\n    _create: function() {\n      var that = this;\n      \n      this.doc                = this.sandbox.getDocument();\n      this.element            = this.doc.body;\n      this.textarea           = this.parent.textarea;\n      this.element.innerHTML  = this.textarea.getValue(true);\n      this.enable();\n      \n      // Make sure our selection handler is ready\n      this.selection = new wysihtml5.Selection(this.parent);\n      \n      // Make sure commands dispatcher is ready\n      this.commands  = new wysihtml5.Commands(this.parent);\n\n      dom.copyAttributes([\n        \"className\", \"spellcheck\", \"title\", \"lang\", \"dir\", \"accessKey\"\n      ]).from(this.textarea.element).to(this.element);\n      \n      dom.addClass(this.element, this.config.composerClassName);\n\n      // Make the editor look like the original textarea, by syncing styles\n      if (this.config.style) {\n        this.style();\n      }\n\n      this.observe();\n\n      var name = this.config.name;\n      if (name) {\n        dom.addClass(this.element, name);\n        dom.addClass(this.iframe, name);\n      }\n\n      // Simulate html5 placeholder attribute on contentEditable element\n      var placeholderText = typeof(this.config.placeholder) === \"string\"\n        ? this.config.placeholder\n        : this.textarea.element.getAttribute(\"placeholder\");\n      if (placeholderText) {\n        dom.simulatePlaceholder(this.parent, this, placeholderText);\n      }\n      \n      // Make sure that the browser avoids using inline styles whenever possible\n      this.commands.exec(\"styleWithCSS\", false);\n\n      this._initAutoLinking();\n      this._initObjectResizing();\n      this._initUndoManager();\n\n      // Simulate html5 autofocus on contentEditable element\n      if (this.textarea.element.hasAttribute(\"autofocus\") || document.querySelector(\":focus\") == this.textarea.element) {\n        setTimeout(function() { that.focus(); }, 100);\n      }\n\n      wysihtml5.quirks.insertLineBreakOnReturn(this);\n\n      // IE sometimes leaves a single paragraph, which can't be removed by the user\n      if (!browser.clearsContentEditableCorrectly()) {\n        wysihtml5.quirks.ensureProperClearing(this);\n      }\n\n      if (!browser.clearsListsInContentEditableCorrectly()) {\n        wysihtml5.quirks.ensureProperClearingOfLists(this);\n      }\n\n      // Set up a sync that makes sure that textarea and editor have the same content\n      if (this.initSync && this.config.sync) {\n        this.initSync();\n      }\n\n      // Okay hide the textarea, we are ready to go\n      this.textarea.hide();\n\n      // Fire global (before-)load event\n      this.parent.fire(\"beforeload\").fire(\"load\");\n    },\n\n    _initAutoLinking: function() {\n      var that                           = this,\n          supportsDisablingOfAutoLinking = browser.canDisableAutoLinking(),\n          supportsAutoLinking            = browser.doesAutoLinkingInContentEditable();\n      if (supportsDisablingOfAutoLinking) {\n        this.commands.exec(\"autoUrlDetect\", false);\n      }\n\n      if (!this.config.autoLink) {\n        return;\n      }\n\n      // Only do the auto linking by ourselves when the browser doesn't support auto linking\n      // OR when he supports auto linking but we were able to turn it off (IE9+)\n      if (!supportsAutoLinking || (supportsAutoLinking && supportsDisablingOfAutoLinking)) {\n        this.parent.observe(\"newword:composer\", function() {\n          that.selection.executeAndRestore(function(startContainer, endContainer) {\n            dom.autoLink(endContainer.parentNode);\n          });\n        });\n      }\n\n      // Assuming we have the following:\n      //  <a href=\"http://www.google.de\">http://www.google.de</a>\n      // If a user now changes the url in the innerHTML we want to make sure that\n      // it's synchronized with the href attribute (as long as the innerHTML is still a url)\n      var // Use a live NodeList to check whether there are any links in the document\n          links           = this.sandbox.getDocument().getElementsByTagName(\"a\"),\n          // The autoLink helper method reveals a reg exp to detect correct urls\n          urlRegExp       = dom.autoLink.URL_REG_EXP,\n          getTextContent  = function(element) {\n            var textContent = wysihtml5.lang.string(dom.getTextContent(element)).trim();\n            if (textContent.substr(0, 4) === \"www.\") {\n              textContent = \"http://\" + textContent;\n            }\n            return textContent;\n          };\n\n      dom.observe(this.element, \"keydown\", function(event) {\n        if (!links.length) {\n          return;\n        }\n\n        var selectedNode = that.selection.getSelectedNode(event.target.ownerDocument),\n            link         = dom.getParentElement(selectedNode, { nodeName: \"A\" }, 4),\n            textContent;\n\n        if (!link) {\n          return;\n        }\n\n        textContent = getTextContent(link);\n        // keydown is fired before the actual content is changed\n        // therefore we set a timeout to change the href\n        setTimeout(function() {\n          var newTextContent = getTextContent(link);\n          if (newTextContent === textContent) {\n            return;\n          }\n\n          // Only set href when new href looks like a valid url\n          if (newTextContent.match(urlRegExp)) {\n            link.setAttribute(\"href\", newTextContent);\n          }\n        }, 0);\n      });\n    },\n\n    _initObjectResizing: function() {\n      var properties        = [\"width\", \"height\"],\n          propertiesLength  = properties.length,\n          element           = this.element;\n      \n      this.commands.exec(\"enableObjectResizing\", this.config.allowObjectResizing);\n      \n      if (this.config.allowObjectResizing) {\n         // IE sets inline styles after resizing objects\n         // The following lines make sure that the width/height css properties\n         // are copied over to the width/height attributes\n        if (browser.supportsEvent(\"resizeend\")) {\n          dom.observe(element, \"resizeend\", function(event) {\n            var target = event.target || event.srcElement,\n                style  = target.style,\n                i      = 0,\n                property;\n            for(; i<propertiesLength; i++) {\n              property = properties[i];\n              if (style[property]) {\n                target.setAttribute(property, parseInt(style[property], 10));\n                style[property] = \"\";\n              }\n            }\n            // After resizing IE sometimes forgets to remove the old resize handles\n            wysihtml5.quirks.redraw(element);\n          });\n        }\n      } else {\n        if (browser.supportsEvent(\"resizestart\")) {\n          dom.observe(element, \"resizestart\", function(event) { event.preventDefault(); });\n        }\n      }\n    },\n    \n    _initUndoManager: function() {\n      new wysihtml5.UndoManager(this.parent);\n    }\n  });\n})(wysihtml5);(function(wysihtml5) {\n  var dom             = wysihtml5.dom,\n      doc             = document,\n      win             = window,\n      HOST_TEMPLATE   = doc.createElement(\"div\"),\n      /**\n       * Styles to copy from textarea to the composer element\n       */\n      TEXT_FORMATTING = [\n        \"background-color\",\n        \"color\", \"cursor\",\n        \"font-family\", \"font-size\", \"font-style\", \"font-variant\", \"font-weight\",\n        \"line-height\", \"letter-spacing\",\n        \"text-align\", \"text-decoration\", \"text-indent\", \"text-rendering\",\n        \"word-break\", \"word-wrap\", \"word-spacing\"\n      ],\n      /**\n       * Styles to copy from textarea to the iframe\n       */\n      BOX_FORMATTING = [\n        \"background-color\",\n        \"border-collapse\",\n        \"border-bottom-color\", \"border-bottom-style\", \"border-bottom-width\",\n        \"border-left-color\", \"border-left-style\", \"border-left-width\",\n        \"border-right-color\", \"border-right-style\", \"border-right-width\",\n        \"border-top-color\", \"border-top-style\", \"border-top-width\",\n        \"clear\", \"display\", \"float\",\n        \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\",\n        \"outline-color\", \"outline-offset\", \"outline-width\", \"outline-style\",\n        \"padding-left\", \"padding-right\", \"padding-top\", \"padding-bottom\",\n        \"position\", \"top\", \"left\", \"right\", \"bottom\", \"z-index\",\n        \"vertical-align\", \"text-align\",\n        \"-webkit-box-sizing\", \"-moz-box-sizing\", \"-ms-box-sizing\", \"box-sizing\",\n        \"-webkit-box-shadow\", \"-moz-box-shadow\", \"-ms-box-shadow\",\"box-shadow\",\n        \"-webkit-border-top-right-radius\", \"-moz-border-radius-topright\", \"border-top-right-radius\",\n        \"-webkit-border-bottom-right-radius\", \"-moz-border-radius-bottomright\", \"border-bottom-right-radius\",\n        \"-webkit-border-bottom-left-radius\", \"-moz-border-radius-bottomleft\", \"border-bottom-left-radius\",\n        \"-webkit-border-top-left-radius\", \"-moz-border-radius-topleft\", \"border-top-left-radius\",\n        \"width\", \"height\"\n      ],\n      /**\n       * Styles to sync while the window gets resized\n       */\n      RESIZE_STYLE = [\n        \"width\", \"height\",\n        \"top\", \"left\", \"right\", \"bottom\"\n      ],\n      ADDITIONAL_CSS_RULES = [\n        \"html             { height: 100%; }\",\n        \"body             { min-height: 100%; padding: 0; margin: 0; margin-top: -1px; padding-top: 1px; }\",\n        \"._wysihtml5-temp { display: none; }\",\n        wysihtml5.browser.isGecko ?\n          \"body.placeholder { color: graytext !important; }\" : \n          \"body.placeholder { color: #a9a9a9 !important; }\",\n        \"body[disabled]   { background-color: #eee !important; color: #999 !important; cursor: default !important; }\",\n        // Ensure that user see's broken images and can delete them\n        \"img:-moz-broken  { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }\"\n      ];\n  \n  /**\n   * With \"setActive\" IE offers a smart way of focusing elements without scrolling them into view:\n   * http://msdn.microsoft.com/en-us/library/ms536738(v=vs.85).aspx\n   *\n   * Other browsers need a more hacky way: (pssst don't tell my mama)\n   * In order to prevent the element being scrolled into view when focusing it, we simply\n   * move it out of the scrollable area, focus it, and reset it's position\n   */\n  var focusWithoutScrolling = function(element) {\n    if (element.setActive) {\n      // Following line could cause a js error when the textarea is invisible\n      // See https://github.com/xing/wysihtml5/issues/9\n      try { element.setActive(); } catch(e) {}\n    } else {\n      var elementStyle = element.style,\n          originalScrollTop = doc.documentElement.scrollTop || doc.body.scrollTop,\n          originalScrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft,\n          originalStyles = {\n            position:         elementStyle.position,\n            top:              elementStyle.top,\n            left:             elementStyle.left,\n            WebkitUserSelect: elementStyle.WebkitUserSelect\n          };\n      \n      dom.setStyles({\n        position:         \"absolute\",\n        top:              \"-99999px\",\n        left:             \"-99999px\",\n        // Don't ask why but temporarily setting -webkit-user-select to none makes the whole thing performing smoother\n        WebkitUserSelect: \"none\"\n      }).on(element);\n      \n      element.focus();\n      \n      dom.setStyles(originalStyles).on(element);\n      \n      if (win.scrollTo) {\n        // Some browser extensions unset this method to prevent annoyances\n        // \"Better PopUp Blocker\" for Chrome http://code.google.com/p/betterpopupblocker/source/browse/trunk/blockStart.js#100\n        // Issue: http://code.google.com/p/betterpopupblocker/issues/detail?id=1\n        win.scrollTo(originalScrollLeft, originalScrollTop);\n      }\n    }\n  };\n  \n  \n  wysihtml5.views.Composer.prototype.style = function() {\n    var that                  = this,\n        originalActiveElement = doc.querySelector(\":focus\"),\n        textareaElement       = this.textarea.element,\n        hasPlaceholder        = textareaElement.hasAttribute(\"placeholder\"),\n        originalPlaceholder   = hasPlaceholder && textareaElement.getAttribute(\"placeholder\");\n    this.focusStylesHost      = this.focusStylesHost  || HOST_TEMPLATE.cloneNode(false);\n    this.blurStylesHost       = this.blurStylesHost   || HOST_TEMPLATE.cloneNode(false);\n  \n    // Remove placeholder before copying (as the placeholder has an affect on the computed style)\n    if (hasPlaceholder) {\n      textareaElement.removeAttribute(\"placeholder\");\n    }\n  \n    if (textareaElement === originalActiveElement) {\n      textareaElement.blur();\n    }\n  \n    // --------- iframe styles (has to be set before editor styles, otherwise IE9 sets wrong fontFamily on blurStylesHost) ---------\n    dom.copyStyles(BOX_FORMATTING).from(textareaElement).to(this.iframe).andTo(this.blurStylesHost);\n  \n    // --------- editor styles ---------\n    dom.copyStyles(TEXT_FORMATTING).from(textareaElement).to(this.element).andTo(this.blurStylesHost);\n  \n    // --------- apply standard rules ---------\n    dom.insertCSS(ADDITIONAL_CSS_RULES).into(this.element.ownerDocument);\n  \n    // --------- :focus styles ---------\n    focusWithoutScrolling(textareaElement);\n    dom.copyStyles(BOX_FORMATTING).from(textareaElement).to(this.focusStylesHost);\n    dom.copyStyles(TEXT_FORMATTING).from(textareaElement).to(this.focusStylesHost);\n  \n    // Make sure that we don't change the display style of the iframe when copying styles oblur/onfocus\n    // this is needed for when the change_view event is fired where the iframe is hidden and then\n    // the blur event fires and re-displays it\n    var boxFormattingStyles = wysihtml5.lang.array(BOX_FORMATTING).without([\"display\"]);\n  \n    // --------- restore focus ---------\n    if (originalActiveElement) {\n      originalActiveElement.focus();\n    } else {\n      textareaElement.blur();\n    }\n  \n    // --------- restore placeholder ---------\n    if (hasPlaceholder) {\n      textareaElement.setAttribute(\"placeholder\", originalPlaceholder);\n    }\n  \n    // When copying styles, we only get the computed style which is never returned in percent unit\n    // Therefore we've to recalculate style onresize\n    if (!wysihtml5.browser.hasCurrentStyleProperty()) {\n      var winObserver = dom.observe(win, \"resize\", function() {\n        // Remove event listener if composer doesn't exist anymore\n        if (!dom.contains(document.documentElement, that.iframe)) {\n          winObserver.stop();\n          return;\n        }\n        var originalTextareaDisplayStyle = dom.getStyle(\"display\").from(textareaElement),\n            originalComposerDisplayStyle = dom.getStyle(\"display\").from(that.iframe);\n        textareaElement.style.display = \"\";\n        that.iframe.style.display = \"none\";\n        dom.copyStyles(RESIZE_STYLE)\n          .from(textareaElement)\n          .to(that.iframe)\n          .andTo(that.focusStylesHost)\n          .andTo(that.blurStylesHost);\n        that.iframe.style.display = originalComposerDisplayStyle;\n        textareaElement.style.display = originalTextareaDisplayStyle;\n      });\n    }\n  \n    // --------- Sync focus/blur styles ---------\n    this.parent.observe(\"focus:composer\", function() {\n      dom.copyStyles(boxFormattingStyles) .from(that.focusStylesHost).to(that.iframe);\n      dom.copyStyles(TEXT_FORMATTING)     .from(that.focusStylesHost).to(that.element);\n    });\n\n    this.parent.observe(\"blur:composer\", function() {\n      dom.copyStyles(boxFormattingStyles) .from(that.blurStylesHost).to(that.iframe);\n      dom.copyStyles(TEXT_FORMATTING)     .from(that.blurStylesHost).to(that.element);\n    });\n  \n    return this;\n  };\n})(wysihtml5);/**\n * Taking care of events\n *  - Simulating 'change' event on contentEditable element\n *  - Handling drag & drop logic\n *  - Catch paste events\n *  - Dispatch proprietary newword:composer event\n *  - Keyboard shortcuts\n */\n(function(wysihtml5) {\n  var dom       = wysihtml5.dom,\n      browser   = wysihtml5.browser,\n      /**\n       * Map keyCodes to query commands\n       */\n      shortcuts = {\n        \"66\": \"bold\",     // B\n        \"73\": \"italic\",   // I\n        \"85\": \"underline\" // U\n      };\n  \n  wysihtml5.views.Composer.prototype.observe = function() {\n    var that                = this,\n        state               = this.getValue(),\n        iframe              = this.sandbox.getIframe(),\n        element             = this.element,\n        focusBlurElement    = browser.supportsEventsInIframeCorrectly() ? element : this.sandbox.getWindow(),\n        // Firefox < 3.5 doesn't support the drop event, instead it supports a so called \"dragdrop\" event which behaves almost the same\n        pasteEvents         = browser.supportsEvent(\"drop\") ? [\"drop\", \"paste\"] : [\"dragdrop\", \"paste\"];\n\n    // --------- destroy:composer event ---------\n    dom.observe(iframe, \"DOMNodeRemoved\", function() {\n      clearInterval(domNodeRemovedInterval);\n      that.parent.fire(\"destroy:composer\");\n    });\n\n    // DOMNodeRemoved event is not supported in IE 8\n    var domNodeRemovedInterval = setInterval(function() {\n      if (!dom.contains(document.documentElement, iframe)) {\n        clearInterval(domNodeRemovedInterval);\n        that.parent.fire(\"destroy:composer\");\n      }\n    }, 250);\n\n\n    // --------- Focus & blur logic ---------\n    dom.observe(focusBlurElement, \"focus\", function() {\n      that.parent.fire(\"focus\").fire(\"focus:composer\");\n\n      // Delay storing of state until all focus handler are fired\n      // especially the one which resets the placeholder\n      setTimeout(function() { state = that.getValue(); }, 0);\n    });\n\n    dom.observe(focusBlurElement, \"blur\", function() {\n      if (state !== that.getValue()) {\n        that.parent.fire(\"change\").fire(\"change:composer\");\n      }\n      that.parent.fire(\"blur\").fire(\"blur:composer\");\n    });\n    \n    if (wysihtml5.browser.isIos()) {\n      // When on iPad/iPhone/IPod after clicking outside of editor, the editor loses focus\n      // but the UI still acts as if the editor has focus (blinking caret and onscreen keyboard visible)\n      // We prevent that by focusing a temporary input element which immediately loses focus\n      dom.observe(element, \"blur\", function() {\n        var input = element.ownerDocument.createElement(\"input\"),\n            originalScrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n            originalScrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\n        try {\n          that.selection.insertNode(input);\n        } catch(e) {\n          element.appendChild(input);\n        }\n        input.focus();\n        input.parentNode.removeChild(input);\n        \n        window.scrollTo(originalScrollLeft, originalScrollTop);\n      });\n    }\n\n    // --------- Drag & Drop logic ---------\n    dom.observe(element, \"dragenter\", function() {\n      that.parent.fire(\"unset_placeholder\");\n    });\n\n    if (browser.firesOnDropOnlyWhenOnDragOverIsCancelled()) {\n      dom.observe(element, [\"dragover\", \"dragenter\"], function(event) {\n        event.preventDefault();\n      });\n    }\n\n    dom.observe(element, pasteEvents, function(event) {\n      var dataTransfer = event.dataTransfer,\n          data;\n\n      if (dataTransfer && browser.supportsDataTransfer()) {\n        data = dataTransfer.getData(\"text/html\") || dataTransfer.getData(\"text/plain\");\n      }\n      if (data) {\n        element.focus();\n        that.commands.exec(\"insertHTML\", data);\n        that.parent.fire(\"paste\").fire(\"paste:composer\");\n        event.stopPropagation();\n        event.preventDefault();\n      } else {\n        setTimeout(function() {\n          that.parent.fire(\"paste\").fire(\"paste:composer\");\n        }, 0);\n      }\n    });\n\n    // --------- neword event ---------\n    dom.observe(element, \"keyup\", function(event) {\n      var keyCode = event.keyCode;\n      if (keyCode === wysihtml5.SPACE_KEY || keyCode === wysihtml5.ENTER_KEY) {\n        that.parent.fire(\"newword:composer\");\n      }\n    });\n\n    this.parent.observe(\"paste:composer\", function() {\n      setTimeout(function() { that.parent.fire(\"newword:composer\"); }, 0);\n    });\n\n    // --------- Make sure that images are selected when clicking on them ---------\n    if (!browser.canSelectImagesInContentEditable()) {\n      dom.observe(element, \"mousedown\", function(event) {\n        var target = event.target;\n        if (target.nodeName === \"IMG\") {\n          that.selection.selectNode(target);\n          event.preventDefault();\n        }\n      });\n    }\n    \n    // --------- Shortcut logic ---------\n    dom.observe(element, \"keydown\", function(event) {\n      var keyCode  = event.keyCode,\n          command  = shortcuts[keyCode];\n      if ((event.ctrlKey || event.metaKey) && !event.altKey && command) {\n        that.commands.exec(command);\n        event.preventDefault();\n      }\n    });\n\n    // --------- Make sure that when pressing backspace/delete on selected images deletes the image and it's anchor ---------\n    dom.observe(element, \"keydown\", function(event) {\n      var target  = that.selection.getSelectedNode(true),\n          keyCode = event.keyCode,\n          parent;\n      if (target && target.nodeName === \"IMG\" && (keyCode === wysihtml5.BACKSPACE_KEY || keyCode === wysihtml5.DELETE_KEY)) { // 8 => backspace, 46 => delete\n        parent = target.parentNode;\n        // delete the <img>\n        parent.removeChild(target);\n        // and it's parent <a> too if it hasn't got any other child nodes\n        if (parent.nodeName === \"A\" && !parent.firstChild) {\n          parent.parentNode.removeChild(parent);\n        }\n\n        setTimeout(function() { wysihtml5.quirks.redraw(element); }, 0);\n        event.preventDefault();\n      }\n    });\n\n    // --------- Show url in tooltip when hovering links or images ---------\n    var titlePrefixes = {\n      IMG: \"Image: \",\n      A:   \"Link: \"\n    };\n    \n    dom.observe(element, \"mouseover\", function(event) {\n      var target   = event.target,\n          nodeName = target.nodeName,\n          title;\n      if (nodeName !== \"A\" && nodeName !== \"IMG\") {\n        return;\n      }\n      var hasTitle = target.hasAttribute(\"title\");\n      if(!hasTitle){\n        title = titlePrefixes[nodeName] + (target.getAttribute(\"href\") || target.getAttribute(\"src\"));\n        target.setAttribute(\"title\", title);\n      }\n    });\n  };\n})(wysihtml5);/**\n * Class that takes care that the value of the composer and the textarea is always in sync\n */\n(function(wysihtml5) {\n  var INTERVAL = 400;\n  \n  wysihtml5.views.Synchronizer = Base.extend(\n    /** @scope wysihtml5.views.Synchronizer.prototype */ {\n\n    constructor: function(editor, textarea, composer) {\n      this.editor   = editor;\n      this.textarea = textarea;\n      this.composer = composer;\n\n      this._observe();\n    },\n\n    /**\n     * Sync html from composer to textarea\n     * Takes care of placeholders\n     * @param {Boolean} shouldParseHtml Whether the html should be sanitized before inserting it into the textarea\n     */\n    fromComposerToTextarea: function(shouldParseHtml) {\n      this.textarea.setValue(wysihtml5.lang.string(this.composer.getValue()).trim(), shouldParseHtml);\n    },\n\n    /**\n     * Sync value of textarea to composer\n     * Takes care of placeholders\n     * @param {Boolean} shouldParseHtml Whether the html should be sanitized before inserting it into the composer\n     */\n    fromTextareaToComposer: function(shouldParseHtml) {\n      var textareaValue = this.textarea.getValue();\n      if (textareaValue) {\n        this.composer.setValue(textareaValue, shouldParseHtml);\n      } else {\n        this.composer.clear();\n        this.editor.fire(\"set_placeholder\");\n      }\n    },\n\n    /**\n     * Invoke syncing based on view state\n     * @param {Boolean} shouldParseHtml Whether the html should be sanitized before inserting it into the composer/textarea\n     */\n    sync: function(shouldParseHtml) {\n      if (this.editor.currentView.name === \"textarea\") {\n        this.fromTextareaToComposer(shouldParseHtml);\n      } else {\n        this.fromComposerToTextarea(shouldParseHtml);\n      }\n    },\n\n    /**\n     * Initializes interval-based syncing\n     * also makes sure that on-submit the composer's content is synced with the textarea\n     * immediately when the form gets submitted\n     */\n    _observe: function() {\n      var interval,\n          that          = this,\n          form          = this.textarea.element.form,\n          startInterval = function() {\n            interval = setInterval(function() { that.fromComposerToTextarea(); }, INTERVAL);\n          },\n          stopInterval  = function() {\n            clearInterval(interval);\n            interval = null;\n          };\n\n      startInterval();\n\n      if (form) {\n        // If the textarea is in a form make sure that after onreset and onsubmit the composer\n        // has the correct state\n        wysihtml5.dom.observe(form, \"submit\", function() {\n          that.sync(true);\n        });\n        wysihtml5.dom.observe(form, \"reset\", function() {\n          setTimeout(function() { that.fromTextareaToComposer(); }, 0);\n        });\n      }\n\n      this.editor.observe(\"change_view\", function(view) {\n        if (view === \"composer\" && !interval) {\n          that.fromTextareaToComposer(true);\n          startInterval();\n        } else if (view === \"textarea\") {\n          that.fromComposerToTextarea(true);\n          stopInterval();\n        }\n      });\n\n      this.editor.observe(\"destroy:composer\", stopInterval);\n    }\n  });\n})(wysihtml5);\nwysihtml5.views.Textarea = wysihtml5.views.View.extend(\n  /** @scope wysihtml5.views.Textarea.prototype */ {\n  name: \"textarea\",\n  \n  constructor: function(parent, textareaElement, config) {\n    this.base(parent, textareaElement, config);\n    \n    this._observe();\n  },\n  \n  clear: function() {\n    this.element.value = \"\";\n  },\n  \n  getValue: function(parse) {\n    var value = this.isEmpty() ? \"\" : this.element.value;\n    if (parse) {\n      value = this.parent.parse(value);\n    }\n    return value;\n  },\n  \n  setValue: function(html, parse) {\n    if (parse) {\n      html = this.parent.parse(html);\n    }\n    this.element.value = html;\n  },\n  \n  hasPlaceholderSet: function() {\n    var supportsPlaceholder = wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),\n        placeholderText     = this.element.getAttribute(\"placeholder\") || null,\n        value               = this.element.value,\n        isEmpty             = !value;\n    return (supportsPlaceholder && isEmpty) || (value === placeholderText);\n  },\n  \n  isEmpty: function() {\n    return !wysihtml5.lang.string(this.element.value).trim() || this.hasPlaceholderSet();\n  },\n  \n  _observe: function() {\n    var element = this.element,\n        parent  = this.parent,\n        eventMapping = {\n          focusin:  \"focus\",\n          focusout: \"blur\"\n        },\n        /**\n         * Calling focus() or blur() on an element doesn't synchronously trigger the attached focus/blur events\n         * This is the case for focusin and focusout, so let's use them whenever possible, kkthxbai\n         */\n        events = wysihtml5.browser.supportsEvent(\"focusin\") ? [\"focusin\", \"focusout\", \"change\"] : [\"focus\", \"blur\", \"change\"];\n    \n    parent.observe(\"beforeload\", function() {\n      wysihtml5.dom.observe(element, events, function(event) {\n        var eventName = eventMapping[event.type] || event.type;\n        parent.fire(eventName).fire(eventName + \":textarea\");\n      });\n      \n      wysihtml5.dom.observe(element, [\"paste\", \"drop\"], function() {\n        setTimeout(function() { parent.fire(\"paste\").fire(\"paste:textarea\"); }, 0);\n      });\n    });\n  }\n});/**\n * Toolbar Dialog\n *\n * @param {Element} link The toolbar link which causes the dialog to show up\n * @param {Element} container The dialog container\n *\n * @example\n *    <!-- Toolbar link -->\n *    <a data-wysihtml5-command=\"insertImage\">insert an image</a>\n *\n *    <!-- Dialog -->\n *    <div data-wysihtml5-dialog=\"insertImage\" style=\"display: none;\">\n *      <label>\n *        URL: <input data-wysihtml5-dialog-field=\"src\" value=\"http://\">\n *      </label>\n *      <label>\n *        Alternative text: <input data-wysihtml5-dialog-field=\"alt\" value=\"\">\n *      </label>\n *    </div>\n *\n *    <script>\n *      var dialog = new wysihtml5.toolbar.Dialog(\n *        document.querySelector(\"[data-wysihtml5-command='insertImage']\"),\n *        document.querySelector(\"[data-wysihtml5-dialog='insertImage']\")\n *      );\n *      dialog.observe(\"save\", function(attributes) {\n *        // do something\n *      });\n *    </script>\n */\n(function(wysihtml5) {\n  var dom                     = wysihtml5.dom,\n      CLASS_NAME_OPENED       = \"wysihtml5-command-dialog-opened\",\n      SELECTOR_FORM_ELEMENTS  = \"input, select, textarea\",\n      SELECTOR_FIELDS         = \"[data-wysihtml5-dialog-field]\",\n      ATTRIBUTE_FIELDS        = \"data-wysihtml5-dialog-field\";\n      \n  \n  wysihtml5.toolbar.Dialog = wysihtml5.lang.Dispatcher.extend(\n    /** @scope wysihtml5.toolbar.Dialog.prototype */ {\n    constructor: function(link, container) {\n      this.link       = link;\n      this.container  = container;\n    },\n\n    _observe: function() {\n      if (this._observed) {\n        return;\n      }\n      \n      var that = this,\n          callbackWrapper = function(event) {\n            var attributes = that._serialize();\n            if (attributes == that.elementToChange) {\n              that.fire(\"edit\", attributes);\n            } else {\n              that.fire(\"save\", attributes);\n            }\n            that.hide();\n            event.preventDefault();\n            event.stopPropagation();\n          };\n\n      dom.observe(that.link, \"click\", function(event) {\n        if (dom.hasClass(that.link, CLASS_NAME_OPENED)) {\n          setTimeout(function() { that.hide(); }, 0);\n        }\n      });\n\n      dom.observe(this.container, \"keydown\", function(event) {\n        var keyCode = event.keyCode;\n        if (keyCode === wysihtml5.ENTER_KEY) {\n          callbackWrapper(event);\n        }\n        if (keyCode === wysihtml5.ESCAPE_KEY) {\n          that.hide();\n        }\n      });\n\n      dom.delegate(this.container, \"[data-wysihtml5-dialog-action=save]\", \"click\", callbackWrapper);\n\n      dom.delegate(this.container, \"[data-wysihtml5-dialog-action=cancel]\", \"click\", function(event) {\n        that.fire(\"cancel\");\n        that.hide();\n        event.preventDefault();\n        event.stopPropagation();\n      });\n\n      var formElements  = this.container.querySelectorAll(SELECTOR_FORM_ELEMENTS),\n          i             = 0,\n          length        = formElements.length,\n          _clearInterval = function() { clearInterval(that.interval); };\n      for (; i<length; i++) {\n        dom.observe(formElements[i], \"change\", _clearInterval);\n      }\n\n      this._observed = true;\n    },\n\n    /**\n     * Grabs all fields in the dialog and puts them in key=>value style in an object which\n     * then gets returned\n     */\n    _serialize: function() {\n      var data    = this.elementToChange || {},\n          fields  = this.container.querySelectorAll(SELECTOR_FIELDS),\n          length  = fields.length,\n          i       = 0;\n      for (; i<length; i++) {\n        data[fields[i].getAttribute(ATTRIBUTE_FIELDS)] = fields[i].value;\n      }\n      return data;\n    },\n\n    /**\n     * Takes the attributes of the \"elementToChange\"\n     * and inserts them in their corresponding dialog input fields\n     * \n     * Assume the \"elementToChange\" looks like this:\n     *    <a href=\"http://www.google.com\" target=\"_blank\">foo</a>\n     *\n     * and we have the following dialog:\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"href\" value=\"\">\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"target\" value=\"\">\n     * \n     * after calling _interpolate() the dialog will look like this\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"href\" value=\"http://www.google.com\">\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"target\" value=\"_blank\">\n     *\n     * Basically it adopted the attribute values into the corresponding input fields\n     *\n     */\n    _interpolate: function(avoidHiddenFields) {\n      var field,\n          fieldName,\n          newValue,\n          focusedElement = document.querySelector(\":focus\"),\n          fields         = this.container.querySelectorAll(SELECTOR_FIELDS),\n          length         = fields.length,\n          i              = 0;\n      for (; i<length; i++) {\n        field = fields[i];\n        \n        // Never change elements where the user is currently typing in\n        if (field === focusedElement) {\n          continue;\n        }\n        \n        // Don't update hidden fields\n        // See https://github.com/xing/wysihtml5/pull/14\n        if (avoidHiddenFields && field.type === \"hidden\") {\n          continue;\n        }\n        \n        fieldName = field.getAttribute(ATTRIBUTE_FIELDS);\n        newValue  = this.elementToChange ? (this.elementToChange[fieldName] || \"\") : field.defaultValue;\n        field.value = newValue;\n      }\n    },\n\n    /**\n     * Show the dialog element\n     */\n    show: function(elementToChange) {\n      var that        = this,\n          firstField  = this.container.querySelector(SELECTOR_FORM_ELEMENTS);\n      this.elementToChange = elementToChange;\n      this._observe();\n      this._interpolate();\n      if (elementToChange) {\n        this.interval = setInterval(function() { that._interpolate(true); }, 500);\n      }\n      dom.addClass(this.link, CLASS_NAME_OPENED);\n      this.container.style.display = \"\";\n      this.fire(\"show\");\n      if (firstField && !elementToChange) {\n        try {\n          firstField.focus();\n        } catch(e) {}\n      }\n    },\n\n    /**\n     * Hide the dialog element\n     */\n    hide: function() {\n      clearInterval(this.interval);\n      this.elementToChange = null;\n      dom.removeClass(this.link, CLASS_NAME_OPENED);\n      this.container.style.display = \"none\";\n      this.fire(\"hide\");\n    }\n  });\n})(wysihtml5);\n/**\n * Converts speech-to-text and inserts this into the editor\n * As of now (2011/03/25) this only is supported in Chrome >= 11\n *\n * Note that it sends the recorded audio to the google speech recognition api:\n * http://stackoverflow.com/questions/4361826/does-chrome-have-buil-in-speech-recognition-for-input-type-text-x-webkit-speec\n *\n * Current HTML5 draft can be found here\n * http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html\n * \n * \"Accessing Google Speech API Chrome 11\"\n * http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/\n */\n(function(wysihtml5) {\n  var dom = wysihtml5.dom;\n  \n  var linkStyles = {\n    position: \"relative\"\n  };\n  \n  var wrapperStyles = {\n    left:     0,\n    margin:   0,\n    opacity:  0,\n    overflow: \"hidden\",\n    padding:  0,\n    position: \"absolute\",\n    top:      0,\n    zIndex:   1\n  };\n  \n  var inputStyles = {\n    cursor:     \"inherit\",\n    fontSize:   \"50px\",\n    height:     \"50px\",\n    marginTop:  \"-25px\",\n    outline:    0,\n    padding:    0,\n    position:   \"absolute\",\n    right:      \"-4px\",\n    top:        \"50%\"\n  };\n  \n  var inputAttributes = {\n    \"x-webkit-speech\": \"\",\n    \"speech\":          \"\"\n  };\n  \n  wysihtml5.toolbar.Speech = function(parent, link) {\n    var input = document.createElement(\"input\");\n    if (!wysihtml5.browser.supportsSpeechApiOn(input)) {\n      link.style.display = \"none\";\n      return;\n    }\n    \n    var wrapper = document.createElement(\"div\");\n    \n    wysihtml5.lang.object(wrapperStyles).merge({\n      width:  link.offsetWidth  + \"px\",\n      height: link.offsetHeight + \"px\"\n    });\n    \n    dom.insert(input).into(wrapper);\n    dom.insert(wrapper).into(link);\n    \n    dom.setStyles(inputStyles).on(input);\n    dom.setAttributes(inputAttributes).on(input)\n    \n    dom.setStyles(wrapperStyles).on(wrapper);\n    dom.setStyles(linkStyles).on(link);\n    \n    var eventName = \"onwebkitspeechchange\" in input ? \"webkitspeechchange\" : \"speechchange\";\n    dom.observe(input, eventName, function() {\n      parent.execCommand(\"insertText\", input.value);\n      input.value = \"\";\n    });\n    \n    dom.observe(input, \"click\", function(event) {\n      if (dom.hasClass(link, \"wysihtml5-command-disabled\")) {\n        event.preventDefault();\n      }\n      \n      event.stopPropagation();\n    });\n  };\n})(wysihtml5);/**\n * Toolbar\n *\n * @param {Object} parent Reference to instance of Editor instance\n * @param {Element} container Reference to the toolbar container element\n *\n * @example\n *    <div id=\"toolbar\">\n *      <a data-wysihtml5-command=\"createLink\">insert link</a>\n *      <a data-wysihtml5-command=\"formatBlock\" data-wysihtml5-command-value=\"h1\">insert h1</a>\n *    </div>\n *\n *    <script>\n *      var toolbar = new wysihtml5.toolbar.Toolbar(editor, document.getElementById(\"toolbar\"));\n *    </script>\n */\n(function(wysihtml5) {\n  var CLASS_NAME_COMMAND_DISABLED   = \"wysihtml5-command-disabled\",\n      CLASS_NAME_COMMANDS_DISABLED  = \"wysihtml5-commands-disabled\",\n      CLASS_NAME_COMMAND_ACTIVE     = \"wysihtml5-command-active\",\n      CLASS_NAME_ACTION_ACTIVE      = \"wysihtml5-action-active\",\n      dom                           = wysihtml5.dom;\n  \n  wysihtml5.toolbar.Toolbar = Base.extend(\n    /** @scope wysihtml5.toolbar.Toolbar.prototype */ {\n    constructor: function(editor, container) {\n      this.editor     = editor;\n      this.container  = typeof(container) === \"string\" ? document.getElementById(container) : container;\n      this.composer   = editor.composer;\n\n      this._getLinks(\"command\");\n      this._getLinks(\"action\");\n\n      this._observe();\n      this.show();\n      \n      var speechInputLinks  = this.container.querySelectorAll(\"[data-wysihtml5-command=insertSpeech]\"),\n          length            = speechInputLinks.length,\n          i                 = 0;\n      for (; i<length; i++) {\n        new wysihtml5.toolbar.Speech(this, speechInputLinks[i]);\n      }\n    },\n\n    _getLinks: function(type) {\n      var links   = this[type + \"Links\"] = wysihtml5.lang.array(this.container.querySelectorAll(\"[data-wysihtml5-\" + type + \"]\")).get(),\n          length  = links.length,\n          i       = 0,\n          mapping = this[type + \"Mapping\"] = {},\n          link,\n          group,\n          name,\n          value,\n          dialog;\n      for (; i<length; i++) {\n        link    = links[i];\n        name    = link.getAttribute(\"data-wysihtml5-\" + type);\n        value   = link.getAttribute(\"data-wysihtml5-\" + type + \"-value\");\n        group   = this.container.querySelector(\"[data-wysihtml5-\" + type + \"-group='\" + name + \"']\");\n        dialog  = this._getDialog(link, name);\n        \n        mapping[name + \":\" + value] = {\n          link:   link,\n          group:  group,\n          name:   name,\n          value:  value,\n          dialog: dialog,\n          state:  false\n        };\n      }\n    },\n\n    _getDialog: function(link, command) {\n      var that          = this,\n          dialogElement = this.container.querySelector(\"[data-wysihtml5-dialog='\" + command + \"']\"),\n          dialog,\n          caretBookmark;\n      \n      if (dialogElement) {\n        dialog = new wysihtml5.toolbar.Dialog(link, dialogElement);\n\n        dialog.observe(\"show\", function() {\n          caretBookmark = that.composer.selection.getBookmark();\n\n          that.editor.fire(\"show:dialog\", { command: command, dialogContainer: dialogElement, commandLink: link });\n        });\n\n        dialog.observe(\"save\", function(attributes) {\n          if (caretBookmark) {\n            that.composer.selection.setBookmark(caretBookmark);\n          }\n          that._execCommand(command, attributes);\n          \n          that.editor.fire(\"save:dialog\", { command: command, dialogContainer: dialogElement, commandLink: link });\n        });\n\n        dialog.observe(\"cancel\", function() {\n          that.editor.focus(false);\n          that.editor.fire(\"cancel:dialog\", { command: command, dialogContainer: dialogElement, commandLink: link });\n        });\n      }\n      return dialog;\n    },\n\n    /**\n     * @example\n     *    var toolbar = new wysihtml5.Toolbar();\n     *    // Insert a <blockquote> element or wrap current selection in <blockquote>\n     *    toolbar.execCommand(\"formatBlock\", \"blockquote\");\n     */\n    execCommand: function(command, commandValue) {\n      if (this.commandsDisabled) {\n        return;\n      }\n\n      var commandObj = this.commandMapping[command + \":\" + commandValue];\n\n      // Show dialog when available\n      if (commandObj && commandObj.dialog && !commandObj.state) {\n        commandObj.dialog.show();\n      } else {\n        this._execCommand(command, commandValue);\n      }\n    },\n\n    _execCommand: function(command, commandValue) {\n      // Make sure that composer is focussed (false => don't move caret to the end)\n      this.editor.focus(false);\n\n      this.composer.commands.exec(command, commandValue);\n      this._updateLinkStates();\n    },\n\n    execAction: function(action) {\n      var editor = this.editor;\n      switch(action) {\n        case \"change_view\":\n          if (editor.currentView === editor.textarea) {\n            editor.fire(\"change_view\", \"composer\");\n          } else {\n            editor.fire(\"change_view\", \"textarea\");\n          }\n          break;\n      }\n    },\n\n    _observe: function() {\n      var that      = this,\n          editor    = this.editor,\n          container = this.container,\n          links     = this.commandLinks.concat(this.actionLinks),\n          length    = links.length,\n          i         = 0;\n      \n      for (; i<length; i++) {\n        // 'javascript:;' and unselectable=on Needed for IE, but done in all browsers to make sure that all get the same css applied\n        // (you know, a:link { ... } doesn't match anchors with missing href attribute)\n        dom.setAttributes({\n          href:         \"javascript:;\",\n          unselectable: \"on\"\n        }).on(links[i]);\n      }\n\n      // Needed for opera\n      dom.delegate(container, \"[data-wysihtml5-command]\", \"mousedown\", function(event) { event.preventDefault(); });\n      \n      dom.delegate(container, \"[data-wysihtml5-command]\", \"click\", function(event) {\n        var link          = this,\n            command       = link.getAttribute(\"data-wysihtml5-command\"),\n            commandValue  = link.getAttribute(\"data-wysihtml5-command-value\");\n        that.execCommand(command, commandValue);\n        event.preventDefault();\n      });\n\n      dom.delegate(container, \"[data-wysihtml5-action]\", \"click\", function(event) {\n        var action = this.getAttribute(\"data-wysihtml5-action\");\n        that.execAction(action);\n        event.preventDefault();\n      });\n\n      editor.observe(\"focus:composer\", function() {\n        that.bookmark = null;\n        clearInterval(that.interval);\n        that.interval = setInterval(function() { that._updateLinkStates(); }, 500);\n      });\n\n      editor.observe(\"blur:composer\", function() {\n        clearInterval(that.interval);\n      });\n\n      editor.observe(\"destroy:composer\", function() {\n        clearInterval(that.interval);\n      });\n\n      editor.observe(\"change_view\", function(currentView) {\n        // Set timeout needed in order to let the blur event fire first\n        setTimeout(function() {\n          that.commandsDisabled = (currentView !== \"composer\");\n          that._updateLinkStates();\n          if (that.commandsDisabled) {\n            dom.addClass(container, CLASS_NAME_COMMANDS_DISABLED);\n          } else {\n            dom.removeClass(container, CLASS_NAME_COMMANDS_DISABLED);\n          }\n        }, 0);\n      });\n    },\n\n    _updateLinkStates: function() {\n      var element           = this.composer.element,\n          commandMapping    = this.commandMapping,\n          actionMapping     = this.actionMapping,\n          i,\n          state,\n          action,\n          command;\n      // every millisecond counts... this is executed quite often\n      for (i in commandMapping) {\n        command = commandMapping[i];\n        if (this.commandsDisabled) {\n          state = false;\n          dom.removeClass(command.link, CLASS_NAME_COMMAND_ACTIVE);\n          if (command.group) {\n            dom.removeClass(command.group, CLASS_NAME_COMMAND_ACTIVE);\n          }\n          if (command.dialog) {\n            command.dialog.hide();\n          }\n        } else {\n          state = this.composer.commands.state(command.name, command.value);\n          if (wysihtml5.lang.object(state).isArray()) {\n            // Grab first and only object/element in state array, otherwise convert state into boolean\n            // to avoid showing a dialog for multiple selected elements which may have different attributes\n            // eg. when two links with different href are selected, the state will be an array consisting of both link elements\n            // but the dialog interface can only update one\n            state = state.length === 1 ? state[0] : true;\n          }\n          dom.removeClass(command.link, CLASS_NAME_COMMAND_DISABLED);\n          if (command.group) {\n            dom.removeClass(command.group, CLASS_NAME_COMMAND_DISABLED);\n          }\n        }\n\n        if (command.state === state) {\n          continue;\n        }\n\n        command.state = state;\n        if (state) {\n          dom.addClass(command.link, CLASS_NAME_COMMAND_ACTIVE);\n          if (command.group) {\n            dom.addClass(command.group, CLASS_NAME_COMMAND_ACTIVE);\n          }\n          if (command.dialog) {\n            if (typeof(state) === \"object\") {\n              command.dialog.show(state);\n            } else {\n              command.dialog.hide();\n            }\n          }\n        } else {\n          dom.removeClass(command.link, CLASS_NAME_COMMAND_ACTIVE);\n          if (command.group) {\n            dom.removeClass(command.group, CLASS_NAME_COMMAND_ACTIVE);\n          }\n          if (command.dialog) {\n            command.dialog.hide();\n          }\n        }\n      }\n      \n      for (i in actionMapping) {\n        action = actionMapping[i];\n        \n        if (action.name === \"change_view\") {\n          action.state = this.editor.currentView === this.editor.textarea;\n          if (action.state) {\n            dom.addClass(action.link, CLASS_NAME_ACTION_ACTIVE);\n          } else {\n            dom.removeClass(action.link, CLASS_NAME_ACTION_ACTIVE);\n          }\n        }\n      }\n    },\n\n    show: function() {\n      this.container.style.display = \"\";\n    },\n\n    hide: function() {\n      this.container.style.display = \"none\";\n    }\n  });\n  \n})(wysihtml5);\n/**\n * WYSIHTML5 Editor\n *\n * @param {Element} textareaElement Reference to the textarea which should be turned into a rich text interface\n * @param {Object} [config] See defaultConfig object below for explanation of each individual config option\n *\n * @events\n *    load\n *    beforeload (for internal use only)\n *    focus\n *    focus:composer\n *    focus:textarea\n *    blur\n *    blur:composer\n *    blur:textarea\n *    change\n *    change:composer\n *    change:textarea\n *    paste\n *    paste:composer\n *    paste:textarea\n *    newword:composer\n *    destroy:composer\n *    undo:composer\n *    redo:composer\n *    beforecommand:composer\n *    aftercommand:composer\n *    change_view\n */\n(function(wysihtml5) {\n  var undef;\n  \n  var defaultConfig = {\n    // Give the editor a name, the name will also be set as class name on the iframe and on the iframe's body \n    name:                 undef,\n    // Whether the editor should look like the textarea (by adopting styles)\n    style:                true,\n    // Id of the toolbar element, pass falsey value if you don't want any toolbar logic\n    toolbar:              undef,\n    // Whether urls, entered by the user should automatically become clickable-links\n    autoLink:             true,\n    // Object which includes parser rules to apply when html gets inserted via copy & paste\n    // See parser_rules/*.js for examples\n    parserRules:          { tags: { br: {}, span: {}, div: {}, p: {} }, classes: {} },\n    // Parser method to use when the user inserts content via copy & paste\n    parser:               wysihtml5.dom.parse,\n    // Class name which should be set on the contentEditable element in the created sandbox iframe, can be styled via the 'stylesheets' option\n    composerClassName:    \"wysihtml5-editor\",\n    // Class name to add to the body when the wysihtml5 editor is supported\n    bodyClassName:        \"wysihtml5-supported\",\n    // Array (or single string) of stylesheet urls to be loaded in the editor's iframe\n    stylesheets:          [],\n    // Placeholder text to use, defaults to the placeholder attribute on the textarea element\n    placeholderText:      undef,\n    // Whether the composer should allow the user to manually resize images, tables etc.\n    allowObjectResizing:  true,\n    // Whether the rich text editor should be rendered on touch devices (wysihtml5 >= 0.3.0 comes with basic support for iOS 5)\n    supportTouchDevices:  true\n  };\n  \n  wysihtml5.Editor = wysihtml5.lang.Dispatcher.extend(\n    /** @scope wysihtml5.Editor.prototype */ {\n    constructor: function(textareaElement, config) {\n      this.textareaElement  = typeof(textareaElement) === \"string\" ? document.getElementById(textareaElement) : textareaElement;\n      this.config           = wysihtml5.lang.object({}).merge(defaultConfig).merge(config).get();\n      this.textarea         = new wysihtml5.views.Textarea(this, this.textareaElement, this.config);\n      this.currentView      = this.textarea;\n      this._isCompatible    = wysihtml5.browser.supported();\n      \n      // Sort out unsupported/unwanted browsers here\n      if (!this._isCompatible || (!this.config.supportTouchDevices && wysihtml5.browser.isTouchDevice())) {\n        var that = this;\n        setTimeout(function() { that.fire(\"beforeload\").fire(\"load\"); }, 0);\n        return;\n      }\n      \n      // Add class name to body, to indicate that the editor is supported\n      wysihtml5.dom.addClass(document.body, this.config.bodyClassName);\n      \n      this.composer = new wysihtml5.views.Composer(this, this.textareaElement, this.config);\n      this.currentView = this.composer;\n      \n      if (typeof(this.config.parser) === \"function\") {\n        this._initParser();\n      }\n      \n      this.observe(\"beforeload\", function() {\n        this.synchronizer = new wysihtml5.views.Synchronizer(this, this.textarea, this.composer);\n        if (this.config.toolbar) {\n          this.toolbar = new wysihtml5.toolbar.Toolbar(this, this.config.toolbar);\n        }\n      });\n      \n      try {\n        console.log(\"Heya! This page is using wysihtml5 for rich text editing. Check out https://github.com/xing/wysihtml5\");\n      } catch(e) {}\n    },\n    \n    isCompatible: function() {\n      return this._isCompatible;\n    },\n\n    clear: function() {\n      this.currentView.clear();\n      return this;\n    },\n\n    getValue: function(parse) {\n      return this.currentView.getValue(parse);\n    },\n\n    setValue: function(html, parse) {\n      if (!html) {\n        return this.clear();\n      }\n      this.currentView.setValue(html, parse);\n      return this;\n    },\n\n    focus: function(setToEnd) {\n      this.currentView.focus(setToEnd);\n      return this;\n    },\n\n    /**\n     * Deactivate editor (make it readonly)\n     */\n    disable: function() {\n      this.currentView.disable();\n      return this;\n    },\n    \n    /**\n     * Activate editor\n     */\n    enable: function() {\n      this.currentView.enable();\n      return this;\n    },\n    \n    isEmpty: function() {\n      return this.currentView.isEmpty();\n    },\n    \n    hasPlaceholderSet: function() {\n      return this.currentView.hasPlaceholderSet();\n    },\n    \n    parse: function(htmlOrElement) {\n      var returnValue = this.config.parser(htmlOrElement, this.config.parserRules, this.composer.sandbox.getDocument(), true);\n      if (typeof(htmlOrElement) === \"object\") {\n        wysihtml5.quirks.redraw(htmlOrElement);\n      }\n      return returnValue;\n    },\n    \n    /**\n     * Prepare html parser logic\n     *  - Observes for paste and drop\n     */\n    _initParser: function() {\n      this.observe(\"paste:composer\", function() {\n        var keepScrollPosition  = true,\n            that                = this;\n        that.composer.selection.executeAndRestore(function() {\n          wysihtml5.quirks.cleanPastedHTML(that.composer.element);\n          that.parse(that.composer.element);\n        }, keepScrollPosition);\n      });\n      \n      this.observe(\"paste:textarea\", function() {\n        var value   = this.textarea.getValue(),\n            newValue;\n        newValue = this.parse(value);\n        this.textarea.setValue(newValue);\n      });\n    }\n  });\n})(wysihtml5);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css",
    "content": "/*used for inbox compose, reply forms*/\n.inbox-editor {\n  padding: 10px;\n  margin: 0 !important;\n}\n\n/*used for inbox reply form, for the message blockquote on reply*/\nblockquote {\n  margin-top: 20px;\n  margin-left: 10px;\n  margin-bottom: 20px;\n  border-left: 1px solid #666 !important;\n  padding-left: 5px;\n  display: block;\n  opacity: 0.7;\n  filter: alpha(opacity=70);\n}\n\n/* used by the wysiwyg*/\n.wysiwyg-color-black {\n  color: black;\n}\n\n.wysiwyg-color-silver {\n  color: silver;\n}\n\n.wysiwyg-color-gray {\n  color: gray;\n}\n\n.wysiwyg-color-white {\n  color: white;\n}\n\n.wysiwyg-color-maroon {\n  color: maroon;\n}\n\n.wysiwyg-color-red {\n  color: red;\n}\n\n.wysiwyg-color-purple {\n  color: purple;\n}\n\n.wysiwyg-color-fuchsia {\n  color: fuchsia;\n}\n\n.wysiwyg-color-green {\n  color: green;\n}\n\n.wysiwyg-color-lime {\n  color: lime;\n}\n\n.wysiwyg-color-olive {\n  color: olive;\n}\n\n.wysiwyg-color-yellow {\n  color: yellow;\n}\n\n.wysiwyg-color-navy {\n  color: navy;\n}\n\n.wysiwyg-color-blue {\n  color: blue;\n}\n\n.wysiwyg-color-teal {\n  color: teal;\n}\n\n.wysiwyg-color-aqua {\n  color: aqua;\n}\n\n.wysiwyg-color-orange {\n  color: orange;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/clockface/css/clockface.css",
    "content": ".clearfix {\n  *zoom: 1;\n}\n.clearfix:before,\n.clearfix:after {\n  display: table;\n  content: \"\";\n  line-height: 0;\n}\n.clearfix:after {\n  clear: both;\n}\n.hide-text {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.input-block-level {\n  display: block;\n  width: 100%;\n  min-height: 30px;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.clockface {\n  width: 160px;\n  padding: 3px;\n  text-align: center;\n  /*\n    .l3 .center span {\n    \tvertical-align: middle;\n\t\tdisplay: inline-block;\n\t\t.ie7-inline-block();  \n\t\tpadding: 0 2px;  \t\n    }\n    */\n\n  /*\n    input {\n    \twidth: 20px;\n    \tmargin: 0;\n    \tvertical-align: top; \n     }\t\n\n    a {\n    \ttext-decoration: none;\n    \tpadding: 0 3px;\n    \tvertical-align: top;\n    \tfont-size: 0.85em;\n    \t.border-radius(3px);\n\n    \t&.am {margin-right: 8px;}\t\n    \t\n    \t&.active,\n    \t&.active:hover {\n    \t\t.buttonBackground(@btnSuccessBackground, spin(@btnSuccessBackground, 20));\n    \t}\n    }\n    */\n\n}\n.clockface > div {\n  clear: both;\n  overflow: auto;\n}\n.clockface .outer,\n.clockface .inner {\n  width: 22px;\n  height: 22px;\n  line-height: 22px;\n  cursor: default;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.clockface .outer.active,\n.clockface .inner.active,\n.clockface .outer.active:hover,\n.clockface .inner.active:hover {\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.clockface .outer:hover,\n.clockface .inner:hover {\n  background-color: #dcdcdc;\n}\n.clockface .outer {\n  color: gray;\n  font-size: 0.8em;\n}\n.clockface .outer.active,\n.clockface .outer.active:hover {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #5bb75b;\n  background-image: -moz-linear-gradient(top, #62c462, #51a351);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));\n  background-image: -webkit-linear-gradient(top, #62c462, #51a351);\n  background-image: -o-linear-gradient(top, #62c462, #51a351);\n  background-image: linear-gradient(to bottom, #62c462, #51a351);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);\n  border-color: #51a351 #51a351 #387038;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #51a351;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.clockface .outer.active:hover,\n.clockface .outer.active:hover:hover,\n.clockface .outer.active:active,\n.clockface .outer.active:hover:active,\n.clockface .outer.active.active,\n.clockface .outer.active:hover.active,\n.clockface .outer.active.disabled,\n.clockface .outer.active:hover.disabled,\n.clockface .outer.active[disabled],\n.clockface .outer.active:hover[disabled] {\n  color: #ffffff;\n  background-color: #51a351;\n  *background-color: #499249;\n}\n.clockface .outer.active:active,\n.clockface .outer.active:hover:active,\n.clockface .outer.active.active,\n.clockface .outer.active:hover.active {\n  background-color: #408140 \\9;\n}\n.clockface .inner.active,\n.clockface .inner.active:hover {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #0044cc;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.clockface .inner.active:hover,\n.clockface .inner.active:hover:hover,\n.clockface .inner.active:active,\n.clockface .inner.active:hover:active,\n.clockface .inner.active.active,\n.clockface .inner.active:hover.active,\n.clockface .inner.active.disabled,\n.clockface .inner.active:hover.disabled,\n.clockface .inner.active[disabled],\n.clockface .inner.active:hover[disabled] {\n  color: #ffffff;\n  background-color: #0044cc;\n  *background-color: #003bb3;\n}\n.clockface .inner.active:active,\n.clockface .inner.active:hover:active,\n.clockface .inner.active.active,\n.clockface .inner.active:hover.active {\n  background-color: #003399 \\9;\n}\n.clockface .l1 .cell,\n.clockface .l5 .cell {\n  width: 22px;\n  display: inline-block;\n  *display: inline;\n  /* IE7 inline-block hack */\n\n  *zoom: 1;\n}\n.clockface .l1 .outer {\n  margin-bottom: 3px;\n}\n.clockface .l5 .outer {\n  margin-top: 3px;\n}\n.clockface .l2 .outer,\n.clockface .l3 .outer,\n.clockface .l4 .outer,\n.clockface .l2 .inner,\n.clockface .l3 .inner,\n.clockface .l4 .inner {\n  display: inline-block;\n  *display: inline;\n  /* IE7 inline-block hack */\n\n  *zoom: 1;\n  vertical-align: middle;\n}\n.clockface .l2 .left,\n.clockface .l3 .left,\n.clockface .l4 .left {\n  float: left;\n}\n.clockface .l2 .left .outer,\n.clockface .l3 .left .outer,\n.clockface .l4 .left .outer {\n  margin-right: 3px;\n}\n.clockface .l2 .right,\n.clockface .l3 .right,\n.clockface .l4 .right {\n  float: right;\n}\n.clockface .l2 .right .outer,\n.clockface .l3 .right .outer,\n.clockface .l4 .right .outer {\n  margin-left: 3px;\n}\n.clockface .ampm {\n  font-size: 0.8em;\n  text-decoration: none;\n  border-bottom: dashed 1px;\n}\n.clockface .ampm:focus {\n  outline: 0;\n  outline: thin dotted \\9;\n  /* IE6-9 */\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/clockface/js/clockface.js",
    "content": "/**\n* Clockface - v1.0.1\n* Clockface timepicker for Twitter Bootstrap\n*\n* Confusion with noon and midnight: \n* http://en.wikipedia.org/wiki/12-hour_clock\n* Here considered '00:00 am' as midnight and '12:00 pm' as noon.\n*\n* Author: Vitaliy Potapov\n* Project page: http://github.com/vitalets/clockface\n* Copyright (c) 2012 Vitaliy Potapov. Released under MIT License.\n**/\n(function ($) {\n\n    var Clockface = function (element, options) {\n        this.$element = $(element);\n        this.options = $.extend({}, $.fn.clockface.defaults, options, this.$element.data());\n        this.init();  \n     };\n\n    Clockface.prototype = {\n        constructor: Clockface, \n        init: function () {\n          //apply template\n          this.$clockface = $($.fn.clockface.template);\n          this.$clockface.find('.l1 .cell, .left.cell').html('<div class=\"outer\"></div><div class=\"inner\"></div>'); \n          this.$clockface.find('.l5 .cell, .right.cell').html('<div class=\"inner\"></div><div class=\"outer\"></div>'); \n          this.$clockface.hide();\n\n          this.$outer = this.$clockface.find('.outer');\n          this.$inner = this.$clockface.find('.inner');\n          this.$ampm = this.$clockface.find('.ampm');\n\n          //internal vars\n          this.ampm = null;\n          this.hour = null;\n          this.minute = null;\n          \n          //click am/pm \n          this.$ampm.click($.proxy(this.clickAmPm, this));\n\n          //click cell\n          this.$clockface.on('click', '.cell', $.proxy(this.click, this));\n\n          this.parseFormat();\n          this.prepareRegexp();\n\n          //set ampm text\n          this.ampmtext = this.is24 ? {am: '12-23', pm: '0-11'} : {am: 'AM', pm: 'PM'};\n\n          this.isInline = this.$element.is('div');\n          if(this.isInline) {\n            this.$clockface.addClass('clockface-inline').appendTo(this.$element);\n          } else {\n            this.$clockface.addClass('dropdown-menu').appendTo('body');\n            if(this.options.trigger === 'focus') {\n              this.$element.on('focus.clockface', $.proxy(function(e) { this.show(); }, this));\n            }\n\n            // Click outside hide it. Register single handler for all clockface widgets\n            $(document).off('click.clockface').on('click.clockface', $.proxy(function (e) {\n                var $target = $(e.target);\n                //click inside some clockface --> do nothing\n                if ($target.closest('.clockface').length) {\n                  return;\n                }\n                //iterate all open clockface and close all except current\n                $('.clockface-open').each(function(){\n                  if(this === e.target) {\n                    return;\n                  }\n                  $(this).clockface('hide');\n                });\n            }, this));\n          }\n\n          //fill minutes once\n          this.fill('minute');\n        },\n\n        /*\n        Displays widget with specified value\n        */\n        show: function(value) {\n            if(this.$clockface.is(':visible')) {\n              return;\n            }\n            if(!this.isInline) {\n                if(value === undefined) {\n                  value = this.$element.val();\n                }\n                this.$element.addClass('clockface-open');\n                this.$element.on('keydown.clockface', $.proxy(this.keydown, this));\n                this.place();\n                $(window).on('resize.clockface', $.proxy(this.place, this));\n            }\n            this.$clockface.show();\n            this.setTime(value);\n\n            //trigger shown event\n            this.$element.triggerHandler('shown.clockface', this.getTime(true));\n        },\n        /*\n        hides widget\n        */\n        hide: function() {\n            this.$clockface.hide();\n            if(!this.isInline) {\n              this.$element.removeClass('clockface-open');  \n              this.$element.off('keydown.clockface');\n              $(window).off('resize.clockface');\n            }\n\n            //trigger hidden event\n            this.$element.triggerHandler('hidden.clockface', this.getTime(true));            \n        },\n\n        /*\n        toggles show/hide\n        */\n        toggle: function(value) {\n          if(this.$clockface.is(':visible')) {\n            this.hide();\n          } else {\n            this.show(value);\n          }\n        },\n\n         /*\n        Set time of clockface. Am/pm will be set automatically.\n        Value can be Date object or string\n        */\n        setTime: function(value) {\n          var res, hour, minute, ampm = 'am';\n\n          //no new value \n          if(value === undefined) {\n            //if ampm null, it;s first showw, need to render hours ('am' by default)\n            if(this.ampm === null) {\n              this.setAmPm('am');\n            }\n            return;\n          }\n\n          //take value from Date object\n          if(value instanceof Date) {\n            hour = value.getHours();\n            minute = value.getMinutes();\n          }\n\n          //parse value from string\n          if(typeof value === 'string' && value.length) { \n            res = this.parseTime(value);\n\n            //'24' always '0'\n            if(res.hour === 24) {\n              res.hour = 0;\n            }\n\n            hour = res.hour;             \n            minute = res.minute;             \n            ampm = res.ampm;             \n          }\n\n          //try to set ampm automatically\n          if(hour > 11 && hour < 24) {\n            ampm = 'pm';\n            //for 12h format substract 12 from value \n            if(!this.is24 && hour > 12) {\n              hour -= 12;\n            }\n          } else if(hour >= 0 && hour < 11) {\n                //always set am for 24h and for '0' in 12h \n                if(this.is24 || hour === 0) {\n                   ampm = 'am';\n               } \n               //otherwise ampm should be defined in value itself and retrieved when parsing\n          }      \n\n          this.setAmPm(ampm);\n          this.setHour(hour);\n          this.setMinute(minute);\n        },   \n\n        /*\n        Set ampm and re-fill hours\n        */\n        setAmPm: function(value) {\n          if(value === this.ampm) {\n             return;\n          } else {\n             this.ampm = value === 'am' ? 'am' : 'pm';\n          }\n\n          //set link's text\n          this.$ampm.text(this.ampmtext[this.ampm]);\n\n          //re-fill and highlight hour\n          this.fill('hour');\n          this.highlight('hour');\n        },   \n        /*\n        Sets hour value and highlight if possible\n        */\n        setHour: function(value) {\n          value = parseInt(value, 10);\n          value = isNaN(value) ? null : value;\n          if(value < 0 || value > 23) {\n            value = null;\n          }\n\n          if(value === this.hour) {\n            return;\n          } else {\n            this.hour = value;\n          }\n\n          this.highlight('hour');\n        },\n\n        /*\n        Sets minute value and highlight\n        */\n        setMinute: function(value) {\n          value = parseInt(value, 10);\n          value = isNaN(value) ? null : value;\n          if(value < 0 || value > 59) {\n            value = null;\n          }\n\n          if(value === this.minute) {\n            return;\n          } else {\n            this.minute = value;\n          }\n\n          this.highlight('minute');\n        },        \n\n        /*\n        Highlights hour/minute\n        */\n        highlight: function(what) {\n          var index,\n              values = this.getValues(what),\n              value = what === 'minute' ? this.minute : this.hour,\n              $cells = what === 'minute' ? this.$outer : this.$inner;\n\n          $cells.removeClass('active');\n\n          //find index of value and highlight if possible\n          index = $.inArray(value, values);\n          if(index >= 0) {\n            $cells.eq(index).addClass('active');\n          }\n        },\n\n        /*\n        Fill values around\n        */ \n        fill: function(what) {\n          var values = this.getValues(what),\n              $cells = what === 'minute' ? this.$outer : this.$inner,\n              leadZero = what === 'minute';           \n\n          $cells.each(function(i){\n            var v = values[i];\n            if(leadZero && v < 10) {\n              v = '0' + v;\n            }\n            $(this).text(v);\n          });\n        },          \n\n        /*\n        returns values of hours or minutes, depend on ampm and 24/12 format (0-11, 12-23, 00-55, etc)\n        param what: 'hour'/'minute'\n        */\n        getValues: function(what) {\n          var values = [11, 0, 1, 10, 2, 9, 3, 8, 4, 7, 6, 5],\n              result = values.slice();\n\n          //minutes\n          if(what === 'minute') {\n              $.each(values, function(i, v) { result[i] = v*5; });\n          } else {\n            //hours\n            if(!this.is24) {\n              result[1] = 12; //need this to show '12' instead of '00' for 12h am/pm\n            }\n            if(this.is24 && this.ampm === 'pm') {\n              $.each(values, function(i, v) { result[i] = v+12; });\n            }\n          }\n          return result;\n        },\n\n        /*\n        Click cell handler.\n        Stores hour/minute and highlights.\n        On second click deselect value\n        */\n        click: function(e) {\n          var $target = $(e.target),\n              value = $target.hasClass('active') ? null : $target.text();\n          if($target.hasClass('inner')) {\n            this.setHour(value);\n          } else {\n            this.setMinute(value);\n          }\n\n          //update value in input\n          if(!this.isInline) {\n            this.$element.val(this.getTime());\n          }          \n\n          //trigger pick event\n          this.$element.triggerHandler('pick.clockface', this.getTime(true));  \n        },\n\n        /*\n        Click handler on ampm link\n        */\n        clickAmPm: function(e) {\n          e.preventDefault();\n          //toggle am/pm\n          this.setAmPm(this.ampm === 'am' ? 'pm' : 'am');\n\n          //update value in input\n          if(!this.isInline && !this.is24) {\n            this.$element.val(this.getTime());\n          }    \n\n          //trigger pick event\n          this.$element.triggerHandler('pick.clockface', this.getTime(true));                  \n        },\n        \n\n        /*\n        Place widget below input\n        */\n        place: function(){\n          var zIndex = parseInt(this.$element.parents().filter(function() {\n                   return $(this).css('z-index') != 'auto';\n             }).first().css('z-index'), 10)+10,\n             offset = this.$element.offset();\n          this.$clockface.css({\n            top: offset.top + this.$element.outerHeight(),\n            left: offset.left,\n            zIndex: zIndex\n          });\n        },  \n\n        /*\n        keydown handler (for not inline mode)\n        */\n        keydown: function(e) {\n          //tab, escape, enter --> hide\n          if(/^(9|27|13)$/.test(e.which)) {\n            this.hide();\n            return;\n          } \n\n          clearTimeout(this.timer);\n          this.timer = setTimeout($.proxy(function(){\n            this.setTime(this.$element.val());\n          }, this), 500);\n        },  \n\n        /*\n        Parse format from options and set this.is24\n        */\n        parseFormat: function() {\n          var format = this.options.format,\n              hFormat = 'HH',\n              mFormat = 'mm';\n\n          //hour format    \n          $.each(['HH', 'hh', 'H', 'h'], function(i, f){\n            if(format.indexOf(f) !== -1) {\n              hFormat = f;\n              return false;\n            }\n          });\n\n          //minute format\n          $.each(['mm', 'm'], function(i, f){\n            if(format.indexOf(f) !== -1) {\n              mFormat = f;\n              return false;\n            }\n          });          \n\n          //is 24 hour format\n          this.is24 = hFormat.indexOf('H') !== -1; \n\n          this.hFormat = hFormat;\n          this.mFormat = mFormat;\n        },\n\n       \n\n        /*\n        Parse value passed as string or Date object\n        */\n        parseTime: function(value) {\n          var hour = null, \n              minute = null, \n              ampm = 'am', \n              parts = [], digits;\n\n            value = $.trim(value);\n\n            //try parse time from string assuming separator exist\n            if(this.regexpSep) {\n                parts = value.match(this.regexpSep);\n            }\n\n            if(parts && parts.length) {\n              hour = parts[1] ? parseInt(parts[1], 10) : null;\n              minute = parts[2] ? parseInt(parts[2], 10): null;\n              ampm = (!parts[3] || parts[3].toLowerCase() === 'a') ? 'am' : 'pm';\n            } else {\n              //if parse with separator failed, search for 1,4-digit block and process it\n              //use reversed string to start from end (usefull with full dates)\n              //see http://stackoverflow.com/questions/141348/what-is-the-best-way-to-parse-a-time-into-a-date-object-from-user-input-in-javas\n              value = value.split('').reverse().join('').replace(/\\s/g, '');\n              parts = value.match(this.regexpNoSep);\n              if(parts && parts.length) {\n                ampm = (!parts[1] || parts[1].toLowerCase() === 'a') ? 'am' : 'pm';\n                //reverse back\n                digits = parts[2].split('').reverse().join('');\n                //use smart analyzing to detect hours and minutes\n                switch(digits.length) {\n                  case 1:\n                    hour = parseInt(digits, 10); //e.g. '6'\n                  break;\n                  case 2:\n                    hour = parseInt(digits, 10); //e.g. '16'\n                    //if((this.is24 && hour > 24) || (!this.is24 && hour > 12)) { //e.g. 26\n                    if(hour > 24) { //e.g. 26\n                      hour = parseInt(digits[0], 10);\n                      minute = parseInt(digits[1], 10);\n                    }\n                  break;\n                  case 3:\n                    hour = parseInt(digits[0], 10);  //e.g. 105\n                    minute = parseInt(digits[1]+digits[2], 10); \n                    if(minute > 59) { \n                      hour = parseInt(digits[0]+digits[1], 10); //e.g. 195\n                      minute = parseInt(digits[2], 10); \n                      if(hour > 24) {\n                        hour = null;\n                        minute = null;\n                      }\n                    }\n                  break;\n                  case 4:\n                    hour = parseInt(digits[0]+digits[1], 10); //e.g. 2006\n                    minute = parseInt(digits[2]+digits[3], 10);\n                    if(hour > 24) {\n                      hour = null;\n                    }\n                    if(minute > 59) {\n                      minute = null;\n                    }\n                }\n              }\n            }\n\n          return {hour: hour, minute: minute, ampm: ampm};\n        },\n\n        prepareRegexp: function() {\n            //take separator from format\n            var sep = this.options.format.match(/h\\s*([^hm]?)\\s*m/i); //HH-mm, HH:mm\n            if(sep && sep.length) {\n              sep = sep[1];\n            } \n\n            //sep can be null for HH, and '' for HHmm \n            this.separator = sep;\n    \n            //parse from string\n            //use reversed string and regexp to parse 2-digit minutes first\n            //see http://stackoverflow.com/questions/141348/what-is-the-best-way-to-parse-a-time-into-a-date-object-from-user-input-in-javas\n            //this.regexp = new RegExp('(a|p)?\\\\s*((\\\\d\\\\d?)' + sep + ')?(\\\\d\\\\d?)', 'i');\n\n            //regexp, used with separator\n            this.regexpSep = (this.separator && this.separator.length) ? new RegExp('(\\\\d\\\\d?)\\\\s*\\\\' + this.separator + '\\\\s*(\\\\d?\\\\d?)\\\\s*(a|p)?', 'i') : null;\n\n            //second regexp applied if previous has no result or separator is empty (to reversed string)\n            this.regexpNoSep = new RegExp('(a|p)?\\\\s*(\\\\d{1,4})', 'i');\n        },\n\n        /*\n        Returns time as string in specified format\n        */\n        getTime: function(asObject) {\n          if(asObject === true) {\n            return {\n              hour: this.hour,\n              minute: this.minute,\n              ampm: this.ampm\n            };\n          }\n\n          var hour = this.hour !== null ? this.hour + '' : '',\n              minute = this.minute !== null ? this.minute + '' : '',\n              result = this.options.format;\n\n          if(!hour.length && !minute.length) {\n            return '';\n          }   \n\n          if(this.hFormat.length > 1 && hour.length === 1) {\n            hour = '0' + hour;\n          }   \n\n          if(this.mFormat.length > 1 && minute.length === 1) {\n            minute = '0' + minute;\n          }\n\n          //delete separator if no minutes\n          if(!minute.length && this.separator) {\n            result = result.replace(this.separator, '');\n          }\n\n          result = result.replace(this.hFormat, hour).replace(this.mFormat, minute);\n          if(!this.is24) {\n            if(result.indexOf('A') !== -1) {\n               result = result.replace('A', this.ampm.toUpperCase());\n            } else {\n               result = result.replace('a', this.ampm);\n            }\n          }\n\n          return result;\n        },\n\n        /*\n        Removes widget and detach events\n        */\n        destroy: function() {\n          this.hide();\n          this.$clockface.remove();\n          if(!this.isInline && this.options.trigger === 'focus') {\n            this.$element.off('focus.clockface');\n          }          \n        }\n    };\n\n    $.fn.clockface = function ( option ) {\n        var d, args = Array.apply(null, arguments);\n        args.shift();\n\n        //getTime returns string (not jQuery onject)\n        if(option === 'getTime' && this.length && (d = this.eq(0).data('clockface'))) {\n          return d.getTime.apply(d, args);\n        }\n\n        return this.each(function () {\n            var $this = $(this),\n            data = $this.data('clockface'),\n            options = typeof option == 'object' && option;\n            if (!data) {\n                $this.data('clockface', (data = new Clockface(this, options)));\n            }\n            if (typeof option == 'string' && typeof data[option] == 'function') {\n                data[option].apply(data, args);\n            }\n        });\n    };  \n    \n    $.fn.clockface.defaults = {\n        //see http://momentjs.com/docs/#/displaying/format/\n        format: 'H:mm',\n        trigger: 'focus' //focus|manual\n    };\n   \n\n $.fn.clockface.template = ''+\n      '<div class=\"clockface\">' +\n          '<div class=\"l1\">' +\n              '<div class=\"cell\"></div>' +\n              '<div class=\"cell\"></div>' +\n              '<div class=\"cell\"></div>' +\n          '</div>' +\n          '<div class=\"l2\">' +\n                '<div class=\"cell left\"></div>' +\n                '<div class=\"cell right\"></div>' +\n          '</div>'+\n          '<div class=\"l3\">' +\n                '<div class=\"cell left\"></div>' +\n                '<div class=\"cell right\"></div>' +\n                '<div class=\"center\"><a href=\"#\" class=\"ampm\"></a></div>' +\n          '</div>'+\n          '<div class=\"l4\">' +\n                '<div class=\"cell left\"></div>' +\n                '<div class=\"cell right\"></div>' +\n          '</div>'+\n          '<div class=\"l5\">' +\n                '<div class=\"cell\"></div>' +\n                '<div class=\"cell\"></div>' +\n                '<div class=\"cell\"></div>' +\n          '</div>'+\n      '</div>';  \n\n}(window.jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/counterup/jquery.counterup.js",
    "content": "/*!\n* jquery.counterup.js 1.0\n*\n* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal\n* Released under the GPL v2 License\n*\n* Date: Nov 26, 2013\n*/\n(function( $ ){\n  \"use strict\";\n\n  $.fn.counterUp = function( options ) {\n\n    // Defaults\n    var settings = $.extend({\n        'time': 400,\n        'delay': 10\n    }, options);\n\n    return this.each(function(){\n\n        // Store the object\n        var $this = $(this);\n        var $settings = settings;\n\n        var counterUpper = function() {\n            var divisions = $settings.time / $settings.delay;\n            var num = $this.attr('data-value');\n            var nums = [num];\n            var isComma = /[0-9]+,[0-9]+/.test(num);\n            num = num.replace(/,/g, '');\n            var isInt = /^[0-9]+$/.test(num);\n            var isFloat = /^[0-9]+\\.[0-9]+$/.test(num);\n            var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;\n\n            // Generate list of incremental numbers to display\n            for (var i = divisions; i >= 1; i--) {\n\n                // Preserve as int if input was int\n                var newNum = parseInt(num / divisions * i);\n\n                // Preserve float if input was float\n                if (isFloat) {\n                    newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces);\n                }\n\n                // Preserve commas if input had commas\n                if (isComma) {\n                    while (/(\\d+)(\\d{3})/.test(newNum.toString())) {\n                        newNum = newNum.toString().replace(/(\\d+)(\\d{3})/, '$1'+','+'$2');\n                    }\n                }\n\n                nums.unshift(newNum);\n            }\n\n            $this.data('counterup-nums', nums);\n            $this.text('0');\n\n            // Updates the number until we're done\n            var f = function() {\n                $this.text($this.data('counterup-nums').shift());\n                if ($this.data('counterup-nums').length) {\n                    setTimeout($this.data('counterup-func'), $settings.delay);\n                } else {\n                    delete $this.data('counterup-nums');\n                    $this.data('counterup-nums', null);\n                    $this.data('counterup-func', null);\n                }\n            };\n            $this.data('counterup-func', f);\n\n            // Start the count up\n            setTimeout($this.data('counterup-func'), $settings.delay);\n        };\n\n        // Perform counts when the element gets into view\n        $this.waypoint(counterUpper, { offset: '100%', triggerOnce: true });\n    });\n\n  };\n\n})( jQuery );"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/bootstrap/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v2.3.1\n *\n * Copyright 2012 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world @twitter by @mdo and @fat.\n */\n\n.clearfix {\n  *zoom: 1;\n}\n\n.clearfix:before,\n.clearfix:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.clearfix:after {\n  clear: both;\n}\n\n.hide-text {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.input-block-level {\n  display: block;\n  width: 100%;\n  min-height: 30px;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nnav,\nsection {\n  display: block;\n}\n\naudio,\ncanvas,\nvideo {\n  display: inline-block;\n  *display: inline;\n  *zoom: 1;\n}\n\naudio:not([controls]) {\n  display: none;\n}\n\nhtml {\n  font-size: 100%;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\n\na:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\na:hover,\na:active {\n  outline: 0;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nimg {\n  width: auto\\9;\n  height: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  border: 0;\n  -ms-interpolation-mode: bicubic;\n}\n\n#map_canvas img,\n.google-maps img {\n  max-width: none;\n}\n\nbutton,\ninput,\nselect,\ntextarea {\n  margin: 0;\n  font-size: 100%;\n  vertical-align: middle;\n}\n\nbutton,\ninput {\n  *overflow: visible;\n  line-height: normal;\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\n\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  cursor: pointer;\n  -webkit-appearance: button;\n}\n\nlabel,\nselect,\nbutton,\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  cursor: pointer;\n}\n\ninput[type=\"search\"] {\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n          box-sizing: content-box;\n  -webkit-appearance: textfield;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n  -webkit-appearance: none;\n}\n\ntextarea {\n  overflow: auto;\n  vertical-align: top;\n}\n\n@media print {\n  * {\n    color: #000 !important;\n    text-shadow: none !important;\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  .ir a:after,\n  a[href^=\"javascript:\"]:after,\n  a[href^=\"#\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  @page  {\n    margin: 0.5cm;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n}\n\nbody {\n  margin: 0;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 20px;\n  color: #333333;\n  background-color: #ffffff;\n}\n\na {\n  color: #0088cc;\n  text-decoration: none;\n}\n\na:hover,\na:focus {\n  color: #005580;\n  text-decoration: underline;\n}\n\n.img-rounded {\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.img-polaroid {\n  padding: 4px;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.img-circle {\n  -webkit-border-radius: 500px;\n     -moz-border-radius: 500px;\n          border-radius: 500px;\n}\n\n.row {\n  margin-left: -20px;\n  *zoom: 1;\n}\n\n.row:before,\n.row:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.row:after {\n  clear: both;\n}\n\n[class*=\"span\"] {\n  float: left;\n  min-height: 1px;\n  margin-left: 20px;\n}\n\n.container,\n.navbar-static-top .container,\n.navbar-fixed-top .container,\n.navbar-fixed-bottom .container {\n  width: 940px;\n}\n\n.span12 {\n  width: 940px;\n}\n\n.span11 {\n  width: 860px;\n}\n\n.span10 {\n  width: 780px;\n}\n\n.span9 {\n  width: 700px;\n}\n\n.span8 {\n  width: 620px;\n}\n\n.span7 {\n  width: 540px;\n}\n\n.span6 {\n  width: 460px;\n}\n\n.span5 {\n  width: 380px;\n}\n\n.span4 {\n  width: 300px;\n}\n\n.span3 {\n  width: 220px;\n}\n\n.span2 {\n  width: 140px;\n}\n\n.span1 {\n  width: 60px;\n}\n\n.offset12 {\n  margin-left: 980px;\n}\n\n.offset11 {\n  margin-left: 900px;\n}\n\n.offset10 {\n  margin-left: 820px;\n}\n\n.offset9 {\n  margin-left: 740px;\n}\n\n.offset8 {\n  margin-left: 660px;\n}\n\n.offset7 {\n  margin-left: 580px;\n}\n\n.offset6 {\n  margin-left: 500px;\n}\n\n.offset5 {\n  margin-left: 420px;\n}\n\n.offset4 {\n  margin-left: 340px;\n}\n\n.offset3 {\n  margin-left: 260px;\n}\n\n.offset2 {\n  margin-left: 180px;\n}\n\n.offset1 {\n  margin-left: 100px;\n}\n\n.row-fluid {\n  width: 100%;\n  *zoom: 1;\n}\n\n.row-fluid:before,\n.row-fluid:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.row-fluid:after {\n  clear: both;\n}\n\n.row-fluid [class*=\"span\"] {\n  display: block;\n  float: left;\n  width: 100%;\n  min-height: 30px;\n  margin-left: 2.127659574468085%;\n  *margin-left: 2.074468085106383%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\n.row-fluid [class*=\"span\"]:first-child {\n  margin-left: 0;\n}\n\n.row-fluid .controls-row [class*=\"span\"] + [class*=\"span\"] {\n  margin-left: 2.127659574468085%;\n}\n\n.row-fluid .span12 {\n  width: 100%;\n  *width: 99.94680851063829%;\n}\n\n.row-fluid .span11 {\n  width: 91.48936170212765%;\n  *width: 91.43617021276594%;\n}\n\n.row-fluid .span10 {\n  width: 82.97872340425532%;\n  *width: 82.92553191489361%;\n}\n\n.row-fluid .span9 {\n  width: 74.46808510638297%;\n  *width: 74.41489361702126%;\n}\n\n.row-fluid .span8 {\n  width: 65.95744680851064%;\n  *width: 65.90425531914893%;\n}\n\n.row-fluid .span7 {\n  width: 57.44680851063829%;\n  *width: 57.39361702127659%;\n}\n\n.row-fluid .span6 {\n  width: 48.93617021276595%;\n  *width: 48.88297872340425%;\n}\n\n.row-fluid .span5 {\n  width: 40.42553191489362%;\n  *width: 40.37234042553192%;\n}\n\n.row-fluid .span4 {\n  width: 31.914893617021278%;\n  *width: 31.861702127659576%;\n}\n\n.row-fluid .span3 {\n  width: 23.404255319148934%;\n  *width: 23.351063829787233%;\n}\n\n.row-fluid .span2 {\n  width: 14.893617021276595%;\n  *width: 14.840425531914894%;\n}\n\n.row-fluid .span1 {\n  width: 6.382978723404255%;\n  *width: 6.329787234042553%;\n}\n\n.row-fluid .offset12 {\n  margin-left: 104.25531914893617%;\n  *margin-left: 104.14893617021275%;\n}\n\n.row-fluid .offset12:first-child {\n  margin-left: 102.12765957446808%;\n  *margin-left: 102.02127659574467%;\n}\n\n.row-fluid .offset11 {\n  margin-left: 95.74468085106382%;\n  *margin-left: 95.6382978723404%;\n}\n\n.row-fluid .offset11:first-child {\n  margin-left: 93.61702127659574%;\n  *margin-left: 93.51063829787232%;\n}\n\n.row-fluid .offset10 {\n  margin-left: 87.23404255319149%;\n  *margin-left: 87.12765957446807%;\n}\n\n.row-fluid .offset10:first-child {\n  margin-left: 85.1063829787234%;\n  *margin-left: 84.99999999999999%;\n}\n\n.row-fluid .offset9 {\n  margin-left: 78.72340425531914%;\n  *margin-left: 78.61702127659572%;\n}\n\n.row-fluid .offset9:first-child {\n  margin-left: 76.59574468085106%;\n  *margin-left: 76.48936170212764%;\n}\n\n.row-fluid .offset8 {\n  margin-left: 70.2127659574468%;\n  *margin-left: 70.10638297872339%;\n}\n\n.row-fluid .offset8:first-child {\n  margin-left: 68.08510638297872%;\n  *margin-left: 67.9787234042553%;\n}\n\n.row-fluid .offset7 {\n  margin-left: 61.70212765957446%;\n  *margin-left: 61.59574468085106%;\n}\n\n.row-fluid .offset7:first-child {\n  margin-left: 59.574468085106375%;\n  *margin-left: 59.46808510638297%;\n}\n\n.row-fluid .offset6 {\n  margin-left: 53.191489361702125%;\n  *margin-left: 53.085106382978715%;\n}\n\n.row-fluid .offset6:first-child {\n  margin-left: 51.063829787234035%;\n  *margin-left: 50.95744680851063%;\n}\n\n.row-fluid .offset5 {\n  margin-left: 44.68085106382979%;\n  *margin-left: 44.57446808510638%;\n}\n\n.row-fluid .offset5:first-child {\n  margin-left: 42.5531914893617%;\n  *margin-left: 42.4468085106383%;\n}\n\n.row-fluid .offset4 {\n  margin-left: 36.170212765957444%;\n  *margin-left: 36.06382978723405%;\n}\n\n.row-fluid .offset4:first-child {\n  margin-left: 34.04255319148936%;\n  *margin-left: 33.93617021276596%;\n}\n\n.row-fluid .offset3 {\n  margin-left: 27.659574468085104%;\n  *margin-left: 27.5531914893617%;\n}\n\n.row-fluid .offset3:first-child {\n  margin-left: 25.53191489361702%;\n  *margin-left: 25.425531914893618%;\n}\n\n.row-fluid .offset2 {\n  margin-left: 19.148936170212764%;\n  *margin-left: 19.04255319148936%;\n}\n\n.row-fluid .offset2:first-child {\n  margin-left: 17.02127659574468%;\n  *margin-left: 16.914893617021278%;\n}\n\n.row-fluid .offset1 {\n  margin-left: 10.638297872340425%;\n  *margin-left: 10.53191489361702%;\n}\n\n.row-fluid .offset1:first-child {\n  margin-left: 8.51063829787234%;\n  *margin-left: 8.404255319148938%;\n}\n\n[class*=\"span\"].hide,\n.row-fluid [class*=\"span\"].hide {\n  display: none;\n}\n\n[class*=\"span\"].pull-right,\n.row-fluid [class*=\"span\"].pull-right {\n  float: right;\n}\n\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  *zoom: 1;\n}\n\n.container:before,\n.container:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.container:after {\n  clear: both;\n}\n\n.container-fluid {\n  padding-right: 20px;\n  padding-left: 20px;\n  *zoom: 1;\n}\n\n.container-fluid:before,\n.container-fluid:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.container-fluid:after {\n  clear: both;\n}\n\np {\n  margin: 0 0 10px;\n}\n\n.lead {\n  margin-bottom: 20px;\n  font-size: 21px;\n  font-weight: 200;\n  line-height: 30px;\n}\n\nsmall {\n  font-size: 85%;\n}\n\nstrong {\n  font-weight: bold;\n}\n\nem {\n  font-style: italic;\n}\n\ncite {\n  font-style: normal;\n}\n\n.muted {\n  color: #999999;\n}\n\na.muted:hover,\na.muted:focus {\n  color: #808080;\n}\n\n.text-warning {\n  color: #c09853;\n}\n\na.text-warning:hover,\na.text-warning:focus {\n  color: #a47e3c;\n}\n\n.text-error {\n  color: #b94a48;\n}\n\na.text-error:hover,\na.text-error:focus {\n  color: #953b39;\n}\n\n.text-info {\n  color: #3a87ad;\n}\n\na.text-info:hover,\na.text-info:focus {\n  color: #2d6987;\n}\n\n.text-success {\n  color: #468847;\n}\n\na.text-success:hover,\na.text-success:focus {\n  color: #356635;\n}\n\n.text-left {\n  text-align: left;\n}\n\n.text-right {\n  text-align: right;\n}\n\n.text-center {\n  text-align: center;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  margin: 10px 0;\n  font-family: inherit;\n  font-weight: bold;\n  line-height: 20px;\n  color: inherit;\n  text-rendering: optimizelegibility;\n}\n\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  font-weight: normal;\n  line-height: 1;\n  color: #999999;\n}\n\nh1,\nh2,\nh3 {\n  line-height: 40px;\n}\n\nh1 {\n  font-size: 38.5px;\n}\n\nh2 {\n  font-size: 31.5px;\n}\n\nh3 {\n  font-size: 24.5px;\n}\n\nh4 {\n  font-size: 17.5px;\n}\n\nh5 {\n  font-size: 14px;\n}\n\nh6 {\n  font-size: 11.9px;\n}\n\nh1 small {\n  font-size: 24.5px;\n}\n\nh2 small {\n  font-size: 17.5px;\n}\n\nh3 small {\n  font-size: 14px;\n}\n\nh4 small {\n  font-size: 14px;\n}\n\n.page-header {\n  padding-bottom: 9px;\n  margin: 20px 0 30px;\n  border-bottom: 1px solid #eeeeee;\n}\n\nul,\nol {\n  padding: 0;\n  margin: 0 0 10px 25px;\n}\n\nul ul,\nul ol,\nol ol,\nol ul {\n  margin-bottom: 0;\n}\n\nli {\n  line-height: 20px;\n}\n\nul.unstyled,\nol.unstyled {\n  margin-left: 0;\n  list-style: none;\n}\n\nul.inline,\nol.inline {\n  margin-left: 0;\n  list-style: none;\n}\n\nul.inline > li,\nol.inline > li {\n  display: inline-block;\n  *display: inline;\n  padding-right: 5px;\n  padding-left: 5px;\n  *zoom: 1;\n}\n\ndl {\n  margin-bottom: 20px;\n}\n\ndt,\ndd {\n  line-height: 20px;\n}\n\ndt {\n  font-weight: bold;\n}\n\ndd {\n  margin-left: 10px;\n}\n\n.dl-horizontal {\n  *zoom: 1;\n}\n\n.dl-horizontal:before,\n.dl-horizontal:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.dl-horizontal:after {\n  clear: both;\n}\n\n.dl-horizontal dt {\n  float: left;\n  width: 160px;\n  overflow: hidden;\n  clear: left;\n  text-align: right;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.dl-horizontal dd {\n  margin-left: 180px;\n}\n\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n  border-bottom: 1px solid #ffffff;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #999999;\n}\n\nabbr.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\nblockquote {\n  padding: 0 0 0 15px;\n  margin: 0 0 20px;\n  border-left: 5px solid #eeeeee;\n}\n\nblockquote p {\n  margin-bottom: 0;\n  font-size: 17.5px;\n  font-weight: 300;\n  line-height: 1.25;\n}\n\nblockquote small {\n  display: block;\n  line-height: 20px;\n  color: #999999;\n}\n\nblockquote small:before {\n  content: '\\2014 \\00A0';\n}\n\nblockquote.pull-right {\n  float: right;\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n}\n\nblockquote.pull-right p,\nblockquote.pull-right small {\n  text-align: right;\n}\n\nblockquote.pull-right small:before {\n  content: '';\n}\n\nblockquote.pull-right small:after {\n  content: '\\00A0 \\2014';\n}\n\nq:before,\nq:after,\nblockquote:before,\nblockquote:after {\n  content: \"\";\n}\n\naddress {\n  display: block;\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 20px;\n}\n\ncode,\npre {\n  padding: 0 3px 2px;\n  font-family: Monaco, Menlo, Consolas, \"Courier New\", monospace;\n  font-size: 12px;\n  color: #333333;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\ncode {\n  padding: 2px 4px;\n  color: #d14;\n  white-space: nowrap;\n  background-color: #f7f7f9;\n  border: 1px solid #e1e1e8;\n}\n\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 20px;\n  word-break: break-all;\n  word-wrap: break-word;\n  white-space: pre;\n  white-space: pre-wrap;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\npre.prettyprint {\n  margin-bottom: 20px;\n}\n\npre code {\n  padding: 0;\n  color: inherit;\n  white-space: pre;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\nform {\n  margin: 0 0 20px;\n}\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: 40px;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\n\nlegend small {\n  font-size: 15px;\n  color: #999999;\n}\n\nlabel,\ninput,\nbutton,\nselect,\ntextarea {\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 20px;\n}\n\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n}\n\nlabel {\n  display: block;\n  margin-bottom: 5px;\n}\n\nselect,\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  display: inline-block;\n  height: 20px;\n  padding: 4px 6px;\n  margin-bottom: 10px;\n  font-size: 14px;\n  line-height: 20px;\n  color: #555555;\n  vertical-align: middle;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\ninput,\ntextarea,\n.uneditable-input {\n  width: 206px;\n}\n\ntextarea {\n  height: auto;\n}\n\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;\n     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;\n       -o-transition: border linear 0.2s, box-shadow linear 0.2s;\n          transition: border linear 0.2s, box-shadow linear 0.2s;\n}\n\ntextarea:focus,\ninput[type=\"text\"]:focus,\ninput[type=\"password\"]:focus,\ninput[type=\"datetime\"]:focus,\ninput[type=\"datetime-local\"]:focus,\ninput[type=\"date\"]:focus,\ninput[type=\"month\"]:focus,\ninput[type=\"time\"]:focus,\ninput[type=\"week\"]:focus,\ninput[type=\"number\"]:focus,\ninput[type=\"email\"]:focus,\ninput[type=\"url\"]:focus,\ninput[type=\"search\"]:focus,\ninput[type=\"tel\"]:focus,\ninput[type=\"color\"]:focus,\n.uneditable-input:focus {\n  border-color: rgba(82, 168, 236, 0.8);\n  outline: 0;\n  outline: thin dotted \\9;\n  /* IE6-9 */\n\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  *margin-top: 0;\n  line-height: normal;\n}\n\ninput[type=\"file\"],\ninput[type=\"image\"],\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  width: auto;\n}\n\nselect,\ninput[type=\"file\"] {\n  height: 30px;\n  /* In IE7, the height of the select element cannot be changed by height, only font-size */\n\n  *margin-top: 4px;\n  /* For IE7, add top margin to align select with labels */\n\n  line-height: 30px;\n}\n\nselect {\n  width: 220px;\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n}\n\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\nselect:focus,\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n.uneditable-input,\n.uneditable-textarea {\n  color: #999999;\n  cursor: not-allowed;\n  background-color: #fcfcfc;\n  border-color: #cccccc;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);\n     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);\n}\n\n.uneditable-input {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.uneditable-textarea {\n  width: auto;\n  height: auto;\n}\n\ninput:-moz-placeholder,\ntextarea:-moz-placeholder {\n  color: #999999;\n}\n\ninput:-ms-input-placeholder,\ntextarea:-ms-input-placeholder {\n  color: #999999;\n}\n\ninput::-webkit-input-placeholder,\ntextarea::-webkit-input-placeholder {\n  color: #999999;\n}\n\n.radio,\n.checkbox {\n  min-height: 20px;\n  padding-left: 20px;\n}\n\n.radio input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-left: -20px;\n}\n\n.controls > .radio:first-child,\n.controls > .checkbox:first-child {\n  padding-top: 5px;\n}\n\n.radio.inline,\n.checkbox.inline {\n  display: inline-block;\n  padding-top: 5px;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n\n.radio.inline + .radio.inline,\n.checkbox.inline + .checkbox.inline {\n  margin-left: 10px;\n}\n\n.input-mini {\n  width: 60px;\n}\n\n.input-small {\n  width: 90px;\n}\n\n.input-medium {\n  width: 150px;\n}\n\n.input-large {\n  width: 210px;\n}\n\n.input-xlarge {\n  width: 270px;\n}\n\n.input-xxlarge {\n  width: 530px;\n}\n\ninput[class*=\"span\"],\nselect[class*=\"span\"],\ntextarea[class*=\"span\"],\n.uneditable-input[class*=\"span\"],\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"] {\n  float: none;\n  margin-left: 0;\n}\n\n.input-append input[class*=\"span\"],\n.input-append .uneditable-input[class*=\"span\"],\n.input-prepend input[class*=\"span\"],\n.input-prepend .uneditable-input[class*=\"span\"],\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"],\n.row-fluid .input-prepend [class*=\"span\"],\n.row-fluid .input-append [class*=\"span\"] {\n  display: inline-block;\n}\n\ninput,\ntextarea,\n.uneditable-input {\n  margin-left: 0;\n}\n\n.controls-row [class*=\"span\"] + [class*=\"span\"] {\n  margin-left: 20px;\n}\n\ninput.span12,\ntextarea.span12,\n.uneditable-input.span12 {\n  width: 926px;\n}\n\ninput.span11,\ntextarea.span11,\n.uneditable-input.span11 {\n  width: 846px;\n}\n\ninput.span10,\ntextarea.span10,\n.uneditable-input.span10 {\n  width: 766px;\n}\n\ninput.span9,\ntextarea.span9,\n.uneditable-input.span9 {\n  width: 686px;\n}\n\ninput.span8,\ntextarea.span8,\n.uneditable-input.span8 {\n  width: 606px;\n}\n\ninput.span7,\ntextarea.span7,\n.uneditable-input.span7 {\n  width: 526px;\n}\n\ninput.span6,\ntextarea.span6,\n.uneditable-input.span6 {\n  width: 446px;\n}\n\ninput.span5,\ntextarea.span5,\n.uneditable-input.span5 {\n  width: 366px;\n}\n\ninput.span4,\ntextarea.span4,\n.uneditable-input.span4 {\n  width: 286px;\n}\n\ninput.span3,\ntextarea.span3,\n.uneditable-input.span3 {\n  width: 206px;\n}\n\ninput.span2,\ntextarea.span2,\n.uneditable-input.span2 {\n  width: 126px;\n}\n\ninput.span1,\ntextarea.span1,\n.uneditable-input.span1 {\n  width: 46px;\n}\n\n.controls-row {\n  *zoom: 1;\n}\n\n.controls-row:before,\n.controls-row:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.controls-row:after {\n  clear: both;\n}\n\n.controls-row [class*=\"span\"],\n.row-fluid .controls-row [class*=\"span\"] {\n  float: left;\n}\n\n.controls-row .checkbox[class*=\"span\"],\n.controls-row .radio[class*=\"span\"] {\n  padding-top: 5px;\n}\n\ninput[disabled],\nselect[disabled],\ntextarea[disabled],\ninput[readonly],\nselect[readonly],\ntextarea[readonly] {\n  cursor: not-allowed;\n  background-color: #eeeeee;\n}\n\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"][readonly],\ninput[type=\"checkbox\"][readonly] {\n  background-color: transparent;\n}\n\n.control-group.warning .control-label,\n.control-group.warning .help-block,\n.control-group.warning .help-inline {\n  color: #c09853;\n}\n\n.control-group.warning .checkbox,\n.control-group.warning .radio,\n.control-group.warning input,\n.control-group.warning select,\n.control-group.warning textarea {\n  color: #c09853;\n}\n\n.control-group.warning input,\n.control-group.warning select,\n.control-group.warning textarea {\n  border-color: #c09853;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.warning input:focus,\n.control-group.warning select:focus,\n.control-group.warning textarea:focus {\n  border-color: #a47e3c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n}\n\n.control-group.warning .input-prepend .add-on,\n.control-group.warning .input-append .add-on {\n  color: #c09853;\n  background-color: #fcf8e3;\n  border-color: #c09853;\n}\n\n.control-group.error .control-label,\n.control-group.error .help-block,\n.control-group.error .help-inline {\n  color: #b94a48;\n}\n\n.control-group.error .checkbox,\n.control-group.error .radio,\n.control-group.error input,\n.control-group.error select,\n.control-group.error textarea {\n  color: #b94a48;\n}\n\n.control-group.error input,\n.control-group.error select,\n.control-group.error textarea {\n  border-color: #b94a48;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.error input:focus,\n.control-group.error select:focus,\n.control-group.error textarea:focus {\n  border-color: #953b39;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n}\n\n.control-group.error .input-prepend .add-on,\n.control-group.error .input-append .add-on {\n  color: #b94a48;\n  background-color: #f2dede;\n  border-color: #b94a48;\n}\n\n.control-group.success .control-label,\n.control-group.success .help-block,\n.control-group.success .help-inline {\n  color: #468847;\n}\n\n.control-group.success .checkbox,\n.control-group.success .radio,\n.control-group.success input,\n.control-group.success select,\n.control-group.success textarea {\n  color: #468847;\n}\n\n.control-group.success input,\n.control-group.success select,\n.control-group.success textarea {\n  border-color: #468847;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.success input:focus,\n.control-group.success select:focus,\n.control-group.success textarea:focus {\n  border-color: #356635;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n}\n\n.control-group.success .input-prepend .add-on,\n.control-group.success .input-append .add-on {\n  color: #468847;\n  background-color: #dff0d8;\n  border-color: #468847;\n}\n\n.control-group.info .control-label,\n.control-group.info .help-block,\n.control-group.info .help-inline {\n  color: #3a87ad;\n}\n\n.control-group.info .checkbox,\n.control-group.info .radio,\n.control-group.info input,\n.control-group.info select,\n.control-group.info textarea {\n  color: #3a87ad;\n}\n\n.control-group.info input,\n.control-group.info select,\n.control-group.info textarea {\n  border-color: #3a87ad;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.info input:focus,\n.control-group.info select:focus,\n.control-group.info textarea:focus {\n  border-color: #2d6987;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;\n}\n\n.control-group.info .input-prepend .add-on,\n.control-group.info .input-append .add-on {\n  color: #3a87ad;\n  background-color: #d9edf7;\n  border-color: #3a87ad;\n}\n\ninput:focus:invalid,\ntextarea:focus:invalid,\nselect:focus:invalid {\n  color: #b94a48;\n  border-color: #ee5f5b;\n}\n\ninput:focus:invalid:focus,\ntextarea:focus:invalid:focus,\nselect:focus:invalid:focus {\n  border-color: #e9322d;\n  -webkit-box-shadow: 0 0 6px #f8b9b7;\n     -moz-box-shadow: 0 0 6px #f8b9b7;\n          box-shadow: 0 0 6px #f8b9b7;\n}\n\n.form-actions {\n  padding: 19px 20px 20px;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e5e5e5;\n  *zoom: 1;\n}\n\n.form-actions:before,\n.form-actions:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.form-actions:after {\n  clear: both;\n}\n\n.help-block,\n.help-inline {\n  color: #595959;\n}\n\n.help-block {\n  display: block;\n  margin-bottom: 10px;\n}\n\n.help-inline {\n  display: inline-block;\n  *display: inline;\n  padding-left: 5px;\n  vertical-align: middle;\n  *zoom: 1;\n}\n\n.input-append,\n.input-prepend {\n  display: inline-block;\n  margin-bottom: 10px;\n  font-size: 0;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n\n.input-append input,\n.input-prepend input,\n.input-append select,\n.input-prepend select,\n.input-append .uneditable-input,\n.input-prepend .uneditable-input,\n.input-append .dropdown-menu,\n.input-prepend .dropdown-menu,\n.input-append .popover,\n.input-prepend .popover {\n  font-size: 14px;\n}\n\n.input-append input,\n.input-prepend input,\n.input-append select,\n.input-prepend select,\n.input-append .uneditable-input,\n.input-prepend .uneditable-input {\n  position: relative;\n  margin-bottom: 0;\n  *margin-left: 0;\n  vertical-align: top;\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-append input:focus,\n.input-prepend input:focus,\n.input-append select:focus,\n.input-prepend select:focus,\n.input-append .uneditable-input:focus,\n.input-prepend .uneditable-input:focus {\n  z-index: 2;\n}\n\n.input-append .add-on,\n.input-prepend .add-on {\n  display: inline-block;\n  width: auto;\n  height: 20px;\n  min-width: 16px;\n  padding: 4px 5px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 20px;\n  text-align: center;\n  text-shadow: 0 1px 0 #ffffff;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n}\n\n.input-append .add-on,\n.input-prepend .add-on,\n.input-append .btn,\n.input-prepend .btn,\n.input-append .btn-group > .dropdown-toggle,\n.input-prepend .btn-group > .dropdown-toggle {\n  vertical-align: top;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.input-append .active,\n.input-prepend .active {\n  background-color: #a9dba9;\n  border-color: #46a546;\n}\n\n.input-prepend .add-on,\n.input-prepend .btn {\n  margin-right: -1px;\n}\n\n.input-prepend .add-on:first-child,\n.input-prepend .btn:first-child {\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.input-append input,\n.input-append select,\n.input-append .uneditable-input {\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.input-append input + .btn-group .btn:last-child,\n.input-append select + .btn-group .btn:last-child,\n.input-append .uneditable-input + .btn-group .btn:last-child {\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-append .add-on,\n.input-append .btn,\n.input-append .btn-group {\n  margin-left: -1px;\n}\n\n.input-append .add-on:last-child,\n.input-append .btn:last-child,\n.input-append .btn-group:last-child > .dropdown-toggle {\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-prepend.input-append input,\n.input-prepend.input-append select,\n.input-prepend.input-append .uneditable-input {\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.input-prepend.input-append input + .btn-group .btn,\n.input-prepend.input-append select + .btn-group .btn,\n.input-prepend.input-append .uneditable-input + .btn-group .btn {\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-prepend.input-append .add-on:first-child,\n.input-prepend.input-append .btn:first-child {\n  margin-right: -1px;\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.input-prepend.input-append .add-on:last-child,\n.input-prepend.input-append .btn:last-child {\n  margin-left: -1px;\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-prepend.input-append .btn-group:first-child {\n  margin-left: 0;\n}\n\ninput.search-query {\n  padding-right: 14px;\n  padding-right: 4px \\9;\n  padding-left: 14px;\n  padding-left: 4px \\9;\n  /* IE7-8 doesn't have border-radius, so don't indent the padding */\n\n  margin-bottom: 0;\n  -webkit-border-radius: 15px;\n     -moz-border-radius: 15px;\n          border-radius: 15px;\n}\n\n/* Allow for input prepend/append in search forms */\n\n.form-search .input-append .search-query,\n.form-search .input-prepend .search-query {\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.form-search .input-append .search-query {\n  -webkit-border-radius: 14px 0 0 14px;\n     -moz-border-radius: 14px 0 0 14px;\n          border-radius: 14px 0 0 14px;\n}\n\n.form-search .input-append .btn {\n  -webkit-border-radius: 0 14px 14px 0;\n     -moz-border-radius: 0 14px 14px 0;\n          border-radius: 0 14px 14px 0;\n}\n\n.form-search .input-prepend .search-query {\n  -webkit-border-radius: 0 14px 14px 0;\n     -moz-border-radius: 0 14px 14px 0;\n          border-radius: 0 14px 14px 0;\n}\n\n.form-search .input-prepend .btn {\n  -webkit-border-radius: 14px 0 0 14px;\n     -moz-border-radius: 14px 0 0 14px;\n          border-radius: 14px 0 0 14px;\n}\n\n.form-search input,\n.form-inline input,\n.form-horizontal input,\n.form-search textarea,\n.form-inline textarea,\n.form-horizontal textarea,\n.form-search select,\n.form-inline select,\n.form-horizontal select,\n.form-search .help-inline,\n.form-inline .help-inline,\n.form-horizontal .help-inline,\n.form-search .uneditable-input,\n.form-inline .uneditable-input,\n.form-horizontal .uneditable-input,\n.form-search .input-prepend,\n.form-inline .input-prepend,\n.form-horizontal .input-prepend,\n.form-search .input-append,\n.form-inline .input-append,\n.form-horizontal .input-append {\n  display: inline-block;\n  *display: inline;\n  margin-bottom: 0;\n  vertical-align: middle;\n  *zoom: 1;\n}\n\n.form-search .hide,\n.form-inline .hide,\n.form-horizontal .hide {\n  display: none;\n}\n\n.form-search label,\n.form-inline label,\n.form-search .btn-group,\n.form-inline .btn-group {\n  display: inline-block;\n}\n\n.form-search .input-append,\n.form-inline .input-append,\n.form-search .input-prepend,\n.form-inline .input-prepend {\n  margin-bottom: 0;\n}\n\n.form-search .radio,\n.form-search .checkbox,\n.form-inline .radio,\n.form-inline .checkbox {\n  padding-left: 0;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n\n.form-search .radio input[type=\"radio\"],\n.form-search .checkbox input[type=\"checkbox\"],\n.form-inline .radio input[type=\"radio\"],\n.form-inline .checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-right: 3px;\n  margin-left: 0;\n}\n\n.control-group {\n  margin-bottom: 10px;\n}\n\nlegend + .control-group {\n  margin-top: 20px;\n  -webkit-margin-top-collapse: separate;\n}\n\n.form-horizontal .control-group {\n  margin-bottom: 20px;\n  *zoom: 1;\n}\n\n.form-horizontal .control-group:before,\n.form-horizontal .control-group:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.form-horizontal .control-group:after {\n  clear: both;\n}\n\n.form-horizontal .control-label {\n  float: left;\n  width: 160px;\n  padding-top: 5px;\n  text-align: right;\n}\n\n.form-horizontal .controls {\n  *display: inline-block;\n  *padding-left: 20px;\n  margin-left: 180px;\n  *margin-left: 0;\n}\n\n.form-horizontal .controls:first-child {\n  *padding-left: 180px;\n}\n\n.form-horizontal .help-block {\n  margin-bottom: 0;\n}\n\n.form-horizontal input + .help-block,\n.form-horizontal select + .help-block,\n.form-horizontal textarea + .help-block,\n.form-horizontal .uneditable-input + .help-block,\n.form-horizontal .input-prepend + .help-block,\n.form-horizontal .input-append + .help-block {\n  margin-top: 10px;\n}\n\n.form-horizontal .form-actions {\n  padding-left: 180px;\n}\n\ntable {\n  max-width: 100%;\n  background-color: transparent;\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 20px;\n}\n\n.table th,\n.table td {\n  padding: 8px;\n  line-height: 20px;\n  text-align: left;\n  vertical-align: top;\n  border-top: 1px solid #dddddd;\n}\n\n.table th {\n  font-weight: bold;\n}\n\n.table thead th {\n  vertical-align: bottom;\n}\n\n.table caption + thead tr:first-child th,\n.table caption + thead tr:first-child td,\n.table colgroup + thead tr:first-child th,\n.table colgroup + thead tr:first-child td,\n.table thead:first-child tr:first-child th,\n.table thead:first-child tr:first-child td {\n  border-top: 0;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dddddd;\n}\n\n.table .table {\n  background-color: #ffffff;\n}\n\n.table-condensed th,\n.table-condensed td {\n  padding: 4px 5px;\n}\n\n.table-bordered {\n  border: 1px solid #dddddd;\n  border-collapse: separate;\n  *border-collapse: collapse;\n  border-left: 0;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border-left: 1px solid #dddddd;\n}\n\n.table-bordered caption + thead tr:first-child th,\n.table-bordered caption + tbody tr:first-child th,\n.table-bordered caption + tbody tr:first-child td,\n.table-bordered colgroup + thead tr:first-child th,\n.table-bordered colgroup + tbody tr:first-child th,\n.table-bordered colgroup + tbody tr:first-child td,\n.table-bordered thead:first-child tr:first-child th,\n.table-bordered tbody:first-child tr:first-child th,\n.table-bordered tbody:first-child tr:first-child td {\n  border-top: 0;\n}\n\n.table-bordered thead:first-child tr:first-child > th:first-child,\n.table-bordered tbody:first-child tr:first-child > td:first-child,\n.table-bordered tbody:first-child tr:first-child > th:first-child {\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.table-bordered thead:first-child tr:first-child > th:last-child,\n.table-bordered tbody:first-child tr:first-child > td:last-child,\n.table-bordered tbody:first-child tr:first-child > th:last-child {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n}\n\n.table-bordered thead:last-child tr:last-child > th:first-child,\n.table-bordered tbody:last-child tr:last-child > td:first-child,\n.table-bordered tbody:last-child tr:last-child > th:first-child,\n.table-bordered tfoot:last-child tr:last-child > td:first-child,\n.table-bordered tfoot:last-child tr:last-child > th:first-child {\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n}\n\n.table-bordered thead:last-child tr:last-child > th:last-child,\n.table-bordered tbody:last-child tr:last-child > td:last-child,\n.table-bordered tbody:last-child tr:last-child > th:last-child,\n.table-bordered tfoot:last-child tr:last-child > td:last-child,\n.table-bordered tfoot:last-child tr:last-child > th:last-child {\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -moz-border-radius-bottomright: 4px;\n}\n\n.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {\n  -webkit-border-bottom-left-radius: 0;\n          border-bottom-left-radius: 0;\n  -moz-border-radius-bottomleft: 0;\n}\n\n.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {\n  -webkit-border-bottom-right-radius: 0;\n          border-bottom-right-radius: 0;\n  -moz-border-radius-bottomright: 0;\n}\n\n.table-bordered caption + thead tr:first-child th:first-child,\n.table-bordered caption + tbody tr:first-child td:first-child,\n.table-bordered colgroup + thead tr:first-child th:first-child,\n.table-bordered colgroup + tbody tr:first-child td:first-child {\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.table-bordered caption + thead tr:first-child th:last-child,\n.table-bordered caption + tbody tr:first-child td:last-child,\n.table-bordered colgroup + thead tr:first-child th:last-child,\n.table-bordered colgroup + tbody tr:first-child td:last-child {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n}\n\n.table-striped tbody > tr:nth-child(odd) > td,\n.table-striped tbody > tr:nth-child(odd) > th {\n  background-color: #f9f9f9;\n}\n\n.table-hover tbody tr:hover > td,\n.table-hover tbody tr:hover > th {\n  background-color: #f5f5f5;\n}\n\ntable td[class*=\"span\"],\ntable th[class*=\"span\"],\n.row-fluid table td[class*=\"span\"],\n.row-fluid table th[class*=\"span\"] {\n  display: table-cell;\n  float: none;\n  margin-left: 0;\n}\n\n.table td.span1,\n.table th.span1 {\n  float: none;\n  width: 44px;\n  margin-left: 0;\n}\n\n.table td.span2,\n.table th.span2 {\n  float: none;\n  width: 124px;\n  margin-left: 0;\n}\n\n.table td.span3,\n.table th.span3 {\n  float: none;\n  width: 204px;\n  margin-left: 0;\n}\n\n.table td.span4,\n.table th.span4 {\n  float: none;\n  width: 284px;\n  margin-left: 0;\n}\n\n.table td.span5,\n.table th.span5 {\n  float: none;\n  width: 364px;\n  margin-left: 0;\n}\n\n.table td.span6,\n.table th.span6 {\n  float: none;\n  width: 444px;\n  margin-left: 0;\n}\n\n.table td.span7,\n.table th.span7 {\n  float: none;\n  width: 524px;\n  margin-left: 0;\n}\n\n.table td.span8,\n.table th.span8 {\n  float: none;\n  width: 604px;\n  margin-left: 0;\n}\n\n.table td.span9,\n.table th.span9 {\n  float: none;\n  width: 684px;\n  margin-left: 0;\n}\n\n.table td.span10,\n.table th.span10 {\n  float: none;\n  width: 764px;\n  margin-left: 0;\n}\n\n.table td.span11,\n.table th.span11 {\n  float: none;\n  width: 844px;\n  margin-left: 0;\n}\n\n.table td.span12,\n.table th.span12 {\n  float: none;\n  width: 924px;\n  margin-left: 0;\n}\n\n.table tbody tr.success > td {\n  background-color: #dff0d8;\n}\n\n.table tbody tr.error > td {\n  background-color: #f2dede;\n}\n\n.table tbody tr.warning > td {\n  background-color: #fcf8e3;\n}\n\n.table tbody tr.info > td {\n  background-color: #d9edf7;\n}\n\n.table-hover tbody tr.success:hover > td {\n  background-color: #d0e9c6;\n}\n\n.table-hover tbody tr.error:hover > td {\n  background-color: #ebcccc;\n}\n\n.table-hover tbody tr.warning:hover > td {\n  background-color: #faf2cc;\n}\n\n.table-hover tbody tr.info:hover > td {\n  background-color: #c4e3f3;\n}\n\n[class^=\"icon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 1px;\n  *margin-right: .3em;\n  line-height: 14px;\n  vertical-align: text-top;\n  background-image: url(\"../img/glyphicons-halflings.png\");\n  background-position: 14px 14px;\n  background-repeat: no-repeat;\n}\n\n/* White icons with optional class, or on hover/focus/active states of certain elements */\n\n.icon-white,\n.nav-pills > .active > a > [class^=\"icon-\"],\n.nav-pills > .active > a > [class*=\" icon-\"],\n.nav-list > .active > a > [class^=\"icon-\"],\n.nav-list > .active > a > [class*=\" icon-\"],\n.navbar-inverse .nav > .active > a > [class^=\"icon-\"],\n.navbar-inverse .nav > .active > a > [class*=\" icon-\"],\n.dropdown-menu > li > a:hover > [class^=\"icon-\"],\n.dropdown-menu > li > a:focus > [class^=\"icon-\"],\n.dropdown-menu > li > a:hover > [class*=\" icon-\"],\n.dropdown-menu > li > a:focus > [class*=\" icon-\"],\n.dropdown-menu > .active > a > [class^=\"icon-\"],\n.dropdown-menu > .active > a > [class*=\" icon-\"],\n.dropdown-submenu:hover > a > [class^=\"icon-\"],\n.dropdown-submenu:focus > a > [class^=\"icon-\"],\n.dropdown-submenu:hover > a > [class*=\" icon-\"],\n.dropdown-submenu:focus > a > [class*=\" icon-\"] {\n  background-image: url(\"../img/glyphicons-halflings-white.png\");\n}\n\n.icon-glass {\n  background-position: 0      0;\n}\n\n.icon-music {\n  background-position: -24px 0;\n}\n\n.icon-search {\n  background-position: -48px 0;\n}\n\n.icon-envelope {\n  background-position: -72px 0;\n}\n\n.icon-heart {\n  background-position: -96px 0;\n}\n\n.icon-star {\n  background-position: -120px 0;\n}\n\n.icon-star-empty {\n  background-position: -144px 0;\n}\n\n.icon-user {\n  background-position: -168px 0;\n}\n\n.icon-film {\n  background-position: -192px 0;\n}\n\n.icon-th-large {\n  background-position: -216px 0;\n}\n\n.icon-th {\n  background-position: -240px 0;\n}\n\n.icon-th-list {\n  background-position: -264px 0;\n}\n\n.icon-ok {\n  background-position: -288px 0;\n}\n\n.icon-remove {\n  background-position: -312px 0;\n}\n\n.icon-zoom-in {\n  background-position: -336px 0;\n}\n\n.icon-zoom-out {\n  background-position: -360px 0;\n}\n\n.icon-off {\n  background-position: -384px 0;\n}\n\n.icon-signal {\n  background-position: -408px 0;\n}\n\n.icon-cog {\n  background-position: -432px 0;\n}\n\n.icon-trash {\n  background-position: -456px 0;\n}\n\n.icon-home {\n  background-position: 0 -24px;\n}\n\n.icon-file {\n  background-position: -24px -24px;\n}\n\n.icon-time {\n  background-position: -48px -24px;\n}\n\n.icon-road {\n  background-position: -72px -24px;\n}\n\n.icon-download-alt {\n  background-position: -96px -24px;\n}\n\n.icon-download {\n  background-position: -120px -24px;\n}\n\n.icon-upload {\n  background-position: -144px -24px;\n}\n\n.icon-inbox {\n  background-position: -168px -24px;\n}\n\n.icon-play-circle {\n  background-position: -192px -24px;\n}\n\n.icon-repeat {\n  background-position: -216px -24px;\n}\n\n.icon-refresh {\n  background-position: -240px -24px;\n}\n\n.icon-list-alt {\n  background-position: -264px -24px;\n}\n\n.icon-lock {\n  background-position: -287px -24px;\n}\n\n.icon-flag {\n  background-position: -312px -24px;\n}\n\n.icon-headphones {\n  background-position: -336px -24px;\n}\n\n.icon-volume-off {\n  background-position: -360px -24px;\n}\n\n.icon-volume-down {\n  background-position: -384px -24px;\n}\n\n.icon-volume-up {\n  background-position: -408px -24px;\n}\n\n.icon-qrcode {\n  background-position: -432px -24px;\n}\n\n.icon-barcode {\n  background-position: -456px -24px;\n}\n\n.icon-tag {\n  background-position: 0 -48px;\n}\n\n.icon-tags {\n  background-position: -25px -48px;\n}\n\n.icon-book {\n  background-position: -48px -48px;\n}\n\n.icon-bookmark {\n  background-position: -72px -48px;\n}\n\n.icon-print {\n  background-position: -96px -48px;\n}\n\n.icon-camera {\n  background-position: -120px -48px;\n}\n\n.icon-font {\n  background-position: -144px -48px;\n}\n\n.icon-bold {\n  background-position: -167px -48px;\n}\n\n.icon-italic {\n  background-position: -192px -48px;\n}\n\n.icon-text-height {\n  background-position: -216px -48px;\n}\n\n.icon-text-width {\n  background-position: -240px -48px;\n}\n\n.icon-align-left {\n  background-position: -264px -48px;\n}\n\n.icon-align-center {\n  background-position: -288px -48px;\n}\n\n.icon-align-right {\n  background-position: -312px -48px;\n}\n\n.icon-align-justify {\n  background-position: -336px -48px;\n}\n\n.icon-list {\n  background-position: -360px -48px;\n}\n\n.icon-indent-left {\n  background-position: -384px -48px;\n}\n\n.icon-indent-right {\n  background-position: -408px -48px;\n}\n\n.icon-facetime-video {\n  background-position: -432px -48px;\n}\n\n.icon-picture {\n  background-position: -456px -48px;\n}\n\n.icon-pencil {\n  background-position: 0 -72px;\n}\n\n.icon-map-marker {\n  background-position: -24px -72px;\n}\n\n.icon-adjust {\n  background-position: -48px -72px;\n}\n\n.icon-tint {\n  background-position: -72px -72px;\n}\n\n.icon-edit {\n  background-position: -96px -72px;\n}\n\n.icon-share {\n  background-position: -120px -72px;\n}\n\n.icon-check {\n  background-position: -144px -72px;\n}\n\n.icon-move {\n  background-position: -168px -72px;\n}\n\n.icon-step-backward {\n  background-position: -192px -72px;\n}\n\n.icon-fast-backward {\n  background-position: -216px -72px;\n}\n\n.icon-backward {\n  background-position: -240px -72px;\n}\n\n.icon-play {\n  background-position: -264px -72px;\n}\n\n.icon-pause {\n  background-position: -288px -72px;\n}\n\n.icon-stop {\n  background-position: -312px -72px;\n}\n\n.icon-forward {\n  background-position: -336px -72px;\n}\n\n.icon-fast-forward {\n  background-position: -360px -72px;\n}\n\n.icon-step-forward {\n  background-position: -384px -72px;\n}\n\n.icon-eject {\n  background-position: -408px -72px;\n}\n\n.icon-chevron-left {\n  background-position: -432px -72px;\n}\n\n.icon-chevron-right {\n  background-position: -456px -72px;\n}\n\n.icon-plus-sign {\n  background-position: 0 -96px;\n}\n\n.icon-minus-sign {\n  background-position: -24px -96px;\n}\n\n.icon-remove-sign {\n  background-position: -48px -96px;\n}\n\n.icon-ok-sign {\n  background-position: -72px -96px;\n}\n\n.icon-question-sign {\n  background-position: -96px -96px;\n}\n\n.icon-info-sign {\n  background-position: -120px -96px;\n}\n\n.icon-screenshot {\n  background-position: -144px -96px;\n}\n\n.icon-remove-circle {\n  background-position: -168px -96px;\n}\n\n.icon-ok-circle {\n  background-position: -192px -96px;\n}\n\n.icon-ban-circle {\n  background-position: -216px -96px;\n}\n\n.icon-arrow-left {\n  background-position: -240px -96px;\n}\n\n.icon-arrow-right {\n  background-position: -264px -96px;\n}\n\n.icon-arrow-up {\n  background-position: -289px -96px;\n}\n\n.icon-arrow-down {\n  background-position: -312px -96px;\n}\n\n.icon-share-alt {\n  background-position: -336px -96px;\n}\n\n.icon-resize-full {\n  background-position: -360px -96px;\n}\n\n.icon-resize-small {\n  background-position: -384px -96px;\n}\n\n.icon-plus {\n  background-position: -408px -96px;\n}\n\n.icon-minus {\n  background-position: -433px -96px;\n}\n\n.icon-asterisk {\n  background-position: -456px -96px;\n}\n\n.icon-exclamation-sign {\n  background-position: 0 -120px;\n}\n\n.icon-gift {\n  background-position: -24px -120px;\n}\n\n.icon-leaf {\n  background-position: -48px -120px;\n}\n\n.icon-fire {\n  background-position: -72px -120px;\n}\n\n.icon-eye-open {\n  background-position: -96px -120px;\n}\n\n.icon-eye-close {\n  background-position: -120px -120px;\n}\n\n.icon-warning-sign {\n  background-position: -144px -120px;\n}\n\n.icon-plane {\n  background-position: -168px -120px;\n}\n\n.icon-calendar {\n  background-position: -192px -120px;\n}\n\n.icon-random {\n  width: 16px;\n  background-position: -216px -120px;\n}\n\n.icon-comment {\n  background-position: -240px -120px;\n}\n\n.icon-magnet {\n  background-position: -264px -120px;\n}\n\n.icon-chevron-up {\n  background-position: -288px -120px;\n}\n\n.icon-chevron-down {\n  background-position: -313px -119px;\n}\n\n.icon-retweet {\n  background-position: -336px -120px;\n}\n\n.icon-shopping-cart {\n  background-position: -360px -120px;\n}\n\n.icon-folder-close {\n  width: 16px;\n  background-position: -384px -120px;\n}\n\n.icon-folder-open {\n  width: 16px;\n  background-position: -408px -120px;\n}\n\n.icon-resize-vertical {\n  background-position: -432px -119px;\n}\n\n.icon-resize-horizontal {\n  background-position: -456px -118px;\n}\n\n.icon-hdd {\n  background-position: 0 -144px;\n}\n\n.icon-bullhorn {\n  background-position: -24px -144px;\n}\n\n.icon-bell {\n  background-position: -48px -144px;\n}\n\n.icon-certificate {\n  background-position: -72px -144px;\n}\n\n.icon-thumbs-up {\n  background-position: -96px -144px;\n}\n\n.icon-thumbs-down {\n  background-position: -120px -144px;\n}\n\n.icon-hand-right {\n  background-position: -144px -144px;\n}\n\n.icon-hand-left {\n  background-position: -168px -144px;\n}\n\n.icon-hand-up {\n  background-position: -192px -144px;\n}\n\n.icon-hand-down {\n  background-position: -216px -144px;\n}\n\n.icon-circle-arrow-right {\n  background-position: -240px -144px;\n}\n\n.icon-circle-arrow-left {\n  background-position: -264px -144px;\n}\n\n.icon-circle-arrow-up {\n  background-position: -288px -144px;\n}\n\n.icon-circle-arrow-down {\n  background-position: -312px -144px;\n}\n\n.icon-globe {\n  background-position: -336px -144px;\n}\n\n.icon-wrench {\n  background-position: -360px -144px;\n}\n\n.icon-tasks {\n  background-position: -384px -144px;\n}\n\n.icon-filter {\n  background-position: -408px -144px;\n}\n\n.icon-briefcase {\n  background-position: -432px -144px;\n}\n\n.icon-fullscreen {\n  background-position: -456px -144px;\n}\n\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n.dropdown-toggle {\n  *margin-bottom: -3px;\n}\n\n.dropdown-toggle:active,\n.open .dropdown-toggle {\n  outline: 0;\n}\n\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  vertical-align: top;\n  border-top: 4px solid #000000;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n  content: \"\";\n}\n\n.dropdown .caret {\n  margin-top: 8px;\n  margin-left: 2px;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n}\n\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n\n.dropdown-menu .divider {\n  *width: 100%;\n  height: 1px;\n  margin: 9px 1px;\n  *margin: -5px 0 5px;\n  overflow: hidden;\n  background-color: #e5e5e5;\n  border-bottom: 1px solid #ffffff;\n}\n\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 20px;\n  color: #333333;\n  white-space: nowrap;\n}\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus,\n.dropdown-submenu:hover > a,\n.dropdown-submenu:focus > a {\n  color: #ffffff;\n  text-decoration: none;\n  background-color: #0081c2;\n  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -o-linear-gradient(top, #0088cc, #0077b3);\n  background-image: linear-gradient(to bottom, #0088cc, #0077b3);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);\n}\n\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #ffffff;\n  text-decoration: none;\n  background-color: #0081c2;\n  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -o-linear-gradient(top, #0088cc, #0077b3);\n  background-image: linear-gradient(to bottom, #0088cc, #0077b3);\n  background-repeat: repeat-x;\n  outline: 0;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);\n}\n\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #999999;\n}\n\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  cursor: default;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.open {\n  *z-index: 1000;\n}\n\n.open > .dropdown-menu {\n  display: block;\n}\n\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px solid #000000;\n  content: \"\";\n}\n\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 1px;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  top: 0;\n  left: 100%;\n  margin-top: -6px;\n  margin-left: -1px;\n  -webkit-border-radius: 0 6px 6px 6px;\n     -moz-border-radius: 0 6px 6px 6px;\n          border-radius: 0 6px 6px 6px;\n}\n\n.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropup .dropdown-submenu > .dropdown-menu {\n  top: auto;\n  bottom: 0;\n  margin-top: 0;\n  margin-bottom: -2px;\n  -webkit-border-radius: 5px 5px 5px 0;\n     -moz-border-radius: 5px 5px 5px 0;\n          border-radius: 5px 5px 5px 0;\n}\n\n.dropdown-submenu > a:after {\n  display: block;\n  float: right;\n  width: 0;\n  height: 0;\n  margin-top: 5px;\n  margin-right: -10px;\n  border-color: transparent;\n  border-left-color: #cccccc;\n  border-style: solid;\n  border-width: 5px 0 5px 5px;\n  content: \" \";\n}\n\n.dropdown-submenu:hover > a:after {\n  border-left-color: #ffffff;\n}\n\n.dropdown-submenu.pull-left {\n  float: none;\n}\n\n.dropdown-submenu.pull-left > .dropdown-menu {\n  left: -100%;\n  margin-left: 10px;\n  -webkit-border-radius: 6px 0 6px 6px;\n     -moz-border-radius: 6px 0 6px 6px;\n          border-radius: 6px 0 6px 6px;\n}\n\n.dropdown .dropdown-menu .nav-header {\n  padding-right: 20px;\n  padding-left: 20px;\n}\n\n.typeahead {\n  z-index: 1051;\n  margin-top: 2px;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, 0.15);\n}\n\n.well-large {\n  padding: 24px;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.well-small {\n  padding: 9px;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n     -moz-transition: opacity 0.15s linear;\n       -o-transition: opacity 0.15s linear;\n          transition: opacity 0.15s linear;\n}\n\n.fade.in {\n  opacity: 1;\n}\n\n.collapse {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition: height 0.35s ease;\n     -moz-transition: height 0.35s ease;\n       -o-transition: height 0.35s ease;\n          transition: height 0.35s ease;\n}\n\n.collapse.in {\n  height: auto;\n}\n\n.close {\n  float: right;\n  font-size: 20px;\n  font-weight: bold;\n  line-height: 20px;\n  color: #000000;\n  text-shadow: 0 1px 0 #ffffff;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n}\n\n.close:hover,\n.close:focus {\n  color: #000000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.4;\n  filter: alpha(opacity=40);\n}\n\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n\n.btn {\n  display: inline-block;\n  *display: inline;\n  padding: 4px 12px;\n  margin-bottom: 0;\n  *margin-left: .3em;\n  font-size: 14px;\n  line-height: 20px;\n  color: #333333;\n  text-align: center;\n  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);\n  vertical-align: middle;\n  cursor: pointer;\n  background-color: #f5f5f5;\n  *background-color: #e6e6e6;\n  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));\n  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);\n  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);\n  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);\n  background-repeat: repeat-x;\n  border: 1px solid #cccccc;\n  *border: 0;\n  border-color: #e6e6e6 #e6e6e6 #bfbfbf;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  border-bottom-color: #b3b3b3;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  *zoom: 1;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn:hover,\n.btn:focus,\n.btn:active,\n.btn.active,\n.btn.disabled,\n.btn[disabled] {\n  color: #333333;\n  background-color: #e6e6e6;\n  *background-color: #d9d9d9;\n}\n\n.btn:active,\n.btn.active {\n  background-color: #cccccc \\9;\n}\n\n.btn:first-child {\n  *margin-left: 0;\n}\n\n.btn:hover,\n.btn:focus {\n  color: #333333;\n  text-decoration: none;\n  background-position: 0 -15px;\n  -webkit-transition: background-position 0.1s linear;\n     -moz-transition: background-position 0.1s linear;\n       -o-transition: background-position 0.1s linear;\n          transition: background-position 0.1s linear;\n}\n\n.btn:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n.btn.active,\n.btn:active {\n  background-image: none;\n  outline: 0;\n  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn.disabled,\n.btn[disabled] {\n  cursor: default;\n  background-image: none;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n     -moz-box-shadow: none;\n          box-shadow: none;\n}\n\n.btn-large {\n  padding: 11px 19px;\n  font-size: 17.5px;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.btn-large [class^=\"icon-\"],\n.btn-large [class*=\" icon-\"] {\n  margin-top: 4px;\n}\n\n.btn-small {\n  padding: 2px 10px;\n  font-size: 11.9px;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.btn-small [class^=\"icon-\"],\n.btn-small [class*=\" icon-\"] {\n  margin-top: 0;\n}\n\n.btn-mini [class^=\"icon-\"],\n.btn-mini [class*=\" icon-\"] {\n  margin-top: -1px;\n}\n\n.btn-mini {\n  padding: 0 6px;\n  font-size: 10.5px;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n  padding-right: 0;\n  padding-left: 0;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.btn-primary.active,\n.btn-warning.active,\n.btn-danger.active,\n.btn-success.active,\n.btn-info.active,\n.btn-inverse.active {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.btn-primary {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #006dcc;\n  *background-color: #0044cc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary:active,\n.btn-primary.active,\n.btn-primary.disabled,\n.btn-primary[disabled] {\n  color: #ffffff;\n  background-color: #0044cc;\n  *background-color: #003bb3;\n}\n\n.btn-primary:active,\n.btn-primary.active {\n  background-color: #003399 \\9;\n}\n\n.btn-warning {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #faa732;\n  *background-color: #f89406;\n  background-image: -moz-linear-gradient(top, #fbb450, #f89406);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));\n  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);\n  background-image: -o-linear-gradient(top, #fbb450, #f89406);\n  background-image: linear-gradient(to bottom, #fbb450, #f89406);\n  background-repeat: repeat-x;\n  border-color: #f89406 #f89406 #ad6704;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning:active,\n.btn-warning.active,\n.btn-warning.disabled,\n.btn-warning[disabled] {\n  color: #ffffff;\n  background-color: #f89406;\n  *background-color: #df8505;\n}\n\n.btn-warning:active,\n.btn-warning.active {\n  background-color: #c67605 \\9;\n}\n\n.btn-danger {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #da4f49;\n  *background-color: #bd362f;\n  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));\n  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);\n  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);\n  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);\n  background-repeat: repeat-x;\n  border-color: #bd362f #bd362f #802420;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger:active,\n.btn-danger.active,\n.btn-danger.disabled,\n.btn-danger[disabled] {\n  color: #ffffff;\n  background-color: #bd362f;\n  *background-color: #a9302a;\n}\n\n.btn-danger:active,\n.btn-danger.active {\n  background-color: #942a25 \\9;\n}\n\n.btn-success {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #5bb75b;\n  *background-color: #51a351;\n  background-image: -moz-linear-gradient(top, #62c462, #51a351);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));\n  background-image: -webkit-linear-gradient(top, #62c462, #51a351);\n  background-image: -o-linear-gradient(top, #62c462, #51a351);\n  background-image: linear-gradient(to bottom, #62c462, #51a351);\n  background-repeat: repeat-x;\n  border-color: #51a351 #51a351 #387038;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-success:hover,\n.btn-success:focus,\n.btn-success:active,\n.btn-success.active,\n.btn-success.disabled,\n.btn-success[disabled] {\n  color: #ffffff;\n  background-color: #51a351;\n  *background-color: #499249;\n}\n\n.btn-success:active,\n.btn-success.active {\n  background-color: #408140 \\9;\n}\n\n.btn-info {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #49afcd;\n  *background-color: #2f96b4;\n  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));\n  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);\n  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);\n  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);\n  background-repeat: repeat-x;\n  border-color: #2f96b4 #2f96b4 #1f6377;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-info:hover,\n.btn-info:focus,\n.btn-info:active,\n.btn-info.active,\n.btn-info.disabled,\n.btn-info[disabled] {\n  color: #ffffff;\n  background-color: #2f96b4;\n  *background-color: #2a85a0;\n}\n\n.btn-info:active,\n.btn-info.active {\n  background-color: #24748c \\9;\n}\n\n.btn-inverse {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #363636;\n  *background-color: #222222;\n  background-image: -moz-linear-gradient(top, #444444, #222222);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));\n  background-image: -webkit-linear-gradient(top, #444444, #222222);\n  background-image: -o-linear-gradient(top, #444444, #222222);\n  background-image: linear-gradient(to bottom, #444444, #222222);\n  background-repeat: repeat-x;\n  border-color: #222222 #222222 #000000;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-inverse:hover,\n.btn-inverse:focus,\n.btn-inverse:active,\n.btn-inverse.active,\n.btn-inverse.disabled,\n.btn-inverse[disabled] {\n  color: #ffffff;\n  background-color: #222222;\n  *background-color: #151515;\n}\n\n.btn-inverse:active,\n.btn-inverse.active {\n  background-color: #080808 \\9;\n}\n\nbutton.btn,\ninput[type=\"submit\"].btn {\n  *padding-top: 3px;\n  *padding-bottom: 3px;\n}\n\nbutton.btn::-moz-focus-inner,\ninput[type=\"submit\"].btn::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\n\nbutton.btn.btn-large,\ninput[type=\"submit\"].btn.btn-large {\n  *padding-top: 7px;\n  *padding-bottom: 7px;\n}\n\nbutton.btn.btn-small,\ninput[type=\"submit\"].btn.btn-small {\n  *padding-top: 3px;\n  *padding-bottom: 3px;\n}\n\nbutton.btn.btn-mini,\ninput[type=\"submit\"].btn.btn-mini {\n  *padding-top: 1px;\n  *padding-bottom: 1px;\n}\n\n.btn-link,\n.btn-link:active,\n.btn-link[disabled] {\n  background-color: transparent;\n  background-image: none;\n  -webkit-box-shadow: none;\n     -moz-box-shadow: none;\n          box-shadow: none;\n}\n\n.btn-link {\n  color: #0088cc;\n  cursor: pointer;\n  border-color: transparent;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.btn-link:hover,\n.btn-link:focus {\n  color: #005580;\n  text-decoration: underline;\n  background-color: transparent;\n}\n\n.btn-link[disabled]:hover,\n.btn-link[disabled]:focus {\n  color: #333333;\n  text-decoration: none;\n}\n\n.btn-group {\n  position: relative;\n  display: inline-block;\n  *display: inline;\n  *margin-left: .3em;\n  font-size: 0;\n  white-space: nowrap;\n  vertical-align: middle;\n  *zoom: 1;\n}\n\n.btn-group:first-child {\n  *margin-left: 0;\n}\n\n.btn-group + .btn-group {\n  margin-left: 5px;\n}\n\n.btn-toolbar {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  font-size: 0;\n}\n\n.btn-toolbar > .btn + .btn,\n.btn-toolbar > .btn-group + .btn,\n.btn-toolbar > .btn + .btn-group {\n  margin-left: 5px;\n}\n\n.btn-group > .btn {\n  position: relative;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.btn-group > .btn + .btn {\n  margin-left: -1px;\n}\n\n.btn-group > .btn,\n.btn-group > .dropdown-menu,\n.btn-group > .popover {\n  font-size: 14px;\n}\n\n.btn-group > .btn-mini {\n  font-size: 10.5px;\n}\n\n.btn-group > .btn-small {\n  font-size: 11.9px;\n}\n\n.btn-group > .btn-large {\n  font-size: 17.5px;\n}\n\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.btn-group > .btn:last-child,\n.btn-group > .dropdown-toggle {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  -moz-border-radius-bottomright: 4px;\n}\n\n.btn-group > .btn.large:first-child {\n  margin-left: 0;\n  -webkit-border-bottom-left-radius: 6px;\n          border-bottom-left-radius: 6px;\n  -webkit-border-top-left-radius: 6px;\n          border-top-left-radius: 6px;\n  -moz-border-radius-bottomleft: 6px;\n  -moz-border-radius-topleft: 6px;\n}\n\n.btn-group > .btn.large:last-child,\n.btn-group > .large.dropdown-toggle {\n  -webkit-border-top-right-radius: 6px;\n          border-top-right-radius: 6px;\n  -webkit-border-bottom-right-radius: 6px;\n          border-bottom-right-radius: 6px;\n  -moz-border-radius-topright: 6px;\n  -moz-border-radius-bottomright: 6px;\n}\n\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active {\n  z-index: 2;\n}\n\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n.btn-group > .btn + .dropdown-toggle {\n  *padding-top: 5px;\n  padding-right: 8px;\n  *padding-bottom: 5px;\n  padding-left: 8px;\n  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn-group > .btn-mini + .dropdown-toggle {\n  *padding-top: 2px;\n  padding-right: 5px;\n  *padding-bottom: 2px;\n  padding-left: 5px;\n}\n\n.btn-group > .btn-small + .dropdown-toggle {\n  *padding-top: 5px;\n  *padding-bottom: 4px;\n}\n\n.btn-group > .btn-large + .dropdown-toggle {\n  *padding-top: 7px;\n  padding-right: 12px;\n  *padding-bottom: 7px;\n  padding-left: 12px;\n}\n\n.btn-group.open .dropdown-toggle {\n  background-image: none;\n  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn-group.open .btn.dropdown-toggle {\n  background-color: #e6e6e6;\n}\n\n.btn-group.open .btn-primary.dropdown-toggle {\n  background-color: #0044cc;\n}\n\n.btn-group.open .btn-warning.dropdown-toggle {\n  background-color: #f89406;\n}\n\n.btn-group.open .btn-danger.dropdown-toggle {\n  background-color: #bd362f;\n}\n\n.btn-group.open .btn-success.dropdown-toggle {\n  background-color: #51a351;\n}\n\n.btn-group.open .btn-info.dropdown-toggle {\n  background-color: #2f96b4;\n}\n\n.btn-group.open .btn-inverse.dropdown-toggle {\n  background-color: #222222;\n}\n\n.btn .caret {\n  margin-top: 8px;\n  margin-left: 0;\n}\n\n.btn-large .caret {\n  margin-top: 6px;\n}\n\n.btn-large .caret {\n  border-top-width: 5px;\n  border-right-width: 5px;\n  border-left-width: 5px;\n}\n\n.btn-mini .caret,\n.btn-small .caret {\n  margin-top: 8px;\n}\n\n.dropup .btn-large .caret {\n  border-bottom-width: 5px;\n}\n\n.btn-primary .caret,\n.btn-warning .caret,\n.btn-danger .caret,\n.btn-info .caret,\n.btn-success .caret,\n.btn-inverse .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.btn-group-vertical {\n  display: inline-block;\n  *display: inline;\n  /* IE7 inline-block hack */\n\n  *zoom: 1;\n}\n\n.btn-group-vertical > .btn {\n  display: block;\n  float: none;\n  max-width: 100%;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.btn-group-vertical > .btn + .btn {\n  margin-top: -1px;\n  margin-left: 0;\n}\n\n.btn-group-vertical > .btn:first-child {\n  -webkit-border-radius: 4px 4px 0 0;\n     -moz-border-radius: 4px 4px 0 0;\n          border-radius: 4px 4px 0 0;\n}\n\n.btn-group-vertical > .btn:last-child {\n  -webkit-border-radius: 0 0 4px 4px;\n     -moz-border-radius: 0 0 4px 4px;\n          border-radius: 0 0 4px 4px;\n}\n\n.btn-group-vertical > .btn-large:first-child {\n  -webkit-border-radius: 6px 6px 0 0;\n     -moz-border-radius: 6px 6px 0 0;\n          border-radius: 6px 6px 0 0;\n}\n\n.btn-group-vertical > .btn-large:last-child {\n  -webkit-border-radius: 0 0 6px 6px;\n     -moz-border-radius: 0 0 6px 6px;\n          border-radius: 0 0 6px 6px;\n}\n\n.alert {\n  padding: 8px 35px 8px 14px;\n  margin-bottom: 20px;\n  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n  background-color: #fcf8e3;\n  border: 1px solid #fbeed5;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.alert,\n.alert h4 {\n  color: #c09853;\n}\n\n.alert h4 {\n  margin: 0;\n}\n\n.alert .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  line-height: 20px;\n}\n\n.alert-success {\n  color: #468847;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n\n.alert-success h4 {\n  color: #468847;\n}\n\n.alert-danger,\n.alert-error {\n  color: #b94a48;\n  background-color: #f2dede;\n  border-color: #eed3d7;\n}\n\n.alert-danger h4,\n.alert-error h4 {\n  color: #b94a48;\n}\n\n.alert-info {\n  color: #3a87ad;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n\n.alert-info h4 {\n  color: #3a87ad;\n}\n\n.alert-block {\n  padding-top: 14px;\n  padding-bottom: 14px;\n}\n\n.alert-block > p,\n.alert-block > ul {\n  margin-bottom: 0;\n}\n\n.alert-block p + p {\n  margin-top: 5px;\n}\n\n.nav {\n  margin-bottom: 20px;\n  margin-left: 0;\n  list-style: none;\n}\n\n.nav > li > a {\n  display: block;\n}\n\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n\n.nav > li > a > img {\n  max-width: none;\n}\n\n.nav > .pull-right {\n  float: right;\n}\n\n.nav-header {\n  display: block;\n  padding: 3px 15px;\n  font-size: 11px;\n  font-weight: bold;\n  line-height: 20px;\n  color: #999999;\n  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n  text-transform: uppercase;\n}\n\n.nav li + .nav-header {\n  margin-top: 9px;\n}\n\n.nav-list {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-bottom: 0;\n}\n\n.nav-list > li > a,\n.nav-list .nav-header {\n  margin-right: -15px;\n  margin-left: -15px;\n  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n}\n\n.nav-list > li > a {\n  padding: 3px 15px;\n}\n\n.nav-list > .active > a,\n.nav-list > .active > a:hover,\n.nav-list > .active > a:focus {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n  background-color: #0088cc;\n}\n\n.nav-list [class^=\"icon-\"],\n.nav-list [class*=\" icon-\"] {\n  margin-right: 2px;\n}\n\n.nav-list .divider {\n  *width: 100%;\n  height: 1px;\n  margin: 9px 1px;\n  *margin: -5px 0 5px;\n  overflow: hidden;\n  background-color: #e5e5e5;\n  border-bottom: 1px solid #ffffff;\n}\n\n.nav-tabs,\n.nav-pills {\n  *zoom: 1;\n}\n\n.nav-tabs:before,\n.nav-pills:before,\n.nav-tabs:after,\n.nav-pills:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.nav-tabs:after,\n.nav-pills:after {\n  clear: both;\n}\n\n.nav-tabs > li,\n.nav-pills > li {\n  float: left;\n}\n\n.nav-tabs > li > a,\n.nav-pills > li > a {\n  padding-right: 12px;\n  padding-left: 12px;\n  margin-right: 2px;\n  line-height: 14px;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n\n.nav-tabs > li {\n  margin-bottom: -1px;\n}\n\n.nav-tabs > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  line-height: 20px;\n  border: 1px solid transparent;\n  -webkit-border-radius: 4px 4px 0 0;\n     -moz-border-radius: 4px 4px 0 0;\n          border-radius: 4px 4px 0 0;\n}\n\n.nav-tabs > li > a:hover,\n.nav-tabs > li > a:focus {\n  border-color: #eeeeee #eeeeee #dddddd;\n}\n\n.nav-tabs > .active > a,\n.nav-tabs > .active > a:hover,\n.nav-tabs > .active > a:focus {\n  color: #555555;\n  cursor: default;\n  background-color: #ffffff;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n}\n\n.nav-pills > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  margin-top: 2px;\n  margin-bottom: 2px;\n  -webkit-border-radius: 5px;\n     -moz-border-radius: 5px;\n          border-radius: 5px;\n}\n\n.nav-pills > .active > a,\n.nav-pills > .active > a:hover,\n.nav-pills > .active > a:focus {\n  color: #ffffff;\n  background-color: #0088cc;\n}\n\n.nav-stacked > li {\n  float: none;\n}\n\n.nav-stacked > li > a {\n  margin-right: 0;\n}\n\n.nav-tabs.nav-stacked {\n  border-bottom: 0;\n}\n\n.nav-tabs.nav-stacked > li > a {\n  border: 1px solid #ddd;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.nav-tabs.nav-stacked > li:first-child > a {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.nav-tabs.nav-stacked > li:last-child > a {\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -moz-border-radius-bottomright: 4px;\n  -moz-border-radius-bottomleft: 4px;\n}\n\n.nav-tabs.nav-stacked > li > a:hover,\n.nav-tabs.nav-stacked > li > a:focus {\n  z-index: 2;\n  border-color: #ddd;\n}\n\n.nav-pills.nav-stacked > li > a {\n  margin-bottom: 3px;\n}\n\n.nav-pills.nav-stacked > li:last-child > a {\n  margin-bottom: 1px;\n}\n\n.nav-tabs .dropdown-menu {\n  -webkit-border-radius: 0 0 6px 6px;\n     -moz-border-radius: 0 0 6px 6px;\n          border-radius: 0 0 6px 6px;\n}\n\n.nav-pills .dropdown-menu {\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.nav .dropdown-toggle .caret {\n  margin-top: 6px;\n  border-top-color: #0088cc;\n  border-bottom-color: #0088cc;\n}\n\n.nav .dropdown-toggle:hover .caret,\n.nav .dropdown-toggle:focus .caret {\n  border-top-color: #005580;\n  border-bottom-color: #005580;\n}\n\n/* move down carets for tabs */\n\n.nav-tabs .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n.nav .active .dropdown-toggle .caret {\n  border-top-color: #fff;\n  border-bottom-color: #fff;\n}\n\n.nav-tabs .active .dropdown-toggle .caret {\n  border-top-color: #555555;\n  border-bottom-color: #555555;\n}\n\n.nav > .dropdown.active > a:hover,\n.nav > .dropdown.active > a:focus {\n  cursor: pointer;\n}\n\n.nav-tabs .open .dropdown-toggle,\n.nav-pills .open .dropdown-toggle,\n.nav > li.dropdown.open.active > a:hover,\n.nav > li.dropdown.open.active > a:focus {\n  color: #ffffff;\n  background-color: #999999;\n  border-color: #999999;\n}\n\n.nav li.dropdown.open .caret,\n.nav li.dropdown.open.active .caret,\n.nav li.dropdown.open a:hover .caret,\n.nav li.dropdown.open a:focus .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.tabs-stacked .open > a:hover,\n.tabs-stacked .open > a:focus {\n  border-color: #999999;\n}\n\n.tabbable {\n  *zoom: 1;\n}\n\n.tabbable:before,\n.tabbable:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.tabbable:after {\n  clear: both;\n}\n\n.tab-content {\n  overflow: auto;\n}\n\n.tabs-below > .nav-tabs,\n.tabs-right > .nav-tabs,\n.tabs-left > .nav-tabs {\n  border-bottom: 0;\n}\n\n.tab-content > .tab-pane,\n.pill-content > .pill-pane {\n  display: none;\n}\n\n.tab-content > .active,\n.pill-content > .active {\n  display: block;\n}\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n}\n\n.tabs-below > .nav-tabs > li {\n  margin-top: -1px;\n  margin-bottom: 0;\n}\n\n.tabs-below > .nav-tabs > li > a {\n  -webkit-border-radius: 0 0 4px 4px;\n     -moz-border-radius: 0 0 4px 4px;\n          border-radius: 0 0 4px 4px;\n}\n\n.tabs-below > .nav-tabs > li > a:hover,\n.tabs-below > .nav-tabs > li > a:focus {\n  border-top-color: #ddd;\n  border-bottom-color: transparent;\n}\n\n.tabs-below > .nav-tabs > .active > a,\n.tabs-below > .nav-tabs > .active > a:hover,\n.tabs-below > .nav-tabs > .active > a:focus {\n  border-color: transparent #ddd #ddd #ddd;\n}\n\n.tabs-left > .nav-tabs > li,\n.tabs-right > .nav-tabs > li {\n  float: none;\n}\n\n.tabs-left > .nav-tabs > li > a,\n.tabs-right > .nav-tabs > li > a {\n  min-width: 74px;\n  margin-right: 0;\n  margin-bottom: 3px;\n}\n\n.tabs-left > .nav-tabs {\n  float: left;\n  margin-right: 19px;\n  border-right: 1px solid #ddd;\n}\n\n.tabs-left > .nav-tabs > li > a {\n  margin-right: -1px;\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.tabs-left > .nav-tabs > li > a:hover,\n.tabs-left > .nav-tabs > li > a:focus {\n  border-color: #eeeeee #dddddd #eeeeee #eeeeee;\n}\n\n.tabs-left > .nav-tabs .active > a,\n.tabs-left > .nav-tabs .active > a:hover,\n.tabs-left > .nav-tabs .active > a:focus {\n  border-color: #ddd transparent #ddd #ddd;\n  *border-right-color: #ffffff;\n}\n\n.tabs-right > .nav-tabs {\n  float: right;\n  margin-left: 19px;\n  border-left: 1px solid #ddd;\n}\n\n.tabs-right > .nav-tabs > li > a {\n  margin-left: -1px;\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.tabs-right > .nav-tabs > li > a:hover,\n.tabs-right > .nav-tabs > li > a:focus {\n  border-color: #eeeeee #eeeeee #eeeeee #dddddd;\n}\n\n.tabs-right > .nav-tabs .active > a,\n.tabs-right > .nav-tabs .active > a:hover,\n.tabs-right > .nav-tabs .active > a:focus {\n  border-color: #ddd #ddd #ddd transparent;\n  *border-left-color: #ffffff;\n}\n\n.nav > .disabled > a {\n  color: #999999;\n}\n\n.nav > .disabled > a:hover,\n.nav > .disabled > a:focus {\n  text-decoration: none;\n  cursor: default;\n  background-color: transparent;\n}\n\n.navbar {\n  *position: relative;\n  *z-index: 2;\n  margin-bottom: 20px;\n  overflow: visible;\n}\n\n.navbar-inner {\n  min-height: 40px;\n  padding-right: 20px;\n  padding-left: 20px;\n  background-color: #fafafa;\n  background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));\n  background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);\n  background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);\n  background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);\n  background-repeat: repeat-x;\n  border: 1px solid #d4d4d4;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);\n  *zoom: 1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);\n     -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);\n          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);\n}\n\n.navbar-inner:before,\n.navbar-inner:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.navbar-inner:after {\n  clear: both;\n}\n\n.navbar .container {\n  width: auto;\n}\n\n.nav-collapse.collapse {\n  height: auto;\n  overflow: visible;\n}\n\n.navbar .brand {\n  display: block;\n  float: left;\n  padding: 10px 20px 10px;\n  margin-left: -20px;\n  font-size: 20px;\n  font-weight: 200;\n  color: #777777;\n  text-shadow: 0 1px 0 #ffffff;\n}\n\n.navbar .brand:hover,\n.navbar .brand:focus {\n  text-decoration: none;\n}\n\n.navbar-text {\n  margin-bottom: 0;\n  line-height: 40px;\n  color: #777777;\n}\n\n.navbar-link {\n  color: #777777;\n}\n\n.navbar-link:hover,\n.navbar-link:focus {\n  color: #333333;\n}\n\n.navbar .divider-vertical {\n  height: 40px;\n  margin: 0 9px;\n  border-right: 1px solid #ffffff;\n  border-left: 1px solid #f2f2f2;\n}\n\n.navbar .btn,\n.navbar .btn-group {\n  margin-top: 5px;\n}\n\n.navbar .btn-group .btn,\n.navbar .input-prepend .btn,\n.navbar .input-append .btn,\n.navbar .input-prepend .btn-group,\n.navbar .input-append .btn-group {\n  margin-top: 0;\n}\n\n.navbar-form {\n  margin-bottom: 0;\n  *zoom: 1;\n}\n\n.navbar-form:before,\n.navbar-form:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.navbar-form:after {\n  clear: both;\n}\n\n.navbar-form input,\n.navbar-form select,\n.navbar-form .radio,\n.navbar-form .checkbox {\n  margin-top: 5px;\n}\n\n.navbar-form input,\n.navbar-form select,\n.navbar-form .btn {\n  display: inline-block;\n  margin-bottom: 0;\n}\n\n.navbar-form input[type=\"image\"],\n.navbar-form input[type=\"checkbox\"],\n.navbar-form input[type=\"radio\"] {\n  margin-top: 3px;\n}\n\n.navbar-form .input-append,\n.navbar-form .input-prepend {\n  margin-top: 5px;\n  white-space: nowrap;\n}\n\n.navbar-form .input-append input,\n.navbar-form .input-prepend input {\n  margin-top: 0;\n}\n\n.navbar-search {\n  position: relative;\n  float: left;\n  margin-top: 5px;\n  margin-bottom: 0;\n}\n\n.navbar-search .search-query {\n  padding: 4px 14px;\n  margin-bottom: 0;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 13px;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-border-radius: 15px;\n     -moz-border-radius: 15px;\n          border-radius: 15px;\n}\n\n.navbar-static-top {\n  position: static;\n  margin-bottom: 0;\n}\n\n.navbar-static-top .navbar-inner {\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n  margin-bottom: 0;\n}\n\n.navbar-fixed-top .navbar-inner,\n.navbar-static-top .navbar-inner {\n  border-width: 0 0 1px;\n}\n\n.navbar-fixed-bottom .navbar-inner {\n  border-width: 1px 0 0;\n}\n\n.navbar-fixed-top .navbar-inner,\n.navbar-fixed-bottom .navbar-inner {\n  padding-right: 0;\n  padding-left: 0;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.navbar-static-top .container,\n.navbar-fixed-top .container,\n.navbar-fixed-bottom .container {\n  width: 940px;\n}\n\n.navbar-fixed-top {\n  top: 0;\n}\n\n.navbar-fixed-top .navbar-inner,\n.navbar-static-top .navbar-inner {\n  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);\n          box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);\n}\n\n.navbar-fixed-bottom {\n  bottom: 0;\n}\n\n.navbar-fixed-bottom .navbar-inner {\n  -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);\n          box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);\n}\n\n.navbar .nav {\n  position: relative;\n  left: 0;\n  display: block;\n  float: left;\n  margin: 0 10px 0 0;\n}\n\n.navbar .nav.pull-right {\n  float: right;\n  margin-right: 0;\n}\n\n.navbar .nav > li {\n  float: left;\n}\n\n.navbar .nav > li > a {\n  float: none;\n  padding: 10px 15px 10px;\n  color: #777777;\n  text-decoration: none;\n  text-shadow: 0 1px 0 #ffffff;\n}\n\n.navbar .nav .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n.navbar .nav > li > a:focus,\n.navbar .nav > li > a:hover {\n  color: #333333;\n  text-decoration: none;\n  background-color: transparent;\n}\n\n.navbar .nav > .active > a,\n.navbar .nav > .active > a:hover,\n.navbar .nav > .active > a:focus {\n  color: #555555;\n  text-decoration: none;\n  background-color: #e5e5e5;\n  -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);\n     -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);\n          box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);\n}\n\n.navbar .btn-navbar {\n  display: none;\n  float: right;\n  padding: 7px 10px;\n  margin-right: 5px;\n  margin-left: 5px;\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #ededed;\n  *background-color: #e5e5e5;\n  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));\n  background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);\n  background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);\n  background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);\n  background-repeat: repeat-x;\n  border-color: #e5e5e5 #e5e5e5 #bfbfbf;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);\n     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);\n}\n\n.navbar .btn-navbar:hover,\n.navbar .btn-navbar:focus,\n.navbar .btn-navbar:active,\n.navbar .btn-navbar.active,\n.navbar .btn-navbar.disabled,\n.navbar .btn-navbar[disabled] {\n  color: #ffffff;\n  background-color: #e5e5e5;\n  *background-color: #d9d9d9;\n}\n\n.navbar .btn-navbar:active,\n.navbar .btn-navbar.active {\n  background-color: #cccccc \\9;\n}\n\n.navbar .btn-navbar .icon-bar {\n  display: block;\n  width: 18px;\n  height: 2px;\n  background-color: #f5f5f5;\n  -webkit-border-radius: 1px;\n     -moz-border-radius: 1px;\n          border-radius: 1px;\n  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);\n     -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);\n          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);\n}\n\n.btn-navbar .icon-bar + .icon-bar {\n  margin-top: 3px;\n}\n\n.navbar .nav > li > .dropdown-menu:before {\n  position: absolute;\n  top: -7px;\n  left: 9px;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.navbar .nav > li > .dropdown-menu:after {\n  position: absolute;\n  top: -6px;\n  left: 10px;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.navbar-fixed-bottom .nav > li > .dropdown-menu:before {\n  top: auto;\n  bottom: -7px;\n  border-top: 7px solid #ccc;\n  border-bottom: 0;\n  border-top-color: rgba(0, 0, 0, 0.2);\n}\n\n.navbar-fixed-bottom .nav > li > .dropdown-menu:after {\n  top: auto;\n  bottom: -6px;\n  border-top: 6px solid #ffffff;\n  border-bottom: 0;\n}\n\n.navbar .nav li.dropdown > a:hover .caret,\n.navbar .nav li.dropdown > a:focus .caret {\n  border-top-color: #333333;\n  border-bottom-color: #333333;\n}\n\n.navbar .nav li.dropdown.open > .dropdown-toggle,\n.navbar .nav li.dropdown.active > .dropdown-toggle,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle {\n  color: #555555;\n  background-color: #e5e5e5;\n}\n\n.navbar .nav li.dropdown > .dropdown-toggle .caret {\n  border-top-color: #777777;\n  border-bottom-color: #777777;\n}\n\n.navbar .nav li.dropdown.open > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.active > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {\n  border-top-color: #555555;\n  border-bottom-color: #555555;\n}\n\n.navbar .pull-right > li > .dropdown-menu,\n.navbar .nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n\n.navbar .pull-right > li > .dropdown-menu:before,\n.navbar .nav > li > .dropdown-menu.pull-right:before {\n  right: 12px;\n  left: auto;\n}\n\n.navbar .pull-right > li > .dropdown-menu:after,\n.navbar .nav > li > .dropdown-menu.pull-right:after {\n  right: 13px;\n  left: auto;\n}\n\n.navbar .pull-right > li > .dropdown-menu .dropdown-menu,\n.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n  right: 100%;\n  left: auto;\n  margin-right: -1px;\n  margin-left: 0;\n  -webkit-border-radius: 6px 0 6px 6px;\n     -moz-border-radius: 6px 0 6px 6px;\n          border-radius: 6px 0 6px 6px;\n}\n\n.navbar-inverse .navbar-inner {\n  background-color: #1b1b1b;\n  background-image: -moz-linear-gradient(top, #222222, #111111);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));\n  background-image: -webkit-linear-gradient(top, #222222, #111111);\n  background-image: -o-linear-gradient(top, #222222, #111111);\n  background-image: linear-gradient(to bottom, #222222, #111111);\n  background-repeat: repeat-x;\n  border-color: #252525;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);\n}\n\n.navbar-inverse .brand,\n.navbar-inverse .nav > li > a {\n  color: #999999;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n\n.navbar-inverse .brand:hover,\n.navbar-inverse .nav > li > a:hover,\n.navbar-inverse .brand:focus,\n.navbar-inverse .nav > li > a:focus {\n  color: #ffffff;\n}\n\n.navbar-inverse .brand {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-text {\n  color: #999999;\n}\n\n.navbar-inverse .nav > li > a:focus,\n.navbar-inverse .nav > li > a:hover {\n  color: #ffffff;\n  background-color: transparent;\n}\n\n.navbar-inverse .nav .active > a,\n.navbar-inverse .nav .active > a:hover,\n.navbar-inverse .nav .active > a:focus {\n  color: #ffffff;\n  background-color: #111111;\n}\n\n.navbar-inverse .navbar-link {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-link:hover,\n.navbar-inverse .navbar-link:focus {\n  color: #ffffff;\n}\n\n.navbar-inverse .divider-vertical {\n  border-right-color: #222222;\n  border-left-color: #111111;\n}\n\n.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,\n.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,\n.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {\n  color: #ffffff;\n  background-color: #111111;\n}\n\n.navbar-inverse .nav li.dropdown > a:hover .caret,\n.navbar-inverse .nav li.dropdown > a:focus .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {\n  border-top-color: #999999;\n  border-bottom-color: #999999;\n}\n\n.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,\n.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,\n.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.navbar-inverse .navbar-search .search-query {\n  color: #ffffff;\n  background-color: #515151;\n  border-color: #111111;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);\n     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);\n  -webkit-transition: none;\n     -moz-transition: none;\n       -o-transition: none;\n          transition: none;\n}\n\n.navbar-inverse .navbar-search .search-query:-moz-placeholder {\n  color: #cccccc;\n}\n\n.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {\n  color: #cccccc;\n}\n\n.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {\n  color: #cccccc;\n}\n\n.navbar-inverse .navbar-search .search-query:focus,\n.navbar-inverse .navbar-search .search-query.focused {\n  padding: 5px 15px;\n  color: #333333;\n  text-shadow: 0 1px 0 #ffffff;\n  background-color: #ffffff;\n  border: 0;\n  outline: 0;\n  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);\n     -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);\n          box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);\n}\n\n.navbar-inverse .btn-navbar {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #0e0e0e;\n  *background-color: #040404;\n  background-image: -moz-linear-gradient(top, #151515, #040404);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));\n  background-image: -webkit-linear-gradient(top, #151515, #040404);\n  background-image: -o-linear-gradient(top, #151515, #040404);\n  background-image: linear-gradient(to bottom, #151515, #040404);\n  background-repeat: repeat-x;\n  border-color: #040404 #040404 #000000;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.navbar-inverse .btn-navbar:hover,\n.navbar-inverse .btn-navbar:focus,\n.navbar-inverse .btn-navbar:active,\n.navbar-inverse .btn-navbar.active,\n.navbar-inverse .btn-navbar.disabled,\n.navbar-inverse .btn-navbar[disabled] {\n  color: #ffffff;\n  background-color: #040404;\n  *background-color: #000000;\n}\n\n.navbar-inverse .btn-navbar:active,\n.navbar-inverse .btn-navbar.active {\n  background-color: #000000 \\9;\n}\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin: 0 0 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.breadcrumb > li {\n  display: inline-block;\n  *display: inline;\n  text-shadow: 0 1px 0 #ffffff;\n  *zoom: 1;\n}\n\n.breadcrumb > li > .divider {\n  padding: 0 5px;\n  color: #ccc;\n}\n\n.breadcrumb > .active {\n  color: #999999;\n}\n\n.pagination {\n  margin: 20px 0;\n}\n\n.pagination ul {\n  display: inline-block;\n  *display: inline;\n  margin-bottom: 0;\n  margin-left: 0;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  *zoom: 1;\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.pagination ul > li {\n  display: inline;\n}\n\n.pagination ul > li > a,\n.pagination ul > li > span {\n  float: left;\n  padding: 4px 12px;\n  line-height: 20px;\n  text-decoration: none;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-left-width: 0;\n}\n\n.pagination ul > li > a:hover,\n.pagination ul > li > a:focus,\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  background-color: #f5f5f5;\n}\n\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  color: #999999;\n  cursor: default;\n}\n\n.pagination ul > .disabled > span,\n.pagination ul > .disabled > a,\n.pagination ul > .disabled > a:hover,\n.pagination ul > .disabled > a:focus {\n  color: #999999;\n  cursor: default;\n  background-color: transparent;\n}\n\n.pagination ul > li:first-child > a,\n.pagination ul > li:first-child > span {\n  border-left-width: 1px;\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.pagination ul > li:last-child > a,\n.pagination ul > li:last-child > span {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  -moz-border-radius-bottomright: 4px;\n}\n\n.pagination-centered {\n  text-align: center;\n}\n\n.pagination-right {\n  text-align: right;\n}\n\n.pagination-large ul > li > a,\n.pagination-large ul > li > span {\n  padding: 11px 19px;\n  font-size: 17.5px;\n}\n\n.pagination-large ul > li:first-child > a,\n.pagination-large ul > li:first-child > span {\n  -webkit-border-bottom-left-radius: 6px;\n          border-bottom-left-radius: 6px;\n  -webkit-border-top-left-radius: 6px;\n          border-top-left-radius: 6px;\n  -moz-border-radius-bottomleft: 6px;\n  -moz-border-radius-topleft: 6px;\n}\n\n.pagination-large ul > li:last-child > a,\n.pagination-large ul > li:last-child > span {\n  -webkit-border-top-right-radius: 6px;\n          border-top-right-radius: 6px;\n  -webkit-border-bottom-right-radius: 6px;\n          border-bottom-right-radius: 6px;\n  -moz-border-radius-topright: 6px;\n  -moz-border-radius-bottomright: 6px;\n}\n\n.pagination-mini ul > li:first-child > a,\n.pagination-small ul > li:first-child > a,\n.pagination-mini ul > li:first-child > span,\n.pagination-small ul > li:first-child > span {\n  -webkit-border-bottom-left-radius: 3px;\n          border-bottom-left-radius: 3px;\n  -webkit-border-top-left-radius: 3px;\n          border-top-left-radius: 3px;\n  -moz-border-radius-bottomleft: 3px;\n  -moz-border-radius-topleft: 3px;\n}\n\n.pagination-mini ul > li:last-child > a,\n.pagination-small ul > li:last-child > a,\n.pagination-mini ul > li:last-child > span,\n.pagination-small ul > li:last-child > span {\n  -webkit-border-top-right-radius: 3px;\n          border-top-right-radius: 3px;\n  -webkit-border-bottom-right-radius: 3px;\n          border-bottom-right-radius: 3px;\n  -moz-border-radius-topright: 3px;\n  -moz-border-radius-bottomright: 3px;\n}\n\n.pagination-small ul > li > a,\n.pagination-small ul > li > span {\n  padding: 2px 10px;\n  font-size: 11.9px;\n}\n\n.pagination-mini ul > li > a,\n.pagination-mini ul > li > span {\n  padding: 0 6px;\n  font-size: 10.5px;\n}\n\n.pager {\n  margin: 20px 0;\n  text-align: center;\n  list-style: none;\n  *zoom: 1;\n}\n\n.pager:before,\n.pager:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.pager:after {\n  clear: both;\n}\n\n.pager li {\n  display: inline;\n}\n\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 15px;\n     -moz-border-radius: 15px;\n          border-radius: 15px;\n}\n\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #999999;\n  cursor: default;\n  background-color: #fff;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop,\n.modal-backdrop.fade.in {\n  opacity: 0.8;\n  filter: alpha(opacity=80);\n}\n\n.modal {\n  position: fixed;\n  top: 10%;\n  left: 50%;\n  z-index: 1050;\n  width: 560px;\n  margin-left: -280px;\n  background-color: #ffffff;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, 0.3);\n  *border: 1px solid #999;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n  outline: none;\n  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);\n     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);\n          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding-box;\n          background-clip: padding-box;\n}\n\n.modal.fade {\n  top: -25%;\n  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;\n     -moz-transition: opacity 0.3s linear, top 0.3s ease-out;\n       -o-transition: opacity 0.3s linear, top 0.3s ease-out;\n          transition: opacity 0.3s linear, top 0.3s ease-out;\n}\n\n.modal.fade.in {\n  top: 10%;\n}\n\n.modal-header {\n  padding: 9px 15px;\n  border-bottom: 1px solid #eee;\n}\n\n.modal-header .close {\n  margin-top: 2px;\n}\n\n.modal-header h3 {\n  margin: 0;\n  line-height: 30px;\n}\n\n.modal-body {\n  position: relative;\n  max-height: 400px;\n  padding: 15px;\n  overflow-y: auto;\n}\n\n.modal-form {\n  margin-bottom: 0;\n}\n\n.modal-footer {\n  padding: 14px 15px 15px;\n  margin-bottom: 0;\n  text-align: right;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  -webkit-border-radius: 0 0 6px 6px;\n     -moz-border-radius: 0 0 6px 6px;\n          border-radius: 0 0 6px 6px;\n  *zoom: 1;\n  -webkit-box-shadow: inset 0 1px 0 #ffffff;\n     -moz-box-shadow: inset 0 1px 0 #ffffff;\n          box-shadow: inset 0 1px 0 #ffffff;\n}\n\n.modal-footer:before,\n.modal-footer:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.modal-footer:after {\n  clear: both;\n}\n\n.modal-footer .btn + .btn {\n  margin-bottom: 0;\n  margin-left: 5px;\n}\n\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1030;\n  display: block;\n  font-size: 11px;\n  line-height: 1.4;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  visibility: visible;\n}\n\n.tooltip.in {\n  opacity: 0.8;\n  filter: alpha(opacity=80);\n}\n\n.tooltip.top {\n  padding: 5px 0;\n  margin-top: -3px;\n}\n\n.tooltip.right {\n  padding: 0 5px;\n  margin-left: 3px;\n}\n\n.tooltip.bottom {\n  padding: 5px 0;\n  margin-top: 3px;\n}\n\n.tooltip.left {\n  padding: 0 5px;\n  margin-left: -3px;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 8px;\n  color: #ffffff;\n  text-align: center;\n  text-decoration: none;\n  background-color: #000000;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-top-color: #000000;\n  border-width: 5px 5px 0;\n}\n\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-right-color: #000000;\n  border-width: 5px 5px 5px 0;\n}\n\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-left-color: #000000;\n  border-width: 5px 0 5px 5px;\n}\n\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-bottom-color: #000000;\n  border-width: 0 5px 5px;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1010;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  text-align: left;\n  white-space: normal;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n}\n\n.popover.top {\n  margin-top: -10px;\n}\n\n.popover.right {\n  margin-left: 10px;\n}\n\n.popover.bottom {\n  margin-top: 10px;\n}\n\n.popover.left {\n  margin-left: -10px;\n}\n\n.popover-title {\n  padding: 8px 14px;\n  margin: 0;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 18px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  -webkit-border-radius: 5px 5px 0 0;\n     -moz-border-radius: 5px 5px 0 0;\n          border-radius: 5px 5px 0 0;\n}\n\n.popover-title:empty {\n  display: none;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n.popover .arrow,\n.popover .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.popover .arrow {\n  border-width: 11px;\n}\n\n.popover .arrow:after {\n  border-width: 10px;\n  content: \"\";\n}\n\n.popover.top .arrow {\n  bottom: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-top-color: #999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  border-bottom-width: 0;\n}\n\n.popover.top .arrow:after {\n  bottom: 1px;\n  margin-left: -10px;\n  border-top-color: #ffffff;\n  border-bottom-width: 0;\n}\n\n.popover.right .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-right-color: #999;\n  border-right-color: rgba(0, 0, 0, 0.25);\n  border-left-width: 0;\n}\n\n.popover.right .arrow:after {\n  bottom: -10px;\n  left: 1px;\n  border-right-color: #ffffff;\n  border-left-width: 0;\n}\n\n.popover.bottom .arrow {\n  top: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-color: #999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  border-top-width: 0;\n}\n\n.popover.bottom .arrow:after {\n  top: 1px;\n  margin-left: -10px;\n  border-bottom-color: #ffffff;\n  border-top-width: 0;\n}\n\n.popover.left .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-left-color: #999;\n  border-left-color: rgba(0, 0, 0, 0.25);\n  border-right-width: 0;\n}\n\n.popover.left .arrow:after {\n  right: 1px;\n  bottom: -10px;\n  border-left-color: #ffffff;\n  border-right-width: 0;\n}\n\n.thumbnails {\n  margin-left: -20px;\n  list-style: none;\n  *zoom: 1;\n}\n\n.thumbnails:before,\n.thumbnails:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.thumbnails:after {\n  clear: both;\n}\n\n.row-fluid .thumbnails {\n  margin-left: 0;\n}\n\n.thumbnails > li {\n  float: left;\n  margin-bottom: 20px;\n  margin-left: 20px;\n}\n\n.thumbnail {\n  display: block;\n  padding: 4px;\n  line-height: 20px;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);\n     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);\n          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);\n  -webkit-transition: all 0.2s ease-in-out;\n     -moz-transition: all 0.2s ease-in-out;\n       -o-transition: all 0.2s ease-in-out;\n          transition: all 0.2s ease-in-out;\n}\n\na.thumbnail:hover,\na.thumbnail:focus {\n  border-color: #0088cc;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);\n     -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);\n          box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);\n}\n\n.thumbnail > img {\n  display: block;\n  max-width: 100%;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.thumbnail .caption {\n  padding: 9px;\n  color: #555555;\n}\n\n.media,\n.media-body {\n  overflow: hidden;\n  *overflow: visible;\n  zoom: 1;\n}\n\n.media,\n.media .media {\n  margin-top: 15px;\n}\n\n.media:first-child {\n  margin-top: 0;\n}\n\n.media-object {\n  display: block;\n}\n\n.media-heading {\n  margin: 0 0 5px;\n}\n\n.media > .pull-left {\n  margin-right: 10px;\n}\n\n.media > .pull-right {\n  margin-left: 10px;\n}\n\n.media-list {\n  margin-left: 0;\n  list-style: none;\n}\n\n.label,\n.badge {\n  display: inline-block;\n  padding: 2px 4px;\n  font-size: 11.844px;\n  font-weight: bold;\n  line-height: 14px;\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  white-space: nowrap;\n  vertical-align: baseline;\n  background-color: #999999;\n}\n\n.label {\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.badge {\n  padding-right: 9px;\n  padding-left: 9px;\n  -webkit-border-radius: 9px;\n     -moz-border-radius: 9px;\n          border-radius: 9px;\n}\n\n.label:empty,\n.badge:empty {\n  display: none;\n}\n\na.label:hover,\na.label:focus,\na.badge:hover,\na.badge:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n\n.label-important,\n.badge-important {\n  background-color: #b94a48;\n}\n\n.label-important[href],\n.badge-important[href] {\n  background-color: #953b39;\n}\n\n.label-warning,\n.badge-warning {\n  background-color: #f89406;\n}\n\n.label-warning[href],\n.badge-warning[href] {\n  background-color: #c67605;\n}\n\n.label-success,\n.badge-success {\n  background-color: #468847;\n}\n\n.label-success[href],\n.badge-success[href] {\n  background-color: #356635;\n}\n\n.label-info,\n.badge-info {\n  background-color: #3a87ad;\n}\n\n.label-info[href],\n.badge-info[href] {\n  background-color: #2d6987;\n}\n\n.label-inverse,\n.badge-inverse {\n  background-color: #333333;\n}\n\n.label-inverse[href],\n.badge-inverse[href] {\n  background-color: #1a1a1a;\n}\n\n.btn .label,\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.btn-mini .label,\n.btn-mini .badge {\n  top: 0;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-moz-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-ms-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-o-keyframes progress-bar-stripes {\n  from {\n    background-position: 0 0;\n  }\n  to {\n    background-position: 40px 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  height: 20px;\n  margin-bottom: 20px;\n  overflow: hidden;\n  background-color: #f7f7f7;\n  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));\n  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);\n  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);\n  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);\n  background-repeat: repeat-x;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.progress .bar {\n  float: left;\n  width: 0;\n  height: 100%;\n  font-size: 12px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #0e90d2;\n  background-image: -moz-linear-gradient(top, #149bdf, #0480be);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));\n  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);\n  background-image: -o-linear-gradient(top, #149bdf, #0480be);\n  background-image: linear-gradient(to bottom, #149bdf, #0480be);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n  -webkit-transition: width 0.6s ease;\n     -moz-transition: width 0.6s ease;\n       -o-transition: width 0.6s ease;\n          transition: width 0.6s ease;\n}\n\n.progress .bar + .bar {\n  -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n     -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n          box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n}\n\n.progress-striped .bar {\n  background-color: #149bdf;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  -webkit-background-size: 40px 40px;\n     -moz-background-size: 40px 40px;\n       -o-background-size: 40px 40px;\n          background-size: 40px 40px;\n}\n\n.progress.active .bar {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n     -moz-animation: progress-bar-stripes 2s linear infinite;\n      -ms-animation: progress-bar-stripes 2s linear infinite;\n       -o-animation: progress-bar-stripes 2s linear infinite;\n          animation: progress-bar-stripes 2s linear infinite;\n}\n\n.progress-danger .bar,\n.progress .bar-danger {\n  background-color: #dd514c;\n  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));\n  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);\n  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);\n  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);\n}\n\n.progress-danger.progress-striped .bar,\n.progress-striped .bar-danger {\n  background-color: #ee5f5b;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-success .bar,\n.progress .bar-success {\n  background-color: #5eb95e;\n  background-image: -moz-linear-gradient(top, #62c462, #57a957);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));\n  background-image: -webkit-linear-gradient(top, #62c462, #57a957);\n  background-image: -o-linear-gradient(top, #62c462, #57a957);\n  background-image: linear-gradient(to bottom, #62c462, #57a957);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);\n}\n\n.progress-success.progress-striped .bar,\n.progress-striped .bar-success {\n  background-color: #62c462;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-info .bar,\n.progress .bar-info {\n  background-color: #4bb1cf;\n  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));\n  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);\n  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);\n  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);\n}\n\n.progress-info.progress-striped .bar,\n.progress-striped .bar-info {\n  background-color: #5bc0de;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-warning .bar,\n.progress .bar-warning {\n  background-color: #faa732;\n  background-image: -moz-linear-gradient(top, #fbb450, #f89406);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));\n  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);\n  background-image: -o-linear-gradient(top, #fbb450, #f89406);\n  background-image: linear-gradient(to bottom, #fbb450, #f89406);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);\n}\n\n.progress-warning.progress-striped .bar,\n.progress-striped .bar-warning {\n  background-color: #fbb450;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.accordion {\n  margin-bottom: 20px;\n}\n\n.accordion-group {\n  margin-bottom: 2px;\n  border: 1px solid #e5e5e5;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.accordion-heading {\n  border-bottom: 0;\n}\n\n.accordion-heading .accordion-toggle {\n  display: block;\n  padding: 8px 15px;\n}\n\n.accordion-toggle {\n  cursor: pointer;\n}\n\n.accordion-inner {\n  padding: 9px 15px;\n  border-top: 1px solid #e5e5e5;\n}\n\n.carousel {\n  position: relative;\n  margin-bottom: 20px;\n  line-height: 1;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner > .item {\n  position: relative;\n  display: none;\n  -webkit-transition: 0.6s ease-in-out left;\n     -moz-transition: 0.6s ease-in-out left;\n       -o-transition: 0.6s ease-in-out left;\n          transition: 0.6s ease-in-out left;\n}\n\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  line-height: 1;\n}\n\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n\n.carousel-inner > .active {\n  left: 0;\n}\n\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.carousel-inner > .next {\n  left: 100%;\n}\n\n.carousel-inner > .prev {\n  left: -100%;\n}\n\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n\n.carousel-inner > .active.left {\n  left: -100%;\n}\n\n.carousel-inner > .active.right {\n  left: 100%;\n}\n\n.carousel-control {\n  position: absolute;\n  top: 40%;\n  left: 15px;\n  width: 40px;\n  height: 40px;\n  margin-top: -20px;\n  font-size: 60px;\n  font-weight: 100;\n  line-height: 30px;\n  color: #ffffff;\n  text-align: center;\n  background: #222222;\n  border: 3px solid #ffffff;\n  -webkit-border-radius: 23px;\n     -moz-border-radius: 23px;\n          border-radius: 23px;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.carousel-control.right {\n  right: 15px;\n  left: auto;\n}\n\n.carousel-control:hover,\n.carousel-control:focus {\n  color: #ffffff;\n  text-decoration: none;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n\n.carousel-indicators {\n  position: absolute;\n  top: 15px;\n  right: 15px;\n  z-index: 5;\n  margin: 0;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  display: block;\n  float: left;\n  width: 10px;\n  height: 10px;\n  margin-left: 5px;\n  text-indent: -999px;\n  background-color: #ccc;\n  background-color: rgba(255, 255, 255, 0.25);\n  border-radius: 5px;\n}\n\n.carousel-indicators .active {\n  background-color: #fff;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75);\n}\n\n.carousel-caption h4,\n.carousel-caption p {\n  line-height: 20px;\n  color: #ffffff;\n}\n\n.carousel-caption h4 {\n  margin: 0 0 5px;\n}\n\n.carousel-caption p {\n  margin-bottom: 0;\n}\n\n.hero-unit {\n  padding: 60px;\n  margin-bottom: 30px;\n  font-size: 18px;\n  font-weight: 200;\n  line-height: 30px;\n  color: inherit;\n  background-color: #eeeeee;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.hero-unit h1 {\n  margin-bottom: 0;\n  font-size: 60px;\n  line-height: 1;\n  letter-spacing: -1px;\n  color: inherit;\n}\n\n.hero-unit li {\n  line-height: 30px;\n}\n\n.pull-right {\n  float: right;\n}\n\n.pull-left {\n  float: left;\n}\n\n.hide {\n  display: none;\n}\n\n.show {\n  display: block;\n}\n\n.invisible {\n  visibility: hidden;\n}\n\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/css/dropzone.css",
    "content": "#dropzone {\n    background: #ccccc;\n    width: 150px;\n    height: 50px;\n    line-height: 50px;\n    text-align: center;\n    font-weight: bold;\n}\n#dropzone.in {\n    width: 600px;\n    height: 200px;\n    line-height: 200px;\n    font-size: larger;\n}\n#dropzone.hover {\n    background: lawngreen;\n}\n#dropzone.fade {\n    -webkit-transition: all 0.3s ease-out;\n    -moz-transition: all 0.3s ease-out;\n    -ms-transition: all 0.3s ease-out;\n    -o-transition: all 0.3s ease-out;\n    transition: all 0.3s ease-out;\n    opacity: 1;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/dropzone/dist/basic.css",
    "content": "/*\n * The MIT License\n * Copyright (c) 2012 Matias Meno <m@tias.me>\n */\n.dropzone, .dropzone * {\n  box-sizing: border-box; }\n\n.dropzone {\n  position: relative; }\n  .dropzone .dz-preview {\n    position: relative;\n    display: inline-block;\n    width: 120px;\n    margin: 0.5em; }\n    .dropzone .dz-preview .dz-progress {\n      display: block;\n      height: 15px;\n      border: 1px solid #aaa; }\n      .dropzone .dz-preview .dz-progress .dz-upload {\n        display: block;\n        height: 100%;\n        width: 0;\n        background: green; }\n    .dropzone .dz-preview .dz-error-message {\n      color: red;\n      display: none; }\n    .dropzone .dz-preview.dz-error .dz-error-message, .dropzone .dz-preview.dz-error .dz-error-mark {\n      display: block; }\n    .dropzone .dz-preview.dz-success .dz-success-mark {\n      display: block; }\n    .dropzone .dz-preview .dz-error-mark, .dropzone .dz-preview .dz-success-mark {\n      position: absolute;\n      display: none;\n      left: 30px;\n      top: 30px;\n      width: 54px;\n      height: 58px;\n      left: 50%;\n      margin-left: -27px; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/dropzone/dist/dropzone-amd-module.js",
    "content": "// Uses AMD or browser globals to create a jQuery plugin.\n(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n      // AMD. Register as an anonymous module.\n      define(['jquery'], factory);\n  } else {\n      // Browser globals\n      factory(jQuery);\n  }\n} (function (jQuery) {\n    var module = { exports: { } }; // Fake component\n\n\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n  var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n    __slice = [].slice,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  noop = function() {};\n\n  Emitter = (function() {\n    function Emitter() {}\n\n    Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n    Emitter.prototype.on = function(event, fn) {\n      this._callbacks = this._callbacks || {};\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n      this._callbacks[event].push(fn);\n      return this;\n    };\n\n    Emitter.prototype.emit = function() {\n      var args, callback, callbacks, event, _i, _len;\n      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      this._callbacks = this._callbacks || {};\n      callbacks = this._callbacks[event];\n      if (callbacks) {\n        for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n          callback = callbacks[_i];\n          callback.apply(this, args);\n        }\n      }\n      return this;\n    };\n\n    Emitter.prototype.removeListener = Emitter.prototype.off;\n\n    Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n    Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n    Emitter.prototype.off = function(event, fn) {\n      var callback, callbacks, i, _i, _len;\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      }\n      callbacks = this._callbacks[event];\n      if (!callbacks) {\n        return this;\n      }\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      }\n      for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n        callback = callbacks[i];\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n      return this;\n    };\n\n    return Emitter;\n\n  })();\n\n  Dropzone = (function(_super) {\n    var extend, resolveOption;\n\n    __extends(Dropzone, _super);\n\n    Dropzone.prototype.Emitter = Emitter;\n\n\n    /*\n    This is a list of all available events you can register on a dropzone object.\n    \n    You can register an event handler like this:\n    \n        dropzone.on(\"dragEnter\", function() { });\n     */\n\n    Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n    Dropzone.prototype.defaultOptions = {\n      url: null,\n      method: \"post\",\n      withCredentials: false,\n      parallelUploads: 2,\n      uploadMultiple: false,\n      maxFilesize: 256,\n      paramName: \"file\",\n      createImageThumbnails: true,\n      maxThumbnailFilesize: 10,\n      thumbnailWidth: 120,\n      thumbnailHeight: 120,\n      filesizeBase: 1000,\n      maxFiles: null,\n      params: {},\n      clickable: true,\n      ignoreHiddenFiles: true,\n      acceptedFiles: null,\n      acceptedMimeTypes: null,\n      autoProcessQueue: true,\n      autoQueue: true,\n      addRemoveLinks: false,\n      previewsContainer: null,\n      hiddenInputContainer: \"body\",\n      capture: null,\n      renameFilename: null,\n      dictDefaultMessage: \"Drop files here to upload\",\n      dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n      dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n      dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n      dictInvalidFileType: \"You can't upload files of this type.\",\n      dictResponseError: \"Server responded with {{statusCode}} code.\",\n      dictCancelUpload: \"Cancel upload\",\n      dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n      dictRemoveFile: \"Remove file\",\n      dictRemoveFileConfirmation: null,\n      dictMaxFilesExceeded: \"You can not upload any more files.\",\n      accept: function(file, done) {\n        return done();\n      },\n      init: function() {\n        return noop;\n      },\n      forceFallback: false,\n      fallback: function() {\n        var child, messageElement, span, _i, _len, _ref;\n        this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n        _ref = this.element.getElementsByTagName(\"div\");\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          child = _ref[_i];\n          if (/(^| )dz-message($| )/.test(child.className)) {\n            messageElement = child;\n            child.className = \"dz-message\";\n            continue;\n          }\n        }\n        if (!messageElement) {\n          messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n          this.element.appendChild(messageElement);\n        }\n        span = messageElement.getElementsByTagName(\"span\")[0];\n        if (span) {\n          if (span.textContent != null) {\n            span.textContent = this.options.dictFallbackMessage;\n          } else if (span.innerText != null) {\n            span.innerText = this.options.dictFallbackMessage;\n          }\n        }\n        return this.element.appendChild(this.getFallbackForm());\n      },\n      resize: function(file) {\n        var info, srcRatio, trgRatio;\n        info = {\n          srcX: 0,\n          srcY: 0,\n          srcWidth: file.width,\n          srcHeight: file.height\n        };\n        srcRatio = file.width / file.height;\n        info.optWidth = this.options.thumbnailWidth;\n        info.optHeight = this.options.thumbnailHeight;\n        if ((info.optWidth == null) && (info.optHeight == null)) {\n          info.optWidth = info.srcWidth;\n          info.optHeight = info.srcHeight;\n        } else if (info.optWidth == null) {\n          info.optWidth = srcRatio * info.optHeight;\n        } else if (info.optHeight == null) {\n          info.optHeight = (1 / srcRatio) * info.optWidth;\n        }\n        trgRatio = info.optWidth / info.optHeight;\n        if (file.height < info.optHeight || file.width < info.optWidth) {\n          info.trgHeight = info.srcHeight;\n          info.trgWidth = info.srcWidth;\n        } else {\n          if (srcRatio > trgRatio) {\n            info.srcHeight = file.height;\n            info.srcWidth = info.srcHeight * trgRatio;\n          } else {\n            info.srcWidth = file.width;\n            info.srcHeight = info.srcWidth / trgRatio;\n          }\n        }\n        info.srcX = (file.width - info.srcWidth) / 2;\n        info.srcY = (file.height - info.srcHeight) / 2;\n        return info;\n      },\n\n      /*\n      Those functions register themselves to the events on init and handle all\n      the user interface specific stuff. Overwriting them won't break the upload\n      but can break the way it's displayed.\n      You can overwrite them if you don't like the default behavior. If you just\n      want to add an additional event handler, register it on the dropzone object\n      and don't overwrite those options.\n       */\n      drop: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragstart: noop,\n      dragend: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragenter: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragover: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragleave: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      paste: noop,\n      reset: function() {\n        return this.element.classList.remove(\"dz-started\");\n      },\n      addedfile: function(file) {\n        var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n        if (this.element === this.previewsContainer) {\n          this.element.classList.add(\"dz-started\");\n        }\n        if (this.previewsContainer) {\n          file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n          file.previewTemplate = file.previewElement;\n          this.previewsContainer.appendChild(file.previewElement);\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            node.textContent = this._renameFilename(file.name);\n          }\n          _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n            node = _ref1[_j];\n            node.innerHTML = this.filesize(file.size);\n          }\n          if (this.options.addRemoveLinks) {\n            file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n            file.previewElement.appendChild(file._removeLink);\n          }\n          removeFileEvent = (function(_this) {\n            return function(e) {\n              e.preventDefault();\n              e.stopPropagation();\n              if (file.status === Dropzone.UPLOADING) {\n                return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n                  return _this.removeFile(file);\n                });\n              } else {\n                if (_this.options.dictRemoveFileConfirmation) {\n                  return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n                    return _this.removeFile(file);\n                  });\n                } else {\n                  return _this.removeFile(file);\n                }\n              }\n            };\n          })(this);\n          _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n          _results = [];\n          for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n            removeLink = _ref2[_k];\n            _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n          }\n          return _results;\n        }\n      },\n      removedfile: function(file) {\n        var _ref;\n        if (file.previewElement) {\n          if ((_ref = file.previewElement) != null) {\n            _ref.parentNode.removeChild(file.previewElement);\n          }\n        }\n        return this._updateMaxFilesReachedClass();\n      },\n      thumbnail: function(file, dataUrl) {\n        var thumbnailElement, _i, _len, _ref;\n        if (file.previewElement) {\n          file.previewElement.classList.remove(\"dz-file-preview\");\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            thumbnailElement = _ref[_i];\n            thumbnailElement.alt = file.name;\n            thumbnailElement.src = dataUrl;\n          }\n          return setTimeout(((function(_this) {\n            return function() {\n              return file.previewElement.classList.add(\"dz-image-preview\");\n            };\n          })(this)), 1);\n        }\n      },\n      error: function(file, message) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-error\");\n          if (typeof message !== \"String\" && message.error) {\n            message = message.error;\n          }\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            _results.push(node.textContent = message);\n          }\n          return _results;\n        }\n      },\n      errormultiple: noop,\n      processing: function(file) {\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-processing\");\n          if (file._removeLink) {\n            return file._removeLink.textContent = this.options.dictCancelUpload;\n          }\n        }\n      },\n      processingmultiple: noop,\n      uploadprogress: function(file, progress, bytesSent) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            if (node.nodeName === 'PROGRESS') {\n              _results.push(node.value = progress);\n            } else {\n              _results.push(node.style.width = \"\" + progress + \"%\");\n            }\n          }\n          return _results;\n        }\n      },\n      totaluploadprogress: noop,\n      sending: noop,\n      sendingmultiple: noop,\n      success: function(file) {\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-success\");\n        }\n      },\n      successmultiple: noop,\n      canceled: function(file) {\n        return this.emit(\"error\", file, \"Upload canceled.\");\n      },\n      canceledmultiple: noop,\n      complete: function(file) {\n        if (file._removeLink) {\n          file._removeLink.textContent = this.options.dictRemoveFile;\n        }\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-complete\");\n        }\n      },\n      completemultiple: noop,\n      maxfilesexceeded: noop,\n      maxfilesreached: noop,\n      queuecomplete: noop,\n      addedfiles: noop,\n      previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n  <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n  <div class=\\\"dz-details\\\">\\n    <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n    <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n  </div>\\n  <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n  <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n  <div class=\\\"dz-success-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Check</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n      </g>\\n    </svg>\\n  </div>\\n  <div class=\\\"dz-error-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Error</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n          <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n        </g>\\n      </g>\\n    </svg>\\n  </div>\\n</div>\"\n    };\n\n    extend = function() {\n      var key, object, objects, target, val, _i, _len;\n      target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      for (_i = 0, _len = objects.length; _i < _len; _i++) {\n        object = objects[_i];\n        for (key in object) {\n          val = object[key];\n          target[key] = val;\n        }\n      }\n      return target;\n    };\n\n    function Dropzone(element, options) {\n      var elementOptions, fallback, _ref;\n      this.element = element;\n      this.version = Dropzone.version;\n      this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n      this.clickableElements = [];\n      this.listeners = [];\n      this.files = [];\n      if (typeof this.element === \"string\") {\n        this.element = document.querySelector(this.element);\n      }\n      if (!(this.element && (this.element.nodeType != null))) {\n        throw new Error(\"Invalid dropzone element.\");\n      }\n      if (this.element.dropzone) {\n        throw new Error(\"Dropzone already attached.\");\n      }\n      Dropzone.instances.push(this);\n      this.element.dropzone = this;\n      elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n      this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n      if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n        return this.options.fallback.call(this);\n      }\n      if (this.options.url == null) {\n        this.options.url = this.element.getAttribute(\"action\");\n      }\n      if (!this.options.url) {\n        throw new Error(\"No URL provided.\");\n      }\n      if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n        throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n      }\n      if (this.options.acceptedMimeTypes) {\n        this.options.acceptedFiles = this.options.acceptedMimeTypes;\n        delete this.options.acceptedMimeTypes;\n      }\n      this.options.method = this.options.method.toUpperCase();\n      if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n        fallback.parentNode.removeChild(fallback);\n      }\n      if (this.options.previewsContainer !== false) {\n        if (this.options.previewsContainer) {\n          this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n        } else {\n          this.previewsContainer = this.element;\n        }\n      }\n      if (this.options.clickable) {\n        if (this.options.clickable === true) {\n          this.clickableElements = [this.element];\n        } else {\n          this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n        }\n      }\n      this.init();\n    }\n\n    Dropzone.prototype.getAcceptedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getRejectedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (!file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getFilesWithStatus = function(status) {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === status) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getQueuedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    };\n\n    Dropzone.prototype.getUploadingFiles = function() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    };\n\n    Dropzone.prototype.getAddedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.ADDED);\n    };\n\n    Dropzone.prototype.getActiveFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.init = function() {\n      var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n      }\n      if (this.clickableElements.length) {\n        setupHiddenFileInput = (function(_this) {\n          return function() {\n            if (_this.hiddenFileInput) {\n              _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n            }\n            _this.hiddenFileInput = document.createElement(\"input\");\n            _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n            if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n              _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n            }\n            _this.hiddenFileInput.className = \"dz-hidden-input\";\n            if (_this.options.acceptedFiles != null) {\n              _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n            }\n            if (_this.options.capture != null) {\n              _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n            }\n            _this.hiddenFileInput.style.visibility = \"hidden\";\n            _this.hiddenFileInput.style.position = \"absolute\";\n            _this.hiddenFileInput.style.top = \"0\";\n            _this.hiddenFileInput.style.left = \"0\";\n            _this.hiddenFileInput.style.height = \"0\";\n            _this.hiddenFileInput.style.width = \"0\";\n            document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n            return _this.hiddenFileInput.addEventListener(\"change\", function() {\n              var file, files, _i, _len;\n              files = _this.hiddenFileInput.files;\n              if (files.length) {\n                for (_i = 0, _len = files.length; _i < _len; _i++) {\n                  file = files[_i];\n                  _this.addFile(file);\n                }\n              }\n              _this.emit(\"addedfiles\", files);\n              return setupHiddenFileInput();\n            });\n          };\n        })(this);\n        setupHiddenFileInput();\n      }\n      this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n      _ref1 = this.events;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        eventName = _ref1[_i];\n        this.on(eventName, this.options[eventName]);\n      }\n      this.on(\"uploadprogress\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"removedfile\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"canceled\", (function(_this) {\n        return function(file) {\n          return _this.emit(\"complete\", file);\n        };\n      })(this));\n      this.on(\"complete\", (function(_this) {\n        return function(file) {\n          if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n            return setTimeout((function() {\n              return _this.emit(\"queuecomplete\");\n            }), 0);\n          }\n        };\n      })(this));\n      noPropagation = function(e) {\n        e.stopPropagation();\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      };\n      this.listeners = [\n        {\n          element: this.element,\n          events: {\n            \"dragstart\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragstart\", e);\n              };\n            })(this),\n            \"dragenter\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.emit(\"dragenter\", e);\n              };\n            })(this),\n            \"dragover\": (function(_this) {\n              return function(e) {\n                var efct;\n                try {\n                  efct = e.dataTransfer.effectAllowed;\n                } catch (_error) {}\n                e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n                noPropagation(e);\n                return _this.emit(\"dragover\", e);\n              };\n            })(this),\n            \"dragleave\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragleave\", e);\n              };\n            })(this),\n            \"drop\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.drop(e);\n              };\n            })(this),\n            \"dragend\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragend\", e);\n              };\n            })(this)\n          }\n        }\n      ];\n      this.clickableElements.forEach((function(_this) {\n        return function(clickableElement) {\n          return _this.listeners.push({\n            element: clickableElement,\n            events: {\n              \"click\": function(evt) {\n                if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n                  _this.hiddenFileInput.click();\n                }\n                return true;\n              }\n            }\n          });\n        };\n      })(this));\n      this.enable();\n      return this.options.init.call(this);\n    };\n\n    Dropzone.prototype.destroy = function() {\n      var _ref;\n      this.disable();\n      this.removeAllFiles(true);\n      if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    };\n\n    Dropzone.prototype.updateTotalUploadProgress = function() {\n      var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n      totalBytesSent = 0;\n      totalBytes = 0;\n      activeFiles = this.getActiveFiles();\n      if (activeFiles.length) {\n        _ref = this.getActiveFiles();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          totalBytesSent += file.upload.bytesSent;\n          totalBytes += file.upload.total;\n        }\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    };\n\n    Dropzone.prototype._getParamName = function(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n      }\n    };\n\n    Dropzone.prototype._renameFilename = function(name) {\n      if (typeof this.options.renameFilename !== \"function\") {\n        return name;\n      }\n      return this.options.renameFilename(name);\n    };\n\n    Dropzone.prototype.getFallbackForm = function() {\n      var existingFallback, fields, fieldsString, form;\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n      fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n      }\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n      fields = Dropzone.createElement(fieldsString);\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n        form.appendChild(fields);\n      } else {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n      return form != null ? form : fields;\n    };\n\n    Dropzone.prototype.getExistingFallback = function() {\n      var fallback, getFallback, tagName, _i, _len, _ref;\n      getFallback = function(elements) {\n        var el, _i, _len;\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )fallback($| )/.test(el.className)) {\n            return el;\n          }\n        }\n      };\n      _ref = [\"div\", \"form\"];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        tagName = _ref[_i];\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    };\n\n    Dropzone.prototype.setupEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.removeEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.disable = function() {\n      var file, _i, _len, _ref, _results;\n      this.clickableElements.forEach(function(element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        _results.push(this.cancelUpload(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.enable = function() {\n      this.clickableElements.forEach(function(element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    };\n\n    Dropzone.prototype.filesize = function(size) {\n      var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n      selectedSize = 0;\n      selectedUnit = \"b\";\n      if (size > 0) {\n        units = ['TB', 'GB', 'MB', 'KB', 'b'];\n        for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n          unit = units[i];\n          cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n          if (size >= cutoff) {\n            selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n            selectedUnit = unit;\n            break;\n          }\n        }\n        selectedSize = Math.round(10 * selectedSize) / 10;\n      }\n      return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n    };\n\n    Dropzone.prototype._updateMaxFilesReachedClass = function() {\n      if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit('maxfilesreached', this.files);\n        }\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    };\n\n    Dropzone.prototype.drop = function(e) {\n      var files, items;\n      if (!e.dataTransfer) {\n        return;\n      }\n      this.emit(\"drop\", e);\n      files = e.dataTransfer.files;\n      this.emit(\"addedfiles\", files);\n      if (files.length) {\n        items = e.dataTransfer.items;\n        if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n    };\n\n    Dropzone.prototype.paste = function(e) {\n      var items, _ref;\n      if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n        return;\n      }\n      this.emit(\"paste\", e);\n      items = e.clipboardData.items;\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    };\n\n    Dropzone.prototype.handleFiles = function(files) {\n      var file, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        _results.push(this.addFile(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromItems = function(items) {\n      var entry, item, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = items.length; _i < _len; _i++) {\n        item = items[_i];\n        if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n          if (entry.isFile) {\n            _results.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            _results.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            _results.push(void 0);\n          }\n        } else if (item.getAsFile != null) {\n          if ((item.kind == null) || item.kind === \"file\") {\n            _results.push(this.addFile(item.getAsFile()));\n          } else {\n            _results.push(void 0);\n          }\n        } else {\n          _results.push(void 0);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n      var dirReader, errorHandler, readEntries;\n      dirReader = directory.createReader();\n      errorHandler = function(error) {\n        return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n      };\n      readEntries = (function(_this) {\n        return function() {\n          return dirReader.readEntries(function(entries) {\n            var entry, _i, _len;\n            if (entries.length > 0) {\n              for (_i = 0, _len = entries.length; _i < _len; _i++) {\n                entry = entries[_i];\n                if (entry.isFile) {\n                  entry.file(function(file) {\n                    if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n                      return;\n                    }\n                    file.fullPath = \"\" + path + \"/\" + file.name;\n                    return _this.addFile(file);\n                  });\n                } else if (entry.isDirectory) {\n                  _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n                }\n              }\n              readEntries();\n            }\n            return null;\n          }, errorHandler);\n        };\n      })(this);\n      return readEntries();\n    };\n\n    Dropzone.prototype.accept = function(file, done) {\n      if (file.size > this.options.maxFilesize * 1024 * 1024) {\n        return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        return done(this.options.dictInvalidFileType);\n      } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        return this.emit(\"maxfilesexceeded\", file);\n      } else {\n        return this.options.accept.call(this, file, done);\n      }\n    };\n\n    Dropzone.prototype.addFile = function(file) {\n      file.upload = {\n        progress: 0,\n        total: file.size,\n        bytesSent: 0\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n      this._enqueueThumbnail(file);\n      return this.accept(file, (function(_this) {\n        return function(error) {\n          if (error) {\n            file.accepted = false;\n            _this._errorProcessing([file], error);\n          } else {\n            file.accepted = true;\n            if (_this.options.autoQueue) {\n              _this.enqueueFile(file);\n            }\n          }\n          return _this._updateMaxFilesReachedClass();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.enqueueFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        this.enqueueFile(file);\n      }\n      return null;\n    };\n\n    Dropzone.prototype.enqueueFile = function(file) {\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n        if (this.options.autoProcessQueue) {\n          return setTimeout(((function(_this) {\n            return function() {\n              return _this.processQueue();\n            };\n          })(this)), 0);\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    };\n\n    Dropzone.prototype._thumbnailQueue = [];\n\n    Dropzone.prototype._processingThumbnail = false;\n\n    Dropzone.prototype._enqueueThumbnail = function(file) {\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this._processThumbnailQueue();\n          };\n        })(this)), 0);\n      }\n    };\n\n    Dropzone.prototype._processThumbnailQueue = function() {\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n      this._processingThumbnail = true;\n      return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n        return function() {\n          _this._processingThumbnail = false;\n          return _this._processThumbnailQueue();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.removeFile = function(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    };\n\n    Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n      var file, _i, _len, _ref;\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n      _ref = this.files.slice();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n          this.removeFile(file);\n        }\n      }\n      return null;\n    };\n\n    Dropzone.prototype.createThumbnail = function(file, callback) {\n      var fileReader;\n      fileReader = new FileReader;\n      fileReader.onload = (function(_this) {\n        return function() {\n          if (file.type === \"image/svg+xml\") {\n            _this.emit(\"thumbnail\", file, fileReader.result);\n            if (callback != null) {\n              callback();\n            }\n            return;\n          }\n          return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n        };\n      })(this);\n      return fileReader.readAsDataURL(file);\n    };\n\n    Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n      var img;\n      img = document.createElement(\"img\");\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      }\n      img.onload = (function(_this) {\n        return function() {\n          var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n          file.width = img.width;\n          file.height = img.height;\n          resizeInfo = _this.options.resize.call(_this, file);\n          if (resizeInfo.trgWidth == null) {\n            resizeInfo.trgWidth = resizeInfo.optWidth;\n          }\n          if (resizeInfo.trgHeight == null) {\n            resizeInfo.trgHeight = resizeInfo.optHeight;\n          }\n          canvas = document.createElement(\"canvas\");\n          ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n          drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          thumbnail = canvas.toDataURL(\"image/png\");\n          _this.emit(\"thumbnail\", file, thumbnail);\n          if (callback != null) {\n            return callback();\n          }\n        };\n      })(this);\n      if (callback != null) {\n        img.onerror = callback;\n      }\n      return img.src = imageUrl;\n    };\n\n    Dropzone.prototype.processQueue = function() {\n      var i, parallelUploads, processingLength, queuedFiles;\n      parallelUploads = this.options.parallelUploads;\n      processingLength = this.getUploadingFiles().length;\n      i = processingLength;\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n      queuedFiles = this.getQueuedFiles();\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n      if (this.options.uploadMultiple) {\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          }\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    };\n\n    Dropzone.prototype.processFile = function(file) {\n      return this.processFiles([file]);\n    };\n\n    Dropzone.prototype.processFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.processing = true;\n        file.status = Dropzone.UPLOADING;\n        this.emit(\"processing\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n      return this.uploadFiles(files);\n    };\n\n    Dropzone.prototype._getFilesWithXhr = function(xhr) {\n      var file, files;\n      return files = (function() {\n        var _i, _len, _ref, _results;\n        _ref = this.files;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          if (file.xhr === xhr) {\n            _results.push(file);\n          }\n        }\n        return _results;\n      }).call(this);\n    };\n\n    Dropzone.prototype.cancelUpload = function(file) {\n      var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n      if (file.status === Dropzone.UPLOADING) {\n        groupedFiles = this._getFilesWithXhr(file.xhr);\n        for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n          groupedFile = groupedFiles[_i];\n          groupedFile.status = Dropzone.CANCELED;\n        }\n        file.xhr.abort();\n        for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n          groupedFile = groupedFiles[_j];\n          this.emit(\"canceled\", groupedFile);\n        }\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    resolveOption = function() {\n      var args, option;\n      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      if (typeof option === 'function') {\n        return option.apply(this, args);\n      }\n      return option;\n    };\n\n    Dropzone.prototype.uploadFile = function(file) {\n      return this.uploadFiles([file]);\n    };\n\n    Dropzone.prototype.uploadFiles = function(files) {\n      var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n      xhr = new XMLHttpRequest();\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.xhr = xhr;\n      }\n      method = resolveOption(this.options.method, files);\n      url = resolveOption(this.options.url, files);\n      xhr.open(method, url, true);\n      xhr.withCredentials = !!this.options.withCredentials;\n      response = null;\n      handleError = (function(_this) {\n        return function() {\n          var _j, _len1, _results;\n          _results = [];\n          for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n            file = files[_j];\n            _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n          }\n          return _results;\n        };\n      })(this);\n      updateProgress = (function(_this) {\n        return function(e) {\n          var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n          if (e != null) {\n            progress = 100 * e.loaded / e.total;\n            for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n              file = files[_j];\n              file.upload = {\n                progress: progress,\n                total: e.total,\n                bytesSent: e.loaded\n              };\n            }\n          } else {\n            allFilesFinished = true;\n            progress = 100;\n            for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n              file = files[_k];\n              if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n                allFilesFinished = false;\n              }\n              file.upload.progress = progress;\n              file.upload.bytesSent = file.upload.total;\n            }\n            if (allFilesFinished) {\n              return;\n            }\n          }\n          _results = [];\n          for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n            file = files[_l];\n            _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n          }\n          return _results;\n        };\n      })(this);\n      xhr.onload = (function(_this) {\n        return function(e) {\n          var _ref;\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          response = xhr.responseText;\n          if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n            try {\n              response = JSON.parse(response);\n            } catch (_error) {\n              e = _error;\n              response = \"Invalid JSON response from server.\";\n            }\n          }\n          updateProgress();\n          if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n            return handleError();\n          } else {\n            return _this._finished(files, response, e);\n          }\n        };\n      })(this);\n      xhr.onerror = (function(_this) {\n        return function() {\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          return handleError();\n        };\n      })(this);\n      progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n      progressObj.onprogress = updateProgress;\n      headers = {\n        \"Accept\": \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n      if (this.options.headers) {\n        extend(headers, this.options.headers);\n      }\n      for (headerName in headers) {\n        headerValue = headers[headerName];\n        if (headerValue) {\n          xhr.setRequestHeader(headerName, headerValue);\n        }\n      }\n      formData = new FormData();\n      if (this.options.params) {\n        _ref1 = this.options.params;\n        for (key in _ref1) {\n          value = _ref1[key];\n          formData.append(key, value);\n        }\n      }\n      for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n        file = files[_j];\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n      if (this.element.tagName === \"FORM\") {\n        _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n          input = _ref2[_k];\n          inputName = input.getAttribute(\"name\");\n          inputType = input.getAttribute(\"type\");\n          if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n            _ref3 = input.options;\n            for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n              option = _ref3[_l];\n              if (option.selected) {\n                formData.append(inputName, option.value);\n              }\n            }\n          } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n            formData.append(inputName, input.value);\n          }\n        }\n      }\n      for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n        formData.append(this._getParamName(i), files[i], this._renameFilename(files[i].name));\n      }\n      return this.submitRequest(xhr, formData, files);\n    };\n\n    Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n      return xhr.send(formData);\n    };\n\n    Dropzone.prototype._finished = function(files, responseText, e) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.SUCCESS;\n        this.emit(\"success\", file, responseText, e);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.ERROR;\n        this.emit(\"error\", file, message, xhr);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    return Dropzone;\n\n  })(Emitter);\n\n  Dropzone.version = \"4.3.0\";\n\n  Dropzone.options = {};\n\n  Dropzone.optionsForElement = function(element) {\n    if (element.getAttribute(\"id\")) {\n      return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n    } else {\n      return void 0;\n    }\n  };\n\n  Dropzone.instances = [];\n\n  Dropzone.forElement = function(element) {\n    if (typeof element === \"string\") {\n      element = document.querySelector(element);\n    }\n    if ((element != null ? element.dropzone : void 0) == null) {\n      throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n    }\n    return element.dropzone;\n  };\n\n  Dropzone.autoDiscover = true;\n\n  Dropzone.discover = function() {\n    var checkElements, dropzone, dropzones, _i, _len, _results;\n    if (document.querySelectorAll) {\n      dropzones = document.querySelectorAll(\".dropzone\");\n    } else {\n      dropzones = [];\n      checkElements = function(elements) {\n        var el, _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            _results.push(dropzones.push(el));\n          } else {\n            _results.push(void 0);\n          }\n        }\n        return _results;\n      };\n      checkElements(document.getElementsByTagName(\"div\"));\n      checkElements(document.getElementsByTagName(\"form\"));\n    }\n    _results = [];\n    for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n      dropzone = dropzones[_i];\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        _results.push(new Dropzone(dropzone));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  };\n\n  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n  Dropzone.isBrowserSupported = function() {\n    var capableBrowser, regex, _i, _len, _ref;\n    capableBrowser = true;\n    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n      if (!(\"classList\" in document.createElement(\"a\"))) {\n        capableBrowser = false;\n      } else {\n        _ref = Dropzone.blacklistedBrowsers;\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          regex = _ref[_i];\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      }\n    } else {\n      capableBrowser = false;\n    }\n    return capableBrowser;\n  };\n\n  without = function(list, rejectedItem) {\n    var item, _i, _len, _results;\n    _results = [];\n    for (_i = 0, _len = list.length; _i < _len; _i++) {\n      item = list[_i];\n      if (item !== rejectedItem) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  };\n\n  camelize = function(str) {\n    return str.replace(/[\\-_](\\w)/g, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  };\n\n  Dropzone.createElement = function(string) {\n    var div;\n    div = document.createElement(\"div\");\n    div.innerHTML = string;\n    return div.childNodes[0];\n  };\n\n  Dropzone.elementInside = function(element, container) {\n    if (element === container) {\n      return true;\n    }\n    while (element = element.parentNode) {\n      if (element === container) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  Dropzone.getElement = function(el, name) {\n    var element;\n    if (typeof el === \"string\") {\n      element = document.querySelector(el);\n    } else if (el.nodeType != null) {\n      element = el;\n    }\n    if (element == null) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n    }\n    return element;\n  };\n\n  Dropzone.getElements = function(els, name) {\n    var e, el, elements, _i, _j, _len, _len1, _ref;\n    if (els instanceof Array) {\n      elements = [];\n      try {\n        for (_i = 0, _len = els.length; _i < _len; _i++) {\n          el = els[_i];\n          elements.push(this.getElement(el, name));\n        }\n      } catch (_error) {\n        e = _error;\n        elements = null;\n      }\n    } else if (typeof els === \"string\") {\n      elements = [];\n      _ref = document.querySelectorAll(els);\n      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n        el = _ref[_j];\n        elements.push(el);\n      }\n    } else if (els.nodeType != null) {\n      elements = [els];\n    }\n    if (!((elements != null) && elements.length)) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n    }\n    return elements;\n  };\n\n  Dropzone.confirm = function(question, accepted, rejected) {\n    if (window.confirm(question)) {\n      return accepted();\n    } else if (rejected != null) {\n      return rejected();\n    }\n  };\n\n  Dropzone.isValidFile = function(file, acceptedFiles) {\n    var baseMimeType, mimeType, validType, _i, _len;\n    if (!acceptedFiles) {\n      return true;\n    }\n    acceptedFiles = acceptedFiles.split(\",\");\n    mimeType = file.type;\n    baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n    for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n      validType = acceptedFiles[_i];\n      validType = validType.trim();\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n    jQuery.fn.dropzone = function(options) {\n      return this.each(function() {\n        return new Dropzone(this, options);\n      });\n    };\n  }\n\n  if (typeof module !== \"undefined\" && module !== null) {\n    module.exports = Dropzone;\n  } else {\n    window.Dropzone = Dropzone;\n  }\n\n  Dropzone.ADDED = \"added\";\n\n  Dropzone.QUEUED = \"queued\";\n\n  Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n  Dropzone.UPLOADING = \"uploading\";\n\n  Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n  Dropzone.CANCELED = \"canceled\";\n\n  Dropzone.ERROR = \"error\";\n\n  Dropzone.SUCCESS = \"success\";\n\n\n  /*\n  \n  Bugfix for iOS 6 and 7\n  Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n  based on the work of https://github.com/stomita/ios-imagefile-megapixel\n   */\n\n  detectVerticalSquash = function(img) {\n    var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n    iw = img.naturalWidth;\n    ih = img.naturalHeight;\n    canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = ih;\n    ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    data = ctx.getImageData(0, 0, 1, ih).data;\n    sy = 0;\n    ey = ih;\n    py = ih;\n    while (py > sy) {\n      alpha = data[(py - 1) * 4 + 3];\n      if (alpha === 0) {\n        ey = py;\n      } else {\n        sy = py;\n      }\n      py = (ey + sy) >> 1;\n    }\n    ratio = py / ih;\n    if (ratio === 0) {\n      return 1;\n    } else {\n      return ratio;\n    }\n  };\n\n  drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n    var vertSquashRatio;\n    vertSquashRatio = detectVerticalSquash(img);\n    return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n  };\n\n\n  /*\n   * contentloaded.js\n   *\n   * Author: Diego Perini (diego.perini at gmail.com)\n   * Summary: cross-browser wrapper for DOMContentLoaded\n   * Updated: 20101020\n   * License: MIT\n   * Version: 1.2\n   *\n   * URL:\n   * http://javascript.nwbox.com/ContentLoaded/\n   * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n   */\n\n  contentLoaded = function(win, fn) {\n    var add, doc, done, init, poll, pre, rem, root, top;\n    done = false;\n    top = true;\n    doc = win.document;\n    root = doc.documentElement;\n    add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n    rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n    pre = (doc.addEventListener ? \"\" : \"on\");\n    init = function(e) {\n      if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n        return;\n      }\n      (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n      if (!done && (done = true)) {\n        return fn.call(win, e.type || e);\n      }\n    };\n    poll = function() {\n      var e;\n      try {\n        root.doScroll(\"left\");\n      } catch (_error) {\n        e = _error;\n        setTimeout(poll, 50);\n        return;\n      }\n      return init(\"poll\");\n    };\n    if (doc.readyState !== \"complete\") {\n      if (doc.createEventObject && root.doScroll) {\n        try {\n          top = !win.frameElement;\n        } catch (_error) {}\n        if (top) {\n          poll();\n        }\n      }\n      doc[add](pre + \"DOMContentLoaded\", init, false);\n      doc[add](pre + \"readystatechange\", init, false);\n      return win[add](pre + \"load\", init, false);\n    }\n  };\n\n  Dropzone._autoDiscoverFunction = function() {\n    if (Dropzone.autoDiscover) {\n      return Dropzone.discover();\n    }\n  };\n\n  contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n\n    return module.exports;\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/dropzone/dist/dropzone.css",
    "content": "/*\n * The MIT License\n * Copyright (c) 2012 Matias Meno <m@tias.me>\n */\n@-webkit-keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px); } }\n@-moz-keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px); } }\n@keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px); } }\n@-webkit-keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); } }\n@-moz-keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); } }\n@keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); } }\n@-webkit-keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1); }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); } }\n@-moz-keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1); }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); } }\n@keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1); }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); } }\n.dropzone, .dropzone * {\n  box-sizing: border-box; }\n\n.dropzone {\n  min-height: 150px;\n  border: 2px solid rgba(0, 0, 0, 0.3);\n  background: white;\n  padding: 20px 20px; }\n  .dropzone.dz-clickable {\n    cursor: pointer; }\n    .dropzone.dz-clickable * {\n      cursor: default; }\n    .dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {\n      cursor: pointer; }\n  .dropzone.dz-started .dz-message {\n    display: none; }\n  .dropzone.dz-drag-hover {\n    border-style: solid; }\n    .dropzone.dz-drag-hover .dz-message {\n      opacity: 0.5; }\n  .dropzone .dz-message {\n    text-align: center;\n    margin: 2em 0; }\n  .dropzone .dz-preview {\n    position: relative;\n    display: inline-block;\n    vertical-align: top;\n    margin: 16px;\n    min-height: 100px; }\n    .dropzone .dz-preview:hover {\n      z-index: 1000; }\n      .dropzone .dz-preview:hover .dz-details {\n        opacity: 1; }\n    .dropzone .dz-preview.dz-file-preview .dz-image {\n      border-radius: 20px;\n      background: #999;\n      background: linear-gradient(to bottom, #eee, #ddd); }\n    .dropzone .dz-preview.dz-file-preview .dz-details {\n      opacity: 1; }\n    .dropzone .dz-preview.dz-image-preview {\n      background: white; }\n      .dropzone .dz-preview.dz-image-preview .dz-details {\n        -webkit-transition: opacity 0.2s linear;\n        -moz-transition: opacity 0.2s linear;\n        -ms-transition: opacity 0.2s linear;\n        -o-transition: opacity 0.2s linear;\n        transition: opacity 0.2s linear; }\n    .dropzone .dz-preview .dz-remove {\n      font-size: 14px;\n      text-align: center;\n      display: block;\n      cursor: pointer;\n      border: none; }\n      .dropzone .dz-preview .dz-remove:hover {\n        text-decoration: underline; }\n    .dropzone .dz-preview:hover .dz-details {\n      opacity: 1; }\n    .dropzone .dz-preview .dz-details {\n      z-index: 20;\n      position: absolute;\n      top: 0;\n      left: 0;\n      opacity: 0;\n      font-size: 13px;\n      min-width: 100%;\n      max-width: 100%;\n      padding: 2em 1em;\n      text-align: center;\n      color: rgba(0, 0, 0, 0.9);\n      line-height: 150%; }\n      .dropzone .dz-preview .dz-details .dz-size {\n        margin-bottom: 1em;\n        font-size: 16px; }\n      .dropzone .dz-preview .dz-details .dz-filename {\n        white-space: nowrap; }\n        .dropzone .dz-preview .dz-details .dz-filename:hover span {\n          border: 1px solid rgba(200, 200, 200, 0.8);\n          background-color: rgba(255, 255, 255, 0.8); }\n        .dropzone .dz-preview .dz-details .dz-filename:not(:hover) {\n          overflow: hidden;\n          text-overflow: ellipsis; }\n          .dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {\n            border: 1px solid transparent; }\n      .dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {\n        background-color: rgba(255, 255, 255, 0.4);\n        padding: 0 0.4em;\n        border-radius: 3px; }\n    .dropzone .dz-preview:hover .dz-image img {\n      -webkit-transform: scale(1.05, 1.05);\n      -moz-transform: scale(1.05, 1.05);\n      -ms-transform: scale(1.05, 1.05);\n      -o-transform: scale(1.05, 1.05);\n      transform: scale(1.05, 1.05);\n      -webkit-filter: blur(8px);\n      filter: blur(8px); }\n    .dropzone .dz-preview .dz-image {\n      border-radius: 20px;\n      overflow: hidden;\n      width: 120px;\n      height: 120px;\n      position: relative;\n      display: block;\n      z-index: 10; }\n      .dropzone .dz-preview .dz-image img {\n        display: block; }\n    .dropzone .dz-preview.dz-success .dz-success-mark {\n      -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }\n    .dropzone .dz-preview.dz-error .dz-error-mark {\n      opacity: 1;\n      -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }\n    .dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {\n      pointer-events: none;\n      opacity: 0;\n      z-index: 500;\n      position: absolute;\n      display: block;\n      top: 50%;\n      left: 50%;\n      margin-left: -27px;\n      margin-top: -27px; }\n      .dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {\n        display: block;\n        width: 54px;\n        height: 54px; }\n    .dropzone .dz-preview.dz-processing .dz-progress {\n      opacity: 1;\n      -webkit-transition: all 0.2s linear;\n      -moz-transition: all 0.2s linear;\n      -ms-transition: all 0.2s linear;\n      -o-transition: all 0.2s linear;\n      transition: all 0.2s linear; }\n    .dropzone .dz-preview.dz-complete .dz-progress {\n      opacity: 0;\n      -webkit-transition: opacity 0.4s ease-in;\n      -moz-transition: opacity 0.4s ease-in;\n      -ms-transition: opacity 0.4s ease-in;\n      -o-transition: opacity 0.4s ease-in;\n      transition: opacity 0.4s ease-in; }\n    .dropzone .dz-preview:not(.dz-processing) .dz-progress {\n      -webkit-animation: pulse 6s ease infinite;\n      -moz-animation: pulse 6s ease infinite;\n      -ms-animation: pulse 6s ease infinite;\n      -o-animation: pulse 6s ease infinite;\n      animation: pulse 6s ease infinite; }\n    .dropzone .dz-preview .dz-progress {\n      opacity: 1;\n      z-index: 1000;\n      pointer-events: none;\n      position: absolute;\n      height: 16px;\n      left: 50%;\n      top: 50%;\n      margin-top: -8px;\n      width: 80px;\n      margin-left: -40px;\n      background: rgba(255, 255, 255, 0.9);\n      -webkit-transform: scale(1);\n      border-radius: 8px;\n      overflow: hidden; }\n      .dropzone .dz-preview .dz-progress .dz-upload {\n        background: #333;\n        background: linear-gradient(to bottom, #666, #444);\n        position: absolute;\n        top: 0;\n        left: 0;\n        bottom: 0;\n        width: 0;\n        -webkit-transition: width 300ms ease-in-out;\n        -moz-transition: width 300ms ease-in-out;\n        -ms-transition: width 300ms ease-in-out;\n        -o-transition: width 300ms ease-in-out;\n        transition: width 300ms ease-in-out; }\n    .dropzone .dz-preview.dz-error .dz-error-message {\n      display: block; }\n    .dropzone .dz-preview.dz-error:hover .dz-error-message {\n      opacity: 1;\n      pointer-events: auto; }\n    .dropzone .dz-preview .dz-error-message {\n      pointer-events: none;\n      z-index: 1000;\n      position: absolute;\n      display: block;\n      display: none;\n      opacity: 0;\n      -webkit-transition: opacity 0.3s ease;\n      -moz-transition: opacity 0.3s ease;\n      -ms-transition: opacity 0.3s ease;\n      -o-transition: opacity 0.3s ease;\n      transition: opacity 0.3s ease;\n      border-radius: 8px;\n      font-size: 13px;\n      top: 130px;\n      left: -10px;\n      width: 140px;\n      background: #be2626;\n      background: linear-gradient(to bottom, #be2626, #a92222);\n      padding: 0.5em 1.2em;\n      color: white; }\n      .dropzone .dz-preview .dz-error-message:after {\n        content: '';\n        position: absolute;\n        top: -6px;\n        left: 64px;\n        width: 0;\n        height: 0;\n        border-left: 6px solid transparent;\n        border-right: 6px solid transparent;\n        border-bottom: 6px solid #be2626; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/dropzone/dist/dropzone.js",
    "content": "\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n  var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n    __slice = [].slice,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  noop = function() {};\n\n  Emitter = (function() {\n    function Emitter() {}\n\n    Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n    Emitter.prototype.on = function(event, fn) {\n      this._callbacks = this._callbacks || {};\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n      this._callbacks[event].push(fn);\n      return this;\n    };\n\n    Emitter.prototype.emit = function() {\n      var args, callback, callbacks, event, _i, _len;\n      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      this._callbacks = this._callbacks || {};\n      callbacks = this._callbacks[event];\n      if (callbacks) {\n        for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n          callback = callbacks[_i];\n          callback.apply(this, args);\n        }\n      }\n      return this;\n    };\n\n    Emitter.prototype.removeListener = Emitter.prototype.off;\n\n    Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n    Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n    Emitter.prototype.off = function(event, fn) {\n      var callback, callbacks, i, _i, _len;\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      }\n      callbacks = this._callbacks[event];\n      if (!callbacks) {\n        return this;\n      }\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      }\n      for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n        callback = callbacks[i];\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n      return this;\n    };\n\n    return Emitter;\n\n  })();\n\n  Dropzone = (function(_super) {\n    var extend, resolveOption;\n\n    __extends(Dropzone, _super);\n\n    Dropzone.prototype.Emitter = Emitter;\n\n\n    /*\n    This is a list of all available events you can register on a dropzone object.\n    \n    You can register an event handler like this:\n    \n        dropzone.on(\"dragEnter\", function() { });\n     */\n\n    Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n    Dropzone.prototype.defaultOptions = {\n      url: null,\n      method: \"post\",\n      withCredentials: false,\n      parallelUploads: 2,\n      uploadMultiple: false,\n      maxFilesize: 256,\n      paramName: \"file\",\n      createImageThumbnails: true,\n      maxThumbnailFilesize: 10,\n      thumbnailWidth: 120,\n      thumbnailHeight: 120,\n      filesizeBase: 1000,\n      maxFiles: null,\n      params: {},\n      clickable: true,\n      ignoreHiddenFiles: true,\n      acceptedFiles: null,\n      acceptedMimeTypes: null,\n      autoProcessQueue: true,\n      autoQueue: true,\n      addRemoveLinks: false,\n      previewsContainer: null,\n      hiddenInputContainer: \"body\",\n      capture: null,\n      renameFilename: null,\n      dictDefaultMessage: \"Drop files here to upload\",\n      dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n      dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n      dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n      dictInvalidFileType: \"You can't upload files of this type.\",\n      dictResponseError: \"Server responded with {{statusCode}} code.\",\n      dictCancelUpload: \"Cancel upload\",\n      dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n      dictRemoveFile: \"Remove file\",\n      dictRemoveFileConfirmation: null,\n      dictMaxFilesExceeded: \"You can not upload any more files.\",\n      accept: function(file, done) {\n        return done();\n      },\n      init: function() {\n        return noop;\n      },\n      forceFallback: false,\n      fallback: function() {\n        var child, messageElement, span, _i, _len, _ref;\n        this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n        _ref = this.element.getElementsByTagName(\"div\");\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          child = _ref[_i];\n          if (/(^| )dz-message($| )/.test(child.className)) {\n            messageElement = child;\n            child.className = \"dz-message\";\n            continue;\n          }\n        }\n        if (!messageElement) {\n          messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n          this.element.appendChild(messageElement);\n        }\n        span = messageElement.getElementsByTagName(\"span\")[0];\n        if (span) {\n          if (span.textContent != null) {\n            span.textContent = this.options.dictFallbackMessage;\n          } else if (span.innerText != null) {\n            span.innerText = this.options.dictFallbackMessage;\n          }\n        }\n        return this.element.appendChild(this.getFallbackForm());\n      },\n      resize: function(file) {\n        var info, srcRatio, trgRatio;\n        info = {\n          srcX: 0,\n          srcY: 0,\n          srcWidth: file.width,\n          srcHeight: file.height\n        };\n        srcRatio = file.width / file.height;\n        info.optWidth = this.options.thumbnailWidth;\n        info.optHeight = this.options.thumbnailHeight;\n        if ((info.optWidth == null) && (info.optHeight == null)) {\n          info.optWidth = info.srcWidth;\n          info.optHeight = info.srcHeight;\n        } else if (info.optWidth == null) {\n          info.optWidth = srcRatio * info.optHeight;\n        } else if (info.optHeight == null) {\n          info.optHeight = (1 / srcRatio) * info.optWidth;\n        }\n        trgRatio = info.optWidth / info.optHeight;\n        if (file.height < info.optHeight || file.width < info.optWidth) {\n          info.trgHeight = info.srcHeight;\n          info.trgWidth = info.srcWidth;\n        } else {\n          if (srcRatio > trgRatio) {\n            info.srcHeight = file.height;\n            info.srcWidth = info.srcHeight * trgRatio;\n          } else {\n            info.srcWidth = file.width;\n            info.srcHeight = info.srcWidth / trgRatio;\n          }\n        }\n        info.srcX = (file.width - info.srcWidth) / 2;\n        info.srcY = (file.height - info.srcHeight) / 2;\n        return info;\n      },\n\n      /*\n      Those functions register themselves to the events on init and handle all\n      the user interface specific stuff. Overwriting them won't break the upload\n      but can break the way it's displayed.\n      You can overwrite them if you don't like the default behavior. If you just\n      want to add an additional event handler, register it on the dropzone object\n      and don't overwrite those options.\n       */\n      drop: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragstart: noop,\n      dragend: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragenter: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragover: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragleave: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      paste: noop,\n      reset: function() {\n        return this.element.classList.remove(\"dz-started\");\n      },\n      addedfile: function(file) {\n        var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n        if (this.element === this.previewsContainer) {\n          this.element.classList.add(\"dz-started\");\n        }\n        if (this.previewsContainer) {\n          file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n          file.previewTemplate = file.previewElement;\n          this.previewsContainer.appendChild(file.previewElement);\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            node.textContent = this._renameFilename(file.name);\n          }\n          _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n            node = _ref1[_j];\n            node.innerHTML = this.filesize(file.size);\n          }\n          if (this.options.addRemoveLinks) {\n            file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n            file.previewElement.appendChild(file._removeLink);\n          }\n          removeFileEvent = (function(_this) {\n            return function(e) {\n              e.preventDefault();\n              e.stopPropagation();\n              if (file.status === Dropzone.UPLOADING) {\n                return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n                  return _this.removeFile(file);\n                });\n              } else {\n                if (_this.options.dictRemoveFileConfirmation) {\n                  return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n                    return _this.removeFile(file);\n                  });\n                } else {\n                  return _this.removeFile(file);\n                }\n              }\n            };\n          })(this);\n          _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n          _results = [];\n          for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n            removeLink = _ref2[_k];\n            _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n          }\n          return _results;\n        }\n      },\n      removedfile: function(file) {\n        var _ref;\n        if (file.previewElement) {\n          if ((_ref = file.previewElement) != null) {\n            _ref.parentNode.removeChild(file.previewElement);\n          }\n        }\n        return this._updateMaxFilesReachedClass();\n      },\n      thumbnail: function(file, dataUrl) {\n        var thumbnailElement, _i, _len, _ref;\n        if (file.previewElement) {\n          file.previewElement.classList.remove(\"dz-file-preview\");\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            thumbnailElement = _ref[_i];\n            thumbnailElement.alt = file.name;\n            thumbnailElement.src = dataUrl;\n          }\n          return setTimeout(((function(_this) {\n            return function() {\n              return file.previewElement.classList.add(\"dz-image-preview\");\n            };\n          })(this)), 1);\n        }\n      },\n      error: function(file, message) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-error\");\n          if (typeof message !== \"String\" && message.error) {\n            message = message.error;\n          }\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            _results.push(node.textContent = message);\n          }\n          return _results;\n        }\n      },\n      errormultiple: noop,\n      processing: function(file) {\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-processing\");\n          if (file._removeLink) {\n            return file._removeLink.textContent = this.options.dictCancelUpload;\n          }\n        }\n      },\n      processingmultiple: noop,\n      uploadprogress: function(file, progress, bytesSent) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            if (node.nodeName === 'PROGRESS') {\n              _results.push(node.value = progress);\n            } else {\n              _results.push(node.style.width = \"\" + progress + \"%\");\n            }\n          }\n          return _results;\n        }\n      },\n      totaluploadprogress: noop,\n      sending: noop,\n      sendingmultiple: noop,\n      success: function(file) {\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-success\");\n        }\n      },\n      successmultiple: noop,\n      canceled: function(file) {\n        return this.emit(\"error\", file, \"Upload canceled.\");\n      },\n      canceledmultiple: noop,\n      complete: function(file) {\n        if (file._removeLink) {\n          file._removeLink.textContent = this.options.dictRemoveFile;\n        }\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-complete\");\n        }\n      },\n      completemultiple: noop,\n      maxfilesexceeded: noop,\n      maxfilesreached: noop,\n      queuecomplete: noop,\n      addedfiles: noop,\n      previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n  <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n  <div class=\\\"dz-details\\\">\\n    <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n    <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n  </div>\\n  <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n  <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n  <div class=\\\"dz-success-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Check</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n      </g>\\n    </svg>\\n  </div>\\n  <div class=\\\"dz-error-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Error</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n          <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n        </g>\\n      </g>\\n    </svg>\\n  </div>\\n</div>\"\n    };\n\n    extend = function() {\n      var key, object, objects, target, val, _i, _len;\n      target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      for (_i = 0, _len = objects.length; _i < _len; _i++) {\n        object = objects[_i];\n        for (key in object) {\n          val = object[key];\n          target[key] = val;\n        }\n      }\n      return target;\n    };\n\n    function Dropzone(element, options) {\n      var elementOptions, fallback, _ref;\n      this.element = element;\n      this.version = Dropzone.version;\n      this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n      this.clickableElements = [];\n      this.listeners = [];\n      this.files = [];\n      if (typeof this.element === \"string\") {\n        this.element = document.querySelector(this.element);\n      }\n      if (!(this.element && (this.element.nodeType != null))) {\n        throw new Error(\"Invalid dropzone element.\");\n      }\n      if (this.element.dropzone) {\n        throw new Error(\"Dropzone already attached.\");\n      }\n      Dropzone.instances.push(this);\n      this.element.dropzone = this;\n      elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n      this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n      if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n        return this.options.fallback.call(this);\n      }\n      if (this.options.url == null) {\n        this.options.url = this.element.getAttribute(\"action\");\n      }\n      if (!this.options.url) {\n        throw new Error(\"No URL provided.\");\n      }\n      if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n        throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n      }\n      if (this.options.acceptedMimeTypes) {\n        this.options.acceptedFiles = this.options.acceptedMimeTypes;\n        delete this.options.acceptedMimeTypes;\n      }\n      this.options.method = this.options.method.toUpperCase();\n      if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n        fallback.parentNode.removeChild(fallback);\n      }\n      if (this.options.previewsContainer !== false) {\n        if (this.options.previewsContainer) {\n          this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n        } else {\n          this.previewsContainer = this.element;\n        }\n      }\n      if (this.options.clickable) {\n        if (this.options.clickable === true) {\n          this.clickableElements = [this.element];\n        } else {\n          this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n        }\n      }\n      this.init();\n    }\n\n    Dropzone.prototype.getAcceptedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getRejectedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (!file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getFilesWithStatus = function(status) {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === status) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getQueuedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    };\n\n    Dropzone.prototype.getUploadingFiles = function() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    };\n\n    Dropzone.prototype.getAddedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.ADDED);\n    };\n\n    Dropzone.prototype.getActiveFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.init = function() {\n      var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n      }\n      if (this.clickableElements.length) {\n        setupHiddenFileInput = (function(_this) {\n          return function() {\n            if (_this.hiddenFileInput) {\n              _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n            }\n            _this.hiddenFileInput = document.createElement(\"input\");\n            _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n            if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n              _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n            }\n            _this.hiddenFileInput.className = \"dz-hidden-input\";\n            if (_this.options.acceptedFiles != null) {\n              _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n            }\n            if (_this.options.capture != null) {\n              _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n            }\n            _this.hiddenFileInput.style.visibility = \"hidden\";\n            _this.hiddenFileInput.style.position = \"absolute\";\n            _this.hiddenFileInput.style.top = \"0\";\n            _this.hiddenFileInput.style.left = \"0\";\n            _this.hiddenFileInput.style.height = \"0\";\n            _this.hiddenFileInput.style.width = \"0\";\n            document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n            return _this.hiddenFileInput.addEventListener(\"change\", function() {\n              var file, files, _i, _len;\n              files = _this.hiddenFileInput.files;\n              if (files.length) {\n                for (_i = 0, _len = files.length; _i < _len; _i++) {\n                  file = files[_i];\n                  _this.addFile(file);\n                }\n              }\n              _this.emit(\"addedfiles\", files);\n              return setupHiddenFileInput();\n            });\n          };\n        })(this);\n        setupHiddenFileInput();\n      }\n      this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n      _ref1 = this.events;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        eventName = _ref1[_i];\n        this.on(eventName, this.options[eventName]);\n      }\n      this.on(\"uploadprogress\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"removedfile\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"canceled\", (function(_this) {\n        return function(file) {\n          return _this.emit(\"complete\", file);\n        };\n      })(this));\n      this.on(\"complete\", (function(_this) {\n        return function(file) {\n          if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n            return setTimeout((function() {\n              return _this.emit(\"queuecomplete\");\n            }), 0);\n          }\n        };\n      })(this));\n      noPropagation = function(e) {\n        e.stopPropagation();\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      };\n      this.listeners = [\n        {\n          element: this.element,\n          events: {\n            \"dragstart\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragstart\", e);\n              };\n            })(this),\n            \"dragenter\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.emit(\"dragenter\", e);\n              };\n            })(this),\n            \"dragover\": (function(_this) {\n              return function(e) {\n                var efct;\n                try {\n                  efct = e.dataTransfer.effectAllowed;\n                } catch (_error) {}\n                e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n                noPropagation(e);\n                return _this.emit(\"dragover\", e);\n              };\n            })(this),\n            \"dragleave\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragleave\", e);\n              };\n            })(this),\n            \"drop\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.drop(e);\n              };\n            })(this),\n            \"dragend\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragend\", e);\n              };\n            })(this)\n          }\n        }\n      ];\n      this.clickableElements.forEach((function(_this) {\n        return function(clickableElement) {\n          return _this.listeners.push({\n            element: clickableElement,\n            events: {\n              \"click\": function(evt) {\n                if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n                  _this.hiddenFileInput.click();\n                }\n                return true;\n              }\n            }\n          });\n        };\n      })(this));\n      this.enable();\n      return this.options.init.call(this);\n    };\n\n    Dropzone.prototype.destroy = function() {\n      var _ref;\n      this.disable();\n      this.removeAllFiles(true);\n      if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    };\n\n    Dropzone.prototype.updateTotalUploadProgress = function() {\n      var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n      totalBytesSent = 0;\n      totalBytes = 0;\n      activeFiles = this.getActiveFiles();\n      if (activeFiles.length) {\n        _ref = this.getActiveFiles();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          totalBytesSent += file.upload.bytesSent;\n          totalBytes += file.upload.total;\n        }\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    };\n\n    Dropzone.prototype._getParamName = function(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n      }\n    };\n\n    Dropzone.prototype._renameFilename = function(name) {\n      if (typeof this.options.renameFilename !== \"function\") {\n        return name;\n      }\n      return this.options.renameFilename(name);\n    };\n\n    Dropzone.prototype.getFallbackForm = function() {\n      var existingFallback, fields, fieldsString, form;\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n      fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n      }\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n      fields = Dropzone.createElement(fieldsString);\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n        form.appendChild(fields);\n      } else {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n      return form != null ? form : fields;\n    };\n\n    Dropzone.prototype.getExistingFallback = function() {\n      var fallback, getFallback, tagName, _i, _len, _ref;\n      getFallback = function(elements) {\n        var el, _i, _len;\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )fallback($| )/.test(el.className)) {\n            return el;\n          }\n        }\n      };\n      _ref = [\"div\", \"form\"];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        tagName = _ref[_i];\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    };\n\n    Dropzone.prototype.setupEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.removeEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.disable = function() {\n      var file, _i, _len, _ref, _results;\n      this.clickableElements.forEach(function(element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        _results.push(this.cancelUpload(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.enable = function() {\n      this.clickableElements.forEach(function(element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    };\n\n    Dropzone.prototype.filesize = function(size) {\n      var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n      selectedSize = 0;\n      selectedUnit = \"b\";\n      if (size > 0) {\n        units = ['TB', 'GB', 'MB', 'KB', 'b'];\n        for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n          unit = units[i];\n          cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n          if (size >= cutoff) {\n            selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n            selectedUnit = unit;\n            break;\n          }\n        }\n        selectedSize = Math.round(10 * selectedSize) / 10;\n      }\n      return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n    };\n\n    Dropzone.prototype._updateMaxFilesReachedClass = function() {\n      if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit('maxfilesreached', this.files);\n        }\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    };\n\n    Dropzone.prototype.drop = function(e) {\n      var files, items;\n      if (!e.dataTransfer) {\n        return;\n      }\n      this.emit(\"drop\", e);\n      files = e.dataTransfer.files;\n      this.emit(\"addedfiles\", files);\n      if (files.length) {\n        items = e.dataTransfer.items;\n        if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n    };\n\n    Dropzone.prototype.paste = function(e) {\n      var items, _ref;\n      if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n        return;\n      }\n      this.emit(\"paste\", e);\n      items = e.clipboardData.items;\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    };\n\n    Dropzone.prototype.handleFiles = function(files) {\n      var file, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        _results.push(this.addFile(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromItems = function(items) {\n      var entry, item, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = items.length; _i < _len; _i++) {\n        item = items[_i];\n        if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n          if (entry.isFile) {\n            _results.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            _results.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            _results.push(void 0);\n          }\n        } else if (item.getAsFile != null) {\n          if ((item.kind == null) || item.kind === \"file\") {\n            _results.push(this.addFile(item.getAsFile()));\n          } else {\n            _results.push(void 0);\n          }\n        } else {\n          _results.push(void 0);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n      var dirReader, errorHandler, readEntries;\n      dirReader = directory.createReader();\n      errorHandler = function(error) {\n        return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n      };\n      readEntries = (function(_this) {\n        return function() {\n          return dirReader.readEntries(function(entries) {\n            var entry, _i, _len;\n            if (entries.length > 0) {\n              for (_i = 0, _len = entries.length; _i < _len; _i++) {\n                entry = entries[_i];\n                if (entry.isFile) {\n                  entry.file(function(file) {\n                    if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n                      return;\n                    }\n                    file.fullPath = \"\" + path + \"/\" + file.name;\n                    return _this.addFile(file);\n                  });\n                } else if (entry.isDirectory) {\n                  _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n                }\n              }\n              readEntries();\n            }\n            return null;\n          }, errorHandler);\n        };\n      })(this);\n      return readEntries();\n    };\n\n    Dropzone.prototype.accept = function(file, done) {\n      if (file.size > this.options.maxFilesize * 1024 * 1024) {\n        return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        return done(this.options.dictInvalidFileType);\n      } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        return this.emit(\"maxfilesexceeded\", file);\n      } else {\n        return this.options.accept.call(this, file, done);\n      }\n    };\n\n    Dropzone.prototype.addFile = function(file) {\n      file.upload = {\n        progress: 0,\n        total: file.size,\n        bytesSent: 0\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n      this._enqueueThumbnail(file);\n      return this.accept(file, (function(_this) {\n        return function(error) {\n          if (error) {\n            file.accepted = false;\n            _this._errorProcessing([file], error);\n          } else {\n            file.accepted = true;\n            if (_this.options.autoQueue) {\n              _this.enqueueFile(file);\n            }\n          }\n          return _this._updateMaxFilesReachedClass();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.enqueueFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        this.enqueueFile(file);\n      }\n      return null;\n    };\n\n    Dropzone.prototype.enqueueFile = function(file) {\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n        if (this.options.autoProcessQueue) {\n          return setTimeout(((function(_this) {\n            return function() {\n              return _this.processQueue();\n            };\n          })(this)), 0);\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    };\n\n    Dropzone.prototype._thumbnailQueue = [];\n\n    Dropzone.prototype._processingThumbnail = false;\n\n    Dropzone.prototype._enqueueThumbnail = function(file) {\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this._processThumbnailQueue();\n          };\n        })(this)), 0);\n      }\n    };\n\n    Dropzone.prototype._processThumbnailQueue = function() {\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n      this._processingThumbnail = true;\n      return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n        return function() {\n          _this._processingThumbnail = false;\n          return _this._processThumbnailQueue();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.removeFile = function(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    };\n\n    Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n      var file, _i, _len, _ref;\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n      _ref = this.files.slice();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n          this.removeFile(file);\n        }\n      }\n      return null;\n    };\n\n    Dropzone.prototype.createThumbnail = function(file, callback) {\n      var fileReader;\n      fileReader = new FileReader;\n      fileReader.onload = (function(_this) {\n        return function() {\n          if (file.type === \"image/svg+xml\") {\n            _this.emit(\"thumbnail\", file, fileReader.result);\n            if (callback != null) {\n              callback();\n            }\n            return;\n          }\n          return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n        };\n      })(this);\n      return fileReader.readAsDataURL(file);\n    };\n\n    Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n      var img;\n      img = document.createElement(\"img\");\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      }\n      img.onload = (function(_this) {\n        return function() {\n          var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n          file.width = img.width;\n          file.height = img.height;\n          resizeInfo = _this.options.resize.call(_this, file);\n          if (resizeInfo.trgWidth == null) {\n            resizeInfo.trgWidth = resizeInfo.optWidth;\n          }\n          if (resizeInfo.trgHeight == null) {\n            resizeInfo.trgHeight = resizeInfo.optHeight;\n          }\n          canvas = document.createElement(\"canvas\");\n          ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n          drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          thumbnail = canvas.toDataURL(\"image/png\");\n          _this.emit(\"thumbnail\", file, thumbnail);\n          if (callback != null) {\n            return callback();\n          }\n        };\n      })(this);\n      if (callback != null) {\n        img.onerror = callback;\n      }\n      return img.src = imageUrl;\n    };\n\n    Dropzone.prototype.processQueue = function() {\n      var i, parallelUploads, processingLength, queuedFiles;\n      parallelUploads = this.options.parallelUploads;\n      processingLength = this.getUploadingFiles().length;\n      i = processingLength;\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n      queuedFiles = this.getQueuedFiles();\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n      if (this.options.uploadMultiple) {\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          }\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    };\n\n    Dropzone.prototype.processFile = function(file) {\n      return this.processFiles([file]);\n    };\n\n    Dropzone.prototype.processFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.processing = true;\n        file.status = Dropzone.UPLOADING;\n        this.emit(\"processing\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n      return this.uploadFiles(files);\n    };\n\n    Dropzone.prototype._getFilesWithXhr = function(xhr) {\n      var file, files;\n      return files = (function() {\n        var _i, _len, _ref, _results;\n        _ref = this.files;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          if (file.xhr === xhr) {\n            _results.push(file);\n          }\n        }\n        return _results;\n      }).call(this);\n    };\n\n    Dropzone.prototype.cancelUpload = function(file) {\n      var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n      if (file.status === Dropzone.UPLOADING) {\n        groupedFiles = this._getFilesWithXhr(file.xhr);\n        for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n          groupedFile = groupedFiles[_i];\n          groupedFile.status = Dropzone.CANCELED;\n        }\n        file.xhr.abort();\n        for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n          groupedFile = groupedFiles[_j];\n          this.emit(\"canceled\", groupedFile);\n        }\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    resolveOption = function() {\n      var args, option;\n      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      if (typeof option === 'function') {\n        return option.apply(this, args);\n      }\n      return option;\n    };\n\n    Dropzone.prototype.uploadFile = function(file) {\n      return this.uploadFiles([file]);\n    };\n\n    Dropzone.prototype.uploadFiles = function(files) {\n      var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n      xhr = new XMLHttpRequest();\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.xhr = xhr;\n      }\n      method = resolveOption(this.options.method, files);\n      url = resolveOption(this.options.url, files);\n      xhr.open(method, url, true);\n      xhr.withCredentials = !!this.options.withCredentials;\n      response = null;\n      handleError = (function(_this) {\n        return function() {\n          var _j, _len1, _results;\n          _results = [];\n          for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n            file = files[_j];\n            _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n          }\n          return _results;\n        };\n      })(this);\n      updateProgress = (function(_this) {\n        return function(e) {\n          var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n          if (e != null) {\n            progress = 100 * e.loaded / e.total;\n            for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n              file = files[_j];\n              file.upload = {\n                progress: progress,\n                total: e.total,\n                bytesSent: e.loaded\n              };\n            }\n          } else {\n            allFilesFinished = true;\n            progress = 100;\n            for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n              file = files[_k];\n              if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n                allFilesFinished = false;\n              }\n              file.upload.progress = progress;\n              file.upload.bytesSent = file.upload.total;\n            }\n            if (allFilesFinished) {\n              return;\n            }\n          }\n          _results = [];\n          for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n            file = files[_l];\n            _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n          }\n          return _results;\n        };\n      })(this);\n      xhr.onload = (function(_this) {\n        return function(e) {\n          var _ref;\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          response = xhr.responseText;\n          if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n            try {\n              response = JSON.parse(response);\n            } catch (_error) {\n              e = _error;\n              response = \"Invalid JSON response from server.\";\n            }\n          }\n          updateProgress();\n          if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n            return handleError();\n          } else {\n            return _this._finished(files, response, e);\n          }\n        };\n      })(this);\n      xhr.onerror = (function(_this) {\n        return function() {\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          return handleError();\n        };\n      })(this);\n      progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n      progressObj.onprogress = updateProgress;\n      headers = {\n        \"Accept\": \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n      if (this.options.headers) {\n        extend(headers, this.options.headers);\n      }\n      for (headerName in headers) {\n        headerValue = headers[headerName];\n        if (headerValue) {\n          xhr.setRequestHeader(headerName, headerValue);\n        }\n      }\n      formData = new FormData();\n      if (this.options.params) {\n        _ref1 = this.options.params;\n        for (key in _ref1) {\n          value = _ref1[key];\n          formData.append(key, value);\n        }\n      }\n      for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n        file = files[_j];\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n      if (this.element.tagName === \"FORM\") {\n        _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n          input = _ref2[_k];\n          inputName = input.getAttribute(\"name\");\n          inputType = input.getAttribute(\"type\");\n          if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n            _ref3 = input.options;\n            for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n              option = _ref3[_l];\n              if (option.selected) {\n                formData.append(inputName, option.value);\n              }\n            }\n          } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n            formData.append(inputName, input.value);\n          }\n        }\n      }\n      for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n        formData.append(this._getParamName(i), files[i], this._renameFilename(files[i].name));\n      }\n      return this.submitRequest(xhr, formData, files);\n    };\n\n    Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n      return xhr.send(formData);\n    };\n\n    Dropzone.prototype._finished = function(files, responseText, e) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.SUCCESS;\n        this.emit(\"success\", file, responseText, e);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.ERROR;\n        this.emit(\"error\", file, message, xhr);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    return Dropzone;\n\n  })(Emitter);\n\n  Dropzone.version = \"4.3.0\";\n\n  Dropzone.options = {};\n\n  Dropzone.optionsForElement = function(element) {\n    if (element.getAttribute(\"id\")) {\n      return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n    } else {\n      return void 0;\n    }\n  };\n\n  Dropzone.instances = [];\n\n  Dropzone.forElement = function(element) {\n    if (typeof element === \"string\") {\n      element = document.querySelector(element);\n    }\n    if ((element != null ? element.dropzone : void 0) == null) {\n      throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n    }\n    return element.dropzone;\n  };\n\n  Dropzone.autoDiscover = true;\n\n  Dropzone.discover = function() {\n    var checkElements, dropzone, dropzones, _i, _len, _results;\n    if (document.querySelectorAll) {\n      dropzones = document.querySelectorAll(\".dropzone\");\n    } else {\n      dropzones = [];\n      checkElements = function(elements) {\n        var el, _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            _results.push(dropzones.push(el));\n          } else {\n            _results.push(void 0);\n          }\n        }\n        return _results;\n      };\n      checkElements(document.getElementsByTagName(\"div\"));\n      checkElements(document.getElementsByTagName(\"form\"));\n    }\n    _results = [];\n    for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n      dropzone = dropzones[_i];\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        _results.push(new Dropzone(dropzone));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  };\n\n  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n  Dropzone.isBrowserSupported = function() {\n    var capableBrowser, regex, _i, _len, _ref;\n    capableBrowser = true;\n    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n      if (!(\"classList\" in document.createElement(\"a\"))) {\n        capableBrowser = false;\n      } else {\n        _ref = Dropzone.blacklistedBrowsers;\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          regex = _ref[_i];\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      }\n    } else {\n      capableBrowser = false;\n    }\n    return capableBrowser;\n  };\n\n  without = function(list, rejectedItem) {\n    var item, _i, _len, _results;\n    _results = [];\n    for (_i = 0, _len = list.length; _i < _len; _i++) {\n      item = list[_i];\n      if (item !== rejectedItem) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  };\n\n  camelize = function(str) {\n    return str.replace(/[\\-_](\\w)/g, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  };\n\n  Dropzone.createElement = function(string) {\n    var div;\n    div = document.createElement(\"div\");\n    div.innerHTML = string;\n    return div.childNodes[0];\n  };\n\n  Dropzone.elementInside = function(element, container) {\n    if (element === container) {\n      return true;\n    }\n    while (element = element.parentNode) {\n      if (element === container) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  Dropzone.getElement = function(el, name) {\n    var element;\n    if (typeof el === \"string\") {\n      element = document.querySelector(el);\n    } else if (el.nodeType != null) {\n      element = el;\n    }\n    if (element == null) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n    }\n    return element;\n  };\n\n  Dropzone.getElements = function(els, name) {\n    var e, el, elements, _i, _j, _len, _len1, _ref;\n    if (els instanceof Array) {\n      elements = [];\n      try {\n        for (_i = 0, _len = els.length; _i < _len; _i++) {\n          el = els[_i];\n          elements.push(this.getElement(el, name));\n        }\n      } catch (_error) {\n        e = _error;\n        elements = null;\n      }\n    } else if (typeof els === \"string\") {\n      elements = [];\n      _ref = document.querySelectorAll(els);\n      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n        el = _ref[_j];\n        elements.push(el);\n      }\n    } else if (els.nodeType != null) {\n      elements = [els];\n    }\n    if (!((elements != null) && elements.length)) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n    }\n    return elements;\n  };\n\n  Dropzone.confirm = function(question, accepted, rejected) {\n    if (window.confirm(question)) {\n      return accepted();\n    } else if (rejected != null) {\n      return rejected();\n    }\n  };\n\n  Dropzone.isValidFile = function(file, acceptedFiles) {\n    var baseMimeType, mimeType, validType, _i, _len;\n    if (!acceptedFiles) {\n      return true;\n    }\n    acceptedFiles = acceptedFiles.split(\",\");\n    mimeType = file.type;\n    baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n    for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n      validType = acceptedFiles[_i];\n      validType = validType.trim();\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n    jQuery.fn.dropzone = function(options) {\n      return this.each(function() {\n        return new Dropzone(this, options);\n      });\n    };\n  }\n\n  if (typeof module !== \"undefined\" && module !== null) {\n    module.exports = Dropzone;\n  } else {\n    window.Dropzone = Dropzone;\n  }\n\n  Dropzone.ADDED = \"added\";\n\n  Dropzone.QUEUED = \"queued\";\n\n  Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n  Dropzone.UPLOADING = \"uploading\";\n\n  Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n  Dropzone.CANCELED = \"canceled\";\n\n  Dropzone.ERROR = \"error\";\n\n  Dropzone.SUCCESS = \"success\";\n\n\n  /*\n  \n  Bugfix for iOS 6 and 7\n  Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n  based on the work of https://github.com/stomita/ios-imagefile-megapixel\n   */\n\n  detectVerticalSquash = function(img) {\n    var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n    iw = img.naturalWidth;\n    ih = img.naturalHeight;\n    canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = ih;\n    ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    data = ctx.getImageData(0, 0, 1, ih).data;\n    sy = 0;\n    ey = ih;\n    py = ih;\n    while (py > sy) {\n      alpha = data[(py - 1) * 4 + 3];\n      if (alpha === 0) {\n        ey = py;\n      } else {\n        sy = py;\n      }\n      py = (ey + sy) >> 1;\n    }\n    ratio = py / ih;\n    if (ratio === 0) {\n      return 1;\n    } else {\n      return ratio;\n    }\n  };\n\n  drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n    var vertSquashRatio;\n    vertSquashRatio = detectVerticalSquash(img);\n    return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n  };\n\n\n  /*\n   * contentloaded.js\n   *\n   * Author: Diego Perini (diego.perini at gmail.com)\n   * Summary: cross-browser wrapper for DOMContentLoaded\n   * Updated: 20101020\n   * License: MIT\n   * Version: 1.2\n   *\n   * URL:\n   * http://javascript.nwbox.com/ContentLoaded/\n   * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n   */\n\n  contentLoaded = function(win, fn) {\n    var add, doc, done, init, poll, pre, rem, root, top;\n    done = false;\n    top = true;\n    doc = win.document;\n    root = doc.documentElement;\n    add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n    rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n    pre = (doc.addEventListener ? \"\" : \"on\");\n    init = function(e) {\n      if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n        return;\n      }\n      (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n      if (!done && (done = true)) {\n        return fn.call(win, e.type || e);\n      }\n    };\n    poll = function() {\n      var e;\n      try {\n        root.doScroll(\"left\");\n      } catch (_error) {\n        e = _error;\n        setTimeout(poll, 50);\n        return;\n      }\n      return init(\"poll\");\n    };\n    if (doc.readyState !== \"complete\") {\n      if (doc.createEventObject && root.doScroll) {\n        try {\n          top = !win.frameElement;\n        } catch (_error) {}\n        if (top) {\n          poll();\n        }\n      }\n      doc[add](pre + \"DOMContentLoaded\", init, false);\n      doc[add](pre + \"readystatechange\", init, false);\n      return win[add](pre + \"load\", init, false);\n    }\n  };\n\n  Dropzone._autoDiscoverFunction = function() {\n    if (Dropzone.autoDiscover) {\n      return Dropzone.discover();\n    }\n  };\n\n  contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/dropzone/dropzone.js",
    "content": "\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n  var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n    __slice = [].slice,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  noop = function() {};\n\n  Emitter = (function() {\n    function Emitter() {}\n\n    Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n    Emitter.prototype.on = function(event, fn) {\n      this._callbacks = this._callbacks || {};\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n      this._callbacks[event].push(fn);\n      return this;\n    };\n\n    Emitter.prototype.emit = function() {\n      var args, callback, callbacks, event, _i, _len;\n      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      this._callbacks = this._callbacks || {};\n      callbacks = this._callbacks[event];\n      if (callbacks) {\n        for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n          callback = callbacks[_i];\n          callback.apply(this, args);\n        }\n      }\n      return this;\n    };\n\n    Emitter.prototype.removeListener = Emitter.prototype.off;\n\n    Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n    Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n    Emitter.prototype.off = function(event, fn) {\n      var callback, callbacks, i, _i, _len;\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      }\n      callbacks = this._callbacks[event];\n      if (!callbacks) {\n        return this;\n      }\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      }\n      for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n        callback = callbacks[i];\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n      return this;\n    };\n\n    return Emitter;\n\n  })();\n\n  Dropzone = (function(_super) {\n    var extend, resolveOption;\n\n    __extends(Dropzone, _super);\n\n    Dropzone.prototype.Emitter = Emitter;\n\n\n    /*\n    This is a list of all available events you can register on a dropzone object.\n    \n    You can register an event handler like this:\n    \n        dropzone.on(\"dragEnter\", function() { });\n     */\n\n    Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n    Dropzone.prototype.defaultOptions = {\n      url: null,\n      method: \"post\",\n      withCredentials: false,\n      parallelUploads: 2,\n      uploadMultiple: false,\n      maxFilesize: 256,\n      paramName: \"file\",\n      createImageThumbnails: true,\n      maxThumbnailFilesize: 10,\n      thumbnailWidth: 120,\n      thumbnailHeight: 120,\n      filesizeBase: 1000,\n      maxFiles: null,\n      filesizeBase: 1000,\n      params: {},\n      clickable: true,\n      ignoreHiddenFiles: true,\n      acceptedFiles: null,\n      acceptedMimeTypes: null,\n      autoProcessQueue: true,\n      autoQueue: true,\n      addRemoveLinks: false,\n      previewsContainer: null,\n      capture: null,\n      dictDefaultMessage: \"Drop files here to upload\",\n      dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n      dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n      dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n      dictInvalidFileType: \"You can't upload files of this type.\",\n      dictResponseError: \"Server responded with {{statusCode}} code.\",\n      dictCancelUpload: \"Cancel upload\",\n      dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n      dictRemoveFile: \"Remove file\",\n      dictRemoveFileConfirmation: null,\n      dictMaxFilesExceeded: \"You can not upload any more files.\",\n      accept: function(file, done) {\n        return done();\n      },\n      init: function() {\n        return noop;\n      },\n      forceFallback: false,\n      fallback: function() {\n        var child, messageElement, span, _i, _len, _ref;\n        this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n        _ref = this.element.getElementsByTagName(\"div\");\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          child = _ref[_i];\n          if (/(^| )dz-message($| )/.test(child.className)) {\n            messageElement = child;\n            child.className = \"dz-message\";\n            continue;\n          }\n        }\n        if (!messageElement) {\n          messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n          this.element.appendChild(messageElement);\n        }\n        span = messageElement.getElementsByTagName(\"span\")[0];\n        if (span) {\n          span.textContent = this.options.dictFallbackMessage;\n        }\n        return this.element.appendChild(this.getFallbackForm());\n      },\n      resize: function(file) {\n        var info, srcRatio, trgRatio;\n        info = {\n          srcX: 0,\n          srcY: 0,\n          srcWidth: file.width,\n          srcHeight: file.height\n        };\n        srcRatio = file.width / file.height;\n        info.optWidth = this.options.thumbnailWidth;\n        info.optHeight = this.options.thumbnailHeight;\n        if ((info.optWidth == null) && (info.optHeight == null)) {\n          info.optWidth = info.srcWidth;\n          info.optHeight = info.srcHeight;\n        } else if (info.optWidth == null) {\n          info.optWidth = srcRatio * info.optHeight;\n        } else if (info.optHeight == null) {\n          info.optHeight = (1 / srcRatio) * info.optWidth;\n        }\n        trgRatio = info.optWidth / info.optHeight;\n        if (file.height < info.optHeight || file.width < info.optWidth) {\n          info.trgHeight = info.srcHeight;\n          info.trgWidth = info.srcWidth;\n        } else {\n          if (srcRatio > trgRatio) {\n            info.srcHeight = file.height;\n            info.srcWidth = info.srcHeight * trgRatio;\n          } else {\n            info.srcWidth = file.width;\n            info.srcHeight = info.srcWidth / trgRatio;\n          }\n        }\n        info.srcX = (file.width - info.srcWidth) / 2;\n        info.srcY = (file.height - info.srcHeight) / 2;\n        return info;\n      },\n\n      /*\n      Those functions register themselves to the events on init and handle all\n      the user interface specific stuff. Overwriting them won't break the upload\n      but can break the way it's displayed.\n      You can overwrite them if you don't like the default behavior. If you just\n      want to add an additional event handler, register it on the dropzone object\n      and don't overwrite those options.\n       */\n      drop: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragstart: noop,\n      dragend: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragenter: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragover: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragleave: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      paste: noop,\n      reset: function() {\n        return this.element.classList.remove(\"dz-started\");\n      },\n      addedfile: function(file) {\n        var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n        if (this.element === this.previewsContainer) {\n          this.element.classList.add(\"dz-started\");\n        }\n        if (this.previewsContainer) {\n          file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n          file.previewTemplate = file.previewElement;\n          this.previewsContainer.appendChild(file.previewElement);\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            node.textContent = file.name;\n          }\n          _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n            node = _ref1[_j];\n            node.innerHTML = this.filesize(file.size);\n          }\n          if (this.options.addRemoveLinks) {\n            file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n            file.previewElement.appendChild(file._removeLink);\n          }\n          removeFileEvent = (function(_this) {\n            return function(e) {\n              e.preventDefault();\n              e.stopPropagation();\n              if (file.status === Dropzone.UPLOADING) {\n                return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n                  return _this.removeFile(file);\n                });\n              } else {\n                if (_this.options.dictRemoveFileConfirmation) {\n                  return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n                    return _this.removeFile(file);\n                  });\n                } else {\n                  return _this.removeFile(file);\n                }\n              }\n            };\n          })(this);\n          _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n          _results = [];\n          for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n            removeLink = _ref2[_k];\n            _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n          }\n          return _results;\n        }\n      },\n      removedfile: function(file) {\n        var _ref;\n        if (file.previewElement) {\n          if ((_ref = file.previewElement) != null) {\n            _ref.parentNode.removeChild(file.previewElement);\n          }\n        }\n        return this._updateMaxFilesReachedClass();\n      },\n      thumbnail: function(file, dataUrl) {\n        var thumbnailElement, _i, _len, _ref;\n        if (file.previewElement) {\n          file.previewElement.classList.remove(\"dz-file-preview\");\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            thumbnailElement = _ref[_i];\n            thumbnailElement.alt = file.name;\n            thumbnailElement.src = dataUrl;\n          }\n          return setTimeout(((function(_this) {\n            return function() {\n              return file.previewElement.classList.add(\"dz-image-preview\");\n            };\n          })(this)), 1);\n        }\n      },\n      error: function(file, message) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-error\");\n          if (typeof message !== \"String\" && message.error) {\n            message = message.error;\n          }\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            _results.push(node.textContent = message);\n          }\n          return _results;\n        }\n      },\n      errormultiple: noop,\n      processing: function(file) {\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-processing\");\n          if (file._removeLink) {\n            return file._removeLink.textContent = this.options.dictCancelUpload;\n          }\n        }\n      },\n      processingmultiple: noop,\n      uploadprogress: function(file, progress, bytesSent) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            if (node.nodeName === 'PROGRESS') {\n              _results.push(node.value = progress);\n            } else {\n              _results.push(node.style.width = \"\" + progress + \"%\");\n            }\n          }\n          return _results;\n        }\n      },\n      totaluploadprogress: noop,\n      sending: noop,\n      sendingmultiple: noop,\n      success: function(file) {\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-success\");\n        }\n      },\n      successmultiple: noop,\n      canceled: function(file) {\n        return this.emit(\"error\", file, \"Upload canceled.\");\n      },\n      canceledmultiple: noop,\n      complete: function(file) {\n        if (file._removeLink) {\n          file._removeLink.textContent = this.options.dictRemoveFile;\n        }\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-complete\");\n        }\n      },\n      completemultiple: noop,\n      maxfilesexceeded: noop,\n      maxfilesreached: noop,\n      queuecomplete: noop,\n      previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n  <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n  <div class=\\\"dz-details\\\">\\n    <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n    <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n  </div>\\n  <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n  <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n  <div class=\\\"dz-success-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Check</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n      </g>\\n    </svg>\\n  </div>\\n  <div class=\\\"dz-error-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Error</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n          <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n        </g>\\n      </g>\\n    </svg>\\n  </div>\\n</div>\"\n    };\n\n    extend = function() {\n      var key, object, objects, target, val, _i, _len;\n      target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      for (_i = 0, _len = objects.length; _i < _len; _i++) {\n        object = objects[_i];\n        for (key in object) {\n          val = object[key];\n          target[key] = val;\n        }\n      }\n      return target;\n    };\n\n    function Dropzone(element, options) {\n      var elementOptions, fallback, _ref;\n      this.element = element;\n      this.version = Dropzone.version;\n      this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n      this.clickableElements = [];\n      this.listeners = [];\n      this.files = [];\n      if (typeof this.element === \"string\") {\n        this.element = document.querySelector(this.element);\n      }\n      if (!(this.element && (this.element.nodeType != null))) {\n        throw new Error(\"Invalid dropzone element.\");\n      }\n      if (this.element.dropzone) {\n        throw new Error(\"Dropzone already attached.\");\n      }\n      Dropzone.instances.push(this);\n      this.element.dropzone = this;\n      elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n      this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n      if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n        return this.options.fallback.call(this);\n      }\n      if (this.options.url == null) {\n        this.options.url = this.element.getAttribute(\"action\");\n      }\n      if (!this.options.url) {\n        throw new Error(\"No URL provided.\");\n      }\n      if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n        throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n      }\n      if (this.options.acceptedMimeTypes) {\n        this.options.acceptedFiles = this.options.acceptedMimeTypes;\n        delete this.options.acceptedMimeTypes;\n      }\n      this.options.method = this.options.method.toUpperCase();\n      if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n        fallback.parentNode.removeChild(fallback);\n      }\n      if (this.options.previewsContainer !== false) {\n        if (this.options.previewsContainer) {\n          this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n        } else {\n          this.previewsContainer = this.element;\n        }\n      }\n      if (this.options.clickable) {\n        if (this.options.clickable === true) {\n          this.clickableElements = [this.element];\n        } else {\n          this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n        }\n      }\n      this.init();\n    }\n\n    Dropzone.prototype.getAcceptedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getRejectedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (!file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getFilesWithStatus = function(status) {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === status) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getQueuedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    };\n\n    Dropzone.prototype.getUploadingFiles = function() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    };\n\n    Dropzone.prototype.getActiveFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.init = function() {\n      var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n      }\n      if (this.clickableElements.length) {\n        setupHiddenFileInput = (function(_this) {\n          return function() {\n            if (_this.hiddenFileInput) {\n              document.body.removeChild(_this.hiddenFileInput);\n            }\n            _this.hiddenFileInput = document.createElement(\"input\");\n            _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n            if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n              _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n            }\n            _this.hiddenFileInput.className = \"dz-hidden-input\";\n            if (_this.options.acceptedFiles != null) {\n              _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n            }\n            if (_this.options.capture != null) {\n              _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n            }\n            _this.hiddenFileInput.style.visibility = \"hidden\";\n            _this.hiddenFileInput.style.position = \"absolute\";\n            _this.hiddenFileInput.style.top = \"0\";\n            _this.hiddenFileInput.style.left = \"0\";\n            _this.hiddenFileInput.style.height = \"0\";\n            _this.hiddenFileInput.style.width = \"0\";\n            document.body.appendChild(_this.hiddenFileInput);\n            return _this.hiddenFileInput.addEventListener(\"change\", function() {\n              var file, files, _i, _len;\n              files = _this.hiddenFileInput.files;\n              if (files.length) {\n                for (_i = 0, _len = files.length; _i < _len; _i++) {\n                  file = files[_i];\n                  _this.addFile(file);\n                }\n              }\n              return setupHiddenFileInput();\n            });\n          };\n        })(this);\n        setupHiddenFileInput();\n      }\n      this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n      _ref1 = this.events;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        eventName = _ref1[_i];\n        this.on(eventName, this.options[eventName]);\n      }\n      this.on(\"uploadprogress\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"removedfile\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"canceled\", (function(_this) {\n        return function(file) {\n          return _this.emit(\"complete\", file);\n        };\n      })(this));\n      this.on(\"complete\", (function(_this) {\n        return function(file) {\n          if (_this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n            return setTimeout((function() {\n              return _this.emit(\"queuecomplete\");\n            }), 0);\n          }\n        };\n      })(this));\n      noPropagation = function(e) {\n        e.stopPropagation();\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      };\n      this.listeners = [\n        {\n          element: this.element,\n          events: {\n            \"dragstart\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragstart\", e);\n              };\n            })(this),\n            \"dragenter\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.emit(\"dragenter\", e);\n              };\n            })(this),\n            \"dragover\": (function(_this) {\n              return function(e) {\n                var efct;\n                try {\n                  efct = e.dataTransfer.effectAllowed;\n                } catch (_error) {}\n                e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n                noPropagation(e);\n                return _this.emit(\"dragover\", e);\n              };\n            })(this),\n            \"dragleave\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragleave\", e);\n              };\n            })(this),\n            \"drop\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.drop(e);\n              };\n            })(this),\n            \"dragend\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragend\", e);\n              };\n            })(this)\n          }\n        }\n      ];\n      this.clickableElements.forEach((function(_this) {\n        return function(clickableElement) {\n          return _this.listeners.push({\n            element: clickableElement,\n            events: {\n              \"click\": function(evt) {\n                if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n                  return _this.hiddenFileInput.click();\n                }\n              }\n            }\n          });\n        };\n      })(this));\n      this.enable();\n      return this.options.init.call(this);\n    };\n\n    Dropzone.prototype.destroy = function() {\n      var _ref;\n      this.disable();\n      this.removeAllFiles(true);\n      if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    };\n\n    Dropzone.prototype.updateTotalUploadProgress = function() {\n      var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n      totalBytesSent = 0;\n      totalBytes = 0;\n      activeFiles = this.getActiveFiles();\n      if (activeFiles.length) {\n        _ref = this.getActiveFiles();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          totalBytesSent += file.upload.bytesSent;\n          totalBytes += file.upload.total;\n        }\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    };\n\n    Dropzone.prototype._getParamName = function(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n      }\n    };\n\n    Dropzone.prototype.getFallbackForm = function() {\n      var existingFallback, fields, fieldsString, form;\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n      fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n      }\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n      fields = Dropzone.createElement(fieldsString);\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n        form.appendChild(fields);\n      } else {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n      return form != null ? form : fields;\n    };\n\n    Dropzone.prototype.getExistingFallback = function() {\n      var fallback, getFallback, tagName, _i, _len, _ref;\n      getFallback = function(elements) {\n        var el, _i, _len;\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )fallback($| )/.test(el.className)) {\n            return el;\n          }\n        }\n      };\n      _ref = [\"div\", \"form\"];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        tagName = _ref[_i];\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    };\n\n    Dropzone.prototype.setupEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.removeEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.disable = function() {\n      var file, _i, _len, _ref, _results;\n      this.clickableElements.forEach(function(element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        _results.push(this.cancelUpload(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.enable = function() {\n      this.clickableElements.forEach(function(element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    };\n\n    Dropzone.prototype.filesize = function(size) {\n      var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n      units = ['TB', 'GB', 'MB', 'KB', 'b'];\n      selectedSize = selectedUnit = null;\n      for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n        unit = units[i];\n        cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n        if (size >= cutoff) {\n          selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n          selectedUnit = unit;\n          break;\n        }\n      }\n      selectedSize = Math.round(10 * selectedSize) / 10;\n      return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n    };\n\n    Dropzone.prototype._updateMaxFilesReachedClass = function() {\n      if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit('maxfilesreached', this.files);\n        }\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    };\n\n    Dropzone.prototype.drop = function(e) {\n      var files, items;\n      if (!e.dataTransfer) {\n        return;\n      }\n      this.emit(\"drop\", e);\n      files = e.dataTransfer.files;\n      if (files.length) {\n        items = e.dataTransfer.items;\n        if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n    };\n\n    Dropzone.prototype.paste = function(e) {\n      var items, _ref;\n      if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n        return;\n      }\n      this.emit(\"paste\", e);\n      items = e.clipboardData.items;\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    };\n\n    Dropzone.prototype.handleFiles = function(files) {\n      var file, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        _results.push(this.addFile(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromItems = function(items) {\n      var entry, item, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = items.length; _i < _len; _i++) {\n        item = items[_i];\n        if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n          if (entry.isFile) {\n            _results.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            _results.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            _results.push(void 0);\n          }\n        } else if (item.getAsFile != null) {\n          if ((item.kind == null) || item.kind === \"file\") {\n            _results.push(this.addFile(item.getAsFile()));\n          } else {\n            _results.push(void 0);\n          }\n        } else {\n          _results.push(void 0);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n      var dirReader, entriesReader;\n      dirReader = directory.createReader();\n      entriesReader = (function(_this) {\n        return function(entries) {\n          var entry, _i, _len;\n          for (_i = 0, _len = entries.length; _i < _len; _i++) {\n            entry = entries[_i];\n            if (entry.isFile) {\n              entry.file(function(file) {\n                if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n                  return;\n                }\n                file.fullPath = \"\" + path + \"/\" + file.name;\n                return _this.addFile(file);\n              });\n            } else if (entry.isDirectory) {\n              _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n            }\n          }\n        };\n      })(this);\n      return dirReader.readEntries(entriesReader, function(error) {\n        return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n      });\n    };\n\n    Dropzone.prototype.accept = function(file, done) {\n      if (file.size > this.options.maxFilesize * 1024 * 1024) {\n        return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        return done(this.options.dictInvalidFileType);\n      } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        return this.emit(\"maxfilesexceeded\", file);\n      } else {\n        return this.options.accept.call(this, file, done);\n      }\n    };\n\n    Dropzone.prototype.addFile = function(file) {\n      file.upload = {\n        progress: 0,\n        total: file.size,\n        bytesSent: 0\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n      this._enqueueThumbnail(file);\n      return this.accept(file, (function(_this) {\n        return function(error) {\n          if (error) {\n            file.accepted = false;\n            _this._errorProcessing([file], error);\n          } else {\n            file.accepted = true;\n            if (_this.options.autoQueue) {\n              _this.enqueueFile(file);\n            }\n          }\n          return _this._updateMaxFilesReachedClass();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.enqueueFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        this.enqueueFile(file);\n      }\n      return null;\n    };\n\n    Dropzone.prototype.enqueueFile = function(file) {\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n        if (this.options.autoProcessQueue) {\n          return setTimeout(((function(_this) {\n            return function() {\n              return _this.processQueue();\n            };\n          })(this)), 0);\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    };\n\n    Dropzone.prototype._thumbnailQueue = [];\n\n    Dropzone.prototype._processingThumbnail = false;\n\n    Dropzone.prototype._enqueueThumbnail = function(file) {\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this._processThumbnailQueue();\n          };\n        })(this)), 0);\n      }\n    };\n\n    Dropzone.prototype._processThumbnailQueue = function() {\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n      this._processingThumbnail = true;\n      return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n        return function() {\n          _this._processingThumbnail = false;\n          return _this._processThumbnailQueue();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.removeFile = function(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    };\n\n    Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n      var file, _i, _len, _ref;\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n      _ref = this.files.slice();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n          this.removeFile(file);\n        }\n      }\n      return null;\n    };\n\n    Dropzone.prototype.createThumbnail = function(file, callback) {\n      var fileReader;\n      fileReader = new FileReader;\n      fileReader.onload = (function(_this) {\n        return function() {\n          if (file.type === \"image/svg+xml\") {\n            _this.emit(\"thumbnail\", file, fileReader.result);\n            if (callback != null) {\n              callback();\n            }\n            return;\n          }\n          return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n        };\n      })(this);\n      return fileReader.readAsDataURL(file);\n    };\n\n    Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback) {\n      var img;\n      img = document.createElement(\"img\");\n      img.onload = (function(_this) {\n        return function() {\n          var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n          file.width = img.width;\n          file.height = img.height;\n          resizeInfo = _this.options.resize.call(_this, file);\n          if (resizeInfo.trgWidth == null) {\n            resizeInfo.trgWidth = resizeInfo.optWidth;\n          }\n          if (resizeInfo.trgHeight == null) {\n            resizeInfo.trgHeight = resizeInfo.optHeight;\n          }\n          canvas = document.createElement(\"canvas\");\n          ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n          drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          thumbnail = canvas.toDataURL(\"image/png\");\n          _this.emit(\"thumbnail\", file, thumbnail);\n          if (callback != null) {\n            return callback();\n          }\n        };\n      })(this);\n      if (callback != null) {\n        img.onerror = callback;\n      }\n      return img.src = imageUrl;\n    };\n\n    Dropzone.prototype.processQueue = function() {\n      var i, parallelUploads, processingLength, queuedFiles;\n      parallelUploads = this.options.parallelUploads;\n      processingLength = this.getUploadingFiles().length;\n      i = processingLength;\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n      queuedFiles = this.getQueuedFiles();\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n      if (this.options.uploadMultiple) {\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          }\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    };\n\n    Dropzone.prototype.processFile = function(file) {\n      return this.processFiles([file]);\n    };\n\n    Dropzone.prototype.processFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.processing = true;\n        file.status = Dropzone.UPLOADING;\n        this.emit(\"processing\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n      return this.uploadFiles(files);\n    };\n\n    Dropzone.prototype._getFilesWithXhr = function(xhr) {\n      var file, files;\n      return files = (function() {\n        var _i, _len, _ref, _results;\n        _ref = this.files;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          if (file.xhr === xhr) {\n            _results.push(file);\n          }\n        }\n        return _results;\n      }).call(this);\n    };\n\n    Dropzone.prototype.cancelUpload = function(file) {\n      var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n      if (file.status === Dropzone.UPLOADING) {\n        groupedFiles = this._getFilesWithXhr(file.xhr);\n        for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n          groupedFile = groupedFiles[_i];\n          groupedFile.status = Dropzone.CANCELED;\n        }\n        file.xhr.abort();\n        for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n          groupedFile = groupedFiles[_j];\n          this.emit(\"canceled\", groupedFile);\n        }\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    resolveOption = function() {\n      var args, option;\n      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      if (typeof option === 'function') {\n        return option.apply(this, args);\n      }\n      return option;\n    };\n\n    Dropzone.prototype.uploadFile = function(file) {\n      return this.uploadFiles([file]);\n    };\n\n    Dropzone.prototype.uploadFiles = function(files) {\n      var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n      xhr = new XMLHttpRequest();\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.xhr = xhr;\n      }\n      method = resolveOption(this.options.method, files);\n      url = resolveOption(this.options.url, files);\n      xhr.open(method, url, true);\n      xhr.withCredentials = !!this.options.withCredentials;\n      response = null;\n      handleError = (function(_this) {\n        return function() {\n          var _j, _len1, _results;\n          _results = [];\n          for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n            file = files[_j];\n            _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n          }\n          return _results;\n        };\n      })(this);\n      updateProgress = (function(_this) {\n        return function(e) {\n          var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n          if (e != null) {\n            progress = 100 * e.loaded / e.total;\n            for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n              file = files[_j];\n              file.upload = {\n                progress: progress,\n                total: e.total,\n                bytesSent: e.loaded\n              };\n            }\n          } else {\n            allFilesFinished = true;\n            progress = 100;\n            for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n              file = files[_k];\n              if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n                allFilesFinished = false;\n              }\n              file.upload.progress = progress;\n              file.upload.bytesSent = file.upload.total;\n            }\n            if (allFilesFinished) {\n              return;\n            }\n          }\n          _results = [];\n          for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n            file = files[_l];\n            _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n          }\n          return _results;\n        };\n      })(this);\n      xhr.onload = (function(_this) {\n        return function(e) {\n          var _ref;\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          response = xhr.responseText;\n          if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n            try {\n              response = JSON.parse(response);\n            } catch (_error) {\n              e = _error;\n              response = \"Invalid JSON response from server.\";\n            }\n          }\n          updateProgress();\n          if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n            return handleError();\n          } else {\n            return _this._finished(files, response, e);\n          }\n        };\n      })(this);\n      xhr.onerror = (function(_this) {\n        return function() {\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          return handleError();\n        };\n      })(this);\n      progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n      progressObj.onprogress = updateProgress;\n      headers = {\n        \"Accept\": \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n      if (this.options.headers) {\n        extend(headers, this.options.headers);\n      }\n      for (headerName in headers) {\n        headerValue = headers[headerName];\n        xhr.setRequestHeader(headerName, headerValue);\n      }\n      formData = new FormData();\n      if (this.options.params) {\n        _ref1 = this.options.params;\n        for (key in _ref1) {\n          value = _ref1[key];\n          formData.append(key, value);\n        }\n      }\n      for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n        file = files[_j];\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n      if (this.element.tagName === \"FORM\") {\n        _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n          input = _ref2[_k];\n          inputName = input.getAttribute(\"name\");\n          inputType = input.getAttribute(\"type\");\n          if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n            _ref3 = input.options;\n            for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n              option = _ref3[_l];\n              if (option.selected) {\n                formData.append(inputName, option.value);\n              }\n            }\n          } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n            formData.append(inputName, input.value);\n          }\n        }\n      }\n      for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n        formData.append(this._getParamName(i), files[i], files[i].name);\n      }\n      return xhr.send(formData);\n    };\n\n    Dropzone.prototype._finished = function(files, responseText, e) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.SUCCESS;\n        this.emit(\"success\", file, responseText, e);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.ERROR;\n        this.emit(\"error\", file, message, xhr);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    return Dropzone;\n\n  })(Emitter);\n\n  Dropzone.version = \"4.0.1\";\n\n  Dropzone.options = {};\n\n  Dropzone.optionsForElement = function(element) {\n    if (element.getAttribute(\"id\")) {\n      return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n    } else {\n      return void 0;\n    }\n  };\n\n  Dropzone.instances = [];\n\n  Dropzone.forElement = function(element) {\n    if (typeof element === \"string\") {\n      element = document.querySelector(element);\n    }\n    if ((element != null ? element.dropzone : void 0) == null) {\n      throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n    }\n    return element.dropzone;\n  };\n\n  Dropzone.autoDiscover = true;\n\n  Dropzone.discover = function() {\n    var checkElements, dropzone, dropzones, _i, _len, _results;\n    if (document.querySelectorAll) {\n      dropzones = document.querySelectorAll(\".dropzone\");\n    } else {\n      dropzones = [];\n      checkElements = function(elements) {\n        var el, _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            _results.push(dropzones.push(el));\n          } else {\n            _results.push(void 0);\n          }\n        }\n        return _results;\n      };\n      checkElements(document.getElementsByTagName(\"div\"));\n      checkElements(document.getElementsByTagName(\"form\"));\n    }\n    _results = [];\n    for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n      dropzone = dropzones[_i];\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        _results.push(new Dropzone(dropzone));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  };\n\n  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n  Dropzone.isBrowserSupported = function() {\n    var capableBrowser, regex, _i, _len, _ref;\n    capableBrowser = true;\n    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n      if (!(\"classList\" in document.createElement(\"a\"))) {\n        capableBrowser = false;\n      } else {\n        _ref = Dropzone.blacklistedBrowsers;\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          regex = _ref[_i];\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      }\n    } else {\n      capableBrowser = false;\n    }\n    return capableBrowser;\n  };\n\n  without = function(list, rejectedItem) {\n    var item, _i, _len, _results;\n    _results = [];\n    for (_i = 0, _len = list.length; _i < _len; _i++) {\n      item = list[_i];\n      if (item !== rejectedItem) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  };\n\n  camelize = function(str) {\n    return str.replace(/[\\-_](\\w)/g, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  };\n\n  Dropzone.createElement = function(string) {\n    var div;\n    div = document.createElement(\"div\");\n    div.innerHTML = string;\n    return div.childNodes[0];\n  };\n\n  Dropzone.elementInside = function(element, container) {\n    if (element === container) {\n      return true;\n    }\n    while (element = element.parentNode) {\n      if (element === container) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  Dropzone.getElement = function(el, name) {\n    var element;\n    if (typeof el === \"string\") {\n      element = document.querySelector(el);\n    } else if (el.nodeType != null) {\n      element = el;\n    }\n    if (element == null) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n    }\n    return element;\n  };\n\n  Dropzone.getElements = function(els, name) {\n    var e, el, elements, _i, _j, _len, _len1, _ref;\n    if (els instanceof Array) {\n      elements = [];\n      try {\n        for (_i = 0, _len = els.length; _i < _len; _i++) {\n          el = els[_i];\n          elements.push(this.getElement(el, name));\n        }\n      } catch (_error) {\n        e = _error;\n        elements = null;\n      }\n    } else if (typeof els === \"string\") {\n      elements = [];\n      _ref = document.querySelectorAll(els);\n      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n        el = _ref[_j];\n        elements.push(el);\n      }\n    } else if (els.nodeType != null) {\n      elements = [els];\n    }\n    if (!((elements != null) && elements.length)) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n    }\n    return elements;\n  };\n\n  Dropzone.confirm = function(question, accepted, rejected) {\n    if (window.confirm(question)) {\n      return accepted();\n    } else if (rejected != null) {\n      return rejected();\n    }\n  };\n\n  Dropzone.isValidFile = function(file, acceptedFiles) {\n    var baseMimeType, mimeType, validType, _i, _len;\n    if (!acceptedFiles) {\n      return true;\n    }\n    acceptedFiles = acceptedFiles.split(\",\");\n    mimeType = file.type;\n    baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n    for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n      validType = acceptedFiles[_i];\n      validType = validType.trim();\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n    jQuery.fn.dropzone = function(options) {\n      return this.each(function() {\n        return new Dropzone(this, options);\n      });\n    };\n  }\n\n  if (typeof module !== \"undefined\" && module !== null) {\n    module.exports = Dropzone;\n  } else {\n    window.Dropzone = Dropzone;\n  }\n\n  Dropzone.ADDED = \"added\";\n\n  Dropzone.QUEUED = \"queued\";\n\n  Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n  Dropzone.UPLOADING = \"uploading\";\n\n  Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n  Dropzone.CANCELED = \"canceled\";\n\n  Dropzone.ERROR = \"error\";\n\n  Dropzone.SUCCESS = \"success\";\n\n\n  /*\n  \n  Bugfix for iOS 6 and 7\n  Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n  based on the work of https://github.com/stomita/ios-imagefile-megapixel\n   */\n\n  detectVerticalSquash = function(img) {\n    var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n    iw = img.naturalWidth;\n    ih = img.naturalHeight;\n    canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = ih;\n    ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    data = ctx.getImageData(0, 0, 1, ih).data;\n    sy = 0;\n    ey = ih;\n    py = ih;\n    while (py > sy) {\n      alpha = data[(py - 1) * 4 + 3];\n      if (alpha === 0) {\n        ey = py;\n      } else {\n        sy = py;\n      }\n      py = (ey + sy) >> 1;\n    }\n    ratio = py / ih;\n    if (ratio === 0) {\n      return 1;\n    } else {\n      return ratio;\n    }\n  };\n\n  drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n    var vertSquashRatio;\n    vertSquashRatio = detectVerticalSquash(img);\n    return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n  };\n\n\n  /*\n   * contentloaded.js\n   *\n   * Author: Diego Perini (diego.perini at gmail.com)\n   * Summary: cross-browser wrapper for DOMContentLoaded\n   * Updated: 20101020\n   * License: MIT\n   * Version: 1.2\n   *\n   * URL:\n   * http://javascript.nwbox.com/ContentLoaded/\n   * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n   */\n\n  contentLoaded = function(win, fn) {\n    var add, doc, done, init, poll, pre, rem, root, top;\n    done = false;\n    top = true;\n    doc = win.document;\n    root = doc.documentElement;\n    add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n    rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n    pre = (doc.addEventListener ? \"\" : \"on\");\n    init = function(e) {\n      if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n        return;\n      }\n      (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n      if (!done && (done = true)) {\n        return fn.call(win, e.type || e);\n      }\n    };\n    poll = function() {\n      var e;\n      try {\n        root.doScroll(\"left\");\n      } catch (_error) {\n        e = _error;\n        setTimeout(poll, 50);\n        return;\n      }\n      return init(\"poll\");\n    };\n    if (doc.readyState !== \"complete\") {\n      if (doc.createEventObject && root.doScroll) {\n        try {\n          top = !win.frameElement;\n        } catch (_error) {}\n        if (top) {\n          poll();\n        }\n      }\n      doc[add](pre + \"DOMContentLoaded\", init, false);\n      doc[add](pre + \"readystatechange\", init, false);\n      return win[add](pre + \"load\", init, false);\n    }\n  };\n\n  Dropzone._autoDiscoverFunction = function() {\n    if (Dropzone.autoDiscover) {\n      return Dropzone.discover();\n    }\n  };\n\n  contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/appversionUpload.js",
    "content": "$(function () {\n\t //上传文件\n\t $('#versionupload').fileupload({\n\t        dataType: 'json',\n\t        done: function (e, data) {\n\t         \n\t        \tif (data.result.status != \"200\") {\n\t        \t\talert(\"上传失败!\");\n\t        \t} else {\n\t                $.each(data.result.data, function (index, file) {\n\t                  $(\"#updateUrl\").attr(\"value\", file.urlDB); \n\t                  $(\"#prompt\").html(\"<font color='red'>上传成功</font></br>上传的文件地址:\"+file.url);\n\t              }); \n\t        \t}\n\t        },\n\t        \n\t        progressall: function (e, data) {\n\t\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t\t        $('#progress .bar').css(\n\t\t            'width',\n\t\t            progress + '%'\n\t\t        );\n\t   \t\t},\n\t\t\tdropZone: $('#dropzone')\n\t    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/jquery.fileupload.js",
    "content": "/*\n * jQuery File Upload Plugin 5.31\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/*jslint nomen: true, unparam: true, regexp: true */\n/*global define, window, document, File, Blob, FormData, location */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'jquery.ui.widget'\n        ], factory);\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // The FileReader API is not actually used, but works as feature detection,\n    // as e.g. Safari supports XHR file uploads via the FormData API,\n    // but not non-multipart XHR file uploads:\n    $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader);\n    $.support.xhrFormDataFileUpload = !!window.FormData;\n\n    // The fileupload widget listens for change events on file input fields defined\n    // via fileInput setting and paste or drop events of the given dropZone.\n    // In addition to the default jQuery Widget methods, the fileupload widget\n    // exposes the \"add\" and \"send\" methods, to add or directly send files using\n    // the fileupload API.\n    // By default, files added via file input selection, paste, drag & drop or\n    // \"add\" method are uploaded immediately, but it is possible to override\n    // the \"add\" callback option to queue file uploads.\n    $.widget('blueimp.fileupload', {\n\n        options: {\n            // The drop target element(s), by the default the complete document.\n            // Set to null to disable drag & drop support:\n            dropZone: $(document),\n            // The paste target element(s), by the default the complete document.\n            // Set to null to disable paste support:\n            pasteZone: $(document),\n            // The file input field(s), that are listened to for change events.\n            // If undefined, it is set to the file input fields inside\n            // of the widget element on plugin initialization.\n            // Set to null to disable the change listener.\n            fileInput: undefined,\n            // By default, the file input field is replaced with a clone after\n            // each input field change event. This is required for iframe transport\n            // queues and allows change events to be fired for the same file\n            // selection, but can be disabled by setting the following option to false:\n            replaceFileInput: true,\n            // The parameter name for the file form data (the request argument name).\n            // If undefined or empty, the name property of the file input field is\n            // used, or \"files[]\" if the file input name property is also empty,\n            // can be a string or an array of strings:\n            paramName: undefined,\n            // By default, each file of a selection is uploaded using an individual\n            // request for XHR type uploads. Set to false to upload file\n            // selections in one request each:\n            singleFileUploads: true,\n            // To limit the number of files uploaded with one XHR request,\n            // set the following option to an integer greater than 0:\n            limitMultiFileUploads: undefined,\n            // Set the following option to true to issue all file upload requests\n            // in a sequential order:\n            sequentialUploads: false,\n            // To limit the number of concurrent uploads,\n            // set the following option to an integer greater than 0:\n            limitConcurrentUploads: undefined,\n            // Set the following option to true to force iframe transport uploads:\n            forceIframeTransport: false,\n            // Set the following option to the location of a redirect url on the\n            // origin server, for cross-domain iframe transport uploads:\n            redirect: undefined,\n            // The parameter name for the redirect url, sent as part of the form\n            // data and set to 'redirect' if this option is empty:\n            redirectParamName: undefined,\n            // Set the following option to the location of a postMessage window,\n            // to enable postMessage transport uploads:\n            postMessage: undefined,\n            // By default, XHR file uploads are sent as multipart/form-data.\n            // The iframe transport is always using multipart/form-data.\n            // Set to false to enable non-multipart XHR uploads:\n            multipart: true,\n            // To upload large files in smaller chunks, set the following option\n            // to a preferred maximum chunk size. If set to 0, null or undefined,\n            // or the browser does not support the required Blob API, files will\n            // be uploaded as a whole.\n            maxChunkSize: undefined,\n            // When a non-multipart upload or a chunked multipart upload has been\n            // aborted, this option can be used to resume the upload by setting\n            // it to the size of the already uploaded bytes. This option is most\n            // useful when modifying the options object inside of the \"add\" or\n            // \"send\" callbacks, as the options are cloned for each file upload.\n            uploadedBytes: undefined,\n            // By default, failed (abort or error) file uploads are removed from the\n            // global progress calculation. Set the following option to false to\n            // prevent recalculating the global progress data:\n            recalculateProgress: true,\n            // Interval in milliseconds to calculate and trigger progress events:\n            progressInterval: 100,\n            // Interval in milliseconds to calculate progress bitrate:\n            bitrateInterval: 500,\n            // By default, uploads are started automatically when adding files:\n            autoUpload: true,\n\n            // Error and info messages:\n            messages: {\n                uploadedBytes: 'Uploaded bytes exceed file size'\n            },\n\n            // Translation function, gets the message key to be translated\n            // and an object with context specific data as arguments:\n            i18n: function (message, context) {\n                message = this.messages[message] || message.toString();\n                if (context) {\n                    $.each(context, function (key, value) {\n                        message = message.replace('{' + key + '}', value);\n                    });\n                }\n                return message;\n            },\n\n            // Additional form data to be sent along with the file uploads can be set\n            // using this option, which accepts an array of objects with name and\n            // value properties, a function returning such an array, a FormData\n            // object (for XHR file uploads), or a simple object.\n            // The form of the first fileInput is given as parameter to the function:\n            formData: function (form) {\n                return form.serializeArray();\n            },\n\n            // The add callback is invoked as soon as files are added to the fileupload\n            // widget (via file input selection, drag & drop, paste or add API call).\n            // If the singleFileUploads option is enabled, this callback will be\n            // called once for each file in the selection for XHR file uplaods, else\n            // once for each file selection.\n            // The upload starts when the submit method is invoked on the data parameter.\n            // The data object contains a files property holding the added files\n            // and allows to override plugin options as well as define ajax settings.\n            // Listeners for this callback can also be bound the following way:\n            // .bind('fileuploadadd', func);\n            // data.submit() returns a Promise object and allows to attach additional\n            // handlers using jQuery's Deferred callbacks:\n            // data.submit().done(func).fail(func).always(func);\n            add: function (e, data) {\n                if (data.autoUpload || (data.autoUpload !== false &&\n                        $(this).fileupload('option', 'autoUpload'))) {\n                    data.process().done(function () {\n                        data.submit();\n                    });\n                }\n            },\n\n            // Other callbacks:\n\n            // Callback for the submit event of each file upload:\n            // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n            // Callback for the start of each file upload request:\n            // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n            // Callback for successful uploads:\n            // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n            // Callback for failed (abort or error) uploads:\n            // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n            // Callback for completed (success, abort or error) requests:\n            // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n            // Callback for upload progress events:\n            // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n            // Callback for global upload progress events:\n            // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n            // Callback for uploads start, equivalent to the global ajaxStart event:\n            // start: function (e) {}, // .bind('fileuploadstart', func);\n\n            // Callback for uploads stop, equivalent to the global ajaxStop event:\n            // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n            // Callback for change events of the fileInput(s):\n            // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n            // Callback for paste events to the pasteZone(s):\n            // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n            // Callback for drop events of the dropZone(s):\n            // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n            // Callback for dragover events of the dropZone(s):\n            // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n            // Callback for the start of each chunk upload request:\n            // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n            // Callback for successful chunk uploads:\n            // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n            // Callback for failed (abort or error) chunk uploads:\n            // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n            // Callback for completed (success, abort or error) chunk upload requests:\n            // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n            // The plugin options are used as settings object for the ajax calls.\n            // The following are jQuery ajax settings required for the file uploads:\n            processData: false,\n            contentType: false,\n            cache: false\n        },\n\n        // A list of options that require reinitializing event listeners and/or\n        // special initialization code:\n        _specialOptions: [\n            'fileInput',\n            'dropZone',\n            'pasteZone',\n            'multipart',\n            'forceIframeTransport'\n        ],\n\n        _BitrateTimer: function () {\n            this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n            this.loaded = 0;\n            this.bitrate = 0;\n            this.getBitrate = function (now, loaded, interval) {\n                var timeDiff = now - this.timestamp;\n                if (!this.bitrate || !interval || timeDiff > interval) {\n                    this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n                    this.loaded = loaded;\n                    this.timestamp = now;\n                }\n                return this.bitrate;\n            };\n        },\n\n        _isXHRUpload: function (options) {\n            return !options.forceIframeTransport &&\n                ((!options.multipart && $.support.xhrFileUpload) ||\n                $.support.xhrFormDataFileUpload);\n        },\n\n        _getFormData: function (options) {\n            var formData;\n            if (typeof options.formData === 'function') {\n                return options.formData(options.form);\n            }\n            if ($.isArray(options.formData)) {\n                return options.formData;\n            }\n            if ($.type(options.formData) === 'object') {\n                formData = [];\n                $.each(options.formData, function (name, value) {\n                    formData.push({name: name, value: value});\n                });\n                return formData;\n            }\n            return [];\n        },\n\n        _getTotal: function (files) {\n            var total = 0;\n            $.each(files, function (index, file) {\n                total += file.size || 1;\n            });\n            return total;\n        },\n\n        _initProgressObject: function (obj) {\n            var progress = {\n                loaded: 0,\n                total: 0,\n                bitrate: 0\n            };\n            if (obj._progress) {\n                $.extend(obj._progress, progress);\n            } else {\n                obj._progress = progress;\n            }\n        },\n\n        _initResponseObject: function (obj) {\n            var prop;\n            if (obj._response) {\n                for (prop in obj._response) {\n                    if (obj._response.hasOwnProperty(prop)) {\n                        delete obj._response[prop];\n                    }\n                }\n            } else {\n                obj._response = {};\n            }\n        },\n\n        _onProgress: function (e, data) {\n            if (e.lengthComputable) {\n                var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n                    loaded;\n                if (data._time && data.progressInterval &&\n                        (now - data._time < data.progressInterval) &&\n                        e.loaded !== e.total) {\n                    return;\n                }\n                data._time = now;\n                loaded = Math.floor(\n                    e.loaded / e.total * (data.chunkSize || data._progress.total)\n                ) + (data.uploadedBytes || 0);\n                // Add the difference from the previously loaded state\n                // to the global loaded counter:\n                this._progress.loaded += (loaded - data._progress.loaded);\n                this._progress.bitrate = this._bitrateTimer.getBitrate(\n                    now,\n                    this._progress.loaded,\n                    data.bitrateInterval\n                );\n                data._progress.loaded = data.loaded = loaded;\n                data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n                    now,\n                    loaded,\n                    data.bitrateInterval\n                );\n                // Trigger a custom progress event with a total data property set\n                // to the file size(s) of the current upload and a loaded data\n                // property calculated accordingly:\n                this._trigger('progress', e, data);\n                // Trigger a global progress event for all current file uploads,\n                // including ajax calls queued for sequential file uploads:\n                this._trigger('progressall', e, this._progress);\n            }\n        },\n\n        _initProgressListener: function (options) {\n            var that = this,\n                xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n            // Accesss to the native XHR object is required to add event listeners\n            // for the upload progress event:\n            if (xhr.upload) {\n                $(xhr.upload).bind('progress', function (e) {\n                    var oe = e.originalEvent;\n                    // Make sure the progress event properties get copied over:\n                    e.lengthComputable = oe.lengthComputable;\n                    e.loaded = oe.loaded;\n                    e.total = oe.total;\n                    that._onProgress(e, options);\n                });\n                options.xhr = function () {\n                    return xhr;\n                };\n            }\n        },\n\n        _isInstanceOf: function (type, obj) {\n            // Cross-frame instanceof check\n            return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n        },\n\n        _initXHRData: function (options) {\n            var that = this,\n                formData,\n                file = options.files[0],\n                // Ignore non-multipart setting if not supported:\n                multipart = options.multipart || !$.support.xhrFileUpload,\n                paramName = options.paramName[0];\n            options.headers = options.headers || {};\n            if (options.contentRange) {\n                options.headers['Content-Range'] = options.contentRange;\n            }\n            if (!multipart) {\n                options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n                    encodeURI(file.name) + '\"';\n                options.contentType = file.type;\n                options.data = options.blob || file;\n            } else if ($.support.xhrFormDataFileUpload) {\n                if (options.postMessage) {\n                    // window.postMessage does not allow sending FormData\n                    // objects, so we just add the File/Blob objects to\n                    // the formData array and let the postMessage window\n                    // create the FormData object out of this array:\n                    formData = this._getFormData(options);\n                    if (options.blob) {\n                        formData.push({\n                            name: paramName,\n                            value: options.blob\n                        });\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            formData.push({\n                                name: options.paramName[index] || paramName,\n                                value: file\n                            });\n                        });\n                    }\n                } else {\n                    if (that._isInstanceOf('FormData', options.formData)) {\n                        formData = options.formData;\n                    } else {\n                        formData = new FormData();\n                        $.each(this._getFormData(options), function (index, field) {\n                            formData.append(field.name, field.value);\n                        });\n                    }\n                    if (options.blob) {\n                        options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n                            encodeURI(file.name) + '\"';\n                        formData.append(paramName, options.blob, file.name);\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            // This check allows the tests to run with\n                            // dummy objects:\n                            if (that._isInstanceOf('File', file) ||\n                                    that._isInstanceOf('Blob', file)) {\n                                formData.append(\n                                    options.paramName[index] || paramName,\n                                    file,\n                                    file.name\n                                );\n                            }\n                        });\n                    }\n                }\n                options.data = formData;\n            }\n            // Blob reference is not needed anymore, free memory:\n            options.blob = null;\n        },\n\n        _initIframeSettings: function (options) {\n            // Setting the dataType to iframe enables the iframe transport:\n            options.dataType = 'iframe ' + (options.dataType || '');\n            // The iframe transport accepts a serialized array as form data:\n            options.formData = this._getFormData(options);\n            // Add redirect url to form data on cross-domain uploads:\n            if (options.redirect && $('<a></a>').prop('href', options.url)\n                    .prop('host') !== location.host) {\n                options.formData.push({\n                    name: options.redirectParamName || 'redirect',\n                    value: options.redirect\n                });\n            }\n        },\n\n        _initDataSettings: function (options) {\n            if (this._isXHRUpload(options)) {\n                if (!this._chunkedUpload(options, true)) {\n                    if (!options.data) {\n                        this._initXHRData(options);\n                    }\n                    this._initProgressListener(options);\n                }\n                if (options.postMessage) {\n                    // Setting the dataType to postmessage enables the\n                    // postMessage transport:\n                    options.dataType = 'postmessage ' + (options.dataType || '');\n                }\n            } else {\n                this._initIframeSettings(options);\n            }\n        },\n\n        _getParamName: function (options) {\n            var fileInput = $(options.fileInput),\n                paramName = options.paramName;\n            if (!paramName) {\n                paramName = [];\n                fileInput.each(function () {\n                    var input = $(this),\n                        name = input.prop('name') || 'files[]',\n                        i = (input.prop('files') || [1]).length;\n                    while (i) {\n                        paramName.push(name);\n                        i -= 1;\n                    }\n                });\n                if (!paramName.length) {\n                    paramName = [fileInput.prop('name') || 'files[]'];\n                }\n            } else if (!$.isArray(paramName)) {\n                paramName = [paramName];\n            }\n            return paramName;\n        },\n\n        _initFormSettings: function (options) {\n            // Retrieve missing options from the input field and the\n            // associated form, if available:\n            if (!options.form || !options.form.length) {\n                options.form = $(options.fileInput.prop('form'));\n                // If the given file input doesn't have an associated form,\n                // use the default widget file input's form:\n                if (!options.form.length) {\n                    options.form = $(this.options.fileInput.prop('form'));\n                }\n            }\n            options.paramName = this._getParamName(options);\n            if (!options.url) {\n                options.url = options.form.prop('action') || location.href;\n            }\n            // The HTTP request method must be \"POST\" or \"PUT\":\n            options.type = (options.type || options.form.prop('method') || '')\n                .toUpperCase();\n            if (options.type !== 'POST' && options.type !== 'PUT' &&\n                    options.type !== 'PATCH') {\n                options.type = 'POST';\n            }\n            if (!options.formAcceptCharset) {\n                options.formAcceptCharset = options.form.attr('accept-charset');\n            }\n        },\n\n        _getAJAXSettings: function (data) {\n            var options = $.extend({}, this.options, data);\n            this._initFormSettings(options);\n            this._initDataSettings(options);\n            return options;\n        },\n\n        // jQuery 1.6 doesn't provide .state(),\n        // while jQuery 1.8+ removed .isRejected() and .isResolved():\n        _getDeferredState: function (deferred) {\n            if (deferred.state) {\n                return deferred.state();\n            }\n            if (deferred.isResolved()) {\n                return 'resolved';\n            }\n            if (deferred.isRejected()) {\n                return 'rejected';\n            }\n            return 'pending';\n        },\n\n        // Maps jqXHR callbacks to the equivalent\n        // methods of the given Promise object:\n        _enhancePromise: function (promise) {\n            promise.success = promise.done;\n            promise.error = promise.fail;\n            promise.complete = promise.always;\n            return promise;\n        },\n\n        // Creates and returns a Promise object enhanced with\n        // the jqXHR methods abort, success, error and complete:\n        _getXHRPromise: function (resolveOrReject, context, args) {\n            var dfd = $.Deferred(),\n                promise = dfd.promise();\n            context = context || this.options.context || promise;\n            if (resolveOrReject === true) {\n                dfd.resolveWith(context, args);\n            } else if (resolveOrReject === false) {\n                dfd.rejectWith(context, args);\n            }\n            promise.abort = dfd.promise;\n            return this._enhancePromise(promise);\n        },\n\n        // Adds convenience methods to the data callback argument:\n        _addConvenienceMethods: function (e, data) {\n            var that = this,\n                getPromise = function (data) {\n                    return $.Deferred().resolveWith(that, [data]).promise();\n                };\n            data.process = function (resolveFunc, rejectFunc) {\n                if (resolveFunc || rejectFunc) {\n                    data._processQueue = this._processQueue =\n                        (this._processQueue || getPromise(this))\n                            .pipe(resolveFunc, rejectFunc);\n                }\n                return this._processQueue || getPromise(this);\n            };\n            data.submit = function () {\n                if (this.state() !== 'pending') {\n                    data.jqXHR = this.jqXHR =\n                        (that._trigger('submit', e, this) !== false) &&\n                        that._onSend(e, this);\n                }\n                return this.jqXHR || that._getXHRPromise();\n            };\n            data.abort = function () {\n                if (this.jqXHR) {\n                    return this.jqXHR.abort();\n                }\n                return that._getXHRPromise();\n            };\n            data.state = function () {\n                if (this.jqXHR) {\n                    return that._getDeferredState(this.jqXHR);\n                }\n                if (this._processQueue) {\n                    return that._getDeferredState(this._processQueue);\n                }\n            };\n            data.progress = function () {\n                return this._progress;\n            };\n            data.response = function () {\n                return this._response;\n            };\n        },\n\n        // Parses the Range header from the server response\n        // and returns the uploaded bytes:\n        _getUploadedBytes: function (jqXHR) {\n            var range = jqXHR.getResponseHeader('Range'),\n                parts = range && range.split('-'),\n                upperBytesPos = parts && parts.length > 1 &&\n                    parseInt(parts[1], 10);\n            return upperBytesPos && upperBytesPos + 1;\n        },\n\n        // Uploads a file in multiple, sequential requests\n        // by splitting the file up in multiple blob chunks.\n        // If the second parameter is true, only tests if the file\n        // should be uploaded in chunks, but does not invoke any\n        // upload requests:\n        _chunkedUpload: function (options, testOnly) {\n            var that = this,\n                file = options.files[0],\n                fs = file.size,\n                ub = options.uploadedBytes = options.uploadedBytes || 0,\n                mcs = options.maxChunkSize || fs,\n                slice = file.slice || file.webkitSlice || file.mozSlice,\n                dfd = $.Deferred(),\n                promise = dfd.promise(),\n                jqXHR,\n                upload;\n            if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n                    options.data) {\n                return false;\n            }\n            if (testOnly) {\n                return true;\n            }\n            if (ub >= fs) {\n                file.error = options.i18n('uploadedBytes');\n                return this._getXHRPromise(\n                    false,\n                    options.context,\n                    [null, 'error', file.error]\n                );\n            }\n            // The chunk upload method:\n            upload = function () {\n                // Clone the options object for each chunk upload:\n                var o = $.extend({}, options),\n                    currentLoaded = o._progress.loaded;\n                o.blob = slice.call(\n                    file,\n                    ub,\n                    ub + mcs,\n                    file.type\n                );\n                // Store the current chunk size, as the blob itself\n                // will be dereferenced after data processing:\n                o.chunkSize = o.blob.size;\n                // Expose the chunk bytes position range:\n                o.contentRange = 'bytes ' + ub + '-' +\n                    (ub + o.chunkSize - 1) + '/' + fs;\n                // Process the upload data (the blob and potential form data):\n                that._initXHRData(o);\n                // Add progress listeners for this chunk upload:\n                that._initProgressListener(o);\n                jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n                        that._getXHRPromise(false, o.context))\n                    .done(function (result, textStatus, jqXHR) {\n                        ub = that._getUploadedBytes(jqXHR) ||\n                            (ub + o.chunkSize);\n                        // Create a progress event if no final progress event\n                        // with loaded equaling total has been triggered\n                        // for this chunk:\n                        if (o._progress.loaded === currentLoaded) {\n                            that._onProgress($.Event('progress', {\n                                lengthComputable: true,\n                                loaded: ub - o.uploadedBytes,\n                                total: ub - o.uploadedBytes\n                            }), o);\n                        }\n                        options.uploadedBytes = o.uploadedBytes = ub;\n                        o.result = result;\n                        o.textStatus = textStatus;\n                        o.jqXHR = jqXHR;\n                        that._trigger('chunkdone', null, o);\n                        that._trigger('chunkalways', null, o);\n                        if (ub < fs) {\n                            // File upload not yet complete,\n                            // continue with the next chunk:\n                            upload();\n                        } else {\n                            dfd.resolveWith(\n                                o.context,\n                                [result, textStatus, jqXHR]\n                            );\n                        }\n                    })\n                    .fail(function (jqXHR, textStatus, errorThrown) {\n                        o.jqXHR = jqXHR;\n                        o.textStatus = textStatus;\n                        o.errorThrown = errorThrown;\n                        that._trigger('chunkfail', null, o);\n                        that._trigger('chunkalways', null, o);\n                        dfd.rejectWith(\n                            o.context,\n                            [jqXHR, textStatus, errorThrown]\n                        );\n                    });\n            };\n            this._enhancePromise(promise);\n            promise.abort = function () {\n                return jqXHR.abort();\n            };\n            upload();\n            return promise;\n        },\n\n        _beforeSend: function (e, data) {\n            if (this._active === 0) {\n                // the start callback is triggered when an upload starts\n                // and no other uploads are currently running,\n                // equivalent to the global ajaxStart event:\n                this._trigger('start');\n                // Set timer for global bitrate progress calculation:\n                this._bitrateTimer = new this._BitrateTimer();\n                // Reset the global progress values:\n                this._progress.loaded = this._progress.total = 0;\n                this._progress.bitrate = 0;\n            }\n            // Make sure the container objects for the .response() and\n            // .progress() methods on the data object are available\n            // and reset to their initial state:\n            this._initResponseObject(data);\n            this._initProgressObject(data);\n            data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n            data._progress.total = data.total = this._getTotal(data.files) || 1;\n            data._progress.bitrate = data.bitrate = 0;\n            this._active += 1;\n            // Initialize the global progress values:\n            this._progress.loaded += data.loaded;\n            this._progress.total += data.total;\n        },\n\n        _onDone: function (result, textStatus, jqXHR, options) {\n            var total = options._progress.total,\n                response = options._response;\n            if (options._progress.loaded < total) {\n                // Create a progress event if no final progress event\n                // with loaded equaling total has been triggered:\n                this._onProgress($.Event('progress', {\n                    lengthComputable: true,\n                    loaded: total,\n                    total: total\n                }), options);\n            }\n            response.result = options.result = result;\n            response.textStatus = options.textStatus = textStatus;\n            response.jqXHR = options.jqXHR = jqXHR;\n            this._trigger('done', null, options);\n        },\n\n        _onFail: function (jqXHR, textStatus, errorThrown, options) {\n            var response = options._response;\n            if (options.recalculateProgress) {\n                // Remove the failed (error or abort) file upload from\n                // the global progress calculation:\n                this._progress.loaded -= options._progress.loaded;\n                this._progress.total -= options._progress.total;\n            }\n            response.jqXHR = options.jqXHR = jqXHR;\n            response.textStatus = options.textStatus = textStatus;\n            response.errorThrown = options.errorThrown = errorThrown;\n            this._trigger('fail', null, options);\n        },\n\n        _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n            // jqXHRorResult, textStatus and jqXHRorError are added to the\n            // options object via done and fail callbacks\n            this._trigger('always', null, options);\n        },\n\n        _onSend: function (e, data) {\n            if (!data.submit) {\n                this._addConvenienceMethods(e, data);\n            }\n            var that = this,\n                jqXHR,\n                aborted,\n                slot,\n                pipe,\n                options = that._getAJAXSettings(data),\n                send = function () {\n                    that._sending += 1;\n                    // Set timer for bitrate progress calculation:\n                    options._bitrateTimer = new that._BitrateTimer();\n                    jqXHR = jqXHR || (\n                        ((aborted || that._trigger('send', e, options) === false) &&\n                        that._getXHRPromise(false, options.context, aborted)) ||\n                        that._chunkedUpload(options) || $.ajax(options)\n                    ).done(function (result, textStatus, jqXHR) {\n                        that._onDone(result, textStatus, jqXHR, options);\n                    }).fail(function (jqXHR, textStatus, errorThrown) {\n                        that._onFail(jqXHR, textStatus, errorThrown, options);\n                    }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n                        that._onAlways(\n                            jqXHRorResult,\n                            textStatus,\n                            jqXHRorError,\n                            options\n                        );\n                        that._sending -= 1;\n                        that._active -= 1;\n                        if (options.limitConcurrentUploads &&\n                                options.limitConcurrentUploads > that._sending) {\n                            // Start the next queued upload,\n                            // that has not been aborted:\n                            var nextSlot = that._slots.shift();\n                            while (nextSlot) {\n                                if (that._getDeferredState(nextSlot) === 'pending') {\n                                    nextSlot.resolve();\n                                    break;\n                                }\n                                nextSlot = that._slots.shift();\n                            }\n                        }\n                        if (that._active === 0) {\n                            // The stop callback is triggered when all uploads have\n                            // been completed, equivalent to the global ajaxStop event:\n                            that._trigger('stop');\n                        }\n                    });\n                    return jqXHR;\n                };\n            this._beforeSend(e, options);\n            if (this.options.sequentialUploads ||\n                    (this.options.limitConcurrentUploads &&\n                    this.options.limitConcurrentUploads <= this._sending)) {\n                if (this.options.limitConcurrentUploads > 1) {\n                    slot = $.Deferred();\n                    this._slots.push(slot);\n                    pipe = slot.pipe(send);\n                } else {\n                    pipe = (this._sequence = this._sequence.pipe(send, send));\n                }\n                // Return the piped Promise object, enhanced with an abort method,\n                // which is delegated to the jqXHR object of the current upload,\n                // and jqXHR callbacks mapped to the equivalent Promise methods:\n                pipe.abort = function () {\n                    aborted = [undefined, 'abort', 'abort'];\n                    if (!jqXHR) {\n                        if (slot) {\n                            slot.rejectWith(options.context, aborted);\n                        }\n                        return send();\n                    }\n                    return jqXHR.abort();\n                };\n                return this._enhancePromise(pipe);\n            }\n            return send();\n        },\n\n        _onAdd: function (e, data) {\n            var that = this,\n                result = true,\n                options = $.extend({}, this.options, data),\n                limit = options.limitMultiFileUploads,\n                paramName = this._getParamName(options),\n                paramNameSet,\n                paramNameSlice,\n                fileSet,\n                i;\n            if (!(options.singleFileUploads || limit) ||\n                    !this._isXHRUpload(options)) {\n                fileSet = [data.files];\n                paramNameSet = [paramName];\n            } else if (!options.singleFileUploads && limit) {\n                fileSet = [];\n                paramNameSet = [];\n                for (i = 0; i < data.files.length; i += limit) {\n                    fileSet.push(data.files.slice(i, i + limit));\n                    paramNameSlice = paramName.slice(i, i + limit);\n                    if (!paramNameSlice.length) {\n                        paramNameSlice = paramName;\n                    }\n                    paramNameSet.push(paramNameSlice);\n                }\n            } else {\n                paramNameSet = paramName;\n            }\n            data.originalFiles = data.files;\n            $.each(fileSet || data.files, function (index, element) {\n                var newData = $.extend({}, data);\n                newData.files = fileSet ? element : [element];\n                newData.paramName = paramNameSet[index];\n                that._initResponseObject(newData);\n                that._initProgressObject(newData);\n                that._addConvenienceMethods(e, newData);\n                result = that._trigger('add', e, newData);\n                return result;\n            });\n            return result;\n        },\n\n        _replaceFileInput: function (input) {\n            var inputClone = input.clone(true);\n            $('<form></form>').append(inputClone)[0].reset();\n            // Detaching allows to insert the fileInput on another form\n            // without loosing the file input value:\n            input.after(inputClone).detach();\n            // Avoid memory leaks with the detached file input:\n            $.cleanData(input.unbind('remove'));\n            // Replace the original file input element in the fileInput\n            // elements set with the clone, which has been copied including\n            // event handlers:\n            this.options.fileInput = this.options.fileInput.map(function (i, el) {\n                if (el === input[0]) {\n                    return inputClone[0];\n                }\n                return el;\n            });\n            // If the widget has been initialized on the file input itself,\n            // override this.element with the file input clone:\n            if (input[0] === this.element[0]) {\n                this.element = inputClone;\n            }\n        },\n\n        _handleFileTreeEntry: function (entry, path) {\n            var that = this,\n                dfd = $.Deferred(),\n                errorHandler = function (e) {\n                    if (e && !e.entry) {\n                        e.entry = entry;\n                    }\n                    // Since $.when returns immediately if one\n                    // Deferred is rejected, we use resolve instead.\n                    // This allows valid files and invalid items\n                    // to be returned together in one set:\n                    dfd.resolve([e]);\n                },\n                dirReader;\n            path = path || '';\n            if (entry.isFile) {\n                if (entry._file) {\n                    // Workaround for Chrome bug #149735\n                    entry._file.relativePath = path;\n                    dfd.resolve(entry._file);\n                } else {\n                    entry.file(function (file) {\n                        file.relativePath = path;\n                        dfd.resolve(file);\n                    }, errorHandler);\n                }\n            } else if (entry.isDirectory) {\n                dirReader = entry.createReader();\n                dirReader.readEntries(function (entries) {\n                    that._handleFileTreeEntries(\n                        entries,\n                        path + entry.name + '/'\n                    ).done(function (files) {\n                        dfd.resolve(files);\n                    }).fail(errorHandler);\n                }, errorHandler);\n            } else {\n                // Return an empy list for file system items\n                // other than files or directories:\n                dfd.resolve([]);\n            }\n            return dfd.promise();\n        },\n\n        _handleFileTreeEntries: function (entries, path) {\n            var that = this;\n            return $.when.apply(\n                $,\n                $.map(entries, function (entry) {\n                    return that._handleFileTreeEntry(entry, path);\n                })\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _getDroppedFiles: function (dataTransfer) {\n            dataTransfer = dataTransfer || {};\n            var items = dataTransfer.items;\n            if (items && items.length && (items[0].webkitGetAsEntry ||\n                    items[0].getAsEntry)) {\n                return this._handleFileTreeEntries(\n                    $.map(items, function (item) {\n                        var entry;\n                        if (item.webkitGetAsEntry) {\n                            entry = item.webkitGetAsEntry();\n                            if (entry) {\n                                // Workaround for Chrome bug #149735:\n                                entry._file = item.getAsFile();\n                            }\n                            return entry;\n                        }\n                        return item.getAsEntry();\n                    })\n                );\n            }\n            return $.Deferred().resolve(\n                $.makeArray(dataTransfer.files)\n            ).promise();\n        },\n\n        _getSingleFileInputFiles: function (fileInput) {\n            fileInput = $(fileInput);\n            var entries = fileInput.prop('webkitEntries') ||\n                    fileInput.prop('entries'),\n                files,\n                value;\n            if (entries && entries.length) {\n                return this._handleFileTreeEntries(entries);\n            }\n            files = $.makeArray(fileInput.prop('files'));\n            if (!files.length) {\n                value = fileInput.prop('value');\n                if (!value) {\n                    return $.Deferred().resolve([]).promise();\n                }\n                // If the files property is not available, the browser does not\n                // support the File API and we add a pseudo File object with\n                // the input value as name with path information removed:\n                files = [{name: value.replace(/^.*\\\\/, '')}];\n            } else if (files[0].name === undefined && files[0].fileName) {\n                // File normalization for Safari 4 and Firefox 3:\n                $.each(files, function (index, file) {\n                    file.name = file.fileName;\n                    file.size = file.fileSize;\n                });\n            }\n            return $.Deferred().resolve(files).promise();\n        },\n\n        _getFileInputFiles: function (fileInput) {\n            if (!(fileInput instanceof $) || fileInput.length === 1) {\n                return this._getSingleFileInputFiles(fileInput);\n            }\n            return $.when.apply(\n                $,\n                $.map(fileInput, this._getSingleFileInputFiles)\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _onChange: function (e) {\n            var that = this,\n                data = {\n                    fileInput: $(e.target),\n                    form: $(e.target.form)\n                };\n            this._getFileInputFiles(data.fileInput).always(function (files) {\n                data.files = files;\n                if (that.options.replaceFileInput) {\n                    that._replaceFileInput(data.fileInput);\n                }\n                if (that._trigger('change', e, data) !== false) {\n                    that._onAdd(e, data);\n                }\n            });\n        },\n\n        _onPaste: function (e) {\n            var items = e.originalEvent && e.originalEvent.clipboardData &&\n                    e.originalEvent.clipboardData.items,\n                data = {files: []};\n            if (items && items.length) {\n                $.each(items, function (index, item) {\n                    var file = item.getAsFile && item.getAsFile();\n                    if (file) {\n                        data.files.push(file);\n                    }\n                });\n                if (this._trigger('paste', e, data) === false ||\n                        this._onAdd(e, data) === false) {\n                    return false;\n                }\n            }\n        },\n\n        _onDrop: function (e) {\n            var that = this,\n                dataTransfer = e.dataTransfer = e.originalEvent &&\n                    e.originalEvent.dataTransfer,\n                data = {};\n            if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n                e.preventDefault();\n                this._getDroppedFiles(dataTransfer).always(function (files) {\n                    data.files = files;\n                    if (that._trigger('drop', e, data) !== false) {\n                        that._onAdd(e, data);\n                    }\n                });\n            }\n        },\n\n        _onDragOver: function (e) {\n            var dataTransfer = e.dataTransfer = e.originalEvent &&\n                e.originalEvent.dataTransfer;\n            if (dataTransfer) {\n                if (this._trigger('dragover', e) === false) {\n                    return false;\n                }\n                if ($.inArray('Files', dataTransfer.types) !== -1) {\n                    dataTransfer.dropEffect = 'copy';\n                    e.preventDefault();\n                }\n            }\n        },\n\n        _initEventHandlers: function () {\n            if (this._isXHRUpload(this.options)) {\n                this._on(this.options.dropZone, {\n                    dragover: this._onDragOver,\n                    drop: this._onDrop\n                });\n                this._on(this.options.pasteZone, {\n                    paste: this._onPaste\n                });\n            }\n            this._on(this.options.fileInput, {\n                change: this._onChange\n            });\n        },\n\n        _destroyEventHandlers: function () {\n            this._off(this.options.dropZone, 'dragover drop');\n            this._off(this.options.pasteZone, 'paste');\n            this._off(this.options.fileInput, 'change');\n        },\n\n        _setOption: function (key, value) {\n            var reinit = $.inArray(key, this._specialOptions) !== -1;\n            if (reinit) {\n                this._destroyEventHandlers();\n            }\n            this._super(key, value);\n            if (reinit) {\n                this._initSpecialOptions();\n                this._initEventHandlers();\n            }\n        },\n\n        _initSpecialOptions: function () {\n            var options = this.options;\n            if (options.fileInput === undefined) {\n                options.fileInput = this.element.is('input[type=\"file\"]') ?\n                        this.element : this.element.find('input[type=\"file\"]');\n            } else if (!(options.fileInput instanceof $)) {\n                options.fileInput = $(options.fileInput);\n            }\n            if (!(options.dropZone instanceof $)) {\n                options.dropZone = $(options.dropZone);\n            }\n            if (!(options.pasteZone instanceof $)) {\n                options.pasteZone = $(options.pasteZone);\n            }\n        },\n\n        _getRegExp: function (str) {\n            var parts = str.split('/'),\n                modifiers = parts.pop();\n            parts.shift();\n            return new RegExp(parts.join('/'), modifiers);\n        },\n\n        _isRegExpOption: function (key, value) {\n            return key !== 'url' && $.type(value) === 'string' &&\n                /^\\/.*\\/[igm]{0,3}$/.test(value);\n        },\n\n        _initDataAttributes: function () {\n            var that = this,\n                options = this.options;\n            // Initialize options set via HTML5 data-attributes:\n            $.each(\n                $(this.element[0].cloneNode(false)).data(),\n                function (key, value) {\n                    if (that._isRegExpOption(key, value)) {\n                        value = that._getRegExp(value);\n                    }\n                    options[key] = value;\n                }\n            );\n        },\n\n        _create: function () {\n            this._initDataAttributes();\n            this._initSpecialOptions();\n            this._slots = [];\n            this._sequence = this._getXHRPromise(true);\n            this._sending = this._active = 0;\n            this._initProgressObject(this);\n            this._initEventHandlers();\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the number of active uploads:\n        active: function () {\n            return this._active;\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the widget upload progress.\n        // It returns an object with loaded, total and bitrate properties\n        // for the running uploads:\n        progress: function () {\n            return this._progress;\n        },\n\n        // This method is exposed to the widget API and allows adding files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files property and can contain additional options:\n        // .fileupload('add', {files: filesList});\n        add: function (data) {\n            var that = this;\n            if (!data || this.options.disabled) {\n                return;\n            }\n            if (data.fileInput && !data.files) {\n                this._getFileInputFiles(data.fileInput).always(function (files) {\n                    data.files = files;\n                    that._onAdd(null, data);\n                });\n            } else {\n                data.files = $.makeArray(data.files);\n                this._onAdd(null, data);\n            }\n        },\n\n        // This method is exposed to the widget API and allows sending files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files or fileInput property and can contain additional options:\n        // .fileupload('send', {files: filesList});\n        // The method returns a Promise object for the file upload call.\n        send: function (data) {\n            if (data && !this.options.disabled) {\n                if (data.fileInput && !data.files) {\n                    var that = this,\n                        dfd = $.Deferred(),\n                        promise = dfd.promise(),\n                        jqXHR,\n                        aborted;\n                    promise.abort = function () {\n                        aborted = true;\n                        if (jqXHR) {\n                            return jqXHR.abort();\n                        }\n                        dfd.reject(null, 'abort', 'abort');\n                        return promise;\n                    };\n                    this._getFileInputFiles(data.fileInput).always(\n                        function (files) {\n                            if (aborted) {\n                                return;\n                            }\n                            data.files = files;\n                            jqXHR = that._onSend(null, data).then(\n                                function (result, textStatus, jqXHR) {\n                                    dfd.resolve(result, textStatus, jqXHR);\n                                },\n                                function (jqXHR, textStatus, errorThrown) {\n                                    dfd.reject(jqXHR, textStatus, errorThrown);\n                                }\n                            );\n                        }\n                    );\n                    return this._enhancePromise(promise);\n                }\n                data.files = $.makeArray(data.files);\n                if (data.files.length) {\n                    return this._onSend(null, data);\n                }\n            }\n            return this._getXHRPromise(false, data && data.context);\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/jquery.iframe-transport.js",
    "content": "/*\n * jQuery Iframe Transport Plugin 1.6.1\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/*jslint unparam: true, nomen: true */\n/*global define, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // Helper variable to create unique names for the transport iframes:\n    var counter = 0;\n\n    // The iframe transport accepts three additional options:\n    // options.fileInput: a jQuery collection of file input fields\n    // options.paramName: the parameter name for the file form data,\n    //  overrides the name property of the file input field(s),\n    //  can be a string or an array of strings.\n    // options.formData: an array of objects with name and value properties,\n    //  equivalent to the return data of .serializeArray(), e.g.:\n    //  [{name: 'a', value: 1}, {name: 'b', value: 2}]\n    $.ajaxTransport('iframe', function (options) {\n        if (options.async) {\n            var form,\n                iframe,\n                addParamChar;\n            return {\n                send: function (_, completeCallback) {\n                    form = $('<form style=\"display:none;\"></form>');\n                    form.attr('accept-charset', options.formAcceptCharset);\n                    addParamChar = /\\?/.test(options.url) ? '&' : '?';\n                    // XDomainRequest only supports GET and POST:\n                    if (options.type === 'DELETE') {\n                        options.url = options.url + addParamChar + '_method=DELETE';\n                        options.type = 'POST';\n                    } else if (options.type === 'PUT') {\n                        options.url = options.url + addParamChar + '_method=PUT';\n                        options.type = 'POST';\n                    } else if (options.type === 'PATCH') {\n                        options.url = options.url + addParamChar + '_method=PATCH';\n                        options.type = 'POST';\n                    }\n                    // javascript:false as initial iframe src\n                    // prevents warning popups on HTTPS in IE6.\n                    // IE versions below IE8 cannot set the name property of\n                    // elements that have already been added to the DOM,\n                    // so we set the name along with the iframe HTML markup:\n                    iframe = $(\n                        '<iframe src=\"javascript:false;\" name=\"iframe-transport-' +\n                            (counter += 1) + '\"></iframe>'\n                    ).bind('load', function () {\n                        var fileInputClones,\n                            paramNames = $.isArray(options.paramName) ?\n                                    options.paramName : [options.paramName];\n                        iframe\n                            .unbind('load')\n                            .bind('load', function () {\n                                var response;\n                                // Wrap in a try/catch block to catch exceptions thrown\n                                // when trying to access cross-domain iframe contents:\n                                try {\n                                    response = iframe.contents();\n                                    // Google Chrome and Firefox do not throw an\n                                    // exception when calling iframe.contents() on\n                                    // cross-domain requests, so we unify the response:\n                                    if (!response.length || !response[0].firstChild) {\n                                        throw new Error();\n                                    }\n                                } catch (e) {\n                                    response = undefined;\n                                }\n                                // The complete callback returns the\n                                // iframe content document as response object:\n                                completeCallback(\n                                    200,\n                                    'success',\n                                    {'iframe': response}\n                                );\n                                // Fix for IE endless progress bar activity bug\n                                // (happens on form submits to iframe targets):\n                                $('<iframe src=\"javascript:false;\"></iframe>')\n                                    .appendTo(form);\n                                form.remove();\n                            });\n                        form\n                            .prop('target', iframe.prop('name'))\n                            .prop('action', options.url)\n                            .prop('method', options.type);\n                        if (options.formData) {\n                            $.each(options.formData, function (index, field) {\n                                $('<input type=\"hidden\"/>')\n                                    .prop('name', field.name)\n                                    .val(field.value)\n                                    .appendTo(form);\n                            });\n                        }\n                        if (options.fileInput && options.fileInput.length &&\n                                options.type === 'POST') {\n                            fileInputClones = options.fileInput.clone();\n                            // Insert a clone for each file input field:\n                            options.fileInput.after(function (index) {\n                                return fileInputClones[index];\n                            });\n                            if (options.paramName) {\n                                options.fileInput.each(function (index) {\n                                    $(this).prop(\n                                        'name',\n                                        paramNames[index] || options.paramName\n                                    );\n                                });\n                            }\n                            // Appending the file input fields to the hidden form\n                            // removes them from their original location:\n                            form\n                                .append(options.fileInput)\n                                .prop('enctype', 'multipart/form-data')\n                                // enctype must be set as encoding for IE:\n                                .prop('encoding', 'multipart/form-data');\n                        }\n                        form.submit();\n                        // Insert the file input fields at their original location\n                        // by replacing the clones with the originals:\n                        if (fileInputClones && fileInputClones.length) {\n                            options.fileInput.each(function (index, input) {\n                                var clone = $(fileInputClones[index]);\n                                $(input).prop('name', clone.prop('name'));\n                                clone.replaceWith(input);\n                            });\n                        }\n                    });\n                    form.append(iframe).appendTo(document.body);\n                },\n                abort: function () {\n                    if (iframe) {\n                        // javascript:false as iframe src aborts the request\n                        // and prevents warning popups on HTTPS in IE6.\n                        // concat is used to avoid the \"Script URL\" JSLint error:\n                        iframe\n                            .unbind('load')\n                            .prop('src', 'javascript'.concat(':false;'));\n                    }\n                    if (form) {\n                        form.remove();\n                    }\n                }\n            };\n        }\n    });\n\n    // The iframe transport returns the iframe content document as response.\n    // The following adds converters from iframe to text, json, html, and script:\n    $.ajaxSetup({\n        converters: {\n            'iframe text': function (iframe) {\n                return iframe && $(iframe[0].body).text();\n            },\n            'iframe json': function (iframe) {\n                return iframe && $.parseJSON($(iframe[0].body).text());\n            },\n            'iframe html': function (iframe) {\n                return iframe && $(iframe[0].body).html();\n            },\n            'iframe script': function (iframe) {\n                return iframe && $.globalEval($(iframe[0].body).text());\n            }\n        }\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/myuploadfunction.js",
    "content": "$(function () {\n    $('#fileupload').fileupload({\n        dataType: 'json',\n        \n        done: function (e, data) {\n        \tconsole.log(data);  \n        \t$(\"tr:has(td)\").remove();\n            $.each(data.result.data, function (index, file) {\n            \t\n//                $(\"#uploaded-files\").append(\n//                \t\t$('<tr/>')\n//                \t\t.append($('<td/>').html(\"<img src='\" + file.url + \"' width='80' hight='80'></img>\"))\n//                \t\t.append($('<td/>').text(file.fileSize))\n//                \t\t.append($('<td/>').text(file.fileType))\n//                \t\t.append($('<td/>').html(\"<a href='rest/controller/get/\"+index+\"'>Click</a>\"))\n//                \t\t);\n                \t\t\n                $(\"#lee\").append(\"<a href='\" + file.url + \"'><img src='\" + file.url + \"' width='80' hight='80'></img></a>\");\n                $(\"#lee\").append(\"<a href='\" + file.smallUrl + \"'><img src='\" + file.smallUrl + \"' width='80' hight='80'></img></a>\");\n            }); \n        },\n        \n        progressall: function (e, data) {\n\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t        $('#progress .bar').css(\n\t            'width',\n\t            progress + '%'\n\t        );\n   \t\t},\n   \t\t\n\t\tdropZone: $('#dropzone')\n    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/spPdcAppversionUpload.js",
    "content": "$(function () {\n\t //上传文件\n\t $('#sppdc_versionupload').fileupload({\n\t        dataType: 'json',\n\t        done: function (e, data) {\n\t         \n\t        \tif (data.result.status != \"200\") {\n\t        \t\talert(\"上传失败!\");\n\t        \t} else {\n\t                $.each(data.result.data, function (index, file) {\n\t                  $(\"#updateUrl\").attr(\"value\", file.urlDB); \n\t                  $(\"#prompt\").html(\"<font color='red'>上传成功</font></br>上传的文件地址:\"+file.url);\n\t              }); \n\t        \t}\n\t        },\n\t        \n\t        progressall: function (e, data) {\n\t\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t\t        $('#progress .bar').css(\n\t\t            'width',\n\t\t            progress + '%'\n\t\t        );\n\t   \t\t},\n\t\t\tdropZone: $('#dropzone')\n\t    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/spTransAppversionUpload.js",
    "content": "$(function () {\n\t //上传文件\n\t $('#sptrans_versionupload').fileupload({\n\t        dataType: 'json',\n\t        done: function (e, data) {\n\t         \n\t        \tif (data.result.status != \"200\") {\n\t        \t\talert(\"上传失败!\");\n\t        \t} else {\n\t                $.each(data.result.data, function (index, file) {\n\t                  $(\"#updateUrl\").attr(\"value\", file.urlDB); \n\t                  $(\"#prompt\").html(\"<font color='red'>上传成功</font></br>上传的文件地址:\"+file.url);\n\t              }); \n\t        \t}\n\t        },\n\t        \n\t        progressall: function (e, data) {\n\t\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t\t        $('#progress .bar').css(\n\t\t            'width',\n\t\t            progress + '%'\n\t\t        );\n\t   \t\t},\n\t\t\tdropZone: $('#dropzone')\n\t    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/uploader-idcardImageNegative.js",
    "content": "$(function () {\n    $('#idcardImageNegativeUpload').fileupload({\n        dataType: 'json',\n        done: function (e, data) {\n        \tconsole.log(data);  \n        \t\n        \tif (data.result.status != \"200\") {\n        \t\talert(data.result.msg);\n        \t} else {\n                $.each(data.result.data, function (index, file) {\n                  $(\"#idcardImageNegativeContent\").html(\"<a href='\" + file.url + \"' target='_blank'><img src='\" + file.url + \"' width='120'></img></a>\");\n                  $(\"#idcardImageNegative\").attr(\"value\", file.urlDB);\n              }); \n        \t}\n        }//,\n        \n//        progressall: function (e, data) {\n//\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n//\t        $('#progress .bar').css(\n//\t            'width',\n//\t            progress + '%'\n//\t        );\n//   \t\t},\n   \t\t\n//\t\tdropZone: $('#dropzone')\n    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/uploader-idcardImagePositive.js",
    "content": "$(function () {\n    $('#idcardImagePositiveFileUpload').fileupload({\n        dataType: 'json',\n        done: function (e, data) {\n        \tconsole.log(data);  \n        \t\n        \tif (data.result.status != \"200\") {\n        \t\talert(data.result.msg);\n        \t} else {\n                $.each(data.result.data, function (index, file) {\n                  $(\"#idcardImagePositiveContent\").html(\"<a href='\" + file.url + \"' target='_blank'><img src='\" + file.url + \"' width='120'></img></a>\");\n                  $(\"#idcardImagePositive\").attr(\"value\", file.urlDB);\n              }); \n        \t}\n        },\n        \n        change: function (e, data) {\n        \tvar size = data.files[0].size;\n        \n    \t\tif((size / 1024 / 1024) > 2) {\n\t\t\t\tSweetAlert.error(\"图片大小不能超过2M...\");\n\t\t\t\treturn false;\n\t\t\t}\n   \t\t}\n        \n//        progressall: function (e, data) {\n//\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n//\t        $('#progress .bar').css(\n//\t            'width',\n//\t            progress + '%'\n//\t        );\n//   \t\t},\n   \t\t\n//\t\tdropZone: $('#dropzone')\n    });\n    \n//    $('#idcardImagePositiveFileUpload').on('change', function() {\n//\t\t\n//\t    var filepath = $(this).val();\n//\t\tif(filepath==\"\"){\n//\t\t\treturn false;\n//\t\t}\n//\t\tvar extStart = filepath.lastIndexOf(\".\");\n//\t\tvar ext = filepath.substring(extStart, filepath.length).toUpperCase();\n//\t\tif(ext != \".PNG\" && ext != \".GIF\" && ext != \".JPG\" && ext != \".JPEG\") {\n//\t\t\tSweetAlert.error(\"图片限于png,gif,jpeg,jpg格式...\");\n//\t\t\treturn false;\n//\t\t} \n//\t\t\n//\t\tif(($(\"#upload-file\").get(0).files[0].size / 1024 / 1024) > 2) {\n//\t\t\tSweetAlert.error(\"图片大小不能超过2M...\");\n//\t\t\treturn false;\n//\t\t}\n//    \n//\t\tif(($(\"#idcardImagePositiveFileUpload\").get(0).files[0].size / 1024 / 1024) > 2) {\n//\t\t\tSweetAlert.error(\"图片大小不能超过2M...\");\n//\t\t\treturn false;\n//\t\t}\n//\t});\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/file-uploader/js/vendor/jquery.ui.widget.js",
    "content": "/*\n * jQuery UI Widget 1.10.1+amd\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/jQuery.widget/\n */\n\n(function (factory) {\n    if (typeof define === \"function\" && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\"jquery\"], factory);\n    } else {\n        // Browser globals:\n        factory(jQuery);\n    }\n}(function( $, undefined ) {\n\nvar uuid = 0,\n\tslice = Array.prototype.slice,\n\t_cleanData = $.cleanData;\n$.cleanData = function( elems ) {\n\tfor ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {\n\t\ttry {\n\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t// http://bugs.jquery.com/ticket/8235\n\t\t} catch( e ) {}\n\t}\n\t_cleanData( elems );\n};\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n};\n\n$.widget.extend = function( target ) {\n\tvar input = slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\t// allow multiple hashes to be passed on init\n\t\toptions = !isMethodCall && args.length ?\n\t\t\t$.widget.extend.apply( null, [ options ].concat(args) ) :\n\t\t\toptions;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} )._init();\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t// 1.9 BC for #7810\n\t\t\t// TODO remove dual storage\n\t\t\t.removeData( this.widgetName )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( value === undefined ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( value === undefined ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled ui-state-disabled\", !!value )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOption( \"disabled\", false );\n\t},\n\tdisable: function() {\n\t\treturn this._setOption( \"disabled\", true );\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\t// accept selectors, DOM elements\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^(\\w+)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) + this.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.colorhelpers.js",
    "content": "/* Plugin for jQuery for working with colors.\n * \n * Version 1.1.\n * \n * Inspiration from jQuery color animation plugin by John Resig.\n *\n * Released under the MIT license by Ole Laursen, October 2009.\n *\n * Examples:\n *\n *   $.color.parse(\"#fff\").scale('rgb', 0.25).add('a', -0.5).toString()\n *   var c = $.color.extract($(\"#mydiv\"), 'background-color');\n *   console.log(c.r, c.g, c.b, c.a);\n *   $.color.make(100, 50, 25, 0.4).toString() // returns \"rgba(100,50,25,0.4)\"\n *\n * Note that .scale() and .add() return the same modified object\n * instead of making a new one.\n *\n * V. 1.1: Fix error handling so e.g. parsing an empty string does\n * produce a color rather than just crashing.\n */ \n\n(function($) {\n    $.color = {};\n\n    // construct color object with some convenient chainable helpers\n    $.color.make = function (r, g, b, a) {\n        var o = {};\n        o.r = r || 0;\n        o.g = g || 0;\n        o.b = b || 0;\n        o.a = a != null ? a : 1;\n\n        o.add = function (c, d) {\n            for (var i = 0; i < c.length; ++i)\n                o[c.charAt(i)] += d;\n            return o.normalize();\n        };\n        \n        o.scale = function (c, f) {\n            for (var i = 0; i < c.length; ++i)\n                o[c.charAt(i)] *= f;\n            return o.normalize();\n        };\n        \n        o.toString = function () {\n            if (o.a >= 1.0) {\n                return \"rgb(\"+[o.r, o.g, o.b].join(\",\")+\")\";\n            } else {\n                return \"rgba(\"+[o.r, o.g, o.b, o.a].join(\",\")+\")\";\n            }\n        };\n\n        o.normalize = function () {\n            function clamp(min, value, max) {\n                return value < min ? min: (value > max ? max: value);\n            }\n            \n            o.r = clamp(0, parseInt(o.r), 255);\n            o.g = clamp(0, parseInt(o.g), 255);\n            o.b = clamp(0, parseInt(o.b), 255);\n            o.a = clamp(0, o.a, 1);\n            return o;\n        };\n\n        o.clone = function () {\n            return $.color.make(o.r, o.b, o.g, o.a);\n        };\n\n        return o.normalize();\n    }\n\n    // extract CSS color property from element, going up in the DOM\n    // if it's \"transparent\"\n    $.color.extract = function (elem, css) {\n        var c;\n\n        do {\n            c = elem.css(css).toLowerCase();\n            // keep going until we find an element that has color, or\n            // we hit the body or root (have no parent)\n            if (c != '' && c != 'transparent')\n                break;\n            elem = elem.parent();\n        } while (elem.length && !$.nodeName(elem.get(0), \"body\"));\n\n        // catch Safari's way of signalling transparent\n        if (c == \"rgba(0, 0, 0, 0)\")\n            c = \"transparent\";\n        \n        return $.color.parse(c);\n    }\n    \n    // parse CSS color string (like \"rgb(10, 32, 43)\" or \"#fff\"),\n    // returns color object, if parsing failed, you get black (0, 0,\n    // 0) out\n    $.color.parse = function (str) {\n        var res, m = $.color.make;\n\n        // Look for rgb(num,num,num)\n        if (res = /rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(str))\n            return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10));\n        \n        // Look for rgba(num,num,num,num)\n        if (res = /rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))\n            return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4]));\n            \n        // Look for rgb(num%,num%,num%)\n        if (res = /rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(str))\n            return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55);\n\n        // Look for rgba(num%,num%,num%,num)\n        if (res = /rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))\n            return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55, parseFloat(res[4]));\n        \n        // Look for #a0b1c2\n        if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))\n            return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16));\n\n        // Look for #fff\n        if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))\n            return m(parseInt(res[1]+res[1], 16), parseInt(res[2]+res[2], 16), parseInt(res[3]+res[3], 16));\n\n        // Otherwise, we're most likely dealing with a named color\n        var name = $.trim(str).toLowerCase();\n        if (name == \"transparent\")\n            return m(255, 255, 255, 0);\n        else {\n            // default to black\n            res = lookupColors[name] || [0, 0, 0];\n            return m(res[0], res[1], res[2]);\n        }\n    }\n    \n    var lookupColors = {\n        aqua:[0,255,255],\n        azure:[240,255,255],\n        beige:[245,245,220],\n        black:[0,0,0],\n        blue:[0,0,255],\n        brown:[165,42,42],\n        cyan:[0,255,255],\n        darkblue:[0,0,139],\n        darkcyan:[0,139,139],\n        darkgrey:[169,169,169],\n        darkgreen:[0,100,0],\n        darkkhaki:[189,183,107],\n        darkmagenta:[139,0,139],\n        darkolivegreen:[85,107,47],\n        darkorange:[255,140,0],\n        darkorchid:[153,50,204],\n        darkred:[139,0,0],\n        darksalmon:[233,150,122],\n        darkviolet:[148,0,211],\n        fuchsia:[255,0,255],\n        gold:[255,215,0],\n        green:[0,128,0],\n        indigo:[75,0,130],\n        khaki:[240,230,140],\n        lightblue:[173,216,230],\n        lightcyan:[224,255,255],\n        lightgreen:[144,238,144],\n        lightgrey:[211,211,211],\n        lightpink:[255,182,193],\n        lightyellow:[255,255,224],\n        lime:[0,255,0],\n        magenta:[255,0,255],\n        maroon:[128,0,0],\n        navy:[0,0,128],\n        olive:[128,128,0],\n        orange:[255,165,0],\n        pink:[255,192,203],\n        purple:[128,0,128],\n        violet:[128,0,128],\n        red:[255,0,0],\n        silver:[192,192,192],\n        white:[255,255,255],\n        yellow:[255,255,0]\n    };\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.axislabels.js",
    "content": "/*\nAxis Labels Plugin for flot.\nhttp://github.com/markrcote/flot-axislabels\nOriginal code is Copyright (c) 2010 Xuan Luo.\nOriginal code was released under the GPLv3 license by Xuan Luo, September 2010.\nOriginal code was rereleased under the MIT license by Xuan Luo, April 2012.\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n(function ($) {\n    var options = {\n      axisLabels: {\n        show: true\n      }\n    };\n\n    function canvasSupported() {\n        return !!document.createElement('canvas').getContext;\n    }\n\n    function canvasTextSupported() {\n        if (!canvasSupported()) {\n            return false;\n        }\n        var dummy_canvas = document.createElement('canvas');\n        var context = dummy_canvas.getContext('2d');\n        return typeof context.fillText == 'function';\n    }\n\n    function css3TransitionSupported() {\n        var div = document.createElement('div');\n        return typeof div.style.MozTransition != 'undefined'    // Gecko\n            || typeof div.style.OTransition != 'undefined'      // Opera\n            || typeof div.style.webkitTransition != 'undefined' // WebKit\n            || typeof div.style.transition != 'undefined';\n    }\n\n\n    function AxisLabel(axisName, position, padding, plot, opts) {\n        this.axisName = axisName;\n        this.position = position;\n        this.padding = padding;\n        this.plot = plot;\n        this.opts = opts;\n        this.width = 0;\n        this.height = 0;\n    }\n\n    AxisLabel.prototype.cleanup = function() {\n    };\n\n\n    CanvasAxisLabel.prototype = new AxisLabel();\n    CanvasAxisLabel.prototype.constructor = CanvasAxisLabel;\n    function CanvasAxisLabel(axisName, position, padding, plot, opts) {\n        AxisLabel.prototype.constructor.call(this, axisName, position, padding,\n                                             plot, opts);\n    }\n\n    CanvasAxisLabel.prototype.calculateSize = function() {\n        if (!this.opts.axisLabelFontSizePixels)\n            this.opts.axisLabelFontSizePixels = 14;\n        if (!this.opts.axisLabelFontFamily)\n            this.opts.axisLabelFontFamily = 'sans-serif';\n\n        var textWidth = this.opts.axisLabelFontSizePixels + this.padding;\n        var textHeight = this.opts.axisLabelFontSizePixels + this.padding;\n        if (this.position == 'left' || this.position == 'right') {\n            this.width = this.opts.axisLabelFontSizePixels + this.padding;\n            this.height = 0;\n        } else {\n            this.width = 0;\n            this.height = this.opts.axisLabelFontSizePixels + this.padding;\n        }\n    };\n\n    CanvasAxisLabel.prototype.draw = function(box) {\n        if (!this.opts.axisLabelColour)\n            this.opts.axisLabelColour = 'black';\n        var ctx = this.plot.getCanvas().getContext('2d');\n        ctx.save();\n        ctx.font = this.opts.axisLabelFontSizePixels + 'px ' +\n            this.opts.axisLabelFontFamily;\n        ctx.fillStyle = this.opts.axisLabelColour;\n        var width = ctx.measureText(this.opts.axisLabel).width;\n        var height = this.opts.axisLabelFontSizePixels;\n        var x, y, angle = 0;\n        if (this.position == 'top') {\n            x = box.left + box.width/2 - width/2;\n            y = box.top + height*0.72;\n        } else if (this.position == 'bottom') {\n            x = box.left + box.width/2 - width/2;\n            y = box.top + box.height - height*0.72;\n        } else if (this.position == 'left') {\n            x = box.left + height*0.72;\n            y = box.height/2 + box.top + width/2;\n            angle = -Math.PI/2;\n        } else if (this.position == 'right') {\n            x = box.left + box.width - height*0.72;\n            y = box.height/2 + box.top - width/2;\n            angle = Math.PI/2;\n        }\n        ctx.translate(x, y);\n        ctx.rotate(angle);\n        ctx.fillText(this.opts.axisLabel, 0, 0);\n        ctx.restore();\n    };\n\n\n    HtmlAxisLabel.prototype = new AxisLabel();\n    HtmlAxisLabel.prototype.constructor = HtmlAxisLabel;\n    function HtmlAxisLabel(axisName, position, padding, plot, opts) {\n        AxisLabel.prototype.constructor.call(this, axisName, position,\n                                             padding, plot, opts);\n        this.elem = null;\n    }\n\n    HtmlAxisLabel.prototype.calculateSize = function() {\n        var elem = $('<div class=\"axisLabels\" style=\"position:absolute;\">' +\n                     this.opts.axisLabel + '</div>');\n        this.plot.getPlaceholder().append(elem);\n        // store height and width of label itself, for use in draw()\n        this.labelWidth = elem.outerWidth(true);\n        this.labelHeight = elem.outerHeight(true);\n        elem.remove();\n\n        this.width = this.height = 0;\n        if (this.position == 'left' || this.position == 'right') {\n            this.width = this.labelWidth + this.padding;\n        } else {\n            this.height = this.labelHeight + this.padding;\n        }\n    };\n\n    HtmlAxisLabel.prototype.cleanup = function() {\n        if (this.elem) {\n            this.elem.remove();\n        }\n    };\n\n    HtmlAxisLabel.prototype.draw = function(box) {\n        this.plot.getPlaceholder().find('#' + this.axisName + 'Label').remove();\n        this.elem = $('<div id=\"' + this.axisName +\n                      'Label\" \" class=\"axisLabels\" style=\"position:absolute;\">'\n                      + this.opts.axisLabel + '</div>');\n        this.plot.getPlaceholder().append(this.elem);\n        if (this.position == 'top') {\n            this.elem.css('left', box.left + box.width/2 - this.labelWidth/2 +\n                          'px');\n            this.elem.css('top', box.top + 'px');\n        } else if (this.position == 'bottom') {\n            this.elem.css('left', box.left + box.width/2 - this.labelWidth/2 +\n                          'px');\n            this.elem.css('top', box.top + box.height - this.labelHeight +\n                          'px');\n        } else if (this.position == 'left') {\n            this.elem.css('top', box.top + box.height/2 - this.labelHeight/2 +\n                          'px');\n            this.elem.css('left', box.left + 'px');\n        } else if (this.position == 'right') {\n            this.elem.css('top', box.top + box.height/2 - this.labelHeight/2 +\n                          'px');\n            this.elem.css('left', box.left + box.width - this.labelWidth +\n                          'px');\n        }\n    };\n\n\n    CssTransformAxisLabel.prototype = new HtmlAxisLabel();\n    CssTransformAxisLabel.prototype.constructor = CssTransformAxisLabel;\n    function CssTransformAxisLabel(axisName, position, padding, plot, opts) {\n        HtmlAxisLabel.prototype.constructor.call(this, axisName, position,\n                                                 padding, plot, opts);\n    }\n\n    CssTransformAxisLabel.prototype.calculateSize = function() {\n        HtmlAxisLabel.prototype.calculateSize.call(this);\n        this.width = this.height = 0;\n        if (this.position == 'left' || this.position == 'right') {\n            this.width = this.labelHeight + this.padding;\n        } else {\n            this.height = this.labelHeight + this.padding;\n        }\n    };\n\n    CssTransformAxisLabel.prototype.transforms = function(degrees, x, y) {\n        var stransforms = {\n            '-moz-transform': '',\n            '-webkit-transform': '',\n            '-o-transform': '',\n            '-ms-transform': ''\n        };\n        if (x != 0 || y != 0) {\n            var stdTranslate = ' translate(' + x + 'px, ' + y + 'px)';\n            stransforms['-moz-transform'] += stdTranslate;\n            stransforms['-webkit-transform'] += stdTranslate;\n            stransforms['-o-transform'] += stdTranslate;\n            stransforms['-ms-transform'] += stdTranslate;\n        }\n        if (degrees != 0) {\n            var rotation = degrees / 90;\n            var stdRotate = ' rotate(' + degrees + 'deg)';\n            stransforms['-moz-transform'] += stdRotate;\n            stransforms['-webkit-transform'] += stdRotate;\n            stransforms['-o-transform'] += stdRotate;\n            stransforms['-ms-transform'] += stdRotate;\n        }\n        var s = 'top: 0; left: 0; ';\n        for (var prop in stransforms) {\n            if (stransforms[prop]) {\n                s += prop + ':' + stransforms[prop] + ';';\n            }\n        }\n        s += ';';\n        return s;\n    };\n\n    CssTransformAxisLabel.prototype.calculateOffsets = function(box) {\n        var offsets = { x: 0, y: 0, degrees: 0 };\n        if (this.position == 'bottom') {\n            offsets.x = box.left + box.width/2 - this.labelWidth/2;\n            offsets.y = box.top + box.height - this.labelHeight;\n        } else if (this.position == 'top') {\n            offsets.x = box.left + box.width/2 - this.labelWidth/2;\n            offsets.y = box.top;\n        } else if (this.position == 'left') {\n            offsets.degrees = -90;\n            offsets.x = box.left - this.labelWidth/2 + this.labelHeight/2;\n            offsets.y = box.height/2 + box.top;\n        } else if (this.position == 'right') {\n            offsets.degrees = 90;\n            offsets.x = box.left + box.width - this.labelWidth/2\n                        - this.labelHeight/2;\n            offsets.y = box.height/2 + box.top;\n        }\n        offsets.x = Math.round(offsets.x);\n        offsets.y = Math.round(offsets.y);\n\n        return offsets;\n    };\n\n    CssTransformAxisLabel.prototype.draw = function(box) {\n        this.plot.getPlaceholder().find(\".\" + this.axisName + \"Label\").remove();\n        var offsets = this.calculateOffsets(box);\n        this.elem = $('<div class=\"axisLabels ' + this.axisName +\n                      'Label\" style=\"position:absolute; ' +\n                      this.transforms(offsets.degrees, offsets.x, offsets.y) +\n                      '\">' + this.opts.axisLabel + '</div>');\n        this.plot.getPlaceholder().append(this.elem);\n    };\n\n\n    IeTransformAxisLabel.prototype = new CssTransformAxisLabel();\n    IeTransformAxisLabel.prototype.constructor = IeTransformAxisLabel;\n    function IeTransformAxisLabel(axisName, position, padding, plot, opts) {\n        CssTransformAxisLabel.prototype.constructor.call(this, axisName,\n                                                         position, padding,\n                                                         plot, opts);\n        this.requiresResize = false;\n    }\n\n    IeTransformAxisLabel.prototype.transforms = function(degrees, x, y) {\n        // I didn't feel like learning the crazy Matrix stuff, so this uses\n        // a combination of the rotation transform and CSS positioning.\n        var s = '';\n        if (degrees != 0) {\n            var rotation = degrees/90;\n            while (rotation < 0) {\n                rotation += 4;\n            }\n            s += ' filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=' + rotation + '); ';\n            // see below\n            this.requiresResize = (this.position == 'right');\n        }\n        if (x != 0) {\n            s += 'left: ' + x + 'px; ';\n        }\n        if (y != 0) {\n            s += 'top: ' + y + 'px; ';\n        }\n        return s;\n    };\n\n    IeTransformAxisLabel.prototype.calculateOffsets = function(box) {\n        var offsets = CssTransformAxisLabel.prototype.calculateOffsets.call(\n                          this, box);\n        // adjust some values to take into account differences between\n        // CSS and IE rotations.\n        if (this.position == 'top') {\n            // FIXME: not sure why, but placing this exactly at the top causes\n            // the top axis label to flip to the bottom...\n            offsets.y = box.top + 1;\n        } else if (this.position == 'left') {\n            offsets.x = box.left;\n            offsets.y = box.height/2 + box.top - this.labelWidth/2;\n        } else if (this.position == 'right') {\n            offsets.x = box.left + box.width - this.labelHeight;\n            offsets.y = box.height/2 + box.top - this.labelWidth/2;\n        }\n        return offsets;\n    };\n\n    IeTransformAxisLabel.prototype.draw = function(box) {\n        CssTransformAxisLabel.prototype.draw.call(this, box);\n        if (this.requiresResize) {\n            this.elem = this.plot.getPlaceholder().find(\".\" + this.axisName +\n                                                        \"Label\");\n            // Since we used CSS positioning instead of transforms for\n            // translating the element, and since the positioning is done\n            // before any rotations, we have to reset the width and height\n            // in case the browser wrapped the text (specifically for the\n            // y2axis).\n            this.elem.css('width', this.labelWidth);\n            this.elem.css('height', this.labelHeight);\n        }\n    };\n\n\n    function init(plot) {\n        plot.hooks.processOptions.push(function (plot, options) {\n\n            if (!options.axisLabels.show)\n                return;\n\n            // This is kind of a hack. There are no hooks in Flot between\n            // the creation and measuring of the ticks (setTicks, measureTickLabels\n            // in setupGrid() ) and the drawing of the ticks and plot box\n            // (insertAxisLabels in setupGrid() ).\n            //\n            // Therefore, we use a trick where we run the draw routine twice:\n            // the first time to get the tick measurements, so that we can change\n            // them, and then have it draw it again.\n            var secondPass = false;\n\n            var axisLabels = {};\n            var axisOffsetCounts = { left: 0, right: 0, top: 0, bottom: 0 };\n\n            var defaultPadding = 2;  // padding between axis and tick labels\n            plot.hooks.draw.push(function (plot, ctx) {\n                var hasAxisLabels = false;\n                if (!secondPass) {\n                    // MEASURE AND SET OPTIONS\n                    $.each(plot.getAxes(), function(axisName, axis) {\n                        var opts = axis.options // Flot 0.7\n                            || plot.getOptions()[axisName]; // Flot 0.6\n\n                        // Handle redraws initiated outside of this plug-in.\n                        if (axisName in axisLabels) {\n                            axis.labelHeight = axis.labelHeight -\n                                axisLabels[axisName].height;\n                            axis.labelWidth = axis.labelWidth -\n                                axisLabels[axisName].width;\n                            opts.labelHeight = axis.labelHeight;\n                            opts.labelWidth = axis.labelWidth;\n                            axisLabels[axisName].cleanup();\n                            delete axisLabels[axisName];\n                        }\n\n                        if (!opts || !opts.axisLabel || !axis.show)\n                            return;\n\n                        hasAxisLabels = true;\n                        var renderer = null;\n\n                        if (!opts.axisLabelUseHtml &&\n                            navigator.appName == 'Microsoft Internet Explorer') {\n                            var ua = navigator.userAgent;\n                            var re  = new RegExp(\"MSIE ([0-9]{1,}[\\.0-9]{0,})\");\n                            if (re.exec(ua) != null) {\n                                rv = parseFloat(RegExp.$1);\n                            }\n                            if (rv >= 9 && !opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) {\n                                renderer = CssTransformAxisLabel;\n                            } else if (!opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) {\n                                renderer = IeTransformAxisLabel;\n                            } else if (opts.axisLabelUseCanvas) {\n                                renderer = CanvasAxisLabel;\n                            } else {\n                                renderer = HtmlAxisLabel;\n                            }\n                        } else {\n                            if (opts.axisLabelUseHtml || (!css3TransitionSupported() && !canvasTextSupported()) && !opts.axisLabelUseCanvas) {\n                                renderer = HtmlAxisLabel;\n                            } else if (opts.axisLabelUseCanvas || !css3TransitionSupported()) {\n                                renderer = CanvasAxisLabel;\n                            } else {\n                                renderer = CssTransformAxisLabel;\n                            }\n                        }\n\n                        var padding = opts.axisLabelPadding === undefined ?\n                                      defaultPadding : opts.axisLabelPadding;\n\n                        axisLabels[axisName] = new renderer(axisName,\n                                                            axis.position, padding,\n                                                            plot, opts);\n\n                        // flot interprets axis.labelHeight and .labelWidth as\n                        // the height and width of the tick labels. We increase\n                        // these values to make room for the axis label and\n                        // padding.\n\n                        axisLabels[axisName].calculateSize();\n\n                        // AxisLabel.height and .width are the size of the\n                        // axis label and padding.\n                        // Just set opts here because axis will be sorted out on\n                        // the redraw.\n\n                        opts.labelHeight = axis.labelHeight +\n                            axisLabels[axisName].height;\n                        opts.labelWidth = axis.labelWidth +\n                            axisLabels[axisName].width;\n                    });\n\n                    // If there are axis labels, re-draw with new label widths and\n                    // heights.\n\n                    if (hasAxisLabels) {\n                        secondPass = true;\n                        plot.setupGrid();\n                        plot.draw();\n                    }\n                } else {\n                    secondPass = false;\n                    // DRAW\n                    $.each(plot.getAxes(), function(axisName, axis) {\n                        var opts = axis.options // Flot 0.7\n                            || plot.getOptions()[axisName]; // Flot 0.6\n                        if (!opts || !opts.axisLabel || !axis.show)\n                            return;\n\n                        axisLabels[axisName].draw(axis.box);\n                    });\n                }\n            });\n        });\n    }\n\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'axisLabels',\n        version: '2.0'\n    });\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.canvas.js",
    "content": "/* Flot plugin for drawing all elements of a plot on the canvas.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nFlot normally produces certain elements, like axis labels and the legend, using\nHTML elements. This permits greater interactivity and customization, and often\nlooks better, due to cross-browser canvas text inconsistencies and limitations.\n\nIt can also be desirable to render the plot entirely in canvas, particularly\nif the goal is to save it as an image, or if Flot is being used in a context\nwhere the HTML DOM does not exist, as is the case within Node.js. This plugin\nswitches out Flot's standard drawing operations for canvas-only replacements.\n\nCurrently the plugin supports only axis labels, but it will eventually allow\nevery element of the plot to be rendered directly to canvas.\n\nThe plugin supports these options:\n\n{\n    canvas: boolean\n}\n\nThe \"canvas\" option controls whether full canvas drawing is enabled, making it\npossible to toggle on and off. This is useful when a plot uses HTML text in the\nbrowser, but needs to redraw with canvas text when exporting as an image.\n\n*/\n\n(function($) {\n\n\tvar options = {\n\t\tcanvas: true\n\t};\n\n\tvar render, getTextInfo, addText;\n\n\t// Cache the prototype hasOwnProperty for faster access\n\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\tfunction init(plot, classes) {\n\n\t\tvar Canvas = classes.Canvas;\n\n\t\t// We only want to replace the functions once; the second time around\n\t\t// we would just get our new function back.  This whole replacing of\n\t\t// prototype functions is a disaster, and needs to be changed ASAP.\n\n\t\tif (render == null) {\n\t\t\tgetTextInfo = Canvas.prototype.getTextInfo,\n\t\t\taddText = Canvas.prototype.addText,\n\t\t\trender = Canvas.prototype.render;\n\t\t}\n\n\t\t// Finishes rendering the canvas, including overlaid text\n\n\t\tCanvas.prototype.render = function() {\n\n\t\t\tif (!plot.getOptions().canvas) {\n\t\t\t\treturn render.call(this);\n\t\t\t}\n\n\t\t\tvar context = this.context,\n\t\t\t\tcache = this._textCache;\n\n\t\t\t// For each text layer, render elements marked as active\n\n\t\t\tcontext.save();\n\t\t\tcontext.textBaseline = \"middle\";\n\n\t\t\tfor (var layerKey in cache) {\n\t\t\t\tif (hasOwnProperty.call(cache, layerKey)) {\n\t\t\t\t\tvar layerCache = cache[layerKey];\n\t\t\t\t\tfor (var styleKey in layerCache) {\n\t\t\t\t\t\tif (hasOwnProperty.call(layerCache, styleKey)) {\n\t\t\t\t\t\t\tvar styleCache = layerCache[styleKey],\n\t\t\t\t\t\t\t\tupdateStyles = true;\n\t\t\t\t\t\t\tfor (var key in styleCache) {\n\t\t\t\t\t\t\t\tif (hasOwnProperty.call(styleCache, key)) {\n\n\t\t\t\t\t\t\t\t\tvar info = styleCache[key],\n\t\t\t\t\t\t\t\t\t\tpositions = info.positions,\n\t\t\t\t\t\t\t\t\t\tlines = info.lines;\n\n\t\t\t\t\t\t\t\t\t// Since every element at this level of the cache have the\n\t\t\t\t\t\t\t\t\t// same font and fill styles, we can just change them once\n\t\t\t\t\t\t\t\t\t// using the values from the first element.\n\n\t\t\t\t\t\t\t\t\tif (updateStyles) {\n\t\t\t\t\t\t\t\t\t\tcontext.fillStyle = info.font.color;\n\t\t\t\t\t\t\t\t\t\tcontext.font = info.font.definition;\n\t\t\t\t\t\t\t\t\t\tupdateStyles = false;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tfor (var i = 0, position; position = positions[i]; i++) {\n\t\t\t\t\t\t\t\t\t\tif (position.active) {\n\t\t\t\t\t\t\t\t\t\t\tfor (var j = 0, line; line = position.lines[j]; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontext.fillText(lines[j].text, line[0], line[1]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tpositions.splice(i--, 1);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (positions.length == 0) {\n\t\t\t\t\t\t\t\t\t\tdelete styleCache[key];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontext.restore();\n\t\t};\n\n\t\t// Creates (if necessary) and returns a text info object.\n\t\t//\n\t\t// When the canvas option is set, the object looks like this:\n\t\t//\n\t\t// {\n\t\t//     width: Width of the text's bounding box.\n\t\t//     height: Height of the text's bounding box.\n\t\t//     positions: Array of positions at which this text is drawn.\n\t\t//     lines: [{\n\t\t//         height: Height of this line.\n\t\t//         widths: Width of this line.\n\t\t//         text: Text on this line.\n\t\t//     }],\n\t\t//     font: {\n\t\t//         definition: Canvas font property string.\n\t\t//         color: Color of the text.\n\t\t//     },\n\t\t// }\n\t\t//\n\t\t// The positions array contains objects that look like this:\n\t\t//\n\t\t// {\n\t\t//     active: Flag indicating whether the text should be visible.\n\t\t//     lines: Array of [x, y] coordinates at which to draw the line.\n\t\t//     x: X coordinate at which to draw the text.\n\t\t//     y: Y coordinate at which to draw the text.\n\t\t// }\n\n\t\tCanvas.prototype.getTextInfo = function(layer, text, font, angle, width) {\n\n\t\t\tif (!plot.getOptions().canvas) {\n\t\t\t\treturn getTextInfo.call(this, layer, text, font, angle, width);\n\t\t\t}\n\n\t\t\tvar textStyle, layerCache, styleCache, info;\n\n\t\t\t// Cast the value to a string, in case we were given a number\n\n\t\t\ttext = \"\" + text;\n\n\t\t\t// If the font is a font-spec object, generate a CSS definition\n\n\t\t\tif (typeof font === \"object\") {\n\t\t\t\ttextStyle = font.style + \" \" + font.variant + \" \" + font.weight + \" \" + font.size + \"px \" + font.family;\n\t\t\t} else {\n\t\t\t\ttextStyle = font;\n\t\t\t}\n\n\t\t\t// Retrieve (or create) the cache for the text's layer and styles\n\n\t\t\tlayerCache = this._textCache[layer];\n\n\t\t\tif (layerCache == null) {\n\t\t\t\tlayerCache = this._textCache[layer] = {};\n\t\t\t}\n\n\t\t\tstyleCache = layerCache[textStyle];\n\n\t\t\tif (styleCache == null) {\n\t\t\t\tstyleCache = layerCache[textStyle] = {};\n\t\t\t}\n\n\t\t\tinfo = styleCache[text];\n\n\t\t\tif (info == null) {\n\n\t\t\t\tvar context = this.context;\n\n\t\t\t\t// If the font was provided as CSS, create a div with those\n\t\t\t\t// classes and examine it to generate a canvas font spec.\n\n\t\t\t\tif (typeof font !== \"object\") {\n\n\t\t\t\t\tvar element = $(\"<div>&nbsp;</div>\")\n\t\t\t\t\t\t.css(\"position\", \"absolute\")\n\t\t\t\t\t\t.addClass(typeof font === \"string\" ? font : null)\n\t\t\t\t\t\t.appendTo(this.getTextLayer(layer));\n\n\t\t\t\t\tfont = {\n\t\t\t\t\t\tlineHeight: element.height(),\n\t\t\t\t\t\tstyle: element.css(\"font-style\"),\n\t\t\t\t\t\tvariant: element.css(\"font-variant\"),\n\t\t\t\t\t\tweight: element.css(\"font-weight\"),\n\t\t\t\t\t\tfamily: element.css(\"font-family\"),\n\t\t\t\t\t\tcolor: element.css(\"color\")\n\t\t\t\t\t};\n\n\t\t\t\t\t// Setting line-height to 1, without units, sets it equal\n\t\t\t\t\t// to the font-size, even if the font-size is abstract,\n\t\t\t\t\t// like 'smaller'.  This enables us to read the real size\n\t\t\t\t\t// via the element's height, working around browsers that\n\t\t\t\t\t// return the literal 'smaller' value.\n\n\t\t\t\t\tfont.size = element.css(\"line-height\", 1).height();\n\n\t\t\t\t\telement.remove();\n\t\t\t\t}\n\n\t\t\t\ttextStyle = font.style + \" \" + font.variant + \" \" + font.weight + \" \" + font.size + \"px \" + font.family;\n\n\t\t\t\t// Create a new info object, initializing the dimensions to\n\t\t\t\t// zero so we can count them up line-by-line.\n\n\t\t\t\tinfo = styleCache[text] = {\n\t\t\t\t\twidth: 0,\n\t\t\t\t\theight: 0,\n\t\t\t\t\tpositions: [],\n\t\t\t\t\tlines: [],\n\t\t\t\t\tfont: {\n\t\t\t\t\t\tdefinition: textStyle,\n\t\t\t\t\t\tcolor: font.color\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tcontext.save();\n\t\t\t\tcontext.font = textStyle;\n\n\t\t\t\t// Canvas can't handle multi-line strings; break on various\n\t\t\t\t// newlines, including HTML brs, to build a list of lines.\n\t\t\t\t// Note that we could split directly on regexps, but IE < 9 is\n\t\t\t\t// broken; revisit when we drop IE 7/8 support.\n\n\t\t\t\tvar lines = (text + \"\").replace(/<br ?\\/?>|\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n\n\t\t\t\tfor (var i = 0; i < lines.length; ++i) {\n\n\t\t\t\t\tvar lineText = lines[i],\n\t\t\t\t\t\tmeasured = context.measureText(lineText);\n\n\t\t\t\t\tinfo.width = Math.max(measured.width, info.width);\n\t\t\t\t\tinfo.height += font.lineHeight;\n\n\t\t\t\t\tinfo.lines.push({\n\t\t\t\t\t\ttext: lineText,\n\t\t\t\t\t\twidth: measured.width,\n\t\t\t\t\t\theight: font.lineHeight\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tcontext.restore();\n\t\t\t}\n\n\t\t\treturn info;\n\t\t};\n\n\t\t// Adds a text string to the canvas text overlay.\n\n\t\tCanvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) {\n\n\t\t\tif (!plot.getOptions().canvas) {\n\t\t\t\treturn addText.call(this, layer, x, y, text, font, angle, width, halign, valign);\n\t\t\t}\n\n\t\t\tvar info = this.getTextInfo(layer, text, font, angle, width),\n\t\t\t\tpositions = info.positions,\n\t\t\t\tlines = info.lines;\n\n\t\t\t// Text is drawn with baseline 'middle', which we need to account\n\t\t\t// for by adding half a line's height to the y position.\n\n\t\t\ty += info.height / lines.length / 2;\n\n\t\t\t// Tweak the initial y-position to match vertical alignment\n\n\t\t\tif (valign == \"middle\") {\n\t\t\t\ty = Math.round(y - info.height / 2);\n\t\t\t} else if (valign == \"bottom\") {\n\t\t\t\ty = Math.round(y - info.height);\n\t\t\t} else {\n\t\t\t\ty = Math.round(y);\n\t\t\t}\n\n\t\t\t// FIXME: LEGACY BROWSER FIX\n\t\t\t// AFFECTS: Opera < 12.00\n\n\t\t\t// Offset the y coordinate, since Opera is off pretty\n\t\t\t// consistently compared to the other browsers.\n\n\t\t\tif (!!(window.opera && window.opera.version().split(\".\")[0] < 12)) {\n\t\t\t\ty -= 2;\n\t\t\t}\n\n\t\t\t// Determine whether this text already exists at this position.\n\t\t\t// If so, mark it for inclusion in the next render pass.\n\n\t\t\tfor (var i = 0, position; position = positions[i]; i++) {\n\t\t\t\tif (position.x == x && position.y == y) {\n\t\t\t\t\tposition.active = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the text doesn't exist at this position, create a new entry\n\n\t\t\tposition = {\n\t\t\t\tactive: true,\n\t\t\t\tlines: [],\n\t\t\t\tx: x,\n\t\t\t\ty: y\n\t\t\t};\n\n\t\t\tpositions.push(position);\n\n\t\t\t// Fill in the x & y positions of each line, adjusting them\n\t\t\t// individually for horizontal alignment.\n\n\t\t\tfor (var i = 0, line; line = lines[i]; i++) {\n\t\t\t\tif (halign == \"center\") {\n\t\t\t\t\tposition.lines.push([Math.round(x - line.width / 2), y]);\n\t\t\t\t} else if (halign == \"right\") {\n\t\t\t\t\tposition.lines.push([Math.round(x - line.width), y]);\n\t\t\t\t} else {\n\t\t\t\t\tposition.lines.push([Math.round(x), y]);\n\t\t\t\t}\n\t\t\t\ty += line.height;\n\t\t\t}\n\t\t};\n\t}\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: \"canvas\",\n\t\tversion: \"1.0\"\n\t});\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.crosshair.js",
    "content": "/* Flot plugin for showing crosshairs when the mouse hovers over the plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\n\tcrosshair: {\n\t\tmode: null or \"x\" or \"y\" or \"xy\"\n\t\tcolor: color\n\t\tlineWidth: number\n\t}\n\nSet the mode to one of \"x\", \"y\" or \"xy\". The \"x\" mode enables a vertical\ncrosshair that lets you trace the values on the x axis, \"y\" enables a\nhorizontal crosshair and \"xy\" enables them both. \"color\" is the color of the\ncrosshair (default is \"rgba(170, 0, 0, 0.80)\"), \"lineWidth\" is the width of\nthe drawn lines (default is 1).\n\nThe plugin also adds four public methods:\n\n  - setCrosshair( pos )\n\n    Set the position of the crosshair. Note that this is cleared if the user\n    moves the mouse. \"pos\" is in coordinates of the plot and should be on the\n    form { x: xpos, y: ypos } (you can use x2/x3/... if you're using multiple\n    axes), which is coincidentally the same format as what you get from a\n    \"plothover\" event. If \"pos\" is null, the crosshair is cleared.\n\n  - clearCrosshair()\n\n    Clear the crosshair.\n\n  - lockCrosshair(pos)\n\n    Cause the crosshair to lock to the current location, no longer updating if\n    the user moves the mouse. Optionally supply a position (passed on to\n    setCrosshair()) to move it to.\n\n    Example usage:\n\n\tvar myFlot = $.plot( $(\"#graph\"), ..., { crosshair: { mode: \"x\" } } };\n\t$(\"#graph\").bind( \"plothover\", function ( evt, position, item ) {\n\t\tif ( item ) {\n\t\t\t// Lock the crosshair to the data point being hovered\n\t\t\tmyFlot.lockCrosshair({\n\t\t\t\tx: item.datapoint[ 0 ],\n\t\t\t\ty: item.datapoint[ 1 ]\n\t\t\t});\n\t\t} else {\n\t\t\t// Return normal crosshair operation\n\t\t\tmyFlot.unlockCrosshair();\n\t\t}\n\t});\n\n  - unlockCrosshair()\n\n    Free the crosshair to move again after locking it.\n*/\n\n(function ($) {\n    var options = {\n        crosshair: {\n            mode: null, // one of null, \"x\", \"y\" or \"xy\",\n            color: \"rgba(170, 0, 0, 0.80)\",\n            lineWidth: 1\n        }\n    };\n    \n    function init(plot) {\n        // position of crosshair in pixels\n        var crosshair = { x: -1, y: -1, locked: false };\n\n        plot.setCrosshair = function setCrosshair(pos) {\n            if (!pos)\n                crosshair.x = -1;\n            else {\n                var o = plot.p2c(pos);\n                crosshair.x = Math.max(0, Math.min(o.left, plot.width()));\n                crosshair.y = Math.max(0, Math.min(o.top, plot.height()));\n            }\n            \n            plot.triggerRedrawOverlay();\n        };\n        \n        plot.clearCrosshair = plot.setCrosshair; // passes null for pos\n        \n        plot.lockCrosshair = function lockCrosshair(pos) {\n            if (pos)\n                plot.setCrosshair(pos);\n            crosshair.locked = true;\n        };\n\n        plot.unlockCrosshair = function unlockCrosshair() {\n            crosshair.locked = false;\n        };\n\n        function onMouseOut(e) {\n            if (crosshair.locked)\n                return;\n\n            if (crosshair.x != -1) {\n                crosshair.x = -1;\n                plot.triggerRedrawOverlay();\n            }\n        }\n\n        function onMouseMove(e) {\n            if (crosshair.locked)\n                return;\n                \n            if (plot.getSelection && plot.getSelection()) {\n                crosshair.x = -1; // hide the crosshair while selecting\n                return;\n            }\n                \n            var offset = plot.offset();\n            crosshair.x = Math.max(0, Math.min(e.pageX - offset.left, plot.width()));\n            crosshair.y = Math.max(0, Math.min(e.pageY - offset.top, plot.height()));\n            plot.triggerRedrawOverlay();\n        }\n        \n        plot.hooks.bindEvents.push(function (plot, eventHolder) {\n            if (!plot.getOptions().crosshair.mode)\n                return;\n\n            eventHolder.mouseout(onMouseOut);\n            eventHolder.mousemove(onMouseMove);\n        });\n\n        plot.hooks.drawOverlay.push(function (plot, ctx) {\n            var c = plot.getOptions().crosshair;\n            if (!c.mode)\n                return;\n\n            var plotOffset = plot.getPlotOffset();\n            \n            ctx.save();\n            ctx.translate(plotOffset.left, plotOffset.top);\n\n            if (crosshair.x != -1) {\n                var adj = plot.getOptions().crosshair.lineWidth % 2 ? 0.5 : 0;\n\n                ctx.strokeStyle = c.color;\n                ctx.lineWidth = c.lineWidth;\n                ctx.lineJoin = \"round\";\n\n                ctx.beginPath();\n                if (c.mode.indexOf(\"x\") != -1) {\n                    var drawX = Math.floor(crosshair.x) + adj;\n                    ctx.moveTo(drawX, 0);\n                    ctx.lineTo(drawX, plot.height());\n                }\n                if (c.mode.indexOf(\"y\") != -1) {\n                    var drawY = Math.floor(crosshair.y) + adj;\n                    ctx.moveTo(0, drawY);\n                    ctx.lineTo(plot.width(), drawY);\n                }\n                ctx.stroke();\n            }\n            ctx.restore();\n        });\n\n        plot.hooks.shutdown.push(function (plot, eventHolder) {\n            eventHolder.unbind(\"mouseout\", onMouseOut);\n            eventHolder.unbind(\"mousemove\", onMouseMove);\n        });\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'crosshair',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.errorbars.js",
    "content": "/* Flot plugin for plotting error bars.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nError bars are used to show standard deviation and other statistical\nproperties in a plot.\n\n* Created by Rui Pereira  -  rui (dot) pereira (at) gmail (dot) com\n\nThis plugin allows you to plot error-bars over points. Set \"errorbars\" inside\nthe points series to the axis name over which there will be error values in\nyour data array (*even* if you do not intend to plot them later, by setting\n\"show: null\" on xerr/yerr).\n\nThe plugin supports these options:\n\n\tseries: {\n\t\tpoints: {\n\t\t\terrorbars: \"x\" or \"y\" or \"xy\",\n\t\t\txerr: {\n\t\t\t\tshow: null/false or true,\n\t\t\t\tasymmetric: null/false or true,\n\t\t\t\tupperCap: null or \"-\" or function,\n\t\t\t\tlowerCap: null or \"-\" or function,\n\t\t\t\tcolor: null or color,\n\t\t\t\tradius: null or number\n\t\t\t},\n\t\t\tyerr: { same options as xerr }\n\t\t}\n\t}\n\nEach data point array is expected to be of the type:\n\n\t\"x\"  [ x, y, xerr ]\n\t\"y\"  [ x, y, yerr ]\n\t\"xy\" [ x, y, xerr, yerr ]\n\nWhere xerr becomes xerr_lower,xerr_upper for the asymmetric error case, and\nequivalently for yerr. Eg., a datapoint for the \"xy\" case with symmetric\nerror-bars on X and asymmetric on Y would be:\n\n\t[ x, y, xerr, yerr_lower, yerr_upper ]\n\nBy default no end caps are drawn. Setting upperCap and/or lowerCap to \"-\" will\ndraw a small cap perpendicular to the error bar. They can also be set to a\nuser-defined drawing function, with (ctx, x, y, radius) as parameters, as eg.\n\n\tfunction drawSemiCircle( ctx, x, y, radius ) {\n\t\tctx.beginPath();\n\t\tctx.arc( x, y, radius, 0, Math.PI, false );\n\t\tctx.moveTo( x - radius, y );\n\t\tctx.lineTo( x + radius, y );\n\t\tctx.stroke();\n\t}\n\nColor and radius both default to the same ones of the points series if not\nset. The independent radius parameter on xerr/yerr is useful for the case when\nwe may want to add error-bars to a line, without showing the interconnecting\npoints (with radius: 0), and still showing end caps on the error-bars.\nshadowSize and lineWidth are derived as well from the points series.\n\n*/\n\n(function ($) {\n    var options = {\n        series: {\n            points: {\n                errorbars: null, //should be 'x', 'y' or 'xy'\n                xerr: { err: 'x', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null},\n                yerr: { err: 'y', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null}\n            }\n        }\n    };\n\n    function processRawData(plot, series, data, datapoints){\n        if (!series.points.errorbars)\n            return;\n\n        // x,y values\n        var format = [\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true }\n        ];\n\n        var errors = series.points.errorbars;\n        // error bars - first X then Y\n        if (errors == 'x' || errors == 'xy') {\n            // lower / upper error\n            if (series.points.xerr.asymmetric) {\n                format.push({ x: true, number: true, required: true });\n                format.push({ x: true, number: true, required: true });\n            } else\n                format.push({ x: true, number: true, required: true });\n        }\n        if (errors == 'y' || errors == 'xy') {\n            // lower / upper error\n            if (series.points.yerr.asymmetric) {\n                format.push({ y: true, number: true, required: true });\n                format.push({ y: true, number: true, required: true });\n            } else\n                format.push({ y: true, number: true, required: true });\n        }\n        datapoints.format = format;\n    }\n\n    function parseErrors(series, i){\n\n        var points = series.datapoints.points;\n\n        // read errors from points array\n        var exl = null,\n                exu = null,\n                eyl = null,\n                eyu = null;\n        var xerr = series.points.xerr,\n                yerr = series.points.yerr;\n\n        var eb = series.points.errorbars;\n        // error bars - first X\n        if (eb == 'x' || eb == 'xy') {\n            if (xerr.asymmetric) {\n                exl = points[i + 2];\n                exu = points[i + 3];\n                if (eb == 'xy')\n                    if (yerr.asymmetric){\n                        eyl = points[i + 4];\n                        eyu = points[i + 5];\n                    } else eyl = points[i + 4];\n            } else {\n                exl = points[i + 2];\n                if (eb == 'xy')\n                    if (yerr.asymmetric) {\n                        eyl = points[i + 3];\n                        eyu = points[i + 4];\n                    } else eyl = points[i + 3];\n            }\n        // only Y\n        } else if (eb == 'y')\n            if (yerr.asymmetric) {\n                eyl = points[i + 2];\n                eyu = points[i + 3];\n            } else eyl = points[i + 2];\n\n        // symmetric errors?\n        if (exu == null) exu = exl;\n        if (eyu == null) eyu = eyl;\n\n        var errRanges = [exl, exu, eyl, eyu];\n        // nullify if not showing\n        if (!xerr.show){\n            errRanges[0] = null;\n            errRanges[1] = null;\n        }\n        if (!yerr.show){\n            errRanges[2] = null;\n            errRanges[3] = null;\n        }\n        return errRanges;\n    }\n\n    function drawSeriesErrors(plot, ctx, s){\n\n        var points = s.datapoints.points,\n                ps = s.datapoints.pointsize,\n                ax = [s.xaxis, s.yaxis],\n                radius = s.points.radius,\n                err = [s.points.xerr, s.points.yerr];\n\n        //sanity check, in case some inverted axis hack is applied to flot\n        var invertX = false;\n        if (ax[0].p2c(ax[0].max) < ax[0].p2c(ax[0].min)) {\n            invertX = true;\n            var tmp = err[0].lowerCap;\n            err[0].lowerCap = err[0].upperCap;\n            err[0].upperCap = tmp;\n        }\n\n        var invertY = false;\n        if (ax[1].p2c(ax[1].min) < ax[1].p2c(ax[1].max)) {\n            invertY = true;\n            var tmp = err[1].lowerCap;\n            err[1].lowerCap = err[1].upperCap;\n            err[1].upperCap = tmp;\n        }\n\n        for (var i = 0; i < s.datapoints.points.length; i += ps) {\n\n            //parse\n            var errRanges = parseErrors(s, i);\n\n            //cycle xerr & yerr\n            for (var e = 0; e < err.length; e++){\n\n                var minmax = [ax[e].min, ax[e].max];\n\n                //draw this error?\n                if (errRanges[e * err.length]){\n\n                    //data coordinates\n                    var x = points[i],\n                        y = points[i + 1];\n\n                    //errorbar ranges\n                    var upper = [x, y][e] + errRanges[e * err.length + 1],\n                        lower = [x, y][e] - errRanges[e * err.length];\n\n                    //points outside of the canvas\n                    if (err[e].err == 'x')\n                        if (y > ax[1].max || y < ax[1].min || upper < ax[0].min || lower > ax[0].max)\n                            continue;\n                    if (err[e].err == 'y')\n                        if (x > ax[0].max || x < ax[0].min || upper < ax[1].min || lower > ax[1].max)\n                            continue;\n\n                    // prevent errorbars getting out of the canvas\n                    var drawUpper = true,\n                        drawLower = true;\n\n                    if (upper > minmax[1]) {\n                        drawUpper = false;\n                        upper = minmax[1];\n                    }\n                    if (lower < minmax[0]) {\n                        drawLower = false;\n                        lower = minmax[0];\n                    }\n\n                    //sanity check, in case some inverted axis hack is applied to flot\n                    if ((err[e].err == 'x' && invertX) || (err[e].err == 'y' && invertY)) {\n                        //swap coordinates\n                        var tmp = lower;\n                        lower = upper;\n                        upper = tmp;\n                        tmp = drawLower;\n                        drawLower = drawUpper;\n                        drawUpper = tmp;\n                        tmp = minmax[0];\n                        minmax[0] = minmax[1];\n                        minmax[1] = tmp;\n                    }\n\n                    // convert to pixels\n                    x = ax[0].p2c(x),\n                        y = ax[1].p2c(y),\n                        upper = ax[e].p2c(upper);\n                    lower = ax[e].p2c(lower);\n                    minmax[0] = ax[e].p2c(minmax[0]);\n                    minmax[1] = ax[e].p2c(minmax[1]);\n\n                    //same style as points by default\n                    var lw = err[e].lineWidth ? err[e].lineWidth : s.points.lineWidth,\n                        sw = s.points.shadowSize != null ? s.points.shadowSize : s.shadowSize;\n\n                    //shadow as for points\n                    if (lw > 0 && sw > 0) {\n                        var w = sw / 2;\n                        ctx.lineWidth = w;\n                        ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\n                        drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w + w/2, minmax);\n\n                        ctx.strokeStyle = \"rgba(0,0,0,0.2)\";\n                        drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w/2, minmax);\n                    }\n\n                    ctx.strokeStyle = err[e].color? err[e].color: s.color;\n                    ctx.lineWidth = lw;\n                    //draw it\n                    drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, 0, minmax);\n                }\n            }\n        }\n    }\n\n    function drawError(ctx,err,x,y,upper,lower,drawUpper,drawLower,radius,offset,minmax){\n\n        //shadow offset\n        y += offset;\n        upper += offset;\n        lower += offset;\n\n        // error bar - avoid plotting over circles\n        if (err.err == 'x'){\n            if (upper > x + radius) drawPath(ctx, [[upper,y],[Math.max(x + radius,minmax[0]),y]]);\n            else drawUpper = false;\n            if (lower < x - radius) drawPath(ctx, [[Math.min(x - radius,minmax[1]),y],[lower,y]] );\n            else drawLower = false;\n        }\n        else {\n            if (upper < y - radius) drawPath(ctx, [[x,upper],[x,Math.min(y - radius,minmax[0])]] );\n            else drawUpper = false;\n            if (lower > y + radius) drawPath(ctx, [[x,Math.max(y + radius,minmax[1])],[x,lower]] );\n            else drawLower = false;\n        }\n\n        //internal radius value in errorbar, allows to plot radius 0 points and still keep proper sized caps\n        //this is a way to get errorbars on lines without visible connecting dots\n        radius = err.radius != null? err.radius: radius;\n\n        // upper cap\n        if (drawUpper) {\n            if (err.upperCap == '-'){\n                if (err.err=='x') drawPath(ctx, [[upper,y - radius],[upper,y + radius]] );\n                else drawPath(ctx, [[x - radius,upper],[x + radius,upper]] );\n            } else if ($.isFunction(err.upperCap)){\n                if (err.err=='x') err.upperCap(ctx, upper, y, radius);\n                else err.upperCap(ctx, x, upper, radius);\n            }\n        }\n        // lower cap\n        if (drawLower) {\n            if (err.lowerCap == '-'){\n                if (err.err=='x') drawPath(ctx, [[lower,y - radius],[lower,y + radius]] );\n                else drawPath(ctx, [[x - radius,lower],[x + radius,lower]] );\n            } else if ($.isFunction(err.lowerCap)){\n                if (err.err=='x') err.lowerCap(ctx, lower, y, radius);\n                else err.lowerCap(ctx, x, lower, radius);\n            }\n        }\n    }\n\n    function drawPath(ctx, pts){\n        ctx.beginPath();\n        ctx.moveTo(pts[0][0], pts[0][1]);\n        for (var p=1; p < pts.length; p++)\n            ctx.lineTo(pts[p][0], pts[p][1]);\n        ctx.stroke();\n    }\n\n    function draw(plot, ctx){\n        var plotOffset = plot.getPlotOffset();\n\n        ctx.save();\n        ctx.translate(plotOffset.left, plotOffset.top);\n        $.each(plot.getData(), function (i, s) {\n            if (s.points.errorbars && (s.points.xerr.show || s.points.yerr.show))\n                drawSeriesErrors(plot, ctx, s);\n        });\n        ctx.restore();\n    }\n\n    function init(plot) {\n        plot.hooks.processRawData.push(processRawData);\n        plot.hooks.draw.push(draw);\n    }\n\n    $.plot.plugins.push({\n                init: init,\n                options: options,\n                name: 'errorbars',\n                version: '1.0'\n            });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.fillbetween.js",
    "content": "/* Flot plugin for computing bottoms for filled line and bar charts.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe case: you've got two series that you want to fill the area between. In Flot\nterms, you need to use one as the fill bottom of the other. You can specify the\nbottom of each data point as the third coordinate manually, or you can use this\nplugin to compute it for you.\n\nIn order to name the other series, you need to give it an id, like this:\n\n\tvar dataset = [\n\t\t{ data: [ ... ], id: \"foo\" } ,         // use default bottom\n\t\t{ data: [ ... ], fillBetween: \"foo\" }, // use first dataset as bottom\n\t];\n\n\t$.plot($(\"#placeholder\"), dataset, { lines: { show: true, fill: true }});\n\nAs a convenience, if the id given is a number that doesn't appear as an id in\nthe series, it is interpreted as the index in the array instead (so fillBetween:\n0 can also mean the first series).\n\nInternally, the plugin modifies the datapoints in each series. For line series,\nextra data points might be inserted through interpolation. Note that at points\nwhere the bottom line is not defined (due to a null point or start/end of line),\nthe current line will show a gap too. The algorithm comes from the\njquery.flot.stack.js plugin, possibly some code could be shared.\n\n*/\n\n(function ( $ ) {\n\n\tvar options = {\n\t\tseries: {\n\t\t\tfillBetween: null\t// or number\n\t\t}\n\t};\n\n\tfunction init( plot ) {\n\n\t\tfunction findBottomSeries( s, allseries ) {\n\n\t\t\tvar i;\n\n\t\t\tfor ( i = 0; i < allseries.length; ++i ) {\n\t\t\t\tif ( allseries[ i ].id === s.fillBetween ) {\n\t\t\t\t\treturn allseries[ i ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( typeof s.fillBetween === \"number\" ) {\n\t\t\t\tif ( s.fillBetween < 0 || s.fillBetween >= allseries.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn allseries[ s.fillBetween ];\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\tfunction computeFillBottoms( plot, s, datapoints ) {\n\n\t\t\tif ( s.fillBetween == null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar other = findBottomSeries( s, plot.getData() );\n\n\t\t\tif ( !other ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar ps = datapoints.pointsize,\n\t\t\t\tpoints = datapoints.points,\n\t\t\t\totherps = other.datapoints.pointsize,\n\t\t\t\totherpoints = other.datapoints.points,\n\t\t\t\tnewpoints = [],\n\t\t\t\tpx, py, intery, qx, qy, bottom,\n\t\t\t\twithlines = s.lines.show,\n\t\t\t\twithbottom = ps > 2 && datapoints.format[2].y,\n\t\t\t\twithsteps = withlines && s.lines.steps,\n\t\t\t\tfromgap = true,\n\t\t\t\ti = 0,\n\t\t\t\tj = 0,\n\t\t\t\tl, m;\n\n\t\t\twhile ( true ) {\n\n\t\t\t\tif ( i >= points.length ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tl = newpoints.length;\n\n\t\t\t\tif ( points[ i ] == null ) {\n\n\t\t\t\t\t// copy gaps\n\n\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t}\n\n\t\t\t\t\ti += ps;\n\n\t\t\t\t} else if ( j >= otherpoints.length ) {\n\n\t\t\t\t\t// for lines, we can't use the rest of the points\n\n\t\t\t\t\tif ( !withlines ) {\n\t\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ti += ps;\n\n\t\t\t\t} else if ( otherpoints[ j ] == null ) {\n\n\t\t\t\t\t// oops, got a gap\n\n\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\tnewpoints.push( null );\n\t\t\t\t\t}\n\n\t\t\t\t\tfromgap = true;\n\t\t\t\t\tj += otherps;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// cases where we actually got two points\n\n\t\t\t\t\tpx = points[ i ];\n\t\t\t\t\tpy = points[ i + 1 ];\n\t\t\t\t\tqx = otherpoints[ j ];\n\t\t\t\t\tqy = otherpoints[ j + 1 ];\n\t\t\t\t\tbottom = 0;\n\n\t\t\t\t\tif ( px === qx ) {\n\n\t\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//newpoints[ l + 1 ] += qy;\n\t\t\t\t\t\tbottom = qy;\n\n\t\t\t\t\t\ti += ps;\n\t\t\t\t\t\tj += otherps;\n\n\t\t\t\t\t} else if ( px > qx ) {\n\n\t\t\t\t\t\t// we got past point below, might need to\n\t\t\t\t\t\t// insert interpolated extra point\n\n\t\t\t\t\t\tif ( withlines && i > 0 && points[ i - ps ] != null ) {\n\t\t\t\t\t\t\tintery = py + ( points[ i - ps + 1 ] - py ) * ( qx - px ) / ( points[ i - ps ] - px );\n\t\t\t\t\t\t\tnewpoints.push( qx );\n\t\t\t\t\t\t\tnewpoints.push( intery );\n\t\t\t\t\t\t\tfor ( m = 2; m < ps; ++m ) {\n\t\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbottom = qy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tj += otherps;\n\n\t\t\t\t\t} else { // px < qx\n\n\t\t\t\t\t\t// if we come from a gap, we just skip this point\n\n\t\t\t\t\t\tif ( fromgap && withlines ) {\n\t\t\t\t\t\t\ti += ps;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// we might be able to interpolate a point below,\n\t\t\t\t\t\t// this can give us a better y\n\n\t\t\t\t\t\tif ( withlines && j > 0 && otherpoints[ j - otherps ] != null ) {\n\t\t\t\t\t\t\tbottom = qy + ( otherpoints[ j - otherps + 1 ] - qy ) * ( px - qx ) / ( otherpoints[ j - otherps ] - qx );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//newpoints[l + 1] += bottom;\n\n\t\t\t\t\t\ti += ps;\n\t\t\t\t\t}\n\n\t\t\t\t\tfromgap = false;\n\n\t\t\t\t\tif ( l !== newpoints.length && withbottom ) {\n\t\t\t\t\t\tnewpoints[ l + 2 ] = bottom;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// maintain the line steps invariant\n\n\t\t\t\tif ( withsteps && l !== newpoints.length && l > 0 &&\n\t\t\t\t\tnewpoints[ l ] !== null &&\n\t\t\t\t\tnewpoints[ l ] !== newpoints[ l - ps ] &&\n\t\t\t\t\tnewpoints[ l + 1 ] !== newpoints[ l - ps + 1 ] ) {\n\t\t\t\t\tfor (m = 0; m < ps; ++m) {\n\t\t\t\t\t\tnewpoints[ l + ps + m ] = newpoints[ l + m ];\n\t\t\t\t\t}\n\t\t\t\t\tnewpoints[ l + 1 ] = newpoints[ l - ps + 1 ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdatapoints.points = newpoints;\n\t\t}\n\n\t\tplot.hooks.processDatapoints.push( computeFillBottoms );\n\t}\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: \"fillbetween\",\n\t\tversion: \"1.0\"\n\t});\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.image.js",
    "content": "/* Flot plugin for plotting images.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe data syntax is [ [ image, x1, y1, x2, y2 ], ... ] where (x1, y1) and\n(x2, y2) are where you intend the two opposite corners of the image to end up\nin the plot. Image must be a fully loaded Javascript image (you can make one\nwith new Image()). If the image is not complete, it's skipped when plotting.\n\nThere are two helpers included for retrieving images. The easiest work the way\nthat you put in URLs instead of images in the data, like this:\n\n\t[ \"myimage.png\", 0, 0, 10, 10 ]\n\nThen call $.plot.image.loadData( data, options, callback ) where data and\noptions are the same as you pass in to $.plot. This loads the images, replaces\nthe URLs in the data with the corresponding images and calls \"callback\" when\nall images are loaded (or failed loading). In the callback, you can then call\n$.plot with the data set. See the included example.\n\nA more low-level helper, $.plot.image.load(urls, callback) is also included.\nGiven a list of URLs, it calls callback with an object mapping from URL to\nImage object when all images are loaded or have failed loading.\n\nThe plugin supports these options:\n\n\tseries: {\n\t\timages: {\n\t\t\tshow: boolean\n\t\t\tanchor: \"corner\" or \"center\"\n\t\t\talpha: [ 0, 1 ]\n\t\t}\n\t}\n\nThey can be specified for a specific series:\n\n\t$.plot( $(\"#placeholder\"), [{\n\t\tdata: [ ... ],\n\t\timages: { ... }\n\t])\n\nNote that because the data format is different from usual data points, you\ncan't use images with anything else in a specific data series.\n\nSetting \"anchor\" to \"center\" causes the pixels in the image to be anchored at\nthe corner pixel centers inside of at the pixel corners, effectively letting\nhalf a pixel stick out to each side in the plot.\n\nA possible future direction could be support for tiling for large images (like\nGoogle Maps).\n\n*/\n\n(function ($) {\n    var options = {\n        series: {\n            images: {\n                show: false,\n                alpha: 1,\n                anchor: \"corner\" // or \"center\"\n            }\n        }\n    };\n\n    $.plot.image = {};\n\n    $.plot.image.loadDataImages = function (series, options, callback) {\n        var urls = [], points = [];\n\n        var defaultShow = options.series.images.show;\n        \n        $.each(series, function (i, s) {\n            if (!(defaultShow || s.images.show))\n                return;\n            \n            if (s.data)\n                s = s.data;\n\n            $.each(s, function (i, p) {\n                if (typeof p[0] == \"string\") {\n                    urls.push(p[0]);\n                    points.push(p);\n                }\n            });\n        });\n\n        $.plot.image.load(urls, function (loadedImages) {\n            $.each(points, function (i, p) {\n                var url = p[0];\n                if (loadedImages[url])\n                    p[0] = loadedImages[url];\n            });\n\n            callback();\n        });\n    }\n    \n    $.plot.image.load = function (urls, callback) {\n        var missing = urls.length, loaded = {};\n        if (missing == 0)\n            callback({});\n\n        $.each(urls, function (i, url) {\n            var handler = function () {\n                --missing;\n                \n                loaded[url] = this;\n                \n                if (missing == 0)\n                    callback(loaded);\n            };\n\n            $('<img />').load(handler).error(handler).attr('src', url);\n        });\n    };\n    \n    function drawSeries(plot, ctx, series) {\n        var plotOffset = plot.getPlotOffset();\n        \n        if (!series.images || !series.images.show)\n            return;\n        \n        var points = series.datapoints.points,\n            ps = series.datapoints.pointsize;\n        \n        for (var i = 0; i < points.length; i += ps) {\n            var img = points[i],\n                x1 = points[i + 1], y1 = points[i + 2],\n                x2 = points[i + 3], y2 = points[i + 4],\n                xaxis = series.xaxis, yaxis = series.yaxis,\n                tmp;\n\n            // actually we should check img.complete, but it\n            // appears to be a somewhat unreliable indicator in\n            // IE6 (false even after load event)\n            if (!img || img.width <= 0 || img.height <= 0)\n                continue;\n\n            if (x1 > x2) {\n                tmp = x2;\n                x2 = x1;\n                x1 = tmp;\n            }\n            if (y1 > y2) {\n                tmp = y2;\n                y2 = y1;\n                y1 = tmp;\n            }\n            \n            // if the anchor is at the center of the pixel, expand the \n            // image by 1/2 pixel in each direction\n            if (series.images.anchor == \"center\") {\n                tmp = 0.5 * (x2-x1) / (img.width - 1);\n                x1 -= tmp;\n                x2 += tmp;\n                tmp = 0.5 * (y2-y1) / (img.height - 1);\n                y1 -= tmp;\n                y2 += tmp;\n            }\n            \n            // clip\n            if (x1 == x2 || y1 == y2 ||\n                x1 >= xaxis.max || x2 <= xaxis.min ||\n                y1 >= yaxis.max || y2 <= yaxis.min)\n                continue;\n\n            var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height;\n            if (x1 < xaxis.min) {\n                sx1 += (sx2 - sx1) * (xaxis.min - x1) / (x2 - x1);\n                x1 = xaxis.min;\n            }\n\n            if (x2 > xaxis.max) {\n                sx2 += (sx2 - sx1) * (xaxis.max - x2) / (x2 - x1);\n                x2 = xaxis.max;\n            }\n\n            if (y1 < yaxis.min) {\n                sy2 += (sy1 - sy2) * (yaxis.min - y1) / (y2 - y1);\n                y1 = yaxis.min;\n            }\n\n            if (y2 > yaxis.max) {\n                sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1);\n                y2 = yaxis.max;\n            }\n            \n            x1 = xaxis.p2c(x1);\n            x2 = xaxis.p2c(x2);\n            y1 = yaxis.p2c(y1);\n            y2 = yaxis.p2c(y2);\n            \n            // the transformation may have swapped us\n            if (x1 > x2) {\n                tmp = x2;\n                x2 = x1;\n                x1 = tmp;\n            }\n            if (y1 > y2) {\n                tmp = y2;\n                y2 = y1;\n                y1 = tmp;\n            }\n\n            tmp = ctx.globalAlpha;\n            ctx.globalAlpha *= series.images.alpha;\n            ctx.drawImage(img,\n                          sx1, sy1, sx2 - sx1, sy2 - sy1,\n                          x1 + plotOffset.left, y1 + plotOffset.top,\n                          x2 - x1, y2 - y1);\n            ctx.globalAlpha = tmp;\n        }\n    }\n\n    function processRawData(plot, series, data, datapoints) {\n        if (!series.images.show)\n            return;\n\n        // format is Image, x1, y1, x2, y2 (opposite corners)\n        datapoints.format = [\n            { required: true },\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true },\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true }\n        ];\n    }\n    \n    function init(plot) {\n        plot.hooks.processRawData.push(processRawData);\n        plot.hooks.drawSeries.push(drawSeries);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'image',\n        version: '1.1'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.navigate.js",
    "content": "/* Flot plugin for adding the ability to pan and zoom the plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe default behaviour is double click and scrollwheel up/down to zoom in, drag\nto pan. The plugin defines plot.zoom({ center }), plot.zoomOut() and\nplot.pan( offset ) so you easily can add custom controls. It also fires\n\"plotpan\" and \"plotzoom\" events, useful for synchronizing plots.\n\nThe plugin supports these options:\n\n\tzoom: {\n\t\tinteractive: false\n\t\ttrigger: \"dblclick\" // or \"click\" for single click\n\t\tamount: 1.5         // 2 = 200% (zoom in), 0.5 = 50% (zoom out)\n\t}\n\n\tpan: {\n\t\tinteractive: false\n\t\tcursor: \"move\"      // CSS mouse cursor value used when dragging, e.g. \"pointer\"\n\t\tframeRate: 20\n\t}\n\n\txaxis, yaxis, x2axis, y2axis: {\n\t\tzoomRange: null  // or [ number, number ] (min range, max range) or false\n\t\tpanRange: null   // or [ number, number ] (min, max) or false\n\t}\n\n\"interactive\" enables the built-in drag/click behaviour. If you enable\ninteractive for pan, then you'll have a basic plot that supports moving\naround; the same for zoom.\n\n\"amount\" specifies the default amount to zoom in (so 1.5 = 150%) relative to\nthe current viewport.\n\n\"cursor\" is a standard CSS mouse cursor string used for visual feedback to the\nuser when dragging.\n\n\"frameRate\" specifies the maximum number of times per second the plot will\nupdate itself while the user is panning around on it (set to null to disable\nintermediate pans, the plot will then not update until the mouse button is\nreleased).\n\n\"zoomRange\" is the interval in which zooming can happen, e.g. with zoomRange:\n[1, 100] the zoom will never scale the axis so that the difference between min\nand max is smaller than 1 or larger than 100. You can set either end to null\nto ignore, e.g. [1, null]. If you set zoomRange to false, zooming on that axis\nwill be disabled.\n\n\"panRange\" confines the panning to stay within a range, e.g. with panRange:\n[-10, 20] panning stops at -10 in one end and at 20 in the other. Either can\nbe null, e.g. [-10, null]. If you set panRange to false, panning on that axis\nwill be disabled.\n\nExample API usage:\n\n\tplot = $.plot(...);\n\n\t// zoom default amount in on the pixel ( 10, 20 )\n\tplot.zoom({ center: { left: 10, top: 20 } });\n\n\t// zoom out again\n\tplot.zoomOut({ center: { left: 10, top: 20 } });\n\n\t// zoom 200% in on the pixel (10, 20)\n\tplot.zoom({ amount: 2, center: { left: 10, top: 20 } });\n\n\t// pan 100 pixels to the left and 20 down\n\tplot.pan({ left: -100, top: 20 })\n\nHere, \"center\" specifies where the center of the zooming should happen. Note\nthat this is defined in pixel space, not the space of the data points (you can\nuse the p2c helpers on the axes in Flot to help you convert between these).\n\n\"amount\" is the amount to zoom the viewport relative to the current range, so\n1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is 70% (zoom out). You\ncan set the default in the options.\n\n*/\n\n// First two dependencies, jquery.event.drag.js and\n// jquery.mousewheel.js, we put them inline here to save people the\n// effort of downloading them.\n\n/*\njquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)\nLicensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt\n*/\n(function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case\"mousedown\":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,\"mousemove mouseup\",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&\"mousemove\":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY)<l.distance)break;h.target=l.target,k=f(h,\"dragstart\",j),k!==!1&&(d.dragging=j,d.proxy=h.dragProxy=a(k||j)[0]);case\"mousemove\":if(d.dragging){if(k=f(h,\"drag\",j),c.drop&&(c.drop.allowed=k!==!1,c.drop.handler(h)),k!==!1)break;h.type=\"mouseup\"}case\"mouseup\":b.remove(document,\"mousemove mouseup\",e),d.dragging&&(c.drop&&c.drop.handler(h),f(h,\"dragend\",j)),i(j,!0),d.dragging=d.proxy=l.elem=!1}return!0}function f(b,c,d){b.type=c;var e=a.event.dispatch.call(d,b);return e===!1?!1:e||b.result}function g(a){return Math.pow(a,2)}function h(){return d.dragging===!1}function i(a,b){a&&(a.unselectable=b?\"off\":\"on\",a.onselectstart=function(){return b},a.style&&(a.style.MozUserSelect=b?\"\":\"none\"))}a.fn.drag=function(a,b,c){return b&&this.bind(\"dragstart\",a),c&&this.bind(\"dragend\",c),a?this.bind(\"drag\",b?b:a):this.trigger(\"drag\")};var b=a.event,c=b.special,d=c.drag={not:\":input\",distance:0,which:1,dragging:!1,setup:function(c){c=a.extend({distance:d.distance,which:d.which,not:d.not},c||{}),c.distance=g(c.distance),b.add(this,\"mousedown\",e,c),this.attachEvent&&this.attachEvent(\"ondragstart\",h)},teardown:function(){b.remove(this,\"mousedown\",e),this===d.dragging&&(d.dragging=d.proxy=!1),i(this,!0),this.detachEvent&&this.detachEvent(\"ondragstart\",h)}};c.dragstart=c.dragend={setup:function(){},teardown:function(){}}})(jQuery);\n\n/* jquery.mousewheel.min.js\n * Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)\n * Licensed under the MIT License (LICENSE.txt).\n * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.\n * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.\n * Thanks to: Seamus Leahy for adding deltaX and deltaY\n *\n * Version: 3.0.6\n *\n * Requires: 1.2.2+\n */\n(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type=\"mousewheel\";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;void 0!==b.axis&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);void 0!==b.wheelDeltaY&&(g=b.wheelDeltaY/120);void 0!==b.wheelDeltaX&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=[\"DOMMouseScroll\",\"mousewheel\"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,!1);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,!1);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind(\"mousewheel\",a):this.trigger(\"mousewheel\")},unmousewheel:function(a){return this.unbind(\"mousewheel\",a)}})})(jQuery);\n\n\n\n\n(function ($) {\n    var options = {\n        xaxis: {\n            zoomRange: null, // or [number, number] (min range, max range)\n            panRange: null // or [number, number] (min, max)\n        },\n        zoom: {\n            interactive: false,\n            trigger: \"dblclick\", // or \"click\" for single click\n            amount: 1.5 // how much to zoom relative to current position, 2 = 200% (zoom in), 0.5 = 50% (zoom out)\n        },\n        pan: {\n            interactive: false,\n            cursor: \"move\",\n            frameRate: 20\n        }\n    };\n\n    function init(plot) {\n        function onZoomClick(e, zoomOut) {\n            var c = plot.offset();\n            c.left = e.pageX - c.left;\n            c.top = e.pageY - c.top;\n            if (zoomOut)\n                plot.zoomOut({ center: c });\n            else\n                plot.zoom({ center: c });\n        }\n\n        function onMouseWheel(e, delta) {\n            e.preventDefault();\n            onZoomClick(e, delta < 0);\n            return false;\n        }\n        \n        var prevCursor = 'default', prevPageX = 0, prevPageY = 0,\n            panTimeout = null;\n\n        function onDragStart(e) {\n            if (e.which != 1)  // only accept left-click\n                return false;\n            var c = plot.getPlaceholder().css('cursor');\n            if (c)\n                prevCursor = c;\n            plot.getPlaceholder().css('cursor', plot.getOptions().pan.cursor);\n            prevPageX = e.pageX;\n            prevPageY = e.pageY;\n        }\n        \n        function onDrag(e) {\n            var frameRate = plot.getOptions().pan.frameRate;\n            if (panTimeout || !frameRate)\n                return;\n\n            panTimeout = setTimeout(function () {\n                plot.pan({ left: prevPageX - e.pageX,\n                           top: prevPageY - e.pageY });\n                prevPageX = e.pageX;\n                prevPageY = e.pageY;\n                                                    \n                panTimeout = null;\n            }, 1 / frameRate * 1000);\n        }\n\n        function onDragEnd(e) {\n            if (panTimeout) {\n                clearTimeout(panTimeout);\n                panTimeout = null;\n            }\n                    \n            plot.getPlaceholder().css('cursor', prevCursor);\n            plot.pan({ left: prevPageX - e.pageX,\n                       top: prevPageY - e.pageY });\n        }\n        \n        function bindEvents(plot, eventHolder) {\n            var o = plot.getOptions();\n            if (o.zoom.interactive) {\n                eventHolder[o.zoom.trigger](onZoomClick);\n                eventHolder.mousewheel(onMouseWheel);\n            }\n\n            if (o.pan.interactive) {\n                eventHolder.bind(\"dragstart\", { distance: 10 }, onDragStart);\n                eventHolder.bind(\"drag\", onDrag);\n                eventHolder.bind(\"dragend\", onDragEnd);\n            }\n        }\n\n        plot.zoomOut = function (args) {\n            if (!args)\n                args = {};\n            \n            if (!args.amount)\n                args.amount = plot.getOptions().zoom.amount;\n\n            args.amount = 1 / args.amount;\n            plot.zoom(args);\n        };\n        \n        plot.zoom = function (args) {\n            if (!args)\n                args = {};\n            \n            var c = args.center,\n                amount = args.amount || plot.getOptions().zoom.amount,\n                w = plot.width(), h = plot.height();\n\n            if (!c)\n                c = { left: w / 2, top: h / 2 };\n                \n            var xf = c.left / w,\n                yf = c.top / h,\n                minmax = {\n                    x: {\n                        min: c.left - xf * w / amount,\n                        max: c.left + (1 - xf) * w / amount\n                    },\n                    y: {\n                        min: c.top - yf * h / amount,\n                        max: c.top + (1 - yf) * h / amount\n                    }\n                };\n\n            $.each(plot.getAxes(), function(_, axis) {\n                var opts = axis.options,\n                    min = minmax[axis.direction].min,\n                    max = minmax[axis.direction].max,\n                    zr = opts.zoomRange,\n                    pr = opts.panRange;\n\n                if (zr === false) // no zooming on this axis\n                    return;\n                    \n                min = axis.c2p(min);\n                max = axis.c2p(max);\n                if (min > max) {\n                    // make sure min < max\n                    var tmp = min;\n                    min = max;\n                    max = tmp;\n                }\n\n                //Check that we are in panRange\n                if (pr) {\n                    if (pr[0] != null && min < pr[0]) {\n                        min = pr[0];\n                    }\n                    if (pr[1] != null && max > pr[1]) {\n                        max = pr[1];\n                    }\n                }\n\n                var range = max - min;\n                if (zr &&\n                    ((zr[0] != null && range < zr[0] && amount >1) ||\n                     (zr[1] != null && range > zr[1] && amount <1)))\n                    return;\n            \n                opts.min = min;\n                opts.max = max;\n            });\n            \n            plot.setupGrid();\n            plot.draw();\n            \n            if (!args.preventEvent)\n                plot.getPlaceholder().trigger(\"plotzoom\", [ plot, args ]);\n        };\n\n        plot.pan = function (args) {\n            var delta = {\n                x: +args.left,\n                y: +args.top\n            };\n\n            if (isNaN(delta.x))\n                delta.x = 0;\n            if (isNaN(delta.y))\n                delta.y = 0;\n\n            $.each(plot.getAxes(), function (_, axis) {\n                var opts = axis.options,\n                    min, max, d = delta[axis.direction];\n\n                min = axis.c2p(axis.p2c(axis.min) + d),\n                max = axis.c2p(axis.p2c(axis.max) + d);\n\n                var pr = opts.panRange;\n                if (pr === false) // no panning on this axis\n                    return;\n                \n                if (pr) {\n                    // check whether we hit the wall\n                    if (pr[0] != null && pr[0] > min) {\n                        d = pr[0] - min;\n                        min += d;\n                        max += d;\n                    }\n                    \n                    if (pr[1] != null && pr[1] < max) {\n                        d = pr[1] - max;\n                        min += d;\n                        max += d;\n                    }\n                }\n                \n                opts.min = min;\n                opts.max = max;\n            });\n            \n            plot.setupGrid();\n            plot.draw();\n            \n            if (!args.preventEvent)\n                plot.getPlaceholder().trigger(\"plotpan\", [ plot, args ]);\n        };\n\n        function shutdown(plot, eventHolder) {\n            eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick);\n            eventHolder.unbind(\"mousewheel\", onMouseWheel);\n            eventHolder.unbind(\"dragstart\", onDragStart);\n            eventHolder.unbind(\"drag\", onDrag);\n            eventHolder.unbind(\"dragend\", onDragEnd);\n            if (panTimeout)\n                clearTimeout(panTimeout);\n        }\n        \n        plot.hooks.bindEvents.push(bindEvents);\n        plot.hooks.shutdown.push(shutdown);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'navigate',\n        version: '1.3'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.pie.js",
    "content": "/* Flot plugin for rendering pie charts.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin assumes that each series has a single data value, and that each\nvalue is a positive integer or zero.  Negative numbers don't make sense for a\npie chart, and have unpredictable results.  The values do NOT need to be\npassed in as percentages; the plugin will calculate the total and per-slice\npercentages internally.\n\n* Created by Brian Medendorp\n\n* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars\n\nThe plugin supports these options:\n\n\tseries: {\n\t\tpie: {\n\t\t\tshow: true/false\n\t\t\tradius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto'\n\t\t\tinnerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect\n\t\t\tstartAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result\n\t\t\ttilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show)\n\t\t\toffset: {\n\t\t\t\ttop: integer value to move the pie up or down\n\t\t\t\tleft: integer value to move the pie left or right, or 'auto'\n\t\t\t},\n\t\t\tstroke: {\n\t\t\t\tcolor: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF')\n\t\t\t\twidth: integer pixel width of the stroke\n\t\t\t},\n\t\t\tlabel: {\n\t\t\t\tshow: true/false, or 'auto'\n\t\t\t\tformatter:  a user-defined function that modifies the text/style of the label text\n\t\t\t\tradius: 0-1 for percentage of fullsize, or a specified pixel length\n\t\t\t\tbackground: {\n\t\t\t\t\tcolor: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000')\n\t\t\t\t\topacity: 0-1\n\t\t\t\t},\n\t\t\t\tthreshold: 0-1 for the percentage value at which to hide labels (if they're too small)\n\t\t\t},\n\t\t\tcombine: {\n\t\t\t\tthreshold: 0-1 for the percentage value at which to combine slices (if they're too small)\n\t\t\t\tcolor: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined\n\t\t\t\tlabel: any text value of what the combined slice should be labeled\n\t\t\t}\n\t\t\thighlight: {\n\t\t\t\topacity: 0-1\n\t\t\t}\n\t\t}\n\t}\n\nMore detail and specific examples can be found in the included HTML file.\n\n*/\n\n(function($) {\n\n\t// Maximum redraw attempts when fitting labels within the plot\n\n\tvar REDRAW_ATTEMPTS = 10;\n\n\t// Factor by which to shrink the pie when fitting labels within the plot\n\n\tvar REDRAW_SHRINK = 0.95;\n\n\tfunction init(plot) {\n\n\t\tvar canvas = null,\n\t\t\ttarget = null,\n\t\t\toptions = null,\n\t\t\tmaxRadius = null,\n\t\t\tcenterLeft = null,\n\t\t\tcenterTop = null,\n\t\t\tprocessed = false,\n\t\t\tctx = null;\n\n\t\t// interactive variables\n\n\t\tvar highlights = [];\n\n\t\t// add hook to determine if pie plugin in enabled, and then perform necessary operations\n\n\t\tplot.hooks.processOptions.push(function(plot, options) {\n\t\t\tif (options.series.pie.show) {\n\n\t\t\t\toptions.grid.show = false;\n\n\t\t\t\t// set labels.show\n\n\t\t\t\tif (options.series.pie.label.show == \"auto\") {\n\t\t\t\t\tif (options.legend.show) {\n\t\t\t\t\t\toptions.series.pie.label.show = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.series.pie.label.show = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// set radius\n\n\t\t\t\tif (options.series.pie.radius == \"auto\") {\n\t\t\t\t\tif (options.series.pie.label.show) {\n\t\t\t\t\t\toptions.series.pie.radius = 3/4;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.series.pie.radius = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// ensure sane tilt\n\n\t\t\t\tif (options.series.pie.tilt > 1) {\n\t\t\t\t\toptions.series.pie.tilt = 1;\n\t\t\t\t} else if (options.series.pie.tilt < 0) {\n\t\t\t\t\toptions.series.pie.tilt = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.bindEvents.push(function(plot, eventHolder) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tif (options.grid.hoverable) {\n\t\t\t\t\teventHolder.unbind(\"mousemove\").mousemove(onMouseMove);\n\t\t\t\t}\n\t\t\t\tif (options.grid.clickable) {\n\t\t\t\t\teventHolder.unbind(\"click\").click(onClick);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.processDatapoints.push(function(plot, series, data, datapoints) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tprocessDatapoints(plot, series, data, datapoints);\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.drawOverlay.push(function(plot, octx) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tdrawOverlay(plot, octx);\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.draw.push(function(plot, newCtx) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tdraw(plot, newCtx);\n\t\t\t}\n\t\t});\n\n\t\tfunction processDatapoints(plot, series, datapoints) {\n\t\t\tif (!processed)\t{\n\t\t\t\tprocessed = true;\n\t\t\t\tcanvas = plot.getCanvas();\n\t\t\t\ttarget = $(canvas).parent();\n\t\t\t\toptions = plot.getOptions();\n\t\t\t\tplot.setData(combine(plot.getData()));\n\t\t\t}\n\t\t}\n\n\t\tfunction combine(data) {\n\n\t\t\tvar total = 0,\n\t\t\t\tcombined = 0,\n\t\t\t\tnumCombined = 0,\n\t\t\t\tcolor = options.series.pie.combine.color,\n\t\t\t\tnewdata = [];\n\n\t\t\t// Fix up the raw data from Flot, ensuring the data is numeric\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\n\t\t\t\tvar value = data[i].data;\n\n\t\t\t\t// If the data is an array, we'll assume that it's a standard\n\t\t\t\t// Flot x-y pair, and are concerned only with the second value.\n\n\t\t\t\t// Note how we use the original array, rather than creating a\n\t\t\t\t// new one; this is more efficient and preserves any extra data\n\t\t\t\t// that the user may have stored in higher indexes.\n\n\t\t\t\tif ($.isArray(value) && value.length == 1) {\n    \t\t\t\tvalue = value[0];\n\t\t\t\t}\n\n\t\t\t\tif ($.isArray(value)) {\n\t\t\t\t\t// Equivalent to $.isNumeric() but compatible with jQuery < 1.7\n\t\t\t\t\tif (!isNaN(parseFloat(value[1])) && isFinite(value[1])) {\n\t\t\t\t\t\tvalue[1] = +value[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue[1] = 0;\n\t\t\t\t\t}\n\t\t\t\t} else if (!isNaN(parseFloat(value)) && isFinite(value)) {\n\t\t\t\t\tvalue = [1, +value];\n\t\t\t\t} else {\n\t\t\t\t\tvalue = [1, 0];\n\t\t\t\t}\n\n\t\t\t\tdata[i].data = [value];\n\t\t\t}\n\n\t\t\t// Sum up all the slices, so we can calculate percentages for each\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\ttotal += data[i].data[0][1];\n\t\t\t}\n\n\t\t\t// Count the number of slices with percentages below the combine\n\t\t\t// threshold; if it turns out to be just one, we won't combine.\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\tvar value = data[i].data[0][1];\n\t\t\t\tif (value / total <= options.series.pie.combine.threshold) {\n\t\t\t\t\tcombined += value;\n\t\t\t\t\tnumCombined++;\n\t\t\t\t\tif (!color) {\n\t\t\t\t\t\tcolor = data[i].color;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\tvar value = data[i].data[0][1];\n\t\t\t\tif (numCombined < 2 || value / total > options.series.pie.combine.threshold) {\n\t\t\t\t\tnewdata.push(\n\t\t\t\t\t\t$.extend(data[i], {     /* extend to allow keeping all other original data values\n\t\t\t\t\t\t                           and using them e.g. in labelFormatter. */\n\t\t\t\t\t\t\tdata: [[1, value]],\n\t\t\t\t\t\t\tcolor: data[i].color,\n\t\t\t\t\t\t\tlabel: data[i].label,\n\t\t\t\t\t\t\tangle: value * Math.PI * 2 / total,\n\t\t\t\t\t\t\tpercent: value / (total / 100)\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (numCombined > 1) {\n\t\t\t\tnewdata.push({\n\t\t\t\t\tdata: [[1, combined]],\n\t\t\t\t\tcolor: color,\n\t\t\t\t\tlabel: options.series.pie.combine.label,\n\t\t\t\t\tangle: combined * Math.PI * 2 / total,\n\t\t\t\t\tpercent: combined / (total / 100)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn newdata;\n\t\t}\n\n\t\tfunction draw(plot, newCtx) {\n\n\t\t\tif (!target) {\n\t\t\t\treturn; // if no series were passed\n\t\t\t}\n\n\t\t\tvar canvasWidth = plot.getPlaceholder().width(),\n\t\t\t\tcanvasHeight = plot.getPlaceholder().height(),\n\t\t\t\tlegendWidth = target.children().filter(\".legend\").children().width() || 0;\n\n\t\t\tctx = newCtx;\n\n\t\t\t// WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE!\n\n\t\t\t// When combining smaller slices into an 'other' slice, we need to\n\t\t\t// add a new series.  Since Flot gives plugins no way to modify the\n\t\t\t// list of series, the pie plugin uses a hack where the first call\n\t\t\t// to processDatapoints results in a call to setData with the new\n\t\t\t// list of series, then subsequent processDatapoints do nothing.\n\n\t\t\t// The plugin-global 'processed' flag is used to control this hack;\n\t\t\t// it starts out false, and is set to true after the first call to\n\t\t\t// processDatapoints.\n\n\t\t\t// Unfortunately this turns future setData calls into no-ops; they\n\t\t\t// call processDatapoints, the flag is true, and nothing happens.\n\n\t\t\t// To fix this we'll set the flag back to false here in draw, when\n\t\t\t// all series have been processed, so the next sequence of calls to\n\t\t\t// processDatapoints once again starts out with a slice-combine.\n\t\t\t// This is really a hack; in 0.9 we need to give plugins a proper\n\t\t\t// way to modify series before any processing begins.\n\n\t\t\tprocessed = false;\n\n\t\t\t// calculate maximum radius and center point\n\n\t\t\tmaxRadius =  Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2;\n\t\t\tcenterTop = canvasHeight / 2 + options.series.pie.offset.top;\n\t\t\tcenterLeft = canvasWidth / 2;\n\n\t\t\tif (options.series.pie.offset.left == \"auto\") {\n\t\t\t\tif (options.legend.position.match(\"w\")) {\n\t\t\t\t\tcenterLeft += legendWidth / 2;\n\t\t\t\t} else {\n\t\t\t\t\tcenterLeft -= legendWidth / 2;\n\t\t\t\t}\n\t\t\t\tif (centerLeft < maxRadius) {\n\t\t\t\t\tcenterLeft = maxRadius;\n\t\t\t\t} else if (centerLeft > canvasWidth - maxRadius) {\n\t\t\t\t\tcenterLeft = canvasWidth - maxRadius;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcenterLeft += options.series.pie.offset.left;\n\t\t\t}\n\n\t\t\tvar slices = plot.getData(),\n\t\t\t\tattempts = 0;\n\n\t\t\t// Keep shrinking the pie's radius until drawPie returns true,\n\t\t\t// indicating that all the labels fit, or we try too many times.\n\n\t\t\tdo {\n\t\t\t\tif (attempts > 0) {\n\t\t\t\t\tmaxRadius *= REDRAW_SHRINK;\n\t\t\t\t}\n\t\t\t\tattempts += 1;\n\t\t\t\tclear();\n\t\t\t\tif (options.series.pie.tilt <= 0.8) {\n\t\t\t\t\tdrawShadow();\n\t\t\t\t}\n\t\t\t} while (!drawPie() && attempts < REDRAW_ATTEMPTS)\n\n\t\t\tif (attempts >= REDRAW_ATTEMPTS) {\n\t\t\t\tclear();\n\t\t\t\ttarget.prepend(\"<div class='error'>Could not draw pie with labels contained inside canvas</div>\");\n\t\t\t}\n\n\t\t\tif (plot.setSeries && plot.insertLegend) {\n\t\t\t\tplot.setSeries(slices);\n\t\t\t\tplot.insertLegend();\n\t\t\t}\n\n\t\t\t// we're actually done at this point, just defining internal functions at this point\n\n\t\t\tfunction clear() {\n\t\t\t\tctx.clearRect(0, 0, canvasWidth, canvasHeight);\n\t\t\t\ttarget.children().filter(\".pieLabel, .pieLabelBackground\").remove();\n\t\t\t}\n\n\t\t\tfunction drawShadow() {\n\n\t\t\t\tvar shadowLeft = options.series.pie.shadow.left;\n\t\t\t\tvar shadowTop = options.series.pie.shadow.top;\n\t\t\t\tvar edge = 10;\n\t\t\t\tvar alpha = options.series.pie.shadow.alpha;\n\t\t\t\tvar radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n\t\t\t\tif (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) {\n\t\t\t\t\treturn;\t// shadow would be outside canvas, so don't draw it\n\t\t\t\t}\n\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(shadowLeft,shadowTop);\n\t\t\t\tctx.globalAlpha = alpha;\n\t\t\t\tctx.fillStyle = \"#000\";\n\n\t\t\t\t// center and rotate to starting position\n\n\t\t\t\tctx.translate(centerLeft,centerTop);\n\t\t\t\tctx.scale(1, options.series.pie.tilt);\n\n\t\t\t\t//radius -= edge;\n\n\t\t\t\tfor (var i = 1; i <= edge; i++) {\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.arc(0, 0, radius, 0, Math.PI * 2, false);\n\t\t\t\t\tctx.fill();\n\t\t\t\t\tradius -= i;\n\t\t\t\t}\n\n\t\t\t\tctx.restore();\n\t\t\t}\n\n\t\t\tfunction drawPie() {\n\n\t\t\t\tvar startAngle = Math.PI * options.series.pie.startAngle;\n\t\t\t\tvar radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n\t\t\t\t// center and rotate to starting position\n\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(centerLeft,centerTop);\n\t\t\t\tctx.scale(1, options.series.pie.tilt);\n\t\t\t\t//ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera\n\n\t\t\t\t// draw slices\n\n\t\t\t\tctx.save();\n\t\t\t\tvar currentAngle = startAngle;\n\t\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\t\t\t\t\tslices[i].startAngle = currentAngle;\n\t\t\t\t\tdrawSlice(slices[i].angle, slices[i].color, true);\n\t\t\t\t}\n\t\t\t\tctx.restore();\n\n\t\t\t\t// draw slice outlines\n\n\t\t\t\tif (options.series.pie.stroke.width > 0) {\n\t\t\t\t\tctx.save();\n\t\t\t\t\tctx.lineWidth = options.series.pie.stroke.width;\n\t\t\t\t\tcurrentAngle = startAngle;\n\t\t\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\t\t\t\t\t\tdrawSlice(slices[i].angle, options.series.pie.stroke.color, false);\n\t\t\t\t\t}\n\t\t\t\t\tctx.restore();\n\t\t\t\t}\n\n\t\t\t\t// draw donut hole\n\n\t\t\t\tdrawDonutHole(ctx);\n\n\t\t\t\tctx.restore();\n\n\t\t\t\t// Draw the labels, returning true if they fit within the plot\n\n\t\t\t\tif (options.series.pie.label.show) {\n\t\t\t\t\treturn drawLabels();\n\t\t\t\t} else return true;\n\n\t\t\t\tfunction drawSlice(angle, color, fill) {\n\n\t\t\t\t\tif (angle <= 0 || isNaN(angle)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fill) {\n\t\t\t\t\t\tctx.fillStyle = color;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.strokeStyle = color;\n\t\t\t\t\t\tctx.lineJoin = \"round\";\n\t\t\t\t\t}\n\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tif (Math.abs(angle - Math.PI * 2) > 0.000000001) {\n\t\t\t\t\t\tctx.moveTo(0, 0); // Center of the pie\n\t\t\t\t\t}\n\n\t\t\t\t\t//ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera\n\t\t\t\t\tctx.arc(0, 0, radius,currentAngle, currentAngle + angle / 2, false);\n\t\t\t\t\tctx.arc(0, 0, radius,currentAngle + angle / 2, currentAngle + angle, false);\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\t//ctx.rotate(angle); // This doesn't work properly in Opera\n\t\t\t\t\tcurrentAngle += angle;\n\n\t\t\t\t\tif (fill) {\n\t\t\t\t\t\tctx.fill();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction drawLabels() {\n\n\t\t\t\t\tvar currentAngle = startAngle;\n\t\t\t\t\tvar radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius;\n\n\t\t\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\t\t\t\t\t\tif (slices[i].percent >= options.series.pie.label.threshold * 100) {\n\t\t\t\t\t\t\tif (!drawLabel(slices[i], currentAngle, i)) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentAngle += slices[i].angle;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\n\t\t\t\t\tfunction drawLabel(slice, startAngle, index) {\n\n\t\t\t\t\t\tif (slice.data[0][1] == 0) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// format label text\n\n\t\t\t\t\t\tvar lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter;\n\n\t\t\t\t\t\tif (lf) {\n\t\t\t\t\t\t\ttext = lf(slice.label, slice);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttext = slice.label;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (plf) {\n\t\t\t\t\t\t\ttext = plf(text, slice);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar halfAngle = ((startAngle + slice.angle) + startAngle) / 2;\n\t\t\t\t\t\tvar x = centerLeft + Math.round(Math.cos(halfAngle) * radius);\n\t\t\t\t\t\tvar y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt;\n\n\t\t\t\t\t\tvar html = \"<span class='pieLabel' id='pieLabel\" + index + \"' style='position:absolute;top:\" + y + \"px;left:\" + x + \"px;'>\" + text + \"</span>\";\n\t\t\t\t\t\ttarget.append(html);\n\n\t\t\t\t\t\tvar label = target.children(\"#pieLabel\" + index);\n\t\t\t\t\t\tvar labelTop = (y - label.height() / 2);\n\t\t\t\t\t\tvar labelLeft = (x - label.width() / 2);\n\n\t\t\t\t\t\tlabel.css(\"top\", labelTop);\n\t\t\t\t\t\tlabel.css(\"left\", labelLeft);\n\n\t\t\t\t\t\t// check to make sure that the label is not outside the canvas\n\n\t\t\t\t\t\tif (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.series.pie.label.background.opacity != 0) {\n\n\t\t\t\t\t\t\t// put in the transparent background separately to avoid blended labels and label boxes\n\n\t\t\t\t\t\t\tvar c = options.series.pie.label.background.color;\n\n\t\t\t\t\t\t\tif (c == null) {\n\t\t\t\t\t\t\t\tc = slice.color;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar pos = \"top:\" + labelTop + \"px;left:\" + labelLeft + \"px;\";\n\t\t\t\t\t\t\t$(\"<div class='pieLabelBackground' style='position:absolute;width:\" + label.width() + \"px;height:\" + label.height() + \"px;\" + pos + \"background-color:\" + c + \";'></div>\")\n\t\t\t\t\t\t\t\t.css(\"opacity\", options.series.pie.label.background.opacity)\n\t\t\t\t\t\t\t\t.insertBefore(label);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} // end individual label function\n\t\t\t\t} // end drawLabels function\n\t\t\t} // end drawPie function\n\t\t} // end draw function\n\n\t\t// Placed here because it needs to be accessed from multiple locations\n\n\t\tfunction drawDonutHole(layer) {\n\t\t\tif (options.series.pie.innerRadius > 0) {\n\n\t\t\t\t// subtract the center\n\n\t\t\t\tlayer.save();\n\t\t\t\tvar innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius;\n\t\t\t\tlayer.globalCompositeOperation = \"destination-out\"; // this does not work with excanvas, but it will fall back to using the stroke color\n\t\t\t\tlayer.beginPath();\n\t\t\t\tlayer.fillStyle = options.series.pie.stroke.color;\n\t\t\t\tlayer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);\n\t\t\t\tlayer.fill();\n\t\t\t\tlayer.closePath();\n\t\t\t\tlayer.restore();\n\n\t\t\t\t// add inner stroke\n\n\t\t\t\tlayer.save();\n\t\t\t\tlayer.beginPath();\n\t\t\t\tlayer.strokeStyle = options.series.pie.stroke.color;\n\t\t\t\tlayer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);\n\t\t\t\tlayer.stroke();\n\t\t\t\tlayer.closePath();\n\t\t\t\tlayer.restore();\n\n\t\t\t\t// TODO: add extra shadow inside hole (with a mask) if the pie is tilted.\n\t\t\t}\n\t\t}\n\n\t\t//-- Additional Interactive related functions --\n\n\t\tfunction isPointInPoly(poly, pt) {\n\t\t\tfor(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)\n\t\t\t\t((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1]))\n\t\t\t\t&& (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0])\n\t\t\t\t&& (c = !c);\n\t\t\treturn c;\n\t\t}\n\n\t\tfunction findNearbySlice(mouseX, mouseY) {\n\n\t\t\tvar slices = plot.getData(),\n\t\t\t\toptions = plot.getOptions(),\n\t\t\t\tradius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius,\n\t\t\t\tx, y;\n\n\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\n\t\t\t\tvar s = slices[i];\n\n\t\t\t\tif (s.pie.show) {\n\n\t\t\t\t\tctx.save();\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(0, 0); // Center of the pie\n\t\t\t\t\t//ctx.scale(1, options.series.pie.tilt);\t// this actually seems to break everything when here.\n\t\t\t\t\tctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false);\n\t\t\t\t\tctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false);\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\tx = mouseX - centerLeft;\n\t\t\t\t\ty = mouseY - centerTop;\n\n\t\t\t\t\tif (ctx.isPointInPath) {\n\t\t\t\t\t\tif (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) {\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tdatapoint: [s.percent, s.data],\n\t\t\t\t\t\t\t\tdataIndex: 0,\n\t\t\t\t\t\t\t\tseries: s,\n\t\t\t\t\t\t\t\tseriesIndex: i\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// excanvas for IE doesn;t support isPointInPath, this is a workaround.\n\n\t\t\t\t\t\tvar p1X = radius * Math.cos(s.startAngle),\n\t\t\t\t\t\t\tp1Y = radius * Math.sin(s.startAngle),\n\t\t\t\t\t\t\tp2X = radius * Math.cos(s.startAngle + s.angle / 4),\n\t\t\t\t\t\t\tp2Y = radius * Math.sin(s.startAngle + s.angle / 4),\n\t\t\t\t\t\t\tp3X = radius * Math.cos(s.startAngle + s.angle / 2),\n\t\t\t\t\t\t\tp3Y = radius * Math.sin(s.startAngle + s.angle / 2),\n\t\t\t\t\t\t\tp4X = radius * Math.cos(s.startAngle + s.angle / 1.5),\n\t\t\t\t\t\t\tp4Y = radius * Math.sin(s.startAngle + s.angle / 1.5),\n\t\t\t\t\t\t\tp5X = radius * Math.cos(s.startAngle + s.angle),\n\t\t\t\t\t\t\tp5Y = radius * Math.sin(s.startAngle + s.angle),\n\t\t\t\t\t\t\tarrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]],\n\t\t\t\t\t\t\tarrPoint = [x, y];\n\n\t\t\t\t\t\t// TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt?\n\n\t\t\t\t\t\tif (isPointInPoly(arrPoly, arrPoint)) {\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tdatapoint: [s.percent, s.data],\n\t\t\t\t\t\t\t\tdataIndex: 0,\n\t\t\t\t\t\t\t\tseries: s,\n\t\t\t\t\t\t\t\tseriesIndex: i\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tctx.restore();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\tfunction onMouseMove(e) {\n\t\t\ttriggerClickHoverEvent(\"plothover\", e);\n\t\t}\n\n\t\tfunction onClick(e) {\n\t\t\ttriggerClickHoverEvent(\"plotclick\", e);\n\t\t}\n\n\t\t// trigger click or hover event (they send the same parameters so we share their code)\n\n\t\tfunction triggerClickHoverEvent(eventname, e) {\n\n\t\t\tvar offset = plot.offset();\n\t\t\tvar canvasX = parseInt(e.pageX - offset.left);\n\t\t\tvar canvasY =  parseInt(e.pageY - offset.top);\n\t\t\tvar item = findNearbySlice(canvasX, canvasY);\n\n\t\t\tif (options.grid.autoHighlight) {\n\n\t\t\t\t// clear auto-highlights\n\n\t\t\t\tfor (var i = 0; i < highlights.length; ++i) {\n\t\t\t\t\tvar h = highlights[i];\n\t\t\t\t\tif (h.auto == eventname && !(item && h.series == item.series)) {\n\t\t\t\t\t\tunhighlight(h.series);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// highlight the slice\n\n\t\t\tif (item) {\n\t\t\t\thighlight(item.series, eventname);\n\t\t\t}\n\n\t\t\t// trigger any hover bind events\n\n\t\t\tvar pos = { pageX: e.pageX, pageY: e.pageY };\n\t\t\ttarget.trigger(eventname, [pos, item]);\n\t\t}\n\n\t\tfunction highlight(s, auto) {\n\t\t\t//if (typeof s == \"number\") {\n\t\t\t//\ts = series[s];\n\t\t\t//}\n\n\t\t\tvar i = indexOfHighlight(s);\n\n\t\t\tif (i == -1) {\n\t\t\t\thighlights.push({ series: s, auto: auto });\n\t\t\t\tplot.triggerRedrawOverlay();\n\t\t\t} else if (!auto) {\n\t\t\t\thighlights[i].auto = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction unhighlight(s) {\n\t\t\tif (s == null) {\n\t\t\t\thighlights = [];\n\t\t\t\tplot.triggerRedrawOverlay();\n\t\t\t}\n\n\t\t\t//if (typeof s == \"number\") {\n\t\t\t//\ts = series[s];\n\t\t\t//}\n\n\t\t\tvar i = indexOfHighlight(s);\n\n\t\t\tif (i != -1) {\n\t\t\t\thighlights.splice(i, 1);\n\t\t\t\tplot.triggerRedrawOverlay();\n\t\t\t}\n\t\t}\n\n\t\tfunction indexOfHighlight(s) {\n\t\t\tfor (var i = 0; i < highlights.length; ++i) {\n\t\t\t\tvar h = highlights[i];\n\t\t\t\tif (h.series == s)\n\t\t\t\t\treturn i;\n\t\t\t}\n\t\t\treturn -1;\n\t\t}\n\n\t\tfunction drawOverlay(plot, octx) {\n\n\t\t\tvar options = plot.getOptions();\n\n\t\t\tvar radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n\t\t\toctx.save();\n\t\t\toctx.translate(centerLeft, centerTop);\n\t\t\toctx.scale(1, options.series.pie.tilt);\n\n\t\t\tfor (var i = 0; i < highlights.length; ++i) {\n\t\t\t\tdrawHighlight(highlights[i].series);\n\t\t\t}\n\n\t\t\tdrawDonutHole(octx);\n\n\t\t\toctx.restore();\n\n\t\t\tfunction drawHighlight(series) {\n\n\t\t\t\tif (series.angle <= 0 || isNaN(series.angle)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t//octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString();\n\t\t\t\toctx.fillStyle = \"rgba(255, 255, 255, \" + options.series.pie.highlight.opacity + \")\"; // this is temporary until we have access to parseColor\n\t\t\t\toctx.beginPath();\n\t\t\t\tif (Math.abs(series.angle - Math.PI * 2) > 0.000000001) {\n\t\t\t\t\toctx.moveTo(0, 0); // Center of the pie\n\t\t\t\t}\n\t\t\t\toctx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false);\n\t\t\t\toctx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false);\n\t\t\t\toctx.closePath();\n\t\t\t\toctx.fill();\n\t\t\t}\n\t\t}\n\t} // end init (plugin body)\n\n\t// define pie specific options and their default values\n\n\tvar options = {\n\t\tseries: {\n\t\t\tpie: {\n\t\t\t\tshow: false,\n\t\t\t\tradius: \"auto\",\t// actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value)\n\t\t\t\tinnerRadius: 0, /* for donut */\n\t\t\t\tstartAngle: 3/2,\n\t\t\t\ttilt: 1,\n\t\t\t\tshadow: {\n\t\t\t\t\tleft: 5,\t// shadow left offset\n\t\t\t\t\ttop: 15,\t// shadow top offset\n\t\t\t\t\talpha: 0.02\t// shadow alpha\n\t\t\t\t},\n\t\t\t\toffset: {\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: \"auto\"\n\t\t\t\t},\n\t\t\t\tstroke: {\n\t\t\t\t\tcolor: \"#fff\",\n\t\t\t\t\twidth: 1\n\t\t\t\t},\n\t\t\t\tlabel: {\n\t\t\t\t\tshow: \"auto\",\n\t\t\t\t\tformatter: function(label, slice) {\n\t\t\t\t\t\treturn \"<div style='font-size:x-small;text-align:center;padding:2px;color:\" + slice.color + \";'>\" + label + \"<br/>\" + Math.round(slice.percent) + \"%</div>\";\n\t\t\t\t\t},\t// formatter function\n\t\t\t\t\tradius: 1,\t// radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value)\n\t\t\t\t\tbackground: {\n\t\t\t\t\t\tcolor: null,\n\t\t\t\t\t\topacity: 0\n\t\t\t\t\t},\n\t\t\t\t\tthreshold: 0\t// percentage at which to hide the label (i.e. the slice is too narrow)\n\t\t\t\t},\n\t\t\t\tcombine: {\n\t\t\t\t\tthreshold: -1,\t// percentage at which to combine little slices into one larger slice\n\t\t\t\t\tcolor: null,\t// color to give the new slice (auto-generated if null)\n\t\t\t\t\tlabel: \"Other\"\t// label to give the new slice\n\t\t\t\t},\n\t\t\t\thighlight: {\n\t\t\t\t\t//color: \"#fff\",\t\t// will add this functionality once parseColor is available\n\t\t\t\t\topacity: 0.5\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: \"pie\",\n\t\tversion: \"1.1\"\n\t});\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.selection.js",
    "content": "/* Flot plugin for selecting regions of a plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\nselection: {\n\tmode: null or \"x\" or \"y\" or \"xy\",\n\tcolor: color,\n\tshape: \"round\" or \"miter\" or \"bevel\",\n\tminSize: number of pixels\n}\n\nSelection support is enabled by setting the mode to one of \"x\", \"y\" or \"xy\".\nIn \"x\" mode, the user will only be able to specify the x range, similarly for\n\"y\" mode. For \"xy\", the selection becomes a rectangle where both ranges can be\nspecified. \"color\" is color of the selection (if you need to change the color\nlater on, you can get to it with plot.getOptions().selection.color). \"shape\"\nis the shape of the corners of the selection.\n\n\"minSize\" is the minimum size a selection can be in pixels. This value can\nbe customized to determine the smallest size a selection can be and still\nhave the selection rectangle be displayed. When customizing this value, the\nfact that it refers to pixels, not axis units must be taken into account.\nThus, for example, if there is a bar graph in time mode with BarWidth set to 1\nminute, setting \"minSize\" to 1 will not make the minimum selection size 1\nminute, but rather 1 pixel. Note also that setting \"minSize\" to 0 will prevent\n\"plotunselected\" events from being fired when the user clicks the mouse without\ndragging.\n\nWhen selection support is enabled, a \"plotselected\" event will be emitted on\nthe DOM element you passed into the plot function. The event handler gets a\nparameter with the ranges selected on the axes, like this:\n\n\tplaceholder.bind( \"plotselected\", function( event, ranges ) {\n\t\talert(\"You selected \" + ranges.xaxis.from + \" to \" + ranges.xaxis.to)\n\t\t// similar for yaxis - with multiple axes, the extra ones are in\n\t\t// x2axis, x3axis, ...\n\t});\n\nThe \"plotselected\" event is only fired when the user has finished making the\nselection. A \"plotselecting\" event is fired during the process with the same\nparameters as the \"plotselected\" event, in case you want to know what's\nhappening while it's happening,\n\nA \"plotunselected\" event with no arguments is emitted when the user clicks the\nmouse to remove the selection. As stated above, setting \"minSize\" to 0 will\ndestroy this behavior.\n\nThe plugin allso adds the following methods to the plot object:\n\n- setSelection( ranges, preventEvent )\n\n  Set the selection rectangle. The passed in ranges is on the same form as\n  returned in the \"plotselected\" event. If the selection mode is \"x\", you\n  should put in either an xaxis range, if the mode is \"y\" you need to put in\n  an yaxis range and both xaxis and yaxis if the selection mode is \"xy\", like\n  this:\n\n\tsetSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } });\n\n  setSelection will trigger the \"plotselected\" event when called. If you don't\n  want that to happen, e.g. if you're inside a \"plotselected\" handler, pass\n  true as the second parameter. If you are using multiple axes, you can\n  specify the ranges on any of those, e.g. as x2axis/x3axis/... instead of\n  xaxis, the plugin picks the first one it sees.\n\n- clearSelection( preventEvent )\n\n  Clear the selection rectangle. Pass in true to avoid getting a\n  \"plotunselected\" event.\n\n- getSelection()\n\n  Returns the current selection in the same format as the \"plotselected\"\n  event. If there's currently no selection, the function returns null.\n\n*/\n\n(function ($) {\n    function init(plot) {\n        var selection = {\n                first: { x: -1, y: -1}, second: { x: -1, y: -1},\n                show: false,\n                active: false\n            };\n\n        // FIXME: The drag handling implemented here should be\n        // abstracted out, there's some similar code from a library in\n        // the navigation plugin, this should be massaged a bit to fit\n        // the Flot cases here better and reused. Doing this would\n        // make this plugin much slimmer.\n        var savedhandlers = {};\n\n        var mouseUpHandler = null;\n        \n        function onMouseMove(e) {\n            if (selection.active) {\n                updateSelection(e);\n                \n                plot.getPlaceholder().trigger(\"plotselecting\", [ getSelection() ]);\n            }\n        }\n\n        function onMouseDown(e) {\n            if (e.which != 1)  // only accept left-click\n                return;\n            \n            // cancel out any text selections\n            document.body.focus();\n\n            // prevent text selection and drag in old-school browsers\n            if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) {\n                savedhandlers.onselectstart = document.onselectstart;\n                document.onselectstart = function () { return false; };\n            }\n            if (document.ondrag !== undefined && savedhandlers.ondrag == null) {\n                savedhandlers.ondrag = document.ondrag;\n                document.ondrag = function () { return false; };\n            }\n\n            setSelectionPos(selection.first, e);\n\n            selection.active = true;\n\n            // this is a bit silly, but we have to use a closure to be\n            // able to whack the same handler again\n            mouseUpHandler = function (e) { onMouseUp(e); };\n            \n            $(document).one(\"mouseup\", mouseUpHandler);\n        }\n\n        function onMouseUp(e) {\n            mouseUpHandler = null;\n            \n            // revert drag stuff for old-school browsers\n            if (document.onselectstart !== undefined)\n                document.onselectstart = savedhandlers.onselectstart;\n            if (document.ondrag !== undefined)\n                document.ondrag = savedhandlers.ondrag;\n\n            // no more dragging\n            selection.active = false;\n            updateSelection(e);\n\n            if (selectionIsSane())\n                triggerSelectedEvent();\n            else {\n                // this counts as a clear\n                plot.getPlaceholder().trigger(\"plotunselected\", [ ]);\n                plot.getPlaceholder().trigger(\"plotselecting\", [ null ]);\n            }\n\n            return false;\n        }\n\n        function getSelection() {\n            if (!selectionIsSane())\n                return null;\n            \n            if (!selection.show) return null;\n\n            var r = {}, c1 = selection.first, c2 = selection.second;\n            $.each(plot.getAxes(), function (name, axis) {\n                if (axis.used) {\n                    var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]); \n                    r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) };\n                }\n            });\n            return r;\n        }\n\n        function triggerSelectedEvent() {\n            var r = getSelection();\n\n            plot.getPlaceholder().trigger(\"plotselected\", [ r ]);\n\n            // backwards-compat stuff, to be removed in future\n            if (r.xaxis && r.yaxis)\n                plot.getPlaceholder().trigger(\"selected\", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]);\n        }\n\n        function clamp(min, value, max) {\n            return value < min ? min: (value > max ? max: value);\n        }\n\n        function setSelectionPos(pos, e) {\n            var o = plot.getOptions();\n            var offset = plot.getPlaceholder().offset();\n            var plotOffset = plot.getPlotOffset();\n            pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width());\n            pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height());\n\n            if (o.selection.mode == \"y\")\n                pos.x = pos == selection.first ? 0 : plot.width();\n\n            if (o.selection.mode == \"x\")\n                pos.y = pos == selection.first ? 0 : plot.height();\n        }\n\n        function updateSelection(pos) {\n            if (pos.pageX == null)\n                return;\n\n            setSelectionPos(selection.second, pos);\n            if (selectionIsSane()) {\n                selection.show = true;\n                plot.triggerRedrawOverlay();\n            }\n            else\n                clearSelection(true);\n        }\n\n        function clearSelection(preventEvent) {\n            if (selection.show) {\n                selection.show = false;\n                plot.triggerRedrawOverlay();\n                if (!preventEvent)\n                    plot.getPlaceholder().trigger(\"plotunselected\", [ ]);\n            }\n        }\n\n        // function taken from markings support in Flot\n        function extractRange(ranges, coord) {\n            var axis, from, to, key, axes = plot.getAxes();\n\n            for (var k in axes) {\n                axis = axes[k];\n                if (axis.direction == coord) {\n                    key = coord + axis.n + \"axis\";\n                    if (!ranges[key] && axis.n == 1)\n                        key = coord + \"axis\"; // support x1axis as xaxis\n                    if (ranges[key]) {\n                        from = ranges[key].from;\n                        to = ranges[key].to;\n                        break;\n                    }\n                }\n            }\n\n            // backwards-compat stuff - to be removed in future\n            if (!ranges[key]) {\n                axis = coord == \"x\" ? plot.getXAxes()[0] : plot.getYAxes()[0];\n                from = ranges[coord + \"1\"];\n                to = ranges[coord + \"2\"];\n            }\n\n            // auto-reverse as an added bonus\n            if (from != null && to != null && from > to) {\n                var tmp = from;\n                from = to;\n                to = tmp;\n            }\n            \n            return { from: from, to: to, axis: axis };\n        }\n        \n        function setSelection(ranges, preventEvent) {\n            var axis, range, o = plot.getOptions();\n\n            if (o.selection.mode == \"y\") {\n                selection.first.x = 0;\n                selection.second.x = plot.width();\n            }\n            else {\n                range = extractRange(ranges, \"x\");\n\n                selection.first.x = range.axis.p2c(range.from);\n                selection.second.x = range.axis.p2c(range.to);\n            }\n\n            if (o.selection.mode == \"x\") {\n                selection.first.y = 0;\n                selection.second.y = plot.height();\n            }\n            else {\n                range = extractRange(ranges, \"y\");\n\n                selection.first.y = range.axis.p2c(range.from);\n                selection.second.y = range.axis.p2c(range.to);\n            }\n\n            selection.show = true;\n            plot.triggerRedrawOverlay();\n            if (!preventEvent && selectionIsSane())\n                triggerSelectedEvent();\n        }\n\n        function selectionIsSane() {\n            var minSize = plot.getOptions().selection.minSize;\n            return Math.abs(selection.second.x - selection.first.x) >= minSize &&\n                Math.abs(selection.second.y - selection.first.y) >= minSize;\n        }\n\n        plot.clearSelection = clearSelection;\n        plot.setSelection = setSelection;\n        plot.getSelection = getSelection;\n\n        plot.hooks.bindEvents.push(function(plot, eventHolder) {\n            var o = plot.getOptions();\n            if (o.selection.mode != null) {\n                eventHolder.mousemove(onMouseMove);\n                eventHolder.mousedown(onMouseDown);\n            }\n        });\n\n\n        plot.hooks.drawOverlay.push(function (plot, ctx) {\n            // draw selection\n            if (selection.show && selectionIsSane()) {\n                var plotOffset = plot.getPlotOffset();\n                var o = plot.getOptions();\n\n                ctx.save();\n                ctx.translate(plotOffset.left, plotOffset.top);\n\n                var c = $.color.parse(o.selection.color);\n\n                ctx.strokeStyle = c.scale('a', 0.8).toString();\n                ctx.lineWidth = 1;\n                ctx.lineJoin = o.selection.shape;\n                ctx.fillStyle = c.scale('a', 0.4).toString();\n\n                var x = Math.min(selection.first.x, selection.second.x) + 0.5,\n                    y = Math.min(selection.first.y, selection.second.y) + 0.5,\n                    w = Math.abs(selection.second.x - selection.first.x) - 1,\n                    h = Math.abs(selection.second.y - selection.first.y) - 1;\n\n                ctx.fillRect(x, y, w, h);\n                ctx.strokeRect(x, y, w, h);\n\n                ctx.restore();\n            }\n        });\n        \n        plot.hooks.shutdown.push(function (plot, eventHolder) {\n            eventHolder.unbind(\"mousemove\", onMouseMove);\n            eventHolder.unbind(\"mousedown\", onMouseDown);\n            \n            if (mouseUpHandler)\n                $(document).unbind(\"mouseup\", mouseUpHandler);\n        });\n\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: {\n            selection: {\n                mode: null, // one of null, \"x\", \"y\" or \"xy\"\n                color: \"#e8cfac\",\n                shape: \"round\", // one of \"round\", \"miter\", or \"bevel\"\n                minSize: 5 // minimum number of pixels\n            }\n        },\n        name: 'selection',\n        version: '1.1'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.stack.js",
    "content": "/* Flot plugin for stacking data sets rather than overlyaing them.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin assumes the data is sorted on x (or y if stacking horizontally).\nFor line charts, it is assumed that if a line has an undefined gap (from a\nnull point), then the line above it should have the same gap - insert zeros\ninstead of \"null\" if you want another behaviour. This also holds for the start\nand end of the chart. Note that stacking a mix of positive and negative values\nin most instances doesn't make sense (so it looks weird).\n\nTwo or more series are stacked when their \"stack\" attribute is set to the same\nkey (which can be any number or string or just \"true\"). To specify the default\nstack, you can set the stack option like this:\n\n\tseries: {\n\t\tstack: null/false, true, or a key (number/string)\n\t}\n\nYou can also specify it for a single series, like this:\n\n\t$.plot( $(\"#placeholder\"), [{\n\t\tdata: [ ... ],\n\t\tstack: true\n\t}])\n\nThe stacking order is determined by the order of the data series in the array\n(later series end up on top of the previous).\n\nInternally, the plugin modifies the datapoints in each series, adding an\noffset to the y value. For line series, extra data points are inserted through\ninterpolation. If there's a second y value, it's also adjusted (e.g for bar\ncharts or filled areas).\n\n*/\n\n(function ($) {\n    var options = {\n        series: { stack: null } // or number/string\n    };\n    \n    function init(plot) {\n        function findMatchingSeries(s, allseries) {\n            var res = null;\n            for (var i = 0; i < allseries.length; ++i) {\n                if (s == allseries[i])\n                    break;\n                \n                if (allseries[i].stack == s.stack)\n                    res = allseries[i];\n            }\n            \n            return res;\n        }\n        \n        function stackData(plot, s, datapoints) {\n            if (s.stack == null || s.stack === false)\n                return;\n\n            var other = findMatchingSeries(s, plot.getData());\n            if (!other)\n                return;\n\n            var ps = datapoints.pointsize,\n                points = datapoints.points,\n                otherps = other.datapoints.pointsize,\n                otherpoints = other.datapoints.points,\n                newpoints = [],\n                px, py, intery, qx, qy, bottom,\n                withlines = s.lines.show,\n                horizontal = s.bars.horizontal,\n                withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y),\n                withsteps = withlines && s.lines.steps,\n                fromgap = true,\n                keyOffset = horizontal ? 1 : 0,\n                accumulateOffset = horizontal ? 0 : 1,\n                i = 0, j = 0, l, m;\n\n            while (true) {\n                if (i >= points.length)\n                    break;\n\n                l = newpoints.length;\n\n                if (points[i] == null) {\n                    // copy gaps\n                    for (m = 0; m < ps; ++m)\n                        newpoints.push(points[i + m]);\n                    i += ps;\n                }\n                else if (j >= otherpoints.length) {\n                    // for lines, we can't use the rest of the points\n                    if (!withlines) {\n                        for (m = 0; m < ps; ++m)\n                            newpoints.push(points[i + m]);\n                    }\n                    i += ps;\n                }\n                else if (otherpoints[j] == null) {\n                    // oops, got a gap\n                    for (m = 0; m < ps; ++m)\n                        newpoints.push(null);\n                    fromgap = true;\n                    j += otherps;\n                }\n                else {\n                    // cases where we actually got two points\n                    px = points[i + keyOffset];\n                    py = points[i + accumulateOffset];\n                    qx = otherpoints[j + keyOffset];\n                    qy = otherpoints[j + accumulateOffset];\n                    bottom = 0;\n\n                    if (px == qx) {\n                        for (m = 0; m < ps; ++m)\n                            newpoints.push(points[i + m]);\n\n                        newpoints[l + accumulateOffset] += qy;\n                        bottom = qy;\n                        \n                        i += ps;\n                        j += otherps;\n                    }\n                    else if (px > qx) {\n                        // we got past point below, might need to\n                        // insert interpolated extra point\n                        if (withlines && i > 0 && points[i - ps] != null) {\n                            intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px);\n                            newpoints.push(qx);\n                            newpoints.push(intery + qy);\n                            for (m = 2; m < ps; ++m)\n                                newpoints.push(points[i + m]);\n                            bottom = qy; \n                        }\n\n                        j += otherps;\n                    }\n                    else { // px < qx\n                        if (fromgap && withlines) {\n                            // if we come from a gap, we just skip this point\n                            i += ps;\n                            continue;\n                        }\n                            \n                        for (m = 0; m < ps; ++m)\n                            newpoints.push(points[i + m]);\n                        \n                        // we might be able to interpolate a point below,\n                        // this can give us a better y\n                        if (withlines && j > 0 && otherpoints[j - otherps] != null)\n                            bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx);\n\n                        newpoints[l + accumulateOffset] += bottom;\n                        \n                        i += ps;\n                    }\n\n                    fromgap = false;\n                    \n                    if (l != newpoints.length && withbottom)\n                        newpoints[l + 2] += bottom;\n                }\n\n                // maintain the line steps invariant\n                if (withsteps && l != newpoints.length && l > 0\n                    && newpoints[l] != null\n                    && newpoints[l] != newpoints[l - ps]\n                    && newpoints[l + 1] != newpoints[l - ps + 1]) {\n                    for (m = 0; m < ps; ++m)\n                        newpoints[l + ps + m] = newpoints[l + m];\n                    newpoints[l + 1] = newpoints[l - ps + 1];\n                }\n            }\n\n            datapoints.points = newpoints;\n        }\n        \n        plot.hooks.processDatapoints.push(stackData);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'stack',\n        version: '1.2'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.symbol.js",
    "content": "/* Flot plugin that adds some extra symbols for plotting points.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe symbols are accessed as strings through the standard symbol options:\n\n\tseries: {\n\t\tpoints: {\n\t\t\tsymbol: \"square\" // or \"diamond\", \"triangle\", \"cross\"\n\t\t}\n\t}\n\n*/\n\n(function ($) {\n    function processRawData(plot, series, datapoints) {\n        // we normalize the area of each symbol so it is approximately the\n        // same as a circle of the given radius\n\n        var handlers = {\n            square: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2\n                var size = radius * Math.sqrt(Math.PI) / 2;\n                ctx.rect(x - size, y - size, size + size, size + size);\n            },\n            diamond: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = 2s^2  =>  s = r * sqrt(pi/2)\n                var size = radius * Math.sqrt(Math.PI / 2);\n                ctx.moveTo(x - size, y);\n                ctx.lineTo(x, y - size);\n                ctx.lineTo(x + size, y);\n                ctx.lineTo(x, y + size);\n                ctx.lineTo(x - size, y);\n            },\n            triangle: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = 1/2 * s^2 * sin (pi / 3)  =>  s = r * sqrt(2 * pi / sin(pi / 3))\n                var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));\n                var height = size * Math.sin(Math.PI / 3);\n                ctx.moveTo(x - size/2, y + height/2);\n                ctx.lineTo(x + size/2, y + height/2);\n                if (!shadow) {\n                    ctx.lineTo(x, y - height/2);\n                    ctx.lineTo(x - size/2, y + height/2);\n                }\n            },\n            cross: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2\n                var size = radius * Math.sqrt(Math.PI) / 2;\n                ctx.moveTo(x - size, y - size);\n                ctx.lineTo(x + size, y + size);\n                ctx.moveTo(x - size, y + size);\n                ctx.lineTo(x + size, y - size);\n            }\n        };\n\n        var s = series.points.symbol;\n        if (handlers[s])\n            series.points.symbol = handlers[s];\n    }\n    \n    function init(plot) {\n        plot.hooks.processDatapoints.push(processRawData);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        name: 'symbols',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.threshold.js",
    "content": "/* Flot plugin for thresholding data.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\n\tseries: {\n\t\tthreshold: {\n\t\t\tbelow: number\n\t\t\tcolor: colorspec\n\t\t}\n\t}\n\nIt can also be applied to a single series, like this:\n\n\t$.plot( $(\"#placeholder\"), [{\n\t\tdata: [ ... ],\n\t\tthreshold: { ... }\n\t}])\n\nAn array can be passed for multiple thresholding, like this:\n\n\tthreshold: [{\n\t\tbelow: number1\n\t\tcolor: color1\n\t},{\n\t\tbelow: number2\n\t\tcolor: color2\n\t}]\n\nThese multiple threshold objects can be passed in any order since they are\nsorted by the processing function.\n\nThe data points below \"below\" are drawn with the specified color. This makes\nit easy to mark points below 0, e.g. for budget data.\n\nInternally, the plugin works by splitting the data into two series, above and\nbelow the threshold. The extra series below the threshold will have its label\ncleared and the special \"originSeries\" attribute set to the original series.\nYou may need to check for this in hover events.\n\n*/\n\n(function ($) {\n    var options = {\n        series: { threshold: null } // or { below: number, color: color spec}\n    };\n    \n    function init(plot) {\n        function thresholdData(plot, s, datapoints, below, color) {\n            var ps = datapoints.pointsize, i, x, y, p, prevp,\n                thresholded = $.extend({}, s); // note: shallow copy\n\n            thresholded.datapoints = { points: [], pointsize: ps, format: datapoints.format };\n            thresholded.label = null;\n            thresholded.color = color;\n            thresholded.threshold = null;\n            thresholded.originSeries = s;\n            thresholded.data = [];\n \n            var origpoints = datapoints.points,\n                addCrossingPoints = s.lines.show;\n\n            var threspoints = [];\n            var newpoints = [];\n            var m;\n\n            for (i = 0; i < origpoints.length; i += ps) {\n                x = origpoints[i];\n                y = origpoints[i + 1];\n\n                prevp = p;\n                if (y < below)\n                    p = threspoints;\n                else\n                    p = newpoints;\n\n                if (addCrossingPoints && prevp != p && x != null\n                    && i > 0 && origpoints[i - ps] != null) {\n                    var interx = x + (below - y) * (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]);\n                    prevp.push(interx);\n                    prevp.push(below);\n                    for (m = 2; m < ps; ++m)\n                        prevp.push(origpoints[i + m]);\n                    \n                    p.push(null); // start new segment\n                    p.push(null);\n                    for (m = 2; m < ps; ++m)\n                        p.push(origpoints[i + m]);\n                    p.push(interx);\n                    p.push(below);\n                    for (m = 2; m < ps; ++m)\n                        p.push(origpoints[i + m]);\n                }\n\n                p.push(x);\n                p.push(y);\n                for (m = 2; m < ps; ++m)\n                    p.push(origpoints[i + m]);\n            }\n\n            datapoints.points = newpoints;\n            thresholded.datapoints.points = threspoints;\n            \n            if (thresholded.datapoints.points.length > 0) {\n                var origIndex = $.inArray(s, plot.getData());\n                // Insert newly-generated series right after original one (to prevent it from becoming top-most)\n                plot.getData().splice(origIndex + 1, 0, thresholded);\n            }\n                \n            // FIXME: there are probably some edge cases left in bars\n        }\n        \n        function processThresholds(plot, s, datapoints) {\n            if (!s.threshold)\n                return;\n            \n            if (s.threshold instanceof Array) {\n                s.threshold.sort(function(a, b) {\n                    return a.below - b.below;\n                });\n                \n                $(s.threshold).each(function(i, th) {\n                    thresholdData(plot, s, datapoints, th.below, th.color);\n                });\n            }\n            else {\n                thresholdData(plot, s, datapoints, s.threshold.below, s.threshold.color);\n            }\n        }\n        \n        plot.hooks.processDatapoints.push(processThresholds);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'threshold',\n        version: '1.2'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/flot/jquery.flot.time.js",
    "content": "/* Pretty handling of time axes.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nSet axis.mode to \"time\" to enable. See the section \"Time series data\" in\nAPI.txt for details.\n\n*/\n\n(function($) {\n\n\tvar options = {\n\t\txaxis: {\n\t\t\ttimezone: null,\t\t// \"browser\" for local to the client or timezone for timezone-js\n\t\t\ttimeformat: null,\t// format string to use\n\t\t\ttwelveHourClock: false,\t// 12 or 24 time in time mode\n\t\t\tmonthNames: null\t// list of names of months\n\t\t}\n\t};\n\n\t// round to nearby lower multiple of base\n\n\tfunction floorInBase(n, base) {\n\t\treturn base * Math.floor(n / base);\n\t}\n\n\t// Returns a string with the date d formatted according to fmt.\n\t// A subset of the Open Group's strftime format is supported.\n\n\tfunction formatDate(d, fmt, monthNames, dayNames) {\n\n\t\tif (typeof d.strftime == \"function\") {\n\t\t\treturn d.strftime(fmt);\n\t\t}\n\n\t\tvar leftPad = function(n, pad) {\n\t\t\tn = \"\" + n;\n\t\t\tpad = \"\" + (pad == null ? \"0\" : pad);\n\t\t\treturn n.length == 1 ? pad + n : n;\n\t\t};\n\n\t\tvar r = [];\n\t\tvar escape = false;\n\t\tvar hours = d.getHours();\n\t\tvar isAM = hours < 12;\n\n\t\tif (monthNames == null) {\n\t\t\tmonthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\t\t}\n\n\t\tif (dayNames == null) {\n\t\t\tdayNames = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\t\t}\n\n\t\tvar hours12;\n\n\t\tif (hours > 12) {\n\t\t\thours12 = hours - 12;\n\t\t} else if (hours == 0) {\n\t\t\thours12 = 12;\n\t\t} else {\n\t\t\thours12 = hours;\n\t\t}\n\n\t\tfor (var i = 0; i < fmt.length; ++i) {\n\n\t\t\tvar c = fmt.charAt(i);\n\n\t\t\tif (escape) {\n\t\t\t\tswitch (c) {\n\t\t\t\t\tcase 'a': c = \"\" + dayNames[d.getDay()]; break;\n\t\t\t\t\tcase 'b': c = \"\" + monthNames[d.getMonth()]; break;\n\t\t\t\t\tcase 'd': c = leftPad(d.getDate()); break;\n\t\t\t\t\tcase 'e': c = leftPad(d.getDate(), \" \"); break;\n\t\t\t\t\tcase 'h':\t// For back-compat with 0.7; remove in 1.0\n\t\t\t\t\tcase 'H': c = leftPad(hours); break;\n\t\t\t\t\tcase 'I': c = leftPad(hours12); break;\n\t\t\t\t\tcase 'l': c = leftPad(hours12, \" \"); break;\n\t\t\t\t\tcase 'm': c = leftPad(d.getMonth() + 1); break;\n\t\t\t\t\tcase 'M': c = leftPad(d.getMinutes()); break;\n\t\t\t\t\t// quarters not in Open Group's strftime specification\n\t\t\t\t\tcase 'q':\n\t\t\t\t\t\tc = \"\" + (Math.floor(d.getMonth() / 3) + 1); break;\n\t\t\t\t\tcase 'S': c = leftPad(d.getSeconds()); break;\n\t\t\t\t\tcase 'y': c = leftPad(d.getFullYear() % 100); break;\n\t\t\t\t\tcase 'Y': c = \"\" + d.getFullYear(); break;\n\t\t\t\t\tcase 'p': c = (isAM) ? (\"\" + \"am\") : (\"\" + \"pm\"); break;\n\t\t\t\t\tcase 'P': c = (isAM) ? (\"\" + \"AM\") : (\"\" + \"PM\"); break;\n\t\t\t\t\tcase 'w': c = \"\" + d.getDay(); break;\n\t\t\t\t}\n\t\t\t\tr.push(c);\n\t\t\t\tescape = false;\n\t\t\t} else {\n\t\t\t\tif (c == \"%\") {\n\t\t\t\t\tescape = true;\n\t\t\t\t} else {\n\t\t\t\t\tr.push(c);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn r.join(\"\");\n\t}\n\n\t// To have a consistent view of time-based data independent of which time\n\t// zone the client happens to be in we need a date-like object independent\n\t// of time zones.  This is done through a wrapper that only calls the UTC\n\t// versions of the accessor methods.\n\n\tfunction makeUtcWrapper(d) {\n\n\t\tfunction addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) {\n\t\t\tsourceObj[sourceMethod] = function() {\n\t\t\t\treturn targetObj[targetMethod].apply(targetObj, arguments);\n\t\t\t};\n\t\t};\n\n\t\tvar utc = {\n\t\t\tdate: d\n\t\t};\n\n\t\t// support strftime, if found\n\n\t\tif (d.strftime != undefined) {\n\t\t\taddProxyMethod(utc, \"strftime\", d, \"strftime\");\n\t\t}\n\n\t\taddProxyMethod(utc, \"getTime\", d, \"getTime\");\n\t\taddProxyMethod(utc, \"setTime\", d, \"setTime\");\n\n\t\tvar props = [\"Date\", \"Day\", \"FullYear\", \"Hours\", \"Milliseconds\", \"Minutes\", \"Month\", \"Seconds\"];\n\n\t\tfor (var p = 0; p < props.length; p++) {\n\t\t\taddProxyMethod(utc, \"get\" + props[p], d, \"getUTC\" + props[p]);\n\t\t\taddProxyMethod(utc, \"set\" + props[p], d, \"setUTC\" + props[p]);\n\t\t}\n\n\t\treturn utc;\n\t};\n\n\t// select time zone strategy.  This returns a date-like object tied to the\n\t// desired timezone\n\n\tfunction dateGenerator(ts, opts) {\n\t\tif (opts.timezone == \"browser\") {\n\t\t\treturn new Date(ts);\n\t\t} else if (!opts.timezone || opts.timezone == \"utc\") {\n\t\t\treturn makeUtcWrapper(new Date(ts));\n\t\t} else if (typeof timezoneJS != \"undefined\" && typeof timezoneJS.Date != \"undefined\") {\n\t\t\tvar d = new timezoneJS.Date();\n\t\t\t// timezone-js is fickle, so be sure to set the time zone before\n\t\t\t// setting the time.\n\t\t\td.setTimezone(opts.timezone);\n\t\t\td.setTime(ts);\n\t\t\treturn d;\n\t\t} else {\n\t\t\treturn makeUtcWrapper(new Date(ts));\n\t\t}\n\t}\n\t\n\t// map of app. size of time units in milliseconds\n\n\tvar timeUnitSize = {\n\t\t\"second\": 1000,\n\t\t\"minute\": 60 * 1000,\n\t\t\"hour\": 60 * 60 * 1000,\n\t\t\"day\": 24 * 60 * 60 * 1000,\n\t\t\"month\": 30 * 24 * 60 * 60 * 1000,\n\t\t\"quarter\": 3 * 30 * 24 * 60 * 60 * 1000,\n\t\t\"year\": 365.2425 * 24 * 60 * 60 * 1000\n\t};\n\n\t// the allowed tick sizes, after 1 year we use\n\t// an integer algorithm\n\n\tvar baseSpec = [\n\t\t[1, \"second\"], [2, \"second\"], [5, \"second\"], [10, \"second\"],\n\t\t[30, \"second\"], \n\t\t[1, \"minute\"], [2, \"minute\"], [5, \"minute\"], [10, \"minute\"],\n\t\t[30, \"minute\"], \n\t\t[1, \"hour\"], [2, \"hour\"], [4, \"hour\"],\n\t\t[8, \"hour\"], [12, \"hour\"],\n\t\t[1, \"day\"], [2, \"day\"], [3, \"day\"],\n\t\t[0.25, \"month\"], [0.5, \"month\"], [1, \"month\"],\n\t\t[2, \"month\"]\n\t];\n\n\t// we don't know which variant(s) we'll need yet, but generating both is\n\t// cheap\n\n\tvar specMonths = baseSpec.concat([[3, \"month\"], [6, \"month\"],\n\t\t[1, \"year\"]]);\n\tvar specQuarters = baseSpec.concat([[1, \"quarter\"], [2, \"quarter\"],\n\t\t[1, \"year\"]]);\n\n\tfunction init(plot) {\n\t\tplot.hooks.processOptions.push(function (plot, options) {\n\t\t\t$.each(plot.getAxes(), function(axisName, axis) {\n\n\t\t\t\tvar opts = axis.options;\n\n\t\t\t\tif (opts.mode == \"time\") {\n\t\t\t\t\taxis.tickGenerator = function(axis) {\n\n\t\t\t\t\t\tvar ticks = [];\n\t\t\t\t\t\tvar d = dateGenerator(axis.min, opts);\n\t\t\t\t\t\tvar minSize = 0;\n\n\t\t\t\t\t\t// make quarter use a possibility if quarters are\n\t\t\t\t\t\t// mentioned in either of these options\n\n\t\t\t\t\t\tvar spec = (opts.tickSize && opts.tickSize[1] ===\n\t\t\t\t\t\t\t\"quarter\") ||\n\t\t\t\t\t\t\t(opts.minTickSize && opts.minTickSize[1] ===\n\t\t\t\t\t\t\t\"quarter\") ? specQuarters : specMonths;\n\n\t\t\t\t\t\tif (opts.minTickSize != null) {\n\t\t\t\t\t\t\tif (typeof opts.tickSize == \"number\") {\n\t\t\t\t\t\t\t\tminSize = opts.tickSize;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tminSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (var i = 0; i < spec.length - 1; ++i) {\n\t\t\t\t\t\t\tif (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]]\n\t\t\t\t\t\t\t\t\t\t\t  + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2\n\t\t\t\t\t\t\t\t&& spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar size = spec[i][0];\n\t\t\t\t\t\tvar unit = spec[i][1];\n\n\t\t\t\t\t\t// special-case the possibility of several years\n\n\t\t\t\t\t\tif (unit == \"year\") {\n\n\t\t\t\t\t\t\t// if given a minTickSize in years, just use it,\n\t\t\t\t\t\t\t// ensuring that it's an integer\n\n\t\t\t\t\t\t\tif (opts.minTickSize != null && opts.minTickSize[1] == \"year\") {\n\t\t\t\t\t\t\t\tsize = Math.floor(opts.minTickSize[0]);\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tvar magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10));\n\t\t\t\t\t\t\t\tvar norm = (axis.delta / timeUnitSize.year) / magn;\n\n\t\t\t\t\t\t\t\tif (norm < 1.5) {\n\t\t\t\t\t\t\t\t\tsize = 1;\n\t\t\t\t\t\t\t\t} else if (norm < 3) {\n\t\t\t\t\t\t\t\t\tsize = 2;\n\t\t\t\t\t\t\t\t} else if (norm < 7.5) {\n\t\t\t\t\t\t\t\t\tsize = 5;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsize = 10;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsize *= magn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// minimum size for years is 1\n\n\t\t\t\t\t\t\tif (size < 1) {\n\t\t\t\t\t\t\t\tsize = 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taxis.tickSize = opts.tickSize || [size, unit];\n\t\t\t\t\t\tvar tickSize = axis.tickSize[0];\n\t\t\t\t\t\tunit = axis.tickSize[1];\n\n\t\t\t\t\t\tvar step = tickSize * timeUnitSize[unit];\n\n\t\t\t\t\t\tif (unit == \"second\") {\n\t\t\t\t\t\t\td.setSeconds(floorInBase(d.getSeconds(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"minute\") {\n\t\t\t\t\t\t\td.setMinutes(floorInBase(d.getMinutes(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"hour\") {\n\t\t\t\t\t\t\td.setHours(floorInBase(d.getHours(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"month\") {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"quarter\") {\n\t\t\t\t\t\t\td.setMonth(3 * floorInBase(d.getMonth() / 3,\n\t\t\t\t\t\t\t\ttickSize));\n\t\t\t\t\t\t} else if (unit == \"year\") {\n\t\t\t\t\t\t\td.setFullYear(floorInBase(d.getFullYear(), tickSize));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// reset smaller components\n\n\t\t\t\t\t\td.setMilliseconds(0);\n\n\t\t\t\t\t\tif (step >= timeUnitSize.minute) {\n\t\t\t\t\t\t\td.setSeconds(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.hour) {\n\t\t\t\t\t\t\td.setMinutes(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.day) {\n\t\t\t\t\t\t\td.setHours(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.day * 4) {\n\t\t\t\t\t\t\td.setDate(1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.month * 2) {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), 3));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.quarter * 2) {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), 6));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.year) {\n\t\t\t\t\t\t\td.setMonth(0);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar carry = 0;\n\t\t\t\t\t\tvar v = Number.NaN;\n\t\t\t\t\t\tvar prev;\n\n\t\t\t\t\t\tdo {\n\n\t\t\t\t\t\t\tprev = v;\n\t\t\t\t\t\t\tv = d.getTime();\n\t\t\t\t\t\t\tticks.push(v);\n\n\t\t\t\t\t\t\tif (unit == \"month\" || unit == \"quarter\") {\n\t\t\t\t\t\t\t\tif (tickSize < 1) {\n\n\t\t\t\t\t\t\t\t\t// a bit complicated - we'll divide the\n\t\t\t\t\t\t\t\t\t// month/quarter up but we need to take\n\t\t\t\t\t\t\t\t\t// care of fractions so we don't end up in\n\t\t\t\t\t\t\t\t\t// the middle of a day\n\n\t\t\t\t\t\t\t\t\td.setDate(1);\n\t\t\t\t\t\t\t\t\tvar start = d.getTime();\n\t\t\t\t\t\t\t\t\td.setMonth(d.getMonth() +\n\t\t\t\t\t\t\t\t\t\t(unit == \"quarter\" ? 3 : 1));\n\t\t\t\t\t\t\t\t\tvar end = d.getTime();\n\t\t\t\t\t\t\t\t\td.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize);\n\t\t\t\t\t\t\t\t\tcarry = d.getHours();\n\t\t\t\t\t\t\t\t\td.setHours(0);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\td.setMonth(d.getMonth() +\n\t\t\t\t\t\t\t\t\t\ttickSize * (unit == \"quarter\" ? 3 : 1));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (unit == \"year\") {\n\t\t\t\t\t\t\t\td.setFullYear(d.getFullYear() + tickSize);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\td.setTime(v + step);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while (v < axis.max && v != prev);\n\n\t\t\t\t\t\treturn ticks;\n\t\t\t\t\t};\n\n\t\t\t\t\taxis.tickFormatter = function (v, axis) {\n\n\t\t\t\t\t\tvar d = dateGenerator(v, axis.options);\n\n\t\t\t\t\t\t// first check global format\n\n\t\t\t\t\t\tif (opts.timeformat != null) {\n\t\t\t\t\t\t\treturn formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// possibly use quarters if quarters are mentioned in\n\t\t\t\t\t\t// any of these places\n\n\t\t\t\t\t\tvar useQuarters = (axis.options.tickSize &&\n\t\t\t\t\t\t\t\taxis.options.tickSize[1] == \"quarter\") ||\n\t\t\t\t\t\t\t(axis.options.minTickSize &&\n\t\t\t\t\t\t\t\taxis.options.minTickSize[1] == \"quarter\");\n\n\t\t\t\t\t\tvar t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]];\n\t\t\t\t\t\tvar span = axis.max - axis.min;\n\t\t\t\t\t\tvar suffix = (opts.twelveHourClock) ? \" %p\" : \"\";\n\t\t\t\t\t\tvar hourCode = (opts.twelveHourClock) ? \"%I\" : \"%H\";\n\t\t\t\t\t\tvar fmt;\n\n\t\t\t\t\t\tif (t < timeUnitSize.minute) {\n\t\t\t\t\t\t\tfmt = hourCode + \":%M:%S\" + suffix;\n\t\t\t\t\t\t} else if (t < timeUnitSize.day) {\n\t\t\t\t\t\t\tif (span < 2 * timeUnitSize.day) {\n\t\t\t\t\t\t\t\tfmt = hourCode + \":%M\" + suffix;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"%b %d \" + hourCode + \":%M\" + suffix;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (t < timeUnitSize.month) {\n\t\t\t\t\t\t\tfmt = \"%b %d\";\n\t\t\t\t\t\t} else if ((useQuarters && t < timeUnitSize.quarter) ||\n\t\t\t\t\t\t\t(!useQuarters && t < timeUnitSize.year)) {\n\t\t\t\t\t\t\tif (span < timeUnitSize.year) {\n\t\t\t\t\t\t\t\tfmt = \"%b\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"%b %Y\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (useQuarters && t < timeUnitSize.year) {\n\t\t\t\t\t\t\tif (span < timeUnitSize.year) {\n\t\t\t\t\t\t\t\tfmt = \"Q%q\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"Q%q %Y\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfmt = \"%Y\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar rt = formatDate(d, fmt, opts.monthNames, opts.dayNames);\n\n\t\t\t\t\t\treturn rt;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: 'time',\n\t\tversion: '1.0'\n\t});\n\n\t// Time-axis support used to be in Flot core, which exposed the\n\t// formatDate function on the plot object.  Various plugins depend\n\t// on the function, so we need to re-expose it here.\n\n\t$.plot.formatDate = formatDate;\n\t$.plot.dateGenerator = dateGenerator;\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/font-awesome/css/font-awesome.css",
    "content": "/*!\n *  Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.4.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-genderless:before {\n  content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n  content: \"\\f23c\";\n}\n.fa-opencart:before {\n  content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery-full:before {\n  content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"\\f245\";\n}\n.fa-i-cursor:before {\n  content: \"\\f246\";\n}\n.fa-object-group:before {\n  content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n  content: \"\\f248\";\n}\n.fa-sticky-note:before {\n  content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"\\f24c\";\n}\n.fa-clone:before {\n  content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n  content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"\\f253\";\n}\n.fa-hourglass:before {\n  content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"\\f25b\";\n}\n.fa-trademark:before {\n  content: \"\\f25c\";\n}\n.fa-registered:before {\n  content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n  content: \"\\f25e\";\n}\n.fa-gg:before {\n  content: \"\\f260\";\n}\n.fa-gg-circle:before {\n  content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n  content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\";\n}\n.fa-get-pocket:before {\n  content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"\\f266\";\n}\n.fa-safari:before {\n  content: \"\\f267\";\n}\n.fa-chrome:before {\n  content: \"\\f268\";\n}\n.fa-firefox:before {\n  content: \"\\f269\";\n}\n.fa-opera:before {\n  content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"\\f26c\";\n}\n.fa-contao:before {\n  content: \"\\f26d\";\n}\n.fa-500px:before {\n  content: \"\\f26e\";\n}\n.fa-amazon:before {\n  content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"\\f274\";\n}\n.fa-industry:before {\n  content: \"\\f275\";\n}\n.fa-map-pin:before {\n  content: \"\\f276\";\n}\n.fa-map-signs:before {\n  content: \"\\f277\";\n}\n.fa-map-o:before {\n  content: \"\\f278\";\n}\n.fa-map:before {\n  content: \"\\f279\";\n}\n.fa-commenting:before {\n  content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n  content: \"\\f27b\";\n}\n.fa-houzz:before {\n  content: \"\\f27c\";\n}\n.fa-vimeo:before {\n  content: \"\\f27d\";\n}\n.fa-black-tie:before {\n  content: \"\\f27e\";\n}\n.fa-fonticons:before {\n  content: \"\\f280\";\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/agenda-views.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/background-events.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    businessHours: true, // display business hours\n                    editable: true,\n                    events: [\n                        {\n                            title: 'Business Lunch',\n                            start: '2015-02-03T13:00:00',\n                            constraint: 'businessHours'\n                        },\n                        {\n                            title: 'Meeting',\n                            start: '2015-02-13T11:00:00',\n                            constraint: 'availableForMeeting', // defined below\n                            color: '#257e4a'\n                        },\n                        {\n                            title: 'Conference',\n                            start: '2015-02-18',\n                            end: '2015-02-20'\n                        },\n                        {\n                            title: 'Party',\n                            start: '2015-02-29T20:00:00'\n                        },\n                        // areas where \"Meeting\" must be dropped\n                        {\n                            id: 'availableForMeeting',\n                            start: '2015-02-11T10:00:00',\n                            end: '2015-02-11T16:00:00',\n                            rendering: 'background'\n                        },\n                        {\n                            id: 'availableForMeeting',\n                            start: '2015-02-13T10:00:00',\n                            end: '2015-02-13T16:00:00',\n                            rendering: 'background'\n                        },\n                        // red areas where no events can be dropped\n                        {\n                            start: '2015-02-24',\n                            end: '2015-02-28',\n                            overlap: false,\n                            rendering: 'background',\n                            color: '#ff9f89'\n                        },\n                        {\n                            start: '2015-02-06',\n                            end: '2015-02-08',\n                            overlap: false,\n                            rendering: 'background',\n                            color: '#ff9f89'\n                        }\n                    ]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/basic-views.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,basicWeek,basicDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/default.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/external-dragging.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../lib/jquery-ui.custom.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                /* initialize the external events\n                -----------------------------------------------------------------*/\n                $('#external-events .fc-event').each(function()\n                {\n                    // store data so the calendar knows to render an event upon drop\n                    $(this).data('event',\n                    {\n                        title: $.trim($(this).text()), // use the element's text as the event title\n                        stick: true // maintain when user navigates (see docs on the renderEvent method)\n                    });\n                    // make the event draggable using jQuery UI\n                    $(this).draggable(\n                    {\n                        zIndex: 999,\n                        revert: true, // will cause the event to go back to its\n                        revertDuration: 0 //  original position after the drag\n                    });\n                });\n                /* initialize the calendar\n                -----------------------------------------------------------------*/\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    editable: true,\n                    droppable: true, // this allows things to be dropped onto the calendar\n                    drop: function()\n                    {\n                        // is the \"remove after drop\" checkbox checked?\n                        if ($('#drop-remove').is(':checked'))\n                        {\n                            // if so, remove the element from the \"Draggable Events\" list\n                            $(this).remove();\n                        }\n                    }\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin-top: 40px;\n                text-align: center;\n                font-size: 14px;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n            }\n            \n            #wrap {\n                width: 1100px;\n                margin: 0 auto;\n            }\n            \n            #external-events {\n                float: left;\n                width: 150px;\n                padding: 0 10px;\n                border: 1px solid #ccc;\n                background: #eee;\n                text-align: left;\n            }\n            \n            #external-events h4 {\n                font-size: 16px;\n                margin-top: 0;\n                padding-top: 1em;\n            }\n            \n            #external-events .fc-event {\n                margin: 10px 0;\n                cursor: pointer;\n            }\n            \n            #external-events p {\n                margin: 1.5em 0;\n                font-size: 11px;\n                color: #666;\n            }\n            \n            #external-events p input {\n                margin: 0;\n                vertical-align: middle;\n            }\n            \n            #calendar {\n                float: right;\n                width: 900px;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='wrap'>\n            <div id='external-events'>\n                <h4>Draggable Events</h4>\n                <div class='fc-event'>My Event 1</div>\n                <div class='fc-event'>My Event 2</div>\n                <div class='fc-event'>My Event 3</div>\n                <div class='fc-event'>My Event 4</div>\n                <div class='fc-event'>My Event 5</div>\n                <p>\n                    <input type='checkbox' id='drop-remove' />\n                    <label for='drop-remove'>remove after drop</label>\n                </p>\n            </div>\n            <div id='calendar'></div>\n            <div style='clear:both'></div>\n        </div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/gcal.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script src='../gcal.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    // THIS KEY WON'T WORK IN PRODUCTION!!!\n                    // To make your own Google API key, follow the directions here:\n                    // http://fullcalendar.io/docs/google_calendar/\n                    googleCalendarApiKey: 'AIzaSyDcnW6WejpTOCffshGDDb4neIrXVUA1EAE',\n                    // US Holidays\n                    events: 'usa__en@holiday.calendar.google.com',\n                    eventClick: function(event)\n                    {\n                        // opens events in a popup window\n                        window.open(event.url, 'gcalevent', 'width=700,height=600');\n                        return false;\n                    },\n                    loading: function(bool)\n                    {\n                        $('#loading').toggle(bool);\n                    }\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #loading {\n                display: none;\n                position: absolute;\n                top: 10px;\n                right: 10px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='loading'>loading...</div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/json/events.json",
    "content": "[\n  {\n    \"title\": \"All Day Event\",\n    \"start\": \"2015-02-01\"\n  },\n  {\n    \"title\": \"Long Event\",\n    \"start\": \"2015-02-07\",\n    \"end\": \"2015-02-10\"\n  },\n  {\n    \"id\": \"999\",\n    \"title\": \"Repeating Event\",\n    \"start\": \"2015-02-09T16:00:00-05:00\"\n  },\n  {\n    \"id\": \"999\",\n    \"title\": \"Repeating Event\",\n    \"start\": \"2015-02-16T16:00:00-05:00\"\n  },\n  {\n    \"title\": \"Conference\",\n    \"start\": \"2015-02-11\",\n    \"end\": \"2015-02-13\"\n  },\n  {\n    \"title\": \"Meeting\",\n    \"start\": \"2015-02-12T10:30:00-05:00\",\n    \"end\": \"2015-02-12T12:30:00-05:00\"\n  },\n  {\n    \"title\": \"Lunch\",\n    \"start\": \"2015-02-12T12:00:00-05:00\"\n  },\n  {\n    \"title\": \"Meeting\",\n    \"start\": \"2015-02-12T14:30:00-05:00\"\n  },\n  {\n    \"title\": \"Happy Hour\",\n    \"start\": \"2015-02-12T17:30:00-05:00\"\n  },\n  {\n    \"title\": \"Dinner\",\n    \"start\": \"2015-02-12T20:00:00\"\n  },\n  {\n    \"title\": \"Birthday Party\",\n    \"start\": \"2015-02-13T07:00:00-05:00\"\n  },\n  {\n    \"title\": \"Click for Google\",\n    \"url\": \"http://google.com/\",\n    \"start\": \"2015-02-28\"\n  }\n]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/json.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events:\n                    {\n                        url: 'php/get-events.php',\n                        error: function()\n                        {\n                            $('#script-warning').show();\n                        }\n                    },\n                    loading: function(bool)\n                    {\n                        $('#loading').toggle(bool);\n                    }\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 0;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #script-warning {\n                display: none;\n                background: #eee;\n                border-bottom: 1px solid #ddd;\n                padding: 0 10px;\n                line-height: 40px;\n                text-align: center;\n                font-weight: bold;\n                font-size: 12px;\n                color: red;\n            }\n            \n            #loading {\n                display: none;\n                position: absolute;\n                top: 10px;\n                right: 10px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 40px auto;\n                padding: 0 10px;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='script-warning'> <code>php/get-events.php</code> must be running. </div>\n        <div id='loading'>loading...</div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/languages.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link rel='stylesheet' href='../lib/cupertino/jquery-ui.min.css' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script src='../lang-all.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                var currentLangCode = 'en';\n                // build the language selector's options\n                $.each($.fullCalendar.langs, function(langCode)\n                {\n                    $('#lang-selector').append($('<option/>').attr('value', langCode).prop('selected', langCode == currentLangCode).text(langCode));\n                });\n                // rerender the calendar when the selected option changes\n                $('#lang-selector').on('change', function()\n                {\n                    if (this.value)\n                    {\n                        currentLangCode = this.value;\n                        $('#calendar').fullCalendar('destroy');\n                        renderCalendar();\n                    }\n                });\n\n                function renderCalendar()\n                {\n                    $('#calendar').fullCalendar(\n                    {\n                        header:\n                        {\n                            left: 'prev,next today',\n                            center: 'title',\n                            right: 'month,agendaWeek,agendaDay'\n                        },\n                        defaultDate: '2015-02-12',\n                        lang: currentLangCode,\n                        buttonIcons: false, // show the prev/next text\n                        weekNumbers: true,\n                        editable: true,\n                        eventLimit: true, // allow \"more\" link when too many events\n                        events: [\n                        {\n                            title: 'All Day Event',\n                            start: '2015-02-01'\n                        },\n                        {\n                            title: 'Long Event',\n                            start: '2015-02-07',\n                            end: '2015-02-10'\n                        },\n                        {\n                            id: 999,\n                            title: 'Repeating Event',\n                            start: '2015-02-09T16:00:00'\n                        },\n                        {\n                            id: 999,\n                            title: 'Repeating Event',\n                            start: '2015-02-16T16:00:00'\n                        },\n                        {\n                            title: 'Conference',\n                            start: '2015-02-11',\n                            end: '2015-02-13'\n                        },\n                        {\n                            title: 'Meeting',\n                            start: '2015-02-12T10:30:00',\n                            end: '2015-02-12T12:30:00'\n                        },\n                        {\n                            title: 'Lunch',\n                            start: '2015-02-12T12:00:00'\n                        },\n                        {\n                            title: 'Meeting',\n                            start: '2015-02-12T14:30:00'\n                        },\n                        {\n                            title: 'Happy Hour',\n                            start: '2015-02-12T17:30:00'\n                        },\n                        {\n                            title: 'Dinner',\n                            start: '2015-02-12T20:00:00'\n                        },\n                        {\n                            title: 'Birthday Party',\n                            start: '2015-02-13T07:00:00'\n                        },\n                        {\n                            title: 'Click for Google',\n                            url: 'http://google.com/',\n                            start: '2015-02-28'\n                        }]\n                    });\n                }\n                renderCalendar();\n            });\n        </script>\n        <style>\n            body {\n                margin: 0;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #top {\n                background: #eee;\n                border-bottom: 1px solid #ddd;\n                padding: 0 10px;\n                line-height: 40px;\n                font-size: 12px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 40px auto;\n                padding: 0 10px;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='top'> Language:\n            <select id='lang-selector'></select>\n        </div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/php/get-events.php",
    "content": "<?php\n\n//--------------------------------------------------------------------------------------------------\n// This script reads event data from a JSON file and outputs those events which are within the range\n// supplied by the \"start\" and \"end\" GET parameters.\n//\n// An optional \"timezone\" GET parameter will force all ISO8601 date stings to a given timezone.\n//\n// Requires PHP 5.2.0 or higher.\n//--------------------------------------------------------------------------------------------------\n\n// Require our Event class and datetime utilities\nrequire dirname(__FILE__) . '/utils.php';\n\n// Short-circuit if the client did not give us a date range.\nif (!isset($_GET['start']) || !isset($_GET['end'])) {\n\tdie(\"Please provide a date range.\");\n}\n\n// Parse the start/end parameters.\n// These are assumed to be ISO8601 strings with no time nor timezone, like \"2013-12-29\".\n// Since no timezone will be present, they will parsed as UTC.\n$range_start = parseDateTime($_GET['start']);\n$range_end = parseDateTime($_GET['end']);\n\n// Parse the timezone parameter if it is present.\n$timezone = null;\nif (isset($_GET['timezone'])) {\n\t$timezone = new DateTimeZone($_GET['timezone']);\n}\n\n// Read and parse our events JSON file into an array of event data arrays.\n$json = file_get_contents(dirname(__FILE__) . '/../json/events.json');\n$input_arrays = json_decode($json, true);\n\n// Accumulate an output array of event data arrays.\n$output_arrays = array();\nforeach ($input_arrays as $array) {\n\n\t// Convert the input array into a useful Event object\n\t$event = new Event($array, $timezone);\n\n\t// If the event is in-bounds, add it to the output\n\tif ($event->isWithinDayRange($range_start, $range_end)) {\n\t\t$output_arrays[] = $event->toArray();\n\t}\n}\n\n// Send JSON to the client.\necho json_encode($output_arrays);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/php/get-timezones.php",
    "content": "<?php\n\n//--------------------------------------------------------------------------------------------------\n// This script outputs a JSON array of all timezones (like \"America/Chicago\") that PHP supports.\n//\n// Requires PHP 5.2.0 or higher.\n//--------------------------------------------------------------------------------------------------\n\necho json_encode(DateTimeZone::listIdentifiers());"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/php/utils.php",
    "content": "<?php\n\n//--------------------------------------------------------------------------------------------------\n// Utilities for our event-fetching scripts.\n//\n// Requires PHP 5.2.0 or higher.\n//--------------------------------------------------------------------------------------------------\n\n// PHP will fatal error if we attempt to use the DateTime class without this being set.\ndate_default_timezone_set('UTC');\n\n\nclass Event {\n\n\t// Tests whether the given ISO8601 string has a time-of-day or not\n\tconst ALL_DAY_REGEX = '/^\\d{4}-\\d\\d-\\d\\d$/'; // matches strings like \"2013-12-29\"\n\n\tpublic $title;\n\tpublic $allDay; // a boolean\n\tpublic $start; // a DateTime\n\tpublic $end; // a DateTime, or null\n\tpublic $properties = array(); // an array of other misc properties\n\n\n\t// Constructs an Event object from the given array of key=>values.\n\t// You can optionally force the timezone of the parsed dates.\n\tpublic function __construct($array, $timezone=null) {\n\n\t\t$this->title = $array['title'];\n\n\t\tif (isset($array['allDay'])) {\n\t\t\t// allDay has been explicitly specified\n\t\t\t$this->allDay = (bool)$array['allDay'];\n\t\t}\n\t\telse {\n\t\t\t// Guess allDay based off of ISO8601 date strings\n\t\t\t$this->allDay = preg_match(self::ALL_DAY_REGEX, $array['start']) &&\n\t\t\t\t(!isset($array['end']) || preg_match(self::ALL_DAY_REGEX, $array['end']));\n\t\t}\n\n\t\tif ($this->allDay) {\n\t\t\t// If dates are allDay, we want to parse them in UTC to avoid DST issues.\n\t\t\t$timezone = null;\n\t\t}\n\n\t\t// Parse dates\n\t\t$this->start = parseDateTime($array['start'], $timezone);\n\t\t$this->end = isset($array['end']) ? parseDateTime($array['end'], $timezone) : null;\n\n\t\t// Record misc properties\n\t\tforeach ($array as $name => $value) {\n\t\t\tif (!in_array($name, array('title', 'allDay', 'start', 'end'))) {\n\t\t\t\t$this->properties[$name] = $value;\n\t\t\t}\n\t\t}\n\t}\n\n\n\t// Returns whether the date range of our event intersects with the given all-day range.\n\t// $rangeStart and $rangeEnd are assumed to be dates in UTC with 00:00:00 time.\n\tpublic function isWithinDayRange($rangeStart, $rangeEnd) {\n\n\t\t// Normalize our event's dates for comparison with the all-day range.\n\t\t$eventStart = stripTime($this->start);\n\t\t$eventEnd = isset($this->end) ? stripTime($this->end) : null;\n\n\t\tif (!$eventEnd) {\n\t\t\t// No end time? Only check if the start is within range.\n\t\t\treturn $eventStart < $rangeEnd && $eventStart >= $rangeStart;\n\t\t}\n\t\telse {\n\t\t\t// Check if the two ranges intersect.\n\t\t\treturn $eventStart < $rangeEnd && $eventEnd > $rangeStart;\n\t\t}\n\t}\n\n\n\t// Converts this Event object back to a plain data array, to be used for generating JSON\n\tpublic function toArray() {\n\n\t\t// Start with the misc properties (don't worry, PHP won't affect the original array)\n\t\t$array = $this->properties;\n\n\t\t$array['title'] = $this->title;\n\n\t\t// Figure out the date format. This essentially encodes allDay into the date string.\n\t\tif ($this->allDay) {\n\t\t\t$format = 'Y-m-d'; // output like \"2013-12-29\"\n\t\t}\n\t\telse {\n\t\t\t$format = 'c'; // full ISO8601 output, like \"2013-12-29T09:00:00+08:00\"\n\t\t}\n\n\t\t// Serialize dates into strings\n\t\t$array['start'] = $this->start->format($format);\n\t\tif (isset($this->end)) {\n\t\t\t$array['end'] = $this->end->format($format);\n\t\t}\n\n\t\treturn $array;\n\t}\n\n}\n\n\n// Date Utilities\n//----------------------------------------------------------------------------------------------\n\n\n// Parses a string into a DateTime object, optionally forced into the given timezone.\nfunction parseDateTime($string, $timezone=null) {\n\t$date = new DateTime(\n\t\t$string,\n\t\t$timezone ? $timezone : new DateTimeZone('UTC')\n\t\t\t// Used only when the string is ambiguous.\n\t\t\t// Ignored if string has a timezone offset in it.\n\t);\n\tif ($timezone) {\n\t\t// If our timezone was ignored above, force it.\n\t\t$date->setTimezone($timezone);\n\t}\n\treturn $date;\n}\n\n\n// Takes the year/month/date values of the given DateTime and converts them to a new DateTime,\n// but in UTC.\nfunction stripTime($datetime) {\n\treturn new DateTime($datetime->format('Y-m-d'));\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/selectable.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    selectable: true,\n                    selectHelper: true,\n                    select: function(start, end)\n                    {\n                        var title = prompt('Event Title:');\n                        var eventData;\n                        if (title)\n                        {\n                            eventData = {\n                                title: title,\n                                start: start,\n                                end: end\n                            };\n                            $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true\n                        }\n                        $('#calendar').fullCalendar('unselect');\n                    },\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/theme.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link rel='stylesheet' href='../lib/cupertino/jquery-ui.min.css' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    theme: true,\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/demos/timezones.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                var currentTimezone = false;\n                // load the list of available timezones\n                $.getJSON('php/get-timezones.php', function(timezones)\n                {\n                    $.each(timezones, function(i, timezone)\n                    {\n                        if (timezone != 'UTC')\n                        { // UTC is already in the list\n                            $('#timezone-selector').append($(\"<option/>\").text(timezone).attr('value', timezone));\n                        }\n                    });\n                });\n                // when the timezone selector changes, rerender the calendar\n                $('#timezone-selector').on('change', function()\n                {\n                    currentTimezone = this.value || false;\n                    $('#calendar').fullCalendar('destroy');\n                    renderCalendar();\n                });\n\n                function renderCalendar()\n                {\n                    $('#calendar').fullCalendar(\n                    {\n                        header:\n                        {\n                            left: 'prev,next today',\n                            center: 'title',\n                            right: 'month,agendaWeek,agendaDay'\n                        },\n                        defaultDate: '2015-02-12',\n                        timezone: currentTimezone,\n                        editable: true,\n                        eventLimit: true, // allow \"more\" link when too many events\n                        events:\n                        {\n                            url: 'php/get-events.php',\n                            error: function()\n                            {\n                                $('#script-warning').show();\n                            }\n                        },\n                        loading: function(bool)\n                        {\n                            $('#loading').toggle(bool);\n                        },\n                        eventRender: function(event, el)\n                        {\n                            // render the timezone offset below the event title\n                            if (event.start.hasZone())\n                            {\n                                el.find('.fc-title').after($('<div class=\"tzo\"/>').text(event.start.format('Z')));\n                            }\n                        }\n                    });\n                }\n                renderCalendar();\n            });\n        </script>\n        <style>\n            body {\n                margin: 0;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #top {\n                background: #eee;\n                border-bottom: 1px solid #ddd;\n                padding: 0 10px;\n                line-height: 40px;\n                font-size: 12px;\n            }\n            \n            .left {\n                float: left\n            }\n            \n            .right {\n                float: right\n            }\n            \n            .clear {\n                clear: both\n            }\n            \n            #script-warning,\n            #loading {\n                display: none\n            }\n            \n            #script-warning {\n                font-weight: bold;\n                color: red\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 40px auto;\n                padding: 0 10px;\n            }\n            \n            .tzo {\n                color: #000;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='top'>\n            <div class='left'> Timezone:\n                <select id='timezone-selector'>\n                    <option value='' selected>none</option>\n                    <option value='local'>local</option>\n                    <option value='UTC'>UTC</option>\n                </select>\n            </div>\n            <div class='right'>\n                <span id='loading'>loading...</span>\n                <span id='script-warning'><code>php/get-events.php</code> must be running.</span>\n            </div>\n            <div class='clear'></div>\n        </div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/fullcalendar.css",
    "content": "/*!\n * FullCalendar v2.4.0 Stylesheet\n * Docs & License: http://fullcalendar.io/\n * (c) 2015 Adam Shaw\n */\n\n\n.fc {\n\tdirection: ltr;\n\ttext-align: left;\n}\n\n.fc-rtl {\n\ttext-align: right;\n}\n\nbody .fc { /* extra precedence to overcome jqui */\n\tfont-size: 1em;\n}\n\n\n/* Colors\n--------------------------------------------------------------------------------------------------*/\n\n.fc-unthemed th,\n.fc-unthemed td,\n.fc-unthemed thead,\n.fc-unthemed tbody,\n.fc-unthemed .fc-divider,\n.fc-unthemed .fc-row,\n.fc-unthemed .fc-popover {\n\tborder-color: #ddd;\n}\n\n.fc-unthemed .fc-popover {\n\tbackground-color: #fff;\n}\n\n.fc-unthemed .fc-divider,\n.fc-unthemed .fc-popover .fc-header {\n\tbackground: #eee;\n}\n\n.fc-unthemed .fc-popover .fc-header .fc-close {\n\tcolor: #666;\n}\n\n.fc-unthemed .fc-today {\n\tbackground: #fcf8e3;\n}\n\n.fc-highlight { /* when user is selecting cells */\n\tbackground: #bce8f1;\n\topacity: .3;\n\tfilter: alpha(opacity=30); /* for IE */\n}\n\n.fc-bgevent { /* default look for background events */\n\tbackground: rgb(143, 223, 130);\n\topacity: .3;\n\tfilter: alpha(opacity=30); /* for IE */\n}\n\n.fc-nonbusiness { /* default look for non-business-hours areas */\n\t/* will inherit .fc-bgevent's styles */\n\tbackground: #d7d7d7;\n}\n\n\n/* Icons (inline elements with styled text that mock arrow icons)\n--------------------------------------------------------------------------------------------------*/\n\n.fc-icon {\n\tdisplay: inline-block;\n\twidth: 1em;\n\theight: 1em;\n\tline-height: 1em;\n\tfont-size: 1em;\n\ttext-align: center;\n\toverflow: hidden;\n\tfont-family: \"Courier New\", Courier, monospace;\n\n\t/* don't allow browser text-selection */\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\t}\n\n/*\nAcceptable font-family overrides for individual icons:\n\t\"Arial\", sans-serif\n\t\"Times New Roman\", serif\n\nNOTE: use percentage font sizes or else old IE chokes\n*/\n\n.fc-icon:after {\n\tposition: relative;\n\tmargin: 0 -1em; /* ensures character will be centered, regardless of width */\n}\n\n.fc-icon-left-single-arrow:after {\n\tcontent: \"\\02039\";\n\tfont-weight: bold;\n\tfont-size: 200%;\n\ttop: -7%;\n\tleft: 3%;\n}\n\n.fc-icon-right-single-arrow:after {\n\tcontent: \"\\0203A\";\n\tfont-weight: bold;\n\tfont-size: 200%;\n\ttop: -7%;\n\tleft: -3%;\n}\n\n.fc-icon-left-double-arrow:after {\n\tcontent: \"\\000AB\";\n\tfont-size: 160%;\n\ttop: -7%;\n}\n\n.fc-icon-right-double-arrow:after {\n\tcontent: \"\\000BB\";\n\tfont-size: 160%;\n\ttop: -7%;\n}\n\n.fc-icon-left-triangle:after {\n\tcontent: \"\\25C4\";\n\tfont-size: 125%;\n\ttop: 3%;\n\tleft: -2%;\n}\n\n.fc-icon-right-triangle:after {\n\tcontent: \"\\25BA\";\n\tfont-size: 125%;\n\ttop: 3%;\n\tleft: 2%;\n}\n\n.fc-icon-down-triangle:after {\n\tcontent: \"\\25BC\";\n\tfont-size: 125%;\n\ttop: 2%;\n}\n\n.fc-icon-x:after {\n\tcontent: \"\\000D7\";\n\tfont-size: 200%;\n\ttop: 6%;\n}\n\n\n/* Buttons (styled <button> tags, normalized to work cross-browser)\n--------------------------------------------------------------------------------------------------*/\n\n.fc button {\n\t/* force height to include the border and padding */\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n\tbox-sizing: border-box;\n\n\t/* dimensions */\n\tmargin: 0;\n\theight: 2.1em;\n\tpadding: 0 .6em;\n\n\t/* text & cursor */\n\tfont-size: 1em; /* normalize */\n\twhite-space: nowrap;\n\tcursor: pointer;\n}\n\n/* Firefox has an annoying inner border */\n.fc button::-moz-focus-inner { margin: 0; padding: 0; }\n\t\n.fc-state-default { /* non-theme */\n\tborder: 1px solid;\n}\n\n.fc-state-default.fc-corner-left { /* non-theme */\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n}\n\n.fc-state-default.fc-corner-right { /* non-theme */\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n}\n\n/* icons in buttons */\n\n.fc button .fc-icon { /* non-theme */\n\tposition: relative;\n\ttop: -0.05em; /* seems to be a good adjustment across browsers */\n\tmargin: 0 .2em;\n\tvertical-align: middle;\n}\n\t\n/*\n  button states\n  borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)\n*/\n\n.fc-state-default {\n\tbackground-color: #f5f5f5;\n\tbackground-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);\n\tbackground-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));\n\tbackground-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);\n\tbackground-image: -o-linear-gradient(top, #ffffff, #e6e6e6);\n\tbackground-image: linear-gradient(to bottom, #ffffff, #e6e6e6);\n\tbackground-repeat: repeat-x;\n\tborder-color: #e6e6e6 #e6e6e6 #bfbfbf;\n\tborder-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n\tcolor: #333;\n\ttext-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);\n\tbox-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.fc-state-hover,\n.fc-state-down,\n.fc-state-active,\n.fc-state-disabled {\n\tcolor: #333333;\n\tbackground-color: #e6e6e6;\n}\n\n.fc-state-hover {\n\tcolor: #333333;\n\ttext-decoration: none;\n\tbackground-position: 0 -15px;\n\t-webkit-transition: background-position 0.1s linear;\n\t   -moz-transition: background-position 0.1s linear;\n\t     -o-transition: background-position 0.1s linear;\n\t        transition: background-position 0.1s linear;\n}\n\n.fc-state-down,\n.fc-state-active {\n\tbackground-color: #cccccc;\n\tbackground-image: none;\n\tbox-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.fc-state-disabled {\n\tcursor: default;\n\tbackground-image: none;\n\topacity: 0.65;\n\tfilter: alpha(opacity=65);\n\tbox-shadow: none;\n}\n\n\n/* Buttons Groups\n--------------------------------------------------------------------------------------------------*/\n\n.fc-button-group {\n\tdisplay: inline-block;\n}\n\n/*\nevery button that is not first in a button group should scootch over one pixel and cover the\nprevious button's border...\n*/\n\n.fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */\n\tfloat: left;\n\tmargin: 0 0 0 -1px;\n}\n\n.fc .fc-button-group > :first-child { /* same */\n\tmargin-left: 0;\n}\n\n\n/* Popover\n--------------------------------------------------------------------------------------------------*/\n\n.fc-popover {\n\tposition: absolute;\n\tbox-shadow: 0 2px 6px rgba(0,0,0,.15);\n}\n\n.fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */\n\tpadding: 2px 4px;\n}\n\n.fc-popover .fc-header .fc-title {\n\tmargin: 0 2px;\n}\n\n.fc-popover .fc-header .fc-close {\n\tcursor: pointer;\n}\n\n.fc-ltr .fc-popover .fc-header .fc-title,\n.fc-rtl .fc-popover .fc-header .fc-close {\n\tfloat: left;\n}\n\n.fc-rtl .fc-popover .fc-header .fc-title,\n.fc-ltr .fc-popover .fc-header .fc-close {\n\tfloat: right;\n}\n\n/* unthemed */\n\n.fc-unthemed .fc-popover {\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n\n.fc-unthemed .fc-popover .fc-header .fc-close {\n\tfont-size: .9em;\n\tmargin-top: 2px;\n}\n\n/* jqui themed */\n\n.fc-popover > .ui-widget-header + .ui-widget-content {\n\tborder-top: 0; /* where they meet, let the header have the border */\n}\n\n\n/* Misc Reusable Components\n--------------------------------------------------------------------------------------------------*/\n\n.fc-divider {\n\tborder-style: solid;\n\tborder-width: 1px;\n}\n\nhr.fc-divider {\n\theight: 0;\n\tmargin: 0;\n\tpadding: 0 0 2px; /* height is unreliable across browsers, so use padding */\n\tborder-width: 1px 0;\n}\n\n.fc-clear {\n\tclear: both;\n}\n\n.fc-bg,\n.fc-bgevent-skeleton,\n.fc-highlight-skeleton,\n.fc-helper-skeleton {\n\t/* these element should always cling to top-left/right corners */\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n.fc-bg {\n\tbottom: 0; /* strech bg to bottom edge */\n}\n\n.fc-bg table {\n\theight: 100%; /* strech bg to bottom edge */\n}\n\n\n/* Tables\n--------------------------------------------------------------------------------------------------*/\n\n.fc table {\n\twidth: 100%;\n\ttable-layout: fixed;\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n\tfont-size: 1em; /* normalize cross-browser */\n}\n\n.fc th {\n\ttext-align: center;\n}\n\n.fc th,\n.fc td {\n\tborder-style: solid;\n\tborder-width: 1px;\n\tpadding: 0;\n\tvertical-align: top;\n}\n\n.fc td.fc-today {\n\tborder-style: double; /* overcome neighboring borders */\n}\n\n\n/* Fake Table Rows\n--------------------------------------------------------------------------------------------------*/\n\n.fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */\n\t/* no visible border by default. but make available if need be (scrollbar width compensation) */\n\tborder-style: solid;\n\tborder-width: 0;\n}\n\n.fc-row table {\n\t/* don't put left/right border on anything within a fake row.\n\t   the outer tbody will worry about this */\n\tborder-left: 0 hidden transparent;\n\tborder-right: 0 hidden transparent;\n\n\t/* no bottom borders on rows */\n\tborder-bottom: 0 hidden transparent; \n}\n\n.fc-row:first-child table {\n\tborder-top: 0 hidden transparent; /* no top border on first row */\n}\n\n\n/* Day Row (used within the header and the DayGrid)\n--------------------------------------------------------------------------------------------------*/\n\n.fc-row {\n\tposition: relative;\n}\n\n.fc-row .fc-bg {\n\tz-index: 1;\n}\n\n/* highlighting cells & background event skeleton */\n\n.fc-row .fc-bgevent-skeleton,\n.fc-row .fc-highlight-skeleton {\n\tbottom: 0; /* stretch skeleton to bottom of row */\n}\n\n.fc-row .fc-bgevent-skeleton table,\n.fc-row .fc-highlight-skeleton table {\n\theight: 100%; /* stretch skeleton to bottom of row */\n}\n\n.fc-row .fc-highlight-skeleton td,\n.fc-row .fc-bgevent-skeleton td {\n\tborder-color: transparent;\n}\n\n.fc-row .fc-bgevent-skeleton {\n\tz-index: 2;\n\n}\n\n.fc-row .fc-highlight-skeleton {\n\tz-index: 3;\n}\n\n/*\nrow content (which contains day/week numbers and events) as well as \"helper\" (which contains\ntemporary rendered events).\n*/\n\n.fc-row .fc-content-skeleton {\n\tposition: relative;\n\tz-index: 4;\n\tpadding-bottom: 2px; /* matches the space above the events */\n}\n\n.fc-row .fc-helper-skeleton {\n\tz-index: 5;\n}\n\n.fc-row .fc-content-skeleton td,\n.fc-row .fc-helper-skeleton td {\n\t/* see-through to the background below */\n\tbackground: none; /* in case <td>s are globally styled */\n\tborder-color: transparent;\n\n\t/* don't put a border between events and/or the day number */\n\tborder-bottom: 0;\n}\n\n.fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */\n.fc-row .fc-helper-skeleton tbody td {\n\t/* don't put a border between event cells */\n\tborder-top: 0;\n}\n\n\n/* Scrolling Container\n--------------------------------------------------------------------------------------------------*/\n\n.fc-scroller { /* this class goes on elements for guaranteed vertical scrollbars */\n\toverflow-y: scroll;\n\toverflow-x: hidden;\n}\n\n.fc-scroller > * { /* we expect an immediate inner element */\n\tposition: relative; /* re-scope all positions */\n\twidth: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */\n\toverflow: hidden; /* don't let negative margins or absolute positioning create further scroll */\n}\n\n\n/* Global Event Styles\n--------------------------------------------------------------------------------------------------*/\n\n.fc-event {\n\tposition: relative; /* for resize handle and other inner positioning */\n\tdisplay: block; /* make the <a> tag block */\n\tfont-size: .85em;\n\tline-height: 1.3;\n\tborder-radius: 3px;\n\tborder: 1px solid #3a87ad; /* default BORDER color */\n\tbackground-color: #3a87ad; /* default BACKGROUND color */\n\tfont-weight: normal; /* undo jqui's ui-widget-header bold */\n}\n\n/* overpower some of bootstrap's and jqui's styles on <a> tags */\n.fc-event,\n.fc-event:hover,\n.ui-widget .fc-event {\n\tcolor: #fff; /* default TEXT color */\n\ttext-decoration: none; /* if <a> has an href */\n}\n\n.fc-event[href],\n.fc-event.fc-draggable {\n\tcursor: pointer; /* give events with links and draggable events a hand mouse pointer */\n}\n\n.fc-not-allowed, /* causes a \"warning\" cursor. applied on body */\n.fc-not-allowed .fc-event { /* to override an event's custom cursor */\n\tcursor: not-allowed;\n}\n\n.fc-event .fc-bg { /* the generic .fc-bg already does position */\n\tz-index: 1;\n\tbackground: #fff;\n\topacity: .25;\n\tfilter: alpha(opacity=25); /* for IE */\n}\n\n.fc-event .fc-content {\n\tposition: relative;\n\tz-index: 2;\n}\n\n.fc-event .fc-resizer {\n\tposition: absolute;\n\tz-index: 3;\n}\n\n\n/* Horizontal Events\n--------------------------------------------------------------------------------------------------*/\n\n/* events that are continuing to/from another week. kill rounded corners and butt up against edge */\n\n.fc-ltr .fc-h-event.fc-not-start,\n.fc-rtl .fc-h-event.fc-not-end {\n\tmargin-left: 0;\n\tborder-left-width: 0;\n\tpadding-left: 1px; /* replace the border with padding */\n\tborder-top-left-radius: 0;\n\tborder-bottom-left-radius: 0;\n}\n\n.fc-ltr .fc-h-event.fc-not-end,\n.fc-rtl .fc-h-event.fc-not-start {\n\tmargin-right: 0;\n\tborder-right-width: 0;\n\tpadding-right: 1px; /* replace the border with padding */\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n/* resizer */\n\n.fc-h-event .fc-resizer { /* positioned it to overcome the event's borders */\n\ttop: -1px;\n\tbottom: -1px;\n\tleft: -1px;\n\tright: -1px;\n\twidth: 5px;\n}\n\n/* left resizer  */\n.fc-ltr .fc-h-event .fc-start-resizer,\n.fc-ltr .fc-h-event .fc-start-resizer:before,\n.fc-ltr .fc-h-event .fc-start-resizer:after,\n.fc-rtl .fc-h-event .fc-end-resizer,\n.fc-rtl .fc-h-event .fc-end-resizer:before,\n.fc-rtl .fc-h-event .fc-end-resizer:after {\n\tright: auto; /* ignore the right and only use the left */\n\tcursor: w-resize;\n}\n\n/* right resizer */\n.fc-ltr .fc-h-event .fc-end-resizer,\n.fc-ltr .fc-h-event .fc-end-resizer:before,\n.fc-ltr .fc-h-event .fc-end-resizer:after,\n.fc-rtl .fc-h-event .fc-start-resizer,\n.fc-rtl .fc-h-event .fc-start-resizer:before,\n.fc-rtl .fc-h-event .fc-start-resizer:after {\n\tleft: auto; /* ignore the left and only use the right */\n\tcursor: e-resize;\n}\n\n\n/* DayGrid events\n----------------------------------------------------------------------------------------------------\nWe use the full \"fc-day-grid-event\" class instead of using descendants because the event won't\nbe a descendant of the grid when it is being dragged.\n*/\n\n.fc-day-grid-event {\n\tmargin: 1px 2px 0; /* spacing between events and edges */\n\tpadding: 0 1px;\n}\n\n\n.fc-day-grid-event .fc-content { /* force events to be one-line tall */\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.fc-day-grid-event .fc-time {\n\tfont-weight: bold;\n}\n\n.fc-day-grid-event .fc-resizer { /* enlarge the default hit area */\n\tleft: -3px;\n\tright: -3px;\n\twidth: 7px;\n}\n\n\n/* Event Limiting\n--------------------------------------------------------------------------------------------------*/\n\n/* \"more\" link that represents hidden events */\n\na.fc-more {\n\tmargin: 1px 3px;\n\tfont-size: .85em;\n\tcursor: pointer;\n\ttext-decoration: none;\n}\n\na.fc-more:hover {\n\ttext-decoration: underline;\n}\n\n.fc-limited { /* rows and cells that are hidden because of a \"more\" link */\n\tdisplay: none;\n}\n\n/* popover that appears when \"more\" link is clicked */\n\n.fc-day-grid .fc-row {\n\tz-index: 1; /* make the \"more\" popover one higher than this */\n}\n\n.fc-more-popover {\n\tz-index: 2;\n\twidth: 220px;\n}\n\n.fc-more-popover .fc-event-container {\n\tpadding: 10px;\n}\n\n/* Toolbar\n--------------------------------------------------------------------------------------------------*/\n\n.fc-toolbar {\n\ttext-align: center;\n\tmargin-bottom: 1em;\n}\n\n.fc-toolbar .fc-left {\n\tfloat: left;\n}\n\n.fc-toolbar .fc-right {\n\tfloat: right;\n}\n\n.fc-toolbar .fc-center {\n\tdisplay: inline-block;\n}\n\n/* the things within each left/right/center section */\n.fc .fc-toolbar > * > * { /* extra precedence to override button border margins */\n\tfloat: left;\n\tmargin-left: .75em;\n}\n\n/* the first thing within each left/center/right section */\n.fc .fc-toolbar > * > :first-child { /* extra precedence to override button border margins */\n\tmargin-left: 0;\n}\n\t\n/* title text */\n\n.fc-toolbar h2 {\n\tmargin: 0;\n}\n\n/* button layering (for border precedence) */\n\n.fc-toolbar button {\n\tposition: relative;\n}\n\n.fc-toolbar .fc-state-hover,\n.fc-toolbar .ui-state-hover {\n\tz-index: 2;\n}\n\t\n.fc-toolbar .fc-state-down {\n\tz-index: 3;\n}\n\n.fc-toolbar .fc-state-active,\n.fc-toolbar .ui-state-active {\n\tz-index: 4;\n}\n\n.fc-toolbar button:focus {\n\tz-index: 5;\n}\n\n\n/* View Structure\n--------------------------------------------------------------------------------------------------*/\n\n/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */\n/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */\n.fc-view-container *,\n.fc-view-container *:before,\n.fc-view-container *:after {\n\t-webkit-box-sizing: content-box;\n\t   -moz-box-sizing: content-box;\n\t        box-sizing: content-box;\n}\n\n.fc-view, /* scope positioning and z-index's for everything within the view */\n.fc-view > table { /* so dragged elements can be above the view's main element */\n\tposition: relative;\n\tz-index: 1;\n}\n\n/* BasicView\n--------------------------------------------------------------------------------------------------*/\n\n/* day row structure */\n\n.fc-basicWeek-view .fc-content-skeleton,\n.fc-basicDay-view .fc-content-skeleton {\n\t/* we are sure there are no day numbers in these views, so... */\n\tpadding-top: 1px; /* add a pixel to make sure there are 2px padding above events */\n\tpadding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */\n}\n\n.fc-basic-view .fc-body .fc-row {\n\tmin-height: 4em; /* ensure that all rows are at least this tall */\n}\n\n/* a \"rigid\" row will take up a constant amount of height because content-skeleton is absolute */\n\n.fc-row.fc-rigid {\n\toverflow: hidden;\n}\n\n.fc-row.fc-rigid .fc-content-skeleton {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n/* week and day number styling */\n\n.fc-basic-view .fc-week-number,\n.fc-basic-view .fc-day-number {\n\tpadding: 0 2px;\n}\n\n.fc-basic-view td.fc-week-number span,\n.fc-basic-view td.fc-day-number {\n\tpadding-top: 2px;\n\tpadding-bottom: 2px;\n}\n\n.fc-basic-view .fc-week-number {\n\ttext-align: center;\n}\n\n.fc-basic-view .fc-week-number span {\n\t/* work around the way we do column resizing and ensure a minimum width */\n\tdisplay: inline-block;\n\tmin-width: 1.25em;\n}\n\n.fc-ltr .fc-basic-view .fc-day-number {\n\ttext-align: right;\n}\n\n.fc-rtl .fc-basic-view .fc-day-number {\n\ttext-align: left;\n}\n\n.fc-day-number.fc-other-month {\n\topacity: 0.3;\n\tfilter: alpha(opacity=30); /* for IE */\n\t/* opacity with small font can sometimes look too faded\n\t   might want to set the 'color' property instead\n\t   making day-numbers bold also fixes the problem */\n}\n\n/* AgendaView all-day area\n--------------------------------------------------------------------------------------------------*/\n\n.fc-agenda-view .fc-day-grid {\n\tposition: relative;\n\tz-index: 2; /* so the \"more..\" popover will be over the time grid */\n}\n\n.fc-agenda-view .fc-day-grid .fc-row {\n\tmin-height: 3em; /* all-day section will never get shorter than this */\n}\n\n.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {\n\tpadding-top: 1px; /* add a pixel to make sure there are 2px padding above events */\n\tpadding-bottom: 1em; /* give space underneath events for clicking/selecting days */\n}\n\n\n/* TimeGrid axis running down the side (for both the all-day area and the slot area)\n--------------------------------------------------------------------------------------------------*/\n\n.fc .fc-axis { /* .fc to overcome default cell styles */\n\tvertical-align: middle;\n\tpadding: 0 4px;\n\twhite-space: nowrap;\n}\n\n.fc-ltr .fc-axis {\n\ttext-align: right;\n}\n\n.fc-rtl .fc-axis {\n\ttext-align: left;\n}\n\n.ui-widget td.fc-axis {\n\tfont-weight: normal; /* overcome jqui theme making it bold */\n}\n\n\n/* TimeGrid Structure\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid-container, /* so scroll container's z-index is below all-day */\n.fc-time-grid { /* so slats/bg/content/etc positions get scoped within here */\n\tposition: relative;\n\tz-index: 1;\n}\n\n.fc-time-grid {\n\tmin-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */\n}\n\n.fc-time-grid table { /* don't put outer borders on slats/bg/content/etc */\n\tborder: 0 hidden transparent;\n}\n\n.fc-time-grid > .fc-bg {\n\tz-index: 1;\n}\n\n.fc-time-grid .fc-slats,\n.fc-time-grid > hr { /* the <hr> AgendaView injects when grid is shorter than scroller */\n\tposition: relative;\n\tz-index: 2;\n}\n\n.fc-time-grid .fc-bgevent-skeleton,\n.fc-time-grid .fc-content-skeleton {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n.fc-time-grid .fc-bgevent-skeleton {\n\tz-index: 3;\n}\n\n.fc-time-grid .fc-highlight-skeleton {\n\tz-index: 4;\n}\n\n.fc-time-grid .fc-content-skeleton {\n\tz-index: 5;\n}\n\n.fc-time-grid .fc-helper-skeleton {\n\tz-index: 6;\n}\n\n\n/* TimeGrid Slats (lines that run horizontally)\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid .fc-slats td {\n\theight: 1.5em;\n\tborder-bottom: 0; /* each cell is responsible for its top border */\n}\n\n.fc-time-grid .fc-slats .fc-minor td {\n\tborder-top-style: dotted;\n}\n\n.fc-time-grid .fc-slats .ui-widget-content { /* for jqui theme */\n\tbackground: none; /* see through to fc-bg */\n}\n\n\n/* TimeGrid Highlighting Slots\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid .fc-highlight-container { /* a div within a cell within the fc-highlight-skeleton */\n\tposition: relative; /* scopes the left/right of the fc-highlight to be in the column */\n}\n\n.fc-time-grid .fc-highlight {\n\tposition: absolute;\n\tleft: 0;\n\tright: 0;\n\t/* top and bottom will be in by JS */\n}\n\n\n/* TimeGrid Event Containment\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid .fc-event-container, /* a div within a cell within the fc-content-skeleton */\n.fc-time-grid .fc-bgevent-container { /* a div within a cell within the fc-bgevent-skeleton */\n\tposition: relative;\n}\n\n.fc-ltr .fc-time-grid .fc-event-container { /* space on the sides of events for LTR (default) */\n\tmargin: 0 2.5% 0 2px;\n}\n\n.fc-rtl .fc-time-grid .fc-event-container { /* space on the sides of events for RTL */\n\tmargin: 0 2px 0 2.5%;\n}\n\n.fc-time-grid .fc-event,\n.fc-time-grid .fc-bgevent {\n\tposition: absolute;\n\tz-index: 1; /* scope inner z-index's */\n}\n\n.fc-time-grid .fc-bgevent {\n\t/* background events always span full width */\n\tleft: 0;\n\tright: 0;\n}\n\n\n/* Generic Vertical Event\n--------------------------------------------------------------------------------------------------*/\n\n.fc-v-event.fc-not-start { /* events that are continuing from another day */\n\t/* replace space made by the top border with padding */\n\tborder-top-width: 0;\n\tpadding-top: 1px;\n\n\t/* remove top rounded corners */\n\tborder-top-left-radius: 0;\n\tborder-top-right-radius: 0;\n}\n\n.fc-v-event.fc-not-end {\n\t/* replace space made by the top border with padding */\n\tborder-bottom-width: 0;\n\tpadding-bottom: 1px;\n\n\t/* remove bottom rounded corners */\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n\n/* TimeGrid Event Styling\n----------------------------------------------------------------------------------------------------\nWe use the full \"fc-time-grid-event\" class instead of using descendants because the event won't\nbe a descendant of the grid when it is being dragged.\n*/\n\n.fc-time-grid-event {\n\toverflow: hidden; /* don't let the bg flow over rounded corners */\n}\n\n.fc-time-grid-event .fc-time,\n.fc-time-grid-event .fc-title {\n\tpadding: 0 1px;\n}\n\n.fc-time-grid-event .fc-time {\n\tfont-size: .85em;\n\twhite-space: nowrap;\n}\n\n/* short mode, where time and title are on the same line */\n\n.fc-time-grid-event.fc-short .fc-content {\n\t/* don't wrap to second line (now that contents will be inline) */\n\twhite-space: nowrap;\n}\n\n.fc-time-grid-event.fc-short .fc-time,\n.fc-time-grid-event.fc-short .fc-title {\n\t/* put the time and title on the same line */\n\tdisplay: inline-block;\n\tvertical-align: top;\n}\n\n.fc-time-grid-event.fc-short .fc-time span {\n\tdisplay: none; /* don't display the full time text... */\n}\n\n.fc-time-grid-event.fc-short .fc-time:before {\n\tcontent: attr(data-start); /* ...instead, display only the start time */\n}\n\n.fc-time-grid-event.fc-short .fc-time:after {\n\tcontent: \"\\000A0-\\000A0\"; /* seperate with a dash, wrapped in nbsp's */\n}\n\n.fc-time-grid-event.fc-short .fc-title {\n\tfont-size: .85em; /* make the title text the same size as the time */\n\tpadding: 0; /* undo padding from above */\n}\n\n/* resizer */\n\n.fc-time-grid-event .fc-resizer {\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\theight: 8px;\n\toverflow: hidden;\n\tline-height: 8px;\n\tfont-size: 11px;\n\tfont-family: monospace;\n\ttext-align: center;\n\tcursor: s-resize;\n}\n\n.fc-time-grid-event .fc-resizer:after {\n\tcontent: \"=\";\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/fullcalendar.print.css",
    "content": "/*!\n * FullCalendar v2.4.0 Print Stylesheet\n * Docs & License: http://fullcalendar.io/\n * (c) 2015 Adam Shaw\n */\n\n/*\n * Include this stylesheet on your page to get a more printer-friendly calendar.\n * When including this stylesheet, use the media='print' attribute of the <link> tag.\n * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css.\n */\n\n.fc {\n\tmax-width: 100% !important;\n}\n\n\n/* Global Event Restyling\n--------------------------------------------------------------------------------------------------*/\n\n.fc-event {\n\tbackground: #fff !important;\n\tcolor: #000 !important;\n\tpage-break-inside: avoid;\n}\n\n.fc-event .fc-resizer {\n\tdisplay: none;\n}\n\n\n/* Table & Day-Row Restyling\n--------------------------------------------------------------------------------------------------*/\n\nth,\ntd,\nhr,\nthead,\ntbody,\n.fc-row {\n\tborder-color: #ccc !important;\n\tbackground: #fff !important;\n}\n\n/* kill the overlaid, absolutely-positioned common components */\n.fc-bg,\n.fc-bgevent-skeleton,\n.fc-highlight-skeleton,\n.fc-helper-skeleton {\n\tdisplay: none;\n}\n\n/* don't force a min-height on rows (for DayGrid) */\n.fc tbody .fc-row {\n\theight: auto !important; /* undo height that JS set in distributeHeight */\n\tmin-height: 0 !important; /* undo the min-height from each view's specific stylesheet */\n}\n\n.fc tbody .fc-row .fc-content-skeleton {\n\tposition: static; /* undo .fc-rigid */\n\tpadding-bottom: 0 !important; /* use a more border-friendly method for this... */\n}\n\n.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { /* only works in newer browsers */\n\tpadding-bottom: 1em; /* ...gives space within the skeleton. also ensures min height in a way */\n}\n\n.fc tbody .fc-row .fc-content-skeleton table {\n\t/* provides a min-height for the row, but only effective for IE, which exaggerates this value,\n\t   making it look more like 3em. for other browers, it will already be this tall */\n\theight: 1em;\n}\n\n\n/* Undo month-view event limiting. Display all events and hide the \"more\" links\n--------------------------------------------------------------------------------------------------*/\n\n.fc-more-cell,\n.fc-more {\n\tdisplay: none !important;\n}\n\n.fc tr.fc-limited {\n\tdisplay: table-row !important;\n}\n\n.fc td.fc-limited {\n\tdisplay: table-cell !important;\n}\n\n.fc-popover {\n\tdisplay: none; /* never display the \"more..\" popover in print mode */\n}\n\n\n/* TimeGrid Restyling\n--------------------------------------------------------------------------------------------------*/\n\n/* undo the min-height 100% trick used to fill the container's height */\n.fc-time-grid {\n\tmin-height: 0 !important;\n}\n\n/* don't display the side axis at all (\"all-day\" and time cells) */\n.fc-agenda-view .fc-axis {\n\tdisplay: none;\n}\n\n/* don't display the horizontal lines */\n.fc-slats,\n.fc-time-grid hr { /* this hr is used when height is underused and needs to be filled */\n\tdisplay: none !important; /* important overrides inline declaration */\n}\n\n/* let the container that holds the events be naturally positioned and create real height */\n.fc-time-grid .fc-content-skeleton {\n\tposition: static;\n}\n\n/* in case there are no events, we still want some height */\n.fc-time-grid .fc-content-skeleton table {\n\theight: 4em;\n}\n\n/* kill the horizontal spacing made by the event container. event margins will be done below */\n.fc-time-grid .fc-event-container {\n\tmargin: 0 !important;\n}\n\n\n/* TimeGrid *Event* Restyling\n--------------------------------------------------------------------------------------------------*/\n\n/* naturally position events, vertically stacking them */\n.fc-time-grid .fc-event {\n\tposition: static !important;\n\tmargin: 3px 2px !important;\n}\n\n/* for events that continue to a future day, give the bottom border back */\n.fc-time-grid .fc-event.fc-not-end {\n\tborder-bottom-width: 1px !important;\n}\n\n/* indicate the event continues via \"...\" text */\n.fc-time-grid .fc-event.fc-not-end:after {\n\tcontent: \"...\";\n}\n\n/* for events that are continuations from previous days, give the top border back */\n.fc-time-grid .fc-event.fc-not-start {\n\tborder-top-width: 1px !important;\n}\n\n/* indicate the event is a continuation via \"...\" text */\n.fc-time-grid .fc-event.fc-not-start:before {\n\tcontent: \"...\";\n}\n\n/* time */\n\n/* undo a previous declaration and let the time text span to a second line */\n.fc-time-grid .fc-event .fc-time {\n\twhite-space: normal !important;\n}\n\n/* hide the the time that is normally displayed... */\n.fc-time-grid .fc-event .fc-time span {\n\tdisplay: none;\n}\n\n/* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */\n.fc-time-grid .fc-event .fc-time:after {\n\tcontent: attr(data-full);\n}\n\n\n/* Vertical Scroller & Containers\n--------------------------------------------------------------------------------------------------*/\n\n/* kill the scrollbars and allow natural height */\n.fc-scroller,\n.fc-day-grid-container,    /* these divs might be assigned height, which we need to cleared */\n.fc-time-grid-container {  /* */\n\toverflow: visible !important;\n\theight: auto !important;\n}\n\n/* kill the horizontal border/padding used to compensate for scrollbars */\n.fc-row {\n\tborder: 0 !important;\n\tmargin: 0 !important;\n}\n\n\n/* Button Controls\n--------------------------------------------------------------------------------------------------*/\n\n.fc-button-group,\n.fc button {\n\tdisplay: none; /* don't display any button-related controls */\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/gcal.js",
    "content": "/*!\n * FullCalendar v2.4.0 Google Calendar Plugin\n * Docs & License: http://fullcalendar.io/\n * (c) 2015 Adam Shaw\n */\n \n(function(factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine([ 'jquery' ], factory);\n\t}\n\telse if (typeof exports === 'object') { // Node/CommonJS\n\t\tmodule.exports = factory(require('jquery'));\n\t}\n\telse {\n\t\tfactory(jQuery);\n\t}\n})(function($) {\n\n\nvar API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';\nvar fc = $.fullCalendar;\nvar applyAll = fc.applyAll;\n\n\nfc.sourceNormalizers.push(function(sourceOptions) {\n\tvar googleCalendarId = sourceOptions.googleCalendarId;\n\tvar url = sourceOptions.url;\n\tvar match;\n\n\t// if the Google Calendar ID hasn't been explicitly defined\n\tif (!googleCalendarId && url) {\n\n\t\t// detect if the ID was specified as a single string.\n\t\t// will match calendars like \"asdf1234@calendar.google.com\" in addition to person email calendars.\n\t\tif (/^[^\\/]+@([^\\/\\.]+\\.)*(google|googlemail|gmail)\\.com$/.test(url)) {\n\t\t\tgoogleCalendarId = url;\n\t\t}\n\t\t// try to scrape it out of a V1 or V3 API feed URL\n\t\telse if (\n\t\t\t(match = /^https:\\/\\/www.googleapis.com\\/calendar\\/v3\\/calendars\\/([^\\/]*)/.exec(url)) ||\n\t\t\t(match = /^https?:\\/\\/www.google.com\\/calendar\\/feeds\\/([^\\/]*)/.exec(url))\n\t\t) {\n\t\t\tgoogleCalendarId = decodeURIComponent(match[1]);\n\t\t}\n\n\t\tif (googleCalendarId) {\n\t\t\tsourceOptions.googleCalendarId = googleCalendarId;\n\t\t}\n\t}\n\n\n\tif (googleCalendarId) { // is this a Google Calendar?\n\n\t\t// make each Google Calendar source uneditable by default\n\t\tif (sourceOptions.editable == null) {\n\t\t\tsourceOptions.editable = false;\n\t\t}\n\n\t\t// We want removeEventSource to work, but it won't know about the googleCalendarId primitive.\n\t\t// Shoehorn it into the url, which will function as the unique primitive. Won't cause side effects.\n\t\t// This hack is obsolete since 2.2.3, but keep it so this plugin file is compatible with old versions.\n\t\tsourceOptions.url = googleCalendarId;\n\t}\n});\n\n\nfc.sourceFetchers.push(function(sourceOptions, start, end, timezone) {\n\tif (sourceOptions.googleCalendarId) {\n\t\treturn transformOptions(sourceOptions, start, end, timezone, this); // `this` is the calendar\n\t}\n});\n\n\nfunction transformOptions(sourceOptions, start, end, timezone, calendar) {\n\tvar url = API_BASE + '/' + encodeURIComponent(sourceOptions.googleCalendarId) + '/events?callback=?'; // jsonp\n\tvar apiKey = sourceOptions.googleCalendarApiKey || calendar.options.googleCalendarApiKey;\n\tvar success = sourceOptions.success;\n\tvar data;\n\tvar timezoneArg; // populated when a specific timezone. escaped to Google's liking\n\n\tfunction reportError(message, apiErrorObjs) {\n\t\tvar errorObjs = apiErrorObjs || [ { message: message } ]; // to be passed into error handlers\n\n\t\t// call error handlers\n\t\t(sourceOptions.googleCalendarError || $.noop).apply(calendar, errorObjs);\n\t\t(calendar.options.googleCalendarError || $.noop).apply(calendar, errorObjs);\n\n\t\t// print error to debug console\n\t\tfc.warn.apply(null, [ message ].concat(apiErrorObjs || []));\n\t}\n\n\tif (!apiKey) {\n\t\treportError(\"Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/\");\n\t\treturn {}; // an empty source to use instead. won't fetch anything.\n\t}\n\n\t// The API expects an ISO8601 datetime with a time and timezone part.\n\t// Since the calendar's timezone offset isn't always known, request the date in UTC and pad it by a day on each\n\t// side, guaranteeing we will receive all events in the desired range, albeit a superset.\n\t// .utc() will set a zone and give it a 00:00:00 time.\n\tif (!start.hasZone()) {\n\t\tstart = start.clone().utc().add(-1, 'day');\n\t}\n\tif (!end.hasZone()) {\n\t\tend = end.clone().utc().add(1, 'day');\n\t}\n\n\t// when sending timezone names to Google, only accepts underscores, not spaces\n\tif (timezone && timezone != 'local') {\n\t\ttimezoneArg = timezone.replace(' ', '_');\n\t}\n\n\tdata = $.extend({}, sourceOptions.data || {}, {\n\t\tkey: apiKey,\n\t\ttimeMin: start.format(),\n\t\ttimeMax: end.format(),\n\t\ttimeZone: timezoneArg,\n\t\tsingleEvents: true,\n\t\tmaxResults: 9999\n\t});\n\n\treturn $.extend({}, sourceOptions, {\n\t\tgoogleCalendarId: null, // prevents source-normalizing from happening again\n\t\turl: url,\n\t\tdata: data,\n\t\tstartParam: false, // `false` omits this parameter. we already included it above\n\t\tendParam: false, // same\n\t\ttimezoneParam: false, // same\n\t\tsuccess: function(data) {\n\t\t\tvar events = [];\n\t\t\tvar successArgs;\n\t\t\tvar successRes;\n\n\t\t\tif (data.error) {\n\t\t\t\treportError('Google Calendar API: ' + data.error.message, data.error.errors);\n\t\t\t}\n\t\t\telse if (data.items) {\n\t\t\t\t$.each(data.items, function(i, entry) {\n\t\t\t\t\tvar url = entry.htmlLink;\n\n\t\t\t\t\t// make the URLs for each event show times in the correct timezone\n\t\t\t\t\tif (timezoneArg) {\n\t\t\t\t\t\turl = injectQsComponent(url, 'ctz=' + timezoneArg);\n\t\t\t\t\t}\n\n\t\t\t\t\tevents.push({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\ttitle: entry.summary,\n\t\t\t\t\t\tstart: entry.start.dateTime || entry.start.date, // try timed. will fall back to all-day\n\t\t\t\t\t\tend: entry.end.dateTime || entry.end.date, // same\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\tlocation: entry.location,\n\t\t\t\t\t\tdescription: entry.description\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// call the success handler(s) and allow it to return a new events array\n\t\t\t\tsuccessArgs = [ events ].concat(Array.prototype.slice.call(arguments, 1)); // forward other jq args\n\t\t\t\tsuccessRes = applyAll(success, this, successArgs);\n\t\t\t\tif ($.isArray(successRes)) {\n\t\t\t\t\treturn successRes;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn events;\n\t\t}\n\t});\n}\n\n\n// Injects a string like \"arg=value\" into the querystring of a URL\nfunction injectQsComponent(url, component) {\n\t// inject it after the querystring but before the fragment\n\treturn url.replace(/(\\?.*?)?(#|$)/, function(whole, qs, hash) {\n\t\treturn (qs ? qs + '&' : '?') + component + hash;\n\t});\n}\n\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ar-ma.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ar-ma\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-ma\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-ma\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ar-sa.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"};(b.defineLocale||b.lang).call(b,\"ar-sa\",{months:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-sa\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-sa\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ar-tn.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ar-tn\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ar-tn\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-tn\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ar.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},e=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},f={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},g=function(a){return function(b,c,d,g){var h=e(b),i=f[a][e(b)];return 2===h&&(i=i[c?0:1]),i.replace(/%d/i,b)}},h=[\"كانون الثاني يناير\",\"شباط فبراير\",\"آذار مارس\",\"نيسان أبريل\",\"أيار مايو\",\"حزيران يونيو\",\"تموز يوليو\",\"آب أغسطس\",\"أيلول سبتمبر\",\"تشرين الأول أكتوبر\",\"تشرين الثاني نوفمبر\",\"كانون الأول ديسمبر\"];(b.defineLocale||b.lang).call(b,\"ar\",{months:h,monthsShort:h,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:g(\"s\"),m:g(\"m\"),mm:g(\"m\"),h:g(\"h\"),hh:g(\"h\"),d:g(\"d\"),dd:g(\"d\"),M:g(\"M\"),MM:g(\"M\"),y:g(\"y\"),yy:g(\"y\")},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/bg.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"bg\",{months:\"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"неделя_понеделник_вторник_сряда_четвъртък_петък_събота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сря_чет_пет_съб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Днес в] LT\",nextDay:\"[Утре в] LT\",nextWeek:\"dddd [в] LT\",lastDay:\"[Вчера в] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[В изминалата] dddd [в] LT\";case 1:case 2:case 4:case 5:return\"[В изминалия] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"след %s\",past:\"преди %s\",s:\"няколко секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дни\",M:\"месец\",MM:\"%d месеца\",y:\"година\",yy:\"%d години\"},ordinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&20>c?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"bg\",\"bg\",{closeText:\"затвори\",prevText:\"&#x3C;назад\",nextText:\"напред&#x3E;\",nextBigText:\"&#x3E;&#x3E;\",currentText:\"днес\",monthNames:[\"Януари\",\"Февруари\",\"Март\",\"Април\",\"Май\",\"Юни\",\"Юли\",\"Август\",\"Септември\",\"Октомври\",\"Ноември\",\"Декември\"],monthNamesShort:[\"Яну\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Юни\",\"Юли\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дек\"],dayNames:[\"Неделя\",\"Понеделник\",\"Вторник\",\"Сряда\",\"Четвъртък\",\"Петък\",\"Събота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Вто\",\"Сря\",\"Чет\",\"Пет\",\"Съб\"],dayNamesMin:[\"Не\",\"По\",\"Вт\",\"Ср\",\"Че\",\"Пе\",\"Съ\"],weekHeader:\"Wk\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"bg\",{buttonText:{month:\"Месец\",week:\"Седмица\",day:\"Ден\",list:\"График\"},allDayText:\"Цял ден\",eventLimitText:function(a){return\"+още \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ca.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ca\",{months:\"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),monthsShort:\"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.\".split(\"_\"),weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"Dg_Dl_Dt_Dc_Dj_Dv_Ds\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[demà a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"fa %s\",s:\"uns segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},ordinalParse:/\\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?\"r\":2===a?\"n\":3===a?\"r\":4===a?\"t\":\"è\";return(\"w\"===b||\"W\"===b)&&(c=\"a\"),a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ca\",\"ca\",{closeText:\"Tanca\",prevText:\"Anterior\",nextText:\"Següent\",currentText:\"Avui\",monthNames:[\"gener\",\"febrer\",\"març\",\"abril\",\"maig\",\"juny\",\"juliol\",\"agost\",\"setembre\",\"octubre\",\"novembre\",\"desembre\"],monthNamesShort:[\"gen\",\"feb\",\"març\",\"abr\",\"maig\",\"juny\",\"jul\",\"ag\",\"set\",\"oct\",\"nov\",\"des\"],dayNames:[\"diumenge\",\"dilluns\",\"dimarts\",\"dimecres\",\"dijous\",\"divendres\",\"dissabte\"],dayNamesShort:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],dayNamesMin:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],weekHeader:\"Set\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ca\",{buttonText:{month:\"Mes\",week:\"Setmana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Tot el dia\",eventLimitText:\"més\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/cs.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return a>1&&5>a&&1!==~~(a/10)}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekund\":\"pár sekundami\";case\"m\":return b?\"minuta\":e?\"minutu\":\"minutou\";case\"mm\":return b||e?f+(c(a)?\"minuty\":\"minut\"):f+\"minutami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodin\"):f+\"hodinami\";case\"d\":return b||e?\"den\":\"dnem\";case\"dd\":return b||e?f+(c(a)?\"dny\":\"dní\"):f+\"dny\";case\"M\":return b||e?\"měsíc\":\"měsícem\";case\"MM\":return b||e?f+(c(a)?\"měsíce\":\"měsíců\"):f+\"měsíci\";case\"y\":return b||e?\"rok\":\"rokem\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"let\"):f+\"lety\"}}var e=\"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec\".split(\"_\"),f=\"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro\".split(\"_\");(b.defineLocale||b.lang).call(b,\"cs\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_út_st_čt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_út_st_čt_pá_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[zítra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v neděli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve středu v] LT\";case 4:return\"[ve čtvrtek v] LT\";case 5:return\"[v pátek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[včera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou neděli v] LT\";case 1:case 2:return\"[minulé] dddd [v] LT\";case 3:return\"[minulou středu v] LT\";case 4:case 5:return\"[minulý] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"před %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"cs\",\"cs\",{closeText:\"Zavřít\",prevText:\"&#x3C;Dříve\",nextText:\"Později&#x3E;\",currentText:\"Nyní\",monthNames:[\"leden\",\"únor\",\"březen\",\"duben\",\"květen\",\"červen\",\"červenec\",\"srpen\",\"září\",\"říjen\",\"listopad\",\"prosinec\"],monthNamesShort:[\"led\",\"úno\",\"bře\",\"dub\",\"kvě\",\"čer\",\"čvc\",\"srp\",\"zář\",\"říj\",\"lis\",\"pro\"],dayNames:[\"neděle\",\"pondělí\",\"úterý\",\"středa\",\"čtvrtek\",\"pátek\",\"sobota\"],dayNamesShort:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],dayNamesMin:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],weekHeader:\"Týd\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"cs\",{buttonText:{month:\"Měsíc\",week:\"Týden\",day:\"Den\",list:\"Agenda\"},allDayText:\"Celý den\",eventLimitText:function(a){return\"+další: \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/da.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tir_ons_tor_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd [d.] D. MMMM YYYY LT\"},calendar:{sameDay:\"[I dag kl.] LT\",nextDay:\"[I morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[I går kl.] LT\",lastWeek:\"[sidste] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"få sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en måned\",MM:\"%d måneder\",y:\"et år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"da\",\"da\",{closeText:\"Luk\",prevText:\"&#x3C;Forrige\",nextText:\"Næste&#x3E;\",currentText:\"Idag\",monthNames:[\"Januar\",\"Februar\",\"Marts\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Søndag\",\"Mandag\",\"Tirsdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lørdag\"],dayNamesShort:[\"Søn\",\"Man\",\"Tir\",\"Ons\",\"Tor\",\"Fre\",\"Lør\"],dayNamesMin:[\"Sø\",\"Ma\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lø\"],weekHeader:\"Uge\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"da\",{buttonText:{month:\"Måned\",week:\"Uge\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"flere\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/de-at.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de-at\",{months:\"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de-at\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de-at\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/de.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/el.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"el\",{monthsNominativeEl:\"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος\".split(\"_\"),monthsGenitiveEl:\"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου\".split(\"_\"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf(\"MMMM\")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:\"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ\".split(\"_\"),weekdays:\"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο\".split(\"_\"),weekdaysShort:\"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ\".split(\"_\"),weekdaysMin:\"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα\".split(\"_\"),meridiem:function(a,b,c){return a>11?c?\"μμ\":\"ΜΜ\":c?\"πμ\":\"ΠΜ\"},isPM:function(a){return\"μ\"===(a+\"\").toLowerCase()[0]},meridiemParse:/[ΠΜ]\\.?Μ?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendarEl:{sameDay:\"[Σήμερα {}] LT\",nextDay:\"[Αύριο {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[Χθες {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[το προηγούμενο] dddd [{}] LT\";default:return\"[την προηγούμενη] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return\"function\"==typeof c&&(c=c.apply(b)),c.replace(\"{}\",d%12===1?\"στη\":\"στις\")},relativeTime:{future:\"σε %s\",past:\"%s πριν\",s:\"λίγα δευτερόλεπτα\",m:\"ένα λεπτό\",mm:\"%d λεπτά\",h:\"μία ώρα\",hh:\"%d ώρες\",d:\"μία μέρα\",dd:\"%d μέρες\",M:\"ένας μήνας\",MM:\"%d μήνες\",y:\"ένας χρόνος\",yy:\"%d χρόνια\"},ordinalParse:/\\d{1,2}η/,ordinal:\"%dη\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"el\",\"el\",{closeText:\"Κλείσιμο\",prevText:\"Προηγούμενος\",nextText:\"Επόμενος\",currentText:\"Σήμερα\",monthNames:[\"Ιανουάριος\",\"Φεβρουάριος\",\"Μάρτιος\",\"Απρίλιος\",\"Μάιος\",\"Ιούνιος\",\"Ιούλιος\",\"Αύγουστος\",\"Σεπτέμβριος\",\"Οκτώβριος\",\"Νοέμβριος\",\"Δεκέμβριος\"],monthNamesShort:[\"Ιαν\",\"Φεβ\",\"Μαρ\",\"Απρ\",\"Μαι\",\"Ιουν\",\"Ιουλ\",\"Αυγ\",\"Σεπ\",\"Οκτ\",\"Νοε\",\"Δεκ\"],dayNames:[\"Κυριακή\",\"Δευτέρα\",\"Τρίτη\",\"Τετάρτη\",\"Πέμπτη\",\"Παρασκευή\",\"Σάββατο\"],dayNamesShort:[\"Κυρ\",\"Δευ\",\"Τρι\",\"Τετ\",\"Πεμ\",\"Παρ\",\"Σαβ\"],dayNamesMin:[\"Κυ\",\"Δε\",\"Τρ\",\"Τε\",\"Πε\",\"Πα\",\"Σα\"],weekHeader:\"Εβδ\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"el\",{buttonText:{month:\"Μήνας\",week:\"Εβδομάδα\",day:\"Ημέρα\",list:\"Ατζέντα\"},allDayText:\"Ολοήμερο\",eventLimitText:\"περισσότερα\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/en-au.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-au\",\"en-AU\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-au\")});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/en-ca.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"D MMMM, YYYY\",LLL:\"D MMMM, YYYY LT\",LLLL:\"dddd, D MMMM, YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.fullCalendar.lang(\"en-ca\")});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/en-gb.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-gb\",\"en-GB\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-gb\")});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/es.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),d=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");(b.defineLocale||b.lang).call(b,\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"Do_Lu_Ma_Mi_Ju_Vi_Sá\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"es\",\"es\",{closeText:\"Cerrar\",prevText:\"&#x3C;Ant\",nextText:\"Sig&#x3E;\",currentText:\"Hoy\",monthNames:[\"enero\",\"febrero\",\"marzo\",\"abril\",\"mayo\",\"junio\",\"julio\",\"agosto\",\"septiembre\",\"octubre\",\"noviembre\",\"diciembre\"],monthNamesShort:[\"ene\",\"feb\",\"mar\",\"abr\",\"may\",\"jun\",\"jul\",\"ago\",\"sep\",\"oct\",\"nov\",\"dic\"],dayNames:[\"domingo\",\"lunes\",\"martes\",\"miércoles\",\"jueves\",\"viernes\",\"sábado\"],dayNamesShort:[\"dom\",\"lun\",\"mar\",\"mié\",\"jue\",\"vie\",\"sáb\"],dayNamesMin:[\"D\",\"L\",\"M\",\"X\",\"J\",\"V\",\"S\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"es\",{buttonText:{month:\"Mes\",week:\"Semana\",day:\"Día\",list:\"Agenda\"},allDayHtml:\"Todo<br/>el día\",eventLimitText:\"más\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/fa.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"۱\",2:\"۲\",3:\"۳\",4:\"۴\",5:\"۵\",6:\"۶\",7:\"۷\",8:\"۸\",9:\"۹\",0:\"۰\"},d={\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"۰\":\"0\"};(b.defineLocale||b.lang).call(b,\"fa\",{months:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),monthsShort:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),weekdays:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysShort:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysMin:\"ی_د_س_چ_پ_ج_ش\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?\"قبل از ظهر\":\"بعد از ظهر\"},calendar:{sameDay:\"[امروز ساعت] LT\",nextDay:\"[فردا ساعت] LT\",nextWeek:\"dddd [ساعت] LT\",lastDay:\"[دیروز ساعت] LT\",lastWeek:\"dddd [پیش] [ساعت] LT\",sameElse:\"L\"},relativeTime:{future:\"در %s\",past:\"%s پیش\",s:\"چندین ثانیه\",m:\"یک دقیقه\",mm:\"%d دقیقه\",h:\"یک ساعت\",hh:\"%d ساعت\",d:\"یک روز\",dd:\"%d روز\",M:\"یک ماه\",MM:\"%d ماه\",y:\"یک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},ordinalParse:/\\d{1,2}م/,ordinal:\"%dم\",week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"fa\",\"fa\",{closeText:\"بستن\",prevText:\"&#x3C;قبلی\",nextText:\"بعدی&#x3E;\",currentText:\"امروز\",monthNames:[\"ژانویه\",\"فوریه\",\"مارس\",\"آوریل\",\"مه\",\"ژوئن\",\"ژوئیه\",\"اوت\",\"سپتامبر\",\"اکتبر\",\"نوامبر\",\"دسامبر\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"يکشنبه\",\"دوشنبه\",\"سه‌شنبه\",\"چهارشنبه\",\"پنجشنبه\",\"جمعه\",\"شنبه\"],dayNamesShort:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],dayNamesMin:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],weekHeader:\"هف\",dateFormat:\"yy/mm/dd\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fa\",{buttonText:{month:\"ماه\",week:\"هفته\",day:\"روز\",list:\"برنامه\"},allDayText:\"تمام روز\",eventLimitText:function(a){return\"بیش از \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/fi.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,e){var f=\"\";switch(c){case\"s\":return e?\"muutaman sekunnin\":\"muutama sekunti\";case\"m\":return e?\"minuutin\":\"minuutti\";case\"mm\":f=e?\"minuutin\":\"minuuttia\";break;case\"h\":return e?\"tunnin\":\"tunti\";case\"hh\":f=e?\"tunnin\":\"tuntia\";break;case\"d\":return e?\"päivän\":\"päivä\";case\"dd\":f=e?\"päivän\":\"päivää\";break;case\"M\":return e?\"kuukauden\":\"kuukausi\";case\"MM\":f=e?\"kuukauden\":\"kuukautta\";break;case\"y\":return e?\"vuoden\":\"vuosi\";case\"yy\":f=e?\"vuoden\":\"vuotta\"}return f=d(a,e)+\" \"+f}function d(a,b){return 10>a?b?f[a]:e[a]:a}var e=\"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän\".split(\" \"),f=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"neljän\",\"viiden\",\"kuuden\",e[7],e[8],e[9]];(b.defineLocale||b.lang).call(b,\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] LT\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] LT\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] LT\",llll:\"ddd, Do MMM YYYY, [klo] LT\"},calendar:{sameDay:\"[tänään] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s päästä\",past:\"%s sitten\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fi\",\"fi\",{closeText:\"Sulje\",prevText:\"&#xAB;Edellinen\",nextText:\"Seuraava&#xBB;\",currentText:\"Tänään\",monthNames:[\"Tammikuu\",\"Helmikuu\",\"Maaliskuu\",\"Huhtikuu\",\"Toukokuu\",\"Kesäkuu\",\"Heinäkuu\",\"Elokuu\",\"Syyskuu\",\"Lokakuu\",\"Marraskuu\",\"Joulukuu\"],monthNamesShort:[\"Tammi\",\"Helmi\",\"Maalis\",\"Huhti\",\"Touko\",\"Kesä\",\"Heinä\",\"Elo\",\"Syys\",\"Loka\",\"Marras\",\"Joulu\"],dayNamesShort:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],dayNames:[\"Sunnuntai\",\"Maanantai\",\"Tiistai\",\"Keskiviikko\",\"Torstai\",\"Perjantai\",\"Lauantai\"],dayNamesMin:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],weekHeader:\"Vk\",dateFormat:\"d.m.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fi\",{buttonText:{month:\"Kuukausi\",week:\"Viikko\",day:\"Päivä\",list:\"Tapahtumat\"},allDayText:\"Koko päivä\",eventLimitText:\"lisää\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/fr-ca.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"fr-ca\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")}}),a.fullCalendar.datepickerLang(\"fr-ca\",\"fr-CA\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avril\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr-ca\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/fr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"fr\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fr\",\"fr\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avr.\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/he.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"he\",{months:\"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר\".split(\"_\"),monthsShort:\"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳\".split(\"_\"),weekdays:\"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת\".split(\"_\"),weekdaysShort:\"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳\".split(\"_\"),weekdaysMin:\"א_ב_ג_ד_ה_ו_ש\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [ב]MMMM YYYY\",LLL:\"D [ב]MMMM YYYY LT\",LLLL:\"dddd, D [ב]MMMM YYYY LT\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[היום ב־]LT\",nextDay:\"[מחר ב־]LT\",nextWeek:\"dddd [בשעה] LT\",lastDay:\"[אתמול ב־]LT\",lastWeek:\"[ביום] dddd [האחרון בשעה] LT\",sameElse:\"L\"},relativeTime:{future:\"בעוד %s\",past:\"לפני %s\",s:\"מספר שניות\",m:\"דקה\",mm:\"%d דקות\",h:\"שעה\",hh:function(a){return 2===a?\"שעתיים\":a+\" שעות\"},d:\"יום\",dd:function(a){return 2===a?\"יומיים\":a+\" ימים\"},M:\"חודש\",MM:function(a){return 2===a?\"חודשיים\":a+\" חודשים\"},y:\"שנה\",yy:function(a){return 2===a?\"שנתיים\":a%10===0&&10!==a?a+\" שנה\":a+\" שנים\"}}}),a.fullCalendar.datepickerLang(\"he\",\"he\",{closeText:\"סגור\",prevText:\"&#x3C;הקודם\",nextText:\"הבא&#x3E;\",currentText:\"היום\",monthNames:[\"ינואר\",\"פברואר\",\"מרץ\",\"אפריל\",\"מאי\",\"יוני\",\"יולי\",\"אוגוסט\",\"ספטמבר\",\"אוקטובר\",\"נובמבר\",\"דצמבר\"],monthNamesShort:[\"ינו\",\"פבר\",\"מרץ\",\"אפר\",\"מאי\",\"יוני\",\"יולי\",\"אוג\",\"ספט\",\"אוק\",\"נוב\",\"דצמ\"],dayNames:[\"ראשון\",\"שני\",\"שלישי\",\"רביעי\",\"חמישי\",\"שישי\",\"שבת\"],dayNamesShort:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],dayNamesMin:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"he\",{defaultButtonText:{month:\"חודש\",week:\"שבוע\",day:\"יום\",list:\"סדר יום\"},weekNumberTitle:\"שבוע\",allDayText:\"כל היום\",eventLimitText:\"אחר\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/hi.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},d={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};(b.defineLocale||b.lang).call(b,\"hi\",{months:\"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर\".split(\"_\"),monthsShort:\"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.\".split(\"_\"),weekdays:\"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm बजे\",LTS:\"A h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, LT\",LLLL:\"dddd, D MMMM YYYY, LT\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[कल] LT\",nextWeek:\"dddd, LT\",lastDay:\"[कल] LT\",lastWeek:\"[पिछले] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s में\",past:\"%s पहले\",s:\"कुछ ही क्षण\",m:\"एक मिनट\",mm:\"%d मिनट\",h:\"एक घंटा\",hh:\"%d घंटे\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महीने\",MM:\"%d महीने\",y:\"एक वर्ष\",yy:\"%d वर्ष\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return d[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात\"===b?4>a?a:a+12:\"सुबह\"===b?a:\"दोपहर\"===b?a>=10?a:a+12:\"शाम\"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?\"रात\":10>a?\"सुबह\":17>a?\"दोपहर\":20>a?\"शाम\":\"रात\"},week:{dow:0,doy:6}}),a.fullCalendar.datepickerLang(\"hi\",\"hi\",{closeText:\"बंद\",prevText:\"पिछला\",nextText:\"अगला\",currentText:\"आज\",monthNames:[\"जनवरी \",\"फरवरी\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अगस्त \",\"सितम्बर\",\"अक्टूबर\",\"नवम्बर\",\"दिसम्बर\"],monthNamesShort:[\"जन\",\"फर\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अग\",\"सित\",\"अक्ट\",\"नव\",\"दि\"],dayNames:[\"रविवार\",\"सोमवार\",\"मंगलवार\",\"बुधवार\",\"गुरुवार\",\"शुक्रवार\",\"शनिवार\"],dayNamesShort:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],dayNamesMin:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],weekHeader:\"हफ्ता\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hi\",{buttonText:{month:\"महीना\",week:\"सप्ताह\",day:\"दिन\",list:\"कार्यसूची\"},allDayText:\"सभी दिन\",eventLimitText:function(a){return\"+अधिक \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/hr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}(b.defineLocale||b.lang).call(b,\"hr\",{months:\"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\"),monthsShort:\"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:c,mm:c,h:c,hh:c,d:\"dan\",dd:c,M:\"mjesec\",MM:c,y:\"godinu\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hr\",\"hr\",{closeText:\"Zatvori\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Danas\",monthNames:[\"Siječanj\",\"Veljača\",\"Ožujak\",\"Travanj\",\"Svibanj\",\"Lipanj\",\"Srpanj\",\"Kolovoz\",\"Rujan\",\"Listopad\",\"Studeni\",\"Prosinac\"],monthNamesShort:[\"Sij\",\"Velj\",\"Ožu\",\"Tra\",\"Svi\",\"Lip\",\"Srp\",\"Kol\",\"Ruj\",\"Lis\",\"Stu\",\"Pro\"],dayNames:[\"Nedjelja\",\"Ponedjeljak\",\"Utorak\",\"Srijeda\",\"Četvrtak\",\"Petak\",\"Subota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Sri\",\"Čet\",\"Pet\",\"Sub\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"Sr\",\"Če\",\"Pe\",\"Su\"],weekHeader:\"Tje\",dateFormat:\"dd.mm.yy.\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hr\",{buttonText:{month:\"Mjesec\",week:\"Tjedan\",day:\"Dan\",list:\"Raspored\"},allDayText:\"Cijeli dan\",eventLimitText:function(a){return\"+ još \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/hu.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e=a;switch(c){case\"s\":return d||b?\"néhány másodperc\":\"néhány másodperce\";case\"m\":return\"egy\"+(d||b?\" perc\":\" perce\");case\"mm\":return e+(d||b?\" perc\":\" perce\");case\"h\":return\"egy\"+(d||b?\" óra\":\" órája\");case\"hh\":return e+(d||b?\" óra\":\" órája\");case\"d\":return\"egy\"+(d||b?\" nap\":\" napja\");case\"dd\":return e+(d||b?\" nap\":\" napja\");case\"M\":return\"egy\"+(d||b?\" hónap\":\" hónapja\");case\"MM\":return e+(d||b?\" hónap\":\" hónapja\");case\"y\":return\"egy\"+(d||b?\" év\":\" éve\");case\"yy\":return e+(d||b?\" év\":\" éve\")}return\"\"}function d(a){return(a?\"\":\"[múlt] \")+\"[\"+e[this.day()]+\"] LT[-kor]\"}var e=\"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton\".split(\" \");(b.defineLocale||b.lang).call(b,\"hu\",{months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D., LT\",LLLL:\"YYYY. MMMM D., dddd LT\"},meridiemParse:/de|du/i,isPM:function(a){return\"u\"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?\"de\":\"DE\":c===!0?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return d.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return d.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s múlva\",past:\"%s\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hu\",\"hu\",{closeText:\"bezár\",prevText:\"vissza\",nextText:\"előre\",currentText:\"ma\",monthNames:[\"Január\",\"Február\",\"Március\",\"Április\",\"Május\",\"Június\",\"Július\",\"Augusztus\",\"Szeptember\",\"Október\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Már\",\"Ápr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Szep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Vasárnap\",\"Hétfő\",\"Kedd\",\"Szerda\",\"Csütörtök\",\"Péntek\",\"Szombat\"],dayNamesShort:[\"Vas\",\"Hét\",\"Ked\",\"Sze\",\"Csü\",\"Pén\",\"Szo\"],dayNamesMin:[\"V\",\"H\",\"K\",\"Sze\",\"Cs\",\"P\",\"Szo\"],weekHeader:\"Hét\",dateFormat:\"yy.mm.dd.\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"hu\",{buttonText:{month:\"Hónap\",week:\"Hét\",day:\"Nap\",list:\"Napló\"},allDayText:\"Egész nap\",eventLimitText:\"további\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/id.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"LT.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] LT\",LLLL:\"dddd, D MMMM YYYY [pukul] LT\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"siang\"===b?a>=11?a:a+12:\"sore\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"pagi\":15>a?\"siang\":19>a?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"id\",\"id\",{closeText:\"Tutup\",prevText:\"&#x3C;mundur\",nextText:\"maju&#x3E;\",currentText:\"hari ini\",monthNames:[\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"Nopember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mei\",\"Jun\",\"Jul\",\"Agus\",\"Sep\",\"Okt\",\"Nop\",\"Des\"],dayNames:[\"Minggu\",\"Senin\",\"Selasa\",\"Rabu\",\"Kamis\",\"Jumat\",\"Sabtu\"],dayNamesShort:[\"Min\",\"Sen\",\"Sel\",\"Rab\",\"kam\",\"Jum\",\"Sab\"],dayNamesMin:[\"Mg\",\"Sn\",\"Sl\",\"Rb\",\"Km\",\"jm\",\"Sb\"],weekHeader:\"Mg\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"id\",{buttonText:{month:\"Bulan\",week:\"Minggu\",day:\"Hari\",list:\"Agenda\"},allDayHtml:\"Sehari<br/>penuh\",eventLimitText:\"lebih\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/is.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return a%100===11?!0:a%10===1?!1:!0}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"nokkrar sekúndur\":\"nokkrum sekúndum\";case\"m\":return b?\"mínúta\":\"mínútu\";case\"mm\":return c(a)?f+(b||e?\"mínútur\":\"mínútum\"):b?f+\"mínúta\":f+\"mínútu\";case\"hh\":return c(a)?f+(b||e?\"klukkustundir\":\"klukkustundum\"):f+\"klukkustund\";case\"d\":return b?\"dagur\":e?\"dag\":\"degi\";case\"dd\":return c(a)?b?f+\"dagar\":f+(e?\"daga\":\"dögum\"):b?f+\"dagur\":f+(e?\"dag\":\"degi\");case\"M\":return b?\"mánuður\":e?\"mánuð\":\"mánuði\";case\"MM\":return c(a)?b?f+\"mánuðir\":f+(e?\"mánuði\":\"mánuðum\"):b?f+\"mánuður\":f+(e?\"mánuð\":\"mánuði\");case\"y\":return b||e?\"ár\":\"ári\";case\"yy\":return c(a)?f+(b||e?\"ár\":\"árum\"):f+(b||e?\"ár\":\"ári\")}}(b.defineLocale||b.lang).call(b,\"is\",{months:\"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des\".split(\"_\"),weekdays:\"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_mán_þri_mið_fim_fös_lau\".split(\"_\"),weekdaysMin:\"Su_Má_Þr_Mi_Fi_Fö_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd, D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[í dag kl.] LT\",nextDay:\"[á morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[í gær kl.] LT\",lastWeek:\"[síðasta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s síðan\",s:d,m:d,mm:d,h:\"klukkustund\",hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"is\",\"is\",{closeText:\"Loka\",prevText:\"&#x3C; Fyrri\",nextText:\"Næsti &#x3E;\",currentText:\"Í dag\",monthNames:[\"Janúar\",\"Febrúar\",\"Mars\",\"Apríl\",\"Maí\",\"Júní\",\"Júlí\",\"Ágúst\",\"September\",\"Október\",\"Nóvember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maí\",\"Jún\",\"Júl\",\"Ágú\",\"Sep\",\"Okt\",\"Nóv\",\"Des\"],dayNames:[\"Sunnudagur\",\"Mánudagur\",\"Þriðjudagur\",\"Miðvikudagur\",\"Fimmtudagur\",\"Föstudagur\",\"Laugardagur\"],dayNamesShort:[\"Sun\",\"Mán\",\"Þri\",\"Mið\",\"Fim\",\"Fös\",\"Lau\"],dayNamesMin:[\"Su\",\"Má\",\"Þr\",\"Mi\",\"Fi\",\"Fö\",\"La\"],weekHeader:\"Vika\",dateFormat:\"dd.mm.yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"is\",{buttonText:{month:\"Mánuður\",week:\"Vika\",day:\"Dagur\",list:\"Dagskrá\"},allDayHtml:\"Allan<br/>daginn\",eventLimitText:\"meira\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/it.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato\".split(\"_\"),weekdaysShort:\"Dom_Lun_Mar_Mer_Gio_Ven_Sab\".split(\"_\"),weekdaysMin:\"D_L_Ma_Me_G_V_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?\"tra\":\"in\")+\" \"+a},past:\"%s fa\",s:\"alcuni secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"it\",\"it\",{closeText:\"Chiudi\",prevText:\"&#x3C;Prec\",nextText:\"Succ&#x3E;\",currentText:\"Oggi\",monthNames:[\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],monthNamesShort:[\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\"],dayNames:[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"],dayNamesShort:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\"],dayNamesMin:[\"Do\",\"Lu\",\"Ma\",\"Me\",\"Gi\",\"Ve\",\"Sa\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"it\",{buttonText:{month:\"Mese\",week:\"Settimana\",day:\"Giorno\",list:\"Agenda\"},allDayHtml:\"Tutto il<br/>giorno\",eventLimitText:function(a){return\"+altri \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ja.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ja\",{months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),longDateFormat:{LT:\"Ah時m分\",LTS:\"LTs秒\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日LT\",LLLL:\"YYYY年M月D日LT dddd\"},meridiemParse:/午前|午後/i,isPM:function(a){return\"午後\"===a},meridiem:function(a,b,c){return 12>a?\"午前\":\"午後\"},calendar:{sameDay:\"[今日] LT\",nextDay:\"[明日] LT\",nextWeek:\"[来週]dddd LT\",lastDay:\"[昨日] LT\",lastWeek:\"[前週]dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"ja\",\"ja\",{closeText:\"閉じる\",prevText:\"&#x3C;前\",nextText:\"次&#x3E;\",currentText:\"今日\",monthNames:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],monthNamesShort:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],dayNames:[\"日曜日\",\"月曜日\",\"火曜日\",\"水曜日\",\"木曜日\",\"金曜日\",\"土曜日\"],dayNamesShort:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],dayNamesMin:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],weekHeader:\"週\",dateFormat:\"yy/mm/dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"ja\",{buttonText:{month:\"月\",week:\"週\",day:\"日\",list:\"予定リスト\"},allDayText:\"終日\",eventLimitText:function(a){return\"他 \"+a+\" 件\"}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ko.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ko\",{months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),longDateFormat:{LT:\"A h시 m분\",LTS:\"A h시 m분 s초\",L:\"YYYY.MM.DD\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 LT\",LLLL:\"YYYY년 MMMM D일 dddd LT\"},calendar:{sameDay:\"오늘 LT\",nextDay:\"내일 LT\",nextWeek:\"dddd LT\",lastDay:\"어제 LT\",lastWeek:\"지난주 dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇초\",ss:\"%d초\",m:\"일분\",mm:\"%d분\",h:\"한시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한달\",MM:\"%d달\",y:\"일년\",yy:\"%d년\"},ordinalParse:/\\d{1,2}일/,ordinal:\"%d일\",meridiemParse:/오전|오후/,isPM:function(a){return\"오후\"===a},meridiem:function(a,b,c){return 12>a?\"오전\":\"오후\"}}),a.fullCalendar.datepickerLang(\"ko\",\"ko\",{closeText:\"닫기\",prevText:\"이전달\",nextText:\"다음달\",currentText:\"오늘\",monthNames:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],monthNamesShort:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],dayNames:[\"일요일\",\"월요일\",\"화요일\",\"수요일\",\"목요일\",\"금요일\",\"토요일\"],dayNamesShort:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],dayNamesMin:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],weekHeader:\"Wk\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"년\"}),a.fullCalendar.lang(\"ko\",{buttonText:{month:\"월\",week:\"주\",day:\"일\",list:\"일정목록\"},allDayText:\"종일\",eventLimitText:\"개\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/lt.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){return b?\"kelios sekundės\":d?\"kelių sekundžių\":\"kelias sekundes\"}function d(a,b,c,d){return b?f(c)[0]:d?f(c)[1]:f(c)[2]}function e(a){return a%10===0||a>10&&20>a}function f(a){return i[a].split(\"_\")}function g(a,b,c,g){var h=a+\" \";return 1===a?h+d(a,b,c[0],g):b?h+(e(a)?f(c)[1]:f(c)[0]):g?h+f(c)[1]:h+(e(a)?f(c)[1]:f(c)[2])}function h(a,b){var c=-1===b.indexOf(\"dddd HH:mm\"),d=j[a.day()];return c?d:d.substring(0,d.length-2)+\"į\"}var i={m:\"minutė_minutės_minutę\",mm:\"minutės_minučių_minutes\",h:\"valanda_valandos_valandą\",hh:\"valandos_valandų_valandas\",d:\"diena_dienos_dieną\",dd:\"dienos_dienų_dienas\",M:\"mėnuo_mėnesio_mėnesį\",MM:\"mėnesiai_mėnesių_mėnesius\",y:\"metai_metų_metus\",yy:\"metai_metų_metus\"},j=\"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis\".split(\"_\");(b.defineLocale||b.lang).call(b,\"lt\",{months:\"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio\".split(\"_\"),monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:h,weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_Šeš\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_Š\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], LT [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, LT [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], LT [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, LT [val.]\"},calendar:{sameDay:\"[Šiandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Praėjusį] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prieš %s\",s:c,m:d,mm:g,h:d,hh:g,d:d,dd:g,M:d,MM:g,y:d,yy:g},ordinalParse:/\\d{1,2}-oji/,ordinal:function(a){return a+\"-oji\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lt\",\"lt\",{closeText:\"Uždaryti\",prevText:\"&#x3C;Atgal\",nextText:\"Pirmyn&#x3E;\",currentText:\"Šiandien\",monthNames:[\"Sausis\",\"Vasaris\",\"Kovas\",\"Balandis\",\"Gegužė\",\"Birželis\",\"Liepa\",\"Rugpjūtis\",\"Rugsėjis\",\"Spalis\",\"Lapkritis\",\"Gruodis\"],monthNamesShort:[\"Sau\",\"Vas\",\"Kov\",\"Bal\",\"Geg\",\"Bir\",\"Lie\",\"Rugp\",\"Rugs\",\"Spa\",\"Lap\",\"Gru\"],dayNames:[\"sekmadienis\",\"pirmadienis\",\"antradienis\",\"trečiadienis\",\"ketvirtadienis\",\"penktadienis\",\"šeštadienis\"],dayNamesShort:[\"sek\",\"pir\",\"ant\",\"tre\",\"ket\",\"pen\",\"šeš\"],dayNamesMin:[\"Se\",\"Pr\",\"An\",\"Tr\",\"Ke\",\"Pe\",\"Še\"],weekHeader:\"SAV\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"lt\",{buttonText:{month:\"Mėnuo\",week:\"Savaitė\",day:\"Diena\",list:\"Darbotvarkė\"},allDayText:\"Visą dieną\",eventLimitText:\"daugiau\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/lv.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d=a.split(\"_\");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function d(a,b,d){return a+\" \"+c(e[d],a,b)}var e={mm:\"minūti_minūtes_minūte_minūtes\",hh:\"stundu_stundas_stunda_stundas\",dd:\"dienu_dienas_diena_dienas\",MM:\"mēnesi_mēnešus_mēnesis_mēneši\",yy:\"gadu_gadus_gads_gadi\"};(b.defineLocale||b.lang).call(b,\"lv\",{months:\"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, LT\",LLLL:\"YYYY. [gada] D. MMMM, dddd, LT\"},calendar:{sameDay:\"[Šodien pulksten] LT\",nextDay:\"[Rīt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pagājušā] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"%s vēlāk\",past:\"%s agrāk\",s:\"dažas sekundes\",m:\"minūti\",mm:d,h:\"stundu\",hh:d,d:\"dienu\",dd:d,M:\"mēnesi\",MM:d,y:\"gadu\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lv\",\"lv\",{closeText:\"Aizvērt\",prevText:\"Iepr.\",nextText:\"Nāk.\",currentText:\"Šodien\",monthNames:[\"Janvāris\",\"Februāris\",\"Marts\",\"Aprīlis\",\"Maijs\",\"Jūnijs\",\"Jūlijs\",\"Augusts\",\"Septembris\",\"Oktobris\",\"Novembris\",\"Decembris\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Jūn\",\"Jūl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"svētdiena\",\"pirmdiena\",\"otrdiena\",\"trešdiena\",\"ceturtdiena\",\"piektdiena\",\"sestdiena\"],dayNamesShort:[\"svt\",\"prm\",\"otr\",\"tre\",\"ctr\",\"pkt\",\"sst\"],dayNamesMin:[\"Sv\",\"Pr\",\"Ot\",\"Tr\",\"Ct\",\"Pk\",\"Ss\"],weekHeader:\"Ned.\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"lv\",{buttonText:{month:\"Mēnesis\",week:\"Nedēļa\",day:\"Diena\",list:\"Dienas kārtība\"},allDayText:\"Visu dienu\",eventLimitText:function(a){return\"+vēl \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/nb.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tirs_ons_tors_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"H.mm\",LTS:\"LT.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"for %s siden\",s:\"noen sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en måned\",MM:\"%d måneder\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nb\",\"nb\",{closeText:\"Lukk\",prevText:\"&#xAB;Forrige\",nextText:\"Neste&#xBB;\",currentText:\"I dag\",monthNames:[\"januar\",\"februar\",\"mars\",\"april\",\"mai\",\"juni\",\"juli\",\"august\",\"september\",\"oktober\",\"november\",\"desember\"],monthNamesShort:[\"jan\",\"feb\",\"mar\",\"apr\",\"mai\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"des\"],dayNamesShort:[\"søn\",\"man\",\"tir\",\"ons\",\"tor\",\"fre\",\"lør\"],dayNames:[\"søndag\",\"mandag\",\"tirsdag\",\"onsdag\",\"torsdag\",\"fredag\",\"lørdag\"],dayNamesMin:[\"sø\",\"ma\",\"ti\",\"on\",\"to\",\"fr\",\"lø\"],weekHeader:\"Uke\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nb\",{buttonText:{month:\"Måned\",week:\"Uke\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"til\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/nl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),d=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},ordinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nl\",\"nl\",{closeText:\"Sluiten\",prevText:\"←\",nextText:\"→\",currentText:\"Vandaag\",monthNames:[\"januari\",\"februari\",\"maart\",\"april\",\"mei\",\"juni\",\"juli\",\"augustus\",\"september\",\"oktober\",\"november\",\"december\"],monthNamesShort:[\"jan\",\"feb\",\"mrt\",\"apr\",\"mei\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"dec\"],dayNames:[\"zondag\",\"maandag\",\"dinsdag\",\"woensdag\",\"donderdag\",\"vrijdag\",\"zaterdag\"],dayNamesShort:[\"zon\",\"maa\",\"din\",\"woe\",\"don\",\"vri\",\"zat\"],dayNamesMin:[\"zo\",\"ma\",\"di\",\"wo\",\"do\",\"vr\",\"za\"],weekHeader:\"Wk\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nl\",{buttonText:{month:\"Maand\",week:\"Week\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dag\",eventLimitText:\"extra\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/pl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function d(a,b,d){var e=a+\" \";switch(d){case\"m\":return b?\"minuta\":\"minutę\";case\"mm\":return e+(c(a)?\"minuty\":\"minut\");case\"h\":return b?\"godzina\":\"godzinę\";case\"hh\":return e+(c(a)?\"godziny\":\"godzin\");case\"MM\":return e+(c(a)?\"miesiące\":\"miesięcy\");case\"yy\":return e+(c(a)?\"lata\":\"lat\")}}var e=\"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień\".split(\"_\"),f=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia\".split(\"_\");(b.defineLocale||b.lang).call(b,\"pl\",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota\".split(\"_\"),weekdaysShort:\"nie_pon_wt_śr_czw_pt_sb\".split(\"_\"),weekdaysMin:\"N_Pn_Wt_Śr_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Dziś o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:\"[W] dddd [o] LT\",lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zeszłą niedzielę o] LT\";case 3:return\"[W zeszłą środę o] LT\";case 6:return\"[W zeszłą sobotę o] LT\";default:return\"[W zeszły] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",m:d,mm:d,h:d,hh:d,d:\"1 dzień\",dd:\"%d dni\",M:\"miesiąc\",MM:d,y:\"rok\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pl\",\"pl\",{closeText:\"Zamknij\",prevText:\"&#x3C;Poprzedni\",nextText:\"Następny&#x3E;\",currentText:\"Dziś\",monthNames:[\"Styczeń\",\"Luty\",\"Marzec\",\"Kwiecień\",\"Maj\",\"Czerwiec\",\"Lipiec\",\"Sierpień\",\"Wrzesień\",\"Październik\",\"Listopad\",\"Grudzień\"],monthNamesShort:[\"Sty\",\"Lu\",\"Mar\",\"Kw\",\"Maj\",\"Cze\",\"Lip\",\"Sie\",\"Wrz\",\"Pa\",\"Lis\",\"Gru\"],dayNames:[\"Niedziela\",\"Poniedziałek\",\"Wtorek\",\"Środa\",\"Czwartek\",\"Piątek\",\"Sobota\"],dayNamesShort:[\"Nie\",\"Pn\",\"Wt\",\"Śr\",\"Czw\",\"Pt\",\"So\"],dayNamesMin:[\"N\",\"Pn\",\"Wt\",\"Śr\",\"Cz\",\"Pt\",\"So\"],weekHeader:\"Tydz\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pl\",{buttonText:{month:\"Miesiąc\",week:\"Tydzień\",day:\"Dzień\",list:\"Plan dnia\"},allDayText:\"Cały dzień\",eventLimitText:\"więcej\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/pt-br.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"pt-br\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"%s atrás\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\"}),a.fullCalendar.datepickerLang(\"pt-br\",\"pt-BR\",{closeText:\"Fechar\",prevText:\"&#x3C;Anterior\",nextText:\"Próximo&#x3E;\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt-br\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Compromissos\"},allDayText:\"dia inteiro\",eventLimitText:function(a){return\"mais +\"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/pt.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"pt\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pt\",\"pt\",{closeText:\"Fechar\",prevText:\"Anterior\",nextText:\"Seguinte\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sem\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Todo o dia\",eventLimitText:\"mais\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ro.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d={mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"},e=\" \";return(a%100>=20||a>=100&&a%100===0)&&(e=\" de \"),a+e+d[c]}(b.defineLocale||b.lang).call(b,\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),weekdays:\"duminică_luni_marți_miercuri_joi_vineri_sâmbătă\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_Sâm\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_Sâ\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[mâine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s în urmă\",s:\"câteva secunde\",m:\"un minut\",mm:c,h:\"o oră\",hh:c,d:\"o zi\",dd:c,M:\"o lună\",MM:c,y:\"un an\",yy:c},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ro\",\"ro\",{closeText:\"Închide\",prevText:\"&#xAB; Luna precedentă\",nextText:\"Luna următoare &#xBB;\",currentText:\"Azi\",monthNames:[\"Ianuarie\",\"Februarie\",\"Martie\",\"Aprilie\",\"Mai\",\"Iunie\",\"Iulie\",\"August\",\"Septembrie\",\"Octombrie\",\"Noiembrie\",\"Decembrie\"],monthNamesShort:[\"Ian\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Iun\",\"Iul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Duminică\",\"Luni\",\"Marţi\",\"Miercuri\",\"Joi\",\"Vineri\",\"Sâmbătă\"],dayNamesShort:[\"Dum\",\"Lun\",\"Mar\",\"Mie\",\"Joi\",\"Vin\",\"Sâm\"],dayNamesMin:[\"Du\",\"Lu\",\"Ma\",\"Mi\",\"Jo\",\"Vi\",\"Sâ\"],weekHeader:\"Săpt\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ro\",{buttonText:{prev:\"precedentă\",next:\"următoare\",month:\"Lună\",week:\"Săptămână\",day:\"Zi\",list:\"Agendă\"},allDayText:\"Toată ziua\",eventLimitText:function(a){return\"+alte \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/ru.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:b?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"};return\"m\"===d?b?\"минута\":\"минуту\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),accusative:\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек\".split(\"_\"),accusative:\"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function g(a,b){var c={nominative:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),accusative:\"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу\".split(\"_\")},d=/\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/.test(b)?\"accusative\":\"nominative\";return c[d][a.day()]}(b.defineLocale||b.lang).call(b,\"ru\",{months:e,monthsShort:f,weekdays:g,weekdaysShort:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., LT\",LLLL:\"dddd, D MMMM YYYY г., LT\"},calendar:{sameDay:\"[Сегодня в] LT\",nextDay:\"[Завтра в] LT\",lastDay:\"[Вчера в] LT\",nextWeek:function(){return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В прошлое] dddd [в] LT\";case 1:case 2:case 4:return\"[В прошлый] dddd [в] LT\";case 3:case 5:case 6:return\"[В прошлую] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:d,mm:d,h:\"час\",hh:d,d:\"день\",dd:d,M:\"месяц\",MM:d,y:\"год\",yy:d},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночи\":12>a?\"утра\":17>a?\"дня\":\"вечера\"},ordinalParse:/\\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":return a+\"-й\";case\"D\":return a+\"-го\";case\"w\":case\"W\":return a+\"-я\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ru\",\"ru\",{closeText:\"Закрыть\",prevText:\"&#x3C;Пред\",nextText:\"След&#x3E;\",currentText:\"Сегодня\",monthNames:[\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\"],monthNamesShort:[\"Янв\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Июн\",\"Июл\",\"Авг\",\"Сен\",\"Окт\",\"Ноя\",\"Дек\"],dayNames:[\"воскресенье\",\"понедельник\",\"вторник\",\"среда\",\"четверг\",\"пятница\",\"суббота\"],dayNamesShort:[\"вск\",\"пнд\",\"втр\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Вс\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Нед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ru\",{buttonText:{month:\"Месяц\",week:\"Неделя\",day:\"День\",list:\"Повестка дня\"},allDayText:\"Весь день\",eventLimitText:function(a){return\"+ ещё \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/sk.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return a>1&&5>a}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekúnd\":\"pár sekundami\";case\"m\":return b?\"minúta\":e?\"minútu\":\"minútou\";case\"mm\":return b||e?f+(c(a)?\"minúty\":\"minút\"):f+\"minútami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodín\"):f+\"hodinami\";case\"d\":return b||e?\"deň\":\"dňom\";case\"dd\":return b||e?f+(c(a)?\"dni\":\"dní\"):f+\"dňami\";case\"M\":return b||e?\"mesiac\":\"mesiacom\";case\"MM\":return b||e?f+(c(a)?\"mesiace\":\"mesiacov\"):f+\"mesiacmi\";case\"y\":return b||e?\"rok\":\"rokom\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"rokov\"):f+\"rokmi\"}}var e=\"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december\".split(\"_\"),f=\"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"sk\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_št_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_št_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nedeľu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo štvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[včera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulú nedeľu o] LT\";case 1:case 2:return\"[minulý] dddd [o] LT\";case 3:return\"[minulú stredu o] LT\";case 4:case 5:return\"[minulý] dddd [o] LT\";case 6:return\"[minulú sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sk\",\"sk\",{closeText:\"Zavrieť\",prevText:\"&#x3C;Predchádzajúci\",nextText:\"Nasledujúci&#x3E;\",currentText:\"Dnes\",monthNames:[\"január\",\"február\",\"marec\",\"apríl\",\"máj\",\"jún\",\"júl\",\"august\",\"september\",\"október\",\"november\",\"december\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"nedeľa\",\"pondelok\",\"utorok\",\"streda\",\"štvrtok\",\"piatok\",\"sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Str\",\"Štv\",\"Pia\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"St\",\"Št\",\"Pia\",\"So\"],weekHeader:\"Ty\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sk\",{buttonText:{month:\"Mesiac\",week:\"Týždeň\",day:\"Deň\",list:\"Rozvrh\"},allDayText:\"Celý deň\",eventLimitText:function(a){return\"+ďalšie: \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/sl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"ena minuta\":\"eno minuto\";case\"mm\":return d+=1===a?\"minuta\":2===a?\"minuti\":3===a||4===a?\"minute\":\"minut\";case\"h\":return b?\"ena ura\":\"eno uro\";case\"hh\":return d+=1===a?\"ura\":2===a?\"uri\":3===a||4===a?\"ure\":\"ur\";case\"dd\":return d+=1===a?\"dan\":\"dni\";case\"MM\":return d+=1===a?\"mesec\":2===a?\"meseca\":3===a||4===a?\"mesece\":\"mesecev\";case\"yy\":return d+=1===a?\"leto\":2===a?\"leti\":3===a||4===a?\"leta\":\"let\"}}(b.defineLocale||b.lang).call(b,\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),weekdays:\"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._čet._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_če_pe_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[včeraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[prejšnja] dddd [ob] LT\";case 1:case 2:case 4:case 5:return\"[prejšnji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"čez %s\",past:\"%s nazaj\",s:\"nekaj sekund\",m:c,mm:c,h:c,hh:c,d:\"en dan\",dd:c,M:\"en mesec\",MM:c,y:\"eno leto\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sl\",\"sl\",{closeText:\"Zapri\",prevText:\"&#x3C;Prejšnji\",nextText:\"Naslednji&#x3E;\",currentText:\"Trenutni\",monthNames:[\"Januar\",\"Februar\",\"Marec\",\"April\",\"Maj\",\"Junij\",\"Julij\",\"Avgust\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Avg\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Nedelja\",\"Ponedeljek\",\"Torek\",\"Sreda\",\"Četrtek\",\"Petek\",\"Sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Tor\",\"Sre\",\"Čet\",\"Pet\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"To\",\"Sr\",\"Če\",\"Pe\",\"So\"],weekHeader:\"Teden\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sl\",{buttonText:{month:\"Mesec\",week:\"Teden\",day:\"Dan\",list:\"Dnevni red\"},allDayText:\"Ves dan\",eventLimitText:\"več\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/sr-cyrl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={words:{m:[\"један минут\",\"једне минуте\"],mm:[\"минут\",\"минуте\",\"минута\"],h:[\"један сат\",\"једног сата\"],hh:[\"сат\",\"сата\",\"сати\"],dd:[\"дан\",\"дана\",\"дана\"],MM:[\"месец\",\"месеца\",\"месеци\"],yy:[\"година\",\"године\",\"година\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr-cyrl\",{months:[\"јануар\",\"фебруар\",\"март\",\"април\",\"мај\",\"јун\",\"јул\",\"август\",\"септембар\",\"октобар\",\"новембар\",\"децембар\"],monthsShort:[\"јан.\",\"феб.\",\"мар.\",\"апр.\",\"мај\",\"јун\",\"јул\",\"авг.\",\"сеп.\",\"окт.\",\"нов.\",\"дец.\"],weekdays:[\"недеља\",\"понедељак\",\"уторак\",\"среда\",\"четвртак\",\"петак\",\"субота\"],weekdaysShort:[\"нед.\",\"пон.\",\"уто.\",\"сре.\",\"чет.\",\"пет.\",\"суб.\"],weekdaysMin:[\"не\",\"по\",\"ут\",\"ср\",\"че\",\"пе\",\"су\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[данас у] LT\",nextDay:\"[сутра у] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[у] [недељу] [у] LT\";case 3:return\"[у] [среду] [у] LT\";case 6:return\"[у] [суботу] [у] LT\";case 1:case 2:case 4:case 5:return\"[у] dddd [у] LT\"}},lastDay:\"[јуче у] LT\",lastWeek:function(){var a=[\"[прошле] [недеље] [у] LT\",\"[прошлог] [понедељка] [у] LT\",\"[прошлог] [уторка] [у] LT\",\"[прошле] [среде] [у] LT\",\"[прошлог] [четвртка] [у] LT\",\"[прошлог] [петка] [у] LT\",\"[прошле] [суботе] [у] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"пре %s\",s:\"неколико секунди\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"дан\",dd:c.translate,M:\"месец\",MM:c.translate,y:\"годину\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr-cyrl\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr-cyrl\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/sr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={words:{m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr\",{months:[\"januar\",\"februar\",\"mart\",\"april\",\"maj\",\"jun\",\"jul\",\"avgust\",\"septembar\",\"oktobar\",\"novembar\",\"decembar\"],monthsShort:[\"jan.\",\"feb.\",\"mar.\",\"apr.\",\"maj\",\"jun\",\"jul\",\"avg.\",\"sep.\",\"okt.\",\"nov.\",\"dec.\"],weekdays:[\"nedelja\",\"ponedeljak\",\"utorak\",\"sreda\",\"četvrtak\",\"petak\",\"subota\"],weekdaysShort:[\"ned.\",\"pon.\",\"uto.\",\"sre.\",\"čet.\",\"pet.\",\"sub.\"],weekdaysMin:[\"ne\",\"po\",\"ut\",\"sr\",\"če\",\"pe\",\"su\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedelje] [u] LT\",\"[prošlog] [ponedeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"dan\",dd:c.translate,M:\"mesec\",MM:c.translate,y:\"godinu\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/sv.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Igår] LT\",nextWeek:\"dddd LT\",lastWeek:\"[Förra] dddd[en] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"e\":1===b?\"a\":2===b?\"a\":\"e\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sv\",\"sv\",{closeText:\"Stäng\",prevText:\"&#xAB;Förra\",nextText:\"Nästa&#xBB;\",currentText:\"Idag\",monthNames:[\"Januari\",\"Februari\",\"Mars\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"Augusti\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNamesShort:[\"Sön\",\"Mån\",\"Tis\",\"Ons\",\"Tor\",\"Fre\",\"Lör\"],dayNames:[\"Söndag\",\"Måndag\",\"Tisdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lördag\"],dayNamesMin:[\"Sö\",\"Må\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lö\"],weekHeader:\"Ve\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sv\",{buttonText:{month:\"Månad\",week:\"Vecka\",day:\"Dag\",list:\"Program\"},allDayText:\"Heldag\",eventLimitText:\"till\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/th.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"th\",{months:\"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม\".split(\"_\"),monthsShort:\"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา\".split(\"_\"),weekdays:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์\".split(\"_\"),weekdaysShort:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์\".split(\"_\"),weekdaysMin:\"อา._จ._อ._พ._พฤ._ศ._ส.\".split(\"_\"),longDateFormat:{LT:\"H นาฬิกา m นาที\",LTS:\"LT s วินาที\",L:\"YYYY/MM/DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY เวลา LT\",LLLL:\"วันddddที่ D MMMM YYYY เวลา LT\"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return\"หลังเที่ยง\"===a},meridiem:function(a,b,c){return 12>a?\"ก่อนเที่ยง\":\"หลังเที่ยง\"},calendar:{sameDay:\"[วันนี้ เวลา] LT\",nextDay:\"[พรุ่งนี้ เวลา] LT\",nextWeek:\"dddd[หน้า เวลา] LT\",lastDay:\"[เมื่อวานนี้ เวลา] LT\",lastWeek:\"[วัน]dddd[ที่แล้ว เวลา] LT\",sameElse:\"L\"},relativeTime:{future:\"อีก %s\",past:\"%sที่แล้ว\",s:\"ไม่กี่วินาที\",m:\"1 นาที\",mm:\"%d นาที\",h:\"1 ชั่วโมง\",hh:\"%d ชั่วโมง\",d:\"1 วัน\",dd:\"%d วัน\",M:\"1 เดือน\",MM:\"%d เดือน\",y:\"1 ปี\",yy:\"%d ปี\"}}),a.fullCalendar.datepickerLang(\"th\",\"th\",{closeText:\"ปิด\",prevText:\"&#xAB;&#xA0;ย้อน\",nextText:\"ถัดไป&#xA0;&#xBB;\",currentText:\"วันนี้\",monthNames:[\"มกราคม\",\"กุมภาพันธ์\",\"มีนาคม\",\"เมษายน\",\"พฤษภาคม\",\"มิถุนายน\",\"กรกฎาคม\",\"สิงหาคม\",\"กันยายน\",\"ตุลาคม\",\"พฤศจิกายน\",\"ธันวาคม\"],monthNamesShort:[\"ม.ค.\",\"ก.พ.\",\"มี.ค.\",\"เม.ย.\",\"พ.ค.\",\"มิ.ย.\",\"ก.ค.\",\"ส.ค.\",\"ก.ย.\",\"ต.ค.\",\"พ.ย.\",\"ธ.ค.\"],dayNames:[\"อาทิตย์\",\"จันทร์\",\"อังคาร\",\"พุธ\",\"พฤหัสบดี\",\"ศุกร์\",\"เสาร์\"],dayNamesShort:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],dayNamesMin:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"th\",{buttonText:{month:\"เดือน\",week:\"สัปดาห์\",day:\"วัน\",list:\"แผนงาน\"},allDayText:\"ตลอดวัน\",eventLimitText:\"เพิ่มเติม\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/tr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'üncü\",4:\"'üncü\",100:\"'üncü\",6:\"'ncı\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'ıncı\",90:\"'ıncı\"};(b.defineLocale||b.lang).call(b,\"tr\",{months:\"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık\".split(\"_\"),monthsShort:\"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_Çar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_Ça_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[yarın saat] LT\",nextWeek:\"[haftaya] dddd [saat] LT\",lastDay:\"[dün] LT\",lastWeek:\"[geçen hafta] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s önce\",s:\"birkaç saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir yıl\",yy:\"%d yıl\"},ordinalParse:/\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+\"'ıncı\";var b=a%10,d=a%100-b,e=a>=100?100:null;return a+(c[b]||c[d]||c[e])},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"tr\",\"tr\",{closeText:\"kapat\",prevText:\"&#x3C;geri\",nextText:\"ileri&#x3e\",currentText:\"bugün\",monthNames:[\"Ocak\",\"Şubat\",\"Mart\",\"Nisan\",\"Mayıs\",\"Haziran\",\"Temmuz\",\"Ağustos\",\"Eylül\",\"Ekim\",\"Kasım\",\"Aralık\"],monthNamesShort:[\"Oca\",\"Şub\",\"Mar\",\"Nis\",\"May\",\"Haz\",\"Tem\",\"Ağu\",\"Eyl\",\"Eki\",\"Kas\",\"Ara\"],dayNames:[\"Pazar\",\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\"],dayNamesShort:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],dayNamesMin:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],weekHeader:\"Hf\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"tr\",{buttonText:{next:\"ileri\",month:\"Ay\",week:\"Hafta\",day:\"Gün\",list:\"Ajanda\"},allDayText:\"Tüm gün\",eventLimitText:\"daha fazla\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/uk.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:\"хвилина_хвилини_хвилин\",hh:\"година_години_годин\",dd:\"день_дні_днів\",MM:\"місяць_місяці_місяців\",yy:\"рік_роки_років\"};return\"m\"===d?b?\"хвилина\":\"хвилину\":\"h\"===d?b?\"година\":\"годину\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень\".split(\"_\"),accusative:\"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня\".split(\"_\")},d=/D[oD]? *MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота\".split(\"_\"),accusative:\"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу\".split(\"_\"),genitive:\"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи\".split(\"_\")},d=/(\\[[ВвУу]\\]) ?dddd/.test(b)?\"accusative\":/\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(b)?\"genitive\":\"nominative\";return c[d][a.day()]}function g(a){return function(){return a+\"о\"+(11===this.hours()?\"б\":\"\")+\"] LT\"}}(b.defineLocale||b.lang).call(b,\"uk\",{months:e,monthsShort:\"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд\".split(\"_\"),weekdays:f,weekdaysShort:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY р.\",LLL:\"D MMMM YYYY р., LT\",LLLL:\"dddd, D MMMM YYYY р., LT\"},calendar:{sameDay:g(\"[Сьогодні \"),nextDay:g(\"[Завтра \"),lastDay:g(\"[Вчора \"),nextWeek:g(\"[У] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return g(\"[Минулої] dddd [\").call(this);case 1:case 2:case 4:return g(\"[Минулого] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"%s тому\",s:\"декілька секунд\",m:d,mm:d,h:\"годину\",hh:d,d:\"день\",dd:d,M:\"місяць\",MM:d,y:\"рік\",yy:d},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночі\":12>a?\"ранку\":17>a?\"дня\":\"вечора\"},ordinalParse:/\\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a+\"-й\";case\"D\":return a+\"-го\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"uk\",\"uk\",{closeText:\"Закрити\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Сьогодні\",monthNames:[\"Січень\",\"Лютий\",\"Березень\",\"Квітень\",\"Травень\",\"Червень\",\"Липень\",\"Серпень\",\"Вересень\",\"Жовтень\",\"Листопад\",\"Грудень\"],monthNamesShort:[\"Січ\",\"Лют\",\"Бер\",\"Кві\",\"Тра\",\"Чер\",\"Лип\",\"Сер\",\"Вер\",\"Жов\",\"Лис\",\"Гру\"],dayNames:[\"неділя\",\"понеділок\",\"вівторок\",\"середа\",\"четвер\",\"п’ятниця\",\"субота\"],dayNamesShort:[\"нед\",\"пнд\",\"вів\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Нд\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Тиж\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"uk\",{buttonText:{month:\"Місяць\",week:\"Тиждень\",day:\"День\",list:\"Порядок денний\"},allDayText:\"Увесь день\",eventLimitText:function(a){return\"+ще \"+a+\"...\"}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/vi.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"vi\",{months:\"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),weekdays:\"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [năm] YYYY\",LLL:\"D MMMM [năm] YYYY LT\",LLLL:\"dddd, D MMMM [năm] YYYY LT\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[Hôm nay lúc] LT\",nextDay:\"[Ngày mai lúc] LT\",nextWeek:\"dddd [tuần tới lúc] LT\",lastDay:\"[Hôm qua lúc] LT\",lastWeek:\"dddd [tuần rồi lúc] LT\",sameElse:\"L\"},relativeTime:{future:\"%s tới\",past:\"%s trước\",s:\"vài giây\",m:\"một phút\",mm:\"%d phút\",h:\"một giờ\",hh:\"%d giờ\",d:\"một ngày\",dd:\"%d ngày\",M:\"một tháng\",MM:\"%d tháng\",y:\"một năm\",yy:\"%d năm\"},ordinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"vi\",\"vi\",{closeText:\"Đóng\",prevText:\"&#x3C;Trước\",nextText:\"Tiếp&#x3E;\",currentText:\"Hôm nay\",monthNames:[\"Tháng Một\",\"Tháng Hai\",\"Tháng Ba\",\"Tháng Tư\",\"Tháng Năm\",\"Tháng Sáu\",\"Tháng Bảy\",\"Tháng Tám\",\"Tháng Chín\",\"Tháng Mười\",\"Tháng Mười Một\",\"Tháng Mười Hai\"],monthNamesShort:[\"Tháng 1\",\"Tháng 2\",\"Tháng 3\",\"Tháng 4\",\"Tháng 5\",\"Tháng 6\",\"Tháng 7\",\"Tháng 8\",\"Tháng 9\",\"Tháng 10\",\"Tháng 11\",\"Tháng 12\"],dayNames:[\"Chủ Nhật\",\"Thứ Hai\",\"Thứ Ba\",\"Thứ Tư\",\"Thứ Năm\",\"Thứ Sáu\",\"Thứ Bảy\"],dayNamesShort:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],dayNamesMin:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],weekHeader:\"Tu\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"vi\",{buttonText:{month:\"Tháng\",week:\"Tuần\",day:\"Ngày\",list:\"Lịch biểu\"},allDayText:\"Cả ngày\",eventLimitText:function(a){return\"+ thêm \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/zh-cn.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"zh-cn\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah点mm\",LTS:\"Ah点m分s秒\",L:\"YYYY-MM-DD\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY-MM-DD\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"下午\"===b||\"晚上\"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?\"凌晨\":900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:function(){return 0===this.minutes()?\"[今天]Ah[点整]\":\"[今天]LT\"},nextDay:function(){return 0===this.minutes()?\"[明天]Ah[点整]\":\"[明天]LT\"},lastDay:function(){return 0===this.minutes()?\"[昨天]Ah[点整]\":\"[昨天]LT\"},nextWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()-a.unix()>=604800?\"[下]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},lastWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()<a.unix()?\"[上]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},sameElse:\"LL\"},ordinalParse:/\\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"周\";default:return a}},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1分钟\",mm:\"%d分钟\",h:\"1小时\",hh:\"%d小时\",d:\"1天\",dd:\"%d天\",M:\"1个月\",MM:\"%d个月\",y:\"1年\",yy:\"%d年\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"zh-cn\",\"zh-CN\",{closeText:\"关闭\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-cn\",{buttonText:{month:\"月\",week:\"周\",day:\"日\",list:\"日程\"},allDayText:\"全天\",eventLimitText:function(a){return\"另外 \"+a+\" 个\"}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang/zh-tw.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"zh-tw\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah點mm\",LTS:\"Ah點m分s秒\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},ordinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"一分鐘\",mm:\"%d分鐘\",h:\"一小時\",hh:\"%d小時\",d:\"一天\",dd:\"%d天\",M:\"一個月\",MM:\"%d個月\",y:\"一年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"zh-tw\",\"zh-TW\",{closeText:\"關閉\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy/mm/dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-tw\",{buttonText:{month:\"月\",week:\"週\",day:\"天\",list:\"待辦事項\"},allDayText:\"全天\",eventLimitText:\"更多\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/fullcalendar/lang-all.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){!function(){(b.defineLocale||b.lang).call(b,\"ar-ma\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-ma\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-ma\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"};(b.defineLocale||b.lang).call(b,\"ar-sa\",{months:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-sa\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-sa\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){(b.defineLocale||b.lang).call(b,\"ar-tn\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ar-tn\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-tn\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},e=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},f={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},g=function(a){return function(b,c,d,g){var h=e(b),i=f[a][e(b)];return 2===h&&(i=i[c?0:1]),i.replace(/%d/i,b)}},h=[\"كانون الثاني يناير\",\"شباط فبراير\",\"آذار مارس\",\"نيسان أبريل\",\"أيار مايو\",\"حزيران يونيو\",\"تموز يوليو\",\"آب أغسطس\",\"أيلول سبتمبر\",\"تشرين الأول أكتوبر\",\"تشرين الثاني نوفمبر\",\"كانون الأول ديسمبر\"];(b.defineLocale||b.lang).call(b,\"ar\",{months:h,monthsShort:h,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:g(\"s\"),m:g(\"m\"),mm:g(\"m\"),h:g(\"h\"),hh:g(\"h\"),d:g(\"d\"),dd:g(\"d\"),M:g(\"M\"),MM:g(\"M\"),y:g(\"y\"),yy:g(\"y\")},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){(b.defineLocale||b.lang).call(b,\"bg\",{months:\"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"неделя_понеделник_вторник_сряда_четвъртък_петък_събота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сря_чет_пет_съб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Днес в] LT\",nextDay:\"[Утре в] LT\",nextWeek:\"dddd [в] LT\",lastDay:\"[Вчера в] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[В изминалата] dddd [в] LT\";case 1:case 2:case 4:case 5:return\"[В изминалия] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"след %s\",past:\"преди %s\",s:\"няколко секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дни\",M:\"месец\",MM:\"%d месеца\",y:\"година\",yy:\"%d години\"},ordinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&20>c?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"bg\",\"bg\",{closeText:\"затвори\",prevText:\"&#x3C;назад\",nextText:\"напред&#x3E;\",nextBigText:\"&#x3E;&#x3E;\",currentText:\"днес\",monthNames:[\"Януари\",\"Февруари\",\"Март\",\"Април\",\"Май\",\"Юни\",\"Юли\",\"Август\",\"Септември\",\"Октомври\",\"Ноември\",\"Декември\"],monthNamesShort:[\"Яну\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Юни\",\"Юли\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дек\"],dayNames:[\"Неделя\",\"Понеделник\",\"Вторник\",\"Сряда\",\"Четвъртък\",\"Петък\",\"Събота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Вто\",\"Сря\",\"Чет\",\"Пет\",\"Съб\"],dayNamesMin:[\"Не\",\"По\",\"Вт\",\"Ср\",\"Че\",\"Пе\",\"Съ\"],weekHeader:\"Wk\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"bg\",{buttonText:{month:\"Месец\",week:\"Седмица\",day:\"Ден\",list:\"График\"},allDayText:\"Цял ден\",eventLimitText:function(a){return\"+още \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"ca\",{months:\"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),monthsShort:\"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.\".split(\"_\"),weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"Dg_Dl_Dt_Dc_Dj_Dv_Ds\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[demà a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"fa %s\",s:\"uns segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},ordinalParse:/\\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?\"r\":2===a?\"n\":3===a?\"r\":4===a?\"t\":\"è\";return(\"w\"===b||\"W\"===b)&&(c=\"a\"),a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ca\",\"ca\",{closeText:\"Tanca\",prevText:\"Anterior\",nextText:\"Següent\",currentText:\"Avui\",monthNames:[\"gener\",\"febrer\",\"març\",\"abril\",\"maig\",\"juny\",\"juliol\",\"agost\",\"setembre\",\"octubre\",\"novembre\",\"desembre\"],monthNamesShort:[\"gen\",\"feb\",\"març\",\"abr\",\"maig\",\"juny\",\"jul\",\"ag\",\"set\",\"oct\",\"nov\",\"des\"],dayNames:[\"diumenge\",\"dilluns\",\"dimarts\",\"dimecres\",\"dijous\",\"divendres\",\"dissabte\"],dayNamesShort:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],dayNamesMin:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],weekHeader:\"Set\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ca\",{buttonText:{month:\"Mes\",week:\"Setmana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Tot el dia\",eventLimitText:\"més\"})}(),function(){function c(a){return a>1&&5>a&&1!==~~(a/10)}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekund\":\"pár sekundami\";case\"m\":return b?\"minuta\":e?\"minutu\":\"minutou\";case\"mm\":return b||e?f+(c(a)?\"minuty\":\"minut\"):f+\"minutami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodin\"):f+\"hodinami\";case\"d\":return b||e?\"den\":\"dnem\";case\"dd\":return b||e?f+(c(a)?\"dny\":\"dní\"):f+\"dny\";case\"M\":return b||e?\"měsíc\":\"měsícem\";case\"MM\":return b||e?f+(c(a)?\"měsíce\":\"měsíců\"):f+\"měsíci\";case\"y\":return b||e?\"rok\":\"rokem\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"let\"):f+\"lety\"}}var e=\"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec\".split(\"_\"),f=\"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro\".split(\"_\");(b.defineLocale||b.lang).call(b,\"cs\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_út_st_čt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_út_st_čt_pá_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[zítra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v neděli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve středu v] LT\";case 4:return\"[ve čtvrtek v] LT\";case 5:return\"[v pátek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[včera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou neděli v] LT\";case 1:case 2:return\"[minulé] dddd [v] LT\";case 3:return\"[minulou středu v] LT\";case 4:case 5:return\"[minulý] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"před %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"cs\",\"cs\",{closeText:\"Zavřít\",prevText:\"&#x3C;Dříve\",nextText:\"Později&#x3E;\",currentText:\"Nyní\",monthNames:[\"leden\",\"únor\",\"březen\",\"duben\",\"květen\",\"červen\",\"červenec\",\"srpen\",\"září\",\"říjen\",\"listopad\",\"prosinec\"],monthNamesShort:[\"led\",\"úno\",\"bře\",\"dub\",\"kvě\",\"čer\",\"čvc\",\"srp\",\"zář\",\"říj\",\"lis\",\"pro\"],dayNames:[\"neděle\",\"pondělí\",\"úterý\",\"středa\",\"čtvrtek\",\"pátek\",\"sobota\"],dayNamesShort:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],dayNamesMin:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],weekHeader:\"Týd\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"cs\",{buttonText:{month:\"Měsíc\",week:\"Týden\",day:\"Den\",list:\"Agenda\"},allDayText:\"Celý den\",eventLimitText:function(a){return\"+další: \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tir_ons_tor_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd [d.] D. MMMM YYYY LT\"},calendar:{sameDay:\"[I dag kl.] LT\",nextDay:\"[I morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[I går kl.] LT\",lastWeek:\"[sidste] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"få sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en måned\",MM:\"%d måneder\",y:\"et år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"da\",\"da\",{closeText:\"Luk\",prevText:\"&#x3C;Forrige\",nextText:\"Næste&#x3E;\",currentText:\"Idag\",monthNames:[\"Januar\",\"Februar\",\"Marts\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Søndag\",\"Mandag\",\"Tirsdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lørdag\"],dayNamesShort:[\"Søn\",\"Man\",\"Tir\",\"Ons\",\"Tor\",\"Fre\",\"Lør\"],dayNamesMin:[\"Sø\",\"Ma\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lø\"],weekHeader:\"Uge\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"da\",{buttonText:{month:\"Måned\",week:\"Uge\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"flere\"})}(),function(){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de-at\",{months:\"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de-at\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de-at\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})}(),function(){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"el\",{monthsNominativeEl:\"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος\".split(\"_\"),monthsGenitiveEl:\"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου\".split(\"_\"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf(\"MMMM\")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:\"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ\".split(\"_\"),weekdays:\"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο\".split(\"_\"),weekdaysShort:\"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ\".split(\"_\"),weekdaysMin:\"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα\".split(\"_\"),meridiem:function(a,b,c){return a>11?c?\"μμ\":\"ΜΜ\":c?\"πμ\":\"ΠΜ\"},isPM:function(a){return\"μ\"===(a+\"\").toLowerCase()[0]},meridiemParse:/[ΠΜ]\\.?Μ?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendarEl:{sameDay:\"[Σήμερα {}] LT\",nextDay:\"[Αύριο {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[Χθες {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[το προηγούμενο] dddd [{}] LT\";default:return\"[την προηγούμενη] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return\"function\"==typeof c&&(c=c.apply(b)),c.replace(\"{}\",d%12===1?\"στη\":\"στις\")},relativeTime:{future:\"σε %s\",past:\"%s πριν\",s:\"λίγα δευτερόλεπτα\",m:\"ένα λεπτό\",mm:\"%d λεπτά\",h:\"μία ώρα\",hh:\"%d ώρες\",d:\"μία μέρα\",dd:\"%d μέρες\",M:\"ένας μήνας\",MM:\"%d μήνες\",y:\"ένας χρόνος\",yy:\"%d χρόνια\"},ordinalParse:/\\d{1,2}η/,ordinal:\"%dη\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"el\",\"el\",{closeText:\"Κλείσιμο\",prevText:\"Προηγούμενος\",nextText:\"Επόμενος\",currentText:\"Σήμερα\",monthNames:[\"Ιανουάριος\",\"Φεβρουάριος\",\"Μάρτιος\",\"Απρίλιος\",\"Μάιος\",\"Ιούνιος\",\"Ιούλιος\",\"Αύγουστος\",\"Σεπτέμβριος\",\"Οκτώβριος\",\"Νοέμβριος\",\"Δεκέμβριος\"],monthNamesShort:[\"Ιαν\",\"Φεβ\",\"Μαρ\",\"Απρ\",\"Μαι\",\"Ιουν\",\"Ιουλ\",\"Αυγ\",\"Σεπ\",\"Οκτ\",\"Νοε\",\"Δεκ\"],dayNames:[\"Κυριακή\",\"Δευτέρα\",\"Τρίτη\",\"Τετάρτη\",\"Πέμπτη\",\"Παρασκευή\",\"Σάββατο\"],dayNamesShort:[\"Κυρ\",\"Δευ\",\"Τρι\",\"Τετ\",\"Πεμ\",\"Παρ\",\"Σαβ\"],dayNamesMin:[\"Κυ\",\"Δε\",\"Τρ\",\"Τε\",\"Πε\",\"Πα\",\"Σα\"],weekHeader:\"Εβδ\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"el\",{buttonText:{month:\"Μήνας\",week:\"Εβδομάδα\",day:\"Ημέρα\",list:\"Ατζέντα\"},allDayText:\"Ολοήμερο\",eventLimitText:\"περισσότερα\"})}(),function(){(b.defineLocale||b.lang).call(b,\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-au\",\"en-AU\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-au\")}(),function(){(b.defineLocale||b.lang).call(b,\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"D MMMM, YYYY\",LLL:\"D MMMM, YYYY LT\",LLLL:\"dddd, D MMMM, YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.fullCalendar.lang(\"en-ca\")}(),function(){(b.defineLocale||b.lang).call(b,\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-gb\",\"en-GB\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-gb\")}(),function(){var c=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),d=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");(b.defineLocale||b.lang).call(b,\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"Do_Lu_Ma_Mi_Ju_Vi_Sá\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"es\",\"es\",{closeText:\"Cerrar\",prevText:\"&#x3C;Ant\",nextText:\"Sig&#x3E;\",currentText:\"Hoy\",monthNames:[\"enero\",\"febrero\",\"marzo\",\"abril\",\"mayo\",\"junio\",\"julio\",\"agosto\",\"septiembre\",\"octubre\",\"noviembre\",\"diciembre\"],monthNamesShort:[\"ene\",\"feb\",\"mar\",\"abr\",\"may\",\"jun\",\"jul\",\"ago\",\"sep\",\"oct\",\"nov\",\"dic\"],dayNames:[\"domingo\",\"lunes\",\"martes\",\"miércoles\",\"jueves\",\"viernes\",\"sábado\"],dayNamesShort:[\"dom\",\"lun\",\"mar\",\"mié\",\"jue\",\"vie\",\"sáb\"],dayNamesMin:[\"D\",\"L\",\"M\",\"X\",\"J\",\"V\",\"S\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"es\",{buttonText:{month:\"Mes\",week:\"Semana\",day:\"Día\",list:\"Agenda\"},allDayHtml:\"Todo<br/>el día\",eventLimitText:\"más\"})}(),function(){var c={1:\"۱\",2:\"۲\",3:\"۳\",4:\"۴\",5:\"۵\",6:\"۶\",7:\"۷\",8:\"۸\",9:\"۹\",0:\"۰\"},d={\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"۰\":\"0\"};(b.defineLocale||b.lang).call(b,\"fa\",{months:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),monthsShort:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),weekdays:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysShort:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysMin:\"ی_د_س_چ_پ_ج_ش\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?\"قبل از ظهر\":\"بعد از ظهر\"},calendar:{sameDay:\"[امروز ساعت] LT\",nextDay:\"[فردا ساعت] LT\",nextWeek:\"dddd [ساعت] LT\",lastDay:\"[دیروز ساعت] LT\",lastWeek:\"dddd [پیش] [ساعت] LT\",sameElse:\"L\"},relativeTime:{future:\"در %s\",past:\"%s پیش\",s:\"چندین ثانیه\",m:\"یک دقیقه\",mm:\"%d دقیقه\",h:\"یک ساعت\",hh:\"%d ساعت\",d:\"یک روز\",dd:\"%d روز\",M:\"یک ماه\",MM:\"%d ماه\",y:\"یک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},ordinalParse:/\\d{1,2}م/,ordinal:\"%dم\",week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"fa\",\"fa\",{closeText:\"بستن\",prevText:\"&#x3C;قبلی\",nextText:\"بعدی&#x3E;\",currentText:\"امروز\",monthNames:[\"ژانویه\",\"فوریه\",\"مارس\",\"آوریل\",\"مه\",\"ژوئن\",\"ژوئیه\",\"اوت\",\"سپتامبر\",\"اکتبر\",\"نوامبر\",\"دسامبر\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"يکشنبه\",\"دوشنبه\",\"سه‌شنبه\",\"چهارشنبه\",\"پنجشنبه\",\"جمعه\",\"شنبه\"],dayNamesShort:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],dayNamesMin:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],weekHeader:\"هف\",dateFormat:\"yy/mm/dd\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fa\",{buttonText:{month:\"ماه\",week:\"هفته\",day:\"روز\",list:\"برنامه\"\n},allDayText:\"تمام روز\",eventLimitText:function(a){return\"بیش از \"+a}})}(),function(){function c(a,b,c,e){var f=\"\";switch(c){case\"s\":return e?\"muutaman sekunnin\":\"muutama sekunti\";case\"m\":return e?\"minuutin\":\"minuutti\";case\"mm\":f=e?\"minuutin\":\"minuuttia\";break;case\"h\":return e?\"tunnin\":\"tunti\";case\"hh\":f=e?\"tunnin\":\"tuntia\";break;case\"d\":return e?\"päivän\":\"päivä\";case\"dd\":f=e?\"päivän\":\"päivää\";break;case\"M\":return e?\"kuukauden\":\"kuukausi\";case\"MM\":f=e?\"kuukauden\":\"kuukautta\";break;case\"y\":return e?\"vuoden\":\"vuosi\";case\"yy\":f=e?\"vuoden\":\"vuotta\"}return f=d(a,e)+\" \"+f}function d(a,b){return 10>a?b?f[a]:e[a]:a}var e=\"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän\".split(\" \"),f=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"neljän\",\"viiden\",\"kuuden\",e[7],e[8],e[9]];(b.defineLocale||b.lang).call(b,\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] LT\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] LT\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] LT\",llll:\"ddd, Do MMM YYYY, [klo] LT\"},calendar:{sameDay:\"[tänään] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s päästä\",past:\"%s sitten\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fi\",\"fi\",{closeText:\"Sulje\",prevText:\"&#xAB;Edellinen\",nextText:\"Seuraava&#xBB;\",currentText:\"Tänään\",monthNames:[\"Tammikuu\",\"Helmikuu\",\"Maaliskuu\",\"Huhtikuu\",\"Toukokuu\",\"Kesäkuu\",\"Heinäkuu\",\"Elokuu\",\"Syyskuu\",\"Lokakuu\",\"Marraskuu\",\"Joulukuu\"],monthNamesShort:[\"Tammi\",\"Helmi\",\"Maalis\",\"Huhti\",\"Touko\",\"Kesä\",\"Heinä\",\"Elo\",\"Syys\",\"Loka\",\"Marras\",\"Joulu\"],dayNamesShort:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],dayNames:[\"Sunnuntai\",\"Maanantai\",\"Tiistai\",\"Keskiviikko\",\"Torstai\",\"Perjantai\",\"Lauantai\"],dayNamesMin:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],weekHeader:\"Vk\",dateFormat:\"d.m.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fi\",{buttonText:{month:\"Kuukausi\",week:\"Viikko\",day:\"Päivä\",list:\"Tapahtumat\"},allDayText:\"Koko päivä\",eventLimitText:\"lisää\"})}(),function(){(b.defineLocale||b.lang).call(b,\"fr-ca\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")}}),a.fullCalendar.datepickerLang(\"fr-ca\",\"fr-CA\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avril\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr-ca\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})}(),function(){(b.defineLocale||b.lang).call(b,\"fr\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fr\",\"fr\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avr.\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})}(),function(){(b.defineLocale||b.lang).call(b,\"he\",{months:\"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר\".split(\"_\"),monthsShort:\"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳\".split(\"_\"),weekdays:\"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת\".split(\"_\"),weekdaysShort:\"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳\".split(\"_\"),weekdaysMin:\"א_ב_ג_ד_ה_ו_ש\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [ב]MMMM YYYY\",LLL:\"D [ב]MMMM YYYY LT\",LLLL:\"dddd, D [ב]MMMM YYYY LT\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[היום ב־]LT\",nextDay:\"[מחר ב־]LT\",nextWeek:\"dddd [בשעה] LT\",lastDay:\"[אתמול ב־]LT\",lastWeek:\"[ביום] dddd [האחרון בשעה] LT\",sameElse:\"L\"},relativeTime:{future:\"בעוד %s\",past:\"לפני %s\",s:\"מספר שניות\",m:\"דקה\",mm:\"%d דקות\",h:\"שעה\",hh:function(a){return 2===a?\"שעתיים\":a+\" שעות\"},d:\"יום\",dd:function(a){return 2===a?\"יומיים\":a+\" ימים\"},M:\"חודש\",MM:function(a){return 2===a?\"חודשיים\":a+\" חודשים\"},y:\"שנה\",yy:function(a){return 2===a?\"שנתיים\":a%10===0&&10!==a?a+\" שנה\":a+\" שנים\"}}}),a.fullCalendar.datepickerLang(\"he\",\"he\",{closeText:\"סגור\",prevText:\"&#x3C;הקודם\",nextText:\"הבא&#x3E;\",currentText:\"היום\",monthNames:[\"ינואר\",\"פברואר\",\"מרץ\",\"אפריל\",\"מאי\",\"יוני\",\"יולי\",\"אוגוסט\",\"ספטמבר\",\"אוקטובר\",\"נובמבר\",\"דצמבר\"],monthNamesShort:[\"ינו\",\"פבר\",\"מרץ\",\"אפר\",\"מאי\",\"יוני\",\"יולי\",\"אוג\",\"ספט\",\"אוק\",\"נוב\",\"דצמ\"],dayNames:[\"ראשון\",\"שני\",\"שלישי\",\"רביעי\",\"חמישי\",\"שישי\",\"שבת\"],dayNamesShort:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],dayNamesMin:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"he\",{defaultButtonText:{month:\"חודש\",week:\"שבוע\",day:\"יום\",list:\"סדר יום\"},weekNumberTitle:\"שבוע\",allDayText:\"כל היום\",eventLimitText:\"אחר\"})}(),function(){var c={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},d={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};(b.defineLocale||b.lang).call(b,\"hi\",{months:\"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर\".split(\"_\"),monthsShort:\"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.\".split(\"_\"),weekdays:\"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm बजे\",LTS:\"A h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, LT\",LLLL:\"dddd, D MMMM YYYY, LT\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[कल] LT\",nextWeek:\"dddd, LT\",lastDay:\"[कल] LT\",lastWeek:\"[पिछले] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s में\",past:\"%s पहले\",s:\"कुछ ही क्षण\",m:\"एक मिनट\",mm:\"%d मिनट\",h:\"एक घंटा\",hh:\"%d घंटे\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महीने\",MM:\"%d महीने\",y:\"एक वर्ष\",yy:\"%d वर्ष\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return d[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात\"===b?4>a?a:a+12:\"सुबह\"===b?a:\"दोपहर\"===b?a>=10?a:a+12:\"शाम\"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?\"रात\":10>a?\"सुबह\":17>a?\"दोपहर\":20>a?\"शाम\":\"रात\"},week:{dow:0,doy:6}}),a.fullCalendar.datepickerLang(\"hi\",\"hi\",{closeText:\"बंद\",prevText:\"पिछला\",nextText:\"अगला\",currentText:\"आज\",monthNames:[\"जनवरी \",\"फरवरी\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अगस्त \",\"सितम्बर\",\"अक्टूबर\",\"नवम्बर\",\"दिसम्बर\"],monthNamesShort:[\"जन\",\"फर\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अग\",\"सित\",\"अक्ट\",\"नव\",\"दि\"],dayNames:[\"रविवार\",\"सोमवार\",\"मंगलवार\",\"बुधवार\",\"गुरुवार\",\"शुक्रवार\",\"शनिवार\"],dayNamesShort:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],dayNamesMin:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],weekHeader:\"हफ्ता\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hi\",{buttonText:{month:\"महीना\",week:\"सप्ताह\",day:\"दिन\",list:\"कार्यसूची\"},allDayText:\"सभी दिन\",eventLimitText:function(a){return\"+अधिक \"+a}})}(),function(){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}(b.defineLocale||b.lang).call(b,\"hr\",{months:\"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\"),monthsShort:\"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:c,mm:c,h:c,hh:c,d:\"dan\",dd:c,M:\"mjesec\",MM:c,y:\"godinu\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hr\",\"hr\",{closeText:\"Zatvori\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Danas\",monthNames:[\"Siječanj\",\"Veljača\",\"Ožujak\",\"Travanj\",\"Svibanj\",\"Lipanj\",\"Srpanj\",\"Kolovoz\",\"Rujan\",\"Listopad\",\"Studeni\",\"Prosinac\"],monthNamesShort:[\"Sij\",\"Velj\",\"Ožu\",\"Tra\",\"Svi\",\"Lip\",\"Srp\",\"Kol\",\"Ruj\",\"Lis\",\"Stu\",\"Pro\"],dayNames:[\"Nedjelja\",\"Ponedjeljak\",\"Utorak\",\"Srijeda\",\"Četvrtak\",\"Petak\",\"Subota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Sri\",\"Čet\",\"Pet\",\"Sub\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"Sr\",\"Če\",\"Pe\",\"Su\"],weekHeader:\"Tje\",dateFormat:\"dd.mm.yy.\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hr\",{buttonText:{month:\"Mjesec\",week:\"Tjedan\",day:\"Dan\",list:\"Raspored\"},allDayText:\"Cijeli dan\",eventLimitText:function(a){return\"+ još \"+a}})}(),function(){function c(a,b,c,d){var e=a;switch(c){case\"s\":return d||b?\"néhány másodperc\":\"néhány másodperce\";case\"m\":return\"egy\"+(d||b?\" perc\":\" perce\");case\"mm\":return e+(d||b?\" perc\":\" perce\");case\"h\":return\"egy\"+(d||b?\" óra\":\" órája\");case\"hh\":return e+(d||b?\" óra\":\" órája\");case\"d\":return\"egy\"+(d||b?\" nap\":\" napja\");case\"dd\":return e+(d||b?\" nap\":\" napja\");case\"M\":return\"egy\"+(d||b?\" hónap\":\" hónapja\");case\"MM\":return e+(d||b?\" hónap\":\" hónapja\");case\"y\":return\"egy\"+(d||b?\" év\":\" éve\");case\"yy\":return e+(d||b?\" év\":\" éve\")}return\"\"}function d(a){return(a?\"\":\"[múlt] \")+\"[\"+e[this.day()]+\"] LT[-kor]\"}var e=\"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton\".split(\" \");(b.defineLocale||b.lang).call(b,\"hu\",{months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D., LT\",LLLL:\"YYYY. MMMM D., dddd LT\"},meridiemParse:/de|du/i,isPM:function(a){return\"u\"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?\"de\":\"DE\":c===!0?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return d.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return d.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s múlva\",past:\"%s\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hu\",\"hu\",{closeText:\"bezár\",prevText:\"vissza\",nextText:\"előre\",currentText:\"ma\",monthNames:[\"Január\",\"Február\",\"Március\",\"Április\",\"Május\",\"Június\",\"Július\",\"Augusztus\",\"Szeptember\",\"Október\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Már\",\"Ápr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Szep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Vasárnap\",\"Hétfő\",\"Kedd\",\"Szerda\",\"Csütörtök\",\"Péntek\",\"Szombat\"],dayNamesShort:[\"Vas\",\"Hét\",\"Ked\",\"Sze\",\"Csü\",\"Pén\",\"Szo\"],dayNamesMin:[\"V\",\"H\",\"K\",\"Sze\",\"Cs\",\"P\",\"Szo\"],weekHeader:\"Hét\",dateFormat:\"yy.mm.dd.\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"hu\",{buttonText:{month:\"Hónap\",week:\"Hét\",day:\"Nap\",list:\"Napló\"},allDayText:\"Egész nap\",eventLimitText:\"további\"})}(),function(){(b.defineLocale||b.lang).call(b,\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"LT.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] LT\",LLLL:\"dddd, D MMMM YYYY [pukul] LT\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"siang\"===b?a>=11?a:a+12:\"sore\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"pagi\":15>a?\"siang\":19>a?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"id\",\"id\",{closeText:\"Tutup\",prevText:\"&#x3C;mundur\",nextText:\"maju&#x3E;\",currentText:\"hari ini\",monthNames:[\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"Nopember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mei\",\"Jun\",\"Jul\",\"Agus\",\"Sep\",\"Okt\",\"Nop\",\"Des\"],dayNames:[\"Minggu\",\"Senin\",\"Selasa\",\"Rabu\",\"Kamis\",\"Jumat\",\"Sabtu\"],dayNamesShort:[\"Min\",\"Sen\",\"Sel\",\"Rab\",\"kam\",\"Jum\",\"Sab\"],dayNamesMin:[\"Mg\",\"Sn\",\"Sl\",\"Rb\",\"Km\",\"jm\",\"Sb\"],weekHeader:\"Mg\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"id\",{buttonText:{month:\"Bulan\",week:\"Minggu\",day:\"Hari\",list:\"Agenda\"},allDayHtml:\"Sehari<br/>penuh\",eventLimitText:\"lebih\"})}(),function(){function c(a){return a%100===11?!0:a%10===1?!1:!0}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"nokkrar sekúndur\":\"nokkrum sekúndum\";case\"m\":return b?\"mínúta\":\"mínútu\";case\"mm\":return c(a)?f+(b||e?\"mínútur\":\"mínútum\"):b?f+\"mínúta\":f+\"mínútu\";case\"hh\":return c(a)?f+(b||e?\"klukkustundir\":\"klukkustundum\"):f+\"klukkustund\";case\"d\":return b?\"dagur\":e?\"dag\":\"degi\";case\"dd\":return c(a)?b?f+\"dagar\":f+(e?\"daga\":\"dögum\"):b?f+\"dagur\":f+(e?\"dag\":\"degi\");case\"M\":return b?\"mánuður\":e?\"mánuð\":\"mánuði\";case\"MM\":return c(a)?b?f+\"mánuðir\":f+(e?\"mánuði\":\"mánuðum\"):b?f+\"mánuður\":f+(e?\"mánuð\":\"mánuði\");case\"y\":return b||e?\"ár\":\"ári\";case\"yy\":return c(a)?f+(b||e?\"ár\":\"árum\"):f+(b||e?\"ár\":\"ári\")}}(b.defineLocale||b.lang).call(b,\"is\",{months:\"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des\".split(\"_\"),weekdays:\"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_mán_þri_mið_fim_fös_lau\".split(\"_\"),weekdaysMin:\"Su_Má_Þr_Mi_Fi_Fö_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd, D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[í dag kl.] LT\",nextDay:\"[á morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[í gær kl.] LT\",lastWeek:\"[síðasta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s síðan\",s:d,m:d,mm:d,h:\"klukkustund\",hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"is\",\"is\",{closeText:\"Loka\",prevText:\"&#x3C; Fyrri\",nextText:\"Næsti &#x3E;\",currentText:\"Í dag\",monthNames:[\"Janúar\",\"Febrúar\",\"Mars\",\"Apríl\",\"Maí\",\"Júní\",\"Júlí\",\"Ágúst\",\"September\",\"Október\",\"Nóvember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maí\",\"Jún\",\"Júl\",\"Ágú\",\"Sep\",\"Okt\",\"Nóv\",\"Des\"],dayNames:[\"Sunnudagur\",\"Mánudagur\",\"Þriðjudagur\",\"Miðvikudagur\",\"Fimmtudagur\",\"Föstudagur\",\"Laugardagur\"],dayNamesShort:[\"Sun\",\"Mán\",\"Þri\",\"Mið\",\"Fim\",\"Fös\",\"Lau\"],dayNamesMin:[\"Su\",\"Má\",\"Þr\",\"Mi\",\"Fi\",\"Fö\",\"La\"],weekHeader:\"Vika\",dateFormat:\"dd.mm.yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"is\",{buttonText:{month:\"Mánuður\",week:\"Vika\",day:\"Dagur\",list:\"Dagskrá\"},allDayHtml:\"Allan<br/>daginn\",eventLimitText:\"meira\"})}(),function(){(b.defineLocale||b.lang).call(b,\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato\".split(\"_\"),weekdaysShort:\"Dom_Lun_Mar_Mer_Gio_Ven_Sab\".split(\"_\"),weekdaysMin:\"D_L_Ma_Me_G_V_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?\"tra\":\"in\")+\" \"+a},past:\"%s fa\",s:\"alcuni secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"it\",\"it\",{closeText:\"Chiudi\",prevText:\"&#x3C;Prec\",nextText:\"Succ&#x3E;\",currentText:\"Oggi\",monthNames:[\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],monthNamesShort:[\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\"],dayNames:[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"],dayNamesShort:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\"],dayNamesMin:[\"Do\",\"Lu\",\"Ma\",\"Me\",\"Gi\",\"Ve\",\"Sa\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"it\",{buttonText:{month:\"Mese\",week:\"Settimana\",day:\"Giorno\",list:\"Agenda\"},allDayHtml:\"Tutto il<br/>giorno\",eventLimitText:function(a){return\"+altri \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"ja\",{months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),longDateFormat:{LT:\"Ah時m分\",LTS:\"LTs秒\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日LT\",LLLL:\"YYYY年M月D日LT dddd\"},meridiemParse:/午前|午後/i,isPM:function(a){return\"午後\"===a},meridiem:function(a,b,c){return 12>a?\"午前\":\"午後\"},calendar:{sameDay:\"[今日] LT\",nextDay:\"[明日] LT\",nextWeek:\"[来週]dddd LT\",lastDay:\"[昨日] LT\",lastWeek:\"[前週]dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"ja\",\"ja\",{closeText:\"閉じる\",prevText:\"&#x3C;前\",nextText:\"次&#x3E;\",currentText:\"今日\",monthNames:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],monthNamesShort:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],dayNames:[\"日曜日\",\"月曜日\",\"火曜日\",\"水曜日\",\"木曜日\",\"金曜日\",\"土曜日\"],dayNamesShort:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],dayNamesMin:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],weekHeader:\"週\",dateFormat:\"yy/mm/dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"ja\",{buttonText:{month:\"月\",week:\"週\",day:\"日\",list:\"予定リスト\"},allDayText:\"終日\",eventLimitText:function(a){return\"他 \"+a+\" 件\"}})}(),function(){(b.defineLocale||b.lang).call(b,\"ko\",{months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),longDateFormat:{LT:\"A h시 m분\",LTS:\"A h시 m분 s초\",L:\"YYYY.MM.DD\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 LT\",LLLL:\"YYYY년 MMMM D일 dddd LT\"},calendar:{sameDay:\"오늘 LT\",nextDay:\"내일 LT\",nextWeek:\"dddd LT\",lastDay:\"어제 LT\",lastWeek:\"지난주 dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇초\",ss:\"%d초\",m:\"일분\",mm:\"%d분\",h:\"한시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한달\",MM:\"%d달\",y:\"일년\",yy:\"%d년\"},ordinalParse:/\\d{1,2}일/,ordinal:\"%d일\",meridiemParse:/오전|오후/,isPM:function(a){return\"오후\"===a},meridiem:function(a,b,c){return 12>a?\"오전\":\"오후\"}}),a.fullCalendar.datepickerLang(\"ko\",\"ko\",{closeText:\"닫기\",prevText:\"이전달\",nextText:\"다음달\",currentText:\"오늘\",monthNames:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],monthNamesShort:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],dayNames:[\"일요일\",\"월요일\",\"화요일\",\"수요일\",\"목요일\",\"금요일\",\"토요일\"],dayNamesShort:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],dayNamesMin:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],weekHeader:\"Wk\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"년\"}),a.fullCalendar.lang(\"ko\",{buttonText:{month:\"월\",week:\"주\",day:\"일\",list:\"일정목록\"},allDayText:\"종일\",eventLimitText:\"개\"})}(),function(){function c(a,b,c,d){return b?\"kelios sekundės\":d?\"kelių sekundžių\":\"kelias sekundes\"}function d(a,b,c,d){return b?f(c)[0]:d?f(c)[1]:f(c)[2]}function e(a){return a%10===0||a>10&&20>a}function f(a){return i[a].split(\"_\")}function g(a,b,c,g){var h=a+\" \";return 1===a?h+d(a,b,c[0],g):b?h+(e(a)?f(c)[1]:f(c)[0]):g?h+f(c)[1]:h+(e(a)?f(c)[1]:f(c)[2])}function h(a,b){var c=-1===b.indexOf(\"dddd HH:mm\"),d=j[a.day()];return c?d:d.substring(0,d.length-2)+\"į\"}var i={m:\"minutė_minutės_minutę\",mm:\"minutės_minučių_minutes\",h:\"valanda_valandos_valandą\",hh:\"valandos_valandų_valandas\",d:\"diena_dienos_dieną\",dd:\"dienos_dienų_dienas\",M:\"mėnuo_mėnesio_mėnesį\",MM:\"mėnesiai_mėnesių_mėnesius\",y:\"metai_metų_metus\",yy:\"metai_metų_metus\"},j=\"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis\".split(\"_\");(b.defineLocale||b.lang).call(b,\"lt\",{months:\"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio\".split(\"_\"),monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:h,weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_Šeš\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_Š\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], LT [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, LT [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], LT [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, LT [val.]\"},calendar:{sameDay:\"[Šiandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Praėjusį] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prieš %s\",s:c,m:d,mm:g,h:d,hh:g,d:d,dd:g,M:d,MM:g,y:d,yy:g},ordinalParse:/\\d{1,2}-oji/,ordinal:function(a){return a+\"-oji\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lt\",\"lt\",{closeText:\"Uždaryti\",prevText:\"&#x3C;Atgal\",nextText:\"Pirmyn&#x3E;\",currentText:\"Šiandien\",monthNames:[\"Sausis\",\"Vasaris\",\"Kovas\",\"Balandis\",\"Gegužė\",\"Birželis\",\"Liepa\",\"Rugpjūtis\",\"Rugsėjis\",\"Spalis\",\"Lapkritis\",\"Gruodis\"],monthNamesShort:[\"Sau\",\"Vas\",\"Kov\",\"Bal\",\"Geg\",\"Bir\",\"Lie\",\"Rugp\",\"Rugs\",\"Spa\",\"Lap\",\"Gru\"],dayNames:[\"sekmadienis\",\"pirmadienis\",\"antradienis\",\"trečiadienis\",\"ketvirtadienis\",\"penktadienis\",\"šeštadienis\"],dayNamesShort:[\"sek\",\"pir\",\"ant\",\"tre\",\"ket\",\"pen\",\"šeš\"],dayNamesMin:[\"Se\",\"Pr\",\"An\",\"Tr\",\"Ke\",\"Pe\",\"Še\"],weekHeader:\"SAV\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"lt\",{buttonText:{month:\"Mėnuo\",week:\"Savaitė\",day:\"Diena\",list:\"Darbotvarkė\"},allDayText:\"Visą dieną\",eventLimitText:\"daugiau\"})}(),function(){function c(a,b,c){var d=a.split(\"_\");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function d(a,b,d){return a+\" \"+c(e[d],a,b)}var e={mm:\"minūti_minūtes_minūte_minūtes\",hh:\"stundu_stundas_stunda_stundas\",dd:\"dienu_dienas_diena_dienas\",MM:\"mēnesi_mēnešus_mēnesis_mēneši\",yy:\"gadu_gadus_gads_gadi\"};(b.defineLocale||b.lang).call(b,\"lv\",{months:\"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, LT\",LLLL:\"YYYY. [gada] D. MMMM, dddd, LT\"},calendar:{sameDay:\"[Šodien pulksten] LT\",nextDay:\"[Rīt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pagājušā] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"%s vēlāk\",past:\"%s agrāk\",s:\"dažas sekundes\",m:\"minūti\",mm:d,h:\"stundu\",hh:d,d:\"dienu\",dd:d,M:\"mēnesi\",MM:d,y:\"gadu\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lv\",\"lv\",{closeText:\"Aizvērt\",prevText:\"Iepr.\",nextText:\"Nāk.\",currentText:\"Šodien\",monthNames:[\"Janvāris\",\"Februāris\",\"Marts\",\"Aprīlis\",\"Maijs\",\"Jūnijs\",\"Jūlijs\",\"Augusts\",\"Septembris\",\"Oktobris\",\"Novembris\",\"Decembris\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Jūn\",\"Jūl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"svētdiena\",\"pirmdiena\",\"otrdiena\",\"trešdiena\",\"ceturtdiena\",\"piektdiena\",\"sestdiena\"],dayNamesShort:[\"svt\",\"prm\",\"otr\",\"tre\",\"ctr\",\"pkt\",\"sst\"],dayNamesMin:[\"Sv\",\"Pr\",\"Ot\",\"Tr\",\"Ct\",\"Pk\",\"Ss\"],weekHeader:\"Ned.\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"lv\",{buttonText:{month:\"Mēnesis\",week:\"Nedēļa\",day:\"Diena\",list:\"Dienas kārtība\"},allDayText:\"Visu dienu\",eventLimitText:function(a){return\"+vēl \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tirs_ons_tors_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"H.mm\",LTS:\"LT.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"for %s siden\",s:\"noen sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en måned\",MM:\"%d måneder\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nb\",\"nb\",{closeText:\"Lukk\",prevText:\"&#xAB;Forrige\",nextText:\"Neste&#xBB;\",currentText:\"I dag\",monthNames:[\"januar\",\"februar\",\"mars\",\"april\",\"mai\",\"juni\",\"juli\",\"august\",\"september\",\"oktober\",\"november\",\"desember\"],monthNamesShort:[\"jan\",\"feb\",\"mar\",\"apr\",\"mai\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"des\"],dayNamesShort:[\"søn\",\"man\",\"tir\",\"ons\",\"tor\",\"fre\",\"lør\"],dayNames:[\"søndag\",\"mandag\",\"tirsdag\",\"onsdag\",\"torsdag\",\"fredag\",\"lørdag\"],dayNamesMin:[\"sø\",\"ma\",\"ti\",\"on\",\"to\",\"fr\",\"lø\"],weekHeader:\"Uke\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nb\",{buttonText:{month:\"Måned\",week:\"Uke\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"til\"})}(),function(){var c=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),d=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},ordinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nl\",\"nl\",{closeText:\"Sluiten\",prevText:\"←\",nextText:\"→\",currentText:\"Vandaag\",monthNames:[\"januari\",\"februari\",\"maart\",\"april\",\"mei\",\"juni\",\"juli\",\"augustus\",\"september\",\"oktober\",\"november\",\"december\"],\nmonthNamesShort:[\"jan\",\"feb\",\"mrt\",\"apr\",\"mei\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"dec\"],dayNames:[\"zondag\",\"maandag\",\"dinsdag\",\"woensdag\",\"donderdag\",\"vrijdag\",\"zaterdag\"],dayNamesShort:[\"zon\",\"maa\",\"din\",\"woe\",\"don\",\"vri\",\"zat\"],dayNamesMin:[\"zo\",\"ma\",\"di\",\"wo\",\"do\",\"vr\",\"za\"],weekHeader:\"Wk\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nl\",{buttonText:{month:\"Maand\",week:\"Week\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dag\",eventLimitText:\"extra\"})}(),function(){function c(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function d(a,b,d){var e=a+\" \";switch(d){case\"m\":return b?\"minuta\":\"minutę\";case\"mm\":return e+(c(a)?\"minuty\":\"minut\");case\"h\":return b?\"godzina\":\"godzinę\";case\"hh\":return e+(c(a)?\"godziny\":\"godzin\");case\"MM\":return e+(c(a)?\"miesiące\":\"miesięcy\");case\"yy\":return e+(c(a)?\"lata\":\"lat\")}}var e=\"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień\".split(\"_\"),f=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia\".split(\"_\");(b.defineLocale||b.lang).call(b,\"pl\",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota\".split(\"_\"),weekdaysShort:\"nie_pon_wt_śr_czw_pt_sb\".split(\"_\"),weekdaysMin:\"N_Pn_Wt_Śr_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Dziś o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:\"[W] dddd [o] LT\",lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zeszłą niedzielę o] LT\";case 3:return\"[W zeszłą środę o] LT\";case 6:return\"[W zeszłą sobotę o] LT\";default:return\"[W zeszły] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",m:d,mm:d,h:d,hh:d,d:\"1 dzień\",dd:\"%d dni\",M:\"miesiąc\",MM:d,y:\"rok\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pl\",\"pl\",{closeText:\"Zamknij\",prevText:\"&#x3C;Poprzedni\",nextText:\"Następny&#x3E;\",currentText:\"Dziś\",monthNames:[\"Styczeń\",\"Luty\",\"Marzec\",\"Kwiecień\",\"Maj\",\"Czerwiec\",\"Lipiec\",\"Sierpień\",\"Wrzesień\",\"Październik\",\"Listopad\",\"Grudzień\"],monthNamesShort:[\"Sty\",\"Lu\",\"Mar\",\"Kw\",\"Maj\",\"Cze\",\"Lip\",\"Sie\",\"Wrz\",\"Pa\",\"Lis\",\"Gru\"],dayNames:[\"Niedziela\",\"Poniedziałek\",\"Wtorek\",\"Środa\",\"Czwartek\",\"Piątek\",\"Sobota\"],dayNamesShort:[\"Nie\",\"Pn\",\"Wt\",\"Śr\",\"Czw\",\"Pt\",\"So\"],dayNamesMin:[\"N\",\"Pn\",\"Wt\",\"Śr\",\"Cz\",\"Pt\",\"So\"],weekHeader:\"Tydz\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pl\",{buttonText:{month:\"Miesiąc\",week:\"Tydzień\",day:\"Dzień\",list:\"Plan dnia\"},allDayText:\"Cały dzień\",eventLimitText:\"więcej\"})}(),function(){(b.defineLocale||b.lang).call(b,\"pt-br\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"%s atrás\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\"}),a.fullCalendar.datepickerLang(\"pt-br\",\"pt-BR\",{closeText:\"Fechar\",prevText:\"&#x3C;Anterior\",nextText:\"Próximo&#x3E;\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt-br\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Compromissos\"},allDayText:\"dia inteiro\",eventLimitText:function(a){return\"mais +\"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"pt\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pt\",\"pt\",{closeText:\"Fechar\",prevText:\"Anterior\",nextText:\"Seguinte\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sem\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Todo o dia\",eventLimitText:\"mais\"})}(),function(){function c(a,b,c){var d={mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"},e=\" \";return(a%100>=20||a>=100&&a%100===0)&&(e=\" de \"),a+e+d[c]}(b.defineLocale||b.lang).call(b,\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),weekdays:\"duminică_luni_marți_miercuri_joi_vineri_sâmbătă\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_Sâm\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_Sâ\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[mâine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s în urmă\",s:\"câteva secunde\",m:\"un minut\",mm:c,h:\"o oră\",hh:c,d:\"o zi\",dd:c,M:\"o lună\",MM:c,y:\"un an\",yy:c},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ro\",\"ro\",{closeText:\"Închide\",prevText:\"&#xAB; Luna precedentă\",nextText:\"Luna următoare &#xBB;\",currentText:\"Azi\",monthNames:[\"Ianuarie\",\"Februarie\",\"Martie\",\"Aprilie\",\"Mai\",\"Iunie\",\"Iulie\",\"August\",\"Septembrie\",\"Octombrie\",\"Noiembrie\",\"Decembrie\"],monthNamesShort:[\"Ian\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Iun\",\"Iul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Duminică\",\"Luni\",\"Marţi\",\"Miercuri\",\"Joi\",\"Vineri\",\"Sâmbătă\"],dayNamesShort:[\"Dum\",\"Lun\",\"Mar\",\"Mie\",\"Joi\",\"Vin\",\"Sâm\"],dayNamesMin:[\"Du\",\"Lu\",\"Ma\",\"Mi\",\"Jo\",\"Vi\",\"Sâ\"],weekHeader:\"Săpt\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ro\",{buttonText:{prev:\"precedentă\",next:\"următoare\",month:\"Lună\",week:\"Săptămână\",day:\"Zi\",list:\"Agendă\"},allDayText:\"Toată ziua\",eventLimitText:function(a){return\"+alte \"+a}})}(),function(){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:b?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"};return\"m\"===d?b?\"минута\":\"минуту\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),accusative:\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек\".split(\"_\"),accusative:\"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function g(a,b){var c={nominative:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),accusative:\"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу\".split(\"_\")},d=/\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/.test(b)?\"accusative\":\"nominative\";return c[d][a.day()]}(b.defineLocale||b.lang).call(b,\"ru\",{months:e,monthsShort:f,weekdays:g,weekdaysShort:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., LT\",LLLL:\"dddd, D MMMM YYYY г., LT\"},calendar:{sameDay:\"[Сегодня в] LT\",nextDay:\"[Завтра в] LT\",lastDay:\"[Вчера в] LT\",nextWeek:function(){return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В прошлое] dddd [в] LT\";case 1:case 2:case 4:return\"[В прошлый] dddd [в] LT\";case 3:case 5:case 6:return\"[В прошлую] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:d,mm:d,h:\"час\",hh:d,d:\"день\",dd:d,M:\"месяц\",MM:d,y:\"год\",yy:d},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночи\":12>a?\"утра\":17>a?\"дня\":\"вечера\"},ordinalParse:/\\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":return a+\"-й\";case\"D\":return a+\"-го\";case\"w\":case\"W\":return a+\"-я\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ru\",\"ru\",{closeText:\"Закрыть\",prevText:\"&#x3C;Пред\",nextText:\"След&#x3E;\",currentText:\"Сегодня\",monthNames:[\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\"],monthNamesShort:[\"Янв\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Июн\",\"Июл\",\"Авг\",\"Сен\",\"Окт\",\"Ноя\",\"Дек\"],dayNames:[\"воскресенье\",\"понедельник\",\"вторник\",\"среда\",\"четверг\",\"пятница\",\"суббота\"],dayNamesShort:[\"вск\",\"пнд\",\"втр\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Вс\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Нед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ru\",{buttonText:{month:\"Месяц\",week:\"Неделя\",day:\"День\",list:\"Повестка дня\"},allDayText:\"Весь день\",eventLimitText:function(a){return\"+ ещё \"+a}})}(),function(){function c(a){return a>1&&5>a}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekúnd\":\"pár sekundami\";case\"m\":return b?\"minúta\":e?\"minútu\":\"minútou\";case\"mm\":return b||e?f+(c(a)?\"minúty\":\"minút\"):f+\"minútami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodín\"):f+\"hodinami\";case\"d\":return b||e?\"deň\":\"dňom\";case\"dd\":return b||e?f+(c(a)?\"dni\":\"dní\"):f+\"dňami\";case\"M\":return b||e?\"mesiac\":\"mesiacom\";case\"MM\":return b||e?f+(c(a)?\"mesiace\":\"mesiacov\"):f+\"mesiacmi\";case\"y\":return b||e?\"rok\":\"rokom\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"rokov\"):f+\"rokmi\"}}var e=\"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december\".split(\"_\"),f=\"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"sk\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_št_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_št_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nedeľu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo štvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[včera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulú nedeľu o] LT\";case 1:case 2:return\"[minulý] dddd [o] LT\";case 3:return\"[minulú stredu o] LT\";case 4:case 5:return\"[minulý] dddd [o] LT\";case 6:return\"[minulú sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sk\",\"sk\",{closeText:\"Zavrieť\",prevText:\"&#x3C;Predchádzajúci\",nextText:\"Nasledujúci&#x3E;\",currentText:\"Dnes\",monthNames:[\"január\",\"február\",\"marec\",\"apríl\",\"máj\",\"jún\",\"júl\",\"august\",\"september\",\"október\",\"november\",\"december\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"nedeľa\",\"pondelok\",\"utorok\",\"streda\",\"štvrtok\",\"piatok\",\"sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Str\",\"Štv\",\"Pia\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"St\",\"Št\",\"Pia\",\"So\"],weekHeader:\"Ty\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sk\",{buttonText:{month:\"Mesiac\",week:\"Týždeň\",day:\"Deň\",list:\"Rozvrh\"},allDayText:\"Celý deň\",eventLimitText:function(a){return\"+ďalšie: \"+a}})}(),function(){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"ena minuta\":\"eno minuto\";case\"mm\":return d+=1===a?\"minuta\":2===a?\"minuti\":3===a||4===a?\"minute\":\"minut\";case\"h\":return b?\"ena ura\":\"eno uro\";case\"hh\":return d+=1===a?\"ura\":2===a?\"uri\":3===a||4===a?\"ure\":\"ur\";case\"dd\":return d+=1===a?\"dan\":\"dni\";case\"MM\":return d+=1===a?\"mesec\":2===a?\"meseca\":3===a||4===a?\"mesece\":\"mesecev\";case\"yy\":return d+=1===a?\"leto\":2===a?\"leti\":3===a||4===a?\"leta\":\"let\"}}(b.defineLocale||b.lang).call(b,\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),weekdays:\"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._čet._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_če_pe_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[včeraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[prejšnja] dddd [ob] LT\";case 1:case 2:case 4:case 5:return\"[prejšnji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"čez %s\",past:\"%s nazaj\",s:\"nekaj sekund\",m:c,mm:c,h:c,hh:c,d:\"en dan\",dd:c,M:\"en mesec\",MM:c,y:\"eno leto\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sl\",\"sl\",{closeText:\"Zapri\",prevText:\"&#x3C;Prejšnji\",nextText:\"Naslednji&#x3E;\",currentText:\"Trenutni\",monthNames:[\"Januar\",\"Februar\",\"Marec\",\"April\",\"Maj\",\"Junij\",\"Julij\",\"Avgust\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Avg\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Nedelja\",\"Ponedeljek\",\"Torek\",\"Sreda\",\"Četrtek\",\"Petek\",\"Sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Tor\",\"Sre\",\"Čet\",\"Pet\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"To\",\"Sr\",\"Če\",\"Pe\",\"So\"],weekHeader:\"Teden\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sl\",{buttonText:{month:\"Mesec\",week:\"Teden\",day:\"Dan\",list:\"Dnevni red\"},allDayText:\"Ves dan\",eventLimitText:\"več\"})}(),function(){var c={words:{m:[\"један минут\",\"једне минуте\"],mm:[\"минут\",\"минуте\",\"минута\"],h:[\"један сат\",\"једног сата\"],hh:[\"сат\",\"сата\",\"сати\"],dd:[\"дан\",\"дана\",\"дана\"],MM:[\"месец\",\"месеца\",\"месеци\"],yy:[\"година\",\"године\",\"година\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr-cyrl\",{months:[\"јануар\",\"фебруар\",\"март\",\"април\",\"мај\",\"јун\",\"јул\",\"август\",\"септембар\",\"октобар\",\"новембар\",\"децембар\"],monthsShort:[\"јан.\",\"феб.\",\"мар.\",\"апр.\",\"мај\",\"јун\",\"јул\",\"авг.\",\"сеп.\",\"окт.\",\"нов.\",\"дец.\"],weekdays:[\"недеља\",\"понедељак\",\"уторак\",\"среда\",\"четвртак\",\"петак\",\"субота\"],weekdaysShort:[\"нед.\",\"пон.\",\"уто.\",\"сре.\",\"чет.\",\"пет.\",\"суб.\"],weekdaysMin:[\"не\",\"по\",\"ут\",\"ср\",\"че\",\"пе\",\"су\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[данас у] LT\",nextDay:\"[сутра у] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[у] [недељу] [у] LT\";case 3:return\"[у] [среду] [у] LT\";case 6:return\"[у] [суботу] [у] LT\";case 1:case 2:case 4:case 5:return\"[у] dddd [у] LT\"}},lastDay:\"[јуче у] LT\",lastWeek:function(){var a=[\"[прошле] [недеље] [у] LT\",\"[прошлог] [понедељка] [у] LT\",\"[прошлог] [уторка] [у] LT\",\"[прошле] [среде] [у] LT\",\"[прошлог] [четвртка] [у] LT\",\"[прошлог] [петка] [у] LT\",\"[прошле] [суботе] [у] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"пре %s\",s:\"неколико секунди\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"дан\",dd:c.translate,M:\"месец\",MM:c.translate,y:\"годину\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr-cyrl\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr-cyrl\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})}(),function(){var c={words:{m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr\",{months:[\"januar\",\"februar\",\"mart\",\"april\",\"maj\",\"jun\",\"jul\",\"avgust\",\"septembar\",\"oktobar\",\"novembar\",\"decembar\"],monthsShort:[\"jan.\",\"feb.\",\"mar.\",\"apr.\",\"maj\",\"jun\",\"jul\",\"avg.\",\"sep.\",\"okt.\",\"nov.\",\"dec.\"],weekdays:[\"nedelja\",\"ponedeljak\",\"utorak\",\"sreda\",\"četvrtak\",\"petak\",\"subota\"],weekdaysShort:[\"ned.\",\"pon.\",\"uto.\",\"sre.\",\"čet.\",\"pet.\",\"sub.\"],weekdaysMin:[\"ne\",\"po\",\"ut\",\"sr\",\"če\",\"pe\",\"su\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedelje] [u] LT\",\"[prošlog] [ponedeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"dan\",dd:c.translate,M:\"mesec\",MM:c.translate,y:\"godinu\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Igår] LT\",nextWeek:\"dddd LT\",lastWeek:\"[Förra] dddd[en] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"e\":1===b?\"a\":2===b?\"a\":\"e\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sv\",\"sv\",{closeText:\"Stäng\",prevText:\"&#xAB;Förra\",nextText:\"Nästa&#xBB;\",currentText:\"Idag\",monthNames:[\"Januari\",\"Februari\",\"Mars\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"Augusti\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNamesShort:[\"Sön\",\"Mån\",\"Tis\",\"Ons\",\"Tor\",\"Fre\",\"Lör\"],dayNames:[\"Söndag\",\"Måndag\",\"Tisdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lördag\"],dayNamesMin:[\"Sö\",\"Må\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lö\"],weekHeader:\"Ve\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sv\",{buttonText:{month:\"Månad\",week:\"Vecka\",day:\"Dag\",list:\"Program\"},allDayText:\"Heldag\",eventLimitText:\"till\"})}(),function(){(b.defineLocale||b.lang).call(b,\"th\",{months:\"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม\".split(\"_\"),monthsShort:\"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา\".split(\"_\"),weekdays:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์\".split(\"_\"),weekdaysShort:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์\".split(\"_\"),weekdaysMin:\"อา._จ._อ._พ._พฤ._ศ._ส.\".split(\"_\"),longDateFormat:{LT:\"H นาฬิกา m นาที\",LTS:\"LT s วินาที\",L:\"YYYY/MM/DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY เวลา LT\",LLLL:\"วันddddที่ D MMMM YYYY เวลา LT\"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return\"หลังเที่ยง\"===a},meridiem:function(a,b,c){return 12>a?\"ก่อนเที่ยง\":\"หลังเที่ยง\"},calendar:{sameDay:\"[วันนี้ เวลา] LT\",nextDay:\"[พรุ่งนี้ เวลา] LT\",nextWeek:\"dddd[หน้า เวลา] LT\",lastDay:\"[เมื่อวานนี้ เวลา] LT\",lastWeek:\"[วัน]dddd[ที่แล้ว เวลา] LT\",sameElse:\"L\"},relativeTime:{future:\"อีก %s\",past:\"%sที่แล้ว\",s:\"ไม่กี่วินาที\",m:\"1 นาที\",mm:\"%d นาที\",h:\"1 ชั่วโมง\",hh:\"%d ชั่วโมง\",d:\"1 วัน\",dd:\"%d วัน\",M:\"1 เดือน\",MM:\"%d เดือน\",y:\"1 ปี\",yy:\"%d ปี\"}}),a.fullCalendar.datepickerLang(\"th\",\"th\",{closeText:\"ปิด\",prevText:\"&#xAB;&#xA0;ย้อน\",nextText:\"ถัดไป&#xA0;&#xBB;\",currentText:\"วันนี้\",monthNames:[\"มกราคม\",\"กุมภาพันธ์\",\"มีนาคม\",\"เมษายน\",\"พฤษภาคม\",\"มิถุนายน\",\"กรกฎาคม\",\"สิงหาคม\",\"กันยายน\",\"ตุลาคม\",\"พฤศจิกายน\",\"ธันวาคม\"],monthNamesShort:[\"ม.ค.\",\"ก.พ.\",\"มี.ค.\",\"เม.ย.\",\"พ.ค.\",\"มิ.ย.\",\"ก.ค.\",\"ส.ค.\",\"ก.ย.\",\"ต.ค.\",\"พ.ย.\",\"ธ.ค.\"],dayNames:[\"อาทิตย์\",\"จันทร์\",\"อังคาร\",\"พุธ\",\"พฤหัสบดี\",\"ศุกร์\",\"เสาร์\"],dayNamesShort:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],dayNamesMin:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"th\",{buttonText:{month:\"เดือน\",week:\"สัปดาห์\",day:\"วัน\",list:\"แผนงาน\"},allDayText:\"ตลอดวัน\",eventLimitText:\"เพิ่มเติม\"})}(),function(){var c={1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'üncü\",4:\"'üncü\",100:\"'üncü\",6:\"'ncı\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'ıncı\",90:\"'ıncı\"};(b.defineLocale||b.lang).call(b,\"tr\",{months:\"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık\".split(\"_\"),monthsShort:\"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_Çar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_Ça_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[yarın saat] LT\",nextWeek:\"[haftaya] dddd [saat] LT\",lastDay:\"[dün] LT\",lastWeek:\"[geçen hafta] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s önce\",s:\"birkaç saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir yıl\",yy:\"%d yıl\"},ordinalParse:/\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+\"'ıncı\";var b=a%10,d=a%100-b,e=a>=100?100:null;return a+(c[b]||c[d]||c[e])},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"tr\",\"tr\",{closeText:\"kapat\",prevText:\"&#x3C;geri\",nextText:\"ileri&#x3e\",currentText:\"bugün\",monthNames:[\"Ocak\",\"Şubat\",\"Mart\",\"Nisan\",\"Mayıs\",\"Haziran\",\"Temmuz\",\"Ağustos\",\"Eylül\",\"Ekim\",\"Kasım\",\"Aralık\"],monthNamesShort:[\"Oca\",\"Şub\",\"Mar\",\"Nis\",\"May\",\"Haz\",\"Tem\",\"Ağu\",\"Eyl\",\"Eki\",\"Kas\",\"Ara\"],dayNames:[\"Pazar\",\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\"],dayNamesShort:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],dayNamesMin:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],weekHeader:\"Hf\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"tr\",{buttonText:{next:\"ileri\",month:\"Ay\",week:\"Hafta\",day:\"Gün\",list:\"Ajanda\"},allDayText:\"Tüm gün\",eventLimitText:\"daha fazla\"})}(),function(){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:\"хвилина_хвилини_хвилин\",hh:\"година_години_годин\",dd:\"день_дні_днів\",MM:\"місяць_місяці_місяців\",yy:\"рік_роки_років\"};return\"m\"===d?b?\"хвилина\":\"хвилину\":\"h\"===d?b?\"година\":\"годину\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень\".split(\"_\"),accusative:\"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня\".split(\"_\")},d=/D[oD]? *MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота\".split(\"_\"),accusative:\"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу\".split(\"_\"),genitive:\"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи\".split(\"_\")},d=/(\\[[ВвУу]\\]) ?dddd/.test(b)?\"accusative\":/\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(b)?\"genitive\":\"nominative\";return c[d][a.day()]}function g(a){return function(){return a+\"о\"+(11===this.hours()?\"б\":\"\")+\"] LT\"}}(b.defineLocale||b.lang).call(b,\"uk\",{months:e,monthsShort:\"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд\".split(\"_\"),weekdays:f,weekdaysShort:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY р.\",LLL:\"D MMMM YYYY р., LT\",LLLL:\"dddd, D MMMM YYYY р., LT\"},calendar:{sameDay:g(\"[Сьогодні \"),nextDay:g(\"[Завтра \"),lastDay:g(\"[Вчора \"),nextWeek:g(\"[У] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return g(\"[Минулої] dddd [\").call(this);case 1:case 2:case 4:return g(\"[Минулого] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"%s тому\",s:\"декілька секунд\",m:d,mm:d,h:\"годину\",hh:d,d:\"день\",dd:d,M:\"місяць\",MM:d,y:\"рік\",yy:d},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночі\":12>a?\"ранку\":17>a?\"дня\":\"вечора\"},ordinalParse:/\\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a+\"-й\";case\"D\":return a+\"-го\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"uk\",\"uk\",{closeText:\"Закрити\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Сьогодні\",monthNames:[\"Січень\",\"Лютий\",\"Березень\",\"Квітень\",\"Травень\",\"Червень\",\"Липень\",\"Серпень\",\"Вересень\",\"Жовтень\",\"Листопад\",\"Грудень\"],monthNamesShort:[\"Січ\",\"Лют\",\"Бер\",\"Кві\",\"Тра\",\"Чер\",\"Лип\",\"Сер\",\"Вер\",\"Жов\",\"Лис\",\"Гру\"],dayNames:[\"неділя\",\"понеділок\",\"вівторок\",\"середа\",\"четвер\",\"п’ятниця\",\"субота\"],dayNamesShort:[\"нед\",\"пнд\",\"вів\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Нд\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Тиж\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"uk\",{buttonText:{month:\"Місяць\",week:\"Тиждень\",day:\"День\",list:\"Порядок денний\"},allDayText:\"Увесь день\",eventLimitText:function(a){return\"+ще \"+a+\"...\"}})}(),function(){(b.defineLocale||b.lang).call(b,\"vi\",{months:\"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),weekdays:\"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [năm] YYYY\",LLL:\"D MMMM [năm] YYYY LT\",LLLL:\"dddd, D MMMM [năm] YYYY LT\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[Hôm nay lúc] LT\",nextDay:\"[Ngày mai lúc] LT\",nextWeek:\"dddd [tuần tới lúc] LT\",lastDay:\"[Hôm qua lúc] LT\",lastWeek:\"dddd [tuần rồi lúc] LT\",sameElse:\"L\"},relativeTime:{future:\"%s tới\",past:\"%s trước\",s:\"vài giây\",m:\"một phút\",mm:\"%d phút\",h:\"một giờ\",hh:\"%d giờ\",d:\"một ngày\",dd:\"%d ngày\",M:\"một tháng\",MM:\"%d tháng\",y:\"một năm\",yy:\"%d năm\"},ordinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),\na.fullCalendar.datepickerLang(\"vi\",\"vi\",{closeText:\"Đóng\",prevText:\"&#x3C;Trước\",nextText:\"Tiếp&#x3E;\",currentText:\"Hôm nay\",monthNames:[\"Tháng Một\",\"Tháng Hai\",\"Tháng Ba\",\"Tháng Tư\",\"Tháng Năm\",\"Tháng Sáu\",\"Tháng Bảy\",\"Tháng Tám\",\"Tháng Chín\",\"Tháng Mười\",\"Tháng Mười Một\",\"Tháng Mười Hai\"],monthNamesShort:[\"Tháng 1\",\"Tháng 2\",\"Tháng 3\",\"Tháng 4\",\"Tháng 5\",\"Tháng 6\",\"Tháng 7\",\"Tháng 8\",\"Tháng 9\",\"Tháng 10\",\"Tháng 11\",\"Tháng 12\"],dayNames:[\"Chủ Nhật\",\"Thứ Hai\",\"Thứ Ba\",\"Thứ Tư\",\"Thứ Năm\",\"Thứ Sáu\",\"Thứ Bảy\"],dayNamesShort:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],dayNamesMin:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],weekHeader:\"Tu\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"vi\",{buttonText:{month:\"Tháng\",week:\"Tuần\",day:\"Ngày\",list:\"Lịch biểu\"},allDayText:\"Cả ngày\",eventLimitText:function(a){return\"+ thêm \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"zh-cn\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah点mm\",LTS:\"Ah点m分s秒\",L:\"YYYY-MM-DD\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY-MM-DD\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"下午\"===b||\"晚上\"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?\"凌晨\":900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:function(){return 0===this.minutes()?\"[今天]Ah[点整]\":\"[今天]LT\"},nextDay:function(){return 0===this.minutes()?\"[明天]Ah[点整]\":\"[明天]LT\"},lastDay:function(){return 0===this.minutes()?\"[昨天]Ah[点整]\":\"[昨天]LT\"},nextWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()-a.unix()>=604800?\"[下]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},lastWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()<a.unix()?\"[上]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},sameElse:\"LL\"},ordinalParse:/\\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"周\";default:return a}},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1分钟\",mm:\"%d分钟\",h:\"1小时\",hh:\"%d小时\",d:\"1天\",dd:\"%d天\",M:\"1个月\",MM:\"%d个月\",y:\"1年\",yy:\"%d年\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"zh-cn\",\"zh-CN\",{closeText:\"关闭\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-cn\",{buttonText:{month:\"月\",week:\"周\",day:\"日\",list:\"日程\"},allDayText:\"全天\",eventLimitText:function(a){return\"另外 \"+a+\" 个\"}})}(),function(){(b.defineLocale||b.lang).call(b,\"zh-tw\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah點mm\",LTS:\"Ah點m分s秒\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},ordinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"一分鐘\",mm:\"%d分鐘\",h:\"一小時\",hh:\"%d小時\",d:\"一天\",dd:\"%d天\",M:\"一個月\",MM:\"%d個月\",y:\"一年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"zh-tw\",\"zh-TW\",{closeText:\"關閉\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy/mm/dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-tw\",{buttonText:{month:\"月\",week:\"週\",day:\"天\",list:\"待辦事項\"},allDayText:\"全天\",eventLimitText:\"更多\"})}(),(b.locale||b.lang).call(b,\"en\"),a.fullCalendar.lang(\"en\"),a.datepicker&&a.datepicker.setDefaults(a.datepicker.regional[\"\"])});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/holder.js",
    "content": "/*!\n\nHolder - 2.3.2 - client side image placeholders\n(c) 2012-2014 Ivan Malopinsky / http://imsky.co\n\nProvided under the MIT License.\nCommercial use requires attribution.\n\n*/\nvar Holder = Holder || {};\n(function (app, win) {\nvar system_config = {\n\tuse_svg: false,\n\tuse_canvas: false,\n\tuse_fallback: false\n};\nvar instance_config = {};\nvar preempted = false;\ncanvas = document.createElement('canvas');\nvar dpr = 1, bsr = 1;\nvar resizable_images = [];\n\nif (!canvas.getContext) {\n\tsystem_config.use_fallback = true;\n} else {\n\tif (canvas.toDataURL(\"image/png\")\n\t\t.indexOf(\"data:image/png\") < 0) {\n\t\t//Android doesn't support data URI\n\t\tsystem_config.use_fallback = true;\n\t} else {\n\t\tvar ctx = canvas.getContext(\"2d\");\n\t}\n}\n\nif(!!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect){\n\tsystem_config.use_svg = true;\n\tsystem_config.use_canvas = false;\n}\n\nif(!system_config.use_fallback){\n    dpr = window.devicePixelRatio || 1,\n    bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n}\n\nvar ratio = dpr / bsr;\n\nvar settings = {\n\tdomain: \"holder.js\",\n\timages: \"img\",\n\tbgnodes: \".holderjs\",\n\tthemes: {\n\t\t\"gray\": {\n\t\t\tbackground: \"#eee\",\n\t\t\tforeground: \"#aaa\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"social\": {\n\t\t\tbackground: \"#3a5a97\",\n\t\t\tforeground: \"#fff\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"industrial\": {\n\t\t\tbackground: \"#434A52\",\n\t\t\tforeground: \"#C2F200\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"sky\": {\n\t\t\tbackground: \"#0D8FDB\",\n\t\t\tforeground: \"#fff\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"vine\": {\n\t\t\tbackground: \"#39DBAC\",\n\t\t\tforeground: \"#1E292C\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"lava\": {\n\t\t\tbackground: \"#F8591A\",\n\t\t\tforeground: \"#1C2846\",\n\t\t\tsize: 12\n\t\t}\n\t},\n\tstylesheet: \"\"\n};\napp.flags = {\n\tdimensions: {\n\t\tregex: /^(\\d+)x(\\d+)$/,\n\t\toutput: function (val) {\n\t\t\tvar exec = this.regex.exec(val);\n\t\t\treturn {\n\t\t\t\twidth: +exec[1],\n\t\t\t\theight: +exec[2]\n\t\t\t}\n\t\t}\n\t},\n\tfluid: {\n\t\tregex: /^([0-9%]+)x([0-9%]+)$/,\n\t\toutput: function (val) {\n\t\t\tvar exec = this.regex.exec(val);\n\t\t\treturn {\n\t\t\t\twidth: exec[1],\n\t\t\t\theight: exec[2]\n\t\t\t}\n\t\t}\n\t},\n\tcolors: {\n\t\tregex: /#([0-9a-f]{3,})\\:#([0-9a-f]{3,})/i,\n\t\toutput: function (val) {\n\t\t\tvar exec = this.regex.exec(val);\n\t\t\treturn {\n\t\t\t\tsize: settings.themes.gray.size,\n\t\t\t\tforeground: \"#\" + exec[2],\n\t\t\t\tbackground: \"#\" + exec[1]\n\t\t\t}\n\t\t}\n\t},\n\ttext: {\n\t\tregex: /text\\:(.*)/,\n\t\toutput: function (val) {\n\t\t\treturn this.regex.exec(val)[1];\n\t\t}\n\t},\n\tfont: {\n\t\tregex: /font\\:(.*)/,\n\t\toutput: function (val) {\n\t\t\treturn this.regex.exec(val)[1];\n\t\t}\n\t},\n\tauto: {\n\t\tregex: /^auto$/\n\t},\n\ttextmode: {\n\t\tregex: /textmode\\:(.*)/,\n\t\toutput: function(val){\n\t\t\treturn this.regex.exec(val)[1];\n\t\t}\n\t}\n}\n\nfunction text_size(width, height, template) {\n\theight = parseInt(height, 10);\n\twidth = parseInt(width, 10);\n\tvar bigSide = Math.max(height, width)\n\tvar smallSide = Math.min(height, width)\n\tvar scale = 1 / 12;\n\tvar newHeight = Math.min(smallSide * 0.75, 0.75 * bigSide * scale);\n\treturn {\n\t\theight: Math.round(Math.max(template.size, newHeight))\n\t}\n}\n\nvar svg_el = (function(){\n\t//Prevent IE <9 from initializing SVG renderer\n\tif(!window.XMLSerializer) return;\n\tvar serializer = new XMLSerializer();\n\tvar svg_ns = \"http://www.w3.org/2000/svg\"\n\tvar svg = document.createElementNS(svg_ns, \"svg\");\n\t//IE throws an exception if this is set and Chrome requires it to be set\n\tif(svg.webkitMatchesSelector){\n\t\tsvg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\")\n\t}\n\tvar bg_el = document.createElementNS(svg_ns, \"rect\")\n\tvar text_el = document.createElementNS(svg_ns, \"text\")\n\tvar textnode_el = document.createTextNode(null)\n\ttext_el.setAttribute(\"text-anchor\", \"middle\")\n\ttext_el.appendChild(textnode_el)\n\tsvg.appendChild(bg_el)\n\tsvg.appendChild(text_el)\n\n\treturn function(props){\n\t\tsvg.setAttribute(\"width\",props.width);\n\t\tsvg.setAttribute(\"height\", props.height);\n\t\tbg_el.setAttribute(\"width\", props.width);\n\t\tbg_el.setAttribute(\"height\", props.height);\n\t\tbg_el.setAttribute(\"fill\", props.template.background);\n\t\ttext_el.setAttribute(\"x\", props.width/2)\n\t\ttext_el.setAttribute(\"y\", props.height/2)\n\t\ttextnode_el.nodeValue=props.text\n\t\ttext_el.setAttribute(\"style\", css_properties({\n\t\t\"fill\": props.template.foreground,\n\t\t\"font-weight\": \"bold\",\n\t\t\"font-size\": props.text_height+\"px\",\n\t\t\"font-family\":props.font,\n\t\t\"dominant-baseline\":\"central\"\n\t\t}))\n\t\treturn serializer.serializeToString(svg)\n\t}\n})()\n\nfunction css_properties(props){\n\tvar ret = [];\n\tfor(p in props){\n\t\tif(props.hasOwnProperty(p)){\n\t\t\tret.push(p+\":\"+props[p])\n\t\t}\n\t}\n\treturn ret.join(\";\")\n}\n\nfunction draw_canvas(args) {\n\tvar ctx = args.ctx,\n\t\tdimensions = args.dimensions,\n\t\ttemplate = args.template,\n\t\tratio = args.ratio,\n\t\tholder = args.holder,\n\t\tliteral = holder.textmode == \"literal\",\n\t\texact = holder.textmode == \"exact\";\n\n\tvar ts = text_size(dimensions.width, dimensions.height, template);\n\tvar text_height = ts.height;\n\tvar width = dimensions.width * ratio,\n\t\theight = dimensions.height * ratio;\n\tvar font = template.font ? template.font : \"Arial,Helvetica,sans-serif\";\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tctx.textAlign = \"center\";\n\tctx.textBaseline = \"middle\";\n\tctx.fillStyle = template.background;\n\tctx.fillRect(0, 0, width, height);\n\tctx.fillStyle = template.foreground;\n\tctx.font = \"bold \" + text_height + \"px \" + font;\n\tvar text = template.text ? template.text : (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\tif (literal) {\n\t\tvar dimensions = holder.dimensions;\n\t\ttext = dimensions.width + \"x\" + dimensions.height;\n\t}\n\telse if(exact && holder.exact_dimensions){\n\t\tvar dimensions = holder.exact_dimensions;\n\t\ttext = (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\t}\n\tvar text_width = ctx.measureText(text).width;\n\tif (text_width / width >= 0.75) {\n\t\ttext_height = Math.floor(text_height * 0.75 * (width / text_width));\n\t}\n\t//Resetting font size if necessary\n\tctx.font = \"bold \" + (text_height * ratio) + \"px \" + font;\n\tctx.fillText(text, (width / 2), (height / 2), width);\n\treturn canvas.toDataURL(\"image/png\");\n}\n\nfunction draw_svg(args){\n\tvar dimensions = args.dimensions,\n\t\ttemplate = args.template,\n\t\tholder = args.holder,\n\t\tliteral = holder.textmode == \"literal\",\n\t\texact = holder.textmode == \"exact\";\n\n\tvar ts = text_size(dimensions.width, dimensions.height, template);\n\tvar text_height = ts.height;\n\tvar width = dimensions.width,\n\t\theight = dimensions.height;\n\t\t\n\tvar font = template.font ? template.font : \"Arial,Helvetica,sans-serif\";\n\tvar text = template.text ? template.text : (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\t\n\tif (literal) {\n\t\tvar dimensions = holder.dimensions;\n\t\ttext = dimensions.width + \"x\" + dimensions.height;\n\t}\n\telse if(exact && holder.exact_dimensions){\n\t\tvar dimensions = holder.exact_dimensions;\n\t\ttext = (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\t}\n\tvar string = svg_el({\n\t\ttext: text, \n\t\twidth:width, \n\t\theight:height, \n\t\ttext_height:text_height, \n\t\tfont:font, \n\t\ttemplate:template\n\t})\n\treturn \"data:image/svg+xml;base64,\"+btoa(unescape(encodeURIComponent(string)));\n}\n\nfunction draw(args) {\n\tif(instance_config.use_canvas && !instance_config.use_svg){\n\t\treturn draw_canvas(args);\n\t}\n\telse{\n\t\treturn draw_svg(args);\n\t}\n}\n\nfunction render(mode, el, holder, src) {\n\tvar dimensions = holder.dimensions,\n\t\ttheme = holder.theme,\n\t\ttext = holder.text ? decodeURIComponent(holder.text) : holder.text;\n\tvar dimensions_caption = dimensions.width + \"x\" + dimensions.height;\n\ttheme = (text ? extend(theme, {\n\t\ttext: text\n\t}) : theme);\n\ttheme = (holder.font ? extend(theme, {\n\t\tfont: holder.font\n\t}) : theme);\n\tel.setAttribute(\"data-src\", src);\n\tholder.theme = theme;\n\tel.holder_data = holder;\n\t\n\tif (mode == \"image\") {\n\t\tel.setAttribute(\"alt\", text ? text : theme.text ? theme.text + \" [\" + dimensions_caption + \"]\" : dimensions_caption);\n\t\tif (instance_config.use_fallback || !holder.auto) {\n\t\t\tel.style.width = dimensions.width + \"px\";\n\t\t\tel.style.height = dimensions.height + \"px\";\n\t\t}\n\t\tif (instance_config.use_fallback) {\n\t\t\tel.style.backgroundColor = theme.background;\n\t\t} else {\n\t\t\tel.setAttribute(\"src\", draw({ctx: ctx, dimensions: dimensions, template: theme, ratio:ratio, holder: holder}));\n\t\t\t\n\t\t\tif(holder.textmode && holder.textmode == \"exact\"){\n\t\t\t\tresizable_images.push(el);\n\t\t\t\tresizable_update(el);\n\t\t\t}\n\t\t\t\n\t\t}\n\t} else if (mode == \"background\") {\n\t\tif (!instance_config.use_fallback) {\n\t\t\tel.style.backgroundImage = \"url(\" + draw({ctx:ctx, dimensions: dimensions, template: theme, ratio: ratio, holder: holder}) + \")\";\n\t\t\tel.style.backgroundSize = dimensions.width + \"px \" + dimensions.height + \"px\";\n\t\t}\n\t} else if (mode == \"fluid\") {\n\t\tel.setAttribute(\"alt\", text ? text : theme.text ? theme.text + \" [\" + dimensions_caption + \"]\" : dimensions_caption);\n\t\tif (dimensions.height.slice(-1) == \"%\") {\n\t\t\tel.style.height = dimensions.height\n\t\t} else if(holder.auto == null || !holder.auto){\n\t\t\tel.style.height = dimensions.height + \"px\"\n\t\t}\n\t\tif (dimensions.width.slice(-1) == \"%\") {\n\t\t\tel.style.width = dimensions.width\n\t\t} else if(holder.auto == null || !holder.auto){\n\t\t\tel.style.width = dimensions.width + \"px\"\n\t\t}\n\t\tif (el.style.display == \"inline\" || el.style.display === \"\" || el.style.display == \"none\") {\n\t\t\tel.style.display = \"block\";\n\t\t}\n\t\t\n\t\tset_initial_dimensions(el)\n\t\t\n\t\tif (instance_config.use_fallback) {\n\t\t\tel.style.backgroundColor = theme.background;\n\t\t} else {\n\t\t\tresizable_images.push(el);\n\t\t\tresizable_update(el);\n\t\t}\n\t}\n}\n\nfunction dimension_check(el, callback) {\n\tvar dimensions = {\n\t\theight: el.clientHeight,\n\t\twidth: el.clientWidth\n\t};\n\tif (!dimensions.height && !dimensions.width) {\n\t\tel.setAttribute(\"data-holder-invisible\", true)\n\t\tcallback.call(this, el)\n\t}\n\telse{\n\t\tel.removeAttribute(\"data-holder-invisible\")\n\t\treturn dimensions;\n\t}\n}\n\nfunction set_initial_dimensions(el){\n\tif(el.holder_data){\n\t\tvar dimensions = dimension_check(el, app.invisible_error_fn( set_initial_dimensions))\n\t\tif(dimensions){\n\t\t\tvar holder = el.holder_data;\n\t\t\tholder.initial_dimensions = dimensions;\n\t\t\tholder.fluid_data = {\n\t\t\t\tfluid_height: holder.dimensions.height.slice(-1) == \"%\",\n\t\t\t\tfluid_width: holder.dimensions.width.slice(-1) == \"%\",\n\t\t\t\tmode: null\n\t\t\t}\n\t\t\tif(holder.fluid_data.fluid_width && !holder.fluid_data.fluid_height){\n\t\t\t\tholder.fluid_data.mode = \"width\"\n\t\t\t\tholder.fluid_data.ratio = holder.initial_dimensions.width / parseFloat(holder.dimensions.height)\n\t\t\t}\n\t\t\telse if(!holder.fluid_data.fluid_width && holder.fluid_data.fluid_height){\n\t\t\t\tholder.fluid_data.mode = \"height\";\n\t\t\t\tholder.fluid_data.ratio = parseFloat(holder.dimensions.width) / holder.initial_dimensions.height\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction resizable_update(element) {\n\tvar images;\n\tif (element.nodeType == null) {\n\t\timages = resizable_images;\n\t} else {\n\t\timages = [element]\n\t}\n\tfor (var i in images) {\n\t\tif (!images.hasOwnProperty(i)) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar el = images[i]\n\t\tif (el.holder_data) {\n\t\t\tvar holder = el.holder_data;\n\t\t\tvar dimensions = dimension_check(el, app.invisible_error_fn( resizable_update))\n\t\t\tif(dimensions){\n\t\t\t\tif(holder.fluid){\n\t\t\t\t\tif(holder.auto){\n\t\t\t\t\t\tswitch(holder.fluid_data.mode){\n\t\t\t\t\t\t\tcase \"width\":\n\t\t\t\t\t\t\t\tdimensions.height = dimensions.width / holder.fluid_data.ratio;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"height\":\n\t\t\t\t\t\t\t\tdimensions.width = dimensions.height * holder.fluid_data.ratio;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tel.setAttribute(\"src\", draw({\n\t\t\t\t\t\tctx: ctx,\n\t\t\t\t\t\tdimensions: dimensions,\n\t\t\t\t\t\ttemplate: holder.theme,\n\t\t\t\t\t\tratio: ratio,\n\t\t\t\t\t\tholder: holder\n\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t\tif(holder.textmode && holder.textmode == \"exact\"){\n\t\t\t\t\tholder.exact_dimensions = dimensions;\n\t\t\t\t\tel.setAttribute(\"src\", draw({\n\t\t\t\t\t\tctx: ctx,\n\t\t\t\t\t\tdimensions: holder.dimensions,\n\t\t\t\t\t\ttemplate: holder.theme,\n\t\t\t\t\t\tratio: ratio,\n\t\t\t\t\t\tholder: holder\n\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_flags(flags, options) {\n\tvar ret = {\n\t\ttheme: extend(settings.themes.gray, {})\n\t};\n\tvar render = false;\n\tfor (var fl = flags.length, j = 0; j < fl; j++) {\n\t\tvar flag = flags[j];\n\t\tif (app.flags.dimensions.match(flag)) {\n\t\t\trender = true;\n\t\t\tret.dimensions = app.flags.dimensions.output(flag);\n\t\t} else if (app.flags.fluid.match(flag)) {\n\t\t\trender = true;\n\t\t\tret.dimensions = app.flags.fluid.output(flag);\n\t\t\tret.fluid = true;\n\t\t} else if (app.flags.textmode.match(flag)) {\n\t\t\tret.textmode = app.flags.textmode.output(flag)\n\t\t} else if (app.flags.colors.match(flag)) {\n\t\t\tret.theme = app.flags.colors.output(flag);\n\t\t} else if (options.themes[flag]) {\n\t\t\t//If a theme is specified, it will override custom colors\n\t\t\tif(options.themes.hasOwnProperty(flag)){\n\t\t\t\tret.theme = extend(options.themes[flag], {});\n\t\t\t}\n\t\t} else if (app.flags.font.match(flag)) {\n\t\t\tret.font = app.flags.font.output(flag);\n\t\t} else if (app.flags.auto.match(flag)) {\n\t\t\tret.auto = true;\n\t\t} else if (app.flags.text.match(flag)) {\n\t\t\tret.text = app.flags.text.output(flag);\n\t\t}\n\t}\n\treturn render ? ret : false;\n}\n\nfor (var flag in app.flags) {\n\tif (!app.flags.hasOwnProperty(flag)) continue;\n\tapp.flags[flag].match = function (val) {\n\t\treturn val.match(this.regex)\n\t}\n}\n\napp.invisible_error_fn = function(fn){\n\treturn function(el){\n\t\tif(el.hasAttribute(\"data-holder-invisible\")){\n\t\t\tthrow new Error(\"Holder: invisible placeholder\")\n\t\t}\n\t}\n}\n\napp.add_theme = function (name, theme) {\n\tname != null && theme != null && (settings.themes[name] = theme);\n\treturn app;\n};\n\napp.add_image = function (src, el) {\n\tvar node = selector(el);\n\tif (node.length) {\n\t\tfor (var i = 0, l = node.length; i < l; i++) {\n\t\t\tvar img = document.createElement(\"img\")\n\t\t\timg.setAttribute(\"data-src\", src);\n\t\t\tnode[i].appendChild(img);\n\t\t}\n\t}\n\treturn app;\n};\n\napp.run = function (o) {\n\n\tinstance_config = extend({}, system_config)\n\tpreempted = true;\n\n\tvar options = extend(settings, o),\n\t\timages = [],\n\t\timageNodes = [],\n\t\tbgnodes = [];\n\n\tif(options.use_canvas != null && options.use_canvas){\n\t\tinstance_config.use_canvas = true;\n\t\tinstance_config.use_svg = false;\n\t}\n\t\t\t\n\tif (typeof (options.images) == \"string\") {\n\t\timageNodes = selector(options.images);\n\t} else if (window.NodeList && options.images instanceof window.NodeList) {\n\t\timageNodes = options.images;\n\t} else if (window.Node && options.images instanceof window.Node) {\n\t\timageNodes = [options.images];\n\t} else if(window.HTMLCollection && options.images instanceof window.HTMLCollection){\n\t\timageNodes = options.images\n\t}\n\n\tif (typeof (options.bgnodes) == \"string\") {\n\t\tbgnodes = selector(options.bgnodes);\n\t} else if (window.NodeList && options.elements instanceof window.NodeList) {\n\t\tbgnodes = options.bgnodes;\n\t} else if (window.Node && options.bgnodes instanceof window.Node) {\n\t\tbgnodes = [options.bgnodes];\n\t}\n\tfor (i = 0, l = imageNodes.length; i < l; i++) images.push(imageNodes[i]);\n\t\n\tvar holdercss = document.getElementById(\"holderjs-style\");\n\tif (!holdercss) {\n\t\tholdercss = document.createElement(\"style\");\n\t\tholdercss.setAttribute(\"id\", \"holderjs-style\");\n\t\tholdercss.type = \"text/css\";\n\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(holdercss);\n\t}\n\t\n\tif (!options.nocss) {\n\t\tif (holdercss.styleSheet) {\n\t\t\tholdercss.styleSheet.cssText += options.stylesheet;\n\t\t} else {\n\t\t\tif(options.stylesheet.length){\n\t\t\t\tholdercss.appendChild(document.createTextNode(options.stylesheet));\n\t\t\t}\n\t\t}\n\t}\n\t\n\tvar cssregex = new RegExp(options.domain + \"\\/(.*?)\\\"?\\\\)\");\n\tfor (var l = bgnodes.length, i = 0; i < l; i++) {\n\t\tvar src = window.getComputedStyle(bgnodes[i], null)\n\t\t\t.getPropertyValue(\"background-image\");\n\t\tvar flags = src.match(cssregex);\n\t\tvar bgsrc = bgnodes[i].getAttribute(\"data-background-src\");\n\t\tif (flags) {\n\t\t\tvar holder = parse_flags(flags[1].split(\"/\"), options);\n\t\t\tif (holder) {\n\t\t\t\trender(\"background\", bgnodes[i], holder, src);\n\t\t\t}\n\t\t} else if (bgsrc != null) {\n\t\t\tvar holder = parse_flags(bgsrc.substr(bgsrc.lastIndexOf(options.domain) + options.domain.length + 1)\n\t\t\t\t.split(\"/\"), options);\n\t\t\tif (holder) {\n\t\t\t\trender(\"background\", bgnodes[i], holder, src);\n\t\t\t}\n\t\t}\n\t}\n\tfor (l = images.length, i = 0; i < l; i++) {\n\t\tvar attr_data_src, attr_src;\n\t\tattr_src = attr_data_src = src = null;\n\t\ttry {\n\t\t\tattr_src = images[i].getAttribute(\"src\");\n\t\t\tattr_datasrc = images[i].getAttribute(\"data-src\");\n\t\t} catch (e) {}\n\t\tif (attr_datasrc == null && !! attr_src && attr_src.indexOf(options.domain) >= 0) {\n\t\t\tsrc = attr_src;\n\t\t} else if ( !! attr_datasrc && attr_datasrc.indexOf(options.domain) >= 0) {\n\t\t\tsrc = attr_datasrc;\n\t\t}\n\t\tif (src) {\n\t\t\tvar holder = parse_flags(src.substr(src.lastIndexOf(options.domain) + options.domain.length + 1).split(\"/\"), options);\n\t\t\tif (holder) {\n\t\t\t\tif (holder.fluid) {\n\t\t\t\t\trender(\"fluid\", images[i], holder, src)\n\t\t\t\t} else {\n\t\t\t\t\trender(\"image\", images[i], holder, src);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn app;\n};\n\ncontentLoaded(win, function () {\n\tif (window.addEventListener) {\n\t\twindow.addEventListener(\"resize\", resizable_update, false);\n\t\twindow.addEventListener(\"orientationchange\", resizable_update, false);\n\t} else {\n\t\twindow.attachEvent(\"onresize\", resizable_update)\n\t}\n\tpreempted || app.run({});\n\n\tif (typeof window.Turbolinks === \"object\") {\n\t\tdocument.addEventListener(\"page:change\", function() { app.run({}) })\n\t}\n});\nif (typeof define === \"function\" && define.amd) {\n\tdefine([], function () {\n\t\treturn app;\n\t});\n}\n\n//github.com/davidchambers/Base64.js\n(function(){function t(t){this.message=t}var e=\"undefined\"!=typeof exports?exports:this,r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";t.prototype=Error(),t.prototype.name=\"InvalidCharacterError\",e.btoa||(e.btoa=function(e){for(var o,n,a=0,i=r,c=\"\";e.charAt(0|a)||(i=\"=\",a%1);c+=i.charAt(63&o>>8-8*(a%1))){if(n=e.charCodeAt(a+=.75),n>255)throw new t(\"'btoa' failed\");o=o<<8|n}return c}),e.atob||(e.atob=function(e){if(e=e.replace(/=+$/,\"\"),1==e.length%4)throw new t(\"'atob' failed\");for(var o,n,a=0,i=0,c=\"\";n=e.charAt(i++);~n&&(o=a%4?64*o+n:n,a++%4)?c+=String.fromCharCode(255&o>>(6&-2*a)):0)n=r.indexOf(n);return c})})();\n\n//getElementsByClassName polyfill\ndocument.getElementsByClassName||(document.getElementsByClassName=function(e){var t=document,n,r,i,s=[];if(t.querySelectorAll)return t.querySelectorAll(\".\"+e);if(t.evaluate){r=\".//*[contains(concat(' ', @class, ' '), ' \"+e+\" ')]\",n=t.evaluate(r,t,null,0,null);while(i=n.iterateNext())s.push(i)}else{n=t.getElementsByTagName(\"*\"),r=new RegExp(\"(^|\\\\s)\"+e+\"(\\\\s|$)\");for(i=0;i<n.length;i++)r.test(n[i].className)&&s.push(n[i])}return s})\n\n//getComputedStyle polyfill\nwindow.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var n=/(\\-([a-z]){1})/g;return t==\"float\"&&(t=\"styleFloat\"),n.test(t)&&(t=t.replace(n,function(){return arguments[2].toUpperCase()})),e.currentStyle[t]?e.currentStyle[t]:null},this})\n\n//http://javascript.nwbox.com/ContentLoaded by Diego Perini with modifications\nfunction contentLoaded(n,t){var l=\"complete\",s=\"readystatechange\",u=!1,h=u,c=!0,i=n.document,a=i.documentElement,e=i.addEventListener?\"addEventListener\":\"attachEvent\",v=i.addEventListener?\"removeEventListener\":\"detachEvent\",f=i.addEventListener?\"\":\"on\",r=function(e){(e.type!=s||i.readyState==l)&&((e.type==\"load\"?n:i)[v](f+e.type,r,u),!h&&(h=!0)&&t.call(n,null))},o=function(){try{a.doScroll(\"left\")}catch(n){setTimeout(o,50);return}r(\"poll\")};if(i.readyState==l)t.call(n,\"lazy\");else{if(i.createEventObject&&a.doScroll){try{c=!n.frameElement}catch(y){}c&&o()}i[e](f+\"DOMContentLoaded\",r,u),i[e](f+s,r,u),n[e](f+\"load\",r,u)}}\n\n//https://gist.github.com/991057 by Jed Schmidt with modifications\nfunction selector(a,b){var a=a.match(/^(\\W)?(.*)/),b=b||document,c=b[\"getElement\"+(a[1]?\"#\"==a[1]?\"ById\":\"sByClassName\":\"sByTagName\")],d=c.call(b,a[2]),e=[];return null!==d&&(e=d.length||0===d.length?d:[d]),e}\n\n//shallow object property extend\nfunction extend(a,b){\n\tvar c={};\n\tfor(var i in a){\n\t\tif(a.hasOwnProperty(i)){\n\t\t\tc[i]=a[i];\n\t\t}\n\t}\n\tfor(var i in b){\n\t\tif(b.hasOwnProperty(i)){\n\t\t\tc[i]=b[i];\n\t\t}\n\t}\n\treturn c\n}\n\n//hasOwnProperty polyfill\nif (!Object.prototype.hasOwnProperty)\n    /*jshint -W001, -W103 */\n    Object.prototype.hasOwnProperty = function(prop) {\n\t\tvar proto = this.__proto__ || this.constructor.prototype;\n\t\treturn (prop in this) && (!(prop in proto) || proto[prop] !== this[prop]);\n\t}\n    /*jshint +W001, +W103 */\n\n})(Holder, window);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/horizontal-timeline/horizontal-timeline.js",
    "content": "jQuery(document).ready(function($){\n\tvar timelines = $('.cd-horizontal-timeline');\n\tvar eventsMinDistance;\n\n\t(timelines.length > 0) && initTimeline(timelines);\n\n\tfunction initTimeline(timelines) {\n\t\ttimelines.each(function(){\n\t\t\teventsMinDistance = $(this).data('spacing');\n\t\t\tvar timeline = $(this),\n\t\t\t\ttimelineComponents = {};\n\t\t\t//cache timeline components \n\t\t\ttimelineComponents['timelineWrapper'] = timeline.find('.events-wrapper');\n\t\t\ttimelineComponents['eventsWrapper'] = timelineComponents['timelineWrapper'].children('.events');\n\t\t\ttimelineComponents['fillingLine'] = timelineComponents['eventsWrapper'].children('.filling-line');\n\t\t\ttimelineComponents['timelineEvents'] = timelineComponents['eventsWrapper'].find('a');\n\t\t\ttimelineComponents['timelineDates'] = parseDate(timelineComponents['timelineEvents']);\n\t\t\ttimelineComponents['eventsMinLapse'] = minLapse(timelineComponents['timelineDates']);\n\t\t\ttimelineComponents['timelineNavigation'] = timeline.find('.cd-timeline-navigation');\n\t\t\ttimelineComponents['eventsContent'] = timeline.children('.events-content');\n\n\t\t\t//assign a left postion to the single events along the timeline\n\t\t\tsetDatePosition(timelineComponents, eventsMinDistance);\n\t\t\t//assign a width to the timeline\n\t\t\tvar timelineTotWidth = setTimelineWidth(timelineComponents, eventsMinDistance);\n\t\t\t//the timeline has been initialize - show it\n\t\t\ttimeline.addClass('loaded');\n\n\t\t\t//detect click on the next arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.next', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\t//detect click on the prev arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.prev', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\t\t\t//detect click on the a single event - show new event content\n\t\t\ttimelineComponents['eventsWrapper'].on('click', 'a', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttimelineComponents['timelineEvents'].removeClass('selected');\n\t\t\t\t$(this).addClass('selected');\n\t\t\t\tupdateOlderEvents($(this));\n\t\t\t\tupdateFilling($(this), timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\t\tupdateVisibleContent($(this), timelineComponents['eventsContent']);\n\t\t\t});\n\n\t\t\t//on swipe, show next/prev event content\n\t\t\ttimelineComponents['eventsContent'].on('swipeleft', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\ttimelineComponents['eventsContent'].on('swiperight', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\n\t\t\t//keyboard navigation\n\t\t\t$(document).keyup(function(event){\n\t\t\t\tif(event.which=='37' && elementInViewport(timeline.get(0)) ) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t\t} else if( event.which=='39' && elementInViewport(timeline.get(0))) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction updateSlide(timelineComponents, timelineTotWidth, string) {\n\t\t//retrieve translateX value of timelineComponents['eventsWrapper']\n\t\tvar translateValue = getTranslateValue(timelineComponents['eventsWrapper']),\n\t\t\twrapperWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', ''));\n\t\t//translate the timeline to the left('next')/right('prev') \n\t\t(string == 'next') \n\t\t\t? translateTimeline(timelineComponents, translateValue - wrapperWidth + eventsMinDistance, wrapperWidth - timelineTotWidth)\n\t\t\t: translateTimeline(timelineComponents, translateValue + wrapperWidth - eventsMinDistance);\n\t}\n\n\tfunction showNewContent(timelineComponents, timelineTotWidth, string) {\n\t\t//go from one event to the next/previous one\n\t\tvar visibleContent =  timelineComponents['eventsContent'].find('.selected'),\n\t\t\tnewContent = ( string == 'next' ) ? visibleContent.next() : visibleContent.prev();\n\n\t\tif ( newContent.length > 0 ) { //if there's a next/prev event - show it\n\t\t\tvar selectedDate = timelineComponents['eventsWrapper'].find('.selected'),\n\t\t\t\tnewEvent = ( string == 'next' ) ? selectedDate.parent('li').next('li').children('a') : selectedDate.parent('li').prev('li').children('a');\n\t\t\t\n\t\t\tupdateFilling(newEvent, timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\tupdateVisibleContent(newEvent, timelineComponents['eventsContent']);\n\t\t\tnewEvent.addClass('selected');\n\t\t\tselectedDate.removeClass('selected');\n\t\t\tupdateOlderEvents(newEvent);\n\t\t\tupdateTimelinePosition(string, newEvent, timelineComponents);\n\t\t}\n\t}\n\n\tfunction updateTimelinePosition(string, event, timelineComponents) {\n\t\t//translate timeline to the left/right according to the position of the selected event\n\t\tvar eventStyle = window.getComputedStyle(event.get(0), null),\n\t\t\teventLeft = Number(eventStyle.getPropertyValue(\"left\").replace('px', '')),\n\t\t\ttimelineWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')),\n\t\t\ttimelineTotWidth = Number(timelineComponents['eventsWrapper'].css('width').replace('px', ''));\n\t\tvar timelineTranslate = getTranslateValue(timelineComponents['eventsWrapper']);\n\n        if( (string == 'next' && eventLeft > timelineWidth - timelineTranslate) || (string == 'prev' && eventLeft < - timelineTranslate) ) {\n        \ttranslateTimeline(timelineComponents, - eventLeft + timelineWidth/2, timelineWidth - timelineTotWidth);\n        }\n\t}\n\n\tfunction translateTimeline(timelineComponents, value, totWidth) {\n\t\tvar eventsWrapper = timelineComponents['eventsWrapper'].get(0);\n\t\tvalue = (value > 0) ? 0 : value; //only negative translate value\n\t\tvalue = ( !(typeof totWidth === 'undefined') &&  value < totWidth ) ? totWidth : value; //do not translate more than timeline width\n\t\tsetTransformValue(eventsWrapper, 'translateX', value+'px');\n\t\t//update navigation arrows visibility\n\t\t(value == 0 ) ? timelineComponents['timelineNavigation'].find('.prev').addClass('inactive') : timelineComponents['timelineNavigation'].find('.prev').removeClass('inactive');\n\t\t(value == totWidth ) ? timelineComponents['timelineNavigation'].find('.next').addClass('inactive') : timelineComponents['timelineNavigation'].find('.next').removeClass('inactive');\n\t}\n\n\tfunction updateFilling(selectedEvent, filling, totWidth) {\n\t\t//change .filling-line length according to the selected event\n\t\tvar eventStyle = window.getComputedStyle(selectedEvent.get(0), null),\n\t\t\teventLeft = eventStyle.getPropertyValue(\"left\"),\n\t\t\teventWidth = eventStyle.getPropertyValue(\"width\");\n\t\teventLeft = Number(eventLeft.replace('px', '')) + Number(eventWidth.replace('px', ''))/2;\n\t\tvar scaleValue = eventLeft/totWidth;\n\t\tsetTransformValue(filling.get(0), 'scaleX', scaleValue);\n\t}\n\n\tfunction setDatePosition(timelineComponents, min) {\n\t\tfor (i = 0; i < timelineComponents['timelineDates'].length; i++) { \n\t\t    var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),\n\t\t    \tdistanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2;\n\t\t    timelineComponents['timelineEvents'].eq(i).css('left', distanceNorm*min+'px');\n\t\t}\n\t}\n\n\tfunction setTimelineWidth(timelineComponents, width) {\n\t\tvar timeSpan = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][timelineComponents['timelineDates'].length-1]),\n\t\t\ttimeSpanNorm = timeSpan/timelineComponents['eventsMinLapse'],\n\t\t\ttimeSpanNorm = Math.round(timeSpanNorm) + 4,\n\t\t\ttotalWidth = timeSpanNorm*width;\n\t\ttimelineComponents['eventsWrapper'].css('width', totalWidth+'px');\n\t\tupdateFilling(timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents['fillingLine'], totalWidth);\n\t\tupdateTimelinePosition('next', timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents);\n\t\n\t\treturn totalWidth;\n\t}\n\n\tfunction updateVisibleContent(event, eventsContent) {\n\t\tvar eventDate = event.data('date'),\n\t\t\tvisibleContent = eventsContent.find('.selected'),\n\t\t\tselectedContent = eventsContent.find('[data-date=\"'+ eventDate +'\"]'),\n\t\t\tselectedContentHeight = selectedContent.height();\n\n\t\tif (selectedContent.index() > visibleContent.index()) {\n\t\t\tvar classEnetering = 'selected enter-right',\n\t\t\t\tclassLeaving = 'leave-left';\n\t\t} else {\n\t\t\tvar classEnetering = 'selected enter-left',\n\t\t\t\tclassLeaving = 'leave-right';\n\t\t}\n\n\t\tselectedContent.attr('class', classEnetering);\n\t\tvisibleContent.attr('class', classLeaving).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(){\n\t\t\tvisibleContent.removeClass('leave-right leave-left');\n\t\t\tselectedContent.removeClass('enter-left enter-right');\n\t\t});\n\t\teventsContent.css('height', selectedContentHeight+'px');\n\t}\n\n\tfunction updateOlderEvents(event) {\n\t\tevent.parent('li').prevAll('li').children('a').addClass('older-event').end().end().nextAll('li').children('a').removeClass('older-event');\n\t}\n\n\tfunction getTranslateValue(timeline) {\n\t\tvar timelineStyle = window.getComputedStyle(timeline.get(0), null),\n\t\t\ttimelineTranslate = timelineStyle.getPropertyValue(\"-webkit-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-moz-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-ms-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-o-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"transform\");\n\n        if( timelineTranslate.indexOf('(') >=0 ) {\n        \tvar timelineTranslate = timelineTranslate.split('(')[1];\n    \t\ttimelineTranslate = timelineTranslate.split(')')[0];\n    \t\ttimelineTranslate = timelineTranslate.split(',');\n    \t\tvar translateValue = timelineTranslate[4];\n        } else {\n        \tvar translateValue = 0;\n        }\n\n        return Number(translateValue);\n\t}\n\n\tfunction setTransformValue(element, property, value) {\n\t\telement.style[\"-webkit-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-moz-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-ms-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-o-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"transform\"] = property+\"(\"+value+\")\";\n\t}\n\n\t//based on http://stackoverflow.com/questions/542938/how-do-i-get-the-number-of-days-between-two-dates-in-javascript\n\tfunction parseDate(events) {\n\t\tvar dateArrays = [];\n\t\tevents.each(function(){\n\t\t\tvar singleDate = $(this),\n\t\t\t\tdateComp = singleDate.data('date').split('T');\n\t\t\tif( dateComp.length > 1 ) { //both DD/MM/YEAR and time are provided\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = dateComp[1].split(':');\n\t\t\t} else if( dateComp[0].indexOf(':') >=0 ) { //only time is provide\n\t\t\t\tvar dayComp = [\"2000\", \"0\", \"0\"],\n\t\t\t\t\ttimeComp = dateComp[0].split(':');\n\t\t\t} else { //only DD/MM/YEAR\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = [\"0\", \"0\"];\n\t\t\t}\n\t\t\tvar\tnewDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]);\n\t\t\tdateArrays.push(newDate);\n\t\t});\n\t    return dateArrays;\n\t}\n\n\tfunction daydiff(first, second) {\n\t    return Math.round((second-first));\n\t}\n\n\tfunction minLapse(dates) {\n\t\t//determine the minimum distance among events\n\t\tvar dateDistances = [];\n\t\tfor (i = 1; i < dates.length; i++) { \n\t\t    var distance = daydiff(dates[i-1], dates[i]);\n\t\t    dateDistances.push(distance);\n\t\t}\n\t\treturn Math.min.apply(null, dateDistances);\n\t}\n\n\t/*\n\t\tHow to tell if a DOM element is visible in the current viewport?\n\t\thttp://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n\t*/\n\tfunction elementInViewport(el) {\n\t\tvar top = el.offsetTop;\n\t\tvar left = el.offsetLeft;\n\t\tvar width = el.offsetWidth;\n\t\tvar height = el.offsetHeight;\n\n\t\twhile(el.offsetParent) {\n\t\t    el = el.offsetParent;\n\t\t    top += el.offsetTop;\n\t\t    left += el.offsetLeft;\n\t\t}\n\n\t\treturn (\n\t\t    top < (window.pageYOffset + window.innerHeight) &&\n\t\t    left < (window.pageXOffset + window.innerWidth) &&\n\t\t    (top + height) > window.pageYOffset &&\n\t\t    (left + width) > window.pageXOffset\n\t\t);\n\t}\n\n\tfunction checkMQ() {\n\t\t//check if mobile or desktop device\n\t\treturn window.getComputedStyle(document.querySelector('.cd-horizontal-timeline'), '::before').getPropertyValue('content').replace(/'/g, \"\").replace(/\"/g, \"\");\n\t}\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/horizontal-timeline/horozontal-timeline.js",
    "content": "jQuery(document).ready(function($){\n\tvar timelines = $('.cd-horizontal-timeline'),\n\t\teventsMinDistance = 60;\n\n\t(timelines.length > 0) && initTimeline(timelines);\n\n\tfunction initTimeline(timelines) {\n\t\ttimelines.each(function(){\n\t\t\tvar timeline = $(this),\n\t\t\t\ttimelineComponents = {};\n\t\t\t//cache timeline components \n\t\t\ttimelineComponents['timelineWrapper'] = timeline.find('.events-wrapper');\n\t\t\ttimelineComponents['eventsWrapper'] = timelineComponents['timelineWrapper'].children('.events');\n\t\t\ttimelineComponents['fillingLine'] = timelineComponents['eventsWrapper'].children('.filling-line');\n\t\t\ttimelineComponents['timelineEvents'] = timelineComponents['eventsWrapper'].find('a');\n\t\t\ttimelineComponents['timelineDates'] = parseDate(timelineComponents['timelineEvents']);\n\t\t\ttimelineComponents['eventsMinLapse'] = minLapse(timelineComponents['timelineDates']);\n\t\t\ttimelineComponents['timelineNavigation'] = timeline.find('.cd-timeline-navigation');\n\t\t\ttimelineComponents['eventsContent'] = timeline.children('.events-content');\n\n\t\t\t//assign a left postion to the single events along the timeline\n\t\t\tsetDatePosition(timelineComponents, eventsMinDistance);\n\t\t\t//assign a width to the timeline\n\t\t\tvar timelineTotWidth = setTimelineWidth(timelineComponents, eventsMinDistance);\n\t\t\t//the timeline has been initialize - show it\n\t\t\ttimeline.addClass('loaded');\n\n\t\t\t//detect click on the next arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.next', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\t//detect click on the prev arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.prev', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\t\t\t//detect click on the a single event - show new event content\n\t\t\ttimelineComponents['eventsWrapper'].on('click', 'a', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttimelineComponents['timelineEvents'].removeClass('selected');\n\t\t\t\t$(this).addClass('selected');\n\t\t\t\tupdateOlderEvents($(this));\n\t\t\t\tupdateFilling($(this), timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\t\tupdateVisibleContent($(this), timelineComponents['eventsContent']);\n\t\t\t});\n\n\t\t\t//on swipe, show next/prev event content\n\t\t\ttimelineComponents['eventsContent'].on('swipeleft', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\ttimelineComponents['eventsContent'].on('swiperight', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\n\t\t\t//keyboard navigation\n\t\t\t$(document).keyup(function(event){\n\t\t\t\tif(event.which=='37' && elementInViewport(timeline.get(0)) ) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t\t} else if( event.which=='39' && elementInViewport(timeline.get(0))) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction updateSlide(timelineComponents, timelineTotWidth, string) {\n\t\t//retrieve translateX value of timelineComponents['eventsWrapper']\n\t\tvar translateValue = getTranslateValue(timelineComponents['eventsWrapper']),\n\t\t\twrapperWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', ''));\n\t\t//translate the timeline to the left('next')/right('prev') \n\t\t(string == 'next') \n\t\t\t? translateTimeline(timelineComponents, translateValue - wrapperWidth + eventsMinDistance, wrapperWidth - timelineTotWidth)\n\t\t\t: translateTimeline(timelineComponents, translateValue + wrapperWidth - eventsMinDistance);\n\t}\n\n\tfunction showNewContent(timelineComponents, timelineTotWidth, string) {\n\t\t//go from one event to the next/previous one\n\t\tvar visibleContent =  timelineComponents['eventsContent'].find('.selected'),\n\t\t\tnewContent = ( string == 'next' ) ? visibleContent.next() : visibleContent.prev();\n\n\t\tif ( newContent.length > 0 ) { //if there's a next/prev event - show it\n\t\t\tvar selectedDate = timelineComponents['eventsWrapper'].find('.selected'),\n\t\t\t\tnewEvent = ( string == 'next' ) ? selectedDate.parent('li').next('li').children('a') : selectedDate.parent('li').prev('li').children('a');\n\t\t\t\n\t\t\tupdateFilling(newEvent, timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\tupdateVisibleContent(newEvent, timelineComponents['eventsContent']);\n\t\t\tnewEvent.addClass('selected');\n\t\t\tselectedDate.removeClass('selected');\n\t\t\tupdateOlderEvents(newEvent);\n\t\t\tupdateTimelinePosition(string, newEvent, timelineComponents);\n\t\t}\n\t}\n\n\tfunction updateTimelinePosition(string, event, timelineComponents) {\n\t\t//translate timeline to the left/right according to the position of the selected event\n\t\tvar eventStyle = window.getComputedStyle(event.get(0), null),\n\t\t\teventLeft = Number(eventStyle.getPropertyValue(\"left\").replace('px', '')),\n\t\t\ttimelineWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')),\n\t\t\ttimelineTotWidth = Number(timelineComponents['eventsWrapper'].css('width').replace('px', ''));\n\t\tvar timelineTranslate = getTranslateValue(timelineComponents['eventsWrapper']);\n\n        if( (string == 'next' && eventLeft > timelineWidth - timelineTranslate) || (string == 'prev' && eventLeft < - timelineTranslate) ) {\n        \ttranslateTimeline(timelineComponents, - eventLeft + timelineWidth/2, timelineWidth - timelineTotWidth);\n        }\n\t}\n\n\tfunction translateTimeline(timelineComponents, value, totWidth) {\n\t\tvar eventsWrapper = timelineComponents['eventsWrapper'].get(0);\n\t\tvalue = (value > 0) ? 0 : value; //only negative translate value\n\t\tvalue = ( !(typeof totWidth === 'undefined') &&  value < totWidth ) ? totWidth : value; //do not translate more than timeline width\n\t\tsetTransformValue(eventsWrapper, 'translateX', value+'px');\n\t\t//update navigation arrows visibility\n\t\t(value == 0 ) ? timelineComponents['timelineNavigation'].find('.prev').addClass('inactive') : timelineComponents['timelineNavigation'].find('.prev').removeClass('inactive');\n\t\t(value == totWidth ) ? timelineComponents['timelineNavigation'].find('.next').addClass('inactive') : timelineComponents['timelineNavigation'].find('.next').removeClass('inactive');\n\t}\n\n\tfunction updateFilling(selectedEvent, filling, totWidth) {\n\t\t//change .filling-line length according to the selected event\n\t\tvar eventStyle = window.getComputedStyle(selectedEvent.get(0), null),\n\t\t\teventLeft = eventStyle.getPropertyValue(\"left\"),\n\t\t\teventWidth = eventStyle.getPropertyValue(\"width\");\n\t\teventLeft = Number(eventLeft.replace('px', '')) + Number(eventWidth.replace('px', ''))/2;\n\t\tvar scaleValue = eventLeft/totWidth;\n\t\tsetTransformValue(filling.get(0), 'scaleX', scaleValue);\n\t}\n\n\tfunction setDatePosition(timelineComponents, min) {\n\t\tfor (i = 0; i < timelineComponents['timelineDates'].length; i++) { \n\t\t    var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),\n\t\t    \tdistanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2;\n\t\t    timelineComponents['timelineEvents'].eq(i).css('left', distanceNorm*min+'px');\n\t\t}\n\t}\n\n\tfunction setTimelineWidth(timelineComponents, width) {\n\t\tvar timeSpan = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][timelineComponents['timelineDates'].length-1]),\n\t\t\ttimeSpanNorm = timeSpan/timelineComponents['eventsMinLapse'],\n\t\t\ttimeSpanNorm = Math.round(timeSpanNorm) + 4,\n\t\t\ttotalWidth = timeSpanNorm*width;\n\t\ttimelineComponents['eventsWrapper'].css('width', totalWidth+'px');\n\t\tupdateFilling(timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents['fillingLine'], totalWidth);\n\t\tupdateTimelinePosition('next', timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents);\n\t\n\t\treturn totalWidth;\n\t}\n\n\tfunction updateVisibleContent(event, eventsContent) {\n\t\tvar eventDate = event.data('date'),\n\t\t\tvisibleContent = eventsContent.find('.selected'),\n\t\t\tselectedContent = eventsContent.find('[data-date=\"'+ eventDate +'\"]'),\n\t\t\tselectedContentHeight = selectedContent.height();\n\n\t\tif (selectedContent.index() > visibleContent.index()) {\n\t\t\tvar classEnetering = 'selected enter-right',\n\t\t\t\tclassLeaving = 'leave-left';\n\t\t} else {\n\t\t\tvar classEnetering = 'selected enter-left',\n\t\t\t\tclassLeaving = 'leave-right';\n\t\t}\n\n\t\tselectedContent.attr('class', classEnetering);\n\t\tvisibleContent.attr('class', classLeaving).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(){\n\t\t\tvisibleContent.removeClass('leave-right leave-left');\n\t\t\tselectedContent.removeClass('enter-left enter-right');\n\t\t});\n\t\teventsContent.css('height', selectedContentHeight+'px');\n\t}\n\n\tfunction updateOlderEvents(event) {\n\t\tevent.parent('li').prevAll('li').children('a').addClass('older-event').end().end().nextAll('li').children('a').removeClass('older-event');\n\t}\n\n\tfunction getTranslateValue(timeline) {\n\t\tvar timelineStyle = window.getComputedStyle(timeline.get(0), null),\n\t\t\ttimelineTranslate = timelineStyle.getPropertyValue(\"-webkit-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-moz-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-ms-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-o-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"transform\");\n\n        if( timelineTranslate.indexOf('(') >=0 ) {\n        \tvar timelineTranslate = timelineTranslate.split('(')[1];\n    \t\ttimelineTranslate = timelineTranslate.split(')')[0];\n    \t\ttimelineTranslate = timelineTranslate.split(',');\n    \t\tvar translateValue = timelineTranslate[4];\n        } else {\n        \tvar translateValue = 0;\n        }\n\n        return Number(translateValue);\n\t}\n\n\tfunction setTransformValue(element, property, value) {\n\t\telement.style[\"-webkit-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-moz-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-ms-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-o-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"transform\"] = property+\"(\"+value+\")\";\n\t}\n\n\t//based on http://stackoverflow.com/questions/542938/how-do-i-get-the-number-of-days-between-two-dates-in-javascript\n\tfunction parseDate(events) {\n\t\tvar dateArrays = [];\n\t\tevents.each(function(){\n\t\t\tvar singleDate = $(this),\n\t\t\t\tdateComp = singleDate.data('date').split('T');\n\t\t\tif( dateComp.length > 1 ) { //both DD/MM/YEAR and time are provided\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = dateComp[1].split(':');\n\t\t\t} else if( dateComp[0].indexOf(':') >=0 ) { //only time is provide\n\t\t\t\tvar dayComp = [\"2000\", \"0\", \"0\"],\n\t\t\t\t\ttimeComp = dateComp[0].split(':');\n\t\t\t} else { //only DD/MM/YEAR\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = [\"0\", \"0\"];\n\t\t\t}\n\t\t\tvar\tnewDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]);\n\t\t\tdateArrays.push(newDate);\n\t\t});\n\t    return dateArrays;\n\t}\n\n\tfunction daydiff(first, second) {\n\t    return Math.round((second-first));\n\t}\n\n\tfunction minLapse(dates) {\n\t\t//determine the minimum distance among events\n\t\tvar dateDistances = [];\n\t\tfor (i = 1; i < dates.length; i++) { \n\t\t    var distance = daydiff(dates[i-1], dates[i]);\n\t\t    dateDistances.push(distance);\n\t\t}\n\t\treturn Math.min.apply(null, dateDistances);\n\t}\n\n\t/*\n\t\tHow to tell if a DOM element is visible in the current viewport?\n\t\thttp://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n\t*/\n\tfunction elementInViewport(el) {\n\t\tvar top = el.offsetTop;\n\t\tvar left = el.offsetLeft;\n\t\tvar width = el.offsetWidth;\n\t\tvar height = el.offsetHeight;\n\n\t\twhile(el.offsetParent) {\n\t\t    el = el.offsetParent;\n\t\t    top += el.offsetTop;\n\t\t    left += el.offsetLeft;\n\t\t}\n\n\t\treturn (\n\t\t    top < (window.pageYOffset + window.innerHeight) &&\n\t\t    left < (window.pageXOffset + window.innerWidth) &&\n\t\t    (top + height) > window.pageYOffset &&\n\t\t    (left + width) > window.pageXOffset\n\t\t);\n\t}\n\n\tfunction checkMQ() {\n\t\t//check if mobile or desktop device\n\t\treturn window.getComputedStyle(document.querySelector('.cd-horizontal-timeline'), '::before').getPropertyValue('content').replace(/'/g, \"\").replace(/\"/g, \"\");\n\t}\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/CHANGELOG.md",
    "content": "### Version 1.0.2 - March 03, 2014\n\n* Better HiDPI screens support @ddctd143\n\n### Version 2.0.0 RC - January 23, 2014\n\n* Three ways to set an options: global object (`window.icheck`), data attributes (`<input data-checkedClass=\"checked\"`) and direct JavaScript object (`$(input).icheck({ options })`)\n* Huge performance boost (takes less than 1s to customize 1000 inputs)\n* Minimized number of function calls (some slow jQuery functions are replaced with a faster vanilla alternatives without using any dependencies)\n* AMD module definition support (both for jQuery and Zepto)\n* Unblocked native events - iCheck 2.x doesn't stop your newly or past binded events from being processed\n* Pointer events support - full support for phones and tablets that use Windows OS (such as Lumia, HP tablets, desktops with a touch screen, etc)\n* WebOS and Firefox OS support\n* New methods: `$(input).icheck('data')` to get all the options were used for customization (also stores a current states values - `checked`, `disabled` and `indeterminate`), `$('input').icheck('styler')` to get a wrapper div (that's used for customization)\n* Better handling of the `indeterminate` state\n* Ability to set callbacks in three ways: global object, direct JavaScript object or using bind method (`$(input).on(callback)`)\n* Ability to switch off some of the callbacks when you don't need them (global or per input)\n* Inline styles dropped - iCheck won't add any inline styles to the elements until it's highly needed (`cursor` or `area` option)\n* Fast click support - removes a 300ms click delay on mobile devices without any dependencies (iCheck compatible with the `fastclick` plugin), see the `tap` option\n* Ability to ignore customization for the selected inputs using `init` option (if set to `false`) \n* Optimized event bindings - iCheck binds only a few global events for the all inputs (doesn't increase on elements addition), instead of a couple for the each customized element\n* Doesn't store tons of arbitrary data (event in jQuery or Zepto cache), defines customized elements by specific classnames \n* Extra `ins` tag is dropped (less DOM modifications), iCheck wraps each input with a single `div` and doesn't use any extra markup for the any option\n* Optimized reflows and repaints on init and state changes \n* Better options handling - iCheck will never run a single line of JS to process an options that are off or empty \n* Ability to auto customize the ajax loaded inputs without using any extra code (`autoAjax` option, on by default)\n* Auto inits on domready using the specified selector (`autoInit` option) - searches for `.icheck` by default. Classnames can be changed using the `window.classes` object\n* Memory usage optimization - uses only a few amount of memory (works well on low-memory devices)\n* Betters callbacks architecture - these are fired only after changes are applied to the input\n* Ability to set a mirror classes between the inputs and assigned labels using the `hoverLabelClass`, `focusLabelClass`, `activeLabelClass`, `checkedLabelClass`, `disabledLabelClass` and `indeterminateLabelClass` options (`mirror` option should be set to `true` to make this happen)\n* Fixes some issues of the mobile devices\n* Fixes the issues of the wrapper labels, that loose a click ability in some browsers (if no `for` attribute is set)\n* Some other options and improvements\n* Various bug fixes\n\nNote: extended docs and usage examples will be available later.\n\n### Version 1.0.1 - December 19, 2013\n\n* Added Bower support\n* Added to jQuery plugin registry\n\n### Version 1.0.0 - December 18, 2013\n\n* Added ARIA attributes support (for VoiceOver and others) @myfreeweb\n* Added Amazon Kindle support @skinofstars\n* Fixed clickable links inside labels @LeGaS\n* Fixed lines separation between labels and inputs\n* Merged two versions of the plugin (jQuery and Zepto) into one\n* Fixed demo links\n* Fixed callbacks @PepijnSenders\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/bower.json",
    "content": "{\n  \"name\": \"iCheck\",\n  \"version\": \"1.0.2\",\n  \"description\": \"Highly customizable checkboxes and radio buttons (jQuery & Zepto)\",\n  \"keywords\": [\n    \"icheck\",\n    \"checkbox\",\n    \"radio\",\n    \"input\",\n    \"field\",\n    \"form\",\n    \"custom\",\n    \"replacement\",\n    \"accessibility\",\n    \"skins\",\n    \"ui\",\n    \"checked\",\n    \"disabled\",\n    \"indeterminate\"\n  ],\n  \"main\": [\n    \"./icheck.min.js\"\n  ],\n  \"dependencies\": {\n    \"jquery\": \">=1.7\"\n  },\n  \"ignore\": [\n    \".gitignore\",\n    \"CHANGELOG.md\",\n    \"README.md\",\n    \"demo/\"\n  ],\n  \"license\": \"MIT\",\n  \"authors\": [\n    {\n      \"name\": \"Damir Sultanov\",\n      \"email\": \"info@fronteed.com\",\n      \"homepage\": \"http://fronteed.com/\"\n    }\n  ],\n  \"homepage\": \"http://fronteed.com/iCheck/\"\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/demo/css/custom.css",
    "content": "@import url(\"normalize.css\");\n@font-face{font-family:'MontserratRegular';src:url(\"./montserrat-regular.eot\");src:url(\"./montserrat-regular.eot?#iefix\") format('embedded-opentype'),url(\"./montserrat-regular.woff\") format('woff'),url(\"./montserrat-regular.ttf\") format('truetype'),url(\"./montserrat-regular.svg#MontserratRegular\") format('svg');font-style:normal;font-weight:normal}\n@font-face{font-family:'MontserratBold';src:url(\"./montserrat-bold.eot\");src:url(\"./montserrat-bold.eot?#iefix\") format('embedded-opentype'),url(\"./montserrat-bold.woff\") format('woff'),url(\"./montserrat-bold.ttf\") format('truetype'),url(\"./montserrat-bold.svg#MontserratBold\") format('svg');font-style:normal;font-weight:bold}\nhtml,body{height:100%}\nbody{font:14px/20px 'MontserratRegular',Helvetica,Arial,sans-serif;color:#222;background:#ebe7df url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAFZCAIAAAA96mnzAAACKklEQVR4Xn2VUW7kMAxD+QLf/1x7gv71LNwdKTLhZFtggMCwSVEUPdb3159/v0uSrM8HtGRZuoQk1R69J12o9ixJWvSnVyfLdbNw0XAXWe1fIL8BoqmNGiV/cHc9Gq4NXxLKHhteRyLpA28cl0SLdx0BckSWL4gkPlIVTg1nN9Ys3iyWI5AGDA5xOXB5BJaWmOw6KSLeU6+0P50QshQyEL2im/YMIL60dTSZ3RXenlkiJpMj8XPMAl1FtjMRW19NxzOE5VGWPVGrc7aSJgz1Y9ku57mpYSwn1h0ivFOXxoCKMCXiahbbZNIZR+tkphllPsomipCwb4GMkXTmPfVg40Jt2y4RQM/PqX5JTM4iiTN8Zz1XvbIAEEvoEW+3nxTLL3lB7t7J3WwyI7g5OVxKIeFEH4FIGLC9I+XqvSd4AxJM5O6WTPr54RAxLG44FVrEuz+kFdXyLiuX6kLPVLZL2ISlcHNlBIKm5rR8nEi9wJeA6Y8JZlJOyDiin0K5ag+AXHtALBicXasjIUu9h0STBbCMU+89gMnu/J05MU1QWqdbPMRPIZIzDgsi8Olg5t7wHhUg/pv5RUzO+BHDmczHkAfZWxlSYgNI5Ig5XRoc66dW9L45eHDkbkqCO7RLG5cna/HD7YhZnfINkFo8iNyj5kx6pFrxNGRlfhV2e1Zt5DnGU8T7Tud1ivi8jU8/3Zy88pkn6+zdXiJ7AVSFBZA3VcwDfXtt5UUHS38B35hQVuJip4MAAAAASUVORK5CYII=\") repeat-x;*background-image:url(\"ie/header-line.png\")}\na{color:#222;text-decoration:none;border-bottom:1px solid #bbb;}\na:hover{color:#000}\na,.self{-webkit-transition:color .1s;-moz-transition:color .1s;-ms-transition:color .1s;-o-transition:color .1s;transition:color .1s}\n.self{color:#333;border-bottom:1px dotted #aaa;cursor:pointer;}\n.self:hover{color:#000}\nstrong{font-family:'MontserratBold',Helvetica,Arial,sans-serif;font-weight:700}\np{margin:0 0 8px}\nlabel{cursor:pointer}\nh1,h2,h3,h4{margin:0;font:bold 20px/60px 'MontserratBold',Helvetica,Arial,sans-serif}\nh2{height:60px;text-align:center;text-transform:uppercase}\nh4{font-size:18px;line-height:24px}\nul{margin:0;padding:0;list-style:none}\ntable{width:100%;margin-bottom:21px}\nth,td{padding:11px 20px 12px;vertical-align:top;font-weight:normal;text-align:left;border-bottom:2px solid #e7e5e0;}\nthead th,thead td{background:#f3f2ef}\nth{white-space:nowrap}\ntd{width:100%}\n.focus{outline:1px dotted rgba(0,0,0,0.5) !important}\n.clear{position:relative;*zoom:1;}\n.clear:before,.clear:after{content:'';display:table;clear:both}\n.layout{width:930px;margin:0 auto;padding:0 15px}\n.header{padding:115px 0 73px;color:#fff;text-align:center;}\n.header h1,.header strong{letter-spacing:-1px;text-transform:uppercase}\n.header h1{padding-bottom:23px;font-size:22px;line-height:28px}\n.header h3{position:relative;padding:35px 0 17px;font-size:120px;line-height:140px;letter-spacing:-5px;}\n.header h3 span{font-size:30px;line-height:40px;letter-spacing:0;margin-left:-10px;vertical-align:baseline;}\n.header h3:before{content:'';display:inline-block;width:72px;height:64px;margin-right:32px;vertical-align:middle;background:url(\"icheck.png\")}\n.header h3:after{content:'';position:absolute;top:0;left:50%;width:100px;margin-left:-50px;border-top:3px solid #fff}\n.header strong{font:24px/30px 'MontserratRegular',Helvetica,Arial,sans-serif;}\n.header strong a{color:#fff;border-bottom-color:#fff}\n.features{position:relative;font-size:16px;color:#555;background:#fff;}\n.features .self{color:#555;border-bottom-color:#bbb;}\n.features .self:hover{color:#222}\n.features .arrows{top:0}\n.features:hover .arrows .bottom{left:0}\n.features h2{color:#fff;background:#2489c5}\n.features ul{padding:44px 60px 36px}\n.features li{padding:0 0 9px 36px;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABI0lEQVR4XpXSP0vDUBjF4ZtLkIr4EYzduogdXJTWWV2FLMVNoQrdAhlUUFAEcejo1q13svgFBAUdxA/g30kcdQoIIlL9DWcKuZEeeOCl99w3gTSI49h4MoFb/KCJz6KShS/rOh/TbEZZECLBiSQIR1nQQgAnAVr/LZjEnIq76OJbutjRGR26isUB3pDhBikucWoUzVdI1cl05zBk2MI5jvCKIfL5QluzxTS20bY6WENdl0ujTl13Ni3DABtwWEFp1HG6M7Aq9NHBGRbgy7w6HfTzX6GHCyyXPV2dnu9/MIUX+PIMOkRsbq7hHkZmxciDOrZoQRUVPCGCw504RDobR7VoQQ0f2Mejls1IRb/t4R10CcLc6/2igSVcw8gqFnEMOnSVPxQqQaPw2y7fAAAAAElFTkSuQmCC\") 0 1px no-repeat;*background-image:url(\"ie/icon-star.png\");}\n.features li.offset{margin-top:20px}\n.mark{padding:0 2px;color:#777;background:#e7e5e0;}\n.skin-polaris .mark{background:#232830}\n.skin-futurico .mark{background:#25262a}\n.social{height:60px;margin-bottom:60px;padding:0 60px;font-size:16px;color:#555;background:#f5f3ef;}\n.social a{color:#777;border-bottom-color:#ccc;}\n.social a:hover{color:#444}\n.social .left{float:left;padding-top:19px;}\n.social .left li{float:left;padding-right:30px;}\n.social .left li a{position:relative}\n.social .right{float:right;padding-top:20px;}\n.social .right li{float:right;padding-left:10px}\n.social .right.local{padding-top:19px;}\n.social .right.local li{padding-left:30px;font-size:14px}\n.demo-holder{margin-bottom:97px}\n.demo-title{padding-bottom:36px;font-size:26px;letter-spacing:-1px}\n.demo{position:relative;}\n.demo:hover .arrows .top,.demo:hover .arrows .bottom{left:0}\n.demo-list{position:relative;margin-right:360px;padding:33px 57px 17px;color:#555;background:#fff;border:3px solid #ddd8ce;}\n.demo-list ul{float:right;white-space:nowrap;}\n.demo-list ul:first-child{float:left}\n.demo-list ul li{position:relative;padding:0 0 18px 42px}\n.demo-list ul input{position:absolute;top:4px;left:0}\n.demo-list ul .icheckbox_square-blue,.demo-list ul .iradio_square-blue{position:absolute;top:-1px;left:0}\n.demo-list ul span{color:#bbb}\n.demo-methods{padding:21px 360px 0 0;}\n.demo-methods .mark{background:#d3cfc6}\n.demo-methods dt{position:relative;padding:17px 150px 18px 0;font:16px/24px 'MontserratRegular',Helvetica,Arial,sans-serif;color:#444;border-bottom:3px solid #ddd8ce;}\n.demo-methods dt .self{cursor:pointer;}\n.demo-methods dt .self:hover{color:#222}\n.demo-methods dt .code{position:absolute;right:0;bottom:18px;color:#777;}\n.demo-methods dt .code .self:hover{color:#444}\n.demo-methods dd{position:relative;display:none;margin:0;background:#fff;border:3px solid #ddd8ce;border-top:none;}\n.demo-methods dd:before{content:'';position:absolute;top:-13px;left:0;width:0;height:0;border:5px solid transparent;border-bottom-color:#ddd8ce;border-left-color:#ddd8ce}\n.demo-methods dd .markup{margin:0;color:#888;background:#f5f3ef;border:none;}\n.demo-methods dd .markup .comment{color:#aaa}\n.demo-callbacks{position:absolute;top:0;right:0;bottom:0;width:300px;color:#aaa;background:#232323;border:3px solid #ddd8ce;}\n.demo-callbacks h2{color:#fff;background:#6a5a8c}\n.demo-callbacks ul{position:absolute;top:60px;width:100%;bottom:0;overflow:auto;}\n.demo-callbacks ul::-webkit-scrollbar{width:10px;background:none;}\n.demo-callbacks ul::-webkit-scrollbar-track{background:none;border:none;}\n.demo-callbacks ul::-webkit-scrollbar-track-piece:disabled{display:none !important;}\n.demo-callbacks ul::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border:none;}\n.demo-callbacks ul::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3);}\n.demo-callbacks ul li{margin-top:-1px;padding:13px 20px 15px;border-top:1px solid #2e2e2e;}\n.demo-callbacks ul li span{color:#888}\n.skins{position:relative;*zoom:1;}\n.skins h2{position:absolute;top:-38px;right:0;left:0;font-size:24px;text-align:center}\n.arrows{position:absolute;top:3px;left:-60px;width:60px;overflow:hidden;}\n.arrows .top,.arrows .bottom{position:relative;left:60px;width:60px;height:60px;cursor:pointer;-webkit-transition:left .3s,background-color .2s;-moz-transition:left .3s,background-color .2s;-ms-transition:left .3s,background-color .2s;-o-transition:left .3s,background-color .2s;transition:left .3s,background-color .2s}\n.arrows .top{background:#83b3be url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAdklEQVR4Xo3MuwmFQBiE0b0FmAuutnRBsAARLMTYRzvWItiEYLq/s6CYyMwGXzTDcWbG8mhEf/ZjQIV2ZCigjiASMAVJIAVKAQ4FKWBDJVoYpAB/7z8GRaAQgBNQG8dZA28f0BmHBgUCKGh9hhpNKH8BWY8GlF2OH3hCC1zmdAAAAABJRU5ErkJggg==\") 50% no-repeat;*background-image:url(\"ie/arrow-top.png\");}\n.arrows .top:hover{background-color:#6ba4b1}\n.arrows .bottom{background:#e2b78d url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAf0lEQVR4Xo3MzQmEQBCE0TGAvQuOpiQIBiCCgXj2J52NRTAJwev0Vh+WOgjlNHyHguYFM/M6tKLSd2YTmtHHR48S8jtQzAB2430d2bgJvQLsdqRCZwZUPAFLaPjrjYAUMKLgwBtUK4CIhi4BEFGQBohISANEJKQBIqqIFtSqvx/0bXhCCUrgiAAAAABJRU5ErkJggg==\") 50% no-repeat;*background-image:url(\"ie/arrow-bottom.png\");}\n.arrows .bottom:hover{background-color:#dba571}\n@media screen and (max-width:1049px){.arrows,.fork-me{display:none}\n}.skin{position:relative;margin-bottom:40px;}\n.skin:hover .arrows .top,.skin:hover .arrows .bottom{left:0}\n.skin h3{position:relative;z-index:20;float:left;height:60px;padding:0 57px;line-height:58px;background:#fff;border:3px solid #ddd8ce;border-bottom:none;}\n.skin h3:before{content:'';position:absolute;top:100%;left:0;width:100%;height:2px;margin-top:-1px;background:#fff}\n.skin.skin-polaris h3{color:#cacdd1;background:#2c323c;}\n.skin.skin-polaris h3:before{background:#2c323c}\n.skin.skin-futurico h3{color:#c3c3c3;background:#2e3035;}\n.skin.skin-futurico h3:before{background:#2e3035}\n.skin dl{z-index:10;width:100%;margin:0}\n.skin dt{position:relative;top:-53px;right:-3px;float:right;height:47px;margin-right:-3px;padding:0 57px;line-height:47px;border:3px solid #ddd8ce;cursor:pointer;}\n.skin dt:hover{background:#f0ede7;border-bottom:3px solid #ddd8ce}\n.skin dt.selected{height:50px;background:#fff;border-bottom:none;cursor:default;}\n.skin dt.selected:before{content:'';position:absolute;top:100%;left:0;width:100%;height:2px;margin-top:-1px;background:#fff}\n.skin.skin-polaris dt{color:#cacdd1;background:#647083;}\n.skin.skin-polaris dt:hover{background:#4a5361}\n.skin.skin-polaris dt.selected{background:#2c323c;}\n.skin.skin-polaris dt.selected:before{background:#2c323c}\n.skin.skin-futurico dt{color:#c3c3c3;background:#676c77;}\n.skin.skin-futurico dt:hover{background:#4b4e56}\n.skin.skin-futurico dt.selected{background:#2e3035;}\n.skin.skin-futurico dt.selected:before{background:#2e3035}\n.skin dd{position:relative;display:none;float:left;width:100%;margin:-3px -100% 0 0;overflow:hidden;color:#444;background:#fff;border:3px solid #ddd8ce;}\n.skin dd.selected{display:block}\n.skin dd a{color:#444;}\n.skin dd a:hover{color:#111}\n.skin.skin-polaris dd{color:#7a828b;background:#2c323c;}\n.skin.skin-polaris dd a{color:#7a828b;border-bottom-color:#4e596b;}\n.skin.skin-polaris dd a:hover{color:#a2a7ae}\n.skin.skin-futurico dd{color:#888;background:#2e3035;}\n.skin.skin-futurico dd a{color:#888;border-bottom-color:#545861;}\n.skin.skin-futurico dd a:hover{color:#aaa}\n.skin-section{float:left;padding:42px 0 31px 57px;line-height:18px;}\n.skin-section h4{padding-bottom:18px;}\n.skin-polaris .skin-section h4{color:#959ba2}\n.skin-futurico .skin-section h4{color:#a0a0a0}\n.skin-section .list{float:left;padding-right:60px;}\n.skin-section .list li{position:relative;padding-bottom:15px}\n.skin-minimal .skin-section .list li{padding-left:38px}\n.skin-square .skin-section .list li{padding-left:42px}\n.skin-flat .skin-section .list li,.skin-line .skin-section label{padding-left:40px}\n.skin-line .skin-section h4{padding-bottom:24px}\n.skin-line .skin-section .list{padding-right:40px;}\n.skin-line .skin-section .list li{padding-bottom:10px}\n.skin-polaris .skin-section .list li{padding-left:37px}\n.skin-futurico .skin-section .list li{padding-left:36px}\n.icheckbox_minimal,.icheckbox_minimal-red,.icheckbox_minimal-green,.icheckbox_minimal-blue,.icheckbox_minimal-aero,.icheckbox_minimal-grey,.icheckbox_minimal-orange,.icheckbox_minimal-yellow,.icheckbox_minimal-pink,.icheckbox_minimal-purple,.iradio_minimal,.iradio_minimal-red,.iradio_minimal-green,.iradio_minimal-blue,.iradio_minimal-aero,.iradio_minimal-grey,.iradio_minimal-orange,.iradio_minimal-yellow,.iradio_minimal-pink,.iradio_minimal-purple{position:absolute;top:1px;left:0}\n.skin input[type=checkbox],.skin input[type=radio]{position:absolute;top:2px;left:0}\n.icheckbox_square,.icheckbox_square-red,.icheckbox_square-green,.icheckbox_square-blue,.icheckbox_square-aero,.icheckbox_square-grey,.icheckbox_square-orange,.icheckbox_square-yellow,.icheckbox_square-pink,.icheckbox_square-purple,.iradio_square,.iradio_square-red,.iradio_square-green,.iradio_square-blue,.iradio_square-aero,.iradio_square-grey,.iradio_square-orange,.iradio_square-yellow,.iradio_square-pink,.iradio_square-purple{position:absolute;top:-1px;left:0}\n.icheckbox_flat,.icheckbox_flat-red,.icheckbox_flat-green,.icheckbox_flat-blue,.icheckbox_flat-aero,.icheckbox_flat-grey,.icheckbox_flat-orange,.icheckbox_flat-yellow,.icheckbox_flat-pink,.icheckbox_flat-purple,.iradio_flat,.iradio_flat-red,.iradio_flat-green,.iradio_flat-blue,.iradio_flat-aero,.iradio_flat-grey,.iradio_flat-orange,.iradio_flat-yellow,.iradio_flat-pink,.iradio_flat-purple{position:absolute;top:0;left:0}\n.icheckbox_polaris,.iradio_polaris{position:absolute;top:-4px;left:-6px}\n.icheckbox_futurico,.iradio_futurico{position:absolute;top:2px;left:0}\n.skin-states{float:right;padding-right:57px;padding-left:0;}\n.skin-states .state{cursor:default !important}\n.skin-states .list{padding-right:0}\n.skin-minimal .skin-states .list li{padding-left:71px}\n.skin-square .skin-states .list li{padding-left:79px}\n.skin-flat .skin-states .list li{padding-left:75px}\n.skin-line .skin-states .list{padding-right:0}\n.skin-polaris .skin-states .list li{padding-left:69px}\n.skin-futurico .skin-states .list li{padding-left:67px}\n.skin-states .iradio_minimal,.skin-states .iradio_minimal-red,.skin-states .iradio_minimal-green,.skin-states .iradio_minimal-blue,.skin-states .iradio_minimal-aero,.skin-states .iradio_minimal-grey,.skin-states .iradio_minimal-orange,.skin-states .iradio_minimal-yellow,.skin-states .iradio_minimal-pink,.skin-states .iradio_minimal-purple{left:33px}\n.skin-states .iradio_square,.skin-states .iradio_square-red,.skin-states .iradio_square-green,.skin-states .iradio_square-blue,.skin-states .iradio_square-aero,.skin-states .iradio_square-grey,.skin-states .iradio_square-orange,.skin-states .iradio_square-yellow,.skin-states .iradio_square-pink,.skin-states .iradio_square-purple{left:37px}\n.skin-states .iradio_flat,.skin-states .iradio_flat-red,.skin-states .iradio_flat-green,.skin-states .iradio_flat-blue,.skin-states .iradio_flat-aero,.skin-states .iradio_flat-grey,.skin-states .iradio_flat-orange,.skin-states .iradio_flat-yellow,.skin-states .iradio_flat-pink,.skin-states .iradio_flat-purple{left:35px}\n.skin-states .iradio_polaris{left:26px}\n.skin-states .iradio_futurico{left:31px}\n.colors{clear:both;padding:24px 0 9px;}\n.skin-line .colors{padding-top:28px}\n.colors strong{float:left;line-height:20px;margin-right:20px}\n.colors li{position:relative;float:left;width:16px;height:16px;margin:2px 1px 0 0;background:#000;cursor:pointer;filter:alpha(opacity=50);opacity:.5;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-ms-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s;}\n.colors li:hover{filter:alpha(opacity=100);opacity:1}\n.colors li.active{height:20px;margin-top:0;filter:alpha(opacity=75);opacity:.75}\n.colors li.red{background:#d54e21}\n.colors li.green{background:#78a300}\n.colors li.blue{background:#0e76a8}\n.colors li.aero{background:#9cc2cb}\n.colors li.grey{background:#73716e}\n.colors li.orange{background:#f70}\n.colors li.yellow{background:#fc0}\n.colors li.pink{background:#ff66b5}\n.colors li.purple{background:#6a5a8c}\n.skin-square .colors li.red{background:#e56c69}\n.skin-square .colors li.green{background:#1b7e5a}\n.skin-square .colors li.blue{background:#2489c5}\n.skin-square .colors li.aero{background:#9cc2cb}\n.skin-square .colors li.grey{background:#73716e}\n.skin-square .colors li.yellow{background:#fc3}\n.skin-square .colors li.pink{background:#a77a94}\n.skin-square .colors li.purple{background:#6a5a8c}\n.skin-square .colors li.orange{background:#f70}\n.skin-flat .colors li.red{background:#ec7063}\n.skin-flat .colors li.green{background:#1abc9c}\n.skin-flat .colors li.blue{background:#3498db}\n.skin-flat .colors li.grey{background:#95a5a6}\n.skin-flat .colors li.orange{background:#f39c12}\n.skin-flat .colors li.yellow{background:#f1c40f}\n.skin-flat .colors li.pink{background:#af7ac5}\n.skin-flat .colors li.purple{background:#8677a7}\n.skin-line .colors li.yellow{background:#ffc414}\n.skins-info{padding:13px 0 57px;font-size:16px;line-height:22px;text-align:center;}\n.skins-info p{margin-bottom:17px}\n.skins-info .skins-banner{margin:34px 0 3px;}\n.skins-info .skins-banner a{display:block;width:728px;height:90px;margin:0 auto;overflow:hidden;text-indent:100%;white-space:nowrap;background:url(banner.jpg);-webkit-transition:opacity 0.4s ease;-moz-transition:opacity 0.4s ease;-o-transition:opacity 0.4s ease;transition:opacity 0.4s ease;border:none;}\n.skins-info .skins-banner a:hover{opacity:.8;}\n.skin-pre{padding:43px 60px 0}\n.skin-usage{padding:19px 60px 8px;list-style:decimal outside;}\n.skin-usage li{margin-bottom:23px}\n.skin-usage .schemes{margin-bottom:-3px;padding:13px 0 0 20px;color:#888;}\n.skin-usage .schemes ul{float:left;padding-right:60px}\n.skin-usage .schemes li{margin:0;padding-bottom:3px}\n.usage{position:relative;margin-bottom:80px;background:#fff;}\n.usage a{border-bottom-color:#ddd}\n.usage .self{border-bottom-color:#bbb}\n.usage .arrows{top:0}\n.usage:hover .arrows .top,.usage:hover .arrows .bottom{left:0}\n.usage h2{color:#fff;background:#1f7f5c}\n.usage h4{margin:26px 0 10px;}\n.usage h4.indeterminate{margin-top:28px}\n.usage p{margin-bottom:5px;}\n.usage p.offset{margin-top:10px}\n.usage p.callbacks-info{margin-bottom:19px}\n.usage p.methods-info{margin-bottom:10px}\n.usage p.methods-callback{margin-top:10px}\n.usage p.issue-tracker{margin-top:31px}\n.usage .markup{margin:9px 0 16px}\n.usage .usage-inner{font-size:15px;line-height:23px;padding:41px 60px 39px}\n.markup{margin:10px 0 18px;padding:8px 0 9px 17px;font:14px/20px 'MontserratRegular',Helvetica,Arial,sans-serif;color:#777;background:#e7e5e0;border-left:3px solid #d7d5cb;}\n.markup .comment{color:#999;}\n.markup .comment .self{color:#555;}\n.markup .comment .self:hover{color:#333}\n.skin-polaris .markup{background:#232830;border-left-color:#1f232a}\n.skin-futurico .markup{background:#25262a;border-left-color:#202225}\n.skin-polaris .markup .comment,.skin-futurico .markup .comment{color:#555}\n.browsers{margin-bottom:74px;}\n.browsers h2{margin-bottom:29px;font-size:24px}\n.browsers-inner{padding:0 60px;font-size:15px;line-height:23px;}\n.browsers-inner p{margin-bottom:15px}\n.benefits{position:relative;margin-bottom:59px;color:#888;background:#232323;}\n.benefits .arrows{top:0}\n.benefits:hover .arrows .top,.benefits:hover .arrows .bottom{left:0}\n.benefits h2{color:#fff;background:#6a5b8c}\n.benefits a{color:#888;border-bottom-color:#444;}\n.benefits a:hover{color:#aaa}\n.benefits .mark{color:#777;background:#393939}\n.benefits-inner{padding:41px 60px 29px;font-size:15px;line-height:23px;}\n.benefits-inner p{margin-bottom:15px}\n.benefits-inner ul{margin:-10px 0 15px}\n.download{height:63px;text-align:center;}\n.download a{display:block;height:60px;font-size:18px;line-height:58px;color:#fff;border-bottom:0 solid #e24f49;background:#e76b66;-webkit-transition:border-bottom .2s;-moz-transition:border-bottom .2s;-ms-transition:border-bottom .2s;-o-transition:border-bottom .2s;transition:border-bottom .2s;}\n.download a:before{content:'';display:inline-block;width:26px;height:26px;margin-right:12px;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAACYUlEQVR4Xr3VPWhTURjH4VOt0ES7ZRJbEJpsNsaimx9E0GpRCdgU/NhsRAdNBYcK0RirQcSkIIK2cRBRiragVayDhqBDLVWatFvsIKK2UMEp4KBcf8N/KNdwvcHWAw8c/rzvebk5yU2dZVnmf6wVNdb70Ca+5Rrkx0e8E/ZkyzCoAyuxBZu17/jXQV34jjwCytowjUk90Ywyo5q8errcDoriPgpoRhEj6MQrGHmpbARF1RbUG3Uz6Bae4iBacQNNSKEPRi4pa1JNq3pGcds+qNrXu4B1CKKCWtZqlPAZO/72RDGsRdKWh5ATIdOSpHpjbu6ojBfYBiPdOIQeHJMeZd0wsh1jKDsNakEc97AHo8o3IYCz2I1nGMYuZQHVGPXs1RlxtNgH+TCFtBpvIqua40ghqkGdOIp27VOqMcigX8PTKIKzWXwZDDbAQhDG5o6yx2iAkQY80T4HYxOEpbP/uCOnN+wq1Nlq6x3qrWp3NIcKJvAWV+FVzU804i6uwyNZZY34BaOeyzpjQmfOLR70DSGcwyxOIa7mAZzHQ+QxLHllCdUYnMYZzOqsjeBsPbp8QFZ7Lw7gCt4jhGu4qCEGa5SVVWPUM4Yjbn5HfrTjNYzk8AAZ5CSjbBBG3qjXr0CqX+YAviJpy6cQg9NKIoJBN6+gIGbwA16kMY5eeGDEo2xcNV71TCPo5qM7iX14hJIueB4XkICRhLJ51ZTUsx8n3AwawmGE8QUhRDR4J4yElUUQUm1YvUPOfxPO4khj66KL70W/m+Z6uF3P0YdJBRVlZqkHlbEezQo+YWHJB8mC1Lx+Ayeq7nRIoewwAAAAAElFTkSuQmCC\");*background-image:url(\"ie/icon-options.png\");vertical-align:middle}\n.download a:hover{border-bottom-width:3px}\n.license{color:#444;text-align:center;padding:30px 0 75px}\n.footer{padding-top:28px;height:60px;color:#666;background:#e2dfd8;}\n.footer ul{float:left;}\n.footer ul li{float:left;padding:2px 10px 0 0}\n.footer ul.local li{padding:0 30px 0 0}\n.footer .code{float:right}\n.footer a{color:#444;}\n.footer a:hover{color:#222}\n.footer-inner{width:930px;margin:0 auto;overflow:hidden}\n.fork-me{position:fixed;*position:absolute;top:0;right:0;width:40px;height:40px;overflow:hidden;text-indent:100%;white-space:nowrap;background:#28545b url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnElEQVR4XqVSgQmEMAyszw/gCI7wK7iBblBHcISfxG6gG/gjuIGO0A3ygaYQCCG2HhweF+6aShsAcDcBJBpuvlwFagqGJwUf5EL6kgV2eEe2yIgc9QI73CMPs8AOywI7nHDSzCxYxcnJ6+hrFnQkJrb2nGclP3Fj+vf0IUV1AgCZHiS86lOObxD4qqSD5mtXmAq1e2fB3vqXact3f/JmXumJlVq1AAAAAElFTkSuQmCC\") 50% no-repeat;*background-image:url(\"ie/icon-fork.png\");}\n.fork-me:hover{background-color:#1f7f5c}\n.skin dt,.fork-me{-webkit-transition:background-color .2s;-moz-transition:background-color .2s;-ms-transition:background-color .2s;-o-transition:background-color .2s;transition:background-color .2s}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/demo/css/custom.styl",
    "content": "/* Reset\n----------------------------------- */\n@import url(\"normalize.css\")\n\n\n/* Fonts\n----------------------------------- */\n$font = 'MontserratRegular'\n$fontBold = 'MontserratBold'\n$stack = $font, Helvetica, Arial, sans-serif\n$stackBold = $fontBold, Helvetica, Arial, sans-serif\n\n@font-face\n\tfont-family $font\n\tsrc url('./montserrat-regular.eot')\n\tsrc url('./montserrat-regular.eot?#iefix') format('embedded-opentype'),\n\t    url('./montserrat-regular.woff') format('woff'),\n\t    url('./montserrat-regular.ttf') format('truetype'),\n\t    url('./montserrat-regular.svg#' + $font + '') format('svg')\n\tfont-style normal\n\tfont-weight normal\n\n@font-face\n\tfont-family $fontBold\n\tsrc url('./montserrat-bold.eot')\n\tsrc url('./montserrat-bold.eot?#iefix') format('embedded-opentype'),\n\t    url('./montserrat-bold.woff') format('woff'),\n\t    url('./montserrat-bold.ttf') format('truetype'),\n\t    url('./montserrat-bold.svg#' + $fontBold + '') format('svg')\n\tfont-style normal\n\tfont-weight bold\n\n\n/* Demo\n----------------------------------- */\nhtml\nbody\n\theight 100%\n\nbody\n\tfont 14px/20px $stack\n\tcolor #222\n\tbackground #ebe7df url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAFZCAIAAAA96mnzAAACKklEQVR4Xn2VUW7kMAxD+QLf/1x7gv71LNwdKTLhZFtggMCwSVEUPdb3159/v0uSrM8HtGRZuoQk1R69J12o9ixJWvSnVyfLdbNw0XAXWe1fIL8BoqmNGiV/cHc9Gq4NXxLKHhteRyLpA28cl0SLdx0BckSWL4gkPlIVTg1nN9Ys3iyWI5AGDA5xOXB5BJaWmOw6KSLeU6+0P50QshQyEL2im/YMIL60dTSZ3RXenlkiJpMj8XPMAl1FtjMRW19NxzOE5VGWPVGrc7aSJgz1Y9ku57mpYSwn1h0ivFOXxoCKMCXiahbbZNIZR+tkphllPsomipCwb4GMkXTmPfVg40Jt2y4RQM/PqX5JTM4iiTN8Zz1XvbIAEEvoEW+3nxTLL3lB7t7J3WwyI7g5OVxKIeFEH4FIGLC9I+XqvSd4AxJM5O6WTPr54RAxLG44FVrEuz+kFdXyLiuX6kLPVLZL2ISlcHNlBIKm5rR8nEi9wJeA6Y8JZlJOyDiin0K5ag+AXHtALBicXasjIUu9h0STBbCMU+89gMnu/J05MU1QWqdbPMRPIZIzDgsi8Olg5t7wHhUg/pv5RUzO+BHDmczHkAfZWxlSYgNI5Ig5XRoc66dW9L45eHDkbkqCO7RLG5cna/HD7YhZnfINkFo8iNyj5kx6pFrxNGRlfhV2e1Zt5DnGU8T7Tud1ivi8jU8/3Zy88pkn6+zdXiJ7AVSFBZA3VcwDfXtt5UUHS38B35hQVuJip4MAAAAASUVORK5CYII=\") repeat-x\n\t*background-image url(ie/header-line.png)\n\na\n\tcolor #222\n\ttext-decoration none\n\tborder-bottom 1px solid #bbb\n\n\t&:hover\n\t\tcolor #000\n\na\n.self\n\t-webkit-transition color .1s\n\t-moz-transition color .1s\n\t-ms-transition color .1s\n\t-o-transition color .1s\n\ttransition color .1s\n\n.self\n\tcolor #333\n\tborder-bottom 1px dotted #aaa\n\tcursor pointer\n\n\t&:hover\n\t\tcolor #000\n\nstrong\n\tfont-family $stackBold\n\tfont-weight 700\n\np\n\tmargin 0 0 8px\n\nlabel\n\tcursor pointer\n\nh1\nh2\nh3\nh4\n\tmargin 0\n\tfont bold 20px/60px $stackBold\n\nh2\n\theight 60px\n\ttext-align center\n\ttext-transform uppercase\n\nh4\n\tfont-size 18px\n\tline-height 24px\n\nul\n\tmargin 0\n\tpadding 0\n\tlist-style none\n\ntable\n\twidth 100%\n\tmargin-bottom 21px\n\nth\ntd\n\tpadding 11px 20px 12px\n\tvertical-align top\n\tfont-weight normal\n\ttext-align left\n\tborder-bottom 2px solid #E7E5E0\n\n\tthead &\n\t\tbackground lighten(#E7E5E0, 50%)\n\nth\n\twhite-space nowrap\n\ntd\n\twidth 100%\n\n.focus\n\toutline 1px dotted rgba(0,0,0,.5) !important\n\n.clear\n\tposition relative\n\t*zoom 1\n\n\t&:before\n\t&:after\n\t\tcontent ''\n\t\tdisplay table\n\t\tclear both\n\n.layout\n\twidth 930px\n\tmargin 0 auto\n\tpadding 0 15px\n\n.header\n\tpadding 115px 0 73px\n\tcolor #fff\n\ttext-align center\n\n\th1\n\tstrong\n\t\tletter-spacing -1px\n\t\ttext-transform uppercase\n\n\th1\n\t\tpadding-bottom 23px\n\t\tfont-size 22px\n\t\tline-height 28px\n\n\th3\n\t\tposition relative\n\t\tpadding 35px 0 17px\n\t\tfont-size 120px\n\t\tline-height 140px\n\t\tletter-spacing -5px\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tdisplay inline-block\n\t\t\twidth 72px\n\t\t\theight 64px\n\t\t\tmargin-right 32px\n\t\t\tvertical-align middle\n\t\t\tbackground url(icheck.png)\n\n\t\t&:after\n\t\t\tcontent ''\n\t\t\tposition absolute\n\t\t\ttop 0\n\t\t\tleft 50%\n\t\t\twidth 100px\n\t\t\tmargin-left -50px\n\t\t\tborder-top 3px solid #fff\n\n\tstrong\n\t\tfont 24px/30px $stack\n\n\t\ta\n\t\t\tcolor #fff\n\t\t\tborder-bottom-color #fff\n\n.features\n\tposition relative\n\tfont-size 16px\n\tcolor #555\n\tbackground #fff\n\n\t.self\n\t\tcolor #555\n\t\tborder-bottom-color #bbb\n\n\t\t&:hover\n\t\t\tcolor #222\n\n\t.arrows\n\t\ttop 0\n\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th2\n\t\tcolor #fff\n\t\tbackground #2489c5\n\n\tul\n\t\tpadding 44px 60px 36px\n\n\tli\n\t\tpadding 0 0 9px 36px\n\t\tbackground url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABI0lEQVR4XpXSP0vDUBjF4ZtLkIr4EYzduogdXJTWWV2FLMVNoQrdAhlUUFAEcejo1q13svgFBAUdxA/g30kcdQoIIlL9DWcKuZEeeOCl99w3gTSI49h4MoFb/KCJz6KShS/rOh/TbEZZECLBiSQIR1nQQgAnAVr/LZjEnIq76OJbutjRGR26isUB3pDhBikucWoUzVdI1cl05zBk2MI5jvCKIfL5QluzxTS20bY6WENdl0ujTl13Ni3DABtwWEFp1HG6M7Aq9NHBGRbgy7w6HfTzX6GHCyyXPV2dnu9/MIUX+PIMOkRsbq7hHkZmxciDOrZoQRUVPCGCw504RDobR7VoQQ0f2Mejls1IRb/t4R10CcLc6/2igSVcw8gqFnEMOnSVPxQqQaPw2y7fAAAAAElFTkSuQmCC\") 0 1px no-repeat\n\t\t*background-image url(ie/icon-star.png)\n\n\t\t&.offset\n\t\t\tmargin-top 20px\n\n.mark\n\tpadding 0 2px\n\tcolor lighten(#555, 20%)\n\tbackground lighten(#d7d4cc, 40%)\n\n\t.skin-polaris &\n\t\tbackground darken(#2C323C, 20%)\n\n\t.skin-futurico &\n\t\tbackground darken(#2E3035, 20%)\n\n.social\n\theight 60px\n\tmargin-bottom 60px\n\tpadding 0 60px\n\tfont-size 16px\n\tcolor #555\n\tbackground lighten(#EBE7DF, 50%)\n\n\ta\n\t\tcolor #777\n\t\tborder-bottom-color #ccc\n\n\t\t&:hover\n\t\t\tcolor #444\n\n\t.left\n\t\tfloat left\n\t\tpadding-top 19px\n\n\t\tli\n\t\t\tfloat left\n\t\t\tpadding-right 30px\n\n\t\t\ta\n\t\t\t\tposition relative\n\n\t.right\n\t\tfloat right\n\t\tpadding-top 20px\n\n\t\tli\n\t\t\tfloat right\n\t\t\tpadding-left 10px\n\n\t\t&.local\n\t\t\tpadding-top 19px\n\n\t\t\tli\n\t\t\t\tpadding-left 30px\n\t\t\t\tfont-size 14px\n\n.demo-holder\n\tmargin-bottom 97px\n\n.demo-title\n\tpadding-bottom 36px\n\tfont-size 26px\n\tletter-spacing -1px\n\n.demo\n\tposition relative\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n.demo-list\n\tposition relative\n\tmargin-right 360px\n\tpadding 33px 57px 17px\n\tcolor #555\n\tbackground #fff\n\tborder 3px solid #ddd8ce\n\n\tul\n\t\tfloat right\n\t\twhite-space nowrap\n\n\t\t&:first-child\n\t\t\tfloat left\n\n\t\tli\n\t\t\tposition relative\n\t\t\tpadding 0 0 18px 42px\n\n\t\tinput\n\t\t\tposition absolute\n\t\t\ttop 4px\n\t\t\tleft 0\n\n\t\t.icheckbox_square-blue\n\t\t.iradio_square-blue\n\t\t\tposition absolute\n\t\t\ttop -1px\n\t\t\tleft 0\n\n\t\tspan\n\t\t\tcolor #bbb\n\n.demo-methods\n\tpadding 21px 360px 0 0\n\n\t.mark\n\t\tbackground darken(#e7e5e0, 10%)\n\n\tdt\n\t\tposition relative\n\t\tpadding 17px 150px 18px 0\n\t\tfont 16px/24px $stack\n\t\tcolor #444\n\t\tborder-bottom 3px solid #ddd8ce\n\n\t\t.self\n\t\t\tcursor pointer\n\n\t\t\t&:hover\n\t\t\t\tcolor #222\n\n\t\t.code\n\t\t\tposition absolute\n\t\t\tright 0\n\t\t\tbottom 18px\n\t\t\tcolor #777\n\n\t\t\t.self:hover\n\t\t\t\tcolor #444\n\n\tdd\n\t\tposition relative\n\t\tdisplay none\n\t\tmargin 0\n\t\tbackground #fff\n\t\tborder 3px solid #ddd8ce\n\t\tborder-top none\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tposition absolute\n\t\t\ttop -13px\n\t\t\tleft 0\n\t\t\twidth 0\n\t\t\theight 0\n\t\t\tborder 5px solid transparent\n\t\t\tborder-bottom-color #ddd8ce\n\t\t\tborder-left-color #ddd8ce\n\n\t\t.markup\n\t\t\tmargin 0\n\t\t\tcolor #888\n\t\t\tbackground lighten(#ebe7df, 50%)\n\t\t\tborder none\n\n\t\t\t.comment\n\t\t\t\tcolor #aaa\n\n.demo-callbacks\n\tposition absolute\n\ttop 0\n\tright 0\n\tbottom 0\n\twidth 300px\n\tcolor #aaa\n\tbackground #232323\n\tborder 3px solid #ddd8ce\n\n\th2\n\t\tcolor #fff\n\t\tbackground #6a5a8c\n\n\tul\n\t\tposition absolute\n\t\ttop 60px\n\t\twidth 100%\n\t\tbottom 0\n\t\toverflow auto\n\n\t\tli\n\t\t\tmargin-top -1px\n\t\t\tpadding 13px 20px 15px\n\t\t\tborder-top 1px solid #2e2e2e\n\n\t\t\tspan\n\t\t\t\tcolor #888\n\n.skins\n\tposition relative\n\t*zoom 1\n\n\th2\n\t\tposition absolute\n\t\ttop -38px\n\t\tright 0\n\t\tleft 0\n\t\tfont-size 24px\n\t\ttext-align center\n\n.arrows\n\tposition absolute\n\ttop 3px\n\tleft -60px\n\twidth 60px\n\toverflow hidden\n\n\t.top\n\t.bottom\n\t\tposition relative\n\t\tleft 60px\n\t\twidth 60px\n\t\theight 60px\n\t\tcursor pointer\n\t\t-webkit-transition left .3s, background-color .2s\n\t\t-moz-transition left .3s, background-color .2s\n\t\t-ms-transition left .3s, background-color .2s\n\t\t-o-transition left .3s, background-color .2s\n\t\ttransition left .3s, background-color .2s\n\n\t.top\n\t\tbackground lighten(#5a9aa8, 25%) url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAdklEQVR4Xo3MuwmFQBiE0b0FmAuutnRBsAARLMTYRzvWItiEYLq/s6CYyMwGXzTDcWbG8mhEf/ZjQIV2ZCigjiASMAVJIAVKAQ4FKWBDJVoYpAB/7z8GRaAQgBNQG8dZA28f0BmHBgUCKGh9hhpNKH8BWY8GlF2OH3hCC1zmdAAAAABJRU5ErkJggg==\") 50% no-repeat\n\t\t*background-image url(ie/arrow-top.png)\n\n\t\t&:hover\n\t\t\tbackground-color lighten(#5a9aa8, 10%)\n\n\t.bottom\n\t\tbackground lighten(#dba571, 20%) url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAf0lEQVR4Xo3MzQmEQBCE0TGAvQuOpiQIBiCCgXj2J52NRTAJwev0Vh+WOgjlNHyHguYFM/M6tKLSd2YTmtHHR48S8jtQzAB2430d2bgJvQLsdqRCZwZUPAFLaPjrjYAUMKLgwBtUK4CIhi4BEFGQBohISANEJKQBIqqIFtSqvx/0bXhCCUrgiAAAAABJRU5ErkJggg==\") 50% no-repeat\n\t\t*background-image url(ie/arrow-bottom.png)\n\n\t\t&:hover\n\t\t\tbackground-color #dba571\n\n@media screen and (max-width:1049px)\n\t.arrows\n\t.fork-me\n\t\tdisplay none\n\n.skin\n\tposition relative\n\tmargin-bottom 40px\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th3\n\t\tposition relative\n\t\tz-index 20\n\t\tfloat left\n\t\theight 60px\n\t\tpadding 0 57px\n\t\tline-height 58px\n\t\tbackground #fff\n\t\tborder 3px solid #ddd8ce\n\t\tborder-bottom none\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tposition absolute\n\t\t\ttop 100%\n\t\t\tleft 0\n\t\t\twidth 100%\n\t\t\theight 2px\n\t\t\tmargin-top -1px\n\t\t\tbackground #fff\n\n\t&.skin-polaris h3\n\t\tcolor lighten(#7a828b, 60%)\n\t\tbackground #2c323c\n\n\t\t&:before\n\t\t\tbackground #2c323c\n\n\t&.skin-futurico h3\n\t\tcolor lighten(#888, 50%)\n\t\tbackground #2e3035\n\n\t\t&:before\n\t\t\tbackground #2e3035\n\n\tdl\n\t\tz-index 10\n\t\twidth 100%\n\t\tmargin 0\n\n\tdt\n\t\tposition relative\n\t\ttop -53px\n\t\tright -3px\n\t\tfloat right\n\t\theight 47px\n\t\tmargin-right -3px\n\t\tpadding 0 57px\n\t\tline-height 47px\n\t\tborder 3px solid #ddd8ce\n\t\tcursor pointer\n\n\t\t&:hover\n\t\t\tbackground #f0ede7\n\t\t\tborder-bottom 3px solid #ddd8ce\n\n\t\t&.selected\n\t\t\theight 50px\n\t\t\tbackground #fff\n\t\t\tborder-bottom none\n\t\t\tcursor default\n\n\t\t\t&:before\n\t\t\t\tcontent ''\n\t\t\t\tposition absolute\n\t\t\t\ttop 100%\n\t\t\t\tleft 0\n\t\t\t\twidth 100%\n\t\t\t\theight 2px\n\t\t\t\tmargin-top -1px\n\t\t\t\tbackground #fff\n\n\t&.skin-polaris dt\n\t\tcolor lighten(#7a828b, 60%)\n\t\tbackground lighten(#30363f, 30%)\n\n\t\t&:hover\n\t\t\tbackground lighten(#30363f, 15%)\n\n\t\t&.selected\n\t\t\tbackground #2c323c\n\n\t\t\t&:before\n\t\t\t\tbackground #2c323c\n\n\t&.skin-futurico dt\n\t\tcolor lighten(#888, 50%)\n\t\tbackground lighten(#2e3035, 30%)\n\n\t\t&:hover\n\t\t\tbackground lighten(#2e3035, 15%)\n\n\t\t&.selected\n\t\t\tbackground #2e3035\n\n\t\t\t&:before\n\t\t\t\tbackground #2e3035\n\n\tdd\n\t\tposition relative\n\t\tdisplay none\n\t\tfloat left\n\t\twidth 100%\n\t\tmargin -3px -100% 0 0\n\t\toverflow hidden\n\t\tcolor #444\n\t\tbackground #fff\n\t\tborder 3px solid #ddd8ce\n\n\t\t&.selected\n\t\t\tdisplay block\n\n\t\ta\n\t\t\tcolor #444\n\n\t\t\t&:hover\n\t\t\t\tcolor #111\n\n\t&.skin-polaris dd\n\t\tcolor #7a828b\n\t\tbackground #2c323c\n\n\t\ta\n\t\t\tcolor #7a828b\n\t\t\tborder-bottom-color lighten(#2c323c, 20%)\n\n\t\t\t&:hover\n\t\t\t\tcolor lighten(#7a828b, 30%)\n\n\t&.skin-futurico dd\n\t\tcolor #888\n\t\tbackground #2e3035\n\n\t\ta\n\t\t\tcolor #888\n\t\t\tborder-bottom-color lighten(#2e3035, 20%)\n\n\t\t\t&:hover\n\t\t\t\tcolor #aaa\n\n.skin-section\n\tfloat left\n\tpadding 42px 0 31px 57px\n\tline-height 18px\n\n\th4\n\t\tpadding-bottom 18px\n\n\t\t.skin-polaris &\n\t\t\tcolor lighten(#7a828b, 20%)\n\n\t\t.skin-futurico &\n\t\t\tcolor lighten(#888, 20%)\n\n\t.list\n\t\tfloat left\n\t\tpadding-right 60px\n\n\t\tli\n\t\t\tposition relative\n\t\t\tpadding-bottom 15px\n\n\t.skin-minimal & .list li\n\t\tpadding-left 38px\n\n\t.skin-square & .list li\n\t\tpadding-left 42px\n\n\t.skin-flat & .list li\n\t.skin-line & label\n\t\tpadding-left 40px\n\n\t.skin-line & h4\n\t\tpadding-bottom 24px\n\n\t.skin-line & .list\n\t\tpadding-right 40px\n\n\t\tli\n\t\t\tpadding-bottom 10px\n\n\t.skin-polaris & .list li\n\t\tpadding-left 37px\n\n\t.skin-futurico & .list li\n\t\tpadding-left 36px\n\n.icheckbox_minimal\n.icheckbox_minimal-red\n.icheckbox_minimal-green\n.icheckbox_minimal-blue\n.icheckbox_minimal-aero\n.icheckbox_minimal-grey\n.icheckbox_minimal-orange\n.icheckbox_minimal-yellow\n.icheckbox_minimal-pink\n.icheckbox_minimal-purple\n.iradio_minimal\n.iradio_minimal-red\n.iradio_minimal-green\n.iradio_minimal-blue\n.iradio_minimal-aero\n.iradio_minimal-grey\n.iradio_minimal-orange\n.iradio_minimal-yellow\n.iradio_minimal-pink\n.iradio_minimal-purple\n\tposition absolute\n\ttop 1px\n\tleft 0\n\n.skin input[type=checkbox]\n.skin input[type=radio]\n\tposition absolute\n\ttop 2px\n\tleft 0\n\n.icheckbox_square\n.icheckbox_square-red\n.icheckbox_square-green\n.icheckbox_square-blue\n.icheckbox_square-aero\n.icheckbox_square-grey\n.icheckbox_square-orange\n.icheckbox_square-yellow\n.icheckbox_square-pink\n.icheckbox_square-purple\n.iradio_square\n.iradio_square-red\n.iradio_square-green\n.iradio_square-blue\n.iradio_square-aero\n.iradio_square-grey\n.iradio_square-orange\n.iradio_square-yellow\n.iradio_square-pink\n.iradio_square-purple\n\tposition absolute\n\ttop -1px\n\tleft 0\n\n.icheckbox_flat\n.icheckbox_flat-red\n.icheckbox_flat-green\n.icheckbox_flat-blue\n.icheckbox_flat-aero\n.icheckbox_flat-grey\n.icheckbox_flat-orange\n.icheckbox_flat-yellow\n.icheckbox_flat-pink\n.icheckbox_flat-purple\n.iradio_flat\n.iradio_flat-red\n.iradio_flat-green\n.iradio_flat-blue\n.iradio_flat-aero\n.iradio_flat-grey\n.iradio_flat-orange\n.iradio_flat-yellow\n.iradio_flat-pink\n.iradio_flat-purple\n\tposition absolute\n\ttop 0\n\tleft 0\n\n.icheckbox_polaris\n.iradio_polaris\n\tposition absolute\n\ttop -4px\n\tleft -6px\n\n.icheckbox_futurico\n.iradio_futurico\n\tposition absolute\n\ttop 2px\n\tleft 0\n\n.skin-states\n\tfloat right\n\tpadding-right 57px\n\tpadding-left 0\n\n\t.state\n\t\tcursor default !important\n\n\t.list\n\t\tpadding-right 0\n\n\t.skin-minimal & .list li\n\t\tpadding-left 71px\n\n\t.skin-square & .list li\n\t\tpadding-left 79px\n\n\t.skin-flat & .list li\n\t\tpadding-left 75px\n\n\t.skin-line & .list\n\t\tpadding-right 0\n\n\t.skin-polaris & .list li\n\t\tpadding-left 69px\n\n\t.skin-futurico & .list li\n\t\tpadding-left 67px\n\n\t.iradio_minimal\n\t.iradio_minimal-red\n\t.iradio_minimal-green\n\t.iradio_minimal-blue\n\t.iradio_minimal-aero\n\t.iradio_minimal-grey\n\t.iradio_minimal-orange\n\t.iradio_minimal-yellow\n\t.iradio_minimal-pink\n\t.iradio_minimal-purple\n\t\tleft 33px\n\n\t.iradio_square\n\t.iradio_square-red\n\t.iradio_square-green\n\t.iradio_square-blue\n\t.iradio_square-aero\n\t.iradio_square-grey\n\t.iradio_square-orange\n\t.iradio_square-yellow\n\t.iradio_square-pink\n\t.iradio_square-purple\n\t\tleft 37px\n\n\t.iradio_flat\n\t.iradio_flat-red\n\t.iradio_flat-green\n\t.iradio_flat-blue\n\t.iradio_flat-aero\n\t.iradio_flat-grey\n\t.iradio_flat-orange\n\t.iradio_flat-yellow\n\t.iradio_flat-pink\n\t.iradio_flat-purple\n\t\tleft 35px\n\n\t.iradio_polaris\n\t\tleft 26px\n\n\t.iradio_futurico\n\t\tleft 31px\n\n.colors\n\tclear both\n\tpadding 24px 0 9px\n\n\t.skin-line &\n\t\tpadding-top 28px\n\n\tstrong\n\t\tfloat left\n\t\tline-height 20px\n\t\tmargin-right 20px\n\n\tli\n\t\tposition relative\n\t\tfloat left\n\t\twidth 16px\n\t\theight 16px\n\t\tmargin 2px 1px 0 0\n\t\tbackground #000\n\t\tcursor pointer\n\t\tfilter unquote('alpha(opacity=50)')\n\t\topacity .5\n\t\t-webkit-transition opacity .2s\n\t\t-moz-transition opacity .2s\n\t\t-ms-transition opacity .2s\n\t\t-o-transition opacity .2s\n\t\ttransition opacity .2s\n\n\t\t&:hover\n\t\t\tfilter unquote('alpha(opacity=100)')\n\t\t\topacity 1\n\n\t\t&.active\n\t\t\theight 20px\n\t\t\tmargin-top 0\n\t\t\tfilter unquote('alpha(opacity=75)')\n\t\t\topacity .75\n\n\t\t&.red\n\t\t\tbackground #d54e21\n\n\t\t&.green\n\t\t\tbackground #78a300\n\n\t\t&.blue\n\t\t\tbackground #0e76a8\n\n\t\t&.aero\n\t\t\tbackground #9cc2cb\n\n\t\t&.grey\n\t\t\tbackground #73716e\n\n\t\t&.orange\n\t\t\tbackground #f70\n\n\t\t&.yellow\n\t\t\tbackground #fc0\n\n\t\t&.pink\n\t\t\tbackground #ff66b5\n\n\t\t&.purple\n\t\t\tbackground #6a5a8c\n\n\t\t.skin-square &.red\n\t\t\tbackground #e56c69\n\n\t\t.skin-square &.green\n\t\t\tbackground #1b7e5a\n\n\t\t.skin-square &.blue\n\t\t\tbackground #2489c5\n\n\t\t.skin-square &.aero\n\t\t\tbackground #9cc2cb\n\n\t\t.skin-square &.grey\n\t\t\tbackground #73716e\n\n\t\t.skin-square &.yellow\n\t\t\tbackground #fc3\n\n\t\t.skin-square &.pink\n\t\t\tbackground #a77a94\n\n\t\t.skin-square &.purple\n\t\t\tbackground #6a5a8c\n\n\t\t.skin-square &.orange\n\t\t\tbackground #f70\n\n\t\t.skin-flat &.red\n\t\t\tbackground #ec7063\n\n\t\t.skin-flat &.green\n\t\t\tbackground #1abc9c\n\n\t\t.skin-flat &.blue\n\t\t\tbackground #3498db\n\n\t\t.skin-flat &.grey\n\t\t\tbackground #95a5a6\n\n\t\t.skin-flat &.orange\n\t\t\tbackground #f39c12\n\n\t\t.skin-flat &.yellow\n\t\t\tbackground #f1c40f\n\n\t\t.skin-flat &.pink\n\t\t\tbackground #af7ac5\n\n\t\t.skin-flat &.purple\n\t\t\tbackground #8677a7\n\n\t\t.skin-line &.yellow\n\t\t\tbackground #FFC414\n\n.skins-info\n\tpadding 13px 0 57px\n\tfont-size 16px\n\tline-height 22px\n\ttext-align center\n\n\tp\n\t\tmargin-bottom 17px\n\n.skin-pre\n\tpadding 43px 60px 0\n\n.skin-usage\n\tpadding 19px 60px 8px\n\tlist-style decimal outside\n\n\tli\n\t\tmargin-bottom 23px\n\n\t.schemes\n\t\tmargin-bottom -3px\n\t\tpadding 13px 0 0 20px\n\t\tcolor #888\n\n\t\tul\n\t\t\tfloat left\n\t\t\tpadding-right 60px\n\n\t\tli\n\t\t\tmargin 0\n\t\t\tpadding-bottom 3px\n\n.usage\n\tposition relative\n\tmargin-bottom 80px\n\tbackground #fff\n\n\ta\n\t\tborder-bottom-color #ddd\n\n\t.self\n\t\tborder-bottom-color #bbb\n\n\t.arrows\n\t\ttop 0\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th2\n\t\tcolor #fff\n\t\tbackground #1f7f5c\n\n\th4\n\t\tmargin 26px 0 10px\n\n\t\t&.indeterminate\n\t\t\tmargin-top 28px\n\n\tp\n\t\tmargin-bottom 5px\n\n\t\t&.offset\n\t\t\tmargin-top 10px\n\n\t\t&.callbacks-info\n\t\t\tmargin-bottom 19px\n\n\t\t&.methods-info\n\t\t\tmargin-bottom 10px\n\n\t\t&.methods-callback\n\t\t\tmargin-top 10px\n\n\t\t&.issue-tracker\n\t\t\tmargin-top 31px\n\n\t.markup\n\t\tmargin 9px 0 16px\n\n\t.usage-inner\n\t\tfont-size 15px\n\t\tline-height 23px\n\t\tpadding 41px 60px 39px\n\n.markup\n\tmargin 10px 0 18px\n\tpadding 8px 0 9px 17px\n\tfont 14px/20px $stack\n\tcolor lighten(#555, 20%)\n\tbackground lighten(#d7d4cc, 40%)\n\tborder-left 3px solid darken(#ebeae5, 10%)\n\n\t.comment\n\t\tcolor lighten(#555, 40%)\n\n\t\t.self\n\t\t\tcolor #555\n\n\t\t\t&:hover\n\t\t\t\tcolor #333\n\n\t.skin-polaris &\n\t\tbackground darken(#2C323C, 20%)\n\t\tborder-left-color darken(#2C323C, 30%)\n\n\t.skin-futurico &\n\t\tbackground darken(#2E3035, 20%)\n\t\tborder-left-color darken(#2E3035, 30%)\n\n\t.skin-polaris &\n\t.skin-futurico &\n\n\t\t.comment\n\t\t\tcolor #555\n\n.browsers\n\tmargin-bottom 74px\n\n\th2\n\t\tmargin-bottom 29px\n\t\tfont-size 24px\n\n.browsers-inner\n\tpadding 0 60px\n\tfont-size 15px\n\tline-height 23px\n\n\tp\n\t\tmargin-bottom 15px\n\n.benefits\n\tposition relative\n\tmargin-bottom 59px\n\tcolor #888\n\tbackground #232323\n\n\t.arrows\n\t\ttop 0\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th2\n\t\tcolor #fff\n\t\tbackground #6a5b8c\n\n\ta\n\t\tcolor #888\n\t\tborder-bottom-color #444\n\n\t\t&:hover\n\t\t\tcolor #aaa\n\n\t.mark\n\t\tcolor #777\n\t\tbackground lighten(#232323, 10%)\n\n.benefits-inner\n\tpadding 41px 60px 29px\n\tfont-size 15px\n\tline-height 23px\n\n\tp\n\t\tmargin-bottom 15px\n\n\tul\n\t\tmargin -10px 0 15px\n\n.download\n\theight 63px\n\ttext-align center\n\n\ta\n\t\tdisplay block\n\t\theight 60px\n\t\tfont-size 18px\n\t\tline-height 58px\n\t\tcolor #fff\n\t\tborder-bottom 0 solid darken(#E76B66, 10%)\n\t\tbackground #E76B66\n\t\t-webkit-transition border-bottom .2s\n\t\t-moz-transition border-bottom .2s\n\t\t-ms-transition border-bottom .2s\n\t\t-o-transition border-bottom .2s\n\t\ttransition border-bottom .2s\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tdisplay inline-block\n\t\t\twidth 26px\n\t\t\theight 26px\n\t\t\tmargin-right 12px\n\t\t\tbackground url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAACYUlEQVR4Xr3VPWhTURjH4VOt0ES7ZRJbEJpsNsaimx9E0GpRCdgU/NhsRAdNBYcK0RirQcSkIIK2cRBRiragVayDhqBDLVWatFvsIKK2UMEp4KBcf8N/KNdwvcHWAw8c/rzvebk5yU2dZVnmf6wVNdb70Ca+5Rrkx0e8E/ZkyzCoAyuxBZu17/jXQV34jjwCytowjUk90Ywyo5q8errcDoriPgpoRhEj6MQrGHmpbARF1RbUG3Uz6Bae4iBacQNNSKEPRi4pa1JNq3pGcds+qNrXu4B1CKKCWtZqlPAZO/72RDGsRdKWh5ATIdOSpHpjbu6ojBfYBiPdOIQeHJMeZd0wsh1jKDsNakEc97AHo8o3IYCz2I1nGMYuZQHVGPXs1RlxtNgH+TCFtBpvIqua40ghqkGdOIp27VOqMcigX8PTKIKzWXwZDDbAQhDG5o6yx2iAkQY80T4HYxOEpbP/uCOnN+wq1Nlq6x3qrWp3NIcKJvAWV+FVzU804i6uwyNZZY34BaOeyzpjQmfOLR70DSGcwyxOIa7mAZzHQ+QxLHllCdUYnMYZzOqsjeBsPbp8QFZ7Lw7gCt4jhGu4qCEGa5SVVWPUM4Yjbn5HfrTjNYzk8AAZ5CSjbBBG3qjXr0CqX+YAviJpy6cQg9NKIoJBN6+gIGbwA16kMY5eeGDEo2xcNV71TCPo5qM7iX14hJIueB4XkICRhLJ51ZTUsx8n3AwawmGE8QUhRDR4J4yElUUQUm1YvUPOfxPO4khj66KL70W/m+Z6uF3P0YdJBRVlZqkHlbEezQo+YWHJB8mC1Lx+Ayeq7nRIoewwAAAAAElFTkSuQmCC\")\n\t\t\t*background-image url(ie/icon-options.png)\n\t\t\tvertical-align middle\n\n\t\t&:hover\n\t\t\tborder-bottom-width 3px\n\n.license\n\tcolor #444\n\ttext-align center\n\tpadding 30px 0 75px\n\n.footer\n\tpadding-top 28px\n\theight 60px\n\tcolor #666\n\tbackground #e2dfd8\n\n\tul\n\t\tfloat left\n\n\t\tli\n\t\t\tfloat left\n\t\t\tpadding 2px 10px 0 0\n\n\t\t&.local li\n\t\t\tpadding 0 30px 0 0\n\n\t.code\n\t\tfloat right\n\n\ta\n\t\tcolor #444\n\n\t\t&:hover\n\t\t\tcolor #222\n\n.footer-inner\n\twidth 930px\n\tmargin 0 auto\n\toverflow hidden\n\n.fork-me\n\tposition fixed\n\t*position absolute\n\ttop 0\n\tright 0\n\twidth 40px\n\theight 40px\n\toverflow hidden\n\ttext-indent 100%\n\twhite-space nowrap\n\tbackground #28545b url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnElEQVR4XqVSgQmEMAyszw/gCI7wK7iBblBHcISfxG6gG/gjuIGO0A3ygaYQCCG2HhweF+6aShsAcDcBJBpuvlwFagqGJwUf5EL6kgV2eEe2yIgc9QI73CMPs8AOywI7nHDSzCxYxcnJ6+hrFnQkJrb2nGclP3Fj+vf0IUV1AgCZHiS86lOObxD4qqSD5mtXmAq1e2fB3vqXact3f/JmXumJlVq1AAAAAElFTkSuQmCC\") 50% no-repeat\n\t*background-image url(ie/icon-fork.png)\n\n\t&:hover\n\t\tbackground-color #1f7f5c\n\n.skin dt\n.fork-me\n\t-webkit-transition background-color .2s\n\t-moz-transition background-color .2s\n\t-ms-transition background-color .2s\n\t-o-transition background-color .2s\n\ttransition background-color .2s"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/demo/css/normalize.css",
    "content": "/*! normalize.css v1.1.0 | MIT License | git.io/normalize */\n\n/* ==========================================================================\n   HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n    display: block;\n}\n\n/**\n * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.\n */\n\naudio,\ncanvas,\nvideo {\n    display: inline-block;\n    *display: inline;\n    *zoom: 1;\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n    display: none;\n    height: 0;\n}\n\n/**\n * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.\n * Known issue: no IE 6 support.\n */\n\n[hidden] {\n    display: none;\n}\n\n/* ==========================================================================\n   Base\n   ========================================================================== */\n\n/**\n * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using\n *    `em` units.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n    font-size: 100%; /* 1 */\n    -webkit-text-size-adjust: 100%; /* 2 */\n    -ms-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Address `font-family` inconsistency between `textarea` and other form\n * elements.\n */\n\nhtml,\nbutton,\ninput,\nselect,\ntextarea {\n    font-family: sans-serif;\n}\n\n/**\n * Address margins handled incorrectly in IE 6/7.\n */\n\nbody {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Links\n   ========================================================================== */\n\n/**\n * Address `outline` inconsistency between Chrome and other browsers.\n */\n\na:focus {\n    outline: thin dotted;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n    outline: 0;\n}\n\n/* ==========================================================================\n   Typography\n   ========================================================================== */\n\n/**\n * Address font sizes and margins set differently in IE 6/7.\n * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,\n * and Chrome.\n */\n\nh1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n}\n\nh2 {\n    font-size: 1.5em;\n    margin: 0.83em 0;\n}\n\nh3 {\n    font-size: 1.17em;\n    margin: 1em 0;\n}\n\nh4 {\n    font-size: 1em;\n    margin: 1.33em 0;\n}\n\nh5 {\n    font-size: 0.83em;\n    margin: 1.67em 0;\n}\n\nh6 {\n    font-size: 0.67em;\n    margin: 2.33em 0;\n}\n\n/**\n * Address styling not present in IE 7/8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n    border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.\n */\n\nb,\nstrong {\n    font-weight: bold;\n}\n\nblockquote {\n    margin: 1em 40px;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n    font-style: italic;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n * Known issue: no IE 6/7 normalization.\n */\n\nhr {\n    -moz-box-sizing: content-box;\n    box-sizing: content-box;\n    height: 0;\n}\n\n/**\n * Address styling not present in IE 6/7/8/9.\n */\n\nmark {\n    background: #ff0;\n    color: #000;\n}\n\n/**\n * Address margins set differently in IE 6/7.\n */\n\np,\npre {\n    margin: 1em 0;\n}\n\n/**\n * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.\n */\n\ncode,\nkbd,\npre,\nsamp {\n    font-family: monospace, serif;\n    _font-family: 'courier new', monospace;\n    font-size: 1em;\n}\n\n/**\n * Improve readability of pre-formatted text in all browsers.\n */\n\npre {\n    white-space: pre;\n    white-space: pre-wrap;\n    word-wrap: break-word;\n}\n\n/**\n * Address CSS quotes not supported in IE 6/7.\n */\n\nq {\n    quotes: none;\n}\n\n/**\n * Address `quotes` property not supported in Safari 4.\n */\n\nq:before,\nq:after {\n    content: '';\n    content: none;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n    font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n}\n\nsup {\n    top: -0.5em;\n}\n\nsub {\n    bottom: -0.25em;\n}\n\n/* ==========================================================================\n   Lists\n   ========================================================================== */\n\n/**\n * Address margins set differently in IE 6/7.\n */\n\ndl,\nmenu,\nol,\nul {\n    margin: 1em 0;\n}\n\ndd {\n    margin: 0 0 0 40px;\n}\n\n/**\n * Address paddings set differently in IE 6/7.\n */\n\nmenu,\nol,\nul {\n    padding: 0 0 0 40px;\n}\n\n/**\n * Correct list images handled incorrectly in IE 7.\n */\n\nnav ul,\nnav ol {\n    list-style: none;\n    list-style-image: none;\n}\n\n/* ==========================================================================\n   Embedded content\n   ========================================================================== */\n\n/**\n * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.\n * 2. Improve image quality when scaled in IE 7.\n */\n\nimg {\n    border: 0; /* 1 */\n    -ms-interpolation-mode: bicubic; /* 2 */\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n    overflow: hidden;\n}\n\n/* ==========================================================================\n   Figures\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.\n */\n\nfigure {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Forms\n   ========================================================================== */\n\n/**\n * Correct margin displayed oddly in IE 6/7.\n */\n\nform {\n    margin: 0;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n    border: 1px solid #c0c0c0;\n    margin: 0 2px;\n    padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct color not being inherited in IE 6/7/8/9.\n * 2. Correct text not wrapping in Firefox 3.\n * 3. Correct alignment displayed oddly in IE 6/7.\n */\n\nlegend {\n    border: 0; /* 1 */\n    padding: 0;\n    white-space: normal; /* 2 */\n    *margin-left: -7px; /* 3 */\n}\n\n/**\n * 1. Correct font size not being inherited in all browsers.\n * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,\n *    and Chrome.\n * 3. Improve appearance and consistency in all browsers.\n */\n\nbutton,\ninput,\nselect,\ntextarea {\n    font-size: 100%; /* 1 */\n    margin: 0; /* 2 */\n    vertical-align: baseline; /* 3 */\n    *vertical-align: middle; /* 3 */\n}\n\n/**\n * Address Firefox 3+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\nbutton,\ninput {\n    line-height: normal;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.\n * Correct `select` style inheritance in Firefox 4+ and Opera.\n */\n\nbutton,\nselect {\n    text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n * 4. Remove inner spacing in IE 7 without affecting normal text inputs.\n *    Known issue: inner spacing remains in IE 6.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    -webkit-appearance: button; /* 2 */\n    cursor: pointer; /* 3 */\n    *overflow: visible;  /* 4 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n    cursor: default;\n}\n\n/**\n * 1. Address box sizing set to content-box in IE 8/9.\n * 2. Remove excess padding in IE 8/9.\n * 3. Remove excess padding in IE 7.\n *    Known issue: excess padding remains in IE 6.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n    box-sizing: border-box; /* 1 */\n    padding: 0; /* 2 */\n    *height: 13px; /* 3 */\n    *width: 13px; /* 3 */\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n    -webkit-appearance: textfield; /* 1 */\n    -moz-box-sizing: content-box;\n    -webkit-box-sizing: content-box; /* 2 */\n    box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari 5 and Chrome\n * on OS X.\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\n}\n\n/**\n * Remove inner padding and border in Firefox 3+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n    border: 0;\n    padding: 0;\n}\n\n/**\n * 1. Remove default vertical scrollbar in IE 6/7/8/9.\n * 2. Improve readability and alignment in all browsers.\n */\n\ntextarea {\n    overflow: auto; /* 1 */\n    vertical-align: top; /* 2 */\n}\n\n/* ==========================================================================\n   Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n    border-collapse: collapse;\n    border-spacing: 0;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/demo/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n    <head>\n        <title>Checkboxes and radio buttons customization (jQuery and Zepto) plugin</title>\n        <meta charset=\"utf-8\">\n        <meta content=\"width=device-width\" name=\"viewport\">\n        <link href=\"./css/custom.css?v=1.0.2\" rel=\"stylesheet\">\n        <link href=\"../skins/all.css?v=1.0.2\" rel=\"stylesheet\">\n        <script src=\"./js/jquery.js\"></script>\n        <script src=\"../icheck.js?v=1.0.2\"></script>\n        <script src=\"./js/custom.min.js?v=1.0.2\"></script>\n    </head>\n\n    <body>\n        <div class=\"layout clear\">\n            <div class=\"header\">\n                <h1>super customized checkboxes and radio buttons for jQuery &amp; Zepto</h1>\n                <h3>iCheck\n                    <span>v1.0.2</span>\n                </h3>\n                <strong>@\n                    <a href=\"http://twitter.com/fronteed/\">Fronteed</a>\n                </strong>\n            </div>\n            <div class=\"features\">\n                <div class=\"arrows\">\n                    <div class=\"bottom\" data-to=\"demo\"></div>\n                </div>\n                <h2>Plugin features</h2>\n                <ul>\n                    <li>\n                        <strong>Identical inputs across different browsers and devices</strong> &mdash; both\n                        <span class=\"self\" data-to=\"download\">desktop and mobile</span>\n                    </li>\n                    <li>\n                        <strong>Touch devices support</strong> &mdash; iOS, Android, BlackBerry, Windows Phone, Amazon Kindle </li>\n                    <li>\n                        <strong>Keyboard accessible inputs</strong> &mdash;\n                        <span class=\"mark\">Tab</span>,\n                        <span class=\"mark\">Spacebar</span>,\n                        <span class=\"mark\">Arrow up/down</span> and other shortcuts </li>\n                    <li>\n                        <strong>Screenreader accessible inputs</strong> &mdash;\n                        <a href=\"https://developer.mozilla.org/en-US/docs/Accessibility/ARIA\" target=\"blank\">ARIA</a> attributes for VoiceOver and others </li>\n                    <li>\n                        <strong>Customization freedom</strong> &mdash; use any HTML and CSS to style inputs (try\n                        <span class=\"self\" data-to=\"skins\">6 Retina-ready skins</span>) </li>\n                    <li>\n                        <strong>jQuery and Zepto</strong> JavaScript libraries support from single file </li>\n                    <li>\n                        <strong>Lightweight size</strong> &mdash; 1 kb gzipped </li>\n                    <li class=\"offset\">\n                        <strong class=\"self\" data-to=\"options\">32 options</strong> to customize checkboxes and radio buttons </li>\n                    <li>\n                        <strong class=\"self\" data-to=\"callbacks\">11 callbacks</strong> to handle changes </li>\n                    <li>\n                        <strong class=\"self\" data-to=\"methods\">9 methods</strong> to make changes programmatically </li>\n                    <li> Saves changes to original inputs,\n                        <span class=\"self\" data-to=\"init\">works carefully</span> with any selectors </li>\n                </ul>\n            </div>\n            <div class=\"social clear\">\n                <ul class=\"left\">\n                    <li>\n                        <a href=\"http://github.com/fronteed/iCheck/\">Download latest version</a>\n                    </li>\n                </ul>\n                <ul class=\"right local\">\n                    <li>\n                        <a href=\"http://twitter.com/fronteed/\">Follow @fronteed</a>\n                    </li>\n                    <li>\n                        <a href=\"https://twitter.com/intent/tweet?text=Highly customizable checkboxes and radio buttons&amp;url=http://fronteed.com/iCheck/&amp;via=fronteed&amp;hashtags=jQuery,Zepto\">Share on Twitter</a>\n                    </li>\n                    <li>\n                        <a href=\"https://github.com/fronteed/iCheck\">Star on GitHub</a>\n                    </li>\n                </ul>\n            </div>\n            <div class=\"demo-holder\">\n                <h2 class=\"demo-title\">Demo</h2>\n                <div class=\"demo\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"features\"></div>\n                        <div class=\"bottom\" data-to=\"skins\"></div>\n                    </div>\n                    <div class=\"demo-list clear\">\n                        <ul>\n                            <li>\n                                <input tabindex=\"1\" type=\"checkbox\" id=\"input-1\">\n                                <label for=\"input-1\">Checkbox,\n                                    <span>#input-1</span>\n                                </label>\n                            </li>\n                            <li>\n                                <input tabindex=\"2\" type=\"checkbox\" id=\"input-2\" checked>\n                                <label for=\"input-2\">Checkbox,\n                                    <span>#input-2</span>\n                                </label>\n                            </li>\n                        </ul>\n                        <ul>\n                            <li>\n                                <input tabindex=\"3\" type=\"radio\" id=\"input-3\" name=\"demo-radio\">\n                                <label for=\"input-3\">Radio button,\n                                    <span>#input-3</span>\n                                </label>\n                            </li>\n                            <li>\n                                <input tabindex=\"4\" type=\"radio\" id=\"input-4\" name=\"demo-radio\" checked>\n                                <label for=\"input-4\">Radio button,\n                                    <span>#input-4</span>\n                                </label>\n                            </li>\n                        </ul>\n                        <script>\n                            $(document).ready(function()\n                            {\n                                var callbacks_list = $('.demo-callbacks ul');\n                                $('.demo-list input').on('ifCreated ifClicked ifChanged ifChecked ifUnchecked ifDisabled ifEnabled ifDestroyed', function(event)\n                                {\n                                    callbacks_list.prepend('<li><span>#' + this.id + '</span> is ' + event.type.replace('if', '').toLowerCase() + '</li>');\n                                }).iCheck(\n                                {\n                                    checkboxClass: 'icheckbox_square-blue',\n                                    radioClass: 'iradio_square-blue',\n                                    increaseArea: '20%'\n                                });\n                            });\n                        </script>\n                    </div>\n                    <dl class=\"demo-methods\">\n                        <dt>\n                            <span class=\"self do-check\">Add\n                                <span class=\"mark\">checked</span> state to 1 and 3 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-1, #input-3').iCheck('check');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-uncheck\">Remove\n                                <span class=\"mark\">checked</span> state from 1 and 3 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-1, #input-3').iCheck('uncheck');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-disable\">Add\n                                <span class=\"mark\">disabled</span> state to 2 and 4 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-2, #input-4').iCheck('disable');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-enable\">Remove\n                                <span class=\"mark\">disabled</span> state from 2 and 4 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-2, #input-4').iCheck('enable');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-destroy\">Remove all traces of iCheck</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('input').iCheck('destroy');\n</pre> </dd>\n                    </dl>\n                    <div class=\"demo-callbacks\">\n                        <h2>Callbacks</h2>\n                        <ul></ul>\n                    </div>\n                </div>\n            </div>\n            <div class=\"skins\">\n                <h2>Skins</h2>\n                <div class=\"skin skin-minimal\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"demo\"></div>\n                        <div class=\"bottom\" data-to=\"skin-square\"></div>\n                    </div>\n                    <h3>Minimal skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"5\" type=\"checkbox\" id=\"minimal-checkbox-1\">\n                                        <label for=\"minimal-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"6\" type=\"checkbox\" id=\"minimal-checkbox-2\" checked>\n                                        <label for=\"minimal-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"minimal-checkbox-disabled\" disabled>\n                                        <label for=\"minimal-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"minimal-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"minimal-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"7\" type=\"radio\" id=\"minimal-radio-1\" name=\"minimal-radio\">\n                                        <label for=\"minimal-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"8\" type=\"radio\" id=\"minimal-radio-2\" name=\"minimal-radio\" checked>\n                                        <label for=\"minimal-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"minimal-radio-disabled\" disabled>\n                                        <label for=\"minimal-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"minimal-radio-disabled-checked\" checked disabled>\n                                        <label for=\"minimal-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li class=\"active\" title=\"Black\"></li>\n                                        <li class=\"red\" title=\"Red\"></li>\n                                        <li class=\"green\" title=\"Green\"></li>\n                                        <li class=\"blue\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_minimal\"></div>\n                                        <div class=\"state iradio_minimal\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal hover\"></div>\n                                        <div class=\"state iradio_minimal hover\"></div> Hover </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal checked\"></div>\n                                        <div class=\"state iradio_minimal checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal disabled\"></div>\n                                        <div class=\"state iradio_minimal disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal checked disabled\"></div>\n                                        <div class=\"state iradio_minimal checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-minimal input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_minimal',\n                                        radioClass: 'iradio_minimal',\n                                        increaseArea: '20%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; minimal.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/minimal/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/minimal/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/minimal/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_minimal',\n    radioClass: 'iradio_minimal',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_minimal-red',\n    radioClass: 'iradio_minimal-red',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-square\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-minimal\"></div>\n                        <div class=\"bottom\" data-to=\"skin-flat\"></div>\n                    </div>\n                    <h3>Square skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"9\" type=\"checkbox\" id=\"square-checkbox-1\">\n                                        <label for=\"square-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"10\" type=\"checkbox\" id=\"square-checkbox-2\" checked>\n                                        <label for=\"square-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"square-checkbox-disabled\" disabled>\n                                        <label for=\"square-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"square-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"square-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"11\" type=\"radio\" id=\"square-radio-1\" name=\"square-radio\">\n                                        <label for=\"square-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"12\" type=\"radio\" id=\"square-radio-2\" name=\"square-radio\" checked>\n                                        <label for=\"square-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"square-radio-disabled\" disabled>\n                                        <label for=\"square-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"square-radio-disabled-checked\" checked disabled>\n                                        <label for=\"square-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li title=\"Black\"></li>\n                                        <li class=\"red\" title=\"Red\"></li>\n                                        <li class=\"green active\" title=\"Green\"></li>\n                                        <li class=\"blue\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_square-green\"></div>\n                                        <div class=\"state iradio_square-green\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green hover\"></div>\n                                        <div class=\"state iradio_square-green hover\"></div> Hover </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green checked\"></div>\n                                        <div class=\"state iradio_square-green checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green disabled\"></div>\n                                        <div class=\"state iradio_square-green disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green checked disabled\"></div>\n                                        <div class=\"state iradio_square-green checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-square input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_square-green',\n                                        radioClass: 'iradio_square-green',\n                                        increaseArea: '20%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; square.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/square/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/square/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/square/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_square',\n    radioClass: 'iradio_square',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_square-red',\n    radioClass: 'iradio_square-red',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-flat\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-square\"></div>\n                        <div class=\"bottom\" data-to=\"skin-line\"></div>\n                    </div>\n                    <h3>Flat skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"13\" type=\"checkbox\" id=\"flat-checkbox-1\">\n                                        <label for=\"flat-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"14\" type=\"checkbox\" id=\"flat-checkbox-2\" checked>\n                                        <label for=\"flat-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"flat-checkbox-disabled\" disabled>\n                                        <label for=\"flat-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"flat-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"flat-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"15\" type=\"radio\" id=\"flat-radio-1\" name=\"flat-radio\">\n                                        <label for=\"flat-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"16\" type=\"radio\" id=\"flat-radio-2\" name=\"flat-radio\" checked>\n                                        <label for=\"flat-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"flat-radio-disabled\" disabled>\n                                        <label for=\"flat-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"flat-radio-disabled-checked\" checked disabled>\n                                        <label for=\"flat-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li title=\"Black\"></li>\n                                        <li class=\"red active\" title=\"Red\"></li>\n                                        <li class=\"green\" title=\"Green\"></li>\n                                        <li class=\"blue\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red\"></div>\n                                        <div class=\"state iradio_flat-red\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red checked\"></div>\n                                        <div class=\"state iradio_flat-red checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red disabled\"></div>\n                                        <div class=\"state iradio_flat-red disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red checked disabled\"></div>\n                                        <div class=\"state iradio_flat-red checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-flat input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_flat-red',\n                                        radioClass: 'iradio_flat-red'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; square.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/flat/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/flat/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/flat/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_flat',\n    radioClass: 'iradio_flat'\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_flat-red',\n    radioClass: 'iradio_flat-red'\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-line\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-flat\"></div>\n                        <div class=\"bottom\" data-to=\"skin-polaris\"></div>\n                    </div>\n                    <h3>Line skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"17\" type=\"checkbox\" id=\"line-checkbox-1\">\n                                        <label for=\"line-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"18\" type=\"checkbox\" id=\"line-checkbox-2\" checked>\n                                        <label for=\"line-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"line-checkbox-disabled\" disabled>\n                                        <label for=\"line-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"line-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"line-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"19\" type=\"radio\" id=\"line-radio-1\" name=\"line-radio\">\n                                        <label for=\"line-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"20\" type=\"radio\" id=\"line-radio-2\" name=\"line-radio\" checked>\n                                        <label for=\"line-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"line-radio-disabled\" disabled>\n                                        <label for=\"line-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"line-radio-disabled-checked\" checked disabled>\n                                        <label for=\"line-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li title=\"Black\"></li>\n                                        <li class=\"red\" title=\"Red\"></li>\n                                        <li class=\"green\" title=\"Green\"></li>\n                                        <li class=\"blue active\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue\">\n                                            <div class=\"icheck_line-icon\"></div> Normal </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue hover\">\n                                            <div class=\"icheck_line-icon\"></div> Hover </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue checked\">\n                                            <div class=\"icheck_line-icon\"></div> Checked </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue disabled\">\n                                            <div class=\"icheck_line-icon\"></div> Disabled </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue checked disabled\">\n                                            <div class=\"icheck_line-icon\"></div> Disabled &amp; checked </div>\n                                    </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-line input').each(function()\n                                    {\n                                        var self = $(this),\n                                            label = self.next(),\n                                            label_text = label.text();\n                                        label.remove();\n                                        self.iCheck(\n                                        {\n                                            checkboxClass: 'icheckbox_line-blue',\n                                            radioClass: 'iradio_line-blue',\n                                            insert: '<div class=\"icheck_line-icon\"></div>' + label_text\n                                        });\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; line.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/line/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/line/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/line/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes, radio buttons and labels to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;label>Checkbox 1&lt;/label>\n\n&lt;input type=\"checkbox\" checked>\n&lt;label>Checkbox 2&lt;/label>\n\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;label>Radio button 1&lt;/label>\n\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n&lt;label>Radio button 2&lt;/label>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').each(function(){\n    var self = $(this),\n      label = self.next(),\n      label_text = label.text();\n\n    label.remove();\n    self.iCheck({\n      checkboxClass: 'icheckbox_line',\n      radioClass: 'iradio_line',\n      insert: '&lt;div class=\"icheck_line-icon\">&lt;/div>' + label_text\n    });\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').each(function(){\n    var self = $(this),\n      label = self.next(),\n      label_text = label.text();\n\n    label.remove();\n    self.iCheck({\n      checkboxClass: 'icheckbox_line-red',\n      radioClass: 'iradio_line-red',\n      insert: '&lt;div class=\"icheck_line-icon\">&lt;/div>' + label_text\n    });\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-polaris\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-line\"></div>\n                        <div class=\"bottom\" data-to=\"skin-futurico\"></div>\n                    </div>\n                    <h3>Polaris skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"21\" type=\"checkbox\" id=\"polaris-checkbox-1\">\n                                        <label for=\"polaris-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"22\" type=\"checkbox\" id=\"polaris-checkbox-2\" checked>\n                                        <label for=\"polaris-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"polaris-checkbox-disabled\" disabled>\n                                        <label for=\"polaris-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"polaris-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"polaris-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"23\" type=\"radio\" id=\"polaris-radio-1\" name=\"polaris-radio\">\n                                        <label for=\"polaris-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"24\" type=\"radio\" id=\"polaris-radio-2\" name=\"polaris-radio\" checked>\n                                        <label for=\"polaris-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"polaris-radio-disabled\" disabled>\n                                        <label for=\"polaris-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"polaris-radio-disabled-checked\" checked disabled>\n                                        <label for=\"polaris-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_polaris\"></div>\n                                        <div class=\"state iradio_polaris\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris hover\"></div>\n                                        <div class=\"state iradio_polaris hover\"></div> Hover </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris checked\"></div>\n                                        <div class=\"state iradio_polaris checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris disabled\"></div>\n                                        <div class=\"state iradio_polaris disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris checked disabled\"></div>\n                                        <div class=\"state iradio_polaris checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-polaris input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_polaris',\n                                        radioClass: 'iradio_polaris',\n                                        increaseArea: '-10%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Copy\n                                    <span class=\"mark\">/skins/polaris/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/polaris/polaris.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_polaris',\n    radioClass: 'iradio_polaris',\n    increaseArea: '-10%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-futurico\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-polaris\"></div>\n                        <div class=\"bottom\" data-to=\"usage\"></div>\n                    </div>\n                    <h3>Futurico skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"25\" type=\"checkbox\" id=\"futurico-checkbox-1\">\n                                        <label for=\"futurico-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"26\" type=\"checkbox\" id=\"futurico-checkbox-2\" checked>\n                                        <label for=\"futurico-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"futurico-checkbox-disabled\" disabled>\n                                        <label for=\"futurico-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"futurico-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"futurico-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"27\" type=\"radio\" id=\"futurico-radio-1\" name=\"futurico-radio\">\n                                        <label for=\"futurico-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"28\" type=\"radio\" id=\"futurico-radio-2\" name=\"futurico-radio\" checked>\n                                        <label for=\"futurico-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"futurico-radio-disabled\" disabled>\n                                        <label for=\"futurico-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"futurico-radio-disabled-checked\" checked disabled>\n                                        <label for=\"futurico-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_futurico\"></div>\n                                        <div class=\"state iradio_futurico\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_futurico checked\"></div>\n                                        <div class=\"state iradio_futurico checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_futurico disabled\"></div>\n                                        <div class=\"state iradio_futurico disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_futurico checked disabled\"></div>\n                                        <div class=\"state iradio_futurico checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-futurico input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_futurico',\n                                        radioClass: 'iradio_futurico',\n                                        increaseArea: '20%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Copy\n                                    <span class=\"mark\">/skins/futurico/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/futurico/futurico.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_futurico',\n    radioClass: 'iradio_futurico',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skins-info\">\n                    <p>All skins (except Line) are transparent, you may use them on any background.</p>\n                    <p>\n                        <a href=\"http://designmodo.com/square/?u=718\" target=\"blank\">Square</a>,\n                        <a href=\"http://designmodo.com/flat/?u=718\" target=\"blank\">Flat</a>,\n                        <a href=\"http://designmodo.com/?u=718\" target=\"blank\">Polaris</a> and\n                        <a href=\"http://designmodo.com/futuricopro/?u=718\" target=\"blank\">Futurico</a> skins are based on\n                        <a href=\"http://designmodo.com/shop/?u=718\" target=\"blank\">Designmodo's UI packs</a>.</p>\n                    <p class=\"skins-banner\">\n                        <a href=\"http://designmodo.com/shop/?u=718\" target=\"blank\">Awesome UI packs</a>\n                    </p>\n                </div>\n            </div>\n            <div class=\"usage\">\n                <div class=\"arrows\">\n                    <div class=\"top\" data-to=\"skin-futurico\"></div>\n                    <div class=\"bottom\" data-to=\"comparison\"></div>\n                </div>\n                <h2>Simple usage</h2>\n                <div class=\"usage-inner\">\n                    <p> iCheck plugin works with checkboxes and radio buttons like a constructor.\n                        <br>\n                        <strong>It wraps each input with a div</strong>, which may be customized by you or using one of the\n                        <span class=\"self\" data-to=\"skins\">available skins</span>.\n                        <br>You may also place inside that div some HTML code or text using\n                        <span class=\"mark\">insert</span> option. </p>\n                    <p class=\"offset\">For this HTML:</p> <pre class=\"markup\">\n&lt;label>\n  &lt;input type=\"checkbox\" name=\"quux[1]\" disabled>\n  Foo\n&lt;/label>\n\n&lt;label for=\"baz[1]\">Bar&lt;/label>\n&lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[1]\" checked>\n\n&lt;label for=\"baz[2]\">Bar&lt;/label>\n&lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[2]\">\n</pre>\n                    <p class=\"offset\">With default options you'll get nearly this:</p> <pre class=\"markup\">\n&lt;label>\n  &lt;div class=\"icheckbox disabled\">\n    &lt;input type=\"checkbox\" name=\"quux[1]\" disabled>\n  &lt;/div>\n  Foo\n&lt;/label>\n\n&lt;label for=\"baz[1]\">Bar&lt;/label>\n&lt;div class=\"iradio checked\">\n  &lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[1]\" checked>\n&lt;/div>\n\n&lt;label for=\"baz[2]\">Bar&lt;/label>\n&lt;div class=\"iradio\">\n  &lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[2]\">\n&lt;/div>\n</pre>\n                    <p>\n                        <strong>By default, iCheck doesn't provide any CSS styles for wrapper divs</strong> (if you don't use\n                        <span class=\"self\" data-to=\"skins\">skins</span>).</p>\n                    <h4 class=\"options\">Options</h4>\n                    <p>These options are default:</p> <pre class=\"markup\">\n{\n  <span class=\"comment\">// 'checkbox' or 'radio' to style only checkboxes or radio buttons, both by default</span>\n  handle: '',\n\n  <span class=\"comment\">// base class added to customized checkboxes</span>\n  checkboxClass: 'icheckbox',\n\n  <span class=\"comment\">// base class added to customized radio buttons</span>\n  radioClass: 'iradio',\n\n  <span class=\"comment\">// class added on checked state (input.checked = true)</span>\n  checkedClass: 'checked',\n\n    <span class=\"comment\">// if not empty, used instead of 'checkedClass' option (input type specific)</span>\n    checkedCheckboxClass: '',\n    checkedRadioClass: '',\n\n  <span class=\"comment\">// if not empty, added as class name on unchecked state (input.checked = false)</span>\n  uncheckedClass: '',\n\n    <span class=\"comment\">// if not empty, used instead of 'uncheckedClass' option (input type specific)</span>\n    uncheckedCheckboxClass: '',\n    uncheckedRadioClass: '',\n\n  <span class=\"comment\">// class added on disabled state (input.disabled = true)</span>\n  disabledClass: 'disabled',\n\n    <span class=\"comment\">// if not empty, used instead of 'disabledClass' option (input type specific)</span>\n    disabledCheckboxClass: '',\n    disabledRadioClass: '',\n\n  <span class=\"comment\">// if not empty, added as class name on enabled state (input.disabled = false)</span>\n  enabledClass: '',\n\n    <span class=\"comment\">// if not empty, used instead of 'enabledClass' option (input type specific)</span>\n    enabledCheckboxClass: '',\n    enabledRadioClass: '',\n\n  <span class=\"comment\">// class added on <span class=\"self\" data-to=\"indeterminate\">indeterminate state</span> (input.indeterminate = true)</span>\n  indeterminateClass: 'indeterminate',\n\n    <span class=\"comment\">// if not empty, used instead of 'indeterminateClass' option (input type specific)</span>\n    indeterminateCheckboxClass: '',\n    indeterminateRadioClass: '',\n\n  <span class=\"comment\">// if not empty, added as class name on determinate state (input.indeterminate = false)</span>\n  determinateClass: '',\n\n    <span class=\"comment\">// if not empty, used instead of 'determinateClass' option (input type specific)</span>\n    determinateCheckboxClass: '',\n    determinateRadioClass: '',\n\n  <span class=\"comment\">// class added on hover state (pointer is moved onto input)</span>\n  hoverClass: 'hover',\n\n  <span class=\"comment\">// class added on focus state (input has gained focus)</span>\n  focusClass: 'focus',\n\n  <span class=\"comment\">// class added on active state (mouse button is pressed on input)</span>\n  activeClass: 'active',\n\n  <span class=\"comment\">// adds hoverClass to customized input on label hover and labelHoverClass to label on input hover</span>\n  labelHover: true,\n\n    <span class=\"comment\">// class added to label if labelHover set to true</span>\n    labelHoverClass: 'hover',\n\n  <span class=\"comment\">// increase clickable area by given % (negative number to decrease)</span>\n  increaseArea: '',\n\n  <span class=\"comment\">// true to set 'pointer' CSS cursor over enabled inputs and 'default' over disabled</span>\n  cursor: false,\n\n  <span class=\"comment\">// set true to inherit original input's class name</span>\n  inheritClass: false,\n\n  <span class=\"comment\">// if set to true, input's id is prefixed with 'iCheck-' and attached</span>\n  inheritID: false,\n\n  <span class=\"comment\">// set true to activate ARIA support</span>\n  aria: false,\n\n  <span class=\"comment\">// add HTML code or text inside customized input</span>\n  insert: ''\n}\n</pre>\n                    <p>There's no need to copy and paste all of them, you can just mention the ones you need:</p> <pre class=\"markup\">\n$('input').iCheck({\n  labelHover: false,\n  cursor: true\n});\n</pre>\n                    <p>You can choose any class names and slyle them as you want.</p>\n                    <h4 class=\"init\">Initialize</h4>\n                    <p>Just include\n                        <span class=\"mark\">icheck.js</span> after\n                        <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                        <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]).</p>\n                    <p>iCheck supports any selectors, but handles only checkboxes and radio buttons:</p> <pre class=\"markup\">\n<span class=\"comment\">// customize all inputs (will search for checkboxes and radio buttons)</span>\n$('input').iCheck();\n\n<span class=\"comment\">// handle inputs only inside $('.block')</span>\n$('.block input').iCheck();\n\n<span class=\"comment\">// handle only checkboxes inside $('.test')</span>\n$('.test input').iCheck({\n  handle: 'checkbox'\n});\n\n<span class=\"comment\">// handle .vote class elements (will search inside the element, if it's not an input)</span>\n$('.vote').iCheck();\n\n<span class=\"comment\">// you can also change options after inputs are customized</span>\n$('input.some').iCheck({\n  <span class=\"comment\">// different options</span>\n});\n</pre>\n                    <h4 class=\"indeterminate\">Indeterminate</h4>\n                    <p>HTML5 allows specifying\n                        <a href=\"http://css-tricks.com/indeterminate-checkboxes/\" target=\"blank\">indeterminate</a> (\"partially\" checked) state for checkboxes. iCheck supports it for both checkboxes and radio buttons.</p>\n                    <p>You can make an input indeterminate through HTML using additional attributes (supported by iCheck). Both do the same job, but\n                        <span class=\"mark\">indeterminate=\"true\"</span> may not work in some browsers (like IE7):</p> <pre class=\"markup\">\n<span class=\"comment\">&lt;!-- indeterminate=\"true\" --></span>\n&lt;input type=\"checkbox\" indeterminate=\"true\">\n&lt;input type=\"radio\" indeterminate=\"true\">\n\n<span class=\"comment\">&lt;!-- determinate=\"false\" --></span>\n&lt;input type=\"checkbox\" determinate=\"false\">\n&lt;input type=\"radio\" determinate=\"false\">\n</pre>\n                    <p>\n                        <span class=\"mark\">indeterminate</span> and\n                        <span class=\"mark\">determinate</span>\n                        <span class=\"self\" data-to=\"methods\">methods</span> can be used to toggle indeterminate state.</p>\n                    <h4 class=\"callbacks\">Callbacks</h4>\n                    <p class=\"callbacks-info\">iCheck provides plenty callbacks, which may be used to handle changes.</p>\n                    <table>\n                        <thead>\n                            <tr>\n                                <th>Callback name</th>\n                                <td>When used</td>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <th>ifClicked</th>\n                                <td>user clicked on a customized input or an assigned label</td>\n                            </tr>\n                            <tr>\n                                <th>ifChanged</th>\n                                <td>input's\n                                    <span class=\"mark\">checked</span>,\n                                    <span class=\"mark\">disabled</span> or\n                                    <span class=\"mark\">indeterminate</span> state is changed</td>\n                            </tr>\n                            <tr>\n                                <th>ifChecked</th>\n                                <td>input's state is changed to\n                                    <span class=\"mark\">checked</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <th>ifUnchecked</th>\n                                <td>\n                                    <span class=\"mark\">checked</span> state is removed</td>\n                            </tr>\n                            <tr>\n                                <th>ifToggled</th>\n                                <td>input's\n                                    <span class=\"mark\">checked</span> state is changed</td>\n                            </tr>\n                            <tr>\n                                <th>ifDisabled</th>\n                                <td>input's state is changed to\n                                    <span class=\"mark\">disabled</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <th>ifEnabled</th>\n                                <td>\n                                    <span class=\"mark\">disabled</span> state is removed</td>\n                            </tr>\n                            <tr>\n                                <th>ifIndeterminate</th>\n                                <td>input's state is changed to\n                                    <span class=\"mark\">indeterminate</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <th>ifDeterminate</th>\n                                <td>\n                                    <span class=\"mark\">indeterminate</span> state is removed</td>\n                            </tr>\n                            <tr>\n                                <th>ifCreated</th>\n                                <td>input is just customized</td>\n                            </tr>\n                            <tr>\n                                <th>ifDestroyed</th>\n                                <td>customization is just removed</td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <p>Use\n                        <span class=\"mark\">on()</span> method to bind them to inputs:\n                        <p> <pre class=\"markup\">\n$('input').on('ifChecked', function(event){\n  alert(event.type + ' callback');\n});\n</pre>\n                            <p>\n                                <span class=\"mark\">ifCreated</span> callback should be binded before plugin init.</p>\n                            <h4 class=\"methods\">Methods</h4>\n                            <p class=\"methods-info\">These methods can be used to make changes programmatically (any selectors can be used):</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('check');</span> &mdash; change input's state to\n                                <span class=\"mark\">checked</span>\n                            </p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('uncheck');</span> &mdash; remove\n                                <span class=\"mark\">checked</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('toggle');</span> &mdash; toggle\n                                <span class=\"mark\">checked</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('disable');</span> &mdash; change input's state to\n                                <span class=\"mark\">disabled</span>\n                            </p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('enable');</span> &mdash; remove\n                                <span class=\"mark\">disabled</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('indeterminate');</span> &mdash; change input's state to\n                                <span class=\"mark\">indeterminate</span>\n                            </p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('determinate');</span> &mdash; remove\n                                <span class=\"mark\">indeterminate</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('update');</span> &mdash; apply input changes, which were done outside the plugin</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('destroy');</span> &mdash; remove all traces of iCheck</p>\n                            <p class=\"methods-callback\">You may also specify some function, that will be executed on each method call:</p> <pre class=\"markup\">\n$('input').iCheck('check', function(){\n  alert('Well done, Sir');\n});\n</pre>\n                            <p class=\"issue-tracker\">Feel free to\n                                <a href=\"http://github.com/fronteed/iCheck/\">fork and submit pull-request</a> or\n                                <a href=\"http://github.com/fronteed/iCheck/issues\">submit an issue</a> if you find something not working.</p>\n                </div>\n            </div>\n            <div class=\"benefits comparison\">\n                <div class=\"arrows\">\n                    <div class=\"top\" data-to=\"usage\"></div>\n                    <div class=\"bottom\" data-to=\"download\"></div>\n                </div>\n                <h2>Comparison</h2>\n                <div class=\"benefits-inner\">\n                    <p>iCheck is created to avoid routine of reinventing the wheel when working with checkboxes and radio buttons. It provides an expected identical result for the huge number of browsers, devices and their versions. Callbacks and methods\n                        can be used to easily handle and make changes at customized inputs.</p>\n                    <p>There are some CSS3 ways available to style checkboxes and radio buttons, like\n                        <a href=\"http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/quick-tip-easy-css3-checkboxes-and-radio-buttons/\" target=\"blank\">this one</a>. You have to know about some of the disadvantages of similar methods:</p>\n                    <ul>\n                        <li> &mdash; inputs are keyboard inaccessible, since\n                            <span class=\"mark\">display: none</span> or\n                            <span class=\"mark\">visibility: hidden</span> used to hide them </li>\n                        <li> &mdash; poor browser support </li>\n                        <li> &mdash; multiple bugs on mobile devices </li>\n                        <li> &mdash; tricky, harder to maintain CSS code </li>\n                        <li> &mdash; JavaScript is still needed to fix specific issues </li>\n                    </ul>\n                    <p>While CSS3 method is quite limited solution, iCheck is made to be an everyday replacement covering most of the tasks.</p>\n                </div>\n            </div>\n            <div class=\"browsers\">\n                <h2>Browser support</h2>\n                <div class=\"browsers-inner\">\n                    <p>iCheck is verified to work in Internet Explorer 6+, Firefox 2+, Opera 9+, Google Chrome and Safari browsers. Should also work in many others.</p>\n                    <p>Mobile browsers (like Opera mini, Chrome mobile, Safari mobile, Android browser, Silk and others) are also supported. Tested on iOS (iPad, iPhone, iPod), Android, BlackBerry and Windows Phone devices.</p>\n                </div>\n            </div>\n            <div class=\"download\">\n                <a href=\"http://github.com/fronteed/iCheck/\">Download plugin</a>\n            </div>\n            <div class=\"license\">iCheck plugin is released under the\n                <a href=\"http://en.wikipedia.org/wiki/MIT_License\" target=\"blank\">MIT License</a>. Feel free to use it in personal and commercial projects.</div>\n        </div>\n        <div class=\"footer\">\n            <div class=\"footer-inner clear\">\n                <ul class=\"local\">\n                    <li>\n                        <a href=\"https://github.com/fronteed/iCheck\">Star on Github</a>\n                    </li>\n                    <li>\n                        <a href=\"https://twitter.com/intent/tweet?text=Highly customizable checkboxes and radio buttons&amp;url=http://fronteed.com/iCheck/&amp;via=fronteed&amp;hashtags=jQuery,Zepto\">Share on Twitter</a>\n                    </li>\n                    <li>\n                        <a href=\"http://twitter.com/fronteed/\">Follow @fronteed</a>\n                    </li>\n                </ul>\n                <div class=\"code\"> Created by\n                    <a href=\"http://fronteed.com/\">Damir Sultanov</a>\n                </div>\n            </div>\n        </div>\n        <a href=\"http://github.com/fronteed/iCheck/\" class=\"fork-me\">Fork me on GitHub</a>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/demo/js/custom.js",
    "content": "$(document).ready(function() {\n  var hash = window.location.hash.replace('#', '');\n\n  if (hash && $('.' + hash).length) {\n    var point = $('.' + hash).offset().top - 40;\n\n    if (window.Zepto) {\n      window.scrollTo(0, point);\n    } else {\n      $(window).scrollTop($('.' + hash).offset().top - 40);\n    };\n  };\n\n  $('.skin dt').click(function() {\n    $(this).siblings().removeClass('selected').end().prev('dd').andSelf().addClass('selected');\n  });\n\n  $('.arrows .top, .arrows .bottom, .features .self, .skins-info .self, .usage .self').click(function(event) {\n    var target = $(this).data('to'),\n      target_offset = $('.' + target).offset().top;\n\n    event.preventDefault();\n    window.location.hash = target;\n\n    if (window.Zepto) {\n      window.scrollTo(0, target_offset - 40);\n    } else {\n      $('html, body').stop().animate({scrollTop: target_offset - 40}, 600);\n    };\n  });\n\n  $('.colors li').click(function() {\n    var self = $(this);\n\n    if (!self.hasClass('active')) {\n      self.siblings().removeClass('active');\n\n      var skin = self.closest('.skin'),\n        color = self.attr('class') ? '-' + self.attr('class') : '',\n        checkbox = skin.data('icheckbox'),\n        radio = skin.data('iradio'),\n        checkbox_default = 'icheckbox_minimal',\n        radio_default = 'iradio_minimal';\n\n      if (skin.hasClass('skin-square')) {\n        checkbox_default = 'icheckbox_square', radio_default = 'iradio_square';\n        checkbox == undefined && (checkbox = 'icheckbox_square-green', radio = 'iradio_square-green');\n      };\n\n      if (skin.hasClass('skin-flat')) {\n        checkbox_default = 'icheckbox_flat', radio_default = 'iradio_flat';\n        checkbox == undefined && (checkbox = 'icheckbox_flat-red', radio = 'iradio_flat-red');\n      };\n\n      if (skin.hasClass('skin-line')) {\n        checkbox_default = 'icheckbox_line', radio_default = 'iradio_line';\n        checkbox == undefined && (checkbox = 'icheckbox_line-blue', radio = 'iradio_line-blue');\n      };\n\n      checkbox == undefined && (checkbox = checkbox_default, radio = radio_default);\n\n      skin.find('input, .skin-states .state').each(function() {\n        var element = $(this).hasClass('state') ? $(this) : $(this).parent(),\n          element_class = element.attr('class').replace(checkbox, checkbox_default + color).replace(radio, radio_default + color);\n\n        element.attr('class', element_class);\n      });\n\n      skin.data('icheckbox', checkbox_default + color);\n      skin.data('iradio', radio_default + color);\n      self.addClass('active');\n    };\n  });\n\n  $('.demo-methods dt .self').click(function() {\n    var self = $(this),\n      self_class = self.attr('class').replace('self ', '');\n\n    switch (self_class) {\n      case 'do-check':\n        $('#input-1, #input-3').iCheck('check');\n        break;\n      case 'do-uncheck':\n        $('#input-1, #input-3').iCheck('uncheck');\n        break;\n      case 'do-disable':\n        $('#input-2, #input-4').iCheck('disable');\n        break;\n      case 'do-enable':\n        $('#input-2, #input-4').iCheck('enable');\n        break;\n      case 'do-destroy':\n        $('.demo-list input').iCheck('destroy');\n        break;\n      default:\n        var text = self.hasClass('active') ? 'show code' : 'hide code';\n\n        self.toggleClass('active').text(text);\n\n        if (window.Zepto) {\n          $(this).closest('dt').next().toggle();\n        } else {\n          $(this).closest('dt').next().slideToggle(200);\n        };\n\n        break;\n    };\n  });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/demo/js/jquery.js",
    "content": "/*!\n * jQuery v1.8.3 jquery.com | jquery.org/license\n */\n(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i=\"data-\"+n.replace(P,\"-$1\").toLowerCase();r=e.getAttribute(i);if(typeof r==\"string\"){try{r=r===\"true\"?!0:r===\"false\"?!1:r===\"null\"?null:+r+\"\"===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t===\"data\"&&v.isEmptyObject(e[t]))continue;if(t!==\"toJSON\")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t==\"string\"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split(\"|\"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n===\"object\"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n===\"input\"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n===\"option\"?t.selected=e.defaultSelected:n===\"input\"||n===\"textarea\"?t.defaultValue=e.defaultValue:n===\"script\"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!=\"undefined\"?e.getElementsByTagName(\"*\"):typeof e.querySelectorAll!=\"undefined\"?e.querySelectorAll(\"*\"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,\"display\")===\"none\"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,\"olddisplay\"),t?(!i[s]&&n.style.display===\"none\"&&(n.style.display=\"\"),n.style.display===\"\"&&Gt(n)&&(i[s]=v._data(n,\"olddisplay\",nn(n.nodeName)))):(r=Dt(n,\"display\"),!i[s]&&r!==\"none\"&&v._data(n,\"olddisplay\",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display===\"none\"||n.style.display===\"\")n.style.display=t?i[s]||\"\":\"none\"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||\"px\"):t}function en(e,t,n,r){var i=n===(r?\"border\":\"content\")?4:t===\"width\"?1:0,s=0;for(;i<4;i+=2)n===\"margin\"&&(s+=v.css(e,n+$t[i],!0)),r?(n===\"content\"&&(s-=parseFloat(Dt(e,\"padding\"+$t[i]))||0),n!==\"margin\"&&(s-=parseFloat(Dt(e,\"border\"+$t[i]+\"Width\"))||0)):(s+=parseFloat(Dt(e,\"padding\"+$t[i]))||0,n!==\"padding\"&&(s+=parseFloat(Dt(e,\"border\"+$t[i]+\"Width\"))||0));return s}function tn(e,t,n){var r=t===\"width\"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,\"boxSizing\")===\"border-box\";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?\"border\":\"content\"),i)+\"px\"}function nn(e){if(Wt[e])return Wt[e];var t=v(\"<\"+e+\">\").appendTo(i.body),n=t.css(\"display\");t.remove();if(n===\"none\"||n===\"\"){Pt=i.body.appendChild(Pt||v.extend(i.createElement(\"iframe\"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(\"<!doctype html><html><body>\"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,\"display\"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+\"[\"+(typeof i==\"object\"?t:\"\")+\"]\",i,n,r)});else if(!n&&v.type(t)===\"object\")for(i in t)fn(e+\"[\"+i+\"]\",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!=\"string\"&&(n=t,t=\"*\");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\\+/.test(r),s&&(r=r.substr(1)||\"*\"),i=e[r]=e[r]||[],i[s?\"unshift\":\"push\"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u==\"string\"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o[\"*\"]&&(u=kn(e,n,r,i,\"*\",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]===\"*\")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader(\"content-type\"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+\" \"+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!==\"*\"){if(u!==\"*\"&&u!==i){n=a[u+\" \"+i]||a[\"* \"+i];if(!n)for(r in a){s=r.split(\" \");if(s[1]===i){n=a[u+\" \"+s[0]]||a[\"* \"+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e[\"throws\"])t=n(t);else try{t=n(t)}catch(l){return{state:\"parsererror\",error:n?l:\"No conversion from \"+u+\" to \"+i}}}u=i}return{state:\"success\",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn[\"*\"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&\"expand\"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,\"fx\"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,\"fx\").length||l.empty.fire()})})),e.nodeType===1&&(\"height\"in t||\"width\"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,\"display\")===\"inline\"&&v.css(e,\"float\")===\"none\"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)===\"inline\"?p.display=\"inline-block\":p.zoom=1)),n.overflow&&(p.overflow=\"hidden\",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s===\"toggle\";if(s===(g?\"hide\":\"show\"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,\"fxshow\")||v._data(e,\"fxshow\",{}),\"hidden\"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,\"fxshow\",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i===\"width\"||i===\"height\"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r[\"margin\"+n]=r[\"padding\"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source,g=/\\S/,y=/\\s+/,b=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,w=/^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/,E=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,S=/^[\\],:{}\\s]*$/,x=/(?:^|:|,)(?:\\s*\\[)+/g,T=/\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g,N=/\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/g,C=/^-ms-/,k=/-([\\da-z])/gi,L=function(e,t){return(t+\"\").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener(\"DOMContentLoaded\",A,!1),v.ready()):i.readyState===\"complete\"&&(i.detachEvent(\"onreadystatechange\",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e==\"string\"){e.charAt(0)===\"<\"&&e.charAt(e.length-1)===\">\"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:\"\",jquery:\"1.8.3\",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t===\"find\"?r.selector=this.selector+(this.selector?\" \":\"\")+n:t&&(r.selector=this.selector+\".\"+t+\"(\"+n+\")\"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),\"slice\",l.call(arguments).join(\",\"))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u==\"boolean\"&&(l=u,u=arguments[1]||{},a=2),typeof u!=\"object\"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger(\"ready\").off(\"ready\")},isFunction:function(e){return v.type(e)===\"function\"},isArray:Array.isArray||function(e){return v.type(e)===\"array\"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||\"object\"},isPlainObject:function(e){if(!e||v.type(e)!==\"object\"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,\"constructor\")&&!p.call(e.constructor.prototype,\"isPrototypeOf\"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!=\"string\"?null:(typeof t==\"boolean\"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!=\"string\")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,\"@\").replace(N,\"]\").replace(x,\"\")))return(new Function(\"return \"+t))();v.error(\"Invalid JSON: \"+t)},parseXML:function(n){var r,i;if(!n||typeof n!=\"string\")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,\"text/xml\")):(r=new ActiveXObject(\"Microsoft.XMLDOM\"),r.async=\"false\",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName(\"parsererror\").length)&&v.error(\"Invalid XML: \"+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,\"ms-\").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call(\"\\ufeff\\u00a0\")?function(e){return e==null?\"\":d.call(e)}:function(e){return e==null?\"\":(e+\"\").replace(b,\"\")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n===\"string\"||n===\"function\"||n===\"regexp\"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r==\"number\")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a==\"number\"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n==\"string\"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r==\"object\"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState===\"complete\")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener(\"DOMContentLoaded\",A,!1),e.addEventListener(\"load\",v.ready,!1);else{i.attachEvent(\"onreadystatechange\",A),e.attachEvent(\"onload\",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll(\"left\")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each(\"Boolean Number String Function Array Date RegExp Object\".split(\" \"),function(e,t){O[\"[object \"+t+\"]\"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e==\"string\"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i===\"function\"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!==\"string\"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[[\"resolve\",\"done\",v.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",v.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",v.Callbacks(\"memory\")]],n=\"pending\",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+\"With\"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+\"With\"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement(\"div\");p.setAttribute(\"className\",\"t\"),p.innerHTML=\"  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\",n=p.getElementsByTagName(\"*\"),r=p.getElementsByTagName(\"a\")[0];if(!n||!r||!n.length)return{};s=i.createElement(\"select\"),o=s.appendChild(i.createElement(\"option\")),u=p.getElementsByTagName(\"input\")[0],r.style.cssText=\"top:1px;float:left;opacity:.5\",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName(\"tbody\").length,htmlSerialize:!!p.getElementsByTagName(\"link\").length,style:/top/.test(r.getAttribute(\"style\")),hrefNormalized:r.getAttribute(\"href\")===\"/a\",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value===\"on\",optSelected:o.selected,getSetAttribute:p.className!==\"t\",enctype:!!i.createElement(\"form\").enctype,html5Clone:i.createElement(\"nav\").cloneNode(!0).outerHTML!==\"<:nav></:nav>\",boxModel:i.compatMode===\"CSS1Compat\",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent(\"onclick\",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent(\"onclick\"),p.detachEvent(\"onclick\",h)),u=i.createElement(\"input\"),u.value=\"t\",u.setAttribute(\"type\",\"radio\"),t.radioValue=u.value===\"t\",u.setAttribute(\"checked\",\"checked\"),u.setAttribute(\"name\",\"t\"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f=\"on\"+l,c=f in p,c||(p.setAttribute(f,\"return;\"),c=typeof p[f]==\"function\"),t[l+\"Bubbles\"]=c;return v(function(){var n,r,s,o,u=\"padding:0;margin:0;border:0;display:block;overflow:hidden;\",a=i.getElementsByTagName(\"body\")[0];if(!a)return;n=i.createElement(\"div\"),n.style.cssText=\"visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px\",a.insertBefore(n,a.firstChild),r=i.createElement(\"div\"),n.appendChild(r),r.innerHTML=\"<table><tr><td></td><td>t</td></tr></table>\",s=r.getElementsByTagName(\"td\"),s[0].style.cssText=\"padding:0;margin:0;border:0;display:none\",c=s[0].offsetHeight===0,s[0].style.display=\"\",s[1].style.display=\"none\",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML=\"\",r.style.cssText=\"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!==\"1%\",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:\"4px\"}).width===\"4px\",o=i.createElement(\"div\"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width=\"0\",r.style.width=\"1px\",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!=\"undefined\"&&(r.innerHTML=\"\",r.style.cssText=u+\"width:1px;padding:1px;display:inline;zoom:1\",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display=\"block\",r.style.overflow=\"visible\",r.innerHTML=\"<div></div>\",r.firstChild.style.width=\"5px\",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:\"jQuery\"+(v.fn.jquery+Math.random()).replace(/\\D/g,\"\"),noData:{embed:!0,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n==\"string\",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n==\"object\"||typeof n==\"function\")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(\" \")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute(\"classid\")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,\"parsedAttrs\")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf(\"data-\")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,\"parsedAttrs\",!0)}}return l}return typeof e==\"object\"?this.each(function(){v.data(this,e)}):(r=e.split(\".\",2),r[1]=r[1]?\".\"+r[1]:\"\",i=r[1]+\"!\",v.access(this,function(n){if(n===t)return l=this.triggerHandler(\"getData\"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler(\"setData\"+i,r),v.data(this,e,n),t.triggerHandler(\"changeData\"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i===\"inprogress\"&&(i=n.shift(),r--),i&&(t===\"fx\"&&n.unshift(\"inprogress\"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks(\"once memory\").add(function(){v.removeData(e,t+\"queue\",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!=\"string\"&&(n=e,e=\"fx\",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e===\"fx\"&&t[0]!==\"inprogress\"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||\"fx\",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!=\"string\"&&(n=e,e=t),e=e||\"fx\";while(u--)r=v._data(o[u],e+\"queueHooks\"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\\t\\r\\n]/g,R=/\\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e==\"string\"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=\" \"+i.className+\" \";for(o=0,u=t.length;o<u;o++)s.indexOf(\" \"+t[o]+\" \")<0&&(s+=t[o]+\" \");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e==\"string\"||e===t){n=(e||\"\").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(\" \"+i.className+\" \").replace(q,\" \");for(s=0,o=n.length;s<o;s++)while(r.indexOf(\" \"+n[s]+\" \")>=0)r=r.replace(\" \"+n[s]+\" \",\" \");i.className=e?v.trim(r):\"\"}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t==\"boolean\";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n===\"string\"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?\"addClass\":\"removeClass\"](i)}else if(n===\"undefined\"||n===\"boolean\")this.className&&v._data(this,\"__className__\",this.className),this.className=this.className||e===!1?\"\":v._data(this,\"__className__\")||\"\"})},hasClass:function(e){var t=\" \"+e+\" \",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(\" \"+this[n].className+\" \").replace(q,\" \").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&\"get\"in n&&(r=n.get(s,\"value\"))!==t?r:(r=s.value,typeof r==\"string\"?r.replace(R,\"\"):r==null?\"\":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s=\"\":typeof s==\"number\"?s+=\"\":v.isArray(s)&&(s=v.map(s,function(e){return e==null?\"\":e+\"\"})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!(\"set\"in n)||n.set(this,s,\"value\")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type===\"select-one\"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute(\"disabled\")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,\"optgroup\"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find(\"option\").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute==\"undefined\")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&\"set\"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+\"\"),r)}return o&&\"get\"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,\"\"),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error(\"type property can't be changed\");else if(!v.support.radioValue&&t===\"radio\"&&v.nodeName(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,\"button\")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,\"button\"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:\"tabIndex\",readonly:\"readOnly\",\"for\":\"htmlFor\",\"class\":\"className\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",cellpadding:\"cellPadding\",rowspan:\"rowSpan\",colspan:\"colSpan\",usemap:\"useMap\",frameborder:\"frameBorder\",contenteditable:\"contentEditable\"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&\"set\"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&\"get\"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode(\"tabindex\");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!=\"boolean\"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!==\"\":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+\"\"}},v.each([\"width\",\"height\"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n===\"\")return e.setAttribute(t,\"auto\"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===\"\"&&(t=\"false\"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each([\"href\",\"src\",\"width\",\"height\"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+\"\"}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype=\"encoding\"),v.support.checkOn||v.each([\"radio\",\"checkbox\"],function(){v.valHooks[this]={get:function(e){return e.getAttribute(\"value\")===null?\"on\":e.value}}}),v.each([\"radio\",\"checkbox\"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\\.]*|)(?:\\.(.+)|)$/,K=/(?:^|\\s)hover(\\.\\S+|)\\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,\"mouseenter$1 mouseleave$1\")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v==\"undefined\"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(\" \");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||\"\").split(\".\").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(\".\")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent(\"on\"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||\"\")).split(\" \");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp(\"(^|\\\\.)\"+f.split(\".\").sort().join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r===\"**\"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,\"events\",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf(\"!\")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(\".\")>=0&&(b=y.split(\".\"),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n==\"object\"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join(\".\"),n.namespace_re=n.namespace?new RegExp(\"(^|\\\\.)\"+b.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,h=y.indexOf(\":\")<0?\"on\"+y:\"\";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,\"events\")||{})[n.type]&&v._data(l,\"handle\"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!==\"click\"||!v.nodeName(s,\"a\"))&&v.acceptData(s)&&h&&s[y]&&(y!==\"focus\"&&y!==\"blur\"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,\"events\")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!==\"click\"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!==\"click\"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:\"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\"char charCode key keyCode\".split(\" \"),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:\"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:\"focusin\"},blur:{delegateType:\"focusout\"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r=\"on\"+t;e.detachEvent&&(typeof e[r]==\"undefined\"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,\"form\"))return!1;v.event.add(this,\"click._submit keypress._submit\",function(e){var n=e.target,r=v.nodeName(n,\"input\")||v.nodeName(n,\"button\")?n.form:t;r&&!v._data(r,\"_submit_attached\")&&(v.event.add(r,\"submit._submit\",function(e){e._submit_bubble=!0}),v._data(r,\"_submit_attached\",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate(\"submit\",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,\"form\"))return!1;v.event.remove(this,\"._submit\")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type===\"checkbox\"||this.type===\"radio\")v.event.add(this,\"propertychange._change\",function(e){e.originalEvent.propertyName===\"checked\"&&(this._just_changed=!0)}),v.event.add(this,\"click._change\",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate(\"change\",this,e,!0)});return!1}v.event.add(this,\"beforeactivate._change\",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,\"_change_attached\")&&(v.event.add(t,\"change._change\",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate(\"change\",this.parentNode,e,!0)}),v._data(t,\"_change_attached\",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!==\"radio\"&&t.type!==\"checkbox\")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,\"._change\"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e==\"object\"){typeof n!=\"string\"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n==\"string\"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+\".\"+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e==\"object\"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n==\"function\")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||\"**\",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,\"**\"):this.off(t,e||\"**\",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,\"lastToggle\"+e.guid)||0)%r;return v._data(this,\"lastToggle\"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu\".split(\" \"),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!=\"string\")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,\"$1\"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n===\"input\"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n===\"input\"||n===\"button\")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+\" \"];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j,\" \");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir===\"parentNode\",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+\" \"+o+\" \",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a==\"string\"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||\"*\",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[\" \"],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join(\"\").replace(j,\"$1\"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(\"\"))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w=\"0\",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG(\"*\",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type===\"ID\"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,\"\"),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,\"\"),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join(\"\");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p=\"undefined\",d=(\"sizcache\"+Math.random()).replace(\".\",\"\"),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+\" \"]=r},e)},k=C(),L=C(),A=C(),O=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",M=\"(?:\\\\\\\\.|[-\\\\w]|[^\\\\x00-\\\\xa0])+\",_=M.replace(\"w\",\"w#\"),D=\"([*^$|!~]?=)\",P=\"\\\\[\"+O+\"*(\"+M+\")\"+O+\"*(?:\"+D+O+\"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\"+_+\")|)|)\"+O+\"*\\\\]\",H=\":(\"+M+\")(?:\\\\((?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\2|([^()[\\\\]]*|(?:(?:\"+P+\")|[^:]|\\\\\\\\.)*|.*))\\\\)|)\",B=\":(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+O+\"*((?:-\\\\d)?\\\\d*)\"+O+\"*\\\\)|)(?=[^-]|$)\",j=new RegExp(\"^\"+O+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+O+\"+$\",\"g\"),F=new RegExp(\"^\"+O+\"*,\"+O+\"*\"),I=new RegExp(\"^\"+O+\"*([\\\\x20\\\\t\\\\r\\\\n\\\\f>+~])\"+O+\"*\"),q=new RegExp(H),R=/^(?:#([\\w\\-]+)|(\\w+)|\\.([\\w\\-]+))$/,U=/^:not/,z=/[\\x20\\t\\r\\n\\f]*[+~]/,W=/:not\\($/,X=/h\\d/i,V=/input|select|textarea|button/i,$=/\\\\(?!\\\\)/g,J={ID:new RegExp(\"^#(\"+M+\")\"),CLASS:new RegExp(\"^\\\\.(\"+M+\")\"),NAME:new RegExp(\"^\\\\[name=['\\\"]?(\"+M+\")['\\\"]?\\\\]\"),TAG:new RegExp(\"^(\"+M.replace(\"w\",\"w*\")+\")\"),ATTR:new RegExp(\"^\"+P),PSEUDO:new RegExp(\"^\"+H),POS:new RegExp(B,\"i\"),CHILD:new RegExp(\"^:(only|nth|first|last)-child(?:\\\\(\"+O+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+O+\"*(?:([+-]|)\"+O+\"*(\\\\d+)|))\"+O+\"*\\\\)|)\",\"i\"),needsContext:new RegExp(\"^\"+O+\"*[>+~]|\"+B,\"i\")},K=function(e){var t=g.createElement(\"div\");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),G=K(function(e){return e.innerHTML=\"<a href='#'></a>\",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute(\"href\")===\"#\"}),Y=K(function(e){e.innerHTML=\"<select></select>\";var t=typeof e.lastChild.getAttribute(\"multiple\");return t!==\"boolean\"&&t!==\"string\"}),Z=K(function(e){return e.innerHTML=\"<div class='hidden e'></div><div class='hidden'></div>\",!e.getElementsByClassName||!e.getElementsByClassName(\"e\").length?!1:(e.lastChild.className=\"e\",e.getElementsByClassName(\"e\").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML=\"<a name='\"+d+\"'></a><div name='\"+d+\"'></div>\",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n=\"\",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent==\"string\")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!==\"HTML\":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]==\"boolean\"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute(\"href\",2)},type:function(e){return e.getAttribute(\"type\")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode(\"id\").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e===\"*\"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,\"\"),e[3]=(e[4]||e[5]||\"\").replace($,\"\"),e[2]===\"~=\"&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]===\"nth\"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]===\"even\"||e[2]===\"odd\")),e[4]=+(e[6]+e[7]||e[2]===\"odd\")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(\")\",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,\"\"),function(t){return t.getAttribute(\"id\")===e}}:function(e){return e=e.replace($,\"\"),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode(\"id\");return n&&n.value===e}},TAG:function(e){return e===\"*\"?function(){return!0}:(e=e.replace($,\"\").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+\" \"];return t||(t=new RegExp(\"(^|\"+O+\")\"+e+\"(\"+O+\"|$)\"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute(\"class\")||\"\")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t===\"!=\":t?(s+=\"\",t===\"=\"?s===n:t===\"!=\"?s!==n:t===\"^=\"?n&&s.indexOf(n)===0:t===\"*=\"?n&&s.indexOf(n)>-1:t===\"$=\"?n&&s.substr(s.length-n.length)===n:t===\"~=\"?(\" \"+s+\" \").indexOf(n)>-1:t===\"|=\"?s===n||s.substr(0,n.length+1)===n+\"-\":!1):!0}},CHILD:function(e,t,n,r){return e===\"nth\"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case\"only\":case\"first\":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e===\"first\")return!0;n=t;case\"last\":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error(\"unsupported pseudo: \"+e);return r[d]?r(t):r.length>1?(n=[e,e,\"\",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,\"$1\"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t===\"input\"&&!!e.checked||t===\"option\"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>\"@\"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()===\"input\"&&(t=e.type)===\"text\"&&((n=e.getAttribute(\"type\"))==null||n.toLowerCase()===t)},radio:rt(\"radio\"),checkbox:rt(\"checkbox\"),file:rt(\"file\"),password:rt(\"password\"),image:rt(\"image\"),submit:it(\"submit\"),reset:it(\"reset\"),button:function(e){var t=e.nodeName.toLowerCase();return t===\"input\"&&e.type===\"button\"||t===\"button\"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+\" \"];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\\\/g,r=/\\=[\\x20\\t\\r\\n\\f]*([^'\"\\]]*)[\\x20\\t\\r\\n\\f]*\\]/g,i=[\":focus\"],s=[\":active\"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML=\"<select><option selected=''></option></select>\",e.querySelectorAll(\"[selected]\").length||i.push(\"\\\\[\"+O+\"*(?:checked|disabled|ismap|multiple|readonly|selected|value)\"),e.querySelectorAll(\":checked\").length||i.push(\":checked\")}),K(function(e){e.innerHTML=\"<p test=''></p>\",e.querySelectorAll(\"[test^='']\").length&&i.push(\"[*^$]=\"+O+\"*(?:\\\"\\\"|'')\"),e.innerHTML=\"<input type='hidden'/>\",e.querySelectorAll(\":enabled\").length||i.push(\":enabled\",\":disabled\")}),i=new RegExp(i.join(\"|\")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!==\"object\"){a=ut(e),(l=r.getAttribute(\"id\"))?c=l.replace(n,\"\\\\$&\"):r.setAttribute(\"id\",c),c=\"[id='\"+c+\"'] \",f=a.length;while(f--)a[f]=c+a[f].join(\"\");h=z.test(e)&&r.parentNode||r,p=a.join(\",\")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute(\"id\")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,\"div\");try{u.call(t,\"[test!='']:sizzle\"),s.push(\"!=\",H)}catch(n){}}),s=new RegExp(s.join(\"|\")),nt.matchesSelector=function(t,n){n=n.replace(r,\"='$1']\");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[\":\"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\\[\\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!=\"string\")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack(\"\",\"find\",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),\"not\",e)},filter:function(e){return this.pushStack(ft(this,e,!0),\"filter\",e)},is:function(e){return!!e&&(typeof e==\"string\"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!=\"string\"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,\"closest\",e)},index:function(e){return e?typeof e==\"string\"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e==\"string\"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,\"parentNode\")},parentsUntil:function(e,t,n){return v.dir(e,\"parentNode\",n)},next:function(e){return at(e,\"nextSibling\")},prev:function(e){return at(e,\"previousSibling\")},nextAll:function(e){return v.dir(e,\"nextSibling\")},prevAll:function(e){return v.dir(e,\"previousSibling\")},nextUntil:function(e,t,n){return v.dir(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return v.dir(e,\"previousSibling\",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,\"iframe\")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r==\"string\"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(\",\"))}}),v.extend({filter:function(e,t,n){return n&&(e=\":not(\"+e+\")\"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct=\"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",ht=/ jQuery\\d+=\"(?:null|\\d+)\"/g,pt=/^\\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,vt=/<([\\w:]+)/,mt=/<tbody/i,gt=/<|&#?\\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp(\"<(?:\"+ct+\")[\\\\s/>]\",\"i\"),Et=/^(?:checkbox|radio)$/,St=/checked\\s*(?:[^=]|=\\s*.checked.)/i,xt=/\\/(java|ecma)script/i,Tt=/^\\s*<!(?:\\[CDATA\\[|\\-\\-)|[\\]\\-]{2}>\\s*$/g,Nt={option:[1,\"<select multiple='multiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\"\",\"\"]},Ct=lt(i),kt=Ct.appendChild(i.createElement(\"div\"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,\"X<div>\",\"</div>\"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,\"body\")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),\"before\",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),\"after\",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName(\"*\")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName(\"*\"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,\"\"):t;if(typeof e==\"string\"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=e.replace(dt,\"<$1></$2>\");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName(\"*\")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),\"replaceWith\",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!=\"string\"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f==\"string\"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,\"tr\");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],\"table\")?Lt(this[a],\"tbody\"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:\"GET\",dataType:\"script\",async:!1,global:!1,\"throws\":!0}):v.error(\"no ajax\"):v.globalEval((t.text||t.textContent||t.innerHTML||\"\").replace(Tt,\"\")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a==\"string\"&&a.length<512&&n===i&&a.charAt(0)===\"<\"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test(\"<\"+e.nodeName+\">\")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment==\"undefined\")t=i;for(s=0;(u=e[s])!=null;s++){typeof u==\"number\"&&(u+=\"\");if(!u)continue;if(typeof u==\"string\")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement(\"div\"),y.appendChild(c),u=u.replace(dt,\"<$1></$2>\"),a=(vt.exec(u)||[\"\",\"\"])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a===\"table\"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===\"<table>\"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],\"tbody\")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,\"input\")?_t(u):typeof u.getElementsByTagName!=\"undefined\"&&v.grep(u.getElementsByTagName(\"input\"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,\"script\")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!=\"undefined\"&&(g=v.grep(v.merge([],u.getElementsByTagName(\"script\")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \\/]([\\w.]+)/.exec(e)||/(webkit)[ \\/]([\\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(e)||/(msie) ([\\w.]+)/.exec(e)||e.indexOf(\"compatible\")<0&&/(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(e)||[];return{browser:t[1]||\"\",version:t[2]||\"0\"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\\([^)]*\\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp(\"^(\"+m+\")(.*)$\",\"i\"),Ut=new RegExp(\"^(\"+m+\")(?!px)[a-z%]+$\",\"i\"),zt=new RegExp(\"^([-+])=(\"+m+\")\",\"i\"),Wt={BODY:\"block\"},Xt={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Vt={letterSpacing:0,fontWeight:400},$t=[\"Top\",\"Right\",\"Bottom\",\"Left\"],Jt=[\"Webkit\",\"O\",\"Moz\",\"ms\"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e==\"boolean\";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,\"opacity\");return n===\"\"?\"1\":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{\"float\":v.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&\"get\"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o===\"string\"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o=\"number\");if(r==null||o===\"number\"&&isNaN(r))return;o===\"number\"&&!v.cssNumber[a]&&(r+=\"px\");if(!u||!(\"set\"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&\"get\"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s===\"normal\"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===\"\"&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t===\"fontSize\"?\"1em\":i,i=s.pixelLeft+\"px\",s.left=n,r&&(e.runtimeStyle.left=r)),i===\"\"?\"auto\":i}),v.each([\"height\",\"width\"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,\"display\"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,\"boxSizing\")===\"border-box\"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||\"\")?.01*parseFloat(RegExp.$1)+\"\":t?\"1\":\"\"},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?\"alpha(opacity=\"+t*100+\")\":\"\",s=r&&r.filter||n.filter||\"\";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,\"\"))===\"\"&&n.removeAttribute){n.removeAttribute(\"filter\");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+\" \"+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:\"inline-block\"},function(){if(t)return Dt(e,\"marginRight\")})}}),!v.support.pixelPosition&&v.fn.position&&v.each([\"top\",\"left\"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+\"px\":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,\"display\"))===\"none\"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:\"\",padding:\"\",border:\"Width\"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n==\"string\"?n.split(\" \"):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\\[\\]$/,on=/\\r?\\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,\"\\r\\n\")}}):{name:t.name,value:n.replace(on,\"\\r\\n\")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?\"\":t,i[i.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join(\"&\").replace(rn,\"+\")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg,dn=/^(?:about|app|app\\-storage|.+\\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\\/\\//,gn=/\\?/,yn=/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\\w\\+\\.\\-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=[\"*/\"]+[\"*\"];try{cn=s.href}catch(Nn){cn=i.createElement(\"a\"),cn.href=\"\",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!=\"string\"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(\" \");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n==\"object\"&&(s=\"POST\"),v.ajax({url:e,type:s,dataType:\"html\",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v(\"<div>\").append(e.replace(yn,\"\")).find(i):e)}),this},v.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each([\"get\",\"post\"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,\"script\")},getJSON:function(e,t,n){return v.get(e,t,n,\"json\")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:\"GET\",contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",processData:!0,async:!0,accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"application/json, text/javascript\",\"*\":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converters:{\"* text\":e.String,\"text html\":!0,\"text json\":v.parseJSON,\"text xml\":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||\"\",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader(\"Last-Modified\"),S&&(v.lastModified[r]=S),S=x.getResponseHeader(\"Etag\"),S&&(v.etag[r]=S)),e===304?(T=\"notmodified\",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T=\"error\",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+\"\",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger(\"ajax\"+(l?\"Success\":\"Error\"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger(\"ajaxComplete\",[x,c]),--v.active||v.event.trigger(\"ajaxStop\"))}typeof e==\"object\"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks(\"once memory\"),g=c.statusCode||{},b={},w={},E=0,S=\"canceled\",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+\"\").replace(hn,\"\").replace(mn,ln[1]+\"//\"),c.dataTypes=v.trim(c.dataType||\"*\").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]===\"http:\"?80:443))==(ln[3]||(ln[1]===\"http:\"?80:443)))),c.data&&c.processData&&typeof c.data!=\"string\"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger(\"ajaxStart\");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?\"&\":\"?\")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,\"$1_=\"+N);c.url=C+(C===c.url?(gn.test(c.url)?\"&\":\"?\")+\"_=\"+N:\"\")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader(\"Content-Type\",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader(\"If-Modified-Since\",v.lastModified[r]),v.etag[r]&&x.setRequestHeader(\"If-None-Match\",v.etag[r])),x.setRequestHeader(\"Accept\",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!==\"*\"?\", \"+Tn+\"; q=0.01\":\"\"):c.accepts[\"*\"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S=\"abort\";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,\"No Transport\");else{x.readyState=1,f&&p.trigger(\"ajaxSend\",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort(\"timeout\")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\\?/,Dn=/(=)\\?(?=&|$)|\\?\\?/,Pn=v.now();v.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Mn.pop()||v.expando+\"_\"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter(\"json jsonp\",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a==\"string\"&&!(n.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Dn.test(a);if(n.dataTypes[0]===\"jsonp\"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,\"$1\"+s):h?n.data=a.replace(Dn,\"$1\"+s):l&&(n.url+=(_n.test(f)?\"&\":\"?\")+n.jsonp+\"=\"+s),n.converters[\"script json\"]=function(){return u||v.error(s+\" was not called\"),u[0]},n.dataTypes[0]=\"json\",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),\"script\"}),v.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecmascript/},converters:{\"text script\":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter(\"script\",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\",e.global=!1)}),v.ajaxTransport(\"script\",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName(\"head\")[0]||i.documentElement;return{send:function(s,o){n=i.createElement(\"script\"),n.async=\"async\",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,\"success\")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&\"withCredentials\"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i[\"X-Requested-With\"]&&(i[\"X-Requested-With\"]=\"XMLHttpRequest\");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=\"\"}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp(\"^(?:([-+])=|)(\"+m+\")([a-z%]*)$\",\"i\"),Wn=/queueHooks$/,Xn=[Gn],Vn={\"*\":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?\"\":\"px\");if(r!==\"px\"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||\".5\",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=[\"*\"]):e=e.split(\" \");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||\"swing\",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?\"\":\"px\")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,\"\"),!t||t===\"auto\"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each([\"toggle\",\"show\",\"hide\"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r==\"boolean\"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!=\"string\"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||\"fx\",[]),this.each(function(){var t=!0,n=e!=null&&e+\"queueHooks\",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn(\"show\"),slideUp:Zn(\"hide\"),slideToggle:Zn(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e==\"object\"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration==\"number\"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue=\"fx\";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!=\"undefined\"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,\"marginTop\"))||0,n+=parseFloat(v.css(e,\"marginLeft\"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,\"position\");r===\"static\"&&(e.style.position=\"relative\");var i=v(e),s=i.offset(),o=v.css(e,\"top\"),u=v.css(e,\"left\"),a=(r===\"absolute\"||r===\"fixed\")&&v.inArray(\"auto\",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),\"using\"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,\"marginTop\"))||0,n.left-=parseFloat(v.css(e,\"marginLeft\"))||0,r.top+=parseFloat(v.css(t[0],\"borderTopWidth\"))||0,r.left+=parseFloat(v.css(t[0],\"borderLeftWidth\"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,\"position\")===\"static\")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:\"height\",Width:\"width\"},function(e,n){v.each({padding:\"inner\"+e,content:n,\"\":\"outer\"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!=\"boolean\"),u=r||(i===!0||s===!0?\"margin\":\"border\");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement[\"client\"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body[\"scroll\"+e],s[\"scroll\"+e],n.body[\"offset\"+e],s[\"offset\"+e],s[\"client\"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define==\"function\"&&define.amd&&define.amd.jQuery&&define(\"jquery\",[],function(){return v})})(window);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/demo/js/zepto.js",
    "content": "/*!\n * Zepto v1.0 zeptojs.com | MIT licensed\n * Modules: zepto, polyfill, event, data, stack\n */\nvar Zepto=function(){function h(a){return null==a?String(a):G[S.call(a)]||\"object\"}function m(a){return\"function\"==h(a)}function p(a){return null!=a&&a==a.window}function s(a){return null!=a&&a.nodeType==a.DOCUMENT_NODE}function q(a){return\"object\"==h(a)}function k(a){return q(a)&&!p(a)&&a.__proto__==Object.prototype}function t(a){return a instanceof Array}function l(a){return\"number\"==typeof a.length}function j(a){return a.replace(/::/g,\"/\").replace(/([A-Z]+)([A-Z][a-z])/g,\"$1_$2\").replace(/([a-z\\d])([A-Z])/g,\n\"$1_$2\").replace(/_/g,\"-\").toLowerCase()}function r(a){return a in H?H[a]:H[a]=RegExp(\"(^|\\\\s)\"+a+\"(\\\\s|$)\")}function A(a){return\"children\"in a?B.call(a.children):c.map(a.childNodes,function(a){if(1==a.nodeType)return a})}function C(a,b,d){for(g in b)d&&(k(b[g])||t(b[g]))?(k(b[g])&&!k(a[g])&&(a[g]={}),t(b[g])&&!t(a[g])&&(a[g]=[]),C(a[g],b[g],d)):b[g]!==f&&(a[g]=b[g])}function y(a,b){return b===f?c(a):c(a).filter(b)}function x(a,b,d,c){return m(b)?b.call(a,d,c):b}function z(a,b){var d=a.className,\nc=d&&d.baseVal!==f;if(b===f)return c?d.baseVal:d;c?d.baseVal=b:a.className=b}function E(a){var b;try{return a?\"true\"==a||(\"false\"==a?!1:\"null\"==a?null:!isNaN(b=Number(a))?b:/^[\\[\\{]/.test(a)?c.parseJSON(a):a):a}catch(d){return a}}function e(a,b){b(a);for(var d in a.childNodes)e(a.childNodes[d],b)}var f,g,c,u,w=[],B=w.slice,D=w.filter,v=window.document,I={},H={},J=v.defaultView.getComputedStyle,M={\"column-count\":1,columns:1,\"font-weight\":1,\"line-height\":1,opacity:1,\"z-index\":1,zoom:1},N=/^\\s*<(\\w+|!)[^>]*>/,\nT=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,O=/^(?:body|html)$/i,U=\"val css html text data width height offset\".split(\" \"),K=v.createElement(\"table\"),P=v.createElement(\"tr\"),Q={tr:v.createElement(\"tbody\"),tbody:K,thead:K,tfoot:K,td:P,th:P,\"*\":v.createElement(\"div\")},V=/complete|loaded|interactive/,W=/^\\.([\\w-]+)$/,X=/^#([\\w-]*)$/,Y=/^[\\w-]+$/,G={},S=G.toString,n={},L,F,R=v.createElement(\"div\");n.matches=function(a,b){if(!a||1!==a.nodeType)return!1;var d=a.webkitMatchesSelector||\na.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(d)return d.call(a,b);var c;c=a.parentNode;(d=!c)&&(c=R).appendChild(a);c=~n.qsa(c,b).indexOf(a);d&&R.removeChild(a);return c};L=function(a){return a.replace(/-+(.)?/g,function(a,d){return d?d.toUpperCase():\"\"})};F=function(a){return D.call(a,function(b,d){return a.indexOf(b)==d})};n.fragment=function(a,b,d){a.replace&&(a=a.replace(T,\"<$1></$2>\"));b===f&&(b=N.test(a)&&RegExp.$1);b in Q||(b=\"*\");var e,g=Q[b];g.innerHTML=\"\"+a;a=c.each(B.call(g.childNodes),\nfunction(){g.removeChild(this)});k(d)&&(e=c(a),c.each(d,function(a,b){if(-1<U.indexOf(a))e[a](b);else e.attr(a,b)}));return a};n.Z=function(a,b){a=a||[];a.__proto__=c.fn;a.selector=b||\"\";return a};n.isZ=function(a){return a instanceof n.Z};n.init=function(a,b){if(a){if(m(a))return c(v).ready(a);if(n.isZ(a))return a;var d;if(t(a))d=D.call(a,function(a){return null!=a});else if(q(a))d=[k(a)?c.extend({},a):a],a=null;else if(N.test(a))d=n.fragment(a.trim(),RegExp.$1,b),a=null;else{if(b!==f)return c(b).find(a);\nd=n.qsa(v,a)}return n.Z(d,a)}return n.Z()};c=function(a,b){return n.init(a,b)};c.extend=function(a){var b,d=B.call(arguments,1);\"boolean\"==typeof a&&(b=a,a=d.shift());d.forEach(function(d){C(a,d,b)});return a};n.qsa=function(a,b){var d;return s(a)&&X.test(b)?(d=a.getElementById(RegExp.$1))?[d]:[]:1!==a.nodeType&&9!==a.nodeType?[]:B.call(W.test(b)?a.getElementsByClassName(RegExp.$1):Y.test(b)?a.getElementsByTagName(b):a.querySelectorAll(b))};c.contains=function(a,b){return a!==b&&a.contains(b)};c.type=\nh;c.isFunction=m;c.isWindow=p;c.isArray=t;c.isPlainObject=k;c.isEmptyObject=function(a){for(var b in a)return!1;return!0};c.inArray=function(a,b,d){return w.indexOf.call(b,a,d)};c.camelCase=L;c.trim=function(a){return a.trim()};c.uuid=0;c.support={};c.expr={};c.map=function(a,b){var d,e=[],f;if(l(a))for(f=0;f<a.length;f++)d=b(a[f],f),null!=d&&e.push(d);else for(f in a)d=b(a[f],f),null!=d&&e.push(d);return 0<e.length?c.fn.concat.apply([],e):e};c.each=function(a,b){var d;if(l(a))for(d=0;d<a.length&&\n!1!==b.call(a[d],d,a[d]);d++);else for(d in a)if(!1===b.call(a[d],d,a[d]))break;return a};c.grep=function(a,b){return D.call(a,b)};window.JSON&&(c.parseJSON=JSON.parse);c.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){G[\"[object \"+b+\"]\"]=b.toLowerCase()});c.fn={forEach:w.forEach,reduce:w.reduce,push:w.push,sort:w.sort,indexOf:w.indexOf,concat:w.concat,map:function(a){return c(c.map(this,function(b,d){return a.call(b,d,b)}))},slice:function(){return c(B.apply(this,\narguments))},ready:function(a){V.test(v.readyState)?a(c):v.addEventListener(\"DOMContentLoaded\",function(){a(c)},!1);return this},get:function(a){return a===f?B.call(this):this[0<=a?a:a+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(a){w.every.call(this,function(b,d){return!1!==a.call(b,d,b)});return this},filter:function(a){return m(a)?this.not(this.not(a)):\nc(D.call(this,function(b){return n.matches(b,a)}))},add:function(a,b){return c(F(this.concat(c(a,b))))},is:function(a){return 0<this.length&&n.matches(this[0],a)},not:function(a){var b=[];if(m(a)&&a.call!==f)this.each(function(d){a.call(this,d)||b.push(this)});else{var d=\"string\"==typeof a?this.filter(a):l(a)&&m(a.item)?B.call(a):c(a);this.forEach(function(a){0>d.indexOf(a)&&b.push(a)})}return c(b)},has:function(a){return this.filter(function(){return q(a)?c.contains(this,a):c(this).find(a).size()})},\neq:function(a){return-1===a?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!q(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!q(a)?a:c(a)},find:function(a){var b=this;return\"object\"==typeof a?c(a).filter(function(){var a=this;return w.some.call(b,function(b){return c.contains(b,a)})}):1==this.length?c(n.qsa(this[0],a)):this.map(function(){return n.qsa(this,a)})},closest:function(a,b){var d=this[0],e=!1;for(\"object\"==typeof a&&(e=c(a));d&&!(e?0<=e.indexOf(d):\nn.matches(d,a));)d=d!==b&&!s(d)&&d.parentNode;return c(d)},parents:function(a){for(var b=[],d=this;0<d.length;)d=c.map(d,function(a){if((a=a.parentNode)&&!s(a)&&0>b.indexOf(a))return b.push(a),a});return y(b,a)},parent:function(a){return y(F(this.pluck(\"parentNode\")),a)},children:function(a){return y(this.map(function(){return A(this)}),a)},contents:function(){return this.map(function(){return B.call(this.childNodes)})},siblings:function(a){return y(this.map(function(a,d){return D.call(A(d.parentNode),\nfunction(a){return a!==d})}),a)},empty:function(){return this.each(function(){this.innerHTML=\"\"})},pluck:function(a){return c.map(this,function(b){return b[a]})},show:function(){return this.each(function(){\"none\"==this.style.display&&(this.style.display=null);if(\"none\"==J(this,\"\").getPropertyValue(\"display\")){var a=this.style,b=this.nodeName,d,c;I[b]||(d=v.createElement(b),v.body.appendChild(d),c=J(d,\"\").getPropertyValue(\"display\"),d.parentNode.removeChild(d),\"none\"==c&&(c=\"block\"),I[b]=c);a.display=\nI[b]}})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var b=m(a);if(this[0]&&!b)var d=c(a).get(0),e=d.parentNode||1<this.length;return this.each(function(f){c(this).wrapAll(b?a.call(this,f):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){c(this[0]).before(a=c(a));for(var b;(b=a.children()).length;)a=b.first();c(a).append(this)}return this},wrapInner:function(a){var b=m(a);return this.each(function(d){var e=c(this),f=e.contents();d=b?a.call(this,d):a;f.length?f.wrapAll(d):\ne.append(d)})},unwrap:function(){this.parent().each(function(){c(this).replaceWith(c(this).children())});return this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css(\"display\",\"none\")},toggle:function(a){return this.each(function(){var b=c(this);(a===f?\"none\"==b.css(\"display\"):a)?b.show():b.hide()})},prev:function(a){return c(this.pluck(\"previousElementSibling\")).filter(a||\"*\")},next:function(a){return c(this.pluck(\"nextElementSibling\")).filter(a||\n\"*\")},html:function(a){return a===f?0<this.length?this[0].innerHTML:null:this.each(function(b){var d=this.innerHTML;c(this).empty().append(x(this,a,b,d))})},text:function(a){return a===f?0<this.length?this[0].textContent:null:this.each(function(){this.textContent=a})},attr:function(a,b){var d;return\"string\"==typeof a&&b===f?0==this.length||1!==this[0].nodeType?f:\"value\"==a&&\"INPUT\"==this[0].nodeName?this.val():!(d=this[0].getAttribute(a))&&a in this[0]?this[0][a]:d:this.each(function(d){if(1===this.nodeType)if(q(a))for(g in a){d=\ng;var c=a[g];null==c?this.removeAttribute(d):this.setAttribute(d,c)}else d=x(this,b,d,this.getAttribute(a)),null==d?this.removeAttribute(a):this.setAttribute(a,d)})},removeAttr:function(a){return this.each(function(){1===this.nodeType&&this.removeAttribute(a)})},prop:function(a,b){return b===f?this[0]&&this[0][a]:this.each(function(d){this[a]=x(this,b,d,this[a])})},data:function(a,b){var d=this.attr(\"data-\"+j(a),b);return null!==d?E(d):f},val:function(a){return a===f?this[0]&&(this[0].multiple?c(this[0]).find(\"option\").filter(function(){return this.selected}).pluck(\"value\"):\nthis[0].value):this.each(function(b){this.value=x(this,a,b,this.value)})},offset:function(a){if(a)return this.each(function(b){var e=c(this);b=x(this,a,b,e.offset());var f=e.offsetParent().offset();b={top:b.top-f.top,left:b.left-f.left};\"static\"==e.css(\"position\")&&(b.position=\"relative\");e.css(b)});if(0==this.length)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(a,\nb){if(2>arguments.length&&\"string\"==typeof a)return this[0]&&(this[0].style[L(a)]||J(this[0],\"\").getPropertyValue(a));var d=\"\";if(\"string\"==h(a))!b&&0!==b?this.each(function(){this.style.removeProperty(j(a))}):d=j(a)+\":\"+(\"number\"==typeof b&&!M[j(a)]?b+\"px\":b);else for(g in a)!a[g]&&0!==a[g]?this.each(function(){this.style.removeProperty(j(g))}):d+=j(g)+\":\"+(\"number\"==typeof a[g]&&!M[j(g)]?a[g]+\"px\":a[g])+\";\";return this.each(function(){this.style.cssText+=\";\"+d})},index:function(a){return a?this.indexOf(c(a)[0]):\nthis.parent().children().indexOf(this[0])},hasClass:function(a){return w.some.call(this,function(a){return this.test(z(a))},r(a))},addClass:function(a){return this.each(function(b){u=[];var d=z(this);x(this,a,b,d).split(/\\s+/g).forEach(function(a){c(this).hasClass(a)||u.push(a)},this);u.length&&z(this,d+(d?\" \":\"\")+u.join(\" \"))})},removeClass:function(a){return this.each(function(b){if(a===f)return z(this,\"\");u=z(this);x(this,a,b,u).split(/\\s+/g).forEach(function(a){u=u.replace(r(a),\" \")});z(this,\nu.trim())})},toggleClass:function(a,b){return this.each(function(d){var e=c(this);x(this,a,d,z(this)).split(/\\s+/g).forEach(function(a){(b===f?!e.hasClass(a):b)?e.addClass(a):e.removeClass(a)})})},scrollTop:function(){if(this.length)return\"scrollTop\"in this[0]?this[0].scrollTop:this[0].scrollY},position:function(){if(this.length){var a=this[0],b=this.offsetParent(),d=this.offset(),e=O.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c(a).css(\"margin-top\"))||0;d.left-=parseFloat(c(a).css(\"margin-left\"))||\n0;e.top+=parseFloat(c(b[0]).css(\"border-top-width\"))||0;e.left+=parseFloat(c(b[0]).css(\"border-left-width\"))||0;return{top:d.top-e.top,left:d.left-e.left}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||v.body;a&&!O.test(a.nodeName)&&\"static\"==c(a).css(\"position\");)a=a.offsetParent;return a})}};c.fn.detach=c.fn.remove;[\"width\",\"height\"].forEach(function(a){c.fn[a]=function(b){var d,e=this[0],g=a.replace(/./,function(a){return a[0].toUpperCase()});return b===f?p(e)?\ne[\"inner\"+g]:s(e)?e.documentElement[\"offset\"+g]:(d=this.offset())&&d[a]:this.each(function(d){e=c(this);e.css(a,x(this,b,d,e[a]()))})}});[\"after\",\"prepend\",\"before\",\"append\"].forEach(function(a,b){var d=b%2;c.fn[a]=function(){var a,f=c.map(arguments,function(b){a=h(b);return\"object\"==a||\"array\"==a||null==b?b:n.fragment(b)}),g,u=1<this.length;return 1>f.length?this:this.each(function(a,h){g=d?h:h.parentNode;h=0==b?h.nextSibling:1==b?h.firstChild:2==b?h:null;f.forEach(function(a){if(u)a=a.cloneNode(!0);\nelse if(!g)return c(a).remove();e(g.insertBefore(a,h),function(a){null!=a.nodeName&&(\"SCRIPT\"===a.nodeName.toUpperCase()&&(!a.type||\"text/javascript\"===a.type)&&!a.src)&&window.eval.call(window,a.innerHTML)})})})};c.fn[d?a+\"To\":\"insert\"+(b?\"Before\":\"After\")]=function(b){c(b)[a](this);return this}});n.Z.prototype=c.fn;n.uniq=F;n.deserializeValue=E;c.zepto=n;return c}();window.Zepto=Zepto;\"$\"in window||(window.$=Zepto);\n(function(h){String.prototype.trim===h&&(String.prototype.trim=function(){return this.replace(/^\\s+|\\s+$/g,\"\")});Array.prototype.reduce===h&&(Array.prototype.reduce=function(m){if(void 0===this||null===this)throw new TypeError;var p=Object(this),s=p.length>>>0,q=0,k;if(\"function\"!=typeof m)throw new TypeError;if(0==s&&1==arguments.length)throw new TypeError;if(2<=arguments.length)k=arguments[1];else{do{if(q in p){k=p[q++];break}if(++q>=s)throw new TypeError;}while(1)}for(;q<s;)q in p&&(k=m.call(h,\nk,p[q],q,p)),q++;return k})})();\n(function(h){function m(e){return e._zid||(e._zid=r++)}function p(e,f,g,c){f=s(f);if(f.ns)var h=RegExp(\"(?:^| )\"+f.ns.replace(\" \",\" .* ?\")+\"(?: |$)\");return(j[m(e)]||[]).filter(function(e){return e&&(!f.e||e.e==f.e)&&(!f.ns||h.test(e.ns))&&(!g||m(e.fn)===m(g))&&(!c||e.sel==c)})}function s(e){e=(\"\"+e).split(\".\");return{e:e[0],ns:e.slice(1).sort().join(\" \")}}function q(e,f,g){\"string\"!=h.type(e)?h.each(e,g):e.split(/\\s/).forEach(function(e){g(e,f)})}function k(e,f,g,c,u,l){var k=m(e),r=j[k]||(j[k]=\n[]);q(f,g,function(f,g){var j=s(f);j.fn=g;j.sel=c;j.e in C&&(g=function(e){var c=e.relatedTarget;if(!c||c!==this&&!h.contains(this,c))return j.fn.apply(this,arguments)});j.del=u&&u(g,f);var k=j.del||g;j.proxy=function(c){var f=k.apply(e,[c].concat(c.data));!1===f&&(c.preventDefault(),c.stopPropagation());return f};j.i=r.length;r.push(j);e.addEventListener(C[j.e]||j.e,j.proxy,j.del&&(\"focus\"==j.e||\"blur\"==j.e)||!!l)})}function t(e,f,g,c,h){var l=m(e);q(f||\"\",g,function(f,g){p(e,f,g,c).forEach(function(c){delete j[l][c.i];\ne.removeEventListener(C[c.e]||c.e,c.proxy,c.del&&(\"focus\"==c.e||\"blur\"==c.e)||!!h)})})}function l(e){var f,g={originalEvent:e};for(f in e)!z.test(f)&&void 0!==e[f]&&(g[f]=e[f]);h.each(E,function(c,f){g[c]=function(){this[f]=y;return e[c].apply(e,arguments)};g[f]=x});return g}var j={},r=1,A={},C={mouseenter:\"mouseover\",mouseleave:\"mouseout\"};A.click=A.mousedown=A.mouseup=A.mousemove=\"MouseEvents\";h.event={add:k,remove:t};h.proxy=function(e,f){if(h.isFunction(e)){var g=function(){return e.apply(f,arguments)};\ng._zid=m(e);return g}if(\"string\"==typeof f)return h.proxy(e[f],e);throw new TypeError(\"expected function\");};h.fn.bind=function(e,f){return this.each(function(){k(this,e,f)})};h.fn.unbind=function(e,f){return this.each(function(){t(this,e,f)})};h.fn.one=function(e,f){return this.each(function(g,c){k(this,e,f,null,function(e,f){return function(){var g=e.apply(c,arguments);t(c,f,e);return g}})})};var y=function(){return!0},x=function(){return!1},z=/^([A-Z]|layer[XY]$)/,E={preventDefault:\"isDefaultPrevented\",\nstopImmediatePropagation:\"isImmediatePropagationStopped\",stopPropagation:\"isPropagationStopped\"};h.fn.delegate=function(e,f,g){return this.each(function(c,j){k(j,f,g,e,function(c){return function(f){var g,k=h(f.target).closest(e,j).get(0);if(k)return g=h.extend(l(f),{currentTarget:k,liveFired:j}),c.apply(k,[g].concat([].slice.call(arguments,1)))}})})};h.fn.undelegate=function(e,f,g){return this.each(function(){t(this,f,g,e)})};h.fn.live=function(e,f){h(document.body).delegate(this.selector,e,f);return this};\nh.fn.die=function(e,f){h(document.body).undelegate(this.selector,e,f);return this};h.fn.on=function(e,f,g){return!f||h.isFunction(f)?this.bind(e,f||g):this.delegate(f,e,g)};h.fn.off=function(e,f,g){return!f||h.isFunction(f)?this.unbind(e,f||g):this.undelegate(f,e,g)};h.fn.trigger=function(e,f){if(\"string\"==typeof e||h.isPlainObject(e))e=h.Event(e);var g=e;if(!(\"defaultPrevented\"in g)){g.defaultPrevented=!1;var c=g.preventDefault;g.preventDefault=function(){this.defaultPrevented=!0;c.call(this)}}e.data=\nf;return this.each(function(){\"dispatchEvent\"in this&&this.dispatchEvent(e)})};h.fn.triggerHandler=function(e,f){var g,c;this.each(function(j,k){g=l(\"string\"==typeof e?h.Event(e):e);g.data=f;g.target=k;h.each(p(k,e.type||e),function(e,f){c=f.proxy(g);if(g.isImmediatePropagationStopped())return!1})});return c};\"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error\".split(\" \").forEach(function(e){h.fn[e]=\nfunction(f){return f?this.bind(e,f):this.trigger(e)}});[\"focus\",\"blur\"].forEach(function(e){h.fn[e]=function(f){f?this.bind(e,f):this.each(function(){try{this[e]()}catch(f){}});return this}});h.Event=function(e,f){\"string\"!=typeof e&&(f=e,e=f.type);var g=document.createEvent(A[e]||\"Events\"),c=!0;if(f)for(var h in f)\"bubbles\"==h?c=!!f[h]:g[h]=f[h];g.initEvent(e,c,!0,null,null,null,null,null,null,null,null,null,null,null,null);g.isDefaultPrevented=function(){return this.defaultPrevented};return g}})(Zepto);\n(function(h){function m(l,j){var r=l[t],r=r&&s[r];if(void 0===j)return r||p(l);if(r){if(j in r)return r[j];var m=k(j);if(m in r)return r[m]}return q.call(h(l),j)}function p(l,j,m){var q=l[t]||(l[t]=++h.uuid),p;if(!(p=s[q])){p=s;var y={};h.each(l.attributes,function(j,l){0==l.name.indexOf(\"data-\")&&(y[k(l.name.replace(\"data-\",\"\"))]=h.zepto.deserializeValue(l.value))});p=p[q]=y}l=p;void 0!==j&&(l[k(j)]=m);return l}var s={},q=h.fn.data,k=h.camelCase,t=h.expando=\"Zepto\"+ +new Date;h.fn.data=function(l,\nj){return void 0===j?h.isPlainObject(l)?this.each(function(j,k){h.each(l,function(h,j){p(k,h,j)})}):0==this.length?void 0:m(this[0],l):this.each(function(){p(this,l,j)})};h.fn.removeData=function(l){\"string\"==typeof l&&(l=l.split(/\\s+/));return this.each(function(){var j=this[t],m=j&&s[j];m&&h.each(l,function(){delete m[k(this)]})})}})(Zepto);(function(a){a.fn.end=function(){return this.prevObject||a()};a.fn.andSelf=function(){return this.add(this.prevObject||a())};\"filter add not eq first last find closest parents parent children siblings\".split(\" \").forEach(function(b){var c=a.fn[b];a.fn[b]=function(){var a=c.apply(this,arguments);a.prevObject=this;return a}})})(Zepto);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/icheck.jquery.json",
    "content": "{\n  \"name\": \"icheck\",\n  \"version\": \"1.0.2\",\n  \"title\": \"iCheck\",\n  \"author\": {\n    \"name\": \"Damir Sultanov\",\n    \"email\": \"info@fronteed.com\",\n    \"homepage\": \"http://fronteed.com/\"\n  },\n  \"licenses\": [\n    {\n      \"type\": \"MIT\",\n      \"url\": \"http://en.wikipedia.org/wiki/MIT_License\"\n    }\n  ],\n  \"dependencies\": {\n    \"jquery\": \">=1.7\"\n  },\n  \"description\": \"Highly customizable checkboxes and radio buttons (jQuery and Zepto). Features: identical inputs across different browsers and devices (both desktop and mobile), touch devices support (iOS, Android, BlackBerry, Windows Phone, Amazon Kindle), keyboard accessible inputs (Tab, Spacebar, Arrow up/down and other shortcuts), screenreader accessible inputs — (ARIA attributes for VoiceOver and others), customization freedom (use any HTML and CSS to style inputs or try 6 Retina-ready skins), lightweight size (1 kb gzipped). Provides 32 options to customize checkboxes and radio buttons, 11 callbacks to handle changes, 9 methods to make changes programmatically. Saves changes to original inputs, works carefully with any selectors.\",\n  \"keywords\": [\n    \"checkbox\",\n    \"radio\",\n    \"input\",\n    \"field\",\n    \"form\",\n    \"desktop\",\n    \"mobile\",\n    \"custom\",\n    \"replacement\",\n    \"accessibility\",\n    \"skins\",\n    \"ui\",\n    \"checked\",\n    \"disabled\",\n    \"indeterminate\",\n    \"css3\",\n    \"html5\",\n    \"tiny\",\n    \"lightweight\",\n    \"jquery\",\n    \"zepto\"\n  ],\n  \"homepage\": \"http://fronteed.com/iCheck/\",\n  \"docs\": \"https://github.com/fronteed/iCheck\",\n  \"demo\": \"http://fronteed.com/iCheck/\",\n  \"download\": \"http://fronteed.com/iCheck/\",\n  \"bugs\": \"https://github.com/fronteed/iCheck/issues/\"\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/icheck.js",
    "content": "/*!\n * iCheck v1.0.2, http://git.io/arlzeA\n * ===================================\n * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization\n *\n * (c) 2013 Damir Sultanov, http://fronteed.com\n * MIT Licensed\n */\n\n(function($) {\n\n  // Cached vars\n  var _iCheck = 'iCheck',\n    _iCheckHelper = _iCheck + '-helper',\n    _checkbox = 'checkbox',\n    _radio = 'radio',\n    _checked = 'checked',\n    _unchecked = 'un' + _checked,\n    _disabled = 'disabled',\n    _determinate = 'determinate',\n    _indeterminate = 'in' + _determinate,\n    _update = 'update',\n    _type = 'type',\n    _click = 'click',\n    _touch = 'touchbegin.i touchend.i',\n    _add = 'addClass',\n    _remove = 'removeClass',\n    _callback = 'trigger',\n    _label = 'label',\n    _cursor = 'cursor',\n    _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);\n\n  // Plugin init\n  $.fn[_iCheck] = function(options, fire) {\n\n    // Walker\n    var handle = 'input[type=\"' + _checkbox + '\"], input[type=\"' + _radio + '\"]',\n      stack = $(),\n      walker = function(object) {\n        object.each(function() {\n          var self = $(this);\n\n          if (self.is(handle)) {\n            stack = stack.add(self);\n          } else {\n            stack = stack.add(self.find(handle));\n          }\n        });\n      };\n\n    // Check if we should operate with some method\n    if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {\n\n      // Normalize method's name\n      options = options.toLowerCase();\n\n      // Find checkboxes and radio buttons\n      walker(this);\n\n      return stack.each(function() {\n        var self = $(this);\n\n        if (options == 'destroy') {\n          tidy(self, 'ifDestroyed');\n        } else {\n          operate(self, true, options);\n        }\n\n        // Fire method's callback\n        if ($.isFunction(fire)) {\n          fire();\n        }\n      });\n\n    // Customization\n    } else if (typeof options == 'object' || !options) {\n\n      // Check if any options were passed\n      var settings = $.extend({\n          checkedClass: _checked,\n          disabledClass: _disabled,\n          indeterminateClass: _indeterminate,\n          labelHover: true\n        }, options),\n\n        selector = settings.handle,\n        hoverClass = settings.hoverClass || 'hover',\n        focusClass = settings.focusClass || 'focus',\n        activeClass = settings.activeClass || 'active',\n        labelHover = !!settings.labelHover,\n        labelHoverClass = settings.labelHoverClass || 'hover',\n\n        // Setup clickable area\n        area = ('' + settings.increaseArea).replace('%', '') | 0;\n\n      // Selector limit\n      if (selector == _checkbox || selector == _radio) {\n        handle = 'input[type=\"' + selector + '\"]';\n      }\n\n      // Clickable area limit\n      if (area < -50) {\n        area = -50;\n      }\n\n      // Walk around the selector\n      walker(this);\n\n      return stack.each(function() {\n        var self = $(this);\n\n        // If already customized\n        tidy(self);\n\n        var node = this,\n          id = node.id,\n\n          // Layer styles\n          offset = -area + '%',\n          size = 100 + (area * 2) + '%',\n          layer = {\n            position: 'absolute',\n            top: offset,\n            left: offset,\n            display: 'block',\n            width: size,\n            height: size,\n            margin: 0,\n            padding: 0,\n            background: '#fff',\n            border: 0,\n            opacity: 0\n          },\n\n          // Choose how to hide input\n          hide = _mobile ? {\n            position: 'absolute',\n            visibility: 'hidden'\n          } : area ? layer : {\n            position: 'absolute',\n            opacity: 0\n          },\n\n          // Get proper class\n          className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,\n\n          // Find assigned labels\n          label = $(_label + '[for=\"' + id + '\"]').add(self.closest(_label)),\n\n          // Check ARIA option\n          aria = !!settings.aria,\n\n          // Set ARIA placeholder\n          ariaID = _iCheck + '-' + Math.random().toString(36).substr(2,6),\n\n          // Parent & helper\n          parent = '<div class=\"' + className + '\" ' + (aria ? 'role=\"' + node[_type] + '\" ' : ''),\n          helper;\n\n        // Set ARIA \"labelledby\"\n        if (aria) {\n          label.each(function() {\n            parent += 'aria-labelledby=\"';\n\n            if (this.id) {\n              parent += this.id;\n            } else {\n              this.id = ariaID;\n              parent += ariaID;\n            }\n\n            parent += '\"';\n          });\n        }\n\n        // Wrap input\n        parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert);\n\n        // Layer addition\n        helper = $('<ins class=\"' + _iCheckHelper + '\"/>').css(layer).appendTo(parent);\n\n        // Finalize customization\n        self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);\n        !!settings.inheritClass && parent[_add](node.className || '');\n        !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);\n        parent.css('position') == 'static' && parent.css('position', 'relative');\n        operate(self, true, _update);\n\n        // Label events\n        if (label.length) {\n          label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {\n            var type = event[_type],\n              item = $(this);\n\n            // Do nothing if input is disabled\n            if (!node[_disabled]) {\n\n              // Click\n              if (type == _click) {\n                if ($(event.target).is('a')) {\n                  return;\n                }\n                operate(self, false, true);\n\n              // Hover state\n              } else if (labelHover) {\n\n                // mouseout|touchend\n                if (/ut|nd/.test(type)) {\n                  parent[_remove](hoverClass);\n                  item[_remove](labelHoverClass);\n                } else {\n                  parent[_add](hoverClass);\n                  item[_add](labelHoverClass);\n                }\n              }\n\n              if (_mobile) {\n                event.stopPropagation();\n              } else {\n                return false;\n              }\n            }\n          });\n        }\n\n        // Input events\n        self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {\n          var type = event[_type],\n            key = event.keyCode;\n\n          // Click\n          if (type == _click) {\n            return false;\n\n          // Keydown\n          } else if (type == 'keydown' && key == 32) {\n            if (!(node[_type] == _radio && node[_checked])) {\n              if (node[_checked]) {\n                off(self, _checked);\n              } else {\n                on(self, _checked);\n              }\n            }\n\n            return false;\n\n          // Keyup\n          } else if (type == 'keyup' && node[_type] == _radio) {\n            !node[_checked] && on(self, _checked);\n\n          // Focus/blur\n          } else if (/us|ur/.test(type)) {\n            parent[type == 'blur' ? _remove : _add](focusClass);\n          }\n        });\n\n        // Helper events\n        helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {\n          var type = event[_type],\n\n            // mousedown|mouseup\n            toggle = /wn|up/.test(type) ? activeClass : hoverClass;\n\n          // Do nothing if input is disabled\n          if (!node[_disabled]) {\n\n            // Click\n            if (type == _click) {\n              operate(self, false, true);\n\n            // Active and hover states\n            } else {\n\n              // State is on\n              if (/wn|er|in/.test(type)) {\n\n                // mousedown|mouseover|touchbegin\n                parent[_add](toggle);\n\n              // State is off\n              } else {\n                parent[_remove](toggle + ' ' + activeClass);\n              }\n\n              // Label hover\n              if (label.length && labelHover && toggle == hoverClass) {\n\n                // mouseout|touchend\n                label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);\n              }\n            }\n\n            if (_mobile) {\n              event.stopPropagation();\n            } else {\n              return false;\n            }\n          }\n        });\n      });\n    } else {\n      return this;\n    }\n  };\n\n  // Do something with inputs\n  function operate(input, direct, method) {\n    var node = input[0],\n      state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,\n      active = method == _update ? {\n        checked: node[_checked],\n        disabled: node[_disabled],\n        indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'\n      } : node[state];\n\n    // Check, disable or indeterminate\n    if (/^(ch|di|in)/.test(method) && !active) {\n      on(input, state);\n\n    // Uncheck, enable or determinate\n    } else if (/^(un|en|de)/.test(method) && active) {\n      off(input, state);\n\n    // Update\n    } else if (method == _update) {\n\n      // Handle states\n      for (var each in active) {\n        if (active[each]) {\n          on(input, each, true);\n        } else {\n          off(input, each, true);\n        }\n      }\n\n    } else if (!direct || method == 'toggle') {\n\n      // Helper or label was clicked\n      if (!direct) {\n        input[_callback]('ifClicked');\n      }\n\n      // Toggle checked state\n      if (active) {\n        if (node[_type] !== _radio) {\n          off(input, state);\n        }\n      } else {\n        on(input, state);\n      }\n    }\n  }\n\n  // Add checked, disabled or indeterminate state\n  function on(input, state, keep) {\n    var node = input[0],\n      parent = input.parent(),\n      checked = state == _checked,\n      indeterminate = state == _indeterminate,\n      disabled = state == _disabled,\n      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n      regular = option(input, callback + capitalize(node[_type])),\n      specific = option(input, state + capitalize(node[_type]));\n\n    // Prevent unnecessary actions\n    if (node[state] !== true) {\n\n      // Toggle assigned radio buttons\n      if (!keep && state == _checked && node[_type] == _radio && node.name) {\n        var form = input.closest('form'),\n          inputs = 'input[name=\"' + node.name + '\"]';\n\n        inputs = form.length ? form.find(inputs) : $(inputs);\n\n        inputs.each(function() {\n          if (this !== node && $(this).data(_iCheck)) {\n            off($(this), state);\n          }\n        });\n      }\n\n      // Indeterminate state\n      if (indeterminate) {\n\n        // Add indeterminate state\n        node[state] = true;\n\n        // Remove checked state\n        if (node[_checked]) {\n          off(input, _checked, 'force');\n        }\n\n      // Checked or disabled state\n      } else {\n\n        // Add checked or disabled state\n        if (!keep) {\n          node[state] = true;\n        }\n\n        // Remove indeterminate state\n        if (checked && node[_indeterminate]) {\n          off(input, _indeterminate, false);\n        }\n      }\n\n      // Trigger callbacks\n      callbacks(input, checked, state, keep);\n    }\n\n    // Add proper cursor\n    if (node[_disabled] && !!option(input, _cursor, true)) {\n      parent.find('.' + _iCheckHelper).css(_cursor, 'default');\n    }\n\n    // Add state class\n    parent[_add](specific || option(input, state) || '');\n\n    // Set ARIA attribute\n    if (!!parent.attr('role') && !indeterminate) {\n      parent.attr('aria-' + (disabled ? _disabled : _checked), 'true');\n    }\n\n    // Remove regular state class\n    parent[_remove](regular || option(input, callback) || '');\n  }\n\n  // Remove checked, disabled or indeterminate state\n  function off(input, state, keep) {\n    var node = input[0],\n      parent = input.parent(),\n      checked = state == _checked,\n      indeterminate = state == _indeterminate,\n      disabled = state == _disabled,\n      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n      regular = option(input, callback + capitalize(node[_type])),\n      specific = option(input, state + capitalize(node[_type]));\n\n    // Prevent unnecessary actions\n    if (node[state] !== false) {\n\n      // Toggle state\n      if (indeterminate || !keep || keep == 'force') {\n        node[state] = false;\n      }\n\n      // Trigger callbacks\n      callbacks(input, checked, callback, keep);\n    }\n\n    // Add proper cursor\n    if (!node[_disabled] && !!option(input, _cursor, true)) {\n      parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');\n    }\n\n    // Remove state class\n    parent[_remove](specific || option(input, state) || '');\n\n    // Set ARIA attribute\n    if (!!parent.attr('role') && !indeterminate) {\n      parent.attr('aria-' + (disabled ? _disabled : _checked), 'false');\n    }\n\n    // Add regular state class\n    parent[_add](regular || option(input, callback) || '');\n  }\n\n  // Remove all traces\n  function tidy(input, callback) {\n    if (input.data(_iCheck)) {\n\n      // Remove everything except input\n      input.parent().html(input.attr('style', input.data(_iCheck).s || ''));\n\n      // Callback\n      if (callback) {\n        input[_callback](callback);\n      }\n\n      // Unbind events\n      input.off('.i').unwrap();\n      $(_label + '[for=\"' + input[0].id + '\"]').add(input.closest(_label)).off('.i');\n    }\n  }\n\n  // Get some option\n  function option(input, state, regular) {\n    if (input.data(_iCheck)) {\n      return input.data(_iCheck).o[state + (regular ? '' : 'Class')];\n    }\n  }\n\n  // Capitalize some string\n  function capitalize(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n  }\n\n  // Executable handlers\n  function callbacks(input, checked, callback, keep) {\n    if (!keep) {\n      if (checked) {\n        input[_callback]('ifToggled');\n      }\n\n      input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));\n    }\n  }\n})(window.jQuery || window.Zepto);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/all.css",
    "content": "/* iCheck plugin skins\n----------------------------------- */\n@import url(\"minimal/_all.css\");\n/*\n@import url(\"minimal/minimal.css\");\n@import url(\"minimal/red.css\");\n@import url(\"minimal/green.css\");\n@import url(\"minimal/blue.css\");\n@import url(\"minimal/aero.css\");\n@import url(\"minimal/grey.css\");\n@import url(\"minimal/orange.css\");\n@import url(\"minimal/yellow.css\");\n@import url(\"minimal/pink.css\");\n@import url(\"minimal/purple.css\");\n*/\n\n@import url(\"square/_all.css\");\n/*\n@import url(\"square/square.css\");\n@import url(\"square/red.css\");\n@import url(\"square/green.css\");\n@import url(\"square/blue.css\");\n@import url(\"square/aero.css\");\n@import url(\"square/grey.css\");\n@import url(\"square/orange.css\");\n@import url(\"square/yellow.css\");\n@import url(\"square/pink.css\");\n@import url(\"square/purple.css\");\n*/\n\n@import url(\"flat/_all.css\");\n/*\n@import url(\"flat/flat.css\");\n@import url(\"flat/red.css\");\n@import url(\"flat/green.css\");\n@import url(\"flat/blue.css\");\n@import url(\"flat/aero.css\");\n@import url(\"flat/grey.css\");\n@import url(\"flat/orange.css\");\n@import url(\"flat/yellow.css\");\n@import url(\"flat/pink.css\");\n@import url(\"flat/purple.css\");\n*/\n\n@import url(\"line/_all.css\");\n/*\n@import url(\"line/line.css\");\n@import url(\"line/red.css\");\n@import url(\"line/green.css\");\n@import url(\"line/blue.css\");\n@import url(\"line/aero.css\");\n@import url(\"line/grey.css\");\n@import url(\"line/orange.css\");\n@import url(\"line/yellow.css\");\n@import url(\"line/pink.css\");\n@import url(\"line/purple.css\");\n*/\n\n@import url(\"polaris/polaris.css\");\n\n@import url(\"futurico/futurico.css\");"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/_all.css",
    "content": "/* iCheck plugin Flat skin\n----------------------------------- */\n.icheckbox_flat,\n.iradio_flat {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(flat.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat {\n    background-position: 0 0;\n}\n    .icheckbox_flat.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat {\n    background-position: -88px 0;\n}\n    .iradio_flat.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat,\n    .iradio_flat {\n        background-image: url(flat@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* red */\n.icheckbox_flat-red,\n.iradio_flat-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-red {\n    background-position: 0 0;\n}\n    .icheckbox_flat-red.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-red.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-red.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-red {\n    background-position: -88px 0;\n}\n    .iradio_flat-red.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-red.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-red.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-red,\n    .iradio_flat-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* green */\n.icheckbox_flat-green,\n.iradio_flat-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-green {\n    background-position: 0 0;\n}\n    .icheckbox_flat-green.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-green.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-green.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-green {\n    background-position: -88px 0;\n}\n    .iradio_flat-green.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-green.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-green.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-green,\n    .iradio_flat-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* blue */\n.icheckbox_flat-blue,\n.iradio_flat-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-blue {\n    background-position: 0 0;\n}\n    .icheckbox_flat-blue.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-blue.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-blue.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-blue {\n    background-position: -88px 0;\n}\n    .iradio_flat-blue.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-blue.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-blue.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-blue,\n    .iradio_flat-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* aero */\n.icheckbox_flat-aero,\n.iradio_flat-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-aero {\n    background-position: 0 0;\n}\n    .icheckbox_flat-aero.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-aero.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-aero.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-aero {\n    background-position: -88px 0;\n}\n    .iradio_flat-aero.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-aero.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-aero.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-aero,\n    .iradio_flat-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* grey */\n.icheckbox_flat-grey,\n.iradio_flat-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-grey {\n    background-position: 0 0;\n}\n    .icheckbox_flat-grey.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-grey.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-grey.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-grey {\n    background-position: -88px 0;\n}\n    .iradio_flat-grey.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-grey.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-grey.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-grey,\n    .iradio_flat-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* orange */\n.icheckbox_flat-orange,\n.iradio_flat-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-orange {\n    background-position: 0 0;\n}\n    .icheckbox_flat-orange.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-orange.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-orange.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-orange {\n    background-position: -88px 0;\n}\n    .iradio_flat-orange.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-orange.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-orange.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-orange,\n    .iradio_flat-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* yellow */\n.icheckbox_flat-yellow,\n.iradio_flat-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_flat-yellow.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-yellow.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-yellow.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-yellow {\n    background-position: -88px 0;\n}\n    .iradio_flat-yellow.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-yellow.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-yellow.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-yellow,\n    .iradio_flat-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* pink */\n.icheckbox_flat-pink,\n.iradio_flat-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-pink {\n    background-position: 0 0;\n}\n    .icheckbox_flat-pink.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-pink.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-pink.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-pink {\n    background-position: -88px 0;\n}\n    .iradio_flat-pink.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-pink.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-pink.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-pink,\n    .iradio_flat-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* purple */\n.icheckbox_flat-purple,\n.iradio_flat-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-purple {\n    background-position: 0 0;\n}\n    .icheckbox_flat-purple.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-purple.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-purple.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-purple {\n    background-position: -88px 0;\n}\n    .iradio_flat-purple.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-purple.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-purple.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-purple,\n    .iradio_flat-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/aero.css",
    "content": "/* iCheck plugin Flat skin, aero\n----------------------------------- */\n.icheckbox_flat-aero,\n.iradio_flat-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-aero {\n    background-position: 0 0;\n}\n    .icheckbox_flat-aero.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-aero.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-aero.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-aero {\n    background-position: -88px 0;\n}\n    .iradio_flat-aero.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-aero.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-aero.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-aero,\n    .iradio_flat-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/blue.css",
    "content": "/* iCheck plugin Flat skin, blue\n----------------------------------- */\n.icheckbox_flat-blue,\n.iradio_flat-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-blue {\n    background-position: 0 0;\n}\n    .icheckbox_flat-blue.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-blue.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-blue.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-blue {\n    background-position: -88px 0;\n}\n    .iradio_flat-blue.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-blue.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-blue.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-blue,\n    .iradio_flat-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/flat.css",
    "content": "/* iCheck plugin flat skin, black\n----------------------------------- */\n.icheckbox_flat,\n.iradio_flat {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(flat.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat {\n    background-position: 0 0;\n}\n    .icheckbox_flat.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat {\n    background-position: -88px 0;\n}\n    .iradio_flat.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat,\n    .iradio_flat {\n        background-image: url(flat@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/green.css",
    "content": "/* iCheck plugin Flat skin, green\n----------------------------------- */\n.icheckbox_flat-green,\n.iradio_flat-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-green {\n    background-position: 0 0;\n}\n    .icheckbox_flat-green.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-green.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-green.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-green {\n    background-position: -88px 0;\n}\n    .iradio_flat-green.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-green.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-green.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-green,\n    .iradio_flat-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/grey.css",
    "content": "/* iCheck plugin Flat skin, grey\n----------------------------------- */\n.icheckbox_flat-grey,\n.iradio_flat-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-grey {\n    background-position: 0 0;\n}\n    .icheckbox_flat-grey.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-grey.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-grey.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-grey {\n    background-position: -88px 0;\n}\n    .iradio_flat-grey.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-grey.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-grey.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-grey,\n    .iradio_flat-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/orange.css",
    "content": "/* iCheck plugin Flat skin, orange\n----------------------------------- */\n.icheckbox_flat-orange,\n.iradio_flat-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-orange {\n    background-position: 0 0;\n}\n    .icheckbox_flat-orange.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-orange.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-orange.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-orange {\n    background-position: -88px 0;\n}\n    .iradio_flat-orange.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-orange.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-orange.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-orange,\n    .iradio_flat-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/pink.css",
    "content": "/* iCheck plugin Flat skin, pink\n----------------------------------- */\n.icheckbox_flat-pink,\n.iradio_flat-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-pink {\n    background-position: 0 0;\n}\n    .icheckbox_flat-pink.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-pink.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-pink.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-pink {\n    background-position: -88px 0;\n}\n    .iradio_flat-pink.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-pink.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-pink.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-pink,\n    .iradio_flat-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/purple.css",
    "content": "/* iCheck plugin Flat skin, purple\n----------------------------------- */\n.icheckbox_flat-purple,\n.iradio_flat-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-purple {\n    background-position: 0 0;\n}\n    .icheckbox_flat-purple.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-purple.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-purple.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-purple {\n    background-position: -88px 0;\n}\n    .iradio_flat-purple.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-purple.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-purple.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-purple,\n    .iradio_flat-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/red.css",
    "content": "/* iCheck plugin Flat skin, red\n----------------------------------- */\n.icheckbox_flat-red,\n.iradio_flat-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-red {\n    background-position: 0 0;\n}\n    .icheckbox_flat-red.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-red.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-red.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-red {\n    background-position: -88px 0;\n}\n    .iradio_flat-red.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-red.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-red.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-red,\n    .iradio_flat-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/flat/yellow.css",
    "content": "/* iCheck plugin Flat skin, yellow\n----------------------------------- */\n.icheckbox_flat-yellow,\n.iradio_flat-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_flat-yellow.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-yellow.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-yellow.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-yellow {\n    background-position: -88px 0;\n}\n    .iradio_flat-yellow.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-yellow.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-yellow.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-yellow,\n    .iradio_flat-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/futurico/futurico.css",
    "content": "/* iCheck plugin Futurico skin\n----------------------------------- */\n.icheckbox_futurico,\n.iradio_futurico {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 16px;\n    height: 17px;\n    background: url(futurico.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_futurico {\n    background-position: 0 0;\n}\n    .icheckbox_futurico.checked {\n        background-position: -18px 0;\n    }\n    .icheckbox_futurico.disabled {\n        background-position: -36px 0;\n        cursor: default;\n    }\n    .icheckbox_futurico.checked.disabled {\n        background-position: -54px 0;\n    }\n\n.iradio_futurico {\n    background-position: -72px 0;\n}\n    .iradio_futurico.checked {\n        background-position: -90px 0;\n    }\n    .iradio_futurico.disabled {\n        background-position: -108px 0;\n        cursor: default;\n    }\n    .iradio_futurico.checked.disabled {\n        background-position: -126px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_futurico,\n    .iradio_futurico {\n        background-image: url(futurico@2x.png);\n        -webkit-background-size: 144px 19px;\n        background-size: 144px 19px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/_all.css",
    "content": "/* iCheck plugin Line skin\n----------------------------------- */\n.icheckbox_line,\n.iradio_line {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #000;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line.hover,\n    .icheckbox_line.checked.hover,\n    .iradio_line.hover {\n        background: #444;\n    }\n    .icheckbox_line.checked,\n    .iradio_line.checked {\n        background: #000;\n    }\n        .icheckbox_line.checked .icheck_line-icon,\n        .iradio_line.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line.disabled,\n    .iradio_line.disabled {\n        background: #ccc;\n        cursor: default;\n    }\n        .icheckbox_line.disabled .icheck_line-icon,\n        .iradio_line.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line.checked.disabled,\n    .iradio_line.checked.disabled {\n        background: #ccc;\n    }\n        .icheckbox_line.checked.disabled .icheck_line-icon,\n        .iradio_line.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* red */\n.icheckbox_line-red,\n.iradio_line-red {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #e56c69;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-red.hover,\n    .icheckbox_line-red.checked.hover,\n    .iradio_line-red.hover {\n        background: #E98582;\n    }\n    .icheckbox_line-red.checked,\n    .iradio_line-red.checked {\n        background: #e56c69;\n    }\n        .icheckbox_line-red.checked .icheck_line-icon,\n        .iradio_line-red.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-red.disabled,\n    .iradio_line-red.disabled {\n        background: #F7D3D2;\n        cursor: default;\n    }\n        .icheckbox_line-red.disabled .icheck_line-icon,\n        .iradio_line-red.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-red.checked.disabled,\n    .iradio_line-red.checked.disabled {\n        background: #F7D3D2;\n    }\n        .icheckbox_line-red.checked.disabled .icheck_line-icon,\n        .iradio_line-red.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* green */\n.icheckbox_line-green,\n.iradio_line-green {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #1b7e5a;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-green.hover,\n    .icheckbox_line-green.checked.hover,\n    .iradio_line-green.hover {\n        background: #24AA7A;\n    }\n    .icheckbox_line-green.checked,\n    .iradio_line-green.checked {\n        background: #1b7e5a;\n    }\n        .icheckbox_line-green.checked .icheck_line-icon,\n        .iradio_line-green.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-green.disabled,\n    .iradio_line-green.disabled {\n        background: #89E6C4;\n        cursor: default;\n    }\n        .icheckbox_line-green.disabled .icheck_line-icon,\n        .iradio_line-green.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-green.checked.disabled,\n    .iradio_line-green.checked.disabled {\n        background: #89E6C4;\n    }\n        .icheckbox_line-green.checked.disabled .icheck_line-icon,\n        .iradio_line-green.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* blue */\n.icheckbox_line-blue,\n.iradio_line-blue {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #2489c5;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-blue.hover,\n    .icheckbox_line-blue.checked.hover,\n    .iradio_line-blue.hover {\n        background: #3DA0DB;\n    }\n    .icheckbox_line-blue.checked,\n    .iradio_line-blue.checked {\n        background: #2489c5;\n    }\n        .icheckbox_line-blue.checked .icheck_line-icon,\n        .iradio_line-blue.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-blue.disabled,\n    .iradio_line-blue.disabled {\n        background: #ADD7F0;\n        cursor: default;\n    }\n        .icheckbox_line-blue.disabled .icheck_line-icon,\n        .iradio_line-blue.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-blue.checked.disabled,\n    .iradio_line-blue.checked.disabled {\n        background: #ADD7F0;\n    }\n        .icheckbox_line-blue.checked.disabled .icheck_line-icon,\n        .iradio_line-blue.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* aero */\n.icheckbox_line-aero,\n.iradio_line-aero {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #9cc2cb;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-aero.hover,\n    .icheckbox_line-aero.checked.hover,\n    .iradio_line-aero.hover {\n        background: #B5D1D8;\n    }\n    .icheckbox_line-aero.checked,\n    .iradio_line-aero.checked {\n        background: #9cc2cb;\n    }\n        .icheckbox_line-aero.checked .icheck_line-icon,\n        .iradio_line-aero.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-aero.disabled,\n    .iradio_line-aero.disabled {\n        background: #D2E4E8;\n        cursor: default;\n    }\n        .icheckbox_line-aero.disabled .icheck_line-icon,\n        .iradio_line-aero.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-aero.checked.disabled,\n    .iradio_line-aero.checked.disabled {\n        background: #D2E4E8;\n    }\n        .icheckbox_line-aero.checked.disabled .icheck_line-icon,\n        .iradio_line-aero.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* grey */\n.icheckbox_line-grey,\n.iradio_line-grey {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #73716e;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-grey.hover,\n    .icheckbox_line-grey.checked.hover,\n    .iradio_line-grey.hover {\n        background: #8B8986;\n    }\n    .icheckbox_line-grey.checked,\n    .iradio_line-grey.checked {\n        background: #73716e;\n    }\n        .icheckbox_line-grey.checked .icheck_line-icon,\n        .iradio_line-grey.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-grey.disabled,\n    .iradio_line-grey.disabled {\n        background: #D5D4D3;\n        cursor: default;\n    }\n        .icheckbox_line-grey.disabled .icheck_line-icon,\n        .iradio_line-grey.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-grey.checked.disabled,\n    .iradio_line-grey.checked.disabled {\n        background: #D5D4D3;\n    }\n        .icheckbox_line-grey.checked.disabled .icheck_line-icon,\n        .iradio_line-grey.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* orange */\n.icheckbox_line-orange,\n.iradio_line-orange {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #f70;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-orange.hover,\n    .icheckbox_line-orange.checked.hover,\n    .iradio_line-orange.hover {\n        background: #FF9233;\n    }\n    .icheckbox_line-orange.checked,\n    .iradio_line-orange.checked {\n        background: #f70;\n    }\n        .icheckbox_line-orange.checked .icheck_line-icon,\n        .iradio_line-orange.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-orange.disabled,\n    .iradio_line-orange.disabled {\n        background: #FFD6B3;\n        cursor: default;\n    }\n        .icheckbox_line-orange.disabled .icheck_line-icon,\n        .iradio_line-orange.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-orange.checked.disabled,\n    .iradio_line-orange.checked.disabled {\n        background: #FFD6B3;\n    }\n        .icheckbox_line-orange.checked.disabled .icheck_line-icon,\n        .iradio_line-orange.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* yellow */\n.icheckbox_line-yellow,\n.iradio_line-yellow {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #FFC414;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-yellow.hover,\n    .icheckbox_line-yellow.checked.hover,\n    .iradio_line-yellow.hover {\n        background: #FFD34F;\n    }\n    .icheckbox_line-yellow.checked,\n    .iradio_line-yellow.checked {\n        background: #FFC414;\n    }\n        .icheckbox_line-yellow.checked .icheck_line-icon,\n        .iradio_line-yellow.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-yellow.disabled,\n    .iradio_line-yellow.disabled {\n        background: #FFE495;\n        cursor: default;\n    }\n        .icheckbox_line-yellow.disabled .icheck_line-icon,\n        .iradio_line-yellow.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-yellow.checked.disabled,\n    .iradio_line-yellow.checked.disabled {\n        background: #FFE495;\n    }\n        .icheckbox_line-yellow.checked.disabled .icheck_line-icon,\n        .iradio_line-yellow.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* pink */\n.icheckbox_line-pink,\n.iradio_line-pink {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #a77a94;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-pink.hover,\n    .icheckbox_line-pink.checked.hover,\n    .iradio_line-pink.hover {\n        background: #B995A9;\n    }\n    .icheckbox_line-pink.checked,\n    .iradio_line-pink.checked {\n        background: #a77a94;\n    }\n        .icheckbox_line-pink.checked .icheck_line-icon,\n        .iradio_line-pink.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-pink.disabled,\n    .iradio_line-pink.disabled {\n        background: #E0D0DA;\n        cursor: default;\n    }\n        .icheckbox_line-pink.disabled .icheck_line-icon,\n        .iradio_line-pink.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-pink.checked.disabled,\n    .iradio_line-pink.checked.disabled {\n        background: #E0D0DA;\n    }\n        .icheckbox_line-pink.checked.disabled .icheck_line-icon,\n        .iradio_line-pink.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* purple */\n.icheckbox_line-purple,\n.iradio_line-purple {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #6a5a8c;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-purple.hover,\n    .icheckbox_line-purple.checked.hover,\n    .iradio_line-purple.hover {\n        background: #8677A7;\n    }\n    .icheckbox_line-purple.checked,\n    .iradio_line-purple.checked {\n        background: #6a5a8c;\n    }\n        .icheckbox_line-purple.checked .icheck_line-icon,\n        .iradio_line-purple.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-purple.disabled,\n    .iradio_line-purple.disabled {\n        background: #D2CCDE;\n        cursor: default;\n    }\n        .icheckbox_line-purple.disabled .icheck_line-icon,\n        .iradio_line-purple.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-purple.checked.disabled,\n    .iradio_line-purple.checked.disabled {\n        background: #D2CCDE;\n    }\n        .icheckbox_line-purple.checked.disabled .icheck_line-icon,\n        .iradio_line-purple.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/aero.css",
    "content": "/* iCheck plugin Line skin, aero\n----------------------------------- */\n.icheckbox_line-aero,\n.iradio_line-aero {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #9cc2cb;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-aero.hover,\n    .icheckbox_line-aero.checked.hover,\n    .iradio_line-aero.hover {\n        background: #B5D1D8;\n    }\n    .icheckbox_line-aero.checked,\n    .iradio_line-aero.checked {\n        background: #9cc2cb;\n    }\n        .icheckbox_line-aero.checked .icheck_line-icon,\n        .iradio_line-aero.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-aero.disabled,\n    .iradio_line-aero.disabled {\n        background: #D2E4E8;\n        cursor: default;\n    }\n        .icheckbox_line-aero.disabled .icheck_line-icon,\n        .iradio_line-aero.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-aero.checked.disabled,\n    .iradio_line-aero.checked.disabled {\n        background: #D2E4E8;\n    }\n        .icheckbox_line-aero.checked.disabled .icheck_line-icon,\n        .iradio_line-aero.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/blue.css",
    "content": "/* iCheck plugin Line skin, blue\n----------------------------------- */\n.icheckbox_line-blue,\n.iradio_line-blue {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #2489c5;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-blue.hover,\n    .icheckbox_line-blue.checked.hover,\n    .iradio_line-blue.hover {\n        background: #3DA0DB;\n    }\n    .icheckbox_line-blue.checked,\n    .iradio_line-blue.checked {\n        background: #2489c5;\n    }\n        .icheckbox_line-blue.checked .icheck_line-icon,\n        .iradio_line-blue.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-blue.disabled,\n    .iradio_line-blue.disabled {\n        background: #ADD7F0;\n        cursor: default;\n    }\n        .icheckbox_line-blue.disabled .icheck_line-icon,\n        .iradio_line-blue.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-blue.checked.disabled,\n    .iradio_line-blue.checked.disabled {\n        background: #ADD7F0;\n    }\n        .icheckbox_line-blue.checked.disabled .icheck_line-icon,\n        .iradio_line-blue.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/green.css",
    "content": "/* iCheck plugin Line skin, green\n----------------------------------- */\n.icheckbox_line-green,\n.iradio_line-green {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #1b7e5a;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-green.hover,\n    .icheckbox_line-green.checked.hover,\n    .iradio_line-green.hover {\n        background: #24AA7A;\n    }\n    .icheckbox_line-green.checked,\n    .iradio_line-green.checked {\n        background: #1b7e5a;\n    }\n        .icheckbox_line-green.checked .icheck_line-icon,\n        .iradio_line-green.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-green.disabled,\n    .iradio_line-green.disabled {\n        background: #89E6C4;\n        cursor: default;\n    }\n        .icheckbox_line-green.disabled .icheck_line-icon,\n        .iradio_line-green.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-green.checked.disabled,\n    .iradio_line-green.checked.disabled {\n        background: #89E6C4;\n    }\n        .icheckbox_line-green.checked.disabled .icheck_line-icon,\n        .iradio_line-green.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/grey.css",
    "content": "/* iCheck plugin Line skin, grey\n----------------------------------- */\n.icheckbox_line-grey,\n.iradio_line-grey {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #73716e;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-grey.hover,\n    .icheckbox_line-grey.checked.hover,\n    .iradio_line-grey.hover {\n        background: #8B8986;\n    }\n    .icheckbox_line-grey.checked,\n    .iradio_line-grey.checked {\n        background: #73716e;\n    }\n        .icheckbox_line-grey.checked .icheck_line-icon,\n        .iradio_line-grey.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-grey.disabled,\n    .iradio_line-grey.disabled {\n        background: #D5D4D3;\n        cursor: default;\n    }\n        .icheckbox_line-grey.disabled .icheck_line-icon,\n        .iradio_line-grey.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-grey.checked.disabled,\n    .iradio_line-grey.checked.disabled {\n        background: #D5D4D3;\n    }\n        .icheckbox_line-grey.checked.disabled .icheck_line-icon,\n        .iradio_line-grey.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/line.css",
    "content": "/* iCheck plugin Line skin, black\n----------------------------------- */\n.icheckbox_line,\n.iradio_line {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #000;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line.hover,\n    .icheckbox_line.checked.hover,\n    .iradio_line.hover {\n        background: #444;\n    }\n    .icheckbox_line.checked,\n    .iradio_line.checked {\n        background: #000;\n    }\n        .icheckbox_line.checked .icheck_line-icon,\n        .iradio_line.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line.disabled,\n    .iradio_line.disabled {\n        background: #ccc;\n        cursor: default;\n    }\n        .icheckbox_line.disabled .icheck_line-icon,\n        .iradio_line.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line.checked.disabled,\n    .iradio_line.checked.disabled {\n        background: #ccc;\n    }\n        .icheckbox_line.checked.disabled .icheck_line-icon,\n        .iradio_line.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/orange.css",
    "content": "/* iCheck plugin Line skin, orange\n----------------------------------- */\n.icheckbox_line-orange,\n.iradio_line-orange {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #f70;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-orange.hover,\n    .icheckbox_line-orange.checked.hover,\n    .iradio_line-orange.hover {\n        background: #FF9233;\n    }\n    .icheckbox_line-orange.checked,\n    .iradio_line-orange.checked {\n        background: #f70;\n    }\n        .icheckbox_line-orange.checked .icheck_line-icon,\n        .iradio_line-orange.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-orange.disabled,\n    .iradio_line-orange.disabled {\n        background: #FFD6B3;\n        cursor: default;\n    }\n        .icheckbox_line-orange.disabled .icheck_line-icon,\n        .iradio_line-orange.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-orange.checked.disabled,\n    .iradio_line-orange.checked.disabled {\n        background: #FFD6B3;\n    }\n        .icheckbox_line-orange.checked.disabled .icheck_line-icon,\n        .iradio_line-orange.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/pink.css",
    "content": "/* iCheck plugin Line skin, pink\n----------------------------------- */\n.icheckbox_line-pink,\n.iradio_line-pink {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #a77a94;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-pink.hover,\n    .icheckbox_line-pink.checked.hover,\n    .iradio_line-pink.hover {\n        background: #B995A9;\n    }\n    .icheckbox_line-pink.checked,\n    .iradio_line-pink.checked {\n        background: #a77a94;\n    }\n        .icheckbox_line-pink.checked .icheck_line-icon,\n        .iradio_line-pink.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-pink.disabled,\n    .iradio_line-pink.disabled {\n        background: #E0D0DA;\n        cursor: default;\n    }\n        .icheckbox_line-pink.disabled .icheck_line-icon,\n        .iradio_line-pink.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-pink.checked.disabled,\n    .iradio_line-pink.checked.disabled {\n        background: #E0D0DA;\n    }\n        .icheckbox_line-pink.checked.disabled .icheck_line-icon,\n        .iradio_line-pink.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/purple.css",
    "content": "/* iCheck plugin Line skin, purple\n----------------------------------- */\n.icheckbox_line-purple,\n.iradio_line-purple {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #6a5a8c;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-purple.hover,\n    .icheckbox_line-purple.checked.hover,\n    .iradio_line-purple.hover {\n        background: #8677A7;\n    }\n    .icheckbox_line-purple.checked,\n    .iradio_line-purple.checked {\n        background: #6a5a8c;\n    }\n        .icheckbox_line-purple.checked .icheck_line-icon,\n        .iradio_line-purple.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-purple.disabled,\n    .iradio_line-purple.disabled {\n        background: #D2CCDE;\n        cursor: default;\n    }\n        .icheckbox_line-purple.disabled .icheck_line-icon,\n        .iradio_line-purple.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-purple.checked.disabled,\n    .iradio_line-purple.checked.disabled {\n        background: #D2CCDE;\n    }\n        .icheckbox_line-purple.checked.disabled .icheck_line-icon,\n        .iradio_line-purple.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/red.css",
    "content": "/* iCheck plugin Line skin, red\n----------------------------------- */\n.icheckbox_line-red,\n.iradio_line-red {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #e56c69;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-red.hover,\n    .icheckbox_line-red.checked.hover,\n    .iradio_line-red.hover {\n        background: #E98582;\n    }\n    .icheckbox_line-red.checked,\n    .iradio_line-red.checked {\n        background: #e56c69;\n    }\n        .icheckbox_line-red.checked .icheck_line-icon,\n        .iradio_line-red.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-red.disabled,\n    .iradio_line-red.disabled {\n        background: #F7D3D2;\n        cursor: default;\n    }\n        .icheckbox_line-red.disabled .icheck_line-icon,\n        .iradio_line-red.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-red.checked.disabled,\n    .iradio_line-red.checked.disabled {\n        background: #F7D3D2;\n    }\n        .icheckbox_line-red.checked.disabled .icheck_line-icon,\n        .iradio_line-red.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/line/yellow.css",
    "content": "/* iCheck plugin Line skin, yellow\n----------------------------------- */\n.icheckbox_line-yellow,\n.iradio_line-yellow {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #FFC414;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-yellow.hover,\n    .icheckbox_line-yellow.checked.hover,\n    .iradio_line-yellow.hover {\n        background: #FFD34F;\n    }\n    .icheckbox_line-yellow.checked,\n    .iradio_line-yellow.checked {\n        background: #FFC414;\n    }\n        .icheckbox_line-yellow.checked .icheck_line-icon,\n        .iradio_line-yellow.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-yellow.disabled,\n    .iradio_line-yellow.disabled {\n        background: #FFE495;\n        cursor: default;\n    }\n        .icheckbox_line-yellow.disabled .icheck_line-icon,\n        .iradio_line-yellow.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-yellow.checked.disabled,\n    .iradio_line-yellow.checked.disabled {\n        background: #FFE495;\n    }\n        .icheckbox_line-yellow.checked.disabled .icheck_line-icon,\n        .iradio_line-yellow.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/_all.css",
    "content": "/* iCheck plugin Minimal skin\n----------------------------------- */\n.icheckbox_minimal,\n.iradio_minimal {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(minimal.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal {\n    background-position: 0 0;\n}\n    .icheckbox_minimal.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal {\n    background-position: -100px 0;\n}\n    .iradio_minimal.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal,\n    .iradio_minimal {\n        background-image: url(minimal@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* red */\n.icheckbox_minimal-red,\n.iradio_minimal-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-red {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-red.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-red.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-red.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-red.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-red {\n    background-position: -100px 0;\n}\n    .iradio_minimal-red.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-red.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-red.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-red.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-red,\n    .iradio_minimal-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* green */\n.icheckbox_minimal-green,\n.iradio_minimal-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-green {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-green.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-green.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-green.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-green.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-green {\n    background-position: -100px 0;\n}\n    .iradio_minimal-green.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-green.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-green.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-green.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-green,\n    .iradio_minimal-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* blue */\n.icheckbox_minimal-blue,\n.iradio_minimal-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-blue {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-blue.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-blue.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-blue.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-blue.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-blue {\n    background-position: -100px 0;\n}\n    .iradio_minimal-blue.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-blue.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-blue.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-blue.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-blue,\n    .iradio_minimal-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* aero */\n.icheckbox_minimal-aero,\n.iradio_minimal-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-aero {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-aero.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-aero.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-aero.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-aero.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-aero {\n    background-position: -100px 0;\n}\n    .iradio_minimal-aero.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-aero.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-aero.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-aero.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-aero,\n    .iradio_minimal-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* grey */\n.icheckbox_minimal-grey,\n.iradio_minimal-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-grey {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-grey.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-grey.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-grey.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-grey.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-grey {\n    background-position: -100px 0;\n}\n    .iradio_minimal-grey.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-grey.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-grey.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-grey.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-grey,\n    .iradio_minimal-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* orange */\n.icheckbox_minimal-orange,\n.iradio_minimal-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-orange {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-orange.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-orange.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-orange.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-orange.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-orange {\n    background-position: -100px 0;\n}\n    .iradio_minimal-orange.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-orange.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-orange.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-orange.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-orange,\n    .iradio_minimal-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* yellow */\n.icheckbox_minimal-yellow,\n.iradio_minimal-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-yellow.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-yellow.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-yellow.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-yellow.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-yellow {\n    background-position: -100px 0;\n}\n    .iradio_minimal-yellow.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-yellow.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-yellow.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-yellow.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-yellow,\n    .iradio_minimal-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* pink */\n.icheckbox_minimal-pink,\n.iradio_minimal-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-pink {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-pink.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-pink.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-pink.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-pink.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-pink {\n    background-position: -100px 0;\n}\n    .iradio_minimal-pink.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-pink.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-pink.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-pink.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-pink,\n    .iradio_minimal-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* purple */\n.icheckbox_minimal-purple,\n.iradio_minimal-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-purple {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-purple.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-purple.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-purple.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-purple.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-purple {\n    background-position: -100px 0;\n}\n    .iradio_minimal-purple.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-purple.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-purple.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-purple.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-purple,\n    .iradio_minimal-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/aero.css",
    "content": "/* iCheck plugin Minimal skin, aero\n----------------------------------- */\n.icheckbox_minimal-aero,\n.iradio_minimal-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-aero {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-aero.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-aero.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-aero.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-aero.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-aero {\n    background-position: -100px 0;\n}\n    .iradio_minimal-aero.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-aero.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-aero.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-aero.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-aero,\n    .iradio_minimal-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/blue.css",
    "content": "/* iCheck plugin Minimal skin, blue\n----------------------------------- */\n.icheckbox_minimal-blue,\n.iradio_minimal-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-blue {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-blue.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-blue.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-blue.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-blue.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-blue {\n    background-position: -100px 0;\n}\n    .iradio_minimal-blue.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-blue.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-blue.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-blue.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-blue,\n    .iradio_minimal-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/green.css",
    "content": "/* iCheck plugin Minimal skin, green\n----------------------------------- */\n.icheckbox_minimal-green,\n.iradio_minimal-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-green {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-green.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-green.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-green.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-green.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-green {\n    background-position: -100px 0;\n}\n    .iradio_minimal-green.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-green.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-green.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-green.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-green,\n    .iradio_minimal-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/grey.css",
    "content": "/* iCheck plugin Minimal skin, grey\n----------------------------------- */\n.icheckbox_minimal-grey,\n.iradio_minimal-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-grey {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-grey.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-grey.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-grey.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-grey.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-grey {\n    background-position: -100px 0;\n}\n    .iradio_minimal-grey.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-grey.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-grey.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-grey.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-grey,\n    .iradio_minimal-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/minimal.css",
    "content": "/* iCheck plugin Minimal skin, black\n----------------------------------- */\n.icheckbox_minimal,\n.iradio_minimal {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(minimal.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal {\n    background-position: 0 0;\n}\n    .icheckbox_minimal.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal {\n    background-position: -100px 0;\n}\n    .iradio_minimal.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal,\n    .iradio_minimal {\n        background-image: url(minimal@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/orange.css",
    "content": "/* iCheck plugin Minimal skin, orange\n----------------------------------- */\n.icheckbox_minimal-orange,\n.iradio_minimal-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-orange {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-orange.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-orange.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-orange.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-orange.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-orange {\n    background-position: -100px 0;\n}\n    .iradio_minimal-orange.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-orange.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-orange.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-orange.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-orange,\n    .iradio_minimal-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/pink.css",
    "content": "/* iCheck plugin Minimal skin, pink\n----------------------------------- */\n.icheckbox_minimal-pink,\n.iradio_minimal-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-pink {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-pink.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-pink.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-pink.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-pink.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-pink {\n    background-position: -100px 0;\n}\n    .iradio_minimal-pink.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-pink.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-pink.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-pink.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-pink,\n    .iradio_minimal-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/purple.css",
    "content": "/* iCheck plugin Minimal skin, purple\n----------------------------------- */\n.icheckbox_minimal-purple,\n.iradio_minimal-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-purple {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-purple.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-purple.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-purple.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-purple.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-purple {\n    background-position: -100px 0;\n}\n    .iradio_minimal-purple.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-purple.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-purple.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-purple.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-purple,\n    .iradio_minimal-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/red.css",
    "content": "/* iCheck plugin Minimal skin, red\n----------------------------------- */\n.icheckbox_minimal-red,\n.iradio_minimal-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-red {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-red.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-red.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-red.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-red.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-red {\n    background-position: -100px 0;\n}\n    .iradio_minimal-red.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-red.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-red.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-red.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-red,\n    .iradio_minimal-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/minimal/yellow.css",
    "content": "/* iCheck plugin Minimal skin, yellow\n----------------------------------- */\n.icheckbox_minimal-yellow,\n.iradio_minimal-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-yellow.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-yellow.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-yellow.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-yellow.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-yellow {\n    background-position: -100px 0;\n}\n    .iradio_minimal-yellow.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-yellow.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-yellow.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-yellow.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-yellow,\n    .iradio_minimal-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/polaris/polaris.css",
    "content": "/* iCheck plugin Polaris skin\n----------------------------------- */\n.icheckbox_polaris,\n.iradio_polaris {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 29px;\n    height: 29px;\n    background: url(polaris.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_polaris {\n    background-position: 0 0;\n}\n    .icheckbox_polaris.hover {\n        background-position: -31px 0;\n    }\n    .icheckbox_polaris.checked {\n        background-position: -62px 0;\n    }\n    .icheckbox_polaris.disabled {\n        background-position: -93px 0;\n        cursor: default;\n    }\n    .icheckbox_polaris.checked.disabled {\n        background-position: -124px 0;\n    }\n\n.iradio_polaris {\n    background-position: -155px 0;\n}\n    .iradio_polaris.hover {\n        background-position: -186px 0;\n    }\n    .iradio_polaris.checked {\n        background-position: -217px 0;\n    }\n    .iradio_polaris.disabled {\n        background-position: -248px 0;\n        cursor: default;\n    }\n    .iradio_polaris.checked.disabled {\n        background-position: -279px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_polaris,\n    .iradio_polaris {\n        background-image: url(polaris@2x.png);\n        -webkit-background-size: 310px 31px;\n        background-size: 310px 31px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/_all.css",
    "content": "/* iCheck plugin Square skin\n----------------------------------- */\n.icheckbox_square,\n.iradio_square {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(square.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square {\n    background-position: 0 0;\n}\n    .icheckbox_square.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square {\n    background-position: -120px 0;\n}\n    .iradio_square.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square,\n    .iradio_square {\n        background-image: url(square@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* red */\n.icheckbox_square-red,\n.iradio_square-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-red {\n    background-position: 0 0;\n}\n    .icheckbox_square-red.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-red.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-red.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-red.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-red {\n    background-position: -120px 0;\n}\n    .iradio_square-red.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-red.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-red.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-red.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-red,\n    .iradio_square-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* green */\n.icheckbox_square-green,\n.iradio_square-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-green {\n    background-position: 0 0;\n}\n    .icheckbox_square-green.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-green.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-green.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-green.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-green {\n    background-position: -120px 0;\n}\n    .iradio_square-green.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-green.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-green.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-green.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-green,\n    .iradio_square-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* blue */\n.icheckbox_square-blue,\n.iradio_square-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-blue {\n    background-position: 0 0;\n}\n    .icheckbox_square-blue.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-blue.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-blue.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-blue.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-blue {\n    background-position: -120px 0;\n}\n    .iradio_square-blue.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-blue.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-blue.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-blue.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-blue,\n    .iradio_square-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* aero */\n.icheckbox_square-aero,\n.iradio_square-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-aero {\n    background-position: 0 0;\n}\n    .icheckbox_square-aero.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-aero.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-aero.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-aero.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-aero {\n    background-position: -120px 0;\n}\n    .iradio_square-aero.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-aero.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-aero.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-aero.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-aero,\n    .iradio_square-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* grey */\n.icheckbox_square-grey,\n.iradio_square-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-grey {\n    background-position: 0 0;\n}\n    .icheckbox_square-grey.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-grey.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-grey.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-grey.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-grey {\n    background-position: -120px 0;\n}\n    .iradio_square-grey.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-grey.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-grey.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-grey.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-grey,\n    .iradio_square-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* orange */\n.icheckbox_square-orange,\n.iradio_square-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-orange {\n    background-position: 0 0;\n}\n    .icheckbox_square-orange.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-orange.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-orange.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-orange.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-orange {\n    background-position: -120px 0;\n}\n    .iradio_square-orange.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-orange.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-orange.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-orange.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-orange,\n    .iradio_square-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* yellow */\n.icheckbox_square-yellow,\n.iradio_square-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_square-yellow.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-yellow.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-yellow.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-yellow.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-yellow {\n    background-position: -120px 0;\n}\n    .iradio_square-yellow.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-yellow.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-yellow.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-yellow.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-yellow,\n    .iradio_square-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* pink */\n.icheckbox_square-pink,\n.iradio_square-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-pink {\n    background-position: 0 0;\n}\n    .icheckbox_square-pink.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-pink.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-pink.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-pink.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-pink {\n    background-position: -120px 0;\n}\n    .iradio_square-pink.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-pink.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-pink.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-pink.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-pink,\n    .iradio_square-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* purple */\n.icheckbox_square-purple,\n.iradio_square-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-purple {\n    background-position: 0 0;\n}\n    .icheckbox_square-purple.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-purple.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-purple.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-purple.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-purple {\n    background-position: -120px 0;\n}\n    .iradio_square-purple.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-purple.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-purple.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-purple.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-purple,\n    .iradio_square-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/aero.css",
    "content": "/* iCheck plugin Square skin, aero\n----------------------------------- */\n.icheckbox_square-aero,\n.iradio_square-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-aero {\n    background-position: 0 0;\n}\n    .icheckbox_square-aero.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-aero.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-aero.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-aero.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-aero {\n    background-position: -120px 0;\n}\n    .iradio_square-aero.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-aero.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-aero.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-aero.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-aero,\n    .iradio_square-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/blue.css",
    "content": "/* iCheck plugin Square skin, blue\n----------------------------------- */\n.icheckbox_square-blue,\n.iradio_square-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-blue {\n    background-position: 0 0;\n}\n    .icheckbox_square-blue.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-blue.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-blue.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-blue.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-blue {\n    background-position: -120px 0;\n}\n    .iradio_square-blue.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-blue.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-blue.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-blue.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-blue,\n    .iradio_square-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/green.css",
    "content": "/* iCheck plugin Square skin, green\n----------------------------------- */\n.icheckbox_square-green,\n.iradio_square-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-green {\n    background-position: 0 0;\n}\n    .icheckbox_square-green.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-green.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-green.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-green.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-green {\n    background-position: -120px 0;\n}\n    .iradio_square-green.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-green.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-green.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-green.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-green,\n    .iradio_square-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/grey.css",
    "content": "/* iCheck plugin Square skin, grey\n----------------------------------- */\n.icheckbox_square-grey,\n.iradio_square-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-grey {\n    background-position: 0 0;\n}\n    .icheckbox_square-grey.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-grey.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-grey.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-grey.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-grey {\n    background-position: -120px 0;\n}\n    .iradio_square-grey.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-grey.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-grey.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-grey.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-grey,\n    .iradio_square-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/orange.css",
    "content": "/* iCheck plugin Square skin, orange\n----------------------------------- */\n.icheckbox_square-orange,\n.iradio_square-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-orange {\n    background-position: 0 0;\n}\n    .icheckbox_square-orange.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-orange.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-orange.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-orange.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-orange {\n    background-position: -120px 0;\n}\n    .iradio_square-orange.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-orange.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-orange.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-orange.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-orange,\n    .iradio_square-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/pink.css",
    "content": "/* iCheck plugin Square skin, pink\n----------------------------------- */\n.icheckbox_square-pink,\n.iradio_square-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-pink {\n    background-position: 0 0;\n}\n    .icheckbox_square-pink.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-pink.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-pink.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-pink.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-pink {\n    background-position: -120px 0;\n}\n    .iradio_square-pink.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-pink.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-pink.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-pink.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-pink,\n    .iradio_square-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/purple.css",
    "content": "/* iCheck plugin Square skin, purple\n----------------------------------- */\n.icheckbox_square-purple,\n.iradio_square-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-purple {\n    background-position: 0 0;\n}\n    .icheckbox_square-purple.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-purple.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-purple.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-purple.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-purple {\n    background-position: -120px 0;\n}\n    .iradio_square-purple.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-purple.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-purple.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-purple.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-purple,\n    .iradio_square-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/red.css",
    "content": "/* iCheck plugin Square skin, red\n----------------------------------- */\n.icheckbox_square-red,\n.iradio_square-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-red {\n    background-position: 0 0;\n}\n    .icheckbox_square-red.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-red.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-red.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-red.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-red {\n    background-position: -120px 0;\n}\n    .iradio_square-red.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-red.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-red.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-red.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-red,\n    .iradio_square-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/square.css",
    "content": "/* iCheck plugin Square skin, black\n----------------------------------- */\n.icheckbox_square,\n.iradio_square {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(square.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square {\n    background-position: 0 0;\n}\n    .icheckbox_square.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square {\n    background-position: -120px 0;\n}\n    .iradio_square.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square,\n    .iradio_square {\n        background-image: url(square@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/icheck/skins/square/yellow.css",
    "content": "/* iCheck plugin Square skin, yellow\n----------------------------------- */\n.icheckbox_square-yellow,\n.iradio_square-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_square-yellow.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-yellow.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-yellow.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-yellow.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-yellow {\n    background-position: -120px 0;\n}\n    .iradio_square-yellow.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-yellow.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-yellow.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-yellow.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-yellow,\n    .iradio_square-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/YUI/cropbox-min.js",
    "content": "\"use strict\";YUI.add(\"crop-box\",function(t){t.cropbox=t.Base.create(\"crop-box\",t.Base,[],{initializer:function(t){this.options=t,this.state={},this.render()},render:function(){return this.imageBox=t.one(this.options.imageBox),this.thumbBox=this.imageBox.one(this.options.thumbBox),this.spinner=this.imageBox.one(this.options.spinner),this.initObject(),this},initObject:function(){var e=this;this.spinner.show(),this.image=new Image,this.image.onload=function(){e.spinner.hide(),e.setBackground(),e.imageBox.on(\"mousedown\",e.imgMouseDown,e),e.imageBox.on(\"mousemove\",e.imgMouseMove,e),e.mouseup=t.one(\"body\").on(\"mouseup\",e.imgMouseUp,e),t.UA.gecko>0?e.imageBox.on(\"DOMMouseScroll\",e.zoomImage,e):e.imageBox.on(\"mousewheel\",e.zoomImage,e)},this.image.src=this.options.imgSrc},setBackground:function(){this.ratio||(this.ratio=1);var t=parseInt(this.image.width)*this.ratio,e=parseInt(this.image.height)*this.ratio,i=(this.imageBox.get(\"clientWidth\")-t)/2,o=(this.imageBox.get(\"clientHeight\")-e)/2;this.imageBox.setAttribute(\"style\",\"background-image: url(\"+this.image.src+\"); background-size: \"+t+\"px \"+e+\"px; background-position: \"+i+\"px \"+o+\"px; background-repeat: no-repeat\")},imgMouseDown:function(t){t.stopImmediatePropagation(),this.state.dragable=!0,this.state.mouseX=t.clientX,this.state.mouseY=t.clientY},imgMouseMove:function(t){if(t.stopImmediatePropagation(),this.state.dragable){var e=t.clientX-this.state.mouseX,i=t.clientY-this.state.mouseY,o=this.imageBox.getStyle(\"backgroundPosition\").split(\" \"),s=e+parseInt(o[0]),a=i+parseInt(o[1]);this.imageBox.setStyle(\"backgroundPosition\",s+\"px \"+a+\"px\"),this.state.mouseX=t.clientX,this.state.mouseY=t.clientY}},imgMouseUp:function(t){t.stopImmediatePropagation(),this.state.dragable=!1},zoomImage:function(t){this.ratio*=t.wheelDelta>0?1.1:.9,this.setBackground()},getDataURL:function(){var t=this.thumbBox.get(\"clientWidth\"),e=this.thumbBox.get(\"clientHeight\"),i=document.createElement(\"canvas\"),o=this.imageBox.getStyle(\"backgroundPosition\").split(\" \"),s=this.imageBox.getStyle(\"backgroundSize\").split(\" \"),a=parseInt(o[0])-this.imageBox.get(\"clientWidth\")/2+t/2,n=parseInt(o[1])-this.imageBox.get(\"clientHeight\")/2+e/2,g=parseInt(s[0]),h=parseInt(s[1]),r=parseInt(this.image.height),m=parseInt(this.image.width);i.width=t,i.height=e;var u=i.getContext(\"2d\");u.drawImage(this.image,0,0,m,r,a,n,g,h);var c=i.toDataURL(\"image/png\");return c},getBlob:function(){for(var t=this.getDataURL(),e=t.replace(\"data:image/png;base64,\",\"\"),i=atob(e),o=[],s=0;s<i.length;s++)o.push(i.charCodeAt(s));return new Blob([new Uint8Array(o)],{type:\"image/png\"})},zoomIn:function(){this.ratio*=1.1,this.setBackground()},zoomOut:function(){this.ratio*=.9,this.setBackground()},destructor:function(){this.mouseup&&this.mouseup.detach()}})},\"1.0\",{requires:[\"node\",\"base\"]});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/YUI/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n'use strict';\nYUI.add('crop-box', function (Y) {\n    Y.cropbox = Y.Base.create('crop-box', Y.Base, [],\n        {\n            initializer: function (options)\n            {\n                this.options = options;\n                this.state = {};\n                this.render();\n            },\n            render: function ()\n            {\n                var self = this;\n                this.imageBox = Y.one(this.options.imageBox);\n                this.thumbBox = this.imageBox.one(this.options.thumbBox);\n                this.spinner = this.imageBox.one(this.options.spinner);\n\n                this.initObject();\n                return this;\n            },\n            initObject: function()\n            {\n                var self = this;\n                this.spinner.show();\n\n                this.image = new Image();\n                this.image.onload = function() {\n                    self.spinner.hide();\n                    self.setBackground();\n\n                    //event handler\n                    self.imageBox.on('mousedown', self.imgMouseDown, self);\n                    self.imageBox.on('mousemove', self.imgMouseMove, self);\n                    self.mouseup = Y.one('body').on('mouseup', self.imgMouseUp, self);\n\n                    Y.UA.gecko > 0?\n                        self.imageBox.on('DOMMouseScroll', self.zoomImage, self):\n                        self.imageBox.on('mousewheel', self.zoomImage, self);\n                };\n                this.image.src = this.options.imgSrc;\n            },\n            setBackground: function()\n            {\n                if(!this.ratio) this.ratio = 1;\n\n                var w =  parseInt(this.image.width)*this.ratio;\n                var h =  parseInt(this.image.height)*this.ratio;\n\n                var pw = (this.imageBox.get('clientWidth') - w) / 2;\n                var ph = (this.imageBox.get('clientHeight') - h) / 2;\n\n                this.imageBox.setAttribute('style',\n                    'background-image: url(' + this.image.src + '); ' +\n                    'background-size: ' + w +'px ' + h + 'px; ' +\n                    'background-position: ' + pw + 'px ' + ph + 'px; ' +\n                    'background-repeat: no-repeat');\n            },\n            imgMouseDown: function(e)\n            {\n                e.stopImmediatePropagation();\n                this.state.dragable = true;\n                this.state.mouseX = e.clientX;\n                this.state.mouseY = e.clientY;\n            },\n            imgMouseMove: function(e)\n            {\n                e.stopImmediatePropagation();\n                if (this.state.dragable)\n                {\n                    var x = e.clientX - this.state.mouseX;\n                    var y = e.clientY - this.state.mouseY;\n\n                    var bg = this.imageBox.getStyle('backgroundPosition').split(' ');\n\n                    var bgX = x + parseInt(bg[0]);\n                    var bgY = y + parseInt(bg[1]);\n\n                    this.imageBox.setStyle('backgroundPosition', bgX +'px ' + bgY + 'px');\n\n                    this.state.mouseX = e.clientX;\n                    this.state.mouseY = e.clientY;\n                }\n            },\n            imgMouseUp: function(e)\n            {\n                e.stopImmediatePropagation();\n                this.state.dragable = false;\n            },\n            zoomImage: function(e)\n            {\n                e.wheelDelta > 0? this.ratio*=1.1 : this.ratio*=0.9;\n                this.setBackground();\n            },\n            getDataURL: function ()\n            {\n                var self = this,\n                    width = this.thumbBox.get('clientWidth'),\n                    height = this.thumbBox.get('clientHeight'),\n                    canvas = document.createElement(\"canvas\"),\n                    dim = this.imageBox.getStyle('backgroundPosition').split(' '),\n                    size = this.imageBox.getStyle('backgroundSize').split(' '),\n                    dx = parseInt(dim[0]) - this.imageBox.get('clientWidth')/2 + width/2,\n                    dy = parseInt(dim[1]) - this.imageBox.get('clientHeight')/2 + height/2,\n                    dw = parseInt(size[0]),\n                    dh = parseInt(size[1]),\n                    sh = parseInt(this.image.height),\n                    sw = parseInt(this.image.width);\n\n                canvas.width = width;\n                canvas.height = height;\n                var context = canvas.getContext(\"2d\");\n                context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n                var imageData = canvas.toDataURL('image/png');\n\n                return imageData;\n            },\n            getBlob: function()\n            {\n                var imageData = this.getDataURL();\n                var b64 = imageData.replace('data:image/png;base64,','');\n                var binary = atob(b64);\n                var array = [];\n                for (var i = 0; i < binary.length; i++) {\n                    array.push(binary.charCodeAt(i));\n                }\n                return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n            },\n            zoomIn: function ()\n            {\n                this.ratio*=1.1;\n                this.setBackground();\n            },\n            zoomOut: function ()\n            {\n                this.ratio*=0.9;\n                this.setBackground();\n            },\n            destructor: function ()\n            {\n                if (this.mouseup) this.mouseup.detach()\n            }\n        });\n}, '1.0',\n{\n    requires: [ 'node', 'base' ]\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/YUI/example/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<script src=\"http://yui.yahooapis.com/3.17.2/build/yui/yui-min.js\"></script>\n<script src=\"../cropbox.js\"></script>\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n<script type=\"text/javascript\">\n    YUI().use('node', 'crop-box', function(Y){\n        var options =\n        {\n            imageBox: '.imageBox',\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = new Y.cropbox(options);\n        Y.one('#file').on('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = new Y.cropbox(options);\n            }\n            reader.readAsDataURL(this.get('files')._nodes[0]);\n            this.get('files')._nodes = [];\n        })\n        Y.one('#btnCrop').on('click', function(){\n            var img = cropper.getDataURL()\n            Y.one('.cropped').append('<img src=\"'+img+'\">');\n        })\n        Y.one('#btnZoomIn').on('click', function(){\n            cropper.zoomIn();\n        })\n        Y.one('#btnZoomOut').on('click', function(){\n            cropper.zoomOut();\n        })\n    })\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/YUI/example/style.css",
    "content": ".imageBox\n{\n    position: relative;\n    height: 400px;\n    width: 400px;\n    border:1px solid #aaa;\n    background: #fff;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    cursor:move;\n}\n\n.imageBox .thumbBox\n{\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 200px;\n    height: 200px;\n    margin-top: -100px;\n    margin-left: -100px;\n    box-sizing: border-box;\n    border: 1px solid rgb(102, 102, 102);\n    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n    background: none repeat scroll 0% 0% transparent;\n}\n\n.imageBox .spinner\n{\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    text-align: center;\n    line-height: 400px;\n    background: rgba(0,0,0,0.7);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/css/htmleaf-demo.css",
    "content": "@font-face {\n\tfont-family: 'icomoon';\n\tsrc:url('../fonts/icomoon.eot?rretjt');\n\tsrc:url('../fonts/icomoon.eot?#iefixrretjt') format('embedded-opentype'),\n\t\turl('../fonts/icomoon.woff?rretjt') format('woff'),\n\t\turl('../fonts/icomoon.ttf?rretjt') format('truetype'),\n\t\turl('../fonts/icomoon.svg?rretjt#icomoon') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n[class^=\"icon-\"], [class*=\" icon-\"] {\n\tfont-family: 'icomoon';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t/* Better Font Rendering =========== */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nbody, html { font-size: 100%; \tpadding: 0; margin: 0;}\n\n/* Reset */\n*,\n*:after,\n*:before {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n\n/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */\n.clearfix:before,\n.clearfix:after {\n\tcontent: \" \";\n\tdisplay: table;\n}\n\n.clearfix:after {\n\tclear: both;\n}\n\nbody{\n\tfont-weight: 500;\n\tfont-size: 1.05em;\n\tfont-family: \"Microsoft YaHei\",\"Segoe UI\", \"Lucida Grande\", Helvetica, Arial,sans-serif;\n}\na{ color: rgba(255, 255, 255, 0.6);outline: none;text-decoration: none;-webkit-transition: 0.2s;transition: 0.2s;}\na:hover,a:focus{color:#74777b;text-decoration: none;}\n.htmleaf-container{\n\tmargin: 0 auto;\n}\n\n.bgcolor-1 { background: #f0efee; }\n.bgcolor-2 { background: #f9f9f9; }\n.bgcolor-3 { background: #e8e8e8; }/*light grey*/\n.bgcolor-4 { background: #2f3238; color: #fff; }/*Dark grey*/\n.bgcolor-5 { background: #df6659; color: #521e18; }/*pink1*/\n.bgcolor-6 { background: #2fa8ec; }/*sky blue*/\n.bgcolor-7 { background: #d0d6d6; }/*White tea*/\n.bgcolor-8 { background: #3d4444; color: #fff; }/*Dark grey2*/\n.bgcolor-9 { background: #ef3f52; color: #fff;}/*pink2*/\n.bgcolor-10{ background: #64448f; color: #fff;}/*Violet*/\n.bgcolor-11{ background: #3755ad; color: #fff;}/*dark blue*/\n.bgcolor-12{ background: #3498DB; color: #fff;}/*light blue*/\n.bgcolor-20{ background: #494A5F;color: #D5D6E2;}\n/* Header */\n.htmleaf-header{\n\tpadding: 1em 190px 1em;\n\tletter-spacing: -1px;\n\ttext-align: center;\n\tbackground: #66677c;\n}\n.htmleaf-header h1 {\n\tcolor: #D5D6E2;\n\tfont-weight: 600;\n\tfont-size: 2em;\n\tline-height: 1;\n\tmargin-bottom: 0;\n}\n.htmleaf-header h1 span {\n\tdisplay: block;\n\tfont-size: 60%;\n\tfont-weight: 400;\n\tpadding: 0.8em 0 0.5em 0;\n\tcolor: #c3c8cd;\n}\n/*nav*/\n.htmleaf-demo a{color: #fff;text-decoration: none;}\n.htmleaf-demo{width: 100%;padding-bottom: 1.2em;}\n.htmleaf-demo a{display: inline-block;margin: 0.5em;padding: 0.6em 1em;border: 3px solid #fff;font-weight: 700;}\n.htmleaf-demo a:hover{opacity: 0.6;}\n.htmleaf-demo a.current{background:#1d7db1;color: #fff; }\n/* Top Navigation Style */\n.htmleaf-links {\n\tposition: relative;\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n\tfont-size: 1.5em;\n\ttext-align: center;\n}\n\n.htmleaf-links::after {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 50%;\n\tmargin-left: -1px;\n\twidth: 2px;\n\theight: 100%;\n\tbackground: #dbdbdb;\n\tcontent: '';\n\t-webkit-transform: rotate3d(0,0,1,22.5deg);\n\ttransform: rotate3d(0,0,1,22.5deg);\n}\n\n.htmleaf-icon {\n\tdisplay: inline-block;\n\tmargin: 0.5em;\n\tpadding: 0em 0;\n\twidth: 1.5em;\n\ttext-decoration: none;\n}\n\n.htmleaf-icon span {\n\tdisplay: none;\n}\n\n.htmleaf-icon:before {\n\tmargin: 0 5px;\n\ttext-transform: none;\n\tfont-weight: normal;\n\tfont-style: normal;\n\tfont-variant: normal;\n\tfont-family: 'icomoon';\n\tline-height: 1;\n\tspeak: none;\n\t-webkit-font-smoothing: antialiased;\n}\n/* footer */\n.htmleaf-footer{width: 100%;padding-top: 10px;}\n.htmleaf-small{font-size: 0.8em;}\n.center{text-align: center;}\n/****/\n.related {\n\twidth: 100%;\n\tcolor: #fff;\n\tbackground: #494A5F;\n\ttext-align: center;\n\tfont-size: 1.25em;\n\tpadding: 0.5em 0;\n\toverflow: hidden;\n}\n\n.related > a {\n\tvertical-align: top;\n\twidth: calc(100% - 20px);\n\tmax-width: 340px;\n\tdisplay: inline-block;\n\ttext-align: center;\n\tmargin: 20px 10px;\n\tpadding: 25px;\n\tfont-family: \"Microsoft YaHei\",\"宋体\",\"Segoe UI\", \"Lucida Grande\", Helvetica, Arial,sans-serif, FreeSans, Arimo;\n}\n.related a {\n\tdisplay: inline-block;\n\ttext-align: left;\n\tmargin: 20px auto;\n\tpadding: 10px 20px;\n\topacity: 0.8;\n\t-webkit-transition: opacity 0.3s;\n\ttransition: opacity 0.3s;\n\t-webkit-backface-visibility: hidden;\n}\n\n.related a:hover,\n.related a:active {\n\topacity: 1;\n}\n\n.related a img {\n\tmax-width: 100%;\n\topacity: 0.8;\n\tborder-radius: 4px;\n}\n.related a:hover img,\n.related a:active img {\n\topacity: 1;\n}\n.related h3{font-family: \"Microsoft YaHei\", sans-serif;font-size: 1.2em}\n.related a h3 {\n\tfont-size: 0.85em;\n\tfont-weight: 300;\n\tmargin-top: 0.15em;\n\tcolor: #fff;\n}\n/* icomoon */\n.icon-htmleaf-home-outline:before {\n\tcontent: \"\\e5000\";\n}\n\n.icon-htmleaf-arrow-forward-outline:before {\n\tcontent: \"\\e5001\";\n}\n\n@media screen and (max-width: 1024px) {\n\t.htmleaf-header {\n\t\tpadding: 2em 10% 2em;\n\t}\n\t.htmleaf-header h1 {\n        font-size:1.4em;\n    }\n    .htmleaf-links{font-size: 1.4em}\n}\n\n@media screen and (max-width: 960px) {\n\t.htmleaf-header {\n\t\tpadding: 2em 10% 2em;\n\t}\n\t.htmleaf-header h1 {\n        font-size:1.2em;\n    }\n    .htmleaf-links{font-size: 1.2em}\n    .related h3{font-size: 1em;}\n\t.related a h3 {\n\t\tfont-size: 0.8em;\n\t}\n}\n\n@media screen and (max-width: 766px) {\n\t.htmleaf-header h1 {\n        font-size:1.3em;\n    }\n    .htmleaf-links{font-size: 1.3em}\n}\n\n@media screen and (max-width: 640px) {\n\t.htmleaf-header {\n\t\tpadding: 2em 10% 2em;\n\t}\n\t.htmleaf-header h1 {\n        font-size:1em;\n    }\n    .htmleaf-links{font-size: 1em}\n    .related h3{font-size: 0.8em;}\n\t.related a h3 {\n\t\tfont-size: 0.6em;\n\t}\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/css/normalize.css",
    "content": "article, aside, details, figcaption, figure, footer, header, hgroup,\n\tmain, nav, section, summary {\n\tdisplay: block;\n}\n\naudio, canvas, video {\n\tdisplay: inline-block;\n}\n\naudio:not ([controls] ){\n\tdisplay: none;\n\theight: 0;\n}\n\n[hidden] {\n\tdisplay: none;\n}\n\nhtml {\n\tfont-family: sans-serif;\n\t-ms-text-size-adjust: 100%;\n\t-webkit-text-size-adjust: 100%;\n}\n\nbody {\n\tmargin: 0;\n}\n\na:focus {\n\toutline: thin dotted;\n}\n\na:active, a:hover {\n\toutline: 0;\n}\n\nh1 {\n\tfont-size: 2em;\n\tmargin: 0.67em 0;\n}\n\nabbr[title] {\n\tborder-bottom: 1px dotted;\n}\n\nb, strong {\n\tfont-weight: bold;\n}\n\ndfn {\n\tfont-style: italic;\n}\n\nhr {\n\t-moz-box-sizing: content-box;\n\tbox-sizing: content-box;\n\theight: 0;\n}\n\nmark {\n\tbackground: #ff0;\n\tcolor: #000;\n}\n\ncode, kbd, pre, samp {\n\tfont-family: monospace, serif;\n\tfont-size: 1em;\n}\n\npre {\n\twhite-space: pre-wrap;\n}\n\nq {\n\tquotes: \"\\201C\" \"\\201D\" \"\\2018\" \"\\2019\";\n}\n\nsmall {\n\tfont-size: 80%;\n}\n\nsub, sup {\n\tfont-size: 75%;\n\tline-height: 0;\n\tposition: relative;\n\tvertical-align: baseline;\n}\n\nsup {\n\ttop: -0.5em;\n}\n\nsub {\n\tbottom: -0.25em;\n}\n\nimg {\n\tborder: 0;\n}\n\nsvg:not (:root ){\n\toverflow: hidden;\n}\n\nfigure {\n\tmargin: 0;\n}\n\nfieldset {\n\tborder: 1px solid #c0c0c0;\n\tmargin: 0 2px;\n\tpadding: 0.35em 0.625em 0.75em;\n}\n\nlegend {\n\tborder: 0;\n\tpadding: 0;\n}\n\nbutton, input, select, textarea {\n\tfont-family: inherit;\n\tfont-size: 100%;\n\tmargin: 0;\n}\n\nbutton, input {\n\tline-height: normal;\n}\n\nbutton, select {\n\ttext-transform: none;\n}\n\nbutton, html input[type=\"button\"], input[type=\"reset\"], input[type=\"submit\"]\n\t{\n\t-webkit-appearance: button;\n\tcursor: pointer;\n}\n\nbutton[disabled], html input[disabled] {\n\tcursor: default;\n}\n\ninput[type=\"checkbox\"], input[type=\"radio\"] {\n\tbox-sizing: border-box;\n\tpadding: 0;\n}\n\ninput[type=\"search\"] {\n\t-webkit-appearance: textfield;\n\t-moz-box-sizing: content-box;\n\t-webkit-box-sizing: content-box;\n\tbox-sizing: content-box;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button, input[type=\"search\"]::-webkit-search-decoration\n\t{\n\t-webkit-appearance: none;\n}\n\nbutton::-moz-focus-inner, input::-moz-focus-inner {\n\tborder: 0;\n\tpadding: 0;\n}\n\ntextarea {\n\toverflow: auto;\n\tvertical-align: top;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/css/style.css",
    "content": "@charset \"utf-8\";\n.container {\n\twidth: 400px;\n/* \tmargin: 40px auto 0 auto; */\n\tmargin-top: 10px;\n\tmargin-left: 10px;\n\tposition: relative;\n\tfont-family: 微软雅黑;\n\tfont-size: 12px;\n}\n.container p {\n\tline-height: 12px;\n\tline-height: 0px;\n\theight: 0px;\n\tmargin: 10px;\n\tcolor: #bbb\n}\n.action {\n\twidth: 400px;\n\theight: 30px;\n\tmargin: 25px 0;\n}\n.cropped {\n\tposition: absolute;\n\tright: -230px;\n\ttop: 0;\n\twidth: 200px;\n\tborder: 1px #ddd solid;\n\theight: 460px;\n\tpadding: 4px;\n\tbox-shadow: 0px 0px 12px #ddd;\n\ttext-align: center;\n}\n.imageBox {\n\tposition: relative;\n\theight: 400px;\n\twidth: 400px;\n\tborder: 1px solid #aaa;\n\tbackground: #fff;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n\tcursor: move;\n\tbox-shadow: 4px 4px 12px #B0B0B0; \n}\n.imageBox .thumbBox {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\twidth: 200px;\n\theight: 200px;\n\tmargin-top: -100px;\n\tmargin-left: -100px;\n\tbox-sizing: border-box;\n\tborder: 1px solid rgb(102, 102, 102);\n\tbox-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n\tbackground: none repeat scroll 0% 0% transparent;\n}\n.imageBox .spinner {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbottom: 0;\n\tright: 0;\n\ttext-align: center;\n\tline-height: 400px;\n\tbackground: rgba(0,0,0,0.7);\n}\n.Btnsty_peyton{ float: right;\n   width: 66px;\n  display: inline-block;\n  margin-bottom: 10px;\n  height: 57px;\n  line-height: 57px;\n  font-size: 20px;\n  color: #FFFFFF;\n  margin:0px 2px;\n  background-color: #f38e81;\n  border-radius: 3px;\n  text-decoration: none;\n  cursor: pointer;\n  box-shadow: 0px 0px 5px #B0B0B0;\n  border: 0px #fff solid;}\n/*选择文件上传*/\n.new-contentarea {\n\twidth: 165px;\n\toverflow:hidden;\n\tmargin: 0 auto;\n\tposition:relative;float:left;\n}\n.new-contentarea label {\n\twidth:100%;\n\theight:100%;\n\tdisplay:block;\n}\n.new-contentarea input[type=file] {\n\twidth:188px;\n\theight:60px;\n\tbackground:#333;\n\tmargin: 0 auto;\n\tposition:absolute;\n\tright:50%;\n\tmargin-right:-94px;\n\ttop:0;\n\tright/*\\**/:0px\\9;\n\tmargin-right/*\\**/:0px\\9;\n\twidth/*\\**/:10px\\9;\n\topacity:0;\n\tfilter:alpha(opacity=0);\n\tz-index:2;\n}\na.upload-img{\n\twidth:165px;\n\tdisplay: inline-block;\n\tmargin-bottom: 10px;\n\theight:57px;\n\tline-height: 57px;\n\tfont-size: 20px;\n\tcolor: #FFFFFF;\n\tbackground-color: #f38e81;\n\tborder-radius: 3px;\n\ttext-decoration:none;\n\tcursor:pointer;\n\tborder: 0px #fff solid;\n\tbox-shadow: 0px 0px 5px #B0B0B0;\n}\na.upload-img:hover{\n\tbackground-color: #ec7e70;\n}\n\n.tc{text-align:center;}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"> \n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<title>jQuery轻量级拖动剪裁头像图片插件|DEMO_jQuery之家-自由分享jQuery、html5、css3的插件库</title>\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/normalize.css\" />\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/htmleaf-demo.css\">\n\t<link rel=\"stylesheet\" href=\"css/style.css\" type=\"text/css\" />\n</head>\n<body>\n\t<div class=\"htmleaf-container\">\n\t\t<header class=\"htmleaf-header\">\n\t\t\t<h1>jQuery轻量级拖动剪裁头像图片插件 <span>A jQuery plugin designed to provide gallery view for images</span></h1>\n\t\t\t<div class=\"htmleaf-links\">\n\t\t\t\t<a class=\"htmleaf-icon icon-htmleaf-home-outline\" href=\"http://www.htmleaf.com/\" title=\"jQuery之家\" target=\"_blank\"><span> jQuery之家</span></a>\n\t\t\t\t<a class=\"htmleaf-icon icon-htmleaf-arrow-forward-outline\" href=\"http://www.htmleaf.com/jQuery/Image-Effects/201612034236.html\" title=\"返回下载页\" target=\"_blank\"><span> 返回下载页</span></a>\n\t\t\t</div>\n\t\t</header>\n\t\t<div class=\"container\">\n\t\t  <div class=\"imageBox\">\n\t\t    <div class=\"thumbBox\"></div>\n\t\t    <div class=\"spinner\" style=\"display: none\">Loading...</div>\n\t\t  </div>\n\t\t  <div class=\"action\"> \n\t\t    <div class=\"new-contentarea tc\"> \n\t\t    \t<a href=\"javascript:void(0)\" class=\"upload-img\">\n\t\t      \t\t<label for=\"upload-file\">上传图像</label>\n\t\t      </a>\n\t\t      <input type=\"file\" class=\"\" name=\"upload-file\" id=\"upload-file\" />\n\t\t    </div>\n\t\t    <input type=\"button\" id=\"btnCrop\"  class=\"Btnsty_peyton\" value=\"裁切\">\n\t\t    <input type=\"button\" id=\"btnZoomIn\" class=\"Btnsty_peyton\" value=\"+\"  >\n\t\t    <input type=\"button\" id=\"btnZoomOut\" class=\"Btnsty_peyton\" value=\"-\" >\n\t\t  </div>\n\t\t  <div class=\"cropped\"></div>\n\t\t</div>\n\t\t<div class=\"related\">\n\t\t    <h3>如果你喜欢这个插件，那么你可能也喜欢:</h3>\n\t\t    <a href=\"http://www.htmleaf.com/jQuery/Image-Effects/201608063830.html\">\n\t\t\t  <img src=\"related/1.jpg\" width=\"300\" alt=\"支持移动手机的响应式图片剪裁jQuery插件\"/>\n\t\t\t  <h3>支持移动手机的响应式图片剪裁jQuery插件</h3>\n\t\t\t</a>\n\t\t\t<a href=\"http://www.htmleaf.com/jQuery/Image-Effects/201510292721.html\">\n\t\t\t  <img src=\"related/2.jpg\" width=\"300\" alt=\"支持移动设备触摸手势的jQuery图片裁剪插件\"/>\n\t\t\t  <h3>支持移动设备触摸手势的jQuery图片裁剪插件</h3>\n\t\t\t</a>\n\n\t\t</div>\n\t</div>\n\t\n\t<script src=\"http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js\" type=\"text/javascript\"></script>\n\t<script>window.jQuery || document.write('<script src=\"js/jquery-1.11.0.min.js\"><\\/script>')</script>\n\t<script type=\"text/javascript\" src=\"js/cropbox.js\"></script>\n\t<script type=\"text/javascript\">\n\t$(window).load(function() {\n\t\tvar options =\n\t\t{\n\t\t\tthumbBox: '.thumbBox',\n\t\t\tspinner: '.spinner',\n\t\t\timgSrc: 'img/avatar.jpg'\n\t\t}\n\t\tvar cropper = $('.imageBox').cropbox(options);\n\t\t$('#upload-file').on('change', function(){\n\t\t\tvar reader = new FileReader();\n\t\t\treader.onload = function(e) {\n\t\t\t\toptions.imgSrc = e.target.result;\n\t\t\t\tcropper = $('.imageBox').cropbox(options);\n\t\t\t}\n\t\t\treader.readAsDataURL(this.files[0]);\n\t\t\tthis.files = [];\n\t\t})\n\t\t$('#btnCrop').on('click', function(){\n\t\t\tvar img = cropper.getDataURL();\n\t\t\t$('.cropped').html('');\n\t\t\t$('.cropped').append('<img src=\"'+img+'\" align=\"absmiddle\" style=\"width:64px;margin-top:4px;border-radius:64px;box-shadow:0px 0px 12px #7E7E7E;\" ><p>64px*64px</p>');\n\t\t\t$('.cropped').append('<img src=\"'+img+'\" align=\"absmiddle\" style=\"width:128px;margin-top:4px;border-radius:128px;box-shadow:0px 0px 12px #7E7E7E;\"><p>128px*128px</p>');\n\t\t\t$('.cropped').append('<img src=\"'+img+'\" align=\"absmiddle\" style=\"width:180px;margin-top:4px;border-radius:180px;box-shadow:0px 0px 12px #7E7E7E;\"><p>180px*180px</p>');\n\t\t})\n\t\t$('#btnZoomIn').on('click', function(){\n\t\t\tcropper.zoomIn();\n\t\t})\n\t\t$('#btnZoomOut').on('click', function(){\n\t\t\tcropper.zoomOut();\n\t\t})\n\t});\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/javascript/cropbox-min.js",
    "content": "\"use strict\";var cropbox=function(e){var t=document.querySelector(e.imageBox),n={state:{},ratio:1,options:e,imageBox:t,thumbBox:t.querySelector(e.thumbBox),spinner:t.querySelector(e.spinner),image:new Image,getDataURL:function(){var e=this.thumbBox.clientWidth,n=this.thumbBox.clientHeight,a=document.createElement(\"canvas\"),i=t.style.backgroundPosition.split(\" \"),o=t.style.backgroundSize.split(\" \"),r=parseInt(i[0])-t.clientWidth/2+e/2,s=parseInt(i[1])-t.clientHeight/2+n/2,c=parseInt(o[0]),u=parseInt(o[1]),d=parseInt(this.image.height),l=parseInt(this.image.width);a.width=e,a.height=n;var g=a.getContext(\"2d\");g.drawImage(this.image,0,0,l,d,r,s,c,u);var m=a.toDataURL(\"image/png\");return m},getBlob:function(){for(var e=this.getDataURL(),t=e.replace(\"data:image/png;base64,\",\"\"),n=atob(t),a=[],i=0;i<n.length;i++)a.push(n.charCodeAt(i));return new Blob([new Uint8Array(a)],{type:\"image/png\"})},zoomIn:function(){this.ratio*=1.1,r()},zoomOut:function(){this.ratio*=.9,r()}},a=function(e,t,n){e.attachEvent?e.attachEvent(\"on\"+t,n):e.addEventListener&&e.addEventListener(t,n)},i=function(e,t,n){e.detachEvent?e.detachEvent(\"on\"+t,n):e.removeEventListener&&e.removeEventListener(t,render)},o=function(e){window.event?e.cancelBubble=!0:e.stopImmediatePropagation()},r=function(){var e=parseInt(n.image.width)*n.ratio,a=parseInt(n.image.height)*n.ratio,i=(t.clientWidth-e)/2,o=(t.clientHeight-a)/2;t.setAttribute(\"style\",\"background-image: url(\"+n.image.src+\"); background-size: \"+e+\"px \"+a+\"px; background-position: \"+i+\"px \"+o+\"px; background-repeat: no-repeat\")},s=function(e){o(e),n.state.dragable=!0,n.state.mouseX=e.clientX,n.state.mouseY=e.clientY},c=function(e){if(o(e),n.state.dragable){var a=e.clientX-n.state.mouseX,i=e.clientY-n.state.mouseY,r=t.style.backgroundPosition.split(\" \"),s=a+parseInt(r[0]),c=i+parseInt(r[1]);t.style.backgroundPosition=s+\"px \"+c+\"px\",n.state.mouseX=e.clientX,n.state.mouseY=e.clientY}},u=function(e){o(e),n.state.dragable=!1},d=function(e){var t=window.event||e,a=t.detail?-120*t.detail:t.wheelDelta;n.ratio*=a>-120?1.1:.9,r()};return n.spinner.style.display=\"block\",n.image.onload=function(){n.spinner.style.display=\"none\",r(),a(t,\"mousedown\",s),a(t,\"mousemove\",c),a(document.body,\"mouseup\",u);var e=/Firefox/i.test(navigator.userAgent)?\"DOMMouseScroll\":\"mousewheel\";a(t,e,d)},n.image.src=e.imgSrc,a(t,\"DOMNodeRemoved\",function(){i(document.body,\"DOMNodeRemoved\",u)}),n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/javascript/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n'use strict';\nvar cropbox = function(options){\n    var el = document.querySelector(options.imageBox),\n    obj =\n    {\n        state : {},\n        ratio : 1,\n        options : options,\n        imageBox : el,\n        thumbBox : el.querySelector(options.thumbBox),\n        spinner : el.querySelector(options.spinner),\n        image : new Image(),\n        getDataURL: function ()\n        {\n            var width = this.thumbBox.clientWidth,\n                height = this.thumbBox.clientHeight,\n                canvas = document.createElement(\"canvas\"),\n                dim = el.style.backgroundPosition.split(' '),\n                size = el.style.backgroundSize.split(' '),\n                dx = parseInt(dim[0]) - el.clientWidth/2 + width/2,\n                dy = parseInt(dim[1]) - el.clientHeight/2 + height/2,\n                dw = parseInt(size[0]),\n                dh = parseInt(size[1]),\n                sh = parseInt(this.image.height),\n                sw = parseInt(this.image.width);\n\n            canvas.width = width;\n            canvas.height = height;\n            var context = canvas.getContext(\"2d\");\n            context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n            var imageData = canvas.toDataURL('image/png');\n            return imageData;\n        },\n        getBlob: function()\n        {\n            var imageData = this.getDataURL();\n            var b64 = imageData.replace('data:image/png;base64,','');\n            var binary = atob(b64);\n            var array = [];\n            for (var i = 0; i < binary.length; i++) {\n                array.push(binary.charCodeAt(i));\n            }\n            return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n        },\n        zoomIn: function ()\n        {\n            this.ratio*=1.1;\n            setBackground();\n        },\n        zoomOut: function ()\n        {\n            this.ratio*=0.9;\n            setBackground();\n        }\n    },\n    attachEvent = function(node, event, cb)\n    {\n        if (node.attachEvent)\n            node.attachEvent('on'+event, cb);\n        else if (node.addEventListener)\n            node.addEventListener(event, cb);\n    },\n    detachEvent = function(node, event, cb)\n    {\n        if(node.detachEvent) {\n            node.detachEvent('on'+event, cb);\n        }\n        else if(node.removeEventListener) {\n            node.removeEventListener(event, render);\n        }\n    },\n    stopEvent = function (e) {\n        if(window.event) e.cancelBubble = true;\n        else e.stopImmediatePropagation();\n    },\n    setBackground = function()\n    {\n        var w =  parseInt(obj.image.width)*obj.ratio;\n        var h =  parseInt(obj.image.height)*obj.ratio;\n\n        var pw = (el.clientWidth - w) / 2;\n        var ph = (el.clientHeight - h) / 2;\n\n        el.setAttribute('style',\n                'background-image: url(' + obj.image.src + '); ' +\n                'background-size: ' + w +'px ' + h + 'px; ' +\n                'background-position: ' + pw + 'px ' + ph + 'px; ' +\n                'background-repeat: no-repeat');\n    },\n    imgMouseDown = function(e)\n    {\n        stopEvent(e);\n\n        obj.state.dragable = true;\n        obj.state.mouseX = e.clientX;\n        obj.state.mouseY = e.clientY;\n    },\n    imgMouseMove = function(e)\n    {\n        stopEvent(e);\n\n        if (obj.state.dragable)\n        {\n            var x = e.clientX - obj.state.mouseX;\n            var y = e.clientY - obj.state.mouseY;\n\n            var bg = el.style.backgroundPosition.split(' ');\n\n            var bgX = x + parseInt(bg[0]);\n            var bgY = y + parseInt(bg[1]);\n\n            el.style.backgroundPosition = bgX +'px ' + bgY + 'px';\n\n            obj.state.mouseX = e.clientX;\n            obj.state.mouseY = e.clientY;\n        }\n    },\n    imgMouseUp = function(e)\n    {\n        stopEvent(e);\n        obj.state.dragable = false;\n    },\n    zoomImage = function(e)\n    {\n        var evt=window.event || e;\n        var delta=evt.detail? evt.detail*(-120) : evt.wheelDelta;\n        delta > -120 ? obj.ratio*=1.1 : obj.ratio*=0.9;\n        setBackground();\n    }\n\n    obj.spinner.style.display = 'block';\n    obj.image.onload = function() {\n        obj.spinner.style.display = 'none';\n        setBackground();\n\n        attachEvent(el, 'mousedown', imgMouseDown);\n        attachEvent(el, 'mousemove', imgMouseMove);\n        attachEvent(document.body, 'mouseup', imgMouseUp);\n        var mousewheel = (/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel';\n        attachEvent(el, mousewheel, zoomImage);\n    };\n    obj.image.src = options.imgSrc;\n    attachEvent(el, 'DOMNodeRemoved', function(){detachEvent(document.body, 'DOMNodeRemoved', imgMouseUp)});\n\n    return obj;\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/javascript/example/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<script src=\"../cropbox.js\"></script>\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n<script type=\"text/javascript\">\n    window.onload = function() {\n        var options =\n        {\n            imageBox: '.imageBox',\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = new cropbox(options);\n        document.querySelector('#file').addEventListener('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = new cropbox(options);\n            }\n            reader.readAsDataURL(this.files[0]);\n            this.files = [];\n        })\n        document.querySelector('#btnCrop').addEventListener('click', function(){\n            var img = cropper.getDataURL();\n            document.querySelector('.cropped').innerHTML += '<img src=\"'+img+'\">';\n        })\n        document.querySelector('#btnZoomIn').addEventListener('click', function(){\n            cropper.zoomIn();\n        })\n        document.querySelector('#btnZoomOut').addEventListener('click', function(){\n            cropper.zoomOut();\n        })\n    };\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/javascript/example/style.css",
    "content": ".imageBox\n{\n    position: relative;\n    height: 400px;\n    width: 400px;\n    border:1px solid #aaa;\n    background: #fff;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    cursor:move;\n}\n\n.imageBox .thumbBox\n{\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 200px;\n    height: 200px;\n    margin-top: -100px;\n    margin-left: -100px;\n    box-sizing: border-box;\n    border: 1px solid rgb(102, 102, 102);\n    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n    background: none repeat scroll 0% 0% transparent;\n}\n\n.imageBox .spinner\n{\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    text-align: center;\n    line-height: 400px;\n    background: rgba(0,0,0,0.7);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/jquery/cropbox-min.js",
    "content": "\"use strict\";!function(t){\"function\"==typeof define&&define.amd?define([\"jquery\"],t):t(jQuery)}(function(t){var e=function(e,n){var n=n||t(e.imageBox),i={state:{},ratio:1,options:e,imageBox:n,thumbBox:n.find(e.thumbBox),spinner:n.find(e.spinner),image:new Image,getDataURL:function(){var t=this.thumbBox.width(),e=this.thumbBox.height(),i=document.createElement(\"canvas\"),a=n.css(\"background-position\").split(\" \"),o=n.css(\"background-size\").split(\" \"),s=parseInt(a[0])-n.width()/2+t/2,r=parseInt(a[1])-n.height()/2+e/2,u=parseInt(o[0]),g=parseInt(o[1]),c=parseInt(this.image.height),m=parseInt(this.image.width);i.width=t,i.height=e;var p=i.getContext(\"2d\");p.drawImage(this.image,0,0,m,c,s,r,u,g);var d=i.toDataURL(\"image/png\");return d},getBlob:function(){for(var t=this.getDataURL(),e=t.replace(\"data:image/png;base64,\",\"\"),n=atob(e),i=[],a=0;a<n.length;a++)i.push(n.charCodeAt(a));return new Blob([new Uint8Array(i)],{type:\"image/png\"})},zoomIn:function(){this.ratio*=1.1,a()},zoomOut:function(){this.ratio*=.9,a()}},a=function(){var t=parseInt(i.image.width)*i.ratio,e=parseInt(i.image.height)*i.ratio,a=(n.width()-t)/2,o=(n.height()-e)/2;n.css({\"background-image\":\"url(\"+i.image.src+\")\",\"background-size\":t+\"px \"+e+\"px\",\"background-position\":a+\"px \"+o+\"px\",\"background-repeat\":\"no-repeat\"})},o=function(t){t.stopImmediatePropagation(),i.state.dragable=!0,i.state.mouseX=t.clientX,i.state.mouseY=t.clientY},s=function(t){if(t.stopImmediatePropagation(),i.state.dragable){var e=t.clientX-i.state.mouseX,a=t.clientY-i.state.mouseY,o=n.css(\"background-position\").split(\" \"),s=e+parseInt(o[0]),r=a+parseInt(o[1]);n.css(\"background-position\",s+\"px \"+r+\"px\"),i.state.mouseX=t.clientX,i.state.mouseY=t.clientY}},r=function(t){t.stopImmediatePropagation(),i.state.dragable=!1},u=function(t){i.ratio*=t.originalEvent.wheelDelta>0||t.originalEvent.detail<0?1.1:.9,a()};return i.spinner.show(),i.image.onload=function(){i.spinner.hide(),a(),n.bind(\"mousedown\",o),n.bind(\"mousemove\",s),t(window).bind(\"mouseup\",r),n.bind(\"mousewheel DOMMouseScroll\",u)},i.image.src=e.imgSrc,n.on(\"remove\",function(){t(window).unbind(\"mouseup\",r)}),i};jQuery.fn.cropbox=function(t){return new e(t,this)}});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/jquery/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n\n\"use strict\";\n(function (factory) {\n    if (typeof define === 'function' && define.amd) {\n        define(['jquery'], factory);\n    } else {\n        factory(jQuery);\n    }\n}(function ($) {\n    var cropbox = function(options, el){\n        var el = el || $(options.imageBox),\n            obj =\n            {\n                state : {},\n                ratio : 1,\n                options : options,\n                imageBox : el,\n                thumbBox : el.find(options.thumbBox),\n                spinner : el.find(options.spinner),\n                image : new Image(),\n                getDataURL: function ()\n                {\n                    var width = this.thumbBox.width(),\n                        height = this.thumbBox.height(),\n                        canvas = document.createElement(\"canvas\"),\n                        dim = el.css('background-position').split(' '),\n                        size = el.css('background-size').split(' '),\n                        dx = parseInt(dim[0]) - el.width()/2 + width/2,\n                        dy = parseInt(dim[1]) - el.height()/2 + height/2,\n                        dw = parseInt(size[0]),\n                        dh = parseInt(size[1]),\n                        sh = parseInt(this.image.height),\n                        sw = parseInt(this.image.width);\n\n                    canvas.width = width;\n                    canvas.height = height;\n                    var context = canvas.getContext(\"2d\");\n                    context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n                    var imageData = canvas.toDataURL('image/png');\n                    return imageData;\n                },\n                getBlob: function()\n                {\n                    var imageData = this.getDataURL();\n                    var b64 = imageData.replace('data:image/png;base64,','');\n                    var binary = atob(b64);\n                    var array = [];\n                    for (var i = 0; i < binary.length; i++) {\n                        array.push(binary.charCodeAt(i));\n                    }\n                    return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n                },\n                zoomIn: function ()\n                {\n                    this.ratio*=1.1;\n                    setBackground();\n                },\n                zoomOut: function ()\n                {\n                    this.ratio*=0.9;\n                    setBackground();\n                }\n            },\n            setBackground = function()\n            {\n                var w =  parseInt(obj.image.width)*obj.ratio;\n                var h =  parseInt(obj.image.height)*obj.ratio;\n\n                var pw = (el.width() - w) / 2;\n                var ph = (el.height() - h) / 2;\n\n                el.css({\n                    'background-image': 'url(' + obj.image.src + ')',\n                    'background-size': w +'px ' + h + 'px',\n                    'background-position': pw + 'px ' + ph + 'px',\n                    'background-repeat': 'no-repeat'});\n            },\n            imgMouseDown = function(e)\n            {\n                e.stopImmediatePropagation();\n\n                obj.state.dragable = true;\n                obj.state.mouseX = e.clientX;\n                obj.state.mouseY = e.clientY;\n            },\n            imgMouseMove = function(e)\n            {\n                e.stopImmediatePropagation();\n\n                if (obj.state.dragable)\n                {\n                    var x = e.clientX - obj.state.mouseX;\n                    var y = e.clientY - obj.state.mouseY;\n\n                    var bg = el.css('background-position').split(' ');\n\n                    var bgX = x + parseInt(bg[0]);\n                    var bgY = y + parseInt(bg[1]);\n\n                    el.css('background-position', bgX +'px ' + bgY + 'px');\n\n                    obj.state.mouseX = e.clientX;\n                    obj.state.mouseY = e.clientY;\n                }\n            },\n            imgMouseUp = function(e)\n            {\n                e.stopImmediatePropagation();\n                obj.state.dragable = false;\n            },\n            zoomImage = function(e)\n            {\n                e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0 ? obj.ratio*=1.1 : obj.ratio*=0.9;\n                setBackground();\n            }\n\n        obj.spinner.show();\n        obj.image.onload = function() {\n            obj.spinner.hide();\n            setBackground();\n\n            el.bind('mousedown', imgMouseDown);\n            el.bind('mousemove', imgMouseMove);\n            $(window).bind('mouseup', imgMouseUp);\n            el.bind('mousewheel DOMMouseScroll', zoomImage);\n        };\n        obj.image.src = options.imgSrc;\n        el.on('remove', function(){$(window).unbind('mouseup', imgMouseUp)});\n\n        return obj;\n    };\n\n    jQuery.fn.cropbox = function(options){\n        return new cropbox(options, this);\n    };\n}));\n\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/jquery/example/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<script src=\"http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js\" type=\"text/javascript\"></script>\n<script src=\"../cropbox.js\"></script>\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n<script type=\"text/javascript\">\n    $(window).load(function() {\n        var options =\n        {\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = $('.imageBox').cropbox(options);\n        $('#file').on('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = $('.imageBox').cropbox(options);\n            }\n            reader.readAsDataURL(this.files[0]);\n            this.files = [];\n        })\n        $('#btnCrop').on('click', function(){\n            var img = cropper.getDataURL();\n            $('.cropped').append('<img src=\"'+img+'\">');\n        })\n        $('#btnZoomIn').on('click', function(){\n            cropper.zoomIn();\n        })\n        $('#btnZoomOut').on('click', function(){\n            cropper.zoomOut();\n        })\n    });\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/jquery/example/module.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n\n<script src=\"../require.js\"></script>\n<script>\n    require.config({\n        baseUrl: \"../\",\n        paths: {\n            jquery: 'jquery-1.11.1.min',\n            cropbox: 'cropbox'\n        }\n    });\n    require( [\"jquery\", \"cropbox\"], function($) {\n        var options =\n        {\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = $('.imageBox').cropbox(options);\n        $('#file').on('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = $('.imageBox').cropbox(options);\n            }\n            reader.readAsDataURL(this.files[0]);\n            this.files = [];\n        })\n        $('#btnCrop').on('click', function(){\n            var img = cropper.getDataURL();\n            $('.cropped').append('<img src=\"'+img+'\">');\n        })\n        $('#btnZoomIn').on('click', function(){\n            cropper.zoomIn();\n        })\n        $('#btnZoomOut').on('click', function(){\n            cropper.zoomOut();\n        })\n        }\n    );\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/jquery/example/style.css",
    "content": ".imageBox\n{\n    position: relative;\n    height: 400px;\n    width: 400px;\n    border:1px solid #aaa;\n    background: #fff;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    cursor:move;\n}\n\n.imageBox .thumbBox\n{\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 200px;\n    height: 200px;\n    margin-top: -100px;\n    margin-left: -100px;\n    box-sizing: border-box;\n    border: 1px solid rgb(102, 102, 102);\n    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n    background: none repeat scroll 0% 0% transparent;\n}\n\n.imageBox .spinner\n{\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    text-align: center;\n    line-height: 400px;\n    background: rgba(0,0,0,0.7);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/jquery/require.js",
    "content": "/*\n RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.\n Available via the MIT or new BSD license.\n see: http://github.com/jrburke/requirejs for details\n */\nvar requirejs,require,define;\n(function(ba){function G(b){return\"[object Function]\"===K.call(b)}function H(b){return\"[object Array]\"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function m(b,c){return t(b,c)&&b[c]}function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&\"object\"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof\n    RegExp)?(b[g]||(b[g]={}),U(b[g],c,d,e)):b[g]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split(\".\"),function(b){c=c[b]});return c}function C(b,c,d,e){c=Error(c+\"\\nhttp://requirejs.org/docs/errors.html#\"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split(\"/\"),h=j.map,n=h&&h[\"*\"];if(a){a=a.split(\"/\");l=a.length-1;j.nodeIdCompat&&\nQ.test(a[l])&&(a[l]=a[l].replace(Q,\"\"));\".\"===a[0].charAt(0)&&k&&(l=k.slice(0,k.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],\".\"===d)l.splice(c,1),c-=1;else if(\"..\"===d&&!(0===c||1==c&&\"..\"===l[2]||\"..\"===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join(\"/\")}if(b&&h&&(k||n)){l=a.split(\"/\");c=l.length;a:for(;0<c;c-=1){e=l.slice(0,c).join(\"/\");if(k)for(d=k.length;0<d;d-=1)if(b=m(h,k.slice(0,d).join(\"/\")))if(b=m(b,e)){f=b;g=c;break a}!i&&(n&&m(n,e))&&(i=m(n,e),p=c)}!f&&i&&(f=i,g=p);f&&(l.splice(0,\n    g,f),a=l.join(\"/\"))}return(f=m(j.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName(\"script\"),function(k){if(k.getAttribute(\"data-requiremodule\")===a&&k.getAttribute(\"data-requirecontext\")===i.contextName)return k.parentNode.removeChild(k),!0})}function e(a){var k=m(j.paths,a);if(k&&H(k)&&1<k.length)return k.shift(),i.require.undef(a),i.makeRequire(null,{skipMap:!0})([a]),!0}function n(a){var k,c=a?a.indexOf(\"!\"):-1;-1<c&&(k=a.substring(0,c),a=a.substring(c+1,a.length));return[k,a]}function p(a,\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 k,b,f){var l,d,e=null,g=k?k.name:null,j=a,p=!0,h=\"\";a||(p=!1,a=\"_@r\"+(K+=1));a=n(a);e=a[0];a=a[1];e&&(e=c(e,g,f),d=m(r,e));a&&(e?h=d&&d.normalize?d.normalize(a,function(a){return c(a,g,f)}):-1===a.indexOf(\"!\")?c(a,g,f):a:(h=c(a,g,f),a=n(h),e=a[0],h=a[1],b=!0,l=i.nameToUrl(h)));b=e&&!d&&!b?\"_unnormalized\"+(O+=1):\"\";return{prefix:e,name:h,parentMap:k,unnormalized:!!b,url:l,originalName:j,isDefine:p,id:(e?e+\"!\"+h:h)+b}}function s(a){var k=a.id,b=m(h,k);b||(b=h[k]=new i.Module(a));return b}function q(a,\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       k,b){var f=a.id,c=m(h,f);if(t(r,f)&&(!c||c.defineEmitComplete))\"defined\"===k&&b(r[f]);else if(c=s(a),c.error&&\"error\"===k)b(c.error);else c.on(k,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=m(h,b))b.error=a,b.events.error&&(f=!0,b.emit(\"error\",a))}),!f)g.onError(a)}function x(){R.length&&(ha.apply(A,[A.length,0].concat(R)),R=[])}function y(a){delete h[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit(\"error\",a.error):(b[f]=!0,v(a.depMaps,function(f,\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d){var e=f.id,g=m(h,e);g&&(!a.depMatched[d]&&!c[e])&&(m(b,e)?(a.defineDep(d,r[e]),a.check()):F(g,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*j.waitSeconds)&&i.startTime+a<(new Date).getTime(),f=[],l=[],g=!1,h=!0;if(!W){W=!0;B(V,function(a){var i=a.map,j=i.id;if(a.enabled&&(i.isDefine||l.push(a),!a.error))if(!a.inited&&c)e(j)?g=b=!0:(f.push(j),d(j));else if(!a.inited&&(a.fetched&&i.isDefine)&&(g=!0,!i.prefix))return h=!1});if(c&&f.length)return a=C(\"timeout\",\"Load timeout for modules: \"+f,null,\n    f),a.contextName=i.contextName,w(a);h&&v(l,function(a){F(a,{},{})});if((!c||b)&&g)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(r,a[0])||s(p(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!Y?a.detachEvent(\"onreadystatechange\",b):a.removeEventListener(\"load\",b,!1);b=i.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener(\"error\",b,!1);return{node:a,id:a&&a.getAttribute(\"data-requiremodule\")}}function J(){var a;\n    for(x();A.length;){a=A.shift();if(null===a[0])return w(C(\"mismatch\",\"Mismatched anonymous define() module: \"+a[a.length-1]));E(a)}}var W,Z,i,L,X,j={waitSeconds:7,baseUrl:\"./\",paths:{},bundles:{},pkgs:{},shim:{},config:{}},h={},V={},$={},A=[],r={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?\n    a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m(j.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=m($,a.id)||{};this.map=a;this.shim=m(j.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on(\"error\",c);else this.events.error&&(c=u(this,function(a){this.emit(\"error\",a)}));this.depMaps=a&&a.slice(0);this.errback=\n    c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=\n    this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit(\"error\",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&\n    (f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?\"define\":\"require\",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit(\"defined\",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=\n    this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,\"defined\",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||\"\"),f=p(a.prefix+\"!\"+e,this.map.parentMap),q(f,\"defined\",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f);\n    if(this.events.error)d.on(\"error\",u(this,function(a){this.emit(\"error\",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+\"_unnormalized\")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C(\"fromtexteval\",\n        \"fromText eval for \"+b+\" failed: \"+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if(\"string\"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,\"defined\",u(this,function(a){this.defineDep(b,\n    a);this.check()}));this.errback&&q(a,\"error\",u(this,this.errback))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});\"error\"===a&&delete this.events[a]}};i={config:j,contextName:b,registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,\n    nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&\"/\"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+=\"/\");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,\n        a=\"string\"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+\"/\"+(a.main||\"main\").replace(ia,\"\").replace(Q,\"\")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n,q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=\n        !0);if(\"string\"===typeof c){if(G(d))return w(C(\"requireargs\",\"Invalid require call\"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C(\"notloaded\",'Module name \"'+n+'\" has not been loaded yet for context: '+b+(a?\"\":\". Use require([])\"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf(\".\"),k=b.split(\"/\")[0];if(-1!==\n        e&&(!(\".\"===k||\"..\"===k)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(r,p(b,a,!1,!0).id)},specified:function(b){b=p(b,a,!1,!0).id;return t(r,b)||t(h,b)}});a||(j.undef=function(b){x();var c=p(b,a,!0),e=m(h,b);d(b);delete r[b];delete S[c.url];delete $[b];T(A,function(a,c){a[0]===b&&A.splice(c,1)});e&&(e.events.defined&&($[b]=e.events),y(b))});return j},enable:function(a){m(h,a.id)&&s(a).enable()},completeLoad:function(a){var b,\n        c,d=m(j.shim,a)||{},g=d.exports;for(x();A.length;){c=A.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}c=m(h,a);if(!b&&!t(r,a)&&c&&!c.inited){if(j.enforceDefine&&(!g||!da(g)))return e(a)?void 0:w(C(\"nodefine\",\"No define call for \"+a,null,[a]));E([a,d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,e,h;(d=m(j.pkgs,a))&&(a=d);if(d=m(aa,a))return i.nameToUrl(d,b,c);if(g.jsExtRegExp.test(a))d=a+(b||\"\");else{d=j.paths;a=a.split(\"/\");for(e=a.length;0<e;e-=1)if(h=a.slice(0,\n        e).join(\"/\"),h=m(d,h)){H(h)&&(h=h[0]);a.splice(0,e,h);break}d=a.join(\"/\");d+=b||(/^data\\:|\\?/.test(d)||c?\"\":\".js\");d=(\"/\"===d.charAt(0)||d.match(/^[\\w\\+\\.\\-]+:/)?\"\":j.baseUrl)+d}return j.urlArgs?d+((-1===d.indexOf(\"?\")?\"?\":\"&\")+j.urlArgs):d},load:function(a,b){g.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if(\"load\"===a.type||ja.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),i.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!e(b.id))return w(C(\"scripterror\",\n            \"Script error for: \"+b.id,a,[b.id]))}};i.require=i.makeRequire();return i}var g,x,y,D,I,E,N,J,s,O,ka=/(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg,la=/[^.]\\s*require\\s*\\(\\s*[\"']([^'\"\\s]+)[\"']\\s*\\)/g,Q=/\\.js$/,ia=/^\\.\\//;x=Object.prototype;var K=x.toString,fa=x.hasOwnProperty,ha=Array.prototype.splice,z=!!(\"undefined\"!==typeof window&&\"undefined\"!==typeof navigator&&window.document),ea=!z&&\"undefined\"!==typeof importScripts,ja=z&&\"PLAYSTATION 3\"===navigator.platform?/^complete$/:/^(complete|loaded)$/,\n    Y=\"undefined\"!==typeof opera&&\"[object Opera]\"===opera.toString(),F={},q={},R=[],M=!1;if(\"undefined\"===typeof define){if(\"undefined\"!==typeof requirejs){if(G(requirejs))return;q=requirejs;requirejs=void 0}\"undefined\"!==typeof require&&!G(require)&&(q=require,require=void 0);g=requirejs=function(b,c,d,e){var n,p=\"_\";!H(b)&&\"string\"!==typeof b&&(n=b,H(c)?(b=c,c=d,d=e):b=[]);n&&n.context&&(p=n.context);(e=m(F,p))||(e=F[p]=g.s.newContext(p));n&&e.configure(n);return e.require(b,c,d)};g.config=function(b){return g(b)};\n    g.nextTick=\"undefined\"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=g);g.version=\"2.1.15\";g.jsExtRegExp=/^\\/|:|\\?|\\.js$/;g.isBrowser=z;x=g.s={contexts:F,newContext:ga};g({});v([\"toUrl\",\"undef\",\"defined\",\"specified\"],function(b){g[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName(\"head\")[0],D=document.getElementsByTagName(\"base\")[0]))y=x.head=D.parentNode;g.onError=ca;g.createNode=function(b){var c=\n        b.xhtml?document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"html:script\"):document.createElement(\"script\");c.type=b.scriptType||\"text/javascript\";c.charset=\"utf-8\";c.async=!0;return c};g.load=function(b,c,d){var e=b&&b.config||{};if(z)return e=g.createNode(e,c,d),e.setAttribute(\"data-requirecontext\",b.contextName),e.setAttribute(\"data-requiremodule\",c),e.attachEvent&&!(e.attachEvent.toString&&0>e.attachEvent.toString().indexOf(\"[native code\"))&&!Y?(M=!0,e.attachEvent(\"onreadystatechange\",b.onScriptLoad)):\n        (e.addEventListener(\"load\",b.onScriptLoad,!1),e.addEventListener(\"error\",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C(\"importscripts\",\"importScripts failed for \"+c+\" at \"+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName(\"script\"),function(b){y||(y=b.parentNode);if(I=b.getAttribute(\"data-main\"))return s=I,q.baseUrl||(E=s.split(\"/\"),s=E.pop(),O=E.length?E.join(\"/\")+\"/\":\"./\",q.baseUrl=\n        O),s=s.replace(Q,\"\"),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;\"string\"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,\"\").replace(la,function(b,d){c.push(d)}),c=(1===d.length?[\"require\"]:[\"require\",\"exports\",\"module\"]).concat(c)));if(M){if(!(e=J))N&&\"interactive\"===N.readyState||T(document.getElementsByTagName(\"script\"),function(b){if(\"interactive\"===b.readyState)return N=b}),e=N;e&&(b||\n        (b=e.getAttribute(\"data-requiremodule\")),g=F[e.getAttribute(\"data-requirecontext\")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/image-cropbox/js/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n\n\"use strict\";\n(function (factory) {\n    if (typeof define === 'function' && define.amd) {\n        define(['jquery'], factory);\n    } else {\n        factory(jQuery);\n    }\n}(function ($) {\n    var cropbox = function(options, el){\n        var el = el || $(options.imageBox),\n            obj =\n            {\n                state : {},\n                ratio : 1,\n                options : options,\n                imageBox : el,\n                thumbBox : el.find(options.thumbBox),\n                spinner : el.find(options.spinner),\n                image : new Image(),\n                getDataURL: function ()\n                {\n                    var width = this.thumbBox.width(),\n                        height = this.thumbBox.height(),\n                        canvas = document.createElement(\"canvas\"),\n                        dim = el.css('background-position').split(' '),\n                        size = el.css('background-size').split(' '),\n                        dx = parseInt(dim[0]) - el.width()/2 + width/2,\n                        dy = parseInt(dim[1]) - el.height()/2 + height/2,\n                        dw = parseInt(size[0]),\n                        dh = parseInt(size[1]),\n                        sh = parseInt(this.image.height),\n                        sw = parseInt(this.image.width);\n\n                    canvas.width = width;\n                    canvas.height = height;\n                    var context = canvas.getContext(\"2d\");\n                    context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n                    var imageData = canvas.toDataURL('image/png');\n                    return imageData;\n                },\n                getBlob: function()\n                {\n                    var imageData = this.getDataURL();\n                    var b64 = imageData.replace('data:image/png;base64,','');\n                    var binary = atob(b64);\n                    var array = [];\n                    for (var i = 0; i < binary.length; i++) {\n                        array.push(binary.charCodeAt(i));\n                    }\n                    return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n                },\n                zoomIn: function ()\n                {\n                    this.ratio*=1.1;\n                    setBackground();\n                },\n                zoomOut: function ()\n                {\n                    this.ratio*=0.9;\n                    setBackground();\n                }\n            },\n            setBackground = function() {\n                var w =  parseInt(obj.image.width)*obj.ratio;\n                var h =  parseInt(obj.image.height)*obj.ratio;\n\n                var pw = (el.width() - w) / 2;\n                var ph = (el.height() - h) / 2;\n\n                el.css({\n                    'background-image': 'url(' + obj.image.src + ')',\n                    'background-size': w +'px ' + h + 'px',\n                    'background-position': pw + 'px ' + ph + 'px',\n                    'background-repeat': 'no-repeat'});\n            },\n            imgMouseDown = function(e) {\n                e.stopImmediatePropagation();\n\n                obj.state.dragable = true;\n                obj.state.mouseX = e.clientX;\n                obj.state.mouseY = e.clientY;\n            },\n            imgMouseMove = function(e) {\n                e.stopImmediatePropagation();\n\n                if (obj.state.dragable)\n                {\n                    var x = e.clientX - obj.state.mouseX;\n                    var y = e.clientY - obj.state.mouseY;\n\n                    var bg = el.css('background-position').split(' ');\n\n                    var bgX = x + parseInt(bg[0]);\n                    var bgY = y + parseInt(bg[1]);\n\n                    el.css('background-position', bgX +'px ' + bgY + 'px');\n\n                    obj.state.mouseX = e.clientX;\n                    obj.state.mouseY = e.clientY;\n                }\n            },\n            imgMouseUp = function(e) {\n                e.stopImmediatePropagation();\n                obj.state.dragable = false;\n            },\n            zoomImage = function(e) {\n                e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0 ? obj.ratio*=1.1 : obj.ratio*=0.9;\n                setBackground();\n            }\n\n        obj.spinner.show();\n        obj.image.onload = function() {\n            obj.spinner.hide();\n            setBackground();\n\n            el.bind('mousedown', imgMouseDown);\n            el.bind('mousemove', imgMouseMove);\n            $(\"#userFaceContainer\").bind('mouseup', imgMouseUp);\n            el.bind('mousewheel DOMMouseScroll', zoomImage);\n        };\n        obj.image.src = options.imgSrc;\n        el.on('remove', function(){$(window).unbind('mouseup', imgMouseUp)});\n\n        return obj;\n    };\n\n    jQuery.fn.cropbox = function(options){\n        return new cropbox(options, this);\n    };\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-easypiechart/angular.easypiechart.js",
    "content": "/**!\n * easyPieChart\n * Lightweight plugin to render simple, animated and retina optimized pie charts\n *\n * @license \n * @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)\n * @version 2.1.5\n **/\n\n(function(root, factory) {\n    if(typeof exports === 'object') {\n        module.exports = factory(require('angular'));\n    }\n    else if(typeof define === 'function' && define.amd) {\n        define(['angular'], factory);\n    }\n    else {\n        factory(root.angular);\n    }\n}(this, function(angular) {\n\n(function (angular) {\n\n\t'use strict';\n\n\treturn angular.module('easypiechart', [])\n\n\t\t.directive('easypiechart', [function() {\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\trequire: '?ngModel',\n\t\t\t\tscope: {\n\t\t\t\t\tpercent: '=',\n\t\t\t\t\toptions: '='\n\t\t\t\t},\n\t\t\t\tlink: function (scope, element, attrs) {\n\n\t\t\t\t\tscope.percent = scope.percent || 0;\n\n\t\t\t\t\t/**\n\t\t\t\t\t * default easy pie chart options\n\t\t\t\t\t * @type {Object}\n\t\t\t\t\t */\n\t\t\t\t\tvar options = {\n\t\t\t\t\t\tbarColor: '#ef1e25',\n\t\t\t\t\t\ttrackColor: '#f9f9f9',\n\t\t\t\t\t\tscaleColor: '#dfe0e0',\n\t\t\t\t\t\tscaleLength: 5,\n\t\t\t\t\t\tlineCap: 'round',\n\t\t\t\t\t\tlineWidth: 3,\n\t\t\t\t\t\tsize: 110,\n\t\t\t\t\t\trotate: 0,\n\t\t\t\t\t\tanimate: {\n\t\t\t\t\t\t\tduration: 1000,\n\t\t\t\t\t\t\tenabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tscope.options = angular.extend(options, scope.options);\n\n\t\t\t\t\tvar pieChart = new EasyPieChart(element[0], options);\n\n\t\t\t\t\tscope.$watch('percent', function(newVal, oldVal) {\n\t\t\t\t\t\tpieChart.update(newVal);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}]);\n\n})(angular);\n/**\n * Renderer to render the chart on a canvas object\n * @param {DOMElement} el      DOM element to host the canvas (root of the plugin)\n * @param {object}     options options object of the plugin\n */\nvar CanvasRenderer = function(el, options) {\n\tvar cachedBackground;\n\tvar canvas = document.createElement('canvas');\n\n\tel.appendChild(canvas);\n\n\tif (typeof(G_vmlCanvasManager) !== 'undefined') {\n\t\tG_vmlCanvasManager.initElement(canvas);\n\t}\n\n\tvar ctx = canvas.getContext('2d');\n\n\tcanvas.width = canvas.height = options.size;\n\n\t// canvas on retina devices\n\tvar scaleBy = 1;\n\tif (window.devicePixelRatio > 1) {\n\t\tscaleBy = window.devicePixelRatio;\n\t\tcanvas.style.width = canvas.style.height = [options.size, 'px'].join('');\n\t\tcanvas.width = canvas.height = options.size * scaleBy;\n\t\tctx.scale(scaleBy, scaleBy);\n\t}\n\n\t// move 0,0 coordinates to the center\n\tctx.translate(options.size / 2, options.size / 2);\n\n\t// rotate canvas -90deg\n\tctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI);\n\n\tvar radius = (options.size - options.lineWidth) / 2;\n\tif (options.scaleColor && options.scaleLength) {\n\t\tradius -= options.scaleLength + 2; // 2 is the distance between scale and bar\n\t}\n\n\t// IE polyfill for Date\n\tDate.now = Date.now || function() {\n\t\treturn +(new Date());\n\t};\n\n\t/**\n\t * Draw a circle around the center of the canvas\n\t * @param {strong} color     Valid CSS color string\n\t * @param {number} lineWidth Width of the line in px\n\t * @param {number} percent   Percentage to draw (float between -1 and 1)\n\t */\n\tvar drawCircle = function(color, lineWidth, percent) {\n\t\tpercent = Math.min(Math.max(-1, percent || 0), 1);\n\t\tvar isNegative = percent <= 0 ? true : false;\n\n\t\tctx.beginPath();\n\t\tctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, isNegative);\n\n\t\tctx.strokeStyle = color;\n\t\tctx.lineWidth = lineWidth;\n\n\t\tctx.stroke();\n\t};\n\n\t/**\n\t * Draw the scale of the chart\n\t */\n\tvar drawScale = function() {\n\t\tvar offset;\n\t\tvar length;\n\n\t\tctx.lineWidth = 1;\n\t\tctx.fillStyle = options.scaleColor;\n\n\t\tctx.save();\n\t\tfor (var i = 24; i > 0; --i) {\n\t\t\tif (i % 6 === 0) {\n\t\t\t\tlength = options.scaleLength;\n\t\t\t\toffset = 0;\n\t\t\t} else {\n\t\t\t\tlength = options.scaleLength * 0.6;\n\t\t\t\toffset = options.scaleLength - length;\n\t\t\t}\n\t\t\tctx.fillRect(-options.size/2 + offset, 0, length, 1);\n\t\t\tctx.rotate(Math.PI / 12);\n\t\t}\n\t\tctx.restore();\n\t};\n\n\t/**\n\t * Request animation frame wrapper with polyfill\n\t * @return {function} Request animation frame method or timeout fallback\n\t */\n\tvar reqAnimationFrame = (function() {\n\t\treturn  window.requestAnimationFrame ||\n\t\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\t\tfunction(callback) {\n\t\t\t\t\twindow.setTimeout(callback, 1000 / 60);\n\t\t\t\t};\n\t}());\n\n\t/**\n\t * Draw the background of the plugin including the scale and the track\n\t */\n\tvar drawBackground = function() {\n\t\tif(options.scaleColor) drawScale();\n\t\tif(options.trackColor) drawCircle(options.trackColor, options.lineWidth, 1);\n\t};\n\n  /**\n    * Canvas accessor\n   */\n  this.getCanvas = function() {\n    return canvas;\n  };\n  \n  /**\n    * Canvas 2D context 'ctx' accessor\n   */\n  this.getCtx = function() {\n    return ctx;\n  };\n\n\t/**\n\t * Clear the complete canvas\n\t */\n\tthis.clear = function() {\n\t\tctx.clearRect(options.size / -2, options.size / -2, options.size, options.size);\n\t};\n\n\t/**\n\t * Draw the complete chart\n\t * @param {number} percent Percent shown by the chart between -100 and 100\n\t */\n\tthis.draw = function(percent) {\n\t\t// do we need to render a background\n\t\tif (!!options.scaleColor || !!options.trackColor) {\n\t\t\t// getImageData and putImageData are supported\n\t\t\tif (ctx.getImageData && ctx.putImageData) {\n\t\t\t\tif (!cachedBackground) {\n\t\t\t\t\tdrawBackground();\n\t\t\t\t\tcachedBackground = ctx.getImageData(0, 0, options.size * scaleBy, options.size * scaleBy);\n\t\t\t\t} else {\n\t\t\t\t\tctx.putImageData(cachedBackground, 0, 0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.clear();\n\t\t\t\tdrawBackground();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.clear();\n\t\t}\n\n\t\tctx.lineCap = options.lineCap;\n\n\t\t// if barcolor is a function execute it and pass the percent as a value\n\t\tvar color;\n\t\tif (typeof(options.barColor) === 'function') {\n\t\t\tcolor = options.barColor(percent);\n\t\t} else {\n\t\t\tcolor = options.barColor;\n\t\t}\n\n\t\t// draw bar\n\t\tdrawCircle(color, options.lineWidth, percent / 100);\n\t}.bind(this);\n\n\t/**\n\t * Animate from some percent to some other percentage\n\t * @param {number} from Starting percentage\n\t * @param {number} to   Final percentage\n\t */\n\tthis.animate = function(from, to) {\n\t\tvar startTime = Date.now();\n\t\toptions.onStart(from, to);\n\t\tvar animation = function() {\n\t\t\tvar process = Math.min(Date.now() - startTime, options.animate.duration);\n\t\t\tvar currentValue = options.easing(this, process, from, to - from, options.animate.duration);\n\t\t\tthis.draw(currentValue);\n\t\t\toptions.onStep(from, to, currentValue);\n\t\t\tif (process >= options.animate.duration) {\n\t\t\t\toptions.onStop(from, to);\n\t\t\t} else {\n\t\t\t\treqAnimationFrame(animation);\n\t\t\t}\n\t\t}.bind(this);\n\n\t\treqAnimationFrame(animation);\n\t}.bind(this);\n};\n\nvar EasyPieChart = function(el, opts) {\n\tvar defaultOptions = {\n\t\tbarColor: '#ef1e25',\n\t\ttrackColor: '#f9f9f9',\n\t\tscaleColor: '#dfe0e0',\n\t\tscaleLength: 5,\n\t\tlineCap: 'round',\n\t\tlineWidth: 3,\n\t\tsize: 110,\n\t\trotate: 0,\n\t\tanimate: {\n\t\t\tduration: 1000,\n\t\t\tenabled: true\n\t\t},\n\t\teasing: function (x, t, b, c, d) { // more can be found here: http://gsgd.co.uk/sandbox/jquery/easing/\n\t\t\tt = t / (d/2);\n\t\t\tif (t < 1) {\n\t\t\t\treturn c / 2 * t * t + b;\n\t\t\t}\n\t\t\treturn -c/2 * ((--t)*(t-2) - 1) + b;\n\t\t},\n\t\tonStart: function(from, to) {\n\t\t\treturn;\n\t\t},\n\t\tonStep: function(from, to, currentValue) {\n\t\t\treturn;\n\t\t},\n\t\tonStop: function(from, to) {\n\t\t\treturn;\n\t\t}\n\t};\n\n\t// detect present renderer\n\tif (typeof(CanvasRenderer) !== 'undefined') {\n\t\tdefaultOptions.renderer = CanvasRenderer;\n\t} else if (typeof(SVGRenderer) !== 'undefined') {\n\t\tdefaultOptions.renderer = SVGRenderer;\n\t} else {\n\t\tthrow new Error('Please load either the SVG- or the CanvasRenderer');\n\t}\n\n\tvar options = {};\n\tvar currentValue = 0;\n\n\t/**\n\t * Initialize the plugin by creating the options object and initialize rendering\n\t */\n\tvar init = function() {\n\t\tthis.el = el;\n\t\tthis.options = options;\n\n\t\t// merge user options into default options\n\t\tfor (var i in defaultOptions) {\n\t\t\tif (defaultOptions.hasOwnProperty(i)) {\n\t\t\t\toptions[i] = opts && typeof(opts[i]) !== 'undefined' ? opts[i] : defaultOptions[i];\n\t\t\t\tif (typeof(options[i]) === 'function') {\n\t\t\t\t\toptions[i] = options[i].bind(this);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// check for jQuery easing\n\t\tif (typeof(options.easing) === 'string' && typeof(jQuery) !== 'undefined' && jQuery.isFunction(jQuery.easing[options.easing])) {\n\t\t\toptions.easing = jQuery.easing[options.easing];\n\t\t} else {\n\t\t\toptions.easing = defaultOptions.easing;\n\t\t}\n\n\t\t// process earlier animate option to avoid bc breaks\n\t\tif (typeof(options.animate) === 'number') {\n\t\t\toptions.animate = {\n\t\t\t\tduration: options.animate,\n\t\t\t\tenabled: true\n\t\t\t};\n\t\t}\n\n\t\tif (typeof(options.animate) === 'boolean' && !options.animate) {\n\t\t\toptions.animate = {\n\t\t\t\tduration: 1000,\n\t\t\t\tenabled: options.animate\n\t\t\t};\n\t\t}\n\n\t\t// create renderer\n\t\tthis.renderer = new options.renderer(el, options);\n\n\t\t// initial draw\n\t\tthis.renderer.draw(currentValue);\n\n\t\t// initial update\n\t\tif (el.dataset && el.dataset.percent) {\n\t\t\tthis.update(parseFloat(el.dataset.percent));\n\t\t} else if (el.getAttribute && el.getAttribute('data-percent')) {\n\t\t\tthis.update(parseFloat(el.getAttribute('data-percent')));\n\t\t}\n\t}.bind(this);\n\n\t/**\n\t * Update the value of the chart\n\t * @param  {number} newValue Number between 0 and 100\n\t * @return {object}          Instance of the plugin for method chaining\n\t */\n\tthis.update = function(newValue) {\n\t\tnewValue = parseFloat(newValue);\n\t\tif (options.animate.enabled) {\n\t\t\tthis.renderer.animate(currentValue, newValue);\n\t\t} else {\n\t\t\tthis.renderer.draw(newValue);\n\t\t}\n\t\tcurrentValue = newValue;\n\t\treturn this;\n\t}.bind(this);\n\n\t/**\n\t * Disable animation\n\t * @return {object} Instance of the plugin for method chaining\n\t */\n\tthis.disableAnimation = function() {\n\t\toptions.animate.enabled = false;\n\t\treturn this;\n\t};\n\n\t/**\n\t * Enable animation\n\t * @return {object} Instance of the plugin for method chaining\n\t */\n\tthis.enableAnimation = function() {\n\t\toptions.animate.enabled = true;\n\t\treturn this;\n\t};\n\n\tinit();\n};\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/README.md",
    "content": "# jQuery File Upload Plugin\n\n## Demo\n[Demo File Upload](https://blueimp.github.io/jQuery-File-Upload/)\n\n## Description\nFile Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery.  \nSupports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.\n\n## Setup\n* [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)\n* [How to use only the basic plugin (minimal setup guide).](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)\n\n## Features\n* **Multiple file upload:**  \n  Allows to select multiple files at once and upload them simultaneously.\n* **Drag & Drop support:**  \n  Allows to upload files by dragging them from your desktop or filemanager and dropping them on your browser window.\n* **Upload progress bar:**  \n  Shows a progress bar indicating the upload progress for individual files and for all uploads combined.\n* **Cancelable uploads:**  \n  Individual file uploads can be canceled to stop the upload progress.\n* **Resumable uploads:**  \n  Aborted uploads can be resumed with browsers supporting the Blob API.\n* **Chunked uploads:**  \n  Large files can be uploaded in smaller chunks with browsers supporting the Blob API.\n* **Client-side image resizing:**  \n  Images can be automatically resized on client-side with browsers supporting the required JS APIs.\n* **Preview images, audio and video:**  \n  A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.\n* **No browser plugins (e.g. Adobe Flash) required:**  \n  The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.\n* **Graceful fallback for legacy browsers:**  \n  Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.\n* **HTML file upload form fallback:**  \n  Allows progressive enhancement by using a standard HTML file upload form as widget element.\n* **Cross-site file uploads:**  \n  Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.\n* **Multiple plugin instances:**  \n  Allows to use multiple plugin instances on the same webpage.\n* **Customizable and extensible:**  \n  Provides an API to set individual options and define callBack methods for various upload events.\n* **Multipart and file contents stream uploads:**  \n  Files can be uploaded as standard \"multipart/form-data\" or file contents stream (HTTP PUT file upload).\n* **Compatible with any server-side application platform:**  \n  Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.\n\n## Requirements\n\n### Mandatory requirements\n* [jQuery](https://jquery.com/) v. 1.6+\n* [jQuery UI widget factory](https://api.jqueryui.com/jQuery.widget/) v. 1.9+ (included)\n* [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) (included)\n\nThe jQuery UI widget factory is a requirement for the basic File Upload plugin, but very lightweight without any other dependencies from the jQuery UI suite.\n\nThe jQuery Iframe Transport is required for [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).\n\n### Optional requirements\n* [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates) v. 2.5.4+\n* [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image) v. 1.13.0+\n* [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 2.1.1+\n* [blueimp Gallery](https://github.com/blueimp/Gallery) v. 2.15.1+\n* [Bootstrap](http://getbootstrap.com/) v. 3.2.0+\n* [Glyphicons](http://glyphicons.com/)\n\nThe JavaScript Templates engine is used to render the selected and uploaded files for the Basic Plus UI and jQuery UI versions.\n\nThe JavaScript Load Image library and JavaScript Canvas to Blob polyfill are required for the image previews and resizing functionality.\n\nThe blueimp Gallery is used to display the uploaded images in a lightbox.\n\nThe user interface of all versions except the jQuery UI version is built with [Bootstrap](http://getbootstrap.com/) and icons from [Glyphicons](http://glyphicons.com/).\n\n### Cross-domain requirements\n[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) using the [Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) require a redirect back to the origin server to retrieve the upload results. The [example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js) makes use of [result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html) as a static redirect page for the origin server.\n\nThe repository also includes the [jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js), which enables limited cross-domain AJAX requests in Microsoft Internet Explorer 8 and 9 (IE 10 supports cross-domain XHR requests).  \nThe XDomainRequest object allows GET and POST requests only and doesn't support file uploads. It is used on the [Demo](https://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files from the cross-domain demo file upload service.\n\n## Browsers\n\n### Desktop browsers\nThe File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:\n\n* Google Chrome\n* Apple Safari 4.0+\n* Mozilla Firefox 3.0+\n* Opera 11.0+\n* Microsoft Internet Explorer 6.0+\n\n### Mobile browsers\nThe File Upload plugin has been tested with and supports the following mobile browsers:\n\n* Apple Safari on iOS 6.0+\n* Google Chrome on iOS 6.0+\n* Google Chrome on Android 4.0+\n* Default Browser on Android 2.3+\n* Opera Mobile 12.0+\n\n### Supported features\nFor a detailed overview of the features supported by each browser version, please have a look at the [Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).\n\n## Contributing\n**Bug fixes** and **new features** can be proposed using [pull requests](https://github.com/blueimp/jQuery-File-Upload/pulls).\nPlease read the [contribution guidelines](https://github.com/blueimp/jQuery-File-Upload/blob/master/CONTRIBUTING.md) before submitting a pull request.\n\n## Support\nThis project is actively maintained, but there is no official support channel.  \nIf you have a question that another developer might help you with, please post to [Stack Overflow](http://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload) and tag your question with `blueimp jquery file upload`.\n\n## License\nReleased under the [MIT license](http://www.opensource.org/licenses/MIT).\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/cors/postmessage.html",
    "content": "<!DOCTYPE HTML>\n<!--\n/*\n * jQuery File Upload Plugin postMessage API\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n-->\n<html lang=\"en\">\n\n    <head>\n        <meta charset=\"utf-8\">\n        <title>jQuery File Upload Plugin postMessage API</title>\n        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js\"></script>\n    </head>\n\n    <body>\n        <script>\n            /*jslint unparam: true, regexp: true */\n            /*global $, Blob, FormData, location */\n            'use strict';\n            var origin = /^http:\\/\\/example.org/,\n                target = new RegExp('^(http(s)?:)?\\\\/\\\\/' + location.host + '\\\\/');\n            $(window).on('message', function(e)\n            {\n                e = e.originalEvent;\n                var s = e.data,\n                    xhr = $.ajaxSettings.xhr(),\n                    f;\n                if (!origin.test(e.origin))\n                {\n                    throw new Error('Origin \"' + e.origin + '\" does not match ' + origin);\n                }\n                if (!target.test(e.data.url))\n                {\n                    throw new Error('Target \"' + e.data.url + '\" does not match ' + target);\n                }\n                $(xhr.upload).on('progress', function(ev)\n                {\n                    ev = ev.originalEvent;\n                    e.source.postMessage(\n                    {\n                        id: s.id,\n                        type: ev.type,\n                        timeStamp: ev.timeStamp,\n                        lengthComputable: ev.lengthComputable,\n                        loaded: ev.loaded,\n                        total: ev.total\n                    }, e.origin);\n                });\n                s.xhr = function()\n                {\n                    return xhr;\n                };\n                if (!(s.data instanceof Blob))\n                {\n                    f = new FormData();\n                    $.each(s.data, function(i, v)\n                    {\n                        f.append(v.name, v.value);\n                    });\n                    s.data = f;\n                }\n                $.ajax(s).always(function(result, statusText, jqXHR)\n                {\n                    if (!jqXHR.done)\n                    {\n                        jqXHR = result;\n                        result = null;\n                    }\n                    e.source.postMessage(\n                    {\n                        id: s.id,\n                        status: jqXHR.status,\n                        statusText: statusText,\n                        result: result,\n                        headers: jqXHR.getAllResponseHeaders()\n                    }, e.origin);\n                });\n            });\n        </script>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/cors/result.html",
    "content": "<!DOCTYPE HTML>\n<!--\n/*\n * jQuery Iframe Transport Plugin Redirect Page\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n-->\n<html lang=\"en\">\n\n    <head>\n        <meta charset=\"utf-8\">\n        <title>jQuery Iframe Transport Plugin Redirect Page</title>\n    </head>\n\n    <body>\n        <script>\n            document.body.innerText = document.body.textContent = decodeURIComponent(window.location.search.slice(1));\n        </script>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/css/demo-ie8.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Demo CSS Fixes for IE<9\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.navigation {\n  list-style: none;\n  padding: 0;\n  margin: 1em 0;\n}\n.navigation li {\n  display: inline;\n  margin-right: 10px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/css/demo.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Demo CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\nbody {\n  max-width: 750px;\n  margin: 0 auto;\n  padding: 1em;\n  font-family: \"Lucida Grande\", \"Lucida Sans Unicode\", Arial, sans-serif;\n  font-size: 1em;\n  line-height: 1.4em;\n  background: #222;\n  color: #fff;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\na {\n  color: orange;\n  text-decoration: none;\n}\nimg {\n  border: 0;\n  vertical-align: middle;\n}\nh1 {\n  line-height: 1em;\n}\nblockquote {\n  padding: 0 0 0 15px;\n  margin: 0 0 20px;\n  border-left: 5px solid #eee;\n}\ntable {\n  width: 100%;\n  margin: 10px 0;\n}\n\n.fileupload-progress {\n\tmargin: 10px 0;\n}\n.fileupload-progress .progress-extended {\n\tmargin-top: 5px;\n}\n.error {\n  color: red;\n}\n\n@media (min-width: 481px) {\n  .navigation {\n    list-style: none;\n    padding: 0;\n  }\n  .navigation li {\n    display: inline-block;\n  }\n  .navigation li:not(:first-child):before {\n    content: \"| \";\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/css/jquery.fileupload-noscript.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Plugin NoScript CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileinput-button input {\n  position: static;\n  opacity: 1;\n  filter: none;\n  font-size: inherit;\n  direction: inherit;\n}\n.fileinput-button span {\n  display: none;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/css/jquery.fileupload-ui-noscript.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload UI Plugin NoScript CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileinput-button i,\n.fileupload-buttonbar .delete,\n.fileupload-buttonbar .toggle {\n  display: none;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/css/jquery.fileupload-ui.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload UI Plugin CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileupload-buttonbar .btn,\n.fileupload-buttonbar .toggle {\n  margin-bottom: 5px;\n}\n.progress-animated .progress-bar,\n.progress-animated .bar {\n  background: url(\"../img/progressbar.gif\") !important;\n  filter: none;\n}\n.fileupload-process {\n  float: right;\n  display: none;\n}\n.fileupload-processing .fileupload-process,\n.files .processing .preview {\n  display: block;\n  width: 32px;\n  height: 32px;\n  background: url(\"../img/loading.gif\") center no-repeat;\n  background-size: contain;\n}\n.files audio,\n.files video {\n  max-width: 300px;\n}\n\n@media (max-width: 767px) {\n  .fileupload-buttonbar .toggle,\n  .files .toggle,\n  .files .btn span {\n    display: none;\n  }\n  .files .name {\n    width: 80px;\n    word-wrap: break-word;\n  }\n  .files audio,\n  .files video {\n    max-width: 80px;\n  }\n  .files img,\n  .files canvas {\n    max-width: 100%;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/css/jquery.fileupload.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Plugin CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileinput-button {\n  position: relative;\n  overflow: hidden;\n  display: inline-block;\n}\n.fileinput-button input {\n  position: absolute;\n  top: 0;\n  right: 0;\n  margin: 0;\n  opacity: 0;\n  -ms-filter: 'alpha(opacity=0)';\n  font-size: 200px;\n  direction: ltr;\n  cursor: pointer;\n}\n\n/* Fixes for IE < 8 */\n@media screen\\9 {\n  .fileinput-button input {\n    filter: alpha(opacity=0);\n    font-size: 100%;\n    height: 100%;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/css/style.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Plugin CSS Example\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\nbody {\n  padding-top: 60px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/app.js",
    "content": "/*\n * jQuery File Upload Plugin Angular JS Example\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global window, angular */\n\n(function () {\n    'use strict';\n\n    var isOnGitHub = window.location.hostname === 'blueimp.github.io',\n        url = isOnGitHub ? '//jquery-file-upload.appspot.com/' : 'server/php/';\n\n    angular.module('demo', [\n        'blueimp.fileupload'\n    ])\n        .config([\n            '$httpProvider', 'fileUploadProvider',\n            function ($httpProvider, fileUploadProvider) {\n                delete $httpProvider.defaults.headers.common['X-Requested-With'];\n                fileUploadProvider.defaults.redirect = window.location.href.replace(\n                    /\\/[^\\/]*$/,\n                    '/cors/result.html?%s'\n                );\n                if (isOnGitHub) {\n                    // Demo settings:\n                    angular.extend(fileUploadProvider.defaults, {\n                        // Enable image resizing, except for Android and Opera,\n                        // which actually support image resizing, but fail to\n                        // send Blob objects via XHR requests:\n                        disableImageResize: /Android(?!.*Chrome)|Opera/\n                            .test(window.navigator.userAgent),\n                        maxFileSize: 999000,\n                        acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i\n                    });\n                }\n            }\n        ])\n\n        .controller('DemoFileUploadController', [\n            '$scope', '$http', '$filter', '$window',\n            function ($scope, $http) {\n                $scope.options = {\n                    url: url\n                };\n                if (!isOnGitHub) {\n                    $scope.loadingFiles = true;\n                    $http.get(url)\n                        .then(\n                            function (response) {\n                                $scope.loadingFiles = false;\n                                $scope.queue = response.data.files || [];\n                            },\n                            function () {\n                                $scope.loadingFiles = false;\n                            }\n                        );\n                }\n            }\n        ])\n\n        .controller('FileDestroyController', [\n            '$scope', '$http',\n            function ($scope, $http) {\n                var file = $scope.file,\n                    state;\n                if (file.url) {\n                    file.$state = function () {\n                        return state;\n                    };\n                    file.$destroy = function () {\n                        state = 'pending';\n                        return $http({\n                            url: file.deleteUrl,\n                            method: file.deleteType\n                        }).then(\n                            function () {\n                                state = 'resolved';\n                                $scope.clear(file);\n                            },\n                            function () {\n                                state = 'rejected';\n                            }\n                        );\n                    };\n                } else if (!file.$cancel && !file._index) {\n                    file.$cancel = function () {\n                        $scope.clear(file);\n                    };\n                }\n            }\n        ]);\n\n}());\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/cors/jquery.postmessage-transport.js",
    "content": "/*\n * jQuery postMessage Transport Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    var counter = 0,\n        names = [\n            'accepts',\n            'cache',\n            'contents',\n            'contentType',\n            'crossDomain',\n            'data',\n            'dataType',\n            'headers',\n            'ifModified',\n            'mimeType',\n            'password',\n            'processData',\n            'timeout',\n            'traditional',\n            'type',\n            'url',\n            'username'\n        ],\n        convert = function (p) {\n            return p;\n        };\n\n    $.ajaxSetup({\n        converters: {\n            'postmessage text': convert,\n            'postmessage json': convert,\n            'postmessage html': convert\n        }\n    });\n\n    $.ajaxTransport('postmessage', function (options) {\n        if (options.postMessage && window.postMessage) {\n            var iframe,\n                loc = $('<a>').prop('href', options.postMessage)[0],\n                target = loc.protocol + '//' + loc.host,\n                xhrUpload = options.xhr().upload;\n            return {\n                send: function (_, completeCallback) {\n                    counter += 1;\n                    var message = {\n                            id: 'postmessage-transport-' + counter\n                        },\n                        eventName = 'message.' + message.id;\n                    iframe = $(\n                        '<iframe style=\"display:none;\" src=\"' +\n                            options.postMessage + '\" name=\"' +\n                            message.id + '\"></iframe>'\n                    ).bind('load', function () {\n                        $.each(names, function (i, name) {\n                            message[name] = options[name];\n                        });\n                        message.dataType = message.dataType.replace('postmessage ', '');\n                        $(window).bind(eventName, function (e) {\n                            e = e.originalEvent;\n                            var data = e.data,\n                                ev;\n                            if (e.origin === target && data.id === message.id) {\n                                if (data.type === 'progress') {\n                                    ev = document.createEvent('Event');\n                                    ev.initEvent(data.type, false, true);\n                                    $.extend(ev, data);\n                                    xhrUpload.dispatchEvent(ev);\n                                } else {\n                                    completeCallback(\n                                        data.status,\n                                        data.statusText,\n                                        {postmessage: data.result},\n                                        data.headers\n                                    );\n                                    iframe.remove();\n                                    $(window).unbind(eventName);\n                                }\n                            }\n                        });\n                        iframe[0].contentWindow.postMessage(\n                            message,\n                            target\n                        );\n                    }).appendTo(document.body);\n                },\n                abort: function () {\n                    if (iframe) {\n                        iframe.remove();\n                    }\n                }\n            };\n        }\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/cors/jquery.xdr-transport.js",
    "content": "/*\n * jQuery XDomainRequest Transport Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n *\n * Based on Julian Aubourg's ajaxHooks xdr.js:\n * https://github.com/jaubourg/ajaxHooks/\n */\n\n/* global define, require, window, XDomainRequest */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n    if (window.XDomainRequest && !$.support.cors) {\n        $.ajaxTransport(function (s) {\n            if (s.crossDomain && s.async) {\n                if (s.timeout) {\n                    s.xdrTimeout = s.timeout;\n                    delete s.timeout;\n                }\n                var xdr;\n                return {\n                    send: function (headers, completeCallback) {\n                        var addParamChar = /\\?/.test(s.url) ? '&' : '?';\n                        function callback(status, statusText, responses, responseHeaders) {\n                            xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;\n                            xdr = null;\n                            completeCallback(status, statusText, responses, responseHeaders);\n                        }\n                        xdr = new XDomainRequest();\n                        // XDomainRequest only supports GET and POST:\n                        if (s.type === 'DELETE') {\n                            s.url = s.url + addParamChar + '_method=DELETE';\n                            s.type = 'POST';\n                        } else if (s.type === 'PUT') {\n                            s.url = s.url + addParamChar + '_method=PUT';\n                            s.type = 'POST';\n                        } else if (s.type === 'PATCH') {\n                            s.url = s.url + addParamChar + '_method=PATCH';\n                            s.type = 'POST';\n                        }\n                        xdr.open(s.type, s.url);\n                        xdr.onload = function () {\n                            callback(\n                                200,\n                                'OK',\n                                {text: xdr.responseText},\n                                'Content-Type: ' + xdr.contentType\n                            );\n                        };\n                        xdr.onerror = function () {\n                            callback(404, 'Not Found');\n                        };\n                        if (s.xdrTimeout) {\n                            xdr.ontimeout = function () {\n                                callback(0, 'timeout');\n                            };\n                            xdr.timeout = s.xdrTimeout;\n                        }\n                        xdr.send((s.hasContent && s.data) || null);\n                    },\n                    abort: function () {\n                        if (xdr) {\n                            xdr.onerror = $.noop();\n                            xdr.abort();\n                        }\n                    }\n                };\n            }\n        });\n    }\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-angular.js",
    "content": "/*\n * jQuery File Upload AngularJS Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, angular */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'angular',\n            './jquery.fileupload-image',\n            './jquery.fileupload-audio',\n            './jquery.fileupload-video',\n            './jquery.fileupload-validate'\n        ], factory);\n    } else {\n        factory();\n    }\n}(function () {\n    'use strict';\n\n    angular.module('blueimp.fileupload', [])\n\n        // The fileUpload service provides configuration options\n        // for the fileUpload directive and default handlers for\n        // File Upload events:\n        .provider('fileUpload', function () {\n            var scopeEvalAsync = function (expression) {\n                    var scope = angular.element(this)\n                            .fileupload('option', 'scope');\n                    // Schedule a new $digest cycle if not already inside of one\n                    // and evaluate the given expression:\n                    scope.$evalAsync(expression);\n                },\n                addFileMethods = function (scope, data) {\n                    var files = data.files,\n                        file = files[0];\n                    angular.forEach(files, function (file, index) {\n                        file._index = index;\n                        file.$state = function () {\n                            return data.state();\n                        };\n                        file.$processing = function () {\n                            return data.processing();\n                        };\n                        file.$progress = function () {\n                            return data.progress();\n                        };\n                        file.$response = function () {\n                            return data.response();\n                        };\n                    });\n                    file.$submit = function () {\n                        if (!file.error) {\n                            return data.submit();\n                        }\n                    };\n                    file.$cancel = function () {\n                        return data.abort();\n                    };\n                },\n                $config;\n            $config = this.defaults = {\n                handleResponse: function (e, data) {\n                    var files = data.result && data.result.files;\n                    if (files) {\n                        data.scope.replace(data.files, files);\n                    } else if (data.errorThrown ||\n                            data.textStatus === 'error') {\n                        data.files[0].error = data.errorThrown ||\n                            data.textStatus;\n                    }\n                },\n                add: function (e, data) {\n                    if (e.isDefaultPrevented()) {\n                        return false;\n                    }\n                    var scope = data.scope,\n                        filesCopy = [];\n                    angular.forEach(data.files, function (file) {\n                        filesCopy.push(file);\n                    });\n                    scope.$parent.$applyAsync(function () {\n                        addFileMethods(scope, data);\n                        var method = scope.option('prependFiles') ?\n                                'unshift' : 'push';\n                        Array.prototype[method].apply(scope.queue, data.files);\n                    });\n                    data.process(function () {\n                        return scope.process(data);\n                    }).always(function () {\n                        scope.$parent.$applyAsync(function () {\n                            addFileMethods(scope, data);\n                            scope.replace(filesCopy, data.files);\n                        });\n                    }).then(function () {\n                        if ((scope.option('autoUpload') ||\n                                data.autoUpload) &&\n                                data.autoUpload !== false) {\n                            data.submit();\n                        }\n                    });\n                },\n                done: function (e, data) {\n                    if (e.isDefaultPrevented()) {\n                        return false;\n                    }\n                    var that = this;\n                    data.scope.$apply(function () {\n                        data.handleResponse.call(that, e, data);\n                    });\n                },\n                fail: function (e, data) {\n                    if (e.isDefaultPrevented()) {\n                        return false;\n                    }\n                    var that = this,\n                        scope = data.scope;\n                    if (data.errorThrown === 'abort') {\n                        scope.clear(data.files);\n                        return;\n                    }\n                    scope.$apply(function () {\n                        data.handleResponse.call(that, e, data);\n                    });\n                },\n                stop: scopeEvalAsync,\n                processstart: scopeEvalAsync,\n                processstop: scopeEvalAsync,\n                getNumberOfFiles: function () {\n                    var scope = this.scope;\n                    return scope.queue.length - scope.processing();\n                },\n                dataType: 'json',\n                autoUpload: false\n            };\n            this.$get = [\n                function () {\n                    return {\n                        defaults: $config\n                    };\n                }\n            ];\n        })\n\n        // Format byte numbers to readable presentations:\n        .provider('formatFileSizeFilter', function () {\n            var $config = {\n                // Byte units following the IEC format\n                // http://en.wikipedia.org/wiki/Kilobyte\n                units: [\n                    {size: 1000000000, suffix: ' GB'},\n                    {size: 1000000, suffix: ' MB'},\n                    {size: 1000, suffix: ' KB'}\n                ]\n            };\n            this.defaults = $config;\n            this.$get = function () {\n                return function (bytes) {\n                    if (!angular.isNumber(bytes)) {\n                        return '';\n                    }\n                    var unit = true,\n                        i = 0,\n                        prefix,\n                        suffix;\n                    while (unit) {\n                        unit = $config.units[i];\n                        prefix = unit.prefix || '';\n                        suffix = unit.suffix || '';\n                        if (i === $config.units.length - 1 || bytes >= unit.size) {\n                            return prefix + (bytes / unit.size).toFixed(2) + suffix;\n                        }\n                        i += 1;\n                    }\n                };\n            };\n        })\n\n        // The FileUploadController initializes the fileupload widget and\n        // provides scope methods to control the File Upload functionality:\n        .controller('FileUploadController', [\n            '$scope', '$element', '$attrs', '$window', 'fileUpload',\n            function ($scope, $element, $attrs, $window, fileUpload) {\n                var uploadMethods = {\n                    progress: function () {\n                        return $element.fileupload('progress');\n                    },\n                    active: function () {\n                        return $element.fileupload('active');\n                    },\n                    option: function (option, data) {\n                        if (arguments.length === 1) {\n                            return $element.fileupload('option', option);\n                        }\n                        $element.fileupload('option', option, data);\n                    },\n                    add: function (data) {\n                        return $element.fileupload('add', data);\n                    },\n                    send: function (data) {\n                        return $element.fileupload('send', data);\n                    },\n                    process: function (data) {\n                        return $element.fileupload('process', data);\n                    },\n                    processing: function (data) {\n                        return $element.fileupload('processing', data);\n                    }\n                };\n                $scope.disabled = !$window.jQuery.support.fileInput;\n                $scope.queue = $scope.queue || [];\n                $scope.clear = function (files) {\n                    var queue = this.queue,\n                        i = queue.length,\n                        file = files,\n                        length = 1;\n                    if (angular.isArray(files)) {\n                        file = files[0];\n                        length = files.length;\n                    }\n                    while (i) {\n                        i -= 1;\n                        if (queue[i] === file) {\n                            return queue.splice(i, length);\n                        }\n                    }\n                };\n                $scope.replace = function (oldFiles, newFiles) {\n                    var queue = this.queue,\n                        file = oldFiles[0],\n                        i,\n                        j;\n                    for (i = 0; i < queue.length; i += 1) {\n                        if (queue[i] === file) {\n                            for (j = 0; j < newFiles.length; j += 1) {\n                                queue[i + j] = newFiles[j];\n                            }\n                            return;\n                        }\n                    }\n                };\n                $scope.applyOnQueue = function (method) {\n                    var list = this.queue.slice(0),\n                        i,\n                        file;\n                    for (i = 0; i < list.length; i += 1) {\n                        file = list[i];\n                        if (file[method]) {\n                            file[method]();\n                        }\n                    }\n                };\n                $scope.submit = function () {\n                    this.applyOnQueue('$submit');\n                };\n                $scope.cancel = function () {\n                    this.applyOnQueue('$cancel');\n                };\n                // Add upload methods to the scope:\n                angular.extend($scope, uploadMethods);\n                // The fileupload widget will initialize with\n                // the options provided via \"data-\"-parameters,\n                // as well as those given via options object:\n                $element.fileupload(angular.extend(\n                    {scope: $scope},\n                    fileUpload.defaults\n                )).on('fileuploadadd', function (e, data) {\n                    data.scope = $scope;\n                }).on('fileuploadfail', function (e, data) {\n                    if (data.errorThrown === 'abort') {\n                        return;\n                    }\n                    if (data.dataType &&\n                            data.dataType.indexOf('json') === data.dataType.length - 4) {\n                        try {\n                            data.result = angular.fromJson(data.jqXHR.responseText);\n                        } catch (ignore) {}\n                    }\n                }).on([\n                    'fileuploadadd',\n                    'fileuploadsubmit',\n                    'fileuploadsend',\n                    'fileuploaddone',\n                    'fileuploadfail',\n                    'fileuploadalways',\n                    'fileuploadprogress',\n                    'fileuploadprogressall',\n                    'fileuploadstart',\n                    'fileuploadstop',\n                    'fileuploadchange',\n                    'fileuploadpaste',\n                    'fileuploaddrop',\n                    'fileuploaddragover',\n                    'fileuploadchunksend',\n                    'fileuploadchunkdone',\n                    'fileuploadchunkfail',\n                    'fileuploadchunkalways',\n                    'fileuploadprocessstart',\n                    'fileuploadprocess',\n                    'fileuploadprocessdone',\n                    'fileuploadprocessfail',\n                    'fileuploadprocessalways',\n                    'fileuploadprocessstop'\n                ].join(' '), function (e, data) {\n                    $scope.$parent.$applyAsync(function () {\n                        if ($scope.$emit(e.type, data).defaultPrevented) {\n                            e.preventDefault();\n                        }\n                    });\n                }).on('remove', function () {\n                    // Remove upload methods from the scope,\n                    // when the widget is removed:\n                    var method;\n                    for (method in uploadMethods) {\n                        if (uploadMethods.hasOwnProperty(method)) {\n                            delete $scope[method];\n                        }\n                    }\n                });\n                // Observe option changes:\n                $scope.$watch(\n                    $attrs.fileUpload,\n                    function (newOptions) {\n                        if (newOptions) {\n                            $element.fileupload('option', newOptions);\n                        }\n                    }\n                );\n            }\n        ])\n\n        // Provide File Upload progress feedback:\n        .controller('FileUploadProgressController', [\n            '$scope', '$attrs', '$parse',\n            function ($scope, $attrs, $parse) {\n                var fn = $parse($attrs.fileUploadProgress),\n                    update = function () {\n                        var progress = fn($scope);\n                        if (!progress || !progress.total) {\n                            return;\n                        }\n                        $scope.num = Math.floor(\n                            progress.loaded / progress.total * 100\n                        );\n                    };\n                update();\n                $scope.$watch(\n                    $attrs.fileUploadProgress + '.loaded',\n                    function (newValue, oldValue) {\n                        if (newValue !== oldValue) {\n                            update();\n                        }\n                    }\n                );\n            }\n        ])\n\n        // Display File Upload previews:\n        .controller('FileUploadPreviewController', [\n            '$scope', '$element', '$attrs',\n            function ($scope, $element, $attrs) {\n                $scope.$watch(\n                    $attrs.fileUploadPreview + '.preview',\n                    function (preview) {\n                        $element.empty();\n                        if (preview) {\n                            $element.append(preview);\n                        }\n                    }\n                );\n            }\n        ])\n\n        .directive('fileUpload', function () {\n            return {\n                controller: 'FileUploadController',\n                scope: true\n            };\n        })\n\n        .directive('fileUploadProgress', function () {\n            return {\n                controller: 'FileUploadProgressController',\n                scope: true\n            };\n        })\n\n        .directive('fileUploadPreview', function () {\n            return {\n                controller: 'FileUploadPreviewController'\n            };\n        })\n\n        // Enhance the HTML5 download attribute to\n        // allow drag&drop of files to the desktop:\n        .directive('download', function () {\n            return function (scope, elm) {\n                elm.on('dragstart', function (e) {\n                    try {\n                        e.originalEvent.dataTransfer.setData(\n                            'DownloadURL',\n                            [\n                                'application/octet-stream',\n                                elm.prop('download'),\n                                elm.prop('href')\n                            ].join(':')\n                        );\n                    } catch (ignore) {}\n                });\n            };\n        });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-audio.js",
    "content": "/*\n * jQuery File Upload Audio Preview Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'load-image',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('load-image')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.loadImage\n        );\n    }\n}(function ($, loadImage) {\n    'use strict';\n\n    // Prepend to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.unshift(\n        {\n            action: 'loadAudio',\n            // Use the action as prefix for the \"@\" options:\n            prefix: true,\n            fileTypes: '@',\n            maxFileSize: '@',\n            disabled: '@disableAudioPreview'\n        },\n        {\n            action: 'setAudio',\n            name: '@audioPreviewName',\n            disabled: '@disableAudioPreview'\n        }\n    );\n\n    // The File Upload Audio Preview plugin extends the fileupload widget\n    // with audio preview functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The regular expression for the types of audio files to load,\n            // matched against the file type:\n            loadAudioFileTypes: /^audio\\/.*$/\n        },\n\n        _audioElement: document.createElement('audio'),\n\n        processActions: {\n\n            // Loads the audio file given via data.files and data.index\n            // as audio element if the browser supports playing it.\n            // Accepts the options fileTypes (regular expression)\n            // and maxFileSize (integer) to limit the files to load:\n            loadAudio: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var file = data.files[data.index],\n                    url,\n                    audio;\n                if (this._audioElement.canPlayType &&\n                        this._audioElement.canPlayType(file.type) &&\n                        ($.type(options.maxFileSize) !== 'number' ||\n                            file.size <= options.maxFileSize) &&\n                        (!options.fileTypes ||\n                            options.fileTypes.test(file.type))) {\n                    url = loadImage.createObjectURL(file);\n                    if (url) {\n                        audio = this._audioElement.cloneNode(false);\n                        audio.src = url;\n                        audio.controls = true;\n                        data.audio = audio;\n                        return data;\n                    }\n                }\n                return data;\n            },\n\n            // Sets the audio element as a property of the file object:\n            setAudio: function (data, options) {\n                if (data.audio && !options.disabled) {\n                    data.files[data.index][options.name || 'preview'] = data.audio;\n                }\n                return data;\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-image.js",
    "content": "/*\n * jQuery File Upload Image Preview & Resize Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, Blob */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'load-image',\n            'load-image-meta',\n            'load-image-exif',\n            'load-image-ios',\n            'canvas-to-blob',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('load-image')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.loadImage\n        );\n    }\n}(function ($, loadImage) {\n    'use strict';\n\n    // Prepend to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.unshift(\n        {\n            action: 'loadImageMetaData',\n            disableImageHead: '@',\n            disableExif: '@',\n            disableExifThumbnail: '@',\n            disableExifSub: '@',\n            disableExifGps: '@',\n            disabled: '@disableImageMetaDataLoad'\n        },\n        {\n            action: 'loadImage',\n            // Use the action as prefix for the \"@\" options:\n            prefix: true,\n            fileTypes: '@',\n            maxFileSize: '@',\n            noRevoke: '@',\n            disabled: '@disableImageLoad'\n        },\n        {\n            action: 'resizeImage',\n            // Use \"image\" as prefix for the \"@\" options:\n            prefix: 'image',\n            maxWidth: '@',\n            maxHeight: '@',\n            minWidth: '@',\n            minHeight: '@',\n            crop: '@',\n            orientation: '@',\n            forceResize: '@',\n            disabled: '@disableImageResize'\n        },\n        {\n            action: 'saveImage',\n            quality: '@imageQuality',\n            type: '@imageType',\n            disabled: '@disableImageResize'\n        },\n        {\n            action: 'saveImageMetaData',\n            disabled: '@disableImageMetaDataSave'\n        },\n        {\n            action: 'resizeImage',\n            // Use \"preview\" as prefix for the \"@\" options:\n            prefix: 'preview',\n            maxWidth: '@',\n            maxHeight: '@',\n            minWidth: '@',\n            minHeight: '@',\n            crop: '@',\n            orientation: '@',\n            thumbnail: '@',\n            canvas: '@',\n            disabled: '@disableImagePreview'\n        },\n        {\n            action: 'setImage',\n            name: '@imagePreviewName',\n            disabled: '@disableImagePreview'\n        },\n        {\n            action: 'deleteImageReferences',\n            disabled: '@disableImageReferencesDeletion'\n        }\n    );\n\n    // The File Upload Resize plugin extends the fileupload widget\n    // with image resize functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The regular expression for the types of images to load:\n            // matched against the file type:\n            loadImageFileTypes: /^image\\/(gif|jpeg|png|svg\\+xml)$/,\n            // The maximum file size of images to load:\n            loadImageMaxFileSize: 10000000, // 10MB\n            // The maximum width of resized images:\n            imageMaxWidth: 1920,\n            // The maximum height of resized images:\n            imageMaxHeight: 1080,\n            // Defines the image orientation (1-8) or takes the orientation\n            // value from Exif data if set to true:\n            imageOrientation: false,\n            // Define if resized images should be cropped or only scaled:\n            imageCrop: false,\n            // Disable the resize image functionality by default:\n            disableImageResize: true,\n            // The maximum width of the preview images:\n            previewMaxWidth: 80,\n            // The maximum height of the preview images:\n            previewMaxHeight: 80,\n            // Defines the preview orientation (1-8) or takes the orientation\n            // value from Exif data if set to true:\n            previewOrientation: true,\n            // Create the preview using the Exif data thumbnail:\n            previewThumbnail: true,\n            // Define if preview images should be cropped or only scaled:\n            previewCrop: false,\n            // Define if preview images should be resized as canvas elements:\n            previewCanvas: true\n        },\n\n        processActions: {\n\n            // Loads the image given via data.files and data.index\n            // as img element, if the browser supports the File API.\n            // Accepts the options fileTypes (regular expression)\n            // and maxFileSize (integer) to limit the files to load:\n            loadImage: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var that = this,\n                    file = data.files[data.index],\n                    dfd = $.Deferred();\n                if (($.type(options.maxFileSize) === 'number' &&\n                            file.size > options.maxFileSize) ||\n                        (options.fileTypes &&\n                            !options.fileTypes.test(file.type)) ||\n                        !loadImage(\n                            file,\n                            function (img) {\n                                if (img.src) {\n                                    data.img = img;\n                                }\n                                dfd.resolveWith(that, [data]);\n                            },\n                            options\n                        )) {\n                    return data;\n                }\n                return dfd.promise();\n            },\n\n            // Resizes the image given as data.canvas or data.img\n            // and updates data.canvas or data.img with the resized image.\n            // Also stores the resized image as preview property.\n            // Accepts the options maxWidth, maxHeight, minWidth,\n            // minHeight, canvas and crop:\n            resizeImage: function (data, options) {\n                if (options.disabled || !(data.canvas || data.img)) {\n                    return data;\n                }\n                options = $.extend({canvas: true}, options);\n                var that = this,\n                    dfd = $.Deferred(),\n                    img = (options.canvas && data.canvas) || data.img,\n                    resolve = function (newImg) {\n                        if (newImg && (newImg.width !== img.width ||\n                                newImg.height !== img.height ||\n                                options.forceResize)) {\n                            data[newImg.getContext ? 'canvas' : 'img'] = newImg;\n                        }\n                        data.preview = newImg;\n                        dfd.resolveWith(that, [data]);\n                    },\n                    thumbnail;\n                if (data.exif) {\n                    if (options.orientation === true) {\n                        options.orientation = data.exif.get('Orientation');\n                    }\n                    if (options.thumbnail) {\n                        thumbnail = data.exif.get('Thumbnail');\n                        if (thumbnail) {\n                            loadImage(thumbnail, resolve, options);\n                            return dfd.promise();\n                        }\n                    }\n                    // Prevent orienting the same image twice:\n                    if (data.orientation) {\n                        delete options.orientation;\n                    } else {\n                        data.orientation = options.orientation;\n                    }\n                }\n                if (img) {\n                    resolve(loadImage.scale(img, options));\n                    return dfd.promise();\n                }\n                return data;\n            },\n\n            // Saves the processed image given as data.canvas\n            // inplace at data.index of data.files:\n            saveImage: function (data, options) {\n                if (!data.canvas || options.disabled) {\n                    return data;\n                }\n                var that = this,\n                    file = data.files[data.index],\n                    dfd = $.Deferred();\n                if (data.canvas.toBlob) {\n                    data.canvas.toBlob(\n                        function (blob) {\n                            if (!blob.name) {\n                                if (file.type === blob.type) {\n                                    blob.name = file.name;\n                                } else if (file.name) {\n                                    blob.name = file.name.replace(\n                                        /\\.\\w+$/,\n                                        '.' + blob.type.substr(6)\n                                    );\n                                }\n                            }\n                            // Don't restore invalid meta data:\n                            if (file.type !== blob.type) {\n                                delete data.imageHead;\n                            }\n                            // Store the created blob at the position\n                            // of the original file in the files list:\n                            data.files[data.index] = blob;\n                            dfd.resolveWith(that, [data]);\n                        },\n                        options.type || file.type,\n                        options.quality\n                    );\n                } else {\n                    return data;\n                }\n                return dfd.promise();\n            },\n\n            loadImageMetaData: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var that = this,\n                    dfd = $.Deferred();\n                loadImage.parseMetaData(data.files[data.index], function (result) {\n                    $.extend(data, result);\n                    dfd.resolveWith(that, [data]);\n                }, options);\n                return dfd.promise();\n            },\n\n            saveImageMetaData: function (data, options) {\n                if (!(data.imageHead && data.canvas &&\n                        data.canvas.toBlob && !options.disabled)) {\n                    return data;\n                }\n                var file = data.files[data.index],\n                    blob = new Blob([\n                        data.imageHead,\n                        // Resized images always have a head size of 20 bytes,\n                        // including the JPEG marker and a minimal JFIF header:\n                        this._blobSlice.call(file, 20)\n                    ], {type: file.type});\n                blob.name = file.name;\n                data.files[data.index] = blob;\n                return data;\n            },\n\n            // Sets the resized version of the image as a property of the\n            // file object, must be called after \"saveImage\":\n            setImage: function (data, options) {\n                if (data.preview && !options.disabled) {\n                    data.files[data.index][options.name || 'preview'] = data.preview;\n                }\n                return data;\n            },\n\n            deleteImageReferences: function (data, options) {\n                if (!options.disabled) {\n                    delete data.img;\n                    delete data.canvas;\n                    delete data.preview;\n                    delete data.imageHead;\n                }\n                return data;\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-jquery-ui.js",
    "content": "/*\n * jQuery File Upload jQuery UI Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery', './jquery.fileupload-ui'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            processdone: function (e, data) {\n                data.context.find('.start').button('enable');\n            },\n            progress: function (e, data) {\n                if (data.context) {\n                    data.context.find('.progress').progressbar(\n                        'option',\n                        'value',\n                        parseInt(data.loaded / data.total * 100, 10)\n                    );\n                }\n            },\n            progressall: function (e, data) {\n                var $this = $(this);\n                $this.find('.fileupload-progress')\n                    .find('.progress').progressbar(\n                        'option',\n                        'value',\n                        parseInt(data.loaded / data.total * 100, 10)\n                    ).end()\n                    .find('.progress-extended').each(function () {\n                        $(this).html(\n                            ($this.data('blueimp-fileupload') ||\n                                    $this.data('fileupload'))\n                                ._renderExtendedProgress(data)\n                        );\n                    });\n            }\n        },\n\n        _renderUpload: function (func, files) {\n            var node = this._super(func, files),\n                showIconText = $(window).width() > 480;\n            node.find('.progress').empty().progressbar();\n            node.find('.start').button({\n                icons: {primary: 'ui-icon-circle-arrow-e'},\n                text: showIconText\n            });\n            node.find('.cancel').button({\n                icons: {primary: 'ui-icon-cancel'},\n                text: showIconText\n            });\n            if (node.hasClass('fade')) {\n                node.hide();\n            }\n            return node;\n        },\n\n        _renderDownload: function (func, files) {\n            var node = this._super(func, files),\n                showIconText = $(window).width() > 480;\n            node.find('.delete').button({\n                icons: {primary: 'ui-icon-trash'},\n                text: showIconText\n            });\n            if (node.hasClass('fade')) {\n                node.hide();\n            }\n            return node;\n        },\n\n        _startHandler: function (e) {\n            $(e.currentTarget).button('disable');\n            this._super(e);\n        },\n\n        _transition: function (node) {\n            var deferred = $.Deferred();\n            if (node.hasClass('fade')) {\n                node.fadeToggle(\n                    this.options.transitionDuration,\n                    this.options.transitionEasing,\n                    function () {\n                        deferred.resolveWith(node);\n                    }\n                );\n            } else {\n                deferred.resolveWith(node);\n            }\n            return deferred;\n        },\n\n        _create: function () {\n            this._super();\n            this.element\n                .find('.fileupload-buttonbar')\n                .find('.fileinput-button').each(function () {\n                    var input = $(this).find('input:file').detach();\n                    $(this)\n                        .button({icons: {primary: 'ui-icon-plusthick'}})\n                        .append(input);\n                })\n                .end().find('.start')\n                .button({icons: {primary: 'ui-icon-circle-arrow-e'}})\n                .end().find('.cancel')\n                .button({icons: {primary: 'ui-icon-cancel'}})\n                .end().find('.delete')\n                .button({icons: {primary: 'ui-icon-trash'}})\n                .end().find('.progress').progressbar();\n        },\n\n        _destroy: function () {\n            this.element\n                .find('.fileupload-buttonbar')\n                .find('.fileinput-button').each(function () {\n                    var input = $(this).find('input:file').detach();\n                    $(this)\n                        .button('destroy')\n                        .append(input);\n                })\n                .end().find('.start')\n                .button('destroy')\n                .end().find('.cancel')\n                .button('destroy')\n                .end().find('.delete')\n                .button('destroy')\n                .end().find('.progress').progressbar('destroy');\n            this._super();\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-process.js",
    "content": "/*\n * jQuery File Upload Processing Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            './jquery.fileupload'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery\n        );\n    }\n}(function ($) {\n    'use strict';\n\n    var originalAdd = $.blueimp.fileupload.prototype.options.add;\n\n    // The File Upload Processing plugin extends the fileupload widget\n    // with file processing functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The list of processing actions:\n            processQueue: [\n                /*\n                {\n                    action: 'log',\n                    type: 'debug'\n                }\n                */\n            ],\n            add: function (e, data) {\n                var $this = $(this);\n                data.process(function () {\n                    return $this.fileupload('process', data);\n                });\n                originalAdd.call(this, e, data);\n            }\n        },\n\n        processActions: {\n            /*\n            log: function (data, options) {\n                console[options.type](\n                    'Processing \"' + data.files[data.index].name + '\"'\n                );\n            }\n            */\n        },\n\n        _processFile: function (data, originalData) {\n            var that = this,\n                dfd = $.Deferred().resolveWith(that, [data]),\n                chain = dfd.promise();\n            this._trigger('process', null, data);\n            $.each(data.processQueue, function (i, settings) {\n                var func = function (data) {\n                    if (originalData.errorThrown) {\n                        return $.Deferred()\n                                .rejectWith(that, [originalData]).promise();\n                    }\n                    return that.processActions[settings.action].call(\n                        that,\n                        data,\n                        settings\n                    );\n                };\n                chain = chain.pipe(func, settings.always && func);\n            });\n            chain\n                .done(function () {\n                    that._trigger('processdone', null, data);\n                    that._trigger('processalways', null, data);\n                })\n                .fail(function () {\n                    that._trigger('processfail', null, data);\n                    that._trigger('processalways', null, data);\n                });\n            return chain;\n        },\n\n        // Replaces the settings of each processQueue item that\n        // are strings starting with an \"@\", using the remaining\n        // substring as key for the option map,\n        // e.g. \"@autoUpload\" is replaced with options.autoUpload:\n        _transformProcessQueue: function (options) {\n            var processQueue = [];\n            $.each(options.processQueue, function () {\n                var settings = {},\n                    action = this.action,\n                    prefix = this.prefix === true ? action : this.prefix;\n                $.each(this, function (key, value) {\n                    if ($.type(value) === 'string' &&\n                            value.charAt(0) === '@') {\n                        settings[key] = options[\n                            value.slice(1) || (prefix ? prefix +\n                                key.charAt(0).toUpperCase() + key.slice(1) : key)\n                        ];\n                    } else {\n                        settings[key] = value;\n                    }\n\n                });\n                processQueue.push(settings);\n            });\n            options.processQueue = processQueue;\n        },\n\n        // Returns the number of files currently in the processsing queue:\n        processing: function () {\n            return this._processing;\n        },\n\n        // Processes the files given as files property of the data parameter,\n        // returns a Promise object that allows to bind callbacks:\n        process: function (data) {\n            var that = this,\n                options = $.extend({}, this.options, data);\n            if (options.processQueue && options.processQueue.length) {\n                this._transformProcessQueue(options);\n                if (this._processing === 0) {\n                    this._trigger('processstart');\n                }\n                $.each(data.files, function (index) {\n                    var opts = index ? $.extend({}, options) : options,\n                        func = function () {\n                            if (data.errorThrown) {\n                                return $.Deferred()\n                                        .rejectWith(that, [data]).promise();\n                            }\n                            return that._processFile(opts, data);\n                        };\n                    opts.index = index;\n                    that._processing += 1;\n                    that._processingQueue = that._processingQueue.pipe(func, func)\n                        .always(function () {\n                            that._processing -= 1;\n                            if (that._processing === 0) {\n                                that._trigger('processstop');\n                            }\n                        });\n                });\n            }\n            return this._processingQueue;\n        },\n\n        _create: function () {\n            this._super();\n            this._processing = 0;\n            this._processingQueue = $.Deferred().resolveWith(this)\n                .promise();\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-ui.js",
    "content": "/*\n * jQuery File Upload User Interface Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'tmpl',\n            './jquery.fileupload-image',\n            './jquery.fileupload-audio',\n            './jquery.fileupload-video',\n            './jquery.fileupload-validate'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('tmpl')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.tmpl\n        );\n    }\n}(function ($, tmpl) {\n    'use strict';\n\n    $.blueimp.fileupload.prototype._specialOptions.push(\n        'filesContainer',\n        'uploadTemplateId',\n        'downloadTemplateId'\n    );\n\n    // The UI version extends the file upload widget\n    // and adds complete user interface interaction:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // By default, files added to the widget are uploaded as soon\n            // as the user clicks on the start buttons. To enable automatic\n            // uploads, set the following option to true:\n            autoUpload: false,\n            // The ID of the upload template:\n            uploadTemplateId: 'template-upload',\n            // The ID of the download template:\n            downloadTemplateId: 'template-download',\n            // The container for the list of files. If undefined, it is set to\n            // an element with class \"files\" inside of the widget element:\n            filesContainer: undefined,\n            // By default, files are appended to the files container.\n            // Set the following option to true, to prepend files instead:\n            prependFiles: false,\n            // The expected data type of the upload response, sets the dataType\n            // option of the $.ajax upload requests:\n            dataType: 'json',\n\n            // Error and info messages:\n            messages: {\n                unknownError: 'Unknown error'\n            },\n\n            // Function returning the current number of files,\n            // used by the maxNumberOfFiles validation:\n            getNumberOfFiles: function () {\n                return this.filesContainer.children()\n                    .not('.processing').length;\n            },\n\n            // Callback to retrieve the list of files from the server response:\n            getFilesFromResponse: function (data) {\n                if (data.result && $.isArray(data.result.files)) {\n                    return data.result.files;\n                }\n                return [];\n            },\n\n            // The add callback is invoked as soon as files are added to the fileupload\n            // widget (via file input selection, drag & drop or add API call).\n            // See the basic file upload widget for more information:\n            add: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var $this = $(this),\n                    that = $this.data('blueimp-fileupload') ||\n                        $this.data('fileupload'),\n                    options = that.options;\n                data.context = that._renderUpload(data.files)\n                    .data('data', data)\n                    .addClass('processing');\n                options.filesContainer[\n                    options.prependFiles ? 'prepend' : 'append'\n                ](data.context);\n                that._forceReflow(data.context);\n                that._transition(data.context);\n                data.process(function () {\n                    return $this.fileupload('process', data);\n                }).always(function () {\n                    data.context.each(function (index) {\n                        $(this).find('.size').text(\n                            that._formatFileSize(data.files[index].size)\n                        );\n                    }).removeClass('processing');\n                    that._renderPreviews(data);\n                }).done(function () {\n                    data.context.find('.start').prop('disabled', false);\n                    if ((that._trigger('added', e, data) !== false) &&\n                            (options.autoUpload || data.autoUpload) &&\n                            data.autoUpload !== false) {\n                        data.submit();\n                    }\n                }).fail(function () {\n                    if (data.files.error) {\n                        data.context.each(function (index) {\n                            var error = data.files[index].error;\n                            if (error) {\n                                $(this).find('.error').text(error);\n                            }\n                        });\n                    }\n                });\n            },\n            // Callback for the start of each file upload request:\n            send: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload');\n                if (data.context && data.dataType &&\n                        data.dataType.substr(0, 6) === 'iframe') {\n                    // Iframe Transport does not support progress events.\n                    // In lack of an indeterminate progress bar, we set\n                    // the progress to 100%, showing the full animated bar:\n                    data.context\n                        .find('.progress').addClass(\n                            !$.support.transition && 'progress-animated'\n                        )\n                        .attr('aria-valuenow', 100)\n                        .children().first().css(\n                            'width',\n                            '100%'\n                        );\n                }\n                return that._trigger('sent', e, data);\n            },\n            // Callback for successful uploads:\n            done: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    getFilesFromResponse = data.getFilesFromResponse ||\n                        that.options.getFilesFromResponse,\n                    files = getFilesFromResponse(data),\n                    template,\n                    deferred;\n                if (data.context) {\n                    data.context.each(function (index) {\n                        var file = files[index] ||\n                                {error: 'Empty file upload result'};\n                        deferred = that._addFinishedDeferreds();\n                        that._transition($(this)).done(\n                            function () {\n                                var node = $(this);\n                                template = that._renderDownload([file])\n                                    .replaceAll(node);\n                                that._forceReflow(template);\n                                that._transition(template).done(\n                                    function () {\n                                        data.context = $(this);\n                                        that._trigger('completed', e, data);\n                                        that._trigger('finished', e, data);\n                                        deferred.resolve();\n                                    }\n                                );\n                            }\n                        );\n                    });\n                } else {\n                    template = that._renderDownload(files)[\n                        that.options.prependFiles ? 'prependTo' : 'appendTo'\n                    ](that.options.filesContainer);\n                    that._forceReflow(template);\n                    deferred = that._addFinishedDeferreds();\n                    that._transition(template).done(\n                        function () {\n                            data.context = $(this);\n                            that._trigger('completed', e, data);\n                            that._trigger('finished', e, data);\n                            deferred.resolve();\n                        }\n                    );\n                }\n            },\n            // Callback for failed (abort or error) uploads:\n            fail: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    template,\n                    deferred;\n                if (data.context) {\n                    data.context.each(function (index) {\n                        if (data.errorThrown !== 'abort') {\n                            var file = data.files[index];\n                            file.error = file.error || data.errorThrown ||\n                                data.i18n('unknownError');\n                            deferred = that._addFinishedDeferreds();\n                            that._transition($(this)).done(\n                                function () {\n                                    var node = $(this);\n                                    template = that._renderDownload([file])\n                                        .replaceAll(node);\n                                    that._forceReflow(template);\n                                    that._transition(template).done(\n                                        function () {\n                                            data.context = $(this);\n                                            that._trigger('failed', e, data);\n                                            that._trigger('finished', e, data);\n                                            deferred.resolve();\n                                        }\n                                    );\n                                }\n                            );\n                        } else {\n                            deferred = that._addFinishedDeferreds();\n                            that._transition($(this)).done(\n                                function () {\n                                    $(this).remove();\n                                    that._trigger('failed', e, data);\n                                    that._trigger('finished', e, data);\n                                    deferred.resolve();\n                                }\n                            );\n                        }\n                    });\n                } else if (data.errorThrown !== 'abort') {\n                    data.context = that._renderUpload(data.files)[\n                        that.options.prependFiles ? 'prependTo' : 'appendTo'\n                    ](that.options.filesContainer)\n                        .data('data', data);\n                    that._forceReflow(data.context);\n                    deferred = that._addFinishedDeferreds();\n                    that._transition(data.context).done(\n                        function () {\n                            data.context = $(this);\n                            that._trigger('failed', e, data);\n                            that._trigger('finished', e, data);\n                            deferred.resolve();\n                        }\n                    );\n                } else {\n                    that._trigger('failed', e, data);\n                    that._trigger('finished', e, data);\n                    that._addFinishedDeferreds().resolve();\n                }\n            },\n            // Callback for upload progress events:\n            progress: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var progress = Math.floor(data.loaded / data.total * 100);\n                if (data.context) {\n                    data.context.each(function () {\n                        $(this).find('.progress')\n                            .attr('aria-valuenow', progress)\n                            .children().first().css(\n                                'width',\n                                progress + '%'\n                            );\n                    });\n                }\n            },\n            // Callback for global upload progress events:\n            progressall: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var $this = $(this),\n                    progress = Math.floor(data.loaded / data.total * 100),\n                    globalProgressNode = $this.find('.fileupload-progress'),\n                    extendedProgressNode = globalProgressNode\n                        .find('.progress-extended');\n                if (extendedProgressNode.length) {\n                    extendedProgressNode.html(\n                        ($this.data('blueimp-fileupload') || $this.data('fileupload'))\n                            ._renderExtendedProgress(data)\n                    );\n                }\n                globalProgressNode\n                    .find('.progress')\n                    .attr('aria-valuenow', progress)\n                    .children().first().css(\n                        'width',\n                        progress + '%'\n                    );\n            },\n            // Callback for uploads start, equivalent to the global ajaxStart event:\n            start: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload');\n                that._resetFinishedDeferreds();\n                that._transition($(this).find('.fileupload-progress')).done(\n                    function () {\n                        that._trigger('started', e);\n                    }\n                );\n            },\n            // Callback for uploads stop, equivalent to the global ajaxStop event:\n            stop: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    deferred = that._addFinishedDeferreds();\n                $.when.apply($, that._getFinishedDeferreds())\n                    .done(function () {\n                        that._trigger('stopped', e);\n                    });\n                that._transition($(this).find('.fileupload-progress')).done(\n                    function () {\n                        $(this).find('.progress')\n                            .attr('aria-valuenow', '0')\n                            .children().first().css('width', '0%');\n                        $(this).find('.progress-extended').html('&nbsp;');\n                        deferred.resolve();\n                    }\n                );\n            },\n            processstart: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                $(this).addClass('fileupload-processing');\n            },\n            processstop: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                $(this).removeClass('fileupload-processing');\n            },\n            // Callback for file deletion:\n            destroy: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    removeNode = function () {\n                        that._transition(data.context).done(\n                            function () {\n                                $(this).remove();\n                                that._trigger('destroyed', e, data);\n                            }\n                        );\n                    };\n                if (data.url) {\n                    data.dataType = data.dataType || that.options.dataType;\n                    $.ajax(data).done(removeNode).fail(function () {\n                        that._trigger('destroyfailed', e, data);\n                    });\n                } else {\n                    removeNode();\n                }\n            }\n        },\n\n        _resetFinishedDeferreds: function () {\n            this._finishedUploads = [];\n        },\n\n        _addFinishedDeferreds: function (deferred) {\n            if (!deferred) {\n                deferred = $.Deferred();\n            }\n            this._finishedUploads.push(deferred);\n            return deferred;\n        },\n\n        _getFinishedDeferreds: function () {\n            return this._finishedUploads;\n        },\n\n        // Link handler, that allows to download files\n        // by drag & drop of the links to the desktop:\n        _enableDragToDesktop: function () {\n            var link = $(this),\n                url = link.prop('href'),\n                name = link.prop('download'),\n                type = 'application/octet-stream';\n            link.bind('dragstart', function (e) {\n                try {\n                    e.originalEvent.dataTransfer.setData(\n                        'DownloadURL',\n                        [type, name, url].join(':')\n                    );\n                } catch (ignore) {}\n            });\n        },\n\n        _formatFileSize: function (bytes) {\n            if (typeof bytes !== 'number') {\n                return '';\n            }\n            if (bytes >= 1000000000) {\n                return (bytes / 1000000000).toFixed(2) + ' GB';\n            }\n            if (bytes >= 1000000) {\n                return (bytes / 1000000).toFixed(2) + ' MB';\n            }\n            return (bytes / 1000).toFixed(2) + ' KB';\n        },\n\n        _formatBitrate: function (bits) {\n            if (typeof bits !== 'number') {\n                return '';\n            }\n            if (bits >= 1000000000) {\n                return (bits / 1000000000).toFixed(2) + ' Gbit/s';\n            }\n            if (bits >= 1000000) {\n                return (bits / 1000000).toFixed(2) + ' Mbit/s';\n            }\n            if (bits >= 1000) {\n                return (bits / 1000).toFixed(2) + ' kbit/s';\n            }\n            return bits.toFixed(2) + ' bit/s';\n        },\n\n        _formatTime: function (seconds) {\n            var date = new Date(seconds * 1000),\n                days = Math.floor(seconds / 86400);\n            days = days ? days + 'd ' : '';\n            return days +\n                ('0' + date.getUTCHours()).slice(-2) + ':' +\n                ('0' + date.getUTCMinutes()).slice(-2) + ':' +\n                ('0' + date.getUTCSeconds()).slice(-2);\n        },\n\n        _formatPercentage: function (floatValue) {\n            return (floatValue * 100).toFixed(2) + ' %';\n        },\n\n        _renderExtendedProgress: function (data) {\n            return this._formatBitrate(data.bitrate) + ' | ' +\n                this._formatTime(\n                    (data.total - data.loaded) * 8 / data.bitrate\n                ) + ' | ' +\n                this._formatPercentage(\n                    data.loaded / data.total\n                ) + ' | ' +\n                this._formatFileSize(data.loaded) + ' / ' +\n                this._formatFileSize(data.total);\n        },\n\n        _renderTemplate: function (func, files) {\n            if (!func) {\n                return $();\n            }\n            var result = func({\n                files: files,\n                formatFileSize: this._formatFileSize,\n                options: this.options\n            });\n            if (result instanceof $) {\n                return result;\n            }\n            return $(this.options.templatesContainer).html(result).children();\n        },\n\n        _renderPreviews: function (data) {\n            data.context.find('.preview').each(function (index, elm) {\n                $(elm).append(data.files[index].preview);\n            });\n        },\n\n        _renderUpload: function (files) {\n            return this._renderTemplate(\n                this.options.uploadTemplate,\n                files\n            );\n        },\n\n        _renderDownload: function (files) {\n            return this._renderTemplate(\n                this.options.downloadTemplate,\n                files\n            ).find('a[download]').each(this._enableDragToDesktop).end();\n        },\n\n        _startHandler: function (e) {\n            e.preventDefault();\n            var button = $(e.currentTarget),\n                template = button.closest('.template-upload'),\n                data = template.data('data');\n            button.prop('disabled', true);\n            if (data && data.submit) {\n                data.submit();\n            }\n        },\n\n        _cancelHandler: function (e) {\n            e.preventDefault();\n            var template = $(e.currentTarget)\n                    .closest('.template-upload,.template-download'),\n                data = template.data('data') || {};\n            data.context = data.context || template;\n            if (data.abort) {\n                data.abort();\n            } else {\n                data.errorThrown = 'abort';\n                this._trigger('fail', e, data);\n            }\n        },\n\n        _deleteHandler: function (e) {\n            e.preventDefault();\n            var button = $(e.currentTarget);\n            this._trigger('destroy', e, $.extend({\n                context: button.closest('.template-download'),\n                type: 'DELETE'\n            }, button.data()));\n        },\n\n        _forceReflow: function (node) {\n            return $.support.transition && node.length &&\n                node[0].offsetWidth;\n        },\n\n        _transition: function (node) {\n            var dfd = $.Deferred();\n            if ($.support.transition && node.hasClass('fade') && node.is(':visible')) {\n                node.bind(\n                    $.support.transition.end,\n                    function (e) {\n                        // Make sure we don't respond to other transitions events\n                        // in the container element, e.g. from button elements:\n                        if (e.target === node[0]) {\n                            node.unbind($.support.transition.end);\n                            dfd.resolveWith(node);\n                        }\n                    }\n                ).toggleClass('in');\n            } else {\n                node.toggleClass('in');\n                dfd.resolveWith(node);\n            }\n            return dfd;\n        },\n\n        _initButtonBarEventHandlers: function () {\n            var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),\n                filesList = this.options.filesContainer;\n            this._on(fileUploadButtonBar.find('.start'), {\n                click: function (e) {\n                    e.preventDefault();\n                    filesList.find('.start').click();\n                }\n            });\n            this._on(fileUploadButtonBar.find('.cancel'), {\n                click: function (e) {\n                    e.preventDefault();\n                    filesList.find('.cancel').click();\n                }\n            });\n            this._on(fileUploadButtonBar.find('.delete'), {\n                click: function (e) {\n                    e.preventDefault();\n                    filesList.find('.toggle:checked')\n                        .closest('.template-download')\n                        .find('.delete').click();\n                    fileUploadButtonBar.find('.toggle')\n                        .prop('checked', false);\n                }\n            });\n            this._on(fileUploadButtonBar.find('.toggle'), {\n                change: function (e) {\n                    filesList.find('.toggle').prop(\n                        'checked',\n                        $(e.currentTarget).is(':checked')\n                    );\n                }\n            });\n        },\n\n        _destroyButtonBarEventHandlers: function () {\n            this._off(\n                this.element.find('.fileupload-buttonbar')\n                    .find('.start, .cancel, .delete'),\n                'click'\n            );\n            this._off(\n                this.element.find('.fileupload-buttonbar .toggle'),\n                'change.'\n            );\n        },\n\n        _initEventHandlers: function () {\n            this._super();\n            this._on(this.options.filesContainer, {\n                'click .start': this._startHandler,\n                'click .cancel': this._cancelHandler,\n                'click .delete': this._deleteHandler\n            });\n            this._initButtonBarEventHandlers();\n        },\n\n        _destroyEventHandlers: function () {\n            this._destroyButtonBarEventHandlers();\n            this._off(this.options.filesContainer, 'click');\n            this._super();\n        },\n\n        _enableFileInputButton: function () {\n            this.element.find('.fileinput-button input')\n                .prop('disabled', false)\n                .parent().removeClass('disabled');\n        },\n\n        _disableFileInputButton: function () {\n            this.element.find('.fileinput-button input')\n                .prop('disabled', true)\n                .parent().addClass('disabled');\n        },\n\n        _initTemplates: function () {\n            var options = this.options;\n            options.templatesContainer = this.document[0].createElement(\n                options.filesContainer.prop('nodeName')\n            );\n            if (tmpl) {\n                if (options.uploadTemplateId) {\n                    options.uploadTemplate = tmpl(options.uploadTemplateId);\n                }\n                if (options.downloadTemplateId) {\n                    options.downloadTemplate = tmpl(options.downloadTemplateId);\n                }\n            }\n        },\n\n        _initFilesContainer: function () {\n            var options = this.options;\n            if (options.filesContainer === undefined) {\n                options.filesContainer = this.element.find('.files');\n            } else if (!(options.filesContainer instanceof $)) {\n                options.filesContainer = $(options.filesContainer);\n            }\n        },\n\n        _initSpecialOptions: function () {\n            this._super();\n            this._initFilesContainer();\n            this._initTemplates();\n        },\n\n        _create: function () {\n            this._super();\n            this._resetFinishedDeferreds();\n            if (!$.support.fileInput) {\n                this._disableFileInputButton();\n            }\n        },\n\n        enable: function () {\n            var wasDisabled = false;\n            if (this.options.disabled) {\n                wasDisabled = true;\n            }\n            this._super();\n            if (wasDisabled) {\n                this.element.find('input, button').prop('disabled', false);\n                this._enableFileInputButton();\n            }\n        },\n\n        disable: function () {\n            if (!this.options.disabled) {\n                this.element.find('input, button').prop('disabled', true);\n                this._disableFileInputButton();\n            }\n            this._super();\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-validate.js",
    "content": "/*\n * jQuery File Upload Validation Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery\n        );\n    }\n}(function ($) {\n    'use strict';\n\n    // Append to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.push(\n        {\n            action: 'validate',\n            // Always trigger this action,\n            // even if the previous action was rejected:\n            always: true,\n            // Options taken from the global options map:\n            acceptFileTypes: '@',\n            maxFileSize: '@',\n            minFileSize: '@',\n            maxNumberOfFiles: '@',\n            disabled: '@disableValidation'\n        }\n    );\n\n    // The File Upload Validation plugin extends the fileupload widget\n    // with file validation functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            /*\n            // The regular expression for allowed file types, matches\n            // against either file type or file name:\n            acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i,\n            // The maximum allowed file size in bytes:\n            maxFileSize: 10000000, // 10 MB\n            // The minimum allowed file size in bytes:\n            minFileSize: undefined, // No minimal file size\n            // The limit of files to be uploaded:\n            maxNumberOfFiles: 10,\n            */\n\n            // Function returning the current number of files,\n            // has to be overriden for maxNumberOfFiles validation:\n            getNumberOfFiles: $.noop,\n\n            // Error and info messages:\n            messages: {\n                maxNumberOfFiles: 'Maximum number of files exceeded',\n                acceptFileTypes: 'File type not allowed',\n                maxFileSize: 'File is too large',\n                minFileSize: 'File is too small'\n            }\n        },\n\n        processActions: {\n\n            validate: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var dfd = $.Deferred(),\n                    settings = this.options,\n                    file = data.files[data.index],\n                    fileSize;\n                if (options.minFileSize || options.maxFileSize) {\n                    fileSize = file.size;\n                }\n                if ($.type(options.maxNumberOfFiles) === 'number' &&\n                        (settings.getNumberOfFiles() || 0) + data.files.length >\n                            options.maxNumberOfFiles) {\n                    file.error = settings.i18n('maxNumberOfFiles');\n                } else if (options.acceptFileTypes &&\n                        !(options.acceptFileTypes.test(file.type) ||\n                        options.acceptFileTypes.test(file.name))) {\n                    file.error = settings.i18n('acceptFileTypes');\n                } else if (fileSize > options.maxFileSize) {\n                    file.error = settings.i18n('maxFileSize');\n                } else if ($.type(fileSize) === 'number' &&\n                        fileSize < options.minFileSize) {\n                    file.error = settings.i18n('minFileSize');\n                } else {\n                    delete file.error;\n                }\n                if (file.error || data.files.error) {\n                    data.files.error = true;\n                    dfd.rejectWith(this, [data]);\n                } else {\n                    dfd.resolveWith(this, [data]);\n                }\n                return dfd.promise();\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload-video.js",
    "content": "/*\n * jQuery File Upload Video Preview Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'load-image',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('load-image')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.loadImage\n        );\n    }\n}(function ($, loadImage) {\n    'use strict';\n\n    // Prepend to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.unshift(\n        {\n            action: 'loadVideo',\n            // Use the action as prefix for the \"@\" options:\n            prefix: true,\n            fileTypes: '@',\n            maxFileSize: '@',\n            disabled: '@disableVideoPreview'\n        },\n        {\n            action: 'setVideo',\n            name: '@videoPreviewName',\n            disabled: '@disableVideoPreview'\n        }\n    );\n\n    // The File Upload Video Preview plugin extends the fileupload widget\n    // with video preview functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The regular expression for the types of video files to load,\n            // matched against the file type:\n            loadVideoFileTypes: /^video\\/.*$/\n        },\n\n        _videoElement: document.createElement('video'),\n\n        processActions: {\n\n            // Loads the video file given via data.files and data.index\n            // as video element if the browser supports playing it.\n            // Accepts the options fileTypes (regular expression)\n            // and maxFileSize (integer) to limit the files to load:\n            loadVideo: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var file = data.files[data.index],\n                    url,\n                    video;\n                if (this._videoElement.canPlayType &&\n                        this._videoElement.canPlayType(file.type) &&\n                        ($.type(options.maxFileSize) !== 'number' ||\n                            file.size <= options.maxFileSize) &&\n                        (!options.fileTypes ||\n                            options.fileTypes.test(file.type))) {\n                    url = loadImage.createObjectURL(file);\n                    if (url) {\n                        video = this._videoElement.cloneNode(false);\n                        video.src = url;\n                        video.controls = true;\n                        data.video = video;\n                        return data;\n                    }\n                }\n                return data;\n            },\n\n            // Sets the video element as a property of the file object:\n            setVideo: function (data, options) {\n                if (data.video && !options.disabled) {\n                    data.files[data.index][options.name || 'preview'] = data.video;\n                }\n                return data;\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.fileupload.js",
    "content": "/*\n * jQuery File Upload Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document, location, Blob, FormData */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'jquery.ui.widget'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('./vendor/jquery.ui.widget')\n        );\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // Detect file input support, based on\n    // http://viljamis.com/blog/2012/file-upload-support-on-mobile/\n    $.support.fileInput = !(new RegExp(\n        // Handle devices which give false positives for the feature detection:\n        '(Android (1\\\\.[0156]|2\\\\.[01]))' +\n            '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\n            '|(w(eb)?OSBrowser)|(webOS)' +\n            '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))'\n    ).test(window.navigator.userAgent) ||\n        // Feature detection for all other devices:\n        $('<input type=\"file\">').prop('disabled'));\n\n    // The FileReader API is not actually used, but works as feature detection,\n    // as some Safari versions (5?) support XHR file uploads via the FormData API,\n    // but not non-multipart XHR file uploads.\n    // window.XMLHttpRequestUpload is not available on IE10, so we check for\n    // window.ProgressEvent instead to detect XHR2 file upload capability:\n    $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\n    $.support.xhrFormDataFileUpload = !!window.FormData;\n\n    // Detect support for Blob slicing (required for chunked uploads):\n    $.support.blobSlice = window.Blob && (Blob.prototype.slice ||\n        Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n\n    // Helper function to create drag handlers for dragover/dragenter/dragleave:\n    function getDragHandler(type) {\n        var isDragOver = type === 'dragover';\n        return function (e) {\n            e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n            var dataTransfer = e.dataTransfer;\n            if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&\n                    this._trigger(\n                        type,\n                        $.Event(type, {delegatedEvent: e})\n                    ) !== false) {\n                e.preventDefault();\n                if (isDragOver) {\n                    dataTransfer.dropEffect = 'copy';\n                }\n            }\n        };\n    }\n\n    // The fileupload widget listens for change events on file input fields defined\n    // via fileInput setting and paste or drop events of the given dropZone.\n    // In addition to the default jQuery Widget methods, the fileupload widget\n    // exposes the \"add\" and \"send\" methods, to add or directly send files using\n    // the fileupload API.\n    // By default, files added via file input selection, paste, drag & drop or\n    // \"add\" method are uploaded immediately, but it is possible to override\n    // the \"add\" callback option to queue file uploads.\n    $.widget('blueimp.fileupload', {\n\n        options: {\n            // The drop target element(s), by the default the complete document.\n            // Set to null to disable drag & drop support:\n            dropZone: $(document),\n            // The paste target element(s), by the default undefined.\n            // Set to a DOM node or jQuery object to enable file pasting:\n            pasteZone: undefined,\n            // The file input field(s), that are listened to for change events.\n            // If undefined, it is set to the file input fields inside\n            // of the widget element on plugin initialization.\n            // Set to null to disable the change listener.\n            fileInput: undefined,\n            // By default, the file input field is replaced with a clone after\n            // each input field change event. This is required for iframe transport\n            // queues and allows change events to be fired for the same file\n            // selection, but can be disabled by setting the following option to false:\n            replaceFileInput: true,\n            // The parameter name for the file form data (the request argument name).\n            // If undefined or empty, the name property of the file input field is\n            // used, or \"files[]\" if the file input name property is also empty,\n            // can be a string or an array of strings:\n            paramName: undefined,\n            // By default, each file of a selection is uploaded using an individual\n            // request for XHR type uploads. Set to false to upload file\n            // selections in one request each:\n            singleFileUploads: true,\n            // To limit the number of files uploaded with one XHR request,\n            // set the following option to an integer greater than 0:\n            limitMultiFileUploads: undefined,\n            // The following option limits the number of files uploaded with one\n            // XHR request to keep the request size under or equal to the defined\n            // limit in bytes:\n            limitMultiFileUploadSize: undefined,\n            // Multipart file uploads add a number of bytes to each uploaded file,\n            // therefore the following option adds an overhead for each file used\n            // in the limitMultiFileUploadSize configuration:\n            limitMultiFileUploadSizeOverhead: 512,\n            // Set the following option to true to issue all file upload requests\n            // in a sequential order:\n            sequentialUploads: false,\n            // To limit the number of concurrent uploads,\n            // set the following option to an integer greater than 0:\n            limitConcurrentUploads: undefined,\n            // Set the following option to true to force iframe transport uploads:\n            forceIframeTransport: false,\n            // Set the following option to the location of a redirect url on the\n            // origin server, for cross-domain iframe transport uploads:\n            redirect: undefined,\n            // The parameter name for the redirect url, sent as part of the form\n            // data and set to 'redirect' if this option is empty:\n            redirectParamName: undefined,\n            // Set the following option to the location of a postMessage window,\n            // to enable postMessage transport uploads:\n            postMessage: undefined,\n            // By default, XHR file uploads are sent as multipart/form-data.\n            // The iframe transport is always using multipart/form-data.\n            // Set to false to enable non-multipart XHR uploads:\n            multipart: true,\n            // To upload large files in smaller chunks, set the following option\n            // to a preferred maximum chunk size. If set to 0, null or undefined,\n            // or the browser does not support the required Blob API, files will\n            // be uploaded as a whole.\n            maxChunkSize: undefined,\n            // When a non-multipart upload or a chunked multipart upload has been\n            // aborted, this option can be used to resume the upload by setting\n            // it to the size of the already uploaded bytes. This option is most\n            // useful when modifying the options object inside of the \"add\" or\n            // \"send\" callbacks, as the options are cloned for each file upload.\n            uploadedBytes: undefined,\n            // By default, failed (abort or error) file uploads are removed from the\n            // global progress calculation. Set the following option to false to\n            // prevent recalculating the global progress data:\n            recalculateProgress: true,\n            // Interval in milliseconds to calculate and trigger progress events:\n            progressInterval: 100,\n            // Interval in milliseconds to calculate progress bitrate:\n            bitrateInterval: 500,\n            // By default, uploads are started automatically when adding files:\n            autoUpload: true,\n\n            // Error and info messages:\n            messages: {\n                uploadedBytes: 'Uploaded bytes exceed file size'\n            },\n\n            // Translation function, gets the message key to be translated\n            // and an object with context specific data as arguments:\n            i18n: function (message, context) {\n                message = this.messages[message] || message.toString();\n                if (context) {\n                    $.each(context, function (key, value) {\n                        message = message.replace('{' + key + '}', value);\n                    });\n                }\n                return message;\n            },\n\n            // Additional form data to be sent along with the file uploads can be set\n            // using this option, which accepts an array of objects with name and\n            // value properties, a function returning such an array, a FormData\n            // object (for XHR file uploads), or a simple object.\n            // The form of the first fileInput is given as parameter to the function:\n            formData: function (form) {\n                return form.serializeArray();\n            },\n\n            // The add callback is invoked as soon as files are added to the fileupload\n            // widget (via file input selection, drag & drop, paste or add API call).\n            // If the singleFileUploads option is enabled, this callback will be\n            // called once for each file in the selection for XHR file uploads, else\n            // once for each file selection.\n            //\n            // The upload starts when the submit method is invoked on the data parameter.\n            // The data object contains a files property holding the added files\n            // and allows you to override plugin options as well as define ajax settings.\n            //\n            // Listeners for this callback can also be bound the following way:\n            // .bind('fileuploadadd', func);\n            //\n            // data.submit() returns a Promise object and allows to attach additional\n            // handlers using jQuery's Deferred callbacks:\n            // data.submit().done(func).fail(func).always(func);\n            add: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                if (data.autoUpload || (data.autoUpload !== false &&\n                        $(this).fileupload('option', 'autoUpload'))) {\n                    data.process().done(function () {\n                        data.submit();\n                    });\n                }\n            },\n\n            // Other callbacks:\n\n            // Callback for the submit event of each file upload:\n            // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n            // Callback for the start of each file upload request:\n            // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n            // Callback for successful uploads:\n            // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n            // Callback for failed (abort or error) uploads:\n            // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n            // Callback for completed (success, abort or error) requests:\n            // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n            // Callback for upload progress events:\n            // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n            // Callback for global upload progress events:\n            // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n            // Callback for uploads start, equivalent to the global ajaxStart event:\n            // start: function (e) {}, // .bind('fileuploadstart', func);\n\n            // Callback for uploads stop, equivalent to the global ajaxStop event:\n            // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n            // Callback for change events of the fileInput(s):\n            // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n            // Callback for paste events to the pasteZone(s):\n            // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n            // Callback for drop events of the dropZone(s):\n            // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n            // Callback for dragover events of the dropZone(s):\n            // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n            // Callback for the start of each chunk upload request:\n            // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n            // Callback for successful chunk uploads:\n            // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n            // Callback for failed (abort or error) chunk uploads:\n            // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n            // Callback for completed (success, abort or error) chunk upload requests:\n            // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n            // The plugin options are used as settings object for the ajax calls.\n            // The following are jQuery ajax settings required for the file uploads:\n            processData: false,\n            contentType: false,\n            cache: false,\n            timeout: 0\n        },\n\n        // A list of options that require reinitializing event listeners and/or\n        // special initialization code:\n        _specialOptions: [\n            'fileInput',\n            'dropZone',\n            'pasteZone',\n            'multipart',\n            'forceIframeTransport'\n        ],\n\n        _blobSlice: $.support.blobSlice && function () {\n            var slice = this.slice || this.webkitSlice || this.mozSlice;\n            return slice.apply(this, arguments);\n        },\n\n        _BitrateTimer: function () {\n            this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n            this.loaded = 0;\n            this.bitrate = 0;\n            this.getBitrate = function (now, loaded, interval) {\n                var timeDiff = now - this.timestamp;\n                if (!this.bitrate || !interval || timeDiff > interval) {\n                    this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n                    this.loaded = loaded;\n                    this.timestamp = now;\n                }\n                return this.bitrate;\n            };\n        },\n\n        _isXHRUpload: function (options) {\n            return !options.forceIframeTransport &&\n                ((!options.multipart && $.support.xhrFileUpload) ||\n                $.support.xhrFormDataFileUpload);\n        },\n\n        _getFormData: function (options) {\n            var formData;\n            if ($.type(options.formData) === 'function') {\n                return options.formData(options.form);\n            }\n            if ($.isArray(options.formData)) {\n                return options.formData;\n            }\n            if ($.type(options.formData) === 'object') {\n                formData = [];\n                $.each(options.formData, function (name, value) {\n                    formData.push({name: name, value: value});\n                });\n                return formData;\n            }\n            return [];\n        },\n\n        _getTotal: function (files) {\n            var total = 0;\n            $.each(files, function (index, file) {\n                total += file.size || 1;\n            });\n            return total;\n        },\n\n        _initProgressObject: function (obj) {\n            var progress = {\n                loaded: 0,\n                total: 0,\n                bitrate: 0\n            };\n            if (obj._progress) {\n                $.extend(obj._progress, progress);\n            } else {\n                obj._progress = progress;\n            }\n        },\n\n        _initResponseObject: function (obj) {\n            var prop;\n            if (obj._response) {\n                for (prop in obj._response) {\n                    if (obj._response.hasOwnProperty(prop)) {\n                        delete obj._response[prop];\n                    }\n                }\n            } else {\n                obj._response = {};\n            }\n        },\n\n        _onProgress: function (e, data) {\n            if (e.lengthComputable) {\n                var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n                    loaded;\n                if (data._time && data.progressInterval &&\n                        (now - data._time < data.progressInterval) &&\n                        e.loaded !== e.total) {\n                    return;\n                }\n                data._time = now;\n                loaded = Math.floor(\n                    e.loaded / e.total * (data.chunkSize || data._progress.total)\n                ) + (data.uploadedBytes || 0);\n                // Add the difference from the previously loaded state\n                // to the global loaded counter:\n                this._progress.loaded += (loaded - data._progress.loaded);\n                this._progress.bitrate = this._bitrateTimer.getBitrate(\n                    now,\n                    this._progress.loaded,\n                    data.bitrateInterval\n                );\n                data._progress.loaded = data.loaded = loaded;\n                data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n                    now,\n                    loaded,\n                    data.bitrateInterval\n                );\n                // Trigger a custom progress event with a total data property set\n                // to the file size(s) of the current upload and a loaded data\n                // property calculated accordingly:\n                this._trigger(\n                    'progress',\n                    $.Event('progress', {delegatedEvent: e}),\n                    data\n                );\n                // Trigger a global progress event for all current file uploads,\n                // including ajax calls queued for sequential file uploads:\n                this._trigger(\n                    'progressall',\n                    $.Event('progressall', {delegatedEvent: e}),\n                    this._progress\n                );\n            }\n        },\n\n        _initProgressListener: function (options) {\n            var that = this,\n                xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n            // Accesss to the native XHR object is required to add event listeners\n            // for the upload progress event:\n            if (xhr.upload) {\n                $(xhr.upload).bind('progress', function (e) {\n                    var oe = e.originalEvent;\n                    // Make sure the progress event properties get copied over:\n                    e.lengthComputable = oe.lengthComputable;\n                    e.loaded = oe.loaded;\n                    e.total = oe.total;\n                    that._onProgress(e, options);\n                });\n                options.xhr = function () {\n                    return xhr;\n                };\n            }\n        },\n\n        _isInstanceOf: function (type, obj) {\n            // Cross-frame instanceof check\n            return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n        },\n\n        _initXHRData: function (options) {\n            var that = this,\n                formData,\n                file = options.files[0],\n                // Ignore non-multipart setting if not supported:\n                multipart = options.multipart || !$.support.xhrFileUpload,\n                paramName = $.type(options.paramName) === 'array' ?\n                    options.paramName[0] : options.paramName;\n            options.headers = $.extend({}, options.headers);\n            if (options.contentRange) {\n                options.headers['Content-Range'] = options.contentRange;\n            }\n            if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\n                options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n                    encodeURI(file.name) + '\"';\n            }\n            if (!multipart) {\n                options.contentType = file.type || 'application/octet-stream';\n                options.data = options.blob || file;\n            } else if ($.support.xhrFormDataFileUpload) {\n                if (options.postMessage) {\n                    // window.postMessage does not allow sending FormData\n                    // objects, so we just add the File/Blob objects to\n                    // the formData array and let the postMessage window\n                    // create the FormData object out of this array:\n                    formData = this._getFormData(options);\n                    if (options.blob) {\n                        formData.push({\n                            name: paramName,\n                            value: options.blob\n                        });\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            formData.push({\n                                name: ($.type(options.paramName) === 'array' &&\n                                    options.paramName[index]) || paramName,\n                                value: file\n                            });\n                        });\n                    }\n                } else {\n                    if (that._isInstanceOf('FormData', options.formData)) {\n                        formData = options.formData;\n                    } else {\n                        formData = new FormData();\n                        $.each(this._getFormData(options), function (index, field) {\n                            formData.append(field.name, field.value);\n                        });\n                    }\n                    if (options.blob) {\n                        formData.append(paramName, options.blob, file.name);\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            // This check allows the tests to run with\n                            // dummy objects:\n                            if (that._isInstanceOf('File', file) ||\n                                    that._isInstanceOf('Blob', file)) {\n                                formData.append(\n                                    ($.type(options.paramName) === 'array' &&\n                                        options.paramName[index]) || paramName,\n                                    file,\n                                    file.uploadName || file.name\n                                );\n                            }\n                        });\n                    }\n                }\n                options.data = formData;\n            }\n            // Blob reference is not needed anymore, free memory:\n            options.blob = null;\n        },\n\n        _initIframeSettings: function (options) {\n            var targetHost = $('<a></a>').prop('href', options.url).prop('host');\n            // Setting the dataType to iframe enables the iframe transport:\n            options.dataType = 'iframe ' + (options.dataType || '');\n            // The iframe transport accepts a serialized array as form data:\n            options.formData = this._getFormData(options);\n            // Add redirect url to form data on cross-domain uploads:\n            if (options.redirect && targetHost && targetHost !== location.host) {\n                options.formData.push({\n                    name: options.redirectParamName || 'redirect',\n                    value: options.redirect\n                });\n            }\n        },\n\n        _initDataSettings: function (options) {\n            if (this._isXHRUpload(options)) {\n                if (!this._chunkedUpload(options, true)) {\n                    if (!options.data) {\n                        this._initXHRData(options);\n                    }\n                    this._initProgressListener(options);\n                }\n                if (options.postMessage) {\n                    // Setting the dataType to postmessage enables the\n                    // postMessage transport:\n                    options.dataType = 'postmessage ' + (options.dataType || '');\n                }\n            } else {\n                this._initIframeSettings(options);\n            }\n        },\n\n        _getParamName: function (options) {\n            var fileInput = $(options.fileInput),\n                paramName = options.paramName;\n            if (!paramName) {\n                paramName = [];\n                fileInput.each(function () {\n                    var input = $(this),\n                        name = input.prop('name') || 'files[]',\n                        i = (input.prop('files') || [1]).length;\n                    while (i) {\n                        paramName.push(name);\n                        i -= 1;\n                    }\n                });\n                if (!paramName.length) {\n                    paramName = [fileInput.prop('name') || 'files[]'];\n                }\n            } else if (!$.isArray(paramName)) {\n                paramName = [paramName];\n            }\n            return paramName;\n        },\n\n        _initFormSettings: function (options) {\n            // Retrieve missing options from the input field and the\n            // associated form, if available:\n            if (!options.form || !options.form.length) {\n                options.form = $(options.fileInput.prop('form'));\n                // If the given file input doesn't have an associated form,\n                // use the default widget file input's form:\n                if (!options.form.length) {\n                    options.form = $(this.options.fileInput.prop('form'));\n                }\n            }\n            options.paramName = this._getParamName(options);\n            if (!options.url) {\n                options.url = options.form.prop('action') || location.href;\n            }\n            // The HTTP request method must be \"POST\" or \"PUT\":\n            options.type = (options.type ||\n                ($.type(options.form.prop('method')) === 'string' &&\n                    options.form.prop('method')) || ''\n                ).toUpperCase();\n            if (options.type !== 'POST' && options.type !== 'PUT' &&\n                    options.type !== 'PATCH') {\n                options.type = 'POST';\n            }\n            if (!options.formAcceptCharset) {\n                options.formAcceptCharset = options.form.attr('accept-charset');\n            }\n        },\n\n        _getAJAXSettings: function (data) {\n            var options = $.extend({}, this.options, data);\n            this._initFormSettings(options);\n            this._initDataSettings(options);\n            return options;\n        },\n\n        // jQuery 1.6 doesn't provide .state(),\n        // while jQuery 1.8+ removed .isRejected() and .isResolved():\n        _getDeferredState: function (deferred) {\n            if (deferred.state) {\n                return deferred.state();\n            }\n            if (deferred.isResolved()) {\n                return 'resolved';\n            }\n            if (deferred.isRejected()) {\n                return 'rejected';\n            }\n            return 'pending';\n        },\n\n        // Maps jqXHR callbacks to the equivalent\n        // methods of the given Promise object:\n        _enhancePromise: function (promise) {\n            promise.success = promise.done;\n            promise.error = promise.fail;\n            promise.complete = promise.always;\n            return promise;\n        },\n\n        // Creates and returns a Promise object enhanced with\n        // the jqXHR methods abort, success, error and complete:\n        _getXHRPromise: function (resolveOrReject, context, args) {\n            var dfd = $.Deferred(),\n                promise = dfd.promise();\n            context = context || this.options.context || promise;\n            if (resolveOrReject === true) {\n                dfd.resolveWith(context, args);\n            } else if (resolveOrReject === false) {\n                dfd.rejectWith(context, args);\n            }\n            promise.abort = dfd.promise;\n            return this._enhancePromise(promise);\n        },\n\n        // Adds convenience methods to the data callback argument:\n        _addConvenienceMethods: function (e, data) {\n            var that = this,\n                getPromise = function (args) {\n                    return $.Deferred().resolveWith(that, args).promise();\n                };\n            data.process = function (resolveFunc, rejectFunc) {\n                if (resolveFunc || rejectFunc) {\n                    data._processQueue = this._processQueue =\n                        (this._processQueue || getPromise([this])).pipe(\n                            function () {\n                                if (data.errorThrown) {\n                                    return $.Deferred()\n                                        .rejectWith(that, [data]).promise();\n                                }\n                                return getPromise(arguments);\n                            }\n                        ).pipe(resolveFunc, rejectFunc);\n                }\n                return this._processQueue || getPromise([this]);\n            };\n            data.submit = function () {\n                if (this.state() !== 'pending') {\n                    data.jqXHR = this.jqXHR =\n                        (that._trigger(\n                            'submit',\n                            $.Event('submit', {delegatedEvent: e}),\n                            this\n                        ) !== false) && that._onSend(e, this);\n                }\n                return this.jqXHR || that._getXHRPromise();\n            };\n            data.abort = function () {\n                if (this.jqXHR) {\n                    return this.jqXHR.abort();\n                }\n                this.errorThrown = 'abort';\n                that._trigger('fail', null, this);\n                return that._getXHRPromise(false);\n            };\n            data.state = function () {\n                if (this.jqXHR) {\n                    return that._getDeferredState(this.jqXHR);\n                }\n                if (this._processQueue) {\n                    return that._getDeferredState(this._processQueue);\n                }\n            };\n            data.processing = function () {\n                return !this.jqXHR && this._processQueue && that\n                    ._getDeferredState(this._processQueue) === 'pending';\n            };\n            data.progress = function () {\n                return this._progress;\n            };\n            data.response = function () {\n                return this._response;\n            };\n        },\n\n        // Parses the Range header from the server response\n        // and returns the uploaded bytes:\n        _getUploadedBytes: function (jqXHR) {\n            var range = jqXHR.getResponseHeader('Range'),\n                parts = range && range.split('-'),\n                upperBytesPos = parts && parts.length > 1 &&\n                    parseInt(parts[1], 10);\n            return upperBytesPos && upperBytesPos + 1;\n        },\n\n        // Uploads a file in multiple, sequential requests\n        // by splitting the file up in multiple blob chunks.\n        // If the second parameter is true, only tests if the file\n        // should be uploaded in chunks, but does not invoke any\n        // upload requests:\n        _chunkedUpload: function (options, testOnly) {\n            options.uploadedBytes = options.uploadedBytes || 0;\n            var that = this,\n                file = options.files[0],\n                fs = file.size,\n                ub = options.uploadedBytes,\n                mcs = options.maxChunkSize || fs,\n                slice = this._blobSlice,\n                dfd = $.Deferred(),\n                promise = dfd.promise(),\n                jqXHR,\n                upload;\n            if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n                    options.data) {\n                return false;\n            }\n            if (testOnly) {\n                return true;\n            }\n            if (ub >= fs) {\n                file.error = options.i18n('uploadedBytes');\n                return this._getXHRPromise(\n                    false,\n                    options.context,\n                    [null, 'error', file.error]\n                );\n            }\n            // The chunk upload method:\n            upload = function () {\n                // Clone the options object for each chunk upload:\n                var o = $.extend({}, options),\n                    currentLoaded = o._progress.loaded;\n                o.blob = slice.call(\n                    file,\n                    ub,\n                    ub + mcs,\n                    file.type\n                );\n                // Store the current chunk size, as the blob itself\n                // will be dereferenced after data processing:\n                o.chunkSize = o.blob.size;\n                // Expose the chunk bytes position range:\n                o.contentRange = 'bytes ' + ub + '-' +\n                    (ub + o.chunkSize - 1) + '/' + fs;\n                // Process the upload data (the blob and potential form data):\n                that._initXHRData(o);\n                // Add progress listeners for this chunk upload:\n                that._initProgressListener(o);\n                jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n                        that._getXHRPromise(false, o.context))\n                    .done(function (result, textStatus, jqXHR) {\n                        ub = that._getUploadedBytes(jqXHR) ||\n                            (ub + o.chunkSize);\n                        // Create a progress event if no final progress event\n                        // with loaded equaling total has been triggered\n                        // for this chunk:\n                        if (currentLoaded + o.chunkSize - o._progress.loaded) {\n                            that._onProgress($.Event('progress', {\n                                lengthComputable: true,\n                                loaded: ub - o.uploadedBytes,\n                                total: ub - o.uploadedBytes\n                            }), o);\n                        }\n                        options.uploadedBytes = o.uploadedBytes = ub;\n                        o.result = result;\n                        o.textStatus = textStatus;\n                        o.jqXHR = jqXHR;\n                        that._trigger('chunkdone', null, o);\n                        that._trigger('chunkalways', null, o);\n                        if (ub < fs) {\n                            // File upload not yet complete,\n                            // continue with the next chunk:\n                            upload();\n                        } else {\n                            dfd.resolveWith(\n                                o.context,\n                                [result, textStatus, jqXHR]\n                            );\n                        }\n                    })\n                    .fail(function (jqXHR, textStatus, errorThrown) {\n                        o.jqXHR = jqXHR;\n                        o.textStatus = textStatus;\n                        o.errorThrown = errorThrown;\n                        that._trigger('chunkfail', null, o);\n                        that._trigger('chunkalways', null, o);\n                        dfd.rejectWith(\n                            o.context,\n                            [jqXHR, textStatus, errorThrown]\n                        );\n                    });\n            };\n            this._enhancePromise(promise);\n            promise.abort = function () {\n                return jqXHR.abort();\n            };\n            upload();\n            return promise;\n        },\n\n        _beforeSend: function (e, data) {\n            if (this._active === 0) {\n                // the start callback is triggered when an upload starts\n                // and no other uploads are currently running,\n                // equivalent to the global ajaxStart event:\n                this._trigger('start');\n                // Set timer for global bitrate progress calculation:\n                this._bitrateTimer = new this._BitrateTimer();\n                // Reset the global progress values:\n                this._progress.loaded = this._progress.total = 0;\n                this._progress.bitrate = 0;\n            }\n            // Make sure the container objects for the .response() and\n            // .progress() methods on the data object are available\n            // and reset to their initial state:\n            this._initResponseObject(data);\n            this._initProgressObject(data);\n            data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n            data._progress.total = data.total = this._getTotal(data.files) || 1;\n            data._progress.bitrate = data.bitrate = 0;\n            this._active += 1;\n            // Initialize the global progress values:\n            this._progress.loaded += data.loaded;\n            this._progress.total += data.total;\n        },\n\n        _onDone: function (result, textStatus, jqXHR, options) {\n            var total = options._progress.total,\n                response = options._response;\n            if (options._progress.loaded < total) {\n                // Create a progress event if no final progress event\n                // with loaded equaling total has been triggered:\n                this._onProgress($.Event('progress', {\n                    lengthComputable: true,\n                    loaded: total,\n                    total: total\n                }), options);\n            }\n            response.result = options.result = result;\n            response.textStatus = options.textStatus = textStatus;\n            response.jqXHR = options.jqXHR = jqXHR;\n            this._trigger('done', null, options);\n        },\n\n        _onFail: function (jqXHR, textStatus, errorThrown, options) {\n            var response = options._response;\n            if (options.recalculateProgress) {\n                // Remove the failed (error or abort) file upload from\n                // the global progress calculation:\n                this._progress.loaded -= options._progress.loaded;\n                this._progress.total -= options._progress.total;\n            }\n            response.jqXHR = options.jqXHR = jqXHR;\n            response.textStatus = options.textStatus = textStatus;\n            response.errorThrown = options.errorThrown = errorThrown;\n            this._trigger('fail', null, options);\n        },\n\n        _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n            // jqXHRorResult, textStatus and jqXHRorError are added to the\n            // options object via done and fail callbacks\n            this._trigger('always', null, options);\n        },\n\n        _onSend: function (e, data) {\n            if (!data.submit) {\n                this._addConvenienceMethods(e, data);\n            }\n            var that = this,\n                jqXHR,\n                aborted,\n                slot,\n                pipe,\n                options = that._getAJAXSettings(data),\n                send = function () {\n                    that._sending += 1;\n                    // Set timer for bitrate progress calculation:\n                    options._bitrateTimer = new that._BitrateTimer();\n                    jqXHR = jqXHR || (\n                        ((aborted || that._trigger(\n                            'send',\n                            $.Event('send', {delegatedEvent: e}),\n                            options\n                        ) === false) &&\n                        that._getXHRPromise(false, options.context, aborted)) ||\n                        that._chunkedUpload(options) || $.ajax(options)\n                    ).done(function (result, textStatus, jqXHR) {\n                        that._onDone(result, textStatus, jqXHR, options);\n                    }).fail(function (jqXHR, textStatus, errorThrown) {\n                        that._onFail(jqXHR, textStatus, errorThrown, options);\n                    }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n                        that._onAlways(\n                            jqXHRorResult,\n                            textStatus,\n                            jqXHRorError,\n                            options\n                        );\n                        that._sending -= 1;\n                        that._active -= 1;\n                        if (options.limitConcurrentUploads &&\n                                options.limitConcurrentUploads > that._sending) {\n                            // Start the next queued upload,\n                            // that has not been aborted:\n                            var nextSlot = that._slots.shift();\n                            while (nextSlot) {\n                                if (that._getDeferredState(nextSlot) === 'pending') {\n                                    nextSlot.resolve();\n                                    break;\n                                }\n                                nextSlot = that._slots.shift();\n                            }\n                        }\n                        if (that._active === 0) {\n                            // The stop callback is triggered when all uploads have\n                            // been completed, equivalent to the global ajaxStop event:\n                            that._trigger('stop');\n                        }\n                    });\n                    return jqXHR;\n                };\n            this._beforeSend(e, options);\n            if (this.options.sequentialUploads ||\n                    (this.options.limitConcurrentUploads &&\n                    this.options.limitConcurrentUploads <= this._sending)) {\n                if (this.options.limitConcurrentUploads > 1) {\n                    slot = $.Deferred();\n                    this._slots.push(slot);\n                    pipe = slot.pipe(send);\n                } else {\n                    this._sequence = this._sequence.pipe(send, send);\n                    pipe = this._sequence;\n                }\n                // Return the piped Promise object, enhanced with an abort method,\n                // which is delegated to the jqXHR object of the current upload,\n                // and jqXHR callbacks mapped to the equivalent Promise methods:\n                pipe.abort = function () {\n                    aborted = [undefined, 'abort', 'abort'];\n                    if (!jqXHR) {\n                        if (slot) {\n                            slot.rejectWith(options.context, aborted);\n                        }\n                        return send();\n                    }\n                    return jqXHR.abort();\n                };\n                return this._enhancePromise(pipe);\n            }\n            return send();\n        },\n\n        _onAdd: function (e, data) {\n            var that = this,\n                result = true,\n                options = $.extend({}, this.options, data),\n                files = data.files,\n                filesLength = files.length,\n                limit = options.limitMultiFileUploads,\n                limitSize = options.limitMultiFileUploadSize,\n                overhead = options.limitMultiFileUploadSizeOverhead,\n                batchSize = 0,\n                paramName = this._getParamName(options),\n                paramNameSet,\n                paramNameSlice,\n                fileSet,\n                i,\n                j = 0;\n            if (!filesLength) {\n                return false;\n            }\n            if (limitSize && files[0].size === undefined) {\n                limitSize = undefined;\n            }\n            if (!(options.singleFileUploads || limit || limitSize) ||\n                    !this._isXHRUpload(options)) {\n                fileSet = [files];\n                paramNameSet = [paramName];\n            } else if (!(options.singleFileUploads || limitSize) && limit) {\n                fileSet = [];\n                paramNameSet = [];\n                for (i = 0; i < filesLength; i += limit) {\n                    fileSet.push(files.slice(i, i + limit));\n                    paramNameSlice = paramName.slice(i, i + limit);\n                    if (!paramNameSlice.length) {\n                        paramNameSlice = paramName;\n                    }\n                    paramNameSet.push(paramNameSlice);\n                }\n            } else if (!options.singleFileUploads && limitSize) {\n                fileSet = [];\n                paramNameSet = [];\n                for (i = 0; i < filesLength; i = i + 1) {\n                    batchSize += files[i].size + overhead;\n                    if (i + 1 === filesLength ||\n                            ((batchSize + files[i + 1].size + overhead) > limitSize) ||\n                            (limit && i + 1 - j >= limit)) {\n                        fileSet.push(files.slice(j, i + 1));\n                        paramNameSlice = paramName.slice(j, i + 1);\n                        if (!paramNameSlice.length) {\n                            paramNameSlice = paramName;\n                        }\n                        paramNameSet.push(paramNameSlice);\n                        j = i + 1;\n                        batchSize = 0;\n                    }\n                }\n            } else {\n                paramNameSet = paramName;\n            }\n            data.originalFiles = files;\n            $.each(fileSet || files, function (index, element) {\n                var newData = $.extend({}, data);\n                newData.files = fileSet ? element : [element];\n                newData.paramName = paramNameSet[index];\n                that._initResponseObject(newData);\n                that._initProgressObject(newData);\n                that._addConvenienceMethods(e, newData);\n                result = that._trigger(\n                    'add',\n                    $.Event('add', {delegatedEvent: e}),\n                    newData\n                );\n                return result;\n            });\n            return result;\n        },\n\n        _replaceFileInput: function (data) {\n            var input = data.fileInput,\n                inputClone = input.clone(true),\n                restoreFocus = input.is(document.activeElement);\n            // Add a reference for the new cloned file input to the data argument:\n            data.fileInputClone = inputClone;\n            $('<form></form>').append(inputClone)[0].reset();\n            // Detaching allows to insert the fileInput on another form\n            // without loosing the file input value:\n            input.after(inputClone).detach();\n            // If the fileInput had focus before it was detached,\n            // restore focus to the inputClone.\n            if (restoreFocus) {\n                inputClone.focus();\n            }\n            // Avoid memory leaks with the detached file input:\n            $.cleanData(input.unbind('remove'));\n            // Replace the original file input element in the fileInput\n            // elements set with the clone, which has been copied including\n            // event handlers:\n            this.options.fileInput = this.options.fileInput.map(function (i, el) {\n                if (el === input[0]) {\n                    return inputClone[0];\n                }\n                return el;\n            });\n            // If the widget has been initialized on the file input itself,\n            // override this.element with the file input clone:\n            if (input[0] === this.element[0]) {\n                this.element = inputClone;\n            }\n        },\n\n        _handleFileTreeEntry: function (entry, path) {\n            var that = this,\n                dfd = $.Deferred(),\n                errorHandler = function (e) {\n                    if (e && !e.entry) {\n                        e.entry = entry;\n                    }\n                    // Since $.when returns immediately if one\n                    // Deferred is rejected, we use resolve instead.\n                    // This allows valid files and invalid items\n                    // to be returned together in one set:\n                    dfd.resolve([e]);\n                },\n                successHandler = function (entries) {\n                    that._handleFileTreeEntries(\n                        entries,\n                        path + entry.name + '/'\n                    ).done(function (files) {\n                        dfd.resolve(files);\n                    }).fail(errorHandler);\n                },\n                readEntries = function () {\n                    dirReader.readEntries(function (results) {\n                        if (!results.length) {\n                            successHandler(entries);\n                        } else {\n                            entries = entries.concat(results);\n                            readEntries();\n                        }\n                    }, errorHandler);\n                },\n                dirReader, entries = [];\n            path = path || '';\n            if (entry.isFile) {\n                if (entry._file) {\n                    // Workaround for Chrome bug #149735\n                    entry._file.relativePath = path;\n                    dfd.resolve(entry._file);\n                } else {\n                    entry.file(function (file) {\n                        file.relativePath = path;\n                        dfd.resolve(file);\n                    }, errorHandler);\n                }\n            } else if (entry.isDirectory) {\n                dirReader = entry.createReader();\n                readEntries();\n            } else {\n                // Return an empy list for file system items\n                // other than files or directories:\n                dfd.resolve([]);\n            }\n            return dfd.promise();\n        },\n\n        _handleFileTreeEntries: function (entries, path) {\n            var that = this;\n            return $.when.apply(\n                $,\n                $.map(entries, function (entry) {\n                    return that._handleFileTreeEntry(entry, path);\n                })\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _getDroppedFiles: function (dataTransfer) {\n            dataTransfer = dataTransfer || {};\n            var items = dataTransfer.items;\n            if (items && items.length && (items[0].webkitGetAsEntry ||\n                    items[0].getAsEntry)) {\n                return this._handleFileTreeEntries(\n                    $.map(items, function (item) {\n                        var entry;\n                        if (item.webkitGetAsEntry) {\n                            entry = item.webkitGetAsEntry();\n                            if (entry) {\n                                // Workaround for Chrome bug #149735:\n                                entry._file = item.getAsFile();\n                            }\n                            return entry;\n                        }\n                        return item.getAsEntry();\n                    })\n                );\n            }\n            return $.Deferred().resolve(\n                $.makeArray(dataTransfer.files)\n            ).promise();\n        },\n\n        _getSingleFileInputFiles: function (fileInput) {\n            fileInput = $(fileInput);\n            var entries = fileInput.prop('webkitEntries') ||\n                    fileInput.prop('entries'),\n                files,\n                value;\n            if (entries && entries.length) {\n                return this._handleFileTreeEntries(entries);\n            }\n            files = $.makeArray(fileInput.prop('files'));\n            if (!files.length) {\n                value = fileInput.prop('value');\n                if (!value) {\n                    return $.Deferred().resolve([]).promise();\n                }\n                // If the files property is not available, the browser does not\n                // support the File API and we add a pseudo File object with\n                // the input value as name with path information removed:\n                files = [{name: value.replace(/^.*\\\\/, '')}];\n            } else if (files[0].name === undefined && files[0].fileName) {\n                // File normalization for Safari 4 and Firefox 3:\n                $.each(files, function (index, file) {\n                    file.name = file.fileName;\n                    file.size = file.fileSize;\n                });\n            }\n            return $.Deferred().resolve(files).promise();\n        },\n\n        _getFileInputFiles: function (fileInput) {\n            if (!(fileInput instanceof $) || fileInput.length === 1) {\n                return this._getSingleFileInputFiles(fileInput);\n            }\n            return $.when.apply(\n                $,\n                $.map(fileInput, this._getSingleFileInputFiles)\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _onChange: function (e) {\n            var that = this,\n                data = {\n                    fileInput: $(e.target),\n                    form: $(e.target.form)\n                };\n            this._getFileInputFiles(data.fileInput).always(function (files) {\n                data.files = files;\n                if (that.options.replaceFileInput) {\n                    that._replaceFileInput(data);\n                }\n                if (that._trigger(\n                        'change',\n                        $.Event('change', {delegatedEvent: e}),\n                        data\n                    ) !== false) {\n                    that._onAdd(e, data);\n                }\n            });\n        },\n\n        _onPaste: function (e) {\n            var items = e.originalEvent && e.originalEvent.clipboardData &&\n                    e.originalEvent.clipboardData.items,\n                data = {files: []};\n            if (items && items.length) {\n                $.each(items, function (index, item) {\n                    var file = item.getAsFile && item.getAsFile();\n                    if (file) {\n                        data.files.push(file);\n                    }\n                });\n                if (this._trigger(\n                        'paste',\n                        $.Event('paste', {delegatedEvent: e}),\n                        data\n                    ) !== false) {\n                    this._onAdd(e, data);\n                }\n            }\n        },\n\n        _onDrop: function (e) {\n            e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n            var that = this,\n                dataTransfer = e.dataTransfer,\n                data = {};\n            if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n                e.preventDefault();\n                this._getDroppedFiles(dataTransfer).always(function (files) {\n                    data.files = files;\n                    if (that._trigger(\n                            'drop',\n                            $.Event('drop', {delegatedEvent: e}),\n                            data\n                        ) !== false) {\n                        that._onAdd(e, data);\n                    }\n                });\n            }\n        },\n\n        _onDragOver: getDragHandler('dragover'),\n\n        _onDragEnter: getDragHandler('dragenter'),\n\n        _onDragLeave: getDragHandler('dragleave'),\n\n        _initEventHandlers: function () {\n            if (this._isXHRUpload(this.options)) {\n                this._on(this.options.dropZone, {\n                    dragover: this._onDragOver,\n                    drop: this._onDrop,\n                    // event.preventDefault() on dragenter is required for IE10+:\n                    dragenter: this._onDragEnter,\n                    // dragleave is not required, but added for completeness:\n                    dragleave: this._onDragLeave\n                });\n                this._on(this.options.pasteZone, {\n                    paste: this._onPaste\n                });\n            }\n            if ($.support.fileInput) {\n                this._on(this.options.fileInput, {\n                    change: this._onChange\n                });\n            }\n        },\n\n        _destroyEventHandlers: function () {\n            this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\n            this._off(this.options.pasteZone, 'paste');\n            this._off(this.options.fileInput, 'change');\n        },\n\n        _setOption: function (key, value) {\n            var reinit = $.inArray(key, this._specialOptions) !== -1;\n            if (reinit) {\n                this._destroyEventHandlers();\n            }\n            this._super(key, value);\n            if (reinit) {\n                this._initSpecialOptions();\n                this._initEventHandlers();\n            }\n        },\n\n        _initSpecialOptions: function () {\n            var options = this.options;\n            if (options.fileInput === undefined) {\n                options.fileInput = this.element.is('input[type=\"file\"]') ?\n                        this.element : this.element.find('input[type=\"file\"]');\n            } else if (!(options.fileInput instanceof $)) {\n                options.fileInput = $(options.fileInput);\n            }\n            if (!(options.dropZone instanceof $)) {\n                options.dropZone = $(options.dropZone);\n            }\n            if (!(options.pasteZone instanceof $)) {\n                options.pasteZone = $(options.pasteZone);\n            }\n        },\n\n        _getRegExp: function (str) {\n            var parts = str.split('/'),\n                modifiers = parts.pop();\n            parts.shift();\n            return new RegExp(parts.join('/'), modifiers);\n        },\n\n        _isRegExpOption: function (key, value) {\n            return key !== 'url' && $.type(value) === 'string' &&\n                /^\\/.*\\/[igm]{0,3}$/.test(value);\n        },\n\n        _initDataAttributes: function () {\n            var that = this,\n                options = this.options,\n                data = this.element.data();\n            // Initialize options set via HTML5 data-attributes:\n            $.each(\n                this.element[0].attributes,\n                function (index, attr) {\n                    var key = attr.name.toLowerCase(),\n                        value;\n                    if (/^data-/.test(key)) {\n                        // Convert hyphen-ated key to camelCase:\n                        key = key.slice(5).replace(/-[a-z]/g, function (str) {\n                            return str.charAt(1).toUpperCase();\n                        });\n                        value = data[key];\n                        if (that._isRegExpOption(key, value)) {\n                            value = that._getRegExp(value);\n                        }\n                        options[key] = value;\n                    }\n                }\n            );\n        },\n\n        _create: function () {\n            this._initDataAttributes();\n            this._initSpecialOptions();\n            this._slots = [];\n            this._sequence = this._getXHRPromise(true);\n            this._sending = this._active = 0;\n            this._initProgressObject(this);\n            this._initEventHandlers();\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the number of active uploads:\n        active: function () {\n            return this._active;\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the widget upload progress.\n        // It returns an object with loaded, total and bitrate properties\n        // for the running uploads:\n        progress: function () {\n            return this._progress;\n        },\n\n        // This method is exposed to the widget API and allows adding files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files property and can contain additional options:\n        // .fileupload('add', {files: filesList});\n        add: function (data) {\n            var that = this;\n            if (!data || this.options.disabled) {\n                return;\n            }\n            if (data.fileInput && !data.files) {\n                this._getFileInputFiles(data.fileInput).always(function (files) {\n                    data.files = files;\n                    that._onAdd(null, data);\n                });\n            } else {\n                data.files = $.makeArray(data.files);\n                this._onAdd(null, data);\n            }\n        },\n\n        // This method is exposed to the widget API and allows sending files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files or fileInput property and can contain additional options:\n        // .fileupload('send', {files: filesList});\n        // The method returns a Promise object for the file upload call.\n        send: function (data) {\n            if (data && !this.options.disabled) {\n                if (data.fileInput && !data.files) {\n                    var that = this,\n                        dfd = $.Deferred(),\n                        promise = dfd.promise(),\n                        jqXHR,\n                        aborted;\n                    promise.abort = function () {\n                        aborted = true;\n                        if (jqXHR) {\n                            return jqXHR.abort();\n                        }\n                        dfd.reject(null, 'abort', 'abort');\n                        return promise;\n                    };\n                    this._getFileInputFiles(data.fileInput).always(\n                        function (files) {\n                            if (aborted) {\n                                return;\n                            }\n                            if (!files.length) {\n                                dfd.reject();\n                                return;\n                            }\n                            data.files = files;\n                            jqXHR = that._onSend(null, data);\n                            jqXHR.then(\n                                function (result, textStatus, jqXHR) {\n                                    dfd.resolve(result, textStatus, jqXHR);\n                                },\n                                function (jqXHR, textStatus, errorThrown) {\n                                    dfd.reject(jqXHR, textStatus, errorThrown);\n                                }\n                            );\n                        }\n                    );\n                    return this._enhancePromise(promise);\n                }\n                data.files = $.makeArray(data.files);\n                if (data.files.length) {\n                    return this._onSend(null, data);\n                }\n            }\n            return this._getXHRPromise(false, data && data.context);\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/jquery.iframe-transport.js",
    "content": "/*\n * jQuery Iframe Transport Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // Helper variable to create unique names for the transport iframes:\n    var counter = 0;\n\n    // The iframe transport accepts four additional options:\n    // options.fileInput: a jQuery collection of file input fields\n    // options.paramName: the parameter name for the file form data,\n    //  overrides the name property of the file input field(s),\n    //  can be a string or an array of strings.\n    // options.formData: an array of objects with name and value properties,\n    //  equivalent to the return data of .serializeArray(), e.g.:\n    //  [{name: 'a', value: 1}, {name: 'b', value: 2}]\n    // options.initialIframeSrc: the URL of the initial iframe src,\n    //  by default set to \"javascript:false;\"\n    $.ajaxTransport('iframe', function (options) {\n        if (options.async) {\n            // javascript:false as initial iframe src\n            // prevents warning popups on HTTPS in IE6:\n            /*jshint scripturl: true */\n            var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',\n            /*jshint scripturl: false */\n                form,\n                iframe,\n                addParamChar;\n            return {\n                send: function (_, completeCallback) {\n                    form = $('<form style=\"display:none;\"></form>');\n                    form.attr('accept-charset', options.formAcceptCharset);\n                    addParamChar = /\\?/.test(options.url) ? '&' : '?';\n                    // XDomainRequest only supports GET and POST:\n                    if (options.type === 'DELETE') {\n                        options.url = options.url + addParamChar + '_method=DELETE';\n                        options.type = 'POST';\n                    } else if (options.type === 'PUT') {\n                        options.url = options.url + addParamChar + '_method=PUT';\n                        options.type = 'POST';\n                    } else if (options.type === 'PATCH') {\n                        options.url = options.url + addParamChar + '_method=PATCH';\n                        options.type = 'POST';\n                    }\n                    // IE versions below IE8 cannot set the name property of\n                    // elements that have already been added to the DOM,\n                    // so we set the name along with the iframe HTML markup:\n                    counter += 1;\n                    iframe = $(\n                        '<iframe src=\"' + initialIframeSrc +\n                            '\" name=\"iframe-transport-' + counter + '\"></iframe>'\n                    ).bind('load', function () {\n                        var fileInputClones,\n                            paramNames = $.isArray(options.paramName) ?\n                                    options.paramName : [options.paramName];\n                        iframe\n                            .unbind('load')\n                            .bind('load', function () {\n                                var response;\n                                // Wrap in a try/catch block to catch exceptions thrown\n                                // when trying to access cross-domain iframe contents:\n                                try {\n                                    response = iframe.contents();\n                                    // Google Chrome and Firefox do not throw an\n                                    // exception when calling iframe.contents() on\n                                    // cross-domain requests, so we unify the response:\n                                    if (!response.length || !response[0].firstChild) {\n                                        throw new Error();\n                                    }\n                                } catch (e) {\n                                    response = undefined;\n                                }\n                                // The complete callback returns the\n                                // iframe content document as response object:\n                                completeCallback(\n                                    200,\n                                    'success',\n                                    {'iframe': response}\n                                );\n                                // Fix for IE endless progress bar activity bug\n                                // (happens on form submits to iframe targets):\n                                $('<iframe src=\"' + initialIframeSrc + '\"></iframe>')\n                                    .appendTo(form);\n                                window.setTimeout(function () {\n                                    // Removing the form in a setTimeout call\n                                    // allows Chrome's developer tools to display\n                                    // the response result\n                                    form.remove();\n                                }, 0);\n                            });\n                        form\n                            .prop('target', iframe.prop('name'))\n                            .prop('action', options.url)\n                            .prop('method', options.type);\n                        if (options.formData) {\n                            $.each(options.formData, function (index, field) {\n                                $('<input type=\"hidden\"/>')\n                                    .prop('name', field.name)\n                                    .val(field.value)\n                                    .appendTo(form);\n                            });\n                        }\n                        if (options.fileInput && options.fileInput.length &&\n                                options.type === 'POST') {\n                            fileInputClones = options.fileInput.clone();\n                            // Insert a clone for each file input field:\n                            options.fileInput.after(function (index) {\n                                return fileInputClones[index];\n                            });\n                            if (options.paramName) {\n                                options.fileInput.each(function (index) {\n                                    $(this).prop(\n                                        'name',\n                                        paramNames[index] || options.paramName\n                                    );\n                                });\n                            }\n                            // Appending the file input fields to the hidden form\n                            // removes them from their original location:\n                            form\n                                .append(options.fileInput)\n                                .prop('enctype', 'multipart/form-data')\n                                // enctype must be set as encoding for IE:\n                                .prop('encoding', 'multipart/form-data');\n                            // Remove the HTML5 form attribute from the input(s):\n                            options.fileInput.removeAttr('form');\n                        }\n                        form.submit();\n                        // Insert the file input fields at their original location\n                        // by replacing the clones with the originals:\n                        if (fileInputClones && fileInputClones.length) {\n                            options.fileInput.each(function (index, input) {\n                                var clone = $(fileInputClones[index]);\n                                // Restore the original name and form properties:\n                                $(input)\n                                    .prop('name', clone.prop('name'))\n                                    .attr('form', clone.attr('form'));\n                                clone.replaceWith(input);\n                            });\n                        }\n                    });\n                    form.append(iframe).appendTo(document.body);\n                },\n                abort: function () {\n                    if (iframe) {\n                        // javascript:false as iframe src aborts the request\n                        // and prevents warning popups on HTTPS in IE6.\n                        // concat is used to avoid the \"Script URL\" JSLint error:\n                        iframe\n                            .unbind('load')\n                            .prop('src', initialIframeSrc);\n                    }\n                    if (form) {\n                        form.remove();\n                    }\n                }\n            };\n        }\n    });\n\n    // The iframe transport returns the iframe content document as response.\n    // The following adds converters from iframe to text, json, html, xml\n    // and script.\n    // Please note that the Content-Type for JSON responses has to be text/plain\n    // or text/html, if the browser doesn't include application/json in the\n    // Accept header, else IE will show a download dialog.\n    // The Content-Type for XML responses on the other hand has to be always\n    // application/xml or text/xml, so IE properly parses the XML response.\n    // See also\n    // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\n    $.ajaxSetup({\n        converters: {\n            'iframe text': function (iframe) {\n                return iframe && $(iframe[0].body).text();\n            },\n            'iframe json': function (iframe) {\n                return iframe && $.parseJSON($(iframe[0].body).text());\n            },\n            'iframe html': function (iframe) {\n                return iframe && $(iframe[0].body).html();\n            },\n            'iframe xml': function (iframe) {\n                var xmlDoc = iframe && iframe[0];\n                return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\n                        $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\n                            $(xmlDoc.body).html());\n            },\n            'iframe script': function (iframe) {\n                return iframe && $.globalEval($(iframe[0].body).text());\n            }\n        }\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/main.js",
    "content": "/*\n * jQuery File Upload Plugin JS Example\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global $, window */\n\n$(function () {\n    'use strict';\n\n    // Initialize the jQuery File Upload widget:\n    $('#fileupload').fileupload({\n        // Uncomment the following to send cross-domain cookies:\n        //xhrFields: {withCredentials: true},\n        url: 'server/php/'\n    });\n\n    // Enable iframe cross-domain access via redirect option:\n    $('#fileupload').fileupload(\n        'option',\n        'redirect',\n        window.location.href.replace(\n            /\\/[^\\/]*$/,\n            '/cors/result.html?%s'\n        )\n    );\n\n    if (window.location.hostname === 'blueimp.github.io') {\n        // Demo settings:\n        $('#fileupload').fileupload('option', {\n            url: '//jquery-file-upload.appspot.com/',\n            // Enable image resizing, except for Android and Opera,\n            // which actually support image resizing, but fail to\n            // send Blob objects via XHR requests:\n            disableImageResize: /Android(?!.*Chrome)|Opera/\n                .test(window.navigator.userAgent),\n            maxFileSize: 999000,\n            acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i\n        });\n        // Upload server status check for browsers with CORS support:\n        if ($.support.cors) {\n            $.ajax({\n                url: '//jquery-file-upload.appspot.com/',\n                type: 'HEAD'\n            }).fail(function () {\n                $('<div class=\"alert alert-danger\"/>')\n                    .text('Upload server currently unavailable - ' +\n                            new Date())\n                    .appendTo('#fileupload');\n            });\n        }\n    } else {\n        // Load existing files:\n        $('#fileupload').addClass('fileupload-processing');\n        $.ajax({\n            // Uncomment the following to send cross-domain cookies:\n            //xhrFields: {withCredentials: true},\n            url: $('#fileupload').fileupload('option', 'url'),\n            dataType: 'json',\n            context: $('#fileupload')[0]\n        }).always(function () {\n            $(this).removeClass('fileupload-processing');\n        }).done(function (result) {\n            $(this).fileupload('option', 'done')\n                .call(this, $.Event('done'), {result: result});\n        });\n    }\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-file-upload/js/vendor/jquery.ui.widget.js",
    "content": "/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28\n* http://jqueryui.com\n* Includes: widget.js\n* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */\n\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \"jquery\" ], factory );\n\n\t} else if ( typeof exports === \"object\" ) {\n\n\t\t// Node/CommonJS\n\t\tfactory( require( \"jquery\" ) );\n\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n/*!\n * jQuery UI Widget 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/jQuery.widget/\n */\n\n\nvar widget_uuid = 0,\n\twidget_slice = Array.prototype.slice;\n\n$.cleanData = (function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; (elem = elems[i]) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n})( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widget_slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = widget_slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\treturnValue = instance;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat(args) );\n\t\t\t}\n\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widget_uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled\", !!value );\n\n\t\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\t\tif ( value ) {\n\t\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions({ disabled: false });\n\t},\n\tdisable: function() {\n\t\treturn this._setOptions({ disabled: true });\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\nvar widget = $.widget;\n\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-multi-select/css/multi-select.css",
    "content": ".ms-container{\n  background: transparent url('../img/switch.png') no-repeat 50% 50%;\n  width: 370px;\n}\n\n.ms-container:after{\n  content: \".\";\n  display: block;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  clear: both;\n  min-height: 0;\n  visibility: hidden;\n}\n\n.ms-container .ms-selectable, .ms-container .ms-selection{\n  background: #fff;\n  color: #555555;\n  float: left;\n  width: 45%;\n}\n.ms-container .ms-selection{\n  float: right;\n}\n\n.ms-container .ms-list{\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;\n  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;\n  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;\n  -o-transition: border linear 0.2s, box-shadow linear 0.2s;\n  transition: border linear 0.2s, box-shadow linear 0.2s;\n  border: 1px solid #ccc;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  border-radius: 3px;\n  position: relative;\n  height: 200px;\n  padding: 0;\n  overflow-y: auto;\n}\n\n.ms-container .ms-list.ms-focus{\n  border-color: rgba(82, 168, 236, 0.8);\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n  outline: 0;\n  outline: thin dotted \\9;\n}\n\n.ms-container ul{\n  margin: 0;\n  list-style-type: none;\n  padding: 0;\n}\n\n.ms-container .ms-optgroup-container{\n  width: 100%;\n}\n\n.ms-container .ms-optgroup-label{\n  margin: 0;\n  padding: 5px 0px 0px 5px;\n  cursor: pointer;\n  color: #999;\n}\n\n.ms-container .ms-selectable li.ms-elem-selectable,\n.ms-container .ms-selection li.ms-elem-selection{\n  border-bottom: 1px #eee solid;\n  padding: 2px 10px;\n  color: #555;\n  font-size: 14px;\n}\n\n.ms-container .ms-selectable li.ms-hover,\n.ms-container .ms-selection li.ms-hover{\n  cursor: pointer;\n  color: #fff;\n  text-decoration: none;\n  background-color: #08c;\n}\n\n.ms-container .ms-selectable li.disabled,\n.ms-container .ms-selection li.disabled{\n  background-color: #eee;\n  color: #aaa;\n  cursor: text;\n}\n\n.multi-select {\n  right: auto !important;\n  left: -9999px !important;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-multi-select/js/jquery.multi-select.js",
    "content": "/*\n* MultiSelect v0.9.11\n* Copyright (c) 2012 Louis Cuny\n*\n* This program is free software. It comes without any warranty, to\n* the extent permitted by applicable law. You can redistribute it\n* and/or modify it under the terms of the Do What The Fuck You Want\n* To Public License, Version 2, as published by Sam Hocevar. See\n* http://sam.zoy.org/wtfpl/COPYING for more details.\n*/\n\n!function ($) {\n\n  \"use strict\";\n\n\n /* MULTISELECT CLASS DEFINITION\n  * ====================== */\n\n  var MultiSelect = function (element, options) {\n    this.options = options;\n    this.$element = $(element);\n    this.$container = $('<div/>', { 'class': \"ms-container\" });\n    this.$selectableContainer = $('<div/>', { 'class': 'ms-selectable' });\n    this.$selectionContainer = $('<div/>', { 'class': 'ms-selection' });\n    this.$selectableUl = $('<ul/>', { 'class': \"ms-list\", 'tabindex' : '-1' });\n    this.$selectionUl = $('<ul/>', { 'class': \"ms-list\", 'tabindex' : '-1' });\n    this.scrollTo = 0;\n    this.elemsSelector = 'li:visible:not(.ms-optgroup-label,.ms-optgroup-container,.'+options.disabledClass+')';\n  };\n\n  MultiSelect.prototype = {\n    constructor: MultiSelect,\n\n    init: function(){\n      var that = this,\n          ms = this.$element;\n\n      if (ms.next('.ms-container').length === 0){\n        ms.css({ position: 'absolute', left: '-9999px' });\n        ms.attr('id', ms.attr('id') ? ms.attr('id') : Math.ceil(Math.random()*1000)+'multiselect');\n        this.$container.attr('id', 'ms-'+ms.attr('id'));\n        this.$container.addClass(that.options.cssClass);\n        ms.find('option').each(function(){\n          that.generateLisFromOption(this);\n        });\n\n        this.$selectionUl.find('.ms-optgroup-label').hide();\n\n        if (that.options.selectableHeader){\n          that.$selectableContainer.append(that.options.selectableHeader);\n        }\n        that.$selectableContainer.append(that.$selectableUl);\n        if (that.options.selectableFooter){\n          that.$selectableContainer.append(that.options.selectableFooter);\n        }\n\n        if (that.options.selectionHeader){\n          that.$selectionContainer.append(that.options.selectionHeader);\n        }\n        that.$selectionContainer.append(that.$selectionUl);\n        if (that.options.selectionFooter){\n          that.$selectionContainer.append(that.options.selectionFooter);\n        }\n\n        that.$container.append(that.$selectableContainer);\n        that.$container.append(that.$selectionContainer);\n        ms.after(that.$container);\n\n        that.activeMouse(that.$selectableUl);\n        that.activeKeyboard(that.$selectableUl);\n\n        var action = that.options.dblClick ? 'dblclick' : 'click';\n\n        that.$selectableUl.on(action, '.ms-elem-selectable', function(){\n          that.select($(this).data('ms-value'));\n        });\n        that.$selectionUl.on(action, '.ms-elem-selection', function(){\n          that.deselect($(this).data('ms-value'));\n        });\n\n        that.activeMouse(that.$selectionUl);\n        that.activeKeyboard(that.$selectionUl);\n\n        ms.on('focus', function(){\n          that.$selectableUl.focus();\n        })\n      }\n\n      var selectedValues = ms.find('option:selected').map(function(){ return $(this).val(); }).get();\n      that.select(selectedValues, 'init');\n\n      if (typeof that.options.afterInit === 'function') {\n        that.options.afterInit.call(this, this.$container);\n      }\n    },\n\n    'generateLisFromOption' : function(option, index, $container){\n      var that = this,\n          ms = that.$element,\n          attributes = \"\",\n          $option = $(option);\n\n      for (var cpt = 0; cpt < option.attributes.length; cpt++){\n        var attr = option.attributes[cpt];\n\n        if(attr.name !== 'value' && attr.name !== 'disabled'){\n          attributes += attr.name+'=\"'+attr.value+'\" ';\n        }\n      }\n      var selectableLi = $('<li '+attributes+'><span>'+that.escapeHTML($option.text())+'</span></li>'),\n          selectedLi = selectableLi.clone(),\n          value = $option.val(),\n          elementId = that.sanitize(value);\n\n      selectableLi\n        .data('ms-value', value)\n        .addClass('ms-elem-selectable')\n        .attr('id', elementId+'-selectable');\n\n      selectedLi\n        .data('ms-value', value)\n        .addClass('ms-elem-selection')\n        .attr('id', elementId+'-selection')\n        .hide();\n\n      if ($option.prop('disabled') || ms.prop('disabled')){\n        selectedLi.addClass(that.options.disabledClass);\n        selectableLi.addClass(that.options.disabledClass);\n      }\n\n      var $optgroup = $option.parent('optgroup');\n\n      if ($optgroup.length > 0){\n        var optgroupLabel = $optgroup.attr('label'),\n            optgroupId = that.sanitize(optgroupLabel),\n            $selectableOptgroup = that.$selectableUl.find('#optgroup-selectable-'+optgroupId),\n            $selectionOptgroup = that.$selectionUl.find('#optgroup-selection-'+optgroupId);\n\n        if ($selectableOptgroup.length === 0){\n          var optgroupContainerTpl = '<li class=\"ms-optgroup-container\"></li>',\n              optgroupTpl = '<ul class=\"ms-optgroup\"><li class=\"ms-optgroup-label\"><span>'+optgroupLabel+'</span></li></ul>';\n\n          $selectableOptgroup = $(optgroupContainerTpl);\n          $selectionOptgroup = $(optgroupContainerTpl);\n          $selectableOptgroup.attr('id', 'optgroup-selectable-'+optgroupId);\n          $selectionOptgroup.attr('id', 'optgroup-selection-'+optgroupId);\n          $selectableOptgroup.append($(optgroupTpl));\n          $selectionOptgroup.append($(optgroupTpl));\n          if (that.options.selectableOptgroup){\n            $selectableOptgroup.find('.ms-optgroup-label').on('click', function(){\n              var values = $optgroup.children(':not(:selected, :disabled)').map(function(){ return $(this).val() }).get();\n              that.select(values);\n            });\n            $selectionOptgroup.find('.ms-optgroup-label').on('click', function(){\n              var values = $optgroup.children(':selected:not(:disabled)').map(function(){ return $(this).val() }).get();\n              that.deselect(values);\n            });\n          }\n          that.$selectableUl.append($selectableOptgroup);\n          that.$selectionUl.append($selectionOptgroup);\n        }\n        index = index == undefined ? $selectableOptgroup.find('ul').children().length : index + 1;\n        selectableLi.insertAt(index, $selectableOptgroup.children());\n        selectedLi.insertAt(index, $selectionOptgroup.children());\n      } else {\n        index = index == undefined ? that.$selectableUl.children().length : index;\n\n        selectableLi.insertAt(index, that.$selectableUl);\n        selectedLi.insertAt(index, that.$selectionUl);\n      }\n    },\n\n    'addOption' : function(options){\n      var that = this;\n\n      if (options.value) options = [options];\n      $.each(options, function(index, option){\n        if (option.value && that.$element.find(\"option[value='\"+option.value+\"']\").length === 0){\n          var $option = $('<option value=\"'+option.value+'\">'+option.text+'</option>'),\n              index = parseInt((typeof option.index === 'undefined' ? that.$element.children().length : option.index)),\n              $container = option.nested == undefined ? that.$element : $(\"optgroup[label='\"+option.nested+\"']\")\n\n          $option.insertAt(index, $container);\n          that.generateLisFromOption($option.get(0), index, option.nested);\n        }\n      })\n    },\n\n    'escapeHTML' : function(text){\n      return $(\"<div>\").text(text).html();\n    },\n\n    'activeKeyboard' : function($list){\n      var that = this;\n\n      $list.on('focus', function(){\n        $(this).addClass('ms-focus');\n      })\n      .on('blur', function(){\n        $(this).removeClass('ms-focus');\n      })\n      .on('keydown', function(e){\n        switch (e.which) {\n          case 40:\n          case 38:\n            e.preventDefault();\n            e.stopPropagation();\n            that.moveHighlight($(this), (e.which === 38) ? -1 : 1);\n            return;\n          case 37:\n          case 39:\n            e.preventDefault();\n            e.stopPropagation();\n            that.switchList($list);\n            return;\n          case 9:\n            if(that.$element.is('[tabindex]')){\n              e.preventDefault();\n              var tabindex = parseInt(that.$element.attr('tabindex'), 10);\n              tabindex = (e.shiftKey) ? tabindex-1 : tabindex+1;\n              $('[tabindex=\"'+(tabindex)+'\"]').focus();\n              return;\n            }else{\n              if(e.shiftKey){\n                that.$element.trigger('focus');\n              }\n            }\n        }\n        if($.inArray(e.which, that.options.keySelect) > -1){\n          e.preventDefault();\n          e.stopPropagation();\n          that.selectHighlighted($list);\n          return;\n        }\n      });\n    },\n\n    'moveHighlight': function($list, direction){\n      var $elems = $list.find(this.elemsSelector),\n          $currElem = $elems.filter('.ms-hover'),\n          $nextElem = null,\n          elemHeight = $elems.first().outerHeight(),\n          containerHeight = $list.height(),\n          containerSelector = '#'+this.$container.prop('id');\n\n      $elems.removeClass('ms-hover');\n      if (direction === 1){ // DOWN\n\n        $nextElem = $currElem.nextAll(this.elemsSelector).first();\n        if ($nextElem.length === 0){\n          var $optgroupUl = $currElem.parent();\n\n          if ($optgroupUl.hasClass('ms-optgroup')){\n            var $optgroupLi = $optgroupUl.parent(),\n                $nextOptgroupLi = $optgroupLi.next(':visible');\n\n            if ($nextOptgroupLi.length > 0){\n              $nextElem = $nextOptgroupLi.find(this.elemsSelector).first();\n            } else {\n              $nextElem = $elems.first();\n            }\n          } else {\n            $nextElem = $elems.first();\n          }\n        }\n      } else if (direction === -1){ // UP\n\n        $nextElem = $currElem.prevAll(this.elemsSelector).first();\n        if ($nextElem.length === 0){\n          var $optgroupUl = $currElem.parent();\n\n          if ($optgroupUl.hasClass('ms-optgroup')){\n            var $optgroupLi = $optgroupUl.parent(),\n                $prevOptgroupLi = $optgroupLi.prev(':visible');\n\n            if ($prevOptgroupLi.length > 0){\n              $nextElem = $prevOptgroupLi.find(this.elemsSelector).last();\n            } else {\n              $nextElem = $elems.last();\n            }\n          } else {\n            $nextElem = $elems.last();\n          }\n        }\n      }\n      if ($nextElem.length > 0){\n        $nextElem.addClass('ms-hover');\n        var scrollTo = $list.scrollTop() + $nextElem.position().top - \n                       containerHeight / 2 + elemHeight / 2;\n\n        $list.scrollTop(scrollTo);\n      }\n    },\n\n    'selectHighlighted' : function($list){\n      var $elems = $list.find(this.elemsSelector),\n          $highlightedElem = $elems.filter('.ms-hover').first();\n\n      if ($highlightedElem.length > 0){\n        if ($list.parent().hasClass('ms-selectable')){\n          this.select($highlightedElem.data('ms-value'));\n        } else {\n          this.deselect($highlightedElem.data('ms-value'));\n        }\n        $elems.removeClass('ms-hover');\n      }\n    },\n\n    'switchList' : function($list){\n      $list.blur();\n      this.$container.find(this.elemsSelector).removeClass('ms-hover');\n      if ($list.parent().hasClass('ms-selectable')){\n        this.$selectionUl.focus();\n      } else {\n        this.$selectableUl.focus();\n      }\n    },\n\n    'activeMouse' : function($list){\n      var that = this;\n\n      $('body').on('mouseenter', that.elemsSelector, function(){\n        $(this).parents('.ms-container').find(that.elemsSelector).removeClass('ms-hover');\n        $(this).addClass('ms-hover');\n      });\n\n      $('body').on('mouseleave', that.elemsSelector, function () {\n          $(this).parents('.ms-container').find(that.elemsSelector).removeClass('ms-hover');;\n      });\n    },\n\n    'refresh' : function() {\n      this.destroy();\n      this.$element.multiSelect(this.options);\n    },\n\n    'destroy' : function(){\n      $(\"#ms-\"+this.$element.attr(\"id\")).remove();\n      this.$element.css('position', '').css('left', '')\n      this.$element.removeData('multiselect');\n    },\n\n    'select' : function(value, method){\n      if (typeof value === 'string'){ value = [value]; }\n\n      var that = this,\n          ms = this.$element,\n          msIds = $.map(value, function(val){ return(that.sanitize(val)); }),\n          selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable').filter(':not(.'+that.options.disabledClass+')'),\n          selections = this.$selectionUl.find('#' + msIds.join('-selection, #') + '-selection').filter(':not(.'+that.options.disabledClass+')'),\n          options = ms.find('option:not(:disabled)').filter(function(){ return($.inArray(this.value, value) > -1); });\n\n      if (method === 'init'){\n        selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable'),\n        selections = this.$selectionUl.find('#' + msIds.join('-selection, #') + '-selection');\n      }\n\n      if (selectables.length > 0){\n        selectables.addClass('ms-selected').hide();\n        selections.addClass('ms-selected').show();\n\n        options.prop('selected', true);\n\n        that.$container.find(that.elemsSelector).removeClass('ms-hover');\n\n        var selectableOptgroups = that.$selectableUl.children('.ms-optgroup-container');\n        if (selectableOptgroups.length > 0){\n          selectableOptgroups.each(function(){\n            var selectablesLi = $(this).find('.ms-elem-selectable');\n            if (selectablesLi.length === selectablesLi.filter('.ms-selected').length){\n              $(this).find('.ms-optgroup-label').hide();\n            }\n          });\n\n          var selectionOptgroups = that.$selectionUl.children('.ms-optgroup-container');\n          selectionOptgroups.each(function(){\n            var selectionsLi = $(this).find('.ms-elem-selection');\n            if (selectionsLi.filter('.ms-selected').length > 0){\n              $(this).find('.ms-optgroup-label').show();\n            }\n          });\n        } else {\n          if (that.options.keepOrder && method !== 'init'){\n            var selectionLiLast = that.$selectionUl.find('.ms-selected');\n            if((selectionLiLast.length > 1) && (selectionLiLast.last().get(0) != selections.get(0))) {\n              selections.insertAfter(selectionLiLast.last());\n            }\n          }\n        }\n        if (method !== 'init'){\n          ms.trigger('change');\n          if (typeof that.options.afterSelect === 'function') {\n            that.options.afterSelect.call(this, value);\n          }\n        }\n      }\n    },\n\n    'deselect' : function(value){\n      if (typeof value === 'string'){ value = [value]; }\n\n      var that = this,\n          ms = this.$element,\n          msIds = $.map(value, function(val){ return(that.sanitize(val)); }),\n          selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable'),\n          selections = this.$selectionUl.find('#' + msIds.join('-selection, #')+'-selection').filter('.ms-selected').filter(':not(.'+that.options.disabledClass+')'),\n          options = ms.find('option').filter(function(){ return($.inArray(this.value, value) > -1); });\n\n      if (selections.length > 0){\n        selectables.removeClass('ms-selected').show();\n        selections.removeClass('ms-selected').hide();\n        options.prop('selected', false);\n\n        that.$container.find(that.elemsSelector).removeClass('ms-hover');\n\n        var selectableOptgroups = that.$selectableUl.children('.ms-optgroup-container');\n        if (selectableOptgroups.length > 0){\n          selectableOptgroups.each(function(){\n            var selectablesLi = $(this).find('.ms-elem-selectable');\n            if (selectablesLi.filter(':not(.ms-selected)').length > 0){\n              $(this).find('.ms-optgroup-label').show();\n            }\n          });\n\n          var selectionOptgroups = that.$selectionUl.children('.ms-optgroup-container');\n          selectionOptgroups.each(function(){\n            var selectionsLi = $(this).find('.ms-elem-selection');\n            if (selectionsLi.filter('.ms-selected').length === 0){\n              $(this).find('.ms-optgroup-label').hide();\n            }\n          });\n        }\n        ms.trigger('change');\n        if (typeof that.options.afterDeselect === 'function') {\n          that.options.afterDeselect.call(this, value);\n        }\n      }\n    },\n\n    'select_all' : function(){\n      var ms = this.$element,\n          values = ms.val();\n\n      ms.find('option:not(\":disabled\")').prop('selected', true);\n      this.$selectableUl.find('.ms-elem-selectable').filter(':not(.'+this.options.disabledClass+')').addClass('ms-selected').hide();\n      this.$selectionUl.find('.ms-optgroup-label').show();\n      this.$selectableUl.find('.ms-optgroup-label').hide();\n      this.$selectionUl.find('.ms-elem-selection').filter(':not(.'+this.options.disabledClass+')').addClass('ms-selected').show();\n      this.$selectionUl.focus();\n      ms.trigger('change');\n      if (typeof this.options.afterSelect === 'function') {\n        var selectedValues = $.grep(ms.val(), function(item){\n          return $.inArray(item, values) < 0;\n        });\n        this.options.afterSelect.call(this, selectedValues);\n      }\n    },\n\n    'deselect_all' : function(){\n      var ms = this.$element,\n          values = ms.val();\n\n      ms.find('option').prop('selected', false);\n      this.$selectableUl.find('.ms-elem-selectable').removeClass('ms-selected').show();\n      this.$selectionUl.find('.ms-optgroup-label').hide();\n      this.$selectableUl.find('.ms-optgroup-label').show();\n      this.$selectionUl.find('.ms-elem-selection').removeClass('ms-selected').hide();\n      this.$selectableUl.focus();\n      ms.trigger('change');\n      if (typeof this.options.afterDeselect === 'function') {\n        this.options.afterDeselect.call(this, values);\n      }\n    },\n\n    sanitize: function(value){\n      var hash = 0, i, character;\n      if (value.length == 0) return hash;\n      var ls = 0;\n      for (i = 0, ls = value.length; i < ls; i++) {\n        character  = value.charCodeAt(i);\n        hash  = ((hash<<5)-hash)+character;\n        hash |= 0; // Convert to 32bit integer\n      }\n      return hash;\n    }\n  };\n\n  /* MULTISELECT PLUGIN DEFINITION\n   * ======================= */\n\n  $.fn.multiSelect = function () {\n    var option = arguments[0],\n        args = arguments;\n\n    return this.each(function () {\n      var $this = $(this),\n          data = $this.data('multiselect'),\n          options = $.extend({}, $.fn.multiSelect.defaults, $this.data(), typeof option === 'object' && option);\n\n      if (!data){ $this.data('multiselect', (data = new MultiSelect(this, options))); }\n\n      if (typeof option === 'string'){\n        data[option](args[1]);\n      } else {\n        data.init();\n      }\n    });\n  };\n\n  $.fn.multiSelect.defaults = {\n    keySelect: [32],\n    selectableOptgroup: false,\n    disabledClass : 'disabled',\n    dblClick : false,\n    keepOrder: false,\n    cssClass: ''\n  };\n\n  $.fn.multiSelect.Constructor = MultiSelect;\n\n  $.fn.insertAt = function(index, $parent) {\n    return this.each(function() {\n      if (index === 0) {\n        $parent.prepend(this);\n      } else {\n        $parent.children().eq(index - 1).after(this);\n      }\n    });\n}\n\n}(window.jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-qrcode/bower.json",
    "content": "{\n  \"name\": \"jquery-qrcode\",\n  \"version\": \"1.0.0\",\n  \"homepage\": \"http://www.d-project.com/\",\n  \"authors\": [\n    \"jeromeetienne\"\n  ],\n  \"description\": \"It allow you to easily add qrcode to your webpages. It is standalone, less than 4k after minify+gzip, no image download\",\n  \"main\": \"jquery.qrcode.min.js\",\n  \"keywords\": [\n    \"QR\",\n    \"jQuery\",\n    \"standalone\"\n  ],\n  \"license\": \"MIT\",\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\",\n    \"tests\"\n  ],\n  \"dependencies\": {\n    \"jquery\": \"~1.9\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-qrcode/examples/basic.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<title>basic example</title>\n</head>\n<body>\n<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js\"></script>\n\n<!--<script type=\"text/javascript\" src=\"../jquery.qrcode.min.js\"></script>\n--><script type=\"text/javascript\" src=\"../src/jquery.qrcode.js\"></script>\n<script type=\"text/javascript\" src=\"../src/qrcode.js\"></script>\n\n<p>Render in table</p>\n<div id=\"qrcodeTable\"></div>\n<p>Render in canvas</p>\n<div id=\"qrcodeCanvas\"></div>\n<script>\n\t//jQuery('#qrcode').qrcode(\"this plugin is great\");\n\tjQuery('#qrcodeTable').qrcode({\n\t\trender\t: \"table\",\n\t\ttext\t: \"http://jetienne.com\"\n\t});\t\n\tjQuery('#qrcodeCanvas').qrcode({\n\t\ttext\t: \"http://jetienne.com\"\n\t});\t\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-qrcode/examples/demo.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<title>Demo page</title>\n\n</head>\n<body>\n<p>\n\tTODO make a nice looking pure client qrcode generator\n\teven allow download of the image\n</p>\n\n<div id=\"output\"></div>\n\n<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"../jquery.qrcode.min.js\"></script>\n<script>\njQuery(function(){\n\tjQuery('#output').qrcode(\"http://jetienne.com\");\n})\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-qrcode/index.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <title></title>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <meta name=\"date\" content=\"\" />\n</head>\n<body>\n<div id=\"jquery.qrcode.js\"\n><h1\n  >jquery.qrcode.js</h1\n  ><p\n  ><a href='http://jeromeetienne.github.com/jquery-qrcode'>jquery.qrcode.js</a> is <em\n    >jquery plugin for a pure browser qrcode generation</em\n    >. It allow you to easily add qrcode to your webpages. It is standalone, less than 4k after minify+gzip, no image download. It doesnt rely on external services which go on and off, or add latency while loading. It is based on a <a href='http://www.d-project.com/qrcode/index.html'>library</a> which build qrcode in various language. <a href='http://jeromeetienne.github.com/jquery-qrcode'>jquery.qrcode.js</a> wraps it to make it easy to include in your own code.</p\n  ><p\n  >Show, dont tell, here is a <a href='examples/basic.html'>example</a></p\n  ><div id=\"how-to-use-it\"\n  ><h2\n    >How to Use It</h2\n    ><p\n    >Let me walk you thru it. First include it in your webpage with the usual script tag</p\n    ><pre\n    ><code\n      >&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.qrcode.min.js&quot;&gt;&lt;/script&gt;\n</code\n      ></pre\n    ><p\n    >Then create a DOM element which gonna contains the generated qrcode image. Lets say a div</p\n    ><pre\n    ><code\n      >&lt;div id=&quot;qrcode&quot;&gt;&lt;/div&gt;\n</code\n      ></pre\n    ><p\n    >Then you add the <em\n      >qrcode</em\n      > in this container by</p\n    ><pre\n    ><code\n      >jquery('#qrcode').qrcode(&quot;this plugin is great&quot;);\n</code\n      ></pre\n    ><p\n    >This is it. see it <a href='examples/basic.html'>live</a>.</p\n    ></div\n  ><div id=\"conclusion\"\n  ><h2\n    >Conclusion</h2\n    ><p\n    ><a href='http://jeromeetienne.github.com/jquery-qrcode'>jquery.qrcode.js</a> is available on github <a href='https://github.com/jeromeetienne/jquery-qrcode'>here</a> under <a href='https://github.com/jeromeetienne/jquery-qrcode/blob/master/MIT-LICENSE.txt'>MIT license</a>. If you hit bugs, fill issues on github. Feel free to fork, modify and have fun with it :)</p\n    ></div\n  ></div\n>\n<style>\nbody {\n    margin: auto;\n    padding-right: 1em;\n    padding-left: 1em;\n    max-width: 44em; \n    border-left: 1px solid #eee;\n    border-right: 1px solid #eee;\n    font-family\t\t: Verdana, sans-serif;\n    font-size\t\t: 100%;\n    line-height\t\t: 140%;\n    color\t\t: #eee; \n    background-color\t: #22252a;\n}\npre {\n    border\t\t: 1px dotted gray;\n    background-color\t: #444a50;\n    color\t\t: #1111111;\n    padding\t\t: 0.5em;\n}\ncode {\n\tfont-family\t: monospace;\n}\na { \n\ttext-decoration\t: none;\n\tcolor\t\t: lightSteelBlue; \n}\na:hover {\n\ttext-decoration\t: underline;\n}\nh1, h2, h3, h4, h5 { font-family: verdana;\n                     font-weight: bold;\n                     border-bottom: 1px dotted #eee;\n                     color: lightSteelBlue; }\nh1 {\n\tcolor\t\t: #cd5;\n        font-size\t: 130%;\n}\nh1:nth-child(1) {\n\tfont-size\t: 300%;\n\ttext-align\t: center;\n\theight\t\t: 1em;\n}\nh2 {\n        font-size\t: 110%;\n}\n\nh3 {\n        font-size\t: 95%;\n}\n\nh4 {\n        font-size\t: 90%;\n        font-style\t: italic;\n}\n\nh5 {\n        font-size\t: 90%;\n        font-style\t: italic;\n}\n\nh1.title {\n        font-size\t: 200%;\n        font-weight\t: bold;\n        padding-top\t: 0.2em;\n        padding-bottom\t: 0.2em;\n        text-align\t: left;\n        border\t\t: none;\n}\n\ndt code {\n        font-weight\t: bold;\n}\ndd p {\n        margin-top\t: 0;\n}\nimg {\n/*\tborder-color\t: white;\n\tborder-style\t: solid;\n*/}\n\n#footer {\n        padding-top\t: 1em;\n        font-size\t: 70%;\n        color\t\t: gray;\n        text-align\t: center;\n}\n\n</style>\n<!-- follow me on twitter -->\n<a href=\"http://www.twitter.com/jerome_etienne\">\n\t<img style=\"position: absolute; bottom: 10px; right: 10px; border: 0;\" src=\"https://twitter-badges.s3.amazonaws.com/follow_me-c.png\" alt=\"Follow jerome_etienne on Twitter\"/>\n</a>\n<!-- github ribbon -->\n<a href=\"https://github.com/jeromeetienne/jquery-qrcode\"><img style=\"position: absolute; top: 0; left: 0; border: 0;\" src=\"https://assets0.github.com/img/ce742187c818c67d98af16f96ed21c00160c234a?repo=&url=http%3A%2F%2Fs3.amazonaws.com%2Fgithub%2Fribbons%2Fforkme_left_gray_6d6d6d.png&path=\" alt=\"Fork me on GitHub\"></a>\n<!-- twitter share + facebook like -->\n<div style=\"position: absolute; top: 10px; right: 10px; border: 0;\">\n\t\n\t<a href=\"http://twitter.com/share\" class=\"twitter-share-button\" data-count=\"none\" data-via=\"jerome_etienne\">Tweet</a><script type=\"text/javascript\" src=\"https://platform.twitter.com/widgets.js\"></script>\n</div>\n</body>\n</html>\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-qrcode/src/jquery.qrcode.js",
    "content": "(function( $ ){\n\t$.fn.qrcode = function(options) {\n\t\t// if options is string, \n\t\tif( typeof options === 'string' ){\n\t\t\toptions\t= { text: options };\n\t\t}\n\n\t\t// set default values\n\t\t// typeNumber < 1 for automatic calculation\n\t\toptions\t= $.extend( {}, {\n\t\t\trender\t\t: \"canvas\",\n\t\t\twidth\t\t: 256,\n\t\t\theight\t\t: 256,\n\t\t\ttypeNumber\t: -1,\n\t\t\tcorrectLevel\t: QRErrorCorrectLevel.H,\n                        background      : \"#ffffff\",\n                        foreground      : \"#000000\"\n\t\t}, options);\n\n\t\tvar createCanvas\t= function(){\n\t\t\t// create the qrcode itself\n\t\t\tvar qrcode\t= new QRCode(options.typeNumber, options.correctLevel);\n\t\t\tqrcode.addData(options.text);\n\t\t\tqrcode.make();\n\n\t\t\t// create canvas element\n\t\t\tvar canvas\t= document.createElement('canvas');\n\t\t\tcanvas.width\t= options.width;\n\t\t\tcanvas.height\t= options.height;\n\t\t\tvar ctx\t\t= canvas.getContext('2d');\n\n\t\t\t// compute tileW/tileH based on options.width/options.height\n\t\t\tvar tileW\t= options.width  / qrcode.getModuleCount();\n\t\t\tvar tileH\t= options.height / qrcode.getModuleCount();\n\n\t\t\t// draw in the canvas\n\t\t\tfor( var row = 0; row < qrcode.getModuleCount(); row++ ){\n\t\t\t\tfor( var col = 0; col < qrcode.getModuleCount(); col++ ){\n\t\t\t\t\tctx.fillStyle = qrcode.isDark(row, col) ? options.foreground : options.background;\n\t\t\t\t\tvar w = (Math.ceil((col+1)*tileW) - Math.floor(col*tileW));\n\t\t\t\t\tvar h = (Math.ceil((row+1)*tileW) - Math.floor(row*tileW));\n\t\t\t\t\tctx.fillRect(Math.round(col*tileW),Math.round(row*tileH), w, h);  \n\t\t\t\t}\t\n\t\t\t}\n\t\t\t// return just built canvas\n\t\t\treturn canvas;\n\t\t}\n\n\t\t// from Jon-Carlos Rivera (https://github.com/imbcmdth)\n\t\tvar createTable\t= function(){\n\t\t\t// create the qrcode itself\n\t\t\tvar qrcode\t= new QRCode(options.typeNumber, options.correctLevel);\n\t\t\tqrcode.addData(options.text);\n\t\t\tqrcode.make();\n\t\t\t\n\t\t\t// create table element\n\t\t\tvar $table\t= $('<table></table>')\n\t\t\t\t.css(\"width\", options.width+\"px\")\n\t\t\t\t.css(\"height\", options.height+\"px\")\n\t\t\t\t.css(\"border\", \"0px\")\n\t\t\t\t.css(\"border-collapse\", \"collapse\")\n\t\t\t\t.css('background-color', options.background);\n\t\t  \n\t\t\t// compute tileS percentage\n\t\t\tvar tileW\t= options.width / qrcode.getModuleCount();\n\t\t\tvar tileH\t= options.height / qrcode.getModuleCount();\n\n\t\t\t// draw in the table\n\t\t\tfor(var row = 0; row < qrcode.getModuleCount(); row++ ){\n\t\t\t\tvar $row = $('<tr></tr>').css('height', tileH+\"px\").appendTo($table);\n\t\t\t\t\n\t\t\t\tfor(var col = 0; col < qrcode.getModuleCount(); col++ ){\n\t\t\t\t\t$('<td></td>')\n\t\t\t\t\t\t.css('width', tileW+\"px\")\n\t\t\t\t\t\t.css('background-color', qrcode.isDark(row, col) ? options.foreground : options.background)\n\t\t\t\t\t\t.appendTo($row);\n\t\t\t\t}\t\n\t\t\t}\n\t\t\t// return just built canvas\n\t\t\treturn $table;\n\t\t}\n  \n\n\t\treturn this.each(function(){\n\t\t\tvar element\t= options.render == \"canvas\" ? createCanvas() : createTable();\n\t\t\t$(element).appendTo(this);\n\t\t});\n\t};\n})( jQuery );\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-qrcode/src/qrcode.js",
    "content": "//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n//   http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of \n// DENSO WAVE INCORPORATED\n//   http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\n//---------------------------------------------------------------------\n// QR8bitByte\n//---------------------------------------------------------------------\n\nfunction QR8bitByte(data) {\n\tthis.mode = QRMode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\n//---------------------------------------------------------------------\n// QRCode\n//---------------------------------------------------------------------\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = new Array();\n}\n\nQRCode.prototype = {\n\t\n\taddData : function(data) {\n\t\tvar newData = new QR8bitByte(data);\n\t\tthis.dataList.push(newData);\n\t\tthis.dataCache = null;\n\t},\n\t\n\tisDark : function(row, col) {\n\t\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\t\tthrow new Error(row + \",\" + col);\n\t\t}\n\t\treturn this.modules[row][col];\n\t},\n\n\tgetModuleCount : function() {\n\t\treturn this.moduleCount;\n\t},\n\t\n\tmake : function() {\n\t\t// Calculate automatically typeNumber if provided is < 1\n\t\tif (this.typeNumber < 1 ){\n\t\t\tvar typeNumber = 1;\n\t\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\t\tvar rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\t\tvar buffer = new QRBitBuffer();\n\t\t\t\tvar totalDataCount = 0;\n\t\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\t\tvar data = this.dataList[i];\n\t\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\t\tbuffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\t\tdata.write(buffer);\n\t\t\t\t}\n\t\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.typeNumber = typeNumber;\n\t\t}\n\t\tthis.makeImpl(false, this.getBestMaskPattern() );\n\t},\n\t\n\tmakeImpl : function(test, maskPattern) {\n\t\t\n\t\tthis.moduleCount = this.typeNumber * 4 + 17;\n\t\tthis.modules = new Array(this.moduleCount);\n\t\t\n\t\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\t\n\t\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\t\n\t\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t\t}\n\t\t}\n\t\n\t\tthis.setupPositionProbePattern(0, 0);\n\t\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\t\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\t\tthis.setupPositionAdjustPattern();\n\t\tthis.setupTimingPattern();\n\t\tthis.setupTypeInfo(test, maskPattern);\n\t\t\n\t\tif (this.typeNumber >= 7) {\n\t\t\tthis.setupTypeNumber(test);\n\t\t}\n\t\n\t\tif (this.dataCache == null) {\n\t\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t\t}\n\t\n\t\tthis.mapData(this.dataCache, maskPattern);\n\t},\n\n\tsetupPositionProbePattern : function(row, col)  {\n\t\t\n\t\tfor (var r = -1; r <= 7; r++) {\n\t\t\t\n\t\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\t\n\t\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\t\n\t\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\t\n\t\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t}\n\t\t\t}\t\t\n\t\t}\t\t\n\t},\n\t\n\tgetBestMaskPattern : function() {\n\t\n\t\tvar minLostPoint = 0;\n\t\tvar pattern = 0;\n\t\n\t\tfor (var i = 0; i < 8; i++) {\n\t\t\t\n\t\t\tthis.makeImpl(true, i);\n\t\n\t\t\tvar lostPoint = QRUtil.getLostPoint(this);\n\t\n\t\t\tif (i == 0 || minLostPoint >  lostPoint) {\n\t\t\t\tminLostPoint = lostPoint;\n\t\t\t\tpattern = i;\n\t\t\t}\n\t\t}\n\t\n\t\treturn pattern;\n\t},\n\t\n\tcreateMovieClip : function(target_mc, instance_name, depth) {\n\t\n\t\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\t\tvar cs = 1;\n\t\n\t\tthis.make();\n\n\t\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\t\n\t\t\tvar y = row * cs;\n\t\t\t\n\t\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\t\n\t\t\t\tvar x = col * cs;\n\t\t\t\tvar dark = this.modules[row][col];\n\t\t\t\n\t\t\t\tif (dark) {\n\t\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\t\tqr_mc.endFill();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn qr_mc;\n\t},\n\n\tsetupTimingPattern : function() {\n\t\t\n\t\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\t\tif (this.modules[r][6] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.modules[r][6] = (r % 2 == 0);\n\t\t}\n\t\n\t\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\t\tif (this.modules[6][c] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.modules[6][c] = (c % 2 == 0);\n\t\t}\n\t},\n\t\n\tsetupPositionAdjustPattern : function() {\n\t\n\t\tvar pos = QRUtil.getPatternPosition(this.typeNumber);\n\t\t\n\t\tfor (var i = 0; i < pos.length; i++) {\n\t\t\n\t\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\t\n\t\t\t\tvar row = pos[i];\n\t\t\t\tvar col = pos[j];\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\t\n\t\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\t\n\t\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2 \n\t\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t\n\tsetupTypeNumber : function(test) {\n\t\n\t\tvar bits = QRUtil.getBCHTypeNumber(this.typeNumber);\n\t\n\t\tfor (var i = 0; i < 18; i++) {\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t\t}\n\t\n\t\tfor (var i = 0; i < 18; i++) {\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t\t}\n\t},\n\t\n\tsetupTypeInfo : function(test, maskPattern) {\n\t\n\t\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\t\tvar bits = QRUtil.getBCHTypeInfo(data);\n\t\n\t\t// vertical\t\t\n\t\tfor (var i = 0; i < 15; i++) {\n\t\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\n\t\t\tif (i < 6) {\n\t\t\t\tthis.modules[i][8] = mod;\n\t\t\t} else if (i < 8) {\n\t\t\t\tthis.modules[i + 1][8] = mod;\n\t\t\t} else {\n\t\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t\t}\n\t\t}\n\t\n\t\t// horizontal\n\t\tfor (var i = 0; i < 15; i++) {\n\t\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\t\n\t\t\tif (i < 8) {\n\t\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t\t} else if (i < 9) {\n\t\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t\t} else {\n\t\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t\t}\n\t\t}\n\t\n\t\t// fixed module\n\t\tthis.modules[this.moduleCount - 8][8] = (!test);\n\t\n\t},\n\t\n\tmapData : function(data, maskPattern) {\n\t\t\n\t\tvar inc = -1;\n\t\tvar row = this.moduleCount - 1;\n\t\tvar bitIndex = 7;\n\t\tvar byteIndex = 0;\n\t\t\n\t\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\t\n\t\t\tif (col == 6) col--;\n\t\n\t\t\twhile (true) {\n\t\n\t\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\t\n\t\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar dark = false;\n\t\n\t\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar mask = QRUtil.getMask(maskPattern, row, col - c);\n\t\n\t\t\t\t\t\tif (mask) {\n\t\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\t\tbitIndex--;\n\t\n\t\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\trow += inc;\n\t\n\t\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\t\trow -= inc;\n\t\t\t\t\tinc = -inc;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new QRBitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+  totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n}\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n            var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n\n}\n\n//---------------------------------------------------------------------\n// QRMode\n//---------------------------------------------------------------------\n\nvar QRMode = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n\n//---------------------------------------------------------------------\n// QRErrorCorrectLevel\n//---------------------------------------------------------------------\n \nvar QRErrorCorrectLevel = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n//---------------------------------------------------------------------\n// QRMaskPattern\n//---------------------------------------------------------------------\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\n//---------------------------------------------------------------------\n// QRUtil\n//---------------------------------------------------------------------\n \nvar QRUtil = {\n\n    PATTERN_POSITION_TABLE : [\n\t    [],\n\t    [6, 18],\n\t    [6, 22],\n\t    [6, 26],\n\t    [6, 30],\n\t    [6, 34],\n\t    [6, 22, 38],\n\t    [6, 24, 42],\n\t    [6, 26, 46],\n\t    [6, 28, 50],\n\t    [6, 30, 54],\t\t\n\t    [6, 32, 58],\n\t    [6, 34, 62],\n\t    [6, 26, 46, 66],\n\t    [6, 26, 48, 70],\n\t    [6, 26, 50, 74],\n\t    [6, 30, 54, 78],\n\t    [6, 30, 56, 82],\n\t    [6, 30, 58, 86],\n\t    [6, 34, 62, 90],\n\t    [6, 28, 50, 72, 94],\n\t    [6, 26, 50, 74, 98],\n\t    [6, 30, 54, 78, 102],\n\t    [6, 28, 54, 80, 106],\n\t    [6, 32, 58, 84, 110],\n\t    [6, 30, 58, 86, 114],\n\t    [6, 34, 62, 90, 118],\n\t    [6, 26, 50, 74, 98, 122],\n\t    [6, 30, 54, 78, 102, 126],\n\t    [6, 26, 52, 78, 104, 130],\n\t    [6, 30, 56, 82, 108, 134],\n\t    [6, 34, 60, 86, 112, 138],\n\t    [6, 30, 58, 86, 114, 142],\n\t    [6, 34, 62, 90, 118, 146],\n\t    [6, 30, 54, 78, 102, 126, 150],\n\t    [6, 24, 50, 76, 102, 128, 154],\n\t    [6, 28, 54, 80, 106, 132, 158],\n\t    [6, 32, 58, 84, 110, 136, 162],\n\t    [6, 26, 54, 82, 110, 138, 166],\n\t    [6, 30, 58, 86, 114, 142, 170]\n    ],\n\n    G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n    G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n    G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n    getBCHTypeInfo : function(data) {\n\t    var d = data << 10;\n\t    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t    d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t    }\n\t    return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n    },\n\n    getBCHTypeNumber : function(data) {\n\t    var d = data << 12;\n\t    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t    d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t    }\n\t    return (data << 12) | d;\n    },\n\n    getBCHDigit : function(data) {\n\n\t    var digit = 0;\n\n\t    while (data != 0) {\n\t\t    digit++;\n\t\t    data >>>= 1;\n\t    }\n\n\t    return digit;\n    },\n\n    getPatternPosition : function(typeNumber) {\n\t    return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n    },\n\n    getMask : function(maskPattern, i, j) {\n\t    \n\t    switch (maskPattern) {\n\t\t    \n\t    case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t    case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t    case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t    case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t    case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t    case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t    case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t    case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t    default :\n\t\t    throw new Error(\"bad maskPattern:\" + maskPattern);\n\t    }\n    },\n\n    getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t    var a = new QRPolynomial([1], 0);\n\n\t    for (var i = 0; i < errorCorrectLength; i++) {\n\t\t    a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0) );\n\t    }\n\n\t    return a;\n    },\n\n    getLengthInBits : function(mode, type) {\n\n\t    if (1 <= type && type < 10) {\n\n\t\t    // 1 - 9\n\n\t\t    switch(mode) {\n\t\t    case QRMode.MODE_NUMBER \t: return 10;\n\t\t    case QRMode.MODE_ALPHA_NUM \t: return 9;\n\t\t    case QRMode.MODE_8BIT_BYTE\t: return 8;\n\t\t    case QRMode.MODE_KANJI  \t: return 8;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else if (type < 27) {\n\n\t\t    // 10 - 26\n\n\t\t    switch(mode) {\n\t\t    case QRMode.MODE_NUMBER \t: return 12;\n\t\t    case QRMode.MODE_ALPHA_NUM \t: return 11;\n\t\t    case QRMode.MODE_8BIT_BYTE\t: return 16;\n\t\t    case QRMode.MODE_KANJI  \t: return 10;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else if (type < 41) {\n\n\t\t    // 27 - 40\n\n\t\t    switch(mode) {\n\t\t    case QRMode.MODE_NUMBER \t: return 14;\n\t\t    case QRMode.MODE_ALPHA_NUM\t: return 13;\n\t\t    case QRMode.MODE_8BIT_BYTE\t: return 16;\n\t\t    case QRMode.MODE_KANJI  \t: return 12;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else {\n\t\t    throw new Error(\"type:\" + type);\n\t    }\n    },\n\n    getLostPoint : function(qrCode) {\n\t    \n\t    var moduleCount = qrCode.getModuleCount();\n\t    \n\t    var lostPoint = 0;\n\t    \n\t    // LEVEL1\n\t    \n\t    for (var row = 0; row < moduleCount; row++) {\n\n\t\t    for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t    var sameCount = 0;\n\t\t\t    var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t    if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t    continue;\n\t\t\t\t    }\n\n\t\t\t\t    for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t    if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t    continue;\n\t\t\t\t\t    }\n\n\t\t\t\t\t    if (r == 0 && c == 0) {\n\t\t\t\t\t\t    continue;\n\t\t\t\t\t    }\n\n\t\t\t\t\t    if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t    sameCount++;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t    }\n\n\t\t\t    if (sameCount > 5) {\n\t\t\t\t    lostPoint += (3 + sameCount - 5);\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL2\n\n\t    for (var row = 0; row < moduleCount - 1; row++) {\n\t\t    for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t    var count = 0;\n\t\t\t    if (qrCode.isDark(row,     col    ) ) count++;\n\t\t\t    if (qrCode.isDark(row + 1, col    ) ) count++;\n\t\t\t    if (qrCode.isDark(row,     col + 1) ) count++;\n\t\t\t    if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t    if (count == 0 || count == 4) {\n\t\t\t\t    lostPoint += 3;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL3\n\n\t    for (var row = 0; row < moduleCount; row++) {\n\t\t    for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t    if (qrCode.isDark(row, col)\n\t\t\t\t\t    && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 2)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 3)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 4)\n\t\t\t\t\t    && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 6) ) {\n\t\t\t\t    lostPoint += 40;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    for (var col = 0; col < moduleCount; col++) {\n\t\t    for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t    if (qrCode.isDark(row, col)\n\t\t\t\t\t    && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 2, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 3, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 4, col)\n\t\t\t\t\t    && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 6, col) ) {\n\t\t\t\t    lostPoint += 40;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL4\n\t    \n\t    var darkCount = 0;\n\n\t    for (var col = 0; col < moduleCount; col++) {\n\t\t    for (var row = 0; row < moduleCount; row++) {\n\t\t\t    if (qrCode.isDark(row, col) ) {\n\t\t\t\t    darkCount++;\n\t\t\t    }\n\t\t    }\n\t    }\n\t    \n\t    var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t    lostPoint += ratio * 10;\n\n\t    return lostPoint;\t\t\n    }\n\n};\n\n\n//---------------------------------------------------------------------\n// QRMath\n//---------------------------------------------------------------------\n\nvar QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\n//---------------------------------------------------------------------\n// QRPolynomial\n//---------------------------------------------------------------------\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i) ) + QRMath.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = QRMath.glog(this.get(0) ) - QRMath.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= QRMath.gexp(QRMath.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\n//---------------------------------------------------------------------\n// QRRSBlock\n//---------------------------------------------------------------------\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount  = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount  = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase QRErrorCorrectLevel.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase QRErrorCorrectLevel.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase QRErrorCorrectLevel.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase QRErrorCorrectLevel.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\n//---------------------------------------------------------------------\n// QRBitBuffer\n//---------------------------------------------------------------------\n\nfunction QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-slimscroll/slimScroll.jquery.json",
    "content": "{\n  \"name\"        : \"slimScroll\",\n  \"version\"     : \"1.3.2\",\n  \"title\"       : \"jQuery slimScroll scrollbar\",\n  \"description\" : \"slimScroll is a small jQuery plugin that transforms any div into a scrollable area. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over.\",\n  \"keywords\"    : [\"scrollbar\", \"scroll\", \"slimscroll\", \"scrollable\", \"scrolling\", \"scroller\", \"ui\"],\n  \"demo\"        : \"http://rocha.la/jQuery-slimScroll/\",\n  \"homepage\"    : \"http://rocha.la/jQuery-slimScroll/\",\n  \"download\"    : \"http://rocha.la/jQuery-slimScroll/\",\n\n  \"author\" : {\n    \"name\"  : \"Piotr Rochala\",\n    \"url\"   : \"http://rocha.la/\"\n  },\n\n  \"dependencies\" : {\n    \"jquery\" : \">= 1.7\"\n  },\n\n  \"licenses\" : [\n    {\n      \"type\": \"MIT\",\n      \"url\": \"http://www.opensource.org/licenses/mit-license.php\"\n    },\n    {\n      \"type\": \"GPL\",\n      \"url\": \"http://www.opensource.org/licenses/gpl-license.php\"\n    }\n  ]\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ar.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: AR (Arabic; العربية)\n */\n$.extend($.validator.messages, {\n\trequired: \"هذا الحقل إلزامي\",\n\tremote: \"يرجى تصحيح هذا الحقل للمتابعة\",\n\temail: \"رجاء إدخال عنوان بريد إلكتروني صحيح\",\n\turl: \"رجاء إدخال عنوان موقع إلكتروني صحيح\",\n\tdate: \"رجاء إدخال تاريخ صحيح\",\n\tdateISO: \"رجاء إدخال تاريخ صحيح (ISO)\",\n\tnumber: \"رجاء إدخال عدد بطريقة صحيحة\",\n\tdigits: \"رجاء إدخال أرقام فقط\",\n\tcreditcard: \"رجاء إدخال رقم بطاقة ائتمان صحيح\",\n\tequalTo: \"رجاء إدخال نفس القيمة\",\n\textension: \"رجاء إدخال ملف بامتداد موافق عليه\",\n\tmaxlength: $.validator.format(\"الحد الأقصى لعدد الحروف هو {0}\"),\n\tminlength: $.validator.format(\"الحد الأدنى لعدد الحروف هو {0}\"),\n\trangelength: $.validator.format(\"عدد الحروف يجب أن يكون بين {0} و {1}\"),\n\trange: $.validator.format(\"رجاء إدخال عدد قيمته بين {0} و {1}\"),\n\tmax: $.validator.format(\"رجاء إدخال عدد أقل من أو يساوي (0}\"),\n\tmin: $.validator.format(\"رجاء إدخال عدد أكبر من أو يساوي (0}\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_bg.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: BG (Bulgarian; български език)\n */\n$.extend($.validator.messages, {\n\trequired: \"Полето е задължително.\",\n\tremote: \"Моля, въведете правилната стойност.\",\n\temail: \"Моля, въведете валиден email.\",\n\turl: \"Моля, въведете валидно URL.\",\n\tdate: \"Моля, въведете валидна дата.\",\n\tdateISO: \"Моля, въведете валидна дата (ISO).\",\n\tnumber: \"Моля, въведете валиден номер.\",\n\tdigits: \"Моля, въведете само цифри.\",\n\tcreditcard: \"Моля, въведете валиден номер на кредитна карта.\",\n\tequalTo: \"Моля, въведете същата стойност отново.\",\n\textension: \"Моля, въведете стойност с валидно разширение.\",\n\tmaxlength: $.validator.format(\"Моля, въведете повече от {0} символа.\"),\n\tminlength: $.validator.format(\"Моля, въведете поне {0} символа.\"),\n\trangelength: $.validator.format(\"Моля, въведете стойност с дължина между {0} и {1} символа.\"),\n\trange: $.validator.format(\"Моля, въведете стойност между {0} и {1}.\"),\n\tmax: $.validator.format(\"Моля, въведете стойност по-малка или равна на {0}.\"),\n\tmin: $.validator.format(\"Моля, въведете стойност по-голяма или равна на {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_bn_BD.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: bn_BD (Bengali, Bangladesh)\n */\n$.extend($.validator.messages, {\n\trequired: \"এই তথ্যটি আবশ্যক।\",\n\tremote: \"এই তথ্যটি ঠিক করুন।\",\n\temail: \"অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।\",\n\turl: \"অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।\",\n\tdate: \"তারিখ সঠিক নয়।\",\n\tdateISO: \"অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।\",\n\tnumber: \"অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।\",\n\tdigits: \"এখানে শুধু সংখ্যা ব্যবহার করা যাবে।\",\n\tcreditcard: \"অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।\",\n\tequalTo: \"একই মান আবার লিখুন।\",\n\textension: \"সঠিক ধরনের ফাইল আপলোড করুন।\",\n\tmaxlength: $.validator.format(\"{0}টির বেশি অক্ষর লেখা যাবে না।\"),\n\tminlength: $.validator.format(\"{0}টির কম অক্ষর লেখা যাবে না।\"),\n\trangelength: $.validator.format(\"{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।\"),\n\trange: $.validator.format(\"{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।\"),\n\tmax: $.validator.format(\"অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।\"),\n\tmin: $.validator.format(\"অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ca.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: CA (Catalan; català)\n */\n$.extend($.validator.messages, {\n\trequired: \"Aquest camp és obligatori.\",\n\tremote: \"Si us plau, omple aquest camp.\",\n\temail: \"Si us plau, escriu una adreça de correu-e vàlida\",\n\turl: \"Si us plau, escriu una URL vàlida.\",\n\tdate: \"Si us plau, escriu una data vàlida.\",\n\tdateISO: \"Si us plau, escriu una data (ISO) vàlida.\",\n\tnumber: \"Si us plau, escriu un número enter vàlid.\",\n\tdigits: \"Si us plau, escriu només dígits.\",\n\tcreditcard: \"Si us plau, escriu un número de tarjeta vàlid.\",\n\tequalTo: \"Si us plau, escriu el mateix valor de nou.\",\n\textension: \"Si us plau, escriu un valor amb una extensió acceptada.\",\n\tmaxlength: $.validator.format(\"Si us plau, no escriguis més de {0} caracters.\"),\n\tminlength: $.validator.format(\"Si us plau, no escriguis menys de {0} caracters.\"),\n\trangelength: $.validator.format(\"Si us plau, escriu un valor entre {0} i {1} caracters.\"),\n\trange: $.validator.format(\"Si us plau, escriu un valor entre {0} i {1}.\"),\n\tmax: $.validator.format(\"Si us plau, escriu un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Si us plau, escriu un valor major o igual a {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_cs.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: CS (Czech; čeština, český jazyk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Tento údaj je povinný.\",\n\tremote: \"Prosím, opravte tento údaj.\",\n\temail: \"Prosím, zadejte platný e-mail.\",\n\turl: \"Prosím, zadejte platné URL.\",\n\tdate: \"Prosím, zadejte platné datum.\",\n\tdateISO: \"Prosím, zadejte platné datum (ISO).\",\n\tnumber: \"Prosím, zadejte číslo.\",\n\tdigits: \"Prosím, zadávejte pouze číslice.\",\n\tcreditcard: \"Prosím, zadejte číslo kreditní karty.\",\n\tequalTo: \"Prosím, zadejte znovu stejnou hodnotu.\",\n\textension: \"Prosím, zadejte soubor se správnou příponou.\",\n\tmaxlength: $.validator.format(\"Prosím, zadejte nejvíce {0} znaků.\"),\n\tminlength: $.validator.format(\"Prosím, zadejte nejméně {0} znaků.\"),\n\trangelength: $.validator.format(\"Prosím, zadejte od {0} do {1} znaků.\"),\n\trange: $.validator.format(\"Prosím, zadejte hodnotu od {0} do {1}.\"),\n\tmax: $.validator.format(\"Prosím, zadejte hodnotu menší nebo rovnu {0}.\"),\n\tmin: $.validator.format(\"Prosím, zadejte hodnotu větší nebo rovnu {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_da.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: DA (Danish; dansk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dette felt er påkrævet.\",\n\tmaxlength: $.validator.format(\"Indtast højst {0} tegn.\"),\n\tminlength: $.validator.format(\"Indtast mindst {0} tegn.\"),\n\trangelength: $.validator.format(\"Indtast mindst {0} og højst {1} tegn.\"),\n\temail: \"Indtast en gyldig email-adresse.\",\n\turl: \"Indtast en gyldig URL.\",\n\tdate: \"Indtast en gyldig dato.\",\n\tnumber: \"Indtast et tal.\",\n\tdigits: \"Indtast kun cifre.\",\n\tequalTo: \"Indtast den samme værdi igen.\",\n\trange: $.validator.format(\"Angiv en værdi mellem {0} og {1}.\"),\n\tmax: $.validator.format(\"Angiv en værdi der højst er {0}.\"),\n\tmin: $.validator.format(\"Angiv en værdi der mindst er {0}.\"),\n\tcreditcard: \"Indtast et gyldigt kreditkortnummer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_de.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: DE (German, Deutsch)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dieses Feld ist ein Pflichtfeld.\",\n\tmaxlength: $.validator.format(\"Geben Sie bitte maximal {0} Zeichen ein.\"),\n\tminlength: $.validator.format(\"Geben Sie bitte mindestens {0} Zeichen ein.\"),\n\trangelength: $.validator.format(\"Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein.\"),\n\temail: \"Geben Sie bitte eine gültige E-Mail Adresse ein.\",\n\turl: \"Geben Sie bitte eine gültige URL ein.\",\n\tdate: \"Bitte geben Sie ein gültiges Datum ein.\",\n\tnumber: \"Geben Sie bitte eine Nummer ein.\",\n\tdigits: \"Geben Sie bitte nur Ziffern ein.\",\n\tequalTo: \"Bitte denselben Wert wiederholen.\",\n\trange: $.validator.format(\"Geben Sie bitte einen Wert zwischen {0} und {1} ein.\"),\n\tmax: $.validator.format(\"Geben Sie bitte einen Wert kleiner oder gleich {0} ein.\"),\n\tmin: $.validator.format(\"Geben Sie bitte einen Wert größer oder gleich {0} ein.\"),\n\tcreditcard: \"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_el.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: EL (Greek; ελληνικά)\n */\n$.extend($.validator.messages, {\n\trequired: \"Αυτό το πεδίο είναι υποχρεωτικό.\",\n\tremote: \"Παρακαλώ διορθώστε αυτό το πεδίο.\",\n\temail: \"Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.\",\n\turl: \"Παρακαλώ εισάγετε ένα έγκυρο URL.\",\n\tdate: \"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.\",\n\tdateISO: \"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).\",\n\tnumber: \"Παρακαλώ εισάγετε έναν έγκυρο αριθμό.\",\n\tdigits: \"Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.\",\n\tcreditcard: \"Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.\",\n\tequalTo: \"Παρακαλώ εισάγετε την ίδια τιμή ξανά.\",\n\textension: \"Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.\",\n\tmaxlength: $.validator.format(\"Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες.\"),\n\tminlength: $.validator.format(\"Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες.\"),\n\trangelength: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων.\"),\n\trange: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}.\"),\n\tmax: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}.\"),\n\tmin: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_es.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, rellena este campo.\",\n\temail: \"Por favor, escribe una dirección de correo válida.\",\n\turl: \"Por favor, escribe una URL válida.\",\n\tdate: \"Por favor, escribe una fecha válida.\",\n\tdateISO: \"Por favor, escribe una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escribe un número válido.\",\n\tdigits: \"Por favor, escribe sólo dígitos.\",\n\tcreditcard: \"Por favor, escribe un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escribe el mismo valor de nuevo.\",\n\textension: \"Por favor, escribe un valor con una extensión aceptada.\",\n\tmaxlength: $.validator.format(\"Por favor, no escribas más de {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, no escribas menos de {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, escribe un valor entre {0} y {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, escribe un valor entre {0} y {1}.\"),\n\tmax: $.validator.format(\"Por favor, escribe un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, escribe un valor mayor o igual a {0}.\"),\n\tnifES: \"Por favor, escribe un NIF válido.\",\n\tnieES: \"Por favor, escribe un NIE válido.\",\n\tcifES: \"Por favor, escribe un CIF válido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_es_AR.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n * Region: AR (Argentina)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, completá este campo.\",\n\temail: \"Por favor, escribí una dirección de correo válida.\",\n\turl: \"Por favor, escribí una URL válida.\",\n\tdate: \"Por favor, escribí una fecha válida.\",\n\tdateISO: \"Por favor, escribí una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escribí un número entero válido.\",\n\tdigits: \"Por favor, escribí sólo dígitos.\",\n\tcreditcard: \"Por favor, escribí un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escribí el mismo valor de nuevo.\",\n\textension: \"Por favor, escribí un valor con una extensión aceptada.\",\n\tmaxlength: $.validator.format(\"Por favor, no escribas más de {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, no escribas menos de {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, escribí un valor entre {0} y {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, escribí un valor entre {0} y {1}.\"),\n\tmax: $.validator.format(\"Por favor, escribí un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, escribí un valor mayor o igual a {0}.\"),\n\tnifES: \"Por favor, escribí un NIF válido.\",\n\tnieES: \"Por favor, escribí un NIE válido.\",\n\tcifES: \"Por favor, escribí un CIF válido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_es_PE.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n * Region: PE (Perú)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, llene este campo.\",\n\temail: \"Por favor, escriba un correo electrónico válido.\",\n\turl: \"Por favor, escriba una URL válida.\",\n\tdate: \"Por favor, escriba una fecha válida.\",\n\tdateISO: \"Por favor, escriba una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escriba un número válido.\",\n\tdigits: \"Por favor, escriba sólo dígitos.\",\n\tcreditcard: \"Por favor, escriba un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escriba el mismo valor de nuevo.\",\n\textension: \"Por favor, escriba un valor con una extensión permitida.\",\n\tmaxlength: $.validator.format(\"Por favor, no escriba más de {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, no escriba menos de {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, escriba un valor entre {0} y {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, escriba un valor entre {0} y {1}.\"),\n\tmax: $.validator.format(\"Por favor, escriba un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, escriba un valor mayor o igual a {0}.\"),\n\tnifES: \"Por favor, escriba un NIF válido.\",\n\tnieES: \"Por favor, escriba un NIE válido.\",\n\tcifES: \"Por favor, escriba un CIF válido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_et.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ET (Estonian; eesti, eesti keel)\n */\n$.extend($.validator.messages, {\n\trequired: \"See väli peab olema täidetud.\",\n\tmaxlength: $.validator.format(\"Palun sisestage vähem kui {0} tähemärki.\"),\n\tminlength: $.validator.format(\"Palun sisestage vähemalt {0} tähemärki.\"),\n\trangelength: $.validator.format(\"Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki.\"),\n\temail: \"Palun sisestage korrektne e-maili aadress.\",\n\turl: \"Palun sisestage korrektne URL.\",\n\tdate: \"Palun sisestage korrektne kuupäev.\",\n\tdateISO: \"Palun sisestage korrektne kuupäev (YYYY-MM-DD).\",\n\tnumber: \"Palun sisestage korrektne number.\",\n\tdigits: \"Palun sisestage ainult numbreid.\",\n\tequalTo: \"Palun sisestage sama väärtus uuesti.\",\n\trange: $.validator.format(\"Palun sisestage väärtus vahemikus {0} kuni {1}.\"),\n\tmax: $.validator.format(\"Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}.\"),\n\tmin: $.validator.format(\"Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}.\"),\n\tcreditcard: \"Palun sisestage korrektne krediitkaardi number.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_eu.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: EU (Basque; euskara, euskera)\n */\n$.extend($.validator.messages, {\n\trequired: \"Eremu hau beharrezkoa da.\",\n\tremote: \"Mesedez, bete eremu hau.\",\n\temail: \"Mesedez, idatzi baliozko posta helbide bat.\",\n\turl: \"Mesedez, idatzi baliozko URL bat.\",\n\tdate: \"Mesedez, idatzi baliozko data bat.\",\n\tdateISO: \"Mesedez, idatzi baliozko (ISO) data bat.\",\n\tnumber: \"Mesedez, idatzi baliozko zenbaki oso bat.\",\n\tdigits: \"Mesedez, idatzi digituak soilik.\",\n\tcreditcard: \"Mesedez, idatzi baliozko txartel zenbaki bat.\",\n\tequalTo: \"Mesedez, idatzi berdina berriro ere.\",\n\textension: \"Mesedez, idatzi onartutako luzapena duen balio bat.\",\n\tmaxlength: $.validator.format(\"Mesedez, ez idatzi {0} karaktere baino gehiago.\"),\n\tminlength: $.validator.format(\"Mesedez, ez idatzi {0} karaktere baino gutxiago.\"),\n\trangelength: $.validator.format(\"Mesedez, idatzi {0} eta {1} karaktere arteko balio bat.\"),\n\trange: $.validator.format(\"Mesedez, idatzi {0} eta {1} arteko balio bat.\"),\n\tmax: $.validator.format(\"Mesedez, idatzi {0} edo txikiagoa den balio bat.\"),\n\tmin: $.validator.format(\"Mesedez, idatzi {0} edo handiagoa den balio bat.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_fa.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FA (Persian; فارسی)\n */\n$.extend($.validator.messages, {\n\trequired: \"تکمیل این فیلد اجباری است.\",\n\tremote: \"لطفا این فیلد را تصحیح کنید.\",\n\temail: \".لطفا یک ایمیل صحیح وارد کنید\",\n\turl: \"لطفا آدرس صحیح وارد کنید.\",\n\tdate: \"لطفا یک تاریخ صحیح وارد کنید\",\n\tdateFA: \"لطفا یک تاریخ صحیح وارد کنید\",\n\tdateISO: \"لطفا تاریخ صحیح وارد کنید (ISO).\",\n\tnumber: \"لطفا عدد صحیح وارد کنید.\",\n\tdigits: \"لطفا تنها رقم وارد کنید\",\n\tcreditcard: \"لطفا کریدیت کارت صحیح وارد کنید.\",\n\tequalTo: \"لطفا مقدار برابری وارد کنید\",\n\textension: \"لطفا مقداری وارد کنید که \",\n\tmaxlength: $.validator.format(\"لطفا بیشتر از {0} حرف وارد نکنید.\"),\n\tminlength: $.validator.format(\"لطفا کمتر از {0} حرف وارد نکنید.\"),\n\trangelength: $.validator.format(\"لطفا مقداری بین {0} تا {1} حرف وارد کنید.\"),\n\trange: $.validator.format(\"لطفا مقداری بین {0} تا {1} حرف وارد کنید.\"),\n\tmax: $.validator.format(\"لطفا مقداری کمتر از {0} حرف وارد کنید.\"),\n\tmin: $.validator.format(\"لطفا مقداری بیشتر از {0} حرف وارد کنید.\"),\n\tminWords: $.validator.format(\"لطفا حداقل {0} کلمه وارد کنید.\"),\n\tmaxWords: $.validator.format(\"لطفا حداکثر {0} کلمه وارد کنید.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_fi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FI (Finnish; suomi, suomen kieli)\n */\n$.extend($.validator.messages, {\n\trequired: \"T&auml;m&auml; kentt&auml; on pakollinen.\",\n\temail: \"Sy&ouml;t&auml; oikea s&auml;hk&ouml;postiosoite.\",\n\turl: \"Sy&ouml;t&auml; oikea URL-osoite.\",\n\tdate: \"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml;.\",\n\tdateISO: \"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml; muodossa VVVV-KK-PP.\",\n\tnumber: \"Sy&ouml;t&auml; luku.\",\n\tcreditcard: \"Sy&ouml;t&auml; voimassa oleva luottokorttinumero.\",\n\tdigits: \"Sy&ouml;t&auml; pelk&auml;st&auml;&auml;n numeroita.\",\n\tequalTo: \"Sy&ouml;t&auml; sama arvo uudestaan.\",\n\tmaxlength: $.validator.format(\"Voit sy&ouml;tt&auml;&auml; enint&auml;&auml;n {0} merkki&auml;.\"),\n\tminlength: $.validator.format(\"V&auml;hint&auml;&auml;n {0} merkki&auml;.\"),\n\trangelength: $.validator.format(\"Sy&ouml;t&auml; v&auml;hint&auml;&auml;n {0} ja enint&auml;&auml;n {1} merkki&auml;.\"),\n\trange: $.validator.format(\"Sy&ouml;t&auml; arvo v&auml;lilt&auml; {0}&ndash;{1}.\"),\n\tmax: $.validator.format(\"Sy&ouml;t&auml; arvo, joka on enint&auml;&auml;n {0}.\"),\n\tmin: $.validator.format(\"Sy&ouml;t&auml; arvo, joka on v&auml;hint&auml;&auml;n {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_fr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FR (French; français)\n */\n$.extend($.validator.messages, {\n\trequired: \"Ce champ est obligatoire.\",\n\tremote: \"Veuillez corriger ce champ.\",\n\temail: \"Veuillez fournir une adresse électronique valide.\",\n\turl: \"Veuillez fournir une adresse URL valide.\",\n\tdate: \"Veuillez fournir une date valide.\",\n\tdateISO: \"Veuillez fournir une date valide (ISO).\",\n\tnumber: \"Veuillez fournir un numéro valide.\",\n\tdigits: \"Veuillez fournir seulement des chiffres.\",\n\tcreditcard: \"Veuillez fournir un numéro de carte de crédit valide.\",\n\tequalTo: \"Veuillez fournir encore la même valeur.\",\n\textension: \"Veuillez fournir une valeur avec une extension valide.\",\n\tmaxlength: $.validator.format(\"Veuillez fournir au plus {0} caractères.\"),\n\tminlength: $.validator.format(\"Veuillez fournir au moins {0} caractères.\"),\n\trangelength: $.validator.format(\"Veuillez fournir une valeur qui contient entre {0} et {1} caractères.\"),\n\trange: $.validator.format(\"Veuillez fournir une valeur entre {0} et {1}.\"),\n\tmax: $.validator.format(\"Veuillez fournir une valeur inférieure ou égale à {0}.\"),\n\tmin: $.validator.format(\"Veuillez fournir une valeur supérieure ou égale à {0}.\"),\n\tmaxWords: $.validator.format(\"Veuillez fournir au plus {0} mots.\"),\n\tminWords: $.validator.format(\"Veuillez fournir au moins {0} mots.\"),\n\trangeWords: $.validator.format(\"Veuillez fournir entre {0} et {1} mots.\"),\n\tletterswithbasicpunc: \"Veuillez fournir seulement des lettres et des signes de ponctuation.\",\n\talphanumeric: \"Veuillez fournir seulement des lettres, nombres, espaces et soulignages.\",\n\tlettersonly: \"Veuillez fournir seulement des lettres.\",\n\tnowhitespace: \"Veuillez ne pas inscrire d'espaces blancs.\",\n\tziprange: \"Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.\",\n\tinteger: \"Veuillez fournir un nombre non décimal qui est positif ou négatif.\",\n\tvinUS: \"Veuillez fournir un numéro d'identification du véhicule (VIN).\",\n\tdateITA: \"Veuillez fournir une date valide.\",\n\ttime: \"Veuillez fournir une heure valide entre 00:00 et 23:59.\",\n\tphoneUS: \"Veuillez fournir un numéro de téléphone valide.\",\n\tphoneUK: \"Veuillez fournir un numéro de téléphone valide.\",\n\tmobileUK: \"Veuillez fournir un numéro de téléphone mobile valide.\",\n\tstrippedminlength: $.validator.format(\"Veuillez fournir au moins {0} caractères.\"),\n\temail2: \"Veuillez fournir une adresse électronique valide.\",\n\turl2: \"Veuillez fournir une adresse URL valide.\",\n\tcreditcardtypes: \"Veuillez fournir un numéro de carte de crédit valide.\",\n\tipv4: \"Veuillez fournir une adresse IP v4 valide.\",\n\tipv6: \"Veuillez fournir une adresse IP v6 valide.\",\n\trequire_from_group: \"Veuillez fournir au moins {0} de ces champs.\",\n\tnifES: \"Veuillez fournir un numéro NIF valide.\",\n\tnieES: \"Veuillez fournir un numéro NIE valide.\",\n\tcifES: \"Veuillez fournir un numéro CIF valide.\",\n\tpostalCodeCA: \"Veuillez fournir un code postal valide.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ge.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/**\n * @author  @tatocaster <kutaliatato@gmail.com>\n * Translated default messages for the jQuery validation plugin.\n * Locale: GE (Georgian; ქართული)\n */\n$.extend($.validator.messages, {\n\trequired: \"ეს ველი სავალდებულოა\",\n\tremote: \"გთხოვთ შეასწოროთ.\",\n\temail: \"გთხოვთ შეიყვანოთ სწორი ფორმატით.\",\n\turl: \"გთხოვთ შეიყვანოთ სწორი ფორმატით.\",\n\tdate: \"გთხოვთ შეიყვანოთ სწორი თარიღი.\",\n\tdateISO: \"გთხოვთ შეიყვანოთ სწორი ფორმატით ( ISO ).\",\n\tnumber: \"გთხოვთ შეიყვანოთ რიცხვი.\",\n\tdigits: \"დაშვებულია მხოლოდ ციფრები.\",\n\tcreditcard: \"გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.\",\n\tequalTo: \"გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.\",\n\tmaxlength: $.validator.format( \"გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი.\" ),\n\tminlength: $.validator.format( \"შეიყვანეთ მინიმუმ {0} სიმბოლო.\" ),\n\trangelength: $.validator.format( \"გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები.\" ),\n\trange: $.validator.format( \"შეიყვანეთ {0} -სა {1} -ს შორის.\" ),\n\tmax: $.validator.format( \"გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს.\" ),\n\tmin: $.validator.format( \"გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს.\" )\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_gl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: GL (Galician; Galego)\n */\n(function($) {\n\t$.extend($.validator.messages, {\n\t\trequired: \"Este campo é obrigatorio.\",\n\t\tremote: \"Por favor, cubre este campo.\",\n\t\temail: \"Por favor, escribe unha dirección de correo válida.\",\n\t\turl: \"Por favor, escribe unha URL válida.\",\n\t\tdate: \"Por favor, escribe unha data válida.\",\n\t\tdateISO: \"Por favor, escribe unha data (ISO) válida.\",\n\t\tnumber: \"Por favor, escribe un número válido.\",\n\t\tdigits: \"Por favor, escribe só díxitos.\",\n\t\tcreditcard: \"Por favor, escribe un número de tarxeta válido.\",\n\t\tequalTo: \"Por favor, escribe o mesmo valor de novo.\",\n\t\textension: \"Por favor, escribe un valor cunha extensión aceptada.\",\n\t\tmaxlength: $.validator.format(\"Por favor, non escribas máis de {0} caracteres.\"),\n\t\tminlength: $.validator.format(\"Por favor, non escribas menos de {0} caracteres.\"),\n\t\trangelength: $.validator.format(\"Por favor, escribe un valor entre {0} e {1} caracteres.\"),\n\t\trange: $.validator.format(\"Por favor, escribe un valor entre {0} e {1}.\"),\n\t\tmax: $.validator.format(\"Por favor, escribe un valor menor ou igual a {0}.\"),\n\t\tmin: $.validator.format(\"Por favor, escribe un valor maior ou igual a {0}.\"),\n\t\tnifES: \"Por favor, escribe un NIF válido.\",\n\t\tnieES: \"Por favor, escribe un NIE válido.\",\n\t\tcifES: \"Por favor, escribe un CIF válido.\"\n\t});\n}(jQuery));\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_he.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HE (Hebrew; עברית)\n */\n$.extend($.validator.messages, {\n\trequired: \"השדה הזה הינו שדה חובה\",\n\tremote: \"נא לתקן שדה זה\",\n\temail: \"נא למלא כתובת דוא\\\"ל חוקית\",\n\turl: \"נא למלא כתובת אינטרנט חוקית\",\n\tdate: \"נא למלא תאריך חוקי\",\n\tdateISO: \"נא למלא תאריך חוקי (ISO)\",\n\tnumber: \"נא למלא מספר\",\n\tdigits: \"נא למלא רק מספרים\",\n\tcreditcard: \"נא למלא מספר כרטיס אשראי חוקי\",\n\tequalTo: \"נא למלא את אותו ערך שוב\",\n\textension: \"נא למלא ערך עם סיומת חוקית\",\n\tmaxlength: $.validator.format(\".נא לא למלא יותר מ- {0} תווים\"),\n\tminlength: $.validator.format(\"נא למלא לפחות {0} תווים\"),\n\trangelength: $.validator.format(\"נא למלא ערך בין {0} ל- {1} תווים\"),\n\trange: $.validator.format(\"נא למלא ערך בין {0} ל- {1}\"),\n\tmax: $.validator.format(\"נא למלא ערך קטן או שווה ל- {0}\"),\n\tmin: $.validator.format(\"נא למלא ערך גדול או שווה ל- {0}\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_hr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HR (Croatia; hrvatski jezik)\n */\n$.extend($.validator.messages, {\n\trequired: \"Ovo polje je obavezno.\",\n\tremote: \"Ovo polje treba popraviti.\",\n\temail: \"Unesite ispravnu e-mail adresu.\",\n\turl: \"Unesite ispravan URL.\",\n\tdate: \"Unesite ispravan datum.\",\n\tdateISO: \"Unesite ispravan datum (ISO).\",\n\tnumber: \"Unesite ispravan broj.\",\n\tdigits: \"Unesite samo brojeve.\",\n\tcreditcard: \"Unesite ispravan broj kreditne kartice.\",\n\tequalTo: \"Unesite ponovo istu vrijednost.\",\n\textension: \"Unesite vrijednost sa ispravnom ekstenzijom.\",\n\tmaxlength: $.validator.format(\"Maksimalni broj znakova je {0} .\"),\n\tminlength: $.validator.format(\"Minimalni broj znakova je {0} .\"),\n\trangelength: $.validator.format(\"Unesite vrijednost između {0} i {1} znakova.\"),\n\trange: $.validator.format(\"Unesite vrijednost između {0} i {1}.\"),\n\tmax: $.validator.format(\"Unesite vrijednost manju ili jednaku {0}.\"),\n\tmin: $.validator.format(\"Unesite vrijednost veću ili jednaku {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_hu.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HU (Hungarian; Magyar)\n */\n$.extend($.validator.messages, {\n\trequired: \"Kötelező megadni.\",\n\tmaxlength: $.validator.format(\"Legfeljebb {0} karakter hosszú legyen.\"),\n\tminlength: $.validator.format(\"Legalább {0} karakter hosszú legyen.\"),\n\trangelength: $.validator.format(\"Legalább {0} és legfeljebb {1} karakter hosszú legyen.\"),\n\temail: \"Érvényes e-mail címnek kell lennie.\",\n\turl: \"Érvényes URL-nek kell lennie.\",\n\tdate: \"Dátumnak kell lennie.\",\n\tnumber: \"Számnak kell lennie.\",\n\tdigits: \"Csak számjegyek lehetnek.\",\n\tequalTo: \"Meg kell egyeznie a két értéknek.\",\n\trange: $.validator.format(\"{0} és {1} közé kell esnie.\"),\n\tmax: $.validator.format(\"Nem lehet nagyobb, mint {0}.\"),\n\tmin: $.validator.format(\"Nem lehet kisebb, mint {0}.\"),\n\tcreditcard: \"Érvényes hitelkártyaszámnak kell lennie.\",\n\tremote: \"Kérem javítsa ki ezt a mezőt.\",\n\tdateISO: \"Kérem írjon be egy érvényes dátumot (ISO).\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_hy_AM.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HY_AM (Armenian; հայերեն լեզու)\n */\n$.extend($.validator.messages, {\n\trequired: \"Պարտադիր լրացման դաշտ\",\n\tremote: \"Ներմուծեք ճիշտ արժեքը\",\n\temail: \"Ներմուծեք վավեր էլեկտրոնային փոստի հասցե\",\n\turl: \"Ներմուծեք վավեր URL\",\n\tdate: \"Ներմուծեք վավեր ամսաթիվ\",\n\tdateISO: \"Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։\",\n\tnumber: \"Ներմուծեք թիվ\",\n\tdigits: \"Ներմուծեք միայն թվեր\",\n\tcreditcard: \"Ներմուծեք ճիշտ բանկային քարտի համար\",\n\tequalTo: \"Ներմուծեք միևնուն արժեքը ևս մեկ անգամ\",\n\textension: \"Ընտրեք ճիշտ ընդլանումով ֆայլ\",\n\tmaxlength: $.validator.format(\"Ներմուծեք ոչ ավել քան {0} նիշ\"),\n\tminlength: $.validator.format(\"Ներմուծեք ոչ պակաս քան {0} նիշ\"),\n\trangelength: $.validator.format(\"Ներմուծեք {0}֊ից {1} երկարությամբ արժեք\"),\n\trange: $.validator.format(\"Ներմուծեք թիվ {0}֊ից {1} միջակայքում\"),\n\tmax: $.validator.format(\"Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին\"),\n\tmin: $.validator.format(\"Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_id.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ID (Indonesia; Indonesian)\n */\n$.extend($.validator.messages, {\n\trequired: \"Kolom ini diperlukan.\",\n\tremote: \"Harap benarkan kolom ini.\",\n\temail: \"Silakan masukkan format email yang benar.\",\n\turl: \"Silakan masukkan format URL yang benar.\",\n\tdate: \"Silakan masukkan format tanggal yang benar.\",\n\tdateISO: \"Silakan masukkan format tanggal(ISO) yang benar.\",\n\tnumber: \"Silakan masukkan angka yang benar.\",\n\tdigits: \"Harap masukan angka saja.\",\n\tcreditcard: \"Harap masukkan format kartu kredit yang benar.\",\n\tequalTo: \"Harap masukkan nilai yg sama dengan sebelumnya.\",\n\tmaxlength: $.validator.format(\"Input dibatasi hanya {0} karakter.\"),\n\tminlength: $.validator.format(\"Input tidak kurang dari {0} karakter.\"),\n\trangelength: $.validator.format(\"Panjang karakter yg diizinkan antara {0} dan {1} karakter.\"),\n\trange: $.validator.format(\"Harap masukkan nilai antara {0} dan {1}.\"),\n\tmax: $.validator.format(\"Harap masukkan nilai lebih kecil atau sama dengan {0}.\"),\n\tmin: $.validator.format(\"Harap masukkan nilai lebih besar atau sama dengan {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_is.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: IS (Icelandic; íslenska)\n */\n$.extend($.validator.messages, {\n\trequired: \"Þessi reitur er nauðsynlegur.\",\n\tremote: \"Lagaðu þennan reit.\",\n\tmaxlength: $.validator.format(\"Sláðu inn mest {0} stafi.\"),\n\tminlength: $.validator.format(\"Sláðu inn minnst {0} stafi.\"),\n\trangelength: $.validator.format(\"Sláðu inn minnst {0} og mest {1} stafi.\"),\n\temail: \"Sláðu inn gilt netfang.\",\n\turl: \"Sláðu inn gilda vefslóð.\",\n\tdate: \"Sláðu inn gilda dagsetningu.\",\n\tnumber: \"Sláðu inn tölu.\",\n\tdigits: \"Sláðu inn tölustafi eingöngu.\",\n\tequalTo: \"Sláðu sama gildi inn aftur.\",\n\trange: $.validator.format(\"Sláðu inn gildi milli {0} og {1}.\"),\n\tmax: $.validator.format(\"Sláðu inn gildi sem er minna en eða jafnt og {0}.\"),\n\tmin: $.validator.format(\"Sláðu inn gildi sem er stærra en eða jafnt og {0}.\"),\n\tcreditcard: \"Sláðu inn gilt greiðslukortanúmer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_it.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: IT (Italian; Italiano)\n */\n$.extend($.validator.messages, {\n\trequired: \"Campo obbligatorio\",\n\tremote: \"Controlla questo campo\",\n\temail: \"Inserisci un indirizzo email valido\",\n\turl: \"Inserisci un indirizzo web valido\",\n\tdate: \"Inserisci una data valida\",\n\tdateISO: \"Inserisci una data valida (ISO)\",\n\tnumber: \"Inserisci un numero valido\",\n\tdigits: \"Inserisci solo numeri\",\n\tcreditcard: \"Inserisci un numero di carta di credito valido\",\n\tequalTo: \"Il valore non corrisponde\",\n\textension: \"Inserisci un valore con un&apos;estensione valida\",\n\tmaxlength: $.validator.format(\"Non inserire pi&ugrave; di {0} caratteri\"),\n\tminlength: $.validator.format(\"Inserisci almeno {0} caratteri\"),\n\trangelength: $.validator.format(\"Inserisci un valore compreso tra {0} e {1} caratteri\"),\n\trange: $.validator.format(\"Inserisci un valore compreso tra {0} e {1}\"),\n\tmax: $.validator.format(\"Inserisci un valore minore o uguale a {0}\"),\n\tmin: $.validator.format(\"Inserisci un valore maggiore o uguale a {0}\"),\n\tnifES: \"Inserisci un NIF valido\",\n\tnieES: \"Inserisci un NIE valido\",\n\tcifES: \"Inserisci un CIF valido\",\n\tcurrency: \"Inserisci una valuta valida\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ja.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: JA (Japanese; 日本語)\n */\n$.extend($.validator.messages, {\n\trequired: \"このフィールドは必須です。\",\n\tremote: \"このフィールドを修正してください。\",\n\temail: \"有効なEメールアドレスを入力してください。\",\n\turl: \"有効なURLを入力してください。\",\n\tdate: \"有効な日付を入力してください。\",\n\tdateISO: \"有効な日付（ISO）を入力してください。\",\n\tnumber: \"有効な数字を入力してください。\",\n\tdigits: \"数字のみを入力してください。\",\n\tcreditcard: \"有効なクレジットカード番号を入力してください。\",\n\tequalTo: \"同じ値をもう一度入力してください。\",\n\textension: \"有効な拡張子を含む値を入力してください。\",\n\tmaxlength: $.validator.format(\"{0} 文字以内で入力してください。\"),\n\tminlength: $.validator.format(\"{0} 文字以上で入力してください。\"),\n\trangelength: $.validator.format(\"{0} 文字から {1} 文字までの値を入力してください。\"),\n\trange: $.validator.format(\"{0} から {1} までの値を入力してください。\"),\n\tmax: $.validator.format(\"{0} 以下の値を入力してください。\"),\n\tmin: $.validator.format(\"{0} 以上の値を入力してください。\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ka.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KA (Georgian; ქართული)\n */\n$.extend($.validator.messages, {\n\trequired: \"ამ ველის შევსება აუცილებელია.\",\n\tremote: \"გთხოვთ მიუთითოთ სწორი მნიშვნელობა.\",\n\temail: \"გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.\",\n\turl: \"გთხოვთ მიუთითოთ კორექტული URL.\",\n\tdate: \"გთხოვთ მიუთითოთ კორექტული თარიღი.\",\n\tdateISO: \"გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.\",\n\tnumber: \"გთხოვთ მიუთითოთ ციფრი.\",\n\tdigits: \"გთხოვთ მიუთითოთ მხოლოდ ციფრები.\",\n\tcreditcard: \"გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.\",\n\tequalTo: \"გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.\",\n\textension: \"გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.\",\n\tmaxlength: $.validator.format(\"დასაშვებია არაუმეტეს {0} სიმბოლო.\"),\n\tminlength: $.validator.format(\"აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო.\"),\n\trangelength: $.validator.format(\"ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე.\"),\n\trange: $.validator.format(\"გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე.\"),\n\tmax: $.validator.format(\"გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს.\"),\n\tmin: $.validator.format(\"გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_kk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KK (Kazakh; қазақ тілі)\n */\n$.extend($.validator.messages, {\n\trequired: \"Бұл өрісті міндетті түрде толтырыңыз.\",\n\tremote: \"Дұрыс мағына енгізуіңізді сұраймыз.\",\n\temail: \"Нақты электронды поштаңызды енгізуіңізді сұраймыз.\",\n\turl: \"Нақты URL-ды енгізуіңізді сұраймыз.\",\n\tdate: \"Нақты URL-ды енгізуіңізді сұраймыз.\",\n\tdateISO: \"Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.\",\n\tnumber: \"Күнді енгізуіңізді сұраймыз.\",\n\tdigits: \"Тек қана сандарды енгізуіңізді сұраймыз.\",\n\tcreditcard: \"Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.\",\n\tequalTo: \"Осы мәнді қайта енгізуіңізді сұраймыз.\",\n\textension: \"Файлдың кеңейтуін дұрыс таңдаңыз.\",\n\tmaxlength: $.validator.format(\"Ұзындығы {0} символдан көр болмасын.\"),\n\tminlength: $.validator.format(\"Ұзындығы {0} символдан аз болмасын.\"),\n\trangelength: $.validator.format(\"Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз.\"),\n\trange: $.validator.format(\"Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз.\"),\n\tmax: $.validator.format(\"{0} аз немесе тең санын енгізуіңіді сұраймыз.\"),\n\tmin: $.validator.format(\"{0} көп немесе тең санын енгізуіңізді сұраймыз.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ko.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KO (Korean; 한국어)\n */\n$.extend($.validator.messages, {\n\trequired: \"필수 항목입니다.\",\n\tremote: \"항목을 수정하세요.\",\n\temail: \"유효하지 않은 E-Mail주소입니다.\",\n\turl: \"유효하지 않은 URL입니다.\",\n\tdate: \"올바른 날짜를 입력하세요.\",\n\tdateISO: \"올바른 날짜(ISO)를 입력하세요.\",\n\tnumber: \"유효한 숫자가 아닙니다.\",\n\tdigits: \"숫자만 입력 가능합니다.\",\n\tcreditcard: \"신용카드 번호가 바르지 않습니다.\",\n\tequalTo: \"같은 값을 다시 입력하세요.\",\n\textension: \"올바른 확장자가 아닙니다.\",\n\tmaxlength: $.validator.format(\"{0}자를 넘을 수 없습니다. \"),\n\tminlength: $.validator.format(\"{0}자 이상 입력하세요.\"),\n\trangelength: $.validator.format(\"문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요.\"),\n\trange: $.validator.format(\"{0} 에서 {1} 사이의 값을 입력하세요.\"),\n\tmax: $.validator.format(\"{0} 이하의 값을 입력하세요.\"),\n\tmin: $.validator.format(\"{0} 이상의 값을 입력하세요.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_lt.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: LT (Lithuanian; lietuvių kalba)\n */\n$.extend($.validator.messages, {\n\trequired: \"Šis laukas yra privalomas.\",\n\tremote: \"Prašau pataisyti šį lauką.\",\n\temail: \"Prašau įvesti teisingą elektroninio pašto adresą.\",\n\turl: \"Prašau įvesti teisingą URL.\",\n\tdate: \"Prašau įvesti teisingą datą.\",\n\tdateISO: \"Prašau įvesti teisingą datą (ISO).\",\n\tnumber: \"Prašau įvesti teisingą skaičių.\",\n\tdigits: \"Prašau naudoti tik skaitmenis.\",\n\tcreditcard: \"Prašau įvesti teisingą kreditinės kortelės numerį.\",\n\tequalTo: \"Prašau įvestį tą pačią reikšmę dar kartą.\",\n\textension: \"Prašau įvesti reikšmę su teisingu plėtiniu.\",\n\tmaxlength: $.validator.format(\"Prašau įvesti ne daugiau kaip {0} simbolių.\"),\n\tminlength: $.validator.format(\"Prašau įvesti bent {0} simbolius.\"),\n\trangelength: $.validator.format(\"Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių.\"),\n\trange: $.validator.format(\"Prašau įvesti reikšmę intervale nuo {0} iki {1}.\"),\n\tmax: $.validator.format(\"Prašau įvesti reikšmę mažesnę arba lygią {0}.\"),\n\tmin: $.validator.format(\"Prašau įvesti reikšmę didesnę arba lygią {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_lv.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: LV (Latvian; latviešu valoda)\n */\n$.extend($.validator.messages, {\n\trequired: \"Šis lauks ir obligāts.\",\n\tremote: \"Lūdzu, pārbaudiet šo lauku.\",\n\temail: \"Lūdzu, ievadiet derīgu e-pasta adresi.\",\n\turl: \"Lūdzu, ievadiet derīgu URL adresi.\",\n\tdate: \"Lūdzu, ievadiet derīgu datumu.\",\n\tdateISO: \"Lūdzu, ievadiet derīgu datumu (ISO).\",\n\tnumber: \"Lūdzu, ievadiet derīgu numuru.\",\n\tdigits: \"Lūdzu, ievadiet tikai ciparus.\",\n\tcreditcard: \"Lūdzu, ievadiet derīgu kredītkartes numuru.\",\n\tequalTo: \"Lūdzu, ievadiet to pašu vēlreiz.\",\n\textension: \"Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.\",\n\tmaxlength: $.validator.format(\"Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes.\"),\n\tminlength: $.validator.format(\"Lūdzu, ievadiet vismaz {0} rakstzīmes.\"),\n\trangelength: $.validator.format(\"Lūdzu ievadiet {0} līdz {1} rakstzīmes.\"),\n\trange: $.validator.format(\"Lūdzu, ievadiet skaitli no {0} līdz {1}.\"),\n\tmax: $.validator.format(\"Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}.\"),\n\tmin: $.validator.format(\"Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_my.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: MY (Malay; Melayu)\n */\n$.extend($.validator.messages, {\n\trequired: \"Medan ini diperlukan.\",\n\tremote: \"Sila betulkan medan ini.\",\n\temail: \"Sila masukkan alamat emel yang betul.\",\n\turl: \"Sila masukkan URL yang betul.\",\n\tdate: \"Sila masukkan tarikh yang betul.\",\n\tdateISO: \"Sila masukkan tarikh(ISO) yang betul.\",\n\tnumber: \"Sila masukkan nombor yang betul.\",\n\tdigits: \"Sila masukkan nilai digit sahaja.\",\n\tcreditcard: \"Sila masukkan nombor kredit kad yang betul.\",\n\tequalTo: \"Sila masukkan nilai yang sama semula.\",\n\textension: \"Sila masukkan nilai yang telah diterima.\",\n\tmaxlength: $.validator.format(\"Sila masukkan nilai tidak lebih dari {0} aksara.\"),\n\tminlength: $.validator.format(\"Sila masukkan nilai sekurang-kurangnya {0} aksara.\"),\n\trangelength: $.validator.format(\"Sila masukkan panjang nilai antara {0} dan {1} aksara.\"),\n\trange: $.validator.format(\"Sila masukkan nilai antara {0} dan {1} aksara.\"),\n\tmax: $.validator.format(\"Sila masukkan nilai yang kurang atau sama dengan {0}.\"),\n\tmin: $.validator.format(\"Sila masukkan nilai yang lebih atau sama dengan {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_nl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: NL (Dutch; Nederlands, Vlaams)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dit is een verplicht veld.\",\n\tremote: \"Controleer dit veld.\",\n\temail: \"Vul hier een geldig e-mailadres in.\",\n\turl: \"Vul hier een geldige URL in.\",\n\tdate: \"Vul hier een geldige datum in.\",\n\tdateISO: \"Vul hier een geldige datum in (ISO-formaat).\",\n\tnumber: \"Vul hier een geldig getal in.\",\n\tdigits: \"Vul hier alleen getallen in.\",\n\tcreditcard: \"Vul hier een geldig creditcardnummer in.\",\n\tequalTo: \"Vul hier dezelfde waarde in.\",\n\textension: \"Vul hier een waarde in met een geldige extensie.\",\n\tmaxlength: $.validator.format(\"Vul hier maximaal {0} tekens in.\"),\n\tminlength: $.validator.format(\"Vul hier minimaal {0} tekens in.\"),\n\trangelength: $.validator.format(\"Vul hier een waarde in van minimaal {0} en maximaal {1} tekens.\"),\n\trange: $.validator.format(\"Vul hier een waarde in van minimaal {0} en maximaal {1}.\"),\n\tmax: $.validator.format(\"Vul hier een waarde in kleiner dan of gelijk aan {0}.\"),\n\tmin: $.validator.format(\"Vul hier een waarde in groter dan of gelijk aan {0}.\"),\n\n\t// for validations in additional-methods.js\n\tiban: \"Vul hier een geldig IBAN in.\",\n\tdateNL: \"Vul hier een geldige datum in.\",\n\tphoneNL: \"Vul hier een geldig Nederlands telefoonnummer in.\",\n\tmobileNL: \"Vul hier een geldig Nederlands mobiel telefoonnummer in.\",\n\tpostalcodeNL: \"Vul hier een geldige postcode in.\",\n\tbankaccountNL: \"Vul hier een geldig bankrekeningnummer in.\",\n\tgiroaccountNL: \"Vul hier een geldig gironummer in.\",\n\tbankorgiroaccountNL: \"Vul hier een geldig bank- of gironummer in.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_no.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: NO (Norwegian; Norsk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dette feltet er obligatorisk.\",\n\tmaxlength: $.validator.format(\"Maksimalt {0} tegn.\"),\n\tminlength: $.validator.format(\"Minimum {0} tegn.\"),\n\trangelength: $.validator.format(\"Angi minimum {0} og maksimum {1} tegn.\"),\n\temail: \"Oppgi en gyldig epostadresse.\",\n\turl: \"Angi en gyldig URL.\",\n\tdate: \"Angi en gyldig dato.\",\n\tdateISO: \"Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).\",\n\tdateSE: \"Angi en gyldig dato.\",\n\tnumber: \"Angi et gyldig nummer.\",\n\tnumberSE: \"Angi et gyldig nummer.\",\n\tdigits: \"Skriv kun tall.\",\n\tequalTo: \"Skriv samme verdi igjen.\",\n\trange: $.validator.format(\"Angi en verdi mellom {0} og {1}.\"),\n\tmax: $.validator.format(\"Angi en verdi som er mindre eller lik {0}.\"),\n\tmin: $.validator.format(\"Angi en verdi som er st&oslash;rre eller lik {0}.\"),\n\tcreditcard: \"Angi et gyldig kredittkortnummer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_pl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PL (Polish; język polski, polszczyzna)\n */\n$.extend($.validator.messages, {\n\trequired: \"To pole jest wymagane.\",\n\tremote: \"Proszę o wypełnienie tego pola.\",\n\temail: \"Proszę o podanie prawidłowego adresu email.\",\n\turl: \"Proszę o podanie prawidłowego URL.\",\n\tdate: \"Proszę o podanie prawidłowej daty.\",\n\tdateISO: \"Proszę o podanie prawidłowej daty (ISO).\",\n\tnumber: \"Proszę o podanie prawidłowej liczby.\",\n\tdigits: \"Proszę o podanie samych cyfr.\",\n\tcreditcard: \"Proszę o podanie prawidłowej karty kredytowej.\",\n\tequalTo: \"Proszę o podanie tej samej wartości ponownie.\",\n\textension: \"Proszę o podanie wartości z prawidłowym rozszerzeniem.\",\n\tmaxlength: $.validator.format(\"Proszę o podanie nie więcej niż {0} znaków.\"),\n\tminlength: $.validator.format(\"Proszę o podanie przynajmniej {0} znaków.\"),\n\trangelength: $.validator.format(\"Proszę o podanie wartości o długości od {0} do {1} znaków.\"),\n\trange: $.validator.format(\"Proszę o podanie wartości z przedziału od {0} do {1}.\"),\n\tmax: $.validator.format(\"Proszę o podanie wartości mniejszej bądź równej {0}.\"),\n\tmin: $.validator.format(\"Proszę o podanie wartości większej bądź równej {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_pt_BR.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PT (Portuguese; português)\n * Region: BR (Brazil)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo &eacute; requerido.\",\n\tremote: \"Por favor, corrija este campo.\",\n\temail: \"Por favor, forne&ccedil;a um endere&ccedil;o de email v&aacute;lido.\",\n\turl: \"Por favor, forne&ccedil;a uma URL v&aacute;lida.\",\n\tdate: \"Por favor, forne&ccedil;a uma data v&aacute;lida.\",\n\tdateISO: \"Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).\",\n\tnumber: \"Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.\",\n\tdigits: \"Por favor, forne&ccedil;a somente d&iacute;gitos.\",\n\tcreditcard: \"Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.\",\n\tequalTo: \"Por favor, forne&ccedil;a o mesmo valor novamente.\",\n\textension: \"Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.\",\n\tmaxlength: $.validator.format(\"Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, forne&ccedil;a ao menos {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento.\"),\n\trange: $.validator.format(\"Por favor, forne&ccedil;a um valor entre {0} e {1}.\"),\n\tmax: $.validator.format(\"Por favor, forne&ccedil;a um valor menor ou igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, forne&ccedil;a um valor maior ou igual a {0}.\"),\n\tnifES: \"Por favor, forne&ccedil;a um NIF v&aacute;lido.\",\n\tnieES: \"Por favor, forne&ccedil;a um NIE v&aacute;lido.\",\n\tcifEE: \"Por favor, forne&ccedil;a um CIF v&aacute;lido.\",\n\tpostalcodeBR: \"Por favor, forne&ccedil;a um CEP v&aacute;lido.\",\n\tcpfBR: \"Por favor, forne&ccedil;a um CPF v&aacute;lido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_pt_PT.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PT (Portuguese; português)\n * Region: PT (Portugal)\n */\n$.extend($.validator.messages, {\n\trequired: \"Campo de preenchimento obrigat&oacute;rio.\",\n\tremote: \"Por favor, corrija este campo.\",\n\temail: \"Por favor, introduza um endere&ccedil;o eletr&oacute;nico v&aacute;lido.\",\n\turl: \"Por favor, introduza um URL v&aacute;lido.\",\n\tdate: \"Por favor, introduza uma data v&aacute;lida.\",\n\tdateISO: \"Por favor, introduza uma data v&aacute;lida (ISO).\",\n\tnumber: \"Por favor, introduza um n&uacute;mero v&aacute;lido.\",\n\tdigits: \"Por favor, introduza apenas d&iacute;gitos.\",\n\tcreditcard: \"Por favor, introduza um n&uacute;mero de cart&atilde;o de cr&eacute;dito v&aacute;lido.\",\n\tequalTo: \"Por favor, introduza de novo o mesmo valor.\",\n\textension: \"Por favor, introduza um ficheiro com uma extens&atilde;o v&aacute;lida.\",\n\tmaxlength: $.validator.format(\"Por favor, n&atilde;o introduza mais do que {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, introduza pelo menos {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, introduza entre {0} e {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, introduza um valor entre {0} e {1}.\"),\n\tmax: $.validator.format(\"Por favor, introduza um valor menor ou igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, introduza um valor maior ou igual a {0}.\"),\n\tnifES: \"Por favor, introduza um NIF v&aacute;lido.\",\n\tnieES: \"Por favor, introduza um NIE v&aacute;lido.\",\n\tcifES: \"Por favor, introduza um CIF v&aacute;lido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ro.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: RO (Romanian, limba română)\n */\n$.extend($.validator.messages, {\n\trequired: \"Acest câmp este obligatoriu.\",\n\tremote: \"Te rugăm să completezi acest câmp.\",\n\temail: \"Te rugăm să introduci o adresă de email validă\",\n\turl: \"Te rugăm sa introduci o adresă URL validă.\",\n\tdate: \"Te rugăm să introduci o dată corectă.\",\n\tdateISO: \"Te rugăm să introduci o dată (ISO) corectă.\",\n\tnumber: \"Te rugăm să introduci un număr întreg valid.\",\n\tdigits: \"Te rugăm să introduci doar cifre.\",\n\tcreditcard: \"Te rugăm să introduci un numar de carte de credit valid.\",\n\tequalTo: \"Te rugăm să reintroduci valoarea.\",\n\textension: \"Te rugăm să introduci o valoare cu o extensie validă.\",\n\tmaxlength: $.validator.format(\"Te rugăm să nu introduci mai mult de {0} caractere.\"),\n\tminlength: $.validator.format(\"Te rugăm să introduci cel puțin {0} caractere.\"),\n\trangelength: $.validator.format(\"Te rugăm să introduci o valoare între {0} și {1} caractere.\"),\n\trange: $.validator.format(\"Te rugăm să introduci o valoare între {0} și {1}.\"),\n\tmax: $.validator.format(\"Te rugăm să introduci o valoare egal sau mai mică decât {0}.\"),\n\tmin: $.validator.format(\"Te rugăm să introduci o valoare egal sau mai mare decât {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_ru.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: RU (Russian; русский язык)\n */\n$.extend($.validator.messages, {\n\trequired: \"Это поле необходимо заполнить.\",\n\tremote: \"Пожалуйста, введите правильное значение.\",\n\temail: \"Пожалуйста, введите корректный адрес электронной почты.\",\n\turl: \"Пожалуйста, введите корректный URL.\",\n\tdate: \"Пожалуйста, введите корректную дату.\",\n\tdateISO: \"Пожалуйста, введите корректную дату в формате ISO.\",\n\tnumber: \"Пожалуйста, введите число.\",\n\tdigits: \"Пожалуйста, вводите только цифры.\",\n\tcreditcard: \"Пожалуйста, введите правильный номер кредитной карты.\",\n\tequalTo: \"Пожалуйста, введите такое же значение ещё раз.\",\n\textension: \"Пожалуйста, выберите файл с правильным расширением.\",\n\tmaxlength: $.validator.format(\"Пожалуйста, введите не больше {0} символов.\"),\n\tminlength: $.validator.format(\"Пожалуйста, введите не меньше {0} символов.\"),\n\trangelength: $.validator.format(\"Пожалуйста, введите значение длиной от {0} до {1} символов.\"),\n\trange: $.validator.format(\"Пожалуйста, введите число от {0} до {1}.\"),\n\tmax: $.validator.format(\"Пожалуйста, введите число, меньшее или равное {0}.\"),\n\tmin: $.validator.format(\"Пожалуйста, введите число, большее или равное {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_si.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SI (Slovenian)\n */\n$.extend($.validator.messages, {\n\trequired: \"To polje je obvezno.\",\n\tremote: \"Vpis v tem polju ni v pravi obliki.\",\n\temail: \"Prosimo, vnesite pravi email naslov.\",\n\turl: \"Prosimo, vnesite pravi URL.\",\n\tdate: \"Prosimo, vnesite pravi datum.\",\n\tdateISO: \"Prosimo, vnesite pravi datum (ISO).\",\n\tnumber: \"Prosimo, vnesite pravo številko.\",\n\tdigits: \"Prosimo, vnesite samo številke.\",\n\tcreditcard: \"Prosimo, vnesite pravo številko kreditne kartice.\",\n\tequalTo: \"Prosimo, ponovno vnesite enako vsebino.\",\n\textension: \"Prosimo, vnesite vsebino z pravo končnico.\",\n\tmaxlength: $.validator.format(\"Prosimo, da ne vnašate več kot {0} znakov.\"),\n\tminlength: $.validator.format(\"Prosimo, vnesite vsaj {0} znakov.\"),\n\trangelength: $.validator.format(\"Prosimo, vnesite od {0} do {1} znakov.\"),\n\trange: $.validator.format(\"Prosimo, vnesite vrednost med {0} in {1}.\"),\n\tmax: $.validator.format(\"Prosimo, vnesite vrednost manjšo ali enako {0}.\"),\n\tmin: $.validator.format(\"Prosimo, vnesite vrednost večjo ali enako {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_sk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SK (Slovak; slovenčina, slovenský jazyk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Povinné zadať.\",\n\tmaxlength: $.validator.format(\"Maximálne {0} znakov.\"),\n\tminlength: $.validator.format(\"Minimálne {0} znakov.\"),\n\trangelength: $.validator.format(\"Minimálne {0} a Maximálne {1} znakov.\"),\n\temail: \"E-mailová adresa musí byť platná.\",\n\turl: \"URL musí byť platný.\",\n\tdate: \"Musí byť dátum.\",\n\tnumber: \"Musí byť číslo.\",\n\tdigits: \"Môže obsahovať iba číslice.\",\n\tequalTo: \"Dva hodnoty sa musia rovnať.\",\n\trange: $.validator.format(\"Musí byť medzi {0} a {1}.\"),\n\tmax: $.validator.format(\"Nemôže byť viac ako{0}.\"),\n\tmin: $.validator.format(\"Nemôže byť menej ako{0}.\"),\n\tcreditcard: \"Číslo platobnej karty musí byť platné.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_sl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Language: SL (Slovenian; slovenski jezik)\n */\n$.extend($.validator.messages, {\n\trequired: \"To polje je obvezno.\",\n\tremote: \"Prosimo popravite to polje.\",\n\temail: \"Prosimo vnesite veljaven email naslov.\",\n\turl: \"Prosimo vnesite veljaven URL naslov.\",\n\tdate: \"Prosimo vnesite veljaven datum.\",\n\tdateISO: \"Prosimo vnesite veljaven ISO datum.\",\n\tnumber: \"Prosimo vnesite veljavno število.\",\n\tdigits: \"Prosimo vnesite samo števila.\",\n\tcreditcard: \"Prosimo vnesite veljavno številko kreditne kartice.\",\n\tequalTo: \"Prosimo ponovno vnesite vrednost.\",\n\textension: \"Prosimo vnesite vrednost z veljavno končnico.\",\n\tmaxlength: $.validator.format(\"Prosimo vnesite največ {0} znakov.\"),\n\tminlength: $.validator.format(\"Prosimo vnesite najmanj {0} znakov.\"),\n\trangelength: $.validator.format(\"Prosimo vnesite najmanj {0} in največ {1} znakov.\"),\n\trange: $.validator.format(\"Prosimo vnesite vrednost med {0} in {1}.\"),\n\tmax: $.validator.format(\"Prosimo vnesite vrednost manjše ali enako {0}.\"),\n\tmin: $.validator.format(\"Prosimo vnesite vrednost večje ali enako {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_sr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SR (Serbian; српски језик)\n */\n$.extend($.validator.messages, {\n\trequired: \"Поље је обавезно.\",\n\tremote: \"Средите ово поље.\",\n\temail: \"Унесите исправну и-мејл адресу.\",\n\turl: \"Унесите исправан URL.\",\n\tdate: \"Унесите исправан датум.\",\n\tdateISO: \"Унесите исправан датум (ISO).\",\n\tnumber: \"Унесите исправан број.\",\n\tdigits: \"Унесите само цифе.\",\n\tcreditcard: \"Унесите исправан број кредитне картице.\",\n\tequalTo: \"Унесите исту вредност поново.\",\n\textension: \"Унесите вредност са одговарајућом екстензијом.\",\n\tmaxlength: $.validator.format(\"Унесите мање од {0} карактера.\"),\n\tminlength: $.validator.format(\"Унесите барем {0} карактера.\"),\n\trangelength: $.validator.format(\"Унесите вредност дугачку између {0} и {1} карактера.\"),\n\trange: $.validator.format(\"Унесите вредност између {0} и {1}.\"),\n\tmax: $.validator.format(\"Унесите вредност мању или једнаку {0}.\"),\n\tmin: $.validator.format(\"Унесите вредност већу или једнаку {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_sr_lat.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica)\n */\n$.extend($.validator.messages, {\n\trequired: \"Polje je obavezno.\",\n\tremote: \"Sredite ovo polje.\",\n\temail: \"Unesite ispravnu e-mail adresu\",\n\turl: \"Unesite ispravan URL.\",\n\tdate: \"Unesite ispravan datum.\",\n\tdateISO: \"Unesite ispravan datum (ISO).\",\n\tnumber: \"Unesite ispravan broj.\",\n\tdigits: \"Unesite samo cifre.\",\n\tcreditcard: \"Unesite ispravan broj kreditne kartice.\",\n\tequalTo: \"Unesite istu vrednost ponovo.\",\n\textension: \"Unesite vrednost sa odgovarajućom ekstenzijom.\",\n\tmaxlength: $.validator.format(\"Unesite manje od {0} karaktera.\"),\n\tminlength: $.validator.format(\"Unesite barem {0} karaktera.\"),\n\trangelength: $.validator.format(\"Unesite vrednost dugačku između {0} i {1} karaktera.\"),\n\trange: $.validator.format(\"Unesite vrednost između {0} i {1}.\"),\n\tmax: $.validator.format(\"Unesite vrednost manju ili jednaku {0}.\"),\n\tmin: $.validator.format(\"Unesite vrednost veću ili jednaku {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_sv.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SV (Swedish; Svenska)\n */\n$.extend($.validator.messages, {\n\trequired: \"Detta f&auml;lt &auml;r obligatoriskt.\",\n\tmaxlength: $.validator.format(\"Du f&aring;r ange h&ouml;gst {0} tecken.\"),\n\tminlength: $.validator.format(\"Du m&aring;ste ange minst {0} tecken.\"),\n\trangelength: $.validator.format(\"Ange minst {0} och max {1} tecken.\"),\n\temail: \"Ange en korrekt e-postadress.\",\n\turl: \"Ange en korrekt URL.\",\n\tdate: \"Ange ett korrekt datum.\",\n\tdateISO: \"Ange ett korrekt datum (&Aring;&Aring;&Aring;&Aring;-MM-DD).\",\n\tnumber: \"Ange ett korrekt nummer.\",\n\tdigits: \"Ange endast siffror.\",\n\tequalTo: \"Ange samma v&auml;rde igen.\",\n\trange: $.validator.format(\"Ange ett v&auml;rde mellan {0} och {1}.\"),\n\tmax: $.validator.format(\"Ange ett v&auml;rde som &auml;r mindre eller lika med {0}.\"),\n\tmin: $.validator.format(\"Ange ett v&auml;rde som &auml;r st&ouml;rre eller lika med {0}.\"),\n\tcreditcard: \"Ange ett korrekt kreditkortsnummer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_th.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TH (Thai; ไทย)\n */\n$.extend($.validator.messages, {\n\trequired: \"โปรดระบุ\",\n\tremote: \"โปรดแก้ไขให้ถูกต้อง\",\n\temail: \"โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง\",\n\turl: \"โปรดระบุ URL ที่ถูกต้อง\",\n\tdate: \"โปรดระบุวันที่ ที่ถูกต้อง\",\n\tdateISO: \"โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).\",\n\tnumber: \"โปรดระบุทศนิยมที่ถูกต้อง\",\n\tdigits: \"โปรดระบุจำนวนเต็มที่ถูกต้อง\",\n\tcreditcard: \"โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง\",\n\tequalTo: \"โปรดระบุค่าเดิมอีกครั้ง\",\n\textension: \"โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง\",\n\tmaxlength: $.validator.format(\"โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ\"),\n\tminlength: $.validator.format(\"โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ\"),\n\trangelength: $.validator.format(\"โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ\"),\n\trange: $.validator.format(\"โปรดระบุค่าระหว่าง {0} และ {1}\"),\n\tmax: $.validator.format(\"โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}\"),\n\tmin: $.validator.format(\"โปรดระบุค่ามากกว่าหรือเท่ากับ {0}\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_tj.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TJ (Tajikistan; Забони тоҷикӣ)\n */\n$.extend($.validator.messages, {\n\trequired: \"Ворид кардани ин филд маҷбури аст.\",\n\tremote: \"Илтимос, маълумоти саҳеҳ ворид кунед.\",\n\temail: \"Илтимос, почтаи электронии саҳеҳ ворид кунед.\",\n\turl: \"Илтимос, URL адреси саҳеҳ ворид кунед.\",\n\tdate: \"Илтимос, таърихи саҳеҳ ворид кунед.\",\n\tdateISO: \"Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.\",\n\tnumber: \"Илтимос, рақамҳои саҳеҳ ворид кунед.\",\n\tdigits: \"Илтимос, танҳо рақам ворид кунед.\",\n\tcreditcard: \"Илтимос, кредит карди саҳеҳ ворид кунед.\",\n\tequalTo: \"Илтимос, миқдори баробар ворид кунед.\",\n\textension: \"Илтимос, қофияи файлро дуруст интихоб кунед\",\n\tmaxlength: $.validator.format(\"Илтимос, бештар аз {0} рамз ворид накунед.\"),\n\tminlength: $.validator.format(\"Илтимос, камтар аз {0} рамз ворид накунед.\"),\n\trangelength: $.validator.format(\"Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед.\"),\n\trange: $.validator.format(\"Илтимос, аз {0} то {1} рақам зиёд ворид кунед.\"),\n\tmax: $.validator.format(\"Илтимос, бештар аз {0} рақам ворид накунед.\"),\n\tmin: $.validator.format(\"Илтимос, камтар аз {0} рақам ворид накунед.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_tr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TR (Turkish; Türkçe)\n */\n$.extend($.validator.messages, {\n\trequired: \"Bu alanın doldurulması zorunludur.\",\n\tremote: \"Lütfen bu alanı düzeltin.\",\n\temail: \"Lütfen geçerli bir e-posta adresi giriniz.\",\n\turl: \"Lütfen geçerli bir web adresi (URL) giriniz.\",\n\tdate: \"Lütfen geçerli bir tarih giriniz.\",\n\tdateISO: \"Lütfen geçerli bir tarih giriniz(ISO formatında)\",\n\tnumber: \"Lütfen geçerli bir sayı giriniz.\",\n\tdigits: \"Lütfen sadece sayısal karakterler giriniz.\",\n\tcreditcard: \"Lütfen geçerli bir kredi kartı giriniz.\",\n\tequalTo: \"Lütfen aynı değeri tekrar giriniz.\",\n\textension: \"Lütfen geçerli uzantıya sahip bir değer giriniz.\",\n\tmaxlength: $.validator.format(\"Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz.\"),\n\tminlength: $.validator.format(\"Lütfen en az {0} karakter uzunluğunda bir değer giriniz.\"),\n\trangelength: $.validator.format(\"Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz.\"),\n\trange: $.validator.format(\"Lütfen {0} ile {1} arasında bir değer giriniz.\"),\n\tmax: $.validator.format(\"Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz.\"),\n\tmin: $.validator.format(\"Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz.\"),\n\trequire_from_group: \"Lütfen bu alanların en az {0} tanesini doldurunuz.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_uk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: UK (Ukrainian; українська мова)\n */\n$.extend($.validator.messages, {\n\trequired: \"Це поле необхідно заповнити.\",\n\tremote: \"Будь ласка, введіть правильне значення.\",\n\temail: \"Будь ласка, введіть коректну адресу електронної пошти.\",\n\turl: \"Будь ласка, введіть коректний URL.\",\n\tdate: \"Будь ласка, введіть коректну дату.\",\n\tdateISO: \"Будь ласка, введіть коректну дату у форматі ISO.\",\n\tnumber: \"Будь ласка, введіть число.\",\n\tdigits: \"Вводите потрібно лише цифри.\",\n\tcreditcard: \"Будь ласка, введіть правильний номер кредитної карти.\",\n\tequalTo: \"Будь ласка, введіть таке ж значення ще раз.\",\n\textension: \"Будь ласка, виберіть файл з правильним розширенням.\",\n\tmaxlength: $.validator.format(\"Будь ласка, введіть не більше {0} символів.\"),\n\tminlength: $.validator.format(\"Будь ласка, введіть не менше {0} символів.\"),\n\trangelength: $.validator.format(\"Будь ласка, введіть значення довжиною від {0} до {1} символів.\"),\n\trange: $.validator.format(\"Будь ласка, введіть число від {0} до {1}.\"),\n\tmax: $.validator.format(\"Будь ласка, введіть число, менше або рівно {0}.\"),\n\tmin: $.validator.format(\"Будь ласка, введіть число, більше або рівно {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_vi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: VI (Vietnamese; Tiếng Việt)\n */\n$.extend($.validator.messages, {\n\trequired: \"Hãy nhập.\",\n\tremote: \"Hãy sửa cho đúng.\",\n\temail: \"Hãy nhập email.\",\n\turl: \"Hãy nhập URL.\",\n\tdate: \"Hãy nhập ngày.\",\n\tdateISO: \"Hãy nhập ngày (ISO).\",\n\tnumber: \"Hãy nhập số.\",\n\tdigits: \"Hãy nhập chữ số.\",\n\tcreditcard: \"Hãy nhập số thẻ tín dụng.\",\n\tequalTo: \"Hãy nhập thêm lần nữa.\",\n\textension: \"Phần mở rộng không đúng.\",\n\tmaxlength: $.validator.format(\"Hãy nhập từ {0} kí tự trở xuống.\"),\n\tminlength: $.validator.format(\"Hãy nhập từ {0} kí tự trở lên.\"),\n\trangelength: $.validator.format(\"Hãy nhập từ {0} đến {1} kí tự.\"),\n\trange: $.validator.format(\"Hãy nhập từ {0} đến {1}.\"),\n\tmax: $.validator.format(\"Hãy nhập từ {0} trở xuống.\"),\n\tmin: $.validator.format(\"Hãy nhập từ {1} trở lên.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_zh.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)\n */\n$.extend($.validator.messages, {\n\trequired: \"这是必填字段\",\n\tremote: \"请修正此字段\",\n\temail: \"请输入有效的电子邮件地址\",\n\turl: \"请输入有效的网址\",\n\tdate: \"请输入有效的日期\",\n\tdateISO: \"请输入有效的日期 (YYYY-MM-DD)\",\n\tnumber: \"请输入有效的数字\",\n\tdigits: \"只能输入数字\",\n\tcreditcard: \"请输入有效的信用卡号码\",\n\tequalTo: \"你的输入不相同\",\n\textension: \"请输入有效的后缀\",\n\tmaxlength: $.validator.format(\"最多可以输入 {0} 个字符\"),\n\tminlength: $.validator.format(\"最少要输入 {0} 个字符\"),\n\trangelength: $.validator.format(\"请输入长度在 {0} 到 {1} 之间的字符串\"),\n\trange: $.validator.format(\"请输入范围在 {0} 到 {1} 之间的数值\"),\n\tmax: $.validator.format(\"请输入不大于 {0} 的数值\"),\n\tmin: $.validator.format(\"请输入不小于 {0} 的数值\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/messages_zh_TW.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語)\n * Region: TW (Taiwan)\n */\n$.extend($.validator.messages, {\n\trequired: \"必須填寫\",\n\tremote: \"請修正此欄位\",\n\temail: \"請輸入有效的電子郵件\",\n\turl: \"請輸入有效的網址\",\n\tdate: \"請輸入有效的日期\",\n\tdateISO: \"請輸入有效的日期 (YYYY-MM-DD)\",\n\tnumber: \"請輸入正確的數值\",\n\tdigits: \"只可輸入數字\",\n\tcreditcard: \"請輸入有效的信用卡號碼\",\n\tequalTo: \"請重複輸入一次\",\n\textension: \"請輸入有效的後綴\",\n\tmaxlength: $.validator.format(\"最多 {0} 個字\"),\n\tminlength: $.validator.format(\"最少 {0} 個字\"),\n\trangelength: $.validator.format(\"請輸入長度為 {0} 至 {1} 之間的字串\"),\n\trange: $.validator.format(\"請輸入 {0} 至 {1} 之間的數值\"),\n\tmax: $.validator.format(\"請輸入不大於 {0} 的數值\"),\n\tmin: $.validator.format(\"請輸入不小於 {0} 的數值\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/methods_de.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: DE\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?\\.\\d\\d?\\.\\d\\d\\d?\\d?$/.test(value);\n\t},\n\tnumber: function(value, element) {\n\t\treturn this.optional(element) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/methods_es_CL.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: ES_CL\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?\\-\\d\\d?\\-\\d\\d\\d?\\d?$/.test(value);\n\t},\n\tnumber: function(value, element) {\n\t\treturn this.optional(element) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/methods_fi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: FI\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/.test(value);\n\t},\n\tnumber: function(value, element) {\n\t\treturn this.optional(element) || /^-?(?:\\d+)(?:,\\d+)?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/methods_nl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: NL\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?[\\.\\/\\-]\\d\\d?[\\.\\/\\-]\\d\\d\\d?\\d?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery-validation/js/localization/methods_pt.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: PT_BR\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?\\/\\d\\d?\\/\\d\\d\\d?\\d?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery.easing.js",
    "content": "/*\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\n *\n * Uses the built in easing capabilities added In jQuery 1.1\n * to offer multiple easing options\n *\n * TERMS OF USE - jQuery Easing\n * \n * Open source under the BSD License. \n * \n * Copyright В© 2008 George McGinley Smith\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification, \n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice, this list of \n * conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list \n * of conditions and the following disclaimer in the documentation and/or other materials \n * provided with the distribution.\n * \n * Neither the name of the author nor the names of contributors may be used to endorse \n * or promote products derived from this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n * OF THE POSSIBILITY OF SUCH DAMAGE. \n *\n*/\n\n// t: current time, b: begInnIng value, c: change In value, d: duration\njQuery.easing['jswing'] = jQuery.easing['swing'];\n\njQuery.extend( jQuery.easing,\n{\n\tdef: 'easeOutQuad',\n\tswing: function (x, t, b, c, d) {\n\t\t//alert(jQuery.easing.default);\n\t\treturn jQuery.easing[jQuery.easing.def](x, t, b, c, d);\n\t},\n\teaseInQuad: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t + b;\n\t},\n\teaseOutQuad: function (x, t, b, c, d) {\n\t\treturn -c *(t/=d)*(t-2) + b;\n\t},\n\teaseInOutQuad: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t + b;\n\t\treturn -c/2 * ((--t)*(t-2) - 1) + b;\n\t},\n\teaseInCubic: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t*t + b;\n\t},\n\teaseOutCubic: function (x, t, b, c, d) {\n\t\treturn c*((t=t/d-1)*t*t + 1) + b;\n\t},\n\teaseInOutCubic: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t + b;\n\t\treturn c/2*((t-=2)*t*t + 2) + b;\n\t},\n\teaseInQuart: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t*t*t + b;\n\t},\n\teaseOutQuart: function (x, t, b, c, d) {\n\t\treturn -c * ((t=t/d-1)*t*t*t - 1) + b;\n\t},\n\teaseInOutQuart: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t + b;\n\t\treturn -c/2 * ((t-=2)*t*t*t - 2) + b;\n\t},\n\teaseInQuint: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t*t*t*t + b;\n\t},\n\teaseOutQuint: function (x, t, b, c, d) {\n\t\treturn c*((t=t/d-1)*t*t*t*t + 1) + b;\n\t},\n\teaseInOutQuint: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;\n\t\treturn c/2*((t-=2)*t*t*t*t + 2) + b;\n\t},\n\teaseInSine: function (x, t, b, c, d) {\n\t\treturn -c * Math.cos(t/d * (Math.PI/2)) + c + b;\n\t},\n\teaseOutSine: function (x, t, b, c, d) {\n\t\treturn c * Math.sin(t/d * (Math.PI/2)) + b;\n\t},\n\teaseInOutSine: function (x, t, b, c, d) {\n\t\treturn -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;\n\t},\n\teaseInExpo: function (x, t, b, c, d) {\n\t\treturn (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\n\t},\n\teaseOutExpo: function (x, t, b, c, d) {\n\t\treturn (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\n\t},\n\teaseInOutExpo: function (x, t, b, c, d) {\n\t\tif (t==0) return b;\n\t\tif (t==d) return b+c;\n\t\tif ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;\n\t\treturn c/2 * (-Math.pow(2, -10 * --t) + 2) + b;\n\t},\n\teaseInCirc: function (x, t, b, c, d) {\n\t\treturn -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;\n\t},\n\teaseOutCirc: function (x, t, b, c, d) {\n\t\treturn c * Math.sqrt(1 - (t=t/d-1)*t) + b;\n\t},\n\teaseInOutCirc: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;\n\t\treturn c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;\n\t},\n\teaseInElastic: function (x, t, b, c, d) {\n\t\tvar s=1.70158;var p=0;var a=c;\n\t\tif (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\n\t\treturn -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\n\t},\n\teaseOutElastic: function (x, t, b, c, d) {\n\t\tvar s=1.70158;var p=0;var a=c;\n\t\tif (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\n\t\treturn a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;\n\t},\n\teaseInOutElastic: function (x, t, b, c, d) {\n\t\tvar s=1.70158;var p=0;var a=c;\n\t\tif (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\n\t\tif (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\n\t\treturn a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;\n\t},\n\teaseInBack: function (x, t, b, c, d, s) {\n\t\tif (s == undefined) s = 1.70158;\n\t\treturn c*(t/=d)*t*((s+1)*t - s) + b;\n\t},\n\teaseOutBack: function (x, t, b, c, d, s) {\n\t\tif (s == undefined) s = 1.70158;\n\t\treturn c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;\n\t},\n\teaseInOutBack: function (x, t, b, c, d, s) {\n\t\tif (s == undefined) s = 1.70158; \n\t\tif ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;\n\t\treturn c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;\n\t},\n\teaseInBounce: function (x, t, b, c, d) {\n\t\treturn c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;\n\t},\n\teaseOutBounce: function (x, t, b, c, d) {\n\t\tif ((t/=d) < (1/2.75)) {\n\t\t\treturn c*(7.5625*t*t) + b;\n\t\t} else if (t < (2/2.75)) {\n\t\t\treturn c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;\n\t\t} else if (t < (2.5/2.75)) {\n\t\t\treturn c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;\n\t\t} else {\n\t\t\treturn c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;\n\t\t}\n\t},\n\teaseInOutBounce: function (x, t, b, c, d) {\n\t\tif (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;\n\t\treturn jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;\n\t}\n});\n\n/*\n *\n * TERMS OF USE - EASING EQUATIONS\n * \n * Open source under the BSD License. \n * \n * Copyright В© 2001 Robert Penner\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification, \n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice, this list of \n * conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list \n * of conditions and the following disclaimer in the documentation and/or other materials \n * provided with the distribution.\n * \n * Neither the name of the author nor the names of contributors may be used to endorse \n * or promote products derived from this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n * OF THE POSSIBILITY OF SUCH DAMAGE. \n *\n */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery.form.js",
    "content": "/*!\n * jQuery Form Plugin\n * version: 3.51.0-2014.06.20\n * Requires jQuery v1.5 or later\n * Copyright (c) 2014 M. Alsup\n * Examples and documentation at: http://malsup.com/jquery/form/\n * Project repository: https://github.com/malsup/form\n * Dual licensed under the MIT and GPL licenses.\n * https://github.com/malsup/form#copyright-and-license\n */\n/*global ActiveXObject */\n\n// AMD support\n(function (factory) {\n    \"use strict\";\n    if (typeof define === 'function' && define.amd) {\n        // using AMD; register as anon module\n        define(['jquery'], factory);\n    } else {\n        // no AMD; invoke directly\n        factory( (typeof(jQuery) != 'undefined') ? jQuery : window.Zepto );\n    }\n}\n\n(function($) {\n\"use strict\";\n\n/*\n    Usage Note:\n    -----------\n    Do not use both ajaxSubmit and ajaxForm on the same form.  These\n    functions are mutually exclusive.  Use ajaxSubmit if you want\n    to bind your own submit handler to the form.  For example,\n\n    $(document).ready(function() {\n        $('#myForm').on('submit', function(e) {\n            e.preventDefault(); // <-- important\n            $(this).ajaxSubmit({\n                target: '#output'\n            });\n        });\n    });\n\n    Use ajaxForm when you want the plugin to manage all the event binding\n    for you.  For example,\n\n    $(document).ready(function() {\n        $('#myForm').ajaxForm({\n            target: '#output'\n        });\n    });\n\n    You can also use ajaxForm with delegation (requires jQuery v1.7+), so the\n    form does not have to exist when you invoke ajaxForm:\n\n    $('#myForm').ajaxForm({\n        delegation: true,\n        target: '#output'\n    });\n\n    When using ajaxForm, the ajaxSubmit function will be invoked for you\n    at the appropriate time.\n*/\n\n/**\n * Feature detection\n */\nvar feature = {};\nfeature.fileapi = $(\"<input type='file'/>\").get(0).files !== undefined;\nfeature.formdata = window.FormData !== undefined;\n\nvar hasProp = !!$.fn.prop;\n\n// attr2 uses prop when it can but checks the return type for\n// an expected string.  this accounts for the case where a form \n// contains inputs with names like \"action\" or \"method\"; in those\n// cases \"prop\" returns the element\n$.fn.attr2 = function() {\n    if ( ! hasProp ) {\n        return this.attr.apply(this, arguments);\n    }\n    var val = this.prop.apply(this, arguments);\n    if ( ( val && val.jquery ) || typeof val === 'string' ) {\n        return val;\n    }\n    return this.attr.apply(this, arguments);\n};\n\n/**\n * ajaxSubmit() provides a mechanism for immediately submitting\n * an HTML form using AJAX.\n */\n$.fn.ajaxSubmit = function(options) {\n    /*jshint scripturl:true */\n\n    // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)\n    if (!this.length) {\n        log('ajaxSubmit: skipping submit process - no element selected');\n        return this;\n    }\n\n    var method, action, url, $form = this;\n\n    if (typeof options == 'function') {\n        options = { success: options };\n    }\n    else if ( options === undefined ) {\n        options = {};\n    }\n\n    method = options.type || this.attr2('method');\n    action = options.url  || this.attr2('action');\n\n    url = (typeof action === 'string') ? $.trim(action) : '';\n    url = url || window.location.href || '';\n    if (url) {\n        // clean url (don't include hash vaue)\n        url = (url.match(/^([^#]+)/)||[])[1];\n    }\n\n    options = $.extend(true, {\n        url:  url,\n        success: $.ajaxSettings.success,\n        type: method || $.ajaxSettings.type,\n        iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'\n    }, options);\n\n    // hook for manipulating the form data before it is extracted;\n    // convenient for use with rich editors like tinyMCE or FCKEditor\n    var veto = {};\n    this.trigger('form-pre-serialize', [this, options, veto]);\n    if (veto.veto) {\n        log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');\n        return this;\n    }\n\n    // provide opportunity to alter form data before it is serialized\n    if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {\n        log('ajaxSubmit: submit aborted via beforeSerialize callback');\n        return this;\n    }\n\n    var traditional = options.traditional;\n    if ( traditional === undefined ) {\n        traditional = $.ajaxSettings.traditional;\n    }\n\n    var elements = [];\n    var qx, a = this.formToArray(options.semantic, elements);\n    if (options.data) {\n        options.extraData = options.data;\n        qx = $.param(options.data, traditional);\n    }\n\n    // give pre-submit callback an opportunity to abort the submit\n    if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {\n        log('ajaxSubmit: submit aborted via beforeSubmit callback');\n        return this;\n    }\n\n    // fire vetoable 'validate' event\n    this.trigger('form-submit-validate', [a, this, options, veto]);\n    if (veto.veto) {\n        log('ajaxSubmit: submit vetoed via form-submit-validate trigger');\n        return this;\n    }\n\n    var q = $.param(a, traditional);\n    if (qx) {\n        q = ( q ? (q + '&' + qx) : qx );\n    }\n    if (options.type.toUpperCase() == 'GET') {\n        options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;\n        options.data = null;  // data is null for 'get'\n    }\n    else {\n        options.data = q; // data is the query string for 'post'\n    }\n\n    var callbacks = [];\n    if (options.resetForm) {\n        callbacks.push(function() { $form.resetForm(); });\n    }\n    if (options.clearForm) {\n        callbacks.push(function() { $form.clearForm(options.includeHidden); });\n    }\n\n    // perform a load on the target only if dataType is not provided\n    if (!options.dataType && options.target) {\n        var oldSuccess = options.success || function(){};\n        callbacks.push(function(data) {\n            var fn = options.replaceTarget ? 'replaceWith' : 'html';\n            $(options.target)[fn](data).each(oldSuccess, arguments);\n        });\n    }\n    else if (options.success) {\n        callbacks.push(options.success);\n    }\n\n    options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg\n        var context = options.context || this ;    // jQuery 1.4+ supports scope context\n        for (var i=0, max=callbacks.length; i < max; i++) {\n            callbacks[i].apply(context, [data, status, xhr || $form, $form]);\n        }\n    };\n\n    if (options.error) {\n        var oldError = options.error;\n        options.error = function(xhr, status, error) {\n            var context = options.context || this;\n            oldError.apply(context, [xhr, status, error, $form]);\n        };\n    }\n\n     if (options.complete) {\n        var oldComplete = options.complete;\n        options.complete = function(xhr, status) {\n            var context = options.context || this;\n            oldComplete.apply(context, [xhr, status, $form]);\n        };\n    }\n\n    // are there files to upload?\n\n    // [value] (issue #113), also see comment:\n    // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219\n    var fileInputs = $('input[type=file]:enabled', this).filter(function() { return $(this).val() !== ''; });\n\n    var hasFileInputs = fileInputs.length > 0;\n    var mp = 'multipart/form-data';\n    var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);\n\n    var fileAPI = feature.fileapi && feature.formdata;\n    log(\"fileAPI :\" + fileAPI);\n    var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI;\n\n    var jqxhr;\n\n    // options.iframe allows user to force iframe mode\n    // 06-NOV-09: now defaulting to iframe mode if file input is detected\n    if (options.iframe !== false && (options.iframe || shouldUseFrame)) {\n        // hack to fix Safari hang (thanks to Tim Molendijk for this)\n        // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d\n        if (options.closeKeepAlive) {\n            $.get(options.closeKeepAlive, function() {\n                jqxhr = fileUploadIframe(a);\n            });\n        }\n        else {\n            jqxhr = fileUploadIframe(a);\n        }\n    }\n    else if ((hasFileInputs || multipart) && fileAPI) {\n        jqxhr = fileUploadXhr(a);\n    }\n    else {\n        jqxhr = $.ajax(options);\n    }\n\n    $form.removeData('jqxhr').data('jqxhr', jqxhr);\n\n    // clear element array\n    for (var k=0; k < elements.length; k++) {\n        elements[k] = null;\n    }\n\n    // fire 'notify' event\n    this.trigger('form-submit-notify', [this, options]);\n    return this;\n\n    // utility fn for deep serialization\n    function deepSerialize(extraData){\n        var serialized = $.param(extraData, options.traditional).split('&');\n        var len = serialized.length;\n        var result = [];\n        var i, part;\n        for (i=0; i < len; i++) {\n            // #252; undo param space replacement\n            serialized[i] = serialized[i].replace(/\\+/g,' ');\n            part = serialized[i].split('=');\n            // #278; use array instead of object storage, favoring array serializations\n            result.push([decodeURIComponent(part[0]), decodeURIComponent(part[1])]);\n        }\n        return result;\n    }\n\n     // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz)\n    function fileUploadXhr(a) {\n        var formdata = new FormData();\n\n        for (var i=0; i < a.length; i++) {\n            formdata.append(a[i].name, a[i].value);\n        }\n\n        if (options.extraData) {\n            var serializedData = deepSerialize(options.extraData);\n            for (i=0; i < serializedData.length; i++) {\n                if (serializedData[i]) {\n                    formdata.append(serializedData[i][0], serializedData[i][1]);\n                }\n            }\n        }\n\n        options.data = null;\n\n        var s = $.extend(true, {}, $.ajaxSettings, options, {\n            contentType: false,\n            processData: false,\n            cache: false,\n            type: method || 'POST'\n        });\n\n        if (options.uploadProgress) {\n            // workaround because jqXHR does not expose upload property\n            s.xhr = function() {\n                var xhr = $.ajaxSettings.xhr();\n                if (xhr.upload) {\n                    xhr.upload.addEventListener('progress', function(event) {\n                        var percent = 0;\n                        var position = event.loaded || event.position; /*event.position is deprecated*/\n                        var total = event.total;\n                        if (event.lengthComputable) {\n                            percent = Math.ceil(position / total * 100);\n                        }\n                        options.uploadProgress(event, position, total, percent);\n                    }, false);\n                }\n                return xhr;\n            };\n        }\n\n        s.data = null;\n        var beforeSend = s.beforeSend;\n        s.beforeSend = function(xhr, o) {\n            //Send FormData() provided by user\n            if (options.formData) {\n                o.data = options.formData;\n            }\n            else {\n                o.data = formdata;\n            }\n            if(beforeSend) {\n                beforeSend.call(this, xhr, o);\n            }\n        };\n        return $.ajax(s);\n    }\n\n    // private function for handling file uploads (hat tip to YAHOO!)\n    function fileUploadIframe(a) {\n        var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;\n        var deferred = $.Deferred();\n\n        // #341\n        deferred.abort = function(status) {\n            xhr.abort(status);\n        };\n\n        if (a) {\n            // ensure that every serialized input is still enabled\n            for (i=0; i < elements.length; i++) {\n                el = $(elements[i]);\n                if ( hasProp ) {\n                    el.prop('disabled', false);\n                }\n                else {\n                    el.removeAttr('disabled');\n                }\n            }\n        }\n\n        s = $.extend(true, {}, $.ajaxSettings, options);\n        s.context = s.context || s;\n        id = 'jqFormIO' + (new Date().getTime());\n        if (s.iframeTarget) {\n            $io = $(s.iframeTarget);\n            n = $io.attr2('name');\n            if (!n) {\n                $io.attr2('name', id);\n            }\n            else {\n                id = n;\n            }\n        }\n        else {\n            $io = $('<iframe name=\"' + id + '\" src=\"'+ s.iframeSrc +'\" />');\n            $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });\n        }\n        io = $io[0];\n\n\n        xhr = { // mock object\n            aborted: 0,\n            responseText: null,\n            responseXML: null,\n            status: 0,\n            statusText: 'n/a',\n            getAllResponseHeaders: function() {},\n            getResponseHeader: function() {},\n            setRequestHeader: function() {},\n            abort: function(status) {\n                var e = (status === 'timeout' ? 'timeout' : 'aborted');\n                log('aborting upload... ' + e);\n                this.aborted = 1;\n\n                try { // #214, #257\n                    if (io.contentWindow.document.execCommand) {\n                        io.contentWindow.document.execCommand('Stop');\n                    }\n                }\n                catch(ignore) {}\n\n                $io.attr('src', s.iframeSrc); // abort op in progress\n                xhr.error = e;\n                if (s.error) {\n                    s.error.call(s.context, xhr, e, status);\n                }\n                if (g) {\n                    $.event.trigger(\"ajaxError\", [xhr, s, e]);\n                }\n                if (s.complete) {\n                    s.complete.call(s.context, xhr, e);\n                }\n            }\n        };\n\n        g = s.global;\n        // trigger ajax global events so that activity/block indicators work like normal\n        if (g && 0 === $.active++) {\n            $.event.trigger(\"ajaxStart\");\n        }\n        if (g) {\n            $.event.trigger(\"ajaxSend\", [xhr, s]);\n        }\n\n        if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {\n            if (s.global) {\n                $.active--;\n            }\n            deferred.reject();\n            return deferred;\n        }\n        if (xhr.aborted) {\n            deferred.reject();\n            return deferred;\n        }\n\n        // add submitting element to data if we know it\n        sub = form.clk;\n        if (sub) {\n            n = sub.name;\n            if (n && !sub.disabled) {\n                s.extraData = s.extraData || {};\n                s.extraData[n] = sub.value;\n                if (sub.type == \"image\") {\n                    s.extraData[n+'.x'] = form.clk_x;\n                    s.extraData[n+'.y'] = form.clk_y;\n                }\n            }\n        }\n\n        var CLIENT_TIMEOUT_ABORT = 1;\n        var SERVER_ABORT = 2;\n                \n        function getDoc(frame) {\n            /* it looks like contentWindow or contentDocument do not\n             * carry the protocol property in ie8, when running under ssl\n             * frame.document is the only valid response document, since\n             * the protocol is know but not on the other two objects. strange?\n             * \"Same origin policy\" http://en.wikipedia.org/wiki/Same_origin_policy\n             */\n            \n            var doc = null;\n            \n            // IE8 cascading access check\n            try {\n                if (frame.contentWindow) {\n                    doc = frame.contentWindow.document;\n                }\n            } catch(err) {\n                // IE8 access denied under ssl & missing protocol\n                log('cannot get iframe.contentWindow document: ' + err);\n            }\n\n            if (doc) { // successful getting content\n                return doc;\n            }\n\n            try { // simply checking may throw in ie8 under ssl or mismatched protocol\n                doc = frame.contentDocument ? frame.contentDocument : frame.document;\n            } catch(err) {\n                // last attempt\n                log('cannot get iframe.contentDocument: ' + err);\n                doc = frame.document;\n            }\n            return doc;\n        }\n\n        // Rails CSRF hack (thanks to Yvan Barthelemy)\n        var csrf_token = $('meta[name=csrf-token]').attr('content');\n        var csrf_param = $('meta[name=csrf-param]').attr('content');\n        if (csrf_param && csrf_token) {\n            s.extraData = s.extraData || {};\n            s.extraData[csrf_param] = csrf_token;\n        }\n\n        // take a breath so that pending repaints get some cpu time before the upload starts\n        function doSubmit() {\n            // make sure form attrs are set\n            var t = $form.attr2('target'), \n                a = $form.attr2('action'), \n                mp = 'multipart/form-data',\n                et = $form.attr('enctype') || $form.attr('encoding') || mp;\n\n            // update form attrs in IE friendly way\n            form.setAttribute('target',id);\n            if (!method || /post/i.test(method) ) {\n                form.setAttribute('method', 'POST');\n            }\n            if (a != s.url) {\n                form.setAttribute('action', s.url);\n            }\n\n            // ie borks in some cases when setting encoding\n            if (! s.skipEncodingOverride && (!method || /post/i.test(method))) {\n                $form.attr({\n                    encoding: 'multipart/form-data',\n                    enctype:  'multipart/form-data'\n                });\n            }\n\n            // support timout\n            if (s.timeout) {\n                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);\n            }\n\n            // look for server aborts\n            function checkState() {\n                try {\n                    var state = getDoc(io).readyState;\n                    log('state = ' + state);\n                    if (state && state.toLowerCase() == 'uninitialized') {\n                        setTimeout(checkState,50);\n                    }\n                }\n                catch(e) {\n                    log('Server abort: ' , e, ' (', e.name, ')');\n                    cb(SERVER_ABORT);\n                    if (timeoutHandle) {\n                        clearTimeout(timeoutHandle);\n                    }\n                    timeoutHandle = undefined;\n                }\n            }\n\n            // add \"extra\" data to form if provided in options\n            var extraInputs = [];\n            try {\n                if (s.extraData) {\n                    for (var n in s.extraData) {\n                        if (s.extraData.hasOwnProperty(n)) {\n                           // if using the $.param format that allows for multiple values with the same name\n                           if($.isPlainObject(s.extraData[n]) && s.extraData[n].hasOwnProperty('name') && s.extraData[n].hasOwnProperty('value')) {\n                               extraInputs.push(\n                               $('<input type=\"hidden\" name=\"'+s.extraData[n].name+'\">').val(s.extraData[n].value)\n                                   .appendTo(form)[0]);\n                           } else {\n                               extraInputs.push(\n                               $('<input type=\"hidden\" name=\"'+n+'\">').val(s.extraData[n])\n                                   .appendTo(form)[0]);\n                           }\n                        }\n                    }\n                }\n\n                if (!s.iframeTarget) {\n                    // add iframe to doc and submit the form\n                    $io.appendTo('body');\n                }\n                if (io.attachEvent) {\n                    io.attachEvent('onload', cb);\n                }\n                else {\n                    io.addEventListener('load', cb, false);\n                }\n                setTimeout(checkState,15);\n\n                try {\n                    form.submit();\n                } catch(err) {\n                    // just in case form has element with name/id of 'submit'\n                    var submitFn = document.createElement('form').submit;\n                    submitFn.apply(form);\n                }\n            }\n            finally {\n                // reset attrs and remove \"extra\" input elements\n                form.setAttribute('action',a);\n                form.setAttribute('enctype', et); // #380\n                if(t) {\n                    form.setAttribute('target', t);\n                } else {\n                    $form.removeAttr('target');\n                }\n                $(extraInputs).remove();\n            }\n        }\n\n        if (s.forceSync) {\n            doSubmit();\n        }\n        else {\n            setTimeout(doSubmit, 10); // this lets dom updates render\n        }\n\n        var data, doc, domCheckCount = 50, callbackProcessed;\n\n        function cb(e) {\n            if (xhr.aborted || callbackProcessed) {\n                return;\n            }\n            \n            doc = getDoc(io);\n            if(!doc) {\n                log('cannot access response document');\n                e = SERVER_ABORT;\n            }\n            if (e === CLIENT_TIMEOUT_ABORT && xhr) {\n                xhr.abort('timeout');\n                deferred.reject(xhr, 'timeout');\n                return;\n            }\n            else if (e == SERVER_ABORT && xhr) {\n                xhr.abort('server abort');\n                deferred.reject(xhr, 'error', 'server abort');\n                return;\n            }\n\n            if (!doc || doc.location.href == s.iframeSrc) {\n                // response not received yet\n                if (!timedOut) {\n                    return;\n                }\n            }\n            if (io.detachEvent) {\n                io.detachEvent('onload', cb);\n            }\n            else {\n                io.removeEventListener('load', cb, false);\n            }\n\n            var status = 'success', errMsg;\n            try {\n                if (timedOut) {\n                    throw 'timeout';\n                }\n\n                var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);\n                log('isXml='+isXml);\n                if (!isXml && window.opera && (doc.body === null || !doc.body.innerHTML)) {\n                    if (--domCheckCount) {\n                        // in some browsers (Opera) the iframe DOM is not always traversable when\n                        // the onload callback fires, so we loop a bit to accommodate\n                        log('requeing onLoad callback, DOM not available');\n                        setTimeout(cb, 250);\n                        return;\n                    }\n                    // let this fall through because server response could be an empty document\n                    //log('Could not access iframe DOM after mutiple tries.');\n                    //throw 'DOMException: not available';\n                }\n\n                //log('response detected');\n                var docRoot = doc.body ? doc.body : doc.documentElement;\n                xhr.responseText = docRoot ? docRoot.innerHTML : null;\n                xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;\n                if (isXml) {\n                    s.dataType = 'xml';\n                }\n                xhr.getResponseHeader = function(header){\n                    var headers = {'content-type': s.dataType};\n                    return headers[header.toLowerCase()];\n                };\n                // support for XHR 'status' & 'statusText' emulation :\n                if (docRoot) {\n                    xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;\n                    xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;\n                }\n\n                var dt = (s.dataType || '').toLowerCase();\n                var scr = /(json|script|text)/.test(dt);\n                if (scr || s.textarea) {\n                    // see if user embedded response in textarea\n                    var ta = doc.getElementsByTagName('textarea')[0];\n                    if (ta) {\n                        xhr.responseText = ta.value;\n                        // support for XHR 'status' & 'statusText' emulation :\n                        xhr.status = Number( ta.getAttribute('status') ) || xhr.status;\n                        xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;\n                    }\n                    else if (scr) {\n                        // account for browsers injecting pre around json response\n                        var pre = doc.getElementsByTagName('pre')[0];\n                        var b = doc.getElementsByTagName('body')[0];\n                        if (pre) {\n                            xhr.responseText = pre.textContent ? pre.textContent : pre.innerText;\n                        }\n                        else if (b) {\n                            xhr.responseText = b.textContent ? b.textContent : b.innerText;\n                        }\n                    }\n                }\n                else if (dt == 'xml' && !xhr.responseXML && xhr.responseText) {\n                    xhr.responseXML = toXml(xhr.responseText);\n                }\n\n                try {\n                    data = httpData(xhr, dt, s);\n                }\n                catch (err) {\n                    status = 'parsererror';\n                    xhr.error = errMsg = (err || status);\n                }\n            }\n            catch (err) {\n                log('error caught: ',err);\n                status = 'error';\n                xhr.error = errMsg = (err || status);\n            }\n\n            if (xhr.aborted) {\n                log('upload aborted');\n                status = null;\n            }\n\n            if (xhr.status) { // we've set xhr.status\n                status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';\n            }\n\n            // ordering of these callbacks/triggers is odd, but that's how $.ajax does it\n            if (status === 'success') {\n                if (s.success) {\n                    s.success.call(s.context, data, 'success', xhr);\n                }\n                deferred.resolve(xhr.responseText, 'success', xhr);\n                if (g) {\n                    $.event.trigger(\"ajaxSuccess\", [xhr, s]);\n                }\n            }\n            else if (status) {\n                if (errMsg === undefined) {\n                    errMsg = xhr.statusText;\n                }\n                if (s.error) {\n                    s.error.call(s.context, xhr, status, errMsg);\n                }\n                deferred.reject(xhr, 'error', errMsg);\n                if (g) {\n                    $.event.trigger(\"ajaxError\", [xhr, s, errMsg]);\n                }\n            }\n\n            if (g) {\n                $.event.trigger(\"ajaxComplete\", [xhr, s]);\n            }\n\n            if (g && ! --$.active) {\n                $.event.trigger(\"ajaxStop\");\n            }\n\n            if (s.complete) {\n                s.complete.call(s.context, xhr, status);\n            }\n\n            callbackProcessed = true;\n            if (s.timeout) {\n                clearTimeout(timeoutHandle);\n            }\n\n            // clean up\n            setTimeout(function() {\n                if (!s.iframeTarget) {\n                    $io.remove();\n                }\n                else { //adding else to clean up existing iframe response.\n                    $io.attr('src', s.iframeSrc);\n                }\n                xhr.responseXML = null;\n            }, 100);\n        }\n\n        var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)\n            if (window.ActiveXObject) {\n                doc = new ActiveXObject('Microsoft.XMLDOM');\n                doc.async = 'false';\n                doc.loadXML(s);\n            }\n            else {\n                doc = (new DOMParser()).parseFromString(s, 'text/xml');\n            }\n            return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;\n        };\n        var parseJSON = $.parseJSON || function(s) {\n            /*jslint evil:true */\n            return window['eval']('(' + s + ')');\n        };\n\n        var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4\n\n            var ct = xhr.getResponseHeader('content-type') || '',\n                xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,\n                data = xml ? xhr.responseXML : xhr.responseText;\n\n            if (xml && data.documentElement.nodeName === 'parsererror') {\n                if ($.error) {\n                    $.error('parsererror');\n                }\n            }\n            if (s && s.dataFilter) {\n                data = s.dataFilter(data, type);\n            }\n            if (typeof data === 'string') {\n                if (type === 'json' || !type && ct.indexOf('json') >= 0) {\n                    data = parseJSON(data);\n                } else if (type === \"script\" || !type && ct.indexOf(\"javascript\") >= 0) {\n                    $.globalEval(data);\n                }\n            }\n            return data;\n        };\n\n        return deferred;\n    }\n};\n\n/**\n * ajaxForm() provides a mechanism for fully automating form submission.\n *\n * The advantages of using this method instead of ajaxSubmit() are:\n *\n * 1: This method will include coordinates for <input type=\"image\" /> elements (if the element\n *    is used to submit the form).\n * 2. This method will include the submit element's name/value data (for the element that was\n *    used to submit the form).\n * 3. This method binds the submit() method to the form for you.\n *\n * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely\n * passes the options argument along after properly binding events for submit elements and\n * the form itself.\n */\n$.fn.ajaxForm = function(options) {\n    options = options || {};\n    options.delegation = options.delegation && $.isFunction($.fn.on);\n\n    // in jQuery 1.3+ we can fix mistakes with the ready state\n    if (!options.delegation && this.length === 0) {\n        var o = { s: this.selector, c: this.context };\n        if (!$.isReady && o.s) {\n            log('DOM not ready, queuing ajaxForm');\n            $(function() {\n                $(o.s,o.c).ajaxForm(options);\n            });\n            return this;\n        }\n        // is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()\n        log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));\n        return this;\n    }\n\n    if ( options.delegation ) {\n        $(document)\n            .off('submit.form-plugin', this.selector, doAjaxSubmit)\n            .off('click.form-plugin', this.selector, captureSubmittingElement)\n            .on('submit.form-plugin', this.selector, options, doAjaxSubmit)\n            .on('click.form-plugin', this.selector, options, captureSubmittingElement);\n        return this;\n    }\n\n    return this.ajaxFormUnbind()\n        .bind('submit.form-plugin', options, doAjaxSubmit)\n        .bind('click.form-plugin', options, captureSubmittingElement);\n};\n\n// private event handlers\nfunction doAjaxSubmit(e) {\n    /*jshint validthis:true */\n    var options = e.data;\n    if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed\n        e.preventDefault();\n        $(e.target).ajaxSubmit(options); // #365\n    }\n}\n\nfunction captureSubmittingElement(e) {\n    /*jshint validthis:true */\n    var target = e.target;\n    var $el = $(target);\n    if (!($el.is(\"[type=submit],[type=image]\"))) {\n        // is this a child element of the submit el?  (ex: a span within a button)\n        var t = $el.closest('[type=submit]');\n        if (t.length === 0) {\n            return;\n        }\n        target = t[0];\n    }\n    var form = this;\n    form.clk = target;\n    if (target.type == 'image') {\n        if (e.offsetX !== undefined) {\n            form.clk_x = e.offsetX;\n            form.clk_y = e.offsetY;\n        } else if (typeof $.fn.offset == 'function') {\n            var offset = $el.offset();\n            form.clk_x = e.pageX - offset.left;\n            form.clk_y = e.pageY - offset.top;\n        } else {\n            form.clk_x = e.pageX - target.offsetLeft;\n            form.clk_y = e.pageY - target.offsetTop;\n        }\n    }\n    // clear form vars\n    setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);\n}\n\n\n// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm\n$.fn.ajaxFormUnbind = function() {\n    return this.unbind('submit.form-plugin click.form-plugin');\n};\n\n/**\n * formToArray() gathers form element data into an array of objects that can\n * be passed to any of the following ajax functions: $.get, $.post, or load.\n * Each object in the array has both a 'name' and 'value' property.  An example of\n * an array for a simple login form might be:\n *\n * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]\n *\n * It is this array that is passed to pre-submit callback functions provided to the\n * ajaxSubmit() and ajaxForm() methods.\n */\n$.fn.formToArray = function(semantic, elements) {\n    var a = [];\n    if (this.length === 0) {\n        return a;\n    }\n\n    var form = this[0];\n    var formId = this.attr('id');\n    var els = semantic ? form.getElementsByTagName('*') : form.elements;\n    var els2;\n\n    if (els && !/MSIE [678]/.test(navigator.userAgent)) { // #390\n        els = $(els).get();  // convert to standard array\n    }\n\n    // #386; account for inputs outside the form which use the 'form' attribute\n    if ( formId ) {\n        els2 = $(':input[form=\"' + formId + '\"]').get(); // hat tip @thet\n        if ( els2.length ) {\n            els = (els || []).concat(els2);\n        }\n    }\n\n    if (!els || !els.length) {\n        return a;\n    }\n\n    var i,j,n,v,el,max,jmax;\n    for(i=0, max=els.length; i < max; i++) {\n        el = els[i];\n        n = el.name;\n        if (!n || el.disabled) {\n            continue;\n        }\n\n        if (semantic && form.clk && el.type == \"image\") {\n            // handle image inputs on the fly when semantic == true\n            if(form.clk == el) {\n                a.push({name: n, value: $(el).val(), type: el.type });\n                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});\n            }\n            continue;\n        }\n\n        v = $.fieldValue(el, true);\n        if (v && v.constructor == Array) {\n            if (elements) {\n                elements.push(el);\n            }\n            for(j=0, jmax=v.length; j < jmax; j++) {\n                a.push({name: n, value: v[j]});\n            }\n        }\n        else if (feature.fileapi && el.type == 'file') {\n            if (elements) {\n                elements.push(el);\n            }\n            var files = el.files;\n            if (files.length) {\n                for (j=0; j < files.length; j++) {\n                    a.push({name: n, value: files[j], type: el.type});\n                }\n            }\n            else {\n                // #180\n                a.push({ name: n, value: '', type: el.type });\n            }\n        }\n        else if (v !== null && typeof v != 'undefined') {\n            if (elements) {\n                elements.push(el);\n            }\n            a.push({name: n, value: v, type: el.type, required: el.required});\n        }\n    }\n\n    if (!semantic && form.clk) {\n        // input type=='image' are not found in elements array! handle it here\n        var $input = $(form.clk), input = $input[0];\n        n = input.name;\n        if (n && !input.disabled && input.type == 'image') {\n            a.push({name: n, value: $input.val()});\n            a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});\n        }\n    }\n    return a;\n};\n\n/**\n * Serializes form data into a 'submittable' string. This method will return a string\n * in the format: name1=value1&amp;name2=value2\n */\n$.fn.formSerialize = function(semantic) {\n    //hand off to jQuery.param for proper encoding\n    return $.param(this.formToArray(semantic));\n};\n\n/**\n * Serializes all field elements in the jQuery object into a query string.\n * This method will return a string in the format: name1=value1&amp;name2=value2\n */\n$.fn.fieldSerialize = function(successful) {\n    var a = [];\n    this.each(function() {\n        var n = this.name;\n        if (!n) {\n            return;\n        }\n        var v = $.fieldValue(this, successful);\n        if (v && v.constructor == Array) {\n            for (var i=0,max=v.length; i < max; i++) {\n                a.push({name: n, value: v[i]});\n            }\n        }\n        else if (v !== null && typeof v != 'undefined') {\n            a.push({name: this.name, value: v});\n        }\n    });\n    //hand off to jQuery.param for proper encoding\n    return $.param(a);\n};\n\n/**\n * Returns the value(s) of the element in the matched set.  For example, consider the following form:\n *\n *  <form><fieldset>\n *      <input name=\"A\" type=\"text\" />\n *      <input name=\"A\" type=\"text\" />\n *      <input name=\"B\" type=\"checkbox\" value=\"B1\" />\n *      <input name=\"B\" type=\"checkbox\" value=\"B2\"/>\n *      <input name=\"C\" type=\"radio\" value=\"C1\" />\n *      <input name=\"C\" type=\"radio\" value=\"C2\" />\n *  </fieldset></form>\n *\n *  var v = $('input[type=text]').fieldValue();\n *  // if no values are entered into the text inputs\n *  v == ['','']\n *  // if values entered into the text inputs are 'foo' and 'bar'\n *  v == ['foo','bar']\n *\n *  var v = $('input[type=checkbox]').fieldValue();\n *  // if neither checkbox is checked\n *  v === undefined\n *  // if both checkboxes are checked\n *  v == ['B1', 'B2']\n *\n *  var v = $('input[type=radio]').fieldValue();\n *  // if neither radio is checked\n *  v === undefined\n *  // if first radio is checked\n *  v == ['C1']\n *\n * The successful argument controls whether or not the field element must be 'successful'\n * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).\n * The default value of the successful argument is true.  If this value is false the value(s)\n * for each element is returned.\n *\n * Note: This method *always* returns an array.  If no valid value can be determined the\n *    array will be empty, otherwise it will contain one or more values.\n */\n$.fn.fieldValue = function(successful) {\n    for (var val=[], i=0, max=this.length; i < max; i++) {\n        var el = this[i];\n        var v = $.fieldValue(el, successful);\n        if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {\n            continue;\n        }\n        if (v.constructor == Array) {\n            $.merge(val, v);\n        }\n        else {\n            val.push(v);\n        }\n    }\n    return val;\n};\n\n/**\n * Returns the value of the field element.\n */\n$.fieldValue = function(el, successful) {\n    var n = el.name, t = el.type, tag = el.tagName.toLowerCase();\n    if (successful === undefined) {\n        successful = true;\n    }\n\n    if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||\n        (t == 'checkbox' || t == 'radio') && !el.checked ||\n        (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||\n        tag == 'select' && el.selectedIndex == -1)) {\n            return null;\n    }\n\n    if (tag == 'select') {\n        var index = el.selectedIndex;\n        if (index < 0) {\n            return null;\n        }\n        var a = [], ops = el.options;\n        var one = (t == 'select-one');\n        var max = (one ? index+1 : ops.length);\n        for(var i=(one ? index : 0); i < max; i++) {\n            var op = ops[i];\n            if (op.selected) {\n                var v = op.value;\n                if (!v) { // extra pain for IE...\n                    v = (op.attributes && op.attributes.value && !(op.attributes.value.specified)) ? op.text : op.value;\n                }\n                if (one) {\n                    return v;\n                }\n                a.push(v);\n            }\n        }\n        return a;\n    }\n    return $(el).val();\n};\n\n/**\n * Clears the form data.  Takes the following actions on the form's input fields:\n *  - input text fields will have their 'value' property set to the empty string\n *  - select elements will have their 'selectedIndex' property set to -1\n *  - checkbox and radio inputs will have their 'checked' property set to false\n *  - inputs of type submit, button, reset, and hidden will *not* be effected\n *  - button elements will *not* be effected\n */\n$.fn.clearForm = function(includeHidden) {\n    return this.each(function() {\n        $('input,select,textarea', this).clearFields(includeHidden);\n    });\n};\n\n/**\n * Clears the selected form elements.\n */\n$.fn.clearFields = $.fn.clearInputs = function(includeHidden) {\n    var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list\n    return this.each(function() {\n        var t = this.type, tag = this.tagName.toLowerCase();\n        if (re.test(t) || tag == 'textarea') {\n            this.value = '';\n        }\n        else if (t == 'checkbox' || t == 'radio') {\n            this.checked = false;\n        }\n        else if (tag == 'select') {\n            this.selectedIndex = -1;\n        }\n        else if (t == \"file\") {\n            if (/MSIE/.test(navigator.userAgent)) {\n                $(this).replaceWith($(this).clone(true));\n            } else {\n                $(this).val('');\n            }\n        }\n        else if (includeHidden) {\n            // includeHidden can be the value true, or it can be a selector string\n            // indicating a special test; for example:\n            //  $('#myForm').clearForm('.special:hidden')\n            // the above would clean hidden inputs that have the class of 'special'\n            if ( (includeHidden === true && /hidden/.test(t)) ||\n                 (typeof includeHidden == 'string' && $(this).is(includeHidden)) ) {\n                this.value = '';\n            }\n        }\n    });\n};\n\n/**\n * Resets the form data.  Causes all form elements to be reset to their original value.\n */\n$.fn.resetForm = function() {\n    return this.each(function() {\n        // guard against an input with the name of 'reset'\n        // note that IE reports the reset function as an 'object'\n        if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {\n            this.reset();\n        }\n    });\n};\n\n/**\n * Enables or disables any matching elements.\n */\n$.fn.enable = function(b) {\n    if (b === undefined) {\n        b = true;\n    }\n    return this.each(function() {\n        this.disabled = !b;\n    });\n};\n\n/**\n * Checks/unchecks any matching checkboxes or radio buttons and\n * selects/deselects and matching option elements.\n */\n$.fn.selected = function(select) {\n    if (select === undefined) {\n        select = true;\n    }\n    return this.each(function() {\n        var t = this.type;\n        if (t == 'checkbox' || t == 'radio') {\n            this.checked = select;\n        }\n        else if (this.tagName.toLowerCase() == 'option') {\n            var $sel = $(this).parent('select');\n            if (select && $sel[0] && $sel[0].type == 'select-one') {\n                // deselect all other options\n                $sel.find('option').selected(false);\n            }\n            this.selected = select;\n        }\n    });\n};\n\n// expose debug var\n$.fn.ajaxSubmit.debug = false;\n\n// helper fn for console logging\nfunction log() {\n    if (!$.fn.ajaxSubmit.debug) {\n        return;\n    }\n    var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');\n    if (window.console && window.console.log) {\n        window.console.log(msg);\n    }\n    else if (window.opera && window.opera.postError) {\n        window.opera.postError(msg);\n    }\n}\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery.mockjax.js",
    "content": "/*!\n * MockJax - jQuery Plugin to Mock Ajax requests\n *\n * Version:  1.5.0pre\n * Released:\n * Home:   http://github.com/appendto/jquery-mockjax\n * Author:   Jonathan Sharp (http://jdsharp.com)\n * License:  MIT,GPL\n *\n * Copyright (c) 2011 appendTo LLC.\n * Dual licensed under the MIT or GPL licenses.\n * http://appendto.com/open-source-licenses\n */\n(function($) {\n\tvar _ajax = $.ajax,\n\t\tmockHandlers = [],\n\t\tCALLBACK_REGEX = /=\\?(&|$)/, \n\t\tjsc = (new Date()).getTime();\n\n\t\n\t// Parse the given XML string. \n\tfunction parseXML(xml) {\n\t\tif ( window['DOMParser'] == undefined && window.ActiveXObject ) {\n\t\t\tDOMParser = function() { };\n\t\t\tDOMParser.prototype.parseFromString = function( xmlString ) {\n\t\t\t\tvar doc = new ActiveXObject('Microsoft.XMLDOM');\n\t\t\t\tdoc.async = 'false';\n\t\t\t\tdoc.loadXML( xmlString );\n\t\t\t\treturn doc;\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tvar xmlDoc \t= ( new DOMParser() ).parseFromString( xml, 'text/xml' );\n\t\t\tif ( $.isXMLDoc( xmlDoc ) ) {\n\t\t\t\tvar err = $('parsererror', xmlDoc);\n\t\t\t\tif ( err.length == 1 ) {\n\t\t\t\t\tthrow('Error: ' + $(xmlDoc).text() );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow('Unable to parse XML');\n\t\t\t}\n\t\t} catch( e ) {\n\t\t\tvar msg = ( e.name == undefined ? e : e.name + ': ' + e.message );\n\t\t\t$(document).trigger('xmlParseError', [ msg ]);\n\t\t\treturn undefined;\n\t\t}\n\t\treturn xmlDoc;\n\t}\n\n\t// Trigger a jQuery event\n\tfunction trigger(s, type, args) {\n\t\t(s.context ? jQuery(s.context) : jQuery.event).trigger(type, args);\n\t}\n\n\t// Check if the data field on the mock handler and the request match. This \n\t// can be used to restrict a mock handler to being used only when a certain\n\t// set of data is passed to it.\n\tfunction isMockDataEqual( mock, live ) {\n\t\tvar identical = false;\n\t\t// Test for situations where the data is a querystring (not an object)\n\t\tif (typeof live === 'string') {\n\t\t\t// Querystring may be a regex\n\t\t\treturn $.isFunction( mock.test ) ? mock.test(live) : mock == live;\n\t\t}\n\t\t$.each(mock, function(k, v) {\n\t\t\tif ( live[k] === undefined ) {\n\t\t\t\tidentical = false;\n\t\t\t\treturn identical;\n\t\t\t} else {\n\t\t\t\tidentical = true;\n\t\t\t\tif ( typeof live[k] == 'object' ) {\n\t\t\t\t\treturn isMockDataEqual(mock[k], live[k]);\n\t\t\t\t} else {\n\t\t\t\t\tif ( $.isFunction( mock[k].test ) ) {\n\t\t\t\t\t\tidentical = mock[k].test(live[k]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidentical = ( mock[k] == live[k] );\n\t\t\t\t\t}\n\t\t\t\t\treturn identical;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn identical;\n\t}\n\n\t// Check the given handler should mock the given request\n\tfunction getMockForRequest( handler, requestSettings ) {\n\t\t// If the mock was registered with a function, let the function decide if we\n\t\t// want to mock this request\n\t\tif ( $.isFunction(handler) ) {\n\t\t\treturn handler( requestSettings );\n\t\t}\n\n\t\t// Inspect the URL of the request and check if the mock handler's url\n\t\t// matches the url for this ajax request\n\t\tif ( $.isFunction(handler.url.test) ) {\n\t\t\t// The user provided a regex for the url, test it\n\t\t\tif ( !handler.url.test( requestSettings.url ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t} else {\n\t\t\t// Look for a simple wildcard '*' or a direct URL match\n\t\t\tvar star = handler.url.indexOf('*');\n\t\t\tif (handler.url !== requestSettings.url && star === -1 || \n\t\t\t\t\t!new RegExp(handler.url.replace(/[-[\\]{}()+?.,\\\\^$|#\\s]/g, \"\\\\$&\").replace('*', '.+')).test(requestSettings.url)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\t// Inspect the data submitted in the request (either POST body or GET query string)\n\t\tif ( handler.data && requestSettings.data ) {\n\t\t\tif ( !isMockDataEqual(handler.data, requestSettings.data) ) {\n\t\t\t\t// They're not identical, do not mock this request\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t// Inspect the request type\n\t\tif ( handler && handler.type && \n\t\t\t\t handler.type.toLowerCase() != requestSettings.type.toLowerCase() ) {\n\t\t\t// The request type doesn't match (GET vs. POST)\n\t\t\treturn null;\n\t\t}\n\n\t\treturn handler;\n\t}\n\n\t// If logging is enabled, log the mock to the console\n\tfunction logMock( mockHandler, requestSettings ) {\n\t\tvar c = $.extend({}, $.mockjaxSettings, mockHandler);\n\t\tif ( c.log && $.isFunction(c.log) ) {\n\t\t\tc.log('MOCK ' + requestSettings.type.toUpperCase() + ': ' + requestSettings.url, $.extend({}, requestSettings));\n\t\t}\n\t}\n\n\t// Process the xhr objects send operation\n\tfunction _xhrSend(mockHandler, requestSettings, origSettings) {\n\n\t\t// This is a substitute for < 1.4 which lacks $.proxy\n\t\tvar process = (function(that) {\n\t\t\treturn function() {\n\t\t\t\treturn (function() {\n\t\t\t\t\t// The request has returned\n\t\t\t\t\tthis.status \t\t= mockHandler.status;\n\t\t\t\t\tthis.statusText\t\t= mockHandler.statusText;\n\t\t\t\t\tthis.readyState \t= 4;\n\n\t\t\t\t\t// We have an executable function, call it to give\n\t\t\t\t\t// the mock handler a chance to update it's data\n\t\t\t\t\tif ( $.isFunction(mockHandler.response) ) {\n\t\t\t\t\t\tmockHandler.response(origSettings);\n\t\t\t\t\t}\n\t\t\t\t\t// Copy over our mock to our xhr object before passing control back to\n\t\t\t\t\t// jQuery's onreadystatechange callback\n\t\t\t\t\tif ( requestSettings.dataType == 'json' && ( typeof mockHandler.responseText == 'object' ) ) {\n\t\t\t\t\t\tthis.responseText = JSON.stringify(mockHandler.responseText);\n\t\t\t\t\t} else if ( requestSettings.dataType == 'xml' ) {\n\t\t\t\t\t\tif ( typeof mockHandler.responseXML == 'string' ) {\n\t\t\t\t\t\t\tthis.responseXML = parseXML(mockHandler.responseXML);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.responseXML = mockHandler.responseXML;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.responseText = mockHandler.responseText;\n\t\t\t\t\t}\n\t\t\t\t\tif( typeof mockHandler.status == 'number' || typeof mockHandler.status == 'string' ) {\n\t\t\t\t\t\tthis.status = mockHandler.status;\n\t\t\t\t\t}\n\t\t\t\t\tif( typeof mockHandler.statusText === \"string\") {\n\t\t\t\t\t\tthis.statusText = mockHandler.statusText;\n\t\t\t\t\t}\n\t\t\t\t\t// jQuery < 1.4 doesn't have onreadystate change for xhr\n\t\t\t\t\tif ( $.isFunction(this.onreadystatechange) ) {\n\t\t\t\t\t\tif( mockHandler.isTimeout) {\n\t\t\t\t\t\t\tthis.status = -1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.onreadystatechange( mockHandler.isTimeout ? 'timeout' : undefined );\n\t\t\t\t\t} else if ( mockHandler.isTimeout ) {\n\t\t\t\t\t\t// Fix for 1.3.2 timeout to keep success from firing.\n\t\t\t\t\t\tthis.status = -1;\n\t\t\t\t\t}\n\t\t\t\t}).apply(that);\n\t\t\t};\n\t\t})(this);\n\n\t\tif ( mockHandler.proxy ) {\n\t\t\t// We're proxying this request and loading in an external file instead\n\t\t\t_ajax({\n\t\t\t\tglobal: false,\n\t\t\t\turl: mockHandler.proxy,\n\t\t\t\ttype: mockHandler.proxyType,\n\t\t\t\tdata: mockHandler.data,\n\t\t\t\tdataType: requestSettings.dataType === \"script\" ? \"text/plain\" : requestSettings.dataType,\n\t\t\t\tcomplete: function(xhr, txt) {\n\t\t\t\t\tmockHandler.responseXML = xhr.responseXML;\n\t\t\t\t\tmockHandler.responseText = xhr.responseText;\n\t\t\t\t\tmockHandler.status = xhr.status;\n\t\t\t\t\tmockHandler.statusText = xhr.statusText;\n\t\t\t\t\tthis.responseTimer = setTimeout(process, mockHandler.responseTime || 0);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// type == 'POST' || 'GET' || 'DELETE'\n\t\t\tif ( requestSettings.async === false ) {\n\t\t\t\t// TODO: Blocking delay\n\t\t\t\tprocess();\n\t\t\t} else {\n\t\t\t\tthis.responseTimer = setTimeout(process, mockHandler.responseTime || 50);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Construct a mocked XHR Object\n\tfunction xhr(mockHandler, requestSettings, origSettings, origHandler) {\n\t\t// Extend with our default mockjax settings\n\t\tmockHandler = $.extend({}, $.mockjaxSettings, mockHandler);\n\n\t\tif (typeof mockHandler.headers === 'undefined') {\n\t\t\tmockHandler.headers = {};\n\t\t}\n\t\tif ( mockHandler.contentType ) {\n\t\t\tmockHandler.headers['content-type'] = mockHandler.contentType;\n\t\t}\n\n\t\treturn {\n\t\t\tstatus: mockHandler.status,\n\t\t\tstatusText: mockHandler.statusText,\n\t\t\treadyState: 1,\n\t\t\topen: function() { },\n\t\t\tsend: function() {\n\t\t\t\torigHandler.fired = true;\n\t\t\t\t_xhrSend.call(this, mockHandler, requestSettings, origSettings);\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tclearTimeout(this.responseTimer);\n\t\t\t},\n\t\t\tsetRequestHeader: function(header, value) {\n\t\t\t\tmockHandler.headers[header] = value;\n\t\t\t},\n\t\t\tgetResponseHeader: function(header) {\n\t\t\t\t// 'Last-modified', 'Etag', 'content-type' are all checked by jQuery\n\t\t\t\tif ( mockHandler.headers && mockHandler.headers[header] ) {\n\t\t\t\t\t// Return arbitrary headers\n\t\t\t\t\treturn mockHandler.headers[header];\n\t\t\t\t} else if ( header.toLowerCase() == 'last-modified' ) {\n\t\t\t\t\treturn mockHandler.lastModified || (new Date()).toString();\n\t\t\t\t} else if ( header.toLowerCase() == 'etag' ) {\n\t\t\t\t\treturn mockHandler.etag || '';\n\t\t\t\t} else if ( header.toLowerCase() == 'content-type' ) {\n\t\t\t\t\treturn mockHandler.contentType || 'text/plain';\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\tvar headers = '';\n\t\t\t\t$.each(mockHandler.headers, function(k, v) {\n\t\t\t\t\theaders += k + ': ' + v + \"\\n\";\n\t\t\t\t});\n\t\t\t\treturn headers;\n\t\t\t}\n\t\t};\n\t}\n\n\t// Process a JSONP mock request.\n\tfunction processJsonpMock( requestSettings, mockHandler, origSettings ) {\n\t\t// Handle JSONP Parameter Callbacks, we need to replicate some of the jQuery core here\n\t\t// because there isn't an easy hook for the cross domain script tag of jsonp\n\n\t\tprocessJsonpUrl( requestSettings );\n\n\t\trequestSettings.dataType = \"json\";\n\t\tif(requestSettings.data && CALLBACK_REGEX.test(requestSettings.data) || CALLBACK_REGEX.test(requestSettings.url)) {\n\t\t\tcreateJsonpCallback(requestSettings, mockHandler);\n\n\t\t\t// We need to make sure\n\t\t\t// that a JSONP style response is executed properly\n\n\t\t\tvar rurl = /^(\\w+:)?\\/\\/([^\\/?#]+)/,\n\t\t\t\tparts = rurl.exec( requestSettings.url ),\n\t\t\t\tremote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host);\n\n\t\t\trequestSettings.dataType = \"script\";\n\t\t\tif(requestSettings.type.toUpperCase() === \"GET\" && remote ) {\n\t\t\t\tvar newMockReturn = processJsonpRequest( requestSettings, mockHandler, origSettings );\n\n\t\t\t\t// Check if we are supposed to return a Deferred back to the mock call, or just \n\t\t\t\t// signal success\n\t\t\t\tif(newMockReturn) {\n\t\t\t\t\treturn newMockReturn;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t// Append the required callback parameter to the end of the request URL, for a JSONP request\n\tfunction processJsonpUrl( requestSettings ) {\n\t\tif ( requestSettings.type.toUpperCase() === \"GET\" ) {\n\t\t\tif ( !CALLBACK_REGEX.test( requestSettings.url ) ) {\n\t\t\t\trequestSettings.url += (/\\?/.test( requestSettings.url ) ? \"&\" : \"?\") + \n\t\t\t\t\t(requestSettings.jsonp || \"callback\") + \"=?\";\n\t\t\t}\n\t\t} else if ( !requestSettings.data || !CALLBACK_REGEX.test(requestSettings.data) ) {\n\t\t\trequestSettings.data = (requestSettings.data ? requestSettings.data + \"&\" : \"\") + (requestSettings.jsonp || \"callback\") + \"=?\";\n\t\t}\n\t}\n\t\n\t// Process a JSONP request by evaluating the mocked response text\n\tfunction processJsonpRequest( requestSettings, mockHandler, origSettings ) {\n\t\t// Synthesize the mock request for adding a script tag\n\t\tvar callbackContext = origSettings && origSettings.context || requestSettings,\n\t\t\tnewMock = null;\n\n\n\t\t// If the response handler on the moock is a function, call it\n\t\tif ( mockHandler.response && $.isFunction(mockHandler.response) ) {\n\t\t\tmockHandler.response(origSettings);\n\t\t} else {\n\n\t\t\t// Evaluate the responseText javascript in a global context\n\t\t\tif( typeof mockHandler.responseText === 'object' ) {\n\t\t\t\t$.globalEval( '(' + JSON.stringify( mockHandler.responseText ) + ')');\n\t\t\t} else {\n\t\t\t\t$.globalEval( '(' + mockHandler.responseText + ')');\n\t\t\t}\n\t\t}\n\n\t\t// Successful response\n\t\tjsonpSuccess( requestSettings, mockHandler );\n\t\tjsonpComplete( requestSettings, mockHandler );\n\n\t\t// If we are running under jQuery 1.5+, return a deferred object\n\t\tif(jQuery.Deferred){\n\t\t\tnewMock = new jQuery.Deferred();\n\t\t\tif(typeof mockHandler.responseText == \"object\"){\n\t\t\t\tnewMock.resolve( mockHandler.responseText );\n\t\t\t}\n\t\t\telse{\n\t\t\t\tnewMock.resolve( jQuery.parseJSON( mockHandler.responseText ) );\n\t\t\t}\n\t\t}\n\t\treturn newMock;\n\t}\n\n\n\t// Create the required JSONP callback function for the request\n\tfunction createJsonpCallback( requestSettings, mockHandler ) {\n\t\tjsonp = requestSettings.jsonpCallback || (\"jsonp\" + jsc++);\n\n\t\t// Replace the =? sequence both in the query string and the data\n\t\tif ( requestSettings.data ) {\n\t\t\trequestSettings.data = (requestSettings.data + \"\").replace(CALLBACK_REGEX, \"=\" + jsonp + \"$1\");\n\t\t}\n\n\t\trequestSettings.url = requestSettings.url.replace(CALLBACK_REGEX, \"=\" + jsonp + \"$1\");\n\n\n\t\t// Handle JSONP-style loading\n\t\twindow[ jsonp ] = window[ jsonp ] || function( tmp ) {\n\t\t\tdata = tmp;\n\t\t\tjsonpSuccess( requestSettings, mockHandler );\n\t\t\tjsonpComplete( requestSettings, mockHandler );\n\t\t\t// Garbage collect\n\t\t\twindow[ jsonp ] = undefined;\n\n\t\t\ttry {\n\t\t\t\tdelete window[ jsonp ];\n\t\t\t} catch(e) {}\n\n\t\t\tif ( head ) {\n\t\t\t\thead.removeChild( script );\n\t\t\t}\n\t\t};\n\t}\n\n\t// The JSONP request was successful\n\tfunction jsonpSuccess(requestSettings, mockHandler) {\n\t\t// If a local callback was specified, fire it and pass it the data\n\t\tif ( requestSettings.success ) {\n\t\t\trequestSettings.success.call( callbackContext, ( mockHandler.response ? mockHandler.response.toString() : mockHandler.responseText || ''), status, {} );\n\t\t}\n\n\t\t// Fire the global callback\n\t\tif ( requestSettings.global ) {\n\t\t\ttrigger(requestSettings, \"ajaxSuccess\", [{}, requestSettings] );\n\t\t}\n\t}\n\n\t// The JSONP request was completed\n\tfunction jsonpComplete(requestSettings, mockHandler) {\n\t\t// Process result\n\t\tif ( requestSettings.complete ) {\n\t\t\trequestSettings.complete.call( callbackContext, {} , status );\n\t\t}\n\n\t\t// The request was completed\n\t\tif ( requestSettings.global ) {\n\t\t\ttrigger( \"ajaxComplete\", [{}, requestSettings] );\n\t\t}\n\n\t\t// Handle the global AJAX counter\n\t\tif ( requestSettings.global && ! --jQuery.active ) {\n\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t}\n\t}\n\n\n\t// The core $.ajax replacement.  \n\tfunction handleAjax( url, origSettings ) {\n\t\tvar mockRequest, requestSettings, mockHandler;\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\torigSettings = url;\n\t\t\turl = undefined;\n\t\t} else {\n\t\t\t// work around to support 1.5 signature\n\t\t\torigSettings.url = url;\n\t\t}\n\t\t\n\t\t// Extend the original settings for the request\n\t\trequestSettings = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings);\n\n\t\t// Iterate over our mock handlers (in registration order) until we find\n\t\t// one that is willing to intercept the request\n\t\tfor(var k = 0; k < mockHandlers.length; k++) {\n\t\t\tif ( !mockHandlers[k] ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tmockHandler = getMockForRequest( mockHandlers[k], requestSettings );\n\t\t\tif(!mockHandler) {\n\t\t\t\t// No valid mock found for this request\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Handle console logging\n\t\t\tlogMock( mockHandler, requestSettings );\n\n\n\t\t\tif ( requestSettings.dataType === \"jsonp\" ) {\n\t\t\t\tif ((mockRequest = processJsonpMock( requestSettings, mockHandler, origSettings ))) {\n\t\t\t\t\t// This mock will handle the JSONP request\n\t\t\t\t\treturn mockRequest;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\t// Removed to fix #54 - keep the mocking data object intact\n\t\t\t//mockHandler.data = requestSettings.data;\n\n\t\t\tmockHandler.cache = requestSettings.cache;\n\t\t\tmockHandler.timeout = requestSettings.timeout;\n\t\t\tmockHandler.global = requestSettings.global;\n\n\t\t\t(function(mockHandler, requestSettings, origSettings, origHandler) {\n\t\t\t\tmockRequest = _ajax.call($, $.extend(true, {}, origSettings, {\n\t\t\t\t\t// Mock the XHR object\n\t\t\t\t\txhr: function() { return xhr( mockHandler, requestSettings, origSettings, origHandler ) }\n\t\t\t\t}));\n\t\t\t})(mockHandler, requestSettings, origSettings, mockHandlers[k]);\n\n\t\t\treturn mockRequest;\n\t\t}\n\n\t\t// We don't have a mock request, trigger a normal request\n\t\treturn _ajax.apply($, [origSettings]);\n\t}\n\n\n\t// Public\n\n\t$.extend({\n\t\tajax: handleAjax\n\t});\n\n\t$.mockjaxSettings = {\n\t\t//url:        null,\n\t\t//type:       'GET',\n\t\tlog:          function(msg) {\n\t\t\t\t\t\t\t\t\t\twindow['console'] && window.console.log && window.console.log(msg);\n\t\t\t\t\t  \t\t\t},\n\t\tstatus:       200,\n\t\tstatusText:   \"OK\",\n\t\tresponseTime: 500,\n\t\tisTimeout:    false,\n\t\tcontentType:  'text/plain',\n\t\tresponse:     '',\n\t\tresponseText: '',\n\t\tresponseXML:  '',\n\t\tproxy:        '',\n\t\tproxyType:    'GET',\n\n\t\tlastModified: null,\n\t\tetag:         '',\n\t\theaders: {\n\t\t\tetag: 'IJF@H#@923uf8023hFO@I#H#',\n\t\t\t'content-type' : 'text/plain'\n\t\t}\n\t};\n\n\t$.mockjax = function(settings) {\n\t\tvar i = mockHandlers.length;\n\t\tmockHandlers[i] = settings;\n\t\treturn i;\n\t};\n\t$.mockjaxClear = function(i) {\n\t\tif ( arguments.length == 1 ) {\n\t\t\tmockHandlers[i] = null;\n\t\t} else {\n\t\t\tmockHandlers = [];\n\t\t}\n\t};\n\t$.mockjax.handler = function(i) {\n\t  if ( arguments.length == 1 ) {\n\t\t\treturn mockHandlers[i];\n\t\t}\n\t};\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jquery.parallax.js",
    "content": "/*\nPlugin: jQuery Parallax\nVersion 1.1.3\nAuthor: Ian Lunn\nTwitter: @IanLunn\nAuthor URL: http://www.ianlunn.co.uk/\nPlugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/\n\nDual licensed under the MIT and GPL licenses:\nhttp://www.opensource.org/licenses/mit-license.php\nhttp://www.gnu.org/licenses/gpl.html\n*/\n\n(function( $ ){\n\tvar $window = $(window);\n\tvar windowHeight = $window.height();\n\n\t$window.resize(function () {\n\t\twindowHeight = $window.height();\n\t});\n\n\t$.fn.parallax = function(xpos, speedFactor, outerHeight) {\n\t\tvar $this = $(this);\n\t\tvar getHeight;\n\t\tvar firstTop;\n\t\tvar paddingTop = 0;\n\t\t\n\t\t//get the starting position of each element to have parallax applied to it\t\t\n\t\t$this.each(function(){\n\t\t    firstTop = $this.offset().top;\n\t\t});\n\n\t\tif (outerHeight) {\n\t\t\tgetHeight = function(jqo) {\n\t\t\t\treturn jqo.outerHeight(true);\n\t\t\t};\n\t\t} else {\n\t\t\tgetHeight = function(jqo) {\n\t\t\t\treturn jqo.height();\n\t\t\t};\n\t\t}\n\t\t\t\n\t\t// setup defaults if arguments aren't specified\n\t\tif (arguments.length < 1 || xpos === null) xpos = \"50%\";\n\t\tif (arguments.length < 2 || speedFactor === null) speedFactor = 0.1;\n\t\tif (arguments.length < 3 || outerHeight === null) outerHeight = true;\n\t\t\n\t\t// function to be called whenever the window is scrolled or resized\n\t\tfunction update(){\n\t\t\tvar pos = $window.scrollTop();\t\t\t\t\n\n\t\t\t$this.each(function(){\n\t\t\t\tvar $element = $(this);\n\t\t\t\tvar top = $element.offset().top;\n\t\t\t\tvar height = getHeight($element);\n\n\t\t\t\t// Check if totally above or totally below viewport\n\t\t\t\tif (top + height < pos || top > pos + windowHeight) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t$this.css('backgroundPosition', xpos + \" \" + Math.round((firstTop - pos) * speedFactor) + \"px\");\n\t\t\t});\n\t\t}\t\t\n\n\t\t$window.bind('scroll', update).resize(update);\n\t\tupdate();\n\t};\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/data/jquery.vmap.sampledata.js",
    "content": "var sample_data = {\"af\":\"16.63\",\"al\":\"11.58\",\"dz\":\"158.97\",\"ao\":\"85.81\",\"ag\":\"1.1\",\"ar\":\"351.02\",\"am\":\"8.83\",\"au\":\"1219.72\",\"at\":\"366.26\",\"az\":\"52.17\",\"bs\":\"7.54\",\"bh\":\"21.73\",\"bd\":\"105.4\",\"bb\":\"3.96\",\"by\":\"52.89\",\"be\":\"461.33\",\"bz\":\"1.43\",\"bj\":\"6.49\",\"bt\":\"1.4\",\"bo\":\"19.18\",\"ba\":\"16.2\",\"bw\":\"12.5\",\"br\":\"2023.53\",\"bn\":\"11.96\",\"bg\":\"44.84\",\"bf\":\"8.67\",\"bi\":\"1.47\",\"kh\":\"11.36\",\"cm\":\"21.88\",\"ca\":\"1563.66\",\"cv\":\"1.57\",\"cf\":\"2.11\",\"td\":\"7.59\",\"cl\":\"199.18\",\"cn\":\"5745.13\",\"co\":\"283.11\",\"km\":\"0.56\",\"cd\":\"12.6\",\"cg\":\"11.88\",\"cr\":\"35.02\",\"ci\":\"22.38\",\"hr\":\"59.92\",\"cy\":\"22.75\",\"cz\":\"195.23\",\"dk\":\"304.56\",\"dj\":\"1.14\",\"dm\":\"0.38\",\"do\":\"50.87\",\"ec\":\"61.49\",\"eg\":\"216.83\",\"sv\":\"21.8\",\"gq\":\"14.55\",\"er\":\"2.25\",\"ee\":\"19.22\",\"et\":\"30.94\",\"fj\":\"3.15\",\"fi\":\"231.98\",\"fr\":\"2555.44\",\"ga\":\"12.56\",\"gm\":\"1.04\",\"ge\":\"11.23\",\"de\":\"3305.9\",\"gh\":\"18.06\",\"gr\":\"305.01\",\"gd\":\"0.65\",\"gt\":\"40.77\",\"gn\":\"4.34\",\"gw\":\"0.83\",\"gy\":\"2.2\",\"ht\":\"6.5\",\"hn\":\"15.34\",\"hk\":\"226.49\",\"hu\":\"132.28\",\"is\":\"12.77\",\"in\":\"1430.02\",\"id\":\"695.06\",\"ir\":\"337.9\",\"iq\":\"84.14\",\"ie\":\"204.14\",\"il\":\"201.25\",\"it\":\"2036.69\",\"jm\":\"13.74\",\"jp\":\"5390.9\",\"jo\":\"27.13\",\"kz\":\"129.76\",\"ke\":\"32.42\",\"ki\":\"0.15\",\"kr\":\"986.26\",\"undefined\":\"5.73\",\"kw\":\"117.32\",\"kg\":\"4.44\",\"la\":\"6.34\",\"lv\":\"23.39\",\"lb\":\"39.15\",\"ls\":\"1.8\",\"lr\":\"0.98\",\"ly\":\"77.91\",\"lt\":\"35.73\",\"lu\":\"52.43\",\"mk\":\"9.58\",\"mg\":\"8.33\",\"mw\":\"5.04\",\"my\":\"218.95\",\"mv\":\"1.43\",\"ml\":\"9.08\",\"mt\":\"7.8\",\"mr\":\"3.49\",\"mu\":\"9.43\",\"mx\":\"1004.04\",\"md\":\"5.36\",\"mn\":\"5.81\",\"me\":\"3.88\",\"ma\":\"91.7\",\"mz\":\"10.21\",\"mm\":\"35.65\",\"na\":\"11.45\",\"np\":\"15.11\",\"nl\":\"770.31\",\"nz\":\"138\",\"ni\":\"6.38\",\"ne\":\"5.6\",\"ng\":\"206.66\",\"no\":\"413.51\",\"om\":\"53.78\",\"pk\":\"174.79\",\"pa\":\"27.2\",\"pg\":\"8.81\",\"py\":\"17.17\",\"pe\":\"153.55\",\"ph\":\"189.06\",\"pl\":\"438.88\",\"pt\":\"223.7\",\"qa\":\"126.52\",\"ro\":\"158.39\",\"ru\":\"1476.91\",\"rw\":\"5.69\",\"ws\":\"0.55\",\"st\":\"0.19\",\"sa\":\"434.44\",\"sn\":\"12.66\",\"rs\":\"38.92\",\"sc\":\"0.92\",\"sl\":\"1.9\",\"sg\":\"217.38\",\"sk\":\"86.26\",\"si\":\"46.44\",\"sb\":\"0.67\",\"za\":\"354.41\",\"es\":\"1374.78\",\"lk\":\"48.24\",\"kn\":\"0.56\",\"lc\":\"1\",\"vc\":\"0.58\",\"sd\":\"65.93\",\"sr\":\"3.3\",\"sz\":\"3.17\",\"se\":\"444.59\",\"ch\":\"522.44\",\"sy\":\"59.63\",\"tw\":\"426.98\",\"tj\":\"5.58\",\"tz\":\"22.43\",\"th\":\"312.61\",\"tl\":\"0.62\",\"tg\":\"3.07\",\"to\":\"0.3\",\"tt\":\"21.2\",\"tn\":\"43.86\",\"tr\":\"729.05\",\"tm\":0,\"ug\":\"17.12\",\"ua\":\"136.56\",\"ae\":\"239.65\",\"gb\":\"2258.57\",\"us\":\"14624.18\",\"uy\":\"40.71\",\"uz\":\"37.72\",\"vu\":\"0.72\",\"ve\":\"285.21\",\"vn\":\"101.99\",\"ye\":\"30.02\",\"zm\":\"15.69\",\"zw\":\"5.57\"};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/jquery.vmap.js",
    "content": "/*!\n * jQVMap Version 1.0\n *\n * http://jqvmap.com\n *\n * Copyright 2012, Peter Schmalfeldt <manifestinteractive@gmail.com>\n * Copyright 2011-2012, Kirill Lebedev\n * Licensed under the MIT license.\n *\n * Fork Me @ https://github.com/manifestinteractive/jqvmap\n */\n(function ($) {\n\n  var apiParams = {\n    colors: 1,\n    values: 1,\n    backgroundColor: 1,\n    scaleColors: 1,\n    normalizeFunction: 1,\n    enableZoom: 1,\n    showTooltip: 1,\n    borderColor: 1,\n    borderWidth: 1,\n    borderOpacity: 1,\n    selectedRegions: 1,\n    multiSelectRegion: 1\n  };\n\n  var apiEvents = {\n    onLabelShow: 'labelShow',\n    onRegionOver: 'regionMouseOver',\n    onRegionOut: 'regionMouseOut',\n    onRegionClick: 'regionClick',\n    onRegionSelect: 'regionSelect',\n    onRegionDeselect: 'regionDeselect'\n  };\n\n  $.fn.vectorMap = function (options) {\n\n    var defaultParams = {\n      map: 'world_en',\n      backgroundColor: '#a5bfdd',\n      color: '#f4f3f0',\n      hoverColor: '#c9dfaf',\n      selectedColor: '#c9dfaf',\n      scaleColors: ['#b6d6ff', '#005ace'],\n      normalizeFunction: 'linear',\n      enableZoom: true,\n      showTooltip: true,\n      borderColor: '#818181',\n      borderWidth: 1,\n      borderOpacity: 0.25,\n      selectedRegions: null,\n      multiSelectRegion: false\n    }, map = this.data('mapObject');\n\n    if (options === 'addMap') {\n      WorldMap.maps[arguments[1]] = arguments[2];\n    } else if (options === 'set' && apiParams[arguments[1]]) {\n      map['set' + arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1)].apply(map, Array.prototype.slice.call(arguments, 2));\n    } else if (typeof options === 'string' &&\n               typeof map[options] === 'function') {\n      return map[options].apply(map, Array.prototype.slice.call(arguments, 1));\n    } else {\n      $.extend(defaultParams, options);\n      defaultParams.container = this;\n      this.css({ position: 'relative', overflow: 'hidden' });\n\n      map = new WorldMap(defaultParams);\n\n      this.data('mapObject', map);\n\n      for (var e in apiEvents) {\n        if (defaultParams[e]) {\n          this.bind(apiEvents[e] + '.jqvmap', defaultParams[e]);\n        }\n      }\n    }\n  };\n\n  var VectorCanvas = function (width, height, params) {\n    this.mode = window.SVGAngle ? 'svg' : 'vml';\n    this.params = params;\n\n    if (this.mode == 'svg') {\n      this.createSvgNode = function (nodeName) {\n        return document.createElementNS(this.svgns, nodeName);\n      };\n    } else {\n      try {\n        if (!document.namespaces.rvml) {\n          document.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\");\n        }\n        this.createVmlNode = function (tagName) {\n          return document.createElement('<rvml:' + tagName + ' class=\"rvml\">');\n        };\n      } catch (e) {\n        this.createVmlNode = function (tagName) {\n          return document.createElement('<' + tagName + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n        };\n      }\n\n      document.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\");\n    }\n\n    if (this.mode == 'svg') {\n      this.canvas = this.createSvgNode('svg');\n    } else {\n      this.canvas = this.createVmlNode('group');\n      this.canvas.style.position = 'absolute';\n    }\n\n    this.setSize(width, height);\n  };\n\n  VectorCanvas.prototype = {\n    svgns: \"http://www.w3.org/2000/svg\",\n    mode: 'svg',\n    width: 0,\n    height: 0,\n    canvas: null,\n\n    setSize: function (width, height) {\n      if (this.mode == 'svg') {\n        this.canvas.setAttribute('width', width);\n        this.canvas.setAttribute('height', height);\n      } else {\n        this.canvas.style.width = width + \"px\";\n        this.canvas.style.height = height + \"px\";\n        this.canvas.coordsize = width + ' ' + height;\n        this.canvas.coordorigin = \"0 0\";\n        if (this.rootGroup) {\n          var pathes = this.rootGroup.getElementsByTagName('shape');\n          for (var i = 0, l = pathes.length; i < l; i++) {\n            pathes[i].coordsize = width + ' ' + height;\n            pathes[i].style.width = width + 'px';\n            pathes[i].style.height = height + 'px';\n          }\n          this.rootGroup.coordsize = width + ' ' + height;\n          this.rootGroup.style.width = width + 'px';\n          this.rootGroup.style.height = height + 'px';\n        }\n      }\n      this.width = width;\n      this.height = height;\n    },\n\n    createPath: function (config) {\n      var node;\n      if (this.mode == 'svg') {\n        node = this.createSvgNode('path');\n        node.setAttribute('d', config.path);\n\n        if (this.params.borderColor !== null) {\n          node.setAttribute('stroke', this.params.borderColor);\n        }\n        if (this.params.borderWidth > 0) {\n          node.setAttribute('stroke-width', this.params.borderWidth);\n          node.setAttribute('stroke-linecap', 'round');\n          node.setAttribute('stroke-linejoin', 'round');\n        }\n        if (this.params.borderOpacity > 0) {\n          node.setAttribute('stroke-opacity', this.params.borderOpacity);\n        }\n\n        node.setFill = function (color) {\n          this.setAttribute(\"fill\", color);\n          if (this.getAttribute(\"original\") === null) {\n            this.setAttribute(\"original\", color);\n          }\n        };\n\n        node.getFill = function (color) {\n          return this.getAttribute(\"fill\");\n        };\n\n        node.getOriginalFill = function () {\n          return this.getAttribute(\"original\");\n        };\n\n        node.setOpacity = function (opacity) {\n          this.setAttribute('fill-opacity', opacity);\n        };\n      } else {\n        node = this.createVmlNode('shape');\n        node.coordorigin = \"0 0\";\n        node.coordsize = this.width + ' ' + this.height;\n        node.style.width = this.width + 'px';\n        node.style.height = this.height + 'px';\n        node.fillcolor = WorldMap.defaultFillColor;\n        node.stroked = false;\n        node.path = VectorCanvas.pathSvgToVml(config.path);\n\n        var scale = this.createVmlNode('skew');\n        scale.on = true;\n        scale.matrix = '0.01,0,0,0.01,0,0';\n        scale.offset = '0,0';\n\n        node.appendChild(scale);\n\n        var fill = this.createVmlNode('fill');\n        node.appendChild(fill);\n\n        node.setFill = function (color) {\n          this.getElementsByTagName('fill')[0].color = color;\n          if (this.getAttribute(\"original\") === null) {\n            this.setAttribute(\"original\", color);\n          }\n        };\n\n        node.getFill = function (color) {\n          return this.getElementsByTagName('fill')[0].color;\n        };\n        node.getOriginalFill = function () {\n          return this.getAttribute(\"original\");\n        };\n        node.setOpacity = function (opacity) {\n          this.getElementsByTagName('fill')[0].opacity = parseInt(opacity * 100, 10) + '%';\n        };\n      }\n      return node;\n    },\n\n    createGroup: function (isRoot) {\n      var node;\n      if (this.mode == 'svg') {\n        node = this.createSvgNode('g');\n      } else {\n        node = this.createVmlNode('group');\n        node.style.width = this.width + 'px';\n        node.style.height = this.height + 'px';\n        node.style.left = '0px';\n        node.style.top = '0px';\n        node.coordorigin = \"0 0\";\n        node.coordsize = this.width + ' ' + this.height;\n      }\n\n      if (isRoot) {\n        this.rootGroup = node;\n      }\n      return node;\n    },\n\n    applyTransformParams: function (scale, transX, transY) {\n      if (this.mode == 'svg') {\n        this.rootGroup.setAttribute('transform', 'scale(' + scale + ') translate(' + transX + ', ' + transY + ')');\n      } else {\n        this.rootGroup.coordorigin = (this.width - transX) + ',' + (this.height - transY);\n        this.rootGroup.coordsize = this.width / scale + ',' + this.height / scale;\n      }\n    }\n  };\n\n  VectorCanvas.pathSvgToVml = function (path) {\n    var result = '';\n    var cx = 0, cy = 0, ctrlx, ctrly;\n\n    return path.replace(/([MmLlHhVvCcSs])((?:-?(?:\\d+)?(?:\\.\\d+)?,?\\s?)+)/g, function (segment, letter, coords, index) {\n      coords = coords.replace(/(\\d)-/g, '$1,-').replace(/\\s+/g, ',').split(',');\n      if (!coords[0]) {\n        coords.shift();\n      }\n\n      for (var i = 0, l = coords.length; i < l; i++) {\n        coords[i] = Math.round(100 * coords[i]);\n      }\n\n      switch (letter) {\n      case 'm':\n        cx += coords[0];\n        cy += coords[1];\n        return 't' + coords.join(',');\n        break;\n\n      case 'M':\n        cx = coords[0];\n        cy = coords[1];\n        return 'm' + coords.join(',');\n        break;\n\n      case 'l':\n        cx += coords[0];\n        cy += coords[1];\n        return 'r' + coords.join(',');\n        break;\n\n      case 'L':\n        cx = coords[0];\n        cy = coords[1];\n        return 'l' + coords.join(',');\n        break;\n\n      case 'h':\n        cx += coords[0];\n        return 'r' + coords[0] + ',0';\n        break;\n\n      case 'H':\n        cx = coords[0];\n        return 'l' + cx + ',' + cy;\n        break;\n\n      case 'v':\n        cy += coords[0];\n        return 'r0,' + coords[0];\n        break;\n\n      case 'V':\n        cy = coords[0];\n        return 'l' + cx + ',' + cy;\n        break;\n\n      case 'c':\n        ctrlx = cx + coords[coords.length - 4];\n        ctrly = cy + coords[coords.length - 3];\n        cx += coords[coords.length - 2];\n        cy += coords[coords.length - 1];\n        return 'v' + coords.join(',');\n        break;\n\n      case 'C':\n        ctrlx = coords[coords.length - 4];\n        ctrly = coords[coords.length - 3];\n        cx = coords[coords.length - 2];\n        cy = coords[coords.length - 1];\n        return 'c' + coords.join(',');\n        break;\n\n      case 's':\n        coords.unshift(cy - ctrly);\n        coords.unshift(cx - ctrlx);\n        ctrlx = cx + coords[coords.length - 4];\n        ctrly = cy + coords[coords.length - 3];\n        cx += coords[coords.length - 2];\n        cy += coords[coords.length - 1];\n        return 'v' + coords.join(',');\n        break;\n\n      case 'S':\n        coords.unshift(cy + cy - ctrly);\n        coords.unshift(cx + cx - ctrlx);\n        ctrlx = coords[coords.length - 4];\n        ctrly = coords[coords.length - 3];\n        cx = coords[coords.length - 2];\n        cy = coords[coords.length - 1];\n        return 'c' + coords.join(',');\n        break;\n\n      default:\n        return false;\n        break;\n      }\n\n      return '';\n\n    }).replace(/z/g, '');\n  };\n\n  var WorldMap = function (params) {\n    params = params || {};\n    var map = this;\n    var mapData = WorldMap.maps[params.map];\n\n    this.selectedRegions = [];\n    this.multiSelectRegion = params.multiSelectRegion;\n\n    this.container = params.container;\n\n    this.defaultWidth = mapData.width;\n    this.defaultHeight = mapData.height;\n\n    this.color = params.color;\n    this.selectedColor = params.selectedColor;\n    this.hoverColor = params.hoverColor;\n    this.hoverOpacity = params.hoverOpacity;\n    this.setBackgroundColor(params.backgroundColor);\n\n    this.width = params.container.width();\n    this.height = params.container.height();\n\n    this.resize();\n\n    jQuery(window).resize(function () {\n      map.width = params.container.width();\n      map.height = params.container.height();\n      map.resize();\n      map.canvas.setSize(map.width, map.height);\n      map.applyTransform();\n    });\n\n    this.canvas = new VectorCanvas(this.width, this.height, params);\n    params.container.append(this.canvas.canvas);\n\n    this.makeDraggable();\n\n    this.rootGroup = this.canvas.createGroup(true);\n\n    this.index = WorldMap.mapIndex;\n    this.label = jQuery('<div/>').addClass('jqvmap-label').appendTo(jQuery('body'));\n\n    if (params.enableZoom) {\n      jQuery('<div/>').addClass('jqvmap-zoomin').text('+').appendTo(params.container);\n      jQuery('<div/>').addClass('jqvmap-zoomout').html('&#x2212;').appendTo(params.container);\n    }\n\n    map.countries = [];\n\n    for (var key in mapData.pathes) {\n      var path = this.canvas.createPath({\n        path: mapData.pathes[key].path\n      });\n\n      path.setFill(this.color);\n      path.id = map.getCountryId(key);\n      map.countries[key] = path;\n\n      if (this.canvas.mode == 'svg') {\n        path.setAttribute('class', 'jvectormap-region');\n      } else {\n        jQuery(path).addClass('jvectormap-region');\n      }\n\n      jQuery(this.rootGroup).append(path);\n    }\n\n    jQuery(params.container).delegate(this.canvas.mode == 'svg' ? 'path' : 'shape', 'mouseover mouseout', function (e) {\n      var path = e.target,\n      code = e.target.id.split('_').pop(),\n      labelShowEvent = $.Event('labelShow.jqvmap'),\n      regionMouseOverEvent = $.Event('regionMouseOver.jqvmap');\n\n      if (e.type == 'mouseover') {\n        jQuery(params.container).trigger(regionMouseOverEvent, [code, mapData.pathes[code].name]);\n        if (!regionMouseOverEvent.isDefaultPrevented()) {\n          map.highlight(code, path);\n        }\n        if (params.showTooltip) {\n          map.label.text(mapData.pathes[code].name);\n          jQuery(params.container).trigger(labelShowEvent, [map.label, code]);\n\n          if (!labelShowEvent.isDefaultPrevented()) {\n            map.label.show();\n            map.labelWidth = map.label.width();\n            map.labelHeight = map.label.height();\n          }\n        }\n      } else {\n        map.unhighlight(code, path);\n\n        map.label.hide();\n        jQuery(params.container).trigger('regionMouseOut.jqvmap', [code, mapData.pathes[code].name]);\n      }\n    });\n\n    jQuery(params.container).delegate(this.canvas.mode == 'svg' ? 'path' : 'shape', 'click', function (e) {\n      if (!params.multiSelectRegion) {\n        for (var key in mapData.pathes) {\n          map.countries[key].currentFillColor = map.countries[key].getOriginalFill();\n          map.countries[key].setFill(map.countries[key].getOriginalFill());\n        }\n      }\n\n      var path = e.target;\n      var code = e.target.id.split('_').pop();\n\n      jQuery(params.container).trigger('regionClick.jqvmap', [code, mapData.pathes[code].name]);\n\n      if (map.selectedRegions.indexOf(code) !== -1) {\n        map.deselect(code, path);\n      } else {\n        map.select(code, path);\n      }\n\n      //console.log(selectedRegions);\n\n    });\n\n    if (params.showTooltip) {\n      params.container.mousemove(function (e) {\n        if (map.label.is(':visible')) {\n          map.label.css({\n            left: e.pageX - 15 - map.labelWidth,\n            top: e.pageY - 15 - map.labelHeight\n          });\n        }\n      });\n    }\n\n    this.setColors(params.colors);\n\n    this.canvas.canvas.appendChild(this.rootGroup);\n\n    this.applyTransform();\n\n    this.colorScale = new ColorScale(params.scaleColors, params.normalizeFunction, params.valueMin, params.valueMax);\n\n    if (params.values) {\n      this.values = params.values;\n      this.setValues(params.values);\n    }\n\n    if (params.selectedRegions) {\n      if (params.selectedRegions instanceof Array) {\n        for(var k in params.selectedRegions) {\n          this.select(params.selectedRegions[k].toLowerCase());\n        }\n      } else {\n        this.select(params.selectedRegions.toLowerCase());\n      }\n    }\n\n    this.bindZoomButtons();\n\n    WorldMap.mapIndex++;\n  };\n\n  WorldMap.prototype = {\n    transX: 0,\n    transY: 0,\n    scale: 1,\n    baseTransX: 0,\n    baseTransY: 0,\n    baseScale: 1,\n    width: 0,\n    height: 0,\n    countries: {},\n    countriesColors: {},\n    countriesData: {},\n    zoomStep: 1.4,\n    zoomMaxStep: 4,\n    zoomCurStep: 1,\n\n    setColors: function (key, color) {\n      if (typeof key == 'string') {\n        this.countries[key].setFill(color);\n        this.countries[key].setAttribute(\"original\", color);\n      } else {\n        var colors = key;\n\n        for (var code in colors) {\n          if (this.countries[code]) {\n            this.countries[code].setFill(colors[code]);\n            this.countries[code].setAttribute(\"original\", colors[code]);\n          }\n        }\n      }\n    },\n\n    setValues: function (values) {\n      var max = 0,\n      min = Number.MAX_VALUE,\n      val;\n\n      for (var cc in values) {\n        val = parseFloat(values[cc]);\n        if (val > max) {\n          max = values[cc];\n        }\n        if (val && val < min) {\n          min = val;\n        }\n      }\n\n      this.colorScale.setMin(min);\n      this.colorScale.setMax(max);\n\n      var colors = {};\n      for (cc in values) {\n        val = parseFloat(values[cc]);\n        if (val) {\n          colors[cc] = this.colorScale.getColor(val);\n        } else {\n          colors[cc] = this.color;\n        }\n      }\n      this.setColors(colors);\n      this.values = values;\n    },\n\n    setBackgroundColor: function (backgroundColor) {\n      this.container.css('background-color', backgroundColor);\n    },\n\n    setScaleColors: function (colors) {\n      this.colorScale.setColors(colors);\n\n      if (this.values) {\n        this.setValues(this.values);\n      }\n    },\n\n    setNormalizeFunction: function (f) {\n      this.colorScale.setNormalizeFunction(f);\n\n      if (this.values) {\n        this.setValues(this.values);\n      }\n    },\n\n    highlight: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      if (this.hoverOpacity) {\n        path.setOpacity(this.hoverOpacity);\n      } else if (this.hoverColor) {\n        path.currentFillColor = path.getFill() + '';\n        path.setFill(this.hoverColor);\n      }\n    },\n\n    unhighlight: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      path.setOpacity(1);\n      if (path.currentFillColor) {\n        path.setFill(path.currentFillColor);\n      }\n    },\n\n    select: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      if(this.selectedRegions.indexOf(cc) < 0) {\n        if (this.multiSelectRegion) {\n          this.selectedRegions.push(cc);\n        } else {\n          this.selectedRegions = [cc];\n        }\n        // MUST BE after the change of selectedRegions\n        // Otherwise, we might loop\n        $(this.container).trigger('regionSelect.jqvmap', [cc]);\n        if (this.selectedColor) {\n          path.currentFillColor = this.selectedColor;\n          path.setFill(this.selectedColor);\n        }\n      }\n    },\n\n    deselect: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      if(this.selectedRegions.indexOf(cc) >= 0) {\n        this.selectedRegions.splice(this.selectedRegions.indexOf(cc), 1);\n        // MUST BE after the change of selectedRegions\n        // Otherwise, we might loop\n        $(this.container).trigger('regionDeselect.jqvmap', [cc]);\n        path.currentFillColor = path.getOriginalFill();\n        path.setFill(path.getOriginalFill());\n      }\n    },\n\n    isSelected: function(cc) {\n      return this.selectedRegions.indexOf(cc) >= 0;\n    },\n\n    resize: function () {\n      var curBaseScale = this.baseScale;\n      if (this.width / this.height > this.defaultWidth / this.defaultHeight) {\n        this.baseScale = this.height / this.defaultHeight;\n        this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale);\n      } else {\n        this.baseScale = this.width / this.defaultWidth;\n        this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale);\n      }\n      this.scale *= this.baseScale / curBaseScale;\n      this.transX *= this.baseScale / curBaseScale;\n      this.transY *= this.baseScale / curBaseScale;\n    },\n\n    reset: function () {\n      this.countryTitle.reset();\n      for (var key in this.countries) {\n        this.countries[key].setFill(WorldMap.defaultColor);\n      }\n      this.scale = this.baseScale;\n      this.transX = this.baseTransX;\n      this.transY = this.baseTransY;\n      this.applyTransform();\n    },\n\n    applyTransform: function () {\n      var maxTransX, maxTransY, minTransX, minTransY;\n      if (this.defaultWidth * this.scale <= this.width) {\n        maxTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n        minTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n      } else {\n        maxTransX = 0;\n        minTransX = (this.width - this.defaultWidth * this.scale) / this.scale;\n      }\n\n      if (this.defaultHeight * this.scale <= this.height) {\n        maxTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n        minTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n      } else {\n        maxTransY = 0;\n        minTransY = (this.height - this.defaultHeight * this.scale) / this.scale;\n      }\n\n      if (this.transY > maxTransY) {\n        this.transY = maxTransY;\n      }\n      else if (this.transY < minTransY) {\n        this.transY = minTransY;\n      }\n      if (this.transX > maxTransX) {\n        this.transX = maxTransX;\n      }\n      else if (this.transX < minTransX) {\n        this.transX = minTransX;\n      }\n\n      this.canvas.applyTransformParams(this.scale, this.transX, this.transY);\n    },\n\n    makeDraggable: function () {\n      var mouseDown = false;\n      var oldPageX, oldPageY;\n      var self = this;\n\n      self.isMoving = false;\n      self.isMovingTimeout = false;\n\n      this.container.mousemove(function (e) {\n\n        if (mouseDown) {\n          var curTransX = self.transX;\n          var curTransY = self.transY;\n\n          self.transX -= (oldPageX - e.pageX) / self.scale;\n          self.transY -= (oldPageY - e.pageY) / self.scale;\n\n          self.applyTransform();\n\n          oldPageX = e.pageX;\n          oldPageY = e.pageY;\n\n          self.isMoving = true;\n          if (self.isMovingTimeout) {\n            clearTimeout(self.isMovingTimeout);\n          }\n        }\n\n        return false;\n\n      }).mousedown(function (e) {\n\n        mouseDown = true;\n        oldPageX = e.pageX;\n        oldPageY = e.pageY;\n\n        return false;\n\n      }).mouseup(function () {\n\n        mouseDown = false;\n\n        self.isMovingTimeout = setTimeout(function () {\n          self.isMoving = false;\n        }, 100);\n\n        return false;\n\n      });\n    },\n\n    bindZoomButtons: function () {\n      var map = this;\n      var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);\n\n      this.container.find('.jqvmap-zoomin').click(function () {\n        if (map.zoomCurStep < map.zoomMaxStep) {\n          var curTransX = map.transX;\n          var curTransY = map.transY;\n          var curScale = map.scale;\n\n          map.transX -= (map.width / map.scale - map.width / (map.scale * map.zoomStep)) / 2;\n          map.transY -= (map.height / map.scale - map.height / (map.scale * map.zoomStep)) / 2;\n          map.setScale(map.scale * map.zoomStep);\n          map.zoomCurStep++;\n\n          jQuery('#zoomSlider').css('top', parseInt(jQuery('#zoomSlider').css('top'), 10) - sliderDelta);\n        }\n      });\n\n      this.container.find('.jqvmap-zoomout').click(function () {\n        if (map.zoomCurStep > 1) {\n          var curTransX = map.transX;\n          var curTransY = map.transY;\n          var curScale = map.scale;\n\n          map.transX += (map.width / (map.scale / map.zoomStep) - map.width / map.scale) / 2;\n          map.transY += (map.height / (map.scale / map.zoomStep) - map.height / map.scale) / 2;\n          map.setScale(map.scale / map.zoomStep);\n          map.zoomCurStep--;\n\n          jQuery('#zoomSlider').css('top', parseInt(jQuery('#zoomSlider').css('top'), 10) + sliderDelta);\n        }\n      });\n    },\n\n    setScale: function (scale) {\n      this.scale = scale;\n      this.applyTransform();\n    },\n\n    getCountryId: function (cc) {\n      return 'jqvmap' + this.index + '_' + cc;\n    }\n  };\n\n  WorldMap.xlink = \"http://www.w3.org/1999/xlink\";\n  WorldMap.mapIndex = 1;\n  WorldMap.maps = {};\n\n  var ColorScale = function (colors, normalizeFunction, minValue, maxValue) {\n    if (colors) {\n      this.setColors(colors);\n    }\n    if (normalizeFunction) {\n      this.setNormalizeFunction(normalizeFunction);\n    }\n    if (minValue) {\n      this.setMin(minValue);\n    }\n    if (minValue) {\n      this.setMax(maxValue);\n    }\n  };\n\n  ColorScale.prototype = {\n    colors: [],\n\n    setMin: function (min) {\n      this.clearMinValue = min;\n\n      if (typeof this.normalize === 'function') {\n        this.minValue = this.normalize(min);\n      } else {\n        this.minValue = min;\n      }\n    },\n\n    setMax: function (max) {\n      this.clearMaxValue = max;\n      if (typeof this.normalize === 'function') {\n        this.maxValue = this.normalize(max);\n      } else {\n        this.maxValue = max;\n      }\n    },\n\n    setColors: function (colors) {\n      for (var i = 0; i < colors.length; i++) {\n        colors[i] = ColorScale.rgbToArray(colors[i]);\n      }\n      this.colors = colors;\n    },\n\n    setNormalizeFunction: function (f) {\n      if (f === 'polynomial') {\n        this.normalize = function (value) {\n          return Math.pow(value, 0.2);\n        };\n      }\n      else if (f === 'linear') {\n        delete this.normalize;\n      } else {\n        this.normalize = f;\n      }\n      this.setMin(this.clearMinValue);\n      this.setMax(this.clearMaxValue);\n    },\n\n    getColor: function (value) {\n      if (typeof this.normalize === 'function') {\n        value = this.normalize(value);\n      }\n\n      var lengthes = [];\n      var fullLength = 0;\n      var l;\n\n      for (var i = 0; i < this.colors.length - 1; i++) {\n        l = this.vectorLength(this.vectorSubtract(this.colors[i + 1], this.colors[i]));\n        lengthes.push(l);\n        fullLength += l;\n      }\n\n      var c = (this.maxValue - this.minValue) / fullLength;\n\n      for (i = 0; i < lengthes.length; i++) {\n        lengthes[i] *= c;\n      }\n\n      i = 0;\n      value -= this.minValue;\n\n      while (value - lengthes[i] >= 0) {\n        value -= lengthes[i];\n        i++;\n      }\n\n      var color;\n      if (i == this.colors.length - 1) {\n        color = this.vectorToNum(this.colors[i]).toString(16);\n      } else {\n        color = (this.vectorToNum(this.vectorAdd(this.colors[i], this.vectorMult(this.vectorSubtract(this.colors[i + 1], this.colors[i]), (value) / (lengthes[i]))))).toString(16);\n      }\n\n      while (color.length < 6) {\n        color = '0' + color;\n      }\n      return '#' + color;\n    },\n\n    vectorToNum: function (vector) {\n      var num = 0;\n      for (var i = 0; i < vector.length; i++) {\n        num += Math.round(vector[i]) * Math.pow(256, vector.length - i - 1);\n      }\n      return num;\n    },\n\n    vectorSubtract: function (vector1, vector2) {\n      var vector = [];\n      for (var i = 0; i < vector1.length; i++) {\n        vector[i] = vector1[i] - vector2[i];\n      }\n      return vector;\n    },\n\n    vectorAdd: function (vector1, vector2) {\n      var vector = [];\n      for (var i = 0; i < vector1.length; i++) {\n        vector[i] = vector1[i] + vector2[i];\n      }\n      return vector;\n    },\n\n    vectorMult: function (vector, num) {\n      var result = [];\n      for (var i = 0; i < vector.length; i++) {\n        result[i] = vector[i] * num;\n      }\n      return result;\n    },\n\n    vectorLength: function (vector) {\n      var result = 0;\n      for (var i = 0; i < vector.length; i++) {\n        result += vector[i] * vector[i];\n      }\n      return Math.sqrt(result);\n    }\n  };\n\n  ColorScale.arrayToRgb = function (ar) {\n    var rgb = '#';\n    var d;\n    for (var i = 0; i < ar.length; i++) {\n      d = ar[i].toString(16);\n      rgb += d.length == 1 ? '0' + d : d;\n    }\n    return rgb;\n  };\n\n  ColorScale.rgbToArray = function (rgb) {\n    rgb = rgb.substr(1);\n    return [parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16)];\n  };\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/jquery.vmap.packed.js",
    "content": "/*!\n * jQVMap Version 1.0 \n *\n * http://jqvmap.com\n *\n * Copyright 2012, Peter Schmalfeldt <manifestinteractive@gmail.com>\n * Copyright 2011-2012, Kirill Lebedev\n * Licensed under the MIT license.\n *\n * Fork Me @ https://github.com/manifestinteractive/jqvmap\n */\n eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c])}}return p}('(b($){a 3g={x:1,O:1,1P:1,2G:1,1M:1,2U:1,24:1,2m:1,2t:1,2u:1,26:1};a 2V={4u:\\'3D\\',4t:\\'3r\\',4w:\\'4d\\',4A:\\'4e\\'};$.4r.4z=b(2A){a 1K={8:\\'4p\\',1P:\\'#54\\',A:\\'#4V\\',1X:\\'#3q\\',2f:\\'#3q\\',2G:[\\'#4T\\',\\'#52\\'],1M:\\'45\\',2U:1U,24:1U,2m:\\'#50\\',2t:1,2u:0.25,26:1S},8;j(2A===\\'4I\\'){11.3b[1G[1]]=1G[2]}B j(2A===\\'3f\\'&&3g[1G[1]]){5.2X(\\'2W\\')[\\'3f\\'+1G[1].4G(0).4F()+1G[1].23(1)].4K(5.2X(\\'2W\\'),4P.2s.4M.4L(1G,2))}B{$.4O(1K,2A);1K.D=5;5.1A({3C:\\'4J\\',4E:\\'4Q\\'});8=2H 11(1K);5.2X(\\'2W\\',8);J(a e 1z 2V){j(1K[e]){5.4Z(2V[e]+\\'.17\\',1K[e])}}}};a 1W=b(n,p,k){5.19=3F.53?\\'13\\':\\'3d\\';5.k=k;j(5.19==\\'13\\'){5.2x=b(3w){u 1D.4Y(5.3A,3w)}}B{4X{j(!1D.3x.1H){1D.3x.4S(\"1H\",\"3B:3H-3i-3u:3d\")}5.1t=b(2p){u 1D.3y(\\'<1H:\\'+2p+\\' 2E=\"1H\">\\')}}4U(e){5.1t=b(2p){u 1D.3y(\\'<\\'+2p+\\' 4W=\"3B:3H-3i.3u:3d\" 2E=\"1H\">\\')}}1D.4n().4o(\".1H\",\"4m:4q(#3z#4j)\")}j(5.19==\\'13\\'){5.E=5.2x(\\'13\\')}B{5.E=5.1t(\\'3h\\');5.E.X.3C=\\'4l\\'}5.3e(n,p)};1W.2s={3A:\"3Y://42.41.40/4C/13\",19:\\'13\\',n:0,p:0,E:1S,3e:b(n,p){j(5.19==\\'13\\'){5.E.T(\\'n\\',n);5.E.T(\\'p\\',p)}B{5.E.X.n=n+\"1b\";5.E.X.p=p+\"1b\";5.E.1I=n+\\' \\'+p;5.E.2l=\"0 0\";j(5.Z){a 12=5.Z.2q(\\'2a\\');J(a i=0,l=12.w;i<l;i++){12[i].1I=n+\\' \\'+p;12[i].X.n=n+\\'1b\\';12[i].X.p=p+\\'1b\\'}5.Z.1I=n+\\' \\'+p;5.Z.X.n=n+\\'1b\\';5.Z.X.p=p+\\'1b\\'}}5.n=n;5.p=p},3E:b(3c){a q;j(5.19==\\'13\\'){q=5.2x(\\'y\\');q.T(\\'d\\',3c.y);j(5.k.2m!==1S){q.T(\\'1T\\',5.k.2m)}j(5.k.2t>0){q.T(\\'1T-n\\',5.k.2t);q.T(\\'1T-4B\\',\\'2v\\');q.T(\\'1T-4x\\',\\'2v\\')}j(5.k.2u>0){q.T(\\'1T-1r\\',5.k.2u)}q.18=b(A){5.T(\"1f\",A);j(5.33(\"21\")===1S){5.T(\"21\",A)}};q.2Q=b(A){u 5.33(\"1f\")};q.2M=b(){u 5.33(\"21\")};q.27=b(1r){5.T(\\'1f-1r\\',1r)}}B{q=5.1t(\\'2a\\');q.2l=\"0 0\";q.1I=5.n+\\' \\'+5.p;q.X.n=5.n+\\'1b\\';q.X.p=5.p+\\'1b\\';q.4v=11.4R;q.5s=1v;q.y=1W.3n(3c.y);a o=5.1t(\\'5C\\');o.5D=1U;o.5E=\\'0.3G,0,0,0.3G,0,0\\';o.5G=\\'0,0\\';q.2I(o);a 1f=5.1t(\\'1f\\');q.2I(1f);q.18=b(A){5.2q(\\'1f\\')[0].A=A};q.2Q=b(A){u 5.2q(\\'1f\\')[0].A};q.27=b(1r){5.2q(\\'1f\\')[0].1r=1B(1r*3o,10)+\\'%\\'}}u q},3t:b(3p){a q;j(5.19==\\'13\\'){q=5.2x(\\'g\\')}B{q=5.1t(\\'3h\\');q.X.n=5.n+\\'1b\\';q.X.p=5.p+\\'1b\\';q.X.4c=\\'3j\\';q.X.1E=\\'3j\\';q.2l=\"0 0\";q.1I=5.n+\\' \\'+5.p}j(3p){5.Z=q}u q},3U:b(o,K,N){j(5.19==\\'13\\'){5.Z.T(\\'5y\\',\\'o(\\'+o+\\') 5A(\\'+K+\\', \\'+N+\\')\\')}B{5.Z.2l=(5.n-K)+\\',\\'+(5.p-N);5.Z.1I=5.n/o+\\',\\'+5.p/o}}};1W.3n=b(y){a 1w=\\'\\';a G=0,I=0,1x,1u;u y.28(/([5x])((?:-?(?:\\\\d+)?(?:\\\\.\\\\d+)?,?\\\\s?)+)/g,b(5F,3k,9,2J){9=9.28(/(\\\\d)-/g,\\'$1,-\\').28(/\\\\s+/g,\\',\\').2S(\\',\\');j(!9[0]){9.5v()}J(a i=0,l=9.w;i<l;i++){9[i]=1y.2v(3o*9[i])}5w(3k){14\\'m\\':G+=9[0];I+=9[1];u\\'t\\'+9.1n(\\',\\');W;14\\'M\\':G=9[0];I=9[1];u\\'m\\'+9.1n(\\',\\');W;14\\'l\\':G+=9[0];I+=9[1];u\\'r\\'+9.1n(\\',\\');W;14\\'L\\':G=9[0];I=9[1];u\\'l\\'+9.1n(\\',\\');W;14\\'h\\':G+=9[0];u\\'r\\'+9[0]+\\',0\\';W;14\\'H\\':G=9[0];u\\'l\\'+G+\\',\\'+I;W;14\\'v\\':I+=9[0];u\\'5t,\\'+9[0];W;14\\'V\\':I=9[0];u\\'l\\'+G+\\',\\'+I;W;14\\'c\\':1x=G+9[9.w-4];1u=I+9[9.w-3];G+=9[9.w-2];I+=9[9.w-1];u\\'v\\'+9.1n(\\',\\');W;14\\'C\\':1x=9[9.w-4];1u=9[9.w-3];G=9[9.w-2];I=9[9.w-1];u\\'c\\'+9.1n(\\',\\');W;14\\'s\\':9.2k(I-1u);9.2k(G-1x);1x=G+9[9.w-4];1u=I+9[9.w-3];G+=9[9.w-2];I+=9[9.w-1];u\\'v\\'+9.1n(\\',\\');W;14\\'S\\':9.2k(I+I-1u);9.2k(G+G-1x);1x=9[9.w-4];1u=9[9.w-3];G=9[9.w-2];I=9[9.w-1];u\\'c\\'+9.1n(\\',\\');W;3z:u 1v;W}u\\'\\'}).28(/z/g,\\'\\')};a 11=b(k){k=k||{};a 8=5;a 1a=11.3b[k.8];5.D=k.D;5.1m=1a.n;5.1l=1a.p;5.A=k.A;5.1X=k.1X;5.49(k.1P);5.n=k.D.n();5.p=k.D.p();5.2g();F(3F).2g(b(){8.n=k.D.n();8.p=k.D.p();8.2g();8.E.3e(8.n,8.p);8.1O()});5.E=2H 1W(5.n,5.p,k);k.D.3I(5.E.E);5.3V();5.Z=5.E.3t(1U);5.2J=11.34;5.1c=F(\\'<2D/>\\').2K(\\'17-1c\\').2F(F(\\'57\\'));j(k.2U){F(\\'<2D/>\\').2K(\\'17-46\\').3Z(\\'+\\').2F(k.D);F(\\'<2D/>\\').2K(\\'17-48\\').5h(\\'&#5o;\\').2F(k.D)}8.U=[];J(a P 1z 1a.12){a y=5.E.3E({y:1a.12[P].y});y.18(5.A);y.2N=\\'17\\'+8.2J+\\'2T\\'+P;8.U[P]=y;F(5.Z).3I(y);y.T(\\'2E\\',\\'17-5r\\');j(k.26!==1S){j(P.3v()==k.26.3v()){y.18(k.2f)}}}F(k.D).4f(5.E.19==\\'13\\'?\\'y\\':\\'2a\\',\\'3s 5i\\',b(e){a y=e.2d,R=e.2d.2N.2S(\\'2T\\').3J(),2R=$.3l(\\'3D.17\\'),2P=$.3l(\\'3r.17\\');j(e.5j==\\'3s\\'){F(k.D).2i(2P,[R,1a.12[R].2e]);j(!2P.4h()){j(k.3m){y.27(k.3m)}B j(k.1X){y.22=y.2Q()+\\'\\';y.18(k.1X)}}j(k.24){8.1c.3Z(1a.12[R].2e);F(k.D).2i(2R,[8.1c,R]);j(!2R.4h()){8.1c.5l();8.4i=8.1c.n();8.4b=8.1c.p()}}}B{y.27(1);j(y.22){y.18(y.22)}8.1c.5k();F(k.D).2i(\\'4d.17\\',[R,1a.12[R].2e])}});F(k.D).4f(5.E.19==\\'13\\'?\\'y\\':\\'2a\\',\\'38\\',b(e){J(a P 1z 1a.12){8.U[P].22=8.U[P].2M();8.U[P].18(8.U[P].2M())}a y=e.2d;a R=e.2d.2N.2S(\\'2T\\').3J();F(k.D).2i(\\'4e.17\\',[R,1a.12[R].2e]);y.22=k.2f;y.18(k.2f)});j(k.24){k.D.3Q(b(e){j(8.1c.5m(\\':5n\\')){8.1c.1A({4c:e.2b-15-8.4i,1E:e.2C-15-8.4b})}})}5.1F(k.x);5.E.E.2I(5.Z);5.1O();5.1J=2H 1N(k.2G,k.1M,k.5q,k.5p);j(k.O){5.O=k.O;5.2j(k.O)}5.3X();11.34++};11.2s={K:0,N:0,o:1,32:0,31:0,Y:1,n:0,p:0,U:{},5g:{},59:{},1q:1.4,37:4,1C:1,1F:b(P,A){j(2y P==\\'58\\'){5.U[P].18(A);5.U[P].T(\"21\",A)}B{a x=P;J(a R 1z x){j(5.U[R]){5.U[R].18(x[R]);5.U[R].T(\"21\",x[R])}}}},2j:b(O){a 1o=0,1j=56.5a,1d;J(a 1i 1z O){1d=4g(O[1i]);j(1d>1o){1o=O[1i]}j(1d&&1d<1j){1j=1d}}5.1J.2w(1j);5.1J.2z(1o);a x={};J(1i 1z O){1d=4g(O[1i]);j(1d){x[1i]=5.1J.3N(1d)}B{x[1i]=5.A}}5.1F(x);5.O=O},49:b(1P){5.D.1A(\\'5b-A\\',1P)},5f:b(x){5.1J.1F(x);j(5.O){5.2j(5.O)}},2r:b(f){5.1J.2r(f);j(5.O){5.2j(5.O)}},2g:b(){a 2c=5.Y;j(5.n/5.p>5.1m/5.1l){5.Y=5.p/5.1l;5.32=1y.3S(5.n-5.1m*5.Y)/(2*5.Y)}B{5.Y=5.n/5.1m;5.31=1y.3S(5.p-5.1l*5.Y)/(2*5.Y)}5.o*=5.Y/2c;5.K*=5.Y/2c;5.N*=5.Y/2c},3T:b(){5.5e.3T();J(a P 1z 5.U){5.U[P].18(11.5d)}5.o=5.Y;5.K=5.32;5.N=5.31;5.1O()},1O:b(){a 1R,20,1Z,1Y;j(5.1m*5.o<=5.n){1R=(5.n-5.1m*5.o)/(2*5.o);1Z=(5.n-5.1m*5.o)/(2*5.o)}B{1R=0;1Z=(5.n-5.1m*5.o)/5.o}j(5.1l*5.o<=5.p){20=(5.p-5.1l*5.o)/(2*5.o);1Y=(5.p-5.1l*5.o)/(2*5.o)}B{20=0;1Y=(5.p-5.1l*5.o)/5.o}j(5.N>20){5.N=20}B j(5.N<1Y){5.N=1Y}j(5.K>1R){5.K=1R}B j(5.K<1Z){5.K=1Z}5.E.3U(5.o,5.K,5.N)},3V:b(){a 2B=1v;a 29,2h;a 1k=5;5.D.3Q(b(e){j(2B){a 39=1k.K;a 3a=1k.N;1k.K-=(29-e.2b)/1k.o;1k.N-=(2h-e.2C)/1k.o;1k.1O();29=e.2b;2h=e.2C}u 1v}).5c(b(e){2B=1U;29=e.2b;2h=e.2C;u 1v}).5u(b(){2B=1v;u 1v})},3X:b(){a 8=5;a 36=(F(\\'#5B\\').5z()-6*2-15*2-3*2-7-6)/(5.37-5.1C);5.D.47(\\'.17-46\\').38(b(){j(8.1C<8.37){a 39=8.K;a 3a=8.N;a 44=8.o;8.K-=(8.n/8.o-8.n/ (8.o * 8.1q)) /2;8.N-=(8.p/8.o-8.p/ (8.o * 8.1q)) /2;8.35(8.o*8.1q);8.1C++;F(\\'#2o\\').1A(\\'1E\\',1B(F(\\'#2o\\').1A(\\'1E\\'),10)-36)}});5.D.47(\\'.17-48\\').38(b(){j(8.1C>1){a 39=8.K;a 3a=8.N;a 44=8.o;8.K+=(8.n/(8.o/ 8.1q) - 8.n/8.o)/2;8.N+=(8.p/(8.o/ 8.1q) - 8.p/8.o)/2;8.35(8.o/8.1q);8.1C--;F(\\'#2o\\').1A(\\'1E\\',1B(F(\\'#2o\\').1A(\\'1E\\'),10)+36)}})},35:b(o){5.o=o;5.1O()},55:b(1i){u F(\\'#\\'+1i)[0]}};11.43=\"3Y://42.41.40/4s/43\";11.34=1;11.3b={};a 1N=b(x,1M,1p,1V){j(x){5.1F(x)}j(1M){5.2r(1M)}j(1p){5.2w(1p)}j(1p){5.2z(1V)}};1N.2s={x:[],2w:b(1j){5.3W=1j;j(2y 5.1e===\\'b\\'){5.1p=5.1e(1j)}B{5.1p=1j}},2z:b(1o){5.3O=1o;j(2y 5.1e===\\'b\\'){5.1V=5.1e(1o)}B{5.1V=1o}},1F:b(x){J(a i=0;i<x.w;i++){x[i]=1N.3M(x[i])}5.x=x},2r:b(f){j(f===\\'4y\\'){5.1e=b(1g){u 1y.3L(1g,0.2)}}B j(f===\\'45\\'){4k 5.1e}B{5.1e=f}5.2w(5.3W);5.2z(5.3O)},3N:b(1g){j(2y 5.1e===\\'b\\'){1g=5.1e(1g)}a 1s=[];a 30=0;a l;J(a i=0;i<5.x.w-1;i++){l=5.3R(5.2L(5.x[i+1],5.x[i]));1s.4D(l);30+=l}a c=(5.1V-5.1p)/30;J(i=0;i<1s.w;i++){1s[i]*=c}i=0;1g-=5.1p;3K(1g-1s[i]>=0){1g-=1s[i];i++}a A;j(i==5.x.w-1){A=5.2Z(5.x[i]).2Y(16)}B{A=(5.2Z(5.3P(5.x[i],5.4a(5.2L(5.x[i+1],5.x[i]),(1g)/(1s[i]))))).2Y(16)}3K(A.w<6){A=\\'0\\'+A}u\\'#\\'+A},2Z:b(Q){a 1Q=0;J(a i=0;i<Q.w;i++){1Q+=1y.2v(Q[i])*1y.3L(51,Q.w-i-1)}u 1Q},2L:b(1L,2n){a Q=[];J(a i=0;i<1L.w;i++){Q[i]=1L[i]-2n[i]}u Q},3P:b(1L,2n){a Q=[];J(a i=0;i<1L.w;i++){Q[i]=1L[i]+2n[i]}u Q},4a:b(Q,1Q){a 1w=[];J(a i=0;i<Q.w;i++){1w[i]=Q[i]*1Q}u 1w},3R:b(Q){a 1w=0;J(a i=0;i<Q.w;i++){1w+=Q[i]*Q[i]}u 1y.4N(1w)}};1N.4H=b(2O){a 1h=\\'#\\';a d;J(a i=0;i<2O.w;i++){d=2O[i].2Y(16);1h+=d.w==1?\\'0\\'+d:d}u 1h};1N.3M=b(1h){1h=1h.23(1);u[1B(1h.23(0,2),16),1B(1h.23(2,2),16),1B(1h.23(4,2),16)]}})(F);',62,353,'|||||this|||map|coords|var|function||||||||if|params|||width|scale|height|node||||return||length|colors|path||color|else||container|canvas|jQuery|cx||cy|for|transX|||transY|values|key|vector|code||setAttribute|countries||break|style|baseScale|rootGroup||WorldMap|pathes|svg|case|||jqvmap|setFill|mode|mapData|px|label|val|normalize|fill|value|rgb|cc|min|self|defaultHeight|defaultWidth|join|max|minValue|zoomStep|opacity|lengthes|createVmlNode|ctrly|false|result|ctrlx|Math|in|css|parseInt|zoomCurStep|document|top|setColors|arguments|rvml|coordsize|colorScale|defaultParams|vector1|normalizeFunction|ColorScale|applyTransform|backgroundColor|num|maxTransX|null|stroke|true|maxValue|VectorCanvas|hoverColor|minTransY|minTransX|maxTransY|original|currentFillColor|substr|showTooltip||selectedRegion|setOpacity|replace|oldPageX|shape|pageX|curBaseScale|target|name|selectedColor|resize|oldPageY|trigger|setValues|unshift|coordorigin|borderColor|vector2|zoomSlider|tagName|getElementsByTagName|setNormalizeFunction|prototype|borderWidth|borderOpacity|round|setMin|createSvgNode|typeof|setMax|options|mouseDown|pageY|div|class|appendTo|scaleColors|new|appendChild|index|addClass|vectorSubtract|getOriginalFill|id|ar|regionMouseOverEvent|getFill|labelShowEvent|split|_|enableZoom|apiEvents|mapObject|data|toString|vectorToNum|fullLength|baseTransY|baseTransX|getAttribute|mapIndex|setScale|sliderDelta|zoomMaxStep|click|curTransX|curTransY|maps|config|vml|setSize|set|apiParams|group|microsoft|0px|letter|Event|hoverOpacity|pathSvgToVml|100|isRoot|c9dfaf|regionMouseOver|mouseover|createGroup|com|toLowerCase|nodeName|namespaces|createElement|default|svgns|urn|position|labelShow|createPath|window|01|schemas|append|pop|while|pow|rgbToArray|getColor|clearMaxValue|vectorAdd|mousemove|vectorLength|abs|reset|applyTransformParams|makeDraggable|clearMinValue|bindZoomButtons|http|text|org|w3|www|xlink|curScale|linear|zoomin|find|zoomout|setBackgroundColor|vectorMult|labelHeight|left|regionMouseOut|regionClick|delegate|parseFloat|isDefaultPrevented|labelWidth|VML|delete|absolute|behavior|createStyleSheet|addRule|world_en|url|fn|1999|onRegionOver|onLabelShow|fillcolor|onRegionOut|linejoin|polynomial|vectorMap|onRegionClick|linecap|2000|push|overflow|toUpperCase|charAt|arrayToRgb|addMap|relative|apply|call|slice|sqrt|extend|Array|hidden|defaultFillColor|add|b6d6ff|catch|f4f3f0|xmlns|try|createElementNS|bind|818181|256|005ace|SVGAngle|a5bfdd|getCountryPath|Number|body|string|countriesData|MAX_VALUE|background|mousedown|defaultColor|countryTitle|setScaleColors|countriesColors|html|mouseout|type|hide|show|is|visible|x2212|valueMax|valueMin|region|stroked|r0|mouseup|shift|switch|MmLlHhVvCcSs|transform|innerHeight|translate|zoom|skew|on|matrix|segment|offset'.split('|'),0,{}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/jqvmap.css",
    "content": "/*!\n * jQVMap Version 1.0 \n *\n * http://jqvmap.com\n *\n * Copyright 2012, Peter Schmalfeldt <manifestinteractive@gmail.com>\n * Licensed under the MIT license.\n *\n * Fork Me @ https://github.com/manifestinteractive/jqvmap\n */\n.jqvmap-label\n{\n\tposition: absolute;\n\tdisplay: none;\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n\tbackground: #292929;\n\tcolor: white;\n\tfont-family: sans-serif, Verdana;\n\tfont-size: smaller;\n\tpadding: 3px;\n}\n.jqvmap-zoomin, .jqvmap-zoomout\n{\n\tposition: absolute;\n\tleft: 10px;\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n\tbackground: #000000;\n\tpadding: 3px;\n\tcolor: white;\n\twidth: 10px;\n\theight: 10px;\n\tcursor: pointer;\n\tline-height: 10px;\n\ttext-align: center;\n}\n.jqvmap-zoomin\n{\n\ttop: 10px;\n}\n.jqvmap-zoomout\n{\n\ttop: 30px;\n}\n.jqvmap-region\n{\n  cursor: pointer;\n}\n.jqvmap-ajax_response\n{\n  width: 100%;\n  height: 500px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.europe.js",
    "content": "/** Add Europe Map Data Points */\njQuery.fn.vectorMap('addMap', 'europe_en', {\"width\":680,\"height\":520,\"pathes\":{\"gl\":{\"path\":\"M13.47,93.57C12.35,92.52 12.34,90 10.44,89.14 10.62,88.14 13.84,87.66 11.35,86.39 10.05,87.17 9.25,86.92 8.71,87.58 6.27,88.12 8.6,85.09 6.17,85.17 5.23,84.47 10.33,84.75 9.98,83.14 11.32,83.4 14.67,82.04 12.37,81.03 11.23,81.19 6.54,82.06 10.06,81.32 13.04,80.64 9.92,76.6 8.71,79.05 9.24,77.06 11.03,78.05 12.88,77.78 14.68,74.59 9.38,77.17 8.23,75.54 7.26,73.61 12.43,77.09 11.48,74.6c2.44,-0.76 -0.97,1.23 1.21,1.43 1,0.07 3.06,0.24 1.26,-0.8C15.39,74.51 14.27,73.05 14.04,72.76 16.26,70.08 9.73,69.39 11.65,72.54 9.43,70.77 7.4,69.72 5.62,68.37 4.84,67.27 3.62,65.14 5.75,64.54 6.27,63.17 3.83,63.23 6.08,62.64 8.52,60.62 3.8,58.38 3.79,56.87 4.78,56.07 3.39,53.57 4.92,55.82c2,1.48 -1.5,0.05 -0.41,1.67 0.7,1.18 4.94,4.58 4.09,1.22C7.96,57.37 6.11,57.21 8.09,56.47 5.75,56.14 4.83,52.58 8.11,53.61c1.58,0.65 2.17,-1 2.13,-1.24 1.86,-0.56 0.99,-3.89 0.14,-5.02 -2.29,-0.92 1.59,-2.34 -1.23,-2.91 0.6,-3.73 4.98,-2.29 7.51,-3.37 2.78,-1.33 -1.33,-1.73 -1.69,-3.06 -3.07,-1.99 2.8,-0.5 3.28,-2.76 2.87,0.22 -2.67,-2.82 -1.49,-3.84 1.34,0.59 4.57,3.1 4.27,-0.2C20.58,29.48 17.09,31.14 17.33,29.6c1.78,1.02 0.79,-3.69 2.33,-1.12 1.76,1.21 4.05,-0.81 1.11,-1.21 -0.72,-0.16 1.96,-1.91 2.18,-0.31 2.04,0.89 2.39,3.26 4.86,3.29 1.12,-1.58 -2.89,-2.38 -0.16,-2.31 1.35,-1.83 -5.03,-0.94 -1.14,-2.29 1.39,-1.55 1.81,4.29 2.64,1.36 -0.57,-1.39 -0.41,-4.67 1.53,-2.59 0.16,2.02 -2.74,3.73 -1.03,6.23 2.7,1.13 0.11,-4.85 3.69,-4.25 2.74,-0.7 0.37,-3.01 -1.39,-3.16 0.93,-1.59 -0.48,-0.52 -0.91,-1.1 -1.26,0.42 -2.63,-0.27 -1.15,-1.19 -0.81,-1.9 -3.85,0.74 -5.54,0.53 -3.44,0.64 1.14,-2.76 2.36,-3.3 2.28,-0.77 4.66,2.97 6.55,0.04C34.81,17.14 33.04,17.79 32.17,17.97 30.61,18.81 30.38,17.32 30.54,16.77 29.14,17.79 26.4,16.27 29.42,16.34 29.89,14.12 31.85,14.39 33.58,13.44c0.27,-2.21 -3.96,0.03 -1.92,-1.94 2.34,1.37 5.29,0.49 7.37,1.6 0.49,1.25 2.93,3.07 2.07,0.58C40.16,10.86 37.07,10.79 34.89,10.94 32.01,10.71 38.39,8.92 36.45,6.69 35.49,6.8 33.31,6.65 34.75,5.53c1.74,0.57 3.45,1.31 2.13,3.63 0.97,-0.77 3.6,0.14 4.92,-0.01C42.62,6.51 37.36,8.29 39.31,5.97 39.94,4.69 35.39,5.71 36.07,3.41c2.18,-0.52 6.21,0.1 8.48,1.64 1.78,-0.72 2.84,-0.23 4.07,0.55 1.73,-0.23 3.46,0.06 2.78,2.25C52.75,9.86 54.51,8.35 52.72,6.73 52.71,4.07 54.56,10.07 55.78,8.98 56.01,5.87 52.57,4.02 49.87,3.57 48.45,2.66 43.96,4.29 45.02,2.48 44.96,1.07 43.75,0.16 45.71,1.28 47.56,3.52 50.55,-0.47 53.01,0.78 55.13,-0.05 52.02,4.62 54.57,4.07 55.09,3.62 56.43,7.62 57.26,5.53 57.36,3.28 54.5,4.61 54.71,2.93 54.66,0.68 56.28,0.89 57.93,0.78 59.1,1.36 57.92,5.72 60.98,5.64 61.74,4.33 57.63,0.17 61.09,2.11 61.53,3.09 65.18,3.43 63.42,2.17 61.88,1.53 60.02,-0.12 62.69,1.24c1.18,0.74 1.27,-0.27 2.37,-0.09 0.49,-0.8 2.06,-0.17 3.01,-0.37 45.89,0 91.78,0 137.67,0 0.61,1.21 1.15,3.04 -0.24,1.09 -2.48,-0.7 1.23,2.94 1.58,3.94 1.63,2.86 -1.86,0.67 -3.36,1.88 1.28,-1.72 -2.26,-4.24 -1.57,-1.36 0.03,2.25 1.64,3.73 3.68,2.39 1.03,0.77 -1.42,2.8 -1.62,3.53 -3.09,0.12 0.02,1.62 1.04,2.22 0.66,2.09 4.04,0.64 2.3,3.22 -1.05,1.95 -3.92,1.82 -3.21,-0.86 0.14,-3.28 -4.67,-1.36 -4.04,-5.02 -2.02,-0.71 -0.18,3.84 -2.96,2.48 -0.73,0.74 0.41,1.75 -1.42,1.32 -2.61,0.54 1.71,4.84 -0.38,4.25 -1.39,0.66 -1.21,4.72 0.33,2.08 -0.04,-1.13 1.18,-4.09 2.39,-2.05 0.43,1.69 3.14,3.16 0.34,3.59 0.86,3.33 -3.29,2.48 -4.22,0.42 -0.56,1.42 -4.92,2.25 -4.96,-1.01 -1.09,-1.09 -0.61,-6.28 0.38,-2.79 -0.38,2.15 4.88,3.94 3.74,1.34 -3.75,0.99 -2.13,-7.24 -6.06,-4.79 -0.93,1.3 -1.66,1.94 -1.57,-0.09 0.87,-1.48 -0.65,-6.36 -1.62,-2.76 -0.29,1.71 1.87,5.7 -1.38,4.23 -1.61,0.79 -3.43,1.95 -3.68,-0.56 -1.68,-1 0.16,-4.48 -2.68,-3.04 -0.67,1.11 2.68,6.25 0.02,3.71 -0.94,-1.89 -3.02,-1.6 -4.56,-0.77 1.83,0.09 2.37,0.85 0.57,2.18 0.59,2.05 2.81,-2.2 3.66,0.12 1.38,0.4 3.13,-0.11 3.81,2.17 2.43,3.24 -2.95,0.83 -4.01,1.04 -0.05,-1.82 -4.79,-3.3 -3.23,-1.13 1.49,0.95 1.71,0.82 0.15,1.51 -1.1,2.37 1.53,3.48 2.9,1.87 3.12,-1.53 5.02,4.79 1.15,3.53 -2.62,-0.97 -1.48,2.05 -3.89,2.7 -0.43,2.18 2.56,-0.04 2.88,-0.79 2.47,-0.74 2.4,2.46 3.26,3.28 -2.41,2.08 2.06,1.61 0.72,3.86 0.87,0.94 2.37,2.01 0.05,2.28 -2.05,0.35 -0.86,2.02 0.59,1.45 -1.67,-0.11 -1.69,1.85 -1.36,2.27 -1.73,0.52 -2.08,4.37 -0.55,3.78 -0.25,-2.23 4.33,-2.23 2.08,-0.24 -2.82,-0.46 -0.7,2.99 -3.43,2.2 2.08,0.81 0.22,1 -1.03,1.19 -1.32,0.16 3.49,1.1 1.39,1.26 -1.9,0.07 -0.29,1.99 -2.31,1.42 1.18,0.54 1.34,1.84 1.35,2.8 -2.18,2.04 -4.44,-0.74 -2.18,-2.64 1.63,-0.69 0.76,-4.19 -0.17,-2.1 -0.64,2.71 -4.66,4.66 -4.98,0.68 -0.13,-3.43 1.98,-6.57 2.12,-10.01 -0.26,-1.47 -2.38,-1.12 -1.92,-3.26 0.2,-2.67 -2.43,-4.09 -3.97,-4.66 0.54,-2.82 0.04,-5.39 -1.15,-7.72 0.49,-2.96 -3.2,-2.36 -2.3,0.29 0.39,1.99 2.16,3.98 1.82,5.79 -0.98,-1.18 -4.72,-2.37 -4.53,0.09 1.53,0.74 4.96,0.32 3.23,3.09 -0.36,0.92 2.65,-0.97 2.92,1.14 1.39,1.16 4.2,3.13 1.09,4.33 -2.3,0.81 -7.78,0.76 -7.23,-2.79 1.56,-1.72 -2.19,-2.27 -1.32,0.16 -1.72,-2.55 -3.53,-0.09 -1.9,1.66 -2.13,2.01 -4.41,0.62 -6.81,0.57 -2.19,2.71 4.76,1.16 2.08,3.05 0.58,1.9 4.08,1.91 5.81,2.83 1.96,1.43 -0.47,2.15 -1.35,0.46 -1.82,-1.08 -3.45,2.21 -4.74,-0.62 -0.64,-2.28 -4.68,1.1 -2.47,0.81 1.98,0.42 2.27,5.38 5.07,2.98 1.84,-3.35 3.57,2.14 6.26,0.44 1.29,-0.17 2.13,-0.02 0.67,0.65 1.09,1.24 2.33,0.17 2.6,1.96 1.19,2.8 4.25,5.41 6.32,6.4 -0.65,1.36 -3.26,-1.74 -3.14,1.07 -0.24,-1.71 -1.8,-0.78 -1.41,0.45 -1.2,-0.78 -1.84,-2.07 -1.82,0.08 -0.39,2.77 -2.92,-1.74 -2.76,-0.46 0.55,1.51 -0.55,2.28 -0.85,0.45 -2.38,-1.66 -2.14,3.66 -3.7,0.79 -1.88,-0.98 -0.85,3.28 -2.38,0.99 -2,-0.69 -1.48,2.95 -3.73,1.98 -1.43,0.57 -1.73,-1.87 -2.48,0.33 -1.28,0.15 -2.02,-1.77 -3.67,-0.49 -1.51,-0.59 -3.89,-0.69 -5.18,-1.79 -1.83,0.4 -3.94,-2.71 -4.99,0.05 -1.52,0.2 0.6,-5.44 -2.51,-2.84 -0.5,1.46 -2.44,2.79 -1.46,0.41 -0.04,-2.08 -3.47,-2.35 -1.81,-0.01 -0.33,2.95 -2.47,-1.46 -3.31,-2.22 2.66,-0.66 -1.9,-3.4 0.58,-4.85 0.98,-1.25 -0.43,-3.9 -1.29,-1.57 -2.2,1.2 0.59,4.8 -2.3,3.1 0.07,1.58 0.73,2.33 -0.49,2.37 -0.31,3.19 -2.4,-0.77 -3.7,1.08 -1.26,-0.57 -3.86,-0.58 -3.24,0.73 -1.86,1.54 -5.17,-0.4 -5.06,3.18 -2.02,-0.95 -3.43,1.13 -4.24,1.49 -0.67,-0.74 -1.24,2.48 -2,1.23 2.12,-2.45 -2.15,-1.8 -1.8,0.58 -2.16,1.39 -3.92,0.18 -2.08,-1.7 -1.67,0.05 -3.09,2.47 -2.5,-0.4 -0.88,-2.96 -1.92,-0.22 -2,1.13 -1.96,-0.26 -4.27,2.16 -3.76,-0.97 -0.78,-1.12 -2.93,1.49 -3.4,-0.02 1.83,-0.91 0.7,-3.4 -0.63,-1.07 -0.78,1.04 -1.78,1.59 -1.04,-0.05 -2.35,-3.54 3.85,-1.66 4.59,-3.73 -0.17,-1.96 -2.75,-5.32 -4.26,-2.64 1.79,0.66 -1.44,2.8 -2.07,2.43 -1.51,-3.02 -4.63,-0.57 -2.13,1.56 0.17,1.83 -2.38,1.81 -1.85,-0.14 -1.36,-2.38 -2.64,3.42 -2.69,-0.09 0.92,-1.47 0.05,-4.47 -1.39,-1.81 0.69,-2.4 -1.59,-1.67 -2.42,-0.69 -1.63,-2.6 -2.81,-0.08 -1.32,1.39 -0.12,2.09 -5.82,3.27 -3.43,0.33 -0.7,-1.39 -2.14,-1.09 -2.9,-2.54 -1.31,0.12 -1.87,1.12 -2.63,1.96 -0.18,2.43 -0.75,4.74 -2.05,6.98 -0.56,-1.99 -3.06,-1.81 -4.45,-3.2 -2.37,1.32 0.55,4.85 0.85,5.51 -2.93,-1.09 -0.49,5.23 -3.18,2.66C53.03,69.44 53.8,64.37 51.35,66.72c-0.01,1.25 1.67,5.14 1.03,4.67 -0.53,-2.51 -2.88,0.37 -2.61,-2.21 -1.56,-2.63 -4.32,1.46 -2.75,2.77 0.01,1.17 -1.56,2.39 -0.5,0.42 0.86,-3.51 -4.59,-2.97 -3.27,0.28 1.49,1.65 -0.07,2.95 -1.09,0.84 -1.55,-1.63 -4.28,0.31 -4.69,-2.84 -1.38,-1.87 -1.94,1.56 -0.77,2.26 -0.06,1.31 -0.47,2.49 -0.74,0.56 -1.54,-2.22 -1.58,2.78 -0.86,3.53 1.64,2.36 -5.86,1.67 -2.64,3.82 2.3,1.03 -2.22,1.12 -2.82,0.61 -1.74,0.43 1.87,2.58 -0.75,1.83C27.52,82.87 27.84,78.97 25.72,81.05c-0.33,1.79 3.97,2.08 0.81,3.67C24.18,85.6 27.77,81.48 24.7,81.96c-1.65,-0.58 -3.25,0.94 -2.07,2.52 -0.13,-1.56 -3.34,-2.97 -2.3,-0.65 0.92,1 3.65,4.19 0.68,3.11 -0.39,-1.36 -2.18,-3.54 -2.55,-1.53 -2.1,0.36 1.98,3.44 0.79,3.95 -0.52,-1.87 -2.86,-1.68 -1.64,0.35 -0.16,0.51 -2.67,-2.78 -2.9,-4.29 -1.64,-2.64 -1.84,0.81 -1.4,1.86 -0.78,1.52 2.24,0.79 1.57,2.42 -1.75,-0.73 -3.2,1.28 -0.75,1.28 -0.16,0.78 0.34,2.28 -0.65,2.59z M34.12,18.3c-1.05,0.6 -2.47,3.81 -0.57,3.47 1.95,-0.22 4.06,-4.82 0.57,-3.47z m-22.97,56.17c-2.31,-0.35 -0.79,-1.58 0,0z M2.14,66.59c-1.38,-1.11 -0.95,-1.35 0.46,-0.36 -0.18,-0.08 -0.27,0.6 -0.46,0.36z m168.23,-6.32c-0.28,-1.85 2.85,0.02 0.03,0l-0.03,0z M7.85,51.96c-0.57,-0.92 1.55,0.27 0,0z m1.18,-1.63C7.41,50.26 7.17,48.77 8.95,49.87 10,50.07 10.77,49.96 9.03,50.33z M184.09,37.53c-0.77,-1.48 -1.43,-4.23 -2.73,-6.24 -2.01,-2.67 1.21,-6.02 3.05,-2.64 0.95,1.04 0.93,3.38 1.44,4.42 -4.98,-0.16 0.39,3.51 -1.76,4.46z M23.01,25.35c-1.12,-0.81 -0.79,-3.25 0.17,-0.92 0.17,0.37 -0.49,0.58 -0.17,0.92z M209.99,8.88c0.65,-1.41 0.2,-3.29 -1.61,-3.21 -0.07,-1.5 -1.95,-5.46 0.62,-4.89 1.44,0 2.88,0 4.31,0 1.06,2.38 -1.6,4.58 -1.58,7.24 -0.32,0.7 -1.06,0.8 -1.74,0.86z M44.32,3.05c-1.74,-0.98 -6.31,0.12 -6.14,-2.09 1.47,1.81 3.05,0.95 2.25,-0.17 2.2,-0.52 2.82,0.46 3.89,2.27z\",\"name\":\"Greenland\"},\"is\":{\"path\":\"m151.61,141.44c-2.42,-0.05 -4.73,-1.12 -5.95,-3.36 -0.71,-2.06 -4.34,-1.68 -3.81,-4.38 0.8,-0.95 3.4,-0.95 1.03,-1.6 -1.69,0.92 -0.37,-1.61 -2.18,-0.86 -0.88,-0.03 -1.32,-2.12 -2.96,-2.05 -1.43,-1.13 -6,-1.27 -4.53,-3.48 1.4,1.45 5.16,1.15 5.29,-1.63 0.95,-0.08 4.39,1.14 2.46,-0.91 -1.28,-0.31 -3.16,-1.27 -0.58,-1.35 2.41,0.51 2.39,-2.69 -0.02,-1.57 -1.25,0.39 -2.36,1.06 -1.66,-0.43 -0.34,-1.62 1.57,-4.11 -1.54,-3.94 -1.49,-1.7 -3.83,-2.36 -5.98,-2.91 1.9,-1.43 2.13,2 4.45,0.36 0.58,-0.11 0.84,1.82 1.93,0.36 1.45,0.02 2.12,1.75 4.12,1.85 1.57,1.88 4.72,-0.08 2.56,-1.73 -1.13,0.23 -4.71,-0.08 -2.41,-1.51 1.13,0.1 5.66,-0.35 3.94,-1.58 -2.53,-0.05 -1.4,-0.83 -0.29,-1.63 0.84,-2.83 -2.64,-1.96 -3.34,-1.81 -1.47,-0.72 -2,-0.85 -1.64,-2.44 2.52,0.42 0.64,-2.75 -0.27,-3.56 -0.04,-0.34 1.76,2 1.91,-0.11 -0.65,-3.43 1.88,0.34 1.11,2 -0.95,4.21 5.86,2.44 3.19,-0.73 -1.94,-1.31 0.11,-2.67 -1.13,-4.2 1.13,0.42 1.67,1.6 2.04,1.18 1.98,0.31 -0.01,2.5 1.33,3.37 0.86,1.89 -0.77,4.19 1.64,5.57 -1.28,0.64 -3.87,-0.52 -2.63,1.99 -0.4,1.18 -1.92,2.25 -0.42,2.93 -1.31,1.46 -1.09,4.59 1.22,2.7 0.49,-1.4 2.89,-6.12 2.22,-2.37 2.69,2.22 4.53,-3.04 4.48,-5.25 2.58,0.03 -0.68,6.63 3.51,5.53 -0.01,-0.74 0.05,-5.1 1.81,-2.72 1.08,-2.01 3.5,-0.36 1.83,1.62 2.1,1.36 -0.53,3.45 0.95,5.46 2.69,-0.06 0.02,-7.39 2.92,-6.07 -0.32,2.52 1.49,4.92 3.27,1.85 1.68,-2.37 1.62,3.33 3.69,1.28 1.71,-0.8 1.1,-6.38 3.47,-3.02 -0.81,1.5 1.32,1.54 -0.24,3.29 -0.5,2.17 2.82,1.16 2.36,3.29 2.02,0.52 2.1,1.62 0.19,2.57 -2.6,1.53 3.45,1.86 0.49,3.25 -0.74,0.55 -3.68,1.15 -1.27,1.34 1.72,-0.23 4.34,-1.28 4.35,1.54 -0.04,2.17 -4.93,1.21 -2.47,3.09 1.83,0.33 2.75,2.38 0.41,2.2 -1.18,-0.56 -1.74,-0.63 -0.71,0.56 -0.6,-0.3 -3.92,0.12 -2.06,0.55 2.71,0.87 -0.55,1.36 -1.7,1.52 -1.06,0.04 -2.49,1.02 -2.87,2.69 -1.35,-0.83 -1.72,1.98 -2.29,-0.35 -0.72,-2.57 -2.1,-0.68 -2.71,0.31 -2.09,-0.1 -4.17,0.18 -5.78,1.63 -1.89,0.57 -3.52,-3.04 -3.52,0.21 -2.4,-1.75 -5.62,-1.53 -6.88,1.4l-0.35,0.08 0,0z m24.31,-7.94c-1.58,1.64 1.17,1.65 0.84,-0.23 -0.28,0.08 -0.56,0.15 -0.84,0.23z M147.49,99.76c-2.33,0.02 -1.42,1.38 0.2,1.79 0.14,-0.38 0.69,-1.97 -0.2,-1.79z m33.62,15.99c1.19,-0.59 1.6,-0.17 0,0z m-44.05,-9.09c-1.62,-0.01 -0.68,-1.6 0.37,-0.74 1.34,-0.47 -0.84,-4.6 0.49,-2.48 -0.6,1.82 2.54,3.42 -0.86,3.22z m-1.42,-1.5c-1.66,0.2 -1.5,-3.06 -0.29,-0.86 -0.05,0.3 1.22,0.95 0.29,0.86z m4.48,-1.49c-0.86,-0.96 -0.83,-1.57 0,0z\",\"name\":\"Iceland\"},\"pt\":{\"path\":\"m126.31,476.79c-3.11,-0.89 -5.74,-4.21 -9.28,-3.12 -1.78,0.38 1.76,-2.58 1.47,-3.95 0.39,-1.92 1.56,-3.11 1.18,-4.56 -0.46,-1.65 0.47,-3.6 1.4,-5.27 -0.61,-1.65 3.07,-0.14 2.33,-1.74 -1.59,-1.17 -2.48,-2.71 -4.71,-1.61 -1.89,-0.04 -2.12,-3.1 -2.67,-4.46 0.27,-2.21 3.57,-4.27 2.21,-6.5 2.42,0.37 3.47,-2.17 4.77,-3.81 0.98,-1.71 1.87,-3.43 3.16,-4.47 -0.79,-1.76 1.02,-5.31 3.28,-5.87 1.59,-1.26 -0.95,-2.63 0.8,-4.09 0.23,-2.53 -1.05,-5.19 -0.11,-7.75 2.54,0.06 0.15,-1.87 0.17,-2.24 1.59,-1.44 4.74,-3.3 6.49,-1.31 -3.35,1.53 -0.16,3.98 2.09,3.19 1.85,-0.17 3.87,2.53 6.45,0.97 1.56,-0.13 6.26,-0.07 4.22,3.05 0.22,1.77 4.81,2.08 1.88,3.98 -2.66,0.33 -4.02,2.88 -6.33,3.35 -0.97,1.66 1.09,4.53 -0.81,6.49 -1.07,1.01 0.55,2.39 -1.62,2.77 -2.6,1.54 1.62,6.06 -2.82,6.49 -1.74,-0.37 -5.6,-2.08 -3.57,1.31 1.07,1.89 -0.41,4.57 2.03,6.2 1.92,2.91 -3.81,2.81 -3.68,5.95 -1.09,1.6 0.5,5.45 2.67,5.41 -1.19,1.2 -4.31,1 -5,3.34 -3.07,2.07 -0.28,7.22 -4.25,7.62 -0.55,0.29 -1.11,0.63 -1.75,0.65z\",\"name\":\"Portugal\"},\"ma\":{\"path\":\"m114.26,519.26c5.38,-1.06 11.75,-0.39 15.9,-4.63 5.26,-4.88 8.22,-11.54 11.83,-17.6 2.3,-1.64 3.11,0.89 3.7,2.43 3.25,0.06 3.27,5.03 6.51,6.18 2.01,2.4 5.02,1.6 7.69,1.35 1.26,1.84 3.78,-0.68 5.41,1.5 1.48,1.09 4.97,-1.46 5.09,1.72 1.76,1.07 3.75,0.97 5.94,1.12 1.21,2.49 5.27,4 3.5,6.77 1.55,1.82 -0.97,1 -2.11,1.18 -21.15,0 -42.31,0 -63.46,0z\",\"name\":\"Morocco\"},\"es\":{\"path\":\"m170.08,507.95c-0.69,-0.45 0.64,-1.19 0,0z m-23.1,-9.15c-1.89,-0.27 -1.23,-3.36 0.81,-2.76 -1.01,0.61 -0.28,2.16 -0.81,2.76z m-1.53,-5.41c-1.92,-1.84 -4.81,-3.55 -4.78,-6.5 1.74,-1.65 -3.05,-2.72 0.06,-3.62 1.8,0.08 1.95,-2.62 0.29,-1.71 -1.68,1.92 -1.49,-3.2 -3.57,-3.37 -1.21,-2.54 -5.06,-1.7 -6.26,-3.7 0.08,-2.72 1.22,-5.37 3.58,-6.95 1.91,0.46 5.66,-3.3 1.98,-3.27 -1.9,-2.17 -1.67,-5.74 1.14,-6.99 3.7,-0.95 1.1,-4.57 -0.28,-6.35 0.58,-1.68 0.45,-3.01 -0.84,-4.53 2.46,2.34 7.45,0.07 6.4,-3.43 -2.26,-2.56 3.15,-2.71 1.97,-5.34 1.81,-1.67 0.28,-5.41 1.17,-6.21 1.77,-2.14 4.99,-2.46 6.88,-4.55 1.92,-2.79 -4.07,-2.45 -2.2,-4.91 0.43,-3.16 -4.07,-2.3 -5.69,-3.2 -1.8,2.37 -3.89,-1.02 -6.23,-0.51 -0.28,-1.34 -3.49,1.05 -2.42,-0.88 2.82,-1.19 -0.75,-4.5 -2.73,-2.96 -2.11,1.45 -3.86,-0.78 -1.34,-1.64 0.94,0.28 2.32,-1.98 0.72,-1.58 2.23,-1.63 -2.16,-0.92 -0.24,-2.66 2.41,-1.99 0.28,-4.66 -2.06,-3.75 -2.26,-1.66 -0.12,-3.23 1.07,-4.13 3.66,0.29 6.76,-2.08 9.92,-3.51 1.78,-2.19 1.34,2.22 3.29,-0.21 3.33,-0.27 2.62,6.64 6.6,4.09 2.47,1.16 5.51,0.94 8.02,1.44 1.9,-1.24 3.14,2.45 5.32,2.3 2.35,0.57 4.3,2.34 6.75,2.93 2.65,1.41 5.29,-0 7.84,-0 2.13,0.65 4.69,5.39 6.5,1.98 2.5,1.32 5.04,3.91 8.46,3.08 1.39,-0.01 3.8,0.79 4.14,1.8 -1.87,1.22 0.06,2.67 1.22,2.4 1.66,1.57 5.29,1.19 5.34,4 1.46,0.54 4.43,-0.57 4.33,1.92 1.41,-0.29 3.73,0.98 4.54,0.5 1.54,0.01 3.53,0.67 3.72,-1.35 1.63,1.02 3.94,2.12 5.05,3.3 -0.62,2.48 1.62,2.94 3.4,2.37 1.23,1.43 2.74,2.23 4.47,1.42 1.62,0.92 3.85,2.1 4.94,-0.04 1.38,-0.43 5.47,1.31 2.5,2.25 -0.52,2.49 0.35,5.62 -3.02,6.24 -3.95,0.65 -6.55,3.99 -10.24,4.85 -4,0.26 -8.86,0.24 -11.41,3.91 0.64,1.13 2.06,1.75 -0.08,1.82 -2.98,1.35 -3.8,5 -6.55,6.72 -2.04,2.09 -4.6,4.27 -5.09,7.29 -0.14,3.13 0.72,6.8 3.86,8.19 -0.28,2.13 -4.94,1.61 -6.14,3.93 -1.51,0.81 -1.84,2.35 -3.08,3.65 0.22,1.68 -4.27,3.01 -1.46,5.03 -0.94,1.1 -4.96,-1.49 -6.88,0.41 -2.79,1.13 -4.55,3.71 -5.69,6.37 -2.11,3.74 -4.63,-2.34 -7.31,0.69 -2.28,0.2 -4.7,-1.72 -7.4,-1.1 -2.51,-0.92 -5.12,-1.75 -7.89,-1.82 -2.99,0.03 -4.54,3.25 -7.74,1.83 -3.45,-0.48 -3.73,3.46 -6.83,4.06z M229.67,469.73c-3.03,-0.94 2.34,-1.17 0,0z m-3.28,-1.86c-1.31,-1.98 3.63,-2.8 0.96,-0.55 -0.28,0.23 -0.58,0.51 -0.96,0.55z m8.15,-0.95c-0.99,-1.19 -3.24,-1.21 -2.69,-3.07 -1.57,-0.61 -4.43,-0.57 -1.44,-1.83 1.82,-0.69 5.61,-3.6 5.15,-0.13 1.01,1.13 4.03,0.64 1.76,2.77 -0.83,0.87 -1.8,1.58 -2.78,2.26z m11.67,-5.53c-0.43,-1.32 -5.6,-1.9 -2.47,-2.15 1.42,0.04 2.4,0.66 2.47,2.15z\",\"name\":\"Spain\"},\"tn\":{\"path\":\"m284.9,519.26c-2.21,-1.12 0.73,-3.64 -0.95,-5.51 -1.46,-3.16 2.15,-6.93 -0.12,-9.45 -0.67,-0.73 2.93,-1.29 1.98,-2.95 2.23,-0.03 1.46,-2.58 3.74,-2.85 2.52,-1.83 5.41,-3.02 8.35,-3.78 1.3,0.18 -1.34,3.29 1.51,2.64 0.71,-1.15 1.1,-2.15 2.08,-1.26 -0.76,0.27 1.03,1.6 0.03,2.09 1.72,0.55 2.13,5.46 4.03,3.7 1.46,-0.73 4.4,-5.15 5.37,-2.71 -0.9,2.37 -2.28,5.07 -4.51,6.35 -3.22,1.82 -2.27,6.37 0.87,7.67 1.26,0.82 1.66,2.08 3.04,2.36 -0.15,1.99 1.01,4.41 -1.79,3.68 -7.88,0 -15.77,-0.01 -23.63,0.01z\",\"name\":\"Tunisia\"},\"dz\":{\"path\":\"m181.84,519.26c-2.16,-1 0.09,-2.29 0.05,-3.03 -0.8,-1.48 -5.28,-4.37 -1.47,-3.7 2.83,-0.51 5.98,-1.33 7.84,-3.67 1.17,-2.46 3.66,-2.95 5.89,-2.07 1.44,-0.79 2.77,-2.77 3.38,-0.29 3.67,1.9 4.38,-3.05 7.15,-3.91 3.27,-1.17 6.41,-3.1 10.01,-2.8 3.04,0.05 6.13,0.57 9.13,-0.19 2.74,1.56 5.53,-0.24 7.63,-1.26 2.46,0.75 5.2,0.79 7.75,-0.34 2.83,-0.67 5.62,0.67 8.61,0.23 3.35,0.17 5.17,6.05 8.94,3.1 1.43,-2.77 7.09,0.3 7.33,-3.88 2.03,-1.62 1.87,1.59 2.96,1.23 1.79,0.05 6.14,2.99 6.01,-0.61 2.5,-2 5.17,3.33 8.12,2.16 1.57,-1.13 4.46,-0.6 5.35,-0.15 -1.62,-0.02 -2.54,1.2 -1.93,2.18 -1.87,0.63 -3.58,2.5 -1.04,3.3 0.38,2.87 -2.09,5.94 -0.27,8.63 -0.06,1.4 0.31,4.98 -0.86,5.05 -33.52,0 -67.05,0 -100.57,0z\",\"name\":\"Algeria\"},\"be\":{\"path\":\"m265.32,343.64c-0.99,-1.16 -1.81,-2.49 -3.73,-3.37 -2.08,-0.35 -0.28,-1.85 -1.25,-2.79 1.47,-1.88 -0.53,-2.73 -1.47,-0.87 -1.28,2.32 -4.46,0.99 -3.2,-0.74 -0.78,-0.74 1.11,-3.63 -1.62,-3.19 -2.17,0.83 -2.23,-1.41 -2.67,-2.1 -3.94,1.05 -1.51,-5.53 -5.39,-3.71 -2.36,1.07 -3.02,-4.27 -0.45,-4.53 1.73,-0.62 4.14,-3.17 4.52,-0.63 2.42,-0.22 3.66,2.56 5.83,0.13 1.3,-0.02 1.88,1.91 1.96,-0.36 0.89,-2.95 2.67,0.31 4.45,-0.43 0.58,-0.7 1.45,3.34 3.54,2.07 2.55,0.01 1.99,1.94 1.4,3.06 -1.22,1.97 -0.15,4.06 2.13,3.5 1.5,1.19 1.36,3.16 2.63,4.39 -1.48,2.22 -4.2,1.28 -5.1,4.2 -1.39,2.28 2.74,5.98 -1.59,5.37z\",\"name\":\"Belgium\"},\"it\":{\"path\":\"m350.4,500.36c-1.75,-1.38 -4.77,0.56 -6.21,-2.11 -0.98,-3.12 -4.25,-2.35 -6.74,-3.12 -2.11,-1.47 -4.61,-1.93 -6.58,-3.76 -2.2,-1.23 -6.25,0.31 -6.1,-3.66 0.15,-1.98 2.31,-4.17 3.5,-1.8 2.52,0.49 3.53,-4.85 5.24,-0.9 2.01,0.26 4.02,2.27 5.97,0.45 2.63,-0.1 5.81,0.01 7.46,-2.47 1.45,0.01 4.12,1.89 4.36,-0.76 1.1,1.6 3.69,-2.6 2.02,0.26 -1.4,3.25 -4.08,7.31 -3.12,10.66 1.21,0.69 0.93,2.35 2.17,3.37 -1.93,0.14 -1.88,2.41 -1.97,3.84z m7.22,-15.37c-2.78,-0.14 -2.87,-3.99 -0.28,-4.55 1.37,-2.08 -1.36,-4.79 2.17,-5.13 3.25,-2.22 -1.35,-4.63 -1.21,-7.46 -1.16,-2.63 -2.56,-4.66 -3.09,-7.45 -1.59,-2.98 -4.91,-0.29 -6.78,-2.73 -1.65,-0.84 -0.12,-5.17 -3.33,-5.63 -1.56,-0.37 -4.03,2.8 -2.57,0.22 0.06,-2.91 -3.33,-1.3 -4.25,-2.37 -0.69,-2.23 -3.26,-6.17 -5.36,-4.2 -1.73,-2.18 -4.5,1.85 -5.25,-1.44 -2.69,-0.65 -4.1,-2.62 -6.18,-4.28 -0.73,-3.32 -5.19,-3.11 -5.74,-6.57 -1.05,-1.9 -5.27,-0.02 -4.05,-2.26 -1.1,-2.38 -3.86,-3.39 -4.73,-5.46 -3.13,0.51 0.07,-2.73 -1.71,-4.47 -2.14,-2.56 -1.2,-6.42 -3.6,-8.63 -2.19,-1.12 -4.5,-0.88 -6.03,-3.28 -2.22,-0.9 -4.82,-2.51 -7.33,-1.86 -1.74,1.89 -3.46,3.3 -4.61,5.48 -1.55,2.14 -5.91,2.59 -3.27,-0.76 1.07,-4.25 -4.16,-0.46 -5.52,-3.08 -2.08,-1.9 -1.08,-4.02 0.62,-5.53 0.76,-2.12 -4.77,-3.84 -2.88,-4.68 2.55,0.23 5.53,-3.6 2.83,-5.28 -0.93,-1.94 -2.92,-4.5 0.7,-3.9 2.4,0.04 4.29,-1.2 6.65,-0.24 1.85,-1.05 2.45,-2.98 2.51,-4.87 1.03,-0.35 2.29,-2.18 1.57,0.13 -0.67,2.56 4.99,2.17 2.47,4.45 0.19,0.08 2.08,0.32 2.23,1.7 1.41,1.01 2.54,-1.65 0.98,-2.25 0.53,-2.02 3.41,-3.57 2.37,-5.9 0.68,2.09 2.82,3.69 4.41,1.42 0.81,0.91 2.52,3.75 3.07,0.97 -0.97,-1.55 1.29,-1.81 -0.84,-2.7 -0.29,-2.99 3.05,2.3 3.43,-1.02 -1.77,-2.29 0.88,-4.07 2.84,-1.92 2.41,1.34 1.9,-4.15 4.64,-2.65 2.33,0.51 5.21,-2.28 6.13,0.74 1.38,2.34 4.22,3.29 6.93,3.47 1.41,0.44 5.26,-0.07 4.99,0.93 -2.13,0.92 -2.35,3.92 0.43,3.72 -1.26,1.22 -1.47,2.53 -0.57,3.56 0.79,3.16 -4.05,-1.16 -3.93,2.42 -2.22,1.73 -5.54,2.13 -7.33,4.03 -0.52,1.97 1.06,2.99 1.39,4.46 3.61,0.71 -1.06,2.87 -0.87,4.28 0.35,2.85 0.62,6.32 3.48,7.85 2.75,2.1 5.47,4.43 8.75,5.58 2.03,1.86 2.11,4.88 3.12,7.29 0.93,3.7 3.47,6.75 6.72,8.67 2.2,2.52 5.18,4.19 8.71,3.54 1.79,0.5 5.88,-2.59 5.92,0.29 -0.8,1.53 -3.65,2.89 -1.29,4.86 4.13,2.94 10.13,1.81 13.75,5.65 1.89,1.55 5.85,0.5 6.34,3.52 1.71,1.18 6.04,2.73 4.13,5.37 0.4,1.63 -0.95,3.55 -2.34,1.36 -0.96,-2.97 -3.23,-5.68 -6.54,-4.48 -2.32,-1.32 -6.05,-2.69 -6.78,1.09 -1.28,2.2 -1.32,4.97 -2.42,7.17 0.64,2.84 4.59,1.65 5.83,3.73 1.59,0.26 0.35,2.98 1.81,3.8 -0.21,3.1 -5.83,1.6 -5.88,5 0.28,1.92 0.81,4.68 -1.72,5.06 -1.23,1.65 -1.39,4.64 -3.63,5.25z m-35.56,-71.98c1.98,1.43 0.5,-2.39 0,0z m-33.54,62.41c-0.72,-1.6 -3.1,-3.35 -3.37,-5.68 1.54,-2 1.07,-4.81 2.16,-7.03 -3.26,0.28 0.82,-2.8 -0.89,-4.55 -0.02,-1.96 -1.35,-4.24 -2.94,-4.22 0.19,-1.55 0.4,-3.39 2.06,-1.78 3.1,0.15 5.25,-2.55 7.52,-4.29 0.91,-0.84 5.63,1.48 2.53,2.55 -0.36,1.47 2.3,1.33 1.41,2.66 3.07,1.36 0.3,4.08 -0.53,6.16 1.23,2.67 0.22,5.65 0.3,8.76 -0.33,1.29 -0.37,5.73 -2.35,3.37 -1.49,-1.18 -4.61,-1.6 -3.46,1.11 -0.38,1.17 -0.94,2.88 -2.43,2.94z\",\"name\":\"Italy\"},\"by\":{\"path\":\"m402.72,308.87c0.99,-3.18 0.27,-7 -3.79,-7.04 -0.71,-2.3 3.14,-4.07 4.34,-6.18 -0.26,-5.15 -3.83,-9.19 -5.74,-13.77 2.18,-0.83 4.01,-0.87 5.95,-0.9 0.86,-1.84 2.51,-1.83 3.98,-0.84 -1.05,-1.12 -2.37,-3.07 0.28,-3.17 1.9,0.02 -0.71,-2.58 2.17,-2.24 -1.28,2.76 4.76,1.14 2.24,-1.38 -2.85,-0.47 0.33,-3.89 -1.4,-5.76 0.96,-1.56 2.7,-3.08 2.72,-4.65 2.53,0.76 4.43,-4.49 0.94,-3.47 -1.1,-1.17 0.25,-4.78 1.91,-6.11 2.45,0.48 4.37,-0.43 4.51,-3.22 0.17,-2.25 2.08,-1.78 3.18,-1.85 2.02,-2.32 2.15,2.85 3.69,0.14 1.75,-1.51 3.73,-0.83 3.53,1.45 2.17,2.99 3.24,-2.73 5.87,-2.54 1.93,0.2 3.24,2.17 5.04,1.95 0.25,2.02 -0.47,3.85 1.8,5.15 0.82,1.65 -1.87,4.51 1.47,4.95 2.1,-0.08 0.99,1.32 1.56,1.96 1.72,2.18 3.98,3.94 6.71,3.73 0,1.84 0.71,4.69 2.92,2.85 2.09,-1.22 3.09,0.78 3.28,1.76 2.02,-0.38 3.13,1.46 1.26,2.31 -0.06,3.07 -3.04,4.09 -5.35,2.65 -3.54,0.27 -2.85,5.57 0.51,5.52 0.97,2.55 1.33,5.72 3.91,7.42 -2.66,1.35 -6.88,2 -6.85,5.76 -1.23,2.53 1.43,5.57 1.33,7.2 -1.16,-1.33 -5.51,-3.73 -5.13,-0.77 -2.24,-2.52 -3.75,4.16 -4.59,0.03 -1.77,-2.65 -4.04,1.4 -4.28,1.56 -1.22,-2.58 -2.82,1.6 -3.58,-0.67 -1.01,0.66 -2.93,1.68 -4.34,1.01 -1.39,0.16 -1.96,2.41 -2.67,0.56 -2.3,-2.34 -5.69,0.72 -8.43,-0.73 -2.87,-0.21 -5.7,0.69 -8.51,0.87 -1.69,1.51 -4.3,1.17 -5.72,2.79 -0.82,1.63 -1.2,4.18 -3.37,2.88 -0.54,-0.03 -1.11,0.27 -1.34,0.78z\",\"name\":\"Belarus\"},\"pl\":{\"path\":\"m378.8,342.69c0.85,-2.71 -2.77,-1.44 -3.2,-3.81 -2.16,-0.74 -2.68,4.74 -4.1,1.6 -1.34,-0.42 -0.38,-2.05 -2.3,-2.3 -1.38,-1.23 -0.72,-3.2 -2.99,-2.63 -1.39,-1.14 -3.17,-0.83 -4.08,-0.27 -2.65,-1 1.12,-2.8 -1.66,-3.95 -1.04,2.08 -3.71,0.51 -5.13,-0.34 -2.56,-1.21 -1.29,2 -1.13,2.64 -1.27,1.67 -2.44,1.3 -2.92,-0.65 -1.25,-0.75 -2.67,-1.29 -0.72,-2.16 1.16,-2.1 -2.17,-2.93 -3.11,-1.63 -1.5,-2.25 -5.49,-1.16 -6.45,-4 -1.21,-1.39 -2.59,1.06 -1.9,-1.41 0.23,-2.18 -0.48,-4.58 -2.34,-5.49 -1.37,-2.65 0.61,-5.37 -0.78,-8.1 -2.17,-1.37 0.53,-5.96 -3.41,-5.97 -3.09,-2.11 2.9,-5.25 0.3,-8.13 -0.64,-1.64 -2.11,-4.93 -1.01,-5.69 2.39,-0.86 4.49,-2.6 7.02,-3.34 1.88,-0.91 4.34,-1.13 5.97,-2.18 0.73,-2.97 3.72,-4.13 6.19,-5.25 2.44,-1.51 5.22,-3.64 8.26,-2.74 0.34,2.92 2.37,6.29 5.83,5.11 2.32,-0.46 3.66,-2.87 6.19,-1.88 5.94,0.22 12.06,0.04 17.77,-1.75 2.19,-1.89 4.37,-0.56 6.59,0.69 0.91,5.68 5.67,10 6.52,15.73 -0.74,2.77 -4.55,3.76 -4.71,6.89 0.95,2.08 5.51,0.97 4.43,4.48 -0.75,3.1 1.11,5.48 1.99,8.14 0.77,2 4.89,2.48 3.07,4.57 1.18,1.35 3.03,3.77 0.15,4.64 -2.63,0.49 -3.02,4.28 -4.54,6.17 -0.82,2.29 -3.04,4.17 -2.56,6.78 1.11,1.72 -0.12,4.53 2.39,4.91 -2.96,0.2 -5.66,-0.81 -7.88,-2.64 -2.12,-1.23 -4.34,-0.31 -6.37,0.12 -1.06,0.6 -0.02,2.66 -2.03,1.15 -2.7,-1.27 -4.67,0.77 -6.02,2.87 -0.44,-0.92 -1.49,0.48 -1.34,-0.18z\",\"name\":\"Poland\"},\"jo\":{\"path\":\"m566.3,519.26c-0.01,-4.69 -2.26,-8.97 -3.12,-13.51 1.51,-3.32 4.45,-0.15 6.76,0.1 3.02,0.33 6.94,0.22 8.51,-2.87 4.44,-5.57 8.37,-11.53 12.83,-17.08 1.86,2.51 3.76,5 5.38,7.68 -2.06,2.03 2.19,4.71 3.12,1.72 0.91,2.72 -2.48,4.53 -4.03,6.38 -4,3.47 -8.47,6.39 -12.72,9.51 -2.44,0.61 -3.15,3.3 -0.46,3.9 2.58,1.36 5.17,2.72 7.71,4.17 -7.99,0 -15.99,-0 -23.98,0z\",\"name\":\"Jordan\"},\"gr\":{\"path\":\"m449.88,508.26c-1.41,-0.44 -0.91,-2.43 -2.98,-2.05 -2.92,-1.02 -4.66,0.87 -7.49,-0.12 -2.89,2.86 -3.34,-3.03 -1.84,-3.28 2.13,1.48 4.85,0.78 6.99,2.27 2.66,-1.89 5.67,-2.41 8.68,-1.61 1.64,-0.07 3.7,-0.37 4.57,-0.83 -1.03,2.5 2.95,2.63 3.64,0.39 1.59,-1.01 2.86,-0.15 1.23,1.36 -4.14,0.67 -8.27,1.86 -12.04,3.72l-0.39,0.1 -0.37,0.03 0,0z m-26.29,-13.55c-0.61,-2.64 -1.46,-5.84 -4.37,-6.76 -3.02,-0.62 -1.68,2.8 -1.92,4.11 -2.48,0.25 -0.03,-2.58 -2.33,-3.13 -1.56,-1.69 2.11,-3.33 -0.42,-5.29 -1.75,-1.46 -3.48,-2.23 -4.88,-3.8 -1.71,-0.32 1.67,-2.18 0.95,-3.89 1.31,0.41 3.43,-0.58 4.2,-2.4 2.31,-0.03 5.27,1.8 8.03,2.01 1.1,0.72 3.08,0.98 3.24,1.46 1.77,0.36 1.5,3.47 4.29,3.78 1.97,0.86 -3.33,1.22 -3.75,-0.39 -3.29,-1.87 -3.6,3.04 -0.88,3.97 1.42,2.4 3.54,4.49 2.98,7.25 0.93,1.21 1.93,2.16 0.11,0.68 -1.13,-1.37 -3.59,-4.36 -5,-1.33 -0.38,1.2 -0.28,2.48 -0.25,3.72z m12.62,-17.67c-0.61,-1.76 -3.37,-2.18 -4.61,-3.83 -1.54,-1.35 -1.12,2.07 -3.22,1.63 -1.32,1.11 -3.33,0.37 -1.06,-0.31 2.53,-1.38 -0.23,-3.22 -1.98,-2.17 -2.19,0.64 -2.76,-3.59 -4.29,-0.5 0.28,-1.81 -1.78,-2.98 -1.95,-0.63 -1.85,0.67 -5.66,-0.17 -7.42,2.31 -1.43,-1.51 -2.69,-1.73 -3.58,0.32 -0.06,-3.13 -3.02,-4.71 -4.64,-5.97 -0.05,-3.03 -3.45,-4.15 -5.3,-5.69 0.58,-2.13 -4.66,-2.22 -1.22,-2.7 1.45,0.13 1.31,-1.81 1.97,-2.79 -2.74,-2.59 4.57,-2.51 2.29,-5.81 0.57,-2.27 3.93,-4.04 1.77,-6.57 2.29,-1.19 5.68,-0.59 7.21,-3.12 0.92,-4.2 5.51,-0.91 7.7,-3.66 0.88,-0.81 0.03,-3.12 2.26,-2.13 2.68,-1.49 5.94,-1.98 8.75,-3.4 1.35,-1.69 4.25,-2.43 5.72,-0.71 1.88,0.93 3.48,-0.95 5.39,0.66 2.83,0.48 5.06,-1.99 7.75,-2.56 2.63,-1.48 -0.92,-3.81 -0.19,-4.93 2.53,-0.82 6.54,2.78 3.07,4.45 -2.66,1.03 1.16,6.08 -1.92,6.2 -2.59,-1.16 -5.58,1.42 -8.08,-0.62 -2.31,-0.06 -3.98,4.61 -5.94,1.87 -2.75,-0.21 -2.93,5.39 -5.82,3.29 -2.56,0.13 -2.19,2.87 -0.61,3.88 1.51,1.31 -0.02,1.67 -0.46,3.12 -2.01,-0.91 -2.94,1.12 -4.72,-0.3 -3.05,1.25 -3.01,-2.2 -1.76,-3.97 -0.09,-0.54 -2.81,1.81 -3.44,2.49 -1.02,1.92 0.18,3.87 -0.21,6.03 1.55,1.98 3.8,3.4 4.84,5.84 0.92,0.8 4.25,2.4 3.42,2.64 -2.14,-2.19 -4.85,-0.02 -3.78,2.46 1.31,0.13 3.2,1.7 0.6,2.21 -1.13,0.04 -4.23,2.36 -2.68,2.49 2.62,-1.25 4.96,1.17 7.41,0.98 0.52,2.36 2.91,0.77 3.98,2.53 2.06,0.36 4.93,0.25 3.64,2.95 0.1,1.33 1.96,3.02 1.13,4.05z m-32.41,-12.35c-2.66,1.97 2.35,4.76 3.65,1.72 0.88,-3.08 -2.48,0.37 -3.25,-1.63l-0.4,-0.09 0,0z m1.2,12.17c-2.12,0.67 -3.94,-2.49 -2.24,-3.05 -0.52,2.11 1.79,2.11 2.24,3.05z m35.21,-4.75c-1.33,-0.45 -3.15,-2.25 -0.48,-1.45 1.91,-0.84 2.27,1.01 0.48,1.45z m-3.1,-3.76c-1.98,-1.68 -5.22,0.85 -5.86,-2.11 -1.43,-1.48 -5.05,-2.2 -5.77,-2.78 2.78,-2.67 4.14,2.1 7.15,1.68 1.66,0.78 3.06,-0.62 3.9,1.22 0.4,0.59 0.43,1.32 0.58,1.99z m-10.1,-17.81c-3.53,-1.73 2.32,0.07 0,0z m3.59,-1.57c-2.32,-1.62 -0.44,-1.62 0.45,0.12l-0.11,0.22 -0.34,-0.34z\",\"name\":\"Greece\"},\"tm\":{\"path\":\"m679.06,344.59c-1.21,-0.72 -0.78,-2.05 -2.51,-2.48 -0.91,-2.53 -0.44,-5.74 -2.11,-7.9 1.43,2.3 3.65,0.44 4.81,-0.09 -0.04,3.47 0.02,6.95 -0.03,10.42l-0.16,0.04z m-9.11,-14.43c-1.83,0.29 -2,-1.85 -2.97,-2.07 -2.67,-0.77 0.57,-4.63 0.48,-6.52 1.65,-3.13 3.89,-6.16 6.88,-8.09 1.36,-0.18 5.09,-1.73 4.9,0.43 0,2.65 0,5.3 0,7.95 -2.35,-1.52 -3.83,-5.43 -6.79,-5.11 -2.41,2.22 -6.24,4.38 -5.17,8.26 -0.05,1.27 0.71,3.09 1.95,2.4 0.34,0.89 0.41,1.85 0.72,2.75z m9.29,-40.46c-2.98,-4.77 -6.29,-9.32 -9.41,-14 0.44,-3.11 3.69,-4.89 4.74,-7.82 1.56,-2.45 3.21,-4.85 4.68,-7.37 0,9.73 0,19.46 0,29.19z\",\"name\":\"Turkmenistan\"},\"kz\":{\"path\":\"m665.18,326.25c-2.97,-1.86 -1.2,-5.67 -2.65,-8.21 0.53,-3.17 -3.51,-2.8 -4.88,-0.83 -1.79,-1.67 -2.48,2.95 -4.91,0.84 -1.43,-2.21 -3.22,-0.68 -4.76,0.52 -0.4,-3.09 -3.28,-5.18 -6.16,-5.75 -2.02,-1.36 -4.24,-5.19 -6.86,-2.37 -2.9,1.87 -4.15,-4.1 -0.51,-3.35 1.06,-1.32 1.8,-1.79 3.42,-0.84 1.53,-0.78 2.76,-2.24 4.06,-3.11 -1.44,-2.18 -5.78,0.43 -7.07,-2.22 0.12,-1.34 3.47,-2.2 0.83,-3.45 -1.26,-2.14 2.16,-2.43 1.45,-4.52 2.51,-0.62 4.01,-2.7 6.42,-3.67 1.55,-0.68 5.82,-1.56 4.27,-3.73 -2.44,0.42 -5.53,1.2 -4.64,-2.51 0.27,-3.12 -0.67,-6.7 -3.34,-8.56 -1.46,-0.11 0.78,-3.59 -1.86,-3.15 -1.5,-2.77 -4.84,0.02 -6.51,0.7 0.1,2.2 -0.93,4.69 -3.45,3.61 -2.4,0.56 -6.57,-0.38 -7.49,3.29 -0,2.58 -2.65,3.31 -2.68,6 -1.27,1.57 -1.07,5.37 -3.43,5.36 -2.12,-0.08 -2.2,2.62 -2.46,3.63 -1.26,0.74 -5.86,0.39 -4.64,-0.82 3.5,0.56 3.47,-4.4 0.06,-4.32 -3.14,-1.51 -5.73,-4.02 -8.93,-5.36 -2.47,-0.32 -4.25,2.11 -6.54,2.07 -0.12,1.28 0.37,2.59 -1.35,1.17 -1.8,-0.93 0.01,-2.79 -2.21,-3.3 0,-2.52 -4.2,-0.23 -5.74,-0.66 -0.96,-2.72 -0.8,-5.85 -0.41,-8.82 0.73,-3.23 -4.34,-1.07 -3.74,-4.61 -1.48,-2.21 -1.17,-5.16 0.32,-7.28 -2.58,-1.5 -1.53,-6.73 1.82,-4.04 2.29,0.54 4.78,3.98 7.13,1.98 1.97,-1.65 2.09,-5.06 -0.41,-5.79 -0.5,-2.08 -4.31,-2.93 -1.9,-4.7 0.1,-1.7 1.79,-4.1 2.05,-4.93 -2.7,-0.86 -1.25,-3.39 0.39,-3.59 0.3,-2.73 3.83,-4.97 2.24,-7.88 -1.16,-1.26 2.12,-0.49 0.87,-2.37 -0.73,-0.82 1.71,-0.82 1.99,-1.86 2.14,-0.45 -1.05,2.08 1.69,2.02 1.48,-0.55 1.41,-1.96 2.93,-1.7 0.29,-1.63 -1.06,-3.26 1.01,-4 0.5,-1.63 0.88,-2.2 1.87,-0.46 3.2,2.4 4.8,-3.1 7.46,-3.43 1.62,1.55 3.73,2.04 5.43,0.37 1.27,1.42 3.01,1.43 4.62,1.61 -0.26,2.56 4.05,4.44 3.68,0.87 -0.11,-2.04 -2.23,-3.06 -3.52,-3.49 2.49,-1.89 5.28,1.44 8.06,-0.13 2.65,1.71 2.89,-3.09 2.88,-4.82 -0.94,-1.46 1.32,-2.87 0.36,-4.29 1.64,0.4 1.75,-1.1 1.34,-1.85 1.08,-2.25 2.79,-1.39 4.44,-0.52 1,-0.8 1.78,-2.46 2.98,-2.01 -1.89,-1.21 -2.16,-3.64 0.61,-3.9 -0.26,-1.23 0.14,-1.29 1.28,-1.45 1.06,-0.94 2.07,2.58 4.01,1.26 1.98,1.74 4.96,-3.12 5.37,-1.36 0.29,1.89 3.37,-0.99 2.39,-2.55 -0.11,-1.94 -1.41,-4.21 1.46,-3.17 2.91,-0.36 4.26,-3.79 5.34,-6.17 1.47,-2.93 -2.47,-4.1 -2.09,-6.64 -1.36,-2.25 -4.48,-0.11 -5.91,0.2 -2.22,-2.09 -4.58,3.81 -4.91,0.16 -1.29,-0.68 -2.71,2.23 -3.65,0.73 1.29,-1.47 1.19,-4.25 2.39,-6.18 1.51,-3.13 -2.02,-3.28 -3.58,-4.22 -3.1,0.97 0.81,-3.99 -1.61,-4.03 1.01,-2.42 4.84,-2.6 5.47,-5.2 -0.01,-2.9 -4.66,-1.68 -5.74,0.02 -1.13,1.71 -4.5,-0.24 -1.75,-0.92 2.16,-2.49 -2.77,-3.66 -2.05,-1.2 -2.33,3.55 -0.85,-4.14 -3.83,-1.64 1.26,-0.48 -0.31,-3.76 1.92,-2.68 1.3,1.04 0.21,-2.26 2.14,-1.3 2.74,-0.21 -1.15,-2.68 1.49,-3.26 1.26,2.1 3.9,-0.29 1.53,-1.19 0.54,-2.35 2.7,-4.74 3.28,-7.51 1.48,-0.31 3.12,-1.58 1.37,-2.69 1.12,-2.77 3.18,-4.87 5.44,-6.15 -0.1,-1.8 -3.04,-1.6 -1.06,-3.51 0.73,-2.38 2.55,-3.81 3.48,-6.49 2.08,-2.53 2.36,-5.49 3.47,-8.34 0.29,-1.69 3.72,-3.96 0.35,-4.97 -1.01,-0.43 2.31,-2.04 0.29,-3.41 -1.75,-1.68 3.22,-0.78 0.65,-2.37 -1.73,-0.49 3.06,-0.82 1.8,-2.5 2.25,-1.54 6.79,-0.26 5.35,-4.64 -0.2,-2.91 3.08,-0.72 4.32,0.28 1.69,1.75 4.12,-0.2 4.78,2.52 1.5,0.9 1.01,3.62 3.74,3.35 2.67,0.01 -0.81,-3.38 2.11,-2.14 1.93,-0.51 -0.97,-4.41 1.41,-3.27 0,52.65 0,105.3 0,157.95 -2.28,4.16 -5.07,8.03 -7.49,12.09 -2.11,1.94 -4.29,5.26 -1.49,7.58 3.01,4.53 6.37,8.91 8.98,13.65 0.02,6.62 -0.04,13.29 0.04,19.87 -3.05,0.34 -6.58,0.54 -8.5,3.49 -2.48,2.8 -4.81,5.91 -5.35,9.73 -0.09,0.46 -0.18,0.92 -0.25,1.38z\",\"name\":\"Kazakhstan\"},\"fi\":{\"path\":\"m382.62,208.07c0.7,-3.07 -2.78,1.32 -3.86,-1.32 0.05,-0.96 1.56,-3.75 -0.71,-2.21 -1.13,1.69 -1.33,-1.45 -2.92,-0.68 -0.94,0.89 -2.97,-0.9 -3.55,-0.42 -0.14,-2.36 -1.97,-0.15 -2.25,-0.03 -0.63,-1.67 -0.91,-3.6 -2.08,-5.17 1.86,-0.74 1.72,-4.06 0.26,-5.25 -0.34,-1.47 3.17,-0.38 1.07,-2.02 -1.2,-2.15 -2.78,-4.06 -3.52,-6.25 0.62,-2.08 -0.63,-3.97 -1.49,-4.42 0.49,-1.2 -0.5,-2.29 -0.95,-2.29 0.13,-1.71 3.82,-4.59 2.52,-5.52 -3.07,-0.18 0.32,-3.17 1.17,-0.45 1.02,-1.23 3.05,-2.66 2.12,-4.84 0.01,-1.7 0.15,-2.94 1.36,-1.21 0.12,-2.42 1.26,-4.91 3.64,-5.85 -0.72,-2.45 1.54,-4.8 2.24,-7.01 -0.27,-2.84 0.9,-5.24 3.71,-6.24 1.6,-1.13 1.77,-3.36 -0.51,-2.84 -0.44,-2.27 -0.12,-5.32 -2.74,-6.02 -2.3,1.99 -2.43,-3.68 -4.97,-1.88 -1.75,-2.03 -4.37,-4.52 -3.48,-7.48 1.52,-3.03 -0.83,-5.16 -2.34,-7.18 -0.2,-1.46 0.87,-4.46 -1.6,-3.74 -0.01,-2.39 -0.15,-4.83 -1.27,-7.01 -2.48,-1.84 -4.57,-4.14 -8.05,-4.18 -1.93,-1.7 -6.43,-2.88 -5.46,-6.12 -0.41,-2.16 1.14,-3.53 2.73,-1.48 2.59,1.31 1.85,6.17 5.39,5.44 2.27,0.35 4.34,-0.45 4.98,-2.51 2.4,-0.26 6.27,3.96 5.78,-0.87 -0.39,-2.02 3.32,-1.43 1.97,-3.98 -1.32,-3.02 -2.11,-7.03 -0.35,-9.99 -0.31,-2.74 4.21,-0.11 4.22,-3.35 1.47,-1.91 3.36,2.08 5.49,1.78 2.95,0.9 3.14,3.84 1.7,6.03 1.41,1.64 0.21,2.38 -0.46,3.84 1.14,0.8 2.75,1.02 1.72,2.87 -0.47,3.13 2.02,6.77 5.45,6.28 1.67,2.35 6.13,3.59 3.92,7.14 -0.75,2.27 -1.97,4.85 -0.96,7.21 3.59,3.29 6.5,7.25 9.05,11.36 0.06,1.49 -2.83,0.38 -0.84,2.06 -0.22,2.17 0.21,4.77 1.29,6.07 -1.26,3.74 5.08,3.34 3.58,6.82 0.48,3.1 6.13,1.5 4.41,5.52 -0.25,1.99 -2.95,4.48 0.53,5.03 2.93,1.69 6.43,2.67 8.87,5.07 1.06,2.48 -0.3,5.24 -0.57,7.75 -2.26,6.49 -4.21,13.14 -7.27,19.3 -1.55,2.69 -3.59,5.26 -4.3,8.32 -1.76,0.21 -3.5,-1.24 -4.38,1.19 1.52,0.77 -3.01,1.75 -1.49,-0.16 -0.76,-2.31 -1.99,0.16 -1.56,1.47 -1.82,-2.09 -4.5,1.44 -1.45,2.01 0.62,2.53 -3.67,-2.15 -3.14,-0.28 0.89,2.06 -2.52,3.25 -2.85,3.52 -2.72,0.33 -4.14,2.39 -6.64,3.79l-0.57,0.27 -0.58,0.1 0,0z\",\"name\":\"Finland\"},\"de\":{\"path\":\"m302.45,372.15c0.39,-0.91 1.99,-2.77 0.16,-1.49 -1.57,0.93 -2.11,-2.91 -4.19,-2.08 -2.04,1.85 -3.44,-2.27 -6.01,-1.15 -2.15,0.46 -2.02,-2.87 -4.5,-1.23 -1.72,0.52 0.38,3.76 -1.44,1.73 -1.84,0.2 -4.84,0.84 -5.69,-0.07 -0.64,-1 1.16,-4.13 0.65,-5.99 1.9,-2.36 0.91,-6.25 3.86,-7.87 2.56,-1.63 0.59,-4.12 -1.86,-3.67 -2.56,0.2 -2.84,-3.15 -5.48,-1.32 -1.23,0.08 -2.11,-2.54 -3.28,-1.12 -0.17,-2.33 -4.09,-3.23 -1.38,-5.35 1.81,-3.01 -5.32,-3.18 -1.88,-6.63 1.67,-1.33 2.21,-2.89 0.22,-4.22 1.95,-2 -1.2,-0.75 -1.34,-2.77 1.01,-1.22 0.18,-2.51 -0.16,-3.21 1.78,-1.86 2.88,-5.05 1.22,-7.64 -2.19,-2.06 0.71,-2.52 2.29,-1.67 2.39,0.34 3.33,-2.08 3.64,-3.33 2.38,-1.19 2.15,-5.11 -0.59,-5.64 -0.03,-1.55 3.42,0.08 2.83,-2.66 0.31,-2.54 1.52,-4.9 2.38,-7.37 -0.34,-0.18 -3.53,0.96 -2.22,-1.41 0.9,-2.9 4.25,-1.28 6.2,-2.15 0.16,2.03 2.57,6.54 4.4,3.34 0.14,-1.85 -1,-6.59 2.18,-4.76 1.27,0.28 4.88,-0.75 2.09,-1.66 -3.15,0.44 1.18,-4.81 -1.98,-5.31 4.2,-1.72 -2.92,-4.5 -0.43,-6.3 2.37,1.37 6.56,0.38 7.64,2.55 -0.45,0.53 1.55,0.68 -0.04,1.71 -1.46,1.22 0.47,2.21 1.51,1.23 -1.09,2.31 1.04,2.07 1.81,0.68 1.67,1.18 3.81,1.56 5.14,0.49 0.21,1.77 -4.56,3.93 -2.04,5 1.38,0.2 3.65,-1.17 3.27,1.31 2.66,-0.01 2.46,-4.21 4.91,-4.12 1.43,1.57 3,-1.39 3.56,-2.49 0.61,-2.1 3.54,-0.7 4.16,-0.17 0.88,1.8 2.57,3.83 4.93,3.32 -0.95,4 4.51,3.57 4.6,6.93 3.14,3.28 -3.49,6.24 0.16,9.19 2.04,0.76 2.91,2.01 2.23,4.17 0.93,1.99 2.9,4.81 0.48,6.79 1.68,1.23 1.03,4.11 3.18,4.83 0.68,1.92 0.82,5.65 -0.66,6.5 -0.87,-1.78 -4.46,-3.53 -3.95,-0.41 1.16,0.88 -2.8,1.08 -3.3,2.22 -2.5,0.18 -3.71,2.69 -5.8,3.41 -0.73,-0.12 -0.57,1.65 -2.06,0.72 -2.78,-0.99 -2.28,4.11 -4.17,1.96 -3.51,0.44 1.56,4.5 2.19,5.46 -2.26,2.79 1.42,6 3.88,7.15 1.53,1.88 3.04,3.44 5.43,4.44 2.44,1.22 2.24,4.86 -1.02,3.8 -0.57,1.52 -0.37,3.53 -2.79,3.73 -3.29,0.46 -2.9,3.65 -1.01,5.5 0.76,1.93 -3,3.3 -3.36,1.75 -0.45,-0 -3.6,-1.29 -2.93,0.98 -3.48,-0.65 -5.56,1.87 -8.47,2.95 -1.59,-0.45 -2.06,-3.03 -4.27,-1.95 -2.85,-1.05 -0.37,3.13 -2.89,3.37z m-6.7,-79.27c-0.21,2.06 4.44,6.44 3.78,2.2 -1.59,0.14 -2.26,-2.95 -3.66,-2.25L295.75,292.88z m29,76.43c-1.59,-1.17 -0.3,-3.24 0.69,-1.13 -0.04,0.43 -0.23,0.99 -0.69,1.13z m-0.01,-83.07c-2.42,-0.16 -2.07,-4.22 0.32,-2.83 -1.17,-1.29 -0.5,-0.74 0.89,-0.58 -1.82,1.06 2.32,2.92 -0.86,3.34l-0.35,0.07 0,0z\",\"name\":\"Germany\"},\"se\":{\"path\":\"m323.06,272.38c-2.85,0.68 -1.5,-2.92 -0.88,-3.47 -1.34,-1.73 -2.37,-3.77 -4.04,-5.01 0.79,-1.22 -1.53,-2.8 1.01,-1.48 2.77,0.18 -2.19,-2.84 0.98,-2.65 2.38,-2.15 -2.21,-3.59 -2.38,-5.5 -2.18,-0.93 -1.38,-4.24 -3.57,-5.03 -0.5,-2.35 -1.05,-4.69 -2.37,-6.57 0.36,-2.06 3.34,-6.36 -0.08,-6.96 -1.38,2.23 -3.39,1.39 -2.89,-1.18 0.66,-1.66 -0.9,-5.32 -0.3,-5.55 1.22,1.95 2.5,1.63 3.29,-0.5 0.91,-2.52 -0.9,-5.03 -0.38,-7.57 2.08,-1.14 -0.02,-3.96 3.05,-4 2.39,-1.51 1.37,-4.54 1.71,-6.85 0.8,-2.58 -4.53,-6.31 0,-6.91 1.04,-0.81 1.22,-3.31 1.37,-4.79 -1.12,-2.38 -6.01,-2.81 -4.1,-6.25 1.84,-3.74 -1.45,-6.92 -1.02,-10.47 0.52,-2.44 0.53,-5.73 -0.14,-7.32 0.64,-2.96 1.19,-6.43 4.34,-7.91 2.35,-0.49 6.23,1.31 6.51,-2.71 0.96,-3.43 -4.73,-4.28 -1.85,-7.71 0.9,-2.93 3.32,-5.66 2.42,-8.87 0.15,-1.92 0.67,-3.87 -0.11,-5.73 -1.01,-2.32 3.73,-0.74 3.99,-3.33 -0.13,-2.25 -0.54,-4.21 1.52,-5.81 2.69,-2.56 2.7,-6.48 0.46,-8.94 2.93,-1.39 1.66,-4.89 3.52,-7.09 1.35,-0.88 5.1,1.96 4.84,-1.65 -0.51,-1.95 -1.78,-6.23 1.75,-4.92 2.24,0.45 5.5,2.66 7.12,-0.07 1.29,-1.53 -2.75,-1.44 -0.66,-3.53 0.95,-1.42 0.76,-3.57 -0.83,-4.28 3.02,-0.52 2.64,2.5 5.35,3.5 2.17,2.8 6.24,2.01 8.45,4.17 1.81,1.26 3.78,2.76 3.22,5.22 1.03,1.27 -0.68,4.42 1.98,4.24 -0.85,2.83 1.11,4.63 2.62,6.51 0.04,2.86 -1.49,6.25 1.05,8.57 1.6,1.29 3.31,4.27 -0.1,3.45 -1.76,0.14 -2.91,-0.92 -2.17,1.42 -0.95,1.6 -5.22,-2.83 -4.14,0.58 0.84,1.65 -2.05,2.45 -1.57,1.13 -2.06,-0.65 -0.53,1.54 0.66,1.49 -0.6,0.2 -1.52,0.57 -0.3,1.82 -1.49,0.26 -4.7,1.58 -1.68,2.64 2.32,2.25 -3.2,4.64 -1.02,7.19 1.54,0.9 4.4,2.82 1.64,4.33 -1.68,2.21 -0.66,5.89 -3.12,7.17 -0.94,1.59 -3.16,2.96 -4.81,3.45 -0.21,1.34 -1.22,2.8 -1.35,4.54 -1.77,-1.72 -2.61,0.56 -2.76,1.85 -1.12,0.81 -2.56,2.13 0.01,2.01 -0.44,1.31 -4.33,0.73 -2.47,3.43 -0.06,0.73 -0.49,2.94 -1.88,1.95 -2.76,-0.24 -2.07,3.37 0.06,3.69 -0.77,1.95 -1.46,4.89 0.24,6.81 -3.74,-1.85 -2.36,2.41 -0.94,3.91 0.18,1.27 -3.07,0.5 -0.73,1.44 0.84,1.85 1.12,4.66 1.43,6.67 -0.32,2.79 5.02,-0.22 4.86,2.53 0.7,1.96 4.04,1.71 4.48,1.82 -3.19,-0.43 -0.28,3.53 1.17,3.32 1.13,1.08 3.55,2.93 0.69,3.17 -0.96,1.32 -2.08,3.54 -3.42,3.71 1.54,1.27 -2.79,1.25 -1.63,-0.68 0.49,-2.21 -4.13,-4.8 -3.64,-1.69 1.43,0.51 0.2,2.21 2.13,2.69 -1.79,0.21 -3.94,-2.79 -5.52,-0.41 -0.59,-1.15 -2.36,-1.3 -1.99,0.35 -2.53,-0.76 -3.68,2.49 -1.03,1.96 1.95,-0.49 4.14,0.17 6.05,0.67 -0.71,2.97 4.28,-1.28 2.88,1.93 -0.14,2.13 -0.95,4.88 -3.12,4.77 0.18,1.44 -0.14,1.56 -2.15,1.24 -1.48,-0.93 -5.69,1.16 -2.24,1.59 0.93,-0.93 4.88,0.08 2.51,0.95 -1.3,-0.74 -2.65,-1.15 -1.6,0.7 1.1,0.49 3.58,1.85 1.37,2.42 -0.48,1.93 2.49,4.34 -0.83,3.78 -1.22,1.55 3.46,2.55 0.79,3.59 -0.59,1.57 1.8,1.83 -0.1,3.07 -0.36,1.71 1.22,3.68 -0.24,4.3 0.8,1.29 0.72,4.62 -0.49,4.51 -0.92,1.99 -0.01,8.09 -3.9,5.74 -0.75,-0.04 -1.2,1.04 -1.28,-0.03 -1.81,1.13 -4.91,0.3 -5.24,2.54 -3.47,0.86 -2.77,5.15 -1.48,7.22 -1.25,2.12 -3.78,-0.71 -5.21,1.44 -0.58,0.2 -1.19,0.28 -1.8,0.28z m21.76,-13.69c-0.6,-1.64 -0.03,-5.51 0.58,-5.62 -0.47,1.84 -0.07,3.79 -0.58,5.62z m11.16,-10.28c-1.47,-2.04 -0.57,-3.97 -1.15,-6.17 0.13,-1.54 3.5,-5.82 3.93,-3.32 -1.59,1.67 -1.23,4.3 -0.42,5.29 -0.56,1.58 -2.33,2.58 -2.36,4.21z m-6.04,-22.62c-0.58,-0.9 -1.01,-2.64 0.37,-3.19 0.51,-2.57 3.62,1.5 0.73,1.06 -0.71,0.44 -0.93,1.57 -1.1,2.14z m3.41,-4.74c-1.71,-0.56 1.15,-0.98 0,0z\",\"name\":\"Sweden\"},\"no\":{\"path\":\"m283.92,239.69c-2.05,0.82 -1.04,-2.38 -3.04,-0.45 -2.25,0.63 -2.45,-1.19 -0.48,-1.71 1.16,-1.98 -1.94,-1.69 -2.54,-0.89 -1.88,-1.69 -4.73,-3.13 -5.46,-5.54 0.16,-1.17 0.04,-2.84 1.26,-1.53 2.45,-0.31 0.5,-3.28 2.63,-3.15 -0.92,-1.74 3.6,-1.24 2.16,-3.19 -1.49,-0.01 -3.77,0.75 -1.5,-1.08 1.07,-1.87 -4.03,-2.48 -3.95,0.31 -0.43,1.99 -1.31,-1.27 0.03,-1.59 -0.59,-1.71 3.37,0.46 2.3,-1.73 2.11,-0.09 3.7,-3.31 0.62,-1.92 -2.12,1.06 -0.9,-1.62 0.69,-0.69 -1.77,-1.8 3.78,-2.21 0.57,-3.6 -0.56,-4.05 -3.61,3.53 -2.9,-0.4 -0.09,-1.07 2.45,-2.14 0.56,-2.38 1.23,-1.75 0.14,-1.45 -1.12,-1.67 -0.48,-2.03 3.39,-0.54 1.29,-2.62 -1.57,-0.11 -2.3,1.01 -2.92,1.83 0.23,-1.47 -0.96,-1.1 0.71,-1.97 1.17,-0.81 3,-0.92 0.68,-1.9 -1.68,1.41 -3.48,-0.55 -1.63,-1.27 2.35,2.15 4.25,-2.5 6.35,0.43 1.83,1.86 1.2,0.18 2.05,-1.15 2.54,-0.3 -0.18,4.44 3.17,3.6 2.08,-1.21 -0.36,-4.05 -1.72,-4.82 -1.87,-1.19 -2.86,1.17 -4.77,-0.24 -1.71,-0.32 -5.74,2.24 -5.21,-1.12 1.24,-0.84 -1.48,-1.91 1.02,-1.63 0.93,-0.21 -1.41,2 0.86,1.55 1.15,0.42 4.11,-2.74 2.32,-2.56 -1.17,0.24 -3.58,0.07 -2.04,-0.78 0.01,-1.15 -2.86,-0.72 -1.37,-2.6 1.92,-1.21 1.67,-2.06 2.44,-3.76 1.13,0.7 1.55,1.95 2.59,0.89 1.71,1.83 3.67,-1.21 0.78,-1.26 -1.72,-1.7 2.02,-2.98 1.47,-0.81 -0.08,1.94 2.1,2.28 1.49,0.15 -1.54,-0.73 -0.39,-3.26 1.26,-2.04 -0.9,2.54 1.99,2.46 3.2,1.29 -0.57,-1.07 -3.07,-0.84 -2.76,-2.61 -1.93,-0.78 -0.88,-1.18 0.63,-1.75 -0.31,2.53 1.54,0.84 1.46,0.89 0.76,2.66 4.97,0.16 2.35,-0.64 -1.68,1.13 0.97,-2.47 -1.62,-1.35 -1.33,0.1 -1.92,0.19 -0.62,-0.55 0.77,-1.45 -3.3,-3.11 -0.25,-2.56 1.36,2.34 4.5,0.23 4.77,-0.42 0.76,1.21 1.99,4.78 3.9,2.5 -0.19,-1.38 -1.61,-1.13 -0.15,-1.91 -0.52,-0.88 -3.96,-0.82 -1.31,-0.98 2.56,1.07 3.94,-2.68 1.6,-3.22 -2.38,3 -0.29,-2.57 1.23,-0.79 -1.13,2.54 3.47,1.05 2.52,-0.37 0.79,-1.1 1.41,-2.4 1.63,-0.68 1.42,0.16 -1.15,3.34 1.22,2.27 1.23,1.9 3.05,-0.32 1.25,-1.45 2.02,0.81 5.84,0.23 4.08,-2.68 2.55,-0.11 3.44,-2.71 1.89,-3.48 2.7,-0.44 1.04,-4.25 -0.61,-2.47 -0.94,0.99 -4.98,3.53 -3.32,4.59 1.36,-0.14 -3.55,4.36 -3.84,1.11 1.8,-0.4 1.59,-2.97 -0.14,-1.47 -1.54,1.59 -1.58,-0.15 0.05,-0.55 1.29,-0.12 3.11,-2.23 0.74,-1.96 0.49,-1.84 0.69,-1.57 2.55,-2.66 -0.01,-1.8 3.87,-1.75 1.44,-3.46 1.6,-3.11 2.62,3.25 4.94,0.36 -0.07,-0.91 1.83,-2.92 -0.44,-2.32 -1.97,0.37 0.51,-3.35 0.91,-3.77 2.46,-0.4 5.23,-2.14 6.04,-4.52 -0.69,-1.41 -1.97,0.46 -0.84,-1.25 0.83,-2.9 -4.58,-0.06 -1.84,-2.23 2.88,-0.42 -1.2,-4.08 2.2,-4.17 1.93,2.26 1.6,-1.88 -0.02,-2.41 1.79,-0.55 2.5,-1.55 4.25,-0.42 0.51,-2.76 -3.45,-2.33 -4.43,-3.58 -0.26,-3.01 2.59,-3.12 4.58,-3.67 0.29,-0.78 -0.81,-3.13 0.47,-2.48 2.46,0.65 2.45,-2.36 2.11,-3.23 1.27,-0.62 3.06,1.08 2.81,-1.49 0.06,-2.75 -4.88,2.23 -2.7,-0.53 -0.33,-1.84 3.17,-2.65 3.79,-1 0.44,2.38 2.69,0.96 0.74,-0.53 -0.37,-0.19 2.89,-3.12 0.16,-2.12 -1.52,1.62 -2.69,-1.67 -0.67,-0.49 2.18,0.6 1.78,-2.26 0.1,-2.63 1.64,-0.99 1.76,-1.25 3.09,0.31 2.65,0.05 -0.04,3.53 -1.13,3.83 -0.13,2.43 3.49,4.78 1.03,6.94 -1.52,2.38 -4.26,5.02 -2.96,8.1 -1.03,2.23 -5.62,0.34 -3.97,3.87 1.08,2.24 -0.41,4.62 0.29,6.91 -0.21,2.4 -1.5,4.65 -2.48,6.84 -1.89,2.33 -0.64,4.78 1.42,6.24 1.36,2.71 -1.06,4.75 -3.56,3.4 -3.47,0.13 -6.05,3.54 -6.55,6.75 -0.09,2.61 -2.39,4.76 -0.87,7.58 1.7,0.33 -0.26,3.51 0.65,5.09 0.93,2.11 2.11,4.27 1.04,6.66 -1.85,3.6 1.33,5.61 3.87,7.28 0.34,1.26 -0.49,2.52 -0.69,3.78 -4.37,0.5 -1.64,4.45 -0.68,6.73 -0.19,2.39 0.87,5.69 -1.37,7.29 -2.33,-0.08 -2.37,2.05 -2.44,3.42 -2.81,2.64 1.45,6.5 -0.89,9.33 -0.63,-0.51 -0.86,-4.28 -3.41,-3.07 -1.98,0.66 -1.1,-2.02 -2.18,-2.85 0.06,-1.66 0.25,-4.8 -1.34,-6.05 -1.51,0.96 0.6,3.37 -1.47,1.82 -1.6,1.08 1.29,3.05 0.43,4.75 1.82,1.57 -1.36,1.57 -0.61,3.28 -0.57,0.33 -1.78,3.28 -2.33,0.68 -1.69,-2.25 -3.03,0.06 -1.93,1.1 -2.37,0.2 -1.22,2.58 -3.27,2.72 0.26,1.74 0.63,2.15 -0.66,0.4 -0.55,-0.29 -0.31,3.24 -1.72,3.89 -1.13,1.13 -2.53,1.14 -2.96,2.81 -1.25,-1.4 -1.53,-2.14 -2.1,0.08 -0.58,1.07 -1.97,0.9 -2.97,1.19z m1.79,-42.62c-2.02,0.59 -1.81,3.69 -1.92,5.35 2.29,1.58 5.16,-1.56 2.82,-2.47 -2.51,1.62 -0.41,-2.26 1.2,-2.22 -0.69,-0.24 -1.35,-0.63 -2.1,-0.66z m-8.26,-3.48c1.26,1.05 1.96,-0.59 3.75,0.18 2.86,-0.7 0.32,-3.31 -1.23,-1.63 -0.54,1.11 -4.66,-2.16 -3.53,0.83 -0.64,0.74 0.98,1.54 1.01,0.63z m-1.56,-1.31c1.64,-1.54 -2.29,-0.9 0,0l0,0z m-3.39,20.54c-1.15,-1.48 -0.79,-2.31 1.27,-2.09 -0.5,0.65 -0.76,1.45 -1.27,2.09z m20.58,-43.12c1.89,-0.99 1.05,0.09 0,0z m18.74,-19.12c-0.11,-1.35 1.21,-2.72 0.71,-0.65l-0.24,0.29 -0.47,0.36 0,0z m7.46,-19.18c-1.61,-0.55 0.1,-1.14 0,0l0,0z m3.95,-10.61c-1.42,-0.85 2.16,-3.22 0.98,-0.56 -0.23,0.31 -0.59,0.56 -0.98,0.56z m8.03,-3.21c-0.35,-1.4 -4.22,-5.53 -0.69,-3.55 1.98,-0.66 -2.87,-2.41 0.24,-2.21 2.34,-1.07 1.29,3.96 3.81,2.24 0.12,-1.58 -1.95,-2.83 0.76,-2.09 1.98,-2.01 2.51,5.82 -0.36,3.01 -2.2,-1.1 -3.01,1.06 -3.76,2.6z m-5.57,-1.57c-2.14,-0.36 2.05,-0.11 0,0z m-7.93,-1.09c-0.6,-2.04 2.47,-0.64 0,0z m7.12,-4.13c0.59,-2.37 4.58,-1.01 4.01,-4.46 0.66,-1.69 0.95,3.05 2.77,1.99 1.53,1.25 -2.5,3.06 -1.7,0.6 -1.05,-1.01 -2.27,1.66 -3.77,0.7 -0.56,0.22 -0.96,0.7 -1.3,1.17z m7.58,-0.78c-1.19,-2.28 3.86,-0.43 2.34,-2.88 -3.7,-0.04 1.43,-1.56 0.6,-2.56 -2.52,-1.2 0.41,-2.37 1.15,-2.81 0.41,-3.22 -2.85,-1.84 -4.06,-0.47 -1.59,-2.04 2.26,-2.36 2.32,-4.57 0.14,1.33 0.46,2.85 1.65,2.42 0.8,1.52 3.32,1.84 3.24,-0.37 1.68,1.68 2.77,1.67 2.31,-0.48 0.79,-1.17 0.35,-2.79 1.61,-3.02 -0.4,-0.66 -1.42,-3.92 0.2,-3.31 0.95,2.39 -0.14,5.28 -0.89,7.26 2.94,1.88 1.55,-3.57 4.12,-3.05 0.22,-1.76 -3.3,-2.79 -1.17,-4.59 1.11,2.64 2.9,-1.39 2.9,-1.08 0.95,0.44 4.33,3.19 2.86,0.58 0.52,-1.54 -0.4,-5.86 -2.92,-3.36 -3.05,-0.22 1.04,-4.05 2.23,-1.43 1.8,-0.47 3.36,-0.55 3.65,1.78 1.6,2.82 3.68,-1.17 2.1,-1.52 0.07,-0.51 -0.69,-2.47 -0.41,-3.71 -0.86,-0.45 -2.21,1.67 -1.86,-0.59 0.28,-1.23 2.77,-3.11 1.94,-0.75 0.94,1.47 4.41,-0.15 2,-1.03 0.6,-1.49 3.48,0.04 1.97,-2.16 -0.79,-0.71 -2.04,-3.95 0.25,-3.13 1.93,-0.42 3.84,0.45 2.02,2.21 -1.75,1.98 -0.56,3.61 -0.42,5.65 -2.28,2.68 3.1,3.87 2.24,0.45 -0.18,-2.74 0.93,-5.32 1.76,-8.05 1.89,-3.05 -1.06,3.6 0.33,2.81 1.3,-1.62 0.64,3.35 2.9,1.4 2.12,-1.22 -1.68,-4.46 1.77,-4.91 0.72,-1.47 -2.34,-1.18 -0.57,-2.18 -0.51,-2.17 4.79,-1.62 2.39,1.11 -1.65,1.09 -1.95,4.14 -0.56,3.08 -0.4,2.24 2.84,0.85 3.62,0.4 -0.89,-1.13 -1.79,-4.79 0.32,-4.87 0.09,2.52 4.6,3.29 3.84,0.25 1.3,0.25 1.81,0.78 0.68,1.44 0.12,2.4 2.78,-0.68 3.9,1.46 2.08,1.26 -1.72,0.74 -1.03,2.68 -0.51,3.31 -7.08,0.08 -6.25,3.51 1.53,-0.19 4.57,0.06 4.67,1.27 -0.73,2.54 2.28,1.63 2.62,2.01 1.41,2.24 -3.5,3.67 -1.9,6.17 0.12,3.04 -1.51,0.49 -0.35,-1.03 0.73,-2.35 -0.61,-5.22 -3.22,-5.51 -2.52,-0.23 -4.95,-4.8 -6.83,-0.86 -0.98,2.59 -3.07,-0.98 -3.73,2.03 -1.82,2.85 -1.43,6.39 -0.81,9.47 1.12,1.85 1.17,3.38 -0.82,4.1 -0.7,1.31 0.29,4.41 -1.67,2.5 -2.14,-1.69 -5.02,-0.86 -5.85,1.4 -2.54,0.85 -4.72,0.04 -5.34,-2.66 -0.99,-2.14 -5.91,-6.2 -6.14,-1.61 0.57,2.13 -0.39,0.96 -1.13,1.23 -0.7,0.99 -4.96,0.92 -2.14,2.3 2.85,1.94 -1.88,4.5 0.34,5.92 1.59,3.24 -4.12,0.39 -5.68,0.21 -2.06,-1.04 -3.15,2.55 -4.42,0.38 -1.01,-0.36 -2.16,1.19 -2.67,1.07z m-9.01,-1c0.11,-2.56 2.91,0.13 0,0z m-1.13,-1.28c-0.8,-1.29 3.49,-1.49 0.69,-0.52l-0.34,0.34 -0.36,0.18 0,0z m4.3,-0.48c-1.71,-0.47 -0.9,-2.93 0.17,-2.2 -0,0.74 -0.11,1.47 -0.17,2.2z m4.79,-4.64c0.18,-0.78 1.29,-1.07 0,0z m7.64,-3.83c-2.24,0.29 -1.11,-3.47 -0.22,-0.75 0.06,0.35 1.74,0.98 0.22,0.75z m2.2,-0.62c-2.38,-0.91 -2.84,-5.4 0.1,-4.68 0.37,1.54 -0.1,3.12 -0.1,4.68z m-1.72,-6.1c-4,-0.97 3.45,-2.52 1.03,-0.52 -0.42,0.05 -0.59,0.56 -1.03,0.52z m5.27,-4.48c-0.27,-0.28 0.7,-0.67 0,0z m42.25,-2.91c-1.73,0.39 -2.88,-3.16 -0.45,-1.74 1.34,-0.78 2.3,1.96 0.45,1.74z m-35.9,-2.93c0.17,-2 2.33,-0.17 0,0z m1.12,-1.12c1.6,0.69 0.37,-2.16 2.16,-2.14 -0.43,0.5 -1.9,3.93 -2.16,2.14z m20.87,-4.79c0.68,-1.68 0.54,-0.43 0,0z m-9.67,-2.21c-2.58,-0.52 -0.4,-3.09 0.65,-0.8 -0.07,0.3 -0.24,0.8 -0.65,0.8z M319.32,12.08c-0.3,-1.14 -1.45,-2.77 -2.39,-2.03 -1.57,-1.66 3.97,-2.79 -0.11,-4.02 -1.19,0.78 -1.7,1.41 -2.54,-0.32 -1.8,0.29 -3.52,-4 -2,-4.15 0.28,2.4 2.41,-1.85 3.57,0.39 1.62,1.46 1.99,-0.61 1.81,-1.03 1.1,0 2.2,0 3.3,0 -1.65,1.5 0.79,4.98 -1.45,5.97 1.81,0.96 -0.87,3.73 0.84,4.72 -0.27,0.27 -0.64,0.46 -1.03,0.47z M334.56,1.41c-0.71,-0.78 1.26,-0.59 0,0z\",\"name\":\"Norway\"},\"ua\":{\"path\":\"m458.88,376.43c-1.65,0.13 -4.78,-1.76 -1.5,-2.12 1.11,-0.94 -0.88,-2.9 1.02,-4.06 0.62,-1.77 2.75,-4.95 1.17,-6.55 -2.35,-0.6 0.77,-4.92 0.58,-1.37 1.22,0.09 1.33,-0.46 2.29,-1.4 1.42,1.03 2.11,1.68 2.01,-0.49 0.8,-0.31 0.98,2.31 1.91,0.48 2.09,-0.77 2.07,-2.38 0.02,-2.62 0.48,-3.05 -2.01,-4.08 -4.34,-4.76 -1.03,-1.35 0.14,-4.1 -2.32,-4.58 -0.19,2.48 -3.85,-0.68 -2.94,-2.62 0.58,-1.57 -1.58,-5.77 -2.62,-3.02 -1.32,-0.9 -3.45,-3.78 -4.76,-1.05 -0.61,-1.26 -0.31,-1.31 -2.39,-0.85 -1.59,-0.19 -3.7,-2.91 -5.96,-1.05 -1.9,1.41 -4.52,1.99 -6.34,2.49 -0.3,1.21 -2.98,2.87 -3.26,4.06 0.69,2.88 -3.92,2.94 -5.88,3.36 -1.91,1.06 -2.85,5.5 -5.12,2.22 -2.55,-1.4 -4.85,1.16 -7.45,0.17 -2.78,0.68 -6.22,-1.81 -7.42,1.27 -1.7,-1.79 -4.36,-1.99 -6.08,-3.8 -1.69,-1.99 1.67,-4.76 1.1,-7.32 0.71,-2.08 3.89,1.72 3.03,-0.71 -0.43,-1.86 -2.14,-2.21 -2.09,-4.41 -1.6,-2.52 1.02,-5.01 1.85,-7.4 1.48,-2.09 2.06,-5.46 4.76,-6.09 3,-1.14 0.85,-4.79 0.14,-5.51 2.5,-2.1 -3.76,-3.23 -3.93,-5.84 -0.3,-1.41 -1.88,-4.75 0.96,-3.25 2.78,-0.65 2.08,-4.77 5.31,-4.83 2.44,-2.13 5.65,-1.09 8.41,-2.29 2.86,0.12 5.82,0.8 8.71,-0.13 1.44,0.02 2.96,3.43 4.46,0.67 0.48,-0.61 1.02,3.11 2.27,0.92 -0.68,-2.01 1.68,-0.28 2.33,-1.83 1.72,1.64 3.14,-2.06 4.36,1.19 0.98,-0.83 1.53,-5.36 3.12,-2.13 0.91,1.83 2.9,1.59 3.18,-0.37 1.11,-0.89 4.84,0.77 2.92,-1.35 2.22,-0.55 3.94,4.29 5.74,0.82 -0.53,-2.27 -3.24,-4.21 -1.65,-7.03 0.3,-2.91 3.55,-3.36 5.73,-4.62 2.8,0.98 5.55,-1.1 4.6,-3.99 2.15,-0.59 4.74,-0.01 5.62,-2.79 1.28,-1.72 2.08,2.03 2.83,-0.54 3.15,-1.7 3.09,3.74 6.17,3.78 2.69,0.81 -2.77,1.83 -0.06,3.34 0.97,1.1 0.27,1.92 1.66,2.64 0.13,1.93 0.76,2.76 1.8,0.93 1.75,0.21 3.63,-0.42 4.86,-1.04 1.22,1.6 2.86,1.33 3.58,3.44 0.66,2.12 2.97,6.38 5.86,3.86 0.95,-2.66 2.98,0.62 4.61,-0.26 2.96,0.38 3.76,-3.58 5.99,-4.66 2.15,1.36 3.87,3.07 6.32,3.78 2.39,1.73 1.46,-2.06 1.83,-2.22 2.04,0.83 3.63,-0.35 5.65,0.78 1.64,-1.06 3.29,-0.67 5.4,-0.98 -0.34,2.96 3.78,0.35 3.93,-0.21 -1.54,1.79 2.89,1.91 1.36,4.34 -0.91,1.71 -3.3,4.32 0.42,4.36 1.34,-0.17 -2.51,1.76 -0.87,3.22 0.73,1.16 4.31,0.82 2.94,3.4 -1.12,2.14 2.56,-1.79 1.05,1.32 0.04,1.92 1.74,4.67 -1.56,4.6 -2.59,0.04 -5.57,1.58 -4.88,4.34 -1.93,1.59 -3.46,4.3 -2.04,6.74 1.21,-0.9 1.4,3.27 -0.48,2.33 -2.61,-0.17 -4.34,2.86 -4.47,4.25 -3.32,-0.37 -1.93,5.58 -4.94,3.83 -1.97,0.68 -1.55,3.31 -3.9,2.83 -2.31,2.16 -4.28,4.87 -4.46,8.16 0.05,2.37 -1.89,1.63 -2.69,0.94 -1.43,2.66 1.92,4.83 3.49,6.52 1.72,1.52 4.3,4.21 6.67,2.42 1.12,-1.05 0.41,-2.57 2.09,-1.56 1.41,-0.15 1,-2.82 3.17,-2.37 1.15,-0 0.13,2.98 0.5,4.21 -1.72,0.79 -3.13,2.24 -5.41,1.17 -2.72,0.19 -1.51,3.05 -3.33,4.45 -1.46,1.36 -5.27,2.16 -5.39,5.34 -0.65,2.52 -2.91,5.33 -5.63,3.62 -2.92,-0.52 2.13,-0.53 -0.45,-1.77 -0.6,-1.76 -0.24,-6.9 -3.31,-5.63 -2.51,0.74 -5.09,-2.4 -7.49,-0.19 -0.84,-1.11 2.17,-2.44 2.5,-3.9 1.15,-2.11 4.76,-3.17 5,-5.4 -1.21,-0.47 -1.1,-4.45 -2.98,-2.14 -0.01,2.53 -3.55,-2.55 -3,-0.06 -1.18,1.35 -4.02,3.26 -6.29,3.26 -0.55,-2.41 -5.82,0.8 -2.84,-2.01 -2.07,-2.11 3.13,-0.37 2.51,-2.12 0.43,-0.87 2.54,-3.83 0.04,-2.33 -1.67,2.49 -5.64,0.74 -4.34,-2.2 -3.44,-0.71 0.17,4.67 -3.05,4.35 -0.95,0.4 -1.24,-2.89 -2.18,-0.81 1.19,3.1 -5.65,1.69 -4.31,5.43 -0.19,2.64 -0.71,6.16 -2.65,8.5 -1.92,0.15 -2.28,-0.37 -1.97,1.56 1.06,2.6 -1.47,1.65 -1.44,-0.04 -3.03,0.54 1.86,5.97 -1.63,4.84 -1.69,1.04 -2.76,2.58 -4.85,3.23 -0.33,0.68 0.22,1.06 -0.9,0.94z m8.84,-3.13c-1.24,-0.5 0.31,-1.59 0,0z M480,354.71c-2.02,-0.24 1.4,-0.94 0,0z\",\"name\":\"Ukraine\"},\"il\":{\"path\":\"m564.91,519.32c-2.79,-0.13 -5.59,-0.02 -8.39,-0.06 1.03,-3 0.55,-6.35 0.36,-9.47 -0.77,-1.89 -0.08,-3.97 0.69,-5.38 -2.21,-3.68 3.62,-1.36 3.34,-4.63 0.16,-2.5 0.5,0.45 0.78,1.3 0.41,1.74 0.97,3.45 0.64,5.26 0.64,4.15 2.85,8.05 2.93,12.32 -0.33,0.17 0.28,0.88 -0.36,0.66z\",\"name\":\"Israel\"},\"sa\":{\"path\":\"m593.15,519.31c-2.83,-0.62 -5.1,-2.77 -7.77,-3.86 -1.58,-0.98 -5.22,-1.86 -2.02,-3.26 5.2,-3.81 10.77,-7.23 15.26,-11.9 1.43,-2.99 4.63,-3.12 7.49,-3.98 3.73,-1.26 7.76,-1.54 11.57,-0.41 3.34,1.04 6.79,1.79 10.32,1.49 3.1,-0.23 6.16,0.27 9.07,1.36 7.05,2.14 14.23,3.86 21.25,6.06 3.22,1.22 7.13,2.8 10.33,0.7 3.47,-1.54 7.12,-2.66 10.59,-4.19 0,5.98 0,11.96 0,17.94 -28.52,0 -57.04,0 -85.55,0l-0.54,0.05z\",\"name\":\"Saudi Arabia\"},\"iq\":{\"path\":\"m665.09,505.54c-3.93,-0.14 -7.37,-2.41 -11.2,-3.08 -6.98,-1.9 -13.93,-3.92 -20.88,-5.88 -4.51,-0.55 -9.21,0.46 -13.56,-1.25 -4.06,-1.23 -8.45,-1.67 -12.53,-0.27 -2.28,0.01 -6.14,3.28 -6.23,-0.28 -1.25,-1.52 -3.9,2.58 -3.26,-0.38 2.09,0.09 -1.51,-3.02 -1.67,-4.04 -1.32,-2.57 -5.49,-5.02 -2.13,-7.49 4.5,-5.84 9.16,-11.56 13.6,-17.45 2.04,-3.07 2.39,-7.4 0.02,-10.4 -1.41,-3.28 0.38,-7.66 -2.62,-10.31 -3.09,-2.29 -2.71,-6.73 0.85,-8.16 2.5,-2.92 2.33,-7.04 4.39,-10.19 0.66,-2.04 0.93,-3.47 3.19,-3.89 2.1,-2.75 5.72,-0.13 8.03,-2.44 0.9,-1.04 2.2,-3.85 2.95,-0.99 0.24,2.01 2.47,2.98 2.75,0.39 0.38,-1.99 1.84,-3.41 3.5,-1.73 2.25,0.16 -1.13,2.67 1.73,2.71 2.42,-0.18 1.65,4.3 5.21,2.73 1.14,1.18 1.93,5.76 4.16,3.01 2.6,0.76 5.25,0.47 7.14,-1.59 0.61,0.22 -3.19,2.13 -1.4,3.83 1.09,1.94 5.9,4.19 1.79,5.59 0.41,2.25 -2.38,5.11 0.78,6.65 -2.86,-0.58 -2.74,5.86 0.16,4.24 -0.52,2.48 -0.45,5.39 2.6,5.52 0.99,0.71 1.98,1.43 2.96,2.14 0.34,-1.31 1.06,-1.78 0.88,-0.17 1.65,-0.62 3.99,0.32 4.03,2.59 0.12,1.35 0.91,3.75 2.75,1.76 3.33,-1.46 6.61,1.38 9.97,1.03 2.56,-1.77 4.83,0.86 6.18,2.91 0,13.19 0,26.38 0,39.57 -4.3,1.87 -8.8,3.32 -13.06,5.23 -0.36,0.05 -0.72,0.08 -1.09,0.08z\",\"name\":\"Iraq\"},\"az\":{\"path\":\"m625.84,392.01c-2.29,-1.74 -6.12,-1.39 -7.67,-4.17 -2.87,-0.9 2.82,-3.1 1.5,0.21 -0.29,2.16 0.66,-0.38 1.38,-0.86 1.98,0.67 2.99,-0.38 4.14,-1.97 0.78,0.36 1.17,3.12 3.09,2.25 0.41,1.86 5.4,3.6 1.25,3.88 -1.24,0.15 -2.44,0.52 -3.69,0.66z m9.25,-4.53c-1.22,-1.31 -1.37,-1.74 -0.58,-3.22 -0.7,-1.79 -4.05,0.28 -2.18,-2.45 -0.71,-3.07 -3.86,1.6 -5.74,-0.73 -1.12,-1.04 -4.8,-0.64 -2.24,-1.72 1.66,-3.91 -3.46,-4.05 -5.96,-4.45 -3.06,-0.54 1.31,-0.13 -0.04,-1.79 -1.74,-0.11 0.76,-3.32 -2.15,-2.78 -1.13,-2.07 -3.77,1.24 -3.43,-1.3 -3.83,0.78 -1.14,-4.07 1.25,-3.79 1.55,-0.11 2.45,2.19 4.64,1.11 1.17,-0.47 1.66,-2.32 3.53,-1.24 4.04,0.44 2.81,-5.63 -0.82,-5.09 -1.19,-0.23 -4.57,-0.92 -2.6,-1.97 -1.03,-3.22 2.59,-2.79 4.29,-1.55 1.8,0.76 4.71,-0.66 4.29,1.94 2.3,1.27 5.96,-0.02 6.83,-2.57 -0.51,-2.81 0.78,-5.44 1.5,-8.17 0.77,-1.87 3.93,1.21 5.57,1.75 2.04,2.28 4.63,3.86 7.4,4.84 2.72,2.9 5,-2.29 8.05,-0.66 2.42,0.7 -1.69,0.86 -2.16,1.8 -1.58,1 -0.94,2.98 -2.64,4.05 -0.87,2.65 2.35,4.7 1.48,7.28 0.01,2.24 2,3.06 1.53,5.18 2.05,2.31 -2.94,0.21 -1.67,3.07 0.41,2.71 2.06,5.63 2.66,7.96 -1.4,1.58 -3.89,-2.8 -4.72,-0.12 -0.51,-2.33 -5.01,-0.05 -2.24,-2.75 1.89,-2.25 -0.89,-2.79 -2.14,-3.4 -0.39,-1.7 3.13,-2.19 0.43,-2.98 -2.55,-2.17 -6.8,-1.82 -7.18,2.01 -1.56,2.2 -2.45,4.87 -3.2,7.25 -1.02,1.28 -1.42,2.9 -1.76,4.47z\",\"name\":\"Azerbaijan\"},\"ir\":{\"path\":\"m679.21,458.81c-1.85,-0.64 -2.96,-4.67 -5.07,-2.4 -2.51,1.13 -4.99,-0.69 -7.5,-0.94 -1.54,-1.25 -4.65,1.4 -4.88,0.3 -0.35,-2 -1.76,-5.08 -4.31,-4.59 -0.55,-2.48 -2.8,0.93 -4,-1.28 -1.15,-1.36 -3.82,-0.5 -2.7,-3.18 1.2,-2.24 -1.18,-2.93 -1.92,-2.92 -0.76,-2.14 0.85,-1.8 1.93,-2.95 -0.87,-1.54 -2.25,-2.23 -1.18,-3.98 1.41,-1.22 -0.93,-2.74 1.62,-3.12 2.22,-2.84 -3.32,-4.02 -3.44,-6.68 1.23,-0.62 3.69,-3.96 0.62,-3.5 -2.16,1.88 -4.6,2.34 -7.4,1.61 -2.13,2.68 -1.52,-4.01 -4.35,-3.02 -2.59,1.12 -1.74,-3.71 -4.6,-2.9 0.47,-2.81 -2.6,-2.62 -3.34,-4.74 -3.51,-0.37 -2.73,-5.88 -6.79,-4.9 -2.43,-0.23 0.88,-4.74 -1.15,-6.42 -2.63,1.81 -2.65,-3.09 -4,-4.32 -2.26,0.51 -1.17,-4.01 -3.82,-4.01 -1.08,-1.34 3.43,-0.98 2.24,-3.41 -0.62,-1.73 -1.46,-4.27 1.42,-2.93 2.06,1.49 5.14,2.91 7.63,3.88 2.25,1.24 5.18,-0.04 7.5,-0.74 2.07,-1.71 5.07,-2.61 4.75,-5.97 2.3,-2.33 1.71,-5.53 3.7,-8.09 0.98,-2.61 2.58,-5.68 5.71,-3.44 1.82,0.32 -1.95,3.66 1.08,3.95 4.06,-0.35 -2.73,4.32 1.52,4.83 1.27,-1.49 2.59,2.44 3.8,0.15 1.45,1.58 3.99,1.1 4.87,0.71 1.82,2.85 3.68,6.92 7.62,6.9 3.17,0.36 5.34,-2.56 8.13,-3.02 2.01,0.9 4.99,2.01 6.34,2.88 -0.02,22.74 0.03,45.49 -0.03,68.23z\",\"name\":\"Iran\"},\"ge\":{\"path\":\"m581.92,380.27c-2.26,-0.5 1.41,-3.83 -0.72,-5.4 -1.82,-2.3 -4.05,-4.17 -5.45,-6.77 -1.72,-2.18 -4.46,-0.36 -5.95,-2.58 -2.48,-1.15 -5.99,1.77 -7.69,-0.38 -1.24,-0.61 -3.4,-1.34 -1.11,-2.52 2.92,-1.18 5.31,-0.74 8.31,-1.17 2.62,-0.64 4.81,0.81 7.27,-1.05 1.64,-1.03 2.03,-2.53 4.37,-2.32 3.09,-1.55 5.23,0.93 8.34,0.23 1.97,-0.34 3.8,-1.06 3.76,1.37 3.33,1.16 4.09,-3.43 6.09,-4.97 1.82,1.19 3.56,0.44 3.29,-1.84 2.38,1.1 4.89,0.94 6.98,-0.29 0.1,2.19 0.6,4.52 3.44,3.9 1.82,0.87 6.7,-2.08 4.44,1.62 -1.04,4.09 6.18,1.33 6.51,4.88 -0.55,2.71 -3.63,-0.63 -4.78,1.93 -2.42,2.07 -3.95,-2.25 -6.59,-0.28 -2.88,0.84 -1.75,4.15 -4.11,5.26 -2.15,1.64 -6.02,2.97 -7.99,5.72 -1.4,1.55 -3.24,0.61 -4.57,1.11 -0.32,-2.7 -4.41,-0.39 -5.08,-2.59 -2.74,0.39 -1.4,4.41 -4.46,3.55 -2.08,-0.04 -2.63,2.5 -4.3,2.58z\",\"name\":\"Georgia\"},\"sy\":{\"path\":\"m570.98,505.1c-2.37,-0.06 -4.22,-2.23 -6.66,-1.9 -1.76,1.54 -0.95,-3.61 -2.17,-4.66 0.26,-2.1 3.06,-4.25 2.48,-6.23 -2.86,0.37 -0.12,-3.18 1.61,-2.81 1.41,-1.1 -2.08,-2 0.23,-3.24 2.46,-1.85 0.82,-6.41 -2.32,-5.73 1.74,-2.54 -3.41,-1.48 -4.52,-0.5 -2.16,-1.45 -1.71,-4.59 -2.2,-6.89 -0.72,-2.13 -3.63,-2.2 -2.69,-4.95 -1.91,-3.07 4.61,0.44 2.96,-3.37 1.96,-1.34 -0.54,-4.12 2.56,-4.37 1.92,-1.95 -2.9,-3.08 -1.96,-5.67 -0.17,-2.68 3.53,-1.88 4.07,-0.24 2.8,-1.4 6.26,-2.87 7.96,-6.08 1.77,-3.87 6.01,-0.57 8.96,-1.32 4.89,-1.98 9.3,-5.28 12.15,-9.78 2.06,-3.09 5.52,-4.42 8.88,-5.51 3.15,-0.62 4.71,-4.01 6.68,-5.54 2.16,2.06 -0.35,4.49 -0.71,6.75 -0.34,2.94 -3.64,3.54 -4.67,5.93 -0.77,2.72 0.96,5.34 2.92,7.06 1.91,2.86 0.25,6.61 2.05,9.52 1.43,2.7 2.07,6.08 0.11,8.71 -2.41,4.04 -5.84,7.35 -8.54,11.19 -6.92,8.84 -13.8,17.72 -20.31,26.87 -1.64,2.62 -4.19,2.66 -6.86,2.76z\",\"name\":\"Syrian Arab Republic\"},\"tr\":{\"path\":\"m494.91,482.2c-2.64,-0.83 -6.61,0.7 -6.69,-3.38 -0.28,-2.26 -4.06,-2.7 -3.32,0.14 -2.13,0.72 -2.01,-4.36 -4.24,-2.06 -1.1,1.64 -1.71,4.09 -2.75,1.3 -0.06,-0.7 3.87,-0.84 1.58,-2.85 -2.66,-0.75 -4.9,2.05 -7.56,2.3 -3.22,0.12 2.63,-2.09 -0.16,-3.58 -1.02,-1.26 -2.59,-1.78 -3.85,-0.25 0.8,-2.14 -2.11,-2.59 -0.3,-4.42 0.7,-2.91 -3.46,-4.14 -4.72,-3.08 -0.35,-2.13 -2.41,-1.66 -2.94,-0.12 -0.96,-0.52 -4.49,-1.13 -1.65,-1.67 1.95,-1.12 -0.35,-1.93 -0.64,-2.3 -0.1,-2.91 1.76,1.21 2.44,2.3 1.21,0.53 0.61,-1.54 2.32,-0.91 2.14,0.31 3.08,-4.19 0.9,-2.3 -2.98,0.71 -3.35,-2.88 -0.63,-3.63 1.42,-2.31 -2.41,-1.49 -2.02,-3.47 -1.48,-1.26 -3.08,-1.7 -1.12,-3.61 1.88,-4.06 -3.41,-1.44 -4.89,-0.21 -3.22,2.13 -1.41,-2.71 -2.53,-4.43 0.27,-1.5 2.4,-1.02 1.65,-3 1.08,-2.79 3.49,-3.54 5.85,-4.95 1.33,-0.2 3.18,2.13 5.06,0.5 2.19,-0.32 0.53,-4.12 2.21,-2.66 -1.01,2.78 3.65,-0.5 5.07,-0.34 1.73,-0.22 7.01,-0.13 5.15,-2.97 -1.48,-0.21 -3.18,0.39 -0.99,-0.95 1.96,-1.62 4.19,-2.4 6.66,-2.8 2.77,-0.54 1.2,-2.91 -0.89,-1.86 -1.93,1.45 -3.4,0.81 -4.38,0.32 -3.58,0.35 -2.31,-4.79 0.81,-3.52 2.71,0.01 5.57,-0.39 7.64,-2.28 2.46,-0.32 5.31,1.16 7.39,-0.69 2.9,-0.41 1.41,-4.52 4.23,-5.54 2.71,-2.98 4.61,-6.84 8.39,-8.68 2.29,-1.78 4.29,-3.83 7.39,-4.02 3.16,-0.7 6.47,-1.22 9.26,-2.97 -0.18,-2.01 2.92,-3.03 2.12,-0.46 1.09,2.77 5.37,3.22 7.04,0.72 1.14,-1.37 -0.27,2.45 1.16,0.14 2.04,-1.94 2.88,3.79 5.57,2.83 1.27,-1.86 4.62,-3.78 5.67,-1.09 1.67,-0.99 4.1,0.27 5.52,-0.17 -0.07,-1.45 1.44,-1.93 0.76,-0.72 3.48,0.31 7.66,-0.08 9.71,-3.32 2.34,-1.18 4.33,-4.18 7.15,-3.36 2.71,-0.07 6.67,-0.67 7.5,-3.83 1.38,-2.88 4.81,-4.34 5.49,-7.63 0.34,-3.02 3.69,-0.01 3.89,-2.79 0.79,-1.71 6.06,-0.8 5.2,-2.54 -0.27,-1.98 1.64,-2.11 0.91,-0.61 1.97,-1.13 4.24,-0.33 5.11,0.95 0.95,1.76 2.34,-1.7 3.43,0.93 2.07,0.94 4.5,1.8 3.64,4.81 0.12,2.83 2.56,6.38 5.64,4.35 1.45,-1.61 6.05,-1.12 6.12,-0.28 -2.87,1.25 2.28,4.65 -1.45,5.76 -2.31,0.86 -1.86,1.74 0.02,2.55 2.07,1.41 1.16,4.02 3.6,4.69 1.23,1.57 1.59,5.71 3.8,4.2 0.43,2.37 -1.79,7.52 2.74,6.05 2.64,-0.44 0.94,3.97 3.94,4.02 3.58,1.02 -1.74,2.3 -1.12,4.76 -1.2,0.98 -0.5,-3.85 -3.12,-2.67 -1.98,1.2 -2.57,4.14 -5.61,3.29 -2.88,-0.31 -4.84,1.72 -7.02,2.7 -0.69,1.88 -0.86,5.21 -2.91,2.44 -2.75,-0.22 -2.61,4.46 -5.58,4.92 -2.98,1.72 -6.75,1.93 -9.15,4.66 -2.61,2.66 -4.36,6.14 -7.61,8.16 -2.25,1.32 -4.52,3.36 -7.26,3.28 -3.54,-1.52 -7.49,-0.78 -9.08,3.03 -1.68,2.28 -5.43,4.75 -7.39,2.82 -3.82,-1.14 -4.64,3.62 -2.75,6 0.73,1.14 2.5,1.57 0.17,2.12 -3,0.1 0.83,3.76 -2.09,4.07 1.59,1.89 -1.39,2.48 -1.35,0.31 -1.32,-1.73 -3.85,-3.07 -1.43,-5.18 3.46,-2.09 -0.87,-8.48 -3.12,-4.45 -0.21,1.09 -4.52,4.06 -1.07,3.29 -0.14,0.32 -3.7,3.62 -5.39,1.57 -3.14,-1.5 -6.7,0.91 -7.75,3.93 -2.31,1.12 0.64,5.77 -2.52,4.44 -0.89,2.68 -3.25,3.27 -5.84,4.06 -1.96,1.06 -3.83,3.65 -6.37,2.47 -2.84,-1.55 -5.07,-4.65 -8.7,-4.14 -2.94,-0.38 -6,-0.94 -8.9,-0.06 -3.48,-0.29 -3.26,3.57 -2.85,5.62 -0.19,1.75 1.15,3.5 -1.34,2.67 -2.13,0.36 -2.94,2.88 -4.85,3.38z m-22.48,-0.92c1.54,-1.56 1.67,0.46 0,0z m4.91,-2.51c-0.79,-0.93 0.97,-1.15 0,0z m-7.81,-0.87c-2.21,-0.79 -0.04,-1.14 0.54,-0.39 -0.12,0.2 -0.29,0.4 -0.54,0.39z m-17.07,-35.78c-2.05,-1.66 3.84,-4.8 1.02,-1.64 -0.17,0.27 -1.7,3.54 -1.02,1.64z m-2.5,-4.63c-2.27,-0.95 2.99,-3.59 0.8,-5.77 -1.18,-2.59 4.67,-3.55 1.64,-6.24 -1.25,-1.27 -3.7,-1.75 -1.56,-3.41 0.31,-2.43 2.93,-0.92 3.7,-3.21 1.99,-1.8 4.08,2.49 6.12,-0.22 3,-2.82 1.8,3.03 4.59,3.75 2.54,1.72 5.71,1.31 8.59,1.46 1.59,1.71 -1.83,5.17 -3.31,2.87 -1.59,0.83 -4.21,-0.49 -5.46,2.07 -2.23,0.06 -4.36,0.17 -4.68,3.06 -0.43,2.55 -2.87,5.66 -5.23,3.75 -1.9,0.1 -3.3,1.78 -5.2,1.9z\",\"name\":\"Turkey\"},\"am\":{\"path\":\"m631.96,389.85c-1.96,-0.78 -2.5,-4.05 -4.9,-3.4 0,-2.98 -2.99,-2.85 -3.89,-0.42 -0.72,0.59 -2.05,-1 -2.73,0.47 -1.44,-4.24 -3.82,2.15 -6.08,-0.34 -2.43,-1.36 -5.05,-0.13 -7.33,0.88 -1.6,1.02 -2.24,-1.35 -3.25,-2.19 -0.22,-2.63 -0.35,-6.8 -3.95,-6.8 -1.56,-1.33 3.34,-2.22 3.67,-4.1 2.01,-1.81 4.84,-2.17 7,-3.75 -1.93,-0.72 2.92,-0.35 0.29,0.72 0.12,2.73 3.55,-1.6 5.25,0.33 2.07,0.17 -1.51,3.12 1.09,4.06 1.57,1.97 7.78,-0.09 6.04,3.56 -1.81,0.88 -2.21,2.81 0.36,2.27 2.62,0.26 4.73,3.06 7.3,0.67 1.25,-0.38 -1.56,2.52 0.95,2.4 1.37,0.14 2.22,0.32 0.58,1.07 -0.16,1.55 3.78,3 0.58,4.04l-0.53,0.37 -0.44,0.16 0,0z\",\"name\":\"Armenia\"},\"cy\":{\"path\":\"m527.35,491.44c-2,0.03 -5.42,-2.87 -2.34,-3.85 0.27,-2.84 4.77,-0.45 3.78,-3.88 -1.1,-2.02 2.82,-0.4 4.03,-1.67 3.21,-1.08 5.34,-3.84 7.9,-5.9 -1.85,1.69 -5.66,5.67 -1.55,7.09 -1.16,0.96 -4.02,1.69 -3.88,3.92 -1.79,0.94 -4.14,2.55 -4.75,3.95 -1.18,-1.33 -2.1,0.23 -3.19,0.34z\",\"name\":\"Cyprus\"},\"ie\":{\"path\":\"m160.13,300.45c-1.94,-0.73 -5.41,-0.29 -5.93,-1.1 2.68,-0.96 1.02,-3.47 -1.27,-2.29 -2.17,-0.03 4.61,-0.27 1.86,-1.87 -1.29,0.35 -5.82,0.84 -4.6,-0.88 0.33,-2.41 5.15,0.07 4.57,-2.91 -1.5,-0.99 -3.62,0.6 -3.81,-1.26 1.2,-0.91 6.26,2.54 3.91,-0.67 0.38,-1.38 3.44,-1.82 5,-1.34 1.1,0.96 5.65,0.21 3.16,-0.84 -0.11,-2.83 -2.54,-0.03 -3.01,-0.47 -0.23,-0.23 -3.43,-0.5 -1.1,-1.34 2.22,-1.01 0.54,-4 2.82,-3.42 2.56,1.02 3.91,-3.17 0.52,-2.46 -1.68,0.14 -2.56,-0.23 -2,-1.83 -0.18,-2.01 -5.12,-1.21 -3.94,-2.82 2.15,0.5 2.19,-2.65 4.57,-1.69 2.67,-0.16 1.13,-2.7 -0.21,-3.26 0.29,-1.31 0.02,-3.18 -0.75,-3.28 2.65,-0.82 4.91,0.87 5.93,2.56 1.46,-1.86 3.2,1.45 5.23,1.05 -1.45,-1.4 -1.04,-3.03 1.32,-2.78 1.21,-0.78 -0.05,1.72 1.32,2.45 1.11,1.84 4.55,5.05 6.16,2.17 -0.49,-1.92 2.26,-1.77 1.43,0.13 0.94,1.15 1.06,2.27 0.8,3.26 0.63,1.48 4.47,-0.64 2.75,0.86 -2.34,0.42 -0.05,3.2 -0.77,4.83 0.46,1.62 -0.08,2.98 -1.28,2.32 1.02,2.41 1.46,5.54 -0.48,7.61 -1.25,2.01 -3.34,4.38 -4.14,6.02 -2.56,-0.85 -5.09,-0.34 -7.67,-1.06 -1.16,0.41 -0.62,2.52 -2.3,1.42 -1.5,0.14 -2.91,2.49 -3.4,0.19 -2.29,-1.05 -1.04,2.27 -2.69,2.29 -0.11,0.95 -1.6,-1.12 -2.01,0.4z m13.73,-33.46c2.33,-2.06 -0.9,-1.95 -2,-2.14 -1.29,-0.53 -2.55,-1.96 -0.25,-1.08 1.89,0.69 2.47,-1.66 2.15,-3.1 -1.16,-1.71 7.03,-1.16 4.23,1.31 -0.31,1.85 2.66,-0.08 1.09,1.63 -0.53,1.73 -5.09,0.69 -2.83,2.72 -0.77,0.31 -1.61,0.36 -2.38,0.64z m6.45,-5.05c0.02,-0.88 0.61,0.23 0,0z\",\"name\":\"Ireland\"},\"gb\":{\"path\":\"m182.64,325.46c0.06,-1.95 -4.47,-2.09 -0.74,-2.3 2.67,-0.61 3.94,-3.31 6.49,-4.14 2.12,-0.77 1.4,-4.5 3.94,-3.31 1.45,-3.67 5.43,-1.45 8.06,-0.26 2.91,0.6 2.6,-3.72 5.07,-4.06 1.35,-0.1 4.35,-3.93 1.42,-2.57 -1.86,1.99 -5.05,0.84 -6.82,2.84 -2.27,-0.51 -2.72,-5.62 -5.77,-3.31 0.24,-2.37 -1.53,-4.27 -3.69,-2.44 -0.87,0.75 -2.94,0.79 -1.58,-0.17 0.16,-1.27 -3.6,-0.88 -1.52,-2.98 1.52,-0.74 3.44,0.29 4.82,-1.36 2.13,0.95 4.49,-1.92 5.83,-3.38 1.68,-2.26 0.05,-8.36 -3.37,-5.58 -1.46,1.33 -0.19,-1.41 0.97,-0.91 1.28,-1.84 2.91,-2.79 5,-2.8 1.2,0.32 4.62,-0.54 5.23,2.01 0.71,1.84 0.61,0.28 0.62,-0.81 -0.49,-1.45 0.01,-1.88 0.83,-1.63 -1.44,-2.21 1.58,-2.99 1.67,-4.6 -1.45,-0.49 -1.63,-2.14 0.09,-1.51 0.69,-1.16 0.79,-2.38 1.37,-3.56 -0.63,-2.27 -3.62,2.01 -2.38,-1.12 -0.36,-1.35 -2.39,0.41 -1.46,-1.51 -2.08,-2.31 0.12,-6.19 3.07,-5.98 2.74,-1.73 -0.83,-1.86 -2.08,-2.37 -0.92,0.48 -3.28,2.29 -4.42,1.19 -1.32,1.2 -1.79,-3.4 -3.43,-0.83 0.32,2.13 0.14,1.46 -0.76,0.01 -1.33,-0.68 -2.66,-1.39 -1.32,-3.18 1.13,-2.26 5.13,-4.6 2.33,-7.17 0.52,-2.42 1.47,-4.31 0.99,-6.83 -1.19,-2.25 -5.91,3.7 -3.96,0.19 -1.17,-1.95 1,-2.29 1.54,-3.39 -1.93,-1.31 3.92,-1.92 1.97,-3.06 1.93,-2.14 -1.4,-1.12 -1.91,0.17 -2.64,0.37 -2.78,2.95 -5.17,3.25 1.64,-1.88 1.56,-3.32 4.36,-3.1 0.45,-1.67 -5.98,-1.25 -1.81,-1.19 1.82,-0.7 -1.08,-3.69 1.83,-2.58 2.2,1.18 2.55,-1.86 1.62,-2.28 3.21,-0.32 0.94,-5 -0.12,-6.67 -1.49,-3.19 1.62,1.59 1.66,-1.31 -0.16,-0.99 3.11,1.17 2.06,-1.21 -1.02,-1.19 -0.29,-1.17 0.73,-0.82 0.07,-1.49 0.01,-1.71 1.64,-1.31 1.56,-1.15 -0.74,-2.21 0.86,-3.26 -0.88,-3.08 1.49,-0.59 1.87,-0.27 0.74,0.04 0.92,2.92 2,0.79 2.21,-0.9 6.43,0.18 7.86,0.3 -1.51,1.12 -1.16,3.83 -3.76,4.28 -1.25,1.24 -5.25,2.21 -4.45,4.19 2.02,-0.77 1.46,0.73 0.51,0.2 -2.65,-1.31 -3.91,3.83 -0.65,3.27 1.6,-1 4.76,-1.27 6.96,-0.43 2.15,0.77 9,0.4 6.36,4.13 -2.17,1.32 -1.95,4.3 -3.79,5.88 -1.36,2.24 -3.73,4.99 -6.67,3.85 -2.54,0.88 -0.66,2.52 1.1,1.38 0.78,-0.5 3.15,3.35 0.84,1.99 -2.07,-0.28 -3.16,1.31 -5.18,1.63 -0.02,2.53 4.56,1.95 5.82,1.47 2.3,1.2 3.8,3.55 4.55,5.85 2,2.23 0.13,5.79 1.35,8.49 -0.45,3.02 1.26,4.86 3.81,6.01 1.66,1.49 2.34,4.19 3.57,5.37 -2.57,1.95 1.1,5.12 0.44,6.31 -2.04,-0.08 1.34,3.78 1.3,5.11 0.78,2.24 -5.08,2.32 -2.09,4.71 1.56,2.69 3.3,0.05 4.83,-1 2.51,1.1 6.37,1.79 6.61,5.25 -0.28,2.6 -1.71,7.67 -4.87,6.84 -2.14,0.29 1.39,3.23 -1.35,2.01 -1.64,-1.62 -4.38,2.64 -1.7,1.39 1.98,0.5 -1.21,2.23 -2.35,1.41 -3.04,0.03 -0.52,3.18 1.11,2.57 2.13,-1.55 -0.82,1.67 1.85,1 1.37,0.01 4.16,-1.13 2.4,1.04 0.18,1.94 -3.04,1.77 -3.79,3.01 -3.03,-0.26 -5.14,2.46 -7.81,0.22 -2.14,-0.87 -5.12,1.06 -5.71,-1.04 -0.97,0.35 -1.61,-1.39 -2.37,0.11 -0.34,-1.96 -3.3,-2.15 -1.9,0.13 -1.76,0.29 -4.97,-1.2 -5.38,0.98 -2.03,-0.7 -3.26,-0.69 -4.99,-2.14 -2.67,-1.4 -6.68,-1.13 -6.68,2.71 -0.68,3.61 -3.23,0.34 -4.72,-0.57 -1.81,-0.09 -4.28,-1.13 -5.91,0.19 -1.52,-0.34 -2.18,1.47 -2.78,2.5z m18.76,-70.13c1.65,1.54 3.03,-0.19 0.57,-0.92 -0.47,-0.23 -0.39,0.68 -0.57,0.92z m-3.12,31.93c0.55,0.53 0.27,0.88 0,0z m-1.17,-10.07c0.02,-1.53 3.39,-4.02 1.66,-1.22 -0.39,0.58 -0.96,1.08 -1.66,1.22z m-10.63,-1.73c-1.59,-0.31 -2.08,-2.29 -3.03,-0.36 -1.91,-0.73 1.49,-2.2 -1,-2.29 0.13,-2.31 -2.8,-4.88 -3.79,-2.04 0.08,3.32 -3.97,-0.09 -4.6,-1.78 -1.85,-2.46 4.1,-0.54 2.7,-3.31 3.07,0.55 2.59,-4.32 5.36,-2.92 1.06,-1.19 2,-1.61 3.15,-1.03 2.23,-0.98 4.88,1.21 3.52,3.35 -0.19,2.26 3.15,1.24 0.87,3.27 -2.06,1.44 -0.04,2.03 1.25,1.47 1.84,1.95 -0.91,4.87 -2.77,3.75 -0.28,0.8 -0.67,1.84 -1.67,1.88z m10.61,-7.92c-1.67,-0.09 0.88,-0.41 0,0z m-4.29,-6.97c1.08,-0.83 2.3,-4.85 2.33,-3.8 -0.86,1.14 -0.52,3.62 -2.33,3.8z m2.73,-6.13c0.35,-1.24 0.97,-0.17 0,0l0,0z m-3.97,-25.03c-1.05,-1.04 1.79,-1.33 0,0z m1.85,-1.48c-0.51,-1.01 -1.32,-1.32 -0.4,-1.6 -1.54,-1.3 0.12,-2.32 1.22,-0.9 1.22,-0.53 0.35,-2.59 1.9,-1.78 0.84,-0.86 3.02,-1.98 1.27,-0.28 -1.41,1.61 -1.17,5.41 -3.42,2.95 -0.74,0.32 -0.1,1.35 -0.58,1.61z m38.33,-20.76c-1.93,-1.65 4.17,-0.89 0.99,-0.51l-0.47,0.12 -0.53,0.39 0,0z\",\"name\":\"United Kingdom\"},\"ch\":{\"path\":\"m292.05,389.98c-1.12,-2.03 -1.49,-3.96 -4.14,-4.68 0.24,-1.27 0.28,-4.19 -2.02,-2.48 -2.76,1.07 -0.98,6.19 -4.8,5.6 -1.34,-2.05 -4.35,2.18 -5.85,-0.49 -0.66,-1.9 -1.54,-2.82 -1.22,-5.23 -0.26,-1.58 -4.49,-1.34 -5.35,0.35 0,0.96 -0.92,3.04 -1.36,2.14 2.08,-0.65 -0.4,-3.99 1.78,-5.21 1.94,-0.57 2.18,-1.6 2.3,-3.5 2.42,-0.82 3.23,-3.53 5.4,-5.02 0.92,-1.36 3.51,-0.53 3.7,-1.93 2.51,-0.36 5.31,-0.33 7.48,-0.01 1.57,-0.63 0.5,-2.03 0.36,-2.23 1.31,-1.57 1.36,1.33 2.5,0.98 1.1,0.96 4.91,-0.68 5.97,2.04 0.36,1.7 -2.95,6.33 1.28,6.08 1.9,0.87 4.09,3.47 5.78,0.3 -0.28,1.18 -0.17,4.33 -0.42,4.42 -1.87,-2.39 -4.17,0.79 -2.27,2.33 0.4,3.64 -0.7,-1.85 -2.69,-0.06 -1.62,2.46 -2.25,-1.46 -3.43,-1.76 -2.43,0.76 -0.07,4.33 -2.78,4.97 -1.02,0.89 -0.72,2.33 -0.22,3.4z M275.63,370.8c0.49,-1.83 2.92,0.14 0.45,0.04l-0.53,0.11 0.08,-0.14 0,0z\",\"name\":\"Switzerland\"},\"at\":{\"path\":\"m338.89,381.72c-2.92,-0.37 -5.68,-0.8 -8.68,-1.29 -3.41,-0.44 -7.47,0 -10.13,-2.59 -0.49,-1.79 -2.01,-0.99 -0.74,-2.9 -1.54,-1.34 -4.15,1.63 -6.36,0.74 -2.58,-0.56 -3.71,1.14 -4.67,3.02 -0.77,-1.61 -4.07,-0.58 -3.15,-2.45 -2.02,-1.72 -4.43,3.34 -5.34,-0.45 -2.71,0.05 -3.32,-2.5 -1.76,-4.48 -0.11,-1.92 0.65,-1.26 2.03,-1.24 0.77,2.34 2.91,4.54 4.57,1.3 -0.46,-2.13 1.09,-1.56 2.51,-1.62 1.01,3.44 4.52,1.32 6.34,0.3 1.07,-2.1 5.55,-0.39 5.96,-2.32 1.02,0.88 3.01,0.37 3.69,0.59 0.18,3.89 5.07,0.73 2.69,-1.53 -0.2,-1.43 -1.39,-3.39 -2.11,-5.03 1.93,-1.47 5.36,-2.58 5.54,-5.05 1.88,0.9 2.55,-1.98 3.13,-1.73 2,1.9 4.33,0.91 6.33,0.45 0.7,-1.97 2.92,-2.39 2.31,-5.03 1.96,0.92 4.91,0.17 6.97,1.75 1.9,2.39 4.37,-0.77 6.11,0.38 1.43,-0.03 2.77,1.31 1.21,2.94 -0.45,2.79 3.86,4.35 2.35,7.1 1.97,3.48 -4.51,0.08 -4.56,2.79 1.63,1.11 3.27,1.96 0.42,2.95 -0.98,1.81 1.97,4.01 -0.88,5.49 -1.01,1.14 -3.1,1.64 -2.24,3.63 -2.75,-0.79 -4.87,2.27 -7.7,0.89 -1.89,0.31 -2.39,2.61 -3.87,3.38z\",\"name\":\"Austria\"},\"cz\":{\"path\":\"m335.18,355.05c-3.65,-0.41 -4.96,-4.57 -8.41,-5.66 -1.31,-1.75 -2.19,-2.91 -4.32,-3.66 -1.8,-1.56 -2.64,-3.53 -1.6,-5.57 -0.16,-1.57 -4.02,-3.53 -3.2,-4.17 1.42,3.2 2.44,-2.24 4.26,-2.25 1.35,1.3 3.09,-0.63 3.77,-1.12 1.58,-1.86 4.18,-2.74 6.59,-3.91 1.63,-0.69 3.11,-2.35 4.59,-0.56 2.65,1.13 2.61,-4.69 4.17,-1.06 1.38,1.66 3.64,0.69 5.11,2.36 0.67,1.75 5.33,-1.17 2.84,1.24 -1.67,2.06 2.09,2.81 2.61,4.74 2.09,1.86 2.12,-0.93 3.96,-1.42 0.43,-1.39 -1.9,-2.7 0.65,-1.55 1.23,1.3 3.29,0.96 4.4,0.53 -3.27,0.95 2.17,5.16 3.09,2.65 2.93,0.44 4.53,2.63 6.07,4.63 -2.15,1.71 -4.92,3.04 -5,6.15 -1.22,2.56 -3.35,3.75 -6.24,3.67 -1.85,1 -3.16,2.67 -5.05,0.79 -2.11,1.83 -4.69,0.96 -6.9,-0.42 -1.92,-1.1 -4.07,-0.45 -5.85,-0.93 -0.34,2.31 -2.03,3.48 -2.87,5.34 -1.07,-1.47 -1.28,0.34 -2.66,0.17z m-0.68,-28.45c-2.43,-2.03 2.32,0.24 0,0z\",\"name\":\"Czech Republic\"},\"sk\":{\"path\":\"m364.44,362.94c-2.39,-2.37 -6.56,-2.63 -7.73,-6.02 -0.46,-2.43 0.4,-6.56 3.64,-6.16 3.23,0.29 4.91,-3 5.9,-5.48 0.17,-1.96 3.95,-5.08 5.19,-3.02 2.43,1.82 3.49,-4.97 4.66,-0.89 1.56,0.35 1.91,0.85 1.91,2.52 2.64,1.02 3.89,-1.84 5.57,-3.22 1.58,-0.07 4.26,1.88 5.1,-0.34 0.99,-1.59 4.74,-1.57 6.47,-0.13 1.28,2.35 6.24,0.73 4.22,4.32 -1.5,2.17 -0.53,7.67 -4.43,6.22 -0.53,-3.18 -3.88,-1.31 -5.83,-0.46 -2.77,-2.02 -4.98,0.68 -5.07,3.51 -1.08,0.67 -2.09,-0.14 -2.29,1.79 -1.29,1.17 -3.96,-2.16 -4.46,1.1 -0.72,2.43 -5.78,-0.07 -5.66,3.66 1.11,2.54 -4.04,1.94 -5.84,2.51 -0.44,0.04 -0.88,0.07 -1.32,0.1z\",\"name\":\"Slovakia\"},\"hu\":{\"path\":\"m369.77,387.01c-2.75,-0.58 -5.39,-1.37 -7.78,-2.73 -2.27,-2.63 -5.77,-3.91 -7.5,-7.04 -1.21,-1.85 -2.06,-2.65 0.1,-3.74 1.43,-1.97 -1.64,-4.55 1.32,-5.48 2.04,-1.7 -3.3,-3.48 -0.09,-2.71 2.81,1.04 3.86,-1.91 3.11,-3.93 1.93,-1.05 3.43,2.43 5.44,2.58 3.24,-0.18 6.53,-0.68 9.48,-2.09 -2.94,-1.84 0.68,-3.88 2.85,-2.99 1.75,-0.27 1.26,-4.31 3.33,-2 2.26,0.8 3.01,-1.99 4.8,-2.5 0.41,-2.48 1.52,-4.92 4.25,-3.08 1.93,-0.18 4.28,-2.95 5.05,0.14 2.1,1.7 4.8,-1.81 6.38,0.84 2.12,-0.07 1.45,3.23 3.34,1.35 3.46,3.21 -4.18,3.49 -4.55,6.38 0.35,2.87 -2.65,4.72 -2.5,7.52 0.37,3.17 -2.46,5.43 -2.51,8.54 0.01,3.02 -4.16,0.17 -4.1,3.12 -3.14,1.57 -7.09,0.21 -9.73,1.82 -1.24,2.36 -3.12,1.16 -4.53,3 -2.57,0.36 -3.31,3.42 -6.16,3.01z\",\"name\":\"Hungary\"},\"lt\":{\"path\":\"m397.76,280.99c-1.28,-1.32 -1.63,-4.58 -4.11,-3.7 -1.13,-2.07 -4.01,-0.28 -3.26,-3.14 1.62,-3.48 -2.4,-7.19 -5.64,-5.13 -2.28,0.26 -5.13,-1.48 -6.05,-2.17 -0.51,-2.23 -1.53,-3.51 -2.2,-5.4 -1.37,-2.68 1.24,-5.63 3.5,-7 1.88,-1.44 4.85,-0.65 6.6,-1.37 0.56,-1.26 2.33,2.09 2.82,-0.31 2.06,-0.86 4.97,0.1 6.62,-0.3 1.76,-0.28 3.35,-0.61 3.78,-2.83 1.19,2.4 3.3,3.12 5.7,2.26 2.79,0.52 4.16,3.86 7.04,4.08 1.64,1.42 -0.82,5.15 2.39,4.69 0.41,1.84 -3.75,0.79 -2.82,3.52 -2.05,1.6 -2.93,3.79 -1.88,6.23 -0.12,2.13 -0.68,3.69 -2.75,4.26 -0.43,1.13 -0.04,1.82 -1.97,2.11 -0.51,1.51 -1.38,2.09 -2.67,3.35 -1.72,-1.32 -3.41,0.53 -5.09,0.87z m13.27,-5.67c-0.11,-1.17 -1.77,-2.09 0.31,-1.22 0.43,0.34 0.36,1.19 -0.31,1.22z\",\"name\":\"Lithuania\"},\"lv\":{\"path\":\"m375.49,257.31c-1.25,-2.79 -1.57,-6.54 -0.19,-9.24 2.63,-2.07 -0.8,-6.67 2.34,-8.6 1.69,0.07 4.11,-4.27 4.4,-1.32 2.44,1.48 4.79,3.19 5.76,5.78 2.55,1.96 6.17,0.07 7.13,-2.71 1.39,-2.75 -1.14,-5.3 -1.86,-7.82 1.34,-1.86 3.66,-3.57 5.64,-3.47 0.08,-0.9 1.63,1.08 2.69,0.67 1.72,0.06 3.13,2.25 4.97,3.22 2.21,0.36 3.53,-2.11 5.72,-1.12 1.76,-0.72 2.78,1.38 4.4,2.33 -0.55,1.5 -1.61,1.77 0.06,2.4 -0.17,1.1 -0.46,3.72 1.44,2.57 1.53,2.66 6.04,5.32 2.65,8.5 -1.42,1.56 -0.49,4.51 -3.48,3.69 -2.28,0.64 -3.94,4.9 -6.51,1.93 -2.03,-2.26 -5.06,-3.95 -7.91,-2.78 -1.1,-1.49 -3.6,-4.26 -4.46,-0.94 -1.47,1.77 -5.35,0.57 -7.87,1.17 -1.87,0.26 -2.16,0.89 -3.44,-0.06 -2.37,1.98 -6.1,0.17 -8.37,2.54 -1.6,0.14 -2,4.17 -3.11,3.25z\",\"name\":\"Latvia\"},\"md\":{\"path\":\"m454.92,374.42c-0.33,-2.09 -1.86,-4.78 -2.23,-7.4 0.38,-3.56 0.07,-7.47 -2.96,-9.91 -3.2,-3.43 -7.96,-5.44 -9.93,-9.93 -0.24,-2.34 -6.31,-3.34 -2.39,-4.03 2.67,0.33 3.73,-3.48 6.57,-2.14 1.32,0.97 1.83,2.54 3.78,1.18 -0.02,0.82 2.42,2.73 2.56,0.37 1.33,-1.44 3.96,3.6 4.43,1.55 1.2,-1.55 0.65,3.03 1.22,3.93 0.07,2.32 4.57,4.13 4.42,2.59 -0.43,1.81 0.64,4.31 3.01,4.64 2.61,-0.41 1.35,4.32 2.84,4.34 -0.24,1.12 -3.35,-2.1 -2.5,0.78 -1.04,0.18 -2.3,-2.64 -2.02,-0.03 -1.22,0.21 -2.31,-1.71 -3.62,0.36 -1.34,1.85 1.39,3.73 0.77,5.48 -0.5,2.25 -2.95,4.34 -2.23,7.32 -0.82,-0.46 -1.48,0.35 -1.72,0.91z\",\"name\":\"Moldova\"},\"ro\":{\"path\":\"m414.71,404.53c-2.94,-0.37 2.3,-2.82 -0.89,-3.86 -1.36,-0.38 -6.12,-1.72 -3.63,-3.39 3.62,-1.4 -2.29,-3.42 -3.82,-3.63 -1.25,0.73 1.78,4.33 -1.06,3.46 -0.47,-2.42 -4.24,0.23 -4.49,-2.27 -1.54,0.07 -1.87,0.1 -0.31,-0.74 0.46,-1.41 -2.15,-1.17 -0.71,-2.27 0.07,-4.02 -6.25,-1.24 -6.86,-4.86 0.56,-2.93 -2.25,-4.23 -4.45,-5.46 -1.23,-1.35 3.36,-1.23 3.59,-2.71 4.37,0.45 2.54,-4.6 4.68,-6.55 1.28,-2.95 0.7,-6.3 2.76,-8.97 0.62,-2.75 1.58,-5.21 4.69,-5.79 2.24,-1.25 2.4,-5.8 5.34,-3.67 2.44,-0.6 4.8,0.38 7.17,-0.21 2.51,-1.94 3.7,1.15 5.91,1.18 2.03,-1.31 2.68,-4.39 5.67,-3.96 2.31,-0.28 4.86,-1.95 4.49,-4.32 1.75,-2.97 4.98,-1.01 6.29,1.29 1.93,4.74 7.06,6.72 10.28,10.39 2.93,2.37 2.34,6.09 2.36,9.35 0.53,2.52 1.69,4.86 1.92,7.13 1.82,1.67 4.12,3.74 6.83,2.36 1.37,-1.24 4.51,-5.35 6.51,-2.84 1.18,1.97 2.1,5.63 -1.2,6.33 -1.85,1.04 -1.42,-3.67 -3.88,-1.61 -1.51,1.92 1.84,2.51 -0.11,4.51 -0.61,2.57 2.04,-0.86 0.82,1.98 -2.28,2.63 -0.38,5.59 -0.04,8.5 -1.15,2.51 -5.2,-0 -6.02,-1.11 -1.09,1.46 -1.67,-0.92 -3.54,0.54 -1.82,0.49 -3.31,-1.46 -5.44,0.01 -3.08,1.35 -6.52,2.81 -8.17,5.95 -1.31,3.55 -4.97,3.29 -8.01,2.77 -2.75,-0.48 -4.92,1.71 -7.44,1.75 -2.74,-0.25 -5.83,-1.37 -8.31,0.42l-0.52,0.24 -0.43,0.06 0,0z\",\"name\":\"Romania\"},\"bg\":{\"path\":\"m419.98,434.43c-0.77,-1.6 0.33,-5.03 -1.67,-6.74 -1.14,-2.34 -7.05,-2.04 -4.41,-5.19 -0.49,-1.45 -2.46,-4.37 -1,-5.23 2.16,0.54 4.75,-3.78 2.92,-5.59 -2.57,-1.55 -5.66,-2.78 -5.98,-6.24 -0.97,-2.47 2.74,-1.99 1.69,-4.32 2.08,-0.06 3.2,1.11 1.22,2.59 -0.15,3.28 3.83,0.6 5.65,0.71 2.58,-0.64 5.13,0.94 7.65,0.08 2.61,-1.18 5.46,-2.28 8.27,-1.01 3.32,0.37 5.6,-2.51 6.93,-5.13 2.16,-2.35 5.29,-3.61 8.27,-4.56 1.69,0.75 3.92,0.92 5.2,0.32 0.77,1.61 2.46,-1.39 3.17,1.07 1.58,2.18 6.09,-1.71 5.26,2.45 0.21,2.63 -4.48,0.38 -4.02,3.94 -1.88,1.85 1.39,5.32 -0.17,7.14 -1.24,1.25 -1.7,3.03 -2.93,4.26 0.82,1.66 4.27,-0.37 3.64,2.02 1.44,0.86 3.71,1.89 1.23,2.18 -1.9,3.08 -4.18,-1.08 -6.49,0.5 -1.52,1.95 -4.37,1.58 -4.82,4.55 -1.37,1.04 -4.43,1.49 -2.91,4.13 3.08,3.26 -3.78,2.7 -5.13,4.68 -1.95,0.62 -4.22,-2.41 -5.93,-0.29 -2.04,-2.63 -5.18,-1.43 -7.46,0.15 -2.06,2.52 -5.54,1.17 -7.76,3.47l-0.43,0.06 0,0z\",\"name\":\"Bulgaria\"},\"al\":{\"path\":\"m396.5,458.88c-2.16,0.08 -0.81,-2.55 -2.74,-3.41 -0.91,-2.13 -5.81,-2.06 -5.48,-3.81 2.36,-1.04 -1.62,-3.19 -0.48,-4.99 0.36,-1.26 2.66,-2.2 0.57,-3.3 1.39,-2.49 -3.57,-5.96 0.77,-6.52 2.37,-0.03 -1.92,-0.89 -0.55,-2.51 -0.14,-2.15 -3.24,-0.23 -2.21,-2.9 -1.48,-2.28 0.07,-4.41 1.36,-6.71 1.01,3.42 4.23,-2.13 4.66,1.78 1.21,1.69 4.6,1.07 3.88,4.25 -0.33,2.87 -0.02,5.6 0.51,8.19 0.21,1.77 2.38,5.51 4.15,4.74 1.69,-0.32 2.5,4.45 0.05,5.02 -0.86,1.75 -0.27,5.37 -3.24,5.56 -2.01,1.26 1.3,2.75 -0.81,3.98l-0.23,0.5 -0.19,0.12 0,0z\",\"name\":\"Albania\"},\"ee\":{\"path\":\"m378.18,234.33c-0.29,-1.42 0.77,-0.85 0,0z m29.34,-1.46c-2.55,-0.18 -3.15,-3.15 -5.39,-3.23 -0.21,-1.76 -1.21,1.44 -2.27,-0.65 -2.12,-1.63 -4.52,1.21 -6.27,2.48 -1.26,-0.67 1.67,-5.98 -1.81,-5.74 -1.1,1.92 -1.82,2.36 -3.83,1.3 -0.08,-2.54 -3.43,-2.95 -2.01,-5.67 0.96,-2.03 -3.8,-2.6 -0.62,-3.95 1.35,-0.61 4.23,-0.97 2.3,-2.67 2.82,-0.9 4.5,-2.4 7.47,-2.41 1.66,-0.56 1.5,-2.75 3.42,-1.67 0.91,-1.72 4.64,0.07 6.63,-0.66 2.13,-0.1 4.26,0.22 6.03,-1.29 -1.43,2.67 -1.02,5.84 -2.24,8.62 2.11,2.2 1.2,5.64 3.15,7.83 0.24,0.52 1.89,2.24 1.35,2.38 -0.73,0.83 -0.81,2.27 -1.35,2.68 1.66,2.85 -2.28,0.25 -2.89,1.26 -0.29,0.68 -0.83,1.4 -1.65,1.38z m-28.89,-1.28c-1.29,-0.43 -2.59,-1.4 -0.92,-2.29 -0.22,-0.67 0.59,-1.5 0.99,-0.78 -0.53,-2.4 4.69,-3.37 4.19,-1.27 0.07,2.48 -3,2.5 -4.26,4.33z m1.02,-7.14c-0.54,-0.34 -0.96,-2.14 -1.01,-2.27 0.8,-1.29 0.79,-1.32 2,-0.55 1.89,-0.4 1.35,1.06 -0.17,0.69 0.83,0.84 0.55,2.1 -0.81,2.14z\",\"name\":\"Estonia\"},\"lb\":{\"path\":\"m557.2,501.39c0.58,-2.8 0.32,-5.88 1.17,-8.53 -0.92,-2.02 1.77,-3.87 0.09,-5.88 -0.28,-2.6 2.65,-3.83 2.23,-6.01 1.03,-0.93 3.35,-2.1 2.42,0.09 1.64,0.57 3.96,0.89 3.49,3.25 -1.11,1.34 -2.61,3.51 -1.84,4.51 -2.48,0.69 -2.89,3.8 -1.53,5.08 -0.04,2.15 -2.43,3.34 -3.12,4.26 0.57,1.87 -1.28,3.1 -2.91,3.25z\",\"name\":\"Lebanon\"},\"ad\":{\"path\":\"m225.99,427.08c-4.4,2.06 -0.81,-5.33 0.49,-0.98l-0.2,0.53 -0.29,0.45z\",\"name\":\"Andorra\"},\"sm\":{\"path\":\"m321.66,413.68c0.71,-2.83 1.59,1.21 0,0z\",\"name\":\"San Marino\"},\"mc\":{\"path\":\"m273.92,416.64c-2.8,-1.65 2.23,-1.64 0.39,-0.13l-0.39,0.13 0,0z\",\"name\":\"Monaco\"},\"lu\":{\"path\":\"m268.7,344.38c-1.34,-0.37 0.48,-2.79 -0.9,-3.99 -1.47,-1.94 2.76,-5.38 1.98,-1.49 0.37,1.78 4.79,2.33 1.84,4.09 -0.47,1.66 -1.49,1.22 -2.93,1.39z\",\"name\":\"Luxembourg\"},\"fr\":{\"path\":\"m292.72,444.55c-0.12,-2 -3.86,-0.94 -2.75,-2.99 -2.34,-0.62 -0.11,-2.51 0.75,-3.57 0.35,-0.55 -3.76,1.07 -1.24,-0.63 0.32,-1.34 -2.6,-2.05 -0.51,-3.01 -0.25,-1.14 -1.13,-1.51 -0.02,-1.71 -0.89,-2.66 3.14,-1.71 3.48,-3.51 1.94,0.96 2.98,-0.2 2.33,-2.11 1.79,-2.18 -0.99,3.51 1.02,4.43 1.2,3.29 -2.09,6.35 -1.33,9.73 -0.95,0.89 -1.15,2.64 -1.75,3.36z m-58.87,-15.16c-2.27,-2.01 -5.59,-0.28 -7.2,-2.87 1.48,-2.11 -2.14,-2.13 -2.92,-2.19 -1.78,-1.34 -3.82,-2.36 -5.67,-3.53 -1.54,0.58 -1.53,2.27 -3.51,1.46 -1.54,0.07 -2.66,-0.59 -3.93,-0.35 -0.8,-2.33 -2.93,-1.69 -4.53,-2.09 -1.06,-2 -2.81,-3.32 -5.06,-3.18 -1.57,-1.15 -1.33,-1.7 -1.45,-3.5 -1.23,-0.24 -3.44,-0.96 -1.02,-1.55 3.04,-3.75 2.96,-8.84 4.5,-13.21 0.85,-1.4 2.99,0.68 2.08,-1.85 -1.2,-1.06 -2.14,-0.84 -1.15,-2.81 1.1,-1.59 0.63,-5.99 2.35,-6.1 1.89,1.55 0.82,3.87 1.88,5.79 -0.05,2.01 2.7,3.12 1.93,0.38 -2.25,-2.11 -0.08,-5.11 -2.23,-7.23 -1.52,-1.07 -0.74,-1.21 -0.52,-2.39 -2.12,-1.87 0.87,-2.79 -0.3,-5.08 -0.91,-0.78 2.06,-4.15 0.31,-2.92 -1.7,1.58 -2.8,-0.99 -4.34,-1.54 -1.66,-0.48 -1.34,-4.04 -3.07,-5.27 1.45,-1.37 2.03,-3.5 -0.17,-4.21 -1.28,-1.38 -1.85,-1.7 -0.64,-3.42 1.28,-3.05 -5.85,-0.88 -2.14,-2.3 -0.4,-2.26 -4.49,0.28 -3.4,-2.31 -0.36,-2.67 -3.56,0.62 -4,-1.74 -2.28,-0.09 -2.42,-4.2 -4.81,-1.84 -1.78,1.57 -0.33,-2.39 -2.37,-2.56 1.59,0.62 3.87,-0.51 1.92,-2.13 1.84,1.1 2.88,-0.7 0.65,-1.01 0.13,0.05 1.59,-2.28 -0.46,-1.5 -1.34,1.45 -4.19,-0.07 -1.73,-1.25 1.3,-0.76 2.79,-0.81 2.95,-0 1.4,-0.85 2.87,-0.97 3.66,0.09 0.65,-1.02 3.21,1.35 3.19,-1.26 2.43,-1.62 2.22,2.03 2.47,2.06 1.69,-2.75 1.86,2.19 3.17,3.11 1.26,-0.74 3.83,-3.16 3.73,-0.14 1.62,2.63 2.82,-1.65 4.78,0.11 0.83,-0.47 4.32,1.06 3.36,-0.07 -1.65,-1.65 -2.42,-4.02 -1.35,-6.19 0.76,-2.4 -2.42,-4.6 -1.19,-7.04 1.21,1.81 5.2,-0.98 3.31,2.03 -0.19,2.43 1.93,3.76 3.68,2.84 2.59,0.56 5.12,3.56 7.68,1.11 2.16,-0.17 1.32,-1.39 0.53,-2.64 1.54,-3 5.41,-2.03 8.05,-3.16 1.81,-0.67 4.58,-1.88 5.31,-3.4 -1.75,-1.03 0.04,-4.18 -0.3,-6.15 0.44,-3.1 4.2,-2.36 6.44,-2.8 0.98,0.77 1.49,6.24 4.58,4.17 1.46,-0.35 0.7,4.82 3.67,3.62 -0.14,3.07 3.12,1.53 4.18,2.82 -0.64,1.44 -0.56,1.83 -0.25,2.78 -0.88,2.67 3.93,2.4 4.83,0.49 0.88,1.69 -1.1,3.55 1.66,3.61 2.55,0.29 2.49,4.49 5.21,3.37 2.65,1.52 6.43,-0.33 7.5,3.53 0.45,0.9 2.96,3.41 2.01,0.96 0.54,-1.16 0.79,1.42 0.5,1.49 1.47,-0.3 3.92,-1.81 4.53,0.32 1.92,0.28 7.08,0.84 3.22,2.94 -2.39,2.02 -1.66,5.55 -3.51,7.88 -0.4,2.45 -0.29,5.21 -1.25,7.67 -1.85,0.33 -4.65,-1.22 -4.94,2.33 0.2,1.24 -1.59,3.49 -3.64,4.12 -0.97,0.48 0.4,3.01 -1.75,3.44 -3.21,1.4 -0.53,4.69 -2.87,6.5 1.14,2.08 4.46,-0.29 3.63,-2.44 2.64,-1.79 4.27,0.65 3.32,3.02 0.97,1.33 2.7,2.42 0.16,3.24 -1.7,2.56 4.01,4.8 1.9,7.11 -0.78,1.84 -6.17,0.54 -3.47,3.57 1.68,1.38 4.39,3.16 1.43,4.85 -1.24,3.13 2.12,7 5.6,6.15 2.64,-0.69 -0.62,4.28 -2,4.64 -1.17,-0.72 -4.03,-3.03 -4.38,0.05 0.55,1.28 1.71,2.84 -0.72,3.26 -2.25,0.54 -0.87,3.61 -3.15,2.9 -1.62,1.27 -2.66,0.82 -4.12,0.04 -1.35,1.82 -1.33,-1.1 -3.38,-0.87 -2.84,0.75 -0.64,-3.44 -1.53,-2.84 -0.63,0.89 -3.09,1.3 -1.09,0.56 1.49,-2.74 -3.49,-2.8 -2.54,-0.31 -2.24,0.5 -1.46,-2.79 -1.57,-3.36 -1.08,1.05 -1.96,2.65 -0.52,3.91 -1.04,-0.28 -1.31,-2.83 -3.36,-2.08 -2.5,-1.7 -5.52,-1.71 -6.96,1.2 -2.68,0.79 -5.03,2.02 -5.69,4.77 0.13,1.89 -0.47,3.75 0.65,5.49 -1.42,-0.84 -3.32,-0.38 -4.33,0.88z\",\"name\":\"France\"},\"li\":{\"path\":\"m296.51,373.48c1.45,1.4 -0.83,3.11 -0.11,0.58 0.04,-0.19 0.08,-0.38 0.11,-0.58z\",\"name\":\"Liechtenstein\"},\"nl\":{\"path\":\"m269.04,328.72c-2.4,0.87 -0.84,-4.47 0.3,-2.01 0.8,0.23 0,1.75 -0.3,2.01z m-0.07,-3.78c0.6,-3.32 -5.02,-1.6 -5.27,-4.51 -0.12,-2.74 -3.14,1.24 -2.06,-1.29 -0.99,-0.79 -2.22,1.2 -3.22,-0.45 -0.9,0.27 -1.14,2.68 -1.08,0.81 0.68,-2.17 -1.32,-2.87 -3.53,-3.17 2.34,0.11 2.58,-2.07 3,-3.35 2.89,-2.17 4.59,-5.57 4.61,-9.18 -0.19,-3.29 4.06,-0.89 5.3,-3.43 1.14,-2.76 4.56,-2.87 7.04,-3.65 2.21,-0.91 4.28,0.51 5.07,2.25 2.56,1.19 -1.21,4.26 -0.45,6.54 -1.09,0.31 -2.87,-0.17 -2.83,1.81 -1.46,0.58 -1.58,0.91 0.09,0.93 3.35,-0.05 2.57,4.59 -0.38,4.58 -2.35,0.19 2.62,1.25 -0.12,2.19 -2.05,1.07 -3.43,-1.35 -5.33,0.59 -1.38,2.19 2.97,4.39 0.94,6.8 -0.8,0.77 -1.72,1.2 -0.27,1.66 -0.44,0.36 -0.82,1.02 -1.51,0.87z m-14.99,-3c-0.33,-1.2 -5.07,-0.99 -2.8,-1.87 1.14,1.13 2.85,1.22 3.93,0.81 -0.06,0.56 -0.57,1.04 -1.13,1.06z m0.03,-2.7c-1.37,-0.05 -4.02,-1.94 -1,-1.43 0.49,-0.33 2.23,1.73 1,1.43z\",\"name\":\"Netherlands\"},\"ba\":{\"path\":\"m376.75,425.9c-1.98,-1.6 -4.83,-1.93 -6.41,-4.05 -1.67,0.65 -0.52,0.38 -0.54,-0.48 -1.09,-2.31 -4.84,-2.74 -4.68,-5.7 -3.06,-0.33 -4.09,-3.71 -6.36,-5.29 -1.63,-1.9 -4.06,-2.19 -3.82,-4.87 -1.04,-2.44 -3.06,-3.46 -4.21,-5.63 -0.7,-2.04 0.84,-4.87 2.73,-2.36 1.15,1.84 2.68,1.49 3.04,-0.59 0.75,-2.51 2.6,0.54 3.87,-1.57 1.61,1.11 3.76,0.32 5.58,0.98 1.67,0.69 2.8,0.63 3.98,-0.64 1.28,0.32 2.43,1.79 1.94,-0.33 2.34,0.41 3.8,0.76 5.26,2.77 1.51,0.59 4.58,-2.46 3.33,0.9 -1.48,2.62 -1.55,6.27 2.2,6.4 -0.16,1.48 3,1.5 0.7,2.04 -2.41,-1.63 -1.77,2 -0.04,2.77 1.22,1.2 1.32,2.1 -0.54,1.97 -0.8,1.43 -2.82,1.15 -3.55,0.9 0.15,1.26 1.77,2.85 -0.32,2.67 -1.22,1.98 -1.74,4.24 -3.03,5.92 0.2,1.48 1.25,2.79 0.88,4.2z\",\"name\":\"Bosnia and Herzegovina\"},\"si\":{\"path\":\"m332.96,393.93c-2.25,0.07 3.69,-1.78 0.33,-3.25 -2.05,-0.05 -1.39,-3.19 -2.18,-3.5 2.21,-1.77 -0.2,-2.6 -1.36,-3.11 1.58,-3.35 4.85,-1.64 7.7,-1.58 3.3,1.9 3.73,-4.65 7.02,-2.86 2.43,0.1 4.45,-1.78 6.8,-1.33 -0.07,-1.25 0.26,-3.28 1.79,-1.82 0.58,1.34 2.29,2.96 -0.11,2.97 0.07,3.17 -6.44,2.43 -4.97,6.04 0.89,1.87 0.62,3.86 -1.85,3.13 -2.37,0.85 1.33,6.35 -2.15,4.17 -1.76,0.02 -2.78,0.57 -3.81,-1.48 -1.83,-1 -1.59,2.92 -3.88,1.76 -1.41,-0.46 -2.2,0.65 -3.34,0.85z\",\"name\":\"Slovenia\"},\"mk\":{\"path\":\"m403.18,443.19c-1.28,-0.84 -1.77,-0.72 -3.14,-0.4 -2.27,-2.33 -2.73,-5.58 -2.85,-8.64 -1.26,-2.44 2.39,-0.6 1.33,-3.13 0.23,-2.42 3.43,-3.85 5.06,-1.8 1.38,1.18 -1.35,-3.28 1.33,-2.73 2.83,0.6 4.67,-2.89 7.49,-1.79 1.51,2.18 4.77,1.95 5.79,4.72 1.29,2.63 0.37,4.95 -1.12,7.01 -1.05,2.69 -5.33,0.11 -7.05,2.7 -0.97,2.88 -4.09,3.39 -6.84,4.04z\",\"name\":\"Macedonia\"},\"hr\":{\"path\":\"m375.93,426.49c-1.17,-0.64 -1.03,-0.77 0,0z m-5.08,-2.9c-0.73,0.27 -1.25,-2.08 0,0z m-2.28,-1.81c-3.23,-1.04 -5.06,-4.7 -8.53,-5.08 -1.74,-1.23 -4.13,-1.36 -6.19,-0.38 -0.54,-3.7 -5.51,-3.9 -7.37,-6.92 -1.68,-2.86 2.16,-0.38 2.91,-1.43 -1.18,-2.05 -5.06,-2.05 -5.62,-5.05 0.07,-2.45 -0.12,-5.23 -2.77,-6.41 -1.46,-3.02 -5.35,-1.33 -4.75,1.8 -0.1,1.22 -1.81,1.15 -1.78,3.18 -0.42,-0.02 -2.43,-3.25 -2.8,-4.77 0.5,-1.41 -1.33,-2.59 0.97,-1.85 1.93,-0.05 3.32,-1.26 5.49,-0.87 1.75,-0.28 1.19,-2.99 2.55,-0.54 1.83,1.65 2.98,0.1 5.14,0.7 1.63,-0.59 0.6,-2.35 1.05,-3.41 -2.13,-1.84 3.84,-0.57 2.93,-3.42 -1.1,-1.62 -1.88,-3.53 0.82,-4.04 1.16,-1.26 3.54,-0.9 3.14,-3.3 3.59,0.79 6.21,3.61 8.62,6.19 2.91,-0.18 5.33,2.55 8.31,1.69 2.32,0.95 5.06,-5.2 5.33,-0.4 0.15,1.9 1.2,2.64 1.4,4.46 1.55,0.76 2.24,0.37 1.04,2.01 -0.17,1.69 1.08,1.86 -0.44,2.99 -1.42,0.96 -2.53,-3.66 -4.34,-2.06 -2.98,-1.4 -5.14,1.63 -8.13,0.38 -2.22,0.17 -4.52,-1.28 -6.44,-0.34 -1.8,-0.84 -3.54,0.72 -3.99,2.64 -1.51,-1.59 -4.97,-3.78 -5.35,0.02 -1.16,3.92 2.99,5.58 4.38,8.58 -0.13,1.41 -1.05,2.05 0.83,2.59 2.9,1.5 4.8,4.21 6.98,6.53 2.65,1.59 3.98,4.49 6.78,6.28l-0.16,0.23 0,0z\",\"name\":\"Croatia\"},\"dk\":{\"path\":\"m311.37,281.37c-1.81,-0.13 -3.63,-2.95 -0.99,-2.75 0.71,0.89 2.21,0.72 1.2,1.27 0.93,0.68 0.95,1.07 -0.21,1.48z m2.12,-1.04c1.35,-0.18 -0.34,1.13 0,0z m0.84,-0.24c-0.07,-1 -2.35,-2.59 0.16,-1.62 2.08,0.28 -0.51,1.71 -0.16,1.62z m-17.99,-0.84c-2.31,-0.88 -6.15,-0.22 -4.5,-3.71 0.81,-2.84 -1.69,-4.3 -3.84,-4.7 -1.19,-2.12 0.77,-2.92 1.79,-2.7 1.1,-1.9 -0.71,-4.04 -1.69,-4.68 0.35,-1.37 0.2,-5.41 0.68,-4.97 1.59,3.78 6.34,-5.25 4.96,-0.56 0.24,2.86 4.45,-0.07 2.01,-1.61 0.04,-2.03 -0.06,-3.57 2.27,-2.05 0.18,-1.79 3.93,-0.45 2.6,-2.4 -2.36,-1.07 -4.97,1.4 -7.44,0.51 -0.9,0.41 -2.06,0.6 -1.03,-0.46 2.89,0.74 6.43,-0.56 7.07,-3.76 0.42,-1.7 4.2,-3.59 3.75,-0.9 2.01,1.66 -0.21,4.73 -1.55,6.01 0.4,0.87 0.32,2.52 0.39,3.1 -1.16,1.34 2.36,4.31 4.12,3.09 1.32,1.67 -1.85,5.56 -2.69,2.65 -3.21,0.21 -0.77,4.74 -2.69,6.35 -0.74,1.02 -5.24,-0.82 -2.77,1.37 1.61,1.85 3.89,1.32 5.37,0.39 1.04,1.32 2.66,0.54 1.88,1.61 2.2,1.44 0.71,6.32 -1.89,3.8 -0.99,-0.9 -2.97,-2.42 -3.55,-4.38 -0.8,-2.14 -4.39,1.02 -3.28,1.06 2.19,-0.86 -0.04,1.87 1.38,2.68 -1.87,1.01 -1.25,3.06 -0.58,3.35 -0.3,0.27 -0.55,0.59 -0.78,0.92z m18.96,-2.29c-1.92,-0.02 -1.04,-3.7 -3.92,-2.81 -3.51,-0.09 0.22,-3.64 -2.76,-5.02 -1.79,-1.21 3.2,0.15 3.13,-2.28 0.04,-2.46 4.91,0.23 1.92,1.9 1.06,2.45 3.33,-0.76 2,-2.36 -0.51,-1.34 -2.25,-2.02 0.21,-1.96 2.33,-0.37 1.21,1.23 1.29,2.13 2.22,2.03 -1.98,3.78 -1.88,4.86 2.05,0.87 2.04,2.76 -0.28,2.66 -0.97,0.83 0.11,2.08 0.29,2.88z m-25.23,-19.54c-1.89,-1.51 1.09,-5.6 1.21,-4.99 -1.52,1.21 -1.11,3.3 -1.21,4.99z\",\"name\":\"Denmark\"},\"ru\":{\"path\":\"m558.98,364.3c-2.56,-0.91 -4.97,-2.14 -7.36,-3.43 -2.39,-1.15 -4.94,-2.06 -7.59,-2.35 -2.81,2.28 -5.5,-0.94 -8.06,-1.85 -1.23,0.3 0.78,2.15 -1.52,1.8 -2.42,-0.25 -3.69,-3.69 -6.4,-2.82 -1.31,0.16 -4.41,0.18 -1.55,-0.66 1.64,-0.7 0.81,-3.34 -0.75,-1.74 0.37,-1.63 2.93,0.94 3.87,-1 1.25,-0.31 2.74,-1.24 3.63,-1.06 1.16,-2.32 -3.44,-3.39 -1.08,-5.92 0.57,-0.81 -0.94,-4.08 0.12,-2.72 0.39,2.37 2.24,1.11 1.25,-0.78 -1.26,-3.41 3.86,0.53 3.04,-2.81 -1.97,-1.81 -4.99,-1.7 -7.55,-2.54 -2.06,-0.94 2.06,-1.24 1.86,-3.16 2.06,1.7 4.87,-1.76 1.32,-1.4 -0.21,-1.02 3.11,-2.69 3.56,-4.64 3.16,0.27 3.03,-5.1 -0.28,-4.48 -2.62,0.21 -2.08,3.91 -4.95,4.14 -2.31,1.85 -0.59,-0.97 -1.26,-1.15 -2.27,0.02 -1.28,-3.82 0.48,-4.34 1.4,-2.13 0.73,-5.08 4.3,-4.68 2.91,0.1 4.24,-2.66 2.99,-5.05 -0.44,-0.81 1.31,-4.54 -0.5,-3.12 -0.89,0.38 -1.08,-3.79 -3.06,-2.28 -2.61,-1.85 3.34,-2.5 1.03,-4.59 -1.03,0.14 -4.3,0.91 -2.02,-0.74 1.96,-2.14 1.02,-4.53 -0.68,-6.4 1.16,-2.59 -2.93,-0.35 -3.64,0.61 0.41,-2.95 -3.61,-0.32 -4.74,-2.01 -1.3,0.69 -2.17,2.73 -3.44,0.57 -1.62,0.46 -2.9,0.42 -4.52,-0.03 -1.18,0.97 0.35,3.57 -1.91,1.94 -2.66,-0.03 -3.84,-4.48 -6.19,-3.24 -2.12,0.99 -3.16,6.03 -6.01,3.79 -0.55,1.88 -3.23,-1.75 -4.12,0.93 -2.26,2.15 -4.17,-0.6 -4.14,-2.64 -1.31,-0.74 -1.67,-2.47 -1.76,-3.17 -1.84,0.68 -2.55,-1.54 -3.04,-1.81 -1.53,1.29 -5.9,2.64 -6.27,0.53 -0.46,-1.43 -3.35,-2.71 -0.58,-3.43 0.87,-2.91 -3.85,-2.55 -4.29,-5.27 -1.34,-1.28 -2.82,-2.7 -4.07,-0.62 -2.6,-1.29 -3.34,1.16 -4.86,2.57 -2.29,-0.64 -4.88,0.47 -3.99,3.28 -1.64,3.09 -5.33,-1.16 -5.28,-3.38 0.29,-1.54 -1.99,-0.85 -0.93,-2.73 -1.04,-1.23 -5.06,-2.53 -2.44,-4.58 2.85,1.31 6.86,-0.11 6.98,-3.34 2.36,-1.51 -0.16,-3.89 -1.6,-4.2 -0.58,-2.91 -4.71,-0.88 -5.61,-1.07 0.65,-2.69 -1.62,-3.41 -3.71,-3.4 -2.11,-1.16 -3.32,-2.8 -3.81,-4.83 -2.42,0.17 -3.41,-1.67 -2.18,-3.83 -0.02,-1.71 -2.9,-2.44 -1.99,-4.84 -0.01,-1.79 -0.45,-2.87 -2.15,-2.08 -2.12,-2.07 -5.85,-2.66 -7.51,0.31 -0.95,2.92 -2.17,-0.33 -1.92,-1.55 -1.94,-2.34 -4.43,2.65 -5.64,-0.22 -1.71,0.04 -3.09,1.26 -3.28,-1.31 -0.9,-2.65 -2.85,-5.01 -4.71,-6.53 -1.83,-1.02 1.04,-5.27 -2.45,-5.76 -1.67,-0.51 -0.04,-2.71 -2.19,-1.57 0.05,-1.42 0.26,-2.99 1.68,-3.72 -0.54,-0.99 -1.34,-2.16 -1.45,-2.96 -2.84,-0.69 -1.01,-4.26 -2.77,-5.86 -2.08,-2.24 0.85,-4.53 0.39,-6.92 -1.01,-2.41 3.22,-2.6 0.55,-4.16 -0.83,-1.3 -2.35,-4.31 0.18,-2.28 1.51,-0.56 0.02,-3.79 2.55,-2.16 2.03,-0.4 0.55,-4.34 3.6,-3.39 1.61,0.41 6.06,0.64 4.72,-1.87 -2.47,0.38 -3.46,-3.31 -5.66,-1.7 -1.73,1.59 -3.35,0.22 -4.28,-0.75 -2.83,1.04 -0.5,-5.97 -3.43,-3.33 -0.79,1.95 -3.72,3.09 -1.67,0.48 4.94,-7.07 7.08,-15.55 9.98,-23.55 0.44,-3.03 2.51,-7.51 -0.31,-9.8 -2.38,-1.89 -5.29,-2.93 -7.96,-4.32 -3.88,-1.06 2.38,-6.07 -1.12,-8.02 -2.45,-0.36 -4.96,-1.94 -3.33,-4.47 -1.48,-1.21 -6.02,-2.28 -3.05,-4.86 0.42,-0.7 -3.23,-0.64 -2.08,-2.79 0.39,-2.06 -0.85,-2.94 1.09,-3.89 -0.82,-2.4 -2.73,-4.51 -4.14,-6.68 -1.51,-2.32 -3.78,-4.06 -5.41,-6.21 -0.98,-3.34 2.21,-6.3 1.62,-9.59 -0.91,-2.31 -3.95,-2.73 -4.86,-5.04 -3.1,0.98 -6.11,-2.82 -4.58,-5.63 1.26,-2.13 -3.52,-2.39 -0.66,-3.49 1.51,-2.49 0.64,-5.59 3.12,-7.72 -0.6,-2.56 3.46,0.62 3.16,-2.41 -2.11,-2.17 1.85,-1.54 2.99,-1.35 2.03,1.63 4.11,1.29 6.52,0.08 0.37,0.23 -0.76,2.57 1.13,2.81 -1.22,0.77 -1.32,4.65 0.4,2.88 0.2,-1.73 1.36,-3.42 1.9,-5.04 3.21,0.08 6.07,-1.95 9.29,-1.34 2.75,0.76 5.58,1.26 8.28,2.2 2.14,0.82 4.03,2.32 6.18,3.01 2,-1.35 5.54,1.61 7.21,-0.07 2.23,0.7 3.31,3.46 5.54,1.69 1.16,1.01 0.65,2.43 2.18,2.82 1.01,2.1 3.8,2.21 3.29,5.21 -0.09,3.44 0.15,7.2 -2.11,10.07 -2.26,3.09 -6,5.79 -10.02,4.97 -2.84,-0.74 -5.34,0.99 -8.08,1.16 -2.01,0.97 -5.49,-2.15 -6.54,-0.13 -1.33,0.97 -2.24,-0.89 -2.89,-1.46 -1,2.57 -7.21,1.52 -6.06,-1.62 -0.53,-0.64 -4.07,0.19 -5.44,0.48 -1.33,1.22 -0,2.41 1.25,1.32 2.16,-0.38 0.62,2.19 3.06,2.74 1.23,1.53 6.57,0.25 5.42,2.51 -1.91,3.1 2.22,0.91 3.81,1.72 2.09,0.58 5.78,2.19 4.56,4.13 2.75,1.59 0.23,3.96 -0.48,5.25 2.3,-0.18 4.43,1.99 4.35,4.27 2,-0.84 0.78,1.8 1.68,2.47 0.1,3.23 4.49,3.53 6.69,2.22 2.28,0.22 3.06,3.83 6.02,2.68 3.14,0.7 6.51,-0.4 7.17,-3.81 0.24,-2.71 -4.02,-6.69 -5.49,-3.3 -2.65,0.34 -5.44,-2.93 -6.7,-4.13 2.45,-0.62 0.68,-2.65 0.87,-3.74 2.98,-0.53 5.18,2.7 8.25,1.24 2.42,-0.59 5.57,1.81 7.6,-0.26 0.47,-1.42 5.9,0.3 3.69,-2.76 -1.12,-2.61 -3.65,-4.39 -6.37,-5.3 -3.26,-1.55 -1.48,-4.68 -0.67,-7 0.13,-2.98 3,-4.72 3.48,-7.44 -0.29,-1.95 -0.01,-6.22 2.42,-3.58 1.94,-2.25 5.82,-1.29 7.83,0.68 1.2,2.1 3.32,0.53 1.22,-1.06 -2.48,-1.87 -1.81,-4.87 -2.24,-7.47 -1.88,-1.57 -2.53,-5.38 -5.87,-5.07 -3.66,0.72 -1.05,-5.18 -3.4,-6.67 -1.19,-0.92 0.46,-3.75 -1.48,-3.55 -1.01,-2.39 -5.64,-2.94 -6.17,-3.55 2.64,0.97 4.98,-0.76 6.95,-2.52 2.55,-2.21 4.69,1.32 7.17,1.82 2.66,0.14 2.98,2.58 0.58,3.55 -1.44,1.01 -3.37,2.5 -1.86,4.15 -2.05,2.82 1.45,5.04 4.18,4.46 2.24,0.66 3.9,4.74 5.89,0.83 -0.45,2.74 1.7,0.82 1.6,-0.76 0.67,-1.92 4.97,-2.44 2.12,-4.7 -0.88,-2.08 -0.93,-5.08 -2.83,-6.29 1.51,-0.41 1.74,-3.36 4.33,-3.14 0.74,-1.52 -4.26,-0.47 -1.65,-2.01 1.38,-2.03 1.95,-4.13 2.25,-6.48 -0.71,-3 2.32,-4.04 2.61,-6.78 0.79,-1.07 0.87,-3.3 2.02,-0.85 0.37,3.39 3.79,-1.54 1.28,-2.71 -2.87,-0.55 -1.44,-3.38 -0.47,-5.41 0.59,0.58 1.75,-1.54 1.49,0.66 0.07,2.26 4.9,2.03 2.07,4.51 -3.06,1.89 2.52,2.73 3.16,0.29 0.8,-0.58 2.28,-0.85 1.45,-2.12 2.18,1.11 3.08,-1.11 1.14,-2.24 -0.63,-3.15 1.27,-6.2 4.04,-7.12 3.15,-0.33 1.76,-4.5 2.46,-6.7 2.68,1.91 1.44,-1.23 0.17,-1.57 -0.24,-1.73 3.07,-1.64 3.49,-0.99 -0.52,3.68 4.93,5.45 5.98,1.6 -0.74,-2.19 -4.02,-2.52 -1.51,-4.94 1.37,-2.71 -0.97,-5.14 -3.64,-5.47 -2.06,-0.69 -6.98,-0.83 -4,-3.86 -2.84,-2.24 1.77,-2.66 3.14,-4.1 2.67,-3.27 6.84,-5.01 10.97,-5.41 2.08,0.66 3.04,-0.42 5.04,-0.78 3.26,-0.69 5.53,-2.7 8.88,-1.89 1.83,0.09 3.72,-0.92 5.18,-0.23 3.3,-0.51 -0.59,-3.78 0.31,-4.05 7.13,0.01 14.26,-0.01 21.38,0.01 2.09,0.14 -2,3.01 0.93,2.93 1.33,0.5 2.97,0.39 1.78,1.28 0.04,1.2 -0.09,5.95 -1.36,3.75 0.88,-1.97 -1.47,-3.03 -1.4,-0.65 -0.13,1.49 -3.77,0.21 -3.69,2.55 -3.37,1.5 0.23,4.73 2.72,4.05 3.82,-0.71 6.21,-3.84 8.09,-6.94 1.84,-0.32 4.98,-2.24 2.66,-4.31C557.34,3.94 555.66,1.55 558.62,2.18c40.17,0 80.35,0 120.52,0 0,32.42 0,64.83 0,97.25 -2.09,0.36 -2.95,2.3 -1.54,3.74 -2.44,-1.53 -2.16,1.82 -2.17,2.03 -1.83,-0.06 -0.41,-2.79 -2.86,-3.06 -0.55,-1.54 -1.56,-2.65 -3.54,-1.77 -1.52,-1.23 -4.42,-2.86 -6,-3.08 -2.3,1.54 0.4,6.71 -3.71,5.55 -1.63,0.21 -3.74,1.9 -3.4,2.86 -1.22,-0.25 -2.92,1.14 -1.43,2.07 -2.82,1.19 1.7,2.9 -0.94,4.55 -2.72,2.09 2.48,0.44 1.29,3.06 -2.53,0.4 -0.3,2.61 -2.09,4 -0.4,3.26 -2.41,5.93 -3.86,8.82 0.28,0.79 -3.1,0.12 -1.27,1.6 -1.02,2.01 -3.11,4.53 -0.2,6.39 -2.52,0.22 -3.43,3.38 -5,5.17 -0.91,1.5 1.12,2.54 -1.32,2.93 -1.23,2.37 -2.15,5.27 -3.97,7.32 1.46,1.7 -3.54,1.33 -2.2,4 0.89,0.84 -2.06,0.35 -2,1.51 -2.16,-0.19 -3.58,4.12 -1.57,4.8 2.75,-1.67 -0.46,5.07 2.92,2.57 1.47,-1.64 1.11,3.68 3.89,2.06 1.15,-1.3 4.64,-3.43 5.55,-1.97 -0.97,2.34 -5.83,2.91 -5.32,5.59 1.65,1.51 -1.67,5.32 2.05,4.87 0.58,1.25 3.67,-0.2 3.17,2.56 -0.46,2.07 -2.09,3.57 -1.96,5.92 -2.28,1.79 1.99,3.07 3.27,1.27 1.22,3.88 3.54,-2.53 5.73,-0.07 1.71,0.15 3.48,-3.04 4.82,-0.75 0.7,2.54 3.93,4.85 1.33,7.39 -0.96,2.05 -3.49,5.21 -5.83,2.98 -2.18,1.39 0.8,4.71 -0.35,6.74 -1.64,-3.35 -4.19,2.67 -7,1.13 -1.58,0.37 -1.77,-1.65 -2.62,-1.81 -0.7,0.72 -4.76,0.36 -3.34,1.66 -0.36,0.87 -3.77,2.22 -1.73,4.23 -0.31,2.89 -2.88,-1.51 -4.31,1.09 -1.46,1.61 -3.55,2.49 -3.46,4.75 -0.41,1.43 -0.54,3.48 -0.05,5.34 -0.27,1.74 -0.64,1.81 -2.46,1.7 -2.35,1.24 -5.67,-2 -7.94,0.36 -1.02,1.19 0.11,2.72 -2.11,2.54 -1.91,-2.74 -5.13,1.42 -6.94,-1.53 -3.68,-1.24 -4.83,6.16 -8.08,2.91 -0.68,-0.31 -3.05,-3.22 -2.23,-1.07 0.44,2 -3.21,4.32 -1.91,5.59 -1.58,-0.54 -1.24,3.52 -1.64,0.7 -1.39,-2.07 -3.9,0.94 -5.63,0.87 0.37,1.37 0.82,0.9 -0.34,1.77 -0.21,2.03 1.56,4.11 -0.43,6.09 -0.26,2.82 -3.85,3.15 -3.39,6.04 1.82,1.79 -0.1,4.43 -1.07,6.43 -3.76,0.87 1.99,2.12 2.03,4.1 0.89,1.78 3.76,2.19 1.71,4.57 -2.3,2.9 -5.15,-1.81 -7.83,-2.01 -3.78,-1.12 -4.32,3.77 -2.19,5.82 -2.31,2.78 -0.33,6.19 0.38,9.1 0.77,1.86 4.43,0.77 3.16,3.54 -0.62,2.49 -0.11,4.99 0.21,7.43 1.17,3.44 5.88,-1.22 6.9,2.2 0.63,0.39 -1.33,1.3 0.64,1.71 0.61,2 4.71,2.89 4.1,0.07 2.42,-0.19 4.16,-3.38 6.65,-1.26 2.61,1.3 4.67,3.68 7.51,4.49 2.44,-0.41 2.29,3.63 -0.15,2.17 -3.16,1.33 0.69,4.72 2.95,3.33 2.69,-1.74 4.67,2.16 2.98,3.28 -1.53,-1.48 -3.23,1.37 -1.51,2.46 -1.66,0.09 -1.17,4.59 -3.15,5.57 -2.16,-0.57 -0.01,3.21 -2.03,1.18 -1.51,-0.51 -1.63,0.74 -2.82,1.17 0.46,1.78 3.76,-0.82 2.44,1.78 0.45,1.46 -0.73,2.48 0.5,3.94 -0.91,1.42 1.06,4.29 -0.87,5.01 0.89,2.05 -1.39,4.46 -0.11,6.57 1.6,2.36 2.84,-1.08 4.63,0.84 2.19,0.61 6.36,2.5 5.42,5.48 1.51,1.9 3.6,2.8 3.89,5.79 1.08,1.98 3.28,1.24 4.3,3.24 2.25,0.68 4.45,1.39 6.37,2.79 1.16,1.48 3.78,2.23 4.69,2.86 -0.38,2.65 -2.37,5.25 -1.49,7.93 0.05,2.46 -6.1,4.34 -5.15,1.14 -2.52,-0.74 -5.24,-0.5 -7.55,-1.88 -1.49,0.54 -3.24,0.69 -4.5,0.55 -1.71,1.13 -6.19,1.11 -5.4,-1.84 -0.88,-3.94 -4.63,1.38 -6.95,-0.97 -1.81,-1.22 -2.73,1 -2.64,2.13 -3.4,-2.47 -4.1,3.12 -6.37,4.33 -1.56,1.14 -0.42,-3.07 -2.75,-1.69 -2.4,0.37 -5.28,1.01 -7,-0.66 -2.78,0.67 -5.63,0.98 -8.42,1.61 1.94,1.66 -2.76,2.56 -3.79,2.43 -2.67,-0.72 -5.06,0.99 -7.69,0.02 -2.34,1.37 -6.27,0.31 -6.05,4.11l-0.04,0.01 0,0z m57.81,-33.85c-0.89,-1.57 0.49,-2.17 0,0z m-241.23,-51.26c-1.5,-0.26 -4.88,0.4 -5.3,-0.46 2.59,-1.58 -0.9,-5.56 2.71,-5.44 2.09,-0.97 5.31,1.36 6.88,-1.15 -0.17,-1.75 -1.39,-4.59 1.04,-3 2.58,1.66 5.83,-0.05 8.09,1.03 2.4,1.17 -0.19,4.14 1.51,6.12 -0.91,2.05 -4.72,1.7 -6.85,2.38 -2.67,0.39 -5.38,0.53 -8.08,0.53z m245.17,-54.27c-0.96,-0.5 -1.79,-4.14 -0.7,-1.7 0.41,0.34 1.1,1.13 0.7,1.7z m15.47,-62.08c-0.5,-1.68 1.86,0.26 0,0z M392.43,81.96c-1.18,-1.24 -0.52,-3.74 1,-1.58 0.97,0.64 4.51,-0.85 3.11,1.22 -1.28,-0.1 -4.06,-2.2 -4.11,0.36z m69.72,-22.48c-3.13,-0.37 -5.18,-4.96 -3.51,-7.6 1.49,-0.95 5.9,-1.19 6.08,0.31 -0.75,2.23 0.93,5.01 -1.2,6.83 -0.37,0.32 -0.88,0.46 -1.36,0.46z m1.2,-32.66c0.64,-1.98 -0.94,-1.7 -1.81,-2.37 0.83,-0.97 3.57,-1.76 1.01,-2.23 -1.29,0.52 -2.78,0.7 -3.28,0.14 -1.2,0.89 -3.04,-4.18 -2.96,-0.9 1.94,3.97 -3.66,-2.01 -2.98,1.25 2.3,2.87 -2.86,2.37 -3.53,0.29 -1.84,-1.41 -2.9,-5.04 0.07,-4.98 -0.36,-1.21 -1.52,-2.86 -0.18,-4.45 -3.01,0.94 -0.61,-2.79 -2.49,-3.65 -1.26,2.21 -4.03,0.25 -1.58,-1.13 2.3,-1.91 -4.09,-1.91 -1.43,-4.6 0.66,-1.81 2.03,-2.29 3.79,-2.01 1.73,-0.33 3.25,0.66 4.85,0.17 2.53,-1.3 -3.03,3.08 0.48,2.2 3.11,-1.44 -1.22,5.41 2.65,3.83 2.34,0.52 1.33,4.72 3.21,4.64 2.81,0.65 4.59,3.49 7.55,3.98 2.95,1.5 6.52,1.02 9.42,1.43 -0.95,0.85 -5.31,2.46 -4.34,3.45 -1.86,0.24 -4.2,1.89 -2.01,3.36 -1.56,0.82 -3.63,-0.42 -4.9,1.06 -0.87,-0.61 -1.05,-0.3 -1.52,0.53z m23.35,-5.93c-1.68,-0.42 -4.33,-0.5 -2.76,-2.36 -1.89,0.07 -1.65,-3.14 0.36,-1.62 2.48,0.8 5.12,0.27 7.63,0.6 2.21,1.62 -2.46,4.83 -3.16,1.83 -0.45,0.12 -0.96,1.84 -2.07,1.55z\",\"name\":\"Russian Federation\"},\"mt\":{\"path\":\"m343.65,509.08c-1.52,-0.23 -1.75,-0.24 0,0z m1.95,2.72c-1.32,-0.63 -1.5,-0.7 0,0z\",\"name\":\"Malta\"},\"me\":{\"path\":\"m385.29,433.13c-1.98,-1.45 -3.12,-5.3 -6.16,-4.27 -0.68,-0.6 -0.46,-1.87 -1.44,-2.17 0.16,-1.66 0.06,-3.3 -0.89,-4.86 1.96,-1.05 1.28,-4.74 3.12,-5.09 1.81,3.01 2.14,-1.15 0.71,-2.43 2.24,-0.2 3.4,-2.11 5.57,-0.36 3.49,0.56 2.95,4.72 6.22,5.9 -2.5,0.45 -0.84,6.17 -3.72,4.67 0.19,-3.37 -2.81,0.5 -2.99,1.87 -0.8,1.83 -2.3,3.26 -0.46,4.87 0.08,0.47 0.4,1.59 0.03,1.87z\",\"name\":\"Montenegro\"},\"rs\":{\"path\":\"m397.48,431.57c-0.16,-2.49 -1.05,-5.46 -3.99,-5.18 -0.83,-1.86 -3.16,-3.89 -0.74,-5.1 2.42,-2.35 -3,-3.15 -2.73,-5.8 -1.28,-2.34 -5.16,-1.7 -5.47,-5.07 -0.61,-1.48 -2.43,-2.36 0.08,-2.14 2.37,-1.69 -1.79,-3.25 -2.79,-4.49 -3.49,-0.35 0.76,-4.99 -0.07,-7.08 -1.54,-0.41 -2.38,-0.6 -2.22,-2.53 -0.29,-0.9 3.52,-0.03 1.84,-1.89 -1.99,-0.46 -4.18,-1.03 -2.61,-2.61 0.5,-1.92 -2.64,0.29 -1.69,-2.2 -0.12,-1.58 -1.93,-2.81 0.65,-3.27 2.64,-1.35 4.3,-3.64 7.52,-3.04 2.34,-0.11 4.56,2.67 6.11,3.82 1,0.92 0.22,4.94 3.24,4.94 1.65,0.3 5.5,0.5 3.47,2.78 1.27,1.27 0.97,1.07 -0.4,2.22 0.32,1.47 3.21,0.4 3.09,2.01 1.78,0.14 4.21,-0.13 4.93,1.74 2.85,0.45 1.17,-3.79 1.99,-3.56 1.66,0.7 3.37,1 1.04,1.99 -1.64,2.21 4.19,3.86 0.86,5.71 -2.2,2.75 0.34,6.72 2.98,8.19 2.92,0.51 3.82,2.98 1.52,5.06 -0.82,0.05 -2.7,-0.25 -2.65,1.85 -1.23,2.37 3.66,5.04 -0.48,5.54 -2.42,1.11 -4.61,2.18 -7.35,2.39 -1.32,2.74 -6.31,0.55 -6.16,5.74z\",\"name\":\"Serbia\"}}});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.germany.js",
    "content": "/** Add Germany Map Data Points */\njQuery.fn.vectorMap('addMap', 'germany_en', {\"width\":592,\"height\":801,\"pathes\":{\"th\":{\"path\":\"m312.19,352.19c-2.73,0.22 -2.22,4.11 -3.64,5.97 -1.01,2.7 -4.71,2.26 -7.13,2.91 -2.52,0.84 -2.65,-2.93 -5,-3.11 -2.02,-1.67 -5.36,0.2 -4.98,2.55 -0.62,4.82 -6.22,6.91 -9.72,9.65 -2.98,3.28 -7.8,2.07 -11.1,4.73 -2.55,1.59 -5.81,3.14 -7.87,5.03 0.64,3.74 1.96,8.43 6.44,8.84 3.41,0.33 2.07,4.91 5.71,5.17 2.12,1.11 4.61,1.57 6.04,3.67 2.61,-0.18 1.95,2.83 0.13,3.41 -0.75,1.55 1.21,2.98 -0.06,4.88 -2.65,1.33 -1.59,-4.91 -4.58,-2.96 -2.15,1.14 2.24,4.28 1.18,6.62 -0.73,2.87 3.35,2.38 3.93,4.97 0.22,2.4 -1.82,4.2 -4.4,4.04 -1.89,0.05 -3.04,-2.14 -5.19,-1.69 -2.29,-1.13 -3.6,1.4 -2.29,3.19 0.92,3.27 2.06,6.86 1.64,10.24 -1.04,2.07 -1.35,6.09 -4.56,5.07 -2.5,-0.54 -3.05,2.78 -2.17,4.43 0.33,2.11 -1.94,1.58 -0.64,3.71 0.2,3.37 -2.96,5.74 -4.05,8.57 -1.46,3 3.1,3.73 4.61,2.61 -1.8,-1.67 -0.95,-4.04 1.83,-4.18 2.21,-0.46 5.52,-0.43 5.9,2.47 2.29,2.61 -2.68,2.96 -1.96,5.59 0.5,1.86 -0.79,8.31 0.95,7 1.72,-3.38 5.8,-2.18 8.88,-2.88 2.69,0.85 3.11,5.24 6.43,5.5 3.89,0.66 4.77,4.88 6.09,7.93 -0.55,3.14 2.45,3.82 4.54,1.98 0.31,5.02 5.89,6.45 10.06,7.19 -0.2,3.63 -1.27,7.43 0.53,10.84 2.35,0.1 5.18,2.71 7.07,1.85 0.03,-1.3 -1.32,-4.82 1.27,-4.26 2.07,-0.06 5.3,2.5 6.66,0.25 0.29,-2.71 -3.43,-1.58 -4.54,-3.52 -1.94,-1.64 -5.47,-2.54 -4.67,-5.79 -0.91,-3.55 3.89,-3.37 6.02,-4.77 2.87,-1.54 6.27,-0.65 9.38,-0.79 1.61,1.84 2.4,4.9 5.49,4.49 2.33,1.02 3.21,-1.38 4.71,-2.1 2.52,-0.39 4.79,2.85 4.64,5.17 -2.32,0.34 -2,2.87 -0.04,3.79 1.25,1.09 4.62,-1.62 5.78,-2.97 1.07,-2.95 1.98,-5.92 0.84,-9.01 0.33,-2.69 -1.49,-4.1 -2.06,-6.05 -0.35,-1.26 0.15,-3.52 1.89,-2.72 2.51,-0.54 3.16,-3.11 5.03,-4.31 2.41,-0.31 6.41,-0.25 6.75,2.81 -1.09,1.47 -1.71,2.75 -1.31,4.94 2.04,1.91 4.67,0.65 4.88,4.5 0.54,1.96 3.79,3.19 4.05,0.56 1.06,-1.74 3.34,-0.66 4.25,0.63 6.13,-1.07 12.67,-0.94 18.25,-3.97 -1.68,-0.65 -2.19,-2.46 -0.38,-3.31 1.4,-0.73 5.24,-2.7 2.32,-4.13 -1.1,-2.24 -4.24,-0.26 -4.55,-3.08 -1.3,-2.44 2.29,-4.28 3.11,-6.33 2.98,-0.71 2.97,-4.68 5.91,-5.31 1.95,1.54 1.58,4.54 1.16,6.72 1.66,-0.64 6.6,0.71 6.33,-0.74 -3.05,-0.17 -0.61,-3 1.2,-3.1 2.57,-1.22 5.33,-2.23 7.87,-3.14 1.72,-1.51 4.46,-4.54 0.25,-4.48 -1.74,-1.64 -3.31,-4.12 -3.69,-6.5 0.38,-2.82 0.28,-5.87 1.72,-8.41 0.89,2.58 5.82,0.77 5.81,-1.09 0.71,-1.83 4.18,-2.99 5.41,-0.97 2.56,-0.68 0.59,-4.69 3.44,-5.44 3.25,-1.87 7.85,-0.32 10.53,-2.97 -2.57,-1.55 -0.79,-6.34 -4.47,-6.16 -2.74,-0.84 -6.28,-2.6 -5.42,-6.03 0.8,-2.88 -3.5,-2.46 -5.15,-3.47 -2.87,-0.81 -6.3,-2.89 -8.61,0.02 -2.54,2.1 0.01,3.58 1.21,5.21 -0.17,3.21 -2.39,6.03 -3.68,8.9 -1.08,1.71 -2.42,1.35 -2.66,-0.64 -2.24,-4.02 -1.09,1.94 -3.66,-0.66 -2.71,-1.39 -5.95,-1.32 -8.59,0.19 -0.02,-4.6 -5.04,-6.77 -8.31,-9 -2.72,-0.06 -5.6,1.79 -8.33,0.1 -2.65,-0.52 -5.05,-1.27 -4.7,-4.45 -2.02,-1.11 -5.86,-2.21 -7.53,-1.16 -1.29,1.98 -3.84,1.06 -5.84,1.31 -1.81,-1.01 -2.04,-3.39 -2.5,-5.41 3.14,0.3 2.23,-3.59 0.51,-4.83 -1.37,-2.03 -4.15,0.89 -5.53,-1.6 -1.69,-0.96 1.02,-5.32 2.36,-2.94 1.62,-1.63 2.76,-3.73 4,-5.66 -0.78,-1.58 -4.12,-2.02 -3.47,-4.09 -2.15,-0.17 -2.01,-2.77 -1.75,-4.31 -4.91,-2.77 -10.54,-0.91 -15.84,-1.69 -2.69,-0.42 -5.41,-2.8 -8.03,-1.28 -1.99,0.45 -4.28,-1.52 -3.68,-3.5 0.86,-2.86 -0.76,-4.88 -2.35,-7.1 -1.55,-2.64 -4.98,-6.28 -2.16,-9.19 -2.47,-3.43 -7.17,-3.03 -10.89,-3.21 -0.41,0.09 -0.82,0.18 -1.23,0.27z m95.09,106.63c0.36,0.47 0.77,-0.65 0,0z\",\"name\":\"ThÃ¼ringen\"},\"sh\":{\"path\":\"m173.41,0.78c-1.96,2.02 -2.32,5.26 -3.72,7.72 0.61,-2.46 2.87,-3.44 4.94,-4.31 1.37,-2.31 1.87,-2.9 -1.22,-3.41z m-4.63,9.69c-1.37,3.14 -2.78,7.11 -2.63,10.16 1.42,-1.81 3.12,-2.33 4.66,-0.67 1.41,1.35 2.9,1.87 4.52,0.27 2.61,-1.53 -0.74,-0.41 -1.92,-1.16 -2.06,-1.81 -4.59,-3.55 -3.89,-6.71 -0.29,-0.68 0.25,-4.89 -0.73,-1.88z m16.78,8.5c-1.27,2.96 0.71,4.89 2.59,6.89 3.39,3 2.55,7.98 4.79,11.67 0.62,3.55 5.38,3.23 6.46,6.57 3.09,5.18 8.01,9.55 9.53,15.49 -0.32,3.65 -4.55,4.93 -6.72,7.41 -1.75,1.07 -3.73,2 -5.62,0.78 -2.44,0.59 -7.26,-0.45 -7.37,2.95 0.9,2.44 -1.97,3.88 -3.95,4.18 -1.94,-2.13 -2.52,-1.01 -2.77,1.45 -0.87,2.9 3.21,3.7 4.93,4.64 1.92,-3.3 6.38,-1.94 9.56,-2.06 2.21,2.21 1.18,5.9 0.57,8.61 -1.14,2.05 -2.44,4.23 -0.74,6.43 0.5,2.36 2.45,2.12 4.01,1.08 3.24,-0.45 3.19,4.26 4.78,6.16 2.07,2.16 -0.11,6.53 -3.11,5.16 -1.14,-1.75 -5.79,-1.46 -5.26,0.73 2.63,2.93 2.85,7.1 5.04,10.2 1.56,1.12 3.1,3.53 5.09,1.5 1.43,0.34 0.36,3.67 3.4,2.47 5.03,0.4 10.67,-0.76 14.8,2.92 4.21,3.5 4.64,9.55 8.23,13.45 3.79,1.81 5.25,6.01 5.59,9.84 1.82,3.22 5.7,4.78 8.7,6.74 2.98,1.76 2.45,-2.04 3.3,-3.87 0.32,-3.07 2.7,-3.68 2.95,-0.51 1.97,4.21 4.12,0.09 5.74,-1.98 1.13,-1.81 1.09,-3.61 3.84,-2.85 2.75,1.63 4.73,-1.94 6.94,-3.16 -0.04,-2.48 1.02,-3.47 3.73,-4.47 1.51,-1.18 4,-1.93 4.95,0.16 -0.92,3.02 -1.41,6.74 1.26,9.04 1.1,1.47 -0.59,3.76 -1.58,5.02 -3.72,1.55 -2.94,7.3 0.6,8.57 3.05,0.71 1.81,2.28 4.18,4.34 1.9,2.3 3.7,4.33 6.71,5.17 4.24,1.47 7.8,5.01 12.4,5.13 1.57,-2.96 0.71,-7.47 3.24,-9.94 1.76,-0.99 3.85,1.15 5.23,-1.34 4.78,-3.66 7.65,-9.11 11.5,-13.72 0.07,-2.89 2.79,-4.69 1.09,-7.69 -1.21,-2.36 -3.12,-1.39 -5.13,-1.38 -2.37,-1.11 -4.33,-3.37 -5.88,-5.25 0.57,-2.78 0.94,-5.55 -0.72,-8.01 -1.68,-4.33 3.4,-6.71 6.26,-8.75 2.76,0.39 4.62,-1.55 2.8,-4.28 -2.57,0.04 -0.18,-3.45 -2.47,-3.84 -2.6,1.03 -5.44,-0.16 -6.16,-2.94 -1.95,-2.52 -0.1,-5.31 2.05,-6.91 1.09,-2.74 3.32,0.44 5.2,-0.9 2.94,-4.13 6.93,-7.19 11.06,-10.05 2.63,-1.56 0.21,-5.06 0.5,-7.57 -0.21,-3.63 -1.2,-7.39 -0.01,-10.84 0.18,-2.96 -5.24,-0.47 -7.49,-1.07 -5.13,1.62 -7.3,9.04 -13.4,8.34 -3.13,0.69 -4.64,-2.86 -6.1,-4.84 -4.97,-2.87 -10.19,-5.54 -15.47,-7.76 -2.99,-1.52 -6.08,0.55 -8.5,2.13 -0.97,2.39 -2.38,4.59 -2.88,7.13 -1.56,-1.44 -3.01,-3.67 -0.84,-5.3 1.62,-1.77 -1.68,-4.84 0.9,-6.58 0.02,-1.27 -2.39,-3.21 -3.97,-2.94 -4.31,0.8 -8.65,1.68 -12.59,3.47 -2.43,1.23 -4.15,-0.86 -4.81,-2.94 1.24,-1.68 2.97,0.32 4.34,-1.22 3.92,-1.6 8.22,-4.79 7.48,-9.56 -0.08,-4.17 0.91,-8.43 -1.14,-12.32 -1.21,-3.12 -1.73,-8.59 -5.28,-9.18 -0.59,1.71 -1.3,5.52 -3.94,3.91 -3.94,-2.44 -5.62,-7.87 -10.62,-8.75 -2.4,-0.95 -5.92,-1.49 -2.94,-4.34 -2.83,-1.32 -4.46,2.91 -6.75,4.06 -1.81,0.77 -3.7,1.77 -5.55,1.1 -2.17,-0.1 -2.78,3.34 -5.32,2.53 -2.44,-0.17 -5.39,0.15 -5.47,-3.04 1.26,-2.25 -1.79,-2.35 -3.37,-3.29 -2.69,-1.82 -6.3,0.87 -8.88,-1.52 -3,-2.97 -8.01,-2.63 -12.09,-2.77 -2.73,-0.05 -5.94,1.35 -8.19,-0.63 -2.53,-0.79 -2.34,1.14 -3.28,2.91z M165.38,30.69c0.26,2.81 0.4,-8.09 0.17,-2.47 -0.06,0.82 -0.12,1.65 -0.17,2.47z m13.5,1.44c-2.38,0.11 -5.93,-0.19 -6.48,2.95 -0.84,2.31 2.84,2.19 4.01,3.33 2.08,0.12 5.59,1.6 6.02,-1.46 1.83,-2.49 -0.07,-5.86 -3.55,-4.82z m-11.97,6.41c-1.92,2.44 0.88,5.14 2.25,6.97 3.61,0.13 0.82,-1.45 -0.03,-3.16 -0.91,-0.75 -0.95,-5.89 -2.22,-3.81z M181.53,44c-3.16,2.07 3.2,-1.05 4.68,-0.94 3.57,-2.86 -4.04,0.86 -4.68,0.94z m-1.31,6.22c-3.19,-0.54 3.33,2.8 0.63,-0.13 -0.17,-0.12 -0.42,0.08 -0.63,0.13z m8.44,2.63c-1.5,0.95 -5.02,0.69 -5.3,2.69 0.04,2.05 2.12,3.65 4.01,2.44 0.45,-0.74 3.48,-5.42 1.28,-5.13z m142.28,2.25c-2.22,2.09 -3.42,5.93 -2.84,8.5 1.81,-1.93 6.45,-1.17 5.53,2.13 0.75,2.01 5.23,1.5 7.53,1.68 3.9,0.79 4.95,-0.34 2.64,-3.56 -1.78,-3.59 -4.09,-7.7 -8.61,-7.85 -1.38,-0.32 -3.03,-0.37 -4.25,-0.9z m-134.34,2.94c-1.42,2.56 1.08,4.09 3.5,3.69 1.95,-0.37 3.87,-2.9 3.63,-4.91 -2.37,-0.51 -4.91,-1.04 -6.76,0.98l-0.36,0.24z M140.06,88.88c-0.28,2.81 2.92,0.39 0,0z m48.13,13.38c-1.61,1.32 0.69,2.85 0.06,-0.03l-0.06,0.03z\",\"name\":\"Schleswig-Holstein\"},\"st\":{\"path\":\"m367.5,207.72c-2.53,0.49 -2.68,6.11 -5.69,3.88 -1.54,-0.27 -2,4.74 -0.62,6.28 -1.83,0.03 -4.69,1.23 -5.84,3.45 -2.16,1.75 -5.06,2.95 -7.73,3.81 -1.55,-0.32 -3.98,0.25 -4.38,-1.66 -3.96,-2.32 -9.18,-1.22 -13.69,-1.78 -0.82,1.11 0.07,3.08 -1.73,3.89 -1.82,3.69 -6.1,1.61 -9.28,2.54 -2.64,-0.11 -4.45,1.7 -3.62,4.38 -0.45,3.07 1.59,5.83 2.38,8.76 4.58,2.95 6.91,8.32 9.22,13.03 -1.02,4.14 2.73,7.03 5,9.88 -2.35,-0.75 -6.67,0.93 -4.41,3.78 2.13,2.7 4,5.66 7.03,7.25 2.19,1.61 0.12,4.97 -2.22,4.59 -1.88,2.15 -0.66,5.73 1.52,7.3 1.12,1.37 4.12,3.9 1.64,5.39 -1.82,-0.07 -4.08,1.44 -3.31,3.44 0.85,1.22 3.42,-0.32 2.88,2 0.05,3.3 -3.89,4.53 -5.42,6.71 -0.9,2.3 0.67,6.76 -2.83,4.48 -2.5,-0.5 -4.36,0.86 -6.64,1.31 -3.5,0.14 -7.17,-0.75 -10.56,0.56 0.56,2.46 -2.44,4.29 -4.71,3.94 -2.29,1.2 4.79,4.03 4.2,5.21 -3.3,0.45 -2.03,3.05 0.01,3.98 1.13,2.32 -0.87,4.55 -2.86,5.36 -2.94,1.53 -1.17,5.3 -1.3,7.86 2.06,2.6 4.65,5.37 5.72,8.78 -0.64,2.04 0.85,6.26 3.56,4.75 3.65,0.5 8.21,-0.2 10.69,3.16 4.64,-2.48 0.38,1.08 -0.35,3.49 0.67,3.87 3.9,7.06 5.79,10.42 0.02,2.22 -1.14,5.56 1.78,6.09 2.2,-1.04 4.22,-0.48 6.44,0.45 5.84,2.46 12.54,-0.89 18.17,2.38 2.32,0.62 -0.45,4.34 2.28,4.54 1.79,0.31 -0.33,2.19 2.35,3 1.69,0.92 2.02,2.61 0.5,3.94 -1.45,1.35 -2.21,4.99 -4.56,4.59 -2.63,-0.91 0.09,3.99 2.28,1.66 2.83,0.66 5.62,4.8 3.25,7.41 -2.57,1.08 1.05,5.18 3.56,3.71 1.96,-0.79 2.91,-2.94 5.65,-1.43 2.6,0.08 6.05,0.91 5.78,4.15 1.33,1.52 4.58,2.03 6.72,2.37 2.49,-0.44 5.14,-1.91 7.2,0.43 2.77,1.74 6.17,3.82 6.94,7.21 2.79,-1.13 5.73,-0.73 8.41,0.53 1.23,-2 2.73,-1.49 3.69,0.66 0.59,3.07 2,-0.72 2.48,-1.83 0.83,-2.27 3.92,-5.75 0.2,-7.01 -1.99,-2.12 2.54,-4.35 -0.47,-5.52 -3.54,-1.32 0.06,-3.71 -3.77,-3.68 -1.13,-1.82 -0.14,-5.31 -0.45,-7.77 0.09,-3.62 -2.36,-6.17 -3.27,-9.5 -2.24,-2.8 3.78,-1.95 2.18,-4.77 -0.27,-3.83 -1.97,-7.24 -2.66,-10.91 1.12,-2.57 2.7,-5.07 2.75,-7.88 2.68,-2.78 6.09,-4.94 9.75,-6.06 4.81,0.08 9.58,-1.34 13.94,-3.25 0.29,-3.17 3.92,1.99 5.64,-1.8 0.58,-1.59 1.27,-4.54 3.8,-3.39 2.22,1.16 4.46,1.71 7.03,1.3 4.79,-0.31 9.85,0.27 14.45,-1.01 2.63,-2.16 7.03,-3.34 7.55,-7.13 -2.51,-3.21 -2.57,-7.84 -4.05,-11.66 -1.56,-2.32 0.46,-2.56 1.11,-3.49 -1.21,-1.69 -2.84,1.88 -4.93,0.87 -3.35,0.33 -4.21,-4.14 -7.34,-4.73 -1.95,-1.81 -4.21,-0.39 -6.46,-1.61 -1.95,-1.37 -5.09,-1.98 -5.86,-4.32 -2.25,-0.71 -4.5,-3.34 -6.75,-2.88 0.04,3.1 -4.02,3.62 -6.31,2.65 -6.29,-1.76 -13.04,-4.4 -16.59,-10.25 -1.82,-2.88 -4.27,-5.73 -5.88,-8.53 1.69,-2.65 1.92,-5.52 1.61,-8.56 0.08,-3.49 1.94,-6.54 3.57,-9.44 -0.44,-3.76 -2.35,-8 0.31,-11.34 1.69,-3.42 -2.77,-5.17 -4.84,-4.84 -0.77,1.84 -4.03,2.12 -4.73,-0.07 -3.16,-2.02 -0.66,-5.45 -0.28,-8.33 0.25,-2.72 1.68,-3.75 3.82,-4.6 0.52,-2.45 0.69,-5 -1.29,-6.86 -2,-2.13 -0.72,-5.29 -0.24,-7.76 2.19,-2.1 2.75,-4.3 1.28,-7.4 -0.37,-2.87 -3.52,-1.27 -5.2,-0.49 -2.2,0.23 -1.98,-4.35 -5.66,-2.08 -3.04,0.71 -6,0.64 -8.83,-0.79 -2.04,-1.1 -6.47,-1.05 -6.16,-4.18 0.48,-0.96 2.72,-2.17 0.45,-2.84 -2.36,-0.92 -4.97,-4.41 -7.35,-1.78 -2.26,0.12 -3.78,-2.34 -5.44,-3.56 -1.33,-1.14 2.25,-2.99 -0.03,-2.78z m-35.72,88.19c-0.1,0.03 0.04,0.06 0,0z\",\"name\":\"Sachsen-Anhalt\"},\"sn\":{\"path\":\"m438.91,347.22c-0.71,1.7 -1.23,3.74 -3.22,4.5 -2.58,1.63 -3.52,-1.1 -5.94,1.53 -4.3,1.22 -8.55,2.77 -13.09,2.53 -3.01,1.74 -7.34,3.17 -8.45,6.62 0.03,3.26 -3.77,5.91 -1.75,9.19 1.33,3.2 1.78,6.8 2.19,10.31 -4.06,0.29 -2.18,3.87 -0.74,6.17 2.24,3.72 1.36,8.42 1.53,12.58 2.6,-0.28 2.73,2.06 3.18,3.2 1.51,2.44 3.44,1.13 5.41,0.39 3.7,1.5 8.18,1.88 11.41,4.16 0.74,1.94 -0.81,4.85 2,5.77 1.72,1.99 6.37,0.62 6.03,4.01 -0.35,2.66 3.75,3.98 1.22,5.97 -3.58,1.98 -8.34,0.37 -11.41,3.34 -0.07,2.05 -0.66,4.73 -3.19,4.69 -0.84,-2.38 -4.84,-0.74 -3.91,1.56 -2.16,0.55 -4.73,2.38 -6.75,1.41 -0.26,3.26 -1.99,6.93 0.66,9.67 0.13,3.51 6.2,1.64 4.46,5.11 -1.54,2.13 -3.26,4.42 -6.11,4.51 -2.19,1.15 -4.93,1.82 -6.85,3.17 1.14,0.4 3.92,-0.58 2.97,1.81 -1.3,0.56 -2.71,1.18 -4.15,1.04 -1.87,-0.95 -6.83,1.68 -5.71,-1.56 0.5,-1.28 0.39,-7.08 -1.74,-3.97 -0.56,2.99 -4.53,3.58 -5.56,6.44 -1.97,1.1 -1.24,4.78 1.19,3.64 1.33,1.03 5.21,3.22 2.79,5.13 -0.59,1.68 -5.69,2.39 -2.69,4 2.14,0.67 3.79,2.61 5.05,4.37 -0.72,2.68 -0.54,4.28 2.54,4.44 2.89,0.5 5.02,2.48 7.96,1.72 3.8,-1.14 4.85,3.42 6.85,5.61 1.23,2.16 4.76,5.08 2.59,7.58 -0.49,1.72 3.93,3.14 3.09,0.38 -2.48,-2.46 -0.08,-6.44 1.28,-8.97 2.86,-4.57 6.53,-8.74 9.94,-12.84 4.56,-2.02 9.99,-0.84 14.06,-4.03 2.14,-0.66 4.2,-3.73 6.38,-3.05 2.63,1.52 5.07,3.45 7.78,4.83 2.07,-1.12 5.11,-3.24 4.13,-5.91 0.2,-2.04 -0.2,-5.69 2.84,-5.24 2.59,-0.29 5.2,-0.72 7.63,0.55 2.91,-0.54 1.72,-4.96 3.88,-6.45 2.35,-2.97 5.63,-5.26 8.68,-7.26 2.67,-0.81 5.51,3.8 7.01,0.39 1.65,-1.64 3.72,-4.3 2.58,-6.74 3.93,-2.17 7.47,-5.47 12.25,-5.22 2.33,-0.49 4.94,-0.78 7,0.62 2.41,-0.15 5.15,-2.09 4.01,-4.81 -1.95,-3.53 3.27,-1.43 5.18,-3.05 2.77,-1.08 6.09,-1.25 7.96,-3.69 5.86,-2.9 11.49,-6.39 17.78,-8.32 1.88,-3.11 -0.76,-3.48 -3.2,-3.83 -2.51,-0.45 -4.28,-2.72 -5.9,-4.48 1.17,-2.33 1.01,-5.72 3,-7.44 2.01,-0.54 2.32,2.64 4.53,2.3 2.11,1.26 6.52,1.34 7.5,-0.58 -0.17,-3.74 3.64,0.67 5,1.7 3.7,2.16 4.3,6.67 5.45,10.42 1.49,2.62 -2.09,6.06 2.42,6.33 2.67,0.89 5.37,2.57 8.28,1.87 0.47,-3.78 1.26,-7.7 4.06,-10.39 2.84,-3.18 3.04,-7.91 3.71,-11.62 2.05,-4.17 1.85,-9.14 2.71,-13.74 0.26,-3.07 0.84,-6.1 1.99,-8.91 0.22,-5.15 -3.62,-9.39 -5.25,-14.09 -0.63,-2.47 0.48,-5.37 -1.69,-7.4 -2.96,-2 -6.81,-2.81 -10.16,-4.16 -2.63,0.45 -5.28,-0.92 -5.64,-3.77 -0.41,-2.32 0.72,-4.39 -0.77,-0.54 -0.78,2.23 -4.07,1.99 -5.91,1.44 -0.89,-2.72 -3.76,-2.22 -5.89,-1.05 -2.43,0.03 -4.2,1.93 -3.78,3.04 -2.98,-1.35 -5.85,1.55 -8.48,2.42 -3.55,-1.67 -7.51,-1.35 -11.28,-1.56 -3.58,3.73 -3.22,9.41 -5.54,13.67 -1.24,3.16 -4.34,3.42 -7.26,3.89 -3.26,1.02 -6.88,-0.1 -9.67,2.35 -1.59,0.79 -4,-0.13 -5.49,-0.56 -4.01,0.9 -8.8,0.36 -12.18,-2.44 -2.57,-1.34 -4.55,-3.47 -6.76,-5.28 -2.23,1.37 -5.63,2.37 -6.56,4.87 -0.02,1.86 -4.09,1.87 -5.44,1.29 -1.42,-2.13 -2.64,-3.94 -1.26,-6.61 0.56,-3.54 0.3,-7.09 -1.63,-10.2 -0.72,-1.89 -2.32,-5.98 -4.72,-4.31 -2.79,1.33 -2.48,-5.48 -5.68,-3.53 -5.59,0.15 -11.31,0.77 -16.84,0.31 -1.25,-0.57 -2.44,-1.63 -3.94,-1.22z\",\"name\":\"Sachsen\"},\"sl\":{\"path\":\"m63.72,553.88c-2.9,2.18 -6.1,2.82 -9.5,4.44 -3.47,4.51 -10,4.1 -15.06,5.38 -4.6,0.18 -8.97,-1.26 -13.22,-2.78 -2.47,1.73 -0.51,5.04 -0.84,7.5 1.8,0.96 4.08,-1.32 5.97,0.4 2.44,1.62 5.28,3.2 6.78,5.81 -3.49,0.44 0.05,4.79 -0.09,6.94 1.05,3.41 4.13,4.95 6.56,7.16 1.79,1.94 0.3,5.34 3.04,6.13 2.43,1.92 -2.53,4.66 1.39,5.86 2.37,0.12 6.25,2.27 7.13,-1.09 -0.35,-2.25 -3.03,-3.71 0.38,-4.78 4.42,0.26 10.1,1.27 11.81,5.94 0.51,1.58 -0.22,5.5 1.56,5.84 2.33,-0.7 1.95,-7.32 3.65,-3.1 1.02,1.94 2.67,2.87 4.44,1.6 2.61,-0.08 5.35,0.47 7.44,1.84 0.63,-1.3 5.37,-2.76 3.56,-3.91 -1.62,-2.52 -4.36,-5.17 -3.81,-8.41 1.42,-2.72 5.03,-3.05 6.69,-5.31 0.32,-2.19 -0.19,-4.41 0.63,-6.91 -2.49,1.08 -4.55,-2.01 -6.84,-2.72 1.25,-2.57 -1.08,-3.33 -2.41,-4.88 -1.38,-2.57 3.05,-1.81 2.04,-4.46 0.15,-3.03 0.9,-7.08 -0.66,-9.48C81.13,563.37 78.01,559.23 75,558.25c-1.82,-1.1 -4.05,-5.12 -6.16,-3.76 -1.8,1.27 -2.93,1.15 -3.06,-0.42 -0.68,-0.01 -1.4,-0.33 -2.06,-0.19z\",\"name\":\"Saarland\"},\"rp\":{\"path\":\"m124.22,422c-3.08,1.37 -2.76,4.11 -2.15,6.91 -0.74,2.27 -2.92,4.57 -5.35,5.28 1.82,2.98 -1.68,6.02 -4.55,6.28 -3.87,1.42 -8.15,2.76 -11.74,4.31 -2.53,-1.67 -5.28,-0.25 -4.24,2.84 0.38,2.78 -1.77,4.53 -4.33,4.8 -2.21,0.9 -4.57,1.03 -6.93,0.89 0.24,-3.01 0.16,-2.77 -0.66,-0.16 -2.61,2.5 -6.78,2.21 -10.16,3.14 -1.7,1.36 -3.59,4.13 -6.33,3.09 -1.84,0.93 -1.47,5.36 -2.5,7.61 -0.31,2 -3.88,3.46 -5.32,1.71 -2.49,-2.13 -5.07,1.92 -3.92,4.39 -1.32,2.14 3.87,6.32 1.33,6.03 -2.57,-0.38 -4.98,1.47 -7.53,-0.25 -1.87,-0.86 -4.14,-1.17 -5.28,-3.06 -3.07,1.11 -6.64,2.41 -9.75,2.06 -1.18,-2.88 -5.27,-3.74 -3.13,0.21 0.06,1.85 3.77,4.69 0.04,3.72 -2.34,1.34 -4.33,-0.2 -6.47,-0.11 -0.71,2.72 -2.48,4.43 -4.99,5.59 -1.73,1.37 -5.12,2.04 -4.14,4.93 1.73,3.46 -1.97,4.26 -2.68,6.98 -1.38,4.14 -2.64,8.53 -0.77,12.73 1.47,5.09 3.95,10.18 7.71,13.93 3.19,1.73 6.27,3.8 8.6,6.49 1.94,2.68 4.29,-1.39 6.06,0.93 1.74,1.25 1.47,4.34 1.36,6.37 -1,5.55 -4.71,9.97 -7.61,14.63 -1.1,1.62 -3.21,1.58 -3.81,3.7 1.32,3.4 5.62,2.86 8.44,4.25 6.02,0.99 12.25,-0.27 17.78,-2.55 1.84,-1.13 2.94,-3.18 5.35,-3.48 2.7,-0.62 4.85,-2.4 7.33,-3.4 2.47,-0.56 3.3,1.96 4.66,0.63 1.69,-1.87 4.4,2.01 6.06,3.12 2.19,1.85 4.96,3.22 7.6,4.23 2.08,-1.3 3.07,-1.77 3.74,1 0.63,3.7 0.2,7.6 -0.21,11.34 -3.62,0.15 -1.02,2.73 0.84,3.34 -0.88,3.1 1.79,3.86 4.18,5.17 2.7,-0.99 3.7,-0.04 2.19,2.5 -0.63,2.28 0.81,4.56 -1.1,6.61 -1.8,1.77 -5.4,2.25 -6.16,5.03 0.5,2.47 2.45,5.22 3.88,6.72 0.53,-2.07 4.25,-1.3 6.09,-2.06 2.18,0.88 4.73,2.02 3.59,4.81 0.57,4.16 4.15,6.47 7.58,8.3 4.06,2.82 9.28,1.81 13.75,1.03 5.57,0.87 11.49,1.89 16.04,5.46 1.5,1.92 4.34,2.91 6.75,3.03 1.44,0.1 3.88,-0.46 4.75,1.03 2.73,-1.42 4.25,-4.04 4.38,-7.03 0.97,-3.35 4.62,-5.13 4.47,-8.92 0.59,-3.28 2.22,-6.72 1.35,-9.86 0.74,-2.94 4.48,-3.42 5.84,-6.03 2.45,-0.61 0.47,-2.16 -0.81,-2.44 -2.02,-2.71 2.93,-3.58 2.9,-6.17 0.3,-2.2 -0.42,-4.5 0.69,-6.55 -1.31,-0.77 -4.55,0.38 -4.34,-2.22 1.3,-2.38 -0.67,-5.57 -0.94,-8.16 -1.05,-1.55 -0.56,-3.22 -0.06,-4.81 -2.06,-3.14 -3.58,-6.56 -4.31,-10.28 -0,-3.21 3.88,-3.16 5.84,-4.38 1.83,-1.95 0.9,-4.67 -1.26,-6.04 -2.48,-3.08 -4.3,-6.94 -4.99,-10.83 0.78,-1.71 1.4,-3.41 0.25,-5.25 -0.12,-3.38 -3.6,-5.04 -5.13,-7.75 -2.86,-3.27 -7.52,-1.08 -10.66,0.56 -4.69,1.79 -9.52,4.51 -14.68,3.47 -2.44,-2.49 -4.42,-5.7 -6.29,-8.66 -2.19,-2.94 2.65,-2.19 3.79,-4.33 1.44,-3.52 5.56,-1 5.95,-3.31 1.05,-2.62 -4.12,-2.88 -2.51,-5.79 1.38,-2.83 4.79,-3.85 7.44,-4.63 1.92,2.63 5.73,-0.22 2.09,-1.81 -1.3,-2.26 2.57,-3.89 4.23,-2.24 3.08,0.46 1.96,-3.71 0.96,-5.33 -1.37,-3.08 -3.17,-5.78 -6.33,-7.23 -3.79,-0.63 -1.12,-3.37 -0.49,-6.08 0.24,-1.88 -1.87,-3.91 -0.43,-6.13 1.19,-2.18 3.39,-6.07 6.28,-3.97 1.67,3.39 3.78,0.05 4.16,-2.21 1.81,-2.05 -0.69,-2.3 -1.07,-3.97 -0.17,-2.37 -1.93,-5.43 0.13,-7.42 -0.88,-3.78 -6.22,1.19 -5.36,-1.83 1.28,-4.22 -5.99,-5.38 -4.53,-9.85 1.32,-2 0.84,-5.3 -1.94,-5.86 -1.78,-2.03 -5.71,-1.54 -6.82,-3.48 -0.21,-1.96 2.71,-4.06 -0.25,-4.94C125.29,422.08 124.64,421.87 124.22,422z\",\"name\":\"Rheinland-Pfalz\"},\"nw\":{\"path\":\"m177.25,263.34c-2.1,-1.63 -5.7,-1.31 -6.06,1.91 0.19,3.63 -4.48,4.11 -7,3.66 -1.11,-1.64 -4.06,-2.21 -2.35,0.66 0.52,3.14 4.56,4.05 6.57,6.26 1.92,1.46 2.52,4.49 2.62,6.8 0.18,2.64 0.19,5.1 -0.9,7.58 -1.32,1.99 0.48,3.83 2.46,3.92 3.25,0.58 0.3,2.71 -0.78,3.97 -1.55,0.88 -3.89,0.86 -4.75,2.84 1.66,2.95 -2.56,1.58 -4.29,1.1 -2.41,-0.95 -5.38,-1.98 -7.02,0.74 -2.16,1.92 -4.56,3.57 -7.26,4.5 -1.87,2.2 -2.96,-0.94 -5.46,-0.31 -2.18,0.39 -2.63,4.37 -4.84,2.75 -2.6,-0.41 -3.41,-2.28 -4.46,-4.35 -2.31,-1 2.21,-2.81 3.55,-2.98 3.51,0.2 5.07,-3.48 2.41,-5.69 -1.71,-1 -4.92,-1.05 -5.1,-3.81 -0.4,-2.56 2.07,-4.87 2.81,-7.19 0.91,-0.72 -1.83,-2.26 -0.5,-3.69 3.14,-1.64 1.45,-5.72 -1.26,-6.8 -2.05,-1.15 -4.05,1.71 -6.33,0.21 -2.51,-1.72 -6.07,-2.59 -6.27,-6.18 -0.22,-2.85 -2.57,-3.65 -4.96,-4.34 -1.35,-0.64 -3.78,3.65 -1.27,3.96 1.72,1.12 -0.74,4.19 -1.92,5.19 -4.58,2.06 -9.39,4.71 -12.83,8.28 -0.91,2.09 -3.91,0.71 -4.63,3.16 -3.68,0.16 -7.44,-1.07 -11.03,-0.19 -1.13,2.36 -3.53,1.5 -5.41,2.92 -3.3,2.56 -8.23,3.82 -10.15,7.67 -0.16,4.41 -5.85,3.29 -8.27,5.42 -1.07,1.95 -3.97,5.3 -0.36,6.02 2.12,2 6.43,3.97 4.59,7.5 -2.07,2.76 -4.18,5.76 -7.59,6.94 -1.43,-2.65 -3.58,-2.35 -5.97,-1.09 -2.93,0.68 -5.59,2.43 -8.37,3.24 -1.83,0.92 -6.4,-1.52 -6.2,0.14 1.25,2.44 1.32,5.11 -1.64,2.71 -2.84,-2.65 -6.23,-5.14 -10.34,-4.5 -2.26,1.13 -4.86,1.79 -7.57,1.91 -2.94,-0.3 -6.47,1.11 -7.66,3.97 0.91,4.49 1.78,9.09 3.5,13.31 3.65,0.48 3.87,3.28 3.59,6.38 -0.03,2.95 4.03,4.36 4.95,7.23 3.16,3.93 2.85,9.32 1.32,13.83 -1.07,2.64 2.37,5.59 -1.15,7.3 -2.71,3.53 -6.04,6.82 -8.16,10.71 -0.6,1.66 -1.81,5.57 0.42,6.15 1.79,-1.07 4.45,-3.48 6.03,-0.89 -1.83,0.74 -3.77,2.52 -4.63,4.79 -4.06,2.72 -7.88,5.86 -12.82,6.75 -2.54,0.57 -4.87,1.7 -3.17,4.63 0.65,3.73 2.86,3.68 5.9,3.34 1.73,-0.12 4.7,0.11 2.92,2.43 -1.62,2.73 0.97,3.7 3.18,4.3 2.89,0.68 -1.54,3.27 0.66,4.81 0.17,1.78 -1.03,5.56 -2.97,3.06 -2.7,0.41 -2.86,4.47 -3.11,6.49 1.25,3.17 3.86,4.98 6.86,6.32 1.73,2.64 2.03,6.34 4.88,8.31 -3.91,1.75 5.55,0.78 2.22,4.39 0.29,3.25 -5.37,3.94 -3.38,7.37 0.76,1.42 1.86,4.52 3.66,2.67 3.25,-0.44 6.22,1.26 7.36,4.35 2.36,2.77 -0.08,6.31 -0.45,9.15 2.56,4.82 -0.8,-1.03 2.06,-1.07 2.71,-1.06 3.44,4.11 6.19,2.53 2.75,0.37 5.82,-2.69 8.02,-1.5 1.92,2.23 5.39,3.01 8.14,3.37 3.72,-0.21 2.3,-1.41 1.51,-3.82 0.04,-2.95 -1.16,-6.55 2.63,-7.5 2,-1.69 3.89,3.12 6.16,0.31 1.15,-2.86 1.77,-6.3 2.41,-9.46 2.7,1.12 5.4,-0.08 6.75,-2.56 3.27,-1.13 7.52,-0.86 10.35,-2.91 0.37,-1.12 0.98,-4.32 2.62,-2.66 -0.82,3.1 2.33,2.44 4.39,1.84 2.3,-0.53 5.31,-1.22 4.81,-4.28 -0.51,-2.22 0.4,-5.33 3.3,-4.47 2.78,1.45 5.46,-1.31 8.27,-1.76 3.1,-1.68 7.91,-1.4 9.45,-5.05 -0.47,-2.98 -4.28,-3.7 0.44,-3.18 2.74,-1.08 5.31,-3.89 4.08,-6.99 -1.04,-2.52 1.87,-4.26 3.71,-5.24 2.21,0.36 5.37,2.16 3.03,4.28 -1.84,2.46 1.06,2.47 2.69,2.94 2.57,1.6 7.18,2.77 6.12,6.74 -0.22,1.83 -1.49,3.93 0.54,5.35 1.58,1.78 4.44,3.29 3.47,6.09 1.92,-1.91 4.28,0.75 5.25,0.78 1.15,-1.97 2.94,-4.17 0.84,-6.13 -1.97,-2.33 -1.27,-4.35 1.26,-5.9 2.67,-2.21 4.81,-5.42 7.75,-7.15 2.53,-0.53 5,4.12 6.81,1 1.81,-2.99 4.43,-5.63 4.94,-9.19 1.73,-1.11 2.77,-3.4 4.66,-4.63 0.39,-1.91 -1.57,-4.12 -1.75,-6.25 0.73,-3.23 4.88,-3.7 7.64,-2.9 1.98,0.85 4.51,0.77 5.94,-0.93 1.31,-3.2 3.81,-6.24 2.52,-9.88 -0.64,-1.84 0.53,-6.24 -2.48,-5.85 -2.48,0.46 -4.55,3.29 -7.13,2.53 -1.37,-1.68 -3.72,-3.65 -1.3,-5.48 2.34,-4.53 6.76,-7.46 11.73,-8.41 3.83,-1.47 7.94,-1.54 11.98,-1.11 1.92,-2.78 -0.9,-3.85 -1.9,-6.19 -1.82,-1.61 -1.41,-4.36 1.19,-4.68 3.14,-1.44 7.01,-2.83 10,-0.32 2.4,1.63 -0.27,3.86 1.25,5.59 1.92,0.62 4.04,0.65 4.63,-1.66 3.98,-3.61 9.19,-6.08 11.4,-11.26 1.23,-2.28 4.7,-5.14 4.82,-6.65 -1.68,0.55 -4.34,-0.05 -3.2,-2.36 0.05,-5.23 2.13,-10.09 3.74,-14.92 1,-2.69 -2.16,-5.66 -4.66,-4.72 -3.16,2.83 -0.64,-2.27 -0.81,-4.06 -0.05,-2.72 -2.54,-1.8 -3.99,-2.62 -2.61,-2.3 -7.4,-3.71 -6.62,-8.03 0.39,-2.34 -1.28,-5.79 0.83,-7.47 -2.23,-1.73 -1.62,-3.85 -2.5,-6.03 -2.65,-0.77 -5.5,-0.87 -7.39,-3.23 -1.18,-0.94 -5.31,-5.84 -2.07,-3.89 2.92,3.3 5.04,-1.41 4.58,-3.56 -1.6,-1.73 -4.39,-1.61 -6.02,-2.94 -1.48,-2.41 1.21,-4.72 1.94,-6.91 1.84,-2.01 5.4,-1.29 6.16,-4.38 1.42,-2.09 2.16,-4.3 0.81,-6.53 1.2,-2.26 2.95,-5.17 -0.91,-5.56 -3.17,-1.51 -3.6,3.21 -5.58,4.74 -1.93,2.12 -2.98,5.59 -6.39,5.38 -3.28,0.88 -6.88,0.85 -10.18,0.44 -3.79,-0.66 -2.03,-5.2 -2.58,-7.89 -0.63,-2.02 1.28,-4.76 -1.4,-5.81 -1.68,-1.96 -4.73,1.64 -6.71,2.05z m32.09,14.69c-0.04,0.06 0.1,0.03 0,0z\",\"name\":\"Nordrhein-Westfalen\"},\"ni\":{\"path\":\"m186.44,120.91c-5.6,0.51 -6.88,7.11 -8.44,11.54 -1.55,4.84 -4.41,10.19 -1.33,15.08 0.62,2.76 4.51,0.93 6.62,1.66 3.74,-0.55 1.44,3.37 1.28,5.34 -0.09,2.27 2.07,5.17 -0.81,6.68 -0.57,2.01 -4.6,1.89 -4.47,0.01 0.2,-1.62 -2.19,-2.79 -1,-4.38 -2.39,-2.05 -5.8,-0.88 -8.29,-2.92 -3.19,-0.55 -3.1,-6.58 -7,-4.9 -3.25,1.5 -2.87,5.42 -3.31,8.39 1.73,1.09 4.31,-1.81 5,0.84 0.65,4.51 -0.3,10.35 -4.66,12.69 -2.05,0.33 -4.01,-0.7 -4.44,-2.75 -1.01,-1.99 -2.84,-4.1 -4.91,-2.06 -2.51,-1.99 -2.84,-5.26 -2.69,-8.25 1.7,2.41 4.86,0.82 6.63,-0.53 1,-2.85 -1.94,-5.58 -2.55,-8.38 -0.35,-2.68 -2.75,-3.1 -4.67,-3.53 -0.88,-2.07 -1.59,-4.78 -0.56,-6.72 -5.56,-1.98 -11.61,-0.89 -17.16,0.47 -4.67,-1.16 -9.01,2.41 -13.75,2.56 -2.64,-2.27 -6.36,-1.45 -9.63,-2 -6.44,-0.16 -11.29,4.48 -15.23,9 -2.96,1.82 0.86,2.65 1.75,4.06 2.29,2.26 -1.66,3.67 -2.74,5.44 -1.44,-2.96 -5.14,-3.8 -4.27,0.54 -0.65,3.9 -0.71,8.05 -1.52,11.83 -1.87,1.87 0.95,4.14 2.97,3.58 5.28,0.29 10.96,-0.24 15.72,2.42 -2.08,0.69 -5.45,-0.97 -5.28,2.53 -1.3,3.55 -0.88,7.6 -1.89,11.2 -1.02,2.31 -3.53,5.58 -0.77,7.39 -1.04,4.96 1.43,10.17 -1.09,14.86 -1.44,6.42 -8.35,10.37 -8.34,17.29 -0.73,5.37 -0.65,11.06 -2.02,16.22 -1.54,2.43 -4.12,-1.19 -6.18,-0.78 -4.31,-0.59 -8.85,-1.62 -13.15,-0.5 -3.28,1.5 -0.59,5.19 -1.65,7.89 0.05,2.71 -1.96,5.6 -1.13,7.99 3.96,3.35 9.48,3.72 14.25,5.18 1.32,-0.55 1.98,-4.64 3.66,-2.59 1.6,4.04 5.43,7.78 4.44,12.38 -1.84,2.71 -4.41,6.49 -1.89,9.57 1.86,2.89 3.08,-1.11 5.12,-1.16 3.32,-0.74 7.21,1.07 10.28,0.08 0.77,-2.08 3.82,-0.65 4.33,-3.02 3.95,-3.24 8.34,-6.11 13.06,-8 3.49,-2.99 -0.93,-3.55 0.23,-6.31 0.69,-1.71 1.95,-4.41 4.07,-2.55 2.19,0.59 4.44,1.49 4.69,4.05 0.24,3.46 3.25,4.66 5.87,6.2 2.49,1.33 5.1,-2.32 7.3,0.36 2.1,0.86 2.8,3.79 2.88,5.66 -2.14,1.36 -2.99,3.7 -0.25,5 -2.47,1.24 -2.71,4.41 -4.06,6.59 -0.13,3.3 3.86,2.19 5.28,4.24 1.61,1.34 2.29,6.23 -0.56,6.24 -2.12,1.03 -7.72,1.03 -4.44,4.18 0.32,1.52 3.77,3.35 4.41,1.19 1.64,-2.26 4.29,-2.15 6.63,-1.31 1.36,-0.07 3.99,-1.2 5.52,-2.37 2.72,-1.18 4.39,-5.59 7.79,-3.97 1.75,0 5.6,2.6 5.94,0.72 0.62,-2.2 3.26,-3.09 5.19,-3.63 2.15,-1.43 1.31,-2.65 -0.91,-2.81 -3.46,-2.11 -0.12,-6.05 -0.14,-8.9 -0.15,-3.52 0.05,-8 -3.58,-9.88 -2.14,-2.11 -6.14,-3.08 -5.9,-6.7 -1.51,-2.43 0.6,-3.29 2.77,-2.04 1.45,1.42 4.2,1.38 5.98,0.03 1.26,-1.81 0.54,-4.61 3.46,-5.43 2.32,-1.11 5.18,2.05 7.68,-1.07 2.13,-2.24 4.04,-0.2 5.66,1.43 0.57,2.57 -0.21,5.4 0.22,8.09 -0.93,3.21 1.85,4.85 4.75,4.17 3.21,-0.08 7.22,0.09 9.7,-1.99 2.54,-2.97 4.51,-6.31 6.89,-9.36 2.02,0.69 5.86,0.77 5.97,3.44 -1.73,2.35 -1.52,4.54 -0.97,7.06 -1.39,2.86 -2.39,6.91 -6.2,7.13 -2.4,1.05 -3.91,4.28 -3.71,6.63 1.97,1.04 4.71,1.6 6.53,3.33 0.07,1.63 -1.12,5.59 -2.84,6.05 -3.41,-0.73 1.6,2.55 2.84,3.1 2.26,0.15 6.09,0.95 5.15,4.09 -0.68,1.53 3.99,3.73 1.27,4.76 -0.76,2.74 -0.13,6 0.12,8.84 1.43,2.32 4.36,3.6 6.57,5.25 3.31,-0.99 4.48,3.42 3.35,5.85 0.3,0.17 2.48,-0.22 3.34,0.68 2.41,1.16 3.09,3.45 2.56,5.97 -2.13,4.96 -3.82,10.38 -3.75,15.72 2.51,0.18 4.77,-1.21 7.34,-1.06 0.61,1.51 -0.65,3.85 2.25,3.24 3.59,-0.55 6.83,1.47 9.03,4.14 1.86,0.23 1.58,3.6 -0.22,2.84 -1.35,2.17 -4.02,2.06 -5.22,4.59 1.78,2.73 3.46,5.34 3.51,8.74 1.02,2.35 -1.28,3.79 -3.38,3.42 -2.32,0.54 -3.56,5.32 -0.53,5.96 3.22,1.18 6.33,2.54 9.36,4.13 4.29,-2.82 0.47,-2.05 -1.06,-3.89 -2.77,-2.53 1.66,-4.59 3.28,-6.24 2.15,-2.54 5.98,-1.9 8.84,-2.34 2.08,1.35 1.61,5.72 4.21,2.64 3.91,-2.4 7.72,-5.21 12.48,-5.45 3.97,-2.72 8.84,-4.93 11.78,-8.85 1.12,-1.78 0.33,-3.88 2.39,-5.63 3.16,-1.67 6.79,0.6 8.47,3.25 2.88,-0.58 7.14,-0.26 7.76,-3.87 -0.05,-2.88 3.65,-4.47 1.75,-6.24 -1.57,-2.46 -0.32,-5.67 -2.8,-7.78 -1.09,-2.4 -4.13,-3.43 -3.79,-6.44 -0.16,-2.66 -0.99,-6.17 2.11,-7.49 1.53,-0.76 3.52,-2.56 1.95,-4.3 -2.69,0.07 -2.43,-3.84 -0.41,-4.53 -1.85,-1.14 -5.14,-4 -4.75,-5.49 2.09,-0.39 4.95,0.22 5.97,-2.13 -0.9,-2.87 3.5,-2.65 5.41,-2.71 2.87,-0.48 6.16,1.13 8.63,-0.98 1.86,-0.84 5.77,1.14 5.58,-1.56 -0.39,-2.88 1.81,-4.27 3.9,-5.7 0.91,-0.47 3.07,-3.7 1.17,-3.53 -3.44,0 -2.76,-5.19 0.13,-5.66 3.82,-0.08 0.19,-3.6 -1.09,-4.81 -2.24,-1.37 -1.88,-4.21 -1.94,-6.38 0.35,-2.73 4.31,-1.12 3.91,-4.03 -1.37,-1.84 -4.07,-2.33 -5.04,-4.76 -1.41,-2.15 -5.08,-4.85 -2.74,-7.55 3.42,-1.12 3.06,-1.7 0.77,-4.08 -1.69,-1.79 -1.55,-4.29 -1.69,-6.46 -2.28,-4.45 -4.68,-9.22 -8.86,-12.09 -1.05,-3.33 -3.02,-6.48 -2.57,-9.99 -0.32,-2.09 0.44,-4.42 2.92,-4.26 2.85,-1.12 6.27,-0.08 8.93,-1.09 1.55,-1.38 2.76,-2.68 2.6,-4.79 1.69,-2.11 5.13,-0.16 7.46,-0.64 2.96,0.35 7.54,-0.38 8.88,2.86 3.56,1.21 6.67,-1.39 9.63,-2.75 1.37,-1.79 3.07,-3.85 5.5,-3.97 -1.07,-2.07 -0.03,-4.66 0.75,-6.72 2.37,0.04 3.51,1.16 4.74,-2.15 -3.03,-0.57 -6.18,-1.13 -7.93,-4.01 -2.99,-1.28 -5.04,3.32 -7.81,2.09 -1.68,-2.2 -4.97,-3.78 -4.59,-6.94 -1.58,-2.26 -4.54,-2.52 -6.84,-3.72 3.01,-0.21 2.65,-3.1 -0.2,-2.77 -6.07,-2.31 -7.72,-9.29 -10.33,-14.6 -2.42,-1.1 -4.9,-1.16 -5.92,1.34 -1.84,1.96 -4.18,1.97 -6.29,0.43 -2.67,-1.78 -3.79,-6.4 -7.79,-5.36 -2.51,-0.77 -4.24,2.4 -6.66,0.76 -4.42,-0.95 -7.78,-4.07 -12.05,-5.47 -1.87,-1.32 -3.8,-1.77 -5.52,0.17 -0.27,2.44 -2.51,2.71 -4.5,2.22 -3.65,-0.29 -5.04,-4.84 -7.84,-6.5 -1.55,0.25 -1.89,4.05 -4.47,4.49 -2.08,0.15 -3.58,-2.52 -5.1,-3.8 -1.02,-1.09 -2.8,3.74 -4.07,0.89 -2.45,-1.59 -2.98,-4.24 -4.53,-6.41 -0.49,-1.9 1.56,-6.03 -2.15,-5.31 -4.45,-0.29 -7.84,-3.81 -11.28,-6.28 -1.97,-2.7 -0.94,-6.7 -3.64,-9.09 -3.37,-1.87 -5.18,-5.18 -6.46,-8.69 -1.64,-4.08 -4.33,-8.01 -8.9,-9 -3.99,-0.41 -8.13,-0.36 -12.15,-0.37 -3.37,0.14 1.11,4.61 0.44,4.78 -2.24,-0.97 -4.59,-0.85 -6.63,0.19 -3.12,0.32 -6.61,0.16 -9.54,-0.98 -2.08,-1.54 -4.86,-2.91 -5.69,-5.53l-0.44,0.03z m-49.34,8.94c-0.03,1.09 0.83,-0.73 0,0z m-9.69,0.88c-1.79,0.64 -2,2.84 -0.28,0.69 1.15,0.39 7.48,0.12 5.09,-0.5 -1.6,-0.1 -3.21,-0.36 -4.81,-0.19z m18.53,1.06c0.45,3.21 0.81,1.46 0,0z m-31.41,1c-2.03,0.59 -1.28,4.28 0.3,1.19 1.64,-1.6 4.48,-0.97 6.64,-1.09 -2.3,-0.17 -4.65,-0.31 -6.94,-0.09z M108.19,134.75c-2.3,1.14 5.75,0.85 0.38,-0.03 -0.12,0.04 -0.27,-0.05 -0.38,0.03z m-12.13,0.84c-3.52,0.44 -2.54,2.25 0.41,1.38 2.85,-0.48 5.82,-0.48 8.59,-1.28 -2.97,-0.23 -6.02,-0.18 -9,-0.09z m-32.28,11.06c-1.1,1.27 2.99,3.13 2.5,3.16 1.33,-1.35 0.17,-2.16 3.86,-2.62 3.23,0.07 0.14,-2.1 -1.3,-2.1 -1.69,0.52 -3.38,1.04 -5.06,1.56z M174.25,186.75c0.36,2.67 4.51,2.84 6.35,4.51 3.41,1.6 7.66,0.4 10.79,2.95 3.11,1.84 7.08,3.66 10.49,1.79 1.4,0.19 3.63,2.7 2.89,3.67 -2.99,0.4 -0.11,3.94 -0.78,6.22 0.86,2.85 -2.01,3.95 -3.7,5.61 -3.46,-0.92 -6.93,-3.62 -10.57,-2.86 -2.23,0.9 -3.13,-2.21 -2.65,-3.92 -0.64,-2.4 -4,-3.06 -3.74,-5.78 -0.67,-2.42 -1.42,-4.7 -4.2,-4.81 -3.28,-1.01 -7.24,-4.77 -5.34,-8.44 0.16,0.35 0.31,0.71 0.47,1.06z\",\"name\":\"Niedersachsen\"},\"mv\":{\"path\":\"m468.38,35.5c-3.45,0.91 -7.31,1.41 -8.93,5.06 -0.26,1.49 -3.68,7.61 -2.06,6.34 1.83,-1.19 3.02,-3.21 2.21,-5.18 0.53,-1.31 3.04,-4.63 4,-2.16 0.98,2.93 -2.17,4.94 -1.91,7.78 2.5,-1.15 4.75,-3.34 7.37,-1.07 2.42,1.29 5.16,2.48 7.7,0.7 1.54,0.46 0.47,5.05 0.71,7.19 0.58,3.31 -4.03,1.68 -5.65,1 -1.59,-1.22 -4.83,-1.69 -5.19,-3.75 1.7,-4.11 -3.26,-1.94 -5.53,-2.31 -2.04,0.6 -6.23,0.55 -4.31,3.72 1.26,1.16 4.35,-0.42 5.38,2.04 2.76,1.44 -0.43,4.39 -2.54,4.37 -2.75,-0.56 -4.74,4.2 -0.71,3.48 2.64,0.57 6.65,0.82 2.18,2.56 -1.86,1.21 -4.55,1.66 -6,3.25 -1.1,2.82 0.47,5.48 1.28,8.13 5.01,1.69 10.02,3.38 15.03,5.06 2.12,-0.23 1.09,-3.14 0.16,-2.97 -0.76,1.88 -3.98,1.99 -3.25,-0.63 2.8,-3.12 5.65,-6.81 9.31,-9 3.6,-0.24 7.24,-1.3 10.81,-1.09 1.21,1.32 2.75,4.02 0.25,4.94 -1.68,2.68 3.83,-2.34 2.14,-4.14 -1.15,-2.6 -3.19,-5.78 -6.42,-4.67 -2.75,-1.52 -4.42,-5.28 -3.91,-8.38 1.26,-2.37 3.94,-3.83 5.78,-5.54 1.61,-2.97 -1.68,-6.36 -4.75,-5.02 -3.75,0.66 -8.71,3.63 -11.63,-0.19 -1.83,-1.92 -3.2,-6.71 0.31,-7.56 2.78,-1.63 0.58,-2.73 -1.84,-1.94z m-11.72,12.09c-0.08,-0.04 -0.09,0.18 0,0z m-4.56,2.28c1.4,-3.26 1.29,-4.92 0.11,-0.61l-0.09,0.49 -0.02,0.12z M457,55.72c-1,0.46 -3.54,5.14 -1.38,3.6 1.48,-0.87 6.21,-2.64 2.44,-3.69 -0.36,-0.17 -0.71,0.02 -1.06,0.09z m-41.09,7c-0.25,1.57 -4.9,6.97 -0.87,4.76 3.72,-1.22 7.4,-2.58 10.67,-4.69 2.93,-0.95 5.29,-0.58 1.12,-0.91 -3,-0.7 -6.71,0.09 -8.98,-2.44 -0.65,1.09 -1.29,2.19 -1.94,3.28z m31.25,-1.97c0.11,0.78 4.7,-2.13 0,0z m-5.81,0.66c-3.54,0.47 -7.66,0.41 -10.88,0.66 0.67,2.11 2.68,1.92 4.62,1.67 3.01,-0.17 6.3,-0.07 8.66,-2.29 -0.79,-0.19 -1.6,-0.03 -2.41,-0.03z m1.56,3.03c-2.88,1.13 -1.21,5.18 -4.19,6.34 -3.6,2.14 -6.72,-2.29 -10.47,-2.06 -3.01,-0.89 -5.76,1.74 -8.35,3.01 -2.71,2.18 -6.52,4.43 -7.27,7.96 0.18,1.51 4.13,0.67 2.84,2.66 -2.29,1.22 -5.24,-0.3 -6.59,-2.13 -0.64,-1.13 1.18,-6.54 -0.53,-3.19 -3.22,4.08 -9.79,4.87 -11.29,10.52 -1.07,2.64 -1.85,5.58 -5.3,3.89 -4.59,-1.7 -8.52,1.77 -12.84,2.72 -3.31,0.47 -6.17,-1.62 -9.5,-0.72 -2.97,1.63 -5.73,4.31 -8.33,6.62 -1.96,2.01 -2.68,5.33 -0.14,1.47 1.06,-1.2 2.41,-4.78 4.19,-3.41 2.37,2.62 -1.24,5.31 -2.34,7.63 -1.89,1.4 -5.07,1.98 -4.85,5.06 -0.11,3.13 -0.5,6.25 -2.62,8.72 -1.16,-0.88 -3.68,-1.23 -3.47,-3.09 -1.92,-1.17 -4.21,-1.95 -5.89,0 -2.35,1.65 -4.97,-1.81 -3.77,-4.13 -1.91,-1.96 -3.3,-5.2 -6.59,-3.87 -5.1,-0.35 -9.02,3.11 -13.04,5.78 1.53,2.15 0.81,6.74 -2.56,5.38 -2.64,1.41 -7.07,3.37 -6.72,7.09 1.31,2.5 2.06,5.12 1.15,7.92 0.24,2.24 3.08,3.96 4.95,5.27 1.49,-0.13 2.88,-0.94 4.38,0.28 1.77,1.48 2.91,4.8 1.54,6.72 -1.07,2.51 -1.74,5.18 -3.94,7.19 -3.45,4.41 -6.57,9.53 -11.63,12.13 -2.85,-1.67 -4.12,1.25 -4.21,3.8 -1.04,3.05 -1.35,4.72 2.28,3.81 4.38,-1.22 5.62,3.97 8.63,5.73 2.06,1.71 4.79,0.13 5.56,-2.03 1.66,-2.26 4.66,-0.28 6.53,0.28 2.66,5.4 4.35,13.11 11.13,14.56 1.97,-0.26 2.54,2.31 1.09,3.34 1.98,0.75 4.2,1.46 5.28,3.41 2.92,0.33 5.86,0.78 7.88,-1.84 2.53,-1.04 4.17,0.11 6.2,0.92 3.41,1.17 3.57,-3.72 2.91,-5.91 -1.19,-2.85 2.75,-4.04 4.19,-5.91 2.26,-0.57 6.06,-0.68 6.92,2.18 2.22,-0.82 7.58,-0.29 4.18,-3.52 1.89,-0.52 5.64,-0.7 8.01,-2.08 1.84,-1.16 5.37,-2.23 4.75,-4.82 0.89,-1.93 2.17,-4.64 4.7,-3.27 2.88,0.17 5.85,-1.68 8.79,-1.42 2.69,2.85 6.38,3.54 9.59,5.47 2.1,1.42 2.54,5.89 5.86,4.62 1.42,-1.54 4.52,-1.23 6.97,-0.84 2.64,0.11 5.42,0.12 6.99,2.65 1.76,1.23 2.9,3.74 4.81,4.36 3.51,-2.08 7.9,-1.79 11.85,-1.57 1.87,0.92 -0.02,2.26 -1.2,2.88 2.73,2.02 3.96,-3.02 6.01,-4.14 1.85,-2.5 5.05,-5.4 8.21,-4.51 0.4,1.63 2.6,4.73 2.69,1.53 -0.18,-4.03 4.85,-6.14 8.16,-4.72 0.92,1.02 1.13,4.66 2.78,2.25 1.94,-2.52 5.64,-4.66 5.83,-7.92 -0.98,-3.87 1.53,-7.87 4.55,-10.15 2.94,-2.19 5.03,-6.55 9.2,-6.14 3.13,-1.46 0.88,-2.47 0.94,-4.94 -0.47,-2.01 1.66,-5.18 3.04,-2.12 2.09,2.5 4.8,4.66 5.08,8.15 0.55,3.39 3.31,3.78 6.08,2.65 2.41,-0.3 6.44,1.78 7.55,-1.21 2.62,0.79 6.91,-0.99 8.25,2.06 1.49,6.11 -3.45,10.78 -7.19,14.78 -1.98,3.1 3.33,1.46 5.03,1.98 3.6,0.68 6.06,-2.53 6.41,-5.79 1,-1.79 6.72,-1.16 5.01,-3.95 -1.75,-4.35 -2.83,-9 -3.99,-13.46 -2.18,-2.83 -4,-6.6 -2.87,-10.22 -0.22,-5.43 -3.03,-10.29 -3.44,-15.72 -0.42,-2.28 -2.57,-2.04 -3.28,-0.22 -1.81,2.36 -5.39,1.17 -7.84,0.59 -3.37,-1.38 -7.23,-1.87 -9.74,-4.72 -2.44,-2.52 -7.36,-2.95 -8.1,-6.78 1.68,-2.2 3.24,-5.36 5.94,-6.13 0.44,-2.04 -2.63,-3.55 -3.67,-5.18 -2.27,-2.24 -3.02,-5.61 -4.55,-8.32 0.21,-2.8 0.27,-5.88 -2.37,-7.5 -1.78,-3.54 -4.86,-2.15 -7.78,-0.99 -2.53,1.08 -5.51,1.39 -7.79,2.9 0.14,1.21 2.98,3.43 0.56,3.84 -3.2,0.18 -3.78,-3.49 -4.59,-5.69 -0.99,-1.26 -3.18,1.08 -3.03,-1.66 3.36,-2.44 -2.45,-0.94 -3.09,-2.5 -1.56,-2.33 -1.97,-5.95 -5.39,-6.49 -2.15,-2.65 -4.68,-0.2 -6.44,-0.76 -2.83,-2.27 -3.42,-6.13 -4.17,-9.38 1.49,-2.52 -2.16,-5.5 -3.62,-7.17 -1.75,-0.48 -3.25,0.75 -4.88,1.21z m52.69,22.19c-3.16,0.36 -1.48,4.22 0.37,5.25 1.73,2.04 0.07,5.76 2.48,7.75 1.23,2.84 2.71,4.73 5.49,2.07 1.56,-1.43 -2.24,-3.39 -0.78,-5.26 2.84,0.22 4.58,0.55 1.09,-0.38 -3.78,-1.63 -6.46,-4.91 -7.63,-8.84 -0.21,-0.29 -0.58,-0.78 -1.03,-0.59z M508.81,98.25c2.29,2.13 4.59,4.76 3.68,8.19 1.29,3.82 -2.55,2.56 -4.59,1.72 -1.01,-1.74 -1.1,-5.02 -3.97,-3.22 -1.8,2.49 2.15,3.83 2.07,6.36 1.37,2.89 -1.67,5.12 -4.12,5.88 -2.51,0.31 -1.55,2.32 0.67,2.35 4.16,0.13 7.86,-2 11.53,-3.58 2.18,-0.69 5.82,0.22 7.3,-1.22 1.43,-3.32 1.05,-6.01 -2.4,-7.65 -4.01,-3.08 -7.07,-7.49 -11.49,-9.99 0.44,0.39 0.88,0.77 1.31,1.16z m-153.22,8.91c-2.07,0.65 -6.19,2.56 -3.84,5.09 3.14,1.72 4.9,-0.57 5.38,-3.56 0.63,-1.6 0.03,-1.86 -1.53,-1.53z\",\"name\":\"Mecklenburg-Vorpommern\"},\"he\":{\"path\":\"m231.91,351.28c-2.52,4.22 -6.22,7.61 -8.38,12.09 -3.47,2.99 -7.81,5.31 -10.28,9.09 -2.28,0.4 -5.74,0.13 -5.5,-3 2,-3.26 -3.47,-5.21 -5.91,-3.76 -1.41,0.82 -5.95,0.93 -4.65,3.28 0.64,2.39 3.13,3.23 3.37,5.4 0.17,2.42 -1.34,4.44 -3.94,3.29 -5.15,-0.39 -10.41,1.05 -14.95,3.35 -3.17,1.4 -4.72,4.59 -6.61,7.28 0.84,1.05 2.01,4.06 3.59,2.09 2.37,-0.9 6.57,-4.19 7.88,-0.28 0.22,4.19 2.13,8.77 -0.72,12.51 -0.71,2.75 -2.31,4.62 -5.22,4.99 -3.14,-0.43 -7.52,-2.41 -9.63,1.09 0.39,2.15 1.85,4.24 2.13,6.19 -1,1.73 -3.4,2.91 -4,4.63 3.11,2.85 -2.97,-1.27 -1.76,3.31 -1.97,2.72 -3.4,6.11 -5.96,8.25 -2.51,0.68 -5.22,-4.25 -7.23,-1.05 -2.7,2.64 -5.41,5.28 -8.11,7.92 0.49,2.48 3.93,4.74 1.63,7.26 -0.76,2.71 -4.3,4.36 -2.78,7.49 -0.8,2.92 2.77,3.49 2.12,5.75 -1.13,1.85 -1.06,5.6 -3.44,5.9 -1.97,0.22 -2.63,-1.53 -4.06,-2.13 -2.8,1.41 -5.48,6.02 -2.56,8.66 -0.49,2.46 -3.67,5.82 0.27,6.82 3.67,1.53 5.25,5.3 6.61,8.75 0.92,2.04 1.08,4.85 -1.7,5.37 -1.07,-0.93 -5.7,-1.33 -3.5,1.11 2.47,0.99 0.89,3.49 -1,3.99 -2.32,-1.08 -4.25,-1.29 -6.55,0.33 -2.11,0.73 -3.8,3.88 -1.08,4.86 2.02,1.08 1.39,4.09 0.28,5.59 -2.84,-2.01 -4.64,0.94 -6.72,2.5 -3.14,0.7 -2.62,2.78 -0.67,4.69 1.7,1.7 2.49,4.75 4.7,5.72 7.32,0.54 13.26,-4.85 20.19,-5.97 3.41,-0.25 5.55,2.38 7.21,4.9 2.7,2.09 3.72,5.69 3.75,8.95 -2.21,2.91 0.93,6.19 1.75,9.06 1.22,3.02 5.3,4.54 4.69,8.16 -0.83,2.19 -2.69,3.5 -5.03,3.69 -3.67,1.29 -0.58,5.33 -0.19,7.78 1.19,1.23 1.73,4.58 3.56,3.47 2.87,-0.09 4.72,3.15 6.02,5.29 0.45,2.46 3.64,2.83 4.61,0.44 0.84,-1.91 -0.18,-4.52 -1.35,-5.64 -0.49,-3.07 3.89,-2.29 5.74,-3.3 2.12,-0.86 2.95,1.54 1.33,2.77 -0.13,1.19 0.36,6.2 2.44,7.44 3.73,1.71 7.96,2.48 12.06,2.41 0.3,2.37 -0.95,4.21 -3.22,5.14 -2.12,0.41 -4.13,4.05 -2.97,5.83 3.16,0.98 4.62,-3.02 6.97,-4.37 2.62,-1.23 -1.27,-2.95 1.23,-4.7 1.83,-3.04 5.68,-3.23 8.67,-4.31 2.07,1.28 4.67,2.3 1.65,-0.28 -2.77,-0.69 1.28,-2 0.17,-4.09 -1.83,-2.61 0.09,-5.95 0,-8.84 0.67,-3.72 4.45,-6.62 2.87,-10.6 0.27,-3.23 -3.17,-2.82 -4.5,-5.35 -1.88,-1.31 -2.94,-3.09 -2.59,-5.43 1.25,-0.49 -0.57,-3.68 -0.1,-5.19 -0.37,-2.39 0.26,-5.26 -1.15,-7.31 2.19,-0.29 2.3,-4.03 0.75,-4.91 -3.55,0.11 -2.06,-3.18 -1.51,-5.43 1.26,-3.72 6.02,-2.87 8.99,-4.29 3.44,-0.94 6.85,-2.48 10.38,-0.98 2.53,1.03 6.93,-0.17 7.36,3.51 0.22,3.77 3.72,2.22 6.1,1.81 3.18,-0.12 0.4,-3.63 0.68,-5.44 -0.84,-3.13 -0.37,-6.51 1.38,-9.24 2.02,0.57 4.63,1.89 6.47,0.94 0.86,-2.28 1.78,-5.61 4.88,-5.28 3,-1.1 4.77,-5.15 2.22,-7.63 2.46,-1.43 0.46,-5.9 4.2,-5.65 2.35,-1.65 4.24,2.19 6.72,0.64 3.67,-2.12 7.61,-4.88 9.17,-8.99 0.87,-4.15 -0.43,-8.59 0.34,-12.69 1.59,-1.67 2.87,-3.11 0.88,-5.25 -1.95,-0.3 -4.67,-0.51 -5.91,1.03 2.68,1.72 0.06,4.83 -2.4,3.41 -3.4,0.47 -3.73,-2.19 -3.1,-4.85 1.64,-2.54 4.97,-5.54 3.53,-8.77 -2.61,-1.88 3.02,-1.21 0.62,-3.76 -0.39,-2.4 1.7,-5.24 4.25,-4.19 2.32,-0.16 2.52,-3.78 3.13,-5.59 -0.42,-3.72 -1.44,-7.39 -2.41,-10.94 0.58,-3.37 4.7,-2.07 6.91,-1.42 1.33,1.43 3.54,1.27 4.93,0.14 1.65,-2.01 -0.8,-4 -2.88,-4.28 -0.73,-2.4 -0.28,-5.7 -2.15,-8.05 -1.81,-2.17 3.2,-3.84 4.13,-1.92 0.85,2.09 2.04,3.15 0.8,0.19 -0.79,-1.77 1.55,-2.57 1.81,-3.75 -2.16,-0.34 -3.1,-3.03 -5.47,-3.13 -2.41,-1.32 -5.66,-1.92 -5.69,-5.28 -2.73,-1.26 -6.43,-1.62 -7.14,-5.14 -0.93,-2.28 -2.35,-5.29 -0.96,-7.39 -0.41,-3.77 -4.2,-2.41 -6.91,-2.04 -2.44,0.91 -4.65,3.07 -6.27,5.16 0.26,3.75 3.81,-0.17 4,2.53 0.6,2.43 -1.31,3.7 -3.35,4.44 -2.57,-2.31 -6.46,-3.25 -9.7,-4.62 -2.11,-0.64 -2.73,-3.33 -1.64,-5.16 0.52,-2.33 2.7,-3.11 4.88,-2.75 1.13,-2.01 -0.13,-5.09 -0.97,-7.03 -0.84,-1.85 -3.71,-4.21 -0.9,-5.87 1.12,-2.04 3.33,-1.71 4.5,-3.66 2.57,-0.35 -1.93,-2.01 -2.09,-3.38 -2.42,-2.04 -5.4,-1.51 -8.28,-1.84 -2.56,-0.15 0.13,-3.78 -1.82,-2.9 -0.65,0.13 -1.3,0.26 -1.96,0.4z m48.47,53.75c-0.2,0.03 0.16,0.35 0,0z\",\"name\":\"Hessen\"},\"hh\":{\"path\":\"m273.31,139.16c-1.5,1.09 -0.93,4.3 -3.67,5.06 -1.61,1.47 -3.71,3.26 -5.89,1.85 -2.33,-0.78 -1.81,2.21 -3.43,3.24 -1.3,1.52 -3.26,5.5 -5.37,2.78 -1.64,-2.73 -2.78,-2.89 -3.11,0.48 -1.95,3.52 3.88,1.56 2.16,5.63 -0.89,2.25 0.93,3.48 1.47,5.56 1.11,1.96 3.5,5.01 5.03,1.63 1.82,-0.66 3.1,2.78 4.87,3.63 1.74,1.19 3.59,-1.92 4.1,-3.57 1.25,-2.32 3.61,0.86 4.66,2.15 1.9,2.2 3.93,4.76 7.21,3.97 1.13,-0.62 1.01,-2.97 2.91,-3.07 2.93,-1.45 -2.65,-3.59 -2.97,-5.78 -1.42,-2.02 -5.31,-2.65 -5.35,-5.94 -0.83,-2.64 0.75,-4.88 3,-6.12 2.02,-2.17 0.93,-4.31 -0.94,-5.97 0.01,-2.33 -0.49,-4.73 0.53,-6.88 -1.59,-1.66 -3.52,1.07 -5.22,1.34z\",\"name\":\"Hamburg\"},\"hb\":{\"path\":\"m177.13,149.91c-1.02,1.81 2,3.93 2.44,6 0.78,1.49 -1.36,2.66 0.47,3.7 0.36,2.05 1.77,2.73 3.27,0.5 2.31,-1.97 -1.15,-5.18 0.62,-7.7 1.79,-3.68 -3.69,-1.91 -5.73,-2.54 -0.36,-0.05 -0.71,0.02 -1.07,0.05z m-2.34,39.47c1.3,3.24 5.12,3.63 7.78,4.94 1.52,2.61 1.31,5.93 3.86,7.69 2.1,1.22 1.38,3.71 2.04,5.46 1.64,0.31 3.99,-0.68 5.77,0.73 2.5,0.16 5.45,3.63 7.38,0.87 2.63,-1.56 0.74,-5.04 0.98,-7.51 -2.78,-1.97 1.76,-2.01 0.87,-3.11 -1.26,-2.73 -3.93,0.26 -6.25,-0.86 -4.35,-0.36 -7.69,-4.63 -12.29,-4.36 -3.91,0.3 -6.92,-2.67 -10.15,-3.86z\",\"name\":\"Bremen\"},\"bb\":{\"path\":\"m499.25,149.81c-0.84,1.88 -0.81,4.34 1.28,5.34 -1.74,2.06 -3.79,3.29 -6.37,3.46 -3.18,2.74 -6.61,5.55 -9.05,8.91 -1.36,2.25 -1.54,4.68 -0.87,7.16 -2.28,3.16 -4.83,6.45 -8.06,8.63 -2.41,-0.12 -1.19,-4.5 -3.97,-3.53 -3,-0.61 -5.44,2.28 -5,5.15 -0.4,2.7 -4.01,1.19 -3.97,-1.02 -0.57,-1.97 -3.52,0.03 -4.56,0.75 -2.74,2.49 -4.73,6.13 -7.88,8 -1.99,-0.23 -3.86,-2.04 -1.25,-3.16 1.45,-1.47 -4.76,-0.14 -6.18,-0.46 -2.13,-0.19 -5.04,3.22 -6.6,0.49 -2.73,-2.51 -5.01,-6.52 -9.27,-5.91 -2.13,0.04 -5.13,-1.3 -6.45,0.69 -2.87,1.21 -4.79,-0.3 -6.25,-2.72 -1.52,-3.98 -6.92,-3.25 -9.48,-6.32 -1.8,-2.15 -4.65,0.11 -6.93,0.1 -2.38,1.26 -5.39,-1.14 -6.32,2.55 0.99,3.09 -2.96,4.01 -4.77,5.61 -2.15,1.15 -6.11,1.77 -7.27,2.46 2,2.09 -1.36,2.73 -2.94,2.85 -3.43,2.16 -3.88,-1.29 -6.73,-1.81 -3.03,-0.86 -4.57,2.1 -6.63,3.69 0.64,2.72 1.23,7.08 -1.72,8.53 -1.68,-0.03 -3.77,-0.05 -4.75,-1.47 -3.21,-0.91 -4.58,3.15 -7.53,2.47 -2.88,-1 -5.03,0.48 -2.09,2.67 1.36,1.69 3.08,4 5.08,1.55 1.94,-1.5 5.34,-2.28 6.7,0.42 1.5,2.04 4.32,1.65 6.53,2.39 1.23,-1.43 4.73,-0.25 2.95,1.62 -1.67,1.72 2.21,2.59 2.91,3.81 1.43,1.12 2.93,-2.01 4.58,-0.33 1.76,1.64 5.48,1.89 6.03,4.47 0.12,1.23 -2.72,2.23 -0.94,3.16 4.27,1.68 8.68,4.08 13.38,2.66 2.5,1.2 6.82,-4.08 4.61,0.18 -0.35,3.68 2.96,0.6 4.61,0.47 3.29,0.55 2.92,4.31 3.72,6.78 0.37,2.84 -3.59,3.22 -2.84,6.46 -1.66,3.81 3.69,5.99 2.3,9.81 0.77,2.86 -2.32,3.27 -3.45,4.66 -0.54,2.65 -2.13,5.71 -1.65,8.26 0.83,2.24 4.39,3.7 4.36,0.28 2.12,1.42 6.84,0.74 6.61,4.02 1.02,3.09 -2.67,5.39 -1.23,8.53 0.24,2.83 1.88,6.06 -0.69,8.26 -2.05,3.4 -2.35,7.41 -1.88,11.28 -2.17,2.79 -1.48,5.22 1.03,7.44 3.11,5.22 7.1,10.36 13.17,12.16 3.29,1.01 7.58,3.94 10.7,1.22 -0.29,-3.23 3.4,-2.12 4.94,-0.75 2.81,1.03 3.99,2.78 6.11,4.39 2.08,1.33 4.66,2.82 7.04,1.98 3.14,1.39 6,3.2 8.16,5.88 3.11,1.39 3.63,-2.03 5.78,-1.38 1.85,0.64 2.36,3.88 -0.16,3.41 1.53,4.44 1.98,9.42 4.53,13.28 -0.28,4.36 -5.19,5.81 -8.13,8.16 1.38,4.17 2.89,2.17 5.54,3.45 2.71,1.73 3.05,5.69 4.55,8.42 0.92,3.28 0.16,6.97 -0.56,10.28 1.12,1.84 2.33,3.34 4.61,2.31 0.97,-1.14 2.38,-3.45 4.49,-4.31 2.22,-1.43 4.58,-3.03 6.29,-0.12 4.07,3.53 9.06,7.27 14.8,6.16 2.09,-1.58 2.79,0.71 5.58,0.52 2.7,-0.23 5.1,-3 8.17,-1.96 3.29,-1.1 7.81,-0.26 9.47,-3.95 2.24,-4.34 2.1,-9.97 5.65,-13.77 1.52,-0.92 3.97,-0 5.84,-0.31 2.67,-0.5 5.34,2.24 7.62,0.72 1.65,-1.85 4.86,-1.52 6.32,-2.54 1.7,-2.16 5.35,-2.05 7.75,-3.38 2.31,-0.33 2.58,2.04 4.09,2.56 2.19,0.22 4.28,-0.47 4.14,-3.06 1.18,-2.26 3.58,-0.39 3.55,-4.22 -0.1,-2.81 -0.47,-5.99 -3.36,-7.26 -3.75,-2.16 -4.56,-6.65 -6.42,-10.21 -2.9,-0.63 -3.35,-5.09 -0.55,-6.35 3.76,-2.93 5.89,-7.61 5.36,-12.4 -0.5,-2.47 -0,-3.76 1.5,-6 1.18,-2.51 -0.13,-5.99 -3.13,-5.94 -2.3,-1.74 -2.72,-5.61 -0.53,-7.63 -0.28,-2.81 1.52,-6.55 -1.09,-8.56 -2.6,-1.24 -6.3,-0.29 -7.81,-3.19 -1.11,-3.05 -1.39,-6.47 -2.42,-9.42 -1.68,-2.31 -0.63,-6.4 2.17,-7.48 1.98,-2.33 3.3,-5.1 2.57,-8.22 0.38,-2.83 -0.31,-5.28 -2.51,-7.19 -3.54,-2.79 -8.55,-3.73 -11.34,-7.59 -2.56,-5.3 -8.11,-8.18 -12.88,-11.28 -2.02,-1.42 -4.87,-0.97 -6.69,-2.38 -2.03,-2.63 3.01,-4.81 1.15,-7.48 -0.64,-2.66 -2.69,-6.39 0.67,-8.11 3.25,-1.9 6.37,-3.89 8.77,-6.91 3.06,-2.56 2.89,-6.96 3.39,-10.59 -1.83,-1.72 -1.71,-4.98 -0.47,-6.84 1.2,-1.67 4.41,-4.79 3.03,-6.69 -2.15,0.19 -2.35,-3.69 -2.22,-5.41 -2.44,1.01 -5.3,1.53 -5.5,4.63 -1.15,2.4 -3.02,3.91 -5.78,3.72 -2.22,-0.47 -6.15,0.62 -7.41,-0.9 0.47,-4.6 5.82,-6.58 7.23,-10.78 0.81,-2.01 1.54,-5.13 -0.2,-6.73 -3.16,-0.57 -5.69,-0.28 -7.87,1.03 -3.28,0.28 -6.64,-0.73 -9.75,0.5 -4.23,-1.06 -2.75,-6.98 -5.95,-9.24 -1.05,-1.15 -2.07,-2.54 -3.15,-3.54z M484.13,240.25c2.62,1.78 3.22,5.59 5.07,8.15 1.73,3.05 5.13,4.94 5.9,8.6 -0.13,3.15 2.96,3.88 5.31,4.97 3.02,1.16 1.5,3.96 0.62,6.15 -2.11,1.18 -0.3,2.41 -1.81,3.94 -3.37,1.44 -6.8,-1.31 -10.22,-1.72 -2.61,0.29 -4.02,-2.66 -5.44,-2.59 -3.39,0.13 0.93,5.86 -3.25,4.2 -2.15,-1.56 -3.93,-2.85 -6.03,-2.56 -2.2,-2.21 -6.14,-1.55 -8.26,0.46 3.07,1.05 -3.31,1.77 -4.27,0.08 -2.48,-1.03 -0.87,-2.57 0.43,-3.73 -0.55,-1.26 -1.2,-3.36 0.31,-4.63 3.03,-2.14 1.73,-3.7 -0.71,-3.56 0.04,-2.5 -0.02,-5.34 0.62,-7.66 1.31,-1.47 2.88,-1.58 4.41,-0.5 1.08,0.35 -1.33,-2.46 0.8,-3.32 1.36,-1.61 4.71,-0.61 6.85,-0.8 2.24,1.02 3.85,-0.76 4.63,-2.66 1.77,2.37 2.44,0.08 3.29,-1.66 0.36,-0.52 1.13,-1.47 1.74,-1.16z\",\"name\":\"Brandenburg\"},\"be\":{\"path\":\"m483.38,241.69c-1,1.58 -1.61,5.27 -4.03,2.88 -0.91,2.64 -3.81,2.59 -6.06,2.05 -1.91,-0.31 -7.28,0.09 -4.84,2.79 1.38,2.14 -2.25,1.68 -3.34,0.78 -3.18,-0.15 -1.8,4.36 -2.36,6.45 -0.09,0.87 5.17,1.04 2.51,3.18 -1.16,1.75 -4.04,3.69 -1.89,5.83 0.53,1.82 -3.82,2.76 -0.54,3.7 2.29,1.61 3.52,-2 6.07,-2.2 2.07,-0.34 5.08,-0.28 6.25,1.69 2.29,-3.28 5.18,4.71 6.09,1.16 -1.15,-2.62 1.9,-3.14 3.66,-3.85 0.63,3.56 5.17,2.88 7.8,4.18 1.96,0.26 4.94,2.32 6.26,0.28 -2.5,-1.19 2.5,-2.95 2,-5.26 1.05,-2.66 -3.24,-2.9 -4.77,-4.37 -2.69,-0.38 -1.4,-4.38 -3.15,-6.05 -1.61,-3.03 -4.93,-4.88 -5.94,-8.38 -1.14,-0.99 -1.96,-6.07 -3.71,-4.88z\",\"name\":\"Berlin\"},\"by\":{\"path\":\"m273.66,464.44c-1.31,1.91 -3.76,2.78 -3.5,5.34 -1.83,4.59 -6.12,7.95 -10.5,9.94 -2.67,1.02 -4.62,-2.49 -7.15,-0.61 -1.54,0.74 -0.64,3.49 -2.13,4.58 2.4,3.04 -0.04,7.53 -3.44,8.47 -3.38,-0.45 -3.01,4.07 -4.66,5.5 -2.16,0.47 -4.23,-0.33 -6.28,-0.91 -2.54,3.91 -0.46,8.53 0,12.63 -0.53,2.87 -4.66,1.74 -6.9,2.55 -3.16,0.27 -1.64,-5.68 -4.98,-5.22 -4.19,-0.72 -8.41,-2.46 -12.49,-0.42 -2.97,1.16 -6.84,1.23 -9.32,2.99 -0.59,1.48 -2.41,4.44 -0.69,5.28 3.02,-0.37 2.55,4.03 2.28,5.63 -2.37,0.86 0.17,4.18 -0.45,6.12 0.28,2.66 -0.27,5.78 1.89,7.78 -3.88,-0.85 0.14,3.73 1.52,4.58 0.84,1.94 3.96,0.92 3.59,3.64 1.27,2.88 0.6,5.62 -0.78,8.31 -2.26,2.93 -2.47,7.6 -2.42,11.23 1.24,2.27 4.6,0.89 6.75,1.12 2.16,0.04 4.75,-2.13 4.73,-4.03 -0.34,-2.04 2.18,-5.23 4.72,-3.63 1.87,0.74 5.34,1.32 4.23,-1.45 1.6,-1.24 -0.63,-7.5 -0.96,-4.79 0.79,2.49 -3.31,2.3 -3.52,0.13 -0.83,-1.56 -3.4,-4.82 -1.19,-6.09 3.07,-0.15 6.37,-1.05 9.34,-0.19 0.41,-2.46 4.94,-2.22 3.88,0.41 0.59,1.49 3.45,3.68 4.43,1.04 1.16,-1.1 4.96,-5.66 4.94,-1.88 -0.59,2.44 0.18,5.72 -1.59,7.45 0.33,2.92 3.79,0.57 5.16,-0.39 2.48,-0.32 5.61,-3.48 7.29,-0.3 2.99,3.39 2.07,8.94 5.01,12.52 2.18,0.31 2.43,3.58 2.41,5.6 0.45,1.81 -0.72,3.89 -0.34,5.16 2.77,0.82 6.24,0.65 7.69,-2.25 -0.15,-1.12 -1.91,-2.61 0.74,-3.68 2.83,-1.31 3.76,2.79 4.2,4.84 -1.95,1.56 1.87,3.4 1.31,5.57 0.26,2.1 4.02,5.65 0.6,6.68 -2.91,-0.9 -2.81,3.3 -1.87,5.04 0.96,2.51 3.11,4.68 1.16,7.27 0.44,2.52 -1.72,6.37 1.65,7.44 1.89,1.55 4.82,1.6 5.41,4.43 1.71,2.58 1.5,5.88 2.31,8.79 -2.03,1.94 3.23,2.14 4.31,3.59 2.13,2.06 5.86,2.95 6.29,6.28 3.84,2.87 1.91,8.3 2.08,12.46 0.25,2.64 -0.94,5.5 -2.07,7.44 -0.04,3.1 4.34,2.42 3.61,6.41 2.49,1.05 0.06,3.97 -1.86,4.33 -1.61,1.16 -4.23,0.12 -2.18,-1.56 2.29,-3.25 -3.46,-0.68 -4.81,-0.69 -2.23,0.84 -5.79,-3.18 -5.97,0.9 -0.14,3 3.91,4.63 3.42,7.93 0.53,2.67 0.99,5.81 0.27,8.32 -1.49,1.89 -3.93,-0.58 -5.06,1.19 0.32,2.29 -3.52,3.66 -4.94,5.41 -3.13,1.93 -4.28,-3.47 -7.13,-0.01 -2.35,0.12 -0.74,3.36 -2.58,4.82 -1.74,2.44 -2.43,5.75 -0.16,8.06 1.31,2.7 4.08,4.51 3.75,7.78 0.56,4.38 1.13,8.84 2.71,12.9 2.91,1.82 1.6,5.52 2,8.41 0.45,2.66 -1.86,4.17 -1.66,6.72 0.19,1.55 -3.47,0.81 -1.84,3.13 2.61,1.07 0.38,3.66 0.87,5.81 0.2,2.47 -0.14,5.78 2.07,7.38 0.5,2.56 -3.74,2.92 -1.81,6.18 1.02,3.01 3.86,6.55 1.16,9.46 -1.18,1.16 -3.19,0.63 -3.38,2.95 -1.52,3.81 -0.35,-4.27 -2.92,-3.81 -1.88,-0.93 -3.51,0.34 -4.08,2.09 -3.48,0.28 -7.46,-0.44 -10.66,0.7 -2.62,1.93 -4.17,6.22 -7.96,5.49 -1.72,0.26 -2.84,-2.34 -4.53,-0.51 -3.88,1.61 -1.7,3.37 1.37,4.04 3.22,2.32 4.79,-0.35 6.38,-2.97 2.19,-2.61 6.67,0.35 5.03,3.47 -1.46,1.59 3.12,2.56 4.5,2.46 2.2,0.75 5.22,-2.54 5.71,-2.37 -1.26,2.65 0.2,5.16 1.79,7.23 3.74,-0.93 5.96,3.27 7.63,5.97 -1.64,1.92 -2.48,3.42 -1,5.94 0.03,1.72 5.17,0.51 4.35,-1.56 0.81,-1.86 3.6,-1.1 5.09,-0.53 2.05,2.24 -1.68,3.98 -1.81,6.26 -0.21,1.48 -3.48,5.59 -1.04,5.45 5.9,-0.28 10.64,-4.27 13.65,-9.1 1.68,-2.49 4.2,-4.8 5.23,-7.51 -0.27,-1.73 0.37,-4.61 -1.96,-4.47 -1.78,-2.98 -0.76,-6.77 -1.03,-10.06 0.59,-1.59 4.6,-2.06 3.97,0.09 -1.67,2.23 -0.39,3.45 2.34,3.77 2.31,0.63 4.34,0.47 4.81,-2.09 1.65,-2.51 5.13,-0.08 7.59,-0.22 0.5,2.03 3.14,2.52 5.19,3.38 2.99,1.48 5.86,-2.19 8.72,-1.09 3.48,2.5 -1.05,3.09 -0.97,5.59 2.55,0.29 4.83,1.11 6.25,3.38 2.96,1.58 0.77,3.77 1.16,5.09 4.01,0.78 8.16,-0.05 11.5,-2.41 2.24,-1.08 5.28,-2.46 7.66,-1.16 -0.63,2.06 -2.84,4.65 1.39,2.92 0.99,-2.2 2.51,-4.2 4.63,-5.64 2.78,-1.69 3.97,-4.98 6.66,-6.66 2.2,2.25 6,0.82 8.75,0.25 1.72,-1.5 -0.11,-4.24 1.75,-6 1.27,-3.31 5.21,-1.69 7.87,-2.01 3.14,-0.06 6.26,-0.02 9.34,0.6 1.3,-3.59 5.97,-3.64 9.18,-3.87 2.61,1.43 5.36,-1.54 7.57,0.5 2.56,0.03 5.94,1.12 8.03,-0.19 -0.56,-3.08 -2.75,-5.66 -1.81,-8.97 1.68,-1.6 3.23,-4.06 5.5,-4.97 2.05,1.73 -0.97,3.82 0.9,5.81 0.74,1.55 6.18,-3.23 5.07,-0.41 2.78,1.55 7.13,-0.47 8.4,3.24 1.5,2.9 4.05,3.71 6.55,1.34 2.39,-0.55 1.97,-4.34 4.92,-3.93 3.45,-1.43 7.22,-0.35 10.38,1.04 0.63,2.57 4.26,5.4 1.53,7.59 -1.91,3.64 3.48,5.29 5.61,7.15 2.86,2.07 5.93,3.86 9.26,5.04 1.6,-1.29 3.65,-3.83 2,-5.66 -1.98,-1.39 0.16,-4.42 -0.13,-6.41 0.81,-2.05 3.05,-3.55 3.5,-5.53 -1.37,-2.88 -2.02,-7.29 -5.72,-7.94 -0.69,2.59 -4.42,1.51 -6.31,1.34 -1.86,-0.73 -2.16,-2.62 -0.73,-4.04 1.53,-3.69 4.03,-7.15 5.39,-10.77 -2.14,-3.41 -3.7,-7.7 -6.59,-10.34 -2.88,0.4 -3.64,-2.11 -3.9,-4.41 -1.24,-4.49 -8.32,-5.42 -8.04,-10.73 0.04,-2.8 4.04,-3.87 5.63,-5.89 1.81,-1.22 1.17,-3.89 2.78,-4.97 2.57,-0.91 6.07,0.24 7.47,-2.89 1.29,-1.84 2.29,-3.74 4.7,-4.4 2.08,-2 5.15,-0.22 7.17,-2.39 2.7,-1.73 6.58,0.63 8.88,-2.3 3.06,-1.95 5.85,-4.79 7.85,-7.65 0.43,-2.52 2.26,-5.13 0.38,-7.38 0.45,-3.1 3.3,-6.59 0.44,-9.38 -0.61,-1.41 4.07,-1.2 4.41,-3.5 -0.1,-4.04 4.08,-0.04 6.17,0.11 3.24,1.6 5.97,4.3 9.52,5.26 3.15,-4.15 7.21,-9.07 5.25,-14.64 0.5,-2.8 -3.41,-5.03 -1.06,-7.39 1.18,-2.53 1.51,-5.28 -0.56,-7.48 -1.75,-2.45 -3.35,-5.1 -5.19,-7.42 -2,1.56 -5.42,0.69 -5.99,-1.97 -0.86,-2.58 -2.84,-4.62 -4.76,-6.5 -2.32,-0.51 -5.25,-0.27 -4.06,2.66 -1.49,2 -4.02,-1.61 -5.78,-2.26 -3.51,-1.84 -1.34,-7.26 -4.67,-9.54 -1.77,-2.1 -3.92,-4.14 -6.4,-5.23 -2.11,1.09 -4.33,0.73 -6.1,-0.79 -2.35,-0.65 -1.29,-3.34 -2.28,-4.52 -5.62,-4.34 -8.22,-11.7 -13.85,-16.05 -0.96,-0.66 -5.12,-1.7 -4.56,-0.67 1,2.66 -3.26,0.86 -4.59,0.92 -2.67,0.16 -4.59,-1.69 -5.1,-4.2 0.33,-2.99 -3.95,-3.91 -5.58,-5.98 -1.3,-1.16 -4.06,-3.42 -2.45,-4.96 0.01,-2.41 0.31,-4 -2.29,-4.05 -2.07,-0.53 -1.46,-1.98 -2.8,-3.5 -2.08,-3.55 -3.13,-7.39 -3.48,-11.47 -1,-2.47 -5.61,-0.9 -6.56,-3.96 -1.46,-1.68 -3.4,-4.99 -0.08,-5.91 3.24,-0.92 2.39,-4.05 3.21,-6.53 0.88,-3.28 4.17,-5.56 3.4,-9.15 -1.69,-2.78 -3.02,-7.24 -7.16,-6.34 -2.89,-1.46 -5.43,-3.31 -7.5,-5.81 -4.37,0.47 -3.42,-1.95 -5.22,-4.41 -1.08,-0.95 -3.08,-0.2 -3.19,-2.3 -0.69,-1.94 -0.29,-3.97 0.91,-5.48 -1.13,-3.44 -4.24,-5.4 -7.25,-6.96 -2.59,-1.3 0.21,-3.74 1.9,-4.17 -1.15,-4.86 -6.38,-5.68 -10.5,-6.63 -1.66,-1.44 1.51,-4.7 -1.45,-5.85 -1.47,-2.96 -3.98,-0.6 -6.15,-0.03 -4.99,1.83 -10.54,1.94 -15.74,2.63 -0.77,-0.67 -2.77,-2.61 -3.03,-0.5 -0.96,2.08 -4.29,1.95 -5.15,-0.33 -1.46,-1.7 -1.05,-3.98 -3.62,-3.71 -2.87,-0.72 -2.28,-4.47 -1.51,-6.47 2.3,-1.83 -2.65,-2.89 -4.3,-2.43 -1.7,1.3 -2.92,3.72 -5.37,4.41 -1.61,-1.19 -1.85,2.9 -0.04,2.88 0.66,3.05 1.58,6.38 1.39,9.48 -1.36,2.21 -0.38,7.05 -3.72,7.01 -1.95,0.12 -2.86,4.45 -5,1.12 -2.19,-1.15 -2.98,-4.4 -0.24,-5.3 -0.32,-1.92 -3.58,-5.33 -4.44,-2.09 -2.92,1.68 -7.59,1.16 -8.96,-2.28 -0.97,-2.98 -4.83,-0.87 -7.1,-1.48 -2.57,0.83 -5.91,1.76 -7.83,3.43 -0.82,2.98 1.43,4.47 3.69,5.77 1.52,2.24 6.27,1.22 5.55,4.87 -1.22,3.47 -5.4,0.77 -7.88,0.59 -0.91,0.73 1.13,4.84 -1.63,4.69 -2.37,-0.99 -5.13,-1.74 -7.34,-2.66 -1.81,-3.33 -1.13,-7.07 -0.75,-10.66 -3.86,-0.79 -8.92,-2.08 -9.69,-6.56 -1.65,1.27 -4.99,0.71 -4.64,-1.87 -0.45,-2.76 -1.64,-5.72 -3.61,-7.69 -2.74,-0.99 -5.53,-1.93 -6.83,-4.79 -1.25,-3.09 -5.32,-0.4 -7.74,-0.8z m46.75,26.38c-0.1,0.03 0.04,0.06 0,0z\",\"name\":\"Bayern\"},\"bw\":{\"path\":\"m233,542.31c-1,3.03 -3.8,0.55 -6.25,1.41 -1.85,0.3 -6.11,-0.67 -4.1,2.56 0.5,1.4 3.45,5.79 2.97,1.91 0.74,-2.88 3.54,0.29 3.5,2.12 -0.05,2.12 0.13,4.28 -0.67,5.91 -2.21,2.88 -6.93,-2.7 -8.36,1.34 0.26,1.89 -0.96,3.78 -2.66,5.38 -2.87,1.47 -6.48,1.36 -9.56,0.91 -0.14,1.71 -1.09,2.75 0.88,3.56 2.16,2.43 -1.84,4.61 -2.82,1.5 -2.24,-0.41 -4.9,0.87 -7.01,1.83 -1.86,1.31 -3.21,3.14 -1.07,4.79 -2.58,2.03 -4.76,4.93 -7.53,6.53 -2.28,0.77 -4.85,-1.67 -3.07,-3.7 0.44,-3.45 3.31,-3.76 5.49,-5.64 2.15,-2.77 -2.95,-1.33 -4.33,-2.33 -3.36,-0.68 -8.66,-1.27 -8.78,-5.66 -0.37,-2.27 -2.39,-6.18 0.16,-6.35 -1.56,0.22 -6.19,0.51 -5.66,2.03 1.02,1.01 1.63,3.91 1.34,5.81 -0.91,2.56 -4.61,4.01 -6.17,1.22 -1.23,-2.27 -2.8,-5.47 -5.58,-5.87 -1.35,0.5 -2.27,2.96 -1.13,4.34 0.64,2.82 1.72,5.99 1.41,8.75 -1.19,1.47 2.13,0.8 2.94,1.09 2.56,1.28 -0.68,4.01 0.44,6.03 0.58,2.78 -1.68,4.86 -3.44,6.5 -0.2,1.61 2.95,0.95 2.5,3.03 -0.5,1.7 -2.89,2.29 -3.8,3.97 -1.51,1 -4.09,2.21 -3,4.19 -0,4.19 -1.63,8.4 -2.57,12.44 -1.88,2.38 -4.07,4.74 -4.06,8 -0.94,3.32 -4.33,5.15 -7.25,6.25 -3.09,4.3 -5.58,9.02 -6.75,14.19 -2.02,2.94 -5.4,5.15 -8.91,5.69 -0.21,2.82 -1.4,5.14 -3.56,6.99 -1.36,2.17 -3.49,3.53 -5.66,4.61 -1.15,2.67 -3.64,5.13 -2.5,8.22 0.36,2.98 -0.28,5.69 -1.97,8.15 -1.95,4.34 -4.99,8.87 -3.01,13.76 0.98,2.33 -1.6,3.46 -3.29,4.06 -1.58,3.35 -1.03,7.85 -3.97,10.71 -3.45,3.81 -5.74,8.63 -5.57,13.85 -1.32,3.83 3.9,5.48 3.32,9.25 -1.3,3.08 -3.94,5.46 -4.57,8.93 -0.87,1.91 1.04,3.96 -0.54,5.81 -1.06,2.51 -2.87,5.19 -1.04,7.86 1.18,2.15 -0.92,4.15 -2.35,5.35 -0.31,3.89 3.1,6.22 5,9.16 2.34,1.03 6.63,0.35 6.5,3.84 -1.16,1.4 -4.38,2.08 -0.94,3.62 2.67,0.19 5.38,-1.24 7.85,-2.15 1.44,-1.71 2.81,-3.83 5.44,-3.09 2.67,-0.79 2.95,2.96 5.54,2.9 3.15,1.3 6.81,1.64 9.99,0.41 0.13,-3.3 4.53,-3.63 6.59,-5.48 2.38,-1.41 5.39,0.37 7.78,0.98 0.79,1.29 -0,3.08 2.19,3.78 3.61,0.25 7.37,1.32 10.72,-0.47 -3.18,-2.2 -0.41,-3.55 1.74,-5.09 1.44,-1.37 5.34,0.59 4.6,2.72 0.03,1.73 2.81,-2.43 2.91,-3.66 0.99,-2.17 -2.08,-3.31 -3.78,-2.38 -2.21,0.79 -3.16,2.58 -5.97,3.13 -1.88,-0.81 -4.32,-2.21 -5.31,-4.16 0.59,-3.61 2.99,-6.72 5.06,-9.63 1.63,-2.24 5.73,-0.38 6.44,-3.38 2.06,-2.35 5.55,0.44 4.49,3.47 2.07,0.67 0.21,-4.19 4.06,-1.25 1.57,1.2 4.32,3.45 2.25,5.23 0.1,2.76 1.41,4.58 4.22,5.01 1.74,-2.24 3.46,-0.92 5.76,1.59 2.1,2.97 5.8,0.78 7.96,-0.93 3.82,-2.7 8.65,-0.24 12.27,1.62 3.55,2.04 4.43,-1.99 2.13,-4.27 -0.59,-2.2 -2.12,-3.67 -4.12,-4.07 -2.4,-1.85 -6.01,-3.5 -6.96,-6.5 0.3,-2.1 3.03,-1.62 3.78,-0.16 3.5,2.46 7.48,4.47 10.66,7.31 -0.21,3.96 4.69,5.62 7.5,7.39 1.67,0.53 3.72,-1.14 5.59,-0.11 2.75,0.87 6.81,1.33 7.03,4.97 0.46,3.2 4.49,4.9 6.69,2.27 1.24,-1.5 4.61,-2.56 5.4,-0.7 4.17,1.33 6.15,-3.91 8.97,-5.72 3.32,-0.45 7.13,0.12 10.19,-0.66 1,-2.57 4.28,-2.37 6.22,-1.28 0.84,2.31 0.58,2.71 2.56,1.13 2.97,-0.39 2.03,-4.58 0.76,-6.39 -1.17,-2.02 -2,-5.8 -0.79,-7.3 3.32,-0.17 0.06,-2.21 -0,-3.93 -0.63,-3.04 -0.86,-6.31 0,-9.32 -2.23,-0.74 -2.32,-4.76 0.44,-4.66 -0.41,-2.68 2.08,-4.21 1.66,-6.88 -0.15,-2.82 0.59,-6.09 -1.94,-7.94 -2.26,-5.15 -1.96,-11.11 -3.49,-16.32 -1.93,-2.69 -4.53,-5.55 -4.67,-9 0.46,-2.92 3.93,-5.48 2.72,-8.47 0.1,-0.35 4.87,-3.47 6.42,-2.05 2,3.2 4.93,-0.95 6.82,-2.36 0.33,-1.38 1,-2.91 3.14,-2.96 3.03,1.76 2.98,-2.24 2.69,-4.25 -0.32,-3.5 -1.14,-6.78 -3.64,-9.37 -0.98,-1.42 0.15,-4.75 1.23,-5.16 3.02,1.48 6.11,1.47 9.25,0.41 2.37,-0.94 3.55,1.55 1.82,3.19 0.08,1.06 5.19,-1.87 2.3,-2.88 -0.25,-2.1 -0.85,-4.44 -3.47,-3.91 -1,-3.13 0.42,-4.65 1.54,-7.33 0.09,-4.38 1.32,-9.19 -0.13,-13.38 -2.03,-1.38 -1.82,-4.46 -4.4,-5.39 -2.47,-2.1 -5.26,-3.59 -8.29,-4.72 -0.45,-2.63 0.5,-4.11 -0.61,-6.97 -0.35,-3.23 -2.39,-5.85 -5.43,-6.81 -1.8,-1.05 -4.02,-2.25 -3.05,-4.75 -0.53,-2.57 0.99,-5.27 0.62,-7.5 -1.67,-2.84 -3.08,-6.33 -1.5,-9.56 2.72,0.17 4.05,-1.19 2,-3.69 -1.12,-2.08 -1.1,-4.65 -2.84,-6.37 -0.05,-1.52 1.05,-2.79 -0.28,-4.24 -1.33,-3.13 -3.46,0.38 -1.36,0.89 -1.36,2.26 -3.18,4.9 -6.23,4.2 -1.84,0.68 -5.99,-0.78 -4,-3.06 0.32,-2.43 0.8,-5.95 -0.91,-7.66 -1.91,-0.49 -2.69,-3.58 -3.13,-5.51 -1.12,-3.07 -1.07,-6.84 -4.03,-8.84 -3.37,0.71 -6.2,2.77 -9.34,3.81 -2.15,-0.26 -3.2,-3.12 -1.25,-4.19 -0.15,-1.71 1.98,-8.34 -1.11,-4.8 -1.56,1.02 -3.09,4.67 -5.17,2.44 -1.38,-0.64 -3.13,-1.84 -2.32,-3.58 -0.34,-0.5 -0.91,-0.09 -1.41,-0.13z m-57.69,212.03c0.26,4.67 5.28,-0.76 0,0z\",\"name\":\"Baden-WÃ¼rttemberg\"}}});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.russia.js",
    "content": "/** Add Russia Map Data Points */\njQuery.fn.vectorMap('addMap','russia_en',{\"width\":959,\"height\":593,\"pathes\":{\"da\":{\"path\":\"m34.939,403.74,2.6516,1.2627,3.6618,0.50507,1.7678-2.0203,2.1466,2.0203,2.3991-1.6415,0.25254-1.7678,1.6415-2.1466,3.0305,0.50508,3.7881-2.9042-0.50508-1.894-4.7982-0.50508,0.75762-3.1567-1.0102-0.63134,0.63135-2.2728-3.1567-2.7779,1.5152-0.50508,3.9143,0.88388,0-1.389-1.0102-1.2627,8.3338-0.25254,4.9245,5.4296,1.2627,1.894-0.37881,2.2728-5.3033-0.3788,0.50508,2.5254,1.5152,3.0304-1.0102,3.5355-2.3991,2.7779-1.2627,0.25254,4.5457,0.75761-5.5558,2.1466-0.50508,2.0203-0.75762,0.50508-3.0305,0.50507-0.25254,4.7982-1.2627,0.88388-1.1364,13.132-9.0914-0.12627-3.6618-2.2728-1.389-0.88388,0-11.617-3.283-5.9346,0.37881-2.9042,1.2627-0.37881z\",\"name\":\"Republic of Dagestan\"},\"sa\":{\"path\":\"M671.25,126.75l-1.44,1.06-1.25,1.63s1.44,0.87,2.16,0.87c0.71,0,2.69-1.97,2.69-1.97l-2.16-1.59zm18.47,12.09c-0.18-0.01-0.4,0.02-0.63,0.07-1.78,0.35-4.81,1.93-4.81,1.93s-1.41,1.1-2.12,1.1c-0.72,0-2.35-0.38-2.35-0.38-0.71,0-2.5,1.25-2.5,1.25l-1.4,1.78s-1.1-0.51-1.1,0.38-0.35,1.96,0.72,2.5c1.07,0.53,1.61,1.06,2.5,1.06s3.22-0.72,3.22-0.72l1.97-0.87,1.97,1.06s0.51-0.9,1.4-1.44c0.9-0.53,3.4-2.31,3.75-3.03,0.36-0.71,0.72-3.22,0.72-3.22s-0.11-1.36-1.34-1.47zm-19.81,7.1c-0.15,0.01-0.29,0.05-0.44,0.09-1.25,0.36-2.85,0.19-3.56,0.19-0.72,0-0.91,0.19-0.91,0.19s-0.88,1.58-1.59,1.93c-0.72,0.36-1.99,0.74-3.07,0.57-1.07-0.18-3.75-1.25-3.75-1.25s-1.93-0.02-1.93,1.59,3.03,3.41,3.03,3.41l1.06,1.4s-2.51,0.73-3.41,0.38c-0.89-0.36-2.65-2.16-2.65-2.16l-3.22-0.72s-2.88,0.2-2.88,1.1c0,0.89-0.68,2.67-0.68,3.56s-0.9,3.04,0.53,3.94c1.43,0.89,1.79,3.03,1.97,3.75,0.17,0.71,0.7,1.77,2.84,2.31,2.14,0.53,4.29,0.53,5,1.06,0.71,0.54,1.77,1.07,2.84,0.53,1.08-0.53,1.82-2.65,1.82-2.65l2.12-1.97s1.61-1.44,2.5-2.16c0.89-0.71,2.7-0.54,4.13-1.44,1.42-0.89,2.31-3.75,2.31-3.75v-5l-0.38-4.43s-0.68-0.58-1.68-0.47zm106.25,5.62c-0.45,0.09-0.75,4.1-0.75,4.1l-7.32,1.65-3.28,0.63-4.53-6.06-7.84-0.13-0.38,0.87-5.68,1.66-1.76,2.13-6.06,6.31v2.78l-2.15,1.91-3.29,5.03-4.93-2.38-3.41-0.37-1.75,2h-4.56l-3.41,1.78-1.75-1.53,4.28-2.91-2.28-1.62-3.03-0.13-8.84,4.03,1.9,5.44-0.87,4.78-2.66,2.91-1.65-2.13,3.03-7.47-1.75-0.37-2.66,4.03-3.03,2.03-1-0.75,1-3.16,2.28-0.74,2.91-2.66-7.1,1.75-9.22,5.31-6.68,0.25,3.65,3.66-3.65,3.4-0.5,3.03,0.37,1.16,3.91-1.78-1,4.03,4.81,2.91-0.91,2.9-2-1.37-3.68,1,1.28,3.41,2.4-0.26-1.03,2.66-3.9-0.5-4.28-1.66-3.53,0.26-2.41,3.15-0.63,4.06h-6.46l-1.76-1.53-2.4-2-0.5,4.41,0.87,0.87-0.12,1.41,1.65,0.87-0.9,2.54,1.66,6.18-3.29-1.4-1,1.15-9.87-5.31v-4.94l-2.25,0.13-1.78,2.41-2-3.41,3.65-0.63-0.5-2.9-4.43-1.66,0.75-0.87,0.12-2.53-5.28-4.04-5.31-2.53-1,3.66-7.35,0.65-2.37-1.65-4.19,2.15v2.13l4.19,4.69-10.94,5.31-10.28-1.16,0.44-4.4-12.07,0.19-3.96,3.78h-2.85l-1.09,1.09,2.66,2.87h-2.13l-2.91-2.06,1.19-2.09-0.87-1.38-1.54-1.78,0.07,2.28-1.5,1.07-3.85-1.32s-2.9,3.53-2.84,3.78c0.06,0.26,2.66,3.29,2.66,3.29l-1.41,3.34,1.59,2.09,0.19,2.78,7.38,5.82-0.32,5.47,2.53,1.9,1.63,2.53-2.53,2.72-4.41,3.03-0.69,2.63-4.81,2.78,0.25,6.12-2.25,1.1-2.97-1.28-5.65,4.75-4.44,0.09,0.06,1.97,5.38,6.59,1.78,20.1-6.35,1.97,4.19,3.4-1.78,4.19v1.25l7.16,8.84-4.57,6.69,0.97,1.6-2.4,1.87,0.09,2.25,5.63,0.34,0.71,0.72,9.1,0.19,3.31,3.31-0.53,1.6-3.31,0.34,0.19,3.94,4.03-1.06,5.06,6.59-0.53,5.53,3.84,5.19-1.97,3.4,0.53,2.13,7.69,6.53v4.37l-3.75,6.44,0.28,10.78,3.85,4.13,3.37-3.94,3.75,0.09,1.88-1.34,2.68-0.62,2.41-2.07,3.56,3.85,0.38,2.31,4-5.06,0.09-4.13,5.38-2.75-0.29-6.25,2.32-4.12,3.84-1.5,4.91,1.06,6.15,4.91,0.57,3.84,1.31,0.87,4.03-1.4,2.5-2.06,2.69,1.06,0.87,4.47,3.13,4.56,2.15,1.78v3.03l2.32,1.35,0.71,4.71,3.94,0.19,0.97,1.35,1.53,4.09,8.38-0.25,3.31-1.97,5.53,1.16,3.56,1.97,11-0.72,5.54,3.75,2.21,0.53,5.19-2.6h2.6l3.03,2.26,2.78-0.19,3.22-3.94,5.68-0.06,2.5-1.97h7.88l0.19-3.75,10.68-5.09,0.82-3.04-4.28-4.12,2.31-1.69,0.62-4.03-1.34-1.69-2.41,0.38-2.03-1.44,2.75-4.03-2.84-1.6,0.25-1.87,1.53-1.97-1.44-1.44-3.47-1.15-0.53-1.6,3.38-1.43-1.88-0.91-0.19-5.25-0.87-0.62-0.19-1.88,2.78-1.25-1.62-1.25v-2.94l5.47-1.97,3.12,0.16,0.25-1.78,6.53,0.09v-2.75l-1.25-1.53,1.16-1.25,3.47-0.62,3.31-2.22,1.34-6,5-0.44,0.1-2.06s-5.29-4.9-5.47-5.25c-0.18-0.36-0.88-3.94-0.88-3.94l-3.56-2.59v-5.97l2.94-7.16-1.69-9.19,0.78-3.12,13.5,0.72,0.25-5.28,5.19-1.16,3.47,1.87,0.81-2.31-2.41-3.69,1.69-0.62,0.19-2.75-7.16-8.5,0.1-4.37-3.13-1.5-0.09-4.04-1.78-1.15,1.09-2.13,3.81-0.47,1.35-1.78,4.28,0.38,0.09-2.44-3.37-1.5,0.15-3.31,5.47-0.53v-3.57l5.63,0.44,5.62-8.03,0.44-2.5-6.06-6.06-0.19-1.88,2.31-3.4-0.97-1.79-3.31,0.19-1.5-2.34,4.72-1.41-0.09-1.53-2.07-0.97-0.25-1.34,2.13-3.75,5.72-1.97-0.78-3.56,5.15,0.68-0.62-5.43,1.34,0.28,0.19-3.59-2.69-0.63-2.94-4.53-7.59-0.28-4.19-1.88,0.72-3.47h-3.12l-0.19-1.62,8.12-10.44,1.07-7.84s-9.81-5.72-10.25-5.63zm-135.1,8.56c-0.12,0.03-0.23,0.08-0.34,0.19-0.89,0.9-1.07,1.79-0.53,2.5,0.53,0.72,1.06,1.63,1.78,2.35,0.71,0.71,2.31,1.25,2.31,1.25s0.71-1.1,0.53-1.82c-0.18-0.71-1.97-2.84-1.97-2.84s-0.94-1.78-1.78-1.63zm28.94,7.35l-2.31,0.34s-1.07,0.91-1.25,1.63c-0.18,0.71-0.9,1.24,0,1.78,0.89,0.53,3.75,1.25,3.75,1.25s1.6-0.02,1.78,0.87c0.18,0.9,0.18,1.8,0,2.69s-0.53,1.78-0.53,1.78l0.72,0.72,1.93-0.53s0.74-0.72,1.82-0.72h2.65s1.44-0.53,1.97-1.25c0.54-0.71,1.97-1.25,1.97-1.25h2.69s1.41-0.52,0.87-1.59c-0.53-1.07-1.76-1.62-2.65-2.16-0.9-0.53-3.22-2.31-3.22-2.31h-2.5l-3.6,0.34-2.84,0.38-1.25-1.97zm-17,10.15c-0.12,0-0.22,0.01-0.31,0.04-0.72,0.17-1.44,1.4-1.44,1.4s0.37,1.78,2.16,1.78c1.78,0,2.3,0.55,2.65-0.34,0.36-0.89-0.87-2.31-0.87-2.31s-1.37-0.55-2.19-0.57z\",\"name\":\"Sakha Republic\"},\"so\":{\"path\":\"m45.583,387.43-2.2728,2.6516-4.1669-2.6516-2.0203,1.1364-0.37881,5.8084-1.1364,1.389-2.2728-0.12627-5.9346-2.6516-3.0305-3.283,0.12627-4.9245,4.672,0.75761,0.37881-0.88388,2.5254-0.12627,3.283,1.5152,4.0406-1.894s-0.12627-3.5355,0.75761-2.7779c0.88388,0.75762,1.389,1.2627,1.389,1.2627l0.25254,3.5355z\",\"name\":\"Republic of North Ossetia–Alania\"},\"kb\":{\"path\":\"m20.982,375.86c0.26786,0.35715,2.5893,4.7322,2.5893,4.7322l0.98214,3.9286,4.6429,1.1607,2.8571-1.0714,3.2143,1.5179,4.375-1.875,0.26786-3.125-5.9821-2.3214-1.875-5.0893-2.2321-1.1607-4.375,0.71429z\",\"name\":\"Kabardino-Balkar Republic\"},\"kc\":{\"path\":\"m13.482,361.39,2.2321,8.4821,5.0893,6.25,4.375-2.6786,5.3571-0.89286,0.08929-3.3928,3.75-1.0714-6.6964-7.2321-2.2321,2.4107-2.8571,0.26786-1.6071-4.5536,0.44643-2.1429z\",\"name\":\"Karachay–Cherkess Republic\"},\"st\":{\"path\":\"m33.929,367.73-3.4821,0.98215,0.17857,3.75,1.5179,1.25,1.7857,4.6428,6.5179,3.0357,1.3393,1.3393,0.08929,3.0357,3.8393,1.7857,1.6071,2.5893,3.2143,0.625,0.71429-1.4286-2.8571-3.125,1.5179-0.53572,3.5714,0.80357,0.17857-1.1607-0.98214-1.3393,7.7679-0.0893,1.6964-1.5179,0.26786-3.5714-5.2679-7.5-0.17857-9.4643-3.4821-6.0714-4.9107-0.98214-1.5179-2.7679-5.0893-5.7143-0.98214-0.625-1.5179,1.3393-2.7679-2.0536-1.4286,0.80357-0.80357,1.0714-0.08929,1.6071,0.35714,1.3393,0.35714,1.1607-0.71429,1.6071-0.98214,1.4286-1.9643,2.2322-1.875,1.0714-0.71428,0.98214-0.98214,2.3214z\",\"name\":\"Stavropol Krai\"},\"ks\":{\"path\":\"m21.607,356.48-0.08929,2.0536,0.98214,3.8393,0.35714,0.80357,2.2321,0.0893,3.75-4.5536,1.4286-1.9643,1.9643-1.0714,2.6786-4.0178-0.26786-3.3929,0.17857-1.6964,0.89286-1.5179,1.3393,0,1.7857,1.5179,1.3393,0,2.5893-3.0357,0.08929-1.9643-0.89286-0.98214-2.2321-1.3393,0.17857-2.9464,2.8571-3.125,0.08929-1.4286-2.7679-2.9464-3.75-0.71428-0.80357-0.89286,1.6071-1.25,0.17857-2.4107-2.1429-1.6072-2.5893-0.80357-1.6071-1.6964-1.25-0.98214-0.89286-0.0893-1.3393,2.2322-0.625,0.98214,1.0714,1.4286-0.35714,1.5179-0.80357,0.625-2.7679-0.26786-0.89286-0.89286-1.9643,0.0893-1.875,0.71429-3.0357,1.7857-1.6964,0-1.3393-1.4286-1.6071-0.625-1.1607-1.4286,0-2.6786-2.2321-0.26786-1.25,0.625-0.35714,2.9464-0.089286,13.214,0.71429,5.8929,0.98214,3.6607-0.089286,2.3214-0.625,2.7679-0.089286,2.4107,0.17857,2.0536,1.5179,0.89285,0.71429,0.625,1.6071,1.5179,0.89286,1.0714,0.89286,0.89286l7.947-4.27-0.804-1.25-0.357-1.43-5.089,2.68h-1.875l-1.25-1.875,0.35714-3.5714,6.25-1.4286,2.7679-2.3214,0.71429-2.5893-1.3393-0.80357-1.9643,0.44642-1.1607-1.5178-0.71429-2.6786-1.3393-1.7857-0.17857-1.25,0.08929-1.1607,1.3393-0.80357,1.3393,0.625,1.0714,1.3393,1.0714,1.9643,1.3393,1.7857,2.3214,1.3393,1.6964,0.89285s0.625,0.26786,0.71429,0.625c0.08929,0.35715,0.89286,2.6786,0.89286,2.6786v4.0178l-0.08929,1.3393-1.0714,1.0714-1.875,1.5178-1.6071,1.4286z\",\"name\":\"Krasnodar Krai\"},\"ro\":{\"path\":\"m37.5,323.45,2.0536,0.98214,1.4286-0.17857,0.625-0.89286-0.44643-1.1607-1.25-0.89286-1.9643-1.3393-0.89286-1.1607-0.35714-0.71428,1.0714-1.4286l2.231-1.08,1.6071-0.26786,1.0714,0.35714,1.4286,1.3393,1.5179,0.35714,1.6964-0.89286,0.89286,0.44643,1.072,1.06,1.339,1.79,0.268,1.33,1.607-0.08,1.3393-0.80358,1.6964-0.0893,1.3393-0.0893,0.35714-1.5178,0.53571-1.4286,1.25-1.6071,1.3393-1.0714,1.6964,1.0714,0.71429,0.35714,0.89286-1.875,0.44643-0.71428,2.6786-0.26786,1.875-1.6964,2.3214-0.17857,2.0536,1.1607,2.1429,1.25,0.98214,0.53571,3.9286,0.0893h2.2321l1.5179-0.98215h1.3393l0.71429,0.625,0.26786,1.6964-0.08929,1.9643v1.875l-0.08929,1.0714-0.981,1.34-1.25,0.98214-1.25,0.71429-0.80357,0.35714-0.35714,1.25-0.44643,1.6072-0.08929,1.4286-0.44643,1.1607-0.625,1.4286-1.4286,1.5179-1.6964,0.53571h-3.125l-1.608-0.36-1.518,0.53-0.625,1.97-0.982,0.62-0.80357,0.53572,0.17857,0.89285,1.3393,1.4286,0.71429,1.4286-1.1607,1.4286-1.3393,0.89285-0.80357,1.7857-0.08929,0.80357,0.98214,0.53571,1.1607,1.1607,0.625,1.0714,0.80357,0.80357,0.71429,1.3393v1.0714l-0.71429,0.80357,0.53572,0.625,1.4286,0.35715,0.625-0.53572,0.71429-0.0893,0.35714,0.98214v1.4286l-1.3393,1.3393-2.1429,1.0714-2.0536,1.1607-3.3929,0.0893-0.80357,0.80357-1.3393,0.80357-1.696,0.46-1.429-0.71-1.696-0.71-0.893-0.9-0.178-2.23-0.179-1.52-1.696-2.14-1.1607-0.80357-0.17857-1.25-0.80357-0.89286-1.7857-0.0893h-2.7679l-2.8571-0.0893-1.3393-0.17857-1.6071-1.7857-0.98214-0.71429v-0.89286l1.3393-1.5178v-1.5179l-0.625-1.25-1.875-1.4286-0.71429-0.625,0.26786-2.2322,2.7679-3.2143,0.08928-1.6071-1.9643-2.2322-1.3393-0.89285-2.411-0.55-1.0714-0.35714-0.08929-0.71429,1.0714-1.0714,0.26786-1.1607z\",\"name\":\"Rostov Oblast\"},\"kk\":{\"path\":\"m44.554,348.71,0.98214,1.6071,1.1607,1.0714,1.1607,1.6964,0.80357,1.1607,1.1607,0.71429,2.5893,0.44643,1.3393,0.625,0.98214,1.6071s0.98214,1.7857,1.25,2.2321c0.26786,0.44643,0.98214,2.4107,0.98214,2.4107l0.17857,4.9107v3.2143l0.89286,2.2321,3.3036,4.1964,1.25,2.0536-0.17857,2.5893-1.4286,1.875,0.89286,1.3393,4.375,4.7321,0.53571,1.25,0.35714,0.98215,0.89286,0.53571,1.4286,0.0893,1.6071-0.26786,1.7857-0.53572,2.2321-0.89285,2.3214-0.26786,0.713-0.71,0.625-2.15-0.268-1.16-2.232-1.34-0.982-0.71,0.08928-1.3393,1.0714-0.625,1.7857,0.0893,1.4286-1.25-0.53572-0.71428-0.71428-2.0536-0.268-1.7-0.179-1.16h1.0714l1.6964,1.25,1.7857,0.80357,2.6786-0.17857h0.89286l0.53571-1.1607-0.17857-2.4107-0.08929-3.8393v-6.3393-0.98214l-0.08929-2.2321,2.9464-2.8572,0.17857-1.3393-1.4286-0.625v-3.2143l-1.0714-1.1607-1.1607-0.35715-2.5-0.17857-0.625-1.4286-0.17857-0.80357-1.25,0.26786-0.625,1.0714h-1.3393l-1.25-0.0893-1.071-0.98-0.804-0.71-2.321-0.27-0.98214,0.35715-0.71429,0.80357-0.71429,0.35714-0.26786,1.1607-0.35714,0.80357,0.35714,0.625,1.0714,0.35714,1.0714-0.44643,0.89286,0.35714,0.08929,0.98215-0.44643,1.5178-5,3.125-3.3929,0.26786-2.3214,1.3393-1.5179,0.53571-3.8393-1.7857-0.53571-0.35715-0.08929-3.3928-0.71429-1.4286-2.3214-2.2322-0.625-1.25-1.9643-0.80357h-3.5714z\",\"name\":\"Republic of Kalmykia\"},\"as\":{\"path\":\"m86.873,350.94,1.6415-1.389,1.1364-0.63135,1.7678,1.2627,2.0203,0.63135,2.2728,0.50508,0.88388,1.0102,2.1466,0.88388,0.75761,1.1364,0.63134,1.1364,0,1.389,0,0.88389-1.5152,0.3788-1.1364,1.389-0.12627,1.0102,0.63134,1.389,1.0102,1.1364-0.37881,2.1466-0.75762,1.0102-1.7678,0.88389-0.25254,1.1364,0.50508,0.88388,1.7678,1.1364,2.2728,1.5152,1.389,1.6415,0.63134,1.0102,0,1.5152-1.0102,1.1364-0.25254,2.0203-1.0102,1.0102,0,2.2728,0,2.7779-0.75761,0.3788-1.7678-0.3788-1.894-0.75762-0.63134,0.37881-0.37881,2.1466,1.6415,2.1466,1.1364,1.2627,0.88388,1.0102,0.50508,0.63134,0.12627,1.2627-3.9143,0.25253-3.0305,0.63135-2.1466,0-1.894-1.2627-2.0203-1.5152-5.4296,0-1.0102-0.37881-1.1364-1.1364,0.37881-2.9042-0.88388-1.0102-2.2728-1.6415,0-1.6415,1.0102-0.3788,1.5152,0,1.389-1.0102-0.63134-1.389-0.75761-4.0406,0.63134-0.3788,1.2627,0.75761,2.9042,1.389,2.0203-0.25254,1.2627-0.12627,0.50508-1.6415-0.25254-5.4296,0.12627-5.0508-0.25254-4.2931,2.1466-2.2728,1.0102-1.1364,0.12627-1.389-1.2627-0.50508-0.25254-2.1466z\",\"name\":\"Astrakhan Oblast\"},\"ad\":{\"path\":\"m21.786,356.21,2.4107-1.4286,2.5-2.6786,0.35714-2.1428-0.26786-3.9286-1.0714-2.7679-2.9464-0.98214l-2.412-1.78-2.232-3.75-1.5179-1.1607-1.3393,0.71428-0.17857,2.1429,1.6071,1.875,0.80357,2.5893,1.1607,1.6964,1.6071-0.35714,1.5179,0.44643-0.44643,2.9464-2.9464,2.3214-3.394,0.71-2.8571,0.35715-0.17857,3.8393,1.0714,1.7857h1.7857l5.3571-2.9464,0.35714,1.7857z\",\"name\":\"Republic of Adygea\"},\"vl\":{\"path\":\"m85.893,313.18,1.5179-0.98214,1.875-0.0893,1.1607-1.0714,1.1607-1.6072,0-1.25,1.1607-0.98214,1.9643,1.25,2.5,1.9643,3.3036,2.1428,3.9286,1.5179,1.4286,1.5179,0.625,2.1428,0.44643,1.4286,2.8571,0.35714,0.44643,1.4286,2.5893,0.80357,1.7857,1.7857,1.6964,1.6964,0.17857,2.2322-1.5179,1.25-1.6071,2.2321-1.4286,1.3393-0.26786,1.25,0.89286,2.2321,2.9464,1.875,1.6964,1.875,1.7857,1.1607,1.25,3.3036,1.0714,1.875,0.0893,1.25-0.71428,0.53572-1.3393,0.44643-0.71429,0.53571-2.8571,0.26786-4.6429-0.0893-1.6964,0.26786-0.71429,1.6071,0,2.8572-0.17857,1.1607-1.6964,1.25-1.3393,0.98214-4.0178-0.0893-1.0714-0.0893-1.3393-3.0357-1.4286-1.0714-1.875-1.0714-1.0714-0.625l-2.256-0.46-2.054-1.25-1.071-0.18-1.1607,0.625-0.98214,0.71429-1.25,0.26785-2.1429-0.0893-0.89286-1.1607-0.35714-1.25-1.4286,0.26786-0.89286,1.1607h-1.25l-1.875-0.71428-1.25-0.80357-1.3393-0.35715-1.4286,0.17858-1.4286,1.25h-0.89286l-1.4286-2.5-1.25-1.4286-1.0714-0.71428,0.448-1.44,0.893-1.52,1.607-1.43,0.179-0.89-1.6964-2.1429-0.44643-1.0714,1.4286-0.80358,0.625-1.875,0.625-0.53571,1.25-0.35714,1.6071,0.0893h3.0357l1.7857-0.625,1.9643-2.5893,0.89286-4.0179,0.625-1.4286,2.8571-2.0536,1.1607-1.6964,0.35714-3.3036v-2.2322z\",\"name\":\"Volgograd Oblast\"},\"vn\":{\"path\":\"m70.089,310.77,0-6.0714,0.08929-1.1607,3.75-3.2143,2.5-3.6607,1.3393-1.4286,0.35714-1.875,2.4107-0.71428,0.35714-2.5893,0.625-1.7857,1.0714-0.35714,0.625-2.0536,1.3393-1.7857,1.1607-1.0714,0.98214-0.53571,0.89286,1.1607,0.44643,0,0.71429-1.0714,0.53571-0.71428,1.1607-0.17857,0.89286,0.89285,1.25,1.1607,1.4286,1.4286,1.1607,1.5179,0.80357,0.89285-0.26786,2.1429,0,1.6071,1.875,1.0714,2.3214,1.3393,0.80357,1.3393-0.0893,1.7857-0.89285,1.5178-0.44643,0.98215,1.5179,1.25,1.875,1.7857,1.9643,2.2321,1.3393,1.6964,1.1607,1.9643-0.26786,2.3214,0,2.0536-2.1429,1.0714-0.71428,0.17857-4.2857-1.875-2.6786-1.7857-2.1429-1.4286-1.6964-1.1607-0.53571-0.17857-0.71429,0.80357-0.44643,1.25-1.4286,1.9643-1.6964,0.44643-2.8571,0.80357-3.5714,1.1607-3.2143,0.0893-2.5-0.17857-2.3214-1.25-2.3214-1.0714z\",\"name\":\"Voronezh Oblast\"},\"bl\":{\"path\":\"m63.304,272.29-5.4464,3.3036,0.08928,2.6786,1.6964,1.875,0.08929,3.125,0.44643,1.6964,2.8571,1.6071,2.8571,0.44643l1.608,2.23-2.5,3.3036-0.35714,2.1429,1.0714,1.6071,2.3214,1.5179,0.17857,2.9464,1.1607,1.5179,0.71428,0.89285,4.7321-4.375,3.75-5.4464,2.0536-0.89285,0.80357-4.1072,1.0714-0.89285,0.53571-1.3393-2.5-2.8571-3.5714-4.1071-2.7679-0.26786-2.9464-1.1607-2.6786-1.6964-2.5893-1.6072-1.9643-1.6071z\",\"name\":\"Belgorod Oblast\"},\"ky\":{\"path\":\"m63.482,271.84,0-4.6429l-0.357-1.61-1.786-1.97-0.714-1.07,1.3393-1.0714,3.75-1.3393,2.7679-1.3393,2.6786,0.0893,0.53571,1.0714,1.25-0.0893,1.7857-1.1607h0.80357l0.98214,0.44643,1.4286,1.6071,0.53571,0.80357,0.08929,1.6964,1.0714,0.89286,1.0714,0.71428h0.89286l1.0714,1.25,0.17857,3.2143v2.4107l-0.89286,0.98214v1.5179,1.1607l1.0714,1.25,1.1607,0.98214,0.89286,0.17857,1.5179,0.53571,1.0714,1.6072,1.6071,1.5178-0.71429,1.1607-0.80357,0.89286-0.89286-0.80358-1.9643,1.25-1.4286,1.1607-0.53571,0.80357-3.4821-4.1071-2.2321-2.3214-0.98214-0.53572-3.3036-0.625-2.8571-1.5178-3.6607-2.1429-2.4107-1.9643z\",\"name\":\"Kursk Oblast\"},\"or\":{\"path\":\"m74.732,258.27,1.0714-1.875,2.2321-0.26786,0.89286-1.6071,0.89286-0.53572,1.9643,0.89286,1.6964-0.0893,1.6071-0.71429,1.0714-1.5179,0.89286-0.53571,0.98214,0.17857,1.3393,0.98214,1.9643,0.89286,1.1607,0.89286,0.35714,0.89285,0.71429,1.3393,0.17857,2.0536,0,3.6607,0.98214,1.7857,1.4286,1.875,0.80357,1.25,0.71429,1.7857-0.26786,1.5179-3.9286,1.875-1.9643,0.98214-1.0714,2.1429-1.875,1.0714-1.875,1.0714-2.4107-0.89286-1.9643-1.6071-0.44643-1.6964,0.44643-1.9643,0.44643-0.89285,0.08928-4.4643-0.89286-1.6964-1.7857-0.53571-1.7857-1.4286-0.08929-1.6072-1.3393-1.5178-1.6071-1.6964z\",\"name\":\"Oryol Oblast\"},\"lp\":{\"path\":\"m86.875,278.45,1.5179,1.875,1.0714,0.89286,1.1607,0.71428,1.1607,1.0714,2.5,2.2321,1.25,1.5179,0.625,1.4286-0.44643,2.5893,0.53572,0.625,2.5,1.3393,1.875,1.7857,1.0714-0.17857,1.0714-0.625,0.44643-0.80357,0.0893-5.8036,0.35714-0.71428,1.4286-0.80357,2.3214-0.17857,2.0536-1.1607,1.3393-0.44643,0.17857-1.6964,0.625-1.3393,1.25-1.5179-0.80357-1.1607-2.6786-0.98215-0.53571-0.53571-0.17858-0.71429,1.0714-1.3393,0-1.6071-2.1428-0.35715-1.0714,0.44643-1.6072,0.80357-0.98214,0.89286-1.1607,0.625-1.4286,0.0893-1.3393-1.5179-1.6964-1.6964-0.80357-0.98214-2.4107,0.89285-3.125,1.6964-1.1607,1.6072-1.6071,1.4286z\",\"name\":\"Lipetsk Oblast\"},\"tl\":{\"path\":\"m93.482,256.3,3.2143-2.0536,0.98214-0.17857,1.6071,0.80357,0.98215-0.80357,0.71428-1.0714,3.125,0,1.6072,0.625,2.0536,0.35714,1.4286,0.80358,2.4107,0.35714,1.4286,0.71428,0.53572,1.0714,0.98214,1.0714,1.25,1.4286,0.71429,1.6072-0.35715,1.6964-0.98214,1.1607-0.71428,1.6964-1.3393,1.9643-1.6964,2.0536-1.0714,1.875-0.71428,0.98215-0.53572,0.35714-1.7857,0-2.5,0.89286-1.5179,1.0714-1.3393,0.26785-2.0536-1.3393-2.0536-2.5893-0.26786-2.0536-0.53571-1.4286-1.6071-2.5l-1.413-2.14-0.179-2.23z\",\"name\":\"Tula Oblast\"},\"bn\":{\"path\":\"m67.679,258.62,0.26786-1.7857,2.3214-1.5179,0.44643-1.1607,0-1.4286-1.6071-1.9643-1.7857-2.1429-1.6964-1.9643-2.3214-1.875-1.5179-0.89286-1.6964-0.26786-0.89286-1.1607,0.17857-2.3214,1.3393-1.6071,3.125-2.1429,2.6786-1.875,0.89286-1.7857,0.98214-0.71428,1.6964,0.26786,0.625,1.25,0.625,1.5178,1.0714,2.2322,1.1607,0.80357,5.8929,0.26785,2.1429-0.35714,1.4286,0.53572,3.125,0.89285,2.3214,0,0.71429,1.9643,0,2.2321-0.17857,1.1607-0.98214,1.5178-0.71429,0.53572-0.26786,1.4286,0.26786,1.5179,0,1.25-0.80357,1.4286-1.4286,1.5178-1.7857,0.71429-1.6964,0.17857-1.7857-0.71428-1.4286,0.71428-0.26786,0.89286-2.4107,0.80357-1.0714,1.4286-1.3393,1.25-1.4286,0.17857-1.4286-0.71428z\",\"name\":\"Bryansk Oblast\"},\"kj\":{\"path\":\"m89.196,239.61,1.6071-1.25,1.6071-1.3393l1.161-0.27,1.429,0.63,0.80357,1.4286,1.0714,1.25,1.7857,0.80357,1.7857,0.35715,3.125,0.0893,1.875-0.0893,1.6071-1.0714,2.4107-0.0893,1.4286,0.44643,0.98214,2.0536,0.26786,1.4286,1.25,0.625,1.6071,0.98215,0.98214,0.80357,0.53572,1.25-0.53572,2.0536-1.0714,1.7857-1.4286,1.9643-1.1607,1.25-0.89286,0.44643-3.75-1.25-2.6786-1.0714-2.6786,0.0893-1.875,0.44642-1.0714,1.25-1.5179-0.44642-1.0714,0.0893-1.0714,0.80357-2.0536,1.0714-0.89286-0.89286-1.0714-0.80357-1.9643-1.25-1.5179-0.89285-0.89286-0.44643v-1.0714-2.4107l-0.08929-0.625,1.1607-1.6964,1.0714-1.875v-1.7857l-0.26786-1.6071z\",\"name\":\"Kaluga Oblast\"},\"sm\":{\"path\":\"M79.375,237.55,80,235.95,80.179,234.52,79.732,233l-0.08928-1.4286,1.5179-1.3393,0.71429-1.6071,0.08929-3.125,0.35714-1.875,2.4107-2.5,2.5-1.9643,1.875-1.7857s1.875-1.3393,2.2321-1.5179c0.35714-0.17857,2.5-1.5178,2.5-1.5178l2.5,0.0893,3.0357,3.4822,1.875,3.4821,2.5,3.6607,1.4286,0.89286,2.7679,0.53571h2.0536l0.80357,0.71429,1.1607,1.875,1.1607,1.3393,1.25,1.6071,1.0714,1.4286,0.17857,1.3393-0.98214,1.25-1.875,0.89285-1.875,0.53572-0.89286,1.25-0.44643,0.89285-1.875,0.44643-1.7857,0.625-1.6072,0.35715h-3.0357l-3.75-0.80358-1.7857-1.7857-1.4286-1.3393-1.1607-0.26785-1.1607,0.71428-2.2321,1.5179-1.1607,0.44643-1.7857-0.44643-4.1071-0.98214-2.4107-0.35715z\",\"name\":\"Smolensk Oblast\"},\"mc\":{\"path\":\"m116.07,234.16,3.5714,0.26785,2.3214-0.89285,1.4286-0.44643,0.53571,0.625,0.0893,1.7857,0,1.1607-0.17857,1.3393,1.5178,0.89286,2.9464,0.44643,1.7857,0.89285,2.0536,0.89286,2.7678,0.89286,1.7857,0.26786,1.25,0.53571,0.26786,1.6071-0.0893,1.5179-0.44643,1.6964-1.5179,0.625-2.1428,1.1607-1.6072,1.3393-0.0893,1.25-0.625,1.7857-1.1607,1.5179-0.35714,1.6071,0.17857,1.6072,0.0893,0.89285,1.1607,1.0714,1.0714,0.625,1.1607-1.0714,0.625,0.44643,0,1.5179-0.0893,3.2143-0.44643,1.1607-1.3393-0.44643-1.875-0.17857-1.6072,0.17857-0.80357,0.89286-2.0536,0.0893-1.6071-0.35714-1.25-0.71429-1.0714-1.1607-1.6071-0.625-1.6964,0-0.44643,0.80357-0.17857,1.1607-1.0714,0.53571-1.4286,0.0893-0.80357-0.80358-0.17858-0.625,1.1607-2.4107,0.26786-1.9643-0.53572-1.6964-1.1607-1.5179-1.1607-1.5179-1.0714-0.89286,0.625-1.25,2.5-2.9464,1.1607-2.6786-0.71429-1.7857-1.6071-1.6071-1.6071-0.98215-0.53572-0.35714-0.625-1.875-0.80357-1.25-0.80357-0.80357,0.625-1.5179,2.5893-1.3393z\",\"name\":\"Moscow Oblast\"},\"rz\":{\"path\":\"m114.55,265.59-1.9643,2.6786-2.1429,3.125-0.625,2.7679-0.80357,1.7857,0.17857,0.80357,1.6964,0.71429,1.9643,1.3393,0.44643,1.5179-0.26786,0.89286,1.4286,1.1607,1.9643,0,1.1607,0.71429,0.0893,1.875,0.44643,1.1607,1.25,0.44643,1.5179-0.625,1.9643,0,1.5179,0.98214,0.625,1.7857,1.0714,1.1607,2.6786-0.17857,3.125,0,2.9464-2.0536,3.0357-2.9464,1.5179-2.2321,1.0714-1.7857-0.98214-2.2321-0.53572-3.125-2.0536-2.0536-1.25-1.6964-0.44643-2.8571-0.53571-1.6072-0.35715-0.98214-2.1428-0.35714-3.4822,0.26786-0.625,0.80357-2.1428-0.17857-1.875-0.71429-1.875-1.0714-1.9643-0.89286-1.0714,0.35715-0.80357,1.4286-1.4286,0.89286-1.6071-0.44643z\",\"name\":\"Ryazan Oblast\"},\"tb\":{\"path\":\"m112.77,279.43-1.6964,2.1429-0.35714,1.7857-0.80358,0.89286-2.6786,0.98214-1.875,0.44643-1.5178,0.71429-0.71429,1.4286,0,2.1429,0.26786,2.3214-0.71429,1.875-1.5179,0.53571-0.44642,1.4286-0.44643,1.6964-0.625,1.1607,0.08928,0.625,2.3214,2.1429,2.2321,2.1429,1.6072,2.2321,1.4286,2.0536,0.98214,0,2.1429,0,1.9643-1.25,2.5-1.25,1.6964-1.0714,4.0179-0.26785,1.0714-0.98215v-3.6607c0-0.35714,0.0893-2.3214,0.0893-2.3214l1.5179-1.1607s0.71429-0.71429,0.80357-1.0714c0.0893-0.35714-0.26785-4.6429-0.26785-4.6429l1.4286-1.0714-0.80357-2.1428-1.7857-1.4286-2.3214,0.26786-0.89285,0.625-1.1607-0.80357-0.89286-1.3393v-1.3393l-1.875-0.80357h-1.3393l-0.89286-1.0714-0.26786-1.3393z\",\"name\":\"Tambov Oblast\"},\"kn\":{\"path\":\"m44.107,152.55,0,2.2322,0.53571,2.5,2.0536,5.1786,1.4286,3.4821,1.9643,3.6607,2.5,1.0714,3.75-0.44642,1.9643-1.3393,0.625-1.7857-0.44643-4.2857-0.89286-2.8571-1.5179-1.6071-2.4107-0.53572-0.98214-0.71428,0-3.0357-0.80357-1.4286-1.6964-1.6071-1.6071-0.26786-0.35714,1.25-0.625,1.3393-0.625,0.89285-1.4286-0.35714z\",\"name\":\"Kaliningrad Oblast\"},\"ps\":{\"path\":\"m95.268,213.98,0.35714-2.1428-0.26786-2.1429-1.4286-1.875-1.3393-1.4286-0.08929-1.6964,0.98214-0.71429,0.17857-1.6964-0.89286-0.98215-1.25-1.875,0-4.1964,1.5179-0.89285,3.75-2.2322,0.80357-2.4107,0.53572-1.7857,1.875-1.25,2.4107-0.0893,1.3393-1.6071,0.98214-1.6964s1.25-0.625,1.6072-0.80357c0.35714-0.17857,2.8571-0.71429,2.8571-0.71429l1.5179-0.0893,1.0714,0.53571-0.625,1.5179-0.71428,0.89285-0.17857,0.98215,1.6071,0.26785,1.25-1.7857,0.98214-2.0536,1.1607-1.5179,1.6071-0.71428h1.6071l1.5179-1.5179,1.1607-0.625h1.4286l0.98214,0.98214,0.625,1.5179,0.98214,1.6071-0.26786,1.6964-0.89285,0.98214-0.35715,1.3393-0.80357,1.6071-0.17857,1.1607h-1.4286-0.80357l-0.71429-0.53572-0.80357,0.53572-0.625,0.80357-0.53571,1.5178-0.53572,2.1429-0.0893,2.5-0.35715,1.875-1.1607,1.25-1.3393,0.98214h-1.7857l-1.5179,1.3393-0.53571,1.7857-1.3393,0.53572-0.44643,1.0714-0.17857,1.4286-1.7857,0.89286-1.7857,0.80357-0.625,1.6964,0.625,1.5178,0.625,0.625-0.26785,1.4286s-0.0893,0.44643-0.44643,0.80358c-0.35714,0.35714-1.1607,1.3393-1.1607,1.3393l-1.4286,0.80357-2.3214,0.89286-1.0714,0.0893-1.1607-0.89286-0.89286-0.89286z\",\"name\":\"Pskov Oblast\"},\"no\":{\"path\":\"m123.12,188.27,1.5179,1.25,2.1428,0.35714,2.1429,0.17857,1.25,1.1607,2.5,0.53571,2.3214-0.0893,1.0714-0.89286,0.44643,0.625,0.0893,1.7857,2.1429-0.53571,2.3214,0.0893,0.80357,0.80358,0.17857,2.5,0.17857,2.5,0.53572,1.0714,1.3393,0.17858,1.3393,0.44642,0.26785,2.1429,0.71429,1.6964,0.98214,0.80357,0.44643,2.9464,0.0893,2.2321,0.89285,1.4286-0.53571,0.98215-0.71429,0.53571,0,1.6071,0.17858,1.5179,1.4286,1.3393,0.625,0.53571,0.0893,1.9643,0,1.9643-0.17857,1.3393-1.25,0.53571-0.71428-0.26785-0.625-0.80358-0.71429-0.80357-0.17857-1.1607-0.98214-0.80357-0.80358-0.625-2.0536,0-1.5178-0.53572-0.53572-0.35714-1.5178-0.53571-0.71429-0.26786,0-0.44643s-0.26786-1.25-0.26786-1.6964c0-0.44643-0.0893-2.0536-0.0893-2.0536l-0.625-0.98214h-1.7857l-0.89285-0.44643-0.44643-0.98214-0.98215-0.625-0.53571,0.625-0.89286,1.0714-1.6964,1.4286h-2.1428c-0.35715,0-1.5179,0.0893-1.5179,0.0893l-0.71429-1.0714-1.0714-0.71428-2.3214-0.17857-2.6786-0.0893-1.5179-0.44643-1.3393-0.98214-2.3214-0.44643h-2.1428l-0.89286-1.1607-1.25-1.0714-0.53571-0.71429-1.1607-0.71428,0.98214-2.7679,0.71429-0.44643,1.1607-1.5179,1.0714-1.0714,2.0536-0.625,2.5-1.9643,0.625-1.9643,0.0893-3.5714,0.98214-2.5893,1.0714-1.25,1.1607,0.26786z\",\"name\":\"Novgorod Oblast\"},\"tr\":{\"path\":\"m98.661,216.66,3.2143-0.625,2.2321-1.6072,1.3393-1.6071,0.17857-1.4286-0.80357-1.4286-0.26786-1.3393,0.35714-0.89286,1.4286-0.89285,1.6964-0.625,1.1607,0.44643,1.5179,1.5178,1.0714,0.98215,0.98215,0.53571,1.6964,0.17857,2.4107,0.35714,1.3393,0.98215,1.3393,0.26785,3.2143,0.44643,1.5178,0,1.25,0.71429,0.80358,0.71428,1.875,0.35715,1.7857-0.17857,1.875-1.6072,1.25-1.25,0.71429,0.44643,0.625,0.80357,1.4286,0.44643,1.4286,0.17857,0.53571,1.5179,0.17857,2.4107,0.35715,0.80358,1.1607,0.71428,1.4286,0.80357,1.0714,0.26786,1.875,0.35714,0.98214,0.26786,1.25,1.0714,0.44643,1.3393,0.98214,1.0714,0.80358,0.53572,1.7857-0.35715,1.3393,0.0893,1.25,0.71429,1.6071,0.89285,0,1.5179-0.625,1.6964-1.25,1.6071-1.6071,0.44643-1.25,0.98214-1.5179,1.3393-0.89286,1.0714-0.44643,0.71428-0.26785,1.5179-0.44643,1.0714-1.25,1.4286-0.53572,1.4286-0.35714,2.0536-2.0536,1.9643-2.0536,1.3393-1.0714,0.17858-0.53571-0.71429-0.26786-1.7857-1.6964-0.71429-3.8393-0.89286-3.8393-1.6071-3.0357-0.80357-1.5178-1.0714-0.0893-3.0357-0.35714-1.6964-3.3036,0.80357-3.4822,0.26786-1.3393-0.89286-3.4821-4.4643-1.5179-2.0536-3.3036-0.625-2.7679-0.53571-1.4286-1.7857z\",\"name\":\"Tver Oblast\"},\"vm\":{\"path\":\"m137.41,247.73,1.6072,1.7857,2.0536,1.25,1.1607,1.0714,1.3393,0.35714,0.80357,0.89286,0.0893,1.5178-0.89285,1.7857-0.35715,1.0714,1.25,0.625,1.7857,0.26785,1.0714,1.1607,0.17857,1.9643,0.98214,1.875,1.0714,1.25,1.3393,1.25,1.3393,1.3393,1.3393,1.1607,1.7857,1.875,0.89286,1.3393-0.17857,0.98214-0.89286,0.71429l-0.18,0.98,0.53571,0.71429,0.44643,0.71428,0.0893,1.6072-1.7857,0.53571-2.2321-0.0893-1.1607-1.0714-4.4643-0.0893h-5.1786l-1.7857,0.53571-0.71429-1.6964-1.6964-1.9643-1.6071-2.6786-0.80357-4.1964-0.0893-4.1071-0.17857-2.0536-0.44643-0.44643-0.71428,0.44643-1.1607,0.26785-1.4286-1.25-0.26786-2.5893,0.71429-2.0536,1.1607-2.0536,0.44643-1.7857,1.3393-1.0714z\",\"name\":\"Vladimir Oblast\"},\"pz\":{\"path\":\"m127.05,289.96,1.6964,1.7857,2.0536,1.5179,1.25,0.98214,1.6964,0.625,1.25,1.875,0.71429,1.6071,0.26785,1.9643,0.98215,0.98214,1.0714,1.0714,2.6786,0.17857,1.6964,0.0893,0.625,2.1429,0.89286,1.7857,1.6964,0.71429,2.1429,0.26785,1.4286,1.0714,0.625,1.0714-1.5179,0.89286-0.89286,0.98214,0.0893,4.1071-0.26786,3.4822-2.7679,1.25-1.0714-0.0893-0.89286,1.6071-1.9643,0.98215-1.1607-1.7857-0.98214-0.98214-5.9822-0.0893-1.1607-1.875-0.89286-0.89285-3.125-0.71429-0.98214-1.6071-1.25-1.6964-2.1429-0.71429-2.4107-1.3393-1.6071-1.0714-2.5,0.0893-0.71429-1.875,0.26786-2.5,1.1607-0.89285,3.8393-0.80357,0.89285-2.4107,0-3.4821,1.3393-1.6964,1.3393-1.6071-0.26786-2.5893,0-1.9643,1.1607-0.89286z\",\"name\":\"Penza Oblast\"},\"sr\":{\"path\":\"m107.23,308.27-0.17857,3.0357-0.26786,1.25-2.2321,1.1607,1.4286,1.6964,1.0714,3.2143,2.2321,0.71429,0.98215,0.80357,0.89285,1.0714,1.7857,0.625,2.5893,2.5,0.89286,1.0714,0,1.875-1.5179,2.0536-2.4107,2.8571-0.44643,1.25,0.44643,1.6964,0.71429,0.89286,2.1428,1.1607,4.0179,3.9286,1.7857,4.5536,1.25,1.4286,1.25,1.3393,0.26786,1.9643-0.71428,2.5-0.53572,2.4107,0.26786,1.7857,0.89286,1.0714,1.6071,0.44643,1.6964,0,1.6964-1.1607,1.25-1.0714,0.44642-2.6786,0.0893-1.875,2.2321-0.625,3.3036,1.25,1.6964,0.35714,1.6072,0,1.3393-1.5179,0.44643-0.53571,1.6071,0.35714,1.3393,1.0714,1.5178,0.89286,4.6429,0,1.1607-1.1607,1.3393,0.17857,0.89286,0.80358,1.6071-0.53572,0-1.7857-0.89286-1.9643-0.35714-1.3393-0.17857-3.9286-0.0893-2.0536-0.71428-1.25,0.0893-2.8571-0.35714-1.6071,0-2.5-0.80357-1.3393-1.1607-1.6071-2.5-1.0714-1.6072-2.0536-2.5893-0.0893-1.0714-0.35714-1.7857-1.6964-0.625-1.25-0.44642-0.89286-1.7857-2.4107-5.625-0.26786-0.53571-0.17857-1.9643-2.5893-3.125-0.89286-2.2321-2.9464-6.1607-3.3036-2.3214,0-1.0714-1.6964,0.44643-2.5-0.80357-0.35714-3.8393,2.1428-1.5179,0.35715z\",\"name\":\"Saratov Oblast\"},\"mr\":{\"path\":\"m127.59,290.05,1.875,2.1429,2.6786,1.7857,1.7857,1.1607,1.7857,2.7679,0.44642,2.4107,2.0536,2.1429,2.5893,0.0893,1.6071,0.26786,0.89286,2.2321,0.71429,1.4286,2.0536,0.89286,1.7857,0.35714,1.25,0.625,0.53572,0.80358,5.8928,0.17857,2.6786-3.5714,0.35715-0.53572,0.71428-1.3393,0.0893-2.1429-0.0893-1.9643-1.7857-0.98215-0.35714-2.5-0.0893-0.80357-1.6964,0,0,0.17857-0.80357,0.89286-1.3393,0.80357-5.2678,0-2.5893-2.3214,0.17857-3.5714-1.1607-1.0714-0.17857-0.80358,1.0714-1.0714,0-1.6072-2.5893-0.53571-1.7857-0.0893-0.80357-1.25-0.71429-1.6964-1.25,1.1607-2.1429,2.3214-2.4107,1.5178-1.5179,0.98215-2.9464,0.26785z\",\"name\":\"Republic of Mordovia\"},\"cu\":{\"path\":\"m159.11,299.07,1.3393-0.89286,2.9464,0.44643,1.3393,0.44643,1.0714-1.3393,0.26786-1.7857,2.2321-1.1607,2.2321-2.2322,3.125,0.0893,2.6786,0,1.25,1.5179,0.35715,2.9464-0.17857,1.5179,0.35714,1.25,0.71428,1.1607-0.0893,0.71428-1.3393,0.625-4.1071-0.0893-1.3393,0.53571-0.80357,0.80357,0,0.89286,1.1607,0.71428-0.17857,0.89286-1.3393,1.1607-1.7857,1.25-2.1429,0.98214-1.3393,0.44643-1.3393-1.3393-2.5-0.44643-0.98215-0.625-0.98214-1.3393-0.80357-0.80357,0.80357-3.5714z\",\"name\":\"Chuvash Republic\"},\"ul\":{\"path\":\"m158.57,305.32-1.875,2.6786-0.98215,1.4286-4.8214-0.26785-0.80358,0.26785-1.7857,1.4286-0.80357,1.1607,0,2.3214,0,2.5893,0,1.6964-1.7857,1.4286-1.0714,0.26786-0.89286,0-1.25,1.25-1.25,1.0714-0.625,0.26786,0.89286,1.9643,1.6071,1.6071,2.3214,0.44643,1.5178,0.17857,1.25,1.6072,1.5179,0.80357,2.1429,0.17857,0.89286-0.625,0.0893-1.875,0.17857-1.6964,1.0714-1.6964,0.35714-1.3393,1.3393-0.26786,0.80357,0.53571,1.3393,0.625,1.875-0.17857,1.3393-0.98214,1.0714,0.17857,1.6964,1.4286,2.0536,1.875,1.5179,1.6072,0.80357,1.4286,2.3214,0.17857,1.1607-1.5179,2.8572-2.0536,2.0536-1.1607,0.26785-2.3214,0-3.5714-1.875-1.1607-3.6607-0.0893-2.0536-1.4286-0.98214-1.1607-2.5-0.26785-0.98215-1.5179-3.0357-1.5179-0.80357-1.5179-0.625-2.0536z\",\"name\":\"Ulyanovsk Oblast\"},\"ss\":{\"path\":\"m150.98,329.96,1.3393,2.1428,0.71428,2.8572,0.44643,2.8571,0,2.1429,0.625,2.3214-0.0893,2.8571,0.35714,2.4107,0.53571,2.1429,0.625,1.9643,0.71429,0.98214,5.8929,0.0893,3.0357-1.6071,1.25-1.9643,1.9643-0.35715,1.6964-0.0893,2.1429-1.4286,1.4286-0.89286,1.25-0.17857,1.6072,0.625,1.7857-0.17857,0.80357-1.875,1.0714-2.3214,4.375-2.5893,1.7857-1.4286,1.1607-2.0536-0.625-1.5179-0.80357-1.7857-0.35715-2.5-1.1607-1.25-0.71429-2.4107-3.6607-0.26785-2.3214-1.6964-1.4286-0.80357-3.5714,2.3214-1.9643,2.2322-2.4107,0.0893-0.98214-0.98214-2.2321-2.4107-2.4107-1.875-1.0714-1.0714-0.89285,0.26785-1.6072,0.71429-1.6964-0.0893-1.5178-0.80357-1.0714,0-0.625,0.98215-0.53572,1.0714-0.80357,1.5179-0.17857,1.3393,0,0.98214-0.0893,0.71429z\",\"name\":\"Samara Oblast\"},\"ob\":{\"path\":\"m155.89,352.82,0.53571,1.4286,0.71429,1.6071-1.0714,1.6072,1.0714,1.4286,3.0357,0.17857,1.9643-0.35714,2.5,0,0.17857,2.3214-0.89286,2.6786,0.35714,1.0714,3.5714,1.6071,2.1429,1.4286,0.17857,3.5714,0,4.1071,0,1.4286-1.25,0.89286,0,1.9643,0,0.71428,0.71429,1.0714,1.0714,0.89286,1.7857-2.5,0-1.4286,0.89286-0.89286,1.4286,0,1.0714,2.3214-0.17858,1.4286-0.71428,1.25-0.35714,1.4286l0.36,1.43,1.25,0.89286,2.3214,1.25,1.7857,0.89286h1.9643,2.5l1.4286-1.0714,1.6071,0.17857,1.9643,1.0714,0.89285,1.6071,0.35715,1.7857,1.0714,1.25h1.7857l0.89286-0.89285h1.25l1.6071,0.53571,1.25,1.4286,0.53571,2.6786-0.17857,3.5714,1.7857,1.6072,1.4286,0.89285,1.0714,1.6072,1.0714,0.53571,1.6071-0.71429,1.4286-0.17857,1.6071,1.4286v1.25l1.9643,1.7857,1.25,0.71428,2.1429,0.35715h2.6786l1.4286-0.17857,1.25-0.89286,1.25-1.0714,0.89286-0.89286-0.17858-1.25-2.3214-3.2143-1.0714-1.25v-3.75l-0.71429-2.1429-0.17857-2.1429,1.0714-2.3214,1.9643-1.4286-1.4286-1.7857-3.0357-2.8571-1.9643,0.35714-1.4286-0.17857-0.89286-1.25h-2.3214l-1.4286,1.25-1.0714,1.25-0.53572,1.0714h-2.5l-1.0714-2.5-3.2143-0.17858-2.8572-0.35714-0.89285-2.5-1.08,0.33-1.79,0.89h-1.4286l-0.17857-1.0714,1.4286-1.7857,2.5-2.5-0.53-1.78-0.71-0.36v-0.89286l2.5-1.9643,0.35715-1.0714v-2.1429h-1.7857l-2.1429,0.71429-1.6071,0.17857-1.4286-1.9643-0.53571-2.3214,1.25-1.7857,1.0714-0.89286v-1.6071l-0.35714-2.3214,1.0714-0.89285,0.17857-3.0357-1.25-1.9643-1.7857-1.7857-0.17857-1.6071,1.0714-2.8571,1.6072-2.5,0.89285-1.7857-0.53571-1.25-2.1429-1.6071-1.4286-2.1429-1.25-1.4286-1.6071,1.7857-1.4286,1.4286-4.1072,2.5-1.4286,1.9643-0.35714,1.9643-0.53571,0.35714-1.9643,0.17857-2.1429-0.35714-1.9643,0.53571-1.9643,1.4286-2.8571,0.53572-1.0714,0.71428-1.4286,1.7857-2.1429,1.25h-2.5z\",\"name\":\"Orenburg Oblast\"},\"nn\":{\"path\":\"m156.25,271.57,4.2857-0.53571,2.5-1.4286,3.5714-0.71428,2.6786-1.0714,1.25-0.17857,2.3214,1.25,1.7857,1.0714,2.6786-0.17857,1.4286,0,2.6786-1.0714,1.25,0.17857,1.4286,1.9643,1.0714,2.1429,2.5,0.17857,2.5,1.7857,1.0714,1.25,0.89286,2.5,1.25,1.4286-0.17858,1.6071-1.25,0.89286-1.7857,0.17857-0.71429,0.89286-1.6071,0-0.71428-0.89286-1.7857-1.0714-1.6071,0.71429,0,1.6071-1.25,1.4286-1.25,0.53572-2.1429-0.89286-2.1429-1.6071-3.0357-0.89286-1.7857,0-1.0714,0.89286-0.71429,1.7857,0,2.8571-0.17857,2.8572,0.53571,1.0714-1.0714,1.4286-2.3214,1.4286-1.4286,0.89285,0,1.4286-0.35715,0.89285-0.89285,0.71429-2.8572-0.35714-1.0714-0.17858-0.89285,0-0.71429,0.53572-0.38692,0.34215-0.69448-0.12626-0.44194-0.50508-0.50508-3.0936-1.5784-0.12627-1.5784,1.4521-2.2097,0.44194-3.9775-0.25253-2.0834-2.0203,0.1894-3.3461-1.2627-1.389-0.0631-0.75761,1.0102-1.4521-0.0631-1.0733-3.7249-0.63135-1.1996-0.75761-1.0733-2.7148,1.1364-2.336-1.1996-3.3461,2.0203-0.50507,3.283-0.12627,5.9978,0.12627,1.2627,0.88388,2.0203,0.1894,2.0203-0.75761,0.12627-1.5152-0.94702-1.4521,0.63135-1.0733z\",\"name\":\"Nizhny Novgorod Oblast\"},\"ml\":{\"path\":\"m181.51,286.29,2.2728,2.336,2.4622,2.0834,2.7779,1.1364,2.9673,0.0631,2.4622,2.0834,1.5784,1.6415,0.44194,1.3258,0.63134,0.94702-0.3788,1.6415-0.56821,1.1364-0.0631,1.8309-1.5152,1.389-0.88388,0.56821-1.4521-0.12627-1.1996-1.5152-1.1996-0.44194-1.389-0.82075-1.7046-0.12627-0.50508,0.88389-1.7046,0.88388-2.5885,0.12627-1.9572-0.82075-1.1364-0.69448-0.88388-3.0305-0.37881-4.7351-1.1996-1.4521-4.0406-0.0631-1.3258-0.1894-0.63134-1.0733,0-2.0834,0.0631-3.0936,0.37881-1.8309,1.0102-1.0733,0.82075-0.63134,2.5885,0.3788,2.2728,0.88389,2.9673,1.7678z\",\"name\":\"Mari El Republic\"},\"ta\":{\"path\":\"m160.93,308.14,0.0631,1.1364,0.44194,1.0733,0.88389,1.0102,1.5152,0.63134,1.8309,1.4521,1.5152,0.75762,1.389,0.44194,1.4521,1.0733,1.389,1.0102,2.4622,0.44194,1.4521,0.0631,1.7046,0.88388,0.12627,2.2097-0.37881,2.9042,0.44195,1.4521,2.0834,1.1996,1.0733,0.75761,2.9042,0.18941,0.82075,0.69448,0.56821,1.7046,1.3258,2.1466,0.63134,2.5885,0.88389,1.7678,1.6415,1.894,1.389,2.2728,1.6415,1.1364,0.88388,0.88388,1.1996,0.0631,2.9042-1.8309,2.9042-2.7148,0.44194-0.63135,0-1.894-1.0102-1.0102-0.0631-0.88388,1.8309-0.25254,1.2627,0.31567,0.75762,0.56822,1.3258,0.3788,1.6415-0.31567,1.1996-0.69448,2.9042-0.12627,1.5152-0.37881,0-0.94701-0.37881-1.2627-1.1996-1.5784-0.63134-1.2627-1.5152-0.44194-0.88389-1.2627s1.2627-1.0102,1.5784-1.1364c0.31567-0.12627,2.2728-0.75762,2.2728-0.75762l0.0631-1.4521s-1.1364-0.18941-1.389-0.50508c-0.25254-0.31567-0.69448-0.94702-0.69448-0.94702l2.0203-1.3258,2.0203-1.389,0.12626-1.1364-0.69447-0.82075h-1.5152l-0.69448,0.0631-1.1364,1.3258-0.56821,0.69448h-1.894l-0.12627,0.88388-0.12627,1.3258-0.82075,1.1364-1.5152-0.12627-0.75761-1.4521-1.1364-0.94702-0.82075,1.0102-1.7678-0.31567-0.56821-2.2728-1.4521-0.88388-0.63135-1.2627,0.12627-1.3258-1.1364-1.3258,0.0631-2.6516,0.12627-3.0936,0.63135-0.94702-0.25254-1.0102-0.69448-1.0733-0.56821-0.56821-1.0102,0.44194-0.88388,0.37881-1.0102-0.12627-1.0733-0.88389-0.88388-0.82074-1.8309-0.69448-1.4521-0.44195-0.94702,0.94702-1.8309,0.75762-1.8309,0.1894-1.6415-0.31567-1.9572-1.0733-1.389,0.50508h-2.7148l-2.0834,0.0631-1.389,1.1364-0.0631,0.88389,0.69448,0.50507,0.12627,0.82075-0.82075,1.0733-1.5152,1.2627-2.6516,1.0733-1.5784,0.69448-1.1364-0.75762-2.0834-0.82075z\",\"name\":\"Republic of Tatarstan\"},\"iv\":{\"path\":\"m144.26,252.7,2.0203-1.1364s0.94702-0.50507,1.1996-0.50507c0.25254,0,2.5885,0.31567,2.5885,0.31567l2.7148,1.1364,2.3991,1.1364,1.2627,1.1996s1.4521,1.0102,1.7046,1.1996c0.25254,0.18941,1.4521,1.2627,1.4521,1.2627l1.7046,0.63135,1.1364-0.88388h0.88388l0.50508,0.82074,0.1894,1.1996,1.0102,0.75762,1.5152,0.82074,1.0102,0.63135,0.44194,1.0102-0.69448,1.0733-0.12626,0.88388,0.75761,0.37881,0.88388-0.56821,1.389,0.63134,0.69448,0.94702,0.25254,1.2627-0.25254,0.50508-1.894,0.69448-2.9673,0.82075-3.0936,0.50507-2.3991,1.5152-3.4724,0.50508-0.94702-0.12627-1.7678-2.3991-3.5987-3.4724-2.7148-3.3461-0.82075-2.7779-0.88388-1.0102-2.1466-0.44195-0.69448-0.56821,0.50507-1.4521,0.56821-1.3258z\",\"name\":\"Ivanovo Oblast\"},\"yr\":{\"path\":\"m154.11,228.33,1.7678,1.5784,1.9572,0.50507,1.7678,0.50508,1.3258,1.6415,1.9572,1.5784,1.5784,0.0631,1.0733-0.69448,0.82075,0.31568,0.3788,1.4521,0.12627,3.4093-0.0631,2.6516,0.25254,1.5152,0.88388,1.0102,0.56821,0.94702-0.37881,1.0733-1.7046,1.1364-2.7148,1.3258-3.283,2.2097-1.6415,1.0733-3.3461,0.88388-2.4622-0.1894-2.1466-0.63135-2.6516-0.69448-2.1466,0.63135-1.8309,1.0733-1.7046-0.88388-1.4521-1.0102-1.894-1.1364-1.1364-1.1996-0.25254-1.3258,0.56821-1.4521,2.0203-0.88388,2.2097-1.1996,1.6415-2.7779,1.0102-2.9673,1.1996-1.2627,0.75762-2.4622,1.6415-1.8309,1.9572-1.8309,2.7148-1.5152z\",\"name\":\"Yaroslavl Oblast\"},\"kt\":{\"path\":\"m168.7,245,1.389,0.12627,1.2627-0.75762,1.5152-1.389,1.894-0.75762,1.894,1.1364,1.894,1.5152,2.5254,0.12627,0.63135-0.75761,0.75761,0.50507,1.2627,2.1466,2.2728,2.2728,1.5152,1.5152,1.1364,1.894,0.3788,2.2728,1.2627,1.7678,1.5152,1.6415,2.5254,1.389,1.7678,1.5152,1.7678,1.894,2.0203,0.88388,1.894,0.12627,2.0203-2.0203,1.6415-0.3788,0.63135,1.894,1.1364,1.0102-0.12627,1.6415-1.6415,1.5152-0.12627,1.894-0.3788,2.5254s-1.7678,0.75761-2.3991,0.75761c-0.63134,0-6.3134-0.12626-6.3134-0.12626l-3.1567,0.12626-1.1364,1.1364-1.2627,0.50507-2.0203-0.75761-1.5152-0.75762-2.0203-0.3788-1.0102-1.5152-0.88388-1.6415-0.75762-0.63135-1.1364-0.12627-0.88388,0.50508-2.1466,0.75762-3.283-0.25254-1.7678-0.50508-2.0203-1.2627-0.50508-0.50508,0.25254-0.63134v-1.1364l-1.389-1.2627-0.88389-0.50508-0.63134,0.37881-0.38556,0.10695-0.53571-0.35714,0.0893-0.89286,0.71429-0.625,0.0893-0.98214-0.89285-0.71429-1.7857-1.0714-0.98214-0.98215-0.26786-0.98214-0.71428-0.89286h-0.98215l-0.89285,0.625-0.625,0.0893-1.25-0.71429-1.4286-0.80357-1.3393-1.25-1.7857-1.3393-0.69-0.57,1.07-0.71,2.05-0.54,2.3214-0.71428,2.8571-2.0536,3.3036-1.6964z\",\"name\":\"Kostroma Oblast\"},\"le\":{\"path\":\"m123.49,177.57,1.7678-1.6415,1.5152,0,2.2728-1.894,2.5254-0.50507,2.2728,0.63134,2.9042,2.1466,2.7779,1.5152,0.75761,2.5254,0.12627,1.389,1.0102,1.1364,1.1364-0.37881,0.75761-2.0203-0.12627-2.3991-0.88388-1.6415-0.88388-1.894,0.12626-2.0203,1.1364-1.2627-0.25254-1.894-0.75762-1.0102,0-0.37881,1.2627-0.25254,3.283,0.25254,3.5355,1.2627,2.2728,0.12627,1.894,0.12627,1.2627,1.1364,0.63135,1.2627,0,1.7678-0.37881,1.6415-0.25254,2.1466-0.63134,1.7678-2.1466,1.2627-0.75761,1.0102-1.0102,1.894-1.0102,1.1364-1.7678,1.1364-0.63135,1.2627,0.25254,1.1364,1.389,0.75762,2.1466,0.25253,1.0102,0.88389,0.25254,1.6415,1.0102,0.75762,2.1466,0.12627,1.1364-0.50508,3.4093-0.25254,1.7678-0.63134,2.0203-0.25254,1.5152,0.75761,1.0102,1.6415,1.1364-1.2627,1.389-1.7678,0.75762,0.88388,0.50507,2.0203,0.63135,2.2728,2.1466,0.50507,1.2627,0.75762,1.1364,1.0102,0.12626,1.2627,0.12627,1.6415-0.12627,1.7678-1.2627,0.75761-2.2728-0.25254-1.389-0.88388-1.389-0.25254-0.75761,0.88388-1.5152,1.0102-3.0305,0-1.5152,0.3788-2.7779,3.0305-1.0102,1.389-0.37881,2.1466-1.6415,1.0102-1.1364,0.12627-0.3788,1.2627-1.2627,0.63134-0.63135-1.0102-1.1364-1.1364-2.2728-0.12627-0.75761,0-1.1364-3.0305,0-2.9042-1.0102-1.5152-0.88389-1.894-0.12627-1.6415-2.2728-0.88388-0.88388-0.63135s-0.37881-1.0102-0.37881-1.5152c0-0.50507-0.25254-3.4093-0.25254-3.4093l-0.75761-1.1364-2.3991-0.25254-1.389,0.75761-0.75762-0.50507-0.12627-1.2627-0.63134-0.88389-1.0102,0.63135-2.1466,0.3788-2.7779-0.88388-1.5152-0.88388-3.283-0.37881-1.2627-0.88388-1.0102-0.75762,0.63135-1.2627,0.88388-2.1466,0.88388-1.389,0.12627-1.2627z\",\"name\":\"Leningrad Oblast\"},\"ki\":{\"path\":\"m207.59,265.33,1.2627-0.88388,0.12627-2.0203,0-2.0203-1.0102-1.389-0.12627-1.6415,1.5152-0.37881,3.9143,0.25254,2.5254-0.88388,2.6516-1.1364,0.63134-1.389,1.1364-0.63134,2.7779,0.25254,1.389,1.7678,0.12627,2.7779-0.63134,3.0305-1.0102,1.389-0.75761,2.7779-1.894,0.75762-2.0203,0.12626-1.6415,1.7678-0.63134,1.6415-1.0102,0.63134-0.75761,0.88389,0.75761,1.389,1.6415,0.88388,1.0102,1.389-1.6415,1.894,0.12626,1.894,1.1364,0.88389,1.2627,0.50507,0.88388-1.389,0.88388-1.894,2.7779,0,3.1567,0.3788,4.2932,1.2627,1.7678,2.2728,2.1466-0.12627,2.1466-1.6415,1.6415,0.37881,1.2627,1.0102,0.75762,1.894s1.0102,1.5152,1.389,1.7678c0.3788,0.25254,2.5254,1.894,2.5254,1.894l0.25254,1.5152-0.88389,2.0203-2.0203,1.1364-3.5355,0.25253-1.2627,0.63135-1.2627,1.5152-0.25254,1.389,1.0102,1.389,0.12627,1.1364-1.5152,1.1364-0.75762,1.389-0.12627,2.1466-1.2627,1.0102-2.7779,0.12627-1.1364-1.2627-1.0102-2.5254-2.0203-0.12627-1.389-0.3788v-1.894l-2.0203-1.1364-3.1567,0.75761-1.7678,1.389s-1.2627,1.0102-1.2627,1.5152c0,0.50508-0.3788,2.2728-0.50507,2.7779-0.12627,0.50508-1.6415,1.5152-1.6415,1.5152l-2.5254,1.1364-1.894-0.50507-1.2627-1.389-1.5152,0.25253s-0.75761,0.50508-1.0102,1.389c-0.25254,0.88389-0.12627,2.7779-0.12627,2.7779l0.12627,1.894-2.0203,0.63135-3.4093,0.3788-0.25254,1.1364v1.389l-0.3788,1.389-1.7678,0.88389h-0.63135l-0.63134-1.5152-0.50508-0.37881,0.12627-2.5254,0.25254-2.5254,0.50508-1.5152-0.88389-1.6415-0.25254-1.2627,0.75762-2.9042,0.63134-2.5254-1.0102-1.5152-1.6415-2.5254-2.1466-1.5152-0.88388-0.63134-3.9144-0.12627-1.7678-1.2627-1.6415-1.5152-1.6415-1.5152-0.50507-0.50508,0.50507-1.0102,1.2627-1.6415,0.25254-1.0102,1.1364-0.75761,1.5152,0.50507,1.894,1.389,1.389-0.75761,2.1466-0.63135,1.389-1.2627v-1.5152l-1.2627-1.894-0.63135-1.5152s-0.78918-1.1049-0.85231-1.2627c-0.0631-0.15784,0.56821-0.69448,0.56821-0.69448l0.97858-0.63135,0.75762-0.75761s2.2728-0.0316,2.8095-0.0316c0.53664,0,3.1567,0.0631,3.8828,0.0631,0.72605,0,3.7881-0.44194,3.7881-0.44194l1.4521-0.59978s0.12626-1.5784,0.15783-1.7993c0.0316-0.22097,0.47351-2.4938,0.47351-2.4938l2.0203-2.3991z\",\"name\":\"Kirov Oblast\"},\"bs\":{\"path\":\"m211.5,329.86,2.3991-1.6415,2.5254-1.6415,1.5152-0.25254,1.894,2.6516,2.2728,2.2728,2.9042,0,2.6516,2.5254,1.7678,2.5254,1.1364,1.7678,1.7678,0,1.2627,2.1466,2.6517,2.3991,2.2728,1.6415,2.0203,1.7678,1.2627,1.1364,0.88389,1.389-0.37881,1.1364-1.6415,0.63134-0.88388,1.2627,0.25254,1.389,1.389,0.63135-0.63135,1.2627-1.5152,0.50508-1.2627-0.75762-2.3991,0.37881,0,1.0102-1.5152-0.25254-0.50508-0.88388-1.5152-1.0102-4.5457,0-1.1364-0.37881,0-1.2627,1.7678-1.2627,0.12627-1.389-1.0102-0.88389-1.6415-1.1364-2.5254,0.25254-1.0102,2.1466-1.7678,2.6516-0.88388,2.0203,0.50508,3.0305,1.894,1.0102,2.0203-0.75761,1.6415,0.75761,1.0102,2.0203,2.5254,0.12627,2.0203,0.75761,2.7779,0,1.7678-0.50508,1.5152,1.1364-0.63135,1.389-1.894,1.5152-1.2627,1.1364-1.0102,1.389-1.2627,0-1.2627-0.63134-2.1466-0.75762-1.6415-0.3788-1.6415,1.2627-0.3788,1.5152-0.63135,1.389-2.3991,2.6516-1.6415,2.3991-3.9143,3.6618-1.894,1.5152-0.25254,2.0203-0.63134,1.5152-2.9042-0.25254-1.6415,1.7678-1.2627,1.389-0.50507,0.63135-2.0203,0-1.1364-2.0203-0.50508-0.63134-5.4296-0.63135-1.389-2.1466-2.7779,0.88388-1.2627-0.12627,0-0.50507,3.4093-4.4194,0-1.6415-0.88389-0.63134,0-1.1364,1.7678-1.1364,1.0102-1.389,0-2.0203-0.25253-0.50508-1.894-0.12627-2.2728,1.2627-1.7678-1.1364-1.1364-2.3991,1.2627-2.3991,1.0102-1.894-0.25254-2.5254,0-0.75761,0.88389-1.5152,0-3.1567-2.5254-2.9042-0.12627-2.0203,1.0102-2.6516,2.0203-4.1669,2.9042-2.1466,3.9143-3.1567,1.0102-2.1466-0.88389-1.389-0.12627-0.12627,0-0.75761,1.389-0.25254,2.3991,0.75762,1.389,0.12626,1.7678-0.63134,2.6516-0.25254,1.7678-0.12627,0.88388-0.63134,0-1.7678z\",\"name\":\"Republic of Bashkortostan\"},\"cl\":{\"path\":\"m242.18,347.66,1.7678-0.88388,2.7779,0.50507,2.3991,2.1466,2.3991,1.7678,3.0305,1.894,2.9042,0,1.5152,1.6415,1.6415,2.3991,0.75761,1.894-0.63135,3.1567,0,2.7779-0.88388,1.389-1.7678,0.63135-1.6415,1.1364-0.75762,1.2627-2.0203,0.63135-1.894,1.5152,0,1.1364,1.5152,1.5152,2.0203,2.0203,1.1364,2.3991-0.37881,2.7779-0.75762,1.7678-2.3991-0.63135-2.6516-0.50507-3.283-0.37881-2.0203-0.50508-1.5152-1.7678-2.0203-1.7678-1.1364-1.1364-1.1364,0.50508-1.5152,1.1364-0.88388,1.0102,0,1.894,1.6415,1.2627-0.37881,0.75761-2.2728,0.63135v1.0102c0,0.50508,0.75761,2.0203,0.75761,2.0203l2.0203,1.7678,0.12627,1.894-1.5152,0.63134-1.5152-1.5152-1.389-1.2627-2.2728-0.63134-3.283,0.12627-1.5152,0.25253-0.63134,1.2627,1.0102,1.389-0.37881,1.894-1.0102,1.6415-4.5457,0.25254-1.6415-0.88389-1.6415-0.63134,0.50507-2.0203,1.6415-0.88388-0.75761-1.7678-2.0203-2.3991-1.6415-1.0102-1.894,0.12627-1.389-0.63135,0.63134-2.7779,1.7678-2.6516,4.4194-4.1669,3.7881-4.672,1.2627-2.9042,1.389-0.88389,2.5254,0.25254,2.0203,1.0102h2.0203l1.894-2.2728,2.2728-1.894,0.50508-1.389-1.5152-1.2627-2.1466,0.50507h-3.0304l-2.7779-0.88388h-1.5152l-0.88388-1.894-1.389-0.50507-1.7678,0.63134-1.0102-0.37881-0.88389-0.63134-0.63134-1.894-0.12627-1.6415,3.6618-5.6821,0.75762-0.63135,1.7678,0.37881,1.7678,0.88388,0.63134,1.1364-0.3788,0.75762-1.2627,1.1364v1.1364l-0.12627,0.12627,0.75761,0.63135,2.6516,0.12627h2.2728l1.5152,1.0102,1.2627,1.1364,1.1364-0.63135,0.50507-0.75761,2.0203,0.12627,1.7678,0.37881,1.1364-1.2627-0.37881-1.0102-0.75761-0.88388,0.25253-1.5152,1.5152-1.0102,0.63135-1.1364z\",\"name\":\"Chelyabinsk Oblast\"},\"ud\":{\"path\":\"m231.7,302.33-0.12627,1.389-2.0203,2.7779-1.5152,1.389,0.12626,1.389-1.6415,1.0102-1.1364,1.5152-1.5152,2.3991-0.50508,1.894-0.50508,3.1567-2.0203,1.0102-2.2728,0.12627-0.63135,1.1364-0.37881,3.0304-0.12627,1.389-3.0304,2.0203-2.2728,1.389-1.0102,0-1.2627-1.5152-1.7678-0.75762-0.63134-1.2627,1.389-1.1364,2.0203-0.75761,0.50508-1.1364-0.37881-0.50508-1.5152-0.88388,0.25254-0.88389,2.7779-1.7678,1.0102-1.1364-0.50507-1.0102-0.75762-0.63134-2.0203,0.63134-1.1364,1.389-1.5152,0.63135-1.0102,0.25253-0.3788,1.5152-0.63135,0.75762-0.88388,0.25254-0.75762-1.0102-1.389-1.2627-0.75761,0.37881-1.2627,0.37881-0.88388-0.88389-0.63135-1.1364-1.0102-1.0102-0.63135-1.0102,0-1.1364,1.6415-0.88389,1.1364-1.1364,0.25254-2.0203,0.25254-1.0102,3.1567-0.50507,1.6415-0.50508,0.37881-4.4194s0-1.2627,0.63135-1.5152c0.63134-0.25253,1.2627-0.3788,1.2627-0.3788l1.2627,0.63134s1.6415,1.894,2.3991,1.389c0.75761-0.50507,1.894-0.88388,1.894-0.88388s2.3991-1.0102,2.2728-1.6415c-0.12627-0.63134,0.25254-1.6415,0.25254-1.6415l0.3788-1.389,2.1466-2.2728,1.2627-0.75761,2.2728-0.50508,1.6415,0.37881,0.88388,1.1364v0.75761l0.25254,0.63135,1.0102,0.12627,1.6415,0.3788,0.63135,0.50508,0.63134,1.6415,0.75762,0.75761z\",\"name\":\"Udmurt Republic\"},\"pe\":{\"path\":\"M242.06,274.03l-2.28,1.16,0.5,1.5-0.5,3.53,0.5,1.28,1.41,2.41,2.25,1.62,0.65,1.66-1.4,2.12-2.41,1.03-2.87,0.63-1.66,0.87-1.13,1.54,0.5,1.24,0.63,1.38-0.13,1.03-1.9,1.63-0.38,2.4-0.87,1.6-0.13-0.19-1,0.12-1.28,2.5-2,2.29-0.15,1.53-0.88,0.87-2,2.03-1.91,3.41-0.62,3.9-1.28,0.88-2.25,0.38-1.28,0.78-0.63,4.9,2.53,2.66,2.13,2.28,2.53,0.25,2.28,1.5,3.41,4.94,1,0.37,1.28-0.12,1.12-1.25,0.88-1.28,1.03-1.75,1.25-1.66,1.28,0.88,1.5,1.28h2.41l2.03-0.91,0.5-1.75,0.25-1.91,0.87-0.75,0.88-1,0.78-0.5,2.5,2.75h3.69l0.87-1,0.5-1.5,0.25-1.65,0.88-1.25,4.69-0.38,2.15-0.78,0.63-1.5-0.63-0.62-0.12-1.41,1.12-1.38,0.75-1.03v-1.37l-0.5-0.88-0.62-1.03,0.25-1.75,1-1.53,2.03-1.5,3.15-0.5,1.88-1.91,2.28-1.62,2.28-1.66,2.28-1.65,0.88-0.75,0.5-1.25,1-1.78s0.9-1.12,1.53-1.75c0.63-0.64,1.62-1.91,1.62-1.91l1.16-1.37,0.25-1.66-2.41-0.38-2.65-0.75-2.66-1.65-2.75-1.38-2.66-1.28-2.53,0.66-3.15,0.12-3.66-0.9-2.9-1.63-1.63,0.85-0.41-0.22-1.9-1.25-1.38-2.03-1.12-1.13-2.28-0.78-0.13-1.63-1.12-1.28-1.41-1.5-1.91-0.5-2.62-0.25-2.41-0.78z\",\"name\":\"Perm Krai\"},\"sv\":{\"path\":\"m286.13,291.72,1.7678-1.1364,1.1364,1.389,0.88388,2.3991,2.6516,1.5152,2.9042,2.1466,1.2627,2.3991,2.2728,2.7779,0.12627,1.7678,0.63135,2.0203,0.75761,1.5152-0.63134,1.7678-1.894,1.894-0.63135,1.7678-0.25253,4.7982,0.3788,2.7779,0.63135,1.0102-1.0102,2.9042-1.5152,1.7678-0.37881,2.3991,2.0203,1.2627,2.3991,2.0203,0.75761,2.0203,0.12627,2.6516-0.63134,1.6415,0,2.9042,0.75761,2.3991-0.25254,1.894s-0.88388,0.88388-0.88388,1.389c0,0.50508-0.50508,2.7779-0.50508,2.7779l-1.2627,1.2627-2.0203,0.12627-1.1364,0.88388h-3.0304l-1.5152-0.88388-2.1466,0.25254-1.389,1.1364-0.88388,1.389-0.25254,2.9042-0.75761,1.1364-1.1364,1.0102-1.7678,0.50508-3.0305,0.25254-2.0203,0.25254-1.0102,0.88388-1.894-0.37881-1.389-1.1364-1.894-1.894-2.5254-1.6415-1.5152-0.63135-2.2728,0.37881-1.894,0.3788-1.389-0.12626-1.6415-1.389-1.894-2.2728h-2.2728c-0.50508,0-1.6415-0.75761-1.6415-0.75761l-4.672-3.1567-1.6415-1.7678-2.9042-0.3788-1.389,0.12627-0.88389,0.12627-1.2627-1.2627-3.9143-3.283-3.1567-3.0305-0.50507-1.389,2.0203-2.9042,1.389-2.7779,0.75762-0.25253,1.6415,1.1364,1.1364,0.75761h2.7779l1.5152-1.389,0.50507-1.7678,0.12627-1.7678,2.5254-1.7678,1.7678,2.0203,1.2627,0.63134h2.3991l1.6415-1.1364,0.75761-2.0203,0.50508-1.894,3.7881-0.75762,2.5254-0.3788,1.389-1.2627v-1.0102l-0.88388-1.389,1.7678-2.1466,0.25254-1.1364v-1.389l-1.0102-1.6415,1.0102-2.5254,2.1466-1.6415,3.283-0.88388,1.1364-0.75762,8.0812-6.1872,0.88388-1.6415,1.6415-2.7779,2.1466-2.5254z\",\"name\":\"Sverdlovsk Oblast\"},\"ku\":{\"path\":\"m255.69,383.01,2.3991,1.894,3.283,0.88388,4.2932,1.2627,3.1567,0.75762,4.1669-0.50508,2.5254,0.25254,2.9042,1.0102,3.5355,1.1364,3.5355,0.88388,3.283,1.0102,3.4093-0.12627,2.3991-1.2627,3.6618,0,1.0102-1.5152,0-1.894-1.5152-2.1466-1.389-2.7779s-1.5152-0.12627-2.1466-0.37881c-0.63135-0.25254-2.2728-1.6415-2.2728-1.6415l-0.75761-3.1567-1.389-1.7678-2.6516-1.2627-1.5152-1.6415-1.2627-2.2728-1.6415-1.5152-1.389-1.2627-1.0102-1.389,0.50508-2.3991,1.389-1.2627,1.1364-1.894-2.5254,0.37881-3.0305,0.12627-1.389,0.50507-0.75762,0.50508-1.2627-0.37881-2.0203-1.0102-1.7678-1.7678-2.0203-1.389-1.7678-0.75761h-1.2627l-3.0305,0.63134-1.7678-0.12627v1.1364l0.63135,0.88388-0.50508,2.2728v2.2728l-0.25253,2.1466-0.88389,1.1364-2.5254,1.1364-1.389,1.1364-1.5152,1.2627-1.7678,0.88388-0.50507,1.2627,0.63134,1.1364,1.894,1.894,1.389,1.389,0.63134,1.7678v1.894l-0.50507,1.7678z\",\"name\":\"Kurgan Oblast\"},\"ko\":{\"path\":\"m224.63,259.27,2.1466-0.63134,0.63134-0.88388,1.894,0.12627,1.6415,1.894,2.1466,0.25254,2.1466-0.50508,1.5152-1.894,0.50508-1.5152-0.63135-0.88389,0.63135-1.5152,2.1466-1.2627,4.5457-1.894,2.6516-1.1364,0.25254-1.5152-0.50508-2.5254-2.1466-0.88389-3.283,0.12627-2.3991,1.6415-2.3991-0.75761s-0.50508-1.0102-1.2627-1.0102-1.5152-0.25253-1.5152-0.25253l0.50507-3.0305,1.7678-0.37881,1.389-1.5152,0.50508-1.894,2.1466-0.50508,2.2728,0.12627,0.63135-1.7678-0.63135-0.63134-0.63134-2.1466,0.63134-1.389,4.5457-2.0203v-1.2627l-1.0102-2.5254-0.63135-1.6415-1.6415-1.7678-0.63134-1.1364,0.25254-1.6415,1.2627-0.63134,1.7678,0.75761,1.5152,2.1466,1.6415,1.5152,2.2728,1.894,2.6516,1.2627,1.7678,1.1364,0.50508,1.7678,1.5152,1.5152,3.1567,0.3788,1.894,1.2627,2.9042,0.50507,0.88388,1.2627h2.0203l1.0102-0.63134-0.25254-1.5152-0.75761-1.5152,0.50507-1.0102,0.88389-1.5152s0.25253-1.1364-0.12627-1.6415c-0.37881-0.50508-1.1364-1.1364-1.1364-1.1364v-0.88388l2.7779-3.283,3.1567-2.1466,1.894-2.0203,1.0102-0.88388,2.3991,0.63134,3.4093,0.12627,2.5254,0.75762,4.2932,0.50507,2.1466,0.63135,3.283,0.12627,2.3991-0.50508,1.5152,0.12627,0.12627,1.894,1.2627,1.0102,2.1466,2.1466,5.3033,4.672,7.4499,4.672,6.4397,3.7881,5.177,3.0305,5.5558,3.283,2.7779,1.894,2.2728,0.25254h3.283l2.1466-1.0102,2.5254-2.3991,1.6415-1.2627,2.7779,0.25253,2.3991-0.12626,2.0203-0.63135,1.5152-0.88388,1.6415-0.37881,3.1567,0.12627,1.6415,0.25254-0.50508,1.5152-0.88388,1.1364-1.1364,0.63134-0.50508,1.894,1.2627,1.7678,1.2627,1.389,0.12627,1.894-1.1364,1.389-0.88388,0.25254-0.75762,1.389-2.0203,0.25254-2.3991-0.12627-2.1466,0.88388-2.5254,1.389-1.389,1.1364-3.0305-0.12627-2.1466-0.50507h-3.1567-2.0203l-1.0102,0.3788-1.389,1.5152-0.75762,0.88389-2.1466,1.6415-1.5152,0.50508h-2.3991l-2.3991-0.25254-1.5152,0.50508-2.9042,2.0203-2.2728,1.2627-1.5152,1.0102-1.5152,0.3788-1.2627-0.12626-1.2627-1.0102-0.12626-1.894-0.63135-1.389-1.6415,0.88388-1.5152,1.389-1.0102,1.2627-0.88388,0.50508-1.2627,0.50507-0.75762,0.37881-0.12627,1.7678-0.3788,1.7678-0.63135,1.389-0.88388,1.1364-1.0102,1.6415-1.894,1.6415-1.6415,1.389-1.2627,0.75762-2.7779,3.283-1.894,2.6516-1.1364,3.0305-0.50507,1.6415-1.5152,1.6415-2.0203,0.88388-1.5152,0.63134-1.7678,1.0102h-2.2728l-3.1567-1.0102-3.1567-1.6415-4.4194-2.1466-0.75761-0.3788-2.5254,0.50507h-3.283l-3.0305-0.88388-2.9042-1.389-1.0102,0.25254-1.6415-0.12627-1.5152-1.2627-2.2728-2.3991-1.894-0.88388-0.63135-1.5152-2.2728-3.0305-5.8084-1.1364-1.389-0.63134-1.7678,0.63134-0.75761,0.75762v0.75761l0.37881,0.88389v1.6415,1.0102l-0.50508,0.3788-1.389-0.63134-0.88388-0.37881-1.1364,0.25254-1.5152,0.88388-1.5152,0.50508-1.1364-0.25254-0.88389-1.389-0.88388-0.63135-2.2728-0.88388-6.0609-1.1364-1.2627,0.25254-1.1364,1.1364-0.63135,1.5152-1.1364,0.37881-1.6415-1.389v-1.1364l1.0102-1.389,0.50507-0.75761-0.50507-1.0102-1.1364-1.0102-1.1364-1.0102-0.3788-0.75761,1.5152-1.2627,1.1364-2.5254,1.6415-1.0102,1.6415-0.3788,1.894-1.2627,0.88388-2.3991,1.2627-1.2627z\",\"name\":\"Komi Republic\"},\"mu\":{\"path\":\"m217.31,136.92,1.1364-1.5152,1.5152-0.75761,2.9042,0,4.2932,0.12626,2.1466-0.50507,2.5254-1.6415,0.88388-2.0203,0.12627-3.5355,1.5152-3.4093,1.0102-1.0102,4.7982,0,2.3991-0.63134,1.0102-1.2627,1.7678-0.12627,2.3991,1.0102,3.0305,1.894,2.2728,1.894,2.6516,0,2.2728-0.25253,0.25254,2.3991,1.894,0.3788,1.7678,1.0102,0,2.2728,0,1.7678-1.0102,0.63134-1.5152-0.3788-0.75761-1.1364-0.25254-0.63134-0.88388,1.0102-0.25254,0.63135,0.50508,1.1364,1.1364,0.88388,0.50507,0.75762-0.3788,1.0102-1.0102,0.63134,0,0.75762,1.1364,1.2627,0.88388,1.5152,0.88388,1.7678,2.0203,2.1466,0.75761,1.7678,0,1.7678,0,1.1364-0.50507,1.1364-0.25254,2.0203-0.12627,5.5558,0,5.5558-0.75762,1.389-0.25253,1.894,0.63134,0.88389,0.63135,1.0102-0.12627,4.0406,0,3.5355-0.63135,1.389-1.7678,1.1364-0.88389,0.88388,0,1.0102-0.25254,0.88389-1.1364,0.88388-2.7779,0.75761-3.6618,0.12627-3.1567,0.50508-1.6415,0.37881-2.5254-0.50508-2.0203-0.75761-1.894-1.389-1.894-2.2728-1.7678-2.2728-1.1364-1.894-0.63135-2.2728-0.3788-2.3991-1.2627-2.6516-1.1364-2.0203-0.3788-1.6415-0.37881-3.9143,0-1.7678,0-1.389-0.88388-0.88389-0.12627-2.9042,0-2.1466,0.75761-1.5152,0.12627-1.1364,0-1.5152-0.88388,0-0.63135,0.88388-0.88388,1.389-0.75762,1.894-0.25253,0.63135-3.5355,0-2.6516-0.25254-0.75761-1.5152,1.389-2.0203,1.1364-0.75761,0.25254-1.0102-1.7678-2.2728-1.5152-1.7678-1.2627-2.7779-1.2627-1.2627z\",\"name\":\"Murmansk Oblast\"},\"kl\":{\"path\":\"M216.94,136.91l-2.28,1.53,0.12,1.62-1,2.28-1.9,2.04-1.88,0.87-4.31-0.13-0.88,1-2.28,2.16h-2.91l-2.4,0.38-0.13,4.03-0.62,1.9-2.91,0.38-1.87,0.25,0.12,1.4,0.88,1.5-1.78,1.29-1.25,0.5-3.41-0.91-1.66,1.16-0.37,2.9-0.13,4.16-1.25,2.28-2.65,1.62-3.41,1.16-8.72-0.12-3.53-0.91-5.19-0.75-4.28-0.75,0.88,1.87-0.13,1.54,0.07,0.53-0.94,5.65-2.53,1.5-2.03,3.32-2.91,1.87-0.13,1.66,2.66,1.25,1.91,0.75,1,2.4,2.9,0.25,5.07-0.75,1.65-0.9,2.25,0.53,1.78,1.37,1.38-1.62,1.12-0.78,1.78,4.69,1.5,0.62,2.91,1.53,0.06,0.69-0.12,2.69,0.06,1.78-1.63,1.53,1,1.12,2.29,0.5,1.75-0.62,2.53-1,0.62-0.5,1.91,1.5,1,1.9,1.03,1.88,3.16,0.25,3.28-3.03,0.75-1.5,1.25-1.38,2.4-1.28,2.03-1.75,0.5-1.15-0.37-1.25-1.91-0.63-1-1.03,0.13-1.63,1.37-2.4,1.78-1.91,1.66-1.87,1.25-2.16,1.38,0.25,1.78,1.53h1.9l0.88-0.53,0.12-2,1.5-2.03,0.25-1.75-0.25-3.16-0.5-1.53,0.63-1.78,1.4-0.87,1.38-0.63,3.03-2.53,0.5-1.13,0.53-1.28h1.38l3.4-0.62,2.16-1,1.5-1.28v-1.88-3.4l0.25-2.54,1.03-0.87v-1.16l-0.12-2-0.78-1.15-2-0.38-1.41-0.37-0.63-0.88v-0.75l0.63-1.15,1.28-1,0.75-0.63-0.38-1.03-1.65-2.37-1.88-2.29-1.4-2.15-1.75-2.53z\",\"name\":\"Republic of Karelia\"},\"vo\":{\"path\":\"m185.36,208.76c0.12627,2.5254-1.389,5.0508-1.389,5.0508l-1.5152,1.894s-0.3788,1.0102-0.3788,1.7678c0,0.75762,0.12626,1.389,0.12626,1.389s0.63135,1.389,1.894,2.1466c1.2627,0.75761,2.0203,2.7779,2.0203,2.7779l1.0102,1.894,1.5152,1.2627,1.2627,1.0102,1.1364,1.894,1.2627,0.37881,3.1567,0.50508,1.5152,2.2728,1.0102,1.894,1.7678,0.63135,0.25254,0.63135,1.0102,2.2728,1.2627,0.75761,2.6516,0.25254,1.5152,0.12627,0.50507,2.7779,1.2627,2.0203,2.7779,1.389,1.389,0.12627,1.0102-0.63134,1.389,0.12627,1.0102,0.50507,0.75761,1.0102-0.63134,1.5152-0.75762,1.389,0.25254,0.75762,1.2627,1.1364,0.75761,0.50508,1.0102,0.50507,0.3788,0.63135v1.0102l-1.5152,1.5152-2.0203,0.63135-2.0203,0.75761-4.2931-0.25254-1.2627,0.88389,0.25253,1.1364,0.88389,1.2627v2.6516,1.1364l-1.0102,1.1364-0.75761-0.63134-1.1364-1.0102-0.37881-1.5152-1.0102-0.12626-1.6415,1.0102-1.0102,1.0102h-1.7678l-3.0305-1.5152-2.1466-2.1466-2.0203-1.1364-1.894-1.6415-2.0203-2.7779v-1.894l-1.894-2.7779-2.5254-2.2728-1.5152-2.0203-1.2627-1.7678-0.63135,0.75761-1.6415,0.12627-1.6415-0.25254-2.2728-1.894-0.88388-0.50508-1.2627,0.63135-2.7779,1.7678-0.63135,0.37881-1.2627,0.12627-0.88388-0.50508-0.50508-1.2627-0.63134-1.894,0.25254-4.0406-0.50508-2.5254-0.50508-1.2627-1.2627,0.12627-1.2627,0.37881-0.88388-0.25254-1.389-1.2627-1.6415-1.7678-4.0406-1.0102-1.2627-1.1364-0.50508-1.0102,0.63135-2.0203-0.50508-0.88388-1.0102-0.75761-1.1364-0.63135-1.894-0.37881-0.25254-0.12627,0.50508-2.7779-0.50508-1.6415-0.63134-1.2627-0.88388-0.88389-0.37881-0.50507-0.12627-1.0102-0.25254-1.5152,0.63135-0.88388,0.75761-0.88388,1.389-0.25254h1.6415l0.88388,1.2627,1.0102,0.88388,1.1364-0.50507,0.25253-1.1364,1.2627-0.25254,1.1364-0.63135,0.75761-1.1364,0.12627-1.5152,3.283-3.6618,1.2627-0.88388h1.7678l2.0203-0.37881,1.389-0.75762,0.88388-0.63134h1.1364l1.5152,0.88388h1.2627l0.88389,0.75762,0.50507,0.88388,1.389,0.63134h1.1364l1.389-0.3788,1.5152-0.50508,1.1364-0.37881,0.63135-0.25253,0.88388,0.12627,1.0102,0.88388,1.2627,1.6415,0.50507,1.2627z\",\"name\":\"Vologda Oblast\"},\"ar\":{\"path\":\"M391.06,151.03l-3.56,1.06-2.16,0.91-3.56,0.19-1.59,0.87s-1.26-1.07-1.97-1.25c-0.72-0.18-0.91,1.1-0.91,1.1l-1.78,2.65-2.69,1.63-3.03,0.87-2.31,1.78s-2.15,0.37-3.22,0.72c-1.07,0.36-2.5,0.19-2.5,0.19l-1.59,0.72,1.06,1.78-2.16,1.25,0.38,0.72,1.25,1.44,1.78,1.59,1.78,1.78,0.91,1.63,1.4-0.72,0.91-1.97,2.16-0.72,1.25-0.53,1.93-0.19,0.91-1.59h1.97l1.25,0.87,1.59-1.25,1.1-1.25,2.65-0.15,0.72-0.57,3.41,0.72,1.78-1.06,0.34-1.44,2.69-0.34s1.07-0.01,2.5-1.44l0.72,1.06,2.84-0.68s1.98-0.19,2.69-0.19,3.03-0.38,3.03-0.38h2.31l2.35,1.25,1.78,0.91,1.25-0.72,0.72-0.87,4.28,1.06,1.97-1.44,3.22,0.19,4.09-0.72,1.25-1.59,1.97-2.88s-1.26-0.89-1.97-1.25-2.69-1.44-2.69-1.44l-3.22,0.57-4.43,1.59-4.32-0.91-2.5-0.15-3.18-0.72-1.63-0.91-1.59-1.78-1.44,0.72-1.97,1.06-2.5-0.15-3.22-0.91-2.5-0.72zm-35.53,14.47l-2.5,0.53-1.78,1.63-2.5-0.38s-1.44-1.06-1.44-0.34v1.78l0.72,1.59-2.12,1.25-2.88,1.1-1.06,1.25h-2.16l-0.72-1.1-1.59-0.87-2.69,2.12-0.15,3.03,1.93,2.69,1.44,2.16s1.26,2.14,0.91,3.03c-0.36,0.89-4.28,2.5-4.28,2.5l1.06,2.5,1.25,1.59v1.97l2.31,0.53,2.88,1.97,2.12,2.31,1.97,0.38s1.06-1.07,1.06-1.78c0-0.72-0.15-4.48-0.15-5.38,0-0.89,1.59-8.37,1.59-8.37l0.34-1.44,4.13-2.69s0.88-1.07,2.31-1.97c1.43-0.89,4.66-3.03,4.66-3.03l1.78-1.4s0.71-1.64,0-1.82c-0.72-0.17-1.62-0.53-2.16-1.25-0.53-0.71-3.03-2.65-3.03-2.65l-1.25-1.44zm-132.28,14.34l-0.63,0.63-2.28,0.25-0.87-0.13-1.78,0.91v1.38l-0.63,1.65-1.15,0.75-0.13,1.38,0.91,0.78,0.87,0.87-0.12,1.25-1.25,1.28-1.66,1.5-1.65,0.13-1.38-1-0.62-1.53-1.41-2-1.25-1.03-2.03,0.53h-1l-2.41-1.66-1,0.38-1.66,2.15-1.37,2-1.66,1.78-1.25,2.66,0.38,1,1,1.28,1.78,0.25,0.12,1-0.12,1-2.78,2.41-2.16,0.87-1.87,3.03-2.53,2.53-2.91,0.5-1.13,0.13-0.5,0.91-0.28,1.87-0.87,2.16-1.75,2.03-0.13,1.87,1.25,2.79,1.5,1.28,2.04,3.53,3.78,4.15,1.28,0.75,3.15,0.38,0.38,0.65,1.37,1.38,1.66,2.53,1.38,0.5,0.5,1.66,0.9,1.5,3.28,0.5,1.63,0.25,0.78,1.4,0.37,2.13,0.75,1.15,2.41,0.88,1.5,0.75,1.28-0.5,1.13-0.25,1.37,0.75,0.91,1.66-1.03,1.25-0.13,1.53,0.66,1,1.25,0.75,1,1.03,1.03,0.62,0.75-0.37,1.25-0.25,1.41,0.5,1,1.37,0.5,0.91,0.24,2,0.26,1.03h0.65l0.88-0.16,0.87-0.5,0.63-0.37h1.03l0.75,0.75,0.62,0.91,0.88,0.25,1.4,0.25,1.88-0.5,1.41-0.5,1.37-1.79v-0.87l-0.37-0.66-0.26-0.5,0.26-1,0.5-0.5,2.78-1.28,2.4-1,1.66-1.12,1.87-0.78,0.5-0.75,0.13-1.38-0.75-1.53-1.13-0.87-2.15-0.13h-1.5l-1.53,0.5-1,0.75h-1.28l-0.63-0.12-1-1.13-1.53-0.37-0.75-0.38,0.25-1.53v-1.13l1.66-0.5,0.74-0.78,0.76-0.87,0.62-1.63,0.53-0.37,1.5-0.53,1.78,0.25,1-0.5-0.12-1.38-0.5-0.87-0.5-1.66,0.25-0.88,0.87-0.62,1-0.53,1.41-0.63,1.37-0.75,0.38-0.75v-0.5l-0.88-1.9-0.75-1.41-0.9-1.62-1-0.75-0.63-1.28,0.38-1.88,0.62-0.5h1.28l0.88,0.38,1,0.87,1.41,2.16,2.65,2.37,1,0.91s1.65,0.49,2.28,0.75c0.63,0.25,1.38,1,1.38,1l0.5,0.62,0.37,1.03,0.53,1,1,0.63,1.38,0.37h1.41l1.12,0.53,0.88,0.88,2.03,0.5h1.37l0.28,0.88,1,0.53,1,0.25,0.88-0.54,0.78-0.74-0.13-1.26-1.03-1.03,0.38-0.87,0.78-1,0.37-1.53-0.25-1-1.15-0.75-0.13-1.28,0.91-0.88,3.15-3.28,1.88-1.12,1.91-1.79,0.25-1.25-0.63-0.5-1.65-0.9-1.63-1-2.16-0.25-1.25,0.62h-1.4l-1.5-1.12-1.03-1.78-0.75-1.75-1.5-3.16-1.41-2.28-0.75-1.41-0.88-2.25-0.12-1.15-2.41,0.25-0.75-0.63-1.53-1.12s0.25-0.5,0.88-0.5,1.02-0.41,1.53-0.66c0.5-0.25,0.25-0.87,0.25-0.87s-0.37-1-0.88-1.76c-0.5-0.75-0.77-0.77-1.28-1.15-0.5-0.38-0.75-1.75-0.75-1.75l-1.25-0.41-2.03-0.5-1.66,0.13-1.5,0.53-1.9,0.12-0.88-0.65-1.62-1-2.03-0.13h-2.78-2.53l-1.63,0.75-0.91,0.75-0.37,1.66-1.13,1.37-1.12,2.04-1.28,0.87h-2.41c-0.63,0-1.75-1-1.75-1l-1.03-1c-0.51-0.51,0-2.03,0-2.03s0.13-1.53,0-2.16-1.5-1-1.5-1l-2.03-0.87s1.65-0.78,2.16-1.16c0.5-0.38,0.37-1,0.37-1v-2.28c0-0.63-0.25-2-0.25-2l-0.75-1.91zm110.16,1l-0.19,1.1,0.53,1.78,1.44,0.72,0.53-0.72v-1.63l-0.38-1.25h-1.93zm-28.22,6.19l-2.35,0.78-1.4,2.07-2.88,1.43-0.25,1.07,1.78,1.43,2.13,0.97,3.22-0.44,3.5-0.9,0.25-1.6-0.78-1.96-1.1-1.88-2.12-0.97z\",\"name\":\"Arkhangelsk Oblast\"},\"tu\":{\"path\":\"m299.02,389.7,2.0536,0.80357,2.1428,1.1607,1.6072,1.3393,1.6071,1.5179,1.7857,0.71428,2.3214,0.17858,0.89286-1.0714,1.6071-1.875,0.53572-2.3214,0.625-2.1429,2.2321-1.7857,1.875-0.44643,1.25-2.5,1.6964-1.0714,2.9464,0.26786,1.6071-1.6072s0.625-2.3214,0.53571-2.6786c-0.0893-0.35714-0.80357-2.5893-0.80357-2.5893l-0.89285-1.875-0.625-3.3036-0.71429-2.2322v-1.7857l1.5179-1.9643,2.2321-2.5,1.4286-1.4286,3.125-0.26786,0.35714,1.4286-0.89285,1.6071-1.6964,1.6964-0.17857,1.25,2.5,0.35714,4.0178,0.35714,1.9643,1.6072,3.0357,1.7857,1.5179-1.25,2.9464-0.17857,2.1429,1.4286,3.3928,1.0714s2.5-0.98214,2.9464-1.1607c0.44643-0.17857,3.5714-0.44642,3.5714-0.44642l0.89286-0.98215-0.53572-1.0714-1.6964-1.25-2.9464-2.2321-1.0714-1.4286s-1.6964-0.44643-2.3214-0.44643-2.6786-0.80357-2.6786-0.80357l-0.17857-2.6786-0.26786-2.4107-1.3393-1.3393-0.44642-2.2321-0.53572-3.5714-0.35714-0.89286-2.4107-2.7679-1.1607-0.71428s-2.6786-0.26786-2.9464-0.26786h-5.0893l-0.98215-0.26786s-0.625-1.5178-0.625-1.875c0-0.35714-0.98214-1.5178-0.98214-1.5178l-1.875-0.35715-1.25,1.25-2.4107,1.875-2.1429,0.89286h-3.0357l-4.6428,0.0893-2.9464,0.26785s-1.4286,0.53572-1.7857,0.625c-0.35714,0.0893-4.375,0.0893-4.375,0.0893l-3.0357-0.0893-1.4286,0.35715-0.89286,1.5178-0.53571,2.3214-0.89286,1.3393-2.3214,0.71428-1.6071,0.53572-1.5179,0.35714-1.7857-0.17857-1.3393-0.625-1.4286,0.17857c-0.35714,0.17857-1.6964,1.0714-1.6964,1.0714l-1.1607,2.1429-0.35715,2.4107-1.6071,2.3214-2.1429,2.5893-0.98214,1.5179,0.26786,1.25,0.71428,1.3393,1.5179,1.25,1.25,1.6071,1.6964,1.875,1.0714,1.6964s3.0357,0.98214,3.0357,1.5179c0,0.53571,1.6964,2.9464,1.6964,2.9464l0.625,1.875,1.6071,1.4286,1.875,0.71428,1.0714,0.80357,1.4286,2.3214,1.0714,1.4286v1.6072z\",\"name\":\"Tyumen Oblast\"},\"ne\":{\"path\":\"m260.27,198.54,1.6071-0.89286,1.4286-1.1607,2.0536-1.0714,1.1607-1.25,0.625-3.3929,1.1607-1.6071s1.4286-0.80358,2.4107-1.0714c0.98215-0.26786,2.3214-0.26786,2.6786-0.26786,0.35714,0,1.5178-0.98214,2.0536-1.5179,0.53571-0.53571,3.0357-2.5,3.0357-2.5l0.71429-1.0714v-2.2321l1.25-1.9643s0.89285,0.17857,0.98214,0.625c0.0893,0.44642,0.26786,1.5178,0.625,1.6964,0.35714,0.17858,1.875,1.4286,1.875,1.4286l1.6964,1.1607,0.98214,0.89286-0.0893,1.3393-0.625,1.4286-0.44643,1.7857v1.6964l-0.26786,1.0714-0.44643,0.80357-0.26786,1.25-1.25,0.71428-1.3393-0.625-1.25-0.98214-0.625-0.80357-2.3214-0.53572h-3.0357c-0.44643,0-2.1429,1.1607-2.1429,1.1607l-0.80357,1.4286,0.17857,1.0714s0.53571,0.89286,0.625,1.25c0.0893,0.35714-0.71429,1.1607-0.71429,1.1607l-0.89285,1.6072s-0.26786,1.1607-0.0893,1.4286c0.17857,0.26785,0.625,0.80357,1.1607,1.25,0.53572,0.44643,1.875,1.5178,2.1429,1.6964,0.26786,0.17857,1.875,0.89285,1.875,0.89285s2.3214,0.17857,2.8571,0.17857c0.53572,0,1.9643-0.26785,1.9643-0.26785s1.5179-0.98215,1.875-1.1607c0.35714-0.17857,1.9643-1.1607,1.9643-1.1607s1.0714-0.44643,1.4286-0.35714c0.35714,0.0893,1.3393,0.98214,1.3393,0.98214l2.3214,0.17857s0.35714-0.44643,0.71429-0.80357c0.35714-0.35714,0.53571-0.71429,0.98214-0.35714,0.44643,0.35714,1.875,1.3393,1.875,1.3393l1.7857,0.44643h5.0893l2.5893,0.0893s0.80357,0.80357,1.25,0.89285c0.44642,0.0893,3.3928,0.53572,3.3928,0.53572l1.5179,1.4286,0.71429,1.9643,1.1607,0.17858,0.71429-1.5179,0.89285-1.0714,1.875-0.17857,0.89286,0.53571,2.1429,0.17857,2.5893,0.44643-0.44643,0.80357-0.98214,0.80358-1.6964,0.625-0.80357,0.98214-0.71428,0.98214-1.6964,0.71429-0.26786,1.0714,1.3393,0.98214,1.25,0.53571,0.625,2.0536,0.71428,0.35715,1.6964-0.80357s1.3393-0.89286,1.6071-0.89286c0.26786,0,3.3036,0.53571,3.3036,0.53571l2.6786,1.3393,1.5178,1.3393,1.4286,0.89286,4.4643,0.17857,0.71429,0.71429,1.5178-0.26786,2.5893-0.35714,1.7857-1.3393,0.625-1.7857s0.53572,0.625,0.53572,1.1607c0,0.53572-1.6964,2.7679-1.6964,2.7679l-0.71429,1.7857v1.0714l-1.1607,1.1607-0.89286,0.625-0.44643,0.98214,0.44643,0.80357h1.4286l0.80357-1.6071,0.17858-0.53572,1.5178-0.0893,1.5179,1.25,2.3214,0.35714,1.1607-0.89286,1.3393-1.1607,0.53571-0.89286-0.71428-1.0714-0.35715-1.4286,1.5179-1.1607,0.71429-1.875-0.53572-1.6964-1.25-0.80357-0.71428-3.3929-0.26786-3.125s-0.26786-0.89286,0.0893-1.25c0.35714-0.35714,2.2321-1.6964,2.2321-1.6964l1.3393,0.17857,1.1607,1.4286,1.0714,1.9643,0.35714,2.1429-0.89286,3.3036,0.89286,1.0714,2.8571,2.4107,2.7679,2.8572,3.3929,2.5893,2.1428,3.3036,1.6964,3.3929,0.80357,1.875,0.17858,1.6071-1.0714,1.1607-0.98215,2.0536-0.98214,1.5179h-2.5c-0.44643,0-3.6607-0.17858-3.6607-0.17858l-2.1429,0.98215-2.7679,0.71428h-3.0357l-1.7857-0.17857-2.4107,1.875-3.0357,2.4107-1.6072,0.53571-2.7678-0.0893-2.0536-0.53571-4.2857-2.4107-23.036-13.929-7.6786-6.875-1.25-1.1607v-1.3393l-0.98214-0.625-2.4107,0.625-5.0893-0.44642-5.625-0.98215-5.1786-0.80357-3.125-0.26786-4.1071-2.3214-2.0536-0.44643-1.7857,0.625-1.7857-0.26786-1.5179-1.7857-4.2857-8.4822-0.98215-2.4107z\",\"name\":\"Nenets Autonomous Okrug\"},\"om\":{\"path\":\"m358.39,368.89,0.71428,2.5-1.25,1.6071-1.25,1.9643,0.53572,1.6071,0.71428,1.9643-1.25,1.9643s-1.0714,1.25-1.0714,2.1429c0,0.89286,0.17857,3.0357,0.17857,3.0357l1.7857,1.6072,0.35714,2.3214-0.53571,3.3929-1.9643,0.89286-1.25,1.6071,0.71429,2.3214-0.35715,1.9643-3.9286,0.17857s-1.4286-0.89286-2.3214-1.0714c-0.89285-0.17857-3.3928,2.8571-3.3928,2.8571l-2.5,2.1429-0.89286,4.2857,0.53571,0.89286,1.9643,2.1429,0.35714,2.6786-1.6071,2.6786-1.0714,1.7857-0.17857,3.0357-2.5,2.1429s-2.3214,1.0714-3.0357,1.0714h-4.8214l-1.6072-0.71428c-2.1428,1.4286-3.75,0-3.75,0l-1.6071-0.71429-1.9643-0.35714h-1.0714l0.35714-1.7857,1.7857-1.0714,0.71429-1.4286-2.3214-1.25-2.1429-2.3214-1.9643,0.89285-0.89286-0.71428v-3.75l-1.4286-0.89286-2.8571,0.35714-2.8572-0.89285-0.89285-0.53572-0.17857-2.1428,2.1428-2.6786,0.71429-2.3214,0.35714-2.6786v-4.1071l0.71429-2.1429,1.4286-3.9286,1.6071-2.5,2.3214-0.53571,1.0714-1.25,1.0714-1.7857,1.6071-0.89285h2.6786l1.6071-1.4286,0.89286-3.9286-1.4286-3.2143-0.71429-3.0357-1.25-3.3928,0.35715-1.6072,4.4643-4.6428,1.0714-0.89286h2.6786l0.17857,1.6071-1.25,1.6072-1.7857,1.25-0.17857,1.4286,1.4286,0.35714,3.2143,0.35714,2.3214,0.17857,2.1429,1.4286,1.9643,1.4286,1.0714,0.35714,1.0714-0.71429,1.9643-0.35714,2.3214,0.35714,3.5714,1.6072h2.5l2.1428-1.0714h2.1429z\",\"name\":\"Omsk Oblast\"},\"ht\":{\"path\":\"m329.64,260.32,0,3.75-0.53572,3.2143-1.6071,2.3214-2.3214,2.3214-0.89286,1.25,1.9643,1.9643,1.7857,2.3214,5,1.9643,4.8214,0.17857,3.5714,1.4286,2.3214,2.6786,0,1.4286-2.1429,1.7857,1.4286,1.4286,2.3214,2.8572,1.9643,1.0714,2.1428-1.0714,1.7857-0.89286s1.6071,0.71429,1.9643,0c0.35715-0.71429,0.89286-2.1429,0.89286-2.1429l1.6071,2.1429,1.4286,2.8571,1.9643,1.6072s0.35714,2.1428,0.35714,2.8571v4.6429l1.9643,3.3928s0.35714,0.17857,0.71429,0.89286c0.35714,0.71429,0,2.1429,0,2.1429l1.0714,1.25,2.5,0.53571,3.75,0.71429,1.4286,0.89285s2.8571,2.1429,3.5714,2.6786c0.71429,0.53571,1.25,1.6071,2.1429,1.9643,0.89286,0.35714,3.5714,0.53572,3.5714,0.53572l2.8571,0.35714,0.89286,1.0714s0.35714,1.6071,0.71428,2.6786c0.35715,1.0714,1.4286,1.7857,1.4286,1.7857l3.0357,0.17857,1.7857,0.53572,0.35715,1.9643,0.35714,1.4286,1.0714,2.5c1.9643,0.17857,2.5,0.17857,3.5714,0.17857s3.3928,1.0714,3.3928,1.0714l1.9643,0.71428,2.8571,0.35714,2.8572-1.0714,3.2143-1.9643,3.0357,0.53571,1.9643,2.6786s0.35714,1.7857,1.0714,2.1428c0.71429,0.35715,2.8571,0.53572,2.8571,0.53572l2.3214,1.6071,0.71429,2.3214,1.9643,0.71428,2.6786-0.89285,1.9643,1.6071,1.0714,3.0357v2.3214l-0.35714,1.6072-0.53572,1.9643,3.0357,1.9643,2.5,1.7857,0.35714,2.3214v1.0714l-3.75,1.7857-2.6786,0.53572-3.2143,0.17857-3,0.15-1.61-1.07-1.7857-0.71428-2.3214,0.35714-2.3214,1.6071-2.6786,1.0714-2.1429-1.9643s-2.8571-0.35714-3.5714-0.35714c-0.71429,0-2.3214-1.7857-2.3214-1.7857l-0.89286-1.25-3.9286,0.17857h-3.5714l-1.6071-2.5s-1.25-0.89286-2.1429-0.89286c-0.89286,0-4.4643-1.25-4.4643-1.25l-2.5-2.3214h-1.25c-0.71428,0-2.3214,1.25-2.3214,1.25l-2.5,2.1429-1.7857,2.6786-2.8571,2.5-1.6071,3.3929-4.4643,1.6071-3.5714,0.89286-0.35714,2.1429-0.71429,2.1428-2.6786,1.25h-2.8571l-5.8929-5.5357-3.9286-0.89286-1.0714-1.4286-0.53571-4.1071-1.0714-1.25-1.0714-5.3572-0.53571-1.7857-3.5714-3.2143h-5.5357l-3.0357-0.35714-1.9643-2.8571-1.6071-0.53572-4.4643,3.0357-3.3929,0.71428h-5.1786l-5,0.71429-4.2857,0.53571h-3.5714l-1.4286-0.17857-0.53571-2.8571-0.35714-3.2143,0.89285-3.2143-0.89285-3.2143-2.3214-2.1428-1.0714-0.89286-1.0714-1.0714,1.25-2.6786,1.4286-2.3214-0.17857-2.1429-0.71429-3.2143,0.71429-5.5357,1.4286-1.7857,1.4286-2.1429-0.71428-2.3214-1.0714-3.5714-1.9643-2.6786-2.3214-3.3928-3.3928-2.1429-1.7857-1.9643-1.0714-2.6786,3.3929-2.1429,1.6071-2.6786,2.3214-4.8214,2.1429-2.6786,2.5-1.9643,3.5714-3.3929,1.6071-1.7857,1.7857-3.3929-0.17858-1.7857,0.89286-1.0714,2.1429-1.0714,1.4286-1.9643,1.6071-1.0714,1.25,0.17857,0.89286,2.3214,0.35714,1.0714,1.4286,0.35714,2.5-0.71428,3.0357-1.6071,1.4286-1.25,1.25-1.0714,2.5-0.53572z\",\"name\":\"Khanty–Mansi Autonomous Okrug\"},\"ya\":{\"path\":\"m366.25,234.25,1.4286,2.6786,1.6071,1.7857,1.6072,2.6786,1.0714,3.0357,0.89286,2.8572,3.0357,0.17857,1.7857-1.6072,1.4286-1.25-0.53571-3.2143s-0.89286-1.4286-0.53572-2.3214c0.35715-0.89286,1.7857-2.5,1.7857-2.5v-2.3214l-2.1429-1.6071-1.25-2.5s0.71429-1.6071,1.4286-1.9643c0.71429-0.35714,3.75-2.3214,3.75-2.3214s1.6071-3.75,1.9643-4.4643c0.35714-0.71429,0.35714-4.8214,0.35714-4.8214l0.89286-1.4286,7.5-2.1429,4.8214-3.5714,5.7143-6.0714,3.2143-2.1429,2.1428-0.71429,1.7857,2.3214,3.3928,0.35714,1.7857,1.25,1.0714,2.6786,0.17857,1.7857-0.89286,3.75-2.1429,2.6786-2.3214,2.8571-3.0357,1.6072-1.25,1.0714-0.35714,1.9643,1.0714,2.1429,0.17857,2.8571-0.89286,2.8571-2.1429,2.6786-1.7857,3.2143-2.6786,4.4643-1.25,3.5714-0.89286,2.1429-0.17857,2.5,0.35714,2.6786,0.71429,2.3214-0.71429,1.4286-3.0357,2.1429-1.0714,3.2143-0.89286,3.2143h-3.2143l-2.3214,1.25-2.1429,3.3929-3.5714,0.53571-2.3214,1.25-1.4286,1.4286h-3.5714l-1.4286-1.0714-1.0714-2.6786-0.71429,0.53572v1.6071l-1.9643-1.4286-0.71428-1.9643-1.0714,0.71429-0.17857,1.9643,1.7857,2.1428,2.5,2.1429,2.5,1.25,3.2143,1.0714,2.1429,1.25,2.1428-0.89286,3.5714-1.7857,3.0357-0.71429,3.75-1.0714,2.3214-3.0357,3.2143-2.6786,3.3929-1.6072,2.1428-1.7857-0.17857-2.1429-0.89286-2.3214-0.17857-1.7857,2.1429-2.1429,4.2857-0.89285h3.3929l1.4286,1.4286,1.25,3.0357v2.8571,3.0357l-1.6071,1.4286-1.25,2.5,0.17857,3.5714,1.7857,1.25,3.2143,0.71428,2.1429,2.8572,1.9643,3.2143,0.53572-0.71428-0.53572-4.1072-2.5-3.2143-3.75-1.0714v-2.8571l2.3214-3.0357s1.7857-0.35714,1.9643-1.0714c0.17857-0.71428,0.17857-3.5714,0.17857-3.5714l-0.89286-3.9286-2.6786-2.6786-2.6786-3.2143-0.89286-1.4286h-2.1428s-0.53572,1.25-1.4286,1.25c-0.89285,0-2.6786-1.25-2.6786-1.25l-1.6071-1.0714-0.53571-2.5,1.4286-3.75,2.3214-3.2143,2.1428-2.6786,3.0357-1.25,0.17857-4.4643-0.17857-3.0357v-3.0357l0.17857-2.3214,1.7857-2.3214,1.4286-1.4286,2.1429-0.35715,3.2143-0.53571,2.3214-2.5,1.7857-1.0714,1.25,2.1429-1.9643,2.3214-0.89285,1.4286-1.0714,4.4643-1.25,2.5,1.25,1.7857,2.6786,2.1429h2.8571l1.4286,2.1428,2.3214,2.5,1.7857,0.35715-1.4286-2.1429v-2.5s-1.25-1.25-1.9643-1.6071c-0.71429-0.35715-3.5714-2.8572-3.5714-2.8572l-1.25-3.5714-0.17857-1.4286s1.9643-0.71428,2.6786-0.71428c0.71429,0,3.2143,0.89285,3.2143,0.89285l0.89285,1.7857,1.6072,0.17857,1.25-0.71429-0.35715-1.9643,0.17858-1.9643,1.4286-0.35714,1.6071,0.71429,1.7857,1.4286,1.25,1.0714,0.89286,1.7857-0.35714,1.7857-2.3214,2.5-3.0357,1.25,1.0714,1.4286,2.6786,2.1428,0.35714,2.8572,0.17857,3.3928-0.71429,2.6786-2.5,1.4286-2.6786,1.4286-3.5714,1.7857-2.1428,2.1429,0.35714,2.6786,1.4286,2.5,1.25,2.5,1.6071,1.0714h3.3929,2.5l1.7857,1.6071,0.53571,3.0357,0.17857,3.3928v2.8572l-1.9643,3.2143-1.7857,2.5h-2.6786l-0.71429,0.53572,0.53572,1.9643,0.71428,1.7857-0.53571,2.5-0.89286,1.25,2.3214,3.3928,0.53572,1.7857,0.35714,1.7857-1.25,1.7857-1.0714,1.25,0.89286,2.1428-0.17857,2.5-1.6072,1.6072,1.6072,1.7857,2.1428,1.9643,1.6072,1.4286-0.17858,3.3928-1.4286,2.3214-0.17857,2.6786,2.3214,2.1429,4.6429,0.89286,0.89285,1.4286-1.4286,2.1429-0.53571,3.3928-0.89286,2.3214-2.6786,1.4286s-0.89286,0.53572-1.6071,1.0714c-0.71429,0.53572-1.7857,2.8572-1.7857,2.8572l1.9643,1.7857,0.17857,2.3214-1.4286,2.1429-1.25,2.5-2.6786,2.3214-2.8572,2.8572-0.89285-1.7857-1.6072-2.1428-1.7857-1.0714-1.9643,0.71428-1.9643-0.71428-0.71429-1.6072-1.25-1.25-2.5-0.89285-2.1428-0.89286-0.71429-1.6071-0.89286-1.7857-1.4286-1.4286-2.8571-0.17857-2.5,1.4286-2.5,1.0714-2.6786,0.17857-4.1072-1.6071-3.5714-0.35714-2.1429-0.17858-0.89286-1.9643-1.0714-2.3214v-1.4286l-3.3928-0.71429-2.3214-0.53571-0.89286-2.5-0.71429-2.3214s1.4286-0.17857-1.0714-0.35714-5.5357-1.0714-5.5357-1.0714l-1.4286-0.53572-3.2143-2.5-2.5-1.6071-2.8572-1.0714-3.2143-1.25-1.25-0.89285-0.17857-2.1429-2.8572-3.9286,0.17857-6.7857-1.25-1.7857-2.3214-2.8571-1.0714-2.1429-0.53572-0.53572-1.0714,1.25-0.53571,0.71429h-1.4286l-2.6786,0.89286-1.25,0.35714-1.6072-0.35714-2.1428-2.3214-1.7857-1.6071,0.53572-0.89286,1.4286-1.6071-0.35714-1.7857-2.5-2.3214-3.0357-1.4286-4.2857,0.35714-3.0357-1.25-2.6786-0.89285-3.3929-4.2857,2.3214-2.5,2.5-3.75,0.17857-5.3571,0.35715-1.4286,3.75-1.0714,2.6786-2.5,1.4286-1.4286h3.75,3.3929l3.9286,0.53571,1.7857-1.25,3.5714-1.6071,3.3929-0.53571,2.5-1.25,2.3214-1.25,0.35714-2.8572-2.1429-2.3214-0.71428-1.25,0.53571-1.6071,2.3214-1.4286,0.35714-1.25,1.92-2.87z\",\"name\":\"Yamalo-Nenets Autonomous Okrug\"},\"kr\":{\"path\":\"M501.66,122.41c-0.45,0.04-1,0.37-1,0.37-0.9,0.72-1.25,0.77-0.94,1.13,0.31,0.35,0.19,0.55,0.9,0.78,0.72,0.22,0.91,0.49,1.44,0,0.54-0.49,0.77-1.24,0.41-1.69s-0.37-0.64-0.81-0.59zm11.56,0.65c-0.22,0.02-0.44,0.11-0.6,0.38-0.31,0.53-0.49,1.57-0.62,1.84s-0.2,0.74-0.78,0.88c-0.58,0.13-1.39,0.54-1.75,0.09s-1.03-1.51-1.25-1.69-1.04-0.74-1.13-0.03c-0.09,0.72,0.19,1.51,0.19,1.91s-0.18,0.99-0.4,1.12c-0.23,0.14-1.06,0.25-1.29,0.56-0.22,0.32-0.62,0.49-0.62,1.16s-0.27,1.67-0.31,1.94c-0.05,0.27-0.32,0.26-0.63,0.75s-1.09,1.87-1.09,1.87,0.89,0.62,1.15,0.85c0.27,0.22,0.42,0.77,0.38,1-0.05,0.22-0.13,1.05-0.53,1.19-0.4,0.13-1.43,0-1.78-0.13-0.36-0.13-1.01-0.48-1.5-0.44-0.49,0.05-1.01,0.23-1.19,0.63s-0.71,0.38-0.13,1.18c0.58,0.81,0.87,1.53,1,1.76,0.14,0.22,0.29,1.51,0.07,1.87-0.23,0.36-1,1.13-1.22,1.53-0.23,0.4-0.44,0.71-0.22,1.16,0.22,0.44,0.66,0.8,1.15,0.94,0.5,0.13,3.66,0.71,3.66,0.71s0.28-0.36,0.81-0.71c0.54-0.36,1.36-0.77,1.85-0.41s0.52,0.8,0.65,1.25c0.14,0.45,0.41,2.02,0.5,2.37,0.09,0.36,0.49,0.58,0.94,1.16s1.59,1.37,2.22,1.59c0.63,0.23,1.05,0.55,1.72,0.6,0.67,0.04,2.85,0.82,2.94,1.09s0.31,1,0.31,1,0.54,0.52,0.81,0.56c0.27,0.05,2.22,0.19,2.22,0.19,1.38-0.76,2.23-0.8,2.5-0.94,0.27-0.13,0.84-0.03,1.37-1.06,0.54-1.03,0.76-1.35,0.63-2.06-0.13-0.72-0.34-0.93-0.87-1.6-0.54-0.66-1.5-1.24-1.1-1.56,0.4-0.31,1.56-0.8,1.88-1.15,0.31-0.36,0.54-1.32,0.4-2.35-0.13-1.02-0.15-2.5-0.47-2.9-0.31-0.41-0.73-0.92-1.4-1.19s-1.23-0.67-1.81-0.53c-0.59,0.13-1.92,0.25-2.19,0.03s-0.62-0.83-0.85-1.5c-0.22-0.67-0.5-1.13-0.5-1.53s1.16-3.63,1.16-3.63,0.71-0.29,0.84-0.56c0.14-0.27,0.36-0.76,0.22-1.66-0.13-0.89-0.39-1.55-1.28-2.09s-2.09-1.72-2.09-1.72v-0.97c0-0.35-0.15-1.73-0.28-2-0.14-0.27-0.48-0.72-0.97-0.72-0.25,0-0.5-0.05-0.72-0.03zm17.72,22.91c-0.13,0.02-0.25,0.07-0.35,0.19-0.4,0.44-0.72,1.12-0.9,1.34s-0.51,0.09-0.91,0-0.89-0.43-1.16-0.03c-0.26,0.4-0.67,0.74-0.71,1.19-0.05,0.44,0.09,1.75,0.09,2.46,0,0.72,0.09,1.8,0,2.6s-0.2,1.3-0.78,1.66c-0.58,0.35-0.91,0.4-1.31,0.93-0.41,0.54-1.13,1.25-1.13,1.88,0,0.62,0.06,1.45-0.66,2.03-0.71,0.58-1.14,0.56-0.96,1.4,0.17,0.85,0.22,0.93,0.84,1.38s2.79,0.63,3.28,0.5,1.26-0.77,1.66-1.22,1.61-0.99,2.28-1.12c0.67-0.14,1.17-0.08,2.16-0.13,0.98-0.04,1.54-0.39,2.03-0.65,0.49-0.27,0.54-0.54,1.43-0.54,0.9,0,1.74,0,2.1-0.31,0.35-0.31,1.35-1.19,1.62-1.5s0.88-1.05,0.97-1.5,0.18-1.3,0-1.75,0.15-1.15-1.19-1.28-1.57,0.07-1.84-0.38c-0.27-0.44-1.03-0.88-1.03-1.37s0.08-1.02-0.19-1.37c-0.27-0.36-0.79-0.81-1.28-0.72s-1.31,0.58-1.53,0.62c-0.22,0.05-0.71-0.09-0.85-0.4-0.13-0.32-0.21-1.11-0.21-1.91s-0.25-1.63-0.25-1.63c-0.34-0.13-0.83-0.43-1.22-0.37zm5.22,20.03c-0.62,0.05-1.16,0.75-1.16,0.75s-1.62,1.95-2.16,2.84c-0.53,0.9-0.86,1.08-1.93,1.25-1.08,0.18-1.82,1.63-1.82,1.63s-0.51,1.23-0.68,2.12c-0.18,0.9-1.25,3.07-1.25,3.07v1.93l0.87,1.63s1.6,1.05,1.78,2.12c0.18,1.08-2.12-0.68-2.12-0.68s-2.14-0.73-3.03-0.91c-0.9-0.18-1.64,0.01-3.07,0.19-1.42,0.18-1.25,0.34-1.25,0.34l0.72,1.63s1.61,1.4,1.25,2.65c-0.35,1.25-1.4-0.53-1.4-0.53l-1.97-0.87s-1.98,0.16-2.88,0.87c-0.89,0.72-1.25,0.91-1.97,0.91-0.71,0-1.59-0.71-2.12-1.78-0.54-1.08-0.91-0.91-1.63-1.44-0.71-0.54-3.2,0-4.09,0s-2.32,1.79-3.75,1.97-1.78,0.53-1.78,0.53l0.34,2.12-1.97,1.1-2.12,0.53-2.16,0.53c-0.71,0.18-2.12-0.19-2.12-0.19l-1.97-0.34-1.44,0.87-0.53,0.57-2.84,0.15-2.16,0.91s-2.49,2.13-4.09,2.31c-1.61,0.18-0.19,0.53-0.19,0.53s1.06,0.91,1.06,1.63c0,0.71-0.7,0.87-0.87,1.4-0.18,0.54-1.45-0.33-2.35-0.68-0.89-0.36-1.25,0-1.25,0s0.2,1.04,0.38,1.93c0.18,0.9,1.06,1.28,1.06,2.35s-0.19,2.12-0.19,2.12,0.53,2.69,0.53,3.41v2.69c0,0.89-0.87,1.59-0.87,1.59s-1.25,0.72-3.03,0.72c-1.79,0-0.91-0.72-0.91-0.72l0.72-0.91-0.53-1.4-1.97-0.38-2.31,1.25-1.78-0.53h-3.22-3.94c-1.43,0-1.95-1.07-2.84-1.25-0.9-0.18-2.88-0.34-2.88-0.34s-2.14-0.02-3.03,0.34-1.97,1.06-1.97,1.06v3.07,3.03s-1.6,0.69-1.78,1.4c-0.18,0.72,0.01,2.68,0.19,3.75,0.18,1.08,1.05,0.72,2.12,1.25,1.07,0.54,2.16,1.25,2.16,1.25l0.53,0.57,0.34,1.78s0.57,1.94,0.57,2.65c0,0.72,1.25,1.97,1.25,1.97s0.68,1.63,0.68,2.35c0,0.71-0.51,1.22-0.87,1.93-0.36,0.72-0.73,1.61-0.91,2.5-0.18,0.9,0,2.16,0,2.16l0.38,2.84s-0.2,2.88-0.38,3.6c-0.18,0.71-0.89,1.42-1.78,1.78s-1.25,2.12-1.25,2.12,0.01,2.7,0.19,3.6c0.18,0.89,0.88,1.42,1.59,1.78,0.72,0.36,1.25,1.78,1.25,1.78l-0.87,1.78-1.78-0.34-1.44-1.78-0.91-1.82v-2.5s-0.54-1.76-1.97-2.65c-1.42-0.9,0.19-1.63,0.19-1.63s1.08-1.25,1.44-1.97c0.36-0.71,1.06-1.78,1.06-1.78s1.8-1.6,2.16-2.5c0.35-0.89-0.38-1.4-0.38-1.4l-1.06,0.68-1.78,1.82-1.78-0.91s0.69-1.25,0.87-1.78c0.18-0.54,0.54-1.79,0.72-2.5,0.18-0.72,0.35-1.6,1.06-2.31,0.72-0.72,2.35-0.19,2.35-0.19l1.25-1.25v-1.63l-1.1-1.59s-1.4-0.17-3.9-0.34c-2.5-0.18-0.72-1.25-0.72-1.25l-0.72-1.82s-0.72-1.76-1.44-2.12c-0.71-0.36-1.94-3.04-2.65-3.75-0.72-0.72-1.1-1.44-1.82-2.16-0.71-0.71-2.11-1.78-3.18-2.5-1.08-0.71-1.97-1.4-1.97-1.4l-1.63,0.34s-1.05,1.07-0.15,2.5c0.89,1.43,1.06,1.44,1.06,1.44l1.25-0.28,0.97,0.18,1.22,0.5,1.15,1.07,1.06,0.71,0.91,1.07,0.53,0.9,0.1,0.94-0.6,1.63-1.68,1.84-1.29,0.81-1.93,0.88,0.81,1.15s2.04,1.71,2.22,1.85c0.18,0.13,0.69,0.9,0.69,0.9l0.31,2.85,0.09,2.59s-0.33,2.1-0.37,2.28c-0.05,0.18-0.63,0.88-0.63,0.88l-7.09,3.97-1.44,0.9-1.25,0.94-0.66,0.81s0.3,2.37,0.35,2.6c0.04,0.22,0.64,1.18,0.69,1.4,0.04,0.23,1.28,2.69,1.28,2.69s1.15,1.2,1.46,1.69c0.32,0.49,2.16,0.31,2.16,0.31h3.44c0.4,0,1.34,0.5,1.34,0.5s1.3,0.98,1.35,1.16c0.04,0.17,0.37,1.31,0.37,1.31l0.38,3.34s0.09,3.42,0.09,3.69-0.5,1.56-0.5,1.56l-0.34,1.22c-0.04-0.01-0.07-0.03-0.1-0.06l-1.15,2.06-1.82,1.69-1.68,0.28-1.6,0.28,0.16,1.41s1,1.98,1,2.34-0.01,1.68-0.19,2.13c-0.18,0.44-0.81,1.68-0.81,1.68l0.47,1.19,1.15,1.69,0.88,2.41,0.47,1.68-1.16,1.97-1,1.63,0.72,1.93s0.08,1.53-0.09,1.97c-0.18,0.45-1.07,1.16-1.07,1.16l-0.43,1.19s4.1,3.63,5,4.53c0.89,0.89,0.15,1.52,0.15,2.06s-0.72,2.5-0.72,2.5l-1.25,2.22,0.1,1.87s1.54,1.46,1.72,1.82c0.17,0.35,1.68,0.78,2.22,0.87,0.53,0.09,2.78,0.38,2.78,0.38l1.25,1.31-0.19,0.81-1.16,1.63-0.72,3.28s-0.8,2.07-1.15,2.34c-0.36,0.27-1.44,1.16-1.44,1.16l-2.22,1.15-1.72,2.41,0.38,0.97,1.34,1,0.25,1.78-0.81,1.78-1.25,2.78-1.5,1.41-2.31,2.34-1.72,1.6-1.5,2.25s-0.9,2.92-0.81,4c0.08,1.07,0.96,0.72,0.96,0.72s1.62,1.07,2.16,1.34,1.51,0.99,1.78,1.34c0.27,0.36,1,1.24,1,1.69v1.53l-0.81,0.88-1.25,0.81-3.41,1.25-1.69,0.34-2.4-0.25s-1,0.43-0.91,0.78c0.09,0.36,0.72,1.63,0.72,1.63s0.45,1.24,0.63,1.69c0.17,0.44,0.27,0.88,0.72,1.06,0.44,0.18,0.09,2.97,0.09,2.97s-0.89,2.3-1.16,2.75c-0.27,0.44-0.46,1.25-0.37,1.87,0.09,0.63,0.72,1,0.72,1s1.7,0.69,2.06,0.78,2.94,1.1,2.94,1.1,3.13,0.72,3.84,0.72,2.58,0.06,3.56,0.15,2.5,1,2.5,1,1,0.87,1.53,1.41c0.54,0.53,0.25,4.64,0.25,5s2.88,0.19,3.5,0.28c0.63,0.09,2.32,0.81,2.32,0.81s0.43,1.33,0.43,1.69-0.43,1.88-0.43,1.88l-1.78,0.9-3.47,1.5-0.57,1.06s-1.13,4.74-1.4,5.19,0.53,1.88,0.53,1.88l1.5,0.62,2.25,1.06s3.47,2.25,4.09,2.79c0.63,0.53-0.09,0.96-0.09,0.96l-0.97,1.82-5.44,4.72-0.72,1.96-0.18,1.5s-0.44,3.58-0.44,3.94,0.34,1.53,0.34,1.53,1.81,1.15,2.25,1.5c0.45,0.36,1.88,1,1.88,1l0.72,1.41s0.79,1.54,1.06,2.34c0.27,0.81-0.72,0.97-0.72,0.97l-3.56,2.94-1.97,0.91s-1.35,1.33-1.44,1.87,0.81,0.97,0.81,0.97l0.97,1.44,1,1.34s1.95,0.73,2.75,0.91c0.81,0.17,1.63-0.57,1.63-0.57s1.42-1.95,2.4-2.22c0.99-0.26,0.53,0.46,1.07,0.72,0.53,0.27,1.96,0.61,2.59,0.88s2.22,1.34,2.22,1.34l0.81,2.06,1.78,7.41,0.82,2.5-1.26,4.13s0.1,2.05,0.19,2.4c0.09,0.36,0.8,1.24,1.07,1.6,0.26,0.35,0.43,2.15,0.43,2.15l-0.97,1.35-2.4,1.5-1.1,1.78s-2.3,3.32-2.65,3.59c-0.36,0.27-2.06,1.14-2.6,1.41-0.53,0.27-2.06,1.44-2.06,1.44s0.27,1.06,0.63,1.15c0.35,0.09,0.53,2.16,0.53,2.16l0.81,1.06,1.88-0.44,3.21,0.78,2.5,0.91s1.25,0.88,1.79,1.06c0.53,0.18,3.4-0.44,3.4-0.44s5.87-2.32,6.31-2.59c0.45-0.27,1.72-1.06,1.72-1.06s2.5-1.89,3.03-2.25c0.54-0.36,3.74-2.14,4.1-2.41,0.35-0.27,1.44-1.78,1.44-1.78l0.9-2.12s0.16-1.99,0.25-2.44,0.53-1.5,0.53-1.5l0.72-1.25,2.16-0.19,3.12,0.44,2.32,0.19s3.57,0.1,4.37-0.35c0.8-0.44,0.45-0.72,0.63-1.34,0.17-0.63-0.27-0.9-0.63-1.35-0.36-0.44-1-1.33-1.53-1.78-0.54-0.44-1.25-1.15-1.25-1.15s-2.31-4.22-2.31-4.75c0-0.54,0.81-1.15,2.15-1.69s3.91-0.97,3.91-0.97l2.06-1.19-0.09-2.65,0.47-1.78s1.16-2.8,1.25-3.07c0.09-0.26,1.51-2.93,1.68-3.56,0.18-0.62,0.62-1.79,1.07-2.59,0.44-0.81,1.62-1.68,2.15-2.03,0.54-0.36,1.68-1.91,2.13-2.44,0.44-0.54,1.09-2.22,1.09-2.22l-0.19-4.09s-2.13-2.42-2.4-3.22c-0.27-0.81,0.07-1.43,0.34-1.78,0.27-0.36,1.61-1.88,1.97-2.5,0.36-0.63,0.81-2.53,0.81-2.97,0-0.45,0.98-1.5,1.88-2.13,0.89-0.62,2.83-0.18,3.28,0s1.09,0.81,1.72,1.35c0.62,0.53,3.28,0.68,3.28,0.68s1.07-1.42,1.25-1.87,0.98-1.77,1.25-2.22,1.53-1.07,2.25-1.16c0.71-0.09,1.69,0.63,1.69,0.63s0.97,1.78,1.15,2.31c0.18,0.54,1.18,1.61,1.53,1.97,0.36,0.36,1.26,1.8,1.35,2.16,0.09,0.35,1.06,0.33,2.22,0.15s0.09-1.4,0.09-1.4v-2.16s-0.62-2.16-0.62-2.78c0-0.63,0.71-1.78,0.71-1.78s2.5-0.8,3.03-1.06c0.54-0.27-0.08-1.17,0.1-1.97,0.18-0.81,1.33-1.7,1.69-1.88,0.35-0.18,2.96-0.61,3.4-0.87,0.45-0.27,1.41-1.25,1.41-1.25l0.62-2.69,0.28-2.88s-0.02-0.11-0.03-0.12c0.09-0.06,0.32-0.22,0.32-0.22l1.31,0.19s0.6-0.58,1.31-0.94c0.72-0.36,0.79,0.03,0.97,0.03s0.68,1.11,0.81,1.47c0.14,0.36,0.36,1.26,0.41,1.53,0.04,0.27,1.38,0.68,1.56,0.72s1.55,0.47,1.81,0.56c0.27,0.09,1.66,1.08,1.97,1.44,0.32,0.36,1.04,0.45,2.38,0.94s1.53-0.28,1.53-0.28l0.65-0.63s0.23-1.4,0.32-1.94c0.09-0.53,0.72-0.87,0.72-0.87s1.51-1.22,1.87-1.63c0.36-0.4,0.5-0.87,0.5-0.87s0.34-2.99,0.16-3.13c-0.18-0.13-1.38-0.71-1.78-0.84-0.41-0.13-1.6-1.46-2-2.13-0.41-0.66,0.3-1.16,0.43-1.43,0.14-0.27,1.41-1.06,1.63-1.28,0.22-0.23,1.06-0.78,1.59-1,0.54-0.23,0.27-2.9,0.22-3.35-0.04-0.44-0.7-0.44-1.81-0.62-1.12-0.18-1.97-0.85-1.97-0.85s-1.52-1.52-2.19-2.28-0.22-2.76-0.22-3.03,0.17-4.1,0.13-4.9c-0.05-0.81,0.54-1.63,0.72-1.85s2.37-0.49,2.59-0.53,1.9-0.99,2.35-1.34c0.44-0.36,0.59-1.19,0.59-1.19s-0.37-1.3-0.5-1.75c-0.14-0.45,0.72-1.65,1.03-1.88,0.31-0.22,1.91-1.37,1.91-1.37s1.07-6.86,1.25-7.13c0.17-0.26-0.32-1.59-0.32-1.59s-1.19-3.62-1.28-3.84c-0.09-0.23-0.68-1.65-0.5-2.32s1.27-1.02,1.41-1.25c0.13-0.22,0.07-0.97-0.16-1.15-0.22-0.18-1.03-1.16-1.03-1.16s0.58-3.41,0.63-3.81c0.04-0.4,0.28-1.69,0.28-1.69l1.22-0.84s3.79-0.07,4.06-0.07,2.03-0.79,2.44-1.06c0.4-0.27,0.13-1.66,0-1.84-0.14-0.18-1.19-1.94-1.19-1.94h-2.28l-2.5,0.06-2.1-0.43-1.03-0.41s-2.49-0.25-2.72-0.25c-0.22,0-1.5-0.16-1.5-0.16l-0.65-0.25s-0.13-1.6-0.13-1.87,0.48-0.55,1.07-0.91c0.58-0.35,0.93-0.94,0.93-0.94s-0.17-0.98-0.43-1.34c-0.27-0.36-0.1-0.97-0.1-0.97s2.29-2.76,2.38-2.93c0.09-0.18,0.62-1.04,0.62-1.04s0.89-1.56,1.06-2.18c0.18-0.63-0.59-1.16-0.59-1.16s-3.42-4.04-3.78-4.44-1.14-1.64-1.31-1.9c-0.18-0.27-0.91-1.24-1-1.69s0.31-1.41,0.31-1.41l1.09-3.47-0.56-1.06s-1.07-0.96-1.16-1.09c-0.09-0.14-1-0.75-1-0.75s-0.63-0.55-0.5-0.91c0.14-0.36,1.36-0.56,1.63-0.56s2.31-0.69,2.31-0.69,1.39-0.56,1.56-0.78c0.18-0.22-0.03-1.16-0.03-1.16s-1.56-17.7-1.56-18.06-0.65-1.56-0.78-1.78c-0.14-0.22-2.19-2.34-2.19-2.34l-0.72-5.16h0.06s1.85,0.06,2.47,0.06c0.63,0,0.97-0.84,0.97-0.84l2.5-2.06,1.53-1.38s0.57-0.52,0.88-0.56c0.31-0.05,1.26,0.58,1.44,0.62,0.17,0.05,1.47,0.6,1.47,0.6s0.99-0.52,1.43-0.66c0.45-0.13,0.75-0.62,0.75-0.62l-0.31-5.94,4.16-2.16s0.93-1.1,0.93-1.28,0.57-1.87,0.57-1.87l4.47-3.1s1.78-2.23,2.18-2.5-0.03-0.62-0.03-0.62l-1.25-1.85s-1.07-1.29-1.78-1.47c-0.71-0.17-0.91-1.09-0.91-1.09l0.29-5-0.6-0.47-2.84-2.31-3.41-2.69-0.72-1.97-0.34-1.4-1.06-1.78,0.15-0.91,1.25-2.69-1.4-1.4-1.63-1.97-0.72,1.59s-1.43-0.53-2.5-0.53-1.06,1.44-1.06,1.44-1.95,0.71-2.84,1.25c-0.9,0.53-1.25,1.78-1.25,1.78s-1.45,1.25-2.16,1.25-2.14,0.01-3.03,0.19c-0.89,0.17-1.43,1.41-1.97,2.12-0.54,0.72-1.44,2.33-2.16,2.69-0.71,0.36-0.71,0.34-1.78,0.34s-0.16-0.7,0.38-2.31c0.53-1.61,1.95-1.79,2.31-2.5s0.72-1.78,0.72-1.78l2.5-0.91s0.54-3.02,1.44-3.37c0.89-0.36,3.75-0.53,3.75-0.53s1.22-1.63,1.4-2.35c0.18-0.71,1.44-1.58,1.97-2.65,0.54-1.08,0.72-1.79,0.72-2.5,0-0.72,0.91-1.82,0.91-1.82l2.5-2.12s1.58-1.6,1.93-2.31c0.36-0.72,2.16-1.97,2.16-1.97l2.16-1.97,2.31-2.5s0.19-1.44,0.19-2.16c0-0.71-0.72-1.78-0.72-1.78s-1.26-0.9-1.97-1.44c-0.72-0.53-1.78-0.7-1.78-1.59s0.16-0.72,0.34-1.44c0.18-0.71,0.72,0,0.72,0l1.44,1.1,0.15-1.25-0.15-2.35-0.53-1.97-2.69-0.68-1.78-1.1h-2.16c-0.71,0-0.52-0.69-0.87-1.4-0.36-0.72-0.37-1.62-0.91-2.69s-2.31-0.19-2.31-0.19l-1.78,0.91c-0.72,0.35-0.73,0.52-1.44,1.06-0.72,0.54-1.61-0.37-3.22-0.91-1.61-0.53-1.77,0.02-2.84,0.38-1.08,0.36,0.17,0.88,0.53,1.59,0.35,0.72,0,1.44,0,1.44l-2.35-0.19s-1.06-0.35-1.78-1.25c-0.71-0.89,0.19-1.06,0.19-1.06s1.25-1.43,1.25-2.5-0.72-1.25-0.72-1.25h-2.69c-1.25,0-1.96-0.17-3.03-0.34-1.07-0.18-1.25-0.37-1.97-1.44-0.71-1.07,0.57-0.53,0.57-0.53l1.4-1.25,1.25-0.72,2.69,0.34s0.9,0.56,1.97,0.38,0.19-0.72,0.19-0.72l-1.63-1.06s-1.77,0.34-2.84,0.34-2.16-0.72-2.16-0.72l-1.97-0.87s-1.41-1.45-2.12-1.63c-0.09-0.02-0.2-0.04-0.28-0.03zm-45.94,3.34c-0.85,0.32-1.23-0.03-1.5,0.82-0.27,0.84-0.34,0.96,0.16,1.18,0.49,0.23,0.87,0.53,1.4,0.44,0.54-0.09,1.24-0.47,1.06-1.09-0.17-0.63-1.12-1.35-1.12-1.35zm20.84,3.82c-0.33,0-0.47,0.12-0.94,0.56-0.62,0.58-1.62,1.37-1.71,1.9-0.09,0.54,0.12,0.96-0.19,1.54s-1.55,1.81-2,2.12-2.51,0.16-2.6,0.47c-0.08,0.31-0.37,0.52,0.04,0.87,0.4,0.36,2.91,0.63,3.72,0.54,0.8-0.09,3.3-0.3,3.74-0.35,0.45-0.04,0.71,0.28,0.66-0.43-0.04-0.72-0.72-1.36-0.4-1.85,0.31-0.49,0.6-0.65,0.78-0.97,0.17-0.31,0.49-1.06,0.31-1.47-0.18-0.4-0.72-0.95-0.72-1.53s-0.28-1.37-0.28-1.37c-0.18-0.01-0.3-0.04-0.41-0.03zm-45.53,6.62c-0.49,0-2.1,0.86-2.19,1.13-0.09,0.26-0.56,0.38,0.07,0.97,0.62,0.58,0.39,0.88,1.15,0.84,0.76-0.05,1.55-0.67,2.22-0.63,0.67,0.05,1,0.79,1.31,0.79,0.32,0,0.62-0.23,0.66-0.72s-0.42-0.89-0.59-1.07c-0.18-0.17-0.54-0.18-0.54-0.18-0.31-0.45-1.6-1.13-2.09-1.13zm-2.06,6.25c-0.54,0.18-1.01,0.45-1.5,0.63-0.49,0.17-0.81,0.17-1.13,0.43-0.31,0.27-0.72,0.46-0.72,0.82,0,0.35,0.15,0.5,0.6,0.81s0.52,0.62,1.19,0.62,1.89-0.5,2.03-0.81c0.13-0.31,0.48-0.94,0.53-1.25,0.04-0.31-1-1.25-1-1.25zm-51.31,9.13l-2.35,2.12-0.34,1.78,1.97,0.38,1.25,0.87h2.5l1.25-0.87v-1.78l-1.63-2.16-2.65-0.34zm59.09,4.4c-0.49,0.14-1.47,0.59-1.25,1.03,0.22,0.45,0.5,0.8,0.91,0.75,0.4-0.04,0.74-0.01,0.87-0.5,0.14-0.49-0.22-1.25-0.22-1.25l-0.31-0.03zm97.34,1.78c-0.09,0.01-0.18,0.07-0.28,0.22-0.38,0.6-0.53,1.69-0.4,2.1,0.12,0.41-0.42,0.87,0.12,1.31s0.62,1.22,1.53,1.25c0.92,0.03,1.9,0.47,2.63-0.06,0.72-0.54,1.43-1.69,1.65-2.19,0.22-0.51,0.32-1.22,0.07-1.53-0.26-0.32-0.62-0.81-1.13-0.88-0.5-0.06-1.19,0.16-1.19,0.16-1.07,0.31-0.99,0.66-1.78,0.31-0.59-0.26-0.92-0.72-1.22-0.69zm-135.37,0.22l-1.97,0.19-1.44,1.44,0.53,1.06,1.63-0.91,1.44,0.57,0.34,1.59,1.25,0.34,0.72-0.87-0.53-1.06-1.97-2.35zm27.09,1.13c-0.49,0.01-1.04,0.1-0.9,0.5,0.17,0.53,1.09,0.75,2.03,0.75s2.97,0.08,3.06,0.44c0.09,0.35,0.68,1.56,0.91,1.65,0.22,0.09,0.92,0.13,0.97-0.41,0.04-0.53-0.44-1.13-0.76-1.4-0.31-0.27-2.09-1.25-2.09-1.25-0.45-0.09-2.24-0.28-2.78-0.28-0.13,0-0.27-0.01-0.44,0zm10.31,1.12c-0.71,0.23-0.93,0.25-0.93,0.88,0,0.62-0.1,1.06,0.43,1.15,0.54,0.09,0.85,0.33,1.26,0.07,0.4-0.27,0.59-0.91,0.37-1.22s-1.13-0.88-1.13-0.88zm-44.71,1.16l-1.44,1.25,0.72,0.87,1.78-1.06-1.06-1.06zm6.4,2.31v1.78l2.35-0.53v-1.25h-2.35zm133.35,1.5c-1.05,0.29-1.25,0.28-2.07,0.6-0.82,0.31-1.49,0.24-1.87,0.74-0.38,0.51-0.44,0.28-0.66,1.29s-0.69,0.99,0.1,1.31c0.79,0.31,1.39,0.29,2.31-0.41,0.91-0.69,1.71-1.09,2.19-1.65,0.47-0.57,0.84-1.19,0.84-1.35s-0.84-0.53-0.84-0.53zm-122.41,0.5c-0.4,0.63-0.65,1.16-0.87,1.56-0.23,0.41-0.68,0.77-1.13,1.66s-0.81,1.32-0.81,2.03c0,0.72,0.24,1.18,0.68,1.41,0.45,0.22,0.34,0.5,0.57,0.5,0.22,0,0.82,0.09,1.31,0s1.03-0.19,1.03-0.5v-1.88c0-0.53-0.31-3.37-0.31-3.59s-0.47-1.19-0.47-1.19zm-16.47,0.69l-1.06,0.87v1.25l1.44,0.57,0.87-1.25-1.25-1.44z\",\"name\":\"Krasnoyarsk Krai\"},\"tm\":{\"path\":\"m424.64,359.43,1.25,3.2143,1.25,2.3214s-0.53571,2.3214-0.71428,3.0357c-0.17857,0.71429-1.6071,3.0357-1.6071,3.0357s0.53571,1.25,1.6071,1.9643c1.0714,0.71429,5.8929,1.7857,5.8929,1.7857l5.3571,0.17857s3.75,0.89285,4.1071,1.6071c0.35714,0.71429,0.89286,1.0714,0.89286,2.1429,0,1.0714,0.35714,4.2857,0.35714,4.2857s1.25,0.35714,2.6786,0.35714,3.0357,0.35715,3.0357,0.35715,0.35714,2.1428,0.35714,2.6786c0,0.53571-0.89286,1.7857-1.9643,1.7857s-3.75,1.6072-3.75,1.6072-1.25,2.6786-1.25,3.75-0.89285,3.5714-0.53571,4.2857c0.35714,0.71429,4.4643,1.7857,5.1786,2.1429,0.71429,0.35714,3.2143,2.6786,3.2143,2.6786s-0.71429,1.6071-1.6072,2.6786c-0.89285,1.0714-4.1071,3.0357-5.3571,4.6429-1.25,1.6071-0.35714,2.8571-0.35714,2.8571l-0.71429,1.6071-3.2143,0.53572-3.2143,0.35714-1.4286-1.6071-1.9643-0.17857-4.66-0.57h-2.3214l-1.25,1.0714s-2.1429,1.0714-3.2143,1.25c-1.0714,0.17857-5.3571,1.25-6.0714,1.25-0.71428,0-6.4286,0.71429-6.4286,0.71429l-3.3928,1.4286h-2.3214l-0.35715-1.9643,0.71429-2.1429-0.35714-2.3214,1.7857-2.3214-0.53571-1.4286s-1.0714-0.17858-1.9643,0.53571c-0.89286,0.71429-4.4643,1.0714-4.4643,1.0714l-4.2857-0.17857-1.9643-2.3214-0.89286-3.0357s-1.25-1.0714-2.6786-0.71428c-1.4286,0.35714-1.6072,1.25-2.6786,1.25s-2.5,0-3.0357-0.89286c-0.53571-0.89286-0.89285-3.0357-0.89285-3.0357l-0.9-2.33s-1.6071-0.89286-2.5-1.6071c-0.89286-0.71429-3.2143-2.3214-3.2143-2.3214l-5.1786-2.3214-4.2857-1.9643-4.6429-1.7857-2.6786-1.0714-1.7857-2.5v-3.0357l1.6072-2.8572,0.35714-1.7857-0.53571-2.3214,1.25-3.0357,0.71428-3.3929,1.9643-1.0714,3.3928-2.8571s0-2.1429,0.71429-2.3214c0.71429-0.17857,5.7143-1.6071,5.7143-1.6071l1.9643-1.7857,1.25-2.6786,2.5-1.6071,1.6071-3.2143s1.0714-1.0714,1.7857-1.7857c0.71428-0.71429,2.1428-1.4286,2.1428-1.4286l1.9643-0.35715,2.1429,1.7857,2.1428,1.0714,2.5,0.35714,2.8572,1.4286,1.0714,1.6071,3.0357,0.89286h3.3929l2.1428,0.35714,1.25,1.6072,2.6786,0.71428,2.3214,0.71429,2.1429,1.7857,1.25-0.89286,1.7857-0.53571,2.1428-1.4286,2.1429-0.17857,1.6071,0.71428,1.7857,0.89286z\",\"name\":\"Tomsk Oblast\"},\"nv\":{\"path\":\"m341.43,421.57,4.1071,0.71429l4.4643-0.17858c1.25-0.17857,2.1429-0.71428,2.1429-0.71428l-2.14,3.4h-3.0357l-0.89285,2.1428s1.0714,1.9643,1.7857,2.5c0.71429,0.53572,2.6786,3.0357,2.6786,3.0357l0.53572,2.1428,2.3214,0.35715h1.4286s2.6786,0.35714,3.3928,0.35714c0.71429,0,0.89286,0,1.9643-0.35714,1.0714-0.35715,3.2143-0.71429,4.6429-0.71429h3.5714s2.6786,0.17857,3.5714-0.35714c0.89286-0.53572,0.89286-1.0714,2.3214-1.25,1.4286-0.17857,3.0357-0.17857,3.9286-0.17857,0.89286,0,1.9643-0.17857,1.9643-0.17857s0,1.6071,0.89286,2.1428c0.89285,0.53572,4.1071,2.6786,4.1071,2.6786l0.71428,0.71429c0.17858,0.71429-0.17857,2.5-0.17857,3.2143,0,0.71428-1.0714,0.71428-0.17857,1.6071,0.89286,0.89286,1.9643,1.4286,1.9643,1.4286l2.3214-1.9643,2.3214-2.3214s2.1429-0.53572,2.8572-0.53572c0.71428,0,3.0357,0,3.75-0.17857,0.71428-0.17857,1.4286-0.71429,2.6786-0.17857,1.25,0.53571,2.3214,0.71428,3.3929,0.71428,1.0714,0,3.5714-1.25,3.5714-1.25s1.7857-2.1428,1.9643-2.8571c0.21-0.7-0.33-4.45-0.33-4.45v-3.75c0-0.71429,0.71428-2.3214,1.25-2.6786,0.53571-0.35714,1.7857-0.89285,1.7857-1.7857,0-0.89286-0.89286-1.6071-0.89286-1.6071s-0.89285-0.53572-0.89285-1.4286c0-0.89286,0.35714-3.2143-0.53572-3.0357-0.89285,0.17857-4.1071,1.7857-4.1071,1.7857s0,0.17857-1.4286,0.17857-2.5,0-2.6786-0.71429c-0.17857-0.71428,0.35714-5,0.35714-5l0.53571-2.6786,0.17858-2.1429-2.8572,1.4286s-1.6071,0.53572-2.5,0.71429c-0.9,0.18-4.47-0.71-4.47-0.71l-2.1429-0.71428-1.4286-2.1429-1.4286-2.8571s-2.5,0.53571-3.2143,0.71428c-0.71428,0.17858-1.9643,0.53572-1.9643,0.53572l-2.3214-1.25-1.0714-3.3929v-1.25l-3.0357-1.7857s-1.9643-1.6072-2.6786-2.1429c-0.71428-0.53571-3.3928-1.7857-3.3928-1.7857s-3.3929-1.25-4.1072-1.6072c-0.71428-0.35714-1.9643-1.25-2.6786-1.6071-0.71428-0.35714-3.9286-1.4286-3.9286-1.4286l-1.9643,0.17857s-0.35715,1.0714-0.53572,1.9643c-0.17857,0.89285-1.0714,2.3214-1.0714,2.3214l-1.4286,1.0714-0.89286,1.6072,0.17858,2.1428-0.71429,1.4286h-3.2143l-2.5-0.35714-2.1428,0.89286-2.1429,2.3214-1.4286,1.9643-0.71429,2.6786,0.71429,1.9643,1.7857,2.6786v1.7857l-2.1428,3.5714z\",\"name\":\"Novosibirsk Oblast\"},\"al\":{\"path\":\"m351.25,435.14,1.7857,5,1.7857,5.1786,1.6071,6.7857,0.89286,8.5714,0.35714,8.2143,0.35714,2.8571,2.3214-0.53571,1.7857-0.53572,0.89285-0.53571,0.17857-1.9643,1.25-1.6071,1.25-0.35714,1.7857,0.53571,0.89286,1.9643,0.89285,2.8571,2.3214,2.8571,1.9643,1.6071,4.6428,0,3.3929-0.35714,2.5-0.89286,2.3214,0,3.3929,1.4286,1.0714,1.9643,2.3214,0.53572,2.3214-0.53572-0.17857-1.4286-1.6071-1.0714-1.0714-0.89286,0.35714-1.6071,0.71429-0.35714,2.5-0.35714,4.4643-0.71429,3.75-0.17857,2.6786-0.71429,2.3214-1.9643,1.0714-1.9643s0.53572-0.71428,1.25-0.71428c0.71429,0,3.3929-0.17858,3.3929-0.17858l1.9643-0.17857,1.0714-1.7857s0.53572-2.1429,1.25-2.5c0.71429-0.35714,0.89286-2.3214,0.89286-2.3214l0.71429-2.1429-0.35715-1.0714-0.71428-1.0714,0.71428-0.89286,1.25-0.53571-0.17857-1.0714-1.4286-1.6072-1.0714-1.0714c-0.17857-0.71429-0.89286-2.8572-0.89286-2.8572l-1.7857-1.7857-0.17857-0.89286-0.53572-2.1429-1.6071-1.4286-2.5-1.9643-1.74-1.79s-1.6072,1.0714-2.3214,1.4286c-0.71429,0.35715-1.7857,0.71429-1.7857,0.71429l-2.5,0.17857-2.5-0.35714-3.0357-0.17857-4.8214,0.71428-2.5,1.6072-1.6071,1.7857-1.0714,0.71429-0.89286,0.35714-1.4286-1.25-0.35714-0.89286,0.35714-0.89286,0.17857-1.7857-0.17857-1.4286-2.3214-1.6071-1.9643-1.25-1.0714-1.25-0.17857-0.89286-1.9643-0.17857-4.2857,0.17857-1.25,1.25-2.1429,0.53571-3.75-0.53571-4.2857,0.17857-2.6786,1.25h-2.5l-3.3929-0.17857z\",\"name\":\"Altai Krai\"},\"km\":{\"path\":\"m442.14,414.79-0.71428,2.3214,0.89286,1.6072,2.5,1.4286,1.7857,1.6071,1.25,2.5,0.17857,0.89286s-0.89286,1.4286-1.6071,2.1429c-0.71429,0.71428-4.2857,2.3214-4.2857,2.3214l-1.7857,1.7857-1.7857,1.7857v1.6072l1.0714,1.7857,0.17858,1.7857-1.9643,2.5s-1.25,1.0714-1.0714,1.7857c0.17857,0.71428,1.0714,1.4286,1.7857,1.6071,0.71428,0.17857,2.8571,0.89286,2.8571,0.89286l-0.71429,1.4286-1.25,1.7857-0.53571,1.6072-1.7857,0.71428-1.4286,1.6072,0.71429,1.25,1.25,1.25-0.89286,2.5-1.25,1.6071,0.53572,1.25,1.7857,1.7857-0.35714,1.6072-1.6072,1.9643-2.5,2.1429h-1.9643l-0.71429-1.7857-1.9643-1.25-2.6786-0.35714-1.4286,1.0714-2.1428-1.4286-0.71429-2.3214-1.0714-0.71429,0.17857-2.5-0.53571-2.5,0.89286-1.9643,0.71428-1.6071-2.1428-2.6786-1.6072-2.6786-1.25-1.4286-0.71428-2.3214-0.89286-1.7857-2.3214-2.1429-1.7857-1.6071-0.71429-1.25v-1.7857l-0.35714-4.6428,0.17857-2.5,0.71429-2.3214,1.25-1.4286,0.71428-1.25-1.4286-1.9643v-0.89286l-0.35714-2.5,1.6071-0.35714,4.4643-0.53571,2.5-0.89286,3.0357-0.89286,1.0714-0.35714,0.71428-0.89286h1.6072,1.9643,2.5l1.7857,0.35715,1.4286,0.35714,0.89286,0.89286,1.9643,0.53571,1.6071-0.17857,2.5-0.71429z\",\"name\":\"Kemerovo Oblast\"},\"lt\":{\"path\":\"m392.32,478.89-0.44643,2.1428s-0.17857,1.875,0,2.5893c0.17857,0.71429,1.1607,2.3214,1.1607,2.3214l3.3036,0.89286s0.98215,1.1607,1.0714,1.6071c0.0893,0.44643,0.0893,3.3036,0.0893,3.3036s0.17857,0.89286,0.53571,1.6071c0.35715,0.71429,1.25,1.875,1.7857,2.2322,0.53571,0.35714,1.6071,1.25,2.4107,1.3393,0.80357,0.0893,3.125,0.0893,3.5714,0.0893,0.44643,0,4.0179,0.0893,4.0179,0.0893s1.0714,0.53572,1.6071,0.89286c0.53571,0.35714,1.4286,1.25,1.7857,1.875,0.35715,0.625,1.5179,1.6964,2.0536,1.9643,0.53571,0.26785,1.1607,0.80357,1.7857,1.1607,0.625,0.35714,1.6964,0.71429,2.4107,0.80357,0.71429,0.0893,2.9464-0.44643,3.3929-0.71428,0.44643-0.26786,2.3214-0.89286,3.4821-0.89286s4.7322-0.35714,5-0.44643c0.26786-0.0893,3.5714-1.3393,4.1964-1.3393s1.4286-0.89285,1.6071-1.25c0.17858-0.35714,0.625-1.9643,0.17858-2.7678-0.44643-0.80357-0.80358-1.0714-1.4286-1.4286-0.625-0.35715-1.4286-1.25-1.25-1.7857,0.17858-0.53571,1.9643-1.1607,2.4107-1.1607,0.44643,0,2.5,1.0714,2.5,0.26785,0-0.80357-1.6964-2.2321-1.6964-2.2321s-0.98214-1.3393-1.25-1.7857c-0.26786-0.44643-1.875-1.9643-1.875-1.9643s-2.2321-2.7679-2.0536-4.1071c0.17857-1.3393-0.0893-3.3929-0.0893-3.3929s-0.625-1.3393-0.71428-1.6964c-0.0893-0.35714-1.3393-0.17857-1.3393-0.17857l-1.5179,1.5179s-1.4286-0.26786-1.5178-0.80357c-0.0893-0.53572-0.71429-2.5893-0.71429-2.5893s-0.35714-1.7857-0.44643-2.1429c-0.0893-0.35714-0.17857-1.9643-0.17857-1.9643l1.6964-1.3393,2.8571-1.3393,0.35715-1.1607-1.3393-1.6071-0.80357-0.625-2.1429-0.53571-1.9643,0.98214s-1.0714-0.625-1.4286-0.80357c-0.35714-0.17857-1.0714-0.89286-1.0714-0.89286l-0.89286-1.7857s0-1.0714-0.71429-0.89286c-0.71428,0.17857-0.89285,0.71428-0.89285,0.71428s-1.1607,1.1607-1.1607,1.5179c0,0.35714-0.625,1.4286-0.625,1.4286l-0.98214,1.0714s-1.6071,0.44643-1.9643,0.44643h-3.0357c-0.35714,0-1.1607,0.71429-1.5179,1.0714-0.35714,0.35714-1.1607,1.9643-1.1607,1.9643l-1.5179,1.0714-0.98214,0.625-2.3214,0.71429h-2.3214l-4.1071,0.71428-4.1071,0.625-1.0714,0.625-0.0893,0.98215s0.0893,0.89285,0.53572,0.98214c0.44642,0.0893,1.6071,0.80357,1.6071,0.80357l0.44643,0.89286-0.0893,0.89286-1.875,0.625z\",\"name\":\"Altai Republic\"},\"tv\":{\"path\":\"m431.96,477.02,0.26786-1.6964s0.89286-0.625,1.6071-0.625c0.71429,0,1.6964,0.71428,2.4107,0.89286,0.71428,0.17857,2.7678,0.71428,3.0357,0.71428,0.26786,0,1.0714-0.80357,1.3393-1.25,0.26785-0.44643,1.9643-2.6786,1.9643-2.6786s0-1.25,0.625-1.6071c0.625-0.35715,1.875-0.35715,2.3214-0.35715,0.44643,0,1.6071-0.17857,2.3214,0.26786,0.71429,0.44643,1.1607,3.0357,1.1607,3.0357s0.89286,0.89285,1.1607,0.89285c0.26786,0,2.1429-0.80357,2.1429-0.80357s1.4286,0.17857,1.7857,0.44643c0.35714,0.26786,3.0357,0.89286,3.0357,0.89286s1.6964,1.6071,2.2322,1.6071c0.53571,0,1.6964,0.26786,2.6786-0.0893,0.98214-0.35714,2.8571-0.80357,3.3929-1.25,0.53571-0.44642,5.5357-1.9643,5.9821-2.5,0.44643-0.53571,7.0536-5.9821,7.0536-5.9821l2.1429-2.8571s-0.17857-1.875-0.17857-2.9464,1.0714-2.3214,1.4286-2.5893c0.35714-0.26785,2.8571,0.0893,3.3036,0.17858,0.44643,0.0893,4.375,0.89285,4.7321,0.80357,0.35714-0.0893,4.2857-0.44643,4.2857-0.44643l2.4107-2.2321s1.5179-0.35715,2.4107,0.0893c0.89286,0.44643,3.6607,2.5,4.1964,2.7679,0.53572,0.26786,3.75,2.3214,3.75,2.3214l1.6072,1.5178s1.25,0.71429,1.7857,0.44643c0.53571-0.26785,2.3214-0.89285,2.3214-0.89285l1.6071,0.53571,0.35714,1.25s0.53572,0.89286,0.53572,1.25-0.89286,1.6071-0.89286,1.6071-0.71428,0.53572-0.80357,1.1607c-0.0893,0.625-0.26786,4.1071-0.26786,4.1071s-0.0893,2.3214-0.0893,2.7679c0,0.44643-0.71429,2.1428-0.71429,2.1428l-1.4286,2.4107s-1.5179,1.3393-1.875,1.875c-0.35714,0.53571-2.2321,1.3393-2.4107,1.6964-0.17858,0.35714-0.71429,1.875-0.71429,1.875s-0.71429,1.875-0.71429,2.4107c0,0.53572-0.0893,3.3929-0.0893,3.9286,0,0.53572,0.53571,2.5,1.0714,3.2143,0.53571,0.71428,1.25,1.6071,1.25,2.0536,0,0.44643-0.80357,2.3214-1.1607,2.7679-0.35714,0.44643-4.8214,4.1964-4.8214,4.1964l-2.0536,1.25-2.1428,0.17857s-1.7857-0.98215-2.1429-0.89286c-0.35714,0.0893-2.3214,0.17857-2.6786,0.17857-0.35715,0-1.7857-0.89286-1.7857-0.89286s-1.6964-0.35714-2.1428-0.625c-0.44643-0.26785-1.7857-1.1607-1.7857-1.1607s-2.7679-0.26786-3.2143-0.26786c-0.44643,0-2.8572-0.17857-3.2143-0.53571l-2.0536-2.0536s-0.71429-1.4286-0.80357-1.9643c-0.0893-0.53571-0.17857-2.5-0.17857-2.5s-0.80358-0.80357-1.3393-1.25c-0.53571-0.44643-2.1429-0.89286-2.9464-0.89286-0.80357,0-3.9286,0.17858-3.9286,0.17858s-1.9643,0.53571-2.2321,0.625c-0.26786,0.0893-1.25,0.71428-1.875,0.80357-0.625,0.0893-2.0536,0.0893-1.9643-0.80357,0.0893-0.89286,1.25-1.6964,1.3393-2.0536,0.0893-0.35714-0.0893-1.0714-0.71429-1.3393-0.625-0.26786-2.1429-0.17857-3.0357,0.0893-0.89286,0.26786-2.3214,0.80358-2.8572,0.89286-0.53571,0.0893-3.3928,0.71429-3.3928,0.71429s-2.1429,0.89285-2.6786,1.0714c-0.53572,0.17857-3.8393,1.1607-3.8393,1.1607l-3.0357,1.5179-2.4107,1.1607-2.5893-0.26786-2.1429-0.98214-1.5179-0.71428-1.25-1.25c0-0.44643,0.35714-0.98215,0.35714-0.98215l2.4107-0.44643,1.7857,0.53572s1.25-0.35714,0.17857-1.0714c-1.0714-0.71429-4.4643-5.0893-4.4643-5.0893l-1.48-2.44s-1.0714-1.4286-1.0714-1.7857v-2.5893z\",\"name\":\"Tuva Republic\"},\"hk\":{\"path\":\"m440.27,432.11c0.53572,0.35715,1.9643,1.875,1.9643,1.875l1.3393,1.6072s0.26785,0.625,1.1607,0.80357c0.89286,0.17857,2.0536,0.17857,2.0536,0.17857s0.35714-0.35714,0.80357-0.80357,0.625-0.98214,0.98215-1.25c0.35714-0.26786,0.89285-0.89286,1.3393-0.80357,0.44643,0.0893,0.71429,0.26785,1.3393,0.71428,0.625,0.44643,1.3393,1.25,2.2321,1.25,0.89286,0,2.5,0.80357,2.5,0.80357s0.44643,1.875,0.625,2.3214c0.17857,0.44643,0.53571,2.9464,0.53571,2.9464s0.35715,1.5179,0.71429,2.4107c0.35714,0.89285,0.98214,2.0536,1.0714,2.4107,0.0893,0.35714-0.0893,3.125-0.17857,3.3929-0.0893,0.26785-0.80357,1.875-0.89286,2.2321-0.0893,0.35714,0,2.5893,0,2.5893l1.5179,1.5179,0.625,1.875s-1.25,1.4286-1.4286,1.6964c-0.17858,0.26786-2.2322,1.3393-2.5893,1.875-0.35714,0.53571-1.4286,3.0357-1.4286,3.0357s-1.6071,1.9643-2.1429,2.2322c-0.53571,0.26785-2.8571,1.0714-3.125,1.5178-0.26786,0.44643-1.6964,1.6964-1.6964,1.6964l-2.7678,0.0893s-1.3393,0.17857-1.6072,0.625c-0.26785,0.44643-0.53571,1.4286-1.0714,1.875-0.53571,0.44643-1.0714,1.25-1.1607,1.6071-0.0893,0.35714-0.89286,1.0714-0.89286,1.0714s0.0893,0.71429-1.0714,0.625c-1.1607-0.0893-2.9464-0.35714-2.9464-0.35714l-1.7857-1.1607-1.6071,0.44643-0.625,0.80357-0.26786,0.89286-2.5,1.0714s-0.625,0.89286-1.1607,0.35714c-0.53572-0.53571-1.25-2.3214-1.25-2.3214l-0.625-2.5893v-1.5179s0.17857-1.0714,0.53571-1.25c0.35714-0.17857,2.5-1.6071,2.5-1.6071s1.3393-0.98215,1.6964-1.0714c0.35714-0.0893,2.1429-0.44643,2.1429-0.44643l1.9643-1.0714,1.5179-2.0536,1.3393-1.0714-0.44643-1.6071s-1.25-1.25-1.4286-1.6071c-0.17858-0.35715-0.44643-1.25-0.44643-1.25l1.6071-2.2322,0.0893-1.875s-1.0714-1.1607-1.1607-1.5178c-0.0893-0.35715-0.0893-1.25-0.0893-1.25l2.5893-1.5179,1.0714-1.875,1.1607-1.9643,0.53572-1.6964-3.5714-1.1607s-0.89286-1.25-0.71429-1.7857c0.17858-0.53572,1.7857-2.4107,1.7857-2.4107s0.89286-1.875,0.89286-2.3214c0-0.44642-1.0714-2.8571-1.0714-2.8571s0-0.71428,0.26785-1.1607c0.26786-0.44643,1.25-0.98215,1.25-0.98215z\",\"name\":\"Republic of Khakassia\"},\"ir\":{\"path\":\"M569.41,325.78c-0.12,0.03-0.22,0.12-0.22,0.34,0,0.45,0.53,1.54,0.53,1.54l0.37,1.06s-0.26,0.88-0.62,1.06-1.78,0.63-1.78,0.63l-2.69,0.09s-1.61,0.26-1.88,0.44c-0.26,0.18-0.9,0.73-0.9,1.09s-0.44,1.96-0.53,2.31c-0.09,0.36-0.16,1.97-0.16,1.97s0.18,0.78,0.63,1.41c0.44,0.62,0.43,1.81,0.43,1.81l-1.25,1.16s0.26,1.67,0.35,2.03,1,3.4,1,3.4l0.43,2.5s-0.28,1.42-0.28,1.69-0.96,4.57-0.96,4.57-0.09,0.98-0.54,1.24c-0.44,0.27-2.06,1.88-2.06,1.88s-0.19,0.99-0.19,1.34c0,0.36,0.37,1.06,0.19,1.5-0.18,0.45-1.97,1.72-1.97,1.72l-2.59,0.72-1.31,0.88-0.29,3.84-0.09,2.22v1.81c0,0.36,0.27,1.34,0.72,1.78,0.45,0.45,2.16,1.97,2.16,1.97l2.21,0.53,1.16,0.78,0.1,2.25s-0.37,1.33-0.82,1.5c-0.44,0.18-2.75,1.82-2.75,1.82l-0.53,1.15,0.97,1.16,1.97,1.59s0.78,0.1,0.87,0.72c0.09,0.63-0.15,2.6-0.15,2.6l-0.47,1.43-1.25,1.07-1.41,1.43-0.19,1.6-1.24,0.81-2.79-0.28-1.59-1.35-1.78-0.68-2.25-0.63s-0.45-0.74-0.63-1.19c-0.17-0.44-0.34-1.68-0.34-1.68l-1.25-0.72-1.87,1-1.26,0.09-0.18,1.69-0.35,2.41-0.53,1.53-0.9,0.97-1.6,0.53s-1.89,0.28-2.25,0.37c-0.35,0.09-1.34,1.41-1.34,1.41s-0.53,0.8-0.44,1.15c0.09,0.36,0.19,1.25,0.19,1.25l-1.16,0.91-2.06,0.81s-0.44,0.9-0.44,1.25c0,0.36,0.16,1.97,0.16,1.97l0.37,1.5,0.1,1.63s0.7,0.7,0.43,1.06c-0.26,0.36-2.78,0.62-2.78,0.62l-1.93-2.78-1-1.5-1.07-2.34-1.06-0.69h-1.72l-1.59,1.69s-0.89,0.81-1.16,1.44c-0.27,0.62,0.01,1.78-1.15,1.78s-3.22-0.38-3.22-0.38l-1.25-1.15-1.97-0.44-1.34-0.19s-0.62,0.64-0.97,0.91c-0.36,0.27-1.35,1.25-1.35,1.25v0.62l-0.72,1.88-1.15,2.22-0.81,0.9-0.29,1.35,0.63,1.68s0.45,0.9,0.81,1.25c0.36,0.36,0.63,0.35,0.72,0.97,0.09,0.63,0.19,2.6,0.19,2.6l-0.38,2.4-0.97,1.88s-1.88,1.79-2.15,2.06-2.13,1.61-2.13,1.97-1.62,4.19-1.62,4.19l-1.25,2.25s-0.69,2.11-0.78,2.56-0.63,3.59-0.63,3.59-0.09,1.33-0.62,1.6c-0.54,0.26-3.69,0.81-3.69,0.81s-2.12,1.07-2.56,1.34c-0.45,0.27-0.72,0.63-0.72,0.63s-0.19,0.52-0.1,0.87c0.09,0.36,1.16,2.25,1.16,2.25l1.44,2.66,1.06,0.56,0.97,1.06,1.09,1.69v0.81l1.25-0.43s0.9-0.91,1.25-1c0.36-0.09,1.78,0.28,1.78,0.28l1.44,0.87s1.43,0.91,1.78,1c0.36,0.09,2.03,1.41,2.03,1.41l4.32,2.87s0.34,0.82,1.06,0.82c0.71,0,2.41-0.38,2.41-0.38l1.78-0.34,1.06,1.15,0.28,1.16,0.28,1.53,2.56-0.81,2.44-2.41s2.14-2.16,3.13-2.34c0.98-0.18,2.12,1.19,2.12,1.19s0.72,1.58,1.25,2.03c0.54,0.44,2.43,2.32,2.78,2.59,0.36,0.27,3.03,1.53,3.03,1.53l2.22,2.66c0.45,0.53,2.52,3.22,2.97,3.22s2.84,0.18,3.38,0.09c0.53-0.09,1.96,0.63,2.5,1.25,0.53,0.63,1.78,2.69,1.78,2.69s1.27,1.69,1.62,1.78c0.36,0.09,1.16,1.88,1.16,1.88s0.89,1.62,1.25,1.53,2.31-0.63,2.31-0.63,0.73,0.15,0.91,0.69c0.18,0.53,0.87,2.59,0.87,2.59s1.18,0.62,1.53,0.53c0.36-0.09,1.88-1.25,1.88-1.25s1.77-0.26,2.12-0.43c0.36-0.18,1.44-0.82,0.82-1.44-0.05-0.04-0.11-0.06-0.16-0.09,0.05-0.01,0.34-0.07,0.34-0.07l1.69-0.62,8.75-2.88s1-1.76,1-2.03,0.63-2.06,0.63-2.06l0.06-2.06,0.81-0.82,1.78-0.96,2.25-0.82,1.16-1.68,1.06-0.82,5.44-2.59,1.62-1.31,0.82-1.1,0.62-2.5,1.94-1.15s1.27-0.9,1.62-1.35c0.36-0.44,0.35-0.97,0.35-0.97l-0.63-0.81-1.25-1.25-0.34-0.81s0.18-0.96,0.62-1.41c0.45-0.44,0.71-0.63,1.07-0.72,0.35-0.09,1.25,0.35,1.25,0.35l1,1.09,0.87-0.47,0.63-1.78s0.81-2.14,0.9-2.5,0.25-1.69,0.25-1.69-0.25-3.05-0.25-3.5v-2.5s0.44-4.01,0.53-4.37,0.35-2.13,0.35-2.13l-0.1-1.87s-0.44-1.17-0.62-1.44-0.16-0.81-0.16-0.81,0.63-1.05,0.72-1.41c0.09-0.35-0.37-0.81-0.37-0.81s-0.54-0.71-0.72-1.06c-0.18-0.36-0.88,0.15-0.88,0.15l-1.44,0.91s-0.79,1.26-1.15,1.53-0.44,1.31-0.44,1.31l-0.28,4.38-0.81,1.34-1.53-0.09c-0.34-0.63-0.73-1.32-0.79-1.6-0.08-0.44-0.43-2.67-0.34-3.65s0.97-4.38,0.97-4.38l1.25-1.25s0.09-1.52-0.53-2.06c-0.63-0.53-1.87-1.07-2.41-1.34-0.53-0.27-1.72-1.35-1.72-1.97,0-0.63,0.92-1.77,1.19-2.13,0.27-0.35,3.93-1.51,4.28-1.78,0.36-0.27,3.57-2.15,3.57-2.15l3.65-1.07,2.78,0.25,2.13-0.34,1.34-2.5,2.88-0.81s1.87,1.25,2.4,1.25c0.54,0,2.22-0.72,2.22-0.72s1.07,0.64,1.25,1,1.63,1.34,1.63,1.34l1.93-0.37s1.35-0.44,2.07-0.35c0.71,0.09,1.7,0.98,2.06,1.07s2.75-0.72,2.75-0.72l1.09-1.5,2.5-1.16s1.35-1.08,1.35-1.53,0.15-3.22,0.15-3.22,1.25-0.61,1.88-0.97c0.62-0.35,2.15-0.18,2.15-0.18s0.17-1.34,0.35-1.79c0.18-0.44,1.33-1.34,1.78-1.43s2.44,0.37,2.44,0.37l1.15,0.97-1.34,1.44-0.72,1.15,0.72,0.72s2.31-0.45,2.94-0.72c0.62-0.26,2.24-0.44,2.78-0.53,0.53-0.09,2.84-1.15,2.84-1.15s0.91-1.08,0.91-1.44-0.2-1.71-0.38-2.16c-0.18-0.44-2.21-1.14-2.65-1.59-0.45-0.45-0.54-2.58-0.72-2.94s-0.9-1.9-0.63-2.44c0.27-0.53,1.06-1.78,1.06-1.78l-0.62-2.5s-0.01-2.48,0.34-2.84c0.36-0.36,2.07-1,2.07-1l2.93,0.81s0.9,1.15,1.35,1.06c0.44-0.09,2.15-0.53,2.15-0.53l0.25-3.56-0.87-1.16s-1.27-1.42-1.63-1.68c-0.35-0.27-1.25-1.25-1.25-1.25l-1.68-2.97-0.25-2.6-0.72-1.68-2.25-0.54-1.78,0.97-3.13,1.53-1.97,0.44-0.72-0.72-0.78-2.84-1-1.59-2.75-2.35-2.34-1.68-2.66-0.91-2.78-0.06s-2.49,0.8-2.84,1.15c-0.36,0.36-1.45,1.52-1.72,1.88-0.27,0.35-0.88,2.5-0.88,2.5l-0.28,2.12v2.5s-0.17,1.36-0.43,1.72c-0.27,0.36-3.94,2.03-3.94,2.03l-1.16,1.72-0.19,2.66-0.97,2.25-2.15,2.22s-0.6,0.63-0.69,0.09-0.62-2.22-0.62-2.22l-2.16-2.34s-0.44-1.23-1.06-0.78c-0.63,0.44-1.63,1.31-1.63,1.31l-3.28,1s-0.89,0.43-1.25,0.87c-0.36,0.45-2.97,0.72-2.97,0.72l-2.03,0.28-2.16,2.5s-0.62,1.26-1.24,0.82c-0.63-0.45-2.22-2.35-2.22-2.35l-0.82-1.59-0.53-2.94,0.16-5.56-0.06-2.56,1.5-2.6,1.87-3.03s0.44-1.61,0.44-2.06-0.53-3.03-0.53-3.03l-2.03-2.25-4.94-3.66s-0.63-0.71-0.63-1.25c0-0.53,0.1-2.31,0.1-2.31l1.15-1.97s0.63-0.35,0-1.06c-0.62-0.72-3.18-4.57-3.18-4.57l0.15-5.34s0.02-0.65-0.34-1.09c-0.36-0.45-2.59-3.28-2.59-3.28l-1.54-1.88s-0.24-0.62-0.68-0.62c-0.45,0-2.16,0.68-2.16,0.68s-1.17,0.82-1.44,0.29c-0.27-0.54-0.25-2.6-0.25-2.6s-0.29-1.16,0.16-1.25,1.62-0.44,1.62-0.44h1.5l0.29-1.43-1.79-1.97-1.53-1.35-1.4-0.06s-0.14-0.03-0.25,0z\",\"name\":\"Irkutsk Oblast\"},\"br\":{\"path\":\"m513.39,476.39s1.6072,0.98214,2.3214,1.1607c0.71429,0.17857,2.8572,1.25,3.3929,1.3393,0.53571,0.0893,1.7857,0.71428,2.5,0.98214,0.71429,0.26786,1.875,0.98214,2.5893,1.3393,0.71428,0.35714,2.2321,0.53571,3.2143,0.625,0.98214,0.0893,2.8571,0.89285,3.4821,1.0714,0.625,0.17858,2.1429,1.0714,2.9464,1.1607,0.80357,0.0893,1.5179,0,2.7679,0.625s2.7679,1.3393,3.125,1.5179c0.35714,0.17857,0.71429,0.26785,0.80357,0.98214,0.0893,0.71428,0,2.6786,0.0893,3.0357,0.0893,0.35715,0.26785,1.6964,0.625,2.0536,0.35714,0.35715,1.6071,1.9643,2.5893,2.5893,0.98215,0.625,1.4286,1.6964,1.9643,2.1429,0.53571,0.44643,2.3214,1.875,2.8571,1.9643,0.53572,0.0893,2.3214,0.625,2.7679,0.625,0.44643,0,5.0893,0.44643,5.0893,0.44643s1.7857-0.80357,2.7679-1.25c0.98214-0.44643,4.0179-1.25,4.4643-1.5179,0.44643-0.26785,1.5178-0.98214,2.6786-1.0714,1.1607-0.0893,4.1964-0.0893,5.0893-0.0893,0.89286,0,4.1072,0.0893,4.1072,0.0893s2.3214-0.0893,3.125,0.44642c0.80357,0.53572,1.6071,1.6072,1.9643,2.1429,0.35715,0.53572,0.625,1.4286,1.0714,1.6071,0.44643,0.17858,1.4286,0.35715,1.875,0.35715,0.44643,0,2.1429-0.26786,2.5-0.35715,0.35714-0.0893,2.2321-0.44642,2.2321-0.44642l0.0893-2.6786s-0.0893-1.7857,0.53571-2.0536c0.625-0.26785,4.4643-1.5178,4.8214-1.6964,0.35715-0.17857,1.25-1.6071,1.25-1.6071s-2.5-0.625-3.3036-0.625c-0.80357,0-1.25-1.4286-1.25-1.4286l1.0714-1.5179,0.17857-1.9643,0.98214-1.0714,0.80358-1.3393s-0.625-0.98214-0.80358-1.3393c-0.17857-0.35715-0.0893-1.4286-0.0893-1.4286l2.2321-1.1607,3.125-0.35714,2.4107-1.1607,3.4821-2.4107,1.7857-0.625s1.4286,0.0893,1.875,0.26786c0.44643,0.17857,2.4107,0.53571,2.5893,0.17857,0.17857-0.35714,1.6071-1.9643,2.0536-2.3214,0.44643-0.35714,2.6786-2.1429,2.6786-2.1429l1.4286-1.1607s0.98215-1.25,1.4286-1.5179c0.44643-0.26786,1.875-1.0714,2.4107-1.0714,0.53571,0,0.98214,0,1.3393-0.26785,0.35715-0.26786,1.1607-1.25,1.3393-1.6072,0.17857-0.35714,1.0714-0.80357,1.6071-0.89285,0.53572-0.0893,5-1.3393,5-1.3393l2.6786-1.5179s1.875-1.5178,2.0536-1.875c0.17857-0.35714,1.6071-2.8571,1.6071-2.8571l0.98214-1.875s-0.26786-1.4286-0.71428-1.7857c-0.44643-0.35715-2.1429-1.6072-2.1429-1.6072l-2.5-1.25s-1.25-0.80357-1.1607-1.6071c0.0893-0.80357,7.5-5.625,7.5-5.625s0.98215-1.6964,1.0714-2.0536c0.0893-0.35714,0.89286-1.9643,1.25-2.3214,0.35715-0.35714,2.5-2.0536,2.5-2.0536s1.4286-0.625,1.875-0.71429c0.44643-0.0893,3.5714-1.5178,3.5714-1.5178l1.25-0.98215s0.44643-2.0536,0.44643-2.5893c0-0.53572-0.80357-3.8393-0.80357-3.8393s-1.0714-0.53571-1.4286-0.89285c-0.35715-0.35715-1.25-0.80358-2.1429-0.80358-0.89286,0-2.6786,0-3.125-0.625-0.44643-0.625-1.3393-1.25-1.6964-1.875-0.35714-0.625-1.1607-1.7857-1.25-2.2321-0.0893-0.44643-0.80357-2.4107-0.98214-2.7679-0.17857-0.35714-1.0714-2.3214-1.0714-2.3214l-2.0536-3.5714-1.0714-2.7679,0.26786-2.0536,1.0714-0.625,0.80357-1.25,1.4286-1.875,0.625-0.98214-2.3214-1.25s-1.875,0.44642-2.2321,0.71428c-0.35715,0.26786-0.98215,1.3393-0.98215,1.3393s0.35715,0.625,0,0.80357c-0.35714,0.17857-2.3214,0.44643-2.3214,0.44643l-1.25,0.89285-0.71429,1.9643v1.6071l-0.98214,0.98215-2.0536,1.0714-1.3393,0.98215-1.1607,1.3393s-1.6964,0.0893-2.0536,0.0893c-0.35714,0-2.0536-0.625-2.0536-0.625l-2.6786,0.17857-2.3214-0.0893-1.9643-1.4286-1.4286,0.26786-2.0536-0.35714s-0.80357-0.71429-1.1607-0.71429c-0.35714,0-2.1429,0.625-2.1429,0.625l-1.5178,1.3393-0.98215,1.0714-2.6786,0.26785-1.9643-0.0893-2.3214,0.44643-2.2322,1.1607-3.3928,1.7857-2.3214,0.98215-1.3393,0.89285-0.89285,1.1607s-0.0893,0.35714,0.0893,0.71428c0.17857,0.35715,0.98214,1.4286,0.98214,1.4286l1.6072,0.80357,0.98214,0.89285,0.83,0.91,0.0893,1.1607-1.6071,2.1428-0.35714,2.2322-0.35715,1.875v2.6786l0.80358,1.6071,1.1607,1.4286s0.26786-0.44643,0.71429-0.80357c0.44642-0.35714,1.1607-2.3214,1.1607-2.3214v-2.0536l0.0893-2.0536,0.98214-1.875,1.6964-1.25,1.1607-0.17857,0.89286,1.1607s-0.0893,1.25-0.26786,1.6964c-0.17857,0.44643-0.53571,0.98214-0.35714,1.3393,0.17857,0.35714,0.89286,1.4286,0.89286,1.4286l-0.17858,2.7678s-0.35714,2.3214-0.35714,2.6786c0,0.35714-0.26786,2.5893-0.26786,3.0357v2.5893c0,0.89285,0,1.5178,0.0893,2.1428s0.0893,1.6964-0.0893,2.1429c-0.17857,0.44643-0.44642,1.25-0.71428,1.9643-0.26786,0.71428-0.35714,1.25-0.44643,1.9643-0.0893,0.71429-1.0714,1.6964-1.0714,1.6964s-0.71428,0.26786-0.98214-0.625-1.6071-0.98214-1.6071-0.98214-0.71429,0.44642-1.0714,0.98214c-0.35715,0.53571-0.89286,1.25-0.35715,1.6964,0.53572,0.44643,1.5179,1.6071,1.5179,1.6071s0.625,0.35714,0.26786,1.1607c-0.35714,0.80358-1.1607,1.0714-1.6964,1.4286-0.53571,0.35714-1.5179,0.89285-1.6964,1.25-0.17857,0.35714-0.71428,1.4286-0.71428,1.7857,0,0.35714-0.44643,2.0536-0.44643,2.0536l-1.3393,0.98214-1.875,1.3393s-2.2321,0.71429-2.6786,0.98214c-0.44643,0.26786-2.5,1.4286-2.8571,1.7857-0.35715,0.35714-0.53572,1.25-1.4286,1.6071-0.89286,0.35714-3.125,1.3393-3.125,1.3393l-0.98215,0.26785s-0.35714,0.80357-0.35714,1.1607c0,0.35714-0.26786,2.2321-0.26786,2.7678,0,0.53572-0.26785,0.98215-0.625,1.6964-0.35714,0.71429-0.98214,1.6964-1.6071,1.7857-0.625,0.0893-2.7679,0.71428-3.2143,0.89285-0.44642,0.17858-2.5,0.89286-3.0357,0.98215-0.53571,0.0893-2.8571,1.0714-2.8571,1.0714l-0.71429,0.80357-1.5179,1.1607-2.0536,0.71429-1.4286,0.80357-1.6964-1.0714-0.35714-0.98214-0.44643-1.25s-0.35714-0.35715-1.25-0.26786c-0.89286,0.0893-2.0536,0.44643-2.0536,0.44643s-1.3393-1.4286-1.6071-1.875c-0.26786-0.44643-1.875-3.125-1.875-3.125l-1.54-1.99-1.34-1.61s-1.1607-0.71429-1.6964-0.71429c-0.53571,0-2.6786-0.17857-3.0357-0.17857-0.35715,0-1.6072-0.89285-1.7857-1.1607-0.17857-0.26786-3.4821-4.2857-3.4821-4.2857l-1.875-0.89285-2.8571-1.9643-1.9643-2.2321-1.0714-1.6964-0.89286-0.625s-0.89285-0.26786-1.25,0.0893c-0.35714,0.35714-0.80357,0.53571-1.3393,0.89285-0.53572,0.35715-1.875,1.4286-1.875,1.4286l-1.3393,1.25-1.9643,1.1607-1.4286,0.89286s-0.89286,1.0714-0.98215,1.6071c-0.0893,0.53571-0.26785,1.1607-0.26785,2.0536,0,0.89286-0.35715,3.3036-0.35715,3.3036z\",\"name\":\"Buryat Republic\"},\"zb\":{\"path\":\"m588.41,500.07s1.1364,1.1364,1.6415,1.5152c0.50508,0.3788,1.6415,1.6415,2.2728,1.894,0.63134,0.25254,2.6516,1.6415,2.6516,1.6415s2.9042,1.0102,3.4093,1.0102h5.5558c1.1364,0,3.283,0.75762,3.283,0.75762s0.88388,0.63134,2.0203-0.25254c1.1364-0.88389,2.3991-1.6415,2.3991-1.6415s0.75762,0.25254,1.6415,0.63135c0.88388,0.3788,1.5152,1.2627,2.1466,1.2627,0.63135,0,3.4093-1.7678,3.4093-1.7678s2.6516-2.2728,3.1567-2.7779c0.50507-0.50508,2.5254-0.88388,3.5355-1.2627,1.0102-0.37881,5.4296-0.50508,5.4296-0.50508s1.894-1.2627,2.2728-1.894c0.37881-0.63135,1.7678-3.4093,1.894-3.9143,0.12627-0.50508,2.7779-2.3991,3.4093-2.9042,0.63135-0.50508,4.9245-2.5254,5.177-3.0305,0.25253-0.50508,2.0203-1.5152,2.0203-1.5152l3.1567,1.2627,2.9042,1.2627s2.2728,0.25254,2.9042,0.25254c0.63135,0,2.2728-0.50508,2.7779-0.88388,0.50508-0.37881,3.1567-1.7678,3.1567-1.7678s3.283,0.25254,3.7881,0.50508c0.50508,0.25253,1.7678,0.88388,2.3991,1.1364,0.63135,0.25254,3.9144,1.389,3.9144,1.389s3.6618,0.3788,4.4194,0.25254c0.75762-0.12627,2.5254-1.7678,2.7779-2.3991,0.25254-0.63134,0.75762-2.3991,1.6415-2.9042,0.88388-0.50507,4.2932-1.5152,4.2932-1.5152s1.389-0.12627,1.5152-1.6415c0.12627-1.5152,0.37881-2.9042-0.25254-3.5355-0.63135-0.63134-1.389-0.88388-1.7678-1.7678-0.3788-0.88389,0.88389-8.9651,0.88389-8.9651l1.6415-3.7881,1.2627-4.2932s1.389-2.2728,1.2627-2.9042c-0.12627-0.63134-0.37881-3.9143-0.37881-3.9143l-1-2.41s-1.1364-0.88388-1.5152-1.389c-0.37881-0.50507-1.0102-0.37881-1.5152-1.0102-0.50508-0.63135-1.7678-1.1364-1.7678-1.7678,0-0.63134-0.25254-1.5152,0.37881-2.0203,0.63134-0.50508,3.0305-3.0305,3.7881-3.4093,0.75761-0.37881,4.5457-2.5254,4.9245-3.0305,0.37881-0.50507,1.389-1.6415,1.7678-2.1466,0.37881-0.50508,0.88388-0.50508,0.63135-1.6415-0.25254-1.1364-2.6516-3.5355-2.6516-3.5355s-0.63135-0.88389-1.5152-0.88389c-0.88389,0-3.1567-0.3788-3.1567-1.0102,0-0.63134-0.37881-1.2627-0.12627-2.0203,0.25254-0.75762,2.0203-2.2728,2.2728-2.9042,0.25254-0.63135,0.37881-1.894,0.37881-1.894l-2.3991-1.6415-2.6516,0.12627s-0.25254-0.25253-0.25254-0.88388c0-0.63134,0.63135-2.7779,0.88388-3.283,0.25254-0.50507,0.50508-1.5152,0.63135-2.1466,0.12627-0.63134-0.25254-1.7678-0.75761-2.3991-0.50508-0.63135-1.5152-1.389-1.5152-1.389s-1.1364-0.50508-1.6415,0.12627c-0.50508,0.63134-1.1364,1.5152-1.1364,1.5152s-1.1364,0.12627-1.6415-0.25254c-0.50508-0.37881-0.88388-4.1669-0.88388-4.1669s-0.88389-1.2627-1.6415-1.389c-0.75762-0.12627-1.6415-0.12627-2.1466,0.50508-0.50507,0.63134-1.0102,1.0102-1.7678,1.5152-0.75762,0.50508-1.2627,1.1364-1.894,0.75762-0.63134-0.37881-1.389-0.75762-1.2627-1.389,0.12627-0.63135,0.75761-1.6415,0.88388-2.1466,0.12627-0.50507-1.7678-2.1466-1.7678-2.1466l-3.283-0.12627-1.1364-1.1364c-0.12627-0.75761,0.25254-2.5254,0.25254-2.5254l-1.389-1.5152-2.7779-4.0406-1.2627-1.894-3.1567-0.3788-1.1364-2.0203-0.25254-2.9042-1.2627-0.3788h-1.2627l-1.6415,0.63134-1.6415-1.0102-3.0304-0.63135-1.894,0.75762-0.37881,1.0102-0.12627,1.894,0.37881,1.894-0.25254,1.5152-0.50507,2.0203,0.75761,2.0203,0.50508,1.389,1.7678,1.5152,0.88389,0.88388,0.25254,1.894s-0.25254,1.0102-0.75762,1.389c-0.50507,0.37881-3.0305,1.2627-3.0305,1.2627s-2.3991,0.63134-2.9042,0.75761c-0.50508,0.12627-3.4093,0.75762-3.4093,0.75762l-1.389,1.5152-0.25254,1.6415,0.75762,2.5254,1.7678,3.283,1.6415,3.7881,0.75762,2.9042,2.0203,2.2728,1.2627,1.1364,2.1466,0.25254,2.2728,0.50507,1.7678,1.389,0.50507,1.6415,0.12627,1.894v2.3991l-1.894,1.6415-3.0305,1.2627-2.5254,1.2627-2.1466,2.0203-1.0102,1.7678-0.75761,2.1466-2.6516,1.6415-1.894,1.389-2.0203,1.5152-0.88388,0.88388v0.75762l0.88388,0.88388c0.50508,0.12627,2.1466,1.2627,2.1466,1.2627l1.894,1.0102s0.75762,0.88389,0.88389,1.389c0.12627,0.50508,0,1.5152-0.12627,2.1466-0.12627,0.63134-2.0203,3.6618-2.0203,3.6618l-1.894,1.6415-3.6618,2.0203-3.1567,0.63135-2.1466,1.0102s-0.75761,0.37881-1.1364,1.0102c-0.3788,0.63135-1.6415,1.2627-1.6415,1.2627l-2.2728,0.50507-1.0102,0.88388s-1.2627,0.88389-1.6415,1.389c-0.37881,0.50508-3.5355,2.9042-3.5355,2.9042l-0.88389,1.389s-0.75761,1.1364-1.389,1.2627c-0.63134,0.12627-2.2728,0.12627-2.2728,0.12627l-2.3991-0.88388-1.6415,1.389s-1.6415,0.37881-2.1466,0.88388c-0.50508,0.50508-2.7779,1.7678-2.7779,1.7678l-2.3991,0.63134s-1.894-0.25253-2.5254,0.12627c-0.63134,0.37881-1.2627,1.5152-1.2627,1.5152l0.63135,1.5152,0.25254,0.88388-0.88389,1.894s-1.0102,0.75762-1.0102,1.2627-0.88388,2.0203-0.88388,2.0203-0.50508,0.88388,0.25253,1.389c0.75762,0.50507,2.5254,0.88388,2.5254,0.88388s1.389-0.12627,1.5152,0.50508c0.12627,0.63134-1.1364,1.6415-1.1364,1.6415l-2.6516,0.75762-2.0203,1.2627-0.88389,1.6415z\",\"name\":\"Zabaykalsky Krai\"},\"am\":{\"path\":\"m662.32,397.46,4.6429-0.17857,2.3214-0.17858,3.5714-1.7857,2.6786,0.35714,3.5714,1.0714,2.1429,1.0714,2.6786,0.53571,4.4643-0.53571,3.0357,0,2.3214,0.53571,2.8571,2.1429,2.1429,0.89286,2.8571,0.35714,2.3214-1.7857,2.3214-0.71429,1.9643,0,2.1429,1.4286,2.1429,0.71429,2.5-0.71429,1.7857-1.9643,1.7857-1.25,4.1072,0,2.5-1.4286,2.1428-0.89286,3.75,0,1.4286,0,1.25-0.71429,0.53571-2.5,1.6071-1.0714,4.2857-2.3214,2.3214-0.89286,3.5714-1.9643,2.8572-1.4286,5-0.89286,3.0357,0,1.6071,1.4286l-0.37,3.2s-1.25,1.6071-1.9643,2.6786c-0.71429,1.0714-1.6072,2.6786-1.9643,3.3929-0.35714,0.71429-1.25,2.1429-1.25,2.1429s-0.53571,2.8571-0.71429,3.5714c-0.17857,0.71428-1.0714,2.8571-1.0714,2.8571s-1.25,1.7857-1.0714,2.5c0.17857,0.71428,1.25,1.25,1.25,1.25l0.89285,0.71428,3.2143-0.71428s1.7857-0.17857,2.6786-0.17857c0.89286,0,2.5,0.89285,2.5,0.89285l0.53572,1.9643,0.89285,2.6786s0.17857,0.53572,1.6072,0.53572,2.6786-1.4286,2.6786-1.4286l0.17857-2.3214s1.0714-0.89286,1.9643-0.89286c0.89286,0,2.5-0.53572,2.5-0.53572l1.25-2.1428,0.35715-2.5,1.9643-1.7857,2.3214,0.17857c0.71,0.19,3.03-1.6,3.03-1.6l1.4286-1.4286s0.89285-1.0714,1.9643-0.35714c1.0714,0.71428,2.3214,2.5,2.3214,2.5v2.8571l0.53572,1.6071,1.9643,1.7857s1.6071,0.71428,1.25,1.6071c-0.35714,0.89286-2.8571,1.9643-3.5714,1.9643-0.71428,0-3.5714,0.89285-3.5714,0.89285l-1.6071,0.17857-1.96,0.89s-0.71429,0.17857-0.17858,1.0714c0.53572,0.89286,1.9643,1.7857,1.9643,1.7857l1.25,0.89286,0.35714,1.9643-3.2143,2.3214-1.6072,3.0357-0.17857,2.1429-1.6071,2.3214-2.6786,0.89285-1.6071,1.4286,1.9643,1.9643,0.35714,1.7857-2.3214,2.3214-1.25,3.5714,1.6071,2.8571s3.5714,1.4286,4.2857,1.6072c0.71429,0.17857,4.8214,0.71428,4.8214,0.71428s1.4286,0.71429,1.9643,1.25c0.53571,0.53572,0.71428,3.2143,0.71428,3.2143l0.35715,2.5s0,0.53571,0.71428,1.0714c0.71429,0.53571,0,3.5714,0,3.5714l-0.71428,2.8571-0.53572,1.7857-1.25,1.7857-3.2143,0.35714-4.1072-0.17857-2.8571-1.4286-1.77-0.53-3.04,1.07h-3.3929-2.5l-3.2143,0.89286s-2.6786-0.35714-3.5714-0.53572c-0.89286-0.17857-3.5714-2.1428-3.5714-2.1428l-3.22-2.67-1.07-2.15-1.43-2.14-1.7857-1.0714-1.0714-1.9643s0-1.0714-0.71428-1.6072c-0.71429-0.53571-2.6786-0.71428-2.6786-0.71428l-0.89286-1.25-1.7857-2.8571-1.9643-2.5s-1.25-1.4286-1.9643-1.6072c-0.72-0.18-1.79-0.36-2.15-1.43-0.35715-1.0714-2.3214-2.6786-2.3214-2.6786l-2.8572-1.4286-2.6786-1.4286-3.0357-0.17857-2.6786-0.17858s-0.71429,0.89286-1.6072,1.0714c-0.89285,0.17857-4.4643-0.35714-4.4643-0.35714l-3.5714-1.25-2.3214,0.35714-1.9643,0.89286-1.6072,1.4286-3.75,0.71429s-3.2143,0.71428-3.3928,0c-0.17858-0.71429-2.8572-4.1072-2.8572-4.1072l-1.7857-1.4286h-1.6071l-1.0714-1.0714v-2.1428l2.1428-2.1429,0.17858-1.4286-0.89286-1.4286-1.25-0.89286-2.1429-0.17857s-0.71428,1.0714-0.71428,0,0.71428-3.3929,0.71428-3.3929l0.89286-2.3214-0.35714-1.9643-1.25-1.7857-1.7857-0.71428-1.25,0.71428-1.25,0.71429-1.25-0.17857s-0.35714-0.71429-0.35714-1.4286c0-0.71429-1.25-2.6786-1.25-2.6786l-0.71429-0.71428-1.7857-0.17857-0.89286,0.89285-1.4286,0.89286-2.5,0.53572s-0.35714-0.35715-0.17857-1.0714c0.17857-0.71429,0.71428-2.5,0.71428-2.5l-1.25-1.4286-0.51-0.52-1.79-0.18h-2.1429l-0.35714-1.0714v-2.1429z\",\"name\":\"Amur Oblast\"},\"ch\":{\"path\":\"M876.72,53.094c-0.34,0-0.66,0.094-0.66,0.094l-1.78,2.124-4.47,1.969s-6.05,2.853-7.12,3.031c-1.07,0.179-1.44,1.969-1.44,1.969s0.37,2.514,0.19,3.407c-0.18,0.892-1.44,1.406-1.44,1.406s-2.32,1.428-2.5,2.5c-0.18,1.071,0.91,2.156,0.91,2.156s2.66,0.906,3.37,0.906c0.72,0,2.85-0.375,3.56-0.375,0.72,0-0.34,1.625-0.34,1.625l-0.91,1.782-2.31-0.907-3.03-0.719s-2.14,0.554-3.03,0.376c-0.89-0.179-2.31-1.438-2.31-1.438l-2.69,0.531-2.88,0.375h-1.06s-0.53,2.656-1.25,2.656c-0.71,0-2.12,1.782-2.12,1.782l-3.41,0.187-2.84,2.875s-2.86,2.496-3.75,3.032c-0.9,0.535-1.61,0.531-2.5,0.531-0.9,0-2.5,1.062-2.5,1.062l-4.85,3.219-5.15,1.062-3.07,0.907s-1.04,2.861-1.93,3.219c-0.9,0.357-2.88,1.968-2.88,1.968l-3.22,1.938-2.12,1.966-2.16,3.03-1.25,1.97-1.06,2.5v3.22s-0.91,0.72-1.63,0.72c-0.71,0-2.84,1.25-2.84,1.25s-0.9,2.51-1.44,3.41c-0.53,0.89-2.85,1.76-3.56,2.12s0.34,1.25,0.34,1.25l2.35,0.53,0.53,2.16,2.69,0.53h2.65,3.75s1.44,1.07,1.97,1.78c0.54,0.72,1.63,1.78,1.63,1.78l-1.82,2.5-2.5,1.1-2.31-0.72s-1.6,1.25-2.31,1.25c-0.72,0-2.16,1.59-2.16,1.59s-1.42-0.71-2.31-1.25c-0.89-0.53-1.96,0-3.03,0s-1.26,1.26-1.44,1.97-0.87,2.84-0.87,2.84-1.09,1.79-1.63,2.5c-0.53,0.72-2.66,2.69-3.37,3.22-0.72,0.54-1.81,0.54-4.13,0.72s-1.07,1.26-1.25,2.16c-0.18,0.89-1.06,3.03-1.06,3.03s-2.15,1.24-2.69,2.31c-0.53,1.07-0.53,2.67-0.53,3.56,0,0.9,0.53,1.82,0.53,1.82h1.06l0.19-0.72,0.19-1.97,0.72-1.06,0.72,0.53,3.9,1.59,5,3.41,0.38,0.87-0.38,5.19-1.06,2.84-4.09,4.47-2.88,3.94-0.34,2.5,1.25,0.19h1.59s-0.17,1.42-0.53,2.31,0.34,1.59,0.34,1.59l2.88,1.25,3.75,0.38,4.62-0.19,2.69,3.41,2.16,1.78h4.47c1.25,0,1.06,2.5,1.06,2.5l1.06,1.59,3.94-0.34s5.36-1.44,6.25-1.44,3.2-0.53,3.56-1.25c0.36-0.71,2.69-1.59,2.69-1.59l1.97-0.91h3.75s2.66-1.24,3.37-1.59c0.72-0.36,0.74-1.98,1.1-2.69,0.35-0.71,0.87-3.03,0.87-3.03l1.25-2.5h1.63l1.78-1.06,1.06-1.63,1.44-0.34,2.31-1.44,1.06-1.25s0.91-0.89,1.63-1.78c0.71-0.89,0.87-1.6,1.4-2.31,0.54-0.72,2.51-1.44,3.22-1.97,0.72-0.54,2.15-2.14,2.5-3.03,0.36-0.9,1.63,0,1.63,0l4.09,0.68s3.22-1.04,5.72-1.93c2.5-0.9,1.08,1.06,0.91,1.78-0.18,0.71,0,3.2,0,4.09s0.88,3.22,1.78,4.47c0.89,1.25,3.9-1.44,3.9-1.44s3.05-1.78,3.94-2.5c0.89-0.71,3.94,0,3.94,0h6.06v-2.84c0-0.72,1.43-3.23,1.97-4.13,0.54-0.89,1.25-3.56,1.25-3.56l0.72-2.5-0.19-4.81s1.79-1.97,3.22-1.97,2.69,1.59,2.69,1.59l4.28,0.91,1.44-0.53s-0.19-3.22-0.19-3.94c0-0.71-0.19-2.84-0.19-2.84l-0.53-3.22s-0.54-2.51-0.72-3.41c-0.18-0.89-0.87-2.12-0.87-2.12l-2.5-1.63,1.25-0.87,4.09-0.38s1.96-2.66,2.5-3.37c0.54-0.72,2.84-2.35,2.84-2.35v-2.5s-1.04-2.13-1.93-3.03c-0.9-0.89-2.35,0.18-3.07,0.53-0.71,0.36-3.03-0.34-3.03-0.34s-1.41-0.88-2.12-0.34c-0.72,0.53-1.63,1.06-1.63,1.06l-1.4-1.06-1.97,1.78-1.44-0.72s-2.84-1.79-4.09-1.25c-1.25,0.53-1.97-0.72-1.97-0.72h-2.5s-0.56,1.25-1.1,1.97c-0.53,0.71-3.03,0.87-3.03,0.87l-2.84,0.91-2.69,3.75-2.69,0.53,1.25-2.5,0.19-1.59-3.03-0.38s2.13-0.88,2.84-1.06c0.72-0.18,3.41-1.06,3.41-1.06l1.97-0.91,0.34-1.59s1.78-3.41,1.78-4.13c0-0.71-0.68-3.22-0.68-3.22l-0.91-2.31s-2.5-4.63-3.22-5.34c-0.71-0.72-1.05-1.78-2.12-1.78-1.08,0-3.07,0.68-3.07,0.68l-1.4,0.91-1.25-1.06s-2.17-1.98-3.6-2.159c-1.42-0.178,0.38-0.719,0.38-0.719l0.87-1.593s-0.16-1.973,0.38-2.688c0.53-0.714,1.97,1.25,1.97,1.25s2.67,1.438,3.56,1.438,1.78,0.531,1.78,0.531,3.41-0.371,4.13-0.906c0.71-0.536,0.68-2.313,0.68-2.313l0.19-2.687,0.72-1.25,1.25-1.782s0.36-1.964,1.25-2.5c0.89-0.535,1.79,0,2.69,0,0.89,0,2.31,1.626,2.31,1.626l1.59,0.718,2.5-1.437s1.28-2.139,1.82-3.031c0.53-0.893,2.84-1.782,2.84-1.782l2.84-2.156,1.44-3.219s2.14-1.973,2.5-2.687c0.36-0.715-0.34-1.782-1.59-1.782h-1.78l-1.82-1.062-1.93-0.188-3.07-1.781-3.18-0.187h-3.75c-0.9,0,0-0.875,0-0.875l2.5-1.625,0.68-2.5-1.06-1.25-2.5-0.532,1.78-1.25,0.53-1.25-2.31-0.531v-2.5s-0.35-1.785-0.53-2.5c-0.09-0.357-0.45-0.437-0.78-0.437zm-77.19,16.062c-0.22-0.01-0.48,0.081-0.78,0.282-1.61,1.071-3.94,2.312-3.94,2.312-1.07,0.357-1.79,1.42-1.97,2.312-0.17,0.893-0.53,2.88-0.53,3.594,0,0.715,0.2,2.496,1.1,3.032,0.89,0.535,3.03,1.598,3.03,2.312s-0.56,2.321,0.15,2.5c0.72,0.179,1.44-0.522,1.97-1.594,0.54-1.071,0.36-3.419,0.72-4.312s1.45-2.491,1.63-3.563c0.17-1.071-0.19-5.187-0.19-5.187s-0.24-1.644-1.19-1.688z\",\"name\":\"Chukotka Autonomous Okrug\"},\"ha\":{\"path\":\"m779.82,276.93c0.53572-0.71428,1.4286-1.4286,1.9643-2.3214,0.53571-0.89285,1.7857-2.5,1.7857-2.5s1.7857-0.17857,4.1072,0.17858c2.3214,0.35714,4.4643,1.4286,5.7143,2.1428,1.25,0.71429,2.6786,1.25,3.0357,2.3214,0.35714,1.0714,1.6071,2.1429,1.6071,3.3929s-1.4286,3.5714-1.4286,4.2857c0,0.71429-0.17857,2.5,0.71428,3.3929,0.89286,0.89286,0.71429,1.6071,1.7857,1.4286,1.0714-0.17857,3.9286-1.0714,5-1.25,1.0714-0.17857,3.3929,0,5,0.53572,1.6071,0.53571,2.8571,0.89285,3.2143,1.6071,0.35715,0.71428,1.0714,1.4286,0.89286,2.5-0.17857,1.0714-2.5,2.8571-2.5,2.8571l0.17857,1.4286,0.89286,1.6072s1.6071,0.71428-0.35714,0.89285c-1.9643,0.17857-3.0357-0.71428-3.0357-0.71428s0.17857-0.17857,0-1.0714c-0.17857-0.89286-0.71428-1.7857-1.7857-1.4286-1.0714,0.35714-2.3214,1.9643-3.0357,2.5-0.71428,0.53571-2.8571,3.0357-2.8571,3.0357s-1.9643,0.71429-2.8571,1.7857c-0.89286,1.0714-4.1071,4.6428-4.1071,4.6428s-0.17858,1.25-1.0714,2.5c-0.89286,1.25-2.3214,2.3214-2.5,3.5714-0.17857,1.25,0,4.1071,0,4.1071s1.4286,1.0714,1.6071,2.3214c0.17857,1.25-0.89286,1.9643-1.25,2.8572-0.35714,0.89285-1.4286,0.53571-1.4286,1.7857s0.17857,5.7143,0.17857,5.7143l-0.35714,4.8214-0.35715,4.1072s-1.0714,1.9643-1.25,3.2143c-0.17857,1.25-0.35714,2.6786-0.35714,3.3929,0,0.71429-0.17857,3.0357-0.17857,3.75,0,0.71429-0.71429,1.9643-0.89286,2.6786-0.17857,0.71429-1.0714,1.25-0.17857,1.9643,0.89286,0.71428,1.9643,1.9643,1.9643,1.9643l-1.7857,3.3929-0.17857,1.9643-1.7857,3.3928-1.25,3.75-0.35715,4.1072-0.71428,1.6071-3.2143,4.1071,0.35715,2.6786s2.1428,1.0714,2.8571,1.0714c0.71428,0,3.3929,0.53572,4.4643-0.17857s2.5-1.4286,3.2143-1.7857c0.71429-0.35715,1.6071-0.89286,2.8571,0.35714s2.5,4.4643,2.5,4.4643,0.17857,1.4286,1.4286,1.0714c1.25-0.35714,1.9643-2.1428,1.9643-2.1428l-1.0714-2.1429,0.53572-2.6786-0.53572-1.7857-1.6071-2.5s-1.7857-1.4286-2.5-1.4286c-0.71429,0-3.75,1.4286-3.75,1.4286s-1.9643,2.3214-1.6071,1.4286c0.35714-0.89285,1.9643-3.3928,1.9643-3.3928l1.6071-0.35715,1.25-1.7857s0.89286-0.71429,1.9643-0.71429,3.2143-1.25,3.2143-1.25,1.25-2.6786,1.0714-0.89285c-0.12,1.78-1.72,4.28-1.72,4.28l1.0714,2.1429,1.9643,2.1429,0.53572,1.7857-0.17857,2.6786,2.3214,1.4286v1.6072,2.8571l1.7857-0.71429c0.71429-0.71428,2.1429-4.2857,2.1429-4.2857l0.89285-3.2143v-2.1428s-1.6071-1.7857-0.89285-1.9643c0.71428-0.17857,4.6428-2.1429,4.6428-2.1429s2.1429-0.53571,3.0357-0.53571c0.89286,0,4.1071,0.17857,4.8214,0.35714,0.71428,0.17857,4.4643,1.6071,4.4643,1.6071s4.4643,1.25,5.1786,1.25c0.71429,0,1.9643,1.7857,1.9643,1.7857s-0.89286,1.9643,0.53571,2.8571c1.4286,0.89286,4.8214,3.0357,4.8214,3.0357l3.75,2.1428s1.4286,3.3929,1.4286,4.2857c0,0.89285-0.17857,4.6428-0.17857,5.7143,0,1.0714,0,5,0.53572,5.7143,0.53571,0.71428,1.0714,2.3214,2.1428,3.2143,1.0714,0.89286,3.2143,4.2857,3.2143,4.2857l2.5,1.25,3.0357,6.9643s1.4286,1.4286,1.6072,2.3214c0.17857,0.89286,1.6071,3.0357,1.7857,3.75,0.17857,0.71429,1.6071,5,1.7857,5.7143,0.17857,0.71428-0.53572,8.5714-0.53572,8.5714l0.53572,3.3928s0,1.25-0.89286,1.9643c-0.89286,0.71429-3.5714,1.6071-3.5714,1.6071l-1.4286,0.17857-1.4286-1.7857-0.53572-2.6786-3.0357-3.0357s-1.9643-1.25-2.6786-0.71428c-0.71429,0.53571-2.3214,1.9643-2.3214,1.9643s-0.89286,1.7857-1.25,2.5c-0.35714,0.71429-1.4286,1.25-0.89286,2.3214,0.53572,1.0714,1.9643,2.6786,1.9643,2.6786s0.35714-0.71428,2.1428-0.53571c1.79,0.18,2.14,2.68,2.14,2.68l-0.89286,3.2143s-1.9643,1.25-2.6786,1.6071c-0.71428,0.35714-2.8571,1.25-1.7857,2.1429,1.0714,0.89285,2.3214,1.25,2.3214,1.25s0.71428,1.25,0,1.9643c-0.71429,0.71429-2.3214,2.1429-2.3214,2.1429s-1.7857,0.35714-3.0357,1.25-3.2143,1.4286-4.2857,1.6071c-1.0714,0.17857-2.8571,1.25-4.1071,0s-2.1429-0.89285-2.5,0.17857c-0.35715,1.0714-1.6072,0.89286-1.7857,1.9643-0.17857,1.0714,0,2.8571,0.35715,3.5714,0.35714,0.71428,0,3.0357,0,3.0357s-2.3214,1.9643-2.5,1.25c-0.17858-0.71428,0.17857-2.3214-0.35715-3.2143-0.53571-0.89286-2.3214-2.5-2.3214-2.5s-2.8571-1.4286-1.7857-2.3214c1.0714-0.89286,2.8571-2.6786,3.2143-3.2143,0.35714-0.53571,0.35714-3.0357,0.35714-3.0357s-2.1429-0.89286-2.6786-1.7857c-0.53572-0.89285-1.0714-3.3928-1.0714-4.1071,0-0.71428-0.71429-3.3929,0.17857-3.75,0.89286-0.35714,2.8571-1.9643,2.8571-1.9643l0.53572-1.9643s-0.53572-0.35714-2.1429-0.35714c-1.6071,0-2.5-0.17857-3.9286,0.89285s-1.4286,1.0714-2.5,2.5-2.1429,2.6786-3.2143,3.2143c-1.0714,0.53571-2.6786,0.71429-2.6786,0.71429s-4.1071-0.71429-4.2857-1.4286c-0.17857-0.71428-1.6072-1.9643-2.5-1.9643-0.89286,0-2.1429,0.35714-3.2143,0.89286-1.06,0.55-1.95,0.73-2.84,0.73-0.89286,0-4.2857,1.0714-4.2857,1.0714s-2.1428,1.7857-3.2143,1.7857c-1.0714,0-2.1014,0.40945-2.28-0.66198-0.17857-1.0714-1.0823-3.4216-1.0823-3.4216l-1.5332-4.3507s-2.6677-0.69261-3.7392-0.87119c-1.0714-0.17857-3.8221-0.85138-3.8221-0.85138l-2.4892-1.1525s-2.1249-2.2078-1.7678-2.9221c0.35714-0.71428,1.7028-4.0044,2.4171-4.5401,0.71428-0.53572,1.2608-1.4069,1.2608-1.4069l-1.25-2.3214s-1.7965-1.2085-0.90368-1.7442c0.89286-0.53571,3.7608-2.0058,3.7608-2.0058l2.0906-4.0892,1.5025-3.2341,3.5498-2.6767-0.89285-1.9643-2.4171-1.7118-0.11357-1.6288,2.5306-1.1237,4.1071-0.71428,2.6786-0.89286,1.0714-1.25-0.53571-1.6071-1.986-1.47-1.0083-2.5108-0.0631-2.4477-1.47-2.0058-1.7226-0.67282-2.2583,1.7442s-1.6703,1.0823-2.3846,1.4394c-0.73,0.34-2.87,0.19-2.87,0.19l-2.3214,1.25-0.44008,2.5-0.80992,2.3214-2.5,1.0714-2.1429,0.53571-0.53571,2.4585-1.4809,1.4286-2.3431-0.17857-0.99746-2.4585-1.0714-2.5s-1.2608-0.51404-1.9751-0.69262c-0.71428-0.17857-4.4534,0.51405-4.4534,0.51405l-1.7857-0.17857-1.7857-1.25,1.9643-5.5357,0.89286-4.1072s1.25-2.3214,1.9643-3.0357c0.71428-0.71429,3.0357-5,3.0357-5l0.35714-2.6786s-0.53571-1.25-1.6071-1.6072c-1.0714-0.35714-5.3571,0.17858-5.3571,0.17858l-2.6786,0.53571s-3.3424,2.5325-4.0567,1.8182c-0.71428-0.71429-1.1219-3.9611-1.1219-3.9611s-3.0376-1.6288-3.0376-2.5217c0-0.89286,1.9662-1.5855,1.9662-1.5855s0.53571-1.0714,0.71428-2.1429c0.17857-1.0714-0.20024-2.8138-0.20024-2.8138l-2.6281-0.77741s-1.4069-0.89472-2.1212-1.0733c-0.71428-0.17857,1.1996-2.2998,1.1996-2.2998l0.89286-1.6072-0.35714-1.0714s-2.2493-0.54655-2.2493-1.2608c0-0.71429,1.6505-3.3604,1.6505-3.3604l-1.5873-1.6703-2.5415-0.82971-0.80806-1.618s0.69262-0.73594,1.5855-1.0931c0.89286-0.35714,1.0498-0.61866,1.0498-0.61866l-1.3852-0.89286v-2.4062c0-0.71429-0.074-2.3304-0.074-2.3304s-1.2718-1.1078-1.4502-2.345c-0.1894-1.3131,2.6371-1.7532,2.6371-1.7532l-0.93619-0.82972-0.49238-1.4917,0.2417-2.1339,2.7525-0.86037,2.9094-0.89285,2.4477,0.1371,0.70345-1.8922,3.2034,0.21106,2.9203,0.0108s0.35715-1.7749,0.35715-2.4892c0-0.71428-1.8705-1.618-1.4286-2.2691,0.40112-0.59101,1.5657-0.89285,2.4585-1.0714,0.89286-0.17858,3.9286-0.71429,4.1072-1.4286,0.17857-0.71428,2.5829-6.1562,2.5829-6.1562s0.96683-1.0083,1.6811-1.1869c0.71429-0.17857,3.9286-0.93432,3.9286-0.93432l-1.764-2.794-3.0051-2.8246-1.6378-4.8539-2.3214-2.1428-1.4286-1.7857v-5.3571l3.0357-6.7857-1.0714-3.2143-0.72512-5.8585,0.81889-2.85s3.5498,0.11543,4.264,0.29401c0.71428,0.17857,7.7634,0.22004,7.7634,0.22004s0.95599-4.0152,1.3131-4.7295c0.35714-0.71428,1.3871-0.826,2.28-1.0046,0.89286-0.17857,3.3495-0.62051,3.3495-0.62051l2.5433,1.1562,1.6071-1.0714z\",\"name\":\"Khabarovsk Krai\"},\"eu\":{\"path\":\"m781.96,462.82c0.98214,1.875,1.1607,1.875,1.875,2.5893l2.6786,2.6786s0.80357,1.1607,1.0714,1.7857c0.26786,0.625-0.0893,1.6964,0.625,1.9643,0.71429,0.26785,2.3214,0.53571,2.7679,0.625,0.44643,0.0893,1.4286,1.0714,2.3214,1.1607,0.89285,0.0893,1.6071,0.0893,2.1428-0.35714,0.53572-0.44643,1.0714-1.25,1.6964-1.7857,0.625-0.53571,2.5893-1.4286,3.125-1.6964,0.53572-0.26785,1.875-0.625,2.3214-1.0714,0.44643-0.44643,1.1607-0.98215,1.1607-2.0536s0.26785-2.7678,0.71428-3.125c0.44643-0.35714,2.9464-1.9643,3.5714-2.5,0.625-0.53571,1.6964-2.2321,2.1429-2.8571,0.44643-0.625,1.875-2.6786,2.2321-3.2143,0.35714-0.53572,2.1429-2.0536,2.1429-2.0536l2.0536-2.3214,0.98214-1.0714,2.6786-1.875,0.71429-0.80357,0.17857-1.1607,0.0893-0.35714-1.5179-0.17857-1.875-0.0893-1.6964,0.44643-1.6964,1.1607-1.3393,1.25-0.80358,1.0714-1.25,1.6072-1.4286,0.98214-1.7857,0.625s-1.25,0.17857-1.7857,0c-0.53571-0.17857-2.1428-0.71429-2.1428-0.71429l-1.4286-0.625-0.80358-0.98214-0.89285-0.625s-0.80357-0.26786-1.1607-0.17857c-0.35714,0.0893-1.7857,0.625-1.7857,0.625l-2.0536,0.71429-2.4107,0.17857s-1.0714,0.44643-1.7857,0.625c-0.71429,0.17857-2.4107,0.80357-2.4107,0.80357l-1.4286,0.89285-1.875,0.26786-0.80357,0.17857-0.35714,0.98215-0.0893,1.4286s-0.44643,1.1607-0.44643,1.5178c0,0.35715-0.53571,1.875-0.53571,1.875l-0.53571,1.1607-0.71429,1.4286z\",\"name\":\"Jewish Autonomous Oblast\"},\"pr\":{\"path\":\"m822.68,473.71c0,0.53571,0.53571,1.25,0.53571,1.25l1.4286,1.4286s0.35715,1.0714,0.44643,1.4286c0.0893,0.35714-0.625,2.0536-0.625,2.0536l-1.1607,2.7679s-0.0893,2.2321,0,2.5893c0.0893,0.35715,0.625,1.0714,0.89285,1.5179,0.26786,0.44643,0.80358,1.1607,0.80358,1.5179,0,0.35714-0.80358,1.9643-0.80358,1.9643v1.9643c0,0.44643-0.44642,1.9643-0.44642,1.9643s-0.17858,0.0893-0.17858,1.0714v2.7679c0,0.71429-0.26785,3.0357-0.35714,3.3929-0.0893,0.35714-1.9643,0.53571-2.3214,0.53571-0.35714,0-1.3393-0.98214-1.3393-0.98214s-0.98215-1.6071-1.1607-2.0536c-0.17857-0.44643-1.3393-1.5179-1.3393-1.875,0-0.35715-0.26786-1.6072-0.89286-1.7857-0.625-0.17857-1.5179,0.26786-1.5179,0.26786s-0.53571,0.89286-0.625,1.25c-0.0893,0.35714,0,0.98214-0.0893,1.4286-0.0893,0.44643-0.71429,2.5-0.71429,2.5s-0.625,0.625-1.1607,0.89286c-0.53572,0.26786-2.2322,1.0714-2.2322,1.6071,0,0.53572,1.0714,0.71429,2.1429,2.0536,1.0714,1.3393,3.125,4.6429,3.125,4.6429l2.5,4.2857,1.4286,4.9107s0.44643,1.6071,0.625,2.1429c0.17857,0.53571,0.89286,1.1607,0.98215,1.9643,0.0893,0.80357,0.53571,2.5-0.35715,2.8571-0.89285,0.35715-4.0178,1.0714-4.0178,1.0714l-0.71429,0.625,1.1607,0.71429s0.625,0.44643,1.0714,0.53571c0.44643,0.0893,0.53572,1.4286,0.98215,1.4286,0.44642,0,1.875-0.35714,2.4107-0.71428,0.53571-0.35714,1.3393-0.625,2.1429-0.625,0.80357,0,1.4286-0.44643,1.4286-1.0714,0-0.625-0.625-3.3929-0.625-3.8393,0-0.44642,1.5179-2.5893,1.5179-2.5893v-2.1429c0-0.35714-0.17858-1.4286,0.35714-1.5179,0.53571-0.0893,2.9464-0.71428,2.9464-0.71428s0-1.1607,1.0714-0.26786c1.0714,0.89286,1.5178,2.9464,1.5178,2.9464s1.875,0.35714,2.2322,0.17857c0.35714-0.17857,0.98214-0.625,1.5178-0.98214,0.53572-0.35714,2.5893-0.53572,3.3929-0.53572,0.80357,0,2.1429-0.44642,2.1429-0.44642l-0.26786-1.1607s2.0536-1.25,2.5-1.5179c0.44643-0.26785,2.2321-1.1607,2.8571-1.7857s1.5179-1.4286,1.9643-2.4107c0.44643-0.98215,1.3393-3.125,1.5179-3.4822,0.17857-0.35714,1.1607-2.5,1.4286-3.2143,0.26785-0.71429,0.89285-2.3214,1.3393-3.125,0.44643-0.80357,1.5179-2.8572,1.5179-2.8572s-0.0893-2.3214-0.0893-2.8571c0-0.53571-0.26785-1.875-0.625-2.8571-0.35714-0.98214-0.53571-1.1607-0.44642-2.1429,0.0893-0.98214,0.98214-1.6071,1.6071-2.0536,0.625-0.44643,1.0714-1.4286,1.0714-1.9643,0-0.53571-1.25-2.9464-1.25-2.9464s0.0893-1.1607,0.35714-1.6964c0.26786-0.53572,1.5179-1.7857,1.5179-1.7857l0.17857-2.9464s0.80357-2.2321,0.80357-2.6786c0-0.44643,0.26786-3.9286,0.26786-3.9286l0.89285-2.1429s0.26786-3.3928,0.26786-3.9286c0-0.53571-0.53571-5-0.53571-5.5357,0-0.53572-0.17857-4.1071-0.17857-4.7321s-0.71429-2.1429-0.71429-2.5893c0-0.44643,0.0893-2.1429,0.26786-2.5893,0.17857-0.44643,0.98214-1.9643,0.98214-1.9643s-0.0893-2.0536-0.0893-2.5893c0-0.53571,0.17858-1.6964-0.44642-1.7857s-2.3214,0.80357-2.3214,0.80357l-1.7857,0.71429-1.5178,0.17857-0.71429-0.44643-1.0714-1.4286s-0.26786-1.4286-0.26786-1.7857c0-0.35714-0.53571-1.1607-0.53571-1.1607l-1.25-1.3393-1.3393-1.3393-1.4286-0.71429-1.0714,0.17857s-0.98214,0.17858-1.0714,0.53572c-0.0893,0.35714-0.53572,0.44643-0.80358,0.80357-0.26785,0.35714-1.1607,1.3393-1.1607,1.3393l-0.53571,1.0714-0.44643,1.0714-0.80357,0.80357-0.17858,0.71429,0.35715,0.80357,0.89285,0.98214s0,0.71429,0.53572,0.80358c0.53571,0.0893,1.0714,0.0893,1.0714,0.0893h1.3393l1.25,0.625,0.71429,0.80357,0.0893,1.3393-0.26785,1.4286-0.44643,1.25-0.53572,0.71429-1.5178,0.89285-1.7857,0.89286-0.89285,0.89286,0.26785,0.80357,1.9643,0.80357,0.80357,0.98214-0.0893,0.71429-0.80357,1.0714-1.0714,1.0714-1.875,0.89286-1.7857,0.98214-3.64,1.44-1.6964,0.44643-1.9643,0.26786-0.89286-0.44643-1.25-0.71429s-0.53571-0.26786-0.89285,0c-0.35715,0.26786-0.625,0.98214-0.625,0.98214l-1.5179,1.0714-0.53571,1.6964,0.0893,1.3393s0.35714,0.71428,0.44643,1.1607c0.08,0.44,0.08,1.33,0.08,1.33l-0.0893,1.6071-0.98214,1.0714z\",\"name\":\"Primorsky Krai\"},\"ma\":{\"path\":\"m829.64,182.46s1.0714,0.71428,2.1429,1.25c1.0714,0.53571,3.0357,2.1429,3.2143,2.8571,0.17857,0.71429,0.17857,2.3214,1.0714,2.8571,0.89286,0.53572,3.5714,1.0714,3.5714,1.0714l1.9643,0.89286,1.0714,1.7857,3.0357,1.6072s0.71429,1.0714,0.17857,1.9643c-0.53571,0.89286,0,2.6786,0,2.6786l2.5-0.35714,2.8572,0.35714,1.6071,2.3214,1.9643,2.6786,2.1429,1.0714,1.9643,2.1429,1.0714,1.9643,0.17857,2.5s-0.35715,2.5,0,3.2143c0.35714,0.71429,1.0714,3.75,1.0714,3.75l1.0714,1.7857s0.53572,1.0714,0.53572,1.7857c0,0.71428-0.89286,2.1429-0.89286,2.1429l0.17857,1.7857-1.9643-0.53571-0.35715-1.9643s0.35715-0.71429-0.53571-0.35714c-0.89286,0.35714-1.7857,1.4286-1.7857,1.4286s-0.35715,0.89286-1.0714-0.53572c-0.71429-1.4286-1.7857-1.9643-1.7857-1.9643s-1.6071-0.71429-1.6071-1.9643-1.7857-2.3214-1.7857-2.3214l-1.6072-1.4286s-0.35714,1.7857-0.35714,2.5c0,0.71429,1.4286,1.4286-0.35714,1.4286s-4.1072,0.71429-4.1072,0.71429l-0.89285,1.0714-0.35715,2.6786-1.25,1.25-2.6786,2.8571-0.35714,2.3214-1.0714,1.9643,0.53572,2.3214,1.4286,1.4286s0.53571,0.71428,0.53571,1.4286v2.6786l0.17857,1.6071,1.6072,1.4286,0.17857,4.4643v4.4643l0.17857,3.0357,1.7857,2.6786,1.0714,3.0357,0.35714,0.89285,1.9643,0.35715,1.0714-1.25,1.9643-1.0714s1.6072-0.17857,2.3214-0.17857c0.71429,0,1.6072,0.89285,1.6072,0.89285l0.17857,0.89286-1.7857,1.4286-1.7857,0.71429v1.0714l-0.71429,0.89285-1.7857,0.89286-1.25,0.53571-0.53572,0.71429-0.17857,2.6786v2.3214l-0.89285,0.71429-1.7857-0.89286-0.71428,1.4286-0.53572,2.5-1.0714,1.25-3.2143,0.71429-1.25-0.17858-0.53572-1.6071,2.5-1.6071,1.25-1.9643s1.9643-1.7857,0.53572-1.7857-2.6786,1.0714-2.6786,1.0714l-0.89286,1.25-0.89286,0.53571s-0.89286,0.35714-1.7857-0.17857c-0.89286-0.53571-2.3214-0.71429-2.3214-0.71429s-1.25,0.89286-1.25,1.4286c0,0.53571,0.35714,1.4286-0.53572,1.4286-0.89285,0-3.2143,0.17857-3.2143,0.17857l-2.5,1.6071-2.5,0.89286-1.0714,2.1429,0.35714,1.7857,0.53572,1.9643,0.35714,0.89285,1.6071,1.0714s0.17857,0.89286-1.7857,0.89286h-4.4643l-1.0714,2.1429-1.0714,1.25-2.5,0.35714-2.1429-2.8571-2.6786-1.25s-1.9643-0.71429-2.6786-0.71429c-0.71429,0-3.3929,0.17857-3.3929,0.17857l-2.1429,0.89286-1.7857,0.17857-1.25-0.89286-1.0714-1.7857-0.17857-2.3214,1.25-1.9643,0.17857-2.5-2.5-3.9286-2.3214-1.4286-2.3214-1.25-2.6786-0.71428-2.6786-0.71429-2.1429,0.71429-1.0714,1.4286-1.0714,1.9643-0.89285,1.25h-1.25l-1.25-1.9643-0.17857-0.89286,1.25-0.71429,0.35714-1.4286v-1.25l-1.25-1.25-5.7143-6.7857s-0.35714-1.0714-0.35714-1.7857v-3.2143l-1.78-0.88-0.89286-0.35714-0.17857-3.0357-0.53572-1.4286-1.0714-0.35714-0.35714-1.25,1.6071-1.4286,2.1429-0.17857,1.0714-0.53572,1.0714-1.0714,2.1429-0.17857,1.9643,0.17857,0.53572-1.0714-1.25-1.9643-1.4286-1.25-0.35714-2.1429s1.25-0.53571,1.9643-0.53571c0.71428,0,3.5714-1.0714,3.5714-1.0714l-0.17858-2.6786s0.53572-0.35714,1.25-0.35714c0.71429,0,3.9286,0.35714,3.9286,0.35714l2.1428-1.7857,4.1072-6.4286-0.17858-3.0357-1.4286-1.4286-2.6786-2.8572s-1.25-0.89285-1.4286-1.6071c-0.17857-0.71428-0.35714-1.7857-0.35714-1.7857l2.1428-2.3214,0.17858-1.6071-1.25-1.25-2.5,0.17857-0.71429-0.53572-1.0714-1.0714v-0.71429l3.06-0.86,1.25-1.0714-0.53572-1.4286-1.25-0.89285-0.17857-1.6072,2.1429-3.0357,3.75-1.25,2.1428-1.25-1.25-2.5s0.17858-0.35714,0.89286-0.35714c0.71429,0,3.3929,0.71428,3.3929,0.71428l1.0714-0.17857-0.53572-3.5714v-1.6071l1.4286-0.53572,0.2-2.66-0.17858-0.53571h2.5l1.6072,0.53571,0.53571,1.9643,1.0714,1.0714s0.53571,0.53571,1.25,0.53571,3.75-0.71428,3.75-0.71428l3.5714-0.71429,2.3214-0.35714,2.6786-1.0714,2.3214-1.4286,2.3214-0.89286,1.9643-0.17857,2.8571-0.35714,2.5-1.6072z\",\"name\":\"Magadan Oblast\"},\"sh\":{\"path\":\"M943.16,321.59c-0.45,0.19-0.81,0.37-1.19,0.94s-0.31,1.53-0.5,1.85c-0.19,0.31-1.53,1.12-1.53,1.12-0.51,0.51-0.87,1.06-2,1.25-1.14,0.19-2.59-0.23-2.85,0.66-0.25,0.88,0.06,2.12,0.69,2.25,0.63,0.12,1.53,0.44,2.1,0.25,0.56-0.19,1.56-1.25,1.56-1.25s0.62,0.3,1,0.93c0.38,0.64,0.97,1.78,0.97,2.03,0,0.26,0.19,1.06-0.07,1.57-0.25,0.5-0.81,2.78-0.56,3.03s1.24,0.9,1.94,0.9c0.69,0,1.09,0.17,1.78-0.78,0.69-0.94,0.93-1.74,1.25-2.56s0.78-1.9,1.09-2.16c0.32-0.25,0.48-1.02-0.22-1.65-0.69-0.63-0.93-1.75-1-2.06-0.06-0.32-0.56-1.09-0.24-1.53,0.31-0.45,1.12-1.31,1-1.69-0.13-0.38-1.38-1.09-1.82-1.47s-0.96-1.82-1.4-1.63zm2.15,20.44s-0.43,0.15-0.69,0.85c-0.25,0.69-0.5,1.74-0.31,2.31s0.56,1.4,0.81,1.78c0.26,0.38,0.75,1.31,0.88,1.62,0.13,0.32,0.53,0.72,1.03,0.91,0.51,0.19,1.12,0.07,1.25-0.44,0.13-0.5,0.19-1.4,0.19-2.03s-0.19-2.15-0.19-2.53,0.07-0.87-0.31-1.31-2.66-1.16-2.66-1.16zm2.53,9.22c-0.56,0.19-1.9,0.5-2.15,0.69-0.26,0.19-0.63,0.52-0.5,1.03,0.12,0.5-0.2,1.24,0.5,1.69,0.69,0.44,2.15,0.96,2.53,1.09s0.55,0.44,1.19,0.13c0.63-0.32,1.09-0.59,1.03-1.41-0.07-0.82-0.59-1.62-0.78-1.88-0.19-0.25-1.5-1.34-1.5-1.34h-0.32zm-117,4.5l-1.87,1.25s0.5,1.12,0,1.12h-1.78s-1.26,0.78-0.5,1.29c0.76,0.5,2.4,0.87,3.03,1,0.63,0.12,1.52,0.65,2.16,1.15,0.63,0.51,1.49,0.87,1.74,1.63,0.26,0.76,0.63,2.28,0.63,2.28l0.91,1.62-0.54,2.16-1.74,0.13s-0.91-1.14-1.41-0.13c-0.51,1.01-0.5,1.77-0.5,2.41,0,0.63,0.27,1.24,0.91,1.37,0.63,0.13,1.48,0.4,2.74,1.41,1.27,1.01,2.03,2.9,2.29,3.53,0.25,0.63,0.24,2.65,0.5,3.41,0.25,0.75,1.4,2.02,2.03,2.53,0.63,0.5,2.03,2.52,2.28,3.03,0.25,0.5,1.25,2.4,1.5,2.9,0.25,0.51,1.78,1.75,1.78,1.75s1.24,1.15,2,1.66,3.8,1.37,4.56,1.37,3.03,0.66,3.28,1.16c0.26,0.51,2.78,5.66,2.78,5.66l5.57,8.34s2.52,2.15,3.15,2.66c0.64,0.5,2.4,3.9,2.91,4.65,0.51,0.76,2.12,4.44,2.5,4.94,0.38,0.51,3.69,5.06,3.69,5.06s2.77,1.88,3.4,2c0.64,0.13,3.41,1.91,3.41,1.91s2.65,2.9,2.78,3.41c0.13,0.5,0.75,3.53,0.75,3.53l2.16,3.4,3.15,2.66,2.5,5.19,0.53,2.25s0,2.15,0.5,2.53c0.51,0.38,5.29,4.06,5.29,4.06l1.65,0.88,1.78,0.25v-2.54s-0.9-1.65-1.15-2.15c-0.26-0.51-0.88-3.03-0.88-3.03s-0.5-0.74-0.5-1.63c0-0.88,0.75-2.4,0.75-2.4s1.53-0.25,2.16-0.25,1.24-0.12,2.25-0.63c1.01-0.5,2.41-0.37,2.41-0.37l2.28,2,1.37,0.78s0.5-1.4,0.5-2.03c0-0.64,0.01-1.53-0.62-2.41-0.64-0.88-1.63-1.88-1.63-1.88l-2.03-1.65s-0.99-1.38-1.75-1.25-1.15,0.24-1.41,0.75c-0.25,0.5,1.52,2.66,0,2.28-1.51-0.38-2.4-0.9-2.78-1.41-0.38-0.5-1.62-1.87-1.62-1.87s-2.4-1.28-3.03-1.53c-0.64-0.26-2.4-0.88-3.04-0.88-0.63,0-4.06-1.15-4.06-1.15l-2.12-2.38-2.41-6.31s-1.12-1.65-1.25-2.41-1.03-3.15-1.16-3.65c-0.12-0.51-0.37-2.28-0.62-2.78-0.25-0.51-1-2.29-1-2.29l-0.53-3.28,1.78-1.62s2.77-1.03,3.41-1.03c0.63,0,5.06-0.13,5.06-0.13l2.4,0.63s2,0.25,2.5,0.25c0.51,0,1.03,0.51,1.16-0.5s-1.53-2-1.53-2l-3.53-0.53-3.66-1.26-2.4-1.78-18.57-15.25-1.5-1.28-1.78-0.12s-0.87,0.13-1.25-0.63-0.4-1.27-1.15-1.9c-0.76-0.64-2.5-1.88-2.5-1.88s-1.52-0.25-2.66-0.5-3.66-1.4-3.66-1.4l-0.4-2.79-1.38-1.25-0.62-1.28,1.25-1.62-0.25-1.91-2.53-2.12-3.54-0.79s-2.4-0.99-2.65-1.5c-0.25-0.5,0.12-2.15,0.12-2.15s-0.62-1.12-1.12-1.5c-0.51-0.38-4.28-1.91-4.28-1.91l-2.91-1.9-1.03-2.63s0.01-1.91-0.63-1.91c-0.63,0-2.78-0.87-2.78-0.87zm119.16,7.94c-0.88,0.25-1.53,0.4-1.72,0.97-0.19,0.56,0.06,1.24,0.31,1.43,0.26,0.19,0.84,0.69,1.47,0.57,0.63-0.13,1.56-0.19,1.82-0.57,0.25-0.38-1.13-1.46-1.32-1.78-0.19-0.31-0.56-0.62-0.56-0.62zm1.75,4.06c-0.51,0.25-1.19,0.56-1.37,1.06-0.19,0.51,0.36,1.37,1,1.75,0.63,0.38,1.05,0.63,1.56,0.06,0.5-0.56,1.09-1.62,1.03-1.93-0.06-0.32-2.22-0.94-2.22-0.94zm0.19,6.97c-0.18,0.01-0.34,0.06-0.5,0.16-0.63,0.37-0.82,1.18-0.82,1.56s0.88,3.09,0.88,3.47-0.87,2.4-1,2.9c-0.13,0.51-0.01,1.33,0.62,2.6,0,0,1.13-0.25,1.38-0.25s1.72-0.94,1.84-1.19c0.13-0.25,0.44-2.28,0.44-2.91s-0.06-2.02-0.12-2.47c-0.07-0.44-0.63-1.4-0.63-1.78s-0.31-1.43-0.69-1.69c-0.28-0.18-0.87-0.44-1.4-0.4zm-4.41,14.53s-1.28,0.03-1.53,0.16c-0.25,0.12-0.69,0.49-0.81,0.75-0.13,0.25-0.57-0.07,0.06,0.62,0.63,0.7,1.02,1.38,1.66,1.38,0.63,0,2.06,0.65,2.31,0.65s1.03-0.21,1.22-0.47c0.19-0.25,0.75-0.49,0.31-1.18-0.44-0.7-0.97-1.06-1.22-1.19s-2-0.72-2-0.72zm1.81,6.47c-0.19,0.31-1.37,1.18-1.43,1.44-0.07,0.25-0.32,0.74-0.38,1.25-0.06,0.5-0.31,1.77-0.31,2.09s-0.53,1.59-0.78,2.16c-0.26,0.56-0.5,1.49-0.44,2.12s-0.07,1.09,0.19,1.66c0.25,0.57,0.24,1.18,0.56,1.37s-0.04,1.29,1.09,0.6c1.14-0.7,1.63-1.34,1.82-1.79,0.19-0.44,0.53-2.09,0.72-2.34,0.18-0.25,0.56-1.43,0.68-1.81,0.13-0.38,0.63-1.9,0.63-2.22s0.06-1.59-0.25-2.22c-0.32-0.63-1.19-1.31-1.19-1.31l-0.91-1zm-4.9,15.4c-0.26,0.07-0.97,0.19-1.28,0.44-0.32,0.26-0.63,0.56-0.69,0.75s-0.5,0.94-0.5,1.19,0.06,1.15,0,1.41c-0.06,0.25,0,0.56-0.56,0.81-0.57,0.25-1.22,0.43-1.6,0.56s-0.81,0.44-1.06,0.69-0.94,0.72-0.94,0.72-0.53,0.18-0.53,0.5c0,0.31,0.41,0.99,0.53,1.25,0.13,0.25,0.75,1.22,0.75,1.22l-0.18,0.75s-1.04,0.74-1.1,1.06c-0.06,0.31-0.12,1.59-0.12,1.97s0.06,1.74,0.06,2c0,0.25,0.19,1.84,0.19,2.09s0.15,1.34,0.28,1.97c0.12,0.63,0.12,1.06,0.43,1.44,0.32,0.38,0.56,1.03,0.88,1.22s0.5,0.68,0.88,0.62c0.37-0.06,1.71-1.03,1.71-1.03s0.63-0.62,0.75-1.06c0.13-0.44,0.44-2.16,0.44-2.16s0.19-1.37,0.13-1.69c-0.07-0.31-0.69-0.65-0.75-1.22-0.07-0.56-0.07-0.8,0-1.68,0.06-0.89,0.87-2.09,1.06-2.35,0.19-0.25,0.84-1.18,0.97-1.93,0.12-0.76-0.07-1.84,0.19-2.16,0.25-0.32,0.8-0.75,1.06-1.06,0.25-0.32,1.06-1.65,1.18-2.03,0.13-0.38,0.13-1.4,0.13-1.91s-0.31-1.37-0.56-1.56c-0.26-0.19-1.75-0.82-1.75-0.82zm-8.35,23.69c-0.31-0.01-0.62,0-0.75,0.03-0.25,0.07-0.56,0-0.81,0.32-0.25,0.31-0.78,0.71-1.22,0.84s-0.87,0-0.93,0.31c-0.07,0.32-0.26,0.87-0.26,1.13,0,0.25,0.06,0.74,0.32,1,0.25,0.25,0.62,0.21,0.75,0.78,0.12,0.57,0.19,1.18,0.12,1.44-0.06,0.25-0.31,1.12-0.37,1.43-0.07,0.32-0.19,0.4-0.38,1.03-0.19,0.64-0.31,1.38-0.31,1.76v1.15c0,0.38-0.06,1.19,0.13,1.44,0.18,0.25,0.62,0.56,0.87,0.81s1.47,0.47,1.72,0.47,0.5-0.28,0.75-0.66,0.56-0.99,0.56-1.56-0.12-2.96-0.06-3.28,1.12-0.84,1.19-1.41c0.06-0.56,0.03-1.74,0.09-2,0.06-0.25,0.31-1.15,0.31-1.15s0.75-0.44,0.88-0.81c0.12-0.38,0.25-1.13,0.25-1.5,0-0.38-0.19-1.54-0.19-1.54h-1.84c-0.19,0-0.5-0.02-0.82-0.03zm7.85,1.88c-0.57,1.01-0.72,0.99-0.78,1.75-0.07,0.76-0.88,1.53-0.88,1.53s-0.31,0.31-0.44,0.62c-0.12,0.32-0.69,0.81-0.06,1s1.72,0.19,1.97,0.07c0.25-0.13,0.75-0.69,1-0.82,0.25-0.12,0.44-0.49,0.44-1.37,0-0.89-0.19-1.9-0.31-2.16-0.13-0.25-0.94-0.62-0.94-0.62z\",\"name\":\"Sakhalin Oblast\"},\"ka\":{\"path\":\"M888.56,146.75l-1.65,0.84c-0.26,0.13-1.25,0.88-1.25,0.88l-0.13,1,0.13,2.78,0.25,1.16-0.88,2.43-1.72,4.69-0.93,1.56-0.44,1.41-0.06,1.81s-0.22,1.03-0.47,1.22c-0.26,0.19-0.82,0.13-0.82,0.13h-1.81-2.59l-1.6-0.19-1.68-0.31s-0.53,0.25-0.85,0.25c-0.31,0-0.68,0.56-1,0.75-0.31,0.19-1.37,0.74-1.56,1-0.19,0.25-1.28,0.78-1.59,0.9-0.32,0.13-1.38,1-1.63,1.19s-0.78,0.56-1.22,0.63c-0.44,0.06-0.94-0.32-0.94-0.32s-0.62-0.99-0.74-1.25c-0.13-0.25-0.97-1.72-0.97-1.72s-0.07-1.31-0.13-1.62c-0.06-0.32-0.06-1.47-0.12-1.72-0.07-0.25-0.13-1.06-0.13-1.06s0.25-1.22,0.31-1.66c0.07-0.44,0.38-0.75,0.38-0.75s0-0.56-0.19-0.87c-0.19-0.32-0.81,0.06-0.81,0.06l-1.75,0.44-1.97,0.81-1.66,0.5-1.18,0.19-2.04-0.25s-1.62-0.38-1.87-0.57-1.03-0.12-1.03-0.12l-0.63,0.56-0.87,1.16-0.63,0.81-0.84,0.88s-1.31,0.74-1.56,0.87c-0.26,0.13-0.94,0.59-0.94,0.59l-1.22,1.32-1.44,2.28s-2.27,2.28-2.59,2.47-1.18,0.87-1.44,1.12c-0.25,0.25-1.34,0.38-1.72,0.44s-0.74,0.62-1,0.94c-0.25,0.31-1.15,1.28-1.15,1.28l-0.81,0.56s-0.75-0.31-1.13-0.31-0.44,0.31-0.44,0.31l-0.97,1.91-1,2.18s-0.5,1.59-0.5,1.91,0.63,0.44,0.88,0.63c0.25,0.18,1.65,0.8,2.03,1.06,0.38,0.25,1,0.84,1.31,1.15,0.32,0.32,1.41,1.32,1.41,1.32s-0.13,0.43-0.06,0.68c0.06,0.26,0.37,1.15,0.68,1.66,0.32,0.51,0.94,0.81,0.94,0.81s4.09,1.16,4.35,1.28c0.25,0.13,1.09,1.32,1.09,1.32l0.37,0.68s1.13,0.85,1.44,1.04c0.32,0.18,1.22,0.31,1.22,0.31l0.62,0.62,0.44,1.19s-0.31,1.59-0.37,1.97c-0.07,0.38-0.07,0.99,0,1.37,0.06,0.38,1.12-0.06,1.12-0.06s1.4-0.31,1.97-0.25,1.56,0.25,1.56,0.25,1.22,0.4,1.35,0.66c0.12,0.25,0.75,1.18,0.75,1.18l1.15,1.5,1.25,1.72,1.85,1.32,2,1.65,1,1.31s0.84-0.99,1.03-1.31c0.19-0.31,0-0.74,0-1.19,0-0.44-0.37-0.71-0.75-0.96-0.38-0.26-0.97-1.19-1.35-1.63-0.37-0.44-0.56-0.84-0.56-0.84s-0.81-1.06-1.06-1.31c-0.25-0.26-1.09-0.94-1.34-1.19-0.26-0.26-1.25-1.34-1.69-1.97s0-0.75,0-1.06c0-0.32,0.87-1.04,0.87-1.04s0.94-1.3,1.19-1.62,0.44-1.21,0.5-1.59,0.47-1.31,0.85-1.5c0.37-0.19,1.18-0.38,1.68-0.44,0.51-0.06,1.84,0.5,1.97,0.81,0.13,0.32-0.62,0.69-0.75,0.94-0.12,0.25,0,1.59-0.06,2.16-0.06,0.56,0.12,1.71,0.12,2.28,0,0.56,0.75,1.37,0.75,1.37s1.13,1.4,1.44,1.72c0.32,0.32,1.28,0.93,1.59,1.19,0.32,0.25,1.57,1.65,1.57,1.65l3.34,2.32,0.97,0.59s0.75,1.25,0.81,1.69c0.07,0.44,0.44,0.93,0.44,0.93s1.03,0.22,1.34,0.47c0.32,0.26,0.63,1.31,0.63,1.69s-0.12,1.03-0.44,1.47c-0.31,0.44-1.21,0.93-1.53,1.25s-0.69,0.75-0.69,0.75-0.06,5.68-0.06,6.25,0.75,1.78,1,2.16,1.21,2.14,1.72,2.9c0.5,0.76,0.69,1.12,0.69,1.44s0.25,1.66,0.25,1.66,0.56,10.46,0.62,11.09,0.59,1.03,0.78,1.41,0.75,0.93,1,1.18c0.26,0.26,0.75,0.84,0.88,1.16,0.12,0.32,0.97,1.62,0.97,1.62s0.74,2.78,0.87,3.54c0.13,0.75,0.13,1.72,0.13,1.72s1.31,3.96,1.31,4.4v1.47s-0.81,1.75-1.13,2.13c-0.31,0.37-0.06,1.77-0.06,2.09,0,0.31-1.34,2.46-1.84,2.84-0.51,0.38-1.31,1-1.44,1.38s0.25,1.03,0.25,1.03l1.81,0.87,2.28,0.94s1.09,2.15,1.47,2.66c0.38,0.5,0.56,1.59,0.56,1.9,0,0.32,0.32,3.47,0.44,4.16,0.13,0.69,0.38,1.65,0.56,2.09,0.19,0.45,1.79,1.5,1.79,1.5s2.21,3.94,2.34,4.25c0.13,0.32,0.81,1.69,1.06,2,0.08,0.1,0.29,0.25,0.53,0.41,0.62,0.78,3.07,1.94,3.07,1.94l0.93,0.62s4.63,4.25,4.69,4.5c0.06,0.26,2.78,2.32,2.78,2.32s2.34,0.84,2.6,1.03c0.25,0.19,1.68,0.75,1.68,0.75l14.91,10.22,2.03,1.21,3.03,0.94s1.19,1.59,1.44,1.72,3.15,1.19,3.59,1.19c0.45,0,1.47,1,1.47,1s2.59,2.78,2.97,3.03,2.56,1.91,2.56,1.91,2.09,1.18,2.47,1.18,2.85-0.5,2.85-0.5l0.68-0.62v-2.03s-0.06-1.69-0.06-1.88,0-1.21-0.25-1.53-0.81-0.88-0.81-0.88,0.18-1.52,0.44-1.96c0.25-0.45,0.43-0.69,0.43-1.07s-0.31-1.15-0.56-1.4c-0.25-0.26-0.5-1.19-0.5-1.19s-0.06-2.34-0.31-2.66c-0.25-0.31-1.09-0.99-1.28-1.62s-0.5-1.03-0.63-1.41c-0.12-0.38-1.37-1.62-1.62-2.06-0.26-0.44-1.53-1.59-1.72-1.84-0.19-0.26-0.31-1.28-0.5-2.1s-1.02-0.75-1.78-0.75-1.12-0.06-1.38-0.25c-0.25-0.19,0.5-0.43,0.75-0.56,0.26-0.13,1.09-0.9,1.28-1.22,0.19-0.31,0.5-1.37,0.5-1.37l0.69-4.22,1.91-1.6c0.38-0.31,0.25-0.93-0.19-1.31s-1.09-0.25-1.41-0.31c-0.31-0.06-0.8-0.84-1.31-1.16-0.5-0.31-0.84-0.81-1.28-1s-1.24-0.31-2.06-0.56-1.4-1.03-1.91-1.47c-0.5-0.44-0.44-1-0.5-1.25s-0.06-1.96-0.06-2.84v-1.22s-0.97-2.78-0.97-3.1c0-0.31,0.03-1.05,0.16-1.43,0.12-0.38,0.49-0.69,0.75-0.94,0.25-0.25,1.43-0.78,1.43-0.78l1.47-0.88s0.38-1.71,0.38-2.59-0.5-2.25-0.63-2.56c-0.12-0.32-1.34-0.72-1.34-0.72s-1.5-1.19-1.94-1.19-2.46-0.56-2.9-0.69c-0.45-0.12-1.6-0.78-1.85-0.9-0.25-0.13-1.71-1.25-2.09-1.56-0.38-0.32-1.25-1.1-1.5-1.41-0.26-0.32-0.75-1.44-0.88-1.75-0.12-0.32-0.84-1.66-0.84-1.66s0-0.55-0.13-1.12c-0.12-0.57-0.18-1.65-0.18-2.41s1.02-0.62,1.28-0.62c0.25,0,1.68-0.25,2-0.32,0.31-0.06,1.03-0.74,1.22-1,0.19-0.25,0.37-1.77,0.31-2.09s-0.65-0.81-1.22-1-0.94-0.78-1.12-0.84c-0.19-0.07-2.16-0.88-2.16-0.88s-2.06-0.69-2.5-0.75-0.59,0.44-0.84,0.63c-0.26,0.19-0.5,0.37-1.32,0.37s-1.22-0.44-1.22-0.44l-0.87-1.18s-1.18,0.06-1.81,0.06c-0.64,0-0.91-0.59-1.16-0.91-0.25-0.31-1.06-0.56-1.06-0.56s-0.47-0.19-0.69-0.28c0-0.06,0.19-3.44,0.13-3.69-0.07-0.25-0.66-1.21-0.91-1.47-0.25-0.25-1.37-0.44-1.94-0.44s-1.4,0.6-1.84,0.85-1.06,0.75-1.31,0.94c-0.26,0.19-0.13,1.12-0.13,1.68,0,0.57-0.34,1.03-0.72,1.35-0.38,0.31-0.68,0.25-1.31,0.25s-1.12-0.19-1.63-0.31c-0.5-0.13-0.77-0.56-1.03-0.82-0.25-0.25-1.06-0.96-1.37-1.47-0.32-0.5-0.19-1.05-0.25-1.62-0.07-0.57-0.84-1.65-1.1-2.16-0.25-0.5-1.24-2.34-1.37-2.59s-0.56-1.28-1-1.91-0.9-1.99-1.28-2.62-0.74-1.09-1.5-2.1-0.78-0.56-1.35-0.68c-0.56-0.13-0.99-0.78-1.5-1.35-0.5-0.57-0.84-0.93-1.15-1.75-0.32-0.82-0.37-0.83-0.94-2.15-0.57-1.33-0.07-1.09,0.19-1.66,0.25-0.57,1.06-0.62,1.06-0.62l0.47-0.88s-0.38-1.59-0.31-2.09c0.06-0.51,0.36-0.56,1.06-0.75,0.69-0.19,1.56,0.75,1.94,0.75s1.59-0.5,1.9-0.82c0.32-0.31,0.32-1.08,0.32-1.71,0-0.64-0.62-1-1.13-1.13s-0.94-0.56-0.94-1.06c0-0.51,0.25-1.21,0.25-1.91,0-0.69,0-0.74-0.06-1.25-0.06-0.5-0.12-0.53-0.25-0.91-0.13-0.37,0.06-1.18,0.19-1.68,0.12-0.51,0.56-0.44,0.94-0.38,0.37,0.07,1.24,0.69,1.62,0.94s0.65,0.62,0.84,1,1,1.09,1.63,1.16c0.63,0.06,1.15-0.38,1.15-0.38s-0.09-0.52-0.34-1.09-0.81-1.44-1-1.81c-0.19-0.38-0.5-1.22-0.75-1.6s-0.44-0.5-0.44-0.75,0.69-2.09,0.69-2.41v-3.78c0-0.82,0.19-1.4,0.38-1.72,0.19-0.31,0.87-1.24,1.25-2.06s0.84-1.15,1.09-1.9c0.25-0.76,0.87-1.4,1.44-2.16s0.77-1,1.15-1.12c0.38-0.13,2.91,0.06,3.29,0.06,0.37,0,1.96-0.44,2.65-0.56,0.7-0.13,2.71-0.31,3.41-0.57,0.69-0.25,0.25-0.59,0.18-0.84-0.06-0.25-1.27-0.94-1.65-1.06-0.38-0.13-1.12-0.69-1.38-0.94-0.25-0.25-0.5-1.16-0.5-1.16s-0.59-2.96-0.65-3.28c-0.07-0.31-0.75-1.56-0.75-1.56s-0.13-5.18-0.13-5.63c0-0.44-0.68-2.02-1.37-2.34-0.7-0.32-0.91-0.99-0.91-1.5s0-0.96-0.12-1.59c-0.13-0.64-0.75-1.37-1-1.88-0.26-0.5,0.12-0.78,0.12-1.22s-0.12-1.18-0.5-1.5c-0.38-0.31-0.68-0.49-0.94-0.75-0.25-0.25-0.46-0.9-0.46-1.53s0.28-1,0.34-1.31c0.06-0.32,0.06-1.09-0.06-1.53-0.13-0.44-0.35-1.06-0.41-1.31-0.06-0.26-0.37-1.22-0.37-1.22s-0.5-0.44-0.69-0.44-0.94-0.19-0.94-0.19l-1.78-0.31s-1.69-0.44-1.81-0.69c-0.13-0.25-1.04-0.69-1.04-0.69l-1.56-0.59zm7.25,70.22c-0.88,0.44-1.12,0.43-1.06,1s0.37,1.09,0.63,1.47c0.25,0.38,0.44,0.93,0,1.44-0.45,0.5-1.45,0.52-1.19,1.15,0.25,0.63,0.49,1.06,0.75,1.31,0.25,0.26,0.81,0.9,0.94,1.41,0.12,0.51-0.01,1.06,0.31,1.56,0.31,0.51,0.31,0.69,0.69,0.69,0.37,0,0.59,0.32,0.65-0.5s-0.06-0.95,0-2.84c0.06-1.9,0-2.84,0.06-3.41,0.07-0.57,0.26-1.37,0-1.75-0.25-0.38-1.28-0.9-1.4-1.22-0.13-0.31-0.38-0.31-0.38-0.31zm58.91,12.47c-1.07,0.71-1.16,0.62-1.16,1.15,0,0.54-0.18,0.9,0.53,0.72,0.72-0.18,0.91-0.18,1-0.62,0.09-0.45-0.37-1.25-0.37-1.25zm-10.97,4.53c-0.63,0.45-1.08,0.2-0.81,1.09,0.27,0.9,0.44,1.16,1.15,1.25,0.72,0.09,0.73,0.1,2.07,0.1s2.31,0.06,3.03,0.06c0.71,0,0.99,0.36,1.43,0,0.45-0.36,0.63-0.07,0.54-0.78-0.09-0.72-1.24-0.9-2.22-0.81-0.98,0.08-1.52,0.34-3.13-0.19-1.6-0.54-2.06-0.72-2.06-0.72z\",\"name\":\"Kamchatka Krai\"},\"in\":{\"path\":\"m33.393,395.68,0.08929,5.2679,17.946-8.5714-1.3393-1.25-2.9464-1.25-1.5179-1.9643-2.4107,2.4107-4.1071-2.6786-1.875,1.0714,0.08929,5.8929-1.5179,1.0714z\",\"name\":\"Republic of Ingushetia\"},\"cc\":{\"path\":\"m33.482,401.04,1.0714,2.5,3.125,1.6964,3.4821,0.44642,2.1429-1.9643,2.1429,1.7857,2.5-1.5178-0.08929-1.6072,1.875-2.1428,2.8571,0.44642,3.8393-2.8571-0.625-1.9643-4.4643-0.53572,0.44643-2.7679z\",\"name\":\"Chechen Republic\"}}});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.usa.js",
    "content": "/** Add USA Map Data Points */\njQuery.fn.vectorMap('addMap', 'usa_en', {\"width\":959,\"height\":593,\"pathes\":{\"hi\":{\"path\":\"m244.66,512.25c-2.48,3.8 2.23,4.04 4.74,5.38 3.06,0.16 3.51,-4.28 2.66,-6.56 -2.72,-0.77 -5.01,-0.19 -7.41,1.19z m-9.31,3.97c-4.02,5.11 3.64,0.48 0.63,-0.09l-0.5,0.07 -0.14,0.02z m39.69,7.97c-0.62,2.09 1.91,6.73 4.39,6.2 2.41,-1.46 3.73,1.73 6.48,0.56 1.23,-1.48 -3.77,-3.2 -3.7,-6.08 -0.95,-3.8 -3.28,-3.2 -5.96,-1.28 -0.41,0.2 -0.81,0.4 -1.22,0.6z m19.94,10.03c3.58,0.95 7.91,2.99 11.25,0.47 -1.05,-1.63 -5.06,-0.59 -7.1,-0.86 -1.44,0.01 -3.54,-1.63 -4.15,0.39z m12.13,4.38c2.33,2.45 3.64,6.83 7.24,7.4 2.36,-0.69 6.84,-0.66 7.32,-3.43 -2.09,-2.51 -5.77,-3.35 -8.88,-4.29 -2.53,-1.2 -4.11,-3.25 -5.68,0.33z m-7.06,1c-0.29,3.69 5.55,3.98 3.67,0.55 -0.27,-1.25 -3.83,-1.74 -3.67,-0.55z m23.66,14.69c0.27,2.45 3.18,3.93 0.47,6.15 -0.65,2.42 -5.54,2.87 -2.52,5.53 2.36,1.46 2.01,4.85 2.92,7.14 -0.72,2.69 -1.43,6.78 1.72,8.06 2.8,2.95 4.5,-1.93 6.19,-3.68 1.27,-1.69 3.85,-4.1 5.94,-2.59 3.04,-0.81 6.3,-2.42 7.78,-5.22 -2.79,-1.31 -4.88,-3.19 -5.57,-6.29 -2.4,-5.33 -8.95,-6.26 -13.58,-8.98 -1.29,-0.52 -2.26,-1.62 -3.34,-0.11z\",\"name\":\"Hawaii\"},\"ak\":{\"path\":\"m107.84,436.56c-2.27,0.55 -4.87,0.32 -6.84,-0.34 -2.41,1.22 -5.63,4.03 -8.25,1.88 -3.1,0.93 -3.51,3.84 -5.22,5.97 -1.82,2.52 -4.21,3.65 -7.31,3.14 -2.5,-0.94 -5.49,-1.15 -7.5,0.98 2.03,4.34 6.39,8.13 5.82,13.23 -1.85,2.94 6.31,2.99 2.68,5.02 0.15,2.8 3.07,5.68 2.91,7.88 -2.35,2.21 -5.24,-0.38 -7.71,-1.06 -3.24,-0.64 -2.73,-3.35 -0.82,-5.22 -1.57,-1.51 -7.35,-1.81 -6.51,1.12 -2.01,0.04 -3.81,-1.66 -6.27,-0.77 -3.72,-0.44 -5.97,0.65 -2.94,4.05 3.68,1.45 1.06,4.72 1.17,7.57 0.76,2.63 3.66,4.89 6.67,4.17 3.2,-0.06 5.87,3.59 9.21,1.65 2.16,-1.3 5.33,-0.99 4.79,1.89 -2.53,2.07 -1.36,6.13 -2.78,8.75 -1.96,1.88 -4.53,1.59 -6.59,0.16 -1.52,1.37 -4.7,3.68 -6.28,2.22 0.72,-3.71 -4.77,-3.63 -5.51,-0.61 -1.21,3.97 -6.27,4.46 -8.31,7.63 -0.7,2.42 -1.55,6.7 1.74,6.3 1.26,1.11 -1.2,4.8 -2.77,5.52 1.62,2.19 2.65,4.59 2.72,7.34 1.71,1.55 6.35,1.98 7.5,-0.16 2.45,-0.95 1.79,4.1 2.08,5.97 2.47,2.95 -4.02,1.28 -1.61,4.56 -0.85,2.93 -1.76,5.02 2,2.72 2.76,-0.47 5.11,-0.69 5.66,2.09 2.59,-3.91 2.26,2.78 3.25,4.66 0.59,-0.75 1.3,-5.69 3.94,-3.06 -0.17,4.52 5.33,-0.45 5.78,-0.04 0.54,2.92 -1.63,4.24 -2.86,6.41 -1.51,2.24 -2.07,5.63 -4.21,7.17 -3.87,-0.42 -3.37,4.1 -5.5,5.02 -2.65,-0.72 -5.73,0.71 -8.44,1.41 -1.35,2.41 -3.61,4.2 -5.78,1.81 -2.56,0.05 -5.63,0.68 -7.63,2.33 -2.48,2.43 -6.32,3.11 -9.66,2.29 -2.78,-1.91 -7.11,3.41 -3.11,2.31 2.5,-1.91 4.66,0.64 7.25,0.63 2.21,-1.15 4.17,-2.75 6.84,-2.06 2.32,-3.35 5.1,-0.32 7.92,-1.16 2.31,-0.39 7.01,-3.91 5.26,0.66 0.09,-2.91 3.42,-2.73 5.54,-2.04 4.21,0.96 0.29,-3.16 2.08,-3.43 3.47,-2.05 7.52,-2.41 11.2,-3.72 5.48,-3.19 11.62,-5.7 16.21,-10.1 4.27,-2.97 -2.78,-3.48 -1.21,-6.32 1.68,-2.43 4.58,-3.81 7.47,-4.5 1.5,-3.07 3.53,-6.11 5.88,-8.52 2.49,-1.32 4.83,-3.39 7.83,-2.32 2.67,0.71 3.74,5.32 -0.52,3.66 -1.27,-1.88 -5.56,-0.09 -5.25,2.41 -0.21,2.44 -2.56,4.22 -3.06,6.66 4.79,0.85 0.24,3.54 -1.38,3.8 1.67,1.91 5.66,0.6 7.57,-1.14 1.25,-1.85 3.43,-3.8 5.41,-4.22 1.81,2.8 5.1,-1.16 5.74,2.72 0.71,2.78 6.02,-4.86 3.34,-3.1 -3.03,3.11 -3.78,2.86 -1.94,-1.24 1.43,-4.85 -1.76,6.17 -1.45,0.81 -0.81,-3.19 -0.93,-6.03 3.05,-6.4 2.7,-0.86 5.37,-0.87 5.79,2.52 0.42,3.48 3.8,2.84 5.95,4.76 2.41,2.2 4.76,1.95 7.8,1.78 4.34,-0.47 8.01,4.04 12.28,3.17 2.49,-0.42 5.1,-5.2 4.29,-0.23 -2.26,2.83 -0.02,4.12 2.5,5.41 3.13,1.35 5.87,3.14 7.94,5.85 1.31,3.02 6.05,0.28 6.18,2.43 -3.83,1.25 -1.23,3.54 0.21,5.47 1.81,1.95 0.33,5.72 3.64,5.82 1.14,1.28 3.49,7.44 4.01,5.38 -0.35,-2.32 -0.7,-7.86 1.61,-3.76 0.37,1.42 1.04,8.7 2.07,4.74 1.07,-4.88 3.18,0.18 2.22,2.93 3.33,1.69 -1.23,3.33 0.69,4.88 0.69,-3.24 1.31,-0.36 2.16,1.56 1.05,1 1.54,3.94 3.13,3.72 -1.68,-1.72 -2.94,-6.23 0.4,-3 2.42,2.79 4.05,2.12 2.74,-1.66 -2.65,-2.66 0.28,-4.96 2.58,-2.29 3.12,-0.05 2.84,5.21 5.28,4.53 3.31,-3.17 1.5,-7.87 0.69,-11.7 -3.3,-1.55 -7.04,-2.54 -10.22,-4.06 -1.5,-5.33 -6.29,-8.69 -8.4,-13.77 -0.44,-3.33 -4.71,-2.62 -5.75,-5.23 -2.32,-1.72 -2.7,-4.4 -4.56,-6.35 -1.65,-1.53 -5.22,0.95 -5.51,2.94 0.59,3.09 -3.23,3.04 -5.06,4.72 0.05,-4.27 -4.3,-6.15 -6.7,-9.1 -1.33,-1.99 -1.32,-5.36 -4.45,-2.34 -2.37,0.24 -6.38,-0.31 -5.34,-3.62 0.1,-27.7 0.2,-55.4 0.31,-83.09 -2.75,-1.88 -5.88,-4.17 -9.15,-4.4 -2.52,1.72 -5.07,1.09 -7.39,-0.62 -2.72,0.23 -5.12,-0.65 -7.7,-2.89 -3.08,-2.74 -8.58,0.17 -10.98,-3.65 1.13,-3.56 -3.22,-4.83 -5,-2.09 -2.09,0.26 -0.65,-4.31 -3.64,-4.93 -2.57,-2.85 -4.01,-1.28 -5.86,1.21z M36.38,480.63c-0.67,3.11 4.27,1.31 4.72,4.66 0.24,3.82 5.37,3.9 2.34,-0.08 -0.1,-3.22 -3.92,-1.83 -5.06,-4.43 -0.76,-2.02 -0.9,-1.86 -2,-0.16z m-17.16,23.16c2.57,4.06 1.45,1.37 0.13,-1.28 -0.36,0.01 0,1 -0.13,1.28z m21.84,14.81c1.27,1.79 4.99,5.58 6.22,2.03 2.26,-3.3 -3.27,-2.89 -5.23,-3.68 -1.83,-0.9 -0.88,0.54 -0.99,1.65z m91.72,18.78c0.06,3.21 2.81,-1.98 0,0z m-31.47,14.69c-3.2,2.91 -7.24,4.67 -10.56,7.38 0.22,2.75 0.99,7.64 4.67,5.15 2.5,-1.44 4.98,-2.9 7.45,-4.37 -1.84,-3.31 -0.81,-3.15 -4.55,-3.48 -4.15,0.09 1.06,-3.73 2.64,-1.62 3.74,-1.04 3.95,-2.36 1.5,-3.66 0.7,-1.08 -1,0.61 -1.16,0.59z M55.75,570.75c1.42,2.83 3.53,-1.99 0,0z m-35.78,0.34c0.53,2.46 -4.04,4.84 1.05,3.59 4.2,0.47 3.46,-4.35 0.01,-3.84 -0.35,0.08 -0.7,0.16 -1.06,0.24z m62.19,0.69c1.57,2.91 1.31,-2.03 0,0z M58.63,573.13c3.23,0.49 0.99,-3.05 0,0z m-49,0.09c-4.84,2.56 -0.44,1.81 2.29,0.58 2.89,0.16 5.05,-0.48 0.84,-1.46 -1.04,0.29 -2.08,0.58 -3.13,0.88z m7.25,1.38c1.28,0.21 -2.23,-0.59 0,0z\",\"name\":\"Alaska\"},\"fl\":{\"path\":\"m748.38,439.94c1.69,2.92 1.5,6.12 1.16,9.34 -4.12,0.54 -2.15,-4.69 -5.56,-3.99 -6.18,-0.07 -12.34,1.13 -18.54,1.19 -10.09,0.29 -20.37,2.14 -30.33,0.64 -2.57,-1.57 -2.84,-6.15 -6.5,-5.33 -9.12,-0.12 -18.18,1.79 -27.26,2.55 -5.82,0.63 -11.62,1.37 -17.43,2.12 -1.42,3.25 2.6,4.37 4.06,6.34 0.8,2.28 -1.56,8.42 2.19,7.1 4.11,-1.2 8.08,-2.93 12.48,-2.72 3.34,-0.82 6.63,-0.73 9.89,0.45 4.09,0.8 7.77,3.09 11.41,4.98 1.77,1.94 5.5,1.87 5.97,5 -0.14,3.27 4.32,-0.94 6.5,0.53 3.19,-0.8 5.24,-3.68 7.69,-5.5 4.86,1.69 0.62,-2.9 3.27,-3.97 3.13,-0.83 6.62,-1.39 9.35,0.79 3.04,0.57 5.43,2 6.57,4.99 3.68,0.02 2.88,4.13 5.48,5.3 2.96,0.49 2.98,4.52 6.3,4.3 2.91,0.36 5.45,1.15 5.84,4.45 2.05,2.11 3.92,4.26 3.09,7.41 0.18,3.68 0.12,7.33 -1.44,10.75 0.39,3.68 1.37,7.94 3.28,10.78 2.25,-3.46 0.17,-3.87 -1.74,-6.03 2.19,-1.76 4.86,-0.22 7.3,0.16 0.82,3.15 -2.16,5.6 -3.48,8.19 -3.3,2.21 1.65,4.09 2.73,6.3 3.11,3.34 4.35,7.94 7.53,11.26 0.78,2.29 2.51,7.47 4.63,3.09 2.54,-0.24 3.88,3.44 5.28,5.41 -0.02,2.26 1.93,7.04 3.59,6.44 2.88,-0.8 6.04,0.65 8.28,2.59 2.56,3.3 4.58,6.98 4.56,11.27 1.37,2.73 4.55,0.44 5.81,-1.14 3.74,0.45 7.26,-1.25 9.22,-4.47 -1.01,-2.36 -0.57,-4.83 -0.32,-7.17 -0.04,-2.18 4.33,-3.19 2.25,-6.51 -0.98,-6.33 -0.19,-12.96 -1.87,-19.25 -2.46,-6.93 -7.54,-12.74 -10.4,-19.56 -1.51,-2.41 -4.24,-3.92 -4.62,-7.04 -0.94,-2.28 -2.67,-4.95 -0.07,-6.71 -0.39,-3.56 -4.86,-5.42 -6.84,-8.41 -5.38,-5.57 -8.29,-12.94 -12.35,-19.44 -2.15,-5.53 -4.29,-11.07 -5.91,-16.78 -3.43,0.07 -7.3,-1.03 -10.46,-0.35l-0.34,0.37 -0.26,0.29z m52.91,109.22c-1.9,4.58 0.72,0.38 0.66,-1.91 -0.22,0.64 -0.44,1.27 -0.66,1.91z m-4.69,9.91c2.56,-1.97 3.68,-6.84 1.04,-1.68 -0.35,0.56 -0.69,1.12 -1.04,1.68z m-2.25,2.22c1.46,-1.22 2.04,-2.07 0.18,-0.18l-0.18,0.18z m-5.72,4.16c-5.23,3.69 4.03,-2.14 0.33,-0.19l-0.33,0.19z m-10.72,3.22c-3.41,3.16 5.71,-0.32 4.1,-0.81 -1.8,-0.56 -2.56,-0.71 -4.1,0.81z m-4.59,3.16c0.08,0.16 0.4,-0.3 0,0z\",\"name\":\"Florida\"},\"nh\":{\"path\":\"m862.56,94c-1.4,-0.41 -3.87,-0.72 -3.05,3 0.22,3.63 -0.73,7.84 2.23,10.59 0.33,2.78 0.08,5.36 -2.17,7.29 -0.19,2.83 -5.98,2.58 -3.35,5.32 1.16,7.35 -0.56,15.03 -0.62,22.51 1.2,1.95 0.98,4.39 0.76,6.75 -1.07,3.79 4.84,-0.05 6.89,0.06 3.93,-1.29 8.46,-1.74 12.04,-3.54 0.77,-3.1 4.37,-2.75 5.94,-4.96 2.59,-3.52 -3.01,-2.73 -2,-6.59 -3.83,0.01 -4.27,-2.46 -4.66,-5.62 -3.84,-11.98 -7.32,-24.45 -11.49,-36.1 -0.18,0.43 -0.35,0.85 -0.53,1.28z\",\"name\":\"New Hampshire\"},\"mi\":{\"path\":\"M697.86,177.24L694.63,168.99L692.36,159.94L689.94,156.71L687.35,154.93L685.74,156.06L681.86,157.84L679.92,162.85L677.17,166.57L676.04,167.21L674.58,166.57C674.58,166.57 671.99,165.11 672.16,164.47C672.32,163.82 672.64,159.45 672.64,159.45L676.04,158.16L676.84,154.77L677.49,152.18L679.92,150.56L679.59,140.54L677.98,138.28L676.68,137.47L675.87,135.37L676.68,134.56L678.3,134.88L678.46,133.27L676.04,131L674.74,128.42L672.16,128.42L667.63,126.96L662.13,123.57L659.38,123.57L658.74,124.21L657.77,123.73L654.7,121.46L651.79,123.24L648.88,125.51L649.2,129.06L650.17,129.39L652.27,129.87L652.76,130.68L650.17,131.49L647.58,131.81L646.13,133.59L645.81,135.69L646.13,137.31L646.45,142.8L642.9,144.9L642.25,144.74L642.25,140.54L643.54,138.12L644.19,135.69L643.38,134.88L641.44,135.69L640.47,139.89L637.72,141.02L635.94,142.96L635.78,143.93L636.43,144.74L635.78,147.33L633.52,147.81L633.52,148.95L634.33,151.37L633.2,157.51L631.58,161.56L632.23,166.24L632.71,167.38L631.9,169.8L631.58,170.61L631.26,173.36L634.81,179.34L637.72,185.8L639.18,190.65L638.37,195.34L637.4,201.32L634.97,206.5L634.65,209.25L631.39,212.33L635.8,212.17L657.22,209.91L664.5,208.92L664.59,210.58L671.45,209.37L681.74,207.87L685.6,207.41L685.74,206.82L685.9,205.37L688,201.65L690,199.91L689.78,194.86L691.37,193.26L692.46,192.92L692.69,189.36L694.22,186.33L695.27,186.94L695.44,187.58L696.24,187.74L698.18,186.77L697.86,177.24z M581.62,82.06L583.45,80L585.62,79.2L590.99,75.31L593.28,74.74L593.74,75.2L588.59,80.34L585.28,82.29L583.22,83.2L581.62,82.06z M667.79,114.19L668.44,116.69L671.67,116.85L672.97,115.64C672.97,115.64 672.89,114.19 672.56,114.03C672.24,113.86 670.95,112.17 670.95,112.17L668.76,112.41L667.15,112.57L666.82,113.7L667.79,114.19z M567.49,111.21L568.21,110.63L570.96,109.82L574.51,107.56L574.51,106.59L575.16,105.94L581.14,104.97L583.57,103.03L587.93,100.93L588.09,99.64L590.03,96.73L591.81,95.92L593.1,94.14L595.37,91.88L599.73,89.46L604.42,88.97L605.55,90.1L605.23,91.07L601.51,92.04L600.06,95.11L597.79,95.92L597.31,98.35L594.88,101.58L594.56,104.17L595.37,104.65L596.34,103.52L599.89,100.61L601.19,101.9L603.45,101.9L606.68,102.87L608.14,104L609.59,107.08L612.34,109.82L616.22,109.66L617.68,108.69L619.29,109.99L620.91,110.47L622.2,109.66L623.33,109.66L624.95,108.69L628.99,105.14L632.39,104L639.02,103.68L643.54,101.74L646.13,100.45L647.58,100.61L647.58,106.27L648.07,106.59L650.98,107.4L652.92,106.91L659.06,105.3L660.19,104.17L661.65,104.65L661.65,111.6L664.88,114.67L666.17,115.32L667.47,116.29L666.17,116.61L665.37,116.29L661.65,115.81L659.55,116.45L657.28,116.29L654.05,117.75L652.27,117.75L646.45,116.45L641.28,116.61L639.34,119.2L632.39,119.85L629.96,120.66L628.83,123.73L627.54,124.86L627.05,124.7L625.6,123.08L621.07,125.51L620.42,125.51L619.29,123.89L618.48,124.05L616.54,128.42L615.57,132.46L612.39,139.46L611.22,138.42L609.85,137.39L607.9,127.1L604.36,125.73L602.31,123.45L590.19,120.7L587.33,119.67L579.1,117.5L571.21,116.36L567.49,111.21z\",\"name\":\"Michigan\"},\"vt\":{\"path\":\"m833.16,106.59c0.19,6 4.65,11.21 3.72,17.28 -2.48,4.23 4.52,7.29 2.22,11.58 0.9,1.59 4.66,1.96 4.06,5.25 1.08,4.21 2.86,8.34 1.84,12.76 3.35,-0.51 7.06,-1.17 10.13,-1.97 -0.21,-2.13 1.51,-5.75 -0.53,-7.81 0.2,-7.64 1.01,-15.26 1.13,-22.91 -3.25,-2.41 0.32,-3.79 2.12,-5.18 1.96,-2.28 3.9,-5.07 2.6,-8.1 -2.62,-1.63 -1.02,-5.94 -2.39,-7.22 -8.3,2.1 -16.59,4.21 -24.89,6.31z\",\"name\":\"Vermont\"},\"me\":{\"path\":\"m889.88,40.22c-2.16,1.31 -3.69,2.74 -4.84,4.69 -2.29,0.6 -4.99,-1.37 -4.88,-3.94 -2.97,-0.82 -3.33,3.68 -4.37,5.71 -1.09,4.29 -3.27,8.39 -3.97,12.69 -0.06,3.04 1,6.63 -1.35,9.09 0.08,2.92 -0.75,6.18 2,8.16 -1.37,5.7 -6.23,10.36 -5.41,16.56 -4.27,-2.21 -1.74,2.47 -1.09,4.73 3.51,11.08 7.19,22.16 10.25,33.35 0.21,3.01 5.81,1.35 4.53,5.7 2.9,2 2.06,-3.92 2.66,-5.87 -1.01,-3.29 2.7,-4.63 0.66,-7.62 0.94,-1.05 2.92,-5.9 4.61,-3.46 2.03,1.03 5.28,-1.89 6.74,-3.19 -0.98,-4.02 4.21,-1.75 4.73,-5.32 -1.11,-2.61 0.74,-5.45 -0.57,-7.44 -2.42,-1.59 3.53,-4.63 3.31,-0.78 2.27,0.48 2.15,2.8 3.66,3.93 1.94,-2.82 -2.15,-3.81 0.35,-6.03 2.43,-0.81 3.1,-3.96 6,-3.31 -0.17,1.46 1.03,3.34 2.26,1.38 2.94,-2.9 5.24,-7.08 9.37,-8.34 1.17,-2.61 3.34,-5.74 0.71,-8.24 -0.55,-1.64 -3.68,-4.84 -4.15,-2.58 -0.75,2.6 -4.66,-0.65 -4.92,-2.22 0.1,-2.8 0.29,-7.17 -3.8,-5.81 -3.96,1.36 -3.64,-3.04 -4.69,-5.61C905.22,58.3 902.75,50.15 900.28,42c-2.86,-1.25 -5.71,-2.92 -8.81,-3.38 -0.53,0.53 -1.06,1.06 -1.59,1.59z m20.47,61c-2.81,1.7 1.87,5.16 1.13,1.22 1.48,-0.9 0.13,-2.4 -1.13,-1.22z m-7.81,7.81c3.16,6.67 2.63,-3.59 0,0z\",\"name\":\"Maine\"},\"ri\":{\"path\":\"m871,164.28c1.15,4.66 2.29,9.31 3.44,13.97 2.56,-0.49 4.66,-2.29 5.84,-4.56 4.17,0.76 4,-2.64 1.51,-4.97 -1.79,-1.94 -3.16,-5.31 -5.74,-5.92 -1.68,0.49 -3.37,0.99 -5.05,1.48z\",\"name\":\"Rhode Island\"},\"ny\":{\"path\":\"m825.56,108.66c-2.7,1.12 -5.45,1.68 -8.33,1.43 -5.07,0.72 -10.17,2.73 -12.92,7.31 -2.84,3.43 -4.89,7.49 -7.18,11.2 -1.65,2.36 -5.82,3.73 -5.55,6.84 -0.17,3.56 5.77,0.73 4.43,4.38 -2.69,2.3 0.8,4.23 0.56,6.59 0.5,3.47 -4.26,1.99 -5.36,4 -1.62,2.71 -3.35,6.62 -7.22,6.05 -3.04,-0.43 -5.35,2.05 -7.98,2.63 -2.5,-0.75 -4.7,-2.05 -7.59,-1.31 -5.31,0.21 -10.62,1.98 -15.23,4.53 -0.29,1.77 0.61,6.25 3.17,6.14 1.55,2.48 2.09,4.96 -0.63,6.72 -1.51,1.76 -1.8,4.25 -4.16,5.3 -1.93,1.14 -2.68,3.51 -4.8,4.54 0.33,3.07 -0.22,7.29 4.08,5.12 22.14,-4.26 44.26,-8.68 66.23,-13.74 0.98,3.85 5.67,1.32 6.44,4 0.64,2.93 1.36,7.4 5.33,6.88 3.14,1.9 6.9,3.68 10.69,4.22 2.71,0.47 7.18,1.43 6.44,5.06 -0.33,1.97 -1.62,7.56 1.97,5.93 5.3,-1.65 10.96,-2.84 15.06,-6.85 3.23,-2.49 6.76,-4.64 9.35,-7.86 -2.99,-2.44 -4.65,0.46 -6.81,2.42 -2.91,1.56 -6.01,3.51 -9.16,4.32 -2.6,-0.63 -4.83,-0.86 -6.18,2.07 -1.03,2.04 -4.86,2.98 -3.98,-0.15 4.26,-1.87 -2.17,-3.97 -0.33,-6.21 1.19,-3.13 0.56,-6.87 0.42,-10.21 -1.43,-7.38 -3.69,-14.76 -2.54,-22.36 -0.08,-4.46 1.55,-8.97 -0.51,-13.21 -1.22,-2.56 -0.47,-6.83 -4.05,-7.34 -2.99,-0.66 0.75,-4.31 -1.57,-6.2 -1.7,-2.43 -3.17,-4.91 -1.54,-7.81 0.38,-5.77 -3.83,-10.57 -3.55,-16.35 -2.32,0.65 -4.65,1.29 -6.97,1.94z\",\"name\":\"New York\"},\"pa\":{\"path\":\"m798.88,181.63c-17.5,3.38 -34.87,7.42 -52.47,10.28 -0.61,-2 0.48,-8.42 -2.41,-4.31 -2.18,2.73 -5.48,3.74 -8.09,5.97 1.52,9.75 2.63,19.57 5.44,29.05 1.14,6.09 2.27,12.17 3.41,18.26 8.85,-1.42 17.79,-2.25 26.51,-4.41 16.39,-3.45 33.03,-6.46 49.33,-9.87 2.48,-3.07 8.03,-1.69 8.97,-6.19 0.64,-2.36 4.86,-3.99 4.33,-5.9 -2.3,-1.89 -5.94,-2.77 -6.39,-6.13 -3.14,1.09 -4.42,-3.94 -3.12,-5.32 3.86,-1.1 -0.49,-3.68 0.55,-5.96 2.52,-1.88 1.12,-5.15 2.81,-7.07 3.87,-2.7 -2.98,-1.1 -3.72,-3.99 -1.35,-2.18 -0.28,-7.24 -4.16,-5.92 -2.34,-1.13 -3.87,-3.75 -7.09,-1.7 -4.64,1.07 -9.28,2.15 -13.92,3.22z\",\"name\":\"Pennsylvania\"},\"nj\":{\"path\":\"m827.84,191.34c1.03,2.99 -1.82,4.8 -2.06,7.47 2.86,1.63 0.49,4.87 -0.92,5.73 -0.41,3.86 4.01,1.68 4.16,5.14 1.37,2.19 4.72,3.02 6.26,4.94 -0.15,2.61 -3.85,3.5 -4.69,6.06 -0.26,3.07 -4.09,3.19 -4.18,5.96 -0.99,2.38 -0.74,5.09 1.7,6.47 2.85,2.76 6.86,3.99 10.73,4.38 0.48,1.55 -1.84,7.18 1.1,3.59 1.5,-2.42 0.59,-5.95 3.11,-8.01 2.5,-4.08 5.03,-8.84 4.88,-13.61 -1.35,-4.07 0.8,-9.01 -1.81,-12.82 -1.1,1.32 -6.17,1.23 -4.13,-0.8 2.39,-1.39 3.37,-3.62 2.39,-6.31 0.21,-2.31 1.58,-5.42 -1.69,-6.19 -4.35,-1.15 -8.82,-2.13 -12.88,-4.26 -0.66,0.75 -1.31,1.5 -1.97,2.25z\",\"name\":\"New Jersey\"},\"de\":{\"path\":\"m824.88,225.34c-3.72,0.25 -3.47,3.52 -1.91,6.13 3.35,6.89 3.86,14.58 6.03,21.81 3.45,0.11 6.81,-0.49 10.16,-1.25 -1.2,-2.17 -0.68,-6.38 -3.32,-6.38 -2.9,-1.2 -4.17,-3.69 -4.9,-6.58 -0.91,-3.11 -3.62,-4.96 -5.48,-7.35 -1.85,-1.82 0.94,-5.5 -0.26,-6.47l-0.33,0.09z\",\"name\":\"Delaware\"},\"md\":{\"path\":\"m813.59,229.19c-17.31,3.18 -34.53,6.83 -51.78,10.28 0.74,3.02 1.31,6.08 1.78,9.16 2.14,-1.9 3.29,-5.35 6.59,-5.34 2.14,-1.85 2.67,-5.25 5.77,-3.55 3.46,0.18 5.43,-5.35 9.01,-3.85 2.63,1.63 5.66,2.79 7.34,5.59 4.19,0.11 3.68,3.73 5.74,4.96 2.73,1.11 5.02,1.18 6.38,-0.53 4.29,1.38 2.24,3.74 1.44,6.9 0.09,2.97 -3.7,4.92 -1.66,7.97 3.1,1.31 6.4,1.2 9.63,1.4 2.17,1.58 6.83,1.03 3.79,-2.1 0.41,-2.74 -3.08,-3.35 -3.32,-6.04 -1.7,-2.67 -1.42,-5.47 -0.36,-8.32 1.68,-2.42 -2.83,-3.82 -0.4,-5.41 1.25,-1.53 0.43,-4.16 2.98,-4.7 1.62,-3.02 5.1,-1.45 2.35,1.02 -2.54,2.98 -0.81,4.5 0.57,6.3 1.41,3.55 -0.68,5.07 -1.53,7.31 -0.22,-0.81 3.62,-1.01 3.22,1.79 -3.15,1.64 -1.45,6.12 1.09,7.31 2.98,0.99 5.58,-1.8 6.98,2.14 1.5,3.75 4.92,0.81 7.41,-0.02 2.74,-1.21 3.47,-4.93 2.78,-7.7 -1.13,-1.58 -4.82,0.92 -7.13,0.4 -3.86,1.26 -4.9,-1.25 -5.28,-4.64 -1.68,-5.97 -2.14,-12.33 -5.16,-17.9 -0.04,-4.32 -2.71,-4.2 -6.07,-2.91 -0.73,0.16 -1.45,0.31 -2.18,0.47z m10.94,32.59c1.32,0.99 0.59,4.97 2.06,4.63 -0.48,-1.31 -0.36,-4.99 -2.06,-4.63z\",\"name\":\"Maryland\"},\"va\":{\"path\":\"m792.88,242.88c-0.16,1.46 0.24,5.89 -2.4,4.29 -2.58,-0.67 -6.42,-3.2 -8.23,-2.73 0.7,3.72 -1.46,6.77 -2.99,9.94 -3.05,1.14 -2.29,5.83 -5.84,5.58 -1.62,1.74 -1.47,5.31 -2.45,7.73 -3.09,1.14 -5.37,-0.48 -7.28,-1.75 0.11,6.5 -3.72,11.95 -5.91,17.84 -1.69,1.73 1.19,3.8 -0.74,5.77 -1.35,3.56 -3.79,2.72 -6.19,4.19 -2.72,1.1 -4.9,0.5 -5.4,4.61 -2.07,1.14 -4.83,2.63 -6.91,0.47 -2.38,1.51 -5.02,3.21 -7.81,1.6 -2.69,-0.01 -3.9,-6.55 -6.07,-2.94 -3.27,4.09 -7.89,7.48 -10.21,12.09 0.43,3.25 -4.46,3.32 -6.42,5.15 -4.27,1.95 3.62,-0.11 5.16,-0.07 5.56,-0.79 11.14,-1.37 16.76,-1.36 1.95,-2.65 4.98,-1.81 7.77,-1.65 7.86,-0.32 15.65,-2.12 23.48,-2.99 12.85,-1.4 25.44,-4.27 38.04,-7.05 11.65,-2.52 23.3,-5.03 34.96,-7.55 -1.64,-2.66 -2.75,-6.67 -6.42,-4.14 -1.99,2.03 -6.61,-1.82 -2.7,-2.48 2.65,-1.62 -1.75,-4.07 -1.8,-5.97 -2.73,-0.62 -2.88,-5.12 0.54,-3.6 -0.17,-1.37 -1.24,-3.62 -1.62,-5.68 1.47,-3.51 -0.84,-4.97 -3.72,-5.16 0.31,-3.42 -2.9,-2.93 -5.22,-3.97 -3.33,0.21 -7.06,-0.25 -9.91,-1.66 -1.22,-2.41 -0.91,-5.12 1.25,-6.88 1.39,-2.83 -0.28,-5.7 -3.3,-6.27 -2.65,-0.83 -6.97,-0.29 -5.73,-4.3 -0.83,-0.3 -2.05,-1.06 -2.69,-1.06z m39.16,21.59c0.44,4.71 -3.15,8.7 -2.62,13.48 -0.34,4.11 2.64,5.72 3.48,0.92 1.71,-3.04 -0.23,-6.47 0.8,-9.73 0.4,-2.53 3.66,-3.88 3.52,-6.73 -1.73,0.69 -3.46,1.38 -5.19,2.06z\",\"name\":\"Virginia\"},\"wv\":{\"path\":\"m739.75,223.25c-1.6,2.23 1.3,5.02 0.25,7.75 -0.18,4.04 -0.63,8.11 -0.84,12.13 -1.94,3.58 -4.43,7.35 -8.16,9.13 -3.15,-1.33 -3.92,3.25 -5.76,4.98 -1.56,2.28 2.64,4.93 -0.3,6.69 -2.57,3.58 -2.6,-4.8 -4.46,-0.71 -1.32,2.59 0.02,6.02 -1.35,8.33 -1.82,1.54 -0.53,5.19 -4.16,4.81 -2.23,0.13 -1.45,6.19 1,6.81 2.24,1.47 2.49,4.74 5.5,5.92 1.92,1.96 2.28,5.18 5.39,6.05 1.64,2.19 3.07,4.96 6.25,4.88 2.63,0.5 4.77,-3.86 7.22,-1.35 1.49,0.81 3.93,-0.57 4.58,-1.83 0.43,-4.57 3.42,-2.71 6.03,-4.39 2.39,-0.94 4.82,-0.98 5.62,-4.44 -1.26,-2.59 0.3,-5 1.56,-7.64 2.23,-4.81 4.72,-9.61 4.67,-15.05 2.65,-2.31 3.72,3.56 7.05,1.41 1.64,-1.77 1.12,-5.67 2.6,-7.59 3.47,0.39 2.97,-3.96 5.76,-5.21 2.29,-3.11 3.52,-6.8 3.06,-10.7 1.06,-1.29 5.1,1.62 7.23,2.15 3.3,3.35 4.34,-1.98 2.85,-4.05 -2,-2.28 -5.12,-3.7 -7.62,-4.75 -3.31,0.98 -5.44,5.47 -9.38,3.97 -1.86,-0.23 -2.38,3.98 -4.86,3.88 -2.89,0.71 -3.79,4.38 -6.03,6.22 -1.1,-0.06 -0.99,-4.82 -1.62,-6.64 -0.01,-3.93 -1.77,-5.3 -5.48,-3.82 -4.21,0.6 -8.41,1.23 -12.61,1.91 -1.17,-6.45 -2.29,-12.92 -3.44,-19.38l-0.35,0.35 -0.18,0.18z\",\"name\":\"West Virginia\"},\"oh\":{\"path\":\"m729.5,197.78c-4.85,2.06 -7.38,6.9 -11.47,9.97 -4.08,0.86 -8.09,1.75 -11.72,3.88 -3.41,1.61 -4.39,-4.09 -7.67,-2.63 -3.13,1.35 -5.49,-1.1 -8.11,-2.41 -8.6,1.15 -17.15,2.64 -25.66,4.38 1.45,17.83 4.12,35.53 5.87,53.33 -0.69,3.82 4.06,2.26 6.23,1.48 2.74,0.41 4.83,2.16 5.48,4.94 1.26,2.48 5.82,-0.87 6.96,2.54 2.19,1.53 4.46,-2.33 7.03,-0.58 2.52,0.04 5.62,1.51 6.84,-1.56 1.49,-0.55 5.37,-3.85 5.41,-0.71 0.38,2.53 3.82,3.57 5.77,4.7 3.53,0.63 2.32,-3.91 4.21,-5.51 -0.11,-2.74 0.21,-5.73 1.39,-8.13 2.53,-2.81 3.8,4.53 4.98,0.39 -2.02,-2.27 -0.99,-5.41 0.93,-7.41 1.07,-4.06 4.05,-2.41 6.5,-4.39 2.93,-3.16 6.59,-6.57 5.97,-11.27 0.44,-4.71 1.18,-9.75 -0.53,-14.23 1.47,-2.48 2.58,-4.29 0.96,-7.33 -2.04,-7.53 -2.56,-15.37 -3.93,-23.04 -1.81,1.2 -3.63,2.4 -5.44,3.59z\",\"name\":\"Ohio\"},\"in\":{\"path\":\"m658.66,210.31c-9.12,0.93 -18.35,1.98 -27.41,2.68 -2.6,0.39 -4.21,5.08 -6.89,2.98 -3.83,-2.84 -2.64,1.83 -2.41,4.45 1.1,14.81 2.73,29.61 3.44,44.42 -0.76,3.69 -1.39,7.89 1.36,10.91 0.1,2.99 1.4,6.28 -1.14,8.65 -1.83,2.73 -2.55,6.09 -5.02,8.42 0.09,2.08 -2.02,8.2 1.63,5.16 3.49,-0.6 7.25,-1.53 10.69,-1.34 2.36,4.08 2.67,-0.62 5.26,-1.29 2.03,-2.62 4.78,2.05 5.34,1.04 -1.26,-3.41 3.05,-3.77 5.1,-5.22 1.09,0.63 6.05,3.38 5.3,-0.64 -0.46,-2.47 2.02,-4.71 3.65,-6.34 3.11,-1.39 4.33,-3.9 4.16,-7.23 1.83,-1 4.93,-1.01 6.97,-2.47 4.23,-1.03 0.26,-3.48 1.22,-5.92 -0.83,-12.56 -2.8,-25.13 -4.08,-37.69 -0.85,-6.99 -1.44,-14.01 -2.14,-21.02 -1.68,0.16 -3.35,0.31 -5.03,0.47z\",\"name\":\"Indiana\"},\"il\":{\"path\":\"m569.75,200.44c-0.29,2.58 4.2,1.83 3.73,5.07 2.07,2.09 5.71,4.21 4.38,7.77 -0.31,3.04 -2.61,5.44 -3.08,8.4 -2.38,2.71 -6.06,2.98 -9.31,3.94 -1.61,2.47 -1.05,4.91 1.28,6.47 0.63,3.25 -1.08,5.07 -2.74,7.38 1.41,3.63 -2.39,2.86 -3.56,5.02 1.08,3.12 -2.11,3.8 -2.53,6.64 0.19,3.95 1.33,8.21 3.28,11.58 3.68,3.96 7.38,7.9 12.21,10.47 -0.61,2.88 -0.64,6.7 3.43,5.71 2.05,0 6.18,0.38 6.26,2.68 -0.19,4.39 -3.6,8.24 -3.28,12.53 1.6,3.83 5.33,6.26 8.59,8.42 3.37,-0.29 5.36,1.27 5.9,4.6 1.01,2.64 3.84,4.73 1.73,7.67 0.55,1.74 2.58,7.7 4.31,4.05 1.21,-2.98 5.41,-4.78 8.07,-2.46 3.1,2.46 5.94,0.47 3.13,-2.8 -0.98,-3.39 2.61,-4.96 5.37,-5.33 1.01,-1.55 -1.6,-4.46 1.4,-5.97 1.8,-3.97 -0.56,-9.39 3.32,-12.49 1.43,-2.97 3.23,-5.97 4.4,-8.97 0.13,-3 -0.7,-5.7 -2.34,-8.16 -0.45,-4.59 1.31,-9.09 0.02,-13.65 -1.16,-15 -2.22,-30.05 -3.67,-45.01 -1.02,-3.1 -1.61,-6.46 -4.04,-8.77 -2.27,-1.83 -0.51,-5.93 -1.97,-7.32 -14.76,0.83 -29.52,1.67 -44.28,2.5z\",\"name\":\"Illinois\"},\"ct\":{\"path\":\"m865.78,165.41c-6.91,1.54 -13.81,3.08 -20.72,4.63 2.17,6.2 2.74,12.83 2.44,19.34 -2.62,4.3 2.61,2.38 3.97,-0.21 2.09,-1.89 4.19,-3.71 5.99,-5.88 2.06,1.35 4.78,-1.86 7.44,-1.46 2.98,-0.68 5.69,-2.24 8.56,-3.26 -1.15,-4.67 -2.29,-9.33 -3.44,-14 -1.42,0.28 -2.83,0.56 -4.25,0.84z\",\"name\":\"Connecticut\"},\"wi\":{\"path\":\"m559.53,104.97c-4.06,2.75 -8.71,4.92 -13.53,5.84 -2.88,-1.08 -5.54,-1.12 -5.57,2.68 -0.48,3.34 0.51,7.03 -0.47,10.17 -2.02,3.26 -6.91,4.03 -7.36,8.38 -2.63,2.78 2.21,3.06 2.23,5.53 1.79,2.9 -2.13,4.74 -1.33,7.65 0.29,2.93 -0.4,6.49 1.14,8.93 1.33,3.48 5.88,0.21 6.64,3.93 1.56,2.26 5.47,1.03 6.19,4.78 2.15,5.1 9.7,4.85 11.21,10.39 0.68,3.38 0.35,7.34 1.94,10.32 3.26,1.05 1.94,4.34 0.25,6.21 -0.79,3.96 2.53,8.34 6.75,8.25 2.28,1.6 4.86,1.65 7.83,1.19 13.03,-0.77 26.07,-1.53 39.1,-2.3 -0.02,-4.45 -1.98,-8.61 -1.86,-13.13 -1.7,-2.04 -0.86,-4.17 -0.04,-6.39 0.32,-2.84 3.07,-4.93 1.51,-7.87 -1.05,-2.94 -0.88,-6.21 1.73,-8.27 -0.2,-2.83 -0.5,-5.03 -0.16,-7.93 -1.14,-4.2 2.64,-7.5 3.69,-11.36 0.92,-1.13 3.15,-8.34 0.73,-4.93 -2.65,3.81 -4.99,8.01 -8.18,11.29 -0.86,2.06 -3.21,4.55 -5.21,4.5 -2.57,-1.26 0.28,-4.49 0.9,-6.41 0.47,-2.94 3.2,-4.25 4.09,-6.85 -3.31,-1.29 -2.77,-5.03 -3.54,-7.92 0.02,-3.09 -1.23,-5.08 -4.29,-5.57 -2.14,-3.67 -7.04,-2.78 -10.59,-4.12 -7.13,-1.87 -14.21,-4.39 -21.67,-4.99 -2.48,-0.54 -2.84,-5.51 -5.51,-4.73 -1.71,-1.54 -3.85,-0.7 -5.82,0.13 -2.8,-1.32 0.68,-4.59 1.5,-6.38 2.18,-1.34 -1.53,-2.14 -2.31,-1z\",\"name\":\"Wisconsin\"},\"nc\":{\"path\":\"m830.06,295.97c-18.3,3.8 -36.53,8 -54.86,11.65 -12.74,1.51 -25.38,4.07 -38.18,4.94 -3.32,-0.82 -1.17,3.72 -2.5,5.53 -2.62,1.34 -3.49,4.59 -5.03,6.38 -3.24,-1.36 -5.07,1.46 -6.34,3.97 -1.09,-0.57 -2.96,0.03 -3.41,-1.41 -2.02,1.96 -4.37,3.73 -4.31,6.81 -3.66,1.1 -6.31,3.82 -9.28,5.96 -2.64,0.94 -5.76,2.16 -7.4,4.35 0.73,4.06 -2.98,3.3 -5.1,5.29 -1.98,4.69 2.74,2.66 5.58,2.5 6.41,-1.19 13.32,-0.49 19.18,-3.73 5.04,-1.9 9.41,-5.9 15.06,-5.67 6.5,-0.64 13.15,-0.6 19.62,-0.69 2.99,0.53 3.36,4.79 5.58,5.01 5.37,-0.81 10.87,-1.67 16.25,-1.79 5.38,1.36 9.61,5.45 14.52,7.93 3.59,2.64 6.93,5.66 10.43,8.44 3.15,-0.86 6.32,-1.58 9.59,-1.72 1.06,-4.55 2.04,-9.29 5.39,-12.78 4.2,-4.27 9.23,-8.29 15.33,-9.29 2.91,1.95 3.69,-2.9 5.27,-4.53 2.72,-5 -2.44,3.91 -2.46,-1.22 -3.87,0.7 -5.43,-0.26 -3.29,-4 2.77,-4.25 -2.73,-2.51 -2.12,-6.02 -1.42,-3.76 2.84,2.19 5.06,0.81 2.81,0.12 5.1,-1.87 5.59,-4.6 0.45,-2.9 4.59,-2.7 3.28,-6.48 -4.02,-2.43 4.25,-0.66 0.4,-3.93 -3.52,-3.44 -5.24,-8.33 -7.23,-12.76 -1.54,0.35 -3.08,0.71 -4.63,1.06z m17.13,23.72c1.55,2.61 -4.64,4.26 -0.52,2.69 1.38,-1.92 0.21,-5.22 0.24,-7.62 -0.74,-2.05 0.37,4.57 0.28,4.94z\",\"name\":\"North Carolina\"},\"dc\":{\"path\":\"m803.44,248.16c2.67,3.43 3.85,-1.02 0.55,-0.75l-0.29,0.4 -0.25,0.35z\",\"name\":\"District of Columbia\"},\"ma\":{\"path\":\"m877.59,144.41c-1.04,3.1 -4.01,3.5 -6.79,4.13 -8.62,2.32 -17.17,4.6 -25.96,6.12 -0.11,4.77 -1.17,9.59 -0.03,14.31 10.66,-2.6 21.54,-4.29 32,-7.44 3.57,2.81 6.01,6.73 8.28,10.59 2.13,-0.78 0.01,-5.15 3.77,-5.38 2.93,-3.28 1.83,4.78 3.17,2.62 2.13,-3.09 6.1,-3.9 9.41,-5.21 -0.11,-3.41 -2.21,-8.55 -6.38,-7.53 1.64,-0.1 4.89,0.87 4.91,3.82 0.85,2.24 -2.55,3.71 -4.35,4.24 -3.37,0.51 -4.99,-1.76 -6.32,-4.47 -1.38,-2.05 -3.58,-6.56 -6.3,-3.6 -1.89,-1.72 -3.13,-4.04 -1.33,-6.3 2.3,-2.34 1.23,-6.2 -1.28,-7.16 -0.93,0.41 -1.86,0.82 -2.79,1.24z M902.25,172.69c-1.6,2.76 3.05,-2.44 0.08,-0.32l-0.08,0.32z m-11.28,1.28c1.59,0.78 6.09,-2.26 1.78,-2.03 -0.59,0.68 -1.19,1.35 -1.78,2.03z\",\"name\":\"Massachusetts\"},\"tn\":{\"path\":\"m730.41,314.34c-8.87,-0.11 -17.76,1.5 -26.57,2.73 -10.24,2.86 -20.99,2.66 -31.48,4.02 -16.34,1.45 -32.65,3.29 -48.96,4.95 -4.57,-1.71 -0.43,5.74 -5.06,4.14 -6.97,0.06 -13.87,1.23 -20.84,0.71 -0.95,4.26 -1.37,9.04 -3.6,12.76 -3.45,1.82 -4.01,5.81 -4.43,9.33 -3.1,1.1 -4.68,2.61 -2.53,5.59 -1.75,3.9 -0.58,5.24 3.51,3.98 33.91,-3.26 67.83,-6.53 101.74,-9.79 -0.23,-2.54 0.72,-5.31 3.53,-5.69 3.11,-0.4 0.99,-5.41 4.88,-5.81 2.77,-2.02 6.49,-2.19 8.62,-5.18 1.76,-2.26 6.31,-1.64 5.78,-5.38 1.19,-1.77 3.1,-3.84 5.03,-4.85 1.04,-0.39 0.28,1.78 1.72,1.19 2.38,0.56 2.2,-4.36 5.22,-3.86 3.3,1.27 2.68,-2.92 4.96,-4.18 2.05,-0.94 3.81,-6.68 0.92,-6.59 -0.81,0.64 -1.63,1.27 -2.44,1.91z\",\"name\":\"Tennessee\"},\"ar\":{\"path\":\"m509.47,335.31c1.73,4.9 1.5,10.02 1.53,15.12 2.15,12.21 1.13,24.64 1.47,36.97 0.02,3.71 0.04,7.42 0.06,11.13 2.06,3.2 5.05,-1.45 7.69,1.47 1.53,1.76 -0.88,7.54 2.97,6.49 17.61,-0.36 35.23,-0.72 52.84,-1.08 1.97,-2.6 0.41,-5.9 -1.28,-8.22 3.3,-1.61 -1.59,-3.96 0.84,-6.53 0.75,-2.77 0.62,-6.34 3.78,-7.69 -1.88,-3.07 2.08,-5.24 3.19,-7.88 3.77,-0.38 1.58,-3.3 2.64,-5.42 1.12,-2.67 2.56,-5.28 4.85,-6.58 1.2,-4.12 0.21,-2.67 -1.53,-5.61 -2.76,-3.32 1.95,-3.96 2.36,-6.84 -0.05,-1.94 3.31,-6.69 1.22,-6.75 -2.65,0.85 -5.34,-0.18 -8.02,-0.33 -0.09,-3.38 4.4,-3.88 4.22,-7.3 0.58,-3.87 -3.58,-3.68 -6.34,-3.26 -24.17,0.77 -48.34,1.54 -72.5,2.31z\",\"name\":\"Arkansas\"},\"mo\":{\"path\":\"m490.44,245.63c-2.39,-0.46 -0.19,4.05 0.07,5.6 2.45,3.32 4.51,7.86 8.55,9.22 2.81,-0.24 3.61,2.67 2.79,4.84 -3.22,1.64 -1.72,5.03 0.19,7.07 0.9,2.55 4.61,3.05 4.89,5.61 2.1,12.97 1.12,26.14 1.51,39.22 0,5.72 0.08,11.44 0.72,17.13 24.99,-0.94 49.98,-1.8 74.97,-2.51 3.02,-1.12 4.35,1.72 5.31,3.98 0.52,3.48 -2.86,4.46 -4.14,6.86 2.37,0.64 5.57,0.65 8.21,-0.08 1.46,-3.59 1.87,-7.45 2.38,-11.22 0.84,-2.83 5.27,-2.89 4.61,-6.03 1.37,-2.94 0.14,-4.6 -2.22,-4.28 -2.15,-1.81 -2.84,-5.03 -2.86,-7.6 1.45,-2.84 -2.08,-5.07 -2.44,-7.89 -0.66,-3.24 -5.34,-0.87 -6.89,-3.66 -2.64,-2.34 -6.24,-3.94 -6.91,-7.76 -0.94,-3.21 1.52,-6.47 2.17,-9.64 2.2,-3.53 -1.34,-4.7 -4.33,-4.5 -2.66,0.39 -5.34,-1.15 -4.81,-4.1 0.86,-4.07 -4.71,-4.05 -6.43,-6.93 -2.7,-3.4 -6.72,-6.05 -7.25,-10.67 -1.1,-3.16 -2.12,-6.86 -0.62,-10.06 -2.3,-1.34 -2.28,-5.77 -5.37,-4.89 -20.69,0.77 -41.38,1.53 -62.06,2.3z\",\"name\":\"Missouri\"},\"ga\":{\"path\":\"m672.78,356c-0.74,7.06 4.28,12.69 5.29,19.4 1.36,6.57 3.44,12.96 5.03,19.44 0.94,4.88 2.17,9.95 5.53,13.75 -0.85,3.5 3.37,3.17 2.59,6.44 -1.89,4.45 -3.57,9.65 -0.84,14.13 0.05,2.63 0.94,5.4 -0.38,7.88 2.95,0.94 1.45,4.01 3.07,6.01 1.35,2.67 3.68,4.75 6.83,4 12.35,-0.01 24.69,-1.31 37.03,-1.92 3.32,-0.58 6.67,-0.74 10.04,-0.59 -0.78,4.24 3.04,4.15 2.09,-0.09 -0.9,-2.14 -2.94,-6.23 0.59,-6.62 3.2,0.5 6.42,0.91 9.66,1.02 -0.84,-3.8 -0.8,-7.57 0.5,-11.27 0.2,-3.54 2.62,-6.73 2.21,-10.21 -0.72,-2.93 3.26,-5.26 2.85,-8.05 -2.19,1.37 -5.29,-0.71 -5.34,-3.19 -0.56,-3.12 -2.71,-5.83 -6.03,-6.06 -1.33,-3.9 -2.62,-8.17 -4.99,-11.43 -3.12,-1.07 -6.13,-2.99 -7.17,-6.29 -2.06,-2.33 -5.23,-3.21 -6.66,-6.16 -2.08,-2.2 -5.24,-2.83 -7.66,-4.19 -0.76,-2.53 -3.21,-4.09 -3.94,-6.67 -1.36,-2.63 -2.97,-4.65 -6.15,-3.77 -2.33,-1.57 -7.15,-3.38 -5.31,-6.97 2.02,-2.01 3.76,-4.11 -0.8,-3.11 -12.68,1.51 -25.37,3.01 -38.05,4.52z\",\"name\":\"Georgia\"},\"sc\":{\"path\":\"m737.03,343.19c-4.26,0.4 -8.64,0.43 -12.24,3.07 -3.2,1.75 -6.48,3.19 -9.88,4.49 2.21,3.31 -4.28,2.74 -2.34,6.44 2.27,2.24 5.2,4.13 8.5,3.28 2.53,3.15 3.83,6.94 6.53,9.88 0.91,2.76 5.13,2.06 6.85,4.46 2.18,1.38 2.96,4.25 5.62,5.01 2.99,1.95 3.36,6.38 7.26,7.24 3.61,0.62 3.77,4.77 5.34,7.38 0.38,3.35 2.02,4.84 4.79,5.96 3.36,1.79 1.76,7.23 5.67,8.16 3.63,-1.38 5.8,-4.63 8.38,-7.34 -2.35,-3.93 0.29,-3.32 3.01,-4.44 1.95,-2.4 5.02,-3.3 6.25,-6.28 2.17,-2 3.86,-4.52 5.4,-6.9 2.81,-0.17 3.42,-3.58 4.92,-5.03 -0.28,-4.13 1.3,-7.89 3.12,-11.47 1.03,-2.11 7.03,-4.5 3.47,-6.34 -5.97,-5.35 -12.78,-9.5 -19.71,-13.47 -4.45,-2.68 -9.74,-0.07 -14.57,-0.06 -2.57,-0.23 -6.63,2.48 -7.32,-1.28 -1.66,-4.5 -6.93,-2.82 -10.63,-2.96 -2.8,0.07 -5.61,0.14 -8.41,0.21z\",\"name\":\"South Carolina\"},\"ky\":{\"path\":\"m675,267.5c-2.76,-0.77 -6,1.11 -3.38,3.78 1.52,3.15 -3.12,4.12 -5.19,5.27 -2.94,0.53 -4.71,1.29 -4.3,4.82 -1.15,2.66 -5.3,3.24 -6.32,6.32 -2.16,1.4 0.74,6.22 -2.84,5.92 -3.06,0.61 -4.36,-2.79 -7.09,0.11 -2.26,0.51 -1.1,6.98 -3.85,3.1 -2.27,-2.54 -5.57,0.14 -6.16,2.81 -1.91,1.07 -3.4,-3.73 -6.02,-1.91 -3.32,0.61 -7.48,0.47 -9.92,2.91 0.08,2.65 -3.39,3.78 -1.7,6.05 2.34,2.66 -2.23,2.68 -3.86,3.3 -3.57,1.35 -0.68,4.35 -0.76,6.72 0.33,3.45 -3.76,1.44 -5.49,0.72 -2.5,-2.29 -6.26,-0.38 -7.13,2.53 2.86,2.28 -0.04,4.76 0.41,7.66 -3.47,2.04 -3.19,2.73 0.94,2.35 5.84,0.01 11.64,-0.95 17.5,-0.76 -0.7,-3.74 0.98,-4.99 4.56,-4.19 24.33,-3.01 48.82,-4.7 73.16,-7.43 4.3,-0.7 8.2,-2.38 11.75,-4.88 3.3,-0.8 4.04,-2.71 5.12,-5.35 3.46,-4.09 7.13,-8.06 10.79,-12 -3.27,-1.24 -3.03,-5.51 -6.21,-6.95 -2.6,-1.25 -2.07,-4.66 -5.16,-5.36 -2.38,-2.64 0.8,-7.28 -3.02,-8.87 -3.02,-0.01 -2.37,-4.65 -4.57,-3.51 -2.95,0.61 -3.67,4.78 -7.02,3.29 -2.69,-0.23 -5.51,-1.19 -7.82,0.71 -3,0.83 -3.99,-3.61 -7.44,-2.06 -3.51,0.82 -2.17,-5.19 -5.65,-5.26C677.17,266.43 676.21,267.17 675,267.5z\",\"name\":\"Kentucky\"},\"al\":{\"path\":\"m628.53,359.63c-0.2,14.37 0.12,28.75 -0.54,43.12 -0.04,9.01 -0.88,18.1 -0.07,27.07 1.55,10 2.94,20.01 3.85,30.09 3.07,1.09 3.69,-1.92 4.4,-4.18 -0.3,-3.89 4.27,-3.02 4.89,-0.04 0.72,2.06 4.08,5.27 0.77,6.65 -0.15,0.92 6.17,-0.9 5.88,-2.89 -0.44,-3.01 0.64,-6.86 -2.87,-8.19 -2.29,-0.88 -3.03,-5.59 -0.32,-5.67 14.08,-1.86 28.21,-3.59 42.35,-4.8 2.7,1.07 6.76,-0.25 2.97,-2.5 -1.8,-2 0.95,-5.03 -0.27,-7.65 -0.31,-3.1 -2.63,-5.9 -1.31,-9.15 0.01,-2.92 2.49,-5.36 1.93,-8.3 -3.52,-0.45 -1.34,-5.11 -4.26,-6.7 -3.48,-5.82 -3.36,-13.04 -5.96,-19.21 -2.02,-8.09 -3.34,-16.41 -7.25,-23.88 -0.51,-2.39 -1.08,-4.85 -0.72,-7.31 -14.49,1.18 -28.98,2.35 -43.47,3.53z\",\"name\":\"Alabama\"},\"la\":{\"path\":\"m521.09,407.28c0.1,7.53 -0.24,15.32 1.67,22.61 2.08,2.49 2.82,5.51 3.15,8.67 1.87,2.78 5.27,4.95 4.59,8.72 1.61,2.18 -0.21,5.69 0.08,8.38 0.42,2.64 -4.36,4.89 -2.01,7.12 1.07,2.26 -0.92,5.31 -0.53,7.95 0.38,3.22 -2.37,5.7 -1.55,8.93 5.18,-2.4 10.98,-0.86 16.47,-1.09 5.72,1.7 11.56,4.87 17.56,4.26 2.93,-2.25 5.94,0.36 8.98,0.93 1.08,-3.4 -4.22,-0.81 -5.8,-2.2 -1.91,-0.36 -2.89,-2.3 -1.17,-3.4 2.08,-1.1 4.08,-1.09 5.66,0.04 2.15,-1.39 5.6,-0.24 6.26,2.38 -0.33,3.62 3.42,1.7 5.28,3.15 3.83,1.5 -1.41,4.07 0.83,5.37 2.88,0.97 5.73,2.94 8.62,3.29 3.51,-0.05 2.81,-4.53 6.47,-4.17 1.83,-2.9 4.44,-0.25 4.39,2.31 1.53,1.64 4,-3.68 1.98,-3.66 0.22,-3.37 2.17,-3.21 4.31,-5.41 1.59,0.95 0.91,2.82 1.41,4.16 3.33,0.39 7.44,1.09 9.34,4.06 2.79,0.08 5.17,1.1 5.56,-2.56 -2.68,-0.27 -4.15,-3.88 -7.35,-3.19 -2.31,0.06 -6.3,-1.62 -6.15,-3.77 1.62,-3.62 2.23,-1.74 2.03,-4.38 2.88,1.09 5.69,-2.27 3.22,-4.47 0.46,-4.62 -3.73,-0.15 -3.34,2.19 -1.36,1.21 -6.35,-0.96 -4.6,-3.27 1.71,-1.84 4.2,-4.5 2.19,-6.95 -0.13,-3.26 -2.69,-5.21 -4.47,-7.38 0.52,-2.7 2.26,-7.35 -2.36,-5.46 -10.43,1.28 -20.97,0.69 -31.45,1.12 -1.61,-3.72 -0.02,-7.76 0.16,-11.59 2.66,-4.86 5.46,-9.65 8.25,-14.44 -2.04,-2.82 3.52,-4.45 -0.74,-6.48 -0.53,-2.15 -1.29,-4.65 -2.32,-6.83 -0.08,-3.1 0.9,-7.3 -3.62,-5.79 -17,0.28 -34,0.57 -51,0.85z\",\"name\":\"Louisiana\"},\"ms\":{\"path\":\"m591.03,363.5c-1.45,1.74 -4.03,3.15 -4.63,6.03 -1.4,2.22 1.43,5.74 -2.69,6.07 -1.48,1.97 -4.77,4.42 -3.4,7.17 -1.36,1.83 -3.59,3.95 -3.48,7.01 -2.16,2.66 1.55,5.28 -0.27,7.12 -0.45,1.84 2.25,4.42 1.35,7.03 -1.92,2.71 -1.63,6.55 -0.61,9.53 1.6,2.4 0.78,5.54 3.73,6.94 -0.95,2.53 -1.41,3.75 -1.87,6.31 -2.55,4.96 -6.07,9.62 -7.89,14.84 0.01,2.98 -1.44,6.14 -0.14,8.97 11.4,-0.36 22.87,0.25 34.19,-1.5 2.75,2.21 -2.19,6.39 1.33,8.15 2.82,1.62 2.28,5.18 3.89,7.63 2.07,-1.86 2.51,-6.19 5.82,-4.07 3.21,-0.67 6.85,-3.02 9.89,-0.64 3.62,0.73 6.01,-0.27 4.42,-4.26 -0.81,-10.1 -2.99,-20.07 -3.84,-30.15 0.14,-21.99 1.48,-43.98 0.64,-65.97 -12.15,1.26 -24.29,2.52 -36.44,3.78z\",\"name\":\"Mississippi\"},\"ia\":{\"path\":\"m476.25,181.16c-3.42,-0.05 -2.16,5.68 0.72,6.29 0.54,2.07 -0.75,5.06 -1.41,7.35 -2.13,2.82 -0.93,5.45 1.04,7.92 1.22,4.34 2.24,8.85 4.05,13.06 0.6,3.22 1.29,6.38 3.41,9 0.02,3.49 1.27,6.69 2.3,9.91 -0.04,3.54 0.03,7.05 2.08,10.09 22.2,-1.02 44.44,-1.75 66.66,-2.63 0.77,1.43 3.25,7.11 4.37,4.25 -0.96,-2.5 1.19,-4.52 3.57,-4.72 -0.88,-2.62 1.19,-4.59 2.5,-6.28 1.27,-2.92 -1.39,-4.02 -2.41,-6.31 0.69,-2.9 1.79,-5.3 5.13,-5.46 2.88,-0.83 6.57,-1.81 6.65,-5.41 1.76,-3.04 3.73,-8.01 -0.26,-10.18 -2.74,-1.06 -1.75,-5.27 -5.21,-5.14 -0.64,-1.97 -0.85,-4.76 -4.19,-4.21 -2.75,-0.8 -4.55,-3.47 -5.37,-6 -1.36,-2.89 2.01,-4.72 1.65,-7.28 -3.82,-0.4 -1.19,-6.5 -5.03,-5.47 -26.75,0.41 -53.5,0.81 -80.25,1.22z\",\"name\":\"Iowa\"},\"mn\":{\"path\":\"m497.03,53.84c-0.69,2.52 0.93,7.42 -1.31,8.34 -9.65,-0.01 -19.29,-0.02 -28.94,-0.03 1.16,2.87 2.18,5.76 0.97,8.81 0.05,5.74 -0.79,11.86 2.51,16.95 2.04,3.78 0.64,8.47 1.5,12.6 0.82,6.84 1.76,13.67 3.55,20.32 0.05,3.83 0.88,7.8 0.03,11.53 -1.57,1.74 -4.91,3.29 -2.22,5.78 1.89,1.83 5.05,2.94 4.58,6.1 0.28,11.9 0.25,23.83 0.42,35.75 26.72,-0.38 53.44,-0.75 80.16,-1.13 -0.15,-3.62 -0.46,-7.93 -4.36,-9.47 -3.02,-1.66 -6.24,-3.1 -7.63,-6.5 -0.72,-3.61 -5.32,-1.16 -6.05,-4.61 -1.56,-2.09 -5.29,-0.37 -6.57,-3.78 -1.66,-2.1 -0.52,-5.5 -1.1,-8.1 -1.34,-2.93 1.65,-4.99 1.47,-7.54 -0.2,-3.22 -5.36,-3.85 -2.24,-7.43 0.41,-4.47 5.39,-5.33 7.61,-8.59 0.24,-3.87 -0.73,-8.14 0.52,-11.77 1.76,-3.14 5.17,-5.1 8.28,-6.26 1.92,-2.08 3.66,-4.57 6.13,-5.81 2.54,-4.97 6.04,-9.99 11.81,-11.4 4.55,-1.98 9.12,-3.92 13.6,-6.04 0.73,-3.15 -3.7,-0.18 -5.06,0.03 -0.82,-3.87 -4.2,-3.09 -7.28,-2.87 -2.25,-0.87 -5.34,2.83 -6,-0.66 -1.13,-3.5 -4.51,0.72 -5.88,2.13 -2.33,1.63 -6.22,1.16 -8.06,-0.56 0.94,-3.05 -4.61,-0.39 -4.53,-3.96 -0.16,-2.3 -3.48,1.3 -5.77,-1.2 -3.04,-0.91 -5.5,-3.22 -8.29,-4.38 -2.49,0.4 -5.86,-2.38 -6.7,1.5 -1.17,0.79 -7.15,1.83 -5.93,-1.54 -2.99,0.03 -6.03,-0.05 -7.53,-1.75 -2.6,0.59 -5.72,-0.41 -5.9,-3.43 -0.88,-3.28 -1.44,-6.61 -1.88,-9.98 -1.23,-0.6 -2.54,-1.02 -3.91,-1.06z\",\"name\":\"Minnesota\"},\"ok\":{\"path\":\"m363.31,330.03c17.51,1.12 35.04,1.73 52.56,2.47 -1.37,13.62 -2.89,27.23 -2.83,40.93 -0.92,3.93 3.48,5.78 6.14,7.66 0.56,-5.56 2.96,1.46 4.25,-1.31 0.93,-1.5 5.57,1.68 3.39,4.42 1.59,0.66 4.76,0.51 6.73,1.82 2.79,-0.99 5.16,3.32 7.03,1.26 1.82,-1.93 5.59,-0.31 6.5,2.02 2.44,0.79 1.71,5.84 4.76,3.05 1.39,-1.65 6.25,-1.17 6.69,1.21 1.28,1.5 5.69,3.72 7.39,1.92 0.33,-2.75 3.38,-5.95 4.59,-1.83 3.59,0.38 6.96,2 10.46,3 2.28,-1.86 2.44,-4.68 6.53,-3.41 2.53,1.92 3.8,-1.41 6.31,-1.16 0.85,2.42 5.2,2.41 6.19,-0.5 3.2,-0.2 3.66,3.71 6.55,4.35 1.86,0.4 6.31,3.63 5.36,0.18 -0.32,-12.27 0.1,-24.59 -0.7,-36.82 -1.15,-6.03 -1.01,-12.18 -1.43,-18.25 -1.32,-5.29 -2.05,-10.73 -2.07,-16.18 -20.01,0.66 -40.04,-0.04 -60.06,-0.22 -27.85,-1.32 -55.73,-2.3 -83.53,-4.56 -0.27,3.31 -0.54,6.63 -0.81,9.94z\",\"name\":\"Oklahoma\"},\"tx\":{\"path\":\"m359.47,330.97c2.34,-0.11 -0.86,-1.81 0,0z m0.72,18.31c-1.64,20.84 -2.52,41.75 -4.68,62.55 -0.51,4.33 -0.99,8.66 -1.51,12.98 -17.84,-0.87 -35.67,-1.93 -53.42,-3.89 -4.16,-0.41 -8.32,-0.76 -12.48,-1.11 -0.67,3.74 2.27,3.68 4.04,6.12 2.26,1.83 1.13,6.03 4.65,6.5 3.52,0.48 2.9,4.6 5.45,6.34 3.38,3.15 5.5,7.91 10.27,9.06 1.91,1.27 4,3.22 4.53,5.46 0.69,3.96 4.53,7.02 3.47,11.33 -0.88,5.15 2.22,9.63 5.93,12.88 2.18,2.95 5.14,4.76 8.63,5.78 1.88,1.95 3.01,3.88 5.72,4.88 2.59,0.18 5.38,4.34 7.35,1.18 2.59,-3.14 5.48,-6.41 6.05,-10.55 1.26,-2.82 3.58,-4.32 6.5,-5.06 2.72,-1.59 5.32,-2.13 7.47,0.62 4.91,0.57 10.2,0.53 14.79,2.22 2.83,1.43 2.56,4.53 5.17,6.33 1.73,2.05 4.83,3.37 5.81,5.82 1.37,2.07 2.66,4.26 2.69,7.03 1.62,4.34 4.17,8.51 5.31,12.94 -0.24,2.77 4.65,2.49 4.95,5.51 2.24,4.08 4.37,9.17 9.21,10.49 3.28,2 0.03,5.04 0.91,7.5 3.28,0.87 -0.01,4.68 0.94,6.67 2.53,1.36 4.37,3.2 4.22,6.44 0.39,3.34 2.13,6.83 5.69,7.54 3.01,1.93 6.69,2.13 9.87,3.4 2.28,1.79 5.15,4.09 8.16,2.83 3.46,0.46 6.77,1.29 9.37,3.75 1.43,2.54 6.51,-0.91 4.31,-2.89 -2.04,-3.39 -1.3,-7.79 -2.83,-11.46 -0.63,-3.07 -2.39,-5.95 -0.99,-9.1 1.17,-4.9 2.87,-9.76 4.04,-14.71 -3.37,-1.01 -2.07,-5.47 1.21,-4.71 3.99,0.42 3.65,-6.43 7.81,-6.05 5.25,-1.56 9.07,-6 14.16,-8.05 6.91,-2.81 13.62,-6.46 18.72,-12.05 2.58,-2.98 7.09,-3.95 8.69,-7.75 5,-2.22 9.8,-4.93 15.22,-6 -0.97,-2.64 0.52,-4.86 1.32,-7.22 0.39,-2.99 0.19,-6.07 1.18,-8.94 -3.15,-2.27 0.38,-4.91 1.38,-7.41 -0.2,-2.8 1.42,-6.25 0.09,-8.66 0.3,-2.93 -1.49,-5.14 -3.35,-7.29 -2.46,-2.64 -1.11,-6.91 -3.87,-9.52 -2.53,-4.57 -1.59,-10.19 -2.25,-15.22 0.02,-5 0.19,-10 -0.5,-14.97 -2.63,-2.31 -5.52,2.33 -7.52,-1.37 -3.1,-2.07 -7.66,-2.1 -9.73,-5.68 -2.31,-2.48 -3.82,2.84 -7.18,0.96 -1.91,-2.73 -3.59,0.03 -5.98,0.18 -2.27,-1.15 -6.07,-1.48 -6.09,1.76 -2.76,2.37 -5.95,-0.93 -8.94,-1.28 -3,1.38 -5.23,-3.83 -6.3,-1.87 -0.15,2.66 -2.52,5.1 -5.13,3.34 -3.23,-0.15 -4.91,-2.49 -6.57,-3.89 -2.95,-1.74 -4.3,2.32 -6.94,0.88 -1.48,-1.39 -1.87,-3.6 -3.92,-5.65 -3.06,-2.83 -5.03,3.17 -7.13,0.23 -2.05,-2.11 -5.57,-0.83 -7.94,-2.69 -3.56,0.59 -5.54,-0.24 -4.13,-4.11 -1.89,-1.85 -2.28,1.21 -4.77,-0.14 -0.59,-0.41 -3.45,1.78 -5,-1.11 -1.9,-1.9 -5.13,-3.22 -4.18,-6.45 0.03,-10.58 0.25,-21.15 1.66,-31.65 0.3,-2.99 0.6,-5.98 0.89,-8.98 -17.65,-0.63 -35.3,-1.27 -52.94,-2.22 -0.52,6.07 -1.04,12.15 -1.56,18.22z M466.53,518.63c-5.2,7.17 2.93,-3.27 0,0z\",\"name\":\"Texas\"},\"nm\":{\"path\":\"m242.72,428.78c4.82,0.63 9.65,1.25 14.47,1.88 0.43,-3.33 0.85,-6.67 1.28,-10 9.7,0.89 19.4,1.86 29.09,2.78 -0.9,-3.14 -1.39,-5.98 2.84,-4.5 18.29,1.28 36.48,3.79 54.81,4.49 2.45,-0.6 7.66,2.13 7.99,-1.01 3.06,-22.93 3.75,-46.09 5.59,-69.14 0.54,-7.79 1.39,-15.56 2.02,-23.34 3.21,0.65 1.17,-4.81 2.07,-6.86 1.79,-4.38 -2.87,-3.37 -5.73,-3.85 -32.35,-3.3 -64.71,-6.59 -97.06,-9.89 -5.79,39.81 -11.58,79.63 -17.38,119.44z\",\"name\":\"New Mexico\"},\"ks\":{\"path\":\"m380.53,320.34c25.06,1.17 50.11,2.71 75.19,3.35 17.22,0.07 34.44,0.63 51.66,0.18 -0.25,-12.69 0.23,-25.42 -0.47,-38.08 -0.61,-2.83 -0.17,-6.27 -1.38,-8.74 -3.04,-2.03 -6.02,-5.19 -6.68,-8.77 -0.43,-2.51 4.3,-4.59 1.29,-6.64 -3.02,0.54 -4.05,-3.34 -7.17,-2.43 -36.21,-0.82 -72.43,-1.33 -108.63,-2.5 -1.27,21.21 -2.54,42.42 -3.81,63.63z\",\"name\":\"Kansas\"},\"ne\":{\"path\":\"m353.38,230.59c10.76,0.96 21.27,2.72 32.03,3.66 -0.37,7.11 -0.71,14.23 -1.06,21.34 36.49,1.29 73,1.84 109.5,2.56 -0.31,-1.17 -3.13,-4.05 -4.03,-6.15 -1.99,-2.11 -0.36,-5.13 -2.45,-7.34 -2.42,-3.19 -1.66,-7.14 -2.2,-10.79 -1.66,-2.86 -1.45,-6.25 -2.29,-9.26 -2.94,-2.85 -2.34,-7.01 -3.95,-10.49 -1.13,-3.1 -2.18,-6.19 -2.62,-9.47 -3.51,1.32 -2.89,-3.07 -4.85,-4.29 -2.4,-1.68 -5.57,-1.85 -7.72,-3.93 -3.79,0.07 -7.65,1.04 -11.13,1.94 -2.52,-2.2 -6.03,-3.13 -7.91,-6.06 -13.61,0.96 -27.23,-0.49 -40.83,-1.11 -15.5,-1.05 -31.02,-1.79 -46.51,-2.86 -1.67,14.08 -2.83,28.17 -4,42.25z\",\"name\":\"Nebraska\"},\"sd\":{\"path\":\"m357.44,187.41c25.68,1.58 51.37,3.15 77.06,4.26 3.58,-0.01 7.34,-0.51 10.81,-0.23 1.8,2.9 5.24,3.85 7.69,6 3.55,-1.45 7.52,-1.89 11.25,-1.91 2.45,2.67 7.26,2.29 9.15,5.33 1.32,4.76 3.27,1.86 0.18,-1.15 -1.53,-2.17 1.46,-4.6 1.56,-6.99 1.2,-2.87 1.38,-5.28 -1.58,-6.75 -0.5,-2.04 -0.73,-6.65 2.41,-5.84 2.62,-0.28 0.39,-5.28 1.06,-7.5 -0.32,-9.7 0.19,-19.47 -0.64,-29.13 -0.24,-3.58 -6.26,-4.19 -5.42,-8.4 1.09,-1.22 5.81,-4.38 2.75,-5.4 -27.23,-0.89 -54.5,-1.01 -81.67,-3.15 -9.79,-0.62 -19.57,-1.24 -29.36,-1.86 -1.75,20.91 -3.5,41.81 -5.25,62.72z\",\"name\":\"South Dakota\"},\"nd\":{\"path\":\"m362.88,123.72c26.46,1.49 52.89,3.7 79.4,3.91 10.84,0.26 21.67,0.52 32.51,0.78 0.01,-5.53 -1.38,-10.82 -2.5,-16.17 -1.27,-7.42 -2.05,-14.89 -2.13,-22.42 -2.61,-4.16 -4.11,-9 -3.48,-13.94 -0.44,-3.25 0.67,-6.57 0.3,-9.7 -0.15,-4.01 -2.83,-4.61 -6.31,-4.12 -25.15,-0.47 -50.33,-1.05 -75.41,-3.06 -5.17,-0.49 -10.33,-0.98 -15.5,-1.47 -2.29,22.06 -4.58,44.13 -6.88,66.19z\",\"name\":\"North Dakota\"},\"wy\":{\"path\":\"m240.16,217.84c37.4,4.49 74.29,8.23 111.69,12.72 2.5,-29.2 5.5,-57.65 8,-86.84 -35.26,-4.45 -70.52,-8.9 -105.78,-13.34 -4.64,29.16 -9.27,58.31 -13.91,87.47z\",\"name\":\"Wyoming\"},\"mt\":{\"path\":\"m192.59,52.19c0.84,2.76 3.25,5.4 3.2,8.23 -1.5,2.79 -1,5.49 0.52,8.15 3.4,0.39 4.18,3.44 5.26,6.16 1.43,3.34 2.55,6.88 5.37,9.34 0.88,2.21 5.27,1.18 4.34,4.72 -2.23,6.21 -5.45,12.23 -7.06,18.56 0.02,3.34 3.4,5.25 5.73,2.22 1.61,-2.43 5.63,-3.04 4.69,0.97 -0.5,5.3 1.81,10.35 2.59,15.53 1.9,2 5.27,3.44 5.68,6.31 -0.71,1.91 -0.39,8.78 2.32,5.14 1.85,-1.89 4.93,-0.29 6.85,0.86 3.28,-1.63 7.26,-1.21 10.34,0.69 3.69,0.41 1.52,-5 5.95,-4.08 2.71,-0.42 2.01,6.69 3.21,4.1 0.56,-3.26 1.09,-6.54 1.68,-9.8 35.57,4.49 71.15,8.96 106.72,13.44 2.9,-28.44 5.79,-56.88 8.69,-85.31 -28.84,-2.29 -57.55,-5.91 -86.19,-9.99 -26.71,-4.12 -53.36,-8.71 -79.73,-14.68 -3.05,-0.61 -6.99,-2.59 -6.53,2.19 -1.21,5.75 -2.42,11.51 -3.62,17.26z\",\"name\":\"Montana\"},\"co\":{\"path\":\"m260.17,308.53c39.89,4.09 79.51,8.26 119.39,11.91 1.61,-28.46 3.23,-56.92 4.84,-85.38 -37.47,-4.17 -74.94,-8.33 -112.41,-12.5 -4.03,28.98 -7.8,56.99 -11.83,85.97z\",\"name\":\"Colorado\"},\"id\":{\"path\":\"m169.84,91.72c0.52,3.07 2.27,5.25 4.94,6.78 0.4,3.02 -0.61,5.46 -3.03,7.31 -2.3,2.7 -4.38,5.97 -6.09,8.83 0.39,2.93 -2.57,3.54 -4.23,4.8 -1.77,2.31 -4.28,4.3 -3.93,7.5 -0.64,2.43 4.69,0.57 4.09,4.34 -5.19,11.17 -6.78,23.51 -10.13,35.32 -0.79,3.16 -1.22,4.91 -2.01,8.08 56.92,12.84 62.26,13.45 93.58,19.41 2.75,-17.6 5.5,-35.21 8.25,-52.81 -2.66,-0.84 -0.58,-6.52 -4.23,-4.97 -1.24,1.7 -1.62,4.95 -5.17,3.47 -3.11,-1.99 -6.81,-1.34 -10.13,-0.56 -2.53,-1.76 -5.91,-2.01 -7.69,0.88 -1.75,-0.05 -3.29,-3.39 -2.79,-5.36 1.91,-3.98 -2.85,-5.89 -5.05,-8.27 -0.98,-5.88 -3.48,-11.64 -2.5,-17.69 -1.86,-0.01 -4.25,2.69 -6.47,3.63 -2.21,0.18 -4.52,-3.09 -4.1,-5.31 1.19,-5.37 4.07,-10.37 5.88,-15.6 1.95,-2.64 1.12,-5.57 -2.41,-5.62 -1.55,-3.37 -4.92,-5.66 -5.61,-9.53 -1.31,-2.63 -1.42,-6.47 -5.06,-6.76 -0.99,-1.85 -3.18,-4.47 -1.91,-6.73 2.09,-2.98 -0.34,-5.7 -1.53,-8.5 -2.13,-3.05 0.55,-6.68 0.67,-10.01 0.9,-4.35 1.8,-8.69 2.69,-13.04 -4.18,-0.78 -8.35,-1.56 -12.53,-2.34 -4.5,20.92 -9,41.83 -13.5,62.75z\",\"name\":\"Idaho\"},\"ut\":{\"path\":\"m176.34,297.78c27.57,3.92 55.15,7.83 82.72,11.75 4.04,-29.08 8.08,-58.17 12.13,-87.25 -10.83,-1.14 -21.65,-2.33 -32.47,-3.59 1.43,-7.93 2.82,-15.85 3.84,-23.84 -15.27,-2.85 -30.54,-5.71 -45.81,-8.56 -6.8,37.17 -13.6,74.33 -20.41,111.5z\",\"name\":\"Utah\"},\"az\":{\"path\":\"m173.19,314.66c-2.49,-0.06 -3.05,4.43 -6.38,2.94 -0.74,-2.87 -3.59,-2.82 -5.59,-4.22 -3.74,0.74 -2.37,4.58 -2.68,7.41 -0.52,5.04 -0.42,10.21 -0.89,15.22 -2.19,2.33 -2.44,5.78 -0.24,8.19 2.32,2.62 0.58,7.52 4.09,9.09 0.98,3.59 -2.89,4.83 -5.41,6.09 -3.29,2.46 -3.28,6.86 -3.88,10.47 -1.25,2.44 -4.81,2.39 -4.92,4.97 0.47,2.18 6.18,0.38 3.42,4.54 -0.65,2.75 -3.14,3.45 -5.62,3.78 -3.6,1.45 -2.69,4.7 0.77,5.44 14.69,7.84 28.52,17.13 43.01,25.32 5.79,3.19 11.27,7.21 17.27,9.88 11.71,2.83 23.75,3.45 35.68,4.87 5.71,-39.38 11.42,-78.75 17.13,-118.13 -27.58,-3.93 -55.17,-7.85 -82.75,-11.78 -1,5.31 -2,10.63 -3,15.94z\",\"name\":\"Arizona\"},\"nv\":{\"path\":\"m84.84,232.41c22.96,34.61 45.92,69.23 68.88,103.84 3.66,2.65 3.19,-3.47 3.27,-5.71 0.37,-5.43 0.36,-11.24 1.08,-16.44 2.05,-2.03 4.26,-2 6.08,-0.39 2.62,-0.16 3.86,5.9 6.03,1.27 2.74,-0.82 2.66,-3.64 3.13,-6.41 7.5,-40.87 15,-81.75 22.51,-122.62 -30.72,-6.81 -61.44,-13.63 -92.16,-20.44 -6.27,22.3 -12.54,44.6 -18.81,66.91z\",\"name\":\"Nevada\"},\"or\":{\"path\":\"M67.16,62.81C64.24,70.42 62.73,78.57 58.5,85.63c-2.86,8.53 -5.96,16.93 -10.17,24.89 -3.06,6.61 -8,12.31 -11.32,18.7 -1.03,6.5 -0.64,13.05 -0.36,19.6 37.23,8.7 74.46,16.69 111.69,25.39 3.45,-13.15 6.51,-25.75 10.19,-38.81 1.2,-2.48 3.15,-6.06 -1.1,-5.42 -2.58,-1.78 -0.23,-4.45 -0.38,-6.91 2.3,-2.82 4.36,-5.82 7.47,-7.75 1.75,-5.08 5.43,-9.19 9.03,-13.06 1.66,-3.48 -2.46,-3.92 -3.39,-6.47 -0.25,-3.79 -3.56,-4.26 -6.62,-4.99 -7.63,-2.2 -15.38,-4.2 -23.21,-5.54 -4.9,0.03 -9.79,0.06 -14.69,0.09 -0.95,-2.84 -4.67,1.86 -7.11,0.5 -2.61,0.82 -4.42,-2.63 -6.57,-1.28 -2.61,-0.06 -5.23,0.11 -7.15,-1.87 -3.09,-1.53 -6.33,-1.81 -9.5,-3.1 -1.87,3.03 -5.69,1.22 -8.53,1.31 -1.65,-1.64 -5.79,-3.02 -6.03,-4.81 1.1,-2.44 0.78,-5.93 0.53,-8.59 -0.42,-3.92 -4.72,-2.63 -6.25,-4.49C74.59,58.67 69.45,62.45 67.16,62.81z\",\"name\":\"Oregon\"},\"wa\":{\"path\":\"m101.38,8.72c0.05,2.75 2.93,5.39 3.25,8.16 -1.92,2.33 -1.78,5.19 -1.32,7.71 -1.81,2.64 1.63,4.82 0.67,7.42 -3.6,1.52 -2.43,-3.7 -4.86,-4.99 -3.34,-2.24 1.47,-3.87 1.17,-5.42 -2.5,-1.11 -2.24,3.88 -3.69,4.17C92.33,26.39 88.86,23.04 84.76,22.57 79.82,20.66 75.28,17.69 72.25,13.25c-3.13,-0.98 -1.96,4.97 -3.25,6.95 -0.63,2.8 2.59,5.06 1.41,8.21 0.52,3.86 -1.29,7.55 0.18,11.29 -1.06,2.88 4.75,5.54 2.94,6.39 -3.45,-1.05 -6.2,3.2 -2.25,4.34 1.57,0.97 -0.61,6.32 -3.3,5.43 -1.83,2.15 1.28,6.86 4.14,4.17 3.77,-1.55 2.75,3.51 5.83,3.13 2.81,-0.24 4.26,3.31 4.54,5.61 0.04,2.48 -0.15,6.02 -0.26,7.78 2.63,1.76 5.01,4.26 8.46,3.62 3.2,0.66 4.7,-3.26 7.97,-0.5 3.01,0.48 6.37,1.55 8.79,3.66 3.03,0.92 6.02,-1.78 8.19,1.05 3.44,1.3 6.67,0.03 9.84,-1.4 0.99,1.78 4.42,1.32 7,1.3 5.35,-0.19 10.68,-0.16 15.82,1.55 6.99,1.44 13.78,3.45 20.65,5.4 4.47,-20.85 8.94,-41.71 13.41,-62.56 -19.81,-3.93 -39.37,-9.21 -58.73,-14.66 -7.27,-1.53 -14.4,-3.52 -21.46,-5.87L101.75,8.45 101.38,8.72z M95.5,15.16C94.05,13.72 92.15,14.26 94.72,17.63 94.39,13.84 99.19,18.11 98.98,14.18 98.24,12.75 96.05,14.08 95.5,15.16z m2.31,1.91c-3.13,3.04 1.36,2.18 0.16,-0.25l-0.16,0.25z\",\"name\":\"Washington\"},\"ca\":{\"path\":\"m35.06,153.94c-0.1,4.04 0.4,8.21 -1.99,11.75 -1.86,3.68 -2.55,8.24 -6.48,10.38 -1.19,2.11 -3.49,3.38 -3.59,6.45 -1.94,3.49 2.49,5.65 2.91,8.98 1.54,3.39 2.34,6.94 1.63,10.65 0,2.92 -2.79,5.01 -2.24,8.14 0.05,2.97 -2.24,5.87 0.04,8.54 2.58,5 6.38,9.93 6.71,15.69 -0.54,2.77 -0.99,5.37 1.81,7.17 1.6,1.95 4.49,3.66 2.79,6.46 -1.73,3.87 -1.14,8.04 -1.09,12.16 1.68,2.67 2.83,6.76 6.66,6.53 1.48,2.33 0.97,4.84 -0.22,7.13 -2.5,1.53 -4.36,2.73 -3.66,6.08 0.27,3.49 4.27,5.34 4.36,9.01 1.46,6.2 4.13,11.92 7.59,17.25 0.71,2.57 2.16,4.34 2.9,6.41 -0.24,3.33 -1.93,6.49 -2.41,9.87 -1.66,2.61 1.19,5.52 3.99,5.12 4.03,0.15 7.27,3.31 11.01,4.04 3,-0.55 4.74,2.9 6.07,5.11 1.54,2.71 2.37,6 5.76,6.88 2.51,1.14 6.19,0.05 7.17,3.45 2.41,2.72 -2.39,5.05 1.41,5.17 2.73,1.87 5.56,-1.74 7.56,-0.74 2.13,2.06 4.05,4.2 4.93,7.05 4.3,4.9 1.44,11.77 2.79,17.52 14.73,1.94 29.44,4.72 44.27,5.38 2.78,1.19 6.19,-4.43 2.84,-4.65 -3.13,0.64 -2.83,-4.02 -1.36,-4.66 3.15,-0.88 4.92,-3.83 4.65,-7.04 0.47,-3.98 3.27,-7.43 7.22,-8.4 3.43,-2.04 -0.33,-3.58 -0.79,-5.79 -0.23,-3.65 -1.95,-6.81 -3.62,-9.89 2.02,-3.66 -2.22,-3.32 -3.16,-6.24 -22.6,-34.1 -45.2,-68.19 -67.81,-102.29 6.27,-22.44 12.54,-44.88 18.81,-67.31 -22.04,-5.16 -44.08,-10.31 -66.13,-15.47 -0.45,1.38 -0.9,2.75 -1.34,4.13z m24.13,184.72c-0.27,3.05 7.99,3.06 4.7,2.07 -1.63,-0.35 -3.17,-2.46 -4.7,-2.07z m-5.16,0.38c0.33,3.71 5.81,0.51 1.31,-0.04 -0.44,0.01 -0.88,0.02 -1.31,0.04z M79.69,357.5c-0.2,1.58 4.42,6 3.16,2.37C82.22,358.91 80.8,357.6 79.69,357.5z M77.75,369.13c-0.14,1.55 3.2,3.89 1.32,1.26C78.6,369.72 77.39,366.55 77.75,369.13z\",\"name\":\"California\"}}});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.world.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'world_en', {\"width\":950,\"height\":550,\"pathes\":{\"id\":{\"path\":\"M781.68,324.4l-2.31,8.68l-12.53,4.23l-3.75-4.4l-1.82,0.5l3.4,13.12l5.09,0.57l6.79,2.57v2.57l3.11-0.57l4.53-6.27v-5.13l2.55-5.13l2.83,0.57l-3.4-7.13l-0.52-4.59L781.68,324.4L781.68,324.4M722.48,317.57l-0.28,2.28l6.79,11.41h1.98l14.15,23.67l5.66,0.57l2.83-8.27l-4.53-2.85l-0.85-4.56L722.48,317.57L722.48,317.57M789.53,349.11l2.26,2.77l-1.47,4.16v0.79h3.34l1.18-10.4l1.08,0.3l1.96,9.5l1.87,0.5l1.77-4.06l-1.77-6.14l-1.47-2.67l4.62-3.37l-1.08-1.49l-4.42,2.87h-1.18l-2.16-3.17l0.69-1.39l3.64-1.78l5.5,1.68l1.67-0.1l4.13-3.86l-1.67-1.68l-3.83,2.97h-2.46l-3.73-1.78l-2.65,0.1l-2.95,4.75l-1.87,8.22L789.53,349.11L789.53,349.11M814.19,330.5l-1.87,4.55l2.95,3.86h0.98l1.28-2.57l0.69-0.89l-1.28-1.39l-1.87-0.69L814.19,330.5L814.19,330.5M819.99,345.45l-4.03,0.89l-1.18,1.29l0.98,1.68l2.65-0.99l1.67-0.99l2.46,1.98l1.08-0.89l-1.96-2.38L819.99,345.45L819.99,345.45M753.17,358.32l-2.75,1.88l0.59,1.58l8.75,1.98l4.42,0.79l1.87,1.98l5.01,0.4l2.36,1.98l2.16-0.5l1.97-1.78l-3.64-1.68l-3.14-2.67l-8.16-1.98L753.17,358.32L753.17,358.32M781.77,366.93l-2.16,1.19l1.28,1.39l3.14-1.19L781.77,366.93L781.77,366.93M785.5,366.04l0.39,1.88l2.26,0.59l0.88-1.09l-0.98-1.49L785.5,366.04L785.5,366.04M790.91,370.99l-2.75,0.4l2.46,2.08h1.96L790.91,370.99L790.91,370.99M791.69,367.72l-0.59,1.19l4.42,0.69l3.44-1.98l-1.96-0.59l-3.14,0.89l-1.18-0.99L791.69,367.72L791.69,367.72M831.93,339.34l-4.17,0.47l-2.68,1.96l1.11,2.24l4.54,0.84v0.84l-2.87,2.33l1.39,4.85l1.39,0.09l1.2-4.76h2.22l0.93,4.66l10.83,8.96l0.28,7l3.7,4.01l1.67-0.09l0.37-24.72l-6.29-4.38l-5.93,4.01l-2.13,1.31l-3.52-2.24l-0.09-7.09L831.93,339.34L831.93,339.34z\",\"name\":\"Indonesia\"},\"pg\":{\"path\":\"M852.76,348.29l-0.37,24.44l3.52-0.19l4.63-5.41l3.89,0.19l2.5,2.24l0.83,6.9l7.96,4.2l2.04-0.75v-2.52l-6.39-5.32l-3.15-7.28l2.5-1.21l-1.85-4.01l-3.7-0.09l-0.93-4.29l-9.81-6.62L852.76,348.29L852.76,348.29M880.48,349l-0.88,1.25l4.81,4.26l0.66,2.5l1.31-0.15l0.15-2.57l-1.46-1.32L880.48,349L880.48,349M882.89,355.03l-0.95,0.22l-0.58,2.57l-1.82,1.18l-5.47,0.96l0.22,2.06l5.76-0.29l3.65-2.28l-0.22-3.97L882.89,355.03L882.89,355.03M889.38,359.51l1.24,3.45l2.19,2.13l0.66-0.59l-0.22-2.28l-2.48-3.01L889.38,359.51L889.38,359.51z\",\"name\":\"Papua New Guinea\"},\"mx\":{\"path\":\"M137.49,225.43l4.83,15.21l-2.25,1.26l0.25,3.02l4.25,3.27v6.05l5.25,5.04l-2.25-14.86l-3-9.83l0.75-6.8l2.5,0.25l1,2.27l-1,5.79l13,25.44v9.07l10.5,12.34l11.5,5.29l4.75-2.77l6.75,5.54l4-4.03l-1.75-4.54l5.75-1.76l1.75,1.01l1.75-1.76h2.75l5-8.82l-2.5-2.27l-9.75,2.27l-2.25,6.55l-5.75,1.01l-6.75-2.77l-3-9.57l2.27-12.07l-4.64-2.89l-2.21-11.59l-1.85-0.79l-3.38,3.43l-3.88-2.07l-1.52-7.73l-15.37-1.61l-7.94-5.97L137.49,225.43L137.49,225.43z\",\"name\":\"Mexico\"},\"ee\":{\"path\":\"M517.77,143.66l-5.6-0.2l-3.55,2.17l-0.05,1.61l2.3,2.17l7.15,1.21L517.77,143.66L517.77,143.66M506.76,147.64l-1.55-0.05l-0.9,0.91l0.65,0.96l1.55,0.1l0.8-1.16L506.76,147.64L506.76,147.64z\",\"name\":\"Estonia\"},\"dz\":{\"path\":\"M473.88,227.49l-4.08-1.37l-16.98,3.19l-3.7,2.81l2.26,11.67l-6.75,0.27l-4.06,6.53l-9.67,2.32l0.03,4.75l31.85,24.35l5.43,0.46l18.11-14.15l-1.81-2.28l-3.4-0.46l-2.04-3.42v-14.15l-1.36-1.37l0.23-3.65l-3.62-3.65l-0.45-3.88l1.58-1.14l-0.68-4.11L473.88,227.49L473.88,227.49z\",\"name\":\"Algeria\"},\"ma\":{\"path\":\"M448.29,232.28h-11.55l-2.26,5.02l-5.21,2.51l-4.3,11.64l-8.38,5.02l-11.77,19.39l11.55-0.23l0.45-5.7h2.94v-7.76h10.19l0.23-10.04l9.74-2.28l4.08-6.62l6.34-0.23L448.29,232.28L448.29,232.28z\",\"name\":\"Morocco\"},\"mr\":{\"path\":\"M404.9,276.66l2.18,2.85l-0.45,12.32l3.17-2.28l2.26-0.46l3.17,1.14l3.62,5.02l3.4-2.28l16.53-0.23l-4.08-27.61l4.38-0.02l-8.16-6.25l0.01,4.06l-10.33,0.01l-0.05,7.75l-2.97-0.01l-0.38,5.72L404.9,276.66L404.9,276.66z\",\"name\":\"Mauritania\"},\"sn\":{\"path\":\"M412.03,289.84L410.12,290.31L406.18,293.18L405.28,294.78L405,296.37L406.43,297.40L411.28,297.34L414.40,296.5L414.75,298.03L414.46,300.06L414.53,300.09L406.78,300.21L408.03,303.21L408.71,301.37L418,302.15L418.06,302.21L419.03,302.25L422,302.37L422.12,300.62L418.53,296.31L414.53,290.87L412.03,289.84z\",\"name\":\"Senegal\"},\"gm\":{\"path\":\"M406.89,298.34l-0.13,1.11l6.92-0.1l0.35-1.03l-0.15-1.04l-1.99,0.81L406.89,298.34L406.89,298.34z\",\"name\":\"Gambia\"},\"gw\":{\"path\":\"M408.6,304.53l1.4,2.77l3.93-3.38l0.04-1.04l-4.63-0.67L408.6,304.53L408.6,304.53z\",\"name\":\"Guinea-Bissau\"},\"gn\":{\"path\":\"M410.42,307.94l3.04,4.68l3.96-3.44l4.06-0.18l3.38,4.49l2.87,1.89l1.08-2.1l0.96-0.54l-0.07-4.62l-1.91-5.48l-5.86,0.65l-7.25-0.58l-0.04,1.86L410.42,307.94L410.42,307.94z\",\"name\":\"Guinea\"},\"sl\":{\"path\":\"M413.93,313.13l5.65,5.46l4.03-4.89l-2.52-3.95l-3.47,0.35L413.93,313.13L413.93,313.13z\",\"name\":\"Sierra Leone\"},\"lr\":{\"path\":\"M420.17,319.19l10.98,7.34l-0.26-5.56l-3.32-3.91l-3.24-2.87L420.17,319.19L420.17,319.19z\",\"name\":\"Liberia\"},\"ci\":{\"path\":\"M432.07,326.75l4.28-3.03l5.32-0.93l5.43,1.17l-2.77-4.19l-0.81-2.56l0.81-7.57l-4.85,0.23l-2.2-2.1l-4.62,0.12l-2.2,0.35l0.23,5.12l-1.16,0.47l-1.39,2.56l3.58,4.19L432.07,326.75L432.07,326.75z\",\"name\":\"Cote d'Ivoire\"},\"ml\":{\"path\":\"M419.46,295.84l3.08-2.11l17.12-0.1l-3.96-27.54l4.52-0.13l21.87,16.69l2.94,0.42l-1.11,9.28l-13.75,1.25l-10.61,7.92l-1.93,5.42l-7.37,0.31l-1.88-5.41l-5.65,0.4l0.22-1.77L419.46,295.84L419.46,295.84z\",\"name\":\"Mali\"},\"bf\":{\"path\":\"M450.59,294.28l3.64-0.29l5.97,8.44l-5.54,4.18l-4.01-1.03l-5.39,0.07l-0.87,3.16l-4.52,0.22l-1.24-1.69l1.6-5.14L450.59,294.28L450.59,294.28z\",\"name\":\"Burkina Faso\"},\"ne\":{\"path\":\"M460.89,302l2.55-0.06l2.3-3.45l3.86-0.69l4.11,2.51l8.77,0.25l6.78-2.76l2.55-2.19l0.19-2.88l4.73-4.77l1.25-10.53l-3.11-6.52l-7.96-1.94l-18.42,14.36l-2.61-0.25l-1.12,9.97l-9.4,0.94L460.89,302L460.89,302z\",\"name\":\"Niger\"},\"gh\":{\"path\":\"M444.34,317.05l1.12,2.63l2.92,4.58l1.62-0.06l4.42-2.51l-0.31-14.29l-3.42-1l-4.79,0.13L444.34,317.05L444.34,317.05z\",\"name\":\"Ghana\"},\"tg\":{\"path\":\"M455.22,321.25l2.68-1.57l-0.06-10.35l-1.74-2.82l-1.12,0.94L455.22,321.25L455.22,321.25z\",\"name\":\"Togo\"},\"bj\":{\"path\":\"M458.71,319.49h2.12l0.12-6.02l2.68-3.89l-0.12-6.77l-2.43-0.06l-4.17,3.26l1.74,3.32L458.71,319.49L458.71,319.49z\",\"name\":\"Benin\"},\"ng\":{\"path\":\"M461.57,319.37l3.92,0.19l4.73,5.27l2.3,0.63l1.8-0.88l2.74-0.38l0.93-3.82l3.73-2.45l4.04-0.19l7.4-13.61l-0.12-3.07l-3.42-2.63l-6.84,3.01l-9.15-0.13l-4.36-2.76l-3.11,0.69l-1.62,2.82l-0.12,7.96l-2.61,3.7L461.57,319.37L461.57,319.37z\",\"name\":\"Nigeria\"},\"tn\":{\"path\":\"M474.91,227.33l5.53-2.23l1.82,1.18l0.07,1.44l-0.85,1.11l0.13,1.97l0.85,0.46v3.54l-0.98,1.64l0.13,1.05l3.71,1.31l-2.99,4.65l-1.17-0.07l-0.2,3.74l-1.3,0.2l-1.11-0.98l0.26-3.8l-3.64-3.54l-0.46-3.08l1.76-1.38L474.91,227.33L474.91,227.33z\",\"name\":\"Tunisia\"},\"ly\":{\"path\":\"M480.05,248.03l1.56-0.26l0.46-3.6h0.78l3.19-5.24l7.87,2.29l2.15,3.34l7.74,3.54l4.03-1.7l-0.39-1.7l-1.76-1.7l0.2-1.18l2.86-2.42h5.66l2.15,2.88l4.55,0.66l0.59,36.89l-3.38-0.13l-20.42-10.62l-2.21,1.25l-8.39-2.1l-2.28-3.01l-3.32-0.46l-1.69-3.01L480.05,248.03L480.05,248.03z\",\"name\":\"Libya\"},\"eg\":{\"path\":\"M521.93,243.06l2.67,0.07l5.2,1.44l2.47,0.07l3.06-2.56h1.43l2.6,1.44h3.29l0.59-0.04l2.08,5.98l0.59,1.93l0.55,2.89l-0.98,0.72l-1.69-0.85l-1.95-6.36l-1.76-0.13l-0.13,2.16l1.17,3.74l9.37,11.6l0.2,4.98l-2.73,3.15L522.32,273L521.93,243.06L521.93,243.06z\",\"name\":\"Egypt\"},\"td\":{\"path\":\"M492.79,296l0.13-2.95l4.74-4.61l1.27-11.32l-3.16-6.04l2.21-1.13l21.4,11.15l-0.13,10.94l-3.77,3.21v5.64l2.47,4.78h-4.36l-7.22,7.14l-0.19,2.16l-5.33-0.07l-0.07,0.98l-3.04-0.4l-2.08-3.93l-1.56-0.77l0.2-1.2l1.96-1.5v-7.02l-2.71-0.42l-3.27-2.43L492.79,296L492.79,296L492.79,296z\",\"name\":\"Chad\"},\"sd\":{\"path\":\"M520.15,292.43l0.18-11.83l2.46,0.07l-0.28-6.57l25.8,0.23l3.69-3.72l7.96,12.73l-4.36,5.14v7.85l-6.86,14.75l-2.36,1.04l0.75,4.11h2.94l3.99,5.79l-3.2,0.41l-0.82,1.49l-0.08,2.15l-9.6-0.17l-0.98-1.49l-6.71-0.38l-12.32-12.68l1.23-0.74l0.33-2.98l-2.95-1.74l-2.69-5.31l0.15-4.94L520.15,292.43L520.15,292.43z\",\"name\":\"Sudan\"},\"cm\":{\"path\":\"M477.82,324.28l3.22,2.96l-0.23,4.58l17.66-0.41l1.44-1.62l-5.06-5.45l-0.75-1.97l3.22-6.03l-2.19-4l-1.84-0.99v-2.03l2.13-1.39l0.12-6.32l-1.69-0.19l-0.03,3.32l-7.42,13.85l-4.54,0.23l-3.11,2.14L477.82,324.28L477.82,324.28z\",\"name\":\"Cameroon\"},\"er\":{\"path\":\"M556.71,294.7l-0.25-5.89l3.96-4.62l1.07,0.82l1.95,6.52l9.36,6.97l-1.7,2.09l-6.85-5.89H556.71L556.71,294.7z\",\"name\":\"Eritrea\"},\"dj\":{\"path\":\"M571.48,301.54l-0.57,3.36l3.96-0.06l0.06-4.94l-1.45-0.89L571.48,301.54L571.48,301.54z\",\"name\":\"Djibouti\"},\"et\":{\"path\":\"M549.49,311.76l7.28-16.2l7.23,0.04l6.41,5.57l-0.45,4.59h4.97l0.51,2.76l8.04,4.81l4.96,0.25l-9.43,10.13l-12.95,3.99h-3.21l-5.72-4.88l-2.26-0.95l-4.38-6.45l-2.89,0.04l-0.34-2.96L549.49,311.76L549.49,311.76z\",\"name\":\"Ethiopia\"},\"so\":{\"path\":\"M575.74,305.04l4.08,2.78l1.21-0.06l10.13-3.48l1.15,3.71l-0.81,3.13l-2.19,1.74l-5.47-0.35l-7.83-4.81L575.74,305.04L575.74,305.04M591.97,304.05l4.37-1.68l1.55,0.93l-0.17,3.88l-4.03,11.48l-21.81,23.36l-2.53-1.74l-0.17-9.86l3.28-3.77l6.96-2.15l10.21-10.78l2.67-2.38l0.75-3.48L591.97,304.05L591.97,304.05z\",\"name\":\"Somalia\"},\"ye\":{\"path\":\"M599.62,299.65l2.13,2.38l2.88-1.74l1.04-0.35l-1.32-1.28l-2.53,0.75L599.62,299.65L599.62,299.65M571.99,289.23l1.44,4.28v4.18l3.46,3.14l24.38-9.93l0.23-2.73l-3.91-7.02l-9.81,3.13l-5.63,5.54l-6.53-3.86L571.99,289.23L571.99,289.23z\",\"name\":\"Yemen\"},\"cf\":{\"path\":\"M495.66,324.05l4.66,5.04l1.84-2.38l2.93,0.12l0.63-2.32l2.88-1.8l5.98,4.12l3.45-3.42l13.39,0.59L519,311.18l1.67-1.04l0.23-2.26l-2.82-1.33h-4.14l-6.67,6.61l-0.23,2.72l-5.29-0.17l-0.17,1.16l-3.45-0.35l-3.11,5.91L495.66,324.05L495.66,324.05z\",\"name\":\"Central African Republic\"},\"st\":{\"path\":\"M470.74,337.15l1.15-0.58l0.86,0.7l-0.86,1.33l-1.04-0.41L470.74,337.15L470.74,337.15M473.05,333.5l1.73-0.29l0.58,1.1l-0.86,0.93l-0.86-0.12L473.05,333.5L473.05,333.5z\",\"name\":\"Sao Tome and Principe\"},\"gq\":{\"path\":\"M476.84,327.41l-0.46,1.97l1.38,0.75l1.32-0.99l-0.46-2.03L476.84,327.41L476.84,327.41M480.99,332.69l-0.06,1.39l4.54,0.23l-0.06-1.57L480.99,332.69L480.99,332.69z\",\"name\":\"Equatorial Guinea\"},\"ga\":{\"path\":\"M486.39,332.63l-0.12,2.49l-5.64-0.12l-3.45,6.67l8.11,8.87l2.01-1.68l-0.06-1.74l-1.38-0.64v-1.22l3.11-1.97l2.76,2.09l3.05,0.06l-0.06-10.49l-4.83-0.23l-0.06-2.2L486.39,332.63L486.39,332.63z\",\"name\":\"Gabon\"},\"cg\":{\"path\":\"M491,332.52l-0.06,1.45l4.78,0.12l0.17,12.41l-4.37-0.12l-2.53-1.97l-1.96,1.1l-0.09,0.55l1.01,0.49l0.29,2.55l-2.7,2.32l0.58,1.22l2.99-2.32h1.44l0.46,1.39l1.9,0.81l6.1-5.16l-0.12-3.77l1.27-3.07l3.91-2.9l1.05-9.81l-2.78,0.01l-3.22,4.41L491,332.52L491,332.52z\",\"name\":\"Congo\"},\"ao\":{\"path\":\"M486.55,353.23l1.74,2.26l2.25-2.13l-0.66-2.21l-0.56-0.04L486.55,353.23L486.55,353.23M488.62,356.71l3.41,12.73l-0.08,4.02l-4.99,5.36l-0.75,8.71l19.2,0.17l6.24,2.26l5.15-0.67l-3-3.76l0.01-10.74l5.9-0.25v-4.19l-4.79-0.2l-0.96-9.92l-2.02,0.03l-1.09-0.98l-1.19,0.06l-1.58,3.06H502l-1.41-1.42l0.42-2.01l-1.66-2.43L488.62,356.71L488.62,356.71z\",\"name\":\"Angola\"},\"cd\":{\"path\":\"M489.38,355.71l10.31-0.18l2.09,2.97l-0.08,2.19l0.77,0.7h5.12l1.47-2.89h2.09l0.85,0.86l2.87-0.08l0.85,10.08l4.96,0.16v0.78l13.33,6.01l0.62,1.17h2.79l-0.31-4.22l-5.04-2.42l0.31-3.2l2.17-5.08l4.96-0.16l-4.26-14.14l0.08-6.01l6.74-10.54l0.08-1.48l-1.01-0.55l0.04-2.86l-1.23-0.11l-1.24-1.58l-20.35-0.92l-3.73,3.63l-6.11-4.02l-2.15,1.32l-1.56,13.13l-3.86,2.98l-1.16,2.64l0.21,3.91l-6.96,5.69l-1.85-0.84l0.25,1.09L489.38,355.71L489.38,355.71z\",\"name\":\"Congo\"},\"rw\":{\"path\":\"M537.82,339.9l2.81,2.59l-0.12,2.77l-4.36,0.09v-3.06L537.82,339.9L537.82,339.9z\",\"name\":\"Rwanda\"},\"bi\":{\"path\":\"M536.21,346.21l4.27-0.09l-1.11,3.74l-1.08,0.94h-1.32l-0.94-2.53L536.21,346.21L536.21,346.21z\",\"name\":\"Burundi\"},\"ug\":{\"path\":\"M538.3,339.09l3.03,2.84l1.9-1.21l5.14-0.84l0.88,0.09l0.33-1.95l2.9-6.1l-2.44-5.08l-7.91,0.05l-0.05,2.09l1.06,1.02l-0.16,2.09L538.3,339.09L538.3,339.09z\",\"name\":\"Uganda\"},\"ke\":{\"path\":\"M550.83,326.52l2.66,5.19l-3.19,6.69l-0.42,2.03l15.93,9.85l4.94-7.76l-2.5-2.03l-0.05-10.22l3.13-3.42l-4.99,1.66l-3.77,0.05l-5.9-4.98l-1.86-0.8l-3.45,0.32l-0.61,1.02L550.83,326.52L550.83,326.52z\",\"name\":\"Kenya\"},\"tz\":{\"path\":\"M550.57,371.42l17.47-2.14l-3.93-7.6l-0.21-7.28l1.27-3.48l-16.62-10.44l-5.21,0.86l-1.81,1.34l-0.16,3.05l-1.17,4.23l-1.22,1.45l-1.75,0.16l3.35,11.61l5.47,2.57l3.77,0.11L550.57,371.42L550.57,371.42z\",\"name\":\"Tanzania\"},\"zm\":{\"path\":\"M514.55,384.7l3.17,4.4l4.91,0.3l1.74,0.96l5.14,0.06l4.43-6.21l12.38-5.54l1.08-4.88l-1.44-6.99l-6.46-3.68l-4.31,0.3l-2.15,4.76l0.06,2.17l5.08,2.47l0.3,5.37l-4.37,0.24l-1.08-1.81l-12.14-5.18l-0.36,3.98l-5.74,0.18L514.55,384.7L514.55,384.7z\",\"name\":\"Zambia\"},\"mw\":{\"path\":\"M547.16,379.4l3.11,3.25l-0.06,4.16l0.6,1.75l4.13-4.46l-0.48-5.67l-2.21-1.69l-1.97-9.95l-3.41-0.12l1.55,7.17L547.16,379.4L547.16,379.4z\",\"name\":\"Malawi\"},\"mz\":{\"path\":\"M541.17,413.28l2.69,2.23l6.34-3.86l1.02-5.73v-9.46l10.17-8.32l1.74,0.06l6.16-5.91l-0.96-12.18L552,372.17l0.48,3.68l2.81,2.17l0.66,6.63l-5.5,5.37l-1.32-3.01l0.24-3.98l-3.17-3.44l-7.78,3.62l7.24,3.68l0.24,10.73l-4.79,7.11L541.17,413.28L541.17,413.28z\",\"name\":\"Mozambique\"},\"zw\":{\"path\":\"M524.66,392.3l8.97,10.13l6.88,1.75l4.61-7.23l-0.36-9.58l-7.48-3.86l-2.81,1.27l-4.19,6.39l-5.8-0.06L524.66,392.3L524.66,392.3z\",\"name\":\"Zimbabwe\"},\"na\":{\"path\":\"M496.55,421.96l3.35,0.24l1.97,1.99l4.67,0.06l1.14-13.26v-8.68l2.99-0.6l1.14-9.1l7.6-0.24l2.69-2.23l-4.55-0.18l-6.16,0.84l-6.64-2.41h-18.66l0.48,5.3l6.22,9.16l-1.08,4.7l0.06,2.47L496.55,421.96L496.55,421.96z\",\"name\":\"Namibia\"},\"bw\":{\"path\":\"M508.51,411.23l2.15,0.66l-0.3,6.15l2.21,0.3l5.08-4.58l6.1,0.66l1.62-4.1l7.72-7.05l-9.27-10.67l-0.12-1.75l-1.02-0.3l-2.81,2.59l-7.3,0.18l-1.02,9.1l-2.87,0.66L508.51,411.23L508.51,411.23z\",\"name\":\"Botswana\"},\"sz\":{\"path\":\"M540.87,414l-2.51,0.42l-1.08,2.95l1.92,1.75h2.33l1.97-2.83L540.87,414L540.87,414z\",\"name\":\"Swaziland\"},\"ls\":{\"path\":\"M527.41,425.39l3.05-2.35l1.44,0.06l1.74,2.17l-0.18,2.17l-2.93,1.08v0.84l-3.23-0.18l-0.78-2.35L527.41,425.39L527.41,425.39z\",\"name\":\"Lesotho\"},\"za\":{\"path\":\"M534.16,403.63l-7.9,7.3l-1.88,4.51l-6.26-0.78l-5.21,4.63l-3.46-0.34l0.28-6.4l-1.23-0.43l-0.86,13.09l-6.14-0.06l-1.85-2.18l-2.71-0.03l2.47,7.09l4.41,4.17l-3.15,3.67l2.04,4.6l4.72,1.8l3.76-3.2l10.77,0.06l0.77-0.96l4.78-0.84l16.17-16.1l-0.06-5.07l-1.73,2.24h-2.59l-3.15-2.64l1.6-3.98l2.75-0.56l-0.25-8.18L534.16,403.63L534.16,403.63z M530.37,422.13l1.51-0.06l2.45,2.66l-0.07,3.08l-2.87,1.45l-0.18,1.02l-4.38,0.05l-1.37-3.3l1.25-2.42L530.37,422.13L530.37,422.13z\",\"name\":\"South Africa\"},\"gl\":{\"path\":\"M321.13,50.07l-1.36,2.17l2.45,2.45l-1.09,2.45l3.54,4.62l4.35-1.36l5.71-0.54l6.53,7.07l4.35,11.69l-3.53,7.34l4.89-0.82l2.72,1.63l0.27,3.54l-5.98,0.27l3.26,3.26l4.08,0.82l-8.97,11.96l-1.09,7.34l1.9,5.98l-1.36,3.54l2.45,7.61l4.62,5.17l1.36-0.27l2.99-0.82l0.27,4.35l1.9,2.72l3.53-0.27l2.72-10.06l8.16-10.06l12.24-4.89l7.61-9.52l3.53,1.63h7.34l5.98-5.98l7.34-2.99l0.82-4.62l-4.62-4.08l-4.08-1.36l-2.18-5.71l5.17-2.99l8.16,4.35l2.72-2.99l-4.35-2.45l9.25-12.51l-1.63-5.44l-4.35-0.27l1.63-4.89l5.44-2.45l11.15-9.79l-3.26-3.53l-12.51,1.09l-6.53,6.53l3.81-8.43l-4.35-1.09l-2.45,4.35l-3.53-2.99l-9.79,1.09l2.72-4.35l16.04-0.54l-4.08-5.44l-17.4-3.26l-7.07,1.09l0.27,3.54l-7.34-2.45l0.27-2.45l-5.17,1.09l-1.09,2.72l5.44,1.9l-5.71,4.08l-4.08-4.62l-5.71-1.63l-0.82,4.35h-5.71l-2.18-4.62l-8.97-1.36l-4.89,2.45l-0.27,3.26l-6.25-0.82l-3.81,1.63l0.27,3.81v1.9l-7.07,1.36l-3.26-2.17l-2.18,3.53l3.26,3.54l6.8-0.82l0.54,2.18l-5.17,2.45L321.13,50.07L321.13,50.07M342.89,92.49l1.63,2.45l-0.82,2.99h-1.63l-2.18-2.45l0.54-1.9L342.89,92.49L342.89,92.49M410.87,85.69l4.62,1.36l-0.27,3.81l-4.89-2.45l-1.09-1.36L410.87,85.69L410.87,85.69z\",\"name\":\"Greenland\"},\"au\":{\"path\":\"M761.17,427.98l-0.35,25.38l-3.9,2.86l-0.35,2.5l5.32,3.57l13.13-2.5h6.74l2.48-3.58l14.9-2.86l10.64,3.22l-0.71,4.29l1.42,4.29l8.16-1.43l0.35,2.14l-5.32,3.93l1.77,1.43l3.9-1.43l-1.06,11.8l7.45,5.72l4.26-1.43l2.13,2.14l12.42-1.79l11.71-18.95l4.26-1.07l8.51-15.73l2.13-13.58l-5.32-6.79l2.13-1.43l-4.26-13.23l-4.61-3.22l0.71-17.87l-4.26-3.22l-1.06-10.01h-2.13l-7.1,23.59l-3.9,0.36l-8.87-8.94l4.97-13.23l-9.22-1.79l-10.29,2.86l-2.84,8.22l-4.61,1.07l-0.35-5.72l-18.8,11.44l0.35,4.29l-2.84,3.93h-7.1l-15.26,6.43L761.17,427.98L761.17,427.98M825.74,496.26l-1.77,7.15l0.35,5l5.32-0.36l6.03-9.29L825.74,496.26L825.74,496.26z\",\"name\":\"Australia\"},\"nz\":{\"path\":\"M913.02,481.96l1.06,11.8l-1.42,5.36l-5.32,3.93l0.35,4.65v5l1.42,1.79l14.55-12.51v-2.86h-3.55l-4.97-16.8L913.02,481.96L913.02,481.96M902.38,507.7l2.84,5.36l-7.81,7.51l-0.71,3.93l-5.32,0.71l-8.87,8.22l-8.16-3.93l-0.71-2.86l14.9-6.43L902.38,507.7L902.38,507.7z\",\"name\":\"New Zealand\"},\"nc\":{\"path\":\"M906.64,420.47l-0.35,1.79l4.61,6.43l2.48,1.07l0.35-2.5L906.64,420.47L906.64,420.47z\",\"name\":\"New Caledonia\"},\"my\":{\"path\":\"M764.14,332.92l3.02,3.49l11.58-4.01l2.29-8.84l5.16-0.37l4.72-3.42l-6.12-4.46l-1.4-2.45l-3.02,5.57l1.11,3.2l-1.84,2.67l-3.47-0.89l-8.41,6.17l0.22,3.57L764.14,332.92L764.14,332.92M732.71,315.45l2.01,4.51l0.45,5.86l2.69,4.17l6.49,3.94l2.46,0.23l-0.45-4.06l-2.13-5.18l-3.12-6.63l-0.26,1.16l-3.76-0.17l-2.7-3.88L732.71,315.45L732.71,315.45z\",\"name\":\"Malaysia\"},\"bn\":{\"path\":\"M779.77,319.25l-2.88,3.49l2.36,0.74l1.33-1.86L779.77,319.25L779.77,319.25z\",\"name\":\"Brunei Darussalam\"},\"tl\":{\"path\":\"M806.14,368.42l-5.11,4.26l0.49,1.09l2.16-0.4l2.55-2.38l5.01-0.69l-0.98-1.68L806.14,368.42L806.14,368.42z\",\"name\":\"Timor-Leste\"},\"sb\":{\"path\":\"M895.43,364.65l0.15,2.28l1.39,1.32l1.31-0.81l-1.17-2.43L895.43,364.65L895.43,364.65M897.18,370.31l-1.17,1.25l1.24,2.28l1.46,0.44l-0.07-1.54L897.18,370.31L897.18,370.31M900.03,368.99l1.02,2.5l1.97,2.35l1.09-1.76l-1.46-2.5L900.03,368.99L900.03,368.99M905.14,372.74l0.58,3.09l1.39,1.91l1.17-2.42L905.14,372.74L905.14,372.74M906.74,379.65l-0.51,0.88l1.68,2.21l1.17,0.07l-0.73-2.87L906.74,379.65L906.74,379.65M903.02,384.05l-1.75,0.81l1.53,2.13l1.31-0.74L903.02,384.05L903.02,384.05z\",\"name\":\"Solomon Islands\"},\"vu\":{\"path\":\"M920.87,397.22l-1.24,1.66l0.52,1.87l0.62,0.42l1.13-1.46L920.87,397.22L920.87,397.22M921.49,402.31l0.1,1.35l1.34,0.42l0.93-0.52l-0.93-1.46L921.49,402.31L921.49,402.31M923.45,414.37l-0.62,0.94l0.93,1.04l1.55-0.52L923.45,414.37L923.45,414.37z\",\"name\":\"Vanuatu\"},\"fj\":{\"path\":\"M948.62,412.29l-1.24,1.66l-0.1,1.87l1.44,1.46L948.62,412.29L948.62,412.29z\",\"name\":\"Fiji\"},\"ph\":{\"path\":\"M789.37,297.53l-0.86,1.64l-0.48,2.02l-4.78,6.07l0.29,1.25l2.01-0.29l6.21-6.94L789.37,297.53L789.37,297.53M797.11,295.22l-0.1,5.01l1.82,1.83l0.67,3.56l1.82,0.39l0.86-2.22l-1.43-1.06l-0.38-6.26L797.11,295.22L797.11,295.22M802.28,297.15l-0.1,4.43l1.05,1.73l1.82-2.12l-0.48-3.85L802.28,297.15L802.28,297.15M803.42,293.29l1.82,2.41l0.86,2.31h1.63l-0.29-3.95l-1.82-1.25L803.42,293.29L803.42,293.29M806.96,302.35l0.38,2.89l-3.35,2.7l-2.77,0.29l-2.96,3.18l0.1,1.45l2.77-0.87l1.91-1.25l1.63,4.14l2.87,2.02l1.15-0.39l1.05-1.25l-2.29-2.31l1.34-1.06l1.53,1.25l1.05-1.73l-1.05-2.12l-0.19-4.72L806.96,302.35L806.96,302.35M791.38,272.97l-2.58,1.83l-0.29,5.78l4.02,7.8l1.34,1.06l1.72-1.16l2.96,0.48l0.57,2.6l2.2,0.19l1.05-1.44l-1.34-1.83l-1.63-1.54l-3.44-0.38l-1.82-2.99l2.1-3.18l0.19-2.79l-1.43-3.56L791.38,272.97L791.38,272.97M792.72,290.21l0.76,2.7l1.34,0.87l0.96-1.25l-1.53-2.12L792.72,290.21L792.72,290.21z\",\"name\":\"Philippines\"},\"cn\":{\"path\":\"M759.83,270.17l-2.39,0.67l-1.72,2.12l1.43,2.79l2.1,0.19l2.39-2.12l0.57-2.79L759.83,270.17L759.83,270.17M670.4,170.07l-3.46,8.7l-4.77-0.25l-5.03,11.01l4.27,5.44l-8.8,12.15l-4.52-0.76l-3.02,3.8l0.75,2.28l3.52,0.25l1.76,4.05l3.52,0.76l10.81,13.93v7.09l5.28,3.29l5.78-1.01l7.29,4.3l8.8,2.53l4.27-0.51l4.78-0.51l10.05-6.58l3.27,0.51l1.25,2.97l2.77,0.83l3.77,5.57l-2.51,5.57l1.51,3.8l4.27,1.52l0.75,4.56l5.03,0.51l0.75-2.28l7.29-3.8l4.52,0.25l5.28,5.82l3.52-1.52l2.26,0.25l1.01,2.79l1.76,0.25l2.51-3.54l10.05-3.8l9.05-10.89l3.02-10.38l-0.25-6.84l-3.77-0.76l2.26-2.53l-0.5-4.05l-9.55-9.62v-4.81l2.76-3.54l2.76-1.27l0.25-2.79h-7.04l-1.26,3.8l-3.27-0.76l-4.02-4.3l2.51-6.58l3.52-3.8l3.27,0.25l-0.5,5.82l1.76,1.52l4.27-4.3l1.51-0.25l-0.5-3.29l4.02-4.81l3.02,0.25l1.76-5.57l2.06-1.09l0.21-3.47l-2-2.1l-0.17-5.48l3.85-0.25l-0.25-14.13l-2.7,1.62l-1.01,3.62l-4.51-0.01l-13.07-7.35l-9.44-11.38l-9.58-0.1l-2.44,2.12l3.1,7.1l-1.08,6.66l-3.86,1.6l-2.17-0.17l-0.16,6.59l2.26,0.51l4.02-1.77l5.28,2.53v2.53l-3.77,0.25l-3.02,6.58l-2.76,0.25l-9.8,12.91l-10.3,4.56l-7.04,0.51l-4.77-3.29l-6.79,3.55l-7.29-2.28l-1.76-4.81l-12.31-0.76l-6.53-10.63h-2.76l-2.22-4.93L670.4,170.07z\",\"name\":\"China\"},\"tw\":{\"path\":\"M787.46,248.31l-3.54,2.7l-0.19,5.2l3.06,3.56l0.76-0.67L787.46,248.31L787.46,248.31z\",\"name\":\"Taiwan\"},\"jp\":{\"path\":\"M803.23,216.42l-1.63,1.64l0.67,2.31l1.43,0.1l0.96,5.01l1.15,1.25l2.01-1.83l0.86-3.28l-2.49-3.56L803.23,216.42L803.23,216.42M812.03,213.15l-2.77,2.6l-0.1,2.99l0.67,0.87l3.73-3.18l-0.29-3.18L812.03,213.15L812.03,213.15M808.2,206.98l-4.88,5.59l0.86,1.35l2.39,0.29l4.49-3.47l3.16-0.58l2.87,3.37l2.2-0.77l0.86-3.28l4.11-0.1l4.02-4.82l-2.1-8l-0.96-4.24l2.1-1.73l-4.78-7.22l-1.24,0.1l-2.58,2.89v2.41l1.15,1.35l0.38,6.36l-2.96,3.66l-1.72-1.06l-1.34,2.99l-0.29,2.79l1.05,1.64l-0.67,1.25l-2.2-1.83h-1.53l-1.34,0.77L808.2,206.98L808.2,206.98M816.43,163.44l-1.53,1.35l0.77,2.89l1.34,1.35l-0.1,4.43l-1.72,0.67l-1.34,2.99l3.92,5.39l2.58-0.87l0.48-1.35l-2.77-2.5l1.72-2.22l1.82,0.29l1.43,1.54l0.1-3.18l3.92-3.18l2.2-0.58l-1.82-3.08l-0.86-1.35l-1.43,0.96l-1.24,1.54l-2.68-0.58l-2.77-1.83L816.43,163.44L816.43,163.44z\",\"name\":\"Japan\"},\"ru\":{\"path\":\"M506.61,151.72l-1.5-0.15l-2.7,3.23v1.51l0.9,0.35l1.75,0.05l2.9-2.37l0.4-0.81L506.61,151.72L506.61,151.72M830.86,160.45l-2.68,3.76l0.19,1.83l1.34-0.58l3.15-3.95L830.86,160.45L830.86,160.45M834.4,154.96l-0.96,2.6l0.1,1.73l1.63-1.06l1.53-3.08V154L834.4,154.96L834.4,154.96M840.04,132.03l-1.24,1.54l0.1,2.41l1.15-0.1l1.91-3.37L840.04,132.03L840.04,132.03M837.75,137.91v4.24l1.34,0.48l0.96-1.54v-3.27L837.75,137.91L837.75,137.91M798.64,122.59l-0.09,6.17l7.74,11.95l2.77,10.4l4.88,9.25l1.91,0.67l1.63-1.35l0.76-2.22l-6.98-7.61l0.19-3.95l1.53-0.67l0.38-2.31l-13.67-19.36L798.64,122.59L798.64,122.59M852.57,103.42l-1.91,0.19l1.15,1.64l2.39,1.64l0.67-0.77L852.57,103.42L852.57,103.42M856.29,104.58l0.29,1.64l2.96,0.87l0.29-1.16L856.29,104.58L856.29,104.58M547.82,38.79l1.72,0.69l-1.21,2.08v2.95l-2.58,1.56H543l-1.55-1.91l0.17-2.08l1.21-1.56h2.41L547.82,38.79L547.82,38.79M554.36,36.88v2.08l1.72,1.39l2.41-0.17l2.07-1.91v-1.39h-1.89l-1.55,0.52l-1.21-1.39L554.36,36.88L554.36,36.88M564.18,37.06l1.21,2.6l2.41,0.17l1.72-0.69l-0.86-2.43l-2.24-0.52L564.18,37.06L564.18,37.06M573.99,33.59l-1.89-0.35l-1.72,1.74l0.86,1.56l0.52,2.43l2.24-1.73l0.52-1.91L573.99,33.59L573.99,33.59M584.49,51.98l-0.52,2.43l-3.96,3.47l-8.44,1.91l-6.89,11.45l-1.21,3.3l6.89,1.74l1.03-4.16l2.07-6.42l5.34-2.78l4.48-3.47l3.27-1.39h1.72v-4.68L584.49,51.98L584.49,51.98M562.28,77.31l4.65,0.52l1.55,5.38l3.96,4.16l-1.38,2.78h-2.41l-2.24-2.6l-4.99-0.17l-2.07-2.78v-1.91l3.1-0.87L562.28,77.31L562.28,77.31M634.95,18.15l-2.24-1.39h-2.58l-0.52,1.56l-2.75,1.56l-2.07,0.69l-0.34,2.08l4.82,0.35L634.95,18.15L634.95,18.15M640.28,18.67l-1.21,2.6l-2.41-0.17l-3.79,2.78l-1.03,3.47h2.41l1.38-2.26l3.27,2.43l3.1-1.39l2.24-1.91l-0.86-2.95l-1.21-2.08L640.28,18.67L640.28,18.67M645.28,20.58l1.21,4.86l1.89,4.51l2.07-3.64l3.96-0.87v-2.6l-2.58-1.91L645.28,20.58L645.28,20.58M739.76,12.8l2.69,2.26l1.91-0.79l0.56-3.17L741,8.39l-2.58,1.7l-6.28,0.57v2.83l-6.62,0.11v4.63l7.74,5.76l2.02-1.47l-0.45-4.07l4.94-1.24l-1.01-1.92l-1.79-1.81L739.76,12.8L739.76,12.8M746.94,10.09l1.79,3.39l6.96-0.79l1.91-2.49l-0.45-2.15l-1.91-0.79l-1.79,1.36l-5.16,1.13L746.94,10.09L746.94,10.09M746.49,23.31l-3.48-0.9L741,24.56l-0.9,2.94l4.71-0.45l3.59-1.81L746.49,23.31L746.49,23.31M836.68,3.76l-2.92-0.9L830.4,4.1l-1.68,2.49l2.13,2.83l5.61-2.49l1.12-1.24L836.68,3.76L836.68,3.76M817.97,72.93l1.76,6.08l3.52,1.01l3.52-5.57l-2.01-3.8l0.75-3.29h5.28l-1.26,2.53l0.5,9.12l-7.54,18.74l0.75,4.05l-0.25,6.84l14.07,20.51l2.76,0.76l0.25-16.71l2.76-2.53l-3.02-6.58l2.51-2.79l-5.53-7.34l-3.02,0.25l-1-12.15l7.79-2.03l0.5-3.55l4.02-1.01l2.26,2.03l2.76-11.14l4.77-8.1l3.77-2.03l3.27,0.25v-3.8l-5.28-1.01l-7.29-6.08l3.52-4.05l-3.02-6.84l2.51-2.53l3.02,4.05l7.54,2.79l8.29,0.76l1.01-3.54l-4.27-4.3l4.77-6.58l-10.81-3.8l-2.76,5.57l-3.52-4.56l-19.85-6.84l-18.85,3.29l-2.76,1.52v1.52l4.02,2.03l-0.5,4.81l-7.29-3.04l-16.08,6.33l-2.76-5.82h-11.06l-5.03,5.32l-17.84-4.05l-16.33,3.29l-2.01,5.06l2.51,0.76l-0.25,3.8l-15.83,1.77l1.01,5.06l-14.58-2.53l3.52-6.58l-14.83-0.76l1.26,6.84l-4.77,2.28l-4.02-3.8l-16.33,2.79l-6.28,5.82l-0.25,3.54l-4.02,0.25l-0.5-4.05l12.82-11.14v-7.6l-8.29-2.28l-10.81,3.54l-4.52-4.56h-2.01l-2.51,5.06l2.01,2.28l-14.33,7.85l-12.31,9.37l-7.54,10.38v4.3l8.04,3.29l-4.02,3.04l-8.54-3.04l-3.52,3.04l-5.28-6.08l-1.01,2.28l5.78,18.23l1.51,0.51l4.02-2.03l2.01,1.52v3.29l-3.77-1.52l-2.26,1.77l1.51,3.29l-1.26,8.61l-7.79,0.76l-0.5-2.79l4.52-2.79l1.01-7.6l-5.03-6.58l-1.76-11.39l-8.04-1.27l-0.75,4.05l1.51,2.03l-3.27,2.79l1.26,7.6l4.77,2.03l1.01,5.57l-4.78-3.04l-12.31-2.28l-1.51,4.05l-9.8,3.54l-1.51-2.53l-12.82,7.09l-0.25,4.81l-5.03,0.76l1.51-3.54v-3.54l-5.03-1.77l-3.27,1.27l2.76,5.32l2.01,3.54v2.79l-3.77-0.76l-0.75-0.76l-3.77,4.05l2.01,3.54l-8.54-0.25l2.76,3.55l-0.75,1.52h-4.52l-3.27-2.28l-0.75-6.33l-5.28-2.03v-2.53l11.06,2.28l6.03,0.51l2.51-3.8l-2.26-4.05l-16.08-6.33l-5.55,1.38l-1.9,1.63l0.59,3.75l2.36,0.41l-0.55,5.9l7.28,17.1l-5.26,8.34l-0.36,1.88l2.67,1.88l-2.41,1.59l-1.6,0.03l0.3,7.35l2.21,3.13l0.03,3.04l2.83,0.26l4.33,1.65l4.58,6.3l0.05,1.66l-1.49,2.55l3.42-0.19l3.33,0.96l4.5,6.37l11.08,1.01l-0.48,7.58l-3.82,3.27l0.79,1.28l-3.77,4.05l-1,3.8l2.26,3.29l7.29,2.53l3.02-1.77l19.35,7.34l0.75-2.03l-4.02-3.8v-4.81l-2.51-0.76l0.5-4.05l4.02-4.81l-7.21-5.4l0.5-7.51l7.71-5.07l9.05,0.51l1.51,2.79l9.3,0.51l6.79-3.8l-3.52-3.8l0.75-7.09l17.59-8.61l13.53,6.1l4.52-4.05l13.32,12.66l10.05-1.01l3.52,3.54l9.55,1.01l6.28-8.61l8.04,3.55l4.27,0.76l4.27-3.8l-3.77-2.53l3.27-5.06l9.3,3.04l2.01,4.05l4.02,0.25l2.51-1.77l6.79-0.25l0.75,1.77l7.79,0.51l5.28-5.57l10.81,1.27l3.27-1.27l1-6.08l-3.27-7.34l3.27-2.79h10.3l9.8,11.65l12.56,7.09h3.77l0.5-3.04l4.52-2.79l0.5,16.46l-4.02,0.25v4.05l2.26,2.79l-0.42,3.62l1.67,0.69l1.01-2.53l1.51,0.51l1,1.01l4.52-1.01l4.52-13.17l0.5-16.46l-5.78-13.17l-7.29-8.86l-3.52,0.51v2.79l-8.54-3.29l3.27-7.09l2.76-18.74l11.56-3.54l5.53-3.54h6.03L805.86,96l1.51,2.53l5.28-5.57l3.02,0.25l-0.5-3.29l-4.78-1.01l3.27-11.9L817.97,72.93L817.97,72.93z\",\"name\":\"Russian Federation\"},\"us\":{\"path\":\"M69.17,53.35l3.46,6.47l2.22-0.5v-2.24L69.17,53.35L69.17,53.35M49.66,110.26l-0.17,3.01l2.16-0.5v-1.34L49.66,110.26L49.66,110.26M46.34,111.6l-4.32,2.18l0.67,2.34l1.66-1.34l3.32-1.51L46.34,111.6L46.34,111.6M28.39,114.44l-2.99-0.67l-0.5,1.34l0.33,2.51L28.39,114.44L28.39,114.44M22.07,114.28l-2.83-1.17l-1,1.84l1.83,1.84L22.07,114.28L22.07,114.28M12.27,111.6l-1.33-1.84l-1.33,0.5v2.51l1.5,1L12.27,111.6L12.27,111.6M1.47,99.71l1.66,1.17l-0.5,1.34H1.47V99.71L1.47,99.71M10,248.7l-0.14,2.33l2.04,1.37l1.22-1.09L10,248.7L10,248.7M15.29,252.13l-1.9,1.37l1.63,2.05l1.9-1.64L15.29,252.13L15.29,252.13M19.1,255.41l-1.63,2.19l0.54,1.37l2.31-1.09L19.1,255.41L19.1,255.41M21.81,259.65l-0.95,5.47l0.95,2.05l3.12-0.96l1.63-2.74l-3.4-3.15L21.81,259.65L21.81,259.65M271.05,281.06l-2.64-0.89l-2.12,1.33l1.06,1.24l3.61,0.53L271.05,281.06L271.05,281.06M93.11,44.89l-8.39,1.99l1.73,9.45l9.13,2.49l0.49,1.99L82.5,65.04l-7.65,12.68l2.71,13.43L82,94.13l3.46-3.23l0.99,1.99l-4.2,4.97l-16.29,7.46l-10.37,2.49l-0.25,3.73l23.94-6.96l9.87-2.74l9.13-11.19l10.12-6.71l-5.18,8.7l5.68,0.75l9.63-4.23l1.73,6.96l6.66,1.49l6.91,6.71l0.49,4.97l-0.99,1.24l1.23,4.72h1.73l0.25-7.96h1.97l0.49,19.64l4.94-4.23l-3.46-20.39h-5.18l-5.68-7.21l27.89-47.25l-27.64-21.63l-30.85,5.97l-1.23,9.45l6.66,3.98l-2.47,6.47L93.11,44.89L93.11,44.89M148.76,158.34l-1,4.02l-3.49-2.26h-1.74l-1,4.27l-12.21,27.36l3.24,23.84l3.99,2.01l0.75,6.53h8.22l7.97,6.02l15.69,1.51l1.74,8.03l2.49,1.76l3.49-3.51l2.74,1.25l2.49,11.54l4.23,2.76l3.49-6.53l10.71-7.78l6.97,3.26l5.98,0.5l0.25-3.76l12.45,0.25l2.49,2.76l0.5,6.27l-1.49,3.51l1.74,6.02h3.74l3.74-5.77l-1.49-2.76l-1.49-6.02l2.24-6.78l10.21-8.78l7.72-2.26l-1-7.28l10.71-11.55l10.71-1.76L272.8,199l10.46-6.02v-8.03l-1-0.5l-3.74,1.25l-0.5,4.92l-12.43,0.15l-9.74,6.47l-15.29,5l-2.44-2.99l6.94-10.5l-3.43-3.27l-2.33-4.44l-4.83-3.88l-5.25-0.44l-9.92-6.77L148.76,158.34L148.76,158.34z\",\"name\":\"United States of America\"},\"mu\":{\"path\":\"M613.01,398.99l-1.52,1.99l0.3,2.15l3.2-2.61L613.01,398.99L613.01,398.99z\",\"name\":\"Mauritius\"},\"re\":{\"path\":\"M607.38,402.37l-2.28,0.15l-0.15,1.99l1.52,0.31l2.28-1.07L607.38,402.37L607.38,402.37z\",\"name\":\"Reunion\"},\"mg\":{\"path\":\"M592.3,372.92l-2.13,5.06l-3.65,6.44l-6.39,0.46l-2.74,3.22l0.46,9.82l-3.96,4.6l0.46,7.82l3.35,3.83l3.96-0.46l3.96-2.92l-0.91-4.6l9.13-15.8l-1.83-1.99l1.83-3.83l1.98,0.61l0.61-1.53l-1.83-7.82l-1.07-3.22L592.3,372.92L592.3,372.92z\",\"name\":\"Madagascar\"},\"km\":{\"path\":\"M577.69,371.23l0.46,1.53l1.98,0.31l0.76-1.99L577.69,371.23L577.69,371.23M580.58,374.3l0.76,1.69h1.22l0.61-2.15L580.58,374.3L580.58,374.3z\",\"name\":\"Comoros\"},\"sc\":{\"path\":\"M602.35,358.34l-0.61,1.23l1.67,1.38l1.22-1.38L602.35,358.34L602.35,358.34M610.88,349.14l-1.83,1.23l1.37,2.15h1.83L610.88,349.14L610.88,349.14M611.64,354.51l-1.22,1.38l0.91,1.38l1.67,0.31l0.15-2.92L611.64,354.51L611.64,354.51z\",\"name\":\"Seychelles\"},\"mv\":{\"path\":\"M656.4,320.76l0.3,2.61l1.67,0.61l0.3-2.3L656.4,320.76L656.4,320.76M658.53,326.28l-0.15,3.22l1.22,0.61l1.07-2.15L658.53,326.28L658.53,326.28M658.84,332.57l-1.07,1.07l1.22,1.07l1.52-1.07L658.84,332.57L658.84,332.57z\",\"name\":\"Maldives\"},\"pt\":{\"path\":\"M372.64,217.02l-1.36,1.37l2.44,1.37l0.27-1.91L372.64,217.02L372.64,217.02M379.97,216.2l-1.63,1.09l1.36,1.09l2.17-0.55L379.97,216.2L379.97,216.2M381.05,220.03l-0.81,2.19l1.08,1.37l1.36-1.09L381.05,220.03L381.05,220.03M387.56,224.4l-0.54,1.37l0.81,0.82l2.17-1.37L387.56,224.4L387.56,224.4M408.18,236.42l-1.08,1.37l1.08,1.37l1.63-0.82L408.18,236.42L408.18,236.42M430.93,211.24l-0.62,8.65l-1.77,1.6l0.18,0.98l1.24,2.05l-0.8,2.5l1.33,0.45l3.1-0.36l-0.18-2.5l2.03-11.59l-0.44-1.6L430.93,211.24L430.93,211.24z\",\"name\":\"Portugal\"},\"es\":{\"path\":\"M415.62,253.73l-1.75,1.01l0.81,0.82L415.62,253.73L415.62,253.73M409.54,253.92l-2.17,0.55l1.08,1.64h1.63L409.54,253.92L409.54,253.92M404.38,252.28l-1.36,1.37l1.9,1.64l1.08-2.46L404.38,252.28L404.38,252.28M448.36,205h-12.74l-2.57-1.16l-1.24,0.09l-1.5,3.12l0.53,3.21l4.87,0.45l0.62,2.05l-2.12,11.95l0.09,2.14l3.45,1.87l3.98,0.27l7.96-1.96l3.89-4.9l0.09-4.99l6.9-6.24l0.35-2.76l-6.28-0.09L448.36,205L448.36,205M461.1,217.21l-1.59,0.54l0.35,1.43h2.3l0.97-1.07L461.1,217.21L461.1,217.21z\",\"name\":\"Spain\"},\"cv\":{\"path\":\"M387.56,290.54l-1.9,1.09l1.36,1.09l1.63-0.82L387.56,290.54L387.56,290.54M392.23,292.74l-1.24,1.1l0.88,1.63l2.12-0.95L392.23,292.74L392.23,292.74M389.52,295.83l-1.59,0.95l1.71,2.29l1.35-0.71L389.52,295.83L389.52,295.83z\",\"name\":\"Cape Verde\"},\"pf\":{\"path\":\"M27.25,402.68l-1.9-0.14l-0.14,1.78l1.49,0.96l1.77-1.09L27.25,402.68L27.25,402.68M33.77,404.6l-2.72,1.78l2.04,2.46l1.77-0.41l0.95-1.23L33.77,404.6L33.77,404.6z\",\"name\":\"French Polynesia\"},\"kn\":{\"path\":\"M276.6,283.37l-1.5,0.62l0.53,1.33l1.76-1.15l-0.35-0.36L276.6,283.37L276.6,283.37z\",\"name\":\"Saint Kitts and Nevis\"},\"ag\":{\"path\":\"M279.07,284.88l-0.88,1.87l1.06,1.42l1.32-1.15L279.07,284.88L279.07,284.88z\",\"name\":\"Antigua and Barbuda\"},\"dm\":{\"path\":\"M282.07,290.03l-1.06,0.98l0.79,1.6l1.5-0.44L282.07,290.03L282.07,290.03z\",\"name\":\"Dominica\"},\"lc\":{\"path\":\"M281.98,294.03l-0.71,1.51l1.15,1.24l1.5-0.8L281.98,294.03L281.98,294.03z\",\"name\":\"Saint Lucia\"},\"bb\":{\"path\":\"M282.07,297.85l-1.23,0.89l0.97,1.78l1.59-0.89L282.07,297.85L282.07,297.85z\",\"name\":\"Barbados\"},\"gd\":{\"path\":\"M280.57,301.31l-1.15,1.15l0.44,0.71h1.41l0.44-1.16L280.57,301.31L280.57,301.31z\",\"name\":\"Grenada\"},\"tt\":{\"path\":\"M282.24,304.78l-1.06,0.98l-1.15,0.18v1.42l2.12,1.95l0.88-1.42l0.53-1.6l-0.18-1.33L282.24,304.78L282.24,304.78z\",\"name\":\"Trinidad and Tobago\"},\"do\":{\"path\":\"M263.11,280.44l-5.29-3.46l-2.5-0.85l-0.84,6l0.88,1.69l1.15-1.33l3.35-0.89l2.91,0.62L263.11,280.44L263.11,280.44z\",\"name\":\"Dominican Republic\"},\"ht\":{\"path\":\"M250.86,275.38l3.44,0.36l-0.41,4.22l-0.34,2.22l-4.01-0.22l-0.71,1.07l-1.23-0.09l-0.44-2.31l4.23-0.35l-0.26-2.4l-1.94-0.8L250.86,275.38L250.86,275.38z\",\"name\":\"Haiti\"},\"fk\":{\"path\":\"M307.95,508.18l-2.63-0.29l-2.62,1.76l1.9,2.06L307.95,508.18L307.95,508.18M310.57,506.86l-0.87,2.79l-2.48,2.2l0.15,0.73l4.23-1.62l1.75-2.2L310.57,506.86L310.57,506.86z\",\"name\":\"Falkland Islands\"},\"is\":{\"path\":\"M406.36,117.31l-1.96-1.11l-2.64,1.67l-2.27,2.1l0.06,1.17l2.94,0.37l-0.18,2.1l-1.04,1.05l0.25,0.68l2.94,0.19v3.4l4.23,0.74l2.51,1.42l2.82,0.12l4.84-2.41l3.74-4.94l0.06-3.34l-2.27-1.92l-1.9-1.61l-0.86,0.62l-1.29,1.67l-1.47-0.19l-1.47-1.61l-1.9,0.18l-2.76,2.29l-1.66,1.79l-0.92-0.8l-0.06-1.98l0.92-0.62L406.36,117.31L406.36,117.31z\",\"name\":\"Iceland\"},\"no\":{\"path\":\"M488.26,53.96l-1.65-1.66l-3.66,1.78h-6.72L475.17,58l3.77,3.33l1.65-0.24l2.36-4.04l2,1.43l-1.42,2.85l-0.71,4.16l1.65,2.61l3.54-5.94l4.6-5.59l-1.77-1.54L488.26,53.96L488.26,53.96M490.26,46.83l-2.95,2.73l1.77,2.73h3.18l1.3,1.78l3.89,2.02l4.48-2.61l3.07-2.61l-1.06-2.14l-3.07-1.78l-2.24,2.02l-1.53-1.9l-1.18,0.12l-1.53,3.33l-2.24-2.26l-0.24-1.54L490.26,46.83L490.26,46.83M496.98,59.07l-2.36,2.14l-2,1.54l0.94,1.66l1.89,0.59l3.07-1.43l1.42-1.78l-1.3-2.14L496.98,59.07L496.98,59.07M515.46,102.14l2.02-1.48L517.3,99l-1.28-0.74l0.18-2.03h1.1v-1.11l-4.77-1.29l-7.15,0.74l-0.73,3.14L503,97.16l-1.1-1.85l-3.49,0.18L498.04,99l-1.65,0.74l-0.92-1.85l-7.34,5.91l1.47,1.66l-2.75,1.29l-6.24,12.38l-2.2,1.48l0.18,1.11l2.2,1.11l-0.55,2.4l-3.67-0.19l-1.1-1.29l-2.38,2.77l-1.47,1.11l-0.37,2.59l-1.28,0.74l-3.3,0.74l-1.65,5.18l1.1,8.5l1.28,3.88l1.47,1.48l3.3-0.18l4.77-4.62l1.83-3.14l0.55,4.62l3.12-5.54l0.18-15.53l2.54-1.6l0.76-8.57l7.7-11.09l3.67-1.29l1.65-2.03l5.5,1.29l2.75,1.66l0.92-4.62l4.59-2.77L515.46,102.14L515.46,102.14z\",\"name\":\"Norway\"},\"lk\":{\"path\":\"M680.54,308.05l0.25,2.72l0.25,1.98l-1.47,0.25l0.74,4.45l2.21,1.24l3.43-1.98l-0.98-4.69l0.25-1.73l-3.19-2.96L680.54,308.05L680.54,308.05z\",\"name\":\"Sri Lanka\"},\"cu\":{\"path\":\"M220.85,266.92v1.27l5.32,0.1l2.51-1.46l0.39,1.07l5.22,1.27l4.64,4.19l-1.06,1.46l0.19,1.66l3.87,0.97l3.87-1.75l1.74-1.75l-2.51-1.27l-12.95-7.6l-4.54-0.49L220.85,266.92L220.85,266.92z\",\"name\":\"Cuba\"},\"bs\":{\"path\":\"M239.61,259.13l-1.26-0.39l-0.1,2.43l1.55,1.56l1.06-1.56L239.61,259.13L239.61,259.13M242.12,262.93l-1.74,0.97l1.64,2.34l0.87-1.17L242.12,262.93L242.12,262.93M247.73,264.68l-1.84-0.1l0.19,1.17l1.35,1.95l1.16-1.27L247.73,264.68L247.73,264.68M246.86,262.35l-3-1.27l-0.58-3.02l1.16-0.49l1.16,2.34l1.16,0.88L246.86,262.35L246.86,262.35M243.96,256.21l-1.55-0.39l-0.29-1.95l-1.64-0.58l1.06-1.07l1.93,0.68l1.45,0.88L243.96,256.21L243.96,256.21z\",\"name\":\"Bahamas\"},\"jm\":{\"path\":\"M238.93,279.59l-3.48,0.88v0.97l2.03,1.17h2.13l1.35-1.56L238.93,279.59L238.93,279.59z\",\"name\":\"Jamaica\"},\"ec\":{\"path\":\"M230.2,335.85l-4.73,2.94l-0.34,4.36l-0.95,1.43l2.98,2.86l-1.29,1.41l0.3,3.6l5.33,1.27l8.07-9.55l-0.02-3.33l-3.87-0.25L230.2,335.85L230.2,335.85z\",\"name\":\"Ecuador\"},\"ca\":{\"path\":\"M203.73,35.89l0.22,4.02l-7.98,8.27l2,6.7l5.76-1.56l3.33-4.92l8.42-3.13l6.87-0.45l-5.32-5.81l-2.66,2.01l-2-0.67l-1.11-2.46l-2.44-2.46L203.73,35.89L203.73,35.89M214.15,24.05l-1.77,3.13l8.65,3.13l3.1-4.69l1.33,3.13h2.22l4.21-4.69l-5.1-1.34l-2-1.56l-2.66,2.68L214.15,24.05L214.15,24.05M229.23,30.31l-6.87,2.9v2.23l8.87,3.35l-2,2.23l1.33,2.9l5.54-2.46h4.66l2.22,3.57l3.77-3.8l-0.89-3.58l-3.1,1.12l-0.44-4.47l1.55-2.68h-1.55l-2.44,1.56l-1.11,0.89l0.67,3.13l-1.77,1.34l-2.66-0.22l-0.67-4.02L229.23,30.31L229.23,30.31M238.32,23.38l-0.67,2.23l4.21,2.01l3.1-1.79l-0.22-1.34L238.32,23.38L238.32,23.38M241.64,19.58l-3.1,1.12l0.22,1.56l6.87-0.45l-0.22-1.56L241.64,19.58L241.64,19.58M256.5,23.38l-0.44,1.56l-1.11,1.56v2.23l4.21-0.67l4.43,3.8h1.55v-3.8l-4.43-4.92L256.5,23.38L256.5,23.38M267.81,27.85l1.77,2.01l-1.55,2.68l1.11,2.9l4.88-2.68v-2.01l-2.88-3.35L267.81,27.85L267.81,27.85M274.24,22.71l0.22,3.57h5.99l1.55,1.34l-0.22,1.56l-5.32,0.67l3.77,5.14l5.1,0.89l7.09-3.13l-10.2-15.42l-3.1,2.01l0.22,2.68l-3.55-1.34L274.24,22.71L274.24,22.71M222.58,47.96l-8.42,2.23l-4.88,4.25l0.44,4.69l8.87,2.68l-2,4.47l-6.43-4.02l-1.77,3.35l4.21,2.9l-0.22,4.69l6.43,1.79l7.76-0.45l1.33-2.46l5.76,6.48l3.99-1.34l0.67-4.47l2.88,2.01l0.44-4.47l-3.55-2.23l0.22-14.07l-3.1-2.46L231.89,56L222.58,47.96L222.58,47.96M249.63,57.79l-2.88-1.34l-1.55,2.01l3.1,4.92l0.22,4.69l6.65-4.02v-5.81l2.44-2.46l-2.44-1.79h-3.99L249.63,57.79L249.63,57.79M263.82,55.78l-4.66,3.8l1.11,4.69h2.88l1.33-2.46l2,2.01l2-0.22l5.32-4.47L263.82,55.78L263.82,55.78M263.37,48.4l-1.11,2.23l4.88,1.79l1.33-2.01L263.37,48.4L263.37,48.4M260.49,39.91l-4.88,0.67l-2.88,2.68l5.32,0.22l-1.55,4.02l1.11,1.79l1.55-0.22l3.77-6.03L260.49,39.91L260.49,39.91M268.92,38.35l-2.66,0.89l0.44,3.57l4.43,2.9l0.22,2.23l-1.33,1.34l0.67,4.47l17.07,5.58l4.66,1.56l4.66-4.02l-5.54-4.47l-5.1,1.34l-7.09-0.67l-2.66-2.68l-0.67-7.37l-4.43-2.23L268.92,38.35L268.92,38.35M282.88,61.59L278,61.14l-5.76,2.23l-3.1,4.24l0.89,11.62l9.53,0.45l9.09,4.47l6.43,7.37l4.88-0.22l-1.33,6.92l-4.43,7.37l-4.88,2.23l-3.55-0.67l-1.77-1.56l-2.66,3.57l1.11,3.57l3.77,0.22l4.66-2.23l3.99,10.28l9.98,6.48l6.87-8.71l-5.76-9.38l3.33-3.8l4.66,7.82l8.42-7.37l-1.55-3.35l-5.76,1.79l-3.99-10.95l3.77-6.25l-7.54-8.04l-4.21,2.9l-3.99-8.71l-8.42,1.12l-2.22-10.5l-6.87,4.69l-0.67,5.81h-3.77l0.44-5.14L282.88,61.59L282.88,61.59M292.86,65.61l-1.77,1.79l1.55,2.46l7.32,0.89l-4.66-4.92L292.86,65.61L292.86,65.61M285.77,40.36v2.01l-4.88,1.12l1.33,2.23l5.54,2.23l6.21,0.67l4.43,3.13l4.43-2.46l-3.1-3.13h3.99l2.44-2.68l5.99-0.89v-1.34l-3.33-2.23l0.44-2.46l9.31,1.56l13.75-5.36l-5.1-1.56l1.33-1.79h10.64l1.77-1.79l-21.51-7.6l-5.1-1.79l-5.54,4.02l-6.21-5.14l-3.33-0.22l-0.67,4.25l-4.21-3.8l-4.88,1.56l0.89,2.46l7.32,1.56l-0.44,3.57l3.99,2.46l9.76-2.46l0.22,3.35l-7.98,3.8l-4.88-3.8l-4.43,0.45l4.43,6.26l-2.22,1.12l-3.33-2.9l-2.44,1.56l2.22,4.24h3.77l-0.89,4.02l-3.1-0.45l-3.99-4.25L285.77,40.36L285.77,40.36M266.01,101.85l-4.23,5.32l-0.26,5.86l3.7-2.13h4.49l3.17,2.93l2.91-2.4L266.01,101.85L266.01,101.85M317.52,171.05l-10.57,10.12l1.06,2.4l12.94,4.79l1.85-3.19l-1.06-5.32l-4.23,0.53l-2.38-2.66l3.96-3.99L317.52,171.05L317.52,171.05M158.22,48.66l1.99,3.01l1,4.02l4.98,1.25l3.49-3.76l2.99,1.51l8.47,0.75l5.98-2.51l1,8.28h3.49V57.7l3.49,0.25l8.72,10.29l5.73,3.51l-2.99,4.77l1.25,1.25L219,80.03l0.25,5.02l2.99,0.5l0.75-7.53l4.73-1.25l3.49,5.27l7.47,3.51l3.74,0.75l2.49-3.01l0.25-4.77l4.48-2.76l1.49,4.02l-3.99,7.03l0.5,3.51l2.24-3.51l4.48-4.02l0.25-5.27l-2.49-4.02l0.75-3.26l5.98-3.01l2.74,2.01l0.5,17.57l4.23-3.76l2.49,1.51l-3.49,6.02l4.48,1l6.48-10.04l5.48,5.77l-2.24,10.29l-5.48,3.01l-5.23-2.51l-9.46,2.01l1,3.26l-2.49,4.02l-7.72,1.76l-8.72,6.78l-7.72,10.29l-1,3.26l5.23,2.01l1.99,5.02l7.22,7.28l11.46,5.02l-2.49,11.54l-0.25,3.26l2.99,2.01l3.99-5.27l0.5-10.04l6.23-0.25l2.99-5.77l0.5-8.78l7.97-15.56l9.96,3.51l5.23,7.28l-2.24,7.28l3.99,2.26l9.71-6.53l2.74,17.82l8.97,10.79l0.25,5.52l-9.96,2.51l-4.73,5.02l-9.96-2.26l-4.98-0.25l-8.72,6.78l5.23-1.25l6.48-1.25l1.25,1.51l-1.74,5.52l0.25,5.02l2.99,2.01l2.99-0.75l1.5-2.26h1.99l-3.24,6.02l-6.23,0.25l-2.74,4.02h-3.49l-1-3.01l4.98-5.02l-5.98,2.01l-0.27-8.53l-1.72-1l-5.23,2.26l-0.5,4.27h-11.96l-10.21,7.03l-13.7,4.52l-1.49-2.01l6.9-10.3l-3.92-3.77l-2.49-4.78l-5.07-3.87l-5.44-0.45l-9.75-6.83l-70.71-11.62l-1.17-4.79l-6.48-6.02v-5.02l1-4.52l-0.5-2.51l-2.49-2.51l-0.5-4.02l6.48-4.52l-3.99-21.58l-5.48-0.25l-4.98-6.53L158.22,48.66L158.22,48.66M133.83,128.41l-1.7,3.26l0.59,2.31l1.11,0.69l-0.26,0.94l-1.19,0.34l0.34,3.43l1.28,1.29l1.02-1.11l-1.28-3.34l0.76-2.66l1.87-2.49l-1.36-2.31L133.83,128.41L133.83,128.41M139.45,147.95l-1.53,0.6l2.81,3.26l0.68,3.86l2.81,3l2.38-0.43v-3.94l-2.89-1.8L139.45,147.95L139.45,147.95z\",\"name\":\"Canada\"},\"gt\":{\"path\":\"M194.88,291.52l5.93,4.34l5.98-7.43l-1.02-1.54l-2.04-0.07v-4.35l-1.53-0.93l-4.63,1.38l1.77,4.08L194.88,291.52L194.88,291.52z\",\"name\":\"Guatemala\"},\"hn\":{\"path\":\"M207.55,288.78l9.24-0.35l2.74,3.26l-1.71-0.39l-3.29,0.14l-4.3,4.04l-1.84,4.09l-1.21-0.64l-0.01-4.48l-2.66-1.78L207.55,288.78L207.55,288.78z\",\"name\":\"Honduras\"},\"sv\":{\"path\":\"M201.65,296.27l4.7,2.34l-0.07-3.71l-2.41-1.47L201.65,296.27L201.65,296.27z\",\"name\":\"El Salvador\"},\"ni\":{\"path\":\"M217.74,292.11l2.19,0.44l0.07,4.49l-2.55,7.28l-6.87-0.68l-1.53-3.51l2.04-4.26l3.87-3.6L217.74,292.11L217.74,292.11z\",\"name\":\"Nicaragua\"},\"cr\":{\"path\":\"M217.38,304.98l1.39,2.72l1.13,1.5l-1.52,4.51l-2.9-2.04l-4.74-4.34v-2.87L217.38,304.98L217.38,304.98z\",\"name\":\"Costa Rica\"},\"pa\":{\"path\":\"M220.59,309.61l-1.46,4.56l4.82,1.25l2.99,0.59l0.51-3.53l3.21-1.62l2.85,1.47l1.12,1.79l1.36-0.16l1.07-3.25l-3.56-1.47l-2.7-1.47l-2.7,1.84l-3.21,1.62l-3.28-1.32L220.59,309.61L220.59,309.61z\",\"name\":\"Panama\"},\"co\":{\"path\":\"M253.73,299.78l-2.06-0.21l-13.62,11.23l-1.44,3.95l-1.86,0.21l0.83,8.73l-4.75,11.65l5.16,4.37l6.61,0.42l4.54,6.66l6.6,0.21l-0.21,4.99H256l2.68-9.15l-2.48-3.12l0.62-5.82l5.16-0.42l-0.62-13.52l-11.56-3.74l-2.68-7.28L253.73,299.78L253.73,299.78z\",\"name\":\"Colombia\"},\"ve\":{\"path\":\"M250.46,305.92l0.44,2.59l3.25,1.03l0.74-4.77l3.43-3.55l3.43,4.02l7.89,2.15l6.68-1.4l4.55,5.61l3.43,2.15l-3.76,5.73l1.26,4.34l-2.15,2.66l-2.23,1.87l-4.83-2.43l-1.11,1.12v3.46l3.53,1.68l-2.6,2.81l-2.6,2.81l-3.43-0.28l-3.45-3.79l-0.73-14.26l-11.78-4.02l-2.14-6.27L250.46,305.92L250.46,305.92z\",\"name\":\"Venezuela\"},\"gy\":{\"path\":\"M285.05,314.13l7.22,6.54l-2.87,3.32l-0.23,1.97l3.77,3.89l-0.09,3.74l-6.56,2.5l-3.93-5.31l0.84-6.38l-1.68-4.75L285.05,314.13L285.05,314.13z\",\"name\":\"Guyana\"},\"sr\":{\"path\":\"M293.13,321.14l2.04,1.87l3.16-1.96l2.88,0.09l-0.37,1.12l-1.21,2.52l-0.19,6.27l-5.75,2.34l0.28-4.02l-3.71-3.46l0.19-1.78L293.13,321.14L293.13,321.14z\",\"name\":\"Suriname\"},\"gf\":{\"path\":\"M302.13,321.8l5.85,3.65l-3.06,6.08l-1.11,1.4l-3.25-1.87l0.09-6.55L302.13,321.8L302.13,321.8z\",\"name\":\"French Guiana\"},\"pe\":{\"path\":\"M225.03,349.52l-1.94,1.96l0.13,3.13l16.94,30.88l17.59,11.34l2.72-4.56l0.65-10.03l-1.42-6.25l-4.79-8.08l-2.85,0.91l-1.29,1.43l-5.69-6.52l1.42-7.69l6.6-4.3l-0.52-4.04l-6.72-0.26l-3.49-5.86l-1.94-0.65l0.13,3.52l-8.66,10.29l-6.47-1.56L225.03,349.52L225.03,349.52z\",\"name\":\"Peru\"},\"bo\":{\"path\":\"M258.71,372.79l8.23-3.59l2.72,0.26l1.81,7.56l12.54,4.17l2.07,6.39l5.17,0.65l2.2,5.47l-1.55,4.95l-8.41,0.65l-3.1,7.95l-6.6-0.13l-2.07-0.39l-3.81,3.7l-1.88-0.18l-6.47-14.99l1.79-2.68l0.63-10.6l-1.6-6.31L258.71,372.79L258.71,372.79z\",\"name\":\"Bolivia\"},\"py\":{\"path\":\"M291.76,399.51l2.2,2.4l-0.26,5.08l6.34-0.39l4.79,6.13l-0.39,5.47l-3.1,4.69l-6.34,0.26l-0.26-2.61l1.81-4.3l-6.21-3.91h-5.17l-3.88-4.17l2.82-8.06L291.76,399.51L291.76,399.51z\",\"name\":\"Paraguay\"},\"uy\":{\"path\":\"M300.36,431.93l-2.05,2.19l0.85,11.78l6.44,1.87l8.19-8.21L300.36,431.93L300.36,431.93z\",\"name\":\"Uruguay\"},\"ar\":{\"path\":\"M305.47,418.2l1.94,1.82l-7.37,10.95l-2.59,2.87l0.9,12.51l5.69,6.91l-4.78,8.34l-3.62,1.56h-4.14l1.16,6.51l-6.47,2.22l1.55,5.47l-3.88,12.38l4.79,3.91l-2.59,6.38l-4.4,6.91l2.33,4.82l-5.69,0.91l-4.66-5.73l-0.78-17.85l-7.24-30.32l2.19-10.6l-4.66-13.55l3.1-17.59l2.85-3.39l-0.7-2.57l3.66-3.34l8.16,0.56l4.56,4.87l5.27,0.09l5.4,3.3l-1.59,3.72l0.38,3.76l7.65-0.36L305.47,418.2L305.47,418.2M288.92,518.79l0.26,5.73l4.4-0.39l3.75-2.48l-6.34-1.3L288.92,518.79L288.92,518.79z\",\"name\":\"Argentina\"},\"cl\":{\"path\":\"M285.04,514.1l-4.27,9.38l7.37,0.78l0.13-6.25L285.04,514.1L285.04,514.1M283.59,512.63l-3.21,3.55l-0.39,4.17l-6.21-3.52l-6.6-9.51l-1.94-3.39l2.72-3.52l-0.26-4.43l-3.1-1.3l-2.46-1.82l0.52-2.48l3.23-0.91l0.65-14.33l-5.04-2.87l-3.29-74.59l0.85-1.48l6.44,14.85l2.06,0.04l0.67,2.37l-2.74,3.32l-3.15,17.87l4.48,13.76l-2.07,10.42l7.3,30.64l0.77,17.92l5.23,6.05L283.59,512.63L283.59,512.63M262.28,475.14l-1.29,1.95l0.65,3.39l1.29,0.13l0.65-4.3L262.28,475.14L262.28,475.14z\",\"name\":\"Chile\"},\"br\":{\"path\":\"M314.24,438.85l6.25-12.02l0.23-10.1l11.66-7.52h6.53l5.13-8.69l0.93-16.68l-2.1-4.46l12.36-11.28l0.47-12.45l-16.79-8.22l-20.28-6.34l-9.56-0.94l2.57-5.4l-0.7-8.22l-2.09-0.69l-3.09,6.14l-1.62,2.03l-4.16-1.84l-13.99,4.93l-4.66-5.87l0.75-6.13l-4.4,4.48l-4.86-2.62l-0.49,0.69l0.01,2.13l4.19,2.25l-6.29,6.63l-3.97-0.04l-4.02-4.09l-4.55,0.14l-0.56,4.86l2.61,3.17l-3.08,9.87l-3.6,0.28l-5.73,3.62l-1.4,7.11l4.97,5.32l0.91-1.03l3.49-0.94l2.98,5.02l8.53-3.66l3.31,0.19l2.28,8.07l12.17,3.86l2.1,6.44l5.18,0.62l2.47,6.15l-1.67,5.47l2.18,2.86l-0.32,4.26l5.84-0.55l5.35,6.76l-0.42,4.75l3.17,2.68l-7.6,11.51L314.24,438.85L314.24,438.85z\",\"name\":\"Brazil\"},\"bz\":{\"path\":\"M204.56,282.4l-0.05,3.65h0.84l2.86-5.34h-1.94L204.56,282.4L204.56,282.4z\",\"name\":\"Belize\"},\"mn\":{\"path\":\"M673.8,170.17l5.82-7.72l6.99,3.23l4.75,1.27l5.82-5.34l-3.95-2.91l2.6-3.67l7.76,2.74l2.69,4.41l4.86,0.13l2.54-1.89l5.23-0.21l1.14,1.94l8.69,0.44l5.5-5.61l7.61,0.8l-0.44,7.64l3.33,0.76l4.09-1.86l4.33,2.14l-0.1,1.08l-3.14,0.09l-3.27,6.86l-2.54,0.25l-9.88,12.91l-10.09,4.45l-6.31,0.49l-5.24-3.38l-6.7,3.58l-6.6-2.05l-1.87-4.79l-12.5-0.88l-6.4-10.85l-3.11-0.2L673.8,170.17L673.8,170.17z\",\"name\":\"Mongolia\"},\"kp\":{\"path\":\"M778.28,194.27l1.84,0.77l0.56,6.44l3.65,0.21l3.44-4.03l-1.19-1.06l0.14-4.32l3.16-3.82l-1.61-2.9l1.05-1.2l0.58-3l-1.83-0.83l-1.56,0.79l-1.93,5.86l-3.12-0.27l-3.61,4.26L778.28,194.27L778.28,194.27z\",\"name\":\"North Korea\"},\"kr\":{\"path\":\"M788.34,198.2l6.18,5.04l1.05,4.88l-0.21,2.62l-3.02,3.4l-2.6,0.14l-2.95-6.37l-1.12-3.04l1.19-0.92l-0.28-1.27l-1.47-0.66L788.34,198.2L788.34,198.2z\",\"name\":\"South Korea\"},\"kz\":{\"path\":\"M576.69,188.62l4.1-1.75l4.58-0.16l0.32,7h-2.68l-2.05,3.34l2.68,4.45l3.95,2.23l0.36,2.55l1.45-0.48l1.34-1.59l2.21,0.48l1.11,2.23h2.84v-2.86l-1.74-5.09l-0.79-4.13l5.05-2.23l6.79,1.11l4.26,4.29l9.63-0.95l5.37,7.63l6.31,0.32l1.74-2.86l2.21-0.48l0.32-3.18l3.31-0.16l1.74,2.07l1.74-4.13l14.99,2.07l2.52-3.34l-4.26-5.25l5.68-12.4l4.58,0.32l3.16-7.63l-6.31-0.64l-3.63-3.5l-10,1.16l-12.88-12.45l-4.54,4.03l-13.77-6.25l-16.89,8.27l-0.47,5.88l3.95,4.61l-7.7,4.35l-9.99-0.22l-2.09-3.07l-7.83-0.43l-7.42,4.77l-0.16,6.52L576.69,188.62L576.69,188.62z\",\"name\":\"Kazakhstan\"},\"tm\":{\"path\":\"M593.85,207.59l-0.62,2.63h-4.15v3.56l4.46,2.94l-1.38,4.03v1.86l1.85,0.31l2.46-3.25l5.54-1.24l11.84,4.49l0.15,3.25l6.61,0.62l7.38-7.75l-0.92-2.48l-4.92-1.08l-13.84-8.99l-0.62-3.25h-5.23l-2.31,4.34h-2.31L593.85,207.59L593.85,207.59z\",\"name\":\"Turkmenistan\"},\"uz\":{\"path\":\"M628.92,219.06l3.08,0.16v-5.27l-2.92-1.7l4.92-6.2h2l2,2.33l5.23-2.01l-7.23-2.48l-0.28-1.5l-1.72,0.42l-1.69,2.94l-7.29-0.24l-5.35-7.57l-9.4,0.93l-4.48-4.44l-6.2-1.05l-4.5,1.83l2.61,8.68l0.03,2.92l1.9,0.04l2.33-4.44l6.2,0.08l0.92,3.41l13.29,8.82l5.14,1.18L628.92,219.06L628.92,219.06z\",\"name\":\"Uzbekistan\"},\"tj\":{\"path\":\"M630.19,211.84l4.11-5.1h1.55l0.54,1.14l-1.9,1.38v1.14l1.25,0.9l6.01,0.36l1.96-0.84l0.89,0.18l0.6,1.92l3.57,0.36l1.79,3.78l-0.54,1.14l-0.71,0.06l-0.71-1.44l-1.55-0.12l-2.68,0.36l-0.18,2.52l-2.68-0.18l0.12-3.18l-1.96-1.92l-2.98,2.46l0.06,1.62l-2.62,0.9h-1.55l0.12-5.58L630.19,211.84L630.19,211.84z\",\"name\":\"Tajikistan\"},\"kg\":{\"path\":\"M636.81,199.21l-0.31,2.53l0.25,1.56l8.7,2.92l-7.64,3.08l-0.87-0.72l-1.65,1.06l0.08,0.58l0.88,0.4l5.36,0.14l2.72-0.82l3.49-4.4l4.37,0.76l5.27-7.3l-14.1-1.92l-1.95,4.73l-2.46-2.64L636.81,199.21L636.81,199.21z\",\"name\":\"Kyrgyz Republic\"},\"af\":{\"path\":\"M614.12,227.05l1.59,12.46l3.96,0.87l0.37,2.24l-2.84,2.37l5.29,4.27l10.28-3.7l0.82-4.38l6.47-4.04l2.48-9.36l1.85-1.99l-1.92-3.34l6.26-3.87l-0.8-1.12l-2.89,0.18l-0.26,2.66l-3.88-0.04l-0.07-3.55l-1.25-1.49l-2.1,1.91l0.06,1.75l-3.17,1.2l-5.85-0.37l-7.6,7.96L614.12,227.05L614.12,227.05z\",\"name\":\"Afghanistan\"},\"pk\":{\"path\":\"M623.13,249.84l2.6,3.86l-0.25,1.99l-3.46,1.37l-0.25,3.24h3.96l1.36-1.12h7.54l6.8,5.98l0.87-2.87h5.07l0.12-3.61l-5.19-4.98l1.11-2.74l5.32-0.37l7.17-14.95l-3.96-3.11l-1.48-5.23l9.64-0.87l-5.69-8.1l-3.03-0.82l-1.24,1.5l-0.93,0.07l-5.69,3.61l1.86,3.12l-2.1,2.24l-2.6,9.59l-6.43,4.11l-0.87,4.49L623.13,249.84L623.13,249.84z\",\"name\":\"Pakistan\"},\"in\":{\"path\":\"M670.98,313.01l4.58-2.24l2.72-9.84l-0.12-12.08l15.58-16.82v-3.99l3.21-1.25l-0.12-4.61l-3.46-6.73l1.98-3.61l4.33,3.99l5.56,0.25v2.24l-1.73,1.87l0.37,1l2.97,0.12l0.62,3.36h0.87l2.23-3.99l1.11-10.46l3.71-2.62l0.12-3.61l-1.48-2.87l-2.35-0.12l-9.2,6.08l0.58,3.91l-6.46-0.02l-2.28-2.79l-1.24,0.16l0.42,3.88l-13.97-1l-8.66-3.86l-0.46-4.75l-5.77-3.58l-0.07-7.37l-3.96-4.53l-9.1,0.87l0.99,3.96l4.46,3.61l-7.71,15.78l-5.16,0.39l-0.85,1.9l5.08,4.7l-0.25,4.75l-5.19-0.08l-0.56,2.36l4.31-0.19l0.12,1.87l-3.09,1.62l1.98,3.74l3.83,1.25l2.35-1.74l1.11-3.11l1.36-0.62l1.61,1.62l-0.49,3.99l-1.11,1.87l0.25,3.24L670.98,313.01L670.98,313.01z\",\"name\":\"India\"},\"np\":{\"path\":\"M671.19,242.56l0.46,4.27l8.08,3.66l12.95,0.96l-0.49-3.13l-8.65-2.38l-7.34-4.37L671.19,242.56L671.19,242.56z\",\"name\":\"Nepal\"},\"bt\":{\"path\":\"M695.4,248.08l1.55,2.12l5.24,0.04l-0.53-2.9L695.4,248.08L695.4,248.08z\",\"name\":\"Bhutan\"},\"bd\":{\"path\":\"M695.57,253.11l-1.31,2.37l3.4,6.46l0.1,5.04l0.62,1.35l3.99,0.07l2.26-2.17l1.64,0.99l0.33,3.07l1.31-0.82l0.08-3.92l-1.1-0.13l-0.69-3.33l-2.78-0.1l-0.69-1.85l1.7-2.27l0.03-1.12h-4.94L695.57,253.11L695.57,253.11z\",\"name\":\"Bangladesh\"},\"mm\":{\"path\":\"M729.44,303.65l-2.77-4.44l2.01-2.82l-1.9-3.49l-1.79-0.34l-0.34-5.86l-2.68-5.19l-0.78,1.24l-1.79,3.04l-2.24,0.34l-1.12-1.47l-0.56-3.95l-1.68-3.16l-6.84-6.45l1.68-1.11l0.31-4.67l2.5-4.2l1.08-10.45l3.62-2.47l0.12-3.81l2.17,0.72l3.42,4.95l-2.54,5.44l1.71,4.27l4.23,1.66l0.77,4.65l5.68,0.88l-1.57,2.71l-7.16,2.82l-0.78,4.62l5.26,6.76l0.22,3.61l-1.23,1.24l0.11,1.13l3.92,5.75l0.11,5.97L729.44,303.65L729.44,303.65z\",\"name\":\"Myanmar\"},\"th\":{\"path\":\"M730.03,270.47l3.24,4.17v5.07l1.12,0.56l5.15-2.48l1.01,0.34l6.15,7.1l-0.22,4.85l-2.01-0.34l-1.79-1.13l-1.34,0.11l-2.35,3.94l0.45,2.14l1.9,1.01l-0.11,2.37l-1.34,0.68l-4.59-3.16v-2.82l-1.9-0.11l-0.78,1.24l-0.4,12.62l2.97,5.42l5.26,5.07l-0.22,1.47l-2.8-0.11l-2.57-3.83h-2.69l-3.36-2.71l-1.01-2.82l1.45-2.37l0.5-2.14l1.58-2.8l-0.07-6.44l-3.86-5.58l-0.16-0.68l1.25-1.26l-0.29-4.43l-5.14-6.51l0.6-3.75L730.03,270.47L730.03,270.47z\",\"name\":\"Thailand\"},\"kh\":{\"path\":\"M740.48,299.47l4.09,4.37l7.61-5.64l0.67-8.9l-3.93,2.71l-2.04-1.14l-2.77-0.37l-1.55-1.09l-0.75,0.04l-2.03,3.33l0.33,1.54l2.06,1.15l-0.25,3.13L740.48,299.47L740.48,299.47z\",\"name\":\"Cambodia\"},\"la\":{\"path\":\"M735.47,262.93l-2.42,1.23l-2.01,5.86l3.36,4.28l-0.56,4.73l0.56,0.23l5.59-2.71l7.5,8.38l-0.18,5.28l1.63,0.88l4.03-3.27l-0.33-2.59l-11.63-11.05l0.11-1.69l1.45-1.01l-1.01-2.82l-4.81-0.79L735.47,262.93L735.47,262.93z\",\"name\":\"Lao People's Democratic Republic\"},\"vn\":{\"path\":\"M745.06,304.45l1.19,1.87l0.22,2.14l3.13,0.34l3.8-5.07l3.58-1.01l1.9-5.18l-0.89-8.34l-3.69-5.07l-3.89-3.11l-4.95-8.5l3.55-5.94l-5.08-5.83l-4.07-0.18l-3.66,1.97l1.09,4.71l4.88,0.86l1.31,3.63l-1.72,1.12l0.11,0.9l11.45,11.2l0.45,3.29l-0.69,10.4L745.06,304.45L745.06,304.45z\",\"name\":\"Vietnam\"},\"ge\":{\"path\":\"M555.46,204.16l3.27,4.27l4.08,1.88l2.51-0.01l4.31-1.17l1.08-1.69l-12.75-4.77L555.46,204.16L555.46,204.16z\",\"name\":\"Georgia\"},\"am\":{\"path\":\"M569.72,209.89l4.8,6.26l-1.41,1.65l-3.4-0.59l-4.22-3.78l0.23-2.48L569.72,209.89L569.72,209.89z\",\"name\":\"Armenia\"},\"az\":{\"path\":\"M571.41,207.72l-1.01,1.72l4.71,6.18l1.64-0.53l2.7,2.83l1.17-4.96l2.93,0.47l-0.12-1.42l-4.82-4.22l-0.92,2.48L571.41,207.72L571.41,207.72z\",\"name\":\"Azerbaijan\"},\"ir\":{\"path\":\"M569.65,217.95l-1.22,1.27l0.12,2.01l1.52,2.13l5.39,5.9l-0.82,2.36h-0.94l-0.47,2.36l3.05,3.9l2.81,0.24l5.63,7.79l3.16,0.24l2.46,1.77l0.12,3.54l9.73,5.67h3.63l2.23-1.89l2.81-0.12l1.64,3.78l10.51,1.46l0.31-3.86l3.48-1.26l0.16-1.38l-2.77-3.78l-6.17-4.96l3.24-2.95l-0.23-1.3l-4.06-0.63l-1.72-13.7l-0.2-3.15l-11.01-4.21l-4.88,1.1l-2.73,3.35l-2.42-0.16l-0.7,0.59l-5.39-0.35l-6.8-4.96l-2.53-2.77l-1.16,0.28l-2.09,2.39L569.65,217.95L569.65,217.95z\",\"name\":\"Iran\"},\"tr\":{\"path\":\"M558.7,209.19l-2.23,2.36l-8.2-0.24l-4.92-2.95l-4.8-0.12l-5.51,3.9l-5.16,0.24l-0.47,2.95h-5.86l-2.34,2.13v1.18l1.41,1.18v1.3l-0.59,1.54l0.59,1.3l1.88-0.94l1.88,2.01l-0.47,1.42l-0.7,0.95l1.05,1.18l5.16,1.06l3.63-1.54v-2.24l1.76,0.35l4.22,2.48l4.57-0.71l1.99-1.89l1.29,0.47v2.13h1.76l1.52-2.95l13.36-1.42l5.83-0.71l-1.54-2.02l-0.03-2.73l1.17-1.4l-4.26-3.42l0.23-2.95h-2.34L558.7,209.19L558.7,209.19M523.02,209.7l-0.16,3.55l3.1-0.95l1.42-0.95l-0.42-1.54l-1.47-1.17L523.02,209.7L523.02,209.7z\",\"name\":\"Turkey\"},\"om\":{\"path\":\"M598.38,280.84l7.39-4.26l1.31-6.25l-1.62-0.93l0.67-6.7l1.41-0.82l1.51,2.37l8.99,4.7v2.61l-10.89,16.03l-5.01,0.17L598.38,280.84L598.38,280.84z\",\"name\":\"Oman\"},\"ae\":{\"path\":\"M594.01,264.94l0.87,3.48l9.86,0.87l0.69-7.14l1.9-1.04l0.52-2.61l-3.11,0.87l-3.46,5.23L594.01,264.94L594.01,264.94z\",\"name\":\"United Arab Emirates\"},\"qa\":{\"path\":\"M592.63,259.02l-0.52,4.01l1.54,1.17l1.4-0.13l0.52-5.05l-1.21-0.87L592.63,259.02L592.63,259.02z\",\"name\":\"Qatar\"},\"kw\":{\"path\":\"M583.29,247.17l-2.25-1.22l-1.56,1.57l0.17,3.14l3.63,1.39L583.29,247.17L583.29,247.17z\",\"name\":\"Kuwait\"},\"sa\":{\"path\":\"M584,253.24l7.01,9.77l2.26,1.8l1.01,4.38l10.79,0.85l1.22,0.64l-1.21,5.4l-7.09,4.18l-10.37,3.14l-5.53,5.4l-6.57-3.83l-3.98,3.48L566,279.4l-3.8-1.74l-1.38-2.09v-4.53l-13.83-16.72l-0.52-2.96h3.98l4.84-4.18l0.17-2.09l-1.38-1.39l2.77-2.26l5.88,0.35l10.03,8.36l5.92-0.27l0.38,1.46L584,253.24L584,253.24z\",\"name\":\"Saudi Arabia\"},\"sy\":{\"path\":\"M546.67,229.13l-0.35,2.54l2.82,1.18l-0.12,7.04l2.82-0.06l2.82-2.13l1.06-0.18l6.4-5.09l1.29-7.39l-12.79,1.3l-1.35,2.96L546.67,229.13L546.67,229.13z\",\"name\":\"Syrian Arab Republic\"},\"iq\":{\"path\":\"M564.31,225.03l-1.56,7.71l-6.46,5.38l0.41,2.54l6.31,0.43l10.05,8.18l5.62-0.16l0.15-1.89l2.06-2.21l2.88,1.63l0.38-0.36l-5.57-7.41l-2.64-0.16l-3.51-4.51l0.7-3.32l1.07-0.14l0.37-1.47l-4.78-5.03L564.31,225.03L564.31,225.03z\",\"name\":\"Iraq\"},\"jo\":{\"path\":\"M548.9,240.78l-2.46,8.58l-0.11,1.31h3.87l4.33-3.82l0.11-1.45l-1.77-1.81l3.17-2.63l-0.46-2.44l-0.87,0.2l-2.64,1.89L548.9,240.78L548.9,240.78z\",\"name\":\"Jordan\"},\"lb\":{\"path\":\"M546.2,232.44l0.06,1.95l-0.82,2.96l2.82,0.24l0.18-4.2L546.2,232.44L546.2,232.44z\",\"name\":\"Lebanon\"},\"il\":{\"path\":\"M545.32,238.06l-1.58,5.03l2.05,6.03l2.35-8.81v-1.89L545.32,238.06L545.32,238.06z\",\"name\":\"Israel\"},\"cy\":{\"path\":\"M543.21,229.84l1.23,0.89l-3.81,3.61l-1.82-0.06l-1.35-0.95l0.18-1.77l2.76-0.18L543.21,229.84L543.21,229.84z\",\"name\":\"Cyprus\"},\"gb\":{\"path\":\"M446.12,149.08l-1.83,2.77l0.73,1.11h4.22v1.85l-1.1,1.48l0.73,3.88l2.38,4.62l1.83,4.25l2.93,1.11l1.28,2.22l-0.18,2.03l-1.83,1.11l-0.18,0.92l1.28,0.74l-1.1,1.48l-2.57,1.11l-4.95-0.55l-7.71,3.51l-2.57-1.29l7.34-4.25l-0.92-0.55l-3.85-0.37l2.38-3.51l0.37-2.96l3.12-0.37l-0.55-5.73l-3.67-0.18l-1.1-1.29l0.18-4.25l-2.2,0.18l2.2-7.39l4.04-2.96L446.12,149.08L446.12,149.08M438.42,161.47l-3.3,0.37l-0.18,2.96l2.2,1.48l2.38-0.55l0.92-1.66L438.42,161.47L438.42,161.47z\",\"name\":\"United Kingdom\"},\"ie\":{\"path\":\"M439.51,166.55l-0.91,6l-8.07,2.96h-2.57l-1.83-1.29v-1.11l4.04-2.59l-1.1-2.22l0.18-3.14l3.49,0.18l1.6-3.76l-0.21,3.34l2.71,2.15L439.51,166.55L439.51,166.55z\",\"name\":\"Ireland\"},\"se\":{\"path\":\"M497.72,104.58l1.96,1.81h3.67l2.02,3.88l0.55,6.65l-4.95,3.51v3.51l-3.49,4.81l-2.02,0.18l-2.75,4.62l0.18,4.44l4.77,3.51l-0.37,2.03l-1.83,2.77l-2.75,2.4l0.18,7.95l-4.22,1.48l-1.47,3.14h-2.02l-1.1-5.54l-4.59-7.04l3.77-6.31l0.26-15.59l2.6-1.43l0.63-8.92l7.41-10.61L497.72,104.58L497.72,104.58M498.49,150.17l-2.11,1.67l1.06,2.45l1.87-1.82L498.49,150.17L498.49,150.17z\",\"name\":\"Sweden\"},\"fi\":{\"path\":\"M506.79,116.94l2.07,0.91l1.28,2.4l-1.28,1.66l-6.42,7.02l-1.1,3.7l1.47,5.36l4.95,3.7l6.6-3.14l5.32-0.74l4.95-7.95l-3.67-8.69l-3.49-8.32l0.55-5.36l-2.2-0.37l-0.57-3.91l-2.96-4.83l-3.28,2.27l-1.29,5.27l-3.48-2.09l-4.84-1.18l-1.08,1.26l1.86,1.68l3.39-0.06l2.73,4.41L506.79,116.94L506.79,116.94z\",\"name\":\"Finland\"},\"lv\":{\"path\":\"M518.07,151.37l-6.85-1.11l0.15,3.83l6.35,3.88l2.6-0.76l-0.15-2.92L518.07,151.37L518.07,151.37z\",\"name\":\"Latvia\"},\"lt\":{\"path\":\"M510.81,154.7l-2.15-0.05l-2.95,2.82h-2.5l0.15,3.53l-1.5,2.77l5.4,0.05l1.55-0.2l1.55,1.87l3.55-0.15l3.4-4.33l-0.2-2.57L510.81,154.7L510.81,154.7z\",\"name\":\"Lithuania\"},\"by\":{\"path\":\"M510.66,166.29l1.5,2.47l-0.6,1.97l0.1,1.56l0.55,1.87l3.1-1.76l3.85,0.1l2.7,1.11h6.85l2-4.79l1.2-1.81v-1.21l-4.3-6.05l-3.8-1.51l-3.1-0.35l-2.7,0.86l0.1,2.72l-3.75,4.74L510.66,166.29L510.66,166.29z\",\"name\":\"Belarus\"},\"pl\":{\"path\":\"M511.46,174.76l0.85,1.56l0.2,1.66l-0.7,1.61l-1.6,3.08l-1.35,0.61l-1.75-0.76l-1.05,0.05l-2.55,0.96l-2.9-0.86l-4.7-3.33l-4.6-2.47l-1.85-2.82l-0.35-6.65l3.6-3.13l4.7-1.56l1.75-0.2l-0.7,1.41l0.45,0.55l7.91,0.15l1.7-0.05l2.8,4.29l-0.7,1.76l0.3,2.07L511.46,174.76L511.46,174.76z\",\"name\":\"Poland\"},\"it\":{\"path\":\"M477.56,213.38l-2.65,1.34l0.35,5.17l2.12,0.36l1.59-1.52v-4.9L477.56,213.38L477.56,213.38M472.27,196.98l-0.62,1.57l0.17,1.71l2.39,2.79l3.76-0.13l8.3,9.64l5.18,1.5l3.06,2.89l0.73,6.59l1.64-0.96l1.42-3.59l-0.35-2.58l2.43-0.22l0.35-1.46l-6.85-3.28l-6.5-6.39l-2.59-3.82l-0.63-3.63l3.31-0.79l-0.85-2.39l-2.03-1.71l-1.75-0.08l-2.44,0.67l-2.3,3.22l-1.39,0.92l-2.15-1.32L472.27,196.98L472.27,196.98M492.44,223.02l-1.45-0.78l-4.95,0.78l0.17,1.34l4.45,2.24l0.67,0.73l1.17,0.17L492.44,223.02L492.44,223.02z\",\"name\":\"Italy\"},\"fr\":{\"path\":\"M477.83,206.96l-1.95,1.96l-0.18,1.78l1.59,0.98l0.62-0.09l0.35-2.59L477.83,206.96L477.83,206.96M460.4,178.7l-2.21,0.54l-4.42,4.81l-1.33,0.09l-1.77-1.25l-1.15,0.27l-0.88,2.76l-6.46,0.18l0.18,1.43l4.42,2.94l5.13,4.1l-0.09,4.9l-2.74,4.81l5.93,2.85l6.02,0.18l1.86-2.14l3.8,0.09l1.06,0.98l3.8-0.27l1.95-2.5l-2.48-2.94l-0.18-1.87l0.53-2.05l-1.24-1.78l-2.12,0.62l-0.27-1.6l4.69-5.17v-3.12l-3.1-1.78l-1.59-0.27L460.4,178.7L460.4,178.7z\",\"name\":\"France\"},\"nl\":{\"path\":\"M470.09,168.27l-4.53,2.23l0.96,0.87l0.1,2.23l-0.96-0.19l-1.06-1.65l-2.53,4.01l3.89,0.81l1.45,1.53l0.77,0.02l0.51-3.46l2.45-1.03L470.09,168.27L470.09,168.27z\",\"name\":\"Netherlands\"},\"be\":{\"path\":\"M461.61,176.52l-0.64,1.6l6.88,4.54l1.98,0.47l0.07-2.15l-1.73-1.94h-1.06l-1.45-1.65L461.61,176.52L461.61,176.52z\",\"name\":\"Belgium\"},\"de\":{\"path\":\"M471.14,167.88l3.57-0.58v-2.52l2.99-0.49l1.64,1.65l1.73,0.19l2.7-1.17l2.41,0.68l2.12,1.84l0.29,6.89l2.12,2.82l-2.79,0.39l-4.63,2.91l0.39,0.97l4.14,3.88l-0.29,1.94l-3.85,1.94l-3.57,0.1l-0.87,1.84h-1.83l-0.87-1.94l-3.18-0.78l-0.1-3.2l-2.7-1.84l0.29-2.33l-1.83-2.52l0.48-3.3l2.5-1.17L471.14,167.88L471.14,167.88z\",\"name\":\"Germany\"},\"dk\":{\"path\":\"M476.77,151.5l-4.15,4.59l-0.15,2.99l1.89,4.93l2.96-0.56l-0.37-4.03l2.04-2.28l-0.04-1.79l-1.44-3.73L476.77,151.5L476.77,151.5M481.44,159.64l-0.93-0.04l-1.22,1.12l0.15,1.75l2.89,0.08l0.15-1.98L481.44,159.64L481.44,159.64z\",\"name\":\"Denmark\"},\"ch\":{\"path\":\"M472.91,189.38l-4.36,4.64l0.09,0.47l1.79-0.56l1.61,2.24l2.72-0.96l1.88,1.46l0.77-0.44l2.32-3.64l-0.59-0.56l-2.29-0.06l-1.11-2.27L472.91,189.38L472.91,189.38z\",\"name\":\"Switzerland\"},\"cz\":{\"path\":\"M488.43,184.87h2.97h1.46l2.37,1.69l4.39-3.65l-4.26-3.04l-4.22-2.04l-2.89,0.52l-3.92,2.52L488.43,184.87L488.43,184.87z\",\"name\":\"Czech Republic\"},\"sk\":{\"path\":\"M495.84,187.13l0.69,0.61l0.09,1.04l7.63-0.17l5.64-2.43l-0.09-2.47l-1.08,0.48l-1.55-0.83l-0.95-0.04l-2.5,1l-3.4-0.82L495.84,187.13L495.84,187.13z\",\"name\":\"Slovakia\"},\"at\":{\"path\":\"M480.63,190.12l-0.65,1.35l0.56,0.96l2.33-0.48h1.98l2.15,1.82l4.57-0.83l3.36-2l0.86-1.35l-0.13-1.74l-3.02-2.26l-4.05,0.04l-0.34,2.3l-4.26,2.08L480.63,190.12L480.63,190.12z\",\"name\":\"Austria\"},\"hu\":{\"path\":\"M496.74,189.6l-1.16,1.82l0.09,2.78l1.85,0.95l5.69,0.17l7.93-6.68l0.04-1.48l-0.86-0.43l-5.73,2.6L496.74,189.6L496.74,189.6z\",\"name\":\"Hungary\"},\"si\":{\"path\":\"M494.8,191.99l-2.54,1.52l-4.74,1.04l0.95,2.74l3.32,0.04l3.06-2.56L494.8,191.99L494.8,191.99z\",\"name\":\"Slovenia\"},\"hr\":{\"path\":\"M495.62,195.16l-3.53,2.91h-3.58l-0.43,2.52l1.64,0.43l0.82-1.22l1.29,1.13l1.03,3.6l7.07,3.3l0.7-0.8l-7.17-7.4l0.73-1.35l6.81-0.26l0.69-2.17l-4.44,0.13L495.62,195.16L495.62,195.16z\",\"name\":\"Croatia\"},\"ba\":{\"path\":\"M494.8,198.94l-0.37,0.61l6.71,6.92l2.46-3.62l-0.09-1.43l-2.15-2.61L494.8,198.94L494.8,198.94z\",\"name\":\"Bosnia and Herzegovina\"},\"mt\":{\"path\":\"M492.61,230.47l-1.67,0.34l0.06,1.85l1.5,0.5l0.67-0.56L492.61,230.47L492.61,230.47z\",\"name\":\"Malta\"},\"ua\":{\"path\":\"M515.57,173.15l-2.9,1.63l0.72,3.08l-2.68,5.65l0.02,2.49l1.26,0.8l8.08,0.4l2.26-1.87l2.42,0.81l3.47,4.63l-2.54,4.56l3.02,0.88l3.95-4.55l2.26,0.41l2.1,1.46l-1.85,2.44l2.5,3.9h2.66l1.37-2.6l2.82-0.57l0.08-2.11l-5.24-0.81l0.16-2.27h5.08l5.48-4.39l2.42-2.11l0.4-6.66l-10.8-0.97l-4.43-6.25l-3.06-1.05l-3.71,0.16l-1.67,4.13l-7.6,0.1l-2.47-1.14L515.57,173.15L515.57,173.15z\",\"name\":\"Ukraine\"},\"md\":{\"path\":\"M520.75,187.71l3.1,4.77l-0.26,2.7l1.11,0.05l2.63-4.45l-3.16-3.92l-1.79-0.74L520.75,187.71L520.75,187.71z\",\"name\":\"Moldova\"},\"ro\":{\"path\":\"M512.18,187.6l-0.26,1.48l-5.79,4.82l4.84,7.1l3.1,2.17h5.58l1.84-1.54l2.47-0.32l1.84,1.11l3.26-3.71l-0.63-1.86l-3.31-0.85l-2.26-0.11l0.11-3.18l-3-4.72L512.18,187.6L512.18,187.6z\",\"name\":\"Romania\"},\"rs\":{\"path\":\"M505.55,194.54l-2.05,1.54h-1l-0.68,2.12l2.42,2.81l0.16,2.23l-3,4.24l0.42,1.27l1.74,0.32l1.37-1.86l0.74-0.05l1.26,1.22l3.84-1.17l-0.32-5.46L505.55,194.54L505.55,194.54z\",\"name\":\"Serbia\"},\"bg\":{\"path\":\"M511.44,202.39l0.16,4.98l1.68,3.5l6.31,0.11l2.84-2.01l2.79-1.11l-0.68-3.18l0.63-1.7l-1.42-0.74l-1.95,0.16l-1.53,1.54l-6.42,0.05L511.44,202.39L511.44,202.39z\",\"name\":\"Bulgaria\"},\"al\":{\"path\":\"M504.02,209.76v4.61l1.32,2.49l0.95-0.11l1.63-2.97l-0.95-1.33l-0.37-3.29l-1.26-1.17L504.02,209.76L504.02,209.76z\",\"name\":\"Albania\"},\"mk\":{\"path\":\"M510.92,208.01l-3.37,1.11l0.16,2.86l0.79,1.01l4-1.86L510.92,208.01L510.92,208.01z\",\"name\":\"Macedonia\"},\"gr\":{\"path\":\"M506.71,217.6l-0.11,1.33l4.63,2.33l2.21,0.85l-1.16,1.22l-2.58,0.26l-0.37,1.17l0.89,2.01l2.89,1.54l1.26,0.11l0.16-3.45l1.89-2.28l-5.16-6.1l0.68-2.07l1.21-0.05l1.84,1.48l1.16-0.58l0.37-2.07l5.42,0.05l0.21-3.18l-2.26,1.59l-6.63-0.16l-4.31,2.23L506.71,217.6L506.71,217.6M516.76,230.59l1.63,0.05l0.68,1.01h2.37l1.58-0.58l0.53,0.64l-1.05,1.38l-4.63,0.16l-0.84-1.11l-0.89-0.53L516.76,230.59L516.76,230.59z\",\"name\":\"Greece\"}}});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/samples/europe.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Europe Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.europe.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'europe_en',\n                    enableZoom: false,\n                    showTooltip: false\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 680px; height: 520px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/samples/germany.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Germany Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.germany.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'germany_en',\n                    onRegionClick: function(element, code, region)\n                    {\n                        var message = 'You clicked \"' + region + '\" which has the code: ' + code.toUpperCase();\n                        alert(message);\n                    }\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 400px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/samples/multi.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Europe Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.europe.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'europe_en',\n                    enableZoom: true,\n                    showTooltip: true,\n                    multiSelectRegion: true,\n                    //selectedRegion: ['ES','FR'],\n                    selectedRegion: 'FR'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 680px; height: 520px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/samples/russia.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Russia Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.russia.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/data/jquery.vmap.sampledata.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'russia_en',\n                    backgroundColor: '#333333',\n                    color: '#ffffff',\n                    hoverOpacity: 0.7,\n                    selectedColor: '#999999',\n                    enableZoom: true,\n                    showTooltip: true,\n                    values: sample_data,\n                    scaleColors: ['#C8EEFF', '#006491'],\n                    normalizeFunction: 'polynomial'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 600px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/samples/usa.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - USA Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.usa.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'usa_en',\n                    enableZoom: true,\n                    showTooltip: true,\n                    selectedRegion: 'MO'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 600px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/jqvmap/samples/world.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - World Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.world.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/data/jquery.vmap.sampledata.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'world_en',\n                    backgroundColor: '#333333',\n                    color: '#ffffff',\n                    hoverOpacity: 0.7,\n                    selectedColor: '#666666',\n                    enableZoom: true,\n                    showTooltip: true,\n                    values: sample_data,\n                    scaleColors: ['#C8EEFF', '#006491'],\n                    normalizeFunction: 'polynomial'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 600px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/livecss.js",
    "content": "/*\n * Live CSS will monitor <link> tags on the page and poll the server for changes to the CSS. This enables you\n * to refresh styles without disrupting the state of the view, and the page updates itself without you\n * having to switch from your editor to the browser and hit refresh.\n *\n * Usage:\n * livecss.watchAll() - starts polling all <link> tags in the current page for changes.\n *\n * If you want more fine grained control over which CSS is being autoreloaded:\n * livecss.watch(linkElement) - start watching a single <link> element for changes.\n * livecss.unwatchAll()\n * livecss.unwatch(linkElement)\n *\n * For convenience, livecss will call watchAll() right away if the page has \"startlivecss=true\" in the URL's\n * query string.\n */\nvar livecss = {\n  // How often to poll for changes to the CSS.\n  pollFrequency: 1000,\n  outstandingRequests: {}, // stylesheet url => boolean\n  filesLastModified: {}, // stylesheet url => last modified timestamp\n  watchTimers: {}, // stylesheet url => timer ID\n\n  /*\n   * Begins polling all link elements on the current page for changes.\n   */\n  watchAll: function() {\n    this.unwatchAll();\n    var timerId = setInterval(this.proxy(function() {\n      var linkElements = document.getElementsByTagName(\"link\");\n      var validMediaTypes = [\"screen\", \"handheld\", \"all\", \"\"];\n      for (var i = 0; i < linkElements.length; i++) {\n        var media = (linkElements[i].getAttribute(\"media\") || \"\").toLowerCase();\n        if (linkElements[i].getAttribute(\"rel\") == \"stylesheet\"\n            && livecss.indexOf(validMediaTypes, media) >= 0\n            && this.isLocalLink(linkElements[i])) {\n          this.refreshLinkElement(linkElements[i]);\n        }\n      }\n    }), this.pollFrequency);\n    this.watchTimers[\"all\"] = timerId;\n  },\n\n  watch: function(linkElement) {\n    var url = linkElement.getAttribute(\"href\");\n    this.unwatch(url);\n    this.watchTimers[url] = setInterval(this.proxy(function() {\n      var linkElement = this.linkElementWithHref(url);\n      this.refreshLinkElement(linkElement);\n    }), this.pollFrequency);\n  },\n\n  unwatchAll: function() {\n    for (var url in this.watchTimers)\n      this.unwatch(url);\n  },\n\n  unwatch: function(url) {\n    if (this.watchTimers[url] != null) {\n      clearInterval(this.watchTimers[url]);\n      delete this.watchTimers[url];\n      delete this.outstandingRequests[url];\n    }\n  },\n\n  linkElementWithHref: function(url) {\n    var linkElements = document.getElementsByTagName(\"link\");\n    for (var i = 0; i < linkElements.length; i++)\n      if (linkElements[i].href == url)\n        return linkElements[i]\n  },\n\n  /*\n   * Replaces a link element with a new one for the given URL. This has to wait for the new <link> to fully\n   * load, because simply changing the href on an existing <link> causes the page to flicker.\n   */\n  replaceLinkElement: function(linkElement, stylesheetUrl) {\n    var parent = linkElement.parentNode;\n    var sibling = linkElement.nextSibling;\n    var url = this.addCacheBust(linkElement.href);\n\n    var newLinkElement = document.createElement(\"link\");\n    newLinkElement.href = url;\n    newLinkElement.setAttribute(\"rel\", \"stylesheet\");\n\n    if (sibling)\n      parent.insertBefore(newLinkElement, sibling);\n    else\n      parent.appendChild(newLinkElement);\n\n    // We're polling to check whether the CSS is loaded, because firefox doesn't support an onload event\n    // for <link> elements.\n    var loadingTimer = setInterval(this.proxy(function() {\n      if (!this.isCssElementLoaded(newLinkElement)) return;\n      if (typeof(console) != \"undefined\")\n        console.log(\"CSS refreshed:\", this.removeCacheBust(url));\n      clearInterval(loadingTimer);\n      delete this.outstandingRequests[this.removeCacheBust(url)];\n      parent.removeChild(linkElement);\n    }), 100);\n  },\n\n  /*\n   * Refreshes the provided linkElement if it's changed. We issue a HEAD request for the CSS. If its\n   * last-modified header is changed, we remove and re-add the <link> element to the DOM which trigger a\n   * re-render from the browser. This uses a cache-bust querystring parameter to ensure we always bust through\n   * the browser's cache.\n   */\n  refreshLinkElement: function(linkElement) {\n    var url = this.removeCacheBust(linkElement.getAttribute(\"href\"));\n    if (this.outstandingRequests[url]) return;\n    var request = new XMLHttpRequest();\n    this.outstandingRequests[url] = request;\n    var cacheBustUrl = this.addCacheBust(url);\n\n    request.onreadystatechange = this.proxy(function(event) {\n      if (request.readyState != 4) return;\n      delete this.outstandingRequests[url];\n      if (request.status != 200 && request.status != 304) return;\n      var lastModified = Date.parse(request.getResponseHeader(\"Last-Modified\"));\n      if (!this.filesLastModified[url] || this.filesLastModified[url] < lastModified) {\n        this.filesLastModified[url] = lastModified;\n        this.replaceLinkElement(linkElement, cacheBustUrl);\n      }\n    });\n    request.open(\"HEAD\", cacheBustUrl);\n    request.send(null);\n  },\n\n  isCssElementLoaded: function(cssElement) {\n    // cssElement.sheet.cssRules will throw an error in firefox when the css file is not yet loaded.\n    try { return (cssElement.sheet && cssElement.sheet.cssRules.length > 0); } catch(error) { }\n    return false;\n  },\n\n  /* returns true for local urls such as: '/screen.css', 'http://mydomain.com/screen.css', 'css/screen.css'\n  */\n  isLocalLink: function(linkElement) {\n  \t//On all tested browsers, this javascript property returns a normalized URL\n\tvar url = linkElement.href;\n    var regexp = new RegExp(\"^\\/|^\" +\n      document.location.protocol + \"//\" + document.location.host);\n    return (url.search(regexp) == 0);\n  },\n\n  /*\n   * Adds and removes a \"cache_bust\" querystring parameter to the given URLs. This is so we always bust\n   * through the browser's cache when checking for updated CSS.\n   */\n  addCacheBust: function(url) { return this.removeCacheBust(url) + \"?cache_bust=\" + (new Date()).getTime(); },\n  removeCacheBust: function(url) { return url.replace(/\\?cache_bust=[^&]+/, \"\"); },\n\n  /* A utility method to bind the value of \"this\". Equivalent to jQuery's proxy() function. */\n  proxy: function(fn) {\n    var self = this;\n    return function() { return fn.apply(self, []); };\n  },\n\n  /* Unfortunately IE7 doesn't have this built-in. */\n  indexOf: function(array, item) {\n    for (var i = 0; i < array.length; i++) { if (array[i] == item) return i; }\n    return -1;\n  },\n\n  /* A utility function for abstracting the difference between event listening in IE and other browsers. */\n  addEventListener: function(object, event, fn) {\n    object.attachEvent ? object.attachEvent(\"on\" + event, fn) : object.addEventListener(event, fn, false);\n  }\n};\n\nif (window.location.search.toString().indexOf(\"startlivecss=true\") >= 0)\n  livecss.addEventListener(window, \"load\", function() { livecss.watchAll(); });"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/_template.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\"> </head>\n\n<body>\n    <h1>Title</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Insert code here:\n// it'll get eval()-ed and prettyprinted.\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/area-as-line.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Area charts behaving like line charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Area instead of Morris.Line\nMorris.Area({\n  element: 'graph',\n  behaveLikeLine: true,\n  data: [\n    {x: '2011 Q1', y: 3, z: 3},\n    {x: '2011 Q2', y: 2, z: 1},\n    {x: '2011 Q3', y: 2, z: 4},\n    {x: '2011 Q4', y: 3, z: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z'],\n  labels: ['Y', 'Z']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/area.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Area charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Area instead of Morris.Line\nMorris.Area({\n  element: 'graph',\n  data: [\n    {x: '2010 Q4', y: 3, z: 7},\n    {x: '2011 Q1', y: 3, z: 4},\n    {x: '2011 Q2', y: null, z: 1},\n    {x: '2011 Q3', y: 2, z: 5},\n    {x: '2011 Q4', y: 8, z: 2},\n    {x: '2012 Q1', y: 4, z: 4}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z'],\n  labels: ['Y', 'Z']\n}).on('click', function(i, row){\n  console.log(i, row);\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/bar-colors.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Bar charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  data: [\n    {x: '2011 Q1', y: 0},\n    {x: '2011 Q2', y: 1},\n    {x: '2011 Q3', y: 2},\n    {x: '2011 Q4', y: 3},\n    {x: '2012 Q1', y: 4},\n    {x: '2012 Q2', y: 5},\n    {x: '2012 Q3', y: 6},\n    {x: '2012 Q4', y: 7},\n    {x: '2013 Q1', y: 8}\n  ],\n  xkey: 'x',\n  ykeys: ['y'],\n  labels: ['Y'],\n  barColors: function (row, series, type) {\n    if (type === 'bar') {\n      var red = Math.ceil(255 * row.y / this.ymax);\n      return 'rgb(' + red + ',0,0)';\n    }\n    else {\n      return '#000';\n    }\n  }\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/bar-no-axes.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Bar charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  axes: false,\n  data: [\n    {x: '2011 Q1', y: 3, z: 2, a: 3},\n    {x: '2011 Q2', y: 2, z: null, a: 1},\n    {x: '2011 Q3', y: 0, z: 2, a: 4},\n    {x: '2011 Q4', y: 2, z: 4, a: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z', 'a'],\n  labels: ['Y', 'Z', 'A']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/bar.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Bar charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  data: [\n    {x: '2011 Q1', y: 3, z: 2, a: 3},\n    {x: '2011 Q2', y: 2, z: null, a: 1},\n    {x: '2011 Q3', y: 0, z: 2, a: 4},\n    {x: '2011 Q4', y: 2, z: 4, a: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z', 'a'],\n  labels: ['Y', 'Z', 'A']\n}).on('click', function(i, row){\n  console.log(i, row);\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/days.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates YYYY-MM-DD</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/decimal-custom-hover.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Decimal Data</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar decimal_data = [];\nfor (var x = 0; x <= 360; x += 10) {\n  decimal_data.push({\n    x: x,\n    y: 1.5 + 1.5 * Math.sin(Math.PI * x / 180).toFixed(4)\n  });\n}\nwindow.m = Morris.Line({\n  element: 'graph',\n  data: decimal_data,\n  xkey: 'x',\n  ykeys: ['y'],\n  labels: ['sin(x)'],\n  parseTime: false,\n  hoverCallback: function (index, options, default_content, row) {\n    return default_content.replace(\"sin(x)\", \"1.5 + 1.5 sin(\" + row.x + \")\");\n  },\n  xLabelMargin: 10,\n  integerYLabels: true\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/diagonal-xlabels-bar.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Displaying X Labels Diagonally (Bar Chart)</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Bar({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  xLabelAngle: 60\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/diagonal-xlabels.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Displaying X Labels Diagonally</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-30\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  xLabelAngle: 60\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/donut-colors.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\">\n    <style>\n        body {\n            background: #ccc;\n        }\n    </style>\n</head>\n\n<body>\n    <h1>Donut Chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nMorris.Donut({\n  element: 'graph',\n  data: [\n    {value: 70, label: 'foo'},\n    {value: 15, label: 'bar'},\n    {value: 10, label: 'baz'},\n    {value: 5, label: 'A really really long label'}\n  ],\n  backgroundColor: '#ccc',\n  labelColor: '#060',\n  colors: [\n    '#0BA462',\n    '#39B580',\n    '#67C69D',\n    '#95D7BB'\n  ],\n  formatter: function (x) { return x + \"%\"}\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/donut-formatter.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Donut Chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nMorris.Donut({\n  element: 'graph',\n  data: [\n    {value: 70, label: 'foo', formatted: 'at least 70%' },\n    {value: 15, label: 'bar', formatted: 'approx. 15%' },\n    {value: 10, label: 'baz', formatted: 'approx. 10%' },\n    {value: 5, label: 'A really really long label', formatted: 'at most 5%' }\n  ],\n  formatter: function (x, data) { return data.formatted; }\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/donut.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Donut Chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nMorris.Donut({\n  element: 'graph',\n  data: [\n    {value: 70, label: 'foo'},\n    {value: 15, label: 'bar'},\n    {value: 10, label: 'baz'},\n    {value: 5, label: 'A really really long label'}\n  ],\n  formatter: function (x) { return x + \"%\"}\n}).on('click', function(i, row){\n  console.log(i, row);\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/dst.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Daylight-savings time</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// This crosses a DST boundary in the UK.\nMorris.Area({\n  element: 'graph',\n  data: [\n    {x: '2013-03-30 22:00:00', y: 3, z: 3},\n    {x: '2013-03-31 00:00:00', y: 2, z: 0},\n    {x: '2013-03-31 02:00:00', y: 0, z: 2},\n    {x: '2013-03-31 04:00:00', y: 4, z: 4}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z'],\n  labels: ['Y', 'Z']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/events.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Time Events</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar week_data = [\n  {\"period\": \"2011 W27\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011 W26\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011 W25\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2011 W24\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2011 W23\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2011 W22\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2011 W21\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2011 W20\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2011 W19\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2011 W18\", \"licensed\": 3215, \"sorned\": 622},\n  {\"period\": \"2011 W17\", \"licensed\": 3148, \"sorned\": 632},\n  {\"period\": \"2011 W16\", \"licensed\": 3155, \"sorned\": 681},\n  {\"period\": \"2011 W15\", \"licensed\": 3190, \"sorned\": 667},\n  {\"period\": \"2011 W14\", \"licensed\": 3226, \"sorned\": 620},\n  {\"period\": \"2011 W13\", \"licensed\": 3245, \"sorned\": null},\n  {\"period\": \"2011 W12\", \"licensed\": 3289, \"sorned\": null},\n  {\"period\": \"2011 W11\", \"licensed\": 3263, \"sorned\": null},\n  {\"period\": \"2011 W10\", \"licensed\": 3189, \"sorned\": null},\n  {\"period\": \"2011 W09\", \"licensed\": 3079, \"sorned\": null},\n  {\"period\": \"2011 W08\", \"licensed\": 3085, \"sorned\": null},\n  {\"period\": \"2011 W07\", \"licensed\": 3055, \"sorned\": null},\n  {\"period\": \"2011 W06\", \"licensed\": 3063, \"sorned\": null},\n  {\"period\": \"2011 W05\", \"licensed\": 2943, \"sorned\": null},\n  {\"period\": \"2011 W04\", \"licensed\": 2806, \"sorned\": null},\n  {\"period\": \"2011 W03\", \"licensed\": 2674, \"sorned\": null},\n  {\"period\": \"2011 W02\", \"licensed\": 1702, \"sorned\": null},\n  {\"period\": \"2011 W01\", \"licensed\": 1732, \"sorned\": null}\n];\nMorris.Line({\n  element: 'graph',\n  data: week_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  events: [\n    '2011-04',\n    '2011-08'\n  ]\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/goals.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Value Goals</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar decimal_data = [];\nfor (var x = 0; x <= 360; x += 10) {\n  decimal_data.push({\n    x: x,\n    y: Math.sin(Math.PI * x / 180).toFixed(4)\n  });\n}\nwindow.m = Morris.Line({\n  element: 'graph',\n  data: decimal_data,\n  xkey: 'x',\n  ykeys: ['y'],\n  labels: ['sin(x)'],\n  parseTime: false,\n  goals: [-1, 0, 1]\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/lib/example.css",
    "content": "body {\n  width: 800px;\n  margin: 0 auto;\n}\n#graph {\n  width: 800px;\n  height: 250px;\n  margin: 20px auto 0 auto;\n}\npre {\n  height: 250px;\n  overflow: auto;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/lib/example.js",
    "content": "$(function () {\n  eval($('#code').text());\n  prettyPrint();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/months-no-smooth.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates with YYYY-MM</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar month_data = [\n  {\"period\": \"2012-10\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011-08\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011-03\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2010-08\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2010-05\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2010-03\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2010-01\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2009-12\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2009-10\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2009-09\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: month_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  smooth: false\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/negative.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Negative values</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar neg_data = [\n  {\"period\": \"2011-08-12\", \"a\": 100},\n  {\"period\": \"2011-03-03\", \"a\": 75},\n  {\"period\": \"2010-08-08\", \"a\": 50},\n  {\"period\": \"2010-05-10\", \"a\": 25},\n  {\"period\": \"2010-03-14\", \"a\": 0},\n  {\"period\": \"2010-01-10\", \"a\": -25},\n  {\"period\": \"2009-12-10\", \"a\": -50},\n  {\"period\": \"2009-10-07\", \"a\": -75},\n  {\"period\": \"2009-09-25\", \"a\": -100}\n];\nMorris.Line({\n  element: 'graph',\n  data: neg_data,\n  xkey: 'period',\n  ykeys: ['a'],\n  labels: ['Series A'],\n  units: '%'\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/no-grid.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates YYYY-MM-DD</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  grid: false,\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/non-continuous.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Non-continuous data</h1>\n    <p>Null series values will break the line when rendering, missing values will be skipped</p>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407},\n  {\"period\": \"2012-09-30\", \"sorned\": 0},\n  {\"period\": \"2012-09-29\", \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": null},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"other\": 1000},\n  {\"period\": \"2012-09-17\", \"sorned\": 0},\n  {\"period\": \"2012-09-16\", \"sorned\": 0},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned', 'other'],\n  labels: ['Licensed', 'SORN', 'Other'],\n  /* custom label formatting with `xLabelFormat` */\n  xLabelFormat: function(d) { return (d.getMonth()+1)+'/'+d.getDate()+'/'+d.getFullYear(); },\n  /* setting `xLabels` is recommended when using xLabelFormat */\n  xLabels: 'day'\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/non-date.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Non-date Arbitrary X-axis</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar day_data = [\n  {\"elapsed\": \"I\", \"value\": 34},\n  {\"elapsed\": \"II\", \"value\": 24},\n  {\"elapsed\": \"III\", \"value\": 3},\n  {\"elapsed\": \"IV\", \"value\": 12},\n  {\"elapsed\": \"V\", \"value\": 13},\n  {\"elapsed\": \"VI\", \"value\": 22},\n  {\"elapsed\": \"VII\", \"value\": 5},\n  {\"elapsed\": \"VIII\", \"value\": 26},\n  {\"elapsed\": \"IX\", \"value\": 12},\n  {\"elapsed\": \"X\", \"value\": 19}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'elapsed',\n  ykeys: ['value'],\n  labels: ['value'],\n  parseTime: false\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/quarters.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates with Quarters</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_e_type */\nvar quarter_data = [\n  {\"period\": \"2011 Q3\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011 Q2\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011 Q1\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2010 Q4\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2010 Q3\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2010 Q2\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2010 Q1\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2009 Q4\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2009 Q3\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2009 Q2\", \"licensed\": 3215, \"sorned\": 622},\n  {\"period\": \"2009 Q1\", \"licensed\": 3148, \"sorned\": 632},\n  {\"period\": \"2008 Q4\", \"licensed\": 3155, \"sorned\": 681},\n  {\"period\": \"2008 Q3\", \"licensed\": 3190, \"sorned\": 667},\n  {\"period\": \"2007 Q4\", \"licensed\": 3226, \"sorned\": 620},\n  {\"period\": \"2006 Q4\", \"licensed\": 3245, \"sorned\": null},\n  {\"period\": \"2005 Q4\", \"licensed\": 3289, \"sorned\": null},\n  {\"period\": \"2004 Q4\", \"licensed\": 3263, \"sorned\": null},\n  {\"period\": \"2003 Q4\", \"licensed\": 3189, \"sorned\": null},\n  {\"period\": \"2002 Q4\", \"licensed\": 3079, \"sorned\": null},\n  {\"period\": \"2001 Q4\", \"licensed\": 3085, \"sorned\": null},\n  {\"period\": \"2000 Q4\", \"licensed\": 3055, \"sorned\": null},\n  {\"period\": \"1999 Q4\", \"licensed\": 3063, \"sorned\": null},\n  {\"period\": \"1998 Q4\", \"licensed\": 2943, \"sorned\": null},\n  {\"period\": \"1997 Q4\", \"licensed\": 2806, \"sorned\": null},\n  {\"period\": \"1996 Q4\", \"licensed\": 2674, \"sorned\": null},\n  {\"period\": \"1995 Q4\", \"licensed\": 1702, \"sorned\": null},\n  {\"period\": \"1994 Q4\", \"licensed\": 1732, \"sorned\": null}\n];\nMorris.Line({\n  element: 'graph',\n  data: quarter_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/resize.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\">\n    <style>\n        body {\n            width: 100%;\n        }\n        \n        #graph {\n            width: 100%;\n        }\n    </style>\n</head>\n\n<body>\n    <h1>Formatting Dates YYYY-MM-DD</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  resize: true\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/stacked_bars.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Stacked Bars chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  data: [\n    {x: '2011 Q1', y: 3, z: 2, a: 3},\n    {x: '2011 Q2', y: 2, z: null, a: 1},\n    {x: '2011 Q3', y: 0, z: 2, a: 4},\n    {x: '2011 Q4', y: 2, z: 4, a: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z', 'a'],\n  labels: ['Y', 'Z', 'A'],\n  stacked: true\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/timestamps.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Timestamps</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar timestamp_data = [\n  {\"period\": 1349046000000, \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": 1313103600000, \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": 1299110400000, \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": 1281222000000, \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": 1273446000000, \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": 1268524800000, \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": 1263081600000, \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": 1260403200000, \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": 1254870000000, \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": 1253833200000, \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: timestamp_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  dateFormat: function (x) { return new Date(x).toDateString(); }\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/updating.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Updating data</h1>\n    <div id=\"graph\"></div>\n    <div id=\"reloadStatus\"> <pre id=\"code\" class=\"prettyprint linenums\">\n\nvar nReloads = 0;\nfunction data(offset) {\n  var ret = [];\n  for (var x = 0; x <= 360; x += 10) {\n    var v = (offset + x) % 360;\n    ret.push({\n      x: x,\n      y: Math.sin(Math.PI * v / 180).toFixed(4),\n      z: Math.cos(Math.PI * v / 180).toFixed(4)\n    });\n  }\n  return ret;\n}\nvar graph = Morris.Line({\n    element: 'graph',\n    data: data(0),\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['sin()', 'cos()'],\n    parseTime: false,\n    ymin: -1.0,\n    ymax: 1.0,\n    hideHover: true\n});\nfunction update() {\n  nReloads++;\n  graph.setData(data(5 * nReloads));\n  $('#reloadStatus').text(nReloads + ' reloads');\n}\nsetInterval(update, 100);\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/weeks.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates With Weeks</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar week_data = [\n  {\"period\": \"2011 W27\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011 W26\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011 W25\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2011 W24\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2011 W23\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2011 W22\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2011 W21\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2011 W20\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2011 W19\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2011 W18\", \"licensed\": 3215, \"sorned\": 622},\n  {\"period\": \"2011 W17\", \"licensed\": 3148, \"sorned\": 632},\n  {\"period\": \"2011 W16\", \"licensed\": 3155, \"sorned\": 681},\n  {\"period\": \"2011 W15\", \"licensed\": 3190, \"sorned\": 667},\n  {\"period\": \"2011 W14\", \"licensed\": 3226, \"sorned\": 620},\n  {\"period\": \"2011 W13\", \"licensed\": 3245, \"sorned\": null},\n  {\"period\": \"2011 W12\", \"licensed\": 3289, \"sorned\": null},\n  {\"period\": \"2011 W11\", \"licensed\": 3263, \"sorned\": null},\n  {\"period\": \"2011 W10\", \"licensed\": 3189, \"sorned\": null},\n  {\"period\": \"2011 W09\", \"licensed\": 3079, \"sorned\": null},\n  {\"period\": \"2011 W08\", \"licensed\": 3085, \"sorned\": null},\n  {\"period\": \"2011 W07\", \"licensed\": 3055, \"sorned\": null},\n  {\"period\": \"2011 W06\", \"licensed\": 3063, \"sorned\": null},\n  {\"period\": \"2011 W05\", \"licensed\": 2943, \"sorned\": null},\n  {\"period\": \"2011 W04\", \"licensed\": 2806, \"sorned\": null},\n  {\"period\": \"2011 W03\", \"licensed\": 2674, \"sorned\": null},\n  {\"period\": \"2011 W02\", \"licensed\": 1702, \"sorned\": null},\n  {\"period\": \"2011 W01\", \"licensed\": 1732, \"sorned\": null}\n];\nMorris.Line({\n  element: 'graph',\n  data: week_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/examples/years.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates YYYY</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar year_data = [\n  {\"period\": \"2012\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2010\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2009\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2008\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2007\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2006\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2005\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2004\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2003\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: year_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/less/morris.core.less",
    "content": ".morris-hover {\n  position: absolute;\n  z-index: 1000;\n\n  &.morris-default-style {\n    border-radius: 10px;\n    padding: 6px;\n    color: #666;\n    background: rgba(255, 255, 255, 0.8);\n    border: solid 2px rgba(230, 230, 230, 0.8);\n\n    font-family: sans-serif;\n    font-size: 12px;\n    text-align: center;\n\n    .morris-hover-row-label {\n      font-weight: bold;\n      margin: 0.25em 0;\n    }\n\n    .morris-hover-point {\n      white-space: nowrap;\n      margin: 0.1em 0;\n    }\n  }\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/lib/morris.area.coffee",
    "content": "class Morris.Area extends Morris.Line\n  # Initialise\n  #\n  areaDefaults = \n    fillOpacity: 'auto'\n    behaveLikeLine: false\n\n  constructor: (options) ->\n    return new Morris.Area(options) unless (@ instanceof Morris.Area)\n    areaOptions = $.extend {}, areaDefaults, options\n\n    @cumulative = not areaOptions.behaveLikeLine\n\n    if areaOptions.fillOpacity is 'auto'\n      areaOptions.fillOpacity = if areaOptions.behaveLikeLine then .8 else 1\n\n    super(areaOptions)\n\n  # calculate series data point coordinates\n  #\n  # @private\n  calcPoints: ->\n    for row in @data\n      row._x = @transX(row.x)\n      total = 0\n      row._y = for y in row.y\n        if @options.behaveLikeLine\n          @transY(y)\n        else\n          total += (y || 0)\n          @transY(total)\n      row._ymax = Math.max row._y...\n\n  # draw the data series\n  #\n  # @private\n  drawSeries: ->\n    @seriesPoints = []\n    if @options.behaveLikeLine\n      range = [0..@options.ykeys.length-1]\n    else\n      range = [@options.ykeys.length-1..0]\n\n    for i in range\n      @_drawFillFor i\n      @_drawLineFor i\n      @_drawPointFor i\n\n  _drawFillFor: (index) ->\n    path = @paths[index]\n    if path isnt null\n      path = path + \"L#{@transX(@xmax)},#{@bottom}L#{@transX(@xmin)},#{@bottom}Z\"\n      @drawFilledPath path, @fillForSeries(index)\n\n  fillForSeries: (i) ->\n    color = Raphael.rgb2hsl @colorFor(@data[i], i, 'line')\n    Raphael.hsl(\n      color.h,\n      if @options.behaveLikeLine then color.s * 0.9 else color.s * 0.75,\n      Math.min(0.98, if @options.behaveLikeLine then color.l * 1.2 else color.l * 1.25))\n\n  drawFilledPath: (path, fill) ->\n    @raphael.path(path)\n      .attr('fill', fill)\n      .attr('fill-opacity', @options.fillOpacity)\n      .attr('stroke', 'none')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/lib/morris.bar.coffee",
    "content": "class Morris.Bar extends Morris.Grid\n  constructor: (options) ->\n    return new Morris.Bar(options) unless (@ instanceof Morris.Bar)\n    super($.extend {}, options, parseTime: false)\n\n  init: ->\n    @cumulative = @options.stacked\n\n    if @options.hideHover isnt 'always'\n      @hover = new Morris.Hover(parent: @el)\n      @on('hovermove', @onHoverMove)\n      @on('hoverout', @onHoverOut)\n      @on('gridclick', @onGridClick)\n\n  # Default configuration\n  #\n  defaults:\n    barSizeRatio: 0.75\n    barGap: 3\n    barColors: [\n      '#0b62a4'\n      '#7a92a3'\n      '#4da74d'\n      '#afd8f8'\n      '#edc240'\n      '#cb4b4b'\n      '#9440ed'\n    ],\n    barOpacity: 1.0\n    barRadius: [0, 0, 0, 0]\n    xLabelMargin: 50\n\n  # Do any size-related calculations\n  #\n  # @private\n  calc: ->\n    @calcBars()\n    if @options.hideHover is false\n      @hover.update(@hoverContentForRow(@data.length - 1)...)\n\n  # calculate series data bars coordinates and sizes\n  #\n  # @private\n  calcBars: ->\n    for row, idx in @data\n      row._x = @left + @width * (idx + 0.5) / @data.length\n      row._y = for y in row.y\n        if y? then @transY(y) else null\n\n  # Draws the bar chart.\n  #\n  draw: ->\n    @drawXAxis() if @options.axes in [true, 'both', 'x']\n    @drawSeries()\n\n  # draw the x-axis labels\n  #\n  # @private\n  drawXAxis: ->\n    # draw x axis labels\n    ypos = @bottom + (@options.xAxisLabelTopPadding || @options.padding / 2)\n    prevLabelMargin = null\n    prevAngleMargin = null\n    for i in [0...@data.length]\n      row = @data[@data.length - 1 - i]\n      label = @drawXAxisLabel(row._x, ypos, row.label)\n      textBox = label.getBBox()\n      label.transform(\"r#{-@options.xLabelAngle}\")\n      labelBox = label.getBBox()\n      label.transform(\"t0,#{labelBox.height / 2}...\")\n      if @options.xLabelAngle != 0\n        offset = -0.5 * textBox.width *\n          Math.cos(@options.xLabelAngle * Math.PI / 180.0)\n        label.transform(\"t#{offset},0...\")\n      # try to avoid overlaps\n      if (not prevLabelMargin? or\n          prevLabelMargin >= labelBox.x + labelBox.width or\n          prevAngleMargin? and prevAngleMargin >= labelBox.x) and\n         labelBox.x >= 0 and (labelBox.x + labelBox.width) < @el.width()\n        if @options.xLabelAngle != 0\n          margin = 1.25 * @options.gridTextSize /\n            Math.sin(@options.xLabelAngle * Math.PI / 180.0)\n          prevAngleMargin = labelBox.x - margin\n        prevLabelMargin = labelBox.x - @options.xLabelMargin\n      else\n        label.remove()\n\n  # draw the data series\n  #\n  # @private\n  drawSeries: ->\n    groupWidth = @width / @options.data.length\n    numBars = if @options.stacked then 1 else @options.ykeys.length\n    barWidth = (groupWidth * @options.barSizeRatio - @options.barGap * (numBars - 1)) / numBars\n    barWidth = Math.min(barWidth, @options.barSize) if @options.barSize\n    spaceLeft = groupWidth - barWidth * numBars - @options.barGap * (numBars - 1)\n    leftPadding = spaceLeft / 2\n    zeroPos = if @ymin <= 0 and @ymax >= 0 then @transY(0) else null\n    @bars = for row, idx in @data\n      lastTop = 0\n      for ypos, sidx in row._y\n        if ypos != null\n          if zeroPos\n            top = Math.min(ypos, zeroPos)\n            bottom = Math.max(ypos, zeroPos)\n          else\n            top = ypos\n            bottom = @bottom\n\n          left = @left + idx * groupWidth + leftPadding\n          left += sidx * (barWidth + @options.barGap) unless @options.stacked\n          size = bottom - top\n\n          if @options.verticalGridCondition and @options.verticalGridCondition(row.x)\n            @drawBar(@left + idx * groupWidth, @top, groupWidth, Math.abs(@top - @bottom), @options.verticalGridColor, @options.verticalGridOpacity, @options.barRadius)\n\n          top -= lastTop if @options.stacked\n          @drawBar(left, top, barWidth, size, @colorFor(row, sidx, 'bar'),\n              @options.barOpacity, @options.barRadius)\n\n          lastTop += size\n        else\n          null\n\n  # @private\n  #\n  # @param row  [Object] row data\n  # @param sidx [Number] series index\n  # @param type [String] \"bar\", \"hover\" or \"label\"\n  colorFor: (row, sidx, type) ->\n    if typeof @options.barColors is 'function'\n      r = { x: row.x, y: row.y[sidx], label: row.label }\n      s = { index: sidx, key: @options.ykeys[sidx], label: @options.labels[sidx] }\n      @options.barColors.call(@, r, s, type)\n    else\n      @options.barColors[sidx % @options.barColors.length]\n\n  # hit test - returns the index of the row at the given x-coordinate\n  #\n  hitTest: (x) ->\n    return null if @data.length == 0\n    x = Math.max(Math.min(x, @right), @left)\n    Math.min(@data.length - 1,\n      Math.floor((x - @left) / (@width / @data.length)))\n\n  # click on grid event handler\n  #\n  # @private\n  onGridClick: (x, y) =>\n    index = @hitTest(x)\n    @fire 'click', index, @data[index].src, x, y\n\n  # hover movement event handler\n  #\n  # @private\n  onHoverMove: (x, y) =>\n    index = @hitTest(x)\n    @hover.update(@hoverContentForRow(index)...)\n\n  # hover out event handler\n  #\n  # @private\n  onHoverOut: =>\n    if @options.hideHover isnt false\n      @hover.hide()\n\n  # hover content for a point\n  #\n  # @private\n  hoverContentForRow: (index) ->\n    row = @data[index]\n    content = \"<div class='morris-hover-row-label'>#{row.label}</div>\"\n    for y, j in row.y\n      content += \"\"\"\n        <div class='morris-hover-point' style='color: #{@colorFor(row, j, 'label')}'>\n          #{@options.labels[j]}:\n          #{@yLabelFormat(y)}\n        </div>\n      \"\"\"\n    if typeof @options.hoverCallback is 'function'\n      content = @options.hoverCallback(index, @options, content, row.src)\n    x = @left + (index + 0.5) * @width / @data.length\n    [content, x]\n\n  drawXAxisLabel: (xPos, yPos, text) ->\n    label = @raphael.text(xPos, yPos, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .attr('fill', @options.gridTextColor)\n\n  drawBar: (xPos, yPos, width, height, barColor, opacity, radiusArray) ->\n    maxRadius = Math.max(radiusArray...)\n    if maxRadius == 0 or maxRadius > height\n      path = @raphael.rect(xPos, yPos, width, height)\n    else\n      path = @raphael.path @roundedRect(xPos, yPos, width, height, radiusArray)\n    path\n      .attr('fill', barColor)\n      .attr('fill-opacity', opacity)\n      .attr('stroke', 'none')\n\n  roundedRect: (x, y, w, h, r = [0,0,0,0]) ->\n    [ \"M\", x, r[0] + y, \"Q\", x, y, x + r[0], y,\n      \"L\", x + w - r[1], y, \"Q\", x + w, y, x + w, y + r[1],\n      \"L\", x + w, y + h - r[2], \"Q\", x + w, y + h, x + w - r[2], y + h,\n      \"L\", x + r[3], y + h, \"Q\", x, y + h, x, y + h - r[3], \"Z\" ]\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/lib/morris.coffee",
    "content": "Morris = window.Morris = {}\n\n$ = jQuery\n\n# Very simple event-emitter class.\n#\n# @private\nclass Morris.EventEmitter\n  on: (name, handler) ->\n    unless @handlers?\n      @handlers = {}\n    unless @handlers[name]?\n      @handlers[name] = []\n    @handlers[name].push(handler)\n    @\n\n  fire: (name, args...) ->\n    if @handlers? and @handlers[name]?\n      for handler in @handlers[name]\n        handler(args...)\n\n# Make long numbers prettier by inserting commas.\n#\n# @example\n#   Morris.commas(1234567) -> '1,234,567'\nMorris.commas = (num) ->\n  if num?\n    ret = if num < 0 then \"-\" else \"\"\n    absnum = Math.abs(num)\n    intnum = Math.floor(absnum).toFixed(0)\n    ret += intnum.replace(/(?=(?:\\d{3})+$)(?!^)/g, ',')\n    strabsnum = absnum.toString()\n    if strabsnum.length > intnum.length\n      ret += strabsnum.slice(intnum.length)\n    ret\n  else\n    '-'\n\n# Zero-pad numbers to two characters wide.\n#\n# @example\n#   Morris.pad2(1) -> '01'\nMorris.pad2 = (number) -> (if number < 10 then '0' else '') + number\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/lib/morris.donut.coffee",
    "content": "# Donut charts.\n#\n# @example\n#   Morris.Donut({\n#     el: $('#donut-container'),\n#     data: [\n#       { label: 'yin',  value: 50 },\n#       { label: 'yang', value: 50 }\n#     ]\n#   });\nclass Morris.Donut extends Morris.EventEmitter\n  defaults:\n    colors: [\n      '#0B62A4'\n      '#3980B5'\n      '#679DC6'\n      '#95BBD7'\n      '#B0CCE1'\n      '#095791'\n      '#095085'\n      '#083E67'\n      '#052C48'\n      '#042135'\n    ],\n    backgroundColor: '#FFFFFF', \n    labelColor: '#000000',\n    formatter: Morris.commas\n    resize: false\n\n  # Create and render a donut chart.\n  #\n  constructor: (options) ->\n    return new Morris.Donut(options) unless (@ instanceof Morris.Donut)\n    @options = $.extend {}, @defaults, options\n\n    if typeof options.element is 'string'\n      @el = $ document.getElementById(options.element)\n    else\n      @el = $ options.element\n\n    if @el == null || @el.length == 0\n      throw new Error(\"Graph placeholder not found.\")\n\n    # bail if there's no data\n    if options.data is undefined or options.data.length is 0\n      return\n\n    @raphael = new Raphael(@el[0])\n\n    if @options.resize\n      $(window).bind 'resize', (evt) =>\n        if @timeoutId?\n          window.clearTimeout @timeoutId\n        @timeoutId = window.setTimeout @resizeHandler, 100\n\n    @setData options.data\n\n  # Clear and redraw the chart.\n  redraw: ->\n    @raphael.clear()\n\n    cx = @el.width() / 2\n    cy = @el.height() / 2\n    w = (Math.min(cx, cy) - 10) / 3\n\n    total = 0\n    total += value for value in @values\n\n    min = 5 / (2 * w)\n    C = 1.9999 * Math.PI - min * @data.length\n\n    last = 0\n    idx = 0\n    @segments = []\n    for value, i in @values\n      next = last + min + C * (value / total)\n      seg = new Morris.DonutSegment(\n        cx, cy, w*2, w, last, next,\n        @data[i].color || @options.colors[idx % @options.colors.length],\n        @options.backgroundColor, idx, @raphael)\n      seg.render()\n      @segments.push seg\n      seg.on 'hover', @select\n      seg.on 'click', @click\n      last = next\n      idx += 1\n\n    @text1 = @drawEmptyDonutLabel(cx, cy - 10, @options.labelColor, 15, 800)\n    @text2 = @drawEmptyDonutLabel(cx, cy + 10, @options.labelColor, 14)\n\n    max_value = Math.max @values...\n    idx = 0\n    for value in @values\n      if value == max_value\n        @select idx\n        break\n      idx += 1\n\n  setData: (data) ->\n    @data = data\n    @values = (parseFloat(row.value) for row in @data)\n    @redraw()\n\n  # @private\n  click: (idx) =>\n    @fire 'click', idx, @data[idx]\n\n  # Select the segment at the given index.\n  select: (idx) =>\n    s.deselect() for s in @segments\n    segment = @segments[idx]\n    segment.select()\n    row = @data[idx]\n    @setLabels(row.label, @options.formatter(row.value, row))\n\n\n\n  # @private\n  setLabels: (label1, label2) ->\n    inner = (Math.min(@el.width() / 2, @el.height() / 2) - 10) * 2 / 3\n    maxWidth = 1.8 * inner\n    maxHeightTop = inner / 2\n    maxHeightBottom = inner / 3\n    @text1.attr(text: label1, transform: '')\n    text1bbox = @text1.getBBox()\n    text1scale = Math.min(maxWidth / text1bbox.width, maxHeightTop / text1bbox.height)\n    @text1.attr(transform: \"S#{text1scale},#{text1scale},#{text1bbox.x + text1bbox.width / 2},#{text1bbox.y + text1bbox.height}\")\n    @text2.attr(text: label2, transform: '')\n    text2bbox = @text2.getBBox()\n    text2scale = Math.min(maxWidth / text2bbox.width, maxHeightBottom / text2bbox.height)\n    @text2.attr(transform: \"S#{text2scale},#{text2scale},#{text2bbox.x + text2bbox.width / 2},#{text2bbox.y}\")\n\n  drawEmptyDonutLabel: (xPos, yPos, color, fontSize, fontWeight) ->\n    text = @raphael.text(xPos, yPos, '')\n      .attr('font-size', fontSize)\n      .attr('fill', color)\n    text.attr('font-weight', fontWeight) if fontWeight?\n    return text\n\n  resizeHandler: =>\n    @timeoutId = null\n    @raphael.setSize @el.width(), @el.height()\n    @redraw()\n\n\n# A segment within a donut chart.\n#\n# @private\nclass Morris.DonutSegment extends Morris.EventEmitter\n  constructor: (@cx, @cy, @inner, @outer, p0, p1, @color, @backgroundColor, @index, @raphael) ->\n    @sin_p0 = Math.sin(p0)\n    @cos_p0 = Math.cos(p0)\n    @sin_p1 = Math.sin(p1)\n    @cos_p1 = Math.cos(p1)\n    @is_long = if (p1 - p0) > Math.PI then 1 else 0\n    @path = @calcSegment(@inner + 3, @inner + @outer - 5)\n    @selectedPath = @calcSegment(@inner + 3, @inner + @outer)\n    @hilight = @calcArc(@inner)\n\n  calcArcPoints: (r) ->\n    return [\n      @cx + r * @sin_p0,\n      @cy + r * @cos_p0,\n      @cx + r * @sin_p1,\n      @cy + r * @cos_p1]\n\n  calcSegment: (r1, r2) ->\n    [ix0, iy0, ix1, iy1] = @calcArcPoints(r1)\n    [ox0, oy0, ox1, oy1] = @calcArcPoints(r2)\n    return (\n      \"M#{ix0},#{iy0}\" +\n      \"A#{r1},#{r1},0,#{@is_long},0,#{ix1},#{iy1}\" +\n      \"L#{ox1},#{oy1}\" +\n      \"A#{r2},#{r2},0,#{@is_long},1,#{ox0},#{oy0}\" +\n      \"Z\")\n\n  calcArc: (r) ->\n    [ix0, iy0, ix1, iy1] = @calcArcPoints(r)\n    return (\n      \"M#{ix0},#{iy0}\" +\n      \"A#{r},#{r},0,#{@is_long},0,#{ix1},#{iy1}\")\n\n  render: ->\n    @arc = @drawDonutArc(@hilight, @color)\n    @seg = @drawDonutSegment(\n      @path, \n      @color, \n      @backgroundColor, \n      => @fire('hover', @index),\n      => @fire('click', @index)\n    )\n\n  drawDonutArc: (path, color) ->\n    @raphael.path(path)\n      .attr(stroke: color, 'stroke-width': 2, opacity: 0)\n\n  drawDonutSegment: (path, fillColor, strokeColor, hoverFunction, clickFunction) ->\n    @raphael.path(path)\n      .attr(fill: fillColor, stroke: strokeColor, 'stroke-width': 3)\n      .hover(hoverFunction)\n      .click(clickFunction)\n\n  select: =>\n    unless @selected\n      @seg.animate(path: @selectedPath, 150, '<>')\n      @arc.animate(opacity: 1, 150, '<>')\n      @selected = true\n\n  deselect: =>\n    if @selected\n      @seg.animate(path: @path, 150, '<>')\n      @arc.animate(opacity: 0, 150, '<>')\n      @selected = false\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/lib/morris.grid.coffee",
    "content": "class Morris.Grid extends Morris.EventEmitter\n  # A generic pair of axes for line/area/bar charts.\n  #\n  # Draws grid lines and axis labels.\n  #\n  constructor: (options) ->\n    # find the container to draw the graph in\n    if typeof options.element is 'string'\n      @el = $ document.getElementById(options.element)\n    else\n      @el = $ options.element\n    if not @el? or @el.length == 0\n      throw new Error(\"Graph container element not found\")\n\n    if @el.css('position') == 'static'\n      @el.css('position', 'relative')\n\n    @options = $.extend {}, @gridDefaults, (@defaults || {}), options\n\n    # backwards compatibility for units -> postUnits\n    if typeof @options.units is 'string'\n      @options.postUnits = options.units\n\n    # the raphael drawing instance\n    @raphael = new Raphael(@el[0])\n\n    # some redraw stuff\n    @elementWidth = null\n    @elementHeight = null\n    @dirty = false\n\n    # range selection\n    @selectFrom = null\n\n    # more stuff\n    @init() if @init\n\n    # load data\n    @setData @options.data\n\n    # hover\n    @el.bind 'mousemove', (evt) =>\n      offset = @el.offset()\n      x = evt.pageX - offset.left\n      if @selectFrom\n        left = @data[@hitTest(Math.min(x, @selectFrom))]._x\n        right = @data[@hitTest(Math.max(x, @selectFrom))]._x\n        width = right - left\n        @selectionRect.attr({ x: left, width: width })\n      else\n        @fire 'hovermove', x, evt.pageY - offset.top\n\n    @el.bind 'mouseleave', (evt) =>\n      if @selectFrom\n        @selectionRect.hide()\n        @selectFrom = null\n      @fire 'hoverout'\n\n    @el.bind 'touchstart touchmove touchend', (evt) =>\n      touch = evt.originalEvent.touches[0] or evt.originalEvent.changedTouches[0]\n      offset = @el.offset()\n      @fire 'hovermove', touch.pageX - offset.left, touch.pageY - offset.top\n\n    @el.bind 'click', (evt) =>\n      offset = @el.offset()\n      @fire 'gridclick', evt.pageX - offset.left, evt.pageY - offset.top\n\n    if @options.rangeSelect\n      @selectionRect = @raphael.rect(0, 0, 0, @el.innerHeight())\n        .attr({ fill: @options.rangeSelectColor, stroke: false })\n        .toBack()\n        .hide()\n\n      @el.bind 'mousedown', (evt) =>\n        offset = @el.offset()\n        @startRange evt.pageX - offset.left\n\n      @el.bind 'mouseup', (evt) =>\n        offset = @el.offset()\n        @endRange evt.pageX - offset.left\n        @fire 'hovermove', evt.pageX - offset.left, evt.pageY - offset.top\n\n    if @options.resize\n      $(window).bind 'resize', (evt) =>\n        if @timeoutId?\n          window.clearTimeout @timeoutId\n        @timeoutId = window.setTimeout @resizeHandler, 100\n\n    # Disable tap highlight on iOS.\n    @el.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)')\n\n    @postInit() if @postInit\n\n  # Default options\n  #\n  gridDefaults:\n    dateFormat: null\n    axes: true\n    grid: true\n    gridLineColor: '#aaa'\n    gridStrokeWidth: 0.5\n    gridTextColor: '#888'\n    gridTextSize: 12\n    gridTextFamily: 'sans-serif'\n    gridTextWeight: 'normal'\n    hideHover: false\n    yLabelFormat: null\n    xLabelAngle: 0\n    numLines: 5\n    padding: 25\n    parseTime: true\n    postUnits: ''\n    preUnits: ''\n    ymax: 'auto'\n    ymin: 'auto 0'\n    goals: []\n    goalStrokeWidth: 1.0\n    goalLineColors: [\n      '#666633'\n      '#999966'\n      '#cc6666'\n      '#663333'\n    ]\n    events: []\n    eventStrokeWidth: 1.0\n    eventLineColors: [\n      '#005a04'\n      '#ccffbb'\n      '#3a5f0b'\n      '#005502'\n    ]\n    rangeSelect: null\n    rangeSelectColor: '#eef'\n    resize: false\n\n  # Update the data series and redraw the chart.\n  #\n  setData: (data, redraw = true) ->\n    @options.data = data\n\n    if !data? or data.length == 0\n      @data = []\n      @raphael.clear()\n      @hover.hide() if @hover?\n      return\n\n    ymax = if @cumulative then 0 else null\n    ymin = if @cumulative then 0 else null\n\n    if @options.goals.length > 0\n      minGoal = Math.min @options.goals...\n      maxGoal = Math.max @options.goals...\n      ymin = if ymin? then Math.min(ymin, minGoal) else minGoal\n      ymax = if ymax? then Math.max(ymax, maxGoal) else maxGoal\n\n    @data = for row, index in data\n      ret = {src: row}\n\n      ret.label = row[@options.xkey]\n      if @options.parseTime\n        ret.x = Morris.parseDate(ret.label)\n        if @options.dateFormat\n          ret.label = @options.dateFormat ret.x\n        else if typeof ret.label is 'number'\n          ret.label = new Date(ret.label).toString()\n      else\n        ret.x = index\n        if @options.xLabelFormat\n          ret.label = @options.xLabelFormat ret\n      total = 0\n      ret.y = for ykey, idx in @options.ykeys\n        yval = row[ykey]\n        yval = parseFloat(yval) if typeof yval is 'string'\n        yval = null if yval? and typeof yval isnt 'number'\n        if yval?\n          if @cumulative\n            total += yval\n          else\n            if ymax?\n              ymax = Math.max(yval, ymax)\n              ymin = Math.min(yval, ymin)\n            else\n              ymax = ymin = yval\n        if @cumulative and total?\n          ymax = Math.max(total, ymax)\n          ymin = Math.min(total, ymin)\n        yval\n      ret\n\n    if @options.parseTime\n      @data = @data.sort (a, b) -> (a.x > b.x) - (b.x > a.x)\n\n    # calculate horizontal range of the graph\n    @xmin = @data[0].x\n    @xmax = @data[@data.length - 1].x\n\n    @events = []\n    if @options.events.length > 0\n      if @options.parseTime\n        @events = (Morris.parseDate(e) for e in @options.events)\n      else\n        @events = @options.events\n      @xmax = Math.max(@xmax, Math.max(@events...))\n      @xmin = Math.min(@xmin, Math.min(@events...))\n\n    if @xmin is @xmax\n      @xmin -= 1\n      @xmax += 1\n\n    @ymin = @yboundary('min', ymin)\n    @ymax = @yboundary('max', ymax)\n\n    if @ymin is @ymax\n      @ymin -= 1 if ymin\n      @ymax += 1\n\n    if @options.axes in [true, 'both', 'y'] or @options.grid is true\n      if (@options.ymax == @gridDefaults.ymax and\n          @options.ymin == @gridDefaults.ymin)\n        # calculate 'magic' grid placement\n        @grid = @autoGridLines(@ymin, @ymax, @options.numLines)\n        @ymin = Math.min(@ymin, @grid[0])\n        @ymax = Math.max(@ymax, @grid[@grid.length - 1])\n      else\n        step = (@ymax - @ymin) / (@options.numLines - 1)\n        @grid = (y for y in [@ymin..@ymax] by step)\n\n    @dirty = true\n    @redraw() if redraw\n\n  yboundary: (boundaryType, currentValue) ->\n    boundaryOption = @options[\"y#{boundaryType}\"]\n    if typeof boundaryOption is 'string'\n      if boundaryOption[0..3] is 'auto'\n        if boundaryOption.length > 5\n          suggestedValue = parseInt(boundaryOption[5..], 10)\n          return suggestedValue unless currentValue?\n          Math[boundaryType](currentValue, suggestedValue)\n        else\n          if currentValue? then currentValue else 0\n      else\n        parseInt(boundaryOption, 10)\n    else\n      boundaryOption\n\n  autoGridLines: (ymin, ymax, nlines) ->\n    span = ymax - ymin\n    ymag = Math.floor(Math.log(span) / Math.log(10))\n    unit = Math.pow(10, ymag)\n\n    # calculate initial grid min and max values\n    gmin = Math.floor(ymin / unit) * unit\n    gmax = Math.ceil(ymax / unit) * unit\n    step = (gmax - gmin) / (nlines - 1)\n    if unit == 1 and step > 1 and Math.ceil(step) != step\n      step = Math.ceil(step)\n      gmax = gmin + step * (nlines - 1)\n\n    # ensure zero is plotted where the range includes zero\n    if gmin < 0 and gmax > 0\n      gmin = Math.floor(ymin / step) * step\n      gmax = Math.ceil(ymax / step) * step\n\n    # special case for decimal numbers\n    if step < 1\n      smag = Math.floor(Math.log(step) / Math.log(10))\n      grid = for y in [gmin..gmax] by step\n        parseFloat(y.toFixed(1 - smag))\n    else\n      grid = (y for y in [gmin..gmax] by step)\n    grid\n\n  _calc: ->\n    w = @el.width()\n    h = @el.height()\n\n    if @elementWidth != w or @elementHeight != h or @dirty\n      @elementWidth = w\n      @elementHeight = h\n      @dirty = false\n      # recalculate grid dimensions\n      @left = @options.padding\n      @right = @elementWidth - @options.padding\n      @top = @options.padding\n      @bottom = @elementHeight - @options.padding\n      if @options.axes in [true, 'both', 'y']\n        yLabelWidths = for gridLine in @grid\n          @measureText(@yAxisFormat(gridLine)).width\n        @left += Math.max(yLabelWidths...)\n      if @options.axes in [true, 'both', 'x']\n        bottomOffsets = for i in [0...@data.length]\n          @measureText(@data[i].text, -@options.xLabelAngle).height\n        @bottom -= Math.max(bottomOffsets...)\n      @width = Math.max(1, @right - @left)\n      @height = Math.max(1, @bottom - @top)\n      @dx = @width / (@xmax - @xmin)\n      @dy = @height / (@ymax - @ymin)\n      @calc() if @calc\n\n  # Quick translation helpers\n  #\n  transY: (y) -> @bottom - (y - @ymin) * @dy\n  transX: (x) ->\n    if @data.length == 1\n      (@left + @right) / 2\n    else\n      @left + (x - @xmin) * @dx\n\n  # Draw it!\n  #\n  # If you need to re-size your charts, call this method after changing the\n  # size of the container element.\n  redraw: ->\n    @raphael.clear()\n    @_calc()\n    @drawGrid()\n    @drawGoals()\n    @drawEvents()\n    @draw() if @draw\n\n  # @private\n  #\n  measureText: (text, angle = 0) ->\n    tt = @raphael.text(100, 100, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .rotate(angle)\n    ret = tt.getBBox()\n    tt.remove()\n    ret\n\n  # @private\n  #\n  yAxisFormat: (label) -> @yLabelFormat(label)\n\n  # @private\n  #\n  yLabelFormat: (label) ->\n    if typeof @options.yLabelFormat is 'function'\n      @options.yLabelFormat(label)\n    else\n      \"#{@options.preUnits}#{Morris.commas(label)}#{@options.postUnits}\"\n\n  # draw y axis labels, horizontal lines\n  #\n  drawGrid: ->\n    return if @options.grid is false and @options.axes not in [true, 'both', 'y']\n    for lineY in @grid\n      y = @transY(lineY)\n      if @options.axes in [true, 'both', 'y']\n        @drawYAxisLabel(@left - @options.padding / 2, y, @yAxisFormat(lineY))\n      if @options.grid\n        @drawGridLine(\"M#{@left},#{y}H#{@left + @width}\")\n\n  # draw goals horizontal lines\n  #\n  drawGoals: ->\n    for goal, i in @options.goals\n      color = @options.goalLineColors[i % @options.goalLineColors.length]\n      @drawGoal(goal, color)\n\n  # draw events vertical lines\n  drawEvents: ->\n    for event, i in @events\n      color = @options.eventLineColors[i % @options.eventLineColors.length]\n      @drawEvent(event, color)\n\n  drawGoal: (goal, color) ->\n    @raphael.path(\"M#{@left},#{@transY(goal)}H#{@right}\")\n      .attr('stroke', color)\n      .attr('stroke-width', @options.goalStrokeWidth)\n\n  drawEvent: (event, color) ->\n    @raphael.path(\"M#{@transX(event)},#{@bottom}V#{@top}\")\n      .attr('stroke', color)\n      .attr('stroke-width', @options.eventStrokeWidth)\n\n  drawYAxisLabel: (xPos, yPos, text) ->\n    @raphael.text(xPos, yPos, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .attr('fill', @options.gridTextColor)\n      .attr('text-anchor', 'end')\n\n  drawGridLine: (path) ->\n    @raphael.path(path)\n      .attr('stroke', @options.gridLineColor)\n      .attr('stroke-width', @options.gridStrokeWidth)\n\n  # Range selection\n  #\n  startRange: (x) ->\n    @hover.hide()\n    @selectFrom = x\n    @selectionRect.attr({ x: x, width: 0 }).show()\n\n  endRange: (x) ->\n    if @selectFrom\n      start = Math.min(@selectFrom, x)\n      end = Math.max(@selectFrom, x)\n      @options.rangeSelect.call @el,\n        start: @data[@hitTest(start)].x\n        end: @data[@hitTest(end)].x\n      @selectFrom = null\n\n  resizeHandler: =>\n    @timeoutId = null\n    @raphael.setSize @el.width(), @el.height()\n    @redraw()\n\n# Parse a date into a javascript timestamp\n#\n#\nMorris.parseDate = (date) ->\n  if typeof date is 'number'\n    return date\n  m = date.match /^(\\d+) Q(\\d)$/\n  n = date.match /^(\\d+)-(\\d+)$/\n  o = date.match /^(\\d+)-(\\d+)-(\\d+)$/\n  p = date.match /^(\\d+) W(\\d+)$/\n  q = date.match /^(\\d+)-(\\d+)-(\\d+)[ T](\\d+):(\\d+)(Z|([+-])(\\d\\d):?(\\d\\d))?$/\n  r = date.match /^(\\d+)-(\\d+)-(\\d+)[ T](\\d+):(\\d+):(\\d+(\\.\\d+)?)(Z|([+-])(\\d\\d):?(\\d\\d))?$/\n  if m\n    new Date(\n      parseInt(m[1], 10),\n      parseInt(m[2], 10) * 3 - 1,\n      1).getTime()\n  else if n\n    new Date(\n      parseInt(n[1], 10),\n      parseInt(n[2], 10) - 1,\n      1).getTime()\n  else if o\n    new Date(\n      parseInt(o[1], 10),\n      parseInt(o[2], 10) - 1,\n      parseInt(o[3], 10)).getTime()\n  else if p\n    # calculate number of weeks in year given\n    ret = new Date(parseInt(p[1], 10), 0, 1);\n    # first thursday in year (ISO 8601 standard)\n    if ret.getDay() isnt 4\n      ret.setMonth(0, 1 + ((4 - ret.getDay()) + 7) % 7);\n    # add weeks\n    ret.getTime() + parseInt(p[2], 10) * 604800000\n  else if q\n    if not q[6]\n      # no timezone info, use local\n      new Date(\n        parseInt(q[1], 10),\n        parseInt(q[2], 10) - 1,\n        parseInt(q[3], 10),\n        parseInt(q[4], 10),\n        parseInt(q[5], 10)).getTime()\n    else\n      # timezone info supplied, use UTC\n      offsetmins = 0\n      if q[6] != 'Z'\n        offsetmins = parseInt(q[8], 10) * 60 + parseInt(q[9], 10)\n        offsetmins = 0 - offsetmins if q[7] == '+'\n      Date.UTC(\n        parseInt(q[1], 10),\n        parseInt(q[2], 10) - 1,\n        parseInt(q[3], 10),\n        parseInt(q[4], 10),\n        parseInt(q[5], 10) + offsetmins)\n  else if r\n    secs = parseFloat(r[6])\n    isecs = Math.floor(secs)\n    msecs = Math.round((secs - isecs) * 1000)\n    if not r[8]\n      # no timezone info, use local\n      new Date(\n        parseInt(r[1], 10),\n        parseInt(r[2], 10) - 1,\n        parseInt(r[3], 10),\n        parseInt(r[4], 10),\n        parseInt(r[5], 10),\n        isecs,\n        msecs).getTime()\n    else\n      # timezone info supplied, use UTC\n      offsetmins = 0\n      if r[8] != 'Z'\n        offsetmins = parseInt(r[10], 10) * 60 + parseInt(r[11], 10)\n        offsetmins = 0 - offsetmins if r[9] == '+'\n      Date.UTC(\n        parseInt(r[1], 10),\n        parseInt(r[2], 10) - 1,\n        parseInt(r[3], 10),\n        parseInt(r[4], 10),\n        parseInt(r[5], 10) + offsetmins,\n        isecs,\n        msecs)\n  else\n    new Date(parseInt(date, 10), 0, 1).getTime()\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/lib/morris.hover.coffee",
    "content": "class Morris.Hover\n  # Displays contextual information in a floating HTML div.\n\n  @defaults:\n    class: 'morris-hover morris-default-style'\n\n  constructor: (options = {}) ->\n    @options = $.extend {}, Morris.Hover.defaults, options\n    @el = $ \"<div class='#{@options.class}'></div>\"\n    @el.hide()\n    @options.parent.append(@el)\n\n  update: (html, x, y) ->\n    if not html\n      @hide()\n    else\n      @html(html)\n      @show()\n      @moveTo(x, y)\n\n  html: (content) ->\n    @el.html(content)\n\n  moveTo: (x, y) ->\n    parentWidth  = @options.parent.innerWidth()\n    parentHeight = @options.parent.innerHeight()\n    hoverWidth   = @el.outerWidth()\n    hoverHeight  = @el.outerHeight()\n    left = Math.min(Math.max(0, x - hoverWidth / 2), parentWidth - hoverWidth)\n    if y?\n      top = y - hoverHeight - 10\n      if top < 0\n        top = y + 10\n        if top + hoverHeight > parentHeight\n          top = parentHeight / 2 - hoverHeight / 2\n    else\n      top = parentHeight / 2 - hoverHeight / 2\n    @el.css(left: left + \"px\", top: parseInt(top) + \"px\")\n\n  show: ->\n    @el.show()\n\n  hide: ->\n    @el.hide()\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/lib/morris.line.coffee",
    "content": "class Morris.Line extends Morris.Grid\n  # Initialise the graph.\n  #\n  constructor: (options) ->\n    return new Morris.Line(options) unless (@ instanceof Morris.Line)\n    super(options)\n\n  init: ->\n    # Some instance variables for later\n    if @options.hideHover isnt 'always'\n      @hover = new Morris.Hover(parent: @el)\n      @on('hovermove', @onHoverMove)\n      @on('hoverout', @onHoverOut)\n      @on('gridclick', @onGridClick)\n\n  # Default configuration\n  #\n  defaults:\n    lineWidth: 3\n    pointSize: 4\n    lineColors: [\n      '#0b62a4'\n      '#7A92A3'\n      '#4da74d'\n      '#afd8f8'\n      '#edc240'\n      '#cb4b4b'\n      '#9440ed'\n    ]\n    pointStrokeWidths: [1]\n    pointStrokeColors: ['#ffffff']\n    pointFillColors: []\n    smooth: true\n    xLabels: 'auto'\n    xLabelFormat: null\n    xLabelMargin: 24\n    hideHover: false\n\n  # Do any size-related calculations\n  #\n  # @private\n  calc: ->\n    @calcPoints()\n    @generatePaths()\n\n  # calculate series data point coordinates\n  #\n  # @private\n  calcPoints: ->\n    for row in @data\n      row._x = @transX(row.x)\n      row._y = for y in row.y\n        if y? then @transY(y) else y\n      row._ymax = Math.min [@bottom].concat(y for y in row._y when y?)...\n\n  # hit test - returns the index of the row at the given x-coordinate\n  #\n  hitTest: (x) ->\n    return null if @data.length == 0\n    # TODO better search algo\n    for r, index in @data.slice(1)\n      break if x < (r._x + @data[index]._x) / 2\n    index\n\n  # click on grid event handler\n  #\n  # @private\n  onGridClick: (x, y) =>\n    index = @hitTest(x)\n    @fire 'click', index, @data[index].src, x, y\n\n  # hover movement event handler\n  #\n  # @private\n  onHoverMove: (x, y) =>\n    index = @hitTest(x)\n    @displayHoverForRow(index)\n\n  # hover out event handler\n  #\n  # @private\n  onHoverOut: =>\n    if @options.hideHover isnt false\n      @displayHoverForRow(null)\n\n  # display a hover popup over the given row\n  #\n  # @private\n  displayHoverForRow: (index) ->\n    if index?\n      @hover.update(@hoverContentForRow(index)...)\n      @hilight(index)\n    else\n      @hover.hide()\n      @hilight()\n\n  # hover content for a point\n  #\n  # @private\n  hoverContentForRow: (index) ->\n    row = @data[index]\n    content = \"<div class='morris-hover-row-label'>#{row.label}</div>\"\n    for y, j in row.y\n      content += \"\"\"\n        <div class='morris-hover-point' style='color: #{@colorFor(row, j, 'label')}'>\n          #{@options.labels[j]}:\n          #{@yLabelFormat(y)}\n        </div>\n      \"\"\"\n    if typeof @options.hoverCallback is 'function'\n      content = @options.hoverCallback(index, @options, content, row.src)\n    [content, row._x, row._ymax]\n\n\n  # generate paths for series lines\n  #\n  # @private\n  generatePaths: ->\n    @paths = for i in [0...@options.ykeys.length]\n      smooth = if typeof @options.smooth is \"boolean\" then @options.smooth else @options.ykeys[i] in @options.smooth\n      coords = ({x: r._x, y: r._y[i]} for r in @data when r._y[i] isnt undefined)\n\n      if coords.length > 1\n        Morris.Line.createPath coords, smooth, @bottom\n      else\n        null\n\n  # Draws the line chart.\n  #\n  draw: ->\n    @drawXAxis() if @options.axes in [true, 'both', 'x']\n    @drawSeries()\n    if @options.hideHover is false\n      @displayHoverForRow(@data.length - 1)\n\n  # draw the x-axis labels\n  #\n  # @private\n  drawXAxis: ->\n    # draw x axis labels\n    ypos = @bottom + @options.padding / 2\n    prevLabelMargin = null\n    prevAngleMargin = null\n    drawLabel = (labelText, xpos) =>\n      label = @drawXAxisLabel(@transX(xpos), ypos, labelText)\n      textBox = label.getBBox()\n      label.transform(\"r#{-@options.xLabelAngle}\")\n      labelBox = label.getBBox()\n      label.transform(\"t0,#{labelBox.height / 2}...\")\n      if @options.xLabelAngle != 0\n        offset = -0.5 * textBox.width *\n          Math.cos(@options.xLabelAngle * Math.PI / 180.0)\n        label.transform(\"t#{offset},0...\")\n      # try to avoid overlaps\n      labelBox = label.getBBox()\n      if (not prevLabelMargin? or\n          prevLabelMargin >= labelBox.x + labelBox.width or\n          prevAngleMargin? and prevAngleMargin >= labelBox.x) and\n         labelBox.x >= 0 and (labelBox.x + labelBox.width) < @el.width()\n        if @options.xLabelAngle != 0\n          margin = 1.25 * @options.gridTextSize /\n            Math.sin(@options.xLabelAngle * Math.PI / 180.0)\n          prevAngleMargin = labelBox.x - margin\n        prevLabelMargin = labelBox.x - @options.xLabelMargin\n      else\n        label.remove()\n    if @options.parseTime\n      if @data.length == 1 and @options.xLabels == 'auto'\n        # where there's only one value in the series, we can't make a\n        # sensible guess for an x labelling scheme, so just use the original\n        # column label\n        labels = [[@data[0].label, @data[0].x]]\n      else\n        labels = Morris.labelSeries(@xmin, @xmax, @width, @options.xLabels, @options.xLabelFormat)\n    else\n      labels = ([row.label, row.x] for row in @data)\n    labels.reverse()\n    for l in labels\n      drawLabel(l[0], l[1])\n\n  # draw the data series\n  #\n  # @private\n  drawSeries: ->\n    @seriesPoints = []\n    for i in [@options.ykeys.length-1..0]\n      @_drawLineFor i\n    for i in [@options.ykeys.length-1..0]\n      @_drawPointFor i\n\n  _drawPointFor: (index) ->\n    @seriesPoints[index] = []\n    for row in @data\n      circle = null\n      if row._y[index]?\n        circle = @drawLinePoint(row._x, row._y[index], @colorFor(row, index, 'point'), index)\n      @seriesPoints[index].push(circle)\n\n  _drawLineFor: (index) ->\n    path = @paths[index]\n    if path isnt null\n      @drawLinePath path, @colorFor(null, index, 'line'), index\n\n  # create a path for a data series\n  #\n  # @private\n  @createPath: (coords, smooth, bottom) ->\n    path = \"\"\n    grads = Morris.Line.gradients(coords) if smooth\n\n    prevCoord = {y: null}\n    for coord, i in coords\n      if coord.y?\n        if prevCoord.y?\n          if smooth\n            g = grads[i]\n            lg = grads[i - 1]\n            ix = (coord.x - prevCoord.x) / 4\n            x1 = prevCoord.x + ix\n            y1 = Math.min(bottom, prevCoord.y + ix * lg)\n            x2 = coord.x - ix\n            y2 = Math.min(bottom, coord.y - ix * g)\n            path += \"C#{x1},#{y1},#{x2},#{y2},#{coord.x},#{coord.y}\"\n          else\n            path += \"L#{coord.x},#{coord.y}\"\n        else\n          if not smooth or grads[i]?\n            path += \"M#{coord.x},#{coord.y}\"\n      prevCoord = coord\n    return path\n\n  # calculate a gradient at each point for a series of points\n  #\n  # @private\n  @gradients: (coords) ->\n    grad = (a, b) -> (a.y - b.y) / (a.x - b.x)\n    for coord, i in coords\n      if coord.y?\n        nextCoord = coords[i + 1] or {y: null}\n        prevCoord = coords[i - 1] or {y: null}\n        if prevCoord.y? and nextCoord.y?\n          grad(prevCoord, nextCoord)\n        else if prevCoord.y?\n          grad(prevCoord, coord)\n        else if nextCoord.y?\n          grad(coord, nextCoord)\n        else\n          null\n      else\n        null\n\n  # @private\n  hilight: (index) =>\n    if @prevHilight isnt null and @prevHilight isnt index\n      for i in [0..@seriesPoints.length-1]\n        if @seriesPoints[i][@prevHilight]\n          @seriesPoints[i][@prevHilight].animate @pointShrinkSeries(i)\n    if index isnt null and @prevHilight isnt index\n      for i in [0..@seriesPoints.length-1]\n        if @seriesPoints[i][index]\n          @seriesPoints[i][index].animate @pointGrowSeries(i)\n    @prevHilight = index\n\n  colorFor: (row, sidx, type) ->\n    if typeof @options.lineColors is 'function'\n      @options.lineColors.call(@, row, sidx, type)\n    else if type is 'point'\n      @options.pointFillColors[sidx % @options.pointFillColors.length] || @options.lineColors[sidx % @options.lineColors.length]\n    else\n      @options.lineColors[sidx % @options.lineColors.length]\n\n  drawXAxisLabel: (xPos, yPos, text) ->\n    @raphael.text(xPos, yPos, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .attr('fill', @options.gridTextColor)\n\n  drawLinePath: (path, lineColor, lineIndex) ->\n    @raphael.path(path)\n      .attr('stroke', lineColor)\n      .attr('stroke-width', @lineWidthForSeries(lineIndex))\n\n  drawLinePoint: (xPos, yPos, pointColor, lineIndex) ->\n    @raphael.circle(xPos, yPos, @pointSizeForSeries(lineIndex))\n      .attr('fill', pointColor)\n      .attr('stroke-width', @pointStrokeWidthForSeries(lineIndex))\n      .attr('stroke', @pointStrokeColorForSeries(lineIndex))\n\n  # @private\n  pointStrokeWidthForSeries: (index) ->\n    @options.pointStrokeWidths[index % @options.pointStrokeWidths.length]\n\n  # @private\n  pointStrokeColorForSeries: (index) ->\n    @options.pointStrokeColors[index % @options.pointStrokeColors.length]\n\n  # @private\n  lineWidthForSeries: (index) ->\n    if (@options.lineWidth instanceof Array)\n      @options.lineWidth[index % @options.lineWidth.length]\n    else\n      @options.lineWidth\n\n  # @private\n  pointSizeForSeries: (index) ->\n    if (@options.pointSize instanceof Array)\n      @options.pointSize[index % @options.pointSize.length]\n    else\n      @options.pointSize\n\n  # @private\n  pointGrowSeries: (index) ->\n    Raphael.animation r: @pointSizeForSeries(index) + 3, 25, 'linear'\n\n  # @private\n  pointShrinkSeries: (index) ->\n    Raphael.animation r: @pointSizeForSeries(index), 25, 'linear'\n\n# generate a series of label, timestamp pairs for x-axis labels\n#\n# @private\nMorris.labelSeries = (dmin, dmax, pxwidth, specName, xLabelFormat) ->\n  ddensity = 200 * (dmax - dmin) / pxwidth # seconds per `margin` pixels\n  d0 = new Date(dmin)\n  spec = Morris.LABEL_SPECS[specName]\n  # if the spec doesn't exist, search for the closest one in the list\n  if spec is undefined\n    for name in Morris.AUTO_LABEL_ORDER\n      s = Morris.LABEL_SPECS[name]\n      if ddensity >= s.span\n        spec = s\n        break\n  # if we run out of options, use second-intervals\n  if spec is undefined\n    spec = Morris.LABEL_SPECS[\"second\"]\n  # check if there's a user-defined formatting function\n  if xLabelFormat\n    spec = $.extend({}, spec, {fmt: xLabelFormat})\n  # calculate labels\n  d = spec.start(d0)\n  ret = []\n  while  (t = d.getTime()) <= dmax\n    if t >= dmin\n      ret.push [spec.fmt(d), t]\n    spec.incr(d)\n  return ret\n\n# @private\nminutesSpecHelper = (interval) ->\n  span: interval * 60 * 1000\n  start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours())\n  fmt: (d) -> \"#{Morris.pad2(d.getHours())}:#{Morris.pad2(d.getMinutes())}\"\n  incr: (d) -> d.setUTCMinutes(d.getUTCMinutes() + interval)\n\n# @private\nsecondsSpecHelper = (interval) ->\n  span: interval * 1000\n  start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes())\n  fmt: (d) -> \"#{Morris.pad2(d.getHours())}:#{Morris.pad2(d.getMinutes())}:#{Morris.pad2(d.getSeconds())}\"\n  incr: (d) -> d.setUTCSeconds(d.getUTCSeconds() + interval)\n\nMorris.LABEL_SPECS =\n  \"decade\":\n    span: 172800000000 # 10 * 365 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear() - d.getFullYear() % 10, 0, 1)\n    fmt: (d) -> \"#{d.getFullYear()}\"\n    incr: (d) -> d.setFullYear(d.getFullYear() + 10)\n  \"year\":\n    span: 17280000000 # 365 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), 0, 1)\n    fmt: (d) -> \"#{d.getFullYear()}\"\n    incr: (d) -> d.setFullYear(d.getFullYear() + 1)\n  \"month\":\n    span: 2419200000 # 28 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), d.getMonth(), 1)\n    fmt: (d) -> \"#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}\"\n    incr: (d) -> d.setMonth(d.getMonth() + 1)\n  \"week\":\n    span: 604800000 # 7 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate())\n    fmt: (d) -> \"#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}-#{Morris.pad2(d.getDate())}\"\n    incr: (d) -> d.setDate(d.getDate() + 7)\n  \"day\":\n    span: 86400000 # 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate())\n    fmt: (d) -> \"#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}-#{Morris.pad2(d.getDate())}\"\n    incr: (d) -> d.setDate(d.getDate() + 1)\n  \"hour\": minutesSpecHelper(60)\n  \"30min\": minutesSpecHelper(30)\n  \"15min\": minutesSpecHelper(15)\n  \"10min\": minutesSpecHelper(10)\n  \"5min\": minutesSpecHelper(5)\n  \"minute\": minutesSpecHelper(1)\n  \"30sec\": secondsSpecHelper(30)\n  \"15sec\": secondsSpecHelper(15)\n  \"10sec\": secondsSpecHelper(10)\n  \"5sec\": secondsSpecHelper(5)\n  \"second\": secondsSpecHelper(1)\n\nMorris.AUTO_LABEL_ORDER = [\n  \"decade\", \"year\", \"month\", \"week\", \"day\", \"hour\",\n  \"30min\", \"15min\", \"10min\", \"5min\", \"minute\",\n  \"30sec\", \"15sec\", \"10sec\", \"5sec\", \"second\"\n]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/morris.css",
    "content": ".morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}\n.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/raphael-min.js",
    "content": "// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.2 - JavaScript Vector Library                          │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)    │ \\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com)              │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n!function(a){var b,c,d=\"0.4.2\",e=\"hasOwnProperty\",f=/[\\.\\/]/,g=\"*\",h=function(){},i=function(a,b){return a-b},j={n:{}},k=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=k.listeners(a),j=0,l=[],m={},n=[],o=b;b=a,c=0;for(var p=0,q=h.length;q>p;p++)\"zIndex\"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],\"zIndex\"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k._events=j,k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){if(a=String(a),\"function\"!=typeof b)return function(){};for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,d=d.hasOwnProperty(c[e])&&d[c[e]]||(d[c[e]]={n:{}});for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.f=function(a){var b=[].slice.call(arguments,1);return function(){k.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp(\"(?:\\\\.|\\\\/|^)\"+a+\"(?:\\\\.|\\\\/|$)\").test(b):b},k.nts=function(){return b.split(f)},k.off=k.unbind=function(a,b){if(!a)return void(k._events=j={n:{}});var c,d,h,i,l,m,n,o=a.split(f),p=[j];for(i=0,l=o.length;l>i;i++)for(m=0;m<p.length;m+=h.length-2){if(h=[m,1],c=p[m].n,o[i]!=g)c[o[i]]&&h.push(c[o[i]]);else for(d in c)c[e](d)&&h.push(c[d]);p.splice.apply(p,h)}for(i=0,l=p.length;l>i;i++)for(c=p[i];c.n;){if(b){if(c.f){for(m=0,n=c.f.length;n>m;m++)if(c.f[m]==b){c.f.splice(m,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var q=c.n[d].f;for(m=0,n=q.length;n>m;m++)if(q[m]==b){q.splice(m,1);break}!q.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){return k.unbind(a,c),b.apply(this,arguments)};return k.on(a,c)},k.version=d,k.toString=function(){return\"You are running Eve \"+d},\"undefined\"!=typeof module&&module.exports?module.exports=k:\"undefined\"!=typeof define?define(\"eve\",[],function(){return k}):a.eve=k}(window||this),function(a,b){\"function\"==typeof define&&define.amd?define([\"eve\"],function(c){return b(a,c)}):b(a,a.eve)}(this,function(a,b){function c(a){if(c.is(a,\"function\"))return u?a():b.on(\"raphael.DOMload\",a);if(c.is(a,V))return c._engine.create[D](c,a.splice(0,3+c.is(a[0],T))).add(a);var d=Array.prototype.slice.call(arguments,0);if(c.is(d[d.length-1],\"function\")){var e=d.pop();return u?e.call(c._engine.create[D](c,d)):b.on(\"raphael.DOMload\",function(){e.call(c._engine.create[D](c,d))})}return c._engine.create[D](c,arguments)}function d(a){if(\"function\"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=d(a[c]));return b}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function f(a,b,c){function d(){var f=Array.prototype.slice.call(arguments,0),g=f.join(\"␀\"),h=d.cache=d.cache||{},i=d.count=d.count||[];return h[z](g)?(e(i,g),c?c(h[g]):h[g]):(i.length>=1e3&&delete h[i.shift()],i.push(g),h[g]=a[D](b,f),c?c(h[g]):h[g])}return d}function g(){return this.hex}function h(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function i(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function j(a,b,c,d,e,f,g,h,j){null==j&&(j=1),j=j>1?1:0>j?0:j;for(var k=j/2,l=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;l>p;p++){var q=k*m[p]+k,r=i(q,a,c,e,g),s=i(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return k*o}function k(a,b,c,d,e,f,g,h,i){if(!(0>i||j(a,b,c,d,e,f,g,h)<i)){var k,l=1,m=l/2,n=l-m,o=.01;for(k=j(a,b,c,d,e,f,g,h,n);Q(k-i)>o;)m/=2,n+=(i>k?1:-1)*m,k=j(a,b,c,d,e,f,g,h,n);return n}}function l(a,b,c,d,e,f,g,h){if(!(O(a,c)<P(e,g)||P(a,c)>O(e,g)||O(b,d)<P(f,h)||P(b,d)>O(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+O(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+O(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+O(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+O(f,h).toFixed(2)))return{x:l,y:m}}}}function m(a,b,d){var e=c.bezierBBox(a),f=c.bezierBBox(b);if(!c.isBBoxIntersect(e,f))return d?0:[];for(var g=j.apply(0,a),h=j.apply(0,b),i=O(~~(g/5),1),k=O(~~(h/5),1),m=[],n=[],o={},p=d?0:[],q=0;i+1>q;q++){var r=c.findDotsAtSegment.apply(c,a.concat(q/i));m.push({x:r.x,y:r.y,t:q/i})}for(q=0;k+1>q;q++)r=c.findDotsAtSegment.apply(c,b.concat(q/k)),n.push({x:r.x,y:r.y,t:q/k});for(q=0;i>q;q++)for(var s=0;k>s;s++){var t=m[q],u=m[q+1],v=n[s],w=n[s+1],x=Q(u.x-t.x)<.001?\"y\":\"x\",y=Q(w.x-v.x)<.001?\"y\":\"x\",z=l(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(o[z.x.toFixed(4)]==z.y.toFixed(4))continue;o[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+Q((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+Q((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1.001>=A&&B>=0&&1.001>=B&&(d?p++:p.push({x:z.x,y:z.y,t1:P(A,1),t2:P(B,1)}))}}return p}function n(a,b,d){a=c._path2curve(a),b=c._path2curve(b);for(var e,f,g,h,i,j,k,l,n,o,p=d?0:[],q=0,r=a.length;r>q;q++){var s=a[q];if(\"M\"==s[0])e=i=s[1],f=j=s[2];else{\"C\"==s[0]?(n=[e,f].concat(s.slice(1)),e=n[6],f=n[7]):(n=[e,f,e,f,i,j,i,j],e=i,f=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if(\"M\"==v[0])g=k=v[1],h=l=v[2];else{\"C\"==v[0]?(o=[g,h].concat(v.slice(1)),g=o[6],h=o[7]):(o=[g,h,g,h,k,l,k,l],g=k,h=l);var w=m(n,o,d);if(d)p+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=q,w[x].segment2=t,w[x].bez1=n,w[x].bez2=o;p=p.concat(w)}}}}}return p}function o(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function p(){return this.x+H+this.y+H+this.width+\" × \"+this.height}function q(a,b,c,d,e,f){function g(a){return((l*a+k)*a+j)*a}function h(a,b){var c=i(a,b);return((o*c+n)*c+m)*c}function i(a,b){var c,d,e,f,h,i;for(e=a,i=0;8>i;i++){if(f=g(e)-a,Q(f)<b)return e;if(h=(3*l*e+2*k)*e+j,Q(h)<1e-6)break;e-=f/h}if(c=0,d=1,e=a,c>e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),Q(f-a)<b)return e;a>f?c=e:d=e,e=(d-c)/2+c}return e}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function r(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[z](e)&&(d[_(e)]=a[e],c.push(_(e)));c.sort(lb)}this.anim=d,this.top=c[c.length-1],this.percents=c}function s(a,d,e,f,g,h){e=_(e);var i,j,k,l,m,n,p=a.ms,r={},s={},t={};if(f)for(v=0,x=ic.length;x>v;v++){var u=ic[v];if(u.el.id==d.id&&u.anim==a){u.percent!=e?(ic.splice(v,1),k=1):j=u,d.attr(u.totalOrigin);break}}else f=+s;for(var v=0,x=a.percents.length;x>v;v++){if(a.percents[v]==e||a.percents[v]>f*a.top){e=a.percents[v],m=a.percents[v-1]||0,p=p/a.top*(e-m),l=a.percents[v+1],i=a.anim[e];break}f&&d.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=f,j.start=new Date-j.ms*f;else{for(var y in i)if(i[z](y)&&(db[z](y)||d.paper.customAttributes[z](y)))switch(r[y]=d.attr(y),null==r[y]&&(r[y]=cb[y]),s[y]=i[y],db[y]){case T:t[y]=(s[y]-r[y])/p;break;case\"colour\":r[y]=c.getRGB(r[y]);var A=c.getRGB(s[y]);t[y]={r:(A.r-r[y].r)/p,g:(A.g-r[y].g)/p,b:(A.b-r[y].b)/p};break;case\"path\":var B=Kb(r[y],s[y]),C=B[1];for(r[y]=B[0],t[y]=[],v=0,x=r[y].length;x>v;v++){t[y][v]=[0];for(var D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(C[v][D]-r[y][v][D])/p}break;case\"transform\":var G=d._,H=Pb(G[y],s[y]);if(H)for(r[y]=H.from,s[y]=H.to,t[y]=[],t[y].real=!0,v=0,x=r[y].length;x>v;v++)for(t[y][v]=[r[y][v][0]],D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(s[y][v][D]-r[y][v][D])/p;else{var K=d.matrix||new o,L={_:{transform:G.transform},getBBox:function(){return d.getBBox(1)}};r[y]=[K.a,K.b,K.c,K.d,K.e,K.f],Nb(L,s[y]),s[y]=L._.transform,t[y]=[(L.matrix.a-K.a)/p,(L.matrix.b-K.b)/p,(L.matrix.c-K.c)/p,(L.matrix.d-K.d)/p,(L.matrix.e-K.e)/p,(L.matrix.f-K.f)/p]}break;case\"csv\":var M=I(i[y])[J](w),N=I(r[y])[J](w);if(\"clip-rect\"==y)for(r[y]=N,t[y]=[],v=N.length;v--;)t[y][v]=(M[v]-r[y][v])/p;s[y]=M;break;default:for(M=[][E](i[y]),N=[][E](r[y]),t[y]=[],v=d.paper.customAttributes[y].length;v--;)t[y][v]=((M[v]||0)-(N[v]||0))/p}var O=i.easing,P=c.easing_formulas[O];if(!P)if(P=I(O).match(Z),P&&5==P.length){var Q=P;P=function(a){return q(a,+Q[1],+Q[2],+Q[3],+Q[4],p)}}else P=nb;if(n=i.start||a.start||+new Date,u={anim:a,percent:e,timestamp:n,start:n+(a.del||0),status:0,initstatus:f||0,stop:!1,ms:p,easing:P,from:r,diff:t,to:s,el:d,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:d.attr(),totalOrigin:g},ic.push(u),f&&!j&&!k&&(u.stop=!0,u.start=new Date-p*f,1==ic.length))return kc();k&&(u.start=new Date-u.ms*f),1==ic.length&&jc(kc)}b(\"raphael.anim.start.\"+d.id,d,a)}}function t(a){for(var b=0;b<ic.length;b++)ic[b].el.paper==a&&ic.splice(b--,1)}c.version=\"2.1.2\",c.eve=b;var u,v,w=/[, ]+/,x={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},y=/\\{(\\d+)\\}/g,z=\"hasOwnProperty\",A={doc:document,win:a},B={was:Object.prototype[z].call(A.win,\"Raphael\"),is:A.win.Raphael},C=function(){this.ca=this.customAttributes={}},D=\"apply\",E=\"concat\",F=\"ontouchstart\"in A.win||A.win.DocumentTouch&&A.doc instanceof DocumentTouch,G=\"\",H=\" \",I=String,J=\"split\",K=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\"[J](H),L={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},M=I.prototype.toLowerCase,N=Math,O=N.max,P=N.min,Q=N.abs,R=N.pow,S=N.PI,T=\"number\",U=\"string\",V=\"array\",W=Object.prototype.toString,X=(c._ISURL=/^url\\(['\"]?([^\\)]+?)['\"]?\\)$/i,/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i),Y={NaN:1,Infinity:1,\"-Infinity\":1},Z=/^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,$=N.round,_=parseFloat,ab=parseInt,bb=I.prototype.toUpperCase,cb=c._availableAttrs={\"arrow-end\":\"none\",\"arrow-start\":\"none\",blur:0,\"clip-rect\":\"0 0 1e9 1e9\",cursor:\"default\",cx:0,cy:0,fill:\"#fff\",\"fill-opacity\":1,font:'10px \"Arial\"',\"font-family\":'\"Arial\"',\"font-size\":\"10\",\"font-style\":\"normal\",\"font-weight\":400,gradient:0,height:0,href:\"http://raphaeljs.com/\",\"letter-spacing\":0,opacity:1,path:\"M0,0\",r:0,rx:0,ry:0,src:\"\",stroke:\"#000\",\"stroke-dasharray\":\"\",\"stroke-linecap\":\"butt\",\"stroke-linejoin\":\"butt\",\"stroke-miterlimit\":0,\"stroke-opacity\":1,\"stroke-width\":1,target:\"_blank\",\"text-anchor\":\"middle\",title:\"Raphael\",transform:\"\",width:0,x:0,y:0},db=c._availableAnimAttrs={blur:T,\"clip-rect\":\"csv\",cx:T,cy:T,fill:\"colour\",\"fill-opacity\":T,\"font-size\":T,height:T,opacity:T,path:\"path\",r:T,rx:T,ry:T,stroke:\"colour\",\"stroke-opacity\":T,\"stroke-width\":T,transform:\"transform\",width:T,x:T,y:T},eb=/[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/,fb={hs:1,rg:1},gb=/,?([achlmqrstvxz]),?/gi,hb=/([achlmrqstvz])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/gi,ib=/([rstm])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/gi,jb=/(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/gi,kb=(c._radial_gradient=/^r(?:\\(([^,]+?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*([^\\)]+?)\\))?/,{}),lb=function(a,b){return _(a)-_(b)},mb=function(){},nb=function(a){return a},ob=c._rectPath=function(a,b,c,d,e){return e?[[\"M\",a+e,b],[\"l\",c-2*e,0],[\"a\",e,e,0,0,1,e,e],[\"l\",0,d-2*e],[\"a\",e,e,0,0,1,-e,e],[\"l\",2*e-c,0],[\"a\",e,e,0,0,1,-e,-e],[\"l\",0,2*e-d],[\"a\",e,e,0,0,1,e,-e],[\"z\"]]:[[\"M\",a,b],[\"l\",c,0],[\"l\",0,d],[\"l\",-c,0],[\"z\"]]},pb=function(a,b,c,d){return null==d&&(d=c),[[\"M\",a,b],[\"m\",0,-d],[\"a\",c,d,0,1,1,0,2*d],[\"a\",c,d,0,1,1,0,-2*d],[\"z\"]]},qb=c._getPath={path:function(a){return a.attr(\"path\")},circle:function(a){var b=a.attrs;return pb(b.cx,b.cy,b.r)},ellipse:function(a){var b=a.attrs;return pb(b.cx,b.cy,b.rx,b.ry)},rect:function(a){var b=a.attrs;return ob(b.x,b.y,b.width,b.height,b.r)},image:function(a){var b=a.attrs;return ob(b.x,b.y,b.width,b.height)},text:function(a){var b=a._getBBox();return ob(b.x,b.y,b.width,b.height)},set:function(a){var b=a._getBBox();return ob(b.x,b.y,b.width,b.height)}},rb=c.mapPath=function(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=Kb(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(c._g=A,c.type=A.win.SVGAngle||A.doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\",\"1.1\")?\"SVG\":\"VML\",\"VML\"==c.type){var sb,tb=A.doc.createElement(\"div\");if(tb.innerHTML='<v:shape adj=\"1\"/>',sb=tb.firstChild,sb.style.behavior=\"url(#default#VML)\",!sb||\"object\"!=typeof sb.adj)return c.type=G;tb=null}c.svg=!(c.vml=\"VML\"==c.type),c._Paper=C,c.fn=v=C.prototype=c.prototype,c._id=0,c._oid=0,c.is=function(a,b){return b=M.call(b),\"finite\"==b?!Y[z](+a):\"array\"==b?a instanceof Array:\"null\"==b&&null===a||b==typeof a&&null!==a||\"object\"==b&&a===Object(a)||\"array\"==b&&Array.isArray&&Array.isArray(a)||W.call(a).slice(8,-1).toLowerCase()==b},c.angle=function(a,b,d,e,f,g){if(null==f){var h=a-d,i=b-e;return h||i?(180+180*N.atan2(-i,-h)/S+360)%360:0}return c.angle(a,b,f,g)-c.angle(d,e,f,g)},c.rad=function(a){return a%360*S/180},c.deg=function(a){return 180*a/S%360},c.snapTo=function(a,b,d){if(d=c.is(d,\"finite\")?d:10,c.is(a,V)){for(var e=a.length;e--;)if(Q(a[e]-b)<=d)return a[e]}else{a=+a;var f=b%a;if(d>f)return b-f;if(f>a-d)return b-f+a}return b};c.createUUID=function(a,b){return function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=16*N.random()|0,c=\"x\"==a?b:3&b|8;return c.toString(16)});c.setWindow=function(a){b(\"raphael.setWindow\",c,A.win,a),A.win=a,A.doc=A.win.document,c._engine.initWin&&c._engine.initWin(A.win)};var ub=function(a){if(c.vml){var b,d=/^\\s+|\\s+$/g;try{var e=new ActiveXObject(\"htmlfile\");e.write(\"<body>\"),e.close(),b=e.body}catch(g){b=createPopup().document.body}var h=b.createTextRange();ub=f(function(a){try{b.style.color=I(a).replace(d,G);var c=h.queryCommandValue(\"ForeColor\");return c=(255&c)<<16|65280&c|(16711680&c)>>>16,\"#\"+(\"000000\"+c.toString(16)).slice(-6)}catch(e){return\"none\"}})}else{var i=A.doc.createElement(\"i\");i.title=\"Raphaël Colour Picker\",i.style.display=\"none\",A.doc.body.appendChild(i),ub=f(function(a){return i.style.color=a,A.doc.defaultView.getComputedStyle(i,G).getPropertyValue(\"color\")})}return ub(a)},vb=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},wb=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},xb=function(){return this.hex},yb=function(a,b,d){if(null==b&&c.is(a,\"object\")&&\"r\"in a&&\"g\"in a&&\"b\"in a&&(d=a.b,b=a.g,a=a.r),null==b&&c.is(a,U)){var e=c.getRGB(a);a=e.r,b=e.g,d=e.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},zb=function(a,b,d,e){a*=255,b*=255,d*=255;var f={r:a,g:b,b:d,hex:c.rgb(a,b,d),toString:xb};return c.is(e,\"finite\")&&(f.opacity=e),f};c.color=function(a){var b;return c.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"b\"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):c.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"l\"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(c.is(a,\"string\")&&(a=c.getRGB(a)),c.is(a,\"object\")&&\"r\"in a&&\"g\"in a&&\"b\"in a?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:\"none\"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=xb,a},c.hsb2rgb=function(a,b,c,d){this.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"b\"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Q(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.hsl2rgb=function(a,b,c,d){this.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"l\"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-Q(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.rgb2hsb=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=O(a,b,c),g=f-P(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:vb}},c.rgb2hsl=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=O(a,b,c),h=P(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:wb}},c._path2string=function(){return this.join(\",\").replace(gb,\"$1\")};c._preload=function(a,b){var c=A.doc.createElement(\"img\");c.style.cssText=\"position:absolute;left:-9999em;top:-9999em\",c.onload=function(){b.call(this),this.onload=null,A.doc.body.removeChild(this)},c.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(c),c.src=a};c.getRGB=f(function(a){if(!a||(a=I(a)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:g};if(\"none\"==a)return{r:-1,g:-1,b:-1,hex:\"none\",toString:g};!(fb[z](a.toLowerCase().substring(0,2))||\"#\"==a.charAt())&&(a=ub(a));var b,d,e,f,h,i,j=a.match(X);return j?(j[2]&&(e=ab(j[2].substring(5),16),d=ab(j[2].substring(3,5),16),b=ab(j[2].substring(1,3),16)),j[3]&&(e=ab((h=j[3].charAt(3))+h,16),d=ab((h=j[3].charAt(2))+h,16),b=ab((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),\"rgba\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100)),j[5]?(i=j[5][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),(\"deg\"==i[0].slice(-3)||\"°\"==i[0].slice(-1))&&(b/=360),\"hsba\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100),c.hsb2rgb(b,d,e,f)):j[6]?(i=j[6][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),(\"deg\"==i[0].slice(-3)||\"°\"==i[0].slice(-1))&&(b/=360),\"hsla\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100),c.hsl2rgb(b,d,e,f)):(j={r:b,g:d,b:e,toString:g},j.hex=\"#\"+(16777216|e|d<<8|b<<16).toString(16).slice(1),c.is(f,\"finite\")&&(j.opacity=f),j)):{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:g}},c),c.hsb=f(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=f(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=f(function(a,b,c){return\"#\"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),c.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},c.getColor.reset=function(){delete this.start},c.parsePathString=function(a){if(!a)return null;var b=Ab(a);if(b.arr)return Cb(b.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];return c.is(a,V)&&c.is(a[0],V)&&(e=Cb(a)),e.length||I(a).replace(hb,function(a,b,c){var f=[],g=b.toLowerCase();if(c.replace(jb,function(a,b){b&&f.push(+b)}),\"m\"==g&&f.length>2&&(e.push([b][E](f.splice(0,2))),g=\"l\",b=\"m\"==b?\"l\":\"L\"),\"r\"==g)e.push([b][E](f));else for(;f.length>=d[g]&&(e.push([b][E](f.splice(0,d[g]))),d[g]););}),e.toString=c._path2string,b.arr=Cb(e),e},c.parseTransformString=f(function(a){if(!a)return null;var b=[];return c.is(a,V)&&c.is(a[0],V)&&(b=Cb(a)),b.length||I(a).replace(ib,function(a,c,d){{var e=[];M.call(c)}d.replace(jb,function(a,b){b&&e.push(+b)}),b.push([c][E](e))}),b.toString=c._path2string,b});var Ab=function(a){var b=Ab.ps=Ab.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[z](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};c.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/S;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},c.bezierBBox=function(a,b,d,e,f,g,h,i){c.is(a,\"array\")||(a=[a,b,d,e,f,g,h,i]);var j=Jb.apply(null,a);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},c.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},c.isBBoxIntersect=function(a,b){var d=c.isPointInsideBBox;return d(b,a.x,a.y)||d(b,a.x2,a.y)||d(b,a.x,a.y2)||d(b,a.x2,a.y2)||d(a,b.x,b.y)||d(a,b.x2,b.y)||d(a,b.x,b.y2)||d(a,b.x2,b.y2)||(a.x<b.x2&&a.x>b.x||b.x<a.x2&&b.x>a.x)&&(a.y<b.y2&&a.y>b.y||b.y<a.y2&&b.y>a.y)},c.pathIntersection=function(a,b){return n(a,b)},c.pathIntersectionNumber=function(a,b){return n(a,b,1)},c.isPointInsidePath=function(a,b,d){var e=c.pathBBox(a);return c.isPointInsideBBox(e,b,d)&&n(a,[[\"M\",b,d],[\"H\",e.x2+10]],1)%2==1},c._removedFactory=function(a){return function(){b(\"raphael.log\",null,\"Raphaël: you are calling to method “\"+a+\"” of removed object\",a)}};var Bb=c.pathBBox=function(a){var b=Ab(a);if(b.bbox)return d(b.bbox);if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Kb(a);for(var c,e=0,f=0,g=[],h=[],i=0,j=a.length;j>i;i++)if(c=a[i],\"M\"==c[0])e=c[1],f=c[2],g.push(e),h.push(f);else{var k=Jb(e,f,c[1],c[2],c[3],c[4],c[5],c[6]);g=g[E](k.min.x,k.max.x),h=h[E](k.min.y,k.max.y),e=c[5],f=c[6]}var l=P[D](0,g),m=P[D](0,h),n=O[D](0,g),o=O[D](0,h),p=n-l,q=o-m,r={x:l,y:m,x2:n,y2:o,width:p,height:q,cx:l+p/2,cy:m+q/2};return b.bbox=d(r),r},Cb=function(a){var b=d(a);return b.toString=c._path2string,b},Db=c._pathToRelative=function(a){var b=Ab(a);if(b.rel)return Cb(b.rel);c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a));var d=[],e=0,f=0,g=0,h=0,i=0;\"M\"==a[0][0]&&(e=a[0][1],f=a[0][2],g=e,h=f,i++,d.push([\"M\",e,f]));for(var j=i,k=a.length;k>j;j++){var l=d[j]=[],m=a[j];if(m[0]!=M.call(m[0]))switch(l[0]=M.call(m[0]),l[0]){case\"a\":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case\"v\":l[1]=+(m[1]-f).toFixed(3);break;case\"m\":g=m[1],h=m[2];default:for(var n=1,o=m.length;o>n;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}else{l=d[j]=[],\"m\"==m[0]&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;q>p;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case\"z\":e=g,f=h;break;case\"h\":e+=+d[j][r-1];break;case\"v\":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}return d.toString=c._path2string,b.rel=Cb(d),d},Eb=c._pathToAbsolute=function(a){var b=Ab(a);if(b.abs)return Cb(b.abs);if(c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a)),!a||!a.length)return[[\"M\",0,0]];var d=[],e=0,f=0,g=0,i=0,j=0;\"M\"==a[0][0]&&(e=+a[0][1],f=+a[0][2],g=e,i=f,j++,d[0]=[\"M\",e,f]);for(var k,l,m=3==a.length&&\"M\"==a[0][0]&&\"R\"==a[1][0].toUpperCase()&&\"Z\"==a[2][0].toUpperCase(),n=j,o=a.length;o>n;n++){if(d.push(k=[]),l=a[n],l[0]!=bb.call(l[0]))switch(k[0]=bb.call(l[0]),k[0]){case\"A\":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case\"V\":k[1]=+l[1]+f;break;case\"H\":k[1]=+l[1]+e;break;case\"R\":for(var p=[e,f][E](l.slice(1)),q=2,r=p.length;r>q;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[E](h(p,m));break;case\"M\":g=+l[1]+e,i=+l[2]+f;default:for(q=1,r=l.length;r>q;q++)k[q]=+l[q]+(q%2?e:f)}else if(\"R\"==l[0])p=[e,f][E](l.slice(1)),d.pop(),d=d[E](h(p,m)),k=[\"R\"][E](l.slice(-2));else for(var s=0,t=l.length;t>s;s++)k[s]=l[s];switch(k[0]){case\"Z\":e=g,f=i;break;case\"H\":e=k[1];break;case\"V\":f=k[1];break;case\"M\":g=k[k.length-2],i=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}return d.toString=c._path2string,b.abs=Cb(d),d},Fb=function(a,b,c,d){return[a,b,c,d,c,d]},Gb=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Hb=function(a,b,c,d,e,g,h,i,j,k){var l,m=120*S/180,n=S/180*(+e||0),o=[],p=f(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(a,b,-n),a=l.x,b=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(S/180*e),N.sin(S/180*e),(a-i)/2),r=(b-j)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=N.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(g==h?-1:1)*N.sqrt(Q((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+i)/2,x=v*-d*q/c+(b+j)/2,y=N.asin(((b-x)/d).toFixed(9)),z=N.asin(((j-x)/d).toFixed(9));y=w>a?S-y:y,z=w>i?S-z:z,0>y&&(y=2*S+y),0>z&&(z=2*S+z),h&&y>z&&(y-=2*S),!h&&z>y&&(z-=2*S)}var A=z-y;if(Q(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+c*N.cos(z),j=x+d*N.sin(z),o=Hb(i,j,c,d,e,0,h,C,D,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),K=N.tan(A/4),L=4/3*c*K,M=4/3*d*K,O=[a,b],P=[a+L*G,b-M*F],R=[i+L*I,j-M*H],T=[i,j];if(P[0]=2*O[0]-P[0],P[1]=2*O[1]-P[1],k)return[P,R,T][E](o);o=[P,R,T][E](o).join()[J](\",\");for(var U=[],V=0,W=o.length;W>V;V++)U[V]=V%2?p(o[V-1],o[V],n).y:p(o[V],o[V+1],n).x;return U},Ib=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:R(j,3)*a+3*R(j,2)*i*c+3*j*i*i*e+R(i,3)*g,y:R(j,3)*b+3*R(j,2)*i*d+3*j*i*i*f+R(i,3)*h}},Jb=f(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return Q(m)>\"1e12\"&&(m=.5),Q(n)>\"1e12\"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,Q(m)>\"1e12\"&&(m=.5),Q(n)>\"1e12\"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:P[D](0,p),y:P[D](0,o)},max:{x:O[D](0,p),y:O[D](0,o)}}}),Kb=c._path2curve=f(function(a,b){var c=!b&&Ab(a);if(!b&&c.curve)return Cb(c.curve);for(var d=Eb(a),e=b&&Eb(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b,c){var d,e,f={T:1,Q:1};if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in f)&&(b.qx=b.qy=null),a[0]){case\"M\":b.X=a[1],b.Y=a[2];break;case\"A\":a=[\"C\"][E](Hb[D](0,[b.x,b.y][E](a.slice(1))));break;case\"S\":\"C\"==c||\"S\"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=[\"C\",d,e][E](a.slice(1));break;case\"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=[\"C\"][E](Gb(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case\"Q\":b.qx=a[1],b.qy=a[2],a=[\"C\"][E](Gb(b.x,b.y,a[1],a[2],a[3],a[4]));break;case\"L\":a=[\"C\"][E](Fb(b.x,b.y,a[1],a[2]));break;case\"H\":a=[\"C\"][E](Fb(b.x,b.y,a[1],b.y));break;case\"V\":a=[\"C\"][E](Fb(b.x,b.y,b.x,a[1]));break;case\"Z\":a=[\"C\"][E](Fb(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)a.splice(b++,0,[\"C\"][E](c.splice(0,6)));a.splice(b,1),l=O(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&\"M\"==a[g][0]&&\"M\"!=b[g][0]&&(b.splice(g,0,[\"M\",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=O(d.length,e&&e.length||0))},k=0,l=O(d.length,e&&e.length||0);l>k;k++){d[k]=h(d[k],f),i(d,k),e&&(e[k]=h(e[k],g)),e&&i(e,k),j(d,e,f,g,k),j(e,d,g,f,k);var m=d[k],n=e&&e[k],o=m.length,p=e&&n.length;f.x=m[o-2],f.y=m[o-1],f.bx=_(m[o-4])||f.x,f.by=_(m[o-3])||f.y,g.bx=e&&(_(n[p-4])||g.x),g.by=e&&(_(n[p-3])||g.y),g.x=e&&n[p-2],g.y=e&&n[p-1]}return e||(c.curve=Cb(d)),e?[d,e]:d},null,Cb),Lb=(c._parseDots=f(function(a){for(var b=[],d=0,e=a.length;e>d;d++){var f={},g=a[d].match(/^([^:]*):?([\\d\\.]*)/);if(f.color=c.getRGB(g[1]),f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+\"%\"),b.push(f)}for(d=1,e=b.length-1;e>d;d++)if(!b[d].offset){for(var h=_(b[d-1].offset||0),i=0,j=d+1;e>j;j++)if(b[j].offset){i=b[j].offset;break}i||(i=100,j=e),i=_(i);for(var k=(i-h)/(j-d+1);j>d;d++)h+=k,b[d].offset=h+\"%\"}return b}),c._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Mb=(c._tofront=function(a,b){b.top!==a&&(Lb(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},c._toback=function(a,b){b.bottom!==a&&(Lb(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},c._insertafter=function(a,b,c){Lb(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},c._insertbefore=function(a,b,c){Lb(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},c.toMatrix=function(a,b){var c=Bb(a),d={_:{transform:G},getBBox:function(){return c}};return Nb(d,b),d.matrix}),Nb=(c.transformPath=function(a,b){return rb(a,Mb(a,b))},c._extractTransform=function(a,b){if(null==b)return a._.transform;b=I(b).replace(/\\.{3}|\\u2026/g,a._.transform||G);var d=c.parseTransformString(b),e=0,f=0,g=0,h=1,i=1,j=a._,k=new o;if(j.transform=d||[],d)for(var l=0,m=d.length;m>l;l++){var n,p,q,r,s,t=d[l],u=t.length,v=I(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;\"t\"==v&&3==u?w?(n=x.x(0,0),p=x.y(0,0),q=x.x(t[1],t[2]),r=x.y(t[1],t[2]),k.translate(q-n,r-p)):k.translate(t[1],t[2]):\"r\"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),e+=t[1]):4==u&&(w?(q=x.x(t[2],t[3]),r=x.y(t[2],t[3]),k.rotate(t[1],q,r)):k.rotate(t[1],t[2],t[3]),e+=t[1]):\"s\"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(q=x.x(t[3],t[4]),r=x.y(t[3],t[4]),k.scale(t[1],t[2],q,r)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):\"m\"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,1==h&&1==i&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1}),Ob=function(a){var b=a[0];switch(b.toLowerCase()){case\"t\":return[b,0,0];case\"m\":return[b,1,0,0,1,0,0];case\"r\":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case\"s\":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Pb=c._equaliseTransform=function(a,b){b=I(b).replace(/\\.{3}|\\u2026/g,a),a=c.parseTransformString(a)||[],b=c.parseTransformString(b)||[];for(var d,e,f,g,h=O(a.length,b.length),i=[],j=[],k=0;h>k;k++){if(f=a[k]||Ob(b[k]),g=b[k]||Ob(f),f[0]!=g[0]||\"r\"==f[0].toLowerCase()&&(f[2]!=g[2]||f[3]!=g[3])||\"s\"==f[0].toLowerCase()&&(f[3]!=g[3]||f[4]!=g[4]))return;for(i[k]=[],j[k]=[],d=0,e=O(f.length,g.length);e>d;d++)d in f&&(i[k][d]=f[d]),d in g&&(j[k][d]=g[d])\n}return{from:i,to:j}};c._getContainer=function(a,b,d,e){var f;return f=null!=e||c.is(a,\"object\")?a:A.doc.getElementById(a),null!=f?f.tagName?null==b?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:b,height:d}:{container:1,x:a,y:b,width:d,height:e}:void 0},c.pathToRelative=Db,c._engine={},c.path2curve=Kb,c.matrix=function(a,b,c,d,e,f){return new o(a,b,c,d,e,f)},function(a){function b(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var c=N.sqrt(b(a));a[0]&&(a[0]/=c),a[1]&&(a[1]/=c)}a.add=function(a,b,c,d,e,f){var g,h,i,j,k=[[],[],[]],l=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],m=[[a,c,e],[b,d,f],[0,0,1]];for(a&&a instanceof o&&(m=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),g=0;3>g;g++)for(h=0;3>h;h++){for(j=0,i=0;3>i;i++)j+=l[g][i]*m[i][h];k[g][h]=j}this.a=k[0][0],this.b=k[1][0],this.c=k[0][1],this.d=k[1][1],this.e=k[0][2],this.f=k[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new o(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,d){a=c.rad(a),b=b||0,d=d||0;var e=+N.cos(a).toFixed(9),f=+N.sin(a).toFixed(9);this.add(e,f,-f,e,b,d),this.add(1,0,0,1,-b,-d)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[I.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return c.svg?\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return\"progid:DXImageTransform.Microsoft.Matrix(M11=\"+this.get(0)+\", M12=\"+this.get(2)+\", M21=\"+this.get(1)+\", M22=\"+this.get(3)+\", Dx=\"+this.get(4)+\", Dy=\"+this.get(5)+\", sizingmethod='auto expand')\"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];a.scalex=N.sqrt(b(e[0])),d(e[0]),a.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*a.shear,e[1][1]-e[0][1]*a.shear],a.scaley=N.sqrt(b(e[1])),d(e[1]),a.shear/=a.scaley;var f=-e[0][1],g=e[1][1];return 0>g?(a.rotate=c.deg(N.acos(g)),0>f&&(a.rotate=360-a.rotate)):a.rotate=c.deg(N.asin(f)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[J]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?\"t\"+[b.dx,b.dy]:G)+(1!=b.scalex||1!=b.scaley?\"s\"+[b.scalex,b.scaley,0,0]:G)+(b.rotate?\"r\"+[b.rotate,0,0]:G)):\"m\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(o.prototype);var Qb=navigator.userAgent.match(/Version\\/(.*?)\\s/)||navigator.userAgent.match(/Chrome\\/(\\d+)/);v.safari=\"Apple Computer, Inc.\"==navigator.vendor&&(Qb&&Qb[1]<4||\"iP\"==navigator.platform.slice(0,2))||\"Google Inc.\"==navigator.vendor&&Qb&&Qb[1]<8?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:\"none\"});setTimeout(function(){a.remove()})}:mb;for(var Rb=function(){this.returnValue=!1},Sb=function(){return this.originalEvent.preventDefault()},Tb=function(){this.cancelBubble=!0},Ub=function(){return this.originalEvent.stopPropagation()},Vb=function(a){var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,c=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:a.clientX+c,y:a.clientY+b}},Wb=function(){return A.doc.addEventListener?function(a,b,c,d){var e=function(a){var b=Vb(a);return c.call(d,a,b.x,b.y)};if(a.addEventListener(b,e,!1),F&&L[b]){var f=function(b){for(var e=Vb(b),f=b,g=0,h=b.targetTouches&&b.targetTouches.length;h>g;g++)if(b.targetTouches[g].target==a){b=b.targetTouches[g],b.originalEvent=f,b.preventDefault=Sb,b.stopPropagation=Ub;break}return c.call(d,b,e.x,e.y)};a.addEventListener(L[b],f,!1)}return function(){return a.removeEventListener(b,e,!1),F&&L[b]&&a.removeEventListener(L[b],e,!1),!0}}:A.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||A.win.event;var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,e=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Rb,a.stopPropagation=a.stopPropagation||Tb,c.call(d,a,f,g)};a.attachEvent(\"on\"+b,e);var f=function(){return a.detachEvent(\"on\"+b,e),!0};return f}:void 0}(),Xb=[],Yb=function(a){for(var c,d=a.clientX,e=a.clientY,f=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,g=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,h=Xb.length;h--;){if(c=Xb[h],F&&a.touches){for(var i,j=a.touches.length;j--;)if(i=a.touches[j],i.identifier==c.el._drag.id){d=i.clientX,e=i.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var k,l=c.el.node,m=l.nextSibling,n=l.parentNode,o=l.style.display;A.win.opera&&n.removeChild(l),l.style.display=\"none\",k=c.el.paper.getElementByPoint(d,e),l.style.display=o,A.win.opera&&(m?n.insertBefore(l,m):n.appendChild(l)),k&&b(\"raphael.drag.over.\"+c.el.id,c.el,k),d+=g,e+=f,b(\"raphael.drag.move.\"+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},Zb=function(a){c.unmousemove(Yb).unmouseup(Zb);for(var d,e=Xb.length;e--;)d=Xb[e],d.el._drag={},b(\"raphael.drag.end.\"+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,a);Xb=[]},$b=c.el={},_b=K.length;_b--;)!function(a){c[a]=$b[a]=function(b,d){return c.is(b,\"function\")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Wb(this.shape||this.node||A.doc,a,b,d||this)})),this},c[\"un\"+a]=$b[\"un\"+a]=function(b){for(var d=this.events||[],e=d.length;e--;)d[e].name!=a||!c.is(b,\"undefined\")&&d[e].f!=b||(d[e].unbind(),d.splice(e,1),!d.length&&delete this.events);return this}}(K[_b]);$b.data=function(a,d){var e=kb[this.id]=kb[this.id]||{};if(0==arguments.length)return e;if(1==arguments.length){if(c.is(a,\"object\")){for(var f in a)a[z](f)&&this.data(f,a[f]);return this}return b(\"raphael.data.get.\"+this.id,this,e[a],a),e[a]}return e[a]=d,b(\"raphael.data.set.\"+this.id,this,d,a),this},$b.removeData=function(a){return null==a?kb[this.id]={}:kb[this.id]&&delete kb[this.id][a],this},$b.getData=function(){return d(kb[this.id]||{})},$b.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},$b.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var ac=[];$b.drag=function(a,d,e,f,g,h){function i(i){(i.originalEvent||i).preventDefault();var j=i.clientX,k=i.clientY,l=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,m=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=i.identifier,F&&i.touches)for(var n,o=i.touches.length;o--;)if(n=i.touches[o],this._drag.id=n.identifier,n.identifier==this._drag.id){j=n.clientX,k=n.clientY;break}this._drag.x=j+m,this._drag.y=k+l,!Xb.length&&c.mousemove(Yb).mouseup(Zb),Xb.push({el:this,move_scope:f,start_scope:g,end_scope:h}),d&&b.on(\"raphael.drag.start.\"+this.id,d),a&&b.on(\"raphael.drag.move.\"+this.id,a),e&&b.on(\"raphael.drag.end.\"+this.id,e),b(\"raphael.drag.start.\"+this.id,g||f||this,i.clientX+m,i.clientY+l,i)}return this._drag={},ac.push({el:this,start:i}),this.mousedown(i),this},$b.onDragOver=function(a){a?b.on(\"raphael.drag.over.\"+this.id,a):b.unbind(\"raphael.drag.over.\"+this.id)},$b.undrag=function(){for(var a=ac.length;a--;)ac[a].el==this&&(this.unmousedown(ac[a].start),ac.splice(a,1),b.unbind(\"raphael.drag.*.\"+this.id));!ac.length&&c.unmousemove(Yb).unmouseup(Zb),Xb=[]},v.circle=function(a,b,d){var e=c._engine.circle(this,a||0,b||0,d||0);return this.__set__&&this.__set__.push(e),e},v.rect=function(a,b,d,e,f){var g=c._engine.rect(this,a||0,b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.ellipse=function(a,b,d,e){var f=c._engine.ellipse(this,a||0,b||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},v.path=function(a){a&&!c.is(a,U)&&!c.is(a[0],V)&&(a+=G);var b=c._engine.path(c.format[D](c,arguments),this);return this.__set__&&this.__set__.push(b),b},v.image=function(a,b,d,e,f){var g=c._engine.image(this,a||\"about:blank\",b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.text=function(a,b,d){var e=c._engine.text(this,a||0,b||0,I(d));return this.__set__&&this.__set__.push(e),e},v.set=function(a){!c.is(a,\"array\")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new mc(a);return this.__set__&&this.__set__.push(b),b.paper=this,b.type=\"set\",b},v.setStart=function(a){this.__set__=a||this.set()},v.setFinish=function(){var a=this.__set__;return delete this.__set__,a},v.setSize=function(a,b){return c._engine.setSize.call(this,a,b)},v.setViewBox=function(a,b,d,e,f){return c._engine.setViewBox.call(this,a,b,d,e,f)},v.top=v.bottom=null,v.raphael=c;var bc=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(A.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(A.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};v.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=A.doc.elementFromPoint(a,b);if(A.win.opera&&\"svg\"==e.tagName){var f=bc(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},v.getElementsByBBox=function(a){var b=this.set();return this.forEach(function(d){c.isBBoxIntersect(d.getBBox(),a)&&b.push(d)}),b},v.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},v.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},v.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},$b.isPointInside=function(a,b){var d=this.realPath=qb[this.type](this);return this.attr(\"transform\")&&this.attr(\"transform\").length&&(d=c.transformPath(d,this.attr(\"transform\"))),c.isPointInsidePath(d,a,b)},$b.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=qb[this.type](this),b.bboxwt=Bb(this.realPath),b.bboxwt.toString=p,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=qb[this.type](this)),b.bbox=Bb(rb(this.realPath,this.matrix)),b.bbox.toString=p,b.dirty=b.dirtyT=0),b.bbox)},$b.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},$b.glow=function(a){if(\"text\"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr(\"stroke-width\")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||\"#000\"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||qb[this.type](this);f=this.matrix?rb(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:\"none\",\"stroke-linejoin\":\"round\",\"stroke-linecap\":\"round\",\"stroke-width\":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cc=function(a,b,d,e,f,g,h,i,l){return null==l?j(a,b,d,e,f,g,h,i):c.findDotsAtSegment(a,b,d,e,f,g,h,i,k(a,b,d,e,f,g,h,i,l))},dc=function(a,b){return function(d,e,f){d=Kb(d);for(var g,h,i,j,k,l=\"\",m={},n=0,o=0,p=d.length;p>o;o++){if(i=d[o],\"M\"==i[0])g=+i[1],h=+i[2];else{if(j=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6]),n+j>e){if(b&&!m.start){if(k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),l+=[\"C\"+k.start.x,k.start.y,k.m.x,k.m.y,k.x,k.y],f)return l;m.start=l,l=[\"M\"+k.x,k.y+\"C\"+k.n.x,k.n.y,k.end.x,k.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!a&&!b)return k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),{x:k.x,y:k.y,alpha:k.alpha}}n+=j,g=+i[5],h=+i[6]}l+=i.shift()+i}return m.end=l,k=a?n:b?m:c.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),k.alpha&&(k={x:k.x,y:k.y,alpha:k.alpha}),k}},ec=dc(1),fc=dc(),gc=dc(0,1);c.getTotalLength=ec,c.getPointAtLength=fc,c.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return gc(a,b).end;var d=gc(a,c,1);return b?gc(d,b).end:d},$b.getTotalLength=function(){var a=this.getPath();if(a)return this.node.getTotalLength?this.node.getTotalLength():ec(a)},$b.getPointAtLength=function(a){var b=this.getPath();if(b)return fc(b,a)},$b.getPath=function(){var a,b=c._getPath[this.type];if(\"text\"!=this.type&&\"set\"!=this.type)return b&&(a=b(this)),a},$b.getSubpath=function(a,b){var d=this.getPath();if(d)return c.getSubpath(d,a,b)};var hc=c.easing_formulas={linear:function(a){return a},\"<\":function(a){return R(a,1.7)},\">\":function(a){return R(a,.48)},\"<>\":function(a){var b=.48-a/1.04,c=N.sqrt(.1734+b*b),d=c-b,e=R(Q(d),1/3)*(0>d?-1:1),f=-c-b,g=R(Q(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:R(2,-10*a)*N.sin(2*(a-.075)*S/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};hc.easeIn=hc[\"ease-in\"]=hc[\"<\"],hc.easeOut=hc[\"ease-out\"]=hc[\">\"],hc.easeInOut=hc[\"ease-in-out\"]=hc[\"<>\"],hc[\"back-in\"]=hc.backIn,hc[\"back-out\"]=hc.backOut;var ic=[],jc=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},kc=function(){for(var a=+new Date,d=0;d<ic.length;d++){var e=ic[d];if(!e.el.removed&&!e.paused){var f,g,h=a-e.start,i=e.ms,j=e.easing,k=e.from,l=e.diff,m=e.to,n=(e.t,e.el),o={},p={};if(e.initstatus?(h=(e.initstatus*e.anim.top-e.prev)/(e.percent-e.prev)*i,e.status=e.initstatus,delete e.initstatus,e.stop&&ic.splice(d--,1)):e.status=(e.prev+(e.percent-e.prev)*(h/i))/e.anim.top,!(0>h))if(i>h){var q=j(h/i);for(var r in k)if(k[z](r)){switch(db[r]){case T:f=+k[r]+q*i*l[r];break;case\"colour\":f=\"rgb(\"+[lc($(k[r].r+q*i*l[r].r)),lc($(k[r].g+q*i*l[r].g)),lc($(k[r].b+q*i*l[r].b))].join(\",\")+\")\";break;case\"path\":f=[];for(var t=0,u=k[r].length;u>t;t++){f[t]=[k[r][t][0]];for(var v=1,w=k[r][t].length;w>v;v++)f[t][v]=+k[r][t][v]+q*i*l[r][t][v];f[t]=f[t].join(H)}f=f.join(H);break;case\"transform\":if(l[r].real)for(f=[],t=0,u=k[r].length;u>t;t++)for(f[t]=[k[r][t][0]],v=1,w=k[r][t].length;w>v;v++)f[t][v]=k[r][t][v]+q*i*l[r][t][v];else{var x=function(a){return+k[r][a]+q*i*l[r][a]};f=[[\"m\",x(0),x(1),x(2),x(3),x(4),x(5)]]}break;case\"csv\":if(\"clip-rect\"==r)for(f=[],t=4;t--;)f[t]=+k[r][t]+q*i*l[r][t];break;default:var y=[][E](k[r]);for(f=[],t=n.paper.customAttributes[r].length;t--;)f[t]=+y[t]+q*i*l[r][t]}o[r]=f}n.attr(o),function(a,c,d){setTimeout(function(){b(\"raphael.anim.frame.\"+a,c,d)})}(n.id,n,e.anim)}else{if(function(a,d,e){setTimeout(function(){b(\"raphael.anim.frame.\"+d.id,d,e),b(\"raphael.anim.finish.\"+d.id,d,e),c.is(a,\"function\")&&a.call(d)})}(e.callback,n,e.anim),n.attr(m),ic.splice(d--,1),e.repeat>1&&!e.next){for(g in m)m[z](g)&&(p[g]=e.totalOrigin[g]);e.el.attr(p),s(e.anim,e.el,e.anim.percents[0],null,e.totalOrigin,e.repeat-1)}e.next&&!e.stop&&s(e.anim,e.el,e.next,null,e.totalOrigin,e.repeat)}}}c.svg&&n&&n.paper&&n.paper.safari(),ic.length&&jc(kc)},lc=function(a){return a>255?255:0>a?0:a};$b.animateWith=function(a,b,d,e,f,g){var h=this;if(h.removed)return g&&g.call(h),h;var i=d instanceof r?d:c.animation(d,e,f,g);s(i,h,i.percents[0],null,h.attr());for(var j=0,k=ic.length;k>j;j++)if(ic[j].anim==b&&ic[j].el==a){ic[k-1].start=ic[j].start;break}return h},$b.onAnimation=function(a){return a?b.on(\"raphael.anim.frame.\"+this.id,a):b.unbind(\"raphael.anim.frame.\"+this.id),this},r.prototype.delay=function(a){var b=new r(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},r.prototype.repeat=function(a){var b=new r(this.anim,this.ms);return b.del=this.del,b.times=N.floor(O(a,0))||1,b},c.animation=function(a,b,d,e){if(a instanceof r)return a;(c.is(d,\"function\")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[z](g)&&_(g)!=g&&_(g)+\"%\"!=g&&(f=!0,h[g]=a[g]);return f?(d&&(h.easing=d),e&&(h.callback=e),new r({100:h},b)):new r(a,b)},$b.animate=function(a,b,d,e){var f=this;if(f.removed)return e&&e.call(f),f;var g=a instanceof r?a:c.animation(a,b,d,e);return s(g,f,g.percents[0],null,f.attr()),f},$b.setTime=function(a,b){return a&&null!=b&&this.status(a,P(b,a.ms)/a.ms),this},$b.status=function(a,b){var c,d,e=[],f=0;if(null!=b)return s(a,this,-1,P(b,1)),this;for(c=ic.length;c>f;f++)if(d=ic[f],d.el.id==this.id&&(!a||d.anim==a)){if(a)return d.status;e.push({anim:d.anim,status:d.status})}return a?0:e},$b.pause=function(a){for(var c=0;c<ic.length;c++)ic[c].el.id!=this.id||a&&ic[c].anim!=a||b(\"raphael.anim.pause.\"+this.id,this,ic[c].anim)!==!1&&(ic[c].paused=!0);return this},$b.resume=function(a){for(var c=0;c<ic.length;c++)if(ic[c].el.id==this.id&&(!a||ic[c].anim==a)){var d=ic[c];b(\"raphael.anim.resume.\"+this.id,this,d.anim)!==!1&&(delete d.paused,this.status(d.anim,d.status))}return this},$b.stop=function(a){for(var c=0;c<ic.length;c++)ic[c].el.id!=this.id||a&&ic[c].anim!=a||b(\"raphael.anim.stop.\"+this.id,this,ic[c].anim)!==!1&&ic.splice(c--,1);return this},b.on(\"raphael.remove\",t),b.on(\"raphael.clear\",t),$b.toString=function(){return\"Raphaël’s object\"};var mc=function(a){if(this.items=[],this.length=0,this.type=\"set\",a)for(var b=0,c=a.length;c>b;b++)!a[b]||a[b].constructor!=$b.constructor&&a[b].constructor!=mc||(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},nc=mc.prototype;nc.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],!a||a.constructor!=$b.constructor&&a.constructor!=mc||(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},nc.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},nc.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var oc in $b)$b[z](oc)&&(nc[oc]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][D](c,b)})}}(oc));return nc.attr=function(a,b){if(a&&c.is(a,V)&&c.is(a[0],\"object\"))for(var d=0,e=a.length;e>d;d++)this.items[d].attr(a[d]);else for(var f=0,g=this.items.length;g>f;f++)this.items[f].attr(a,b);return this},nc.clear=function(){for(;this.length;)this.pop()},nc.splice=function(a,b){a=0>a?O(this.length+a,0):a,b=O(0,P(this.length-a,b));var c,d=[],e=[],f=[];for(c=2;c<arguments.length;c++)f.push(arguments[c]);for(c=0;b>c;c++)e.push(this[a+c]);for(;c<this.length-a;c++)d.push(this[a+c]);var g=f.length;for(c=0;c<g+d.length;c++)this.items[a+c]=this[a+c]=g>c?f[c]:d[c-g];for(c=this.items.length=this.length-=b-g;this[c];)delete this[c++];return new mc(e)},nc.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},nc.animate=function(a,b,d,e){(c.is(d,\"function\")||!d)&&(e=d||null);var f,g,h=this.items.length,i=h,j=this;if(!h)return this;e&&(g=function(){!--h&&e.call(j)}),d=c.is(d,U)?d:g;var k=c.animation(a,b,d,g);for(f=this.items[--i].animate(k);i--;)this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(f,k,k),this.items[i]&&!this.items[i].removed||h--;return this},nc.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},nc.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=P[D](0,a),b=P[D](0,b),c=O[D](0,c),d=O[D](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},nc.clone=function(a){a=this.paper.set();for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},nc.toString=function(){return\"Raphaël‘s set\"},nc.glow=function(a){var b=this.paper.set();return this.forEach(function(c){var d=c.glow(a);null!=d&&d.forEach(function(a){b.push(a)})}),b},nc.isPointInside=function(a,b){var c=!1;return this.forEach(function(d){return d.isPointInside(a,b)?(c=!0,!1):void 0}),c},c.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face[\"font-family\"];for(var d in a.face)a.face[z](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face[\"units-per-em\"]=ab(a.face[\"units-per-em\"],10);for(var e in a.glyphs)if(a.glyphs[z](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&\"M\"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:\"L\",c:\"C\",x:\"z\",t:\"m\",r:\"l\",v:\"c\"}[a]||\"M\"})+\"z\"},f.k)for(var g in f.k)f[z](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},v.getFont=function(a,b,d,e){if(e=e||\"normal\",d=d||\"normal\",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,c.fonts){var f=c.fonts[a];if(!f){var g=new RegExp(\"(^|\\\\s)\"+a.replace(/[^\\w\\d\\s+!~.:_-]/g,G)+\"(\\\\s|$)\",\"i\");for(var h in c.fonts)if(c.fonts[z](h)&&g.test(h)){f=c.fonts[h];break}}var i;if(f)for(var j=0,k=f.length;k>j&&(i=f[j],i.face[\"font-weight\"]!=b||i.face[\"font-style\"]!=d&&i.face[\"font-style\"]||i.face[\"font-stretch\"]!=e);j++);return i}},v.print=function(a,b,d,e,f,g,h,i){g=g||\"middle\",h=O(P(h||0,1),-1),i=O(P(i||1,3),1);var j,k=I(d)[J](G),l=0,m=0,n=G;if(c.is(e,\"string\")&&(e=this.getFont(e)),e){j=(f||16)/e.face[\"units-per-em\"];for(var o=e.face.bbox[J](w),p=+o[0],q=o[3]-o[1],r=0,s=+o[1]+(\"baseline\"==g?q+ +e.face.descent:q/2),t=0,u=k.length;u>t;t++){if(\"\\n\"==k[t])l=0,x=0,m=0,r+=q*i;else{var v=m&&e.glyphs[k[t-1]]||{},x=e.glyphs[k[t]];l+=m?(v.w||e.w)+(v.k&&v.k[k[t]]||0)+e.w*h:0,m=1}x&&x.d&&(n+=c.transformPath(x.d,[\"t\",l*j,r*j,\"s\",j,j,p,s,\"t\",(a-p)/j,(b-s)/j]))}}return this.path(n).attr({fill:\"#000\",stroke:\"none\"})},v.add=function(a){if(c.is(a,\"array\"))for(var b,d=this.set(),e=0,f=a.length;f>e;e++)b=a[e]||{},x[z](b.type)&&d.push(this[b.type]().attr(b));return d},c.format=function(a,b){var d=c.is(b,V)?[0][E](b):arguments;return a&&c.is(a,U)&&d.length-1&&(a=a.replace(y,function(a,b){return null==d[++b]?G:d[b]})),a||G},c.fullfill=function(){var a=/\\{([^\\}]+)\\}/g,b=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),\"function\"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+\"\"};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),c.ninja=function(){return B.was?A.win.Raphael=B.is:delete Raphael,c},c.st=nc,function(a,b,d){function e(){/in/.test(a.readyState)?setTimeout(e,9):c.eve(\"raphael.DOMload\")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,d=function(){a.removeEventListener(b,d,!1),a.readyState=\"complete\"},!1),a.readyState=\"loading\"),e()}(document,\"DOMContentLoaded\"),b.on(\"raphael.DOMload\",function(){u=!0}),function(){if(c.svg){var a=\"hasOwnProperty\",b=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=c.eve,l=\"\",m=\" \",n=\"http://www.w3.org/1999/xlink\",o={block:\"M5,0 0,2.5 5,5z\",classic:\"M5,0 0,2.5 5,5 3.5,3 3.5,2z\",diamond:\"M2.5,0 5,2.5 2.5,5 0,2.5z\",open:\"M6,1 1,3.5 6,6\",oval:\"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\"},p={};c.toString=function(){return\"Your browser supports SVG.\\nYou are running Raphaël \"+this.version};var q=function(d,e){if(e){\"string\"==typeof d&&(d=q(d));for(var f in e)e[a](f)&&(\"xlink:\"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),b(e[f])):d.setAttribute(f,b(e[f])))}else d=c._g.doc.createElementNS(\"http://www.w3.org/2000/svg\",d),d.style&&(d.style.webkitTapHighlightColor=\"rgba(0,0,0,0)\");return d},r=function(a,e){var j=\"linear\",k=a.id+e,m=.5,n=.5,o=a.node,p=a.paper,r=o.style,s=c._g.doc.getElementById(k);if(!s){if(e=b(e).replace(c._radial_gradient,function(a,b,c){if(j=\"radial\",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\\s*\\-\\s*/),\"linear\"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(c.rad(t)),f.sin(c.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=c._parseDots(e);if(!w)return null;if(k=k.replace(/[\\(\\)\\s,\\xb0#]/g,\"_\"),a.gradient&&k!=a.gradient.id&&(p.defs.removeChild(a.gradient),delete a.gradient),!a.gradient){s=q(j+\"Gradient\",{id:k}),a.gradient=s,q(s,\"radial\"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:a.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q(\"stop\",{offset:w[x].offset?w[x].offset:x?\"100%\":\"0%\",\"stop-color\":w[x].color||\"#fff\"}))}}return q(o,{fill:\"url(#\"+k+\")\",opacity:1,\"fill-opacity\":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+\" translate(\"+b.x+\",\"+b.y+\")\"})},t=function(d,e,f){if(\"path\"==d.type){for(var g,h,i,j,k,m=b(e).toLowerCase().split(\"-\"),n=d.paper,r=f?\"end\":\"start\",s=d.node,t=d.attrs,u=t[\"stroke-width\"],v=m.length,w=\"classic\",x=3,y=3,z=5;v--;)switch(m[v]){case\"block\":case\"classic\":case\"oval\":case\"diamond\":case\"open\":case\"none\":w=m[v];break;case\"wide\":y=5;break;case\"narrow\":y=2;break;case\"long\":x=5;break;case\"short\":x=2}if(\"open\"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:\"none\",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:\"none\"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},\"none\"!=w){var A=\"raphael-marker-\"+w,B=\"raphael-marker-\"+r+w+x+y;c._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q(\"path\"),{\"stroke-linecap\":\"round\",d:o[w],id:A})),p[A]=1);var C,D=c._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName(\"use\")[0]):(D=q(q(\"marker\"),{id:B,markerHeight:y,markerWidth:x,orient:\"auto\",refX:j,refY:y/2}),C=q(q(\"use\"),{\"xlink:href\":\"#\"+A,transform:(f?\"rotate(180 \"+x/2+\" \"+y/2+\") \":l)+\"scale(\"+x/z+\",\"+y/z+\")\",\"stroke-width\":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*(\"diamond\"!=w&&\"oval\"!=w);f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-E*u):(g=E*u,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k[\"marker-\"+r]=\"url(#\"+B+\")\",(h||g)&&(k.d=c.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+\"Path\"]=A,d._.arrows[r+\"Marker\"]=B,d._.arrows[r+\"dx\"]=E,d._.arrows[r+\"Type\"]=w,d._.arrows[r+\"String\"]=e}else f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-g):(g=0,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+\"Path\"]&&q(s,{d:c.getSubpath(t.path,g,h)}),delete d._.arrows[r+\"Path\"],delete d._.arrows[r+\"Marker\"],delete d._.arrows[r+\"dx\"],delete d._.arrows[r+\"Type\"],delete d._.arrows[r+\"String\"];for(k in p)if(p[a](k)&&!p[k]){var F=c._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={\"\":[0],none:[0],\"-\":[3,1],\".\":[1,1],\"-.\":[3,1,1,1],\"-..\":[3,1,1,1,1,1],\". \":[1,3],\"- \":[4,3],\"--\":[8,3],\"- .\":[4,3,1,3],\"--.\":[8,3,1,3],\"--..\":[8,3,1,3,1,3]},v=function(a,c,d){if(c=u[b(c).toLowerCase()]){for(var e=a.attrs[\"stroke-width\"]||\"1\",f={round:e,square:e,butt:0}[a.attrs[\"stroke-linecap\"]||d[\"stroke-linecap\"]]||0,g=[],h=c.length;h--;)g[h]=c[h]*e+(h%2?1:-1)*f;q(a.node,{\"stroke-dasharray\":g.join(\",\")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility=\"hidden\";for(var o in f)if(f[a](o)){if(!c._availableAttrs[a](o))continue;var p=f[o];switch(k[o]=p,o){case\"blur\":d.blur(p);break;case\"title\":var u=i.getElementsByTagName(\"title\");if(u.length&&(u=u[0]))u.firstChild.nodeValue=p;else{u=q(\"title\");var w=c._g.doc.createTextNode(p);u.appendChild(w),i.appendChild(u)}break;case\"href\":case\"target\":var x=i.parentNode;if(\"a\"!=x.tagName.toLowerCase()){var z=q(\"a\");x.insertBefore(z,i),z.appendChild(i),x=z}\"target\"==o?x.setAttributeNS(n,\"show\",\"blank\"==p?\"new\":p):x.setAttributeNS(n,o,p);break;case\"cursor\":i.style.cursor=p;break;case\"transform\":d.transform(p);break;case\"arrow-start\":t(d,p);break;case\"arrow-end\":t(d,p,1);break;case\"clip-rect\":var A=b(p).split(j);if(4==A.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var B=q(\"clipPath\"),C=q(\"rect\");B.id=c.createUUID(),q(C,{x:A[0],y:A[1],width:A[2],height:A[3]}),B.appendChild(C),d.paper.defs.appendChild(B),q(i,{\"clip-path\":\"url(#\"+B.id+\")\"}),d.clip=C}if(!p){var D=i.getAttribute(\"clip-path\");if(D){var E=c._g.doc.getElementById(D.replace(/(^url\\(#|\\)$)/g,l));E&&E.parentNode.removeChild(E),q(i,{\"clip-path\":l}),delete d.clip}}break;case\"path\":\"path\"==d.type&&(q(i,{d:p?k.path=c._pathToAbsolute(p):\"M0,0\"}),d._.dirty=1,d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case\"width\":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o=\"x\",p=k.x;case\"x\":k.fx&&(p=-k.x-(k.width||0));case\"rx\":if(\"rx\"==o&&\"rect\"==d.type)break;case\"cx\":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case\"height\":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o=\"y\",p=k.y;case\"y\":k.fy&&(p=-k.y-(k.height||0));case\"ry\":if(\"ry\"==o&&\"rect\"==d.type)break;case\"cy\":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case\"r\":\"rect\"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case\"src\":\"image\"==d.type&&i.setAttributeNS(n,\"href\",p);break;case\"stroke-width\":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),d.paper._vbSize&&(p*=d.paper._vbSize),i.setAttribute(o,p),k[\"stroke-dasharray\"]&&v(d,k[\"stroke-dasharray\"],f),d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1));break;case\"stroke-dasharray\":v(d,p,f);break;case\"fill\":var F=b(p).match(c._ISURL);if(F){B=q(\"pattern\");var G=q(\"image\");B.id=c.createUUID(),q(B,{x:0,y:0,patternUnits:\"userSpaceOnUse\",height:1,width:1}),q(G,{x:0,y:0,\"xlink:href\":F[1]}),B.appendChild(G),function(a){c._preload(F[1],function(){var b=this.offsetWidth,c=this.offsetHeight;q(a,{width:b,height:c}),q(G,{width:b,height:c}),d.paper.safari()})}(B),d.paper.defs.appendChild(B),q(i,{fill:\"url(#\"+B.id+\")\"}),d.pattern=B,d.pattern&&s(d);break}var H=c.getRGB(p);if(H.error){if((\"circle\"==d.type||\"ellipse\"==d.type||\"r\"!=b(p).charAt())&&r(d,p)){if(\"opacity\"in k||\"fill-opacity\"in k){var I=c._g.doc.getElementById(i.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,l));if(I){var J=I.getElementsByTagName(\"stop\");q(J[J.length-1],{\"stop-opacity\":(\"opacity\"in k?k.opacity:1)*(\"fill-opacity\"in k?k[\"fill-opacity\"]:1)})}}k.gradient=p,k.fill=\"none\";break}}else delete f.gradient,delete k.gradient,!c.is(k.opacity,\"undefined\")&&c.is(f.opacity,\"undefined\")&&q(i,{opacity:k.opacity}),!c.is(k[\"fill-opacity\"],\"undefined\")&&c.is(f[\"fill-opacity\"],\"undefined\")&&q(i,{\"fill-opacity\":k[\"fill-opacity\"]});H[a](\"opacity\")&&q(i,{\"fill-opacity\":H.opacity>1?H.opacity/100:H.opacity});case\"stroke\":H=c.getRGB(p),i.setAttribute(o,H.hex),\"stroke\"==o&&H[a](\"opacity\")&&q(i,{\"stroke-opacity\":H.opacity>1?H.opacity/100:H.opacity}),\"stroke\"==o&&d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1));break;case\"gradient\":(\"circle\"==d.type||\"ellipse\"==d.type||\"r\"!=b(p).charAt())&&r(d,p);break;case\"opacity\":k.gradient&&!k[a](\"stroke-opacity\")&&q(i,{\"stroke-opacity\":p>1?p/100:p});case\"fill-opacity\":if(k.gradient){I=c._g.doc.getElementById(i.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,l)),I&&(J=I.getElementsByTagName(\"stop\"),q(J[J.length-1],{\"stop-opacity\":p}));break}default:\"font-size\"==o&&(p=e(p,10)+\"px\");var K=o.replace(/(\\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[K]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if(\"text\"==d.type&&(f[a](\"text\")||f[a](\"font\")||f[a](\"font-size\")||f[a](\"x\")||f[a](\"y\"))){var g=d.attrs,h=d.node,i=h.firstChild?e(c._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue(\"font-size\"),10):10;\nif(f[a](\"text\")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=b(f.text).split(\"\\n\"),m=[],n=0,o=k.length;o>n;n++)j=q(\"tspan\"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(c._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName(\"tspan\"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&c.is(r,\"finite\")&&q(m[0],{dy:r})}},z=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.matrix=c.matrix(),this.realPath=null,this.paper=b,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},A=c.el;z.prototype=A,A.constructor=z,c._engine.path=function(a,b){var c=q(\"path\");b.canvas&&b.canvas.appendChild(c);var d=new z(c,b);return d.type=\"path\",w(d,{fill:\"none\",stroke:\"#000\",path:a}),d},A.rotate=function(a,c,e){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([[\"r\",a,c,e]])),this},A.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([[\"s\",a,c,e,f]])),this},A.translate=function(a,c){return this.removed?this:(a=b(a).split(j),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this.transform(this._.transform.concat([[\"t\",a,c]])),this)},A.transform=function(b){var d=this._;if(null==b)return d.transform;if(c._extractTransform(this,b),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[a](\"stroke-width\")?this.attrs[\"stroke-width\"]:1;this.attr({\"stroke-width\":e})}return this},A.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display=\"none\"),this},A.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=\"\"),this},A.remove=function(){if(!this.removed&&this.node.parentNode){var a=this.paper;a.__set__&&a.__set__.exclude(this),k.unbind(\"raphael.*.*.\"+this.id),this.gradient&&a.defs.removeChild(this.gradient),c._tear(this,a),\"a\"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.removeChild(this.node.parentNode):this.node.parentNode.removeChild(this.node);for(var b in this)this[b]=\"function\"==typeof this[b]?c._removedFactory(b):null;this.removed=!0}},A._getBBox=function(){if(\"none\"==this.node.style.display){this.show();var a=!0}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}return a&&this.hide(),b},A.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&\"none\"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,\"string\")){if(\"fill\"==b&&\"none\"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if(\"transform\"==b)return this._.transform;for(var g=b.split(j),h={},i=0,l=g.length;l>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],\"function\")?this.paper.customAttributes[b].def:c._availableAttrs[b];return l-1?h:h[g[0]]}if(null==d&&c.is(b,\"array\")){for(h={},i=0,l=b.length;l>i;i++)h[b[i]]=this.attr(b[i]);return h}if(null!=d){var m={};m[b]=d}else null!=b&&c.is(b,\"object\")&&(m=b);for(var n in m)k(\"raphael.attr.\"+n+\".\"+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[a](n)&&m[a](n)&&c.is(this.paper.customAttributes[n],\"function\")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[a](p)&&(m[p]=o[p])}return w(this,m),this},A.toFront=function(){if(this.removed)return this;\"a\"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.appendChild(this.node.parentNode):this.node.parentNode.appendChild(this.node);var a=this.paper;return a.top!=this&&c._tofront(this,a),this},A.toBack=function(){if(this.removed)return this;var a=this.node.parentNode;\"a\"==a.tagName.toLowerCase()?a.parentNode.insertBefore(this.node.parentNode,this.node.parentNode.parentNode.firstChild):a.firstChild!=this.node&&a.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper);this.paper;return this},A.insertAfter=function(a){if(this.removed)return this;var b=a.node||a[a.length-1].node;return b.nextSibling?b.parentNode.insertBefore(this.node,b.nextSibling):b.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this},A.insertBefore=function(a){if(this.removed)return this;var b=a.node||a[0].node;return b.parentNode.insertBefore(this.node,b),c._insertbefore(this,a,this.paper),this},A.blur=function(a){var b=this;if(0!==+a){var d=q(\"filter\"),e=q(\"feGaussianBlur\");b.attrs.blur=a,d.id=c.createUUID(),q(e,{stdDeviation:+a||1.5}),d.appendChild(e),b.paper.defs.appendChild(d),b._blur=d,q(b.node,{filter:\"url(#\"+d.id+\")\"})}else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute(\"filter\");return b},c._engine.circle=function(a,b,c,d){var e=q(\"circle\");a.canvas&&a.canvas.appendChild(e);var f=new z(e,a);return f.attrs={cx:b,cy:c,r:d,fill:\"none\",stroke:\"#000\"},f.type=\"circle\",q(e,f.attrs),f},c._engine.rect=function(a,b,c,d,e,f){var g=q(\"rect\");a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:b,y:c,width:d,height:e,r:f||0,rx:f||0,ry:f||0,fill:\"none\",stroke:\"#000\"},h.type=\"rect\",q(g,h.attrs),h},c._engine.ellipse=function(a,b,c,d,e){var f=q(\"ellipse\");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:\"none\",stroke:\"#000\"},g.type=\"ellipse\",q(f,g.attrs),g},c._engine.image=function(a,b,c,d,e,f){var g=q(\"image\");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:\"none\"}),g.setAttributeNS(n,\"href\",b),a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type=\"image\",h},c._engine.text=function(a,b,d,e){var f=q(\"text\");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={x:b,y:d,\"text-anchor\":\"middle\",text:e,font:c._availableAttrs.font,stroke:\"none\",fill:\"#000\"},g.type=\"text\",w(g,g.attrs),g},c._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute(\"width\",this.width),this.canvas.setAttribute(\"height\",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a&&a.container,d=a.x,e=a.y,f=a.width,g=a.height;if(!b)throw new Error(\"SVG container not found.\");var h,i=q(\"svg\"),j=\"overflow:hidden;\";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:\"http://www.w3.org/2000/svg\"}),1==b?(i.style.cssText=j+\"position:absolute;left:\"+d+\"px;top:\"+e+\"px\",c._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+\"position:relative\",b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i)),b=new c._Paper,b.width=f,b.height=g,b.canvas=i,b.clear(),b._left=b._top=0,h&&(b.renderfix=function(){}),b.renderfix(),b},c._engine.setViewBox=function(a,b,c,d,e){k(\"raphael.setViewBox\",this,this._viewBox,[a,b,c,d,e]);var f,h,i=g(c/this.width,d/this.height),j=this.top,l=e?\"xMidYMid meet\":\"xMinYMin\";for(null==a?(this._vbSize&&(i=1),delete this._vbSize,f=\"0 0 \"+this.width+m+this.height):(this._vbSize=i,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:l});i&&j;)h=\"stroke-width\"in j.attrs?j.attrs[\"stroke-width\"]:1,j.attr({\"stroke-width\":h}),j._.dirty=1,j._.dirtyT=1,j=j.prev;return this._viewBox=[a,b,c,d,!!e],this},c.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+\"px\"),f&&(this._top=(this._top+f)%1,c.top=this._top+\"px\"))},c.prototype.clear=function(){c.eve(\"raphael.clear\",this);for(var a=this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null,(this.desc=q(\"desc\")).appendChild(c._g.doc.createTextNode(\"Created with Raphaël \"+c.version)),a.appendChild(this.desc),a.appendChild(this.defs=q(\"defs\"))},c.prototype.remove=function(){k(\"raphael.remove\",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null};var B=c.st;for(var C in A)A[a](C)&&!B[a](C)&&(B[C]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(C))}}(),function(){if(c.vml){var a=\"hasOwnProperty\",b=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j=\"fill\",k=/[, ]+/,l=c.eve,m=\" progid:DXImageTransform.Microsoft\",n=\" \",o=\"\",p={M:\"m\",L:\"l\",C:\"c\",Z:\"x\",m:\"t\",l:\"r\",c:\"v\",z:\"x\"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\\S+Blur\\([^\\)]+\\)/g,s=/-?[^,\\s-]+/g,t=\"position:absolute;left:0;top:0;width:1px;height:1px\",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(a){var d=/[ahqstv]/gi,e=c._pathToAbsolute;if(b(a).match(d)&&(e=c._path2curve),d=/[clmz]/g,e==c._pathToAbsolute&&!b(a).match(d)){var g=b(a).replace(q,function(a,b,c){var d=[],e=\"m\"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p[\"m\"==b?\"l\":\"L\"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(a);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),\"z\"==i&&(i=\"x\");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?\",\":o);g.push(i)}return g.join(n)},y=function(a,b,d){var e=c.matrix();return e.rotate(-a,.5,.5),{dx:e.x(b,d),dy:e.y(b,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p=\"\",q=u/b,r=u/c;if(m.visibility=\"hidden\",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+=\"x\"),0>c&&(p+=\" y\")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility=\"visible\"}};c.toString=function(){return\"Your browser doesn’t support SVG. Falling down to VML.\\nYou are running Raphaël \"+this.version};var A=function(a,c,d){for(var e=b(c).toLowerCase().split(\"-\"),f=d?\"end\":\"start\",g=e.length,h=\"classic\",i=\"medium\",j=\"medium\";g--;)switch(e[g]){case\"block\":case\"classic\":case\"oval\":case\"diamond\":case\"open\":case\"none\":h=e[g];break;case\"wide\":case\"narrow\":j=e[g];break;case\"long\":case\"short\":i=e[g]}var k=a.node.getElementsByTagName(\"stroke\")[0];k[f+\"arrow\"]=h,k[f+\"arrowlength\"]=i,k[f+\"arrowwidth\"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[a](t)&&(m[t]=i[t]);if(q&&(m.path=c._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),\"blur\"in i&&e.blur(i.blur),(i.path&&\"path\"==e.type||q)&&(l.path=x(~b(m.path).toLowerCase().indexOf(\"r\")?c._pathToAbsolute(m.path):m.path),\"image\"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),\"transform\"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=c.format(\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u)),e._.dirty=1}if(\"clip-rect\"in i){var G=b(i[\"clip-rect\"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||c._g.doc.createElement(\"div\"),I=H.style;I.clip=c.format(\"rect({1}px {2}px {3}px {0}px)\",G),l.clipRect||(I.position=\"absolute\",I.top=0,I.left=0,I.width=e.paper.width+\"px\",I.height=e.paper.height+\"px\",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i[\"clip-rect\"]||l.clipRect&&(l.clipRect.style.clip=\"auto\")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i[\"font-family\"]&&(J.fontFamily='\"'+i[\"font-family\"].split(\",\")[0].replace(/^['\"]+|['\"]+$/g,o)+'\"'),i[\"font-size\"]&&(J.fontSize=i[\"font-size\"]),i[\"font-weight\"]&&(J.fontWeight=i[\"font-weight\"]),i[\"font-style\"]&&(J.fontStyle=i[\"font-style\"])}if(\"arrow-start\"in i&&A(s,i[\"arrow-start\"]),\"arrow-end\"in i&&A(s,i[\"arrow-end\"],1),null!=i.opacity||null!=i[\"stroke-width\"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i[\"stroke-width\"]||null!=i[\"stroke-opacity\"]||null!=i[\"fill-opacity\"]||null!=i[\"stroke-dasharray\"]||null!=i[\"stroke-miterlimit\"]||null!=i[\"stroke-linejoin\"]||null!=i[\"stroke-linecap\"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),\"image\"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||\"none\"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=b(i.fill).match(c._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type=\"tile\";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],c._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=c.getRGB(i.fill).hex,K.src=o,K.type=\"solid\",c.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||\"r\"!=b(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill=\"none\",m.gradient=i.fill,K.rotate=!1)}if(\"fill-opacity\"in i||\"opacity\"in i){var O=((+m[\"fill-opacity\"]+1||2)-1)*((+m.opacity+1||2)-1)*((+c.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color=\"none\")}l.appendChild(K);var P=l.getElementsByTagName(\"stroke\")&&l.getElementsByTagName(\"stroke\")[0],Q=!1;!P&&(Q=P=F(\"stroke\")),(i.stroke&&\"none\"!=i.stroke||i[\"stroke-width\"]||null!=i[\"stroke-opacity\"]||i[\"stroke-dasharray\"]||i[\"stroke-miterlimit\"]||i[\"stroke-linejoin\"]||i[\"stroke-linecap\"])&&(P.on=!0),(\"none\"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i[\"stroke-width\"])&&(P.on=!1);var R=c.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m[\"stroke-opacity\"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i[\"stroke-width\"])||1);if(O=h(g(O,0),1),null==i[\"stroke-width\"]&&(S=m[\"stroke-width\"]),i[\"stroke-width\"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i[\"stroke-linejoin\"]&&(P.joinstyle=i[\"stroke-linejoin\"]||\"miter\"),P.miterlimit=i[\"stroke-miterlimit\"]||8,i[\"stroke-linecap\"]&&(P.endcap=\"butt\"==i[\"stroke-linecap\"]?\"flat\":\"square\"==i[\"stroke-linecap\"]?\"square\":\"round\"),\"stroke-dasharray\"in i){var T={\"-\":\"shortdash\",\".\":\"shortdot\",\"-.\":\"shortdashdot\",\"-..\":\"shortdashdotdot\",\". \":\"dot\",\"- \":\"dash\",\"--\":\"longdash\",\"- .\":\"dashdot\",\"--.\":\"longdashdot\",\"--..\":\"longdashdotdot\"};P.dashstyle=T[a](i[\"stroke-dasharray\"])?T[i[\"stroke-dasharray\"]]:o}Q&&l.appendChild(P)}if(\"text\"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\\d+(?:\\.\\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m[\"font-family\"]&&(p.fontFamily=m[\"font-family\"]),m[\"font-weight\"]&&(p.fontWeight=m[\"font-weight\"]),m[\"font-style\"]&&(p.fontStyle=m[\"font-style\"]),W=d(m[\"font-size\"]||W&&W[0])||10,p.fontSize=W*V+\"px\",s.textpath.string&&(U.innerHTML=b(s.textpath.string).replace(/</g,\"&#60;\").replace(/&/g,\"&#38;\").replace(/\\n/g,\"<br>\"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,(\"x\"in i||\"y\"in i)&&(s.path.v=c.format(\"m{0},{1}l{2},{1}\",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=[\"x\",\"y\",\"text\",\"font\",\"font-family\",\"font-weight\",\"font-style\",\"font-size\"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m[\"text-anchor\"]){case\"start\":s.textpath.style[\"v-text-align\"]=\"left\",s.bbx=s.W/2;break;case\"end\":s.textpath.style[\"v-text-align\"]=\"right\",s.bbx=-s.W/2;break;default:s.textpath.style[\"v-text-align\"]=\"center\",s.bbx=0}s.textpath.style[\"v-text-kern\"]=!0}},C=function(a,f,g){a.attrs=a.attrs||{};var h=(a.attrs,Math.pow),i=\"linear\",j=\".5 .5\";if(a.attrs.gradient=f,f=b(f).replace(c._radial_gradient,function(a,b,c){return i=\"radial\",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\\s*\\-\\s*/),\"linear\"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=c._parseDots(f);if(!l)return null;if(a=a.shape||a.node,l.length){a.removeChild(g),g.on=!0,g.method=\"none\",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():\"0% \"+g.color,\"radial\"==i?(g.type=\"gradientTitle\",g.focus=\"100%\",g.focussize=\"0 0\",g.focusposition=j,g.angle=0):(g.type=\"gradient\",g.angle=(270-k)%360),a.appendChild(g)}return 1},D=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=b,this.matrix=c.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},E=c.el;D.prototype=E,E.constructor=D,E.transform=function(a){if(null==a)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?\"s\"+[e.scale,e.scale]+\"-1-1t\"+[e.dx,e.dy]:o;e&&(d=a=b(a).replace(/\\.{3}|\\u2026/g,this._.transform||o)),c._extractTransform(this,f+a);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~b(this.attrs.fill).indexOf(\"-\"),l=!b(this.attrs.fill).indexOf(\"url(\");if(h.translate(1,1),l||k||\"image\"==this.type)if(i.matrix=\"1 0 0 1\",i.offset=\"0 0\",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=b(h),i.offset=h.offset();return d&&(this._.transform=d),this},E.rotate=function(a,c,e){if(this.removed)return this;if(null!=a){if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([[\"r\",a,c,e]])),this}},E.translate=function(a,c){return this.removed?this:(a=b(a).split(k),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=c),this.transform(this._.transform.concat([[\"t\",a,c]])),this)},E.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([[\"s\",a,c,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display=\"none\"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),c.eve.unbind(\"raphael.*.*.\"+this.id),c._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null;this.removed=!0}},E.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&\"none\"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,\"string\")){if(b==j&&\"none\"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=b.split(k),h={},i=0,m=g.length;m>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],\"function\")?this.paper.customAttributes[b].def:c._availableAttrs[b];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&c.is(b,\"array\")){for(h={},i=0,m=b.length;m>i;i++)h[b[i]]=this.attr(b[i]);return h}var n;null!=d&&(n={},n[b]=d),null==d&&c.is(b,\"object\")&&(n=b);for(var o in n)l(\"raphael.attr.\"+o+\".\"+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[a](o)&&n[a](o)&&c.is(this.paper.customAttributes[o],\"function\")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[a](q)&&(n[q]=p[q])}n.text&&\"text\"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&c._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper)),this)},E.insertAfter=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[a.length-1]),a.node.nextSibling?a.node.parentNode.insertBefore(this.node,a.node.nextSibling):a.node.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this)},E.insertBefore=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[0]),a.node.parentNode.insertBefore(this.node,a.node),c._insertbefore(this,a,this.paper),this)},E.blur=function(a){var b=this.node.runtimeStyle,d=b.filter;return d=d.replace(r,o),0!==+a?(this.attrs.blur=a,b.filter=d+n+m+\".Blur(pixelradius=\"+(+a||1.5)+\")\",b.margin=c.format(\"-{0}px 0 0 -{0}px\",f(+a||1.5))):(b.filter=d,b.margin=0,delete this.attrs.blur),this},c._engine.path=function(a,b){var c=F(\"shape\");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:\"none\",stroke:\"#000\"};a&&(e.path=a),d.type=\"path\",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F(\"skew\");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},c._engine.rect=function(a,b,d,e,f,g){var h=c._rectPath(b,d,e,f,g),i=a.path(h),j=i.attrs;return i.X=j.x=b,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type=\"rect\",i},c._engine.ellipse=function(a,b,c,d,e){{var f=a.path();f.attrs}return f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type=\"ellipse\",B(f,{cx:b,cy:c,rx:d,ry:e}),f},c._engine.circle=function(a,b,c,d){{var e=a.path();e.attrs}return e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type=\"circle\",B(e,{cx:b,cy:c,r:d}),e},c._engine.image=function(a,b,d,e,f,g){var h=c._rectPath(d,e,f,g),i=a.path(h).attr({stroke:\"none\"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=b,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type=\"image\",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=b,m.type=\"tile\",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},c._engine.text=function(a,d,e,g){var h=F(\"shape\"),i=F(\"path\"),j=F(\"textpath\");d=d||0,e=e||0,g=g||\"\",i.v=c.format(\"m{0},{1}l{2},{1}\",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=b(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin=\"0 0\";var k=new D(h,a),l={fill:\"#000\",stroke:\"none\",font:c._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type=\"text\",k.attrs.text=b(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),a.canvas.appendChild(h);var m=F(\"skew\");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},c._engine.setSize=function(a,b){var d=this.canvas.style;return this.width=a,this.height=b,a==+a&&(a+=\"px\"),b==+b&&(b+=\"px\"),d.width=a,d.height=b,d.clip=\"rect(0 \"+a+\" \"+b+\" 0)\",this._viewBox&&c._engine.setViewBox.apply(this,this._viewBox),this},c._engine.setViewBox=function(a,b,d,e,f){c.eve(\"raphael.setViewBox\",this,this._viewBox,[a,b,d,e,f]);var h,i,j=this.width,k=this.height,l=1/g(d/j,e/k);return f&&(h=k/e,i=j/d,j>d*h&&(a-=(j-d*h)/2/h),k>e*i&&(b-=(k-e*i)/2/i)),this._viewBox=[a,b,d,e,!!f],this._viewBoxShift={dx:-a,dy:-b,scale:l},this.forEach(function(a){a.transform(\"...\")}),this};var F;c._engine.initWin=function(a){var b=a.document;b.createStyleSheet().addRule(\".rvml\",\"behavior:url(#default#VML)\");try{!b.namespaces.rvml&&b.namespaces.add(\"rvml\",\"urn:schemas-microsoft-com:vml\"),F=function(a){return b.createElement(\"<rvml:\"+a+' class=\"rvml\">')}}catch(c){F=function(a){return b.createElement(\"<\"+a+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">')}}},c._engine.initWin(c._g.win),c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a.container,d=a.height,e=a.width,f=a.x,g=a.y;if(!b)throw new Error(\"VML container not found.\");var h=new c._Paper,i=h.canvas=c._g.doc.createElement(\"div\"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+=\"px\"),d==+d&&(d+=\"px\"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin=\"0 0\",h.span=c._g.doc.createElement(\"span\"),h.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\",i.appendChild(h.span),j.cssText=c.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\",e,d),1==b?(c._g.doc.body.appendChild(i),j.left=f+\"px\",j.top=g+\"px\",j.position=\"absolute\"):b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i),h.renderfix=function(){},h},c.prototype.clear=function(){c.eve(\"raphael.clear\",this),this.canvas.innerHTML=o,this.span=c._g.doc.createElement(\"span\"),this.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\",this.canvas.appendChild(this.span),this.bottom=this.top=null},c.prototype.remove=function(){c.eve(\"raphael.remove\",this),this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null;return!0};var G=c.st;for(var H in E)E[a](H)&&!G[a](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}}(),B.was?A.win.Raphael=c:Raphael=c,c});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/area/area_spec.coffee",
    "content": "describe 'Morris.Area', ->\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      lineColors: [ '#0b62a4', '#7a92a3']\n      gridLineColor: '#aaa'\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['Y']\n\n    it 'should contain a line path for each line', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should contain a path with stroke-width 0 for each line', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should contain 5 grid lines', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#aaaaaa']\").size().should.equal 5\n\n    it 'should contain 9 text elements', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 9\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['Y']\n      lineColors: [ '#0b62a4', '#7a92a3']\n      lineWidth: 3\n      pointWidths: [5]\n      pointStrokeColors: ['#ffffff']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n\n    it 'should not be cumulative if behaveLikeLine', ->\n      chart = Morris.Area $.extend {}, defaults, behaveLikeLine: true\n      chart.cumulative.should.equal false\n\n    it 'should have a line with transparent fill if behaveLikeLine', ->\n      chart = Morris.Area $.extend {}, defaults, behaveLikeLine: true\n      $('#graph').find(\"path[fill-opacity='0.8']\").size().should.equal 1\n\n    it 'should not have a line with transparent fill', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[fill-opacity='0.8']\").size().should.equal 0\n\n    it 'should have a line with the fill of a modified line color', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[fill='#0b62a4']\").size().should.equal 0\n      $('#graph').find(\"path[fill='#7a92a3']\").size().should.equal 0\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/bar/bar_spec.coffee",
    "content": "describe 'Morris.Bar', ->\n  describe 'when using vertical grid', ->\n    defaults =\n      element: 'graph'\n      data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n      barColors: [ '#0b62a4', '#7a92a3']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n      verticalGridCondition: (index) -> index % 2\n      verticalGridColor: '#888888'\n      verticalGridOpacity: '0.2'\n\n    describe 'svg structure', ->\n      it 'should contain extra rectangles for vertical grid', ->\n        $('#graph').css('height', '250px').css('width', '800px')\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect\").size().should.equal 6\n\n    describe 'svg attributes', ->\n      it 'should have to bars with verticalGrid.color', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect[fill='#{defaults.verticalGridColor}']\").size().should.equal 2\n      it 'should have to bars with verticalGrid.color', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect[fill-opacity='#{defaults.verticalGridOpacity}']\").size().should.equal 2\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n\n    it 'should contain a rect for each bar', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"rect\").size().should.equal 4\n\n    it 'should contain 5 grid lines', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"path\").size().should.equal 5\n\n    it 'should contain 7 text elements', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 7\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n      barColors: [ '#0b62a4', '#7a92a3']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n\n    it 'should have a bar with the first default color', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"rect[fill='#0b62a4']\").size().should.equal 2\n\n    it 'should have a bar with no stroke', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"rect[stroke='none']\").size().should.equal 4\n\n    it 'should have text with configured fill color', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"text[fill='#888888']\").size().should.equal 7\n\n    it 'should have text with configured font size', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"text[font-size='12px']\").size().should.equal 7\n\n  describe 'when setting bar radius', ->\n    describe 'svg structure', ->\n      defaults =\n        element: 'graph'\n        data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n        xkey: 'x'\n        ykeys: ['y', 'z']\n        labels: ['Y', 'Z']\n        barRadius: [5, 5, 0, 0]\n\n      it 'should contain a path for each bar', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"path\").size().should.equal 9\n\n      it 'should use rects if radius is too big', ->\n        delete defaults.barStyle\n        chart = Morris.Bar $.extend {}, defaults,\n            barRadius: [300, 300, 0, 0]\n        $('#graph').find(\"rect\").size().should.equal 4\n\n  describe 'barSize option', ->\n    describe 'svg attributes', ->\n      defaults =\n        element: 'graph'\n        barSize: 20\n        data: [\n          {x: '2011 Q1', y: 3, z: 2, a: 3}\n          {x: '2011 Q2', y: 2, z: null, a: 1}\n          {x: '2011 Q3', y: 0, z: 2, a: 4}\n          {x: '2011 Q4', y: 2, z: 4, a: 3}\n        ],\n        xkey: 'x'\n        ykeys: ['y', 'z', 'a']\n        labels: ['Y', 'Z', 'A']\n\n      it 'should calc the width if too narrow for barSize', ->\n        $('#graph').width('200px')\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect\").filter((i) ->\n          parseFloat($(@).attr('width'), 10) < 10\n        ).size().should.equal 11\n\n      it 'should set width to @options.barSize if possible', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect[width='#{defaults.barSize}']\").size().should.equal 11\n\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/bar/colours.coffee",
    "content": "describe 'Morris.Bar#colorFor', ->\n\n  defaults =\n    element: 'graph'\n    data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n    xkey: 'x'\n    ykeys: ['y', 'z']\n    labels: ['Y', 'Z']\n\n  it 'should fetch colours from an array', ->\n    chart = Morris.Bar $.extend {}, defaults, barColors: ['#f00', '#0f0', '#00f']\n    chart.colorFor(chart.data[0], 0, 'bar').should.equal '#f00'\n    chart.colorFor(chart.data[0], 0, 'hover').should.equal '#f00'\n    chart.colorFor(chart.data[0], 1, 'bar').should.equal '#0f0'\n    chart.colorFor(chart.data[0], 1, 'hover').should.equal '#0f0'\n    chart.colorFor(chart.data[0], 2, 'bar').should.equal '#00f'\n    chart.colorFor(chart.data[0], 2, 'hover').should.equal '#00f'\n    chart.colorFor(chart.data[0], 3, 'bar').should.equal '#f00'\n    chart.colorFor(chart.data[0], 4, 'hover').should.equal '#0f0'\n\n  it 'should defer to a callback', ->\n    stub = sinon.stub().returns '#f00'\n    chart = Morris.Bar $.extend {}, defaults, barColors: stub\n    stub.reset()\n\n    chart.colorFor(chart.data[0], 0, 'bar')\n    stub.should.have.been.calledWith(\n      {x:0, y:2, label:'foo'},\n      {index:0, key:'y', label:'Y'},\n      'bar')\n\n    chart.colorFor(chart.data[0], 1, 'hover')\n    stub.should.have.been.calledWith(\n      {x:0, y:3, label:'foo'},\n      {index:1, key:'z', label:'Z'},\n      'hover')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/commas_spec.coffee",
    "content": "describe '#commas', ->\n\n  it 'should insert commas into long numbers', ->\n    # zero\n    Morris.commas(0).should.equal(\"0\")\n\n    # positive integers\n    Morris.commas(1).should.equal(\"1\")\n    Morris.commas(12).should.equal(\"12\")\n    Morris.commas(123).should.equal(\"123\")\n    Morris.commas(1234).should.equal(\"1,234\")\n    Morris.commas(12345).should.equal(\"12,345\")\n    Morris.commas(123456).should.equal(\"123,456\")\n    Morris.commas(1234567).should.equal(\"1,234,567\")\n\n    # negative integers\n    Morris.commas(-1).should.equal(\"-1\")\n    Morris.commas(-12).should.equal(\"-12\")\n    Morris.commas(-123).should.equal(\"-123\")\n    Morris.commas(-1234).should.equal(\"-1,234\")\n    Morris.commas(-12345).should.equal(\"-12,345\")\n    Morris.commas(-123456).should.equal(\"-123,456\")\n    Morris.commas(-1234567).should.equal(\"-1,234,567\")\n\n    # positive decimals\n    Morris.commas(1.2).should.equal(\"1.2\")\n    Morris.commas(12.34).should.equal(\"12.34\")\n    Morris.commas(123.456).should.equal(\"123.456\")\n    Morris.commas(1234.56).should.equal(\"1,234.56\")\n\n    # negative decimals\n    Morris.commas(-1.2).should.equal(\"-1.2\")\n    Morris.commas(-12.34).should.equal(\"-12.34\")\n    Morris.commas(-123.456).should.equal(\"-123.456\")\n    Morris.commas(-1234.56).should.equal(\"-1,234.56\")\n\n    # null\n    Morris.commas(null).should.equal('-')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/donut/donut_spec.coffee",
    "content": "describe 'Morris.Donut', ->\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [ {label: 'Jam', value: 25 },\n        {label: 'Frosted', value: 40 },\n        {label: 'Custard', value: 25 },\n        {label: 'Sugar', value: 10 } ]\n      formatter: (y) -> \"#{y}%\"\n\n    it 'should contain 2 paths for each segment', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path\").size().should.equal 8\n\n    it 'should contain 2 text elements for the label', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 2\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [ {label: 'Jam', value: 25 },\n        {label: 'Frosted', value: 40 },\n        {label: 'Custard', value: 25 },\n        {label: 'Sugar', value: 10 } ]\n      formatter: (y) -> \"#{y}%\"\n      colors: [ '#0B62A4', '#3980B5', '#679DC6', '#95BBD7']\n\n    it 'should have a label with font size 15', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text[font-size='15px']\").size().should.equal 1\n\n    it 'should have a label with font size 14', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text[font-size='14px']\").size().should.equal 1\n\n    it 'should have a label with font-weight 800', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text[font-weight='800']\").size().should.equal 1\n\n    it 'should have 1 paths with fill of first color', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[fill='#0b62a4']\").size().should.equal 1\n\n    it 'should have 1 paths with stroke of first color', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should have a path with white stroke', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#ffffff']\").size().should.equal 4\n\n    it 'should have a path with stroke-width 3', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke-width='3']\").size().should.equal 4\n\n    it 'should have a path with stroke-width 2', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke-width='2']\").size().should.equal 4\n\n  describe 'setData', ->\n    defaults =\n      element: 'graph'\n      data: [ {label: 'One', value: 25 }, {label: \"Two\", value: 30} ]\n      colors: ['#ff0000', '#00ff00', '#0000ff']\n\n    it 'should update the chart', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0000ff']\").size().should.equal 0\n      chart.setData [\n        { label: 'One', value: 25 }\n        { label: 'Two', value: 30 }\n        { label: 'Three', value: 35 }\n      ]\n      $('#graph').find(\"path[stroke='#0000ff']\").size().should.equal 1\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/grid/auto_grid_lines_spec.coffee",
    "content": "describe 'Morris.Grid#autoGridLines', ->\n\n  beforeEach ->\n    @subject = Morris.Grid.prototype.autoGridLines\n\n  it 'should draw at fixed intervals', ->\n    @subject(0, 4, 5).should.deep.equal [0, 1, 2, 3, 4]\n    @subject(0, 400, 5).should.deep.equal [0, 100, 200, 300, 400]\n\n  it 'should pick intervals that show significant numbers', ->\n    @subject(102, 499, 5).should.deep.equal [100, 200, 300, 400, 500]\n\n  it 'should draw zero when it falls within [ymin..ymax]', ->\n    @subject(-100, 300, 5).should.deep.equal [-100, 0, 100, 200, 300]\n    @subject(-50, 350, 5).should.deep.equal [-125, 0, 125, 250, 375]\n    @subject(-400, 400, 5).should.deep.equal [-400, -200, 0, 200, 400]\n    @subject(100, 500, 5).should.deep.equal [100, 200, 300, 400, 500]\n    @subject(-500, -100, 5).should.deep.equal [-500, -400, -300, -200, -100]\n\n  it 'should generate decimal labels to 2 significant figures', ->\n    @subject(0, 1, 5).should.deep.equal [0, 0.25, 0.5, 0.75, 1]\n    @subject(0.1, 0.5, 5).should.deep.equal [0.1, 0.2, 0.3, 0.4, 0.5]\n\n  it 'should use integer intervals for intervals larger than 1', ->\n    @subject(0, 9, 5).should.deep.equal [0, 3, 6, 9, 12]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/grid/set_data_spec.coffee",
    "content": "describe 'Morris.Grid#setData', ->\n\n  it 'should not alter user-supplied data', ->\n    my_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    expected_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    Morris.Line\n      element: 'graph'\n      data: my_data\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n    my_data.should.deep.equal expected_data\n\n  describe 'ymin/ymax', ->\n    beforeEach ->\n      @defaults =\n        element: 'graph'\n        xkey: 'x'\n        ykeys: ['y', 'z']\n        labels: ['y', 'z']\n\n    it 'should use a user-specified minimum and maximum value', ->\n      line = Morris.Line $.extend @defaults,\n        data: [{x: 1, y: 1}]\n        ymin: 10\n        ymax: 20\n      line.ymin.should.equal 10\n      line.ymax.should.equal 20\n\n    describe 'auto', ->\n\n      it 'should automatically calculate the minimum and maximum value', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}]\n          ymin: 'auto'\n          ymax: 'auto'\n        line.ymin.should.equal 10\n        line.ymax.should.equal 15\n\n      it 'should automatically calculate the minimum and maximum value given no y data', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}]\n          ymin: 'auto'\n          ymax: 'auto'\n        line.ymin.should.equal 0\n        line.ymax.should.equal 1\n\n    describe 'auto [n]', ->\n\n      it 'should automatically calculate the minimum and maximum value', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}]\n          ymin: 'auto 11'\n          ymax: 'auto 13'\n        line.ymin.should.equal 10\n        line.ymax.should.equal 15\n\n      it 'should automatically calculate the minimum and maximum value given no data', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}]\n          ymin: 'auto 11'\n          ymax: 'auto 13'\n        line.ymin.should.equal 11\n        line.ymax.should.equal 13\n\n      it 'should use a user-specified minimum and maximum value', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}]\n          ymin: 'auto 5'\n          ymax: 'auto 20'\n        line.ymin.should.equal 5\n        line.ymax.should.equal 20\n\n      it 'should use a user-specified minimum and maximum value given no data', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}]\n          ymin: 'auto 5'\n          ymax: 'auto 20'\n        line.ymin.should.equal 5\n        line.ymax.should.equal 20\n\n  describe 'xmin/xmax', ->\n\n    it 'should calculate the horizontal range', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [{x: 2, y: 2}, {x: 1, y: 1}, {x: 4, y: 4}, {x: 3, y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.xmin.should == 1\n      line.xmax.should == 4\n\n    it \"should pad the range if there's only one data point\", ->\n      line = Morris.Line\n        element: 'graph'\n        data: [{x: 2, y: 2}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.xmin.should == 1\n      line.xmax.should == 3\n\n  describe 'sorting', ->\n\n    it 'should sort data when parseTime is true', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [\n          {x: '2012 Q1', y: 2},\n          {x: '2012 Q3', y: 1},\n          {x: '2012 Q4', y: 4},\n          {x: '2012 Q2', y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.data.map((row) -> row.label).should.deep.equal ['2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4']\n\n    it 'should not sort data when parseTime is false', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [{x: 1, y: 2}, {x: 4, y: 1}, {x: 3, y: 4}, {x: 2, y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n        parseTime: false\n      line.data.map((row) -> row.label).should.deep.equal [1, 4, 3, 2]\n\n  describe 'timestamp data', ->\n\n    it 'should generate default labels for timestamp x-values', ->\n      d = [\n        new Date 2012, 0, 1\n        new Date 2012, 0, 2\n        new Date 2012, 0, 3\n        new Date 2012, 0, 4\n      ]\n      line = Morris.Line\n        element: 'graph'\n        data: [\n          {x: d[0].getTime(), y: 2},\n          {x: d[1].getTime(), y: 1},\n          {x: d[2].getTime(), y: 4},\n          {x: d[3].getTime(), y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.data.map((row) -> row.label).should.deep.equal d.map((t) -> t.toString())\n\n    it 'should use a user-supplied formatter for labels', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [\n          {x: new Date(2012, 0, 1).getTime(), y: 2},\n          {x: new Date(2012, 0, 2).getTime(), y: 1},\n          {x: new Date(2012, 0, 3).getTime(), y: 4},\n          {x: new Date(2012, 0, 4).getTime(), y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n        dateFormat: (ts) ->\n          date = new Date(ts)\n          \"#{date.getFullYear()}-#{date.getMonth()+1}-#{date.getDate()}\"\n      line.data.map((row) -> row.label).should.deep.equal ['2012-1-1', '2012-1-2', '2012-1-3', '2012-1-4']\n\n  it 'should parse y-values in strings', ->\n    line = Morris.Line\n      element: 'graph'\n      data: [{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.ymin.should == 12\n    line.ymax.should == 16\n    line.data.map((row) -> row.y).should.deep.equal [[13.5], [12], [16], [14]]\n\n  it 'should clear the chart when empty data is supplied', ->\n    line = Morris.Line\n      element: 'graph',\n      data: [{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.data.length.should.equal 4\n    line.setData([])\n    line.data.length.should.equal 0\n    line.setData([{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}])\n    line.data.length.should.equal 4\n\n  it 'should be able to add data if the chart is initialised with empty data', ->\n    line = Morris.Line\n      element: 'graph',\n      data: []\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.data.length.should.equal 0\n    line.setData([{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}])\n    line.data.length.should.equal 4\n\n  it 'should automatically choose significant numbers for y-labels', ->\n    line = Morris.Line\n      element: 'graph',\n      data: [{x: 1, y: 0}, {x: 2, y: 3600}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.grid.should == [0, 1000, 2000, 3000, 4000]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/grid/y_label_format_spec.coffee",
    "content": "describe 'Morris.Grid#yLabelFormat', ->\n\n  it 'should use custom formatter for y labels', ->\n    formatter = (label) ->\n      flabel = parseFloat(label) / 1000\n      \"#{flabel.toFixed(1)}k\"\n    line = Morris.Line\n      element: 'graph'\n      data: [{x: 1, y: 1500}, {x: 2, y: 2500}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n      preUnits: \"$\"\n      yLabelFormat: formatter\n    line.yLabelFormat(1500).should.equal \"1.5k\"\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/hover_spec.coffee",
    "content": "describe \"Morris.Hover\", ->\n\n  describe \"with dummy content\", ->\n\n    beforeEach ->\n      parent = $('<div style=\"width:200px;height:180px\"></div>')\n        .appendTo($('#test'))\n      @hover = new Morris.Hover(parent:  parent)\n      @element = $('#test .morris-hover')\n\n    it \"should initialise a hidden, empty popup\", ->\n      @element.should.exist\n      @element.should.be.hidden\n      @element.should.be.empty\n\n    describe \"#show\", ->\n      it \"should show the popup\", ->\n        @hover.show()\n        @element.should.be.visible\n\n    describe \"#hide\", ->\n      it \"should hide the popup\", ->\n        @hover.show()\n        @hover.hide()\n        @element.should.be.hidden\n\n    describe \"#html\", ->\n      it \"should replace the contents of the element\", ->\n        @hover.html('<div>Foobarbaz</div>')\n        @element.should.have.html('<div>Foobarbaz</div>')\n\n    describe \"#moveTo\", ->\n      beforeEach ->\n        @hover.html('<div style=\"width:84px;height:84px\"></div>')\n\n      it \"should place the popup directly above the given point\", ->\n        @hover.moveTo(100, 150)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '40px')\n\n      it \"should place the popup below the given point if it does not fit above\", ->\n        @hover.moveTo(100, 50)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '60px')\n\n      it \"should center the popup vertically if it will not fit above or below\", ->\n        @hover.moveTo(100, 100)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '40px')\n\n      it \"should center the popup vertically if no y value is supplied\", ->\n        @hover.moveTo(100)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '40px')\n\n  describe \"#update\", ->\n    it \"should update content, show and reposition the popup\", ->\n      hover = new Morris.Hover(parent: $('#test'))\n      html = \"<div style='width:84px;height:84px'>Hello, Everyone!</div>\"\n      hover.update(html, 150, 200)\n      el = $('#test .morris-hover')\n      el.should.have.css('left', '100px')\n      el.should.have.css('top', '90px')\n      el.should.have.text('Hello, Everyone!')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/label_series_spec.coffee",
    "content": "describe '#labelSeries', ->\n\n  it 'should generate decade intervals', ->\n    Morris.labelSeries(\n      new Date(1952, 0, 1).getTime(),\n      new Date(2012, 0, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"1960\", new Date(1960, 0, 1).getTime()],\n      [\"1970\", new Date(1970, 0, 1).getTime()],\n      [\"1980\", new Date(1980, 0, 1).getTime()],\n      [\"1990\", new Date(1990, 0, 1).getTime()],\n      [\"2000\", new Date(2000, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(1952, 3, 1).getTime(),\n      new Date(2012, 3, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"1960\", new Date(1960, 0, 1).getTime()],\n      [\"1970\", new Date(1970, 0, 1).getTime()],\n      [\"1980\", new Date(1980, 0, 1).getTime()],\n      [\"1990\", new Date(1990, 0, 1).getTime()],\n      [\"2000\", new Date(2000, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()]\n    ])\n\n  it 'should generate year intervals', ->\n    Morris.labelSeries(\n      new Date(2007, 0, 1).getTime(),\n      new Date(2012, 0, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2007\", new Date(2007, 0, 1).getTime()],\n      [\"2008\", new Date(2008, 0, 1).getTime()],\n      [\"2009\", new Date(2009, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()],\n      [\"2011\", new Date(2011, 0, 1).getTime()],\n      [\"2012\", new Date(2012, 0, 1).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(2007, 3, 1).getTime(),\n      new Date(2012, 3, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2008\", new Date(2008, 0, 1).getTime()],\n      [\"2009\", new Date(2009, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()],\n      [\"2011\", new Date(2011, 0, 1).getTime()],\n      [\"2012\", new Date(2012, 0, 1).getTime()]\n    ])\n\n  it 'should generate month intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 5, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2012-01\", new Date(2012, 0, 1).getTime()],\n      [\"2012-02\", new Date(2012, 1, 1).getTime()],\n      [\"2012-03\", new Date(2012, 2, 1).getTime()],\n      [\"2012-04\", new Date(2012, 3, 1).getTime()],\n      [\"2012-05\", new Date(2012, 4, 1).getTime()],\n      [\"2012-06\", new Date(2012, 5, 1).getTime()]\n    ])\n\n  it 'should generate week intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 1, 10).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2012-01-01\", new Date(2012, 0, 1).getTime()],\n      [\"2012-01-08\", new Date(2012, 0, 8).getTime()],\n      [\"2012-01-15\", new Date(2012, 0, 15).getTime()],\n      [\"2012-01-22\", new Date(2012, 0, 22).getTime()],\n      [\"2012-01-29\", new Date(2012, 0, 29).getTime()],\n      [\"2012-02-05\", new Date(2012, 1, 5).getTime()]\n    ])\n    \n  it 'should generate day intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 0, 6).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2012-01-01\", new Date(2012, 0, 1).getTime()],\n      [\"2012-01-02\", new Date(2012, 0, 2).getTime()],\n      [\"2012-01-03\", new Date(2012, 0, 3).getTime()],\n      [\"2012-01-04\", new Date(2012, 0, 4).getTime()],\n      [\"2012-01-05\", new Date(2012, 0, 5).getTime()],\n      [\"2012-01-06\", new Date(2012, 0, 6).getTime()]\n    ])\n\n  it 'should generate hour intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1, 0).getTime(),\n      new Date(2012, 0, 1, 5).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 0, 1, 0).getTime()],\n      [\"01:00\", new Date(2012, 0, 1, 1).getTime()],\n      [\"02:00\", new Date(2012, 0, 1, 2).getTime()],\n      [\"03:00\", new Date(2012, 0, 1, 3).getTime()],\n      [\"04:00\", new Date(2012, 0, 1, 4).getTime()],\n      [\"05:00\", new Date(2012, 0, 1, 5).getTime()]\n    ])\n\n  it 'should generate half-hour intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1, 0, 0).getTime(),\n      new Date(2012, 0, 1, 2, 30).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 0, 1, 0, 0).getTime()],\n      [\"00:30\", new Date(2012, 0, 1, 0, 30).getTime()],\n      [\"01:00\", new Date(2012, 0, 1, 1, 0).getTime()],\n      [\"01:30\", new Date(2012, 0, 1, 1, 30).getTime()],\n      [\"02:00\", new Date(2012, 0, 1, 2, 0).getTime()],\n      [\"02:30\", new Date(2012, 0, 1, 2, 30).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(2012, 4, 12, 0, 0).getTime(),\n      new Date(2012, 4, 12, 2, 30).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 4, 12, 0, 0).getTime()],\n      [\"00:30\", new Date(2012, 4, 12, 0, 30).getTime()],\n      [\"01:00\", new Date(2012, 4, 12, 1, 0).getTime()],\n      [\"01:30\", new Date(2012, 4, 12, 1, 30).getTime()],\n      [\"02:00\", new Date(2012, 4, 12, 2, 0).getTime()],\n      [\"02:30\", new Date(2012, 4, 12, 2, 30).getTime()]\n    ])\n\n  it 'should generate fifteen-minute intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1, 0, 0).getTime(),\n      new Date(2012, 0, 1, 1, 15).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 0, 1, 0, 0).getTime()],\n      [\"00:15\", new Date(2012, 0, 1, 0, 15).getTime()],\n      [\"00:30\", new Date(2012, 0, 1, 0, 30).getTime()],\n      [\"00:45\", new Date(2012, 0, 1, 0, 45).getTime()],\n      [\"01:00\", new Date(2012, 0, 1, 1, 0).getTime()],\n      [\"01:15\", new Date(2012, 0, 1, 1, 15).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(2012, 4, 12, 0, 0).getTime(),\n      new Date(2012, 4, 12, 1, 15).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 4, 12, 0, 0).getTime()],\n      [\"00:15\", new Date(2012, 4, 12, 0, 15).getTime()],\n      [\"00:30\", new Date(2012, 4, 12, 0, 30).getTime()],\n      [\"00:45\", new Date(2012, 4, 12, 0, 45).getTime()],\n      [\"01:00\", new Date(2012, 4, 12, 1, 0).getTime()],\n      [\"01:15\", new Date(2012, 4, 12, 1, 15).getTime()]\n    ])\n\n  it 'should override automatic intervals', ->\n    Morris.labelSeries(\n      new Date(2011, 11, 12).getTime(),\n      new Date(2012, 0, 12).getTime(),\n      1000,\n      \"year\"\n    ).should.deep.equal([\n      [\"2012\", new Date(2012, 0, 1).getTime()]\n    ])\n\n  it 'should apply custom formatters', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 0, 6).getTime(),\n      1000,\n      \"day\",\n      (d) -> \"#{d.getMonth()+1}/#{d.getDate()}/#{d.getFullYear()}\"\n    ).should.deep.equal([\n      [\"1/1/2012\", new Date(2012, 0, 1).getTime()],\n      [\"1/2/2012\", new Date(2012, 0, 2).getTime()],\n      [\"1/3/2012\", new Date(2012, 0, 3).getTime()],\n      [\"1/4/2012\", new Date(2012, 0, 4).getTime()],\n      [\"1/5/2012\", new Date(2012, 0, 5).getTime()],\n      [\"1/6/2012\", new Date(2012, 0, 6).getTime()]\n    ])\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/line/line_spec.coffee",
    "content": "describe 'Morris.Line', ->\n\n  it 'should raise an error when the placeholder element is not found', ->\n    my_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    fn = ->\n      Morris.Line(\n        element: \"thisplacedoesnotexist\"\n        data: my_data\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n      )\n    fn.should.throw(/Graph container element not found/)\n\n  it 'should make point styles customizable', ->\n    my_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    red = '#ff0000'\n    blue = '#0000ff'\n    chart = Morris.Line\n      element: 'graph'\n      data: my_data\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n      pointStrokeColors: [red, blue]\n      pointStrokeWidths: [1, 2]\n      pointFillColors: [null, red]\n    chart.pointStrokeWidthForSeries(0).should.equal 1\n    chart.pointStrokeColorForSeries(0).should.equal red\n    chart.pointStrokeWidthForSeries(1).should.equal 2\n    chart.pointStrokeColorForSeries(1).should.equal blue\n    chart.colorFor(chart.data[0], 0, 'point').should.equal chart.colorFor(chart.data[0], 0, 'line')\n    chart.colorFor(chart.data[1], 1, 'point').should.equal red\n\n  describe 'generating column labels', ->\n\n    it 'should use user-supplied x value strings by default', ->\n      chart = Morris.Line\n        element: 'graph'\n        data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n      chart.data.map((x) -> x.label).should == ['2012 Q1', '2012 Q2']\n\n    it 'should use a default format for timestamp x-values', ->\n      d1 = new Date(2012, 0, 1)\n      d2 = new Date(2012, 0, 2)\n      chart = Morris.Line\n        element: 'graph'\n        data: [{x: d1.getTime(), y: 1}, {x: d2.getTime(), y: 1}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n      chart.data.map((x) -> x.label).should == [d2.toString(), d1.toString()]\n\n    it 'should use user-defined formatters', ->\n      d = new Date(2012, 0, 1)\n      chart = Morris.Line\n        element: 'graph'\n        data: [{x: d.getTime(), y: 1}, {x: '2012-01-02', y: 1}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n        dateFormat: (d) ->\n          x = new Date(d)\n          \"#{x.getYear()}/#{x.getMonth()+1}/#{x.getDay()}\"\n      chart.data.map((x) -> x.label).should == ['2012/1/1', '2012/1/2']\n\n  describe 'rendering lines', ->\n    beforeEach ->\n      @defaults =\n        element: 'graph'\n        data: [{x:0, y:1, z:0}, {x:1, y:0, z:1}, {x:2, y:1, z:0}, {x:3, y:0, z:1}, {x:4, y:1, z:0}]\n        xkey: 'x'\n        ykeys: ['y', 'z']\n        labels: ['y', 'z']\n        lineColors: ['#abcdef', '#fedcba']\n        smooth: true\n\n    shouldHavePath = (regex, color = '#abcdef') ->\n      # Matches an SVG path element within the rendered chart.\n      #\n      # Sneakily uses line colors to differentiate between paths within\n      # the chart.\n      $('#graph').find(\"path[stroke='#{color}']\").attr('d').should.match regex\n\n    it 'should generate smooth lines when options.smooth is true', ->\n      Morris.Line @defaults\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(C[\\d\\.]+(,[\\d\\.]+){5}){4}/\n\n    it 'should generate jagged lines when options.smooth is false', ->\n      Morris.Line $.extend(@defaults, smooth: false)\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(L[\\d\\.]+,[\\d\\.]+){4}/\n\n    it 'should generate smooth/jagged lines according to the value for each series when options.smooth is an array', ->\n      Morris.Line $.extend(@defaults, smooth: ['y'])\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(C[\\d\\.]+(,[\\d\\.]+){5}){4}/, '#abcdef'\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(L[\\d\\.]+,[\\d\\.]+){4}/, '#fedcba'\n\n    it 'should ignore undefined values', ->\n      @defaults.data[2].y = undefined\n      Morris.Line @defaults\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(C[\\d\\.]+(,[\\d\\.]+){5}){3}/\n\n    it 'should break the line at null values', ->\n      @defaults.data[2].y = null\n      Morris.Line @defaults\n      shouldHavePath /(M[\\d\\.]+,[\\d\\.]+C[\\d\\.]+(,[\\d\\.]+){5}){2}/\n\n    it 'should make line width customizable', ->\n      chart = Morris.Line $.extend(@defaults, lineWidth: [1, 2])\n      chart.lineWidthForSeries(0).should.equal 1\n      chart.lineWidthForSeries(1).should.equal 2\n\n  describe '#createPath', ->\n\n    it 'should generate a smooth line', ->\n      testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: 10}]\n      path = Morris.Line.createPath(testData, true, 20)\n      path.should.equal 'M0,10C2.5,7.5,7.5,0,10,0C12.5,0,17.5,7.5,20,10'\n\n    it 'should generate a jagged line', ->\n      testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: 10}]\n      path = Morris.Line.createPath(testData, false, 20)\n      path.should.equal 'M0,10L10,0L20,10'\n\n    it 'should prevent paths from descending below the bottom of the chart', ->\n      testData = [{x: 0, y: 20}, {x: 10, y: 30}, {x: 20, y: 10}]\n      path = Morris.Line.createPath(testData, true, 30)\n      path.should.equal 'M0,20C2.5,22.5,7.5,30,10,30C12.5,28.75,17.5,15,20,10'\n\n    it 'should break the line at null values', ->\n      testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: null}, {x: 30, y: 10}, {x: 40, y: 0}]\n      path = Morris.Line.createPath(testData, true, 20)\n      path.should.equal 'M0,10C2.5,7.5,7.5,2.5,10,0M30,10C32.5,7.5,37.5,2.5,40,0'\n\n    it 'should ignore leading and trailing null values', ->\n      testData = [{x: 0, y: null}, {x: 10, y: 10}, {x: 20, y: 0}, {x: 30, y: 10}, {x: 40, y: null}]\n      path = Morris.Line.createPath(testData, true, 20)\n      path.should.equal 'M10,10C12.5,7.5,17.5,0,20,0C22.5,0,27.5,7.5,30,10'\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      lineColors: [ '#0b62a4', '#7a92a3']\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n\n    it 'should contain a path that represents the line', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should contain a circle for each data point', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle\").size().should.equal 2\n\n    it 'should contain 5 grid lines', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#aaaaaa']\").size().should.equal 5\n\n    it 'should contain 9 text elements', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 9\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n      lineColors: [ '#0b62a4', '#7a92a3']\n      lineWidth: 3\n      pointStrokeWidths: [5]\n      pointStrokeColors: ['#ffffff']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n      pointSize: [5]\n\n    it 'should have circles with configured fill color', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[fill='#0b62a4']\").size().should.equal 2\n\n    it 'should have circles with configured stroke width', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[stroke-width='5']\").size().should.equal 2\n\n    it 'should have circles with configured stroke color', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[stroke='#ffffff']\").size().should.equal 2\n\n    it 'should have line with configured line width', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"path[stroke-width='3']\").size().should.equal 1\n\n    it 'should have text with configured font size', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"text[font-size='12px']\").size().should.equal 9\n\n    it 'should have text with configured font size', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"text[fill='#888888']\").size().should.equal 9\n\n    it 'should have circle with configured size', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[r='5']\").size().should.equal 2\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/pad_spec.coffee",
    "content": "describe '#pad', ->\n\n  it 'should pad numbers', ->\n    Morris.pad2(0).should.equal(\"00\")\n    Morris.pad2(1).should.equal(\"01\")\n    Morris.pad2(2).should.equal(\"02\")\n    Morris.pad2(3).should.equal(\"03\")\n    Morris.pad2(4).should.equal(\"04\")\n    Morris.pad2(5).should.equal(\"05\")\n    Morris.pad2(6).should.equal(\"06\")\n    Morris.pad2(7).should.equal(\"07\")\n    Morris.pad2(8).should.equal(\"08\")\n    Morris.pad2(9).should.equal(\"09\")\n    Morris.pad2(10).should.equal(\"10\")\n    Morris.pad2(12).should.equal(\"12\")\n    Morris.pad2(34).should.equal(\"34\")\n    Morris.pad2(123).should.equal(\"123\")"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/lib/parse_time_spec.coffee",
    "content": "describe '#parseTime', ->\n\n  it 'should parse years', ->\n    Morris.parseDate('2012').should.equal(new Date(2012, 0, 1).getTime())\n\n  it 'should parse quarters', ->\n    Morris.parseDate('2012 Q1').should.equal(new Date(2012, 2, 1).getTime())\n\n  it 'should parse months', ->\n    Morris.parseDate('2012-09').should.equal(new Date(2012, 8, 1).getTime())\n    Morris.parseDate('2012-10').should.equal(new Date(2012, 9, 1).getTime())\n\n  it 'should parse dates', ->\n    Morris.parseDate('2012-09-15').should.equal(new Date(2012, 8, 15).getTime())\n    Morris.parseDate('2012-10-15').should.equal(new Date(2012, 9, 15).getTime())\n\n  it 'should parse times', ->\n    Morris.parseDate(\"2012-10-15 12:34\").should.equal(new Date(2012, 9, 15, 12, 34).getTime())\n    Morris.parseDate(\"2012-10-15T12:34\").should.equal(new Date(2012, 9, 15, 12, 34).getTime())\n    Morris.parseDate(\"2012-10-15 12:34:55\").should.equal(new Date(2012, 9, 15, 12, 34, 55).getTime())\n    Morris.parseDate(\"2012-10-15T12:34:55\").should.equal(new Date(2012, 9, 15, 12, 34, 55).getTime())\n\n  it 'should parse times with timezones', ->\n    Morris.parseDate(\"2012-10-15T12:34+0100\").should.equal(Date.UTC(2012, 9, 15, 11, 34))\n    Morris.parseDate(\"2012-10-15T12:34+02:00\").should.equal(Date.UTC(2012, 9, 15, 10, 34))\n    Morris.parseDate(\"2012-10-15T12:34-0100\").should.equal(Date.UTC(2012, 9, 15, 13, 34))\n    Morris.parseDate(\"2012-10-15T12:34-02:00\").should.equal(Date.UTC(2012, 9, 15, 14, 34))\n    Morris.parseDate(\"2012-10-15T12:34:55Z\").should.equal(Date.UTC(2012, 9, 15, 12, 34, 55))\n    Morris.parseDate(\"2012-10-15T12:34:55+0600\").should.equal(Date.UTC(2012, 9, 15, 6, 34, 55))\n    Morris.parseDate(\"2012-10-15T12:34:55+04:00\").should.equal(Date.UTC(2012, 9, 15, 8, 34, 55))\n    Morris.parseDate(\"2012-10-15T12:34:55-0600\").should.equal(Date.UTC(2012, 9, 15, 18, 34, 55))\n\n  it 'should pass-through timestamps', ->\n    Morris.parseDate(new Date(2012, 9, 15, 12, 34, 55, 123).getTime())\n      .should.equal(new Date(2012, 9, 15, 12, 34, 55, 123).getTime())"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/specs.html",
    "content": "<!doctype html>\n\n<head>\n    <meta charset=\"utf-8\">\n    <title>morris.js tests</title>\n    <link rel=\"stylesheet\" href=\"../bower_components/mocha/mocha.css\" type=\"text/css\" media=\"screen\" />\n    <link rel=\"stylesheet\" href=\"../morris.css\" type=\"text/css\" media=\"screen\" />\n    <!-- jQuery packaging changed for 2.1.0, so try to load both paths, one will work. -->\n    <script src=\"../bower_components/jquery/dist/jquery.js\"></script>\n    <script src=\"../bower_components/jquery/jquery.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/raphael/raphael-min.js\"></script>\n</head>\n\n<body>\n    <div id=\"mocha\"></div>\n    <script type=\"text/javascript\" src=\"../bower_components/mocha/mocha.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/chai/chai.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/chai-jquery/chai-jquery.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/sinon/index.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/sinon-chai/lib/sinon-chai.js\"></script>\n    <script>\n        mocha.setup('bdd');\n        should = chai.should();\n    </script>\n    <script type=\"text/javascript\" src=\"../morris.js\"></script>\n    <script type=\"text/javascript\" src=\"../build/spec.js\"></script>\n    <div id=\"test\" style=\"width: 400px; height: 200px;\"></div>\n    <script>\n        if (navigator.userAgent.indexOf('PhantomJS') < 0)\n        {\n            mocha.run();\n        }\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/support/placeholder.coffee",
    "content": "beforeEach ->\n  placeholder = $('<div id=\"graph\" style=\"width: 600px; height: 400px\"></div>')\n  $('#test').append(placeholder)\n\nafterEach ->\n  $('#test').empty()\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/viz/examples.js",
    "content": "var webpage = require(\"webpage\"),\n    fs = require(\"fs\");\n\nvar html_path = fs.absolute(\"test.html\");\nvar examples = [];\n\nfunction run_example(example_index) {\n  if (example_index >= examples.length) {\n    phantom.exit(0);\n    return;\n  }\n\n  var example = examples[example_index];\n  var snapshot_index = 0;\n  var page = webpage.create();\n\n  page.viewportSize = { width: 500, height: 300 };\n  page.clipRect = { width: 500, height: 300 };\n  page.onAlert = function (msg) {\n    var e = JSON.parse(msg);\n    if (e.fn == \"snapshot\") {\n      page.render(\"output/\" + example.name + snapshot_index + \".png\");\n      snapshot_index += 1;\n    } else if (e.fn == \"mousemove\") {\n      page.sendEvent(\"mousemove\", e.x, e.y);\n    }\n  };\n\n  page.open(html_path, function (status) {\n    if (status == \"fail\") {\n      console.log(\"Failed to load test page: \" + example.name);\n      phantom.exit(1);\n    } else {\n      page.evaluate(example.runner);\n    }\n    page.close();\n    run_example(example_index + 1);\n  });\n}\n\nexports.def = function (name, runner) {\n  examples.push({ name: name, runner: runner });\n};\n\nexports.run = function () {\n  if (fs.isDirectory(\"output\")) {\n    fs.list(\"output\").forEach(function (path) {\n      if (path != \".\" && path != \"..\") {\n        fs.remove(\"output/\" + path);\n      }\n    });\n  } else {\n    fs.makeDirectory(\"output\");\n  }\n  run_example(0);\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/viz/run.sh",
    "content": "#!/bin/sh\n\n# visual_specs.js creates output in output/XXX.png\nphantomjs visual_specs.js\n\n# clear out old diffs\nmkdir -p diff\nrm -f diff/*\n\n# generate diffs\nPASS=1\nfor i in exemplary/*.png\ndo\n  FN=`basename $i`\n  perceptualdiff $i output/$FN -output diff/$FN\n  if [ $? -eq 0 ]\n  then\n    echo \"OK:   $FN\"\n  else\n    echo \"FAIL: $FN\"\n    PASS=0\n  fi\ndone\n\n# pass / fail\nif [ $PASS -eq 1 ]\nthen\n  echo \"Success.\"\nelse\n  echo \"Failed.\"\n  exit 1\nfi\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/viz/test.html",
    "content": "<!doctype html>\n\n<head>\n    <!-- jQuery packaging changed for 2.1.0, so try to load both paths, one will work. -->\n    <script src=\"../../bower_components/jquery/dist/jquery.js\"></script>\n    <script src=\"../../bower_components/jquery/jquery.js\"></script>\n    <script src=\"../../bower_components/raphael/raphael-min.js\"></script>\n    <script src=\"../../morris.js\"></script>\n    <link rel=\"stylesheet\" href=\"../../morris.css\">\n    <style>\n        body {\n            padding: 0;\n            margin: 0;\n            background-color: white;\n        }\n        \n        #chart {\n            width: 500px;\n            height: 300px;\n        }\n    </style>\n    <script>\n        function bridge(e)\n        {\n            window.alert(JSON.stringify(e));\n        }\n        window.snapshot = function()\n        {\n            bridge(\n            {\n                fn: \"snapshot\"\n            });\n        };\n        window.mousemove = function(x, y)\n        {\n            bridge(\n            {\n                fn: \"mousemove\",\n                x: x,\n                y: y\n            });\n        };\n    </script>\n</head>\n\n<body>\n    <div id=\"chart\"></div>\n</body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/morris/spec/viz/visual_specs.js",
    "content": "var examples = require('./examples');\n\nexamples.def('line', function () {\n  Morris.Line({\n    element: 'chart',\n    data: [\n      { x: 0, y: 10, z: 30 }, { x: 1, y: 20, z: 20 },\n      { x: 2, y: 30, z: 10 }, { x: 3, y: 30, z: 10 },\n      { x: 4, y: 20, z: 20 }, { x: 5, y: 10, z: 30 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z'],\n    parseTime: false\n  });\n  window.snapshot();\n});\n\nexamples.def('area', function () {\n  Morris.Area({\n    element: 'chart',\n    data: [\n      { x: 0, y: 1, z: 1 }, { x: 1, y: 2, z: 1 },\n      { x: 2, y: 3, z: 1 }, { x: 3, y: 3, z: 1 },\n      { x: 4, y: 2, z: 1 }, { x: 5, y: 1, z: 1 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z'],\n    parseTime: false\n  });\n  window.snapshot();\n});\n\nexamples.def('bar', function () {\n  Morris.Bar({\n    element: 'chart',\n    data: [\n      { x: 0, y: 1, z: 3 }, { x: 1, y: 2, z: 2 },\n      { x: 2, y: 3, z: 1 }, { x: 3, y: 3, z: 1 },\n      { x: 4, y: 2, z: 2 }, { x: 5, y: 1, z: 3 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z']\n  });\n  window.snapshot();\n});\n\nexamples.def('stacked_bar', function () {\n  Morris.Bar({\n    element: 'chart',\n    data: [\n      { x: 0, y: 1, z: 1 }, { x: 1, y: 2, z: 1 },\n      { x: 2, y: 3, z: 1 }, { x: 3, y: 3, z: 1 },\n      { x: 4, y: 2, z: 1 }, { x: 5, y: 1, z: 1 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z'],\n    stacked: true\n  });\n  window.snapshot();\n});\n\nexamples.run();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/css/select2.css",
    "content": ".select2-container {\n  box-sizing: border-box;\n  display: inline-block;\n  margin: 0;\n  position: relative;\n  vertical-align: middle; }\n  .select2-container .select2-selection--single {\n    box-sizing: border-box;\n    cursor: pointer;\n    display: block;\n    height: 28px;\n    user-select: none;\n    -webkit-user-select: none; }\n    .select2-container .select2-selection--single .select2-selection__rendered {\n      display: block;\n      padding-left: 8px;\n      padding-right: 20px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap; }\n    .select2-container .select2-selection--single .select2-selection__clear {\n      position: relative; }\n  .select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n    padding-right: 8px;\n    padding-left: 20px; }\n  .select2-container .select2-selection--multiple {\n    box-sizing: border-box;\n    cursor: pointer;\n    display: block;\n    min-height: 32px;\n    user-select: none;\n    -webkit-user-select: none; }\n    .select2-container .select2-selection--multiple .select2-selection__rendered {\n      display: inline-block;\n      overflow: hidden;\n      padding-left: 8px;\n      text-overflow: ellipsis;\n      white-space: nowrap; }\n  .select2-container .select2-search--inline {\n    float: left; }\n    .select2-container .select2-search--inline .select2-search__field {\n      box-sizing: border-box;\n      border: none;\n      font-size: 100%;\n      margin-top: 5px;\n      padding: 0; }\n      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\n        -webkit-appearance: none; }\n\n.select2-dropdown {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  box-sizing: border-box;\n  display: block;\n  position: absolute;\n  left: -100000px;\n  width: 100%;\n  z-index: 1051; }\n\n.select2-results {\n  display: block; }\n\n.select2-results__options {\n  list-style: none;\n  margin: 0;\n  padding: 0; }\n\n.select2-results__option {\n  padding: 6px;\n  user-select: none;\n  -webkit-user-select: none; }\n  .select2-results__option[aria-selected] {\n    cursor: pointer; }\n\n.select2-container--open .select2-dropdown {\n  left: 0; }\n\n.select2-container--open .select2-dropdown--above {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--open .select2-dropdown--below {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-search--dropdown {\n  display: block;\n  padding: 4px; }\n  .select2-search--dropdown .select2-search__field {\n    padding: 4px;\n    width: 100%;\n    box-sizing: border-box; }\n    .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\n      -webkit-appearance: none; }\n  .select2-search--dropdown.select2-search--hide {\n    display: none; }\n\n.select2-close-mask {\n  border: 0;\n  margin: 0;\n  padding: 0;\n  display: block;\n  position: fixed;\n  left: 0;\n  top: 0;\n  min-height: 100%;\n  min-width: 100%;\n  height: auto;\n  width: auto;\n  opacity: 0;\n  z-index: 99;\n  background-color: #fff;\n  filter: alpha(opacity=0); }\n\n.select2-hidden-accessible {\n  border: 0 !important;\n  clip: rect(0 0 0 0) !important;\n  height: 1px !important;\n  margin: -1px !important;\n  overflow: hidden !important;\n  padding: 0 !important;\n  position: absolute !important;\n  width: 1px !important; }\n\n.select2-container--default .select2-selection--single {\n  background-color: #fff;\n  border: 1px solid #aaa;\n  border-radius: 4px; }\n  .select2-container--default .select2-selection--single .select2-selection__rendered {\n    color: #444;\n    line-height: 28px; }\n  .select2-container--default .select2-selection--single .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold; }\n  .select2-container--default .select2-selection--single .select2-selection__placeholder {\n    color: #999; }\n  .select2-container--default .select2-selection--single .select2-selection__arrow {\n    height: 26px;\n    position: absolute;\n    top: 1px;\n    right: 1px;\n    width: 20px; }\n    .select2-container--default .select2-selection--single .select2-selection__arrow b {\n      border-color: #888 transparent transparent transparent;\n      border-style: solid;\n      border-width: 5px 4px 0 4px;\n      height: 0;\n      left: 50%;\n      margin-left: -4px;\n      margin-top: -2px;\n      position: absolute;\n      top: 50%;\n      width: 0; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\n  float: left; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\n  left: 1px;\n  right: auto; }\n\n.select2-container--default.select2-container--disabled .select2-selection--single {\n  background-color: #eee;\n  cursor: default; }\n  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\n    display: none; }\n\n.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\n  border-color: transparent transparent #888 transparent;\n  border-width: 0 4px 5px 4px; }\n\n.select2-container--default .select2-selection--multiple {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  cursor: text; }\n  .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n    box-sizing: border-box;\n    list-style: none;\n    margin: 0;\n    padding: 0 5px;\n    width: 100%; }\n    .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n      list-style: none; }\n  .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\n    color: #999;\n    margin-top: 5px;\n    float: left; }\n  .select2-container--default .select2-selection--multiple .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold;\n    margin-top: 5px;\n    margin-right: 10px; }\n  .select2-container--default .select2-selection--multiple .select2-selection__choice {\n    background-color: #e4e4e4;\n    border: 1px solid #aaa;\n    border-radius: 4px;\n    cursor: default;\n    float: left;\n    margin-right: 5px;\n    margin-top: 5px;\n    padding: 0 5px; }\n  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n    color: #999;\n    cursor: pointer;\n    display: inline-block;\n    font-weight: bold;\n    margin-right: 2px; }\n    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n      color: #333; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-search--inline {\n  float: right; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  margin-left: 5px;\n  margin-right: auto; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\n  margin-left: 2px;\n  margin-right: auto; }\n\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border: solid black 1px;\n  outline: 0; }\n\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\n  background-color: #eee;\n  cursor: default; }\n\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\n  display: none; }\n\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--default .select2-search--dropdown .select2-search__field {\n  border: 1px solid #aaa; }\n\n.select2-container--default .select2-search--inline .select2-search__field {\n  background: transparent;\n  border: none;\n  outline: 0;\n  box-shadow: none;\n  -webkit-appearance: textfield; }\n\n.select2-container--default .select2-results > .select2-results__options {\n  max-height: 200px;\n  overflow-y: auto; }\n\n.select2-container--default .select2-results__option[role=group] {\n  padding: 0; }\n\n.select2-container--default .select2-results__option[aria-disabled=true] {\n  color: #999; }\n\n.select2-container--default .select2-results__option[aria-selected=true] {\n  background-color: #ddd; }\n\n.select2-container--default .select2-results__option .select2-results__option {\n  padding-left: 1em; }\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\n    padding-left: 0; }\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\n    margin-left: -1em;\n    padding-left: 2em; }\n    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n      margin-left: -2em;\n      padding-left: 3em; }\n      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n        margin-left: -3em;\n        padding-left: 4em; }\n        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n          margin-left: -4em;\n          padding-left: 5em; }\n          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n            margin-left: -5em;\n            padding-left: 6em; }\n\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n  background-color: #5897fb;\n  color: white; }\n\n.select2-container--default .select2-results__group {\n  cursor: default;\n  display: block;\n  padding: 6px; }\n\n.select2-container--classic .select2-selection--single {\n  background-color: #f7f7f7;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  outline: 0;\n  background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);\n  background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);\n  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\n  .select2-container--classic .select2-selection--single:focus {\n    border: 1px solid #5897fb; }\n  .select2-container--classic .select2-selection--single .select2-selection__rendered {\n    color: #444;\n    line-height: 28px; }\n  .select2-container--classic .select2-selection--single .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold;\n    margin-right: 10px; }\n  .select2-container--classic .select2-selection--single .select2-selection__placeholder {\n    color: #999; }\n  .select2-container--classic .select2-selection--single .select2-selection__arrow {\n    background-color: #ddd;\n    border: none;\n    border-left: 1px solid #aaa;\n    border-top-right-radius: 4px;\n    border-bottom-right-radius: 4px;\n    height: 26px;\n    position: absolute;\n    top: 1px;\n    right: 1px;\n    width: 20px;\n    background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\n    background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\n    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }\n    .select2-container--classic .select2-selection--single .select2-selection__arrow b {\n      border-color: #888 transparent transparent transparent;\n      border-style: solid;\n      border-width: 5px 4px 0 4px;\n      height: 0;\n      left: 50%;\n      margin-left: -4px;\n      margin-top: -2px;\n      position: absolute;\n      top: 50%;\n      width: 0; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\n  float: left; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\n  border: none;\n  border-right: 1px solid #aaa;\n  border-radius: 0;\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n  left: 1px;\n  right: auto; }\n\n.select2-container--classic.select2-container--open .select2-selection--single {\n  border: 1px solid #5897fb; }\n  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {\n    background: transparent;\n    border: none; }\n    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {\n      border-color: transparent transparent #888 transparent;\n      border-width: 0 4px 5px 4px; }\n\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);\n  background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);\n  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\n\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n  background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);\n  background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);\n  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }\n\n.select2-container--classic .select2-selection--multiple {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  cursor: text;\n  outline: 0; }\n  .select2-container--classic .select2-selection--multiple:focus {\n    border: 1px solid #5897fb; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {\n    list-style: none;\n    margin: 0;\n    padding: 0 5px; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__clear {\n    display: none; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice {\n    background-color: #e4e4e4;\n    border: 1px solid #aaa;\n    border-radius: 4px;\n    cursor: default;\n    float: left;\n    margin-right: 5px;\n    margin-top: 5px;\n    padding: 0 5px; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {\n    color: #888;\n    cursor: pointer;\n    display: inline-block;\n    font-weight: bold;\n    margin-right: 2px; }\n    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {\n      color: #555; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  float: right; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  margin-left: 5px;\n  margin-right: auto; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\n  margin-left: 2px;\n  margin-right: auto; }\n\n.select2-container--classic.select2-container--open .select2-selection--multiple {\n  border: 1px solid #5897fb; }\n\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--classic .select2-search--dropdown .select2-search__field {\n  border: 1px solid #aaa;\n  outline: 0; }\n\n.select2-container--classic .select2-search--inline .select2-search__field {\n  outline: 0;\n  box-shadow: none; }\n\n.select2-container--classic .select2-dropdown {\n  background-color: white;\n  border: 1px solid transparent; }\n\n.select2-container--classic .select2-dropdown--above {\n  border-bottom: none; }\n\n.select2-container--classic .select2-dropdown--below {\n  border-top: none; }\n\n.select2-container--classic .select2-results > .select2-results__options {\n  max-height: 200px;\n  overflow-y: auto; }\n\n.select2-container--classic .select2-results__option[role=group] {\n  padding: 0; }\n\n.select2-container--classic .select2-results__option[aria-disabled=true] {\n  color: grey; }\n\n.select2-container--classic .select2-results__option--highlighted[aria-selected] {\n  background-color: #3875d7;\n  color: white; }\n\n.select2-container--classic .select2-results__group {\n  cursor: default;\n  display: block;\n  padding: 6px; }\n\n.select2-container--classic.select2-container--open .select2-dropdown {\n  border-color: #5897fb; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/ar.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ar\",[],function(){return{errorLoading:function(){return\"لا يمكن تحميل النتائج\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"الرجاء حذف \"+t+\" عناصر\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"الرجاء إضافة \"+t+\" عناصر\";return n},loadingMore:function(){return\"جاري تحميل نتائج إضافية...\"},maximumSelected:function(e){var t=\"تستطيع إختيار \"+e.maximum+\" بنود فقط\";return t},noResults:function(){return\"لم يتم العثور على أي نتائج\"},searching:function(){return\"جاري البحث…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/az.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/az\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+\" simvol silin\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+\" simvol daxil edin\"},loadingMore:function(){return\"Daha çox nəticə yüklənir…\"},maximumSelected:function(e){return\"Sadəcə \"+e.maximum+\" element seçə bilərsiniz\"},noResults:function(){return\"Nəticə tapılmadı\"},searching:function(){return\"Axtarılır…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/bg.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/bg\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Моля въведете с \"+t+\" по-малко символ\";return t>1&&(n+=\"a\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Моля въведете още \"+t+\" символ\";return t>1&&(n+=\"a\"),n},loadingMore:function(){return\"Зареждат се още…\"},maximumSelected:function(e){var t=\"Можете да направите до \"+e.maximum+\" \";return e.maximum>1?t+=\"избора\":t+=\"избор\",t},noResults:function(){return\"Няма намерени съвпадения\"},searching:function(){return\"Търсене…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/ca.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ca\",[],function(){return{errorLoading:function(){return\"La càrrega ha fallat\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Si us plau, elimina \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Si us plau, introdueix \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},loadingMore:function(){return\"Carregant més resultats…\"},maximumSelected:function(e){var t=\"Només es pot seleccionar \"+e.maximum+\" element\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No s'han trobat resultats\"},searching:function(){return\"Cercant…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/cs.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/cs\",[],function(){function e(e,t){switch(e){case 2:return t?\"dva\":\"dvě\";case 3:return\"tři\";case 4:return\"čtyři\"}return\"\"}return{errorLoading:function(){return\"Výsledky nemohly být načteny.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím zadejte o jeden znak méně\":n<=4?\"Prosím zadejte o \"+e(n,!0)+\" znaky méně\":\"Prosím zadejte o \"+n+\" znaků méně\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím zadejte ještě jeden znak\":n<=4?\"Prosím zadejte ještě další \"+e(n,!0)+\" znaky\":\"Prosím zadejte ještě dalších \"+n+\" znaků\"},loadingMore:function(){return\"Načítají se další výsledky…\"},maximumSelected:function(t){var n=t.maximum;return n==1?\"Můžete zvolit jen jednu položku\":n<=4?\"Můžete zvolit maximálně \"+e(n,!1)+\" položky\":\"Můžete zvolit maximálně \"+n+\" položek\"},noResults:function(){return\"Nenalezeny žádné položky\"},searching:function(){return\"Vyhledávání…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/da.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/da\",[],function(){return{errorLoading:function(){return\"Resultaterne kunne ikke indlæses.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Angiv venligst \"+t+\" tegn mindre\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Angiv venligst \"+t+\" tegn mere\";return n},loadingMore:function(){return\"Indlæser flere resultater…\"},maximumSelected:function(e){var t=\"Du kan kun vælge \"+e.maximum+\" emne\";return e.maximum!=1&&(t+=\"r\"),t},noResults:function(){return\"Ingen resultater fundet\"},searching:function(){return\"Søger…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/de.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/de\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Bitte \"+t+\" Zeichen weniger eingeben\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Bitte \"+t+\" Zeichen mehr eingeben\"},loadingMore:function(){return\"Lade mehr Ergebnisse…\"},maximumSelected:function(e){var t=\"Sie können nur \"+e.maximum+\" Eintr\";return e.maximum===1?t+=\"ag\":t+=\"äge\",t+=\" auswählen\",t},noResults:function(){return\"Keine Übereinstimmungen gefunden\"},searching:function(){return\"Suche…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/el.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/el\",[],function(){return{errorLoading:function(){return\"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Παρακαλώ διαγράψτε \"+t+\" χαρακτήρ\";return t==1&&(n+=\"α\"),t!=1&&(n+=\"ες\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Παρακαλώ συμπληρώστε \"+t+\" ή περισσότερους χαρακτήρες\";return n},loadingMore:function(){return\"Φόρτωση περισσότερων αποτελεσμάτων…\"},maximumSelected:function(e){var t=\"Μπορείτε να επιλέξετε μόνο \"+e.maximum+\" επιλογ\";return e.maximum==1&&(t+=\"ή\"),e.maximum!=1&&(t+=\"ές\"),t},noResults:function(){return\"Δεν βρέθηκαν αποτελέσματα\"},searching:function(){return\"Αναζήτηση…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/en.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/en\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Please delete \"+t+\" character\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Please enter \"+t+\" or more characters\";return n},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/es.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/es\",[],function(){return{errorLoading:function(){return\"La carga falló\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor, elimine \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Por favor, introduzca \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},loadingMore:function(){return\"Cargando más resultados…\"},maximumSelected:function(e){var t=\"Sólo puede seleccionar \"+e.maximum+\" elemento\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No se encontraron resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/et.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/et\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" vähem\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" rohkem\",n},loadingMore:function(){return\"Laen tulemusi…\"},maximumSelected:function(e){var t=\"Saad vaid \"+e.maximum+\" tulemus\";return e.maximum==1?t+=\"e\":t+=\"t\",t+=\" valida\",t},noResults:function(){return\"Tulemused puuduvad\"},searching:function(){return\"Otsin…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/eu.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/eu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gutxiago\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gehiago\",n},loadingMore:function(){return\"Emaitza gehiago kargatzen…\"},maximumSelected:function(e){return e.maximum===1?\"Elementu bakarra hauta dezakezu\":e.maximum+\" elementu hauta ditzakezu soilik\"},noResults:function(){return\"Ez da bat datorrenik aurkitu\"},searching:function(){return\"Bilatzen…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/fa.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fa\",[],function(){return{errorLoading:function(){return\"امکان بارگذاری نتایج وجود ندارد.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"لطفاً \"+t+\" کاراکتر را حذف نمایید\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"لطفاً تعداد \"+t+\" کاراکتر یا بیشتر وارد نمایید\";return n},loadingMore:function(){return\"در حال بارگذاری نتایج بیشتر...\"},maximumSelected:function(e){var t=\"شما تنها می‌توانید \"+e.maximum+\" آیتم را انتخاب نمایید\";return t},noResults:function(){return\"هیچ نتیجه‌ای یافت نشد\"},searching:function(){return\"در حال جستجو...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/fi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fi\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Ole hyvä ja anna \"+t+\" merkkiä vähemmän\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Ole hyvä ja anna \"+t+\" merkkiä lisää\"},loadingMore:function(){return\"Ladataan lisää tuloksia…\"},maximumSelected:function(e){return\"Voit valita ainoastaan \"+e.maximum+\" kpl\"},noResults:function(){return\"Ei tuloksia\"},searching:function(){}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/fr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fr\",[],function(){return{errorLoading:function(){return\"Les résultats ne peuvent pas être chargés.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Supprimez \"+t+\" caractère\";return t!==1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Saisissez \"+t+\" caractère\";return t!==1&&(n+=\"s\"),n},loadingMore:function(){return\"Chargement de résultats supplémentaires…\"},maximumSelected:function(e){var t=\"Vous pouvez seulement sélectionner \"+e.maximum+\" élément\";return e.maximum!==1&&(t+=\"s\"),t},noResults:function(){return\"Aucun résultat trouvé\"},searching:function(){return\"Recherche en cours…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/gl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/gl\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Elimine \";return t===1?n+=\"un carácter\":n+=t+\" caracteres\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Engada \";return t===1?n+=\"un carácter\":n+=t+\" caracteres\",n},loadingMore:function(){return\"Cargando máis resultados…\"},maximumSelected:function(e){var t=\"Só pode \";return e.maximum===1?t+=\"un elemento\":t+=e.maximum+\" elementos\",t},noResults:function(){return\"Non se atoparon resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/he.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/he\",[],function(){return{errorLoading:function(){return\"שגיאה בטעינת התוצאות\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"נא למחוק \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"נא להכניס \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n+=\" או יותר\",n},loadingMore:function(){return\"טוען תוצאות נוספות…\"},maximumSelected:function(e){var t=\"באפשרותך לבחור עד \";return e.maximum===1?t+=\"פריט אחד\":t+=e.maximum+\" פריטים\",t},noResults:function(){return\"לא נמצאו תוצאות\"},searching:function(){return\"מחפש…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/hi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hi\",[],function(){return{errorLoading:function(){return\"परिणामों को लोड नहीं किया जा सका।\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" अक्षर को हटा दें\";return t>1&&(n=t+\" अक्षरों को हटा दें \"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"कृपया \"+t+\" या अधिक अक्षर दर्ज करें\";return n},loadingMore:function(){return\"अधिक परिणाम लोड हो रहे है...\"},maximumSelected:function(e){var t=\"आप केवल \"+e.maximum+\" आइटम का चयन कर सकते हैं\";return t},noResults:function(){return\"कोई परिणाम नहीं मिला\"},searching:function(){return\"खोज रहा है...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/hr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hr\",[],function(){function e(e){var t=\" \"+e+\" znak\";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+=\"a\"):t+=\"ova\",t}return{errorLoading:function(){return\"Preuzimanje nije uspjelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Unesite \"+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return\"Unesite još \"+e(n)},loadingMore:function(){return\"Učitavanje rezultata…\"},maximumSelected:function(e){return\"Maksimalan broj odabranih stavki je \"+e.maximum},noResults:function(){return\"Nema rezultata\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/hu.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Túl hosszú. \"+t+\" karakterrel több, mint kellene.\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Túl rövid. Még \"+t+\" karakter hiányzik.\"},loadingMore:function(){return\"Töltés…\"},maximumSelected:function(e){return\"Csak \"+e.maximum+\" elemet lehet kiválasztani.\"},noResults:function(){return\"Nincs találat.\"},searching:function(){return\"Keresés…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/id.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/id\",[],function(){return{errorLoading:function(){return\"Data tidak boleh diambil.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Hapuskan \"+t+\" huruf\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Masukkan \"+t+\" huruf lagi\"},loadingMore:function(){return\"Mengambil data…\"},maximumSelected:function(e){return\"Anda hanya dapat memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tidak ada data yang sesuai\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/is.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/is\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vinsamlegast styttið texta um \"+t+\" staf\";return t<=1?n:n+\"i\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vinsamlegast skrifið \"+t+\" staf\";return t>1&&(n+=\"i\"),n+=\" í viðbót\",n},loadingMore:function(){return\"Sæki fleiri niðurstöður…\"},maximumSelected:function(e){return\"Þú getur aðeins valið \"+e.maximum+\" atriði\"},noResults:function(){return\"Ekkert fannst\"},searching:function(){return\"Leita…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/it.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/it\",[],function(){return{errorLoading:function(){return\"I risultati non possono essere caricati.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Per favore cancella \"+t+\" caratter\";return t!==1?n+=\"i\":n+=\"e\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Per favore inserisci \"+t+\" o più caratteri\";return n},loadingMore:function(){return\"Caricando più risultati…\"},maximumSelected:function(e){var t=\"Puoi selezionare solo \"+e.maximum+\" element\";return e.maximum!==1?t+=\"i\":t+=\"o\",t},noResults:function(){return\"Nessun risultato trovato\"},searching:function(){return\"Sto cercando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/ja.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ja\",[],function(){return{errorLoading:function(){return\"結果が読み込まれませんでした\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" 文字を削除してください\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"少なくとも \"+t+\" 文字を入力してください\";return n},loadingMore:function(){return\"読み込み中…\"},maximumSelected:function(e){var t=e.maximum+\" 件しか選択できません\";return t},noResults:function(){return\"対象が見つかりません\"},searching:function(){return\"検索しています…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/km.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/km\",[],function(){return{errorLoading:function(){return\"មិនអាចទាញយកទិន្នន័យ\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"សូមលុបចេញ  \"+t+\" អក្សរ\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"សូមបញ្ចូល\"+t+\" អក្សរ រឺ ច្រើនជាងនេះ\";return n},loadingMore:function(){return\"កំពុងទាញយកទិន្នន័យបន្ថែម...\"},maximumSelected:function(e){var t=\"អ្នកអាចជ្រើសរើសបានតែ \"+e.maximum+\" ជម្រើសប៉ុណ្ណោះ\";return t},noResults:function(){return\"មិនមានលទ្ធផល\"},searching:function(){return\"កំពុងស្វែងរក...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/ko.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ko\",[],function(){return{errorLoading:function(){return\"결과를 불러올 수 없습니다.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"너무 깁니다. \"+t+\" 글자 지워주세요.\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"너무 짧습니다. \"+t+\" 글자 더 입력해주세요.\";return n},loadingMore:function(){return\"불러오는 중…\"},maximumSelected:function(e){var t=\"최대 \"+e.maximum+\"개까지만 선택 가능합니다.\";return t},noResults:function(){return\"결과가 없습니다.\"},searching:function(){return\"검색 중…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/lt.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/lt\",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Pašalinkite \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Įrašykite dar \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},loadingMore:function(){return\"Kraunama daugiau rezultatų…\"},maximumSelected:function(t){var n=\"Jūs galite pasirinkti tik \"+t.maximum+\" element\";return n+=e(t.maximum,\"ą\",\"us\",\"ų\"),n},noResults:function(){return\"Atitikmenų nerasta\"},searching:function(){return\"Ieškoma…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/lv.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/lv\",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Lūdzu ievadiet par  \"+n;return r+=\" simbol\"+e(n,\"iem\",\"u\",\"iem\"),r+\" mazāk\"},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Lūdzu ievadiet vēl \"+n;return r+=\" simbol\"+e(n,\"us\",\"u\",\"us\"),r},loadingMore:function(){return\"Datu ielāde…\"},maximumSelected:function(t){var n=\"Jūs varat izvēlēties ne vairāk kā \"+t.maximum;return n+=\" element\"+e(t.maximum,\"us\",\"u\",\"us\"),n},noResults:function(){return\"Sakritību nav\"},searching:function(){return\"Meklēšana…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/mk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/mk\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Ве молиме внесете \"+e.maximum+\" помалку карактер\";return e.maximum!==1&&(n+=\"и\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Ве молиме внесете уште \"+e.maximum+\" карактер\";return e.maximum!==1&&(n+=\"и\"),n},loadingMore:function(){return\"Вчитување резултати…\"},maximumSelected:function(e){var t=\"Можете да изберете само \"+e.maximum+\" ставк\";return e.maximum===1?t+=\"а\":t+=\"и\",t},noResults:function(){return\"Нема пронајдено совпаѓања\"},searching:function(){return\"Пребарување…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/ms.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ms\",[],function(){return{errorLoading:function(){return\"Keputusan tidak berjaya dimuatkan.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Sila hapuskan \"+t+\" aksara\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Sila masukkan \"+t+\" atau lebih aksara\"},loadingMore:function(){return\"Sedang memuatkan keputusan…\"},maximumSelected:function(e){return\"Anda hanya boleh memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tiada padanan yang ditemui\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/nb.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/nb\",[],function(){return{errorLoading:function(){return\"Kunne ikke hente resultater.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Vennligst fjern \"+t+\" tegn\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vennligst skriv inn \";return t>1?n+=\" flere tegn\":n+=\" tegn til\",n},loadingMore:function(){return\"Laster flere resultater…\"},maximumSelected:function(e){return\"Du kan velge maks \"+e.maximum+\" elementer\"},noResults:function(){return\"Ingen treff\"},searching:function(){return\"Søker…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/nl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/nl\",[],function(){return{errorLoading:function(){return\"De resultaten konden niet worden geladen.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Gelieve \"+t+\" karakters te verwijderen\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Gelieve \"+t+\" of meer karakters in te voeren\";return n},loadingMore:function(){return\"Meer resultaten laden…\"},maximumSelected:function(e){var t=e.maximum==1?\"kan\":\"kunnen\",n=\"Er \"+t+\" maar \"+e.maximum+\" item\";return e.maximum!=1&&(n+=\"s\"),n+=\" worden geselecteerd\",n},noResults:function(){return\"Geen resultaten gevonden…\"},searching:function(){return\"Zoeken…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/pl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pl\",[],function(){var e=[\"znak\",\"znaki\",\"znaków\"],t=[\"element\",\"elementy\",\"elementów\"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return\"Nie można załadować wyników.\"},inputTooLong:function(t){var r=t.input.length-t.maximum;return\"Usuń \"+r+\" \"+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return\"Podaj przynajmniej \"+r+\" \"+n(r,e)},loadingMore:function(){return\"Trwa ładowanie…\"},maximumSelected:function(e){return\"Możesz zaznaczyć tylko \"+e.maximum+\" \"+n(e.maximum,t)},noResults:function(){return\"Brak wyników\"},searching:function(){return\"Trwa wyszukiwanie…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/pt-BR.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pt-BR\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Apague \"+t+\" caracter\";return t!=1&&(n+=\"es\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Digite \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"Carregando mais resultados…\"},maximumSelected:function(e){var t=\"Você só pode selecionar \"+e.maximum+\" ite\";return e.maximum==1?t+=\"m\":t+=\"ns\",t},noResults:function(){return\"Nenhum resultado encontrado\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/pt.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pt\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor apague \"+t+\" \";return n+=t!=1?\"caracteres\":\"carácter\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Introduza \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"A carregar mais resultados…\"},maximumSelected:function(e){var t=\"Apenas pode seleccionar \"+e.maximum+\" \";return t+=e.maximum!=1?\"itens\":\"item\",t},noResults:function(){return\"Sem resultados\"},searching:function(){return\"A procurar…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/ro.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ro\",[],function(){return{errorLoading:function(){return\"Rezultatele nu au putut fi incărcate.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vă rugăm să ștergeți\"+t+\" caracter\";return t!==1&&(n+=\"e\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vă rugăm să introduceți \"+t+\"sau mai multe caractere\";return n},loadingMore:function(){return\"Se încarcă mai multe rezultate…\"},maximumSelected:function(e){var t=\"Aveți voie să selectați cel mult \"+e.maximum;return t+=\" element\",e.maximum!==1&&(t+=\"e\"),t},noResults:function(){return\"Nu au fost găsite rezultate\"},searching:function(){return\"Căutare…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/ru.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ru\",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return\"Невозможно загрузить результаты\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Пожалуйста, введите на \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r+=\" меньше\",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Пожалуйста, введите еще хотя бы \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r},loadingMore:function(){return\"Загрузка данных…\"},maximumSelected:function(t){var n=\"Вы можете выбрать не более \"+t.maximum+\" элемент\";return n+=e(t.maximum,\"\",\"a\",\"ов\"),n},noResults:function(){return\"Совпадений не найдено\"},searching:function(){return\"Поиск…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/sk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sk\",[],function(){var e={2:function(e){return e?\"dva\":\"dve\"},3:function(){return\"tri\"},4:function(){return\"štyri\"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím, zadajte o jeden znak menej\":n>=2&&n<=4?\"Prosím, zadajte o \"+e[n](!0)+\" znaky menej\":\"Prosím, zadajte o \"+n+\" znakov menej\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím, zadajte ešte jeden znak\":n<=4?\"Prosím, zadajte ešte ďalšie \"+e[n](!0)+\" znaky\":\"Prosím, zadajte ešte ďalších \"+n+\" znakov\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(t){return t.maximum==1?\"Môžete zvoliť len jednu položku\":t.maximum>=2&&t.maximum<=4?\"Môžete zvoliť najviac \"+e[t.maximum](!1)+\" položky\":\"Môžete zvoliť najviac \"+t.maximum+\" položiek\"},noResults:function(){return\"Nenašli sa žiadne položky\"},searching:function(){return\"Vyhľadávanie…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/sr-Cyrl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sr-Cyrl\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return\"Преузимање није успело.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Обришите \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Укуцајте бар још \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},loadingMore:function(){return\"Преузимање још резултата…\"},maximumSelected:function(t){var n=\"Можете изабрати само \"+t.maximum+\" ставк\";return n+=e(t.maximum,\"у\",\"е\",\"и\"),n},noResults:function(){return\"Ништа није пронађено\"},searching:function(){return\"Претрага…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/sr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sr\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return\"Preuzimanje nije uspelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Obrišite \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Ukucajte bar još \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(t){var n=\"Možete izabrati samo \"+t.maximum+\" stavk\";return n+=e(t.maximum,\"u\",\"e\",\"i\"),n},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/sv.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sv\",[],function(){return{errorLoading:function(){return\"Resultat kunde inte laddas.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vänligen sudda ut \"+t+\" tecken\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vänligen skriv in \"+t+\" eller fler tecken\";return n},loadingMore:function(){return\"Laddar fler resultat…\"},maximumSelected:function(e){var t=\"Du kan max välja \"+e.maximum+\" element\";return t},noResults:function(){return\"Inga träffar\"},searching:function(){return\"Söker…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/th.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/th\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"โปรดลบออก \"+t+\" ตัวอักษร\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"โปรดพิมพ์เพิ่มอีก \"+t+\" ตัวอักษร\";return n},loadingMore:function(){return\"กำลังค้นข้อมูลเพิ่ม…\"},maximumSelected:function(e){var t=\"คุณสามารถเลือกได้ไม่เกิน \"+e.maximum+\" รายการ\";return t},noResults:function(){return\"ไม่พบข้อมูล\"},searching:function(){return\"กำลังค้นข้อมูล…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/tr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/tr\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" karakter daha girmelisiniz\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"En az \"+t+\" karakter daha girmelisiniz\";return n},loadingMore:function(){return\"Daha fazla…\"},maximumSelected:function(e){var t=\"Sadece \"+e.maximum+\" seçim yapabilirsiniz\";return t},noResults:function(){return\"Sonuç bulunamadı\"},searching:function(){return\"Aranıyor…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/uk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/uk\",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return\"Неможливо завантажити результати\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Будь ласка, видаліть \"+n+\" \"+e(t.maximum,\"літеру\",\"літери\",\"літер\")},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Будь ласка, введіть \"+t+\" або більше літер\"},loadingMore:function(){return\"Завантаження інших результатів…\"},maximumSelected:function(t){return\"Ви можете вибрати лише \"+t.maximum+\" \"+e(t.maximum,\"пункт\",\"пункти\",\"пунктів\")},noResults:function(){return\"Нічого не знайдено\"},searching:function(){return\"Пошук…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/vi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/vi\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vui lòng nhập ít hơn \"+t+\" ký tự\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vui lòng nhập nhiều hơn \"+t+' ký tự\"';return n},loadingMore:function(){return\"Đang lấy thêm kết quả…\"},maximumSelected:function(e){var t=\"Chỉ có thể chọn được \"+e.maximum+\" lựa chọn\";return t},noResults:function(){return\"Không tìm thấy kết quả\"},searching:function(){return\"Đang tìm…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/zh-CN.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/zh-CN\",[],function(){return{errorLoading:function(){return\"无法载入结果。\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"请删除\"+t+\"个字符\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"请再输入至少\"+t+\"个字符\";return n},loadingMore:function(){return\"载入更多结果…\"},maximumSelected:function(e){var t=\"最多只能选择\"+e.maximum+\"个项目\";return t},noResults:function(){return\"未找到结果\"},searching:function(){return\"搜索中…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/js/i18n/zh-TW.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/zh-TW\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"請刪掉\"+t+\"個字元\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"請再輸入\"+t+\"個字元\";return n},loadingMore:function(){return\"載入中…\"},maximumSelected:function(e){var t=\"你只能選擇最多\"+e.maximum+\"項\";return t},noResults:function(){return\"沒有找到相符的項目\"},searching:function(){return\"搜尋中…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/select2/sass/select2-bootstrap.min.scss",
    "content": "/*! Select2 Bootstrap Theme v0.1.0-beta.4 | MIT License | github.com/select2/select2-bootstrap-theme */\n\n//\n// Variables\n// --------------------------------------------------\n\n@import \"../../../../../sass/global/variables\";\n\n// Bootstrap defaults not available as pre-defined variables\n// These should not be overridden.\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L127\n\n$form-control-default-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);\n\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/mixins/_forms.scss#L43\n$form-control-focus-box-shadow: $form-control-default-box-shadow, 0 0 8px rgba($input-border-focus, 0.6);\n\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L128\n$form-control-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n\n// Custom variables\n// -------------------------\n\n$dropdown-arrow-color: $input-color-placeholder !default;\n$dropdown-box-shadow: 0 6px 12px rgba(0,0,0,.175) !default;\n$clear-selection-color: $dropdown-arrow-color !default;\n\n//\n// Mixins\n// --------------------------------------------------\n\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L115\n@mixin bootstrap-input-defaults {\n    @include box-shadow($form-control-default-box-shadow);\n    background-color: $input-bg;\n    border: 1px solid $input-border;\n    border-radius: $input-border-radius;\n    color: $input-color;\n    font-family: $font-family-base;\n    font-size: $font-size-base;\n}\n\n// @see http://getbootstrap.com/css/#forms-control-validation\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L388\n@mixin validation-state-focus($color) {\n    $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($color, 20%);\n\n    .select2-dropdown,\n    .select2-selection {\n        border-color: $color;\n    }\n\n    .select2-container--focus .select2-selection,\n    .select2-container--open .select2-selection {\n        @include box-shadow($shadow);\n        border-color: darken($color, 10%);\n    }\n\n    &.select2-drop-active {\n        border-color: darken($color, 10%);\n\n        &.select2-drop.select2-drop-above {\n            border-top-color: darken($color, 10%);\n        }\n    }\n}\n\n// dropdown arrow when dropdown is open\n@mixin dropdown-arrow {\n        .select2-selection--single {\n        /**\n         * Make the dropdown arrow point up while the dropdown is visible.\n         */\n\n        .select2-selection__arrow b {\n            border-color: transparent transparent $dropdown-arrow-color transparent;\n            border-width: 0 $caret-width-large $caret-width-large $caret-width-large;\n        }\n    }\n}\n\n\n\n\n\n.select2-container--bootstrap {\n    display: block;\n\n\n\n\n\n    /*------------------------------------*\\\n            #COMMON STYLES\n    \\*------------------------------------*/\n\n    .select2-selection {\n        @include bootstrap-input-defaults;\n        outline: 0;\n    }\n\n    /**\n     * Search field in the Select2 dropdown.\n     */\n\n    .select2-search--dropdown {\n        .select2-search__field {\n            @include bootstrap-input-defaults;\n        }\n    }\n\n    /**\n     * No outline for all search fields - in the dropdown\n     * and inline in multi Select2s.\n     */\n\n    .select2-search__field {\n        outline: 0;\n\n        &::-webkit-input-placeholder {\n            color: $input-color-placeholder;\n        }\n\n        /* Firefox 18- */\n        &:-moz-placeholder {\n            color: $input-color-placeholder;\n        }\n\n        /**\n         * Firefox 19+\n         *\n         * @see http://stackoverflow.com/questions/24236240/color-for-styled-placeholder-text-is-muted-in-firefox\n         */\n        &::-moz-placeholder {\n            color: $input-color-placeholder;\n            opacity: 1;\n        }\n\n        &:-ms-input-placeholder {\n            color: $input-color-placeholder;\n        }\n    }\n\n    /**\n     * Adjust Select2's choices hover and selected styles to match\n     * Bootstrap 3's default dropdown styles.\n     *\n     * @see http://getbootstrap.com/components/#dropdowns\n     */\n\n    .select2-results__option {\n\n        &[role=group] {\n            padding: 0;\n        }\n\n        /**\n         * Disabled results.\n         *\n         * @see https://select2.github.io/examples.html#disabled-results\n         */\n\n        &[aria-disabled=true] {\n            color: $dropdown-link-disabled-color;\n            cursor: $cursor-disabled;\n        }\n\n        /**\n         * Hover state.\n         */\n\n        &[aria-selected=true] {\n            background-color: $dropdown-link-hover-bg;\n            color: $dropdown-link-hover-color;\n        }\n\n        /**\n         * Selected state.\n         */\n\n        &--highlighted[aria-selected] {\n            background-color: $dropdown-link-active-bg;\n            color: $dropdown-link-active-color;\n        }\n\n        .select2-results__option {\n            padding: $padding-base-vertical $padding-base-horizontal;\n\n            .select2-results__group {\n                padding-left: 0;\n            }\n\n            .select2-results__option {\n                margin-left: -$padding-base-horizontal;\n                padding-left: $padding-base-horizontal*2;\n\n                .select2-results__option {\n                    margin-left: -$padding-base-horizontal*2;\n                    padding-left: $padding-base-horizontal*3;\n\n                    .select2-results__option {\n                        margin-left: -$padding-base-horizontal*3;\n                        padding-left: $padding-base-horizontal*4;\n\n                        .select2-results__option {\n                            margin-left: -$padding-base-horizontal*4;\n                            padding-left: $padding-base-horizontal*5;\n\n                            .select2-results__option {\n                                margin-left: -$padding-base-horizontal*5;\n                                padding-left: $padding-base-horizontal*6;\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    .select2-results__group {\n        color: $dropdown-header-color;\n        display: block;\n        padding: $padding-base-vertical $padding-base-horizontal;\n        font-size: $font-size-small;\n        line-height: $line-height-base;\n        white-space: nowrap;\n    }\n\n    &.select2-container--focus,\n    &.select2-container--open {\n        .select2-selection {\n            @include box-shadow($form-control-focus-box-shadow);\n            @include transition($form-control-transition);\n            border-color: $input-border-focus;\n        }\n    }\n\n    &.select2-container--open {\n        /**\n         * Make the dropdown arrow point up while the dropdown is visible.\n         */\n\n        .select2-selection .select2-selection__arrow b {\n            border-color: transparent transparent $dropdown-arrow-color transparent;\n            border-width: 0 $caret-width-base $caret-width-base $caret-width-base;\n        }\n\n        /**\n         * Handle border radii of the container when the dropdown is showing.\n         */\n\n        &.select2-container--below {\n            .select2-selection {\n                @include border-bottom-radius(0);\n                border-bottom-color: transparent;\n            }\n        }\n\n        &.select2-container--above {\n            .select2-selection {\n                @include border-top-radius(0);\n                border-top-color: transparent;\n            }\n        }\n    }\n\n    /**\n     * Clear the selection.\n     */\n\n    .select2-selection__clear {\n        color: $clear-selection-color;\n        cursor: pointer;\n        float: right;\n        font-weight: bold;\n        margin-right: 10px;\n\n        &:hover {\n            color: #333;\n        }\n    }\n\n    /**\n     * Address disabled Select2 styles.\n     *\n     * @see https://select2.github.io/examples.html#disabled\n     * @see http://getbootstrap.com/css/#forms-control-disabled\n     */\n\n    &.select2-container--disabled {\n\n        .select2-selection {\n            border-color: $input-border;\n            @include box-shadow(none);\n        }\n\n        .select2-selection,\n        .select2-search__field {\n            cursor: $cursor-disabled;\n        }\n\n        .select2-selection,\n        .select2-selection--multiple .select2-selection__choice {\n            background-color: $input-bg-disabled;\n        }\n\n        .select2-selection__clear,\n        .select2-selection--multiple .select2-selection__choice__remove {\n            display: none;\n        }\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n            #DROPDOWN\n    \\*------------------------------------*/\n\n    /**\n     * Dropdown border color and box-shadow.\n     */\n\n    .select2-dropdown {\n        @include box-shadow($dropdown-box-shadow);\n        border-color: $input-border-focus;\n        overflow-x: hidden;\n        margin-top: -1px;\n        &--above {\n            margin-top: 1px;\n        }\n    }\n\n    /**\n     * Limit the dropdown height.\n     */\n\n    .select2-results > .select2-results__options {\n        max-height: 200px;\n        overflow-y: auto;\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n            #SINGLE SELECT2\n    \\*------------------------------------*/\n\n    .select2-selection--single {\n        height: $input-height-base;\n        line-height: $line-height-base;\n        padding: $padding-base-vertical $padding-base-horizontal + $caret-width-base*3 $padding-base-vertical $padding-base-horizontal;\n\n        /**\n         * Adjust the single Select2's dropdown arrow button appearance.\n         */\n\n        .select2-selection__arrow {\n            position: absolute;\n            bottom: 0;\n            right: $padding-base-horizontal;\n            top: 0;\n            width: $caret-width-base;\n\n            b {\n                border-color: $dropdown-arrow-color transparent transparent transparent;\n                border-style: solid;\n                border-width: $caret-width-base $caret-width-base 0 $caret-width-base;\n                height: 0;\n                left: 0;\n                margin-left: -$caret-width-base;\n                margin-top: -$caret-width-base/2;\n                position: absolute;\n                top: 50%;\n                width: 0;\n            }\n        }\n\n        .select2-selection__rendered {\n            color: $input-color;\n            padding: 0;\n        }\n\n        .select2-selection__placeholder {\n            color: $input-color-placeholder;\n        }\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n        #MULTIPLE SELECT2\n    \\*------------------------------------*/\n\n    .select2-selection--multiple {\n        min-height: $input-height-base;\n\n        .select2-selection__rendered {\n            box-sizing: border-box;\n            display: block;\n            line-height: $line-height-base;\n            list-style: none;\n            margin: 0;\n            overflow: hidden;\n            padding: 0;\n            width: 100%;\n            text-overflow: ellipsis;\n            white-space: nowrap;\n        }\n\n        .select2-selection__placeholder {\n            color: $input-color-placeholder;\n            float: left;\n            margin-top: 5px;\n        }\n\n        /**\n         * Make Multi Select2's choices match Bootstrap 3's default button styles.\n         */\n\n        .select2-selection__choice {\n            color: $input-color;\n            background: $btn-default-bg;\n            border: 1px solid $btn-default-border;\n            border-radius: 4px;\n            cursor: default;\n            float: left;\n            margin: ($padding-base-vertical - 1) 0 0 $padding-base-horizontal/2;\n            padding: 0 $padding-base-vertical;\n        }\n\n        /**\n         * Minus 2px borders.\n         */\n\n        .select2-search--inline {\n            .select2-search__field {\n                background: transparent;\n                padding: 0 $padding-base-horizontal;\n                height: $input-height-base - 2;\n                line-height: $line-height-base;\n                margin-top: 0;\n                min-width: 5em;\n            }\n        }\n\n        .select2-selection__choice__remove {\n            color: #999;\n            cursor: pointer;\n            display: inline-block;\n            font-weight: bold;\n            margin-right: $padding-base-vertical / 2;\n\n            &:hover {\n                color: #333;\n            }\n        }\n\n        /**\n         * Clear the selection.\n         */\n\n        .select2-selection__clear {\n            margin-top: $padding-base-vertical;\n        }\n    }\n\n\n\n\n\n    /**\n     * Address Bootstrap control sizing classes\n     *\n     * 1. Reset Bootstrap defaults.\n     * 2. Adjust the dropdown arrow button icon position.\n     *\n     * @see http://getbootstrap.com/css/#forms-control-sizes\n     */\n\n    /* 1 */\n    &.input-sm,\n    &.input-lg {\n        border-radius: 0;\n        font-size: 12px;\n        height: auto;\n        line-height: 1;\n        padding: 0;\n    }\n\n    &.input-sm,\n    .input-group-sm &,\n    .form-group-sm & {\n        .select2-selection--single {\n            border-radius: $border-radius-small;\n            font-size: $font-size-small;\n            height: $input-height-small;\n            line-height: $line-height-small;\n            padding: $padding-small-vertical $padding-small-horizontal + $caret-width-base*3 $padding-small-vertical $padding-small-horizontal;\n\n            /* 2 */\n            .select2-selection__arrow b {\n                margin-left: -$padding-small-vertical;\n            }\n        }\n\n        .select2-selection--multiple {\n            min-height: $input-height-small;\n\n            .select2-selection__choice {\n                font-size: $font-size-small;\n                line-height: $line-height-small;\n                margin: ($padding-small-vertical - 1) 0 0 $padding-small-horizontal/2;\n                padding: 0 $padding-small-vertical;\n            }\n\n            .select2-search--inline .select2-search__field {\n                padding: 0 $padding-small-horizontal;\n                font-size: $font-size-small;\n                height: $input-height-small - 2;\n                line-height: $line-height-small;\n            }\n\n            .select2-selection__clear {\n                margin-top: $padding-small-vertical;\n            }\n        }\n    }\n\n    &.input-lg,\n    .input-group-lg &,\n    .form-group-lg & {\n        .select2-selection--single {\n            border-radius: $border-radius-large;\n            font-size: $font-size-large;\n            height: $input-height-large;\n            line-height: $line-height-large;\n            padding: $padding-large-vertical $padding-large-horizontal + $caret-width-large*3 $padding-large-vertical $padding-large-horizontal;\n\n            /* 1 */\n            .select2-selection__arrow {\n                width: $caret-width-large;\n\n                b {\n                    border-width: $caret-width-large $caret-width-large 0 $caret-width-large;\n                    margin-left: -$caret-width-large;\n                    margin-left: -$padding-large-vertical;\n                    margin-top: -$caret-width-large/2;\n                }\n            }\n        }\n\n        .select2-selection--multiple {\n            min-height: $input-height-large;\n\n            .select2-selection__choice {\n                font-size: $font-size-large;\n                line-height: $line-height-large;\n                border-radius: 4px;\n                margin: ($padding-large-vertical - 1) 0 0 $padding-large-horizontal/2;\n                padding: 0 $padding-large-vertical;\n            }\n\n            .select2-search--inline .select2-search__field {\n                padding: 0 $padding-large-horizontal;\n                font-size: $font-size-large;\n                height: $input-height-large - 2;\n                line-height: $line-height-large;\n            }\n\n            .select2-selection__clear {\n                margin-top: $padding-large-vertical;\n            }\n        }\n    }\n\n    &.input-lg.select2-container--open {\n        @include dropdown-arrow;\n    }\n\n    .input-group-lg & {\n        &.select2-container--open {\n            @include dropdown-arrow;\n        }\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n        #RTL SUPPORT\n    \\*------------------------------------*/\n\n    &[dir=\"rtl\"] {\n\n        /**\n         * Single Select2\n         *\n         * 1. Makes sure that .select2-selection__placeholder is positioned\n         *    correctly.\n         */\n\n        .select2-selection--single {\n            padding-left: $padding-base-horizontal + $caret-width-base*3;\n            padding-right: $padding-base-horizontal;\n            .select2-selection__rendered {\n                padding-right: 0;\n                padding-left: 0;\n                text-align: right; /* 1 */\n            }\n\n            .select2-selection__clear {\n                float: left;\n            }\n\n            .select2-selection__arrow {\n                left: $padding-base-horizontal;\n                right: auto;\n\n                b {\n                    margin-left: 0;\n                }\n            }\n        }\n\n        /**\n         * Multiple Select2\n         */\n\n        .select2-selection--multiple {\n            .select2-selection__choice,\n            .select2-selection__placeholder {\n                float: right;\n            }\n\n            .select2-selection__choice {\n                margin-left: 0;\n                margin-right: $padding-base-horizontal/2;\n            }\n\n            .select2-selection__choice__remove {\n                margin-left: 2px;\n                margin-right: auto;\n            }\n        }\n    }\n}\n\n\n\n\n\n/*------------------------------------*\\\n    #ADDITIONAL GOODIES\n\\*------------------------------------*/\n\n/**\n * Address Bootstrap's validation states\n *\n * If a Select2 widget parent has one of Bootstrap's validation state modifier\n * classes, adjust Select2's border colors and focus states accordingly.\n * You may apply said classes to the Select2 dropdown (body > .select2-container)\n * via JavaScript match Bootstraps' to make its styles match.\n *\n * @see http://getbootstrap.com/css/#forms-control-validation\n */\n\n.has-warning {\n    @include validation-state-focus($state-warning-text);\n}\n\n.has-error {\n    @include validation-state-focus($state-danger-text);\n}\n\n.has-success {\n    @include validation-state-focus($state-success-text);\n}\n\n/**\n * Select2 widgets in Bootstrap Input Groups\n *\n * When Select2 widgets are combined with other elements using Bootstraps\n * \"Input Group\" component, we don't want specific edges of the Select2\n * container to have a border-radius.\n *\n * Use .select2-bootstrap-prepend and .select2-bootstrap-append on\n * a Bootstrap 3 .input-group to let the contained Select2 widget know which\n * edges should not be rounded as they are directly followed by another element.\n *\n * @see http://getbootstrap.com/components/#input-groups\n */\n\n/**\n * Mimick Bootstraps .input-group .form-control styles.\n *\n * @see https://github.com/twbs/bootstrap/blob/master/less/input-groups.less\n */\n\n.input-group .select2-container--bootstrap {\n    display: table;\n    table-layout: fixed;\n    position: relative;\n    z-index: 2;\n    float: left;\n    width: 100%;\n    margin-bottom: 0;\n}\n\n.input-group.select2-bootstrap-prepend .select2-container--bootstrap {\n    .select2-selection {\n        @include border-left-radius(0);\n    }\n}\n\n.input-group.select2-bootstrap-append .select2-container--bootstrap {\n    .select2-selection {\n        @include border-right-radius(0);\n    }\n}\n\n/**\n * Adjust alignment of Bootstrap buttons in Bootstrap Input Groups to address\n * Multi Select2's height which - depending on how many elements have been selected -\n * may grow taller than its initial size.\n *\n * @see http://getbootstrap.com/components/#input-groups\n */\n\n.select2-bootstrap-append,\n.select2-bootstrap-prepend {\n    .select2-container--bootstrap,\n    .input-group-btn,\n    .input-group-btn .btn {\n        vertical-align: top;\n    }\n}\n\n/**\n * Temporary fix for https://github.com/select2/select2-bootstrap-theme/issues/9\n *\n * Provides `!important` for certain properties of the class applied to the\n * original `<select>` element to hide it.\n *\n * @see https://github.com/select2/select2/pull/3301\n * @see https://github.com/fk/select2/commit/31830c7b32cb3d8e1b12d5b434dee40a6e753ada\n */\n\n.form-control.select2-hidden-accessible {\n    position: absolute !important;\n    width: 1px !important;\n}\n\n/**\n * Display override for inline forms\n*/\n\n.form-inline .select2-container--bootstrap {\n    display: inline-block;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/.gitignore",
    "content": "*.DS_Store\nnode_modules\nbower_components\n.sass-cache\nnpm-debug.log\n.idea\n.vscode"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Carlos - 安正超\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/README.md",
    "content": "[Share.js](http://overtrue.me/share.js/)\n===\n\n一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等社交网站。\n\n![qq20151127-1 2x](https://cloud.githubusercontent.com/assets/1472352/11433126/05f8b0e0-94f4-11e5-9fca-74dc9d1b633f.png)\n\n\n[DEMO](http://overtrue.me/share.js/)\n\n或者直接浏览我的博客 http://overtrue.me 或者 http://laravel.so 内容页查看效果。\n\n<p align=\"center\">\n  <br>\n  <b>创造不息，交付不止</b>\n  <br>\n  <a href=\"https://www.yousails.com\">\n    <img src=\"https://yousails.com/banners/brand.png\" width=350>\n  </a>\n</p>\n\n# 安装\n\n有3种安装方式：\n\n1. 使用 [npm](https://npmjs.com)\n\n    ```shell\n    npm install social-share.js\n    ```\n2. 使用 [bower](https://bower.io)\n\n    ```shell\n    bower install social-share.js\n    ```\n\n3. 使用 [cdnjs](https://cdnjs.com/libraries/social-share.js)，引入 `share.min.css` 与 `share.min.js` 两个链接就好。 (感谢 [@mdluo](https://github.com/mdluo))\n\n4. 手动下载或者 git clone 本项目。\n\n# 使用\n\n\nHTML:\n\n```html\n<div class=\"social-share\"></div>\n\n<!--  css & js -->\n<link rel=\"stylesheet\" href=\"dist/css/share.min.css\">\n<script src=\"dist/js/share.min.js\"></script>\n\n// 当你使用类名为 `social-share` 时不需要手动初始化\n```\n\n## 自定义配置\n\n所有配置**可选**， 通常默认就满足需求：\n\n可用的配置有：\n\n```js\n\nurl                 : '', // 网址，默认使用 window.location.href\nsource              : '', // 来源（QQ空间会用到）, 默认读取head标签：<meta name=\"site\" content=\"http://overtrue\" />\ntitle               : '', // 标题，默认读取 document.title 或者 <meta name=\"title\" content=\"share.js\" />\ndescription         : '', // 描述, 默认读取head标签：<meta name=\"description\" content=\"PHP弱类型的实现原理分析\" />\nimage               : '', // 图片, 默认取网页中第一个img标签\nsites               : ['qzone', 'qq', 'weibo','wechat', 'douban'], // 启用的站点\ndisabled            : ['google', 'facebook', 'twitter'], // 禁用的站点\nwechatQrcodeTitle   : '微信扫一扫：分享', // 微信二维码提示文字\nwechatQrcodeHelper  : '<p>微信里点“发现”，扫一下</p><p>二维码便可将本文分享至朋友圈。</p>'\n```\n\n以上选项均可通过标签 `data-xxx` 来设置：\n\n> 驼峰转为中横线，如`wechatQrcodeHelper` 的data标签为`data-wechat-qrcode-helper`\n\n##### 禁用 google、twitter、facebook 并设置分享的描述\n\n```html\n<div class=\"share-component\" data-disabled=\"google,twitter,facebook\" data-description=\"Share.js - 一键分享到微博，QQ空间，腾讯微博，人人，豆瓣\"></div>\n```\n\n##### 设置微信二维码标题\n\n```html\n<div class=\"social-share\" data-wechat-qrcode-title=\"请打开微信扫一扫\"></div>\n```\n\n##### 针对特定站点使用不同的属性（title, url, description,image...）\n\n```html\n<div class=\"social-share\" data-weibo-title=\"这个标题只有的分享到微博时有用，其它标题为全局标题\" data-qq-title=\"分享到QQ时用此标题\"></div>\n```\n\n### 你也可以自定义图标\n\n使用: `data-initialized=\"true\"` 标签或者 `initialized` 配置项来禁用自动生成icon功能。\n\n```html\n<div class=\"social-share\" data-initialized=\"true\">\n    <a href=\"#\" class=\"social-share-icon icon-weibo\"></a>\n    <a href=\"#\" class=\"social-share-icon icon-qq\"></a>\n    <a href=\"#\" class=\"social-share-icon icon-qzone\"></a>\n</div>\n```\n以上a标题会自动加上分享链接（`a` 标签必须带 `icon-NAME` 属性，不然分享链接不会自动加上）。\n\n### 如果你想在分享icon列表中内置一些元素，比如放一个收藏按钮在分享按钮的后面：\n\n```html\n<div class=\"social-share\">\n    <a href=\"javascript:;\" class=\"social-share-icon icon-heart\"></a>\n</div>\n```\n这样并没有实现，因为结果是所有的分享按钮都创建在了收藏按钮的后面了，这时候你就可以用 `data-mode=\"prepend\"` 来确定分享按钮创建的方式。\n\n```html\n<div class=\"social-share\" data-mode=\"prepend\">\n    <a href=\"javascript:;\" class=\"social-share-icon icon-heart\"></a>\n</div>\n```\n\n这样，所有的分享图标就会创建在容器的内容前面，反之可以用 `append` 创建在容器内容后面，当然这是默认的，也不需要这么做。\n\n### 指定移动设备上显示的图标\n\n```html\n<div class=\"share-component\" data-mobile-sites=\"weibo,qq,qzone,tencent\"></div>\n```\n当在手机上打开该页面的时候就只会显示这4个图标了。\n\n欢迎贡献代码及提建议！\n\n# 引用\n\n本项目中二维码生成部分用到了开源组件：[lrsjng/jquery-qrcode](https://github.com/lrsjng/jquery-qrcode) (MIT License)\n\n# License\n\n MIT\n\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/bower.json",
    "content": "{\n  \"name\": \"social-share.js\",\n  \"description\": \"create social share buttons on your site.\",\n  \"main\": \"src/js/jquery.share.js\",\n  \"authors\": [\n    \"overtrue\"\n  ],\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"sns\",\n    \"share\",\n    \"weibo\",\n    \"qq\",\n    \"douban\",\n    \"qzone\",\n    \"linkedin\",\n    \"facebook\",\n    \"google\"\n  ],\n  \"homepage\": \"https://github.com/overtrue/share.js\",\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\",\n    \"tests\",\n    \"demo\"\n  ]\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/demo/test-jquery.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>test</title>\n  <meta name=\"site\" content=\"content site\">\n  <meta name=\"Site\" content=\"content Site\">\n  <meta name=\"title\" content=\"content title\">\n  <meta name=\"Title\" content=\"content Title\">\n  <link rel=\"stylesheet\" href=\"../dist/css/share.min.css\">\n\n  <style>\n  .row{padding: 20px 0 0 20px}\n  .row-pad{padding: 20px 0 0 60px}\n  </style>\n</head>\n<body>\n  <div class=\"row-pad\">\n    <h1>test</h1>\n  </div>\n\n  <ol>\n    <li class=\"row\">\n      <div class=\"social-share\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"share-component\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-initialized=\"true\">\n        <a href=\"#\" class=\"social-share-icon icon-weibo\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qq\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qzone\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-mode=\"prepend\">\n        <a href=\"javascript:\" class=\"social-share-icon icon-heart\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-1\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-2\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-3\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-4\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n  </ol>\n\n<script src=\"http://apps.bdimg.com/libs/jquery/1.8.2/jquery.js\"></script>\n<script src=\"../dist/js/jquery.share.min.js\"></script>\n<script>\n$('#share-1').share();\n$('#share-2').share({sites: ['qzone', 'qq', 'weibo','wechat']});\n$('#share-3').share();\n$('#share-4').share();\n</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/demo/test-no-jquery.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>test</title>\n  <meta name=\"site\" content=\"content site\">\n  <meta name=\"Site\" content=\"content Site\">\n  <meta name=\"title\" content=\"content title\">\n  <meta name=\"Title\" content=\"content Title\">\n  <link rel=\"stylesheet\" href=\"../dist/css/share.min.css\">\n\n  <style>\n  .row{padding: 20px 0 0 20px}\n  .row-pad{padding: 20px 0 0 60px}\n  </style>\n</head>\n<body>\n  <div class=\"row-pad\">\n    <h1>test</h1>\n  </div>\n\n  <ol>\n    <li class=\"row\">\n      <div class=\"social-share\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"share-component\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-initialized=\"true\">\n        <a href=\"#\" class=\"social-share-icon icon-weibo\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qq\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qzone\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-mode=\"prepend\">\n        <a href=\"javascript:\" class=\"social-share-icon icon-heart\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-1\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-2\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-3\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-4\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n  </ol>\n\n<script src=\"../src/js/social-share.js\"></script>\n<script src=\"../src/js/qrcode.js\"></script>\n<script>\nsocialShare('#share-1');\nsocialShare('#share-2', {sites: ['qzone', 'qq', 'weibo','wechat']});\nsocialShare('#share-3');\nsocialShare('#share-4');\n</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/gulpfile.js",
    "content": "var basePaths = {\n  src: 'src/',\n  dest: 'dist/',\n  bower: 'bower_components/'\n};\nvar paths = {\n  scripts: {\n    src: basePaths.src + 'js/',\n    dest: basePaths.dest + 'js/'\n  },\n  styles: {\n    src: basePaths.src + 'css/',\n    dest: basePaths.dest + 'css/'\n  },\n  fonts: {\n    src: basePaths.src + 'fonts/',\n    dest: basePaths.dest + 'fonts/'\n  }\n};\n\nvar appFiles = {\n  styles: [paths.styles.src + '**/*.scss'],\n  jqueryShare: [paths.scripts.src + 'jquery.qrcode.min.js', paths.scripts.src + 'jquery.share.js'],\n  socialShare: [paths.scripts.src + 'qrcode.js', paths.scripts.src + 'social-share.js'],\n  fonts: [paths.fonts.src + '**/*']\n};\n\nvar vendorFiles = {\n  styles: [],\n  scripts: [],\n  fonts: []\n};\n\n/*\n  Let the magic begin\n*/\n\nvar gulp = require('gulp');\n\nvar es = require('event-stream');\nvar gutil = require('gulp-util');\nvar concat = require('gulp-concat');\nvar del = require('del');\n\nvar plugins = require(\"gulp-load-plugins\")({\n  pattern: ['gulp-*', 'gulp.*'],\n  replaceString: /\\bgulp[\\-.]/\n});\n\n// Allows gulp --dev to be run for a more verbose output\nvar isProduction = true;\nvar sassStyle = 'compressed';\nvar sourceMap = false;\n\nif(gutil.env.dev === true) {\n  sassStyle = 'expanded';\n  sourceMap = true;\n  isProduction = false;\n}\n\nvar changeEvent = function(evt) {\n  gutil.log('File', gutil.colors.cyan(evt.path.replace(new RegExp('/.*(?=/' + basePaths.src + ')/'), '')), 'was', gutil.colors.magenta(evt.type));\n};\n\nvar clean = function(path, cb) {\n  // You can use multiple globbing patterns as you would with `gulp.src`\n  del([path], {force:true}, cb);\n};\n\ngulp.task('css', function(){\n  // app css\n  return plugins.rubySass(vendorFiles.styles.concat(appFiles.styles), {\n      style: sassStyle, sourcemap: sourceMap, precision: 2\n    })\n    // .pipe(plugins.concat('style.min.css'))\n    .pipe(plugins.autoprefixer({\n      browsers: ['last 2 versions'],\n      cascade: false\n    }))\n    // .pipe(isProduction ? plugins.cssmin() : gutil.noop())\n    .pipe(plugins.size())\n    .on('error', function(err){\n      new gutil.PluginError('CSS', err, {showStack: true});\n    })\n    .pipe(plugins.notify())\n    .pipe(plugins.rename({suffix: '.min'}))\n    .pipe(gulp.dest(paths.styles.dest));\n});\n\ngulp.task('jquery.share.js', function () {\n  return gulp.src(appFiles.jqueryShare)\n    .pipe(concat('jquery.share.js'))\n    .pipe(isProduction ? plugins.uglify() : gutil.noop())\n    .pipe(plugins.size())\n    .pipe(plugins.notify())\n    .pipe(plugins.rename({suffix: '.min'}))\n    .pipe(gulp.dest(paths.scripts.dest));\n});\n\ngulp.task('share.js', function () {\n  return gulp.src(appFiles.socialShare)\n    .pipe(concat('social-share.js'))\n    .pipe(isProduction ? plugins.uglify() : gutil.noop())\n    .pipe(plugins.size())\n    .pipe(plugins.notify())\n    .pipe(plugins.rename({suffix: '.min'}))\n    .pipe(gulp.dest(paths.scripts.dest));\n});\n\ngulp.task('fonts', function(){\n  return gulp.src(appFiles.fonts)\n    .pipe(gulp.dest(paths.fonts.dest));\n});\n\n\ngulp.task('watch', ['css', 'jquery.share.js', 'share.js', 'fonts'], function () {\n  gulp.watch(appFiles.styles, ['css']).on('change', function (evt) {\n    changeEvent(evt);\n  });\n\n  gulp.watch(paths.scripts.src + '*.js', ['jquery.share.js', 'share.js']).on('change', function (evt) {\n    changeEvent(evt);\n  });\n});\n\ngulp.task('default', ['css', 'jquery.share.js', 'share.js', 'fonts']);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/package.json",
    "content": "{\n  \"name\": \"social-share.js\",\n  \"description\": \"create social share buttons on your site.\",\n  \"version\": \"1.0.16\",\n  \"main\": \"dist/js/share.min.js\",\n  \"dependencies\": {},\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/overtrue/share.js.git\"\n  },\n  \"keywords\": [\n    \"sns\",\n    \"share\",\n    \"weibo\",\n    \"qq\",\n    \"douban\",\n    \"qzone\",\n    \"linkedin\",\n    \"facebook\",\n    \"google\"\n  ],\n  \"author\": \"overtrue\",\n  \"license\": \"MIT\",\n  \"bugs\": {\n    \"url\": \"https://github.com/overtrue/share.js/issues\"\n  },\n  \"homepage\": \"https://github.com/overtrue/share.js#readme\",\n  \"devDependencies\": {\n    \"event-stream\": \"*\",\n    \"del\": \"*\",\n    \"gulp\": \"*\",\n    \"gulp-autoprefixer\": \"*\",\n    \"gulp-combine-media-queries\": \"*\",\n    \"gulp-concat\": \"*\",\n    \"gulp-cssmin\": \"*\",\n    \"gulp-load-plugins\": \"*\",\n    \"gulp-rename\": \"*\",\n    \"gulp-ruby-sass\": \"*\",\n    \"gulp-size\": \"*\",\n    \"gulp-uglify\": \"*\",\n    \"gulp-util\": \"*\",\n    \"gulp-notify\": \"*\",\n    \"gulp-imagemin\": \"*\",\n    \"gulp-livereload\": \"*\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/src/css/share.scss",
    "content": "\n@font-face {font-family: \"socialshare\";\n  src: url('../fonts/iconfont.eot'); /* IE9*/\n  src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */\n  url('../fonts/iconfont.woff') format('woff'), /* chrome, firefox */\n  url('../fonts/iconfont.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/\n  url('../fonts/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */\n}\n\n.social-share {\n  font-family:\"socialshare\" !important;\n  font-size:16px;\n  font-style:normal;\n  -webkit-font-smoothing: antialiased;\n  -webkit-text-stroke-width: 0.2px;\n  -moz-osx-font-smoothing: grayscale;\n   * {\n    font-family:\"socialshare\" !important;\n  }\n  .icon-tencent:before { content: \"\\f07a\"; }\n  .icon-qq:before { content: \"\\f11a\"; }\n  .icon-weibo:before { content: \"\\f12a\"; }\n  .icon-wechat:before { content: \"\\f09a\"; }\n  .icon-douban:before { content: \"\\f10a\"; }\n  .icon-heart:before { content: \"\\f20a\"; }\n  .icon-like:before { content: \"\\f00a\"; }\n  .icon-qzone:before { content: \"\\f08a\"; }\n  .icon-linkedin:before { content: \"\\f01a\"; }\n  .icon-diandian:before { content: \"\\f05a\"; }\n  .icon-facebook:before { content: \"\\f03a\"; }\n  .icon-google:before { content: \"\\f04a\"; }\n  .icon-twitter:before { content: \"\\f06a\"; }\n\n  a {\n    position:relative;\n    text-decoration:none;\n    margin: 4px;\n    display:inline-block;\n    outline: none;\n  }\n\n  .social-share-icon {\n    position:relative;\n    display:inline-block;\n    width: 32px;\n    height: 32px;\n    font-size: 20px;\n    border-radius: 50%;\n    line-height: 32px;\n    border:1px solid #666;\n    color: #666;\n    text-align: center;\n    vertical-align: middle;\n    transition: background 0.6s ease-out 0s;\n\n    &:hover{\n      background: #666;\n      color: #fff;\n    }\n  }\n\n  .icon-weibo{\n    color:#ff763b;border-color:#ff763b;\n    &:hover{\n      background:#ff763b;\n    }\n  }\n  .icon-tencent{\n    color:#56b6e7;border-color:#56b6e7;\n    &:hover{\n      background:#56b6e7;\n    }\n  }\n  .icon-qq{\n    color:#56b6e7;border-color:#56b6e7;\n    &:hover{\n      background:#56b6e7;\n    }\n  }\n  .icon-qzone{\n    color:#FDBE3D;border-color:#FDBE3D;\n    &:hover{\n      background:#FDBE3D;\n    }\n  }\n  .icon-douban{\n    color:#33b045;border-color:#33b045;\n    &:hover{\n      background:#33b045;\n    }\n  }\n  .icon-linkedin{\n    color:#0077B5;border-color:#0077B5;\n    &:hover{\n      background:#0077B5;\n    }\n  }\n  .icon-facebook {\n    color:#44619D;border-color:#44619D;\n    &:hover{\n      background:#44619D;\n    }\n  }\n  .icon-google {\n    color:#db4437;border-color:#db4437;\n    &:hover{\n      background:#db4437;\n    }\n  }\n  .icon-twitter {\n    color:#55acee;border-color:#55acee;\n    &:hover{\n      background:#55acee;\n    }\n  }\n  .icon-diandian {color:#307DCA; border-color:#307DCA;\n\n    &:hover{\n      background:#307DCA;\n    }\n  }\n  .icon-wechat{\n    position:relative;color:#7bc549;border-color:#7bc549;\n    &:hover{\n      background:#7bc549;\n    }\n  }\n  .icon-wechat .wechat-qrcode{display: none;border: 1px solid #eee;position:absolute;z-index:9;top:-205px;left:-84px;width:200px;height:192px;color:#666;font-size:12px;text-align:center;background-color:#fff;box-shadow:0 2px 10px #aaa;transition:all 200ms;-webkit-tansition:all 350ms;-moz-transition:all 350ms; }\n  .icon-wechat .wechat-qrcode.bottom {\n    top:40px;\n    left:-84px;\n    &:after {\n      display:none;\n    }\n  }\n  .icon-wechat .wechat-qrcode h4{font-weight:normal;height:26px;line-height:26px;font-size:12px; background-color:#f3f3f3; margin:0;padding:0;color: #777; }\n  .icon-wechat .wechat-qrcode .qrcode{width:105px; margin:10px auto;}\n  .icon-wechat .wechat-qrcode .qrcode table{margin:0!important;}\n  .icon-wechat .wechat-qrcode .help p{font-weight:normal;line-height:16px;padding:0;margin:0;}\n  .icon-wechat .wechat-qrcode:after{content:'';position:absolute;left:50%;margin-left:-6px;bottom:-13px;width:0;height:0;border-width:8px 6px 6px 6px;border-style:solid;border-color:#fff transparent transparent transparent}\n  .icon-wechat:hover .wechat-qrcode{display: block;}\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/src/js/jquery.share.js",
    "content": "/**\n * Share.js\n *\n * @author  overtrue <i@overtrue.me>\n * @license MIT\n *\n * @example\n * <pre>\n * $('.share-components').share();\n *\n * // or\n *\n * $('.share-bar').share({\n *     sites: ['qzone', 'qq', 'weibo','wechat'],\n *     // ...\n * });\n * </pre>\n */\n;(function($){\n    /**\n     * Initialize a share bar.\n     *\n     * @param {Object}        $options globals (optional).\n     *\n     * @return {Void}\n     */\n    $.fn.share = function ($options) {\n        var $head = $(document.head);\n\n        var $defaults = {\n            url: location.href,\n            site_url: location.origin,\n            source: $head.find('[name=site], [name=Site]').attr('content') || document.title,\n            title: $head.find('[name=title], [name=Title]').attr('content') || document.title,\n            description: $head.find('[name=description], [name=Description]').attr('content') || '',\n            image: $('img:first').prop('src') || '',\n            imageSelector: undefined,\n\n            weiboKey: '',\n\n            wechatQrcodeTitle: '微信扫一扫：分享',\n            wechatQrcodeHelper: '<p>微信里点“发现”，扫一下二维码</p><p>便可将本文分享至朋友圈。</p>',\n            wechatQrcodeSize: 100,\n\n            mobileSites: [],\n            sites: ['weibo','qq','wechat','tencent','douban','qzone','linkedin','diandian','facebook','twitter','google'],\n            disabled: [],\n            initialized: false\n        };\n\n        var $globals = $.extend({}, $defaults, $options);\n\n        var $templates = {\n            qzone       : 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}',\n            qq          : 'http://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}',\n            tencent     : 'http://share.v.t.qq.com/index.php?c=share&a=index&title={{TITLE}}&url={{URL}}&pic={{IMAGE}}',\n            weibo       : 'http://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}',\n            wechat      : 'javascript:;',\n            douban      : 'http://shuo.douban.com/!service/share?href={{URL}}&name={{TITLE}}&text={{DESCRIPTION}}&image={{IMAGE}}&starid=0&aid=0&style=11',\n            diandian    : 'http://www.diandian.com/share?lo={{URL}}&ti={{TITLE}}&type=link',\n            linkedin    : 'http://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin',\n            facebook    : 'https://www.facebook.com/sharer/sharer.php?u={{URL}}&title={{TITLE}}&description={{DESCRIPTION}}&caption={{SUBHEAD}}&link={{URL}}&picture={{IMAGE}}',\n            twitter     : 'https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{SITE_URL}}',\n            google      : 'https://plus.google.com/share?url={{URL}}'\n        };\n\n        var $ariaLabels = {\n            qzone: \"QQ空间\",\n            qq: \"QQ\",\n            tencent: \"腾讯微博\",\n            weibo: \"微博\",\n            wechat: \"微信\",\n            douban: \"豆瓣\",\n            diandian: \"点点\",\n            linkedin: \"LinkedIn\",\n            facebook: \"Facebook\",\n            twitter: \"Twitter\",\n            google: \"Google\"\n        };\n\n        this.each(function() {\n            if ($(this).data('initialized')) {\n                return true;\n            }\n\n            var $data      = $.extend({}, $globals, $(this).data());\n            if ($data.imageSelector) {\n                $data.image = $($data.imageSelector).map(function() {\n                    return $(this).prop('src');\n                }).get().join('||');\n            }\n            var $container = $(this).addClass('share-component social-share');\n\n            createIcons($container, $data);\n            createWechat($container, $data);\n\n            $(this).data('initialized', true);\n        });\n\n        /**\n         * Create site icons\n         *\n         * @param {Object|String} $container\n         * @param {Object}        $data\n         */\n        function createIcons ($container, $data) {\n            var $sites = getSites($data);\n\n            $data.mode == 'prepend' ? $sites.reverse() : $sites\n\n            if (!$sites.length) {return;}\n\n            $.each($sites, function (i, $name) {\n                var $url  = makeUrl($name, $data);\n                var $link = $data.initialized ? $container.find('.icon-'+$name) : $('<a class=\"social-share-icon icon-'+$name+'\"></a>');\n\n                if (!$link.length) {\n                    return true;\n                }\n                $link.prop('aria-label', \"分享到 \"+$ariaLabels[$name]);\n\n                $link.prop('href', $url);\n\n                if ($name === 'wechat') {\n                    $link.prop('tabindex', -1);\n                } else {\n                    $link.prop('target', '_blank');\n                }\n\n                if (!$data.initialized) {\n                    $data.mode == 'prepend' ? $container.prepend($link) : $container.append($link);\n                }\n            });\n        }\n\n        /**\n         * Create the wechat icon and QRCode.\n         *\n         * @param {Object|String} $container\n         * @param {Object}        $data\n         */\n        function createWechat ($container, $data) {\n            var $wechat = $container.find('a.icon-wechat');\n\n            if (!$wechat.length) {return;}\n\n            $wechat.append('<div class=\"wechat-qrcode\"><h4>'+$data.wechatQrcodeTitle+'</h4><div class=\"qrcode\"></div><div class=\"help\">'+$data.wechatQrcodeHelper+'</div></div>');\n\n            $wechat.find('.qrcode').qrcode({render: 'image', size: $data.wechatQrcodeSize, text: $data.url});\n\n            if ($wechat.offset().top < 100) {\n                $wechat.find('.wechat-qrcode').addClass('bottom');\n            }\n        }\n\n        /**\n         * Get available site lists.\n         *\n         * @param {Array} $data\n         *\n         * @return {Array}\n         */\n        function getSites ($data) {\n            if ($data['mobileSites'].length === 0 && $data['sites'].length) {\n                $data['mobileSites'] = $data['sites'];\n            };\n\n            var $sites = (isMobileScreen() ? $data['mobileSites'] : ($data['sites'].length ? $data['sites']: [])).slice(0);\n            var $disabled = $data['disabled'];\n\n            if (typeof $sites == 'string') { $sites = $sites.split(/\\s*,\\s*/); }\n            if (typeof $disabled == 'string') { $disabled = $disabled.split(/\\s*,\\s*/); }\n\n            if (runningInWeChat()) {\n                $disabled.push('wechat');\n            }\n            // Remove elements\n            $disabled.length && $.each($disabled, function (i, el) {\n                var removeItemIndex = $.inArray(el, $sites);\n                if (removeItemIndex !== -1) {\n                    $sites.splice(removeItemIndex, 1);\n                }\n            });\n\n            return $sites;\n        }\n\n        /**\n         * Build the url of icon.\n         *\n         * @param {String} $name\n         * @param {Object} $data\n         *\n         * @return {String}\n         */\n        function makeUrl ($name, $data) {\n            var $template = $templates[$name];\n            $data['summary'] = $data['description'];\n\n            for (var $key in $data) {\n                if ($data.hasOwnProperty($key)) {\n                    var $camelCaseKey = $name + $key.replace(/^[a-z]/, function($str){\n                        return $str.toUpperCase();\n                    });\n\n                    var $value = encodeURIComponent($data[$camelCaseKey] === undefined ? $data[$key] : $data[$camelCaseKey]);\n                    $template = $template.replace(new RegExp('{{'+$key.toUpperCase()+'}}', 'g'), $value);\n                }\n            }\n\n            return $template;\n        }\n\n        /**\n         * Detect wechat browser.\n         *\n         * @return {Boolean}\n         */\n        function runningInWeChat() {\n            return /MicroMessenger/i.test(navigator.userAgent);\n        }\n\n        /**\n         * Mobile screen width.\n         *\n         * @return {boolean}\n         */\n        function isMobileScreen () {\n            return $(window).width() <= 768;\n        }\n    };\n\n    // Domready after initialization\n    $(function () {\n        $('.share-component,.social-share').share();\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/src/js/qrcode.js",
    "content": "/**\n * @fileoverview\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n * \n * @author davidshimjs\n * @see <a href=\"http://www.d-project.com/\" target=\"_blank\">http://www.d-project.com/</a>\n * @see <a href=\"http://jeromeetienne.github.com/jquery-qrcode/\" target=\"_blank\">http://jeromeetienne.github.com/jquery-qrcode/</a>\n */\nvar QRCode;\n\n(function () {\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t//   http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of \n\t// DENSO WAVE INCORPORATED\n\t//   http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\tfunction QR8bitByte(data) {\n\t\tthis.mode = QRMode.MODE_8BIT_BYTE;\n\t\tthis.data = data;\n\t\tthis.parsedData = [];\n\n\t\t// Added to support UTF-8 Characters\n\t\tfor (var i = 0, l = this.data.length; i < l; i++) {\n\t\t\tvar byteArray = [];\n\t\t\tvar code = this.data.charCodeAt(i);\n\n\t\t\tif (code > 0x10000) {\n\t\t\t\tbyteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n\t\t\t\tbyteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[3] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x800) {\n\t\t\t\tbyteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[2] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x80) {\n\t\t\t\tbyteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n\t\t\t\tbyteArray[1] = 0x80 | (code & 0x3F);\n\t\t\t} else {\n\t\t\t\tbyteArray[0] = code;\n\t\t\t}\n\n\t\t\tthis.parsedData.push(byteArray);\n\t\t}\n\n\t\tthis.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n\t\tif (this.parsedData.length != this.data.length) {\n\t\t\tthis.parsedData.unshift(191);\n\t\t\tthis.parsedData.unshift(187);\n\t\t\tthis.parsedData.unshift(239);\n\t\t}\n\t}\n\n\tQR8bitByte.prototype = {\n\t\tgetLength: function (buffer) {\n\t\t\treturn this.parsedData.length;\n\t\t},\n\t\twrite: function (buffer) {\n\t\t\tfor (var i = 0, l = this.parsedData.length; i < l; i++) {\n\t\t\t\tbuffer.put(this.parsedData[i], 8);\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n\t\tthis.typeNumber = typeNumber;\n\t\tthis.errorCorrectLevel = errorCorrectLevel;\n\t\tthis.modules = null;\n\t\tthis.moduleCount = 0;\n\t\tthis.dataCache = null;\n\t\tthis.dataList = [];\n\t}\n\n\tQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\n\treturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row<this.moduleCount;row++){this.modules[row]=new Array(this.moduleCount);for(var col=0;col<this.moduleCount;col++){this.modules[row][col]=null;}}\n\tthis.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(test,maskPattern);if(this.typeNumber>=7){this.setupTypeNumber(test);}\n\tif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\n\tthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\n\treturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row<this.modules.length;row++){var y=row*cs;for(var col=0;col<this.modules[row].length;col++){var x=col*cs;var dark=this.modules[row][col];if(dark){qr_mc.beginFill(0,100);qr_mc.moveTo(x,y);qr_mc.lineTo(x+cs,y);qr_mc.lineTo(x+cs,y+cs);qr_mc.lineTo(x,y+cs);qr_mc.endFill();}}}\n\treturn qr_mc;},setupTimingPattern:function(){for(var r=8;r<this.moduleCount-8;r++){if(this.modules[r][6]!=null){continue;}\n\tthis.modules[r][6]=(r%2==0);}\n\tfor(var c=8;c<this.moduleCount-8;c++){if(this.modules[6][c]!=null){continue;}\n\tthis.modules[6][c]=(c%2==0);}},setupPositionAdjustPattern:function(){var pos=QRUtil.getPatternPosition(this.typeNumber);for(var i=0;i<pos.length;i++){for(var j=0;j<pos.length;j++){var row=pos[i];var col=pos[j];if(this.modules[row][col]!=null){continue;}\n\tfor(var r=-2;r<=2;r++){for(var c=-2;c<=2;c++){if(r==-2||r==2||c==-2||c==2||(r==0&&c==0)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}}}},setupTypeNumber:function(test){var bits=QRUtil.getBCHTypeNumber(this.typeNumber);for(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\n\tfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\n\tfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\n\tthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex<data.length){dark=(((data[byteIndex]>>>bitIndex)&1)==1);}\n\tvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\n\tthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\n\trow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;i<dataList.length;i++){var data=dataList[i];buffer.put(data.mode,4);buffer.put(data.getLength(),QRUtil.getLengthInBits(data.mode,typeNumber));data.write(buffer);}\n\tvar totalDataCount=0;for(var i=0;i<rsBlocks.length;i++){totalDataCount+=rsBlocks[i].dataCount;}\n\tif(buffer.getLengthInBits()>totalDataCount*8){throw new Error(\"code length overflow. (\"\n\t+buffer.getLengthInBits()\n\t+\">\"\n\t+totalDataCount*8\n\t+\")\");}\n\tif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\n\twhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\n\twhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD1,8);}\n\treturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r<rsBlocks.length;r++){var dcCount=rsBlocks[r].dataCount;var ecCount=rsBlocks[r].totalCount-dcCount;maxDcCount=Math.max(maxDcCount,dcCount);maxEcCount=Math.max(maxEcCount,ecCount);dcdata[r]=new Array(dcCount);for(var i=0;i<dcdata[r].length;i++){dcdata[r][i]=0xff&buffer.buffer[i+offset];}\n\toffset+=dcCount;var rsPoly=QRUtil.getErrorCorrectPolynomial(ecCount);var rawPoly=new QRPolynomial(dcdata[r],rsPoly.getLength()-1);var modPoly=rawPoly.mod(rsPoly);ecdata[r]=new Array(rsPoly.getLength()-1);for(var i=0;i<ecdata[r].length;i++){var modIndex=i+modPoly.getLength()-ecdata[r].length;ecdata[r][i]=(modIndex>=0)?modPoly.get(modIndex):0;}}\n\tvar totalCodeCount=0;for(var i=0;i<rsBlocks.length;i++){totalCodeCount+=rsBlocks[i].totalCount;}\n\tvar data=new Array(totalCodeCount);var index=0;for(var i=0;i<maxDcCount;i++){for(var r=0;r<rsBlocks.length;r++){if(i<dcdata[r].length){data[index++]=dcdata[r][i];}}}\n\tfor(var i=0;i<maxEcCount;i++){for(var r=0;r<rsBlocks.length;r++){if(i<ecdata[r].length){data[index++]=ecdata[r][i];}}}\n\treturn data;};var QRMode={MODE_NUMBER:1<<0,MODE_ALPHA_NUM:1<<1,MODE_8BIT_BYTE:1<<2,MODE_KANJI:1<<3};var QRErrorCorrectLevel={L:1,M:0,Q:3,H:2};var QRMaskPattern={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var QRUtil={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:(1<<10)|(1<<8)|(1<<5)|(1<<4)|(1<<2)|(1<<1)|(1<<0),G18:(1<<12)|(1<<11)|(1<<10)|(1<<9)|(1<<8)|(1<<5)|(1<<2)|(1<<0),G15_MASK:(1<<14)|(1<<12)|(1<<10)|(1<<4)|(1<<1),getBCHTypeInfo:function(data){var d=data<<10;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)>=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\n\treturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\n\treturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\n\treturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i<errorCorrectLength;i++){a=a.multiply(new QRPolynomial([1,QRMath.gexp(i)],0));}\n\treturn a;},getLengthInBits:function(mode,type){if(1<=type&&type<10){switch(mode){case QRMode.MODE_NUMBER:return 10;case QRMode.MODE_ALPHA_NUM:return 9;case QRMode.MODE_8BIT_BYTE:return 8;case QRMode.MODE_KANJI:return 8;default:throw new Error(\"mode:\"+mode);}}else if(type<27){switch(mode){case QRMode.MODE_NUMBER:return 12;case QRMode.MODE_ALPHA_NUM:return 11;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 10;default:throw new Error(\"mode:\"+mode);}}else if(type<41){switch(mode){case QRMode.MODE_NUMBER:return 14;case QRMode.MODE_ALPHA_NUM:return 13;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 12;default:throw new Error(\"mode:\"+mode);}}else{throw new Error(\"type:\"+type);}},getLostPoint:function(qrCode){var moduleCount=qrCode.getModuleCount();var lostPoint=0;for(var row=0;row<moduleCount;row++){for(var col=0;col<moduleCount;col++){var sameCount=0;var dark=qrCode.isDark(row,col);for(var r=-1;r<=1;r++){if(row+r<0||moduleCount<=row+r){continue;}\n\tfor(var c=-1;c<=1;c++){if(col+c<0||moduleCount<=col+c){continue;}\n\tif(r==0&&c==0){continue;}\n\tif(dark==qrCode.isDark(row+r,col+c)){sameCount++;}}}\n\tif(sameCount>5){lostPoint+=(3+sameCount-5);}}}\n\tfor(var row=0;row<moduleCount-1;row++){for(var col=0;col<moduleCount-1;col++){var count=0;if(qrCode.isDark(row,col))count++;if(qrCode.isDark(row+1,col))count++;if(qrCode.isDark(row,col+1))count++;if(qrCode.isDark(row+1,col+1))count++;if(count==0||count==4){lostPoint+=3;}}}\n\tfor(var row=0;row<moduleCount;row++){for(var col=0;col<moduleCount-6;col++){if(qrCode.isDark(row,col)&&!qrCode.isDark(row,col+1)&&qrCode.isDark(row,col+2)&&qrCode.isDark(row,col+3)&&qrCode.isDark(row,col+4)&&!qrCode.isDark(row,col+5)&&qrCode.isDark(row,col+6)){lostPoint+=40;}}}\n\tfor(var col=0;col<moduleCount;col++){for(var row=0;row<moduleCount-6;row++){if(qrCode.isDark(row,col)&&!qrCode.isDark(row+1,col)&&qrCode.isDark(row+2,col)&&qrCode.isDark(row+3,col)&&qrCode.isDark(row+4,col)&&!qrCode.isDark(row+5,col)&&qrCode.isDark(row+6,col)){lostPoint+=40;}}}\n\tvar darkCount=0;for(var col=0;col<moduleCount;col++){for(var row=0;row<moduleCount;row++){if(qrCode.isDark(row,col)){darkCount++;}}}\n\tvar ratio=Math.abs(100*darkCount/moduleCount/moduleCount-50)/5;lostPoint+=ratio*10;return lostPoint;}};var QRMath={glog:function(n){if(n<1){throw new Error(\"glog(\"+n+\")\");}\n\treturn QRMath.LOG_TABLE[n];},gexp:function(n){while(n<0){n+=255;}\n\twhile(n>=256){n-=255;}\n\treturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<<i;}\n\tfor(var i=8;i<256;i++){QRMath.EXP_TABLE[i]=QRMath.EXP_TABLE[i-4]^QRMath.EXP_TABLE[i-5]^QRMath.EXP_TABLE[i-6]^QRMath.EXP_TABLE[i-8];}\n\tfor(var i=0;i<255;i++){QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]]=i;}\n\tfunction QRPolynomial(num,shift){if(num.length==undefined){throw new Error(num.length+\"/\"+shift);}\n\tvar offset=0;while(offset<num.length&&num[offset]==0){offset++;}\n\tthis.num=new Array(num.length-offset+shift);for(var i=0;i<num.length-offset;i++){this.num[i]=num[i+offset];}}\n\tQRPolynomial.prototype={get:function(index){return this.num[index];},getLength:function(){return this.num.length;},multiply:function(e){var num=new Array(this.getLength()+e.getLength()-1);for(var i=0;i<this.getLength();i++){for(var j=0;j<e.getLength();j++){num[i+j]^=QRMath.gexp(QRMath.glog(this.get(i))+QRMath.glog(e.get(j)));}}\n\treturn new QRPolynomial(num,0);},mod:function(e){if(this.getLength()-e.getLength()<0){return this;}\n\tvar ratio=QRMath.glog(this.get(0))-QRMath.glog(e.get(0));var num=new Array(this.getLength());for(var i=0;i<this.getLength();i++){num[i]=this.get(i);}\n\tfor(var i=0;i<e.getLength();i++){num[i]^=QRMath.gexp(QRMath.glog(e.get(i))+ratio);}\n\treturn new QRPolynomial(num,0).mod(e);}};function QRRSBlock(totalCount,dataCount){this.totalCount=totalCount;this.dataCount=dataCount;}\n\tQRRSBlock.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];QRRSBlock.getRSBlocks=function(typeNumber,errorCorrectLevel){var rsBlock=QRRSBlock.getRsBlockTable(typeNumber,errorCorrectLevel);if(rsBlock==undefined){throw new Error(\"bad rs block @ typeNumber:\"+typeNumber+\"/errorCorrectLevel:\"+errorCorrectLevel);}\n\tvar length=rsBlock.length/3;var list=[];for(var i=0;i<length;i++){var count=rsBlock[i*3+0];var totalCount=rsBlock[i*3+1];var dataCount=rsBlock[i*3+2];for(var j=0;j<count;j++){list.push(new QRRSBlock(totalCount,dataCount));}}\n\treturn list;};QRRSBlock.getRsBlockTable=function(typeNumber,errorCorrectLevel){switch(errorCorrectLevel){case QRErrorCorrectLevel.L:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+0];case QRErrorCorrectLevel.M:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+1];case QRErrorCorrectLevel.Q:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+2];case QRErrorCorrectLevel.H:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+3];default:return undefined;}};function QRBitBuffer(){this.buffer=[];this.length=0;}\n\tQRBitBuffer.prototype={get:function(index){var bufIndex=Math.floor(index/8);return((this.buffer[bufIndex]>>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i<length;i++){this.putBit(((num>>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\n\tif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\n\tthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\t\n\tfunction _isSupportCanvas() {\n\t\treturn typeof CanvasRenderingContext2D != \"undefined\";\n\t}\n\t\n\t// android 2.x doesn't support Data-URI spec\n\tfunction _getAndroid() {\n\t\tvar android = false;\n\t\tvar sAgent = navigator.userAgent;\n\t\t\n\t\tif (/android/i.test(sAgent)) { // android\n\t\t\tandroid = true;\n\t\t\tvar aMat = sAgent.toString().match(/android ([0-9]\\.[0-9])/i);\n\t\t\t\n\t\t\tif (aMat && aMat[1]) {\n\t\t\t\tandroid = parseFloat(aMat[1]);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn android;\n\t}\n\t\n\tvar svgDrawer = (function() {\n\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\n\t\tDrawing.prototype.draw = function (oQRCode) {\n\t\t\tvar _htOption = this._htOption;\n\t\t\tvar _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\n\t\t\tthis.clear();\n\n\t\t\tfunction makeSVG(tag, attrs) {\n\t\t\t\tvar el = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\t\t\t\tfor (var k in attrs)\n\t\t\t\t\tif (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tvar svg = makeSVG(\"svg\" , {'viewBox': '0 0 ' + String(nCount) + \" \" + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});\n\t\t\tsvg.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n\t\t\t_el.appendChild(svg);\n\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorLight, \"width\": \"100%\", \"height\": \"100%\"}));\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorDark, \"width\": \"1\", \"height\": \"1\", \"id\": \"template\"}));\n\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tif (oQRCode.isDark(row, col)) {\n\t\t\t\t\t\tvar child = makeSVG(\"use\", {\"x\": String(col), \"y\": String(row)});\n\t\t\t\t\t\tchild.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", \"#template\")\n\t\t\t\t\t\tsvg.appendChild(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tDrawing.prototype.clear = function () {\n\t\t\twhile (this._el.hasChildNodes())\n\t\t\t\tthis._el.removeChild(this._el.lastChild);\n\t\t};\n\t\treturn Drawing;\n\t})();\n\n\tvar useSVG = document.documentElement.tagName.toLowerCase() === \"svg\";\n\n\t// Drawing in DOM by using Table tag\n\tvar Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode\n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n            var _htOption = this._htOption;\n            var _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\t\t\tvar aHTML = ['<table style=\"border:0;border-collapse:collapse;\">'];\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\taHTML.push('<tr>');\n\t\t\t\t\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\taHTML.push('<td style=\"border:0;border-collapse:collapse;padding:0;margin:0;width:' + nWidth + 'px;height:' + nHeight + 'px;background-color:' + (oQRCode.isDark(row, col) ? _htOption.colorDark : _htOption.colorLight) + ';\"></td>');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\taHTML.push('</tr>');\n\t\t\t}\n\t\t\t\n\t\t\taHTML.push('</table>');\n\t\t\t_el.innerHTML = aHTML.join('');\n\t\t\t\n\t\t\t// Fix the margin values as real size.\n\t\t\tvar elTable = _el.childNodes[0];\n\t\t\tvar nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;\n\t\t\tvar nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;\n\t\t\t\n\t\t\tif (nLeftMarginTable > 0 && nTopMarginTable > 0) {\n\t\t\t\telTable.style.margin = nTopMarginTable + \"px \" + nLeftMarginTable + \"px\";\t\n\t\t\t}\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._el.innerHTML = '';\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})() : (function () { // Drawing in Canvas\n\t\tfunction _onMakeImage() {\n\t\t\tthis._elImage.src = this._elCanvas.toDataURL(\"image/png\");\n\t\t\tthis._elImage.style.display = \"block\";\n\t\t\tthis._elCanvas.style.display = \"none\";\t\t\t\n\t\t}\n\t\t\n\t\t// Android 2.1 bug workaround\n\t\t// http://code.google.com/p/android/issues/detail?id=5141\n\t\tif (this._android && this._android <= 2.1) {\n\t    \tvar factor = 1 / window.devicePixelRatio;\n\t        var drawImage = CanvasRenderingContext2D.prototype.drawImage; \n\t    \tCanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {\n\t    \t\tif ((\"nodeName\" in image) && /img/i.test(image.nodeName)) {\n\t\t        \tfor (var i = arguments.length - 1; i >= 1; i--) {\n\t\t            \targuments[i] = arguments[i] * factor;\n\t\t        \t}\n\t    \t\t} else if (typeof dw == \"undefined\") {\n\t    \t\t\targuments[1] *= factor;\n\t    \t\t\targuments[2] *= factor;\n\t    \t\t\targuments[3] *= factor;\n\t    \t\t\targuments[4] *= factor;\n\t    \t\t}\n\t    \t\t\n\t        \tdrawImage.apply(this, arguments); \n\t    \t};\n\t\t}\n\t\t\n\t\t/**\n\t\t * Check whether the user's browser supports Data URI or not\n\t\t * \n\t\t * @private\n\t\t * @param {Function} fSuccess Occurs if it supports Data URI\n\t\t * @param {Function} fFail Occurs if it doesn't support Data URI\n\t\t */\n\t\tfunction _safeSetDataURI(fSuccess, fFail) {\n            var self = this;\n            self._fFail = fFail;\n            self._fSuccess = fSuccess;\n\n            // Check it just once\n            if (self._bSupportDataURI === null) {\n                var el = document.createElement(\"img\");\n                var fOnError = function() {\n                    self._bSupportDataURI = false;\n\n                    if (self._fFail) {\n                        self._fFail.call(self);\n                    }\n                };\n                var fOnSuccess = function() {\n                    self._bSupportDataURI = true;\n\n                    if (self._fSuccess) {\n                        self._fSuccess.call(self);\n                    }\n                };\n\n                el.onabort = fOnError;\n                el.onerror = fOnError;\n                el.onload = fOnSuccess;\n                el.src = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\"; // the Image contains 1px data.\n                return;\n            } else if (self._bSupportDataURI === true && self._fSuccess) {\n                self._fSuccess.call(self);\n            } else if (self._bSupportDataURI === false && self._fFail) {\n                self._fFail.call(self);\n            }\n\t\t};\n\t\t\n\t\t/**\n\t\t * Drawing QRCode by using canvas\n\t\t * \n\t\t * @constructor\n\t\t * @param {HTMLElement} el\n\t\t * @param {Object} htOption QRCode Options \n\t\t */\n\t\tvar Drawing = function (el, htOption) {\n    \t\tthis._bIsPainted = false;\n    \t\tthis._android = _getAndroid();\n\t\t\n\t\t\tthis._htOption = htOption;\n\t\t\tthis._elCanvas = document.createElement(\"canvas\");\n\t\t\tthis._elCanvas.width = htOption.width;\n\t\t\tthis._elCanvas.height = htOption.height;\n\t\t\tel.appendChild(this._elCanvas);\n\t\t\tthis._el = el;\n\t\t\tthis._oContext = this._elCanvas.getContext(\"2d\");\n\t\t\tthis._bIsPainted = false;\n\t\t\tthis._elImage = document.createElement(\"img\");\n\t\t\tthis._elImage.alt = \"Scan me!\";\n\t\t\tthis._elImage.style.display = \"none\";\n\t\t\tthis._el.appendChild(this._elImage);\n\t\t\tthis._bSupportDataURI = null;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode \n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n            var _elImage = this._elImage;\n            var _oContext = this._oContext;\n            var _htOption = this._htOption;\n            \n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = _htOption.width / nCount;\n\t\t\tvar nHeight = _htOption.height / nCount;\n\t\t\tvar nRoundedWidth = Math.round(nWidth);\n\t\t\tvar nRoundedHeight = Math.round(nHeight);\n\n\t\t\t_elImage.style.display = \"none\";\n\t\t\tthis.clear();\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tvar bIsDark = oQRCode.isDark(row, col);\n\t\t\t\t\tvar nLeft = col * nWidth;\n\t\t\t\t\tvar nTop = row * nHeight;\n\t\t\t\t\t_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\n\t\t\t\t\t_oContext.lineWidth = 1;\n\t\t\t\t\t_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\t\t\t\t\t\n\t\t\t\t\t_oContext.fillRect(nLeft, nTop, nWidth, nHeight);\n\t\t\t\t\t\n\t\t\t\t\t// 안티 앨리어싱 방지 처리\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.floor(nLeft) + 0.5,\n\t\t\t\t\t\tMath.floor(nTop) + 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t\t\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.ceil(nLeft) - 0.5,\n\t\t\t\t\t\tMath.ceil(nTop) - 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis._bIsPainted = true;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Make the image from Canvas if the browser supports Data URI.\n\t\t */\n\t\tDrawing.prototype.makeImage = function () {\n\t\t\tif (this._bIsPainted) {\n\t\t\t\t_safeSetDataURI.call(this, _onMakeImage);\n\t\t\t}\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Return whether the QRCode is painted or not\n\t\t * \n\t\t * @return {Boolean}\n\t\t */\n\t\tDrawing.prototype.isPainted = function () {\n\t\t\treturn this._bIsPainted;\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);\n\t\t\tthis._bIsPainted = false;\n\t\t};\n\t\t\n\t\t/**\n\t\t * @private\n\t\t * @param {Number} nNumber\n\t\t */\n\t\tDrawing.prototype.round = function (nNumber) {\n\t\t\tif (!nNumber) {\n\t\t\t\treturn nNumber;\n\t\t\t}\n\t\t\t\n\t\t\treturn Math.floor(nNumber * 1000) / 1000;\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})();\n\t\n\t/**\n\t * Get the type by string length\n\t * \n\t * @private\n\t * @param {String} sText\n\t * @param {Number} nCorrectLevel\n\t * @return {Number} type\n\t */\n\tfunction _getTypeNumber(sText, nCorrectLevel) {\t\t\t\n\t\tvar nType = 1;\n\t\tvar length = _getUTF8Length(sText);\n\t\t\n\t\tfor (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n\t\t\tvar nLimit = 0;\n\t\t\t\n\t\t\tswitch (nCorrectLevel) {\n\t\t\t\tcase QRErrorCorrectLevel.L :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][0];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.M :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.Q :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][2];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.H :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][3];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tif (length <= nLimit) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tnType++;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (nType > QRCodeLimitLength.length) {\n\t\t\tthrow new Error(\"Too long data\");\n\t\t}\n\t\t\n\t\treturn nType;\n\t}\n\n\tfunction _getUTF8Length(sText) {\n\t\tvar replacedText = encodeURI(sText).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n\t\treturn replacedText.length + (replacedText.length != sText ? 3 : 0);\n\t}\n\t\n\t/**\n\t * @class QRCode\n\t * @constructor\n\t * @example \n\t * new QRCode(document.getElementById(\"test\"), \"http://jindo.dev.naver.com/collie\");\n\t *\n\t * @example\n\t * var oQRCode = new QRCode(\"test\", {\n\t *    text : \"http://naver.com\",\n\t *    width : 128,\n\t *    height : 128\n\t * });\n\t * \n\t * oQRCode.clear(); // Clear the QRCode.\n\t * oQRCode.makeCode(\"http://map.naver.com\"); // Re-create the QRCode.\n\t *\n\t * @param {HTMLElement|String} el target element or 'id' attribute of element.\n\t * @param {Object|String} vOption\n\t * @param {String} vOption.text QRCode link data\n\t * @param {Number} [vOption.width=256]\n\t * @param {Number} [vOption.height=256]\n\t * @param {String} [vOption.colorDark=\"#000000\"]\n\t * @param {String} [vOption.colorLight=\"#ffffff\"]\n\t * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H] \n\t */\n\tQRCode = function (el, vOption) {\n\t\tthis._htOption = {\n\t\t\twidth : 256, \n\t\t\theight : 256,\n\t\t\ttypeNumber : 4,\n\t\t\tcolorDark : \"#000000\",\n\t\t\tcolorLight : \"#ffffff\",\n\t\t\tcorrectLevel : QRErrorCorrectLevel.H\n\t\t};\n\t\t\n\t\tif (typeof vOption === 'string') {\n\t\t\tvOption\t= {\n\t\t\t\ttext : vOption\n\t\t\t};\n\t\t}\n\t\t\n\t\t// Overwrites options\n\t\tif (vOption) {\n\t\t\tfor (var i in vOption) {\n\t\t\t\tthis._htOption[i] = vOption[i];\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (typeof el == \"string\") {\n\t\t\tel = document.getElementById(el);\n\t\t}\n\n\t\tif (this._htOption.useSVG) {\n\t\t\tDrawing = svgDrawer;\n\t\t}\n\t\t\n\t\tthis._android = _getAndroid();\n\t\tthis._el = el;\n\t\tthis._oQRCode = null;\n\t\tthis._oDrawing = new Drawing(this._el, this._htOption);\n\t\t\n\t\tif (this._htOption.text) {\n\t\t\tthis.makeCode(this._htOption.text);\t\n\t\t}\n\t};\n\t\n\t/**\n\t * Make the QRCode\n\t * \n\t * @param {String} sText link data\n\t */\n\tQRCode.prototype.makeCode = function (sText) {\n\t\tthis._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\n\t\tthis._oQRCode.addData(sText);\n\t\tthis._oQRCode.make();\n\t\tthis._el.title = sText;\n\t\tthis._oDrawing.draw(this._oQRCode);\t\t\t\n\t\tthis.makeImage();\n\t};\n\t\n\t/**\n\t * Make the Image from Canvas element\n\t * - It occurs automatically\n\t * - Android below 3 doesn't support Data-URI spec.\n\t * \n\t * @private\n\t */\n\tQRCode.prototype.makeImage = function () {\n\t\tif (typeof this._oDrawing.makeImage == \"function\" && (!this._android || this._android >= 3)) {\n\t\t\tthis._oDrawing.makeImage();\n\t\t}\n\t};\n\t\n\t/**\n\t * Clear the QRCode\n\t */\n\tQRCode.prototype.clear = function () {\n\t\tthis._oDrawing.clear();\n\t};\n\t\n\t/**\n\t * @name QRCode.CorrectLevel\n\t */\n\tQRCode.CorrectLevel = QRErrorCorrectLevel;\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/shareJS/src/js/social-share.js",
    "content": "/**\n * social-share.js\n *\n * @author  52cik <fe.52cik@gmail.com>\n * @license MIT\n *\n * @example\n * <pre>\n * socialShare('.share-components');\n *\n * // or\n *\n * socialShare('.share-bar', {\n *     sites: ['qzone', 'qq', 'weibo','wechat'],\n *     // ...\n * });\n * </pre>\n */\n;(function (window, document, undefined) {\n\n    // Initialize a variables.\n\n    var Array$indexOf = Array.prototype.indexOf;\n    var Object$assign = Object.assign;\n\n    var runningInWeChat = /MicroMessenger/i.test(navigator.userAgent);\n    var isMobileScreen = document.documentElement.clientWidth <= 768;\n\n    var image = (document.images[0] || 0).src || '';\n    var site = getMetaContentByName('site') || getMetaContentByName('Site') || document.title;\n    var title = getMetaContentByName('title') || getMetaContentByName('Title') || document.title;\n    var description = getMetaContentByName('description') || getMetaContentByName('Description') || '';\n\n    var defaults = {\n        url: location.href,\n        origin: location.origin,\n        source: site,\n        title: title,\n        description: description,\n        image: image,\n        imageSelector: undefined,\n\n        weiboKey: '',\n\n        wechatQrcodeTitle: '微信扫一扫：分享',\n        wechatQrcodeHelper: '<p>微信“扫一扫”二维码</p><p>便可将本课程分享至朋友圈。</p>',\n        wechatQrcodeSize: 100,\n\n        sites: ['weibo', 'qq', 'wechat', 'tencent', 'douban', 'qzone', 'linkedin', 'diandian', 'facebook', 'twitter', 'google'],\n        mobileSites: [],\n        disabled: [],\n        initialized: false\n    };\n\n    var templates = {\n        qzone: 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}',\n        qq: 'http://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}',\n        tencent: 'http://share.v.t.qq.com/index.php?c=share&a=index&title={{TITLE}}&url={{URL}}&pic={{IMAGE}}',\n        weibo: 'http://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}',\n        wechat: 'javascript:',\n        douban: 'http://shuo.douban.com/!service/share?href={{URL}}&name={{TITLE}}&text={{DESCRIPTION}}&image={{IMAGE}}&starid=0&aid=0&style=11',\n        diandian: 'http://www.diandian.com/share?lo={{URL}}&ti={{TITLE}}&type=link',\n        linkedin: 'http://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin',\n        facebook: 'https://www.facebook.com/sharer/sharer.php?u={{URL}}',\n        twitter: 'https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{ORIGIN}}',\n        google: 'https://plus.google.com/share?url={{URL}}'\n    };\n\n\n    /**\n     * Expose API to the global\n     *\n     * @param  {String|Element} elem\n     * @param  {Object} options\n     */\n    window.socialShare = function (elem, options) {\n        elem = typeof elem === 'string' ? querySelectorAlls(elem) : elem;\n\n        if (elem.length === undefined) {\n            elem = [elem];\n        }\n\n        each(elem, function (el) {\n            if (!el.initialized) {\n                share(el, options);\n            }\n        });\n    };\n\n    // Domready after initialization\n    alReady(function () {\n        socialShare('.social-share, .share-component');\n    });\n\n\n    /**\n     * Initialize a share bar.\n     *\n     * @param {Object}        $options globals (optional).\n     *\n     * @return {Void}\n     */\n    function share(elem, options) {\n        var data = mixin({}, defaults, options || {}, dataset(elem));\n\n        if (data.imageSelector) {\n            data.image = querySelectorAlls(data.imageSelector).map(function(item) {\n                return item.src;\n            }).join('||');\n        }\n\n        addClass(elem, 'share-component social-share');\n        createIcons(elem, data);\n        createWechat(elem, data);\n\n        elem.initialized = true;\n    }\n\n\n    /**\n     * Create site icons\n     *\n     * @param {Element} elem\n     * @param {Object} data\n     */\n    function createIcons(elem, data) {\n        var sites = getSites(data);\n        var isPrepend = data.mode == 'prepend';\n\n        each(isPrepend ? sites.reverse() : sites, function (name) {\n            var url = makeUrl(name, data);\n            var link = data.initialized ? getElementsByClassName(elem, 'icon-' + name) : createElementByString('<a class=\"social-share-icon icon-' + name + '\"></a>');\n\n            if (!link.length) {\n                return true;\n            }\n\n            link[0].href = url;\n\n            if (name === 'wechat') {\n                link[0].tabindex = -1;\n            } else {\n                link[0].target = '_blank';\n            }\n\n            if (!data.initialized) {\n                isPrepend ? elem.insertBefore(link[0], elem.firstChild) : elem.appendChild(link[0]);\n            }\n        });\n    }\n\n\n    /**\n     * Create the wechat icon and QRCode.\n     *\n     * @param {Element} elem\n     * @param {Object} data\n     */\n    function createWechat (elem, data) {\n        var wechat = getElementsByClassName(elem, 'icon-wechat', 'a');\n\n        if (wechat.length === 0) {\n            return false;\n        }\n\n        var elems = createElementByString('<div class=\"wechat-qrcode\"><h4>' + data.wechatQrcodeTitle + '</h4><div class=\"qrcode\"></div><div class=\"help\">' + data.wechatQrcodeHelper + '</div></div>');\n        var qrcode = getElementsByClassName(elems[0], 'qrcode', 'div');\n\n        wechat[0].appendChild(elems[0]);\n        new QRCode(qrcode[0], {text: data.url, width: data.wechatQrcodeSize, height: data.wechatQrcodeSize});\n    }\n\n\n    /**\n     * Get available site lists.\n     *\n     * @param {Object} data\n     *\n     * @returns {Array}\n     */\n    function getSites(data) {\n        if (!data['mobileSites'].length) {\n            data['mobileSites'] = data['sites'];\n        }\n\n        var sites = (isMobileScreen ? data['mobileSites'] : data['sites']).slice(0);\n        var disabled = data['disabled'];\n\n        if (typeof sites == 'string') {\n            sites = sites.split(/\\s*,\\s*/);\n        }\n        if (typeof disabled == 'string') {\n            disabled = disabled.split(/\\s*,\\s*/);\n        }\n\n        if (runningInWeChat) {\n            disabled.push('wechat');\n        }\n\n        // Remove elements\n        disabled.length && each(disabled, function (it) {\n            sites.splice(inArray(it, sites), 1);\n        });\n\n        return sites;\n    }\n\n\n    /**\n     * Build the url of icon.\n     *\n     * @param {String} name\n     * @param {Object} data\n     *\n     * @returns {String}\n     */\n    function makeUrl(name, data) {\n        data['summary'] = data['description'];\n\n        return templates[name].replace(/\\{\\{(\\w)(\\w*)\\}\\}/g, function (m, fix, key) {\n            var nameKey = name + fix + key.toLowerCase();\n            key = (fix + key).toLowerCase();\n\n            return encodeURIComponent((data[nameKey] === undefined ? data[key] : data[nameKey]) || '');\n        });\n    }\n\n\n    /**\n     * Supports querySelectorAll, jQuery, Zepto and simple selector.\n     *\n     * @param str\n     *\n     * @returns {*}\n     */\n    function querySelectorAlls(str) {\n        return (document.querySelectorAll || window.jQuery || window.Zepto || selector).call(document, str);\n    }\n\n\n    /**\n     * Simple selector.\n     *\n     * @param {String} str #ID or .CLASS\n     *\n     * @returns {Array}\n     */\n    function selector(str) {\n        var elems = [];\n\n        each(str.split(/\\s*,\\s*/), function(s) {\n            var m = s.match(/([#.])(\\w+)/);\n            if (m === null) {\n                throw Error('Supports only simple single #ID or .CLASS selector.');\n            }\n\n            if (m[1]) {\n                var elem = document.getElementById(m[2]);\n\n                if (elem) {\n                    elems.push(elem);\n                }\n            }\n\n            elems = elems.concat(getElementsByClassName(str));\n        });\n\n        return elems;\n    }\n\n\n    /**\n     * Add the classNames for element.\n     *\n     * @param {Element} elem\n     * @param {String} value\n     */\n    function addClass(elem, value) {\n        if (value && typeof value === \"string\") {\n            var classNames = (elem.className + ' ' + value).split(/\\s+/);\n            var setClass = ' ';\n\n            each(classNames, function (className) {\n                if (setClass.indexOf(' ' + className + ' ') < 0) {\n                    setClass += className + ' ';\n                }\n            });\n\n            elem.className = setClass.slice(1, -1);\n        }\n    }\n\n\n    /**\n     * Get meta element content value\n     *\n     * @param {String} name\n     *\n     * @returns {String|*}\n     */\n    function getMetaContentByName(name) {\n        return (document.getElementsByName(name)[0] || 0).content;\n    }\n\n\n    /**\n     * Get elements By className for IE8-\n     *\n     * @param {Element} elem element\n     * @param {String} name className\n     * @param {String} tag tagName\n     *\n     * @returns {HTMLCollection|Array}\n     */\n    function getElementsByClassName(elem, name, tag) {\n        if (elem.getElementsByClassName) {\n            return elem.getElementsByClassName(name);\n        }\n\n        var elements = [];\n        var elems = elem.getElementsByTagName(tag || '*');\n        name = ' ' + name + ' ';\n\n        each(elems, function (elem) {\n            if ((' ' + (elem.className || '') + ' ').indexOf(name) >= 0) {\n                elements.push(elem);\n            }\n        });\n\n        return elements;\n    }\n\n\n    /**\n     * Create element by string.\n     *\n     * @param {String} str\n     *\n     * @returns {NodeList}\n     */\n    function createElementByString(str) {\n        var div = document.createElement('div');\n        div.innerHTML = str;\n\n        return div.childNodes;\n    }\n\n\n    /**\n     * Merge objects.\n     *\n     * @returns {Object}\n     */\n    function mixin() {\n        var args = arguments;\n\n        if (Object$assign) {\n            return Object$assign.apply(null, args);\n        }\n\n        var target = {};\n\n        each(args, function (it) {\n            each(it, function (v, k) {\n                target[k] = v;\n            });\n        });\n\n        return args[0] = target;\n    }\n\n\n    /**\n     * Get dataset object.\n     *\n     * @param {Element} elem\n     *\n     * @returns {Object}\n     */\n    function dataset(elem) {\n        if (elem.dataset) {\n            return JSON.parse(JSON.stringify(elem.dataset));\n        }\n\n        var target = {};\n\n        if (elem.hasAttributes()) {\n            each(elem.attributes, function (attr) {\n                var name = attr.name;\n                if (name.indexOf('data-') !== 0) {\n                    return true;\n                }\n\n                name = name.replace(/^data-/i, '')\n                    .replace(/-(\\w)/g, function (all, letter) {\n                        return letter.toUpperCase();\n                    });\n\n                target[name] = attr.value;\n            });\n\n            return target;\n        }\n\n        return {};\n    }\n\n\n    /**\n     * found element in the array.\n     *\n     * @param {Array|Object} elem\n     * @param {Array} arr\n     * @param {Number} i\n     *\n     * @returns {Number}\n     */\n    function inArray(elem, arr, i) {\n        var len;\n\n        if (arr) {\n            if (Array$indexOf) {\n                return Array$indexOf.call(arr, elem, i);\n            }\n\n            len = arr.length;\n            i = i ? i < 0 ? Math.max(0, len + i) : i : 0;\n\n            for (; i < len; i++) {\n                // Skip accessing in sparse arrays\n                if (i in arr && arr[i] === elem) {\n                    return i;\n                }\n            }\n        }\n\n        return -1;\n    }\n\n\n    /**\n     * Simple each.\n     *\n     * @param {Array|Object} obj\n     * @param {Function} callback\n     *\n     * @returns {*}\n     */\n    function each(obj, callback) {\n        var length = obj.length;\n\n        if (length === undefined) {\n            for (var name in obj) {\n                if (obj.hasOwnProperty(name)) {\n                    if (callback.call(obj[name], obj[name], name) === false) {\n                        break;\n                    }\n                }\n            }\n        } else {\n            for (var i = 0; i < length; i++) {\n                if (callback.call(obj[i], obj[i], i) === false) {\n                    break;\n                }\n            }\n        }\n    }\n\n\n    /**\n     * Dom ready.\n     *\n     * @param {Function} fn\n     *\n     * @link https://github.com/jed/alReady.js\n     */\n    function alReady ( fn ) {\n        var add = 'addEventListener';\n        var pre = document[ add ] ? '' : 'on';\n\n        ~document.readyState.indexOf( 'm' ) ? fn() :\n            'load DOMContentLoaded readystatechange'.replace( /\\w+/g, function( type, i ) {\n                ( i ? document : window )\n                    [ pre ? 'attachEvent' : add ]\n                (\n                    pre + type,\n                    function(){ if ( fn ) if ( i < 6 || ~document.readyState.indexOf( 'm' ) ) fn(), fn = 0 },\n                    !1\n                )\n            })\n    }\n})(window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/simple-line-icons/icons-lte-ie7.js",
    "content": "/* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */\n\nwindow.onload = function() {\n\tfunction addIcon(el, entity) {\n\t\tvar html = el.innerHTML;\n\t\tel.innerHTML = '<span style=\"font-family: \\'Simple-Line-Icons\\'\">' + entity + '</span>' + html;\n\t}\n\tvar icons = {\n\t\t\t'icon-user-unfollow' : '&#xe000;',\n\t\t\t'icon-user-friends' : '&#xe001;',\n\t\t\t'icon-user-following' : '&#xe002;',\n\t\t\t'icon-user-follow' : '&#xe003;',\n\t\t\t'icon-trophy' : '&#xe004;',\n\t\t\t'icon-speedometer' : '&#xe005;',\n\t\t\t'icon-social-youtube' : '&#xe006;',\n\t\t\t'icon-social-twitter' : '&#xe007;',\n\t\t\t'icon-social-tumblr' : '&#xe008;',\n\t\t\t'icon-social-facebook' : '&#xe009;',\n\t\t\t'icon-social-dropbox' : '&#xe00a;',\n\t\t\t'icon-social-dribbble' : '&#xe00b;',\n\t\t\t'icon-shield' : '&#xe00c;',\n\t\t\t'icon-screen-tablet' : '&#xe00d;',\n\t\t\t'icon-screen-smartphone' : '&#xe00e;',\n\t\t\t'icon-screen-desktop' : '&#xe00f;',\n\t\t\t'icon-plane' : '&#xe010;',\n\t\t\t'icon-notebook' : '&#xe011;',\n\t\t\t'icon-moustache' : '&#xe012;',\n\t\t\t'icon-mouse' : '&#xe013;',\n\t\t\t'icon-magnet' : '&#xe014;',\n\t\t\t'icon-magic-wand' : '&#xe015;',\n\t\t\t'icon-hourglass' : '&#xe016;',\n\t\t\t'icon-graduation' : '&#xe017;',\n\t\t\t'icon-ghost' : '&#xe018;',\n\t\t\t'icon-game-controller' : '&#xe019;',\n\t\t\t'icon-fire' : '&#xe01a;',\n\t\t\t'icon-eyeglasses' : '&#xe01b;',\n\t\t\t'icon-envelope-open' : '&#xe01c;',\n\t\t\t'icon-envelope-letter' : '&#xe01d;',\n\t\t\t'icon-energy' : '&#xe01e;',\n\t\t\t'icon-emoticon-smile' : '&#xe01f;',\n\t\t\t'icon-disc' : '&#xe020;',\n\t\t\t'icon-cursor-move' : '&#xe021;',\n\t\t\t'icon-crop' : '&#xe022;',\n\t\t\t'icon-credit-card' : '&#xe023;',\n\t\t\t'icon-chemistry' : '&#xe024;',\n\t\t\t'icon-bell' : '&#xe025;',\n\t\t\t'icon-badge' : '&#xe026;',\n\t\t\t'icon-anchor' : '&#xe027;',\n\t\t\t'icon-action-redo' : '&#xe028;',\n\t\t\t'icon-action-undo' : '&#xe029;',\n\t\t\t'icon-bag' : '&#xe02a;',\n\t\t\t'icon-basket' : '&#xe02b;',\n\t\t\t'icon-basket-loaded' : '&#xe02c;',\n\t\t\t'icon-book-open' : '&#xe02d;',\n\t\t\t'icon-briefcase' : '&#xe02e;',\n\t\t\t'icon-bubbles' : '&#xe02f;',\n\t\t\t'icon-calculator' : '&#xe030;',\n\t\t\t'icon-call-end' : '&#xe031;',\n\t\t\t'icon-call-in' : '&#xe032;',\n\t\t\t'icon-call-out' : '&#xe033;',\n\t\t\t'icon-compass' : '&#xe034;',\n\t\t\t'icon-cup' : '&#xe035;',\n\t\t\t'icon-diamond' : '&#xe036;',\n\t\t\t'icon-direction' : '&#xe037;',\n\t\t\t'icon-directions' : '&#xe038;',\n\t\t\t'icon-docs' : '&#xe039;',\n\t\t\t'icon-drawer' : '&#xe03a;',\n\t\t\t'icon-drop' : '&#xe03b;',\n\t\t\t'icon-earphones' : '&#xe03c;',\n\t\t\t'icon-earphones-alt' : '&#xe03d;',\n\t\t\t'icon-feed' : '&#xe03e;',\n\t\t\t'icon-film' : '&#xe03f;',\n\t\t\t'icon-folder-alt' : '&#xe040;',\n\t\t\t'icon-frame' : '&#xe041;',\n\t\t\t'icon-globe' : '&#xe042;',\n\t\t\t'icon-globe-alt' : '&#xe043;',\n\t\t\t'icon-handbag' : '&#xe044;',\n\t\t\t'icon-layers' : '&#xe045;',\n\t\t\t'icon-map' : '&#xe046;',\n\t\t\t'icon-picture' : '&#xe047;',\n\t\t\t'icon-pin' : '&#xe048;',\n\t\t\t'icon-playlist' : '&#xe049;',\n\t\t\t'icon-present' : '&#xe04a;',\n\t\t\t'icon-printer' : '&#xe04b;',\n\t\t\t'icon-puzzle' : '&#xe04c;',\n\t\t\t'icon-speech' : '&#xe04d;',\n\t\t\t'icon-vector' : '&#xe04e;',\n\t\t\t'icon-wallet' : '&#xe04f;',\n\t\t\t'icon-arrow-down' : '&#xe050;',\n\t\t\t'icon-arrow-left' : '&#xe051;',\n\t\t\t'icon-arrow-right' : '&#xe052;',\n\t\t\t'icon-arrow-up' : '&#xe053;',\n\t\t\t'icon-bar-chart' : '&#xe054;',\n\t\t\t'icon-bulb' : '&#xe055;',\n\t\t\t'icon-calendar' : '&#xe056;',\n\t\t\t'icon-control-end' : '&#xe057;',\n\t\t\t'icon-control-forward' : '&#xe058;',\n\t\t\t'icon-control-pause' : '&#xe059;',\n\t\t\t'icon-control-play' : '&#xe05a;',\n\t\t\t'icon-control-rewind' : '&#xe05b;',\n\t\t\t'icon-control-start' : '&#xe05c;',\n\t\t\t'icon-cursor' : '&#xe05d;',\n\t\t\t'icon-dislike' : '&#xe05e;',\n\t\t\t'icon-equalizer' : '&#xe05f;',\n\t\t\t'icon-graph' : '&#xe060;',\n\t\t\t'icon-grid' : '&#xe061;',\n\t\t\t'icon-home' : '&#xe062;',\n\t\t\t'icon-like' : '&#xe063;',\n\t\t\t'icon-list' : '&#xe064;',\n\t\t\t'icon-login' : '&#xe065;',\n\t\t\t'icon-logout' : '&#xe066;',\n\t\t\t'icon-loop' : '&#xe067;',\n\t\t\t'icon-microphone' : '&#xe068;',\n\t\t\t'icon-music-tone' : '&#xe069;',\n\t\t\t'icon-music-tone-alt' : '&#xe06a;',\n\t\t\t'icon-note' : '&#xe06b;',\n\t\t\t'icon-pencil' : '&#xe06c;',\n\t\t\t'icon-pie-chart' : '&#xe06d;',\n\t\t\t'icon-question' : '&#xe06e;',\n\t\t\t'icon-rocket' : '&#xe06f;',\n\t\t\t'icon-share' : '&#xe070;',\n\t\t\t'icon-share-alt' : '&#xe071;',\n\t\t\t'icon-shuffle' : '&#xe072;',\n\t\t\t'icon-size-actual' : '&#xe073;',\n\t\t\t'icon-size-fullscreen' : '&#xe074;',\n\t\t\t'icon-support' : '&#xe075;',\n\t\t\t'icon-tag' : '&#xe076;',\n\t\t\t'icon-trash' : '&#xe077;',\n\t\t\t'icon-umbrella' : '&#xe078;',\n\t\t\t'icon-wrench' : '&#xe079;',\n\t\t\t'icon-ban' : '&#xe07a;',\n\t\t\t'icon-bubble' : '&#xe07b;',\n\t\t\t'icon-camcorder' : '&#xe07c;',\n\t\t\t'icon-camera' : '&#xe07d;',\n\t\t\t'icon-check' : '&#xe07e;',\n\t\t\t'icon-clock' : '&#xe07f;',\n\t\t\t'icon-close' : '&#xe080;',\n\t\t\t'icon-cloud-download' : '&#xe081;',\n\t\t\t'icon-cloud-upload' : '&#xe082;',\n\t\t\t'icon-doc' : '&#xe083;',\n\t\t\t'icon-envelope' : '&#xe084;',\n\t\t\t'icon-eye' : '&#xe085;',\n\t\t\t'icon-flag' : '&#xe086;',\n\t\t\t'icon-folder' : '&#xe087;',\n\t\t\t'icon-heart' : '&#xe088;',\n\t\t\t'icon-info' : '&#xe089;',\n\t\t\t'icon-key' : '&#xe08a;',\n\t\t\t'icon-link' : '&#xe08b;',\n\t\t\t'icon-lock' : '&#xe08c;',\n\t\t\t'icon-lock-open' : '&#xe08d;',\n\t\t\t'icon-magnifier' : '&#xe08e;',\n\t\t\t'icon-magnifier-add' : '&#xe08f;',\n\t\t\t'icon-magnifier-remove' : '&#xe090;',\n\t\t\t'icon-paper-clip' : '&#xe091;',\n\t\t\t'icon-paper-plane' : '&#xe092;',\n\t\t\t'icon-plus' : '&#xe093;',\n\t\t\t'icon-pointer' : '&#xe094;',\n\t\t\t'icon-power' : '&#xe095;',\n\t\t\t'icon-refresh' : '&#xe096;',\n\t\t\t'icon-reload' : '&#xe097;',\n\t\t\t'icon-settings' : '&#xe098;',\n\t\t\t'icon-star' : '&#xe099;',\n\t\t\t'icon-symbol-female' : '&#xe09a;',\n\t\t\t'icon-symbol-male' : '&#xe09b;',\n\t\t\t'icon-target' : '&#xe09c;',\n\t\t\t'icon-user-female' : '&#xe09d;',\n\t\t\t'icon-user-male' : '&#xe09e;',\n\t\t\t'icon-volume-1' : '&#xe09f;',\n\t\t\t'icon-volume-2' : '&#xe0a0;',\n\t\t\t'icon-volume-off' : '&#xe0a1;'\n\t\t},\n\t\tels = document.getElementsByTagName('*'),\n\t\ti, attr, c, el;\n\tfor (i = 0; ; i += 1) {\n\t\tel = els[i];\n\t\tif(!el) {\n\t\t\tbreak;\n\t\t}\n\t\tattr = el.getAttribute('data-icon');\n\t\tif (attr) {\n\t\t\taddIcon(el, attr);\n\t\t}\n\t\tc = el.className;\n\t\tc = c.match(/icon-[^\\s'\"]+/);\n\t\tif (c && icons[c[0]]) {\n\t\t\taddIcon(el, icons[c[0]]);\n\t\t}\n\t}\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/simple-line-icons/simple-line-icons.css",
    "content": "/* http://graphicburger.com/simple-line-icons-webfont/ */\n@font-face {\n\tfont-family: 'Simple-Line-Icons';\n\n\tsrc:url('fonts/Simple-Line-Icons.eot');\n\tsrc:url('fonts/Simple-Line-Icons.eot?#iefix') format('embedded-opentype'),\n\t\turl('fonts/Simple-Line-Icons.woff') format('woff'),\n\t\turl('fonts/Simple-Line-Icons.ttf') format('truetype'),\n\t\turl('fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n@media screen and (-webkit-min-device-pixel-ratio:0) {\n\t@font-face {\n\t\tfont-family: 'Simple-Line-Icons';\n\t\tsrc: url('fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg');\n\t}\n}\n\n/* Use the following CSS code if you want to use data attributes for inserting your icons */\n[data-icon]:before {\n\tfont-family: 'Simple-Line-Icons';\n\tcontent: attr(data-icon);\n\tspeak: none;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n/* Use the following CSS code if you want to have a class per icon */\n/*\nInstead of a list of all class selectors,\nyou can use the generic selector below, but it's slower:\n[class*=\"icon-\"] {\n*/\n.icon-user-female, .icon-user-follow, .icon-user-following, .icon-user-unfollow, .icon-trophy, .icon-screen-smartphone, .icon-screen-desktop, .icon-plane, .icon-notebook, .icon-moustache, .icon-mouse, .icon-magnet, .icon-energy, .icon-emoticon-smile, .icon-disc, .icon-cursor-move, .icon-crop, .icon-credit-card, .icon-chemistry, .icon-user, .icon-speedometer, .icon-social-youtube, .icon-social-twitter, .icon-social-tumblr, .icon-social-facebook, .icon-social-dropbox, .icon-social-dribbble, .icon-shield, .icon-screen-tablet, .icon-magic-wand, .icon-hourglass, .icon-graduation, .icon-ghost, .icon-game-controller, .icon-fire, .icon-eyeglasses, .icon-envelope-open, .icon-envelope-letter, .icon-bell, .icon-badge, .icon-anchor, .icon-wallet, .icon-vector, .icon-speech, .icon-puzzle, .icon-printer, .icon-present, .icon-playlist, .icon-pin, .icon-picture, .icon-map, .icon-layers, .icon-handbag, .icon-globe-alt, .icon-globe, .icon-frame, .icon-folder-alt, .icon-film, .icon-feed, .icon-earphones-alt, .icon-earphones, .icon-drop, .icon-drawer, .icon-docs, .icon-directions, .icon-direction, .icon-diamond, .icon-cup, .icon-compass, .icon-call-out, .icon-call-in, .icon-call-end, .icon-calculator, .icon-bubbles, .icon-briefcase, .icon-book-open, .icon-basket-loaded, .icon-basket, .icon-bag, .icon-action-undo, .icon-action-redo, .icon-wrench, .icon-umbrella, .icon-trash, .icon-tag, .icon-support, .icon-size-fullscreen, .icon-size-actual, .icon-shuffle, .icon-share-alt, .icon-share, .icon-rocket, .icon-question, .icon-pie-chart, .icon-pencil, .icon-note, .icon-music-tone-alt, .icon-music-tone, .icon-microphone, .icon-loop, .icon-logout, .icon-login, .icon-list, .icon-like, .icon-home, .icon-grid, .icon-graph, .icon-equalizer, .icon-dislike, .icon-cursor, .icon-control-start, .icon-control-rewind, .icon-control-play, .icon-control-pause, .icon-control-forward, .icon-control-end, .icon-calendar, .icon-bulb, .icon-bar-chart, .icon-arrow-up, .icon-arrow-right, .icon-arrow-left, .icon-arrow-down, .icon-ban, .icon-bubble, .icon-camcorder, .icon-camera, .icon-check, .icon-clock, .icon-close, .icon-cloud-download, .icon-cloud-upload, .icon-doc, .icon-envelope, .icon-eye, .icon-flag, .icon-folder, .icon-heart, .icon-info, .icon-key, .icon-link, .icon-lock, .icon-lock-open, .icon-magnifier, .icon-magnifier-add, .icon-magnifier-remove, .icon-paper-clip, .icon-paper-plane, .icon-plus, .icon-pointer, .icon-power, .icon-refresh, .icon-reload, .icon-settings, .icon-star, .icon-symbol-female, .icon-symbol-male, .icon-target, .icon-volume-1, .icon-volume-2, .icon-volume-off, .icon-users {\n\tfont-family: 'Simple-Line-Icons';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\t-webkit-font-smoothing: antialiased;\n}\n.icon-user-female:before {\n\tcontent: \"\\e000\";\n}\n.icon-user-follow:before {\n\tcontent: \"\\e002\";\n}\n.icon-user-following:before {\n\tcontent: \"\\e003\";\n}\n.icon-user-unfollow:before {\n\tcontent: \"\\e004\";\n}\n.icon-trophy:before {\n\tcontent: \"\\e006\";\n}\n.icon-screen-smartphone:before {\n\tcontent: \"\\e010\";\n}\n.icon-screen-desktop:before {\n\tcontent: \"\\e011\";\n}\n.icon-plane:before {\n\tcontent: \"\\e012\";\n}\n.icon-notebook:before {\n\tcontent: \"\\e013\";\n}\n.icon-moustache:before {\n\tcontent: \"\\e014\";\n}\n.icon-mouse:before {\n\tcontent: \"\\e015\";\n}\n.icon-magnet:before {\n\tcontent: \"\\e016\";\n}\n.icon-energy:before {\n\tcontent: \"\\e020\";\n}\n.icon-emoticon-smile:before {\n\tcontent: \"\\e021\";\n}\n.icon-disc:before {\n\tcontent: \"\\e022\";\n}\n.icon-cursor-move:before {\n\tcontent: \"\\e023\";\n}\n.icon-crop:before {\n\tcontent: \"\\e024\";\n}\n.icon-credit-card:before {\n\tcontent: \"\\e025\";\n}\n.icon-chemistry:before {\n\tcontent: \"\\e026\";\n}\n.icon-user:before {\n\tcontent: \"\\e005\";\n}\n.icon-speedometer:before {\n\tcontent: \"\\e007\";\n}\n.icon-social-youtube:before {\n\tcontent: \"\\e008\";\n}\n.icon-social-twitter:before {\n\tcontent: \"\\e009\";\n}\n.icon-social-tumblr:before {\n\tcontent: \"\\e00a\";\n}\n.icon-social-facebook:before {\n\tcontent: \"\\e00b\";\n}\n.icon-social-dropbox:before {\n\tcontent: \"\\e00c\";\n}\n.icon-social-dribbble:before {\n\tcontent: \"\\e00d\";\n}\n.icon-shield:before {\n\tcontent: \"\\e00e\";\n}\n.icon-screen-tablet:before {\n\tcontent: \"\\e00f\";\n}\n.icon-magic-wand:before {\n\tcontent: \"\\e017\";\n}\n.icon-hourglass:before {\n\tcontent: \"\\e018\";\n}\n.icon-graduation:before {\n\tcontent: \"\\e019\";\n}\n.icon-ghost:before {\n\tcontent: \"\\e01a\";\n}\n.icon-game-controller:before {\n\tcontent: \"\\e01b\";\n}\n.icon-fire:before {\n\tcontent: \"\\e01c\";\n}\n.icon-eyeglasses:before {\n\tcontent: \"\\e01d\";\n}\n.icon-envelope-open:before {\n\tcontent: \"\\e01e\";\n}\n.icon-envelope-letter:before {\n\tcontent: \"\\e01f\";\n}\n.icon-bell:before {\n\tcontent: \"\\e027\";\n}\n.icon-badge:before {\n\tcontent: \"\\e028\";\n}\n.icon-anchor:before {\n\tcontent: \"\\e029\";\n}\n.icon-wallet:before {\n\tcontent: \"\\e02a\";\n}\n.icon-vector:before {\n\tcontent: \"\\e02b\";\n}\n.icon-speech:before {\n\tcontent: \"\\e02c\";\n}\n.icon-puzzle:before {\n\tcontent: \"\\e02d\";\n}\n.icon-printer:before {\n\tcontent: \"\\e02e\";\n}\n.icon-present:before {\n\tcontent: \"\\e02f\";\n}\n.icon-playlist:before {\n\tcontent: \"\\e030\";\n}\n.icon-pin:before {\n\tcontent: \"\\e031\";\n}\n.icon-picture:before {\n\tcontent: \"\\e032\";\n}\n.icon-map:before {\n\tcontent: \"\\e033\";\n}\n.icon-layers:before {\n\tcontent: \"\\e034\";\n}\n.icon-handbag:before {\n\tcontent: \"\\e035\";\n}\n.icon-globe-alt:before {\n\tcontent: \"\\e036\";\n}\n.icon-globe:before {\n\tcontent: \"\\e037\";\n}\n.icon-frame:before {\n\tcontent: \"\\e038\";\n}\n.icon-folder-alt:before {\n\tcontent: \"\\e039\";\n}\n.icon-film:before {\n\tcontent: \"\\e03a\";\n}\n.icon-feed:before {\n\tcontent: \"\\e03b\";\n}\n.icon-earphones-alt:before {\n\tcontent: \"\\e03c\";\n}\n.icon-earphones:before {\n\tcontent: \"\\e03d\";\n}\n.icon-drop:before {\n\tcontent: \"\\e03e\";\n}\n.icon-drawer:before {\n\tcontent: \"\\e03f\";\n}\n.icon-docs:before {\n\tcontent: \"\\e040\";\n}\n.icon-directions:before {\n\tcontent: \"\\e041\";\n}\n.icon-direction:before {\n\tcontent: \"\\e042\";\n}\n.icon-diamond:before {\n\tcontent: \"\\e043\";\n}\n.icon-cup:before {\n\tcontent: \"\\e044\";\n}\n.icon-compass:before {\n\tcontent: \"\\e045\";\n}\n.icon-call-out:before {\n\tcontent: \"\\e046\";\n}\n.icon-call-in:before {\n\tcontent: \"\\e047\";\n}\n.icon-call-end:before {\n\tcontent: \"\\e048\";\n}\n.icon-calculator:before {\n\tcontent: \"\\e049\";\n}\n.icon-bubbles:before {\n\tcontent: \"\\e04a\";\n}\n.icon-briefcase:before {\n\tcontent: \"\\e04b\";\n}\n.icon-book-open:before {\n\tcontent: \"\\e04c\";\n}\n.icon-basket-loaded:before {\n\tcontent: \"\\e04d\";\n}\n.icon-basket:before {\n\tcontent: \"\\e04e\";\n}\n.icon-bag:before {\n\tcontent: \"\\e04f\";\n}\n.icon-action-undo:before {\n\tcontent: \"\\e050\";\n}\n.icon-action-redo:before {\n\tcontent: \"\\e051\";\n}\n.icon-wrench:before {\n\tcontent: \"\\e052\";\n}\n.icon-umbrella:before {\n\tcontent: \"\\e053\";\n}\n.icon-trash:before {\n\tcontent: \"\\e054\";\n}\n.icon-tag:before {\n\tcontent: \"\\e055\";\n}\n.icon-support:before {\n\tcontent: \"\\e056\";\n}\n.icon-size-fullscreen:before {\n\tcontent: \"\\e057\";\n}\n.icon-size-actual:before {\n\tcontent: \"\\e058\";\n}\n.icon-shuffle:before {\n\tcontent: \"\\e059\";\n}\n.icon-share-alt:before {\n\tcontent: \"\\e05a\";\n}\n.icon-share:before {\n\tcontent: \"\\e05b\";\n}\n.icon-rocket:before {\n\tcontent: \"\\e05c\";\n}\n.icon-question:before {\n\tcontent: \"\\e05d\";\n}\n.icon-pie-chart:before {\n\tcontent: \"\\e05e\";\n}\n.icon-pencil:before {\n\tcontent: \"\\e05f\";\n}\n.icon-note:before {\n\tcontent: \"\\e060\";\n}\n.icon-music-tone-alt:before {\n\tcontent: \"\\e061\";\n}\n.icon-music-tone:before {\n\tcontent: \"\\e062\";\n}\n.icon-microphone:before {\n\tcontent: \"\\e063\";\n}\n.icon-loop:before {\n\tcontent: \"\\e064\";\n}\n.icon-logout:before {\n\tcontent: \"\\e065\";\n}\n.icon-login:before {\n\tcontent: \"\\e066\";\n}\n.icon-list:before {\n\tcontent: \"\\e067\";\n}\n.icon-like:before {\n\tcontent: \"\\e068\";\n}\n.icon-home:before {\n\tcontent: \"\\e069\";\n}\n.icon-grid:before {\n\tcontent: \"\\e06a\";\n}\n.icon-graph:before {\n\tcontent: \"\\e06b\";\n}\n.icon-equalizer:before {\n\tcontent: \"\\e06c\";\n}\n.icon-dislike:before {\n\tcontent: \"\\e06d\";\n}\n.icon-cursor:before {\n\tcontent: \"\\e06e\";\n}\n.icon-control-start:before {\n\tcontent: \"\\e06f\";\n}\n.icon-control-rewind:before {\n\tcontent: \"\\e070\";\n}\n.icon-control-play:before {\n\tcontent: \"\\e071\";\n}\n.icon-control-pause:before {\n\tcontent: \"\\e072\";\n}\n.icon-control-forward:before {\n\tcontent: \"\\e073\";\n}\n.icon-control-end:before {\n\tcontent: \"\\e074\";\n}\n.icon-calendar:before {\n\tcontent: \"\\e075\";\n}\n.icon-bulb:before {\n\tcontent: \"\\e076\";\n}\n.icon-bar-chart:before {\n\tcontent: \"\\e077\";\n}\n.icon-arrow-up:before {\n\tcontent: \"\\e078\";\n}\n.icon-arrow-right:before {\n\tcontent: \"\\e079\";\n}\n.icon-arrow-left:before {\n\tcontent: \"\\e07a\";\n}\n.icon-arrow-down:before {\n\tcontent: \"\\e07b\";\n}\n.icon-ban:before {\n\tcontent: \"\\e07c\";\n}\n.icon-bubble:before {\n\tcontent: \"\\e07d\";\n}\n.icon-camcorder:before {\n\tcontent: \"\\e07e\";\n}\n.icon-camera:before {\n\tcontent: \"\\e07f\";\n}\n.icon-check:before {\n\tcontent: \"\\e080\";\n}\n.icon-clock:before {\n\tcontent: \"\\e081\";\n}\n.icon-close:before {\n\tcontent: \"\\e082\";\n}\n.icon-cloud-download:before {\n\tcontent: \"\\e083\";\n}\n.icon-cloud-upload:before {\n\tcontent: \"\\e084\";\n}\n.icon-doc:before {\n\tcontent: \"\\e085\";\n}\n.icon-envelope:before {\n\tcontent: \"\\e086\";\n}\n.icon-eye:before {\n\tcontent: \"\\e087\";\n}\n.icon-flag:before {\n\tcontent: \"\\e088\";\n}\n.icon-folder:before {\n\tcontent: \"\\e089\";\n}\n.icon-heart:before {\n\tcontent: \"\\e08a\";\n}\n.icon-info:before {\n\tcontent: \"\\e08b\";\n}\n.icon-key:before {\n\tcontent: \"\\e08c\";\n}\n.icon-link:before {\n\tcontent: \"\\e08d\";\n}\n.icon-lock:before {\n\tcontent: \"\\e08e\";\n}\n.icon-lock-open:before {\n\tcontent: \"\\e08f\";\n}\n.icon-magnifier:before {\n\tcontent: \"\\e090\";\n}\n.icon-magnifier-add:before {\n\tcontent: \"\\e091\";\n}\n.icon-magnifier-remove:before {\n\tcontent: \"\\e092\";\n}\n.icon-paper-clip:before {\n\tcontent: \"\\e093\";\n}\n.icon-paper-plane:before {\n\tcontent: \"\\e094\";\n}\n.icon-plus:before {\n\tcontent: \"\\e095\";\n}\n.icon-pointer:before {\n\tcontent: \"\\e096\";\n}\n.icon-power:before {\n\tcontent: \"\\e097\";\n}\n.icon-refresh:before {\n\tcontent: \"\\e098\";\n}\n.icon-reload:before {\n\tcontent: \"\\e099\";\n}\n.icon-settings:before {\n\tcontent: \"\\e09a\";\n}\n.icon-star:before {\n\tcontent: \"\\e09b\";\n}\n.icon-symbol-female:before {\n\tcontent: \"\\e09c\";\n}\n.icon-symbol-male:before {\n\tcontent: \"\\e09d\";\n}\n.icon-target:before {\n\tcontent: \"\\e09e\";\n}\n.icon-volume-1:before {\n\tcontent: \"\\e09f\";\n}\n.icon-volume-2:before {\n\tcontent: \"\\e0a0\";\n}\n.icon-volume-off:before {\n\tcontent: \"\\e0a1\";\n}\n.icon-users:before {\n\tcontent: \"\\e001\";\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/.gitignore",
    "content": "/.editorconfig\n/.jscsrc\n/.jshintignore\n/.jshintrc\n/.npmignore\n/.travis.yml\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/Gruntfile.js",
    "content": "module.exports = function (grunt) {\n  'use strict';\n\n  /**\n   * read optional JSON from filepath\n   * @param {String} filepath\n   * @return {Object}\n   */\n  var readOptionalJSON = function (filepath) {\n    var data = {};\n    try {\n      data = grunt.file.readJSON(filepath);\n      // The concatenated file won't pass onevar\n      // But our modules can\n      delete data.onever;\n    } catch (e) { }\n    return data;\n  };\n\n  var customLaunchers = {\n    /*\n    'SL_IE8': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '8.0',\n      platform: 'windows XP'\n    },\n    'SL_IE9': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '9.0',\n      platform: 'windows 7'\n    },\n    */\n    'SL_IE10': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '10.0',\n      platform: 'windows 8'\n    },\n    'SL_IE11': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '11.0',\n      platform: 'windows 8.1'\n    },\n    /*\n    'SL_EDGE': {\n      base: 'SauceLabs',\n      browserName: 'microsoftedge',\n      version: '20',\n      platform: 'windows 10'\n    },\n    */\n    'SL_CHROME': {\n      base: 'SauceLabs',\n      browserName: 'chrome',\n      version: '43',\n      platform: 'windows 8'\n    },\n    'SL_FIREFOX': {\n      base: 'SauceLabs',\n      browserName: 'firefox',\n      version: '38',\n      platform: 'windows 8'\n    },\n    'SL_SAFARI': {\n      base: 'SauceLabs',\n      browserName: 'safari',\n      version: '8.0',\n      platform: 'OS X 10.10'\n    }\n  };\n\n  grunt.initConfig({\n    // package File\n    pkg: grunt.file.readJSON('package.json'),\n\n    // bulid source(grunt-build.js).\n    build: {\n      all: {\n        baseUrl: 'src/js',        // base url\n        startFile: 'intro.js',    // intro part\n        endFile: 'outro.js',      // outro part\n        outFile: 'dist/summernote.js' // out file\n      }\n    },\n\n    // for javascript convention.\n    jshint: {\n      all: {\n        src: [\n          'src/**/*.js',\n          'plugin/**/*.js',\n          'lang/**/*.js',\n          'Gruntfile.js',\n          'test/**/*.js',\n          '!test/coverage/**/*.js',\n          'build/*.js'\n        ],\n        options: {\n          jshintrc: true\n        }\n      },\n      dist: {\n        src: 'dist/summernote.js',\n        options: readOptionalJSON('.jshintrc')\n      }\n    },\n\n    jscs: {\n      src: ['*.js', 'src/**/*.js', 'test/**/*.js', 'plugin/**/*.js'],\n      gruntfile: 'Gruntfile.js',\n      build: 'build'\n    },\n\n    // uglify: minify javascript\n    uglify: {\n      options: {\n        banner: '/*! Summernote v<%=pkg.version%> | (c) 2013-2015 Alan Hong and other contributors | MIT license */\\n'\n      },\n      all: {\n        files: [\n          { 'dist/summernote.min.js': ['dist/summernote.js'] },\n          {\n            expand: true,\n            cwd: 'dist/lang',\n            src: '**/*.js',\n            dest: 'dist/lang',\n            ext: '.min.js'\n          },\n          {\n            expand: true,\n            cwd: 'dist/plugin',\n            src: '**/*.js',\n            dest: 'dist/plugin',\n            ext: '.min.js'\n          }\n        ]\n      }\n    },\n\n    // recess: minify stylesheets\n    recess: {\n      dist: {\n        options: { compile: true, compress: true },\n        files: [\n          {\n            'dist/summernote.css': ['src/less/summernote.less']\n          },\n          {\n            expand: true,\n            cwd: 'dist/plugin',\n            src: '**/*.css',\n            dest: 'dist/plugin',\n            ext: '.min.css'\n          }\n        ]\n      }\n    },\n\n    // compress: summernote-{{version}}-dist.zip\n    compress: {\n      main: {\n        options: {\n          archive: function () {\n            return 'dist/summernote-{{version}}-dist.zip'.replace(\n              '{{version}}',\n              grunt.config('pkg.version')\n            );\n          }\n        },\n        files: [{\n          expand: true,\n          src: [\n            'dist/*.js',\n            'dist/*.css',\n            'dist/font/*'\n          ]\n        }, {\n          src: ['plugin/**/*.js', 'plugin/**/*.css', 'lang/**/*.js'],\n          dest: 'dist/'\n        }]\n      }\n    },\n\n    // connect configuration.\n    connect: {\n      all: {\n        options: {\n          port: 3000\n        }\n      }\n    },\n\n    // watch source code change\n    watch: {\n      all: {\n        files: ['src/less/*.less', 'src/js/**/*.js', 'test/unit/**/*.js'],\n        tasks: ['recess', 'lint'],\n        options: {\n          livereload: true\n        }\n      }\n    },\n\n    // Meteor commands to test and publish package\n    exec: {\n      'meteor-test': {\n        command: 'meteor/runtests.sh'\n      },\n      'meteor-publish': {\n        command: 'meteor/publish.sh'\n      }\n    },\n\n    karma: {\n      options: {\n        configFile: './test/karma.conf.js'\n      },\n      all: {\n        // Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS, IE\n        browsers: ['PhantomJS'],\n        reporters: ['progress']\n      },\n      dist: {\n        singleRun: true,\n        browsers: ['PhantomJS']\n      },\n      travis: {\n        singleRun: true,\n        browsers: ['PhantomJS'],\n        reporters: ['progress', 'coverage']\n      },\n      saucelabs: {\n        reporters: ['saucelabs'],\n        sauceLabs: {\n          testName: '[Travis] unit tests for summernote',\n          startConnect: false,\n          tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER,\n          build: process.env.TRAVIS_BUILD_NUMBER,\n          tags: [process.env.TRAVIS_BRANCH, process.env.TRAVIS_PULL_REQUEST]\n        },\n        captureTimeout: 120000,\n        customLaunchers: customLaunchers,\n        browsers: Object.keys(customLaunchers),\n        singleRun: true\n      }\n    },\n\n    coveralls: {\n      options: {\n        force: false\n      },\n      travis: {\n        src: 'test/coverage/**/lcov.info'\n      }\n    },\n    clean: {\n      dist: ['dist/**/*']\n    },\n    copy: {\n      dist: {\n        files: [\n          { src: 'lang/*', dest: 'dist/' },\n          { src: 'plugin/**/*', dest: 'dist/' },\n          { expand: true, cwd: 'src/icons/dist/font/', src: ['**', '!*.html'], dest: 'dist/font/' },\n          { src: 'src/icons/dist/summernote.css', dest: 'src/icons/dist/summernote.less' }\n        ]\n      }\n    },\n    webfont: {\n      icons: {\n        src: 'src/icons/*.svg',\n        dest: 'src/icons/dist/font',\n        destCss: 'src/icons/dist/',\n        options: {\n          font: 'summernote',\n          template: 'src/icons/templates/summernote.css'\n        }\n      }\n    }\n  });\n\n  // load all tasks from the grunt plugins used in this file\n  require('load-grunt-tasks')(grunt);\n\n  // load all grunts/*.js\n  grunt.loadTasks('grunts');\n\n  // server: run server for development\n  grunt.registerTask('server', ['connect', 'watch']);\n\n  // lint\n  grunt.registerTask('lint', ['jshint', 'jscs']);\n\n  // test: unit test on test folder\n  grunt.registerTask('test', ['lint', 'karma:all']);\n\n  // test: unit test on travis\n  grunt.registerTask('test-travis', ['lint', 'karma:travis']);\n\n  // test: saucelabs test\n  grunt.registerTask('saucelabs-test', ['karma:saucelabs']);\n\n  // dist: make dist files\n  grunt.registerTask('dist', [\n    'clean:dist',\n    'build', 'webfont', 'lint', 'karma:dist',\n    'copy:dist', 'uglify', 'recess', 'compress'\n  ]);\n\n  // default: server\n  grunt.registerTask('default', ['server']);\n\n  // Meteor tasks\n  grunt.registerTask('meteor-test', 'exec:meteor-test');\n  grunt.registerTask('meteor-publish', 'exec:meteor-publish');\n  grunt.registerTask('meteor', ['meteor-test', 'meteor-publish']);\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015~ Summernote Team (https://github.com/orgs/summernote/people)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/MAINTAIN.md",
    "content": "## Publish new version\n\n### 1. `develop` to `master`\n\nSend pull request `develop` to `master` on github repository and merge it.\nhttps://github.com/summernote/summernote/compare/master...develop\n\n### 2. Build dist files\n\nBuild dist files and push to master\n```bash\n# change branch\ngit checkout master\n# fetch all changes\ngit pull\n# build dist files and binary(.zip) for release post\ngrunt dist\n# Push new dist files to remote repository.\ngit commit -a -m \"Update dist files\"\ngit push origin\n```\n\n### 3. Release new version\nPost release note with new tag version on github\n\nhttps://github.com/summernote/summernote/releases/new\n\n### 4. Publish\n\nPublish on npm\n```bash\nnpm publish\n```\n\nPublish on meteor\n```bash\nmeteor/publish.sh\n```\n\n### 05. Update summernote.github.io\nUpdate summernote version in _config.yml.\n\n### 06. Update connector\n - [summernote-rails](https://github.com/summernote/summernote-rails/blob/master/MAINTAIN.md)\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/bower.json",
    "content": "{\n  \"name\": \"summernote\",\n  \"homepage\": \"http://summernote.org\",\n  \"license\": \"MIT\",\n  \"main\": [\n    \"./dist/summernote.js\",\n    \"./dist/summernote.css\"\n  ],\n  \"ignore\": [\n    \"**/.*\",\n    \"Gruntfile.js\",\n    \"MAINTAIN.md\",\n    \"grunts\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\"\n  ],\n  \"dependencies\": {\n    \"jquery\": \">= 1.9.0\",\n    \"bootstrap\": \">= 3.0.1\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/composer.json",
    "content": "{\n    \"name\": \"summernote/summernote\",\n    \"description\": \"Super Simple WYSIWYG Editor on Bootstrap(3.0 and 2.x).\",\n    \"type\": \"library\",\n    \"keywords\": [\n        \"wysiwyg\"\n    ],\n    \"homepage\": \"http://summernote.org/\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Alan\",\n            \"email\": \"susukang98@gmail.com\",\n            \"role\": \"lead\"\n        }\n    ],\n    \"support\": {\n        \"issues\": \"https://github.com/summernote/summernote/issues\"\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/dist/lang/summernote-zh-CN.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-CN': {\n      font: {\n        bold: '粗体',\n        italic: '斜体',\n        underline: '下划线',\n        clear: '清除格式',\n        height: '行高',\n        name: '字体',\n        strikethrough: '删除线',\n        subscript: '下标',\n        superscript: '上标',\n        size: '字号'\n      },\n      image: {\n        image: '图片',\n        insert: '插入图片',\n        resizeFull: '缩放至 100%',\n        resizeHalf: '缩放至 50%',\n        resizeQuarter: '缩放至 25%',\n        floatLeft: '靠左浮动',\n        floatRight: '靠右浮动',\n        floatNone: '取消浮动',\n        shapeRounded: '形状: 圆角',\n        shapeCircle: '形状: 圆',\n        shapeThumbnail: '形状: 缩略图',\n        shapeNone: '形状: 无',\n        dragImageHere: '将图片拖拽至此处',\n        selectFromFiles: '从本地上传',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '图片地址',\n        remove: '移除图片'\n      },\n      video: {\n        video: '视频',\n        videoLink: '视频链接',\n        insert: '插入视频',\n        url: '视频地址',\n        providers: '(优酷, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '链接',\n        insert: '插入链接',\n        unlink: '去除链接',\n        edit: '编辑链接',\n        textToDisplay: '显示文本',\n        url: '链接地址',\n        openInNewWindow: '在新窗口打开'\n      },\n      table: {\n        table: '表格'\n      },\n      hr: {\n        insert: '水平线'\n      },\n      style: {\n        style: '样式',\n        p: '普通',\n        blockquote: '引用',\n        pre: '代码',\n        h1: '标题 1',\n        h2: '标题 2',\n        h3: '标题 3',\n        h4: '标题 4',\n        h5: '标题 5',\n        h6: '标题 6'\n      },\n      lists: {\n        unordered: '无序列表',\n        ordered: '有序列表'\n      },\n      options: {\n        help: '帮助',\n        fullscreen: '全屏',\n        codeview: '源代码'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '减少缩进',\n        indent: '增加缩进',\n        left: '左对齐',\n        center: '居中对齐',\n        right: '右对齐',\n        justify: '两端对齐'\n      },\n      color: {\n        recent: '最近使用',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重置',\n        resetToDefault: '默认'\n      },\n      shortcut: {\n        shortcuts: '快捷键',\n        close: '关闭',\n        textFormatting: '文本格式',\n        action: '动作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文档样式',\n        extraKeys: '额外按键'\n      },\n      history: {\n        undo: '撤销',\n        redo: '重做'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/dist/plugin/databasic/summernote-ext-databasic.css",
    "content": ".ext-databasic {\n\tposition: relative;\n\tdisplay: block;\n\tmin-height: 50px;\n\tbackground-color: cyan;\n\ttext-align: center;\n\tpadding: 20px;\n\tborder: 1px solid white;\n\tborder-radius: 10px;\n}\n\n.ext-databasic p {\n\tcolor: white;\n\tfont-size: 1.2em;\n\tmargin: 0;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/dist/plugin/databasic/summernote-ext-databasic.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // pull in some summernote core functions\n  var ui = $.summernote.ui;\n  var dom = $.summernote.dom;\n\n  // define the popover plugin\n  var DataBasicPlugin = function (context) {\n    var self = this;\n    var options = context.options;\n    var lang = options.langInfo;\n    \n    self.icon = '<i class=\"fa fa-object-group\"/>';\n\n    // add context menu button for dialog\n    context.memo('button.databasic', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.insert,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    // add popover edit button\n    context.memo('button.databasicDialog', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.edit,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    //  add popover size buttons\n    context.memo('button.databasicSize100', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: lang.image.resizeFull,\n        click: context.createInvokeHandler('editor.resize', '1')\n      }).render();\n    });\n    context.memo('button.databasicSize50', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: lang.image.resizeHalf,\n        click: context.createInvokeHandler('editor.resize', '0.5')\n      }).render();\n    });\n    context.memo('button.databasicSize25', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: lang.image.resizeQuarter,\n        click: context.createInvokeHandler('editor.resize', '0.25')\n      }).render();\n    });\n\n    self.events = {\n      'summernote.init': function (we, e) {\n        // update existing containers\n        $('data.ext-databasic', e.editable).each(function () { self.setContent($(this)); });\n        // TODO: make this an undo snapshot...\n      },\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hidePopover();\n      }\n    };\n\n    self.initialize = function () {\n      // create dialog markup\n      var $container = options.dialogsInBody ? $(document.body) : context.layoutInfo.editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.databasic.testLabel + '</label>' +\n          '<input class=\"ext-databasic-test form-control\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary ext-databasic-save\">' + lang.databasic.insert + '</button>';\n\n      self.$dialog = ui.dialog({\n        title: lang.databasic.name,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n      \n      // create popover\n      self.$popover = ui.popover({\n        className: 'ext-databasic-popover'\n      }).render().appendTo('body');\n      var $content = self.$popover.find('.popover-content');\n      \n      context.invoke('buttons.build', $content, options.popover.databasic);\n    };\n\n    self.destroy = function () {\n      self.$popover.remove();\n      self.$popover = null;\n      self.$dialog.remove();\n      self.$dialog = null;\n    };\n    \n    self.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        self.hidePopover();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      var visible = false;\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          var pos = dom.posFromPlaceholder($data[0]);\n          \n          self.$popover.css({\n            display: 'block',\n            left: pos.left,\n            top: pos.top\n          });\n          \n          // save editor target to let size buttons resize the container\n          context.invoke('editor.saveTarget', $data[0]);\n\n          visible = true;\n        }\n\n      }\n      \n      // hide if not visible\n      if (!visible) {\n        self.hidePopover();\n      }\n\n    };\n\n    self.hidePopover = function () {\n      self.$popover.hide();\n    };\n\n    // define plugin dialog\n    self.getInfo = function () {\n      var rng = context.invoke('editor.createRange');\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          // Get the first node on range(for edit).\n          return {\n            node: $data,\n            test: $data.attr('data-test')\n          };\n        }\n      }\n      \n      return {};\n    };\n\n    self.setContent = function ($node) {\n      $node.html('<p contenteditable=\"false\">' + self.icon + ' ' + lang.databasic.name + ': ' +\n        $node.attr('data-test') + '</p>');\n    };\n\n    self.updateNode = function (info) {\n      self.setContent(info.node\n        .attr('data-test', info.test));\n    };\n\n    self.createNode = function (info) {\n      var $node = $('<data class=\"ext-databasic\"></data>');\n\n      if ($node) {\n        // save node to info structure\n        info.node = $node;\n        // insert node into editor dom\n        context.invoke('editor.insertNode', $node[0]);\n      }\n\n      return $node;\n    };\n    \n    self.showDialog = function () {\n      var info = self.getInfo();\n      var newNode = !info.node;\n      context.invoke('editor.saveRange');\n      \n      self\n        .openDialog(info)\n        .then(function (dialogInfo) {\n          // [workaround] hide dialog before restore range for IE range focus\n          ui.hideDialog(self.$dialog);\n          context.invoke('editor.restoreRange');\n          \n          // insert a new node\n          if (newNode)\n          {\n            self.createNode(info);\n          }\n          \n          // update info with dialog info\n          $.extend(info, dialogInfo);\n          \n          self.updateNode(info);\n        })\n        .fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n\n    };\n    \n    self.openDialog = function (info) {\n      return $.Deferred(function (deferred) {\n        var $inpTest = self.$dialog.find('.ext-databasic-test');\n        var $saveBtn = self.$dialog.find('.ext-databasic-save');\n        var onKeyup = function (event) {\n            if (event.keyCode === 13)\n            {\n              $saveBtn.trigger('click');\n            }\n          };\n        \n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $inpTest.val(info.test).on('input', function () {\n            ui.toggleBtn($saveBtn, $inpTest.val());\n          }).trigger('focus').on('keyup', onKeyup);\n\n          $saveBtn\n            .text(info.node ? lang.databasic.edit : lang.databasic.insert)\n            .click(function (event) {\n              event.preventDefault();\n\n              deferred.resolve({ test: $inpTest.val() });\n            });\n          \n          // init save button\n          ui.toggleBtn($saveBtn, $inpTest.val());\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $inpTest.off('input keyup');\n          $saveBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  // Extends summernote\n  $.extend(true, $.summernote, {\n    plugins: {\n      databasic: DataBasicPlugin\n    },\n    \n    options: {\n      popover: {\n        databasic: [\n          ['databasic', ['databasicDialog', 'databasicSize100', 'databasicSize50', 'databasicSize25']]\n        ]\n      }\n    },\n    \n    // add localization texts\n    lang: {\n      'en-US': {\n        databasic: {\n          name: 'Basic Data Container',\n          insert: 'insert basic data container',\n          edit: 'edit basic data container',\n          testLabel: 'test input'\n        }\n      }\n    }\n    \n  });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/dist/plugin/hello/summernote-ext-hello.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // Extends plugins for adding hello.\n  //  - plugin is external module for customizing.\n  $.extend($.summernote.plugins, {\n    /**\n     * @param {Object} context - context object has status of editor.\n     */\n    'hello': function (context) {\n      var self = this;\n\n      // ui has renders to build ui elements.\n      //  - you can create a button with `ui.button`\n      var ui = $.summernote.ui;\n\n      // add hello button\n      context.memo('button.hello', function () {\n        // create button\n        var button = ui.button({\n          contents: '<i class=\"fa fa-child\"/> Hello',\n          tooltip: 'hello',\n          click: function () {\n            self.$panel.show();\n            self.$panel.hide(500);\n            // invoke insertText method with 'hello' on editor module.\n            context.invoke('editor.insertText', 'hello');\n          }\n        });\n\n        // create jQuery object from button instance.\n        var $hello = button.render();\n        return $hello;\n      });\n\n      // This events will be attached when editor is initialized.\n      this.events = {\n        // This will be called after modules are initialized.\n        'summernote.init': function (we, e) {\n          console.log('summernote initialized', we, e);\n        },\n        // This will be called when user releases a key on editable.\n        'summernote.keyup': function (we, e) {\n          console.log('summernote keyup', we, e);\n        }\n      };\n\n      // This method will be called when editor is initialized by $('..').summernote();\n      // You can create elements for plugin\n      this.initialize = function () {\n        this.$panel = $('<div class=\"hello-panel\"/>').css({\n          position: 'absolute',\n          width: 100,\n          height: 100,\n          left: '50%',\n          top: '50%',\n          background: 'red'\n        }).hide();\n\n        this.$panel.appendTo('body');\n      };\n\n      // This methods will be called when editor is destroyed by $('..').summernote('destroy');\n      // You should remove elements on `initialize`.\n      this.destroy = function () {\n        this.$panel.remove();\n        this.$panel = null;\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/dist/plugin/specialchars/summernote-ext-specialchars.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  $.extend($.summernote.plugins, {\n    'specialchars': function (context) {\n      var self = this;\n      var ui = $.summernote.ui;\n\n      var $editor = context.layoutInfo.editor;\n      var options = context.options;\n      var lang = options.langInfo;\n\n      var KEY = {\n        UP: 38,\n        DOWN: 40,\n        LEFT: 37,\n        RIGHT: 39,\n        ENTER: 13\n      };\n      var COLUMN_LENGTH = 15;\n      var COLUMN_WIDTH = 35;\n\n      var currentColumn, currentRow, totalColumn, totalRow = 0;\n\n      // special characters data set\n      var specialCharDataSet = [\n        '&quot;', '&amp;', '&lt;', '&gt;', '&iexcl;', '&cent;',\n        '&pound;', '&curren;', '&yen;', '&brvbar;', '&sect;',\n        '&uml;', '&copy;', '&ordf;', '&laquo;', '&not;',\n        '&reg;', '&macr;', '&deg;', '&plusmn;', '&sup2;',\n        '&sup3;', '&acute;', '&micro;', '&para;', '&middot;',\n        '&cedil;', '&sup1;', '&ordm;', '&raquo;', '&frac14;',\n        '&frac12;', '&frac34;', '&iquest;', '&times;', '&divide;',\n        '&fnof;', '&circ;', '&tilde;', '&ndash;', '&mdash;',\n        '&lsquo;', '&rsquo;', '&sbquo;', '&ldquo;', '&rdquo;',\n        '&bdquo;', '&dagger;', '&Dagger;', '&bull;', '&hellip;',\n        '&permil;', '&prime;', '&Prime;', '&lsaquo;', '&rsaquo;',\n        '&oline;', '&frasl;', '&euro;', '&image;', '&weierp;',\n        '&real;', '&trade;', '&alefsym;', '&larr;', '&uarr;',\n        '&rarr;', '&darr;', '&harr;', '&crarr;', '&lArr;',\n        '&uArr;', '&rArr;', '&dArr;', '&hArr;', '&forall;',\n        '&part;', '&exist;', '&empty;', '&nabla;', '&isin;',\n        '&notin;', '&ni;', '&prod;', '&sum;', '&minus;',\n        '&lowast;', '&radic;', '&prop;', '&infin;', '&ang;',\n        '&and;', '&or;', '&cap;', '&cup;', '&int;',\n        '&there4;', '&sim;', '&cong;', '&asymp;', '&ne;',\n        '&equiv;', '&le;', '&ge;', '&sub;', '&sup;',\n        '&nsub;', '&sube;', '&supe;', '&oplus;', '&otimes;',\n        '&perp;', '&sdot;', '&lceil;', '&rceil;', '&lfloor;',\n        '&rfloor;', '&loz;', '&spades;', '&clubs;', '&hearts;',\n        '&diams;'\n      ];\n\n      context.memo('button.specialCharacter', function () {\n        return ui.button({\n          contents: '<i class=\"fa fa-font fa-flip-vertical\">',\n          tooltip: lang.specialChar.specialChar,\n          click: function () {\n            self.show();\n          }\n        }).render();\n      });\n\n      /**\n       * Make Special Characters Table\n       *\n       * @member plugin.specialChar\n       * @private\n       * @return {jQuery}\n       */\n      this.makeSpecialCharSetTable = function () {\n        var $table = $('<table/>');\n        $.each(specialCharDataSet, function (idx, text) {\n          var $td = $('<td/>').addClass('note-specialchar-node');\n          var $tr = (idx % COLUMN_LENGTH === 0) ? $('<tr/>') : $table.find('tr').last();\n\n          var $button = ui.button({\n            callback: function ($node) {\n              $node.html(text);\n              $node.attr('title', text);\n              $node.attr('data-value', encodeURIComponent(text));\n              $node.css({\n                width: COLUMN_WIDTH,\n                'margin-right': '2px',\n                'margin-bottom': '2px'\n              });\n            }\n          }).render();\n\n          $td.append($button);\n\n          $tr.append($td);\n          if (idx % COLUMN_LENGTH === 0) {\n            $table.append($tr);\n          }\n        });\n\n        totalRow = $table.find('tr').length;\n        totalColumn = COLUMN_LENGTH;\n\n        return $table;\n      };\n\n      this.initialize = function () {\n        var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n        var body = '<div class=\"form-group row-fluid\">' + this.makeSpecialCharSetTable()[0].outerHTML + '</div>';\n\n        this.$dialog = ui.dialog({\n          title: lang.specialChar.select,\n          body: body\n        }).render().appendTo($container);\n      };\n\n      this.show = function () {\n        var text = context.invoke('editor.getSelectedText');\n        context.invoke('editor.saveRange');\n        this.showSpecialCharDialog(text).then(function (selectChar) {\n          context.invoke('editor.restoreRange');\n\n          // build node\n          var $node = $('<span></span>').html(selectChar)[0];\n\n          if ($node) {\n            // insert video node\n            context.invoke('editor.insertNode', $node);\n          }\n        }).fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n      };\n\n      /**\n       * show image dialog\n       *\n       * @param {jQuery} $dialog\n       * @return {Promise}\n       */\n      this.showSpecialCharDialog = function (text) {\n        return $.Deferred(function (deferred) {\n          var $specialCharDialog = self.$dialog;\n          var $specialCharNode = $specialCharDialog.find('.note-specialchar-node');\n          var $selectedNode = null;\n          var ARROW_KEYS = [KEY.UP, KEY.DOWN, KEY.LEFT, KEY.RIGHT];\n          var ENTER_KEY = KEY.ENTER;\n\n          function addActiveClass($target) {\n            if (!$target) {\n              return;\n            }\n            $target.find('button').addClass('active');\n            $selectedNode = $target;\n          }\n\n          function removeActiveClass($target) {\n            $target.find('button').removeClass('active');\n            $selectedNode = null;\n          }\n\n          // find next node\n          function findNextNode(row, column) {\n            var findNode = null;\n            $.each($specialCharNode, function (idx, $node) {\n              var findRow = Math.ceil((idx + 1) / COLUMN_LENGTH);\n              var findColumn = ((idx + 1) % COLUMN_LENGTH === 0) ? COLUMN_LENGTH : (idx + 1) % COLUMN_LENGTH;\n              if (findRow === row && findColumn === column) {\n                findNode = $node;\n                return false;\n              }\n            });\n            return $(findNode);\n          }\n\n          function arrowKeyHandler(keyCode) {\n            // left, right, up, down key\n            var $nextNode;\n            var lastRowColumnLength = $specialCharNode.length % totalColumn;\n\n            if (KEY.LEFT === keyCode) {\n\n              if (currentColumn > 1) {\n                currentColumn = currentColumn - 1;\n              } else if (currentRow === 1 && currentColumn === 1) {\n                currentColumn = lastRowColumnLength;\n                currentRow = totalRow;\n              } else {\n                currentColumn = totalColumn;\n                currentRow = currentRow - 1;\n              }\n\n            } else if (KEY.RIGHT === keyCode) {\n\n              if (currentRow === totalRow && lastRowColumnLength === currentColumn) {\n                currentColumn = 1;\n                currentRow = 1;\n              } else if (currentColumn < totalColumn) {\n                currentColumn = currentColumn + 1;\n              } else {\n                currentColumn = 1;\n                currentRow = currentRow + 1;\n              }\n\n            } else if (KEY.UP === keyCode) {\n              if (currentRow === 1 && lastRowColumnLength < currentColumn) {\n                currentRow = totalRow - 1;\n              } else {\n                currentRow = currentRow - 1;\n              }\n            } else if (KEY.DOWN === keyCode) {\n              currentRow = currentRow + 1;\n            }\n\n            if (currentRow === totalRow && currentColumn > lastRowColumnLength) {\n              currentRow = 1;\n            } else if (currentRow > totalRow) {\n              currentRow = 1;\n            } else if (currentRow < 1) {\n              currentRow = totalRow;\n            }\n\n            $nextNode = findNextNode(currentRow, currentColumn);\n\n            if ($nextNode) {\n              removeActiveClass($selectedNode);\n              addActiveClass($nextNode);\n            }\n          }\n\n          function enterKeyHandler() {\n            if (!$selectedNode) {\n              return;\n            }\n\n            deferred.resolve(decodeURIComponent($selectedNode.find('button').attr('data-value')));\n            $specialCharDialog.modal('hide');\n          }\n\n          function keyDownEventHandler(event) {\n            event.preventDefault();\n            var keyCode = event.keyCode;\n            if (keyCode === undefined || keyCode === null) {\n              return;\n            }\n            // check arrowKeys match\n            if (ARROW_KEYS.indexOf(keyCode) > -1) {\n              if ($selectedNode === null) {\n                addActiveClass($specialCharNode.eq(0));\n                currentColumn = 1;\n                currentRow = 1;\n                return;\n              }\n              arrowKeyHandler(keyCode);\n            } else if (keyCode === ENTER_KEY) {\n              enterKeyHandler();\n            }\n            return false;\n          }\n\n          // remove class\n          removeActiveClass($specialCharNode);\n\n          // find selected node\n          if (text) {\n            for (var i = 0; i < $specialCharNode.length; i++) {\n              var $checkNode = $($specialCharNode[i]);\n              if ($checkNode.text() === text) {\n                addActiveClass($checkNode);\n                currentRow = Math.ceil((i + 1) / COLUMN_LENGTH);\n                currentColumn = (i + 1) % COLUMN_LENGTH;\n              }\n            }\n          }\n\n          ui.onDialogShown(self.$dialog, function () {\n\n            $(document).on('keydown', keyDownEventHandler);\n\n            self.$dialog.find('button').tooltip();\n\n            $specialCharNode.on('click', function (event) {\n              event.preventDefault();\n              deferred.resolve(decodeURIComponent($(event.currentTarget).find('button').attr('data-value')));\n              ui.hideDialog(self.$dialog);\n            });\n\n          });\n\n          ui.onDialogHidden(self.$dialog, function () {\n            $specialCharNode.off('click');\n\n            self.$dialog.find('button').tooltip('destroy');\n\n            $(document).off('keydown', keyDownEventHandler);\n\n            if (deferred.state() === 'pending') {\n              deferred.reject();\n            }\n          });\n\n          ui.showDialog(self.$dialog);\n        });\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/dist/summernote.css",
    "content": "@font-face{font-family:\"summernote\";font-style:normal;font-weight:normal;src:url(\"font/summernote.eot?ad8d7e2d177d2473aecd9b35d16211fb\");src:url(\"font/summernote.eot?#iefix\") format(\"embedded-opentype\"),url(\"font/summernote.woff?ad8d7e2d177d2473aecd9b35d16211fb\") format(\"woff\"),url(\"font/summernote.ttf?ad8d7e2d177d2473aecd9b35d16211fb\") format(\"truetype\")}[class^=\"note-icon-\"]:before,[class*=\" note-icon-\"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before{content:\"\\f101\"}.note-icon-align-indent:before{content:\"\\f102\"}.note-icon-align-justify:before{content:\"\\f103\"}.note-icon-align-left:before{content:\"\\f104\"}.note-icon-align-outdent:before{content:\"\\f105\"}.note-icon-align-right:before{content:\"\\f106\"}.note-icon-align:before{content:\"\\f107\"}.note-icon-arrows-alt:before{content:\"\\f108\"}.note-icon-bold:before{content:\"\\f109\"}.note-icon-caret:before{content:\"\\f10a\"}.note-icon-chain-broken:before{content:\"\\f10b\"}.note-icon-circle:before{content:\"\\f10c\"}.note-icon-close:before{content:\"\\f10d\"}.note-icon-code:before{content:\"\\f10e\"}.note-icon-eraser:before{content:\"\\f10f\"}.note-icon-font:before{content:\"\\f110\"}.note-icon-frame:before{content:\"\\f111\"}.note-icon-italic:before{content:\"\\f112\"}.note-icon-link:before{content:\"\\f113\"}.note-icon-magic:before{content:\"\\f114\"}.note-icon-menu-check:before{content:\"\\f115\"}.note-icon-minus:before{content:\"\\f116\"}.note-icon-orderedlist:before{content:\"\\f117\"}.note-icon-pencil:before{content:\"\\f118\"}.note-icon-picture:before{content:\"\\f119\"}.note-icon-question:before{content:\"\\f11a\"}.note-icon-redo:before{content:\"\\f11b\"}.note-icon-special-character:before{content:\"\\f11c\"}.note-icon-square:before{content:\"\\f11d\"}.note-icon-strikethrough:before{content:\"\\f11e\"}.note-icon-subscript:before{content:\"\\f11f\"}.note-icon-summernote:before{content:\"\\f120\"}.note-icon-superscript:before{content:\"\\f121\"}.note-icon-table:before{content:\"\\f122\"}.note-icon-text-height:before{content:\"\\f123\"}.note-icon-trash:before{content:\"\\f124\"}.note-icon-underline:before{content:\"\\f125\"}.note-icon-undo:before{content:\"\\f126\"}.note-icon-unorderedlist:before{content:\"\\f127\"}.note-icon-video:before{content:\"\\f128\"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:white;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:bold;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable=\"false\"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important}.note-editor.note-frame.fullscreen .note-editable{background-color:white}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:8px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px!important}.note-popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .note-style h1,.panel-heading.note-toolbar .note-style h1,.note-popover .popover-content .note-style h2,.panel-heading.note-toolbar .note-style h2,.note-popover .popover-content .note-style h3,.panel-heading.note-toolbar .note-style h3,.note-popover .popover-content .note-style h4,.panel-heading.note-toolbar .note-style h4,.note-popover .popover-content .note-style h5,.panel-heading.note-toolbar .note-style h5,.note-popover .popover-content .note-style h6,.panel-heading.note-toolbar .note-style h6,.note-popover .popover-content .note-style blockquote,.panel-heading.note-toolbar .note-style blockquote{margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:340px}.note-popover .popover-content .note-color .dropdown-menu .btn-group,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group{margin:0}.note-popover .popover-content .note-color .dropdown-menu .btn-group:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:black;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:white;border:1px solid black}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:white;background-color:black;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block!important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:white;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/dist/summernote.js",
    "content": "/**\n * Super simple wysiwyg editor v0.8.2\n * http://summernote.org/\n *\n * summernote.js\n * Copyright 2013-2016 Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license./\n *\n * Date: 2016-08-07T05:11Z\n */\n(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  'use strict';\n\n  /**\n   * @class core.func\n   *\n   * func utils (for high-order func's arg)\n   *\n   * @singleton\n   * @alternateClassName func\n   */\n  var func = (function () {\n    var eq = function (itemA) {\n      return function (itemB) {\n        return itemA === itemB;\n      };\n    };\n\n    var eq2 = function (itemA, itemB) {\n      return itemA === itemB;\n    };\n\n    var peq2 = function (propName) {\n      return function (itemA, itemB) {\n        return itemA[propName] === itemB[propName];\n      };\n    };\n\n    var ok = function () {\n      return true;\n    };\n\n    var fail = function () {\n      return false;\n    };\n\n    var not = function (f) {\n      return function () {\n        return !f.apply(f, arguments);\n      };\n    };\n\n    var and = function (fA, fB) {\n      return function (item) {\n        return fA(item) && fB(item);\n      };\n    };\n\n    var self = function (a) {\n      return a;\n    };\n\n    var invoke = function (obj, method) {\n      return function () {\n        return obj[method].apply(obj, arguments);\n      };\n    };\n\n    var idCounter = 0;\n\n    /**\n     * generate a globally-unique id\n     *\n     * @param {String} [prefix]\n     */\n    var uniqueId = function (prefix) {\n      var id = ++idCounter + '';\n      return prefix ? prefix + id : id;\n    };\n\n    /**\n     * returns bnd (bounds) from rect\n     *\n     * - IE Compatibility Issue: http://goo.gl/sRLOAo\n     * - Scroll Issue: http://goo.gl/sNjUc\n     *\n     * @param {Rect} rect\n     * @return {Object} bounds\n     * @return {Number} bounds.top\n     * @return {Number} bounds.left\n     * @return {Number} bounds.width\n     * @return {Number} bounds.height\n     */\n    var rect2bnd = function (rect) {\n      var $document = $(document);\n      return {\n        top: rect.top + $document.scrollTop(),\n        left: rect.left + $document.scrollLeft(),\n        width: rect.right - rect.left,\n        height: rect.bottom - rect.top\n      };\n    };\n\n    /**\n     * returns a copy of the object where the keys have become the values and the values the keys.\n     * @param {Object} obj\n     * @return {Object}\n     */\n    var invertObject = function (obj) {\n      var inverted = {};\n      for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n          inverted[obj[key]] = key;\n        }\n      }\n      return inverted;\n    };\n\n    /**\n     * @param {String} namespace\n     * @param {String} [prefix]\n     * @return {String}\n     */\n    var namespaceToCamel = function (namespace, prefix) {\n      prefix = prefix || '';\n      return prefix + namespace.split('.').map(function (name) {\n        return name.substring(0, 1).toUpperCase() + name.substring(1);\n      }).join('');\n    };\n\n    /**\n     * Returns a function, that, as long as it continues to be invoked, will not\n     * be triggered. The function will be called after it stops being called for\n     * N milliseconds. If `immediate` is passed, trigger the function on the\n     * leading edge, instead of the trailing.\n     * @param {Function} func\n     * @param {Number} wait\n     * @param {Boolean} immediate\n     * @return {Function}\n     */\n    var debounce = function (func, wait, immediate) {\n      var timeout;\n      return function () {\n        var context = this, args = arguments;\n        var later = function () {\n          timeout = null;\n          if (!immediate) {\n            func.apply(context, args);\n          }\n        };\n        var callNow = immediate && !timeout;\n        clearTimeout(timeout);\n        timeout = setTimeout(later, wait);\n        if (callNow) {\n          func.apply(context, args);\n        }\n      };\n    };\n\n    return {\n      eq: eq,\n      eq2: eq2,\n      peq2: peq2,\n      ok: ok,\n      fail: fail,\n      self: self,\n      not: not,\n      and: and,\n      invoke: invoke,\n      uniqueId: uniqueId,\n      rect2bnd: rect2bnd,\n      invertObject: invertObject,\n      namespaceToCamel: namespaceToCamel,\n      debounce: debounce\n    };\n  })();\n\n  /**\n   * @class core.list\n   *\n   * list utils\n   *\n   * @singleton\n   * @alternateClassName list\n   */\n  var list = (function () {\n    /**\n     * returns the first item of an array.\n     *\n     * @param {Array} array\n     */\n    var head = function (array) {\n      return array[0];\n    };\n\n    /**\n     * returns the last item of an array.\n     *\n     * @param {Array} array\n     */\n    var last = function (array) {\n      return array[array.length - 1];\n    };\n\n    /**\n     * returns everything but the last entry of the array.\n     *\n     * @param {Array} array\n     */\n    var initial = function (array) {\n      return array.slice(0, array.length - 1);\n    };\n\n    /**\n     * returns the rest of the items in an array.\n     *\n     * @param {Array} array\n     */\n    var tail = function (array) {\n      return array.slice(1);\n    };\n\n    /**\n     * returns item of array\n     */\n    var find = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        var item = array[idx];\n        if (pred(item)) {\n          return item;\n        }\n      }\n    };\n\n    /**\n     * returns true if all of the values in the array pass the predicate truth test.\n     */\n    var all = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!pred(array[idx])) {\n          return false;\n        }\n      }\n      return true;\n    };\n\n    /**\n     * returns index of item\n     */\n    var indexOf = function (array, item) {\n      return $.inArray(item, array);\n    };\n\n    /**\n     * returns true if the value is present in the list.\n     */\n    var contains = function (array, item) {\n      return indexOf(array, item) !== -1;\n    };\n\n    /**\n     * get sum from a list\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - iterator\n     */\n    var sum = function (array, fn) {\n      fn = fn || func.self;\n      return array.reduce(function (memo, v) {\n        return memo + fn(v);\n      }, 0);\n    };\n  \n    /**\n     * returns a copy of the collection with array type.\n     * @param {Collection} collection - collection eg) node.childNodes, ...\n     */\n    var from = function (collection) {\n      var result = [], idx = -1, length = collection.length;\n      while (++idx < length) {\n        result[idx] = collection[idx];\n      }\n      return result;\n    };\n\n    /**\n     * returns whether list is empty or not\n     */\n    var isEmpty = function (array) {\n      return !array || !array.length;\n    };\n  \n    /**\n     * cluster elements by predicate function.\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     * @param {Array[]}\n     */\n    var clusterBy = function (array, fn) {\n      if (!array.length) { return []; }\n      var aTail = tail(array);\n      return aTail.reduce(function (memo, v) {\n        var aLast = last(memo);\n        if (fn(last(aLast), v)) {\n          aLast[aLast.length] = v;\n        } else {\n          memo[memo.length] = [v];\n        }\n        return memo;\n      }, [[head(array)]]);\n    };\n  \n    /**\n     * returns a copy of the array with all false values removed\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     */\n    var compact = function (array) {\n      var aResult = [];\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (array[idx]) { aResult.push(array[idx]); }\n      }\n      return aResult;\n    };\n\n    /**\n     * produces a duplicate-free version of the array\n     *\n     * @param {Array} array\n     */\n    var unique = function (array) {\n      var results = [];\n\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!contains(results, array[idx])) {\n          results.push(array[idx]);\n        }\n      }\n\n      return results;\n    };\n\n    /**\n     * returns next item.\n     * @param {Array} array\n     */\n    var next = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx + 1];\n    };\n\n    /**\n     * returns prev item.\n     * @param {Array} array\n     */\n    var prev = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx - 1];\n    };\n\n    return { head: head, last: last, initial: initial, tail: tail,\n             prev: prev, next: next, find: find, contains: contains,\n             all: all, sum: sum, from: from, isEmpty: isEmpty,\n             clusterBy: clusterBy, compact: compact, unique: unique };\n  })();\n\n  var isSupportAmd = typeof define === 'function' && define.amd;\n\n  /**\n   * returns whether font is installed or not.\n   *\n   * @param {String} fontName\n   * @return {Boolean}\n   */\n  var isFontInstalled = function (fontName) {\n    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n    var $tester = $('<div>').css({\n      position: 'absolute',\n      left: '-9999px',\n      top: '-9999px',\n      fontSize: '200px'\n    }).text('mmmmmmmmmwwwwwww').appendTo(document.body);\n\n    var originalWidth = $tester.css('fontFamily', testFontName).width();\n    var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();\n\n    $tester.remove();\n\n    return originalWidth !== width;\n  };\n\n  var userAgent = navigator.userAgent;\n  var isMSIE = /MSIE|Trident/i.test(userAgent);\n  var browserVersion;\n  if (isMSIE) {\n    var matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n    matches = /Trident\\/.*rv:([0-9]{1,}[\\.0-9]{0,})/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n  }\n\n  var isEdge = /Edge\\/\\d+/.test(userAgent);\n\n  var hasCodeMirror = !!window.CodeMirror;\n  if (!hasCodeMirror && isSupportAmd && typeof require !== 'undefined') {\n    if (typeof require.resolve !== 'undefined') {\n      try {\n        // If CodeMirror can't be resolved, `require.resolve` will throw an\n        // exception and `hasCodeMirror` won't be set to `true`.\n        require.resolve('codemirror');\n        hasCodeMirror = true;\n      } catch (e) {\n        // Do nothing.\n      }\n    } else if (typeof eval('require').specified !== 'undefined') {\n      hasCodeMirror = eval('require').specified('codemirror');\n    }\n  }\n\n  /**\n   * @class core.agent\n   *\n   * Object which check platform and agent\n   *\n   * @singleton\n   * @alternateClassName agent\n   */\n  var agent = {\n    isMac: navigator.appVersion.indexOf('Mac') > -1,\n    isMSIE: isMSIE,\n    isEdge: isEdge,\n    isFF: !isEdge && /firefox/i.test(userAgent),\n    isPhantom: /PhantomJS/i.test(userAgent),\n    isWebkit: !isEdge && /webkit/i.test(userAgent),\n    isChrome: !isEdge && /chrome/i.test(userAgent),\n    isSafari: !isEdge && /safari/i.test(userAgent),\n    browserVersion: browserVersion,\n    jqueryVersion: parseFloat($.fn.jquery),\n    isSupportAmd: isSupportAmd,\n    hasCodeMirror: hasCodeMirror,\n    isFontInstalled: isFontInstalled,\n    isW3CRangeSupport: !!document.createRange\n  };\n\n\n  var NBSP_CHAR = String.fromCharCode(160);\n  var ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n  /**\n   * @class core.dom\n   *\n   * Dom functions\n   *\n   * @singleton\n   * @alternateClassName dom\n   */\n  var dom = (function () {\n    /**\n     * @method isEditable\n     *\n     * returns whether node is `note-editable` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEditable = function (node) {\n      return node && $(node).hasClass('note-editable');\n    };\n\n    /**\n     * @method isControlSizing\n     *\n     * returns whether node is `note-control-sizing` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isControlSizing = function (node) {\n      return node && $(node).hasClass('note-control-sizing');\n    };\n\n    /**\n     * @method makePredByNodeName\n     *\n     * returns predicate which judge whether nodeName is same\n     *\n     * @param {String} nodeName\n     * @return {Function}\n     */\n    var makePredByNodeName = function (nodeName) {\n      nodeName = nodeName.toUpperCase();\n      return function (node) {\n        return node && node.nodeName.toUpperCase() === nodeName;\n      };\n    };\n\n    /**\n     * @method isText\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is text(3)\n     */\n    var isText = function (node) {\n      return node && node.nodeType === 3;\n    };\n\n    /**\n     * @method isElement\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is element(1)\n     */\n    var isElement = function (node) {\n      return node && node.nodeType === 1;\n    };\n\n    /**\n     * ex) br, col, embed, hr, img, input, ...\n     * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n     */\n    var isVoid = function (node) {\n      return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPara = function (node) {\n      if (isEditable(node)) {\n        return false;\n      }\n\n      // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n      return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHeading = function (node) {\n      return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPre = makePredByNodeName('PRE');\n\n    var isLi = makePredByNodeName('LI');\n\n    var isPurePara = function (node) {\n      return isPara(node) && !isLi(node);\n    };\n\n    var isTable = makePredByNodeName('TABLE');\n\n    var isData = makePredByNodeName('DATA');\n\n    var isInline = function (node) {\n      return !isBodyContainer(node) &&\n             !isList(node) &&\n             !isHr(node) &&\n             !isPara(node) &&\n             !isTable(node) &&\n             !isBlockquote(node) &&\n             !isData(node);\n    };\n\n    var isList = function (node) {\n      return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHr = makePredByNodeName('HR');\n\n    var isCell = function (node) {\n      return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n    };\n\n    var isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\n    var isBodyContainer = function (node) {\n      return isCell(node) || isBlockquote(node) || isEditable(node);\n    };\n\n    var isAnchor = makePredByNodeName('A');\n\n    var isParaInline = function (node) {\n      return isInline(node) && !!ancestor(node, isPara);\n    };\n\n    var isBodyInline = function (node) {\n      return isInline(node) && !ancestor(node, isPara);\n    };\n\n    var isBody = makePredByNodeName('BODY');\n\n    /**\n     * returns whether nodeB is closest sibling of nodeA\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     * @return {Boolean}\n     */\n    var isClosestSibling = function (nodeA, nodeB) {\n      return nodeA.nextSibling === nodeB ||\n             nodeA.previousSibling === nodeB;\n    };\n\n    /**\n     * returns array of closest siblings with node\n     *\n     * @param {Node} node\n     * @param {function} [pred] - predicate function\n     * @return {Node[]}\n     */\n    var withClosestSiblings = function (node, pred) {\n      pred = pred || func.ok;\n\n      var siblings = [];\n      if (node.previousSibling && pred(node.previousSibling)) {\n        siblings.push(node.previousSibling);\n      }\n      siblings.push(node);\n      if (node.nextSibling && pred(node.nextSibling)) {\n        siblings.push(node.nextSibling);\n      }\n      return siblings;\n    };\n\n    /**\n     * blank HTML for cursor position\n     * - [workaround] old IE only works with &nbsp;\n     * - [workaround] IE11 and other browser works with bogus br\n     */\n    var blankHTML = agent.isMSIE && agent.browserVersion < 11 ? '&nbsp;' : '<br>';\n\n    /**\n     * @method nodeLength\n     *\n     * returns #text's text size or element's childNodes size\n     *\n     * @param {Node} node\n     */\n    var nodeLength = function (node) {\n      if (isText(node)) {\n        return node.nodeValue.length;\n      }\n      \n      if (node) {\n        return node.childNodes.length;\n      }\n      \n      return 0;\n      \n    };\n\n    /**\n     * returns whether node is empty or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEmpty = function (node) {\n      var len = nodeLength(node);\n\n      if (len === 0) {\n        return true;\n      } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n        // ex) <p><br></p>, <span><br></span>\n        return true;\n      } else if (list.all(node.childNodes, isText) && node.innerHTML === '') {\n        // ex) <p></p>, <span></span>\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * padding blankHTML if node is empty (for cursor position)\n     */\n    var paddingBlankHTML = function (node) {\n      if (!isVoid(node) && !nodeLength(node)) {\n        node.innerHTML = blankHTML;\n      }\n    };\n\n    /**\n     * find nearest ancestor predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var ancestor = function (node, pred) {\n      while (node) {\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * find nearest ancestor only single child blood line and predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var singleChildAncestor = function (node, pred) {\n      node = node.parentNode;\n\n      while (node) {\n        if (nodeLength(node) !== 1) { break; }\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * returns new array of ancestor nodes (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listAncestor = function (node, pred) {\n      pred = pred || func.fail;\n\n      var ancestors = [];\n      ancestor(node, function (el) {\n        if (!isEditable(el)) {\n          ancestors.push(el);\n        }\n\n        return pred(el);\n      });\n      return ancestors;\n    };\n\n    /**\n     * find farthest ancestor predicate hit\n     */\n    var lastAncestor = function (node, pred) {\n      var ancestors = listAncestor(node);\n      return list.last(ancestors.filter(pred));\n    };\n\n    /**\n     * returns common ancestor node between two nodes.\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     */\n    var commonAncestor = function (nodeA, nodeB) {\n      var ancestors = listAncestor(nodeA);\n      for (var n = nodeB; n; n = n.parentNode) {\n        if ($.inArray(n, ancestors) > -1) { return n; }\n      }\n      return null; // difference document area\n    };\n\n    /**\n     * listing all previous siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listPrev = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.previousSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing next siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listNext = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.nextSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing descendant nodes\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listDescendant = function (node, pred) {\n      var descendants = [];\n      pred = pred || func.ok;\n\n      // start DFS(depth first search) with node\n      (function fnWalk(current) {\n        if (node !== current && pred(current)) {\n          descendants.push(current);\n        }\n        for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {\n          fnWalk(current.childNodes[idx]);\n        }\n      })(node);\n\n      return descendants;\n    };\n\n    /**\n     * wrap node with new tag.\n     *\n     * @param {Node} node\n     * @param {Node} tagName of wrapper\n     * @return {Node} - wrapper\n     */\n    var wrap = function (node, wrapperName) {\n      var parent = node.parentNode;\n      var wrapper = $('<' + wrapperName + '>')[0];\n\n      parent.insertBefore(wrapper, node);\n      wrapper.appendChild(node);\n\n      return wrapper;\n    };\n\n    /**\n     * insert node after preceding\n     *\n     * @param {Node} node\n     * @param {Node} preceding - predicate function\n     */\n    var insertAfter = function (node, preceding) {\n      var next = preceding.nextSibling, parent = preceding.parentNode;\n      if (next) {\n        parent.insertBefore(node, next);\n      } else {\n        parent.appendChild(node);\n      }\n      return node;\n    };\n\n    /**\n     * append elements.\n     *\n     * @param {Node} node\n     * @param {Collection} aChild\n     */\n    var appendChildNodes = function (node, aChild) {\n      $.each(aChild, function (idx, child) {\n        node.appendChild(child);\n      });\n      return node;\n    };\n\n    /**\n     * returns whether boundaryPoint is left edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isLeftEdgePoint = function (point) {\n      return point.offset === 0;\n    };\n\n    /**\n     * returns whether boundaryPoint is right edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isRightEdgePoint = function (point) {\n      return point.offset === nodeLength(point.node);\n    };\n\n    /**\n     * returns whether boundaryPoint is edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isEdgePoint = function (point) {\n      return isLeftEdgePoint(point) || isRightEdgePoint(point);\n    };\n\n    /**\n     * returns whether node is left edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgeOf = function (node, ancestor) {\n      while (node && node !== ancestor) {\n        if (position(node) !== 0) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether node is right edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgeOf = function (node, ancestor) {\n      if (!ancestor) {\n        return false;\n      }\n      while (node && node !== ancestor) {\n        if (position(node) !== nodeLength(node.parentNode) - 1) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether point is left edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgePointOf = function (point, ancestor) {\n      return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns whether point is right edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgePointOf = function (point, ancestor) {\n      return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns offset from parent.\n     *\n     * @param {Node} node\n     */\n    var position = function (node) {\n      var offset = 0;\n      while ((node = node.previousSibling)) {\n        offset += 1;\n      }\n      return offset;\n    };\n\n    var hasChildren = function (node) {\n      return !!(node && node.childNodes && node.childNodes.length);\n    };\n\n    /**\n     * returns previous boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var prevPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (point.offset === 0) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node);\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset - 1];\n        offset = nodeLength(node);\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? 0 : point.offset - 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns next boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var nextPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (nodeLength(point.node) === point.offset) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node) + 1;\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset];\n        offset = 0;\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns whether pointA and pointB is same or not.\n     *\n     * @param {BoundaryPoint} pointA\n     * @param {BoundaryPoint} pointB\n     * @return {Boolean}\n     */\n    var isSamePoint = function (pointA, pointB) {\n      return pointA.node === pointB.node && pointA.offset === pointB.offset;\n    };\n\n    /**\n     * returns whether point is visible (can set cursor) or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isVisiblePoint = function (point) {\n      if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n        return true;\n      }\n\n      var leftNode = point.node.childNodes[point.offset - 1];\n      var rightNode = point.node.childNodes[point.offset];\n      if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * @method prevPointUtil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var prevPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = prevPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * @method nextPointUntil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var nextPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = nextPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * returns whether point has character or not.\n     *\n     * @param {Point} point\n     * @return {Boolean}\n     */\n    var isCharPoint = function (point) {\n      if (!isText(point.node)) {\n        return false;\n      }\n\n      var ch = point.node.nodeValue.charAt(point.offset - 1);\n      return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n    };\n\n    /**\n     * @method walkPoint\n     *\n     * @param {BoundaryPoint} startPoint\n     * @param {BoundaryPoint} endPoint\n     * @param {Function} handler\n     * @param {Boolean} isSkipInnerOffset\n     */\n    var walkPoint = function (startPoint, endPoint, handler, isSkipInnerOffset) {\n      var point = startPoint;\n\n      while (point) {\n        handler(point);\n\n        if (isSamePoint(point, endPoint)) {\n          break;\n        }\n\n        var isSkipOffset = isSkipInnerOffset &&\n                           startPoint.node !== point.node &&\n                           endPoint.node !== point.node;\n        point = nextPoint(point, isSkipOffset);\n      }\n    };\n\n    /**\n     * @method makeOffsetPath\n     *\n     * return offsetPath(array of offset) from ancestor\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {Node} node\n     */\n    var makeOffsetPath = function (ancestor, node) {\n      var ancestors = listAncestor(node, func.eq(ancestor));\n      return ancestors.map(position).reverse();\n    };\n\n    /**\n     * @method fromOffsetPath\n     *\n     * return element from offsetPath(array of offset)\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {array} offsets - offsetPath\n     */\n    var fromOffsetPath = function (ancestor, offsets) {\n      var current = ancestor;\n      for (var i = 0, len = offsets.length; i < len; i++) {\n        if (current.childNodes.length <= offsets[i]) {\n          current = current.childNodes[current.childNodes.length - 1];\n        } else {\n          current = current.childNodes[offsets[i]];\n        }\n      }\n      return current;\n    };\n\n    /**\n     * @method splitNode\n     *\n     * split element or #text\n     *\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitNode = function (point, options) {\n      var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n      var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n\n      // edge case\n      if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n        if (isLeftEdgePoint(point)) {\n          return point.node;\n        } else if (isRightEdgePoint(point)) {\n          return point.node.nextSibling;\n        }\n      }\n\n      // split #text\n      if (isText(point.node)) {\n        return point.node.splitText(point.offset);\n      } else {\n        var childNode = point.node.childNodes[point.offset];\n        var clone = insertAfter(point.node.cloneNode(false), point.node);\n        appendChildNodes(clone, listNext(childNode));\n\n        if (!isSkipPaddingBlankHTML) {\n          paddingBlankHTML(point.node);\n          paddingBlankHTML(clone);\n        }\n\n        return clone;\n      }\n    };\n\n    /**\n     * @method splitTree\n     *\n     * split tree by point\n     *\n     * @param {Node} root - split root\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitTree = function (root, point, options) {\n      // ex) [#text, <span>, <p>]\n      var ancestors = listAncestor(point.node, func.eq(root));\n\n      if (!ancestors.length) {\n        return null;\n      } else if (ancestors.length === 1) {\n        return splitNode(point, options);\n      }\n\n      return ancestors.reduce(function (node, parent) {\n        if (node === point.node) {\n          node = splitNode(point, options);\n        }\n\n        return splitNode({\n          node: parent,\n          offset: node ? dom.position(node) : nodeLength(parent)\n        }, options);\n      });\n    };\n\n    /**\n     * split point\n     *\n     * @param {Point} point\n     * @param {Boolean} isInline\n     * @return {Object}\n     */\n    var splitPoint = function (point, isInline) {\n      // find splitRoot, container\n      //  - inline: splitRoot is a child of paragraph\n      //  - block: splitRoot is a child of bodyContainer\n      var pred = isInline ? isPara : isBodyContainer;\n      var ancestors = listAncestor(point.node, pred);\n      var topAncestor = list.last(ancestors) || point.node;\n\n      var splitRoot, container;\n      if (pred(topAncestor)) {\n        splitRoot = ancestors[ancestors.length - 2];\n        container = topAncestor;\n      } else {\n        splitRoot = topAncestor;\n        container = splitRoot.parentNode;\n      }\n\n      // if splitRoot is exists, split with splitTree\n      var pivot = splitRoot && splitTree(splitRoot, point, {\n        isSkipPaddingBlankHTML: isInline,\n        isNotSplitEdgePoint: isInline\n      });\n\n      // if container is point.node, find pivot with point.offset\n      if (!pivot && container === point.node) {\n        pivot = point.node.childNodes[point.offset];\n      }\n\n      return {\n        rightNode: pivot,\n        container: container\n      };\n    };\n\n    var create = function (nodeName) {\n      return document.createElement(nodeName);\n    };\n\n    var createText = function (text) {\n      return document.createTextNode(text);\n    };\n\n    /**\n     * @method remove\n     *\n     * remove node, (isRemoveChild: remove child or not)\n     *\n     * @param {Node} node\n     * @param {Boolean} isRemoveChild\n     */\n    var remove = function (node, isRemoveChild) {\n      if (!node || !node.parentNode) { return; }\n      if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n      var parent = node.parentNode;\n      if (!isRemoveChild) {\n        var nodes = [];\n        var i, len;\n        for (i = 0, len = node.childNodes.length; i < len; i++) {\n          nodes.push(node.childNodes[i]);\n        }\n\n        for (i = 0, len = nodes.length; i < len; i++) {\n          parent.insertBefore(nodes[i], node);\n        }\n      }\n\n      parent.removeChild(node);\n    };\n\n    /**\n     * @method removeWhile\n     *\n     * @param {Node} node\n     * @param {Function} pred\n     */\n    var removeWhile = function (node, pred) {\n      while (node) {\n        if (isEditable(node) || !pred(node)) {\n          break;\n        }\n\n        var parent = node.parentNode;\n        remove(node);\n        node = parent;\n      }\n    };\n\n    /**\n     * @method replace\n     *\n     * replace node with provided nodeName\n     *\n     * @param {Node} node\n     * @param {String} nodeName\n     * @return {Node} - new node\n     */\n    var replace = function (node, nodeName) {\n      if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n        return node;\n      }\n\n      var newNode = create(nodeName);\n\n      if (node.style.cssText) {\n        newNode.style.cssText = node.style.cssText;\n      }\n\n      appendChildNodes(newNode, list.from(node.childNodes));\n      insertAfter(newNode, node);\n      remove(node);\n\n      return newNode;\n    };\n\n    var isTextarea = makePredByNodeName('TEXTAREA');\n\n    /**\n     * @param {jQuery} $node\n     * @param {Boolean} [stripLinebreaks] - default: false\n     */\n    var value = function ($node, stripLinebreaks) {\n      var val = isTextarea($node[0]) ? $node.val() : $node.html();\n      if (stripLinebreaks) {\n        return val.replace(/[\\n\\r]/g, '');\n      }\n      return val;\n    };\n\n    /**\n     * @method html\n     *\n     * get the HTML contents of node\n     *\n     * @param {jQuery} $node\n     * @param {Boolean} [isNewlineOnBlock]\n     */\n    var html = function ($node, isNewlineOnBlock) {\n      var markup = value($node);\n\n      if (isNewlineOnBlock) {\n        var regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n        markup = markup.replace(regexTag, function (match, endSlash, name) {\n          name = name.toUpperCase();\n          var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n                                       !!endSlash;\n          var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n          return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n        });\n        markup = $.trim(markup);\n      }\n\n      return markup;\n    };\n\n    var posFromPlaceholder = function (placeholder) {\n      var $placeholder = $(placeholder);\n      var pos = $placeholder.offset();\n      var height = $placeholder.outerHeight(true); // include margin\n\n      return {\n        left: pos.left,\n        top: pos.top + height\n      };\n    };\n\n    var attachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.on(key, events[key]);\n      });\n    };\n\n    var detachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.off(key, events[key]);\n      });\n    };\n\n    return {\n      /** @property {String} NBSP_CHAR */\n      NBSP_CHAR: NBSP_CHAR,\n      /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n      ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,\n      /** @property {String} blank */\n      blank: blankHTML,\n      /** @property {String} emptyPara */\n      emptyPara: '<p>' + blankHTML + '</p>',\n      makePredByNodeName: makePredByNodeName,\n      isEditable: isEditable,\n      isControlSizing: isControlSizing,\n      isText: isText,\n      isElement: isElement,\n      isVoid: isVoid,\n      isPara: isPara,\n      isPurePara: isPurePara,\n      isHeading: isHeading,\n      isInline: isInline,\n      isBlock: func.not(isInline),\n      isBodyInline: isBodyInline,\n      isBody: isBody,\n      isParaInline: isParaInline,\n      isPre: isPre,\n      isList: isList,\n      isTable: isTable,\n      isData: isData,\n      isCell: isCell,\n      isBlockquote: isBlockquote,\n      isBodyContainer: isBodyContainer,\n      isAnchor: isAnchor,\n      isDiv: makePredByNodeName('DIV'),\n      isLi: isLi,\n      isBR: makePredByNodeName('BR'),\n      isSpan: makePredByNodeName('SPAN'),\n      isB: makePredByNodeName('B'),\n      isU: makePredByNodeName('U'),\n      isS: makePredByNodeName('S'),\n      isI: makePredByNodeName('I'),\n      isImg: makePredByNodeName('IMG'),\n      isTextarea: isTextarea,\n      isEmpty: isEmpty,\n      isEmptyAnchor: func.and(isAnchor, isEmpty),\n      isClosestSibling: isClosestSibling,\n      withClosestSiblings: withClosestSiblings,\n      nodeLength: nodeLength,\n      isLeftEdgePoint: isLeftEdgePoint,\n      isRightEdgePoint: isRightEdgePoint,\n      isEdgePoint: isEdgePoint,\n      isLeftEdgeOf: isLeftEdgeOf,\n      isRightEdgeOf: isRightEdgeOf,\n      isLeftEdgePointOf: isLeftEdgePointOf,\n      isRightEdgePointOf: isRightEdgePointOf,\n      prevPoint: prevPoint,\n      nextPoint: nextPoint,\n      isSamePoint: isSamePoint,\n      isVisiblePoint: isVisiblePoint,\n      prevPointUntil: prevPointUntil,\n      nextPointUntil: nextPointUntil,\n      isCharPoint: isCharPoint,\n      walkPoint: walkPoint,\n      ancestor: ancestor,\n      singleChildAncestor: singleChildAncestor,\n      listAncestor: listAncestor,\n      lastAncestor: lastAncestor,\n      listNext: listNext,\n      listPrev: listPrev,\n      listDescendant: listDescendant,\n      commonAncestor: commonAncestor,\n      wrap: wrap,\n      insertAfter: insertAfter,\n      appendChildNodes: appendChildNodes,\n      position: position,\n      hasChildren: hasChildren,\n      makeOffsetPath: makeOffsetPath,\n      fromOffsetPath: fromOffsetPath,\n      splitTree: splitTree,\n      splitPoint: splitPoint,\n      create: create,\n      createText: createText,\n      remove: remove,\n      removeWhile: removeWhile,\n      replace: replace,\n      html: html,\n      value: value,\n      posFromPlaceholder: posFromPlaceholder,\n      attachEvents: attachEvents,\n      detachEvents: detachEvents\n    };\n  })();\n\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   * @return {Context}\n   */\n  var Context = function ($note, options) {\n    var self = this;\n\n    var ui = $.summernote.ui;\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = options;\n\n    /**\n     * create layout and initialize modules and other resources\n     */\n    this.initialize = function () {\n      this.layoutInfo = ui.createLayout($note, options);\n      this._initialize();\n      $note.hide();\n      return this;\n    };\n\n    /**\n     * destroy modules and other resources and remove layout\n     */\n    this.destroy = function () {\n      this._destroy();\n      $note.removeData('summernote');\n      ui.removeLayout($note, this.layoutInfo);\n    };\n\n    /**\n     * destory modules and other resources and initialize it again\n     */\n    this.reset = function () {\n      var disabled = self.isDisabled();\n      this.code(dom.emptyPara);\n      this._destroy();\n      this._initialize();\n\n      if (disabled) {\n        self.disable();\n      }\n    };\n\n    this._initialize = function () {\n      // add optional buttons\n      var buttons = $.extend({}, this.options.buttons);\n      Object.keys(buttons).forEach(function (key) {\n        self.memo('button.' + key, buttons[key]);\n      });\n\n      var modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n      // add and initialize modules\n      Object.keys(modules).forEach(function (key) {\n        self.module(key, modules[key], true);\n      });\n\n      Object.keys(this.modules).forEach(function (key) {\n        self.initializeModule(key);\n      });\n    };\n\n    this._destroy = function () {\n      // destroy modules with reversed order\n      Object.keys(this.modules).reverse().forEach(function (key) {\n        self.removeModule(key);\n      });\n\n      Object.keys(this.memos).forEach(function (key) {\n        self.removeMemo(key);\n      });\n    };\n\n    this.code = function (html) {\n      var isActivated = this.invoke('codeview.isActivated');\n\n      if (html === undefined) {\n        this.invoke('codeview.sync');\n        return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n      } else {\n        if (isActivated) {\n          this.layoutInfo.codable.val(html);\n        } else {\n          this.layoutInfo.editable.html(html);\n        }\n        $note.val(html);\n        this.triggerEvent('change', html);\n      }\n    };\n\n    this.isDisabled = function () {\n      return this.layoutInfo.editable.attr('contenteditable') === 'false';\n    };\n\n    this.enable = function () {\n      this.layoutInfo.editable.attr('contenteditable', true);\n      this.invoke('toolbar.activate', true);\n    };\n\n    this.disable = function () {\n      // close codeview if codeview is opend\n      if (this.invoke('codeview.isActivated')) {\n        this.invoke('codeview.deactivate');\n      }\n      this.layoutInfo.editable.attr('contenteditable', false);\n      this.invoke('toolbar.deactivate', true);\n    };\n\n    this.triggerEvent = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n      if (callback) {\n        callback.apply($note[0], args);\n      }\n      $note.trigger('summernote.' + namespace, args);\n    };\n\n    this.initializeModule = function (key) {\n      var module = this.modules[key];\n      module.shouldInitialize = module.shouldInitialize || func.ok;\n      if (!module.shouldInitialize()) {\n        return;\n      }\n\n      // initialize module\n      if (module.initialize) {\n        module.initialize();\n      }\n\n      // attach events\n      if (module.events) {\n        dom.attachEvents($note, module.events);\n      }\n    };\n\n    this.module = function (key, ModuleClass, withoutIntialize) {\n      if (arguments.length === 1) {\n        return this.modules[key];\n      }\n\n      this.modules[key] = new ModuleClass(this);\n\n      if (!withoutIntialize) {\n        this.initializeModule(key);\n      }\n    };\n\n    this.removeModule = function (key) {\n      var module = this.modules[key];\n      if (module.shouldInitialize()) {\n        if (module.events) {\n          dom.detachEvents($note, module.events);\n        }\n\n        if (module.destroy) {\n          module.destroy();\n        }\n      }\n\n      delete this.modules[key];\n    };\n\n    this.memo = function (key, obj) {\n      if (arguments.length === 1) {\n        return this.memos[key];\n      }\n      this.memos[key] = obj;\n    };\n\n    this.removeMemo = function (key) {\n      if (this.memos[key] && this.memos[key].destroy) {\n        this.memos[key].destroy();\n      }\n\n      delete this.memos[key];\n    };\n\n    this.createInvokeHandler = function (namespace, value) {\n      return function (event) {\n        event.preventDefault();\n        self.invoke(namespace, value || $(event.target).closest('[data-value]').data('value'));\n      };\n    };\n\n    this.invoke = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var splits = namespace.split('.');\n      var hasSeparator = splits.length > 1;\n      var moduleName = hasSeparator && list.head(splits);\n      var methodName = hasSeparator ? list.last(splits) : list.head(splits);\n\n      var module = this.modules[moduleName || 'editor'];\n      if (!moduleName && this[methodName]) {\n        return this[methodName].apply(this, args);\n      } else if (module && module[methodName] && module.shouldInitialize()) {\n        return module[methodName].apply(module, args);\n      }\n    };\n\n    return this.initialize();\n  };\n\n  $.fn.extend({\n    /**\n     * Summernote API\n     *\n     * @param {Object|String}\n     * @return {this}\n     */\n    summernote: function () {\n      var type = $.type(list.head(arguments));\n      var isExternalAPICalled = type === 'string';\n      var hasInitOptions = type === 'object';\n\n      var options = hasInitOptions ? list.head(arguments) : {};\n\n      options = $.extend({}, $.summernote.options, options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n\n      this.each(function (idx, note) {\n        var $note = $(note);\n        if (!$note.data('summernote')) {\n          var context = new Context($note, options);\n          $note.data('summernote', context);\n          $note.data('summernote').triggerEvent('init', context.layoutInfo);\n        }\n      });\n\n      var $note = this.first();\n      if ($note.length) {\n        var context = $note.data('summernote');\n        if (isExternalAPICalled) {\n          return context.invoke.apply(context, list.from(arguments));\n        } else if (options.focus) {\n          context.invoke('editor.focus');\n        }\n      }\n\n      return this;\n    }\n  });\n\n\n  var Renderer = function (markup, children, options, callback) {\n    this.render = function ($parent) {\n      var $node = $(markup);\n\n      if (options && options.contents) {\n        $node.html(options.contents);\n      }\n\n      if (options && options.className) {\n        $node.addClass(options.className);\n      }\n\n      if (options && options.data) {\n        $.each(options.data, function (k, v) {\n          $node.attr('data-' + k, v);\n        });\n      }\n\n      if (options && options.click) {\n        $node.on('click', options.click);\n      }\n\n      if (children) {\n        var $container = $node.find('.note-children-container');\n        children.forEach(function (child) {\n          child.render($container.length ? $container : $node);\n        });\n      }\n\n      if (callback) {\n        callback($node, options);\n      }\n\n      if (options && options.callback) {\n        options.callback($node);\n      }\n\n      if ($parent) {\n        $parent.append($node);\n      }\n\n      return $node;\n    };\n  };\n\n  var renderer = {\n    create: function (markup, callback) {\n      return function () {\n        var children = $.isArray(arguments[0]) ? arguments[0] : [];\n        var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n        if (options && options.children) {\n          children = options.children;\n        }\n        return new Renderer(markup, children, options, callback);\n      };\n    }\n  };\n\n  var editor = renderer.create('<div class=\"note-editor note-frame panel panel-default\"/>');\n  var toolbar = renderer.create('<div class=\"note-toolbar panel-heading\"/>');\n  var editingArea = renderer.create('<div class=\"note-editing-area\"/>');\n  var codable = renderer.create('<textarea class=\"note-codable\"/>');\n  var editable = renderer.create('<div class=\"note-editable panel-body\" contentEditable=\"true\"/>');\n  var statusbar = renderer.create([\n    '<div class=\"note-statusbar\">',\n    '  <div class=\"note-resizebar\">',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '  </div>',\n    '</div>'\n  ].join(''));\n\n  var airEditor = renderer.create('<div class=\"note-editor\"/>');\n  var airEditable = renderer.create('<div class=\"note-editable\" contentEditable=\"true\"/>');\n\n  var buttonGroup = renderer.create('<div class=\"note-btn-group btn-group\">');\n  var button = renderer.create('<button type=\"button\" class=\"note-btn btn btn-default btn-sm\" tabindex=\"-1\">', function ($node, options) {\n    if (options && options.tooltip) {\n      $node.attr({\n        title: options.tooltip\n      }).tooltip({\n        container: 'body',\n        trigger: 'hover',\n        placement: 'bottom'\n      });\n    }\n  });\n\n  var dropdown = renderer.create('<div class=\"dropdown-menu\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + content + '</a></li>';\n    }).join('') : options.items;\n\n    $node.html(markup);\n  });\n\n  var dropdownCheck = renderer.create('<div class=\"dropdown-menu note-check\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + icon(options.checkClassName) + ' ' + content + '</a></li>';\n    }).join('') : options.items;\n    $node.html(markup);\n  });\n\n  var palette = renderer.create('<div class=\"note-color-palette\"/>', function ($node, options) {\n    var contents = [];\n    for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n      var eventName = options.eventName;\n      var colors = options.colors[row];\n      var buttons = [];\n      for (var col = 0, colSize = colors.length; col < colSize; col++) {\n        var color = colors[col];\n        buttons.push([\n          '<button type=\"button\" class=\"note-color-btn\"',\n          'style=\"background-color:', color, '\" ',\n          'data-event=\"', eventName, '\" ',\n          'data-value=\"', color, '\" ',\n          'title=\"', color, '\" ',\n          'data-toggle=\"button\" tabindex=\"-1\"></button>'\n        ].join(''));\n      }\n      contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n    }\n    $node.html(contents.join(''));\n\n    $node.find('.note-color-btn').tooltip({\n      container: 'body',\n      trigger: 'hover',\n      placement: 'bottom'\n    });\n  });\n\n  var dialog = renderer.create('<div class=\"modal\" aria-hidden=\"false\" tabindex=\"-1\"/>', function ($node, options) {\n    if (options.fade) {\n      $node.addClass('fade');\n    }\n    $node.html([\n      '<div class=\"modal-dialog\">',\n      '  <div class=\"modal-content\">',\n      (options.title ?\n      '    <div class=\"modal-header\">' +\n      '      <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button>' +\n      '      <h4 class=\"modal-title\">' + options.title + '</h4>' +\n      '    </div>' : ''\n      ),\n      '    <div class=\"modal-body\">' + options.body + '</div>',\n      (options.footer ?\n      '    <div class=\"modal-footer\">' + options.footer + '</div>' : ''\n      ),\n      '  </div>',\n      '</div>'\n    ].join(''));\n  });\n\n  var popover = renderer.create([\n    '<div class=\"note-popover popover in\">',\n    '  <div class=\"arrow\"/>',\n    '  <div class=\"popover-content note-children-container\"/>',\n    '</div>'\n  ].join(''), function ($node, options) {\n    var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n\n    $node.addClass(direction);\n\n    if (options.hideArrow) {\n      $node.find('.arrow').hide();\n    }\n  });\n\n  var icon = function (iconClassName, tagName) {\n    tagName = tagName || 'i';\n    return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n  };\n\n  var ui = {\n    editor: editor,\n    toolbar: toolbar,\n    editingArea: editingArea,\n    codable: codable,\n    editable: editable,\n    statusbar: statusbar,\n    airEditor: airEditor,\n    airEditable: airEditable,\n    buttonGroup: buttonGroup,\n    button: button,\n    dropdown: dropdown,\n    dropdownCheck: dropdownCheck,\n    palette: palette,\n    dialog: dialog,\n    popover: popover,\n    icon: icon,\n\n    toggleBtn: function ($btn, isEnable) {\n      $btn.toggleClass('disabled', !isEnable);\n      $btn.attr('disabled', !isEnable);\n    },\n\n    toggleBtnActive: function ($btn, isActive) {\n      $btn.toggleClass('active', isActive);\n    },\n\n    onDialogShown: function ($dialog, handler) {\n      $dialog.one('shown.bs.modal', handler);\n    },\n\n    onDialogHidden: function ($dialog, handler) {\n      $dialog.one('hidden.bs.modal', handler);\n    },\n\n    showDialog: function ($dialog) {\n      $dialog.modal('show');\n    },\n\n    hideDialog: function ($dialog) {\n      $dialog.modal('hide');\n    },\n\n    createLayout: function ($note, options) {\n      var $editor = (options.airMode ? ui.airEditor([\n        ui.editingArea([\n          ui.airEditable()\n        ])\n      ]) : ui.editor([\n        ui.toolbar(),\n        ui.editingArea([\n          ui.codable(),\n          ui.editable()\n        ]),\n        ui.statusbar()\n      ])).render();\n\n      $editor.insertAfter($note);\n\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editingArea: $editor.find('.note-editing-area'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable'),\n        statusbar: $editor.find('.note-statusbar')\n      };\n    },\n\n    removeLayout: function ($note, layoutInfo) {\n      $note.html(layoutInfo.editable.html());\n      layoutInfo.editor.remove();\n      $note.show();\n    }\n  };\n\n  $.summernote = $.summernote || {\n    lang: {}\n  };\n\n  $.extend($.summernote.lang, {\n    'en-US': {\n      font: {\n        bold: 'Bold',\n        italic: 'Italic',\n        underline: 'Underline',\n        clear: 'Remove Font Style',\n        height: 'Line Height',\n        name: 'Font Family',\n        strikethrough: 'Strikethrough',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Font Size'\n      },\n      image: {\n        image: 'Picture',\n        insert: 'Insert Image',\n        resizeFull: 'Resize Full',\n        resizeHalf: 'Resize Half',\n        resizeQuarter: 'Resize Quarter',\n        floatLeft: 'Float Left',\n        floatRight: 'Float Right',\n        floatNone: 'Float None',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Drag image or text here',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Select from files',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Image URL',\n        remove: 'Remove Image'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Insert Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Insert Link',\n        unlink: 'Unlink',\n        edit: 'Edit',\n        textToDisplay: 'Text to display',\n        url: 'To what URL should this link go?',\n        openInNewWindow: 'Open in new window'\n      },\n      table: {\n        table: 'Table'\n      },\n      hr: {\n        insert: 'Insert Horizontal Rule'\n      },\n      style: {\n        style: 'Style',\n        normal: 'Normal',\n        blockquote: 'Quote',\n        pre: 'Code',\n        h1: 'Header 1',\n        h2: 'Header 2',\n        h3: 'Header 3',\n        h4: 'Header 4',\n        h5: 'Header 5',\n        h6: 'Header 6'\n      },\n      lists: {\n        unordered: 'Unordered list',\n        ordered: 'Ordered list'\n      },\n      options: {\n        help: 'Help',\n        fullscreen: 'Full Screen',\n        codeview: 'Code View'\n      },\n      paragraph: {\n        paragraph: 'Paragraph',\n        outdent: 'Outdent',\n        indent: 'Indent',\n        left: 'Align left',\n        center: 'Align center',\n        right: 'Align right',\n        justify: 'Justify full'\n      },\n      color: {\n        recent: 'Recent Color',\n        more: 'More Color',\n        background: 'Background Color',\n        foreground: 'Foreground Color',\n        transparent: 'Transparent',\n        setTransparent: 'Set transparent',\n        reset: 'Reset',\n        resetToDefault: 'Reset to default'\n      },\n      shortcut: {\n        shortcuts: 'Keyboard shortcuts',\n        close: 'Close',\n        textFormatting: 'Text formatting',\n        action: 'Action',\n        paragraphFormatting: 'Paragraph formatting',\n        documentStyle: 'Document Style',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Undo',\n        redo: 'Redo'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n\n\n  /**\n   * @class core.key\n   *\n   * Object for keycodes.\n   *\n   * @singleton\n   * @alternateClassName key\n   */\n  var key = (function () {\n    var keyMap = {\n      'BACKSPACE': 8,\n      'TAB': 9,\n      'ENTER': 13,\n      'SPACE': 32,\n\n      // Arrow\n      'LEFT': 37,\n      'UP': 38,\n      'RIGHT': 39,\n      'DOWN': 40,\n\n      // Number: 0-9\n      'NUM0': 48,\n      'NUM1': 49,\n      'NUM2': 50,\n      'NUM3': 51,\n      'NUM4': 52,\n      'NUM5': 53,\n      'NUM6': 54,\n      'NUM7': 55,\n      'NUM8': 56,\n\n      // Alphabet: a-z\n      'B': 66,\n      'E': 69,\n      'I': 73,\n      'J': 74,\n      'K': 75,\n      'L': 76,\n      'R': 82,\n      'S': 83,\n      'U': 85,\n      'V': 86,\n      'Y': 89,\n      'Z': 90,\n\n      'SLASH': 191,\n      'LEFTBRACKET': 219,\n      'BACKSLASH': 220,\n      'RIGHTBRACKET': 221\n    };\n\n    return {\n      /**\n       * @method isEdit\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isEdit: function (keyCode) {\n        return list.contains([\n          keyMap.BACKSPACE,\n          keyMap.TAB,\n          keyMap.ENTER,\n          keyMap.SPACE\n        ], keyCode);\n      },\n      /**\n       * @method isMove\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isMove: function (keyCode) {\n        return list.contains([\n          keyMap.LEFT,\n          keyMap.UP,\n          keyMap.RIGHT,\n          keyMap.DOWN\n        ], keyCode);\n      },\n      /**\n       * @property {Object} nameFromCode\n       * @property {String} nameFromCode.8 \"BACKSPACE\"\n       */\n      nameFromCode: func.invertObject(keyMap),\n      code: keyMap\n    };\n  })();\n\n  var range = (function () {\n\n    /**\n     * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n     *\n     * @param {TextRange} textRange\n     * @param {Boolean} isStart\n     * @return {BoundaryPoint}\n     *\n     * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n     */\n    var textRangeToPoint = function (textRange, isStart) {\n      var container = textRange.parentElement(), offset;\n  \n      var tester = document.body.createTextRange(), prevContainer;\n      var childNodes = list.from(container.childNodes);\n      for (offset = 0; offset < childNodes.length; offset++) {\n        if (dom.isText(childNodes[offset])) {\n          continue;\n        }\n        tester.moveToElementText(childNodes[offset]);\n        if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n          break;\n        }\n        prevContainer = childNodes[offset];\n      }\n  \n      if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n        var textRangeStart = document.body.createTextRange(), curTextNode = null;\n        textRangeStart.moveToElementText(prevContainer || container);\n        textRangeStart.collapse(!prevContainer);\n        curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n  \n        var pointTester = textRange.duplicate();\n        pointTester.setEndPoint('StartToStart', textRangeStart);\n        var textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n  \n        while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        /* jshint ignore:start */\n        var dummy = curTextNode.nodeValue; // enforce IE to re-reference curTextNode, hack\n        /* jshint ignore:end */\n  \n        if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n            textCount === curTextNode.nodeValue.length) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        container = curTextNode;\n        offset = textCount;\n      }\n  \n      return {\n        cont: container,\n        offset: offset\n      };\n    };\n    \n    /**\n     * return TextRange from boundary point (inspired by google closure-library)\n     * @param {BoundaryPoint} point\n     * @return {TextRange}\n     */\n    var pointToTextRange = function (point) {\n      var textRangeInfo = function (container, offset) {\n        var node, isCollapseToStart;\n  \n        if (dom.isText(container)) {\n          var prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n          var prevContainer = list.last(prevTextNodes).previousSibling;\n          node =  prevContainer || container.parentNode;\n          offset += list.sum(list.tail(prevTextNodes), dom.nodeLength);\n          isCollapseToStart = !prevContainer;\n        } else {\n          node = container.childNodes[offset] || container;\n          if (dom.isText(node)) {\n            return textRangeInfo(node, 0);\n          }\n  \n          offset = 0;\n          isCollapseToStart = false;\n        }\n  \n        return {\n          node: node,\n          collapseToStart: isCollapseToStart,\n          offset: offset\n        };\n      };\n  \n      var textRange = document.body.createTextRange();\n      var info = textRangeInfo(point.node, point.offset);\n  \n      textRange.moveToElementText(info.node);\n      textRange.collapse(info.collapseToStart);\n      textRange.moveStart('character', info.offset);\n      return textRange;\n    };\n    \n    /**\n     * Wrapped Range\n     *\n     * @constructor\n     * @param {Node} sc - start container\n     * @param {Number} so - start offset\n     * @param {Node} ec - end container\n     * @param {Number} eo - end offset\n     */\n    var WrappedRange = function (sc, so, ec, eo) {\n      this.sc = sc;\n      this.so = so;\n      this.ec = ec;\n      this.eo = eo;\n  \n      // nativeRange: get nativeRange from sc, so, ec, eo\n      var nativeRange = function () {\n        if (agent.isW3CRangeSupport) {\n          var w3cRange = document.createRange();\n          w3cRange.setStart(sc, so);\n          w3cRange.setEnd(ec, eo);\n\n          return w3cRange;\n        } else {\n          var textRange = pointToTextRange({\n            node: sc,\n            offset: so\n          });\n\n          textRange.setEndPoint('EndToEnd', pointToTextRange({\n            node: ec,\n            offset: eo\n          }));\n\n          return textRange;\n        }\n      };\n\n      this.getPoints = function () {\n        return {\n          sc: sc,\n          so: so,\n          ec: ec,\n          eo: eo\n        };\n      };\n\n      this.getStartPoint = function () {\n        return {\n          node: sc,\n          offset: so\n        };\n      };\n\n      this.getEndPoint = function () {\n        return {\n          node: ec,\n          offset: eo\n        };\n      };\n\n      /**\n       * select update visible range\n       */\n      this.select = function () {\n        var nativeRng = nativeRange();\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (selection.rangeCount > 0) {\n            selection.removeAllRanges();\n          }\n          selection.addRange(nativeRng);\n        } else {\n          nativeRng.select();\n        }\n        \n        return this;\n      };\n\n      /**\n       * Moves the scrollbar to start container(sc) of current range\n       *\n       * @return {WrappedRange}\n       */\n      this.scrollIntoView = function (container) {\n        var height = $(container).height();\n        if (container.scrollTop + height < this.sc.offsetTop) {\n          container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n        }\n\n        return this;\n      };\n\n      /**\n       * @return {WrappedRange}\n       */\n      this.normalize = function () {\n\n        /**\n         * @param {BoundaryPoint} point\n         * @param {Boolean} isLeftToRight\n         * @return {BoundaryPoint}\n         */\n        var getVisiblePoint = function (point, isLeftToRight) {\n          if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||\n              (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n            return point;\n          }\n\n          // point on block's edge\n          var block = dom.ancestor(point.node, dom.isBlock);\n          if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n              ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\n\n            // returns point already on visible point\n            if (dom.isVisiblePoint(point)) {\n              return point;\n            }\n            // reverse direction \n            isLeftToRight = !isLeftToRight;\n          }\n\n          var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) :\n                                          dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n          return nextPoint || point;\n        };\n\n        var endPoint = getVisiblePoint(this.getEndPoint(), false);\n        var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n\n      /**\n       * returns matched nodes on range\n       *\n       * @param {Function} [pred] - predicate function\n       * @param {Object} [options]\n       * @param {Boolean} [options.includeAncestor]\n       * @param {Boolean} [options.fullyContains]\n       * @return {Node[]}\n       */\n      this.nodes = function (pred, options) {\n        pred = pred || func.ok;\n\n        var includeAncestor = options && options.includeAncestor;\n        var fullyContains = options && options.fullyContains;\n\n        // TODO compare points and sort\n        var startPoint = this.getStartPoint();\n        var endPoint = this.getEndPoint();\n\n        var nodes = [];\n        var leftEdgeNodes = [];\n\n        dom.walkPoint(startPoint, endPoint, function (point) {\n          if (dom.isEditable(point.node)) {\n            return;\n          }\n\n          var node;\n          if (fullyContains) {\n            if (dom.isLeftEdgePoint(point)) {\n              leftEdgeNodes.push(point.node);\n            }\n            if (dom.isRightEdgePoint(point) && list.contains(leftEdgeNodes, point.node)) {\n              node = point.node;\n            }\n          } else if (includeAncestor) {\n            node = dom.ancestor(point.node, pred);\n          } else {\n            node = point.node;\n          }\n\n          if (node && pred(node)) {\n            nodes.push(node);\n          }\n        }, true);\n\n        return list.unique(nodes);\n      };\n\n      /**\n       * returns commonAncestor of range\n       * @return {Element} - commonAncestor\n       */\n      this.commonAncestor = function () {\n        return dom.commonAncestor(sc, ec);\n      };\n\n      /**\n       * returns expanded range by pred\n       *\n       * @param {Function} pred - predicate function\n       * @return {WrappedRange}\n       */\n      this.expand = function (pred) {\n        var startAncestor = dom.ancestor(sc, pred);\n        var endAncestor = dom.ancestor(ec, pred);\n\n        if (!startAncestor && !endAncestor) {\n          return new WrappedRange(sc, so, ec, eo);\n        }\n\n        var boundaryPoints = this.getPoints();\n\n        if (startAncestor) {\n          boundaryPoints.sc = startAncestor;\n          boundaryPoints.so = 0;\n        }\n\n        if (endAncestor) {\n          boundaryPoints.ec = endAncestor;\n          boundaryPoints.eo = dom.nodeLength(endAncestor);\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * @param {Boolean} isCollapseToStart\n       * @return {WrappedRange}\n       */\n      this.collapse = function (isCollapseToStart) {\n        if (isCollapseToStart) {\n          return new WrappedRange(sc, so, sc, so);\n        } else {\n          return new WrappedRange(ec, eo, ec, eo);\n        }\n      };\n\n      /**\n       * splitText on range\n       */\n      this.splitText = function () {\n        var isSameContainer = sc === ec;\n        var boundaryPoints = this.getPoints();\n\n        if (dom.isText(ec) && !dom.isEdgePoint(this.getEndPoint())) {\n          ec.splitText(eo);\n        }\n\n        if (dom.isText(sc) && !dom.isEdgePoint(this.getStartPoint())) {\n          boundaryPoints.sc = sc.splitText(so);\n          boundaryPoints.so = 0;\n\n          if (isSameContainer) {\n            boundaryPoints.ec = boundaryPoints.sc;\n            boundaryPoints.eo = eo - so;\n          }\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * delete contents on range\n       * @return {WrappedRange}\n       */\n      this.deleteContents = function () {\n        if (this.isCollapsed()) {\n          return this;\n        }\n\n        var rng = this.splitText();\n        var nodes = rng.nodes(null, {\n          fullyContains: true\n        });\n\n        // find new cursor point\n        var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {\n          return !list.contains(nodes, point.node);\n        });\n\n        var emptyParents = [];\n        $.each(nodes, function (idx, node) {\n          // find empty parents\n          var parent = node.parentNode;\n          if (point.node !== parent && dom.nodeLength(parent) === 1) {\n            emptyParents.push(parent);\n          }\n          dom.remove(node, false);\n        });\n\n        // remove empty parents\n        $.each(emptyParents, function (idx, node) {\n          dom.remove(node, false);\n        });\n\n        return new WrappedRange(\n          point.node,\n          point.offset,\n          point.node,\n          point.offset\n        ).normalize();\n      };\n      \n      /**\n       * makeIsOn: return isOn(pred) function\n       */\n      var makeIsOn = function (pred) {\n        return function () {\n          var ancestor = dom.ancestor(sc, pred);\n          return !!ancestor && (ancestor === dom.ancestor(ec, pred));\n        };\n      };\n  \n      // isOnEditable: judge whether range is on editable or not\n      this.isOnEditable = makeIsOn(dom.isEditable);\n      // isOnList: judge whether range is on list node or not\n      this.isOnList = makeIsOn(dom.isList);\n      // isOnAnchor: judge whether range is on anchor node or not\n      this.isOnAnchor = makeIsOn(dom.isAnchor);\n      // isOnCell: judge whether range is on cell node or not\n      this.isOnCell = makeIsOn(dom.isCell);\n      // isOnData: judge whether range is on data node or not\n      this.isOnData = makeIsOn(dom.isData);\n\n      /**\n       * @param {Function} pred\n       * @return {Boolean}\n       */\n      this.isLeftEdgeOf = function (pred) {\n        if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n          return false;\n        }\n\n        var node = dom.ancestor(this.sc, pred);\n        return node && dom.isLeftEdgeOf(this.sc, node);\n      };\n\n      /**\n       * returns whether range was collapsed or not\n       */\n      this.isCollapsed = function () {\n        return sc === ec && so === eo;\n      };\n\n      /**\n       * wrap inline nodes which children of body with paragraph\n       *\n       * @return {WrappedRange}\n       */\n      this.wrapBodyInlineWithPara = function () {\n        if (dom.isBodyContainer(sc) && dom.isEmpty(sc)) {\n          sc.innerHTML = dom.emptyPara;\n          return new WrappedRange(sc.firstChild, 0, sc.firstChild, 0);\n        }\n\n        /**\n         * [workaround] firefox often create range on not visible point. so normalize here.\n         *  - firefox: |<p>text</p>|\n         *  - chrome: <p>|text|</p>\n         */\n        var rng = this.normalize();\n        if (dom.isParaInline(sc) || dom.isPara(sc)) {\n          return rng;\n        }\n\n        // find inline top ancestor\n        var topAncestor;\n        if (dom.isInline(rng.sc)) {\n          var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n          topAncestor = list.last(ancestors);\n          if (!dom.isInline(topAncestor)) {\n            topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n          }\n        } else {\n          topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n        }\n\n        // siblings not in paragraph\n        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n        // wrap with paragraph\n        if (inlineSiblings.length) {\n          var para = dom.wrap(list.head(inlineSiblings), 'p');\n          dom.appendChildNodes(para, list.tail(inlineSiblings));\n        }\n\n        return this.normalize();\n      };\n\n      /**\n       * insert node at current cursor\n       *\n       * @param {Node} node\n       * @return {Node}\n       */\n      this.insertNode = function (node) {\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n        var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n        if (info.rightNode) {\n          info.rightNode.parentNode.insertBefore(node, info.rightNode);\n        } else {\n          info.container.appendChild(node);\n        }\n\n        return node;\n      };\n\n      /**\n       * insert html at current cursor\n       */\n      this.pasteHTML = function (markup) {\n        var contentsContainer = $('<div></div>').html(markup)[0];\n        var childNodes = list.from(contentsContainer.childNodes);\n\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n\n        return childNodes.reverse().map(function (childNode) {\n          return rng.insertNode(childNode);\n        }).reverse();\n      };\n  \n      /**\n       * returns text in range\n       *\n       * @return {String}\n       */\n      this.toString = function () {\n        var nativeRng = nativeRange();\n        return agent.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n      };\n\n      /**\n       * returns range for word before cursor\n       *\n       * @param {Boolean} [findAfter] - find after cursor, default: false\n       * @return {WrappedRange}\n       */\n      this.getWordRange = function (findAfter) {\n        var endPoint = this.getEndPoint();\n\n        if (!dom.isCharPoint(endPoint)) {\n          return this;\n        }\n\n        var startPoint = dom.prevPointUntil(endPoint, function (point) {\n          return !dom.isCharPoint(point);\n        });\n\n        if (findAfter) {\n          endPoint = dom.nextPointUntil(endPoint, function (point) {\n            return !dom.isCharPoint(point);\n          });\n        }\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n  \n      /**\n       * create offsetPath bookmark\n       *\n       * @param {Node} editable\n       */\n      this.bookmark = function (editable) {\n        return {\n          s: {\n            path: dom.makeOffsetPath(editable, sc),\n            offset: so\n          },\n          e: {\n            path: dom.makeOffsetPath(editable, ec),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * create offsetPath bookmark base on paragraph\n       *\n       * @param {Node[]} paras\n       */\n      this.paraBookmark = function (paras) {\n        return {\n          s: {\n            path: list.tail(dom.makeOffsetPath(list.head(paras), sc)),\n            offset: so\n          },\n          e: {\n            path: list.tail(dom.makeOffsetPath(list.last(paras), ec)),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * getClientRects\n       * @return {Rect[]}\n       */\n      this.getClientRects = function () {\n        var nativeRng = nativeRange();\n        return nativeRng.getClientRects();\n      };\n    };\n\n  /**\n   * @class core.range\n   *\n   * Data structure\n   *  * BoundaryPoint: a point of dom tree\n   *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n   *\n   * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n   *\n   * @singleton\n   * @alternateClassName range\n   */\n    return {\n      /**\n       * create Range Object From arguments or Browser Selection\n       *\n       * @param {Node} sc - start container\n       * @param {Number} so - start offset\n       * @param {Node} ec - end container\n       * @param {Number} eo - end offset\n       * @return {WrappedRange}\n       */\n      create: function (sc, so, ec, eo) {\n        if (arguments.length === 4) {\n          return new WrappedRange(sc, so, ec, eo);\n        } else if (arguments.length === 2) { //collapsed\n          ec = sc;\n          eo = so;\n          return new WrappedRange(sc, so, ec, eo);\n        } else {\n          var wrappedRange = this.createFromSelection();\n          if (!wrappedRange && arguments.length === 1) {\n            wrappedRange = this.createFromNode(arguments[0]);\n            return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n          }\n          return wrappedRange;\n        }\n      },\n\n      createFromSelection: function () {\n        var sc, so, ec, eo;\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (!selection || selection.rangeCount === 0) {\n            return null;\n          } else if (dom.isBody(selection.anchorNode)) {\n            // Firefox: returns entire body as range on initialization.\n            // We won't never need it.\n            return null;\n          }\n\n          var nativeRng = selection.getRangeAt(0);\n          sc = nativeRng.startContainer;\n          so = nativeRng.startOffset;\n          ec = nativeRng.endContainer;\n          eo = nativeRng.endOffset;\n        } else { // IE8: TextRange\n          var textRange = document.selection.createRange();\n          var textRangeEnd = textRange.duplicate();\n          textRangeEnd.collapse(false);\n          var textRangeStart = textRange;\n          textRangeStart.collapse(true);\n\n          var startPoint = textRangeToPoint(textRangeStart, true),\n          endPoint = textRangeToPoint(textRangeEnd, false);\n\n          // same visible point case: range was collapsed.\n          if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n              dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n              endPoint.node.nextSibling === startPoint.node) {\n            startPoint = endPoint;\n          }\n\n          sc = startPoint.cont;\n          so = startPoint.offset;\n          ec = endPoint.cont;\n          eo = endPoint.offset;\n        }\n\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from node\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNode: function (node) {\n        var sc = node;\n        var so = 0;\n        var ec = node;\n        var eo = dom.nodeLength(ec);\n\n        // browsers can't target a picture or void node\n        if (dom.isVoid(sc)) {\n          so = dom.listPrev(sc).length - 1;\n          sc = sc.parentNode;\n        }\n        if (dom.isBR(ec)) {\n          eo = dom.listPrev(ec).length - 1;\n          ec = ec.parentNode;\n        } else if (dom.isVoid(ec)) {\n          eo = dom.listPrev(ec).length;\n          ec = ec.parentNode;\n        }\n\n        return this.create(sc, so, ec, eo);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeBefore: function (node) {\n        return this.createFromNode(node).collapse(true);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeAfter: function (node) {\n        return this.createFromNode(node).collapse();\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from bookmark\n       *\n       * @param {Node} editable\n       * @param {Object} bookmark\n       * @return {WrappedRange}\n       */\n      createFromBookmark: function (editable, bookmark) {\n        var sc = dom.fromOffsetPath(editable, bookmark.s.path);\n        var so = bookmark.s.offset;\n        var ec = dom.fromOffsetPath(editable, bookmark.e.path);\n        var eo = bookmark.e.offset;\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       *\n       * create WrappedRange from paraBookmark\n       *\n       * @param {Object} bookmark\n       * @param {Node[]} paras\n       * @return {WrappedRange}\n       */\n      createFromParaBookmark: function (bookmark, paras) {\n        var so = bookmark.s.offset;\n        var eo = bookmark.e.offset;\n        var sc = dom.fromOffsetPath(list.head(paras), bookmark.s.path);\n        var ec = dom.fromOffsetPath(list.last(paras), bookmark.e.path);\n\n        return new WrappedRange(sc, so, ec, eo);\n      }\n    };\n  })();\n\n  /**\n   * @class core.async\n   *\n   * Async functions which returns `Promise`\n   *\n   * @singleton\n   * @alternateClassName async\n   */\n  var async = (function () {\n    /**\n     * @method readFileAsDataURL\n     *\n     * read contents of file as representing URL\n     *\n     * @param {File} file\n     * @return {Promise} - then: dataUrl\n     */\n    var readFileAsDataURL = function (file) {\n      return $.Deferred(function (deferred) {\n        $.extend(new FileReader(), {\n          onload: function (e) {\n            var dataURL = e.target.result;\n            deferred.resolve(dataURL);\n          },\n          onerror: function () {\n            deferred.reject(this);\n          }\n        }).readAsDataURL(file);\n      }).promise();\n    };\n  \n    /**\n     * @method createImage\n     *\n     * create `<image>` from url string\n     *\n     * @param {String} url\n     * @return {Promise} - then: $image\n     */\n    var createImage = function (url) {\n      return $.Deferred(function (deferred) {\n        var $img = $('<img>');\n\n        $img.one('load', function () {\n          $img.off('error abort');\n          deferred.resolve($img);\n        }).one('error abort', function () {\n          $img.off('load').detach();\n          deferred.reject($img);\n        }).css({\n          display: 'none'\n        }).appendTo(document.body).attr('src', url);\n      }).promise();\n    };\n\n    return {\n      readFileAsDataURL: readFileAsDataURL,\n      createImage: createImage\n    };\n  })();\n\n  /**\n   * @class editing.History\n   *\n   * Editor History\n   *\n   */\n  var History = function ($editable) {\n    var stack = [], stackOffset = -1;\n    var editable = $editable[0];\n\n    var makeSnapshot = function () {\n      var rng = range.create(editable);\n      var emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};\n\n      return {\n        contents: $editable.html(),\n        bookmark: (rng ? rng.bookmark(editable) : emptyBookmark)\n      };\n    };\n\n    var applySnapshot = function (snapshot) {\n      if (snapshot.contents !== null) {\n        $editable.html(snapshot.contents);\n      }\n      if (snapshot.bookmark !== null) {\n        range.createFromBookmark(editable, snapshot.bookmark).select();\n      }\n    };\n\n    /**\n    * @method rewind\n    * Rewinds the history stack back to the first snapshot taken.\n    * Leaves the stack intact, so that \"Redo\" can still be used.\n    */\n    this.rewind = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      // Return to the first available snapshot.\n      stackOffset = 0;\n\n      // Apply that snapshot.\n      applySnapshot(stack[stackOffset]);\n    };\n\n    /**\n    * @method reset\n    * Resets the history stack completely; reverting to an empty editor.\n    */\n    this.reset = function () {\n      // Clear the stack.\n      stack = [];\n\n      // Restore stackOffset to its original value.\n      stackOffset = -1;\n\n      // Clear the editable area.\n      $editable.html('');\n\n      // Record our first snapshot (of nothing).\n      this.recordUndo();\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      if (0 < stackOffset) {\n        stackOffset--;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      if (stack.length - 1 > stackOffset) {\n        stackOffset++;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * recorded undo\n     */\n    this.recordUndo = function () {\n      stackOffset++;\n\n      // Wash out stack after stackOffset\n      if (stack.length > stackOffset) {\n        stack = stack.slice(0, stackOffset);\n      }\n\n      // Create new snapshot and push it to the end\n      stack.push(makeSnapshot());\n    };\n  };\n\n  /**\n   * @class editing.Style\n   *\n   * Style\n   *\n   */\n  var Style = function () {\n    /**\n     * @method jQueryCSS\n     *\n     * [workaround] for old jQuery\n     * passing an array of style properties to .css()\n     * will result in an object of property-value pairs.\n     * (compability with version < 1.9)\n     *\n     * @private\n     * @param  {jQuery} $obj\n     * @param  {Array} propertyNames - An array of one or more CSS properties.\n     * @return {Object}\n     */\n    var jQueryCSS = function ($obj, propertyNames) {\n      if (agent.jqueryVersion < 1.9) {\n        var result = {};\n        $.each(propertyNames, function (idx, propertyName) {\n          result[propertyName] = $obj.css(propertyName);\n        });\n        return result;\n      }\n      return $obj.css.call($obj, propertyNames);\n    };\n\n    /**\n     * returns style object from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.fromNode = function ($node) {\n      var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n      var styleInfo = jQueryCSS($node, properties) || {};\n      styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\n      return styleInfo;\n    };\n\n    /**\n     * paragraph level style\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} styleInfo\n     */\n    this.stylePara = function (rng, styleInfo) {\n      $.each(rng.nodes(dom.isPara, {\n        includeAncestor: true\n      }), function (idx, para) {\n        $(para).css(styleInfo);\n      });\n    };\n\n    /**\n     * insert and returns styleNodes on range.\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} [options] - options for styleNodes\n     * @param {String} [options.nodeName] - default: `SPAN`\n     * @param {Boolean} [options.expandClosestSibling] - default: `false`\n     * @param {Boolean} [options.onlyPartialContains] - default: `false`\n     * @return {Node[]}\n     */\n    this.styleNodes = function (rng, options) {\n      rng = rng.splitText();\n\n      var nodeName = options && options.nodeName || 'SPAN';\n      var expandClosestSibling = !!(options && options.expandClosestSibling);\n      var onlyPartialContains = !!(options && options.onlyPartialContains);\n\n      if (rng.isCollapsed()) {\n        return [rng.insertNode(dom.create(nodeName))];\n      }\n\n      var pred = dom.makePredByNodeName(nodeName);\n      var nodes = rng.nodes(dom.isText, {\n        fullyContains: true\n      }).map(function (text) {\n        return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n      });\n\n      if (expandClosestSibling) {\n        if (onlyPartialContains) {\n          var nodesInRange = rng.nodes();\n          // compose with partial contains predication\n          pred = func.and(pred, function (node) {\n            return list.contains(nodesInRange, node);\n          });\n        }\n\n        return nodes.map(function (node) {\n          var siblings = dom.withClosestSiblings(node, pred);\n          var head = list.head(siblings);\n          var tails = list.tail(siblings);\n          $.each(tails, function (idx, elem) {\n            dom.appendChildNodes(head, elem.childNodes);\n            dom.remove(elem);\n          });\n          return list.head(siblings);\n        });\n      } else {\n        return nodes;\n      }\n    };\n\n    /**\n     * get current style on cursor\n     *\n     * @param {WrappedRange} rng\n     * @return {Object} - object contains style properties.\n     */\n    this.current = function (rng) {\n      var $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n      var styleInfo = this.fromNode($cont);\n\n      // document.queryCommandState for toggle state\n      // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n      try {\n        styleInfo = $.extend(styleInfo, {\n          'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n          'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n          'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n          'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n          'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n          'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal'\n        });\n      } catch (e) {}\n\n      // list-style-type to list-style(unordered, ordered)\n      if (!rng.isOnList()) {\n        styleInfo['list-style'] = 'none';\n      } else {\n        var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n        var isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;\n        styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n      }\n\n      var para = dom.ancestor(rng.sc, dom.isPara);\n      if (para && para.style['line-height']) {\n        styleInfo['line-height'] = para.style.lineHeight;\n      } else {\n        var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n        styleInfo['line-height'] = lineHeight.toFixed(1);\n      }\n\n      styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n      styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n      styleInfo.range = rng;\n\n      return styleInfo;\n    };\n  };\n\n\n  /**\n   * @class editing.Bullet\n   *\n   * @alternateClassName Bullet\n   */\n  var Bullet = function () {\n    var self = this;\n\n    /**\n     * toggle ordered list\n     */\n    this.insertOrderedList = function (editable) {\n      this.toggleList('OL', editable);\n    };\n\n    /**\n     * toggle unordered list\n     */\n    this.insertUnorderedList = function (editable) {\n      this.toggleList('UL', editable);\n    };\n\n    /**\n     * indent\n     */\n    this.indent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.wrapList(paras, head.parentNode.nodeName);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              return (parseInt(val, 10) || 0) + 25;\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * outdent\n     */\n    this.outdent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.releaseList([paras]);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              val = (parseInt(val, 10) || 0);\n              return val > 25 ? val - 25 : '';\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * toggle list\n     *\n     * @param {String} listName - OL or UL\n     */\n    this.toggleList = function (listName, editable) {\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var bookmark = rng.paraBookmark(paras);\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      // paragraph to list\n      if (list.find(paras, dom.isPurePara)) {\n        var wrappedParas = [];\n        $.each(clustereds, function (idx, paras) {\n          wrappedParas = wrappedParas.concat(self.wrapList(paras, listName));\n        });\n        paras = wrappedParas;\n      // list to paragraph or change list style\n      } else {\n        var diffLists = rng.nodes(dom.isList, {\n          includeAncestor: true\n        }).filter(function (listNode) {\n          return !$.nodeName(listNode, listName);\n        });\n\n        if (diffLists.length) {\n          $.each(diffLists, function (idx, listNode) {\n            dom.replace(listNode, listName);\n          });\n        } else {\n          paras = this.releaseList(clustereds, true);\n        }\n      }\n\n      range.createFromParaBookmark(bookmark, paras).select();\n    };\n\n    /**\n     * @param {Node[]} paras\n     * @param {String} listName\n     * @return {Node[]}\n     */\n    this.wrapList = function (paras, listName) {\n      var head = list.head(paras);\n      var last = list.last(paras);\n\n      var prevList = dom.isList(head.previousSibling) && head.previousSibling;\n      var nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n      var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n      // P to LI\n      paras = paras.map(function (para) {\n        return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n      });\n\n      // append to list(<ul>, <ol>)\n      dom.appendChildNodes(listNode, paras);\n\n      if (nextList) {\n        dom.appendChildNodes(listNode, list.from(nextList.childNodes));\n        dom.remove(nextList);\n      }\n\n      return paras;\n    };\n\n    /**\n     * @method releaseList\n     *\n     * @param {Array[]} clustereds\n     * @param {Boolean} isEscapseToBody\n     * @return {Node[]}\n     */\n    this.releaseList = function (clustereds, isEscapseToBody) {\n      var releasedParas = [];\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        var last = list.last(paras);\n\n        var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) :\n                                         head.parentNode;\n        var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n          node: last.parentNode,\n          offset: dom.position(last) + 1\n        }, {\n          isSkipPaddingBlankHTML: true\n        }) : null;\n\n        var middleList = dom.splitTree(headList, {\n          node: head.parentNode,\n          offset: dom.position(head)\n        }, {\n          isSkipPaddingBlankHTML: true\n        });\n\n        paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) :\n                                  list.from(middleList.childNodes).filter(dom.isLi);\n\n        // LI to P\n        if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n          paras = paras.map(function (para) {\n            return dom.replace(para, 'P');\n          });\n        }\n\n        $.each(list.from(paras).reverse(), function (idx, para) {\n          dom.insertAfter(para, headList);\n        });\n\n        // remove empty lists\n        var rootLists = list.compact([headList, middleList, lastList]);\n        $.each(rootLists, function (idx, rootList) {\n          var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n          $.each(listNodes.reverse(), function (idx, listNode) {\n            if (!dom.nodeLength(listNode)) {\n              dom.remove(listNode, true);\n            }\n          });\n        });\n\n        releasedParas = releasedParas.concat(paras);\n      });\n\n      return releasedParas;\n    };\n  };\n\n\n  /**\n   * @class editing.Typing\n   *\n   * Typing\n   *\n   */\n  var Typing = function () {\n\n    // a Bullet instance to toggle lists off\n    var bullet = new Bullet();\n\n    /**\n     * insert tab\n     *\n     * @param {WrappedRange} rng\n     * @param {Number} tabsize\n     */\n    this.insertTab = function (rng, tabsize) {\n      var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n      rng = rng.deleteContents();\n      rng.insertNode(tab, true);\n\n      rng = range.create(tab, tabsize);\n      rng.select();\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = function (editable) {\n      var rng = range.create(editable);\n\n      // deleteContents on range.\n      rng = rng.deleteContents();\n\n      // Wrap range if it needs to be wrapped by paragraph\n      rng = rng.wrapBodyInlineWithPara();\n\n      // finding paragraph\n      var splitRoot = dom.ancestor(rng.sc, dom.isPara);\n\n      var nextPara;\n      // on paragraph: split paragraph\n      if (splitRoot) {\n        // if it is an empty line with li\n        if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {\n          // toogle UL/OL and escape\n          bullet.toggleList(splitRoot.parentNode.nodeName);\n          return;\n        // if it is an empty line with para on blockquote\n        } else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {\n          // escape blockquote\n          dom.insertAfter(splitRoot, splitRoot.parentNode);\n          nextPara = splitRoot;\n        // if new line has content (not a line break)\n        } else {\n          nextPara = dom.splitTree(splitRoot, rng.getStartPoint());\n\n          var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n          emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n\n          $.each(emptyAnchors, function (idx, anchor) {\n            dom.remove(anchor);\n          });\n\n          // replace empty heading or pre with P tag\n          if ((dom.isHeading(nextPara) || dom.isPre(nextPara)) && dom.isEmpty(nextPara)) {\n            nextPara = dom.replace(nextPara, 'p');\n          }\n        }\n      // no paragraph: insert empty paragraph\n      } else {\n        var next = rng.sc.childNodes[rng.so];\n        nextPara = $(dom.emptyPara)[0];\n        if (next) {\n          rng.sc.insertBefore(nextPara, next);\n        } else {\n          rng.sc.appendChild(nextPara);\n        }\n      }\n\n      range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n    };\n  };\n\n  /**\n   * @class editing.Table\n   *\n   * Table\n   *\n   */\n  var Table = function () {\n    /**\n     * handle tab key\n     *\n     * @param {WrappedRange} rng\n     * @param {Boolean} isShift\n     */\n    this.tab = function (rng, isShift) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var table = dom.ancestor(cell, dom.isTable);\n      var cells = dom.listDescendant(table, dom.isCell);\n\n      var nextCell = list[isShift ? 'prev' : 'next'](cells, cell);\n      if (nextCell) {\n        range.create(nextCell, 0).select();\n      }\n    };\n\n    /**\n     * create empty table element\n     *\n     * @param {Number} rowCount\n     * @param {Number} colCount\n     * @return {Node}\n     */\n    this.createTable = function (colCount, rowCount, options) {\n      var tds = [], tdHTML;\n      for (var idxCol = 0; idxCol < colCount; idxCol++) {\n        tds.push('<td>' + dom.blank + '</td>');\n      }\n      tdHTML = tds.join('');\n\n      var trs = [], trHTML;\n      for (var idxRow = 0; idxRow < rowCount; idxRow++) {\n        trs.push('<tr>' + tdHTML + '</tr>');\n      }\n      trHTML = trs.join('');\n      var $table = $('<table>' + trHTML + '</table>');\n      if (options && options.tableClassName) {\n        $table.addClass(options.tableClassName);\n      }\n\n      return $table[0];\n    };\n  };\n\n\n  var KEY_BOGUS = 'bogus';\n\n  /**\n   * @class Editor\n   */\n  var Editor = function (context) {\n    var self = this;\n\n    var $note = context.layoutInfo.note;\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var editable = $editable[0];\n    var lastRange = null;\n\n    var style = new Style();\n    var table = new Table();\n    var typing = new Typing();\n    var bullet = new Bullet();\n    var history = new History($editable);\n\n    this.initialize = function () {\n      // bind custom events\n      $editable.on('keydown', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          context.triggerEvent('enter', event);\n        }\n        context.triggerEvent('keydown', event);\n\n        if (!event.isDefaultPrevented()) {\n          if (options.shortcuts) {\n            self.handleKeyMap(event);\n          } else {\n            self.preventDefaultEditableShortCuts(event);\n          }\n        }\n      }).on('keyup', function (event) {\n        context.triggerEvent('keyup', event);\n      }).on('focus', function (event) {\n        context.triggerEvent('focus', event);\n      }).on('blur', function (event) {\n        context.triggerEvent('blur', event);\n      }).on('mousedown', function (event) {\n        context.triggerEvent('mousedown', event);\n      }).on('mouseup', function (event) {\n        context.triggerEvent('mouseup', event);\n      }).on('scroll', function (event) {\n        context.triggerEvent('scroll', event);\n      }).on('paste', function (event) {\n        context.triggerEvent('paste', event);\n      });\n\n      // init content before set event\n      $editable.html(dom.html($note) || dom.emptyPara);\n\n      // [workaround] IE doesn't have input events for contentEditable\n      // - see: https://goo.gl/4bfIvA\n      var changeEventName = agent.isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n      $editable.on(changeEventName, func.debounce(function () {\n        context.triggerEvent('change', $editable.html());\n      }, 250));\n\n      $editor.on('focusin', function (event) {\n        context.triggerEvent('focusin', event);\n      }).on('focusout', function (event) {\n        context.triggerEvent('focusout', event);\n      });\n\n      if (!options.airMode) {\n        if (options.width) {\n          $editor.outerWidth(options.width);\n        }\n        if (options.height) {\n          $editable.outerHeight(options.height);\n        }\n        if (options.maxHeight) {\n          $editable.css('max-height', options.maxHeight);\n        }\n        if (options.minHeight) {\n          $editable.css('min-height', options.minHeight);\n        }\n      }\n\n      history.recordUndo();\n    };\n\n    this.destroy = function () {\n      $editable.off();\n    };\n\n    this.handleKeyMap = function (event) {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      var keys = [];\n\n      if (event.metaKey) { keys.push('CMD'); }\n      if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); }\n      if (event.shiftKey) { keys.push('SHIFT'); }\n\n      var keyName = key.nameFromCode[event.keyCode];\n      if (keyName) {\n        keys.push(keyName);\n      }\n\n      var eventName = keyMap[keys.join('+')];\n      if (eventName) {\n        event.preventDefault();\n        context.invoke(eventName);\n      } else if (key.isEdit(event.keyCode)) {\n        this.afterCommand();\n      }\n    };\n\n    this.preventDefaultEditableShortCuts = function (event) {\n      // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n      if ((event.ctrlKey || event.metaKey) &&\n        list.contains([66, 73, 85], event.keyCode)) {\n        event.preventDefault();\n      }\n    };\n\n    /**\n     * create range\n     * @return {WrappedRange}\n     */\n    this.createRange = function () {\n      this.focus();\n      return range.create(editable);\n    };\n\n    /**\n     * saveRange\n     *\n     * save current range\n     *\n     * @param {Boolean} [thenCollapse=false]\n     */\n    this.saveRange = function (thenCollapse) {\n      lastRange = this.createRange();\n      if (thenCollapse) {\n        lastRange.collapse().select();\n      }\n    };\n\n    /**\n     * restoreRange\n     *\n     * restore lately range\n     */\n    this.restoreRange = function () {\n      if (lastRange) {\n        lastRange.select();\n        this.focus();\n      }\n    };\n\n    this.saveTarget = function (node) {\n      $editable.data('target', node);\n    };\n\n    this.clearTarget = function () {\n      $editable.removeData('target');\n    };\n\n    this.restoreTarget = function () {\n      return $editable.data('target');\n    };\n\n    /**\n     * currentStyle\n     *\n     * current style\n     * @return {Object|Boolean} unfocus\n     */\n    this.currentStyle = function () {\n      var rng = range.create();\n      if (rng) {\n        rng = rng.normalize();\n      }\n      return rng ? style.current(rng) : style.fromNode($editable);\n    };\n\n    /**\n     * style from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.styleFromNode = function ($node) {\n      return style.fromNode($node);\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.undo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.undo', lang.help.undo);\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.redo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.redo', lang.help.redo);\n\n    /**\n     * before command\n     */\n    var beforeCommand = this.beforeCommand = function () {\n      context.triggerEvent('before.command', $editable.html());\n      // keep focus on editable before command execution\n      self.focus();\n    };\n\n    /**\n     * after command\n     * @param {Boolean} isPreventTrigger\n     */\n    var afterCommand = this.afterCommand = function (isPreventTrigger) {\n      history.recordUndo();\n      if (!isPreventTrigger) {\n        context.triggerEvent('change', $editable.html());\n      }\n    };\n\n    /* jshint ignore:start */\n    // native commands(with execCommand), generate function for execCommand\n    var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',\n                    'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',\n                    'formatBlock', 'removeFormat',\n                    'backColor', 'foreColor', 'fontName'];\n\n    for (var idx = 0, len = commands.length; idx < len; idx ++) {\n      this[commands[idx]] = (function (sCmd) {\n        return function (value) {\n          beforeCommand();\n          document.execCommand(sCmd, false, value);\n          afterCommand(true);\n        };\n      })(commands[idx]);\n      context.memo('help.' + commands[idx], lang.help[commands[idx]]);\n    }\n    /* jshint ignore:end */\n\n    /**\n     * handle tab key\n     */\n    this.tab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng);\n      } else {\n        beforeCommand();\n        typing.insertTab(rng, options.tabSize);\n        afterCommand();\n      }\n    };\n    context.memo('help.tab', lang.help.tab);\n\n    /**\n     * handle shift+tab key\n     */\n    this.untab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng, true);\n      }\n    };\n    context.memo('help.untab', lang.help.untab);\n\n    /**\n     * run given function between beforeCommand and afterCommand\n     */\n    this.wrapCommand = function (fn) {\n      return function () {\n        beforeCommand();\n        fn.apply(self, arguments);\n        afterCommand();\n      };\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = this.wrapCommand(function () {\n      typing.insertParagraph(editable);\n    });\n    context.memo('help.insertParagraph', lang.help.insertParagraph);\n\n    this.insertOrderedList = this.wrapCommand(function () {\n      bullet.insertOrderedList(editable);\n    });\n    context.memo('help.insertOrderedList', lang.help.insertOrderedList);\n\n    this.insertUnorderedList = this.wrapCommand(function () {\n      bullet.insertUnorderedList(editable);\n    });\n    context.memo('help.insertUnorderedList', lang.help.insertUnorderedList);\n\n    this.indent = this.wrapCommand(function () {\n      bullet.indent(editable);\n    });\n    context.memo('help.indent', lang.help.indent);\n\n    this.outdent = this.wrapCommand(function () {\n      bullet.outdent(editable);\n    });\n    context.memo('help.outdent', lang.help.outdent);\n\n    /**\n     * insert image\n     *\n     * @param {String} src\n     * @param {String|Function} param\n     * @return {Promise}\n     */\n    this.insertImage = function (src, param) {\n      return async.createImage(src, param).then(function ($image) {\n        beforeCommand();\n\n        if (typeof param === 'function') {\n          param($image);\n        } else {\n          if (typeof param === 'string') {\n            $image.attr('data-filename', param);\n          }\n          $image.css('width', Math.min($editable.width(), $image.width()));\n        }\n\n        $image.show();\n        range.create(editable).insertNode($image[0]);\n        range.createFromNodeAfter($image[0]).select();\n        afterCommand();\n      }).fail(function (e) {\n        context.triggerEvent('image.upload.error', e);\n      });\n    };\n\n    /**\n     * insertImages\n     * @param {File[]} files\n     */\n    this.insertImages = function (files) {\n      $.each(files, function (idx, file) {\n        var filename = file.name;\n        if (options.maximumImageFileSize && options.maximumImageFileSize < file.size) {\n          context.triggerEvent('image.upload.error', lang.image.maximumFileSizeError);\n        } else {\n          async.readFileAsDataURL(file).then(function (dataURL) {\n            return self.insertImage(dataURL, filename);\n          }).fail(function () {\n            context.triggerEvent('image.upload.error');\n          });\n        }\n      });\n    };\n\n    /**\n     * insertImagesOrCallback\n     * @param {File[]} files\n     */\n    this.insertImagesOrCallback = function (files) {\n      var callbacks = options.callbacks;\n\n      // If onImageUpload options setted\n      if (callbacks.onImageUpload) {\n        context.triggerEvent('image.upload', files);\n      // else insert Image as dataURL\n      } else {\n        this.insertImages(files);\n      }\n    };\n\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n    this.insertNode = this.wrapCommand(function (node) {\n      var rng = this.createRange();\n      rng.insertNode(node);\n      range.createFromNodeAfter(node).select();\n    });\n\n    /**\n     * insert text\n     * @param {String} text\n     */\n    this.insertText = this.wrapCommand(function (text) {\n      var rng = this.createRange();\n      var textNode = rng.insertNode(dom.createText(text));\n      range.create(textNode, dom.nodeLength(textNode)).select();\n    });\n\n    /**\n     * return selected plain text\n     * @return {String} text\n     */\n    this.getSelectedText = function () {\n      var rng = this.createRange();\n\n      // if range on anchor, expand range with anchor\n      if (rng.isOnAnchor()) {\n        rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n      }\n\n      return rng.toString();\n    };\n\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n    this.pasteHTML = this.wrapCommand(function (markup) {\n      var contents = this.createRange().pasteHTML(markup);\n      range.createFromNodeAfter(list.last(contents)).select();\n    });\n\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n    this.formatBlock = this.wrapCommand(function (tagName) {\n      // [workaround] for MSIE, IE need `<`\n      tagName = agent.isMSIE ? '<' + tagName + '>' : tagName;\n      document.execCommand('FormatBlock', false, tagName);\n    });\n\n    this.formatPara = function () {\n      this.formatBlock('P');\n    };\n    context.memo('help.formatPara', lang.help.formatPara);\n\n    /* jshint ignore:start */\n    for (var idx = 1; idx <= 6; idx ++) {\n      this['formatH' + idx] = function (idx) {\n        return function () {\n          this.formatBlock('H' + idx);\n        };\n      }(idx);\n      context.memo('help.formatH'+idx, lang.help['formatH' + idx]);\n    };\n    /* jshint ignore:end */\n\n    /**\n     * fontSize\n     *\n     * @param {String} value - px\n     */\n    this.fontSize = function (value) {\n      var rng = this.createRange();\n\n      if (rng && rng.isCollapsed()) {\n        var spans = style.styleNodes(rng);\n        var firstSpan = list.head(spans);\n\n        $(spans).css({\n          'font-size': value + 'px'\n        });\n\n        // [workaround] added styled bogus span for style\n        //  - also bogus character needed for cursor position\n        if (firstSpan && !dom.nodeLength(firstSpan)) {\n          firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n          range.createFromNodeAfter(firstSpan.firstChild).select();\n          $editable.data(KEY_BOGUS, firstSpan);\n        }\n      } else {\n        beforeCommand();\n        $(style.styleNodes(rng)).css({\n          'font-size': value + 'px'\n        });\n        afterCommand();\n      }\n    };\n\n    /**\n     * insert horizontal rule\n     */\n    this.insertHorizontalRule = this.wrapCommand(function () {\n      var hrNode = this.createRange().insertNode(dom.create('HR'));\n      if (hrNode.nextSibling) {\n        range.create(hrNode.nextSibling, 0).normalize().select();\n      }\n    });\n    context.memo('help.insertHorizontalRule', lang.help.insertHorizontalRule);\n\n    /**\n     * remove bogus node and character\n     */\n    this.removeBogus = function () {\n      var bogusNode = $editable.data(KEY_BOGUS);\n      if (!bogusNode) {\n        return;\n      }\n\n      var textNode = list.find(list.from(bogusNode.childNodes), dom.isText);\n\n      var bogusCharIdx = textNode.nodeValue.indexOf(dom.ZERO_WIDTH_NBSP_CHAR);\n      if (bogusCharIdx !== -1) {\n        textNode.deleteData(bogusCharIdx, 1);\n      }\n\n      if (dom.isEmpty(bogusNode)) {\n        dom.remove(bogusNode);\n      }\n\n      $editable.removeData(KEY_BOGUS);\n    };\n\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n    this.lineHeight = this.wrapCommand(function (value) {\n      style.stylePara(this.createRange(), {\n        lineHeight: value\n      });\n    });\n\n    /**\n     * unlink\n     *\n     * @type command\n     */\n    this.unlink = function () {\n      var rng = this.createRange();\n      if (rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        rng = range.createFromNode(anchor);\n        rng.select();\n\n        beforeCommand();\n        document.execCommand('unlink');\n        afterCommand();\n      }\n    };\n\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n    this.createLink = this.wrapCommand(function (linkInfo) {\n      var linkUrl = linkInfo.url;\n      var linkText = linkInfo.text;\n      var isNewWindow = linkInfo.isNewWindow;\n      var rng = linkInfo.range || this.createRange();\n      var isTextChanged = rng.toString() !== linkText;\n\n      // handle spaced urls from input\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (options.onCreateLink) {\n        linkUrl = options.onCreateLink(linkUrl);\n      }\n\n      var anchors = [];\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        var anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      $.each(anchors, function (idx, anchor) {\n        // if url doesn't match an URL schema, set http:// as default\n        linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?/.test(linkUrl) ?\n          linkUrl : 'http://' + linkUrl;\n\n        $(anchor).attr('href', linkUrl);\n        if (isNewWindow) {\n          $(anchor).attr('target', '_blank');\n        } else {\n          $(anchor).removeAttr('target');\n        }\n      });\n\n      var startRange = range.createFromNodeBefore(list.head(anchors));\n      var startPoint = startRange.getStartPoint();\n      var endRange = range.createFromNodeAfter(list.last(anchors));\n      var endPoint = endRange.getEndPoint();\n\n      range.create(\n        startPoint.node,\n        startPoint.offset,\n        endPoint.node,\n        endPoint.offset\n      ).select();\n    });\n\n    /**\n     * returns link info\n     *\n     * @return {Object}\n     * @return {WrappedRange} return.range\n     * @return {String} return.text\n     * @return {Boolean} [return.isNewWindow=true]\n     * @return {String} [return.url=\"\"]\n     */\n    this.getLinkInfo = function () {\n      var rng = this.createRange().expand(dom.isAnchor);\n\n      // Get the first anchor on range(for edit).\n      var $anchor = $(list.head(rng.nodes(dom.isAnchor)));\n\n      return {\n        range: rng,\n        text: rng.toString(),\n        isNewWindow: $anchor.length ? $anchor.attr('target') === '_blank' : false,\n        url: $anchor.length ? $anchor.attr('href') : ''\n      };\n    };\n\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n    this.color = this.wrapCommand(function (colorInfo) {\n      var foreColor = colorInfo.foreColor;\n      var backColor = colorInfo.backColor;\n\n      if (foreColor) { document.execCommand('foreColor', false, foreColor); }\n      if (backColor) { document.execCommand('backColor', false, backColor); }\n    });\n\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n    this.insertTable = this.wrapCommand(function (dim) {\n      var dimension = dim.split('x');\n\n      var rng = this.createRange().deleteContents();\n      rng.insertNode(table.createTable(dimension[0], dimension[1], options));\n    });\n\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n    this.floatMe = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css('float', value);\n    });\n\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n    this.resize = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css({\n        width: value * 100 + '%',\n        height: ''\n      });\n    });\n\n    /**\n     * @param {Position} pos\n     * @param {jQuery} $target - target element\n     * @param {Boolean} [bKeepRatio] - keep ratio\n     */\n    this.resizeTo = function (pos, $target, bKeepRatio) {\n      var imageSize;\n      if (bKeepRatio) {\n        var newRatio = pos.y / pos.x;\n        var ratio = $target.data('ratio');\n        imageSize = {\n          width: ratio > newRatio ? pos.x : pos.y / ratio,\n          height: ratio > newRatio ? pos.x * ratio : pos.y\n        };\n      } else {\n        imageSize = {\n          width: pos.x,\n          height: pos.y\n        };\n      }\n\n      $target.css(imageSize);\n    };\n\n    /**\n     * remove media object\n     */\n    this.removeMedia = this.wrapCommand(function () {\n      var $target = $(this.restoreTarget()).detach();\n      context.triggerEvent('media.delete', $target, $editable);\n    });\n\n    /**\n     * returns whether editable area has focus or not.\n     */\n    this.hasFocus = function () {\n      return $editable.is(':focus');\n    };\n\n    /**\n     * set focus\n     */\n    this.focus = function () {\n      // [workaround] Screen will move when page is scolled in IE.\n      //  - do focus when not focused\n      if (!this.hasFocus()) {\n        $editable.focus();\n      }\n    };\n\n    /**\n     * returns whether contents is empty or not.\n     * @return {Boolean}\n     */\n    this.isEmpty = function () {\n      return dom.isEmpty($editable[0]) || dom.emptyPara === $editable.html();\n    };\n\n    /**\n     * Removes all contents and restores the editable instance to an _emptyPara_.\n     */\n    this.empty = function () {\n      context.invoke('code', dom.emptyPara);\n    };\n  };\n\n  var Clipboard = function (context) {\n    var self = this;\n\n    var $editable = context.layoutInfo.editable;\n\n    this.events = {\n      'summernote.keydown': function (we, e) {\n        if (self.needKeydownHook()) {\n          if ((e.ctrlKey || e.metaKey) && e.keyCode === key.code.V) {\n            context.invoke('editor.saveRange');\n            self.$paste.focus();\n\n            setTimeout(function () {\n              self.pasteByHook();\n            }, 0);\n          }\n        }\n      }\n    };\n\n    this.needKeydownHook = function () {\n      return (agent.isMSIE && agent.browserVersion > 10) || agent.isFF;\n    };\n\n    this.initialize = function () {\n      // [workaround] getting image from clipboard\n      //  - IE11 and Firefox: CTRL+v hook\n      //  - Webkit: event.clipboardData\n      if (this.needKeydownHook()) {\n        this.$paste = $('<div tabindex=\"-1\" />').attr('contenteditable', true).css({\n          position: 'absolute',\n          left: -100000,\n          opacity: 0\n        });\n        $editable.before(this.$paste);\n\n        this.$paste.on('paste', function (event) {\n          context.triggerEvent('paste', event);\n        });\n      } else {\n        $editable.on('paste', this.pasteByEvent);\n      }\n    };\n\n    this.destroy = function () {\n      if (this.needKeydownHook()) {\n        this.$paste.remove();\n        this.$paste = null;\n      }\n    };\n\n    this.pasteByHook = function () {\n      var node = this.$paste[0].firstChild;\n\n      if (dom.isImg(node)) {\n        var dataURI = node.src;\n        var decodedData = atob(dataURI.split(',')[1]);\n        var array = new Uint8Array(decodedData.length);\n        for (var i = 0; i < decodedData.length; i++) {\n          array[i] = decodedData.charCodeAt(i);\n        }\n\n        var blob = new Blob([array], { type: 'image/png' });\n        blob.name = 'clipboard.png';\n\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n        context.invoke('editor.insertImagesOrCallback', [blob]);\n      } else {\n        var pasteContent = $('<div />').html(this.$paste.html()).html();\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n\n        if (pasteContent) {\n          context.invoke('editor.pasteHTML', pasteContent);\n        }\n      }\n\n      this.$paste.empty();\n    };\n\n    /**\n     * paste by clipboard event\n     *\n     * @param {Event} event\n     */\n    this.pasteByEvent = function (event) {\n      var clipboardData = event.originalEvent.clipboardData;\n      if (clipboardData && clipboardData.items && clipboardData.items.length) {\n        var item = list.head(clipboardData.items);\n        if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n          context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n        }\n        context.invoke('editor.afterCommand');\n      }\n    };\n  };\n\n  var Dropzone = function (context) {\n    var $document = $(document);\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n    var documentEventHandlers = {};\n\n    var $dropzone = $([\n      '<div class=\"note-dropzone\">',\n      '  <div class=\"note-dropzone-message\"/>',\n      '</div>'\n    ].join('')).prependTo($editor);\n\n    var detachDocumentEvent = function () {\n      Object.keys(documentEventHandlers).forEach(function (key) {\n        $document.off(key.substr(2).toLowerCase(), documentEventHandlers[key]);\n      });\n      documentEventHandlers = {};\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.initialize = function () {\n      if (options.disableDragAndDrop) {\n        // prevent default drop event\n        documentEventHandlers.onDrop = function (e) {\n          e.preventDefault();\n        };\n        $document.on('drop', documentEventHandlers.onDrop);\n      } else {\n        this.attachDragAndDropEvent();\n      }\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.attachDragAndDropEvent = function () {\n      var collection = $(),\n          $dropzoneMessage = $dropzone.find('.note-dropzone-message');\n\n      documentEventHandlers.onDragenter = function (e) {\n        var isCodeview = context.invoke('codeview.isActivated');\n        var hasEditorSize = $editor.width() > 0 && $editor.height() > 0;\n        if (!isCodeview && !collection.length && hasEditorSize) {\n          $editor.addClass('dragover');\n          $dropzone.width($editor.width());\n          $dropzone.height($editor.height());\n          $dropzoneMessage.text(lang.image.dragImageHere);\n        }\n        collection = collection.add(e.target);\n      };\n\n      documentEventHandlers.onDragleave = function (e) {\n        collection = collection.not(e.target);\n        if (!collection.length) {\n          $editor.removeClass('dragover');\n        }\n      };\n\n      documentEventHandlers.onDrop = function () {\n        collection = $();\n        $editor.removeClass('dragover');\n      };\n\n      // show dropzone on dragenter when dragging a object to document\n      // -but only if the editor is visible, i.e. has a positive width and height\n      $document.on('dragenter', documentEventHandlers.onDragenter)\n        .on('dragleave', documentEventHandlers.onDragleave)\n        .on('drop', documentEventHandlers.onDrop);\n\n      // change dropzone's message on hover.\n      $dropzone.on('dragenter', function () {\n        $dropzone.addClass('hover');\n        $dropzoneMessage.text(lang.image.dropImage);\n      }).on('dragleave', function () {\n        $dropzone.removeClass('hover');\n        $dropzoneMessage.text(lang.image.dragImageHere);\n      });\n\n      // attach dropImage\n      $dropzone.on('drop', function (event) {\n        var dataTransfer = event.originalEvent.dataTransfer;\n\n        if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n          event.preventDefault();\n          $editable.focus();\n          context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n        } else {\n          $.each(dataTransfer.types, function (idx, type) {\n            var content = dataTransfer.getData(type);\n\n            if (type.toLowerCase().indexOf('text') > -1) {\n              context.invoke('editor.pasteHTML', content);\n            } else {\n              $(content).each(function () {\n                context.invoke('editor.insertNode', this);\n              });\n            }\n          });\n        }\n      }).on('dragover', false); // prevent default dragover event\n    };\n\n    this.destroy = function () {\n      detachDocumentEvent();\n    };\n  };\n\n\n  var CodeMirror;\n  if (agent.hasCodeMirror) {\n    if (agent.isSupportAmd) {\n      require(['codemirror'], function (cm) {\n        CodeMirror = cm;\n      });\n    } else {\n      CodeMirror = window.CodeMirror;\n    }\n  }\n\n  /**\n   * @class Codeview\n   */\n  var Codeview = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n    var options = context.options;\n\n    this.sync = function () {\n      var isCodeview = this.isActivated();\n      if (isCodeview && agent.hasCodeMirror) {\n        $codable.data('cmEditor').save();\n      }\n    };\n\n    /**\n     * @return {Boolean}\n     */\n    this.isActivated = function () {\n      return $editor.hasClass('codeview');\n    };\n\n    /**\n     * toggle codeview\n     */\n    this.toggle = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n      context.triggerEvent('codeview.toggled');\n    };\n\n    /**\n     * activate code view\n     */\n    this.activate = function () {\n      $codable.val(dom.html($editable, options.prettifyHtml));\n      $codable.height($editable.height());\n\n      context.invoke('toolbar.updateCodeview', true);\n      $editor.addClass('codeview');\n      $codable.focus();\n\n      // activate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = CodeMirror.fromTextArea($codable[0], options.codemirror);\n\n        // CodeMirror TernServer\n        if (options.codemirror.tern) {\n          var server = new CodeMirror.TernServer(options.codemirror.tern);\n          cmEditor.ternServer = server;\n          cmEditor.on('cursorActivity', function (cm) {\n            server.updateArgHints(cm);\n          });\n        }\n\n        // CodeMirror hasn't Padding.\n        cmEditor.setSize(null, $editable.outerHeight());\n        $codable.data('cmEditor', cmEditor);\n      }\n    };\n\n    /**\n     * deactivate code view\n     */\n    this.deactivate = function () {\n      // deactivate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = $codable.data('cmEditor');\n        $codable.val(cmEditor.getValue());\n        cmEditor.toTextArea();\n      }\n\n      var value = dom.value($codable, options.prettifyHtml) || dom.emptyPara;\n      var isChange = $editable.html() !== value;\n\n      $editable.html(value);\n      $editable.height(options.height ? $codable.height() : 'auto');\n      $editor.removeClass('codeview');\n\n      if (isChange) {\n        context.triggerEvent('change', $editable.html(), $editable);\n      }\n\n      $editable.focus();\n\n      context.invoke('toolbar.updateCodeview', false);\n    };\n\n    this.destroy = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      }\n    };\n  };\n\n  var EDITABLE_PADDING = 24;\n\n  var Statusbar = function (context) {\n    var $document = $(document);\n    var $statusbar = context.layoutInfo.statusbar;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n\n    this.initialize = function () {\n      if (options.airMode || options.disableResizeEditor) {\n        return;\n      }\n\n      $statusbar.on('mousedown', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        var editableTop = $editable.offset().top - $document.scrollTop();\n\n        $document.on('mousemove', function (event) {\n          var height = event.clientY - (editableTop + EDITABLE_PADDING);\n\n          height = (options.minheight > 0) ? Math.max(height, options.minheight) : height;\n          height = (options.maxHeight > 0) ? Math.min(height, options.maxHeight) : height;\n\n          $editable.height(height);\n        }).one('mouseup', function () {\n          $document.off('mousemove');\n        });\n      });\n    };\n\n    this.destroy = function () {\n      $statusbar.off();\n      $statusbar.remove();\n    };\n  };\n\n  var Fullscreen = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $toolbar = context.layoutInfo.toolbar;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n\n    var $window = $(window);\n    var $scrollbar = $('html, body');\n\n    /**\n     * toggle fullscreen\n     */\n    this.toggle = function () {\n      var resize = function (size) {\n        $editable.css('height', size.h);\n        $codable.css('height', size.h);\n        if ($codable.data('cmeditor')) {\n          $codable.data('cmeditor').setsize(null, size.h);\n        }\n      };\n\n      $editor.toggleClass('fullscreen');\n      if (this.isFullscreen()) {\n        $editable.data('orgHeight', $editable.css('height'));\n\n        $window.on('resize', function () {\n          resize({\n            h: $window.height() - $toolbar.outerHeight()\n          });\n        }).trigger('resize');\n\n        $scrollbar.css('overflow', 'hidden');\n      } else {\n        $window.off('resize');\n        resize({\n          h: $editable.data('orgHeight')\n        });\n        $scrollbar.css('overflow', 'visible');\n      }\n\n      context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n    };\n\n    this.isFullscreen = function () {\n      return $editor.hasClass('fullscreen');\n    };\n  };\n\n  var Handle = function (context) {\n    var self = this;\n\n    var $document = $(document);\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.mousedown': function (we, e) {\n        if (self.update(e.target)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function () {\n        self.update();\n      }\n    };\n\n    this.initialize = function () {\n      this.$handle = $([\n        '<div class=\"note-handle\">',\n        '<div class=\"note-control-selection\">',\n        '<div class=\"note-control-selection-bg\"></div>',\n        '<div class=\"note-control-holder note-control-nw\"></div>',\n        '<div class=\"note-control-holder note-control-ne\"></div>',\n        '<div class=\"note-control-holder note-control-sw\"></div>',\n        '<div class=\"',\n        (options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),\n        ' note-control-se\"></div>',\n        (options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>'),\n        '</div>',\n        '</div>'\n      ].join('')).prependTo($editingArea);\n\n      this.$handle.on('mousedown', function (event) {\n        if (dom.isControlSizing(event.target)) {\n          event.preventDefault();\n          event.stopPropagation();\n\n          var $target = self.$handle.find('.note-control-selection').data('target'),\n              posStart = $target.offset(),\n              scrollTop = $document.scrollTop();\n\n          $document.on('mousemove', function (event) {\n            context.invoke('editor.resizeTo', {\n              x: event.clientX - posStart.left,\n              y: event.clientY - (posStart.top - scrollTop)\n            }, $target, !event.shiftKey);\n\n            self.update($target[0]);\n          }).one('mouseup', function (e) {\n            e.preventDefault();\n            $document.off('mousemove');\n            context.invoke('editor.afterCommand');\n          });\n\n          if (!$target.data('ratio')) { // original ratio.\n            $target.data('ratio', $target.height() / $target.width());\n          }\n        }\n      });\n    };\n\n    this.destroy = function () {\n      this.$handle.remove();\n    };\n\n    this.update = function (target) {\n      var isImage = dom.isImg(target);\n      var $selection = this.$handle.find('.note-control-selection');\n\n      context.invoke('imagePopover.update', target);\n\n      if (isImage) {\n        var $image = $(target);\n        var pos = $image.position();\n\n        // include margin\n        var imageSize = {\n          w: $image.outerWidth(true),\n          h: $image.outerHeight(true)\n        };\n\n        $selection.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top,\n          width: imageSize.w,\n          height: imageSize.h\n        }).data('target', $image); // save current image element.\n\n        var sizingText = imageSize.w + 'x' + imageSize.h;\n        $selection.find('.note-control-selection-info').text(sizingText);\n        context.invoke('editor.saveTarget', target);\n      } else {\n        this.hide();\n      }\n\n      return isImage;\n    };\n\n    /**\n     * hide\n     *\n     * @param {jQuery} $handle\n     */\n    this.hide = function () {\n      context.invoke('editor.clearTarget');\n      this.$handle.children().hide();\n    };\n  };\n\n  var AutoLink = function (context) {\n    var self = this;\n    var defaultScheme = 'http://';\n    var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      }\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n    };\n\n    this.destroy = function () {\n      this.lastWordRange = null;\n    };\n\n    this.replace = function () {\n      if (!this.lastWordRange) {\n        return;\n      }\n\n      var keyword = this.lastWordRange.toString();\n      var match = keyword.match(linkPattern);\n\n      if (match && (match[1] || match[2])) {\n        var link = match[1] ? keyword : defaultScheme + keyword;\n        var node = $('<a />').html(keyword).attr('href', link)[0];\n\n        this.lastWordRange.insertNode(node);\n        this.lastWordRange = null;\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.handleKeydown = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        this.lastWordRange = wordRange;\n      }\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        this.replace();\n      }\n    };\n  };\n\n  /**\n   * textarea auto sync.\n   */\n  var AutoSync = function (context) {\n    var $note = context.layoutInfo.note;\n\n    this.events = {\n      'summernote.change': function () {\n        $note.val(context.invoke('code'));\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return dom.isTextarea($note[0]);\n    };\n  };\n\n  var Placeholder = function (context) {\n    var self = this;\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.init summernote.change': function () {\n        self.update();\n      },\n      'summernote.codeview.toggled': function () {\n        self.update();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !!options.placeholder;\n    };\n\n    this.initialize = function () {\n      this.$placeholder = $('<div class=\"note-placeholder\">');\n      this.$placeholder.on('click', function () {\n        context.invoke('focus');\n      }).text(options.placeholder).prependTo($editingArea);\n    };\n\n    this.destroy = function () {\n      this.$placeholder.remove();\n    };\n\n    this.update = function () {\n      var isShow = !context.invoke('codeview.isActivated') && context.invoke('editor.isEmpty');\n      this.$placeholder.toggle(isShow);\n    };\n  };\n\n  var Buttons = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var invertedKeyMap = func.invertObject(options.keyMap[agent.isMac ? 'mac' : 'pc']);\n\n    var representShortcut = this.representShortcut = function (editorMethod) {\n      var shortcut = invertedKeyMap[editorMethod];\n      if (!options.shortcuts || !shortcut) {\n        return '';\n      }\n      \n      if (agent.isMac) {\n        shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n      }\n\n      shortcut = shortcut.replace('BACKSLASH', '\\\\')\n                         .replace('SLASH', '/')\n                         .replace('LEFTBRACKET', '[')\n                         .replace('RIGHTBRACKET', ']');\n\n      return ' (' + shortcut + ')';\n    };\n\n    this.initialize = function () {\n      this.addToolbarButtons();\n      this.addImagePopoverButtons();\n      this.addLinkPopoverButtons();\n      this.fontInstalledMap = {};\n    };\n\n    this.destroy = function () {\n      delete this.fontInstalledMap;\n    };\n\n    this.isFontInstalled = function (name) {\n      if (!self.fontInstalledMap.hasOwnProperty(name)) {\n        self.fontInstalledMap[name] = agent.isFontInstalled(name) ||\n          list.contains(options.fontNamesIgnoreCheck, name);\n      }\n\n      return self.fontInstalledMap[name];\n    };\n\n    this.addToolbarButtons = function () {\n      context.memo('button.style', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.magic) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.style.style,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'dropdown-style',\n            items: context.options.styleTags,\n            template: function (item) {\n\n              if (typeof item === 'string') {\n                item = { tag: item, title: (lang.style.hasOwnProperty(item) ? lang.style[item] : item) };\n              }\n\n              var tag = item.tag;\n              var title = item.title;\n              var style = item.style ? ' style=\"' + item.style + '\" ' : '';\n              var className = item.className ? ' class=\"' + item.className + '\"' : '';\n\n              return '<' + tag + style + className + '>' + title + '</' + tag +  '>';\n            },\n            click: context.createInvokeHandler('editor.formatBlock')\n          })\n        ]).render();\n      });\n\n      context.memo('button.bold', function () {\n        return ui.button({\n          className: 'note-btn-bold',\n          contents: ui.icon(options.icons.bold),\n          tooltip: lang.font.bold + representShortcut('bold'),\n          click: context.createInvokeHandler('editor.bold')\n        }).render();\n      });\n\n      context.memo('button.italic', function () {\n        return ui.button({\n          className: 'note-btn-italic',\n          contents: ui.icon(options.icons.italic),\n          tooltip: lang.font.italic + representShortcut('italic'),\n          click: context.createInvokeHandler('editor.italic')\n        }).render();\n      });\n\n      context.memo('button.underline', function () {\n        return ui.button({\n          className: 'note-btn-underline',\n          contents: ui.icon(options.icons.underline),\n          tooltip: lang.font.underline + representShortcut('underline'),\n          click: context.createInvokeHandler('editor.underline')\n        }).render();\n      });\n\n      context.memo('button.clear', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.eraser),\n          tooltip: lang.font.clear + representShortcut('removeFormat'),\n          click: context.createInvokeHandler('editor.removeFormat')\n        }).render();\n      });\n\n      context.memo('button.strikethrough', function () {\n        return ui.button({\n          className: 'note-btn-strikethrough',\n          contents: ui.icon(options.icons.strikethrough),\n          tooltip: lang.font.strikethrough + representShortcut('strikethrough'),\n          click: context.createInvokeHandler('editor.strikethrough')\n        }).render();\n      });\n\n      context.memo('button.superscript', function () {\n        return ui.button({\n          className: 'note-btn-superscript',\n          contents: ui.icon(options.icons.superscript),\n          tooltip: lang.font.superscript,\n          click: context.createInvokeHandler('editor.superscript')\n        }).render();\n      });\n\n      context.memo('button.subscript', function () {\n        return ui.button({\n          className: 'note-btn-subscript',\n          contents: ui.icon(options.icons.subscript),\n          tooltip: lang.font.subscript,\n          click: context.createInvokeHandler('editor.subscript')\n        }).render();\n      });\n\n      context.memo('button.fontname', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontname\"/> ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.name,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontname',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontNames.filter(self.isFontInstalled),\n            template: function (item) {\n              return '<span style=\"font-family:' + item + '\">' + item + '</span>';\n            },\n            click: context.createInvokeHandler('editor.fontName')\n          })\n        ]).render();\n      });\n\n      context.memo('button.fontsize', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontsize\"/>' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.size,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontsize',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontSizes,\n            click: context.createInvokeHandler('editor.fontSize')\n          })\n        ]).render();\n      });\n\n      context.memo('button.color', function () {\n        return ui.buttonGroup({\n          className: 'note-color',\n          children: [\n            ui.button({\n              className: 'note-current-color-button',\n              contents: ui.icon(options.icons.font + ' note-recent-color'),\n              tooltip: lang.color.recent,\n              click: function (e) {\n                var $button = $(e.currentTarget);\n                context.invoke('editor.color', {\n                  backColor: $button.attr('data-backColor'),\n                  foreColor: $button.attr('data-foreColor')\n                });\n              },\n              callback: function ($button) {\n                var $recentColor = $button.find('.note-recent-color');\n                $recentColor.css('background-color', '#FFFF00');\n                $button.attr('data-backColor', '#FFFF00');\n              }\n            }),\n            ui.button({\n              className: 'dropdown-toggle',\n              contents: ui.icon(options.icons.caret, 'span'),\n              tooltip: lang.color.more,\n              data: {\n                toggle: 'dropdown'\n              }\n            }),\n            ui.dropdown({\n              items: [\n                '<li>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.background + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"backColor\" data-value=\"inherit\">',\n                lang.color.transparent,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n                '</div>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.foreground + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"removeFormat\" data-value=\"foreColor\">',\n                lang.color.resetToDefault,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n                '</div>',\n                '</li>'\n              ].join(''),\n              callback: function ($dropdown) {\n                $dropdown.find('.note-holder').each(function () {\n                  var $holder = $(this);\n                  $holder.append(ui.palette({\n                    colors: options.colors,\n                    eventName: $holder.data('event')\n                  }).render());\n                });\n              },\n              click: function (event) {\n                var $button = $(event.target);\n                var eventName = $button.data('event');\n                var value = $button.data('value');\n\n                if (eventName && value) {\n                  var key = eventName === 'backColor' ? 'background-color' : 'color';\n                  var $color = $button.closest('.note-color').find('.note-recent-color');\n                  var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n                  $color.css(key, value);\n                  $currentButton.attr('data-' + eventName, value);\n                  context.invoke('editor.' + eventName, value);\n                }\n              }\n            })\n          ]\n        }).render();\n      });\n\n      context.memo('button.ul',  function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unorderedlist),\n          tooltip: lang.lists.unordered + representShortcut('insertUnorderedList'),\n          click: context.createInvokeHandler('editor.insertUnorderedList')\n        }).render();\n      });\n\n      context.memo('button.ol', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.orderedlist),\n          tooltip: lang.lists.ordered + representShortcut('insertOrderedList'),\n          click:  context.createInvokeHandler('editor.insertOrderedList')\n        }).render();\n      });\n\n      var justifyLeft = ui.button({\n        contents: ui.icon(options.icons.alignLeft),\n        tooltip: lang.paragraph.left + representShortcut('justifyLeft'),\n        click: context.createInvokeHandler('editor.justifyLeft')\n      });\n\n      var justifyCenter = ui.button({\n        contents: ui.icon(options.icons.alignCenter),\n        tooltip: lang.paragraph.center + representShortcut('justifyCenter'),\n        click: context.createInvokeHandler('editor.justifyCenter')\n      });\n\n      var justifyRight = ui.button({\n        contents: ui.icon(options.icons.alignRight),\n        tooltip: lang.paragraph.right + representShortcut('justifyRight'),\n        click: context.createInvokeHandler('editor.justifyRight')\n      });\n\n      var justifyFull = ui.button({\n        contents: ui.icon(options.icons.alignJustify),\n        tooltip: lang.paragraph.justify + representShortcut('justifyFull'),\n        click: context.createInvokeHandler('editor.justifyFull')\n      });\n\n      var outdent = ui.button({\n        contents: ui.icon(options.icons.outdent),\n        tooltip: lang.paragraph.outdent + representShortcut('outdent'),\n        click: context.createInvokeHandler('editor.outdent')\n      });\n\n      var indent = ui.button({\n        contents: ui.icon(options.icons.indent),\n        tooltip: lang.paragraph.indent + representShortcut('indent'),\n        click: context.createInvokeHandler('editor.indent')\n      });\n\n      context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n      context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n      context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n      context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n      context.memo('button.outdent', func.invoke(outdent, 'render'));\n      context.memo('button.indent', func.invoke(indent, 'render'));\n\n      context.memo('button.paragraph', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.alignLeft) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.paragraph.paragraph,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown([\n            ui.buttonGroup({\n              className: 'note-align',\n              children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n            }),\n            ui.buttonGroup({\n              className: 'note-list',\n              children: [outdent, indent]\n            })\n          ])\n        ]).render();\n      });\n\n      context.memo('button.height', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.textHeight) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.height,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            items: options.lineHeights,\n            checkClassName: options.icons.menuCheck,\n            className: 'dropdown-line-height',\n            click: context.createInvokeHandler('editor.lineHeight')\n          })\n        ]).render();\n      });\n\n      context.memo('button.table', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.table) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.table.table,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'note-table',\n            items: [\n              '<div class=\"note-dimension-picker\">',\n              '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n              '  <div class=\"note-dimension-picker-highlighted\"/>',\n              '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n              '</div>',\n              '<div class=\"note-dimension-display\">1 x 1</div>'\n            ].join('')\n          })\n        ], {\n          callback: function ($node) {\n            var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n            $catcher.css({\n              width: options.insertTableMaxSize.col + 'em',\n              height: options.insertTableMaxSize.row + 'em'\n            }).mousedown(context.createInvokeHandler('editor.insertTable'))\n              .on('mousemove', self.tableMoveHandler);\n          }\n        }).render();\n      });\n\n      context.memo('button.link', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.link + representShortcut('linkDialog.show'),\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.picture', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.picture),\n          tooltip: lang.image.image,\n          click: context.createInvokeHandler('imageDialog.show')\n        }).render();\n      });\n\n      context.memo('button.video', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.video),\n          tooltip: lang.video.video,\n          click: context.createInvokeHandler('videoDialog.show')\n        }).render();\n      });\n\n      context.memo('button.hr', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.minus),\n          tooltip: lang.hr.insert + representShortcut('insertHorizontalRule'),\n          click: context.createInvokeHandler('editor.insertHorizontalRule')\n        }).render();\n      });\n\n      context.memo('button.fullscreen', function () {\n        return ui.button({\n          className: 'btn-fullscreen',\n          contents: ui.icon(options.icons.arrowsAlt),\n          tooltip: lang.options.fullscreen,\n          click: context.createInvokeHandler('fullscreen.toggle')\n        }).render();\n      });\n\n      context.memo('button.codeview', function () {\n        return ui.button({\n          className: 'btn-codeview',\n          contents: ui.icon(options.icons.code),\n          tooltip: lang.options.codeview,\n          click: context.createInvokeHandler('codeview.toggle')\n        }).render();\n      });\n\n      context.memo('button.redo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.redo),\n          tooltip: lang.history.redo + representShortcut('redo'),\n          click: context.createInvokeHandler('editor.redo')\n        }).render();\n      });\n\n      context.memo('button.undo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.undo),\n          tooltip: lang.history.undo + representShortcut('undo'),\n          click: context.createInvokeHandler('editor.undo')\n        }).render();\n      });\n\n      context.memo('button.help', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.question),\n          tooltip: lang.options.help,\n          click: context.createInvokeHandler('helpDialog.show')\n        }).render();\n      });\n    };\n\n    /**\n     * image : [\n     *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n     *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],\n     *   ['remove', ['removeMedia']]\n     * ],\n     */\n    this.addImagePopoverButtons = function () {\n      // Image Size Buttons\n      context.memo('button.imageSize100', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">100%</span>',\n          tooltip: lang.image.resizeFull,\n          click: context.createInvokeHandler('editor.resize', '1')\n        }).render();\n      });\n      context.memo('button.imageSize50', function () {\n        return  ui.button({\n          contents: '<span class=\"note-fontsize-10\">50%</span>',\n          tooltip: lang.image.resizeHalf,\n          click: context.createInvokeHandler('editor.resize', '0.5')\n        }).render();\n      });\n      context.memo('button.imageSize25', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">25%</span>',\n          tooltip: lang.image.resizeQuarter,\n          click: context.createInvokeHandler('editor.resize', '0.25')\n        }).render();\n      });\n\n      // Float Buttons\n      context.memo('button.floatLeft', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignLeft),\n          tooltip: lang.image.floatLeft,\n          click: context.createInvokeHandler('editor.floatMe', 'left')\n        }).render();\n      });\n\n      context.memo('button.floatRight', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignRight),\n          tooltip: lang.image.floatRight,\n          click: context.createInvokeHandler('editor.floatMe', 'right')\n        }).render();\n      });\n\n      context.memo('button.floatNone', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignJustify),\n          tooltip: lang.image.floatNone,\n          click: context.createInvokeHandler('editor.floatMe', 'none')\n        }).render();\n      });\n\n      // Remove Buttons\n      context.memo('button.removeMedia', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.trash),\n          tooltip: lang.image.remove,\n          click: context.createInvokeHandler('editor.removeMedia')\n        }).render();\n      });\n    };\n\n    this.addLinkPopoverButtons = function () {\n      context.memo('button.linkDialogShow', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.edit,\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.unlink', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unlink),\n          tooltip: lang.link.unlink,\n          click: context.createInvokeHandler('editor.unlink')\n        }).render();\n      });\n    };\n\n    this.build = function ($container, groups) {\n      for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n        var group = groups[groupIdx];\n        var groupName = group[0];\n        var buttons = group[1];\n\n        var $group = ui.buttonGroup({\n          className: 'note-' + groupName\n        }).render();\n\n        for (var idx = 0, len = buttons.length; idx < len; idx++) {\n          var button = context.memo('button.' + buttons[idx]);\n          if (button) {\n            $group.append(typeof button === 'function' ? button(context) : button);\n          }\n        }\n        $group.appendTo($container);\n      }\n    };\n\n    this.updateCurrentStyle = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      this.updateBtnStates({\n        '.note-btn-bold': function () {\n          return styleInfo['font-bold'] === 'bold';\n        },\n        '.note-btn-italic': function () {\n          return styleInfo['font-italic'] === 'italic';\n        },\n        '.note-btn-underline': function () {\n          return styleInfo['font-underline'] === 'underline';\n        },\n        '.note-btn-subscript': function () {\n          return styleInfo['font-subscript'] === 'subscript';\n        },\n        '.note-btn-superscript': function () {\n          return styleInfo['font-superscript'] === 'superscript';\n        },\n        '.note-btn-strikethrough': function () {\n          return styleInfo['font-strikethrough'] === 'strikethrough';\n        }\n      });\n\n      if (styleInfo['font-family']) {\n        var fontNames = styleInfo['font-family'].split(',').map(function (name) {\n          return name.replace(/[\\'\\\"]/g, '')\n            .replace(/\\s+$/, '')\n            .replace(/^\\s+/, '');\n        });\n        var fontName = list.find(fontNames, self.isFontInstalled);\n\n        $toolbar.find('.dropdown-fontname li a').each(function () {\n          // always compare string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontName + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontname').text(fontName);\n      }\n\n      if (styleInfo['font-size']) {\n        var fontSize = styleInfo['font-size'];\n        $toolbar.find('.dropdown-fontsize li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontSize + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontsize').text(fontSize);\n      }\n\n      if (styleInfo['line-height']) {\n        var lineHeight = styleInfo['line-height'];\n        $toolbar.find('.dropdown-line-height li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (lineHeight + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n      }\n    };\n\n    this.updateBtnStates = function (infos) {\n      $.each(infos, function (selector, pred) {\n        ui.toggleBtnActive($toolbar.find(selector), pred());\n      });\n    };\n\n    this.tableMoveHandler = function (event) {\n      var PX_PER_EM = 18;\n      var $picker = $(event.target.parentNode); // target is mousecatcher\n      var $dimensionDisplay = $picker.next();\n      var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n      var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n      var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n      var posOffset;\n      // HTML5 with jQuery - e.offsetX is undefined in Firefox\n      if (event.offsetX === undefined) {\n        var posCatcher = $(event.target).offset();\n        posOffset = {\n          x: event.pageX - posCatcher.left,\n          y: event.pageY - posCatcher.top\n        };\n      } else {\n        posOffset = {\n          x: event.offsetX,\n          y: event.offsetY\n        };\n      }\n\n      var dim = {\n        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n        r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n      };\n\n      $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n      $catcher.data('value', dim.c + 'x' + dim.r);\n\n      if (3 < dim.c && dim.c < options.insertTableMaxSize.col) {\n        $unhighlighted.css({ width: dim.c + 1 + 'em'});\n      }\n\n      if (3 < dim.r && dim.r < options.insertTableMaxSize.row) {\n        $unhighlighted.css({ height: dim.r + 1 + 'em'});\n      }\n\n      $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n    };\n  };\n\n  var Toolbar = function (context) {\n    var ui = $.summernote.ui;\n\n    var $note = context.layoutInfo.note;\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !options.airMode;\n    };\n\n    this.initialize = function () {\n      options.toolbar = options.toolbar || [];\n\n      if (!options.toolbar.length) {\n        $toolbar.hide();\n      } else {\n        context.invoke('buttons.build', $toolbar, options.toolbar);\n      }\n\n      if (options.toolbarContainer) {\n        $toolbar.appendTo(options.toolbarContainer);\n      }\n\n      $note.on('summernote.keyup summernote.mouseup summernote.change', function () {\n        context.invoke('buttons.updateCurrentStyle');\n      });\n\n      context.invoke('buttons.updateCurrentStyle');\n    };\n\n    this.destroy = function () {\n      $toolbar.children().remove();\n    };\n\n    this.updateFullscreen = function (isFullscreen) {\n      ui.toggleBtnActive($toolbar.find('.btn-fullscreen'), isFullscreen);\n    };\n\n    this.updateCodeview = function (isCodeview) {\n      ui.toggleBtnActive($toolbar.find('.btn-codeview'), isCodeview);\n      if (isCodeview) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n    };\n\n    this.activate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, true);\n    };\n\n    this.deactivate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, false);\n    };\n  };\n\n  var LinkDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group\">' +\n                   '<label>' + lang.link.textToDisplay + '</label>' +\n                   '<input class=\"note-link-text form-control\" type=\"text\" />' +\n                 '</div>' +\n                 '<div class=\"form-group\">' +\n                   '<label>' + lang.link.url + '</label>' +\n                   '<input class=\"note-link-url form-control\" type=\"text\" value=\"http://\" />' +\n                 '</div>' +\n                 (!options.disableLinkTarget ?\n                   '<div class=\"checkbox\">' +\n                     '<label>' + '<input type=\"checkbox\" checked> ' + lang.link.openInNewWindow + '</label>' +\n                   '</div>' : ''\n                 );\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-link-btn disabled\" disabled>' + lang.link.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        className: 'link-dialog',\n        title: lang.link.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    /**\n     * toggle update button\n     */\n    this.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {\n      ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n    };\n\n    /**\n     * Show link dialog and set event handlers on dialog controls.\n     *\n     * @param {Object} linkInfo\n     * @return {Promise}\n     */\n    this.showLinkDialog = function (linkInfo) {\n      return $.Deferred(function (deferred) {\n        var $linkText = self.$dialog.find('.note-link-text'),\n        $linkUrl = self.$dialog.find('.note-link-url'),\n        $linkBtn = self.$dialog.find('.note-link-btn'),\n        $openInNewWindow = self.$dialog.find('input[type=checkbox]');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // if no url was given, copy text to url\n          if (!linkInfo.url) {\n            linkInfo.url = linkInfo.text;\n          }\n\n          $linkText.val(linkInfo.text);\n\n          var handleLinkTextUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // if linktext was modified by keyup,\n            // stop cloning text from linkUrl\n            linkInfo.text = $linkText.val();\n          };\n\n          $linkText.on('input', handleLinkTextUpdate).on('paste', function () {\n            setTimeout(handleLinkTextUpdate, 0);\n          });\n\n          var handleLinkUrlUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // display same link on `Text to display` input\n            // when create a new link\n            if (!linkInfo.text) {\n              $linkText.val($linkUrl.val());\n            }\n          };\n\n          $linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {\n            setTimeout(handleLinkUrlUpdate, 0);\n          }).val(linkInfo.url).trigger('focus');\n\n          self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          self.bindEnterKey($linkUrl, $linkBtn);\n          self.bindEnterKey($linkText, $linkBtn);\n\n          $openInNewWindow.prop('checked', linkInfo.isNewWindow);\n\n          $linkBtn.one('click', function (event) {\n            event.preventDefault();\n\n            deferred.resolve({\n              range: linkInfo.range,\n              url: $linkUrl.val(),\n              text: $linkText.val(),\n              isNewWindow: $openInNewWindow.is(':checked')\n            });\n            self.$dialog.modal('hide');\n          });\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          // detach events\n          $linkText.off('input paste keypress');\n          $linkUrl.off('input paste keypress');\n          $linkBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    /**\n     * @param {Object} layoutInfo\n     */\n    this.show = function () {\n      var linkInfo = context.invoke('editor.getLinkInfo');\n\n      context.invoke('editor.saveRange');\n      this.showLinkDialog(linkInfo).then(function (linkInfo) {\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.createLink', linkInfo);\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n    context.memo('help.linkDialog.show', options.langInfo.help['linkDialog.show']);\n  };\n\n  var LinkPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.link);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-link-popover',\n        callback: function ($node) {\n          var $content = $node.find('.popover-content');\n          $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n        }\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.link);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        this.hide();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      if (rng.isCollapsed() && rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        var href = $(anchor).attr('href');\n        this.$popover.find('a').attr('href', href).html(href);\n\n        var pos = dom.posFromPlaceholder(anchor);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  var ImageDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var imageLimitation = '';\n      if (options.maximumImageFileSize) {\n        var unit = Math.floor(Math.log(options.maximumImageFileSize) / Math.log(1024));\n        var readableSize = (options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +\n                           ' ' + ' KMGTP'[unit] + 'B';\n        imageLimitation = '<small>' + lang.image.maximumFileSize + ' : ' + readableSize + '</small>';\n      }\n\n      var body = '<div class=\"form-group note-group-select-from-files\">' +\n                   '<label>' + lang.image.selectFromFiles + '</label>' +\n                   '<input class=\"note-image-input form-control\" type=\"file\" name=\"files\" accept=\"image/jpg, image/jpeg, image/png, image/gif\" multiple=\"multiple\" />' +\n                   imageLimitation +\n                 '</div>' +\n                 '<div class=\"form-group note-group-image-url\" style=\"overflow:auto;\">' +\n                   '<label>' + lang.image.url + '</label>' +\n                   '<input class=\"note-image-url form-control col-md-12\" type=\"text\" />' +\n                 '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-image-btn disabled\" disabled>' + lang.image.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.image.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showImageDialog().then(function (data) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        if (typeof data === 'string') { // image url\n          context.invoke('editor.insertImage', data);\n        } else { // array of files\n          context.invoke('editor.insertImagesOrCallback', data);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showImageDialog = function () {\n      return $.Deferred(function (deferred) {\n        var $imageInput = self.$dialog.find('.note-image-input'),\n            $imageUrl = self.$dialog.find('.note-image-url'),\n            $imageBtn = self.$dialog.find('.note-image-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // Cloning imageInput to clear element.\n          $imageInput.replaceWith($imageInput.clone()\n            .on('change', function () {\n              deferred.resolve(this.files || this.value);\n            })\n            .val('')\n          );\n\n          $imageBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($imageUrl.val());\n          });\n\n          $imageUrl.on('keyup paste', function () {\n            var url = $imageUrl.val();\n            ui.toggleBtn($imageBtn, url);\n          }).val('').trigger('focus');\n          self.bindEnterKey($imageUrl, $imageBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $imageInput.off('change');\n          $imageUrl.off('keyup paste keypress');\n          $imageBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  var ImagePopover = function (context) {\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.image);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-image-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.image);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function (target) {\n      if (dom.isImg(target)) {\n        var pos = dom.posFromPlaceholder(target);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  var VideoDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.video.url + ' <small class=\"text-muted\">' + lang.video.providers + '</small></label>' +\n          '<input class=\"note-video-url form-control span12\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-video-btn disabled\" disabled>' + lang.video.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.video.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.createVideoNode = function (url) {\n      // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n      var ytRegExp = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n      var ytMatch = url.match(ytRegExp);\n\n      var igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n      var igMatch = url.match(igRegExp);\n\n      var vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n      var vMatch = url.match(vRegExp);\n\n      var vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*([0-9]{6,11})[?]?.*/;\n      var vimMatch = url.match(vimRegExp);\n\n      var dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n      var dmMatch = url.match(dmRegExp);\n\n      var youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n      var youkuMatch = url.match(youkuRegExp);\n\n      var mp4RegExp = /^.+.(mp4|m4v)$/;\n      var mp4Match = url.match(mp4RegExp);\n\n      var oggRegExp = /^.+.(ogg|ogv)$/;\n      var oggMatch = url.match(oggRegExp);\n\n      var webmRegExp = /^.+.(webm)$/;\n      var webmMatch = url.match(webmRegExp);\n\n      var $video;\n      if (ytMatch && ytMatch[1].length === 11) {\n        var youtubeId = ytMatch[1];\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.youtube.com/embed/' + youtubeId)\n            .attr('width', '640').attr('height', '360');\n      } else if (igMatch && igMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')\n            .attr('width', '612').attr('height', '710')\n            .attr('scrolling', 'no')\n            .attr('allowtransparency', 'true');\n      } else if (vMatch && vMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', vMatch[0] + '/embed/simple')\n            .attr('width', '600').attr('height', '600')\n            .attr('class', 'vine-embed');\n      } else if (vimMatch && vimMatch[3].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('src', '//player.vimeo.com/video/' + vimMatch[3])\n            .attr('width', '640').attr('height', '360');\n      } else if (dmMatch && dmMatch[2].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])\n            .attr('width', '640').attr('height', '360');\n      } else if (youkuMatch && youkuMatch[1].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('height', '498')\n            .attr('width', '510')\n            .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n      } else if (mp4Match || oggMatch || webmMatch) {\n        $video = $('<video controls>')\n            .attr('src', url)\n            .attr('width', '640').attr('height', '360');\n      } else {\n        // this is not a known video link. Now what, Cat? Now what?\n        return false;\n      }\n\n      $video.addClass('note-video-clip');\n\n      return $video[0];\n    };\n\n    this.show = function () {\n      var text = context.invoke('editor.getSelectedText');\n      context.invoke('editor.saveRange');\n      this.showVideoDialog(text).then(function (url) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        // build node\n        var $node = self.createVideoNode(url);\n\n        if ($node) {\n          // insert video node\n          context.invoke('editor.insertNode', $node);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showVideoDialog = function (text) {\n      return $.Deferred(function (deferred) {\n        var $videoUrl = self.$dialog.find('.note-video-url'),\n            $videoBtn = self.$dialog.find('.note-video-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $videoUrl.val(text).on('input', function () {\n            ui.toggleBtn($videoBtn, $videoUrl.val());\n          }).trigger('focus');\n\n          $videoBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($videoUrl.val());\n          });\n\n          self.bindEnterKey($videoUrl, $videoBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $videoUrl.off('input');\n          $videoBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  var HelpDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.createShortCutList = function () {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      return Object.keys(keyMap).map(function (key) {\n        var command = keyMap[key];\n        var $row = $('<div><div class=\"help-list-item\"/></div>');\n        $row.append($('<label><kbd>' + key + '</kdb></label>').css({\n          'width': 180,\n          'margin-right': 10\n        })).append($('<span/>').html(context.memo('help.' + command) || command));\n        return $row.html();\n      }).join('');\n    };\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = [\n        '<p class=\"text-center\">',\n        '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote 0.8.2</a> · ',\n        '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ',\n        '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>',\n        '</p>'\n      ].join('');\n\n      this.$dialog = ui.dialog({\n        title: lang.options.help,\n        fade: options.dialogsFade,\n        body: this.createShortCutList(),\n        footer: body,\n        callback: function ($node) {\n          $node.find('.modal-body').css({\n            'max-height': 300,\n            'overflow': 'scroll'\n          });\n        }\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    /**\n     * show help dialog\n     *\n     * @return {Promise}\n     */\n    this.showHelpDialog = function () {\n      return $.Deferred(function (deferred) {\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n          deferred.resolve();\n        });\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showHelpDialog().then(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n  };\n\n  var AirPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    var AIR_MODE_POPOVER_X_OFFSET = 20;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.change summernote.dialog.shown': function () {\n        self.hide();\n      },\n      'summernote.focusout': function (we, e) {\n        // [workaround] Firefox doesn't support relatedTarget on focusout\n        //  - Ignore hide action on focus out in FF.\n        if (agent.isFF) {\n          return;\n        }\n\n        if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(self.$popover[0]))) {\n          self.hide();\n        }\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return options.airMode && !list.isEmpty(options.popover.air);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-air-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.air);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      if (styleInfo.range && !styleInfo.range.isCollapsed()) {\n        var rect = list.last(styleInfo.range.getClientRects());\n        if (rect) {\n          var bnd = func.rect2bnd(rect);\n          this.$popover.css({\n            display: 'block',\n            left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,\n            top: bnd.top + bnd.height\n          });\n        }\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  var HintPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var POPOVER_DIST = 5;\n    var hint = context.options.hint || [];\n    var direction = context.options.hintDirection || 'bottom';\n    var hints = $.isArray(hint) ? hint : [hint];\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return hints.length > 0;\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n      this.$popover = ui.popover({\n        className: 'note-hint-popover',\n        hideArrow: true,\n        direction: ''\n      }).render().appendTo('body');\n\n      this.$popover.hide();\n\n      this.$content = this.$popover.find('.popover-content');\n\n      this.$content.on('click', '.note-hint-item', function () {\n        self.$content.find('.active').removeClass('active');\n        $(this).addClass('active');\n        self.replace();\n      });\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.selectItem = function ($item) {\n      this.$content.find('.active').removeClass('active');\n      $item.addClass('active');\n\n      this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);\n    };\n\n    this.moveDown = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $next = $current.next();\n\n      if ($next.length) {\n        this.selectItem($next);\n      } else {\n        var $nextGroup = $current.parent().next();\n\n        if (!$nextGroup.length) {\n          $nextGroup = this.$content.find('.note-hint-group').first();\n        }\n\n        this.selectItem($nextGroup.find('.note-hint-item').first());\n      }\n    };\n\n    this.moveUp = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $prev = $current.prev();\n\n      if ($prev.length) {\n        this.selectItem($prev);\n      } else {\n        var $prevGroup = $current.parent().prev();\n\n        if (!$prevGroup.length) {\n          $prevGroup = this.$content.find('.note-hint-group').last();\n        }\n\n        this.selectItem($prevGroup.find('.note-hint-item').last());\n      }\n    };\n\n    this.replace = function () {\n      var $item = this.$content.find('.note-hint-item.active');\n\n      if ($item.length) {\n        var node = this.nodeFromItem($item);\n        this.lastWordRange.insertNode(node);\n        range.createFromNode(node).collapse().select();\n\n        this.lastWordRange = null;\n        this.hide();\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.nodeFromItem = function ($item) {\n      var hint = hints[$item.data('index')];\n      var item = $item.data('item');\n      var node = hint.content ? hint.content(item) : item;\n      if (typeof node === 'string') {\n        node = dom.createText(node);\n      }\n      return node;\n    };\n\n    this.createItemTemplates = function (hintIdx, items) {\n      var hint = hints[hintIdx];\n      return items.map(function (item, idx) {\n        var $item = $('<div class=\"note-hint-item\"/>');\n        $item.append(hint.template ? hint.template(item) : item + '');\n        $item.data({\n          'index': hintIdx,\n          'item': item\n        });\n\n        if (hintIdx === 0 && idx === 0) {\n          $item.addClass('active');\n        }\n        return $item;\n      });\n    };\n\n    this.handleKeydown = function (e) {\n      if (!this.$popover.is(':visible')) {\n        return;\n      }\n\n      if (e.keyCode === key.code.ENTER) {\n        e.preventDefault();\n        this.replace();\n      } else if (e.keyCode === key.code.UP) {\n        e.preventDefault();\n        this.moveUp();\n      } else if (e.keyCode === key.code.DOWN) {\n        e.preventDefault();\n        this.moveDown();\n      }\n    };\n\n    this.searchKeyword = function (index, keyword, callback) {\n      var hint = hints[index];\n      if (hint && hint.match.test(keyword) && hint.search) {\n        var matches = hint.match.exec(keyword);\n        hint.search(matches[1], callback);\n      } else {\n        callback();\n      }\n    };\n\n    this.createGroup = function (idx, keyword) {\n      var $group = $('<div class=\"note-hint-group note-hint-group-' + idx + '\"/>');\n      this.searchKeyword(idx, keyword, function (items) {\n        items = items || [];\n        if (items.length) {\n          $group.html(self.createItemTemplates(idx, items));\n          self.show();\n        }\n      });\n\n      return $group;\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {\n        if (e.keyCode === key.code.ENTER) {\n          if (this.$popover.is(':visible')) {\n            return;\n          }\n        }\n      } else {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        var keyword = wordRange.toString();\n        if (hints.length && keyword) {\n          this.$content.empty();\n\n          var bnd = func.rect2bnd(list.last(wordRange.getClientRects()));\n          if (bnd) {\n\n            this.$popover.hide();\n\n            this.lastWordRange = wordRange;\n\n            hints.forEach(function (hint, idx) {\n              if (hint.match.test(keyword)) {\n                self.createGroup(idx, keyword).appendTo(self.$content);\n              }\n            });\n\n            // set position for popover after group is created\n            if (direction === 'top') {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n              });\n            } else {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top + bnd.height + POPOVER_DIST\n              });\n            }\n\n          }\n        } else {\n          this.hide();\n        }\n      }\n    };\n\n    this.show = function () {\n      this.$popover.show();\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n\n  $.summernote = $.extend($.summernote, {\n    version: '0.8.2',\n    ui: ui,\n    dom: dom,\n\n    plugins: {},\n\n    options: {\n      modules: {\n        'editor': Editor,\n        'clipboard': Clipboard,\n        'dropzone': Dropzone,\n        'codeview': Codeview,\n        'statusbar': Statusbar,\n        'fullscreen': Fullscreen,\n        'handle': Handle,\n        // FIXME: HintPopover must be front of autolink\n        //  - Script error about range when Enter key is pressed on hint popover\n        'hintPopover': HintPopover,\n        'autoLink': AutoLink,\n        'autoSync': AutoSync,\n        'placeholder': Placeholder,\n        'buttons': Buttons,\n        'toolbar': Toolbar,\n        'linkDialog': LinkDialog,\n        'linkPopover': LinkPopover,\n        'imageDialog': ImageDialog,\n        'imagePopover': ImagePopover,\n        'videoDialog': VideoDialog,\n        'helpDialog': HelpDialog,\n        'airPopover': AirPopover\n      },\n\n      buttons: {},\n      \n      lang: 'en-US',\n\n      // toolbar\n      toolbar: [\n        ['style', ['style']],\n        ['font', ['bold', 'underline', 'clear']],\n        ['fontname', ['fontname']],\n        ['color', ['color']],\n        ['para', ['ul', 'ol', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture', 'video']],\n        ['view', ['fullscreen', 'codeview', 'help']]\n      ],\n\n      // popover\n      popover: {\n        image: [\n          ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n          ['float', ['floatLeft', 'floatRight', 'floatNone']],\n          ['remove', ['removeMedia']]\n        ],\n        link: [\n          ['link', ['linkDialogShow', 'unlink']]\n        ],\n        air: [\n          ['color', ['color']],\n          ['font', ['bold', 'underline', 'clear']],\n          ['para', ['ul', 'paragraph']],\n          ['table', ['table']],\n          ['insert', ['link', 'picture']]\n        ]\n      },\n\n      // air mode: inline editor\n      airMode: false,\n\n      width: null,\n      height: null,\n\n      focus: false,\n      tabSize: 4,\n      styleWithSpan: true,\n      shortcuts: true,\n      textareaAutoSync: true,\n      direction: null,\n\n      styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n      fontNames: [\n        'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',\n        'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',\n        'Tahoma', 'Times New Roman', 'Verdana'\n      ],\n\n      fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n\n      // pallete colors(n x n)\n      colors: [\n        ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],\n        ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],\n        ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],\n        ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],\n        ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],\n        ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],\n        ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],\n        ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']\n      ],\n\n      lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n\n      tableClassName: 'table table-bordered',\n\n      insertTableMaxSize: {\n        col: 10,\n        row: 10\n      },\n\n      dialogsInBody: false,\n      dialogsFade: false,\n\n      maximumImageFileSize: null,\n\n      callbacks: {\n        onInit: null,\n        onFocus: null,\n        onBlur: null,\n        onEnter: null,\n        onKeyup: null,\n        onKeydown: null,\n        onImageUpload: null,\n        onImageUploadError: null\n      },\n\n      codemirror: {\n        mode: 'text/html',\n        htmlMode: true,\n        lineNumbers: true\n      },\n\n      keyMap: {\n        pc: {\n          'ENTER': 'insertParagraph',\n          'CTRL+Z': 'undo',\n          'CTRL+Y': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CTRL+B': 'bold',\n          'CTRL+I': 'italic',\n          'CTRL+U': 'underline',\n          'CTRL+SHIFT+S': 'strikethrough',\n          'CTRL+BACKSLASH': 'removeFormat',\n          'CTRL+SHIFT+L': 'justifyLeft',\n          'CTRL+SHIFT+E': 'justifyCenter',\n          'CTRL+SHIFT+R': 'justifyRight',\n          'CTRL+SHIFT+J': 'justifyFull',\n          'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n          'CTRL+SHIFT+NUM8': 'insertOrderedList',\n          'CTRL+LEFTBRACKET': 'outdent',\n          'CTRL+RIGHTBRACKET': 'indent',\n          'CTRL+NUM0': 'formatPara',\n          'CTRL+NUM1': 'formatH1',\n          'CTRL+NUM2': 'formatH2',\n          'CTRL+NUM3': 'formatH3',\n          'CTRL+NUM4': 'formatH4',\n          'CTRL+NUM5': 'formatH5',\n          'CTRL+NUM6': 'formatH6',\n          'CTRL+ENTER': 'insertHorizontalRule',\n          'CTRL+K': 'linkDialog.show'\n        },\n\n        mac: {\n          'ENTER': 'insertParagraph',\n          'CMD+Z': 'undo',\n          'CMD+SHIFT+Z': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CMD+B': 'bold',\n          'CMD+I': 'italic',\n          'CMD+U': 'underline',\n          'CMD+SHIFT+S': 'strikethrough',\n          'CMD+BACKSLASH': 'removeFormat',\n          'CMD+SHIFT+L': 'justifyLeft',\n          'CMD+SHIFT+E': 'justifyCenter',\n          'CMD+SHIFT+R': 'justifyRight',\n          'CMD+SHIFT+J': 'justifyFull',\n          'CMD+SHIFT+NUM7': 'insertUnorderedList',\n          'CMD+SHIFT+NUM8': 'insertOrderedList',\n          'CMD+LEFTBRACKET': 'outdent',\n          'CMD+RIGHTBRACKET': 'indent',\n          'CMD+NUM0': 'formatPara',\n          'CMD+NUM1': 'formatH1',\n          'CMD+NUM2': 'formatH2',\n          'CMD+NUM3': 'formatH3',\n          'CMD+NUM4': 'formatH4',\n          'CMD+NUM5': 'formatH5',\n          'CMD+NUM6': 'formatH6',\n          'CMD+ENTER': 'insertHorizontalRule',\n          'CMD+K': 'linkDialog.show'\n        }\n      },\n      icons: {\n        'align': 'note-icon-align',\n        'alignCenter': 'note-icon-align-center',\n        'alignJustify': 'note-icon-align-justify',\n        'alignLeft': 'note-icon-align-left',\n        'alignRight': 'note-icon-align-right',\n        'indent': 'note-icon-align-indent',\n        'outdent': 'note-icon-align-outdent',\n        'arrowsAlt': 'note-icon-arrows-alt',\n        'bold': 'note-icon-bold',\n        'caret': 'note-icon-caret',\n        'circle': 'note-icon-circle',\n        'close': 'note-icon-close',\n        'code': 'note-icon-code',\n        'eraser': 'note-icon-eraser',\n        'font': 'note-icon-font',\n        'frame': 'note-icon-frame',\n        'italic': 'note-icon-italic',\n        'link': 'note-icon-link',\n        'unlink': 'note-icon-chain-broken',\n        'magic': 'note-icon-magic',\n        'menuCheck': 'note-icon-check',\n        'minus': 'note-icon-minus',\n        'orderedlist': 'note-icon-orderedlist',\n        'pencil': 'note-icon-pencil',\n        'picture': 'note-icon-picture',\n        'question': 'note-icon-question',\n        'redo': 'note-icon-redo',\n        'square': 'note-icon-square',\n        'strikethrough': 'note-icon-strikethrough',\n        'subscript': 'note-icon-subscript',\n        'superscript': 'note-icon-superscript',\n        'table': 'note-icon-table',\n        'textHeight': 'note-icon-text-height',\n        'trash': 'note-icon-trash',\n        'underline': 'note-icon-underline',\n        'undo': 'note-icon-undo',\n        'unorderedlist': 'note-icon-unorderedlist',\n        'video': 'note-icon-video'\n      }\n    }\n  });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/airmode.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote airmode</title>\n\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/3.3.5/js/bootstrap.min.js\"></script> \n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 300,\n        tabsize: 2,\n        airMode: true\n      });\n    });\n  </script>\n</head>\n<body>\n<div class=\"summernote\">\n<p>In <a href=\"http://en.wikipedia.org/wiki/Computer_science\" title=\"Computer science\">computer science</a>, <b>functional programming</b> is a <a href=\"http://en.wikipedia.org/wiki/Programming_paradigm\" title=\"Programming paradigm\">programming paradigm</a>, a style of building the structure and elements of computer programs, that treats <a href=\"http://en.wikipedia.org/wiki/Computation\" title=\"Computation\">computation</a> as the evaluation of <a href=\"http://en.wikipedia.org/wiki/Function_(mathematics)\" title=\"Function (mathematics)\">mathematical functions</a> and avoids <a href=\"http://en.wikipedia.org/wiki/Program_state\" title=\"Program state\" class=\"mw-redirect\">state</a> and <a href=\"http://en.wikipedia.org/wiki/Immutable_object\" title=\"Immutable object\">mutable</a> data. Functional programming emphasizes <a href=\"http://en.wikipedia.org/wiki/Function_(computer_science)\" title=\"Function (computer science)\" class=\"mw-redirect\">functions</a> that produce results that depend only on their inputs and not on the program state—i.e. <a href=\"http://en.wikipedia.org/wiki/Pure_function\" title=\"Pure function\">pure</a> <a href=\"http://en.wikipedia.org/wiki/Function_(mathematics)\" title=\"Function (mathematics)\">mathematical functions</a>. It is a <a href=\"http://en.wikipedia.org/wiki/Declarative_programming\" title=\"Declarative programming\">declarative programming</a> paradigm, which means programming is done with <a href=\"http://en.wikipedia.org/wiki/Expression_(computer_science)\" title=\"Expression (computer science)\">expressions</a>. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function <i>f</i> twice with the same value for an argument <i>x</i> will produce the same result <i>f(x)</i> both times. Eliminating <a href=\"http://en.wikipedia.org/wiki/Side_effect_(computer_science)\" title=\"Side effect (computer science)\">side effects</a>, i.e. changes in state that do not depend on the function inputs, can make it much easier to understand and predict the behavior of a program, which is one of the key motivations for the development of functional programming.</p>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/bs3fa4.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n  <title>summernote - bs3fa4</title>\n\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 300,\n        tabsize: 2\n      });\n    });\n  </script>\n</head>\n<body>\n<div class=\"container\">\n  <h4>Lately library\n    <span class=\"label label-info\">Bootstrap v3.3.5</span>\n  </h4>\n  <div class=\"summernote\"></div>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/codemirror.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote - codemirror</title>\n\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n  <!-- include codemirror (codemirror.css, codemirror.js, xml.js, formatting.js)-->\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/codemirror.min.css\" />\n  <link rel=\"stylesheet\" href=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/theme/blackboard.min.css\">\n  <link rel=\"stylesheet\" href=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/theme/monokai.min.css\">\n  <script type=\"text/javascript\" src=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/codemirror.js\"></script>\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/mode/xml/xml.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        codemirror: {\n          mode: 'text/html',\n          htmlMode: true,\n          lineNumbers: true,\n          theme: 'monokai'\n        }\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/external-api.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\">\n    <title>summernote - external-api</title>\n    <!-- include jquery -->\n    <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n    <!-- include libs stylesheets -->\n    <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n    <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n    <!-- include summernote -->\n    <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n    <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n    <style>\n      .container {\n        position: absolute;\n        left: 10%;\n        right: 10%;\n        top: 10%;\n        bottom: 10%;\n      }\n\n      .custom-toolbar {\n        padding: 5px;\n      }\n  \n      h1 {\n        text-align: center;\n      }\n    </style>\n\n    <script type=\"text/javascript\">\n      var $summernote;\n      $(document).ready(function () {\n        $summernote = $('.summernote');\n      \n        // init summernote\n        $summernote.summernote({\n          height: 300,\n          toolbar: false\n        });\n      \n        $(\"button\").popover({\n          trigger: 'hover'\n        });\n      });\n      \n      function command() {\n        $summernote.summernote(arguments[0], arguments[1]);\n      }\n    </script>\n  </head>\n  <body>\n    <div class=\"container\">\n      <h1>External API Sample</h1>\n      <div class=\"custom-toolbar\">\n        <div class=\"btn-group\" role=\"group\" aria-label=\"...\">\n          <button type=\"button\" class=\"btn btn-default\" data-container=\"body\" data-trigger=\"hover\" data-placement=\"left\" data-content=\"Sample Content\" title=\"Sample Button\" onclick=\"command('justifyLeft')\">Left </button>\n          <button type=\"button\" class=\"btn btn-default\" onclick=\"command('justifyCenter')\">Middle</button>\n          <button type=\"button\" class=\"btn btn-default\" onclick=\"command('justifyRight')\">Right</button>\n        </div>\n\n        <div class=\"btn-group\" role=\"group\" aria-label=\"...\">\n          <button type=\"button\" class=\"btn btn-default\" data-container=\"body\" data-trigger=\"hover\" data-placement=\"bottom\" data-content=\"Apply bold style to selected text\" title=\"Bold (CTRL+B)\" onclick=\"command('bold')\"><i class=\"fa fa-bold\"></i> Bold </button>\n          <button type=\"button\" class=\"btn btn-default\" title=\"Italic (CTRL+I)\" onclick=\"command('italic')\"><i class=\"fa fa-italic\"></i> Italic </button>\n          <button type=\"button\" class=\"btn btn-default\" title=\"Underline (CTRL+U)\" onclick=\"command('underline')\"><i class=\"fa fa-underline\"></i> Underline </button>\n          <button type=\"button\" class=\"btn btn-default\" title=\"Remove Font Style (CTRL+\\)\" onclick=\"command('removeFormat')\" style=\"color:red;\"><i class=\"fa fa-eraser\"></i> Remove Format </button>\n        </div>\n      </div>\n      <div class=\"summernote\">Hello World</div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/get-button.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>How to get a button in toolbar</title>\n  <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n\n  <!-- include libraries BS2 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\"/>\n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <style>\n    .container {\n      position: absolute;\n      left: 10%;\n      right: 10%;\n      top: 10%;\n      bottom: 10%;\n    }\n\n    .custom-toolbar {\n      padding: 5px;\n    }\n\n    h1 {\n      text-align: center;\n    }\n  </style>\n\n  <script type=\"text/javascript\">\n    // referer to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random\n    function getRandomInt(min, max) {\n      return Math.floor(Math.random() * (max - min)) + min;\n    }\n    $(document).ready(function() {\n      $('.summernote')\n          .on('summernote.change', function() {\n            var $buttons = [\n              $(this).summernote(\"toolbar.get\", \"ol\"),\n              $(this).summernote(\"toolbar.get\", \"bold\"),\n              $(this).summernote(\"toolbar.get\", \"italic\")\n            ];\n              \n            for(var i = 0; i < $buttons.length; i++) {\n              var r = getRandomInt(0, 255);\n              var g = getRandomInt(0, 255);\n              var b = getRandomInt(0, 255);\n\n              $buttons[i].css('background-color', 'rgb(' + r + ',' + g + ',' + b + ')');\n            }\n\n          })\n          .summernote({ height : 300 });\n\n    });\n  </script>\n</head>\n<body>\n<div class=\"container\">\n  <h1>How to get a button in toolbar</h1>\n  <div class=\"summernote\">\n    <h1>Button is in a toolbar.</h1>\n\n    <h3>When change event occurs, some buttons will change background color.</h3>\n\n  </div>\n</div>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/hint-emoji.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <script type=\"text/javascript\" src=\"../lang/summernote-ko-KR.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function () {\n      var self = this;\n\n      // load github's emoji list\n      $.ajax({\n        url: 'https://api.github.com/emojis'\n      }).then(function (data) {\n        var emojis = Object.keys(data);\n        var emojiUrls = data;\n\n        $('.summernote').summernote({\n          height: 300,\n          hintDirection: 'top',\n          hint: [{\n            search: function (keyword, callback) {\n              callback($.grep(emojis, function (item) {\n                return item.indexOf(keyword)  === 0;\n              }));\n            },\n            match: /\\B:([\\-+\\w]+)$/,\n            template: function (item) {\n              var content = emojiUrls[item];\n              return '<img src=\"' + content + '\" width=\"20\" /> :' + item + ':';\n            },\n            content: function (item) {\n              var url = emojiUrls[item];\n              if (url) {\n                return $('<img />').attr('src', url).css('width', 20)[0];\n              }\n              return '';\n            }\n          }]\n        });\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\">Type text start with \":\". For example, :smile or :+1:.</textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/hint-userdefine.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script src=\"https://www.google.com/jsapi\" type=\"text/javascript\"></script>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').summernote({\n        height: 200,\n        hint: {\n          match: /#(\\w{2,})$/,\n          search: function(keyword, callback) {\n            $.ajax({\n              url: 'https://api.github.com/search/repositories?q=' + keyword + '&order=asc'\n            }).then(function (data) {\n              callback(data.items);\n            });\n          },\n          content: function(item) {\n            return '[' + item.full_name + '] ' + item.description;\n          },\n          template: function(item) {\n            return '[<strong>' + item.full_name + '</strong>] ' + item.description;\n          }\n        }\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\">type #su</textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/jquery-custom-event.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>jquery old</title>\n  <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n\n  <!-- include libraries BS2 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\"/>\n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <style>\n    .container {\n      position: absolute;\n      left: 10%;\n      right: 10%;\n      top: 10%;\n      bottom: 10%;\n    }\n\n    .custom-toolbar {\n      padding: 5px;\n    }\n\n    h1 {\n      text-align: center;\n    }\n  </style>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').on('summernote.init', function() {\n        console.log('summernote initialize!')\n      }).on('summernote.change', function() {\n        console.log(' changed content ')\n      }).on('summernote.keyup', function(event) {\n        console.log('you can use keyboard event', event);\n      }).on('summernote.enter', function(event) {\n        console.log('check enter key ');\n      }).summernote({ height : 300 });\n\n    });\n  </script>\n</head>\n<body>\n<div class=\"container\">\n  <h1>jQuery Custom Event Sample</h1>\n  <div class=\"summernote\">\n    <article class=\"markdown-body js-file js-task-list-container is-task-list-enabled\" data-task-list-update-url=\"https://gist.github.com/easylogic/95d2dbe03ce500bd0ae1/file/gistfile1.md\">\n\n      <h1>\n        <a name=\"user-content-how-to-set-custom-event\" class=\"anchor\" href=\"#how-to-set-custom-event\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>How to set custom event</h1>\n\n      <h2>\n        <a name=\"user-content-current-style-1\" class=\"anchor\" href=\"#current-style-1\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>current style</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).summernote({\n  <span class=\"pl-en\">onfocus</span> : <span class=\"pl-st\">function</span>(<span class=\"pl-vpf\">e</span>) {\n    <span class=\"pl-c\">// to do something</span>\n  }\n});</pre></div>\n\n      <h2>\n        <a name=\"user-content-jquery-plugin-style\" class=\"anchor\" href=\"#jquery-plugin-style\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>jquery style</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.focus<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-st\">function</span>(<span class=\"pl-vpf\">e</span>) {\n  <span class=\"pl-c\">// to do something</span>\n});</pre></div>\n\n      <h1>\n        <a name=\"user-content-event-list\" class=\"anchor\" href=\"#event-list\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>Event List</h1>\n\n      <h2>\n        <a name=\"user-content-oninit\" class=\"anchor\" href=\"#oninit\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>oninit</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.init<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onfocus\" class=\"anchor\" href=\"#onfocus\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onfocus</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.focus<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onenter\" class=\"anchor\" href=\"#onenter\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onenter</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.enter<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onblur\" class=\"anchor\" href=\"#onblur\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onblur</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.blur<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onkeyup\" class=\"anchor\" href=\"#onkeyup\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onkeyup</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.keyup<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onkeydown\" class=\"anchor\" href=\"#onkeydown\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onkeydown</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.keydown<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onchange\" class=\"anchor\" href=\"#onchange\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onChange</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.change<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n    </article>\n\n\n  </div>\n</div>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/jquery18lt.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>jquery old</title>\n  <script src=\"http://code.jquery.com/jquery-1.8.3.js\"></script>\n\n  <!-- include libraries BS2 -->\n  <link href=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.no-icons.min.css\" rel=\"stylesheet\"> \n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js\"></script> \n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({height: 200});\n    });\n  </script>\n</head>\n<body>\n<div class=\"summernote\"></div>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/lang.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <script type=\"text/javascript\" src=\"../lang/summernote-ko-KR.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        lang: 'ko-KR'\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/nativestyle.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        styleWithSpan: false\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/ondialog-multitab.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script>\n    $(function () {\n      $('#dropper').on('shown.bs.modal', function() {\n        $('.dropping').summernote({ height: 300, focus: true });\n      }).on('hidden.bs.modal', function () {\n        $('.dropping').destroy();\n      });\n\n      $('.nav.nav-tabs a').click(function (e) {\n        e.preventDefault()\n          $(this).tab('show')\n      })\n    });\n  </script>\n</head>\n<body>\n<button class=\"btn btn-primary btn-lg\" data-toggle=\"modal\" data-target=\"#dropper\">Show Dialog</button>\n<div id=\"dropper\" class=\"modal fade\" tabindex=\"-1\" data-backdrop=\"static\" role=\"dialog\" aria-hidden=\"true\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-body\">\n        <div role=\"tabpanel\">\n          <!-- Nav tabs -->\n          <ul class=\"nav nav-tabs\" role=\"tablist\">\n            <li role=\"presentation\" class=\"active\"><a href=\"#tab1\" aria-controls=\"tab1\" role=\"tab\" data-toggle=\"tab\">Tab 1</a></li>\n            <li role=\"presentation\"><a href=\"#tab2\" aria-controls=\"tab2\" role=\"tab\" data-toggle=\"tab\">Tab 2</a></li>\n          </ul>\n          <!-- Tab panes -->\n          <div class=\"tab-content\">\n            <div role=\"tabpanel\" class=\"tab-pane active\" id=\"tab1\">\n              <div class=\"dropping\">text...</div>\n            </div>\n            <div role=\"tabpanel\" class=\"tab-pane\" id=\"tab2\">\n              <div class=\"dropping\">text...</div>\n            </div>\n          </div>\n        </div>          \n      </div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-default pull-left\">\n          <span class=\"fa fa-paperclip\"></span>\n          Attach Digital Assets\n        </button>\n        <div class=\"btn-group\">\n          <button type=\"button\" class=\"btn btn-default opacity75\" class=\"close\" data-dismiss=\"modal\">\n            &times; Cancel\n          </button>\n          <button type=\"button\" class=\"btn btn-warning\" href=\"javascript:postDrop()\">\n            Post Status Update\n            <span class=\"fa fa-bullhorn\"></span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</div> \n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/ondialog.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script>\n    $(function () {\n      $('#dropper').on('shown.bs.modal', function() {\n        $('#dropping').summernote({ height: 300, focus: true });\n      }).on('hidden.bs.modal', function () {\n        $('#dropping').destroy();\n      });\n    });\n  </script>\n</head>\n<body>\n<button class=\"btn btn-primary btn-lg\" data-toggle=\"modal\" data-target=\"#dropper\">Show Dialog</button>\n<div id=\"dropper\" class=\"modal fade\" tabindex=\"-1\" data-backdrop=\"static\" role=\"dialog\" aria-hidden=\"true\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-body\">\n        <div id=\"dropping\">text...</div>\n      </div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-default pull-left\">\n          <span class=\"fa fa-paperclip\"></span>\n          Attach Digital Assets\n        </button>\n        <div class=\"btn-group\">\n          <button type=\"button\" class=\"btn btn-default opacity75\" class=\"close\" data-dismiss=\"modal\">\n            &times; Cancel\n          </button>\n          <button type=\"button\" class=\"btn btn-warning\" href=\"javascript:postDrop()\">\n            Post Status Update\n            <span class=\"fa fa-bullhorn\"></span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</div> \n</body>\n</html>\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/plugin-hello.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <script type=\"text/javascript\" src=\"../lang/summernote-ko-KR.js\"></script>\n  <script type=\"text/javascript\" src=\"../plugin/hello/summernote-ext-hello.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        toolbar: [\n  \t\t    ['style', ['bold', 'italic', 'underline', 'clear']],\n  \t\t    ['insert', ['hello']]\n  \t\t  ]\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\">Seasons coming up</textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/rtl.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        direction: 'rtl'\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/examples/textarea.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').summernote({\n        height: 200\n      });\n\n      $('form').on('submit', function (e) {\n        e.preventDefault();\n        alert($('.summernote').summernote('code'));\n        alert($('.summernote').val());\n      });\n    });\n  </script>\n</head>\n<body>\n<form action=\"#\" novalidate>\n  <div class=\"form-group\">\n    <label for=\"input\">Text</label>\n    <input type=\"text\" class=\"form-input\" id=\"input\" value=\"Title\">\n  </div>\n  <div class=\"form-group\">\n    <label for=\"contents\">Contents</label>\n    <textarea name=\"text\" class=\"summernote\" id=\"contents\" title=\"Contents\"></textarea>\n  </div>\n  <button type=\"submit\" class=\"btn btn-default\">submit</button>\n</form>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/grunts/grunt-build.js",
    "content": "module.exports = function (grunt) {\n  'use strict';\n\n  var requirejs = require('requirejs');\n  var path = require('path');\n\n  var rDefineStart = /define\\([^{]*?{/;\n  var rDefineEndWithReturn = /\\s*return\\s+[^\\}]+(\\}\\);[^\\w\\}]*)$/;\n  var rDefineEnd = /\\}\\);[^}\\w]*$/;\n\n  grunt.registerMultiTask('build', 'concatenate source: summernote.js', function () {\n    var self = this;\n\n    var done = this.async();\n    requirejs.optimize({\n      name: 'summernote/summernote',\n      baseUrl: this.data.baseUrl,\n      /**\n       * Handle final output from the optimizer\n       */\n      out: function (compiled) {\n        // 01. Embed version\n        var version = grunt.config('pkg.version');\n        compiled = compiled.replace(/@VERSION/g, version);\n\n        // 02.  Embed Date\n        var date = (new Date()).toISOString().replace(/:\\d+\\.\\d+Z$/, 'Z');\n        compiled = compiled.replace(/@DATE/g, date);\n\n        grunt.file.write(self.data.outFile, compiled);\n      },\n      optimize: 'none',\n      wrap: {\n        startFile: path.join(this.data.baseUrl, this.data.startFile),\n        endFile: path.join(this.data.baseUrl, this.data.endFile)\n      },\n      findNestedDependencies: true,\n      skipSemiColonInsertion: true,\n      /**\n       * Strip all definitions generated by requirejs\n       *\n       * @param {String} name\n       * @param {String} path\n       * @param {String} contents The contents to be written (including their AMD wrappers)\n       */\n      onBuildWrite: function (name, path, contents) {\n        contents = contents.replace(rDefineStart, '');\n\n        if (rDefineEndWithReturn.test(contents)) {\n          contents = contents.replace(rDefineEndWithReturn, '');\n        } else {\n          contents = contents.replace(rDefineEnd, '');\n        }\n        return contents;\n      },\n      excludeShallow: ['jquery', 'codemirror', 'app'],\n      include: ['summernote/bs3/settings'],\n      paths: {\n        jquery: 'empty:',\n        codemirror: 'empty:'\n      },\n      packages: [{\n        name: 'summernote',\n        location: './'\n      }]\n    }, function () {\n      done();\n    }, function (err) {\n      done(err);\n    });\n  });\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/ie8.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\">\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <title>summernote</title>\n</head>\n<body>\n<div class=\"container\">\n  <h4>Summernote\n    <span class=\"label label-info\">Bootstrap v3.3.5</span>\n  </h4>\n\n  <div class=\"summernote\"><p>Hello World</p></div>\n</div>\n<script type=\"text/javascript\" src=\"//cdnjs.cloudflare.com/ajax/libs/es5-shim/4.3.1/es5-shim.js\"></script>\n<script id=\"start\" data-main=\"src/js/app\" data-editor-type=\"bs3\" data-browser=\"ie8\" src=\"//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n   <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n   <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n   <title>summernote</title>\n</head>\n<body>\n  <div class=\"container\">\n    <h4> <i class=\"note-icon-summernote\"></i> Summernote\n      <span class=\"label label-info\">Bootstrap v3.3.5</span>\n      <span class=\"label label-success\">with Summernote Icons</span>\n    </h4>\n    <div class=\"summernote\"><p>Hello World</p></div>\n  </div>\n  <script data-main=\"src/js/app\" data-editor-type=\"bs3\" src=\"//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/issue_template.md",
    "content": "#### steps to reproduce\n1.\n2.\n3.\n\n#### browser version and os version\nWhat is your browser and OS?\n\n#### screenshot of issue\nadd screenshots which shows your issue(if needed).\nYou can make [gif from Recordit](http://www.recordit.co/).\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-ar-AR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ar-AR': {\n      font: {\n        bold: 'عريض',\n        italic: 'مائل',\n        underline: 'تحته خط',\n        clear: 'مسح التنسيق',\n        height: 'إرتفاع السطر',\n        name: 'الخط',\n        strikethrough: 'فى وسطه خط',\n        size: 'الحجم'\n      },\n      image: {\n        image: 'صورة',\n        insert: 'إضافة صورة',\n        resizeFull: 'الحجم بالكامل',\n        resizeHalf: 'تصغير للنصف',\n        resizeQuarter: 'تصغير للربع',\n        floatLeft: 'تطيير لليسار',\n        floatRight: 'تطيير لليمين',\n        floatNone: 'ثابته',\n        dragImageHere: 'إدرج الصورة هنا',\n        selectFromFiles: 'حدد ملف',\n        url: 'رابط الصورة',\n        remove: 'حذف الصورة'\n      },\n      video: {\n        video: 'فيديو',\n        videoLink: 'رابط الفيديو',\n        insert: 'إدراج الفيديو',\n        url: 'رابط الفيديو',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'رابط رابط',\n        insert: 'إدراج',\n        unlink: 'حذف الرابط',\n        edit: 'تعديل',\n        textToDisplay: 'النص',\n        url: 'مسار الرابط',\n        openInNewWindow: 'فتح في نافذة جديدة'\n      },\n      table: {\n        table: 'جدول'\n      },\n      hr: {\n        insert: 'إدراج خط أفقي'\n      },\n      style: {\n        style: 'تنسيق',\n        p: 'عادي',\n        blockquote: 'إقتباس',\n        pre: 'شفيرة',\n        h1: 'عنوان رئيسي 1',\n        h2: 'عنوان رئيسي 2',\n        h3: 'عنوان رئيسي 3',\n        h4: 'عنوان رئيسي 4',\n        h5: 'عنوان رئيسي 5',\n        h6: 'عنوان رئيسي 6'\n      },\n      lists: {\n        unordered: 'قائمة مُنقطة',\n        ordered: 'قائمة مُرقمة'\n      },\n      options: {\n        help: 'مساعدة',\n        fullscreen: 'حجم الشاشة بالكامل',\n        codeview: 'شفيرة المصدر'\n      },\n      paragraph: {\n        paragraph: 'فقرة',\n        outdent: 'محاذاة للخارج',\n        indent: 'محاذاة للداخل',\n        left: 'محاذاة لليسار',\n        center: 'توسيط',\n        right: 'محاذاة لليمين',\n        justify: 'ملئ السطر'\n      },\n      color: {\n        recent: 'تم إستخدامه',\n        more: 'المزيد',\n        background: 'لون الخلفية',\n        foreground: 'لون النص',\n        transparent: 'شفاف',\n        setTransparent: 'بدون خلفية',\n        reset: 'إعادة الضبط',\n        resetToDefault: 'إعادة الضبط'\n      },\n      shortcut: {\n        shortcuts: 'إختصارات',\n        close: 'غلق',\n        textFormatting: 'تنسيق النص',\n        action: 'Action',\n        paragraphFormatting: 'تنسيق الفقرة',\n        documentStyle: 'تنسيق المستند'\n      },\n      history: {\n        undo: 'تراجع',\n        redo: 'إعادة'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-bg-BG.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'bg-BG': {\n      font: {\n        bold: 'Удебелен',\n        italic: 'Наклонен',\n        underline: 'Подчертан',\n        clear: 'Изчисти стиловете',\n        height: 'Височина',\n        name: 'Шрифт',\n        strikethrough: 'Задраскано',\n        subscript: 'Долен индекс',\n        superscript: 'Горен индекс',\n        size: 'Размер на шрифта'\n      },\n      image: {\n        image: 'Изображение',\n        insert: 'Постави картинка',\n        resizeFull: 'Цял размер',\n        resizeHalf: 'Размер на 50%',\n        resizeQuarter: 'Размер на 25%',\n        floatLeft: 'Подравни в ляво',\n        floatRight: 'Подравни в дясно',\n        floatNone: 'Без подравняване',\n        dragImageHere: 'Пуснете изображението тук',\n        selectFromFiles: 'Изберете файл',\n        url: 'URL адрес на изображение',\n        remove: 'Премахни изображение'\n      },\n      link: {\n        link: 'Връзка',\n        insert: 'Добави връзка',\n        unlink: 'Премахни връзка',\n        edit: 'Промени',\n        textToDisplay: 'Текст за показване',\n        url: 'URL адрес',\n        openInNewWindow: 'Отвори в нов прозорец'\n      },\n      table: {\n        table: 'Таблица'\n      },\n      hr: {\n        insert: 'Добави хоризонтална линия'\n      },\n      style: {\n        style: 'Стил',\n        p: 'Нормален',\n        blockquote: 'Цитат',\n        pre: 'Код',\n        h1: 'Заглавие 1',\n        h2: 'Заглавие 2',\n        h3: 'Заглавие 3',\n        h4: 'Заглавие 4',\n        h5: 'Заглавие 5',\n        h6: 'Заглавие 6'\n      },\n      lists: {\n        unordered: 'Символен списък',\n        ordered: 'Цифров списък'\n      },\n      options: {\n        help: 'Помощ',\n        fullscreen: 'На цял екран',\n        codeview: 'Преглед на код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Намаляване на отстъпа',\n        indent: 'Абзац',\n        left: 'Подравняване в ляво',\n        center: 'Център',\n        right: 'Подравняване в дясно',\n        justify: 'Разтягане по ширина'\n      },\n      color: {\n        recent: 'Последния избран цвят',\n        more: 'Още цветове',\n        background: 'Цвят на фона',\n        foreground: 'Цвят на шрифта',\n        transparent: 'Прозрачен',\n        setTransparent: 'Направете прозрачен',\n        reset: 'Възстанови',\n        resetToDefault: 'Възстанови оригиналните'\n      },\n      shortcut: {\n        shortcuts: 'Клавишни комбинации',\n        close: 'Затвори',\n        textFormatting: 'Форматиране на текста',\n        action: 'Действие',\n        paragraphFormatting: 'Форматиране на параграф',\n        documentStyle: 'Стил на документа'\n      },\n      history: {\n        undo: 'Назад',\n        redo: 'Напред'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-ca-ES.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ca-ES': {\n      font: {\n        bold: 'Negreta',\n        italic: 'Cursiva',\n        underline: 'Subratllat',\n        clear: 'Treure estil de lletra',\n        height: 'Alçada de línia',\n        name: 'Font',\n        strikethrough: 'Ratllat',\n        subscript: 'Subíndex',\n        superscript: 'Superíndex',\n        size: 'Mida de lletra'\n      },\n      image: {\n        image: 'Imatge',\n        insert: 'Inserir imatge',\n        resizeFull: 'Redimensionar a mida completa',\n        resizeHalf: 'Redimensionar a la meitat',\n        resizeQuarter: 'Redimensionar a un quart',\n        floatLeft: 'Alinear a l\\'esquerra',\n        floatRight: 'Alinear a la dreta',\n        floatNone: 'No alinear',\n        shapeRounded: 'Forma: Arrodonit',\n        shapeCircle: 'Forma: Cercle',\n        shapeThumbnail: 'Forma: Marc',\n        shapeNone: 'Forma: Cap',\n        dragImageHere: 'Arrossegueu una imatge o text aquí',\n        dropImage: 'Deixa anar aquí una imatge o un text',\n        selectFromFiles: 'Seleccioneu des dels arxius',\n        maximumFileSize: 'Mida màxima de l\\'arxiu',\n        maximumFileSizeError: 'La mida màxima de l\\'arxiu s\\'ha superat.',\n        url: 'URL de la imatge',\n        remove: 'Eliminar imatge'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Enllaç del vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL del vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Enllaç',\n        insert: 'Inserir enllaç',\n        unlink: 'Treure enllaç',\n        edit: 'Editar',\n        textToDisplay: 'Text per mostrar',\n        url: 'Cap a quina URL porta l\\'enllaç?',\n        openInNewWindow: 'Obrir en una finestra nova'\n      },\n      table: {\n        table: 'Taula'\n      },\n      hr: {\n        insert: 'Inserir línia horitzontal'\n      },\n      style: {\n        style: 'Estil',\n        p: 'p',\n        blockquote: 'Cita',\n        pre: 'Codi',\n        h1: 'Títol 1',\n        h2: 'Títol 2',\n        h3: 'Títol 3',\n        h4: 'Títol 4',\n        h5: 'Títol 5',\n        h6: 'Títol 6'\n      },\n      lists: {\n        unordered: 'Llista desendreçada',\n        ordered: 'Llista endreçada'\n      },\n      options: {\n        help: 'Ajut',\n        fullscreen: 'Pantalla sencera',\n        codeview: 'Veure codi font'\n      },\n      paragraph: {\n        paragraph: 'Paràgraf',\n        outdent: 'Menys tabulació',\n        indent: 'Més tabulació',\n        left: 'Alinear a l\\'esquerra',\n        center: 'Alinear al mig',\n        right: 'Alinear a la dreta',\n        justify: 'Justificar'\n      },\n      color: {\n        recent: 'Últim color',\n        more: 'Més colors',\n        background: 'Color de fons',\n        foreground: 'Color de lletra',\n        transparent: 'Transparent',\n        setTransparent: 'Establir transparent',\n        reset: 'Restablir',\n        resetToDefault: 'Restablir per defecte'\n      },\n      shortcut: {\n        shortcuts: 'Dreceres de teclat',\n        close: 'Tancar',\n        textFormatting: 'Format de text',\n        action: 'Acció',\n        paragraphFormatting: 'Format de paràgraf',\n        documentStyle: 'Estil del document',\n        extraKeys: 'Tecles adicionals'\n      },\n      help : {\n        'insertParagraph': 'Inserir paràgraf',\n        'undo': 'Desfer l\\'última acció',\n        'redo': 'Refer l\\'última acció',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulació',\n        'bold': 'Establir estil negreta',\n        'italic': 'Establir estil cursiva',\n        'underline': 'Establir estil subratllat',\n        'strikethrough': 'Establir estil ratllat',\n        'removeFormat': 'Netejar estil',\n        'justifyLeft': 'Alinear a l\\'esquerra',\n        'justifyCenter': 'Alinear al centre',\n        'justifyRight': 'Alinear a la dreta',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Inserir llista desendreçada',\n        'insertOrderedList': 'Inserir llista endreçada',\n        'outdent': 'Reduïr tabulació del paràgraf',\n        'indent': 'Augmentar tabulació del paràgraf',\n        'formatPara': 'Canviar l\\'estil del bloc com a un paràgraf (etiqueta P)',\n        'formatH1': 'Canviar l\\'estil del bloc com a un H1',\n        'formatH2': 'Canviar l\\'estil del bloc com a un H2',\n        'formatH3': 'Canviar l\\'estil del bloc com a un H3',\n        'formatH4': 'Canviar l\\'estil del bloc com a un H4',\n        'formatH5': 'Canviar l\\'estil del bloc com a un H5',\n        'formatH6': 'Canviar l\\'estil del bloc com a un H6',\n        'insertHorizontalRule': 'Inserir una línia horitzontal',\n        'linkDialog.show': 'Mostrar panel d\\'enllaços'\n      },\n      history: {\n        undo: 'Desfer',\n        redo: 'Refer'\n      },\n      specialChar: {\n        specialChar: 'CARÀCTERS ESPECIALS',\n        select: 'Selecciona caràcters especials'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-cs-CZ.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'cs-CZ': {\n      font: {\n        bold: 'Tučné',\n        italic: 'Kurzíva',\n        underline: 'Podtržené',\n        clear: 'Odstranit styl písma',\n        height: 'Výška řádku',\n        strikethrough: 'Přeškrtnuté',\n        size: 'Velikost písma'\n      },\n      image: {\n        image: 'Obrázek',\n        insert: 'Vložit obrázek',\n        resizeFull: 'Původní velikost',\n        resizeHalf: 'Poloviční velikost',\n        resizeQuarter: 'Čtvrteční velikost',\n        floatLeft: 'Umístit doleva',\n        floatRight: 'Umístit doprava',\n        floatNone: 'Neobtékat textem',\n        dragImageHere: 'Přetáhnout sem obrázek',\n        selectFromFiles: 'Vybrat soubor',\n        url: 'URL obrázku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Odkaz videa',\n        insert: 'Vložit video',\n        url: 'URL videa?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)'\n      },\n      link: {\n        link: 'Odkaz',\n        insert: 'Vytvořit odkaz',\n        unlink: 'Zrušit odkaz',\n        edit: 'Upravit',\n        textToDisplay: 'Zobrazovaný text',\n        url: 'Na jaké URL má tento odkaz vést?',\n        openInNewWindow: 'Otevřít v novém okně'\n      },\n      table: {\n        table: 'Tabulka'\n      },\n      hr: {\n        insert: 'Vložit vodorovnou čáru'\n      },\n      style: {\n        style: 'Styl',\n        p: 'Normální',\n        blockquote: 'Citace',\n        pre: 'Kód',\n        h1: 'Nadpis 1',\n        h2: 'Nadpis 2',\n        h3: 'Nadpis 3',\n        h4: 'Nadpis 4',\n        h5: 'Nadpis 5',\n        h6: 'Nadpis 6'\n      },\n      lists: {\n        unordered: 'Odrážkový seznam',\n        ordered: 'Číselný seznam'\n      },\n      options: {\n        help: 'Nápověda',\n        fullscreen: 'Celá obrazovka',\n        codeview: 'HTML kód'\n      },\n      paragraph: {\n        paragraph: 'Odstavec',\n        outdent: 'Zvětšit odsazení',\n        indent: 'Zmenšit odsazení',\n        left: 'Zarovnat doleva',\n        center: 'Zarovnat na střed',\n        right: 'Zarovnat doprava',\n        justify: 'Zarovnat oboustranně'\n      },\n      color: {\n        recent: 'Aktuální barva',\n        more: 'Další barvy',\n        background: 'Barva pozadí',\n        foreground: 'Barva písma',\n        transparent: 'Průhlednost',\n        setTransparent: 'Nastavit průhlednost',\n        reset: 'Obnovit',\n        resetToDefault: 'Obnovit výchozí'\n      },\n      shortcut: {\n        shortcuts: 'Klávesové zkratky',\n        close: 'Zavřít',\n        textFormatting: 'Formátování textu',\n        action: 'Akce',\n        paragraphFormatting: 'Formátování odstavce',\n        documentStyle: 'Styl dokumentu'\n      },\n      history: {\n        undo: 'Krok vzad',\n        redo: 'Krok vpřed'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-da-DK.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'da-DK': {\n      font: {\n        bold: 'Fed',\n        italic: 'Kursiv',\n        underline: 'Understreget',\n        clear: 'Fjern formatering',\n        height: 'Højde',\n        name: 'Skrifttype',\n        strikethrough: 'Gennemstreget',\n        subscript: 'Sænket skrift',\n        superscript: 'Hævet skrift',\n        size: 'Skriftstørrelse'\n      },\n      image: {\n        image: 'Billede',\n        insert: 'Indsæt billede',\n        resizeFull: 'Original størrelse',\n        resizeHalf: 'Halv størrelse',\n        resizeQuarter: 'Kvart størrelse',\n        floatLeft: 'Venstrestillet',\n        floatRight: 'Højrestillet',\n        floatNone: 'Fjern formatering',\n        shapeRounded: 'Form: Runde kanter',\n        shapeCircle: 'Form: Cirkel',\n        shapeThumbnail: 'Form: Miniature',\n        shapeNone: 'Form: Ingen',\n        dragImageHere: 'Træk billede hertil',\n        dropImage: 'Slip billede',\n        selectFromFiles: 'Vælg billed-fil',\n        maximumFileSize: 'Maks fil størrelse',\n        maximumFileSizeError: 'Filen er større end maks tilladte fil størrelse!',\n        url: 'Billede URL',\n        remove: 'Fjern billede'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Indsæt Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Indsæt link',\n        unlink: 'Fjern link',\n        edit: 'Rediger',\n        textToDisplay: 'Visningstekst',\n        url: 'Hvor skal linket pege hen?',\n        openInNewWindow: 'Åbn i nyt vindue'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Indsæt horisontal linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Kode',\n        h1: 'Overskrift 1',\n        h2: 'Overskrift 2',\n        h3: 'Overskrift 3',\n        h4: 'Overskrift 4',\n        h5: 'Overskrift 5',\n        h6: 'Overskrift 6'\n      },\n      lists: {\n        unordered: 'Punktopstillet liste',\n        ordered: 'Nummereret liste'\n      },\n      options: {\n        help: 'Hjælp',\n        fullscreen: 'Fuld skærm',\n        codeview: 'HTML-Visning'\n      },\n      paragraph: {\n        paragraph: 'Afsnit',\n        outdent: 'Formindsk indryk',\n        indent: 'Forøg indryk',\n        left: 'Venstrestillet',\n        center: 'Centreret',\n        right: 'Højrestillet',\n        justify: 'Blokjuster'\n      },\n      color: {\n        recent: 'Nyligt valgt farve',\n        more: 'Flere farver',\n        background: 'Baggrund',\n        foreground: 'Forgrund',\n        transparent: 'Transparent',\n        setTransparent: 'Sæt transparent',\n        reset: 'Nulstil',\n        resetToDefault: 'Gendan standardindstillinger'\n      },\n      shortcut: {\n        shortcuts: 'Genveje',\n        close: 'Luk',\n        textFormatting: 'Tekstformatering',\n        action: 'Handling',\n        paragraphFormatting: 'Afsnitsformatering',\n        documentStyle: 'Dokumentstil'\n      },\n      history: {\n        undo: 'Fortryd',\n        redo: 'Annuller fortryd'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-de-DE.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'de-DE': {\n      font: {\n        bold: 'Fett',\n        italic: 'Kursiv',\n        underline: 'Unterstreichen',\n        clear: 'Zurücksetzen',\n        height: 'Zeilenhöhe',\n        strikethrough: 'Durchgestrichen',\n        size: 'Schriftgröße'\n      },\n      image: {\n        image: 'Grafik',\n        insert: 'Grafik einfügen',\n        resizeFull: 'Originalgröße',\n        resizeHalf: 'Größe 1/2',\n        resizeQuarter: 'Größe 1/4',\n        floatLeft: 'Linksbündig',\n        floatRight: 'Rechtsbündig',\n        floatNone: 'Kein Textfluss',\n        shapeRounded: 'Rahmen: Abgerundet',\n        shapeCircle: 'Rahmen: Kreisförmig',\n        shapeThumbnail: 'Rahmen: Thumbnail',\n        shapeNone: 'Kein Rahmen',\n        dragImageHere: 'Ziehen Sie ein Bild mit der Maus hierher',\n        selectFromFiles: 'Wählen Sie eine Datei aus',\n        maximumFileSize: 'Maximale Dateigröße',\n        maximumFileSizeError: 'Maximale Dateigröße überschritten',\n        url: 'Grafik URL',\n        remove: 'Grafik entfernen'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Video einfügen',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Link einfügen',\n        unlink: 'Link entfernen',\n        edit: 'Editieren',\n        textToDisplay: 'Anzeigetext',\n        url: 'Ziel des Links?',\n        openInNewWindow: 'In einem neuen Fenster öffnen'\n      },\n      table: {\n        table: 'Tabelle'\n      },\n      hr: {\n        insert: 'Eine horizontale Linie einfügen'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Zitat',\n        pre: 'Quellcode',\n        h1: 'Überschrift 1',\n        h2: 'Überschrift 2',\n        h3: 'Überschrift 3',\n        h4: 'Überschrift 4',\n        h5: 'Überschrift 5',\n        h6: 'Überschrift 6'\n      },\n      lists: {\n        unordered: 'Aufzählung',\n        ordered: 'Nummerierung'\n      },\n      options: {\n        help: 'Hilfe',\n        fullscreen: 'Vollbild',\n        codeview: 'HTML-Code anzeigen'\n      },\n      paragraph: {\n        paragraph: 'Absatz',\n        outdent: 'Einzug vergrößern',\n        indent: 'Einzug verkleinern',\n        left: 'Links ausrichten',\n        center: 'Zentriert ausrichten',\n        right: 'Rechts ausrichten',\n        justify: 'Blocksatz'\n      },\n      color: {\n        recent: 'Letzte Farbe',\n        more: 'Mehr Farben',\n        background: 'Hintergrundfarbe',\n        foreground: 'Schriftfarbe',\n        transparent: 'Transparenz',\n        setTransparent: 'Transparenz setzen',\n        reset: 'Zurücksetzen',\n        resetToDefault: 'Auf Standard zurücksetzen'\n      },\n      shortcut: {\n        shortcuts: 'Tastenkürzel',\n        close: 'Schließen',\n        textFormatting: 'Textformatierung',\n        action: 'Aktion',\n        paragraphFormatting: 'Absatzformatierung',\n        documentStyle: 'Dokumentenstil'\n      },\n      history: {\n        undo: 'Rückgängig',\n        redo: 'Wiederholen'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-es-ES.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'es-ES': {\n      font: {\n        bold: 'Negrita',\n        italic: 'Cursiva',\n        underline: 'Subrayado',\n        clear: 'Quitar estilo de fuente',\n        height: 'Altura de línea',\n        name: 'Fuente',\n        strikethrough: 'Tachado',\n        superscript: 'Superíndice',\n        subscript: 'Subíndice',\n        size: 'Tamaño de la fuente'\n      },\n      image: {\n        image: 'Imagen',\n        insert: 'Insertar imagen',\n        resizeFull: 'Redimensionar a tamaño completo',\n        resizeHalf: 'Redimensionar a la mitad',\n        resizeQuarter: 'Redimensionar a un cuarto',\n        floatLeft: 'Flotar a la izquierda',\n        floatRight: 'Flotar a la derecha',\n        floatNone: 'No flotar',\n        shapeRounded: 'Forma: Redondeado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Marco',\n        shapeNone: 'Forma: Ninguna',\n        dragImageHere: 'Arrastrar una imagen o texto aquí',\n        dropImage: 'Suelta la imagen o texto',\n        selectFromFiles: 'Seleccionar desde los archivos',\n        maximumFileSize: 'Tamaño máximo del archivo',\n        maximumFileSizeError: 'Has superado el tamaño máximo del archivo.',\n        url: 'URL de la imagen',\n        remove: 'Eliminar imagen'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link del vídeo',\n        insert: 'Insertar vídeo',\n        url: '¿URL del vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Insertar link',\n        unlink: 'Quitar link',\n        edit: 'Editar',\n        textToDisplay: 'Texto para mostrar',\n        url: '¿Hacia que URL lleva el link?',\n        openInNewWindow: 'Abrir en una nueva ventana'\n      },\n      table: {\n        table: 'Tabla'\n      },\n      hr: {\n        insert: 'Insertar línea horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'p',\n        blockquote: 'Cita',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista desordenada',\n        ordered: 'Lista ordenada'\n      },\n      options: {\n        help: 'Ayuda',\n        fullscreen: 'Pantalla completa',\n        codeview: 'Ver código fuente'\n      },\n      paragraph: {\n        paragraph: 'Párrafo',\n        outdent: 'Menos tabulación',\n        indent: 'Más tabulación',\n        left: 'Alinear a la izquierda',\n        center: 'Alinear al centro',\n        right: 'Alinear a la derecha',\n        justify: 'Justificar'\n      },\n      color: {\n        recent: 'Último color',\n        more: 'Más colores',\n        background: 'Color de fondo',\n        foreground: 'Color de fuente',\n        transparent: 'Transparente',\n        setTransparent: 'Establecer transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar por defecto'\n      },\n      shortcut: {\n        shortcuts: 'Atajos de teclado',\n        close: 'Cerrar',\n        textFormatting: 'Formato de texto',\n        action: 'Acción',\n        paragraphFormatting: 'Formato de párrafo',\n        documentStyle: 'Estilo de documento',\n        extraKeys: 'Teclas adicionales'\n      },\n      help : {\n        'insertParagraph': 'Insertar párrafo',\n        'undo': 'Deshacer última acción',\n        'redo': 'Rehacer última acción',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulación',\n        'bold': 'Establecer estilo negrita',\n        'italic': 'Establecer estilo cursiva',\n        'underline': 'Establecer estilo subrayado',\n        'strikethrough': 'Establecer estilo tachado',\n        'removeFormat': 'Limpiar estilo',\n        'justifyLeft': 'Alinear a la izquierda',\n        'justifyCenter': 'Alinear al centro',\n        'justifyRight': 'Alinear a la derecha',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Insertar lista desordenada',\n        'insertOrderedList': 'Insertar lista ordenada',\n        'outdent': 'Reducir tabulación del párrafo',\n        'indent': 'Aumentar tabulación del párrafo',\n        'formatPara': 'Cambiar estilo del bloque a párrafo (etiqueta P)',\n        'formatH1': 'Cambiar estilo del bloque a H1',\n        'formatH2': 'Cambiar estilo del bloque a H2',\n        'formatH3': 'Cambiar estilo del bloque a H3',\n        'formatH4': 'Cambiar estilo del bloque a H4',\n        'formatH5': 'Cambiar estilo del bloque a H5',\n        'formatH6': 'Cambiar estilo del bloque a H6',\n        'insertHorizontalRule': 'Insertar línea horizontal',\n        'linkDialog.show': 'Mostrar panel enlaces'\n      },\n      history: {\n        undo: 'Deshacer',\n        redo: 'Rehacer'\n      },\n      specialChar: {\n        specialChar: 'CARACTERES ESPECIALES',\n        select: 'Selecciona Caracteres especiales'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-es-EU.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'es-EU': {\n      font: {\n        bold: 'Lodia',\n        italic: 'Etzana',\n        underline: 'Azpimarratua',\n        clear: 'Estiloa kendu',\n        height: 'Lerro altuera',\n        name: 'Tipografia',\n        strikethrough: 'Marratua',\n        size: 'Letren neurria'\n      },\n      image: {\n        image: 'Irudia',\n        insert: 'Irudi bat txertatu',\n        resizeFull: 'Jatorrizko neurrira aldatu',\n        resizeHalf: 'Neurria erdira aldatu',\n        resizeQuarter: 'Neurria laurdenera aldatu',\n        floatLeft: 'Ezkerrean kokatu',\n        floatRight: 'Eskuinean kokatu',\n        floatNone: 'Kokapenik ez ezarri',\n        dragImageHere: 'Irudi bat ezarri hemen',\n        selectFromFiles: 'Zure fitxategi bat aukeratu',\n        url: 'Irudiaren URL helbidea'\n      },\n      video: {\n        video: 'Bideoa',\n        videoLink: 'Bideorako esteka',\n        insert: 'Bideo berri bat txertatu',\n        url: 'Bideoaren URL helbidea',\n        providers: '(YouTube, Vimeo, Vine, Instagram edo DailyMotion)'\n      },\n      link: {\n        link: 'Esteka',\n        insert: 'Esteka bat txertatu',\n        unlink: 'Esteka ezabatu',\n        edit: 'Editatu',\n        textToDisplay: 'Estekaren testua',\n        url: 'Estekaren URL helbidea',\n        openInNewWindow: 'Leiho berri batean ireki'\n      },\n      table: {\n        table: 'Taula' //Tabla\n      },\n      hr: {\n        insert: 'Marra horizontala txertatu' //Insertar línea horizontal\n      },\n      style: {\n        style: 'Estiloa',\n        p: 'p',\n        blockquote: 'Aipamena',\n        pre: 'Kodea',\n        h1: '1. izenburua',\n        h2: '2. izenburua',\n        h3: '3. izenburua',\n        h4: '4. izenburua',\n        h5: '5. izenburua',\n        h6: '6. izenburua'\n      },\n      lists: {\n        unordered: 'Ordenatu gabeko zerrenda',\n        ordered: 'Zerrenda ordenatua'\n      },\n      options: {\n        help: 'Laguntza',\n        fullscreen: 'Pantaila osoa',\n        codeview: 'Kodea ikusi'\n      },\n      paragraph: {\n        paragraph: 'Paragrafoa',\n        outdent: 'Koska txikiagoa',\n        indent: 'Koska handiagoa',\n        left: 'Ezkerrean kokatu',\n        center: 'Erdian kokatu',\n        right: 'Eskuinean kokatu',\n        justify: 'Justifikatu'\n      },\n      color: {\n        recent: 'Azken kolorea',\n        more: 'Kolore gehiago',\n        background: 'Atzeko planoa',\n        foreground: 'Aurreko planoa',\n        transparent: 'Gardena',\n        setTransparent: 'Gardendu',\n        reset: 'Lehengoratu',\n        resetToDefault: 'Berrezarri lehenetsia'\n      },\n      shortcut: {\n        shortcuts: 'Lasterbideak',\n        close: 'Itxi',\n        textFormatting: 'Testuaren formatua',\n        action: 'Ekintza',\n        paragraphFormatting: 'Paragrafoaren formatua',\n        documentStyle: 'Dokumentuaren estiloa'\n      },\n      history: {\n        undo: 'Desegin',\n        redo: 'Berregin'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-fa-IR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'fa-IR': {\n      font: {\n        bold: 'درشت',\n        italic: 'خمیده',\n        underline: 'میان خط',\n        clear: 'پاک کردن فرمت فونت',\n        height: 'فاصله ی خطی',\n        name: 'اسم فونت',\n        strikethrough: 'Strike',\n        size: 'اندازه ی فونت'\n      },\n      image: {\n        image: 'تصویر',\n        insert: 'وارد کردن تصویر',\n        resizeFull: 'تغییر به اندازه ی کامل',\n        resizeHalf: 'تغییر به اندازه نصف',\n        resizeQuarter: 'تغییر به اندازه یک چهارم',\n        floatLeft: 'چسباندن به چپ',\n        floatRight: 'چسباندن به راست',\n        floatNone: 'بدون چسبندگی',\n        dragImageHere: 'یک تصویر را اینجا بکشید',\n        selectFromFiles: 'فایل ها را انتخاب کنید',\n        url: 'آدرس تصویر',\n        remove: 'حذف تصویر'\n      },\n      video: {\n        video: 'ویدیو',\n        videoLink: 'لینک ویدیو',\n        insert: 'افزودن ویدیو',\n        url: 'آدرس ویدیو ؟',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)'\n      },\n      link: {\n        link: 'لینک',\n        insert: 'اضافه کردن لینک',\n        unlink: 'حذف لینک',\n        edit: 'ویرایش',\n        textToDisplay: 'متن جهت نمایش',\n        url: 'این لینک به چه آدرسی باید برود ؟',\n        openInNewWindow: 'در یک پنجره ی جدید باز شود'\n      },\n      table: {\n        table: 'جدول'\n      },\n      hr: {\n        insert: 'افزودن خط افقی'\n      },\n      style: {\n        style: 'استیل',\n        p: 'نرمال',\n        blockquote: 'نقل قول',\n        pre: 'کد',\n        h1: 'سرتیتر 1',\n        h2: 'سرتیتر 2',\n        h3: 'سرتیتر 3',\n        h4: 'سرتیتر 4',\n        h5: 'سرتیتر 5',\n        h6: 'سرتیتر 6'\n      },\n      lists: {\n        unordered: 'لیست غیر ترتیبی',\n        ordered: 'لیست ترتیبی'\n      },\n      options: {\n        help: 'راهنما',\n        fullscreen: 'نمایش تمام صفحه',\n        codeview: 'مشاهده ی کد'\n      },\n      paragraph: {\n        paragraph: 'پاراگراف',\n        outdent: 'کاهش تو رفتگی',\n        indent: 'افزایش تو رفتگی',\n        left: 'چپ چین',\n        center: 'میان چین',\n        right: 'راست چین',\n        justify: 'بلوک چین'\n      },\n      color: {\n        recent: 'رنگ اخیرا استفاده شده',\n        more: 'رنگ بیشتر',\n        background: 'رنگ پس زمینه',\n        foreground: 'رنگ متن',\n        transparent: 'بی رنگ',\n        setTransparent: 'تنظیم حالت بی رنگ',\n        reset: 'بازنشاندن',\n        resetToDefault: 'حالت پیش فرض'\n      },\n      shortcut: {\n        shortcuts: 'دکمه های میان بر',\n        close: 'بستن',\n        textFormatting: 'فرمت متن',\n        action: 'عملیات',\n        paragraphFormatting: 'فرمت پاراگراف',\n        documentStyle: 'استیل سند'\n      },\n      history: {\n        undo: 'واچیدن',\n        redo: 'بازچیدن'\n      }\n    }\n  });\n})(jQuery);\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-fi-FI.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'fi-FI': {\n      font: {\n        bold: 'Lihavoitu',\n        italic: 'Kursiivi',\n        underline: 'Alleviivaa',\n        clear: 'Tyhjennä muotoilu',\n        height: 'Riviväli',\n        name: 'Kirjasintyyppi',\n        strikethrough: 'Yliviivaus',\n        size: 'Kirjasinkoko'\n      },\n      image: {\n        image: 'Kuva',\n        insert: 'Lisää kuva',\n        resizeFull: 'Koko leveys',\n        resizeHalf: 'Puolikas leveys',\n        resizeQuarter: 'Neljäsosa leveys',\n        floatLeft: 'Sijoita vasemmalle',\n        floatRight: 'Sijoita oikealle',\n        floatNone: 'Ei sijoitusta',\n        dragImageHere: 'Vedä kuva tähän',\n        selectFromFiles: 'Valitse tiedostoista',\n        url: 'URL-osoitteen mukaan',\n        remove: 'Poista kuva'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Linkki videoon',\n        insert: 'Lisää video',\n        url: 'Videon URL-osoite?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)'\n      },\n      link: {\n        link: 'Linkki',\n        insert: 'Lisää linkki',\n        unlink: 'Poista linkki',\n        edit: 'Muokkaa',\n        textToDisplay: 'Näytettävä teksti',\n        url: 'Linkin URL-osoite?',\n        openInNewWindow: 'Avaa uudessa ikkunassa'\n      },\n      table: {\n        table: 'Taulukko'\n      },\n      hr: {\n        insert: 'Lisää vaakaviiva'\n      },\n      style: {\n        style: 'Tyyli',\n        p: 'Normaali',\n        blockquote: 'Lainaus',\n        pre: 'Koodi',\n        h1: 'Otsikko 1',\n        h2: 'Otsikko 2',\n        h3: 'Otsikko 3',\n        h4: 'Otsikko 4',\n        h5: 'Otsikko 5',\n        h6: 'Otsikko 6'\n      },\n      lists: {\n        unordered: 'Luettelomerkitty luettelo',\n        ordered: 'Numeroitu luettelo'\n      },\n      options: {\n        help: 'Ohje',\n        fullscreen: 'Koko näyttö',\n        codeview: 'HTML-näkymä'\n      },\n      paragraph: {\n        paragraph: 'Kappale',\n        outdent: 'Pienennä sisennystä',\n        indent: 'Suurenna sisennystä',\n        left: 'Tasaus vasemmalle',\n        center: 'Keskitä',\n        right: 'Tasaus oikealle',\n        justify: 'Tasaa'\n      },\n      color: {\n        recent: 'Viimeisin väri',\n        more: 'Lisää värejä',\n        background: 'Taustaväri',\n        foreground: 'Tekstin väri',\n        transparent: 'Läpinäkyvä',\n        setTransparent: 'Aseta läpinäkyväksi',\n        reset: 'Palauta',\n        resetToDefault: 'Palauta oletusarvoksi'\n      },\n      shortcut: {\n        shortcuts: 'Pikanäppäimet',\n        close: 'Sulje',\n        textFormatting: 'Tekstin muotoilu',\n        action: 'Toiminto',\n        paragraphFormatting: 'Kappaleen muotoilu',\n        documentStyle: 'Asiakirjan tyyli'\n      },\n      history: {\n        undo: 'Kumoa',\n        redo: 'Toista'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-fr-FR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'fr-FR': {\n      font: {\n        bold: 'Gras',\n        italic: 'Italique',\n        underline: 'Souligné',\n        clear: 'Effacer la mise en forme',\n        height: 'Interligne',\n        name: 'Famille de police',\n        strikethrough: 'Barré',\n        superscript: 'Exposant',\n        subscript: 'Indice',\n        size: 'Taille de police'\n      },\n      image: {\n        image: 'Image',\n        insert: 'Insérer une image',\n        resizeFull: 'Taille originale',\n        resizeHalf: 'Redimensionner à 50 %',\n        resizeQuarter: 'Redimensionner à 25 %',\n        floatLeft: 'Aligné à gauche',\n        floatRight: 'Aligné à droite',\n        floatNone: 'Pas d\\'alignement',\n        shapeRounded: 'Forme: Rectangle arrondie',\n        shapeCircle: 'Forme: Cercle',\n        shapeThumbnail: 'Forme: Vignette',\n        shapeNone: 'Forme: Aucune',\n        dragImageHere: 'Faites glisser une image ou un texte dans ce cadre',\n        dropImage: 'Lachez l\\'image ou le texte',\n        selectFromFiles: 'Choisir un fichier',\n        maximumFileSize: 'Taille de fichier maximale',\n        maximumFileSizeError: 'Taille maximale du fichier dépassée',\n        url: 'URL de l\\'image',\n        remove: 'Supprimer l\\'image'\n      },\n      video: {\n        video: 'Vidéo',\n        videoLink: 'Lien vidéo',\n        insert: 'Insérer une vidéo',\n        url: 'URL de la vidéo',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Lien',\n        insert: 'Insérer un lien',\n        unlink: 'Supprimer un lien',\n        edit: 'Modifier',\n        textToDisplay: 'Texte à afficher',\n        url: 'URL du lien',\n        openInNewWindow: 'Ouvrir dans une nouvelle fenêtre'\n      },\n      table: {\n        table: 'Tableau'\n      },\n      hr: {\n        insert: 'Insérer une ligne horizontale'\n      },\n      style: {\n        style: 'Style',\n        p: 'p',\n        blockquote: 'Citation',\n        pre: 'Code source',\n        h1: 'Titre 1',\n        h2: 'Titre 2',\n        h3: 'Titre 3',\n        h4: 'Titre 4',\n        h5: 'Titre 5',\n        h6: 'Titre 6'\n      },\n      lists: {\n        unordered: 'Liste à puces',\n        ordered: 'Liste numérotée'\n      },\n      options: {\n        help: 'Aide',\n        fullscreen: 'Plein écran',\n        codeview: 'Afficher le code HTML'\n      },\n      paragraph: {\n        paragraph: 'Paragraphe',\n        outdent: 'Diminuer le retrait',\n        indent: 'Augmenter le retrait',\n        left: 'Aligner à gauche',\n        center: 'Centrer',\n        right: 'Aligner à droite',\n        justify: 'Justifier'\n      },\n      color: {\n        recent: 'Dernière couleur sélectionnée',\n        more: 'Plus de couleurs',\n        background: 'Couleur de fond',\n        foreground: 'Couleur de police',\n        transparent: 'Transparent',\n        setTransparent: 'Définir la transparence',\n        reset: 'Restaurer',\n        resetToDefault: 'Restaurer la couleur par défaut'\n      },\n      shortcut: {\n        shortcuts: 'Raccourcis',\n        close: 'Fermer',\n        textFormatting: 'Mise en forme du texte',\n        action: 'Action',\n        paragraphFormatting: 'Mise en forme des paragraphes',\n        documentStyle: 'Style du document',\n        extraKeys: 'Touches supplémentaires'\n      },\n      history: {\n        undo: 'Annuler la dernière action',\n        redo: 'Restaurer la dernière action annulée'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-gl-ES.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'gl-ES': {\n      font: {\n        bold: 'Negrita',\n        italic: 'Cursiva',\n        underline: 'Subliñado',\n        clear: 'Quitar estilo de fonte',\n        height: 'Altura de liña',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        superscript: 'Superíndice',\n        subscript: 'Subíndice',\n        size: 'Tamaño da fonte'\n      },\n      image: {\n        image: 'Imaxe',\n        insert: 'Inserir imaxe',\n        resizeFull: 'Redimensionar a tamaño completo',\n        resizeHalf: 'Redimensionar á metade',\n        resizeQuarter: 'Redimensionar a un cuarto',\n        floatLeft: 'Flotar á esquerda',\n        floatRight: 'Flotar á dereita',\n        floatNone: 'Non flotar',\n        shapeRounded: 'Forma: Redondeado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Marco',\n        shapeNone: 'Forma: Ningunha',\n        dragImageHere: 'Arrastrar unha imaxe ou texto aquí',\n        dropImage: 'Solta a imaxe ou texto',\n        selectFromFiles: 'Seleccionar desde os arquivos',\n        maximumFileSize: 'Tamaño máximo do arquivo',\n        maximumFileSizeError: 'Superaches o tamaño máximo do arquivo.',\n        url: 'URL da imaxe',\n        remove: 'Eliminar imaxe'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Ligazón do vídeo',\n        insert: 'Insertar vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)'\n      },\n      link: {\n        link: 'Ligazón',\n        insert: 'Inserir Ligazón',\n        unlink: 'Quitar Ligazón',\n        edit: 'Editar',\n        textToDisplay: 'Texto para amosar',\n        url: 'Cara a que URL leva a ligazón?',\n        openInNewWindow: 'Abrir nunha nova xanela'\n      },\n      table: {\n        table: 'Táboa'\n      },\n      hr: {\n        insert: 'Inserir liña horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        normal: 'Normal',\n        blockquote: 'Cita',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista desordenada',\n        ordered: 'Lista ordenada'\n      },\n      options: {\n        help: 'Axuda',\n        fullscreen: 'Pantalla completa',\n        codeview: 'Ver código fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menos tabulación',\n        indent: 'Máis tabulación',\n        left: 'Aliñar á esquerda',\n        center: 'Aliñar ao centro',\n        right: 'Aliñar á dereita',\n        justify: 'Xustificar'\n      },\n      color: {\n        recent: 'Última cor',\n        more: 'Máis cores',\n        background: 'Cor de fondo',\n        foreground: 'Cor de fuente',\n        transparent: 'Transparente',\n        setTransparent: 'Establecer transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar por defecto'\n      },\n      shortcut: {\n        shortcuts: 'Atallos de teclado',\n        close: 'Pechar',\n        textFormatting: 'Formato de texto',\n        action: 'Acción',\n        paragraphFormatting: 'Formato de parágrafo',\n        documentStyle: 'Estilo de documento',\n        extraKeys: 'Teclas adicionais'\n      },\n      help : {\n        'insertParagraph': 'Inserir parágrafo',\n        'undo': 'Desfacer última acción',\n        'redo': 'Refacer última acción',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulación',\n        'bold': 'Establecer estilo negrita',\n        'italic': 'Establecer estilo cursiva',\n        'underline': 'Establecer estilo subliñado',\n        'strikethrough': 'Establecer estilo riscado',\n        'removeFormat': 'Limpar estilo',\n        'justifyLeft': 'Aliñar á esquerda',\n        'justifyCenter': 'Aliñar ao centro',\n        'justifyRight': 'Aliñar á dereita',\n        'justifyFull': 'Xustificar',\n        'insertUnorderedList': 'Inserir lista desordenada',\n        'insertOrderedList': 'Inserir lista ordenada',\n        'outdent': 'Reducir tabulación do parágrafo',\n        'indent': 'Aumentar tabulación do parágrafo',\n        'formatPara': 'Mudar estilo do bloque a parágrafo (etiqueta P)',\n        'formatH1': 'Mudar estilo do bloque a H1',\n        'formatH2': 'Mudar estilo do bloque a H2',\n        'formatH3': 'Mudar estilo do bloque a H3',\n        'formatH4': 'Mudar estilo do bloque a H4',\n        'formatH5': 'Mudar estilo do bloque a H5',\n        'formatH6': 'Mudar estilo do bloque a H6',\n        'insertHorizontalRule': 'Inserir liña horizontal',\n        'linkDialog.show': 'Amosar panel ligazóns'\n      },\n      history: {\n        undo: 'Desfacer',\n        redo: 'Refacer'\n      },\n      specialChar: {\n        specialChar: 'CARACTERES ESPECIAIS',\n        select: 'Selecciona Caracteres especiais'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-he-IL.js",
    "content": "﻿(function ($) {\n  $.extend($.summernote.lang, {\n    'he-IL': {\n      font: {\n        bold: 'מודגש',\n        italic: 'נטוי',\n        underline: 'קו תחתון',\n        clear: 'נקה עיצוב',\n        height: 'גובה',\n        name: 'גופן',\n        strikethrough: 'קו חוצה',\n        subscript: 'כתב תחתי',\n        superscript: 'כתב עילי',\n        size: 'גודל גופן'\n      },\n      image: {\n        image: 'תמונה',\n        insert: 'הוסף תמונה',\n        resizeFull: 'גודל מלא',\n        resizeHalf: 'להקטין לחצי',\n        resizeQuarter: 'להקטין לרבע',\n        floatLeft: 'יישור לשמאל',\n        floatRight: 'יישור לימין',\n        floatNone: 'ישר',\n        dragImageHere: 'גרור תמונה לכאן',\n        selectFromFiles: 'בחר מתוך קבצים',\n        url: 'נתיב לתמונה',\n        remove: 'הסר תמונה'\n      },\n      video: {\n        video: 'סרטון',\n        videoLink: 'קישור לסרטון',\n        insert: 'הוסף סרטון',\n        url: 'קישור לסרטון',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)'\n      },\n      link: {\n        link: 'קישור',\n        insert: 'הוסף קישור',\n        unlink: 'הסר קישור',\n        edit: 'ערוך',\n        textToDisplay: 'טקסט להציג',\n        url: 'קישור',\n        openInNewWindow: 'פתח בחלון חדש'\n      },\n      table: {\n        table: 'טבלה'\n      },\n      hr: {\n        insert: 'הוסף קו'\n      },\n      style: {\n        style: 'עיצוב',\n        p: 'טקסט רגיל',\n        blockquote: 'ציטוט',\n        pre: 'קוד',\n        h1: 'כותרת 1',\n        h2: 'כותרת 2',\n        h3: 'כותרת 3',\n        h4: 'כותרת 4',\n        h5: 'כותרת 5',\n        h6: 'כותרת 6'\n      },\n      lists: {\n        unordered: 'רשימת תבליטים',\n        ordered: 'רשימה ממוספרת'\n      },\n      options: {\n        help: 'עזרה',\n        fullscreen: 'מסך מלא',\n        codeview: 'תצוגת קוד'\n      },\n      paragraph: {\n        paragraph: 'פסקה',\n        outdent: 'הקטן כניסה',\n        indent: 'הגדל כניסה',\n        left: 'יישור לשמאל',\n        center: 'יישור למרכז',\n        right: 'יישור לימין',\n        justify: 'מיושר'\n      },\n      color: {\n        recent: 'צבע טקסט אחרון',\n        more: 'עוד צבעים',\n        background: 'צבע רקע',\n        foreground: 'צבע טקסט',\n        transparent: 'שקוף',\n        setTransparent: 'קבע כשקוף',\n        reset: 'איפוס',\n        resetToDefault: 'אפס לברירת מחדל'\n      },\n      shortcut: {\n        shortcuts: 'קיצורי מקלדת',\n        close: 'סגור',\n        textFormatting: 'עיצוב הטקסט',\n        action: 'פעולה',\n        paragraphFormatting: 'סגנונות פסקה',\n        documentStyle: 'עיצוב המסמך',\n        extraKeys: 'קיצורים נוספים'\n      },\n      history: {\n        undo: 'בטל פעולה',\n        redo: 'בצע שוב'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-hr-HR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'hr-HR': {\n      font: {\n        bold: 'Podebljano',\n        italic: 'Kurziv',\n        underline: 'Podvučeno',\n        clear: 'Ukloni stilove fonta',\n        height: 'Visina linije',\n        strikethrough: 'Precrtano',\n        size: 'Veličina fonta'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Ubaci sliku',\n        resizeFull: 'Puna veličina',\n        resizeHalf: 'Umanji na 50%',\n        resizeQuarter: 'Umanji na 25%',\n        floatLeft: 'Poravnaj lijevo',\n        floatRight: 'Poravnaj desno',\n        floatNone: 'Bez poravnanja',\n        dragImageHere: 'Povuci sliku ovdje',\n        selectFromFiles: 'Izaberi iz datoteke',\n        url: 'Adresa slike',\n        remove: 'Ukloni sliku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Veza na video',\n        insert: 'Ubaci video',\n        url: 'URL video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'\n      },\n      link: {\n        link: 'Veza',\n        insert: 'Ubaci vezu',\n        unlink: 'Ukloni vezu',\n        edit: 'Uredi',\n        textToDisplay: 'Tekst za prikaz',\n        url: 'Internet adresa',\n        openInNewWindow: 'Otvori u novom prozoru'\n      },\n      table: {\n        table: 'Tablica'\n      },\n      hr: {\n        insert: 'Ubaci horizontalnu liniju'\n      },\n      style: {\n        style: 'Stil',\n        p: 'pni',\n        blockquote: 'Citat',\n        pre: 'Kôd',\n        h1: 'Naslov 1',\n        h2: 'Naslov 2',\n        h3: 'Naslov 3',\n        h4: 'Naslov 4',\n        h5: 'Naslov 5',\n        h6: 'Naslov 6'\n      },\n      lists: {\n        unordered: 'Obična lista',\n        ordered: 'Numerirana lista'\n      },\n      options: {\n        help: 'Pomoć',\n        fullscreen: 'Preko cijelog ekrana',\n        codeview: 'Izvorni kôd'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Smanji uvlačenje',\n        indent: 'Povećaj uvlačenje',\n        left: 'Poravnaj lijevo',\n        center: 'Centrirano',\n        right: 'Poravnaj desno',\n        justify: 'Poravnaj obostrano'\n      },\n      color: {\n        recent: 'Posljednja boja',\n        more: 'Više boja',\n        background: 'Boja pozadine',\n        foreground: 'Boja teksta',\n        transparent: 'Prozirna',\n        setTransparent: 'Prozirna',\n        reset: 'Poništi',\n        resetToDefault: 'Podrazumijevana'\n      },\n      shortcut: {\n        shortcuts: 'Prečice s tipkovnice',\n        close: 'Zatvori',\n        textFormatting: 'Formatiranje teksta',\n        action: 'Akcija',\n        paragraphFormatting: 'Formatiranje paragrafa',\n        documentStyle: 'Stil dokumenta',\n        extraKeys: 'Dodatne kombinacije'\n      },\n      history: {\n        undo: 'Poništi',\n        redo: 'Ponovi'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-hu-HU.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'hu-HU': {\n      font: {\n        bold: 'Félkövér',\n        italic: 'Dőlt',\n        underline: 'Aláhúzott',\n        clear: 'Formázás törlése',\n        height: 'Sorköz',\n        name: 'Betűtípus',\n        strikethrough: 'Áthúzott',\n        size: 'Betűméret'\n      },\n      image: {\n        image: 'Kép',\n        insert: 'Kép beszúrása',\n        resizeFull: 'Átméretezés teljes méretre',\n        resizeHalf: 'Átméretezés felére',\n        resizeQuarter: 'Átméretezés negyedére',\n        floatLeft: 'Igazítás balra',\n        floatRight: 'Igazítás jobbra',\n        floatNone: 'Igazítás törlése',\n        dragImageHere: 'Ide húzhat képet vagy szöveget',\n        dropImage: 'Engedje el a képet vagy szöveget',\n        selectFromFiles: 'Fájlok kiválasztása',\n        url: 'Kép URL címe',\n        remove: 'Kép törlése'\n      },\n      video: {\n        video: 'Videó',\n        videoLink: 'Videó hivatkozás',\n        insert: 'Videó beszúrása',\n        url: 'Videó URL címe',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)'\n      },\n      link: {\n        link: 'Hivatkozás',\n        insert: 'Hivatkozás beszúrása',\n        unlink: 'Hivatkozás megszüntetése',\n        edit: 'Szerkesztés',\n        textToDisplay: 'Megjelenítendő szöveg',\n        url: 'Milyen URL címre hivatkozzon?',\n        openInNewWindow: 'Megnyitás új ablakban'\n      },\n      table: {\n        table: 'Táblázat'\n      },\n      hr: {\n        insert: 'Elválasztó vonal beszúrása'\n      },\n      style: {\n        style: 'Stílus',\n        p: 'Normál',\n        blockquote: 'Idézet',\n        pre: 'Kód',\n        h1: 'Fejléc 1',\n        h2: 'Fejléc 2',\n        h3: 'Fejléc 3',\n        h4: 'Fejléc 4',\n        h5: 'Fejléc 5',\n        h6: 'Fejléc 6'\n      },\n      lists: {\n        unordered: 'Listajeles lista',\n        ordered: 'Számozott lista'\n      },\n      options: {\n        help: 'Súgó',\n        fullscreen: 'Teljes képernyő',\n        codeview: 'Kód nézet'\n      },\n      paragraph: {\n        paragraph: 'Bekezdés',\n        outdent: 'Behúzás csökkentése',\n        indent: 'Behúzás növelése',\n        left: 'Igazítás balra',\n        center: 'Igazítás középre',\n        right: 'Igazítás jobbra',\n        justify: 'Sorkizárt'\n      },\n      color: {\n        recent: 'Jelenlegi szín',\n        more: 'További színek',\n        background: 'Háttérszín',\n        foreground: 'Betűszín',\n        transparent: 'Átlátszó',\n        setTransparent: 'Átlászóság beállítása',\n        reset: 'Visszaállítás',\n        resetToDefault: 'Alaphelyzetbe állítás'\n      },\n      shortcut: {\n        shortcuts: 'Gyorsbillentyű',\n        close: 'Bezárás',\n        textFormatting: 'Szöveg formázása',\n        action: 'Művelet',\n        paragraphFormatting: 'Bekezdés formázása',\n        documentStyle: 'Dokumentumstílus'\n      },\n      help: {\n        'insertParagraph': 'Új bekezdés',\n        'undo': 'Visszavonás',\n        'redo': 'Újra',\n        'tab': 'Behúzás növelése',\n        'untab': 'Behúzás csökkentése',\n        'bold': 'Félkövérre állítás',\n        'italic': 'Dőltre állítás',\n        'underline': 'Aláhúzás',\n        'strikethrough': 'Áthúzás',\n        'removeFormat': 'Formázás törlése',\n        'justifyLeft': 'Balra igazítás',\n        'justifyCenter': 'Középre igazítás',\n        'justifyRight': 'Jobbra igazítás',\n        'justifyFull': 'Sorkizárt',\n        'insertUnorderedList': 'Számozatlan lista be/ki',\n        'insertOrderedList': 'Számozott lista be/ki',\n        'outdent': 'Jelenlegi bekezdés behúzásának megszüntetése',\n        'indent': 'Jelenlegi bekezdés behúzása',\n        'formatPara': 'Blokk formázása bekezdésként (P tag)',\n        'formatH1': 'Blokk formázása, mint Fejléc 1',\n        'formatH2': 'Blokk formázása, mint Fejléc 2',\n        'formatH3': 'Blokk formázása, mint Fejléc 3',\n        'formatH4': 'Blokk formázása, mint Fejléc 4',\n        'formatH5': 'Blokk formázása, mint Fejléc 5',\n        'formatH6': 'Blokk formázása, mint Fejléc 6',\n        'insertHorizontalRule': 'Vízszintes vonal beszúrása',\n        'linkDialog.show': 'Link párbeszédablak megjelenítése'\n      },\n      history: {\n        undo: 'Visszavonás',\n        redo: 'Újra'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-id-ID.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'id-ID': {\n      font: {\n        bold: 'Tebal',\n        italic: 'Miring',\n        underline: 'Garis bawah',\n        clear: 'Bersihkan gaya',\n        height: 'Jarak baris',\n        strikethrough: 'Coret',\n        size: 'Ukuran font'\n      },\n      image: {\n        image: 'Gambar',\n        insert: 'Sisipkan gambar',\n        resizeFull: 'Ukuran penuh',\n        resizeHalf: 'Ukuran 50%',\n        resizeQuarter: 'Ukuran 25%',\n        floatLeft: 'Rata kiri',\n        floatRight: 'Rata kanan',\n        floatNone: 'Tidak ada perataan',\n        dragImageHere: 'Tarik gambar pada area ini',\n        selectFromFiles: 'Pilih gambar dari berkas',\n        url: 'URL gambar',\n        remove: 'Hapus Gambar'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link video',\n        insert: 'Sisipkan video',\n        url: 'Tautan video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)'\n      },\n      link: {\n        link: 'Tautan',\n        insert: 'Tambah tautan',\n        unlink: 'Hapus tautan',\n        edit: 'Edit',\n        textToDisplay: 'Tampilan teks',\n        url: 'Tautan tujuan',\n        openInNewWindow: 'Buka di jendela baru'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Masukkan garis horizontal'\n      },\n      style: {\n        style: 'Gaya',\n        p: 'p',\n        blockquote: 'Kutipan',\n        pre: 'Kode',\n        h1: 'Heading 1',\n        h2: 'Heading 2',\n        h3: 'Heading 3',\n        h4: 'Heading 4',\n        h5: 'Heading 5',\n        h6: 'Heading 6'\n      },\n      lists: {\n        unordered: 'Pencacahan',\n        ordered: 'Penomoran'\n      },\n      options: {\n        help: 'Bantuan',\n        fullscreen: 'Layar penuh',\n        codeview: 'Kode HTML'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Outdent',\n        indent: 'Indent',\n        left: 'Rata kiri',\n        center: 'Rata tengah',\n        right: 'Rata kanan',\n        justify: 'Rata kanan kiri'\n      },\n      color: {\n        recent: 'Warna sekarang',\n        more: 'Selengkapnya',\n        background: 'Warna latar',\n        foreground: 'Warna font',\n        transparent: 'Transparan',\n        setTransparent: 'Atur transparansi',\n        reset: 'Atur ulang',\n        resetToDefault: 'Kembalikan kesemula'\n      },\n      shortcut: {\n        shortcuts: 'Jalan pintas',\n        close: 'Keluar',\n        textFormatting: 'Format teks',\n        action: 'Aksi',\n        paragraphFormatting: 'Format paragraf',\n        documentStyle: 'Gaya dokumen'\n      },\n      history: {\n        undo: 'Kembali',\n        redo: 'Ulang'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-it-IT.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'it-IT': {\n      font: {\n        bold: 'Testo in grassetto',\n        italic: 'Testo in corsivo',\n        underline: 'Testo sottolineato',\n        clear: 'Elimina la formattazione del testo',\n        height: 'Altezza della linea di testo',\n        name: 'Famiglia Font',\n        strikethrough: 'Testo barrato',\n        size: 'Dimensione del carattere'\n      },\n      image: {\n        image: 'Immagine',\n        insert: 'Inserisci Immagine',\n        resizeFull: 'Dimensioni originali',\n        resizeHalf: 'Ridimensiona al 50%',\n        resizeQuarter: 'Ridimensiona al 25%',\n        floatLeft: 'Posiziona a sinistra',\n        floatRight: 'Posiziona a destra',\n        floatNone: 'Nessun posizionamento',\n        dragImageHere: 'Trascina qui un\\'immagine',\n        selectFromFiles: 'Scegli dai Documenti',\n        url: 'URL dell\\'immagine',\n        remove: 'Rimuovi immagine'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Collegamento ad un Video',\n        insert: 'Inserisci Video',\n        url: 'URL del Video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Collegamento',\n        insert: 'Inserisci Collegamento',\n        unlink: 'Elimina collegamento',\n        edit: 'Modifica collegamento',\n        textToDisplay: 'Testo del collegamento',\n        url: 'URL del collegamento',\n        openInNewWindow: 'Apri in una nuova finestra'\n      },\n      table: {\n        table: 'Tabella'\n      },\n      hr: {\n        insert: 'Inserisce una linea di separazione'\n      },\n      style: {\n        style: 'Stili',\n        p: 'pe',\n        blockquote: 'Citazione',\n        pre: 'Codice',\n        h1: 'Titolo 1',\n        h2: 'Titolo 2',\n        h3: 'Titolo 3',\n        h4: 'Titolo 4',\n        h5: 'Titolo 5',\n        h6: 'Titolo 6'\n      },\n      lists: {\n        unordered: 'Elenco non ordinato',\n        ordered: 'Elenco ordinato'\n      },\n      options: {\n        help: 'Aiuto',\n        fullscreen: 'Modalità a tutto schermo',\n        codeview: 'Visualizza codice'\n      },\n      paragraph: {\n        paragraph: 'Paragrafo',\n        outdent: 'Diminuisce il livello di rientro',\n        indent: 'Aumenta il livello di rientro',\n        left: 'Allinea a sinistra',\n        center: 'Centra',\n        right: 'Allinea a destra',\n        justify: 'Giustifica (allinea a destra e sinistra)'\n      },\n      color: {\n        recent: 'Ultimo colore utilizzato',\n        more: 'Altri colori',\n        background: 'Colore di sfondo',\n        foreground: 'Colore',\n        transparent: 'Trasparente',\n        setTransparent: 'Trasparente',\n        reset: 'Reimposta',\n        resetToDefault: 'Reimposta i colori'\n      },\n      shortcut: {\n        shortcuts: 'Scorciatoie da tastiera',\n        close: 'Chiudi',\n        textFormatting: 'Formattazione testo',\n        action: 'Azioni',\n        paragraphFormatting: 'Formattazione paragrafo',\n        documentStyle: 'Stili'\n      },\n      history: {\n        undo: 'Annulla',\n        redo: 'Ripristina'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-ja-JP.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ja-JP': {\n      font: {\n        bold: '太字',\n        italic: '斜体',\n        underline: '下線',\n        clear: 'クリア',\n        height: '文字高',\n        name: 'フォント',\n        strikethrough: '取り消し線',\n        size: '大きさ'\n      },\n      image: {\n        image: '画像',\n        insert: '画像挿入',\n        resizeFull: '最大化',\n        resizeHalf: '1/2',\n        resizeQuarter: '1/4',\n        floatLeft: '左寄せ',\n        floatRight: '右寄せ',\n        floatNone: '寄せ解除',\n        dragImageHere: 'ここに画像をドラッグしてください',\n        selectFromFiles: '画像ファイルを選ぶ',\n        url: 'URLから画像を挿入する',\n        remove: '画像を削除する'\n      },\n      video: {\n        video: '動画',\n        videoLink: '動画リンク',\n        insert: '動画挿入',\n        url: '動画のURL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)'\n      },\n      link: {\n        link: 'リンク',\n        insert: 'リンク挿入',\n        unlink: 'リンク解除',\n        edit: '編集',\n        textToDisplay: 'リンク文字列',\n        url: 'URLを入力してください',\n        openInNewWindow: '新しいウィンドウで開く'\n      },\n      table: {\n        table: 'テーブル'\n      },\n      hr: {\n        insert: '水平線の挿入'\n      },\n      style: {\n        style: 'スタイル',\n        p: '標準',\n        blockquote: '引用',\n        pre: 'コード',\n        h1: '見出し1',\n        h2: '見出し2',\n        h3: '見出し3',\n        h4: '見出し4',\n        h5: '見出し5',\n        h6: '見出し6'\n      },\n      lists: {\n        unordered: '通常リスト',\n        ordered: '番号リスト'\n      },\n      options: {\n        help: 'ヘルプ',\n        fullscreen: 'フルスクリーン',\n        codeview: 'コード表示'\n      },\n      paragraph: {\n        paragraph: '文章',\n        outdent: '字上げ',\n        indent: '字下げ',\n        left: '左寄せ',\n        center: '中央寄せ',\n        right: '右寄せ',\n        justify: '均等割付'\n      },\n      color: {\n        recent: '現在の色',\n        more: 'もっと見る',\n        background: '背景色',\n        foreground: '文字色',\n        transparent: '透過率',\n        setTransparent: '透過率を設定',\n        reset: '標準',\n        resetToDefault: '標準に戻す'\n      },\n      shortcut: {\n        shortcuts: 'ショートカット',\n        close: '閉じる',\n        textFormatting: '文字フォーマット',\n        action: 'アクション',\n        paragraphFormatting: '文章フォーマット',\n        documentStyle: 'ドキュメント形式'\n      },\n      history: {\n        undo: '元に戻す',\n        redo: 'やり直す'\n      },\n      help: {\n        'insertParagraph': '改行挿入',\n        'undo': '一旦、行った操作を戻す',\n        'redo': '最後のコマンドをやり直す',\n        'tab': 'Tab',\n        'untab': 'タブ戻し',\n        'bold': '太文字',\n        'italic': '斜体',\n        'underline': '下線',\n        'strikethrough': '取り消し線',\n        'removeFormat': '装飾を戻す',\n        'justifyLeft': '左寄せ',\n        'justifyCenter': '真ん中寄せ',\n        'justifyRight': '右寄せ',\n        'justifyFull': 'すべてを整列',\n        'insertUnorderedList': '行頭に●を挿入',\n        'insertOrderedList': '行頭に番号を挿入',\n        'outdent': '字下げを戻す（アウトデント）',\n        'indent': '字下げする（インデント）',\n        'formatPara': '段落(P tag)指定',\n        'formatH1': 'H1指定',\n        'formatH2': 'H2指定',\n        'formatH3': 'H3指定',\n        'formatH4': 'H4指定',\n        'formatH5': 'H5指定',\n        'formatH6': 'H6指定',\n        'insertHorizontalRule': '&lt;hr /&gt;を挿入',\n        'linkDialog.show': 'リンク挿入'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-ko-KR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ko-KR': {\n      font: {\n        bold: '굵게',\n        italic: '기울임꼴',\n        underline: '밑줄',\n        clear: '글자 효과 없애기',\n        height: '줄간격',\n        name: '글꼴',\n        superscript: '위 첨자',\n        subscript: '아래 첨자',\n        strikethrough: '취소선',\n        size: '글자 크기'\n      },\n      image: {\n        image: '사진',\n        insert: '사진 추가',\n        resizeFull: '100% 크기로 변경',\n        resizeHalf: '50% 크기로 변경',\n        resizeQuarter: '25% 크기로 변경',\n        floatLeft: '왼쪽 정렬',\n        floatRight: '오른쪽 정렬',\n        floatNone: '정렬하지 않음',\n        shapeRounded: '스타일: 둥근 모서리',\n        shapeCircle: '스타일: 원형',\n        shapeThumbnail: '스타일: 액자',\n        shapeNone: '스타일: 없음',\n        dragImageHere: '텍스트 혹은 사진을 이곳으로 끌어오세요',\n        dropImage: '텍스트 혹은 사진을 내려놓으세요',\n        selectFromFiles: '파일 선택',\n        url: '사진 URL',\n        remove: '사진 삭제'\n      },\n      video: {\n        video: '동영상',\n        videoLink: '동영상 링크',\n        insert: '동영상 추가',\n        url: '동영상 URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)'\n      },\n      link: {\n        link: '링크',\n        insert: '링크 추가',\n        unlink: '링크 삭제',\n        edit: '수정',\n        textToDisplay: '링크에 표시할 내용',\n        url: '이동할 URL',\n        openInNewWindow: '새창으로 열기'\n      },\n      table: {\n        table: '테이블'\n      },\n      hr: {\n        insert: '구분선 추가'\n      },\n      style: {\n        style: '스타일',\n        p: '본문',\n        blockquote: '인용구',\n        pre: '코드',\n        h1: '제목 1',\n        h2: '제목 2',\n        h3: '제목 3',\n        h4: '제목 4',\n        h5: '제목 5',\n        h6: '제목 6'\n      },\n      lists: {\n        unordered: '글머리 기호',\n        ordered: '번호 매기기'\n      },\n      options: {\n        help: '도움말',\n        fullscreen: '전체 화면',\n        codeview: '코드 보기'\n      },\n      paragraph: {\n        paragraph: '문단 정렬',\n        outdent: '내어쓰기',\n        indent: '들여쓰기',\n        left: '왼쪽 정렬',\n        center: '가운데 정렬',\n        right: '오른쪽 정렬',\n        justify: '양쪽 정렬'\n      },\n      color: {\n        recent: '마지막으로 사용한 색',\n        more: '다른 색 선택',\n        background: '배경색',\n        foreground: '글자색',\n        transparent: '투명',\n        setTransparent: '투명',\n        reset: '취소',\n        resetToDefault: '기본 값으로 변경'\n      },\n      shortcut: {\n        shortcuts: '키보드 단축키',\n        close: '닫기',\n        textFormatting: '글자 스타일 적용',\n        action: '기능',\n        paragraphFormatting: '문단 스타일 적용',\n        documentStyle: '문서 스타일 적용'\n      },\n      history: {\n        undo: '실행 취소',\n        redo: '다시 실행'\n      },\n      specialChar: {\n        specialChar: '특수문자',\n        select: '특수문자를 선택하세요'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-lt-LT.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'lt-LT': {\n      font: {\n        bold: 'Paryškintas',\n        italic: 'Kursyvas',\n        underline: 'Pabrėžtas',\n        clear: 'Be formatavimo',\n        height: 'Eilutės aukštis',\n        name: 'Šrifto pavadinimas',\n        strikethrough: 'Perbrauktas',\n        superscript: 'Viršutinis',\n        subscript: 'Indeksas',\n        size: 'Šrifto dydis'\n      },\n      image: {\n        image: 'Paveikslėlis',\n        insert: 'Įterpti paveikslėlį',\n        resizeFull: 'Pilnas dydis',\n        resizeHalf: 'Sumažinti dydį 50%',\n        resizeQuarter: 'Sumažinti dydį 25%',\n        floatLeft: 'Kairinis lygiavimas',\n        floatRight: 'Dešininis lygiavimas',\n        floatNone: 'Jokio lygiavimo',\n        shapeRounded: 'Forma: apvalūs kraštai',\n        shapeCircle: 'Forma: apskritimas',\n        shapeThumbnail: 'Forma: miniatiūra',\n        shapeNone: 'Forma: jokia',\n        dragImageHere: 'Vilkite paveikslėlį čia',\n        selectFromFiles: 'Pasirinkite failą',\n        maximumFileSize: 'Maskimalus failo dydis',\n        maximumFileSizeError: 'Maskimalus failo dydis viršytas!',\n        url: 'Paveikslėlio URL adresas',\n        remove: 'Ištrinti paveikslėlį'\n      },\n      link: {\n        link: 'Nuoroda',\n        insert: 'Įterpti nuorodą',\n        unlink: 'Pašalinti nuorodą',\n        edit: 'Redaguoti',\n        textToDisplay: 'Rodomas tekstas',\n        url: 'Koks URL adresas yra susietas?',\n        openInNewWindow: 'Atidaryti naujame lange'\n      },\n      table: {\n        table: 'Lentelė'\n      },\n      hr: {\n        insert: 'Įterpti horizontalią liniją'\n      },\n      style: {\n        style: 'Stilius',\n        p: 'pus',\n        blockquote: 'Citata',\n        pre: 'Kodas',\n        h1: 'Antraštė 1',\n        h2: 'Antraštė 2',\n        h3: 'Antraštė 3',\n        h4: 'Antraštė 4',\n        h5: 'Antraštė 5',\n        h6: 'Antraštė 6'\n      },\n      lists: {\n        unordered: 'Suženklintasis sąrašas',\n        ordered: 'Sunumeruotas sąrašas'\n      },\n      options: {\n        help: 'Pagalba',\n        fullscreen: 'Viso ekrano režimas',\n        codeview: 'HTML kodo peržiūra'\n      },\n      paragraph: {\n        paragraph: 'Pastraipa',\n        outdent: 'Sumažinti įtrauką',\n        indent: 'Padidinti įtrauką',\n        left: 'Kairinė lygiuotė',\n        center: 'Centrinė lygiuotė',\n        right: 'Dešininė lygiuotė',\n        justify: 'Abipusis išlyginimas'\n      },\n      color: {\n        recent: 'Paskutinė naudota spalva',\n        more: 'Daugiau spalvų',\n        background: 'Fono spalva',\n        foreground: 'Šrifto spalva',\n        transparent: 'Permatoma',\n        setTransparent: 'Nustatyti skaidrumo intensyvumą',\n        reset: 'Atkurti',\n        resetToDefault: 'Atstatyti numatytąją spalvą'\n      },\n      shortcut: {\n        shortcuts: 'Spartieji klavišai',\n        close: 'Uždaryti',\n        textFormatting: 'Teksto formatavimas',\n        action: 'Veiksmas',\n        paragraphFormatting: 'Pastraipos formatavimas',\n        documentStyle: 'Dokumento stilius',\n        extraKeys: 'Papildomi klavišų deriniai'\n      },\n      history: {\n        undo: 'Anuliuoti veiksmą',\n        redo: 'Perdaryti veiksmą'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-lt-LV.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'lv-LV': {\n      font: {\n        bold: 'Treknraksts',\n        italic: 'Kursīvs',\n        underline: 'Pasvītrots',\n        clear: 'Noņemt formatējumu',\n        height: 'Līnijas augstums',\n        name: 'Fonts',\n        strikethrough: 'Nosvītrots',\n        superscript: 'Augšraksts',\n        subscript: 'Apakšraksts',\n        size: 'Fonta lielums'\n      },\n      image: {\n        image: 'Attēls',\n        insert: 'Ievietot attēlu',\n        resizeFull: 'Pilns izmērts',\n        resizeHalf: 'Samazināt 50%',\n        resizeQuarter: 'Samazināt 25%',\n        floatLeft: 'Līdzināt pa kreisi',\n        floatRight: 'Līdzināt pa labi',\n        floatNone: 'Nelīdzināt',\n        shapeRounded: 'Forma: apaļām malām',\n        shapeCircle: 'Forma: aplis',\n        shapeThumbnail: 'Forma: rāmītis',\n        shapeNone: 'Forma: orģināla',\n        dragImageHere: 'Ievēlciet attēlu šeit',\n        selectFromFiles: 'Izvēlēties failu',\n        maximumFileSize: 'Maksimālais faila izmērs',\n        maximumFileSizeError: 'Faila izmērs pārāk liels!',\n        url: 'Attēla URL',\n        remove: 'Dzēst attēlu'\n      },\n      link: {\n        link: 'Saite',\n        insert: 'Ievietot saiti',\n        unlink: 'Noņemt saiti',\n        edit: 'Rediģēt',\n        textToDisplay: 'Saites saturs',\n        url: 'Koks URL adresas yra susietas?',\n        openInNewWindow: 'Atvērt jaunā logā'\n      },\n      table: {\n        table: 'Tabula'\n      },\n      hr: {\n        insert: 'Ievietot līniju'\n      },\n      style: {\n        style: 'Stils',\n        p: 'Parasts',\n        blockquote: 'Citāts',\n        pre: 'Kods',\n        h1: 'Virsraksts h1',\n        h2: 'Virsraksts h2',\n        h3: 'Virsraksts h3',\n        h4: 'Virsraksts h4',\n        h5: 'Virsraksts h5',\n        h6: 'Virsraksts h6'\n      },\n      lists: {\n        unordered: 'Nenumurēts saraksts',\n        ordered: 'Numurēts saraksts'\n      },\n      options: {\n        help: 'Palīdzība',\n        fullscreen: 'Pa visu ekrānu',\n        codeview: 'HTML kods'\n      },\n      paragraph: {\n        paragraph: 'Paragrāfs',\n        outdent: 'Samazināt atkāpi',\n        indent: 'Palielināt atkāpi',\n        left: 'Līdzināt pa kreisi',\n        center: 'Centrēt',\n        right: 'Līdzināt pa labi',\n        justify: 'Līdzināt gar abām malām'\n      },\n      color: {\n        recent: 'Nesen izmantotās',\n        more: 'Citas krāsas',\n        background: 'Fona krāsa',\n        foreground: 'Fonta krāsa',\n        transparent: 'Caurspīdīgs',\n        setTransparent: 'Iestatīt caurspīdīgumu',\n        reset: 'Atjaunot',\n        resetToDefault: 'Atjaunot noklusējumu'\n      },\n      shortcut: {\n        shortcuts: 'Saīsnes',\n        close: 'Aizvērt',\n        textFormatting: 'Teksta formatēšana',\n        action: 'Darbība',\n        paragraphFormatting: 'Paragrāfa formatēšana',\n        documentStyle: 'Dokumenta stils',\n        extraKeys: 'Citas taustiņu kombinācijas'\n      },\n      history: {\n        undo: 'Atsauks (undo)',\n        redo: 'Atkārtot (redo)'\n      },\n      help: {\n        insertParagraph: 'Ievietot Paragrāfu',\n        undo: 'Atcelt iepriekšējo darbību',\n        redo: 'Atkārtot atcelto darbību',\n        tab: 'Atkāpe',\n        untab: 'Samazināt atkāpi',\n        bold: 'Pārvērst tekstu treknrakstā',\n        italic: 'Pārvērst tekstu slīprakstā (kursīvā)',\n        underline: 'Pasvītrot tekstu',\n        strikethrough: 'Nosvītrot tekstu',\n        removeFormat: 'Notīrīt stilu no teksta',\n        justifyLeft: 'Līdzīnāt saturu pa kreisi',\n        justifyCenter: 'Centrēt saturu',\n        justifyRight: 'Līdzīnāt saturu pa labi',\n        justifyFull: 'Izlīdzināt saturu gar abām malām',\n        insertUnorderedList: 'Ievietot nenumurētu sarakstu',\n        insertOrderedList: 'Ievietot numurētu sarakstu',\n        outdent: 'Samazināt/noņemt atkāpi paragrāfam',\n        indent: 'Uzlikt atkāpi paragrāfam',\n        formatPara: 'Mainīt bloka tipu uz (p) Paragrāfu',\n        formatH1: 'Mainīt bloka tipu uz virsrakstu H1',\n        formatH2: 'Mainīt bloka tipu uz virsrakstu H2',\n        formatH3: 'Mainīt bloka tipu uz virsrakstu H3',\n        formatH4: 'Mainīt bloka tipu uz virsrakstu H4',\n        formatH5: 'Mainīt bloka tipu uz virsrakstu H5',\n        formatH6: 'Mainīt bloka tipu uz virsrakstu H6',\n        insertHorizontalRule: 'Ievietot horizontālu līniju',\n        'linkDialog.show': 'Parādīt saites logu'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-nb-NO.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'nb-NO': {\n      font: {\n        bold: 'Fet',\n        italic: 'Kursiv',\n        underline: 'Understrek',\n        clear: 'Fjern formatering',\n        height: 'Linjehøyde',\n        name: 'Skrifttype',\n        strikethrough: 'Gjennomstrek',\n        size: 'Skriftstørrelse'\n      },\n      image: {\n        image: 'Bilde',\n        insert: 'Sett inn bilde',\n        resizeFull: 'Sett full størrelse',\n        resizeHalf: 'Sett halv størrelse',\n        resizeQuarter: 'Sett kvart størrelse',\n        floatLeft: 'Flyt til venstre',\n        floatRight: 'Flyt til høyre',\n        floatNone: 'Fjern flyt',\n        dragImageHere: 'Dra et bilde hit',\n        selectFromFiles: 'Velg fra filer',\n        url: 'Bilde-URL',\n        remove: 'Fjern bilde'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Videolenke',\n        insert: 'Sett inn video',\n        url: 'Video-URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Lenke',\n        insert: 'Sett inn lenke',\n        unlink: 'Fjern lenke',\n        edit: 'Rediger',\n        textToDisplay: 'Visningstekst',\n        url: 'Til hvilken URL skal denne lenken peke?',\n        openInNewWindow: 'Åpne i nytt vindu'\n      },\n      table: {\n        table: 'Tabell'\n      },\n      hr: {\n        insert: 'Sett inn horisontal linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Sitat',\n        pre: 'Kode',\n        h1: 'Overskrift 1',\n        h2: 'Overskrift 2',\n        h3: 'Overskrift 3',\n        h4: 'Overskrift 4',\n        h5: 'Overskrift 5',\n        h6: 'Overskrift 6'\n      },\n      lists: {\n        unordered: 'Punktliste',\n        ordered: 'Nummerert liste'\n      },\n      options: {\n        help: 'Hjelp',\n        fullscreen: 'Fullskjerm',\n        codeview: 'HTML-visning'\n      },\n      paragraph: {\n        paragraph: 'Avsnitt',\n        outdent: 'Tilbakerykk',\n        indent: 'Innrykk',\n        left: 'Venstrejustert',\n        center: 'Midtstilt',\n        right: 'Høyrejustert',\n        justify: 'Blokkjustert'\n      },\n      color: {\n        recent: 'Nylig valgt farge',\n        more: 'Flere farger',\n        background: 'Bakgrunnsfarge',\n        foreground: 'Skriftfarge',\n        transparent: 'Gjennomsiktig',\n        setTransparent: 'Sett gjennomsiktig',\n        reset: 'Nullstill',\n        resetToDefault: 'Nullstill til standard'\n      },\n      shortcut: {\n        shortcuts: 'Hurtigtaster',\n        close: 'Lukk',\n        textFormatting: 'Tekstformatering',\n        action: 'Handling',\n        paragraphFormatting: 'Avsnittsformatering',\n        documentStyle: 'Dokumentstil'\n      },\n      history: {\n        undo: 'Angre',\n        redo: 'Gjør om'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-nl-NL.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'nl-NL': {\n      font: {\n        bold: 'Vet',\n        italic: 'Cursief',\n        underline: 'Onderstrepen',\n        clear: 'Stijl verwijderen',\n        height: 'Regelhoogte',\n        name: 'Lettertype',\n        strikethrough: 'Doorhalen',\n        size: 'Tekstgrootte'\n      },\n      image: {\n        image: 'Afbeelding',\n        insert: 'Afbeelding invoegen',\n        resizeFull: 'Volledige breedte',\n        resizeHalf: 'Halve breedte',\n        resizeQuarter: 'Kwart breedte',\n        floatLeft: 'Links uitlijnen',\n        floatRight: 'Rechts uitlijnen',\n        floatNone: 'Geen uitlijning',\n        dragImageHere: 'Sleep hier een afbeelding naar toe',\n        selectFromFiles: 'Selecteer een bestand',\n        url: 'URL van de afbeelding',\n        remove: 'Verwijder afbeelding'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video link',\n        insert: 'Video invoegen',\n        url: 'URL van de video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Link invoegen',\n        unlink: 'Link verwijderen',\n        edit: 'Wijzigen',\n        textToDisplay: 'Tekst van link',\n        url: 'Naar welke URL moet deze link verwijzen?',\n        openInNewWindow: 'Open in nieuw venster'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Horizontale lijn invoegen'\n      },\n      style: {\n        style: 'Stijl',\n        p: 'Normaal',\n        blockquote: 'Quote',\n        pre: 'Code',\n        h1: 'Kop 1',\n        h2: 'Kop 2',\n        h3: 'Kop 3',\n        h4: 'Kop 4',\n        h5: 'Kop 5',\n        h6: 'Kop 6'\n      },\n      lists: {\n        unordered: 'Ongeordende lijst',\n        ordered: 'Geordende lijst'\n      },\n      options: {\n        help: 'Help',\n        fullscreen: 'Volledig scherm',\n        codeview: 'Bekijk Code'\n      },\n      paragraph: {\n        paragraph: 'Paragraaf',\n        outdent: 'Inspringen verkleinen',\n        indent: 'Inspringen vergroten',\n        left: 'Links uitlijnen',\n        center: 'Centreren',\n        right: 'Rechts uitlijnen',\n        justify: 'Uitvullen'\n      },\n      color: {\n        recent: 'Recente kleur',\n        more: 'Meer kleuren',\n        background: 'Achtergrond kleur',\n        foreground: 'Tekst kleur',\n        transparent: 'Transparant',\n        setTransparent: 'Transparant',\n        reset: 'Standaard',\n        resetToDefault: 'Standaard kleur'\n      },\n      shortcut: {\n        shortcuts: 'Toetsencombinaties',\n        close: 'sluiten',\n        textFormatting: 'Tekststijlen',\n        action: 'Acties',\n        paragraphFormatting: 'Paragraafstijlen',\n        documentStyle: 'Documentstijlen'\n      },\n      history: {\n        undo: 'Ongedaan maken',\n        redo: 'Opnieuw doorvoeren'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-pl-PL.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'pl-PL': {\n      font: {\n        bold: 'Pogrubienie',\n        italic: 'Pochylenie',\n        underline: 'Podkreślenie',\n        clear: 'Usuń formatowanie',\n        height: 'Interlinia',\n        name: 'Czcionka',\n        strikethrough: 'Przekreślenie',\n        size: 'Rozmiar'\n      },\n      image: {\n        image: 'Grafika',\n        insert: 'Wstaw grafikę',\n        resizeFull: 'Zmień rozmiar na 100%',\n        resizeHalf: 'Zmień rozmiar na 50%',\n        resizeQuarter: 'Zmień rozmiar na 25%',\n        floatLeft: 'Po lewej',\n        floatRight: 'Po prawej',\n        floatNone: 'Równo z tekstem',\n        shapeRounded: 'Kształt: zaokrąglone',\n        shapeCircle: 'Kształt: okrąg',\n        shapeThumbnail: 'Kształt: miniatura',\n        shapeNone: 'Kształt: brak',\n        dragImageHere: 'Przeciągnij grafikę lub tekst tutaj',\n        dropImage: 'Przeciągnij grafikę lub tekst',\n        selectFromFiles: 'Wybierz z dysku',\n        maximumFileSize: 'Limit wielkości pliku',\n        maximumFileSizeError: 'Przekroczono limit wielkości pliku.',\n        url: 'Adres URL grafiki',\n        remove: 'Usuń grafikę'\n      },\n      video: {\n        video: 'Wideo',\n        videoLink: 'Adres wideo',\n        insert: 'Wstaw wideo',\n        url: 'Adres wideo',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)'\n      },\n      link: {\n        link: 'Odnośnik',\n        insert: 'Wstaw odnośnik',\n        unlink: 'Usuń odnośnik',\n        edit: 'Edytuj',\n        textToDisplay: 'Tekst do wyświetlenia',\n        url: 'Na jaki adres URL powinien przenosić ten odnośnik?',\n        openInNewWindow: 'Otwórz w nowym oknie'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Wstaw poziomą linię'\n      },\n      style: {\n        style: 'Style',\n        p: 'pny',\n        blockquote: 'Cytat',\n        pre: 'Kod',\n        h1: 'Nagłówek 1',\n        h2: 'Nagłówek 2',\n        h3: 'Nagłówek 3',\n        h4: 'Nagłówek 4',\n        h5: 'Nagłówek 5',\n        h6: 'Nagłówek 6'\n      },\n      lists: {\n        unordered: 'Lista wypunktowana',\n        ordered: 'Lista numerowana'\n      },\n      options: {\n        help: 'Pomoc',\n        fullscreen: 'Pełny ekran',\n        codeview: 'Źródło'\n      },\n      paragraph: {\n        paragraph: 'Akapit',\n        outdent: 'Zmniejsz wcięcie',\n        indent: 'Zwiększ wcięcie',\n        left: 'Wyrównaj do lewej',\n        center: 'Wyrównaj do środka',\n        right: 'Wyrównaj do prawej',\n        justify: 'Wyrównaj do lewej i prawej'\n      },\n      color: {\n        recent: 'Ostani kolor',\n        more: 'Więcej kolorów',\n        background: 'Tło',\n        foreground: 'Czcionka',\n        transparent: 'Przeźroczysty',\n        setTransparent: 'Przeźroczyste',\n        reset: 'Reset',\n        resetToDefault: 'Domyślne'\n      },\n      shortcut: {\n        shortcuts: 'Skróty klawiaturowe',\n        close: 'Zamknij',\n        textFormatting: 'Formatowanie tekstu',\n        action: 'Akcja',\n        paragraphFormatting: 'Formatowanie akapitu',\n        documentStyle: 'Styl dokumentu',\n        extraKeys: 'Dodatkowe klawisze'\n      },\n      history: {\n        undo: 'Cofnij',\n        redo: 'Ponów'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-pt-BR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'pt-BR': {\n      font: {\n        bold: 'Negrito',\n        italic: 'Itálico',\n        underline: 'Sublinhado',\n        clear: 'Remover estilo da fonte',\n        height: 'Altura da linha',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        size: 'Tamanho da fonte'\n      },\n      image: {\n        image: 'Imagem',\n        insert: 'Inserir imagem',\n        resizeFull: 'Redimensionar Completamente',\n        resizeHalf: 'Redimensionar pela Metade',\n        resizeQuarter: 'Redimensionar um Quarto',\n        floatLeft: 'Flutuar para Esquerda',\n        floatRight: 'Flutuar para Direira',\n        floatNone: 'Não Flutuar',\n        dragImageHere: 'Arraste uma imagem para cá',\n        selectFromFiles: 'Selecione a partir dos arquivos',\n        url: 'URL da imagem'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link para vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserir link',\n        unlink: 'Remover link',\n        edit: 'Editar',\n        textToDisplay: 'Texto para exibir',\n        url: 'Para qual URL esse link leva?',\n        openInNewWindow: 'Abrir em uma nova janela'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Inserir linha horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        normal: 'Normal',\n        blockquote: 'Citação',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista com marcadores',\n        ordered: 'Lista numerada'\n      },\n      options: {\n        help: 'Ajuda',\n        fullscreen: 'Tela cheia',\n        codeview: 'Ver código-fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menor tabulação',\n        indent: 'Maior tabulação',\n        left: 'Alinhar à esquerda',\n        center: 'Alinhar ao centro',\n        right: 'Alinha à direita',\n        justify: 'Justificado'\n      },\n      color: {\n        recent: 'Cor recente',\n        more: 'Mais cores',\n        background: 'Fundo',\n        foreground: 'Fonte',\n        transparent: 'Transparente',\n        setTransparent: 'Fundo transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar padrão'\n      },\n      shortcut: {\n        shortcuts: 'Atalhos do teclado',\n        close: 'Fechar',\n        textFormatting: 'Formatação de texto',\n        action: 'Ação',\n        paragraphFormatting: 'Formatação de parágrafo',\n        documentStyle: 'Estilo de documento'\n      },\n      history: {\n        undo: 'Desfazer',\n        redo: 'Refazer'\n      },\n      help: {\n        'insertParagraph': 'Inserir Parágrafo',\n        'undo': 'Desfazer o último comando',\n        'redo': 'Refazer o último comando',\n        'tab': 'Tab',\n        'untab': 'Desfazer tab',\n        'bold': 'Colocar em negrito',\n        'italic': 'Colocar em itálico',\n        'underline': 'Sublinhado',\n        'strikethrough': 'Tachado',\n        'removeFormat': 'Remover estilo',\n        'justifyLeft': 'Alinhar à esquerda',\n        'justifyCenter': 'Centralizar',\n        'justifyRight': 'Alinhar à esquerda',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Lista não ordenada',\n        'insertOrderedList': 'Lista ordenada',\n        'outdent': 'Recuar parágrafo atual',\n        'indent': 'Avançar parágrafo atual',\n        'formatPara': 'Alterar formato do bloco para parágrafo(tag P)',\n        'formatH1': 'Alterar formato do bloco para H1',\n        'formatH2': 'Alterar formato do bloco para H2',\n        'formatH3': 'Alterar formato do bloco para H3',\n        'formatH4': 'Alterar formato do bloco para H4',\n        'formatH5': 'Alterar formato do bloco para H5',\n        'formatH6': 'Alterar formato do bloco para H6',\n        'insertHorizontalRule': 'Inserir régua horizontal',\n        'linkDialog.show': 'Inserir um Hiperlink'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-pt-PT.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'pt-PT': {\n      font: {\n        bold: 'Negrito',\n        italic: 'Itálico',\n        underline: 'Sublinhado',\n        clear: 'Remover estilo da fonte',\n        height: 'Altura da linha',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        size: 'Tamanho da fonte'\n      },\n      image: {\n        image: 'Imagem',\n        insert: 'Inserir imagem',\n        resizeFull: 'Redimensionar Completo',\n        resizeHalf: 'Redimensionar Metade',\n        resizeQuarter: 'Redimensionar Um Quarto',\n        floatLeft: 'Float Esquerda',\n        floatRight: 'Float Direita',\n        floatNone: 'Sem Float',\n        dragImageHere: 'Arraste uma imagem para aqui',\n        selectFromFiles: 'Selecione a partir dos arquivos',\n        url: 'Endereço da imagem'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link para vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserir ligação',\n        unlink: 'Remover ligação',\n        edit: 'Editar',\n        textToDisplay: 'Texto para exibir',\n        url: 'Que endereço esta licação leva?',\n        openInNewWindow: 'Abrir numa nova janela'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Inserir linha horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'p',\n        blockquote: 'Citação',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista com marcadores',\n        ordered: 'Lista numerada'\n      },\n      options: {\n        help: 'Ajuda',\n        fullscreen: 'Janela Completa',\n        codeview: 'Ver código-fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menor tabulação',\n        indent: 'Maior tabulação',\n        left: 'Alinhar à esquerda',\n        center: 'Alinhar ao centro',\n        right: 'Alinha à direita',\n        justify: 'Justificado'\n      },\n      color: {\n        recent: 'Cor recente',\n        more: 'Mais cores',\n        background: 'Fundo',\n        foreground: 'Fonte',\n        transparent: 'Transparente',\n        setTransparent: 'Fundo transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar padrão'\n      },\n      shortcut: {\n        shortcuts: 'Atalhos do teclado',\n        close: 'Fechar',\n        textFormatting: 'Formatação de texto',\n        action: 'Ação',\n        paragraphFormatting: 'Formatação de parágrafo',\n        documentStyle: 'Estilo de documento'\n      },\n      history: {\n        undo: 'Desfazer',\n        redo: 'Refazer'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-ro-RO.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ro-RO': {\n      font: {\n        bold: 'Îngroșat',\n        italic: 'Înclinat',\n        underline: 'Subliniat',\n        clear: 'Înlătură formatare font',\n        height: 'Înălțime rând',\n        strikethrough: 'Tăiat',\n        size: 'Dimensiune font'\n      },\n      image: {\n        image: 'Imagine',\n        insert: 'Inserează imagine',\n        resizeFull: 'Redimensionează complet',\n        resizeHalf: 'Redimensionează 1/2',\n        resizeQuarter: 'Redimensionează 1/4',\n        floatLeft: 'Aliniere la stânga',\n        floatRight: 'Aliniere la dreapta',\n        floatNone: 'Fară aliniere',\n        dragImageHere: 'Trage o imagine aici',\n        selectFromFiles: 'Alege din fişiere',\n        url: 'URL imagine'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link video',\n        insert: 'Inserează video',\n        url: 'URL video?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserează link',\n        unlink: 'Înlătură link',\n        edit: 'Editează',\n        textToDisplay: 'Text ce va fi afişat',\n        url: 'Deschidere în fereastra nouă?'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Inserează o linie orizontală'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Preformatat',\n        h1: 'Titlu 1',\n        h2: 'Titlu 2',\n        h3: 'Titlu 3',\n        h4: 'Titlu 4',\n        h5: 'Titlu 5',\n        h6: 'Titlu 6'\n      },\n      lists: {\n        unordered: 'Listă neordonată',\n        ordered: 'Listă ordonată'\n      },\n      options: {\n        help: 'Ajutor',\n        fullscreen: 'Măreşte',\n        codeview: 'Sursă'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Creşte identarea',\n        indent: 'Scade identarea',\n        left: 'Aliniere la stânga',\n        center: 'Aliniere centrală',\n        right: 'Aliniere la dreapta',\n        justify: 'Aliniere în bloc'\n      },\n      color: {\n        recent: 'Culoare recentă',\n        more: 'Mai multe  culori',\n        background: 'Culoarea fundalului',\n        foreground: 'Culoarea textului',\n        transparent: 'Transparent',\n        setTransparent: 'Setează transparent',\n        reset: 'Resetează',\n        resetToDefault: 'Revino la iniţial'\n      },\n      shortcut: {\n        shortcuts: 'Scurtături tastatură',\n        close: 'Închide',\n        textFormatting: 'Formatare text',\n        action: 'Acţiuni',\n        paragraphFormatting: 'Formatare paragraf',\n        documentStyle: 'Stil paragraf'\n      },\n      history: {\n        undo: 'Starea anterioară',\n        redo: 'Starea ulterioară'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-ru-RU.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ru-RU': {\n      font: {\n        bold: 'Полужирный',\n        italic: 'Курсив',\n        underline: 'Подчёркнутый',\n        clear: 'Убрать стили шрифта',\n        height: 'Высота линии',\n        name: 'Шрифт',\n        strikethrough: 'Зачёркнутый',\n        subscript: 'Нижний индекс',\n        superscript: 'Верхний индекс',\n        size: 'Размер шрифта'\n      },\n      image: {\n        image: 'Картинка',\n        insert: 'Вставить картинку',\n        resizeFull: 'Восстановить размер',\n        resizeHalf: 'Уменьшить до 50%',\n        resizeQuarter: 'Уменьшить до 25%',\n        floatLeft: 'Расположить слева',\n        floatRight: 'Расположить справа',\n        floatNone: 'Расположение по-умолчанию',\n        shapeRounded: 'Форма: Закругленная',\n        shapeCircle: 'Форма: Круг',\n        shapeThumbnail: 'Форма: Миниатюра',\n        shapeNone: 'Форма: Нет',\n        dragImageHere: 'Перетащите сюда картинку',\n        dropImage: 'Перетащите картинку',\n        selectFromFiles: 'Выбрать из файлов',\n        url: 'URL картинки',\n        remove: 'Удалить картинку'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Ссылка на видео',\n        insert: 'Вставить видео',\n        url: 'URL видео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'\n      },\n      link: {\n        link: 'Ссылка',\n        insert: 'Вставить ссылку',\n        unlink: 'Убрать ссылку',\n        edit: 'Редактировать',\n        textToDisplay: 'Отображаемый текст',\n        url: 'URL для перехода',\n        openInNewWindow: 'Открывать в новом окне'\n      },\n      table: {\n        table: 'Таблица'\n      },\n      hr: {\n        insert: 'Вставить горизонтальную линию'\n      },\n      style: {\n        style: 'Стиль',\n        p: 'Нормальный',\n        blockquote: 'Цитата',\n        pre: 'Код',\n        h1: 'Заголовок 1',\n        h2: 'Заголовок 2',\n        h3: 'Заголовок 3',\n        h4: 'Заголовок 4',\n        h5: 'Заголовок 5',\n        h6: 'Заголовок 6'\n      },\n      lists: {\n        unordered: 'Маркированный список',\n        ordered: 'Нумерованный список'\n      },\n      options: {\n        help: 'Помощь',\n        fullscreen: 'На весь экран',\n        codeview: 'Исходный код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Уменьшить отступ',\n        indent: 'Увеличить отступ',\n        left: 'Выровнять по левому краю',\n        center: 'Выровнять по центру',\n        right: 'Выровнять по правому краю',\n        justify: 'Растянуть по ширине'\n      },\n      color: {\n        recent: 'Последний цвет',\n        more: 'Еще цвета',\n        background: 'Цвет фона',\n        foreground: 'Цвет шрифта',\n        transparent: 'Прозрачный',\n        setTransparent: 'Сделать прозрачным',\n        reset: 'Сброс',\n        resetToDefault: 'Восстановить умолчания'\n      },\n      shortcut: {\n        shortcuts: 'Сочетания клавиш',\n        close: 'Закрыть',\n        textFormatting: 'Форматирование текста',\n        action: 'Действие',\n        paragraphFormatting: 'Форматирование параграфа',\n        documentStyle: 'Стиль документа',\n        extraKeys: 'Дополнительные комбинации'\n      },\n      history: {\n        undo: 'Отменить',\n        redo: 'Повтор'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-sk-SK.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sk-SK': {\n      font: {\n        bold: 'Tučné',\n        italic: 'Kurzíva',\n        underline: 'Podčiarknutie',\n        clear: 'Odstrániť štýl písma',\n        height: 'Výška riadku',\n        strikethrough: 'Prečiarknuté',\n        size: 'Veľkosť písma'\n      },\n      image: {\n        image: 'Obrázok',\n        insert: 'Vložiť obrázok',\n        resizeFull: 'Pôvodná veľkosť',\n        resizeHalf: 'Polovičná veľkosť',\n        resizeQuarter: 'Štvrtinová veľkosť',\n        floatLeft: 'Umiestniť doľava',\n        floatRight: 'Umiestniť doprava',\n        floatNone: 'Bez zarovnania',\n        dragImageHere: 'Pretiahnuť sem obrázok',\n        selectFromFiles: 'Vybrať súbor',\n        url: 'URL obrázku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Odkaz videa',\n        insert: 'Vložiť video',\n        url: 'URL videa?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)'\n      },\n      link: {\n        link: 'Odkaz',\n        insert: 'Vytvoriť odkaz',\n        unlink: 'Zrušiť odkaz',\n        edit: 'Upraviť',\n        textToDisplay: 'Zobrazovaný text',\n        url: 'Na akú URL adresu má tento odkaz viesť?',\n        openInNewWindow: 'Otvoriť v novom okne'\n      },\n      table: {\n        table: 'Tabuľka'\n      },\n      hr: {\n        insert: 'Vložit vodorovnú čiaru'\n      },\n      style: {\n        style: 'Štýl',\n        p: 'Normálny',\n        blockquote: 'Citácia',\n        pre: 'Kód',\n        h1: 'Nadpis 1',\n        h2: 'Nadpis 2',\n        h3: 'Nadpis 3',\n        h4: 'Nadpis 4',\n        h5: 'Nadpis 5',\n        h6: 'Nadpis 6'\n      },\n      lists: {\n        unordered: 'Odrážkový zoznam',\n        ordered: 'Číselný zoznam'\n      },\n      options: {\n        help: 'Pomoc',\n        fullscreen: 'Celá obrazovka',\n        codeview: 'HTML kód'\n      },\n      paragraph: {\n        paragraph: 'Odsek',\n        outdent: 'Zväčšiť odsadenie',\n        indent: 'Zmenšiť odsadenie',\n        left: 'Zarovnať doľava',\n        center: 'Zarovnať na stred',\n        right: 'Zarovnať doprava',\n        justify: 'Zarovnať obojstranne'\n      },\n      color: {\n        recent: 'Aktuálna farba',\n        more: 'Dalšie farby',\n        background: 'Farba pozadia',\n        foreground: 'Farba písma',\n        transparent: 'Priehľadnosť',\n        setTransparent: 'Nastaviť priehľadnosť',\n        reset: 'Obnoviť',\n        resetToDefault: 'Obnoviť prednastavené'\n      },\n      shortcut: {\n        shortcuts: 'Klávesové skratky',\n        close: 'Zavrieť',\n        textFormatting: 'Formátovanie textu',\n        action: 'Akcia',\n        paragraphFormatting: 'Formátovanie odseku',\n        documentStyle: 'Štýl dokumentu'\n      },\n      history: {\n        undo: 'Krok vzad',\n        redo: 'Krok dopredu'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-sl-SI.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sl-SI': {\n      font: {\n        bold: 'Krepko',\n        italic: 'Ležeče',\n        underline: 'Podčrtano',\n        clear: 'Počisti oblikovanje izbire',\n        height: 'Razmik med vrsticami',\n        name: 'Pisava',\n        strikethrough: 'Prečrtano',\n        subscript: 'Podpisano',\n        superscript: 'Nadpisano',\n        size: 'Velikost pisave'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Vstavi sliko',\n        resizeFull: 'Razširi na polno velikost',\n        resizeHalf: 'Razširi na polovico velikosti',\n        resizeQuarter: 'Razširi na četrtino velikosti',\n        floatLeft: 'Leva poravnava',\n        floatRight: 'Desna poravnava',\n        floatNone: 'Brez poravnave',\n        dragImageHere: 'Sem povlecite sliko',\n        selectFromFiles: 'Izberi sliko za nalaganje',\n        url: 'URL naslov slike',\n        remove: 'Odstrani sliko'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video povezava',\n        insert: 'Vstavi video',\n        url: 'Povezava do videa',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)'\n      },\n      link: {\n        link: 'Povezava',\n        insert: 'Vstavi povezavo',\n        unlink: 'Odstrani povezavo',\n        edit: 'Uredi',\n        textToDisplay: 'Prikazano besedilo',\n        url: 'Povezava',\n        openInNewWindow: 'Odpri v novem oknu'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Vstavi horizontalno črto'\n      },\n      style: {\n        style: 'Slogi',\n        p: 'Navadno besedilo',\n        blockquote: 'Citat',\n        pre: 'Koda',\n        h1: 'Naslov 1',\n        h2: 'Naslov 2',\n        h3: 'Naslov 3',\n        h4: 'Naslov 4',\n        h5: 'Naslov 5',\n        h6: 'Naslov 6'\n      },\n      lists: {\n        unordered: 'Označen seznam',\n        ordered: 'Oštevilčen seznam'\n      },\n      options: {\n        help: 'Pomoč',\n        fullscreen: 'Celozaslonski način',\n        codeview: 'Pregled HTML kode'\n      },\n      paragraph: {\n        paragraph: 'Slogi odstavka',\n        outdent: 'Zmanjšaj odmik',\n        indent: 'Povečaj odmik',\n        left: 'Leva poravnava',\n        center: 'Desna poravnava',\n        right: 'Sredinska poravnava',\n        justify: 'Obojestranska poravnava'\n      },\n      color: {\n        recent: 'Uporabi zadnjo barvo',\n        more: 'Več barv',\n        background: 'Barva ozadja',\n        foreground: 'Barva besedila',\n        transparent: 'Brez barve',\n        setTransparent: 'Brez barve',\n        reset: 'Ponastavi',\n        resetToDefault: 'Ponastavi na privzeto'\n      },\n      shortcut: {\n        shortcuts: 'Bljižnice',\n        close: 'Zapri',\n        textFormatting: 'Oblikovanje besedila',\n        action: 'Dejanja',\n        paragraphFormatting: 'Oblikovanje odstavka',\n        documentStyle: 'Oblikovanje naslova'\n      },\n      history: {\n        undo: 'Razveljavi',\n        redo: 'Uveljavi'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-sr-RS-Latin.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sr-RS': {\n      font: {\n        bold: 'Podebljano',\n        italic: 'Kurziv',\n        underline: 'Podvučeno',\n        clear: 'Ukloni stilove fonta',\n        height: 'Visina linije',\n        strikethrough: 'Precrtano',\n        size: 'Veličina fonta'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Umetni sliku',\n        resizeFull: 'Puna veličina',\n        resizeHalf: 'Umanji na 50%',\n        resizeQuarter: 'Umanji na 25%',\n        floatLeft: 'Uz levu ivicu',\n        floatRight: 'Uz desnu ivicu',\n        floatNone: 'Bez ravnanja',\n        dragImageHere: 'Prevuci sliku ovde',\n        selectFromFiles: 'Izaberi iz datoteke',\n        url: 'Adresa slike',\n        remove: 'Ukloni sliku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Veza ka videu',\n        insert: 'Umetni video',\n        url: 'URL video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'\n      },\n      link: {\n        link: 'Veza',\n        insert: 'Umetni vezu',\n        unlink: 'Ukloni vezu',\n        edit: 'Uredi',\n        textToDisplay: 'Tekst za prikaz',\n        url: 'Internet adresa',\n        openInNewWindow: 'Otvori u novom prozoru'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Umetni horizontalnu liniju'\n      },\n      style: {\n        style: 'Stil',\n        p: 'pni',\n        blockquote: 'Citat',\n        pre: 'Kod',\n        h1: 'Zaglavlje 1',\n        h2: 'Zaglavlje 2',\n        h3: 'Zaglavlje 3',\n        h4: 'Zaglavlje 4',\n        h5: 'Zaglavlje 5',\n        h6: 'Zaglavlje 6'\n      },\n      lists: {\n        unordered: 'Obična lista',\n        ordered: 'Numerisana lista'\n      },\n      options: {\n        help: 'Pomoć',\n        fullscreen: 'Preko celog ekrana',\n        codeview: 'Izvorni kod'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Smanji uvlačenje',\n        indent: 'Povečaj uvlačenje',\n        left: 'Poravnaj u levo',\n        center: 'Centrirano',\n        right: 'Poravnaj u desno',\n        justify: 'Poravnaj obostrano'\n      },\n      color: {\n        recent: 'Poslednja boja',\n        more: 'Više boja',\n        background: 'Boja pozadine',\n        foreground: 'Boja teksta',\n        transparent: 'Providna',\n        setTransparent: 'Providna',\n        reset: 'Opoziv',\n        resetToDefault: 'Podrazumevana'\n      },\n      shortcut: {\n        shortcuts: 'Prečice sa tastature',\n        close: 'Zatvori',\n        textFormatting: 'Formatiranje teksta',\n        action: 'Akcija',\n        paragraphFormatting: 'Formatiranje paragrafa',\n        documentStyle: 'Stil dokumenta',\n        extraKeys: 'Dodatne kombinacije'\n      },\n      history: {\n        undo: 'Poništi',\n        redo: 'Ponovi'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-sr-RS.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sr-RS': {\n      font: {\n        bold: 'Подебљано',\n        italic: 'Курзив',\n        underline: 'Подвучено',\n        clear: 'Уклони стилове фонта',\n        height: 'Висина линије',\n        strikethrough: 'Прецртано',\n        size: 'Величина фонта'\n      },\n      image: {\n        image: 'Слика',\n        insert: 'Уметни слику',\n        resizeFull: 'Пуна величина',\n        resizeHalf: 'Умањи на 50%',\n        resizeQuarter: 'Умањи на 25%',\n        floatLeft: 'Уз леву ивицу',\n        floatRight: 'Уз десну ивицу',\n        floatNone: 'Без равнања',\n        dragImageHere: 'Превуци слику овде',\n        selectFromFiles: 'Изабери из датотеке',\n        url: 'Адреса слике',\n        remove: 'Уклони слику'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Веза ка видеу',\n        insert: 'Уметни видео',\n        url: 'URL видео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'\n      },\n      link: {\n        link: 'Веза',\n        insert: 'Уметни везу',\n        unlink: 'Уклони везу',\n        edit: 'Уреди',\n        textToDisplay: 'Текст за приказ',\n        url: 'Интернет адреса',\n        openInNewWindow: 'Отвори у новом прозору'\n      },\n      table: {\n        table: 'Табела'\n      },\n      hr: {\n        insert: 'Уметни хоризонталну линију'\n      },\n      style: {\n        style: 'Стил',\n        p: 'Нормални',\n        blockquote: 'Цитат',\n        pre: 'Код',\n        h1: 'Заглавље 1',\n        h2: 'Заглавље 2',\n        h3: 'Заглавље 3',\n        h4: 'Заглавље 4',\n        h5: 'Заглавље 5',\n        h6: 'Заглавље 6'\n      },\n      lists: {\n        unordered: 'Обична листа',\n        ordered: 'Нумерисана листа'\n      },\n      options: {\n        help: 'Помоћ',\n        fullscreen: 'Преко целог екрана',\n        codeview: 'Изворни код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Смањи увлачење',\n        indent: 'Повечај увлачење',\n        left: 'Поравнај у лево',\n        center: 'Центрирано',\n        right: 'Поравнај у десно',\n        justify: 'Поравнај обострано'\n      },\n      color: {\n        recent: 'Последња боја',\n        more: 'Више боја',\n        background: 'Боја позадине',\n        foreground: 'Боја текста',\n        transparent: 'Провидна',\n        setTransparent: 'Провидна',\n        reset: 'Опозив',\n        resetToDefault: 'Подразумевана'\n      },\n      shortcut: {\n        shortcuts: 'Пречице са тастатуре',\n        close: 'Затвори',\n        textFormatting: 'Форматирање текста',\n        action: 'Акција',\n        paragraphFormatting: 'Форматирање параграфа',\n        documentStyle: 'Стил документа',\n        extraKeys: 'Додатне комбинације'\n      },\n      history: {\n        undo: 'Поништи',\n        redo: 'Понови'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-sv-SE.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sv-SE': {\n      font: {\n        bold: 'Fet',\n        italic: 'Kursiv',\n        underline: 'Understruken',\n        clear: 'Radera formatering',\n        height: 'Radavstånd',\n        name: 'Teckensnitt',\n        strikethrough: 'Genomstruken',\n        size: 'Teckenstorlek'\n      },\n      image: {\n        image: 'Bild',\n        insert: 'Infoga bild',\n        resizeFull: 'Full storlek',\n        resizeHalf: 'Halv storlek',\n        resizeQuarter: 'En fjärdedel i storlek',\n        floatLeft: 'Vänsterjusterad',\n        floatRight: 'Högerjusterad',\n        floatNone: 'Ingen justering',\n        dragImageHere: 'Dra en bild hit',\n        selectFromFiles: 'Välj från filer',\n        url: 'Länk till bild',\n        remove: 'Ta bort bild'\n      },\n      video: {\n        video: 'Filmklipp',\n        videoLink: 'Länk till filmklipp',\n        insert: 'Infoga filmklipp',\n        url: 'Länk till filmklipp',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Länk',\n        insert: 'Infoga länk',\n        unlink: 'Ta bort länk',\n        edit: 'Redigera',\n        textToDisplay: 'Visningstext',\n        url: 'Till vilken URL ska denna länk peka?',\n        openInNewWindow: 'Öppna i ett nytt fönster'\n      },\n      table: {\n        table: 'Tabell'\n      },\n      hr: {\n        insert: 'Infoga horisontell linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Kod',\n        h1: 'Rubrik 1',\n        h2: 'Rubrik 2',\n        h3: 'Rubrik 3',\n        h4: 'Rubrik 4',\n        h5: 'Rubrik 5',\n        h6: 'Rubrik 6'\n      },\n      lists: {\n        unordered: 'Punktlista',\n        ordered: 'Numrerad lista'\n      },\n      options: {\n        help: 'Hjälp',\n        fullscreen: 'Fullskärm',\n        codeview: 'HTML-visning'\n      },\n      paragraph: {\n        paragraph: 'Justera text',\n        outdent: 'Minska indrag',\n        indent: 'Öka indrag',\n        left: 'Vänsterjusterad',\n        center: 'Centrerad',\n        right: 'Högerjusterad',\n        justify: 'Justera text'\n      },\n      color: {\n        recent: 'Senast använda färg',\n        more: 'Fler färger',\n        background: 'Bakgrundsfärg',\n        foreground: 'Teckenfärg',\n        transparent: 'Genomskinlig',\n        setTransparent: 'Gör genomskinlig',\n        reset: 'Nollställ',\n        resetToDefault: 'Återställ till standard'\n      },\n      shortcut: {\n        shortcuts: 'Kortkommandon',\n        close: 'Stäng',\n        textFormatting: 'Textformatering',\n        action: 'Funktion',\n        paragraphFormatting: 'Avsnittsformatering',\n        documentStyle: 'Dokumentstil'\n      },\n      history: {\n        undo: 'Ångra',\n        redo: 'Gör om'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-th-TH.js",
    "content": "(function ($) {\n\t$.extend($.summernote.lang, {\n\t\t'th-TH': {\n\t\t\tfont: {\n\t\t\t\tbold: 'ตัวหนา',\n\t\t\t\titalic: 'ตัวเอียง',\n\t\t\t\tunderline: 'ขีดเส้นใต้',\n\t\t\t\tclear: 'ล้างรูปแบบตัวอักษร',\n\t\t\t\theight: 'ความสูงบรรทัด',\n\t\t\t\tname: 'แบบตัวอักษร',\n\t\t\t\tstrikethrough: 'ขีดฆ่า',\n\t\t\t\tsubscript: 'ตัวห้อย',\n\t\t\t\tsuperscript: 'ตัวยก',\n\t\t\t\tsize: 'ขนาดตัวอักษร'\n\t\t\t},\n\t\t\timage: {\n\t\t\t\timage: 'รูปภาพ',\n\t\t\t\tinsert: 'แทรกรูปภาพ',\n\t\t\t\tresizeFull: 'ปรับขนาดเท่าจริง',\n\t\t\t\tresizeHalf: 'ปรับขนาดลง 50%',\n\t\t\t\tresizeQuarter: 'ปรับขนาดลง 25%',\n\t\t\t\tfloatLeft: 'ชิดซ้าย',\n\t\t\t\tfloatRight: 'ชิดขวา',\n\t\t\t\tfloatNone: 'ไม่จัดตำแหน่ง',\n\t\t\t\tdragImageHere: 'ลากรูปภาพที่ต้องการไว้ที่นี่',\n\t\t\t\tselectFromFiles: 'เลือกไฟล์รูปภาพ',\n\t\t\t\turl: 'ที่อยู่ URL ของรูปภาพ',\n\t\t\t\tremove: 'ลบรูปภาพ'\n\t\t\t},\n\t\t\tvideo: {\n\t\t\t\tvideo: 'วีดีโอ',\n\t\t\t\tvideoLink: 'ลิงก์ของวีดีโอ',\n\t\t\t\tinsert: 'แทรกวีดีโอ',\n\t\t\t\turl: 'ที่อยู่ URL ของวีดีโอ?',\n\t\t\t\tproviders: '(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)'\n\t\t\t},\n\t\t\tlink: {\n\t\t\t\tlink: 'ตัวเชื่อมโยง',\n\t\t\t\tinsert: 'แทรกตัวเชื่อมโยง',\n\t\t\t\tunlink: 'ยกเลิกตัวเชื่อมโยง',\n\t\t\t\tedit: 'แก้ไข',\n\t\t\t\ttextToDisplay: 'ข้อความที่ให้แสดง',\n\t\t\t\turl: 'ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?',\n\t\t\t\topenInNewWindow: 'เปิดในหน้าต่างใหม่'\n\t\t\t},\n\t\t\ttable: {\n\t\t\t\ttable: 'ตาราง'\n\t\t\t},\n\t\t\thr: {\n\t\t\t\tinsert: 'แทรกเส้นคั่น'\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tstyle: 'รูปแบบ',\n\t\t\t\tp: 'ปกติ',\n\t\t\t\tblockquote: 'ข้อความ',\n\t\t\t\tpre: 'โค้ด',\n\t\t\t\th1: 'หัวข้อ 1',\n\t\t\t\th2: 'หัวข้อ 2',\n\t\t\t\th3: 'หัวข้อ 3',\n\t\t\t\th4: 'หัวข้อ 4',\n\t\t\t\th5: 'หัวข้อ 5',\n\t\t\t\th6: 'หัวข้อ 6'\n\t\t\t},\n\t\t\tlists: {\n\t\t\t\tunordered: 'รายการแบบไม่มีลำดับ',\n\t\t\t\tordered: 'รายการแบบมีลำดับ'\n\t\t\t},\n\t\t\toptions: {\n\t\t\t\thelp: 'ช่วยเหลือ',\n\t\t\t\tfullscreen: 'ขยายเต็มหน้าจอ',\n\t\t\t\tcodeview: 'ซอร์สโค้ด'\n\t\t\t},\n\t\t\tparagraph: {\n\t\t\t\tparagraph: 'ย่อหน้า',\n\t\t\t\toutdent: 'เยื้องซ้าย',\n\t\t\t\tindent: 'เยื้องขวา',\n\t\t\t\tleft: 'จัดหน้าชิดซ้าย',\n\t\t\t\tcenter: 'จัดหน้ากึ่งกลาง',\n\t\t\t\tright: 'จัดหน้าชิดขวา',\n\t\t\t\tjustify: 'จัดบรรทัดเสมอกัน'\n\t\t\t},\n\t\t\tcolor: {\n\t\t\t\trecent: 'สีที่ใช้ล่าสุด',\n\t\t\t\tmore: 'สีอื่นๆ',\n\t\t\t\tbackground: 'สีพื้นหลัง',\n\t\t\t\tforeground: 'สีพื้นหน้า',\n\t\t\t\ttransparent: 'โปร่งแสง',\n\t\t\t\tsetTransparent: 'ตั้งค่าความโปร่งแสง',\n\t\t\t\treset: 'คืนค่า',\n\t\t\t\tresetToDefault: 'คืนค่ามาตรฐาน'\n\t\t\t},\n\t\t\tshortcut: {\n\t\t\t\tshortcuts: 'แป้นลัด',\n\t\t\t\tclose: 'ปิด',\n\t\t\t\ttextFormatting: 'การจัดรูปแบบข้อความ',\n\t\t\t\taction: 'การกระทำ',\n\t\t\t\tparagraphFormatting: 'การจัดรูปแบบย่อหน้า',\n\t\t\t\tdocumentStyle: 'รูปแบบของเอกสาร'\n\t\t\t},\n\t\t\thistory: {\n\t\t\t\tundo: 'ยกเลิกการกระทำ',\n\t\t\t\tredo: 'ทำซ้ำการกระทำ'\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-tr-TR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'tr-TR': {\n      font: {\n        bold: 'Kalın',\n        italic: 'İtalik',\n        underline: 'Altı çizili',\n        clear: 'Temizle',\n        height: 'Satır yüksekliği',\n        name: 'Yazı Tipi',\n        strikethrough: 'Üstü çizili',\n        subscript: 'Alt Simge',\n        superscript: 'Üst Simge',\n        size: 'Yazı tipi boyutu'\n      },\n      image: {\n        image: 'Resim',\n        insert: 'Resim ekle',\n        resizeFull: 'Orjinal boyut',\n        resizeHalf: '1/2 boyut',\n        resizeQuarter: '1/4 boyut',\n        floatLeft: 'Sola hizala',\n        floatRight: 'Sağa hizala',\n        floatNone: 'Hizalamayı kaldır',\n        shapeRounded: 'Şekil: Yuvarlatılmış Köşe',\n        shapeCircle: 'Şekil: Daire',\n        shapeThumbnail: 'Şekil: K.Resim',\n        shapeNone: 'Şekil: Yok',\n        dragImageHere: 'Buraya sürükleyin',\n        dropImage: 'Resim veya metni bırakın',\n        selectFromFiles: 'Dosya seçin',\n        maximumFileSize: 'Maksimum dosya boyutu',\n        maximumFileSizeError: 'Maksimum dosya boyutu aşıldı.',\n        url: 'Resim bağlantısı',\n        remove: 'Resimi Kaldır'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video bağlantısı',\n        insert: 'Video ekle',\n        url: 'Video bağlantısı?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)'\n      },\n      link: {\n        link: 'Bağlantı',\n        insert: 'Bağlantı ekle',\n        unlink: 'Bağlantıyı kaldır',\n        edit: 'Bağlantıyı düzenle',\n        textToDisplay: 'Görüntülemek için',\n        url: 'Bağlantı adresi?',\n        openInNewWindow: 'Yeni pencerede aç'\n      },\n      table: {\n        table: 'Tablo'\n      },\n      hr: {\n        insert: 'Yatay çizgi ekle'\n      },\n      style: {\n        style: 'Biçim',\n        p: 'p',\n        blockquote: 'Alıntı',\n        pre: 'Önbiçimli',\n        h1: 'Başlık 1',\n        h2: 'Başlık 2',\n        h3: 'Başlık 3',\n        h4: 'Başlık 4',\n        h5: 'Başlık 5',\n        h6: 'Başlık 6'\n      },\n      lists: {\n        unordered: 'Madde işaretli liste',\n        ordered: 'Numaralı liste'\n      },\n      options: {\n        help: 'Yardım',\n        fullscreen: 'Tam ekran',\n        codeview: 'HTML Kodu'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Girintiyi artır',\n        indent: 'Girintiyi azalt',\n        left: 'Sola hizala',\n        center: 'Ortaya hizala',\n        right: 'Sağa hizala',\n        justify: 'Yasla'\n      },\n      color: {\n        recent: 'Son renk',\n        more: 'Daha fazla renk',\n        background: 'Arka plan rengi',\n        foreground: 'Yazı rengi',\n        transparent: 'Seffaflık',\n        setTransparent: 'Şeffaflığı ayarla',\n        reset: 'Sıfırla',\n        resetToDefault: 'Varsayılanlara sıfırla'\n      },\n      shortcut: {\n        shortcuts: 'Kısayollar',\n        close: 'Kapat',\n        textFormatting: 'Yazı biçimlendirme',\n        action: 'Eylem',\n        paragraphFormatting: 'Paragraf biçimlendirme',\n        documentStyle: 'Biçim',\n        extraKeys: 'İlave anahtarlar'\n      },\n      help: {\n        'insertParagraph': 'Paragraf ekler',\n        'undo': 'Son komudu geri alır',\n        'redo': 'Son komudu yineler',\n        'tab': 'Girintiyi artırır',\n        'untab': 'Girintiyi azaltır',\n        'bold': 'Kalın yazma stilini ayarlar',\n        'italic': 'İtalik yazma stilini ayarlar',\n        'underline': 'Altı çizgili yazma stilini ayarlar',\n        'strikethrough': 'Üstü çizgili yazma stilini ayarlar',\n        'removeFormat': 'Biçimlendirmeyi temizler',\n        'justifyLeft': 'Yazıyı sola hizalar',\n        'justifyCenter': 'Yazıyı ortalar',\n        'justifyRight': 'Yazıyı sağa hizalar',\n        'justifyFull': 'Yazıyı her iki tarafa yazlar',\n        'insertUnorderedList': 'Madde işaretli liste ekler',\n        'insertOrderedList': 'Numaralı liste ekler',\n        'outdent': 'Aktif paragrafın girintisini azaltır',\n        'indent': 'Aktif paragrafın girintisini artırır',\n        'formatPara': 'Aktif bloğun biçimini paragraf (p) olarak değiştirir',\n        'formatH1': 'Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir',\n        'formatH2': 'Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir',\n        'formatH3': 'Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir',\n        'formatH4': 'Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir',\n        'formatH5': 'Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir',\n        'formatH6': 'Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir',\n        'insertHorizontalRule': 'Yatay çizgi ekler',\n        'linkDialog.show': 'Bağlantı ayar kutusunu gösterir'\n      },\n      history: {\n        undo: 'Geri al',\n        redo: 'Yinele'\n      },\n      specialChar: {\n        specialChar: 'ÖZEL KARAKTERLER',\n        select: 'Özel Karakterleri seçin'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-uk-UA.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'uk-UA': {\n      font: {\n        bold: 'Напівжирний',\n        italic: 'Курсив',\n        underline: 'Підкреслений',\n        clear: 'Прибрати стилі шрифту',\n        height: 'Висота лінії',\n        name: 'Шрифт',\n        strikethrough: 'Закреслений',\n        subscript: 'Нижній індекс',\n        superscript: 'Верхній індекс',\n        size: 'Розмір шрифту'\n      },\n      image: {\n        image: 'Картинка',\n        insert: 'Вставити картинку',\n        resizeFull: 'Відновити розмір',\n        resizeHalf: 'Зменшити до 50%',\n        resizeQuarter: 'Зменшити до 25%',\n        floatLeft: 'Розташувати ліворуч',\n        floatRight: 'Розташувати праворуч',\n        floatNone: 'Початкове розташування',\n        shapeRounded: 'Форма: Заокруглена',\n        shapeCircle: 'Форма: Коло',\n        shapeThumbnail: 'Форма: Мініатюра',\n        shapeNone: 'Форма: Немає',\n        dragImageHere: 'Перетягніть сюди картинку',\n        dropImage: 'Перетягніть картинку',\n        selectFromFiles: 'Вибрати з файлів',\n        url: 'URL картинки',\n        remove: 'Видалити картинку'\n      },\n      video: {\n        video: 'Відео',\n        videoLink: 'Посилання на відео',\n        insert: 'Вставити відео',\n        url: 'URL відео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)'\n      },\n      link: {\n        link: 'Посилання',\n        insert: 'Вставити посилання',\n        unlink: 'Прибрати посилання',\n        edit: 'Редагувати',\n        textToDisplay: 'Текст, що відображається',\n        url: 'URL для переходу',\n        openInNewWindow: 'Відкривати у новому вікні'\n      },\n      table: {\n        table: 'Таблиця'\n      },\n      hr: {\n        insert: 'Вставити горизонтальну лінію'\n      },\n      style: {\n        style: 'Стиль',\n        p: 'Нормальний',\n        blockquote: 'Цитата',\n        pre: 'Код',\n        h1: 'Заголовок 1',\n        h2: 'Заголовок 2',\n        h3: 'Заголовок 3',\n        h4: 'Заголовок 4',\n        h5: 'Заголовок 5',\n        h6: 'Заголовок 6'\n      },\n      lists: {\n        unordered: 'Маркований список',\n        ordered: 'Нумерований список'\n      },\n      options: {\n        help: 'Допомога',\n        fullscreen: 'На весь екран',\n        codeview: 'Початковий код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Зменшити відступ',\n        indent: 'Збільшити відступ',\n        left: 'Вирівняти по лівому краю',\n        center: 'Вирівняти по центру',\n        right: 'Вирівняти по правому краю',\n        justify: 'Розтягнути по ширині'\n      },\n      color: {\n        recent: 'Останній колір',\n        more: 'Ще кольори',\n        background: 'Колір фону',\n        foreground: 'Колір шрифту',\n        transparent: 'Прозорий',\n        setTransparent: 'Зробити прозорим',\n        reset: 'Відновити',\n        resetToDefault: 'Відновити початкові'\n      },\n      shortcut: {\n        shortcuts: 'Комбінації клавіш',\n        close: 'Закрити',\n        textFormatting: 'Форматування тексту',\n        action: 'Дія',\n        paragraphFormatting: 'Форматування параграфу',\n        documentStyle: 'Стиль документу'\n      },\n      history: {\n        undo: 'Відмінити',\n        redo: 'Повторити'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-vi-VN.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'vi-VN': {\n      font: {\n        bold: 'In Đậm',\n        italic: 'In Nghiêng',\n        underline: 'Gạch dưới',\n        clear: 'Bỏ định dạng',\n        height: 'Chiều cao dòng',\n        name: 'Phông chữ',\n        strikethrough: 'Gạch ngang',\n        size: 'Cỡ chữ'\n      },\n      image: {\n        image: 'Hình ảnh',\n        insert: 'Chèn',\n        resizeFull: '100%',\n        resizeHalf: '50%',\n        resizeQuarter: '25%',\n        floatLeft: 'Trôi về trái',\n        floatRight: 'Trôi về phải',\n        floatNone: 'Không trôi',\n        dragImageHere: 'Thả Ảnh ở vùng này',\n        selectFromFiles: 'Chọn từ File',\n        url: 'URL',\n        remove: 'Xóa'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link đến Video',\n        insert: 'Chèn Video',\n        url: 'URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Chèn Link',\n        unlink: 'Gỡ Link',\n        edit: 'Sửa',\n        textToDisplay: 'Văn bản hiển thị',\n        url: 'URL',\n        openInNewWindow: 'Mở ở Cửa sổ mới'\n      },\n      table: {\n        table: 'Bảng'\n      },\n      hr: {\n        insert: 'Chèn'\n      },\n      style: {\n        style: 'Kiểu chữ',\n        p: 'Chữ thường',\n        blockquote: 'Đoạn trích',\n        pre: 'Mã Code',\n        h1: 'H1',\n        h2: 'H2',\n        h3: 'H3',\n        h4: 'H4',\n        h5: 'H5',\n        h6: 'H6'\n      },\n      lists: {\n        unordered: 'Liệt kê danh sách',\n        ordered: 'Liệt kê theo thứ tự'\n      },\n      options: {\n        help: 'Trợ giúp',\n        fullscreen: 'Toàn Màn hình',\n        codeview: 'Xem Code'\n      },\n      paragraph: {\n        paragraph: 'Canh lề',\n        outdent: 'Dịch sang trái',\n        indent: 'Dịch sang phải',\n        left: 'Canh trái',\n        center: 'Canh giữa',\n        right: 'Canh phải',\n        justify: 'Canh đều'\n      },\n      color: {\n        recent: 'Màu chữ',\n        more: 'Mở rộng',\n        background: 'Màu nền',\n        foreground: 'Màu chữ',\n        transparent: 'trong suốt',\n        setTransparent: 'Nền trong suốt',\n        reset: 'Thiết lập lại',\n        resetToDefault: 'Trở lại ban đầu'\n      },\n      shortcut: {\n        shortcuts: 'Phím tắt',\n        close: 'Đóng',\n        textFormatting: 'Định dạng Văn bản',\n        action: 'Hành động',\n        paragraphFormatting: 'Định dạng',\n        documentStyle: 'Kiểu văn bản'\n      },\n      history: {\n        undo: 'Lùi lại',\n        redo: 'Làm lại'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-zh-CN.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-CN': {\n      font: {\n        bold: '粗体',\n        italic: '斜体',\n        underline: '下划线',\n        clear: '清除格式',\n        height: '行高',\n        name: '字体',\n        strikethrough: '删除线',\n        subscript: '下标',\n        superscript: '上标',\n        size: '字号'\n      },\n      image: {\n        image: '图片',\n        insert: '插入图片',\n        resizeFull: '缩放至 100%',\n        resizeHalf: '缩放至 50%',\n        resizeQuarter: '缩放至 25%',\n        floatLeft: '靠左浮动',\n        floatRight: '靠右浮动',\n        floatNone: '取消浮动',\n        shapeRounded: '形状: 圆角',\n        shapeCircle: '形状: 圆',\n        shapeThumbnail: '形状: 缩略图',\n        shapeNone: '形状: 无',\n        dragImageHere: '将图片拖拽至此处',\n        selectFromFiles: '从本地上传',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '图片地址',\n        remove: '移除图片'\n      },\n      video: {\n        video: '视频',\n        videoLink: '视频链接',\n        insert: '插入视频',\n        url: '视频地址',\n        providers: '(优酷, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '链接',\n        insert: '插入链接',\n        unlink: '去除链接',\n        edit: '编辑链接',\n        textToDisplay: '显示文本',\n        url: '链接地址',\n        openInNewWindow: '在新窗口打开'\n      },\n      table: {\n        table: '表格'\n      },\n      hr: {\n        insert: '水平线'\n      },\n      style: {\n        style: '样式',\n        p: '普通',\n        blockquote: '引用',\n        pre: '代码',\n        h1: '标题 1',\n        h2: '标题 2',\n        h3: '标题 3',\n        h4: '标题 4',\n        h5: '标题 5',\n        h6: '标题 6'\n      },\n      lists: {\n        unordered: '无序列表',\n        ordered: '有序列表'\n      },\n      options: {\n        help: '帮助',\n        fullscreen: '全屏',\n        codeview: '源代码'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '减少缩进',\n        indent: '增加缩进',\n        left: '左对齐',\n        center: '居中对齐',\n        right: '右对齐',\n        justify: '两端对齐'\n      },\n      color: {\n        recent: '最近使用',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重置',\n        resetToDefault: '默认'\n      },\n      shortcut: {\n        shortcuts: '快捷键',\n        close: '关闭',\n        textFormatting: '文本格式',\n        action: '动作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文档样式',\n        extraKeys: '额外按键'\n      },\n      history: {\n        undo: '撤销',\n        redo: '重做'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lang/summernote-zh-TW.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-TW': {\n      font: {\n        bold: '粗體',\n        italic: '斜體',\n        underline: '底線',\n        clear: '清除格式',\n        height: '行高',\n        name: '字體',\n        strikethrough: '刪除線',\n        subscript: '下標',\n        superscript: '上標',\n        size: '字號'\n      },\n      image: {\n        image: '圖片',\n        insert: '插入圖片',\n        resizeFull: '縮放至100%',\n        resizeHalf: '縮放至 50%',\n        resizeQuarter: '縮放至 25%',\n        floatLeft: '靠左浮動',\n        floatRight: '靠右浮動',\n        floatNone: '取消浮動',\n        shapeRounded: '形狀: 圓角',\n        shapeCircle: '形狀: 圓',\n        shapeThumbnail: '形狀: 縮略圖',\n        shapeNone: '形狀: 無',\n        dragImageHere: '將圖片拖曳至此處',\n        selectFromFiles: '從本機上傳',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '圖片網址',\n        remove: '移除圖片'\n      },\n      video: {\n        video: '影片',\n        videoLink: '影片連結',\n        insert: '插入影片',\n        url: '影片網址',\n        providers: '(優酷, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '連結',\n        insert: '插入連結',\n        unlink: '取消連結',\n        edit: '編輯連結',\n        textToDisplay: '顯示文字',\n        url: '連結網址',\n        openInNewWindow: '在新視窗開啟'\n      },\n      table: {\n        table: '表格'\n      },\n      hr: {\n        insert: '水平線'\n      },\n      style: {\n        style: '樣式',\n        p: '一般',\n        blockquote: '引用區塊',\n        pre: '程式碼區塊',\n        h1: '標題 1',\n        h2: '標題 2',\n        h3: '標題 3',\n        h4: '標題 4',\n        h5: '標題 5',\n        h6: '標題 6'\n      },\n      lists: {\n        unordered: '項目清單',\n        ordered: '編號清單'\n      },\n      options: {\n        help: '幫助',\n        fullscreen: '全螢幕',\n        codeview: '原始碼'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '取消縮排',\n        indent: '增加縮排',\n        left: '靠右對齊',\n        center: '靠中對齊',\n        right: '靠右對齊',\n        justify: '左右對齊'\n      },\n      color: {\n        recent: '字型顏色',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重設',\n        resetToDefault: '默認'\n      },\n      shortcut: {\n        shortcuts: '快捷鍵',\n        close: '關閉',\n        textFormatting: '文字格式',\n        action: '動作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文件格式',\n        extraKeys: '額外按鍵'\n      },\n      history: {\n        undo: '復原',\n        redo: '取消復原'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/lite.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <title>summernote-lite</title>\n</head>\n<body>\n  <h4>Summernote standalone</h4>\n  <div class=\"summernote\"></div>\n  <script data-main=\"src/js/app\" data-editor-type=\"lite\" src=\"//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/meteor/package-standalone.js",
    "content": "// package metadata file for Meteor.js\n'use strict';\n\nvar packageName = 'summernote:standalone';  // http://atmospherejs.com/summernote:standalone\nvar where = 'client';  // where to install: 'client' or 'server'. For both, pass nothing.\n\nvar packageJson = JSON.parse(Npm.require(\"fs\").readFileSync('package.json'));\n\nPackage.describe({\n  name: packageName,\n  summary: 'summernote standalone (official): WYSIWYG editor with embedded images support, packaged without deps',\n  version: packageJson.version,\n  git: 'https://github.com/summernote/summernote.git'\n});\n\nPackage.onUse(function (api) {\n  api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']);\n  // no exports - summernote adds itself to jQuery\n  api.addFiles([\n    'dist/summernote.js',\n    'dist/summernote.css'\n  ], where);\n\n  api.addAssets([\n    'dist/font/summernote.eot',\n    'dist/font/summernote.ttf',\n    'dist/font/summernote.woff'\n  ], where);\n});\n\nPackage.onTest(function (api) {\n  // load dependencies for test only, before loading the package\n  api.use(['twbs:bootstrap@3.3.1'], where);\n\n  // load our package\n  api.use(packageName, where);\n\n  // load the test runner\n  api.use('tinytest', where);\n\n  api.addFiles('meteor/test.js', where);\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/meteor/package.js",
    "content": "// package metadata file for Meteor.js\n'use strict';\n\nvar packageName = 'summernote:summernote';  // http://atmospherejs.com/summernote:summernote\nvar where = 'client';  // where to install: 'client' or 'server'. For both, pass nothing.\n\nvar packageJson = JSON.parse(Npm.require(\"fs\").readFileSync('package.json'));\n\nPackage.describe({\n  name: packageName,\n  summary: 'summernote (official): jQuery+Bootstrap WYSIWYG editor with embedded images support',\n  version: packageJson.version,\n  git: 'https://github.com/summernote/summernote.git'\n});\n\nPackage.onUse(function (api) {\n  api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']);\n  api.use([\n    'jquery',\n    'twbs:bootstrap@3.3.1'\n  ], where);\n  // no exports - summernote adds itself to jQuery\n  api.addFiles([\n    'dist/summernote.js',\n    'dist/summernote.css'\n  ], where);\n\n  api.addAssets([\n    'dist/font/summernote.eot',\n    'dist/font/summernote.ttf',\n    'dist/font/summernote.woff'\n  ], where);\n});\n\nPackage.onTest(function (api) {\n  api.use(packageName, where);\n  api.use('tinytest', where);\n\n  api.addFiles('meteor/test.js', where);\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/meteor/publish.sh",
    "content": "#!/bin/bash\n# Publish package to Meteor's repository, Atmospherejs.com\n\n# Make sure Meteor is installed, per https://www.meteor.com/install.\n# The curl'ed script is totally safe; takes 2 minutes to read its source and check.\ntype meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }\n\n# sanity check: make sure we're in the root directory of the checkout\ncd \"$( dirname \"$0\" )/..\"\n\nALL_EXIT_CODE=0\n\n# test any package*.js packages we may have, e.g. package.js, package-compat.js\nfor PACKAGE_FILE in meteor/package*.js; do\n\n  # Meteor expects package.js to be in the root directory of the checkout, so copy there our package file under that name, temporarily\n  cp $PACKAGE_FILE ./package.js\n\n  # publish package, creating it if it's the first time we're publishing\n  PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d \"'\" -f 2)\n\n  echo \"Publishing $PACKAGE_NAME...\"\n\n  # Attempt to re-publish the package - the most common operation once the initial release has\n  # been made. If the package name was changed (rare), you'll have to pass the --create flag.\n  meteor publish \"$@\"; EXIT_CODE=$?\n  ALL_EXIT_CODE=$(( $ALL_EXIT_CODE + $EXIT_CODE ))\n  if (( $EXIT_CODE == 0 )); then\n    echo \"Thanks for releasing a new version. You can see it at\"\n    echo \"https://atmospherejs.com/${PACKAGE_NAME/://}\"\n  else\n    echo \"We got an error. Please post it at https://github.com/raix/Meteor-community-discussions/issues/14\"\n  fi\n\n  # rm the temporary build files and package.js\n  rm -rf \".build.$PACKAGE_NAME\" versions.json package.js\n\ndone\n\nexit $ALL_EXIT_CODE\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/meteor/runtests.sh",
    "content": "#!/bin/sh\n# Test Meteor package before publishing to Atmospherejs.com\n\n# Make sure Meteor is installed, per https://www.meteor.com/install.\n# The curl'ed script is totally safe; takes 2 minutes to read its source and check.\ntype meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }\n\n# sanity check: make sure we're in the root directory of the checkout\ncd \"$( dirname \"$0\" )/..\"\n\nALL_EXIT_CODE=0\n\n# test any package*.js packages we may have, e.g. package.js, package-standalone.js\nfor PACKAGE_FILE in meteor/package*.js; do\n\n  # Meteor expects package.js in the root dir of the checkout, so copy there our package file under that name, temporarily\n  cp $PACKAGE_FILE ./package.js\n\n  PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d \"'\" -f 2)\n\n  echo \"### Testing $PACKAGE_NAME...\"\n\n  # provide an invalid MONGO_URL so Meteor doesn't bog us down with an empty Mongo database\n  if [ $# -gt 0 ]; then\n    # interpret any parameter to mean we want an interactive test\n    MONGO_URL=mongodb:// meteor test-packages ./\n  else\n    # automated/CI test with phantomjs\n    spacejam --mongo-url mongodb:// test-packages ./\n    ALL_EXIT_CODES=$(( $ALL_EXIT_CODES + $? ))\n  fi\n\n  # delete temporary build files and package.js\n  rm -rf .build.* versions.json package.js\n\ndone\n\nexit $ALL_EXIT_CODES\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/meteor/test.js",
    "content": "'use strict';\n\nTinytest.add('Instantiation', function (test) {\n  var editor = document.createElement('div');\n  document.body.appendChild(editor);\n  $(editor).summernote();\n\n  test.equal(typeof $(editor).code(), 'string', 'Instantiation');\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/nuget-build.cmd",
    "content": "@echo off\n\ntools\\nuget setApiKey <API_KEY> -ConfigFile tools\\NuGet.Config\ntools\\nuget pack summernote.nuspec -version <VERSION> -OutputDirectory build\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/package.json",
    "content": "{\n  \"name\": \"summernote\",\n  \"description\": \"Super simple WYSIWYG editor\",\n  \"version\": \"0.8.2\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"editor\",\n    \"WYSIWYG\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/summernote/summernote.git\"\n  },\n  \"author\": {\n    \"name\": \"hackerwins\",\n    \"email\": \"<susukang98@gmail.com>\"\n  },\n  \"main\": \"dist/summernote.js\",\n  \"devDependencies\": {\n    \"chai\": \"^3.2.0\",\n    \"chai-spies\": \"^0.7.1\",\n    \"grunt\": \"*\",\n    \"grunt-contrib-clean\": \"^0.7.0\",\n    \"grunt-contrib-compress\": \"*\",\n    \"grunt-contrib-connect\": \"*\",\n    \"grunt-contrib-copy\": \"^0.8.2\",\n    \"grunt-contrib-jshint\": \"0.7.2\",\n    \"grunt-contrib-uglify\": \"~0.2.2\",\n    \"grunt-contrib-watch\": \"*\",\n    \"grunt-coveralls\": \"^1.0.0\",\n    \"grunt-exec\": \"^0.4.6\",\n    \"grunt-jscs\": \"^2.6.0\",\n    \"grunt-karma\": \"^0.12.0\",\n    \"grunt-recess\": \"*\",\n    \"grunt-saucelabs\": \"*\",\n    \"grunt-webfont\": \"^1.0.2\",\n    \"karma\": \"^0.13.3\",\n    \"karma-chrome-launcher\": \"^0.2.0\",\n    \"karma-coverage\": \"^0.5.3\",\n    \"karma-firefox-launcher\": \"^0.1.6\",\n    \"karma-ie-launcher\": \"^0.2.0\",\n    \"karma-mocha\": \"^0.2.0\",\n    \"karma-opera-launcher\": \"^0.3.0\",\n    \"karma-phantomjs-launcher\": \"^0.2.0\",\n    \"karma-requirejs\": \"^0.2.2\",\n    \"karma-safari-launcher\": \"^0.1.1\",\n    \"karma-sauce-launcher\": \"^0.3.0\",\n    \"load-grunt-tasks\": \"0.2.0\",\n    \"mocha\": \"^2.3.4\",\n    \"open\": \"0.0.4\",\n    \"phantomjs\": \"^1.9.17\",\n    \"requirejs\": \"^2.1.22\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/plugin/databasic/summernote-ext-databasic.css",
    "content": ".ext-databasic {\n\tposition: relative;\n\tdisplay: block;\n\tmin-height: 50px;\n\tbackground-color: cyan;\n\ttext-align: center;\n\tpadding: 20px;\n\tborder: 1px solid white;\n\tborder-radius: 10px;\n}\n\n.ext-databasic p {\n\tcolor: white;\n\tfont-size: 1.2em;\n\tmargin: 0;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/plugin/databasic/summernote-ext-databasic.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // pull in some summernote core functions\n  var ui = $.summernote.ui;\n  var dom = $.summernote.dom;\n\n  // define the popover plugin\n  var DataBasicPlugin = function (context) {\n    var self = this;\n    var options = context.options;\n    var lang = options.langInfo;\n    \n    self.icon = '<i class=\"fa fa-object-group\"/>';\n\n    // add context menu button for dialog\n    context.memo('button.databasic', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.insert,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    // add popover edit button\n    context.memo('button.databasicDialog', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.edit,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    //  add popover size buttons\n    context.memo('button.databasicSize100', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: lang.image.resizeFull,\n        click: context.createInvokeHandler('editor.resize', '1')\n      }).render();\n    });\n    context.memo('button.databasicSize50', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: lang.image.resizeHalf,\n        click: context.createInvokeHandler('editor.resize', '0.5')\n      }).render();\n    });\n    context.memo('button.databasicSize25', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: lang.image.resizeQuarter,\n        click: context.createInvokeHandler('editor.resize', '0.25')\n      }).render();\n    });\n\n    self.events = {\n      'summernote.init': function (we, e) {\n        // update existing containers\n        $('data.ext-databasic', e.editable).each(function () { self.setContent($(this)); });\n        // TODO: make this an undo snapshot...\n      },\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hidePopover();\n      }\n    };\n\n    self.initialize = function () {\n      // create dialog markup\n      var $container = options.dialogsInBody ? $(document.body) : context.layoutInfo.editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.databasic.testLabel + '</label>' +\n          '<input class=\"ext-databasic-test form-control\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary ext-databasic-save\">' + lang.databasic.insert + '</button>';\n\n      self.$dialog = ui.dialog({\n        title: lang.databasic.name,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n      \n      // create popover\n      self.$popover = ui.popover({\n        className: 'ext-databasic-popover'\n      }).render().appendTo('body');\n      var $content = self.$popover.find('.popover-content');\n      \n      context.invoke('buttons.build', $content, options.popover.databasic);\n    };\n\n    self.destroy = function () {\n      self.$popover.remove();\n      self.$popover = null;\n      self.$dialog.remove();\n      self.$dialog = null;\n    };\n    \n    self.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        self.hidePopover();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      var visible = false;\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          var pos = dom.posFromPlaceholder($data[0]);\n          \n          self.$popover.css({\n            display: 'block',\n            left: pos.left,\n            top: pos.top\n          });\n          \n          // save editor target to let size buttons resize the container\n          context.invoke('editor.saveTarget', $data[0]);\n\n          visible = true;\n        }\n\n      }\n      \n      // hide if not visible\n      if (!visible) {\n        self.hidePopover();\n      }\n\n    };\n\n    self.hidePopover = function () {\n      self.$popover.hide();\n    };\n\n    // define plugin dialog\n    self.getInfo = function () {\n      var rng = context.invoke('editor.createRange');\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          // Get the first node on range(for edit).\n          return {\n            node: $data,\n            test: $data.attr('data-test')\n          };\n        }\n      }\n      \n      return {};\n    };\n\n    self.setContent = function ($node) {\n      $node.html('<p contenteditable=\"false\">' + self.icon + ' ' + lang.databasic.name + ': ' +\n        $node.attr('data-test') + '</p>');\n    };\n\n    self.updateNode = function (info) {\n      self.setContent(info.node\n        .attr('data-test', info.test));\n    };\n\n    self.createNode = function (info) {\n      var $node = $('<data class=\"ext-databasic\"></data>');\n\n      if ($node) {\n        // save node to info structure\n        info.node = $node;\n        // insert node into editor dom\n        context.invoke('editor.insertNode', $node[0]);\n      }\n\n      return $node;\n    };\n    \n    self.showDialog = function () {\n      var info = self.getInfo();\n      var newNode = !info.node;\n      context.invoke('editor.saveRange');\n      \n      self\n        .openDialog(info)\n        .then(function (dialogInfo) {\n          // [workaround] hide dialog before restore range for IE range focus\n          ui.hideDialog(self.$dialog);\n          context.invoke('editor.restoreRange');\n          \n          // insert a new node\n          if (newNode)\n          {\n            self.createNode(info);\n          }\n          \n          // update info with dialog info\n          $.extend(info, dialogInfo);\n          \n          self.updateNode(info);\n        })\n        .fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n\n    };\n    \n    self.openDialog = function (info) {\n      return $.Deferred(function (deferred) {\n        var $inpTest = self.$dialog.find('.ext-databasic-test');\n        var $saveBtn = self.$dialog.find('.ext-databasic-save');\n        var onKeyup = function (event) {\n            if (event.keyCode === 13)\n            {\n              $saveBtn.trigger('click');\n            }\n          };\n        \n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $inpTest.val(info.test).on('input', function () {\n            ui.toggleBtn($saveBtn, $inpTest.val());\n          }).trigger('focus').on('keyup', onKeyup);\n\n          $saveBtn\n            .text(info.node ? lang.databasic.edit : lang.databasic.insert)\n            .click(function (event) {\n              event.preventDefault();\n\n              deferred.resolve({ test: $inpTest.val() });\n            });\n          \n          // init save button\n          ui.toggleBtn($saveBtn, $inpTest.val());\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $inpTest.off('input keyup');\n          $saveBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  // Extends summernote\n  $.extend(true, $.summernote, {\n    plugins: {\n      databasic: DataBasicPlugin\n    },\n    \n    options: {\n      popover: {\n        databasic: [\n          ['databasic', ['databasicDialog', 'databasicSize100', 'databasicSize50', 'databasicSize25']]\n        ]\n      }\n    },\n    \n    // add localization texts\n    lang: {\n      'en-US': {\n        databasic: {\n          name: 'Basic Data Container',\n          insert: 'insert basic data container',\n          edit: 'edit basic data container',\n          testLabel: 'test input'\n        }\n      }\n    }\n    \n  });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/plugin/hello/summernote-ext-hello.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // Extends plugins for adding hello.\n  //  - plugin is external module for customizing.\n  $.extend($.summernote.plugins, {\n    /**\n     * @param {Object} context - context object has status of editor.\n     */\n    'hello': function (context) {\n      var self = this;\n\n      // ui has renders to build ui elements.\n      //  - you can create a button with `ui.button`\n      var ui = $.summernote.ui;\n\n      // add hello button\n      context.memo('button.hello', function () {\n        // create button\n        var button = ui.button({\n          contents: '<i class=\"fa fa-child\"/> Hello',\n          tooltip: 'hello',\n          click: function () {\n            self.$panel.show();\n            self.$panel.hide(500);\n            // invoke insertText method with 'hello' on editor module.\n            context.invoke('editor.insertText', 'hello');\n          }\n        });\n\n        // create jQuery object from button instance.\n        var $hello = button.render();\n        return $hello;\n      });\n\n      // This events will be attached when editor is initialized.\n      this.events = {\n        // This will be called after modules are initialized.\n        'summernote.init': function (we, e) {\n          console.log('summernote initialized', we, e);\n        },\n        // This will be called when user releases a key on editable.\n        'summernote.keyup': function (we, e) {\n          console.log('summernote keyup', we, e);\n        }\n      };\n\n      // This method will be called when editor is initialized by $('..').summernote();\n      // You can create elements for plugin\n      this.initialize = function () {\n        this.$panel = $('<div class=\"hello-panel\"/>').css({\n          position: 'absolute',\n          width: 100,\n          height: 100,\n          left: '50%',\n          top: '50%',\n          background: 'red'\n        }).hide();\n\n        this.$panel.appendTo('body');\n      };\n\n      // This methods will be called when editor is destroyed by $('..').summernote('destroy');\n      // You should remove elements on `initialize`.\n      this.destroy = function () {\n        this.$panel.remove();\n        this.$panel = null;\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/plugin/specialchars/summernote-ext-specialchars.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  $.extend($.summernote.plugins, {\n    'specialchars': function (context) {\n      var self = this;\n      var ui = $.summernote.ui;\n\n      var $editor = context.layoutInfo.editor;\n      var options = context.options;\n      var lang = options.langInfo;\n\n      var KEY = {\n        UP: 38,\n        DOWN: 40,\n        LEFT: 37,\n        RIGHT: 39,\n        ENTER: 13\n      };\n      var COLUMN_LENGTH = 15;\n      var COLUMN_WIDTH = 35;\n\n      var currentColumn, currentRow, totalColumn, totalRow = 0;\n\n      // special characters data set\n      var specialCharDataSet = [\n        '&quot;', '&amp;', '&lt;', '&gt;', '&iexcl;', '&cent;',\n        '&pound;', '&curren;', '&yen;', '&brvbar;', '&sect;',\n        '&uml;', '&copy;', '&ordf;', '&laquo;', '&not;',\n        '&reg;', '&macr;', '&deg;', '&plusmn;', '&sup2;',\n        '&sup3;', '&acute;', '&micro;', '&para;', '&middot;',\n        '&cedil;', '&sup1;', '&ordm;', '&raquo;', '&frac14;',\n        '&frac12;', '&frac34;', '&iquest;', '&times;', '&divide;',\n        '&fnof;', '&circ;', '&tilde;', '&ndash;', '&mdash;',\n        '&lsquo;', '&rsquo;', '&sbquo;', '&ldquo;', '&rdquo;',\n        '&bdquo;', '&dagger;', '&Dagger;', '&bull;', '&hellip;',\n        '&permil;', '&prime;', '&Prime;', '&lsaquo;', '&rsaquo;',\n        '&oline;', '&frasl;', '&euro;', '&image;', '&weierp;',\n        '&real;', '&trade;', '&alefsym;', '&larr;', '&uarr;',\n        '&rarr;', '&darr;', '&harr;', '&crarr;', '&lArr;',\n        '&uArr;', '&rArr;', '&dArr;', '&hArr;', '&forall;',\n        '&part;', '&exist;', '&empty;', '&nabla;', '&isin;',\n        '&notin;', '&ni;', '&prod;', '&sum;', '&minus;',\n        '&lowast;', '&radic;', '&prop;', '&infin;', '&ang;',\n        '&and;', '&or;', '&cap;', '&cup;', '&int;',\n        '&there4;', '&sim;', '&cong;', '&asymp;', '&ne;',\n        '&equiv;', '&le;', '&ge;', '&sub;', '&sup;',\n        '&nsub;', '&sube;', '&supe;', '&oplus;', '&otimes;',\n        '&perp;', '&sdot;', '&lceil;', '&rceil;', '&lfloor;',\n        '&rfloor;', '&loz;', '&spades;', '&clubs;', '&hearts;',\n        '&diams;'\n      ];\n\n      context.memo('button.specialCharacter', function () {\n        return ui.button({\n          contents: '<i class=\"fa fa-font fa-flip-vertical\">',\n          tooltip: lang.specialChar.specialChar,\n          click: function () {\n            self.show();\n          }\n        }).render();\n      });\n\n      /**\n       * Make Special Characters Table\n       *\n       * @member plugin.specialChar\n       * @private\n       * @return {jQuery}\n       */\n      this.makeSpecialCharSetTable = function () {\n        var $table = $('<table/>');\n        $.each(specialCharDataSet, function (idx, text) {\n          var $td = $('<td/>').addClass('note-specialchar-node');\n          var $tr = (idx % COLUMN_LENGTH === 0) ? $('<tr/>') : $table.find('tr').last();\n\n          var $button = ui.button({\n            callback: function ($node) {\n              $node.html(text);\n              $node.attr('title', text);\n              $node.attr('data-value', encodeURIComponent(text));\n              $node.css({\n                width: COLUMN_WIDTH,\n                'margin-right': '2px',\n                'margin-bottom': '2px'\n              });\n            }\n          }).render();\n\n          $td.append($button);\n\n          $tr.append($td);\n          if (idx % COLUMN_LENGTH === 0) {\n            $table.append($tr);\n          }\n        });\n\n        totalRow = $table.find('tr').length;\n        totalColumn = COLUMN_LENGTH;\n\n        return $table;\n      };\n\n      this.initialize = function () {\n        var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n        var body = '<div class=\"form-group row-fluid\">' + this.makeSpecialCharSetTable()[0].outerHTML + '</div>';\n\n        this.$dialog = ui.dialog({\n          title: lang.specialChar.select,\n          body: body\n        }).render().appendTo($container);\n      };\n\n      this.show = function () {\n        var text = context.invoke('editor.getSelectedText');\n        context.invoke('editor.saveRange');\n        this.showSpecialCharDialog(text).then(function (selectChar) {\n          context.invoke('editor.restoreRange');\n\n          // build node\n          var $node = $('<span></span>').html(selectChar)[0];\n\n          if ($node) {\n            // insert video node\n            context.invoke('editor.insertNode', $node);\n          }\n        }).fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n      };\n\n      /**\n       * show image dialog\n       *\n       * @param {jQuery} $dialog\n       * @return {Promise}\n       */\n      this.showSpecialCharDialog = function (text) {\n        return $.Deferred(function (deferred) {\n          var $specialCharDialog = self.$dialog;\n          var $specialCharNode = $specialCharDialog.find('.note-specialchar-node');\n          var $selectedNode = null;\n          var ARROW_KEYS = [KEY.UP, KEY.DOWN, KEY.LEFT, KEY.RIGHT];\n          var ENTER_KEY = KEY.ENTER;\n\n          function addActiveClass($target) {\n            if (!$target) {\n              return;\n            }\n            $target.find('button').addClass('active');\n            $selectedNode = $target;\n          }\n\n          function removeActiveClass($target) {\n            $target.find('button').removeClass('active');\n            $selectedNode = null;\n          }\n\n          // find next node\n          function findNextNode(row, column) {\n            var findNode = null;\n            $.each($specialCharNode, function (idx, $node) {\n              var findRow = Math.ceil((idx + 1) / COLUMN_LENGTH);\n              var findColumn = ((idx + 1) % COLUMN_LENGTH === 0) ? COLUMN_LENGTH : (idx + 1) % COLUMN_LENGTH;\n              if (findRow === row && findColumn === column) {\n                findNode = $node;\n                return false;\n              }\n            });\n            return $(findNode);\n          }\n\n          function arrowKeyHandler(keyCode) {\n            // left, right, up, down key\n            var $nextNode;\n            var lastRowColumnLength = $specialCharNode.length % totalColumn;\n\n            if (KEY.LEFT === keyCode) {\n\n              if (currentColumn > 1) {\n                currentColumn = currentColumn - 1;\n              } else if (currentRow === 1 && currentColumn === 1) {\n                currentColumn = lastRowColumnLength;\n                currentRow = totalRow;\n              } else {\n                currentColumn = totalColumn;\n                currentRow = currentRow - 1;\n              }\n\n            } else if (KEY.RIGHT === keyCode) {\n\n              if (currentRow === totalRow && lastRowColumnLength === currentColumn) {\n                currentColumn = 1;\n                currentRow = 1;\n              } else if (currentColumn < totalColumn) {\n                currentColumn = currentColumn + 1;\n              } else {\n                currentColumn = 1;\n                currentRow = currentRow + 1;\n              }\n\n            } else if (KEY.UP === keyCode) {\n              if (currentRow === 1 && lastRowColumnLength < currentColumn) {\n                currentRow = totalRow - 1;\n              } else {\n                currentRow = currentRow - 1;\n              }\n            } else if (KEY.DOWN === keyCode) {\n              currentRow = currentRow + 1;\n            }\n\n            if (currentRow === totalRow && currentColumn > lastRowColumnLength) {\n              currentRow = 1;\n            } else if (currentRow > totalRow) {\n              currentRow = 1;\n            } else if (currentRow < 1) {\n              currentRow = totalRow;\n            }\n\n            $nextNode = findNextNode(currentRow, currentColumn);\n\n            if ($nextNode) {\n              removeActiveClass($selectedNode);\n              addActiveClass($nextNode);\n            }\n          }\n\n          function enterKeyHandler() {\n            if (!$selectedNode) {\n              return;\n            }\n\n            deferred.resolve(decodeURIComponent($selectedNode.find('button').attr('data-value')));\n            $specialCharDialog.modal('hide');\n          }\n\n          function keyDownEventHandler(event) {\n            event.preventDefault();\n            var keyCode = event.keyCode;\n            if (keyCode === undefined || keyCode === null) {\n              return;\n            }\n            // check arrowKeys match\n            if (ARROW_KEYS.indexOf(keyCode) > -1) {\n              if ($selectedNode === null) {\n                addActiveClass($specialCharNode.eq(0));\n                currentColumn = 1;\n                currentRow = 1;\n                return;\n              }\n              arrowKeyHandler(keyCode);\n            } else if (keyCode === ENTER_KEY) {\n              enterKeyHandler();\n            }\n            return false;\n          }\n\n          // remove class\n          removeActiveClass($specialCharNode);\n\n          // find selected node\n          if (text) {\n            for (var i = 0; i < $specialCharNode.length; i++) {\n              var $checkNode = $($specialCharNode[i]);\n              if ($checkNode.text() === text) {\n                addActiveClass($checkNode);\n                currentRow = Math.ceil((i + 1) / COLUMN_LENGTH);\n                currentColumn = (i + 1) % COLUMN_LENGTH;\n              }\n            }\n          }\n\n          ui.onDialogShown(self.$dialog, function () {\n\n            $(document).on('keydown', keyDownEventHandler);\n\n            self.$dialog.find('button').tooltip();\n\n            $specialCharNode.on('click', function (event) {\n              event.preventDefault();\n              deferred.resolve(decodeURIComponent($(event.currentTarget).find('button').attr('data-value')));\n              ui.hideDialog(self.$dialog);\n            });\n\n          });\n\n          ui.onDialogHidden(self.$dialog, function () {\n            $specialCharNode.off('click');\n\n            self.$dialog.find('button').tooltip('destroy');\n\n            $(document).off('keydown', keyDownEventHandler);\n\n            if (deferred.state() === 'pending') {\n              deferred.reject();\n            }\n          });\n\n          ui.showDialog(self.$dialog);\n        });\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/pull_request_template.md",
    "content": "#### What does this PR do?\n\n- awesome stuff\n- really cool feature\n- refactor X\n\n#### Where should the reviewer start?\n\n- start on the src/summernote.js\n\n#### How should this be manually tested?\n\n- click here and here\n\n#### Any background context you want to provide?\n\n- the gem needed to be updated... yada yada\n\n#### What are the relevant tickets?\n\n\n#### Screenshots (if for frontend)\n\n\n### Checklist\n- [ ] added relevant tests\n- [ ] didn't break anything\n- [ ] ...\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/icons/templates/summernote.css",
    "content": "/* Generated by grunt-webfont */\n/* Based on https://github.com/endtwist/fontcustom/blob/master/lib/fontcustom/templates/fontcustom.css */\n\n<% if (fontfaceStyles) { %>\n<% if (fontSrc1 && embed.length) { %>\n@font-face {\n  font-family:\"<%= fontBaseName %>\";\n  src:<%= fontSrc1 %>;\n  font-weight:normal;\n  font-style:normal;\n}\n<% } %>@font-face {\n  font-family:\"<%= fontBaseName %>\";<% if (fontSrc1) { %>\nsrc:<%= fontSrc1 %>;<% }%>\nsrc:<%= fontSrc2 %>;\nfont-weight:normal;\nfont-style:normal;\n}\n<% } %>\n<% if (baseStyles) { %>\n/* Bootstrap Overrides */\n[class^=\"<%= classPrefix %>\"]:before,\n[class*=\" <%= classPrefix %>\"]:before<% if (ie7) {%>,\n[class^=\"<%= classPrefix %>\"],\n[class*=\" <%= classPrefix %>\"]<% } %><% if (addLigatures) { %>,\n.ligature-icons<% } %> {\n  display:inline-block;\n  vertical-align:middle;\n  font: normal normal normal 14px <%= fontBaseName %>;\n  font-size: inherit;\n  speak:none;\n  text-decoration:inherit;\n  text-transform:none;\n  text-rendering:auto;\n  -webkit-font-smoothing:antialiased;\n  -moz-osx-font-smoothing:grayscale;\n}<% } %>\n<% if (iconsStyles && stylesheet === 'less') { %>\n/* Mixins */\n<% for (var glyphIdx = 0; glyphIdx < glyphs.length; glyphIdx++) { %>\n.<%= classPrefix %><%= glyphs[glyphIdx] %><% if(glyphIdx === glyphs.length-1) { %> { <% } else { %>, <% } } %>\n&:before {\n   font-family:\"<%= fontBaseName %>\";\n   display:inline-block;\n   font-weight:normal;\n   font-style:normal;\n   text-decoration:inherit;\n }\n}<% } %>\n<% if (extraStyles) { %>\na [class^=\"<%= classPrefix %>\"],\na [class*=\" <%= classPrefix %>\"] {\n  display:inline-block;\n  text-decoration:inherit;\n}\n/* Makes the font 33% larger relative to the icon container */\n.<%= classPrefix %>large:before {\n vertical-align:top;\n font-size:1.333em;\n}\n/* Keeps button heights with and without icons the same */\n.btn [class^=\"<%= classPrefix %>\"],\n.btn [class*=\" <%= classPrefix %>\"] {\n  line-height:0.9em;\n}\nli [class^=\"<%= classPrefix %>\"],\nli [class*=\" <%= classPrefix %>\"] {\n  display:inline-block;\n  width:1.25em;\n  text-align:center;\n}\n/* 1.5 increased font size for <%= classPrefix %>large * 1.25 width */\nli .<%= classPrefix %>large[class^=\"<%= classPrefix %>\"],\nli .<%= classPrefix %>large[class*=\" <%= classPrefix %>\"] {\n  width:1.875em;\n}\nli[class^=\"<%= classPrefix %>\"],\nli[class*=\" <%= classPrefix %>\"] {\n  margin-left:0;\n  list-style-type:none;\n}\nli[class^=\"<%= classPrefix %>\"]:before,\nli[class*=\" <%= classPrefix %>\"]:before {\n  text-indent:-2em;\n  text-align:center;\n}\nli[class^=\"<%= classPrefix %>\"].<%= classPrefix %>large:before,\nli[class*=\" <%= classPrefix %>\"].<%= classPrefix %>large:before {\n  text-indent:-1.333em;\n}\n<% } %>\n\n<% if (iconsStyles) { %>/* Icons */<% for (var glyphIdx = 0; glyphIdx < glyphs.length; glyphIdx++) { %>\n<% if (stylesheet === 'less') { %>\n.<%= classPrefix %><%= glyphs[glyphIdx] %> {\n&:before {\n   content:\"<% if (addLigatures) { %><%= glyphs[glyphIdx] %><% } else { %>\\<%= codepoints[glyphIdx] %><% } %>\";\n }\n<% if (ie7) {%>\n*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x<%= codepoints[glyphIdx] %>;');\n  <% } %>\n}<% } else { %>\n<% if (ie7) {%>.<%= classPrefix %><%= glyphs[glyphIdx] %> {\n  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x<%= codepoints[glyphIdx] %>;');\n}\n<% } %>\n.<%= classPrefix %><%= glyphs[glyphIdx] %>:before {\n  content:\"<% if (addLigatures) { %><%= glyphs[glyphIdx] %><% } else { %>\\<%= codepoints[glyphIdx] %><% } %>\";\n}<% } %>\n<% } } %>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/icons/templates/summernote.json",
    "content": "{\n\t\"baseClass\": \"\",\n\t\"classPrefix\": \"note-icon-\",\n\t\"mixinPrefix\": \"note-icon-\"\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/app.js",
    "content": "var script = document.getElementById('start');\nvar isIE8 = script && script.getAttribute('data-browser') === 'ie8';\n\nvar jqueryLink = isIE8 ? '//code.jquery.com/jquery-1.11.3' : '//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery';\nrequire.config({\n  baseUrl: 'src/js',\n  paths: {\n    jquery: jqueryLink,\n    bootstrap: '//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap',\n    lang: '../../lang/summernote-ko-KR'\n  },\n  shim: {\n    bootstrap: ['jquery'],\n    lang: ['jquery']\n  },\n  packages: [{\n    name: 'summernote',\n    main: 'summernote',\n    location: './'\n  }]\n});\n\nrequire(['jquery', 'summernote'], function ($) {\n  var requireByPromise = function (paths) {\n    return $.Deferred(function (deferred) {\n      require(paths, function () {\n        deferred.resolve.apply(this, arguments);\n      });\n    });\n  };\n\n  var promise = $.Deferred();\n  // editor type setting\n  switch ($('script[data-editor-type]').data('editor-type')) {\n    case 'lite':\n      promise = requireByPromise(['summernote/lite/settings']);\n      break;\n    case 'bs3':\n      promise = requireByPromise(['bootstrap', 'summernote/bs3/settings']).then(function () {\n        return requireByPromise(['lang']);\n      });\n      break;\n  }\n\n  promise.then(function () {\n    // initialize summernote\n    $('.summernote').summernote({\n      height: 300,\n      lang: 'ko-KR',\n      placeholder: 'type here...'\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/Context.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function ($, func, list, dom) {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   * @return {Context}\n   */\n  var Context = function ($note, options) {\n    var self = this;\n\n    var ui = $.summernote.ui;\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = options;\n\n    /**\n     * create layout and initialize modules and other resources\n     */\n    this.initialize = function () {\n      this.layoutInfo = ui.createLayout($note, options);\n      this._initialize();\n      $note.hide();\n      return this;\n    };\n\n    /**\n     * destroy modules and other resources and remove layout\n     */\n    this.destroy = function () {\n      this._destroy();\n      $note.removeData('summernote');\n      ui.removeLayout($note, this.layoutInfo);\n    };\n\n    /**\n     * destory modules and other resources and initialize it again\n     */\n    this.reset = function () {\n      var disabled = self.isDisabled();\n      this.code(dom.emptyPara);\n      this._destroy();\n      this._initialize();\n\n      if (disabled) {\n        self.disable();\n      }\n    };\n\n    this._initialize = function () {\n      // add optional buttons\n      var buttons = $.extend({}, this.options.buttons);\n      Object.keys(buttons).forEach(function (key) {\n        self.memo('button.' + key, buttons[key]);\n      });\n\n      var modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n      // add and initialize modules\n      Object.keys(modules).forEach(function (key) {\n        self.module(key, modules[key], true);\n      });\n\n      Object.keys(this.modules).forEach(function (key) {\n        self.initializeModule(key);\n      });\n    };\n\n    this._destroy = function () {\n      // destroy modules with reversed order\n      Object.keys(this.modules).reverse().forEach(function (key) {\n        self.removeModule(key);\n      });\n\n      Object.keys(this.memos).forEach(function (key) {\n        self.removeMemo(key);\n      });\n    };\n\n    this.code = function (html) {\n      var isActivated = this.invoke('codeview.isActivated');\n\n      if (html === undefined) {\n        this.invoke('codeview.sync');\n        return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n      } else {\n        if (isActivated) {\n          this.layoutInfo.codable.val(html);\n        } else {\n          this.layoutInfo.editable.html(html);\n        }\n        $note.val(html);\n        this.triggerEvent('change', html);\n      }\n    };\n\n    this.isDisabled = function () {\n      return this.layoutInfo.editable.attr('contenteditable') === 'false';\n    };\n\n    this.enable = function () {\n      this.layoutInfo.editable.attr('contenteditable', true);\n      this.invoke('toolbar.activate', true);\n    };\n\n    this.disable = function () {\n      // close codeview if codeview is opend\n      if (this.invoke('codeview.isActivated')) {\n        this.invoke('codeview.deactivate');\n      }\n      this.layoutInfo.editable.attr('contenteditable', false);\n      this.invoke('toolbar.deactivate', true);\n    };\n\n    this.triggerEvent = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n      if (callback) {\n        callback.apply($note[0], args);\n      }\n      $note.trigger('summernote.' + namespace, args);\n    };\n\n    this.initializeModule = function (key) {\n      var module = this.modules[key];\n      module.shouldInitialize = module.shouldInitialize || func.ok;\n      if (!module.shouldInitialize()) {\n        return;\n      }\n\n      // initialize module\n      if (module.initialize) {\n        module.initialize();\n      }\n\n      // attach events\n      if (module.events) {\n        dom.attachEvents($note, module.events);\n      }\n    };\n\n    this.module = function (key, ModuleClass, withoutIntialize) {\n      if (arguments.length === 1) {\n        return this.modules[key];\n      }\n\n      this.modules[key] = new ModuleClass(this);\n\n      if (!withoutIntialize) {\n        this.initializeModule(key);\n      }\n    };\n\n    this.removeModule = function (key) {\n      var module = this.modules[key];\n      if (module.shouldInitialize()) {\n        if (module.events) {\n          dom.detachEvents($note, module.events);\n        }\n\n        if (module.destroy) {\n          module.destroy();\n        }\n      }\n\n      delete this.modules[key];\n    };\n\n    this.memo = function (key, obj) {\n      if (arguments.length === 1) {\n        return this.memos[key];\n      }\n      this.memos[key] = obj;\n    };\n\n    this.removeMemo = function (key) {\n      if (this.memos[key] && this.memos[key].destroy) {\n        this.memos[key].destroy();\n      }\n\n      delete this.memos[key];\n    };\n\n    this.createInvokeHandler = function (namespace, value) {\n      return function (event) {\n        event.preventDefault();\n        self.invoke(namespace, value || $(event.target).closest('[data-value]').data('value'));\n      };\n    };\n\n    this.invoke = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var splits = namespace.split('.');\n      var hasSeparator = splits.length > 1;\n      var moduleName = hasSeparator && list.head(splits);\n      var methodName = hasSeparator ? list.last(splits) : list.head(splits);\n\n      var module = this.modules[moduleName || 'editor'];\n      if (!moduleName && this[methodName]) {\n        return this[methodName].apply(this, args);\n      } else if (module && module[methodName] && module.shouldInitialize()) {\n        return module[methodName].apply(module, args);\n      }\n    };\n\n    return this.initialize();\n  };\n\n  return Context;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/core/agent.js",
    "content": "define(['jquery'], function ($) {\n  var isSupportAmd = typeof define === 'function' && define.amd;\n\n  /**\n   * returns whether font is installed or not.\n   *\n   * @param {String} fontName\n   * @return {Boolean}\n   */\n  var isFontInstalled = function (fontName) {\n    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n    var $tester = $('<div>').css({\n      position: 'absolute',\n      left: '-9999px',\n      top: '-9999px',\n      fontSize: '200px'\n    }).text('mmmmmmmmmwwwwwww').appendTo(document.body);\n\n    var originalWidth = $tester.css('fontFamily', testFontName).width();\n    var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();\n\n    $tester.remove();\n\n    return originalWidth !== width;\n  };\n\n  var userAgent = navigator.userAgent;\n  var isMSIE = /MSIE|Trident/i.test(userAgent);\n  var browserVersion;\n  if (isMSIE) {\n    var matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n    matches = /Trident\\/.*rv:([0-9]{1,}[\\.0-9]{0,})/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n  }\n\n  var isEdge = /Edge\\/\\d+/.test(userAgent);\n\n  var hasCodeMirror = !!window.CodeMirror;\n  if (!hasCodeMirror && isSupportAmd && typeof require !== 'undefined') {\n    if (typeof require.resolve !== 'undefined') {\n      try {\n        // If CodeMirror can't be resolved, `require.resolve` will throw an\n        // exception and `hasCodeMirror` won't be set to `true`.\n        require.resolve('codemirror');\n        hasCodeMirror = true;\n      } catch (e) {\n        // Do nothing.\n      }\n    } else if (typeof eval('require').specified !== 'undefined') {\n      hasCodeMirror = eval('require').specified('codemirror');\n    }\n  }\n\n  /**\n   * @class core.agent\n   *\n   * Object which check platform and agent\n   *\n   * @singleton\n   * @alternateClassName agent\n   */\n  var agent = {\n    isMac: navigator.appVersion.indexOf('Mac') > -1,\n    isMSIE: isMSIE,\n    isEdge: isEdge,\n    isFF: !isEdge && /firefox/i.test(userAgent),\n    isPhantom: /PhantomJS/i.test(userAgent),\n    isWebkit: !isEdge && /webkit/i.test(userAgent),\n    isChrome: !isEdge && /chrome/i.test(userAgent),\n    isSafari: !isEdge && /safari/i.test(userAgent),\n    browserVersion: browserVersion,\n    jqueryVersion: parseFloat($.fn.jquery),\n    isSupportAmd: isSupportAmd,\n    hasCodeMirror: hasCodeMirror,\n    isFontInstalled: isFontInstalled,\n    isW3CRangeSupport: !!document.createRange\n  };\n\n  return agent;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/core/async.js",
    "content": "define(function () {\n  /**\n   * @class core.async\n   *\n   * Async functions which returns `Promise`\n   *\n   * @singleton\n   * @alternateClassName async\n   */\n  var async = (function () {\n    /**\n     * @method readFileAsDataURL\n     *\n     * read contents of file as representing URL\n     *\n     * @param {File} file\n     * @return {Promise} - then: dataUrl\n     */\n    var readFileAsDataURL = function (file) {\n      return $.Deferred(function (deferred) {\n        $.extend(new FileReader(), {\n          onload: function (e) {\n            var dataURL = e.target.result;\n            deferred.resolve(dataURL);\n          },\n          onerror: function () {\n            deferred.reject(this);\n          }\n        }).readAsDataURL(file);\n      }).promise();\n    };\n  \n    /**\n     * @method createImage\n     *\n     * create `<image>` from url string\n     *\n     * @param {String} url\n     * @return {Promise} - then: $image\n     */\n    var createImage = function (url) {\n      return $.Deferred(function (deferred) {\n        var $img = $('<img>');\n\n        $img.one('load', function () {\n          $img.off('error abort');\n          deferred.resolve($img);\n        }).one('error abort', function () {\n          $img.off('load').detach();\n          deferred.reject($img);\n        }).css({\n          display: 'none'\n        }).appendTo(document.body).attr('src', url);\n      }).promise();\n    };\n\n    return {\n      readFileAsDataURL: readFileAsDataURL,\n      createImage: createImage\n    };\n  })();\n\n  return async;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/core/dom.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/agent'\n], function (func, list, agent) {\n\n  var NBSP_CHAR = String.fromCharCode(160);\n  var ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n  /**\n   * @class core.dom\n   *\n   * Dom functions\n   *\n   * @singleton\n   * @alternateClassName dom\n   */\n  var dom = (function () {\n    /**\n     * @method isEditable\n     *\n     * returns whether node is `note-editable` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEditable = function (node) {\n      return node && $(node).hasClass('note-editable');\n    };\n\n    /**\n     * @method isControlSizing\n     *\n     * returns whether node is `note-control-sizing` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isControlSizing = function (node) {\n      return node && $(node).hasClass('note-control-sizing');\n    };\n\n    /**\n     * @method makePredByNodeName\n     *\n     * returns predicate which judge whether nodeName is same\n     *\n     * @param {String} nodeName\n     * @return {Function}\n     */\n    var makePredByNodeName = function (nodeName) {\n      nodeName = nodeName.toUpperCase();\n      return function (node) {\n        return node && node.nodeName.toUpperCase() === nodeName;\n      };\n    };\n\n    /**\n     * @method isText\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is text(3)\n     */\n    var isText = function (node) {\n      return node && node.nodeType === 3;\n    };\n\n    /**\n     * @method isElement\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is element(1)\n     */\n    var isElement = function (node) {\n      return node && node.nodeType === 1;\n    };\n\n    /**\n     * ex) br, col, embed, hr, img, input, ...\n     * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n     */\n    var isVoid = function (node) {\n      return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPara = function (node) {\n      if (isEditable(node)) {\n        return false;\n      }\n\n      // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n      return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHeading = function (node) {\n      return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPre = makePredByNodeName('PRE');\n\n    var isLi = makePredByNodeName('LI');\n\n    var isPurePara = function (node) {\n      return isPara(node) && !isLi(node);\n    };\n\n    var isTable = makePredByNodeName('TABLE');\n\n    var isData = makePredByNodeName('DATA');\n\n    var isInline = function (node) {\n      return !isBodyContainer(node) &&\n             !isList(node) &&\n             !isHr(node) &&\n             !isPara(node) &&\n             !isTable(node) &&\n             !isBlockquote(node) &&\n             !isData(node);\n    };\n\n    var isList = function (node) {\n      return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHr = makePredByNodeName('HR');\n\n    var isCell = function (node) {\n      return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n    };\n\n    var isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\n    var isBodyContainer = function (node) {\n      return isCell(node) || isBlockquote(node) || isEditable(node);\n    };\n\n    var isAnchor = makePredByNodeName('A');\n\n    var isParaInline = function (node) {\n      return isInline(node) && !!ancestor(node, isPara);\n    };\n\n    var isBodyInline = function (node) {\n      return isInline(node) && !ancestor(node, isPara);\n    };\n\n    var isBody = makePredByNodeName('BODY');\n\n    /**\n     * returns whether nodeB is closest sibling of nodeA\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     * @return {Boolean}\n     */\n    var isClosestSibling = function (nodeA, nodeB) {\n      return nodeA.nextSibling === nodeB ||\n             nodeA.previousSibling === nodeB;\n    };\n\n    /**\n     * returns array of closest siblings with node\n     *\n     * @param {Node} node\n     * @param {function} [pred] - predicate function\n     * @return {Node[]}\n     */\n    var withClosestSiblings = function (node, pred) {\n      pred = pred || func.ok;\n\n      var siblings = [];\n      if (node.previousSibling && pred(node.previousSibling)) {\n        siblings.push(node.previousSibling);\n      }\n      siblings.push(node);\n      if (node.nextSibling && pred(node.nextSibling)) {\n        siblings.push(node.nextSibling);\n      }\n      return siblings;\n    };\n\n    /**\n     * blank HTML for cursor position\n     * - [workaround] old IE only works with &nbsp;\n     * - [workaround] IE11 and other browser works with bogus br\n     */\n    var blankHTML = agent.isMSIE && agent.browserVersion < 11 ? '&nbsp;' : '<br>';\n\n    /**\n     * @method nodeLength\n     *\n     * returns #text's text size or element's childNodes size\n     *\n     * @param {Node} node\n     */\n    var nodeLength = function (node) {\n      if (isText(node)) {\n        return node.nodeValue.length;\n      }\n      \n      if (node) {\n        return node.childNodes.length;\n      }\n      \n      return 0;\n      \n    };\n\n    /**\n     * returns whether node is empty or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEmpty = function (node) {\n      var len = nodeLength(node);\n\n      if (len === 0) {\n        return true;\n      } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n        // ex) <p><br></p>, <span><br></span>\n        return true;\n      } else if (list.all(node.childNodes, isText) && node.innerHTML === '') {\n        // ex) <p></p>, <span></span>\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * padding blankHTML if node is empty (for cursor position)\n     */\n    var paddingBlankHTML = function (node) {\n      if (!isVoid(node) && !nodeLength(node)) {\n        node.innerHTML = blankHTML;\n      }\n    };\n\n    /**\n     * find nearest ancestor predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var ancestor = function (node, pred) {\n      while (node) {\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * find nearest ancestor only single child blood line and predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var singleChildAncestor = function (node, pred) {\n      node = node.parentNode;\n\n      while (node) {\n        if (nodeLength(node) !== 1) { break; }\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * returns new array of ancestor nodes (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listAncestor = function (node, pred) {\n      pred = pred || func.fail;\n\n      var ancestors = [];\n      ancestor(node, function (el) {\n        if (!isEditable(el)) {\n          ancestors.push(el);\n        }\n\n        return pred(el);\n      });\n      return ancestors;\n    };\n\n    /**\n     * find farthest ancestor predicate hit\n     */\n    var lastAncestor = function (node, pred) {\n      var ancestors = listAncestor(node);\n      return list.last(ancestors.filter(pred));\n    };\n\n    /**\n     * returns common ancestor node between two nodes.\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     */\n    var commonAncestor = function (nodeA, nodeB) {\n      var ancestors = listAncestor(nodeA);\n      for (var n = nodeB; n; n = n.parentNode) {\n        if ($.inArray(n, ancestors) > -1) { return n; }\n      }\n      return null; // difference document area\n    };\n\n    /**\n     * listing all previous siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listPrev = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.previousSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing next siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listNext = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.nextSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing descendant nodes\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listDescendant = function (node, pred) {\n      var descendants = [];\n      pred = pred || func.ok;\n\n      // start DFS(depth first search) with node\n      (function fnWalk(current) {\n        if (node !== current && pred(current)) {\n          descendants.push(current);\n        }\n        for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {\n          fnWalk(current.childNodes[idx]);\n        }\n      })(node);\n\n      return descendants;\n    };\n\n    /**\n     * wrap node with new tag.\n     *\n     * @param {Node} node\n     * @param {Node} tagName of wrapper\n     * @return {Node} - wrapper\n     */\n    var wrap = function (node, wrapperName) {\n      var parent = node.parentNode;\n      var wrapper = $('<' + wrapperName + '>')[0];\n\n      parent.insertBefore(wrapper, node);\n      wrapper.appendChild(node);\n\n      return wrapper;\n    };\n\n    /**\n     * insert node after preceding\n     *\n     * @param {Node} node\n     * @param {Node} preceding - predicate function\n     */\n    var insertAfter = function (node, preceding) {\n      var next = preceding.nextSibling, parent = preceding.parentNode;\n      if (next) {\n        parent.insertBefore(node, next);\n      } else {\n        parent.appendChild(node);\n      }\n      return node;\n    };\n\n    /**\n     * append elements.\n     *\n     * @param {Node} node\n     * @param {Collection} aChild\n     */\n    var appendChildNodes = function (node, aChild) {\n      $.each(aChild, function (idx, child) {\n        node.appendChild(child);\n      });\n      return node;\n    };\n\n    /**\n     * returns whether boundaryPoint is left edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isLeftEdgePoint = function (point) {\n      return point.offset === 0;\n    };\n\n    /**\n     * returns whether boundaryPoint is right edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isRightEdgePoint = function (point) {\n      return point.offset === nodeLength(point.node);\n    };\n\n    /**\n     * returns whether boundaryPoint is edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isEdgePoint = function (point) {\n      return isLeftEdgePoint(point) || isRightEdgePoint(point);\n    };\n\n    /**\n     * returns whether node is left edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgeOf = function (node, ancestor) {\n      while (node && node !== ancestor) {\n        if (position(node) !== 0) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether node is right edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgeOf = function (node, ancestor) {\n      if (!ancestor) {\n        return false;\n      }\n      while (node && node !== ancestor) {\n        if (position(node) !== nodeLength(node.parentNode) - 1) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether point is left edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgePointOf = function (point, ancestor) {\n      return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns whether point is right edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgePointOf = function (point, ancestor) {\n      return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns offset from parent.\n     *\n     * @param {Node} node\n     */\n    var position = function (node) {\n      var offset = 0;\n      while ((node = node.previousSibling)) {\n        offset += 1;\n      }\n      return offset;\n    };\n\n    var hasChildren = function (node) {\n      return !!(node && node.childNodes && node.childNodes.length);\n    };\n\n    /**\n     * returns previous boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var prevPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (point.offset === 0) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node);\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset - 1];\n        offset = nodeLength(node);\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? 0 : point.offset - 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns next boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var nextPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (nodeLength(point.node) === point.offset) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node) + 1;\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset];\n        offset = 0;\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns whether pointA and pointB is same or not.\n     *\n     * @param {BoundaryPoint} pointA\n     * @param {BoundaryPoint} pointB\n     * @return {Boolean}\n     */\n    var isSamePoint = function (pointA, pointB) {\n      return pointA.node === pointB.node && pointA.offset === pointB.offset;\n    };\n\n    /**\n     * returns whether point is visible (can set cursor) or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isVisiblePoint = function (point) {\n      if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n        return true;\n      }\n\n      var leftNode = point.node.childNodes[point.offset - 1];\n      var rightNode = point.node.childNodes[point.offset];\n      if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * @method prevPointUtil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var prevPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = prevPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * @method nextPointUntil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var nextPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = nextPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * returns whether point has character or not.\n     *\n     * @param {Point} point\n     * @return {Boolean}\n     */\n    var isCharPoint = function (point) {\n      if (!isText(point.node)) {\n        return false;\n      }\n\n      var ch = point.node.nodeValue.charAt(point.offset - 1);\n      return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n    };\n\n    /**\n     * @method walkPoint\n     *\n     * @param {BoundaryPoint} startPoint\n     * @param {BoundaryPoint} endPoint\n     * @param {Function} handler\n     * @param {Boolean} isSkipInnerOffset\n     */\n    var walkPoint = function (startPoint, endPoint, handler, isSkipInnerOffset) {\n      var point = startPoint;\n\n      while (point) {\n        handler(point);\n\n        if (isSamePoint(point, endPoint)) {\n          break;\n        }\n\n        var isSkipOffset = isSkipInnerOffset &&\n                           startPoint.node !== point.node &&\n                           endPoint.node !== point.node;\n        point = nextPoint(point, isSkipOffset);\n      }\n    };\n\n    /**\n     * @method makeOffsetPath\n     *\n     * return offsetPath(array of offset) from ancestor\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {Node} node\n     */\n    var makeOffsetPath = function (ancestor, node) {\n      var ancestors = listAncestor(node, func.eq(ancestor));\n      return ancestors.map(position).reverse();\n    };\n\n    /**\n     * @method fromOffsetPath\n     *\n     * return element from offsetPath(array of offset)\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {array} offsets - offsetPath\n     */\n    var fromOffsetPath = function (ancestor, offsets) {\n      var current = ancestor;\n      for (var i = 0, len = offsets.length; i < len; i++) {\n        if (current.childNodes.length <= offsets[i]) {\n          current = current.childNodes[current.childNodes.length - 1];\n        } else {\n          current = current.childNodes[offsets[i]];\n        }\n      }\n      return current;\n    };\n\n    /**\n     * @method splitNode\n     *\n     * split element or #text\n     *\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitNode = function (point, options) {\n      var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n      var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n\n      // edge case\n      if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n        if (isLeftEdgePoint(point)) {\n          return point.node;\n        } else if (isRightEdgePoint(point)) {\n          return point.node.nextSibling;\n        }\n      }\n\n      // split #text\n      if (isText(point.node)) {\n        return point.node.splitText(point.offset);\n      } else {\n        var childNode = point.node.childNodes[point.offset];\n        var clone = insertAfter(point.node.cloneNode(false), point.node);\n        appendChildNodes(clone, listNext(childNode));\n\n        if (!isSkipPaddingBlankHTML) {\n          paddingBlankHTML(point.node);\n          paddingBlankHTML(clone);\n        }\n\n        return clone;\n      }\n    };\n\n    /**\n     * @method splitTree\n     *\n     * split tree by point\n     *\n     * @param {Node} root - split root\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitTree = function (root, point, options) {\n      // ex) [#text, <span>, <p>]\n      var ancestors = listAncestor(point.node, func.eq(root));\n\n      if (!ancestors.length) {\n        return null;\n      } else if (ancestors.length === 1) {\n        return splitNode(point, options);\n      }\n\n      return ancestors.reduce(function (node, parent) {\n        if (node === point.node) {\n          node = splitNode(point, options);\n        }\n\n        return splitNode({\n          node: parent,\n          offset: node ? dom.position(node) : nodeLength(parent)\n        }, options);\n      });\n    };\n\n    /**\n     * split point\n     *\n     * @param {Point} point\n     * @param {Boolean} isInline\n     * @return {Object}\n     */\n    var splitPoint = function (point, isInline) {\n      // find splitRoot, container\n      //  - inline: splitRoot is a child of paragraph\n      //  - block: splitRoot is a child of bodyContainer\n      var pred = isInline ? isPara : isBodyContainer;\n      var ancestors = listAncestor(point.node, pred);\n      var topAncestor = list.last(ancestors) || point.node;\n\n      var splitRoot, container;\n      if (pred(topAncestor)) {\n        splitRoot = ancestors[ancestors.length - 2];\n        container = topAncestor;\n      } else {\n        splitRoot = topAncestor;\n        container = splitRoot.parentNode;\n      }\n\n      // if splitRoot is exists, split with splitTree\n      var pivot = splitRoot && splitTree(splitRoot, point, {\n        isSkipPaddingBlankHTML: isInline,\n        isNotSplitEdgePoint: isInline\n      });\n\n      // if container is point.node, find pivot with point.offset\n      if (!pivot && container === point.node) {\n        pivot = point.node.childNodes[point.offset];\n      }\n\n      return {\n        rightNode: pivot,\n        container: container\n      };\n    };\n\n    var create = function (nodeName) {\n      return document.createElement(nodeName);\n    };\n\n    var createText = function (text) {\n      return document.createTextNode(text);\n    };\n\n    /**\n     * @method remove\n     *\n     * remove node, (isRemoveChild: remove child or not)\n     *\n     * @param {Node} node\n     * @param {Boolean} isRemoveChild\n     */\n    var remove = function (node, isRemoveChild) {\n      if (!node || !node.parentNode) { return; }\n      if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n      var parent = node.parentNode;\n      if (!isRemoveChild) {\n        var nodes = [];\n        var i, len;\n        for (i = 0, len = node.childNodes.length; i < len; i++) {\n          nodes.push(node.childNodes[i]);\n        }\n\n        for (i = 0, len = nodes.length; i < len; i++) {\n          parent.insertBefore(nodes[i], node);\n        }\n      }\n\n      parent.removeChild(node);\n    };\n\n    /**\n     * @method removeWhile\n     *\n     * @param {Node} node\n     * @param {Function} pred\n     */\n    var removeWhile = function (node, pred) {\n      while (node) {\n        if (isEditable(node) || !pred(node)) {\n          break;\n        }\n\n        var parent = node.parentNode;\n        remove(node);\n        node = parent;\n      }\n    };\n\n    /**\n     * @method replace\n     *\n     * replace node with provided nodeName\n     *\n     * @param {Node} node\n     * @param {String} nodeName\n     * @return {Node} - new node\n     */\n    var replace = function (node, nodeName) {\n      if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n        return node;\n      }\n\n      var newNode = create(nodeName);\n\n      if (node.style.cssText) {\n        newNode.style.cssText = node.style.cssText;\n      }\n\n      appendChildNodes(newNode, list.from(node.childNodes));\n      insertAfter(newNode, node);\n      remove(node);\n\n      return newNode;\n    };\n\n    var isTextarea = makePredByNodeName('TEXTAREA');\n\n    /**\n     * @param {jQuery} $node\n     * @param {Boolean} [stripLinebreaks] - default: false\n     */\n    var value = function ($node, stripLinebreaks) {\n      var val = isTextarea($node[0]) ? $node.val() : $node.html();\n      if (stripLinebreaks) {\n        return val.replace(/[\\n\\r]/g, '');\n      }\n      return val;\n    };\n\n    /**\n     * @method html\n     *\n     * get the HTML contents of node\n     *\n     * @param {jQuery} $node\n     * @param {Boolean} [isNewlineOnBlock]\n     */\n    var html = function ($node, isNewlineOnBlock) {\n      var markup = value($node);\n\n      if (isNewlineOnBlock) {\n        var regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n        markup = markup.replace(regexTag, function (match, endSlash, name) {\n          name = name.toUpperCase();\n          var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n                                       !!endSlash;\n          var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n          return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n        });\n        markup = $.trim(markup);\n      }\n\n      return markup;\n    };\n\n    var posFromPlaceholder = function (placeholder) {\n      var $placeholder = $(placeholder);\n      var pos = $placeholder.offset();\n      var height = $placeholder.outerHeight(true); // include margin\n\n      return {\n        left: pos.left,\n        top: pos.top + height\n      };\n    };\n\n    var attachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.on(key, events[key]);\n      });\n    };\n\n    var detachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.off(key, events[key]);\n      });\n    };\n\n    return {\n      /** @property {String} NBSP_CHAR */\n      NBSP_CHAR: NBSP_CHAR,\n      /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n      ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,\n      /** @property {String} blank */\n      blank: blankHTML,\n      /** @property {String} emptyPara */\n      emptyPara: '<p>' + blankHTML + '</p>',\n      makePredByNodeName: makePredByNodeName,\n      isEditable: isEditable,\n      isControlSizing: isControlSizing,\n      isText: isText,\n      isElement: isElement,\n      isVoid: isVoid,\n      isPara: isPara,\n      isPurePara: isPurePara,\n      isHeading: isHeading,\n      isInline: isInline,\n      isBlock: func.not(isInline),\n      isBodyInline: isBodyInline,\n      isBody: isBody,\n      isParaInline: isParaInline,\n      isPre: isPre,\n      isList: isList,\n      isTable: isTable,\n      isData: isData,\n      isCell: isCell,\n      isBlockquote: isBlockquote,\n      isBodyContainer: isBodyContainer,\n      isAnchor: isAnchor,\n      isDiv: makePredByNodeName('DIV'),\n      isLi: isLi,\n      isBR: makePredByNodeName('BR'),\n      isSpan: makePredByNodeName('SPAN'),\n      isB: makePredByNodeName('B'),\n      isU: makePredByNodeName('U'),\n      isS: makePredByNodeName('S'),\n      isI: makePredByNodeName('I'),\n      isImg: makePredByNodeName('IMG'),\n      isTextarea: isTextarea,\n      isEmpty: isEmpty,\n      isEmptyAnchor: func.and(isAnchor, isEmpty),\n      isClosestSibling: isClosestSibling,\n      withClosestSiblings: withClosestSiblings,\n      nodeLength: nodeLength,\n      isLeftEdgePoint: isLeftEdgePoint,\n      isRightEdgePoint: isRightEdgePoint,\n      isEdgePoint: isEdgePoint,\n      isLeftEdgeOf: isLeftEdgeOf,\n      isRightEdgeOf: isRightEdgeOf,\n      isLeftEdgePointOf: isLeftEdgePointOf,\n      isRightEdgePointOf: isRightEdgePointOf,\n      prevPoint: prevPoint,\n      nextPoint: nextPoint,\n      isSamePoint: isSamePoint,\n      isVisiblePoint: isVisiblePoint,\n      prevPointUntil: prevPointUntil,\n      nextPointUntil: nextPointUntil,\n      isCharPoint: isCharPoint,\n      walkPoint: walkPoint,\n      ancestor: ancestor,\n      singleChildAncestor: singleChildAncestor,\n      listAncestor: listAncestor,\n      lastAncestor: lastAncestor,\n      listNext: listNext,\n      listPrev: listPrev,\n      listDescendant: listDescendant,\n      commonAncestor: commonAncestor,\n      wrap: wrap,\n      insertAfter: insertAfter,\n      appendChildNodes: appendChildNodes,\n      position: position,\n      hasChildren: hasChildren,\n      makeOffsetPath: makeOffsetPath,\n      fromOffsetPath: fromOffsetPath,\n      splitTree: splitTree,\n      splitPoint: splitPoint,\n      create: create,\n      createText: createText,\n      remove: remove,\n      removeWhile: removeWhile,\n      replace: replace,\n      html: html,\n      value: value,\n      posFromPlaceholder: posFromPlaceholder,\n      attachEvents: attachEvents,\n      detachEvents: detachEvents\n    };\n  })();\n\n  return dom;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/core/func.js",
    "content": "define(function () {\n  /**\n   * @class core.func\n   *\n   * func utils (for high-order func's arg)\n   *\n   * @singleton\n   * @alternateClassName func\n   */\n  var func = (function () {\n    var eq = function (itemA) {\n      return function (itemB) {\n        return itemA === itemB;\n      };\n    };\n\n    var eq2 = function (itemA, itemB) {\n      return itemA === itemB;\n    };\n\n    var peq2 = function (propName) {\n      return function (itemA, itemB) {\n        return itemA[propName] === itemB[propName];\n      };\n    };\n\n    var ok = function () {\n      return true;\n    };\n\n    var fail = function () {\n      return false;\n    };\n\n    var not = function (f) {\n      return function () {\n        return !f.apply(f, arguments);\n      };\n    };\n\n    var and = function (fA, fB) {\n      return function (item) {\n        return fA(item) && fB(item);\n      };\n    };\n\n    var self = function (a) {\n      return a;\n    };\n\n    var invoke = function (obj, method) {\n      return function () {\n        return obj[method].apply(obj, arguments);\n      };\n    };\n\n    var idCounter = 0;\n\n    /**\n     * generate a globally-unique id\n     *\n     * @param {String} [prefix]\n     */\n    var uniqueId = function (prefix) {\n      var id = ++idCounter + '';\n      return prefix ? prefix + id : id;\n    };\n\n    /**\n     * returns bnd (bounds) from rect\n     *\n     * - IE Compatibility Issue: http://goo.gl/sRLOAo\n     * - Scroll Issue: http://goo.gl/sNjUc\n     *\n     * @param {Rect} rect\n     * @return {Object} bounds\n     * @return {Number} bounds.top\n     * @return {Number} bounds.left\n     * @return {Number} bounds.width\n     * @return {Number} bounds.height\n     */\n    var rect2bnd = function (rect) {\n      var $document = $(document);\n      return {\n        top: rect.top + $document.scrollTop(),\n        left: rect.left + $document.scrollLeft(),\n        width: rect.right - rect.left,\n        height: rect.bottom - rect.top\n      };\n    };\n\n    /**\n     * returns a copy of the object where the keys have become the values and the values the keys.\n     * @param {Object} obj\n     * @return {Object}\n     */\n    var invertObject = function (obj) {\n      var inverted = {};\n      for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n          inverted[obj[key]] = key;\n        }\n      }\n      return inverted;\n    };\n\n    /**\n     * @param {String} namespace\n     * @param {String} [prefix]\n     * @return {String}\n     */\n    var namespaceToCamel = function (namespace, prefix) {\n      prefix = prefix || '';\n      return prefix + namespace.split('.').map(function (name) {\n        return name.substring(0, 1).toUpperCase() + name.substring(1);\n      }).join('');\n    };\n\n    /**\n     * Returns a function, that, as long as it continues to be invoked, will not\n     * be triggered. The function will be called after it stops being called for\n     * N milliseconds. If `immediate` is passed, trigger the function on the\n     * leading edge, instead of the trailing.\n     * @param {Function} func\n     * @param {Number} wait\n     * @param {Boolean} immediate\n     * @return {Function}\n     */\n    var debounce = function (func, wait, immediate) {\n      var timeout;\n      return function () {\n        var context = this, args = arguments;\n        var later = function () {\n          timeout = null;\n          if (!immediate) {\n            func.apply(context, args);\n          }\n        };\n        var callNow = immediate && !timeout;\n        clearTimeout(timeout);\n        timeout = setTimeout(later, wait);\n        if (callNow) {\n          func.apply(context, args);\n        }\n      };\n    };\n\n    return {\n      eq: eq,\n      eq2: eq2,\n      peq2: peq2,\n      ok: ok,\n      fail: fail,\n      self: self,\n      not: not,\n      and: and,\n      invoke: invoke,\n      uniqueId: uniqueId,\n      rect2bnd: rect2bnd,\n      invertObject: invertObject,\n      namespaceToCamel: namespaceToCamel,\n      debounce: debounce\n    };\n  })();\n\n  return func;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/core/key.js",
    "content": "define([\n  'summernote/base/core/list',\n  'summernote/base/core/func'\n], function (list, func) {\n  /**\n   * @class core.key\n   *\n   * Object for keycodes.\n   *\n   * @singleton\n   * @alternateClassName key\n   */\n  var key = (function () {\n    var keyMap = {\n      'BACKSPACE': 8,\n      'TAB': 9,\n      'ENTER': 13,\n      'SPACE': 32,\n\n      // Arrow\n      'LEFT': 37,\n      'UP': 38,\n      'RIGHT': 39,\n      'DOWN': 40,\n\n      // Number: 0-9\n      'NUM0': 48,\n      'NUM1': 49,\n      'NUM2': 50,\n      'NUM3': 51,\n      'NUM4': 52,\n      'NUM5': 53,\n      'NUM6': 54,\n      'NUM7': 55,\n      'NUM8': 56,\n\n      // Alphabet: a-z\n      'B': 66,\n      'E': 69,\n      'I': 73,\n      'J': 74,\n      'K': 75,\n      'L': 76,\n      'R': 82,\n      'S': 83,\n      'U': 85,\n      'V': 86,\n      'Y': 89,\n      'Z': 90,\n\n      'SLASH': 191,\n      'LEFTBRACKET': 219,\n      'BACKSLASH': 220,\n      'RIGHTBRACKET': 221\n    };\n\n    return {\n      /**\n       * @method isEdit\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isEdit: function (keyCode) {\n        return list.contains([\n          keyMap.BACKSPACE,\n          keyMap.TAB,\n          keyMap.ENTER,\n          keyMap.SPACE\n        ], keyCode);\n      },\n      /**\n       * @method isMove\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isMove: function (keyCode) {\n        return list.contains([\n          keyMap.LEFT,\n          keyMap.UP,\n          keyMap.RIGHT,\n          keyMap.DOWN\n        ], keyCode);\n      },\n      /**\n       * @property {Object} nameFromCode\n       * @property {String} nameFromCode.8 \"BACKSPACE\"\n       */\n      nameFromCode: func.invertObject(keyMap),\n      code: keyMap\n    };\n  })();\n\n  return key;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/core/list.js",
    "content": "define(['summernote/base/core/func'], function (func) {\n  /**\n   * @class core.list\n   *\n   * list utils\n   *\n   * @singleton\n   * @alternateClassName list\n   */\n  var list = (function () {\n    /**\n     * returns the first item of an array.\n     *\n     * @param {Array} array\n     */\n    var head = function (array) {\n      return array[0];\n    };\n\n    /**\n     * returns the last item of an array.\n     *\n     * @param {Array} array\n     */\n    var last = function (array) {\n      return array[array.length - 1];\n    };\n\n    /**\n     * returns everything but the last entry of the array.\n     *\n     * @param {Array} array\n     */\n    var initial = function (array) {\n      return array.slice(0, array.length - 1);\n    };\n\n    /**\n     * returns the rest of the items in an array.\n     *\n     * @param {Array} array\n     */\n    var tail = function (array) {\n      return array.slice(1);\n    };\n\n    /**\n     * returns item of array\n     */\n    var find = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        var item = array[idx];\n        if (pred(item)) {\n          return item;\n        }\n      }\n    };\n\n    /**\n     * returns true if all of the values in the array pass the predicate truth test.\n     */\n    var all = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!pred(array[idx])) {\n          return false;\n        }\n      }\n      return true;\n    };\n\n    /**\n     * returns index of item\n     */\n    var indexOf = function (array, item) {\n      return $.inArray(item, array);\n    };\n\n    /**\n     * returns true if the value is present in the list.\n     */\n    var contains = function (array, item) {\n      return indexOf(array, item) !== -1;\n    };\n\n    /**\n     * get sum from a list\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - iterator\n     */\n    var sum = function (array, fn) {\n      fn = fn || func.self;\n      return array.reduce(function (memo, v) {\n        return memo + fn(v);\n      }, 0);\n    };\n  \n    /**\n     * returns a copy of the collection with array type.\n     * @param {Collection} collection - collection eg) node.childNodes, ...\n     */\n    var from = function (collection) {\n      var result = [], idx = -1, length = collection.length;\n      while (++idx < length) {\n        result[idx] = collection[idx];\n      }\n      return result;\n    };\n\n    /**\n     * returns whether list is empty or not\n     */\n    var isEmpty = function (array) {\n      return !array || !array.length;\n    };\n  \n    /**\n     * cluster elements by predicate function.\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     * @param {Array[]}\n     */\n    var clusterBy = function (array, fn) {\n      if (!array.length) { return []; }\n      var aTail = tail(array);\n      return aTail.reduce(function (memo, v) {\n        var aLast = last(memo);\n        if (fn(last(aLast), v)) {\n          aLast[aLast.length] = v;\n        } else {\n          memo[memo.length] = [v];\n        }\n        return memo;\n      }, [[head(array)]]);\n    };\n  \n    /**\n     * returns a copy of the array with all false values removed\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     */\n    var compact = function (array) {\n      var aResult = [];\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (array[idx]) { aResult.push(array[idx]); }\n      }\n      return aResult;\n    };\n\n    /**\n     * produces a duplicate-free version of the array\n     *\n     * @param {Array} array\n     */\n    var unique = function (array) {\n      var results = [];\n\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!contains(results, array[idx])) {\n          results.push(array[idx]);\n        }\n      }\n\n      return results;\n    };\n\n    /**\n     * returns next item.\n     * @param {Array} array\n     */\n    var next = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx + 1];\n    };\n\n    /**\n     * returns prev item.\n     * @param {Array} array\n     */\n    var prev = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx - 1];\n    };\n\n    return { head: head, last: last, initial: initial, tail: tail,\n             prev: prev, next: next, find: find, contains: contains,\n             all: all, sum: sum, from: from, isEmpty: isEmpty,\n             clusterBy: clusterBy, compact: compact, unique: unique };\n  })();\n\n  return list;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/core/range.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function ($, agent, func, list, dom) {\n  var range = (function () {\n\n    /**\n     * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n     *\n     * @param {TextRange} textRange\n     * @param {Boolean} isStart\n     * @return {BoundaryPoint}\n     *\n     * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n     */\n    var textRangeToPoint = function (textRange, isStart) {\n      var container = textRange.parentElement(), offset;\n  \n      var tester = document.body.createTextRange(), prevContainer;\n      var childNodes = list.from(container.childNodes);\n      for (offset = 0; offset < childNodes.length; offset++) {\n        if (dom.isText(childNodes[offset])) {\n          continue;\n        }\n        tester.moveToElementText(childNodes[offset]);\n        if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n          break;\n        }\n        prevContainer = childNodes[offset];\n      }\n  \n      if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n        var textRangeStart = document.body.createTextRange(), curTextNode = null;\n        textRangeStart.moveToElementText(prevContainer || container);\n        textRangeStart.collapse(!prevContainer);\n        curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n  \n        var pointTester = textRange.duplicate();\n        pointTester.setEndPoint('StartToStart', textRangeStart);\n        var textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n  \n        while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        /* jshint ignore:start */\n        var dummy = curTextNode.nodeValue; // enforce IE to re-reference curTextNode, hack\n        /* jshint ignore:end */\n  \n        if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n            textCount === curTextNode.nodeValue.length) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        container = curTextNode;\n        offset = textCount;\n      }\n  \n      return {\n        cont: container,\n        offset: offset\n      };\n    };\n    \n    /**\n     * return TextRange from boundary point (inspired by google closure-library)\n     * @param {BoundaryPoint} point\n     * @return {TextRange}\n     */\n    var pointToTextRange = function (point) {\n      var textRangeInfo = function (container, offset) {\n        var node, isCollapseToStart;\n  \n        if (dom.isText(container)) {\n          var prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n          var prevContainer = list.last(prevTextNodes).previousSibling;\n          node =  prevContainer || container.parentNode;\n          offset += list.sum(list.tail(prevTextNodes), dom.nodeLength);\n          isCollapseToStart = !prevContainer;\n        } else {\n          node = container.childNodes[offset] || container;\n          if (dom.isText(node)) {\n            return textRangeInfo(node, 0);\n          }\n  \n          offset = 0;\n          isCollapseToStart = false;\n        }\n  \n        return {\n          node: node,\n          collapseToStart: isCollapseToStart,\n          offset: offset\n        };\n      };\n  \n      var textRange = document.body.createTextRange();\n      var info = textRangeInfo(point.node, point.offset);\n  \n      textRange.moveToElementText(info.node);\n      textRange.collapse(info.collapseToStart);\n      textRange.moveStart('character', info.offset);\n      return textRange;\n    };\n    \n    /**\n     * Wrapped Range\n     *\n     * @constructor\n     * @param {Node} sc - start container\n     * @param {Number} so - start offset\n     * @param {Node} ec - end container\n     * @param {Number} eo - end offset\n     */\n    var WrappedRange = function (sc, so, ec, eo) {\n      this.sc = sc;\n      this.so = so;\n      this.ec = ec;\n      this.eo = eo;\n  \n      // nativeRange: get nativeRange from sc, so, ec, eo\n      var nativeRange = function () {\n        if (agent.isW3CRangeSupport) {\n          var w3cRange = document.createRange();\n          w3cRange.setStart(sc, so);\n          w3cRange.setEnd(ec, eo);\n\n          return w3cRange;\n        } else {\n          var textRange = pointToTextRange({\n            node: sc,\n            offset: so\n          });\n\n          textRange.setEndPoint('EndToEnd', pointToTextRange({\n            node: ec,\n            offset: eo\n          }));\n\n          return textRange;\n        }\n      };\n\n      this.getPoints = function () {\n        return {\n          sc: sc,\n          so: so,\n          ec: ec,\n          eo: eo\n        };\n      };\n\n      this.getStartPoint = function () {\n        return {\n          node: sc,\n          offset: so\n        };\n      };\n\n      this.getEndPoint = function () {\n        return {\n          node: ec,\n          offset: eo\n        };\n      };\n\n      /**\n       * select update visible range\n       */\n      this.select = function () {\n        var nativeRng = nativeRange();\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (selection.rangeCount > 0) {\n            selection.removeAllRanges();\n          }\n          selection.addRange(nativeRng);\n        } else {\n          nativeRng.select();\n        }\n        \n        return this;\n      };\n\n      /**\n       * Moves the scrollbar to start container(sc) of current range\n       *\n       * @return {WrappedRange}\n       */\n      this.scrollIntoView = function (container) {\n        var height = $(container).height();\n        if (container.scrollTop + height < this.sc.offsetTop) {\n          container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n        }\n\n        return this;\n      };\n\n      /**\n       * @return {WrappedRange}\n       */\n      this.normalize = function () {\n\n        /**\n         * @param {BoundaryPoint} point\n         * @param {Boolean} isLeftToRight\n         * @return {BoundaryPoint}\n         */\n        var getVisiblePoint = function (point, isLeftToRight) {\n          if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||\n              (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n            return point;\n          }\n\n          // point on block's edge\n          var block = dom.ancestor(point.node, dom.isBlock);\n          if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n              ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\n\n            // returns point already on visible point\n            if (dom.isVisiblePoint(point)) {\n              return point;\n            }\n            // reverse direction \n            isLeftToRight = !isLeftToRight;\n          }\n\n          var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) :\n                                          dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n          return nextPoint || point;\n        };\n\n        var endPoint = getVisiblePoint(this.getEndPoint(), false);\n        var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n\n      /**\n       * returns matched nodes on range\n       *\n       * @param {Function} [pred] - predicate function\n       * @param {Object} [options]\n       * @param {Boolean} [options.includeAncestor]\n       * @param {Boolean} [options.fullyContains]\n       * @return {Node[]}\n       */\n      this.nodes = function (pred, options) {\n        pred = pred || func.ok;\n\n        var includeAncestor = options && options.includeAncestor;\n        var fullyContains = options && options.fullyContains;\n\n        // TODO compare points and sort\n        var startPoint = this.getStartPoint();\n        var endPoint = this.getEndPoint();\n\n        var nodes = [];\n        var leftEdgeNodes = [];\n\n        dom.walkPoint(startPoint, endPoint, function (point) {\n          if (dom.isEditable(point.node)) {\n            return;\n          }\n\n          var node;\n          if (fullyContains) {\n            if (dom.isLeftEdgePoint(point)) {\n              leftEdgeNodes.push(point.node);\n            }\n            if (dom.isRightEdgePoint(point) && list.contains(leftEdgeNodes, point.node)) {\n              node = point.node;\n            }\n          } else if (includeAncestor) {\n            node = dom.ancestor(point.node, pred);\n          } else {\n            node = point.node;\n          }\n\n          if (node && pred(node)) {\n            nodes.push(node);\n          }\n        }, true);\n\n        return list.unique(nodes);\n      };\n\n      /**\n       * returns commonAncestor of range\n       * @return {Element} - commonAncestor\n       */\n      this.commonAncestor = function () {\n        return dom.commonAncestor(sc, ec);\n      };\n\n      /**\n       * returns expanded range by pred\n       *\n       * @param {Function} pred - predicate function\n       * @return {WrappedRange}\n       */\n      this.expand = function (pred) {\n        var startAncestor = dom.ancestor(sc, pred);\n        var endAncestor = dom.ancestor(ec, pred);\n\n        if (!startAncestor && !endAncestor) {\n          return new WrappedRange(sc, so, ec, eo);\n        }\n\n        var boundaryPoints = this.getPoints();\n\n        if (startAncestor) {\n          boundaryPoints.sc = startAncestor;\n          boundaryPoints.so = 0;\n        }\n\n        if (endAncestor) {\n          boundaryPoints.ec = endAncestor;\n          boundaryPoints.eo = dom.nodeLength(endAncestor);\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * @param {Boolean} isCollapseToStart\n       * @return {WrappedRange}\n       */\n      this.collapse = function (isCollapseToStart) {\n        if (isCollapseToStart) {\n          return new WrappedRange(sc, so, sc, so);\n        } else {\n          return new WrappedRange(ec, eo, ec, eo);\n        }\n      };\n\n      /**\n       * splitText on range\n       */\n      this.splitText = function () {\n        var isSameContainer = sc === ec;\n        var boundaryPoints = this.getPoints();\n\n        if (dom.isText(ec) && !dom.isEdgePoint(this.getEndPoint())) {\n          ec.splitText(eo);\n        }\n\n        if (dom.isText(sc) && !dom.isEdgePoint(this.getStartPoint())) {\n          boundaryPoints.sc = sc.splitText(so);\n          boundaryPoints.so = 0;\n\n          if (isSameContainer) {\n            boundaryPoints.ec = boundaryPoints.sc;\n            boundaryPoints.eo = eo - so;\n          }\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * delete contents on range\n       * @return {WrappedRange}\n       */\n      this.deleteContents = function () {\n        if (this.isCollapsed()) {\n          return this;\n        }\n\n        var rng = this.splitText();\n        var nodes = rng.nodes(null, {\n          fullyContains: true\n        });\n\n        // find new cursor point\n        var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {\n          return !list.contains(nodes, point.node);\n        });\n\n        var emptyParents = [];\n        $.each(nodes, function (idx, node) {\n          // find empty parents\n          var parent = node.parentNode;\n          if (point.node !== parent && dom.nodeLength(parent) === 1) {\n            emptyParents.push(parent);\n          }\n          dom.remove(node, false);\n        });\n\n        // remove empty parents\n        $.each(emptyParents, function (idx, node) {\n          dom.remove(node, false);\n        });\n\n        return new WrappedRange(\n          point.node,\n          point.offset,\n          point.node,\n          point.offset\n        ).normalize();\n      };\n      \n      /**\n       * makeIsOn: return isOn(pred) function\n       */\n      var makeIsOn = function (pred) {\n        return function () {\n          var ancestor = dom.ancestor(sc, pred);\n          return !!ancestor && (ancestor === dom.ancestor(ec, pred));\n        };\n      };\n  \n      // isOnEditable: judge whether range is on editable or not\n      this.isOnEditable = makeIsOn(dom.isEditable);\n      // isOnList: judge whether range is on list node or not\n      this.isOnList = makeIsOn(dom.isList);\n      // isOnAnchor: judge whether range is on anchor node or not\n      this.isOnAnchor = makeIsOn(dom.isAnchor);\n      // isOnCell: judge whether range is on cell node or not\n      this.isOnCell = makeIsOn(dom.isCell);\n      // isOnData: judge whether range is on data node or not\n      this.isOnData = makeIsOn(dom.isData);\n\n      /**\n       * @param {Function} pred\n       * @return {Boolean}\n       */\n      this.isLeftEdgeOf = function (pred) {\n        if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n          return false;\n        }\n\n        var node = dom.ancestor(this.sc, pred);\n        return node && dom.isLeftEdgeOf(this.sc, node);\n      };\n\n      /**\n       * returns whether range was collapsed or not\n       */\n      this.isCollapsed = function () {\n        return sc === ec && so === eo;\n      };\n\n      /**\n       * wrap inline nodes which children of body with paragraph\n       *\n       * @return {WrappedRange}\n       */\n      this.wrapBodyInlineWithPara = function () {\n        if (dom.isBodyContainer(sc) && dom.isEmpty(sc)) {\n          sc.innerHTML = dom.emptyPara;\n          return new WrappedRange(sc.firstChild, 0, sc.firstChild, 0);\n        }\n\n        /**\n         * [workaround] firefox often create range on not visible point. so normalize here.\n         *  - firefox: |<p>text</p>|\n         *  - chrome: <p>|text|</p>\n         */\n        var rng = this.normalize();\n        if (dom.isParaInline(sc) || dom.isPara(sc)) {\n          return rng;\n        }\n\n        // find inline top ancestor\n        var topAncestor;\n        if (dom.isInline(rng.sc)) {\n          var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n          topAncestor = list.last(ancestors);\n          if (!dom.isInline(topAncestor)) {\n            topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n          }\n        } else {\n          topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n        }\n\n        // siblings not in paragraph\n        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n        // wrap with paragraph\n        if (inlineSiblings.length) {\n          var para = dom.wrap(list.head(inlineSiblings), 'p');\n          dom.appendChildNodes(para, list.tail(inlineSiblings));\n        }\n\n        return this.normalize();\n      };\n\n      /**\n       * insert node at current cursor\n       *\n       * @param {Node} node\n       * @return {Node}\n       */\n      this.insertNode = function (node) {\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n        var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n        if (info.rightNode) {\n          info.rightNode.parentNode.insertBefore(node, info.rightNode);\n        } else {\n          info.container.appendChild(node);\n        }\n\n        return node;\n      };\n\n      /**\n       * insert html at current cursor\n       */\n      this.pasteHTML = function (markup) {\n        var contentsContainer = $('<div></div>').html(markup)[0];\n        var childNodes = list.from(contentsContainer.childNodes);\n\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n\n        return childNodes.reverse().map(function (childNode) {\n          return rng.insertNode(childNode);\n        }).reverse();\n      };\n  \n      /**\n       * returns text in range\n       *\n       * @return {String}\n       */\n      this.toString = function () {\n        var nativeRng = nativeRange();\n        return agent.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n      };\n\n      /**\n       * returns range for word before cursor\n       *\n       * @param {Boolean} [findAfter] - find after cursor, default: false\n       * @return {WrappedRange}\n       */\n      this.getWordRange = function (findAfter) {\n        var endPoint = this.getEndPoint();\n\n        if (!dom.isCharPoint(endPoint)) {\n          return this;\n        }\n\n        var startPoint = dom.prevPointUntil(endPoint, function (point) {\n          return !dom.isCharPoint(point);\n        });\n\n        if (findAfter) {\n          endPoint = dom.nextPointUntil(endPoint, function (point) {\n            return !dom.isCharPoint(point);\n          });\n        }\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n  \n      /**\n       * create offsetPath bookmark\n       *\n       * @param {Node} editable\n       */\n      this.bookmark = function (editable) {\n        return {\n          s: {\n            path: dom.makeOffsetPath(editable, sc),\n            offset: so\n          },\n          e: {\n            path: dom.makeOffsetPath(editable, ec),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * create offsetPath bookmark base on paragraph\n       *\n       * @param {Node[]} paras\n       */\n      this.paraBookmark = function (paras) {\n        return {\n          s: {\n            path: list.tail(dom.makeOffsetPath(list.head(paras), sc)),\n            offset: so\n          },\n          e: {\n            path: list.tail(dom.makeOffsetPath(list.last(paras), ec)),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * getClientRects\n       * @return {Rect[]}\n       */\n      this.getClientRects = function () {\n        var nativeRng = nativeRange();\n        return nativeRng.getClientRects();\n      };\n    };\n\n  /**\n   * @class core.range\n   *\n   * Data structure\n   *  * BoundaryPoint: a point of dom tree\n   *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n   *\n   * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n   *\n   * @singleton\n   * @alternateClassName range\n   */\n    return {\n      /**\n       * create Range Object From arguments or Browser Selection\n       *\n       * @param {Node} sc - start container\n       * @param {Number} so - start offset\n       * @param {Node} ec - end container\n       * @param {Number} eo - end offset\n       * @return {WrappedRange}\n       */\n      create: function (sc, so, ec, eo) {\n        if (arguments.length === 4) {\n          return new WrappedRange(sc, so, ec, eo);\n        } else if (arguments.length === 2) { //collapsed\n          ec = sc;\n          eo = so;\n          return new WrappedRange(sc, so, ec, eo);\n        } else {\n          var wrappedRange = this.createFromSelection();\n          if (!wrappedRange && arguments.length === 1) {\n            wrappedRange = this.createFromNode(arguments[0]);\n            return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n          }\n          return wrappedRange;\n        }\n      },\n\n      createFromSelection: function () {\n        var sc, so, ec, eo;\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (!selection || selection.rangeCount === 0) {\n            return null;\n          } else if (dom.isBody(selection.anchorNode)) {\n            // Firefox: returns entire body as range on initialization.\n            // We won't never need it.\n            return null;\n          }\n\n          var nativeRng = selection.getRangeAt(0);\n          sc = nativeRng.startContainer;\n          so = nativeRng.startOffset;\n          ec = nativeRng.endContainer;\n          eo = nativeRng.endOffset;\n        } else { // IE8: TextRange\n          var textRange = document.selection.createRange();\n          var textRangeEnd = textRange.duplicate();\n          textRangeEnd.collapse(false);\n          var textRangeStart = textRange;\n          textRangeStart.collapse(true);\n\n          var startPoint = textRangeToPoint(textRangeStart, true),\n          endPoint = textRangeToPoint(textRangeEnd, false);\n\n          // same visible point case: range was collapsed.\n          if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n              dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n              endPoint.node.nextSibling === startPoint.node) {\n            startPoint = endPoint;\n          }\n\n          sc = startPoint.cont;\n          so = startPoint.offset;\n          ec = endPoint.cont;\n          eo = endPoint.offset;\n        }\n\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from node\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNode: function (node) {\n        var sc = node;\n        var so = 0;\n        var ec = node;\n        var eo = dom.nodeLength(ec);\n\n        // browsers can't target a picture or void node\n        if (dom.isVoid(sc)) {\n          so = dom.listPrev(sc).length - 1;\n          sc = sc.parentNode;\n        }\n        if (dom.isBR(ec)) {\n          eo = dom.listPrev(ec).length - 1;\n          ec = ec.parentNode;\n        } else if (dom.isVoid(ec)) {\n          eo = dom.listPrev(ec).length;\n          ec = ec.parentNode;\n        }\n\n        return this.create(sc, so, ec, eo);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeBefore: function (node) {\n        return this.createFromNode(node).collapse(true);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeAfter: function (node) {\n        return this.createFromNode(node).collapse();\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from bookmark\n       *\n       * @param {Node} editable\n       * @param {Object} bookmark\n       * @return {WrappedRange}\n       */\n      createFromBookmark: function (editable, bookmark) {\n        var sc = dom.fromOffsetPath(editable, bookmark.s.path);\n        var so = bookmark.s.offset;\n        var ec = dom.fromOffsetPath(editable, bookmark.e.path);\n        var eo = bookmark.e.offset;\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       *\n       * create WrappedRange from paraBookmark\n       *\n       * @param {Object} bookmark\n       * @param {Node[]} paras\n       * @return {WrappedRange}\n       */\n      createFromParaBookmark: function (bookmark, paras) {\n        var so = bookmark.s.offset;\n        var eo = bookmark.e.offset;\n        var sc = dom.fromOffsetPath(list.head(paras), bookmark.s.path);\n        var ec = dom.fromOffsetPath(list.last(paras), bookmark.e.path);\n\n        return new WrappedRange(sc, so, ec, eo);\n      }\n    };\n  })();\n\n  return range;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/editing/Bullet.js",
    "content": "define([\n  'summernote/base/core/list',\n  'summernote/base/core/func',\n  'summernote/base/core/dom',\n  'summernote/base/core/range'\n], function (list, func, dom, range) {\n\n  /**\n   * @class editing.Bullet\n   *\n   * @alternateClassName Bullet\n   */\n  var Bullet = function () {\n    var self = this;\n\n    /**\n     * toggle ordered list\n     */\n    this.insertOrderedList = function (editable) {\n      this.toggleList('OL', editable);\n    };\n\n    /**\n     * toggle unordered list\n     */\n    this.insertUnorderedList = function (editable) {\n      this.toggleList('UL', editable);\n    };\n\n    /**\n     * indent\n     */\n    this.indent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.wrapList(paras, head.parentNode.nodeName);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              return (parseInt(val, 10) || 0) + 25;\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * outdent\n     */\n    this.outdent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.releaseList([paras]);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              val = (parseInt(val, 10) || 0);\n              return val > 25 ? val - 25 : '';\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * toggle list\n     *\n     * @param {String} listName - OL or UL\n     */\n    this.toggleList = function (listName, editable) {\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var bookmark = rng.paraBookmark(paras);\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      // paragraph to list\n      if (list.find(paras, dom.isPurePara)) {\n        var wrappedParas = [];\n        $.each(clustereds, function (idx, paras) {\n          wrappedParas = wrappedParas.concat(self.wrapList(paras, listName));\n        });\n        paras = wrappedParas;\n      // list to paragraph or change list style\n      } else {\n        var diffLists = rng.nodes(dom.isList, {\n          includeAncestor: true\n        }).filter(function (listNode) {\n          return !$.nodeName(listNode, listName);\n        });\n\n        if (diffLists.length) {\n          $.each(diffLists, function (idx, listNode) {\n            dom.replace(listNode, listName);\n          });\n        } else {\n          paras = this.releaseList(clustereds, true);\n        }\n      }\n\n      range.createFromParaBookmark(bookmark, paras).select();\n    };\n\n    /**\n     * @param {Node[]} paras\n     * @param {String} listName\n     * @return {Node[]}\n     */\n    this.wrapList = function (paras, listName) {\n      var head = list.head(paras);\n      var last = list.last(paras);\n\n      var prevList = dom.isList(head.previousSibling) && head.previousSibling;\n      var nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n      var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n      // P to LI\n      paras = paras.map(function (para) {\n        return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n      });\n\n      // append to list(<ul>, <ol>)\n      dom.appendChildNodes(listNode, paras);\n\n      if (nextList) {\n        dom.appendChildNodes(listNode, list.from(nextList.childNodes));\n        dom.remove(nextList);\n      }\n\n      return paras;\n    };\n\n    /**\n     * @method releaseList\n     *\n     * @param {Array[]} clustereds\n     * @param {Boolean} isEscapseToBody\n     * @return {Node[]}\n     */\n    this.releaseList = function (clustereds, isEscapseToBody) {\n      var releasedParas = [];\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        var last = list.last(paras);\n\n        var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) :\n                                         head.parentNode;\n        var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n          node: last.parentNode,\n          offset: dom.position(last) + 1\n        }, {\n          isSkipPaddingBlankHTML: true\n        }) : null;\n\n        var middleList = dom.splitTree(headList, {\n          node: head.parentNode,\n          offset: dom.position(head)\n        }, {\n          isSkipPaddingBlankHTML: true\n        });\n\n        paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) :\n                                  list.from(middleList.childNodes).filter(dom.isLi);\n\n        // LI to P\n        if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n          paras = paras.map(function (para) {\n            return dom.replace(para, 'P');\n          });\n        }\n\n        $.each(list.from(paras).reverse(), function (idx, para) {\n          dom.insertAfter(para, headList);\n        });\n\n        // remove empty lists\n        var rootLists = list.compact([headList, middleList, lastList]);\n        $.each(rootLists, function (idx, rootList) {\n          var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n          $.each(listNodes.reverse(), function (idx, listNode) {\n            if (!dom.nodeLength(listNode)) {\n              dom.remove(listNode, true);\n            }\n          });\n        });\n\n        releasedParas = releasedParas.concat(paras);\n      });\n\n      return releasedParas;\n    };\n  };\n\n  return Bullet;\n});\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/editing/History.js",
    "content": "define(['summernote/base/core/range'], function (range) {\n  /**\n   * @class editing.History\n   *\n   * Editor History\n   *\n   */\n  var History = function ($editable) {\n    var stack = [], stackOffset = -1;\n    var editable = $editable[0];\n\n    var makeSnapshot = function () {\n      var rng = range.create(editable);\n      var emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};\n\n      return {\n        contents: $editable.html(),\n        bookmark: (rng ? rng.bookmark(editable) : emptyBookmark)\n      };\n    };\n\n    var applySnapshot = function (snapshot) {\n      if (snapshot.contents !== null) {\n        $editable.html(snapshot.contents);\n      }\n      if (snapshot.bookmark !== null) {\n        range.createFromBookmark(editable, snapshot.bookmark).select();\n      }\n    };\n\n    /**\n    * @method rewind\n    * Rewinds the history stack back to the first snapshot taken.\n    * Leaves the stack intact, so that \"Redo\" can still be used.\n    */\n    this.rewind = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      // Return to the first available snapshot.\n      stackOffset = 0;\n\n      // Apply that snapshot.\n      applySnapshot(stack[stackOffset]);\n    };\n\n    /**\n    * @method reset\n    * Resets the history stack completely; reverting to an empty editor.\n    */\n    this.reset = function () {\n      // Clear the stack.\n      stack = [];\n\n      // Restore stackOffset to its original value.\n      stackOffset = -1;\n\n      // Clear the editable area.\n      $editable.html('');\n\n      // Record our first snapshot (of nothing).\n      this.recordUndo();\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      if (0 < stackOffset) {\n        stackOffset--;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      if (stack.length - 1 > stackOffset) {\n        stackOffset++;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * recorded undo\n     */\n    this.recordUndo = function () {\n      stackOffset++;\n\n      // Wash out stack after stackOffset\n      if (stack.length > stackOffset) {\n        stack = stack.slice(0, stackOffset);\n      }\n\n      // Create new snapshot and push it to the end\n      stack.push(makeSnapshot());\n    };\n  };\n\n  return History;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/editing/Style.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (agent, func, list, dom) {\n  /**\n   * @class editing.Style\n   *\n   * Style\n   *\n   */\n  var Style = function () {\n    /**\n     * @method jQueryCSS\n     *\n     * [workaround] for old jQuery\n     * passing an array of style properties to .css()\n     * will result in an object of property-value pairs.\n     * (compability with version < 1.9)\n     *\n     * @private\n     * @param  {jQuery} $obj\n     * @param  {Array} propertyNames - An array of one or more CSS properties.\n     * @return {Object}\n     */\n    var jQueryCSS = function ($obj, propertyNames) {\n      if (agent.jqueryVersion < 1.9) {\n        var result = {};\n        $.each(propertyNames, function (idx, propertyName) {\n          result[propertyName] = $obj.css(propertyName);\n        });\n        return result;\n      }\n      return $obj.css.call($obj, propertyNames);\n    };\n\n    /**\n     * returns style object from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.fromNode = function ($node) {\n      var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n      var styleInfo = jQueryCSS($node, properties) || {};\n      styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\n      return styleInfo;\n    };\n\n    /**\n     * paragraph level style\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} styleInfo\n     */\n    this.stylePara = function (rng, styleInfo) {\n      $.each(rng.nodes(dom.isPara, {\n        includeAncestor: true\n      }), function (idx, para) {\n        $(para).css(styleInfo);\n      });\n    };\n\n    /**\n     * insert and returns styleNodes on range.\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} [options] - options for styleNodes\n     * @param {String} [options.nodeName] - default: `SPAN`\n     * @param {Boolean} [options.expandClosestSibling] - default: `false`\n     * @param {Boolean} [options.onlyPartialContains] - default: `false`\n     * @return {Node[]}\n     */\n    this.styleNodes = function (rng, options) {\n      rng = rng.splitText();\n\n      var nodeName = options && options.nodeName || 'SPAN';\n      var expandClosestSibling = !!(options && options.expandClosestSibling);\n      var onlyPartialContains = !!(options && options.onlyPartialContains);\n\n      if (rng.isCollapsed()) {\n        return [rng.insertNode(dom.create(nodeName))];\n      }\n\n      var pred = dom.makePredByNodeName(nodeName);\n      var nodes = rng.nodes(dom.isText, {\n        fullyContains: true\n      }).map(function (text) {\n        return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n      });\n\n      if (expandClosestSibling) {\n        if (onlyPartialContains) {\n          var nodesInRange = rng.nodes();\n          // compose with partial contains predication\n          pred = func.and(pred, function (node) {\n            return list.contains(nodesInRange, node);\n          });\n        }\n\n        return nodes.map(function (node) {\n          var siblings = dom.withClosestSiblings(node, pred);\n          var head = list.head(siblings);\n          var tails = list.tail(siblings);\n          $.each(tails, function (idx, elem) {\n            dom.appendChildNodes(head, elem.childNodes);\n            dom.remove(elem);\n          });\n          return list.head(siblings);\n        });\n      } else {\n        return nodes;\n      }\n    };\n\n    /**\n     * get current style on cursor\n     *\n     * @param {WrappedRange} rng\n     * @return {Object} - object contains style properties.\n     */\n    this.current = function (rng) {\n      var $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n      var styleInfo = this.fromNode($cont);\n\n      // document.queryCommandState for toggle state\n      // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n      try {\n        styleInfo = $.extend(styleInfo, {\n          'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n          'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n          'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n          'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n          'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n          'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal'\n        });\n      } catch (e) {}\n\n      // list-style-type to list-style(unordered, ordered)\n      if (!rng.isOnList()) {\n        styleInfo['list-style'] = 'none';\n      } else {\n        var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n        var isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;\n        styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n      }\n\n      var para = dom.ancestor(rng.sc, dom.isPara);\n      if (para && para.style['line-height']) {\n        styleInfo['line-height'] = para.style.lineHeight;\n      } else {\n        var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n        styleInfo['line-height'] = lineHeight.toFixed(1);\n      }\n\n      styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n      styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n      styleInfo.range = rng;\n\n      return styleInfo;\n    };\n  };\n\n  return Style;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/editing/Table.js",
    "content": "define([\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/list'\n], function (dom, range, list) {\n  /**\n   * @class editing.Table\n   *\n   * Table\n   *\n   */\n  var Table = function () {\n    /**\n     * handle tab key\n     *\n     * @param {WrappedRange} rng\n     * @param {Boolean} isShift\n     */\n    this.tab = function (rng, isShift) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var table = dom.ancestor(cell, dom.isTable);\n      var cells = dom.listDescendant(table, dom.isCell);\n\n      var nextCell = list[isShift ? 'prev' : 'next'](cells, cell);\n      if (nextCell) {\n        range.create(nextCell, 0).select();\n      }\n    };\n\n    /**\n     * create empty table element\n     *\n     * @param {Number} rowCount\n     * @param {Number} colCount\n     * @return {Node}\n     */\n    this.createTable = function (colCount, rowCount, options) {\n      var tds = [], tdHTML;\n      for (var idxCol = 0; idxCol < colCount; idxCol++) {\n        tds.push('<td>' + dom.blank + '</td>');\n      }\n      tdHTML = tds.join('');\n\n      var trs = [], trHTML;\n      for (var idxRow = 0; idxRow < rowCount; idxRow++) {\n        trs.push('<tr>' + tdHTML + '</tr>');\n      }\n      trHTML = trs.join('');\n      var $table = $('<table>' + trHTML + '</table>');\n      if (options && options.tableClassName) {\n        $table.addClass(options.tableClassName);\n      }\n\n      return $table[0];\n    };\n  };\n  return Table;\n});\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/editing/Typing.js",
    "content": "define([\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/editing/Bullet'\n], function (dom, range, Bullet) {\n\n  /**\n   * @class editing.Typing\n   *\n   * Typing\n   *\n   */\n  var Typing = function () {\n\n    // a Bullet instance to toggle lists off\n    var bullet = new Bullet();\n\n    /**\n     * insert tab\n     *\n     * @param {WrappedRange} rng\n     * @param {Number} tabsize\n     */\n    this.insertTab = function (rng, tabsize) {\n      var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n      rng = rng.deleteContents();\n      rng.insertNode(tab, true);\n\n      rng = range.create(tab, tabsize);\n      rng.select();\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = function (editable) {\n      var rng = range.create(editable);\n\n      // deleteContents on range.\n      rng = rng.deleteContents();\n\n      // Wrap range if it needs to be wrapped by paragraph\n      rng = rng.wrapBodyInlineWithPara();\n\n      // finding paragraph\n      var splitRoot = dom.ancestor(rng.sc, dom.isPara);\n\n      var nextPara;\n      // on paragraph: split paragraph\n      if (splitRoot) {\n        // if it is an empty line with li\n        if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {\n          // toogle UL/OL and escape\n          bullet.toggleList(splitRoot.parentNode.nodeName);\n          return;\n        // if it is an empty line with para on blockquote\n        } else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {\n          // escape blockquote\n          dom.insertAfter(splitRoot, splitRoot.parentNode);\n          nextPara = splitRoot;\n        // if new line has content (not a line break)\n        } else {\n          nextPara = dom.splitTree(splitRoot, rng.getStartPoint());\n\n          var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n          emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n\n          $.each(emptyAnchors, function (idx, anchor) {\n            dom.remove(anchor);\n          });\n\n          // replace empty heading or pre with P tag\n          if ((dom.isHeading(nextPara) || dom.isPre(nextPara)) && dom.isEmpty(nextPara)) {\n            nextPara = dom.replace(nextPara, 'p');\n          }\n        }\n      // no paragraph: insert empty paragraph\n      } else {\n        var next = rng.sc.childNodes[rng.so];\n        nextPara = $(dom.emptyPara)[0];\n        if (next) {\n          rng.sc.insertBefore(nextPara, next);\n        } else {\n          rng.sc.appendChild(nextPara);\n        }\n      }\n\n      range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n    };\n  };\n\n  return Typing;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/AutoLink.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/key'\n], function (func, list, dom, range, key) {\n  var AutoLink = function (context) {\n    var self = this;\n    var defaultScheme = 'http://';\n    var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      }\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n    };\n\n    this.destroy = function () {\n      this.lastWordRange = null;\n    };\n\n    this.replace = function () {\n      if (!this.lastWordRange) {\n        return;\n      }\n\n      var keyword = this.lastWordRange.toString();\n      var match = keyword.match(linkPattern);\n\n      if (match && (match[1] || match[2])) {\n        var link = match[1] ? keyword : defaultScheme + keyword;\n        var node = $('<a />').html(keyword).attr('href', link)[0];\n\n        this.lastWordRange.insertNode(node);\n        this.lastWordRange = null;\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.handleKeydown = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        this.lastWordRange = wordRange;\n      }\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        this.replace();\n      }\n    };\n  };\n\n  return AutoLink;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/AutoSync.js",
    "content": "define([\n  'summernote/base/core/dom'\n], function (dom) {\n  /**\n   * textarea auto sync.\n   */\n  var AutoSync = function (context) {\n    var $note = context.layoutInfo.note;\n\n    this.events = {\n      'summernote.change': function () {\n        $note.val(context.invoke('code'));\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return dom.isTextarea($note[0]);\n    };\n  };\n\n  return AutoSync;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Clipboard.js",
    "content": "define([\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/key',\n  'summernote/base/core/agent'\n], function (list, dom, key, agent) {\n  var Clipboard = function (context) {\n    var self = this;\n\n    var $editable = context.layoutInfo.editable;\n\n    this.events = {\n      'summernote.keydown': function (we, e) {\n        if (self.needKeydownHook()) {\n          if ((e.ctrlKey || e.metaKey) && e.keyCode === key.code.V) {\n            context.invoke('editor.saveRange');\n            self.$paste.focus();\n\n            setTimeout(function () {\n              self.pasteByHook();\n            }, 0);\n          }\n        }\n      }\n    };\n\n    this.needKeydownHook = function () {\n      return (agent.isMSIE && agent.browserVersion > 10) || agent.isFF;\n    };\n\n    this.initialize = function () {\n      // [workaround] getting image from clipboard\n      //  - IE11 and Firefox: CTRL+v hook\n      //  - Webkit: event.clipboardData\n      if (this.needKeydownHook()) {\n        this.$paste = $('<div tabindex=\"-1\" />').attr('contenteditable', true).css({\n          position: 'absolute',\n          left: -100000,\n          opacity: 0\n        });\n        $editable.before(this.$paste);\n\n        this.$paste.on('paste', function (event) {\n          context.triggerEvent('paste', event);\n        });\n      } else {\n        $editable.on('paste', this.pasteByEvent);\n      }\n    };\n\n    this.destroy = function () {\n      if (this.needKeydownHook()) {\n        this.$paste.remove();\n        this.$paste = null;\n      }\n    };\n\n    this.pasteByHook = function () {\n      var node = this.$paste[0].firstChild;\n\n      if (dom.isImg(node)) {\n        var dataURI = node.src;\n        var decodedData = atob(dataURI.split(',')[1]);\n        var array = new Uint8Array(decodedData.length);\n        for (var i = 0; i < decodedData.length; i++) {\n          array[i] = decodedData.charCodeAt(i);\n        }\n\n        var blob = new Blob([array], { type: 'image/png' });\n        blob.name = 'clipboard.png';\n\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n        context.invoke('editor.insertImagesOrCallback', [blob]);\n      } else {\n        var pasteContent = $('<div />').html(this.$paste.html()).html();\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n\n        if (pasteContent) {\n          context.invoke('editor.pasteHTML', pasteContent);\n        }\n      }\n\n      this.$paste.empty();\n    };\n\n    /**\n     * paste by clipboard event\n     *\n     * @param {Event} event\n     */\n    this.pasteByEvent = function (event) {\n      var clipboardData = event.originalEvent.clipboardData;\n      if (clipboardData && clipboardData.items && clipboardData.items.length) {\n        var item = list.head(clipboardData.items);\n        if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n          context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n        }\n        context.invoke('editor.afterCommand');\n      }\n    };\n  };\n\n  return Clipboard;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Codeview.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/dom'\n], function (agent, dom) {\n\n  var CodeMirror;\n  if (agent.hasCodeMirror) {\n    if (agent.isSupportAmd) {\n      require(['codemirror'], function (cm) {\n        CodeMirror = cm;\n      });\n    } else {\n      CodeMirror = window.CodeMirror;\n    }\n  }\n\n  /**\n   * @class Codeview\n   */\n  var Codeview = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n    var options = context.options;\n\n    this.sync = function () {\n      var isCodeview = this.isActivated();\n      if (isCodeview && agent.hasCodeMirror) {\n        $codable.data('cmEditor').save();\n      }\n    };\n\n    /**\n     * @return {Boolean}\n     */\n    this.isActivated = function () {\n      return $editor.hasClass('codeview');\n    };\n\n    /**\n     * toggle codeview\n     */\n    this.toggle = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n      context.triggerEvent('codeview.toggled');\n    };\n\n    /**\n     * activate code view\n     */\n    this.activate = function () {\n      $codable.val(dom.html($editable, options.prettifyHtml));\n      $codable.height($editable.height());\n\n      context.invoke('toolbar.updateCodeview', true);\n      $editor.addClass('codeview');\n      $codable.focus();\n\n      // activate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = CodeMirror.fromTextArea($codable[0], options.codemirror);\n\n        // CodeMirror TernServer\n        if (options.codemirror.tern) {\n          var server = new CodeMirror.TernServer(options.codemirror.tern);\n          cmEditor.ternServer = server;\n          cmEditor.on('cursorActivity', function (cm) {\n            server.updateArgHints(cm);\n          });\n        }\n\n        // CodeMirror hasn't Padding.\n        cmEditor.setSize(null, $editable.outerHeight());\n        $codable.data('cmEditor', cmEditor);\n      }\n    };\n\n    /**\n     * deactivate code view\n     */\n    this.deactivate = function () {\n      // deactivate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = $codable.data('cmEditor');\n        $codable.val(cmEditor.getValue());\n        cmEditor.toTextArea();\n      }\n\n      var value = dom.value($codable, options.prettifyHtml) || dom.emptyPara;\n      var isChange = $editable.html() !== value;\n\n      $editable.html(value);\n      $editable.height(options.height ? $codable.height() : 'auto');\n      $editor.removeClass('codeview');\n\n      if (isChange) {\n        context.triggerEvent('change', $editable.html(), $editable);\n      }\n\n      $editable.focus();\n\n      context.invoke('toolbar.updateCodeview', false);\n    };\n\n    this.destroy = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      }\n    };\n  };\n\n  return Codeview;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Dropzone.js",
    "content": "define(function () {\n  var Dropzone = function (context) {\n    var $document = $(document);\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n    var documentEventHandlers = {};\n\n    var $dropzone = $([\n      '<div class=\"note-dropzone\">',\n      '  <div class=\"note-dropzone-message\"/>',\n      '</div>'\n    ].join('')).prependTo($editor);\n\n    var detachDocumentEvent = function () {\n      Object.keys(documentEventHandlers).forEach(function (key) {\n        $document.off(key.substr(2).toLowerCase(), documentEventHandlers[key]);\n      });\n      documentEventHandlers = {};\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.initialize = function () {\n      if (options.disableDragAndDrop) {\n        // prevent default drop event\n        documentEventHandlers.onDrop = function (e) {\n          e.preventDefault();\n        };\n        $document.on('drop', documentEventHandlers.onDrop);\n      } else {\n        this.attachDragAndDropEvent();\n      }\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.attachDragAndDropEvent = function () {\n      var collection = $(),\n          $dropzoneMessage = $dropzone.find('.note-dropzone-message');\n\n      documentEventHandlers.onDragenter = function (e) {\n        var isCodeview = context.invoke('codeview.isActivated');\n        var hasEditorSize = $editor.width() > 0 && $editor.height() > 0;\n        if (!isCodeview && !collection.length && hasEditorSize) {\n          $editor.addClass('dragover');\n          $dropzone.width($editor.width());\n          $dropzone.height($editor.height());\n          $dropzoneMessage.text(lang.image.dragImageHere);\n        }\n        collection = collection.add(e.target);\n      };\n\n      documentEventHandlers.onDragleave = function (e) {\n        collection = collection.not(e.target);\n        if (!collection.length) {\n          $editor.removeClass('dragover');\n        }\n      };\n\n      documentEventHandlers.onDrop = function () {\n        collection = $();\n        $editor.removeClass('dragover');\n      };\n\n      // show dropzone on dragenter when dragging a object to document\n      // -but only if the editor is visible, i.e. has a positive width and height\n      $document.on('dragenter', documentEventHandlers.onDragenter)\n        .on('dragleave', documentEventHandlers.onDragleave)\n        .on('drop', documentEventHandlers.onDrop);\n\n      // change dropzone's message on hover.\n      $dropzone.on('dragenter', function () {\n        $dropzone.addClass('hover');\n        $dropzoneMessage.text(lang.image.dropImage);\n      }).on('dragleave', function () {\n        $dropzone.removeClass('hover');\n        $dropzoneMessage.text(lang.image.dragImageHere);\n      });\n\n      // attach dropImage\n      $dropzone.on('drop', function (event) {\n        var dataTransfer = event.originalEvent.dataTransfer;\n\n        if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n          event.preventDefault();\n          $editable.focus();\n          context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n        } else {\n          $.each(dataTransfer.types, function (idx, type) {\n            var content = dataTransfer.getData(type);\n\n            if (type.toLowerCase().indexOf('text') > -1) {\n              context.invoke('editor.pasteHTML', content);\n            } else {\n              $(content).each(function () {\n                context.invoke('editor.insertNode', this);\n              });\n            }\n          });\n        }\n      }).on('dragover', false); // prevent default dragover event\n    };\n\n    this.destroy = function () {\n      detachDocumentEvent();\n    };\n  };\n\n  return Dropzone;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Editor.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/key',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/async',\n  'summernote/base/editing/History',\n  'summernote/base/editing/Style',\n  'summernote/base/editing/Typing',\n  'summernote/base/editing/Table',\n  'summernote/base/editing/Bullet'\n], function (\n  agent, key, func, list, dom, range, async,\n  History, Style, Typing, Table, Bullet\n) {\n\n  var KEY_BOGUS = 'bogus';\n\n  /**\n   * @class Editor\n   */\n  var Editor = function (context) {\n    var self = this;\n\n    var $note = context.layoutInfo.note;\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var editable = $editable[0];\n    var lastRange = null;\n\n    var style = new Style();\n    var table = new Table();\n    var typing = new Typing();\n    var bullet = new Bullet();\n    var history = new History($editable);\n\n    this.initialize = function () {\n      // bind custom events\n      $editable.on('keydown', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          context.triggerEvent('enter', event);\n        }\n        context.triggerEvent('keydown', event);\n\n        if (!event.isDefaultPrevented()) {\n          if (options.shortcuts) {\n            self.handleKeyMap(event);\n          } else {\n            self.preventDefaultEditableShortCuts(event);\n          }\n        }\n      }).on('keyup', function (event) {\n        context.triggerEvent('keyup', event);\n      }).on('focus', function (event) {\n        context.triggerEvent('focus', event);\n      }).on('blur', function (event) {\n        context.triggerEvent('blur', event);\n      }).on('mousedown', function (event) {\n        context.triggerEvent('mousedown', event);\n      }).on('mouseup', function (event) {\n        context.triggerEvent('mouseup', event);\n      }).on('scroll', function (event) {\n        context.triggerEvent('scroll', event);\n      }).on('paste', function (event) {\n        context.triggerEvent('paste', event);\n      });\n\n      // init content before set event\n      $editable.html(dom.html($note) || dom.emptyPara);\n\n      // [workaround] IE doesn't have input events for contentEditable\n      // - see: https://goo.gl/4bfIvA\n      var changeEventName = agent.isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n      $editable.on(changeEventName, func.debounce(function () {\n        context.triggerEvent('change', $editable.html());\n      }, 250));\n\n      $editor.on('focusin', function (event) {\n        context.triggerEvent('focusin', event);\n      }).on('focusout', function (event) {\n        context.triggerEvent('focusout', event);\n      });\n\n      if (!options.airMode) {\n        if (options.width) {\n          $editor.outerWidth(options.width);\n        }\n        if (options.height) {\n          $editable.outerHeight(options.height);\n        }\n        if (options.maxHeight) {\n          $editable.css('max-height', options.maxHeight);\n        }\n        if (options.minHeight) {\n          $editable.css('min-height', options.minHeight);\n        }\n      }\n\n      history.recordUndo();\n    };\n\n    this.destroy = function () {\n      $editable.off();\n    };\n\n    this.handleKeyMap = function (event) {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      var keys = [];\n\n      if (event.metaKey) { keys.push('CMD'); }\n      if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); }\n      if (event.shiftKey) { keys.push('SHIFT'); }\n\n      var keyName = key.nameFromCode[event.keyCode];\n      if (keyName) {\n        keys.push(keyName);\n      }\n\n      var eventName = keyMap[keys.join('+')];\n      if (eventName) {\n        event.preventDefault();\n        context.invoke(eventName);\n      } else if (key.isEdit(event.keyCode)) {\n        this.afterCommand();\n      }\n    };\n\n    this.preventDefaultEditableShortCuts = function (event) {\n      // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n      if ((event.ctrlKey || event.metaKey) &&\n        list.contains([66, 73, 85], event.keyCode)) {\n        event.preventDefault();\n      }\n    };\n\n    /**\n     * create range\n     * @return {WrappedRange}\n     */\n    this.createRange = function () {\n      this.focus();\n      return range.create(editable);\n    };\n\n    /**\n     * saveRange\n     *\n     * save current range\n     *\n     * @param {Boolean} [thenCollapse=false]\n     */\n    this.saveRange = function (thenCollapse) {\n      lastRange = this.createRange();\n      if (thenCollapse) {\n        lastRange.collapse().select();\n      }\n    };\n\n    /**\n     * restoreRange\n     *\n     * restore lately range\n     */\n    this.restoreRange = function () {\n      if (lastRange) {\n        lastRange.select();\n        this.focus();\n      }\n    };\n\n    this.saveTarget = function (node) {\n      $editable.data('target', node);\n    };\n\n    this.clearTarget = function () {\n      $editable.removeData('target');\n    };\n\n    this.restoreTarget = function () {\n      return $editable.data('target');\n    };\n\n    /**\n     * currentStyle\n     *\n     * current style\n     * @return {Object|Boolean} unfocus\n     */\n    this.currentStyle = function () {\n      var rng = range.create();\n      if (rng) {\n        rng = rng.normalize();\n      }\n      return rng ? style.current(rng) : style.fromNode($editable);\n    };\n\n    /**\n     * style from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.styleFromNode = function ($node) {\n      return style.fromNode($node);\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.undo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.undo', lang.help.undo);\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.redo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.redo', lang.help.redo);\n\n    /**\n     * before command\n     */\n    var beforeCommand = this.beforeCommand = function () {\n      context.triggerEvent('before.command', $editable.html());\n      // keep focus on editable before command execution\n      self.focus();\n    };\n\n    /**\n     * after command\n     * @param {Boolean} isPreventTrigger\n     */\n    var afterCommand = this.afterCommand = function (isPreventTrigger) {\n      history.recordUndo();\n      if (!isPreventTrigger) {\n        context.triggerEvent('change', $editable.html());\n      }\n    };\n\n    /* jshint ignore:start */\n    // native commands(with execCommand), generate function for execCommand\n    var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',\n                    'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',\n                    'formatBlock', 'removeFormat',\n                    'backColor', 'foreColor', 'fontName'];\n\n    for (var idx = 0, len = commands.length; idx < len; idx ++) {\n      this[commands[idx]] = (function (sCmd) {\n        return function (value) {\n          beforeCommand();\n          document.execCommand(sCmd, false, value);\n          afterCommand(true);\n        };\n      })(commands[idx]);\n      context.memo('help.' + commands[idx], lang.help[commands[idx]]);\n    }\n    /* jshint ignore:end */\n\n    /**\n     * handle tab key\n     */\n    this.tab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng);\n      } else {\n        beforeCommand();\n        typing.insertTab(rng, options.tabSize);\n        afterCommand();\n      }\n    };\n    context.memo('help.tab', lang.help.tab);\n\n    /**\n     * handle shift+tab key\n     */\n    this.untab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng, true);\n      }\n    };\n    context.memo('help.untab', lang.help.untab);\n\n    /**\n     * run given function between beforeCommand and afterCommand\n     */\n    this.wrapCommand = function (fn) {\n      return function () {\n        beforeCommand();\n        fn.apply(self, arguments);\n        afterCommand();\n      };\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = this.wrapCommand(function () {\n      typing.insertParagraph(editable);\n    });\n    context.memo('help.insertParagraph', lang.help.insertParagraph);\n\n    this.insertOrderedList = this.wrapCommand(function () {\n      bullet.insertOrderedList(editable);\n    });\n    context.memo('help.insertOrderedList', lang.help.insertOrderedList);\n\n    this.insertUnorderedList = this.wrapCommand(function () {\n      bullet.insertUnorderedList(editable);\n    });\n    context.memo('help.insertUnorderedList', lang.help.insertUnorderedList);\n\n    this.indent = this.wrapCommand(function () {\n      bullet.indent(editable);\n    });\n    context.memo('help.indent', lang.help.indent);\n\n    this.outdent = this.wrapCommand(function () {\n      bullet.outdent(editable);\n    });\n    context.memo('help.outdent', lang.help.outdent);\n\n    /**\n     * insert image\n     *\n     * @param {String} src\n     * @param {String|Function} param\n     * @return {Promise}\n     */\n    this.insertImage = function (src, param) {\n      return async.createImage(src, param).then(function ($image) {\n        beforeCommand();\n\n        if (typeof param === 'function') {\n          param($image);\n        } else {\n          if (typeof param === 'string') {\n            $image.attr('data-filename', param);\n          }\n          $image.css('width', Math.min($editable.width(), $image.width()));\n        }\n\n        $image.show();\n        range.create(editable).insertNode($image[0]);\n        range.createFromNodeAfter($image[0]).select();\n        afterCommand();\n      }).fail(function (e) {\n        context.triggerEvent('image.upload.error', e);\n      });\n    };\n\n    /**\n     * insertImages\n     * @param {File[]} files\n     */\n    this.insertImages = function (files) {\n      $.each(files, function (idx, file) {\n        var filename = file.name;\n        if (options.maximumImageFileSize && options.maximumImageFileSize < file.size) {\n          context.triggerEvent('image.upload.error', lang.image.maximumFileSizeError);\n        } else {\n          async.readFileAsDataURL(file).then(function (dataURL) {\n            return self.insertImage(dataURL, filename);\n          }).fail(function () {\n            context.triggerEvent('image.upload.error');\n          });\n        }\n      });\n    };\n\n    /**\n     * insertImagesOrCallback\n     * @param {File[]} files\n     */\n    this.insertImagesOrCallback = function (files) {\n      var callbacks = options.callbacks;\n\n      // If onImageUpload options setted\n      if (callbacks.onImageUpload) {\n        context.triggerEvent('image.upload', files);\n      // else insert Image as dataURL\n      } else {\n        this.insertImages(files);\n      }\n    };\n\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n    this.insertNode = this.wrapCommand(function (node) {\n      var rng = this.createRange();\n      rng.insertNode(node);\n      range.createFromNodeAfter(node).select();\n    });\n\n    /**\n     * insert text\n     * @param {String} text\n     */\n    this.insertText = this.wrapCommand(function (text) {\n      var rng = this.createRange();\n      var textNode = rng.insertNode(dom.createText(text));\n      range.create(textNode, dom.nodeLength(textNode)).select();\n    });\n\n    /**\n     * return selected plain text\n     * @return {String} text\n     */\n    this.getSelectedText = function () {\n      var rng = this.createRange();\n\n      // if range on anchor, expand range with anchor\n      if (rng.isOnAnchor()) {\n        rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n      }\n\n      return rng.toString();\n    };\n\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n    this.pasteHTML = this.wrapCommand(function (markup) {\n      var contents = this.createRange().pasteHTML(markup);\n      range.createFromNodeAfter(list.last(contents)).select();\n    });\n\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n    this.formatBlock = this.wrapCommand(function (tagName) {\n      // [workaround] for MSIE, IE need `<`\n      tagName = agent.isMSIE ? '<' + tagName + '>' : tagName;\n      document.execCommand('FormatBlock', false, tagName);\n    });\n\n    this.formatPara = function () {\n      this.formatBlock('P');\n    };\n    context.memo('help.formatPara', lang.help.formatPara);\n\n    /* jshint ignore:start */\n    for (var idx = 1; idx <= 6; idx ++) {\n      this['formatH' + idx] = function (idx) {\n        return function () {\n          this.formatBlock('H' + idx);\n        };\n      }(idx);\n      context.memo('help.formatH'+idx, lang.help['formatH' + idx]);\n    };\n    /* jshint ignore:end */\n\n    /**\n     * fontSize\n     *\n     * @param {String} value - px\n     */\n    this.fontSize = function (value) {\n      var rng = this.createRange();\n\n      if (rng && rng.isCollapsed()) {\n        var spans = style.styleNodes(rng);\n        var firstSpan = list.head(spans);\n\n        $(spans).css({\n          'font-size': value + 'px'\n        });\n\n        // [workaround] added styled bogus span for style\n        //  - also bogus character needed for cursor position\n        if (firstSpan && !dom.nodeLength(firstSpan)) {\n          firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n          range.createFromNodeAfter(firstSpan.firstChild).select();\n          $editable.data(KEY_BOGUS, firstSpan);\n        }\n      } else {\n        beforeCommand();\n        $(style.styleNodes(rng)).css({\n          'font-size': value + 'px'\n        });\n        afterCommand();\n      }\n    };\n\n    /**\n     * insert horizontal rule\n     */\n    this.insertHorizontalRule = this.wrapCommand(function () {\n      var hrNode = this.createRange().insertNode(dom.create('HR'));\n      if (hrNode.nextSibling) {\n        range.create(hrNode.nextSibling, 0).normalize().select();\n      }\n    });\n    context.memo('help.insertHorizontalRule', lang.help.insertHorizontalRule);\n\n    /**\n     * remove bogus node and character\n     */\n    this.removeBogus = function () {\n      var bogusNode = $editable.data(KEY_BOGUS);\n      if (!bogusNode) {\n        return;\n      }\n\n      var textNode = list.find(list.from(bogusNode.childNodes), dom.isText);\n\n      var bogusCharIdx = textNode.nodeValue.indexOf(dom.ZERO_WIDTH_NBSP_CHAR);\n      if (bogusCharIdx !== -1) {\n        textNode.deleteData(bogusCharIdx, 1);\n      }\n\n      if (dom.isEmpty(bogusNode)) {\n        dom.remove(bogusNode);\n      }\n\n      $editable.removeData(KEY_BOGUS);\n    };\n\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n    this.lineHeight = this.wrapCommand(function (value) {\n      style.stylePara(this.createRange(), {\n        lineHeight: value\n      });\n    });\n\n    /**\n     * unlink\n     *\n     * @type command\n     */\n    this.unlink = function () {\n      var rng = this.createRange();\n      if (rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        rng = range.createFromNode(anchor);\n        rng.select();\n\n        beforeCommand();\n        document.execCommand('unlink');\n        afterCommand();\n      }\n    };\n\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n    this.createLink = this.wrapCommand(function (linkInfo) {\n      var linkUrl = linkInfo.url;\n      var linkText = linkInfo.text;\n      var isNewWindow = linkInfo.isNewWindow;\n      var rng = linkInfo.range || this.createRange();\n      var isTextChanged = rng.toString() !== linkText;\n\n      // handle spaced urls from input\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (options.onCreateLink) {\n        linkUrl = options.onCreateLink(linkUrl);\n      }\n\n      var anchors = [];\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        var anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      $.each(anchors, function (idx, anchor) {\n        // if url doesn't match an URL schema, set http:// as default\n        linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?/.test(linkUrl) ?\n          linkUrl : 'http://' + linkUrl;\n\n        $(anchor).attr('href', linkUrl);\n        if (isNewWindow) {\n          $(anchor).attr('target', '_blank');\n        } else {\n          $(anchor).removeAttr('target');\n        }\n      });\n\n      var startRange = range.createFromNodeBefore(list.head(anchors));\n      var startPoint = startRange.getStartPoint();\n      var endRange = range.createFromNodeAfter(list.last(anchors));\n      var endPoint = endRange.getEndPoint();\n\n      range.create(\n        startPoint.node,\n        startPoint.offset,\n        endPoint.node,\n        endPoint.offset\n      ).select();\n    });\n\n    /**\n     * returns link info\n     *\n     * @return {Object}\n     * @return {WrappedRange} return.range\n     * @return {String} return.text\n     * @return {Boolean} [return.isNewWindow=true]\n     * @return {String} [return.url=\"\"]\n     */\n    this.getLinkInfo = function () {\n      var rng = this.createRange().expand(dom.isAnchor);\n\n      // Get the first anchor on range(for edit).\n      var $anchor = $(list.head(rng.nodes(dom.isAnchor)));\n\n      return {\n        range: rng,\n        text: rng.toString(),\n        isNewWindow: $anchor.length ? $anchor.attr('target') === '_blank' : false,\n        url: $anchor.length ? $anchor.attr('href') : ''\n      };\n    };\n\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n    this.color = this.wrapCommand(function (colorInfo) {\n      var foreColor = colorInfo.foreColor;\n      var backColor = colorInfo.backColor;\n\n      if (foreColor) { document.execCommand('foreColor', false, foreColor); }\n      if (backColor) { document.execCommand('backColor', false, backColor); }\n    });\n\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n    this.insertTable = this.wrapCommand(function (dim) {\n      var dimension = dim.split('x');\n\n      var rng = this.createRange().deleteContents();\n      rng.insertNode(table.createTable(dimension[0], dimension[1], options));\n    });\n\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n    this.floatMe = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css('float', value);\n    });\n\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n    this.resize = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css({\n        width: value * 100 + '%',\n        height: ''\n      });\n    });\n\n    /**\n     * @param {Position} pos\n     * @param {jQuery} $target - target element\n     * @param {Boolean} [bKeepRatio] - keep ratio\n     */\n    this.resizeTo = function (pos, $target, bKeepRatio) {\n      var imageSize;\n      if (bKeepRatio) {\n        var newRatio = pos.y / pos.x;\n        var ratio = $target.data('ratio');\n        imageSize = {\n          width: ratio > newRatio ? pos.x : pos.y / ratio,\n          height: ratio > newRatio ? pos.x * ratio : pos.y\n        };\n      } else {\n        imageSize = {\n          width: pos.x,\n          height: pos.y\n        };\n      }\n\n      $target.css(imageSize);\n    };\n\n    /**\n     * remove media object\n     */\n    this.removeMedia = this.wrapCommand(function () {\n      var $target = $(this.restoreTarget()).detach();\n      context.triggerEvent('media.delete', $target, $editable);\n    });\n\n    /**\n     * returns whether editable area has focus or not.\n     */\n    this.hasFocus = function () {\n      return $editable.is(':focus');\n    };\n\n    /**\n     * set focus\n     */\n    this.focus = function () {\n      // [workaround] Screen will move when page is scolled in IE.\n      //  - do focus when not focused\n      if (!this.hasFocus()) {\n        $editable.focus();\n      }\n    };\n\n    /**\n     * returns whether contents is empty or not.\n     * @return {Boolean}\n     */\n    this.isEmpty = function () {\n      return dom.isEmpty($editable[0]) || dom.emptyPara === $editable.html();\n    };\n\n    /**\n     * Removes all contents and restores the editable instance to an _emptyPara_.\n     */\n    this.empty = function () {\n      context.invoke('code', dom.emptyPara);\n    };\n  };\n\n  return Editor;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Fullscreen.js",
    "content": "define([\n  'jquery'\n], function ($) {\n  var Fullscreen = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $toolbar = context.layoutInfo.toolbar;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n\n    var $window = $(window);\n    var $scrollbar = $('html, body');\n\n    /**\n     * toggle fullscreen\n     */\n    this.toggle = function () {\n      var resize = function (size) {\n        $editable.css('height', size.h);\n        $codable.css('height', size.h);\n        if ($codable.data('cmeditor')) {\n          $codable.data('cmeditor').setsize(null, size.h);\n        }\n      };\n\n      $editor.toggleClass('fullscreen');\n      if (this.isFullscreen()) {\n        $editable.data('orgHeight', $editable.css('height'));\n\n        $window.on('resize', function () {\n          resize({\n            h: $window.height() - $toolbar.outerHeight()\n          });\n        }).trigger('resize');\n\n        $scrollbar.css('overflow', 'hidden');\n      } else {\n        $window.off('resize');\n        resize({\n          h: $editable.data('orgHeight')\n        });\n        $scrollbar.css('overflow', 'visible');\n      }\n\n      context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n    };\n\n    this.isFullscreen = function () {\n      return $editor.hasClass('fullscreen');\n    };\n  };\n\n  return Fullscreen;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Handle.js",
    "content": "define([\n  'summernote/base/core/dom'\n], function (dom) {\n  var Handle = function (context) {\n    var self = this;\n\n    var $document = $(document);\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.mousedown': function (we, e) {\n        if (self.update(e.target)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function () {\n        self.update();\n      }\n    };\n\n    this.initialize = function () {\n      this.$handle = $([\n        '<div class=\"note-handle\">',\n        '<div class=\"note-control-selection\">',\n        '<div class=\"note-control-selection-bg\"></div>',\n        '<div class=\"note-control-holder note-control-nw\"></div>',\n        '<div class=\"note-control-holder note-control-ne\"></div>',\n        '<div class=\"note-control-holder note-control-sw\"></div>',\n        '<div class=\"',\n        (options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),\n        ' note-control-se\"></div>',\n        (options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>'),\n        '</div>',\n        '</div>'\n      ].join('')).prependTo($editingArea);\n\n      this.$handle.on('mousedown', function (event) {\n        if (dom.isControlSizing(event.target)) {\n          event.preventDefault();\n          event.stopPropagation();\n\n          var $target = self.$handle.find('.note-control-selection').data('target'),\n              posStart = $target.offset(),\n              scrollTop = $document.scrollTop();\n\n          $document.on('mousemove', function (event) {\n            context.invoke('editor.resizeTo', {\n              x: event.clientX - posStart.left,\n              y: event.clientY - (posStart.top - scrollTop)\n            }, $target, !event.shiftKey);\n\n            self.update($target[0]);\n          }).one('mouseup', function (e) {\n            e.preventDefault();\n            $document.off('mousemove');\n            context.invoke('editor.afterCommand');\n          });\n\n          if (!$target.data('ratio')) { // original ratio.\n            $target.data('ratio', $target.height() / $target.width());\n          }\n        }\n      });\n    };\n\n    this.destroy = function () {\n      this.$handle.remove();\n    };\n\n    this.update = function (target) {\n      var isImage = dom.isImg(target);\n      var $selection = this.$handle.find('.note-control-selection');\n\n      context.invoke('imagePopover.update', target);\n\n      if (isImage) {\n        var $image = $(target);\n        var pos = $image.position();\n\n        // include margin\n        var imageSize = {\n          w: $image.outerWidth(true),\n          h: $image.outerHeight(true)\n        };\n\n        $selection.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top,\n          width: imageSize.w,\n          height: imageSize.h\n        }).data('target', $image); // save current image element.\n\n        var sizingText = imageSize.w + 'x' + imageSize.h;\n        $selection.find('.note-control-selection-info').text(sizingText);\n        context.invoke('editor.saveTarget', target);\n      } else {\n        this.hide();\n      }\n\n      return isImage;\n    };\n\n    /**\n     * hide\n     *\n     * @param {jQuery} $handle\n     */\n    this.hide = function () {\n      context.invoke('editor.clearTarget');\n      this.$handle.children().hide();\n    };\n  };\n\n  return Handle;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Placeholder.js",
    "content": "define(function () {\n  var Placeholder = function (context) {\n    var self = this;\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.init summernote.change': function () {\n        self.update();\n      },\n      'summernote.codeview.toggled': function () {\n        self.update();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !!options.placeholder;\n    };\n\n    this.initialize = function () {\n      this.$placeholder = $('<div class=\"note-placeholder\">');\n      this.$placeholder.on('click', function () {\n        context.invoke('focus');\n      }).text(options.placeholder).prependTo($editingArea);\n    };\n\n    this.destroy = function () {\n      this.$placeholder.remove();\n    };\n\n    this.update = function () {\n      var isShow = !context.invoke('codeview.isActivated') && context.invoke('editor.isEmpty');\n      this.$placeholder.toggle(isShow);\n    };\n  };\n\n  return Placeholder;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/module/Statusbar.js",
    "content": "define(function () {\n  var EDITABLE_PADDING = 24;\n\n  var Statusbar = function (context) {\n    var $document = $(document);\n    var $statusbar = context.layoutInfo.statusbar;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n\n    this.initialize = function () {\n      if (options.airMode || options.disableResizeEditor) {\n        return;\n      }\n\n      $statusbar.on('mousedown', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        var editableTop = $editable.offset().top - $document.scrollTop();\n\n        $document.on('mousemove', function (event) {\n          var height = event.clientY - (editableTop + EDITABLE_PADDING);\n\n          height = (options.minheight > 0) ? Math.max(height, options.minheight) : height;\n          height = (options.maxHeight > 0) ? Math.min(height, options.maxHeight) : height;\n\n          $editable.height(height);\n        }).one('mouseup', function () {\n          $document.off('mousemove');\n        });\n      });\n    };\n\n    this.destroy = function () {\n      $statusbar.off();\n      $statusbar.remove();\n    };\n  };\n\n  return Statusbar;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/renderer.js",
    "content": "define(function () {\n  var Renderer = function (markup, children, options, callback) {\n    this.render = function ($parent) {\n      var $node = $(markup);\n\n      if (options && options.contents) {\n        $node.html(options.contents);\n      }\n\n      if (options && options.className) {\n        $node.addClass(options.className);\n      }\n\n      if (options && options.data) {\n        $.each(options.data, function (k, v) {\n          $node.attr('data-' + k, v);\n        });\n      }\n\n      if (options && options.click) {\n        $node.on('click', options.click);\n      }\n\n      if (children) {\n        var $container = $node.find('.note-children-container');\n        children.forEach(function (child) {\n          child.render($container.length ? $container : $node);\n        });\n      }\n\n      if (callback) {\n        callback($node, options);\n      }\n\n      if (options && options.callback) {\n        options.callback($node);\n      }\n\n      if ($parent) {\n        $parent.append($node);\n      }\n\n      return $node;\n    };\n  };\n\n  var renderer = {\n    create: function (markup, callback) {\n      return function () {\n        var children = $.isArray(arguments[0]) ? arguments[0] : [];\n        var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n        if (options && options.children) {\n          children = options.children;\n        }\n        return new Renderer(markup, children, options, callback);\n      };\n    }\n  };\n\n  return renderer;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/base/summernote-en-US.js",
    "content": "define([\n  'jquery'\n], function ($) {\n  $.summernote = $.summernote || {\n    lang: {}\n  };\n\n  $.extend($.summernote.lang, {\n    'en-US': {\n      font: {\n        bold: 'Bold',\n        italic: 'Italic',\n        underline: 'Underline',\n        clear: 'Remove Font Style',\n        height: 'Line Height',\n        name: 'Font Family',\n        strikethrough: 'Strikethrough',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Font Size'\n      },\n      image: {\n        image: 'Picture',\n        insert: 'Insert Image',\n        resizeFull: 'Resize Full',\n        resizeHalf: 'Resize Half',\n        resizeQuarter: 'Resize Quarter',\n        floatLeft: 'Float Left',\n        floatRight: 'Float Right',\n        floatNone: 'Float None',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Drag image or text here',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Select from files',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Image URL',\n        remove: 'Remove Image'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Insert Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Insert Link',\n        unlink: 'Unlink',\n        edit: 'Edit',\n        textToDisplay: 'Text to display',\n        url: 'To what URL should this link go?',\n        openInNewWindow: 'Open in new window'\n      },\n      table: {\n        table: 'Table'\n      },\n      hr: {\n        insert: 'Insert Horizontal Rule'\n      },\n      style: {\n        style: 'Style',\n        normal: 'Normal',\n        blockquote: 'Quote',\n        pre: 'Code',\n        h1: 'Header 1',\n        h2: 'Header 2',\n        h3: 'Header 3',\n        h4: 'Header 4',\n        h5: 'Header 5',\n        h6: 'Header 6'\n      },\n      lists: {\n        unordered: 'Unordered list',\n        ordered: 'Ordered list'\n      },\n      options: {\n        help: 'Help',\n        fullscreen: 'Full Screen',\n        codeview: 'Code View'\n      },\n      paragraph: {\n        paragraph: 'Paragraph',\n        outdent: 'Outdent',\n        indent: 'Indent',\n        left: 'Align left',\n        center: 'Align center',\n        right: 'Align right',\n        justify: 'Justify full'\n      },\n      color: {\n        recent: 'Recent Color',\n        more: 'More Color',\n        background: 'Background Color',\n        foreground: 'Foreground Color',\n        transparent: 'Transparent',\n        setTransparent: 'Set transparent',\n        reset: 'Reset',\n        resetToDefault: 'Reset to default'\n      },\n      shortcut: {\n        shortcuts: 'Keyboard shortcuts',\n        close: 'Close',\n        textFormatting: 'Text formatting',\n        action: 'Action',\n        paragraphFormatting: 'Paragraph formatting',\n        documentStyle: 'Document Style',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Undo',\n        redo: 'Redo'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/AirPopover.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (agent, func, list, dom) {\n  var AirPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    var AIR_MODE_POPOVER_X_OFFSET = 20;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.change summernote.dialog.shown': function () {\n        self.hide();\n      },\n      'summernote.focusout': function (we, e) {\n        // [workaround] Firefox doesn't support relatedTarget on focusout\n        //  - Ignore hide action on focus out in FF.\n        if (agent.isFF) {\n          return;\n        }\n\n        if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(self.$popover[0]))) {\n          self.hide();\n        }\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return options.airMode && !list.isEmpty(options.popover.air);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-air-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.air);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      if (styleInfo.range && !styleInfo.range.isCollapsed()) {\n        var rect = list.last(styleInfo.range.getClientRects());\n        if (rect) {\n          var bnd = func.rect2bnd(rect);\n          this.$popover.css({\n            display: 'block',\n            left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,\n            top: bnd.top + bnd.height\n          });\n        }\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return AirPopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/Buttons.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/agent'\n], function ($, func, list, agent) {\n  var Buttons = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var invertedKeyMap = func.invertObject(options.keyMap[agent.isMac ? 'mac' : 'pc']);\n\n    var representShortcut = this.representShortcut = function (editorMethod) {\n      var shortcut = invertedKeyMap[editorMethod];\n      if (!options.shortcuts || !shortcut) {\n        return '';\n      }\n      \n      if (agent.isMac) {\n        shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n      }\n\n      shortcut = shortcut.replace('BACKSLASH', '\\\\')\n                         .replace('SLASH', '/')\n                         .replace('LEFTBRACKET', '[')\n                         .replace('RIGHTBRACKET', ']');\n\n      return ' (' + shortcut + ')';\n    };\n\n    this.initialize = function () {\n      this.addToolbarButtons();\n      this.addImagePopoverButtons();\n      this.addLinkPopoverButtons();\n      this.fontInstalledMap = {};\n    };\n\n    this.destroy = function () {\n      delete this.fontInstalledMap;\n    };\n\n    this.isFontInstalled = function (name) {\n      if (!self.fontInstalledMap.hasOwnProperty(name)) {\n        self.fontInstalledMap[name] = agent.isFontInstalled(name) ||\n          list.contains(options.fontNamesIgnoreCheck, name);\n      }\n\n      return self.fontInstalledMap[name];\n    };\n\n    this.addToolbarButtons = function () {\n      context.memo('button.style', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.magic) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.style.style,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'dropdown-style',\n            items: context.options.styleTags,\n            template: function (item) {\n\n              if (typeof item === 'string') {\n                item = { tag: item, title: (lang.style.hasOwnProperty(item) ? lang.style[item] : item) };\n              }\n\n              var tag = item.tag;\n              var title = item.title;\n              var style = item.style ? ' style=\"' + item.style + '\" ' : '';\n              var className = item.className ? ' class=\"' + item.className + '\"' : '';\n\n              return '<' + tag + style + className + '>' + title + '</' + tag +  '>';\n            },\n            click: context.createInvokeHandler('editor.formatBlock')\n          })\n        ]).render();\n      });\n\n      context.memo('button.bold', function () {\n        return ui.button({\n          className: 'note-btn-bold',\n          contents: ui.icon(options.icons.bold),\n          tooltip: lang.font.bold + representShortcut('bold'),\n          click: context.createInvokeHandler('editor.bold')\n        }).render();\n      });\n\n      context.memo('button.italic', function () {\n        return ui.button({\n          className: 'note-btn-italic',\n          contents: ui.icon(options.icons.italic),\n          tooltip: lang.font.italic + representShortcut('italic'),\n          click: context.createInvokeHandler('editor.italic')\n        }).render();\n      });\n\n      context.memo('button.underline', function () {\n        return ui.button({\n          className: 'note-btn-underline',\n          contents: ui.icon(options.icons.underline),\n          tooltip: lang.font.underline + representShortcut('underline'),\n          click: context.createInvokeHandler('editor.underline')\n        }).render();\n      });\n\n      context.memo('button.clear', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.eraser),\n          tooltip: lang.font.clear + representShortcut('removeFormat'),\n          click: context.createInvokeHandler('editor.removeFormat')\n        }).render();\n      });\n\n      context.memo('button.strikethrough', function () {\n        return ui.button({\n          className: 'note-btn-strikethrough',\n          contents: ui.icon(options.icons.strikethrough),\n          tooltip: lang.font.strikethrough + representShortcut('strikethrough'),\n          click: context.createInvokeHandler('editor.strikethrough')\n        }).render();\n      });\n\n      context.memo('button.superscript', function () {\n        return ui.button({\n          className: 'note-btn-superscript',\n          contents: ui.icon(options.icons.superscript),\n          tooltip: lang.font.superscript,\n          click: context.createInvokeHandler('editor.superscript')\n        }).render();\n      });\n\n      context.memo('button.subscript', function () {\n        return ui.button({\n          className: 'note-btn-subscript',\n          contents: ui.icon(options.icons.subscript),\n          tooltip: lang.font.subscript,\n          click: context.createInvokeHandler('editor.subscript')\n        }).render();\n      });\n\n      context.memo('button.fontname', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontname\"/> ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.name,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontname',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontNames.filter(self.isFontInstalled),\n            template: function (item) {\n              return '<span style=\"font-family:' + item + '\">' + item + '</span>';\n            },\n            click: context.createInvokeHandler('editor.fontName')\n          })\n        ]).render();\n      });\n\n      context.memo('button.fontsize', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontsize\"/>' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.size,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontsize',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontSizes,\n            click: context.createInvokeHandler('editor.fontSize')\n          })\n        ]).render();\n      });\n\n      context.memo('button.color', function () {\n        return ui.buttonGroup({\n          className: 'note-color',\n          children: [\n            ui.button({\n              className: 'note-current-color-button',\n              contents: ui.icon(options.icons.font + ' note-recent-color'),\n              tooltip: lang.color.recent,\n              click: function (e) {\n                var $button = $(e.currentTarget);\n                context.invoke('editor.color', {\n                  backColor: $button.attr('data-backColor'),\n                  foreColor: $button.attr('data-foreColor')\n                });\n              },\n              callback: function ($button) {\n                var $recentColor = $button.find('.note-recent-color');\n                $recentColor.css('background-color', '#FFFF00');\n                $button.attr('data-backColor', '#FFFF00');\n              }\n            }),\n            ui.button({\n              className: 'dropdown-toggle',\n              contents: ui.icon(options.icons.caret, 'span'),\n              tooltip: lang.color.more,\n              data: {\n                toggle: 'dropdown'\n              }\n            }),\n            ui.dropdown({\n              items: [\n                '<li>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.background + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"backColor\" data-value=\"inherit\">',\n                lang.color.transparent,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n                '</div>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.foreground + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"removeFormat\" data-value=\"foreColor\">',\n                lang.color.resetToDefault,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n                '</div>',\n                '</li>'\n              ].join(''),\n              callback: function ($dropdown) {\n                $dropdown.find('.note-holder').each(function () {\n                  var $holder = $(this);\n                  $holder.append(ui.palette({\n                    colors: options.colors,\n                    eventName: $holder.data('event')\n                  }).render());\n                });\n              },\n              click: function (event) {\n                var $button = $(event.target);\n                var eventName = $button.data('event');\n                var value = $button.data('value');\n\n                if (eventName && value) {\n                  var key = eventName === 'backColor' ? 'background-color' : 'color';\n                  var $color = $button.closest('.note-color').find('.note-recent-color');\n                  var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n                  $color.css(key, value);\n                  $currentButton.attr('data-' + eventName, value);\n                  context.invoke('editor.' + eventName, value);\n                }\n              }\n            })\n          ]\n        }).render();\n      });\n\n      context.memo('button.ul',  function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unorderedlist),\n          tooltip: lang.lists.unordered + representShortcut('insertUnorderedList'),\n          click: context.createInvokeHandler('editor.insertUnorderedList')\n        }).render();\n      });\n\n      context.memo('button.ol', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.orderedlist),\n          tooltip: lang.lists.ordered + representShortcut('insertOrderedList'),\n          click:  context.createInvokeHandler('editor.insertOrderedList')\n        }).render();\n      });\n\n      var justifyLeft = ui.button({\n        contents: ui.icon(options.icons.alignLeft),\n        tooltip: lang.paragraph.left + representShortcut('justifyLeft'),\n        click: context.createInvokeHandler('editor.justifyLeft')\n      });\n\n      var justifyCenter = ui.button({\n        contents: ui.icon(options.icons.alignCenter),\n        tooltip: lang.paragraph.center + representShortcut('justifyCenter'),\n        click: context.createInvokeHandler('editor.justifyCenter')\n      });\n\n      var justifyRight = ui.button({\n        contents: ui.icon(options.icons.alignRight),\n        tooltip: lang.paragraph.right + representShortcut('justifyRight'),\n        click: context.createInvokeHandler('editor.justifyRight')\n      });\n\n      var justifyFull = ui.button({\n        contents: ui.icon(options.icons.alignJustify),\n        tooltip: lang.paragraph.justify + representShortcut('justifyFull'),\n        click: context.createInvokeHandler('editor.justifyFull')\n      });\n\n      var outdent = ui.button({\n        contents: ui.icon(options.icons.outdent),\n        tooltip: lang.paragraph.outdent + representShortcut('outdent'),\n        click: context.createInvokeHandler('editor.outdent')\n      });\n\n      var indent = ui.button({\n        contents: ui.icon(options.icons.indent),\n        tooltip: lang.paragraph.indent + representShortcut('indent'),\n        click: context.createInvokeHandler('editor.indent')\n      });\n\n      context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n      context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n      context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n      context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n      context.memo('button.outdent', func.invoke(outdent, 'render'));\n      context.memo('button.indent', func.invoke(indent, 'render'));\n\n      context.memo('button.paragraph', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.alignLeft) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.paragraph.paragraph,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown([\n            ui.buttonGroup({\n              className: 'note-align',\n              children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n            }),\n            ui.buttonGroup({\n              className: 'note-list',\n              children: [outdent, indent]\n            })\n          ])\n        ]).render();\n      });\n\n      context.memo('button.height', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.textHeight) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.height,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            items: options.lineHeights,\n            checkClassName: options.icons.menuCheck,\n            className: 'dropdown-line-height',\n            click: context.createInvokeHandler('editor.lineHeight')\n          })\n        ]).render();\n      });\n\n      context.memo('button.table', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.table) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.table.table,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'note-table',\n            items: [\n              '<div class=\"note-dimension-picker\">',\n              '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n              '  <div class=\"note-dimension-picker-highlighted\"/>',\n              '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n              '</div>',\n              '<div class=\"note-dimension-display\">1 x 1</div>'\n            ].join('')\n          })\n        ], {\n          callback: function ($node) {\n            var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n            $catcher.css({\n              width: options.insertTableMaxSize.col + 'em',\n              height: options.insertTableMaxSize.row + 'em'\n            }).mousedown(context.createInvokeHandler('editor.insertTable'))\n              .on('mousemove', self.tableMoveHandler);\n          }\n        }).render();\n      });\n\n      context.memo('button.link', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.link + representShortcut('linkDialog.show'),\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.picture', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.picture),\n          tooltip: lang.image.image,\n          click: context.createInvokeHandler('imageDialog.show')\n        }).render();\n      });\n\n      context.memo('button.video', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.video),\n          tooltip: lang.video.video,\n          click: context.createInvokeHandler('videoDialog.show')\n        }).render();\n      });\n\n      context.memo('button.hr', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.minus),\n          tooltip: lang.hr.insert + representShortcut('insertHorizontalRule'),\n          click: context.createInvokeHandler('editor.insertHorizontalRule')\n        }).render();\n      });\n\n      context.memo('button.fullscreen', function () {\n        return ui.button({\n          className: 'btn-fullscreen',\n          contents: ui.icon(options.icons.arrowsAlt),\n          tooltip: lang.options.fullscreen,\n          click: context.createInvokeHandler('fullscreen.toggle')\n        }).render();\n      });\n\n      context.memo('button.codeview', function () {\n        return ui.button({\n          className: 'btn-codeview',\n          contents: ui.icon(options.icons.code),\n          tooltip: lang.options.codeview,\n          click: context.createInvokeHandler('codeview.toggle')\n        }).render();\n      });\n\n      context.memo('button.redo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.redo),\n          tooltip: lang.history.redo + representShortcut('redo'),\n          click: context.createInvokeHandler('editor.redo')\n        }).render();\n      });\n\n      context.memo('button.undo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.undo),\n          tooltip: lang.history.undo + representShortcut('undo'),\n          click: context.createInvokeHandler('editor.undo')\n        }).render();\n      });\n\n      context.memo('button.help', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.question),\n          tooltip: lang.options.help,\n          click: context.createInvokeHandler('helpDialog.show')\n        }).render();\n      });\n    };\n\n    /**\n     * image : [\n     *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n     *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],\n     *   ['remove', ['removeMedia']]\n     * ],\n     */\n    this.addImagePopoverButtons = function () {\n      // Image Size Buttons\n      context.memo('button.imageSize100', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">100%</span>',\n          tooltip: lang.image.resizeFull,\n          click: context.createInvokeHandler('editor.resize', '1')\n        }).render();\n      });\n      context.memo('button.imageSize50', function () {\n        return  ui.button({\n          contents: '<span class=\"note-fontsize-10\">50%</span>',\n          tooltip: lang.image.resizeHalf,\n          click: context.createInvokeHandler('editor.resize', '0.5')\n        }).render();\n      });\n      context.memo('button.imageSize25', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">25%</span>',\n          tooltip: lang.image.resizeQuarter,\n          click: context.createInvokeHandler('editor.resize', '0.25')\n        }).render();\n      });\n\n      // Float Buttons\n      context.memo('button.floatLeft', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignLeft),\n          tooltip: lang.image.floatLeft,\n          click: context.createInvokeHandler('editor.floatMe', 'left')\n        }).render();\n      });\n\n      context.memo('button.floatRight', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignRight),\n          tooltip: lang.image.floatRight,\n          click: context.createInvokeHandler('editor.floatMe', 'right')\n        }).render();\n      });\n\n      context.memo('button.floatNone', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignJustify),\n          tooltip: lang.image.floatNone,\n          click: context.createInvokeHandler('editor.floatMe', 'none')\n        }).render();\n      });\n\n      // Remove Buttons\n      context.memo('button.removeMedia', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.trash),\n          tooltip: lang.image.remove,\n          click: context.createInvokeHandler('editor.removeMedia')\n        }).render();\n      });\n    };\n\n    this.addLinkPopoverButtons = function () {\n      context.memo('button.linkDialogShow', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.edit,\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.unlink', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unlink),\n          tooltip: lang.link.unlink,\n          click: context.createInvokeHandler('editor.unlink')\n        }).render();\n      });\n    };\n\n    this.build = function ($container, groups) {\n      for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n        var group = groups[groupIdx];\n        var groupName = group[0];\n        var buttons = group[1];\n\n        var $group = ui.buttonGroup({\n          className: 'note-' + groupName\n        }).render();\n\n        for (var idx = 0, len = buttons.length; idx < len; idx++) {\n          var button = context.memo('button.' + buttons[idx]);\n          if (button) {\n            $group.append(typeof button === 'function' ? button(context) : button);\n          }\n        }\n        $group.appendTo($container);\n      }\n    };\n\n    this.updateCurrentStyle = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      this.updateBtnStates({\n        '.note-btn-bold': function () {\n          return styleInfo['font-bold'] === 'bold';\n        },\n        '.note-btn-italic': function () {\n          return styleInfo['font-italic'] === 'italic';\n        },\n        '.note-btn-underline': function () {\n          return styleInfo['font-underline'] === 'underline';\n        },\n        '.note-btn-subscript': function () {\n          return styleInfo['font-subscript'] === 'subscript';\n        },\n        '.note-btn-superscript': function () {\n          return styleInfo['font-superscript'] === 'superscript';\n        },\n        '.note-btn-strikethrough': function () {\n          return styleInfo['font-strikethrough'] === 'strikethrough';\n        }\n      });\n\n      if (styleInfo['font-family']) {\n        var fontNames = styleInfo['font-family'].split(',').map(function (name) {\n          return name.replace(/[\\'\\\"]/g, '')\n            .replace(/\\s+$/, '')\n            .replace(/^\\s+/, '');\n        });\n        var fontName = list.find(fontNames, self.isFontInstalled);\n\n        $toolbar.find('.dropdown-fontname li a').each(function () {\n          // always compare string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontName + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontname').text(fontName);\n      }\n\n      if (styleInfo['font-size']) {\n        var fontSize = styleInfo['font-size'];\n        $toolbar.find('.dropdown-fontsize li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontSize + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontsize').text(fontSize);\n      }\n\n      if (styleInfo['line-height']) {\n        var lineHeight = styleInfo['line-height'];\n        $toolbar.find('.dropdown-line-height li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (lineHeight + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n      }\n    };\n\n    this.updateBtnStates = function (infos) {\n      $.each(infos, function (selector, pred) {\n        ui.toggleBtnActive($toolbar.find(selector), pred());\n      });\n    };\n\n    this.tableMoveHandler = function (event) {\n      var PX_PER_EM = 18;\n      var $picker = $(event.target.parentNode); // target is mousecatcher\n      var $dimensionDisplay = $picker.next();\n      var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n      var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n      var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n      var posOffset;\n      // HTML5 with jQuery - e.offsetX is undefined in Firefox\n      if (event.offsetX === undefined) {\n        var posCatcher = $(event.target).offset();\n        posOffset = {\n          x: event.pageX - posCatcher.left,\n          y: event.pageY - posCatcher.top\n        };\n      } else {\n        posOffset = {\n          x: event.offsetX,\n          y: event.offsetY\n        };\n      }\n\n      var dim = {\n        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n        r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n      };\n\n      $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n      $catcher.data('value', dim.c + 'x' + dim.r);\n\n      if (3 < dim.c && dim.c < options.insertTableMaxSize.col) {\n        $unhighlighted.css({ width: dim.c + 1 + 'em'});\n      }\n\n      if (3 < dim.r && dim.r < options.insertTableMaxSize.row) {\n        $unhighlighted.css({ height: dim.r + 1 + 'em'});\n      }\n\n      $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n    };\n  };\n\n  return Buttons;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/HelpDialog.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/agent'\n], function ($, agent) {\n  var HelpDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.createShortCutList = function () {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      return Object.keys(keyMap).map(function (key) {\n        var command = keyMap[key];\n        var $row = $('<div><div class=\"help-list-item\"/></div>');\n        $row.append($('<label><kbd>' + key + '</kdb></label>').css({\n          'width': 180,\n          'margin-right': 10\n        })).append($('<span/>').html(context.memo('help.' + command) || command));\n        return $row.html();\n      }).join('');\n    };\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = [\n        '<p class=\"text-center\">',\n        '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote @VERSION</a> · ',\n        '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ',\n        '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>',\n        '</p>'\n      ].join('');\n\n      this.$dialog = ui.dialog({\n        title: lang.options.help,\n        fade: options.dialogsFade,\n        body: this.createShortCutList(),\n        footer: body,\n        callback: function ($node) {\n          $node.find('.modal-body').css({\n            'max-height': 300,\n            'overflow': 'scroll'\n          });\n        }\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    /**\n     * show help dialog\n     *\n     * @return {Promise}\n     */\n    this.showHelpDialog = function () {\n      return $.Deferred(function (deferred) {\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n          deferred.resolve();\n        });\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showHelpDialog().then(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n  };\n\n  return HelpDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/HintPopover.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/key'\n], function (func, list, dom, range, key) {\n  var HintPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var POPOVER_DIST = 5;\n    var hint = context.options.hint || [];\n    var direction = context.options.hintDirection || 'bottom';\n    var hints = $.isArray(hint) ? hint : [hint];\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return hints.length > 0;\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n      this.$popover = ui.popover({\n        className: 'note-hint-popover',\n        hideArrow: true,\n        direction: ''\n      }).render().appendTo('body');\n\n      this.$popover.hide();\n\n      this.$content = this.$popover.find('.popover-content');\n\n      this.$content.on('click', '.note-hint-item', function () {\n        self.$content.find('.active').removeClass('active');\n        $(this).addClass('active');\n        self.replace();\n      });\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.selectItem = function ($item) {\n      this.$content.find('.active').removeClass('active');\n      $item.addClass('active');\n\n      this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);\n    };\n\n    this.moveDown = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $next = $current.next();\n\n      if ($next.length) {\n        this.selectItem($next);\n      } else {\n        var $nextGroup = $current.parent().next();\n\n        if (!$nextGroup.length) {\n          $nextGroup = this.$content.find('.note-hint-group').first();\n        }\n\n        this.selectItem($nextGroup.find('.note-hint-item').first());\n      }\n    };\n\n    this.moveUp = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $prev = $current.prev();\n\n      if ($prev.length) {\n        this.selectItem($prev);\n      } else {\n        var $prevGroup = $current.parent().prev();\n\n        if (!$prevGroup.length) {\n          $prevGroup = this.$content.find('.note-hint-group').last();\n        }\n\n        this.selectItem($prevGroup.find('.note-hint-item').last());\n      }\n    };\n\n    this.replace = function () {\n      var $item = this.$content.find('.note-hint-item.active');\n\n      if ($item.length) {\n        var node = this.nodeFromItem($item);\n        this.lastWordRange.insertNode(node);\n        range.createFromNode(node).collapse().select();\n\n        this.lastWordRange = null;\n        this.hide();\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.nodeFromItem = function ($item) {\n      var hint = hints[$item.data('index')];\n      var item = $item.data('item');\n      var node = hint.content ? hint.content(item) : item;\n      if (typeof node === 'string') {\n        node = dom.createText(node);\n      }\n      return node;\n    };\n\n    this.createItemTemplates = function (hintIdx, items) {\n      var hint = hints[hintIdx];\n      return items.map(function (item, idx) {\n        var $item = $('<div class=\"note-hint-item\"/>');\n        $item.append(hint.template ? hint.template(item) : item + '');\n        $item.data({\n          'index': hintIdx,\n          'item': item\n        });\n\n        if (hintIdx === 0 && idx === 0) {\n          $item.addClass('active');\n        }\n        return $item;\n      });\n    };\n\n    this.handleKeydown = function (e) {\n      if (!this.$popover.is(':visible')) {\n        return;\n      }\n\n      if (e.keyCode === key.code.ENTER) {\n        e.preventDefault();\n        this.replace();\n      } else if (e.keyCode === key.code.UP) {\n        e.preventDefault();\n        this.moveUp();\n      } else if (e.keyCode === key.code.DOWN) {\n        e.preventDefault();\n        this.moveDown();\n      }\n    };\n\n    this.searchKeyword = function (index, keyword, callback) {\n      var hint = hints[index];\n      if (hint && hint.match.test(keyword) && hint.search) {\n        var matches = hint.match.exec(keyword);\n        hint.search(matches[1], callback);\n      } else {\n        callback();\n      }\n    };\n\n    this.createGroup = function (idx, keyword) {\n      var $group = $('<div class=\"note-hint-group note-hint-group-' + idx + '\"/>');\n      this.searchKeyword(idx, keyword, function (items) {\n        items = items || [];\n        if (items.length) {\n          $group.html(self.createItemTemplates(idx, items));\n          self.show();\n        }\n      });\n\n      return $group;\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {\n        if (e.keyCode === key.code.ENTER) {\n          if (this.$popover.is(':visible')) {\n            return;\n          }\n        }\n      } else {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        var keyword = wordRange.toString();\n        if (hints.length && keyword) {\n          this.$content.empty();\n\n          var bnd = func.rect2bnd(list.last(wordRange.getClientRects()));\n          if (bnd) {\n\n            this.$popover.hide();\n\n            this.lastWordRange = wordRange;\n\n            hints.forEach(function (hint, idx) {\n              if (hint.match.test(keyword)) {\n                self.createGroup(idx, keyword).appendTo(self.$content);\n              }\n            });\n\n            // set position for popover after group is created\n            if (direction === 'top') {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n              });\n            } else {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top + bnd.height + POPOVER_DIST\n              });\n            }\n\n          }\n        } else {\n          this.hide();\n        }\n      }\n    };\n\n    this.show = function () {\n      this.$popover.show();\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return HintPopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/ImageDialog.js",
    "content": "define([\n  'summernote/base/core/key'\n], function (key) {\n  var ImageDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var imageLimitation = '';\n      if (options.maximumImageFileSize) {\n        var unit = Math.floor(Math.log(options.maximumImageFileSize) / Math.log(1024));\n        var readableSize = (options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +\n                           ' ' + ' KMGTP'[unit] + 'B';\n        imageLimitation = '<small>' + lang.image.maximumFileSize + ' : ' + readableSize + '</small>';\n      }\n\n      var body = '<div class=\"form-group note-group-select-from-files\">' +\n                   '<label>' + lang.image.selectFromFiles + '</label>' +\n                   '<input class=\"note-image-input form-control\" type=\"file\" name=\"files\" accept=\"image/jpg, image/jpeg, image/png, image/gif\" multiple=\"multiple\" />' +\n                   imageLimitation +\n                 '</div>' +\n                 '<div class=\"form-group note-group-image-url\" style=\"overflow:auto;\">' +\n                   '<label>' + lang.image.url + '</label>' +\n                   '<input class=\"note-image-url form-control col-md-12\" type=\"text\" />' +\n                 '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-image-btn disabled\" disabled>' + lang.image.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.image.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showImageDialog().then(function (data) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        if (typeof data === 'string') { // image url\n          context.invoke('editor.insertImage', data);\n        } else { // array of files\n          context.invoke('editor.insertImagesOrCallback', data);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showImageDialog = function () {\n      return $.Deferred(function (deferred) {\n        var $imageInput = self.$dialog.find('.note-image-input'),\n            $imageUrl = self.$dialog.find('.note-image-url'),\n            $imageBtn = self.$dialog.find('.note-image-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // Cloning imageInput to clear element.\n          $imageInput.replaceWith($imageInput.clone()\n            .on('change', function () {\n              deferred.resolve(this.files || this.value);\n            })\n            .val('')\n          );\n\n          $imageBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($imageUrl.val());\n          });\n\n          $imageUrl.on('keyup paste', function () {\n            var url = $imageUrl.val();\n            ui.toggleBtn($imageBtn, url);\n          }).val('').trigger('focus');\n          self.bindEnterKey($imageUrl, $imageBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $imageInput.off('change');\n          $imageUrl.off('keyup paste keypress');\n          $imageBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  return ImageDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/ImagePopover.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (func, list, dom) {\n  var ImagePopover = function (context) {\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.image);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-image-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.image);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function (target) {\n      if (dom.isImg(target)) {\n        var pos = dom.posFromPlaceholder(target);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return ImagePopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/LinkDialog.js",
    "content": "define([\n  'summernote/base/core/key'\n], function (key) {\n  var LinkDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group\">' +\n                   '<label>' + lang.link.textToDisplay + '</label>' +\n                   '<input class=\"note-link-text form-control\" type=\"text\" />' +\n                 '</div>' +\n                 '<div class=\"form-group\">' +\n                   '<label>' + lang.link.url + '</label>' +\n                   '<input class=\"note-link-url form-control\" type=\"text\" value=\"http://\" />' +\n                 '</div>' +\n                 (!options.disableLinkTarget ?\n                   '<div class=\"checkbox\">' +\n                     '<label>' + '<input type=\"checkbox\" checked> ' + lang.link.openInNewWindow + '</label>' +\n                   '</div>' : ''\n                 );\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-link-btn disabled\" disabled>' + lang.link.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        className: 'link-dialog',\n        title: lang.link.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    /**\n     * toggle update button\n     */\n    this.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {\n      ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n    };\n\n    /**\n     * Show link dialog and set event handlers on dialog controls.\n     *\n     * @param {Object} linkInfo\n     * @return {Promise}\n     */\n    this.showLinkDialog = function (linkInfo) {\n      return $.Deferred(function (deferred) {\n        var $linkText = self.$dialog.find('.note-link-text'),\n        $linkUrl = self.$dialog.find('.note-link-url'),\n        $linkBtn = self.$dialog.find('.note-link-btn'),\n        $openInNewWindow = self.$dialog.find('input[type=checkbox]');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // if no url was given, copy text to url\n          if (!linkInfo.url) {\n            linkInfo.url = linkInfo.text;\n          }\n\n          $linkText.val(linkInfo.text);\n\n          var handleLinkTextUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // if linktext was modified by keyup,\n            // stop cloning text from linkUrl\n            linkInfo.text = $linkText.val();\n          };\n\n          $linkText.on('input', handleLinkTextUpdate).on('paste', function () {\n            setTimeout(handleLinkTextUpdate, 0);\n          });\n\n          var handleLinkUrlUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // display same link on `Text to display` input\n            // when create a new link\n            if (!linkInfo.text) {\n              $linkText.val($linkUrl.val());\n            }\n          };\n\n          $linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {\n            setTimeout(handleLinkUrlUpdate, 0);\n          }).val(linkInfo.url).trigger('focus');\n\n          self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          self.bindEnterKey($linkUrl, $linkBtn);\n          self.bindEnterKey($linkText, $linkBtn);\n\n          $openInNewWindow.prop('checked', linkInfo.isNewWindow);\n\n          $linkBtn.one('click', function (event) {\n            event.preventDefault();\n\n            deferred.resolve({\n              range: linkInfo.range,\n              url: $linkUrl.val(),\n              text: $linkText.val(),\n              isNewWindow: $openInNewWindow.is(':checked')\n            });\n            self.$dialog.modal('hide');\n          });\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          // detach events\n          $linkText.off('input paste keypress');\n          $linkUrl.off('input paste keypress');\n          $linkBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    /**\n     * @param {Object} layoutInfo\n     */\n    this.show = function () {\n      var linkInfo = context.invoke('editor.getLinkInfo');\n\n      context.invoke('editor.saveRange');\n      this.showLinkDialog(linkInfo).then(function (linkInfo) {\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.createLink', linkInfo);\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n    context.memo('help.linkDialog.show', options.langInfo.help['linkDialog.show']);\n  };\n\n  return LinkDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/LinkPopover.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (func, list, dom) {\n  var LinkPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.link);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-link-popover',\n        callback: function ($node) {\n          var $content = $node.find('.popover-content');\n          $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n        }\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.link);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        this.hide();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      if (rng.isCollapsed() && rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        var href = $(anchor).attr('href');\n        this.$popover.find('a').attr('href', href).html(href);\n\n        var pos = dom.posFromPlaceholder(anchor);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return LinkPopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/Toolbar.js",
    "content": "define(function () {\n  var Toolbar = function (context) {\n    var ui = $.summernote.ui;\n\n    var $note = context.layoutInfo.note;\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !options.airMode;\n    };\n\n    this.initialize = function () {\n      options.toolbar = options.toolbar || [];\n\n      if (!options.toolbar.length) {\n        $toolbar.hide();\n      } else {\n        context.invoke('buttons.build', $toolbar, options.toolbar);\n      }\n\n      if (options.toolbarContainer) {\n        $toolbar.appendTo(options.toolbarContainer);\n      }\n\n      $note.on('summernote.keyup summernote.mouseup summernote.change', function () {\n        context.invoke('buttons.updateCurrentStyle');\n      });\n\n      context.invoke('buttons.updateCurrentStyle');\n    };\n\n    this.destroy = function () {\n      $toolbar.children().remove();\n    };\n\n    this.updateFullscreen = function (isFullscreen) {\n      ui.toggleBtnActive($toolbar.find('.btn-fullscreen'), isFullscreen);\n    };\n\n    this.updateCodeview = function (isCodeview) {\n      ui.toggleBtnActive($toolbar.find('.btn-codeview'), isCodeview);\n      if (isCodeview) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n    };\n\n    this.activate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, true);\n    };\n\n    this.deactivate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, false);\n    };\n  };\n\n  return Toolbar;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/module/VideoDialog.js",
    "content": "define([\n  'summernote/base/core/key'\n], function (key) {\n  var VideoDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.video.url + ' <small class=\"text-muted\">' + lang.video.providers + '</small></label>' +\n          '<input class=\"note-video-url form-control span12\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-video-btn disabled\" disabled>' + lang.video.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.video.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.createVideoNode = function (url) {\n      // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n      var ytRegExp = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n      var ytMatch = url.match(ytRegExp);\n\n      var igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n      var igMatch = url.match(igRegExp);\n\n      var vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n      var vMatch = url.match(vRegExp);\n\n      var vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*([0-9]{6,11})[?]?.*/;\n      var vimMatch = url.match(vimRegExp);\n\n      var dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n      var dmMatch = url.match(dmRegExp);\n\n      var youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n      var youkuMatch = url.match(youkuRegExp);\n\n      var mp4RegExp = /^.+.(mp4|m4v)$/;\n      var mp4Match = url.match(mp4RegExp);\n\n      var oggRegExp = /^.+.(ogg|ogv)$/;\n      var oggMatch = url.match(oggRegExp);\n\n      var webmRegExp = /^.+.(webm)$/;\n      var webmMatch = url.match(webmRegExp);\n\n      var $video;\n      if (ytMatch && ytMatch[1].length === 11) {\n        var youtubeId = ytMatch[1];\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.youtube.com/embed/' + youtubeId)\n            .attr('width', '640').attr('height', '360');\n      } else if (igMatch && igMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')\n            .attr('width', '612').attr('height', '710')\n            .attr('scrolling', 'no')\n            .attr('allowtransparency', 'true');\n      } else if (vMatch && vMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', vMatch[0] + '/embed/simple')\n            .attr('width', '600').attr('height', '600')\n            .attr('class', 'vine-embed');\n      } else if (vimMatch && vimMatch[3].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('src', '//player.vimeo.com/video/' + vimMatch[3])\n            .attr('width', '640').attr('height', '360');\n      } else if (dmMatch && dmMatch[2].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])\n            .attr('width', '640').attr('height', '360');\n      } else if (youkuMatch && youkuMatch[1].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('height', '498')\n            .attr('width', '510')\n            .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n      } else if (mp4Match || oggMatch || webmMatch) {\n        $video = $('<video controls>')\n            .attr('src', url)\n            .attr('width', '640').attr('height', '360');\n      } else {\n        // this is not a known video link. Now what, Cat? Now what?\n        return false;\n      }\n\n      $video.addClass('note-video-clip');\n\n      return $video[0];\n    };\n\n    this.show = function () {\n      var text = context.invoke('editor.getSelectedText');\n      context.invoke('editor.saveRange');\n      this.showVideoDialog(text).then(function (url) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        // build node\n        var $node = self.createVideoNode(url);\n\n        if ($node) {\n          // insert video node\n          context.invoke('editor.insertNode', $node);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showVideoDialog = function (text) {\n      return $.Deferred(function (deferred) {\n        var $videoUrl = self.$dialog.find('.note-video-url'),\n            $videoBtn = self.$dialog.find('.note-video-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $videoUrl.val(text).on('input', function () {\n            ui.toggleBtn($videoBtn, $videoUrl.val());\n          }).trigger('focus');\n\n          $videoBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($videoUrl.val());\n          });\n\n          self.bindEnterKey($videoUrl, $videoBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $videoUrl.off('input');\n          $videoBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  return VideoDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/settings.js",
    "content": "define([\n  'summernote/bs3/ui',\n  'summernote/base/core/dom',\n  'summernote/base/summernote-en-US',\n  'summernote/base/module/Editor',\n  'summernote/base/module/Clipboard',\n  'summernote/base/module/Dropzone',\n  'summernote/base/module/Codeview',\n  'summernote/base/module/Statusbar',\n  'summernote/base/module/Fullscreen',\n  'summernote/base/module/Handle',\n  'summernote/base/module/AutoLink',\n  'summernote/base/module/AutoSync',\n  'summernote/base/module/Placeholder',\n  'summernote/bs3/module/Buttons',\n  'summernote/bs3/module/Toolbar',\n  'summernote/bs3/module/LinkDialog',\n  'summernote/bs3/module/LinkPopover',\n  'summernote/bs3/module/ImageDialog',\n  'summernote/bs3/module/ImagePopover',\n  'summernote/bs3/module/VideoDialog',\n  'summernote/bs3/module/HelpDialog',\n  'summernote/bs3/module/AirPopover',\n  'summernote/bs3/module/HintPopover'\n], function (\n  ui, dom, lang,\n  Editor, Clipboard, Dropzone, Codeview, Statusbar, Fullscreen, Handle, AutoLink, AutoSync, Placeholder,\n  Buttons, Toolbar, LinkDialog, LinkPopover, ImageDialog, ImagePopover, VideoDialog, HelpDialog, AirPopover, HintPopover\n) {\n\n  $.summernote = $.extend($.summernote, {\n    version: '@VERSION',\n    ui: ui,\n    dom: dom,\n\n    plugins: {},\n\n    options: {\n      modules: {\n        'editor': Editor,\n        'clipboard': Clipboard,\n        'dropzone': Dropzone,\n        'codeview': Codeview,\n        'statusbar': Statusbar,\n        'fullscreen': Fullscreen,\n        'handle': Handle,\n        // FIXME: HintPopover must be front of autolink\n        //  - Script error about range when Enter key is pressed on hint popover\n        'hintPopover': HintPopover,\n        'autoLink': AutoLink,\n        'autoSync': AutoSync,\n        'placeholder': Placeholder,\n        'buttons': Buttons,\n        'toolbar': Toolbar,\n        'linkDialog': LinkDialog,\n        'linkPopover': LinkPopover,\n        'imageDialog': ImageDialog,\n        'imagePopover': ImagePopover,\n        'videoDialog': VideoDialog,\n        'helpDialog': HelpDialog,\n        'airPopover': AirPopover\n      },\n\n      buttons: {},\n      \n      lang: 'en-US',\n\n      // toolbar\n      toolbar: [\n        ['style', ['style']],\n        ['font', ['bold', 'underline', 'clear']],\n        ['fontname', ['fontname']],\n        ['color', ['color']],\n        ['para', ['ul', 'ol', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture', 'video']],\n        ['view', ['fullscreen', 'codeview', 'help']]\n      ],\n\n      // popover\n      popover: {\n        image: [\n          ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n          ['float', ['floatLeft', 'floatRight', 'floatNone']],\n          ['remove', ['removeMedia']]\n        ],\n        link: [\n          ['link', ['linkDialogShow', 'unlink']]\n        ],\n        air: [\n          ['color', ['color']],\n          ['font', ['bold', 'underline', 'clear']],\n          ['para', ['ul', 'paragraph']],\n          ['table', ['table']],\n          ['insert', ['link', 'picture']]\n        ]\n      },\n\n      // air mode: inline editor\n      airMode: false,\n\n      width: null,\n      height: null,\n\n      focus: false,\n      tabSize: 4,\n      styleWithSpan: true,\n      shortcuts: true,\n      textareaAutoSync: true,\n      direction: null,\n\n      styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n      fontNames: [\n        'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',\n        'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',\n        'Tahoma', 'Times New Roman', 'Verdana'\n      ],\n\n      fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n\n      // pallete colors(n x n)\n      colors: [\n        ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],\n        ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],\n        ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],\n        ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],\n        ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],\n        ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],\n        ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],\n        ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']\n      ],\n\n      lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n\n      tableClassName: 'table table-bordered',\n\n      insertTableMaxSize: {\n        col: 10,\n        row: 10\n      },\n\n      dialogsInBody: false,\n      dialogsFade: false,\n\n      maximumImageFileSize: null,\n\n      callbacks: {\n        onInit: null,\n        onFocus: null,\n        onBlur: null,\n        onEnter: null,\n        onKeyup: null,\n        onKeydown: null,\n        onImageUpload: null,\n        onImageUploadError: null\n      },\n\n      codemirror: {\n        mode: 'text/html',\n        htmlMode: true,\n        lineNumbers: true\n      },\n\n      keyMap: {\n        pc: {\n          'ENTER': 'insertParagraph',\n          'CTRL+Z': 'undo',\n          'CTRL+Y': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CTRL+B': 'bold',\n          'CTRL+I': 'italic',\n          'CTRL+U': 'underline',\n          'CTRL+SHIFT+S': 'strikethrough',\n          'CTRL+BACKSLASH': 'removeFormat',\n          'CTRL+SHIFT+L': 'justifyLeft',\n          'CTRL+SHIFT+E': 'justifyCenter',\n          'CTRL+SHIFT+R': 'justifyRight',\n          'CTRL+SHIFT+J': 'justifyFull',\n          'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n          'CTRL+SHIFT+NUM8': 'insertOrderedList',\n          'CTRL+LEFTBRACKET': 'outdent',\n          'CTRL+RIGHTBRACKET': 'indent',\n          'CTRL+NUM0': 'formatPara',\n          'CTRL+NUM1': 'formatH1',\n          'CTRL+NUM2': 'formatH2',\n          'CTRL+NUM3': 'formatH3',\n          'CTRL+NUM4': 'formatH4',\n          'CTRL+NUM5': 'formatH5',\n          'CTRL+NUM6': 'formatH6',\n          'CTRL+ENTER': 'insertHorizontalRule',\n          'CTRL+K': 'linkDialog.show'\n        },\n\n        mac: {\n          'ENTER': 'insertParagraph',\n          'CMD+Z': 'undo',\n          'CMD+SHIFT+Z': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CMD+B': 'bold',\n          'CMD+I': 'italic',\n          'CMD+U': 'underline',\n          'CMD+SHIFT+S': 'strikethrough',\n          'CMD+BACKSLASH': 'removeFormat',\n          'CMD+SHIFT+L': 'justifyLeft',\n          'CMD+SHIFT+E': 'justifyCenter',\n          'CMD+SHIFT+R': 'justifyRight',\n          'CMD+SHIFT+J': 'justifyFull',\n          'CMD+SHIFT+NUM7': 'insertUnorderedList',\n          'CMD+SHIFT+NUM8': 'insertOrderedList',\n          'CMD+LEFTBRACKET': 'outdent',\n          'CMD+RIGHTBRACKET': 'indent',\n          'CMD+NUM0': 'formatPara',\n          'CMD+NUM1': 'formatH1',\n          'CMD+NUM2': 'formatH2',\n          'CMD+NUM3': 'formatH3',\n          'CMD+NUM4': 'formatH4',\n          'CMD+NUM5': 'formatH5',\n          'CMD+NUM6': 'formatH6',\n          'CMD+ENTER': 'insertHorizontalRule',\n          'CMD+K': 'linkDialog.show'\n        }\n      },\n      icons: {\n        'align': 'note-icon-align',\n        'alignCenter': 'note-icon-align-center',\n        'alignJustify': 'note-icon-align-justify',\n        'alignLeft': 'note-icon-align-left',\n        'alignRight': 'note-icon-align-right',\n        'indent': 'note-icon-align-indent',\n        'outdent': 'note-icon-align-outdent',\n        'arrowsAlt': 'note-icon-arrows-alt',\n        'bold': 'note-icon-bold',\n        'caret': 'note-icon-caret',\n        'circle': 'note-icon-circle',\n        'close': 'note-icon-close',\n        'code': 'note-icon-code',\n        'eraser': 'note-icon-eraser',\n        'font': 'note-icon-font',\n        'frame': 'note-icon-frame',\n        'italic': 'note-icon-italic',\n        'link': 'note-icon-link',\n        'unlink': 'note-icon-chain-broken',\n        'magic': 'note-icon-magic',\n        'menuCheck': 'note-icon-check',\n        'minus': 'note-icon-minus',\n        'orderedlist': 'note-icon-orderedlist',\n        'pencil': 'note-icon-pencil',\n        'picture': 'note-icon-picture',\n        'question': 'note-icon-question',\n        'redo': 'note-icon-redo',\n        'square': 'note-icon-square',\n        'strikethrough': 'note-icon-strikethrough',\n        'subscript': 'note-icon-subscript',\n        'superscript': 'note-icon-superscript',\n        'table': 'note-icon-table',\n        'textHeight': 'note-icon-text-height',\n        'trash': 'note-icon-trash',\n        'underline': 'note-icon-underline',\n        'undo': 'note-icon-undo',\n        'unorderedlist': 'note-icon-unorderedlist',\n        'video': 'note-icon-video'\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/bs3/ui.js",
    "content": "define([\n  'summernote/base/renderer'\n], function (renderer) {\n  var editor = renderer.create('<div class=\"note-editor note-frame panel panel-default\"/>');\n  var toolbar = renderer.create('<div class=\"note-toolbar panel-heading\"/>');\n  var editingArea = renderer.create('<div class=\"note-editing-area\"/>');\n  var codable = renderer.create('<textarea class=\"note-codable\"/>');\n  var editable = renderer.create('<div class=\"note-editable panel-body\" contentEditable=\"true\"/>');\n  var statusbar = renderer.create([\n    '<div class=\"note-statusbar\">',\n    '  <div class=\"note-resizebar\">',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '  </div>',\n    '</div>'\n  ].join(''));\n\n  var airEditor = renderer.create('<div class=\"note-editor\"/>');\n  var airEditable = renderer.create('<div class=\"note-editable\" contentEditable=\"true\"/>');\n\n  var buttonGroup = renderer.create('<div class=\"note-btn-group btn-group\">');\n  var button = renderer.create('<button type=\"button\" class=\"note-btn btn btn-default btn-sm\" tabindex=\"-1\">', function ($node, options) {\n    if (options && options.tooltip) {\n      $node.attr({\n        title: options.tooltip\n      }).tooltip({\n        container: 'body',\n        trigger: 'hover',\n        placement: 'bottom'\n      });\n    }\n  });\n\n  var dropdown = renderer.create('<div class=\"dropdown-menu\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + content + '</a></li>';\n    }).join('') : options.items;\n\n    $node.html(markup);\n  });\n\n  var dropdownCheck = renderer.create('<div class=\"dropdown-menu note-check\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + icon(options.checkClassName) + ' ' + content + '</a></li>';\n    }).join('') : options.items;\n    $node.html(markup);\n  });\n\n  var palette = renderer.create('<div class=\"note-color-palette\"/>', function ($node, options) {\n    var contents = [];\n    for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n      var eventName = options.eventName;\n      var colors = options.colors[row];\n      var buttons = [];\n      for (var col = 0, colSize = colors.length; col < colSize; col++) {\n        var color = colors[col];\n        buttons.push([\n          '<button type=\"button\" class=\"note-color-btn\"',\n          'style=\"background-color:', color, '\" ',\n          'data-event=\"', eventName, '\" ',\n          'data-value=\"', color, '\" ',\n          'title=\"', color, '\" ',\n          'data-toggle=\"button\" tabindex=\"-1\"></button>'\n        ].join(''));\n      }\n      contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n    }\n    $node.html(contents.join(''));\n\n    $node.find('.note-color-btn').tooltip({\n      container: 'body',\n      trigger: 'hover',\n      placement: 'bottom'\n    });\n  });\n\n  var dialog = renderer.create('<div class=\"modal\" aria-hidden=\"false\" tabindex=\"-1\"/>', function ($node, options) {\n    if (options.fade) {\n      $node.addClass('fade');\n    }\n    $node.html([\n      '<div class=\"modal-dialog\">',\n      '  <div class=\"modal-content\">',\n      (options.title ?\n      '    <div class=\"modal-header\">' +\n      '      <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button>' +\n      '      <h4 class=\"modal-title\">' + options.title + '</h4>' +\n      '    </div>' : ''\n      ),\n      '    <div class=\"modal-body\">' + options.body + '</div>',\n      (options.footer ?\n      '    <div class=\"modal-footer\">' + options.footer + '</div>' : ''\n      ),\n      '  </div>',\n      '</div>'\n    ].join(''));\n  });\n\n  var popover = renderer.create([\n    '<div class=\"note-popover popover in\">',\n    '  <div class=\"arrow\"/>',\n    '  <div class=\"popover-content note-children-container\"/>',\n    '</div>'\n  ].join(''), function ($node, options) {\n    var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n\n    $node.addClass(direction);\n\n    if (options.hideArrow) {\n      $node.find('.arrow').hide();\n    }\n  });\n\n  var icon = function (iconClassName, tagName) {\n    tagName = tagName || 'i';\n    return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n  };\n\n  var ui = {\n    editor: editor,\n    toolbar: toolbar,\n    editingArea: editingArea,\n    codable: codable,\n    editable: editable,\n    statusbar: statusbar,\n    airEditor: airEditor,\n    airEditable: airEditable,\n    buttonGroup: buttonGroup,\n    button: button,\n    dropdown: dropdown,\n    dropdownCheck: dropdownCheck,\n    palette: palette,\n    dialog: dialog,\n    popover: popover,\n    icon: icon,\n\n    toggleBtn: function ($btn, isEnable) {\n      $btn.toggleClass('disabled', !isEnable);\n      $btn.attr('disabled', !isEnable);\n    },\n\n    toggleBtnActive: function ($btn, isActive) {\n      $btn.toggleClass('active', isActive);\n    },\n\n    onDialogShown: function ($dialog, handler) {\n      $dialog.one('shown.bs.modal', handler);\n    },\n\n    onDialogHidden: function ($dialog, handler) {\n      $dialog.one('hidden.bs.modal', handler);\n    },\n\n    showDialog: function ($dialog) {\n      $dialog.modal('show');\n    },\n\n    hideDialog: function ($dialog) {\n      $dialog.modal('hide');\n    },\n\n    createLayout: function ($note, options) {\n      var $editor = (options.airMode ? ui.airEditor([\n        ui.editingArea([\n          ui.airEditable()\n        ])\n      ]) : ui.editor([\n        ui.toolbar(),\n        ui.editingArea([\n          ui.codable(),\n          ui.editable()\n        ]),\n        ui.statusbar()\n      ])).render();\n\n      $editor.insertAfter($note);\n\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editingArea: $editor.find('.note-editing-area'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable'),\n        statusbar: $editor.find('.note-statusbar')\n      };\n    },\n\n    removeLayout: function ($note, layoutInfo) {\n      $note.html(layoutInfo.editable.html());\n      layoutInfo.editor.remove();\n      $note.show();\n    }\n  };\n\n  return ui;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/intro.js",
    "content": "/**\n * Super simple wysiwyg editor v@VERSION\n * http://summernote.org/\n *\n * summernote.js\n * Copyright 2013-2016 Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license./\n *\n * Date: @DATE\n */\n(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  'use strict';\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/lite/module/Toolbar.js",
    "content": "define(function () {\n  var Toolbar = function (context) {\n    var ui = $.summernote.ui;\n    var $toolbar = context.layoutInfo.toolbar;\n\n    this.initialize = function () {\n      ui.buttonGroup([\n        ui.button({\n          contents: 'bold',\n          click: context.createInvokeHandler('editor.bold')\n        }),\n        ui.button({\n          contents: 'italic',\n          click: context.createInvokeHandler('editor.italic')\n        })\n      ]).render().appendTo($toolbar);\n    };\n\n    this.destroy = function () {\n      $toolbar.children().remove();\n    };\n  };\n\n  return Toolbar;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/lite/settings.js",
    "content": "define([\n  'summernote/lite/ui',\n  'summernote/base/summernote-en-US',\n  'summernote/base/module/Editor',\n  'summernote/lite/module/Toolbar'\n], function (ui, lang, Editor, Toolbar) {\n  $.summernote = $.extend($.summernote, {\n    version: '@VERSION',\n    ui: ui,\n\n    options: {\n      modules: {\n        'editor': Editor,\n        'toolbar': Toolbar\n      },\n\n      buttons: {},\n\n      width: null,\n      height: null,\n\n      focus: false,\n      tabSize: 4,\n      styleWithSpan: true,\n      shortcuts: true,\n      textareaAutoSync: true,\n      direction: null,\n\n      callbacks: {\n        onInit: null,\n        onFocus: null,\n        onBlur: null,\n        onEnter: null,\n        onKeyup: null,\n        onKeydown: null\n      },\n\n      keyMap: {\n        pc: {\n          'ENTER': 'insertParagraph',\n          'CTRL+Z': 'undo',\n          'CTRL+Y': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CTRL+B': 'bold',\n          'CTRL+I': 'italic',\n          'CTRL+U': 'underline',\n          'CTRL+SHIFT+S': 'strikethrough',\n          'CTRL+BACKSLASH': 'removeFormat',\n          'CTRL+SHIFT+L': 'justifyLeft',\n          'CTRL+SHIFT+E': 'justifyCenter',\n          'CTRL+SHIFT+R': 'justifyRight',\n          'CTRL+SHIFT+J': 'justifyFull',\n          'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n          'CTRL+SHIFT+NUM8': 'insertOrderedList',\n          'CTRL+LEFTBRACKET': 'outdent',\n          'CTRL+RIGHTBRACKET': 'indent',\n          'CTRL+NUM0': 'formatPara',\n          'CTRL+NUM1': 'formatH1',\n          'CTRL+NUM2': 'formatH2',\n          'CTRL+NUM3': 'formatH3',\n          'CTRL+NUM4': 'formatH4',\n          'CTRL+NUM5': 'formatH5',\n          'CTRL+NUM6': 'formatH6',\n          'CTRL+ENTER': 'insertHorizontalRule'\n        },\n\n        mac: {\n          'ENTER': 'insertParagraph',\n          'CMD+Z': 'undo',\n          'CMD+SHIFT+Z': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CMD+B': 'bold',\n          'CMD+I': 'italic',\n          'CMD+U': 'underline',\n          'CMD+SHIFT+S': 'strikethrough',\n          'CMD+BACKSLASH': 'removeFormat',\n          'CMD+SHIFT+L': 'justifyLeft',\n          'CMD+SHIFT+E': 'justifyCenter',\n          'CMD+SHIFT+R': 'justifyRight',\n          'CMD+SHIFT+J': 'justifyFull',\n          'CMD+SHIFT+NUM7': 'insertUnorderedList',\n          'CMD+SHIFT+NUM8': 'insertOrderedList',\n          'CMD+LEFTBRACKET': 'outdent',\n          'CMD+RIGHTBRACKET': 'indent',\n          'CMD+NUM0': 'formatPara',\n          'CMD+NUM1': 'formatH1',\n          'CMD+NUM2': 'formatH2',\n          'CMD+NUM3': 'formatH3',\n          'CMD+NUM4': 'formatH4',\n          'CMD+NUM5': 'formatH5',\n          'CMD+NUM6': 'formatH6',\n          'CMD+ENTER': 'insertHorizontalRule'\n        }\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/lite/ui.js",
    "content": "define([\n  'summernote/base/renderer'\n], function (renderer) {\n  var ui = {\n    editor: renderer.create('<div class=\"note-editor\">'),\n    toolbar: renderer.create('<div class=\"note-toolbar\">'),\n    editingArea: renderer.create('<div class=\"note-editing-area\">'),\n    codable: renderer.create('<div class=\"note-codable\">'),\n    editable: renderer.create('<div class=\"note-editable\" contentEditable=\"true\">'),\n    buttonGroup: renderer.create('<span class=\"note-btn-group\">'),\n    button: renderer.create('<button class=\"note-btn\">'),\n\n    createLayout: function ($note) {\n      var $editor = ui.editor([\n        ui.toolbar(),\n        ui.editingArea([\n          ui.codable(),\n          ui.editable()\n        ])\n      ]).render();\n\n      $editor.insertAfter($note);\n\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable')\n      };\n    }\n  };\n\n  return ui;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/outro.js",
    "content": "}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/js/summernote.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/list',\n  'summernote/base/Context'\n], function ($, list, Context) {\n  $.fn.extend({\n    /**\n     * Summernote API\n     *\n     * @param {Object|String}\n     * @return {this}\n     */\n    summernote: function () {\n      var type = $.type(list.head(arguments));\n      var isExternalAPICalled = type === 'string';\n      var hasInitOptions = type === 'object';\n\n      var options = hasInitOptions ? list.head(arguments) : {};\n\n      options = $.extend({}, $.summernote.options, options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n\n      this.each(function (idx, note) {\n        var $note = $(note);\n        if (!$note.data('summernote')) {\n          var context = new Context($note, options);\n          $note.data('summernote', context);\n          $note.data('summernote').triggerEvent('init', context.layoutInfo);\n        }\n      });\n\n      var $note = this.first();\n      if ($note.length) {\n        var context = $note.data('summernote');\n        if (isExternalAPICalled) {\n          return context.invoke.apply(context, list.from(arguments));\n        } else if (options.focus) {\n          context.invoke('editor.focus');\n        }\n      }\n\n      return this;\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/less/elements.less",
    "content": "/*---------------------------------------------------\n    LESS Elements 0.9\n  ---------------------------------------------------\n    A set of useful LESS mixins\n    More info at: http://lesselements.com\n  ---------------------------------------------------*/\n\n.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF) {\n  background: @color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, @start),\n                               color-stop(1, @stop));\n  background: -ms-linear-gradient(bottom,\n                                  @start,\n                                  @stop);\n  background: -moz-linear-gradient(center bottom,\n                                   @start 0%,\n                                   @stop 100%);\n  background: -o-linear-gradient(@stop,\n                                 @start);\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@stop,@start));\n}\n.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255) {\n  background: @color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, rgb(@start,@start,@start)),\n                               color-stop(1, rgb(@stop,@stop,@stop)));\n  background: -ms-linear-gradient(bottom,\n                                  rgb(@start,@start,@start) 0%,\n                                  rgb(@stop,@stop,@stop) 100%);\n  background: -moz-linear-gradient(center bottom,\n                                   rgb(@start,@start,@start) 0%,\n                                   rgb(@stop,@stop,@stop) 100%);\n  background: -o-linear-gradient(rgb(@stop,@stop,@stop),\n                                 rgb(@start,@start,@start));\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",rgb(@stop,@stop,@stop),rgb(@start,@start,@start)));\n}\n.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE, @left-color: #EEE) {\n  border-top: solid 1px @top-color;\n  border-left: solid 1px @left-color;\n  border-right: solid 1px @right-color;\n  border-bottom: solid 1px @bottom-color;\n}\n.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) {\n  -webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);\n  -moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);\n  box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);\n}\n.rounded(@radius: 2px) {\n  -webkit-border-radius: @radius;\n  -moz-border-radius: @radius;\n  border-radius: @radius;\n}\n.border-radius(@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0) {\n  -webkit-border-top-right-radius: @topright;\n  -webkit-border-bottom-right-radius: @bottomright;\n  -webkit-border-bottom-left-radius: @bottomleft;\n  -webkit-border-top-left-radius: @topleft;\n  -moz-border-radius-topright: @topright;\n  -moz-border-radius-bottomright: @bottomright;\n  -moz-border-radius-bottomleft: @bottomleft;\n  -moz-border-radius-topleft: @topleft;\n  border-top-right-radius: @topright;\n  border-bottom-right-radius: @bottomright;\n  border-bottom-left-radius: @bottomleft;\n  border-top-left-radius: @topleft;\n  .background-clip(padding-box);\n}\n.opacity(@opacity: 0.5) {\n  -webkit-opacity: @opacity;\n  -khtml-opacity: @opacity;\n  -moz-opacity: @opacity;\n  opacity: @opacity;\n  @opperc: @opacity * 100;\n  -ms-filter: ~\"progid:DXImageTransform.Microsoft.Alpha(opacity=@{opperc})\";\n  filter: ~\"alpha(opacity=@{opperc})\";\n}\n.transition-duration(@duration: 0.2s) {\n  -moz-transition-duration: @duration;\n  -webkit-transition-duration: @duration;\n  -o-transition-duration: @duration;\n  transition-duration: @duration;\n}\n.transform(...) {\n  -webkit-transform: @arguments;\n  -moz-transform: @arguments;\n  -o-transform: @arguments;\n  -ms-transform: @arguments;\n  transform: @arguments;\n}\n.rotation(@deg:5deg){\n  .transform(rotate(@deg));\n}\n.scale(@ratio:1.5){\n  .transform(scale(@ratio));\n}\n.transition(@duration:0.2s, @ease:ease-out) {\n  -webkit-transition: all @duration @ease;\n  -moz-transition: all @duration @ease;\n  -o-transition: all @duration @ease;\n  transition: all @duration @ease;\n}\n.inner-shadow(@horizontal:0, @vertical:1px, @blur:2px, @alpha: 0.4) {\n  -webkit-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);\n  -moz-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);\n  box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);\n}\n.box-shadow(@arguments) {\n  -webkit-box-shadow: @arguments;\n  -moz-box-shadow: @arguments;\n  box-shadow: @arguments;\n}\n.box-sizing(@sizing: border-box) {\n  -ms-box-sizing: @sizing;\n  -moz-box-sizing: @sizing;\n  -webkit-box-sizing: @sizing;\n  box-sizing: @sizing;\n}\n.user-select(@argument: none) {\n  -webkit-user-select: @argument;\n  -moz-user-select: @argument;\n  -ms-user-select: @argument;\n  user-select: @argument;\n}\n.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px) {\n  -moz-column-width: @colwidth;\n  -moz-column-count: @colcount;\n  -moz-column-gap: @colgap;\n  -moz-column-rule-color: @columnRuleColor;\n  -moz-column-rule-style: @columnRuleStyle;\n  -moz-column-rule-width: @columnRuleWidth;\n  -webkit-column-width: @colwidth;\n  -webkit-column-count: @colcount;\n  -webkit-column-gap: @colgap;\n  -webkit-column-rule-color: @columnRuleColor;\n  -webkit-column-rule-style: @columnRuleStyle;\n  -webkit-column-rule-width: @columnRuleWidth;\n  column-width: @colwidth;\n  column-count: @colcount;\n  column-gap: @colgap;\n  column-rule-color: @columnRuleColor;\n  column-rule-style: @columnRuleStyle;\n  column-rule-width: @columnRuleWidth;\n}\n.translate(@x:0, @y:0) {\n  .transform(translate(@x, @y));\n}\n.background-clip(@argument: padding-box) {\n  -moz-background-clip: @argument;\n  -webkit-background-clip: @argument;\n  background-clip: @argument;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/less/elements.scss",
    "content": "/*---------------------------------------------------\n    LESS Elements 0.9\n  ---------------------------------------------------\n    A set of useful LESS mixins\n    More info at: http://lesselements.com\n  ---------------------------------------------------*/\n\n@mixin gradient($color: #F5F5F5, $start: #EEE, $stop: #FFF) {\n  background: $color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, $start),\n                               color-stop(1, $stop));\n  background: -ms-linear-gradient(bottom,\n                                  $start,\n                                  $stop);\n  background: -moz-linear-gradient(center bottom,\n                                   $start 0%,\n                                   $stop 100%);\n  background: -o-linear-gradient($stop,\n                                 $start);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($stop)}', endColorstr='#{ie-hex-str($start)}', GradientType=0);\n}\n@mixin bw-gradient($color: #F5F5F5, $start: 0, $stop: 255) {\n  background: $color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, rgb($start,$start,$start)),\n                               color-stop(1, rgb($stop,$stop,$stop)));\n  background: -ms-linear-gradient(bottom,\n                                  rgb($start,$start,$start) 0%,\n                                  rgb($stop,$stop,$stop) 100%);\n  background: -moz-linear-gradient(center bottom,\n                                   rgb($start,$start,$start) 0%,\n                                   rgb($stop,$stop,$stop) 100%);\n  background: -o-linear-gradient(rgb($stop,$stop,$stop),\n                                 rgb($start,$start,$start));\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str(rgb($stop,$stop,$stop))}', endColorstr='#{ie-hex-str(rgb($start,$start,$start))}', GradientType=0);\n}\n@mixin bordered($top-color: #EEE, $right-color: #EEE, $bottom-color: #EEE, $left-color: #EEE) {\n  border-top: solid 1px $top-color;\n  border-left: solid 1px $left-color;\n  border-right: solid 1px $right-color;\n  border-bottom: solid 1px $bottom-color;\n}\n@mixin drop-shadow($x-axis: 0, $y-axis: 1px, $blur: 2px, $alpha: 0.1) {\n  -webkit-box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n  -moz-box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n  box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n}\n@mixin rounded($radius: 2px) {\n  -webkit-border-radius: $radius;\n  -moz-border-radius: $radius;\n  border-radius: $radius;\n}\n@mixin border-radius($topright: 0, $bottomright: 0, $bottomleft: 0, $topleft: 0) {\n  -webkit-border-top-right-radius: $topright;\n  -webkit-border-bottom-right-radius: $bottomright;\n  -webkit-border-bottom-left-radius: $bottomleft;\n  -webkit-border-top-left-radius: $topleft;\n  -moz-border-radius-topright: $topright;\n  -moz-border-radius-bottomright: $bottomright;\n  -moz-border-radius-bottomleft: $bottomleft;\n  -moz-border-radius-topleft: $topleft;\n  border-top-right-radius: $topright;\n  border-bottom-right-radius: $bottomright;\n  border-bottom-left-radius: $bottomleft;\n  border-top-left-radius: $topleft;\n  @include background-clip(padding-box);\n}\n@mixin opacity($opacity: 0.5) {\n  -webkit-opacity: $opacity;\n  -khtml-opacity: $opacity;\n  -moz-opacity: $opacity;\n  opacity: $opacity;\n  $opperc: $opacity * 100;\n  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=#{$opperc});\n  filter: alpha(opacity=$opperc);\n}\n@mixin transition-duration($duration: 0.2s) {\n  -moz-transition-duration: $duration;\n  -webkit-transition-duration: $duration;\n  -o-transition-duration: $duration;\n  transition-duration: $duration;\n}\n@mixin transform($arguments...) {\n  -webkit-transform: $arguments;\n  -moz-transform: $arguments;\n  -o-transform: $arguments;\n  -ms-transform: $arguments;\n  transform: $arguments;\n}\n@mixin rotation($deg:5deg) {\n  @include transform(rotate($deg));\n}\n@mixin scale($ratio:1.5) {\n  @include transform(scale($ratio));\n}\n@mixin transition($duration:0.2s, $ease:ease-out) {\n  -webkit-transition: all $duration $ease;\n  -moz-transition: all $duration $ease;\n  -o-transition: all $duration $ease;\n  transition: all $duration $ease;\n}\n@mixin inner-shadow($horizontal:0, $vertical:1px, $blur:2px, $alpha: 0.4) {\n  -webkit-box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n  -moz-box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n  box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n}\n@mixin box-shadow($arguments) {\n  -webkit-box-shadow: $arguments;\n  -moz-box-shadow: $arguments;\n  box-shadow: $arguments;\n}\n@mixin box-sizing($sizing: border-box) {\n  -ms-box-sizing: $sizing;\n  -moz-box-sizing: $sizing;\n  -webkit-box-sizing: $sizing;\n  box-sizing: $sizing;\n}\n@mixin user-select($argument: none) {\n  -webkit-user-select: $argument;\n  -moz-user-select: $argument;\n  -ms-user-select: $argument;\n  user-select: $argument;\n}\n@mixin columns($colwidth: 250px, $colcount: 0, $colgap: 50px, $columnRuleColor: #EEE, $columnRuleStyle: solid, $columnRuleWidth: 1px) {\n  -moz-column-width: $colwidth;\n  -moz-column-count: $colcount;\n  -moz-column-gap: $colgap;\n  -moz-column-rule-color: $columnRuleColor;\n  -moz-column-rule-style: $columnRuleStyle;\n  -moz-column-rule-width: $columnRuleWidth;\n  -webkit-column-width: $colwidth;\n  -webkit-column-count: $colcount;\n  -webkit-column-gap: $colgap;\n  -webkit-column-rule-color: $columnRuleColor;\n  -webkit-column-rule-style: $columnRuleStyle;\n  -webkit-column-rule-width: $columnRuleWidth;\n  column-width: $colwidth;\n  column-count: $colcount;\n  column-gap: $colgap;\n  column-rule-color: $columnRuleColor;\n  column-rule-style: $columnRuleStyle;\n  column-rule-width: $columnRuleWidth;\n}\n@mixin translate($x:0, $y:0) {\n  @include transform(translate($x, $y));\n}\n@mixin background-clip($argument: padding-box) {\n  -moz-background-clip: $argument;\n  -webkit-background-clip: $argument;\n  background-clip: $argument;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/less/summernote-lite.less",
    "content": ".note-editor {\n  border: 1px solid @border-color;\n  position: relative;\n  overflow: hidden;\n\n  /* codeview mode */\n  &.codeview {\n    .note-editing-area {\n      .note-editable {\n        display: none;\n      }\n      .note-codable {\n        display: block;\n      }\n    }\n  }\n\n  .note-editing-area {\n    position: relative;\n    overflow: hidden;\n\n    /* editable */\n    .note-editable {\n      margin: 10px;\n      background-color: #fff;\n      color: #000;\n      padding: 10px;\n      overflow: auto;\n      outline: none;\n\n      &[contenteditable=\"false\"] {\n        background-color: #e5e5e5;\n      }\n    }\n\n    /* codeable */\n    .note-codable {\n      display: none;\n      width: 100%;\n      padding: 10px;\n      border: none;\n      box-shadow: none;\n      font-family: Menlo, Monaco, monospace, sans-serif;\n      font-size: 14px;\n      color: #ccc;\n      background-color: #222;\n      resize: none;\n\n      /* override BS2 default style */\n      .box-sizing(border-box);\n      .rounded(0);\n      margin-bottom: 0;\n    }\n  }\n}\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/less/summernote.less",
    "content": "@import \"elements.less\";\n@import \"../icons/dist/summernote.less\";\n\n/* Theme Variables\n ------------------------------------------*/\n@border-color: #a9a9a9;\n@background-color: #f5f5f5;\n\n/* Layout\n ------------------------------------------*/\n.note-editor {\n  position: relative;\n\n  /* dropzone */\n  @dropzone-color: lightskyblue;\n  @dropzone-active-color: darken(@dropzone-color, 30);\n  .note-dropzone {\n    position: absolute;\n    display: none;\n    z-index: 100;\n    color: @dropzone-color;\n    background-color: white;\n    opacity: 0.95;\n\n    .note-dropzone-message {\n      display: table-cell;\n      vertical-align: middle;\n      text-align: center;\n      font-size: 28px;\n      font-weight: bold;\n    }\n\n    &.hover {\n      color: @dropzone-active-color;\n    }\n  }\n\n  &.dragover .note-dropzone {\n    display: table;\n  }\n\n  .note-editing-area {\n    position: relative;\n\n    .note-editable {\n      outline: none;\n\n      sup {\n        vertical-align: super;\n      }\n\n      sub {\n        vertical-align: sub;\n      }\n    }\n  }\n}\n\n/* Frame mode layout\n------------------------------------------*/\n.note-editor.note-frame {\n  border: 1px solid @border-color;\n\n  /* codeview mode */\n  &.codeview {\n    .note-editing-area {\n      .note-editable {\n        display: none;\n      }\n      .note-codable {\n        display: block;\n      }\n    }\n  }\n\n  .note-editing-area {\n    overflow: hidden;\n\n    /* editable */\n    .note-editable {\n      background-color: #fff;\n      color: #000;\n      padding: 10px;\n      overflow: auto;\n\n      &[contenteditable=\"false\"] {\n        background-color: #e5e5e5;\n      }\n    }\n\n    /* codeable */\n    .note-codable {\n      display: none;\n      width: 100%;\n      padding: 10px;\n      border: none;\n      box-shadow: none;\n      font-family: Menlo, Monaco, monospace, sans-serif;\n      font-size: 14px;\n      color: #ccc;\n      background-color: #222;\n      resize: none;\n\n      /* override BS2 default style */\n      .box-sizing(border-box);\n      .rounded(0);\n      margin-bottom: 0;\n    }\n  }\n\n  /* fullscreen mode */\n  &.fullscreen {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100% !important;\n    z-index: 1050; /* bs3 modal-backdrop: 1030, bs2: 1040 */\n    .note-editable {\n      background-color: white;\n    }\n    .note-resizebar {\n      display: none;\n    }\n  }\n\n  /* statusbar */\n  .note-statusbar {\n    background-color: @background-color;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n    .note-resizebar {\n      padding-top: 1px;\n      height: 8px;\n      width: 100%;\n      cursor: ns-resize;\n      .note-icon-bar {\n        width: 20px;\n        margin: 1px auto;\n        border-top: 1px solid @border-color;\n      }\n    }\n  }\n  .note-placeholder {\n    padding: 10px;\n  }\n}\n\n/* Popover\n------------------------------------------*/\n.note-popover.popover {\n  max-width: none;\n  .popover-content {\n    a {\n      display: inline-block;\n      max-width: 200px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;    /* for FF */\n      vertical-align: middle; /* for FF */\n    }\n  }\n  .arrow {\n    left: 20px !important;\n  }\n}\n\n/* Popover and Toolbar (Button container)\n------------------------------------------*/\n.note-popover .popover-content, .panel-heading.note-toolbar {\n  margin: 0;\n  padding: 0 0 5px 5px;\n\n  &>.btn-group {\n    margin-top: 5px;\n    margin-left: 0;\n    margin-right: 5px;\n  }\n\n  .btn-group {\n    .note-table {\n      min-width: 0;\n      padding: 5px;\n      .note-dimension-picker {\n        font-size: 18px;\n        .note-dimension-picker-mousecatcher {\n          position: absolute !important;\n          z-index: 3;\n          width: 10em;\n          height: 10em;\n          cursor: pointer;\n        }\n        .note-dimension-picker-unhighlighted {\n          position: relative !important;\n          z-index: 1;\n          width: 5em;\n          height: 5em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n        .note-dimension-picker-highlighted {\n          position: absolute !important;\n          z-index: 2;\n          width: 1em;\n          height: 1em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n      }\n    }\n  }\n\n  .note-style {\n    h1, h2, h3, h4, h5, h6, blockquote {\n      margin: 0;\n    }\n  }\n\n  .note-color {\n    .dropdown-toggle {\n      width: 20px;\n      padding-left: 5px;\n    }\n    .dropdown-menu {\n      min-width: 340px;\n      .btn-group {\n        margin: 0;\n        &:first-child {\n          margin: 0 5px;\n        }\n\n        .note-palette-title {\n          font-size: 12px;\n          margin: 2px 7px;\n          text-align: center;\n          border-bottom: 1px solid #eee;\n        }\n\n        .note-color-reset {\n          margin: 3px;\n          padding: 0 3px;\n          width: 100%;\n          font-size: 11px;\n          cursor: pointer;\n          .rounded(5px);\n        }\n\n        .note-color-row {\n          height: 20px;\n        }\n\n        .note-color-reset:hover {\n          background: #eee;\n        }\n      }\n    }\n  }\n\n  .note-para {\n    .dropdown-menu {\n      min-width: 216px;\n      padding: 5px;\n      &>div:first-child {\n        margin-right: 5px;\n      }\n    }\n  }\n\n  /* dropdown-menu for toolbar and popover */\n  .dropdown-menu {\n    min-width: 90px;\n\n    /* dropdown-menu right position */\n    /* http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB */\n    &.right {\n      right: 0;\n      left: auto;\n      &::before { right: 9px; left: auto !important;  }\n      &::after { right: 10px; left: auto !important;  }\n    }\n    /* dropdown-menu for selectbox */\n    &.note-check {\n      li a i {\n        color: deepskyblue;\n        visibility: hidden;\n      }\n      li a.checked i {\n        visibility: visible;\n      }\n    }\n\n  }\n\n  .note-fontsize-10 {\n    font-size: 10px;\n  }\n\n  /* color palette for toolbar and popover */\n  .note-color-palette {\n    line-height: 1;\n    div {\n      .note-color-btn {\n        width: 20px;\n        height: 20px;\n        padding: 0;\n        margin: 0;\n        border: 1px solid #fff;\n      }\n      .note-color-btn:hover {\n        border: 1px solid #000;\n      }\n    }\n  }\n}\n\n/* Dialog\n------------------------------------------*/\n.note-dialog {\n  &>div {\n    display: none; /* BS2's hide pacth. */\n  }\n  .form-group { /* overwrite BS's form-horizontal minus margins */\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .note-modal-form {\n    margin: 0; /* overwrite BS2's form margin bottom */\n  }\n  .note-image-dialog {\n    .note-dropzone {\n      min-height: 100px;\n      font-size: 30px;\n      line-height: 4; /* vertical-align */\n      color: lightgray;\n      text-align: center;\n      border: 4px dashed lightgray;\n      margin-bottom: 10px;\n    }\n  }\n\n  // [workaround] firefox fileinput\n  @-moz-document url-prefix() {\n    .note-image-input {\n      height: auto;\n    }\n  }\n}\n\n/* Placeholder\n------------------------------------------*/\n.note-placeholder {\n  position: absolute;\n  display: none;\n  color: gray;\n}\n\n/* Handle\n------------------------------------------*/\n.note-handle {\n  /* control selection */\n  .note-control-selection {\n    position: absolute;\n    display: none;\n    border: 1px solid black;\n    &>div { position: absolute; }\n\n    .note-control-selection-bg {\n      width: 100%;\n      height: 100%;\n      background-color: black;\n      .opacity(0.30)\n    }\n\n    .note-control-handle {\n      width: 7px;\n      height: 7px;\n      border: 1px solid black;\n    }\n\n    .note-control-holder {\n      .note-control-handle;\n    }\n\n    .note-control-sizing {\n      .note-control-handle;\n      background-color: white;\n    }\n\n    .note-control-nw {\n      top: -5px;\n      left: -5px;\n      border-right: none;\n      border-bottom: none;\n    }\n\n    .note-control-ne {\n      top: -5px;\n      right: -5px;\n      border-bottom: none;\n      border-left: none;\n    }\n\n    .note-control-sw {\n      bottom: -5px;\n      left: -5px;\n      border-top: none;\n      border-right: none;\n    }\n\n    .note-control-se {\n      right: -5px;\n      bottom: -5px;\n      cursor: se-resize;\n    }\n\n    .note-control-se.note-control-holder {\n      cursor: default;\n      border-top: none;\n      border-left: none;\n    }\n\n    .note-control-selection-info {\n      right: 0;\n      bottom: 0;\n      padding: 5px;\n      margin: 5px;\n      color: white;\n      background-color: black;\n      font-size: 12px;\n      .rounded(5px);\n      .opacity(0.7);\n    }\n  }\n}\n\n.note-hint-popover {\n  min-width: 100px;\n  padding: 2px;\n\n  .popover-content {\n    padding: 3px;\n    max-height: 150px;\n    overflow: auto;\n\n    .note-hint-group {\n      .note-hint-item {\n        display: block !important;\n        padding: 3px;\n\n        &.active, &:hover {\n          display: block;\n          clear: both;\n          font-weight: 400;\n          line-height: 1.4;\n          color: white;\n          white-space: nowrap;\n          text-decoration: none;\n          background-color: #428bca;\n          outline: 0;\n          cursor: pointer;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/src/less/summernote.scss",
    "content": "@import \"elements.scss\";\n\n/* Theme Variables\n ------------------------------------------*/\n$border-color: #a9a9a9;\n$background-color: #f5f5f5;\n\n/* Layout\n ------------------------------------------*/\n.note-editor {\n  position: relative;\n\n  /* dropzone */\n  $dropzone-color: lightskyblue;\n  $dropzone-active-color: darken($dropzone-color, 30);\n  .note-dropzone {\n    position: absolute;\n    display: none;\n    z-index: 100;\n    color: $dropzone-color;\n    background-color: white;\n    opacity: 0.95;\n\n    .note-dropzone-message {\n      display: table-cell;\n      vertical-align: middle;\n      text-align: center;\n      font-size: 28px;\n      font-weight: bold;\n    }\n\n    &.hover {\n      color: $dropzone-active-color;\n    }\n  }\n\n  &.dragover .note-dropzone {\n    display: table;\n  }\n\n  .note-editing-area {\n    position: relative;\n\n    .note-editable {\n      outline: none;\n\n      sup {\n        vertical-align: super;\n      }\n\n      sub {\n        vertical-align: sub;\n      }\n    }\n  }\n}\n\n/* Frame mode layout\n------------------------------------------*/\n.note-editor.note-frame {\n  border: 1px solid $border-color;\n\n  /* codeview mode */\n  &.codeview {\n    .note-editing-area {\n      .note-editable {\n        display: none;\n      }\n      .note-codable {\n        display: block;\n      }\n    }\n  }\n\n  .note-editing-area {\n    overflow: hidden;\n\n    /* editable */\n    .note-editable {\n      background-color: #fff;\n      color: #000;\n      padding: 10px;\n      overflow: auto;\n\n      &[contenteditable=\"false\"] {\n        background-color: #e5e5e5;\n      }\n    }\n\n    /* codeable */\n    .note-codable {\n      display: none;\n      width: 100%;\n      padding: 10px;\n      border: none;\n      box-shadow: none;\n      font-family: Menlo, Monaco, monospace, sans-serif;\n      font-size: 14px;\n      color: #ccc;\n      background-color: #222;\n      resize: none;\n\n      /* override BS2 default style */\n      @include box-sizing(border-box);\n      @include rounded(0);\n      margin-bottom: 0;\n    }\n  }\n\n  /* fullscreen mode */\n  &.fullscreen {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100% !important;\n    z-index: 1050; /* bs3 modal-backdrop: 1030, bs2: 1040 */\n    .note-editable {\n      background-color: white;\n    }\n    .note-resizebar {\n      display: none;\n    }\n  }\n\n  /* statusbar */\n  .note-statusbar {\n    background-color: $background-color;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n    .note-resizebar {\n      padding-top: 1px;\n      height: 8px;\n      width: 100%;\n      cursor: ns-resize;\n      .note-icon-bar {\n        width: 20px;\n        margin: 1px auto;\n        border-top: 1px solid $border-color;\n      }\n    }\n  }\n  .note-placeholder {\n    padding: 10px;\n  }\n}\n\n/* Popover\n------------------------------------------*/\n.note-popover.popover {\n  max-width: none;\n  .popover-content {\n    a {\n      display: inline-block;\n      max-width: 200px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;    /* for FF */\n      vertical-align: middle; /* for FF */\n    }\n  }\n  .arrow {\n    left: 20px !important;\n  }\n}\n\n/* Popover and Toolbar (Button container)\n------------------------------------------*/\n.note-popover .popover-content, .panel-heading.note-toolbar {\n  margin: 0;\n  padding: 0 0 5px 5px;\n\n  &>.btn-group {\n    margin-top: 5px;\n    margin-left: 0;\n    margin-right: 5px;\n  }\n\n  .btn-group {\n    .note-table {\n      min-width: 0;\n      padding: 5px;\n      .note-dimension-picker {\n        font-size: 18px;\n        .note-dimension-picker-mousecatcher {\n          position: absolute !important;\n          z-index: 3;\n          width: 10em;\n          height: 10em;\n          cursor: pointer;\n        }\n        .note-dimension-picker-unhighlighted {\n          position: relative !important;\n          z-index: 1;\n          width: 5em;\n          height: 5em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n        .note-dimension-picker-highlighted {\n          position: absolute !important;\n          z-index: 2;\n          width: 1em;\n          height: 1em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n      }\n    }\n  }\n\n  .note-style {\n    h1, h2, h3, h4, h5, h6, blockquote {\n      margin: 0;\n    }\n  }\n\n  .note-color {\n    .dropdown-toggle {\n      width: 20px;\n      padding-left: 5px;\n    }\n    .dropdown-menu {\n      min-width: 340px;\n      .btn-group {\n        margin: 0;\n        &:first-child {\n          margin: 0 5px;\n        }\n\n        .note-palette-title {\n          font-size: 12px;\n          margin: 2px 7px;\n          text-align: center;\n          border-bottom: 1px solid #eee;\n        }\n\n        .note-color-reset {\n          font-size: 11px;\n          margin: 3px;\n          padding: 0 3px;\n          cursor: pointer;\n          @include rounded(5px);\n        }\n\n        .note-color-row {\n          height: 20px;\n        }\n\n        .note-color-reset:hover {\n          background: #eee;\n        }\n      }\n    }\n  }\n\n  .note-para {\n    .dropdown-menu {\n      min-width: 216px;\n      padding: 5px;\n      &>div:first-child {\n        margin-right: 5px;\n      }\n    }\n  }\n\n  /* dropdown-menu for toolbar and popover */\n  .dropdown-menu {\n    min-width: 90px;\n\n    /* dropdown-menu right position */\n    /* http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB */\n    &.right {\n      right: 0;\n      left: auto;\n      &::before { right: 9px; left: auto !important;  }\n      &::after { right: 10px; left: auto !important;  }\n    }\n    /* dropdown-menu for selectbox */\n    &.note-check {\n      li a i {\n        color: deepskyblue;\n        visibility: hidden;\n      }\n      li a.checked i {\n        visibility: visible;\n      }\n    }\n\n  }\n\n  .note-fontsize-10 {\n    font-size: 10px;\n  }\n\n  /* color palette for toolbar and popover */\n  .note-color-palette {\n    line-height: 1;\n    div {\n      .note-color-btn {\n        width: 20px;\n        height: 20px;\n        padding: 0;\n        margin: 0;\n        border: 1px solid #fff;\n      }\n      .note-color-btn:hover {\n        border: 1px solid #000;\n      }\n    }\n  }\n}\n\n/* Dialog\n------------------------------------------*/\n.note-dialog {\n  &>div {\n    display: none; /* BS2's hide pacth. */\n  }\n  .form-group { /* overwrite BS's form-horizontal minus margins */\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .note-modal-form {\n    margin: 0; /* overwrite BS2's form margin bottom */\n  }\n  .note-image-dialog {\n    .note-dropzone {\n      min-height: 100px;\n      font-size: 30px;\n      line-height: 4; /* vertical-align */\n      color: lightgray;\n      text-align: center;\n      border: 4px dashed lightgray;\n      margin-bottom: 10px;\n    }\n  }\n}\n\n/* Placeholder\n------------------------------------------*/\n.note-placeholder {\n  position: absolute;\n  display: none;\n  color: gray;\n}\n\n/* Handle\n------------------------------------------*/\n.note-handle {\n  /* control selection */\n  .note-control-selection {\n    position: absolute;\n    display: none;\n    border: 1px solid black;\n    &>div { position: absolute; }\n\n    .note-control-selection-bg {\n      width: 100%;\n      height: 100%;\n      background-color: black;\n      @include opacity(0.3);\n    }\n\n    .note-control-handle {\n      width: 7px;\n      height: 7px;\n      border: 1px solid black;\n    }\n\n    .note-control-holder {\n      @extend .note-control-handle;\n    }\n\n    .note-control-sizing {\n      @extend .note-control-handle;\n      background-color: white;\n    }\n\n    .note-control-nw {\n      top: -5px;\n      left: -5px;\n      border-right: none;\n      border-bottom: none;\n    }\n\n    .note-control-ne {\n      top: -5px;\n      right: -5px;\n      border-bottom: none;\n      border-left: none;\n    }\n\n    .note-control-sw {\n      bottom: -5px;\n      left: -5px;\n      border-top: none;\n      border-right: none;\n    }\n\n    .note-control-se {\n      right: -5px;\n      bottom: -5px;\n      cursor: se-resize;\n    }\n\n    .note-control-se.note-control-holder {\n      cursor: default;\n      border-top: none;\n      border-left: none;\n    }\n\n    .note-control-selection-info {\n      right: 0;\n      bottom: 0;\n      padding: 5px;\n      margin: 5px;\n      color: white;\n      background-color: black;\n      font-size: 12px;\n      @include rounded(5px);\n      @include opacity(0.7);\n    }\n  }\n}\n\n.note-hint-popover {\n  min-width: 100px;\n  padding: 2px;\n\n  .popover-content {\n    padding: 3px;\n    max-height: 150px;\n    overflow: auto;\n\n    .note-hint-group {\n      .note-hint-item {\n        display: block !important;\n        padding: 3px;\n\n        &.active, &:hover {\n          display: block;\n          clear: both;\n          font-weight: 400;\n          line-height: 1.4;\n          color: white;\n          white-space: nowrap;\n          text-decoration: none;\n          background-color: #428bca;\n          outline: 0;\n          cursor: pointer;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/summernote.nuspec",
    "content": "<?xml version=\"1.0\"?>\n<package >\n  <metadata>\n    <id>summernote</id>\n    <version>$version$</version>\n    <authors>summernote</authors>\n    <owners>summernote</owners>\n    <licenseUrl>https://github.com/summernote/summernote#license</licenseUrl>\n    <projectUrl>https://github.com/summernote/summernote</projectUrl>\n    <iconUrl>http://summernote.org/img/icons/icon_ios_120x120.png</iconUrl>\n    <requireLicenseAcceptance>true</requireLicenseAcceptance>\n    <summary>\n      Super Simple WYSIWYG Editor on Bootstrap    \n    </summary>\n    <description>\n      <![CDATA[\n        Super Simple WYSIWYG Editor on Bootstrap\n      ]]>\n    </description>\n    <releaseNotes>\n      <![CDATA[\n        Bug fix\n\n          * Added fonts on meteor package.\n      ]]>\n    </releaseNotes>\n    <copyright>Copyright 2013</copyright>\n    <tags>summernote, Bootstrap, jQuery, editor, WYSIWYG</tags>\n    <dependencies>\n      <dependency id=\"Twitter.Bootstrap\" version=\"3.0.1\" />\n    </dependencies>\n  </metadata>\n  <files>\n    <file src=\"dist\\**\\*.css\" target=\"content\\Content\" />\n    <file src=\"dist\\font\\*.*\" target=\"content\\Content\\fonts\" />\n    <file src=\"dist\\**\\*.js\" target=\"content\\Scripts\" />\n  </files>\n</package>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/.gitignore",
    "content": "/.jshintrc\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/chaidom.js",
    "content": "define([\n  'summernote/base/core/agent'\n], function (agent) {\n  return function (chai) {\n    chai.dom = chai.dom || {};\n\n    chai.dom.equalsIgnoreCase = function (str1, str2) {\n      str1 = str1.toUpperCase();\n      str2 = str2.toUpperCase();\n\n      // [workaround] IE8-10 use &nbsp; instead of bogus br\n      if (agent.isMSIE && agent.browserVersion < 11) {\n        str2 = str2.replace(/<BR>/g, '&NBSP;');\n      }\n\n      // [workaround] IE8 str1 markup has newline between tags\n      if (agent.isMSIE && agent.browserVersion < 9) {\n        str1 = str1.replace(/\\r\\n/g, '');\n      }\n\n      return str1 === str2;\n    };\n\n    chai.dom.equalsStyle = function ($node, expected, style) {\n      var $tester = $('<div />').css(style, expected);\n      return $node.css(style) === $tester.css(style);\n    };\n\n    chai.Assertion.addChainableMethod('equalsIgnoreCase', function (expected) {\n      var actual = this._obj;\n\n      return this.assert(\n        chai.dom.equalsIgnoreCase(actual, expected),\n        'expected ' + this._obj + ' to equal ' + expected + ' ignoring case',\n        'expected ' + this._obj + ' not to equal ' + expected + ' ignoring case'\n      );\n    });\n\n    chai.Assertion.addChainableMethod('equalsStyle', function (expected, style) {\n      var $node = this._obj;\n\n      return this.assert(\n        chai.dom.equalsStyle($node, expected, style),\n        'expected ' + this._obj + ' to equal ' + expected + ' style',\n        'expected ' + this._obj + ' not to equal ' + expected + ' style'\n      );\n    });\n\n    chai.assert.equalsIgnoreCase = function (val, exp, msg) {\n      new chai.Assertion(val, msg).to.be.equalsIgnoreCase(exp);\n    };\n\n    chai.assert.notequalsIgnoreCase = function (val, exp, msg) {\n      new chai.Assertion(val, msg).to.not.be.equalsIgnoreCase(exp);\n    };\n  };\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/karma.conf.js",
    "content": "// Karma configuration\nmodule.exports = function (config) {\n  'use strict';\n\n  config.set({\n    basePath: '../',\n    frameworks: ['requirejs', 'mocha'],\n    exclude: [],\n    reporters: ['progress', 'coverage'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    files: [\n      {pattern: 'src/js/**/*.js', included: false},\n      {pattern: 'test/**/*.js', included: false},\n      {pattern: 'node_modules/chai/*.js', included: false},\n      {pattern: 'node_modules/chai-spies/*.js', included: false},\n      'test/test-main.js'\n    ],\n    // Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS, IE\n    browsers: ['Chrome'],\n    captureTimeout: 60000,\n    singleRun: false,\n    preprocessors: { 'src/js/**/!(app|intro|outro).js': 'coverage' },\n    coverageReporter: {\n      type: 'lcov',\n      dir: 'test/coverage/',\n      includeAllSources: true\n    }\n  });\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/libs/bootstrap.js",
    "content": "/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n  'use strict';\n  var version = $.fn.jquery.split(' ')[0].split('.')\n  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher')\n  }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.5\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n  // ============================================================\n\n  function transitionEnd() {\n    var el = document.createElement('bootstrap')\n\n    var transEndEventNames = {\n      WebkitTransition : 'webkitTransitionEnd',\n      MozTransition    : 'transitionend',\n      OTransition      : 'oTransitionEnd otransitionend',\n      transition       : 'transitionend'\n    }\n\n    for (var name in transEndEventNames) {\n      if (el.style[name] !== undefined) {\n        return { end: transEndEventNames[name] }\n      }\n    }\n\n    return false // explicit for ie8 (  ._.)\n  }\n\n  // http://blog.alexmaccaw.com/css-transitions\n  $.fn.emulateTransitionEnd = function (duration) {\n    var called = false\n    var $el = this\n    $(this).one('bsTransitionEnd', function () { called = true })\n    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n    setTimeout(callback, duration)\n    return this\n  }\n\n  $(function () {\n    $.support.transition = transitionEnd()\n\n    if (!$.support.transition) return\n\n    $.event.special.bsTransitionEnd = {\n      bindType: $.support.transition.end,\n      delegateType: $.support.transition.end,\n      handle: function (e) {\n        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n      }\n    }\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.5\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // ALERT CLASS DEFINITION\n  // ======================\n\n  var dismiss = '[data-dismiss=\"alert\"]'\n  var Alert   = function (el) {\n    $(el).on('click', dismiss, this.close)\n  }\n\n  Alert.VERSION = '3.3.5'\n\n  Alert.TRANSITION_DURATION = 150\n\n  Alert.prototype.close = function (e) {\n    var $this    = $(this)\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = $(selector)\n\n    if (e) e.preventDefault()\n\n    if (!$parent.length) {\n      $parent = $this.closest('.alert')\n    }\n\n    $parent.trigger(e = $.Event('close.bs.alert'))\n\n    if (e.isDefaultPrevented()) return\n\n    $parent.removeClass('in')\n\n    function removeElement() {\n      // detach from parent, fire event then clean up data\n      $parent.detach().trigger('closed.bs.alert').remove()\n    }\n\n    $.support.transition && $parent.hasClass('fade') ?\n      $parent\n        .one('bsTransitionEnd', removeElement)\n        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n      removeElement()\n  }\n\n\n  // ALERT PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.alert')\n\n      if (!data) $this.data('bs.alert', (data = new Alert(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.alert\n\n  $.fn.alert             = Plugin\n  $.fn.alert.Constructor = Alert\n\n\n  // ALERT NO CONFLICT\n  // =================\n\n  $.fn.alert.noConflict = function () {\n    $.fn.alert = old\n    return this\n  }\n\n\n  // ALERT DATA-API\n  // ==============\n\n  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.5\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // BUTTON PUBLIC CLASS DEFINITION\n  // ==============================\n\n  var Button = function (element, options) {\n    this.$element  = $(element)\n    this.options   = $.extend({}, Button.DEFAULTS, options)\n    this.isLoading = false\n  }\n\n  Button.VERSION  = '3.3.5'\n\n  Button.DEFAULTS = {\n    loadingText: 'loading...'\n  }\n\n  Button.prototype.setState = function (state) {\n    var d    = 'disabled'\n    var $el  = this.$element\n    var val  = $el.is('input') ? 'val' : 'html'\n    var data = $el.data()\n\n    state += 'Text'\n\n    if (data.resetText == null) $el.data('resetText', $el[val]())\n\n    // push to event loop to allow forms to submit\n    setTimeout($.proxy(function () {\n      $el[val](data[state] == null ? this.options[state] : data[state])\n\n      if (state == 'loadingText') {\n        this.isLoading = true\n        $el.addClass(d).attr(d, d)\n      } else if (this.isLoading) {\n        this.isLoading = false\n        $el.removeClass(d).removeAttr(d)\n      }\n    }, this), 0)\n  }\n\n  Button.prototype.toggle = function () {\n    var changed = true\n    var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n    if ($parent.length) {\n      var $input = this.$element.find('input')\n      if ($input.prop('type') == 'radio') {\n        if ($input.prop('checked')) changed = false\n        $parent.find('.active').removeClass('active')\n        this.$element.addClass('active')\n      } else if ($input.prop('type') == 'checkbox') {\n        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n        this.$element.toggleClass('active')\n      }\n      $input.prop('checked', this.$element.hasClass('active'))\n      if (changed) $input.trigger('change')\n    } else {\n      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n      this.$element.toggleClass('active')\n    }\n  }\n\n\n  // BUTTON PLUGIN DEFINITION\n  // ========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.button')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n      if (option == 'toggle') data.toggle()\n      else if (option) data.setState(option)\n    })\n  }\n\n  var old = $.fn.button\n\n  $.fn.button             = Plugin\n  $.fn.button.Constructor = Button\n\n\n  // BUTTON NO CONFLICT\n  // ==================\n\n  $.fn.button.noConflict = function () {\n    $.fn.button = old\n    return this\n  }\n\n\n  // BUTTON DATA-API\n  // ===============\n\n  $(document)\n    .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      var $btn = $(e.target)\n      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n      Plugin.call($btn, 'toggle')\n      if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n    })\n    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n    })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.5\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CAROUSEL CLASS DEFINITION\n  // =========================\n\n  var Carousel = function (element, options) {\n    this.$element    = $(element)\n    this.$indicators = this.$element.find('.carousel-indicators')\n    this.options     = options\n    this.paused      = null\n    this.sliding     = null\n    this.interval    = null\n    this.$active     = null\n    this.$items      = null\n\n    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n  }\n\n  Carousel.VERSION  = '3.3.5'\n\n  Carousel.TRANSITION_DURATION = 600\n\n  Carousel.DEFAULTS = {\n    interval: 5000,\n    pause: 'hover',\n    wrap: true,\n    keyboard: true\n  }\n\n  Carousel.prototype.keydown = function (e) {\n    if (/input|textarea/i.test(e.target.tagName)) return\n    switch (e.which) {\n      case 37: this.prev(); break\n      case 39: this.next(); break\n      default: return\n    }\n\n    e.preventDefault()\n  }\n\n  Carousel.prototype.cycle = function (e) {\n    e || (this.paused = false)\n\n    this.interval && clearInterval(this.interval)\n\n    this.options.interval\n      && !this.paused\n      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n    return this\n  }\n\n  Carousel.prototype.getItemIndex = function (item) {\n    this.$items = item.parent().children('.item')\n    return this.$items.index(item || this.$active)\n  }\n\n  Carousel.prototype.getItemForDirection = function (direction, active) {\n    var activeIndex = this.getItemIndex(active)\n    var willWrap = (direction == 'prev' && activeIndex === 0)\n                || (direction == 'next' && activeIndex == (this.$items.length - 1))\n    if (willWrap && !this.options.wrap) return active\n    var delta = direction == 'prev' ? -1 : 1\n    var itemIndex = (activeIndex + delta) % this.$items.length\n    return this.$items.eq(itemIndex)\n  }\n\n  Carousel.prototype.to = function (pos) {\n    var that        = this\n    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n    if (pos > (this.$items.length - 1) || pos < 0) return\n\n    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n    if (activeIndex == pos) return this.pause().cycle()\n\n    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n  }\n\n  Carousel.prototype.pause = function (e) {\n    e || (this.paused = true)\n\n    if (this.$element.find('.next, .prev').length && $.support.transition) {\n      this.$element.trigger($.support.transition.end)\n      this.cycle(true)\n    }\n\n    this.interval = clearInterval(this.interval)\n\n    return this\n  }\n\n  Carousel.prototype.next = function () {\n    if (this.sliding) return\n    return this.slide('next')\n  }\n\n  Carousel.prototype.prev = function () {\n    if (this.sliding) return\n    return this.slide('prev')\n  }\n\n  Carousel.prototype.slide = function (type, next) {\n    var $active   = this.$element.find('.item.active')\n    var $next     = next || this.getItemForDirection(type, $active)\n    var isCycling = this.interval\n    var direction = type == 'next' ? 'left' : 'right'\n    var that      = this\n\n    if ($next.hasClass('active')) return (this.sliding = false)\n\n    var relatedTarget = $next[0]\n    var slideEvent = $.Event('slide.bs.carousel', {\n      relatedTarget: relatedTarget,\n      direction: direction\n    })\n    this.$element.trigger(slideEvent)\n    if (slideEvent.isDefaultPrevented()) return\n\n    this.sliding = true\n\n    isCycling && this.pause()\n\n    if (this.$indicators.length) {\n      this.$indicators.find('.active').removeClass('active')\n      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n      $nextIndicator && $nextIndicator.addClass('active')\n    }\n\n    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n    if ($.support.transition && this.$element.hasClass('slide')) {\n      $next.addClass(type)\n      $next[0].offsetWidth // force reflow\n      $active.addClass(direction)\n      $next.addClass(direction)\n      $active\n        .one('bsTransitionEnd', function () {\n          $next.removeClass([type, direction].join(' ')).addClass('active')\n          $active.removeClass(['active', direction].join(' '))\n          that.sliding = false\n          setTimeout(function () {\n            that.$element.trigger(slidEvent)\n          }, 0)\n        })\n        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n    } else {\n      $active.removeClass('active')\n      $next.addClass('active')\n      this.sliding = false\n      this.$element.trigger(slidEvent)\n    }\n\n    isCycling && this.cycle()\n\n    return this\n  }\n\n\n  // CAROUSEL PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.carousel')\n      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n      var action  = typeof option == 'string' ? option : options.slide\n\n      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n      if (typeof option == 'number') data.to(option)\n      else if (action) data[action]()\n      else if (options.interval) data.pause().cycle()\n    })\n  }\n\n  var old = $.fn.carousel\n\n  $.fn.carousel             = Plugin\n  $.fn.carousel.Constructor = Carousel\n\n\n  // CAROUSEL NO CONFLICT\n  // ====================\n\n  $.fn.carousel.noConflict = function () {\n    $.fn.carousel = old\n    return this\n  }\n\n\n  // CAROUSEL DATA-API\n  // =================\n\n  var clickHandler = function (e) {\n    var href\n    var $this   = $(this)\n    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n    if (!$target.hasClass('carousel')) return\n    var options = $.extend({}, $target.data(), $this.data())\n    var slideIndex = $this.attr('data-slide-to')\n    if (slideIndex) options.interval = false\n\n    Plugin.call($target, options)\n\n    if (slideIndex) {\n      $target.data('bs.carousel').to(slideIndex)\n    }\n\n    e.preventDefault()\n  }\n\n  $(document)\n    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n  $(window).on('load', function () {\n    $('[data-ride=\"carousel\"]').each(function () {\n      var $carousel = $(this)\n      Plugin.call($carousel, $carousel.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.5\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // COLLAPSE PUBLIC CLASS DEFINITION\n  // ================================\n\n  var Collapse = function (element, options) {\n    this.$element      = $(element)\n    this.options       = $.extend({}, Collapse.DEFAULTS, options)\n    this.$trigger      = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n                           '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n    this.transitioning = null\n\n    if (this.options.parent) {\n      this.$parent = this.getParent()\n    } else {\n      this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n    }\n\n    if (this.options.toggle) this.toggle()\n  }\n\n  Collapse.VERSION  = '3.3.5'\n\n  Collapse.TRANSITION_DURATION = 350\n\n  Collapse.DEFAULTS = {\n    toggle: true\n  }\n\n  Collapse.prototype.dimension = function () {\n    var hasWidth = this.$element.hasClass('width')\n    return hasWidth ? 'width' : 'height'\n  }\n\n  Collapse.prototype.show = function () {\n    if (this.transitioning || this.$element.hasClass('in')) return\n\n    var activesData\n    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n    if (actives && actives.length) {\n      activesData = actives.data('bs.collapse')\n      if (activesData && activesData.transitioning) return\n    }\n\n    var startEvent = $.Event('show.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    if (actives && actives.length) {\n      Plugin.call(actives, 'hide')\n      activesData || actives.data('bs.collapse', null)\n    }\n\n    var dimension = this.dimension()\n\n    this.$element\n      .removeClass('collapse')\n      .addClass('collapsing')[dimension](0)\n      .attr('aria-expanded', true)\n\n    this.$trigger\n      .removeClass('collapsed')\n      .attr('aria-expanded', true)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse in')[dimension]('')\n      this.transitioning = 0\n      this.$element\n        .trigger('shown.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n    this.$element\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n  }\n\n  Collapse.prototype.hide = function () {\n    if (this.transitioning || !this.$element.hasClass('in')) return\n\n    var startEvent = $.Event('hide.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    var dimension = this.dimension()\n\n    this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n    this.$element\n      .addClass('collapsing')\n      .removeClass('collapse in')\n      .attr('aria-expanded', false)\n\n    this.$trigger\n      .addClass('collapsed')\n      .attr('aria-expanded', false)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.transitioning = 0\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse')\n        .trigger('hidden.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    this.$element\n      [dimension](0)\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n  }\n\n  Collapse.prototype.toggle = function () {\n    this[this.$element.hasClass('in') ? 'hide' : 'show']()\n  }\n\n  Collapse.prototype.getParent = function () {\n    return $(this.options.parent)\n      .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n      .each($.proxy(function (i, element) {\n        var $element = $(element)\n        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n      }, this))\n      .end()\n  }\n\n  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n    var isOpen = $element.hasClass('in')\n\n    $element.attr('aria-expanded', isOpen)\n    $trigger\n      .toggleClass('collapsed', !isOpen)\n      .attr('aria-expanded', isOpen)\n  }\n\n  function getTargetFromTrigger($trigger) {\n    var href\n    var target = $trigger.attr('data-target')\n      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n    return $(target)\n  }\n\n\n  // COLLAPSE PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.collapse')\n      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.collapse\n\n  $.fn.collapse             = Plugin\n  $.fn.collapse.Constructor = Collapse\n\n\n  // COLLAPSE NO CONFLICT\n  // ====================\n\n  $.fn.collapse.noConflict = function () {\n    $.fn.collapse = old\n    return this\n  }\n\n\n  // COLLAPSE DATA-API\n  // =================\n\n  $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n    var $this   = $(this)\n\n    if (!$this.attr('data-target')) e.preventDefault()\n\n    var $target = getTargetFromTrigger($this)\n    var data    = $target.data('bs.collapse')\n    var option  = data ? 'toggle' : $this.data()\n\n    Plugin.call($target, option)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.5\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // DROPDOWN CLASS DEFINITION\n  // =========================\n\n  var backdrop = '.dropdown-backdrop'\n  var toggle   = '[data-toggle=\"dropdown\"]'\n  var Dropdown = function (element) {\n    $(element).on('click.bs.dropdown', this.toggle)\n  }\n\n  Dropdown.VERSION = '3.3.5'\n\n  function getParent($this) {\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = selector && $(selector)\n\n    return $parent && $parent.length ? $parent : $this.parent()\n  }\n\n  function clearMenus(e) {\n    if (e && e.which === 3) return\n    $(backdrop).remove()\n    $(toggle).each(function () {\n      var $this         = $(this)\n      var $parent       = getParent($this)\n      var relatedTarget = { relatedTarget: this }\n\n      if (!$parent.hasClass('open')) return\n\n      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this.attr('aria-expanded', 'false')\n      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)\n    })\n  }\n\n  Dropdown.prototype.toggle = function (e) {\n    var $this = $(this)\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    clearMenus()\n\n    if (!isActive) {\n      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n        // if mobile we use a backdrop because click events don't delegate\n        $(document.createElement('div'))\n          .addClass('dropdown-backdrop')\n          .insertAfter($(this))\n          .on('click', clearMenus)\n      }\n\n      var relatedTarget = { relatedTarget: this }\n      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this\n        .trigger('focus')\n        .attr('aria-expanded', 'true')\n\n      $parent\n        .toggleClass('open')\n        .trigger('shown.bs.dropdown', relatedTarget)\n    }\n\n    return false\n  }\n\n  Dropdown.prototype.keydown = function (e) {\n    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n    var $this = $(this)\n\n    e.preventDefault()\n    e.stopPropagation()\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    if (!isActive && e.which != 27 || isActive && e.which == 27) {\n      if (e.which == 27) $parent.find(toggle).trigger('focus')\n      return $this.trigger('click')\n    }\n\n    var desc = ' li:not(.disabled):visible a'\n    var $items = $parent.find('.dropdown-menu' + desc)\n\n    if (!$items.length) return\n\n    var index = $items.index(e.target)\n\n    if (e.which == 38 && index > 0)                 index--         // up\n    if (e.which == 40 && index < $items.length - 1) index++         // down\n    if (!~index)                                    index = 0\n\n    $items.eq(index).trigger('focus')\n  }\n\n\n  // DROPDOWN PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.dropdown')\n\n      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.dropdown\n\n  $.fn.dropdown             = Plugin\n  $.fn.dropdown.Constructor = Dropdown\n\n\n  // DROPDOWN NO CONFLICT\n  // ====================\n\n  $.fn.dropdown.noConflict = function () {\n    $.fn.dropdown = old\n    return this\n  }\n\n\n  // APPLY TO STANDARD DROPDOWN ELEMENTS\n  // ===================================\n\n  $(document)\n    .on('click.bs.dropdown.data-api', clearMenus)\n    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.5\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // MODAL CLASS DEFINITION\n  // ======================\n\n  var Modal = function (element, options) {\n    this.options             = options\n    this.$body               = $(document.body)\n    this.$element            = $(element)\n    this.$dialog             = this.$element.find('.modal-dialog')\n    this.$backdrop           = null\n    this.isShown             = null\n    this.originalBodyPad     = null\n    this.scrollbarWidth      = 0\n    this.ignoreBackdropClick = false\n\n    if (this.options.remote) {\n      this.$element\n        .find('.modal-content')\n        .load(this.options.remote, $.proxy(function () {\n          this.$element.trigger('loaded.bs.modal')\n        }, this))\n    }\n  }\n\n  Modal.VERSION  = '3.3.5'\n\n  Modal.TRANSITION_DURATION = 300\n  Modal.BACKDROP_TRANSITION_DURATION = 150\n\n  Modal.DEFAULTS = {\n    backdrop: true,\n    keyboard: true,\n    show: true\n  }\n\n  Modal.prototype.toggle = function (_relatedTarget) {\n    return this.isShown ? this.hide() : this.show(_relatedTarget)\n  }\n\n  Modal.prototype.show = function (_relatedTarget) {\n    var that = this\n    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n    this.$element.trigger(e)\n\n    if (this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = true\n\n    this.checkScrollbar()\n    this.setScrollbar()\n    this.$body.addClass('modal-open')\n\n    this.escape()\n    this.resize()\n\n    this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n    this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n      that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n      })\n    })\n\n    this.backdrop(function () {\n      var transition = $.support.transition && that.$element.hasClass('fade')\n\n      if (!that.$element.parent().length) {\n        that.$element.appendTo(that.$body) // don't move modals dom position\n      }\n\n      that.$element\n        .show()\n        .scrollTop(0)\n\n      that.adjustDialog()\n\n      if (transition) {\n        that.$element[0].offsetWidth // force reflow\n      }\n\n      that.$element.addClass('in')\n\n      that.enforceFocus()\n\n      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n      transition ?\n        that.$dialog // wait for modal to slide in\n          .one('bsTransitionEnd', function () {\n            that.$element.trigger('focus').trigger(e)\n          })\n          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n        that.$element.trigger('focus').trigger(e)\n    })\n  }\n\n  Modal.prototype.hide = function (e) {\n    if (e) e.preventDefault()\n\n    e = $.Event('hide.bs.modal')\n\n    this.$element.trigger(e)\n\n    if (!this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = false\n\n    this.escape()\n    this.resize()\n\n    $(document).off('focusin.bs.modal')\n\n    this.$element\n      .removeClass('in')\n      .off('click.dismiss.bs.modal')\n      .off('mouseup.dismiss.bs.modal')\n\n    this.$dialog.off('mousedown.dismiss.bs.modal')\n\n    $.support.transition && this.$element.hasClass('fade') ?\n      this.$element\n        .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n      this.hideModal()\n  }\n\n  Modal.prototype.enforceFocus = function () {\n    $(document)\n      .off('focusin.bs.modal') // guard against infinite focus loop\n      .on('focusin.bs.modal', $.proxy(function (e) {\n        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n          this.$element.trigger('focus')\n        }\n      }, this))\n  }\n\n  Modal.prototype.escape = function () {\n    if (this.isShown && this.options.keyboard) {\n      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n        e.which == 27 && this.hide()\n      }, this))\n    } else if (!this.isShown) {\n      this.$element.off('keydown.dismiss.bs.modal')\n    }\n  }\n\n  Modal.prototype.resize = function () {\n    if (this.isShown) {\n      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n    } else {\n      $(window).off('resize.bs.modal')\n    }\n  }\n\n  Modal.prototype.hideModal = function () {\n    var that = this\n    this.$element.hide()\n    this.backdrop(function () {\n      that.$body.removeClass('modal-open')\n      that.resetAdjustments()\n      that.resetScrollbar()\n      that.$element.trigger('hidden.bs.modal')\n    })\n  }\n\n  Modal.prototype.removeBackdrop = function () {\n    this.$backdrop && this.$backdrop.remove()\n    this.$backdrop = null\n  }\n\n  Modal.prototype.backdrop = function (callback) {\n    var that = this\n    var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n    if (this.isShown && this.options.backdrop) {\n      var doAnimate = $.support.transition && animate\n\n      this.$backdrop = $(document.createElement('div'))\n        .addClass('modal-backdrop ' + animate)\n        .appendTo(this.$body)\n\n      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n        if (this.ignoreBackdropClick) {\n          this.ignoreBackdropClick = false\n          return\n        }\n        if (e.target !== e.currentTarget) return\n        this.options.backdrop == 'static'\n          ? this.$element[0].focus()\n          : this.hide()\n      }, this))\n\n      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n      this.$backdrop.addClass('in')\n\n      if (!callback) return\n\n      doAnimate ?\n        this.$backdrop\n          .one('bsTransitionEnd', callback)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callback()\n\n    } else if (!this.isShown && this.$backdrop) {\n      this.$backdrop.removeClass('in')\n\n      var callbackRemove = function () {\n        that.removeBackdrop()\n        callback && callback()\n      }\n      $.support.transition && this.$element.hasClass('fade') ?\n        this.$backdrop\n          .one('bsTransitionEnd', callbackRemove)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callbackRemove()\n\n    } else if (callback) {\n      callback()\n    }\n  }\n\n  // these following methods are used to handle overflowing modals\n\n  Modal.prototype.handleUpdate = function () {\n    this.adjustDialog()\n  }\n\n  Modal.prototype.adjustDialog = function () {\n    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n    this.$element.css({\n      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n    })\n  }\n\n  Modal.prototype.resetAdjustments = function () {\n    this.$element.css({\n      paddingLeft: '',\n      paddingRight: ''\n    })\n  }\n\n  Modal.prototype.checkScrollbar = function () {\n    var fullWindowWidth = window.innerWidth\n    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n      var documentElementRect = document.documentElement.getBoundingClientRect()\n      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n    }\n    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n    this.scrollbarWidth = this.measureScrollbar()\n  }\n\n  Modal.prototype.setScrollbar = function () {\n    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n    this.originalBodyPad = document.body.style.paddingRight || ''\n    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n  }\n\n  Modal.prototype.resetScrollbar = function () {\n    this.$body.css('padding-right', this.originalBodyPad)\n  }\n\n  Modal.prototype.measureScrollbar = function () { // thx walsh\n    var scrollDiv = document.createElement('div')\n    scrollDiv.className = 'modal-scrollbar-measure'\n    this.$body.append(scrollDiv)\n    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n    this.$body[0].removeChild(scrollDiv)\n    return scrollbarWidth\n  }\n\n\n  // MODAL PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option, _relatedTarget) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.modal')\n      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n      if (typeof option == 'string') data[option](_relatedTarget)\n      else if (options.show) data.show(_relatedTarget)\n    })\n  }\n\n  var old = $.fn.modal\n\n  $.fn.modal             = Plugin\n  $.fn.modal.Constructor = Modal\n\n\n  // MODAL NO CONFLICT\n  // =================\n\n  $.fn.modal.noConflict = function () {\n    $.fn.modal = old\n    return this\n  }\n\n\n  // MODAL DATA-API\n  // ==============\n\n  $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n    var $this   = $(this)\n    var href    = $this.attr('href')\n    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n    if ($this.is('a')) e.preventDefault()\n\n    $target.one('show.bs.modal', function (showEvent) {\n      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n      $target.one('hidden.bs.modal', function () {\n        $this.is(':visible') && $this.trigger('focus')\n      })\n    })\n    Plugin.call($target, option, this)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.5\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TOOLTIP PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Tooltip = function (element, options) {\n    this.type       = null\n    this.options    = null\n    this.enabled    = null\n    this.timeout    = null\n    this.hoverState = null\n    this.$element   = null\n    this.inState    = null\n\n    this.init('tooltip', element, options)\n  }\n\n  Tooltip.VERSION  = '3.3.5'\n\n  Tooltip.TRANSITION_DURATION = 150\n\n  Tooltip.DEFAULTS = {\n    animation: true,\n    placement: 'top',\n    selector: false,\n    template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    container: false,\n    viewport: {\n      selector: 'body',\n      padding: 0\n    }\n  }\n\n  Tooltip.prototype.init = function (type, element, options) {\n    this.enabled   = true\n    this.type      = type\n    this.$element  = $(element)\n    this.options   = this.getOptions(options)\n    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n    this.inState   = { click: false, hover: false, focus: false }\n\n    if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n    }\n\n    var triggers = this.options.trigger.split(' ')\n\n    for (var i = triggers.length; i--;) {\n      var trigger = triggers[i]\n\n      if (trigger == 'click') {\n        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n      } else if (trigger != 'manual') {\n        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'\n        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n      }\n    }\n\n    this.options.selector ?\n      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n      this.fixTitle()\n  }\n\n  Tooltip.prototype.getDefaults = function () {\n    return Tooltip.DEFAULTS\n  }\n\n  Tooltip.prototype.getOptions = function (options) {\n    options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n    if (options.delay && typeof options.delay == 'number') {\n      options.delay = {\n        show: options.delay,\n        hide: options.delay\n      }\n    }\n\n    return options\n  }\n\n  Tooltip.prototype.getDelegateOptions = function () {\n    var options  = {}\n    var defaults = this.getDefaults()\n\n    this._options && $.each(this._options, function (key, value) {\n      if (defaults[key] != value) options[key] = value\n    })\n\n    return options\n  }\n\n  Tooltip.prototype.enter = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n    }\n\n    if (self.tip().hasClass('in') || self.hoverState == 'in') {\n      self.hoverState = 'in'\n      return\n    }\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'in'\n\n    if (!self.options.delay || !self.options.delay.show) return self.show()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'in') self.show()\n    }, self.options.delay.show)\n  }\n\n  Tooltip.prototype.isInStateTrue = function () {\n    for (var key in this.inState) {\n      if (this.inState[key]) return true\n    }\n\n    return false\n  }\n\n  Tooltip.prototype.leave = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n    }\n\n    if (self.isInStateTrue()) return\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'out'\n\n    if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'out') self.hide()\n    }, self.options.delay.hide)\n  }\n\n  Tooltip.prototype.show = function () {\n    var e = $.Event('show.bs.' + this.type)\n\n    if (this.hasContent() && this.enabled) {\n      this.$element.trigger(e)\n\n      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n      if (e.isDefaultPrevented() || !inDom) return\n      var that = this\n\n      var $tip = this.tip()\n\n      var tipId = this.getUID(this.type)\n\n      this.setContent()\n      $tip.attr('id', tipId)\n      this.$element.attr('aria-describedby', tipId)\n\n      if (this.options.animation) $tip.addClass('fade')\n\n      var placement = typeof this.options.placement == 'function' ?\n        this.options.placement.call(this, $tip[0], this.$element[0]) :\n        this.options.placement\n\n      var autoToken = /\\s?auto?\\s?/i\n      var autoPlace = autoToken.test(placement)\n      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n      $tip\n        .detach()\n        .css({ top: 0, left: 0, display: 'block' })\n        .addClass(placement)\n        .data('bs.' + this.type, this)\n\n      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n      this.$element.trigger('inserted.bs.' + this.type)\n\n      var pos          = this.getPosition()\n      var actualWidth  = $tip[0].offsetWidth\n      var actualHeight = $tip[0].offsetHeight\n\n      if (autoPlace) {\n        var orgPlacement = placement\n        var viewportDim = this.getPosition(this.$viewport)\n\n        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :\n                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :\n                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :\n                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :\n                    placement\n\n        $tip\n          .removeClass(orgPlacement)\n          .addClass(placement)\n      }\n\n      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n      this.applyPlacement(calculatedOffset, placement)\n\n      var complete = function () {\n        var prevHoverState = that.hoverState\n        that.$element.trigger('shown.bs.' + that.type)\n        that.hoverState = null\n\n        if (prevHoverState == 'out') that.leave(that)\n      }\n\n      $.support.transition && this.$tip.hasClass('fade') ?\n        $tip\n          .one('bsTransitionEnd', complete)\n          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n        complete()\n    }\n  }\n\n  Tooltip.prototype.applyPlacement = function (offset, placement) {\n    var $tip   = this.tip()\n    var width  = $tip[0].offsetWidth\n    var height = $tip[0].offsetHeight\n\n    // manually read margins because getBoundingClientRect includes difference\n    var marginTop = parseInt($tip.css('margin-top'), 10)\n    var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n    // we must check for NaN for ie 8/9\n    if (isNaN(marginTop))  marginTop  = 0\n    if (isNaN(marginLeft)) marginLeft = 0\n\n    offset.top  += marginTop\n    offset.left += marginLeft\n\n    // $.fn.offset doesn't round pixel values\n    // so we use setOffset directly with our own function B-0\n    $.offset.setOffset($tip[0], $.extend({\n      using: function (props) {\n        $tip.css({\n          top: Math.round(props.top),\n          left: Math.round(props.left)\n        })\n      }\n    }, offset), 0)\n\n    $tip.addClass('in')\n\n    // check to see if placing tip in new offset caused the tip to resize itself\n    var actualWidth  = $tip[0].offsetWidth\n    var actualHeight = $tip[0].offsetHeight\n\n    if (placement == 'top' && actualHeight != height) {\n      offset.top = offset.top + height - actualHeight\n    }\n\n    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n    if (delta.left) offset.left += delta.left\n    else offset.top += delta.top\n\n    var isVertical          = /top|bottom/.test(placement)\n    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n    $tip.offset(offset)\n    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n  }\n\n  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n    this.arrow()\n      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n      .css(isVertical ? 'top' : 'left', '')\n  }\n\n  Tooltip.prototype.setContent = function () {\n    var $tip  = this.tip()\n    var title = this.getTitle()\n\n    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n    $tip.removeClass('fade in top bottom left right')\n  }\n\n  Tooltip.prototype.hide = function (callback) {\n    var that = this\n    var $tip = $(this.$tip)\n    var e    = $.Event('hide.bs.' + this.type)\n\n    function complete() {\n      if (that.hoverState != 'in') $tip.detach()\n      that.$element\n        .removeAttr('aria-describedby')\n        .trigger('hidden.bs.' + that.type)\n      callback && callback()\n    }\n\n    this.$element.trigger(e)\n\n    if (e.isDefaultPrevented()) return\n\n    $tip.removeClass('in')\n\n    $.support.transition && $tip.hasClass('fade') ?\n      $tip\n        .one('bsTransitionEnd', complete)\n        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n      complete()\n\n    this.hoverState = null\n\n    return this\n  }\n\n  Tooltip.prototype.fixTitle = function () {\n    var $e = this.$element\n    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n    }\n  }\n\n  Tooltip.prototype.hasContent = function () {\n    return this.getTitle()\n  }\n\n  Tooltip.prototype.getPosition = function ($element) {\n    $element   = $element || this.$element\n\n    var el     = $element[0]\n    var isBody = el.tagName == 'BODY'\n\n    var elRect    = el.getBoundingClientRect()\n    if (elRect.width == null) {\n      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n    }\n    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()\n    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n    return $.extend({}, elRect, scroll, outerDims, elOffset)\n  }\n\n  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n  }\n\n  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n    var delta = { top: 0, left: 0 }\n    if (!this.$viewport) return delta\n\n    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n    var viewportDimensions = this.getPosition(this.$viewport)\n\n    if (/right|left/.test(placement)) {\n      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll\n      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n      if (topEdgeOffset < viewportDimensions.top) { // top overflow\n        delta.top = viewportDimensions.top - topEdgeOffset\n      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n      }\n    } else {\n      var leftEdgeOffset  = pos.left - viewportPadding\n      var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n      if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n        delta.left = viewportDimensions.left - leftEdgeOffset\n      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n      }\n    }\n\n    return delta\n  }\n\n  Tooltip.prototype.getTitle = function () {\n    var title\n    var $e = this.$element\n    var o  = this.options\n\n    title = $e.attr('data-original-title')\n      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)\n\n    return title\n  }\n\n  Tooltip.prototype.getUID = function (prefix) {\n    do prefix += ~~(Math.random() * 1000000)\n    while (document.getElementById(prefix))\n    return prefix\n  }\n\n  Tooltip.prototype.tip = function () {\n    if (!this.$tip) {\n      this.$tip = $(this.options.template)\n      if (this.$tip.length != 1) {\n        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n      }\n    }\n    return this.$tip\n  }\n\n  Tooltip.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n  }\n\n  Tooltip.prototype.enable = function () {\n    this.enabled = true\n  }\n\n  Tooltip.prototype.disable = function () {\n    this.enabled = false\n  }\n\n  Tooltip.prototype.toggleEnabled = function () {\n    this.enabled = !this.enabled\n  }\n\n  Tooltip.prototype.toggle = function (e) {\n    var self = this\n    if (e) {\n      self = $(e.currentTarget).data('bs.' + this.type)\n      if (!self) {\n        self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n        $(e.currentTarget).data('bs.' + this.type, self)\n      }\n    }\n\n    if (e) {\n      self.inState.click = !self.inState.click\n      if (self.isInStateTrue()) self.enter(self)\n      else self.leave(self)\n    } else {\n      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n    }\n  }\n\n  Tooltip.prototype.destroy = function () {\n    var that = this\n    clearTimeout(this.timeout)\n    this.hide(function () {\n      that.$element.off('.' + that.type).removeData('bs.' + that.type)\n      if (that.$tip) {\n        that.$tip.detach()\n      }\n      that.$tip = null\n      that.$arrow = null\n      that.$viewport = null\n    })\n  }\n\n\n  // TOOLTIP PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.tooltip')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tooltip\n\n  $.fn.tooltip             = Plugin\n  $.fn.tooltip.Constructor = Tooltip\n\n\n  // TOOLTIP NO CONFLICT\n  // ===================\n\n  $.fn.tooltip.noConflict = function () {\n    $.fn.tooltip = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.5\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // POPOVER PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Popover = function (element, options) {\n    this.init('popover', element, options)\n  }\n\n  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n  Popover.VERSION  = '3.3.5'\n\n  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n  })\n\n\n  // NOTE: POPOVER EXTENDS tooltip.js\n  // ================================\n\n  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n  Popover.prototype.constructor = Popover\n\n  Popover.prototype.getDefaults = function () {\n    return Popover.DEFAULTS\n  }\n\n  Popover.prototype.setContent = function () {\n    var $tip    = this.tip()\n    var title   = this.getTitle()\n    var content = this.getContent()\n\n    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n    ](content)\n\n    $tip.removeClass('fade top bottom left right in')\n\n    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n    // this manually by checking the contents.\n    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n  }\n\n  Popover.prototype.hasContent = function () {\n    return this.getTitle() || this.getContent()\n  }\n\n  Popover.prototype.getContent = function () {\n    var $e = this.$element\n    var o  = this.options\n\n    return $e.attr('data-content')\n      || (typeof o.content == 'function' ?\n            o.content.call($e[0]) :\n            o.content)\n  }\n\n  Popover.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n  }\n\n\n  // POPOVER PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.popover')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.popover\n\n  $.fn.popover             = Plugin\n  $.fn.popover.Constructor = Popover\n\n\n  // POPOVER NO CONFLICT\n  // ===================\n\n  $.fn.popover.noConflict = function () {\n    $.fn.popover = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.5\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // SCROLLSPY CLASS DEFINITION\n  // ==========================\n\n  function ScrollSpy(element, options) {\n    this.$body          = $(document.body)\n    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)\n    this.selector       = (this.options.target || '') + ' .nav li > a'\n    this.offsets        = []\n    this.targets        = []\n    this.activeTarget   = null\n    this.scrollHeight   = 0\n\n    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n    this.refresh()\n    this.process()\n  }\n\n  ScrollSpy.VERSION  = '3.3.5'\n\n  ScrollSpy.DEFAULTS = {\n    offset: 10\n  }\n\n  ScrollSpy.prototype.getScrollHeight = function () {\n    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n  }\n\n  ScrollSpy.prototype.refresh = function () {\n    var that          = this\n    var offsetMethod  = 'offset'\n    var offsetBase    = 0\n\n    this.offsets      = []\n    this.targets      = []\n    this.scrollHeight = this.getScrollHeight()\n\n    if (!$.isWindow(this.$scrollElement[0])) {\n      offsetMethod = 'position'\n      offsetBase   = this.$scrollElement.scrollTop()\n    }\n\n    this.$body\n      .find(this.selector)\n      .map(function () {\n        var $el   = $(this)\n        var href  = $el.data('target') || $el.attr('href')\n        var $href = /^#./.test(href) && $(href)\n\n        return ($href\n          && $href.length\n          && $href.is(':visible')\n          && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n      })\n      .sort(function (a, b) { return a[0] - b[0] })\n      .each(function () {\n        that.offsets.push(this[0])\n        that.targets.push(this[1])\n      })\n  }\n\n  ScrollSpy.prototype.process = function () {\n    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset\n    var scrollHeight = this.getScrollHeight()\n    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()\n    var offsets      = this.offsets\n    var targets      = this.targets\n    var activeTarget = this.activeTarget\n    var i\n\n    if (this.scrollHeight != scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n    }\n\n    if (activeTarget && scrollTop < offsets[0]) {\n      this.activeTarget = null\n      return this.clear()\n    }\n\n    for (i = offsets.length; i--;) {\n      activeTarget != targets[i]\n        && scrollTop >= offsets[i]\n        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n        && this.activate(targets[i])\n    }\n  }\n\n  ScrollSpy.prototype.activate = function (target) {\n    this.activeTarget = target\n\n    this.clear()\n\n    var selector = this.selector +\n      '[data-target=\"' + target + '\"],' +\n      this.selector + '[href=\"' + target + '\"]'\n\n    var active = $(selector)\n      .parents('li')\n      .addClass('active')\n\n    if (active.parent('.dropdown-menu').length) {\n      active = active\n        .closest('li.dropdown')\n        .addClass('active')\n    }\n\n    active.trigger('activate.bs.scrollspy')\n  }\n\n  ScrollSpy.prototype.clear = function () {\n    $(this.selector)\n      .parentsUntil(this.options.target, '.active')\n      .removeClass('active')\n  }\n\n\n  // SCROLLSPY PLUGIN DEFINITION\n  // ===========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.scrollspy')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.scrollspy\n\n  $.fn.scrollspy             = Plugin\n  $.fn.scrollspy.Constructor = ScrollSpy\n\n\n  // SCROLLSPY NO CONFLICT\n  // =====================\n\n  $.fn.scrollspy.noConflict = function () {\n    $.fn.scrollspy = old\n    return this\n  }\n\n\n  // SCROLLSPY DATA-API\n  // ==================\n\n  $(window).on('load.bs.scrollspy.data-api', function () {\n    $('[data-spy=\"scroll\"]').each(function () {\n      var $spy = $(this)\n      Plugin.call($spy, $spy.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.5\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TAB CLASS DEFINITION\n  // ====================\n\n  var Tab = function (element) {\n    // jscs:disable requireDollarBeforejQueryAssignment\n    this.element = $(element)\n    // jscs:enable requireDollarBeforejQueryAssignment\n  }\n\n  Tab.VERSION = '3.3.5'\n\n  Tab.TRANSITION_DURATION = 150\n\n  Tab.prototype.show = function () {\n    var $this    = this.element\n    var $ul      = $this.closest('ul:not(.dropdown-menu)')\n    var selector = $this.data('target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    if ($this.parent('li').hasClass('active')) return\n\n    var $previous = $ul.find('.active:last a')\n    var hideEvent = $.Event('hide.bs.tab', {\n      relatedTarget: $this[0]\n    })\n    var showEvent = $.Event('show.bs.tab', {\n      relatedTarget: $previous[0]\n    })\n\n    $previous.trigger(hideEvent)\n    $this.trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n    var $target = $(selector)\n\n    this.activate($this.closest('li'), $ul)\n    this.activate($target, $target.parent(), function () {\n      $previous.trigger({\n        type: 'hidden.bs.tab',\n        relatedTarget: $this[0]\n      })\n      $this.trigger({\n        type: 'shown.bs.tab',\n        relatedTarget: $previous[0]\n      })\n    })\n  }\n\n  Tab.prototype.activate = function (element, container, callback) {\n    var $active    = container.find('> .active')\n    var transition = callback\n      && $.support.transition\n      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n    function next() {\n      $active\n        .removeClass('active')\n        .find('> .dropdown-menu > .active')\n          .removeClass('active')\n        .end()\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', false)\n\n      element\n        .addClass('active')\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', true)\n\n      if (transition) {\n        element[0].offsetWidth // reflow for transition\n        element.addClass('in')\n      } else {\n        element.removeClass('fade')\n      }\n\n      if (element.parent('.dropdown-menu').length) {\n        element\n          .closest('li.dropdown')\n            .addClass('active')\n          .end()\n          .find('[data-toggle=\"tab\"]')\n            .attr('aria-expanded', true)\n      }\n\n      callback && callback()\n    }\n\n    $active.length && transition ?\n      $active\n        .one('bsTransitionEnd', next)\n        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n      next()\n\n    $active.removeClass('in')\n  }\n\n\n  // TAB PLUGIN DEFINITION\n  // =====================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.tab')\n\n      if (!data) $this.data('bs.tab', (data = new Tab(this)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tab\n\n  $.fn.tab             = Plugin\n  $.fn.tab.Constructor = Tab\n\n\n  // TAB NO CONFLICT\n  // ===============\n\n  $.fn.tab.noConflict = function () {\n    $.fn.tab = old\n    return this\n  }\n\n\n  // TAB DATA-API\n  // ============\n\n  var clickHandler = function (e) {\n    e.preventDefault()\n    Plugin.call($(this), 'show')\n  }\n\n  $(document)\n    .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n    .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.5\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // AFFIX CLASS DEFINITION\n  // ======================\n\n  var Affix = function (element, options) {\n    this.options = $.extend({}, Affix.DEFAULTS, options)\n\n    this.$target = $(this.options.target)\n      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))\n\n    this.$element     = $(element)\n    this.affixed      = null\n    this.unpin        = null\n    this.pinnedOffset = null\n\n    this.checkPosition()\n  }\n\n  Affix.VERSION  = '3.3.5'\n\n  Affix.RESET    = 'affix affix-top affix-bottom'\n\n  Affix.DEFAULTS = {\n    offset: 0,\n    target: window\n  }\n\n  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n    var scrollTop    = this.$target.scrollTop()\n    var position     = this.$element.offset()\n    var targetHeight = this.$target.height()\n\n    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n    if (this.affixed == 'bottom') {\n      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n    }\n\n    var initializing   = this.affixed == null\n    var colliderTop    = initializing ? scrollTop : position.top\n    var colliderHeight = initializing ? targetHeight : height\n\n    if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n    return false\n  }\n\n  Affix.prototype.getPinnedOffset = function () {\n    if (this.pinnedOffset) return this.pinnedOffset\n    this.$element.removeClass(Affix.RESET).addClass('affix')\n    var scrollTop = this.$target.scrollTop()\n    var position  = this.$element.offset()\n    return (this.pinnedOffset = position.top - scrollTop)\n  }\n\n  Affix.prototype.checkPositionWithEventLoop = function () {\n    setTimeout($.proxy(this.checkPosition, this), 1)\n  }\n\n  Affix.prototype.checkPosition = function () {\n    if (!this.$element.is(':visible')) return\n\n    var height       = this.$element.height()\n    var offset       = this.options.offset\n    var offsetTop    = offset.top\n    var offsetBottom = offset.bottom\n    var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n    if (typeof offset != 'object')         offsetBottom = offsetTop = offset\n    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)\n    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n    if (this.affixed != affix) {\n      if (this.unpin != null) this.$element.css('top', '')\n\n      var affixType = 'affix' + (affix ? '-' + affix : '')\n      var e         = $.Event(affixType + '.bs.affix')\n\n      this.$element.trigger(e)\n\n      if (e.isDefaultPrevented()) return\n\n      this.affixed = affix\n      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n      this.$element\n        .removeClass(Affix.RESET)\n        .addClass(affixType)\n        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n    }\n\n    if (affix == 'bottom') {\n      this.$element.offset({\n        top: scrollHeight - height - offsetBottom\n      })\n    }\n  }\n\n\n  // AFFIX PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.affix')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.affix\n\n  $.fn.affix             = Plugin\n  $.fn.affix.Constructor = Affix\n\n\n  // AFFIX NO CONFLICT\n  // =================\n\n  $.fn.affix.noConflict = function () {\n    $.fn.affix = old\n    return this\n  }\n\n\n  // AFFIX DATA-API\n  // ==============\n\n  $(window).on('load', function () {\n    $('[data-spy=\"affix\"]').each(function () {\n      var $spy = $(this)\n      var data = $spy.data()\n\n      data.offset = data.offset || {}\n\n      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n      if (data.offsetTop    != null) data.offset.top    = data.offsetTop\n\n      Plugin.call($spy, data)\n    })\n  })\n\n}(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/libs/codemirror.js",
    "content": "// CodeMirror version 3.20\n//\n// CodeMirror is the only global var we claim\nwindow.CodeMirror = (function() {\n  \"use strict\";\n\n  // BROWSER SNIFFING\n\n  // Crude, but necessary to handle a number of hard-to-feature-detect\n  // bugs and behavior differences.\n  var gecko = /gecko\\/\\d/i.test(navigator.userAgent);\n  // IE11 currently doesn't count as 'ie', since it has almost none of\n  // the same bugs as earlier versions. Use ie_gt10 to handle\n  // incompatibilities in that version.\n  var ie = /MSIE \\d/.test(navigator.userAgent);\n  var ie_lt8 = ie && (document.documentMode == null || document.documentMode < 8);\n  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n  var ie_gt10 = /Trident\\/([7-9]|\\d{2,})\\./.test(navigator.userAgent);\n  var webkit = /WebKit\\//.test(navigator.userAgent);\n  var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(navigator.userAgent);\n  var chrome = /Chrome\\//.test(navigator.userAgent);\n  var opera = /Opera\\//.test(navigator.userAgent);\n  var safari = /Apple Computer/.test(navigator.vendor);\n  var khtml = /KHTML\\//.test(navigator.userAgent);\n  var mac_geLion = /Mac OS X 1\\d\\D([7-9]|\\d\\d)\\D/.test(navigator.userAgent);\n  var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(navigator.userAgent);\n  var phantom = /PhantomJS/.test(navigator.userAgent);\n\n  var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\\/\\w+/.test(navigator.userAgent);\n  // This is woefully incomplete. Suggestions for alternative methods welcome.\n  var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent);\n  var mac = ios || /Mac/.test(navigator.platform);\n  var windows = /win/i.test(navigator.platform);\n\n  var opera_version = opera && navigator.userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n  if (opera_version) opera_version = Number(opera_version[1]);\n  if (opera_version && opera_version >= 15) { opera = false; webkit = true; }\n  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n  var flipCtrlCmd = mac && (qtwebkit || opera && (opera_version == null || opera_version < 12.11));\n  var captureMiddleClick = gecko || (ie && !ie_lt9);\n\n  // Optimize some code when these features are not used\n  var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n  // CONSTRUCTOR\n\n  function CodeMirror(place, options) {\n    if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);\n\n    this.options = options = options || {};\n    // Determine effective options based on given values and defaults.\n    for (var opt in defaults) if (!options.hasOwnProperty(opt) && defaults.hasOwnProperty(opt))\n      options[opt] = defaults[opt];\n    setGuttersForLineNumbers(options);\n\n    var docStart = typeof options.value == \"string\" ? 0 : options.value.first;\n    var display = this.display = makeDisplay(place, docStart);\n    display.wrapper.CodeMirror = this;\n    updateGutters(this);\n    if (options.autofocus && !mobile) focusInput(this);\n\n    this.state = {keyMaps: [],\n                  overlays: [],\n                  modeGen: 0,\n                  overwrite: false, focused: false,\n                  suppressEdits: false, pasteIncoming: false,\n                  draggingText: false,\n                  highlight: new Delayed()};\n\n    themeChanged(this);\n    if (options.lineWrapping)\n      this.display.wrapper.className += \" CodeMirror-wrap\";\n\n    var doc = options.value;\n    if (typeof doc == \"string\") doc = new Doc(options.value, options.mode);\n    operation(this, attachDoc)(this, doc);\n\n    // Override magic textarea content restore that IE sometimes does\n    // on our hidden textarea on reload\n    if (ie) setTimeout(bind(resetInput, this, true), 20);\n\n    registerEventHandlers(this);\n    // IE throws unspecified error in certain cases, when\n    // trying to access activeElement before onload\n    var hasFocus; try { hasFocus = (document.activeElement == display.input); } catch(e) { }\n    if (hasFocus || (options.autofocus && !mobile)) setTimeout(bind(onFocus, this), 20);\n    else onBlur(this);\n\n    operation(this, function() {\n      for (var opt in optionHandlers)\n        if (optionHandlers.propertyIsEnumerable(opt))\n          optionHandlers[opt](this, options[opt], Init);\n      for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);\n    })();\n  }\n\n  // DISPLAY CONSTRUCTOR\n\n  function makeDisplay(place, docStart) {\n    var d = {};\n\n    var input = d.input = elt(\"textarea\", null, null, \"position: absolute; padding: 0; width: 1px; height: 1em; outline: none; font-size: 4px;\");\n    if (webkit) input.style.width = \"1000px\";\n    else input.setAttribute(\"wrap\", \"off\");\n    // if border: 0; -- iOS fails to open keyboard (issue #1287)\n    if (ios) input.style.border = \"1px solid black\";\n    input.setAttribute(\"autocorrect\", \"off\"); input.setAttribute(\"autocapitalize\", \"off\"); input.setAttribute(\"spellcheck\", \"false\");\n\n    // Wraps and hides input textarea\n    d.inputDiv = elt(\"div\", [input], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n    // The actual fake scrollbars.\n    d.scrollbarH = elt(\"div\", [elt(\"div\", null, null, \"height: 1px\")], \"CodeMirror-hscrollbar\");\n    d.scrollbarV = elt(\"div\", [elt(\"div\", null, null, \"width: 1px\")], \"CodeMirror-vscrollbar\");\n    d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n    d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n    // DIVs containing the selection and the actual code\n    d.lineDiv = elt(\"div\", null, \"CodeMirror-code\");\n    d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n    // Blinky cursor, and element used to ensure cursor fits at the end of a line\n    d.cursor = elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\");\n    // Secondary cursor, shown when on a 'jump' in bi-directional text\n    d.otherCursor = elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\");\n    // Used to measure text size\n    d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n    // Wraps everything that needs to exist inside the vertically-padded coordinate system\n    d.lineSpace = elt(\"div\", [d.measure, d.selectionDiv, d.lineDiv, d.cursor, d.otherCursor],\n                         null, \"position: relative; outline: none\");\n    // Moved around its parent to cover visible view\n    d.mover = elt(\"div\", [elt(\"div\", [d.lineSpace], \"CodeMirror-lines\")], null, \"position: relative\");\n    // Set to the height of the text, causes scrolling\n    d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n    // D is needed because behavior of elts with overflow: auto and padding is inconsistent across browsers\n    d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerCutOff + \"px; width: 1px;\");\n    // Will contain the gutters, if any\n    d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n    d.lineGutter = null;\n    // Provides scrolling\n    d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n    d.scroller.setAttribute(\"tabIndex\", \"-1\");\n    // The element in which the editor lives.\n    d.wrapper = elt(\"div\", [d.inputDiv, d.scrollbarH, d.scrollbarV,\n                            d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n    // Work around IE7 z-index bug\n    if (ie_lt8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n    if (place.appendChild) place.appendChild(d.wrapper); else place(d.wrapper);\n\n    // Needed to hide big blue blinking cursor on Mobile Safari\n    if (ios) input.style.width = \"0px\";\n    if (!webkit) d.scroller.draggable = true;\n    // Needed to handle Tab key in KHTML\n    if (khtml) { d.inputDiv.style.height = \"1px\"; d.inputDiv.style.position = \"absolute\"; }\n    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n    else if (ie_lt8) d.scrollbarH.style.minWidth = d.scrollbarV.style.minWidth = \"18px\";\n\n    // Current visible range (may be bigger than the view window).\n    d.viewOffset = d.lastSizeC = 0;\n    d.showingFrom = d.showingTo = docStart;\n\n    // Used to only resize the line number gutter when necessary (when\n    // the amount of lines crosses a boundary that makes its width change)\n    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n    // See readInput and resetInput\n    d.prevInput = \"\";\n    // Set to true when a non-horizontal-scrolling widget is added. As\n    // an optimization, widget aligning is skipped when d is false.\n    d.alignWidgets = false;\n    // Flag that indicates whether we currently expect input to appear\n    // (after some event like 'keypress' or 'input') and are polling\n    // intensively.\n    d.pollingFast = false;\n    // Self-resetting timeout for the poller\n    d.poll = new Delayed();\n\n    d.cachedCharWidth = d.cachedTextHeight = null;\n    d.measureLineCache = [];\n    d.measureLineCachePos = 0;\n\n    // Tracks when resetInput has punted to just putting a short\n    // string instead of the (large) selection.\n    d.inaccurateSelection = false;\n\n    // Tracks the maximum line length so that the horizontal scrollbar\n    // can be kept static when scrolling.\n    d.maxLine = null;\n    d.maxLineLength = 0;\n    d.maxLineChanged = false;\n\n    // Used for measuring wheel scrolling granularity\n    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n    return d;\n  }\n\n  // STATE UPDATES\n\n  // Used to get the editor into a consistent state again when options change.\n\n  function loadMode(cm) {\n    cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);\n    cm.doc.iter(function(line) {\n      if (line.stateAfter) line.stateAfter = null;\n      if (line.styles) line.styles = null;\n    });\n    cm.doc.frontier = cm.doc.first;\n    startWorker(cm, 100);\n    cm.state.modeGen++;\n    if (cm.curOp) regChange(cm);\n  }\n\n  function wrappingChanged(cm) {\n    if (cm.options.lineWrapping) {\n      cm.display.wrapper.className += \" CodeMirror-wrap\";\n      cm.display.sizer.style.minWidth = \"\";\n    } else {\n      cm.display.wrapper.className = cm.display.wrapper.className.replace(\" CodeMirror-wrap\", \"\");\n      computeMaxLength(cm);\n    }\n    estimateLineHeights(cm);\n    regChange(cm);\n    clearCaches(cm);\n    setTimeout(function(){updateScrollbars(cm);}, 100);\n  }\n\n  function estimateHeight(cm) {\n    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n    return function(line) {\n      if (lineIsHidden(cm.doc, line))\n        return 0;\n      else if (wrapping)\n        return (Math.ceil(line.text.length / perLine) || 1) * th;\n      else\n        return th;\n    };\n  }\n\n  function estimateLineHeights(cm) {\n    var doc = cm.doc, est = estimateHeight(cm);\n    doc.iter(function(line) {\n      var estHeight = est(line);\n      if (estHeight != line.height) updateLineHeight(line, estHeight);\n    });\n  }\n\n  function keyMapChanged(cm) {\n    var map = keyMap[cm.options.keyMap], style = map.style;\n    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-keymap-\\S+/g, \"\") +\n      (style ? \" cm-keymap-\" + style : \"\");\n    cm.state.disableInput = map.disableInput;\n  }\n\n  function themeChanged(cm) {\n    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n      cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n    clearCaches(cm);\n  }\n\n  function guttersChanged(cm) {\n    updateGutters(cm);\n    regChange(cm);\n    setTimeout(function(){alignHorizontally(cm);}, 20);\n  }\n\n  function updateGutters(cm) {\n    var gutters = cm.display.gutters, specs = cm.options.gutters;\n    removeChildren(gutters);\n    for (var i = 0; i < specs.length; ++i) {\n      var gutterClass = specs[i];\n      var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + gutterClass));\n      if (gutterClass == \"CodeMirror-linenumbers\") {\n        cm.display.lineGutter = gElt;\n        gElt.style.width = (cm.display.lineNumWidth || 1) + \"px\";\n      }\n    }\n    gutters.style.display = i ? \"\" : \"none\";\n  }\n\n  function lineLength(doc, line) {\n    if (line.height == 0) return 0;\n    var len = line.text.length, merged, cur = line;\n    while (merged = collapsedSpanAtStart(cur)) {\n      var found = merged.find();\n      cur = getLine(doc, found.from.line);\n      len += found.from.ch - found.to.ch;\n    }\n    cur = line;\n    while (merged = collapsedSpanAtEnd(cur)) {\n      var found = merged.find();\n      len -= cur.text.length - found.from.ch;\n      cur = getLine(doc, found.to.line);\n      len += cur.text.length - found.to.ch;\n    }\n    return len;\n  }\n\n  function computeMaxLength(cm) {\n    var d = cm.display, doc = cm.doc;\n    d.maxLine = getLine(doc, doc.first);\n    d.maxLineLength = lineLength(doc, d.maxLine);\n    d.maxLineChanged = true;\n    doc.iter(function(line) {\n      var len = lineLength(doc, line);\n      if (len > d.maxLineLength) {\n        d.maxLineLength = len;\n        d.maxLine = line;\n      }\n    });\n  }\n\n  // Make sure the gutters options contains the element\n  // \"CodeMirror-linenumbers\" when the lineNumbers option is true.\n  function setGuttersForLineNumbers(options) {\n    var found = indexOf(options.gutters, \"CodeMirror-linenumbers\");\n    if (found == -1 && options.lineNumbers) {\n      options.gutters = options.gutters.concat([\"CodeMirror-linenumbers\"]);\n    } else if (found > -1 && !options.lineNumbers) {\n      options.gutters = options.gutters.slice(0);\n      options.gutters.splice(found, 1);\n    }\n  }\n\n  // SCROLLBARS\n\n  // Re-synchronize the fake scrollbars with the actual size of the\n  // content. Optionally force a scrollTop.\n  function updateScrollbars(cm) {\n    var d = cm.display, docHeight = cm.doc.height;\n    var totalHeight = docHeight + paddingVert(d);\n    d.sizer.style.minHeight = d.heightForcer.style.top = totalHeight + \"px\";\n    d.gutters.style.height = Math.max(totalHeight, d.scroller.clientHeight - scrollerCutOff) + \"px\";\n    var scrollHeight = Math.max(totalHeight, d.scroller.scrollHeight);\n    var needsH = d.scroller.scrollWidth > (d.scroller.clientWidth + 1);\n    var needsV = scrollHeight > (d.scroller.clientHeight + 1);\n    if (needsV) {\n      d.scrollbarV.style.display = \"block\";\n      d.scrollbarV.style.bottom = needsH ? scrollbarWidth(d.measure) + \"px\" : \"0\";\n      d.scrollbarV.firstChild.style.height =\n        (scrollHeight - d.scroller.clientHeight + d.scrollbarV.clientHeight) + \"px\";\n    } else {\n      d.scrollbarV.style.display = \"\";\n      d.scrollbarV.firstChild.style.height = \"0\";\n    }\n    if (needsH) {\n      d.scrollbarH.style.display = \"block\";\n      d.scrollbarH.style.right = needsV ? scrollbarWidth(d.measure) + \"px\" : \"0\";\n      d.scrollbarH.firstChild.style.width =\n        (d.scroller.scrollWidth - d.scroller.clientWidth + d.scrollbarH.clientWidth) + \"px\";\n    } else {\n      d.scrollbarH.style.display = \"\";\n      d.scrollbarH.firstChild.style.width = \"0\";\n    }\n    if (needsH && needsV) {\n      d.scrollbarFiller.style.display = \"block\";\n      d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = scrollbarWidth(d.measure) + \"px\";\n    } else d.scrollbarFiller.style.display = \"\";\n    if (needsH && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n      d.gutterFiller.style.display = \"block\";\n      d.gutterFiller.style.height = scrollbarWidth(d.measure) + \"px\";\n      d.gutterFiller.style.width = d.gutters.offsetWidth + \"px\";\n    } else d.gutterFiller.style.display = \"\";\n\n    if (mac_geLion && scrollbarWidth(d.measure) === 0) {\n      d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = mac_geMountainLion ? \"18px\" : \"12px\";\n      d.scrollbarV.style.pointerEvents = d.scrollbarH.style.pointerEvents = \"none\";\n    }\n  }\n\n  function visibleLines(display, doc, viewPort) {\n    var top = display.scroller.scrollTop, height = display.wrapper.clientHeight;\n    if (typeof viewPort == \"number\") top = viewPort;\n    else if (viewPort) {top = viewPort.top; height = viewPort.bottom - viewPort.top;}\n    top = Math.floor(top - paddingTop(display));\n    var bottom = Math.ceil(top + height);\n    return {from: lineAtHeight(doc, top), to: lineAtHeight(doc, bottom)};\n  }\n\n  // LINE NUMBERS\n\n  function alignHorizontally(cm) {\n    var display = cm.display;\n    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;\n    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n    var gutterW = display.gutters.offsetWidth, l = comp + \"px\";\n    for (var n = display.lineDiv.firstChild; n; n = n.nextSibling) if (n.alignable) {\n      for (var i = 0, a = n.alignable; i < a.length; ++i) a[i].style.left = l;\n    }\n    if (cm.options.fixedGutter)\n      display.gutters.style.left = (comp + gutterW) + \"px\";\n  }\n\n  function maybeUpdateLineNumberWidth(cm) {\n    if (!cm.options.lineNumbers) return false;\n    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n    if (last.length != display.lineNumChars) {\n      var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n                                                 \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n      display.lineGutter.style.width = \"\";\n      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding);\n      display.lineNumWidth = display.lineNumInnerWidth + padding;\n      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n      display.lineGutter.style.width = display.lineNumWidth + \"px\";\n      return true;\n    }\n    return false;\n  }\n\n  function lineNumberFor(options, i) {\n    return String(options.lineNumberFormatter(i + options.firstLineNumber));\n  }\n  function compensateForHScroll(display) {\n    return getRect(display.scroller).left - getRect(display.sizer).left;\n  }\n\n  // DISPLAY DRAWING\n\n  function updateDisplay(cm, changes, viewPort, forced) {\n    var oldFrom = cm.display.showingFrom, oldTo = cm.display.showingTo, updated;\n    var visible = visibleLines(cm.display, cm.doc, viewPort);\n    for (var first = true;; first = false) {\n      var oldWidth = cm.display.scroller.clientWidth;\n      if (!updateDisplayInner(cm, changes, visible, forced)) break;\n      updated = true;\n      changes = [];\n      updateSelection(cm);\n      updateScrollbars(cm);\n      if (first && cm.options.lineWrapping && oldWidth != cm.display.scroller.clientWidth) {\n        forced = true;\n        continue;\n      }\n      forced = false;\n\n      // Clip forced viewport to actual scrollable area\n      if (viewPort)\n        viewPort = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight,\n                            typeof viewPort == \"number\" ? viewPort : viewPort.top);\n      visible = visibleLines(cm.display, cm.doc, viewPort);\n      if (visible.from >= cm.display.showingFrom && visible.to <= cm.display.showingTo)\n        break;\n    }\n\n    if (updated) {\n      signalLater(cm, \"update\", cm);\n      if (cm.display.showingFrom != oldFrom || cm.display.showingTo != oldTo)\n        signalLater(cm, \"viewportChange\", cm, cm.display.showingFrom, cm.display.showingTo);\n    }\n    return updated;\n  }\n\n  // Uses a set of changes plus the current scroll position to\n  // determine which DOM updates have to be made, and makes the\n  // updates.\n  function updateDisplayInner(cm, changes, visible, forced) {\n    var display = cm.display, doc = cm.doc;\n    if (!display.wrapper.clientWidth) {\n      display.showingFrom = display.showingTo = doc.first;\n      display.viewOffset = 0;\n      return;\n    }\n\n    // Bail out if the visible area is already rendered and nothing changed.\n    if (!forced && changes.length == 0 &&\n        visible.from > display.showingFrom && visible.to < display.showingTo)\n      return;\n\n    if (maybeUpdateLineNumberWidth(cm))\n      changes = [{from: doc.first, to: doc.first + doc.size}];\n    var gutterW = display.sizer.style.marginLeft = display.gutters.offsetWidth + \"px\";\n    display.scrollbarH.style.left = cm.options.fixedGutter ? gutterW : \"0\";\n\n    // Used to determine which lines need their line numbers updated\n    var positionsChangedFrom = Infinity;\n    if (cm.options.lineNumbers)\n      for (var i = 0; i < changes.length; ++i)\n        if (changes[i].diff && changes[i].from < positionsChangedFrom) { positionsChangedFrom = changes[i].from; }\n\n    var end = doc.first + doc.size;\n    var from = Math.max(visible.from - cm.options.viewportMargin, doc.first);\n    var to = Math.min(end, visible.to + cm.options.viewportMargin);\n    if (display.showingFrom < from && from - display.showingFrom < 20) from = Math.max(doc.first, display.showingFrom);\n    if (display.showingTo > to && display.showingTo - to < 20) to = Math.min(end, display.showingTo);\n    if (sawCollapsedSpans) {\n      from = lineNo(visualLine(doc, getLine(doc, from)));\n      while (to < end && lineIsHidden(doc, getLine(doc, to))) ++to;\n    }\n\n    // Create a range of theoretically intact lines, and punch holes\n    // in that using the change info.\n    var intact = [{from: Math.max(display.showingFrom, doc.first),\n                   to: Math.min(display.showingTo, end)}];\n    if (intact[0].from >= intact[0].to) intact = [];\n    else intact = computeIntact(intact, changes);\n    // When merged lines are present, we might have to reduce the\n    // intact ranges because changes in continued fragments of the\n    // intact lines do require the lines to be redrawn.\n    if (sawCollapsedSpans)\n      for (var i = 0; i < intact.length; ++i) {\n        var range = intact[i], merged;\n        while (merged = collapsedSpanAtEnd(getLine(doc, range.to - 1))) {\n          var newTo = merged.find().from.line;\n          if (newTo > range.from) range.to = newTo;\n          else { intact.splice(i--, 1); break; }\n        }\n      }\n\n    // Clip off the parts that won't be visible\n    var intactLines = 0;\n    for (var i = 0; i < intact.length; ++i) {\n      var range = intact[i];\n      if (range.from < from) range.from = from;\n      if (range.to > to) range.to = to;\n      if (range.from >= range.to) intact.splice(i--, 1);\n      else intactLines += range.to - range.from;\n    }\n    if (!forced && intactLines == to - from && from == display.showingFrom && to == display.showingTo) {\n      updateViewOffset(cm);\n      return;\n    }\n    intact.sort(function(a, b) {return a.from - b.from;});\n\n    // Avoid crashing on IE's \"unspecified error\" when in iframes\n    try {\n      var focused = document.activeElement;\n    } catch(e) {}\n    if (intactLines < (to - from) * .7) display.lineDiv.style.display = \"none\";\n    patchDisplay(cm, from, to, intact, positionsChangedFrom);\n    display.lineDiv.style.display = \"\";\n    if (focused && document.activeElement != focused && focused.offsetHeight) focused.focus();\n\n    var different = from != display.showingFrom || to != display.showingTo ||\n      display.lastSizeC != display.wrapper.clientHeight;\n    // This is just a bogus formula that detects when the editor is\n    // resized or the font size changes.\n    if (different) {\n      display.lastSizeC = display.wrapper.clientHeight;\n      startWorker(cm, 400);\n    }\n    display.showingFrom = from; display.showingTo = to;\n\n    updateHeightsInViewport(cm);\n    updateViewOffset(cm);\n\n    return true;\n  }\n\n  function updateHeightsInViewport(cm) {\n    var display = cm.display;\n    var prevBottom = display.lineDiv.offsetTop;\n    for (var node = display.lineDiv.firstChild, height; node; node = node.nextSibling) if (node.lineObj) {\n      if (ie_lt8) {\n        var bot = node.offsetTop + node.offsetHeight;\n        height = bot - prevBottom;\n        prevBottom = bot;\n      } else {\n        var box = getRect(node);\n        height = box.bottom - box.top;\n      }\n      var diff = node.lineObj.height - height;\n      if (height < 2) height = textHeight(display);\n      if (diff > .001 || diff < -.001) {\n        updateLineHeight(node.lineObj, height);\n        var widgets = node.lineObj.widgets;\n        if (widgets) for (var i = 0; i < widgets.length; ++i)\n          widgets[i].height = widgets[i].node.offsetHeight;\n      }\n    }\n  }\n\n  function updateViewOffset(cm) {\n    var off = cm.display.viewOffset = heightAtLine(cm, getLine(cm.doc, cm.display.showingFrom));\n    // Position the mover div to align with the current virtual scroll position\n    cm.display.mover.style.top = off + \"px\";\n  }\n\n  function computeIntact(intact, changes) {\n    for (var i = 0, l = changes.length || 0; i < l; ++i) {\n      var change = changes[i], intact2 = [], diff = change.diff || 0;\n      for (var j = 0, l2 = intact.length; j < l2; ++j) {\n        var range = intact[j];\n        if (change.to <= range.from && change.diff) {\n          intact2.push({from: range.from + diff, to: range.to + diff});\n        } else if (change.to <= range.from || change.from >= range.to) {\n          intact2.push(range);\n        } else {\n          if (change.from > range.from)\n            intact2.push({from: range.from, to: change.from});\n          if (change.to < range.to)\n            intact2.push({from: change.to + diff, to: range.to + diff});\n        }\n      }\n      intact = intact2;\n    }\n    return intact;\n  }\n\n  function getDimensions(cm) {\n    var d = cm.display, left = {}, width = {};\n    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n      left[cm.options.gutters[i]] = n.offsetLeft;\n      width[cm.options.gutters[i]] = n.offsetWidth;\n    }\n    return {fixedPos: compensateForHScroll(d),\n            gutterTotalWidth: d.gutters.offsetWidth,\n            gutterLeft: left,\n            gutterWidth: width,\n            wrapperWidth: d.wrapper.clientWidth};\n  }\n\n  function patchDisplay(cm, from, to, intact, updateNumbersFrom) {\n    var dims = getDimensions(cm);\n    var display = cm.display, lineNumbers = cm.options.lineNumbers;\n    if (!intact.length && (!webkit || !cm.display.currentWheelTarget))\n      removeChildren(display.lineDiv);\n    var container = display.lineDiv, cur = container.firstChild;\n\n    function rm(node) {\n      var next = node.nextSibling;\n      if (webkit && mac && cm.display.currentWheelTarget == node) {\n        node.style.display = \"none\";\n        node.lineObj = null;\n      } else {\n        node.parentNode.removeChild(node);\n      }\n      return next;\n    }\n\n    var nextIntact = intact.shift(), lineN = from;\n    cm.doc.iter(from, to, function(line) {\n      if (nextIntact && nextIntact.to == lineN) nextIntact = intact.shift();\n      if (lineIsHidden(cm.doc, line)) {\n        if (line.height != 0) updateLineHeight(line, 0);\n        if (line.widgets && cur && cur.previousSibling) for (var i = 0; i < line.widgets.length; ++i) {\n          var w = line.widgets[i];\n          if (w.showIfHidden) {\n            var prev = cur.previousSibling;\n            if (/pre/i.test(prev.nodeName)) {\n              var wrap = elt(\"div\", null, null, \"position: relative\");\n              prev.parentNode.replaceChild(wrap, prev);\n              wrap.appendChild(prev);\n              prev = wrap;\n            }\n            var wnode = prev.appendChild(elt(\"div\", [w.node], \"CodeMirror-linewidget\"));\n            if (!w.handleMouseEvents) wnode.ignoreEvents = true;\n            positionLineWidget(w, wnode, prev, dims);\n          }\n        }\n      } else if (nextIntact && nextIntact.from <= lineN && nextIntact.to > lineN) {\n        // This line is intact. Skip to the actual node. Update its\n        // line number if needed.\n        while (cur.lineObj != line) cur = rm(cur);\n        if (lineNumbers && updateNumbersFrom <= lineN && cur.lineNumber)\n          setTextContent(cur.lineNumber, lineNumberFor(cm.options, lineN));\n        cur = cur.nextSibling;\n      } else {\n        // For lines with widgets, make an attempt to find and reuse\n        // the existing element, so that widgets aren't needlessly\n        // removed and re-inserted into the dom\n        if (line.widgets) for (var j = 0, search = cur, reuse; search && j < 20; ++j, search = search.nextSibling)\n          if (search.lineObj == line && /div/i.test(search.nodeName)) { reuse = search; break; }\n        // This line needs to be generated.\n        var lineNode = buildLineElement(cm, line, lineN, dims, reuse);\n        if (lineNode != reuse) {\n          container.insertBefore(lineNode, cur);\n        } else {\n          while (cur != reuse) cur = rm(cur);\n          cur = cur.nextSibling;\n        }\n\n        lineNode.lineObj = line;\n      }\n      ++lineN;\n    });\n    while (cur) cur = rm(cur);\n  }\n\n  function buildLineElement(cm, line, lineNo, dims, reuse) {\n    var built = buildLineContent(cm, line), lineElement = built.pre;\n    var markers = line.gutterMarkers, display = cm.display, wrap;\n\n    var bgClass = built.bgClass ? built.bgClass + \" \" + (line.bgClass || \"\") : line.bgClass;\n    if (!cm.options.lineNumbers && !markers && !bgClass && !line.wrapClass && !line.widgets)\n      return lineElement;\n\n    // Lines with gutter elements, widgets or a background class need\n    // to be wrapped again, and have the extra elements added to the\n    // wrapper div\n\n    if (reuse) {\n      reuse.alignable = null;\n      var isOk = true, widgetsSeen = 0, insertBefore = null;\n      for (var n = reuse.firstChild, next; n; n = next) {\n        next = n.nextSibling;\n        if (!/\\bCodeMirror-linewidget\\b/.test(n.className)) {\n          reuse.removeChild(n);\n        } else {\n          for (var i = 0; i < line.widgets.length; ++i) {\n            var widget = line.widgets[i];\n            if (widget.node == n.firstChild) {\n              if (!widget.above && !insertBefore) insertBefore = n;\n              positionLineWidget(widget, n, reuse, dims);\n              ++widgetsSeen;\n              break;\n            }\n          }\n          if (i == line.widgets.length) { isOk = false; break; }\n        }\n      }\n      reuse.insertBefore(lineElement, insertBefore);\n      if (isOk && widgetsSeen == line.widgets.length) {\n        wrap = reuse;\n        reuse.className = line.wrapClass || \"\";\n      }\n    }\n    if (!wrap) {\n      wrap = elt(\"div\", null, line.wrapClass, \"position: relative\");\n      wrap.appendChild(lineElement);\n    }\n    // Kludge to make sure the styled element lies behind the selection (by z-index)\n    if (bgClass)\n      wrap.insertBefore(elt(\"div\", null, bgClass + \" CodeMirror-linebackground\"), wrap.firstChild);\n    if (cm.options.lineNumbers || markers) {\n      var gutterWrap = wrap.insertBefore(elt(\"div\", null, null, \"position: absolute; left: \" +\n                                             (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"),\n                                         wrap.firstChild);\n      if (cm.options.fixedGutter) (wrap.alignable || (wrap.alignable = [])).push(gutterWrap);\n      if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n        wrap.lineNumber = gutterWrap.appendChild(\n          elt(\"div\", lineNumberFor(cm.options, lineNo),\n              \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n              \"left: \" + dims.gutterLeft[\"CodeMirror-linenumbers\"] + \"px; width: \"\n              + display.lineNumInnerWidth + \"px\"));\n      if (markers)\n        for (var k = 0; k < cm.options.gutters.length; ++k) {\n          var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];\n          if (found)\n            gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\", \"left: \" +\n                                       dims.gutterLeft[id] + \"px; width: \" + dims.gutterWidth[id] + \"px\"));\n        }\n    }\n    if (ie_lt8) wrap.style.zIndex = 2;\n    if (line.widgets && wrap != reuse) for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n      var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\");\n      if (!widget.handleMouseEvents) node.ignoreEvents = true;\n      positionLineWidget(widget, node, wrap, dims);\n      if (widget.above)\n        wrap.insertBefore(node, cm.options.lineNumbers && line.height != 0 ? gutterWrap : lineElement);\n      else\n        wrap.appendChild(node);\n      signalLater(widget, \"redraw\");\n    }\n    return wrap;\n  }\n\n  function positionLineWidget(widget, node, wrap, dims) {\n    if (widget.noHScroll) {\n      (wrap.alignable || (wrap.alignable = [])).push(node);\n      var width = dims.wrapperWidth;\n      node.style.left = dims.fixedPos + \"px\";\n      if (!widget.coverGutter) {\n        width -= dims.gutterTotalWidth;\n        node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n      }\n      node.style.width = width + \"px\";\n    }\n    if (widget.coverGutter) {\n      node.style.zIndex = 5;\n      node.style.position = \"relative\";\n      if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + \"px\";\n    }\n  }\n\n  // SELECTION / CURSOR\n\n  function updateSelection(cm) {\n    var display = cm.display;\n    var collapsed = posEq(cm.doc.sel.from, cm.doc.sel.to);\n    if (collapsed || cm.options.showCursorWhenSelecting)\n      updateSelectionCursor(cm);\n    else\n      display.cursor.style.display = display.otherCursor.style.display = \"none\";\n    if (!collapsed)\n      updateSelectionRange(cm);\n    else\n      display.selectionDiv.style.display = \"none\";\n\n    // Move the hidden textarea near the cursor to prevent scrolling artifacts\n    if (cm.options.moveInputWithCursor) {\n      var headPos = cursorCoords(cm, cm.doc.sel.head, \"div\");\n      var wrapOff = getRect(display.wrapper), lineOff = getRect(display.lineDiv);\n      display.inputDiv.style.top = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n                                                        headPos.top + lineOff.top - wrapOff.top)) + \"px\";\n      display.inputDiv.style.left = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n                                                         headPos.left + lineOff.left - wrapOff.left)) + \"px\";\n    }\n  }\n\n  // No selection, plain cursor\n  function updateSelectionCursor(cm) {\n    var display = cm.display, pos = cursorCoords(cm, cm.doc.sel.head, \"div\");\n    display.cursor.style.left = pos.left + \"px\";\n    display.cursor.style.top = pos.top + \"px\";\n    display.cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n    display.cursor.style.display = \"\";\n\n    if (pos.other) {\n      display.otherCursor.style.display = \"\";\n      display.otherCursor.style.left = pos.other.left + \"px\";\n      display.otherCursor.style.top = pos.other.top + \"px\";\n      display.otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n    } else { display.otherCursor.style.display = \"none\"; }\n  }\n\n  // Highlight selection\n  function updateSelectionRange(cm) {\n    var display = cm.display, doc = cm.doc, sel = cm.doc.sel;\n    var fragment = document.createDocumentFragment();\n    var clientWidth = display.lineSpace.offsetWidth, pl = paddingLeft(cm.display);\n\n    function add(left, top, width, bottom) {\n      if (top < 0) top = 0;\n      fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", \"position: absolute; left: \" + left +\n                               \"px; top: \" + top + \"px; width: \" + (width == null ? clientWidth - left : width) +\n                               \"px; height: \" + (bottom - top) + \"px\"));\n    }\n\n    function drawForLine(line, fromArg, toArg) {\n      var lineObj = getLine(doc, line);\n      var lineLen = lineObj.text.length;\n      var start, end;\n      function coords(ch, bias) {\n        return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias);\n      }\n\n      iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {\n        var leftPos = coords(from, \"left\"), rightPos, left, right;\n        if (from == to) {\n          rightPos = leftPos;\n          left = right = leftPos.left;\n        } else {\n          rightPos = coords(to - 1, \"right\");\n          if (dir == \"rtl\") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }\n          left = leftPos.left;\n          right = rightPos.right;\n        }\n        if (fromArg == null && from == 0) left = pl;\n        if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part\n          add(left, leftPos.top, null, leftPos.bottom);\n          left = pl;\n          if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);\n        }\n        if (toArg == null && to == lineLen) right = clientWidth;\n        if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)\n          start = leftPos;\n        if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)\n          end = rightPos;\n        if (left < pl + 1) left = pl;\n        add(left, rightPos.top, right - left, rightPos.bottom);\n      });\n      return {start: start, end: end};\n    }\n\n    if (sel.from.line == sel.to.line) {\n      drawForLine(sel.from.line, sel.from.ch, sel.to.ch);\n    } else {\n      var fromLine = getLine(doc, sel.from.line), toLine = getLine(doc, sel.to.line);\n      var singleVLine = visualLine(doc, fromLine) == visualLine(doc, toLine);\n      var leftEnd = drawForLine(sel.from.line, sel.from.ch, singleVLine ? fromLine.text.length : null).end;\n      var rightStart = drawForLine(sel.to.line, singleVLine ? 0 : null, sel.to.ch).start;\n      if (singleVLine) {\n        if (leftEnd.top < rightStart.top - 2) {\n          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n          add(pl, rightStart.top, rightStart.left, rightStart.bottom);\n        } else {\n          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n        }\n      }\n      if (leftEnd.bottom < rightStart.top)\n        add(pl, leftEnd.bottom, null, rightStart.top);\n    }\n\n    removeChildrenAndAdd(display.selectionDiv, fragment);\n    display.selectionDiv.style.display = \"\";\n  }\n\n  // Cursor-blinking\n  function restartBlink(cm) {\n    if (!cm.state.focused) return;\n    var display = cm.display;\n    clearInterval(display.blinker);\n    var on = true;\n    display.cursor.style.visibility = display.otherCursor.style.visibility = \"\";\n    if (cm.options.cursorBlinkRate > 0)\n      display.blinker = setInterval(function() {\n        display.cursor.style.visibility = display.otherCursor.style.visibility = (on = !on) ? \"\" : \"hidden\";\n      }, cm.options.cursorBlinkRate);\n  }\n\n  // HIGHLIGHT WORKER\n\n  function startWorker(cm, time) {\n    if (cm.doc.mode.startState && cm.doc.frontier < cm.display.showingTo)\n      cm.state.highlight.set(time, bind(highlightWorker, cm));\n  }\n\n  function highlightWorker(cm) {\n    var doc = cm.doc;\n    if (doc.frontier < doc.first) doc.frontier = doc.first;\n    if (doc.frontier >= cm.display.showingTo) return;\n    var end = +new Date + cm.options.workTime;\n    var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));\n    var changed = [], prevChange;\n    doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.showingTo + 500), function(line) {\n      if (doc.frontier >= cm.display.showingFrom) { // Visible\n        var oldStyles = line.styles;\n        line.styles = highlightLine(cm, line, state, true);\n        var ischange = !oldStyles || oldStyles.length != line.styles.length;\n        for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];\n        if (ischange) {\n          if (prevChange && prevChange.end == doc.frontier) prevChange.end++;\n          else changed.push(prevChange = {start: doc.frontier, end: doc.frontier + 1});\n        }\n        line.stateAfter = copyState(doc.mode, state);\n      } else {\n        processLine(cm, line.text, state);\n        line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;\n      }\n      ++doc.frontier;\n      if (+new Date > end) {\n        startWorker(cm, cm.options.workDelay);\n        return true;\n      }\n    });\n    if (changed.length)\n      operation(cm, function() {\n        for (var i = 0; i < changed.length; ++i)\n          regChange(this, changed[i].start, changed[i].end);\n      })();\n  }\n\n  // Finds the line to start with when starting a parse. Tries to\n  // find a line with a stateAfter, so that it can start with a\n  // valid state. If that fails, it returns the line with the\n  // smallest indentation, which tends to need the least context to\n  // parse correctly.\n  function findStartLine(cm, n, precise) {\n    var minindent, minline, doc = cm.doc;\n    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n    for (var search = n; search > lim; --search) {\n      if (search <= doc.first) return doc.first;\n      var line = getLine(doc, search - 1);\n      if (line.stateAfter && (!precise || search <= doc.frontier)) return search;\n      var indented = countColumn(line.text, null, cm.options.tabSize);\n      if (minline == null || minindent > indented) {\n        minline = search - 1;\n        minindent = indented;\n      }\n    }\n    return minline;\n  }\n\n  function getStateBefore(cm, n, precise) {\n    var doc = cm.doc, display = cm.display;\n    if (!doc.mode.startState) return true;\n    var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;\n    if (!state) state = startState(doc.mode);\n    else state = copyState(doc.mode, state);\n    doc.iter(pos, n, function(line) {\n      processLine(cm, line.text, state);\n      var save = pos == n - 1 || pos % 5 == 0 || pos >= display.showingFrom && pos < display.showingTo;\n      line.stateAfter = save ? copyState(doc.mode, state) : null;\n      ++pos;\n    });\n    if (precise) doc.frontier = pos;\n    return state;\n  }\n\n  // POSITION MEASUREMENT\n\n  function paddingTop(display) {return display.lineSpace.offsetTop;}\n  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}\n  function paddingLeft(display) {\n    var e = removeChildrenAndAdd(display.measure, elt(\"pre\", null, null, \"text-align: left\")).appendChild(elt(\"span\", \"x\"));\n    return e.offsetLeft;\n  }\n\n  function measureChar(cm, line, ch, data, bias) {\n    var dir = -1;\n    data = data || measureLine(cm, line);\n    if (data.crude) {\n      var left = data.left + ch * data.width;\n      return {left: left, right: left + data.width, top: data.top, bottom: data.bottom};\n    }\n\n    for (var pos = ch;; pos += dir) {\n      var r = data[pos];\n      if (r) break;\n      if (dir < 0 && pos == 0) dir = 1;\n    }\n    bias = pos > ch ? \"left\" : pos < ch ? \"right\" : bias;\n    if (bias == \"left\" && r.leftSide) r = r.leftSide;\n    else if (bias == \"right\" && r.rightSide) r = r.rightSide;\n    return {left: pos < ch ? r.right : r.left,\n            right: pos > ch ? r.left : r.right,\n            top: r.top,\n            bottom: r.bottom};\n  }\n\n  function findCachedMeasurement(cm, line) {\n    var cache = cm.display.measureLineCache;\n    for (var i = 0; i < cache.length; ++i) {\n      var memo = cache[i];\n      if (memo.text == line.text && memo.markedSpans == line.markedSpans &&\n          cm.display.scroller.clientWidth == memo.width &&\n          memo.classes == line.textClass + \"|\" + line.wrapClass)\n        return memo;\n    }\n  }\n\n  function clearCachedMeasurement(cm, line) {\n    var exists = findCachedMeasurement(cm, line);\n    if (exists) exists.text = exists.measure = exists.markedSpans = null;\n  }\n\n  function measureLine(cm, line) {\n    // First look in the cache\n    var cached = findCachedMeasurement(cm, line);\n    if (cached) return cached.measure;\n\n    // Failing that, recompute and store result in cache\n    var measure = measureLineInner(cm, line);\n    var cache = cm.display.measureLineCache;\n    var memo = {text: line.text, width: cm.display.scroller.clientWidth,\n                markedSpans: line.markedSpans, measure: measure,\n                classes: line.textClass + \"|\" + line.wrapClass};\n    if (cache.length == 16) cache[++cm.display.measureLineCachePos % 16] = memo;\n    else cache.push(memo);\n    return measure;\n  }\n\n  function measureLineInner(cm, line) {\n    if (!cm.options.lineWrapping && line.text.length >= cm.options.crudeMeasuringFrom)\n      return crudelyMeasureLine(cm, line);\n\n    var display = cm.display, measure = emptyArray(line.text.length);\n    var pre = buildLineContent(cm, line, measure, true).pre;\n\n    // IE does not cache element positions of inline elements between\n    // calls to getBoundingClientRect. This makes the loop below,\n    // which gathers the positions of all the characters on the line,\n    // do an amount of layout work quadratic to the number of\n    // characters. When line wrapping is off, we try to improve things\n    // by first subdividing the line into a bunch of inline blocks, so\n    // that IE can reuse most of the layout information from caches\n    // for those blocks. This does interfere with line wrapping, so it\n    // doesn't work when wrapping is on, but in that case the\n    // situation is slightly better, since IE does cache line-wrapping\n    // information and only recomputes per-line.\n    if (ie && !ie_lt8 && !cm.options.lineWrapping && pre.childNodes.length > 100) {\n      var fragment = document.createDocumentFragment();\n      var chunk = 10, n = pre.childNodes.length;\n      for (var i = 0, chunks = Math.ceil(n / chunk); i < chunks; ++i) {\n        var wrap = elt(\"div\", null, null, \"display: inline-block\");\n        for (var j = 0; j < chunk && n; ++j) {\n          wrap.appendChild(pre.firstChild);\n          --n;\n        }\n        fragment.appendChild(wrap);\n      }\n      pre.appendChild(fragment);\n    }\n\n    removeChildrenAndAdd(display.measure, pre);\n\n    var outer = getRect(display.lineDiv);\n    var vranges = [], data = emptyArray(line.text.length), maxBot = pre.offsetHeight;\n    // Work around an IE7/8 bug where it will sometimes have randomly\n    // replaced our pre with a clone at this point.\n    if (ie_lt9 && display.measure.first != pre)\n      removeChildrenAndAdd(display.measure, pre);\n\n    function measureRect(rect) {\n      var top = rect.top - outer.top, bot = rect.bottom - outer.top;\n      if (bot > maxBot) bot = maxBot;\n      if (top < 0) top = 0;\n      for (var i = vranges.length - 2; i >= 0; i -= 2) {\n        var rtop = vranges[i], rbot = vranges[i+1];\n        if (rtop > bot || rbot < top) continue;\n        if (rtop <= top && rbot >= bot ||\n            top <= rtop && bot >= rbot ||\n            Math.min(bot, rbot) - Math.max(top, rtop) >= (bot - top) >> 1) {\n          vranges[i] = Math.min(top, rtop);\n          vranges[i+1] = Math.max(bot, rbot);\n          break;\n        }\n      }\n      if (i < 0) { i = vranges.length; vranges.push(top, bot); }\n      return {left: rect.left - outer.left,\n              right: rect.right - outer.left,\n              top: i, bottom: null};\n    }\n    function finishRect(rect) {\n      rect.bottom = vranges[rect.top+1];\n      rect.top = vranges[rect.top];\n    }\n\n    for (var i = 0, cur; i < measure.length; ++i) if (cur = measure[i]) {\n      var node = cur, rect = null;\n      // A widget might wrap, needs special care\n      if (/\\bCodeMirror-widget\\b/.test(cur.className) && cur.getClientRects) {\n        if (cur.firstChild.nodeType == 1) node = cur.firstChild;\n        var rects = node.getClientRects();\n        if (rects.length > 1) {\n          rect = data[i] = measureRect(rects[0]);\n          rect.rightSide = measureRect(rects[rects.length - 1]);\n        }\n      }\n      if (!rect) rect = data[i] = measureRect(getRect(node));\n      if (cur.measureRight) rect.right = getRect(cur.measureRight).left;\n      if (cur.leftSide) rect.leftSide = measureRect(getRect(cur.leftSide));\n    }\n    removeChildren(cm.display.measure);\n    for (var i = 0, cur; i < data.length; ++i) if (cur = data[i]) {\n      finishRect(cur);\n      if (cur.leftSide) finishRect(cur.leftSide);\n      if (cur.rightSide) finishRect(cur.rightSide);\n    }\n    return data;\n  }\n\n  function crudelyMeasureLine(cm, line) {\n    var copy = new Line(line.text.slice(0, 100), null);\n    if (line.textClass) copy.textClass = line.textClass;\n    var measure = measureLineInner(cm, copy);\n    var left = measureChar(cm, copy, 0, measure, \"left\");\n    var right = measureChar(cm, copy, 99, measure, \"right\");\n    return {crude: true, top: left.top, left: left.left, bottom: left.bottom, width: (right.right - left.left) / 100};\n  }\n\n  function measureLineWidth(cm, line) {\n    var hasBadSpan = false;\n    if (line.markedSpans) for (var i = 0; i < line.markedSpans; ++i) {\n      var sp = line.markedSpans[i];\n      if (sp.collapsed && (sp.to == null || sp.to == line.text.length)) hasBadSpan = true;\n    }\n    var cached = !hasBadSpan && findCachedMeasurement(cm, line);\n    if (cached || line.text.length >= cm.options.crudeMeasuringFrom)\n      return measureChar(cm, line, line.text.length, cached && cached.measure, \"right\").right;\n\n    var pre = buildLineContent(cm, line, null, true).pre;\n    var end = pre.appendChild(zeroWidthElement(cm.display.measure));\n    removeChildrenAndAdd(cm.display.measure, pre);\n    return getRect(end).right - getRect(cm.display.lineDiv).left;\n  }\n\n  function clearCaches(cm) {\n    cm.display.measureLineCache.length = cm.display.measureLineCachePos = 0;\n    cm.display.cachedCharWidth = cm.display.cachedTextHeight = null;\n    if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;\n    cm.display.lineNumChars = null;\n  }\n\n  function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }\n  function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }\n\n  // Context is one of \"line\", \"div\" (display.lineDiv), \"local\"/null (editor), or \"page\"\n  function intoCoordSystem(cm, lineObj, rect, context) {\n    if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {\n      var size = widgetHeight(lineObj.widgets[i]);\n      rect.top += size; rect.bottom += size;\n    }\n    if (context == \"line\") return rect;\n    if (!context) context = \"local\";\n    var yOff = heightAtLine(cm, lineObj);\n    if (context == \"local\") yOff += paddingTop(cm.display);\n    else yOff -= cm.display.viewOffset;\n    if (context == \"page\" || context == \"window\") {\n      var lOff = getRect(cm.display.lineSpace);\n      yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n      var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n      rect.left += xOff; rect.right += xOff;\n    }\n    rect.top += yOff; rect.bottom += yOff;\n    return rect;\n  }\n\n  // Context may be \"window\", \"page\", \"div\", or \"local\"/null\n  // Result is in \"div\" coords\n  function fromCoordSystem(cm, coords, context) {\n    if (context == \"div\") return coords;\n    var left = coords.left, top = coords.top;\n    // First move into \"page\" coordinate system\n    if (context == \"page\") {\n      left -= pageScrollX();\n      top -= pageScrollY();\n    } else if (context == \"local\" || !context) {\n      var localBox = getRect(cm.display.sizer);\n      left += localBox.left;\n      top += localBox.top;\n    }\n\n    var lineSpaceBox = getRect(cm.display.lineSpace);\n    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};\n  }\n\n  function charCoords(cm, pos, context, lineObj, bias) {\n    if (!lineObj) lineObj = getLine(cm.doc, pos.line);\n    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, null, bias), context);\n  }\n\n  function cursorCoords(cm, pos, context, lineObj, measurement) {\n    lineObj = lineObj || getLine(cm.doc, pos.line);\n    if (!measurement) measurement = measureLine(cm, lineObj);\n    function get(ch, right) {\n      var m = measureChar(cm, lineObj, ch, measurement, right ? \"right\" : \"left\");\n      if (right) m.left = m.right; else m.right = m.left;\n      return intoCoordSystem(cm, lineObj, m, context);\n    }\n    function getBidi(ch, partPos) {\n      var part = order[partPos], right = part.level % 2;\n      if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {\n        part = order[--partPos];\n        ch = bidiRight(part) - (part.level % 2 ? 0 : 1);\n        right = true;\n      } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {\n        part = order[++partPos];\n        ch = bidiLeft(part) - part.level % 2;\n        right = false;\n      }\n      if (right && ch == part.to && ch > part.from) return get(ch - 1);\n      return get(ch, right);\n    }\n    var order = getOrder(lineObj), ch = pos.ch;\n    if (!order) return get(ch);\n    var partPos = getBidiPartAt(order, ch);\n    var val = getBidi(ch, partPos);\n    if (bidiOther != null) val.other = getBidi(ch, bidiOther);\n    return val;\n  }\n\n  function PosWithInfo(line, ch, outside, xRel) {\n    var pos = new Pos(line, ch);\n    pos.xRel = xRel;\n    if (outside) pos.outside = true;\n    return pos;\n  }\n\n  // Coords must be lineSpace-local\n  function coordsChar(cm, x, y) {\n    var doc = cm.doc;\n    y += cm.display.viewOffset;\n    if (y < 0) return PosWithInfo(doc.first, 0, true, -1);\n    var lineNo = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n    if (lineNo > last)\n      return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);\n    if (x < 0) x = 0;\n\n    for (;;) {\n      var lineObj = getLine(doc, lineNo);\n      var found = coordsCharInner(cm, lineObj, lineNo, x, y);\n      var merged = collapsedSpanAtEnd(lineObj);\n      var mergedPos = merged && merged.find();\n      if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))\n        lineNo = mergedPos.to.line;\n      else\n        return found;\n    }\n  }\n\n  function coordsCharInner(cm, lineObj, lineNo, x, y) {\n    var innerOff = y - heightAtLine(cm, lineObj);\n    var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;\n    var measurement = measureLine(cm, lineObj);\n\n    function getX(ch) {\n      var sp = cursorCoords(cm, Pos(lineNo, ch), \"line\",\n                            lineObj, measurement);\n      wrongLine = true;\n      if (innerOff > sp.bottom) return sp.left - adjust;\n      else if (innerOff < sp.top) return sp.left + adjust;\n      else wrongLine = false;\n      return sp.left;\n    }\n\n    var bidi = getOrder(lineObj), dist = lineObj.text.length;\n    var from = lineLeft(lineObj), to = lineRight(lineObj);\n    var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;\n\n    if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);\n    // Do a binary search between these bounds.\n    for (;;) {\n      if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {\n        var ch = x < fromX || x - fromX <= toX - x ? from : to;\n        var xDiff = x - (ch == from ? fromX : toX);\n        while (isExtendingChar.test(lineObj.text.charAt(ch))) ++ch;\n        var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside,\n                              xDiff < 0 ? -1 : xDiff ? 1 : 0);\n        return pos;\n      }\n      var step = Math.ceil(dist / 2), middle = from + step;\n      if (bidi) {\n        middle = from;\n        for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);\n      }\n      var middleX = getX(middle);\n      if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}\n      else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}\n    }\n  }\n\n  var measureText;\n  function textHeight(display) {\n    if (display.cachedTextHeight != null) return display.cachedTextHeight;\n    if (measureText == null) {\n      measureText = elt(\"pre\");\n      // Measure a bunch of lines, for browsers that compute\n      // fractional heights.\n      for (var i = 0; i < 49; ++i) {\n        measureText.appendChild(document.createTextNode(\"x\"));\n        measureText.appendChild(elt(\"br\"));\n      }\n      measureText.appendChild(document.createTextNode(\"x\"));\n    }\n    removeChildrenAndAdd(display.measure, measureText);\n    var height = measureText.offsetHeight / 50;\n    if (height > 3) display.cachedTextHeight = height;\n    removeChildren(display.measure);\n    return height || 1;\n  }\n\n  function charWidth(display) {\n    if (display.cachedCharWidth != null) return display.cachedCharWidth;\n    var anchor = elt(\"span\", \"x\");\n    var pre = elt(\"pre\", [anchor]);\n    removeChildrenAndAdd(display.measure, pre);\n    var width = anchor.offsetWidth;\n    if (width > 2) display.cachedCharWidth = width;\n    return width || 10;\n  }\n\n  // OPERATIONS\n\n  // Operations are used to wrap changes in such a way that each\n  // change won't have to update the cursor and display (which would\n  // be awkward, slow, and error-prone), but instead updates are\n  // batched and then all combined and executed at once.\n\n  var nextOpId = 0;\n  function startOperation(cm) {\n    cm.curOp = {\n      // An array of ranges of lines that have to be updated. See\n      // updateDisplay.\n      changes: [],\n      forceUpdate: false,\n      updateInput: null,\n      userSelChange: null,\n      textChanged: null,\n      selectionChanged: false,\n      cursorActivity: false,\n      updateMaxLine: false,\n      updateScrollPos: false,\n      id: ++nextOpId\n    };\n    if (!delayedCallbackDepth++) delayedCallbacks = [];\n  }\n\n  function endOperation(cm) {\n    var op = cm.curOp, doc = cm.doc, display = cm.display;\n    cm.curOp = null;\n\n    if (op.updateMaxLine) computeMaxLength(cm);\n    if (display.maxLineChanged && !cm.options.lineWrapping && display.maxLine) {\n      var width = measureLineWidth(cm, display.maxLine);\n      display.sizer.style.minWidth = Math.max(0, width + 3 + scrollerCutOff) + \"px\";\n      display.maxLineChanged = false;\n      var maxScrollLeft = Math.max(0, display.sizer.offsetLeft + display.sizer.offsetWidth - display.scroller.clientWidth);\n      if (maxScrollLeft < doc.scrollLeft && !op.updateScrollPos)\n        setScrollLeft(cm, Math.min(display.scroller.scrollLeft, maxScrollLeft), true);\n    }\n    var newScrollPos, updated;\n    if (op.updateScrollPos) {\n      newScrollPos = op.updateScrollPos;\n    } else if (op.selectionChanged && display.scroller.clientHeight) { // don't rescroll if not visible\n      var coords = cursorCoords(cm, doc.sel.head);\n      newScrollPos = calculateScrollPos(cm, coords.left, coords.top, coords.left, coords.bottom);\n    }\n    if (op.changes.length || op.forceUpdate || newScrollPos && newScrollPos.scrollTop != null) {\n      updated = updateDisplay(cm, op.changes, newScrollPos && newScrollPos.scrollTop, op.forceUpdate);\n      if (cm.display.scroller.offsetHeight) cm.doc.scrollTop = cm.display.scroller.scrollTop;\n    }\n    if (!updated && op.selectionChanged) updateSelection(cm);\n    if (op.updateScrollPos) {\n      var top = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, newScrollPos.scrollTop));\n      var left = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, newScrollPos.scrollLeft));\n      display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = top;\n      display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = left;\n      alignHorizontally(cm);\n      if (op.scrollToPos)\n        scrollPosIntoView(cm, clipPos(cm.doc, op.scrollToPos.from),\n                          clipPos(cm.doc, op.scrollToPos.to), op.scrollToPos.margin);\n    } else if (newScrollPos) {\n      scrollCursorIntoView(cm);\n    }\n    if (op.selectionChanged) restartBlink(cm);\n\n    if (cm.state.focused && op.updateInput)\n      resetInput(cm, op.userSelChange);\n\n    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n    if (hidden) for (var i = 0; i < hidden.length; ++i)\n      if (!hidden[i].lines.length) signal(hidden[i], \"hide\");\n    if (unhidden) for (var i = 0; i < unhidden.length; ++i)\n      if (unhidden[i].lines.length) signal(unhidden[i], \"unhide\");\n\n    var delayed;\n    if (!--delayedCallbackDepth) {\n      delayed = delayedCallbacks;\n      delayedCallbacks = null;\n    }\n    if (op.textChanged)\n      signal(cm, \"change\", cm, op.textChanged);\n    if (op.cursorActivity) signal(cm, \"cursorActivity\", cm);\n    if (delayed) for (var i = 0; i < delayed.length; ++i) delayed[i]();\n  }\n\n  // Wraps a function in an operation. Returns the wrapped function.\n  function operation(cm1, f) {\n    return function() {\n      var cm = cm1 || this, withOp = !cm.curOp;\n      if (withOp) startOperation(cm);\n      try { var result = f.apply(cm, arguments); }\n      finally { if (withOp) endOperation(cm); }\n      return result;\n    };\n  }\n  function docOperation(f) {\n    return function() {\n      var withOp = this.cm && !this.cm.curOp, result;\n      if (withOp) startOperation(this.cm);\n      try { result = f.apply(this, arguments); }\n      finally { if (withOp) endOperation(this.cm); }\n      return result;\n    };\n  }\n  function runInOp(cm, f) {\n    var withOp = !cm.curOp, result;\n    if (withOp) startOperation(cm);\n    try { result = f(); }\n    finally { if (withOp) endOperation(cm); }\n    return result;\n  }\n\n  function regChange(cm, from, to, lendiff) {\n    if (from == null) from = cm.doc.first;\n    if (to == null) to = cm.doc.first + cm.doc.size;\n    cm.curOp.changes.push({from: from, to: to, diff: lendiff});\n  }\n\n  // INPUT HANDLING\n\n  function slowPoll(cm) {\n    if (cm.display.pollingFast) return;\n    cm.display.poll.set(cm.options.pollInterval, function() {\n      readInput(cm);\n      if (cm.state.focused) slowPoll(cm);\n    });\n  }\n\n  function fastPoll(cm) {\n    var missed = false;\n    cm.display.pollingFast = true;\n    function p() {\n      var changed = readInput(cm);\n      if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);}\n      else {cm.display.pollingFast = false; slowPoll(cm);}\n    }\n    cm.display.poll.set(20, p);\n  }\n\n  // prevInput is a hack to work with IME. If we reset the textarea\n  // on every change, that breaks IME. So we look for changes\n  // compared to the previous content instead. (Modern browsers have\n  // events that indicate IME taking place, but these are not widely\n  // supported or compatible enough yet to rely on.)\n  function readInput(cm) {\n    var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc, sel = doc.sel;\n    if (!cm.state.focused || hasSelection(input) || isReadOnly(cm) || cm.state.disableInput) return false;\n    if (cm.state.pasteIncoming && cm.state.fakedLastChar) {\n      input.value = input.value.substring(0, input.value.length - 1);\n      cm.state.fakedLastChar = false;\n    }\n    var text = input.value;\n    if (text == prevInput && posEq(sel.from, sel.to)) return false;\n    if (ie && !ie_lt9 && cm.display.inputHasSelection === text) {\n      resetInput(cm, true);\n      return false;\n    }\n\n    var withOp = !cm.curOp;\n    if (withOp) startOperation(cm);\n    sel.shift = false;\n    var same = 0, l = Math.min(prevInput.length, text.length);\n    while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;\n    var from = sel.from, to = sel.to;\n    if (same < prevInput.length)\n      from = Pos(from.line, from.ch - (prevInput.length - same));\n    else if (cm.state.overwrite && posEq(from, to) && !cm.state.pasteIncoming)\n      to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + (text.length - same)));\n\n    var updateInput = cm.curOp.updateInput;\n    var changeEvent = {from: from, to: to, text: splitLines(text.slice(same)),\n                       origin: cm.state.pasteIncoming ? \"paste\" : \"+input\"};\n    makeChange(cm.doc, changeEvent, \"end\");\n    cm.curOp.updateInput = updateInput;\n    signalLater(cm, \"inputRead\", cm, changeEvent);\n\n    if (text.length > 1000 || text.indexOf(\"\\n\") > -1) input.value = cm.display.prevInput = \"\";\n    else cm.display.prevInput = text;\n    if (withOp) endOperation(cm);\n    cm.state.pasteIncoming = false;\n    return true;\n  }\n\n  function resetInput(cm, user) {\n    var minimal, selected, doc = cm.doc;\n    if (!posEq(doc.sel.from, doc.sel.to)) {\n      cm.display.prevInput = \"\";\n      minimal = hasCopyEvent &&\n        (doc.sel.to.line - doc.sel.from.line > 100 || (selected = cm.getSelection()).length > 1000);\n      var content = minimal ? \"-\" : selected || cm.getSelection();\n      cm.display.input.value = content;\n      if (cm.state.focused) selectInput(cm.display.input);\n      if (ie && !ie_lt9) cm.display.inputHasSelection = content;\n    } else if (user) {\n      cm.display.prevInput = cm.display.input.value = \"\";\n      if (ie && !ie_lt9) cm.display.inputHasSelection = null;\n    }\n    cm.display.inaccurateSelection = minimal;\n  }\n\n  function focusInput(cm) {\n    if (cm.options.readOnly != \"nocursor\" && (!mobile || document.activeElement != cm.display.input))\n      cm.display.input.focus();\n  }\n\n  function isReadOnly(cm) {\n    return cm.options.readOnly || cm.doc.cantEdit;\n  }\n\n  // EVENT HANDLERS\n\n  function registerEventHandlers(cm) {\n    var d = cm.display;\n    on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n    if (ie)\n      on(d.scroller, \"dblclick\", operation(cm, function(e) {\n        if (signalDOMEvent(cm, e)) return;\n        var pos = posFromMouse(cm, e);\n        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;\n        e_preventDefault(e);\n        var word = findWordAt(getLine(cm.doc, pos.line).text, pos);\n        extendSelection(cm.doc, word.from, word.to);\n      }));\n    else\n      on(d.scroller, \"dblclick\", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });\n    on(d.lineSpace, \"selectstart\", function(e) {\n      if (!eventInWidget(d, e)) e_preventDefault(e);\n    });\n    // Gecko browsers fire contextmenu *after* opening the menu, at\n    // which point we can't mess with it anymore. Context menu is\n    // handled in onMouseDown for Gecko.\n    if (!captureMiddleClick) on(d.scroller, \"contextmenu\", function(e) {onContextMenu(cm, e);});\n\n    on(d.scroller, \"scroll\", function() {\n      if (d.scroller.clientHeight) {\n        setScrollTop(cm, d.scroller.scrollTop);\n        setScrollLeft(cm, d.scroller.scrollLeft, true);\n        signal(cm, \"scroll\", cm);\n      }\n    });\n    on(d.scrollbarV, \"scroll\", function() {\n      if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop);\n    });\n    on(d.scrollbarH, \"scroll\", function() {\n      if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft);\n    });\n\n    on(d.scroller, \"mousewheel\", function(e){onScrollWheel(cm, e);});\n    on(d.scroller, \"DOMMouseScroll\", function(e){onScrollWheel(cm, e);});\n\n    function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); }\n    on(d.scrollbarH, \"mousedown\", reFocus);\n    on(d.scrollbarV, \"mousedown\", reFocus);\n    // Prevent wrapper from ever scrolling\n    on(d.wrapper, \"scroll\", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n    var resizeTimer;\n    function onResize() {\n      if (resizeTimer == null) resizeTimer = setTimeout(function() {\n        resizeTimer = null;\n        // Might be a text scaling operation, clear size caches.\n        d.cachedCharWidth = d.cachedTextHeight = knownScrollbarWidth = null;\n        clearCaches(cm);\n        runInOp(cm, bind(regChange, cm));\n      }, 100);\n    }\n    on(window, \"resize\", onResize);\n    // Above handler holds on to the editor and its data structures.\n    // Here we poll to unregister it when the editor is no longer in\n    // the document, so that it can be garbage-collected.\n    function unregister() {\n      for (var p = d.wrapper.parentNode; p && p != document.body; p = p.parentNode) {}\n      if (p) setTimeout(unregister, 5000);\n      else off(window, \"resize\", onResize);\n    }\n    setTimeout(unregister, 5000);\n\n    on(d.input, \"keyup\", operation(cm, function(e) {\n      if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;\n      if (e.keyCode == 16) cm.doc.sel.shift = false;\n    }));\n    on(d.input, \"input\", function() {\n      if (ie && !ie_lt9 && cm.display.inputHasSelection) cm.display.inputHasSelection = null;\n      fastPoll(cm);\n    });\n    on(d.input, \"keydown\", operation(cm, onKeyDown));\n    on(d.input, \"keypress\", operation(cm, onKeyPress));\n    on(d.input, \"focus\", bind(onFocus, cm));\n    on(d.input, \"blur\", bind(onBlur, cm));\n\n    function drag_(e) {\n      if (signalDOMEvent(cm, e) || cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))) return;\n      e_stop(e);\n    }\n    if (cm.options.dragDrop) {\n      on(d.scroller, \"dragstart\", function(e){onDragStart(cm, e);});\n      on(d.scroller, \"dragenter\", drag_);\n      on(d.scroller, \"dragover\", drag_);\n      on(d.scroller, \"drop\", operation(cm, onDrop));\n    }\n    on(d.scroller, \"paste\", function(e) {\n      if (eventInWidget(d, e)) return;\n      focusInput(cm);\n      fastPoll(cm);\n    });\n    on(d.input, \"paste\", function() {\n      // Workaround for webkit bug https://bugs.webkit.org/show_bug.cgi?id=90206\n      // Add a char to the end of textarea before paste occur so that\n      // selection doesn't span to the end of textarea.\n      if (webkit && !cm.state.fakedLastChar && !(new Date - cm.state.lastMiddleDown < 200)) {\n        var start = d.input.selectionStart, end = d.input.selectionEnd;\n        d.input.value += \"$\";\n        d.input.selectionStart = start;\n        d.input.selectionEnd = end;\n        cm.state.fakedLastChar = true;\n      }\n      cm.state.pasteIncoming = true;\n      fastPoll(cm);\n    });\n\n    function prepareCopy() {\n      if (d.inaccurateSelection) {\n        d.prevInput = \"\";\n        d.inaccurateSelection = false;\n        d.input.value = cm.getSelection();\n        selectInput(d.input);\n      }\n    }\n    on(d.input, \"cut\", prepareCopy);\n    on(d.input, \"copy\", prepareCopy);\n\n    // Needed to handle Tab key in KHTML\n    if (khtml) on(d.sizer, \"mouseup\", function() {\n        if (document.activeElement == d.input) d.input.blur();\n        focusInput(cm);\n    });\n  }\n\n  function eventInWidget(display, e) {\n    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n      if (!n || n.ignoreEvents || n.parentNode == display.sizer && n != display.mover) return true;\n    }\n  }\n\n  function posFromMouse(cm, e, liberal) {\n    var display = cm.display;\n    if (!liberal) {\n      var target = e_target(e);\n      if (target == display.scrollbarH || target == display.scrollbarH.firstChild ||\n          target == display.scrollbarV || target == display.scrollbarV.firstChild ||\n          target == display.scrollbarFiller || target == display.gutterFiller) return null;\n    }\n    var x, y, space = getRect(display.lineSpace);\n    // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n    try { x = e.clientX; y = e.clientY; } catch (e) { return null; }\n    return coordsChar(cm, x - space.left, y - space.top);\n  }\n\n  var lastClick, lastDoubleClick;\n  function onMouseDown(e) {\n    if (signalDOMEvent(this, e)) return;\n    var cm = this, display = cm.display, doc = cm.doc, sel = doc.sel;\n    sel.shift = e.shiftKey;\n\n    if (eventInWidget(display, e)) {\n      if (!webkit) {\n        display.scroller.draggable = false;\n        setTimeout(function(){display.scroller.draggable = true;}, 100);\n      }\n      return;\n    }\n    if (clickInGutter(cm, e)) return;\n    var start = posFromMouse(cm, e);\n\n    switch (e_button(e)) {\n    case 3:\n      if (captureMiddleClick) onContextMenu.call(cm, cm, e);\n      return;\n    case 2:\n      if (webkit) cm.state.lastMiddleDown = +new Date;\n      if (start) extendSelection(cm.doc, start);\n      setTimeout(bind(focusInput, cm), 20);\n      e_preventDefault(e);\n      return;\n    }\n    // For button 1, if it was clicked inside the editor\n    // (posFromMouse returning non-null), we have to adjust the\n    // selection.\n    if (!start) {if (e_target(e) == display.scroller) e_preventDefault(e); return;}\n\n    if (!cm.state.focused) onFocus(cm);\n\n    var now = +new Date, type = \"single\";\n    if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) {\n      type = \"triple\";\n      e_preventDefault(e);\n      setTimeout(bind(focusInput, cm), 20);\n      selectLine(cm, start.line);\n    } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) {\n      type = \"double\";\n      lastDoubleClick = {time: now, pos: start};\n      e_preventDefault(e);\n      var word = findWordAt(getLine(doc, start.line).text, start);\n      extendSelection(cm.doc, word.from, word.to);\n    } else { lastClick = {time: now, pos: start}; }\n\n    var last = start;\n    if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && !posEq(sel.from, sel.to) &&\n        !posLess(start, sel.from) && !posLess(sel.to, start) && type == \"single\") {\n      var dragEnd = operation(cm, function(e2) {\n        if (webkit) display.scroller.draggable = false;\n        cm.state.draggingText = false;\n        off(document, \"mouseup\", dragEnd);\n        off(display.scroller, \"drop\", dragEnd);\n        if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {\n          e_preventDefault(e2);\n          extendSelection(cm.doc, start);\n          focusInput(cm);\n        }\n      });\n      // Let the drag handler handle this.\n      if (webkit) display.scroller.draggable = true;\n      cm.state.draggingText = dragEnd;\n      // IE's approach to draggable\n      if (display.scroller.dragDrop) display.scroller.dragDrop();\n      on(document, \"mouseup\", dragEnd);\n      on(display.scroller, \"drop\", dragEnd);\n      return;\n    }\n    e_preventDefault(e);\n    if (type == \"single\") extendSelection(cm.doc, clipPos(doc, start));\n\n    var startstart = sel.from, startend = sel.to, lastPos = start;\n\n    function doSelect(cur) {\n      if (posEq(lastPos, cur)) return;\n      lastPos = cur;\n\n      if (type == \"single\") {\n        extendSelection(cm.doc, clipPos(doc, start), cur);\n        return;\n      }\n\n      startstart = clipPos(doc, startstart);\n      startend = clipPos(doc, startend);\n      if (type == \"double\") {\n        var word = findWordAt(getLine(doc, cur.line).text, cur);\n        if (posLess(cur, startstart)) extendSelection(cm.doc, word.from, startend);\n        else extendSelection(cm.doc, startstart, word.to);\n      } else if (type == \"triple\") {\n        if (posLess(cur, startstart)) extendSelection(cm.doc, startend, clipPos(doc, Pos(cur.line, 0)));\n        else extendSelection(cm.doc, startstart, clipPos(doc, Pos(cur.line + 1, 0)));\n      }\n    }\n\n    var editorSize = getRect(display.wrapper);\n    // Used to ensure timeout re-tries don't fire when another extend\n    // happened in the meantime (clearTimeout isn't reliable -- at\n    // least on Chrome, the timeouts still happen even when cleared,\n    // if the clear happens after their scheduled firing time).\n    var counter = 0;\n\n    function extend(e) {\n      var curCount = ++counter;\n      var cur = posFromMouse(cm, e, true);\n      if (!cur) return;\n      if (!posEq(cur, last)) {\n        if (!cm.state.focused) onFocus(cm);\n        last = cur;\n        doSelect(cur);\n        var visible = visibleLines(display, doc);\n        if (cur.line >= visible.to || cur.line < visible.from)\n          setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);\n      } else {\n        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n        if (outside) setTimeout(operation(cm, function() {\n          if (counter != curCount) return;\n          display.scroller.scrollTop += outside;\n          extend(e);\n        }), 50);\n      }\n    }\n\n    function done(e) {\n      counter = Infinity;\n      e_preventDefault(e);\n      focusInput(cm);\n      off(document, \"mousemove\", move);\n      off(document, \"mouseup\", up);\n    }\n\n    var move = operation(cm, function(e) {\n      if (!ie && !e_button(e)) done(e);\n      else extend(e);\n    });\n    var up = operation(cm, done);\n    on(document, \"mousemove\", move);\n    on(document, \"mouseup\", up);\n  }\n\n  function gutterEvent(cm, e, type, prevent, signalfn) {\n    try { var mX = e.clientX, mY = e.clientY; }\n    catch(e) { return false; }\n    if (mX >= Math.floor(getRect(cm.display.gutters).right)) return false;\n    if (prevent) e_preventDefault(e);\n\n    var display = cm.display;\n    var lineBox = getRect(display.lineDiv);\n\n    if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);\n    mY -= lineBox.top - display.viewOffset;\n\n    for (var i = 0; i < cm.options.gutters.length; ++i) {\n      var g = display.gutters.childNodes[i];\n      if (g && getRect(g).right >= mX) {\n        var line = lineAtHeight(cm.doc, mY);\n        var gutter = cm.options.gutters[i];\n        signalfn(cm, type, cm, line, gutter, e);\n        return e_defaultPrevented(e);\n      }\n    }\n  }\n\n  function contextMenuInGutter(cm, e) {\n    if (!hasHandler(cm, \"gutterContextMenu\")) return false;\n    return gutterEvent(cm, e, \"gutterContextMenu\", false, signal);\n  }\n\n  function clickInGutter(cm, e) {\n    return gutterEvent(cm, e, \"gutterClick\", true, signalLater);\n  }\n\n  // Kludge to work around strange IE behavior where it'll sometimes\n  // re-fire a series of drag-related events right after the drop (#1551)\n  var lastDrop = 0;\n\n  function onDrop(e) {\n    var cm = this;\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e) || (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))))\n      return;\n    e_preventDefault(e);\n    if (ie) lastDrop = +new Date;\n    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n    if (!pos || isReadOnly(cm)) return;\n    if (files && files.length && window.FileReader && window.File) {\n      var n = files.length, text = Array(n), read = 0;\n      var loadFile = function(file, i) {\n        var reader = new FileReader;\n        reader.onload = function() {\n          text[i] = reader.result;\n          if (++read == n) {\n            pos = clipPos(cm.doc, pos);\n            makeChange(cm.doc, {from: pos, to: pos, text: splitLines(text.join(\"\\n\")), origin: \"paste\"}, \"around\");\n          }\n        };\n        reader.readAsText(file);\n      };\n      for (var i = 0; i < n; ++i) loadFile(files[i], i);\n    } else {\n      // Don't do a replace if the drop happened inside of the selected text.\n      if (cm.state.draggingText && !(posLess(pos, cm.doc.sel.from) || posLess(cm.doc.sel.to, pos))) {\n        cm.state.draggingText(e);\n        // Ensure the editor is re-focused\n        setTimeout(bind(focusInput, cm), 20);\n        return;\n      }\n      try {\n        var text = e.dataTransfer.getData(\"Text\");\n        if (text) {\n          var curFrom = cm.doc.sel.from, curTo = cm.doc.sel.to;\n          setSelection(cm.doc, pos, pos);\n          if (cm.state.draggingText) replaceRange(cm.doc, \"\", curFrom, curTo, \"paste\");\n          cm.replaceSelection(text, null, \"paste\");\n          focusInput(cm);\n        }\n      }\n      catch(e){}\n    }\n  }\n\n  function onDragStart(cm, e) {\n    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;\n\n    var txt = cm.getSelection();\n    e.dataTransfer.setData(\"Text\", txt);\n\n    // Use dummy image instead of default browsers image.\n    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n    if (e.dataTransfer.setDragImage && !safari) {\n      var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n      img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n      if (opera) {\n        img.width = img.height = 1;\n        cm.display.wrapper.appendChild(img);\n        // Force a relayout, or Opera won't use our image for some obscure reason\n        img._top = img.offsetTop;\n      }\n      e.dataTransfer.setDragImage(img, 0, 0);\n      if (opera) img.parentNode.removeChild(img);\n    }\n  }\n\n  function setScrollTop(cm, val) {\n    if (Math.abs(cm.doc.scrollTop - val) < 2) return;\n    cm.doc.scrollTop = val;\n    if (!gecko) updateDisplay(cm, [], val);\n    if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;\n    if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val;\n    if (gecko) updateDisplay(cm, []);\n    startWorker(cm, 100);\n  }\n  function setScrollLeft(cm, val, isScroller) {\n    if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;\n    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);\n    cm.doc.scrollLeft = val;\n    alignHorizontally(cm);\n    if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;\n    if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val;\n  }\n\n  // Since the delta values reported on mouse wheel events are\n  // unstandardized between browsers and even browser versions, and\n  // generally horribly unpredictable, this code starts by measuring\n  // the scroll effect that the first few mouse wheel events have,\n  // and, from that, detects the way it can convert deltas to pixel\n  // offsets afterwards.\n  //\n  // The reason we want to know the amount a wheel event will scroll\n  // is that it gives us a chance to update the display before the\n  // actual scrolling happens, reducing flickering.\n\n  var wheelSamples = 0, wheelPixelsPerUnit = null;\n  // Fill in a browser-detected starting value on browsers where we\n  // know one. These don't have to be accurate -- the result of them\n  // being wrong would just be a slight flicker on the first wheel\n  // scroll (if it is large enough).\n  if (ie) wheelPixelsPerUnit = -.53;\n  else if (gecko) wheelPixelsPerUnit = 15;\n  else if (chrome) wheelPixelsPerUnit = -.7;\n  else if (safari) wheelPixelsPerUnit = -1/3;\n\n  function onScrollWheel(cm, e) {\n    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;\n    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;\n    else if (dy == null) dy = e.wheelDelta;\n\n    var display = cm.display, scroll = display.scroller;\n    // Quit if there's nothing to scroll here\n    if (!(dx && scroll.scrollWidth > scroll.clientWidth ||\n          dy && scroll.scrollHeight > scroll.clientHeight)) return;\n\n    // Webkit browsers on OS X abort momentum scrolls when the target\n    // of the scroll event is removed from the scrollable element.\n    // This hack (see related code in patchDisplay) makes sure the\n    // element is kept around.\n    if (dy && mac && webkit) {\n      for (var cur = e.target; cur != scroll; cur = cur.parentNode) {\n        if (cur.lineObj) {\n          cm.display.currentWheelTarget = cur;\n          break;\n        }\n      }\n    }\n\n    // On some browsers, horizontal scrolling will cause redraws to\n    // happen before the gutter has been realigned, causing it to\n    // wriggle around in a most unseemly way. When we have an\n    // estimated pixels/delta value, we just handle horizontal\n    // scrolling entirely here. It'll be slightly off from native, but\n    // better than glitching out.\n    if (dx && !gecko && !opera && wheelPixelsPerUnit != null) {\n      if (dy)\n        setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));\n      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));\n      e_preventDefault(e);\n      display.wheelStartX = null; // Abort measurement, if in progress\n      return;\n    }\n\n    if (dy && wheelPixelsPerUnit != null) {\n      var pixels = dy * wheelPixelsPerUnit;\n      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n      if (pixels < 0) top = Math.max(0, top + pixels - 50);\n      else bot = Math.min(cm.doc.height, bot + pixels + 50);\n      updateDisplay(cm, [], {top: top, bottom: bot});\n    }\n\n    if (wheelSamples < 20) {\n      if (display.wheelStartX == null) {\n        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n        display.wheelDX = dx; display.wheelDY = dy;\n        setTimeout(function() {\n          if (display.wheelStartX == null) return;\n          var movedX = scroll.scrollLeft - display.wheelStartX;\n          var movedY = scroll.scrollTop - display.wheelStartY;\n          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n            (movedX && display.wheelDX && movedX / display.wheelDX);\n          display.wheelStartX = display.wheelStartY = null;\n          if (!sample) return;\n          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n          ++wheelSamples;\n        }, 200);\n      } else {\n        display.wheelDX += dx; display.wheelDY += dy;\n      }\n    }\n  }\n\n  function doHandleBinding(cm, bound, dropShift) {\n    if (typeof bound == \"string\") {\n      bound = commands[bound];\n      if (!bound) return false;\n    }\n    // Ensure previous input has been read, so that the handler sees a\n    // consistent view of the document\n    if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false;\n    var doc = cm.doc, prevShift = doc.sel.shift, done = false;\n    try {\n      if (isReadOnly(cm)) cm.state.suppressEdits = true;\n      if (dropShift) doc.sel.shift = false;\n      done = bound(cm) != Pass;\n    } finally {\n      doc.sel.shift = prevShift;\n      cm.state.suppressEdits = false;\n    }\n    return done;\n  }\n\n  function allKeyMaps(cm) {\n    var maps = cm.state.keyMaps.slice(0);\n    if (cm.options.extraKeys) maps.push(cm.options.extraKeys);\n    maps.push(cm.options.keyMap);\n    return maps;\n  }\n\n  var maybeTransition;\n  function handleKeyBinding(cm, e) {\n    // Handle auto keymap transitions\n    var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto;\n    clearTimeout(maybeTransition);\n    if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() {\n      if (getKeyMap(cm.options.keyMap) == startMap) {\n        cm.options.keyMap = (next.call ? next.call(null, cm) : next);\n        keyMapChanged(cm);\n      }\n    }, 50);\n\n    var name = keyName(e, true), handled = false;\n    if (!name) return false;\n    var keymaps = allKeyMaps(cm);\n\n    if (e.shiftKey) {\n      // First try to resolve full name (including 'Shift-'). Failing\n      // that, see if there is a cursor-motion command (starting with\n      // 'go') bound to the keyname without 'Shift-'.\n      handled = lookupKey(\"Shift-\" + name, keymaps, function(b) {return doHandleBinding(cm, b, true);})\n             || lookupKey(name, keymaps, function(b) {\n                  if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n                    return doHandleBinding(cm, b);\n                });\n    } else {\n      handled = lookupKey(name, keymaps, function(b) { return doHandleBinding(cm, b); });\n    }\n\n    if (handled) {\n      e_preventDefault(e);\n      restartBlink(cm);\n      if (ie_lt9) { e.oldKeyCode = e.keyCode; e.keyCode = 0; }\n      signalLater(cm, \"keyHandled\", cm, name, e);\n    }\n    return handled;\n  }\n\n  function handleCharBinding(cm, e, ch) {\n    var handled = lookupKey(\"'\" + ch + \"'\", allKeyMaps(cm),\n                            function(b) { return doHandleBinding(cm, b, true); });\n    if (handled) {\n      e_preventDefault(e);\n      restartBlink(cm);\n      signalLater(cm, \"keyHandled\", cm, \"'\" + ch + \"'\", e);\n    }\n    return handled;\n  }\n\n  var lastStoppedKey = null;\n  function onKeyDown(e) {\n    var cm = this;\n    if (!cm.state.focused) onFocus(cm);\n    if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;\n    if (ie && e.keyCode == 27) e.returnValue = false;\n    var code = e.keyCode;\n    // IE does strange things with escape.\n    cm.doc.sel.shift = code == 16 || e.shiftKey;\n    // First give onKeyEvent option a chance to handle this.\n    var handled = handleKeyBinding(cm, e);\n    if (opera) {\n      lastStoppedKey = handled ? code : null;\n      // Opera has no cut event... we try to at least catch the key combo\n      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n        cm.replaceSelection(\"\");\n    }\n  }\n\n  function onKeyPress(e) {\n    var cm = this;\n    if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;\n    var keyCode = e.keyCode, charCode = e.charCode;\n    if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}\n    if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return;\n    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n    if (this.options.electricChars && this.doc.mode.electricChars &&\n        this.options.smartIndent && !isReadOnly(this) &&\n        this.doc.mode.electricChars.indexOf(ch) > -1)\n      setTimeout(operation(cm, function() {indentLine(cm, cm.doc.sel.to.line, \"smart\");}), 75);\n    if (handleCharBinding(cm, e, ch)) return;\n    if (ie && !ie_lt9) cm.display.inputHasSelection = null;\n    fastPoll(cm);\n  }\n\n  function onFocus(cm) {\n    if (cm.options.readOnly == \"nocursor\") return;\n    if (!cm.state.focused) {\n      signal(cm, \"focus\", cm);\n      cm.state.focused = true;\n      if (cm.display.wrapper.className.search(/\\bCodeMirror-focused\\b/) == -1)\n        cm.display.wrapper.className += \" CodeMirror-focused\";\n      if (!cm.curOp) {\n        resetInput(cm, true);\n        if (webkit) setTimeout(bind(resetInput, cm, true), 0); // Issue #1730\n      }\n    }\n    slowPoll(cm);\n    restartBlink(cm);\n  }\n  function onBlur(cm) {\n    if (cm.state.focused) {\n      signal(cm, \"blur\", cm);\n      cm.state.focused = false;\n      cm.display.wrapper.className = cm.display.wrapper.className.replace(\" CodeMirror-focused\", \"\");\n    }\n    clearInterval(cm.display.blinker);\n    setTimeout(function() {if (!cm.state.focused) cm.doc.sel.shift = false;}, 150);\n  }\n\n  var detectingSelectAll;\n  function onContextMenu(cm, e) {\n    if (signalDOMEvent(cm, e, \"contextmenu\")) return;\n    var display = cm.display, sel = cm.doc.sel;\n    if (eventInWidget(display, e) || contextMenuInGutter(cm, e)) return;\n\n    var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n    if (!pos || opera) return; // Opera is difficult.\n\n    // Reset the current text selection only if the click is done outside of the selection\n    // and 'resetSelectionOnContextMenu' option is true.\n    var reset = cm.options.resetSelectionOnContextMenu;\n    if (reset && (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)))\n      operation(cm, setSelection)(cm.doc, pos, pos);\n\n    var oldCSS = display.input.style.cssText;\n    display.inputDiv.style.position = \"absolute\";\n    display.input.style.cssText = \"position: fixed; width: 30px; height: 30px; top: \" + (e.clientY - 5) +\n      \"px; left: \" + (e.clientX - 5) + \"px; z-index: 1000; background: white; outline: none;\" +\n      \"border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);\";\n    focusInput(cm);\n    resetInput(cm, true);\n    // Adds \"Select all\" to context menu in FF\n    if (posEq(sel.from, sel.to)) display.input.value = display.prevInput = \" \";\n\n    function prepareSelectAllHack() {\n      if (display.input.selectionStart != null) {\n        var extval = display.input.value = \"\\u200b\" + (posEq(sel.from, sel.to) ? \"\" : display.input.value);\n        display.prevInput = \"\\u200b\";\n        display.input.selectionStart = 1; display.input.selectionEnd = extval.length;\n      }\n    }\n    function rehide() {\n      display.inputDiv.style.position = \"relative\";\n      display.input.style.cssText = oldCSS;\n      if (ie_lt9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos;\n      slowPoll(cm);\n\n      // Try to detect the user choosing select-all\n      if (display.input.selectionStart != null) {\n        if (!ie || ie_lt9) prepareSelectAllHack();\n        clearTimeout(detectingSelectAll);\n        var i = 0, poll = function(){\n          if (display.prevInput == \" \" && display.input.selectionStart == 0)\n            operation(cm, commands.selectAll)(cm);\n          else if (i++ < 10) detectingSelectAll = setTimeout(poll, 500);\n          else resetInput(cm);\n        };\n        detectingSelectAll = setTimeout(poll, 200);\n      }\n    }\n\n    if (ie && !ie_lt9) prepareSelectAllHack();\n    if (captureMiddleClick) {\n      e_stop(e);\n      var mouseup = function() {\n        off(window, \"mouseup\", mouseup);\n        setTimeout(rehide, 20);\n      };\n      on(window, \"mouseup\", mouseup);\n    } else {\n      setTimeout(rehide, 50);\n    }\n  }\n\n  // UPDATING\n\n  var changeEnd = CodeMirror.changeEnd = function(change) {\n    if (!change.text) return change.to;\n    return Pos(change.from.line + change.text.length - 1,\n               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));\n  };\n\n  // Make sure a position will be valid after the given change.\n  function clipPostChange(doc, change, pos) {\n    if (!posLess(change.from, pos)) return clipPos(doc, pos);\n    var diff = (change.text.length - 1) - (change.to.line - change.from.line);\n    if (pos.line > change.to.line + diff) {\n      var preLine = pos.line - diff, lastLine = doc.first + doc.size - 1;\n      if (preLine > lastLine) return Pos(lastLine, getLine(doc, lastLine).text.length);\n      return clipToLen(pos, getLine(doc, preLine).text.length);\n    }\n    if (pos.line == change.to.line + diff)\n      return clipToLen(pos, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0) +\n                       getLine(doc, change.to.line).text.length - change.to.ch);\n    var inside = pos.line - change.from.line;\n    return clipToLen(pos, change.text[inside].length + (inside ? 0 : change.from.ch));\n  }\n\n  // Hint can be null|\"end\"|\"start\"|\"around\"|{anchor,head}\n  function computeSelAfterChange(doc, change, hint) {\n    if (hint && typeof hint == \"object\") // Assumed to be {anchor, head} object\n      return {anchor: clipPostChange(doc, change, hint.anchor),\n              head: clipPostChange(doc, change, hint.head)};\n\n    if (hint == \"start\") return {anchor: change.from, head: change.from};\n\n    var end = changeEnd(change);\n    if (hint == \"around\") return {anchor: change.from, head: end};\n    if (hint == \"end\") return {anchor: end, head: end};\n\n    // hint is null, leave the selection alone as much as possible\n    var adjustPos = function(pos) {\n      if (posLess(pos, change.from)) return pos;\n      if (!posLess(change.to, pos)) return end;\n\n      var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n      if (pos.line == change.to.line) ch += end.ch - change.to.ch;\n      return Pos(line, ch);\n    };\n    return {anchor: adjustPos(doc.sel.anchor), head: adjustPos(doc.sel.head)};\n  }\n\n  function filterChange(doc, change, update) {\n    var obj = {\n      canceled: false,\n      from: change.from,\n      to: change.to,\n      text: change.text,\n      origin: change.origin,\n      cancel: function() { this.canceled = true; }\n    };\n    if (update) obj.update = function(from, to, text, origin) {\n      if (from) this.from = clipPos(doc, from);\n      if (to) this.to = clipPos(doc, to);\n      if (text) this.text = text;\n      if (origin !== undefined) this.origin = origin;\n    };\n    signal(doc, \"beforeChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeChange\", doc.cm, obj);\n\n    if (obj.canceled) return null;\n    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};\n  }\n\n  // Replace the range from from to to by the strings in replacement.\n  // change is a {from, to, text [, origin]} object\n  function makeChange(doc, change, selUpdate, ignoreReadOnly) {\n    if (doc.cm) {\n      if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, selUpdate, ignoreReadOnly);\n      if (doc.cm.state.suppressEdits) return;\n    }\n\n    if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n      change = filterChange(doc, change, true);\n      if (!change) return;\n    }\n\n    // Possibly split or suppress the update based on the presence\n    // of read-only spans in its range.\n    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n    if (split) {\n      for (var i = split.length - 1; i >= 1; --i)\n        makeChangeNoReadonly(doc, {from: split[i].from, to: split[i].to, text: [\"\"]});\n      if (split.length)\n        makeChangeNoReadonly(doc, {from: split[0].from, to: split[0].to, text: change.text}, selUpdate);\n    } else {\n      makeChangeNoReadonly(doc, change, selUpdate);\n    }\n  }\n\n  function makeChangeNoReadonly(doc, change, selUpdate) {\n    if (change.text.length == 1 && change.text[0] == \"\" && posEq(change.from, change.to)) return;\n    var selAfter = computeSelAfterChange(doc, change, selUpdate);\n    addToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n    var rebased = [];\n\n    linkedDocs(doc, function(doc, sharedHist) {\n      if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n        rebaseHist(doc.history, change);\n        rebased.push(doc.history);\n      }\n      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n    });\n  }\n\n  function makeChangeFromHistory(doc, type) {\n    if (doc.cm && doc.cm.state.suppressEdits) return;\n\n    var hist = doc.history;\n    var event = (type == \"undo\" ? hist.done : hist.undone).pop();\n    if (!event) return;\n\n    var anti = {changes: [], anchorBefore: event.anchorAfter, headBefore: event.headAfter,\n                anchorAfter: event.anchorBefore, headAfter: event.headBefore,\n                generation: hist.generation};\n    (type == \"undo\" ? hist.undone : hist.done).push(anti);\n    hist.generation = event.generation || ++hist.maxGeneration;\n\n    var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n    for (var i = event.changes.length - 1; i >= 0; --i) {\n      var change = event.changes[i];\n      change.origin = type;\n      if (filter && !filterChange(doc, change, false)) {\n        (type == \"undo\" ? hist.done : hist.undone).length = 0;\n        return;\n      }\n\n      anti.changes.push(historyChangeFromChange(doc, change));\n\n      var after = i ? computeSelAfterChange(doc, change, null)\n                    : {anchor: event.anchorBefore, head: event.headBefore};\n      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n      var rebased = [];\n\n      linkedDocs(doc, function(doc, sharedHist) {\n        if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n          rebaseHist(doc.history, change);\n          rebased.push(doc.history);\n        }\n        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n      });\n    }\n  }\n\n  function shiftDoc(doc, distance) {\n    function shiftPos(pos) {return Pos(pos.line + distance, pos.ch);}\n    doc.first += distance;\n    if (doc.cm) regChange(doc.cm, doc.first, doc.first, distance);\n    doc.sel.head = shiftPos(doc.sel.head); doc.sel.anchor = shiftPos(doc.sel.anchor);\n    doc.sel.from = shiftPos(doc.sel.from); doc.sel.to = shiftPos(doc.sel.to);\n  }\n\n  function makeChangeSingleDoc(doc, change, selAfter, spans) {\n    if (doc.cm && !doc.cm.curOp)\n      return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);\n\n    if (change.to.line < doc.first) {\n      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n      return;\n    }\n    if (change.from.line > doc.lastLine()) return;\n\n    // Clip the change to the size of this doc\n    if (change.from.line < doc.first) {\n      var shift = change.text.length - 1 - (doc.first - change.from.line);\n      shiftDoc(doc, shift);\n      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n                text: [lst(change.text)], origin: change.origin};\n    }\n    var last = doc.lastLine();\n    if (change.to.line > last) {\n      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n                text: [change.text[0]], origin: change.origin};\n    }\n\n    change.removed = getBetween(doc, change.from, change.to);\n\n    if (!selAfter) selAfter = computeSelAfterChange(doc, change, null);\n    if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans, selAfter);\n    else updateDoc(doc, change, spans, selAfter);\n  }\n\n  function makeChangeSingleDocInEditor(cm, change, spans, selAfter) {\n    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n    var recomputeMaxLength = false, checkWidthStart = from.line;\n    if (!cm.options.lineWrapping) {\n      checkWidthStart = lineNo(visualLine(doc, getLine(doc, from.line)));\n      doc.iter(checkWidthStart, to.line + 1, function(line) {\n        if (line == display.maxLine) {\n          recomputeMaxLength = true;\n          return true;\n        }\n      });\n    }\n\n    if (!posLess(doc.sel.head, change.from) && !posLess(change.to, doc.sel.head))\n      cm.curOp.cursorActivity = true;\n\n    updateDoc(doc, change, spans, selAfter, estimateHeight(cm));\n\n    if (!cm.options.lineWrapping) {\n      doc.iter(checkWidthStart, from.line + change.text.length, function(line) {\n        var len = lineLength(doc, line);\n        if (len > display.maxLineLength) {\n          display.maxLine = line;\n          display.maxLineLength = len;\n          display.maxLineChanged = true;\n          recomputeMaxLength = false;\n        }\n      });\n      if (recomputeMaxLength) cm.curOp.updateMaxLine = true;\n    }\n\n    // Adjust frontier, schedule worker\n    doc.frontier = Math.min(doc.frontier, from.line);\n    startWorker(cm, 400);\n\n    var lendiff = change.text.length - (to.line - from.line) - 1;\n    // Remember that these lines changed, for updating the display\n    regChange(cm, from.line, to.line + 1, lendiff);\n\n    if (hasHandler(cm, \"change\")) {\n      var changeObj = {from: from, to: to,\n                       text: change.text,\n                       removed: change.removed,\n                       origin: change.origin};\n      if (cm.curOp.textChanged) {\n        for (var cur = cm.curOp.textChanged; cur.next; cur = cur.next) {}\n        cur.next = changeObj;\n      } else cm.curOp.textChanged = changeObj;\n    }\n  }\n\n  function replaceRange(doc, code, from, to, origin) {\n    if (!to) to = from;\n    if (posLess(to, from)) { var tmp = to; to = from; from = tmp; }\n    if (typeof code == \"string\") code = splitLines(code);\n    makeChange(doc, {from: from, to: to, text: code, origin: origin}, null);\n  }\n\n  // POSITION OBJECT\n\n  function Pos(line, ch) {\n    if (!(this instanceof Pos)) return new Pos(line, ch);\n    this.line = line; this.ch = ch;\n  }\n  CodeMirror.Pos = Pos;\n\n  function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}\n  function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);}\n  function copyPos(x) {return Pos(x.line, x.ch);}\n\n  // SELECTION\n\n  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}\n  function clipPos(doc, pos) {\n    if (pos.line < doc.first) return Pos(doc.first, 0);\n    var last = doc.first + doc.size - 1;\n    if (pos.line > last) return Pos(last, getLine(doc, last).text.length);\n    return clipToLen(pos, getLine(doc, pos.line).text.length);\n  }\n  function clipToLen(pos, linelen) {\n    var ch = pos.ch;\n    if (ch == null || ch > linelen) return Pos(pos.line, linelen);\n    else if (ch < 0) return Pos(pos.line, 0);\n    else return pos;\n  }\n  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}\n\n  // If shift is held, this will move the selection anchor. Otherwise,\n  // it'll set the whole selection.\n  function extendSelection(doc, pos, other, bias) {\n    if (doc.sel.shift || doc.sel.extend) {\n      var anchor = doc.sel.anchor;\n      if (other) {\n        var posBefore = posLess(pos, anchor);\n        if (posBefore != posLess(other, anchor)) {\n          anchor = pos;\n          pos = other;\n        } else if (posBefore != posLess(pos, other)) {\n          pos = other;\n        }\n      }\n      setSelection(doc, anchor, pos, bias);\n    } else {\n      setSelection(doc, pos, other || pos, bias);\n    }\n    if (doc.cm) doc.cm.curOp.userSelChange = true;\n  }\n\n  function filterSelectionChange(doc, anchor, head) {\n    var obj = {anchor: anchor, head: head};\n    signal(doc, \"beforeSelectionChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj);\n    obj.anchor = clipPos(doc, obj.anchor); obj.head = clipPos(doc, obj.head);\n    return obj;\n  }\n\n  // Update the selection. Last two args are only used by\n  // updateDoc, since they have to be expressed in the line\n  // numbers before the update.\n  function setSelection(doc, anchor, head, bias, checkAtomic) {\n    if (!checkAtomic && hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\")) {\n      var filtered = filterSelectionChange(doc, anchor, head);\n      head = filtered.head;\n      anchor = filtered.anchor;\n    }\n\n    var sel = doc.sel;\n    sel.goalColumn = null;\n    if (bias == null) bias = posLess(head, sel.head) ? -1 : 1;\n    // Skip over atomic spans.\n    if (checkAtomic || !posEq(anchor, sel.anchor))\n      anchor = skipAtomic(doc, anchor, bias, checkAtomic != \"push\");\n    if (checkAtomic || !posEq(head, sel.head))\n      head = skipAtomic(doc, head, bias, checkAtomic != \"push\");\n\n    if (posEq(sel.anchor, anchor) && posEq(sel.head, head)) return;\n\n    sel.anchor = anchor; sel.head = head;\n    var inv = posLess(head, anchor);\n    sel.from = inv ? head : anchor;\n    sel.to = inv ? anchor : head;\n\n    if (doc.cm)\n      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged =\n        doc.cm.curOp.cursorActivity = true;\n\n    signalLater(doc, \"cursorActivity\", doc);\n  }\n\n  function reCheckSelection(cm) {\n    setSelection(cm.doc, cm.doc.sel.from, cm.doc.sel.to, null, \"push\");\n  }\n\n  function skipAtomic(doc, pos, bias, mayClear) {\n    var flipped = false, curPos = pos;\n    var dir = bias || 1;\n    doc.cantEdit = false;\n    search: for (;;) {\n      var line = getLine(doc, curPos.line);\n      if (line.markedSpans) {\n        for (var i = 0; i < line.markedSpans.length; ++i) {\n          var sp = line.markedSpans[i], m = sp.marker;\n          if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) &&\n              (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) {\n            if (mayClear) {\n              signal(m, \"beforeCursorEnter\");\n              if (m.explicitlyCleared) {\n                if (!line.markedSpans) break;\n                else {--i; continue;}\n              }\n            }\n            if (!m.atomic) continue;\n            var newPos = m.find()[dir < 0 ? \"from\" : \"to\"];\n            if (posEq(newPos, curPos)) {\n              newPos.ch += dir;\n              if (newPos.ch < 0) {\n                if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1));\n                else newPos = null;\n              } else if (newPos.ch > line.text.length) {\n                if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0);\n                else newPos = null;\n              }\n              if (!newPos) {\n                if (flipped) {\n                  // Driven in a corner -- no valid cursor position found at all\n                  // -- try again *with* clearing, if we didn't already\n                  if (!mayClear) return skipAtomic(doc, pos, bias, true);\n                  // Otherwise, turn off editing until further notice, and return the start of the doc\n                  doc.cantEdit = true;\n                  return Pos(doc.first, 0);\n                }\n                flipped = true; newPos = pos; dir = -dir;\n              }\n            }\n            curPos = newPos;\n            continue search;\n          }\n        }\n      }\n      return curPos;\n    }\n  }\n\n  // SCROLLING\n\n  function scrollCursorIntoView(cm) {\n    var coords = scrollPosIntoView(cm, cm.doc.sel.head, null, cm.options.cursorScrollMargin);\n    if (!cm.state.focused) return;\n    var display = cm.display, box = getRect(display.sizer), doScroll = null;\n    if (coords.top + box.top < 0) doScroll = true;\n    else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;\n    if (doScroll != null && !phantom) {\n      var hidden = display.cursor.style.display == \"none\";\n      if (hidden) {\n        display.cursor.style.display = \"\";\n        display.cursor.style.left = coords.left + \"px\";\n        display.cursor.style.top = (coords.top - display.viewOffset) + \"px\";\n      }\n      display.cursor.scrollIntoView(doScroll);\n      if (hidden) display.cursor.style.display = \"none\";\n    }\n  }\n\n  function scrollPosIntoView(cm, pos, end, margin) {\n    if (margin == null) margin = 0;\n    for (;;) {\n      var changed = false, coords = cursorCoords(cm, pos);\n      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n      var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),\n                                         Math.min(coords.top, endCoords.top) - margin,\n                                         Math.max(coords.left, endCoords.left),\n                                         Math.max(coords.bottom, endCoords.bottom) + margin);\n      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n      if (scrollPos.scrollTop != null) {\n        setScrollTop(cm, scrollPos.scrollTop);\n        if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;\n      }\n      if (scrollPos.scrollLeft != null) {\n        setScrollLeft(cm, scrollPos.scrollLeft);\n        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;\n      }\n      if (!changed) return coords;\n    }\n  }\n\n  function scrollIntoView(cm, x1, y1, x2, y2) {\n    var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);\n    if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);\n    if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);\n  }\n\n  function calculateScrollPos(cm, x1, y1, x2, y2) {\n    var display = cm.display, snapMargin = textHeight(cm.display);\n    if (y1 < 0) y1 = 0;\n    var screen = display.scroller.clientHeight - scrollerCutOff, screentop = display.scroller.scrollTop, result = {};\n    var docBottom = cm.doc.height + paddingVert(display);\n    var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;\n    if (y1 < screentop) {\n      result.scrollTop = atTop ? 0 : y1;\n    } else if (y2 > screentop + screen) {\n      var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);\n      if (newTop != screentop) result.scrollTop = newTop;\n    }\n\n    var screenw = display.scroller.clientWidth - scrollerCutOff, screenleft = display.scroller.scrollLeft;\n    x1 += display.gutters.offsetWidth; x2 += display.gutters.offsetWidth;\n    var gutterw = display.gutters.offsetWidth;\n    var atLeft = x1 < gutterw + 10;\n    if (x1 < screenleft + gutterw || atLeft) {\n      if (atLeft) x1 = 0;\n      result.scrollLeft = Math.max(0, x1 - 10 - gutterw);\n    } else if (x2 > screenw + screenleft - 3) {\n      result.scrollLeft = x2 + 10 - screenw;\n    }\n    return result;\n  }\n\n  function updateScrollPos(cm, left, top) {\n    cm.curOp.updateScrollPos = {scrollLeft: left == null ? cm.doc.scrollLeft : left,\n                                scrollTop: top == null ? cm.doc.scrollTop : top};\n  }\n\n  function addToScrollPos(cm, left, top) {\n    var pos = cm.curOp.updateScrollPos || (cm.curOp.updateScrollPos = {scrollLeft: cm.doc.scrollLeft, scrollTop: cm.doc.scrollTop});\n    var scroll = cm.display.scroller;\n    pos.scrollTop = Math.max(0, Math.min(scroll.scrollHeight - scroll.clientHeight, pos.scrollTop + top));\n    pos.scrollLeft = Math.max(0, Math.min(scroll.scrollWidth - scroll.clientWidth, pos.scrollLeft + left));\n  }\n\n  // API UTILITIES\n\n  function indentLine(cm, n, how, aggressive) {\n    var doc = cm.doc;\n    if (how == null) how = \"add\";\n    if (how == \"smart\") {\n      if (!cm.doc.mode.indent) how = \"prev\";\n      else var state = getStateBefore(cm, n);\n    }\n\n    var tabSize = cm.options.tabSize;\n    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n    var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n    if (how == \"smart\") {\n      indentation = cm.doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n      if (indentation == Pass) {\n        if (!aggressive) return;\n        how = \"prev\";\n      }\n    }\n    if (how == \"prev\") {\n      if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);\n      else indentation = 0;\n    } else if (how == \"add\") {\n      indentation = curSpace + cm.options.indentUnit;\n    } else if (how == \"subtract\") {\n      indentation = curSpace - cm.options.indentUnit;\n    } else if (typeof how == \"number\") {\n      indentation = curSpace + how;\n    }\n    indentation = Math.max(0, indentation);\n\n    var indentString = \"\", pos = 0;\n    if (cm.options.indentWithTabs)\n      for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";}\n    if (pos < indentation) indentString += spaceStr(indentation - pos);\n\n    if (indentString != curSpaceString)\n      replaceRange(cm.doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n    else if (doc.sel.head.line == n && doc.sel.head.ch < curSpaceString.length)\n      setSelection(doc, Pos(n, curSpaceString.length), Pos(n, curSpaceString.length), 1);\n    line.stateAfter = null;\n  }\n\n  function changeLine(cm, handle, op) {\n    var no = handle, line = handle, doc = cm.doc;\n    if (typeof handle == \"number\") line = getLine(doc, clipLine(doc, handle));\n    else no = lineNo(handle);\n    if (no == null) return null;\n    if (op(line, no)) regChange(cm, no, no + 1);\n    else return null;\n    return line;\n  }\n\n  function findPosH(doc, pos, dir, unit, visually) {\n    var line = pos.line, ch = pos.ch, origDir = dir;\n    var lineObj = getLine(doc, line);\n    var possible = true;\n    function findNextLine() {\n      var l = line + dir;\n      if (l < doc.first || l >= doc.first + doc.size) return (possible = false);\n      line = l;\n      return lineObj = getLine(doc, l);\n    }\n    function moveOnce(boundToLine) {\n      var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);\n      if (next == null) {\n        if (!boundToLine && findNextLine()) {\n          if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);\n          else ch = dir < 0 ? lineObj.text.length : 0;\n        } else return (possible = false);\n      } else ch = next;\n      return true;\n    }\n\n    if (unit == \"char\") moveOnce();\n    else if (unit == \"column\") moveOnce(true);\n    else if (unit == \"word\" || unit == \"group\") {\n      var sawType = null, group = unit == \"group\";\n      for (var first = true;; first = false) {\n        if (dir < 0 && !moveOnce(!first)) break;\n        var cur = lineObj.text.charAt(ch) || \"\\n\";\n        var type = isWordChar(cur) ? \"w\"\n          : !group ? null\n          : /\\s/.test(cur) ? null\n          : \"p\";\n        if (sawType && sawType != type) {\n          if (dir < 0) {dir = 1; moveOnce();}\n          break;\n        }\n        if (type) sawType = type;\n        if (dir > 0 && !moveOnce(!first)) break;\n      }\n    }\n    var result = skipAtomic(doc, Pos(line, ch), origDir, true);\n    if (!possible) result.hitSide = true;\n    return result;\n  }\n\n  function findPosV(cm, pos, dir, unit) {\n    var doc = cm.doc, x = pos.left, y;\n    if (unit == \"page\") {\n      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n      y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));\n    } else if (unit == \"line\") {\n      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n    }\n    for (;;) {\n      var target = coordsChar(cm, x, y);\n      if (!target.outside) break;\n      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }\n      y += dir * 5;\n    }\n    return target;\n  }\n\n  function findWordAt(line, pos) {\n    var start = pos.ch, end = pos.ch;\n    if (line) {\n      if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;\n      var startChar = line.charAt(start);\n      var check = isWordChar(startChar) ? isWordChar\n        : /\\s/.test(startChar) ? function(ch) {return /\\s/.test(ch);}\n        : function(ch) {return !/\\s/.test(ch) && !isWordChar(ch);};\n      while (start > 0 && check(line.charAt(start - 1))) --start;\n      while (end < line.length && check(line.charAt(end))) ++end;\n    }\n    return {from: Pos(pos.line, start), to: Pos(pos.line, end)};\n  }\n\n  function selectLine(cm, line) {\n    extendSelection(cm.doc, Pos(line, 0), clipPos(cm.doc, Pos(line + 1, 0)));\n  }\n\n  // PROTOTYPE\n\n  // The publicly visible API. Note that operation(null, f) means\n  // 'wrap f in an operation, performed on its `this` parameter'\n\n  CodeMirror.prototype = {\n    constructor: CodeMirror,\n    focus: function(){window.focus(); focusInput(this); fastPoll(this);},\n\n    setOption: function(option, value) {\n      var options = this.options, old = options[option];\n      if (options[option] == value && option != \"mode\") return;\n      options[option] = value;\n      if (optionHandlers.hasOwnProperty(option))\n        operation(this, optionHandlers[option])(this, value, old);\n    },\n\n    getOption: function(option) {return this.options[option];},\n    getDoc: function() {return this.doc;},\n\n    addKeyMap: function(map, bottom) {\n      this.state.keyMaps[bottom ? \"push\" : \"unshift\"](map);\n    },\n    removeKeyMap: function(map) {\n      var maps = this.state.keyMaps;\n      for (var i = 0; i < maps.length; ++i)\n        if (maps[i] == map || (typeof maps[i] != \"string\" && maps[i].name == map)) {\n          maps.splice(i, 1);\n          return true;\n        }\n    },\n\n    addOverlay: operation(null, function(spec, options) {\n      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n      if (mode.startState) throw new Error(\"Overlays may not be stateful.\");\n      this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque});\n      this.state.modeGen++;\n      regChange(this);\n    }),\n    removeOverlay: operation(null, function(spec) {\n      var overlays = this.state.overlays;\n      for (var i = 0; i < overlays.length; ++i) {\n        var cur = overlays[i].modeSpec;\n        if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n          overlays.splice(i, 1);\n          this.state.modeGen++;\n          regChange(this);\n          return;\n        }\n      }\n    }),\n\n    indentLine: operation(null, function(n, dir, aggressive) {\n      if (typeof dir != \"string\" && typeof dir != \"number\") {\n        if (dir == null) dir = this.options.smartIndent ? \"smart\" : \"prev\";\n        else dir = dir ? \"add\" : \"subtract\";\n      }\n      if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);\n    }),\n    indentSelection: operation(null, function(how) {\n      var sel = this.doc.sel;\n      if (posEq(sel.from, sel.to)) return indentLine(this, sel.from.line, how);\n      var e = sel.to.line - (sel.to.ch ? 0 : 1);\n      for (var i = sel.from.line; i <= e; ++i) indentLine(this, i, how);\n    }),\n\n    // Fetch the parser token for a given character. Useful for hacks\n    // that want to inspect the mode state (say, for completion).\n    getTokenAt: function(pos, precise) {\n      var doc = this.doc;\n      pos = clipPos(doc, pos);\n      var state = getStateBefore(this, pos.line, precise), mode = this.doc.mode;\n      var line = getLine(doc, pos.line);\n      var stream = new StringStream(line.text, this.options.tabSize);\n      while (stream.pos < pos.ch && !stream.eol()) {\n        stream.start = stream.pos;\n        var style = mode.token(stream, state);\n      }\n      return {start: stream.start,\n              end: stream.pos,\n              string: stream.current(),\n              className: style || null, // Deprecated, use 'type' instead\n              type: style || null,\n              state: state};\n    },\n\n    getTokenTypeAt: function(pos) {\n      pos = clipPos(this.doc, pos);\n      var styles = getLineStyles(this, getLine(this.doc, pos.line));\n      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n      if (ch == 0) return styles[2];\n      for (;;) {\n        var mid = (before + after) >> 1;\n        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;\n        else if (styles[mid * 2 + 1] < ch) before = mid + 1;\n        else return styles[mid * 2 + 2];\n      }\n    },\n\n    getModeAt: function(pos) {\n      var mode = this.doc.mode;\n      if (!mode.innerMode) return mode;\n      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;\n    },\n\n    getHelper: function(pos, type) {\n      if (!helpers.hasOwnProperty(type)) return;\n      var help = helpers[type], mode = this.getModeAt(pos);\n      return mode[type] && help[mode[type]] ||\n        mode.helperType && help[mode.helperType] ||\n        help[mode.name];\n    },\n\n    getStateAfter: function(line, precise) {\n      var doc = this.doc;\n      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n      return getStateBefore(this, line + 1, precise);\n    },\n\n    cursorCoords: function(start, mode) {\n      var pos, sel = this.doc.sel;\n      if (start == null) pos = sel.head;\n      else if (typeof start == \"object\") pos = clipPos(this.doc, start);\n      else pos = start ? sel.from : sel.to;\n      return cursorCoords(this, pos, mode || \"page\");\n    },\n\n    charCoords: function(pos, mode) {\n      return charCoords(this, clipPos(this.doc, pos), mode || \"page\");\n    },\n\n    coordsChar: function(coords, mode) {\n      coords = fromCoordSystem(this, coords, mode || \"page\");\n      return coordsChar(this, coords.left, coords.top);\n    },\n\n    lineAtHeight: function(height, mode) {\n      height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n      return lineAtHeight(this.doc, height + this.display.viewOffset);\n    },\n    heightAtLine: function(line, mode) {\n      var end = false, last = this.doc.first + this.doc.size - 1;\n      if (line < this.doc.first) line = this.doc.first;\n      else if (line > last) { line = last; end = true; }\n      var lineObj = getLine(this.doc, line);\n      return intoCoordSystem(this, getLine(this.doc, line), {top: 0, left: 0}, mode || \"page\").top +\n        (end ? lineObj.height : 0);\n    },\n\n    defaultTextHeight: function() { return textHeight(this.display); },\n    defaultCharWidth: function() { return charWidth(this.display); },\n\n    setGutterMarker: operation(null, function(line, gutterID, value) {\n      return changeLine(this, line, function(line) {\n        var markers = line.gutterMarkers || (line.gutterMarkers = {});\n        markers[gutterID] = value;\n        if (!value && isEmpty(markers)) line.gutterMarkers = null;\n        return true;\n      });\n    }),\n\n    clearGutter: operation(null, function(gutterID) {\n      var cm = this, doc = cm.doc, i = doc.first;\n      doc.iter(function(line) {\n        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n          line.gutterMarkers[gutterID] = null;\n          regChange(cm, i, i + 1);\n          if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;\n        }\n        ++i;\n      });\n    }),\n\n    addLineClass: operation(null, function(handle, where, cls) {\n      return changeLine(this, handle, function(line) {\n        var prop = where == \"text\" ? \"textClass\" : where == \"background\" ? \"bgClass\" : \"wrapClass\";\n        if (!line[prop]) line[prop] = cls;\n        else if (new RegExp(\"(?:^|\\\\s)\" + cls + \"(?:$|\\\\s)\").test(line[prop])) return false;\n        else line[prop] += \" \" + cls;\n        return true;\n      });\n    }),\n\n    removeLineClass: operation(null, function(handle, where, cls) {\n      return changeLine(this, handle, function(line) {\n        var prop = where == \"text\" ? \"textClass\" : where == \"background\" ? \"bgClass\" : \"wrapClass\";\n        var cur = line[prop];\n        if (!cur) return false;\n        else if (cls == null) line[prop] = null;\n        else {\n          var found = cur.match(new RegExp(\"(?:^|\\\\s+)\" + cls + \"(?:$|\\\\s+)\"));\n          if (!found) return false;\n          var end = found.index + found[0].length;\n          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n        }\n        return true;\n      });\n    }),\n\n    addLineWidget: operation(null, function(handle, node, options) {\n      return addLineWidget(this, handle, node, options);\n    }),\n\n    removeLineWidget: function(widget) { widget.clear(); },\n\n    lineInfo: function(line) {\n      if (typeof line == \"number\") {\n        if (!isLine(this.doc, line)) return null;\n        var n = line;\n        line = getLine(this.doc, line);\n        if (!line) return null;\n      } else {\n        var n = lineNo(line);\n        if (n == null) return null;\n      }\n      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n              widgets: line.widgets};\n    },\n\n    getViewport: function() { return {from: this.display.showingFrom, to: this.display.showingTo};},\n\n    addWidget: function(pos, node, scroll, vert, horiz) {\n      var display = this.display;\n      pos = cursorCoords(this, clipPos(this.doc, pos));\n      var top = pos.bottom, left = pos.left;\n      node.style.position = \"absolute\";\n      display.sizer.appendChild(node);\n      if (vert == \"over\") {\n        top = pos.top;\n      } else if (vert == \"above\" || vert == \"near\") {\n        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n        // Default to positioning above (if specified and possible); otherwise default to positioning below\n        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n          top = pos.top - node.offsetHeight;\n        else if (pos.bottom + node.offsetHeight <= vspace)\n          top = pos.bottom;\n        if (left + node.offsetWidth > hspace)\n          left = hspace - node.offsetWidth;\n      }\n      node.style.top = top + \"px\";\n      node.style.left = node.style.right = \"\";\n      if (horiz == \"right\") {\n        left = display.sizer.clientWidth - node.offsetWidth;\n        node.style.right = \"0px\";\n      } else {\n        if (horiz == \"left\") left = 0;\n        else if (horiz == \"middle\") left = (display.sizer.clientWidth - node.offsetWidth) / 2;\n        node.style.left = left + \"px\";\n      }\n      if (scroll)\n        scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);\n    },\n\n    triggerOnKeyDown: operation(null, onKeyDown),\n\n    execCommand: function(cmd) {return commands[cmd](this);},\n\n    findPosH: function(from, amount, unit, visually) {\n      var dir = 1;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        cur = findPosH(this.doc, cur, dir, unit, visually);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveH: operation(null, function(dir, unit) {\n      var sel = this.doc.sel, pos;\n      if (sel.shift || sel.extend || posEq(sel.from, sel.to))\n        pos = findPosH(this.doc, sel.head, dir, unit, this.options.rtlMoveVisually);\n      else\n        pos = dir < 0 ? sel.from : sel.to;\n      extendSelection(this.doc, pos, pos, dir);\n    }),\n\n    deleteH: operation(null, function(dir, unit) {\n      var sel = this.doc.sel;\n      if (!posEq(sel.from, sel.to)) replaceRange(this.doc, \"\", sel.from, sel.to, \"+delete\");\n      else replaceRange(this.doc, \"\", sel.from, findPosH(this.doc, sel.head, dir, unit, false), \"+delete\");\n      this.curOp.userSelChange = true;\n    }),\n\n    findPosV: function(from, amount, unit, goalColumn) {\n      var dir = 1, x = goalColumn;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        var coords = cursorCoords(this, cur, \"div\");\n        if (x == null) x = coords.left;\n        else coords.left = x;\n        cur = findPosV(this, coords, dir, unit);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveV: operation(null, function(dir, unit) {\n      var sel = this.doc.sel;\n      var pos = cursorCoords(this, sel.head, \"div\");\n      if (sel.goalColumn != null) pos.left = sel.goalColumn;\n      var target = findPosV(this, pos, dir, unit);\n\n      if (unit == \"page\") addToScrollPos(this, 0, charCoords(this, target, \"div\").top - pos.top);\n      extendSelection(this.doc, target, target, dir);\n      sel.goalColumn = pos.left;\n    }),\n\n    toggleOverwrite: function(value) {\n      if (value != null && value == this.state.overwrite) return;\n      if (this.state.overwrite = !this.state.overwrite)\n        this.display.cursor.className += \" CodeMirror-overwrite\";\n      else\n        this.display.cursor.className = this.display.cursor.className.replace(\" CodeMirror-overwrite\", \"\");\n    },\n    hasFocus: function() { return this.state.focused; },\n\n    scrollTo: operation(null, function(x, y) {\n      updateScrollPos(this, x, y);\n    }),\n    getScrollInfo: function() {\n      var scroller = this.display.scroller, co = scrollerCutOff;\n      return {left: scroller.scrollLeft, top: scroller.scrollTop,\n              height: scroller.scrollHeight - co, width: scroller.scrollWidth - co,\n              clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co};\n    },\n\n    scrollIntoView: operation(null, function(range, margin) {\n      if (range == null) range = {from: this.doc.sel.head, to: null};\n      else if (typeof range == \"number\") range = {from: Pos(range, 0), to: null};\n      else if (range.from == null) range = {from: range, to: null};\n      if (!range.to) range.to = range.from;\n      if (!margin) margin = 0;\n\n      var coords = range;\n      if (range.from.line != null) {\n        this.curOp.scrollToPos = {from: range.from, to: range.to, margin: margin};\n        coords = {from: cursorCoords(this, range.from),\n                  to: cursorCoords(this, range.to)};\n      }\n      var sPos = calculateScrollPos(this, Math.min(coords.from.left, coords.to.left),\n                                    Math.min(coords.from.top, coords.to.top) - margin,\n                                    Math.max(coords.from.right, coords.to.right),\n                                    Math.max(coords.from.bottom, coords.to.bottom) + margin);\n      updateScrollPos(this, sPos.scrollLeft, sPos.scrollTop);\n    }),\n\n    setSize: operation(null, function(width, height) {\n      function interpret(val) {\n        return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val;\n      }\n      if (width != null) this.display.wrapper.style.width = interpret(width);\n      if (height != null) this.display.wrapper.style.height = interpret(height);\n      if (this.options.lineWrapping)\n        this.display.measureLineCache.length = this.display.measureLineCachePos = 0;\n      this.curOp.forceUpdate = true;\n    }),\n\n    operation: function(f){return runInOp(this, f);},\n\n    refresh: operation(null, function() {\n      var badHeight = this.display.cachedTextHeight == null;\n      clearCaches(this);\n      updateScrollPos(this, this.doc.scrollLeft, this.doc.scrollTop);\n      regChange(this);\n      if (badHeight) estimateLineHeights(this);\n    }),\n\n    swapDoc: operation(null, function(doc) {\n      var old = this.doc;\n      old.cm = null;\n      attachDoc(this, doc);\n      clearCaches(this);\n      resetInput(this, true);\n      updateScrollPos(this, doc.scrollLeft, doc.scrollTop);\n      signalLater(this, \"swapDoc\", this, old);\n      return old;\n    }),\n\n    getInputField: function(){return this.display.input;},\n    getWrapperElement: function(){return this.display.wrapper;},\n    getScrollerElement: function(){return this.display.scroller;},\n    getGutterElement: function(){return this.display.gutters;}\n  };\n  eventMixin(CodeMirror);\n\n  // OPTION DEFAULTS\n\n  var optionHandlers = CodeMirror.optionHandlers = {};\n\n  // The default configuration options.\n  var defaults = CodeMirror.defaults = {};\n\n  function option(name, deflt, handle, notOnInit) {\n    CodeMirror.defaults[name] = deflt;\n    if (handle) optionHandlers[name] =\n      notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;\n  }\n\n  var Init = CodeMirror.Init = {toString: function(){return \"CodeMirror.Init\";}};\n\n  // These two are, on init, called from the constructor because they\n  // have to be initialized before the editor can start at all.\n  option(\"value\", \"\", function(cm, val) {\n    cm.setValue(val);\n  }, true);\n  option(\"mode\", null, function(cm, val) {\n    cm.doc.modeOption = val;\n    loadMode(cm);\n  }, true);\n\n  option(\"indentUnit\", 2, loadMode, true);\n  option(\"indentWithTabs\", false);\n  option(\"smartIndent\", true);\n  option(\"tabSize\", 4, function(cm) {\n    loadMode(cm);\n    clearCaches(cm);\n    regChange(cm);\n  }, true);\n  option(\"specialChars\", /[\\t\\u0000-\\u0019\\u00ad\\u200b\\u2028\\u2029\\ufeff]/g, function(cm, val) {\n    cm.options.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n    cm.refresh();\n  }, true);\n  option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);\n  option(\"electricChars\", true);\n  option(\"rtlMoveVisually\", !windows);\n  option(\"wholeLineUpdateBefore\", true);\n\n  option(\"theme\", \"default\", function(cm) {\n    themeChanged(cm);\n    guttersChanged(cm);\n  }, true);\n  option(\"keyMap\", \"default\", keyMapChanged);\n  option(\"extraKeys\", null);\n\n  option(\"onKeyEvent\", null);\n  option(\"onDragEvent\", null);\n\n  option(\"lineWrapping\", false, wrappingChanged, true);\n  option(\"gutters\", [], function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"fixedGutter\", true, function(cm, val) {\n    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n    cm.refresh();\n  }, true);\n  option(\"coverGutterNextToScrollbar\", false, updateScrollbars, true);\n  option(\"lineNumbers\", false, function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"firstLineNumber\", 1, guttersChanged, true);\n  option(\"lineNumberFormatter\", function(integer) {return integer;}, guttersChanged, true);\n  option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n  option(\"resetSelectionOnContextMenu\", true);\n\n  option(\"readOnly\", false, function(cm, val) {\n    if (val == \"nocursor\") {\n      onBlur(cm);\n      cm.display.input.blur();\n      cm.display.disabled = true;\n    } else {\n      cm.display.disabled = false;\n      if (!val) resetInput(cm, true);\n    }\n  });\n  option(\"dragDrop\", true);\n\n  option(\"cursorBlinkRate\", 530);\n  option(\"cursorScrollMargin\", 0);\n  option(\"cursorHeight\", 1);\n  option(\"workTime\", 100);\n  option(\"workDelay\", 100);\n  option(\"flattenSpans\", true);\n  option(\"pollInterval\", 100);\n  option(\"undoDepth\", 40, function(cm, val){cm.doc.history.undoDepth = val;});\n  option(\"historyEventDelay\", 500);\n  option(\"viewportMargin\", 10, function(cm){cm.refresh();}, true);\n  option(\"maxHighlightLength\", 10000, function(cm){loadMode(cm); cm.refresh();}, true);\n  option(\"crudeMeasuringFrom\", 10000);\n  option(\"moveInputWithCursor\", true, function(cm, val) {\n    if (!val) cm.display.inputDiv.style.top = cm.display.inputDiv.style.left = 0;\n  });\n\n  option(\"tabindex\", null, function(cm, val) {\n    cm.display.input.tabIndex = val || \"\";\n  });\n  option(\"autofocus\", null);\n\n  // MODE DEFINITION AND QUERYING\n\n  // Known modes, by name and by MIME\n  var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};\n\n  CodeMirror.defineMode = function(name, mode) {\n    if (!CodeMirror.defaults.mode && name != \"null\") CodeMirror.defaults.mode = name;\n    if (arguments.length > 2) {\n      mode.dependencies = [];\n      for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]);\n    }\n    modes[name] = mode;\n  };\n\n  CodeMirror.defineMIME = function(mime, spec) {\n    mimeModes[mime] = spec;\n  };\n\n  CodeMirror.resolveMode = function(spec) {\n    if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n      spec = mimeModes[spec];\n    } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n      var found = mimeModes[spec.name];\n      spec = createObj(found, spec);\n      spec.name = found.name;\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n      return CodeMirror.resolveMode(\"application/xml\");\n    }\n    if (typeof spec == \"string\") return {name: spec};\n    else return spec || {name: \"null\"};\n  };\n\n  CodeMirror.getMode = function(options, spec) {\n    var spec = CodeMirror.resolveMode(spec);\n    var mfactory = modes[spec.name];\n    if (!mfactory) return CodeMirror.getMode(options, \"text/plain\");\n    var modeObj = mfactory(options, spec);\n    if (modeExtensions.hasOwnProperty(spec.name)) {\n      var exts = modeExtensions[spec.name];\n      for (var prop in exts) {\n        if (!exts.hasOwnProperty(prop)) continue;\n        if (modeObj.hasOwnProperty(prop)) modeObj[\"_\" + prop] = modeObj[prop];\n        modeObj[prop] = exts[prop];\n      }\n    }\n    modeObj.name = spec.name;\n\n    return modeObj;\n  };\n\n  CodeMirror.defineMode(\"null\", function() {\n    return {token: function(stream) {stream.skipToEnd();}};\n  });\n  CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n  var modeExtensions = CodeMirror.modeExtensions = {};\n  CodeMirror.extendMode = function(mode, properties) {\n    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n    copyObj(properties, exts);\n  };\n\n  // EXTENSIONS\n\n  CodeMirror.defineExtension = function(name, func) {\n    CodeMirror.prototype[name] = func;\n  };\n  CodeMirror.defineDocExtension = function(name, func) {\n    Doc.prototype[name] = func;\n  };\n  CodeMirror.defineOption = option;\n\n  var initHooks = [];\n  CodeMirror.defineInitHook = function(f) {initHooks.push(f);};\n\n  var helpers = CodeMirror.helpers = {};\n  CodeMirror.registerHelper = function(type, name, value) {\n    if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {};\n    helpers[type][name] = value;\n  };\n\n  // UTILITIES\n\n  CodeMirror.isWordChar = isWordChar;\n\n  // MODE STATE HANDLING\n\n  // Utility functions for working with state. Exported because modes\n  // sometimes need to do this.\n  function copyState(mode, state) {\n    if (state === true) return state;\n    if (mode.copyState) return mode.copyState(state);\n    var nstate = {};\n    for (var n in state) {\n      var val = state[n];\n      if (val instanceof Array) val = val.concat([]);\n      nstate[n] = val;\n    }\n    return nstate;\n  }\n  CodeMirror.copyState = copyState;\n\n  function startState(mode, a1, a2) {\n    return mode.startState ? mode.startState(a1, a2) : true;\n  }\n  CodeMirror.startState = startState;\n\n  CodeMirror.innerMode = function(mode, state) {\n    while (mode.innerMode) {\n      var info = mode.innerMode(state);\n      if (!info || info.mode == mode) break;\n      state = info.state;\n      mode = info.mode;\n    }\n    return info || {mode: mode, state: state};\n  };\n\n  // STANDARD COMMANDS\n\n  var commands = CodeMirror.commands = {\n    selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()));},\n    killLine: function(cm) {\n      var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to);\n      if (!sel && cm.getLine(from.line).length == from.ch)\n        cm.replaceRange(\"\", from, Pos(from.line + 1, 0), \"+delete\");\n      else cm.replaceRange(\"\", from, sel ? to : Pos(from.line), \"+delete\");\n    },\n    deleteLine: function(cm) {\n      var l = cm.getCursor().line;\n      cm.replaceRange(\"\", Pos(l, 0), Pos(l), \"+delete\");\n    },\n    delLineLeft: function(cm) {\n      var cur = cm.getCursor();\n      cm.replaceRange(\"\", Pos(cur.line, 0), cur, \"+delete\");\n    },\n    undo: function(cm) {cm.undo();},\n    redo: function(cm) {cm.redo();},\n    goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},\n    goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},\n    goLineStart: function(cm) {\n      cm.extendSelection(lineStart(cm, cm.getCursor().line));\n    },\n    goLineStartSmart: function(cm) {\n      var cur = cm.getCursor(), start = lineStart(cm, cur.line);\n      var line = cm.getLineHandle(start.line);\n      var order = getOrder(line);\n      if (!order || order[0].level == 0) {\n        var firstNonWS = Math.max(0, line.text.search(/\\S/));\n        var inWS = cur.line == start.line && cur.ch <= firstNonWS && cur.ch;\n        cm.extendSelection(Pos(start.line, inWS ? 0 : firstNonWS));\n      } else cm.extendSelection(start);\n    },\n    goLineEnd: function(cm) {\n      cm.extendSelection(lineEnd(cm, cm.getCursor().line));\n    },\n    goLineRight: function(cm) {\n      var top = cm.charCoords(cm.getCursor(), \"div\").top + 5;\n      cm.extendSelection(cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\"));\n    },\n    goLineLeft: function(cm) {\n      var top = cm.charCoords(cm.getCursor(), \"div\").top + 5;\n      cm.extendSelection(cm.coordsChar({left: 0, top: top}, \"div\"));\n    },\n    goLineUp: function(cm) {cm.moveV(-1, \"line\");},\n    goLineDown: function(cm) {cm.moveV(1, \"line\");},\n    goPageUp: function(cm) {cm.moveV(-1, \"page\");},\n    goPageDown: function(cm) {cm.moveV(1, \"page\");},\n    goCharLeft: function(cm) {cm.moveH(-1, \"char\");},\n    goCharRight: function(cm) {cm.moveH(1, \"char\");},\n    goColumnLeft: function(cm) {cm.moveH(-1, \"column\");},\n    goColumnRight: function(cm) {cm.moveH(1, \"column\");},\n    goWordLeft: function(cm) {cm.moveH(-1, \"word\");},\n    goGroupRight: function(cm) {cm.moveH(1, \"group\");},\n    goGroupLeft: function(cm) {cm.moveH(-1, \"group\");},\n    goWordRight: function(cm) {cm.moveH(1, \"word\");},\n    delCharBefore: function(cm) {cm.deleteH(-1, \"char\");},\n    delCharAfter: function(cm) {cm.deleteH(1, \"char\");},\n    delWordBefore: function(cm) {cm.deleteH(-1, \"word\");},\n    delWordAfter: function(cm) {cm.deleteH(1, \"word\");},\n    delGroupBefore: function(cm) {cm.deleteH(-1, \"group\");},\n    delGroupAfter: function(cm) {cm.deleteH(1, \"group\");},\n    indentAuto: function(cm) {cm.indentSelection(\"smart\");},\n    indentMore: function(cm) {cm.indentSelection(\"add\");},\n    indentLess: function(cm) {cm.indentSelection(\"subtract\");},\n    insertTab: function(cm) {cm.replaceSelection(\"\\t\", \"end\", \"+input\");},\n    defaultTab: function(cm) {\n      if (cm.somethingSelected()) cm.indentSelection(\"add\");\n      else cm.replaceSelection(\"\\t\", \"end\", \"+input\");\n    },\n    transposeChars: function(cm) {\n      var cur = cm.getCursor(), line = cm.getLine(cur.line);\n      if (cur.ch > 0 && cur.ch < line.length - 1)\n        cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1),\n                        Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1));\n    },\n    newlineAndIndent: function(cm) {\n      operation(cm, function() {\n        cm.replaceSelection(\"\\n\", \"end\", \"+input\");\n        cm.indentLine(cm.getCursor().line, null, true);\n      })();\n    },\n    toggleOverwrite: function(cm) {cm.toggleOverwrite();}\n  };\n\n  // STANDARD KEYMAPS\n\n  var keyMap = CodeMirror.keyMap = {};\n  keyMap.basic = {\n    \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n    \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n    \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n    \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n    \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\"\n  };\n  // Note that the save and find-related commands aren't defined by\n  // default. Unknown commands are simply ignored.\n  keyMap.pcDefault = {\n    \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n    \"Ctrl-Home\": \"goDocStart\", \"Alt-Up\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Down\": \"goDocEnd\",\n    \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n    \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n    \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n    \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n    fallthrough: \"basic\"\n  };\n  keyMap.macDefault = {\n    \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n    \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n    \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineStart\", \"Cmd-Right\": \"goLineEnd\", \"Alt-Backspace\": \"delGroupBefore\",\n    \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n    \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n    \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delLineLeft\",\n    fallthrough: [\"basic\", \"emacsy\"]\n  };\n  keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n  keyMap.emacsy = {\n    \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n    \"Alt-F\": \"goWordRight\", \"Alt-B\": \"goWordLeft\", \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n    \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\", \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\",\n    \"Alt-D\": \"delWordAfter\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\", \"Ctrl-T\": \"transposeChars\"\n  };\n\n  // KEYMAP DISPATCH\n\n  function getKeyMap(val) {\n    if (typeof val == \"string\") return keyMap[val];\n    else return val;\n  }\n\n  function lookupKey(name, maps, handle) {\n    function lookup(map) {\n      map = getKeyMap(map);\n      var found = map[name];\n      if (found === false) return \"stop\";\n      if (found != null && handle(found)) return true;\n      if (map.nofallthrough) return \"stop\";\n\n      var fallthrough = map.fallthrough;\n      if (fallthrough == null) return false;\n      if (Object.prototype.toString.call(fallthrough) != \"[object Array]\")\n        return lookup(fallthrough);\n      for (var i = 0, e = fallthrough.length; i < e; ++i) {\n        var done = lookup(fallthrough[i]);\n        if (done) return done;\n      }\n      return false;\n    }\n\n    for (var i = 0; i < maps.length; ++i) {\n      var done = lookup(maps[i]);\n      if (done) return done != \"stop\";\n    }\n  }\n  function isModifierKey(event) {\n    var name = keyNames[event.keyCode];\n    return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\";\n  }\n  function keyName(event, noShift) {\n    if (opera && event.keyCode == 34 && event[\"char\"]) return false;\n    var name = keyNames[event.keyCode];\n    if (name == null || event.altGraphKey) return false;\n    if (event.altKey) name = \"Alt-\" + name;\n    if (flipCtrlCmd ? event.metaKey : event.ctrlKey) name = \"Ctrl-\" + name;\n    if (flipCtrlCmd ? event.ctrlKey : event.metaKey) name = \"Cmd-\" + name;\n    if (!noShift && event.shiftKey) name = \"Shift-\" + name;\n    return name;\n  }\n  CodeMirror.lookupKey = lookupKey;\n  CodeMirror.isModifierKey = isModifierKey;\n  CodeMirror.keyName = keyName;\n\n  // FROMTEXTAREA\n\n  CodeMirror.fromTextArea = function(textarea, options) {\n    if (!options) options = {};\n    options.value = textarea.value;\n    if (!options.tabindex && textarea.tabindex)\n      options.tabindex = textarea.tabindex;\n    if (!options.placeholder && textarea.placeholder)\n      options.placeholder = textarea.placeholder;\n    // Set autofocus to true if this textarea is focused, or if it has\n    // autofocus and no other element is focused.\n    if (options.autofocus == null) {\n      var hasFocus = document.body;\n      // doc.activeElement occasionally throws on IE\n      try { hasFocus = document.activeElement; } catch(e) {}\n      options.autofocus = hasFocus == textarea ||\n        textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n    }\n\n    function save() {textarea.value = cm.getValue();}\n    if (textarea.form) {\n      on(textarea.form, \"submit\", save);\n      // Deplorable hack to make the submit method do the right thing.\n      if (!options.leaveSubmitMethodAlone) {\n        var form = textarea.form, realSubmit = form.submit;\n        try {\n          var wrappedSubmit = form.submit = function() {\n            save();\n            form.submit = realSubmit;\n            form.submit();\n            form.submit = wrappedSubmit;\n          };\n        } catch(e) {}\n      }\n    }\n\n    textarea.style.display = \"none\";\n    var cm = CodeMirror(function(node) {\n      textarea.parentNode.insertBefore(node, textarea.nextSibling);\n    }, options);\n    cm.save = save;\n    cm.getTextArea = function() { return textarea; };\n    cm.toTextArea = function() {\n      save();\n      textarea.parentNode.removeChild(cm.getWrapperElement());\n      textarea.style.display = \"\";\n      if (textarea.form) {\n        off(textarea.form, \"submit\", save);\n        if (typeof textarea.form.submit == \"function\")\n          textarea.form.submit = realSubmit;\n      }\n    };\n    return cm;\n  };\n\n  // STRING STREAM\n\n  // Fed to the mode parsers, provides helper functions to make\n  // parsers more succinct.\n\n  // The character stream used by a mode's parser.\n  function StringStream(string, tabSize) {\n    this.pos = this.start = 0;\n    this.string = string;\n    this.tabSize = tabSize || 8;\n    this.lastColumnPos = this.lastColumnValue = 0;\n  }\n\n  StringStream.prototype = {\n    eol: function() {return this.pos >= this.string.length;},\n    sol: function() {return this.pos == 0;},\n    peek: function() {return this.string.charAt(this.pos) || undefined;},\n    next: function() {\n      if (this.pos < this.string.length)\n        return this.string.charAt(this.pos++);\n    },\n    eat: function(match) {\n      var ch = this.string.charAt(this.pos);\n      if (typeof match == \"string\") var ok = ch == match;\n      else var ok = ch && (match.test ? match.test(ch) : match(ch));\n      if (ok) {++this.pos; return ch;}\n    },\n    eatWhile: function(match) {\n      var start = this.pos;\n      while (this.eat(match)){}\n      return this.pos > start;\n    },\n    eatSpace: function() {\n      var start = this.pos;\n      while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n      return this.pos > start;\n    },\n    skipToEnd: function() {this.pos = this.string.length;},\n    skipTo: function(ch) {\n      var found = this.string.indexOf(ch, this.pos);\n      if (found > -1) {this.pos = found; return true;}\n    },\n    backUp: function(n) {this.pos -= n;},\n    column: function() {\n      if (this.lastColumnPos < this.start) {\n        this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n        this.lastColumnPos = this.start;\n      }\n      return this.lastColumnValue;\n    },\n    indentation: function() {return countColumn(this.string, null, this.tabSize);},\n    match: function(pattern, consume, caseInsensitive) {\n      if (typeof pattern == \"string\") {\n        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n        var substr = this.string.substr(this.pos, pattern.length);\n        if (cased(substr) == cased(pattern)) {\n          if (consume !== false) this.pos += pattern.length;\n          return true;\n        }\n      } else {\n        var match = this.string.slice(this.pos).match(pattern);\n        if (match && match.index > 0) return null;\n        if (match && consume !== false) this.pos += match[0].length;\n        return match;\n      }\n    },\n    current: function(){return this.string.slice(this.start, this.pos);}\n  };\n  CodeMirror.StringStream = StringStream;\n\n  // TEXTMARKERS\n\n  function TextMarker(doc, type) {\n    this.lines = [];\n    this.type = type;\n    this.doc = doc;\n  }\n  CodeMirror.TextMarker = TextMarker;\n  eventMixin(TextMarker);\n\n  TextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    var cm = this.doc.cm, withOp = cm && !cm.curOp;\n    if (withOp) startOperation(cm);\n    if (hasHandler(this, \"clear\")) {\n      var found = this.find();\n      if (found) signalLater(this, \"clear\", found.from, found.to);\n    }\n    var min = null, max = null;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (span.to != null) max = lineNo(line);\n      line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n      if (span.from != null)\n        min = lineNo(line);\n      else if (this.collapsed && !lineIsHidden(this.doc, line) && cm)\n        updateLineHeight(line, textHeight(cm.display));\n    }\n    if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {\n      var visual = visualLine(cm.doc, this.lines[i]), len = lineLength(cm.doc, visual);\n      if (len > cm.display.maxLineLength) {\n        cm.display.maxLine = visual;\n        cm.display.maxLineLength = len;\n        cm.display.maxLineChanged = true;\n      }\n    }\n\n    if (min != null && cm) regChange(cm, min, max + 1);\n    this.lines.length = 0;\n    this.explicitlyCleared = true;\n    if (this.atomic && this.doc.cantEdit) {\n      this.doc.cantEdit = false;\n      if (cm) reCheckSelection(cm);\n    }\n    if (withOp) endOperation(cm);\n  };\n\n  TextMarker.prototype.find = function() {\n    var from, to;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (span.from != null || span.to != null) {\n        var found = lineNo(line);\n        if (span.from != null) from = Pos(found, span.from);\n        if (span.to != null) to = Pos(found, span.to);\n      }\n    }\n    if (this.type == \"bookmark\") return from;\n    return from && {from: from, to: to};\n  };\n\n  TextMarker.prototype.changed = function() {\n    var pos = this.find(), cm = this.doc.cm;\n    if (!pos || !cm) return;\n    if (this.type != \"bookmark\") pos = pos.from;\n    var line = getLine(this.doc, pos.line);\n    clearCachedMeasurement(cm, line);\n    if (pos.line >= cm.display.showingFrom && pos.line < cm.display.showingTo) {\n      for (var node = cm.display.lineDiv.firstChild; node; node = node.nextSibling) if (node.lineObj == line) {\n        if (node.offsetHeight != line.height) updateLineHeight(line, node.offsetHeight);\n        break;\n      }\n      runInOp(cm, function() {\n        cm.curOp.selectionChanged = cm.curOp.forceUpdate = cm.curOp.updateMaxLine = true;\n      });\n    }\n  };\n\n  TextMarker.prototype.attachLine = function(line) {\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n        (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);\n    }\n    this.lines.push(line);\n  };\n  TextMarker.prototype.detachLine = function(line) {\n    this.lines.splice(indexOf(this.lines, line), 1);\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n    }\n  };\n\n  function markText(doc, from, to, options, type) {\n    if (options && options.shared) return markTextShared(doc, from, to, options, type);\n    if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);\n\n    var marker = new TextMarker(doc, type);\n    if (posLess(to, from) || posEq(from, to) && type == \"range\" &&\n        !(options.inclusiveLeft && options.inclusiveRight))\n      return marker;\n    if (options) copyObj(options, marker);\n    if (marker.replacedWith) {\n      marker.collapsed = true;\n      marker.replacedWith = elt(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n      if (!options.handleMouseEvents) marker.replacedWith.ignoreEvents = true;\n    }\n    if (marker.collapsed) sawCollapsedSpans = true;\n\n    if (marker.addToHistory)\n      addToHistory(doc, {from: from, to: to, origin: \"markText\"},\n                   {head: doc.sel.head, anchor: doc.sel.anchor}, NaN);\n\n    var curLine = from.line, size = 0, collapsedAtStart, collapsedAtEnd, cm = doc.cm, updateMaxLine;\n    doc.iter(curLine, to.line + 1, function(line) {\n      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(doc, line) == cm.display.maxLine)\n        updateMaxLine = true;\n      var span = {from: null, to: null, marker: marker};\n      size += line.text.length;\n      if (curLine == from.line) {span.from = from.ch; size -= from.ch;}\n      if (curLine == to.line) {span.to = to.ch; size -= line.text.length - to.ch;}\n      if (marker.collapsed) {\n        if (curLine == to.line) collapsedAtEnd = collapsedSpanAt(line, to.ch);\n        if (curLine == from.line) collapsedAtStart = collapsedSpanAt(line, from.ch);\n        else updateLineHeight(line, 0);\n      }\n      addMarkedSpan(line, span);\n      ++curLine;\n    });\n    if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {\n      if (lineIsHidden(doc, line)) updateLineHeight(line, 0);\n    });\n\n    if (marker.clearOnEnter) on(marker, \"beforeCursorEnter\", function() { marker.clear(); });\n\n    if (marker.readOnly) {\n      sawReadOnlySpans = true;\n      if (doc.history.done.length || doc.history.undone.length)\n        doc.clearHistory();\n    }\n    if (marker.collapsed) {\n      if (collapsedAtStart != collapsedAtEnd)\n        throw new Error(\"Inserting collapsed marker overlapping an existing one\");\n      marker.size = size;\n      marker.atomic = true;\n    }\n    if (cm) {\n      if (updateMaxLine) cm.curOp.updateMaxLine = true;\n      if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.collapsed)\n        regChange(cm, from.line, to.line + 1);\n      if (marker.atomic) reCheckSelection(cm);\n    }\n    return marker;\n  }\n\n  // SHARED TEXTMARKERS\n\n  function SharedTextMarker(markers, primary) {\n    this.markers = markers;\n    this.primary = primary;\n    for (var i = 0, me = this; i < markers.length; ++i) {\n      markers[i].parent = this;\n      on(markers[i], \"clear\", function(){me.clear();});\n    }\n  }\n  CodeMirror.SharedTextMarker = SharedTextMarker;\n  eventMixin(SharedTextMarker);\n\n  SharedTextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    this.explicitlyCleared = true;\n    for (var i = 0; i < this.markers.length; ++i)\n      this.markers[i].clear();\n    signalLater(this, \"clear\");\n  };\n  SharedTextMarker.prototype.find = function() {\n    return this.primary.find();\n  };\n\n  function markTextShared(doc, from, to, options, type) {\n    options = copyObj(options);\n    options.shared = false;\n    var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n    var widget = options.replacedWith;\n    linkedDocs(doc, function(doc) {\n      if (widget) options.replacedWith = widget.cloneNode(true);\n      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n      for (var i = 0; i < doc.linked.length; ++i)\n        if (doc.linked[i].isParent) return;\n      primary = lst(markers);\n    });\n    return new SharedTextMarker(markers, primary);\n  }\n\n  // TEXTMARKER SPANS\n\n  function getMarkedSpanFor(spans, marker) {\n    if (spans) for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.marker == marker) return span;\n    }\n  }\n  function removeMarkedSpan(spans, span) {\n    for (var r, i = 0; i < spans.length; ++i)\n      if (spans[i] != span) (r || (r = [])).push(spans[i]);\n    return r;\n  }\n  function addMarkedSpan(line, span) {\n    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n    span.marker.attachLine(line);\n  }\n\n  function markedSpansBefore(old, startCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n      if (startsBefore ||\n          (marker.inclusiveLeft && marker.inclusiveRight || marker.type == \"bookmark\") &&\n          span.from == startCh && (!isInsert || !span.marker.insertLeft)) {\n        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);\n        (nw || (nw = [])).push({from: span.from,\n                                to: endsAfter ? null : span.to,\n                                marker: marker});\n      }\n    }\n    return nw;\n  }\n\n  function markedSpansAfter(old, endCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n      if (endsAfter || marker.type == \"bookmark\" && span.from == endCh && (!isInsert || span.marker.insertLeft)) {\n        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);\n        (nw || (nw = [])).push({from: startsBefore ? null : span.from - endCh,\n                                to: span.to == null ? null : span.to - endCh,\n                                marker: marker});\n      }\n    }\n    return nw;\n  }\n\n  function stretchSpansOverChange(doc, change) {\n    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n    if (!oldFirst && !oldLast) return null;\n\n    var startCh = change.from.ch, endCh = change.to.ch, isInsert = posEq(change.from, change.to);\n    // Get the spans that 'stick out' on both sides\n    var first = markedSpansBefore(oldFirst, startCh, isInsert);\n    var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n    // Next, merge those two ends\n    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n    if (first) {\n      // Fix up .to properties of first\n      for (var i = 0; i < first.length; ++i) {\n        var span = first[i];\n        if (span.to == null) {\n          var found = getMarkedSpanFor(last, span.marker);\n          if (!found) span.to = startCh;\n          else if (sameLine) span.to = found.to == null ? null : found.to + offset;\n        }\n      }\n    }\n    if (last) {\n      // Fix up .from in last (or move them into first in case of sameLine)\n      for (var i = 0; i < last.length; ++i) {\n        var span = last[i];\n        if (span.to != null) span.to += offset;\n        if (span.from == null) {\n          var found = getMarkedSpanFor(first, span.marker);\n          if (!found) {\n            span.from = offset;\n            if (sameLine) (first || (first = [])).push(span);\n          }\n        } else {\n          span.from += offset;\n          if (sameLine) (first || (first = [])).push(span);\n        }\n      }\n    }\n    if (sameLine && first) {\n      // Make sure we didn't create any zero-length spans\n      for (var i = 0; i < first.length; ++i)\n        if (first[i].from != null && first[i].from == first[i].to && first[i].marker.type != \"bookmark\")\n          first.splice(i--, 1);\n      if (!first.length) first = null;\n    }\n\n    var newMarkers = [first];\n    if (!sameLine) {\n      // Fill gap with whole-line-spans\n      var gap = change.text.length - 2, gapMarkers;\n      if (gap > 0 && first)\n        for (var i = 0; i < first.length; ++i)\n          if (first[i].to == null)\n            (gapMarkers || (gapMarkers = [])).push({from: null, to: null, marker: first[i].marker});\n      for (var i = 0; i < gap; ++i)\n        newMarkers.push(gapMarkers);\n      newMarkers.push(last);\n    }\n    return newMarkers;\n  }\n\n  function mergeOldSpans(doc, change) {\n    var old = getOldSpans(doc, change);\n    var stretched = stretchSpansOverChange(doc, change);\n    if (!old) return stretched;\n    if (!stretched) return old;\n\n    for (var i = 0; i < old.length; ++i) {\n      var oldCur = old[i], stretchCur = stretched[i];\n      if (oldCur && stretchCur) {\n        spans: for (var j = 0; j < stretchCur.length; ++j) {\n          var span = stretchCur[j];\n          for (var k = 0; k < oldCur.length; ++k)\n            if (oldCur[k].marker == span.marker) continue spans;\n          oldCur.push(span);\n        }\n      } else if (stretchCur) {\n        old[i] = stretchCur;\n      }\n    }\n    return old;\n  }\n\n  function removeReadOnlyRanges(doc, from, to) {\n    var markers = null;\n    doc.iter(from.line, to.line + 1, function(line) {\n      if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {\n        var mark = line.markedSpans[i].marker;\n        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n          (markers || (markers = [])).push(mark);\n      }\n    });\n    if (!markers) return null;\n    var parts = [{from: from, to: to}];\n    for (var i = 0; i < markers.length; ++i) {\n      var mk = markers[i], m = mk.find();\n      for (var j = 0; j < parts.length; ++j) {\n        var p = parts[j];\n        if (posLess(p.to, m.from) || posLess(m.to, p.from)) continue;\n        var newParts = [j, 1];\n        if (posLess(p.from, m.from) || !mk.inclusiveLeft && posEq(p.from, m.from))\n          newParts.push({from: p.from, to: m.from});\n        if (posLess(m.to, p.to) || !mk.inclusiveRight && posEq(p.to, m.to))\n          newParts.push({from: m.to, to: p.to});\n        parts.splice.apply(parts, newParts);\n        j += newParts.length - 1;\n      }\n    }\n    return parts;\n  }\n\n  function collapsedSpanAt(line, ch) {\n    var sps = sawCollapsedSpans && line.markedSpans, found;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      if ((sp.from == null || sp.from < ch) &&\n          (sp.to == null || sp.to > ch) &&\n          (!found || found.width < sp.marker.width))\n        found = sp.marker;\n    }\n    return found;\n  }\n  function collapsedSpanAtStart(line) { return collapsedSpanAt(line, -1); }\n  function collapsedSpanAtEnd(line) { return collapsedSpanAt(line, line.text.length + 1); }\n\n  function visualLine(doc, line) {\n    var merged;\n    while (merged = collapsedSpanAtStart(line))\n      line = getLine(doc, merged.find().from.line);\n    return line;\n  }\n\n  function lineIsHidden(doc, line) {\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      if (sp.from == null) return true;\n      if (sp.marker.replacedWith) continue;\n      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n        return true;\n    }\n  }\n  function lineIsHiddenInner(doc, line, span) {\n    if (span.to == null) {\n      var end = span.marker.find().to, endLine = getLine(doc, end.line);\n      return lineIsHiddenInner(doc, endLine, getMarkedSpanFor(endLine.markedSpans, span.marker));\n    }\n    if (span.marker.inclusiveRight && span.to == line.text.length)\n      return true;\n    for (var sp, i = 0; i < line.markedSpans.length; ++i) {\n      sp = line.markedSpans[i];\n      if (sp.marker.collapsed && !sp.marker.replacedWith && sp.from == span.to &&\n          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n          lineIsHiddenInner(doc, line, sp)) return true;\n    }\n  }\n\n  function detachMarkedSpans(line) {\n    var spans = line.markedSpans;\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.detachLine(line);\n    line.markedSpans = null;\n  }\n\n  function attachMarkedSpans(line, spans) {\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.attachLine(line);\n    line.markedSpans = spans;\n  }\n\n  // LINE WIDGETS\n\n  var LineWidget = CodeMirror.LineWidget = function(cm, node, options) {\n    if (options) for (var opt in options) if (options.hasOwnProperty(opt))\n      this[opt] = options[opt];\n    this.cm = cm;\n    this.node = node;\n  };\n  eventMixin(LineWidget);\n  function widgetOperation(f) {\n    return function() {\n      var withOp = !this.cm.curOp;\n      if (withOp) startOperation(this.cm);\n      try {var result = f.apply(this, arguments);}\n      finally {if (withOp) endOperation(this.cm);}\n      return result;\n    };\n  }\n  LineWidget.prototype.clear = widgetOperation(function() {\n    var ws = this.line.widgets, no = lineNo(this.line);\n    if (no == null || !ws) return;\n    for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);\n    if (!ws.length) this.line.widgets = null;\n    var aboveVisible = heightAtLine(this.cm, this.line) < this.cm.doc.scrollTop;\n    updateLineHeight(this.line, Math.max(0, this.line.height - widgetHeight(this)));\n    if (aboveVisible) addToScrollPos(this.cm, 0, -this.height);\n    regChange(this.cm, no, no + 1);\n  });\n  LineWidget.prototype.changed = widgetOperation(function() {\n    var oldH = this.height;\n    this.height = null;\n    var diff = widgetHeight(this) - oldH;\n    if (!diff) return;\n    updateLineHeight(this.line, this.line.height + diff);\n    var no = lineNo(this.line);\n    regChange(this.cm, no, no + 1);\n  });\n\n  function widgetHeight(widget) {\n    if (widget.height != null) return widget.height;\n    if (!widget.node.parentNode || widget.node.parentNode.nodeType != 1)\n      removeChildrenAndAdd(widget.cm.display.measure, elt(\"div\", [widget.node], null, \"position: relative\"));\n    return widget.height = widget.node.offsetHeight;\n  }\n\n  function addLineWidget(cm, handle, node, options) {\n    var widget = new LineWidget(cm, node, options);\n    if (widget.noHScroll) cm.display.alignWidgets = true;\n    changeLine(cm, handle, function(line) {\n      var widgets = line.widgets || (line.widgets = []);\n      if (widget.insertAt == null) widgets.push(widget);\n      else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);\n      widget.line = line;\n      if (!lineIsHidden(cm.doc, line) || widget.showIfHidden) {\n        var aboveVisible = heightAtLine(cm, line) < cm.doc.scrollTop;\n        updateLineHeight(line, line.height + widgetHeight(widget));\n        if (aboveVisible) addToScrollPos(cm, 0, widget.height);\n      }\n      return true;\n    });\n    return widget;\n  }\n\n  // LINE DATA STRUCTURE\n\n  // Line objects. These hold state related to a line, including\n  // highlighting info (the styles array).\n  var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {\n    this.text = text;\n    attachMarkedSpans(this, markedSpans);\n    this.height = estimateHeight ? estimateHeight(this) : 1;\n  };\n  eventMixin(Line);\n  Line.prototype.lineNo = function() { return lineNo(this); };\n\n  function updateLine(line, text, markedSpans, estimateHeight) {\n    line.text = text;\n    if (line.stateAfter) line.stateAfter = null;\n    if (line.styles) line.styles = null;\n    if (line.order != null) line.order = null;\n    detachMarkedSpans(line);\n    attachMarkedSpans(line, markedSpans);\n    var estHeight = estimateHeight ? estimateHeight(line) : 1;\n    if (estHeight != line.height) updateLineHeight(line, estHeight);\n  }\n\n  function cleanUpLine(line) {\n    line.parent = null;\n    detachMarkedSpans(line);\n  }\n\n  // Run the given mode's parser over a line, update the styles\n  // array, which contains alternating fragments of text and CSS\n  // classes.\n  function runMode(cm, text, mode, state, f, forceToEnd) {\n    var flattenSpans = mode.flattenSpans;\n    if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;\n    var curStart = 0, curStyle = null;\n    var stream = new StringStream(text, cm.options.tabSize), style;\n    if (text == \"\" && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      if (stream.pos > cm.options.maxHighlightLength) {\n        flattenSpans = false;\n        if (forceToEnd) processLine(cm, text, state, stream.pos);\n        stream.pos = text.length;\n        style = null;\n      } else {\n        style = mode.token(stream, state);\n      }\n      if (!flattenSpans || curStyle != style) {\n        if (curStart < stream.start) f(stream.start, curStyle);\n        curStart = stream.start; curStyle = style;\n      }\n      stream.start = stream.pos;\n    }\n    while (curStart < stream.pos) {\n      // Webkit seems to refuse to render text nodes longer than 57444 characters\n      var pos = Math.min(stream.pos, curStart + 50000);\n      f(pos, curStyle);\n      curStart = pos;\n    }\n  }\n\n  function highlightLine(cm, line, state, forceToEnd) {\n    // A styles array always starts with a number identifying the\n    // mode/overlays that it is based on (for easy invalidation).\n    var st = [cm.state.modeGen];\n    // Compute the base array of styles\n    runMode(cm, line.text, cm.doc.mode, state, function(end, style) {\n      st.push(end, style);\n    }, forceToEnd);\n\n    // Run overlays, adjust style array.\n    for (var o = 0; o < cm.state.overlays.length; ++o) {\n      var overlay = cm.state.overlays[o], i = 1, at = 0;\n      runMode(cm, line.text, overlay.mode, true, function(end, style) {\n        var start = i;\n        // Ensure there's a token end at the current position, and that i points at it\n        while (at < end) {\n          var i_end = st[i];\n          if (i_end > end)\n            st.splice(i, 1, end, st[i+1], i_end);\n          i += 2;\n          at = Math.min(end, i_end);\n        }\n        if (!style) return;\n        if (overlay.opaque) {\n          st.splice(start, i - start, end, style);\n          i = start + 2;\n        } else {\n          for (; start < i; start += 2) {\n            var cur = st[start+1];\n            st[start+1] = cur ? cur + \" \" + style : style;\n          }\n        }\n      });\n    }\n\n    return st;\n  }\n\n  function getLineStyles(cm, line) {\n    if (!line.styles || line.styles[0] != cm.state.modeGen)\n      line.styles = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line)));\n    return line.styles;\n  }\n\n  // Lightweight form of highlight -- proceed over this line and\n  // update state, but don't save a style array.\n  function processLine(cm, text, state, startAt) {\n    var mode = cm.doc.mode;\n    var stream = new StringStream(text, cm.options.tabSize);\n    stream.start = stream.pos = startAt || 0;\n    if (text == \"\" && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol() && stream.pos <= cm.options.maxHighlightLength) {\n      mode.token(stream, state);\n      stream.start = stream.pos;\n    }\n  }\n\n  var styleToClassCache = {};\n  function interpretTokenStyle(style, builder) {\n    if (!style) return null;\n    for (;;) {\n      var lineClass = style.match(/(?:^|\\s)line-(background-)?(\\S+)/);\n      if (!lineClass) break;\n      style = style.slice(0, lineClass.index) + style.slice(lineClass.index + lineClass[0].length);\n      var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n      if (builder[prop] == null)\n        builder[prop] = lineClass[2];\n      else if (!(new RegExp(\"(?:^|\\s)\" + lineClass[2] + \"(?:$|\\s)\")).test(builder[prop]))\n        builder[prop] += \" \" + lineClass[2];\n    }\n    return styleToClassCache[style] ||\n      (styleToClassCache[style] = \"cm-\" + style.replace(/ +/g, \" cm-\"));\n  }\n\n  function buildLineContent(cm, realLine, measure, copyWidgets) {\n    var merged, line = realLine, empty = true;\n    while (merged = collapsedSpanAtStart(line))\n      line = getLine(cm.doc, merged.find().from.line);\n\n    var builder = {pre: elt(\"pre\"), col: 0, pos: 0,\n                   measure: null, measuredSomething: false, cm: cm,\n                   copyWidgets: copyWidgets};\n\n    do {\n      if (line.text) empty = false;\n      builder.measure = line == realLine && measure;\n      builder.pos = 0;\n      builder.addToken = builder.measure ? buildTokenMeasure : buildToken;\n      if ((ie || webkit) && cm.getOption(\"lineWrapping\"))\n        builder.addToken = buildTokenSplitSpaces(builder.addToken);\n      var next = insertLineContent(line, builder, getLineStyles(cm, line));\n      if (measure && line == realLine && !builder.measuredSomething) {\n        measure[0] = builder.pre.appendChild(zeroWidthElement(cm.display.measure));\n        builder.measuredSomething = true;\n      }\n      if (next) line = getLine(cm.doc, next.to.line);\n    } while (next);\n\n    if (measure && !builder.measuredSomething && !measure[0])\n      measure[0] = builder.pre.appendChild(empty ? elt(\"span\", \"\\u00a0\") : zeroWidthElement(cm.display.measure));\n    if (!builder.pre.firstChild && !lineIsHidden(cm.doc, realLine))\n      builder.pre.appendChild(document.createTextNode(\"\\u00a0\"));\n\n    var order;\n    // Work around problem with the reported dimensions of single-char\n    // direction spans on IE (issue #1129). See also the comment in\n    // cursorCoords.\n    if (measure && (ie || ie_gt10) && (order = getOrder(line))) {\n      var l = order.length - 1;\n      if (order[l].from == order[l].to) --l;\n      var last = order[l], prev = order[l - 1];\n      if (last.from + 1 == last.to && prev && last.level < prev.level) {\n        var span = measure[builder.pos - 1];\n        if (span) span.parentNode.insertBefore(span.measureRight = zeroWidthElement(cm.display.measure),\n                                               span.nextSibling);\n      }\n    }\n\n    var textClass = builder.textClass ? builder.textClass + \" \" + (realLine.textClass || \"\") : realLine.textClass;\n    if (textClass) builder.pre.className = textClass;\n\n    signal(cm, \"renderLine\", cm, realLine, builder.pre);\n    return builder;\n  }\n\n  function defaultSpecialCharPlaceholder(ch) {\n    var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n    token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n    return token;\n  }\n\n  function buildToken(builder, text, style, startStyle, endStyle, title) {\n    if (!text) return;\n    var special = builder.cm.options.specialChars;\n    if (!special.test(text)) {\n      builder.col += text.length;\n      var content = document.createTextNode(text);\n    } else {\n      var content = document.createDocumentFragment(), pos = 0;\n      while (true) {\n        special.lastIndex = pos;\n        var m = special.exec(text);\n        var skipped = m ? m.index - pos : text.length - pos;\n        if (skipped) {\n          content.appendChild(document.createTextNode(text.slice(pos, pos + skipped)));\n          builder.col += skipped;\n        }\n        if (!m) break;\n        pos += skipped + 1;\n        if (m[0] == \"\\t\") {\n          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n          content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n          builder.col += tabWidth;\n        } else {\n          var token = builder.cm.options.specialCharPlaceholder(m[0]);\n          content.appendChild(token);\n          builder.col += 1;\n        }\n      }\n    }\n    if (style || startStyle || endStyle || builder.measure) {\n      var fullStyle = style || \"\";\n      if (startStyle) fullStyle += startStyle;\n      if (endStyle) fullStyle += endStyle;\n      var token = elt(\"span\", [content], fullStyle);\n      if (title) token.title = title;\n      return builder.pre.appendChild(token);\n    }\n    builder.pre.appendChild(content);\n  }\n\n  function buildTokenMeasure(builder, text, style, startStyle, endStyle) {\n    var wrapping = builder.cm.options.lineWrapping;\n    for (var i = 0; i < text.length; ++i) {\n      var ch = text.charAt(i), start = i == 0;\n      if (ch >= \"\\ud800\" && ch < \"\\udbff\" && i < text.length - 1) {\n        ch = text.slice(i, i + 2);\n        ++i;\n      } else if (i && wrapping && spanAffectsWrapping(text, i)) {\n        builder.pre.appendChild(elt(\"wbr\"));\n      }\n      var old = builder.measure[builder.pos];\n      var span = builder.measure[builder.pos] =\n        buildToken(builder, ch, style,\n                   start && startStyle, i == text.length - 1 && endStyle);\n      if (old) span.leftSide = old.leftSide || old;\n      // In IE single-space nodes wrap differently than spaces\n      // embedded in larger text nodes, except when set to\n      // white-space: normal (issue #1268).\n      if (ie && wrapping && ch == \" \" && i && !/\\s/.test(text.charAt(i - 1)) &&\n          i < text.length - 1 && !/\\s/.test(text.charAt(i + 1)))\n        span.style.whiteSpace = \"normal\";\n      builder.pos += ch.length;\n    }\n    if (text.length) builder.measuredSomething = true;\n  }\n\n  function buildTokenSplitSpaces(inner) {\n    function split(old) {\n      var out = \" \";\n      for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? \" \" : \"\\u00a0\";\n      out += \" \";\n      return out;\n    }\n    return function(builder, text, style, startStyle, endStyle, title) {\n      return inner(builder, text.replace(/ {3,}/g, split), style, startStyle, endStyle, title);\n    };\n  }\n\n  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n    var widget = !ignoreWidget && marker.replacedWith;\n    if (widget) {\n      if (builder.copyWidgets) widget = widget.cloneNode(true);\n      builder.pre.appendChild(widget);\n      if (builder.measure) {\n        if (size) {\n          builder.measure[builder.pos] = widget;\n        } else {\n          var elt = zeroWidthElement(builder.cm.display.measure);\n          if (marker.type == \"bookmark\" && !marker.insertLeft)\n            builder.measure[builder.pos] = builder.pre.appendChild(elt);\n          else if (builder.measure[builder.pos])\n            return;\n          else\n            builder.measure[builder.pos] = builder.pre.insertBefore(elt, widget);\n        }\n        builder.measuredSomething = true;\n      }\n    }\n    builder.pos += size;\n  }\n\n  // Outputs a number of spans to make up a line, taking highlighting\n  // and marked text into account.\n  function insertLineContent(line, builder, styles) {\n    var spans = line.markedSpans, allText = line.text, at = 0;\n    if (!spans) {\n      for (var i = 1; i < styles.length; i+=2)\n        builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder));\n      return;\n    }\n\n    var len = allText.length, pos = 0, i = 1, text = \"\", style;\n    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;\n    for (;;) {\n      if (nextChange == pos) { // Update current marker set\n        spanStyle = spanEndStyle = spanStartStyle = title = \"\";\n        collapsed = null; nextChange = Infinity;\n        var foundBookmarks = [];\n        for (var j = 0; j < spans.length; ++j) {\n          var sp = spans[j], m = sp.marker;\n          if (sp.from <= pos && (sp.to == null || sp.to > pos)) {\n            if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = \"\"; }\n            if (m.className) spanStyle += \" \" + m.className;\n            if (m.startStyle && sp.from == pos) spanStartStyle += \" \" + m.startStyle;\n            if (m.endStyle && sp.to == nextChange) spanEndStyle += \" \" + m.endStyle;\n            if (m.title && !title) title = m.title;\n            if (m.collapsed && (!collapsed || collapsed.marker.size < m.size))\n              collapsed = sp;\n          } else if (sp.from > pos && nextChange > sp.from) {\n            nextChange = sp.from;\n          }\n          if (m.type == \"bookmark\" && sp.from == pos && m.replacedWith) foundBookmarks.push(m);\n        }\n        if (collapsed && (collapsed.from || 0) == pos) {\n          buildCollapsedSpan(builder, (collapsed.to == null ? len : collapsed.to) - pos,\n                             collapsed.marker, collapsed.from == null);\n          if (collapsed.to == null) return collapsed.marker.find();\n        }\n        if (!collapsed && foundBookmarks.length) for (var j = 0; j < foundBookmarks.length; ++j)\n          buildCollapsedSpan(builder, 0, foundBookmarks[j]);\n      }\n      if (pos >= len) break;\n\n      var upto = Math.min(len, nextChange);\n      while (true) {\n        if (text) {\n          var end = pos + text.length;\n          if (!collapsed) {\n            var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", title);\n          }\n          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}\n          pos = end;\n          spanStartStyle = \"\";\n        }\n        text = allText.slice(at, at = styles[i++]);\n        style = interpretTokenStyle(styles[i++], builder);\n      }\n    }\n  }\n\n  // DOCUMENT DATA STRUCTURE\n\n  function updateDoc(doc, change, markedSpans, selAfter, estimateHeight) {\n    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}\n    function update(line, text, spans) {\n      updateLine(line, text, spans, estimateHeight);\n      signalLater(line, \"change\", line, change);\n    }\n\n    var from = change.from, to = change.to, text = change.text;\n    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n    // First adjust the line structure\n    if (from.ch == 0 && to.ch == 0 && lastText == \"\" &&\n        (!doc.cm || doc.cm.options.wholeLineUpdateBefore)) {\n      // This is a whole-line replace. Treated specially to make\n      // sure line objects move the way they are supposed to.\n      for (var i = 0, e = text.length - 1, added = []; i < e; ++i)\n        added.push(new Line(text[i], spansFor(i), estimateHeight));\n      update(lastLine, lastLine.text, lastSpans);\n      if (nlines) doc.remove(from.line, nlines);\n      if (added.length) doc.insert(from.line, added);\n    } else if (firstLine == lastLine) {\n      if (text.length == 1) {\n        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n      } else {\n        for (var added = [], i = 1, e = text.length - 1; i < e; ++i)\n          added.push(new Line(text[i], spansFor(i), estimateHeight));\n        added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n        doc.insert(from.line + 1, added);\n      }\n    } else if (text.length == 1) {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n      doc.remove(from.line + 1, nlines);\n    } else {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n      for (var i = 1, e = text.length - 1, added = []; i < e; ++i)\n        added.push(new Line(text[i], spansFor(i), estimateHeight));\n      if (nlines > 1) doc.remove(from.line + 1, nlines - 1);\n      doc.insert(from.line + 1, added);\n    }\n\n    signalLater(doc, \"change\", doc, change);\n    setSelection(doc, selAfter.anchor, selAfter.head, null, true);\n  }\n\n  function LeafChunk(lines) {\n    this.lines = lines;\n    this.parent = null;\n    for (var i = 0, e = lines.length, height = 0; i < e; ++i) {\n      lines[i].parent = this;\n      height += lines[i].height;\n    }\n    this.height = height;\n  }\n\n  LeafChunk.prototype = {\n    chunkSize: function() { return this.lines.length; },\n    removeInner: function(at, n) {\n      for (var i = at, e = at + n; i < e; ++i) {\n        var line = this.lines[i];\n        this.height -= line.height;\n        cleanUpLine(line);\n        signalLater(line, \"delete\");\n      }\n      this.lines.splice(at, n);\n    },\n    collapse: function(lines) {\n      lines.splice.apply(lines, [lines.length, 0].concat(this.lines));\n    },\n    insertInner: function(at, lines, height) {\n      this.height += height;\n      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n      for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this;\n    },\n    iterN: function(at, n, op) {\n      for (var e = at + n; at < e; ++at)\n        if (op(this.lines[at])) return true;\n    }\n  };\n\n  function BranchChunk(children) {\n    this.children = children;\n    var size = 0, height = 0;\n    for (var i = 0, e = children.length; i < e; ++i) {\n      var ch = children[i];\n      size += ch.chunkSize(); height += ch.height;\n      ch.parent = this;\n    }\n    this.size = size;\n    this.height = height;\n    this.parent = null;\n  }\n\n  BranchChunk.prototype = {\n    chunkSize: function() { return this.size; },\n    removeInner: function(at, n) {\n      this.size -= n;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var rm = Math.min(n, sz - at), oldHeight = child.height;\n          child.removeInner(at, rm);\n          this.height -= oldHeight - child.height;\n          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n          if ((n -= rm) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n      if (this.size - n < 25) {\n        var lines = [];\n        this.collapse(lines);\n        this.children = [new LeafChunk(lines)];\n        this.children[0].parent = this;\n      }\n    },\n    collapse: function(lines) {\n      for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines);\n    },\n    insertInner: function(at, lines, height) {\n      this.size += lines.length;\n      this.height += height;\n      for (var i = 0, e = this.children.length; i < e; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at <= sz) {\n          child.insertInner(at, lines, height);\n          if (child.lines && child.lines.length > 50) {\n            while (child.lines.length > 50) {\n              var spilled = child.lines.splice(child.lines.length - 25, 25);\n              var newleaf = new LeafChunk(spilled);\n              child.height -= newleaf.height;\n              this.children.splice(i + 1, 0, newleaf);\n              newleaf.parent = this;\n            }\n            this.maybeSpill();\n          }\n          break;\n        }\n        at -= sz;\n      }\n    },\n    maybeSpill: function() {\n      if (this.children.length <= 10) return;\n      var me = this;\n      do {\n        var spilled = me.children.splice(me.children.length - 5, 5);\n        var sibling = new BranchChunk(spilled);\n        if (!me.parent) { // Become the parent node\n          var copy = new BranchChunk(me.children);\n          copy.parent = me;\n          me.children = [copy, sibling];\n          me = copy;\n        } else {\n          me.size -= sibling.size;\n          me.height -= sibling.height;\n          var myIndex = indexOf(me.parent.children, me);\n          me.parent.children.splice(myIndex + 1, 0, sibling);\n        }\n        sibling.parent = me.parent;\n      } while (me.children.length > 10);\n      me.parent.maybeSpill();\n    },\n    iterN: function(at, n, op) {\n      for (var i = 0, e = this.children.length; i < e; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var used = Math.min(n, sz - at);\n          if (child.iterN(at, used, op)) return true;\n          if ((n -= used) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n    }\n  };\n\n  var nextDocId = 0;\n  var Doc = CodeMirror.Doc = function(text, mode, firstLine) {\n    if (!(this instanceof Doc)) return new Doc(text, mode, firstLine);\n    if (firstLine == null) firstLine = 0;\n\n    BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n    this.first = firstLine;\n    this.scrollTop = this.scrollLeft = 0;\n    this.cantEdit = false;\n    this.history = makeHistory();\n    this.cleanGeneration = 1;\n    this.frontier = firstLine;\n    var start = Pos(firstLine, 0);\n    this.sel = {from: start, to: start, head: start, anchor: start, shift: false, extend: false, goalColumn: null};\n    this.id = ++nextDocId;\n    this.modeOption = mode;\n\n    if (typeof text == \"string\") text = splitLines(text);\n    updateDoc(this, {from: start, to: start, text: text}, null, {head: start, anchor: start});\n  };\n\n  Doc.prototype = createObj(BranchChunk.prototype, {\n    constructor: Doc,\n    iter: function(from, to, op) {\n      if (op) this.iterN(from - this.first, to - from, op);\n      else this.iterN(this.first, this.first + this.size, from);\n    },\n\n    insert: function(at, lines) {\n      var height = 0;\n      for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height;\n      this.insertInner(at - this.first, lines, height);\n    },\n    remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n    getValue: function(lineSep) {\n      var lines = getLines(this, this.first, this.first + this.size);\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n    setValue: function(code) {\n      var top = Pos(this.first, 0), last = this.first + this.size - 1;\n      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n                        text: splitLines(code), origin: \"setValue\"},\n                 {head: top, anchor: top}, true);\n    },\n    replaceRange: function(code, from, to, origin) {\n      from = clipPos(this, from);\n      to = to ? clipPos(this, to) : from;\n      replaceRange(this, code, from, to, origin);\n    },\n    getRange: function(from, to, lineSep) {\n      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n\n    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},\n    setLine: function(line, text) {\n      if (isLine(this, line))\n        replaceRange(this, text, Pos(line, 0), clipPos(this, Pos(line)));\n    },\n    removeLine: function(line) {\n      if (line) replaceRange(this, \"\", clipPos(this, Pos(line - 1)), clipPos(this, Pos(line)));\n      else replaceRange(this, \"\", Pos(0, 0), clipPos(this, Pos(1, 0)));\n    },\n\n    getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},\n    getLineNumber: function(line) {return lineNo(line);},\n\n    getLineHandleVisualStart: function(line) {\n      if (typeof line == \"number\") line = getLine(this, line);\n      return visualLine(this, line);\n    },\n\n    lineCount: function() {return this.size;},\n    firstLine: function() {return this.first;},\n    lastLine: function() {return this.first + this.size - 1;},\n\n    clipPos: function(pos) {return clipPos(this, pos);},\n\n    getCursor: function(start) {\n      var sel = this.sel, pos;\n      if (start == null || start == \"head\") pos = sel.head;\n      else if (start == \"anchor\") pos = sel.anchor;\n      else if (start == \"end\" || start === false) pos = sel.to;\n      else pos = sel.from;\n      return copyPos(pos);\n    },\n    somethingSelected: function() {return !posEq(this.sel.head, this.sel.anchor);},\n\n    setCursor: docOperation(function(line, ch, extend) {\n      var pos = clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line);\n      if (extend) extendSelection(this, pos);\n      else setSelection(this, pos, pos);\n    }),\n    setSelection: docOperation(function(anchor, head, bias) {\n      setSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), bias);\n    }),\n    extendSelection: docOperation(function(from, to, bias) {\n      extendSelection(this, clipPos(this, from), to && clipPos(this, to), bias);\n    }),\n\n    getSelection: function(lineSep) {return this.getRange(this.sel.from, this.sel.to, lineSep);},\n    replaceSelection: function(code, collapse, origin) {\n      makeChange(this, {from: this.sel.from, to: this.sel.to, text: splitLines(code), origin: origin}, collapse || \"around\");\n    },\n    undo: docOperation(function() {makeChangeFromHistory(this, \"undo\");}),\n    redo: docOperation(function() {makeChangeFromHistory(this, \"redo\");}),\n\n    setExtending: function(val) {this.sel.extend = val;},\n\n    historySize: function() {\n      var hist = this.history;\n      return {undo: hist.done.length, redo: hist.undone.length};\n    },\n    clearHistory: function() {this.history = makeHistory(this.history.maxGeneration);},\n\n    markClean: function() {\n      this.cleanGeneration = this.changeGeneration();\n    },\n    changeGeneration: function() {\n      this.history.lastOp = this.history.lastOrigin = null;\n      return this.history.generation;\n    },\n    isClean: function (gen) {\n      return this.history.generation == (gen || this.cleanGeneration);\n    },\n\n    getHistory: function() {\n      return {done: copyHistoryArray(this.history.done),\n              undone: copyHistoryArray(this.history.undone)};\n    },\n    setHistory: function(histData) {\n      var hist = this.history = makeHistory(this.history.maxGeneration);\n      hist.done = histData.done.slice(0);\n      hist.undone = histData.undone.slice(0);\n    },\n\n    markText: function(from, to, options) {\n      return markText(this, clipPos(this, from), clipPos(this, to), options, \"range\");\n    },\n    setBookmark: function(pos, options) {\n      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n                      insertLeft: options && options.insertLeft};\n      pos = clipPos(this, pos);\n      return markText(this, pos, pos, realOpts, \"bookmark\");\n    },\n    findMarksAt: function(pos) {\n      pos = clipPos(this, pos);\n      var markers = [], spans = getLine(this, pos.line).markedSpans;\n      if (spans) for (var i = 0; i < spans.length; ++i) {\n        var span = spans[i];\n        if ((span.from == null || span.from <= pos.ch) &&\n            (span.to == null || span.to >= pos.ch))\n          markers.push(span.marker.parent || span.marker);\n      }\n      return markers;\n    },\n    getAllMarks: function() {\n      var markers = [];\n      this.iter(function(line) {\n        var sps = line.markedSpans;\n        if (sps) for (var i = 0; i < sps.length; ++i)\n          if (sps[i].from != null) markers.push(sps[i].marker);\n      });\n      return markers;\n    },\n\n    posFromIndex: function(off) {\n      var ch, lineNo = this.first;\n      this.iter(function(line) {\n        var sz = line.text.length + 1;\n        if (sz > off) { ch = off; return true; }\n        off -= sz;\n        ++lineNo;\n      });\n      return clipPos(this, Pos(lineNo, ch));\n    },\n    indexFromPos: function (coords) {\n      coords = clipPos(this, coords);\n      var index = coords.ch;\n      if (coords.line < this.first || coords.ch < 0) return 0;\n      this.iter(this.first, coords.line, function (line) {\n        index += line.text.length + 1;\n      });\n      return index;\n    },\n\n    copy: function(copyHistory) {\n      var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first);\n      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n      doc.sel = {from: this.sel.from, to: this.sel.to, head: this.sel.head, anchor: this.sel.anchor,\n                 shift: this.sel.shift, extend: false, goalColumn: this.sel.goalColumn};\n      if (copyHistory) {\n        doc.history.undoDepth = this.history.undoDepth;\n        doc.setHistory(this.getHistory());\n      }\n      return doc;\n    },\n\n    linkedDoc: function(options) {\n      if (!options) options = {};\n      var from = this.first, to = this.first + this.size;\n      if (options.from != null && options.from > from) from = options.from;\n      if (options.to != null && options.to < to) to = options.to;\n      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from);\n      if (options.sharedHist) copy.history = this.history;\n      (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n      return copy;\n    },\n    unlinkDoc: function(other) {\n      if (other instanceof CodeMirror) other = other.doc;\n      if (this.linked) for (var i = 0; i < this.linked.length; ++i) {\n        var link = this.linked[i];\n        if (link.doc != other) continue;\n        this.linked.splice(i, 1);\n        other.unlinkDoc(this);\n        break;\n      }\n      // If the histories were shared, split them again\n      if (other.history == this.history) {\n        var splitIds = [other.id];\n        linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);\n        other.history = makeHistory();\n        other.history.done = copyHistoryArray(this.history.done, splitIds);\n        other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n      }\n    },\n    iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n    getMode: function() {return this.mode;},\n    getEditor: function() {return this.cm;}\n  });\n\n  Doc.prototype.eachLine = Doc.prototype.iter;\n\n  // The Doc methods that should be available on CodeMirror instances\n  var dontDelegate = \"iter insert remove copy getEditor\".split(\" \");\n  for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n    CodeMirror.prototype[prop] = (function(method) {\n      return function() {return method.apply(this.doc, arguments);};\n    })(Doc.prototype[prop]);\n\n  eventMixin(Doc);\n\n  function linkedDocs(doc, f, sharedHistOnly) {\n    function propagate(doc, skip, sharedHist) {\n      if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {\n        var rel = doc.linked[i];\n        if (rel.doc == skip) continue;\n        var shared = sharedHist && rel.sharedHist;\n        if (sharedHistOnly && !shared) continue;\n        f(rel.doc, shared);\n        propagate(rel.doc, doc, shared);\n      }\n    }\n    propagate(doc, null, true);\n  }\n\n  function attachDoc(cm, doc) {\n    if (doc.cm) throw new Error(\"This document is already in use.\");\n    cm.doc = doc;\n    doc.cm = cm;\n    estimateLineHeights(cm);\n    loadMode(cm);\n    if (!cm.options.lineWrapping) computeMaxLength(cm);\n    cm.options.mode = doc.modeOption;\n    regChange(cm);\n  }\n\n  // LINE UTILITIES\n\n  function getLine(chunk, n) {\n    n -= chunk.first;\n    while (!chunk.lines) {\n      for (var i = 0;; ++i) {\n        var child = chunk.children[i], sz = child.chunkSize();\n        if (n < sz) { chunk = child; break; }\n        n -= sz;\n      }\n    }\n    return chunk.lines[n];\n  }\n\n  function getBetween(doc, start, end) {\n    var out = [], n = start.line;\n    doc.iter(start.line, end.line + 1, function(line) {\n      var text = line.text;\n      if (n == end.line) text = text.slice(0, end.ch);\n      if (n == start.line) text = text.slice(start.ch);\n      out.push(text);\n      ++n;\n    });\n    return out;\n  }\n  function getLines(doc, from, to) {\n    var out = [];\n    doc.iter(from, to, function(line) { out.push(line.text); });\n    return out;\n  }\n\n  function updateLineHeight(line, height) {\n    var diff = height - line.height;\n    for (var n = line; n; n = n.parent) n.height += diff;\n  }\n\n  function lineNo(line) {\n    if (line.parent == null) return null;\n    var cur = line.parent, no = indexOf(cur.lines, line);\n    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n      for (var i = 0;; ++i) {\n        if (chunk.children[i] == cur) break;\n        no += chunk.children[i].chunkSize();\n      }\n    }\n    return no + cur.first;\n  }\n\n  function lineAtHeight(chunk, h) {\n    var n = chunk.first;\n    outer: do {\n      for (var i = 0, e = chunk.children.length; i < e; ++i) {\n        var child = chunk.children[i], ch = child.height;\n        if (h < ch) { chunk = child; continue outer; }\n        h -= ch;\n        n += child.chunkSize();\n      }\n      return n;\n    } while (!chunk.lines);\n    for (var i = 0, e = chunk.lines.length; i < e; ++i) {\n      var line = chunk.lines[i], lh = line.height;\n      if (h < lh) break;\n      h -= lh;\n    }\n    return n + i;\n  }\n\n  function heightAtLine(cm, lineObj) {\n    lineObj = visualLine(cm.doc, lineObj);\n\n    var h = 0, chunk = lineObj.parent;\n    for (var i = 0; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i];\n      if (line == lineObj) break;\n      else h += line.height;\n    }\n    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n      for (var i = 0; i < p.children.length; ++i) {\n        var cur = p.children[i];\n        if (cur == chunk) break;\n        else h += cur.height;\n      }\n    }\n    return h;\n  }\n\n  function getOrder(line) {\n    var order = line.order;\n    if (order == null) order = line.order = bidiOrdering(line.text);\n    return order;\n  }\n\n  // HISTORY\n\n  function makeHistory(startGen) {\n    return {\n      // Arrays of history events. Doing something adds an event to\n      // done and clears undo. Undoing moves events from done to\n      // undone, redoing moves them in the other direction.\n      done: [], undone: [], undoDepth: Infinity,\n      // Used to track when changes can be merged into a single undo\n      // event\n      lastTime: 0, lastOp: null, lastOrigin: null,\n      // Used by the isClean() method\n      generation: startGen || 1, maxGeneration: startGen || 1\n    };\n  }\n\n  function attachLocalSpans(doc, change, from, to) {\n    var existing = change[\"spans_\" + doc.id], n = 0;\n    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {\n      if (line.markedSpans)\n        (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans;\n      ++n;\n    });\n  }\n\n  function historyChangeFromChange(doc, change) {\n    var from = { line: change.from.line, ch: change.from.ch };\n    var histChange = {from: from, to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n    linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);\n    return histChange;\n  }\n\n  function addToHistory(doc, change, selAfter, opId) {\n    var hist = doc.history;\n    hist.undone.length = 0;\n    var time = +new Date, cur = lst(hist.done);\n\n    if (cur &&\n        (hist.lastOp == opId ||\n         hist.lastOrigin == change.origin && change.origin &&\n         ((change.origin.charAt(0) == \"+\" && doc.cm && hist.lastTime > time - doc.cm.options.historyEventDelay) ||\n          change.origin.charAt(0) == \"*\"))) {\n      // Merge this change into the last event\n      var last = lst(cur.changes);\n      if (posEq(change.from, change.to) && posEq(change.from, last.to)) {\n        // Optimized case for simple insertion -- don't want to add\n        // new changesets for every character typed\n        last.to = changeEnd(change);\n      } else {\n        // Add new sub-event\n        cur.changes.push(historyChangeFromChange(doc, change));\n      }\n      cur.anchorAfter = selAfter.anchor; cur.headAfter = selAfter.head;\n    } else {\n      // Can not be merged, start a new event.\n      cur = {changes: [historyChangeFromChange(doc, change)],\n             generation: hist.generation,\n             anchorBefore: doc.sel.anchor, headBefore: doc.sel.head,\n             anchorAfter: selAfter.anchor, headAfter: selAfter.head};\n      hist.done.push(cur);\n      hist.generation = ++hist.maxGeneration;\n      while (hist.done.length > hist.undoDepth)\n        hist.done.shift();\n    }\n    hist.lastTime = time;\n    hist.lastOp = opId;\n    hist.lastOrigin = change.origin;\n  }\n\n  function removeClearedSpans(spans) {\n    if (!spans) return null;\n    for (var i = 0, out; i < spans.length; ++i) {\n      if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }\n      else if (out) out.push(spans[i]);\n    }\n    return !out ? spans : out.length ? out : null;\n  }\n\n  function getOldSpans(doc, change) {\n    var found = change[\"spans_\" + doc.id];\n    if (!found) return null;\n    for (var i = 0, nw = []; i < change.text.length; ++i)\n      nw.push(removeClearedSpans(found[i]));\n    return nw;\n  }\n\n  // Used both to provide a JSON-safe object in .getHistory, and, when\n  // detaching a document, to split the history in two\n  function copyHistoryArray(events, newGroup) {\n    for (var i = 0, copy = []; i < events.length; ++i) {\n      var event = events[i], changes = event.changes, newChanges = [];\n      copy.push({changes: newChanges, anchorBefore: event.anchorBefore, headBefore: event.headBefore,\n                 anchorAfter: event.anchorAfter, headAfter: event.headAfter});\n      for (var j = 0; j < changes.length; ++j) {\n        var change = changes[j], m;\n        newChanges.push({from: change.from, to: change.to, text: change.text});\n        if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\\d+)$/)) {\n          if (indexOf(newGroup, Number(m[1])) > -1) {\n            lst(newChanges)[prop] = change[prop];\n            delete change[prop];\n          }\n        }\n      }\n    }\n    return copy;\n  }\n\n  // Rebasing/resetting history to deal with externally-sourced changes\n\n  function rebaseHistSel(pos, from, to, diff) {\n    if (to < pos.line) {\n      pos.line += diff;\n    } else if (from < pos.line) {\n      pos.line = from;\n      pos.ch = 0;\n    }\n  }\n\n  // Tries to rebase an array of history events given a change in the\n  // document. If the change touches the same lines as the event, the\n  // event, and everything 'behind' it, is discarded. If the change is\n  // before the event, the event's positions are updated. Uses a\n  // copy-on-write scheme for the positions, to avoid having to\n  // reallocate them all on every rebase, but also avoid problems with\n  // shared position objects being unsafely updated.\n  function rebaseHistArray(array, from, to, diff) {\n    for (var i = 0; i < array.length; ++i) {\n      var sub = array[i], ok = true;\n      for (var j = 0; j < sub.changes.length; ++j) {\n        var cur = sub.changes[j];\n        if (!sub.copied) { cur.from = copyPos(cur.from); cur.to = copyPos(cur.to); }\n        if (to < cur.from.line) {\n          cur.from.line += diff;\n          cur.to.line += diff;\n        } else if (from <= cur.to.line) {\n          ok = false;\n          break;\n        }\n      }\n      if (!sub.copied) {\n        sub.anchorBefore = copyPos(sub.anchorBefore); sub.headBefore = copyPos(sub.headBefore);\n        sub.anchorAfter = copyPos(sub.anchorAfter); sub.readAfter = copyPos(sub.headAfter);\n        sub.copied = true;\n      }\n      if (!ok) {\n        array.splice(0, i + 1);\n        i = 0;\n      } else {\n        rebaseHistSel(sub.anchorBefore); rebaseHistSel(sub.headBefore);\n        rebaseHistSel(sub.anchorAfter); rebaseHistSel(sub.headAfter);\n      }\n    }\n  }\n\n  function rebaseHist(hist, change) {\n    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n    rebaseHistArray(hist.done, from, to, diff);\n    rebaseHistArray(hist.undone, from, to, diff);\n  }\n\n  // EVENT OPERATORS\n\n  function stopMethod() {e_stop(this);}\n  // Ensure an event has a stop method.\n  function addStop(event) {\n    if (!event.stop) event.stop = stopMethod;\n    return event;\n  }\n\n  function e_preventDefault(e) {\n    if (e.preventDefault) e.preventDefault();\n    else e.returnValue = false;\n  }\n  function e_stopPropagation(e) {\n    if (e.stopPropagation) e.stopPropagation();\n    else e.cancelBubble = true;\n  }\n  function e_defaultPrevented(e) {\n    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;\n  }\n  function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n  CodeMirror.e_stop = e_stop;\n  CodeMirror.e_preventDefault = e_preventDefault;\n  CodeMirror.e_stopPropagation = e_stopPropagation;\n\n  function e_target(e) {return e.target || e.srcElement;}\n  function e_button(e) {\n    var b = e.which;\n    if (b == null) {\n      if (e.button & 1) b = 1;\n      else if (e.button & 2) b = 3;\n      else if (e.button & 4) b = 2;\n    }\n    if (mac && e.ctrlKey && b == 1) b = 3;\n    return b;\n  }\n\n  // EVENT HANDLING\n\n  function on(emitter, type, f) {\n    if (emitter.addEventListener)\n      emitter.addEventListener(type, f, false);\n    else if (emitter.attachEvent)\n      emitter.attachEvent(\"on\" + type, f);\n    else {\n      var map = emitter._handlers || (emitter._handlers = {});\n      var arr = map[type] || (map[type] = []);\n      arr.push(f);\n    }\n  }\n\n  function off(emitter, type, f) {\n    if (emitter.removeEventListener)\n      emitter.removeEventListener(type, f, false);\n    else if (emitter.detachEvent)\n      emitter.detachEvent(\"on\" + type, f);\n    else {\n      var arr = emitter._handlers && emitter._handlers[type];\n      if (!arr) return;\n      for (var i = 0; i < arr.length; ++i)\n        if (arr[i] == f) { arr.splice(i, 1); break; }\n    }\n  }\n\n  function signal(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2);\n    for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args);\n  }\n\n  var delayedCallbacks, delayedCallbackDepth = 0;\n  function signalLater(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2);\n    if (!delayedCallbacks) {\n      ++delayedCallbackDepth;\n      delayedCallbacks = [];\n      setTimeout(fireDelayed, 0);\n    }\n    function bnd(f) {return function(){f.apply(null, args);};};\n    for (var i = 0; i < arr.length; ++i)\n      delayedCallbacks.push(bnd(arr[i]));\n  }\n\n  function signalDOMEvent(cm, e, override) {\n    signal(cm, override || e.type, cm, e);\n    return e_defaultPrevented(e) || e.codemirrorIgnore;\n  }\n\n  function fireDelayed() {\n    --delayedCallbackDepth;\n    var delayed = delayedCallbacks;\n    delayedCallbacks = null;\n    for (var i = 0; i < delayed.length; ++i) delayed[i]();\n  }\n\n  function hasHandler(emitter, type) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    return arr && arr.length > 0;\n  }\n\n  CodeMirror.on = on; CodeMirror.off = off; CodeMirror.signal = signal;\n\n  function eventMixin(ctor) {\n    ctor.prototype.on = function(type, f) {on(this, type, f);};\n    ctor.prototype.off = function(type, f) {off(this, type, f);};\n  }\n\n  // MISC UTILITIES\n\n  // Number of pixels added to scroller and sizer to hide scrollbar\n  var scrollerCutOff = 30;\n\n  // Returned or thrown by various protocols to signal 'I'm not\n  // handling this'.\n  var Pass = CodeMirror.Pass = {toString: function(){return \"CodeMirror.Pass\";}};\n\n  function Delayed() {this.id = null;}\n  Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}};\n\n  // Counts the column offset in a string, taking tabs into account.\n  // Used mostly to find indentation.\n  function countColumn(string, end, tabSize, startIndex, startValue) {\n    if (end == null) {\n      end = string.search(/[^\\s\\u00a0]/);\n      if (end == -1) end = string.length;\n    }\n    for (var i = startIndex || 0, n = startValue || 0; i < end; ++i) {\n      if (string.charAt(i) == \"\\t\") n += tabSize - (n % tabSize);\n      else ++n;\n    }\n    return n;\n  }\n  CodeMirror.countColumn = countColumn;\n\n  var spaceStrs = [\"\"];\n  function spaceStr(n) {\n    while (spaceStrs.length <= n)\n      spaceStrs.push(lst(spaceStrs) + \" \");\n    return spaceStrs[n];\n  }\n\n  function lst(arr) { return arr[arr.length-1]; }\n\n  function selectInput(node) {\n    if (ios) { // Mobile Safari apparently has a bug where select() is broken.\n      node.selectionStart = 0;\n      node.selectionEnd = node.value.length;\n    } else {\n      // Suppress mysterious IE10 errors\n      try { node.select(); }\n      catch(_e) {}\n    }\n  }\n\n  function indexOf(collection, elt) {\n    if (collection.indexOf) return collection.indexOf(elt);\n    for (var i = 0, e = collection.length; i < e; ++i)\n      if (collection[i] == elt) return i;\n    return -1;\n  }\n\n  function createObj(base, props) {\n    function Obj() {}\n    Obj.prototype = base;\n    var inst = new Obj();\n    if (props) copyObj(props, inst);\n    return inst;\n  }\n\n  function copyObj(obj, target) {\n    if (!target) target = {};\n    for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];\n    return target;\n  }\n\n  function emptyArray(size) {\n    for (var a = [], i = 0; i < size; ++i) a.push(undefined);\n    return a;\n  }\n\n  function bind(f) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return function(){return f.apply(null, args);};\n  }\n\n  var nonASCIISingleCaseWordChar = /[\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n  function isWordChar(ch) {\n    return /\\w/.test(ch) || ch > \"\\x80\" &&\n      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));\n  }\n\n  function isEmpty(obj) {\n    for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;\n    return true;\n  }\n\n  var isExtendingChar = /[\\u0300-\\u036F\\u0483-\\u0487\\u0488-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1-\\u05C2\\u05C4-\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7-\\u06E8\\u06EA-\\u06ED\\uA66F\\u1DC0–\\u1DFF\\u20D0–\\u20FF\\uA670-\\uA672\\uA674-\\uA67D\\uA69F\\udc00-\\udfff\\uFE20–\\uFE2F]/;\n\n  // DOM UTILITIES\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) e.className = className;\n    if (style) e.style.cssText = style;\n    if (typeof content == \"string\") setTextContent(e, content);\n    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);\n    return e;\n  }\n\n  function removeChildren(e) {\n    for (var count = e.childNodes.length; count > 0; --count)\n      e.removeChild(e.firstChild);\n    return e;\n  }\n\n  function removeChildrenAndAdd(parent, e) {\n    return removeChildren(parent).appendChild(e);\n  }\n\n  function setTextContent(e, str) {\n    if (ie_lt9) {\n      e.innerHTML = \"\";\n      e.appendChild(document.createTextNode(str));\n    } else e.textContent = str;\n  }\n\n  function getRect(node) {\n    return node.getBoundingClientRect();\n  }\n  CodeMirror.replaceGetRect = function(f) { getRect = f; };\n\n  // FEATURE DETECTION\n\n  // Detect drag-and-drop\n  var dragAndDrop = function() {\n    // There is *some* kind of drag-and-drop support in IE6-8, but I\n    // couldn't get it to work yet.\n    if (ie_lt9) return false;\n    var div = elt('div');\n    return \"draggable\" in div || \"dragDrop\" in div;\n  }();\n\n  // For a reason I have yet to figure out, some browsers disallow\n  // word wrapping between certain characters *only* if a new inline\n  // element is started between them. This makes it hard to reliably\n  // measure the position of things, since that requires inserting an\n  // extra span. This terribly fragile set of tests matches the\n  // character combinations that suffer from this phenomenon on the\n  // various browsers.\n  function spanAffectsWrapping() { return false; }\n  if (gecko) // Only for \"$'\"\n    spanAffectsWrapping = function(str, i) {\n      return str.charCodeAt(i - 1) == 36 && str.charCodeAt(i) == 39;\n    };\n  else if (safari && !/Version\\/([6-9]|\\d\\d)\\b/.test(navigator.userAgent))\n    spanAffectsWrapping = function(str, i) {\n      return /\\-[^ \\-?]|\\?[^ !\\'\\\"\\),.\\-\\/:;\\?\\]\\}]/.test(str.slice(i - 1, i + 1));\n    };\n  else if (webkit && /Chrome\\/(?:29|[3-9]\\d|\\d\\d\\d)\\./.test(navigator.userAgent))\n    spanAffectsWrapping = function(str, i) {\n      var code = str.charCodeAt(i - 1);\n      return code >= 8208 && code <= 8212;\n    };\n  else if (webkit)\n    spanAffectsWrapping = function(str, i) {\n      if (i > 1 && str.charCodeAt(i - 1) == 45) {\n        if (/\\w/.test(str.charAt(i - 2)) && /[^\\-?\\.]/.test(str.charAt(i))) return true;\n        if (i > 2 && /[\\d\\.,]/.test(str.charAt(i - 2)) && /[\\d\\.,]/.test(str.charAt(i))) return false;\n      }\n      return /[~!#%&*)=+}\\]\\\\|\\\"\\.>,:;][({[<]|-[^\\-?\\.\\u2010-\\u201f\\u2026]|\\?[\\w~`@#$%\\^&*(_=+{[|><]|…[\\w~`@#$%\\^&*(_=+{[><]/.test(str.slice(i - 1, i + 1));\n    };\n\n  var knownScrollbarWidth;\n  function scrollbarWidth(measure) {\n    if (knownScrollbarWidth != null) return knownScrollbarWidth;\n    var test = elt(\"div\", null, null, \"width: 50px; height: 50px; overflow-x: scroll\");\n    removeChildrenAndAdd(measure, test);\n    if (test.offsetWidth)\n      knownScrollbarWidth = test.offsetHeight - test.clientHeight;\n    return knownScrollbarWidth || 0;\n  }\n\n  var zwspSupported;\n  function zeroWidthElement(measure) {\n    if (zwspSupported == null) {\n      var test = elt(\"span\", \"\\u200b\");\n      removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n      if (measure.firstChild.offsetHeight != 0)\n        zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !ie_lt8;\n    }\n    if (zwspSupported) return elt(\"span\", \"\\u200b\");\n    else return elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n  }\n\n  // See if \"\".split is the broken IE version, if so, provide an\n  // alternative way to split lines.\n  var splitLines = \"\\n\\nb\".split(/\\n/).length != 3 ? function(string) {\n    var pos = 0, result = [], l = string.length;\n    while (pos <= l) {\n      var nl = string.indexOf(\"\\n\", pos);\n      if (nl == -1) nl = string.length;\n      var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n      var rt = line.indexOf(\"\\r\");\n      if (rt != -1) {\n        result.push(line.slice(0, rt));\n        pos += rt + 1;\n      } else {\n        result.push(line);\n        pos = nl + 1;\n      }\n    }\n    return result;\n  } : function(string){return string.split(/\\r\\n?|\\n/);};\n  CodeMirror.splitLines = splitLines;\n\n  var hasSelection = window.getSelection ? function(te) {\n    try { return te.selectionStart != te.selectionEnd; }\n    catch(e) { return false; }\n  } : function(te) {\n    try {var range = te.ownerDocument.selection.createRange();}\n    catch(e) {}\n    if (!range || range.parentElement() != te) return false;\n    return range.compareEndPoints(\"StartToEnd\", range) != 0;\n  };\n\n  var hasCopyEvent = (function() {\n    var e = elt(\"div\");\n    if (\"oncopy\" in e) return true;\n    e.setAttribute(\"oncopy\", \"return;\");\n    return typeof e.oncopy == 'function';\n  })();\n\n  // KEY NAMING\n\n  var keyNames = {3: \"Enter\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n                  19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n                  36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n                  46: \"Delete\", 59: \";\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\", 109: \"-\", 107: \"=\", 127: \"Delete\",\n                  186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n                  221: \"]\", 222: \"'\", 63276: \"PageUp\", 63277: \"PageDown\", 63275: \"End\", 63273: \"Home\",\n                  63234: \"Left\", 63232: \"Up\", 63235: \"Right\", 63233: \"Down\", 63302: \"Insert\", 63272: \"Delete\"};\n  CodeMirror.keyNames = keyNames;\n  (function() {\n    // Number keys\n    for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i);\n    // Alphabetic keys\n    for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);\n    // Function keys\n    for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = \"F\" + i;\n  })();\n\n  // BIDI HELPERS\n\n  function iterateBidiSections(order, from, to, f) {\n    if (!order) return f(from, to, \"ltr\");\n    var found = false;\n    for (var i = 0; i < order.length; ++i) {\n      var part = order[i];\n      if (part.from < to && part.to > from || from == to && part.to == from) {\n        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\");\n        found = true;\n      }\n    }\n    if (!found) f(from, to, \"ltr\");\n  }\n\n  function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }\n  function bidiRight(part) { return part.level % 2 ? part.from : part.to; }\n\n  function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }\n  function lineRight(line) {\n    var order = getOrder(line);\n    if (!order) return line.text.length;\n    return bidiRight(lst(order));\n  }\n\n  function lineStart(cm, lineN) {\n    var line = getLine(cm.doc, lineN);\n    var visual = visualLine(cm.doc, line);\n    if (visual != line) lineN = lineNo(visual);\n    var order = getOrder(visual);\n    var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);\n    return Pos(lineN, ch);\n  }\n  function lineEnd(cm, lineN) {\n    var merged, line;\n    while (merged = collapsedSpanAtEnd(line = getLine(cm.doc, lineN)))\n      lineN = merged.find().to.line;\n    var order = getOrder(line);\n    var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);\n    return Pos(lineN, ch);\n  }\n\n  function compareBidiLevel(order, a, b) {\n    var linedir = order[0].level;\n    if (a == linedir) return true;\n    if (b == linedir) return false;\n    return a < b;\n  }\n  var bidiOther;\n  function getBidiPartAt(order, pos) {\n    for (var i = 0, found; i < order.length; ++i) {\n      var cur = order[i];\n      if (cur.from < pos && cur.to > pos) { bidiOther = null; return i; }\n      if (cur.from == pos || cur.to == pos) {\n        if (found == null) {\n          found = i;\n        } else if (compareBidiLevel(order, cur.level, order[found].level)) {\n          bidiOther = found;\n          return i;\n        } else {\n          bidiOther = i;\n          return found;\n        }\n      }\n    }\n    bidiOther = null;\n    return found;\n  }\n\n  function moveInLine(line, pos, dir, byUnit) {\n    if (!byUnit) return pos + dir;\n    do pos += dir;\n    while (pos > 0 && isExtendingChar.test(line.text.charAt(pos)));\n    return pos;\n  }\n\n  // This is somewhat involved. It is needed in order to move\n  // 'visually' through bi-directional text -- i.e., pressing left\n  // should make the cursor go left, even when in RTL text. The\n  // tricky part is the 'jumps', where RTL and LTR text touch each\n  // other. This often requires the cursor offset to move more than\n  // one unit, in order to visually move one unit.\n  function moveVisually(line, start, dir, byUnit) {\n    var bidi = getOrder(line);\n    if (!bidi) return moveLogically(line, start, dir, byUnit);\n    var pos = getBidiPartAt(bidi, start), part = bidi[pos];\n    var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);\n\n    for (;;) {\n      if (target > part.from && target < part.to) return target;\n      if (target == part.from || target == part.to) {\n        if (getBidiPartAt(bidi, target) == pos) return target;\n        part = bidi[pos += dir];\n        return (dir > 0) == part.level % 2 ? part.to : part.from;\n      } else {\n        part = bidi[pos += dir];\n        if (!part) return null;\n        if ((dir > 0) == part.level % 2)\n          target = moveInLine(line, part.to, -1, byUnit);\n        else\n          target = moveInLine(line, part.from, 1, byUnit);\n      }\n    }\n  }\n\n  function moveLogically(line, start, dir, byUnit) {\n    var target = start + dir;\n    if (byUnit) while (target > 0 && isExtendingChar.test(line.text.charAt(target))) target += dir;\n    return target < 0 || target > line.text.length ? null : target;\n  }\n\n  // Bidirectional ordering algorithm\n  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n  // that this (partially) implements.\n\n  // One-char codes used for character types:\n  // L (L):   Left-to-Right\n  // R (R):   Right-to-Left\n  // r (AL):  Right-to-Left Arabic\n  // 1 (EN):  European Number\n  // + (ES):  European Number Separator\n  // % (ET):  European Number Terminator\n  // n (AN):  Arabic Number\n  // , (CS):  Common Number Separator\n  // m (NSM): Non-Spacing Mark\n  // b (BN):  Boundary Neutral\n  // s (B):   Paragraph Separator\n  // t (S):   Segment Separator\n  // w (WS):  Whitespace\n  // N (ON):  Other Neutrals\n\n  // Returns null if characters are ordered as they appear\n  // (left-to-right), or an array of sections ({from, to, level}\n  // objects) in the order in which they occur visually.\n  var bidiOrdering = (function() {\n    // Character types for codepoints 0 to 0xff\n    var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL\";\n    // Character types for codepoints 0x600 to 0x6ff\n    var arabicTypes = \"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr\";\n    function charType(code) {\n      if (code <= 0xff) return lowTypes.charAt(code);\n      else if (0x590 <= code && code <= 0x5f4) return \"R\";\n      else if (0x600 <= code && code <= 0x6ff) return arabicTypes.charAt(code - 0x600);\n      else if (0x700 <= code && code <= 0x8ac) return \"r\";\n      else return \"L\";\n    }\n\n    var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n    // Browsers seem to always treat the boundaries of block elements as being L.\n    var outerType = \"L\";\n\n    return function(str) {\n      if (!bidiRE.test(str)) return false;\n      var len = str.length, types = [];\n      for (var i = 0, type; i < len; ++i)\n        types.push(type = charType(str.charCodeAt(i)));\n\n      // W1. Examine each non-spacing mark (NSM) in the level run, and\n      // change the type of the NSM to the type of the previous\n      // character. If the NSM is at the start of the level run, it will\n      // get the type of sor.\n      for (var i = 0, prev = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"m\") types[i] = prev;\n        else prev = type;\n      }\n\n      // W2. Search backwards from each instance of a European number\n      // until the first strong type (R, L, AL, or sor) is found. If an\n      // AL is found, change the type of the European number to Arabic\n      // number.\n      // W3. Change all ALs to R.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"1\" && cur == \"r\") types[i] = \"n\";\n        else if (isStrong.test(type)) { cur = type; if (type == \"r\") types[i] = \"R\"; }\n      }\n\n      // W4. A single European separator between two European numbers\n      // changes to a European number. A single common separator between\n      // two numbers of the same type changes to that type.\n      for (var i = 1, prev = types[0]; i < len - 1; ++i) {\n        var type = types[i];\n        if (type == \"+\" && prev == \"1\" && types[i+1] == \"1\") types[i] = \"1\";\n        else if (type == \",\" && prev == types[i+1] &&\n                 (prev == \"1\" || prev == \"n\")) types[i] = prev;\n        prev = type;\n      }\n\n      // W5. A sequence of European terminators adjacent to European\n      // numbers changes to all European numbers.\n      // W6. Otherwise, separators and terminators change to Other\n      // Neutral.\n      for (var i = 0; i < len; ++i) {\n        var type = types[i];\n        if (type == \",\") types[i] = \"N\";\n        else if (type == \"%\") {\n          for (var end = i + 1; end < len && types[end] == \"%\"; ++end) {}\n          var replace = (i && types[i-1] == \"!\") || (end < len - 1 && types[end] == \"1\") ? \"1\" : \"N\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // W7. Search backwards from each instance of a European number\n      // until the first strong type (R, L, or sor) is found. If an L is\n      // found, then change the type of the European number to L.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (cur == \"L\" && type == \"1\") types[i] = \"L\";\n        else if (isStrong.test(type)) cur = type;\n      }\n\n      // N1. A sequence of neutrals takes the direction of the\n      // surrounding strong text if the text on both sides has the same\n      // direction. European and Arabic numbers act as if they were R in\n      // terms of their influence on neutrals. Start-of-level-run (sor)\n      // and end-of-level-run (eor) are used at level run boundaries.\n      // N2. Any remaining neutrals take the embedding direction.\n      for (var i = 0; i < len; ++i) {\n        if (isNeutral.test(types[i])) {\n          for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}\n          var before = (i ? types[i-1] : outerType) == \"L\";\n          var after = (end < len - 1 ? types[end] : outerType) == \"L\";\n          var replace = before || after ? \"L\" : \"R\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // Here we depart from the documented algorithm, in order to avoid\n      // building up an actual levels array. Since there are only three\n      // levels (0, 1, 2) in an implementation that doesn't take\n      // explicit embedding into account, we can build up the order on\n      // the fly, without following the level-based algorithm.\n      var order = [], m;\n      for (var i = 0; i < len;) {\n        if (countsAsLeft.test(types[i])) {\n          var start = i;\n          for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}\n          order.push({from: start, to: i, level: 0});\n        } else {\n          var pos = i, at = order.length;\n          for (++i; i < len && types[i] != \"L\"; ++i) {}\n          for (var j = pos; j < i;) {\n            if (countsAsNum.test(types[j])) {\n              if (pos < j) order.splice(at, 0, {from: pos, to: j, level: 1});\n              var nstart = j;\n              for (++j; j < i && countsAsNum.test(types[j]); ++j) {}\n              order.splice(at, 0, {from: nstart, to: j, level: 2});\n              pos = j;\n            } else ++j;\n          }\n          if (pos < i) order.splice(at, 0, {from: pos, to: i, level: 1});\n        }\n      }\n      if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n        order[0].from = m[0].length;\n        order.unshift({from: 0, to: m[0].length, level: 0});\n      }\n      if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n        lst(order).to -= m[0].length;\n        order.push({from: len - m[0].length, to: len, level: 0});\n      }\n      if (order[0].level != lst(order).level)\n        order.push({from: len, to: len, level: order[0].level});\n\n      return order;\n    };\n  })();\n\n  // THE END\n\n  CodeMirror.version = \"3.20.0\";\n\n  return CodeMirror;\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/libs/es5-shim.js",
    "content": "/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2015 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n\n// vim: ts=4 sts=4 sw=4 expandtab\n\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n;\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n    'use strict';\n\n    /* global define, exports, module */\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(factory);\n    } else if (typeof exports === 'object') {\n        // Node. Does not work with strict CommonJS, but\n        // only CommonJS-like enviroments that support module.exports,\n        // like Node.\n        module.exports = factory();\n    } else {\n        // Browser globals (root is window)\n        root.returnExports = factory();\n    }\n}(this, function () {\n\n/**\n * Brings an environment as close to ECMAScript 5 compliance\n * as is possible with the facilities of erstwhile engines.\n *\n * Annotated ES5: http://es5.github.com/ (specific links below)\n * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf\n * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/\n */\n\n// Shortcut to an often accessed properties, in order to avoid multiple\n// dereference that costs universally. This also holds a reference to known-good\n// functions.\nvar $Array = Array;\nvar ArrayPrototype = $Array.prototype;\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\nvar FunctionPrototype = Function.prototype;\nvar $String = String;\nvar StringPrototype = $String.prototype;\nvar $Number = Number;\nvar NumberPrototype = $Number.prototype;\nvar array_slice = ArrayPrototype.slice;\nvar array_splice = ArrayPrototype.splice;\nvar array_push = ArrayPrototype.push;\nvar array_unshift = ArrayPrototype.unshift;\nvar array_concat = ArrayPrototype.concat;\nvar call = FunctionPrototype.call;\nvar max = Math.max;\nvar min = Math.min;\n\n// Having a toString local variable name breaks in Opera so use to_string.\nvar to_string = ObjectPrototype.toString;\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };\nvar isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; };\nvar isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; };\n\n/* inlined from http://npmjs.com/define-properties */\nvar defineProperties = (function (has) {\n  var supportsDescriptors = $Object.defineProperty && (function () {\n      try {\n          var obj = {};\n          $Object.defineProperty(obj, 'x', { enumerable: false, value: obj });\n          for (var _ in obj) { return false; }\n          return obj.x === obj;\n      } catch (e) { /* this is ES3 */\n          return false;\n      }\n  }());\n\n  // Define configurable, writable and non-enumerable props\n  // if they don't exist.\n  var defineProperty;\n  if (supportsDescriptors) {\n      defineProperty = function (object, name, method, forceAssign) {\n          if (!forceAssign && (name in object)) { return; }\n          $Object.defineProperty(object, name, {\n              configurable: true,\n              enumerable: false,\n              writable: true,\n              value: method\n          });\n      };\n  } else {\n      defineProperty = function (object, name, method, forceAssign) {\n          if (!forceAssign && (name in object)) { return; }\n          object[name] = method;\n      };\n  }\n  return function defineProperties(object, map, forceAssign) {\n      for (var name in map) {\n          if (has.call(map, name)) {\n            defineProperty(object, name, map[name], forceAssign);\n          }\n      }\n  };\n}(ObjectPrototype.hasOwnProperty));\n\n//\n// Util\n// ======\n//\n\n/* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */\nvar isPrimitive = function isPrimitive(input) {\n    var type = typeof input;\n    return input === null || (type !== 'object' && type !== 'function');\n};\n\nvar isActualNaN = $Number.isNaN || function (x) { return x !== x; };\n\nvar ES = {\n    // ES5 9.4\n    // http://es5.github.com/#x9.4\n    // http://jsperf.com/to-integer\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */\n    ToInteger: function ToInteger(num) {\n        var n = +num;\n        if (isActualNaN(n)) {\n            n = 0;\n        } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n            n = (n > 0 || -1) * Math.floor(Math.abs(n));\n        }\n        return n;\n    },\n\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */\n    ToPrimitive: function ToPrimitive(input) {\n        var val, valueOf, toStr;\n        if (isPrimitive(input)) {\n            return input;\n        }\n        valueOf = input.valueOf;\n        if (isCallable(valueOf)) {\n            val = valueOf.call(input);\n            if (isPrimitive(val)) {\n                return val;\n            }\n        }\n        toStr = input.toString;\n        if (isCallable(toStr)) {\n            val = toStr.call(input);\n            if (isPrimitive(val)) {\n                return val;\n            }\n        }\n        throw new TypeError();\n    },\n\n    // ES5 9.9\n    // http://es5.github.com/#x9.9\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */\n    ToObject: function (o) {\n        /* jshint eqnull: true */\n        if (o == null) { // this matches both null and undefined\n            throw new TypeError(\"can't convert \" + o + ' to object');\n        }\n        return $Object(o);\n    },\n\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */\n    ToUint32: function ToUint32(x) {\n        return x >>> 0;\n    }\n};\n\n//\n// Function\n// ========\n//\n\n// ES-5 15.3.4.5\n// http://es5.github.com/#x15.3.4.5\n\nvar Empty = function Empty() {};\n\ndefineProperties(FunctionPrototype, {\n    bind: function bind(that) { // .length is 1\n        // 1. Let Target be the this value.\n        var target = this;\n        // 2. If IsCallable(Target) is false, throw a TypeError exception.\n        if (!isCallable(target)) {\n            throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n        }\n        // 3. Let A be a new (possibly empty) internal list of all of the\n        //   argument values provided after thisArg (arg1, arg2 etc), in order.\n        // XXX slicedArgs will stand in for \"A\" if used\n        var args = array_slice.call(arguments, 1); // for normal call\n        // 4. Let F be a new native ECMAScript object.\n        // 11. Set the [[Prototype]] internal property of F to the standard\n        //   built-in Function prototype object as specified in 15.3.3.1.\n        // 12. Set the [[Call]] internal property of F as described in\n        //   15.3.4.5.1.\n        // 13. Set the [[Construct]] internal property of F as described in\n        //   15.3.4.5.2.\n        // 14. Set the [[HasInstance]] internal property of F as described in\n        //   15.3.4.5.3.\n        var bound;\n        var binder = function () {\n\n            if (this instanceof bound) {\n                // 15.3.4.5.2 [[Construct]]\n                // When the [[Construct]] internal method of a function object,\n                // F that was created using the bind function is called with a\n                // list of arguments ExtraArgs, the following steps are taken:\n                // 1. Let target be the value of F's [[TargetFunction]]\n                //   internal property.\n                // 2. If target has no [[Construct]] internal method, a\n                //   TypeError exception is thrown.\n                // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n                //   property.\n                // 4. Let args be a new list containing the same values as the\n                //   list boundArgs in the same order followed by the same\n                //   values as the list ExtraArgs in the same order.\n                // 5. Return the result of calling the [[Construct]] internal\n                //   method of target providing args as the arguments.\n\n                var result = target.apply(\n                    this,\n                    array_concat.call(args, array_slice.call(arguments))\n                );\n                if ($Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                // 15.3.4.5.1 [[Call]]\n                // When the [[Call]] internal method of a function object, F,\n                // which was created using the bind function is called with a\n                // this value and a list of arguments ExtraArgs, the following\n                // steps are taken:\n                // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n                //   property.\n                // 2. Let boundThis be the value of F's [[BoundThis]] internal\n                //   property.\n                // 3. Let target be the value of F's [[TargetFunction]] internal\n                //   property.\n                // 4. Let args be a new list containing the same values as the\n                //   list boundArgs in the same order followed by the same\n                //   values as the list ExtraArgs in the same order.\n                // 5. Return the result of calling the [[Call]] internal method\n                //   of target providing boundThis as the this value and\n                //   providing args as the arguments.\n\n                // equiv: target.call(this, ...boundArgs, ...args)\n                return target.apply(\n                    that,\n                    array_concat.call(args, array_slice.call(arguments))\n                );\n\n            }\n\n        };\n\n        // 15. If the [[Class]] internal property of Target is \"Function\", then\n        //     a. Let L be the length property of Target minus the length of A.\n        //     b. Set the length own property of F to either 0 or L, whichever is\n        //       larger.\n        // 16. Else set the length own property of F to 0.\n\n        var boundLength = max(0, target.length - args.length);\n\n        // 17. Set the attributes of the length own property of F to the values\n        //   specified in 15.3.5.1.\n        var boundArgs = [];\n        for (var i = 0; i < boundLength; i++) {\n            array_push.call(boundArgs, '$' + i);\n        }\n\n        // XXX Build a dynamic function with desired amount of arguments is the only\n        // way to set the length property of a function.\n        // In environments where Content Security Policies enabled (Chrome extensions,\n        // for ex.) all use of eval or Function costructor throws an exception.\n        // However in all of these environments Function.prototype.bind exists\n        // and so this code will never be executed.\n        bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n        if (target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            // Clean up dangling references.\n            Empty.prototype = null;\n        }\n\n        // TODO\n        // 18. Set the [[Extensible]] internal property of F to true.\n\n        // TODO\n        // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n        // 20. Call the [[DefineOwnProperty]] internal method of F with\n        //   arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n        //   thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n        //   false.\n        // 21. Call the [[DefineOwnProperty]] internal method of F with\n        //   arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n        //   [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n        //   and false.\n\n        // TODO\n        // NOTE Function objects created using Function.prototype.bind do not\n        // have a prototype property or the [[Code]], [[FormalParameters]], and\n        // [[Scope]] internal properties.\n        // XXX can't delete prototype in pure-js.\n\n        // 22. Return F.\n        return bound;\n    }\n});\n\n// _Please note: Shortcuts are defined after `Function.prototype.bind` as we\n// us it in defining shortcuts.\nvar owns = call.bind(ObjectPrototype.hasOwnProperty);\nvar toStr = call.bind(ObjectPrototype.toString);\nvar strSlice = call.bind(StringPrototype.slice);\nvar strSplit = call.bind(StringPrototype.split);\nvar strIndexOf = call.bind(StringPrototype.indexOf);\nvar push = call.bind(array_push);\n\n//\n// Array\n// =====\n//\n\nvar isArray = $Array.isArray || function isArray(obj) {\n    return toStr(obj) === '[object Array]';\n};\n\n// ES5 15.4.4.12\n// http://es5.github.com/#x15.4.4.13\n// Return len+argCount.\n// [bugfix, ielt8]\n// IE < 8 bug: [].unshift(0) === undefined but should be \"1\"\nvar hasUnshiftReturnValueBug = [].unshift(0) !== 1;\ndefineProperties(ArrayPrototype, {\n    unshift: function () {\n        array_unshift.apply(this, arguments);\n        return this.length;\n    }\n}, hasUnshiftReturnValueBug);\n\n// ES5 15.4.3.2\n// http://es5.github.com/#x15.4.3.2\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\ndefineProperties($Array, { isArray: isArray });\n\n// The IsCallable() check in the Array functions\n// has been replaced with a strict check on the\n// internal class of the object to trap cases where\n// the provided function was actually a regular\n// expression literal, which in V8 and\n// JavaScriptCore is a typeof \"function\".  Only in\n// V8 are regular expression literals permitted as\n// reduce parameters, so it is desirable in the\n// general case for the shim to match the more\n// strict and common behavior of rejecting regular\n// expressions.\n\n// ES5 15.4.4.18\n// http://es5.github.com/#x15.4.4.18\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach\n\n// Check failure of by-index access of string characters (IE < 9)\n// and failure of `0 in boxedString` (Rhino)\nvar boxedString = $Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar properlyBoxesContext = function properlyBoxed(method) {\n    // Check node 0.6.21 bug where third parameter is not boxed\n    var properlyBoxesNonStrict = true;\n    var properlyBoxesStrict = true;\n    if (method) {\n        method.call('foo', function (_, __, context) {\n            if (typeof context !== 'object') { properlyBoxesNonStrict = false; }\n        });\n\n        method.call([1], function () {\n            'use strict';\n\n            properlyBoxesStrict = typeof this === 'string';\n        }, 'x');\n    }\n    return !!method && properlyBoxesNonStrict && properlyBoxesStrict;\n};\n\ndefineProperties(ArrayPrototype, {\n    forEach: function forEach(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var i = -1;\n        var length = ES.ToUint32(self.length);\n        var T;\n        if (arguments.length > 1) {\n          T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.forEach callback must be a function');\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                // Invoke the callback function with call, passing arguments:\n                // context, property value, property key, thisArg object\n                if (typeof T === 'undefined') {\n                    callbackfn(self[i], i, object);\n                } else {\n                    callbackfn.call(T, self[i], i, object);\n                }\n            }\n        }\n    }\n}, !properlyBoxesContext(ArrayPrototype.forEach));\n\n// ES5 15.4.4.19\n// http://es5.github.com/#x15.4.4.19\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map\ndefineProperties(ArrayPrototype, {\n    map: function map(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var result = $Array(length);\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.map callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                if (typeof T === 'undefined') {\n                    result[i] = callbackfn(self[i], i, object);\n                } else {\n                    result[i] = callbackfn.call(T, self[i], i, object);\n                }\n            }\n        }\n        return result;\n    }\n}, !properlyBoxesContext(ArrayPrototype.map));\n\n// ES5 15.4.4.20\n// http://es5.github.com/#x15.4.4.20\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter\ndefineProperties(ArrayPrototype, {\n    filter: function filter(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var result = [];\n        var value;\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.filter callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {\n                    push(result, value);\n                }\n            }\n        }\n        return result;\n    }\n}, !properlyBoxesContext(ArrayPrototype.filter));\n\n// ES5 15.4.4.16\n// http://es5.github.com/#x15.4.4.16\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every\ndefineProperties(ArrayPrototype, {\n    every: function every(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.every callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n                return false;\n            }\n        }\n        return true;\n    }\n}, !properlyBoxesContext(ArrayPrototype.every));\n\n// ES5 15.4.4.17\n// http://es5.github.com/#x15.4.4.17\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some\ndefineProperties(ArrayPrototype, {\n    some: function some(callbackfn/*, thisArg */) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.some callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n                return true;\n            }\n        }\n        return false;\n    }\n}, !properlyBoxesContext(ArrayPrototype.some));\n\n// ES5 15.4.4.21\n// http://es5.github.com/#x15.4.4.21\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce\nvar reduceCoercesToObject = false;\nif (ArrayPrototype.reduce) {\n    reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) { return list; }) === 'object';\n}\ndefineProperties(ArrayPrototype, {\n    reduce: function reduce(callbackfn/*, initialValue*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.reduce callback must be a function');\n        }\n\n        // no value to return if no initial value and an empty array\n        if (length === 0 && arguments.length === 1) {\n            throw new TypeError('reduce of empty array with no initial value');\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n\n                // if array contains no values, no initial value to return\n                if (++i >= length) {\n                    throw new TypeError('reduce of empty array with no initial value');\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = callbackfn(result, self[i], i, object);\n            }\n        }\n\n        return result;\n    }\n}, !reduceCoercesToObject);\n\n// ES5 15.4.4.22\n// http://es5.github.com/#x15.4.4.22\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight\nvar reduceRightCoercesToObject = false;\nif (ArrayPrototype.reduceRight) {\n    reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) { return list; }) === 'object';\n}\ndefineProperties(ArrayPrototype, {\n    reduceRight: function reduceRight(callbackfn/*, initial*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.reduceRight callback must be a function');\n        }\n\n        // no value to return if no initial value, empty array\n        if (length === 0 && arguments.length === 1) {\n            throw new TypeError('reduceRight of empty array with no initial value');\n        }\n\n        var result;\n        var i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n\n                // if array contains no values, no initial value to return\n                if (--i < 0) {\n                    throw new TypeError('reduceRight of empty array with no initial value');\n                }\n            } while (true);\n        }\n\n        if (i < 0) {\n            return result;\n        }\n\n        do {\n            if (i in self) {\n                result = callbackfn(result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    }\n}, !reduceRightCoercesToObject);\n\n// ES5 15.4.4.14\n// http://es5.github.com/#x15.4.4.14\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\nvar hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\ndefineProperties(ArrayPrototype, {\n    indexOf: function indexOf(searchElement/*, fromIndex */) {\n        var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n        var length = ES.ToUint32(self.length);\n\n        if (length === 0) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = ES.ToInteger(arguments[1]);\n        }\n\n        // handle negative indices\n        i = i >= 0 ? i : max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === searchElement) {\n                return i;\n            }\n        }\n        return -1;\n    }\n}, hasFirefox2IndexOfBug);\n\n// ES5 15.4.4.15\n// http://es5.github.com/#x15.4.4.15\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf\nvar hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;\ndefineProperties(ArrayPrototype, {\n    lastIndexOf: function lastIndexOf(searchElement/*, fromIndex */) {\n        var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n        var length = ES.ToUint32(self.length);\n\n        if (length === 0) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = min(i, ES.ToInteger(arguments[1]));\n        }\n        // handle negative indices\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && searchElement === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    }\n}, hasFirefox2LastIndexOfBug);\n\n// ES5 15.4.4.12\n// http://es5.github.com/#x15.4.4.12\nvar spliceNoopReturnsEmptyArray = (function () {\n    var a = [1, 2];\n    var result = a.splice();\n    return a.length === 2 && isArray(result) && result.length === 0;\n}());\ndefineProperties(ArrayPrototype, {\n    // Safari 5.0 bug where .splice() returns undefined\n    splice: function splice(start, deleteCount) {\n        if (arguments.length === 0) {\n            return [];\n        } else {\n            return array_splice.apply(this, arguments);\n        }\n    }\n}, !spliceNoopReturnsEmptyArray);\n\nvar spliceWorksWithEmptyObject = (function () {\n    var obj = {};\n    ArrayPrototype.splice.call(obj, 0, 0, 1);\n    return obj.length === 1;\n}());\ndefineProperties(ArrayPrototype, {\n    splice: function splice(start, deleteCount) {\n        if (arguments.length === 0) { return []; }\n        var args = arguments;\n        this.length = max(ES.ToInteger(this.length), 0);\n        if (arguments.length > 0 && typeof deleteCount !== 'number') {\n            args = array_slice.call(arguments);\n            if (args.length < 2) {\n                push(args, this.length - start);\n            } else {\n                args[1] = ES.ToInteger(deleteCount);\n            }\n        }\n        return array_splice.apply(this, args);\n    }\n}, !spliceWorksWithEmptyObject);\nvar spliceWorksWithLargeSparseArrays = (function () {\n    // Per https://github.com/es-shims/es5-shim/issues/295\n    // Safari 7/8 breaks with sparse arrays of size 1e5 or greater\n    var arr = new $Array(1e5);\n    // note: the index MUST be 8 or larger or the test will false pass\n    arr[8] = 'x';\n    arr.splice(1, 1);\n    // note: this test must be defined *after* the indexOf shim\n    // per https://github.com/es-shims/es5-shim/issues/313\n    return arr.indexOf('x') === 7;\n}());\nvar spliceWorksWithSmallSparseArrays = (function () {\n    // Per https://github.com/es-shims/es5-shim/issues/295\n    // Opera 12.15 breaks on this, no idea why.\n    var n = 256;\n    var arr = [];\n    arr[n] = 'a';\n    arr.splice(n + 1, 0, 'b');\n    return arr[n] === 'a';\n}());\ndefineProperties(ArrayPrototype, {\n    splice: function splice(start, deleteCount) {\n        var O = ES.ToObject(this);\n        var A = [];\n        var len = ES.ToUint32(O.length);\n        var relativeStart = ES.ToInteger(start);\n        var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len);\n        var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart);\n\n        var k = 0;\n        var from;\n        while (k < actualDeleteCount) {\n            from = $String(actualStart + k);\n            if (owns(O, from)) {\n                A[k] = O[from];\n            }\n            k += 1;\n        }\n\n        var items = array_slice.call(arguments, 2);\n        var itemCount = items.length;\n        var to;\n        if (itemCount < actualDeleteCount) {\n            k = actualStart;\n            while (k < (len - actualDeleteCount)) {\n                from = $String(k + actualDeleteCount);\n                to = $String(k + itemCount);\n                if (owns(O, from)) {\n                    O[to] = O[from];\n                } else {\n                    delete O[to];\n                }\n                k += 1;\n            }\n            k = len;\n            while (k > (len - actualDeleteCount + itemCount)) {\n                delete O[k - 1];\n                k -= 1;\n            }\n        } else if (itemCount > actualDeleteCount) {\n            k = len - actualDeleteCount;\n            while (k > actualStart) {\n                from = $String(k + actualDeleteCount - 1);\n                to = $String(k + itemCount - 1);\n                if (owns(O, from)) {\n                    O[to] = O[from];\n                } else {\n                    delete O[to];\n                }\n                k -= 1;\n            }\n        }\n        k = actualStart;\n        for (var i = 0; i < items.length; ++i) {\n            O[k] = items[i];\n            k += 1;\n        }\n        O.length = len - actualDeleteCount + itemCount;\n\n        return A;\n    }\n}, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);\n\nvar hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2';\nvar originalJoin = ArrayPrototype.join;\ndefineProperties(ArrayPrototype, {\n    join: function join(separator) {\n        return originalJoin.call(this, typeof separator === 'undefined' ? ',' : separator);\n    }\n}, hasJoinUndefinedBug);\n\nvar pushShim = function push(item) {\n    var O = ES.ToObject(this);\n    var n = ES.ToUint32(O.length);\n    var i = 0;\n    while (i < arguments.length) {\n        O[n + i] = arguments[i];\n        i += 1;\n    }\n    O.length = n + i;\n    return n + i;\n};\n\nvar pushIsNotGeneric = (function () {\n    var obj = {};\n    var result = Array.prototype.push.call(obj, undefined);\n    return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0);\n}());\ndefineProperties(ArrayPrototype, {\n    push: function push(item) {\n        if (isArray(this)) {\n            return array_push.apply(this, arguments);\n        }\n        return pushShim.apply(this, arguments);\n    }\n}, pushIsNotGeneric);\n\n// This fixes a very weird bug in Opera 10.6 when pushing `undefined\nvar pushUndefinedIsWeird = (function () {\n    var arr = [];\n    var result = arr.push(undefined);\n    return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0);\n}());\ndefineProperties(ArrayPrototype, { push: pushShim }, pushUndefinedIsWeird);\n\n//\n// Object\n// ======\n//\n\n// ES5 15.2.3.14\n// http://es5.github.com/#x15.2.3.14\n\n// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar hasStringEnumBug = !owns('x', '0');\nvar equalsConstructorPrototype = function (o) {\n    var ctor = o.constructor;\n    return ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n    $window: true,\n    $console: true,\n    $parent: true,\n    $self: true,\n    $frame: true,\n    $frames: true,\n    $frameElement: true,\n    $webkitIndexedDB: true,\n    $webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n    /* globals window */\n    if (typeof window === 'undefined') { return false; }\n    for (var k in window) {\n        try {\n            if (!blacklistedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') {\n                equalsConstructorPrototype(window[k]);\n            }\n        } catch (e) {\n            return true;\n        }\n    }\n    return false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (object) {\n    if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(object); }\n    try {\n        return equalsConstructorPrototype(object);\n    } catch (e) {\n        return false;\n    }\n};\nvar dontEnums = [\n    'toString',\n    'toLocaleString',\n    'valueOf',\n    'hasOwnProperty',\n    'isPrototypeOf',\n    'propertyIsEnumerable',\n    'constructor'\n];\nvar dontEnumsLength = dontEnums.length;\n\n// taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n// can be replaced with require('is-arguments') if we ever use a build process instead\nvar isStandardArguments = function isArguments(value) {\n    return toStr(value) === '[object Arguments]';\n};\nvar isLegacyArguments = function isArguments(value) {\n    return value !== null &&\n        typeof value === 'object' &&\n        typeof value.length === 'number' &&\n        value.length >= 0 &&\n        !isArray(value) &&\n        isCallable(value.callee);\n};\nvar isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\ndefineProperties($Object, {\n    keys: function keys(object) {\n        var isFn = isCallable(object);\n        var isArgs = isArguments(object);\n        var isObject = object !== null && typeof object === 'object';\n        var isStr = isObject && isString(object);\n\n        if (!isObject && !isFn && !isArgs) {\n            throw new TypeError('Object.keys called on a non-object');\n        }\n\n        var theKeys = [];\n        var skipProto = hasProtoEnumBug && isFn;\n        if ((isStr && hasStringEnumBug) || isArgs) {\n            for (var i = 0; i < object.length; ++i) {\n                push(theKeys, $String(i));\n            }\n        }\n\n        if (!isArgs) {\n            for (var name in object) {\n                if (!(skipProto && name === 'prototype') && owns(object, name)) {\n                    push(theKeys, $String(name));\n                }\n            }\n        }\n\n        if (hasDontEnumBug) {\n            var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n            for (var j = 0; j < dontEnumsLength; j++) {\n                var dontEnum = dontEnums[j];\n                if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {\n                    push(theKeys, dontEnum);\n                }\n            }\n        }\n        return theKeys;\n    }\n});\n\nvar keysWorksWithArguments = $Object.keys && (function () {\n    // Safari 5.0 bug\n    return $Object.keys(arguments).length === 2;\n}(1, 2));\nvar keysHasArgumentsLengthBug = $Object.keys && (function () {\n    var argKeys = $Object.keys(arguments);\n    return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1;\n}(1));\nvar originalKeys = $Object.keys;\ndefineProperties($Object, {\n    keys: function keys(object) {\n        if (isArguments(object)) {\n            return originalKeys(array_slice.call(object));\n        } else {\n            return originalKeys(object);\n        }\n    }\n}, !keysWorksWithArguments || keysHasArgumentsLengthBug);\n\n//\n// Date\n// ====\n//\n\n// ES5 15.9.5.43\n// http://es5.github.com/#x15.9.5.43\n// This function returns a String value represent the instance in time\n// represented by this Date object. The format of the String is the Date Time\n// string format defined in 15.9.1.15. All fields are present in the String.\n// The time zone is always UTC, denoted by the suffix Z. If the time value of\n// this object is not a finite Number a RangeError exception is thrown.\nvar negativeDate = -62198755200000;\nvar negativeYearString = '-000001';\nvar hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1;\nvar hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';\n\ndefineProperties(Date.prototype, {\n    toISOString: function toISOString() {\n        var result, length, value, year, month;\n        if (!isFinite(this)) {\n            throw new RangeError('Date.prototype.toISOString called on non-finite value.');\n        }\n\n        year = this.getUTCFullYear();\n\n        month = this.getUTCMonth();\n        // see https://github.com/es-shims/es5-shim/issues/111\n        year += Math.floor(month / 12);\n        month = (month % 12 + 12) % 12;\n\n        // the date time string format is specified in 15.9.1.15.\n        result = [month + 1, this.getUTCDate(), this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()];\n        year = (\n            (year < 0 ? '-' : (year > 9999 ? '+' : '')) +\n            strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6)\n        );\n\n        length = result.length;\n        while (length--) {\n            value = result[length];\n            // pad months, days, hours, minutes, and seconds to have two\n            // digits.\n            if (value < 10) {\n                result[length] = '0' + value;\n            }\n        }\n        // pad milliseconds to have three digits.\n        return (\n            year + '-' + array_slice.call(result, 0, 2).join('-') +\n            'T' + array_slice.call(result, 2).join(':') + '.' +\n            strSlice('000' + this.getUTCMilliseconds(), -3) + 'Z'\n        );\n    }\n}, hasNegativeDateBug || hasSafari51DateBug);\n\n// ES5 15.9.5.44\n// http://es5.github.com/#x15.9.5.44\n// This function provides a String representation of a Date object for use by\n// JSON.stringify (15.12.3).\nvar dateToJSONIsSupported = (function () {\n    try {\n        return Date.prototype.toJSON &&\n            new Date(NaN).toJSON() === null &&\n            new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 &&\n            Date.prototype.toJSON.call({ // generic\n                toISOString: function () { return true; }\n            });\n    } catch (e) {\n        return false;\n    }\n}());\nif (!dateToJSONIsSupported) {\n    Date.prototype.toJSON = function toJSON(key) {\n        // When the toJSON method is called with argument key, the following\n        // steps are taken:\n\n        // 1.  Let O be the result of calling ToObject, giving it the this\n        // value as its argument.\n        // 2. Let tv be ES.ToPrimitive(O, hint Number).\n        var O = $Object(this);\n        var tv = ES.ToPrimitive(O);\n        // 3. If tv is a Number and is not finite, return null.\n        if (typeof tv === 'number' && !isFinite(tv)) {\n            return null;\n        }\n        // 4. Let toISO be the result of calling the [[Get]] internal method of\n        // O with argument \"toISOString\".\n        var toISO = O.toISOString;\n        // 5. If IsCallable(toISO) is false, throw a TypeError exception.\n        if (!isCallable(toISO)) {\n            throw new TypeError('toISOString property is not callable');\n        }\n        // 6. Return the result of calling the [[Call]] internal method of\n        //  toISO with O as the this value and an empty argument list.\n        return toISO.call(O);\n\n        // NOTE 1 The argument is ignored.\n\n        // NOTE 2 The toJSON function is intentionally generic; it does not\n        // require that its this value be a Date object. Therefore, it can be\n        // transferred to other kinds of objects for use as a method. However,\n        // it does require that any such object have a toISOString method. An\n        // object is free to use the argument key to filter its\n        // stringification.\n    };\n}\n\n// ES5 15.9.4.2\n// http://es5.github.com/#x15.9.4.2\n// based on work shared by Daniel Friesen (dantman)\n// http://gist.github.com/303249\nvar supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;\nvar acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));\nvar doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));\nif (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {\n    // XXX global assignment won't work in embeddings that use\n    // an alternate object for the context.\n    /* global Date: true */\n    /* eslint-disable no-undef */\n    var maxSafeUnsigned32Bit = Math.pow(2, 31) - 1;\n    var secondsWithinMaxSafeUnsigned32Bit = Math.floor(maxSafeUnsigned32Bit / 1e3);\n    var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime());\n    Date = (function (NativeDate) {\n    /* eslint-enable no-undef */\n        // Date.length === 7\n        var DateShim = function Date(Y, M, D, h, m, s, ms) {\n            var length = arguments.length;\n            var date;\n            if (this instanceof NativeDate) {\n                var seconds = s;\n                var millis = ms;\n                if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) {\n                    // work around a Safari 8/9 bug where it treats the seconds as signed\n                    var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n                    var sToShift = Math.floor(msToShift / 1e3);\n                    seconds += sToShift;\n                    millis -= sToShift * 1e3;\n                }\n                date = length === 1 && $String(Y) === Y ? // isString(Y)\n                    // We explicitly pass it through parse:\n                    new NativeDate(DateShim.parse(Y)) :\n                    // We have to manually make calls depending on argument\n                    // length here\n                    length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis) :\n                    length >= 6 ? new NativeDate(Y, M, D, h, m, seconds) :\n                    length >= 5 ? new NativeDate(Y, M, D, h, m) :\n                    length >= 4 ? new NativeDate(Y, M, D, h) :\n                    length >= 3 ? new NativeDate(Y, M, D) :\n                    length >= 2 ? new NativeDate(Y, M) :\n                    length >= 1 ? new NativeDate(Y) :\n                                  new NativeDate();\n            } else {\n                date = NativeDate.apply(this, arguments);\n            }\n            if (!isPrimitive(date)) {\n              // Prevent mixups with unfixed Date object\n              defineProperties(date, { constructor: DateShim }, true);\n            }\n            return date;\n        };\n\n        // 15.9.1.15 Date Time String Format.\n        var isoDateExpression = new RegExp('^' +\n            '(\\\\d{4}|[+-]\\\\d{6})' + // four-digit year capture or sign +\n                                      // 6-digit extended year\n            '(?:-(\\\\d{2})' + // optional month capture\n            '(?:-(\\\\d{2})' + // optional day capture\n            '(?:' + // capture hours:minutes:seconds.milliseconds\n                'T(\\\\d{2})' + // hours capture\n                ':(\\\\d{2})' + // minutes capture\n                '(?:' + // optional :seconds.milliseconds\n                    ':(\\\\d{2})' + // seconds capture\n                    '(?:(\\\\.\\\\d{1,}))?' + // milliseconds capture\n                ')?' +\n            '(' + // capture UTC offset component\n                'Z|' + // UTC capture\n                '(?:' + // offset specifier +/-hours:minutes\n                    '([-+])' + // sign capture\n                    '(\\\\d{2})' + // hours offset capture\n                    ':(\\\\d{2})' + // minutes offset capture\n                ')' +\n            ')?)?)?)?' +\n        '$');\n\n        var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\n\n        var dayFromMonth = function dayFromMonth(year, month) {\n            var t = month > 1 ? 1 : 0;\n            return (\n                months[month] +\n                Math.floor((year - 1969 + t) / 4) -\n                Math.floor((year - 1901 + t) / 100) +\n                Math.floor((year - 1601 + t) / 400) +\n                365 * (year - 1970)\n            );\n        };\n\n        var toUTC = function toUTC(t) {\n            var s = 0;\n            var ms = t;\n            if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) {\n                // work around a Safari 8/9 bug where it treats the seconds as signed\n                var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n                var sToShift = Math.floor(msToShift / 1e3);\n                s += sToShift;\n                ms -= sToShift * 1e3;\n            }\n            return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms));\n        };\n\n        // Copy any custom methods a 3rd party library may have added\n        for (var key in NativeDate) {\n            if (owns(NativeDate, key)) {\n                DateShim[key] = NativeDate[key];\n            }\n        }\n\n        // Copy \"native\" methods explicitly; they may be non-enumerable\n        defineProperties(DateShim, {\n            now: NativeDate.now,\n            UTC: NativeDate.UTC\n        }, true);\n        DateShim.prototype = NativeDate.prototype;\n        defineProperties(DateShim.prototype, {\n            constructor: DateShim\n        }, true);\n\n        // Upgrade Date.parse to handle simplified ISO 8601 strings\n        var parseShim = function parse(string) {\n            var match = isoDateExpression.exec(string);\n            if (match) {\n                // parse months, days, hours, minutes, seconds, and milliseconds\n                // provide default values if necessary\n                // parse the UTC offset component\n                var year = $Number(match[1]),\n                    month = $Number(match[2] || 1) - 1,\n                    day = $Number(match[3] || 1) - 1,\n                    hour = $Number(match[4] || 0),\n                    minute = $Number(match[5] || 0),\n                    second = $Number(match[6] || 0),\n                    millisecond = Math.floor($Number(match[7] || 0) * 1000),\n                    // When time zone is missed, local offset should be used\n                    // (ES 5.1 bug)\n                    // see https://bugs.ecmascript.org/show_bug.cgi?id=112\n                    isLocalTime = Boolean(match[4] && !match[8]),\n                    signOffset = match[9] === '-' ? 1 : -1,\n                    hourOffset = $Number(match[10] || 0),\n                    minuteOffset = $Number(match[11] || 0),\n                    result;\n                var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0;\n                if (\n                    hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25) &&\n                    minute < 60 && second < 60 && millisecond < 1000 &&\n                    month > -1 && month < 12 && hourOffset < 24 &&\n                    minuteOffset < 60 && // detect invalid offsets\n                    day > -1 &&\n                    day < (dayFromMonth(year, month + 1) - dayFromMonth(year, month))\n                ) {\n                    result = (\n                        (dayFromMonth(year, month) + day) * 24 +\n                        hour +\n                        hourOffset * signOffset\n                    ) * 60;\n                    result = (\n                        (result + minute + minuteOffset * signOffset) * 60 +\n                        second\n                    ) * 1000 + millisecond;\n                    if (isLocalTime) {\n                        result = toUTC(result);\n                    }\n                    if (-8.64e15 <= result && result <= 8.64e15) {\n                        return result;\n                    }\n                }\n                return NaN;\n            }\n            return NativeDate.parse.apply(this, arguments);\n        };\n        defineProperties(DateShim, { parse: parseShim });\n\n        return DateShim;\n    }(Date));\n    /* global Date: false */\n}\n\n// ES5 15.9.4.4\n// http://es5.github.com/#x15.9.4.4\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\n\n//\n// Number\n// ======\n//\n\n// ES5.1 15.7.4.5\n// http://es5.github.com/#x15.7.4.5\nvar hasToFixedBugs = NumberPrototype.toFixed && (\n  (0.00008).toFixed(3) !== '0.000' ||\n  (0.9).toFixed(0) !== '1' ||\n  (1.255).toFixed(2) !== '1.25' ||\n  (1000000000000000128).toFixed(0) !== '1000000000000000128'\n);\n\nvar toFixedHelpers = {\n  base: 1e7,\n  size: 6,\n  data: [0, 0, 0, 0, 0, 0],\n  multiply: function multiply(n, c) {\n      var i = -1;\n      var c2 = c;\n      while (++i < toFixedHelpers.size) {\n          c2 += n * toFixedHelpers.data[i];\n          toFixedHelpers.data[i] = c2 % toFixedHelpers.base;\n          c2 = Math.floor(c2 / toFixedHelpers.base);\n      }\n  },\n  divide: function divide(n) {\n      var i = toFixedHelpers.size, c = 0;\n      while (--i >= 0) {\n          c += toFixedHelpers.data[i];\n          toFixedHelpers.data[i] = Math.floor(c / n);\n          c = (c % n) * toFixedHelpers.base;\n      }\n  },\n  numToString: function numToString() {\n      var i = toFixedHelpers.size;\n      var s = '';\n      while (--i >= 0) {\n          if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {\n              var t = $String(toFixedHelpers.data[i]);\n              if (s === '') {\n                  s = t;\n              } else {\n                  s += strSlice('0000000', 0, 7 - t.length) + t;\n              }\n          }\n      }\n      return s;\n  },\n  pow: function pow(x, n, acc) {\n      return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc)));\n  },\n  log: function log(x) {\n      var n = 0;\n      var x2 = x;\n      while (x2 >= 4096) {\n          n += 12;\n          x2 /= 4096;\n      }\n      while (x2 >= 2) {\n          n += 1;\n          x2 /= 2;\n      }\n      return n;\n  }\n};\n\nvar toFixedShim = function toFixed(fractionDigits) {\n    var f, x, s, m, e, z, j, k;\n\n    // Test for NaN and round fractionDigits down\n    f = $Number(fractionDigits);\n    f = isActualNaN(f) ? 0 : Math.floor(f);\n\n    if (f < 0 || f > 20) {\n        throw new RangeError('Number.toFixed called with invalid number of decimals');\n    }\n\n    x = $Number(this);\n\n    if (isActualNaN(x)) {\n        return 'NaN';\n    }\n\n    // If it is too big or small, return the string value of the number\n    if (x <= -1e21 || x >= 1e21) {\n        return $String(x);\n    }\n\n    s = '';\n\n    if (x < 0) {\n        s = '-';\n        x = -x;\n    }\n\n    m = '0';\n\n    if (x > 1e-21) {\n        // 1e-21 < x < 1e21\n        // -70 < log2(x) < 70\n        e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;\n        z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1));\n        z *= 0x10000000000000; // Math.pow(2, 52);\n        e = 52 - e;\n\n        // -18 < e < 122\n        // x = z / 2 ^ e\n        if (e > 0) {\n            toFixedHelpers.multiply(0, z);\n            j = f;\n\n            while (j >= 7) {\n                toFixedHelpers.multiply(1e7, 0);\n                j -= 7;\n            }\n\n            toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);\n            j = e - 1;\n\n            while (j >= 23) {\n                toFixedHelpers.divide(1 << 23);\n                j -= 23;\n            }\n\n            toFixedHelpers.divide(1 << j);\n            toFixedHelpers.multiply(1, 1);\n            toFixedHelpers.divide(2);\n            m = toFixedHelpers.numToString();\n        } else {\n            toFixedHelpers.multiply(0, z);\n            toFixedHelpers.multiply(1 << (-e), 0);\n            m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);\n        }\n    }\n\n    if (f > 0) {\n        k = m.length;\n\n        if (k <= f) {\n            m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;\n        } else {\n            m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);\n        }\n    } else {\n        m = s + m;\n    }\n\n    return m;\n};\ndefineProperties(NumberPrototype, { toFixed: toFixedShim }, hasToFixedBugs);\n\nvar hasToPrecisionUndefinedBug = (function () {\n    try {\n        return 1.0.toPrecision(undefined) === '1';\n    } catch (e) {\n        return true;\n    }\n}());\nvar originalToPrecision = NumberPrototype.toPrecision;\ndefineProperties(NumberPrototype, {\n    toPrecision: function toPrecision(precision) {\n        return typeof precision === 'undefined' ? originalToPrecision.call(this) : originalToPrecision.call(this, precision);\n    }\n}, hasToPrecisionUndefinedBug);\n\n//\n// String\n// ======\n//\n\n// ES5 15.5.4.14\n// http://es5.github.com/#x15.5.4.14\n\n// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n// Many browsers do not split properly with regular expressions or they\n// do not perform the split correctly under obscure conditions.\n// See http://blog.stevenlevithan.com/archives/cross-browser-split\n// I've tested in many browsers and this seems to cover the deviant ones:\n//    'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n//    '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n//    'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n//       [undefined, \"t\", undefined, \"e\", ...]\n//    ''.split(/.?/) should be [], not [\"\"]\n//    '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\nif (\n    'ab'.split(/(?:ab)*/).length !== 2 ||\n    '.'.split(/(.?)(.?)/).length !== 4 ||\n    'tesst'.split(/(s)*/)[1] === 't' ||\n    'test'.split(/(?:)/, -1).length !== 4 ||\n    ''.split(/.?/).length ||\n    '.'.split(/()()/).length > 1\n) {\n    (function () {\n        var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group\n        var maxSafe32BitInt = Math.pow(2, 32) - 1;\n\n        StringPrototype.split = function (separator, limit) {\n            var string = this;\n            if (typeof separator === 'undefined' && limit === 0) {\n                return [];\n            }\n\n            // If `separator` is not a regex, use native split\n            if (!isRegex(separator)) {\n                return strSplit(this, separator, limit);\n            }\n\n            var output = [];\n            var flags = (separator.ignoreCase ? 'i' : '') +\n                        (separator.multiline ? 'm' : '') +\n                        (separator.unicode ? 'u' : '') + // in ES6\n                        (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6\n                lastLastIndex = 0,\n                // Make `global` and avoid `lastIndex` issues by working with a copy\n                separator2, match, lastIndex, lastLength;\n            var separatorCopy = new RegExp(separator.source, flags + 'g');\n            string += ''; // Type-convert\n            if (!compliantExecNpcg) {\n                // Doesn't need flags gy, but they don't hurt\n                separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n            }\n            /* Values for `limit`, per the spec:\n             * If undefined: 4294967295 // maxSafe32BitInt\n             * If 0, Infinity, or NaN: 0\n             * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n             * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n             * If other: Type-convert, then use the above rules\n             */\n            var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit);\n            match = separatorCopy.exec(string);\n            while (match) {\n                // `separatorCopy.lastIndex` is not reliable cross-browser\n                lastIndex = match.index + match[0].length;\n                if (lastIndex > lastLastIndex) {\n                    push(output, strSlice(string, lastLastIndex, match.index));\n                    // Fix browsers whose `exec` methods don't consistently return `undefined` for\n                    // nonparticipating capturing groups\n                    if (!compliantExecNpcg && match.length > 1) {\n                        /* eslint-disable no-loop-func */\n                        match[0].replace(separator2, function () {\n                            for (var i = 1; i < arguments.length - 2; i++) {\n                                if (typeof arguments[i] === 'undefined') {\n                                    match[i] = void 0;\n                                }\n                            }\n                        });\n                        /* eslint-enable no-loop-func */\n                    }\n                    if (match.length > 1 && match.index < string.length) {\n                        array_push.apply(output, array_slice.call(match, 1));\n                    }\n                    lastLength = match[0].length;\n                    lastLastIndex = lastIndex;\n                    if (output.length >= splitLimit) {\n                        break;\n                    }\n                }\n                if (separatorCopy.lastIndex === match.index) {\n                    separatorCopy.lastIndex++; // Avoid an infinite loop\n                }\n                match = separatorCopy.exec(string);\n            }\n            if (lastLastIndex === string.length) {\n                if (lastLength || !separatorCopy.test('')) {\n                    push(output, '');\n                }\n            } else {\n                push(output, strSlice(string, lastLastIndex));\n            }\n            return output.length > splitLimit ? strSlice(output, 0, splitLimit) : output;\n        };\n    }());\n\n// [bugfix, chrome]\n// If separator is undefined, then the result array contains just one String,\n// which is the this value (converted to a String). If limit is not undefined,\n// then the output array is truncated so that it contains no more than limit\n// elements.\n// \"0\".split(undefined, 0) -> []\n} else if ('0'.split(void 0, 0).length) {\n    StringPrototype.split = function split(separator, limit) {\n        if (typeof separator === 'undefined' && limit === 0) { return []; }\n        return strSplit(this, separator, limit);\n    };\n}\n\nvar str_replace = StringPrototype.replace;\nvar replaceReportsGroupsCorrectly = (function () {\n    var groups = [];\n    'x'.replace(/x(.)?/g, function (match, group) {\n        push(groups, group);\n    });\n    return groups.length === 1 && typeof groups[0] === 'undefined';\n}());\n\nif (!replaceReportsGroupsCorrectly) {\n    StringPrototype.replace = function replace(searchValue, replaceValue) {\n        var isFn = isCallable(replaceValue);\n        var hasCapturingGroups = isRegex(searchValue) && (/\\)[*?]/).test(searchValue.source);\n        if (!isFn || !hasCapturingGroups) {\n            return str_replace.call(this, searchValue, replaceValue);\n        } else {\n            var wrappedReplaceValue = function (match) {\n                var length = arguments.length;\n                var originalLastIndex = searchValue.lastIndex;\n                searchValue.lastIndex = 0;\n                var args = searchValue.exec(match) || [];\n                searchValue.lastIndex = originalLastIndex;\n                push(args, arguments[length - 2], arguments[length - 1]);\n                return replaceValue.apply(this, args);\n            };\n            return str_replace.call(this, searchValue, wrappedReplaceValue);\n        }\n    };\n}\n\n// ECMA-262, 3rd B.2.3\n// Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n// non-normative section suggesting uniform semantics and it should be\n// normalized across all browsers\n// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\nvar string_substr = StringPrototype.substr;\nvar hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\ndefineProperties(StringPrototype, {\n    substr: function substr(start, length) {\n        var normalizedStart = start;\n        if (start < 0) {\n            normalizedStart = max(this.length + start, 0);\n        }\n        return string_substr.call(this, normalizedStart, length);\n    }\n}, hasNegativeSubstrBug);\n\n// ES5 15.5.4.20\n// whitespace from: http://es5.github.io/#x15.5.4.20\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n    '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' +\n    '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar wsRegexChars = '[' + ws + ']';\nvar trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');\nvar trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');\nvar hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());\ndefineProperties(StringPrototype, {\n    // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n    // http://perfectionkills.com/whitespace-deviations/\n    trim: function trim() {\n        if (typeof this === 'undefined' || this === null) {\n            throw new TypeError(\"can't convert \" + this + ' to object');\n        }\n        return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');\n    }\n}, hasTrimWhitespaceBug);\n\nvar hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1;\ndefineProperties(StringPrototype, {\n    lastIndexOf: function lastIndexOf(searchString) {\n        if (typeof this === 'undefined' || this === null) {\n            throw new TypeError(\"can't convert \" + this + ' to object');\n        }\n        var S = $String(this);\n        var searchStr = $String(searchString);\n        var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN;\n        var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos);\n        var start = min(max(pos, 0), S.length);\n        var searchLen = searchStr.length;\n        var k = start + searchLen;\n        while (k > 0) {\n            k = max(0, k - searchLen);\n            var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr);\n            if (index !== -1) {\n                return k + index;\n            }\n        }\n        return -1;\n    }\n}, hasLastIndexBug);\n\nvar originalLastIndexOf = StringPrototype.lastIndexOf;\ndefineProperties(StringPrototype, {\n    lastIndexOf: function lastIndexOf(searchString) {\n        return originalLastIndexOf.apply(this, arguments);\n    }\n}, StringPrototype.lastIndexOf.length !== 1);\n\n// ES-5 15.1.2.2\n/* eslint-disable radix */\nif (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {\n/* eslint-enable radix */\n    /* global parseInt: true */\n    parseInt = (function (origParseInt) {\n        var hexRegex = /^[\\-+]?0[xX]/;\n        return function parseInt(str, radix) {\n            var string = $String(str).trim();\n            var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);\n            return origParseInt(string, defaultedRadix);\n        };\n    }(parseInt));\n}\n\nif (String(new RangeError('test')) !== 'RangeError: test') {\n    var originalErrorToString = Error.prototype.toString;\n    var errorToStringShim = function toString() {\n        if (typeof this === 'undefined' || this === null) {\n            throw new TypeError(\"can't convert \" + this + ' to object');\n        }\n        var name = this.name;\n        if (typeof name === 'undefined') {\n            name = 'Error';\n        } else if (typeof name !== 'string') {\n            name = $String(name);\n        }\n        var msg = this.message;\n        if (typeof msg === 'undefined') {\n            msg = '';\n        } else if (typeof msg !== 'string') {\n            msg = $String(msg);\n        }\n        if (!name) {\n            return msg;\n        }\n        if (!msg) {\n            return name;\n        }\n        return name + ': ' + msg;\n    };\n    // can't use defineProperties here because of toString enumeration issue in IE <= 8\n    Error.prototype.toString = errorToStringShim;\n}\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/test-main.js",
    "content": "/* global requirejs */\nvar tests = [];\nfor (var file in window.__karma__.files) {\n  if (/spec\\.js$/.test(file)) {\n    tests.push(file);\n  }\n}\n\nrequirejs.config({\n  // Karma serves files from '/base'\n  baseUrl: '/base/src/js',\n\n  paths: {\n    jquery: '../../test/libs/jquery-1.9.1.min',\n    bootstrap: '../../test/libs/bootstrap',\n    es5shim: '../../test/libs/es5-shim',\n    codemirror: '../../test/libs/codemirror',\n    chai: '../../node_modules/chai/chai',\n    spies: '../../node_modules/chai-spies/chai-spies',\n    chaidom: '../../test/chaidom'\n  },\n\n  shim: {\n    bootstrap: ['jquery'],\n    es5shim: { exports: 'es5shim' },\n    codemirror: { exports: 'codemirror' }\n  },\n\n  packages: [{\n    name: 'summernote',\n    location: '.',\n    main: 'summernote'\n  }],\n\n  // ask Require.js to load these files (all our tests)\n  deps: tests,\n\n  callback: function () {\n    require(['jquery', 'bootstrap', 'summernote/bs3/settings'], function () {\n      window.__karma__.start();\n    });\n  }\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/Context.spec.js",
    "content": "/**\n * Context.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'spies',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/dom',\n  'summernote/base/Context'\n], function (chai, spies, chaidom, $, agent, dom, Context) {\n  'use strict';\n\n  var expect = chai.expect;\n  chai.use(spies);\n  chai.use(chaidom);\n\n  describe('Context lifecycle', function () {\n    it('should be initialized without calling callback', function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n\n      var spy = chai.spy();\n      var $note = $('<div><p>hello</p></div>');\n      $note.on('summernote.change', spy);\n\n      var context = new Context($note, options);\n      expect(spy).to.have.not.been.called();\n\n      // [workaround]\n      //  - IE8-11 can't create range in headless mode\n      if (!agent.isMSIE) {\n        context.invoke('insertText', 'hello');\n        expect(spy).to.have.been.called();\n      }\n    });\n\n    it('should preserve user events handler after destroy', function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n\n      var spy = chai.spy();\n      var $note = $('<div><p>hello</p></div>');\n      $note.on('click', spy);\n\n      var context = new Context($note, options);\n      context.destroy();\n\n      $note.trigger('click');\n      expect(spy).to.have.been.called();\n    });\n  });\n\n  describe('Context', function () {\n    var context;\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n    });\n\n    it('should get or set contents with code', function () {\n      expect(context.code()).to.equalsIgnoreCase('<p>hello</p>');\n      context.code('<p>hello2</p>');\n      expect(context.code()).to.equalsIgnoreCase('<p>hello2</p>');\n    });\n\n    it('should enable or disable editor', function () {\n      expect(context.isDisabled()).to.be.false;\n      context.disable();\n      expect(context.isDisabled()).to.be.true;\n      context.enable();\n      expect(context.isDisabled()).to.be.false;\n    });\n\n    it('should preserve disabled status after reset', function () {\n      expect(context.isDisabled()).to.be.false;\n      context.disable();\n      expect(context.isDisabled()).to.be.true;\n      context.reset();\n      expect(context.isDisabled()).to.be.true;\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/core/agent.spec.js",
    "content": "/**\n * agent.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/core/agent'\n], function (chai, agent) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.agent', function () {\n\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/core/async.spec.js",
    "content": "/**\n * async.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/core/async'\n], function (chai, async) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.async', function () {\n\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/core/dom.spec.js",
    "content": "/**\n * dom.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/dom',\n  'summernote/base/core/func'\n], function (chai, chaidom, $, dom, func) {\n  'use strict';\n\n  var expect = chai.expect;\n  chai.use(chaidom);\n\n  describe('base:core.dom', function () {\n    describe('ancestor', function () {\n      var $cont, $b, txtB;\n      before(function () {\n        // basic case\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        txtB = $b[0].firstChild;\n      });\n\n      it('should find ancestor B', function () {\n        expect(dom.ancestor(txtB, dom.isB)).to.deep.equal($b[0]);\n      });\n\n      it('should find ancestor DIV', function () {\n        expect(dom.ancestor(txtB, dom.isDiv)).to.deep.equal($cont[0]);\n      });\n\n      it('should return null when finding ancestor U does not exist', function () {\n        expect(dom.ancestor(txtB, dom.isU)).to.be.null;\n      });\n\n      it('should return null when finding paragraph ancestor outsider note-editable', function () {\n        expect(dom.ancestor(txtB, dom.isLi)).to.be.null;\n      });\n    });\n\n    describe('listAncestor', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><i><s><u><b>b</b></u></s></i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return [$b, $u, $s, $i] from b to i', function () {\n        var result = dom.listAncestor($b[0], function (node) { return node === $i[0]; });\n        expect(result).to.deep.equal([$b[0], $u[0], $s[0], $i[0]]);\n      });\n\n      it('should return [$u, $s] from u to s', function () {\n        var result = dom.listAncestor($u[0], function (node) { return node === $s[0]; });\n        expect(result).to.deep.equal([$u[0], $s[0]]);\n      });\n    });\n\n    describe('listDescendant', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b></b><u></u><s></s><i></i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return an array of descendant elements', function () {\n        expect(dom.listDescendant($cont[0])).to.deep.equal([$b[0], $u[0], $s[0], $i[0]]);\n      });\n\n      it('should filter an array of descendant elements', function () {\n        var result = dom.listDescendant($cont[0], function (node) {\n          return node.nodeName === 'B' || node.nodeName === 'S';\n        });\n        expect(result).to.deep.equal([$b[0], $s[0]]);\n      });\n    });\n\n    describe('commonAncestor', function () {\n      var $cont, $span, $div, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><div><span><b>b</b><u>u</u></span><span><s>s</s><i>i</i></span></div></div>');\n        $span = $cont.find('span');\n        $div = $cont.find('div');\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return a common element in ancestors', function () {\n        expect(dom.commonAncestor($b[0], $u[0])).to.deep.equal($span[0]);\n      });\n\n      it('should return a common element in ancestors even if they have same nodeName', function () {\n        expect(dom.commonAncestor($b[0], $s[0])).to.deep.equal($div[0]);\n      });\n    });\n\n    describe('listNext', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return an array of next sibling elements including itself', function () {\n        expect(dom.listNext($u[0])).to.deep.equal([$u[0], $s[0], $i[0]]);\n      });\n\n      it('should return itself if there are no next sibling', function () {\n        expect(dom.listNext($i[0])).to.deep.equal([$i[0]]);\n      });\n\n      it('should return an array of next sibling elements before predicate is true', function () {\n        expect(dom.listNext($s[0], func.eq($i[0]))).to.deep.equal([$s[0]]);\n      });\n    });\n\n    describe('listPrev', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return an array of previous sibling elements including itself', function () {\n        expect(dom.listPrev($s[0])).to.deep.equal([$s[0], $u[0], $b[0]]);\n      });\n\n      it('should return itself if there are no previous sibling', function () {\n        expect(dom.listPrev($b[0])).to.deep.equal([$b[0]]);\n      });\n\n      it('should return an array of previous sibling elements before predicate is true', function () {\n        expect(dom.listPrev($i[0], func.eq($s[0]))).to.deep.equal([$i[0]]);\n      });\n    });\n\n    describe('position', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return the position of element', function () {\n        expect(dom.position($b[0])).to.be.equal(0);\n        expect(dom.position($u[0])).to.be.equal(1);\n        expect(dom.position($s[0])).to.be.equal(2);\n        expect(dom.position($i[0])).to.be.equal(3);\n      });\n\n      it('should return position 0 for text node in b', function () {\n        expect(dom.position($b[0].firstChild)).to.be.equal(0);\n      });\n    });\n\n    describe('makeOffsetPath', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return empty array if two elements are same', function () {\n        expect(dom.makeOffsetPath($cont[0], $cont[0])).to.deep.equal([]);\n      });\n\n      it('should return offset path array between two elements #1', function () {\n        expect(dom.makeOffsetPath($cont[0], $b[0])).to.deep.equal([0]);\n        expect(dom.makeOffsetPath($cont[0], $b[0].firstChild)).to.deep.equal([0, 0]);\n      });\n\n      it('should return offset path array between two elements #2', function () {\n        expect(dom.makeOffsetPath($cont[0], $u[0])).to.deep.equal([1]);\n        expect(dom.makeOffsetPath($cont[0], $u[0].firstChild)).to.deep.equal([1, 0]);\n      });\n\n      it('should return offset path array between two elements #3', function () {\n        expect(dom.makeOffsetPath($cont[0], $s[0])).to.deep.equal([2]);\n        expect(dom.makeOffsetPath($cont[0], $s[0].firstChild)).to.deep.equal([2, 0]);\n      });\n\n      it('should return offset path array between two elements #2', function () {\n        expect(dom.makeOffsetPath($cont[0], $i[0])).to.deep.equal([3]);\n        expect(dom.makeOffsetPath($cont[0], $i[0].firstChild)).to.deep.equal([3, 0]);\n      });\n    });\n\n    describe('fromOffsetPath', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return the element by offsetPath', function () {\n        var cont = $cont[0];\n        $.each([$b[0], $u[0], $s[0], $i[0]], function (idx, node) {\n          expect(dom.fromOffsetPath(cont, dom.makeOffsetPath(cont, node))).to.deep.equal(node);\n          var child = node.firstChild;\n          expect(dom.fromOffsetPath(cont, dom.makeOffsetPath(cont, child))).to.deep.equal(child);\n        });\n      });\n    });\n\n    describe('splitTree', function () {\n      var $para;\n      beforeEach(function () {\n        var $busi = $('<div class=\"note-editable\"><p><b>b</b><u>u</u><s>strike</s><i>i</i></p></div>'); //busi\n        $para = $busi.clone().find('p');\n      });\n\n      describe('element pivot case', function () {\n        it('should be split by u tag with offset 0', function () {\n          var $u = $para.find('u');\n          dom.splitTree($para[0], {node: $u[0], offset: 0 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u><br></u>');\n          expect($para.next().html()).to.equalsIgnoreCase('<u>u</u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by u tag with offset 1', function () {\n          var $u = $para.find('u');\n          dom.splitTree($para[0], {node: $u[0], offset: 1 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u>');\n          expect($para.next().html()).to.equalsIgnoreCase('<u><br></u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by b tag with offset 0 (left edge case)', function () {\n          var $b = $para.find('b');\n          dom.splitTree($para[0], {node: $b[0], offset: 0 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b><br></b>');\n          expect($para.next().html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by i tag with offset 1 (right edge case)', function () {\n          var $i = $para.find('i');\n          dom.splitTree($para[0], {node: $i[0], offset: 1 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s><i>i</i>');\n          expect($para.next().html()).to.equalsIgnoreCase('<i><br></i>');\n        });\n      });\n\n      describe('textNode case', function () {\n        it('should be split by s tag with offset 3 (middle case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($para[0], {node: $s[0].firstChild, offset: 3 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>str</s>');\n          expect($para.next().html()).to.equalsIgnoreCase('<s>ike</s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 0 (left edge case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($para[0], {node: $s[0].firstChild, offset: 0 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s><br></s>');\n          expect($para.next().html()).to.equalsIgnoreCase('<s>strike</s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 6 (right edge case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($para[0], {node: $s[0].firstChild, offset: 6 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s>');\n          expect($para.next().html()).to.equalsIgnoreCase('<s><br></s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 3 (2 depth case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($s[0], {node: $s[0].firstChild, offset: 3 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>str</s><s>ike</s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 3 (1 depth and textNode case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($s[0].firstChild, {node: $s[0].firstChild, offset: 3 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by span tag with offset 2 (1 depth and element case)', function () {\n          var $cont = $('<div class=\"note-editable\"><p><span><b>b</b><u>u</u><s>s</s><i>i</i></span></p></div>'); //busi\n          var $span = $cont.find('span');\n          dom.splitTree($span[0], {node: $span[0], offset: 2 });\n\n          expect($cont.html()).to.equalsIgnoreCase('<p><span><b>b</b><u>u</u></span><span><s>s</s><i>i</i></span></p>');\n        });\n      });\n    });\n\n    describe('splitPoint', function () {\n      it('should return rightNode and container for empty paragraph with inline', function () {\n        var $editable = $('<div class=\"note-editable\"><p><br></p></div>');\n        var $para = $editable.clone().find('p');\n        var $br = $para.find('br');\n\n        var result = dom.splitPoint({ node: $para[0], offset: 0 }, true);\n        expect(result).to.deep.equal({ rightNode: $br[0], container: $para[0] });\n\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/core/func.spec.js",
    "content": "/**\n * func.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/core/func'\n], function (chai, func) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.func', function () {\n    describe('eq', function () {\n      it('should return true if two values are same', function () {\n        expect(func.eq(1)(1)).to.be.ok;\n      });\n    });\n\n    describe('eq2', function () {\n      it('should return true if two values are same', function () {\n        expect(func.eq2(1, 1)).to.be.ok;\n      });\n\n      it('should return false if two values are not same', function () {\n        expect(func.eq2(1, '1')).to.be.not.ok;\n      });\n    });\n\n    describe('peq2', function () {\n      it('should return true when two properties are same', function () {\n        expect(func.peq2('prop')({ prop: 'hello' }, { prop: 'hello' })).to.be.ok;\n      });\n\n      it('should return false when two properties are not same', function () {\n        expect(func.peq2('prop')({ prop: 'hello' }, { prop: 'world' })).to.be.not.ok;\n      });\n    });\n\n    describe('ok', function () {\n      it('should return true', function () {\n        expect(func.ok()).to.be.ok;\n      });\n    });\n\n    describe('fail', function () {\n      it('should return false', function () {\n        expect(func.fail()).to.be.not.ok;\n      });\n    });\n\n    describe('not', function () {\n      it('should return opposite function', function () {\n        expect(func.not(func.ok)()).to.be.not.ok;\n        expect(func.not(func.fail)()).to.be.ok;\n      });\n    });\n\n    describe('and', function () {\n      it('should return composite function', function () {\n        expect(func.and(func.ok, func.ok)()).to.be.ok;\n        expect(func.and(func.fail, func.ok)()).to.be.not.ok;\n        expect(func.and(func.fail, func.fail)()).to.be.not.ok;\n      });\n    });\n\n    describe('invoke', function () {\n      it('should return function which invoke the method', function () {\n        expect(func.invoke(func, 'ok')()).to.be.ok;\n        expect(func.invoke(func, 'fail')()).to.be.not.ok;\n      });\n    });\n\n    describe('uniqueId', function () {\n      it('should return uniqueId with the prefix as a parameter', function () {\n        expect(func.uniqueId('note-')).to.be.equal('note-1');\n        expect(func.uniqueId('note-')).to.be.equal('note-2');\n        expect(func.uniqueId('note-')).to.be.equal('note-3');\n      });\n    });\n\n    describe('invertObject', function () {\n      it('should return inverted object between keys and values', function () {\n        expect(func.invertObject({ keyA: 'valueA', keyB: 'valueB' }))\n                  .to.deep.equal({ valueA: 'keyA', valueB: 'keyB'});\n      });\n    });\n\n    describe('namespaceToCamel', function () {\n      it('should return camelcase text', function () {\n        expect(func.namespaceToCamel('upload.image')).to.be.equal('UploadImage');\n      });\n\n      it('should return prefixed camelcase text', function () {\n        expect(func.namespaceToCamel('upload.image', 'summernote')).to.be.equal('summernoteUploadImage');\n      });\n    });\n\n    describe('debounce', function () {\n      it('shouldnt execute immediately', function () {\n        var hasHappened = false;\n        var fn = func.debounce(function () {\n          hasHappened = true;\n        }, 100);\n\n        expect(hasHappened).to.be.false;\n        fn();\n        expect(hasHappened).to.be.false;\n      });\n\n      it('should execute after delay', function (done) {\n        var hasHappened = false;\n        var fn = func.debounce(function () {\n          hasHappened = true;\n        }, 100);\n\n        fn();\n\n        setTimeout(function () {\n          expect(hasHappened).to.be.true;\n          done();\n        }, 101);\n      });\n\n      it('should only happen once', function (done) {\n        var count = 0;\n        var fn = func.debounce(function () {\n          count += 1;\n        }, 100);\n\n        fn();\n        fn();\n        fn();\n\n        setTimeout(function () {\n          expect(count).to.be.equal(1);\n          done();\n        }, 101);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/core/key.spec.js",
    "content": "/**\n * key.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/core/key'\n], function (chai, key) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.key', function () {\n    describe('isEdit', function () {\n      it('should return true for BACKSPACE', function () {\n        expect(key.isEdit(key.code.BACKSPACE)).to.be.true;\n      });\n    });\n    describe('isMove', function () {\n      it('should return true for LEFT', function () {\n        expect(key.isMove(key.code.LEFT)).to.be.true;\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/core/list.spec.js",
    "content": "/**\n * list.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'jquery',\n  'summernote/base/core/list'\n], function (chai, $, list) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.list', function () {\n    describe('head', function () {\n      it('should return the first element', function () {\n        expect(list.head([1, 2, 3])).to.be.equal(1);\n      });\n    });\n\n    describe('last', function () {\n      it('should return the last element', function () {\n        expect(list.last([1, 2, 3])).to.be.equal(3);\n      });\n    });\n\n    describe('initial', function () {\n      it('should exclude last element', function () {\n        expect(list.initial([1, 2, 3])).to.deep.equal([1, 2]);\n      });\n    });\n\n    describe('tail', function () {\n      it('should exclude first element', function () {\n        expect(list.tail([1, 2, 3])).to.deep.equal([2, 3]);\n      });\n    });\n\n    var isEven = function (num) {\n      return num % 2 === 0;\n    };\n\n    describe('find', function () {\n      it('should return first matched element', function () {\n        expect(list.find([1, 2, 3], isEven)).to.be.equal(2);\n      });\n    });\n\n    describe('all', function () {\n      it('should return false if all elements are not even', function () {\n        expect(list.all([1, 2, 3], isEven)).to.be.false;\n      });\n\n      it('should return true if all elements are even', function () {\n        expect(list.all([2, 4], isEven)).to.be.true;\n      });\n    });\n\n    describe('all', function () {\n      it('should return false if the element is not contained', function () {\n        expect(list.contains([1, 2, 3], 4)).to.be.false;\n      });\n\n      it('should return true if the element is contained', function () {\n        expect(list.contains([1, 2, 4], 4)).to.be.true;\n      });\n    });\n\n    describe('sum', function () {\n      it('should return sum of all elements', function () {\n        expect(list.sum([1, 2, 3])).to.be.equal(6);\n      });\n\n      it('should return sum of all elements iterated', function () {\n        var result = list.sum([1, 2, 3], function (v) { return v * 2; });\n        expect(result).to.be.equal(12);\n      });\n    });\n\n    describe('from', function () {\n      it('should return an array of childNodes', function () {\n        var $cont, $b, $u, $s, $i;\n        $cont = $('<div><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n\n        expect(list.from($cont[0].childNodes)).to.deep.equal([$b[0], $u[0], $s[0], $i[0]]);\n      });\n    });\n\n    describe('clusterBy', function () {\n      it('should cluster by equality 1', function () {\n        var aaClustered = list.clusterBy([1, 1, 2, 2, 3], function (itemA, itemB) {\n          return itemA === itemB;\n        });\n        expect(aaClustered).to.deep.equal([[1, 1], [2, 2], [3]]);\n      });\n\n      it('should cluster by equality 2', function () {\n        var aaClustered = list.clusterBy([1, 2, 2, 1, 3], function (itemA, itemB) {\n          return itemA === itemB;\n        });\n        expect(aaClustered).to.deep.equal([[1], [2, 2], [1], [3]]);\n      });\n    });\n\n    describe('compact', function () {\n      it('should remove all elements has false value', function () {\n        expect(list.compact([0, 1, false, 2, '', 3])).to.deep.equal([1, 2, 3]);\n      });\n    });\n\n    describe('unique', function () {\n      it('should return duplicate-free version of array', function () {\n        expect(list.unique([1, 2, 3, 3, 2, 1])).to.deep.equal([1, 2, 3]);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/core/range.spec.js",
    "content": "/**\n * range.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/dom',\n  'summernote/base/core/range'\n], function (chai, chaidom, $, dom, range) {\n  'use strict';\n\n  var expect = chai.expect;\n  chai.use(chaidom);\n\n  describe('base:core.range', function () {\n    describe('nodes', function () {\n      describe('1 depth', function () {\n        var $para;\n        before(function () {\n          var $cont = $('<div class=\"note-editable\"><p>para1</p><p>para2</p></div>');\n          $para = $cont.find('p');\n        });\n\n        it('should return array of two paragraphs', function () {\n          var rng = range.create($para[0].firstChild, 0, $para[1].firstChild, 1);\n          expect(rng.nodes(dom.isPara, {includeAncestor: true})).to.have.length(2);\n        });\n\n        it('should return array of a paragraph', function () {\n          var rng = range.create($para[0].firstChild, 0, $para[0].firstChild, 0);\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(1);\n        });\n      });\n\n      describe('multi depth', function () {\n        it('should return array of a paragraph', function () {\n          var $cont = $('<div class=\"note-editable\"><p>p<b>ar</b>a1</p><p>para2</p></div>');\n          var $b = $cont.find('b');\n          var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 0);\n\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(1);\n        });\n      });\n\n      describe('on list, on heading', function () {\n        it('should return array of list paragraphs', function () {\n          var $cont = $('<div class=\"note-editable\"><ul><li>para1</li><li>para2</li></ul></div>');\n          var $li = $cont.find('li');\n          var rng = range.create($li[0].firstChild, 0, $li[1].firstChild, 1);\n\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(2);\n        });\n\n        it('should return array of list paragraphs', function () {\n          var $cont = $('<div class=\"note-editable\"><h1>heading1</h1><h2>heading2</h2></div>');\n          var $h1 = $cont.find('h1');\n          var $h2 = $cont.find('h2');\n          var rng = range.create($h1[0].firstChild, 0, $h2[0].firstChild, 1);\n\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(2);\n        });\n      });\n    });\n\n    describe('commonAncestor', function () {\n      var $cont;\n      before(function () {\n        $cont = $('<div><span><b>b</b><u>u</u></span></div>');\n      });\n\n      it('should return <span> for <b>|b</b> and <u>u|</u>', function () {\n        var $span = $cont.find('span');\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n\n        var rng = range.create($b[0].firstChild, 0, $u[0].firstChild, 1);\n        expect(rng.commonAncestor()).to.deep.equal($span[0]);\n      });\n\n      it('should return b(#textNode) for <b>|b|</b>', function () {\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 1);\n        expect(rng.commonAncestor()).to.deep.equal($b[0].firstChild);\n      });\n    });\n\n    describe('expand', function () {\n      it('should return <b>|b</b> ~ <u>u|</u> for <b>|b</b> with isAnchor', function () {\n        var $cont = $('<div><a><b>b</b><u>u</u></a></div>');\n        var $anchor = $cont.find('a');\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 0).expand(dom.isAnchor);\n        expect(rng.sc).to.deep.equal($anchor[0]);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($anchor[0]);\n        expect(rng.eo).to.equal(2);\n      });\n    });\n\n    describe('collapse', function () {\n      it('should return <u>u|</u> for <b>|b</b> ~ <u>u|</u>', function () {\n        var $cont = $('<div><b>b</b><u>u</u></div>');\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n\n        var rng = range.create($b[0].firstChild, 0, $u[0].firstChild, 1).collapse();\n        expect(rng.sc).to.deep.equal($u[0].firstChild);\n        expect(rng.so).to.equal(1);\n        expect(rng.ec).to.deep.equal($u[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n    });\n\n    describe('normalize', function () {\n      var $cont;\n      before(function () {\n        $cont = $('<div><p><b>b</b><u>u</u><s>s</s></p></div>');\n      });\n\n      it('should return <b>|b</b> ~ <u>u|</u> for |<b>b</b> ~ <u>u</u>|', function () {\n        var $p = $cont.find('p');\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n\n        var rng = range.create($p[0], 0,  $p[0], 2).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($u[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n\n      it('should return <b>b|</b><u>u</u> for <b>b</b>|<u>u</u>', function () {\n        var $p = $cont.find('p');\n        var $b = $cont.find('b');\n\n        var rng = range.create($p[0], 1,  $p[0], 1).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(1);\n        expect(rng.ec).to.deep.equal($b[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n\n      it('should return <b>b</b><u>|u|</u><s>s</s> for <b>b|</b><u>u</u><s>|s</s>', function () {\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n        var $s = $cont.find('s');\n\n        var rng = range.create($b[0].firstChild, 1,  $s[0].firstChild, 0).normalize();\n        expect(rng.sc).to.deep.equal($u[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($u[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n\n      it('should return <b>b|</b><u>u</u><s>s</s> for <b>b|</b><u>u</u><s>s</s>', function () {\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 1,  $b[0].firstChild, 1).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(1);\n        expect(rng.ec).to.deep.equal($b[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n    });\n\n    describe('normalize (block mode)', function () {\n      it('should return <p>text</p><p>|<br></p> for <p>text</p><p>|<br></p>', function () {\n        var $cont = $('<div><p>text</p><p><br></p></div>');\n        var $p = $cont.find('p');\n\n        var rng = range.create($p[1], 0,  $p[1], 0).normalize();\n        expect(rng.sc).to.deep.equal($p[1]);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($p[1]);\n        expect(rng.eo).to.equal(0);\n      });\n\n      it('should return <p>text</p><p>|text</b></p> for <p>text</p><p>|text</p>', function () {\n        var $cont = $('<div><p>text</p><p>text</p></div>');\n        var $p = $cont.find('p');\n\n        var rng = range.create($p[1], 0,  $p[1], 0).normalize();\n        expect(rng.sc).to.deep.equal($p[1].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($p[1].firstChild);\n        expect(rng.eo).to.equal(0);\n      });\n\n      it('should return <p>|text</p><p>text|</b></p> for |<p>text</p><p>text</p>|', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p><p>text</p></div>');\n        var $p = $cont.find('p');\n\n        var rng = range.create($cont[0], 0,  $cont[0], 2).normalize();\n        expect(rng.sc).to.deep.equal($p[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($p[1].firstChild);\n        expect(rng.eo).to.equal(4);\n      });\n    });\n\n    describe('normalize (void element)', function () {\n      it('should return <p><img>|<b>bold</b></p> for <p><img>|<b>bold</b></p>', function () {\n        var $cont = $('<div><p><img><b>bold</b></p></div>');\n        var $p = $cont.find('p');\n        var $b = $cont.find('b');\n\n        var rng = range.create($p[0], 1,  $p[0], 1).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($b[0].firstChild);\n        expect(rng.eo).to.equal(0);\n      });\n    });\n\n    describe('insertNode', function () {\n      it('should split paragraph when inserting a block element', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var $p2 = $('<p>p</p>');\n\n        var rng = range.create($b[0].firstChild, 2, $b[0].firstChild, 2);\n        rng.insertNode($p2[0]);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b></p><p>p</p><p><b>ld</b></p>');\n      });\n\n      it('should not split paragraph when inserting an inline element', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var $u = $('<u>u</u>');\n\n        var rng = range.create($p[0].firstChild, 2, $p[0].firstChild, 2);\n        rng.insertNode($u[0]);\n        expect($cont.html()).to.equalsIgnoreCase('<p>te<u>u</u>xt</p>');\n      });\n\n      it('should not split paragraph when inserting an inline element case 2', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var $u = $('<u>u</u>');\n\n        var rng = range.create($b[0].firstChild, 2, $b[0].firstChild, 2);\n        rng.insertNode($u[0]);\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b><u>u</u><b>ld</b></p>');\n      });\n    });\n\n    describe('pasteHTML', function () {\n      it('should not split a block element when inserting inline elements into it', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var markup = '<span>span</span><i>italic</i>';\n\n        var rng = range.create($p[0].firstChild, 2);\n        rng.pasteHTML(markup);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p>te<span>span</span><i>italic</i>xt</p>');\n      });\n\n      it('should split an inline element when pasting inline elements into it', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var markup = '<span>span</span><i>italic</i>';\n\n        var rng = range.create($b[0].firstChild, 2);\n        rng.pasteHTML(markup);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b><span>span</span><i>italic</i><b>ld</b></p>');\n      });\n\n      it('should split inline node when pasting an inline node and a block node into it', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var markup = '<span>span</span><p><i>italic</i></p>';\n\n        var rng = range.create($b[0].firstChild, 2);\n        rng.pasteHTML(markup);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b><span>span</span></p><p><i>italic</i></p><p><b>ld</b></p>');\n      });\n    });\n\n    describe('deleteContents', function () {\n      var $cont, $b;\n      beforeEach(function () {\n        $cont = $('<div class=\"note-editable\"><p><b>bold</b><u>u</u></p></div>');\n        $b = $cont.find('b');\n      });\n\n      it('should remove text only for partial text', function () {\n        var rng = range.create($b[0].firstChild, 1, $b[0].firstChild, 3);\n        rng.deleteContents();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bd</b><u>u</u></p>');\n      });\n\n      it('should remove text for entire text', function () {\n        var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 4);\n        rng.deleteContents();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b></b><u>u</u></p>');\n      });\n    });\n\n    describe('wrapBodyInlineWithPara', function () {\n      it('should insert an empty paragraph when there is no contents', function () {\n        var $cont = $('<div class=\"note-editable\"></div>');\n\n        var rng = range.create($cont[0], 0);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><br></p>');\n      });\n\n      it('should wrap text with paragraph for text', function () {\n        var $cont = $('<div class=\"note-editable\">text</div>');\n\n        var rng = range.create($cont[0].firstChild, 2);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p>text</p>');\n      });\n\n      it('should wrap an inline node with paragraph when selecting text in the inline node', function () {\n        var $cont = $('<div class=\"note-editable\"><b>bold</b></div>');\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 2);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bold</b></p>');\n      });\n\n      it('should wrap inline nodes with paragraph when selecting text in the inline nodes', function () {\n        var $cont = $('<div class=\"note-editable\"><b>b</b><i>i</i></div>');\n\n        var rng = range.create($cont[0], 0);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>b</b><i>i</i></p>');\n      });\n\n      it('should wrap inline nodes with paragraph when selection some of text in the inline nodes #1', function () {\n        var $cont = $('<div class=\"note-editable\"><b>b</b><i>i</i></div>');\n\n        var rng = range.create($cont[0], 1);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>b</b><i>i</i></p>');\n      });\n\n      it('should wrap inline nodes with paragraph when selection some of text in the inline nodes #2', function () {\n        var $cont = $('<div class=\"note-editable\"><b>b</b><i>i</i></div>');\n\n        var rng = range.create($cont[0], 2);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>b</b><i>i</i></p>');\n      });\n    });\n\n    describe('getWordRange', function () {\n      var $cont;\n      before(function () {\n        $cont = $('<div class=\"note-editable\">super simple wysiwyg editor</div>');\n      });\n\n      it('should return the range itself when there is no word before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 0).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(0);\n      });\n\n      it('should return expanded range when there is a word before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 5).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(5);\n      });\n\n      it('should return expanded range when there is a half word before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 3).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(3);\n      });\n\n      it('should return expanded range when there are words before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 12).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(6);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(12);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/editing/Bullet.spec.js",
    "content": "/**\n * Bullet.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/Bullet'\n], function (chai, Bullet) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Bullet', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/editing/History.spec.js",
    "content": "/**\n * History.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/History'\n], function (chai, History) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.History', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/editing/Table.spec.js",
    "content": "/**\n * Table.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/Table'\n], function (chai, Table) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Table', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/editing/Typing.spec.js",
    "content": "/**\n * Typing.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/Typing'\n], function (chai, Typing) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Typing', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/editing/style.spec.js",
    "content": "/**\n * Style.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'jquery',\n  'summernote/base/core/range',\n  'summernote/base/editing/Style'\n], function (chai, $, range, Style) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Style', function () {\n    var style = new Style();\n\n    describe('styleNodes', function () {\n      it('should wrap selected text with span', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 0, $p[0].firstChild, 4);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><span>text</span></p>');\n      });\n\n      it('should split text and wrap selected text with span', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 1, $p[0].firstChild, 3);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p>t<span>ex</span>t</p>');\n      });\n\n      it('should split text and insert span', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 2, $p[0].firstChild, 2);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p>te<span></span>xt</p>');\n      });\n\n      it('should just return a parent span', function () {\n        var $cont = $('<div class=\"note-editable\"><p><span>text</span></p></div>');\n        var $span = $cont.find('span');\n        var rng = range.create($span[0].firstChild, 0, $span[0].firstChild, 4);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><span>text</span></p>');\n      });\n\n      it('should wrap each texts with span', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b><span>span</span></p></div>');\n        var $b = $cont.find('b');\n        var $span = $cont.find('span');\n        var rng = range.create($b[0].firstChild, 2, $span[0].firstChild, 2);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><b>bo<span>ld</span></b><span><span>sp</span>an</span></p>');\n      });\n\n      it('should wrap each texts with span except not a single blood line', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b><span>span</span></p></div>');\n        var $b = $cont.find('b');\n        var $span = $cont.find('span');\n        var rng = range.create($b[0].firstChild, 2, $span[0].firstChild, 4);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><b>bo<span>ld</span></b><span>span</span></p>');\n      });\n\n      it('should expand b tag when providing the expandClosestSibling option', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text<b>bold</b></p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 0, $p[0].firstChild, 4);\n        style.styleNodes(rng, { nodeName: 'B', expandClosestSibling: true });\n\n        expect($cont.html()).to.deep.equal('<p><b>textbold</b></p>');\n      });\n\n      it('should not expand b tag when providing the onlyPartialContains option', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text<b>bold</b></p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 0, $p[0].firstChild, 4);\n        style.styleNodes(rng, { nodeName: 'B', expandClosestSibling: true, onlyPartialContains: true });\n\n        expect($cont.html()).to.deep.equal('<p><b>text</b><b>bold</b></p>');\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/AutoLink.spec.js",
    "content": "/**\n * AutoLink.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/AutoLink'\n], function (chai, AutoLink) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.AutoLink', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/AutoSync.spec.js",
    "content": "/**\n * AutoSync.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/AutoSync'\n], function (chai, AutoSync) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module/AutoSync', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Clipboard.spec.js",
    "content": "/**\n * Clipboard.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Clipboard'\n], function (chai, Clipboard) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Clipboard', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Codeview.spec.js",
    "content": "/**\n * Codeview.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/Context',\n  'summernote/base/module/Codeview'\n], function (chai, Context, Codeview) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('Codeview', function () {\n    var codeview, context;\n\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {\n      }, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n      codeview = new Codeview(context);\n    });\n\n    it('should toggle codeview mode', function () {\n      expect(codeview.isActivated()).to.be.false;\n      codeview.toggle();\n      expect(codeview.isActivated()).to.be.true;\n      codeview.toggle();\n      expect(codeview.isActivated()).to.be.false;\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Dropzone.spec.js",
    "content": "/**\n * Dropzone.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Dropzone'\n], function (chai, Dropzone) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base.module.Dropzone', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Editor.spec.js",
    "content": "/**\n * Editor.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'spies',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/Context'\n], function (chai, spies, chaidom, $, agent, dom, range, Context) {\n  'use strict';\n  var expect = chai.expect;\n  chai.use(spies);\n  chai.use(chaidom);\n\n  // [workaround]\n  //  - Firefox need setTimeout for applying contents\n  //  - IE8-11 can't create range in headless mode\n  if (!(agent.isWebkit || agent.isEdge)) {\n    return;\n  }\n\n  var expectContents = function (context, markup) {\n    expect(context.layoutInfo.editable.html()).to.equalsIgnoreCase(markup);\n  };\n\n  var expectToHaveBeenCalled = function (context, customEvent, handler) {\n    var $note = context.layoutInfo.note;\n    var spy = chai.spy();\n    $note.on(customEvent, spy);\n    handler();\n    expect(spy).to.have.been.called();\n  };\n\n  describe('Editor', function () {\n    var editor, context;\n\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n      editor = context.modules.editor;\n    });\n\n    describe('initialize', function () {\n      it('should bind custom events', function () {\n        [\n          'keydown', 'keyup', 'blur', 'mousedown', 'mouseup',\n          'scroll', 'focusin', 'focusout'\n        ].forEach(function (eventName) {\n          expectToHaveBeenCalled(context, 'summernote.' + eventName, function () {\n            context.layoutInfo.editable.trigger(eventName);\n          });\n        });\n\n        expectToHaveBeenCalled(context, 'summernote.change', function () {\n          editor.insertText('hello');\n        });\n      });\n    });\n\n    if (agent.isWebkit) {\n      describe('undo and redo', function () {\n        it('should control history', function () {\n          editor.insertText(' world');\n          expectContents(context, '<p>hello world</p>');\n\n          editor.undo();\n          expectContents(context, '<p>hello</p>');\n\n          editor.redo();\n          expectContents(context, '<p>hello world</p>');\n        });\n      });\n    }\n\n    describe('tab', function () {\n      it('should insert tab', function () {\n        editor.tab();\n        expectContents(context, '<p>hello&nbsp;&nbsp;&nbsp;&nbsp;</p>');\n      });\n    });\n\n    describe('insertParagraph', function () {\n      it('should insert paragraph', function () {\n        editor.insertParagraph();\n        expectContents(context, '<p>hello</p><p><br></p>');\n\n        editor.insertParagraph();\n        expectContents(context, '<p>hello</p><p><br></p><p><br></p>');\n      });\n    });\n\n    describe('insertOrderedList and insertUnorderedList', function () {\n      it('should toggle paragraph to list', function () {\n        editor.insertOrderedList();\n        expectContents(context, '<ol><li>hello</li></ol>');\n\n        editor.insertUnorderedList();\n        expectContents(context, '<ul><li>hello</li></ul>');\n\n        editor.insertUnorderedList();\n        expectContents(context, '<p>hello</p>');\n      });\n    });\n\n    describe('indent and outdent', function () {\n      // [workaround] style is different by browser\n      if (agent.isPhantom) {\n        it('should indent and outdent paragraph', function () {\n          editor.indent();\n          expectContents(context, '<p style=\"margin-left: 25px; \">hello</p>');\n\n          editor.outdent();\n          expectContents(context, '<p style=\"\">hello</p>');\n        });\n      }\n\n      it('should indent and outdent list', function () {\n        editor.insertOrderedList();\n        expectContents(context, '<ol><li>hello</li></ol>');\n\n        editor.indent();\n        expectContents(context, '<ol><ol><li>hello</li></ol></ol>');\n\n        editor.outdent();\n        expectContents(context, '<ol><li>hello</li></ol>');\n      });\n    });\n\n    describe('insertNode', function () {\n      it('should insert node', function () {\n        editor.insertNode($('<span> world</span>')[0]);\n        expectContents(context, '<p>hello<span> world</span></p>');\n      });\n    });\n\n    describe('insertText', function () {\n      it('should insert text', function () {\n        editor.insertText(' world');\n        expectContents(context, '<p>hello world</p>');\n      });\n    });\n\n    describe('pasteHTML', function () {\n      it('should paste html', function () {\n        editor.pasteHTML('<span> world</span>');\n        expectContents(context, '<p>hello<span> world</span></p>');\n      });\n\n      it('should not call change change event more than once per paste event', function () {\n        var generateLargeHtml = function () {\n          var html = '<div>';\n          for (var i = 0; i < 1000; i++) {\n            html += '<p>HTML element #' + i + '</p>';\n          }\n          html += '</div>';\n          return html;\n        };\n        var $note = context.layoutInfo.note;\n        var spy = chai.spy();\n        $note.on('summernote.change', spy);\n        var html = generateLargeHtml();\n        editor.pasteHTML(html);\n        expect(spy).to.have.been.called.once;\n      });\n    });\n\n    describe('insertHorizontalRule', function () {\n      it('should insert horizontal rule', function () {\n        editor.insertHorizontalRule();\n        expectContents(context, '<p>hello</p><hr><p><br></p>');\n      });\n    });\n\n    describe('insertTable', function () {\n      it('should insert table', function () {\n        var markup = [\n          '<p>hello</p>',\n          '<table class=\"table table-bordered\"><tbody>',\n          '<tr><td><br></td><td><br></td></tr>',\n          '<tr><td><br></td><td><br></td></tr>',\n          '</tbody></table>',\n          '<p><br></p>'\n        ].join('');\n        editor.insertTable('2x2');\n        expectContents(context, markup);\n      });\n    });\n\n    describe('empty', function () {\n      it('should make contents empty', function () {\n        editor.empty();\n        expect(editor.isEmpty()).to.be.true;\n      });\n    });\n\n    describe('createLink', function () {\n      it('should create normal link', function () {\n        var text = 'hello';\n\n        var editable = context.layoutInfo.editable;\n        var pNode = editable.find('p')[0];\n        var textNode = pNode.childNodes[0];\n        var startIndex = textNode.wholeText.indexOf(text);\n        var endIndex = startIndex + text.length;\n\n        range.create(textNode, startIndex, textNode, endIndex).normalize().select();\n\n        // check creation normal link\n        editor.createLink({\n          url: 'http://summernote.org',\n          text: 'summernote'\n        });\n\n        expectContents(context, '<p>hello<a href=\"http://summernote.org\">summernote</a></p>');\n      });\n\n      it('should create a link with range', function () {\n        var text = 'hello';\n        var editable = context.layoutInfo.editable;\n        var pNode = editable.find('p')[0];\n        var textNode = pNode.childNodes[0];\n        var startIndex = textNode.wholeText.indexOf(text);\n        var endIndex = startIndex + text.length;\n\n        var rng = range.create(textNode, startIndex, textNode, endIndex);\n\n        editor.createLink({\n          url: 'http://summernote.org',\n          text: 'summernote',\n          range: rng\n        });\n\n        expectContents(context, '<p><a href=\"http://summernote.org\">summernote</a></p>');\n      });\n\n      it('should create a link with isNewWindow', function () {\n        var text = 'hello';\n        var editable = context.layoutInfo.editable;\n        var pNode = editable.find('p')[0];\n        var textNode = pNode.childNodes[0];\n        var startIndex = textNode.wholeText.indexOf(text);\n        var endIndex = startIndex + text.length;\n\n        var rng = range.create(textNode, startIndex, textNode, endIndex);\n\n        editor.createLink({\n          url: 'http://summernote.org',\n          text: 'summernote',\n          range: rng,\n          isNewWindow: true\n        });\n\n        expectContents(context, '<p><a href=\"http://summernote.org\" target=\"_blank\">summernote</a></p>');\n      });\n\n      it('should modify a link', function () {\n        context.invoke('code', '<p><a href=\"http://summernote.org\">hello world</a></p>');\n\n        var editable = context.layoutInfo.editable;\n        var anchorNode = editable.find('a')[0];\n        var rng = range.createFromNode(anchorNode);\n\n        editor.createLink({\n          url: 'http://wow.summernote.org',\n          text: 'summernote wow',\n          range: rng\n        });\n\n        expectContents(context, '<p><a href=\"http://wow.summernote.org\">summernote wow</a></p>');\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Fullscreen.spec.js",
    "content": "/**\n * Fullscreen.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/Context',\n  'summernote/base/module/Fullscreen'\n], function (chai, Context, Fullscreen) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('Fullscreen', function () {\n    var fullscreen, context;\n\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {\n      }, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n      fullscreen = new Fullscreen(context);\n    });\n\n    it('should toggle fullscreen mode', function () {\n      expect(fullscreen.isFullscreen()).to.be.false;\n      fullscreen.toggle();\n      expect(fullscreen.isFullscreen()).to.be.true;\n      fullscreen.toggle();\n      expect(fullscreen.isFullscreen()).to.be.false;\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Handle.spec.js",
    "content": "/**\n * Handle.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Handle'\n], function (chai, Handle) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Handle', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Placeholder.spec.js",
    "content": "/**\n * Placeholder.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Placeholder'\n], function (chai, Placeholder) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Placeholder', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/module/Statusbar.spec.js",
    "content": "/**\n * Statusbar.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Statusbar'\n], function (chai, Statusbar) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Statusbar', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/base/renderer.spec.js",
    "content": "/**\n * render.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/renderer'\n], function (chai, renderer) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:renderer', function () {\n\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/AirPopover.spec.js",
    "content": "/**\n * AirPopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/AirPopover'\n], function (chai, AirPopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.AirPopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/Buttons.spec.js",
    "content": "/**\n * Buttons.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/range',\n  'summernote/base/Context'\n], function (chai, $, agent, range, Context) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  // [workaround]\n  //  - IE8~11 can't create range in headless mode\n  if (agent.isMSIE || agent.isEdge) {\n    return;\n  }\n\n  describe('Buttons', function () {\n    var context, $toolbar, $editable;\n\n    beforeEach(function () {\n      var $note = $('<div><p>hello</p></div>').appendTo('body');\n\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      options.toolbar = [\n        ['font1', ['style', 'clear']],\n        ['font2', ['bold', 'underline', 'italic', 'superscript', 'subscript', 'strikethrough']],\n        ['font3', ['fontname', 'fontsize']],\n        ['color', ['color']],\n        ['para', ['ul', 'ol', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture', 'video']],\n        ['view', ['fullscreen', 'codeview', 'help']]\n      ];\n      context = new Context($note, options);\n      context.initialize();\n\n      $toolbar = context.layoutInfo.toolbar;\n      $editable = context.layoutInfo.editable;\n    });\n\n    describe('bold button', function () {\n      it('should execute bold command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-bold').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><b>hello</b></p>');\n      });\n    });\n\n    describe('italic button', function () {\n      it('should execute italic command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-italic').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><i>hello</i></p>');\n      });\n    });\n\n    describe('underline button', function () {\n      it('should execute underline command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-underline').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><u>hello</u></p>');\n      });\n    });\n\n    describe('superscript button', function () {\n      it('should execute superscript command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-superscript').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><sup>hello</sup></p>');\n      });\n    });\n\n    describe('subscript button', function () {\n      it('should execute subscript command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-subscript').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><sub>hello</sub></p>');\n      });\n    });\n\n    describe('strikethrough button', function () {\n      it('should execute strikethrough command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-strikethrough').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><strike>hello</strike></p>');\n      });\n    });\n\n    describe('recent color button', function () {\n      it('should execute color command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-current-color-button').click();\n\n        var $span = $editable.find('span');\n        expect($span).to.be.equalsStyle('#FFFF00', 'background-color');\n      });\n    });\n\n    describe('fore color button', function () {\n      it('should execute fore color command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        var $button = $toolbar.find('[data-event=foreColor]').eq(10);\n        $button.click();\n\n        // TODO <font> tag deprecated in HTML5\n        //  - https://github.com/summernote/summernote/issues/745\n        var $font = $editable.find('font');\n        expect($font).to.be.equalsStyle($button.data('value'), 'color');\n      });\n    });\n\n    describe('back color button', function () {\n      it('should execute back color command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        var $button = $toolbar.find('[data-event=backColor]').eq(10);\n        $button.click();\n\n        var $span = $editable.find('span');\n        expect($span).to.be.equalsStyle($button.data('value'), 'background-color');\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/HelpDialog.spec.js",
    "content": "/**\n * HelpDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/HelpDialog'\n], function (chai, HelpDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.HelpDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/HintPopover.spec.js",
    "content": "/**\n * HintPopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/HintPopover'\n], function (chai, HintPopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.HintPopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/ImageDialog.spec.js",
    "content": "/**\n * ImageDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/ImageDialog'\n], function (chai, ImageDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.ImageDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/ImagePopover.spec.js",
    "content": "/**\n * ImagePopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/ImagePopover'\n], function (chai, ImagePopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.ImagePopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/LinkDialog.spec.js",
    "content": "/**\n * LinkDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/LinkDialog'\n], function (chai, LinkDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.LinkDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/LinkPopover.spec.js",
    "content": "/**\n * LinkPopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/LinkPopover'\n], function (chai, LinkPopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.LinkPopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/Toolbar.spec.js",
    "content": "/**\n * Toolbar.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/Toolbar'\n], function (chai, Toolbar) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.Toolbar', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/module/VideoDialog.spec.js",
    "content": "/**\n * VideoDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/VideoDialog'\n], function (chai, VideoDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.VideoDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/bs3/ui.spec.js",
    "content": "/**\n * ui.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/ui'\n], function (chai, ui) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:ui', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/lite/module/Toolbar.spec.js",
    "content": "/**\n * Toolbar.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/lite/module/Toolbar'\n], function (chai, Toolbar) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('lite:module.Toolbar', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/test/unit/lite/ui.spec.js",
    "content": "/**\n * ui.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/lite/ui'\n], function (chai, ui) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('lite:ui', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/summernote/tools/NuGet.Config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <add key=\"nuget.org\" value=\"https://api.nuget.org/v3/index.json\" protocolVersion=\"3\" />\n  </packageSources>\n</configuration>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/emotion/emotion.css",
    "content": ".edui-popup-emotion .edui-emotion-jd img{\n    background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n.edui-popup-emotion .edui-emotion-pp img{\n    background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:25px;height:25px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-ldw img{\n    background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-tsj img{\n    background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-cat img{\n    background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-bb img{\n    background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-youa img{\n    background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-smileytable {\n    width: 100%;\n    border-spacing: 0;\n    border-collapse: collapse;\n    table-layout: fixed;\n}\n\n.edui-popup-emotion .edui-emotion-wrapper {\n    padding: 15px;\n}\n\n.edui-popup-emotion .edui-tab-nav{\n    height: auto;\n    *height: 31px;\n}\n.edui-popup-emotion .edui-emotion-tabs{\n    clear: both;\n    width: 0;\n    height: 0;\n}\n\n.edui-popup-emotion .edui-tab-content {\n    padding: 15px 0;\n}\n\n.edui-popup-emotion .edui-emotion-preview-box {\n    width:90px;\n    height:76px;\n    border:2px solid #9cb945;\n    background:#FFFFFF;\n    background-position:center;\n    background-repeat:no-repeat;\n    position: absolute;\n    top: 67px;\n    left: 494px;\n    display: none;\n}\n\n.edui-popup-emotion .edui-tab-text {\n    font-size: 12px;\n}\n\n.edui-popup-emotion .edui-emotion-preview-left {\n    left: 15px;\n}\n\n.edui-popup-emotion .edui-emotion-preview-img {\n    width: 100%;\n    height: 100%;\n    display: block;\n    background-repeat: no-repeat;\n    background-position: center center;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/emotion/emotion.js",
    "content": "(function(){\n\n    var editor = null;\n\n    UM.registerWidget('emotion',{\n\n        tpl: \"<link type=\\\"text/css\\\" rel=\\\"stylesheet\\\" href=\\\"<%=emotion_url%>emotion.css\\\">\" +\n            \"<div class=\\\"edui-emotion-tab-Jpanel edui-emotion-wrapper\\\">\" +\n            \"<ul class=\\\"edui-emotion-Jtabnav edui-tab-nav\\\">\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab0\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_choice%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab1\\\" class=\\\"edui-tab-text\\\"><%=lang_input_Tuzki%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab2\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_lvdouwa%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab3\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_BOBO%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab4\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_babyCat%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab5\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_bubble%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab6\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_youa%></a></li>\" +\n            \"<li class=\\\"edui-emotion-tabs\\\"></li>\" +\n            \"</ul>\" +\n            \"<div class=\\\"edui-tab-content edui-emotion-JtabBodys\\\">\" +\n            \"<div class=\\\"edui-emotion-Jtab0 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab1 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab2 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab3 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab4 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab5 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab6 edui-tab-pane\\\"></div>\" +\n            \"</div>\" +\n            \"<div class=\\\"edui-emotion-JtabIconReview edui-emotion-preview-box\\\">\" +\n            \"<img src=\\\"<%=cover_img%>\\\" class=\\'edui-emotion-JfaceReview edui-emotion-preview-img\\'/>\" +\n            \"</div>\",\n\n        sourceData: {\n            emotion: {\n                tabNum:7, //切换面板数量\n                SmilmgName:{ 'edui-emotion-Jtab0':['j_00', 84], 'edui-emotion-Jtab1':['t_00', 40], 'edui-emotion-Jtab2':['w_00', 52], 'edui-emotion-Jtab3':['B_00', 63], 'edui-emotion-Jtab4':['C_00', 20], 'edui-emotion-Jtab5':['i_f', 50], 'edui-emotion-Jtab6':['y_00', 40] }, //图片前缀名\n                imageFolders:{ 'edui-emotion-Jtab0':'jx2/', 'edui-emotion-Jtab1':'tsj/', 'edui-emotion-Jtab2':'ldw/', 'edui-emotion-Jtab3':'bobo/', 'edui-emotion-Jtab4':'babycat/', 'edui-emotion-Jtab5':'face/', 'edui-emotion-Jtab6':'youa/'}, //图片对应文件夹路径\n                imageCss:{'edui-emotion-Jtab0':'jd', 'edui-emotion-Jtab1':'tsj', 'edui-emotion-Jtab2':'ldw', 'edui-emotion-Jtab3':'bb', 'edui-emotion-Jtab4':'cat', 'edui-emotion-Jtab5':'pp', 'edui-emotion-Jtab6':'youa'}, //图片css类名\n                imageCssOffset:{'edui-emotion-Jtab0':35, 'edui-emotion-Jtab1':35, 'edui-emotion-Jtab2':35, 'edui-emotion-Jtab3':35, 'edui-emotion-Jtab4':35, 'edui-emotion-Jtab5':25, 'edui-emotion-Jtab6':35}, //图片偏移\n                SmileyInfor:{\n                    'edui-emotion-Jtab0':['Kiss', 'Love', 'Yeah', '啊！', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '打酱油', '俯卧撑', '气愤', '?', '吻', '怒', '胜利', 'HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '微笑', '亲吻', '调皮', '惊恐', '耍酷', '发火', '害羞', '汗水', '大哭', '', '加油', '困', '你NB', '晕倒', '开心', '偷笑', '大哭', '滴汗', '叹气', '超赞', '??', '飞吻', '天使', '撒花', '生气', '被砸', '吓傻', '随意吐'],\n                    'edui-emotion-Jtab1':['Kiss', 'Love', 'Yeah', '啊！', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '摊手', '睡觉', '瘫坐', '无聊', '星星闪', '旋转', '也不行', '郁闷', '正Music', '抓墙', '撞墙至死', '歪头', '戳眼', '飘过', '互相拍砖', '砍死你', '扔桌子', '少林寺', '什么？', '转头', '我爱牛奶', '我踢', '摇晃', '晕厥', '在笼子里', '震荡'],\n                    'edui-emotion-Jtab2':['大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '我错了', 'money', '气愤', '挑逗', '吻', '怒', '胜利', '委屈', '受伤', '说啥呢？', '闭嘴', '不', '逗你玩儿', '飞吻', '眩晕', '魔法', '我来了', '睡了', '我打', '闭嘴', '打', '打晕了', '刷牙', '爆揍', '炸弹', '倒立', '刮胡子', '邪恶的笑', '不要不要', '爱恋中', '放大仔细看', '偷窥', '超高兴', '晕', '松口气', '我跑', '享受', '修养', '哭', '汗', '啊~', '热烈欢迎', '打酱油', '俯卧撑', '?'],\n                    'edui-emotion-Jtab3':['HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '泪眼', '流泪', '生气', '吐舌', '喜欢', '旋转', '再见', '抓狂', '汗', '鄙视', '拜', '吐血', '嘘', '打人', '蹦跳', '变脸', '扯肉', '吃To', '吃花', '吹泡泡糖', '大变身', '飞天舞', '回眸', '可怜', '猛抽', '泡泡', '苹果', '亲', '', '骚舞', '烧香', '睡', '套娃娃', '捅捅', '舞倒', '西红柿', '爱慕', '摇', '摇摆', '杂耍', '招财', '被殴', '被球闷', '大惊', '理想', '欧打', '呕吐', '碎', '吐痰'],\n                    'edui-emotion-Jtab4':['发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '顶', '幸运', '爱心', '躲', '送花', '选择'],\n                    'edui-emotion-Jtab5':['微笑', '亲吻', '调皮', '惊讶', '耍酷', '发火', '害羞', '汗水', '大哭', '得意', '鄙视', '困', '夸奖', '晕倒', '疑问', '媒婆', '狂吐', '青蛙', '发愁', '亲吻', '', '爱心', '心碎', '玫瑰', '礼物', '哭', '奸笑', '可爱', '得意', '呲牙', '暴汗', '楚楚可怜', '困', '哭', '生气', '惊讶', '口水', '彩虹', '夜空', '太阳', '钱钱', '灯泡', '咖啡', '蛋糕', '音乐', '爱', '胜利', '赞', '鄙视', 'OK'],\n                    'edui-emotion-Jtab6':['男兜', '女兜', '开心', '乖乖', '偷笑', '大笑', '抽泣', '大哭', '无奈', '滴汗', '叹气', '狂晕', '委屈', '超赞', '??', '疑问', '飞吻', '天使', '撒花', '生气', '被砸', '口水', '泪奔', '吓傻', '吐舌头', '点头', '随意吐', '旋转', '困困', '鄙视', '狂顶', '篮球', '再见', '欢迎光临', '恭喜发财', '稍等', '我在线', '恕不议价', '库房有货', '货在路上']\n                }\n            }\n        },\n        initContent:function( _editor, $widget ){\n\n            var me = this,\n                emotion = me.sourceData.emotion,\n                lang = _editor.getLang( 'emotion' )['static'],\n                emotionUrl = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/emotion/',\n                options = $.extend( {}, lang, {\n                    emotion_url: emotionUrl\n                }),\n                $root = me.root();\n\n            if( me.inited ) {\n                me.preventDefault();\n                this.switchToFirst();\n                return;\n            }\n\n            me.inited = true;\n\n            editor = _editor;\n            this.widget = $widget;\n\n            emotion.SmileyPath = _editor.options.emotionLocalization === true ? emotionUrl + 'images/' : \"http://img.baidu.com/hi/\";\n            emotion.SmileyBox = me.createTabList( emotion.tabNum );\n            emotion.tabExist = me.createArr( emotion.tabNum );\n\n            options['cover_img'] = emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif' : 'default/0.gif');\n\n            $root.html( $.parseTmpl( me.tpl, options ) );\n\n            me.tabs = $.eduitab({selector:\".edui-emotion-tab-Jpanel\"});\n\n            //缓存预览对象\n            me.previewBox = $root.find(\".edui-emotion-JtabIconReview\");\n            me.previewImg = $root.find(\".edui-emotion-JfaceReview\");\n\n            me.initImgName();\n\n        },\n        initEvent:function(){\n\n            var me = this;\n\n            //防止点击过后关闭popup\n            me.root().on('click', function(e){\n                return false;\n            });\n\n            //移动预览\n            me.root().delegate( 'td', 'mouseover mouseout', function( evt ){\n\n                var $td = $( this),\n                    url = $td.attr('data-surl') || null;\n\n                if( url ) {\n                    me[evt.type]( this, url , $td.attr('data-posflag') );\n                }\n\n                return false;\n\n            } );\n\n            //点击选中\n            me.root().delegate( 'td', 'click', function( evt ){\n\n                var $td = $( this),\n                    realUrl = $td.attr('data-realurl') || null;\n\n                if( realUrl ) {\n                    me.insertSmiley( realUrl.replace( /'/g, \"\\\\'\" ), evt );\n                }\n\n                return false;\n\n            } );\n\n            //更新模板\n            me.tabs.edui().on(\"beforeshow\", function( evt ){\n\n                var contentId = $(evt.target).attr('data-context').replace( /^.*\\.(?=[^\\s]*$)/, '' );\n\n                evt.stopPropagation();\n\n                me.updateTab( contentId );\n\n            });\n\n            this.switchToFirst();\n\n        },\n        initImgName: function() {\n\n            var emotion = this.sourceData.emotion;\n\n            for ( var pro in emotion.SmilmgName ) {\n                var tempName = emotion.SmilmgName[pro],\n                    tempBox = emotion.SmileyBox[pro],\n                    tempStr = \"\";\n\n                if ( tempBox.length ) return;\n\n                for ( var i = 1; i <= tempName[1]; i++ ) {\n                    tempStr = tempName[0];\n                    if ( i < 10 ) tempStr = tempStr + '0';\n                    tempStr = tempStr + i + '.gif';\n                    tempBox.push( tempStr );\n                }\n            }\n\n        },\n        /**\n         * 切换到第一个tab\n         */\n        switchToFirst: function(){\n            this.root().find(\".edui-emotion-Jtabnav .edui-tab-text:first\").trigger('click');\n        },\n        updateTab: function( contentBoxId ) {\n\n            var me = this,\n                emotion = me.sourceData.emotion;\n\n            me.autoHeight( contentBoxId );\n\n            if ( !emotion.tabExist[ contentBoxId ] ) {\n\n                emotion.tabExist[ contentBoxId ] = true;\n                me.createTab( contentBoxId );\n\n            }\n\n        },\n        autoHeight: function( ) {\n            this.widget.height(this.root() + 2);\n        },\n        createTabList: function( tabNum ) {\n            var obj = {};\n            for ( var i = 0; i < tabNum; i++ ) {\n                obj[\"edui-emotion-Jtab\" + i] = [];\n            }\n            return obj;\n        },\n        mouseover: function( td, srcPath, posFlag ) {\n\n            posFlag -= 0;\n\n            $(td).css( 'backgroundColor', '#ACCD3C' );\n\n            this.previewImg.css( \"backgroundImage\", \"url(\" + srcPath + \")\" );\n            posFlag && this.previewBox.addClass('edui-emotion-preview-left');\n            this.previewBox.show();\n\n        },\n        mouseout: function( td ) {\n            $(td).css( 'backgroundColor', 'transparent' );\n            this.previewBox.removeClass('edui-emotion-preview-left').hide();\n        },\n        insertSmiley: function( url, evt ) {\n            var obj = {\n                src: url\n            };\n            obj._src = obj.src;\n            editor.execCommand( 'insertimage', obj );\n            if ( !evt.ctrlKey ) {\n                //关闭预览\n                this.previewBox.removeClass('edui-emotion-preview-left').hide();\n                this.widget.edui().hide();\n            }\n        },\n        createTab: function( contentBoxId ) {\n\n            var faceVersion = \"?v=1.1\", //版本号\n                me = this,\n                $contentBox = this.root().find(\".\"+contentBoxId),\n                emotion = me.sourceData.emotion,\n                imagePath = emotion.SmileyPath + emotion.imageFolders[ contentBoxId ], //获取显示表情和预览表情的路径\n                positionLine = 11 / 2, //中间数\n                iWidth = iHeight = 35, //图片长宽\n                iColWidth = 3, //表格剩余空间的显示比例\n                tableCss = emotion.imageCss[ contentBoxId ],\n                cssOffset = emotion.imageCssOffset[ contentBoxId ],\n                textHTML = ['<table border=\"1\" class=\"edui-emotion-smileytable\">'],\n                i = 0, imgNum = emotion.SmileyBox[ contentBoxId ].length, imgColNum = 11, faceImage,\n                sUrl, realUrl, posflag, offset, infor;\n\n            for ( ; i < imgNum; ) {\n                textHTML.push( '<tr>' );\n                for ( var j = 0; j < imgColNum; j++, i++ ) {\n                    faceImage = emotion.SmileyBox[ contentBoxId ][i];\n                    if ( faceImage ) {\n                        sUrl = imagePath + faceImage + faceVersion;\n                        realUrl = imagePath + faceImage;\n                        posflag = j < positionLine ? 0 : 1;\n                        offset = cssOffset * i * (-1) - 1;\n                        infor = emotion.SmileyInfor[ contentBoxId ][i];\n\n                        textHTML.push( '<td  class=\"edui-emotion-' + tableCss + '\" data-surl=\"'+ sUrl +'\" data-realurl=\"'+ realUrl +'\" data-posflag=\"'+ posflag +'\" align=\"center\">' );\n                        textHTML.push( '<span>' );\n                        textHTML.push( '<img  style=\"background-position:left ' + offset + 'px;\" title=\"' + infor + '\" src=\"' + emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif\" width=\"' : 'default/0.gif\" width=\"') + iWidth + '\" height=\"' + iHeight + '\"></img>' );\n                        textHTML.push( '</span>' );\n                    } else {\n                        textHTML.push( '<td bgcolor=\"#FFFFFF\">' );\n                    }\n                    textHTML.push( '</td>' );\n                }\n                textHTML.push( '</tr>' );\n            }\n            textHTML.push( '</table>' );\n            textHTML = textHTML.join( \"\" );\n            $contentBox.html( textHTML );\n        },\n        createArr: function( tabNum ) {\n            var arr = [];\n            for ( var i = 0; i < tabNum; i++ ) {\n                arr[i] = 0;\n            }\n            return arr;\n        },\n        width:603,\n        height:400\n    });\n\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/formula/formula.css",
    "content": ".edui-popup-formula .edui-formula-wrapper {\n    padding: 15px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-nav{\n    height: auto;\n    *height: 31px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-text {\n    font-size: 12px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-formula-clearboth {\n    clear: both;\n    width: 0;\n    height: 0;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-pane ul {\n    margin: 0px;\n    padding: 0px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-content {\n    padding: 5px 0px 0px 0px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-pane .edui-formula-latex-item {\n    display: block;\n    float: left;\n    margin: 0px 3px 3px 0px;\n    width: 30px;\n    height: 30px;\n    border:1px solid #cccccc;\n    background-image: url(\"images/formula.png\");\n    cursor: pointer;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/formula/formula.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Document</title>\n    <link rel=\"stylesheet\" href=\"../../third-party/mathquill/mathquill.css\"/>\n    <style>\n        html, body, .main{\n            margin: 0;\n            padding: 0;\n            overflow: hidden;\n        }\n        .main{\n            width:1024px;\n            height:1024px;\n        }\n        .mathquill-editable,\n        .mathquill-rendered-math{\n            border: 0px;\n            padding: 0px;\n            margin:4px;\n        }\n    </style>\n</head>\n<body>\n\n<div class=\"main\">\n    <div class=\"mathquill-editable\"></div>\n</div>\n\n<div>\n    <input id=\"blurHelper\" />\n</div>\n\n<script src=\"../../third-party/jquery.min.js\"></script>\n<script src=\"../../third-party/mathquill/mathquill.js\"></script>\n<script>\n    $(function(){\n\n        var UM = parent.UM,\n            $iframe = $(getSelfIframe()),\n            editorId = $iframe.parents('.edui-body-container').attr('id'),\n            editor = UM.getEditor(editorId),\n            timer;\n\n        /* 获得当前公式所在的iframe节点 */\n        function getSelfIframe(){\n            var iframes = parent.document.getElementsByTagName('iframe');\n            for (var key in iframes) {\n                if (iframes[key].contentWindow == window) {\n                    return iframes[key];\n                }\n            }\n            return null;\n        }\n        /* 获得当前url上的hash存储的参数值 */\n        function getLatex() {\n            return $iframe.attr('data-latex') || '';\n        }\n        /* 保存场景 */\n        function saveScene(){\n            timer && clearTimeout(timer);\n            timer = setTimeout(function(){\n                editor.fireEvent('savescene');\n                editor.fireEvent('contentchange');\n                editor.fireEvent('selectionchange');\n                timer = null;\n            }, 300);\n        }\n        /* 设置编辑器可编辑 */\n        function enableEditor(){\n            if(editor.body.contentEditable == 'false') {\n                editor.setEnabled();\n            }\n        }\n        /* 设置编辑器不可编辑 */\n        function disableEditor(){\n            if(editor.body.contentEditable == 'true') {\n                editor.setDisabled(['undo', 'redo', 'preview', 'formula'], true);\n            }\n        }\n\n        /* 公式 */\n        var Formula = function(){\n            var _this = this,\n                latex = getLatex();\n\n            this.isFocus = false;\n            this.isDisabled = false;\n\n            /* 加载公式内容 */\n            this.$mathquill = $('.mathquill-editable').mathquill('latex', latex);\n\n            /* 设置活动状态的公式iframe */\n            this.$mathquill.on('mousedown', function(){\n                /* 编辑器不可用时,公式也不可用 */\n                if(_this.disabled) return false;\n\n                /* 第一次点击当前公式,设置公式活动 */\n                if(!$iframe.hasClass('edui-formula-active')) {\n                    disableEditor();\n                    editor.blur();\n                    editor.$body.find('iframe').not($iframe).each(function(k, v){\n                        v.contentWindow.formula.blur();\n                    });\n                    if(_this.$mathquill.find('.cursor').css('display') == 'none') {\n                        _this.refresh();\n                        _this.$mathquill.addClass('hasCursor');\n                    }\n                }\n                _this.focus();\n            });\n            editor.addListener('click', function(){\n                _this.blur();\n                enableEditor();\n            });\n\n            /* 里面focus,编辑器也判断为focus */\n            editor.addListener('isFocus', function(){\n                return _this.isFocus;\n            });\n            /* um不可用,公式也不可编辑 */\n            editor.addListener('setDisabled', function(type, except){\n                if (!(except && except.join(' ').indexOf('formula') != -1) && _this.isDisabled != true ) {\n                    _this.setDisabled();\n                }\n            });\n            editor.addListener('setEnabled', function(){\n                if (_this.isDisabled != false) {\n                    _this.setEnabled();\n                }\n            });\n\n            /* 设置更新外层iframe的大小和属性 */\n            $(document.body).on('keydown', function(){\n                _this.updateIframe();\n            }).on('keyup', function(){\n                _this.updateIframe();\n            });\n\n            /* 清除初始化的高亮状态 */\n            this.$mathquill.removeClass('hasCursor');\n\n            /* 初始化后延迟刷新外层iframe大小 */\n            setTimeout(function(){\n                _this.updateIframe();\n            }, 300);\n        };\n\n        Formula.prototype = {\n            focus:function(){\n                $iframe.addClass('edui-formula-active');\n                this.isFocus = true;\n            },\n            blur:function(){\n                $iframe.removeClass('edui-formula-active');\n                this.removeCursor();\n                this.isFocus = false;\n            },\n            removeCursor: function(){\n                this.$mathquill.find('span.cursor').hide();\n                this.$mathquill.parent().find('.hasCursor').removeClass('hasCursor');\n            },\n            updateIframe: function(){\n                $iframe.width(this.$mathquill.width()+8).height(this.$mathquill.height()+8);\n                var latex = $iframe.attr('data-latex'),\n                    newLatex = this.getLatex();\n                if(latex != newLatex) {\n                    $iframe.attr('data-latex', this.getLatex());\n                    saveScene();\n                }\n            },\n            insertLatex: function(latex){\n                this.$mathquill.mathquill('write', latex);\n                this.updateIframe();\n                this.removeCursor();\n            },\n            setLatex: function(latex){\n                this.$mathquill.mathquill('latex', latex);\n                this.updateIframe();\n            },\n            getLatex: function(){\n                return this.$mathquill.mathquill('latex');\n            },\n            redraw: function(){\n                this.$mathquill.mathquill('redraw');\n            },\n            setDisabled: function(){\n                this.blur();\n                var latex = this.getLatex();\n                this.$mathquill.mathquill('revert').text(latex).mathquill();\n                this.updateIframe();\n                this.isDisabled = true;\n            },\n            setEnabled: function(){\n                this.$mathquill.removeClass('mathquill-rendered-math');\n                this.refresh();\n                this.isDisabled = false;\n            },\n            refresh: function(){\n                var latex = this.getLatex();\n                this.$mathquill.mathquill('revert').text(latex).mathquill('editable');\n                this.updateIframe();\n            }\n        };\n\n        /* 绑定到window上，给上级window调用 */\n        window.formula = new Formula();\n    });\n</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/formula/formula.js",
    "content": "(function () {\n\n    var editor = null;\n\n    UM.registerWidget('formula', {\n\n        tpl: \"<link type=\\\"text/css\\\" rel=\\\"stylesheet\\\" href=\\\"<%=formula_url%>formula.css\\\">\" +\n            \"<div class=\\\"edui-formula-wrapper\\\">\" +\n            \"<ul class=\\\"edui-tab-nav\\\"></ul>\" +\n            \"<div class=\\\"edui-tab-content\\\"></div>\" +\n            \"</div>\",\n\n        sourceData: {\n            formula: {\n                'common': [\n                    \"{/}frac{ }{ }\", \"^{ }/_{ }\", \"x^{ }\", \"x_{ }\", \"x^{ }_{ }\", \"{/}bar{ }\", \"{/}sqrt{ }\", \"{/}nthroot{ }{ }\",\n                    \"{/}sum^{ }_{n=}\", \"{/}sum\", \"{/}log_{ }\", \"{/}ln\", \"{/}int_{ }^{ }\", \"{/}oint_{ }^{ }\"\n                ],\n                'symbol': [\n                    \"+\", \"-\", \"{/}pm\", \"{/}times\", \"{/}ast\", \"{/}div\", \"/\", \"{/}bigtriangleup\",\n                    \"=\", \"{/}ne\", \"{/}approx\", \">\", \"<\", \"{/}ge\", \"{/}le\", \"{/}infty\",\n                    \"{/}cap\", \"{/}cup\", \"{/}because\", \"{/}therefore\", \"{/}subset\", \"{/}supset\", \"{/}subseteq\", \"{/}supseteq\",\n                    \"{/}nsubseteq\", \"{/}nsupseteq\", \"{/}in\", \"{/}ni\", \"{/}notin\", \"{/}mapsto\", \"{/}leftarrow\", \"{/}rightarrow\",\n                    \"{/}Leftarrow\", \"{/}Rightarrow\", \"{/}leftrightarrow\", \"{/}Leftrightarrow\"\n                ],\n                'letter': [\n                    \"{/}alpha\", \"{/}beta\", \"{/}gamma\", \"{/}delta\", \"{/}varepsilon\", \"{/}varphi\", \"{/}lambda\", \"{/}mu\",\n                    \"{/}rho\", \"{/}sigma\", \"{/}omega\", \"{/}Gamma\", \"{/}Delta\", \"{/}Theta\", \"{/}Lambda\", \"{/}Xi\",\n                    \"{/}Pi\", \"{/}Sigma\", \"{/}Upsilon\", \"{/}Phi\", \"{/}Psi\", \"{/}Omega\"\n                ]\n            }\n        },\n        initContent: function (_editor, $widget) {\n\n            var me = this,\n                formula = me.sourceData.formula,\n                lang = _editor.getLang('formula').static,\n                formulaUrl = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/formula/',\n                options = $.extend({}, lang, { 'formula_url': formulaUrl }),\n                $root = me.root();\n\n            if (me.inited) {\n                me.preventDefault();\n                return;\n            }\n            me.inited = true;\n\n            editor = _editor;\n            me.$widget = $widget;\n\n            $root.html($.parseTmpl(me.tpl, options));\n            me.tabs = $.eduitab({selector: \"#edui-formula-tab-Jpanel\"});\n\n            /* 初始化popup的内容 */\n            var headHtml = [], xMax = 0, yMax = 0,\n                $tabContent = me.root().find('.edui-tab-content');\n            $.each(formula, function (k, v) {\n                var contentHtml = [];\n                $.each(v, function (i, f) {\n                    contentHtml.push('<li class=\"edui-formula-latex-item\" data-latex=\"' + f + '\" style=\"background-position:-' + (xMax * 30) + 'px -' + (yMax * 30) + 'px\"></li>');\n                    if (++xMax >=8) {\n                        ++yMax; xMax = 0;\n                    }\n                });\n                yMax++; xMax = 0;\n                $tabContent.append('<div class=\"edui-tab-pane\"><ul>' + contentHtml.join('') + '</ul>');\n                headHtml.push('<li class=\"edui-tab-item\"><a href=\"javascript:void(0);\" class=\"edui-tab-text\">' + lang['lang_tab_' + k] + '</a></li>');\n            });\n            headHtml.push('<li class=\"edui-formula-clearboth\"></li>');\n            $root.find('.edui-tab-nav').html(headHtml.join(''));\n            $root.find('.edui-tab-content').append('<div class=\"edui-formula-clearboth\"></div>');\n\n            /* 选中第一个tab */\n            me.switchTab(0);\n        },\n        initEvent: function () {\n            var me = this;\n\n            //防止点击过后关闭popup\n            me.root().on('click', function (e) {\n                return false;\n            });\n\n            //点击tab切换菜单\n            me.root().find('.edui-tab-nav').delegate('.edui-tab-item', 'click', function (evt) {\n                me.switchTab(this);\n                return false;\n            });\n\n            //点击选中公式\n            me.root().find('.edui-tab-pane').delegate('.edui-formula-latex-item', 'click', function (evt) {\n                var $item = $(this),\n                    latex = $item.attr('data-latex') || '';\n\n                if (latex) {\n                    me.insertLatex(latex.replace(\"{/}\", \"\\\\\"));\n                }\n                me.$widget.edui().hide();\n                return false;\n            });\n        },\n        switchTab:function(index){\n            var me = this,\n                $root = me.root(),\n                index = $.isNumeric(index) ? index:$.inArray(index, $root.find('.edui-tab-nav .edui-tab-item'));\n\n            $root.find('.edui-tab-nav .edui-tab-item').removeClass('edui-active').eq(index).addClass('edui-active');\n            $root.find('.edui-tab-content .edui-tab-pane').removeClass('edui-active').eq(index).addClass('edui-active');\n\n            /* 自动长高 */\n            me.autoHeight(0);\n        },\n        autoHeight: function () {\n            this.$widget.height(this.root() + 2);\n        },\n        insertLatex: function (latex) {\n            editor.execCommand('formula', latex );\n        },\n        width: 350,\n        height: 400\n    });\n\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/image/image.css",
    "content": ".edui-dialog-image .edui-image-wrapper{font-size: 12px;margin: 15px;}\n\n/*upload*/\n.edui-dialog-image .edui-image-upload1{position: absolute;top:50%;left:50%;width:44px;height:38px;margin-top:-19px; margin-left: -22px;}\n.edui-dialog-image .edui-image-upload2{position:relative;float:left;width:120px;height:120px;margin:5px 0 0 5px;}\n\n.edui-dialog-image .edui-image-form{position: absolute;left: 0px;top: 0px;width: 100%;height: 100%;opacity: 0;cursor: pointer;}\n.edui-dialog-image .edui-image-form .edui-image-file{width: 100%;height:100%;filter: alpha(opacity=0)}\n\n.edui-dialog-image .edui-image-upload1 .edui-image-icon{display: inline-block;width:44px;height:38px;background-image: url('images/upload1.png')}\n.edui-dialog-image .edui-image-upload1 .edui-image-icon.hover{background-position: -50px 0;}\n.edui-dialog-image .edui-image-upload2 .edui-image-icon{display: inline-block;width:120px;height:120px;background-image: url('images/upload2.png')}\n\n.edui-dialog-image .edui-image-dragTip{position: absolute;display:none;top:50%;left:50%;margin-top:30px;margin-left: -60px;\n    color: #222;font-size:14px;text-shadow: 0px 2px 3px #555;}\n\n.edui-dialog-image .edui-image-content{height:330px;width:100%;position: relative;}\n\n.edui-dialog-image .edui-image-mask{display: none;position: absolute;top:0;left:0;width: 100%; height: 100%;background-color:#fff;\n    text-align: center;line-height:300px;color:#000;font-size:14px;font-weight:bold;opacity: 0.6;filter: alpha(opacity=60);}\n.edui-dialog-image .edui-image-mask.edui-active{display: block;}\n\n/*network*/\n.edui-dialog-image .edui-image-searchBar{margin: 10px;}\n.edui-dialog-image .edui-image-searchBar .edui-image-searchTxt{display: inline-block !important;*display: inline !important;*zoom:1;width:400px; border: 1px solid #c5d2ff; height: 20px; line-height: 18px; font-size: 14px; padding: 3px; margin: 0;outline:0;}\n.edui-dialog-image .edui-image-searchBar .edui-image-searchAdd{display: inline-block !important;*display: inline !important;*zoom:1;\n    width:60px; text-align:center;height: 25px;text-align: center;line-height: 25px;\n    background-color: #ffffff;padding: 0; border: 1px solid #ababab;margin-left: 20px;cursor: pointer;\n}\n.edui-dialog-image .edui-image-searchBar .edui-image-searchAdd.hover{\n    background-color: #d5e1f2;\n    padding: 0;\n    border: 1px solid #a3bde3;\n}\n.edui-dialog-image .edui-image-searchRes{height:280px;overflow:auto;}\n\n\n/*common*/\n.edui-dialog-image .edui-image-item{position:relative;float:left;width:120px;height:120px;border: 1px solid #CCC;cursor: default;margin: 5px 0 0 5px;}\n.edui-dialog-image .edui-image-item .edui-image-pic{position: absolute;left:-9999px;}\n.edui-dialog-image .edui-image-item .edui-image-close{position:absolute;right:0;background: url('images/close.png');width:17px;height:17px;cursor:pointer;z-index:1}\n.edui-dialog-image .edui-image-item.hover .edui-image-close{display: block;}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/image/image.js",
    "content": "(function () {\n\n    var utils = UM.utils,\n        browser = UM.browser,\n        Base = {\n        checkURL: function (url) {\n            if(!url)    return false;\n            url = utils.trim(url);\n            if (url.length <= 0) {\n                return false;\n            }\n            if (url.search(/http:\\/\\/|https:\\/\\//) !== 0) {\n                url += 'http://';\n            }\n\n            url=url.replace(/\\?[\\s\\S]*$/,\"\");\n\n            if (!/(.gif|.jpg|.jpeg|.png)$/i.test(url)) {\n                return false;\n            }\n            return url;\n        },\n        getAllPic: function (sel, $w, editor) {\n            var me = this,\n                arr = [],\n                $imgs = $(sel, $w);\n\n            $.each($imgs, function (index, node) {\n                $(node).removeAttr(\"width\").removeAttr(\"height\");\n\n//                if (node.width > editor.options.initialFrameWidth) {\n//                    me.scale(node, editor.options.initialFrameWidth -\n//                        parseInt($(editor.body).css(\"padding-left\"))  -\n//                        parseInt($(editor.body).css(\"padding-right\")));\n//                }\n\n                return arr.push({\n                    _src: node.src,\n                    src: node.src\n                });\n            });\n\n            return arr;\n        },\n        scale: function (img, max, oWidth, oHeight) {\n            var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight;\n            if (ow > max || oh > max) {\n                if (ow >= oh) {\n                    if (width = ow - max) {\n                        percent = (width / ow).toFixed(2);\n                        img.height = oh - oh * percent;\n                        img.width = max;\n                    }\n                } else {\n                    if (height = oh - max) {\n                        percent = (height / oh).toFixed(2);\n                        img.width = ow - ow * percent;\n                        img.height = max;\n                    }\n                }\n            }\n\n            return this;\n        },\n        close: function ($img) {\n\n            $img.css({\n                top: ($img.parent().height() - $img.height()) / 2,\n                left: ($img.parent().width()-$img.width())/2\n            }).prev().on(\"click\",function () {\n\n                if ( $(this).parent().remove().hasClass(\"edui-image-upload-item\") ) {\n                    //显示图片计数-1\n                    Upload.showCount--;\n                    Upload.updateView();\n                }\n\n            });\n\n            return this;\n        },\n        createImgBase64: function (img, file, $w) {\n            if (browser.webkit) {\n                //Chrome8+\n                img.src = window.webkitURL.createObjectURL(file);\n            } else if (browser.gecko) {\n                //FF4+\n                img.src = window.URL.createObjectURL(file);\n            } else {\n                //实例化file reader对象\n                var reader = new FileReader();\n                reader.onload = function (e) {\n                    img.src = this.result;\n                    $w.append(img);\n                };\n                reader.readAsDataURL(file);\n            }\n        },\n        callback2: function (editor, $w, url, state) {\n\n            if (state == \"SUCCESS\") {\n                //显示图片计数+1\n                Upload.showCount++;\n                var $img = $(\"<img src='\" + editor.options.imagePath + url + \"' class='edui-image-pic' />\"),\n                    $item = $(\"<div class='edui-image-item edui-image-upload-item'><div class='edui-image-close'></div></div>\").append($img);\n\n                if ($(\".edui-image-upload2\", $w).length < 1) {\n                    $(\".edui-image-content\", $w).append($item);\n\n                    Upload.render(\".edui-image-content\", 2)\n                        .config(\".edui-image-upload2\");\n                } else {\n                    $(\".edui-image-upload2\", $w).before($item).show();\n                }\n\n                $img.on(\"load\", function () {\n                    Base.scale(this, 120);\n                    Base.close($(this));\n                    $(\".edui-image-content\", $w).focus();\n                });\n\n            } else {\n                currentDialog.showTip( state );\n                window.setTimeout( function () {\n\n                    currentDialog.hideTip();\n\n                }, 3000 );\n            }\n\n            Upload.toggleMask();\n\n        },\n        callback: function (editor, $w, json) {\n\n            if (json.status == 200 && json.msg == \"OK\") {\n                //显示图片计数+1\n                Upload.showCount++;\n                var $img = $(\"<img src='\" + json.data[0].url + \"' class='edui-image-pic' />\"),\n                    $item = $(\"<div class='edui-image-item edui-image-upload-item'><div class='edui-image-close'></div></div>\").append($img);\n\n                if ($(\".edui-image-upload2\", $w).length < 1) {\n                    $(\".edui-image-content\", $w).append($item);\n\n                    Upload.render(\".edui-image-content\", 2)\n                        .config(\".edui-image-upload2\");\n                } else {\n                    $(\".edui-image-upload2\", $w).before($item).show();\n                }\n\n                $img.on(\"load\", function () {\n                    Base.scale(this, 120);\n                    Base.close($(this));\n                    $(\".edui-image-content\", $w).focus();\n                });\n\n            } else if ( json.status == 500 ) {\n            \talert(json.msg);\n            } else {\n                currentDialog.showTip( state );\n                window.setTimeout( function () {\n\n                    currentDialog.hideTip();\n\n                }, 3000 );\n            }\n\n            Upload.toggleMask();\n\n        }\n    };\n\n    /*\n     * 本地上传\n     * */\n    var Upload = {\n        showCount: 0,\n        uploadTpl: '<div class=\"edui-image-upload%%\">' +\n            '<span class=\"edui-image-icon\"></span>' +\n            '<form class=\"edui-image-form\" method=\"post\" enctype=\"multipart/form-data\" target=\"up\">' +\n//            '<input type=\"hidden\" id=\"userFaceImgStr\" name=\"userFaceImgStr\">' +\n            '<input style=\\\"filter: alpha(opacity=0);\\\" class=\"edui-image-file\" type=\"file\" hidefocus name=\"upfile\" accept=\"image/gif,image/jpeg,image/png,image/jpg,image/bmp\"/>' +\n            '</form>' +\n\n            '</div>',\n        init: function (editor, $w) {\n            var me = this;\n\n            me.editor = editor;\n            me.dialog = $w;\n            me.render(\".edui-image-local\", 1);\n            me.config(\".edui-image-upload1\");\n            me.submit();\n            me.drag();\n\n            $(\".edui-image-upload1\").hover(function () {\n                $(\".edui-image-icon\", this).toggleClass(\"hover\");\n            });\n\n            if (!(UM.browser.ie && UM.browser.version <= 9)) {\n                $(\".edui-image-dragTip\", me.dialog).css(\"display\", \"block\");\n            }\n\n\n            return me;\n        },\n        render: function (sel, t) {\n            var me = this;\n\n            $(sel, me.dialog).append($(me.uploadTpl.replace(/%%/g, t)));\n\n            return me;\n        },\n        config: function (sel) {\n            var me = this,\n                url=me.editor.options.imageUrl;\n\n            url=url + (url.indexOf(\"?\") == -1 ? \"?\" : \"&\") + \"editorid=\"+me.editor.id;//初始form提交地址;\n            \n            $(\"form\", $(sel, me.dialog)).attr(\"action\", url);\n\n            return me;\n        },\n        uploadComplete: function(r){\n            var me = this;\n            try{\n            \tr = r.replace(\"<pre>\", \"\").replace(\"</pre>\", \"\");\n            \tr=r.replace('<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">', \"\").replace(\"</pre>\", \"\"); \n                var json = eval('('+r+')');\n                Base.callback(me.editor, me.dialog, json);\n//                Base.callback(me.editor, me.dialog, json.url, json.state);\n            }catch (e){\n                var lang = me.editor.getLang('image');\n                Base.callback(me.editor, me.dialog, '', (lang && lang.uploadError) || 'Error!');\n            }\n        },\n        submit: function (callback) {\n\n            var me = this,\n                input = $( '<input style=\"filter: alpha(opacity=0);\" class=\"edui-image-file\" type=\"file\" hidefocus=\"\" name=\"upfile\" accept=\"image/gif,image/jpeg,image/png,image/jpg,image/bmp\">'),\n                input = input[0];\n\n            $(me.dialog).delegate( \".edui-image-file\", \"change\", function ( e ) {\n\n                if ( !this.parentNode ) {\n                    return;\n                }\n\n                $('<iframe name=\"up\"  style=\"display: none\"></iframe>').insertBefore(me.dialog).on('load', function(){\n                    var r = this.contentWindow.document.body.innerHTML;\n                    if(r == '')return;\n                    \n//                    $(\"#userFaceImgStr\").val(\"abcd\"); \n                    \n                    me.uploadComplete(r);\n                    $(this).unbind('load');\n                    $(this).remove();\n\n                });\n                \n                $(this).parent()[0].submit();\n                Upload.updateInput( input );\n                me.toggleMask(\"Loading....\");\n                callback && callback();\n\n            });\n\n            return me;\n        },\n        //更新input\n        updateInput: function ( inputField ) {\n\n            $( \".edui-image-file\", this.dialog ).each( function ( index, ele ) {\n\n                ele.parentNode.replaceChild( inputField.cloneNode( true ), ele );\n\n            } );\n\n        },\n        //更新上传框\n        updateView: function () {\n\n            if ( Upload.showCount !== 0 ) {\n                return;\n            }\n\n            $(\".edui-image-upload2\", this.dialog).hide();\n            $(\".edui-image-dragTip\", this.dialog).show();\n            $(\".edui-image-upload1\", this.dialog).show();\n\n        },\n        drag: function () {\n            var me = this;\n            //做拽上传的支持\n            if (!UM.browser.ie9below) {\n                me.dialog.find('.edui-image-content').on('drop',function (e) {\n\n                    //获取文件列表\n                    var fileList = e.originalEvent.dataTransfer.files;\n                    var img = document.createElement('img');\n                    var hasImg = false;\n                    $.each(fileList, function (i, f) {\n                        if (/^image/.test(f.type)) {\n                            //创建图片的base64\n                            Base.createImgBase64(img, f, me.dialog);\n\n                            var xhr = new XMLHttpRequest();\n                            xhr.open(\"post\", me.editor.getOpt('imageUrl') + \"?type=ajax\", true);\n                            xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n\n                            //模拟数据\n                            var fd = new FormData();\n                            fd.append(me.editor.getOpt('imageFieldName'), f);\n\n                            xhr.send(fd);\n                            xhr.addEventListener('load', function (e) {\n                                var r = e.target.response, json;\n                                me.uploadComplete(r);\n                                if (i == fileList.length - 1) {\n                                    $(img).remove()\n                                }\n                            });\n                            hasImg = true;\n                        }\n                    });\n                    if (hasImg) {\n                        e.preventDefault();\n                        me.toggleMask(\"Loading....\");\n                    }\n\n                }).on('dragover', function (e) {\n                        e.preventDefault();\n                    });\n            }\n        },\n        toggleMask: function (html) {\n            var me = this;\n\n            var $mask = $(\".edui-image-mask\", me.dialog);\n            if (html) {\n                if (!(UM.browser.ie && UM.browser.version <= 9)) {\n                    $(\".edui-image-dragTip\", me.dialog).css( \"display\", \"none\" );\n                }\n                $(\".edui-image-upload1\", me.dialog).css( \"display\", \"none\" );\n                $mask.addClass(\"edui-active\").html(html);\n            } else {\n\n                $mask.removeClass(\"edui-active\").html();\n\n                if ( Upload.showCount > 0 ) {\n                    return me;\n                }\n\n                if (!(UM.browser.ie && UM.browser.version <= 9) ){\n                    $(\".edui-image-dragTip\", me.dialog).css(\"display\", \"block\");\n                }\n                $(\".edui-image-upload1\", me.dialog).css( \"display\", \"block\" );\n            }\n\n            return me;\n        }\n    };\n\n    /*\n     * 网络图片\n     * */\n    var NetWork = {\n        init: function (editor, $w) {\n            var me = this;\n\n            me.editor = editor;\n            me.dialog = $w;\n\n            me.initEvt();\n        },\n        initEvt: function () {\n            var me = this,\n                url,\n                $ele = $(\".edui-image-searchTxt\", me.dialog);\n\n            $(\".edui-image-searchAdd\", me.dialog).on(\"click\", function () {\n                url = Base.checkURL($ele.val());\n\n                if (url) {\n\n                    $(\"<img src='\" + url + \"' class='edui-image-pic' />\").on(\"load\", function () {\n\n\n\n                        var $item = $(\"<div class='edui-image-item'><div class='edui-image-close'></div></div>\").append(this);\n\n                        $(\".edui-image-searchRes\", me.dialog).append($item);\n\n                        Base.scale(this, 120);\n\n                        $item.width($(this).width());\n\n                        Base.close($(this));\n\n                        $ele.val(\"\");\n                    });\n                }\n            })\n                .hover(function () {\n                    $(this).toggleClass(\"hover\");\n                });\n        }\n    };\n\n    var $tab = null,\n        currentDialog = null;\n\n    UM.registerWidget('image', {\n        tpl: \"<link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"<%=image_url%>image.css\\\">\" +\n            \"<div class=\\\"edui-image-wrapper\\\">\" +\n            \"<ul class=\\\"edui-tab-nav\\\">\" +\n            \"<li class=\\\"edui-tab-item edui-active\\\"><a data-context=\\\".edui-image-local\\\" class=\\\"edui-tab-text\\\"><%=lang_tab_local%></a></li>\" +\n            \"<li  class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-image-JimgSearch\\\" class=\\\"edui-tab-text\\\"><%=lang_tab_imgSearch%></a></li>\" +\n            \"</ul>\" +\n            \"<div class=\\\"edui-tab-content\\\">\" +\n            \"<div class=\\\"edui-image-local edui-tab-pane edui-active\\\">\" +\n            \"<div class=\\\"edui-image-content\\\"></div>\" +\n            \"<div class=\\\"edui-image-mask\\\"></div>\" +\n            \"<div class=\\\"edui-image-dragTip\\\"><%=lang_input_dragTip%></div>\" +\n            \"</div>\" +\n            \"<div class=\\\"edui-image-JimgSearch edui-tab-pane\\\">\" +\n            \"<div class=\\\"edui-image-searchBar\\\">\" +\n            \"<table><tr><td><input class=\\\"edui-image-searchTxt\\\" type=\\\"text\\\"></td>\" +\n            \"<td><div class=\\\"edui-image-searchAdd\\\"><%=lang_btn_add%></div></td></tr></table>\" +\n            \"</div>\" +\n            \"<div class=\\\"edui-image-searchRes\\\"></div>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\",\n        initContent: function (editor, $dialog) {\n            var lang = editor.getLang('image')[\"static\"],\n                opt = $.extend({}, lang, {\n                    image_url: UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/image/'\n                });\n\n            Upload.showCount = 0;\n\n            if (lang) {\n                var html = $.parseTmpl(this.tpl, opt);\n            }\n\n            currentDialog = $dialog.edui();\n\n            this.root().html(html);\n\n        },\n        initEvent: function (editor, $w) {\n            $tab = $.eduitab({selector: \".edui-image-wrapper\"})\n                .edui().on(\"beforeshow\", function (e) {\n                    e.stopPropagation();\n                });\n\n            Upload.init(editor, $w);\n\n            NetWork.init(editor, $w);\n        },\n        buttons: {\n            'ok': {\n                exec: function (editor, $w) {\n                    var sel = \"\",\n                        index = $tab.activate();\n\n                    if (index == 0) {\n                        sel = \".edui-image-content .edui-image-pic\";\n                    } else if (index == 1) {\n                        sel = \".edui-image-searchRes .edui-image-pic\";\n                    }\n\n                    var list = Base.getAllPic(sel, $w, editor);\n\n                    if (index != -1) {\n                        editor.execCommand('insertimage', list);\n                    }\n                }\n            },\n            'cancel': {}\n        },\n        width: 700,\n        height: 408\n    }, function (editor, $w, url, state) {\n        Base.callback(editor, $w, url, state)\n    })\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/link/link.js",
    "content": "(function(){\n    var utils = UM.utils;\n    function hrefStartWith(href, arr) {\n        href = href.replace(/^\\s+|\\s+$/g, '');\n        for (var i = 0, ai; ai = arr[i++];) {\n            if (href.indexOf(ai) == 0) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    UM.registerWidget('link', {\n        tpl: \"<style type=\\\"text/css\\\">\" +\n            \".edui-dialog-link .edui-link-table{font-size: 12px;margin: 10px;line-height: 30px}\" +\n            \".edui-dialog-link .edui-link-txt{width:300px;height:21px;line-height:21px;border:1px solid #d7d7d7;}\" +\n            \"</style>\" +\n            \"<table class=\\\"edui-link-table\\\">\" +\n            \"<tr>\" +\n            \"<td><label for=\\\"href\\\"><%=lang_input_url%></label></td>\" +\n            \"<td><input class=\\\"edui-link-txt\\\" id=\\\"edui-link-Jhref\\\" type=\\\"text\\\" /></td>\" +\n            \"</tr>\" +\n            \"<tr>\" +\n            \"<td><label for=\\\"title\\\"><%=lang_input_title%></label></td>\" +\n            \"<td><input class=\\\"edui-link-txt\\\" id=\\\"edui-link-Jtitle\\\" type=\\\"text\\\"/></td>\" +\n            \"</tr>\" +\n            \"<tr>\" +\n            \"<td colspan=\\\"2\\\">\" +\n            \"<label for=\\\"target\\\"><%=lang_input_target%></label>\" +\n            \"<input id=\\\"edui-link-Jtarget\\\" type=\\\"checkbox\\\"/>\" +\n            \"</td>\" +\n            \"</tr>\" +\n//            \"<tr>\" +\n//            \"<td colspan=\\\"2\\\" id=\\\"edui-link-Jmsg\\\"></td>\" +\n//            \"</tr>\" +\n            \"</table>\",\n        initContent: function (editor) {\n            var lang = editor.getLang('link');\n            if (lang) {\n                var html = $.parseTmpl(this.tpl, lang.static);\n            }\n            this.root().html(html);\n        },\n        initEvent: function (editor, $w) {\n            var link = editor.queryCommandValue('link');\n            if(link){\n                $('#edui-link-Jhref',$w).val(utils.html($(link).attr('href')));\n                $('#edui-link-Jtitle',$w).val($(link).attr('title'));\n                $(link).attr('target') == '_blank' && $('#edui-link-Jtarget').attr('checked',true)\n            }\n            $('#edui-link-Jhref',$w).focus();\n        },\n        buttons: {\n            'ok': {\n                exec: function (editor, $w) {\n                    var href = $('#edui-link-Jhref').val().replace(/^\\s+|\\s+$/g, '');\n\n                    if (href) {\n                        editor.execCommand('link', {\n                            'href': href,\n                            'target': $(\"#edui-link-Jtarget:checked\").length ? \"_blank\" : '_self',\n                            'title': $(\"#edui-link-Jtitle\").val().replace(/^\\s+|\\s+$/g, ''),\n                            '_href': href\n                        });\n                    }\n                }\n            },\n            'cancel':{}\n        },\n        width: 400\n    })\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/map/map.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n    <meta charset=\"utf-8\"/>\n    <meta name=\"keywords\" content=\"百度地图,百度地图API，百度地图自定义工具，百度地图所见即所得工具\"/>\n    <meta name=\"description\" content=\"百度地图API自定义地图，帮助用户在可视化操作下生成百度地图\"/>\n    <title>百度地图API自定义地图</title>\n    <!--引用百度地图API-->\n    <style type=\"text/css\">\n        html, body {\n            margin: 0;\n            padding: 0;\n            overflow: hidden;\n        }\n    </style>\n    <script type=\"text/javascript\" src=\"http://api.map.baidu.com/api?key=&v=2.0&ak=6b6c1a67eaa7db1ca6d6da28e590e343&services=true\"></script>\n</head>\n\n<body onload=\"initMap();\">\n<!--百度地图容器-->\n<div style=\"width:697px;height:550px;border:#ccc solid 1px;\" id=\"dituContent\"></div>\n</body>\n<script type=\"text/javascript\">\n    function getParam(name) {\n        return location.href.match(new RegExp('[?#&]' + name + '=([^?#&]+)', 'i')) ? RegExp.$1 : '';\n    }\n    var map, marker;\n    var centerParam = getParam('center');\n    var zoomParam = getParam('zoom');\n    var widthParam = getParam('width');\n    var heightParam = getParam('height');\n    var markersParam = getParam('markers');\n    var markerStylesParam = getParam('markerStyles');\n    var iframe = getSelfIframe();\n    var UM = parent.UM;\n    var editor = getEditor();\n\n    //创建和初始化地图函数：\n    function initMap() {\n        // [FF]切换模式后报错\n        if (!window.BMap) {\n            return;\n        }\n        var dituContent = document.getElementById('dituContent');\n        dituContent.style.width = widthParam + 'px';\n        dituContent.style.height = heightParam + 'px';\n\n        createMap();//创建地图\n        setMapEvent();//设置地图事件\n        addMapControl();//向地图添加控件\n\n        // 创建标注\n        var markersArr = markersParam.split(',');\n        var point = new BMap.Point(markersArr[0], markersArr[1]);\n        marker = new BMap.Marker(point);\n        marker.enableDragging();\n        map.addOverlay(marker); // 将标注添加到地图中\n\n        if(iframe && UM && editor) { //在编辑状态下\n            setMapListener();//地图改变修改外层的iframe标签src属性\n        } else {\n            document.focus();\n        }\n    }\n\n    //创建地图函数：\n    function createMap() {\n        map = new BMap.Map(\"dituContent\");//在百度地图容器中创建一个地图\n        var centerArr = centerParam.split(',');\n        var point = new BMap.Point(parseFloat(centerArr[0]), parseFloat(centerArr[1]));//定义一个中心点坐标\n        map.centerAndZoom(point, parseInt(zoomParam));//设定地图的中心点和坐标并将地图显示在地图容器中\n    }\n\n    //地图事件设置函数：\n    function setMapEvent() {\n        map.enableDragging();//启用地图拖拽事件，默认启用(可不写)\n        map.enableScrollWheelZoom();//启用地图滚轮放大缩小\n        map.enableDoubleClickZoom();//启用鼠标双击放大，默认启用(可不写)\n        map.enableKeyboard();//启用键盘上下左右键移动地图\n    }\n\n    //地图控件添加函数：\n    function addMapControl() {\n        //向地图中添加缩放控件\n        var ctrl_nav = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE});\n        map.addControl(ctrl_nav);\n        //向地图中添加缩略图控件\n        var ctrl_ove = new BMap.OverviewMapControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: 1});\n        map.addControl(ctrl_ove);\n        //向地图中添加比例尺控件\n        var ctrl_sca = new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT});\n        map.addControl(ctrl_sca);\n    }\n\n    function setMapListener() {\n        var timer;\n\n        map.addEventListener('moveend', mapListenerHandler);\n        map.addEventListener('zoomend', mapListenerHandler);\n        marker.addEventListener('dragend', mapListenerHandler);\n\n        function mapListenerHandler() {\n            var zoom = map.getZoom(),\n                center = map.getCenter(),\n                marker = window.marker.P;\n\n            iframe.src = iframe.src.\n                replace(new RegExp('([?#&])center=([^?#&]+)', 'i'), '$1center=' + center.lng + ',' + center.lat).\n                replace(new RegExp('([?#&])markers=([^?#&]+)', 'i'), '$1markers=' + marker.lng + ',' + marker.lat).\n                replace(new RegExp('([?#&])zoom=([^?#&]+)', 'i'), '$1zoom=' + zoom);\n            editor.fireEvent('saveScene');\n            saveScene(editor);\n        }\n\n        function saveScene(){\n            if(!timer) {\n                timer = setTimeout(function(){\n                    editor.fireEvent('savescene');\n                    editor.fireEvent('contentchange');\n                    timer = null;\n                }, 1000);\n            }\n        }\n    }\n\n    function getSelfIframe(){\n        var iframes = parent.document.getElementsByTagName('iframe');\n        for (var key in iframes) {\n            if (iframes[key].contentWindow == window) {\n                return iframes[key];\n            }\n        }\n        return null;\n    }\n\n    function getEditor(){\n        var parentNode = iframe.parentNode;\n        while (parentNode && parentNode.tagName && parentNode.tagName.toLowerCase() != 'body') {\n            if (parentNode.className && parentNode.className.indexOf('edui-body-container')!=-1) {\n                return UM.getEditor(parentNode.id);\n            }\n            parentNode = parentNode.parentNode;\n        }\n        return null;\n    }\n</script>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/map/map.js",
    "content": "(function () {\n\n    var widgetName = 'map';\n\n    UM.registerWidget(widgetName, {\n\n        tpl: \"<style type=\\\"text/css\\\">\" +\n            \".edui-dialog-map .edui-map-content{width:530px; height: 350px;margin: 10px auto;}\" +\n            \".edui-dialog-map .edui-map-content table{width: 100%}\" +\n            \".edui-dialog-map .edui-map-content table td{vertical-align: middle;}\" +\n            \".edui-dialog-map .edui-map-button { border: 1px solid #ccc; float: left; cursor: default; height: 23px; width: 70px; cursor: pointer; margin: 0; font-size: 12px; line-height: 24px; text-align: center; }\" +\n            \".edui-dialog-map .edui-map-button:hover {background:#eee;}\" +\n            \".edui-dialog-map .edui-map-city,.edui-dialog-map .edui-map-address{height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}\" +\n            \".edui-dialog-map .edui-map-city{width:90px}\" +\n            \".edui-dialog-map .edui-map-address{width:150px}\" +\n            \".edui-dialog-map .edui-map-dynamic-label span{vertical-align:middle;margin: 3px 0px 3px 3px;}\" +\n            \".edui-dialog-map .edui-map-dynamic-label input{vertical-align:middle;margin: 3px;}\" +\n            \"</style>\" +\n            \"<div class=\\\"edui-map-content\\\">\" +\n            \"<table>\" +\n            \"<tr>\" +\n            \"<td><%=lang_city%>:</td>\" +\n            \"<td><input class=\\\"edui-map-city\\\" type=\\\"text\\\" value=\\\"<%=city.value%>\\\"/></td>\" +\n            \"<td><%=lang_address%>:</td>\" +\n            \"<td><input class=\\\"edui-map-address\\\" type=\\\"text\\\" value=\\\"\\\" /></td>\" +\n            \"<td><a class=\\\"edui-map-button\\\"><%=lang_search%></a></td>\" +\n            \"<td><label class=\\\"edui-map-dynamic-label\\\"><input class=\\\"edui-map-dynamic\\\" type=\\\"checkbox\\\" name=\\\"edui-map-dynamic\\\" /><span><%=lang_dynamicmap%></span></label></td>\"+\n            \"</tr>\" +\n            \"</table>\" +\n            \"<div style=\\\"width:100%;height:340px;margin:5px auto;border:1px solid gray\\\" class=\\\"edui-map-container\\\"></div>\" +\n            \"</div>\" +\n            \"<script class=\\\"edui-tpl-container\\\" type=\\\"text/plain\\\">\" +\n            \"<!DOCTYPE html>\" +\n            \"<html>\" +\n            \"<head>\" +\n            \"<title></title>\" +\n            \"</head>\" +\n            \"<body>\" +\n            \"<scr_ipt>\" +\n            \"window.onload = function(){\" +\n            \"var scripts = document.scripts || document.getElementsByTagName(\\\"script\\\"),\" +\n            \"src = [];\" +\n            \"for( var i = 1, len = scripts.length; i<len; i++ ) {\" +\n            \"src.push( scripts[i].src );\" +\n            \"}\" +\n            \"parent.UM.getEditor(<<id>>).getWidgetData(\\'map\\').requestMapApi( src );\" +\n            \"};\" +\n            \"function mapReadyStateChange ( state ) { \" +\n            \" if ( state === 'complete' || state === 'loaded' ) {\" +\n            \" document.close(); \" +\n            \" } }\" +\n            \"</scr_ipt>\" +\n            \"<scr_ipt onreadystatechange='mapReadyStateChange(this.readyState);' onload='mapReadyStateChange(\\\"loaded\\\");' src=\\\"http://api.map.baidu.com/api?v=2.0&ak=6b6c1a67eaa7db1ca6d6da28e590e343&services=true\\\"></scr_ipt>\" +\n            \"</body>\" +\n            \"</html>\" +\n            \"</script>\",\n        initContent: function (editor, $widget) {\n\n            var me = this,\n                lang = editor.getLang(widgetName),\n                theme_url = editor.options.themePath + editor.options.theme;\n\n            if( me.inited ) {\n                me.preventDefault();\n                return false;\n            }\n\n            me.inited = true;\n\n            me.lang = lang;\n            me.editor = editor;\n\n            me.root().html($.parseTmpl(me.tpl, $.extend({}, lang['static'], {\n                'theme_url': theme_url\n            })));\n\n            me.initRequestApi();\n\n        },\n        /**\n         * 初始化请求API\n         */\n        initRequestApi: function () {\n\n            var $ifr = null;\n\n            //已经初始化过， 不用再次初始化\n            if (window.BMap && window.BMap.Map) {\n                this.initBaiduMap();\n            } else {\n\n                $ifr = $('<iframe style=\"display: none;\"></iframe>');\n                $ifr.appendTo( this.root() );\n\n                $ifr = $ifr[ 0 ].contentWindow.document;\n\n                $ifr.open();\n                $ifr.write( this.root().find(\".edui-tpl-container\").html().replace( /scr_ipt/g, 'script').replace('<<id>>',\"'\" + this.editor.id + \"'\") );\n\n            }\n\n        },\n        requestMapApi: function (src) {\n\n            var me = this;\n\n            if (src.length) {\n\n                var _src = src[0];\n\n                src = src.slice(1);\n\n                if (_src) {\n                    $.getScript(_src, function () {\n                        me.requestMapApi(src);\n                    });\n                } else {\n                    me.requestMapApi(src);\n                }\n\n            } else {\n\n                me.initBaiduMap();\n\n            }\n\n\n        },\n        initBaiduMap: function () {\n\n            var $root = this.root(),\n                map = new BMap.Map($root.find(\".edui-map-container\")[0]),\n                me = this,\n                marker,\n                point,\n                imgcss,\n                img = $(me.editor.selection.getRange().getClosedNode());\n\n            map.enableInertialDragging();\n            map.enableScrollWheelZoom();\n            map.enableContinuousZoom();\n\n            if (img.length && /api[.]map[.]baidu[.]com/ig.test(img.attr(\"src\"))) {\n                var url = img.attr(\"src\"),\n                    centerPos = me.getPars(url, \"center\").split(\",\"),\n                    markerPos = me.getPars(url, \"markers\").split(\",\");\n                point = new BMap.Point(Number(centerPos[0]), Number(centerPos[1]));\n                marker = new BMap.Marker(new BMap.Point(Number(markerPos[0]), Number(markerPos[1])));\n                map.addControl(new BMap.NavigationControl());\n                map.centerAndZoom(point, Number(me.getPars(url, \"zoom\")));\n                imgcss = img.attr('style');\n            } else {\n                point = new BMap.Point(116.404, 39.915);    // 创建点坐标\n                marker = new BMap.Marker(point);\n                map.addControl(new BMap.NavigationControl());\n                map.centerAndZoom(point, 10);                     // 初始化地图,设置中心点坐标和地图级别。\n            }\n            marker.enableDragging();\n            map.addOverlay(marker);\n\n            me.map = map;\n            me.marker = marker;\n            me.imgcss = imgcss;\n        },\n        doSearch: function () {\n            var me = this,\n                city = me.root().find('.edui-map-city').val(),\n                address = me.root().find('.edui-map-address').val();\n\n            if (!city) {\n                alert(me.lang.cityMsg);\n                return;\n            }\n            var search = new BMap.LocalSearch(city, {\n                onSearchComplete: function (results) {\n                    if (results && results.getNumPois()) {\n                        var points = [];\n                        for (var i = 0; i < results.getCurrentNumPois(); i++) {\n                            points.push(results.getPoi(i).point);\n                        }\n                        if (points.length > 1) {\n                            me.map.setViewport(points);\n                        } else {\n                            me.map.centerAndZoom(points[0], 13);\n                        }\n                        point = me.map.getCenter();\n                        me.marker.setPoint(point);\n                    } else {\n                        alert(me.lang.errorMsg);\n                    }\n                }\n            });\n            search.search(address || city);\n        },\n        getPars: function (str, par) {\n            var reg = new RegExp(par + \"=((\\\\d+|[.,])*)\", \"g\");\n            return reg.exec(str)[1];\n        },\n        reset: function(){\n            this.map && this.map.reset();\n        },\n        initEvent: function () {\n            var me = this,\n                $root = me.root();\n\n            $root.find('.edui-map-address').on('keydown', function (evt) {\n                evt = evt || event;\n                if (evt.keyCode == 13) {\n                    me.doSearch();\n                    return false;\n                }\n            });\n\n            $root.find(\".edui-map-button\").on('click', function (evt) {\n                me.doSearch();\n            });\n\n            $root.find(\".edui-map-address\").focus();\n\n            $root.on( \"mousewheel DOMMouseScroll\", function ( e ) {\n                return false;\n            } );\n\n        },\n        width: 580,\n        height: 408,\n        buttons: {\n            ok: {\n                exec: function (editor) {\n                    var widget = editor.getWidgetData(widgetName),\n                        center = widget.map.getCenter(),\n                        zoom = widget.map.getZoom(),\n                        size = widget.map.getSize(),\n                        point = widget.marker.P;\n\n                    if (widget.root().find(\".edui-map-dynamic\")[0].checked) {\n                        var URL = editor.getOpt('UMEDITOR_HOME_URL'),\n                            url = [URL + (/\\/$/.test(URL) ? '':'/') + \"dialogs/map/map.html\" +\n                                '#center=' + center.lng + ',' + center.lat,\n                                '&zoom=' + zoom,\n                                '&width=' + size.width,\n                                '&height=' + size.height,\n                                '&markers=' + point.lng + ',' + point.lat].join('');\n                        editor.execCommand('inserthtml', '<iframe class=\"ueditor_baidumap\" src=\"' + url + '\" frameborder=\"0\" width=\"' + (size.width+4) + '\" height=\"' + (size.height+4) + '\"></iframe>');\n                    } else {\n                        url = \"http://api.map.baidu.com/staticimage?center=\" + center.lng + ',' + center.lat +\n                            \"&zoom=\" + zoom + \"&width=\" + size.width + '&height=' + size.height + \"&markers=\" + point.lng + ',' + point.lat;\n                        editor.execCommand('inserthtml', '<img width=\"' + size.width + '\"height=\"' + size.height + '\" src=\"' + url + '\"' + (widget.imgcss ? ' style=\"' + widget.imgcss + '\"' : '') + '/>', true);\n                    }\n\n                    widget.reset();\n                }\n            },\n            cancel: {\n                exec: function(editor){\n                    editor.getWidgetData(widgetName).reset();\n                }\n            }\n        }\n    });\n\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/video/video.css",
    "content": "@charset \"utf-8\";\n.edui-dialog-video .edui-video-wrapper{ width: 570px;_width:575px;margin: 10px auto; zoom:1;position: relative}\n.edui-dialog-video .edui-video-tabbody{height:335px;}\n.edui-dialog-video .edui-video-panel { position: absolute;width:100%; height:100%;background: #fff;}\n.edui-dialog-video .edui-video-panel table td{vertical-align: middle;}\n.edui-dialog-video #eduiVideoUrl {\n    width: 470px;\n    height: 21px;\n    line-height: 21px;\n    margin: 8px 5px;\n    background: #FFF;\n    border: 1px solid #d7d7d7;\n}\n.edui-dialog-video #eduiVideoSearchTxt{margin-left:15px;background: #FFF;width:200px;height:21px;line-height:21px;border: 1px solid #d7d7d7;}\n.edui-dialog-video #searchList{width: 570px;overflow: auto;zoom:1;height: 270px;}\n.edui-dialog-video #searchList div{float: left;width: 120px;height: 135px;margin: 5px 15px;}\n.edui-dialog-video #searchList img{margin: 2px 8px;cursor: pointer;border: 2px solid #fff} /*不用缩略图*/\n.edui-dialog-video #searchList p{margin-left: 10px;}\n.edui-dialog-video #eduiVideoType{\n    width: 65px;\n    height: 23px;\n    line-height: 22px;\n    border: 1px solid #d7d7d7;\n}\n.edui-dialog-video #eduiVideoSearchBtn,.edui-dialog-video #eduiVideoSearchReset{\n    /*width: 80px;*/\n    height: 25px;\n    line-height: 25px;\n    background: #eee;\n    border: 1px solid #d7d7d7;\n    cursor: pointer;\n    padding: 0 5px;\n}\n\n\n\n.edui-dialog-video #eduiVideoPreview{width: 420px; margin-left: 10px; _margin-left:5px; height: 280px;background-color: #ddd;float: left}\n.edui-dialog-video #eduiVideoInfo {width: 120px;float: left;margin-left: 10px;_margin-left:7px;}\n.edui-dialog-video .edui-video-wrapper fieldset{\n    border: 1px solid #ddd;\n    padding-left: 5px;\n    margin-bottom: 20px;\n    padding-bottom: 5px;\n    width: 115px;\n}\n.edui-dialog-video .edui-video-wrapper fieldset legend{font-weight: bold;}\n.edui-dialog-video .edui-video-wrapper fieldset p{line-height: 30px;}\n.edui-dialog-video .edui-video-wrapper fieldset input.edui-video-txt{\n    width: 65px;\n    height: 21px;\n    line-height: 21px;\n    margin: 8px 5px;\n    background: #FFF;\n    border: 1px solid #d7d7d7;\n}\n.edui-dialog-video .edui-video-wrapper label.edui-video-url{font-weight: bold;margin-left: 5px;color: #06c;}\n.edui-dialog-video #eduiVideoFloat div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;}\n.edui-dialog-video #eduiVideoFloat .edui-video-focus{opacity: 1;filter: alpha(opacity = 100)}\n.edui-dialog-video .edui-video-wrapper span.edui-video-view{display: inline-block;width: 30px;float: right;cursor: pointer;color: blue}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/video/video.js",
    "content": "\n(function(){\n    var domUtils = UM.dom.domUtils;\n    var widgetName = 'video';\n\n    UM.registerWidget( widgetName,{\n\n        tpl: \"<link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"<%=video_url%>video.css\\\" />\" +\n            \"<div class=\\\"edui-video-wrapper\\\">\" +\n            \"<div id=\\\"eduiVideoTab\\\">\" +\n            \"<div id=\\\"eduiVideoTabHeads\\\" class=\\\"edui-video-tabhead\\\">\" +\n            \"<span tabSrc=\\\"video\\\" class=\\\"edui-video-focus\\\"><%=lang_tab_insertV%></span>\" +\n            \"</div>\" +\n            \"<div id=\\\"eduiVideoTabBodys\\\" class=\\\"edui-video-tabbody\\\">\" +\n            \"<div id=\\\"eduiVideoPanel\\\" class=\\\"edui-video-panel\\\">\" +\n            \"<table><tr><td><label for=\\\"eduiVideoUrl\\\" class=\\\"edui-video-url\\\"><%=lang_video_url%></label></td><td><input id=\\\"eduiVideoUrl\\\" type=\\\"text\\\"></td></tr></table>\" +\n            \"<div id=\\\"eduiVideoPreview\\\"></div>\" +\n            \"<div id=\\\"eduiVideoInfo\\\">\" +\n            \"<fieldset>\" +\n            \"<legend><%=lang_video_size%></legend>\" +\n            \"<table>\" +\n            \"<tr><td><label for=\\\"eduiVideoWidth\\\"><%=lang_videoW%></label></td><td><input class=\\\"edui-video-txt\\\" id=\\\"eduiVideoWidth\\\" type=\\\"text\\\"/></td></tr>\" +\n            \"<tr><td><label for=\\\"eduiVideoHeight\\\"><%=lang_videoH%></label></td><td><input class=\\\"edui-video-txt\\\" id=\\\"eduiVideoHeight\\\" type=\\\"text\\\"/></td></tr>\" +\n            \"</table>\" +\n            \"</fieldset>\" +\n            \"<fieldset>\" +\n            \"<legend><%=lang_alignment%></legend>\" +\n            \"<div id=\\\"eduiVideoFloat\\\"></div>\" +\n            \"</fieldset>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\",\n        initContent:function( editor, $widget ){\n\n            var me = this,\n                lang = editor.getLang( widgetName),\n                video_url = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/video/';\n\n            me.lang = lang;\n            me.editor = editor;\n            me.$widget = $widget;\n            me.root().html( $.parseTmpl( me.tpl, $.extend( { video_url: video_url }, lang['static'] ) ) );\n\n            me.initController( lang );\n\n        },\n        initEvent:function(){\n\n            var me = this,\n                url = $(\"#eduiVideoUrl\", me.$widget)[0];\n\n            if( 'oninput' in url ) {\n                url.oninput = function(){\n                    me.createPreviewVideo( this.value );\n                };\n            } else {\n                url.onpropertychange = function () {\n                    me.createPreviewVideo( this.value );\n                }\n            }\n\n        },\n        initController: function( lang ){\n\n            var me = this,\n                img = me.editor.selection.getRange().getClosedNode(),\n                url;\n\n            me.createAlignButton( [\"eduiVideoFloat\"] );\n\n            //编辑视频时初始化相关信息\n            if(img && img.className == \"edui-faked-video\"){\n                $(\"#eduiVideoUrl\", me.$widget)[0].value = url = img.getAttribute(\"_url\");\n                $(\"#eduiVideoWidth\", me.$widget)[0].value = img.width;\n                $(\"#eduiVideoHeight\", me.$widget)[0].value = img.height;\n                var align = domUtils.getComputedStyle(img,\"float\"),\n                    parentAlign = domUtils.getComputedStyle(img.parentNode,\"text-align\");\n                me.updateAlignButton(parentAlign===\"center\"?\"center\":align);\n            }\n            me.createPreviewVideo(url);\n\n        },\n        /**\n         * 根据url生成视频预览\n         */\n        createPreviewVideo: function(url){\n\n            if ( !url )return;\n\n            var me = this,\n                lang = me.lang,\n                conUrl = me.convert_url(url);\n\n            if(!me.endWith(conUrl,[\".swf\",\".flv\",\".wmv\"])){\n                $(\"#eduiVideoPreview\", me.$widget).html( lang.urlError );\n                return;\n            }\n            $(\"#eduiVideoPreview\", me.$widget)[0].innerHTML = '<embed type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"' +\n                ' src=\"' + url + '\"' +\n                ' width=\"' + 420  + '\"' +\n                ' height=\"' + 280  + '\"' +\n                ' wmode=\"transparent\" play=\"true\" loop=\"false\" menu=\"false\" allowscriptaccess=\"never\" allowfullscreen=\"true\" ></embed>';\n\n        },\n        /**\n         * 将单个视频信息插入编辑器中\n         */\n        insertSingle: function(){\n\n            var me = this,\n                width = $(\"#eduiVideoWidth\", me.$widget)[0],\n                height = $(\"#eduiVideoHeight\", me.$widget)[0],\n                url=$('#eduiVideoUrl', me.$widget)[0].value,\n                align = this.findFocus(\"eduiVideoFloat\",\"name\");\n\n            if(!url) return false;\n            if ( !me.checkNum( [width, height] ) ) return false;\n            this.editor.execCommand('insertvideo', {\n                url: me.convert_url(url),\n                width: width.value,\n                height: height.value,\n                align: align\n            });\n\n        },\n        /**\n         * URL转换\n         */\n        convert_url: function(url){\n            if ( !url ) return '';\n            var matches = url.match(/youtu.be\\/(\\w+)$/) ||\n                    url.match(/youtube\\.com\\/watch\\?v=(\\w+)/) ||\n                    url.match(/youtube.com\\/v\\/(\\w+)/),\n                youku = url.match(/youku\\.com\\/v_show\\/id_(\\w+)/),\n                youkuPlay = /player\\.youku\\.com/ig.test(url);\n\n            if(youkuPlay){\n                url = url.replace(/\\?f=.*/, \"\");\n            } else if (matches){\n                url = \"https://www.youtube.com/v/\" + matches[1] + \"?version=3&feature=player_embedded\";\n            }else if(youku){\n                url = \"http://player.youku.com/player.php/sid/\"+youku[1]+\"/v.swf\"\n            } else {\n                url = url.replace(/http:\\/\\/www\\.tudou\\.com\\/programs\\/view\\/([\\w\\-]+)\\/?/i, \"http://www.tudou.com/v/$1\")\n                    .replace(/http:\\/\\/www\\.youtube\\.com\\/watch\\?v=([\\w\\-]+)/i, \"http://www.youtube.com/v/$1\")\n                    .replace(/http:\\/\\/v\\.youku\\.com\\/v_show\\/id_([\\w\\-=]+)\\.html/i, \"http://player.youku.com/player.php/sid/$1\")\n                    .replace(/http:\\/\\/www\\.56\\.com\\/u\\d+\\/v_([\\w\\-]+)\\.html/i, \"http://player.56.com/v_$1.swf\")\n                    .replace(/http:\\/\\/www.56.com\\/w\\d+\\/play_album\\-aid\\-\\d+_vid\\-([^.]+)\\.html/i, \"http://player.56.com/v_$1.swf\")\n                    .replace(/http:\\/\\/v\\.ku6\\.com\\/.+\\/([^.]+)\\.html/i, \"http://player.ku6.com/refer/$1/v.swf\")\n                    .replace(/\\?f=.*/, \"\");\n            }\n            return url;\n        },\n        /**\n         * 检测传入的所有input框中输入的长宽是否是正数\n         */\n        checkNum: function checkNum( nodes ) {\n\n            var me = this;\n\n            for ( var i = 0, ci; ci = nodes[i++]; ) {\n                var value = ci.value;\n                if ( !me.isNumber( value ) && value) {\n                    alert( me.lang.numError );\n                    ci.value = \"\";\n                    ci.focus();\n                    return false;\n                }\n            }\n            return true;\n        },\n        /**\n         * 数字判断\n         * @param value\n         */\n        isNumber: function( value ) {\n            return /(0|^[1-9]\\d*$)/.test( value );\n        },\n        updateAlignButton: function( align ) {\n            var aligns = $( \"#eduiVideoFloat\", this.$widget )[0].children;\n\n            for ( var i = 0, ci; ci = aligns[i++]; ) {\n                if ( ci.getAttribute( \"name\" ) == align ) {\n                    if ( ci.className !=\"edui-video-focus\" ) {\n                        ci.className = \"edui-video-focus\";\n                    }\n                } else {\n                    if ( ci.className ==\"edui-video-focus\" ) {\n                        ci.className = \"\";\n                    }\n                }\n            }\n\n        },\n        /**\n         * 创建图片浮动选择按钮\n         * @param ids\n         */\n        createAlignButton: function( ids ) {\n            var lang = this.lang,\n                vidoe_home = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/video/';\n\n            for ( var i = 0, ci; ci = ids[i++]; ) {\n                var floatContainer = $( \"#\" + ci, this.$widget ) [0],\n                    nameMaps = {\"none\":lang['default'], \"left\":lang.floatLeft, \"right\":lang.floatRight};\n                for ( var j in nameMaps ) {\n                    var div = document.createElement( \"div\" );\n                    div.setAttribute( \"name\", j );\n                    if ( j == \"none\" ) div.className=\"edui-video-focus\";\n                    div.style.cssText = \"background:url(\"+ vidoe_home +\"images/\" + j + \"_focus.jpg);\";\n                    div.setAttribute( \"title\", nameMaps[j] );\n                    floatContainer.appendChild( div );\n                }\n                this.switchSelect( ci );\n            }\n        },\n        /**\n         * 选择切换\n         */\n        switchSelect: function( selectParentId ) {\n            var selects = $( \"#\" + selectParentId, this.$widget )[0].children;\n            for ( var i = 0, ci; ci = selects[i++]; ) {\n               $(ci).on(\"click\", function () {\n                    for ( var j = 0, cj; cj = selects[j++]; ) {\n                        cj.className = \"\";\n                        cj.removeAttribute && cj.removeAttribute( \"class\" );\n                    }\n                    this.className = \"edui-video-focus\";\n                } )\n            }\n        },\n        /**\n         * 找到id下具有focus类的节点并返回该节点下的某个属性\n         * @param id\n         * @param returnProperty\n         */\n        findFocus: function( id, returnProperty ) {\n            var tabs = $( \"#\" + id , this.$widget)[0].children,\n                property;\n            for ( var i = 0, ci; ci = tabs[i++]; ) {\n                if ( ci.className==\"edui-video-focus\" ) {\n                    property = ci.getAttribute( returnProperty );\n                    break;\n                }\n            }\n            return property;\n        },\n        /**\n         * 末尾字符检测\n         */\n        endWith: function(str,endStrArr){\n            for(var i=0,len = endStrArr.length;i<len;i++){\n                var tmp = endStrArr[i];\n                if(str.length - tmp.length<0) return false;\n\n                if(str.substring(str.length-tmp.length)==tmp){\n                    return true;\n                }\n            }\n            return false;\n        },\n        width:610,\n        height:498,\n        buttons: {\n            ok: {\n                exec: function( editor, $w ){\n                    $(\"#eduiVideoPreview\", $w).html(\"\");\n                    editor.getWidgetData(widgetName).insertSingle();\n                }\n            },\n            cancel: {\n                exec: function(){\n                    //清除视频\n                    $(\"#eduiVideoPreview\").html(\"\");\n                }\n            }\n        }\n    });\n\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/index.html",
    "content": "<!DOCTYPE HTML>\n<html>\n<head>\n\n    <meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>\n    <title>UMEDITOR 完整demo</title>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n    <link href=\"themes/default/css/umeditor.css\" type=\"text/css\" rel=\"stylesheet\">\n    <script type=\"text/javascript\" src=\"third-party/jquery.min.js\"></script>\n    <script type=\"text/javascript\" charset=\"utf-8\" src=\"umeditor.config.js\"></script>\n    <script type=\"text/javascript\" charset=\"utf-8\" src=\"umeditor.min.js\"></script>\n    <script type=\"text/javascript\" src=\"lang/zh-cn/zh-cn.js\"></script>\n    <style type=\"text/css\">\n        h1{\n            font-family: \"微软雅黑\";\n            font-weight: normal;\n        }\n        .btn {\n            display: inline-block;\n            *display: inline;\n            padding: 4px 12px;\n            margin-bottom: 0;\n            *margin-left: .3em;\n            font-size: 14px;\n            line-height: 20px;\n            color: #333333;\n            text-align: center;\n            text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);\n            vertical-align: middle;\n            cursor: pointer;\n            background-color: #f5f5f5;\n            *background-color: #e6e6e6;\n            background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);\n            background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));\n            background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);\n            background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);\n            background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);\n            background-repeat: repeat-x;\n            border: 1px solid #cccccc;\n            *border: 0;\n            border-color: #e6e6e6 #e6e6e6 #bfbfbf;\n            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n            border-bottom-color: #b3b3b3;\n            -webkit-border-radius: 4px;\n            -moz-border-radius: 4px;\n            border-radius: 4px;\n            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);\n            filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n            *zoom: 1;\n            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n        }\n\n        .btn:hover,\n        .btn:focus,\n        .btn:active,\n        .btn.active,\n        .btn.disabled,\n        .btn[disabled] {\n            color: #333333;\n            background-color: #e6e6e6;\n            *background-color: #d9d9d9;\n        }\n\n        .btn:active,\n        .btn.active {\n            background-color: #cccccc \\9;\n        }\n\n        .btn:first-child {\n            *margin-left: 0;\n        }\n\n        .btn:hover,\n        .btn:focus {\n            color: #333333;\n            text-decoration: none;\n            background-position: 0 -15px;\n            -webkit-transition: background-position 0.1s linear;\n            -moz-transition: background-position 0.1s linear;\n            -o-transition: background-position 0.1s linear;\n            transition: background-position 0.1s linear;\n        }\n\n        .btn:focus {\n            outline: thin dotted #333;\n            outline: 5px auto -webkit-focus-ring-color;\n            outline-offset: -2px;\n        }\n\n        .btn.active,\n        .btn:active {\n            background-image: none;\n            outline: 0;\n            -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n            -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n            box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n        }\n\n        .btn.disabled,\n        .btn[disabled] {\n            cursor: default;\n            background-image: none;\n            opacity: 0.65;\n            filter: alpha(opacity=65);\n            -webkit-box-shadow: none;\n            -moz-box-shadow: none;\n            box-shadow: none;\n        }\n    </style>\n</head>\n<body>\n<h1>UMEDITOR 完整demo</h1>\n\n<!--style给定宽度可以影响编辑器的最终宽度-->\n<script type=\"text/plain\" id=\"myEditor\" style=\"width:1000px;height:240px;\">\n    <p>这里我可以写一些输入提示</p>\n</script>\n\n\n<div class=\"clear\"></div>\n<div id=\"btns\">\n    <table>\n        <tr>\n            <td>\n                <button class=\"btn\" unselected=\"on\" onclick=\"getAllHtml()\">获得整个html的内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"getContent()\">获得内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"setContent()\">写入内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"setContent(true)\">追加内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"getContentTxt()\">获得纯文本</button>&nbsp;\n                <button class=\"btn\" onclick=\"getPlainTxt()\">获得带格式的纯文本</button>&nbsp;\n                <button class=\"btn\" onclick=\"hasContent()\">判断是否有内容</button>\n            </td>\n        </tr>\n        <tr>\n            <td>\n                <button class=\"btn\" onclick=\"setFocus()\">编辑器获得焦点</button>&nbsp;\n                <button class=\"btn\" onmousedown=\"isFocus();return false;\">编辑器是否获得焦点</button>&nbsp;\n                <button class=\"btn\" onclick=\"doBlur()\">编辑器取消焦点</button>&nbsp;\n                <button class=\"btn\" onclick=\"insertHtml()\">插入给定的内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"getContentTxt()\">获得纯文本</button>&nbsp;\n                <button class=\"btn\" id=\"enable\" onclick=\"setEnabled()\">可以编辑</button>&nbsp;\n                <button class=\"btn\" onclick=\"setDisabled()\">不可编辑</button>\n            </td>\n        </tr>\n        <tr>\n            <td>\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setHide()\">隐藏编辑器</button>&nbsp;\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setShow()\">显示编辑器</button>&nbsp;\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setHeight(300)\">设置编辑器的高度为300</button>&nbsp;\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setWidth(1200)\">设置编辑器的宽度为1200</button>\n            </td>\n        </tr>\n\n    </table>\n</div>\n<table>\n    <tr>\n        <td>\n            <button class=\"btn\" onclick=\"createEditor()\"/>创建编辑器</button>\n            <button class=\"btn\" onclick=\"deleteEditor()\"/>删除编辑器</button>\n        </td>\n    </tr>\n</table>\n\n<div>\n    <h3 id=\"focush2\"></h3>\n</div>\n<script type=\"text/javascript\">\n    //实例化编辑器\n    var um = UM.getEditor('myEditor');\n    um.addListener('blur',function(){\n        $('#focush2').html('编辑器失去焦点了')\n    });\n    um.addListener('focus',function(){\n        $('#focush2').html('')\n    });\n    //按钮的操作\n    function insertHtml() {\n        var value = prompt('插入html代码', '');\n        um.execCommand('insertHtml', value)\n    }\n    function isFocus(){\n        alert(um.isFocus())\n    }\n    function doBlur(){\n        um.blur()\n    }\n    function createEditor() {\n        enableBtn();\n        um = UM.getEditor('myEditor');\n    }\n    function getAllHtml() {\n        alert(UM.getEditor('myEditor').getAllHtml())\n    }\n    function getContent() {\n        var arr = [];\n        arr.push(\"使用editor.getContent()方法可以获得编辑器的内容\");\n        arr.push(\"内容为：\");\n        arr.push(UM.getEditor('myEditor').getContent());\n        alert(arr.join(\"\\n\"));\n    }\n    function getPlainTxt() {\n        var arr = [];\n        arr.push(\"使用editor.getPlainTxt()方法可以获得编辑器的带格式的纯文本内容\");\n        arr.push(\"内容为：\");\n        arr.push(UM.getEditor('myEditor').getPlainTxt());\n        alert(arr.join('\\n'))\n    }\n    function setContent(isAppendTo) {\n        var arr = [];\n        arr.push(\"使用editor.setContent('欢迎使用umeditor')方法可以设置编辑器的内容\");\n        UM.getEditor('myEditor').setContent('欢迎使用umeditor', isAppendTo);\n        alert(arr.join(\"\\n\"));\n    }\n    function setDisabled() {\n        UM.getEditor('myEditor').setDisabled('fullscreen');\n        disableBtn(\"enable\");\n    }\n\n    function setEnabled() {\n        UM.getEditor('myEditor').setEnabled();\n        enableBtn();\n    }\n\n    function getText() {\n        //当你点击按钮时编辑区域已经失去了焦点，如果直接用getText将不会得到内容，所以要在选回来，然后取得内容\n        var range = UM.getEditor('myEditor').selection.getRange();\n        range.select();\n        var txt = UM.getEditor('myEditor').selection.getText();\n        alert(txt)\n    }\n\n    function getContentTxt() {\n        var arr = [];\n        arr.push(\"使用editor.getContentTxt()方法可以获得编辑器的纯文本内容\");\n        arr.push(\"编辑器的纯文本内容为：\");\n        arr.push(UM.getEditor('myEditor').getContentTxt());\n        alert(arr.join(\"\\n\"));\n    }\n    function hasContent() {\n        var arr = [];\n        arr.push(\"使用editor.hasContents()方法判断编辑器里是否有内容\");\n        arr.push(\"判断结果为：\");\n        arr.push(UM.getEditor('myEditor').hasContents());\n        alert(arr.join(\"\\n\"));\n    }\n    function setFocus() {\n        UM.getEditor('myEditor').focus();\n    }\n    function deleteEditor() {\n        disableBtn();\n        UM.getEditor('myEditor').destroy();\n    }\n    function disableBtn(str) {\n        var div = document.getElementById('btns');\n        var btns = domUtils.getElementsByTagName(div, \"button\");\n        for (var i = 0, btn; btn = btns[i++];) {\n            if (btn.id == str) {\n                domUtils.removeAttributes(btn, [\"disabled\"]);\n            } else {\n                btn.setAttribute(\"disabled\", \"true\");\n            }\n        }\n    }\n    function enableBtn() {\n        var div = document.getElementById('btns');\n        var btns = domUtils.getElementsByTagName(div, \"button\");\n        for (var i = 0, btn; btn = btns[i++];) {\n            domUtils.removeAttributes(btn, [\"disabled\"]);\n        }\n    }\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/jsp/Uploader.java",
    "content": "package com.baidu.ueditor.um;\n\nimport java.io.*;\nimport java.text.SimpleDateFormat;\nimport java.util.*;\nimport org.apache.commons.fileupload.*;\nimport org.apache.commons.fileupload.FileUploadBase.InvalidContentTypeException;\nimport org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;\nimport org.apache.commons.fileupload.util.*;\nimport org.apache.commons.fileupload.servlet.*;\nimport org.apache.commons.fileupload.FileItemIterator;\nimport org.apache.commons.fileupload.disk.DiskFileItemFactory;\n\n\nimport sun.misc.BASE64Decoder;\nimport javax.servlet.http.HttpServletRequest;\n/**\n * UEditor文件上传辅助类\n *\n */\npublic class Uploader {\n\t// 输出文件地址\n\tprivate String url = \"\";\n\t// 上传文件名\n\tprivate String fileName = \"\";\n\t// 状态\n\tprivate String state = \"\";\n\t// 文件类型\n\tprivate String type = \"\";\n\t// 原始文件名\n\tprivate String originalName = \"\";\n\t// 文件大小\n\tprivate long size = 0;\n\n\tprivate HttpServletRequest request = null;\n\tprivate String title = \"\";\n\n\t// 保存路径\n\tprivate String savePath = \"upload\";\n\t// 文件允许格式\n\tprivate String[] allowFiles = { \".rar\", \".doc\", \".docx\", \".zip\", \".pdf\",\".txt\", \".swf\", \".wmv\", \".gif\", \".png\", \".jpg\", \".jpeg\", \".bmp\" };\n\t// 文件大小限制，单位KB\n\tprivate int maxSize = 10000;\n\t\n\tprivate HashMap<String, String> errorInfo = new HashMap<String, String>();\n\n\tpublic Uploader(HttpServletRequest request) {\n\t\tthis.request = request;\n\t\tHashMap<String, String> tmp = this.errorInfo;\n\t\ttmp.put(\"SUCCESS\", \"SUCCESS\"); //默认成功\n\t\ttmp.put(\"NOFILE\", \"未包含文件上传域\");\n\t\ttmp.put(\"TYPE\", \"不允许的文件格式\");\n\t\ttmp.put(\"SIZE\", \"文件大小超出限制\");\n\t\ttmp.put(\"ENTYPE\", \"请求类型ENTYPE错误\");\n\t\ttmp.put(\"REQUEST\", \"上传请求异常\");\n\t\ttmp.put(\"IO\", \"IO异常\");\n\t\ttmp.put(\"DIR\", \"目录创建失败\");\n\t\ttmp.put(\"UNKNOWN\", \"未知错误\");\n\t\t\n\t}\n\n\tpublic void upload() throws Exception {\n\t\tboolean isMultipart = ServletFileUpload.isMultipartContent(this.request);\n\t\tif (!isMultipart) {\n\t\t\tthis.state = this.errorInfo.get(\"NOFILE\");\n\t\t\treturn;\n\t\t}\n\t\tDiskFileItemFactory dff = new DiskFileItemFactory();\n\t\tString savePath = this.getFolder(this.savePath);\n\t\tdff.setRepository(new File(savePath));\n\t\ttry {\n\t\t\tServletFileUpload sfu = new ServletFileUpload(dff);\n\t\t\tsfu.setSizeMax(this.maxSize * 1024);\n\t\t\tsfu.setHeaderEncoding(\"utf-8\");\n\t\t\tFileItemIterator fii = sfu.getItemIterator(this.request);\n\t\t\twhile (fii.hasNext()) {\n\t\t\t\tFileItemStream fis = fii.next();\n\t\t\t\tif (!fis.isFormField()) {\n\t\t\t\t\tthis.originalName = fis.getName().substring(fis.getName().lastIndexOf(System.getProperty(\"file.separator\")) + 1);\n\t\t\t\t\tif (!this.checkFileType(this.originalName)) {\n\t\t\t\t\t\tthis.state = this.errorInfo.get(\"TYPE\");\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.fileName = this.getName(this.originalName);\n\t\t\t\t\tthis.type = this.getFileExt(this.fileName);\n\t\t\t\t\tthis.url = savePath + \"/\" + this.fileName;\n\t\t\t\t\tBufferedInputStream in = new BufferedInputStream(fis.openStream());\n\t\t\t\t\tFile file = new File(this.getPhysicalPath(this.url));\n\t\t\t\t\tFileOutputStream out = new FileOutputStream( file );\n\t\t\t\t\tBufferedOutputStream output = new BufferedOutputStream(out);\n\t\t\t\t\tStreams.copy(in, output, true);\n\t\t\t\t\tthis.state=this.errorInfo.get(\"SUCCESS\");\n\t\t\t\t\tthis.size = file.length();\n\t\t\t\t\t//UE中只会处理单张上传，完成后即退出\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tString fname = fis.getFieldName();\n\t\t\t\t\t//只处理title，其余表单请自行处理\n\t\t\t\t\tif(!fname.equals(\"pictitle\")){\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n                    BufferedInputStream in = new BufferedInputStream(fis.openStream());\n                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));\n                    StringBuffer result = new StringBuffer();  \n                    while (reader.ready()) {  \n                        result.append((char)reader.read());  \n                    }\n                    this.title = new String(result.toString().getBytes(),\"utf-8\");\n                    reader.close();  \n                    \n\t\t\t\t}\n\t\t\t}\n\t\t} catch (SizeLimitExceededException e) {\n\t\t\tthis.state = this.errorInfo.get(\"SIZE\");\n\t\t} catch (InvalidContentTypeException e) {\n\t\t\tthis.state = this.errorInfo.get(\"ENTYPE\");\n\t\t} catch (FileUploadException e) {\n\t\t\tthis.state = this.errorInfo.get(\"REQUEST\");\n\t\t} catch (Exception e) {\n\t\t\tthis.state = this.errorInfo.get(\"UNKNOWN\");\n\t\t}\n\t}\n\t\n\t/**\n\t * 接受并保存以base64格式上传的文件\n\t * @param fieldName\n\t */\n\tpublic void uploadBase64(String fieldName){\n\t\tString savePath = this.getFolder(this.savePath);\n\t\tString base64Data = this.request.getParameter(fieldName);\n\t\tthis.fileName = this.getName(\"test.png\");\n\t\tthis.url = savePath + \"/\" + this.fileName;\n\t\tBASE64Decoder decoder = new BASE64Decoder();\n\t\ttry {\n\t\t\tFile outFile = new File(this.getPhysicalPath(this.url));\n\t\t\tOutputStream ro = new FileOutputStream(outFile);\n\t\t\tbyte[] b = decoder.decodeBuffer(base64Data);\n\t\t\tfor (int i = 0; i < b.length; ++i) {\n\t\t\t\tif (b[i] < 0) {\n\t\t\t\t\tb[i] += 256;\n\t\t\t\t}\n\t\t\t}\n\t\t\tro.write(b);\n\t\t\tro.flush();\n\t\t\tro.close();\n\t\t\tthis.state=this.errorInfo.get(\"SUCCESS\");\n\t\t} catch (Exception e) {\n\t\t\tthis.state = this.errorInfo.get(\"IO\");\n\t\t}\n\t}\n\n\t/**\n\t * 文件类型判断\n\t * \n\t * @param fileName\n\t * @return\n\t */\n\tprivate boolean checkFileType(String fileName) {\n\t\tIterator<String> type = Arrays.asList(this.allowFiles).iterator();\n\t\twhile (type.hasNext()) {\n\t\t\tString ext = type.next();\n\t\t\tif (fileName.toLowerCase().endsWith(ext)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * 获取文件扩展名\n\t * \n\t * @return string\n\t */\n\tprivate String getFileExt(String fileName) {\n\t\treturn fileName.substring(fileName.lastIndexOf(\".\"));\n\t}\n\n\t/**\n\t * 依据原始文件名生成新文件名\n\t * @return\n\t */\n\tprivate String getName(String fileName) {\n\t\tRandom random = new Random();\n\t\treturn this.fileName = \"\" + random.nextInt(10000)\n\t\t\t\t+ System.currentTimeMillis() + this.getFileExt(fileName);\n\t}\n\n\t/**\n\t * 根据字符串创建本地目录 并按照日期建立子目录返回\n\t * @param path \n\t * @return \n\t */\n\tprivate String getFolder(String path) {\n\t\tSimpleDateFormat formater = new SimpleDateFormat(\"yyyyMMdd\");\n\t\tpath += \"/\" + formater.format(new Date());\n\t\tFile dir = new File(this.getPhysicalPath(path));\n\t\tif (!dir.exists()) {\n\t\t\ttry {\n\t\t\t\tdir.mkdirs();\n\t\t\t} catch (Exception e) {\n\t\t\t\tthis.state = this.errorInfo.get(\"DIR\");\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t}\n\t\treturn path;\n\t}\n\n\t/**\n\t * 根据传入的虚拟路径获取物理路径\n\t * \n\t * @param path\n\t * @return\n\t */\n\tprivate String getPhysicalPath(String path) {\n\t\tString servletPath = this.request.getServletPath();\n\t\tString realPath = this.request.getSession().getServletContext()\n\t\t\t\t.getRealPath(servletPath);\n\t\treturn new File(realPath).getParent() +\"/\" +path;\n\t}\n\n\tpublic void setSavePath(String savePath) {\n\t\tthis.savePath = savePath;\n\t}\n\n\tpublic void setAllowFiles(String[] allowFiles) {\n\t\tthis.allowFiles = allowFiles;\n\t}\n\n\tpublic void setMaxSize(int size) {\n\t\tthis.maxSize = size;\n\t}\n\n\tpublic long getSize() {\n\t\treturn this.size;\n\t}\n\n\tpublic String getUrl() {\n\t\treturn this.url;\n\t}\n\n\tpublic String getFileName() {\n\t\treturn this.fileName;\n\t}\n\n\tpublic String getState() {\n\t\treturn this.state;\n\t}\n\t\n\tpublic String getTitle() {\n\t\treturn this.title;\n\t}\n\n\tpublic String getType() {\n\t\treturn this.type;\n\t}\n\n\tpublic String getOriginalName() {\n\t\treturn this.originalName;\n\t}\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/jsp/getContent.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=utf-8\" pageEncoding=\"utf-8\"%>\n<script src=\"../third-party/jquery.min.js\"></script>\n<script src=\"../third-party/mathquill/mathquill.min.js\"></script>\n<link rel=\"stylesheet\" href=\"../third-party/mathquill/mathquill.css\"/>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>\n<%\nrequest.setCharacterEncoding(\"utf-8\");\nresponse.setCharacterEncoding(\"utf-8\");\nString content = request.getParameter(\"myEditor\");\n\n\n\nresponse.getWriter().print(\"<div class='content'>\"+content+\"</div>\");\n\n%>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/jsp/imageUp.jsp",
    "content": "    <%@ page language=\"java\" contentType=\"text/html; charset=utf-8\"\n             pageEncoding=\"utf-8\"%>\n<%--         <%@ page import=\"com.baidu.ueditor.um.Uploader\" %> --%>\n\n            <%\n//     request.setCharacterEncoding(\"utf-8\");\n// \tresponse.setCharacterEncoding(\"utf-8\");\n//     Uploader up = new Uploader(request);\n//     up.setSavePath(\"upload\");\n//     String[] fileType = {\".gif\" , \".png\" , \".jpg\" , \".jpeg\" , \".bmp\"};\n//     up.setAllowFiles(fileType);\n//     up.setMaxSize(10000); //单位KB\n//     up.upload();\n\n//     String callback = request.getParameter(\"callback\");\n\n//     String result = \"{\\\"name\\\":\\\"\"+ up.getFileName() +\"\\\", \\\"originalName\\\": \\\"\"+ up.getOriginalName() +\"\\\", \\\"size\\\": \"+ up.getSize() +\", \\\"state\\\": \\\"\"+ up.getState() +\"\\\", \\\"type\\\": \\\"\"+ up.getType() +\"\\\", \\\"url\\\": \\\"\"+ up.getUrl() +\"\\\"}\";\n\n//     result = result.replaceAll( \"\\\\\\\\\", \"\\\\\\\\\" );\n\n//     if( callback == null ){\n//         response.getWriter().print( result );\n//     }else{\n//         response.getWriter().print(\"<script>\"+ callback +\"(\" + result + \")</script>\");\n//     }\n    %>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/lang/en/en.js",
    "content": "/**\n * English language package\n */\nUM.I18N['en'] = {\n    'labelMap':{\n        'anchor':'Anchor', 'undo':'Undo', 'redo':'Redo', 'bold':'Bold', 'indent':'Indent', 'snapscreen':'SnapScreen',\n        'italic':'Italic', 'underline':'Underline', 'strikethrough':'Strikethrough', 'subscript':'SubScript','fontborder':'text border',\n        'superscript':'SuperScript', 'formatmatch':'Format Match', 'source':'Source', 'blockquote':'BlockQuote',\n        'pasteplain':'PastePlain', 'selectall':'SelectAll', 'print':'Print', 'preview':'Preview',\n        'horizontal':'Horizontal', 'removeformat':'RemoveFormat', 'time':'Time', 'date':'Date',\n        'unlink':'Unlink', 'insertrow':'InsertRow', 'insertcol':'InsertCol', 'mergeright':'MergeRight', 'mergedown':'MergeDown',\n        'deleterow':'DeleteRow', 'deletecol':'DeleteCol', 'splittorows':'SplitToRows','insertcode':'insert code',\n        'splittocols':'SplitToCols', 'splittocells':'SplitToCells','deletecaption':'DeleteCaption','inserttitle':'InsertTitle',\n        'mergecells':'MergeCells', 'deletetable':'DeleteTable', 'cleardoc':'Clear', 'insertparagraphbeforetable':\"InsertParagraphBeforeTable\",\n        'fontfamily':'FontFamily', 'fontsize':'FontSize', 'paragraph':'Paragraph', 'image':'Image','edittable':'Edit Table', 'edittd':'Edit Td','link':'Link',\n        'emotion':'Emotion', 'spechars':'Spechars', 'searchreplace':'SearchReplace', 'map':'BaiduMap', 'gmap':'GoogleMap',\n        'video':'Video', 'help':'Help', 'justifyleft':'JustifyLeft', 'justifyright':'JustifyRight', 'justifycenter':'JustifyCenter',\n        'justifyjustify':'Justify', 'forecolor':'FontColor', 'backcolor':'BackColor', 'insertorderedlist':'OL',\n        'insertunorderedlist':'UL', 'fullscreen':'FullScreen', 'directionalityltr':'EnterFromLeft', 'directionalityrtl':'EnterFromRight',\n        'rowspacingtop':'RowSpacingTop', 'rowspacingbottom':'RowSpacingBottom', 'highlightcode':'Code', 'pagebreak':'PageBreak', 'insertframe':'Iframe', 'imagenone':'Default',\n        'imageleft':'ImageLeft', 'imageright':'ImageRight', 'attachment':'Attachment', 'imagecenter':'ImageCenter', 'wordimage':'WordImage',\n        'lineheight':'LineHeight','edittip':'EditTip','customstyle':'CustomStyle', 'scrawl':'Scrawl', 'autotypeset':'AutoTypeset',\n        'webapp':'WebAPP', 'touppercase':'UpperCase', 'tolowercase':'LowerCase','template':'Template','background':'Background','inserttable':'InsertTable',\n        'drafts': 'drafts', 'formula':'formula'\n    },\n    'paragraph':{'p':'Paragraph', 'h1':'Title 1', 'h2':'Title 2', 'h3':'Title 3', 'h4':'Title 4', 'h5':'Title 5', 'h6':'Title 6'},\n    'fontfamily':{\n        'songti':'Sim sun',\n        'kaiti':'Sim kai',\n        'heiti':'Sim hei',\n        'lishu':'Sim li',\n        'yahei': 'Microsoft yahei',\n        'andaleMono':'Andale mono',\n        'arial': 'Arial',\n        'arialBlack':'Arial black',\n        'comicSansMs':'Comic sans ms',\n        'impact':'Impact',\n        'timesNewRoman':'Times new roman'\n    },\n    'ok':\"OK\",\n    'cancel':\"Cancel\",\n    'closeDialog':\"closeDialog\",\n    'tableDrag':\"You must import the file uiUtils.js before drag! \",\n    'autofloatMsg':\"The plugin AutoFloat depends on EditorUI!\",\n    'anthorMsg':\"Link\",\n    'clearColor':'Clear',\n    'standardColor':'Standard color',\n    'themeColor':'Theme color',\n    'property':'Property',\n    'default':'Default',\n    'modify':'Modify',\n    'justifyleft':'Justify Left',\n    'justifyright':'Justify Right',\n    'justifycenter':'Justify Center',\n    'justify':'Default',\n    'clear':'Clear',\n    'anchorMsg':'Anchor',\n    'delete':'Delete',\n    'clickToUpload':\"Click to upload\",\n    'unset':\"Language hasn't been set!\",\n    't_row':'row',\n    't_col':'col',\n    'more':'More',\n    'pasteOpt':'Paste Option',\n    'pasteSourceFormat':\"Keep Source Formatting\",\n    'tagFormat':'Keep tag',\n    'pasteTextFormat':'Keep Text only',\n\n    //===============dialog i18N=======================\n    'image':{\n        'static':{\n            'lang_tab_local':\"Local Upload\",\n            'lang_tab_imgSearch':\"Network Pictures\",\n            'lang_input_dragTip':\"Support drag upload\",\n            'lang_btn_add':\"Add\"\n        },\n        'uploadError': 'Upload Error'\n    },\n    'emotion':{\n        'static':{\n            'lang_input_choice':'Choice',\n            'lang_input_Tuzki':'Tuzki',\n            'lang_input_lvdouwa':'LvDouWa',\n            'lang_input_BOBO':'BOBO',\n            'lang_input_babyCat':'BabyCat',\n            'lang_input_bubble':'Bubble',\n            'lang_input_youa':'YouA'\n        }\n    },\n    'gmap':{\n        'static':{\n            'lang_input_address':'Address:',\n            'lang_input_search':'Search',\n            'address':{'value':\"Beijing\"}\n        },\n        'searchError':'Unable to locate the address!'\n    },\n    'link':{\n        'static':{\n            'lang_input_text':'Text：',\n            'lang_input_url':'URL：',\n            'lang_input_title':'Title：',\n            'lang_input_target':'open in new window：'\n        },\n        'validLink':'Supports only effective when a link is selected',\n        'httpPrompt':'The hyperlink you enter should start with \"http|https|ftp://\"!'\n    },\n    'map':{\n        'static':{\n            'lang_city':\"City\",\n            'lang_address':\"Address\",\n            'city':{'value':\"Beijing\"},\n            'lang_search':\"Search\",\n            'lang_dynamicmap':\"Dynamic map\"\n        },\n        'cityMsg':\"Please enter the city name!\",\n        'errorMsg':\"Can't find the place!\"\n    },\n    'video':{\n        'static':{\n            'lang_tab_insertV':\"Video\",\n            'lang_video_url':\" URL \",\n            'lang_video_size':\"Video Size\",\n            'lang_videoW':\"Width\",\n            'lang_videoH':\"Height\",\n            'lang_alignment':\"Alignment\",\n            'videoSearchTxt':{'value':\"Enter the search keyword!\"},\n            'videoType':{'options':[\"All\", \"Hot\", \"Entertainment\", \"Funny\", \"Sports\", \"Science\", \"variety\"]},\n            'videoSearchBtn':{'value':\"Search in Baidu\"},\n            'videoSearchReset':{'value':\"Clear result\"}\n        },\n        'numError':\"Please enter the correct Num. e.g 123,400\",\n        'floatLeft':\"Float left\",\n        'floatRight':\"Float right\",\n        'default':\"Default\",\n        'block':\"Display in block\",\n        'urlError':\"The video url format may be wrong!\",\n        'loading':\" &nbsp;The video is loading, please wait…\",\n        'clickToSelect':\"Click to select\",\n        'goToSource':'Visit source video ',\n        'noVideo':\" &nbsp; &nbsp;Sorry,can't find the video,please try again!\"\n    },\n    'formula':{\n        'static':{\n            'lang_tab_common':'Common',\n            'lang_tab_symbol':'Symbol',\n            'lang_tab_letter':'Letter'\n        }\n    }\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/lang/zh-cn/zh-cn.js",
    "content": "/**\n * 中文语言包\n */\nUM.I18N['zh-cn'] = {\n    'labelMap':{\n        'anchor':'锚点', 'undo':'撤销', 'redo':'重做', 'bold':'加粗', 'indent':'首行缩进', 'snapscreen':'截图',\n        'italic':'斜体', 'underline':'下划线', 'strikethrough':'删除线', 'subscript':'下标','fontborder':'字符边框',\n        'superscript':'上标', 'formatmatch':'格式刷', 'source':'源代码', 'blockquote':'引用',\n        'pasteplain':'纯文本粘贴模式', 'selectall':'全选', 'print':'打印', 'preview':'预览',\n        'horizontal':'分隔线', 'removeformat':'清除格式', 'time':'时间', 'date':'日期',\n        'unlink':'取消链接', 'insertrow':'前插入行', 'insertcol':'前插入列', 'mergeright':'右合并单元格', 'mergedown':'下合并单元格',\n        'deleterow':'删除行', 'deletecol':'删除列', 'splittorows':'拆分成行', 'splittocols':'拆分成列', 'splittocells':'完全拆分单元格',\n        'mergecells':'合并多个单元格', 'deletetable':'删除表格', 'cleardoc':'清空文档','insertparagraphbeforetable':\"表格前插入行\",'insertcode':'代码语言','fontfamily':'字体', 'fontsize':'字号', 'paragraph':'段落格式', 'image':'图片',\n        'edittable':'表格属性','edittd':'单元格属性', 'link':'超链接','emotion':'表情', 'spechars':'特殊字符', 'searchreplace':'查询替换', 'map':'百度地图', 'gmap':'Google地图',\n        'video':'视频', 'help':'帮助', 'justifyleft':'居左对齐', 'justifyright':'居右对齐', 'justifycenter':'居中对齐',\n        'justifyjustify':'两端对齐', 'forecolor':'字体颜色', 'backcolor':'背景色', 'insertorderedlist':'有序列表',\n        'insertunorderedlist':'无序列表', 'fullscreen':'全屏', 'directionalityltr':'从左向右输入', 'directionalityrtl':'从右向左输入',\n        'rowspacingtop':'段前距', 'rowspacingbottom':'段后距', 'highlightcode':'插入代码', 'pagebreak':'分页', 'insertframe':'插入Iframe', 'imagenone':'默认',\n        'imageleft':'左浮动', 'imageright':'右浮动', 'attachment':'附件', 'imagecenter':'居中', 'wordimage':'图片转存',\n        'lineheight':'行间距','edittip' :'编辑提示','customstyle':'自定义标题', 'autotypeset':'自动排版', 'webapp':'百度应用',\n        'touppercase':'字母大写', 'tolowercase':'字母小写','background':'背景','template':'模板','scrawl':'涂鸦','music':'音乐','inserttable':'插入表格',\n        'drafts': '草稿箱', 'formula':'数学公式'\n\n\n    },\n    'paragraph':{'p':'段落', 'h1':'标题 1', 'h2':'标题 2', 'h3':'标题 3', 'h4':'标题 4', 'h5':'标题 5', 'h6':'标题 6'},\n    'fontfamily':{\n        'songti':'宋体',\n        'kaiti':'楷体',\n        'heiti':'黑体',\n        'lishu':'隶书',\n        'yahei':'微软雅黑',\n        'andaleMono':'andale mono',\n        'arial': 'arial',\n        'arialBlack':'arial black',\n        'comicSansMs':'comic sans ms',\n        'impact':'impact',\n        'timesNewRoman':'times new roman'\n    },\n    'ok':\"确认\",\n    'cancel':\"取消\",\n    'closeDialog':\"关闭对话框\",\n    'tableDrag':\"表格拖动必须引入uiUtils.js文件！\",\n    'autofloatMsg':\"工具栏浮动依赖编辑器UI，您首先需要引入UI文件!\",\n    'anthorMsg':\"链接\",\n    'clearColor':'清空颜色',\n    'standardColor':'标准颜色',\n    'themeColor':'主题颜色',\n    'property':'属性',\n    'default':'默认',\n    'modify':'修改',\n    'justifyleft':'左对齐',\n    'justifyright':'右对齐',\n    'justifycenter':'居中',\n    'justify':'默认',\n    'clear':'清除',\n    'anchorMsg':'锚点',\n    'delete':'删除',\n    'clickToUpload':\"点击上传\",\n    'unset':'尚未设置语言文件',\n    't_row':'行',\n    't_col':'列',\n    'more':'更多',\n    'pasteOpt':'粘贴选项',\n    'pasteSourceFormat':\"保留源格式\",\n    'tagFormat':'只保留标签',\n    'pasteTextFormat':'只保留文本',\n\n    //===============dialog i18N=======================\n    'image':{\n        'static':{\n            'lang_tab_local':\"本地上传\",\n            'lang_tab_imgSearch':\"网络图片\",\n            'lang_input_dragTip':\"支持图片拖拽上传\",\n            'lang_btn_add':\"添加\"\n        },\n        'uploadError': '上传出错'\n    },\n    'emotion':{\n        'static':{\n            'lang_input_choice':'精选',\n            'lang_input_Tuzki':'兔斯基',\n            'lang_input_BOBO':'BOBO',\n            'lang_input_lvdouwa':'绿豆蛙',\n            'lang_input_babyCat':'baby猫',\n            'lang_input_bubble':'泡泡',\n            'lang_input_youa':'有啊'\n        }\n    },\n    'gmap':{\n        'static':{\n            'lang_input_address':'地址',\n            'lang_input_search':'搜索',\n            'address':{'value':\"北京\"}\n        },\n        'searchError':'无法定位到该地址!'\n    },\n    'link':{\n        'static':{\n            'lang_input_text':'文本内容：',\n            'lang_input_url':'链接地址：',\n            'lang_input_title':'标题：',\n            'lang_input_target':'是否在新窗口打开：'\n        },\n        'validLink':'只支持选中一个链接时生效',\n        'httpPrompt':'您输入的超链接中不包含http等协议名称，默认将为您添加http://前缀'\n    },\n    'map':{\n        'static':{\n            'lang_city':\"城市\",\n            'lang_address':\"地址\",\n            'city':{'value':\"北京\"},\n            'lang_search':\"搜索\",\n            'lang_dynamicmap':\"插入动态地图\"\n        },\n        'cityMsg':\"请选择城市\",\n        'errorMsg':\"抱歉，找不到该位置！\"\n    },\n    'video':{\n        'static':{\n            'lang_tab_insertV':\"插入视频\",\n            'lang_video_url':\"视频网址\",\n            'lang_video_size':\"视频尺寸\",\n            'lang_videoW':\"宽度\",\n            'lang_videoH':\"高度\",\n            'lang_alignment':\"对齐方式\",\n            'videoSearchTxt':{'value':\"请输入搜索关键字！\"},\n            'videoType':{'options':[\"全部\", \"热门\", \"娱乐\", \"搞笑\", \"体育\", \"科技\", \"综艺\"]},\n            'videoSearchBtn':{'value':\"百度一下\"},\n            'videoSearchReset':{'value':\"清空结果\"}\n        },\n        'numError':\"请输入正确的数值，如123,400\",\n        'floatLeft':\"左浮动\",\n        'floatRight':\"右浮动\",\n        'default':\"默认\",\n        'block':\"独占一行\",\n        'urlError':\"输入的视频地址有误，请检查后再试！\",\n        'loading':\" &nbsp;视频加载中，请等待……\",\n        'clickToSelect':\"点击选中\",\n        'goToSource':'访问源视频',\n        'noVideo':\" &nbsp; &nbsp;抱歉，找不到对应的视频，请重试！\"\n    },\n    'formula':{\n        'static':{\n            'lang_tab_common':'常用公式',\n            'lang_tab_symbol':'符号',\n            'lang_tab_letter':'字母'\n        }\n    }\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/themes/default/css/umeditor.css",
    "content": ".edui-container{\n    position: relative;\n    border: 1px solid #d4d4d4;\n    box-shadow: 2px 2px 5px #d3d6da;\n    background-color: #fff;\n}\n.edui-container .edui-toolbar{\n    position: relative;\n    width:auto;\n    border-bottom: 1px solid #e1e1e1;\n    box-shadow: 2px 2px 5px #d3d6da;\n    background-color: #fafafa;\n    z-index: 99999;\n}\n.edui-toolbar .edui-btn-toolbar{\n    position: relative;\n    padding: 5px;\n}\n.edui-container .edui-editor-body{\n    background-color: #fff;\n}\n.edui-editor-body .edui-body-container{\n}\n\n.edui-editor-body .edui-body-container p{margin:5px 0;}\n.edui-editor-body .edui-body-container{\n    border:0;\n    outline:none;\n    cursor:text;\n    padding:0 10px 0;\n    overflow:auto;\n    display:block;\n    word-wrap:break-word;\n    font-size:16px;\n    font-family:sans-serif;\n}\n.edui-editor-body.focus{border:1px solid #5c9dff}\n.edui-editor-body table{margin:10px 0 10px;border-collapse:collapse;display:table;}\n.edui-editor-body td{padding: 5px 10px;border: 1px solid #DDD;}\n.edui-editor-body iframe.mathquill-embedded-latex{\n    border: 0px;\n    padding: 0px;\n    display: inline;\n    margin: 0px;\n    background: none;\n    vertical-align: middle;\n    width: 0px;\n    height: 0px;\n}\n/*普通按钮*/\n.edui-btn-toolbar .edui-btn{\n    position: relative;\n    display: inline-block;\n    vertical-align: top;\n    *display: inline;\n    *zoom:1;\n    width:auto;\n    margin: 0 1px;\n    padding:1px;\n    border:none;\n    background: none;\n}\n.edui-btn-toolbar .edui-btn .edui-icon{\n    width: 20px;\n    height: 20px;\n    margin: 0;\n    padding:0;\n    background-repeat: no-repeat;\n    background-image: url(../images/icons.png);\n    background-image: url(../images/icons.gif) \\9;\n}\n\n/*状态反射*/\n.edui-btn-toolbar .edui-btn.edui-hover,\n.edui-btn-toolbar .edui-btn.edui-active{\n    background-color: #d5e1f2;\n    padding: 0;\n    border: 1px solid #a3bde3;\n    _z-index: 1;\n}\n.edui-btn-toolbar .edui-btn.edui-disabled{\n    opacity: 0.3;\n    filter: alpha(opacity = 30);\n}\n.edui-btn-toolbar .edui-btn .edui-icon-source {\n    background-position:-260px -0px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-undo {\n    background-position: -160px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-redo {\n    background-position: -100px 0;\n}\n.edui-btn-toolbar  .edui-btn .edui-icon-bold{\n    background-position: 0 0;\n}\n.edui-btn-toolbar  .edui-btn .edui-icon-italic {\n    background-position: -60px 0;\n}\n.edui-btn-toolbar  .edui-btn .edui-icon-underline  {\n    background-position: -140px 0\n}\n.edui-btn-toolbar .edui-btn .edui-icon-strikethrough {\n    background-position: -120px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-superscript {\n    background-position: -620px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-subscript {\n    background-position:  -600px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-font, .edui-btn-toolbar .edui-btn .edui-icon-forecolor {\n    background-position: -720px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-backcolor {\n    background-position: -760px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-insertorderedlist {\n    background-position: -80px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-insertunorderedlist {\n    background-position:   -20px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-selectall {\n    background-position: -400px -20px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-cleardoc {\n    background-position: -520px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-paragraph {\n    background-position: -140px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-fontfamily {\n    background-position: -140px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-fontsize {\n    background-position: -140px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifyleft {\n    background-position: -460px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifycenter {\n    background-position: -420px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifyright {\n    background-position:-480px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifyjustify {\n    background-position: -440px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-link {\n    background-position: -500px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-unlink {\n    background-position: -640px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-image {\n    background-position: -380px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-emotion {\n    background-position: -60px -20px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-video {\n    background-position: -320px -20px;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-map {\n    background-position:  -40px -40px;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-gmap {\n    background-position:  -260px -40px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-horizontal {\n    background-position: -360px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-print {\n    background-position: -440px -20px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-preview {\n    background-position: -420px -20px;\n}\n\n.edui-btn-toolbar .edui-btn-fullscreen{\n    float:right;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-fullscreen {\n    background-position: -100px -20px;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-removeformat {\n    background-position: -580px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-drafts {\n    background-position: -560px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-formula {\n    background-position: -80px -20px;\n}\n.edui-btn-toolbar .edui-splitbutton{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    margin:0 2px;\n}\n.edui-splitbutton .edui-btn{\n    margin: 0;\n}\n.edui-splitbutton .edui-caret{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    width: 8px;\n    height: 20px;\n    background: url(../images/icons.png) -741px 0;\n    _background: url(../images/icons.gif) -741px 0;\n}\n\n.edui-btn-toolbar .edui-splitbutton,\n.edui-btn-toolbar .edui-splitbutton{\n    _border: none;\n}\n\n/*状态反射*/\n.edui-btn-toolbar .edui-splitbutton.edui-hover .edui-btn{\n    background-color: #d5e1f2;\n}\n\n.edui-btn-toolbar .edui-splitbutton.edui-disabled{\n    opacity: 0.3;\n    filter: alpha(opacity = 30);\n}\n.edui-btn-toolbar .edui-splitbutton.edui-disabled .edui-caret{\n    opacity: 0.3 \\0;\n    filter: alpha(opacity = 30)\\0;\n}\n\n\n.edui-btn-toolbar .edui-combobox{\n    border: 1px solid #CCC;\n    padding:0;\n    margin:0 2px;\n    line-height: 20px;\n}\n.edui-combobox .edui-button-label{\n    position: relative;\n    display: inline-block;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    width:60px;\n    height:20px;\n    line-height: 20px;\n    padding: 2px;\n    margin: 0;\n    font-size: 12px;\n    text-align: center;\n    cursor: default;\n}\n.edui-combobox  .edui-button-spacing{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    height:20px;\n    margin: 0;\n    padding:0 3px;\n}\n.edui-combobox .edui-caret{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    height:20px;\n    width: 12px;\n    margin: 0;\n    padding: 0;\n    background: url(../images/icons.png) -741px 0;\n    _background: url(../images/icons.gif) -741px 0;\n}\n.edui-btn-toolbar .edui-combobox.edui-disabled{\n    opacity: 0.2;\n    filter: alpha(opacity = 20);\n}\n.edui-btn-toolbar .edui-combobox.edui-disabled .edui-button-label,\n.edui-btn-toolbar .edui-combobox.edui-disabled .edui-caret{\n    opacity: 0.2 \\0;\n    filter: alpha(opacity = 20)\\0;\n}\n.edui-combobox-menu{\n    position: absolute;\n    top: 100%;\n    left: 0;\n    display: none;\n    list-style: none;\n    text-decoration: none;\n    margin: 0;\n    padding:5px;\n    background-color: #ffffff;\n    border: 1px solid #ccc;\n    font-size: 12px;\n    box-shadow: 2px 2px 5px #d3d6da;\n    min-width: 160px;\n    _width: 160px;\n}\n\n.edui-combobox-menu .edui-combobox-item {\n    display: block;\n    border: 1px solid white;\n}\n\n.edui-combobox-menu .edui-combobox-item-label {\n    height: 25px;\n    line-height: 25px;\n    display: inline-block;\n    _display: inline;\n    _zoom: 1;\n    margin-left: 10px;\n}\n\n.edui-combobox-menu .edui-combobox-item:hover, .edui-combobox-menu .edui-combobox-stack-item:hover, .edui-combobox-menu .edui-combobox-item-hover {\n    background-color: #d5e1f2;\n    padding: 0;\n    border: 1px solid #a3bde3;\n}\n\n.edui-combobox-menu .edui-combobox-item .edui-combobox-icon {\n    display: inline-block;\n    *zoom: 1;\n    *display: inline;\n    width: 24px;\n    height: 25px;\n    background: red;\n    vertical-align: bottom;\n    background: url(../images/ok.gif) no-repeat 1000px 1000px;\n}\n\n.edui-combobox-menu .edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n\n.edui-combobox-menu .edui-combobox-item-separator {\n    min-width: 160px;\n    height: 1px;\n    line-height: 1px;\n    overflow: hidden;\n    background: #d3d3d3;\n    margin: 5px 0;\n    *margin-top: -8px;\n}\n\n/* 字体样式校正 */\n\n.edui-combobox-fontsize .edui-combobox-item-0.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-1.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-2.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-3.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n/* 24 */\n.edui-combobox-fontsize .edui-combobox-item-4 .edui-combobox-item-label {\n    height: 27px;\n    line-height: 27px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-4.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 5px;\n}\n\n/* 32 */\n.edui-combobox-fontsize .edui-combobox-item-5 .edui-combobox-item-label {\n    height: 31px;\n    line-height: 31px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-5.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 4px;\n}\n\n\n/* 48 */\n.edui-combobox-fontsize .edui-combobox-item-6 .edui-combobox-item-label {\n    height: 47px;\n    line-height: 47px;\n}\n\n/*.edui-combobox-fontsize .edui-combobox-item-6 .edui-combobox-icon {*/\n    /*height: 25px;*/\n    /*margin-bottom: 11px;*/\n/*}*/\n\n/*.edui-combobox-fontsize .edui-combobox-item-6.edui-combobox-checked .edui-combobox-icon {*/\n    /*background-position: 10px 7px;*/\n/*}*/\n\n\n/* 段落样式校正 */\n/* h1 */\n.edui-combobox-paragraph .edui-combobox-item-1 .edui-combobox-item-label {\n    font-size: 32px;\n    height: 36px;\n    line-height: 36px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-1 .edui-combobox-icon {\n    height: 25px;\n    margin-bottom: 5px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-1.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n/* h2 */\n.edui-combobox-paragraph .edui-combobox-item-2 .edui-combobox-item-label {\n    font-size: 28px;\n    height: 27px;\n    line-height: 27px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-2 .edui-combobox-icon {\n    margin-bottom: 5px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-2.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 10px;\n}\n\n/* h3 */\n.edui-combobox-paragraph .edui-combobox-item-3 .edui-combobox-item-label {\n    font-size: 24px;\n    height: 25px;\n    line-height: 25px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-3 .edui-combobox-icon {\n    height: 25px;\n    margin-bottom: 5px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-3.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 11px;\n}\n\n/* h4 */\n.edui-combobox-paragraph .edui-combobox-item-4 .edui-combobox-item-label {\n    font-size: 18px;\n    height: 25px;\n    line-height: 25px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-4.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 6px;\n}\n\n/* h5 */\n.edui-combobox-paragraph .edui-combobox-item-5 .edui-combobox-item-label {\n    font-size: 16px;\n}\n\n/* h6 */\n.edui-combobox-paragraph .edui-combobox-item-6 .edui-combobox-item-label {\n    font-size: 12px;\n}\n.edui-modal {\n    position: fixed;\n    _position: absolute;\n    top: 10%;\n    left: 50%;\n    border: 1px solid #acacac;\n    box-shadow: 2px 2px 5px #d3d6da;\n    background-color: #ffffff;\n    outline: 0;\n}\n.edui-modal-header {\n    padding: 5px 10px;\n    border-bottom: 1px solid #eee;\n}\n.edui-modal-header .edui-close {\n    float: right;\n    width:20px;\n    height:20px;\n    margin-top: 2px;\n    padding: 1px;\n    border: 0;\n    background: url(\"../images/close.png\") no-repeat center center;\n    cursor: pointer;\n}\n.edui-modal-header .edui-close.edui-hover {\n    background-color: #d5e1f2;\n    padding:0;\n    border: 1px solid #a3bde3;\n}\n.edui-modal-header .edui-title {\n    margin: 0;\n    line-height: 25px;\n    font-size: 20px;\n}\n.edui-modal-body {\n    position: relative;\n    max-height: 400px;\n    font-size: 12px;\n    overflow-y: auto;\n}\n.edui-modal-footer {\n    float: right;\n    padding: 5px 15px 15px;\n    overflow: hidden;\n}\n.edui-modal-footer .edui-btn {\n    float: left;\n    height: 24px;\n    width: 96px;\n    margin: 0 10px;\n    background-color: #ffffff;\n    padding: 0;\n    border: 1px solid #ababab;\n    font-size: 12px;\n    line-height: 24px;\n    text-align: center;\n    cursor: pointer;\n}\n.edui-modal-footer .edui-btn.edui-hover{\n    background-color: #d5e1f2;\n    border: 1px solid #a3bde3;\n}\n.edui-modal-backdrop{\n    opacity: 0.5;\n    filter: alpha(opacity=50);\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    background-color: #c6c6c6;\n}\n\n.edui-modal .edui-modal-tip {\n    color: red;\n    position: absolute;\n    bottom: 10px;\n    left: 10px;\n    height: 30px;\n    line-height: 30px;\n    display: none;\n}\n/*图片上传*/\n.edui-dialog-image-body {\n    width: 700px;\n    height: 400px;\n}\n/*插入视频*/\n.edui-dialog-video-body{\n    width: 600px;\n    height: 350px;\n}\n/*谷歌地图*/\n.edui-dialog-gmap-body{\n    width:550px;\n    height: 400px;\n}\n\n/*百度地图*/\n.edui-dialog-map-body{\n    width:580px;\n    height: 400px;\n}\n\n/*链接*/\n.edui-dialog-link-body{\n    width:400px;\n    height:200px;\n}\n.edui-popup{\n    display: none;\n    background: url('../images/pop-bg.png') repeat #fff;\n    padding: 2px;\n}\n.edui-popup .edui-popup-body{\n    border: 1px solid #bfbfbf;\n    background-color: #fff;\n}\n.edui-popup .edui-popup-caret{\n    width: 21px;\n    height: 11px;\n}\n.edui-popup .edui-popup-caret.up{\n    background:url('../images/caret.png') no-repeat 0 0;\n}\n.edui-popup .edui-popup-caret.down{\n    background:url('../images/caret.png') no-repeat 0 0;\n}\n\n\n.edui-tab-nav {\n    margin: 0;\n    padding:0;\n    border-bottom: 1px solid #ddd;\n    list-style: none;\n    height:30px;\n}\n.edui-tab-nav .edui-tab-item {\n    float:left;\n    margin-bottom: -1px;\n    margin-top: 1px;\n    margin-top: 0\\9;\n}\n.edui-tab-nav .edui-tab-item .edui-tab-text{\n    display: block;\n    padding:8px 12px;\n    border: 1px solid transparent;\n    color: #0088cc;\n    text-decoration: none;\n    outline: 0;\n    _border:1px solid #fff ;\n    cursor: pointer;\n}\n.edui-tab-nav .edui-tab-item .edui-tab-text:FOCUS {\n    outline: none;\n}\n.edui-tab-nav .edui-tab-item.edui-active  .edui-tab-text{\n    border: 1px solid #ddd;\n    border-bottom-color: transparent;\n    background-color: #fff;\n    padding:8px 12px;\n    color: #555555;\n    cursor: default;\n}\n.edui-tab-content .edui-tab-pane{\n    padding: 1px;\n    position: relative;\n    display: none;\n    background-color: #fff;\n    clear: both;\n}\n.edui-tab-content .edui-tab-pane.edui-active{\n    display: block;\n}\n\n\n.edui-btn-toolbar .edui-tooltip{\n    position: absolute;\n    padding: 5px 0;\n    display: none;\n    /*opacity: 0.8;*/\n    /*filter: alpha(opacity=80);*/\n    z-index: 99999;\n}\n.edui-tooltip .edui-tooltip-arrow{\n    position: absolute;\n    top: 0;\n    _top: -2px;\n    left: 50%;\n    width: 0;\n    height: 0;\n    padding: 0;\n    font-size:0;\n    margin-left: -5px;\n    border-color: transparent;\n    border-style: dashed dashed solid dashed;\n    border-bottom-color: #000000;\n    border-width: 0 5px 5px;\n    background: transparent;\n}\n.edui-tooltip .edui-tooltip-inner{\n    padding: 6px;\n    color: #ffffff;\n    text-align: center;\n    text-decoration: none;\n    font-size: 10px;\n    background-color: #000000;\n    white-space: nowrap;\n    line-height: 12px;\n}\n.edui-splitbutton-color-label {\n    width: 16px;\n    height: 3px;\n    position: absolute;\n    bottom: 2px;\n    left: 50%;\n    margin-left: -8px;\n    overflow: hidden;\n    line-height: 3px;\n}\n.edui-popup .edui-colorpicker {\n    margin: 10px;\n    font-size: 12px;\n}\n.edui-colorpicker .edui-colorpicker-topbar{\n    height: 27px;\n    width: 200px;\n    overflow: hidden;\n}\n.edui-colorpicker .edui-colorpicker-topbar .edui-colorpicker-preview{\n    height: 20px;\n    border: 1px inset black;\n    margin-left: 1px;\n    width: 128px;\n    float: left;\n}\n.edui-colorpicker .edui-colorpicker-topbar .edui-colorpicker-nocolor{\n    float: right;\n    margin-right: 1px;\n    font-size: 12px;\n    line-height: 14px;\n    height: 14px;\n    border: 1px solid #333;\n    padding: 3px 5px;\n    cursor: pointer;\n}\n.edui-colorpicker table{\n    border-collapse: collapse;\n    border-spacing: 2px;\n}\n.edui-colorpicker tr.edui-colorpicker-firstrow{\n    height: 30px;\n}\n.edui-colorpicker table td{\n    padding: 0 2px;\n}\n.edui-colorpicker table td .edui-colorpicker-colorcell{\n    display: block;\n    text-decoration: none;\n    color: black;\n    width: 14px;\n    height: 14px;\n    margin: 0;\n    cursor: pointer;\n}\n.edui-toolbar .edui-separator{\n    width: 2px;\n    height: 20px;\n    padding: 1px 2px;\n    background: url(../images/icons.png) -179px 1px;\n    background: url(../images/icons.gif) -179px 1px \\9;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    border:none;\n\n}\n\n/* 解决UMEditor中图片上传过大引起的超过边框问题 */\nimg {\n    max-width: 95%;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/third-party/mathquill/font/stixgeneral-bundle/STIXFontLicense2010.txt",
    "content": "STIX Font License\n\n24 May 2010\n\nCopyright (c) 2001-2010 by the STI Pub Companies, consisting of the American \nInstitute of Physics, the American Chemical Society, the American Mathematical \nSociety, the American Physical Society, Elsevier, Inc., and The Institute of \nElectrical and Electronic Engineers, Inc. (www.stixfonts.org), with Reserved \nFont Name STIX Fonts, STIX Fonts (TM) is a  trademark of The Institute of \nElectrical and Electronics Engineers, Inc.      \n\nPortions copyright (c) 1998-2003 by MicroPress, Inc. (www.micropress-inc.com), \nwith Reserved Font Name TM Math. To obtain additional mathematical fonts, please \ncontact MicroPress, Inc., 68-30 Harrow Street, Forest Hills, NY 11375, USA, \nPhone: (718) 575-1816. \n\nPortions copyright (c) 1990 by Elsevier, Inc. \n\nThis Font Software is licensed under the SIL Open Font License, Version 1.1. \nThis license is copied below, and is also available with a FAQ at: \nhttp://scripts.sil.org/OFL \n\n--------------------------------------------------------------------------- \nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 \n--------------------------------------------------------------------------- \n\nPREAMBLE \n\nThe goals of the Open Font License (OFL) are to stimulate worldwide development \nof collaborative font projects, to support the font creation efforts of academic \nand linguistic communities, and to provide a free and open framework in which \nfonts may be shared and improved in partnership with others. \n\nThe OFL allows the licensed fonts to be used, studied, modified and redistributed \nfreely as long as they are not sold by themselves. The fonts, including any \nderivative works, can be bundled, embedded, redistributed and/or sold with any \nsoftware provided that any reserved names are not used by derivative works. The \nfonts and derivatives, however, cannot be released under any other type of license. \nThe requirement for fonts to remain under this license does not apply to any \ndocument created using the fonts or their derivatives. \n\nDEFINITIONS \n\n\"Font Software\" refers to the set of files released by the Copyright Holder(s) under\nthis license and clearly marked as such. This may include source files, build \nscripts and documentation. \n\n\"Reserved Font Name\" refers to any names specified as such after the copyright \nstatement(s). \n\n\"Original Version\" refers to the collection of Font Software components as \ndistributed by the Copyright Holder(s). \n\n\"Modified Version\" refers to any derivative made by adding to, deleting, or \nsubstituting -- in part or in whole -- any of the components of the Original Version, \nby changing formats or by porting the Font Software to a new environment. \n\n\"Author\" refers to any designer, engineer, programmer, technical writer or other \nperson who contributed to the Font Software.\n\nPERMISSION & CONDITIONS \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of the \nFont Software, to use, study, copy, merge, embed, modify, redistribute, and sell \nmodified and unmodified copies of the Font Software, subject to the following \nconditions: \n\n1) Neither the Font Software nor any of its individual components, in Original or \nModified Versions, may be sold by itself. \n\n2) Original or Modified Versions of the Font Software may be bundled, redistributed \nand/or sold with any software, provided that each copy contains the above copyright \nnotice and this license. These can be included either as stand-alone text files, \nhuman-readable headers or in the appropriate machine-readable metadata fields within \ntext or binary files as long as those fields can be easily viewed by the user. \n\n3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless \nexplicit written permission is granted by the corresponding Copyright Holder. This \nrestriction only applies to the primary font name as presented to the users. \n\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall \nnot be used to promote, endorse or advertise any Modified Version, except to \nacknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with \ntheir explicit written permission. \n\n5) The Font Software, modified or unmodified, in part or in whole, must be distributed \nentirely under this license, and must not be distributed under any other license. The \nrequirement for fonts to remain under this license does not apply to any document \ncreated using the Font Software. \n\nTERMINATION \n\nThis license becomes null and void if any of the above conditions are not met. \n\nDISCLAIMER \n\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, \nINCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A \nPARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER \nRIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \nLIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, \nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR \nINABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/third-party/mathquill/mathquill.css",
    "content": "/*\n * LaTeX Math in pure HTML and CSS -- No images whatsoever\n * v0.xa\n * by Jay and Han\n * Lesser GPL Licensed: http: //www.gnu.org/licenses/lgpl.html\n *\n * This file is automatically included by mathquill.js\n *\n */\n@font-face {\n  font-family: Symbola;\n  src: url(font/Symbola.eot);\n  src: local(\"Symbola Regular\"), local(\"Symbola\"), url(font/Symbola.ttf) format(\"truetype\"), url(font/Symbola.otf) format(\"opentype\"), url(font/Symbola.svg#Symbola) format(\"svg\");\n}\n.mathquill-editable {\n  display: -moz-inline-box;\n  display: inline-block;\n  white-space: pre-wrap;\n}\n.mathquill-editable .cursor {\n  border-left: 1px solid black;\n  margin-right: -1px;\n  position: relative;\n  z-index: 1;\n  padding: 0;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-editable .cursor.blink {\n  visibility: hidden;\n}\n.mathquill-editable,\n.mathquill-embedded-latex .mathquill-editable {\n  border: 1px solid gray;\n  padding: 2px;\n}\n.mathquill-embedded-latex .mathquill-editable {\n  margin: 1px;\n}\n.mathquill-editable.hasCursor,\n.mathquill-editable .hasCursor {\n  -webkit-box-shadow: #68b4df 0 0 3px 2px;\n  -moz-box-shadow: #68b4df 0 0 3px 2px;\n  box-shadow: #68b4df 0 0 3px 2px;\n}\n.mathquill-editable .latex-command-input {\n  color: inherit;\n  font-family: \"Courier New\", monospace;\n  border: 1px solid gray;\n  padding-right: 1px;\n  margin-right: 1px;\n  margin-left: 2px;\n}\n.mathquill-editable .latex-command-input.empty {\n  background: transparent;\n}\n.mathquill-editable .latex-command-input.hasCursor {\n  border-color: ActiveBorder;\n}\n.mathquill-editable.empty:after,\n.mathquill-textbox:after,\n.mathquill-rendered-math .empty:after {\n  visibility: hidden;\n  content: 'c';\n}\n.mathquill-editable .cursor:only-child:after,\n.mathquill-editable .textarea + .cursor:last-child:after {\n  visibility: hidden;\n  content: 'c';\n}\n.mathquill-textbox {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.mathquill-rendered-math {\n  font-variant: normal;\n  font-weight: normal;\n  font-style: normal;\n  font-size: 115%;\n  line-height: 1;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math .non-leaf,\n.mathquill-rendered-math .scaled {\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math var,\n.mathquill-rendered-math .text,\n.mathquill-rendered-math .nonSymbola {\n  font-family: \"Times New Roman\", Symbola, serif;\n  line-height: .9;\n}\n.mathquill-rendered-math * {\n  font-size: inherit;\n  line-height: inherit;\n  margin: 0;\n  padding: 0;\n  border-color: black;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n.mathquill-rendered-math .empty {\n  background: #ccc;\n}\n.mathquill-rendered-math.empty {\n  background: transparent;\n}\n.mathquill-rendered-math .text {\n  font-size: 87%;\n}\n.mathquill-rendered-math .font {\n  font: 1em \"Times New Roman\", Symbola, serif;\n}\n.mathquill-rendered-math .font * {\n  font-family: inherit;\n  font-style: inherit;\n}\n.mathquill-rendered-math b,\n.mathquill-rendered-math b.font {\n  font-weight: bolder;\n}\n.mathquill-rendered-math var,\n.mathquill-rendered-math i,\n.mathquill-rendered-math i.font {\n  font-syle: italic;\n}\n.mathquill-rendered-math var.florin {\n  margin: 0 -0.1em;\n}\n.mathquill-rendered-math big {\n  font-size: 125%;\n}\n.mathquill-rendered-math .roman {\n  font-style: normal;\n}\n.mathquill-rendered-math .sans-serif {\n  font-family: sans-serif, Symbola, serif;\n}\n.mathquill-rendered-math .monospace {\n  font-family: monospace, Symbola, serif;\n}\n.mathquill-rendered-math .overline {\n  border-top: 1px solid black;\n  margin-top: 1px;\n}\n.mathquill-rendered-math .underline {\n  border-bottom: 1px solid black;\n  margin-bottom: 1px;\n}\n.mathquill-rendered-math .binary-operator {\n  padding: 0 0.2em;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math .unary-operator {\n  padding-left: 0.2em;\n}\n.mathquill-rendered-math sup,\n.mathquill-rendered-math sub {\n  position: relative;\n  font-size: 90%;\n}\n.mathquill-rendered-math sup .binary-operator,\n.mathquill-rendered-math sub .binary-operator {\n  padding: 0 .1em;\n}\n.mathquill-rendered-math sup .unary-operator,\n.mathquill-rendered-math sub .unary-operator {\n  padding-left: .1em;\n}\n.mathquill-rendered-math sup.limit,\n.mathquill-rendered-math sub.limit,\n.mathquill-rendered-math sup.nthroot,\n.mathquill-rendered-math sub.nthroot {\n  font-size: 80%;\n}\n.mathquill-rendered-math sup .fraction,\n.mathquill-rendered-math sub .fraction {\n  font-size: 70%;\n  vertical-align: -0.4em;\n}\n.mathquill-rendered-math sup .numerator,\n.mathquill-rendered-math sub .numerator {\n  padding-bottom: 0;\n}\n.mathquill-rendered-math sup .denominator,\n.mathquill-rendered-math sub .denominator {\n  padding-top: 0;\n}\n.mathquill-rendered-math sup {\n  vertical-align: .5em;\n}\n.mathquill-rendered-math sup.limit,\n.mathquill-rendered-math sup.nthroot {\n  vertical-align: 0.8em;\n}\n.mathquill-rendered-math sup.nthroot {\n  margin-right: -0.6em;\n  margin-left: .2em;\n  min-width: .5em;\n}\n.mathquill-rendered-math sub {\n  vertical-align: -0.4em;\n}\n.mathquill-rendered-math sub.limit {\n  vertical-align: -0.6em;\n}\n.mathquill-rendered-math .paren {\n  padding: 0 .1em;\n  vertical-align: bottom;\n  -webkit-transform-origin: bottom center;\n  -moz-transform-origin: bottom center;\n  -ms-transform-origin: bottom center;\n  -o-transform-origin: bottom center;\n  transform-origin: bottom center;\n}\n.mathquill-rendered-math .array {\n  vertical-align: middle;\n  text-align: center;\n}\n.mathquill-rendered-math .array > span {\n  display: block;\n}\n.mathquill-rendered-math .non-italicized-function {\n  font-family: Symbola, \"Times New Roman\", serif;\n  line-height: .9;\n  font-style: normal;\n  padding-right: .2em;\n}\n.mathquill-rendered-math .fraction {\n  font-size: 90%;\n  text-align: center;\n  vertical-align: -0.5em;\n  padding: 0 .2em;\n}\n.mathquill-rendered-math .fraction,\n.mathquill-rendered-math x:-moz-any-link {\n  display: -moz-groupbox;\n}\n.mathquill-rendered-math .fraction,\n.mathquill-rendered-math x:-moz-any-link,\n.mathquill-rendered-math x:default {\n  display: inline-block;\n}\n.mathquill-rendered-math .numerator,\n.mathquill-rendered-math .denominator {\n  display: block;\n}\n.mathquill-rendered-math .numerator {\n  padding: 0 0.1em;\n  margin-bottom: -0.1em;\n}\n.mathquill-rendered-math .denominator {\n  border-top: 1px solid;\n  float: right;\n  width: 100%;\n  padding: .1em .1em 0 .1em;\n  margin-right: -0.1em;\n  margin-left: -0.1em;\n}\n.mathquill-rendered-math .sqrt-prefix {\n  padding-top: 0;\n  position: relative;\n  top: .1em;\n  vertical-align: top;\n  -webkit-transform-origin: top;\n  -moz-transform-origin: top;\n  -ms-transform-origin: top;\n  -o-transform-origin: top;\n  transform-origin: top;\n}\n.mathquill-rendered-math .sqrt-stem {\n  border-top: 1px solid;\n  margin-top: 1px;\n  padding-left: .15em;\n  padding-right: .2em;\n  margin-right: .1em;\n}\n.mathquill-rendered-math .vector-prefix {\n  display: block;\n  text-align: center;\n  line-height: .25em;\n  margin-bottom: -0.1em;\n  font-size: 0.75em;\n}\n.mathquill-rendered-math .vector-stem {\n  display: block;\n}\n.mathquill-rendered-math,\n.mathquill-rendered-math .mathquill-editable {\n  cursor: text;\n  font-family: Symbola, \"Times New Roman\", serif;\n}\n.mathquill-rendered-math .selection,\n.mathquill-editable .selection,\n.mathquill-rendered-math .selection .non-leaf,\n.mathquill-editable .selection .non-leaf,\n.mathquill-rendered-math .selection .scaled,\n.mathquill-editable .selection .scaled {\n  background: #B4D5FE !important;\n  background: Highlight !important;\n  color: HighlightText;\n  border-color: HighlightText;\n}\n.mathquill-rendered-math .selection .matrixed,\n.mathquill-editable .selection .matrixed {\n  background: #39F !important;\n}\n.mathquill-rendered-math .selection .matrixed-container,\n.mathquill-editable .selection .matrixed-container {\n  filter: progid:DXImageTransform.Microsoft.Chroma(color='#3399FF') !important;\n}\n.mathquill-rendered-math .selection.blur,\n.mathquill-editable .selection.blur,\n.mathquill-rendered-math .selection.blur .non-leaf,\n.mathquill-editable .selection.blur .non-leaf,\n.mathquill-rendered-math .selection.blur .scaled,\n.mathquill-editable .selection.blur .scaled,\n.mathquill-rendered-math .selection.blur .matrixed,\n.mathquill-editable .selection.blur .matrixed {\n  background: #D4D4D4 !important;\n  color: black;\n  border-color: black;\n}\n.mathquill-rendered-math .selection.blur .matrixed-container,\n.mathquill-editable .selection.blur .matrixed-container {\n  filter: progid:DXImageTransform.Microsoft.Chroma(color='#D4D4D4') !important;\n}\n.mathquill-editable .textarea,\n.mathquill-rendered-math .textarea {\n  position: relative;\n  -webkit-user-select: text;\n  -moz-user-select: text;\n  user-select: text;\n}\n.mathquill-editable .textarea textarea,\n.mathquill-rendered-math .textarea textarea,\n.mathquill-editable .selectable,\n.mathquill-rendered-math .selectable {\n  -webkit-user-select: text;\n  -moz-user-select: text;\n  user-select: text;\n  position: absolute;\n  clip: rect(1em 1em 1em 1em);\n}\n.mathquill-rendered-math .matrixed {\n  background: white;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math .matrixed-container {\n  filter: progid:DXImageTransform.Microsoft.Chroma(color='white');\n  margin-top: -0.1em;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/third-party/mathquill/mathquill.js",
    "content": "/**\n * Copyleft 2010-2011 Jay and Han (laughinghan@gmail.com)\n *   under the GNU Lesser General Public License\n *     http://www.gnu.org/licenses/lgpl.html\n * Project Website: http://mathquill.com\n */\n\n(function() {\n\nvar jQuery = window.jQuery,\n  undefined,\n  _, //temp variable of prototypes\n  mqCmdId = 'mathquill-command-id',\n  mqBlockId = 'mathquill-block-id',\n  min = Math.min,\n  max = Math.max;\n\nvar __slice = [].slice;\n\nfunction noop() {}\n\n/**\n * sugar to make defining lots of commands easier.\n * TODO: rethink this.\n */\nfunction bind(cons /*, args... */) {\n  var args = __slice.call(arguments, 1);\n  return function() {\n    return cons.apply(this, args);\n  };\n}\n\n/**\n * a development-only debug method.  This definition and all\n * calls to `pray` will be stripped from the minified\n * build of mathquill.\n *\n * This function must be called by name to be removed\n * at compile time.  Do not define another function\n * with the same name, and only call this function by\n * name.\n */\nfunction pray(message, cond) {\n  if (!cond) throw new Error('prayer failed: '+message);\n}\nvar P = (function(prototype, ownProperty, undefined) {\n  // helper functions that also help minification\n  function isObject(o) { return typeof o === 'object'; }\n  function isFunction(f) { return typeof f === 'function'; }\n\n  // a function that gets reused to make uninitialized objects\n  function BareConstructor() {}\n\n  function P(_superclass /* = Object */, definition) {\n    // handle the case where no superclass is given\n    if (definition === undefined) {\n      definition = _superclass;\n      _superclass = Object;\n    }\n\n    // C is the class to be returned.\n    //\n    // It delegates to instantiating an instance of `Bare`, so that it\n    // will always return a new instance regardless of the calling\n    // context.\n    //\n    //  TODO: the Chrome inspector shows all created objects as `C`\n    //        rather than `Object`.  Setting the .name property seems to\n    //        have no effect.  Is there a way to override this behavior?\n    function C() {\n      var self = new Bare;\n      if (isFunction(self.init)) self.init.apply(self, arguments);\n      return self;\n    }\n\n    // C.Bare is a class with a noop constructor.  Its prototype is the\n    // same as C, so that instances of C.Bare are also instances of C.\n    // New objects can be allocated without initialization by calling\n    // `new MyClass.Bare`.\n    function Bare() {}\n    C.Bare = Bare;\n\n    // Set up the prototype of the new class.\n    var _super = BareConstructor[prototype] = _superclass[prototype];\n    var proto = Bare[prototype] = C[prototype] = new BareConstructor;\n\n    // other variables, as a minifier optimization\n    var extensions;\n\n\n    // set the constructor property on the prototype, for convenience\n    proto.constructor = C;\n\n    C.mixin = function(def) {\n      Bare[prototype] = C[prototype] = P(C, def)[prototype];\n      return C;\n    }\n\n    return (C.open = function(def) {\n      extensions = {};\n\n      if (isFunction(def)) {\n        // call the defining function with all the arguments you need\n        // extensions captures the return value.\n        extensions = def.call(C, proto, _super, C, _superclass);\n      }\n      else if (isObject(def)) {\n        // if you passed an object instead, we'll take it\n        extensions = def;\n      }\n\n      // ...and extend it\n      if (isObject(extensions)) {\n        for (var ext in extensions) {\n          if (ownProperty.call(extensions, ext)) {\n            proto[ext] = extensions[ext];\n          }\n        }\n      }\n\n      // if there's no init, we assume we're inheriting a non-pjs class, so\n      // we default to applying the superclass's constructor.\n      if (!isFunction(proto.init)) {\n        proto.init = _superclass;\n      }\n\n      return C;\n    })(definition);\n  }\n\n  // ship it\n  return P;\n\n  // as a minifier optimization, we've closured in a few helper functions\n  // and the string 'prototype' (C[p] is much shorter than C.prototype)\n})('prototype', ({}).hasOwnProperty);\n/*************************************************\n * Textarea Manager\n *\n * An abstraction layer wrapping the textarea in\n * an object with methods to manipulate and listen\n * to events on, that hides all the nasty cross-\n * browser incompatibilities behind a uniform API.\n *\n * Design goal: This is a *HARD* internal\n * abstraction barrier. Cross-browser\n * inconsistencies are not allowed to leak through\n * and be dealt with by event handlers. All future\n * cross-browser issues that arise must be dealt\n * with here, and if necessary, the API updated.\n *\n * Organization:\n * - key values map and stringify()\n * - manageTextarea()\n *    + defer() and flush()\n *    + event handler logic\n *    + attach event handlers and export methods\n ************************************************/\n\nvar manageTextarea = (function() {\n  // The following [key values][1] map was compiled from the\n  // [DOM3 Events appendix section on key codes][2] and\n  // [a widely cited report on cross-browser tests of key codes][3],\n  // except for 10: 'Enter', which I've empirically observed in Safari on iOS\n  // and doesn't appear to conflict with any other known key codes.\n  //\n  // [1]: http://www.w3.org/TR/2012/WD-DOM-Level-3-Events-20120614/#keys-keyvalues\n  // [2]: http://www.w3.org/TR/2012/WD-DOM-Level-3-Events-20120614/#fixed-virtual-key-codes\n  // [3]: http://unixpapa.com/js/key.html\n  var KEY_VALUES = {\n    8: 'Backspace',\n    9: 'Tab',\n\n    10: 'Enter', // for Safari on iOS\n\n    13: 'Enter',\n\n    16: 'Shift',\n    17: 'Control',\n    18: 'Alt',\n    20: 'CapsLock',\n\n    27: 'Esc',\n\n    32: 'Spacebar',\n\n    33: 'PageUp',\n    34: 'PageDown',\n    35: 'End',\n    36: 'Home',\n\n    37: 'Left',\n    38: 'Up',\n    39: 'Right',\n    40: 'Down',\n\n    45: 'Insert',\n\n    46: 'Del',\n\n    144: 'NumLock'\n  };\n\n  // To the extent possible, create a normalized string representation\n  // of the key combo (i.e., key code and modifier keys).\n  function stringify(evt) {\n    var which = evt.which || evt.keyCode;\n    var keyVal = KEY_VALUES[which];\n    var key;\n    var modifiers = [];\n\n    if (evt.ctrlKey) modifiers.push('Ctrl');\n    if (evt.originalEvent && evt.originalEvent.metaKey) modifiers.push('Meta');\n    if (evt.altKey) modifiers.push('Alt');\n    if (evt.shiftKey) modifiers.push('Shift');\n\n    key = keyVal || String.fromCharCode(which);\n\n    if (!modifiers.length && !keyVal) return key;\n\n    modifiers.push(key);\n    return modifiers.join('-');\n  }\n\n  // create a textarea manager that calls callbacks at useful times\n  // and exports useful public methods\n  return function manageTextarea(el, opts) {\n    var keydown = null;\n    var keypress = null;\n\n    if (!opts) opts = {};\n    var textCallback = opts.text || noop;\n    var keyCallback = opts.key || noop;\n    var pasteCallback = opts.paste || noop;\n    var onCut = opts.cut || noop;\n\n    var textarea = jQuery(el);\n    var target = jQuery(opts.container || textarea);\n\n    // checkTextareaFor() is called after keypress or paste events to\n    // say \"Hey, I think something was just typed\" or \"pasted\" (resp.),\n    // so that at all subsequent opportune times (next event or timeout),\n    // will check for expected typed or pasted text.\n    // Need to check repeatedly because #135: in Safari 5.1 (at least),\n    // after selecting something and then typing, the textarea is\n    // incorrectly reported as selected during the input event (but not\n    // subsequently).\n    var checkTextarea = noop, timeoutId;\n    function checkTextareaFor(checker) {\n      checkTextarea = checker;\n      clearTimeout(timeoutId);\n      timeoutId = setTimeout(checker);\n    }\n    target.bind('keydown keypress input keyup focusout paste', function() { checkTextarea(); });\n\n\n    // -*- public methods -*- //\n    function select(text) {\n      // check textarea at least once/one last time before munging (so\n      // no race condition if selection happens after keypress/paste but\n      // before checkTextarea), then never again ('cos it's been munged)\n      checkTextarea();\n      checkTextarea = noop;\n      clearTimeout(timeoutId);\n\n      textarea.val(text);\n      if (text) textarea[0].select();\n    }\n\n    // -*- helper subroutines -*- //\n\n    // Determine whether there's a selection in the textarea.\n    // This will always return false in IE < 9, which don't support\n    // HTMLTextareaElement::selection{Start,End}.\n    function hasSelection() {\n      var dom = textarea[0];\n\n      if (!('selectionStart' in dom)) return false;\n      return dom.selectionStart !== dom.selectionEnd;\n    }\n\n    function popText(callback) {\n      var text = textarea.val();\n      textarea.val('');\n      if (text) callback(text);\n    }\n\n    function handleKey() {\n      keyCallback(stringify(keydown), keydown);\n    }\n\n    // -*- event handlers -*- //\n    function onKeydown(e) {\n      keydown = e;\n      keypress = null;\n\n      handleKey();\n    }\n\n    function onKeypress(e) {\n      // call the key handler for repeated keypresses.\n      // This excludes keypresses that happen directly\n      // after keydown.  In that case, there will be\n      // no previous keypress, so we skip it here\n      if (keydown && keypress) handleKey();\n\n      keypress = e;\n\n      checkTextareaFor(typedText);\n    }\n    function typedText() {\n      // If there is a selection, the contents of the textarea couldn't\n      // possibly have just been typed in.\n      // This happens in browsers like Firefox and Opera that fire\n      // keypress for keystrokes that are not text entry and leave the\n      // selection in the textarea alone, such as Ctrl-C.\n      // Note: we assume that browsers that don't support hasSelection()\n      // also never fire keypress on keystrokes that are not text entry.\n      // This seems reasonably safe because:\n      // - all modern browsers including IE 9+ support hasSelection(),\n      //   making it extremely unlikely any browser besides IE < 9 won't\n      // - as far as we know IE < 9 never fires keypress on keystrokes\n      //   that aren't text entry, which is only as reliable as our\n      //   tests are comprehensive, but the IE < 9 way to do\n      //   hasSelection() is poorly documented and is also only as\n      //   reliable as our tests are comprehensive\n      // If anything like #40 or #71 is reported in IE < 9, see\n      // b1318e5349160b665003e36d4eedd64101ceacd8\n      if (hasSelection()) return;\n\n      popText(textCallback);\n    }\n\n    function onBlur() { keydown = keypress = null; }\n\n    function onPaste(e) {\n      // browsers are dumb.\n      //\n      // In Linux, middle-click pasting causes onPaste to be called,\n      // when the textarea is not necessarily focused.  We focus it\n      // here to ensure that the pasted text actually ends up in the\n      // textarea.\n      //\n      // It's pretty nifty that by changing focus in this handler,\n      // we can change the target of the default action.  (This works\n      // on keydown too, FWIW).\n      //\n      // And by nifty, we mean dumb (but useful sometimes).\n      textarea.focus();\n\n      checkTextareaFor(pastedText);\n    }\n    function pastedText() {\n      popText(pasteCallback);\n    }\n\n    // -*- attach event handlers -*- //\n    target.bind({\n      keydown: onKeydown,\n      keypress: onKeypress,\n      focusout: onBlur,\n      cut: onCut,\n      paste: onPaste\n    });\n\n    // -*- export public methods -*- //\n    return {\n      select: select\n    };\n  };\n}());\nvar Parser = P(function(_, _super, Parser) {\n  // The Parser object is a wrapper for a parser function.\n  // Externally, you use one to parse a string by calling\n  //   var result = SomeParser.parse('Me Me Me! Parse Me!');\n  // You should never call the constructor, rather you should\n  // construct your Parser from the base parsers and the\n  // parser combinator methods.\n\n  function parseError(stream, message) {\n    if (stream) {\n      stream = \"'\"+stream+\"'\";\n    }\n    else {\n      stream = 'EOF';\n    }\n\n    throw 'Parse Error: '+message+' at '+stream;\n  }\n\n  _.init = function(body) { this._ = body; };\n\n  _.parse = function(stream) {\n    return this.skip(eof)._(stream, success, parseError);\n\n    function success(stream, result) { return result; }\n  };\n\n  // -*- primitive combinators -*- //\n  _.or = function(alternative) {\n    pray('or is passed a parser', alternative instanceof Parser);\n\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      return self._(stream, onSuccess, failure);\n\n      function failure(newStream) {\n        return alternative._(stream, onSuccess, onFailure);\n      }\n    });\n  };\n\n  _.then = function(next) {\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      return self._(stream, success, onFailure);\n\n      function success(newStream, result) {\n        var nextParser = (next instanceof Parser ? next : next(result));\n        pray('a parser is returned', nextParser instanceof Parser);\n        return nextParser._(newStream, onSuccess, onFailure);\n      }\n    });\n  };\n\n  // -*- optimized iterative combinators -*- //\n  _.many = function() {\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var xs = [];\n      while (self._(stream, success, failure));\n      return onSuccess(stream, xs);\n\n      function success(newStream, x) {\n        stream = newStream;\n        xs.push(x);\n        return true;\n      }\n\n      function failure() {\n        return false;\n      }\n    });\n  };\n\n  _.times = function(min, max) {\n    if (arguments.length < 2) max = min;\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var xs = [];\n      var result = true;\n      var failure;\n\n      for (var i = 0; i < min; i += 1) {\n        result = self._(stream, success, firstFailure);\n        if (!result) return onFailure(stream, failure);\n      }\n\n      for (; i < max && result; i += 1) {\n        result = self._(stream, success, secondFailure);\n      }\n\n      return onSuccess(stream, xs);\n\n      function success(newStream, x) {\n        xs.push(x);\n        stream = newStream;\n        return true;\n      }\n\n      function firstFailure(newStream, msg) {\n        failure = msg;\n        stream = newStream;\n        return false;\n      }\n\n      function secondFailure(newStream, msg) {\n        return false;\n      }\n    });\n  };\n\n  // -*- higher-level combinators -*- //\n  _.result = function(res) { return this.then(succeed(res)); };\n  _.atMost = function(n) { return this.times(0, n); };\n  _.atLeast = function(n) {\n    var self = this;\n    return self.times(n).then(function(start) {\n      return self.many().map(function(end) {\n        return start.concat(end);\n      });\n    });\n  };\n\n  _.map = function(fn) {\n    return this.then(function(result) { return succeed(fn(result)); });\n  };\n\n  _.skip = function(two) {\n    return this.then(function(result) { return two.result(result); });\n  };\n\n  // -*- primitive parsers -*- //\n  var string = this.string = function(str) {\n    var len = str.length;\n    var expected = \"expected '\"+str+\"'\";\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var head = stream.slice(0, len);\n\n      if (head === str) {\n        return onSuccess(stream.slice(len), head);\n      }\n      else {\n        return onFailure(stream, expected);\n      }\n    });\n  };\n\n  var regex = this.regex = function(re) {\n    pray('regexp parser is anchored', re.toString().charAt(1) === '^');\n\n    var expected = 'expected '+re;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var match = re.exec(stream);\n\n      if (match) {\n        var result = match[0];\n        return onSuccess(stream.slice(result.length), result);\n      }\n      else {\n        return onFailure(stream, expected);\n      }\n    });\n  };\n\n  var succeed = Parser.succeed = function(result) {\n    return Parser(function(stream, onSuccess) {\n      return onSuccess(stream, result);\n    });\n  };\n\n  var fail = Parser.fail = function(msg) {\n    return Parser(function(stream, _, onFailure) {\n      return onFailure(stream, msg);\n    });\n  };\n\n  var letter = Parser.letter = regex(/^[a-z]/i);\n  var letters = Parser.letters = regex(/^[a-z]*/i);\n  var digit = Parser.digit = regex(/^[0-9]/);\n  var digits = Parser.digits = regex(/^[0-9]*/);\n  var whitespace = Parser.whitespace = regex(/^\\s+/);\n  var optWhitespace = Parser.optWhitespace = regex(/^\\s*/);\n\n  var any = Parser.any = Parser(function(stream, onSuccess, onFailure) {\n    if (!stream) return onFailure(stream, 'expected any character');\n\n    return onSuccess(stream.slice(1), stream.charAt(0));\n  });\n\n  var all = Parser.all = Parser(function(stream, onSuccess, onFailure) {\n    return onSuccess('', stream);\n  });\n\n  var eof = Parser.eof = Parser(function(stream, onSuccess, onFailure) {\n    if (stream) return onFailure(stream, 'expected EOF');\n\n    return onSuccess(stream, stream);\n  });\n});\n/*************************************************\n * Base classes of the MathQuill virtual DOM tree\n *\n * Only doing tree node manipulation via these\n * adopt/ disown methods guarantees well-formedness\n * of the tree.\n ************************************************/\n\n// L = 'left'\n// R = 'right'\n//\n// the contract is that they can be used as object properties\n// and (-L) === R, and (-R) === L.\nvar L = -1;\nvar R = 1;\n\nfunction prayDirection(dir) {\n  pray('a direction was passed', dir === L || dir === R);\n}\n\n/**\n * Tiny extension of jQuery adding directionalized DOM manipulation methods.\n *\n * Funny how Pjs v3 almost just works with `jQuery.fn.init`.\n *\n * jQuery features that don't work on $:\n *   - jQuery.*, like jQuery.ajax, obviously (Pjs doesn't and shouldn't\n *                                            copy constructor properties)\n *\n *   - jQuery(function), the shortcut for `jQuery(document).ready(function)`,\n *     because `jQuery.fn.init` is idiosyncratic and Pjs doing, essentially,\n *     `jQuery.fn.init.apply(this, arguments)` isn't quite right, you need:\n *\n *       _.init = function(s, c) { jQuery.fn.init.call(this, s, c, $(document)); };\n *\n *     if you actually give a shit (really, don't bother),\n *     see https://github.com/jquery/jquery/blob/1.7.2/src/core.js#L889\n *\n *   - jQuery(selector), because jQuery translates that to\n *     `jQuery(document).find(selector)`, but Pjs doesn't (should it?) let\n *     you override the result of a constructor call\n *       + note that because of the jQuery(document) shortcut-ness, there's also\n *         the 3rd-argument-needs-to-be-`$(document)` thing above, but the fix\n *         for that (as can be seen above) is really easy. This problem requires\n *         a way more intrusive fix\n *\n * And that's it! Everything else just magically works because jQuery internally\n * uses `this.constructor()` everywhere (hence calling `$`), but never ever does\n * `this.constructor.find` or anything like that, always doing `jQuery.find`.\n */\nvar $ = P(jQuery, function(_) {\n  _.insDirOf = function(dir, el) {\n    return dir === L ?\n      this.insertBefore(el.first()) : this.insertAfter(el.last());\n  };\n  _.insAtDirEnd = function(dir, el) {\n    return dir === L ? this.prependTo(el) : this.appendTo(el);\n  };\n});\n\nvar Point = P(function(_) {\n  _.parent = 0;\n  _[L] = 0;\n  _[R] = 0;\n\n  _.init = function(parent, leftward, rightward) {\n    this.parent = parent;\n    this[L] = leftward;\n    this[R] = rightward;\n  };\n});\n\n/**\n * MathQuill virtual-DOM tree-node abstract base class\n */\nvar Node = P(function(_) {\n  _[L] = 0;\n  _[R] = 0\n  _.parent = 0;\n\n  _.init = function() {\n    this.ends = {};\n    this.ends[L] = 0;\n    this.ends[R] = 0;\n  };\n\n  _.children = function() {\n    return Fragment(this.ends[L], this.ends[R]);\n  };\n\n  _.eachChild = function(fn) {\n    return this.children().each(fn);\n  };\n\n  _.foldChildren = function(fold, fn) {\n    return this.children().fold(fold, fn);\n  };\n\n  _.adopt = function(parent, leftward, rightward) {\n    Fragment(this, this).adopt(parent, leftward, rightward);\n    return this;\n  };\n\n  _.disown = function() {\n    Fragment(this, this).disown();\n    return this;\n  };\n});\n\n/**\n * An entity outside the virtual tree with one-way pointers (so it's only a\n * \"view\" of part of the tree, not an actual node/entity in the tree) that\n * delimits a doubly-linked list of sibling nodes.\n * It's like a fanfic love-child between HTML DOM DocumentFragment and the Range\n * classes: like DocumentFragment, its contents must be sibling nodes\n * (unlike Range, whose contents are arbitrary contiguous pieces of subtrees),\n * but like Range, it has only one-way pointers to its contents, its contents\n * have no reference to it and in fact may still be in the visible tree (unlike\n * DocumentFragment, whose contents must be detached from the visible tree\n * and have their 'parent' pointers set to the DocumentFragment).\n */\nvar Fragment = P(function(_) {\n  _.init = function(leftEnd, rightEnd) {\n    pray('no half-empty fragments', !leftEnd === !rightEnd);\n\n    this.ends = {};\n\n    if (!leftEnd) return;\n\n    pray('left end node is passed to Fragment', leftEnd instanceof Node);\n    pray('right end node is passed to Fragment', rightEnd instanceof Node);\n    pray('leftEnd and rightEnd have the same parent',\n         leftEnd.parent === rightEnd.parent);\n\n    this.ends[L] = leftEnd;\n    this.ends[R] = rightEnd;\n  };\n\n  function prayWellFormed(parent, leftward, rightward) {\n    pray('a parent is always present', parent);\n    pray('leftward is properly set up', (function() {\n      // either it's empty and `rightward` is the left end child (possibly empty)\n      if (!leftward) return parent.ends[L] === rightward;\n\n      // or it's there and its [R] and .parent are properly set up\n      return leftward[R] === rightward && leftward.parent === parent;\n    })());\n\n    pray('rightward is properly set up', (function() {\n      // either it's empty and `leftward` is the right end child (possibly empty)\n      if (!rightward) return parent.ends[R] === leftward;\n\n      // or it's there and its [L] and .parent are properly set up\n      return rightward[L] === leftward && rightward.parent === parent;\n    })());\n  }\n\n  _.adopt = function(parent, leftward, rightward) {\n    prayWellFormed(parent, leftward, rightward);\n\n    var self = this;\n    self.disowned = false;\n\n    var leftEnd = self.ends[L];\n    if (!leftEnd) return this;\n\n    var rightEnd = self.ends[R];\n\n    if (leftward) {\n      // NB: this is handled in the ::each() block\n      // leftward[R] = leftEnd\n    } else {\n      parent.ends[L] = leftEnd;\n    }\n\n    if (rightward) {\n      rightward[L] = rightEnd;\n    } else {\n      parent.ends[R] = rightEnd;\n    }\n\n    self.ends[R][R] = rightward;\n\n    self.each(function(el) {\n      el[L] = leftward;\n      el.parent = parent;\n      if (leftward) leftward[R] = el;\n\n      leftward = el;\n    });\n\n    return self;\n  };\n\n  _.disown = function() {\n    var self = this;\n    var leftEnd = self.ends[L];\n\n    // guard for empty and already-disowned fragments\n    if (!leftEnd || self.disowned) return self;\n\n    self.disowned = true;\n\n    var rightEnd = self.ends[R]\n    var parent = leftEnd.parent;\n\n    prayWellFormed(parent, leftEnd[L], leftEnd);\n    prayWellFormed(parent, rightEnd, rightEnd[R]);\n\n    if (leftEnd[L]) {\n      leftEnd[L][R] = rightEnd[R];\n    } else {\n      parent.ends[L] = rightEnd[R];\n    }\n\n    if (rightEnd[R]) {\n      rightEnd[R][L] = leftEnd[L];\n    } else {\n      parent.ends[R] = leftEnd[L];\n    }\n\n    return self;\n  };\n\n  _.each = function(fn) {\n    var self = this;\n    var el = self.ends[L];\n    if (!el) return self;\n\n    for (;el !== self.ends[R][R]; el = el[R]) {\n      if (fn.call(self, el) === false) break;\n    }\n\n    return self;\n  };\n\n  _.fold = function(fold, fn) {\n    this.each(function(el) {\n      fold = fn.call(this, fold, el);\n    });\n\n    return fold;\n  };\n});\n/*************************************************\n * Abstract classes of math blocks and commands.\n ************************************************/\n\nvar uuid = (function() {\n  var id = 0;\n\n  return function() { return id += 1; };\n})();\n\n/**\n * Math tree node base class.\n * Some math-tree-specific extensions to Node.\n * Both MathBlock's and MathCommand's descend from it.\n */\nvar MathElement = P(Node, function(_, _super) {\n  _.init = function(obj) {\n    _super.init.call(this);\n    this.id = uuid();\n    MathElement[this.id] = this;\n  };\n\n  _.toString = function() {\n    return '[MathElement '+this.id+']';\n  };\n\n  _.bubble = function(event /*, args... */) {\n    var args = __slice.call(arguments, 1);\n\n    for (var ancestor = this; ancestor; ancestor = ancestor.parent) {\n      var res = ancestor[event] && ancestor[event].apply(ancestor, args);\n      if (res === false) break;\n    }\n\n    return this;\n  };\n\n  _.postOrder = function(fn /*, args... */) {\n    var args = __slice.call(arguments, 1);\n\n    if (typeof fn === 'string') {\n      var methodName = fn;\n      fn = function(el) {\n        if (methodName in el) el[methodName].apply(el, args);\n      };\n    }\n\n    (function recurse(desc) {\n      desc.eachChild(recurse);\n      fn(desc);\n    })(this);\n  };\n\n  _.jQ = $();\n  _.jQadd = function(jQ) { this.jQ = this.jQ.add(jQ); };\n\n  this.jQize = function(html) {\n    // Sets the .jQ of the entire math subtree rooted at this command.\n    // Expects .createBlocks() to have been called already, since it\n    // calls .html().\n    var jQ = $(html);\n    jQ.find('*').andSelf().each(function() {\n      var jQ = $(this),\n        cmdId = jQ.attr('mathquill-command-id'),\n        blockId = jQ.attr('mathquill-block-id');\n      if (cmdId) MathElement[cmdId].jQadd(jQ);\n      if (blockId) MathElement[blockId].jQadd(jQ);\n    });\n    return jQ;\n  };\n\n  _.finalizeInsert = function() {\n    var self = this;\n    self.postOrder('finalizeTree');\n\n    // note: this order is important.\n    // empty elements need the empty box provided by blur to\n    // be present in order for their dimensions to be measured\n    // correctly in redraw.\n    self.postOrder('blur');\n\n    // adjust context-sensitive spacing\n    self.postOrder('respace');\n    if (self[R].respace) self[R].respace();\n    if (self[L].respace) self[L].respace();\n\n    self.postOrder('redraw');\n    self.bubble('redraw');\n  };\n});\n\n/**\n * Commands and operators, like subscripts, exponents, or fractions.\n * Descendant commands are organized into blocks.\n */\nvar MathCommand = P(MathElement, function(_, _super) {\n  _.init = function(ctrlSeq, htmlTemplate, textTemplate) {\n    var cmd = this;\n    _super.init.call(cmd);\n\n    if (!cmd.ctrlSeq) cmd.ctrlSeq = ctrlSeq;\n    if (htmlTemplate) cmd.htmlTemplate = htmlTemplate;\n    if (textTemplate) cmd.textTemplate = textTemplate;\n  };\n\n  // obvious methods\n  _.replaces = function(replacedFragment) {\n    replacedFragment.disown();\n    this.replacedFragment = replacedFragment;\n  };\n  _.isEmpty = function() {\n    return this.foldChildren(true, function(isEmpty, child) {\n      return isEmpty && child.isEmpty();\n    });\n  };\n\n  _.parser = function() {\n    var block = latexMathParser.block;\n    var self = this;\n\n    return block.times(self.numBlocks()).map(function(blocks) {\n      self.blocks = blocks;\n\n      for (var i = 0; i < blocks.length; i += 1) {\n        blocks[i].adopt(self, self.ends[R], 0);\n      }\n\n      return self;\n    });\n  };\n\n  // createLeftOf(cursor) and the methods it calls\n  _.createLeftOf = function(cursor) {\n    var cmd = this;\n    var replacedFragment = cmd.replacedFragment;\n\n    cmd.createBlocks();\n    MathElement.jQize(cmd.html());\n    if (replacedFragment) {\n      replacedFragment.adopt(cmd.ends[L], 0, 0);\n      replacedFragment.jQ.appendTo(cmd.ends[L].jQ);\n    }\n\n    cursor.jQ.before(cmd.jQ);\n    cursor[L] = cmd.adopt(cursor.parent, cursor[L], cursor[R]);\n\n    cmd.finalizeInsert(cursor);\n\n    cmd.placeCursor(cursor);\n  };\n  _.createBlocks = function() {\n    var cmd = this,\n      numBlocks = cmd.numBlocks(),\n      blocks = cmd.blocks = Array(numBlocks);\n\n    for (var i = 0; i < numBlocks; i += 1) {\n      var newBlock = blocks[i] = MathBlock();\n      newBlock.adopt(cmd, cmd.ends[R], 0);\n    }\n  };\n  _.respace = noop; //placeholder for context-sensitive spacing\n  _.placeCursor = function(cursor) {\n    //insert the cursor at the right end of the first empty child, searching\n    //left-to-right, or if none empty, the right end child\n    cursor.insAtRightEnd(this.foldChildren(this.ends[L], function(leftward, child) {\n      return leftward.isEmpty() ? leftward : child;\n    }));\n  };\n\n  // remove()\n  _.remove = function() {\n    this.disown();\n    this.jQ.remove();\n\n    this.postOrder(function(el) { delete MathElement[el.id]; });\n\n    return this;\n  };\n\n  // methods involved in creating and cross-linking with HTML DOM nodes\n  /*\n    They all expect an .htmlTemplate like\n      '<span>&0</span>'\n    or\n      '<span><span>&0</span><span>&1</span></span>'\n\n    See html.test.js for more examples.\n\n    Requirements:\n    - For each block of the command, there must be exactly one \"block content\n      marker\" of the form '&<number>' where <number> is the 0-based index of the\n      block. (Like the LaTeX \\newcommand syntax, but with a 0-based rather than\n      1-based index, because JavaScript because C because Dijkstra.)\n    - The block content marker must be the sole contents of the containing\n      element, there can't even be surrounding whitespace, or else we can't\n      guarantee sticking to within the bounds of the block content marker when\n      mucking with the HTML DOM.\n    - The HTML not only must be well-formed HTML (of course), but also must\n      conform to the XHTML requirements on tags, specifically all tags must\n      either be self-closing (like '<br/>') or come in matching pairs.\n      Close tags are never optional.\n\n    Note that &<number> isn't well-formed HTML; if you wanted a literal '&123',\n    your HTML template would have to have '&amp;123'.\n  */\n  _.numBlocks = function() {\n    var matches = this.htmlTemplate.match(/&\\d+/g);\n    return matches ? matches.length : 0;\n  };\n  _.html = function() {\n    // Render the entire math subtree rooted at this command, as HTML.\n    // Expects .createBlocks() to have been called already, since it uses the\n    // .blocks array of child blocks.\n    //\n    // See html.test.js for example templates and intended outputs.\n    //\n    // Given an .htmlTemplate as described above,\n    // - insert the mathquill-command-id attribute into all top-level tags,\n    //   which will be used to set this.jQ in .jQize().\n    //   This is straightforward:\n    //     * tokenize into tags and non-tags\n    //     * loop through top-level tokens:\n    //         * add #cmdId attribute macro to top-level self-closing tags\n    //         * else add #cmdId attribute macro to top-level open tags\n    //             * skip the matching top-level close tag and all tag pairs\n    //               in between\n    // - for each block content marker,\n    //     + replace it with the contents of the corresponding block,\n    //       rendered as HTML\n    //     + insert the mathquill-block-id attribute into the containing tag\n    //   This is even easier, a quick regex replace, since block tags cannot\n    //   contain anything besides the block content marker.\n    //\n    // Two notes:\n    // - The outermost loop through top-level tokens should never encounter any\n    //   top-level close tags, because we should have first encountered a\n    //   matching top-level open tag, all inner tags should have appeared in\n    //   matching pairs and been skipped, and then we should have skipped the\n    //   close tag in question.\n    // - All open tags should have matching close tags, which means our inner\n    //   loop should always encounter a close tag and drop nesting to 0. If\n    //   a close tag is missing, the loop will continue until i >= tokens.length\n    //   and token becomes undefined. This will not infinite loop, even in\n    //   production without pray(), because it will then TypeError on .slice().\n\n    var cmd = this;\n    var blocks = cmd.blocks;\n    var cmdId = ' mathquill-command-id=' + cmd.id;\n    var tokens = cmd.htmlTemplate.match(/<[^<>]+>|[^<>]+/g);\n\n    pray('no unmatched angle brackets', tokens.join('') === this.htmlTemplate);\n\n    // add cmdId to all top-level tags\n    for (var i = 0, token = tokens[0]; token; i += 1, token = tokens[i]) {\n      // top-level self-closing tags\n      if (token.slice(-2) === '/>') {\n        tokens[i] = token.slice(0,-2) + cmdId + '/>';\n      }\n      // top-level open tags\n      else if (token.charAt(0) === '<') {\n        pray('not an unmatched top-level close tag', token.charAt(1) !== '/');\n\n        tokens[i] = token.slice(0,-1) + cmdId + '>';\n\n        // skip matching top-level close tag and all tag pairs in between\n        var nesting = 1;\n        do {\n          i += 1, token = tokens[i];\n          pray('no missing close tags', token);\n          // close tags\n          if (token.slice(0,2) === '</') {\n            nesting -= 1;\n          }\n          // non-self-closing open tags\n          else if (token.charAt(0) === '<' && token.slice(-2) !== '/>') {\n            nesting += 1;\n          }\n        } while (nesting > 0);\n      }\n    }\n    return tokens.join('').replace(/>&(\\d+)/g, function($0, $1) {\n      return ' mathquill-block-id=' + blocks[$1].id + '>' + blocks[$1].join('html');\n    });\n  };\n\n  // methods to export a string representation of the math tree\n  _.latex = function() {\n    return this.foldChildren(this.ctrlSeq, function(latex, child) {\n      return latex + '{' + (child.latex() || ' ') + '}';\n    });\n  };\n  _.textTemplate = [''];\n  _.text = function() {\n    var cmd = this, i = 0;\n    return cmd.foldChildren(cmd.textTemplate[i], function(text, child) {\n      i += 1;\n      var child_text = child.text();\n      if (text && cmd.textTemplate[i] === '('\n          && child_text[0] === '(' && child_text.slice(-1) === ')')\n        return text + child_text.slice(1, -1) + cmd.textTemplate[i];\n      return text + child.text() + (cmd.textTemplate[i] || '');\n    });\n  };\n});\n\n/**\n * Lightweight command without blocks or children.\n */\nvar Symbol = P(MathCommand, function(_, _super) {\n  _.init = function(ctrlSeq, html, text) {\n    if (!text) text = ctrlSeq && ctrlSeq.length > 1 ? ctrlSeq.slice(1) : ctrlSeq;\n\n    _super.init.call(this, ctrlSeq, html, [ text ]);\n  };\n\n  _.parser = function() { return Parser.succeed(this); };\n  _.numBlocks = function() { return 0; };\n\n  _.replaces = function(replacedFragment) {\n    replacedFragment.remove();\n  };\n  _.createBlocks = noop;\n  _.latex = function(){ return this.ctrlSeq; };\n  _.text = function(){ return this.textTemplate; };\n  _.placeCursor = noop;\n  _.isEmpty = function(){ return true; };\n});\n\n/**\n * Children and parent of MathCommand's. Basically partitions all the\n * symbols and operators that descend (in the Math DOM tree) from\n * ancestor operators.\n */\nvar MathBlock = P(MathElement, function(_) {\n  _.join = function(methodName) {\n    return this.foldChildren('', function(fold, child) {\n      return fold + child[methodName]();\n    });\n  };\n  _.latex = function() { return this.join('latex'); };\n  _.text = function() {\n    return this.ends[L] === this.ends[R] ?\n      this.ends[L].text() :\n      '(' + this.join('text') + ')'\n    ;\n  };\n  _.isEmpty = function() {\n    return this.ends[L] === 0 && this.ends[R] === 0;\n  };\n  _.write = function(cursor, ch, replacedFragment) {\n    var cmd;\n    if (ch.match(/^[a-eg-zA-Z]$/)) //exclude f because want florin\n      cmd = Variable(ch);\n    else if (cmd = CharCmds[ch] || LatexCmds[ch])\n      cmd = cmd(ch);\n    else\n      cmd = VanillaSymbol(ch);\n\n    if (replacedFragment) cmd.replaces(replacedFragment);\n\n    cmd.createLeftOf(cursor);\n  };\n  _.focus = function() {\n    this.jQ.addClass('hasCursor');\n    this.jQ.removeClass('empty');\n\n    return this;\n  };\n  _.blur = function() {\n    this.jQ.removeClass('hasCursor');\n    if (this.isEmpty())\n      this.jQ.addClass('empty');\n\n    return this;\n  };\n});\n\n/**\n * Math tree fragment base class.\n * Some math-tree-specific extensions to Fragment.\n */\nvar MathFragment = P(Fragment, function(_, _super) {\n  _.init = function(leftEnd, rightEnd) {\n    // just select one thing if only one argument\n    _super.init.call(this, leftEnd, rightEnd || leftEnd);\n    this.jQ = this.fold($(), function(jQ, child){ return child.jQ.add(jQ); });\n  };\n  _.latex = function() {\n    return this.fold('', function(latex, el){ return latex + el.latex(); });\n  };\n  _.remove = function() {\n    this.jQ.remove();\n\n    this.each(function(el) {\n      el.postOrder(function(desc) {\n        delete MathElement[desc.id];\n      });\n    });\n\n    return this.disown();\n  };\n});\n/*********************************************\n * Root math elements with event delegation.\n ********************************************/\n\nfunction createRoot(jQ, root, textbox, editable) {\n  var contents = jQ.contents().detach();\n\n  if (!textbox) {\n    jQ.addClass('mathquill-rendered-math');\n  }\n\n  root.jQ = jQ.attr(mqBlockId, root.id);\n  root.revert = function() {\n    jQ.empty().unbind('.mathquill')\n      .removeClass('mathquill-rendered-math mathquill-editable mathquill-textbox')\n      .append(contents);\n  };\n\n  var cursor = root.cursor = Cursor(root);\n\n  root.renderLatex(contents.text());\n\n  //textarea stuff\n  var textareaSpan = root.textarea = $('<span class=\"textarea\"><textarea></textarea></span>'),\n    textarea = textareaSpan.children();\n\n  /******\n   * TODO [Han]: Document this\n   */\n  var textareaSelectionTimeout;\n  root.selectionChanged = function() {\n    if (textareaSelectionTimeout === undefined) {\n      textareaSelectionTimeout = setTimeout(setTextareaSelection);\n    }\n    forceIERedraw(jQ[0]);\n  };\n  function setTextareaSelection() {\n    textareaSelectionTimeout = undefined;\n    var latex = cursor.selection ? '$'+cursor.selection.latex()+'$' : '';\n    textareaManager.select(latex);\n  }\n\n  //prevent native selection except textarea\n  jQ.bind('selectstart.mathquill', function(e) {\n    if (e.target !== textarea[0]) e.preventDefault();\n    e.stopPropagation();\n  });\n\n  //drag-to-select event handling\n  var anticursor, blink = cursor.blink;\n  jQ.bind('mousedown.mathquill', function(e) {\n    function mousemove(e) {\n      cursor.seek($(e.target), e.pageX, e.pageY);\n\n      if (cursor[L] !== anticursor[L]\n          || cursor.parent !== anticursor.parent) {\n        cursor.selectFrom(anticursor);\n      }\n\n      return false;\n    }\n\n    // docmousemove is attached to the document, so that\n    // selection still works when the mouse leaves the window.\n    function docmousemove(e) {\n      // [Han]: i delete the target because of the way seek works.\n      // it will not move the mouse to the target, but will instead\n      // just seek those X and Y coordinates.  If there is a target,\n      // it will try to move the cursor to document, which will not work.\n      // cursor.seek needs to be refactored.\n      delete e.target;\n\n      return mousemove(e);\n    }\n\n    function mouseup(e) {\n      anticursor = undefined;\n      cursor.blink = blink;\n      if (!cursor.selection) {\n        if (editable) {\n          cursor.show();\n        }\n        else {\n          textareaSpan.detach();\n        }\n      }\n\n      // delete the mouse handlers now that we're not dragging anymore\n      jQ.unbind('mousemove', mousemove);\n      $(e.target.ownerDocument).unbind('mousemove', docmousemove).unbind('mouseup', mouseup);\n    }\n\n    setTimeout(function() { textarea.focus(); });\n      // preventDefault won't prevent focus on mousedown in IE<9\n      // that means immediately after this mousedown, whatever was\n      // mousedown-ed will receive focus\n      // http://bugs.jquery.com/ticket/10345\n\n    cursor.blink = noop;\n    cursor.seek($(e.target), e.pageX, e.pageY);\n\n    anticursor = Point(cursor.parent, cursor[L], cursor[R]);\n\n    if (!editable) jQ.prepend(textareaSpan);\n\n    jQ.mousemove(mousemove);\n    $(e.target.ownerDocument).mousemove(docmousemove).mouseup(mouseup);\n\n    return false;\n  });\n\n  if (!editable) {\n    var textareaManager = manageTextarea(textarea, { container: jQ });\n    jQ.bind('cut paste', false).bind('copy', setTextareaSelection)\n      .prepend('<span class=\"selectable\">$'+root.latex()+'$</span>');\n    textarea.blur(function() {\n      cursor.clearSelection();\n      setTimeout(detach); //detaching during blur explodes in WebKit\n    });\n    function detach() {\n      textareaSpan.detach();\n    }\n    return;\n  }\n\n  var textareaManager = manageTextarea(textarea, {\n    container: jQ,\n    key: function(key, evt) {\n      cursor.parent.bubble('onKey', key, evt);\n    },\n    text: function(text) {\n      cursor.parent.bubble('onText', text);\n    },\n    cut: function(e) {\n      if (cursor.selection) {\n        setTimeout(function() {\n          cursor.prepareEdit();\n          cursor.parent.bubble('redraw');\n        });\n      }\n\n      e.stopPropagation();\n    },\n    paste: function(text) {\n      // FIXME HACK the parser in RootTextBlock needs to be moved to\n      // Cursor::writeLatex or something so this'll work with\n      // MathQuill textboxes\n      if (text.slice(0,1) === '$' && text.slice(-1) === '$') {\n        text = text.slice(1, -1);\n      }\n      else {\n        text = '\\\\text{' + text + '}';\n      }\n\n      cursor.writeLatex(text).show();\n    }\n  });\n\n  jQ.prepend(textareaSpan);\n\n  //root CSS classes\n  jQ.addClass('mathquill-editable');\n  if (textbox)\n    jQ.addClass('mathquill-textbox');\n\n  //focus and blur handling\n  textarea.focus(function(e) {\n    if (!cursor.parent)\n      cursor.insAtRightEnd(root);\n    cursor.parent.jQ.addClass('hasCursor');\n    if (cursor.selection) {\n      cursor.selection.jQ.removeClass('blur');\n      setTimeout(root.selectionChanged); //re-select textarea contents after tabbing away and back\n    }\n    else\n      cursor.show();\n    e.stopPropagation();\n  }).blur(function(e) {\n    cursor.hide().parent.blur();\n    if (cursor.selection)\n      cursor.selection.jQ.addClass('blur');\n    e.stopPropagation();\n  });\n\n  jQ.bind('focus.mathquill blur.mathquill', function(e) {\n    textarea.trigger(e);\n  }).blur();\n}\n\nvar RootMathBlock = P(MathBlock, function(_, _super) {\n  _.latex = function() {\n    return _super.latex.call(this).replace(/(\\\\[a-z]+) (?![a-z])/ig,'$1');\n  };\n  _.text = function() {\n    return this.foldChildren('', function(text, child) {\n      return text + child.text();\n    });\n  };\n  _.renderLatex = function(latex) {\n    var jQ = this.jQ;\n\n    jQ.children().slice(1).remove();\n    this.ends[L] = this.ends[R] = 0;\n\n    delete this.cursor.selection;\n    this.cursor.insAtRightEnd(this).writeLatex(latex);\n  };\n  _.onKey = function(key, e) {\n    switch (key) {\n    case 'Ctrl-Shift-Backspace':\n    case 'Ctrl-Backspace':\n      while (this.cursor[L] || this.cursor.selection) {\n        this.cursor.backspace();\n      }\n      break;\n\n    case 'Shift-Backspace':\n    case 'Backspace':\n      this.cursor.backspace();\n      break;\n\n    // Tab or Esc -> go one block right if it exists, else escape right.\n    case 'Esc':\n    case 'Tab':\n    case 'Spacebar':\n      var parent = this.cursor.parent;\n      // cursor is in root editable, continue default\n      if (parent === this.cursor.root) {\n        if (key === 'Spacebar') e.preventDefault();\n        return;\n      }\n\n      this.cursor.prepareMove();\n      if (parent[R]) {\n        // go one block right\n        this.cursor.insAtLeftEnd(parent[R]);\n      } else {\n        // get out of the block\n        this.cursor.insRightOf(parent.parent);\n      }\n      break;\n\n    // Shift-Tab -> go one block left if it exists, else escape left.\n    case 'Shift-Tab':\n    case 'Shift-Esc':\n    case 'Shift-Spacebar':\n      var parent = this.cursor.parent;\n      //cursor is in root editable, continue default\n      if (parent === this.cursor.root) {\n        if (key === 'Shift-Spacebar') e.preventDefault();\n        return;\n      }\n\n      this.cursor.prepareMove();\n      if (parent[L]) {\n        // go one block left\n        this.cursor.insAtRightEnd(parent[L]);\n      } else {\n        //get out of the block\n        this.cursor.insLeftOf(parent.parent);\n      }\n      break;\n\n    // Prevent newlines from showing up\n    case 'Enter': break;\n\n\n    // End -> move to the end of the current block.\n    case 'End':\n      this.cursor.prepareMove().insAtRightEnd(this.cursor.parent);\n      break;\n\n    // Ctrl-End -> move all the way to the end of the root block.\n    case 'Ctrl-End':\n      this.cursor.prepareMove().insAtRightEnd(this);\n      break;\n\n    // Shift-End -> select to the end of the current block.\n    case 'Shift-End':\n      while (this.cursor[R]) {\n        this.cursor.selectRight();\n      }\n      break;\n\n    // Ctrl-Shift-End -> select to the end of the root block.\n    case 'Ctrl-Shift-End':\n      while (this.cursor[R] || this.cursor.parent !== this) {\n        this.cursor.selectRight();\n      }\n      break;\n\n    // Home -> move to the start of the root block or the current block.\n    case 'Home':\n      this.cursor.prepareMove().insAtLeftEnd(this.cursor.parent);\n      break;\n\n    // Ctrl-Home -> move to the start of the current block.\n    case 'Ctrl-Home':\n      this.cursor.prepareMove().insAtLeftEnd(this);\n      break;\n\n    // Shift-Home -> select to the start of the current block.\n    case 'Shift-Home':\n      while (this.cursor[L]) {\n        this.cursor.selectLeft();\n      }\n      break;\n\n    // Ctrl-Shift-Home -> move to the start of the root block.\n    case 'Ctrl-Shift-Home':\n      while (this.cursor[L] || this.cursor.parent !== this) {\n        this.cursor.selectLeft();\n      }\n      break;\n\n    case 'Left': this.cursor.moveLeft(); break;\n    case 'Shift-Left': this.cursor.selectLeft(); break;\n    case 'Ctrl-Left': break;\n\n    case 'Right': this.cursor.moveRight(); break;\n    case 'Shift-Right': this.cursor.selectRight(); break;\n    case 'Ctrl-Right': break;\n\n    case 'Up': this.cursor.moveUp(); break;\n    case 'Down': this.cursor.moveDown(); break;\n\n    case 'Shift-Up':\n      if (this.cursor[L]) {\n        while (this.cursor[L]) this.cursor.selectLeft();\n      } else {\n        this.cursor.selectLeft();\n      }\n\n    case 'Shift-Down':\n      if (this.cursor[R]) {\n        while (this.cursor[R]) this.cursor.selectRight();\n      }\n      else {\n        this.cursor.selectRight();\n      }\n\n    case 'Ctrl-Up': break;\n    case 'Ctrl-Down': break;\n\n    case 'Ctrl-Shift-Del':\n    case 'Ctrl-Del':\n      while (this.cursor[R] || this.cursor.selection) {\n        this.cursor.deleteForward();\n      }\n      break;\n\n    case 'Shift-Del':\n    case 'Del':\n      this.cursor.deleteForward();\n      break;\n\n    case 'Meta-A':\n    case 'Ctrl-A':\n      //so not stopPropagation'd at RootMathCommand\n      if (this !== this.cursor.root) return;\n\n      this.cursor.prepareMove().insAtRightEnd(this);\n      while (this.cursor[L]) this.cursor.selectLeft();\n      break;\n\n    default:\n      return false;\n    }\n    e.preventDefault();\n    return false;\n  };\n  _.onText = function(ch) {\n    this.cursor.write(ch);\n    return false;\n  };\n});\n\nvar RootMathCommand = P(MathCommand, function(_, _super) {\n  _.init = function(cursor) {\n    _super.init.call(this, '$');\n    this.cursor = cursor;\n  };\n  _.htmlTemplate = '<span class=\"mathquill-rendered-math\">&0</span>';\n  _.createBlocks = function() {\n    this.ends[L] =\n    this.ends[R] =\n      RootMathBlock();\n\n    this.blocks = [ this.ends[L] ];\n\n    this.ends[L].parent = this;\n\n    this.ends[L].cursor = this.cursor;\n    this.ends[L].write = function(cursor, ch, replacedFragment) {\n      if (ch !== '$')\n        MathBlock.prototype.write.call(this, cursor, ch, replacedFragment);\n      else if (this.isEmpty()) {\n        cursor.insRightOf(this.parent).backspace().show();\n        VanillaSymbol('\\\\$','$').createLeftOf(cursor);\n      }\n      else if (!cursor[R])\n        cursor.insRightOf(this.parent);\n      else if (!cursor[L])\n        cursor.insLeftOf(this.parent);\n      else\n        MathBlock.prototype.write.call(this, cursor, ch, replacedFragment);\n    };\n  };\n  _.latex = function() {\n    return '$' + this.ends[L].latex() + '$';\n  };\n});\n\nvar RootTextBlock = P(MathBlock, function(_) {\n  _.renderLatex = function(latex) {\n    var self = this;\n    var cursor = self.cursor;\n    self.jQ.children().slice(1).remove();\n    self.ends[L] = self.ends[R] = 0;\n    delete cursor.selection;\n    cursor.show().insAtRightEnd(self);\n\n    var regex = Parser.regex;\n    var string = Parser.string;\n    var eof = Parser.eof;\n    var all = Parser.all;\n\n    // Parser RootMathCommand\n    var mathMode = string('$').then(latexMathParser)\n      // because TeX is insane, math mode doesn't necessarily\n      // have to end.  So we allow for the case that math mode\n      // continues to the end of the stream.\n      .skip(string('$').or(eof))\n      .map(function(block) {\n        // HACK FIXME: this shouldn't have to have access to cursor\n        var rootMathCommand = RootMathCommand(cursor);\n\n        rootMathCommand.createBlocks();\n        var rootMathBlock = rootMathCommand.ends[L];\n        block.children().adopt(rootMathBlock, 0, 0);\n\n        return rootMathCommand;\n      })\n    ;\n\n    var escapedDollar = string('\\\\$').result('$');\n    var textChar = escapedDollar.or(regex(/^[^$]/)).map(VanillaSymbol);\n    var latexText = mathMode.or(textChar).many();\n    var commands = latexText.skip(eof).or(all.result(false)).parse(latex);\n\n    if (commands) {\n      for (var i = 0; i < commands.length; i += 1) {\n        commands[i].adopt(self, self.ends[R], 0);\n      }\n\n      var html = self.join('html');\n      MathElement.jQize(html).appendTo(self.jQ);\n\n      this.finalizeInsert();\n    }\n  };\n  _.onKey = function(key) {\n    if (key === 'Spacebar' || key === 'Shift-Spacebar') return;\n    RootMathBlock.prototype.onKey.apply(this, arguments);\n  };\n  _.onText = RootMathBlock.prototype.onText;\n  _.write = function(cursor, ch, replacedFragment) {\n    if (replacedFragment) replacedFragment.remove();\n    if (ch === '$')\n      RootMathCommand(cursor).createLeftOf(cursor);\n    else {\n      var html;\n      if (ch === '<') html = '&lt;';\n      else if (ch === '>') html = '&gt;';\n      VanillaSymbol(ch, html).createLeftOf(cursor);\n    }\n  };\n});\n/***************************\n * Commands and Operators.\n **************************/\n\nvar CharCmds = {}, LatexCmds = {}; //single character commands, LaTeX commands\n\nvar scale, // = function(jQ, x, y) { ... }\n//will use a CSS 2D transform to scale the jQuery-wrapped HTML elements,\n//or the filter matrix transform fallback for IE 5.5-8, or gracefully degrade to\n//increasing the fontSize to match the vertical Y scaling factor.\n\n//ideas from http://github.com/louisremi/jquery.transform.js\n//see also http://msdn.microsoft.com/en-us/library/ms533014(v=vs.85).aspx\n\n  forceIERedraw = noop,\n  div = document.createElement('div'),\n  div_style = div.style,\n  transformPropNames = {\n    transform:1,\n    WebkitTransform:1,\n    MozTransform:1,\n    OTransform:1,\n    msTransform:1\n  },\n  transformPropName;\n\nfor (var prop in transformPropNames) {\n  if (prop in div_style) {\n    transformPropName = prop;\n    break;\n  }\n}\n\nif (transformPropName) {\n  scale = function(jQ, x, y) {\n    jQ.css(transformPropName, 'scale('+x+','+y+')');\n  };\n}\nelse if ('filter' in div_style) { //IE 6, 7, & 8 fallback, see https://github.com/laughinghan/mathquill/wiki/Transforms\n  forceIERedraw = function(el){ el.className = el.className; };\n  scale = function(jQ, x, y) { //NOTE: assumes y > x\n    x /= (1+(y-1)/2);\n    jQ.css('fontSize', y + 'em');\n    if (!jQ.hasClass('matrixed-container')) {\n      jQ.addClass('matrixed-container')\n      .wrapInner('<span class=\"matrixed\"></span>');\n    }\n    var innerjQ = jQ.children()\n    .css('filter', 'progid:DXImageTransform.Microsoft'\n        + '.Matrix(M11=' + x + \",SizingMethod='auto expand')\"\n    );\n    function calculateMarginRight() {\n      jQ.css('marginRight', (innerjQ.width()-1)*(x-1)/x + 'px');\n    }\n    calculateMarginRight();\n    var intervalId = setInterval(calculateMarginRight);\n    $(window).load(function() {\n      clearTimeout(intervalId);\n      calculateMarginRight();\n    });\n  };\n}\nelse {\n  scale = function(jQ, x, y) {\n    jQ.css('fontSize', y + 'em');\n  };\n}\n\nvar Style = P(MathCommand, function(_, _super) {\n  _.init = function(ctrlSeq, tagName, attrs) {\n    _super.init.call(this, ctrlSeq, '<'+tagName+' '+attrs+'>&0</'+tagName+'>');\n  };\n});\n\n//fonts\nLatexCmds.mathrm = bind(Style, '\\\\mathrm', 'span', 'class=\"roman font\"');\nLatexCmds.mathit = bind(Style, '\\\\mathit', 'i', 'class=\"font\"');\nLatexCmds.mathbf = bind(Style, '\\\\mathbf', 'b', 'class=\"font\"');\nLatexCmds.mathsf = bind(Style, '\\\\mathsf', 'span', 'class=\"sans-serif font\"');\nLatexCmds.mathtt = bind(Style, '\\\\mathtt', 'span', 'class=\"monospace font\"');\n//text-decoration\nLatexCmds.underline = bind(Style, '\\\\underline', 'span', 'class=\"non-leaf underline\"');\nLatexCmds.overline = LatexCmds.bar = bind(Style, '\\\\overline', 'span', 'class=\"non-leaf overline\"');\n\nvar SupSub = P(MathCommand, function(_, _super) {\n  _.init = function(ctrlSeq, tag, text) {\n    _super.init.call(this, ctrlSeq, '<'+tag+' class=\"non-leaf\">&0</'+tag+'>', [ text ]);\n  };\n  _.finalizeTree = function() {\n    //TODO: use inheritance\n    pray('SupSub is only _ and ^',\n      this.ctrlSeq === '^' || this.ctrlSeq === '_'\n    );\n\n    if (this.ctrlSeq === '_') {\n      this.down = this.ends[L];\n      this.ends[L].up = insLeftOfMeUnlessAtEnd;\n    }\n    else {\n      this.up = this.ends[L];\n      this.ends[L].down = insLeftOfMeUnlessAtEnd;\n    }\n    function insLeftOfMeUnlessAtEnd(cursor) {\n      // cursor.insLeftOf(cmd), unless cursor at the end of block, and every\n      // ancestor cmd is at the end of every ancestor block\n      var cmd = this.parent, ancestorCmd = cursor;\n      do {\n        if (ancestorCmd[R]) {\n          cursor.insLeftOf(cmd);\n          return false;\n        }\n        ancestorCmd = ancestorCmd.parent.parent;\n      } while (ancestorCmd !== cmd);\n      cursor.insRightOf(cmd);\n      return false;\n    }\n  };\n  _.latex = function() {\n    var latex = this.ends[L].latex();\n    if (latex.length === 1)\n      return this.ctrlSeq + latex;\n    else\n      return this.ctrlSeq + '{' + (latex || ' ') + '}';\n  };\n  _.redraw = function() {\n    if (this[L])\n      this[L].respace();\n    //SupSub::respace recursively calls respace on all the following SupSubs\n    //so if leftward is a SupSub, no need to call respace on this or following nodes\n    if (!(this[L] instanceof SupSub)) {\n      this.respace();\n      //and if rightward is a SupSub, then this.respace() will have already called\n      //this[R].respace()\n      if (this[R] && !(this[R] instanceof SupSub))\n        this[R].respace();\n    }\n  };\n  _.respace = function() {\n    if (\n      this[L].ctrlSeq === '\\\\int ' || (\n        this[L] instanceof SupSub && this[L].ctrlSeq != this.ctrlSeq\n        && this[L][L] && this[L][L].ctrlSeq === '\\\\int '\n      )\n    ) {\n      if (!this.limit) {\n        this.limit = true;\n        this.jQ.addClass('limit');\n      }\n    }\n    else {\n      if (this.limit) {\n        this.limit = false;\n        this.jQ.removeClass('limit');\n      }\n    }\n\n    this.respaced = this[L] instanceof SupSub && this[L].ctrlSeq != this.ctrlSeq && !this[L].respaced;\n    if (this.respaced) {\n      var fontSize = +this.jQ.css('fontSize').slice(0,-2),\n        leftWidth = this[L].jQ.outerWidth(),\n        thisWidth = this.jQ.outerWidth();\n      this.jQ.css({\n        left: (this.limit && this.ctrlSeq === '_' ? -.25 : 0) - leftWidth/fontSize + 'em',\n        marginRight: .1 - min(thisWidth, leftWidth)/fontSize + 'em'\n          //1px extra so it doesn't wrap in retarded browsers (Firefox 2, I think)\n      });\n    }\n    else if (this.limit && this.ctrlSeq === '_') {\n      this.jQ.css({\n        left: '-.25em',\n        marginRight: ''\n      });\n    }\n    else {\n      this.jQ.css({\n        left: '',\n        marginRight: ''\n      });\n    }\n\n    if (this[R] instanceof SupSub)\n      this[R].respace();\n\n    return this;\n  };\n});\n\nLatexCmds.subscript =\nLatexCmds._ = bind(SupSub, '_', 'sub', '_');\n\nLatexCmds.superscript =\nLatexCmds.supscript =\nLatexCmds['^'] = bind(SupSub, '^', 'sup', '**');\n\nvar Fraction =\nLatexCmds.frac =\nLatexCmds.dfrac =\nLatexCmds.cfrac =\nLatexCmds.fraction = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\frac';\n  _.htmlTemplate =\n      '<span class=\"fraction non-leaf\">'\n    +   '<span class=\"numerator\">&0</span>'\n    +   '<span class=\"denominator\">&1</span>'\n    +   '<span style=\"display:inline-block;width:0\">&nbsp;</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['(', '/', ')'];\n  _.finalizeTree = function() {\n    this.up = this.ends[R].up = this.ends[L];\n    this.down = this.ends[L].down = this.ends[R];\n  };\n});\n\nvar LiveFraction =\nLatexCmds.over =\nCharCmds['/'] = P(Fraction, function(_, _super) {\n  _.createLeftOf = function(cursor) {\n    if (!this.replacedFragment) {\n      var leftward = cursor[L];\n      while (leftward &&\n        !(\n          leftward instanceof BinaryOperator ||\n          leftward instanceof TextBlock ||\n          leftward instanceof BigSymbol ||\n          ',;:'.split('').indexOf(leftward.ctrlSeq) > -1\n        ) //lookbehind for operator\n      )\n        leftward = leftward[L];\n\n      if (leftward instanceof BigSymbol && leftward[R] instanceof SupSub) {\n        leftward = leftward[R];\n        if (leftward[R] instanceof SupSub && leftward[R].ctrlSeq != leftward.ctrlSeq)\n          leftward = leftward[R];\n      }\n\n      if (leftward !== cursor[L]) {\n        this.replaces(MathFragment(leftward[R] || cursor.parent.ends[L], cursor[L]));\n        cursor[L] = leftward;\n      }\n    }\n    _super.createLeftOf.call(this, cursor);\n  };\n});\n\nvar SquareRoot =\nLatexCmds.sqrt =\nLatexCmds['√'] = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\sqrt';\n  _.htmlTemplate =\n      '<span class=\"non-leaf\">'\n    +   '<span class=\"scaled sqrt-prefix\">&radic;</span>'\n    +   '<span class=\"non-leaf sqrt-stem\">&0</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['sqrt(', ')'];\n  _.parser = function() {\n    return latexMathParser.optBlock.then(function(optBlock) {\n      return latexMathParser.block.map(function(block) {\n        var nthroot = NthRoot();\n        nthroot.blocks = [ optBlock, block ];\n        optBlock.adopt(nthroot, 0, 0);\n        block.adopt(nthroot, optBlock, 0);\n        return nthroot;\n      });\n    }).or(_super.parser.call(this));\n  };\n  _.redraw = function() {\n    var block = this.ends[R].jQ;\n    scale(block.prev(), 1, block.innerHeight()/+block.css('fontSize').slice(0,-2) - .1);\n  };\n});\n\nvar Vec = LatexCmds.vec = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\vec';\n  _.htmlTemplate =\n      '<span class=\"non-leaf\">'\n    +   '<span class=\"vector-prefix\">&rarr;</span>'\n    +   '<span class=\"vector-stem\">&0</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['vec(', ')'];\n});\n\nvar NthRoot =\nLatexCmds.nthroot = P(SquareRoot, function(_, _super) {\n  _.htmlTemplate =\n      '<sup class=\"nthroot non-leaf\">&0</sup>'\n    + '<span class=\"scaled\">'\n    +   '<span class=\"sqrt-prefix scaled\">&radic;</span>'\n    +   '<span class=\"sqrt-stem non-leaf\">&1</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['sqrt[', '](', ')'];\n  _.latex = function() {\n    return '\\\\sqrt['+this.ends[L].latex()+']{'+this.ends[R].latex()+'}';\n  };\n});\n\n// Round/Square/Curly/Angle Brackets (aka Parens/Brackets/Braces)\nvar Bracket = P(MathCommand, function(_, _super) {\n  _.init = function(open, close, ctrlSeq, end) {\n    _super.init.call(this, '\\\\left'+ctrlSeq,\n        '<span class=\"non-leaf\">'\n      +   '<span class=\"scaled paren\">'+open+'</span>'\n      +   '<span class=\"non-leaf\">&0</span>'\n      +   '<span class=\"scaled paren\">'+close+'</span>'\n      + '</span>',\n      [open, close]);\n    this.end = '\\\\right'+end;\n  };\n  _.jQadd = function() {\n    _super.jQadd.apply(this, arguments);\n    var jQ = this.jQ;\n    this.bracketjQs = jQ.children(':first').add(jQ.children(':last'));\n  };\n  _.latex = function() {\n    return this.ctrlSeq + this.ends[L].latex() + this.end;\n  };\n  _.redraw = function() {\n    var blockjQ = this.ends[L].jQ;\n\n    var height = blockjQ.outerHeight()/+blockjQ.css('fontSize').slice(0,-2);\n\n    scale(this.bracketjQs, min(1 + .2*(height - 1), 1.2), 1.05*height);\n  };\n});\n\nLatexCmds.left = P(MathCommand, function(_) {\n  _.parser = function() {\n    var regex = Parser.regex;\n    var string = Parser.string;\n    var succeed = Parser.succeed;\n    var optWhitespace = Parser.optWhitespace;\n\n    return optWhitespace.then(regex(/^(?:[([|]|\\\\\\{)/))\n      .then(function(open) {\n        if (open.charAt(0) === '\\\\') open = open.slice(1);\n\n        var cmd = CharCmds[open]();\n\n        return latexMathParser\n          .map(function (block) {\n            cmd.blocks = [ block ];\n            block.adopt(cmd, 0, 0);\n          })\n          .then(string('\\\\right'))\n          .skip(optWhitespace)\n          .then(regex(/^(?:[\\])|]|\\\\\\})/))\n          .then(function(close) {\n            if (close.slice(-1) !== cmd.end.slice(-1)) {\n              return Parser.fail('open doesn\\'t match close');\n            }\n\n            return succeed(cmd);\n          })\n        ;\n      })\n    ;\n  };\n});\n\nLatexCmds.right = P(MathCommand, function(_) {\n  _.parser = function() {\n    return Parser.fail('unmatched \\\\right');\n  };\n});\n\nLatexCmds.lbrace =\nCharCmds['{'] = bind(Bracket, '{', '}', '\\\\{', '\\\\}');\nLatexCmds.langle =\nLatexCmds.lang = bind(Bracket, '&lang;','&rang;','\\\\langle ','\\\\rangle ');\n\n// Closing bracket matching opening bracket above\nvar CloseBracket = P(Bracket, function(_, _super) {\n  _.createLeftOf = function(cursor) {\n    // if I'm at the end of my parent who is a matching open-paren,\n    // and I am not replacing a selection fragment, don't create me,\n    // just put cursor after my parent\n    if (!cursor[R] && cursor.parent.parent && cursor.parent.parent.end === this.end && !this.replacedFragment)\n      cursor.insRightOf(cursor.parent.parent);\n    else\n      _super.createLeftOf.call(this, cursor);\n  };\n  _.placeCursor = function(cursor) {\n    this.ends[L].blur();\n    cursor.insRightOf(this);\n  };\n});\n\nLatexCmds.rbrace =\nCharCmds['}'] = bind(CloseBracket, '{','}','\\\\{','\\\\}');\nLatexCmds.rangle =\nLatexCmds.rang = bind(CloseBracket, '&lang;','&rang;','\\\\langle ','\\\\rangle ');\n\nvar parenMixin = function(_, _super) {\n  _.init = function(open, close) {\n    _super.init.call(this, open, close, open, close);\n  };\n};\n\nvar Paren = P(Bracket, parenMixin);\n\nLatexCmds.lparen =\nCharCmds['('] = bind(Paren, '(', ')');\nLatexCmds.lbrack =\nLatexCmds.lbracket =\nCharCmds['['] = bind(Paren, '[', ']');\n\nvar CloseParen = P(CloseBracket, parenMixin);\n\nLatexCmds.rparen =\nCharCmds[')'] = bind(CloseParen, '(', ')');\nLatexCmds.rbrack =\nLatexCmds.rbracket =\nCharCmds[']'] = bind(CloseParen, '[', ']');\n\nvar Pipes =\nLatexCmds.lpipe =\nLatexCmds.rpipe =\nCharCmds['|'] = P(Paren, function(_, _super) {\n  _.init = function() {\n    _super.init.call(this, '|', '|');\n  };\n\n  _.createLeftOf = CloseBracket.prototype.createLeftOf;\n});\n\nvar TextBlock =\nCharCmds.$ =\nLatexCmds.text =\nLatexCmds.textnormal =\nLatexCmds.textrm =\nLatexCmds.textup =\nLatexCmds.textmd = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\text';\n  _.htmlTemplate = '<span class=\"text\">&0</span>';\n  _.replaces = function(replacedText) {\n    if (replacedText instanceof MathFragment)\n      this.replacedText = replacedText.remove().jQ.text();\n    else if (typeof replacedText === 'string')\n      this.replacedText = replacedText;\n  };\n  _.textTemplate = ['\"', '\"'];\n  _.parser = function() {\n    var self = this;\n\n    // TODO: correctly parse text mode\n    var string = Parser.string;\n    var regex = Parser.regex;\n    var optWhitespace = Parser.optWhitespace;\n    return optWhitespace\n      .then(string('{')).then(regex(/^[^}]*/)).skip(string('}'))\n      .map(function(text) {\n        self.createBlocks();\n        var block = self.ends[L];\n        for (var i = 0; i < text.length; i += 1) {\n          var ch = VanillaSymbol(text.charAt(i));\n          ch.adopt(block, block.ends[R], 0);\n        }\n        return self;\n      })\n    ;\n  };\n  _.createBlocks = function() {\n    //FIXME: another possible Law of Demeter violation, but this seems much cleaner, like it was supposed to be done this way\n    this.ends[L] =\n    this.ends[R] =\n      InnerTextBlock();\n\n    this.blocks = [ this.ends[L] ];\n\n    this.ends[L].parent = this;\n  };\n  _.finalizeInsert = function() {\n    //FIXME HACK blur removes the TextBlock\n    this.ends[L].blur = function() { delete this.blur; return this; };\n    _super.finalizeInsert.call(this);\n  };\n  _.createLeftOf = function(cursor) {\n    _super.createLeftOf.call(this, this.cursor = cursor);\n\n    if (this.replacedText)\n      for (var i = 0; i < this.replacedText.length; i += 1)\n        this.ends[L].write(cursor, this.replacedText.charAt(i));\n  };\n});\n\nvar InnerTextBlock = P(MathBlock, function(_, _super) {\n  _.onKey = function(key, e) {\n    if (key === 'Spacebar' || key === 'Shift-Spacebar') return false;\n  };\n  // backspace and delete at ends of block don't unwrap\n  _.deleteOutOf = function(dir, cursor) {\n    if (this.isEmpty()) cursor.insRightOf(this.parent);\n  };\n  _.write = function(cursor, ch, replacedFragment) {\n    if (replacedFragment) replacedFragment.remove();\n\n    if (ch !== '$') {\n      var html;\n      if (ch === '<') html = '&lt;';\n      else if (ch === '>') html = '&gt;';\n      VanillaSymbol(ch, html).createLeftOf(cursor);\n    }\n    else if (this.isEmpty()) {\n      cursor.insRightOf(this.parent).backspace();\n      VanillaSymbol('\\\\$','$').createLeftOf(cursor);\n    }\n    else if (!cursor[R])\n      cursor.insRightOf(this.parent);\n    else if (!cursor[L])\n      cursor.insLeftOf(this.parent);\n    else { //split apart\n      var rightward = TextBlock();\n      rightward.replaces(MathFragment(cursor[R], this.ends[R]));\n\n      cursor.insRightOf(this.parent);\n\n      // FIXME HACK: pretend no prev so they don't get merged when\n      // .createLeftOf() calls blur on the InnerTextBlock\n      rightward.adopt = function() {\n        delete this.adopt;\n        this.adopt.apply(this, arguments);\n        this[L] = 0;\n      };\n      rightward.createLeftOf(cursor);\n      rightward[L] = this.parent;\n\n      cursor.insLeftOf(rightward);\n    }\n    return false;\n  };\n  _.blur = function() {\n    this.jQ.removeClass('hasCursor');\n    if (this.isEmpty()) {\n      var textblock = this.parent, cursor = textblock.cursor;\n      if (cursor.parent === this)\n        this.jQ.addClass('empty');\n      else {\n        cursor.hide();\n        textblock.remove();\n        if (cursor[R] === textblock)\n          cursor[R] = textblock[R];\n        else if (cursor[L] === textblock)\n          cursor[L] = textblock[L];\n\n        cursor.show().parent.bubble('redraw');\n      }\n    }\n    return this;\n  };\n  _.focus = function() {\n    _super.focus.call(this);\n\n    var textblock = this.parent;\n    if (textblock[R].ctrlSeq === textblock.ctrlSeq) { //TODO: seems like there should be a better way to move MathElements around\n      var innerblock = this,\n        cursor = textblock.cursor,\n        rightward = textblock[R].ends[L];\n\n      rightward.eachChild(function(child){\n        child.parent = innerblock;\n        child.jQ.appendTo(innerblock.jQ);\n      });\n\n      if (this.ends[R])\n        this.ends[R][R] = rightward.ends[L];\n      else\n        this.ends[L] = rightward.ends[L];\n\n      rightward.ends[L][L] = this.ends[R];\n      this.ends[R] = rightward.ends[R];\n\n      rightward.parent.remove();\n\n      if (cursor[L])\n        cursor.insRightOf(cursor[L]);\n      else\n        cursor.insAtLeftEnd(this);\n\n      cursor.parent.bubble('redraw');\n    }\n    else if (textblock[L].ctrlSeq === textblock.ctrlSeq) {\n      var cursor = textblock.cursor;\n      if (cursor[L])\n        textblock[L].ends[L].focus();\n      else\n        cursor.insAtRightEnd(textblock[L].ends[L]);\n    }\n    return this;\n  };\n});\n\n\nfunction makeTextBlock(latex, tagName, attrs) {\n  return P(TextBlock, {\n    ctrlSeq: latex,\n    htmlTemplate: '<'+tagName+' '+attrs+'>&0</'+tagName+'>'\n  });\n}\n\nLatexCmds.em = LatexCmds.italic = LatexCmds.italics =\nLatexCmds.emph = LatexCmds.textit = LatexCmds.textsl =\n  makeTextBlock('\\\\textit', 'i', 'class=\"text\"');\nLatexCmds.strong = LatexCmds.bold = LatexCmds.textbf =\n  makeTextBlock('\\\\textbf', 'b', 'class=\"text\"');\nLatexCmds.sf = LatexCmds.textsf =\n  makeTextBlock('\\\\textsf', 'span', 'class=\"sans-serif text\"');\nLatexCmds.tt = LatexCmds.texttt =\n  makeTextBlock('\\\\texttt', 'span', 'class=\"monospace text\"');\nLatexCmds.textsc =\n  makeTextBlock('\\\\textsc', 'span', 'style=\"font-variant:small-caps\" class=\"text\"');\nLatexCmds.uppercase =\n  makeTextBlock('\\\\uppercase', 'span', 'style=\"text-transform:uppercase\" class=\"text\"');\nLatexCmds.lowercase =\n  makeTextBlock('\\\\lowercase', 'span', 'style=\"text-transform:lowercase\" class=\"text\"');\n\n// input box to type a variety of LaTeX commands beginning with a backslash\nvar LatexCommandInput =\nCharCmds['\\\\'] = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\';\n  _.replaces = function(replacedFragment) {\n    this._replacedFragment = replacedFragment.disown();\n    this.isEmpty = function() { return false; };\n  };\n  _.htmlTemplate = '<span class=\"latex-command-input non-leaf\">\\\\<span>&0</span></span>';\n  _.textTemplate = ['\\\\'];\n  _.createBlocks = function() {\n    _super.createBlocks.call(this);\n    this.ends[L].focus = function() {\n      this.parent.jQ.addClass('hasCursor');\n      if (this.isEmpty())\n        this.parent.jQ.removeClass('empty');\n\n      return this;\n    };\n    this.ends[L].blur = function() {\n      this.parent.jQ.removeClass('hasCursor');\n      if (this.isEmpty())\n        this.parent.jQ.addClass('empty');\n\n      return this;\n    };\n  };\n  _.createLeftOf = function(cursor) {\n    _super.createLeftOf.call(this, cursor);\n\n    this.cursor = cursor.insAtRightEnd(this.ends[L]);\n    if (this._replacedFragment) {\n      var el = this.jQ[0];\n      this.jQ =\n        this._replacedFragment.jQ.addClass('blur').bind(\n          'mousedown mousemove', //FIXME: is monkey-patching the mousedown and mousemove handlers the right way to do this?\n          function(e) {\n            $(e.target = el).trigger(e);\n            return false;\n          }\n        ).insertBefore(this.jQ).add(this.jQ);\n    }\n\n    this.ends[L].write = function(cursor, ch, replacedFragment) {\n      if (replacedFragment) replacedFragment.remove();\n\n      if (ch.match(/[a-z]/i)) VanillaSymbol(ch).createLeftOf(cursor);\n      else {\n        this.parent.renderCommand();\n        if (ch !== '\\\\' || !this.isEmpty()) this.parent.parent.write(cursor, ch);\n      }\n    };\n  };\n  _.latex = function() {\n    return '\\\\' + this.ends[L].latex() + ' ';\n  };\n  _.onKey = function(key, e) {\n    if (key === 'Tab' || key === 'Enter' || key === 'Spacebar') {\n      this.renderCommand();\n      e.preventDefault();\n      return false;\n    }\n  };\n  _.renderCommand = function() {\n    this.jQ = this.jQ.last();\n    this.remove();\n    if (this[R]) {\n      this.cursor.insLeftOf(this[R]);\n    } else {\n      this.cursor.insAtRightEnd(this.parent);\n    }\n\n    var latex = this.ends[L].latex(), cmd;\n    if (!latex) latex = 'backslash';\n    this.cursor.insertCmd(latex, this._replacedFragment);\n  };\n});\n\nvar Binomial =\nLatexCmds.binom =\nLatexCmds.binomial = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\binom';\n  _.htmlTemplate =\n      '<span class=\"paren scaled\">(</span>'\n    + '<span class=\"non-leaf\">'\n    +   '<span class=\"array non-leaf\">'\n    +     '<span>&0</span>'\n    +     '<span>&1</span>'\n    +   '</span>'\n    + '</span>'\n    + '<span class=\"paren scaled\">)</span>'\n  ;\n  _.textTemplate = ['choose(',',',')'];\n  _.redraw = function() {\n    var blockjQ = this.jQ.eq(1);\n\n    var height = blockjQ.outerHeight()/+blockjQ.css('fontSize').slice(0,-2);\n\n    var parens = this.jQ.filter('.paren');\n    scale(parens, min(1 + .2*(height - 1), 1.2), 1.05*height);\n  };\n});\n\nvar Choose =\nLatexCmds.choose = P(Binomial, function(_) {\n  _.createLeftOf = LiveFraction.prototype.createLeftOf;\n});\n\nvar Vector =\nLatexCmds.vector = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\vector';\n  _.htmlTemplate = '<span class=\"array\"><span>&0</span></span>';\n  _.latex = function() {\n    return '\\\\begin{matrix}' + this.foldChildren([], function(latex, child) {\n      latex.push(child.latex());\n      return latex;\n    }).join('\\\\\\\\') + '\\\\end{matrix}';\n  };\n  _.text = function() {\n    return '[' + this.foldChildren([], function(text, child) {\n      text.push(child.text());\n      return text;\n    }).join() + ']';\n  };\n  _.createLeftOf = function(cursor) {\n    _super.createLeftOf.call(this, this.cursor = cursor);\n  };\n  _.onKey = function(key, e) {\n    var currentBlock = this.cursor.parent;\n\n    if (currentBlock.parent === this) {\n      if (key === 'Enter') { //enter\n        var newBlock = MathBlock();\n        newBlock.parent = this;\n        newBlock.jQ = $('<span></span>')\n          .attr(mqBlockId, newBlock.id)\n          .insertAfter(currentBlock.jQ);\n        if (currentBlock[R])\n          currentBlock[R][L] = newBlock;\n        else\n          this.ends[R] = newBlock;\n\n        newBlock[R] = currentBlock[R];\n        currentBlock[R] = newBlock;\n        newBlock[L] = currentBlock;\n        this.bubble('redraw').cursor.insAtRightEnd(newBlock);\n\n        e.preventDefault();\n        return false;\n      }\n      else if (key === 'Tab' && !currentBlock[R]) {\n        if (currentBlock.isEmpty()) {\n          if (currentBlock[L]) {\n            this.cursor.insRightOf(this);\n            delete currentBlock[L][R];\n            this.ends[R] = currentBlock[L];\n            currentBlock.jQ.remove();\n            this.bubble('redraw');\n\n            e.preventDefault();\n            return false;\n          }\n          else\n            return;\n        }\n\n        var newBlock = MathBlock();\n        newBlock.parent = this;\n        newBlock.jQ = $('<span></span>').attr(mqBlockId, newBlock.id).appendTo(this.jQ);\n        this.ends[R] = newBlock;\n        currentBlock[R] = newBlock;\n        newBlock[L] = currentBlock;\n        this.bubble('redraw').cursor.insAtRightEnd(newBlock);\n\n        e.preventDefault();\n        return false;\n      }\n      else if (e.which === 8) { //backspace\n        if (currentBlock.isEmpty()) {\n          if (currentBlock[L]) {\n            this.cursor.insAtRightEnd(currentBlock[L])\n            currentBlock[L][R] = currentBlock[R];\n          }\n          else {\n            this.cursor.insLeftOf(this);\n            this.ends[L] = currentBlock[R];\n          }\n\n          if (currentBlock[R])\n            currentBlock[R][L] = currentBlock[L];\n          else\n            this.ends[R] = currentBlock[L];\n\n          currentBlock.jQ.remove();\n          if (this.isEmpty())\n            this.cursor.deleteForward();\n          else\n            this.bubble('redraw');\n\n          e.preventDefault();\n          return false;\n        }\n        else if (!this.cursor[L]) {\n          e.preventDefault();\n          return false;\n        }\n      }\n    }\n  };\n});\n\nLatexCmds.editable = P(RootMathCommand, function(_, _super) {\n  _.init = function() {\n    MathCommand.prototype.init.call(this, '\\\\editable');\n  };\n\n  _.jQadd = function() {\n    var self = this;\n    // FIXME: this entire method is a giant hack to get around\n    // having to call createBlocks, and createRoot expecting to\n    // render the contents' LaTeX. Both need to be refactored.\n    _super.jQadd.apply(self, arguments);\n    var block = self.ends[L].disown();\n    var blockjQ = self.jQ.children().detach();\n\n    self.ends[L] =\n    self.ends[R] =\n      RootMathBlock();\n\n    self.blocks = [ self.ends[L] ];\n\n    self.ends[L].parent = self;\n\n    createRoot(self.jQ, self.ends[L], false, true);\n    self.cursor = self.ends[L].cursor;\n\n    block.children().adopt(self.ends[L], 0, 0);\n    blockjQ.appendTo(self.ends[L].jQ);\n\n    self.ends[L].cursor.insAtRightEnd(self.ends[L]);\n  };\n\n  _.latex = function(){ return this.ends[L].latex(); };\n  _.text = function(){ return this.ends[L].text(); };\n});\n/**********************************\n * Symbols and Special Characters\n *********************************/\n\nLatexCmds.f = bind(Symbol, 'f', '<var class=\"florin\">&fnof;</var><span style=\"display:inline-block;width:0\">&nbsp;</span>');\n\nvar Variable = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<var>'+(html || ch)+'</var>');\n  };\n  _.text = function() {\n    var text = this.ctrlSeq;\n    if (this[L] && !(this[L] instanceof Variable)\n        && !(this[L] instanceof BinaryOperator))\n      text = '*' + text;\n    if (this[R] && !(this[R] instanceof BinaryOperator)\n        && !(this[R].ctrlSeq === '^'))\n      text += '*';\n    return text;\n  };\n});\n\nvar VanillaSymbol = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<span>'+(html || ch)+'</span>');\n  };\n});\n\nCharCmds[' '] = bind(VanillaSymbol, '\\\\:', ' ');\n\nLatexCmds.prime = CharCmds[\"'\"] = bind(VanillaSymbol, \"'\", '&prime;');\n\n// does not use Symbola font\nvar NonSymbolaSymbol = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<span class=\"nonSymbola\">'+(html || ch)+'</span>');\n  };\n});\n\nLatexCmds['@'] = NonSymbolaSymbol;\nLatexCmds['&'] = bind(NonSymbolaSymbol, '\\\\&', '&amp;');\nLatexCmds['%'] = bind(NonSymbolaSymbol, '\\\\%', '%');\n\n//the following are all Greek to me, but this helped a lot: http://www.ams.org/STIX/ion/stixsig03.html\n\n//lowercase Greek letter variables\nLatexCmds.alpha =\nLatexCmds.beta =\nLatexCmds.gamma =\nLatexCmds.delta =\nLatexCmds.zeta =\nLatexCmds.eta =\nLatexCmds.theta =\nLatexCmds.iota =\nLatexCmds.kappa =\nLatexCmds.mu =\nLatexCmds.nu =\nLatexCmds.xi =\nLatexCmds.rho =\nLatexCmds.sigma =\nLatexCmds.tau =\nLatexCmds.chi =\nLatexCmds.psi =\nLatexCmds.omega = P(Variable, function(_, _super) {\n  _.init = function(latex) {\n    _super.init.call(this,'\\\\'+latex+' ','&'+latex+';');\n  };\n});\n\n//why can't anybody FUCKING agree on these\nLatexCmds.phi = //W3C or Unicode?\n  bind(Variable,'\\\\phi ','&#981;');\n\nLatexCmds.phiv = //Elsevier and 9573-13\nLatexCmds.varphi = //AMS and LaTeX\n  bind(Variable,'\\\\varphi ','&phi;');\n\nLatexCmds.epsilon = //W3C or Unicode?\n  bind(Variable,'\\\\epsilon ','&#1013;');\n\nLatexCmds.epsiv = //Elsevier and 9573-13\nLatexCmds.varepsilon = //AMS and LaTeX\n  bind(Variable,'\\\\varepsilon ','&epsilon;');\n\nLatexCmds.piv = //W3C/Unicode and Elsevier and 9573-13\nLatexCmds.varpi = //AMS and LaTeX\n  bind(Variable,'\\\\varpi ','&piv;');\n\nLatexCmds.sigmaf = //W3C/Unicode\nLatexCmds.sigmav = //Elsevier\nLatexCmds.varsigma = //LaTeX\n  bind(Variable,'\\\\varsigma ','&sigmaf;');\n\nLatexCmds.thetav = //Elsevier and 9573-13\nLatexCmds.vartheta = //AMS and LaTeX\nLatexCmds.thetasym = //W3C/Unicode\n  bind(Variable,'\\\\vartheta ','&thetasym;');\n\nLatexCmds.upsilon = //AMS and LaTeX and W3C/Unicode\nLatexCmds.upsi = //Elsevier and 9573-13\n  bind(Variable,'\\\\upsilon ','&upsilon;');\n\n//these aren't even mentioned in the HTML character entity references\nLatexCmds.gammad = //Elsevier\nLatexCmds.Gammad = //9573-13 -- WTF, right? I dunno if this was a typo in the reference (see above)\nLatexCmds.digamma = //LaTeX\n  bind(Variable,'\\\\digamma ','&#989;');\n\nLatexCmds.kappav = //Elsevier\nLatexCmds.varkappa = //AMS and LaTeX\n  bind(Variable,'\\\\varkappa ','&#1008;');\n\nLatexCmds.rhov = //Elsevier and 9573-13\nLatexCmds.varrho = //AMS and LaTeX\n  bind(Variable,'\\\\varrho ','&#1009;');\n\n//Greek constants, look best in un-italicised Times New Roman\nLatexCmds.pi = LatexCmds['π'] = bind(NonSymbolaSymbol,'\\\\pi ','&pi;');\nLatexCmds.lambda = bind(NonSymbolaSymbol,'\\\\lambda ','&lambda;');\n\n//uppercase greek letters\n\nLatexCmds.Upsilon = //LaTeX\nLatexCmds.Upsi = //Elsevier and 9573-13\nLatexCmds.upsih = //W3C/Unicode \"upsilon with hook\"\nLatexCmds.Upsih = //'cos it makes sense to me\n  bind(Symbol,'\\\\Upsilon ','<var style=\"font-family: serif\">&upsih;</var>'); //Symbola's 'upsilon with a hook' is a capital Y without hooks :(\n\n//other symbols with the same LaTeX command and HTML character entity reference\nLatexCmds.Gamma =\nLatexCmds.Delta =\nLatexCmds.Theta =\nLatexCmds.Lambda =\nLatexCmds.Xi =\nLatexCmds.Pi =\nLatexCmds.Sigma =\nLatexCmds.Phi =\nLatexCmds.Psi =\nLatexCmds.Omega =\nLatexCmds.forall = P(VanillaSymbol, function(_, _super) {\n  _.init = function(latex) {\n    _super.init.call(this,'\\\\'+latex+' ','&'+latex+';');\n  };\n});\n\n// symbols that aren't a single MathCommand, but are instead a whole\n// Fragment. Creates the Fragment from a LaTeX string\nvar LatexFragment = P(MathCommand, function(_) {\n  _.init = function(latex) { this.latex = latex; };\n  _.createLeftOf = function(cursor) { cursor.writeLatex(this.latex); };\n  _.parser = function() {\n    var frag = latexMathParser.parse(this.latex).children();\n    return Parser.succeed(frag);\n  };\n});\n\n// for what seems to me like [stupid reasons][1], Unicode provides\n// subscripted and superscripted versions of all ten Arabic numerals,\n// as well as [so-called \"vulgar fractions\"][2].\n// Nobody really cares about most of them, but some of them actually\n// predate Unicode, dating back to [ISO-8859-1][3], apparently also\n// known as \"Latin-1\", which among other things [Windows-1252][4]\n// largely coincides with, so Microsoft Word sometimes inserts them\n// and they get copy-pasted into MathQuill.\n//\n// (Irrelevant but funny story: Windows-1252 is actually a strict\n// superset of the \"closely related but distinct\"[3] \"ISO 8859-1\" --\n// see the lack of a dash after \"ISO\"? Completely different character\n// set, like elephants vs elephant seals, or \"Zombies\" vs \"Zombie\n// Redneck Torture Family\". What kind of idiot would get them confused.\n// People in fact got them confused so much, it was so common to\n// mislabel Windows-1252 text as ISO-8859-1, that most modern web\n// browsers and email clients treat the MIME charset of ISO-8859-1\n// as actually Windows-1252, behavior now standard in the HTML5 spec.)\n//\n// [1]: http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts\n// [2]: http://en.wikipedia.org/wiki/Number_Forms\n// [3]: http://en.wikipedia.org/wiki/ISO/IEC_8859-1\n// [4]: http://en.wikipedia.org/wiki/Windows-1252\nLatexCmds['¹'] = bind(LatexFragment, '^1');\nLatexCmds['²'] = bind(LatexFragment, '^2');\nLatexCmds['³'] = bind(LatexFragment, '^3');\nLatexCmds['¼'] = bind(LatexFragment, '\\\\frac14');\nLatexCmds['½'] = bind(LatexFragment, '\\\\frac12');\nLatexCmds['¾'] = bind(LatexFragment, '\\\\frac34');\n\nvar BinaryOperator = P(Symbol, function(_, _super) {\n  _.init = function(ctrlSeq, html, text) {\n    _super.init.call(this,\n      ctrlSeq, '<span class=\"binary-operator\">'+html+'</span>', text\n    );\n  };\n});\n\nvar PlusMinus = P(BinaryOperator, function(_) {\n  _.init = VanillaSymbol.prototype.init;\n\n  _.respace = function() {\n    if (!this[L]) {\n      this.jQ[0].className = '';\n    }\n    else if (\n      this[L] instanceof BinaryOperator &&\n      this[R] && !(this[R] instanceof BinaryOperator)\n    ) {\n      this.jQ[0].className = 'unary-operator';\n    }\n    else {\n      this.jQ[0].className = 'binary-operator';\n    }\n    return this;\n  };\n});\n\nLatexCmds['+'] = bind(PlusMinus, '+', '+');\n//yes, these are different dashes, I think one is an en dash and the other is a hyphen\nLatexCmds['–'] = LatexCmds['-'] = bind(PlusMinus, '-', '&minus;');\nLatexCmds['±'] = LatexCmds.pm = LatexCmds.plusmn = LatexCmds.plusminus =\n  bind(PlusMinus,'\\\\pm ','&plusmn;');\nLatexCmds.mp = LatexCmds.mnplus = LatexCmds.minusplus =\n  bind(PlusMinus,'\\\\mp ','&#8723;');\n\nCharCmds['*'] = LatexCmds.sdot = LatexCmds.cdot =\n  bind(BinaryOperator, '\\\\cdot ', '&middot;');\n//semantically should be &sdot;, but &middot; looks better\n\nLatexCmds['='] = bind(BinaryOperator, '=', '=');\nLatexCmds['<'] = bind(BinaryOperator, '<', '&lt;');\nLatexCmds['>'] = bind(BinaryOperator, '>', '&gt;');\n\nLatexCmds.notin =\nLatexCmds.sim =\nLatexCmds.cong =\nLatexCmds.equiv =\nLatexCmds.oplus =\nLatexCmds.otimes = P(BinaryOperator, function(_, _super) {\n  _.init = function(latex) {\n    _super.init.call(this, '\\\\'+latex+' ', '&'+latex+';');\n  };\n});\n\nLatexCmds.times = bind(BinaryOperator, '\\\\times ', '&times;', '[x]');\n\nLatexCmds['÷'] = LatexCmds.div = LatexCmds.divide = LatexCmds.divides =\n  bind(BinaryOperator,'\\\\div ','&divide;', '[/]');\n\nLatexCmds['≠'] = LatexCmds.ne = LatexCmds.neq = bind(BinaryOperator,'\\\\ne ','&ne;');\n\nLatexCmds.ast = LatexCmds.star = LatexCmds.loast = LatexCmds.lowast =\n  bind(BinaryOperator,'\\\\ast ','&lowast;');\n  //case 'there4 = // a special exception for this one, perhaps?\nLatexCmds.therefor = LatexCmds.therefore =\n  bind(BinaryOperator,'\\\\therefore ','&there4;');\n\nLatexCmds.cuz = // l33t\nLatexCmds.because = bind(BinaryOperator,'\\\\because ','&#8757;');\n\nLatexCmds.prop = LatexCmds.propto = bind(BinaryOperator,'\\\\propto ','&prop;');\n\nLatexCmds['≈'] = LatexCmds.asymp = LatexCmds.approx = bind(BinaryOperator,'\\\\approx ','&asymp;');\n\nLatexCmds.lt = bind(BinaryOperator,'<','&lt;');\n\nLatexCmds.gt = bind(BinaryOperator,'>','&gt;');\n\nLatexCmds['≤'] = LatexCmds.le = LatexCmds.leq = bind(BinaryOperator,'\\\\le ','&le;');\n\nLatexCmds['≥'] = LatexCmds.ge = LatexCmds.geq = bind(BinaryOperator,'\\\\ge ','&ge;');\n\nLatexCmds.isin = LatexCmds['in'] = bind(BinaryOperator,'\\\\in ','&isin;');\n\nLatexCmds.ni = LatexCmds.contains = bind(BinaryOperator,'\\\\ni ','&ni;');\n\nLatexCmds.notni = LatexCmds.niton = LatexCmds.notcontains = LatexCmds.doesnotcontain =\n  bind(BinaryOperator,'\\\\not\\\\ni ','&#8716;');\n\nLatexCmds.sub = LatexCmds.subset = bind(BinaryOperator,'\\\\subset ','&sub;');\n\nLatexCmds.sup = LatexCmds.supset = LatexCmds.superset =\n  bind(BinaryOperator,'\\\\supset ','&sup;');\n\nLatexCmds.nsub = LatexCmds.notsub =\nLatexCmds.nsubset = LatexCmds.notsubset =\n  bind(BinaryOperator,'\\\\not\\\\subset ','&#8836;');\n\nLatexCmds.nsup = LatexCmds.notsup =\nLatexCmds.nsupset = LatexCmds.notsupset =\nLatexCmds.nsuperset = LatexCmds.notsuperset =\n  bind(BinaryOperator,'\\\\not\\\\supset ','&#8837;');\n\nLatexCmds.sube = LatexCmds.subeq = LatexCmds.subsete = LatexCmds.subseteq =\n  bind(BinaryOperator,'\\\\subseteq ','&sube;');\n\nLatexCmds.supe = LatexCmds.supeq =\nLatexCmds.supsete = LatexCmds.supseteq =\nLatexCmds.supersete = LatexCmds.superseteq =\n  bind(BinaryOperator,'\\\\supseteq ','&supe;');\n\nLatexCmds.nsube = LatexCmds.nsubeq =\nLatexCmds.notsube = LatexCmds.notsubeq =\nLatexCmds.nsubsete = LatexCmds.nsubseteq =\nLatexCmds.notsubsete = LatexCmds.notsubseteq =\n  bind(BinaryOperator,'\\\\not\\\\subseteq ','&#8840;');\n\nLatexCmds.nsupe = LatexCmds.nsupeq =\nLatexCmds.notsupe = LatexCmds.notsupeq =\nLatexCmds.nsupsete = LatexCmds.nsupseteq =\nLatexCmds.notsupsete = LatexCmds.notsupseteq =\nLatexCmds.nsupersete = LatexCmds.nsuperseteq =\nLatexCmds.notsupersete = LatexCmds.notsuperseteq =\n  bind(BinaryOperator,'\\\\not\\\\supseteq ','&#8841;');\n\n\n//sum, product, coproduct, integral\nvar BigSymbol = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<big>'+html+'</big>');\n  };\n});\n\nLatexCmds['∑'] = LatexCmds.sum = LatexCmds.summation = bind(BigSymbol,'\\\\sum ','&sum;');\nLatexCmds['∏'] = LatexCmds.prod = LatexCmds.product = bind(BigSymbol,'\\\\prod ','&prod;');\nLatexCmds.coprod = LatexCmds.coproduct = bind(BigSymbol,'\\\\coprod ','&#8720;');\nLatexCmds['∫'] = LatexCmds['int'] = LatexCmds.integral = bind(BigSymbol,'\\\\int ','&int;');\n\n\n\n//the canonical sets of numbers\nLatexCmds.N = LatexCmds.naturals = LatexCmds.Naturals =\n  bind(VanillaSymbol,'\\\\mathbb{N}','&#8469;');\n\nLatexCmds.P =\nLatexCmds.primes = LatexCmds.Primes =\nLatexCmds.projective = LatexCmds.Projective =\nLatexCmds.probability = LatexCmds.Probability =\n  bind(VanillaSymbol,'\\\\mathbb{P}','&#8473;');\n\nLatexCmds.Z = LatexCmds.integers = LatexCmds.Integers =\n  bind(VanillaSymbol,'\\\\mathbb{Z}','&#8484;');\n\nLatexCmds.Q = LatexCmds.rationals = LatexCmds.Rationals =\n  bind(VanillaSymbol,'\\\\mathbb{Q}','&#8474;');\n\nLatexCmds.R = LatexCmds.reals = LatexCmds.Reals =\n  bind(VanillaSymbol,'\\\\mathbb{R}','&#8477;');\n\nLatexCmds.C =\nLatexCmds.complex = LatexCmds.Complex =\nLatexCmds.complexes = LatexCmds.Complexes =\nLatexCmds.complexplane = LatexCmds.Complexplane = LatexCmds.ComplexPlane =\n  bind(VanillaSymbol,'\\\\mathbb{C}','&#8450;');\n\nLatexCmds.H = LatexCmds.Hamiltonian = LatexCmds.quaternions = LatexCmds.Quaternions =\n  bind(VanillaSymbol,'\\\\mathbb{H}','&#8461;');\n\n//spacing\nLatexCmds.quad = LatexCmds.emsp = bind(VanillaSymbol,'\\\\quad ','    ');\nLatexCmds.qquad = bind(VanillaSymbol,'\\\\qquad ','        ');\n/* spacing special characters, gonna have to implement this in LatexCommandInput::onText somehow\ncase ',':\n  return VanillaSymbol('\\\\, ',' ');\ncase ':':\n  return VanillaSymbol('\\\\: ','  ');\ncase ';':\n  return VanillaSymbol('\\\\; ','   ');\ncase '!':\n  return Symbol('\\\\! ','<span style=\"margin-right:-.2em\"></span>');\n*/\n\n//binary operators\nLatexCmds.diamond = bind(VanillaSymbol, '\\\\diamond ', '&#9671;');\nLatexCmds.bigtriangleup = bind(VanillaSymbol, '\\\\bigtriangleup ', '&#9651;');\nLatexCmds.ominus = bind(VanillaSymbol, '\\\\ominus ', '&#8854;');\nLatexCmds.uplus = bind(VanillaSymbol, '\\\\uplus ', '&#8846;');\nLatexCmds.bigtriangledown = bind(VanillaSymbol, '\\\\bigtriangledown ', '&#9661;');\nLatexCmds.sqcap = bind(VanillaSymbol, '\\\\sqcap ', '&#8851;');\nLatexCmds.triangleleft = bind(VanillaSymbol, '\\\\triangleleft ', '&#8882;');\nLatexCmds.sqcup = bind(VanillaSymbol, '\\\\sqcup ', '&#8852;');\nLatexCmds.triangleright = bind(VanillaSymbol, '\\\\triangleright ', '&#8883;');\nLatexCmds.odot = bind(VanillaSymbol, '\\\\odot ', '&#8857;');\nLatexCmds.bigcirc = bind(VanillaSymbol, '\\\\bigcirc ', '&#9711;');\nLatexCmds.dagger = bind(VanillaSymbol, '\\\\dagger ', '&#0134;');\nLatexCmds.ddagger = bind(VanillaSymbol, '\\\\ddagger ', '&#135;');\nLatexCmds.wr = bind(VanillaSymbol, '\\\\wr ', '&#8768;');\nLatexCmds.amalg = bind(VanillaSymbol, '\\\\amalg ', '&#8720;');\n\n//relationship symbols\nLatexCmds.models = bind(VanillaSymbol, '\\\\models ', '&#8872;');\nLatexCmds.prec = bind(VanillaSymbol, '\\\\prec ', '&#8826;');\nLatexCmds.succ = bind(VanillaSymbol, '\\\\succ ', '&#8827;');\nLatexCmds.preceq = bind(VanillaSymbol, '\\\\preceq ', '&#8828;');\nLatexCmds.succeq = bind(VanillaSymbol, '\\\\succeq ', '&#8829;');\nLatexCmds.simeq = bind(VanillaSymbol, '\\\\simeq ', '&#8771;');\nLatexCmds.mid = bind(VanillaSymbol, '\\\\mid ', '&#8739;');\nLatexCmds.ll = bind(VanillaSymbol, '\\\\ll ', '&#8810;');\nLatexCmds.gg = bind(VanillaSymbol, '\\\\gg ', '&#8811;');\nLatexCmds.parallel = bind(VanillaSymbol, '\\\\parallel ', '&#8741;');\nLatexCmds.bowtie = bind(VanillaSymbol, '\\\\bowtie ', '&#8904;');\nLatexCmds.sqsubset = bind(VanillaSymbol, '\\\\sqsubset ', '&#8847;');\nLatexCmds.sqsupset = bind(VanillaSymbol, '\\\\sqsupset ', '&#8848;');\nLatexCmds.smile = bind(VanillaSymbol, '\\\\smile ', '&#8995;');\nLatexCmds.sqsubseteq = bind(VanillaSymbol, '\\\\sqsubseteq ', '&#8849;');\nLatexCmds.sqsupseteq = bind(VanillaSymbol, '\\\\sqsupseteq ', '&#8850;');\nLatexCmds.doteq = bind(VanillaSymbol, '\\\\doteq ', '&#8784;');\nLatexCmds.frown = bind(VanillaSymbol, '\\\\frown ', '&#8994;');\nLatexCmds.vdash = bind(VanillaSymbol, '\\\\vdash ', '&#8870;');\nLatexCmds.dashv = bind(VanillaSymbol, '\\\\dashv ', '&#8867;');\n\n//arrows\nLatexCmds.longleftarrow = bind(VanillaSymbol, '\\\\longleftarrow ', '&#8592;');\nLatexCmds.longrightarrow = bind(VanillaSymbol, '\\\\longrightarrow ', '&#8594;');\nLatexCmds.Longleftarrow = bind(VanillaSymbol, '\\\\Longleftarrow ', '&#8656;');\nLatexCmds.Longrightarrow = bind(VanillaSymbol, '\\\\Longrightarrow ', '&#8658;');\nLatexCmds.longleftrightarrow = bind(VanillaSymbol, '\\\\longleftrightarrow ', '&#8596;');\nLatexCmds.updownarrow = bind(VanillaSymbol, '\\\\updownarrow ', '&#8597;');\nLatexCmds.Longleftrightarrow = bind(VanillaSymbol, '\\\\Longleftrightarrow ', '&#8660;');\nLatexCmds.Updownarrow = bind(VanillaSymbol, '\\\\Updownarrow ', '&#8661;');\nLatexCmds.mapsto = bind(VanillaSymbol, '\\\\mapsto ', '&#8614;');\nLatexCmds.nearrow = bind(VanillaSymbol, '\\\\nearrow ', '&#8599;');\nLatexCmds.hookleftarrow = bind(VanillaSymbol, '\\\\hookleftarrow ', '&#8617;');\nLatexCmds.hookrightarrow = bind(VanillaSymbol, '\\\\hookrightarrow ', '&#8618;');\nLatexCmds.searrow = bind(VanillaSymbol, '\\\\searrow ', '&#8600;');\nLatexCmds.leftharpoonup = bind(VanillaSymbol, '\\\\leftharpoonup ', '&#8636;');\nLatexCmds.rightharpoonup = bind(VanillaSymbol, '\\\\rightharpoonup ', '&#8640;');\nLatexCmds.swarrow = bind(VanillaSymbol, '\\\\swarrow ', '&#8601;');\nLatexCmds.leftharpoondown = bind(VanillaSymbol, '\\\\leftharpoondown ', '&#8637;');\nLatexCmds.rightharpoondown = bind(VanillaSymbol, '\\\\rightharpoondown ', '&#8641;');\nLatexCmds.nwarrow = bind(VanillaSymbol, '\\\\nwarrow ', '&#8598;');\n\n//Misc\nLatexCmds.ldots = bind(VanillaSymbol, '\\\\ldots ', '&#8230;');\nLatexCmds.cdots = bind(VanillaSymbol, '\\\\cdots ', '&#8943;');\nLatexCmds.vdots = bind(VanillaSymbol, '\\\\vdots ', '&#8942;');\nLatexCmds.ddots = bind(VanillaSymbol, '\\\\ddots ', '&#8944;');\nLatexCmds.surd = bind(VanillaSymbol, '\\\\surd ', '&#8730;');\nLatexCmds.triangle = bind(VanillaSymbol, '\\\\triangle ', '&#9653;');\nLatexCmds.ell = bind(VanillaSymbol, '\\\\ell ', '&#8467;');\nLatexCmds.top = bind(VanillaSymbol, '\\\\top ', '&#8868;');\nLatexCmds.flat = bind(VanillaSymbol, '\\\\flat ', '&#9837;');\nLatexCmds.natural = bind(VanillaSymbol, '\\\\natural ', '&#9838;');\nLatexCmds.sharp = bind(VanillaSymbol, '\\\\sharp ', '&#9839;');\nLatexCmds.wp = bind(VanillaSymbol, '\\\\wp ', '&#8472;');\nLatexCmds.bot = bind(VanillaSymbol, '\\\\bot ', '&#8869;');\nLatexCmds.clubsuit = bind(VanillaSymbol, '\\\\clubsuit ', '&#9827;');\nLatexCmds.diamondsuit = bind(VanillaSymbol, '\\\\diamondsuit ', '&#9826;');\nLatexCmds.heartsuit = bind(VanillaSymbol, '\\\\heartsuit ', '&#9825;');\nLatexCmds.spadesuit = bind(VanillaSymbol, '\\\\spadesuit ', '&#9824;');\n\n//variable-sized\nLatexCmds.oint = bind(VanillaSymbol, '\\\\oint ', '&#8750;');\nLatexCmds.bigcap = bind(VanillaSymbol, '\\\\bigcap ', '&#8745;');\nLatexCmds.bigcup = bind(VanillaSymbol, '\\\\bigcup ', '&#8746;');\nLatexCmds.bigsqcup = bind(VanillaSymbol, '\\\\bigsqcup ', '&#8852;');\nLatexCmds.bigvee = bind(VanillaSymbol, '\\\\bigvee ', '&#8744;');\nLatexCmds.bigwedge = bind(VanillaSymbol, '\\\\bigwedge ', '&#8743;');\nLatexCmds.bigodot = bind(VanillaSymbol, '\\\\bigodot ', '&#8857;');\nLatexCmds.bigotimes = bind(VanillaSymbol, '\\\\bigotimes ', '&#8855;');\nLatexCmds.bigoplus = bind(VanillaSymbol, '\\\\bigoplus ', '&#8853;');\nLatexCmds.biguplus = bind(VanillaSymbol, '\\\\biguplus ', '&#8846;');\n\n//delimiters\nLatexCmds.lfloor = bind(VanillaSymbol, '\\\\lfloor ', '&#8970;');\nLatexCmds.rfloor = bind(VanillaSymbol, '\\\\rfloor ', '&#8971;');\nLatexCmds.lceil = bind(VanillaSymbol, '\\\\lceil ', '&#8968;');\nLatexCmds.rceil = bind(VanillaSymbol, '\\\\rceil ', '&#8969;');\nLatexCmds.slash = bind(VanillaSymbol, '\\\\slash ', '&#47;');\nLatexCmds.opencurlybrace = bind(VanillaSymbol, '\\\\opencurlybrace ', '&#123;');\nLatexCmds.closecurlybrace = bind(VanillaSymbol, '\\\\closecurlybrace ', '&#125;');\n\n//various symbols\n\nLatexCmds.caret = bind(VanillaSymbol,'\\\\caret ','^');\nLatexCmds.underscore = bind(VanillaSymbol,'\\\\underscore ','_');\nLatexCmds.backslash = bind(VanillaSymbol,'\\\\backslash ','\\\\');\nLatexCmds.vert = bind(VanillaSymbol,'|');\nLatexCmds.perp = LatexCmds.perpendicular = bind(VanillaSymbol,'\\\\perp ','&perp;');\nLatexCmds.nabla = LatexCmds.del = bind(VanillaSymbol,'\\\\nabla ','&nabla;');\nLatexCmds.hbar = bind(VanillaSymbol,'\\\\hbar ','&#8463;');\n\nLatexCmds.AA = LatexCmds.Angstrom = LatexCmds.angstrom =\n  bind(VanillaSymbol,'\\\\text\\\\AA ','&#8491;');\n\nLatexCmds.ring = LatexCmds.circ = LatexCmds.circle =\n  bind(VanillaSymbol,'\\\\circ ','&#8728;');\n\nLatexCmds.bull = LatexCmds.bullet = bind(VanillaSymbol,'\\\\bullet ','&bull;');\n\nLatexCmds.setminus = LatexCmds.smallsetminus =\n  bind(VanillaSymbol,'\\\\setminus ','&#8726;');\n\nLatexCmds.not = //bind(Symbol,'\\\\not ','<span class=\"not\">/</span>');\nLatexCmds['¬'] = LatexCmds.neg = bind(VanillaSymbol,'\\\\neg ','&not;');\n\nLatexCmds['…'] = LatexCmds.dots = LatexCmds.ellip = LatexCmds.hellip =\nLatexCmds.ellipsis = LatexCmds.hellipsis =\n  bind(VanillaSymbol,'\\\\dots ','&hellip;');\n\nLatexCmds.converges =\nLatexCmds.darr = LatexCmds.dnarr = LatexCmds.dnarrow = LatexCmds.downarrow =\n  bind(VanillaSymbol,'\\\\downarrow ','&darr;');\n\nLatexCmds.dArr = LatexCmds.dnArr = LatexCmds.dnArrow = LatexCmds.Downarrow =\n  bind(VanillaSymbol,'\\\\Downarrow ','&dArr;');\n\nLatexCmds.diverges = LatexCmds.uarr = LatexCmds.uparrow =\n  bind(VanillaSymbol,'\\\\uparrow ','&uarr;');\n\nLatexCmds.uArr = LatexCmds.Uparrow = bind(VanillaSymbol,'\\\\Uparrow ','&uArr;');\n\nLatexCmds.to = bind(BinaryOperator,'\\\\to ','&rarr;');\n\nLatexCmds.rarr = LatexCmds.rightarrow = bind(VanillaSymbol,'\\\\rightarrow ','&rarr;');\n\nLatexCmds.implies = bind(BinaryOperator,'\\\\Rightarrow ','&rArr;');\n\nLatexCmds.rArr = LatexCmds.Rightarrow = bind(VanillaSymbol,'\\\\Rightarrow ','&rArr;');\n\nLatexCmds.gets = bind(BinaryOperator,'\\\\gets ','&larr;');\n\nLatexCmds.larr = LatexCmds.leftarrow = bind(VanillaSymbol,'\\\\leftarrow ','&larr;');\n\nLatexCmds.impliedby = bind(BinaryOperator,'\\\\Leftarrow ','&lArr;');\n\nLatexCmds.lArr = LatexCmds.Leftarrow = bind(VanillaSymbol,'\\\\Leftarrow ','&lArr;');\n\nLatexCmds.harr = LatexCmds.lrarr = LatexCmds.leftrightarrow =\n  bind(VanillaSymbol,'\\\\leftrightarrow ','&harr;');\n\nLatexCmds.iff = bind(BinaryOperator,'\\\\Leftrightarrow ','&hArr;');\n\nLatexCmds.hArr = LatexCmds.lrArr = LatexCmds.Leftrightarrow =\n  bind(VanillaSymbol,'\\\\Leftrightarrow ','&hArr;');\n\nLatexCmds.Re = LatexCmds.Real = LatexCmds.real = bind(VanillaSymbol,'\\\\Re ','&real;');\n\nLatexCmds.Im = LatexCmds.imag =\nLatexCmds.image = LatexCmds.imagin = LatexCmds.imaginary = LatexCmds.Imaginary =\n  bind(VanillaSymbol,'\\\\Im ','&image;');\n\nLatexCmds.part = LatexCmds.partial = bind(VanillaSymbol,'\\\\partial ','&part;');\n\nLatexCmds.inf = LatexCmds.infin = LatexCmds.infty = LatexCmds.infinity =\n  bind(VanillaSymbol,'\\\\infty ','&infin;');\n\nLatexCmds.alef = LatexCmds.alefsym = LatexCmds.aleph = LatexCmds.alephsym =\n  bind(VanillaSymbol,'\\\\aleph ','&alefsym;');\n\nLatexCmds.xist = //LOL\nLatexCmds.xists = LatexCmds.exist = LatexCmds.exists =\n  bind(VanillaSymbol,'\\\\exists ','&exist;');\n\nLatexCmds.and = LatexCmds.land = LatexCmds.wedge =\n  bind(VanillaSymbol,'\\\\wedge ','&and;');\n\nLatexCmds.or = LatexCmds.lor = LatexCmds.vee = bind(VanillaSymbol,'\\\\vee ','&or;');\n\nLatexCmds.o = LatexCmds.O =\nLatexCmds.empty = LatexCmds.emptyset =\nLatexCmds.oslash = LatexCmds.Oslash =\nLatexCmds.nothing = LatexCmds.varnothing =\n  bind(BinaryOperator,'\\\\varnothing ','&empty;');\n\nLatexCmds.cup = LatexCmds.union = bind(BinaryOperator,'\\\\cup ','&cup;');\n\nLatexCmds.cap = LatexCmds.intersect = LatexCmds.intersection =\n  bind(BinaryOperator,'\\\\cap ','&cap;');\n\nLatexCmds.deg = LatexCmds.degree = bind(VanillaSymbol,'^\\\\circ ','&deg;');\n\nLatexCmds.ang = LatexCmds.angle = bind(VanillaSymbol,'\\\\angle ','&ang;');\n\n\nvar NonItalicizedFunction = P(Symbol, function(_, _super) {\n  _.init = function(fn) {\n    _super.init.call(this, '\\\\'+fn+' ', '<span>'+fn+'</span>');\n  };\n  _.respace = function()\n  {\n    this.jQ[0].className =\n      (this[R] instanceof SupSub || this[R] instanceof Bracket) ?\n      '' : 'non-italicized-function';\n  };\n});\n\nLatexCmds.ln =\nLatexCmds.lg =\nLatexCmds.log =\nLatexCmds.span =\nLatexCmds.proj =\nLatexCmds.det =\nLatexCmds.dim =\nLatexCmds.min =\nLatexCmds.max =\nLatexCmds.mod =\nLatexCmds.lcm =\nLatexCmds.gcd =\nLatexCmds.gcf =\nLatexCmds.hcf =\nLatexCmds.lim = NonItalicizedFunction;\n\n(function() {\n  var trig = ['sin', 'cos', 'tan', 'sec', 'cosec', 'csc', 'cotan', 'cot'];\n  for (var i in trig) {\n    LatexCmds[trig[i]] =\n    LatexCmds[trig[i]+'h'] =\n    LatexCmds['a'+trig[i]] = LatexCmds['arc'+trig[i]] =\n    LatexCmds['a'+trig[i]+'h'] = LatexCmds['arc'+trig[i]+'h'] =\n      NonItalicizedFunction;\n  }\n}());\n\n// Parser MathCommand\nvar latexMathParser = (function() {\n  function commandToBlock(cmd) {\n    var block = MathBlock();\n    cmd.adopt(block, 0, 0);\n    return block;\n  }\n  function joinBlocks(blocks) {\n    var firstBlock = blocks[0] || MathBlock();\n\n    for (var i = 1; i < blocks.length; i += 1) {\n      blocks[i].children().adopt(firstBlock, firstBlock.ends[R], 0);\n    }\n\n    return firstBlock;\n  }\n\n  var string = Parser.string;\n  var regex = Parser.regex;\n  var letter = Parser.letter;\n  var any = Parser.any;\n  var optWhitespace = Parser.optWhitespace;\n  var succeed = Parser.succeed;\n  var fail = Parser.fail;\n\n  // Parsers yielding MathCommands\n  var variable = letter.map(Variable);\n  var symbol = regex(/^[^${}\\\\_^]/).map(VanillaSymbol);\n\n  var controlSequence =\n    regex(/^[^\\\\a-eg-zA-Z]/) // hotfix #164; match MathBlock::write\n    .or(string('\\\\').then(\n      regex(/^[a-z]+/i)\n      .or(regex(/^\\s+/).result(' '))\n      .or(any)\n    )).then(function(ctrlSeq) {\n      var cmdKlass = LatexCmds[ctrlSeq];\n\n      if (cmdKlass) {\n        return cmdKlass(ctrlSeq).parser();\n      }\n      else {\n        return fail('unknown command: \\\\'+ctrlSeq);\n      }\n    })\n  ;\n\n  var command =\n    controlSequence\n    .or(variable)\n    .or(symbol)\n  ;\n\n  // Parsers yielding MathBlocks\n  var mathGroup = string('{').then(function() { return mathSequence; }).skip(string('}'));\n  var mathBlock = optWhitespace.then(mathGroup.or(command.map(commandToBlock)));\n  var mathSequence = mathBlock.many().map(joinBlocks).skip(optWhitespace);\n\n  var optMathBlock =\n    string('[').then(\n      mathBlock.then(function(block) {\n        return block.join('latex') !== ']' ? succeed(block) : fail();\n      })\n      .many().map(joinBlocks).skip(optWhitespace)\n    ).skip(string(']'))\n  ;\n\n  var latexMath = mathSequence;\n\n  latexMath.block = mathBlock;\n  latexMath.optBlock = optMathBlock;\n  return latexMath;\n})();\n/********************************************\n * Cursor and Selection \"singleton\" classes\n *******************************************/\n\n/* The main thing that manipulates the Math DOM. Makes sure to manipulate the\nHTML DOM to match. */\n\n/* Sort of singletons, since there should only be one per editable math\ntextbox, but any one HTML document can contain many such textboxes, so any one\nJS environment could actually contain many instances. */\n\n//A fake cursor in the fake textbox that the math is rendered in.\nvar Cursor = P(Point, function(_) {\n  _.init = function(root) {\n    this.parent = this.root = root;\n    var jQ = this.jQ = this._jQ = $('<span class=\"cursor\">&zwj;</span>');\n\n    //closured for setInterval\n    this.blink = function(){ jQ.toggleClass('blink'); };\n\n    this.upDownCache = {};\n  };\n\n  _.show = function() {\n    this.jQ = this._jQ.removeClass('blink');\n    if ('intervalId' in this) //already was shown, just restart interval\n      clearInterval(this.intervalId);\n    else { //was hidden and detached, insert this.jQ back into HTML DOM\n      if (this[R]) {\n        if (this.selection && this.selection.ends[L][L] === this[L])\n          this.jQ.insertBefore(this.selection.jQ);\n        else\n          this.jQ.insertBefore(this[R].jQ.first());\n      }\n      else\n        this.jQ.appendTo(this.parent.jQ);\n      this.parent.focus();\n    }\n    this.intervalId = setInterval(this.blink, 500);\n    return this;\n  };\n  _.hide = function() {\n    if ('intervalId' in this)\n      clearInterval(this.intervalId);\n    delete this.intervalId;\n    this.jQ.detach();\n    this.jQ = $();\n    return this;\n  };\n\n  _.withDirInsertAt = function(dir, parent, withDir, oppDir) {\n    var oldParent = this.parent;\n    this.parent = parent;\n    this[dir] = withDir;\n    this[-dir] = oppDir;\n    oldParent.blur();\n  };\n  _.insDirOf = function(dir, el) {\n    prayDirection(dir);\n    this.withDirInsertAt(dir, el.parent, el[dir], el);\n    this.parent.jQ.addClass('hasCursor');\n    this.jQ.insDirOf(dir, el.jQ);\n    return this;\n  };\n  _.insLeftOf = function(el) { return this.insDirOf(L, el); };\n  _.insRightOf = function(el) { return this.insDirOf(R, el); };\n\n  _.insAtDirEnd = function(dir, el) {\n    prayDirection(dir);\n    this.withDirInsertAt(dir, el, 0, el.ends[dir]);\n\n    // never insert before textarea\n    if (dir === L && el.textarea) {\n      this.jQ.insDirOf(-dir, el.textarea);\n    }\n    else {\n      this.jQ.insAtDirEnd(dir, el.jQ);\n    }\n\n    el.focus();\n\n    return this;\n  };\n  _.insAtLeftEnd = function(el) { return this.insAtDirEnd(L, el); };\n  _.insAtRightEnd = function(el) { return this.insAtDirEnd(R, el); };\n\n  _.hopDir = function(dir) {\n    prayDirection(dir);\n\n    this.jQ.insDirOf(dir, this[dir].jQ);\n    this[-dir] = this[dir];\n    this[dir] = this[dir][dir];\n    return this;\n  };\n  _.hopLeft = function() { return this.hopDir(L); };\n  _.hopRight = function() { return this.hopDir(R); };\n\n  _.moveDirWithin = function(dir, block) {\n    prayDirection(dir);\n\n    if (this[dir]) {\n      if (this[dir].ends[-dir]) this.insAtDirEnd(-dir, this[dir].ends[-dir]);\n      else this.hopDir(dir);\n    }\n    else {\n      // we're at the beginning/end of the containing block, so do nothing\n      if (this.parent === block) return;\n\n      if (this.parent[dir]) this.insAtDirEnd(-dir, this.parent[dir]);\n      else this.insDirOf(dir, this.parent.parent);\n    }\n  };\n  _.moveLeftWithin = function(block) {\n    return this.moveDirWithin(L, block);\n  };\n  _.moveRightWithin = function(block) {\n    return this.moveDirWithin(R, block);\n  };\n  _.moveDir = function(dir) {\n    prayDirection(dir);\n\n    clearUpDownCache(this);\n\n    if (this.selection)  {\n      this.insDirOf(dir, this.selection.ends[dir]).clearSelection();\n    }\n    else {\n      this.moveDirWithin(dir, this.root);\n    }\n\n    return this.show();\n  };\n  _.moveLeft = function() { return this.moveDir(L); };\n  _.moveRight = function() { return this.moveDir(R); };\n\n  /**\n   * moveUp and moveDown have almost identical algorithms:\n   * - first check left and right, if so insAtLeft/RightEnd of them\n   * - else check the parent's 'up'/'down' property - if it's a function,\n   *   call it with the cursor as the sole argument and use the return value.\n   *\n   *   Given undefined, will bubble up to the next ancestor block.\n   *   Given false, will stop bubbling.\n   *   Given a MathBlock,\n   *     + moveUp will insAtRightEnd of it\n   *     + moveDown will insAtLeftEnd of it\n   *\n   */\n  _.moveUp = function() { return moveUpDown(this, 'up'); };\n  _.moveDown = function() { return moveUpDown(this, 'down'); };\n  function moveUpDown(self, dir) {\n    if (self[R][dir]) self.insAtLeftEnd(self[R][dir]);\n    else if (self[L][dir]) self.insAtRightEnd(self[L][dir]);\n    else {\n      var ancestorBlock = self.parent;\n      do {\n        var prop = ancestorBlock[dir];\n        if (prop) {\n          if (typeof prop === 'function') prop = ancestorBlock[dir](self);\n          if (prop === false || prop instanceof MathBlock) {\n            self.upDownCache[ancestorBlock.id] = Point(self.parent, self[L], self[R]);\n\n            if (prop instanceof MathBlock) {\n              var cached = self.upDownCache[prop.id];\n\n              if (cached) {\n                if (cached[R]) {\n                  self.insLeftOf(cached[R]);\n                } else {\n                  self.insAtRightEnd(cached.parent);\n                }\n              } else {\n                var pageX = offset(self).left;\n                self.insAtRightEnd(prop);\n                self.seekHoriz(pageX, prop);\n              }\n            }\n            break;\n          }\n        }\n        ancestorBlock = ancestorBlock.parent.parent;\n      } while (ancestorBlock);\n    }\n\n    return self.clearSelection().show();\n  }\n\n  _.seek = function(target, pageX, pageY) {\n    clearUpDownCache(this);\n    var cmd, block, cursor = this.clearSelection().show();\n    if (target.hasClass('empty')) {\n      cursor.insAtLeftEnd(MathElement[target.attr(mqBlockId)]);\n      return cursor;\n    }\n\n    cmd = MathElement[target.attr(mqCmdId)];\n    if (cmd instanceof Symbol) { //insert at whichever side is closer\n      if (target.outerWidth() > 2*(pageX - target.offset().left))\n        cursor.insLeftOf(cmd);\n      else\n        cursor.insRightOf(cmd);\n\n      return cursor;\n    }\n    if (!cmd) {\n      block = MathElement[target.attr(mqBlockId)];\n      if (!block) { //if no MathQuill data, try parent, if still no, just start from the root\n        target = target.parent();\n        cmd = MathElement[target.attr(mqCmdId)];\n        if (!cmd) {\n          block = MathElement[target.attr(mqBlockId)];\n          if (!block) block = cursor.root;\n        }\n      }\n    }\n\n    if (cmd)\n      cursor.insRightOf(cmd);\n    else\n      cursor.insAtRightEnd(block);\n\n    return cursor.seekHoriz(pageX, cursor.root);\n  };\n  _.seekHoriz = function(pageX, block) {\n    //move cursor to position closest to click\n    var cursor = this;\n    var dist = offset(cursor).left - pageX;\n    var leftDist;\n\n    do {\n      cursor.moveLeftWithin(block);\n      leftDist = dist;\n      dist = offset(cursor).left - pageX;\n    }\n    while (dist > 0 && (cursor[L] || cursor.parent !== block));\n\n    if (-dist > leftDist) cursor.moveRightWithin(block);\n\n    return cursor;\n  };\n  function offset(self) {\n    //in Opera 11.62, .getBoundingClientRect() and hence jQuery::offset()\n    //returns all 0's on inline elements with negative margin-right (like\n    //the cursor) at the end of their parent, so temporarily remove the\n    //negative margin-right when calling jQuery::offset()\n    //Opera bug DSK-360043\n    //http://bugs.jquery.com/ticket/11523\n    //https://github.com/jquery/jquery/pull/717\n    var offset = self.jQ.removeClass('cursor').offset();\n    self.jQ.addClass('cursor');\n    return offset;\n  }\n  _.writeLatex = function(latex) {\n    var self = this;\n    clearUpDownCache(self);\n    self.show().deleteSelection();\n\n    var all = Parser.all;\n    var eof = Parser.eof;\n\n    var block = latexMathParser.skip(eof).or(all.result(false)).parse(latex);\n\n    if (block) {\n      block.children().adopt(self.parent, self[L], self[R]);\n      MathElement.jQize(block.join('html')).insertBefore(self.jQ);\n      self[L] = block.ends[R];\n      block.finalizeInsert();\n      self.parent.bubble('redraw');\n    }\n\n    return this.hide();\n  };\n  _.write = function(ch) {\n    var seln = this.prepareWrite();\n    return this.insertCh(ch, seln);\n  };\n  _.insertCh = function(ch, replacedFragment) {\n    this.parent.write(this, ch, replacedFragment);\n    return this;\n  };\n  _.insertCmd = function(latexCmd, replacedFragment) {\n    var cmd = LatexCmds[latexCmd];\n    if (cmd) {\n      cmd = cmd(latexCmd);\n      if (replacedFragment) cmd.replaces(replacedFragment);\n      cmd.createLeftOf(this);\n    }\n    else {\n      cmd = TextBlock();\n      cmd.replaces(latexCmd);\n      cmd.ends[L].focus = function(){ delete this.focus; return this; };\n      cmd.createLeftOf(this);\n      this.insRightOf(cmd);\n      if (replacedFragment)\n        replacedFragment.remove();\n    }\n    return this;\n  };\n  _.unwrapGramp = function() {\n    var gramp = this.parent.parent;\n    var greatgramp = gramp.parent;\n    var rightward = gramp[R];\n    var cursor = this;\n\n    var leftward = gramp[L];\n    gramp.disown().eachChild(function(uncle) {\n      if (uncle.isEmpty()) return;\n\n      uncle.children()\n        .adopt(greatgramp, leftward, rightward)\n        .each(function(cousin) {\n          cousin.jQ.insertBefore(gramp.jQ.first());\n        })\n      ;\n\n      leftward = uncle.ends[R];\n    });\n\n    if (!this[R]) { //then find something to be rightward to insLeftOf\n      if (this[L])\n        this[R] = this[L][R];\n      else {\n        while (!this[R]) {\n          this.parent = this.parent[R];\n          if (this.parent)\n            this[R] = this.parent.ends[L];\n          else {\n            this[R] = gramp[R];\n            this.parent = greatgramp;\n            break;\n          }\n        }\n      }\n    }\n    if (this[R])\n      this.insLeftOf(this[R]);\n    else\n      this.insAtRightEnd(greatgramp);\n\n    gramp.jQ.remove();\n\n    if (gramp[L])\n      gramp[L].respace();\n    if (gramp[R])\n      gramp[R].respace();\n  };\n  _.deleteDir = function(dir) {\n    prayDirection(dir);\n    clearUpDownCache(this);\n    this.show();\n\n    if (this.deleteSelection()); // pass\n    else if (this[dir]) {\n      if (this[dir].isEmpty())\n        this[dir] = this[dir].remove()[dir];\n      else\n        this.selectDir(dir);\n    }\n    else if (this.parent !== this.root) {\n      if (this.parent.parent.isEmpty())\n        return this.insDirOf(-dir, this.parent.parent).deleteDir(dir);\n      else\n        this.unwrapGramp();\n    }\n\n    if (this[L])\n      this[L].respace();\n    if (this[R])\n      this[R].respace();\n    this.parent.bubble('redraw');\n\n    return this;\n  };\n  _.backspace = function() { return this.deleteDir(L); };\n  _.deleteForward = function() { return this.deleteDir(R); };\n  _.selectFrom = function(anticursor) {\n    //find ancestors of each with common parent\n    var oneA = this, otherA = anticursor; //one ancestor, the other ancestor\n    loopThroughAncestors: while (true) {\n      for (var oneI = this; oneI !== oneA.parent.parent; oneI = oneI.parent.parent) //one intermediate, the other intermediate\n        if (oneI.parent === otherA.parent) {\n          left = oneI;\n          right = otherA;\n          break loopThroughAncestors;\n        }\n\n      for (var otherI = anticursor; otherI !== otherA.parent.parent; otherI = otherI.parent.parent)\n        if (oneA.parent === otherI.parent) {\n          left = oneA;\n          right = otherI;\n          break loopThroughAncestors;\n        }\n\n      if (oneA.parent.parent)\n        oneA = oneA.parent.parent;\n      if (otherA.parent.parent)\n        otherA = otherA.parent.parent;\n    }\n    //figure out which is leftward and which is rightward\n    var left, right, leftRight;\n    if (left[R] !== right) {\n      for (var rightward = left; rightward; rightward = rightward[R]) {\n        if (rightward === right[L]) {\n          leftRight = true;\n          break;\n        }\n      }\n      if (!leftRight) {\n        leftRight = right;\n        right = left;\n        left = leftRight;\n      }\n    }\n    this.hide().selection = Selection(left[L][R] || left.parent.ends[L], right[R][L] || right.parent.ends[R]);\n    this.insRightOf(right[R][L] || right.parent.ends[R]);\n    this.root.selectionChanged();\n  };\n  _.selectDir = function(dir) {\n    prayDirection(dir);\n    clearUpDownCache(this);\n\n    if (this.selection) {\n      // if cursor is at the (dir) edge of selection\n      if (this.selection.ends[dir] === this[-dir]) {\n        // then extend (dir) if possible\n        if (this[dir]) this.hopDir(dir).selection.extendDir(dir);\n        // else level up if possible\n        else if (this.parent !== this.root) {\n          this.insDirOf(dir, this.parent.parent).selection.levelUp();\n        }\n      }\n      // else cursor is at the (-dir) edge of selection, retract if possible\n      else {\n        this.hopDir(dir);\n\n        // clear the selection if we only have one thing selected\n        if (this.selection.ends[dir] === this.selection.ends[-dir]) {\n          this.clearSelection().show();\n          return;\n        }\n\n        this.selection.retractDir(dir);\n      }\n    }\n    // no selection, create one\n    else {\n      if (this[dir]) this.hopDir(dir);\n      // else edge of a block\n      else {\n        if (this.parent === this.root) return;\n\n        this.insDirOf(dir, this.parent.parent);\n      }\n\n      this.hide().selection = Selection(this[-dir]);\n    }\n\n    this.root.selectionChanged();\n  };\n  _.selectLeft = function() { return this.selectDir(L); };\n  _.selectRight = function() { return this.selectDir(R); };\n\n  function clearUpDownCache(self) {\n    self.upDownCache = {};\n  }\n\n  _.prepareMove = function() {\n    clearUpDownCache(this);\n    return this.show().clearSelection();\n  };\n  _.prepareEdit = function() {\n    clearUpDownCache(this);\n    return this.show().deleteSelection();\n  };\n  _.prepareWrite = function() {\n    clearUpDownCache(this);\n    return this.show().replaceSelection();\n  };\n\n  _.clearSelection = function() {\n    if (this.selection) {\n      this.selection.clear();\n      delete this.selection;\n      this.root.selectionChanged();\n    }\n    return this;\n  };\n  _.deleteSelection = function() {\n    if (!this.selection) return false;\n\n    this[L] = this.selection.ends[L][L];\n    this[R] = this.selection.ends[R][R];\n    this.selection.remove();\n    this.root.selectionChanged();\n    return delete this.selection;\n  };\n  _.replaceSelection = function() {\n    var seln = this.selection;\n    if (seln) {\n      this[L] = seln.ends[L][L];\n      this[R] = seln.ends[R][R];\n      delete this.selection;\n    }\n    return seln;\n  };\n});\n\nvar Selection = P(MathFragment, function(_, _super) {\n  _.init = function() {\n    var frag = this;\n    _super.init.apply(frag, arguments);\n\n    frag.jQwrap(frag.jQ);\n  };\n  _.jQwrap = function(children) {\n    this.jQ = children.wrapAll('<span class=\"selection\"></span>').parent();\n      //can't do wrapAll(this.jQ = $(...)) because wrapAll will clone it\n  };\n  _.adopt = function() {\n    this.jQ.replaceWith(this.jQ = this.jQ.children());\n    return _super.adopt.apply(this, arguments);\n  };\n  _.clear = function() {\n    this.jQ.replaceWith(this.jQ.children());\n    return this;\n  };\n  _.levelUp = function() {\n    var seln = this,\n      gramp = seln.ends[L] = seln.ends[R] = seln.ends[R].parent.parent;\n    seln.clear().jQwrap(gramp.jQ);\n    return seln;\n  };\n  _.extendDir = function(dir) {\n    prayDirection(dir);\n    this.ends[dir] = this.ends[dir][dir];\n    this.ends[dir].jQ.insAtDirEnd(dir, this.jQ);\n    return this;\n  };\n  _.extendLeft = function() { return this.extendDir(L); };\n  _.extendRight = function() { return this.extendDir(R); };\n\n  _.retractDir = function(dir) {\n    prayDirection(dir);\n    this.ends[-dir].jQ.insDirOf(-dir, this.jQ);\n    this.ends[-dir] = this.ends[-dir][dir];\n  };\n  _.retractRight = function() { return this.retractDir(R); };\n  _.retractLeft = function() { return this.retractDir(L); };\n});\n/*********************************************************\n * The actual jQuery plugin and document ready handlers.\n ********************************************************/\n\n//The publicy exposed method of jQuery.prototype, available (and meant to be\n//called) on jQuery-wrapped HTML DOM elements.\njQuery.fn.mathquill = function(cmd, latex) {\n  switch (cmd) {\n  case 'redraw':\n    return this.each(function() {\n      var blockId = $(this).attr(mqBlockId),\n        rootBlock = blockId && MathElement[blockId];\n      if (rootBlock) {\n        (function postOrderRedraw(el) {\n          el.eachChild(postOrderRedraw);\n          if (el.redraw) el.redraw();\n        }(rootBlock));\n      }\n    });\n  case 'revert':\n    return this.each(function() {\n      var blockId = $(this).attr(mqBlockId),\n        block = blockId && MathElement[blockId];\n      if (block && block.revert)\n        block.revert();\n    });\n  case 'latex':\n    if (arguments.length > 1) {\n      return this.each(function() {\n        var blockId = $(this).attr(mqBlockId),\n          block = blockId && MathElement[blockId];\n        if (block)\n          block.renderLatex(latex);\n      });\n    }\n\n    var blockId = $(this).attr(mqBlockId),\n      block = blockId && MathElement[blockId];\n    return block && block.latex();\n  case 'text':\n    var blockId = $(this).attr(mqBlockId),\n      block = blockId && MathElement[blockId];\n    return block && block.text();\n  case 'html':\n    return this.html().replace(/ ?hasCursor|hasCursor /, '')\n      .replace(/ class=(\"\"|(?= |>))/g, '')\n      .replace(/<span class=\"?cursor( blink)?\"?><\\/span>/i, '')\n      .replace(/<span class=\"?textarea\"?><textarea><\\/textarea><\\/span>/i, '');\n  case 'write':\n    if (arguments.length > 1)\n      return this.each(function() {\n        var blockId = $(this).attr(mqBlockId),\n          block = blockId && MathElement[blockId],\n          cursor = block && block.cursor;\n\n        if (cursor)\n          cursor.writeLatex(latex).parent.blur();\n      });\n  case 'cmd':\n    if (arguments.length > 1)\n      return this.each(function() {\n        var blockId = $(this).attr(mqBlockId),\n          block = blockId && MathElement[blockId],\n          cursor = block && block.cursor;\n\n        if (cursor) {\n          var seln = cursor.prepareWrite();\n          if (/^\\\\[a-z]+$/i.test(latex)) cursor.insertCmd(latex.slice(1), seln);\n          else cursor.insertCh(latex, seln);\n          cursor.hide().parent.blur();\n        }\n      });\n  default:\n    var textbox = cmd === 'textbox',\n      editable = textbox || cmd === 'editable',\n      RootBlock = textbox ? RootTextBlock : RootMathBlock;\n    return this.each(function() {\n      createRoot($(this), RootBlock(), textbox, editable);\n    });\n  }\n};\n\n//on document ready, mathquill-ify all `<tag class=\"mathquill-*\">latex</tag>`\n//elements according to their CSS class.\njQuery(function() {\n  jQuery('.mathquill-editable:not(.mathquill-rendered-math)').mathquill('editable');\n  jQuery('.mathquill-textbox:not(.mathquill-rendered-math)').mathquill('textbox');\n  jQuery('.mathquill-embedded-latex').mathquill();\n});\n\n\n}());\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/umeditor.config.js",
    "content": "/**\n *  umeditor完整配置项\n *  可以在这里配置整个编辑器的特性\n */\n/**************************提示********************************\n * 所有被注释的配置项均为UEditor默认值。\n * 修改默认配置请首先确保已经完全明确该参数的真实用途。\n * 主要有两种修改方案，一种是取消此处注释，然后修改成对应参数；另一种是在实例化编辑器时传入对应参数。\n * 当升级编辑器时，可直接使用旧版配置文件替换新版配置文件,不用担心旧版配置文件中因缺少新功能所需的参数而导致脚本报错。\n **************************提示********************************/\n\n\n(function () {\n    /**\n     * 编辑器资源文件根路径。它所表示的含义是：以编辑器实例化页面为当前路径，指向编辑器资源文件（即dialog等文件夹）的路径。\n     * 鉴于很多同学在使用编辑器的时候出现的种种路径问题，此处强烈建议大家使用\"相对于网站根目录的相对路径\"进行配置。\n     * \"相对于网站根目录的相对路径\"也就是以斜杠开头的形如\"/myProject/umeditor/\"这样的路径。\n     * 如果站点中有多个不在同一层级的页面需要实例化编辑器，且引用了同一UEditor的时候，此处的URL可能不适用于每个页面的编辑器。\n     * 因此，UEditor提供了针对不同页面的编辑器可单独配置的根路径，具体来说，在需要实例化编辑器的页面最顶部写上如下代码即可。当然，需要令此处的URL等于对应的配置。\n     * window.UMEDITOR_HOME_URL = \"/xxxx/xxxx/\";\n     */\n    var URL = window.UMEDITOR_HOME_URL || (function(){\n\n        function PathStack() {\n\n            this.documentURL = self.document.URL || self.location.href;\n\n            this.separator = '/';\n            this.separatorPattern = /\\\\|\\//g;\n            this.currentDir = './';\n            this.currentDirPattern = /^[.]\\/]/;\n\n            this.path = this.documentURL;\n            this.stack = [];\n\n            this.push( this.documentURL );\n\n        }\n\n        PathStack.isParentPath = function( path ){\n            return path === '..';\n        };\n\n        PathStack.hasProtocol = function( path ){\n            return !!PathStack.getProtocol( path );\n        };\n\n        PathStack.getProtocol = function( path ){\n\n            var protocol = /^[^:]*:\\/*/.exec( path );\n\n            return protocol ? protocol[0] : null;\n\n        };\n\n        PathStack.prototype = {\n            push: function( path ){\n\n                this.path = path;\n\n                update.call( this );\n                parse.call( this );\n\n                return this;\n\n            },\n            getPath: function(){\n                return this + \"\";\n            },\n            toString: function(){\n                return this.protocol + ( this.stack.concat( [''] ) ).join( this.separator );\n            }\n        };\n\n        function update() {\n\n            var protocol = PathStack.getProtocol( this.path || '' );\n\n            if( protocol ) {\n\n                //根协议\n                this.protocol = protocol;\n\n                //local\n                this.localSeparator = /\\\\|\\//.exec( this.path.replace( protocol, '' ) )[0];\n\n                this.stack = [];\n            } else {\n                protocol = /\\\\|\\//.exec( this.path );\n                protocol && (this.localSeparator = protocol[0]);\n            }\n\n        }\n\n        function parse(){\n\n            var parsedStack = this.path.replace( this.currentDirPattern, '' );\n\n            if( PathStack.hasProtocol( this.path ) ) {\n                parsedStack = parsedStack.replace( this.protocol , '');\n            }\n\n            parsedStack = parsedStack.split( this.localSeparator );\n            parsedStack.length = parsedStack.length - 1;\n\n            for(var i= 0,tempPath,l=parsedStack.length,root = this.stack;i<l;i++){\n                tempPath = parsedStack[i];\n                if(tempPath){\n                    if( PathStack.isParentPath( tempPath ) ) {\n                        root.pop();\n                    } else {\n                        root.push( tempPath );\n                    }\n                }\n\n            }\n\n\n        }\n\n        var currentPath = document.getElementsByTagName('script');\n\n        currentPath = currentPath[ currentPath.length -1 ].src;\n\n        return new PathStack().push( currentPath ) + \"\";\n\n\n    })();\n\n    /**\n     * 配置项主体。注意，此处所有涉及到路径的配置别遗漏URL变量。\n     */\n    window.UMEDITOR_CONFIG = {\n\n        //为编辑器实例添加一个路径，这个不能被注释\n        UMEDITOR_HOME_URL : URL\n\n        //图片上传配置区\n//        ,imageUrl:URL+\"jsp/imageUp.jsp\"             //图片上传提交地址\n        ,imageUrl:$(\"#hdnContextPath\").val() + \"/file/upload.action\"\t\t\t\t\t// 图片上传路径现在自定义为系统本身的，这样图片就上传到了图片服务器\n        ,imagePath:URL + \"jsp/\"                     //图片修正地址，引用了fixedImagePath,如有特殊需求，可自行配置\n        ,imageFieldName:\"upfile\"                   //图片数据的key,若此处修改，需要在后台对应文件修改对应参数\n\n\n        //工具栏上的所有的功能按钮和下拉框，可以在new编辑器的实例时选择自己需要的从新定义\n//        ,toolbar:[\n//            'source | undo redo | bold italic underline strikethrough | superscript subscript | forecolor backcolor | removeformat |',\n//            'insertorderedlist insertunorderedlist | selectall cleardoc paragraph | fontfamily fontsize' ,\n//            '| justifyleft justifycenter justifyright justifyjustify |',\n//            'link unlink | emotion image video  | map',\n//            '| horizontal print preview fullscreen', 'drafts', 'formula'\n//        ]\n    \n    \t,toolbar:[\n              'source | undo redo | bold italic underline strikethrough | superscript subscript | forecolor backcolor | removeformat |',\n              'insertorderedlist insertunorderedlist | selectall cleardoc paragraph | fontfamily fontsize' ,\n              '| justifyleft justifycenter justifyright justifyjustify |',\n              'link unlink | emotion image video | fullscreen'\n          ]\n\n        //语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换，当然，前提条件是lang文件夹下存在对应的语言文件：\n        //lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase()\n        //,lang:\"zh-cn\"\n        //,langPath:URL +\"lang/\"\n\n        //ie下的链接自动监测\n        //,autourldetectinie:false\n\n        //主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换，当然，前提条件是themes文件夹下存在对应的主题文件：\n        //现有如下皮肤:default\n        //,theme:'default'\n        //,themePath:URL +\"themes/\"\n\n\n\n        //针对getAllHtml方法，会在对应的head标签中增加该编码设置。\n        //,charset:\"utf-8\"\n\n        //常用配置项目\n        //,isShow : true    //默认显示编辑器\n\n        //,initialContent:'欢迎使用UMEDITOR!'    //初始化编辑器的内容,也可以通过textarea/script给值，看官网例子\n\n        //,initialFrameWidth:500 //初始化编辑器宽度,默认500\n        //,initialFrameHeight:500  //初始化编辑器高度,默认500\n\n        //,autoClearinitialContent:true //是否自动清除编辑器初始内容，注意：如果focus属性设置为true,这个也为真，那么编辑器一上来就会触发导致初始化的内容看不到了\n\n        ,textarea:'html' // 提交表单时，服务器获取编辑器提交内容的所用的参数，多实例时可以给容器name属性，会将name给定的值最为每个实例的键值，不用每次实例化的时候都设置这个值\n\n        //,focus:false //初始化时，是否让编辑器获得焦点true或false\n\n        //,autoClearEmptyNode : true //getContent时，是否删除空的inlineElement节点（包括嵌套的情况）\n\n//        ,fullscreen : false //是否开启初始化时即全屏，默认关闭\n\n        //,readonly : false //编辑器初始化结束后,编辑区域是否是只读的，默认是false\n\n        ,zIndex : 10000     //编辑器层级的基数,默认是900\n\n        //如果自定义，最好给p标签如下的行高，要不输入中文时，会有跳动感\n        //注意这里添加的样式，最好放在.edui-editor-body .edui-body-container这两个的下边，防止跟页面上css冲突\n        //,initialStyle:'.edui-editor-body .edui-body-container p{line-height:1em}'\n\n        //,autoSyncData:true //自动同步编辑器要提交的数据\n\n        //,emotionLocalization:false //是否开启表情本地化，默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹\n\n        //,allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串\n\n        //fontfamily\n        //字体设置\n//        ,'fontfamily':[\n//              { name: 'songti', val: '宋体,SimSun'},\n//          ]\n\n        //fontsize\n        //字号\n        //,'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36]\n\n        //paragraph\n        //段落格式 值留空时支持多语言自动识别，若配置，则以配置值为准\n        //,'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''}\n\n        //undo\n        //可以最多回退的次数,默认20\n        //,maxUndoCount:20\n        //当输入的字符数超过该值时，保存一次现场\n        //,maxInputCount:1\n\n        //imageScaleEnabled\n        // 是否允许点击文件拖拽改变大小,默认true\n        ,imageScaleEnabled:false\n\n        //dropFileEnabled\n        // 是否允许拖放图片到编辑区域，上传并插入,默认true\n        //,dropFileEnabled:true\n\n        //pasteImageEnabled\n        // 是否允许粘贴QQ截屏，上传并插入,默认true\n        ,pasteImageEnabled:false\n\n        //autoHeightEnabled\n        // 是否自动长高,默认true\n        //,autoHeightEnabled:true\n\n        //autoFloatEnabled\n        //是否保持toolbar的位置不动,默认true\n        //,autoFloatEnabled:true\n\n        //浮动时工具栏距离浏览器顶部的高度，用于某些具有固定头部的页面\n        //,topOffset:30\n\n        //填写过滤规则\n        //,filterRules: {}\n    };\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/plugins/umeditor1_2_2-utf8-jsp/umeditor.js",
    "content": "/*!\n * UEditor Mini版本\n * version: 1.2.2\n * build: Wed Mar 19 2014 17:14:25 GMT+0800 (中国标准时间)\n */\n\n(function($){\n\nUMEDITOR_CONFIG = window.UMEDITOR_CONFIG || {};\n\nwindow.UM = {\n    plugins : {},\n\n    commands : {},\n\n    I18N : {},\n\n    version : \"1.2.2\"\n};\n\nvar dom = UM.dom = {};\n/**\n * 浏览器判断模块\n * @file\n * @module UE.browser\n * @since 1.2.6.1\n */\n\n/**\n * 提供浏览器检测的模块\n * @unfile\n * @module UE.browser\n */\nvar browser = UM.browser = function(){\n    var agent = navigator.userAgent.toLowerCase(),\n        opera = window.opera,\n        browser = {\n            /**\n             * @property {boolean} ie 检测当前浏览器是否为IE\n             * @example\n             * ```javascript\n             * if ( UE.browser.ie ) {\n         *     console.log( '当前浏览器是IE' );\n         * }\n             * ```\n             */\n            ie\t\t:  /(msie\\s|trident.*rv:)([\\w.]+)/.test(agent),\n\n            /**\n             * @property {boolean} opera 检测当前浏览器是否为Opera\n             * @example\n             * ```javascript\n             * if ( UE.browser.opera ) {\n         *     console.log( '当前浏览器是Opera' );\n         * }\n             * ```\n             */\n            opera\t: ( !!opera && opera.version ),\n\n            /**\n             * @property {boolean} webkit 检测当前浏览器是否是webkit内核的浏览器\n             * @example\n             * ```javascript\n             * if ( UE.browser.webkit ) {\n         *     console.log( '当前浏览器是webkit内核浏览器' );\n         * }\n             * ```\n             */\n            webkit\t: ( agent.indexOf( ' applewebkit/' ) > -1 ),\n\n            /**\n             * @property {boolean} mac 检测当前浏览器是否是运行在mac平台下\n             * @example\n             * ```javascript\n             * if ( UE.browser.mac ) {\n         *     console.log( '当前浏览器运行在mac平台下' );\n         * }\n             * ```\n             */\n            mac\t: ( agent.indexOf( 'macintosh' ) > -1 ),\n\n            /**\n             * @property {boolean} quirks 检测当前浏览器是否处于“怪异模式”下\n             * @example\n             * ```javascript\n             * if ( UE.browser.quirks ) {\n         *     console.log( '当前浏览器运行处于“怪异模式”' );\n         * }\n             * ```\n             */\n            quirks : ( document.compatMode == 'BackCompat' )\n        };\n\n    /**\n     * @property {boolean} gecko 检测当前浏览器内核是否是gecko内核\n     * @example\n     * ```javascript\n     * if ( UE.browser.gecko ) {\n    *     console.log( '当前浏览器内核是gecko内核' );\n    * }\n     * ```\n     */\n    browser.gecko =( navigator.product == 'Gecko' && !browser.webkit && !browser.opera && !browser.ie);\n\n    var version = 0;\n\n    // Internet Explorer 6.0+\n    if ( browser.ie ){\n\n\n        var v1 =  agent.match(/(?:msie\\s([\\w.]+))/);\n        var v2 = agent.match(/(?:trident.*rv:([\\w.]+))/);\n        if(v1 && v2 && v1[1] && v2[1]){\n            version = Math.max(v1[1]*1,v2[1]*1);\n        }else if(v1 && v1[1]){\n            version = v1[1]*1;\n        }else if(v2 && v2[1]){\n            version = v2[1]*1;\n        }else{\n            version = 0;\n        }\n\n        browser.ie11Compat = document.documentMode == 11;\n        /**\n         * @property { boolean } ie9Compat 检测浏览器模式是否为 IE9 兼容模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie9Compat ) {\n         *     console.log( '当前浏览器运行在IE9兼容模式下' );\n         * }\n         * ```\n         */\n        browser.ie9Compat = document.documentMode == 9;\n\n        /**\n         * @property { boolean } ie8 检测浏览器是否是IE8浏览器\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie8 ) {\n         *     console.log( '当前浏览器是IE8浏览器' );\n         * }\n         * ```\n         */\n        browser.ie8 = !!document.documentMode;\n\n        /**\n         * @property { boolean } ie8Compat 检测浏览器模式是否为 IE8 兼容模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie8Compat ) {\n         *     console.log( '当前浏览器运行在IE8兼容模式下' );\n         * }\n         * ```\n         */\n        browser.ie8Compat = document.documentMode == 8;\n\n        /**\n         * @property { boolean } ie7Compat 检测浏览器模式是否为 IE7 兼容模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie7Compat ) {\n         *     console.log( '当前浏览器运行在IE7兼容模式下' );\n         * }\n         * ```\n         */\n        browser.ie7Compat = ( ( version == 7 && !document.documentMode )\n            || document.documentMode == 7 );\n\n        /**\n         * @property { boolean } ie6Compat 检测浏览器模式是否为 IE6 模式 或者怪异模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie6Compat ) {\n         *     console.log( '当前浏览器运行在IE6模式或者怪异模式下' );\n         * }\n         * ```\n         */\n        browser.ie6Compat = ( version < 7 || browser.quirks );\n\n        browser.ie9above = version > 8;\n\n        browser.ie9below = version < 9;\n\n    }\n\n    // Gecko.\n    if ( browser.gecko ){\n        var geckoRelease = agent.match( /rv:([\\d\\.]+)/ );\n        if ( geckoRelease )\n        {\n            geckoRelease = geckoRelease[1].split( '.' );\n            version = geckoRelease[0] * 10000 + ( geckoRelease[1] || 0 ) * 100 + ( geckoRelease[2] || 0 ) * 1;\n        }\n    }\n\n    /**\n     * @property { Number } chrome 检测当前浏览器是否为Chrome, 如果是，则返回Chrome的大版本号\n     * @warning 如果浏览器不是chrome， 则该值为undefined\n     * @example\n     * ```javascript\n     * if ( UE.browser.chrome ) {\n     *     console.log( '当前浏览器是Chrome' );\n     * }\n     * ```\n     */\n    if (/chrome\\/(\\d+\\.\\d)/i.test(agent)) {\n        browser.chrome = + RegExp['\\x241'];\n    }\n\n    /**\n     * @property { Number } safari 检测当前浏览器是否为Safari, 如果是，则返回Safari的大版本号\n     * @warning 如果浏览器不是safari， 则该值为undefined\n     * @example\n     * ```javascript\n     * if ( UE.browser.safari ) {\n     *     console.log( '当前浏览器是Safari' );\n     * }\n     * ```\n     */\n    if(/(\\d+\\.\\d)?(?:\\.\\d)?\\s+safari\\/?(\\d+\\.\\d+)?/i.test(agent) && !/chrome/i.test(agent)){\n        browser.safari = + (RegExp['\\x241'] || RegExp['\\x242']);\n    }\n\n\n    // Opera 9.50+\n    if ( browser.opera )\n        version = parseFloat( opera.version() );\n\n    // WebKit 522+ (Safari 3+)\n    if ( browser.webkit )\n        version = parseFloat( agent.match( / applewebkit\\/(\\d+)/ )[1] );\n\n    /**\n     * @property { Number } version 检测当前浏览器版本号\n     * @remind\n     * <ul>\n     *     <li>IE系列返回值为5,6,7,8,9,10等</li>\n     *     <li>gecko系列会返回10900，158900等</li>\n     *     <li>webkit系列会返回其build号 (如 522等)</li>\n     * </ul>\n     * @example\n     * ```javascript\n     * console.log( '当前浏览器版本号是： ' + UE.browser.version );\n     * ```\n     */\n    browser.version = version;\n\n    /**\n     * @property { boolean } isCompatible 检测当前浏览器是否能够与UEditor良好兼容\n     * @example\n     * ```javascript\n     * if ( UE.browser.isCompatible ) {\n     *     console.log( '浏览器与UEditor能够良好兼容' );\n     * }\n     * ```\n     */\n    browser.isCompatible =\n        !browser.mobile && (\n            ( browser.ie && version >= 6 ) ||\n                ( browser.gecko && version >= 10801 ) ||\n                ( browser.opera && version >= 9.5 ) ||\n                ( browser.air && version >= 1 ) ||\n                ( browser.webkit && version >= 522 ) ||\n                false );\n    return browser;\n}();\n//快捷方式\nvar ie = browser.ie,\n    webkit = browser.webkit,\n    gecko = browser.gecko,\n    opera = browser.opera;\n/**\n * @file\n * @name UM.Utils\n * @short Utils\n * @desc UEditor封装使用的静态工具函数\n * @import editor.js\n */\nvar utils = UM.utils = {\n    /**\n     * 遍历数组，对象，nodeList\n     * @name each\n     * @grammar UM.utils.each(obj,iterator,[context])\n     * @since 1.2.4+\n     * @desc\n     * * obj 要遍历的对象\n     * * iterator 遍历的方法,方法的第一个是遍历的值，第二个是索引，第三个是obj\n     * * context  iterator的上下文\n     * @example\n     * UM.utils.each([1,2],function(v,i){\n     *     console.log(v)//值\n     *     console.log(i)//索引\n     * })\n     * UM.utils.each(document.getElementsByTagName('*'),function(n){\n     *     console.log(n.tagName)\n     * })\n     */\n    each : function(obj, iterator, context) {\n        if (obj == null) return;\n        if (obj.length === +obj.length) {\n            for (var i = 0, l = obj.length; i < l; i++) {\n                if(iterator.call(context, obj[i], i, obj) === false)\n                    return false;\n            }\n        } else {\n            for (var key in obj) {\n                if (obj.hasOwnProperty(key)) {\n                    if(iterator.call(context, obj[key], key, obj) === false)\n                        return false;\n                }\n            }\n        }\n    },\n\n    makeInstance:function (obj) {\n        var noop = new Function();\n        noop.prototype = obj;\n        obj = new noop;\n        noop.prototype = null;\n        return obj;\n    },\n    /**\n     * 将source对象中的属性扩展到target对象上\n     * @name extend\n     * @grammar UM.utils.extend(target,source)  => Object  //覆盖扩展\n     * @grammar UM.utils.extend(target,source,true)  ==> Object  //保留扩展\n     */\n    extend:function (t, s, b) {\n        if (s) {\n            for (var k in s) {\n                if (!b || !t.hasOwnProperty(k)) {\n                    t[k] = s[k];\n                }\n            }\n        }\n        return t;\n    },\n    extend2:function (t) {\n        var a = arguments;\n        for (var i = 1; i < a.length; i++) {\n            var x = a[i];\n            for (var k in x) {\n                if (!t.hasOwnProperty(k)) {\n                    t[k] = x[k];\n                }\n            }\n        }\n        return t;\n    },\n    /**\n     * 模拟继承机制，subClass继承superClass\n     * @name inherits\n     * @grammar UM.utils.inherits(subClass,superClass) => subClass\n     * @example\n     * function SuperClass(){\n     *     this.name = \"小李\";\n     * }\n     * SuperClass.prototype = {\n     *     hello:function(str){\n     *         console.log(this.name + str);\n     *     }\n     * }\n     * function SubClass(){\n     *     this.name = \"小张\";\n     * }\n     * UM.utils.inherits(SubClass,SuperClass);\n     * var sub = new SubClass();\n     * sub.hello(\"早上好!\"); ==> \"小张早上好！\"\n     */\n    inherits:function (subClass, superClass) {\n        var oldP = subClass.prototype,\n            newP = utils.makeInstance(superClass.prototype);\n        utils.extend(newP, oldP, true);\n        subClass.prototype = newP;\n        return (newP.constructor = subClass);\n    },\n\n    /**\n     * 用指定的context作为fn上下文，也就是this\n     * @name bind\n     * @grammar UM.utils.bind(fn,context)  =>  fn\n     */\n    bind:function (fn, context) {\n        return function () {\n            return fn.apply(context, arguments);\n        };\n    },\n\n    /**\n     * 创建延迟delay执行的函数fn\n     * @name defer\n     * @grammar UM.utils.defer(fn,delay)  =>fn   //延迟delay毫秒执行fn，返回fn\n     * @grammar UM.utils.defer(fn,delay,exclusion)  =>fn   //延迟delay毫秒执行fn，若exclusion为真，则互斥执行fn\n     * @example\n     * function test(){\n     *     console.log(\"延迟输出！\");\n     * }\n     * //非互斥延迟执行\n     * var testDefer = UM.utils.defer(test,1000);\n     * testDefer();   =>  \"延迟输出！\";\n     * testDefer();   =>  \"延迟输出！\";\n     * //互斥延迟执行\n     * var testDefer1 = UM.utils.defer(test,1000,true);\n     * testDefer1();   =>  //本次不执行\n     * testDefer1();   =>  \"延迟输出！\";\n     */\n    defer:function (fn, delay, exclusion) {\n        var timerID;\n        return function () {\n            if (exclusion) {\n                clearTimeout(timerID);\n            }\n            timerID = setTimeout(fn, delay);\n        };\n    },\n\n    /**\n     * 查找元素item在数组array中的索引, 若找不到返回-1\n     * @name indexOf\n     * @grammar UM.utils.indexOf(array,item)  => index|-1  //默认从数组开头部开始搜索\n     * @grammar UM.utils.indexOf(array,item,start)  => index|-1  //start指定开始查找的位置\n     */\n    indexOf:function (array, item, start) {\n        var index = -1;\n        start = this.isNumber(start) ? start : 0;\n        this.each(array, function (v, i) {\n            if (i >= start && v === item) {\n                index = i;\n                return false;\n            }\n        });\n        return index;\n    },\n\n    /**\n     * 移除数组array中的元素item\n     * @name removeItem\n     * @grammar UM.utils.removeItem(array,item)\n     */\n    removeItem:function (array, item) {\n        for (var i = 0, l = array.length; i < l; i++) {\n            if (array[i] === item) {\n                array.splice(i, 1);\n                i--;\n            }\n        }\n    },\n\n    /**\n     * 删除字符串str的首尾空格\n     * @name trim\n     * @grammar UM.utils.trim(str) => String\n     */\n    trim:function (str) {\n        return str.replace(/(^[ \\t\\n\\r]+)|([ \\t\\n\\r]+$)/g, '');\n    },\n\n    /**\n     * 将字符串list(以','分隔)或者数组list转成哈希对象\n     * @name listToMap\n     * @grammar UM.utils.listToMap(list)  => Object  //Object形如{test:1,br:1,textarea:1}\n     */\n    listToMap:function (list) {\n        if (!list)return {};\n        list = utils.isArray(list) ? list : list.split(',');\n        for (var i = 0, ci, obj = {}; ci = list[i++];) {\n            obj[ci.toUpperCase()] = obj[ci] = 1;\n        }\n        return obj;\n    },\n\n    /**\n     * 将str中的html符号转义,默认将转义''&<\">''四个字符，可自定义reg来确定需要转义的字符\n     * @name unhtml\n     * @grammar UM.utils.unhtml(str);  => String\n     * @grammar UM.utils.unhtml(str,reg)  => String\n     * @example\n     * var html = '<body>You say:\"你好！Baidu & UEditor!\"</body>';\n     * UM.utils.unhtml(html);   ==>  &lt;body&gt;You say:&quot;你好！Baidu &amp; UEditor!&quot;&lt;/body&gt;\n     * UM.utils.unhtml(html,/[<>]/g)  ==>  &lt;body&gt;You say:\"你好！Baidu & UEditor!\"&lt;/body&gt;\n     */\n    unhtml:function (str, reg) {\n        return str ? str.replace(reg || /[&<\">'](?:(amp|lt|quot|gt|#39|nbsp);)?/g, function (a, b) {\n            if (b) {\n                return a;\n            } else {\n                return {\n                    '<':'&lt;',\n                    '&':'&amp;',\n                    '\"':'&quot;',\n                    '>':'&gt;',\n                    \"'\":'&#39;'\n                }[a]\n            }\n\n        }) : '';\n    },\n    /**\n     * 将str中的转义字符还原成html字符\n     * @name html\n     * @grammar UM.utils.html(str)  => String   //详细参见<code><a href = '#unhtml'>unhtml</a></code>\n     */\n    html:function (str) {\n        return str ? str.replace(/&((g|l|quo)t|amp|#39);/g, function (m) {\n            return {\n                '&lt;':'<',\n                '&amp;':'&',\n                '&quot;':'\"',\n                '&gt;':'>',\n                '&#39;':\"'\"\n            }[m]\n        }) : '';\n    },\n    /**\n     * 将css样式转换为驼峰的形式。如font-size => fontSize\n     * @name cssStyleToDomStyle\n     * @grammar UM.utils.cssStyleToDomStyle(cssName)  => String\n     */\n    cssStyleToDomStyle:function () {\n        var test = document.createElement('div').style,\n            cache = {\n                'float':test.cssFloat != undefined ? 'cssFloat' : test.styleFloat != undefined ? 'styleFloat' : 'float'\n            };\n\n        return function (cssName) {\n            return cache[cssName] || (cache[cssName] = cssName.toLowerCase().replace(/-./g, function (match) {\n                return match.charAt(1).toUpperCase();\n            }));\n        };\n    }(),\n    /**\n     * 动态加载文件到doc中，并依据obj来设置属性，加载成功后执行回调函数fn\n     * @name loadFile\n     * @grammar UM.utils.loadFile(doc,obj)\n     * @grammar UM.utils.loadFile(doc,obj,fn)\n     * @example\n     * //指定加载到当前document中一个script文件，加载成功后执行function\n     * utils.loadFile( document, {\n     *     src:\"test.js\",\n     *     tag:\"script\",\n     *     type:\"text/javascript\",\n     *     defer:\"defer\"\n     * }, function () {\n     *     console.log('加载成功！')\n     * });\n     */\n    loadFile:function () {\n        var tmpList = [];\n\n        function getItem(doc, obj) {\n            try {\n                for (var i = 0, ci; ci = tmpList[i++];) {\n                    if (ci.doc === doc && ci.url == (obj.src || obj.href)) {\n                        return ci;\n                    }\n                }\n            } catch (e) {\n                return null;\n            }\n\n        }\n\n        return function (doc, obj, fn) {\n            var item = getItem(doc, obj);\n            if (item) {\n                if (item.ready) {\n                    fn && fn();\n                } else {\n                    item.funs.push(fn)\n                }\n                return;\n            }\n            tmpList.push({\n                doc:doc,\n                url:obj.src || obj.href,\n                funs:[fn]\n            });\n            if (!doc.body) {\n                var html = [];\n                for (var p in obj) {\n                    if (p == 'tag')continue;\n                    html.push(p + '=\"' + obj[p] + '\"')\n                }\n                doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></' + obj.tag + '>');\n                return;\n            }\n            if (obj.id && doc.getElementById(obj.id)) {\n                return;\n            }\n            var element = doc.createElement(obj.tag);\n            delete obj.tag;\n            for (var p in obj) {\n                element.setAttribute(p, obj[p]);\n            }\n            element.onload = element.onreadystatechange = function () {\n                if (!this.readyState || /loaded|complete/.test(this.readyState)) {\n                    item = getItem(doc, obj);\n                    if (item.funs.length > 0) {\n                        item.ready = 1;\n                        for (var fi; fi = item.funs.pop();) {\n                            fi();\n                        }\n                    }\n                    element.onload = element.onreadystatechange = null;\n                }\n            };\n            element.onerror = function () {\n                throw Error('The load ' + (obj.href || obj.src) + ' fails,check the url settings of file umeditor.config.js ')\n            };\n            doc.getElementsByTagName(\"head\")[0].appendChild(element);\n        }\n    }(),\n    /**\n     * 判断obj对象是否为空\n     * @name isEmptyObject\n     * @grammar UM.utils.isEmptyObject(obj)  => true|false\n     * @example\n     * UM.utils.isEmptyObject({}) ==>true\n     * UM.utils.isEmptyObject([]) ==>true\n     * UM.utils.isEmptyObject(\"\") ==>true\n     */\n    isEmptyObject:function (obj) {\n        if (obj == null) return true;\n        if (this.isArray(obj) || this.isString(obj)) return obj.length === 0;\n        for (var key in obj) if (obj.hasOwnProperty(key)) return false;\n        return true;\n    },\n\n    /**\n     * 统一将颜色值使用16进制形式表示\n     * @name fixColor\n     * @grammar UM.utils.fixColor(name,value) => value\n     * @example\n     * rgb(255,255,255)  => \"#ffffff\"\n     */\n    fixColor:function (name, value) {\n        if (/color/i.test(name) && /rgba?/.test(value)) {\n            var array = value.split(\",\");\n            if (array.length > 3)\n                return \"\";\n            value = \"#\";\n            for (var i = 0, color; color = array[i++];) {\n                color = parseInt(color.replace(/[^\\d]/gi, ''), 10).toString(16);\n                value += color.length == 1 ? \"0\" + color : color;\n            }\n            value = value.toUpperCase();\n        }\n        return  value;\n    },\n\n    /**\n     * 深度克隆对象，从source到target\n     * @name clone\n     * @grammar UM.utils.clone(source) => anthorObj 新的对象是完整的source的副本\n     * @grammar UM.utils.clone(source,target) => target包含了source的所有内容，重名会覆盖\n     */\n    clone:function (source, target) {\n        var tmp;\n        target = target || {};\n        for (var i in source) {\n            if (source.hasOwnProperty(i)) {\n                tmp = source[i];\n                if (typeof tmp == 'object') {\n                    target[i] = utils.isArray(tmp) ? [] : {};\n                    utils.clone(source[i], target[i])\n                } else {\n                    target[i] = tmp;\n                }\n            }\n        }\n        return target;\n    },\n    /**\n     * 转换cm/pt到px\n     * @name transUnitToPx\n     * @grammar UM.utils.transUnitToPx('20pt') => '27px'\n     * @grammar UM.utils.transUnitToPx('0pt') => '0'\n     */\n    transUnitToPx:function (val) {\n        if (!/(pt|cm)/.test(val)) {\n            return val\n        }\n        var unit;\n        val.replace(/([\\d.]+)(\\w+)/, function (str, v, u) {\n            val = v;\n            unit = u;\n        });\n        switch (unit) {\n            case 'cm':\n                val = parseFloat(val) * 25;\n                break;\n            case 'pt':\n                val = Math.round(parseFloat(val) * 96 / 72);\n        }\n        return val + (val ? 'px' : '');\n    },\n    /**\n     * 动态添加css样式\n     * @name cssRule\n     * @grammar UM.utils.cssRule('添加的样式的节点名称',['样式'，'放到哪个document上'])\n     * @grammar UM.utils.cssRule('body','body{background:#ccc}') => null  //给body添加背景颜色\n     * @grammar UM.utils.cssRule('body') =>样式的字符串  //取得key值为body的样式的内容,如果没有找到key值先关的样式将返回空，例如刚才那个背景颜色，将返回 body{background:#ccc}\n     * @grammar UM.utils.cssRule('body','') =>null //清空给定的key值的背景颜色\n     */\n    cssRule:browser.ie && browser.version != 11 ? function (key, style, doc) {\n        var indexList, index;\n        doc = doc || document;\n        if (doc.indexList) {\n            indexList = doc.indexList;\n        } else {\n            indexList = doc.indexList = {};\n        }\n        var sheetStyle;\n        if (!indexList[key]) {\n            if (style === undefined) {\n                return ''\n            }\n            sheetStyle = doc.createStyleSheet('', index = doc.styleSheets.length);\n            indexList[key] = index;\n        } else {\n            sheetStyle = doc.styleSheets[indexList[key]];\n        }\n        if (style === undefined) {\n            return sheetStyle.cssText\n        }\n        sheetStyle.cssText = style || ''\n    } : function (key, style, doc) {\n        doc = doc || document;\n        var head = doc.getElementsByTagName('head')[0], node;\n        if (!(node = doc.getElementById(key))) {\n            if (style === undefined) {\n                return ''\n            }\n            node = doc.createElement('style');\n            node.id = key;\n            head.appendChild(node)\n        }\n        if (style === undefined) {\n            return node.innerHTML\n        }\n        if (style !== '') {\n            node.innerHTML = style;\n        } else {\n            head.removeChild(node)\n        }\n    }\n\n};\n/**\n * 判断str是否为字符串\n * @name isString\n * @grammar UM.utils.isString(str) => true|false\n */\n/**\n * 判断array是否为数组\n * @name isArray\n * @grammar UM.utils.isArray(obj) => true|false\n */\n/**\n * 判断obj对象是否为方法\n * @name isFunction\n * @grammar UM.utils.isFunction(obj)  => true|false\n */\n/**\n * 判断obj对象是否为数字\n * @name isNumber\n * @grammar UM.utils.isNumber(obj)  => true|false\n */\nutils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object'], function (v) {\n    UM.utils['is' + v] = function (obj) {\n        return Object.prototype.toString.apply(obj) == '[object ' + v + ']';\n    }\n});\n/**\n * @file\n * @name UM.EventBase\n * @short EventBase\n * @import editor.js,core/utils.js\n * @desc UE采用的事件基类，继承此类的对应类将获取addListener,removeListener,fireEvent方法。\n * 在UE中，Editor以及所有ui实例都继承了该类，故可以在对应的ui对象以及editor对象上使用上述方法。\n */\nvar EventBase = UM.EventBase = function () {};\n\nEventBase.prototype = {\n    /**\n     * 注册事件监听器\n     * @name addListener\n     * @grammar editor.addListener(types,fn)  //types为事件名称，多个可用空格分隔\n     * @example\n     * editor.addListener('selectionchange',function(){\n     *      console.log(\"选区已经变化！\");\n     * })\n     * editor.addListener('beforegetcontent aftergetcontent',function(type){\n     *         if(type == 'beforegetcontent'){\n     *             //do something\n     *         }else{\n     *             //do something\n     *         }\n     *         console.log(this.getContent) // this是注册的事件的编辑器实例\n     * })\n     */\n    addListener:function (types, listener) {\n        types = utils.trim(types).split(' ');\n        for (var i = 0, ti; ti = types[i++];) {\n            getListener(this, ti, true).push(listener);\n        }\n    },\n    /**\n     * 移除事件监听器\n     * @name removeListener\n     * @grammar editor.removeListener(types,fn)  //types为事件名称，多个可用空格分隔\n     * @example\n     * //changeCallback为方法体\n     * editor.removeListener(\"selectionchange\",changeCallback);\n     */\n    removeListener:function (types, listener) {\n        types = utils.trim(types).split(' ');\n        for (var i = 0, ti; ti = types[i++];) {\n            utils.removeItem(getListener(this, ti) || [], listener);\n        }\n    },\n    /**\n     * 触发事件\n     * @name fireEvent\n     * @grammar editor.fireEvent(types)  //types为事件名称，多个可用空格分隔\n     * @example\n     * editor.fireEvent(\"selectionchange\");\n     */\n    fireEvent:function () {\n        var types = arguments[0];\n        types = utils.trim(types).split(' ');\n        for (var i = 0, ti; ti = types[i++];) {\n            var listeners = getListener(this, ti),\n                r, t, k;\n            if (listeners) {\n                k = listeners.length;\n                while (k--) {\n                    if(!listeners[k])continue;\n                    t = listeners[k].apply(this, arguments);\n                    if(t === true){\n                        return t;\n                    }\n                    if (t !== undefined) {\n                        r = t;\n                    }\n                }\n            }\n            if (t = this['on' + ti.toLowerCase()]) {\n                r = t.apply(this, arguments);\n            }\n        }\n        return r;\n    }\n};\n/**\n * 获得对象所拥有监听类型的所有监听器\n * @public\n * @function\n * @param {Object} obj  查询监听器的对象\n * @param {String} type 事件类型\n * @param {Boolean} force  为true且当前所有type类型的侦听器不存在时，创建一个空监听器数组\n * @returns {Array} 监听器数组\n */\nfunction getListener(obj, type, force) {\n    var allListeners;\n    type = type.toLowerCase();\n    return ( ( allListeners = ( obj.__allListeners || force && ( obj.__allListeners = {} ) ) )\n        && ( allListeners[type] || force && ( allListeners[type] = [] ) ) );\n}\n\n\n///import editor.js\n///import core/dom/dom.js\n///import core/utils.js\n/**\n * dtd html语义化的体现类\n * @constructor\n * @namespace dtd\n */\nvar dtd = dom.dtd = (function() {\n    function _( s ) {\n        for (var k in s) {\n            s[k.toUpperCase()] = s[k];\n        }\n        return s;\n    }\n    var X = utils.extend2;\n    var A = _({isindex:1,fieldset:1}),\n        B = _({input:1,button:1,select:1,textarea:1,label:1}),\n        C = X( _({a:1}), B ),\n        D = X( {iframe:1}, C ),\n        E = _({hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1}),\n        F = _({ins:1,del:1,script:1,style:1}),\n        G = X( _({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1}), F ),\n        H = X( _({sub:1,img:1,embed:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1}), G ),\n        I = X( _({p:1}), H ),\n        J = X( _({iframe:1}), H, B ),\n        K = _({img:1,embed:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1}),\n\n        L = X( _({a:0}), J ),//a不能被切开，所以把他\n        M = _({tr:1}),\n        N = _({'#':1}),\n        O = X( _({param:1}), K ),\n        P = X( _({form:1}), A, D, E, I ),\n        Q = _({li:1,ol:1,ul:1}),\n        R = _({style:1,script:1}),\n        S = _({base:1,link:1,meta:1,title:1}),\n        T = X( S, R ),\n        U = _({head:1,body:1}),\n        V = _({html:1});\n\n    var block = _({address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1}),\n\n        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});\n\n    return  _({\n\n        // $ 表示自定的属性\n\n        // body外的元素列表.\n        $nonBodyContent: X( V, U, S ),\n\n        //块结构元素列表\n        $block : block,\n\n        //内联元素列表\n        $inline : L,\n\n        $inlineWithA : X(_({a:1}),L),\n\n        $body : X( _({script:1,style:1}), block ),\n\n        $cdata : _({script:1,style:1}),\n\n        //自闭和元素\n        $empty : empty,\n\n        //不是自闭合，但不能让range选中里边\n        $nonChild : _({iframe:1,textarea:1}),\n        //列表元素列表\n        $listItem : _({dd:1,dt:1,li:1}),\n\n        //列表根元素列表\n        $list: _({ul:1,ol:1,dl:1}),\n\n        //不能认为是空的元素\n        $isNotEmpty : _({table:1,ul:1,ol:1,dl:1,iframe:1,area:1,base:1,col:1,hr:1,img:1,embed:1,input:1,link:1,meta:1,param:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1}),\n\n        //如果没有子节点就可以删除的元素列表，像span,a\n        $removeEmpty : _({a:1,abbr:1,acronym:1,address: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,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1}),\n\n        $removeEmptyBlock : _({'p':1,'div':1}),\n\n        //在table元素里的元素列表\n        $tableContent : _({caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1,table:1}),\n        //不转换的标签\n        $notTransContent : _({pre:1,script:1,style:1,textarea:1}),\n        html: U,\n        head: T,\n        style: N,\n        script: N,\n        body: P,\n        base: {},\n        link: {},\n        meta: {},\n        title: N,\n        col : {},\n        tr : _({td:1,th:1}),\n        img : {},\n        embed: {},\n        colgroup : _({thead:1,col:1,tbody:1,tr:1,tfoot:1}),\n        noscript : P,\n        td : P,\n        br : {},\n        th : P,\n        center : P,\n        kbd : L,\n        button : X( I, E ),\n        basefont : {},\n        h5 : L,\n        h4 : L,\n        samp : L,\n        h6 : L,\n        ol : Q,\n        h1 : L,\n        h3 : L,\n        option : N,\n        h2 : L,\n        form : X( A, D, E, I ),\n        select : _({optgroup:1,option:1}),\n        font : L,\n        ins : L,\n        menu : Q,\n        abbr : L,\n        label : L,\n        table : _({thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1}),\n        code : L,\n        tfoot : M,\n        cite : L,\n        li : P,\n        input : {},\n        iframe : P,\n        strong : L,\n        textarea : N,\n        noframes : P,\n        big : L,\n        small : L,\n        //trace:\n        span :_({'#':1,br:1,b:1,strong:1,u:1,i:1,em:1,sub:1,sup:1,strike:1,span:1}),\n        hr : L,\n        dt : L,\n        sub : L,\n        optgroup : _({option:1}),\n        param : {},\n        bdo : L,\n        'var' : L,\n        div : P,\n        object : O,\n        sup : L,\n        dd : P,\n        strike : L,\n        area : {},\n        dir : Q,\n        map : X( _({area:1,form:1,p:1}), A, F, E ),\n        applet : O,\n        dl : _({dt:1,dd:1}),\n        del : L,\n        isindex : {},\n        fieldset : X( _({legend:1}), K ),\n        thead : M,\n        ul : Q,\n        acronym : L,\n        b : L,\n        a : X( _({a:1}), J ),\n        blockquote :X(_({td:1,tr:1,tbody:1,li:1}),P),\n        caption : L,\n        i : L,\n        u : L,\n        tbody : M,\n        s : L,\n        address : X( D, I ),\n        tt : L,\n        legend : L,\n        q : L,\n        pre : X( G, C ),\n        p : X(_({'a':1}),L),\n        em :L,\n        dfn : L\n    });\n})();\n\n/**\n * @file\n * @name UM.dom.domUtils\n * @short DomUtils\n * @import editor.js, core/utils.js,core/browser.js,core/dom/dtd.js\n * @desc UEditor封装的底层dom操作库\n */\n\nfunction getDomNode(node, start, ltr, startFromChild, fn, guard) {\n    var tmpNode = startFromChild && node[start],\n        parent;\n    !tmpNode && (tmpNode = node[ltr]);\n    while (!tmpNode && (parent = (parent || node).parentNode)) {\n        if (parent.tagName == 'BODY' || guard && !guard(parent)) {\n            return null;\n        }\n        tmpNode = parent[ltr];\n    }\n    if (tmpNode && fn && !fn(tmpNode)) {\n        return  getDomNode(tmpNode, start, ltr, false, fn);\n    }\n    return tmpNode;\n}\nvar attrFix = ie && browser.version < 9 ? {\n        tabindex: \"tabIndex\",\n        readonly: \"readOnly\",\n        \"for\": \"htmlFor\",\n        \"class\": \"className\",\n        maxlength: \"maxLength\",\n        cellspacing: \"cellSpacing\",\n        cellpadding: \"cellPadding\",\n        rowspan: \"rowSpan\",\n        colspan: \"colSpan\",\n        usemap: \"useMap\",\n        frameborder: \"frameBorder\"\n    } : {\n        tabindex: \"tabIndex\",\n        readonly: \"readOnly\"\n    },\n    styleBlock = utils.listToMap([\n        '-webkit-box', '-moz-box', 'block' ,\n        'list-item' , 'table' , 'table-row-group' ,\n        'table-header-group', 'table-footer-group' ,\n        'table-row' , 'table-column-group' , 'table-column' ,\n        'table-cell' , 'table-caption'\n    ]);\nvar domUtils = dom.domUtils = {\n    //节点常量\n    NODE_ELEMENT: 1,\n    NODE_DOCUMENT: 9,\n    NODE_TEXT: 3,\n    NODE_COMMENT: 8,\n    NODE_DOCUMENT_FRAGMENT: 11,\n\n    //位置关系\n    POSITION_IDENTICAL: 0,\n    POSITION_DISCONNECTED: 1,\n    POSITION_FOLLOWING: 2,\n    POSITION_PRECEDING: 4,\n    POSITION_IS_CONTAINED: 8,\n    POSITION_CONTAINS: 16,\n    //ie6使用其他的会有一段空白出现\n    fillChar: ie && browser.version == '6' ? '\\ufeff' : '\\u200B',\n    //-------------------------Node部分--------------------------------\n    keys: {\n        /*Backspace*/ 8: 1, /*Delete*/ 46: 1,\n        /*Shift*/ 16: 1, /*Ctrl*/ 17: 1, /*Alt*/ 18: 1,\n        37: 1, 38: 1, 39: 1, 40: 1,\n        13: 1 /*enter*/\n    },\n    breakParent:function (node, parent) {\n        var tmpNode,\n            parentClone = node,\n            clone = node,\n            leftNodes,\n            rightNodes;\n        do {\n            parentClone = parentClone.parentNode;\n            if (leftNodes) {\n                tmpNode = parentClone.cloneNode(false);\n                tmpNode.appendChild(leftNodes);\n                leftNodes = tmpNode;\n                tmpNode = parentClone.cloneNode(false);\n                tmpNode.appendChild(rightNodes);\n                rightNodes = tmpNode;\n            } else {\n                leftNodes = parentClone.cloneNode(false);\n                rightNodes = leftNodes.cloneNode(false);\n            }\n            while (tmpNode = clone.previousSibling) {\n                leftNodes.insertBefore(tmpNode, leftNodes.firstChild);\n            }\n            while (tmpNode = clone.nextSibling) {\n                rightNodes.appendChild(tmpNode);\n            }\n            clone = parentClone;\n        } while (parent !== parentClone);\n        tmpNode = parent.parentNode;\n        tmpNode.insertBefore(leftNodes, parent);\n        tmpNode.insertBefore(rightNodes, parent);\n        tmpNode.insertBefore(node, rightNodes);\n        domUtils.remove(parent);\n        return node;\n    },\n    trimWhiteTextNode:function (node) {\n        function remove(dir) {\n            var child;\n            while ((child = node[dir]) && child.nodeType == 3 && domUtils.isWhitespace(child)) {\n                node.removeChild(child);\n            }\n        }\n        remove('firstChild');\n        remove('lastChild');\n    },\n    /**\n     * 获取节点A相对于节点B的位置关系\n     * @name getPosition\n     * @grammar UM.dom.domUtils.getPosition(nodeA,nodeB)  =>  Number\n     * @example\n     *  switch (returnValue) {\n     *      case 0: //相等，同一节点\n     *      case 1: //无关，节点不相连\n     *      case 2: //跟随，即节点A头部位于节点B头部的后面\n     *      case 4: //前置，即节点A头部位于节点B头部的前面\n     *      case 8: //被包含，即节点A被节点B包含\n     *      case 10://组合类型，即节点A满足跟随节点B且被节点B包含。实际上，如果被包含，必定跟随，所以returnValue事实上不会存在8的情况。\n     *      case 16://包含，即节点A包含节点B\n     *      case 20://组合类型，即节点A满足前置节点A且包含节点B。同样，如果包含，必定前置，所以returnValue事实上也不会存在16的情况\n     *  }\n     */\n    getPosition: function (nodeA, nodeB) {\n        // 如果两个节点是同一个节点\n        if (nodeA === nodeB) {\n            // domUtils.POSITION_IDENTICAL\n            return 0;\n        }\n        var node,\n            parentsA = [nodeA],\n            parentsB = [nodeB];\n        node = nodeA;\n        while (node = node.parentNode) {\n            // 如果nodeB是nodeA的祖先节点\n            if (node === nodeB) {\n                // domUtils.POSITION_IS_CONTAINED + domUtils.POSITION_FOLLOWING\n                return 10;\n            }\n            parentsA.push(node);\n        }\n        node = nodeB;\n        while (node = node.parentNode) {\n            // 如果nodeA是nodeB的祖先节点\n            if (node === nodeA) {\n                // domUtils.POSITION_CONTAINS + domUtils.POSITION_PRECEDING\n                return 20;\n            }\n            parentsB.push(node);\n        }\n        parentsA.reverse();\n        parentsB.reverse();\n        if (parentsA[0] !== parentsB[0]) {\n            // domUtils.POSITION_DISCONNECTED\n            return 1;\n        }\n        var i = -1;\n        while (i++, parentsA[i] === parentsB[i]) {\n        }\n        nodeA = parentsA[i];\n        nodeB = parentsB[i];\n        while (nodeA = nodeA.nextSibling) {\n            if (nodeA === nodeB) {\n                // domUtils.POSITION_PRECEDING\n                return 4\n            }\n        }\n        // domUtils.POSITION_FOLLOWING\n        return  2;\n    },\n\n    /**\n     * 返回节点node在父节点中的索引位置\n     * @name getNodeIndex\n     * @grammar UM.dom.domUtils.getNodeIndex(node)  => Number  //索引值从0开始\n     */\n    getNodeIndex: function (node, ignoreTextNode) {\n        var preNode = node,\n            i = 0;\n        while (preNode = preNode.previousSibling) {\n            if (ignoreTextNode && preNode.nodeType == 3) {\n                if (preNode.nodeType != preNode.nextSibling.nodeType) {\n                    i++;\n                }\n                continue;\n            }\n            i++;\n        }\n        return i;\n    },\n\n    /**\n     * 检测节点node是否在节点doc的树上，实质上是检测是否被doc包含\n     * @name inDoc\n     * @grammar UM.dom.domUtils.inDoc(node,doc)   =>  true|false\n     */\n    inDoc: function (node, doc) {\n        return domUtils.getPosition(node, doc) == 10;\n    },\n    /**\n     * 查找node节点的祖先节点\n     * @name findParent\n     * @grammar UM.dom.domUtils.findParent(node)  => Element  // 直接返回node节点的父节点\n     * @grammar UM.dom.domUtils.findParent(node,filterFn)  => Element  //filterFn为过滤函数，node作为参数，返回true时才会将node作为符合要求的节点返回\n     * @grammar UM.dom.domUtils.findParent(node,filterFn,includeSelf)  => Element  //includeSelf指定是否包含自身\n     */\n    findParent: function (node, filterFn, includeSelf) {\n        if (node && !domUtils.isBody(node)) {\n            node = includeSelf ? node : node.parentNode;\n            while (node) {\n                if (!filterFn || filterFn(node) || domUtils.isBody(node)) {\n                    return filterFn && !filterFn(node) && domUtils.isBody(node) ? null : node;\n                }\n                node = node.parentNode;\n            }\n        }\n        return null;\n    },\n    /**\n     * 通过tagName查找node节点的祖先节点\n     * @name findParentByTagName\n     * @grammar UM.dom.domUtils.findParentByTagName(node,tagNames)   =>  Element  //tagNames支持数组，区分大小写\n     * @grammar UM.dom.domUtils.findParentByTagName(node,tagNames,includeSelf)   =>  Element  //includeSelf指定是否包含自身\n     * @grammar UM.dom.domUtils.findParentByTagName(node,tagNames,includeSelf,excludeFn)   =>  Element  //excludeFn指定例外过滤条件，返回true时忽略该节点\n     */\n    findParentByTagName: function (node, tagNames, includeSelf, excludeFn) {\n        tagNames = utils.listToMap(utils.isArray(tagNames) ? tagNames : [tagNames]);\n        return domUtils.findParent(node, function (node) {\n            return tagNames[node.tagName] && !(excludeFn && excludeFn(node));\n        }, includeSelf);\n    },\n    /**\n     * 查找节点node的祖先节点集合\n     * @name findParents\n     * @grammar UM.dom.domUtils.findParents(node)  => Array  //返回一个祖先节点数组集合，不包含自身\n     * @grammar UM.dom.domUtils.findParents(node,includeSelf)  => Array  //返回一个祖先节点数组集合，includeSelf指定是否包含自身\n     * @grammar UM.dom.domUtils.findParents(node,includeSelf,filterFn)  => Array  //返回一个祖先节点数组集合，filterFn指定过滤条件，返回true的node将被选取\n     * @grammar UM.dom.domUtils.findParents(node,includeSelf,filterFn,closerFirst)  => Array  //返回一个祖先节点数组集合，closerFirst为true的话，node的直接父亲节点是数组的第0个\n     */\n    findParents: function (node, includeSelf, filterFn, closerFirst) {\n        var parents = includeSelf && ( filterFn && filterFn(node) || !filterFn ) ? [node] : [];\n        while (node = domUtils.findParent(node, filterFn)) {\n            parents.push(node);\n        }\n        return closerFirst ? parents : parents.reverse();\n    },\n\n    /**\n     * 在节点node后面插入新节点newNode\n     * @name insertAfter\n     * @grammar UM.dom.domUtils.insertAfter(node,newNode)  => newNode\n     */\n    insertAfter: function (node, newNode) {\n        return node.parentNode.insertBefore(newNode, node.nextSibling);\n    },\n\n    /**\n     * 删除节点node，并根据keepChildren指定是否保留子节点\n     * @name remove\n     * @grammar UM.dom.domUtils.remove(node)  =>  node\n     * @grammar UM.dom.domUtils.remove(node,keepChildren)  =>  node\n     */\n    remove: function (node, keepChildren) {\n\n        var parent = node.parentNode,\n            child;\n        if (parent) {\n            if (keepChildren && node.hasChildNodes()) {\n                while (child = node.firstChild) {\n                    parent.insertBefore(child, node);\n                }\n            }\n            parent.removeChild(node);\n        }\n        return node;\n    },\n\n\n    /**\n     * 取得node节点的下一个兄弟节点， 如果该节点其后没有兄弟节点， 则递归查找其父节点之后的第一个兄弟节点，\n     * 直到找到满足条件的节点或者递归到BODY节点之后才会结束。\n     * @method getNextDomNode\n     * @param { Node } node 需要获取其后的兄弟节点的节点对象\n     * @return { Node | NULL } 如果找满足条件的节点， 则返回该节点， 否则返回NULL\n     * @example\n     * ```html\n     *     <body>\n     *      <div id=\"test\">\n     *          <span></span>\n     *      </div>\n     *      <i>xxx</i>\n     * </body>\n     * <script>\n     *\n     *     //output: i节点\n     *     console.log( UE.dom.domUtils.getNextDomNode( document.getElementById( \"test\" ) ) );\n     *\n     * </script>\n     * ```\n     * @example\n     * ```html\n     * <body>\n     *      <div>\n     *          <span></span>\n     *          <i id=\"test\">xxx</i>\n     *      </div>\n     *      <b>xxx</b>\n     * </body>\n     * <script>\n     *\n     *     //由于id为test的i节点之后没有兄弟节点， 则查找其父节点（div）后面的兄弟节点\n     *     //output: b节点\n     *     console.log( UE.dom.domUtils.getNextDomNode( document.getElementById( \"test\" ) ) );\n     *\n     * </script>\n     * ```\n     */\n\n    /**\n     * 取得node节点的下一个兄弟节点， 如果startFromChild的值为ture，则先获取其子节点，\n     * 如果有子节点则直接返回第一个子节点；如果没有子节点或者startFromChild的值为false，\n     * 则执行<a href=\"#UE.dom.domUtils.getNextDomNode(Node)\">getNextDomNode(Node node)</a>的查找过程。\n     * @method getNextDomNode\n     * @param { Node } node 需要获取其后的兄弟节点的节点对象\n     * @param { Boolean } startFromChild 查找过程是否从其子节点开始\n     * @return { Node | NULL } 如果找满足条件的节点， 则返回该节点， 否则返回NULL\n     * @see UE.dom.domUtils.getNextDomNode(Node)\n     */\n    getNextDomNode:function (node, startFromChild, filterFn, guard) {\n        return getDomNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard);\n    },\n    getPreDomNode:function (node, startFromChild, filterFn, guard) {\n        return getDomNode(node, 'lastChild', 'previousSibling', startFromChild, filterFn, guard);\n    },\n\n    /**\n     * 检测节点node是否属于bookmark节点\n     * @name isBookmarkNode\n     * @grammar UM.dom.domUtils.isBookmarkNode(node)  => true|false\n     */\n    isBookmarkNode: function (node) {\n        return node.nodeType == 1 && node.id && /^_baidu_bookmark_/i.test(node.id);\n    },\n    /**\n     * 获取节点node所在的window对象\n     * @name  getWindow\n     * @grammar UM.dom.domUtils.getWindow(node)  => window对象\n     */\n    getWindow: function (node) {\n        var doc = node.ownerDocument || node;\n        return doc.defaultView || doc.parentWindow;\n    },\n\n    /**\n     * 获取离nodeA与nodeB最近的公共的祖先节点\n     * @method  getCommonAncestor\n     * @param { Node } nodeA 第一个节点\n     * @param { Node } nodeB 第二个节点\n     * @remind 如果给定的两个节点是同一个节点， 将直接返回该节点。\n     * @return { Node | NULL } 如果未找到公共节点， 返回NULL， 否则返回最近的公共祖先节点。\n     * @example\n     * ```javascript\n     * var commonAncestor = UE.dom.domUtils.getCommonAncestor( document.body, document.body.firstChild );\n     * //output: true\n     * console.log( commonAncestor.tagName.toLowerCase() === 'body' );\n     * ```\n     */\n    getCommonAncestor:function (nodeA, nodeB) {\n        if (nodeA === nodeB)\n            return nodeA;\n        var parentsA = [nodeA] , parentsB = [nodeB], parent = nodeA, i = -1;\n        while (parent = parent.parentNode) {\n            if (parent === nodeB) {\n                return parent;\n            }\n            parentsA.push(parent);\n        }\n        parent = nodeB;\n        while (parent = parent.parentNode) {\n            if (parent === nodeA)\n                return parent;\n            parentsB.push(parent);\n        }\n        parentsA.reverse();\n        parentsB.reverse();\n        while (i++, parentsA[i] === parentsB[i]) {\n        }\n        return i == 0 ? null : parentsA[i - 1];\n\n    },\n    /**\n     * 清除node节点左右连续为空的兄弟inline节点\n     * @method clearEmptySibling\n     * @param { Node } node 执行的节点对象， 如果该节点的左右连续的兄弟节点是空的inline节点，\n     * 则这些兄弟节点将被删除\n     * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext)  //ignoreNext指定是否忽略右边空节点\n     * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext,ignorePre)  //ignorePre指定是否忽略左边空节点\n     * @example\n     * ```html\n     * <body>\n     *     <div></div>\n     *     <span id=\"test\"></span>\n     *     <i></i>\n     *     <b></b>\n     *     <em>xxx</em>\n     *     <span></span>\n     * </body>\n     * <script>\n     *\n     *      UE.dom.domUtils.clearEmptySibling( document.getElementById( \"test\" ) );\n     *\n     *      //output: <div></div><span id=\"test\"></span><em>xxx</em><span></span>\n     *      console.log( document.body.innerHTML );\n     *\n     * </script>\n     * ```\n     */\n\n    /**\n     * 清除node节点左右连续为空的兄弟inline节点， 如果ignoreNext的值为true，\n     * 则忽略对右边兄弟节点的操作。\n     * @method clearEmptySibling\n     * @param { Node } node 执行的节点对象， 如果该节点的左右连续的兄弟节点是空的inline节点，\n     * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作\n     * 则这些兄弟节点将被删除\n     * @see UE.dom.domUtils.clearEmptySibling(Node)\n     */\n\n    /**\n     * 清除node节点左右连续为空的兄弟inline节点， 如果ignoreNext的值为true，\n     * 则忽略对右边兄弟节点的操作， 如果ignorePre的值为true，则忽略对左边兄弟节点的操作。\n     * @method clearEmptySibling\n     * @param { Node } node 执行的节点对象， 如果该节点的左右连续的兄弟节点是空的inline节点，\n     * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作\n     * @param { Boolean } ignorePre 是否忽略忽略对左边的兄弟节点的操作\n     * 则这些兄弟节点将被删除\n     * @see UE.dom.domUtils.clearEmptySibling(Node)\n     */\n    clearEmptySibling:function (node, ignoreNext, ignorePre) {\n        function clear(next, dir) {\n            var tmpNode;\n            while (next && !domUtils.isBookmarkNode(next) && (domUtils.isEmptyInlineElement(next)\n                //这里不能把空格算进来会吧空格干掉，出现文字间的空格丢掉了\n                || !new RegExp('[^\\t\\n\\r' + domUtils.fillChar + ']').test(next.nodeValue) )) {\n                tmpNode = next[dir];\n                domUtils.remove(next);\n                next = tmpNode;\n            }\n        }\n        !ignoreNext && clear(node.nextSibling, 'nextSibling');\n        !ignorePre && clear(node.previousSibling, 'previousSibling');\n    },\n\n    /**\n     * 将一个文本节点node拆分成两个文本节点，offset指定拆分位置\n     * @name split\n     * @grammar UM.dom.domUtils.split(node,offset)  =>  TextNode  //返回从切分位置开始的后一个文本节点\n     */\n    split: function (node, offset) {\n        var doc = node.ownerDocument;\n        if (browser.ie && offset == node.nodeValue.length) {\n            var next = doc.createTextNode('');\n            return domUtils.insertAfter(node, next);\n        }\n        var retval = node.splitText(offset);\n        //ie8下splitText不会跟新childNodes,我们手动触发他的更新\n        if (browser.ie8) {\n            var tmpNode = doc.createTextNode('');\n            domUtils.insertAfter(retval, tmpNode);\n            domUtils.remove(tmpNode);\n        }\n        return retval;\n    },\n\n    /**\n     * 检测节点node是否为空节点（包括空格、换行、占位符等字符）\n     * @name  isWhitespace\n     * @grammar  UM.dom.domUtils.isWhitespace(node)  => true|false\n     */\n    isWhitespace: function (node) {\n        return !new RegExp('[^ \\t\\n\\r' + domUtils.fillChar + ']').test(node.nodeValue);\n    },\n    /**\n     * 获取元素element相对于viewport的位置坐标\n     * @name getXY\n     * @grammar UM.dom.domUtils.getXY(element)  => Object //返回坐标对象{x:left,y:top}\n     */\n    getXY: function (element) {\n        var x = 0, y = 0;\n        while (element.offsetParent) {\n            y += element.offsetTop;\n            x += element.offsetLeft;\n            element = element.offsetParent;\n        }\n        return { 'x': x, 'y': y};\n    },\n    /**\n     * 检查节点node是否是空inline节点\n     * @name  isEmptyInlineElement\n     * @grammar   UM.dom.domUtils.isEmptyInlineElement(node)  => 1|0\n     * @example\n     * <b><i></i></b> => 1\n     * <b><i></i><u></u></b> => 1\n     * <b></b> => 1\n     * <b>xx<i></i></b> => 0\n     */\n    isEmptyInlineElement: function (node) {\n        if (node.nodeType != 1 || !dtd.$removeEmpty[ node.tagName ]) {\n            return 0;\n        }\n        node = node.firstChild;\n        while (node) {\n            //如果是创建的bookmark就跳过\n            if (domUtils.isBookmarkNode(node)) {\n                return 0;\n            }\n            if (node.nodeType == 1 && !domUtils.isEmptyInlineElement(node) ||\n                node.nodeType == 3 && !domUtils.isWhitespace(node)\n                ) {\n                return 0;\n            }\n            node = node.nextSibling;\n        }\n        return 1;\n\n    },\n\n\n    /**\n     * 检查节点node是否为块元素\n     * @name isBlockElm\n     * @grammar UM.dom.domUtils.isBlockElm(node)  => true|false\n     */\n    isBlockElm: function (node) {\n        return node.nodeType == 1 && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node, 'display')]) && !dtd.$nonChild[node.tagName];\n    },\n\n\n    /**\n     * 原生方法getElementsByTagName的封装\n     * @name getElementsByTagName\n     * @grammar UM.dom.domUtils.getElementsByTagName(node,tagName)  => Array  //节点集合数组\n     */\n    getElementsByTagName: function (node, name, filter) {\n        if (filter && utils.isString(filter)) {\n            var className = filter;\n            filter = function (node) {\n                var result = false;\n                $.each(utils.trim(className).replace(/[ ]{2,}/g, ' ').split(' '), function (i, v) {\n                    if ($(node).hasClass(v)) {\n                        result = true;\n                        return false;\n                    }\n                })\n                return result;\n            }\n        }\n        name = utils.trim(name).replace(/[ ]{2,}/g, ' ').split(' ');\n        var arr = [];\n        for (var n = 0, ni; ni = name[n++];) {\n            var list = node.getElementsByTagName(ni);\n            for (var i = 0, ci; ci = list[i++];) {\n                if (!filter || filter(ci))\n                    arr.push(ci);\n            }\n        }\n        return arr;\n    },\n\n\n    /**\n     * 设置节点node及其子节点不会被选中\n     * @name unSelectable\n     * @grammar UM.dom.domUtils.unSelectable(node)\n     */\n    unSelectable: ie && browser.ie9below || browser.opera ? function (node) {\n        //for ie9\n        node.onselectstart = function () {\n            return false;\n        };\n        node.onclick = node.onkeyup = node.onkeydown = function () {\n            return false;\n        };\n        node.unselectable = 'on';\n        node.setAttribute(\"unselectable\", \"on\");\n        for (var i = 0, ci; ci = node.all[i++];) {\n            switch (ci.tagName.toLowerCase()) {\n                case 'iframe' :\n                case 'textarea' :\n                case 'input' :\n                case 'select' :\n                    break;\n                default :\n                    ci.unselectable = 'on';\n                    node.setAttribute(\"unselectable\", \"on\");\n            }\n        }\n    } : function (node) {\n        node.style.MozUserSelect =\n            node.style.webkitUserSelect =\n                    node.style.msUserSelect =\n                        node.style.KhtmlUserSelect = 'none';\n    },\n    /**\n     * 删除节点node上的属性attrNames，attrNames为属性名称数组\n     * @name  removeAttributes\n     * @grammar UM.dom.domUtils.removeAttributes(node,attrNames)\n     * @example\n     * //Before remove\n     * <span style=\"font-size:14px;\" id=\"test\" name=\"followMe\">xxxxx</span>\n     * //Remove\n     * UM.dom.domUtils.removeAttributes(node,[\"id\",\"name\"]);\n     * //After remove\n     * <span style=\"font-size:14px;\">xxxxx</span>\n     */\n    removeAttributes: function (node, attrNames) {\n        attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g, ' ').split(' ');\n        for (var i = 0, ci; ci = attrNames[i++];) {\n            ci = attrFix[ci] || ci;\n            switch (ci) {\n                case 'className':\n                    node[ci] = '';\n                    break;\n                case 'style':\n                    node.style.cssText = '';\n                    !browser.ie && node.removeAttributeNode(node.getAttributeNode('style'))\n            }\n            node.removeAttribute(ci);\n        }\n    },\n    /**\n     * 在doc下创建一个标签名为tag，属性为attrs的元素\n     * @name createElement\n     * @grammar UM.dom.domUtils.createElement(doc,tag,attrs)  =>  Node  //返回创建的节点\n     */\n    createElement: function (doc, tag, attrs) {\n        return domUtils.setAttributes(doc.createElement(tag), attrs)\n    },\n    /**\n     * 为节点node添加属性attrs，attrs为属性键值对\n     * @name setAttributes\n     * @grammar UM.dom.domUtils.setAttributes(node,attrs)  => node\n     */\n    setAttributes: function (node, attrs) {\n        for (var attr in attrs) {\n            if (attrs.hasOwnProperty(attr)) {\n                var value = attrs[attr];\n                switch (attr) {\n                    case 'class':\n                        //ie下要这样赋值，setAttribute不起作用\n                        node.className = value;\n                        break;\n                    case 'style' :\n                        node.style.cssText = node.style.cssText + \";\" + value;\n                        break;\n                    case 'innerHTML':\n                        node[attr] = value;\n                        break;\n                    case 'value':\n                        node.value = value;\n                        break;\n                    default:\n                        node.setAttribute(attrFix[attr] || attr, value);\n                }\n            }\n        }\n        return node;\n    },\n\n    /**\n     * 获取元素element的计算样式\n     * @name getComputedStyle\n     * @grammar UM.dom.domUtils.getComputedStyle(element,styleName)  => String //返回对应样式名称的样式值\n     * @example\n     * getComputedStyle(document.body,\"font-size\")  =>  \"15px\"\n     * getComputedStyle(form,\"color\")  =>  \"#ffccdd\"\n     */\n    getComputedStyle: function (element, styleName) {\n        return utils.transUnitToPx(utils.fixColor(styleName, $(element).css(styleName)));\n    },\n\n    /**\n     * 阻止事件默认行为\n     * @param {Event} evt    需要组织的事件对象\n     */\n    preventDefault: function (evt) {\n        evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);\n    },\n\n    /**\n     * 删除元素element指定的样式\n     * @method removeStyle\n     * @param { Element } element 需要删除样式的元素\n     * @param { String } styleName 需要删除的样式名\n     * @example\n     * ```html\n     * <span id=\"test\" style=\"color: red; background: blue;\"></span>\n     *\n     * <script>\n     *\n     *     var testNode = document.getElementById(\"test\");\n     *\n     *     UE.dom.domUtils.removeStyle( testNode, 'color' );\n     *\n     *     //output: background: blue;\n     *     console.log( testNode.style.cssText );\n     *\n     * </script>\n     * ```\n     */\n    removeStyle:function (element, name) {\n        if(browser.ie ){\n            //针对color先单独处理一下\n            if(name == 'color'){\n                name = '(^|;)' + name;\n            }\n            element.style.cssText = element.style.cssText.replace(new RegExp(name + '[^:]*:[^;]+;?','ig'),'')\n        }else{\n            if (element.style.removeProperty) {\n                element.style.removeProperty (name);\n            }else {\n                element.style.removeAttribute (utils.cssStyleToDomStyle(name));\n            }\n        }\n\n\n        if (!element.style.cssText) {\n            domUtils.removeAttributes(element, ['style']);\n        }\n    },\n\n    /**\n     * 获取元素element的某个样式值\n     * @name getStyle\n     * @grammar UM.dom.domUtils.getStyle(element,name)  => String\n     */\n    getStyle: function (element, name) {\n        var value = element.style[ utils.cssStyleToDomStyle(name) ];\n        return utils.fixColor(name, value);\n    },\n    /**\n     * 为元素element设置样式属性值\n     * @name setStyle\n     * @grammar UM.dom.domUtils.setStyle(element,name,value)\n     */\n    setStyle: function (element, name, value) {\n        element.style[utils.cssStyleToDomStyle(name)] = value;\n        if (!utils.trim(element.style.cssText)) {\n            this.removeAttributes(element, 'style')\n        }\n    },\n\n    /**\n     * 删除_moz_dirty属性\n     * @function\n     */\n    removeDirtyAttr: function (node) {\n        for (var i = 0, ci, nodes = node.getElementsByTagName('*'); ci = nodes[i++];) {\n            ci.removeAttribute('_moz_dirty');\n        }\n        node.removeAttribute('_moz_dirty');\n    },\n    /**\n     * 返回子节点的数量\n     * @function\n     * @param {Node}    node    父节点\n     * @param  {Function}    fn    过滤子节点的规则，若为空，则得到所有子节点的数量\n     * @return {Number}    符合条件子节点的数量\n     */\n    getChildCount: function (node, fn) {\n        var count = 0, first = node.firstChild;\n        fn = fn || function () {\n            return 1;\n        };\n        while (first) {\n            if (fn(first)) {\n                count++;\n            }\n            first = first.nextSibling;\n        }\n        return count;\n    },\n\n    /**\n     * 判断是否为空节点\n     * @function\n     * @param {Node}    node    节点\n     * @return {Boolean}    是否为空节点\n     */\n    isEmptyNode: function (node) {\n        return !node.firstChild || domUtils.getChildCount(node, function (node) {\n            return  !domUtils.isBr(node) && !domUtils.isBookmarkNode(node) && !domUtils.isWhitespace(node)\n        }) == 0\n    },\n\n    /**\n     * 判断节点是否为br\n     * @function\n     * @param {Node}    node   节点\n     */\n    isBr: function (node) {\n        return node.nodeType == 1 && node.tagName == 'BR';\n    },\n    isFillChar: function (node, isInStart) {\n        return node.nodeType == 3 && !node.nodeValue.replace(new RegExp((isInStart ? '^' : '' ) + domUtils.fillChar), '').length\n    },\n\n    isEmptyBlock: function (node, reg) {\n        if (node.nodeType != 1)\n            return 0;\n        reg = reg || new RegExp('[ \\t\\r\\n' + domUtils.fillChar + ']', 'g');\n        if (node[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').length > 0) {\n            return 0;\n        }\n        for (var n in dtd.$isNotEmpty) {\n            if (node.getElementsByTagName(n).length) {\n                return 0;\n            }\n        }\n        return 1;\n    },\n\n    //判断是否是编辑器自定义的参数\n    isCustomeNode: function (node) {\n        return node.nodeType == 1 && node.getAttribute('_ue_custom_node_');\n    },\n    fillNode: function (doc, node) {\n        var tmpNode = browser.ie ? doc.createTextNode(domUtils.fillChar) : doc.createElement('br');\n        node.innerHTML = '';\n        node.appendChild(tmpNode);\n    },\n    isBoundaryNode: function (node, dir) {\n        var tmp;\n        while (!domUtils.isBody(node)) {\n            tmp = node;\n            node = node.parentNode;\n            if (tmp !== node[dir]) {\n                return false;\n            }\n        }\n        return true;\n    },\n    isFillChar: function (node, isInStart) {\n        return node.nodeType == 3 && !node.nodeValue.replace(new RegExp((isInStart ? '^' : '' ) + domUtils.fillChar), '').length\n    },\n    isBody: function(node){\n        return $(node).hasClass('edui-body-container');\n    }\n};\nvar fillCharReg = new RegExp(domUtils.fillChar, 'g');\n///import editor.js\n///import core/utils.js\n///import core/browser.js\n///import core/dom/dom.js\n///import core/dom/dtd.js\n///import core/dom/domUtils.js\n/**\n * @file\n * @name UM.dom.Range\n * @anthor zhanyi\n * @short Range\n * @import editor.js,core/utils.js,core/browser.js,core/dom/domUtils.js,core/dom/dtd.js\n * @desc Range范围实现类，本类是UEditor底层核心类，统一w3cRange和ieRange之间的差异，包括接口和属性\n */\n(function () {\n    var guid = 0,\n        fillChar = domUtils.fillChar,\n        fillData;\n\n    /**\n     * 更新range的collapse状态\n     * @param  {Range}   range    range对象\n     */\n    function updateCollapse(range) {\n        range.collapsed =\n            range.startContainer && range.endContainer &&\n                range.startContainer === range.endContainer &&\n                range.startOffset == range.endOffset;\n    }\n\n    function selectOneNode(rng){\n        return !rng.collapsed && rng.startContainer.nodeType == 1 && rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset == 1\n    }\n    function setEndPoint(toStart, node, offset, range) {\n        //如果node是自闭合标签要处理\n        if (node.nodeType == 1 && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName])) {\n            offset = domUtils.getNodeIndex(node) + (toStart ? 0 : 1);\n            node = node.parentNode;\n        }\n        if (toStart) {\n            range.startContainer = node;\n            range.startOffset = offset;\n            if (!range.endContainer) {\n                range.collapse(true);\n            }\n        } else {\n            range.endContainer = node;\n            range.endOffset = offset;\n            if (!range.startContainer) {\n                range.collapse(false);\n            }\n        }\n        updateCollapse(range);\n        return range;\n    }\n\n\n    /**\n     * @name Range\n     * @grammar new UM.dom.Range(document)  => Range 实例\n     * @desc 创建一个跟document绑定的空的Range实例\n     * - ***startContainer*** 开始边界的容器节点,可以是elementNode或者是textNode\n     * - ***startOffset*** 容器节点中的偏移量，如果是elementNode就是childNodes中的第几个，如果是textNode就是nodeValue的第几个字符\n     * - ***endContainer*** 结束边界的容器节点,可以是elementNode或者是textNode\n     * - ***endOffset*** 容器节点中的偏移量，如果是elementNode就是childNodes中的第几个，如果是textNode就是nodeValue的第几个字符\n     * - ***document*** 跟range关联的document对象\n     * - ***collapsed*** 是否是闭合状态\n     */\n    var Range = dom.Range = function (document,body) {\n        var me = this;\n        me.startContainer =\n            me.startOffset =\n                me.endContainer =\n                    me.endOffset = null;\n        me.document = document;\n        me.collapsed = true;\n        me.body = body;\n    };\n\n    /**\n     * 删除fillData\n     * @param doc\n     * @param excludeNode\n     */\n    function removeFillData(doc, excludeNode) {\n        try {\n            if (fillData && domUtils.inDoc(fillData, doc)) {\n                if (!fillData.nodeValue.replace(fillCharReg, '').length) {\n                    var tmpNode = fillData.parentNode;\n                    domUtils.remove(fillData);\n                    while (tmpNode && domUtils.isEmptyInlineElement(tmpNode) &&\n                        //safari的contains有bug\n                        (browser.safari ? !(domUtils.getPosition(tmpNode,excludeNode) & domUtils.POSITION_CONTAINS) : !tmpNode.contains(excludeNode))\n                        ) {\n                        fillData = tmpNode.parentNode;\n                        domUtils.remove(tmpNode);\n                        tmpNode = fillData;\n                    }\n                } else {\n                    fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, '');\n                }\n            }\n        } catch (e) {\n        }\n    }\n\n    /**\n     *\n     * @param node\n     * @param dir\n     */\n    function mergeSibling(node, dir) {\n        var tmpNode;\n        node = node[dir];\n        while (node && domUtils.isFillChar(node)) {\n            tmpNode = node[dir];\n            domUtils.remove(node);\n            node = tmpNode;\n        }\n    }\n\n    function execContentsAction(range, action) {\n        //调整边界\n        //range.includeBookmark();\n        var start = range.startContainer,\n            end = range.endContainer,\n            startOffset = range.startOffset,\n            endOffset = range.endOffset,\n            doc = range.document,\n            frag = doc.createDocumentFragment(),\n            tmpStart, tmpEnd;\n        if (start.nodeType == 1) {\n            start = start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode('')));\n        }\n        if (end.nodeType == 1) {\n            end = end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode('')));\n        }\n        if (start === end && start.nodeType == 3) {\n            frag.appendChild(doc.createTextNode(start.substringData(startOffset, endOffset - startOffset)));\n            //is not clone\n            if (action) {\n                start.deleteData(startOffset, endOffset - startOffset);\n                range.collapse(true);\n            }\n            return frag;\n        }\n        var current, currentLevel, clone = frag,\n            startParents = domUtils.findParents(start, true), endParents = domUtils.findParents(end, true);\n        for (var i = 0; startParents[i] == endParents[i];) {\n            i++;\n        }\n        for (var j = i, si; si = startParents[j]; j++) {\n            current = si.nextSibling;\n            if (si == start) {\n                if (!tmpStart) {\n                    if (range.startContainer.nodeType == 3) {\n                        clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset)));\n                        //is not clone\n                        if (action) {\n                            start.deleteData(startOffset, start.nodeValue.length - startOffset);\n                        }\n                    } else {\n                        clone.appendChild(!action ? start.cloneNode(true) : start);\n                    }\n                }\n            } else {\n                currentLevel = si.cloneNode(false);\n                clone.appendChild(currentLevel);\n            }\n            while (current) {\n                if (current === end || current === endParents[j]) {\n                    break;\n                }\n                si = current.nextSibling;\n                clone.appendChild(!action ? current.cloneNode(true) : current);\n                current = si;\n            }\n            clone = currentLevel;\n        }\n        clone = frag;\n        if (!startParents[i]) {\n            clone.appendChild(startParents[i - 1].cloneNode(false));\n            clone = clone.firstChild;\n        }\n        for (var j = i, ei; ei = endParents[j]; j++) {\n            current = ei.previousSibling;\n            if (ei == end) {\n                if (!tmpEnd && range.endContainer.nodeType == 3) {\n                    clone.appendChild(doc.createTextNode(end.substringData(0, endOffset)));\n                    //is not clone\n                    if (action) {\n                        end.deleteData(0, endOffset);\n                    }\n                }\n            } else {\n                currentLevel = ei.cloneNode(false);\n                clone.appendChild(currentLevel);\n            }\n            //如果两端同级，右边第一次已经被开始做了\n            if (j != i || !startParents[i]) {\n                while (current) {\n                    if (current === start) {\n                        break;\n                    }\n                    ei = current.previousSibling;\n                    clone.insertBefore(!action ? current.cloneNode(true) : current, clone.firstChild);\n                    current = ei;\n                }\n            }\n            clone = currentLevel;\n        }\n        if (action) {\n            range.setStartBefore(!endParents[i] ? endParents[i - 1] : !startParents[i] ? startParents[i - 1] : endParents[i]).collapse(true);\n        }\n        tmpStart && domUtils.remove(tmpStart);\n        tmpEnd && domUtils.remove(tmpEnd);\n        return frag;\n    }\n    Range.prototype = {\n        /**\n         * @name deleteContents\n         * @grammar range.deleteContents()  => Range\n         * @desc 删除当前选区范围中的所有内容并返回range实例，这时的range已经变成了闭合状态\n         * @example\n         * DOM Element :\n         * <b>x<i>x[x<i>xx]x</b>\n         * //执行方法后\n         * <b>x<i>x<i>|x</b>\n         * 注意range改变了\n         * range.startContainer => b\n         * range.startOffset  => 2\n         * range.endContainer => b\n         * range.endOffset => 2\n         * range.collapsed => true\n         */\n        deleteContents:function () {\n            var txt;\n            if (!this.collapsed) {\n                execContentsAction(this, 1);\n            }\n            if (browser.webkit) {\n                txt = this.startContainer;\n                if (txt.nodeType == 3 && !txt.nodeValue.length) {\n                    this.setStartBefore(txt).collapse(true);\n                    domUtils.remove(txt);\n                }\n            }\n            return this;\n        },\n        inFillChar : function(){\n            var start = this.startContainer;\n            if(this.collapsed && start.nodeType == 3\n                && start.nodeValue.replace(new RegExp('^' + domUtils.fillChar),'').length + 1 == start.nodeValue.length\n                ){\n                return true;\n            }\n            return false;\n        },\n        /**\n         * @name  setStart\n         * @grammar range.setStart(node,offset)  => Range\n         * @desc    设置range的开始位置位于node节点内，偏移量为offset\n         * 如果node是elementNode那offset指的是childNodes中的第几个，如果是textNode那offset指的是nodeValue的第几个字符\n         */\n        setStart:function (node, offset) {\n            return setEndPoint(true, node, offset, this);\n        },\n        /**\n         * 设置range的结束位置位于node节点，偏移量为offset\n         * 如果node是elementNode那offset指的是childNodes中的第几个，如果是textNode那offset指的是nodeValue的第几个字符\n         * @name  setEnd\n         * @grammar range.setEnd(node,offset)  => Range\n         */\n        setEnd:function (node, offset) {\n            return setEndPoint(false, node, offset, this);\n        },\n        /**\n         * 将Range开始位置设置到node节点之后\n         * @name  setStartAfter\n         * @grammar range.setStartAfter(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * 执行setStartAfter(i)后\n         * range.startContainer =>b\n         * range.startOffset =>2\n         */\n        setStartAfter:function (node) {\n            return this.setStart(node.parentNode, domUtils.getNodeIndex(node) + 1);\n        },\n        /**\n         * 将Range开始位置设置到node节点之前\n         * @name  setStartBefore\n         * @grammar range.setStartBefore(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * 执行setStartBefore(i)后\n         * range.startContainer =>b\n         * range.startOffset =>1\n         */\n        setStartBefore:function (node) {\n            return this.setStart(node.parentNode, domUtils.getNodeIndex(node));\n        },\n        /**\n         * 将Range结束位置设置到node节点之后\n         * @name  setEndAfter\n         * @grammar range.setEndAfter(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * setEndAfter(i)后\n         * range.endContainer =>b\n         * range.endtOffset =>2\n         */\n        setEndAfter:function (node) {\n            return this.setEnd(node.parentNode, domUtils.getNodeIndex(node) + 1);\n        },\n        /**\n         * 将Range结束位置设置到node节点之前\n         * @name  setEndBefore\n         * @grammar range.setEndBefore(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * 执行setEndBefore(i)后\n         * range.endContainer =>b\n         * range.endtOffset =>1\n         */\n        setEndBefore:function (node) {\n            return this.setEnd(node.parentNode, domUtils.getNodeIndex(node));\n        },\n        /**\n         * 将Range开始位置设置到node节点内的开始位置\n         * @name  setStartAtFirst\n         * @grammar range.setStartAtFirst(node)  => Range\n         */\n        setStartAtFirst:function (node) {\n            return this.setStart(node, 0);\n        },\n        /**\n         * 将Range开始位置设置到node节点内的结束位置\n         * @name  setStartAtLast\n         * @grammar range.setStartAtLast(node)  => Range\n         */\n        setStartAtLast:function (node) {\n            return this.setStart(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);\n        },\n        /**\n         * 将Range结束位置设置到node节点内的开始位置\n         * @name  setEndAtFirst\n         * @grammar range.setEndAtFirst(node)  => Range\n         */\n        setEndAtFirst:function (node) {\n            return this.setEnd(node, 0);\n        },\n        /**\n         * 将Range结束位置设置到node节点内的结束位置\n         * @name  setEndAtLast\n         * @grammar range.setEndAtLast(node)  => Range\n         */\n        setEndAtLast:function (node) {\n            return this.setEnd(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);\n        },\n\n        /**\n         * 选中完整的指定节点,并返回包含该节点的range\n         * @name  selectNode\n         * @grammar range.selectNode(node)  => Range\n         */\n        selectNode:function (node) {\n            return this.setStartBefore(node).setEndAfter(node);\n        },\n        /**\n         * 选中node内部的所有节点，并返回对应的range\n         * @name selectNodeContents\n         * @grammar range.selectNodeContents(node)  => Range\n         * @example\n         * <b>xx[x<i>xxx</i>]xxx</b>\n         * 执行后\n         * <b>[xxx<i>xxx</i>xxx]</b>\n         * range.startContainer =>b\n         * range.startOffset =>0\n         * range.endContainer =>b\n         * range.endOffset =>3\n         */\n        selectNodeContents:function (node) {\n            return this.setStart(node, 0).setEndAtLast(node);\n        },\n\n        /**\n         * 克隆一个新的range对象\n         * @name  cloneRange\n         * @grammar range.cloneRange() => Range\n         */\n        cloneRange:function () {\n            var me = this;\n            return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset);\n\n        },\n\n        /**\n         * 让选区闭合到尾部，若toStart为真，则闭合到头部\n         * @name  collapse\n         * @grammar range.collapse() => Range\n         * @grammar range.collapse(true) => Range   //闭合选区到头部\n         */\n        collapse:function (toStart) {\n            var me = this;\n            if (toStart) {\n                me.endContainer = me.startContainer;\n                me.endOffset = me.startOffset;\n            } else {\n                me.startContainer = me.endContainer;\n                me.startOffset = me.endOffset;\n            }\n            me.collapsed = true;\n            return me;\n        },\n\n        /**\n         * 调整range的边界，使其\"收缩\"到最小的位置\n         * @name  shrinkBoundary\n         * @grammar range.shrinkBoundary()  => Range  //range开始位置和结束位置都调整，参见<code><a href=\"#adjustmentboundary\">adjustmentBoundary</a></code>\n         * @grammar range.shrinkBoundary(true)  => Range  //仅调整开始位置，忽略结束位置\n         * @example\n         * <b>xx[</b>xxxxx] ==> <b>xx</b>[xxxxx]\n         * <b>x[xx</b><i>]xxx</i> ==> <b>x[xx]</b><i>xxx</i>\n         * [<b><i>xxxx</i>xxxxxxx</b>] ==> <b><i>[xxxx</i>xxxxxxx]</b>\n         */\n        shrinkBoundary:function (ignoreEnd) {\n            var me = this, child,\n                collapsed = me.collapsed;\n            function check(node){\n                return node.nodeType == 1 && !domUtils.isBookmarkNode(node) && !dtd.$empty[node.tagName] && !dtd.$nonChild[node.tagName]\n            }\n            while (me.startContainer.nodeType == 1 //是element\n                && (child = me.startContainer.childNodes[me.startOffset]) //子节点也是element\n                && check(child)) {\n                me.setStart(child, 0);\n            }\n            if (collapsed) {\n                return me.collapse(true);\n            }\n            if (!ignoreEnd) {\n                while (me.endContainer.nodeType == 1//是element\n                    && me.endOffset > 0 //如果是空元素就退出 endOffset=0那么endOffst-1为负值，childNodes[endOffset]报错\n                    && (child = me.endContainer.childNodes[me.endOffset - 1]) //子节点也是element\n                    && check(child)) {\n                    me.setEnd(child, child.childNodes.length);\n                }\n            }\n            return me;\n        },\n\n        /**\n         * 调整边界容器，如果是textNode,就调整到elementNode上\n         * @name trimBoundary\n         * @grammar range.trimBoundary([ignoreEnd])  => Range //true忽略结束边界\n         * @example\n         * DOM Element :\n         * <b>|xxx</b>\n         * startContainer = xxx; startOffset = 0\n         * //执行后本方法后\n         * startContainer = <b>;  startOffset = 0\n         * @example\n         * Dom Element :\n         * <b>xx|x</b>\n         * startContainer = xxx;  startOffset = 2\n         * //执行本方法后，xxx被实实在在地切分成两个TextNode\n         * startContainer = <b>; startOffset = 1\n         */\n        trimBoundary:function (ignoreEnd) {\n            this.txtToElmBoundary();\n            var start = this.startContainer,\n                offset = this.startOffset,\n                collapsed = this.collapsed,\n                end = this.endContainer;\n            if (start.nodeType == 3) {\n                if (offset == 0) {\n                    this.setStartBefore(start);\n                } else {\n                    if (offset >= start.nodeValue.length) {\n                        this.setStartAfter(start);\n                    } else {\n                        var textNode = domUtils.split(start, offset);\n                        //跟新结束边界\n                        if (start === end) {\n                            this.setEnd(textNode, this.endOffset - offset);\n                        } else if (start.parentNode === end) {\n                            this.endOffset += 1;\n                        }\n                        this.setStartBefore(textNode);\n                    }\n                }\n                if (collapsed) {\n                    return this.collapse(true);\n                }\n            }\n            if (!ignoreEnd) {\n                offset = this.endOffset;\n                end = this.endContainer;\n                if (end.nodeType == 3) {\n                    if (offset == 0) {\n                        this.setEndBefore(end);\n                    } else {\n                        offset < end.nodeValue.length && domUtils.split(end, offset);\n                        this.setEndAfter(end);\n                    }\n                }\n            }\n            return this;\n        },\n        /**\n         * 如果选区在文本的边界上，就扩展选区到文本的父节点上\n         * @name  txtToElmBoundary\n         * @example\n         * Dom Element :\n         * <b> |xxx</b>\n         * startContainer = xxx;  startOffset = 0\n         * //本方法执行后\n         * startContainer = <b>; startOffset = 0\n         * @example\n         * Dom Element :\n         * <b> xxx| </b>\n         * startContainer = xxx; startOffset = 3\n         * //本方法执行后\n         * startContainer = <b>; startOffset = 1\n         */\n        txtToElmBoundary:function (ignoreCollapsed) {\n            function adjust(r, c) {\n                var container = r[c + 'Container'],\n                    offset = r[c + 'Offset'];\n                if (container.nodeType == 3) {\n                    if (!offset) {\n                        r['set' + c.replace(/(\\w)/, function (a) {\n                            return a.toUpperCase();\n                        }) + 'Before'](container);\n                    } else if (offset >= container.nodeValue.length) {\n                        r['set' + c.replace(/(\\w)/, function (a) {\n                            return a.toUpperCase();\n                        }) + 'After' ](container);\n                    }\n                }\n            }\n\n            if (ignoreCollapsed || !this.collapsed) {\n                adjust(this, 'start');\n                adjust(this, 'end');\n            }\n            return this;\n        },\n\n        /**\n         * 在当前选区的开始位置前插入一个节点或者fragment，range的开始位置会在插入节点的前边\n         * @name  insertNode\n         * @grammar range.insertNode(node)  => Range //node可以是textNode,elementNode,fragment\n         * @example\n         * Range :\n         * xxx[x<p>xxxx</p>xxxx]x<p>sdfsdf</p>\n         * 待插入Node :\n         * <p>ssss</p>\n         * 执行本方法后的Range :\n         * xxx[<p>ssss</p>x<p>xxxx</p>xxxx]x<p>sdfsdf</p>\n         */\n        insertNode:function (node) {\n            var first = node, length = 1;\n            if (node.nodeType == 11) {\n                first = node.firstChild;\n                length = node.childNodes.length;\n            }\n            this.trimBoundary(true);\n            var start = this.startContainer,\n                offset = this.startOffset;\n            var nextNode = start.childNodes[ offset ];\n            if (nextNode) {\n                start.insertBefore(node, nextNode);\n            } else {\n                start.appendChild(node);\n            }\n            if (first.parentNode === this.endContainer) {\n                this.endOffset = this.endOffset + length;\n            }\n            return this.setStartBefore(first);\n        },\n        /**\n         * 设置光标闭合位置,toEnd设置为true时光标将闭合到选区的结尾\n         * @name  setCursor\n         * @grammar range.setCursor([toEnd])  =>  Range   //toEnd为true时，光标闭合到选区的末尾\n         */\n        setCursor:function (toEnd, noFillData) {\n            return this.collapse(!toEnd).select(noFillData);\n        },\n        /**\n         * 创建当前range的一个书签，记录下当前range的位置，方便当dom树改变时，还能找回原来的选区位置\n         * @name createBookmark\n         * @grammar range.createBookmark([serialize])  => Object  //{start:开始标记,end:结束标记,id:serialize} serialize为真时，开始结束标记是插入节点的id，否则是插入节点的引用\n         */\n        createBookmark:function (serialize, same) {\n            var endNode,\n                startNode = this.document.createElement('span');\n            startNode.style.cssText = 'display:none;line-height:0px;';\n            startNode.appendChild(this.document.createTextNode('\\u200D'));\n            startNode.id = '_baidu_bookmark_start_' + (same ? '' : guid++);\n\n            if (!this.collapsed) {\n                endNode = startNode.cloneNode(true);\n                endNode.id = '_baidu_bookmark_end_' + (same ? '' : guid++);\n            }\n            this.insertNode(startNode);\n            if (endNode) {\n                this.collapse().insertNode(endNode).setEndBefore(endNode);\n            }\n            this.setStartAfter(startNode);\n            return {\n                start:serialize ? startNode.id : startNode,\n                end:endNode ? serialize ? endNode.id : endNode : null,\n                id:serialize\n            }\n        },\n        /**\n         *  移动边界到书签位置，并删除插入的书签节点\n         *  @name  moveToBookmark\n         *  @grammar range.moveToBookmark(bookmark)  => Range //让当前的range选到给定bookmark的位置,bookmark对象是由range.createBookmark创建的\n         */\n        moveToBookmark:function (bookmark) {\n            var start = bookmark.id ? this.document.getElementById(bookmark.start) : bookmark.start,\n                end = bookmark.end && bookmark.id ? this.document.getElementById(bookmark.end) : bookmark.end;\n            this.setStartBefore(start);\n            domUtils.remove(start);\n            if (end) {\n                this.setEndBefore(end);\n                domUtils.remove(end);\n            } else {\n                this.collapse(true);\n            }\n            return this;\n        },\n\n        /**\n         * 调整Range的边界，使其\"缩小\"到最合适的位置\n         * @name adjustmentBoundary\n         * @grammar range.adjustmentBoundary() => Range   //参见<code><a href=\"#shrinkboundary\">shrinkBoundary</a></code>\n         * @example\n         * <b>xx[</b>xxxxx] ==> <b>xx</b>[xxxxx]\n         * <b>x[xx</b><i>]xxx</i> ==> <b>x[xx</b>]<i>xxx</i>\n         */\n        adjustmentBoundary:function () {\n            if (!this.collapsed) {\n                while (!domUtils.isBody(this.startContainer) &&\n                    this.startOffset == this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length &&\n                    this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length\n                    ) {\n\n                    this.setStartAfter(this.startContainer);\n                }\n                while (!domUtils.isBody(this.endContainer) && !this.endOffset &&\n                    this.endContainer[this.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length\n                    ) {\n                    this.setEndBefore(this.endContainer);\n                }\n            }\n            return this;\n        },\n\n        /**\n         * 得到一个自闭合的节点,常用于获取自闭和的节点，例如图片节点\n         * @name  getClosedNode\n         * @grammar range.getClosedNode()  => node|null\n         * @example\n         * <b>xxxx[<img />]xxx</b>\n         */\n        getClosedNode:function () {\n            var node;\n            if (!this.collapsed) {\n                var range = this.cloneRange().adjustmentBoundary().shrinkBoundary();\n                if (selectOneNode(range)) {\n                    var child = range.startContainer.childNodes[range.startOffset];\n                    if (child && child.nodeType == 1 && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])) {\n                        node = child;\n                    }\n                }\n            }\n            return node;\n        },\n        /**\n         * 根据当前range选中内容节点（在页面上表现为反白显示）\n         * @name select\n         * @grammar range.select();  => Range\n         */\n        select:browser.ie ? function (noFillData, textRange) {\n            var nativeRange;\n            if (!this.collapsed)\n                this.shrinkBoundary();\n            var node = this.getClosedNode();\n            if (node && !textRange) {\n                try {\n                    nativeRange = this.document.body.createControlRange();\n                    nativeRange.addElement(node);\n                    nativeRange.select();\n                } catch (e) {}\n                return this;\n            }\n            var bookmark = this.createBookmark(),\n                start = bookmark.start,\n                end;\n            nativeRange = this.document.body.createTextRange();\n            nativeRange.moveToElementText(start);\n            nativeRange.moveStart('character', 1);\n            if (!this.collapsed) {\n                var nativeRangeEnd = this.document.body.createTextRange();\n                end = bookmark.end;\n                nativeRangeEnd.moveToElementText(end);\n                nativeRange.setEndPoint('EndToEnd', nativeRangeEnd);\n            } else {\n                if (!noFillData && this.startContainer.nodeType != 3) {\n                    //使用<span>|x<span>固定住光标\n                    var tmpText = this.document.createTextNode(fillChar),\n                        tmp = this.document.createElement('span');\n                    tmp.appendChild(this.document.createTextNode(fillChar));\n                    start.parentNode.insertBefore(tmp, start);\n                    start.parentNode.insertBefore(tmpText, start);\n                    //当点b,i,u时，不能清除i上边的b\n                    removeFillData(this.document, tmpText);\n                    fillData = tmpText;\n                    mergeSibling(tmp, 'previousSibling');\n                    mergeSibling(start, 'nextSibling');\n                    nativeRange.moveStart('character', -1);\n                    nativeRange.collapse(true);\n                }\n            }\n            this.moveToBookmark(bookmark);\n            tmp && domUtils.remove(tmp);\n            //IE在隐藏状态下不支持range操作，catch一下\n            try {\n                nativeRange.select();\n            } catch (e) {\n            }\n            return this;\n        } : function (notInsertFillData) {\n            function checkOffset(rng){\n\n                function check(node,offset,dir){\n                    if(node.nodeType == 3 && node.nodeValue.length < offset){\n                        rng[dir + 'Offset'] = node.nodeValue.length\n                    }\n                }\n                check(rng.startContainer,rng.startOffset,'start');\n                check(rng.endContainer,rng.endOffset,'end');\n            }\n            var win = domUtils.getWindow(this.document),\n                sel = win.getSelection(),\n                txtNode;\n            //FF下关闭自动长高时滚动条在关闭dialog时会跳\n            //ff下如果不body.focus将不能定位闭合光标到编辑器内\n            browser.gecko ? this.body.focus() : win.focus();\n            if (sel) {\n                sel.removeAllRanges();\n                // trace:870 chrome/safari后边是br对于闭合得range不能定位 所以去掉了判断\n                // this.startContainer.nodeType != 3 &&! ((child = this.startContainer.childNodes[this.startOffset]) && child.nodeType == 1 && child.tagName == 'BR'\n                if (this.collapsed && !notInsertFillData) {\n//                    //opear如果没有节点接着，原生的不能够定位,不能在body的第一级插入空白节点\n//                    if (notInsertFillData && browser.opera && !domUtils.isBody(this.startContainer) && this.startContainer.nodeType == 1) {\n//                        var tmp = this.document.createTextNode('');\n//                        this.insertNode(tmp).setStart(tmp, 0).collapse(true);\n//                    }\n//\n                    //处理光标落在文本节点的情况\n                    //处理以下的情况\n                    //<b>|xxxx</b>\n                    //<b>xxxx</b>|xxxx\n                    //xxxx<b>|</b>\n                    var start = this.startContainer,child = start;\n                    if(start.nodeType == 1){\n                        child = start.childNodes[this.startOffset];\n\n                    }\n                    if( !(start.nodeType == 3 && this.startOffset)  &&\n                        (child ?\n                            (!child.previousSibling || child.previousSibling.nodeType != 3)\n                            :\n                            (!start.lastChild || start.lastChild.nodeType != 3)\n                            )\n                        ){\n                        txtNode = this.document.createTextNode(fillChar);\n                        //跟着前边走\n                        this.insertNode(txtNode);\n                        removeFillData(this.document, txtNode);\n                        mergeSibling(txtNode, 'previousSibling');\n                        mergeSibling(txtNode, 'nextSibling');\n                        fillData = txtNode;\n                        this.setStart(txtNode, browser.webkit ? 1 : 0).collapse(true);\n                    }\n                }\n                var nativeRange = this.document.createRange();\n                if(this.collapsed && browser.opera && this.startContainer.nodeType == 1){\n                    var child = this.startContainer.childNodes[this.startOffset];\n                    if(!child){\n                        //往前靠拢\n                        child = this.startContainer.lastChild;\n                        if( child && domUtils.isBr(child)){\n                            this.setStartBefore(child).collapse(true);\n                        }\n                    }else{\n                        //向后靠拢\n                        while(child && domUtils.isBlockElm(child)){\n                            if(child.nodeType == 1 && child.childNodes[0]){\n                                child = child.childNodes[0]\n                            }else{\n                                break;\n                            }\n                        }\n                        child && this.setStartBefore(child).collapse(true)\n                    }\n\n                }\n                //是createAddress最后一位算的不准，现在这里进行微调\n                checkOffset(this);\n                nativeRange.setStart(this.startContainer, this.startOffset);\n                nativeRange.setEnd(this.endContainer, this.endOffset);\n                sel.addRange(nativeRange);\n            }\n            return this;\n        },\n      \n\n        createAddress : function(ignoreEnd,ignoreTxt){\n            var addr = {},me = this;\n\n            function getAddress(isStart){\n                var node = isStart ? me.startContainer : me.endContainer;\n                var parents = domUtils.findParents(node,true,function(node){return !domUtils.isBody(node)}),\n                    addrs = [];\n                for(var i = 0,ci;ci = parents[i++];){\n                    addrs.push(domUtils.getNodeIndex(ci,ignoreTxt));\n                }\n                var firstIndex = 0;\n\n                if(ignoreTxt){\n                    if(node.nodeType == 3){\n                        var tmpNode = node.previousSibling;\n                        while(tmpNode && tmpNode.nodeType == 3){\n                            firstIndex += tmpNode.nodeValue.replace(fillCharReg,'').length;\n                            tmpNode = tmpNode.previousSibling;\n                        }\n                        firstIndex +=  (isStart ? me.startOffset : me.endOffset)// - (fillCharReg.test(node.nodeValue) ? 1 : 0 )\n                    }else{\n                        node =  node.childNodes[ isStart ? me.startOffset : me.endOffset];\n                        if(node){\n                            firstIndex = domUtils.getNodeIndex(node,ignoreTxt);\n                        }else{\n                            node = isStart ? me.startContainer : me.endContainer;\n                            var first = node.firstChild;\n                            while(first){\n                                if(domUtils.isFillChar(first)){\n                                    first = first.nextSibling;\n                                    continue;\n                                }\n                                firstIndex++;\n                                if(first.nodeType == 3){\n                                    while( first && first.nodeType == 3){\n                                        first = first.nextSibling;\n                                    }\n                                }else{\n                                    first = first.nextSibling;\n                                }\n                            }\n                        }\n                    }\n\n                }else{\n                    firstIndex = isStart ? domUtils.isFillChar(node) ? 0 : me.startOffset  : me.endOffset\n                }\n                if(firstIndex < 0){\n                    firstIndex = 0;\n                }\n                addrs.push(firstIndex);\n                return addrs;\n            }\n            addr.startAddress = getAddress(true);\n            if(!ignoreEnd){\n                addr.endAddress = me.collapsed ? [].concat(addr.startAddress) : getAddress();\n            }\n            return addr;\n        },\n        moveToAddress : function(addr,ignoreEnd){\n            var me = this;\n            function getNode(address,isStart){\n                var tmpNode = me.body,\n                    parentNode,offset;\n                for(var i= 0,ci,l=address.length;i<l;i++){\n                    ci = address[i];\n                    parentNode = tmpNode;\n                    tmpNode = tmpNode.childNodes[ci];\n                    if(!tmpNode){\n                        offset = ci;\n                        break;\n                    }\n                }\n                if(isStart){\n                    if(tmpNode){\n                        me.setStartBefore(tmpNode)\n                    }else{\n                        me.setStart(parentNode,offset)\n                    }\n                }else{\n                    if(tmpNode){\n                        me.setEndBefore(tmpNode)\n                    }else{\n                        me.setEnd(parentNode,offset)\n                    }\n                }\n            }\n            getNode(addr.startAddress,true);\n            !ignoreEnd && addr.endAddress &&  getNode(addr.endAddress);\n            return me;\n        },\n        equals : function(rng){\n            for(var p in this){\n                if(this.hasOwnProperty(p)){\n                    if(this[p] !== rng[p])\n                        return false\n                }\n            }\n            return true;\n\n        },\n        scrollIntoView : function(){\n            var $span = $('<span style=\"padding:0;margin:0;display:block;border:0\">&nbsp;</span>');\n            this.cloneRange().insertNode($span.get(0));\n            var winScrollTop = $(window).scrollTop(),\n                winHeight = $(window).height(),\n                spanTop = $span.offset().top;\n            if(spanTop < winScrollTop-winHeight || spanTop > winScrollTop + winHeight ){\n                if(spanTop > winScrollTop + winHeight){\n                    window.scrollTo(0,spanTop - winHeight + $span.height())\n                }else{\n                    window.scrollTo(0,winScrollTop - spanTop)\n                }\n\n            }\n            $span.remove();\n        },\n        getOffset : function(){\n            var bk = this.createBookmark();\n            var offset = $(bk.start).css('display','inline-block').offset();\n            this.moveToBookmark(bk);\n            return offset\n        }\n    };\n})();\n///import editor.js\n///import core/browser.js\n///import core/dom/dom.js\n///import core/dom/dtd.js\n///import core/dom/domUtils.js\n///import core/dom/Range.js\n/**\n * @class UM.dom.Selection    Selection类\n */\n(function () {\n\n    function getBoundaryInformation( range, start ) {\n        var getIndex = domUtils.getNodeIndex;\n        range = range.duplicate();\n        range.collapse( start );\n        var parent = range.parentElement();\n        //如果节点里没有子节点，直接退出\n        if ( !parent.hasChildNodes() ) {\n            return  {container:parent, offset:0};\n        }\n        var siblings = parent.children,\n            child,\n            testRange = range.duplicate(),\n            startIndex = 0, endIndex = siblings.length - 1, index = -1,\n            distance;\n        while ( startIndex <= endIndex ) {\n            index = Math.floor( (startIndex + endIndex) / 2 );\n            child = siblings[index];\n            testRange.moveToElementText( child );\n            var position = testRange.compareEndPoints( 'StartToStart', range );\n            if ( position > 0 ) {\n                endIndex = index - 1;\n            } else if ( position < 0 ) {\n                startIndex = index + 1;\n            } else {\n                //trace:1043\n                return  {container:parent, offset:getIndex( child )};\n            }\n        }\n        if ( index == -1 ) {\n            testRange.moveToElementText( parent );\n            testRange.setEndPoint( 'StartToStart', range );\n            distance = testRange.text.replace( /(\\r\\n|\\r)/g, '\\n' ).length;\n            siblings = parent.childNodes;\n            if ( !distance ) {\n                child = siblings[siblings.length - 1];\n                return  {container:child, offset:child.nodeValue.length};\n            }\n\n            var i = siblings.length;\n            while ( distance > 0 ){\n                distance -= siblings[ --i ].nodeValue.length;\n            }\n            return {container:siblings[i], offset:-distance};\n        }\n        testRange.collapse( position > 0 );\n        testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );\n        distance = testRange.text.replace( /(\\r\\n|\\r)/g, '\\n' ).length;\n        if ( !distance ) {\n            return  dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName] ?\n            {container:parent, offset:getIndex( child ) + (position > 0 ? 0 : 1)} :\n            {container:child, offset:position > 0 ? 0 : child.childNodes.length}\n        }\n        while ( distance > 0 ) {\n            try {\n                var pre = child;\n                child = child[position > 0 ? 'previousSibling' : 'nextSibling'];\n                distance -= child.nodeValue.length;\n            } catch ( e ) {\n                return {container:parent, offset:getIndex( pre )};\n            }\n        }\n        return  {container:child, offset:position > 0 ? -distance : child.nodeValue.length + distance}\n    }\n\n    /**\n     * 将ieRange转换为Range对象\n     * @param {Range}   ieRange    ieRange对象\n     * @param {Range}   range      Range对象\n     * @return  {Range}  range       返回转换后的Range对象\n     */\n    function transformIERangeToRange( ieRange, range ) {\n        if ( ieRange.item ) {\n            range.selectNode( ieRange.item( 0 ) );\n        } else {\n            var bi = getBoundaryInformation( ieRange, true );\n            range.setStart( bi.container, bi.offset );\n            if ( ieRange.compareEndPoints( 'StartToEnd', ieRange ) != 0 ) {\n                bi = getBoundaryInformation( ieRange, false );\n                range.setEnd( bi.container, bi.offset );\n            }\n        }\n        return range;\n    }\n\n    /**\n     * 获得ieRange\n     * @param {Selection} sel    Selection对象\n     * @return {ieRange}    得到ieRange\n     */\n    function _getIERange( sel,txtRange ) {\n        var ieRange;\n        //ie下有可能报错\n        try {\n            ieRange = sel.getNative(txtRange).createRange();\n        } catch ( e ) {\n            return null;\n        }\n        var el = ieRange.item ? ieRange.item( 0 ) : ieRange.parentElement();\n        if ( ( el.ownerDocument || el ) === sel.document ) {\n            return ieRange;\n        }\n        return null;\n    }\n\n    var Selection = dom.Selection = function ( doc,body ) {\n        var me = this;\n        me.document = doc;\n        me.body = body;\n        if ( browser.ie9below ) {\n            $( body).on('beforedeactivate', function () {\n                me._bakIERange = me.getIERange();\n            } ).on('activate', function () {\n                try {\n                    var ieNativRng =  _getIERange( me );\n                    if ( (!ieNativRng || !me.rangeInBody(ieNativRng)) && me._bakIERange ) {\n                        me._bakIERange.select();\n                    }\n                } catch ( ex ) {\n                }\n                me._bakIERange = null;\n            } );\n        }\n    };\n\n    Selection.prototype = {\n        hasNativeRange : function(){\n            var rng;\n            if(!browser.ie || browser.ie9above){\n                var nativeSel = this.getNative();\n                if(!nativeSel.rangeCount){\n                    return false;\n                }\n                rng = nativeSel.getRangeAt(0);\n            }else{\n                rng = _getIERange(this);\n            }\n            return this.rangeInBody(rng);\n        },\n        /**\n         * 获取原生seleciton对象\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getNative\n         * @return {Selection}    获得selection对象\n         */\n        getNative:function (txtRange) {\n            var doc = this.document;\n            try {\n                return !doc ? null : browser.ie9below || txtRange? doc.selection : domUtils.getWindow( doc ).getSelection();\n            } catch ( e ) {\n                return null;\n            }\n        },\n        /**\n         * 获得ieRange\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getIERange\n         * @return {ieRange}    返回ie原生的Range\n         */\n        getIERange:function (txtRange) {\n            var ieRange = _getIERange( this,txtRange );\n            if ( !ieRange  || !this.rangeInBody(ieRange,txtRange)) {\n                if ( this._bakIERange ) {\n                    return this._bakIERange;\n                }\n            }\n            return ieRange;\n        },\n        rangeInBody : function(rng,txtRange){\n            var node = browser.ie9below || txtRange ? rng.item ? rng.item() : rng.parentElement() : rng.startContainer;\n\n            return node === this.body || domUtils.inDoc(node,this.body);\n        },\n        /**\n         * 缓存当前选区的range和选区的开始节点\n         * @public\n         * @function\n         * @name    UM.dom.Selection.cache\n         */\n        cache:function () {\n            this.clear();\n            this._cachedRange = this.getRange();\n            this._cachedStartElement = this.getStart();\n            this._cachedStartElementPath = this.getStartElementPath();\n        },\n\n        getStartElementPath:function () {\n            if ( this._cachedStartElementPath ) {\n                return this._cachedStartElementPath;\n            }\n            var start = this.getStart();\n            if ( start ) {\n                return domUtils.findParents( start, true, null, true )\n            }\n            return [];\n        },\n        /**\n         * 清空缓存\n         * @public\n         * @function\n         * @name    UM.dom.Selection.clear\n         */\n        clear:function () {\n            this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null;\n        },\n        /**\n         * 编辑器是否得到了选区\n         */\n        isFocus:function () {\n            return this.hasNativeRange()\n\n        },\n        /**\n         * 获取选区对应的Range\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getRange\n         * @returns {UM.dom.Range}    得到Range对象\n         */\n        getRange:function () {\n            var me = this;\n            function optimze( range ) {\n                var child = me.body.firstChild,\n                    collapsed = range.collapsed;\n                while ( child && child.firstChild ) {\n                    range.setStart( child, 0 );\n                    child = child.firstChild;\n                }\n                if ( !range.startContainer ) {\n                    range.setStart( me.body, 0 )\n                }\n                if ( collapsed ) {\n                    range.collapse( true );\n                }\n            }\n\n            if ( me._cachedRange != null ) {\n                return this._cachedRange;\n            }\n            var range = new dom.Range( me.document,me.body );\n            if ( browser.ie9below ) {\n                var nativeRange = me.getIERange();\n                if ( nativeRange  && this.rangeInBody(nativeRange)) {\n\n                    try{\n                        transformIERangeToRange( nativeRange, range );\n                    }catch(e){\n                        optimze( range );\n                    }\n\n                } else {\n                    optimze( range );\n                }\n            } else {\n                var sel = me.getNative();\n                if ( sel && sel.rangeCount && me.rangeInBody(sel.getRangeAt( 0 ))) {\n                    var firstRange = sel.getRangeAt( 0 );\n                    var lastRange = sel.getRangeAt( sel.rangeCount - 1 );\n                    range.setStart( firstRange.startContainer, firstRange.startOffset ).setEnd( lastRange.endContainer, lastRange.endOffset );\n                    if ( range.collapsed && domUtils.isBody( range.startContainer ) && !range.startOffset ) {\n                        optimze( range );\n                    }\n                } else {\n                    //trace:1734 有可能已经不在dom树上了，标识的节点\n                    if ( this._bakRange && (this._bakRange.startContainer === this.body || domUtils.inDoc( this._bakRange.startContainer, this.body )) ){\n                        return this._bakRange;\n                    }\n                    optimze( range );\n                }\n            }\n\n            return this._bakRange = range;\n        },\n\n        /**\n         * 获取开始元素，用于状态反射\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getStart\n         * @return {Element}     获得开始元素\n         */\n        getStart:function () {\n            if ( this._cachedStartElement ) {\n                return this._cachedStartElement;\n            }\n            var range = browser.ie9below ? this.getIERange() : this.getRange(),\n                tmpRange,\n                start, tmp, parent;\n            if ( browser.ie9below ) {\n                if ( !range ) {\n                    //todo 给第一个值可能会有问题\n                    return this.document.body.firstChild;\n                }\n                //control元素\n                if ( range.item ){\n                    return range.item( 0 );\n                }\n                tmpRange = range.duplicate();\n                //修正ie下<b>x</b>[xx] 闭合后 <b>x|</b>xx\n                tmpRange.text.length > 0 && tmpRange.moveStart( 'character', 1 );\n                tmpRange.collapse( 1 );\n                start = tmpRange.parentElement();\n                parent = tmp = range.parentElement();\n                while ( tmp = tmp.parentNode ) {\n                    if ( tmp == start ) {\n                        start = parent;\n                        break;\n                    }\n                }\n            } else {\n                start = range.startContainer;\n                if ( start.nodeType == 1 && start.hasChildNodes() ){\n                    start = start.childNodes[Math.min( start.childNodes.length - 1, range.startOffset )];\n                }\n                if ( start.nodeType == 3 ){\n                    return start.parentNode;\n                }\n            }\n            return start;\n        },\n        /**\n         * 得到选区中的文本\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getText\n         * @return  {String}    选区中包含的文本\n         */\n        getText:function () {\n            var nativeSel, nativeRange;\n            if ( this.isFocus() && (nativeSel = this.getNative()) ) {\n                nativeRange = browser.ie9below ? nativeSel.createRange() : nativeSel.getRangeAt( 0 );\n                return browser.ie9below ? nativeRange.text : nativeRange.toString();\n            }\n            return '';\n        }\n    };\n})();\n/**\n * @file\n * @name UM.Editor\n * @short Editor\n * @import editor.js,core/utils.js,core/EventBase.js,core/browser.js,core/dom/dtd.js,core/dom/domUtils.js,core/dom/Range.js,core/dom/Selection.js,plugins/serialize.js\n * @desc 编辑器主类，包含编辑器提供的大部分公用接口\n */\n(function () {\n    var uid = 0, _selectionChangeTimer;\n\n    /**\n     * @private\n     * @ignore\n     * @param form  编辑器所在的form元素\n     * @param editor  编辑器实例对象\n     */\n    function setValue(form, editor) {\n        var textarea;\n        if (editor.textarea) {\n            if (utils.isString(editor.textarea)) {\n                for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, 'textarea'); ti = tis[i++];) {\n                    if (ti.id == 'umeditor_textarea_' + editor.options.textarea) {\n                        textarea = ti;\n                        break;\n                    }\n                }\n            } else {\n                textarea = editor.textarea;\n            }\n        }\n        if (!textarea) {\n            form.appendChild(textarea = domUtils.createElement(document, 'textarea', {\n                'name': editor.options.textarea,\n                'id': 'umeditor_textarea_' + editor.options.textarea,\n                'style': \"display:none\"\n            }));\n            //不要产生多个textarea\n            editor.textarea = textarea;\n        }\n        textarea.value = editor.hasContents() ?\n            (editor.options.allHtmlEnabled ? editor.getAllHtml() : editor.getContent(null, null, true)) :\n            ''\n    }\n    function loadPlugins(me){\n        //初始化插件\n        for (var pi in UM.plugins) {\n            if(me.options.excludePlugins.indexOf(pi) == -1){\n                UM.plugins[pi].call(me);\n                me.plugins[pi] = 1;\n            }\n        }\n        me.langIsReady = true;\n\n        me.fireEvent(\"langReady\");\n    }\n    function checkCurLang(I18N){\n        for(var lang in I18N){\n            return lang\n        }\n    }\n    /**\n     * UEditor编辑器类\n     * @name Editor\n     * @desc 创建一个跟编辑器实例\n     * - ***container*** 编辑器容器对象\n     * - ***iframe*** 编辑区域所在的iframe对象\n     * - ***window*** 编辑区域所在的window\n     * - ***document*** 编辑区域所在的document对象\n     * - ***body*** 编辑区域所在的body对象\n     * - ***selection*** 编辑区域的选区对象\n     */\n    var Editor = UM.Editor = function (options) {\n        var me = this;\n        me.uid = uid++;\n        EventBase.call(me);\n        me.commands = {};\n        me.options = utils.extend(utils.clone(options || {}), UMEDITOR_CONFIG, true);\n        me.shortcutkeys = {};\n        me.inputRules = [];\n        me.outputRules = [];\n        //设置默认的常用属性\n        me.setOpt({\n            isShow: true,\n            initialContent: '',\n            initialStyle:'',\n            autoClearinitialContent: false,\n            textarea: 'editorValue',\n            focus: false,\n            focusInEnd: true,\n            autoClearEmptyNode: true,\n            fullscreen: false,\n            readonly: false,\n            zIndex: 999,\n            enterTag: 'p',\n            lang: 'zh-cn',\n            langPath: me.options.UMEDITOR_HOME_URL + 'lang/',\n            theme: 'default',\n            themePath: me.options.UMEDITOR_HOME_URL + 'themes/',\n            allHtmlEnabled: false,\n            autoSyncData : true,\n            autoHeightEnabled : true,\n            excludePlugins:''\n        });\n        me.plugins = {};\n        if(!utils.isEmptyObject(UM.I18N)){\n            //修改默认的语言类型\n            me.options.lang = checkCurLang(UM.I18N);\n            loadPlugins(me)\n        }else{\n            utils.loadFile(document, {\n                src: me.options.langPath + me.options.lang + \"/\" + me.options.lang + \".js\",\n                tag: \"script\",\n                type: \"text/javascript\",\n                defer: \"defer\"\n            }, function () {\n                loadPlugins(me)\n            });\n        }\n\n    };\n    Editor.prototype = {\n        /**\n         * 当编辑器ready后执行传入的fn,如果编辑器已经完成ready，就马上执行fn，fn的中的this是编辑器实例。\n         * 大部分的实例接口都需要放在该方法内部执行，否则在IE下可能会报错。\n         * @name ready\n         * @grammar editor.ready(fn) fn是当编辑器渲染好后执行的function\n         * @example\n         * var editor = new UM.ui.Editor();\n         * editor.render(\"myEditor\");\n         * editor.ready(function(){\n         *     editor.setContent(\"欢迎使用UEditor！\");\n         * })\n         */\n        ready: function (fn) {\n            var me = this;\n            if (fn) {\n                me.isReady ? fn.apply(me) : me.addListener('ready', fn);\n            }\n        },\n        /**\n         * 为编辑器设置默认参数值。若用户配置为空，则以默认配置为准\n         * @grammar editor.setOpt(key,value);      //传入一个键、值对\n         * @grammar editor.setOpt({ key:value});   //传入一个json对象\n         */\n        setOpt: function (key, val) {\n            var obj = {};\n            if (utils.isString(key)) {\n                obj[key] = val\n            } else {\n                obj = key;\n            }\n            utils.extend(this.options, obj, true);\n        },\n        getOpt:function(key){\n            return this.options[key] || ''\n        },\n        /**\n         * 销毁编辑器实例对象\n         * @name destroy\n         * @grammar editor.destroy();\n         */\n        destroy: function () {\n\n            var me = this;\n            me.fireEvent('destroy');\n            var container = me.container.parentNode;\n            if(container === document.body){\n                container = me.container;\n            }\n            var textarea = me.textarea;\n            if (!textarea) {\n                textarea = document.createElement('textarea');\n                container.parentNode.insertBefore(textarea, container);\n            } else {\n                textarea.style.display = ''\n            }\n\n            textarea.style.width = me.body.offsetWidth + 'px';\n            textarea.style.height = me.body.offsetHeight + 'px';\n            textarea.value = me.getContent();\n            textarea.id = me.key;\n            if(container.contains(textarea)){\n                $(textarea).insertBefore(container);\n            }\n            container.innerHTML = '';\n\n            domUtils.remove(container);\n            UM.clearCache(me.id);\n            //trace:2004\n            for (var p in me) {\n                if (me.hasOwnProperty(p)) {\n                    delete this[p];\n                }\n            }\n\n        },\n        initialCont : function(holder){\n\n            if(holder){\n                holder.getAttribute('name') && ( this.options.textarea = holder.getAttribute('name'));\n                if (holder && /script|textarea/ig.test(holder.tagName)) {\n                    var newDiv = document.createElement('div');\n                    holder.parentNode.insertBefore(newDiv, holder);\n                    this.options.initialContent = UM.htmlparser(holder.value || holder.innerHTML|| this.options.initialContent).toHtml();\n                    holder.className && (newDiv.className = holder.className);\n                    holder.style.cssText && (newDiv.style.cssText = holder.style.cssText);\n\n                    if (/textarea/i.test(holder.tagName)) {\n                        this.textarea = holder;\n                        this.textarea.style.display = 'none';\n\n                    } else {\n                        holder.parentNode.removeChild(holder);\n                        holder.id && (newDiv.id = holder.id);\n                    }\n                    holder = newDiv;\n                    holder.innerHTML = '';\n                }\n                return holder;\n            }else{\n                return null;\n            }\n\n        },\n        /**\n         * 渲染编辑器的DOM到指定容器，必须且只能调用一次\n         * @name render\n         * @grammar editor.render(containerId);    //可以指定一个容器ID\n         * @grammar editor.render(containerDom);   //也可以直接指定容器对象\n         */\n        render: function (container) {\n            var me = this,\n                options = me.options,\n                getStyleValue=function(attr){\n                    return parseInt($(container).css(attr));\n                };\n\n            if (utils.isString(container)) {\n                container = document.getElementById(container);\n            }\n            if (container) {\n                this.id = container.getAttribute('id');\n                UM.setEditor(this);\n                utils.cssRule('edui-style-body',me.options.initialStyle,document);\n\n                container = this.initialCont(container);\n\n                container.className += ' edui-body-container';\n\n                if(options.initialFrameWidth){\n                    options.minFrameWidth = options.initialFrameWidth\n                }else{\n                    //都没给值，先写死了\n                    options.minFrameWidth = options.initialFrameWidth = $(container).width() || UM.defaultWidth;\n                }\n                if(options.initialFrameHeight){\n                    options.minFrameHeight = options.initialFrameHeight\n                }else{\n\n                    options.initialFrameHeight = options.minFrameHeight = $(container).height() || UM.defaultHeight;\n                }\n\n                container.style.width = /%$/.test(options.initialFrameWidth) ?  '100%' : options.initialFrameWidth -\n                    getStyleValue(\"padding-left\")-\n                    getStyleValue(\"padding-right\")  +'px';\n\n                var height = /%$/.test(options.initialFrameHeight) ?  '100%' : (options.initialFrameHeight - getStyleValue(\"padding-top\")- getStyleValue(\"padding-bottom\") );\n                if(this.options.autoHeightEnabled){\n                    container.style.minHeight = height +'px';\n                    container.style.height = '';\n                    if(browser.ie && browser.version <= 6){\n                        container.style.height = height ;\n                        container.style.setExpression('height', 'this.scrollHeight <= ' + height + ' ? \"' + height + 'px\" : \"auto\"');\n                    }\n                }else{\n                    $(container).height(height)\n                }\n                container.style.zIndex = options.zIndex;\n                this._setup(container);\n\n            }\n        },\n        /**\n         * 编辑器初始化\n         * @private\n         * @ignore\n         * @param {Element} doc 编辑器Iframe中的文档对象\n         */\n        _setup: function (cont) {\n            var me = this,\n                options = me.options;\n\n            cont.contentEditable = true;\n            document.body.spellcheck = false;\n\n            me.document = document;\n            me.window = document.defaultView || document.parentWindow;\n            me.body = cont;\n            me.$body = $(cont);\n            me.selection = new dom.Selection(document,me.body);\n            me._isEnabled = false;\n            //gecko初始化就能得到range,无法判断isFocus了\n            var geckoSel;\n            if (browser.gecko && (geckoSel = this.selection.getNative())) {\n                geckoSel.removeAllRanges();\n            }\n            this._initEvents();\n            //为form提交提供一个隐藏的textarea\n            for (var form = cont.parentNode; form && !domUtils.isBody(form); form = form.parentNode) {\n                if (form.tagName == 'FORM') {\n                    me.form = form;\n                    if(me.options.autoSyncData){\n                        $(cont).on('blur',function(){\n                            setValue(form,me);\n                        })\n                    }else{\n                        $(form).on('submit', function () {\n                            setValue(this, me);\n                        })\n                    }\n                    break;\n                }\n            }\n            if (options.initialContent) {\n                if (options.autoClearinitialContent) {\n                    var oldExecCommand = me.execCommand;\n                    me.execCommand = function () {\n                        me.fireEvent('firstBeforeExecCommand');\n                        return oldExecCommand.apply(me, arguments);\n                    };\n                    this._setDefaultContent(options.initialContent);\n                } else\n                    this.setContent(options.initialContent, false, true);\n            }\n\n            //编辑器不能为空内容\n\n            if (domUtils.isEmptyNode(me.body)) {\n                me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';\n            }\n            //如果要求focus, 就把光标定位到内容开始\n            if (options.focus) {\n                setTimeout(function () {\n                    me.focus(me.options.focusInEnd);\n                    //如果自动清除开着，就不需要做selectionchange;\n                    !me.options.autoClearinitialContent && me._selectionChange();\n                }, 0);\n            }\n            if (!me.container) {\n                me.container = cont.parentNode;\n            }\n\n            me._bindshortcutKeys();\n            me.isReady = 1;\n            me.fireEvent('ready');\n            options.onready && options.onready.call(me);\n            if(!browser.ie || browser.ie9above){\n\n                $(me.body).on( 'blur focus', function (e) {\n                    var nSel = me.selection.getNative();\n                    //chrome下会出现alt+tab切换时，导致选区位置不对\n                    if (e.type == 'blur') {\n                        if(nSel.rangeCount > 0 ){\n                            me._bakRange = nSel.getRangeAt(0);\n                        }\n                    } else {\n                        try {\n                            me._bakRange && nSel.addRange(me._bakRange)\n                        } catch (e) {\n                        }\n                        me._bakRange = null;\n                    }\n                });\n            }\n\n            !options.isShow && me.setHide();\n            options.readonly && me.setDisabled();\n        },\n        /**\n         * 同步编辑器的数据，为提交数据做准备，主要用于你是手动提交的情况\n         * @name sync\n         * @grammar editor.sync(); //从编辑器的容器向上查找，如果找到就同步数据\n         * @grammar editor.sync(formID); //formID制定一个要同步数据的form的id,编辑器的数据会同步到你指定form下\n         * @desc\n         * 后台取得数据得键值使用你容器上得''name''属性，如果没有就使用参数传入的''textarea''\n         * @example\n         * editor.sync();\n         * form.sumbit(); //form变量已经指向了form元素\n         *\n         */\n        sync: function (formId) {\n            var me = this,\n                form = formId ? document.getElementById(formId) :\n                    domUtils.findParent(me.body.parentNode, function (node) {\n                        return node.tagName == 'FORM'\n                    }, true);\n            form && setValue(form, me);\n        },\n        /**\n         * 设置编辑器高度\n         * @name setHeight\n         * @grammar editor.setHeight(number);  //纯数值，不带单位\n         */\n        setHeight: function (height,notSetHeight) {\n            !notSetHeight && (this.options.initialFrameHeight = height);\n            if(this.options.autoHeightEnabled){\n                $(this.body).css({\n                    'min-height':height + 'px'\n                });\n                if(browser.ie && browser.version <= 6 && this.container){\n                    this.container.style.height = height ;\n                    this.container.style.setExpression('height', 'this.scrollHeight <= ' + height + ' ? \"' + height + 'px\" : \"auto\"');\n                }\n            }else{\n                $(this.body).height(height)\n            }\n            this.fireEvent('resize');\n        },\n        /**\n         * 设置编辑器宽度\n         * @name setWidth\n         * @grammar editor.setWidth(number);  //纯数值，不带单位\n         */\n        setWidth:function(width){\n            this.$container && this.$container.width(width);\n            $(this.body).width(width - $(this.body).css('padding-left').replace('px','') * 1 - $(this.body).css('padding-right').replace('px','') * 1);\n            this.fireEvent('resize');\n        },\n        addshortcutkey: function (cmd, keys) {\n            var obj = {};\n            if (keys) {\n                obj[cmd] = keys\n            } else {\n                obj = cmd;\n            }\n            utils.extend(this.shortcutkeys, obj)\n        },\n        _bindshortcutKeys: function () {\n            var me = this, shortcutkeys = this.shortcutkeys;\n            me.addListener('keydown', function (type, e) {\n                var keyCode = e.keyCode || e.which;\n                for (var i in shortcutkeys) {\n                    var tmp = shortcutkeys[i].split(',');\n                    for (var t = 0, ti; ti = tmp[t++];) {\n                        ti = ti.split(':');\n                        var key = ti[0], param = ti[1];\n                        if (/^(ctrl)(\\+shift)?\\+(\\d+)$/.test(key.toLowerCase()) || /^(\\d+)$/.test(key)) {\n                            if (( (RegExp.$1 == 'ctrl' ? (e.ctrlKey || e.metaKey) : 0)\n                                && (RegExp.$2 != \"\" ? e[RegExp.$2.slice(1) + \"Key\"] : 1)\n                                && keyCode == RegExp.$3\n                                ) ||\n                                keyCode == RegExp.$1\n                                ) {\n                                if (me.queryCommandState(i,param) != -1)\n                                    me.execCommand(i, param);\n                                domUtils.preventDefault(e);\n                            }\n                        }\n                    }\n\n                }\n            });\n        },\n        /**\n         * 获取编辑器内容\n         * @name getContent\n         * @grammar editor.getContent()  => String //若编辑器中只包含字符\"&lt;p&gt;&lt;br /&gt;&lt;/p/&gt;\"会返回空。\n         * @grammar editor.getContent(fn)  => String\n         * @example\n         * getContent默认是会现调用hasContents来判断编辑器是否为空，如果是，就直接返回空字符串\n         * 你也可以传入一个fn来接替hasContents的工作，定制判断的规则\n         * editor.getContent(function(){\n         *     return false //编辑器没有内容 ，getContent直接返回空\n         * })\n         */\n        getContent: function (cmd, fn,notSetCursor,ignoreBlank,formatter) {\n            var me = this;\n            if (cmd && utils.isFunction(cmd)) {\n                fn = cmd;\n                cmd = '';\n            }\n            if (fn ? !fn() : !this.hasContents()) {\n                return '';\n            }\n            me.fireEvent('beforegetcontent');\n            var root = UM.htmlparser(me.body.innerHTML,ignoreBlank);\n            me.filterOutputRule(root);\n            me.fireEvent('aftergetcontent',root);\n            return  root.toHtml(formatter);\n        },\n        /**\n         * 取得完整的html代码，可以直接显示成完整的html文档\n         * @name getAllHtml\n         * @grammar editor.getAllHtml()  => String\n         */\n        getAllHtml: function () {\n            var me = this,\n                headHtml = [],\n                html = '';\n            me.fireEvent('getAllHtml', headHtml);\n            if (browser.ie && browser.version > 8) {\n                var headHtmlForIE9 = '';\n                utils.each(me.document.styleSheets, function (si) {\n                    headHtmlForIE9 += ( si.href ? '<link rel=\"stylesheet\" type=\"text/css\" href=\"' + si.href + '\" />' : '<style>' + si.cssText + '</style>');\n                });\n                utils.each(me.document.getElementsByTagName('script'), function (si) {\n                    headHtmlForIE9 += si.outerHTML;\n                });\n            }\n            return '<html><head>' + (me.options.charset ? '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=' + me.options.charset + '\"/>' : '')\n                + (headHtmlForIE9 || me.document.getElementsByTagName('head')[0].innerHTML) + headHtml.join('\\n') + '</head>'\n                + '<body ' + (ie && browser.version < 9 ? 'class=\"view\"' : '') + '>' + me.getContent(null, null, true) + '</body></html>';\n        },\n        /**\n         * 得到编辑器的纯文本内容，但会保留段落格式\n         * @name getPlainTxt\n         * @grammar editor.getPlainTxt()  => String\n         */\n        getPlainTxt: function () {\n            var reg = new RegExp(domUtils.fillChar, 'g'),\n                html = this.body.innerHTML.replace(/[\\n\\r]/g, '');//ie要先去了\\n在处理\n            html = html.replace(/<(p|div)[^>]*>(<br\\/?>|&nbsp;)<\\/\\1>/gi, '\\n')\n                .replace(/<br\\/?>/gi, '\\n')\n                .replace(/<[^>/]+>/g, '')\n                .replace(/(\\n)?<\\/([^>]+)>/g, function (a, b, c) {\n                    return dtd.$block[c] ? '\\n' : b ? b : '';\n                });\n            //取出来的空格会有c2a0会变成乱码，处理这种情况\\u00a0\n            return html.replace(reg, '').replace(/\\u00a0/g, ' ').replace(/&nbsp;/g, ' ');\n        },\n\n        /**\n         * 获取编辑器中的纯文本内容,没有段落格式\n         * @name getContentTxt\n         * @grammar editor.getContentTxt()  => String\n         */\n        getContentTxt: function () {\n            var reg = new RegExp(domUtils.fillChar, 'g');\n            //取出来的空格会有c2a0会变成乱码，处理这种情况\\u00a0\n            return this.body[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').replace(/\\u00a0/g, ' ');\n        },\n\n        /**\n         * 将html设置到编辑器中, 如果是用于初始化时给编辑器赋初值，则必须放在ready方法内部执行\n         * @name setContent\n         * @grammar editor.setContent(html)\n         * @example\n         * var editor = new UM.ui.Editor()\n         * editor.ready(function(){\n         *     //需要ready后执行，否则可能报错\n         *     editor.setContent(\"欢迎使用UEditor！\");\n         * })\n         */\n        setContent: function (html, isAppendTo, notFireSelectionchange) {\n            var me = this;\n\n            me.fireEvent('beforesetcontent', html);\n            var root = UM.htmlparser(html);\n            me.filterInputRule(root);\n            html = root.toHtml();\n\n\n            me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html;\n\n\n            function isCdataDiv(node){\n                return  node.tagName == 'DIV' && node.getAttribute('cdata_tag');\n            }\n            //给文本或者inline节点套p标签\n            if (me.options.enterTag == 'p') {\n\n                var child = this.body.firstChild, tmpNode;\n                if (!child || child.nodeType == 1 &&\n                    (dtd.$cdata[child.tagName] || isCdataDiv(child) ||\n                        domUtils.isCustomeNode(child)\n                        )\n                    && child === this.body.lastChild) {\n                    this.body.innerHTML = '<p>' + (browser.ie ? '&nbsp;' : '<br/>') + '</p>' + this.body.innerHTML;\n\n                } else {\n                    var p = me.document.createElement('p');\n                    while (child) {\n                        while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[child.tagName])) {\n                            tmpNode = child.nextSibling;\n                            p.appendChild(child);\n                            child = tmpNode;\n                        }\n                        if (p.firstChild) {\n                            if (!child) {\n                                me.body.appendChild(p);\n                                break;\n                            } else {\n                                child.parentNode.insertBefore(p, child);\n                                p = me.document.createElement('p');\n                            }\n                        }\n                        child = child.nextSibling;\n                    }\n                }\n            }\n            me.fireEvent('aftersetcontent');\n            me.fireEvent('contentchange');\n\n            !notFireSelectionchange && me._selectionChange();\n            //清除保存的选区\n            me._bakRange = me._bakIERange = me._bakNativeRange = null;\n            //trace:1742 setContent后gecko能得到焦点问题\n            var geckoSel;\n            if (browser.gecko && (geckoSel = this.selection.getNative())) {\n                geckoSel.removeAllRanges();\n            }\n            if(me.options.autoSyncData){\n                me.form && setValue(me.form,me);\n            }\n        },\n\n        /**\n         * 让编辑器获得焦点，toEnd确定focus位置\n         * @name focus\n         * @grammar editor.focus([toEnd])   //默认focus到编辑器头部，toEnd为true时focus到内容尾部\n         */\n        focus: function (toEnd) {\n            try {\n                var me = this,\n                    rng = me.selection.getRange();\n                if (toEnd) {\n                    rng.setStartAtLast(me.body.lastChild).setCursor(false, true);\n                } else {\n                    rng.select(true);\n                }\n                this.fireEvent('focus');\n            } catch (e) {\n            }\n        },\n        /**\n         * 使编辑区域失去焦点\n         */\n        blur:function(){\n            var sel = this.selection.getNative();\n            sel.empty ? sel.empty() : sel.removeAllRanges();\n            this.fireEvent('blur')\n        },\n        /**\n         * 判断编辑器当前是否获得了焦点\n         */\n        isFocus : function(){\n            if(this.fireEvent('isfocus')===true){\n                return true;\n            }\n            return this.selection.isFocus();\n        },\n\n        /**\n         * 初始化UE事件及部分事件代理\n         * @private\n         * @ignore\n         */\n        _initEvents: function () {\n            var me = this,\n                cont = me.body,\n                _proxyDomEvent = function(){\n                    me._proxyDomEvent.apply(me, arguments);\n                };\n\n            $(cont)\n                .on( 'click contextmenu mousedown keydown keyup keypress mouseup mouseover mouseout selectstart', _proxyDomEvent)\n                .on( 'focus blur', _proxyDomEvent)\n                .on('mouseup keydown', function (evt) {\n                    //特殊键不触发selectionchange\n                    if (evt.type == 'keydown' && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey)) {\n                        return;\n                    }\n                    if (evt.button == 2)return;\n                    me._selectionChange(250, evt);\n                });\n        },\n        /**\n         * 触发事件代理\n         * @private\n         * @ignore\n         */\n        _proxyDomEvent: function (evt) {\n            return this.fireEvent(evt.type.replace(/^on/, ''), evt);\n        },\n        /**\n         * 变化选区\n         * @private\n         * @ignore\n         */\n        _selectionChange: function (delay, evt) {\n            var me = this;\n            //有光标才做selectionchange 为了解决未focus时点击source不能触发更改工具栏状态的问题（source命令notNeedUndo=1）\n//            if ( !me.selection.isFocus() ){\n//                return;\n//            }\n\n\n            var hackForMouseUp = false;\n            var mouseX, mouseY;\n            if (browser.ie && browser.version < 9 && evt && evt.type == 'mouseup') {\n                var range = this.selection.getRange();\n                if (!range.collapsed) {\n                    hackForMouseUp = true;\n                    mouseX = evt.clientX;\n                    mouseY = evt.clientY;\n                }\n            }\n            clearTimeout(_selectionChangeTimer);\n            _selectionChangeTimer = setTimeout(function () {\n                if (!me.selection.getNative()) {\n                    return;\n                }\n                //修复一个IE下的bug: 鼠标点击一段已选择的文本中间时，可能在mouseup后的一段时间内取到的range是在selection的type为None下的错误值.\n                //IE下如果用户是拖拽一段已选择文本，则不会触发mouseup事件，所以这里的特殊处理不会对其有影响\n                var ieRange;\n                if (hackForMouseUp && me.selection.getNative().type == 'None') {\n                    ieRange = me.document.body.createTextRange();\n                    try {\n                        ieRange.moveToPoint(mouseX, mouseY);\n                    } catch (ex) {\n                        ieRange = null;\n                    }\n                }\n                var bakGetIERange;\n                if (ieRange) {\n                    bakGetIERange = me.selection.getIERange;\n                    me.selection.getIERange = function () {\n                        return ieRange;\n                    };\n                }\n                me.selection.cache();\n                if (bakGetIERange) {\n                    me.selection.getIERange = bakGetIERange;\n                }\n                if (me.selection._cachedRange && me.selection._cachedStartElement) {\n                    me.fireEvent('beforeselectionchange');\n                    // 第二个参数causeByUi为true代表由用户交互造成的selectionchange.\n                    me.fireEvent('selectionchange', !!evt);\n                    me.fireEvent('afterselectionchange');\n                    me.selection.clear();\n                }\n            }, delay || 50);\n        },\n        _callCmdFn: function (fnName, args) {\n            args = Array.prototype.slice.call(args,0);\n            var cmdName = args.shift().toLowerCase(),\n                cmd, cmdFn;\n            cmd = this.commands[cmdName] || UM.commands[cmdName];\n            cmdFn = cmd && cmd[fnName];\n            //没有querycommandstate或者没有command的都默认返回0\n            if ((!cmd || !cmdFn) && fnName == 'queryCommandState') {\n                return 0;\n            } else if (cmdFn) {\n                return cmdFn.apply(this, [cmdName].concat(args));\n            }\n        },\n\n        /**\n         * 执行编辑命令cmdName，完成富文本编辑效果\n         * @name execCommand\n         * @grammar editor.execCommand(cmdName)   => {*}\n         */\n        execCommand: function (cmdName) {\n            if(!this.isFocus()){\n                var bakRange = this.selection._bakRange;\n                if(bakRange){\n                    bakRange.select()\n                }else{\n                    this.focus(true)\n                }\n\n            }\n            cmdName = cmdName.toLowerCase();\n            var me = this,\n                result,\n                cmd = me.commands[cmdName] || UM.commands[cmdName];\n            if (!cmd || !cmd.execCommand) {\n                return null;\n            }\n            if (!cmd.notNeedUndo && !me.__hasEnterExecCommand) {\n                me.__hasEnterExecCommand = true;\n                if (me.queryCommandState.apply(me,arguments) != -1) {\n                    me.fireEvent('saveScene');\n                    me.fireEvent('beforeexeccommand', cmdName);\n                    result = this._callCmdFn('execCommand', arguments);\n                    (!cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange');\n                    me.fireEvent('afterexeccommand', cmdName);\n                    me.fireEvent('saveScene');\n                }\n                me.__hasEnterExecCommand = false;\n            } else {\n                result = this._callCmdFn('execCommand', arguments);\n                (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange')\n            }\n            (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me._selectionChange();\n            return result;\n        },\n        /**\n         * 根据传入的command命令，查选编辑器当前的选区，返回命令的状态\n         * @name  queryCommandState\n         * @grammar editor.queryCommandState(cmdName)  => (-1|0|1)\n         * @desc\n         * * ''-1'' 当前命令不可用\n         * * ''0'' 当前命令可用\n         * * ''1'' 当前命令已经执行过了\n         */\n        queryCommandState: function (cmdName) {\n            try{\n                return this._callCmdFn('queryCommandState', arguments);\n            }catch(e){\n                return 0\n            }\n\n        },\n\n        /**\n         * 根据传入的command命令，查选编辑器当前的选区，根据命令返回相关的值\n         * @name  queryCommandValue\n         * @grammar editor.queryCommandValue(cmdName)  =>  {*}\n         */\n        queryCommandValue: function (cmdName) {\n            try{\n                return this._callCmdFn('queryCommandValue', arguments);\n            }catch(e){\n                return null\n            }\n        },\n        /**\n         * 检查编辑区域中是否有内容，若包含tags中的节点类型，直接返回true\n         * @name  hasContents\n         * @desc\n         * 默认有文本内容，或者有以下节点都不认为是空\n         * <code>{table:1,ul:1,ol:1,dl:1,iframe:1,area:1,base:1,col:1,hr:1,img:1,embed:1,input:1,link:1,meta:1,param:1}</code>\n         * @grammar editor.hasContents()  => (true|false)\n         * @grammar editor.hasContents(tags)  =>  (true|false)  //若文档中包含tags数组里对应的tag，直接返回true\n         * @example\n         * editor.hasContents(['span']) //如果编辑器里有这些，不认为是空\n         */\n        hasContents: function (tags) {\n            if (tags) {\n                for (var i = 0, ci; ci = tags[i++];) {\n                    if (this.body.getElementsByTagName(ci).length > 0) {\n                        return true;\n                    }\n                }\n            }\n            if (!domUtils.isEmptyBlock(this.body)) {\n                return true\n            }\n            //随时添加,定义的特殊标签如果存在，不能认为是空\n            tags = ['div'];\n            for (i = 0; ci = tags[i++];) {\n                var nodes = domUtils.getElementsByTagName(this.body, ci);\n                for (var n = 0, cn; cn = nodes[n++];) {\n                    if (domUtils.isCustomeNode(cn)) {\n                        return true;\n                    }\n                }\n            }\n            return false;\n        },\n        /**\n         * 重置编辑器，可用来做多个tab使用同一个编辑器实例\n         * @name  reset\n         * @desc\n         * * 清空编辑器内容\n         * * 清空回退列表\n         * @grammar editor.reset()\n         */\n        reset: function () {\n            this.fireEvent('reset');\n        },\n        isEnabled: function(){\n            return this._isEnabled != true;\n        },\n\n        setEnabled: function () {\n            var me = this, range;\n\n            me.body.contentEditable = true;\n\n            /* 恢复选区 */\n            if (me.lastBk) {\n                range = me.selection.getRange();\n                try {\n                    range.moveToBookmark(me.lastBk);\n                    delete me.lastBk\n                } catch (e) {\n                    range.setStartAtFirst(me.body).collapse(true)\n                }\n                range.select(true);\n            }\n\n            /* 恢复query函数 */\n            if (me.bkqueryCommandState) {\n                me.queryCommandState = me.bkqueryCommandState;\n                delete me.bkqueryCommandState;\n            }\n\n            /* 恢复原生事件 */\n            if (me._bkproxyDomEvent) {\n                me._proxyDomEvent = me._bkproxyDomEvent;\n                delete me._bkproxyDomEvent;\n            }\n\n            /* 触发事件 */\n            me.fireEvent('setEnabled');\n        },\n        /**\n         * 设置当前编辑区域可以编辑\n         * @name enable\n         * @grammar editor.enable()\n         */\n        enable: function () {\n            return this.setEnabled();\n        },\n        setDisabled: function (except, keepDomEvent) {\n            var me = this;\n\n            me.body.contentEditable = false;\n            me._except = except ? utils.isArray(except) ? except : [except] : [];\n\n            /* 备份最后的选区 */\n            if (!me.lastBk) {\n                me.lastBk = me.selection.getRange().createBookmark(true);\n            }\n\n            /* 备份并重置query函数 */\n            if(!me.bkqueryCommandState) {\n                me.bkqueryCommandState = me.queryCommandState;\n                me.queryCommandState = function (type) {\n                    if (utils.indexOf(me._except, type) != -1) {\n                        return me.bkqueryCommandState.apply(me, arguments);\n                    }\n                    return -1;\n                };\n            }\n\n            /* 备份并墙原生事件 */\n            if(!keepDomEvent && !me._bkproxyDomEvent) {\n                me._bkproxyDomEvent = me._proxyDomEvent;\n                me._proxyDomEvent = function () {\n                    return false;\n                };\n            }\n\n            /* 触发事件 */\n            me.fireEvent('selectionchange');\n            me.fireEvent('setDisabled', me._except);\n        },\n        /** 设置当前编辑区域不可编辑,except中的命令除外\n         * @name disable\n         * @grammar editor.disable()\n         * @grammar editor.disable(except)  //例外的命令，也即即使设置了disable，此处配置的命令仍然可以执行\n         * @example\n         * //禁用工具栏中除加粗和插入图片之外的所有功能\n         * editor.disable(['bold','insertimage']);//可以是单一的String,也可以是Array\n         */\n        disable: function (except) {\n            return this.setDisabled(except);\n        },\n        /**\n         * 设置默认内容\n         * @ignore\n         * @private\n         * @param  {String} cont 要存入的内容\n         */\n        _setDefaultContent: function () {\n            function clear() {\n                var me = this;\n                if (me.document.getElementById('initContent')) {\n                    me.body.innerHTML = '<p>' + (ie ? '' : '<br/>') + '</p>';\n                    me.removeListener('firstBeforeExecCommand focus', clear);\n                    setTimeout(function () {\n                        me.focus();\n                        me._selectionChange();\n                    }, 0)\n                }\n            }\n\n            return function (cont) {\n                var me = this;\n                me.body.innerHTML = '<p id=\"initContent\">' + cont + '</p>';\n\n                me.addListener('firstBeforeExecCommand focus', clear);\n            }\n        }(),\n        /**\n         * show方法的兼容版本\n         * @private\n         * @ignore\n         */\n        setShow: function () {\n            var me = this, range = me.selection.getRange();\n            if (me.container.style.display == 'none') {\n                //有可能内容丢失了\n                try {\n                    range.moveToBookmark(me.lastBk);\n                    delete me.lastBk\n                } catch (e) {\n                    range.setStartAtFirst(me.body).collapse(true)\n                }\n                //ie下focus实效，所以做了个延迟\n                setTimeout(function () {\n                    range.select(true);\n                }, 100);\n                me.container.style.display = '';\n            }\n\n        },\n        /**\n         * 显示编辑器\n         * @name show\n         * @grammar editor.show()\n         */\n        show: function () {\n            return this.setShow();\n        },\n        /**\n         * hide方法的兼容版本\n         * @private\n         * @ignore\n         */\n        setHide: function () {\n            var me = this;\n            if (!me.lastBk) {\n                me.lastBk = me.selection.getRange().createBookmark(true);\n            }\n            me.container.style.display = 'none'\n        },\n        /**\n         * 隐藏编辑器\n         * @name hide\n         * @grammar editor.hide()\n         */\n        hide: function () {\n            return this.setHide();\n        },\n        /**\n         * 根据制定的路径，获取对应的语言资源\n         * @name  getLang\n         * @grammar editor.getLang(path)  =>  （JSON|String) 路径根据的是lang目录下的语言文件的路径结构\n         * @example\n         * editor.getLang('contextMenu.delete') //如果当前是中文，那返回是的是删除\n         */\n        getLang: function (path) {\n            var lang = UM.I18N[this.options.lang];\n            if (!lang) {\n                throw Error(\"not import language file\");\n            }\n            path = (path || \"\").split(\".\");\n            for (var i = 0, ci; ci = path[i++];) {\n                lang = lang[ci];\n                if (!lang)break;\n            }\n            return lang;\n        },\n        /**\n         * 计算编辑器当前内容的长度\n         * @name  getContentLength\n         * @grammar editor.getContentLength(ingoneHtml,tagNames)  =>\n         * @example\n         * editor.getLang(true)\n         */\n        getContentLength: function (ingoneHtml, tagNames) {\n            var count = this.getContent(false,false,true).length;\n            if (ingoneHtml) {\n                tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']);\n                count = this.getContentTxt().replace(/[\\t\\r\\n]+/g, '').length;\n                for (var i = 0, ci; ci = tagNames[i++];) {\n                    count += this.body.getElementsByTagName(ci).length;\n                }\n            }\n            return count;\n        },\n        addInputRule: function (rule,ignoreUndo) {\n            rule.ignoreUndo = ignoreUndo;\n            this.inputRules.push(rule);\n        },\n        filterInputRule: function (root,isUndoLoad) {\n            for (var i = 0, ci; ci = this.inputRules[i++];) {\n                if(isUndoLoad && ci.ignoreUndo){\n                    continue;\n                }\n                ci.call(this, root)\n            }\n        },\n        addOutputRule: function (rule,ignoreUndo) {\n            rule.ignoreUndo = ignoreUndo;\n            this.outputRules.push(rule)\n        },\n        filterOutputRule: function (root,isUndoLoad) {\n            for (var i = 0, ci; ci = this.outputRules[i++];) {\n                if(isUndoLoad && ci.ignoreUndo){\n                    continue;\n                }\n                ci.call(this, root)\n            }\n        }\n    };\n    utils.inherits(Editor, EventBase);\n})();\n\n/**\n * @file\n * @name UM.filterWord\n * @short filterWord\n * @desc 用来过滤word粘贴过来的字符串\n * @import editor.js,core/utils.js\n * @anthor zhanyi\n */\nvar filterWord = UM.filterWord = function () {\n\n    //是否是word过来的内容\n    function isWordDocument( str ) {\n        return /(class=\"?Mso|style=\"[^\"]*\\bmso\\-|w:WordDocument|<(v|o):|lang=)/ig.test( str );\n    }\n    //去掉小数\n    function transUnit( v ) {\n        v = v.replace( /[\\d.]+\\w+/g, function ( m ) {\n            return utils.transUnitToPx(m);\n        } );\n        return v;\n    }\n\n    function filterPasteWord( str ) {\n        return str.replace(/[\\t\\r\\n]+/g,' ')\n            .replace( /<!--[\\s\\S]*?-->/ig, \"\" )\n            //转换图片\n            .replace(/<v:shape [^>]*>[\\s\\S]*?.<\\/v:shape>/gi,function(str){\n                //opera能自己解析出image所这里直接返回空\n                if(browser.opera){\n                    return '';\n                }\n                try{\n                    //有可能是bitmap占为图，无用，直接过滤掉，主要体现在粘贴excel表格中\n                    if(/Bitmap/i.test(str)){\n                        return '';\n                    }\n                    var width = str.match(/width:([ \\d.]*p[tx])/i)[1],\n                        height = str.match(/height:([ \\d.]*p[tx])/i)[1],\n                        src =  str.match(/src=\\s*\"([^\"]*)\"/i)[1];\n                    return '<img width=\"'+ transUnit(width) +'\" height=\"'+transUnit(height) +'\" src=\"' + src + '\" />';\n                } catch(e){\n                    return '';\n                }\n            })\n            //针对wps添加的多余标签处理\n            .replace(/<\\/?div[^>]*>/g,'')\n            //去掉多余的属性\n            .replace( /v:\\w+=([\"']?)[^'\"]+\\1/g, '' )\n            .replace( /<(!|script[^>]*>.*?<\\/script(?=[>\\s])|\\/?(\\?xml(:\\w+)?|xml|meta|link|style|\\w+:\\w+)(?=[\\s\\/>]))[^>]*>/gi, \"\" )\n            .replace( /<p [^>]*class=\"?MsoHeading\"?[^>]*>(.*?)<\\/p>/gi, \"<p><strong>$1</strong></p>\" )\n            //去掉多余的属性\n            .replace( /\\s+(class|lang|align)\\s*=\\s*(['\"]?)([\\w-]+)\\2/ig, function(str,name,marks,val){\n                //保留list的标示\n                return name == 'class' && val == 'MsoListParagraph' ? str : ''\n            })\n            //清除多余的font/span不能匹配&nbsp;有可能是空格\n            .replace( /<(font|span)[^>]*>(\\s*)<\\/\\1>/gi, function(a,b,c){\n                return c.replace(/[\\t\\r\\n ]+/g,' ')\n            })\n            //处理style的问题\n            .replace( /(<[a-z][^>]*)\\sstyle=([\"'])([^\\2]*?)\\2/gi, function( str, tag, tmp, style ) {\n                var n = [],\n                    s = style.replace( /^\\s+|\\s+$/, '' )\n                        .replace(/&#39;/g,'\\'')\n                        .replace( /&quot;/gi, \"'\" )\n                        .split( /;\\s*/g );\n\n                for ( var i = 0,v; v = s[i];i++ ) {\n\n                    var name, value,\n                        parts = v.split( \":\" );\n\n                    if ( parts.length == 2 ) {\n                        name = parts[0].toLowerCase();\n                        value = parts[1].toLowerCase();\n                        if(/^(background)\\w*/.test(name) && value.replace(/(initial|\\s)/g,'').length == 0\n                            ||\n                            /^(margin)\\w*/.test(name) && /^0\\w+$/.test(value)\n                            ){\n                            continue;\n                        }\n\n                        switch ( name ) {\n                            case \"mso-padding-alt\":\n                            case \"mso-padding-top-alt\":\n                            case \"mso-padding-right-alt\":\n                            case \"mso-padding-bottom-alt\":\n                            case \"mso-padding-left-alt\":\n                            case \"mso-margin-alt\":\n                            case \"mso-margin-top-alt\":\n                            case \"mso-margin-right-alt\":\n                            case \"mso-margin-bottom-alt\":\n                            case \"mso-margin-left-alt\":\n                            //ie下会出现挤到一起的情况\n                            //case \"mso-table-layout-alt\":\n                            case \"mso-height\":\n                            case \"mso-width\":\n                            case \"mso-vertical-align-alt\":\n                                //trace:1819 ff下会解析出padding在table上\n                                if(!/<table/.test(tag))\n                                    n[i] = name.replace( /^mso-|-alt$/g, \"\" ) + \":\" + transUnit( value );\n                                continue;\n                            case \"horiz-align\":\n                                n[i] = \"text-align:\" + value;\n                                continue;\n\n                            case \"vert-align\":\n                                n[i] = \"vertical-align:\" + value;\n                                continue;\n\n                            case \"font-color\":\n                            case \"mso-foreground\":\n                                n[i] = \"color:\" + value;\n                                continue;\n\n                            case \"mso-background\":\n                            case \"mso-highlight\":\n                                n[i] = \"background:\" + value;\n                                continue;\n\n                            case \"mso-default-height\":\n                                n[i] = \"min-height:\" + transUnit( value );\n                                continue;\n\n                            case \"mso-default-width\":\n                                n[i] = \"min-width:\" + transUnit( value );\n                                continue;\n\n                            case \"mso-padding-between-alt\":\n                                n[i] = \"border-collapse:separate;border-spacing:\" + transUnit( value );\n                                continue;\n\n                            case \"text-line-through\":\n                                if ( (value == \"single\") || (value == \"double\") ) {\n                                    n[i] = \"text-decoration:line-through\";\n                                }\n                                continue;\n                            case \"mso-zero-height\":\n                                if ( value == \"yes\" ) {\n                                    n[i] = \"display:none\";\n                                }\n                                continue;\n//                                case 'background':\n//                                    break;\n                            case 'margin':\n                                if ( !/[1-9]/.test( value ) ) {\n                                    continue;\n                                }\n\n                        }\n\n                        if ( /^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?:decor|trans)|top-bar|version|vnd|word-break)/.test( name )\n                            ||\n                            /text\\-indent|padding|margin/.test(name) && /\\-[\\d.]+/.test(value)\n                            ) {\n                            continue;\n                        }\n\n                        n[i] = name + \":\" + parts[1];\n                    }\n                }\n                return tag + (n.length ? ' style=\"' + n.join( ';').replace(/;{2,}/g,';') + '\"' : '');\n            })\n            .replace(/[\\d.]+(cm|pt)/g,function(str){\n                return utils.transUnitToPx(str)\n            })\n\n    }\n\n    return function ( html ) {\n        return (isWordDocument( html ) ? filterPasteWord( html ) : html);\n    };\n}();\n///import editor.js\n///import core/utils.js\n///import core/dom/dom.js\n///import core/dom/dtd.js\n///import core/htmlparser.js\n//模拟的节点类\n//by zhanyi\n(function () {\n    var uNode = UM.uNode = function (obj) {\n        this.type = obj.type;\n        this.data = obj.data;\n        this.tagName = obj.tagName;\n        this.parentNode = obj.parentNode;\n        this.attrs = obj.attrs || {};\n        this.children = obj.children;\n    };\n    var notTransAttrs = {\n        'href':1,\n        'src':1,\n        '_src':1,\n        '_href':1,\n        'cdata_data':1\n    };\n\n    var notTransTagName = {\n        style:1,\n        script:1\n    };\n\n    var indentChar = '    ',\n        breakChar = '\\n';\n\n    function insertLine(arr, current, begin) {\n        arr.push(breakChar);\n        return current + (begin ? 1 : -1);\n    }\n\n    function insertIndent(arr, current) {\n        //插入缩进\n        for (var i = 0; i < current; i++) {\n            arr.push(indentChar);\n        }\n    }\n\n    //创建uNode的静态方法\n    //支持标签和html\n    uNode.createElement = function (html) {\n        if (/[<>]/.test(html)) {\n            return UM.htmlparser(html).children[0]\n        } else {\n            return new uNode({\n                type:'element',\n                children:[],\n                tagName:html\n            })\n        }\n    };\n    uNode.createText = function (data,noTrans) {\n        return new UM.uNode({\n            type:'text',\n            'data':noTrans ? data : utils.unhtml(data || '')\n        })\n    };\n    function nodeToHtml(node, arr, formatter, current) {\n        switch (node.type) {\n            case 'root':\n                for (var i = 0, ci; ci = node.children[i++];) {\n                    //插入新行\n                    if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) {\n                        insertLine(arr, current, true);\n                        insertIndent(arr, current)\n                    }\n                    nodeToHtml(ci, arr, formatter, current)\n                }\n                break;\n            case 'text':\n                isText(node, arr);\n                break;\n            case 'element':\n                isElement(node, arr, formatter, current);\n                break;\n            case 'comment':\n                isComment(node, arr, formatter);\n        }\n        return arr;\n    }\n\n    function isText(node, arr) {\n        if(node.parentNode.tagName == 'pre'){\n            //源码模式下输入html标签，不能做转换处理，直接输出\n            arr.push(node.data)\n        }else{\n            arr.push(notTransTagName[node.parentNode.tagName] ? utils.html(node.data) : node.data.replace(/[ ]{2}/g,' &nbsp;'))\n        }\n\n    }\n\n    function isElement(node, arr, formatter, current) {\n        var attrhtml = '';\n        if (node.attrs) {\n            attrhtml = [];\n            var attrs = node.attrs;\n            for (var a in attrs) {\n                //这里就针对\n                //<p>'<img src='http://nsclick.baidu.com/u.gif?&asdf=\\\"sdf&asdfasdfs;asdf'></p>\n                //这里边的\\\"做转换，要不用innerHTML直接被截断了，属性src\n                //有可能做的不够\n                attrhtml.push(a + (attrs[a] !== undefined ? '=\"' + (notTransAttrs[a] ? utils.html(attrs[a]).replace(/[\"]/g, function (a) {\n                    return '&quot;'\n                }) : utils.unhtml(attrs[a])) + '\"' : ''))\n            }\n            attrhtml = attrhtml.join(' ');\n        }\n        arr.push('<' + node.tagName +\n            (attrhtml ? ' ' + attrhtml  : '') +\n            (dtd.$empty[node.tagName] ? '\\/' : '' ) + '>'\n        );\n        //插入新行\n        if (formatter  &&  !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') {\n            if(node.children && node.children.length){\n                current = insertLine(arr, current, true);\n                insertIndent(arr, current)\n            }\n\n        }\n        if (node.children && node.children.length) {\n            for (var i = 0, ci; ci = node.children[i++];) {\n                if (formatter && ci.type == 'element' &&  !dtd.$inlineWithA[ci.tagName] && i > 1) {\n                    insertLine(arr, current);\n                    insertIndent(arr, current)\n                }\n                nodeToHtml(ci, arr, formatter, current)\n            }\n        }\n        if (!dtd.$empty[node.tagName]) {\n            if (formatter && !dtd.$inlineWithA[node.tagName]  && node.tagName != 'pre') {\n\n                if(node.children && node.children.length){\n                    current = insertLine(arr, current);\n                    insertIndent(arr, current)\n                }\n            }\n            arr.push('<\\/' + node.tagName + '>');\n        }\n\n    }\n\n    function isComment(node, arr) {\n        arr.push('<!--' + node.data + '-->');\n    }\n\n    function getNodeById(root, id) {\n        var node;\n        if (root.type == 'element' && root.getAttr('id') == id) {\n            return root;\n        }\n        if (root.children && root.children.length) {\n            for (var i = 0, ci; ci = root.children[i++];) {\n                if (node = getNodeById(ci, id)) {\n                    return node;\n                }\n            }\n        }\n    }\n\n    function getNodesByTagName(node, tagName, arr) {\n        if (node.type == 'element' && node.tagName == tagName) {\n            arr.push(node);\n        }\n        if (node.children && node.children.length) {\n            for (var i = 0, ci; ci = node.children[i++];) {\n                getNodesByTagName(ci, tagName, arr)\n            }\n        }\n    }\n    function nodeTraversal(root,fn){\n        if(root.children && root.children.length){\n            for(var i= 0,ci;ci=root.children[i];){\n                nodeTraversal(ci,fn);\n                //ci被替换的情况，这里就不再走 fn了\n                if(ci.parentNode ){\n                    if(ci.children && ci.children.length){\n                        fn(ci)\n                    }\n                    if(ci.parentNode) i++\n                }\n            }\n        }else{\n            fn(root)\n        }\n\n    }\n    uNode.prototype = {\n\n        /**\n         * 当前节点对象，转换成html文本\n         * @method toHtml\n         * @return { String } 返回转换后的html字符串\n         * @example\n         * ```javascript\n         * node.toHtml();\n         * ```\n         */\n\n        /**\n         * 当前节点对象，转换成html文本\n         * @method toHtml\n         * @param { Boolean } formatter 是否格式化返回值\n         * @return { String } 返回转换后的html字符串\n         * @example\n         * ```javascript\n         * node.toHtml( true );\n         * ```\n         */\n        toHtml:function (formatter) {\n            var arr = [];\n            nodeToHtml(this, arr, formatter, 0);\n            return arr.join('')\n        },\n\n        /**\n         * 获取节点的html内容\n         * @method innerHTML\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @return { String } 返回节点的html内容\n         * @example\n         * ```javascript\n         * var htmlstr = node.innerHTML();\n         * ```\n         */\n\n        /**\n         * 设置节点的html内容\n         * @method innerHTML\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @param { String } htmlstr 传入要设置的html内容\n         * @return { UM.uNode } 返回节点本身\n         * @example\n         * ```javascript\n         * node.innerHTML('<span>text</span>');\n         * ```\n         */\n        innerHTML:function (htmlstr) {\n            if (this.type != 'element' || dtd.$empty[this.tagName]) {\n                return this;\n            }\n            if (utils.isString(htmlstr)) {\n                if(this.children){\n                    for (var i = 0, ci; ci = this.children[i++];) {\n                        ci.parentNode = null;\n                    }\n                }\n                this.children = [];\n                var tmpRoot = UM.htmlparser(htmlstr);\n                for (var i = 0, ci; ci = tmpRoot.children[i++];) {\n                    this.children.push(ci);\n                    ci.parentNode = this;\n                }\n                return this;\n            } else {\n                var tmpRoot = new UM.uNode({\n                    type:'root',\n                    children:this.children\n                });\n                return tmpRoot.toHtml();\n            }\n        },\n\n        /**\n         * 获取节点的纯文本内容\n         * @method innerText\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @return { String } 返回节点的存文本内容\n         * @example\n         * ```javascript\n         * var textStr = node.innerText();\n         * ```\n         */\n\n        /**\n         * 设置节点的纯文本内容\n         * @method innerText\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @param { String } textStr 传入要设置的文本内容\n         * @return { UM.uNode } 返回节点本身\n         * @example\n         * ```javascript\n         * node.innerText('<span>text</span>');\n         * ```\n         */\n        innerText:function (textStr,noTrans) {\n            if (this.type != 'element' || dtd.$empty[this.tagName]) {\n                return this;\n            }\n            if (textStr) {\n                if(this.children){\n                    for (var i = 0, ci; ci = this.children[i++];) {\n                        ci.parentNode = null;\n                    }\n                }\n                this.children = [];\n                this.appendChild(uNode.createText(textStr,noTrans));\n                return this;\n            } else {\n                return this.toHtml().replace(/<[^>]+>/g, '');\n            }\n        },\n\n        /**\n         * 获取当前对象的data属性\n         * @method getData\n         * @return { Object } 若节点的type值是elemenet，返回空字符串，否则返回节点的data属性\n         * @example\n         * ```javascript\n         * node.getData();\n         * ```\n         */\n        getData:function () {\n            if (this.type == 'element')\n                return '';\n            return this.data\n        },\n\n        /**\n         * 获取当前节点下的第一个子节点\n         * @method firstChild\n         * @return { UM.uNode } 返回第一个子节点\n         * @example\n         * ```javascript\n         * node.firstChild(); //返回第一个子节点\n         * ```\n         */\n        firstChild:function () {\n//            if (this.type != 'element' || dtd.$empty[this.tagName]) {\n//                return this;\n//            }\n            return this.children ? this.children[0] : null;\n        },\n\n        /**\n         * 获取当前节点下的最后一个子节点\n         * @method lastChild\n         * @return { UM.uNode } 返回最后一个子节点\n         * @example\n         * ```javascript\n         * node.lastChild(); //返回最后一个子节点\n         * ```\n         */\n        lastChild:function () {\n//            if (this.type != 'element' || dtd.$empty[this.tagName] ) {\n//                return this;\n//            }\n            return this.children ? this.children[this.children.length - 1] : null;\n        },\n\n        /**\n         * 获取和当前节点有相同父亲节点的前一个节点\n         * @method previousSibling\n         * @return { UM.uNode } 返回前一个节点\n         * @example\n         * ```javascript\n         * node.children[2].previousSibling(); //返回子节点node.children[1]\n         * ```\n         */\n        previousSibling : function(){\n            var parent = this.parentNode;\n            for (var i = 0, ci; ci = parent.children[i]; i++) {\n                if (ci === this) {\n                    return i == 0 ? null : parent.children[i-1];\n                }\n            }\n\n        },\n\n        /**\n         * 获取和当前节点有相同父亲节点的后一个节点\n         * @method nextSibling\n         * @return { UM.uNode } 返回后一个节点,找不到返回null\n         * @example\n         * ```javascript\n         * node.children[2].nextSibling(); //如果有，返回子节点node.children[3]\n         * ```\n         */\n        nextSibling : function(){\n            var parent = this.parentNode;\n            for (var i = 0, ci; ci = parent.children[i++];) {\n                if (ci === this) {\n                    return parent.children[i];\n                }\n            }\n        },\n\n        /**\n         * 用新的节点替换当前节点\n         * @method replaceChild\n         * @param { UM.uNode } target 要替换成该节点参数\n         * @param { UM.uNode } source 要被替换掉的节点\n         * @return { UM.uNode } 返回替换之后的节点对象\n         * @example\n         * ```javascript\n         * node.replaceChild(newNode, childNode); //用newNode替换childNode,childNode是node的子节点\n         * ```\n         */\n        replaceChild:function (target, source) {\n            if (this.children) {\n                if(target.parentNode){\n                    target.parentNode.removeChild(target);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === source) {\n                        this.children.splice(i, 1, target);\n                        source.parentNode = null;\n                        target.parentNode = this;\n                        return target;\n                    }\n                }\n            }\n        },\n\n        /**\n         * 在节点的子节点列表最后位置插入一个节点\n         * @method appendChild\n         * @param { UM.uNode } node 要插入的节点\n         * @return { UM.uNode } 返回刚插入的子节点\n         * @example\n         * ```javascript\n         * node.appendChild( newNode ); //在node内插入子节点newNode\n         * ```\n         */\n        appendChild:function (node) {\n            if (this.type == 'root' || (this.type == 'element' && !dtd.$empty[this.tagName])) {\n                if (!this.children) {\n                    this.children = []\n                }\n                if(node.parentNode){\n                    node.parentNode.removeChild(node);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === node) {\n                        this.children.splice(i, 1);\n                        break;\n                    }\n                }\n                this.children.push(node);\n                node.parentNode = this;\n                return node;\n            }\n\n\n        },\n\n        /**\n         * 在传入节点的前面插入一个节点\n         * @method insertBefore\n         * @param { UM.uNode } target 要插入的节点\n         * @param { UM.uNode } source 在该参数节点前面插入\n         * @return { UM.uNode } 返回刚插入的子节点\n         * @example\n         * ```javascript\n         * node.parentNode.insertBefore(newNode, node); //在node节点后面插入newNode\n         * ```\n         */\n        insertBefore:function (target, source) {\n            if (this.children) {\n                if(target.parentNode){\n                    target.parentNode.removeChild(target);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === source) {\n                        this.children.splice(i, 0, target);\n                        target.parentNode = this;\n                        return target;\n                    }\n                }\n\n            }\n        },\n\n        /**\n         * 在传入节点的后面插入一个节点\n         * @method insertAfter\n         * @param { UM.uNode } target 要插入的节点\n         * @param { UM.uNode } source 在该参数节点后面插入\n         * @return { UM.uNode } 返回刚插入的子节点\n         * @example\n         * ```javascript\n         * node.parentNode.insertAfter(newNode, node); //在node节点后面插入newNode\n         * ```\n         */\n        insertAfter:function (target, source) {\n            if (this.children) {\n                if(target.parentNode){\n                    target.parentNode.removeChild(target);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === source) {\n                        this.children.splice(i + 1, 0, target);\n                        target.parentNode = this;\n                        return target;\n                    }\n\n                }\n            }\n        },\n\n        /**\n         * 从当前节点的子节点列表中，移除节点\n         * @method removeChild\n         * @param { UM.uNode } node 要移除的节点引用\n         * @param { Boolean } keepChildren 是否保留移除节点的子节点，若传入true，自动把移除节点的子节点插入到移除的位置\n         * @return { * } 返回刚移除的子节点\n         * @example\n         * ```javascript\n         * node.removeChild(childNode,true); //在node的子节点列表中移除child节点，并且吧child的子节点插入到移除的位置\n         * ```\n         */\n        removeChild:function (node,keepChildren) {\n            if (this.children) {\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === node) {\n                        this.children.splice(i, 1);\n                        ci.parentNode = null;\n                        if(keepChildren && ci.children && ci.children.length){\n                            for(var j= 0,cj;cj=ci.children[j];j++){\n                                this.children.splice(i+j,0,cj);\n                                cj.parentNode = this;\n\n                            }\n                        }\n                        return ci;\n                    }\n                }\n            }\n        },\n\n        /**\n         * 获取当前节点所代表的元素属性，即获取attrs对象下的属性值\n         * @method getAttr\n         * @param { String } attrName 要获取的属性名称\n         * @return { * } 返回attrs对象下的属性值\n         * @example\n         * ```javascript\n         * node.getAttr('title');\n         * ```\n         */\n        getAttr:function (attrName) {\n            return this.attrs && this.attrs[attrName.toLowerCase()]\n        },\n\n        /**\n         * 设置当前节点所代表的元素属性，即设置attrs对象下的属性值\n         * @method setAttr\n         * @param { String } attrName 要设置的属性名称\n         * @param { * } attrVal 要设置的属性值，类型视设置的属性而定\n         * @return { * } 返回attrs对象下的属性值\n         * @example\n         * ```javascript\n         * node.setAttr('title','标题');\n         * ```\n         */\n        setAttr:function (attrName, attrVal) {\n            if (!attrName) {\n                delete this.attrs;\n                return;\n            }\n            if(!this.attrs){\n                this.attrs = {};\n            }\n            if (utils.isObject(attrName)) {\n                for (var a in attrName) {\n                    if (!attrName[a]) {\n                        delete this.attrs[a]\n                    } else {\n                        this.attrs[a.toLowerCase()] = attrName[a];\n                    }\n                }\n            } else {\n                if (!attrVal) {\n                    delete this.attrs[attrName]\n                } else {\n                    this.attrs[attrName.toLowerCase()] = attrVal;\n                }\n\n            }\n        },\n        hasAttr: function( attrName ){\n            var attrVal = this.getAttr( attrName );\n            return ( attrVal !== null ) && ( attrVal !== undefined );\n        },\n        /**\n         * 获取当前节点在父节点下的位置索引\n         * @method getIndex\n         * @return { Number } 返回索引数值，如果没有父节点，返回-1\n         * @example\n         * ```javascript\n         * node.getIndex();\n         * ```\n         */\n        getIndex:function(){\n            var parent = this.parentNode;\n            for(var i= 0,ci;ci=parent.children[i];i++){\n                if(ci === this){\n                    return i;\n                }\n            }\n            return -1;\n        },\n\n        /**\n         * 在当前节点下，根据id查找节点\n         * @method getNodeById\n         * @param { String } id 要查找的id\n         * @return { UM.uNode } 返回找到的节点\n         * @example\n         * ```javascript\n         * node.getNodeById('textId');\n         * ```\n         */\n        getNodeById:function (id) {\n            var node;\n            if (this.children && this.children.length) {\n                for (var i = 0, ci; ci = this.children[i++];) {\n                    if (node = getNodeById(ci, id)) {\n                        return node;\n                    }\n                }\n            }\n        },\n\n        /**\n         * 在当前节点下，根据元素名称查找节点列表\n         * @method getNodesByTagName\n         * @param { String } tagNames 要查找的元素名称\n         * @return { Array } 返回找到的节点列表\n         * @example\n         * ```javascript\n         * node.getNodesByTagName('span');\n         * ```\n         */\n        getNodesByTagName:function (tagNames) {\n            tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g, ' ').split(' ');\n            var arr = [], me = this;\n            utils.each(tagNames, function (tagName) {\n                if (me.children && me.children.length) {\n                    for (var i = 0, ci; ci = me.children[i++];) {\n                        getNodesByTagName(ci, tagName, arr)\n                    }\n                }\n            });\n            return arr;\n        },\n\n        /**\n         * 根据样式名称，获取节点的样式值\n         * @method getStyle\n         * @param { String } name 要获取的样式名称\n         * @return { String } 返回样式值\n         * @example\n         * ```javascript\n         * node.getStyle('font-size');\n         * ```\n         */\n        getStyle:function (name) {\n            var cssStyle = this.getAttr('style');\n            if (!cssStyle) {\n                return ''\n            }\n            var reg = new RegExp('(^|;)\\\\s*' + name + ':([^;]+)','i');\n            var match = cssStyle.match(reg);\n            if (match && match[0]) {\n                return match[2]\n            }\n            return '';\n        },\n\n        /**\n         * 给节点设置样式\n         * @method setStyle\n         * @param { String } name 要设置的的样式名称\n         * @param { String } val 要设置的的样值\n         * @example\n         * ```javascript\n         * node.setStyle('font-size', '12px');\n         * ```\n         */\n        setStyle:function (name, val) {\n            function exec(name, val) {\n                var reg = new RegExp('(^|;)\\\\s*' + name + ':([^;]+;?)', 'gi');\n                cssStyle = cssStyle.replace(reg, '$1');\n                if (val) {\n                    cssStyle = name + ':' + utils.unhtml(val) + ';' + cssStyle\n                }\n\n            }\n\n            var cssStyle = this.getAttr('style');\n            if (!cssStyle) {\n                cssStyle = '';\n            }\n            if (utils.isObject(name)) {\n                for (var a in name) {\n                    exec(a, name[a])\n                }\n            } else {\n                exec(name, val)\n            }\n            this.setAttr('style', utils.trim(cssStyle))\n        },\n        hasClass: function( className ){\n            if( this.hasAttr('class') ) {\n                var classNames = this.getAttr('class').split(/\\s+/),\n                    hasClass = false;\n                $.each(classNames, function(key, item){\n                    if( item === className ) {\n                        hasClass = true;\n                    }\n                });\n                return hasClass;\n            } else {\n                return false;\n            }\n        },\n        addClass: function( className ){\n\n            var classes = null,\n                hasClass = false;\n\n            if( this.hasAttr('class') ) {\n\n                classes = this.getAttr('class');\n                classes = classes.split(/\\s+/);\n\n                classes.forEach( function( item ){\n\n                    if( item===className ) {\n                        hasClass = true;\n                        return;\n                    }\n\n                } );\n\n                !hasClass && classes.push( className );\n\n                this.setAttr('class', classes.join(\" \"));\n\n            } else {\n                this.setAttr('class', className);\n            }\n\n        },\n        removeClass: function( className ){\n            if( this.hasAttr('class') ) {\n                var cl = this.getAttr('class');\n                cl = cl.replace(new RegExp('\\\\b' + className + '\\\\b', 'g'),'');\n                this.setAttr('class', utils.trim(cl).replace(/[ ]{2,}/g,' '));\n            }\n        },\n        /**\n         * 传入一个函数，递归遍历当前节点下的所有节点\n         * @method traversal\n         * @param { Function } fn 遍历到节点的时，传入节点作为参数，运行此函数\n         * @example\n         * ```javascript\n         * traversal(node, function(){\n         *     console.log(node.type);\n         * });\n         * ```\n         */\n        traversal:function(fn){\n            if(this.children && this.children.length){\n                nodeTraversal(this,fn);\n            }\n            return this;\n        }\n    }\n})();\n\n//html字符串转换成uNode节点\n//by zhanyi\nvar htmlparser = UM.htmlparser = function (htmlstr,ignoreBlank) {\n    //todo 原来的方式  [^\"'<>\\/] 有\\/就不能配对上 <TD vAlign=top background=../AAA.JPG> 这样的标签了\n    //先去掉了，加上的原因忘了，这里先记录\n    var re_tag = /<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s\\/>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'<>])*)\\/?>))/g,\n        re_attr = /([\\w\\-:.]+)(?:(?:\\s*=\\s*(?:(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s>]+)))|(?=\\s|$))/g;\n\n    //ie下取得的html可能会有\\n存在，要去掉，在处理replace(/[\\t\\r\\n]*/g,'');代码高量的\\n不能去除\n    var allowEmptyTags = {\n        b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,\n        sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1\n    };\n    htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, 'g'), '');\n    if(!ignoreBlank){\n        htmlstr = htmlstr.replace(new RegExp('[\\\\r\\\\t\\\\n'+(ignoreBlank?'':' ')+']*<\\/?(\\\\w+)\\\\s*(?:[^>]*)>[\\\\r\\\\t\\\\n'+(ignoreBlank?'':' ')+']*','g'), function(a,b){\n            //br暂时单独处理\n            if(b && allowEmptyTags[b.toLowerCase()]){\n                return a.replace(/(^[\\n\\r]+)|([\\n\\r]+$)/g,'');\n            }\n            return a.replace(new RegExp('^[\\\\r\\\\n'+(ignoreBlank?'':' ')+']+'),'').replace(new RegExp('[\\\\r\\\\n'+(ignoreBlank?'':' ')+']+$'),'');\n        });\n    }\n\n    var notTransAttrs = {\n        'href':1,\n        'src':1\n    };\n\n    var uNode = UM.uNode,\n        needParentNode = {\n            'td':'tr',\n            'tr':['tbody','thead','tfoot'],\n            'tbody':'table',\n            'th':'tr',\n            'thead':'table',\n            'tfoot':'table',\n            'caption':'table',\n            'li':['ul', 'ol'],\n            'dt':'dl',\n            'dd':'dl',\n            'option':'select'\n        },\n        needChild = {\n            'ol':'li',\n            'ul':'li'\n        };\n\n    function text(parent, data) {\n\n        if(needChild[parent.tagName]){\n            var tmpNode = uNode.createElement(needChild[parent.tagName]);\n            parent.appendChild(tmpNode);\n            tmpNode.appendChild(uNode.createText(data));\n            parent = tmpNode;\n        }else{\n\n            parent.appendChild(uNode.createText(data));\n        }\n    }\n\n    function element(parent, tagName, htmlattr) {\n        var needParentTag;\n        if (needParentTag = needParentNode[tagName]) {\n            var tmpParent = parent,hasParent;\n            while(tmpParent.type != 'root'){\n                if(utils.isArray(needParentTag) ? utils.indexOf(needParentTag, tmpParent.tagName) != -1 : needParentTag == tmpParent.tagName){\n                    parent = tmpParent;\n                    hasParent = true;\n                    break;\n                }\n                tmpParent = tmpParent.parentNode;\n            }\n            if(!hasParent){\n                parent = element(parent, utils.isArray(needParentTag) ? needParentTag[0] : needParentTag)\n            }\n        }\n        //按dtd处理嵌套\n//        if(parent.type != 'root' && !dtd[parent.tagName][tagName])\n//            parent = parent.parentNode;\n        var elm = new uNode({\n            parentNode:parent,\n            type:'element',\n            tagName:tagName.toLowerCase(),\n            //是自闭合的处理一下\n            children:dtd.$empty[tagName] ? null : []\n        });\n        //如果属性存在，处理属性\n        if (htmlattr) {\n            var attrs = {}, match;\n            while (match = re_attr.exec(htmlattr)) {\n                attrs[match[1].toLowerCase()] = notTransAttrs[match[1].toLowerCase()] ? (match[2] || match[3] || match[4]) : utils.unhtml(match[2] || match[3] || match[4])\n            }\n            elm.attrs = attrs;\n        }\n\n        parent.children.push(elm);\n        //如果是自闭合节点返回父亲节点\n        return  dtd.$empty[tagName] ? parent : elm\n    }\n\n    function comment(parent, data) {\n        parent.children.push(new uNode({\n            type:'comment',\n            data:data,\n            parentNode:parent\n        }));\n    }\n\n    var match, currentIndex = 0, nextIndex = 0;\n    //设置根节点\n    var root = new uNode({\n        type:'root',\n        children:[]\n    });\n    var currentParent = root;\n\n    while (match = re_tag.exec(htmlstr)) {\n        currentIndex = match.index;\n        try{\n            if (currentIndex > nextIndex) {\n                //text node\n                text(currentParent, htmlstr.slice(nextIndex, currentIndex));\n            }\n            if (match[3]) {\n\n                if(dtd.$cdata[currentParent.tagName]){\n                    text(currentParent, match[0]);\n                }else{\n                    //start tag\n                    currentParent = element(currentParent, match[3].toLowerCase(), match[4]);\n                }\n\n\n            } else if (match[1]) {\n                if(currentParent.type != 'root'){\n                    if(dtd.$cdata[currentParent.tagName] && !dtd.$cdata[match[1]]){\n                        text(currentParent, match[0]);\n                    }else{\n                        var tmpParent = currentParent;\n                        while(currentParent.type == 'element' && currentParent.tagName != match[1].toLowerCase()){\n                            currentParent = currentParent.parentNode;\n                            if(currentParent.type == 'root'){\n                                currentParent = tmpParent;\n                                throw 'break'\n                            }\n                        }\n                        //end tag\n                        currentParent = currentParent.parentNode;\n                    }\n\n                }\n\n            } else if (match[2]) {\n                //comment\n                comment(currentParent, match[2])\n            }\n        }catch(e){}\n\n        nextIndex = re_tag.lastIndex;\n\n    }\n    //如果结束是文本，就有可能丢掉，所以这里手动判断一下\n    //例如 <li>sdfsdfsdf<li>sdfsdfsdfsdf\n    if (nextIndex < htmlstr.length) {\n        text(currentParent, htmlstr.slice(nextIndex));\n    }\n    return root;\n};\n/**\n * @file\n * @name UM.filterNode\n * @short filterNode\n * @desc 根据给定的规则过滤节点\n * @import editor.js,core/utils.js\n * @anthor zhanyi\n */\nvar filterNode = UM.filterNode = function () {\n    function filterNode(node,rules){\n        switch (node.type) {\n            case 'text':\n                break;\n            case 'element':\n                var val;\n                if(val = rules[node.tagName]){\n                    if(val === '-'){\n                        node.parentNode.removeChild(node)\n                    }else if(utils.isFunction(val)){\n                        var parentNode = node.parentNode,\n                            index = node.getIndex();\n                        val(node);\n                        if(node.parentNode){\n                            if(node.children){\n                                for(var i = 0,ci;ci=node.children[i];){\n                                    filterNode(ci,rules);\n                                    if(ci.parentNode){\n                                        i++;\n                                    }\n                                }\n                            }\n                        }else{\n                            for(var i = index,ci;ci=parentNode.children[i];){\n                                filterNode(ci,rules);\n                                if(ci.parentNode){\n                                    i++;\n                                }\n                            }\n                        }\n\n\n                    }else{\n                        var attrs = val['$'];\n                        if(attrs && node.attrs){\n                            var tmpAttrs = {},tmpVal;\n                            for(var a in attrs){\n                                tmpVal = node.getAttr(a);\n                                //todo 只先对style单独处理\n                                if(a == 'style' && utils.isArray(attrs[a])){\n                                    var tmpCssStyle = [];\n                                    utils.each(attrs[a],function(v){\n                                        var tmp;\n                                        if(tmp = node.getStyle(v)){\n                                            tmpCssStyle.push(v + ':' + tmp);\n                                        }\n                                    });\n                                    tmpVal = tmpCssStyle.join(';')\n                                }\n                                if(tmpVal){\n                                    tmpAttrs[a] = tmpVal;\n                                }\n\n                            }\n                            node.attrs = tmpAttrs;\n                        }\n                        if(node.children){\n                            for(var i = 0,ci;ci=node.children[i];){\n                                filterNode(ci,rules);\n                                if(ci.parentNode){\n                                    i++;\n                                }\n                            }\n                        }\n                    }\n                }else{\n                    //如果不在名单里扣出子节点并删除该节点,cdata除外\n                    if(dtd.$cdata[node.tagName]){\n                        node.parentNode.removeChild(node)\n                    }else{\n                        var parentNode = node.parentNode,\n                            index = node.getIndex();\n                        node.parentNode.removeChild(node,true);\n                        for(var i = index,ci;ci=parentNode.children[i];){\n                            filterNode(ci,rules);\n                            if(ci.parentNode){\n                                i++;\n                            }\n                        }\n                    }\n                }\n                break;\n            case 'comment':\n                node.parentNode.removeChild(node)\n        }\n\n    }\n    return function(root,rules){\n        if(utils.isEmptyObject(rules)){\n            return root;\n        }\n        var val;\n        if(val = rules['-']){\n            utils.each(val.split(' '),function(k){\n                rules[k] = '-'\n            })\n        }\n        for(var i= 0,ci;ci=root.children[i];){\n            filterNode(ci,rules);\n            if(ci.parentNode){\n                i++;\n            }\n        }\n        return root;\n    }\n}();\n///import core\n/**\n * @description 插入内容\n * @name baidu.editor.execCommand\n * @param   {String}   cmdName     inserthtml插入内容的命令\n * @param   {String}   html                要插入的内容\n * @author zhanyi\n */\nUM.commands['inserthtml'] = {\n    execCommand: function (command,html,notNeedFilter){\n        var me = this,\n            range,\n            div;\n        if(!html){\n            return;\n        }\n        if(me.fireEvent('beforeinserthtml',html) === true){\n            return;\n        }\n        range = me.selection.getRange();\n        div = range.document.createElement( 'div' );\n        div.style.display = 'inline';\n\n        if (!notNeedFilter) {\n            var root = UM.htmlparser(html);\n            //如果给了过滤规则就先进行过滤\n            if(me.options.filterRules){\n                UM.filterNode(root,me.options.filterRules);\n            }\n            //执行默认的处理\n            me.filterInputRule(root);\n            html = root.toHtml()\n        }\n        div.innerHTML = utils.trim( html );\n\n        if ( !range.collapsed ) {\n            var tmpNode = range.startContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                range.setStartBefore(tmpNode)\n            }\n            tmpNode = range.endContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                range.setEndAfter(tmpNode)\n            }\n            range.txtToElmBoundary();\n            //结束边界可能放到了br的前边，要把br包含进来\n            // x[xxx]<br/>\n            if(range.endContainer && range.endContainer.nodeType == 1){\n                tmpNode = range.endContainer.childNodes[range.endOffset];\n                if(tmpNode && domUtils.isBr(tmpNode)){\n                    range.setEndAfter(tmpNode);\n                }\n            }\n            if(range.startOffset == 0){\n                tmpNode = range.startContainer;\n                if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){\n                    tmpNode = range.endContainer;\n                    if(range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){\n                        me.body.innerHTML = '<p>'+(browser.ie ? '' : '<br/>')+'</p>';\n                        range.setStart(me.body.firstChild,0).collapse(true)\n\n                    }\n                }\n            }\n            !range.collapsed && range.deleteContents();\n            if(range.startContainer.nodeType == 1){\n                var child = range.startContainer.childNodes[range.startOffset],pre;\n                if(child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)){\n                    range.setEnd(pre,pre.childNodes.length).collapse();\n                    while(child.firstChild){\n                        pre.appendChild(child.firstChild);\n                    }\n                    domUtils.remove(child);\n                }\n            }\n\n        }\n\n\n        var child,parent,pre,tmp,hadBreak = 0, nextNode;\n        //如果当前位置选中了fillchar要干掉，要不会产生空行\n        if(range.inFillChar()){\n            child = range.startContainer;\n            if(domUtils.isFillChar(child)){\n                range.setStartBefore(child).collapse(true);\n                domUtils.remove(child);\n            }else if(domUtils.isFillChar(child,true)){\n                child.nodeValue = child.nodeValue.replace(fillCharReg,'');\n                range.startOffset--;\n                range.collapsed && range.collapse(true)\n            }\n        }\n        while ( child = div.firstChild ) {\n            if(hadBreak){\n                var p = me.document.createElement('p');\n                while(child && (child.nodeType == 3 || !dtd.$block[child.tagName])){\n                    nextNode = child.nextSibling;\n                    p.appendChild(child);\n                    child = nextNode;\n                }\n                if(p.firstChild){\n\n                    child = p\n                }\n            }\n            range.insertNode( child );\n            nextNode = child.nextSibling;\n            if ( !hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm( child ) ){\n\n                parent = domUtils.findParent( child,function ( node ){ return domUtils.isBlockElm( node ); } );\n                if ( parent && parent.tagName.toLowerCase() != 'body' && !(dtd[parent.tagName][child.nodeName] && child.parentNode === parent)){\n                    if(!dtd[parent.tagName][child.nodeName]){\n                        pre = parent;\n                    }else{\n                        tmp = child.parentNode;\n                        while (tmp !== parent){\n                            pre = tmp;\n                            tmp = tmp.parentNode;\n\n                        }\n                    }\n\n\n                    domUtils.breakParent( child, pre || tmp );\n                    //去掉break后前一个多余的节点  <p>|<[p> ==> <p></p><div></div><p>|</p>\n                    var pre = child.previousSibling;\n                    domUtils.trimWhiteTextNode(pre);\n                    if(!pre.childNodes.length){\n                        domUtils.remove(pre);\n                    }\n                    //trace:2012,在非ie的情况，切开后剩下的节点有可能不能点入光标添加br占位\n\n                    if(!browser.ie &&\n                        (next = child.nextSibling) &&\n                        domUtils.isBlockElm(next) &&\n                        next.lastChild &&\n                        !domUtils.isBr(next.lastChild)){\n                        next.appendChild(me.document.createElement('br'));\n                    }\n                    hadBreak = 1;\n                }\n            }\n            var next = child.nextSibling;\n            if(!div.firstChild && next && domUtils.isBlockElm(next)){\n\n                range.setStart(next,0).collapse(true);\n                break;\n            }\n            range.setEndAfter( child ).collapse();\n\n        }\n\n        child = range.startContainer;\n\n        if(nextNode && domUtils.isBr(nextNode)){\n            domUtils.remove(nextNode)\n        }\n        //用chrome可能有空白展位符\n        if(domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)){\n            if(nextNode = child.nextSibling){\n                domUtils.remove(child);\n                if(nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]){\n\n                    range.setStart(nextNode,0).collapse(true).shrinkBoundary()\n                }\n            }else{\n\n                try{\n                    child.innerHTML = browser.ie ? domUtils.fillChar : '<br/>';\n                }catch(e){\n                    range.setStartBefore(child);\n                    domUtils.remove(child)\n                }\n\n            }\n\n        }\n        //加上true因为在删除表情等时会删两次，第一次是删的fillData\n        try{\n            if(browser.ie9below && range.startContainer.nodeType == 1 && !range.startContainer.childNodes[range.startOffset]){\n                var start = range.startContainer,pre = start.childNodes[range.startOffset-1];\n                if(pre && pre.nodeType == 1 && dtd.$empty[pre.tagName]){\n                    var txt = this.document.createTextNode(domUtils.fillChar);\n                    range.insertNode(txt).setStart(txt,0).collapse(true);\n                }\n            }\n            setTimeout(function(){\n                range.select(true);\n            })\n\n        }catch(e){}\n\n\n        setTimeout(function(){\n            range = me.selection.getRange();\n            range.scrollIntoView();\n            me.fireEvent('afterinserthtml');\n        },200);\n    }\n};\n\n///import core\n///import plugins\\inserthtml.js\n///commands 插入图片，操作图片的对齐方式\n///commandsName  InsertImage,ImageNone,ImageLeft,ImageRight,ImageCenter\n///commandsTitle  图片,默认,居左,居右,居中\n///commandsDialog  dialogs\\image\n/**\n * Created by .\n * User: zhanyi\n * for image\n */\nUM.commands['insertimage'] = {\n    execCommand:function (cmd, opt) {\n        opt = utils.isArray(opt) ? opt : [opt];\n        if (!opt.length) {\n            return;\n        }\n        var me = this;\n        var html = [], str = '', ci;\n        ci = opt[0];\n        if (opt.length == 1) {\n            str = '<img src=\"' + ci.src + '\" ' + (ci._src ? ' _src=\"' + ci._src + '\" ' : '') +\n                (ci.width ? 'width=\"' + ci.width + '\" ' : '') +\n                (ci.height ? ' height=\"' + ci.height + '\" ' : '') +\n                (ci['floatStyle'] == 'left' || ci['floatStyle'] == 'right' ? ' style=\"float:' + ci['floatStyle'] + ';\"' : '') +\n                (ci.title && ci.title != \"\" ? ' title=\"' + ci.title + '\"' : '') +\n                (ci.border && ci.border != \"0\" ? ' border=\"' + ci.border + '\"' : '') +\n                (ci.alt && ci.alt != \"\" ? ' alt=\"' + ci.alt + '\"' : '') +\n                (ci.hspace && ci.hspace != \"0\" ? ' hspace = \"' + ci.hspace + '\"' : '') +\n                (ci.vspace && ci.vspace != \"0\" ? ' vspace = \"' + ci.vspace + '\"' : '') + '/>';\n            if (ci['floatStyle'] == 'center') {\n                str = '<p style=\"text-align: center\">' + str + '</p>';\n            }\n            html.push(str);\n\n        } else {\n            for (var i = 0; ci = opt[i++];) {\n                str = '<p ' + (ci['floatStyle'] == 'center' ? 'style=\"text-align: center\" ' : '') + '><img src=\"' + ci.src + '\" ' +\n                    (ci.width ? 'width=\"' + ci.width + '\" ' : '') + (ci._src ? ' _src=\"' + ci._src + '\" ' : '') +\n                    (ci.height ? ' height=\"' + ci.height + '\" ' : '') +\n                    ' style=\"' + (ci['floatStyle'] && ci['floatStyle'] != 'center' ? 'float:' + ci['floatStyle'] + ';' : '') +\n                    (ci.border || '') + '\" ' +\n                    (ci.title ? ' title=\"' + ci.title + '\"' : '') + ' /></p>';\n                html.push(str);\n            }\n        }\n\n        me.execCommand('insertHtml', html.join(''), true);\n    }\n};\n///import core\n///commands 段落格式,居左,居右,居中,两端对齐\n///commandsName  JustifyLeft,JustifyCenter,JustifyRight,JustifyJustify\n///commandsTitle  居左对齐,居中对齐,居右对齐,两端对齐\n/**\n * @description 居左右中\n * @name UM.execCommand\n * @param   {String}   cmdName     justify执行对齐方式的命令\n * @param   {String}   align               对齐方式：left居左，right居右，center居中，justify两端对齐\n * @author zhanyi\n */\nUM.plugins['justify']=function(){\n    var me = this;\n    $.each('justifyleft justifyright justifycenter justifyfull'.split(' '),function(i,cmdName){\n        me.commands[cmdName] = {\n            execCommand:function (cmdName) {\n                return this.document.execCommand(cmdName);\n            },\n            queryCommandValue: function (cmdName) {\n                var val = this.document.queryCommandValue(cmdName);\n                return   val === true || val === 'true' ? cmdName.replace(/justify/,'') : '';\n            },\n            queryCommandState: function (cmdName) {\n                return this.document.queryCommandState(cmdName) ? 1 : 0\n            }\n        };\n    })\n};\n\n///import core\n///import plugins\\removeformat.js\n///commands 字体颜色,背景色,字号,字体,下划线,删除线\n///commandsName  ForeColor,BackColor,FontSize,FontFamily,Underline,StrikeThrough\n///commandsTitle  字体颜色,背景色,字号,字体,下划线,删除线\n/**\n * @description 字体\n * @name UM.execCommand\n * @param {String}     cmdName    执行的功能名称\n * @param {String}    value             传入的值\n */\nUM.plugins['font'] = function () {\n    var me = this,\n        fonts = {\n            'forecolor': 'forecolor',\n            'backcolor': 'backcolor',\n            'fontsize': 'fontsize',\n            'fontfamily': 'fontname'\n        },\n        cmdNameToStyle = {\n            'forecolor': 'color',\n            'backcolor': 'background-color',\n            'fontsize': 'font-size',\n            'fontfamily': 'font-family'\n        },\n        cmdNameToAttr = {\n            'forecolor': 'color',\n            'fontsize': 'size',\n            'fontfamily': 'face'\n        };\n    me.setOpt({\n        'fontfamily': [\n            { name: 'songti', val: '宋体,SimSun'},\n            { name: 'yahei', val: '微软雅黑,Microsoft YaHei'},\n            { name: 'kaiti', val: '楷体,楷体_GB2312, SimKai'},\n            { name: 'heiti', val: '黑体, SimHei'},\n            { name: 'lishu', val: '隶书, SimLi'},\n            { name: 'andaleMono', val: 'andale mono'},\n            { name: 'arial', val: 'arial, helvetica,sans-serif'},\n            { name: 'arialBlack', val: 'arial black,avant garde'},\n            { name: 'comicSansMs', val: 'comic sans ms'},\n            { name: 'impact', val: 'impact,chicago'},\n            { name: 'timesNewRoman', val: 'times new roman'},\n            { name: 'sans-serif',val:'sans-serif'}\n        ],\n        'fontsize': [10, 12,  16, 18,24, 32,48]\n    });\n\n    me.addOutputRule(function (root) {\n        utils.each(root.getNodesByTagName('font'), function (node) {\n            if (node.tagName == 'font') {\n                var cssStyle = [];\n                for (var p in node.attrs) {\n                    switch (p) {\n                        case 'size':\n                            var val =  node.attrs[p];\n                            $.each({\n                                '10':'1',\n                                '12':'2',\n                                '16':'3',\n                                '18':'4',\n                                '24':'5',\n                                '32':'6',\n                                '48':'7'\n                            },function(k,v){\n                                if(v == val){\n                                    val = k;\n                                    return false;\n                                }\n                            });\n                            cssStyle.push('font-size:' + val + 'px');\n                            break;\n                        case 'color':\n                            cssStyle.push('color:' + node.attrs[p]);\n                            break;\n                        case 'face':\n                            cssStyle.push('font-family:' + node.attrs[p]);\n                            break;\n                        case 'style':\n                            cssStyle.push(node.attrs[p]);\n                    }\n                }\n                node.attrs = {\n                    'style': cssStyle.join(';')\n                };\n            }\n            node.tagName = 'span';\n            if(node.parentNode.tagName == 'span' && node.parentNode.children.length == 1){\n                $.each(node.attrs,function(k,v){\n\n                    node.parentNode.attrs[k] = k == 'style' ? node.parentNode.attrs[k] + v : v;\n                })\n                node.parentNode.removeChild(node,true);\n            }\n        });\n    });\n    for(var p in fonts){\n        (function (cmd) {\n            me.commands[cmd] = {\n                execCommand: function (cmdName,value) {\n                    if(value == 'transparent'){\n                        return;\n                    }\n                    var rng = this.selection.getRange();\n                    if(rng.collapsed){\n                        var span = $('<span></span>').css(cmdNameToStyle[cmdName],value)[0];\n                        rng.insertNode(span).setStart(span,0).setCursor();\n                    }else{\n                        if(cmdName == 'fontsize'){\n                            value  = {\n                                '10':'1',\n                                '12':'2',\n                                '16':'3',\n                                '18':'4',\n                                '24':'5',\n                                '32':'6',\n                                '48':'7'\n                            }[(value+\"\").replace(/px/,'')]\n                        }\n                        this.document.execCommand(fonts[cmdName],false, value);\n                        if(browser.gecko){\n                            $.each(this.$body.find('a'),function(i,a){\n                                var parent = a.parentNode;\n                                if(parent.lastChild === parent.firstChild && /FONT|SPAN/.test(parent.tagName)){\n                                    var cloneNode = parent.cloneNode(false);\n                                    cloneNode.innerHTML = a.innerHTML;\n                                    $(a).html('').append(cloneNode).insertBefore(parent);\n\n                                    $(parent).remove();\n                                }\n                            });\n                        }\n                        if(!browser.ie){\n                            var nativeRange = this.selection.getNative().getRangeAt(0);\n                            var common = nativeRange.commonAncestorContainer;\n                            var rng = this.selection.getRange(),\n                                bk = rng.createBookmark(true);\n\n                            $(common).find('a').each(function(i,n){\n                                var parent = n.parentNode;\n                                if(parent.nodeName == 'FONT'){\n                                    var font = parent.cloneNode(false);\n                                    font.innerHTML = n.innerHTML;\n                                    $(n).html('').append(font);\n                                }\n                            });\n                            rng.moveToBookmark(bk).select()\n                        }\n                        return true\n                    }\n\n                },\n                queryCommandValue: function (cmdName) {\n                    var start = me.selection.getStart();\n                    var val = $(start).css(cmdNameToStyle[cmdName]);\n                    if(val === undefined){\n                        val = $(start).attr(cmdNameToAttr[cmdName])\n                    }\n                    return val ? utils.fixColor(cmdName,val).replace(/px/,'') : '';\n                },\n                queryCommandState: function (cmdName) {\n                    return this.queryCommandValue(cmdName)\n                }\n            };\n        })(p);\n    }\n};\n///import core\n///commands 超链接,取消链接\n///commandsName  Link,Unlink\n///commandsTitle  超链接,取消链接\n///commandsDialog  dialogs\\link\n/**\n * 超链接\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     link插入超链接\n * @param   {Object}  options         url地址，title标题，target是否打开新页\n * @author zhanyi\n */\n/**\n * 取消链接\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     unlink取消链接\n * @author zhanyi\n */\n\nUM.plugins['link'] = function(){\n    var me = this;\n\n    me.setOpt('autourldetectinie',false);\n    //在ie下禁用autolink\n    if(browser.ie && this.options.autourldetectinie === false){\n        this.addListener('keyup',function(cmd,evt){\n            var me = this,keyCode = evt.keyCode;\n            if(keyCode == 13 || keyCode == 32){\n                var rng = me.selection.getRange();\n                var start = rng.startContainer;\n                if(keyCode == 13){\n                    if(start.nodeName == 'P'){\n                        var pre = start.previousSibling;\n                        if(pre && pre.nodeType == 1){\n                            var pre = pre.lastChild;\n                            if(pre && pre.nodeName == 'A' && !pre.getAttribute('_href')){\n                                domUtils.remove(pre,true);\n                            }\n                        }\n                    }\n                }else if(keyCode == 32){\n                   if(start.nodeType == 3 && /^\\s$/.test(start.nodeValue)){\n                       start = start.previousSibling;\n                       if(start && start.nodeName == 'A' && !start.getAttribute('_href')){\n                           domUtils.remove(start,true);\n                       }\n                   }\n                }\n\n            }\n\n\n        });\n    }\n\n    this.addOutputRule(function(root){\n        $.each(root.getNodesByTagName('a'),function(i,a){\n            var _href = utils.html(a.getAttr('_href'));\n            if(!/^(ftp|https?|\\/|file)/.test(_href)){\n                _href = 'http://' + _href;\n            }\n            a.setAttr('href', _href);\n            a.setAttr('_href')\n            if(a.getAttr('title')==''){\n                a.setAttr('title')\n            }\n        })\n    });\n    this.addInputRule(function(root){\n        $.each(root.getNodesByTagName('a'),function(i,a){\n            a.setAttr('_href', utils.html(a.getAttr('href')));\n        })\n    });\n    me.commands['link'] = {\n        execCommand : function( cmdName, opt ) {\n\n            var me = this;\n            var rng = me.selection.getRange();\n            if(rng.collapsed){\n                var start = rng.startContainer;\n                if(start = domUtils.findParentByTagName(start,'a',true)){\n                    $(start).attr(opt);\n                    rng.selectNode(start).select()\n                }else{\n                    rng.insertNode($('<a>' +opt.href+'</a>').attr(opt)[0]).select()\n\n                }\n\n            }else{\n                me.document.execCommand('createlink',false,'_umeditor_link');\n                utils.each(domUtils.getElementsByTagName(me.body,'a',function(n){\n\n                    return n.getAttribute('href') == '_umeditor_link'\n                }),function(l){\n                    if($(l).text() == '_umeditor_link'){\n                        $(l).text(opt.href);\n                    }\n                    domUtils.setAttributes(l,opt);\n                    rng.selectNode(l).select()\n                })\n            }\n\n        },\n        queryCommandState:function(){\n            return this.queryCommandValue('link') ? 1 : 0;\n        },\n        queryCommandValue:function(){\n            var path = this.selection.getStartElementPath();\n            var result;\n            $.each(path,function(i,n){\n                if(n.nodeName == \"A\"){\n                    result = n;\n                    return false;\n                }\n            })\n            return result;\n        }\n    };\n    me.commands['unlink'] = {\n        execCommand : function() {\n            this.document.execCommand('unlink');\n        }\n    };\n};\n///import core\n///commands 打印\n///commandsName  Print\n///commandsTitle  打印\n/**\n * @description 打印\n * @name baidu.editor.execCommand\n * @param   {String}   cmdName     print打印编辑器内容\n * @author zhanyi\n */\nUM.commands['print'] = {\n    execCommand : function(){\n        var me = this,\n            id = 'editor_print_' + +new Date();\n\n        $('<iframe src=\"\" id=\"' + id + '\" name=\"' + id + '\" frameborder=\"0\"></iframe>').attr('id', id)\n            .css({\n                width:'0px',\n                height:'0px',\n                'overflow':'hidden',\n                'float':'left',\n                'position':'absolute',\n                top:'-10000px',\n                left:'-10000px'\n            })\n            .appendTo(me.$container.find('.edui-dialog-container'));\n\n        var w = window.open('', id, ''),\n            d = w.document;\n        d.open();\n        d.write('<html><head></head><body><div>'+this.getContent(null,null,true)+'</div><script>' +\n            \"setTimeout(function(){\" +\n            \"window.print();\" +\n            \"setTimeout(function(){\" +\n            \"window.parent.$('#\" + id + \"').remove();\" +\n            \"},100);\" +\n            \"},200);\" +\n            '</script></body></html>');\n        d.close();\n    },\n    notNeedUndo : 1\n};\n///import core\n///commands 格式\n///commandsName  Paragraph\n///commandsTitle  段落格式\n/**\n * 段落样式\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     paragraph插入段落执行命令\n * @param   {String}   style               标签值为：'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'\n * @param   {String}   attrs               标签的属性\n * @author zhanyi\n */\nUM.plugins['paragraph'] = function() {\n    var me = this;\n    me.setOpt('paragraph',{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''});\n    me.commands['paragraph'] = {\n        execCommand : function( cmdName, style ) {\n            return this.document.execCommand('formatBlock',false,'<' + style + '>');\n        },\n        queryCommandValue : function() {\n            try{\n                var  val = this.document.queryCommandValue('formatBlock')\n            }catch(e){\n            }\n            return val ;\n        }\n    };\n};\n\n///import core\n///import plugins\\inserthtml.js\n///commands 分割线\n///commandsName  Horizontal\n///commandsTitle  分隔线\n/**\n * 分割线\n * @function\n * @name UM.execCommand\n * @param {String}     cmdName    horizontal插入分割线\n */\nUM.plugins['horizontal'] = function(){\n    var me = this;\n    me.commands['horizontal'] = {\n        execCommand : function(  ) {\n            this.document.execCommand('insertHorizontalRule');\n            var rng = me.selection.getRange().txtToElmBoundary(true),\n                start = rng.startContainer;\n            if(domUtils.isBody(rng.startContainer)){\n                var next = rng.startContainer.childNodes[rng.startOffset];\n                if(!next){\n                    next = $('<p></p>').appendTo(rng.startContainer).html(browser.ie ? '&nbsp;' : '<br/>')[0]\n                }\n                rng.setStart(next,0).setCursor()\n            }else{\n\n                while(dtd.$inline[start.tagName] && start.lastChild === start.firstChild){\n\n                    var parent = start.parentNode;\n                    parent.appendChild(start.firstChild);\n                    parent.removeChild(start);\n                    start = parent;\n                }\n                while(dtd.$inline[start.tagName]){\n                    start = start.parentNode;\n                }\n                if(start.childNodes.length == 1 && start.lastChild.nodeName == 'HR'){\n                    var hr = start.lastChild;\n                    $(hr).insertBefore(start);\n                    rng.setStart(start,0).setCursor();\n                }else{\n                    hr = $('hr',start)[0];\n                    domUtils.breakParent(hr,start);\n                    var pre = hr.previousSibling;\n                    if(pre && domUtils.isEmptyBlock(pre)){\n                        $(pre).remove()\n                    }\n                    rng.setStart(hr.nextSibling,0).setCursor();\n                }\n\n            }\n        }\n    };\n\n};\n\n\n///import core\n///commands 清空文档\n///commandsName  ClearDoc\n///commandsTitle  清空文档\n/**\n *\n * 清空文档\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     cleardoc清空文档\n */\n\nUM.commands['cleardoc'] = {\n    execCommand : function() {\n        var me = this,\n            range = me.selection.getRange();\n        me.body.innerHTML = \"<p>\"+(ie ? \"\" : \"<br/>\")+\"</p>\";\n        range.setStart(me.body.firstChild,0).setCursor(false,true);\n        setTimeout(function(){\n            me.fireEvent(\"clearDoc\");\n        },0);\n\n    }\n};\n\n\n///import core\n///commands 撤销和重做\n///commandsName  Undo,Redo\n///commandsTitle  撤销,重做\n/**\n * @description 回退\n * @author zhanyi\n */\n\nUM.plugins['undo'] = function () {\n    var saveSceneTimer;\n    var me = this,\n        maxUndoCount = me.options.maxUndoCount || 20,\n        maxInputCount = me.options.maxInputCount || 20,\n        fillchar = new RegExp(domUtils.fillChar + '|<\\/hr>', 'gi');// ie会产生多余的</hr>\n    var noNeedFillCharTags = {\n        ol:1,ul:1,table:1,tbody:1,tr:1,body:1\n    };\n    var orgState = me.options.autoClearEmptyNode;\n    function compareAddr(indexA, indexB) {\n        if (indexA.length != indexB.length)\n            return 0;\n        for (var i = 0, l = indexA.length; i < l; i++) {\n            if (indexA[i] != indexB[i])\n                return 0\n        }\n        return 1;\n    }\n\n    function compareRangeAddress(rngAddrA, rngAddrB) {\n        if (rngAddrA.collapsed != rngAddrB.collapsed) {\n            return 0;\n        }\n        if (!compareAddr(rngAddrA.startAddress, rngAddrB.startAddress) || !compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)) {\n            return 0;\n        }\n        return 1;\n    }\n\n    function UndoManager() {\n        this.list = [];\n        this.index = 0;\n        this.hasUndo = false;\n        this.hasRedo = false;\n        this.undo = function () {\n            if (this.hasUndo) {\n                if (!this.list[this.index - 1] && this.list.length == 1) {\n                    this.reset();\n                    return;\n                }\n                while (this.list[this.index].content == this.list[this.index - 1].content) {\n                    this.index--;\n                    if (this.index == 0) {\n                        return this.restore(0);\n                    }\n                }\n                this.restore(--this.index);\n            }\n        };\n        this.redo = function () {\n            if (this.hasRedo) {\n                while (this.list[this.index].content == this.list[this.index + 1].content) {\n                    this.index++;\n                    if (this.index == this.list.length - 1) {\n                        return this.restore(this.index);\n                    }\n                }\n                this.restore(++this.index);\n            }\n        };\n\n        this.restore = function () {\n            var me = this.editor;\n            var scene = this.list[this.index];\n            var root = UM.htmlparser(scene.content.replace(fillchar, ''));\n            me.options.autoClearEmptyNode = false;\n            me.filterInputRule(root,true);\n            me.options.autoClearEmptyNode = orgState;\n            //trace:873\n            //去掉展位符\n            me.body.innerHTML = root.toHtml();\n            me.fireEvent('afterscencerestore');\n            //处理undo后空格不展位的问题\n            if (browser.ie) {\n                utils.each(domUtils.getElementsByTagName(me.document,'td th caption p'),function(node){\n                    if(domUtils.isEmptyNode(node)){\n                        domUtils.fillNode(me.document, node);\n                    }\n                })\n            }\n\n            try{\n                var rng = new dom.Range(me.document,me.body).moveToAddress(scene.address);\n                if(browser.ie && rng.collapsed && rng.startContainer.nodeType == 1){\n                    var tmpNode = rng.startContainer.childNodes[rng.startOffset];\n                    if( !tmpNode || tmpNode.nodeType == 1 && dtd.$empty[tmpNode]){\n                        rng.insertNode(me.document.createTextNode(' ')).collapse(true);\n                    }\n                }\n                rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]);\n            }catch(e){}\n\n            this.update();\n            this.clearKey();\n            //不能把自己reset了\n            me.fireEvent('reset', true);\n        };\n\n        this.getScene = function () {\n            var me = this.editor;\n            var rng = me.selection.getRange(),\n                rngAddress = rng.createAddress(false,true);\n            me.fireEvent('beforegetscene');\n            var root = UM.htmlparser(me.body.innerHTML,true);\n            me.options.autoClearEmptyNode = false;\n            me.filterOutputRule(root,true);\n            me.options.autoClearEmptyNode = orgState;\n            var cont = root.toHtml();\n            browser.ie && (cont = cont.replace(/>&nbsp;</g, '><').replace(/\\s*</g, '<').replace(/>\\s*/g, '>'));\n            me.fireEvent('aftergetscene');\n            return {\n                address:rngAddress,\n                content:cont\n            }\n        };\n        this.save = function (notCompareRange,notSetCursor) {\n            clearTimeout(saveSceneTimer);\n            var currentScene = this.getScene(notSetCursor),\n                lastScene = this.list[this.index];\n            //内容相同位置相同不存\n            if (lastScene && lastScene.content == currentScene.content &&\n                ( notCompareRange ? 1 : compareRangeAddress(lastScene.address, currentScene.address) )\n                ) {\n                return;\n            }\n            this.list = this.list.slice(0, this.index + 1);\n            this.list.push(currentScene);\n            //如果大于最大数量了，就把最前的剔除\n            if (this.list.length > maxUndoCount) {\n                this.list.shift();\n            }\n            this.index = this.list.length - 1;\n            this.clearKey();\n            //跟新undo/redo状态\n            this.update();\n\n        };\n        this.update = function () {\n            this.hasRedo = !!this.list[this.index + 1];\n            this.hasUndo = !!this.list[this.index - 1];\n        };\n        this.reset = function () {\n            this.list = [];\n            this.index = 0;\n            this.hasUndo = false;\n            this.hasRedo = false;\n            this.clearKey();\n        };\n        this.clearKey = function () {\n            keycont = 0;\n            lastKeyCode = null;\n        };\n    }\n\n    me.undoManger = new UndoManager();\n    me.undoManger.editor = me;\n    function saveScene() {\n        this.undoManger.save();\n    }\n\n    me.addListener('saveScene', function () {\n        var args = Array.prototype.splice.call(arguments,1);\n        this.undoManger.save.apply(this.undoManger,args);\n    });\n\n    me.addListener('beforeexeccommand', saveScene);\n    me.addListener('afterexeccommand', saveScene);\n\n    me.addListener('reset', function (type, exclude) {\n        if (!exclude) {\n            this.undoManger.reset();\n        }\n    });\n    me.commands['redo'] = me.commands['undo'] = {\n        execCommand:function (cmdName) {\n            this.undoManger[cmdName]();\n        },\n        queryCommandState:function (cmdName) {\n            return this.undoManger['has' + (cmdName.toLowerCase() == 'undo' ? 'Undo' : 'Redo')] ? 0 : -1;\n        },\n        notNeedUndo:1\n    };\n\n    var keys = {\n            //  /*Backspace*/ 8:1, /*Delete*/ 46:1,\n            /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1,\n            37:1, 38:1, 39:1, 40:1\n\n        },\n        keycont = 0,\n        lastKeyCode;\n    //输入法状态下不计算字符数\n    var inputType = false;\n    me.addListener('ready', function () {\n        $(this.body).on('compositionstart', function () {\n            inputType = true;\n        }).on('compositionend', function () {\n            inputType = false;\n        })\n    });\n    //快捷键\n    me.addshortcutkey({\n        \"Undo\":\"ctrl+90\", //undo\n        \"Redo\":\"ctrl+89,shift+ctrl+z\" //redo\n\n    });\n    var isCollapsed = true;\n    me.addListener('keydown', function (type, evt) {\n\n        var me = this;\n        var keyCode = evt.keyCode || evt.which;\n        if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {\n            if (inputType)\n                return;\n\n            if(!me.selection.getRange().collapsed){\n                me.undoManger.save(false,true);\n                isCollapsed = false;\n                return;\n            }\n            if (me.undoManger.list.length == 0) {\n                me.undoManger.save(true);\n            }\n            clearTimeout(saveSceneTimer);\n            function save(cont){\n\n                if (cont.selection.getRange().collapsed)\n                    cont.fireEvent('contentchange');\n                cont.undoManger.save(false,true);\n                cont.fireEvent('selectionchange');\n            }\n            saveSceneTimer = setTimeout(function(){\n                if(inputType){\n                    var interalTimer = setInterval(function(){\n                        if(!inputType){\n                            save(me);\n                            clearInterval(interalTimer)\n                        }\n                    },300)\n                    return;\n                }\n                save(me);\n            },200);\n\n            lastKeyCode = keyCode;\n            keycont++;\n            if (keycont >= maxInputCount ) {\n                save(me)\n            }\n        }\n    });\n    me.addListener('keyup', function (type, evt) {\n        var keyCode = evt.keyCode || evt.which;\n        if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {\n            if (inputType)\n                return;\n            if(!isCollapsed){\n                this.undoManger.save(false,true);\n                isCollapsed = true;\n            }\n        }\n    });\n\n};\n\n///import core\n///import plugins/inserthtml.js\n///import plugins/undo.js\n///import plugins/serialize.js\n///commands 粘贴\n///commandsName  PastePlain\n///commandsTitle  纯文本粘贴模式\n/**\n * @description 粘贴\n * @author zhanyi\n */\nUM.plugins['paste'] = function () {\n    function getClipboardData(callback) {\n        var doc = this.document;\n        if (doc.getElementById('baidu_pastebin')) {\n            return;\n        }\n        var range = this.selection.getRange(),\n            bk = range.createBookmark(),\n        //创建剪贴的容器div\n            pastebin = doc.createElement('div');\n        pastebin.id = 'baidu_pastebin';\n        // Safari 要求div必须有内容，才能粘贴内容进来\n        browser.webkit && pastebin.appendChild(doc.createTextNode(domUtils.fillChar + domUtils.fillChar));\n        this.body.appendChild(pastebin);\n        //trace:717 隐藏的span不能得到top\n        //bk.start.innerHTML = '&nbsp;';\n        bk.start.style.display = '';\n\n        pastebin.style.cssText = \"position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:\" +\n        //要在现在光标平行的位置加入，否则会出现跳动的问题\n        $(bk.start).position().top  + 'px';\n\n        range.selectNodeContents(pastebin).select(true);\n\n        setTimeout(function () {\n            if (browser.webkit) {\n                for (var i = 0, pastebins = doc.querySelectorAll('#baidu_pastebin'), pi; pi = pastebins[i++];) {\n                    if (domUtils.isEmptyNode(pi)) {\n                        domUtils.remove(pi);\n                    } else {\n                        pastebin = pi;\n                        break;\n                    }\n                }\n            }\n            try {\n                pastebin.parentNode.removeChild(pastebin);\n            } catch (e) {\n            }\n            range.moveToBookmark(bk).select(true);\n            callback(pastebin);\n        }, 0);\n    }\n\n    var me = this;\n\n\n    function filter(div) {\n        var html;\n        if (div.firstChild) {\n            //去掉cut中添加的边界值\n            var nodes = domUtils.getElementsByTagName(div, 'span');\n            for (var i = 0, ni; ni = nodes[i++];) {\n                if (ni.id == '_baidu_cut_start' || ni.id == '_baidu_cut_end') {\n                    domUtils.remove(ni);\n                }\n            }\n\n            if (browser.webkit) {\n\n                var brs = div.querySelectorAll('div br');\n                for (var i = 0, bi; bi = brs[i++];) {\n                    var pN = bi.parentNode;\n                    if (pN.tagName == 'DIV' && pN.childNodes.length == 1) {\n                        pN.innerHTML = '<p><br/></p>';\n                        domUtils.remove(pN);\n                    }\n                }\n                var divs = div.querySelectorAll('#baidu_pastebin');\n                for (var i = 0, di; di = divs[i++];) {\n                    var tmpP = me.document.createElement('p');\n                    di.parentNode.insertBefore(tmpP, di);\n                    while (di.firstChild) {\n                        tmpP.appendChild(di.firstChild);\n                    }\n                    domUtils.remove(di);\n                }\n\n                var metas = div.querySelectorAll('meta');\n                for (var i = 0, ci; ci = metas[i++];) {\n                    domUtils.remove(ci);\n                }\n\n                var brs = div.querySelectorAll('br');\n                for (i = 0; ci = brs[i++];) {\n                    if (/^apple-/i.test(ci.className)) {\n                        domUtils.remove(ci);\n                    }\n                }\n            }\n            if (browser.gecko) {\n                var dirtyNodes = div.querySelectorAll('[_moz_dirty]');\n                for (i = 0; ci = dirtyNodes[i++];) {\n                    ci.removeAttribute('_moz_dirty');\n                }\n            }\n            if (!browser.ie) {\n                var spans = div.querySelectorAll('span.Apple-style-span');\n                for (var i = 0, ci; ci = spans[i++];) {\n                    domUtils.remove(ci, true);\n                }\n            }\n\n            //ie下使用innerHTML会产生多余的\\r\\n字符，也会产生&nbsp;这里过滤掉\n            html = div.innerHTML;//.replace(/>(?:(\\s|&nbsp;)*?)</g,'><');\n\n            //过滤word粘贴过来的冗余属性\n            html = UM.filterWord(html);\n            //取消了忽略空白的第二个参数，粘贴过来的有些是有空白的，会被套上相关的标签\n            var root = UM.htmlparser(html);\n            //如果给了过滤规则就先进行过滤\n            if (me.options.filterRules) {\n                UM.filterNode(root, me.options.filterRules);\n            }\n            //执行默认的处理\n            me.filterInputRule(root);\n            //针对chrome的处理\n            if (browser.webkit) {\n                var br = root.lastChild();\n                if (br && br.type == 'element' && br.tagName == 'br') {\n                    root.removeChild(br)\n                }\n                utils.each(me.body.querySelectorAll('div'), function (node) {\n                    if (domUtils.isEmptyBlock(node)) {\n                        domUtils.remove(node)\n                    }\n                })\n            }\n            html = {'html': root.toHtml()};\n            me.fireEvent('beforepaste', html, root);\n            //抢了默认的粘贴，那后边的内容就不执行了，比如表格粘贴\n            if(!html.html){\n                return;\n            }\n\n            me.execCommand('insertHtml', html.html, true);\n            me.fireEvent(\"afterpaste\", html);\n        }\n    }\n\n\n    me.addListener('ready', function () {\n        $(me.body).on( 'cut', function () {\n            var range = me.selection.getRange();\n            if (!range.collapsed && me.undoManger) {\n                me.undoManger.save();\n            }\n        }).on(browser.ie || browser.opera ? 'keydown' : 'paste', function (e) {\n            //ie下beforepaste在点击右键时也会触发，所以用监控键盘才处理\n            if ((browser.ie || browser.opera) && ((!e.ctrlKey && !e.metaKey) || e.keyCode != '86')) {\n                return;\n            }\n            getClipboardData.call(me, function (div) {\n                filter(div);\n            });\n        });\n\n    });\n};\n\n\n///import core\n///commands 有序列表,无序列表\n///commandsName  InsertOrderedList,InsertUnorderedList\n///commandsTitle  有序列表,无序列表\n/**\n * 有序列表\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     insertorderlist插入有序列表\n * @param   {String}   style               值为：decimal,lower-alpha,lower-roman,upper-alpha,upper-roman\n * @author zhanyi\n */\n/**\n * 无序链接\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     insertunorderlist插入无序列表\n * * @param   {String}   style            值为：circle,disc,square\n * @author zhanyi\n */\n\nUM.plugins['list'] = function () {\n    var me = this;\n\n    me.setOpt( {\n        'insertorderedlist':{\n            'decimal':'',\n            'lower-alpha':'',\n            'lower-roman':'',\n            'upper-alpha':'',\n            'upper-roman':''\n        },\n        'insertunorderedlist':{\n            'circle':'',\n            'disc':'',\n            'square':''\n        }\n    } );\n\n    this.addInputRule(function(root){\n        utils.each(root.getNodesByTagName('li'), function (node) {\n            if(node.children.length == 0){\n                node.parentNode.removeChild(node);\n            }\n        })\n    });\n    me.commands['insertorderedlist'] =\n    me.commands['insertunorderedlist'] = {\n            execCommand:function (cmdName) {\n                this.document.execCommand(cmdName);\n                var rng = this.selection.getRange(),\n                    bk = rng.createBookmark(true);\n\n                this.$body.find('ol,ul').each(function(i,n){\n                    var parent = n.parentNode;\n                    if(parent.tagName == 'P' && parent.lastChild === parent.firstChild){\n                        $(n).children().each(function(j,li){\n                            var p = parent.cloneNode(false);\n                            $(p).append(li.innerHTML);\n                            $(li).html('').append(p);\n                        });\n                        $(n).insertBefore(parent);\n                        $(parent).remove();\n                    }\n\n                    if(dtd.$inline[parent.tagName]){\n                        if(parent.tagName == 'SPAN'){\n\n                            $(n).children().each(function(k,li){\n                                var span = parent.cloneNode(false);\n                                if(li.firstChild.nodeName != 'P'){\n\n                                    while(li.firstChild){\n                                        span.appendChild(li.firstChild)\n                                    };\n                                    $('<p></p>').appendTo(li).append(span);\n                                }else{\n                                    while(li.firstChild){\n                                        span.appendChild(li.firstChild)\n                                    };\n                                    $(li.firstChild).append(span);\n                                }\n                            })\n\n                        }\n                        domUtils.remove(parent,true)\n                    }\n                });\n\n\n\n\n                rng.moveToBookmark(bk).select();\n                return true;\n            },\n            queryCommandState:function (cmdName) {\n                return this.document.queryCommandState(cmdName);\n            }\n        };\n};\n\n\n///import core\n///import plugins/serialize.js\n///import plugins/undo.js\n///commands 查看源码\n///commandsName  Source\n///commandsTitle  查看源码\n(function (){\n    var sourceEditors = {\n        textarea: function (editor, holder){\n            var textarea = holder.ownerDocument.createElement('textarea');\n            textarea.style.cssText = 'resize:none;border:0;padding:0;margin:0;overflow-y:auto;outline:0';\n            // todo: IE下只有onresize属性可用... 很纠结\n            if (browser.ie && browser.version < 8) {\n\n                textarea.style.width = holder.offsetWidth + 'px';\n                textarea.style.height = holder.offsetHeight + 'px';\n                holder.onresize = function (){\n                    textarea.style.width = holder.offsetWidth + 'px';\n                    textarea.style.height = holder.offsetHeight + 'px';\n                };\n            }\n            holder.appendChild(textarea);\n            return {\n                container : textarea,\n                setContent: function (content){\n                    textarea.value = content;\n                },\n                getContent: function (){\n                    return textarea.value;\n                },\n                select: function (){\n                    var range;\n                    if (browser.ie) {\n                        range = textarea.createTextRange();\n                        range.collapse(true);\n                        range.select();\n                    } else {\n                        //todo: chrome下无法设置焦点\n                        textarea.setSelectionRange(0, 0);\n                        textarea.focus();\n                    }\n                },\n                dispose: function (){\n                    holder.removeChild(textarea);\n                    // todo\n                    holder.onresize = null;\n                    textarea = null;\n                    holder = null;\n                }\n            };\n        }\n    };\n\n    UM.plugins['source'] = function (){\n        var me = this;\n        var opt = this.options;\n        var sourceMode = false;\n        var sourceEditor;\n\n        opt.sourceEditor = 'textarea';\n\n        me.setOpt({\n            sourceEditorFirst:false\n        });\n        function createSourceEditor(holder){\n            return sourceEditors.textarea(me, holder);\n        }\n\n        var bakCssText;\n        //解决在源码模式下getContent不能得到最新的内容问题\n        var oldGetContent = me.getContent,\n            bakAddress;\n\n        me.commands['source'] = {\n            execCommand: function (){\n\n                sourceMode = !sourceMode;\n                if (sourceMode) {\n                    bakAddress = me.selection.getRange().createAddress(false,true);\n                    me.undoManger && me.undoManger.save(true);\n                    if(browser.gecko){\n                        me.body.contentEditable = false;\n                    }\n\n//                    bakCssText = me.body.style.cssText;\n                    me.body.style.cssText += ';position:absolute;left:-32768px;top:-32768px;';\n\n\n                    me.fireEvent('beforegetcontent');\n                    var root = UM.htmlparser(me.body.innerHTML);\n                    me.filterOutputRule(root);\n                    root.traversal(function (node) {\n                        if (node.type == 'element') {\n                            switch (node.tagName) {\n                                case 'td':\n                                case 'th':\n                                case 'caption':\n                                    if(node.children && node.children.length == 1){\n                                        if(node.firstChild().tagName == 'br' ){\n                                            node.removeChild(node.firstChild())\n                                        }\n                                    };\n                                    break;\n                                case 'pre':\n                                    node.innerText(node.innerText().replace(/&nbsp;/g,' '))\n\n                            }\n                        }\n                    });\n\n                    me.fireEvent('aftergetcontent');\n\n                    var content = root.toHtml(true);\n\n                    sourceEditor = createSourceEditor(me.body.parentNode);\n\n                    sourceEditor.setContent(content);\n\n                    var getStyleValue=function(attr){\n                        return parseInt($(me.body).css(attr));\n                    };\n                    $(sourceEditor.container).width($(me.body).width()+getStyleValue(\"padding-left\")+getStyleValue(\"padding-right\"))\n                        .height($(me.body).height());\n                    setTimeout(function (){\n                        sourceEditor.select();\n                    });\n                    //重置getContent，源码模式下取值也能是最新的数据\n                    me.getContent = function (){\n                        return sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>')+'</p>';\n                    };\n                } else {\n                    me.$body.css({\n                        'position':'',\n                        'left':'',\n                        'top':''\n                    });\n//                    me.body.style.cssText = bakCssText;\n                    var cont = sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>')+'</p>';\n                    //处理掉block节点前后的空格,有可能会误命中，暂时不考虑\n                    cont = cont.replace(new RegExp('[\\\\r\\\\t\\\\n ]*<\\/?(\\\\w+)\\\\s*(?:[^>]*)>','g'), function(a,b){\n                        if(b && !dtd.$inlineWithA[b.toLowerCase()]){\n                            return a.replace(/(^[\\n\\r\\t ]*)|([\\n\\r\\t ]*$)/g,'');\n                        }\n                        return a.replace(/(^[\\n\\r\\t]*)|([\\n\\r\\t]*$)/g,'')\n                    });\n                    me.setContent(cont);\n                    sourceEditor.dispose();\n                    sourceEditor = null;\n                    //还原getContent方法\n                    me.getContent = oldGetContent;\n                    var first = me.body.firstChild;\n                    //trace:1106 都删除空了，下边会报错，所以补充一个p占位\n                    if(!first){\n                        me.body.innerHTML = '<p>'+(browser.ie?'':'<br/>')+'</p>';\n                    }\n                    //要在ifm为显示时ff才能取到selection,否则报错\n                    //这里不能比较位置了\n                    me.undoManger && me.undoManger.save(true);\n                    if(browser.gecko){\n                        me.body.contentEditable = true;\n                    }\n                    try{\n                        me.selection.getRange().moveToAddress(bakAddress).select();\n                    }catch(e){}\n\n                }\n                this.fireEvent('sourcemodechanged', sourceMode);\n            },\n            queryCommandState: function (){\n                return sourceMode|0;\n            },\n            notNeedUndo : 1\n        };\n        var oldQueryCommandState = me.queryCommandState;\n\n\n        me.queryCommandState = function (cmdName){\n            cmdName = cmdName.toLowerCase();\n            if (sourceMode) {\n                //源码模式下可以开启的命令\n                return cmdName in {\n                    'source' : 1,\n                    'fullscreen' : 1\n                } ? oldQueryCommandState.apply(this, arguments)  : -1\n            }\n            return oldQueryCommandState.apply(this, arguments);\n        };\n\n    };\n\n})();\n///import core\n///import plugins/undo.js\n///commands 设置回车标签p或br\n///commandsName  EnterKey\n///commandsTitle  设置回车标签p或br\n/**\n * @description 处理回车\n * @author zhanyi\n */\nUM.plugins['enterkey'] = function() {\n    var hTag,\n        me = this,\n        tag = me.options.enterTag;\n    me.addListener('keyup', function(type, evt) {\n\n        var keyCode = evt.keyCode || evt.which;\n        if (keyCode == 13) {\n            var range = me.selection.getRange(),\n                start = range.startContainer,\n                doSave;\n\n            //修正在h1-h6里边回车后不能嵌套p的问题\n            if (!browser.ie) {\n\n                if (/h\\d/i.test(hTag)) {\n                    if (browser.gecko) {\n                        var h = domUtils.findParentByTagName(start, [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption','table'], true);\n                        if (!h) {\n                            me.document.execCommand('formatBlock', false, '<p>');\n                            doSave = 1;\n                        }\n                    } else {\n                        //chrome remove div\n                        if (start.nodeType == 1) {\n                            var tmp = me.document.createTextNode(''),div;\n                            range.insertNode(tmp);\n                            div = domUtils.findParentByTagName(tmp, 'div', true);\n                            if (div) {\n                                var p = me.document.createElement('p');\n                                while (div.firstChild) {\n                                    p.appendChild(div.firstChild);\n                                }\n                                div.parentNode.insertBefore(p, div);\n                                domUtils.remove(div);\n                                range.setStartBefore(tmp).setCursor();\n                                doSave = 1;\n                            }\n                            domUtils.remove(tmp);\n\n                        }\n                    }\n\n                    if (me.undoManger && doSave) {\n                        me.undoManger.save();\n                    }\n                }\n                //没有站位符，会出现多行的问题\n                browser.opera &&  range.select();\n            }else{\n                me.fireEvent('saveScene',true,true)\n            }\n        }\n    });\n\n    me.addListener('keydown', function(type, evt) {\n        var keyCode = evt.keyCode || evt.which;\n        if (keyCode == 13) {//回车\n            if(me.fireEvent('beforeenterkeydown')){\n                domUtils.preventDefault(evt);\n                return;\n            }\n            me.fireEvent('saveScene',true,true);\n            hTag = '';\n\n\n            var range = me.selection.getRange();\n\n            if (!range.collapsed) {\n                //跨td不能删\n                var start = range.startContainer,\n                    end = range.endContainer,\n                    startTd = domUtils.findParentByTagName(start, 'td', true),\n                    endTd = domUtils.findParentByTagName(end, 'td', true);\n                if (startTd && endTd && startTd !== endTd || !startTd && endTd || startTd && !endTd) {\n                    evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false);\n                    return;\n                }\n            }\n            if (tag == 'p') {\n\n\n                if (!browser.ie) {\n\n                    start = domUtils.findParentByTagName(range.startContainer, ['ol','ul','p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption'], true);\n\n                    //opera下执行formatblock会在table的场景下有问题，回车在opera原生支持很好，所以暂时在opera去掉调用这个原生的command\n                    //trace:2431\n                    if (!start && !browser.opera) {\n\n                        me.document.execCommand('formatBlock', false, '<p>');\n\n                        if (browser.gecko) {\n                            range = me.selection.getRange();\n                            start = domUtils.findParentByTagName(range.startContainer, 'p', true);\n                            start && domUtils.removeDirtyAttr(start);\n                        }\n\n\n                    } else {\n                        hTag = start.tagName;\n                        start.tagName.toLowerCase() == 'p' && browser.gecko && domUtils.removeDirtyAttr(start);\n                    }\n\n                }\n\n            }\n\n        }\n    });\n\n    browser.ie && me.addListener('setDisabled',function(){\n        $(me.body).find('p').each(function(i,p){\n            if(domUtils.isEmptyBlock(p)){\n                p.innerHTML = '&nbsp;'\n            }\n        })\n    })\n};\n\n///import core\n///commands 预览\n///commandsName  Preview\n///commandsTitle  预览\n/**\n * 预览\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     preview预览编辑器内容\n */\nUM.commands['preview'] = {\n    execCommand : function(){\n        var w = window.open('', '_blank', ''),\n            d = w.document,\n            c = this.getContent(null,null,true),\n            path = this.getOpt('UMEDITOR_HOME_URL'),\n            formula = c.indexOf('mathquill-embedded-latex')!=-1 ?\n                '<link rel=\"stylesheet\" href=\"' + path + 'third-party/mathquill/mathquill.css\"/>' +\n                '<script src=\"' + path + 'third-party/jquery.min.js\"></script>' +\n                '<script src=\"' + path + 'third-party/mathquill/mathquill.min.js\"></script>':'';\n        d.open();\n        d.write('<html><head>' + formula + '</head><body><div>'+c+'</div></body></html>');\n        d.close();\n    },\n    notNeedUndo : 1\n};\n\n///import core\n///commands 加粗,斜体,上标,下标\n///commandsName  Bold,Italic,Subscript,Superscript\n///commandsTitle  加粗,加斜,下标,上标\n/**\n * b u i等基础功能实现\n * @function\n * @name UM.execCommands\n * @param    {String}    cmdName    bold加粗。italic斜体。subscript上标。superscript下标。\n*/\nUM.plugins['basestyle'] = function(){\n    var basestyles = ['bold','underline','superscript','subscript','italic','strikethrough'],\n        me = this;\n    //添加快捷键\n    me.addshortcutkey({\n        \"Bold\" : \"ctrl+66\",//^B\n        \"Italic\" : \"ctrl+73\", //^I\n        \"Underline\" : \"ctrl+shift+85\",//^U\n        \"strikeThrough\" : 'ctrl+shift+83' //^s\n    });\n    //过滤最后的产出数据\n    me.addOutputRule(function(root){\n        $.each(root.getNodesByTagName('b i u strike s'),function(i,node){\n            switch (node.tagName){\n                case 'b':\n                    node.tagName = 'strong';\n                    break;\n                case 'i':\n                    node.tagName = 'em';\n                    break;\n                case 'u':\n                    node.tagName = 'span';\n                    node.setStyle('text-decoration','underline');\n                    break;\n                case 's':\n                case 'strike':\n                    node.tagName = 'span';\n                    node.setStyle('text-decoration','line-through')\n            }\n        });\n    });\n    $.each(basestyles,function(i,cmd){\n        me.commands[cmd] = {\n            execCommand : function( cmdName ) {\n                var rng = this.selection.getRange();\n                if(rng.collapsed && this.queryCommandState(cmdName) != 1){\n                    var node = this.document.createElement({\n                        'bold':'strong',\n                        'underline':'u',\n                        'superscript':'sup',\n                        'subscript':'sub',\n                        'italic':'em',\n                        'strikethrough':'strike'\n                    }[cmdName]);\n                    rng.insertNode(node).setStart(node,0).setCursor(false);\n                    return true;\n                }else{\n                    return this.document.execCommand(cmdName)\n                }\n\n            },\n            queryCommandState : function(cmdName) {\n                if(browser.gecko){\n                    return this.document.queryCommandState(cmdName)\n                }\n                var path = this.selection.getStartElementPath(),result = false;\n                $.each(path,function(i,n){\n                    switch (cmdName){\n                        case 'bold':\n                            if(n.nodeName == 'STRONG' || n.nodeName == 'B'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'underline':\n                            if(n.nodeName == 'U' || n.nodeName == 'SPAN' && $(n).css('text-decoration') == 'underline'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'superscript':\n                            if(n.nodeName == 'SUP'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'subscript':\n                            if(n.nodeName == 'SUB'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'italic':\n                            if(n.nodeName == 'EM' || n.nodeName == 'I'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'strikethrough':\n                            if(n.nodeName == 'S' || n.nodeName == 'STRIKE' || n.nodeName == 'SPAN' && $(n).css('text-decoration') == 'line-through'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                    }\n                })\n                return result\n            }\n        };\n    })\n};\n\n\n///import core\n///import plugins/inserthtml.js\n///commands 视频\n///commandsName InsertVideo\n///commandsTitle  插入视频\n///commandsDialog  dialogs\\video\nUM.plugins['video'] = function (){\n    var me =this,\n        div;\n\n    /**\n     * 创建插入视频字符窜\n     * @param url 视频地址\n     * @param width 视频宽度\n     * @param height 视频高度\n     * @param align 视频对齐\n     * @param toEmbed 是否以flash代替显示\n     * @param addParagraph  是否需要添加P 标签\n     */\n    function creatInsertStr(url,width,height,id,align,toEmbed){\n        return  !toEmbed ?\n\n                '<img ' + (id ? 'id=\"' + id+'\"' : '') + ' width=\"'+ width +'\" height=\"' + height + '\" _url=\"'+url+'\" class=\"edui-faked-video\"'  +\n                ' src=\"' + me.options.UMEDITOR_HOME_URL+'themes/default/images/spacer.gif\" style=\"background:url('+me.options.UMEDITOR_HOME_URL+'themes/default/images/videologo.gif) no-repeat center center; border:1px solid gray;'+(align ? 'float:' + align + ';': '')+'\" />'\n\n                :\n                '<embed type=\"application/x-shockwave-flash\" class=\"edui-faked-video\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"' +\n                ' src=\"' + url + '\" width=\"' + width  + '\" height=\"' + height  + '\"'  + (align ? ' style=\"float:' + align + '\"': '') +\n                ' wmode=\"transparent\" play=\"true\" loop=\"false\" menu=\"false\" allowscriptaccess=\"never\" allowfullscreen=\"true\" >';\n    }\n\n    function switchImgAndEmbed(root,img2embed){\n        utils.each(root.getNodesByTagName(img2embed ? 'img' : 'embed'),function(node){\n            if(node.getAttr('class') == 'edui-faked-video'){\n\n                var html = creatInsertStr( img2embed ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',img2embed);\n                node.parentNode.replaceChild(UM.uNode.createElement(html),node)\n            }\n        })\n    }\n\n    me.addOutputRule(function(root){\n        switchImgAndEmbed(root,true)\n    });\n    me.addInputRule(function(root){\n        switchImgAndEmbed(root)\n    });\n\n    me.commands[\"insertvideo\"] = {\n        execCommand: function (cmd, videoObjs){\n            videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs];\n            var html = [],id = 'tmpVedio';\n            for(var i=0,vi,len = videoObjs.length;i<len;i++){\n                 vi = videoObjs[i];\n                 html.push(creatInsertStr( vi.url, vi.width || 420,  vi.height || 280, id + i,vi.align,false));\n            }\n            me.execCommand(\"inserthtml\",html.join(\"\"),true);\n\n        },\n        queryCommandState : function(){\n            var img = me.selection.getRange().getClosedNode(),\n                flag = img && (img.className == \"edui-faked-video\");\n            return flag ? 1 : 0;\n        }\n    };\n};\n///import core\n///commands 全选\n///commandsName  SelectAll\n///commandsTitle  全选\n/**\n * 选中所有\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName    selectall选中编辑器里的所有内容\n * @author zhanyi\n*/\nUM.plugins['selectall'] = function(){\n    var me = this;\n    me.commands['selectall'] = {\n        execCommand : function(){\n            //去掉了原生的selectAll,因为会出现报错和当内容为空时，不能出现闭合状态的光标\n            var me = this,body = me.body,\n                range = me.selection.getRange();\n            range.selectNodeContents(body);\n            if(domUtils.isEmptyBlock(body)){\n                //opera不能自动合并到元素的里边，要手动处理一下\n                if(browser.opera && body.firstChild && body.firstChild.nodeType == 1){\n                    range.setStartAtFirst(body.firstChild);\n                }\n                range.collapse(true);\n            }\n            range.select(true);\n        },\n        notNeedUndo : 1\n    };\n\n\n    //快捷键\n    me.addshortcutkey({\n         \"selectAll\" : \"ctrl+65\"\n    });\n};\n\n//UM.plugins['removeformat'] = function () {\n//    var me = this;\n//    me.commands['removeformat'] = {\n//        execCommand: function () {\n//            me.document.execCommand('removeformat');\n//\n//            /* 处理ie8和firefox选区有链接时,清除格式的bug */\n//            if (browser.gecko || browser.ie8 || browser.webkit) {\n//                var nativeRange = this.selection.getNative().getRangeAt(0),\n//                    common = nativeRange.commonAncestorContainer,\n//                    rng = me.selection.getRange(),\n//                    bk = rng.createBookmark();\n//\n//                function isEleInBookmark(node, bk){\n//                    if ( (domUtils.getPosition(node, bk.start) & domUtils.POSITION_FOLLOWING) &&\n//                        (domUtils.getPosition(bk.end, node) & domUtils.POSITION_FOLLOWING) ) {\n//                        return true;\n//                    } else if ( (domUtils.getPosition(node, bk.start) & domUtils.POSITION_CONTAINS) ||\n//                        (domUtils.getPosition(node, bk.end) & domUtils.POSITION_CONTAINS) ) {\n//                        return true;\n//                    }\n//                    return false;\n//                }\n//\n//                $(common).find('a').each(function (k, a) {\n//                    if ( isEleInBookmark(a, bk) ) {\n//                        a.removeAttribute('style');\n//                    }\n//                });\n//\n//            }\n//        }\n//    };\n//\n//};\n//\n\n\nUM.plugins['removeformat'] = function(){\n    var me = this;\n    me.setOpt({\n        'removeFormatTags': 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var',\n        'removeFormatAttributes':'class,style,lang,width,height,align,hspace,valign'\n    });\n    me.commands['removeformat'] = {\n        execCommand : function( cmdName, tags, style, attrs,notIncludeA ) {\n\n            var tagReg = new RegExp( '^(?:' + (tags || this.options.removeFormatTags).replace( /,/g, '|' ) + ')$', 'i' ) ,\n                removeFormatAttributes = style ? [] : (attrs || this.options.removeFormatAttributes).split( ',' ),\n                range = new dom.Range( this.document ),\n                bookmark,node,parent,\n                filter = function( node ) {\n                    return node.nodeType == 1;\n                };\n\n            function isRedundantSpan (node) {\n                if (node.nodeType == 3 || node.tagName.toLowerCase() != 'span'){\n                    return 0;\n                }\n                if (browser.ie) {\n                    //ie 下判断实效，所以只能简单用style来判断\n                    //return node.style.cssText == '' ? 1 : 0;\n                    var attrs = node.attributes;\n                    if ( attrs.length ) {\n                        for ( var i = 0,l = attrs.length; i<l; i++ ) {\n                            if ( attrs[i].specified ) {\n                                return 0;\n                            }\n                        }\n                        return 1;\n                    }\n                }\n                return !node.attributes.length;\n            }\n            function doRemove( range ) {\n\n                var bookmark1 = range.createBookmark();\n                if ( range.collapsed ) {\n                    range.enlarge( true );\n                }\n\n                //不能把a标签切了\n                if(!notIncludeA){\n                    var aNode = domUtils.findParentByTagName(range.startContainer,'a',true);\n                    if(aNode){\n                        range.setStartBefore(aNode);\n                    }\n\n                    aNode = domUtils.findParentByTagName(range.endContainer,'a',true);\n                    if(aNode){\n                        range.setEndAfter(aNode);\n                    }\n\n                }\n\n\n                bookmark = range.createBookmark();\n\n                node = bookmark.start;\n\n                //切开始\n                while ( (parent = node.parentNode) && !domUtils.isBlockElm( parent ) ) {\n                    domUtils.breakParent( node, parent );\n                    domUtils.clearEmptySibling( node );\n                }\n                if ( bookmark.end ) {\n                    //切结束\n                    node = bookmark.end;\n                    while ( (parent = node.parentNode) && !domUtils.isBlockElm( parent ) ) {\n                        domUtils.breakParent( node, parent );\n                        domUtils.clearEmptySibling( node );\n                    }\n\n                    //开始去除样式\n                    var current = domUtils.getNextDomNode( bookmark.start, false, filter ),\n                        next;\n                    while ( current ) {\n                        if ( current == bookmark.end ) {\n                            break;\n                        }\n\n                        next = domUtils.getNextDomNode( current, true, filter );\n\n                        if ( !dtd.$empty[current.tagName.toLowerCase()] && !domUtils.isBookmarkNode( current ) ) {\n                            if ( tagReg.test( current.tagName ) ) {\n                                if ( style ) {\n                                    domUtils.removeStyle( current, style );\n                                    if ( isRedundantSpan( current ) && style != 'text-decoration'){\n                                        domUtils.remove( current, true );\n                                    }\n                                } else {\n                                    domUtils.remove( current, true );\n                                }\n                            } else {\n                                //trace:939  不能把list上的样式去掉\n                                if(!dtd.$tableContent[current.tagName] && !dtd.$list[current.tagName]){\n                                    domUtils.removeAttributes( current, removeFormatAttributes );\n                                    if ( isRedundantSpan( current ) ){\n                                        domUtils.remove( current, true );\n                                    }\n                                }\n\n                            }\n                        }\n                        current = next;\n                    }\n                }\n                //trace:1035\n                //trace:1096 不能把td上的样式去掉，比如边框\n                var pN = bookmark.start.parentNode;\n                if(domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName] && !dtd.$list[pN.tagName]){\n                    domUtils.removeAttributes(  pN,removeFormatAttributes );\n                }\n                pN = bookmark.end.parentNode;\n                if(bookmark.end && domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName]&& !dtd.$list[pN.tagName]){\n                    domUtils.removeAttributes(  pN,removeFormatAttributes );\n                }\n                range.moveToBookmark( bookmark ).moveToBookmark(bookmark1);\n                //清除冗余的代码 <b><bookmark></b>\n                var node = range.startContainer,\n                    tmp,\n                    collapsed = range.collapsed;\n                while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){\n                    tmp = node.parentNode;\n                    range.setStartBefore(node);\n                    //trace:937\n                    //更新结束边界\n                    if(range.startContainer === range.endContainer){\n                        range.endOffset--;\n                    }\n                    domUtils.remove(node);\n                    node = tmp;\n                }\n\n                if(!collapsed){\n                    node = range.endContainer;\n                    while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){\n                        tmp = node.parentNode;\n                        range.setEndBefore(node);\n                        domUtils.remove(node);\n\n                        node = tmp;\n                    }\n\n\n                }\n            }\n\n\n\n            range = this.selection.getRange();\n            if(!range.collapsed) {\n                doRemove( range );\n                range.select();\n            }\n\n        }\n\n    };\n\n};\n/*\n *   处理特殊键的兼容性问题\n */\nUM.plugins['keystrokes'] = function() {\n    var me = this;\n    var collapsed = true;\n    me.addListener('keydown', function(type, evt) {\n        var keyCode = evt.keyCode || evt.which,\n            rng = me.selection.getRange();\n\n        //处理全选的情况\n        if(!rng.collapsed && !(evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) && (keyCode >= 65 && keyCode <=90\n            || keyCode >= 48 && keyCode <= 57 ||\n            keyCode >= 96 && keyCode <= 111 || {\n            13:1,\n            8:1,\n            46:1\n        }[keyCode])\n            ){\n\n            var tmpNode = rng.startContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                rng.setStartBefore(tmpNode)\n            }\n            tmpNode = rng.endContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                rng.setEndAfter(tmpNode)\n            }\n            rng.txtToElmBoundary();\n            //结束边界可能放到了br的前边，要把br包含进来\n            // x[xxx]<br/>\n            if(rng.endContainer && rng.endContainer.nodeType == 1){\n                tmpNode = rng.endContainer.childNodes[rng.endOffset];\n                if(tmpNode && domUtils.isBr(tmpNode)){\n                    rng.setEndAfter(tmpNode);\n                }\n            }\n            if(rng.startOffset == 0){\n                tmpNode = rng.startContainer;\n                if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){\n                    tmpNode = rng.endContainer;\n                    if(rng.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){\n                        me.fireEvent('saveScene');\n                        me.body.innerHTML = '<p>'+(browser.ie ? '' : '<br/>')+'</p>';\n                        rng.setStart(me.body.firstChild,0).setCursor(false,true);\n                        me._selectionChange();\n                        return;\n                    }\n                }\n            }\n        }\n\n        //处理backspace\n        if (keyCode == 8) {\n            rng = me.selection.getRange();\n            collapsed = rng.collapsed;\n            if(me.fireEvent('delkeydown',evt)){\n                return;\n            }\n            var start,end;\n            //避免按两次删除才能生效的问题\n            if(rng.collapsed && rng.inFillChar()){\n                start = rng.startContainer;\n\n                if(domUtils.isFillChar(start)){\n                    rng.setStartBefore(start).shrinkBoundary(true).collapse(true);\n                    domUtils.remove(start)\n                }else{\n                    start.nodeValue = start.nodeValue.replace(new RegExp('^' + domUtils.fillChar ),'');\n                    rng.startOffset--;\n                    rng.collapse(true).select(true)\n                }\n            }\n            //解决选中control元素不能删除的问题\n            if (start = rng.getClosedNode()) {\n                me.fireEvent('saveScene');\n                rng.setStartBefore(start);\n                domUtils.remove(start);\n                rng.setCursor();\n                me.fireEvent('saveScene');\n                domUtils.preventDefault(evt);\n                return;\n            }\n            //阻止在table上的删除\n            if (!browser.ie) {\n                start = domUtils.findParentByTagName(rng.startContainer, 'table', true);\n                end = domUtils.findParentByTagName(rng.endContainer, 'table', true);\n                if (start && !end || !start && end || start !== end) {\n                    evt.preventDefault();\n                    return;\n                }\n            }\n            start = rng.startContainer;\n            if(rng.collapsed && start.nodeType == 1){\n                var currentNode = start.childNodes[rng.startOffset-1];\n                if(currentNode && currentNode.nodeType == 1 && currentNode.tagName == 'BR'){\n                    me.fireEvent('saveScene');\n                    rng.setStartBefore(currentNode).collapse(true);\n                    domUtils.remove(currentNode);\n                    rng.select();\n                    me.fireEvent('saveScene');\n                }\n            }\n\n            //trace:3613\n            if(browser.chrome){\n                if(rng.collapsed){\n\n                    while(rng.startOffset == 0 && !domUtils.isEmptyBlock(rng.startContainer)){\n                        rng.setStartBefore(rng.startContainer)\n                    }\n                    var pre = rng.startContainer.childNodes[rng.startOffset-1];\n                    if(pre && pre.nodeName == 'BR'){\n                        rng.setStartBefore(pre);\n                        me.fireEvent('saveScene');\n                        $(pre).remove();\n                        rng.setCursor();\n                        me.fireEvent('saveScene');\n                    }\n\n                }\n            }\n        }\n        //trace:1634\n        //ff的del键在容器空的时候，也会删除\n        if(browser.gecko && keyCode == 46){\n            var range = me.selection.getRange();\n            if(range.collapsed){\n                start = range.startContainer;\n                if(domUtils.isEmptyBlock(start)){\n                    var parent = start.parentNode;\n                    while(domUtils.getChildCount(parent) == 1 && !domUtils.isBody(parent)){\n                        start = parent;\n                        parent = parent.parentNode;\n                    }\n                    if(start === parent.lastChild)\n                        evt.preventDefault();\n                    return;\n                }\n            }\n        }\n    });\n    me.addListener('keyup', function(type, evt) {\n        var keyCode = evt.keyCode || evt.which,\n            rng,me = this;\n        if(keyCode == 8){\n            if(me.fireEvent('delkeyup')){\n                return;\n            }\n            rng = me.selection.getRange();\n            if(rng.collapsed){\n                var tmpNode,\n                    autoClearTagName = ['h1','h2','h3','h4','h5','h6'];\n                if(tmpNode = domUtils.findParentByTagName(rng.startContainer,autoClearTagName,true)){\n                    if(domUtils.isEmptyBlock(tmpNode)){\n                        var pre = tmpNode.previousSibling;\n                        if(pre && pre.nodeName != 'TABLE'){\n                            domUtils.remove(tmpNode);\n                            rng.setStartAtLast(pre).setCursor(false,true);\n                            return;\n                        }else{\n                            var next = tmpNode.nextSibling;\n                            if(next && next.nodeName != 'TABLE'){\n                                domUtils.remove(tmpNode);\n                                rng.setStartAtFirst(next).setCursor(false,true);\n                                return;\n                            }\n                        }\n                    }\n                }\n                //处理当删除到body时，要重新给p标签展位\n                if(domUtils.isBody(rng.startContainer)){\n                    var tmpNode = domUtils.createElement(me.document,'p',{\n                        'innerHTML' : browser.ie ? domUtils.fillChar : '<br/>'\n                    });\n                    rng.insertNode(tmpNode).setStart(tmpNode,0).setCursor(false,true);\n                }\n            }\n\n\n            //chrome下如果删除了inline标签，浏览器会有记忆，在输入文字还是会套上刚才删除的标签，所以这里再选一次就不会了\n            if( !collapsed && (rng.startContainer.nodeType == 3 || rng.startContainer.nodeType == 1 && domUtils.isEmptyBlock(rng.startContainer))){\n                if(browser.ie){\n                    var span = rng.document.createElement('span');\n                    rng.insertNode(span).setStartBefore(span).collapse(true);\n                    rng.select();\n                    domUtils.remove(span)\n                }else{\n                    rng.select()\n                }\n\n            }\n        }\n\n    })\n};\n/**\n * 自动保存草稿\n */\nUM.plugins['autosave'] = function() {\n\n\n    var me = this,\n        //无限循环保护\n        lastSaveTime = new Date(),\n        //最小保存间隔时间\n        MIN_TIME = 20,\n        //auto save key\n        saveKey = null;\n\n\n    //默认间隔时间\n    me.setOpt('saveInterval', 500);\n\n    //存储媒介封装\n    var LocalStorage = UM.LocalStorage = ( function () {\n\n        var storage = window.localStorage || getUserData() || null,\n            LOCAL_FILE = \"localStorage\";\n\n        return {\n\n            saveLocalData: function ( key, data ) {\n\n                if ( storage && data) {\n                    storage.setItem( key, data  );\n                    return true;\n                }\n\n                return false;\n\n            },\n\n            getLocalData: function ( key ) {\n\n                if ( storage ) {\n                    return storage.getItem( key );\n                }\n\n                return null;\n\n            },\n\n            removeItem: function ( key ) {\n\n                storage && storage.removeItem( key );\n\n            }\n\n        };\n\n        function getUserData () {\n\n            var container = document.createElement( \"div\" );\n            container.style.display = \"none\";\n\n            if( !container.addBehavior ) {\n                return null;\n            }\n\n            container.addBehavior(\"#default#userdata\");\n\n            return {\n\n                getItem: function ( key ) {\n\n                    var result = null;\n\n                    try {\n                        document.body.appendChild( container );\n                        container.load( LOCAL_FILE );\n                        result = container.getAttribute( key );\n                        document.body.removeChild( container );\n                    } catch ( e ) {\n                    }\n\n                    return result;\n\n                },\n\n                setItem: function ( key, value ) {\n\n                    document.body.appendChild( container );\n                    container.setAttribute( key, value );\n                    container.save( LOCAL_FILE );\n                    document.body.removeChild( container );\n\n                },\n//               暂时没有用到\n//                clear: function () {\n//\n//                    var expiresTime = new Date();\n//                    expiresTime.setFullYear( expiresTime.getFullYear() - 1 );\n//                    document.body.appendChild( container );\n//                    container.expires = expiresTime.toUTCString();\n//                    container.save( LOCAL_FILE );\n//                    document.body.removeChild( container );\n//\n//                },\n\n                removeItem: function ( key ) {\n\n                    document.body.appendChild( container );\n                    container.removeAttribute( key );\n                    container.save( LOCAL_FILE );\n                    document.body.removeChild( container );\n\n                }\n\n            };\n\n        }\n\n    } )();\n\n    function save ( editor ) {\n\n        var saveData = null;\n\n        if ( new Date() - lastSaveTime < MIN_TIME ) {\n            return;\n        }\n\n        if ( !editor.hasContents() ) {\n            //这里不能调用命令来删除， 会造成事件死循环\n            saveKey && LocalStorage.removeItem( saveKey );\n            return;\n        }\n\n        lastSaveTime = new Date();\n\n        editor._saveFlag = null;\n\n        saveData = me.body.innerHTML;\n\n        if ( editor.fireEvent( \"beforeautosave\", {\n            content: saveData\n        } ) === false ) {\n            return;\n        }\n\n        LocalStorage.saveLocalData( saveKey, saveData );\n\n        editor.fireEvent( \"afterautosave\", {\n            content: saveData\n        } );\n\n    }\n\n    me.addListener('ready', function(){\n        var _suffix = \"-drafts-data\",\n            key = null;\n\n        if ( me.key ) {\n            key = me.key + _suffix;\n        } else {\n            key = ( me.container.parentNode.id || 'ue-common' ) + _suffix;\n        }\n\n        //页面地址+编辑器ID 保持唯一\n        saveKey = ( location.protocol + location.host + location.pathname ).replace( /[.:\\/]/g, '_' ) + key;\n    });\n\n    me.addListener('contentchange', function(){\n\n        if ( !saveKey ) {\n            return;\n        }\n\n        if ( me._saveFlag ) {\n            window.clearTimeout( me._saveFlag );\n        }\n\n        if ( me.options.saveInterval > 0 ) {\n\n            me._saveFlag = window.setTimeout( function () {\n\n                save( me );\n\n            }, me.options.saveInterval );\n\n        } else {\n\n            save(me);\n\n        }\n\n    })\n\n\n    me.commands['clearlocaldata'] = {\n        execCommand:function (cmd, name) {\n            if ( saveKey && LocalStorage.getLocalData( saveKey ) ) {\n                LocalStorage.removeItem( saveKey )\n            }\n        },\n        notNeedUndo: true,\n        ignoreContentChange:true\n    };\n\n    me.commands['getlocaldata'] = {\n        execCommand:function (cmd, name) {\n            return saveKey ? LocalStorage.getLocalData( saveKey ) || '' : '';\n        },\n        notNeedUndo: true,\n        ignoreContentChange:true\n    };\n\n    me.commands['drafts'] = {\n        execCommand:function (cmd, name) {\n            if ( saveKey ) {\n                me.body.innerHTML = LocalStorage.getLocalData( saveKey ) || '<p>'+(browser.ie ? '&nbsp;' : '<br/>')+'</p>';\n                me.focus(true);\n            }\n        },\n        queryCommandState: function () {\n            return saveKey ? ( LocalStorage.getLocalData( saveKey ) === null ? -1 : 0 ) : -1;\n        },\n        notNeedUndo: true,\n        ignoreContentChange:true\n    }\n\n};\n\n/**\n * @description\n * 1.拖放文件到编辑区域，自动上传并插入到选区\n * 2.插入粘贴板的图片，自动上传并插入到选区\n * @author Jinqn\n * @date 2013-10-14\n */\nUM.plugins['autoupload'] = function () {\n\n    var me = this;\n\n    me.setOpt('pasteImageEnabled', true);\n    me.setOpt('dropFileEnabled', true);\n    var sendAndInsertImage = function (file, editor) {\n        //模拟数据\n        var fd = new FormData();\n        fd.append(editor.options.imageFieldName || 'upfile', file, file.name || ('blob.' + file.type.substr('image/'.length)));\n        fd.append('type', 'ajax');\n        var xhr = new XMLHttpRequest();\n        xhr.open(\"post\", me.options.imageUrl, true);\n        xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n        xhr.addEventListener('load', function (e) {\n            try {\n                var json = eval('('+e.target.response+')'),\n                    link = json.url,\n                    picLink = me.options.imagePath + link;\n                editor.execCommand('insertimage', {\n                    src: picLink,\n                    _src: picLink\n                });\n            } catch (er) {\n            }\n        });\n        xhr.send(fd);\n    };\n\n    function getPasteImage(e) {\n        return e.clipboardData && e.clipboardData.items && e.clipboardData.items.length == 1 && /^image\\//.test(e.clipboardData.items[0].type) ? e.clipboardData.items : null;\n    }\n\n    function getDropImage(e) {\n        return  e.dataTransfer && e.dataTransfer.files ? e.dataTransfer.files : null;\n    }\n\n    me.addListener('ready', function () {\n        if (window.FormData && window.FileReader) {\n            var autoUploadHandler = function (e) {\n                var hasImg = false,\n                    items;\n                //获取粘贴板文件列表或者拖放文件列表\n                items = e.type == 'paste' ? getPasteImage(e.originalEvent) : getDropImage(e.originalEvent);\n                if (items) {\n                    var len = items.length,\n                        file;\n                    while (len--) {\n                        file = items[len];\n                        if (file.getAsFile) file = file.getAsFile();\n                        if (file && file.size > 0 && /image\\/\\w+/i.test(file.type)) {\n                            sendAndInsertImage(file, me);\n                            hasImg = true;\n                        }\n                    }\n                    if (hasImg) return false;\n                }\n\n            };\n            me.getOpt('pasteImageEnabled') && me.$body.on('paste', autoUploadHandler);\n            me.getOpt('dropFileEnabled') && me.$body.on('drop', autoUploadHandler);\n\n            //取消拖放图片时出现的文字光标位置提示\n            me.$body.on('dragover', function (e) {\n                if (e.originalEvent.dataTransfer.types[0] == 'Files') {\n                    return false;\n                }\n            });\n        }\n    });\n\n};\n/**\n * 公式插件\n */\nUM.plugins['formula'] = function () {\n    var me = this;\n\n    function getActiveIframe() {\n        return me.$body.find('iframe.edui-formula-active')[0] || null;\n    }\n\n    function blurActiveIframe(){\n        var iframe = getActiveIframe();\n        iframe && iframe.contentWindow.formula.blur();\n    }\n\n    me.addInputRule(function (root) {\n        $.each(root.getNodesByTagName('span'), function (i, node) {\n            if (node.hasClass('mathquill-embedded-latex')) {\n                var firstChild, latex = '';\n                while(firstChild = node.firstChild()){\n                    latex += firstChild.data;\n                    node.removeChild(firstChild);\n                }\n                node.tagName = 'iframe';\n                node.setAttr({\n                    'frameborder': '0',\n                    'src': me.getOpt('UMEDITOR_HOME_URL') + 'dialogs/formula/formula.html',\n                    'data-latex': utils.unhtml(latex)\n                });\n            }\n        });\n    });\n    me.addOutputRule(function (root) {\n        $.each(root.getNodesByTagName('iframe'), function (i, node) {\n            if (node.hasClass('mathquill-embedded-latex')) {\n                node.tagName = 'span';\n                node.appendChild(UM.uNode.createText(node.getAttr('data-latex')));\n                node.setAttr({\n                    'frameborder': '',\n                    'src': '',\n                    'data-latex': ''\n                });\n            }\n        });\n    });\n    me.addListener('click', function(){\n        blurActiveIframe();\n    });\n    me.addListener('afterexeccommand', function(type, cmd){\n        if(cmd != 'formula') {\n            blurActiveIframe();\n        }\n    });\n\n    me.commands['formula'] = {\n        execCommand: function (cmd, latex) {\n            var iframe = getActiveIframe();\n            if (iframe) {\n                iframe.contentWindow.formula.insertLatex(latex);\n            } else {\n                me.execCommand('inserthtml', '<span class=\"mathquill-embedded-latex\">' + latex + '</span>');\n                browser.ie && browser.ie9below && setTimeout(function(){\n                    var rng = me.selection.getRange(),\n                        startContainer = rng.startContainer;\n                    if(startContainer.nodeType == 1 && !startContainer.childNodes[rng.startOffset]){\n                        rng.insertNode(me.document.createTextNode(' '));\n                        rng.setCursor()\n                    }\n                },100)\n            }\n        },\n        queryCommandState: function (cmd) {\n            return 0;\n        },\n        queryCommandValue: function (cmd) {\n            var iframe = getActiveIframe();\n            return iframe && iframe.contentWindow.formula.getLatex();\n        }\n    }\n\n};\n\n(function ($) {\n    //对jquery的扩展\n    $.parseTmpl = function parse(str, data) {\n        var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' + 'with(obj||{}){__p.push(\\'' + str.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\").replace(/<%=([\\s\\S]+?)%>/g,function (match, code) {\n            return \"',\" + code.replace(/\\\\'/g, \"'\") + \",'\";\n        }).replace(/<%([\\s\\S]+?)%>/g,function (match, code) {\n                return \"');\" + code.replace(/\\\\'/g, \"'\").replace(/[\\r\\n\\t]/g, ' ') + \"__p.push('\";\n            }).replace(/\\r/g, '\\\\r').replace(/\\n/g, '\\\\n').replace(/\\t/g, '\\\\t') + \"');}return __p.join('');\";\n        var func = new Function('obj', tmpl);\n        return data ? func(data) : func;\n    };\n    $.extend2 = function (t, s) {\n        var a = arguments,\n            notCover = $.type(a[a.length - 1]) == 'boolean' ? a[a.length - 1] : false,\n            len = $.type(a[a.length - 1]) == 'boolean' ? a.length - 1 : a.length;\n        for (var i = 1; i < len; i++) {\n            var x = a[i];\n            for (var k in x) {\n                if (!notCover || !t.hasOwnProperty(k)) {\n                    t[k] = x[k];\n                }\n            }\n        }\n        return t;\n    };\n\n    $.IE6 = !!window.ActiveXObject && parseFloat(navigator.userAgent.match(/msie (\\d+)/i)[1]) == 6;\n\n    //所有ui的基类\n    var _eventHandler = [];\n    var _widget = function () {\n    };\n    var _prefix = 'edui';\n    _widget.prototype = {\n        on: function (ev, cb) {\n            this.root().on(ev, $.proxy(cb, this));\n            return this;\n        },\n        off: function (ev, cb) {\n            this.root().off(ev, $.proxy(cb, this));\n            return this;\n        },\n        trigger: function (ev, data) {\n            return  this.root().trigger(ev, data) === false ? false : this;\n        },\n        root: function ($el) {\n            return this._$el || (this._$el = $el);\n        },\n        destroy: function () {\n\n        },\n        data: function (key, val) {\n            if (val !== undefined) {\n                this.root().data(_prefix + key, val);\n                return this;\n            } else {\n                return this.root().data(_prefix + key)\n            }\n        },\n        register: function (eventName, $el, fn) {\n            _eventHandler.push({\n                'evtname': eventName,\n                '$els': $.isArray($el) ? $el : [$el],\n                handler: $.proxy(fn, $el)\n            })\n        }\n    };\n\n    //从jq实例上拿到绑定的widget实例\n    $.fn.edui = function (obj) {\n        return obj ? this.data('eduiwidget', obj) : this.data('eduiwidget');\n    };\n\n    function _createClass(ClassObj, properties, supperClass) {\n        ClassObj.prototype = $.extend2(\n            $.extend({}, properties),\n            (UM.ui[supperClass] || _widget).prototype,\n            true\n        );\n        ClassObj.prototype.supper = (UM.ui[supperClass] || _widget).prototype;\n        //父class的defaultOpt 合并\n        if( UM.ui[supperClass] && UM.ui[supperClass].prototype.defaultOpt ) {\n\n            var parentDefaultOptions = UM.ui[supperClass].prototype.defaultOpt,\n                subDefaultOptions = ClassObj.prototype.defaultOpt;\n\n            ClassObj.prototype.defaultOpt = $.extend( {}, parentDefaultOptions, subDefaultOptions || {} );\n\n        }\n        return ClassObj\n    }\n\n    var _guid = 1;\n\n    function mergeToJQ(ClassObj, className) {\n        $[_prefix + className] = ClassObj;\n        $.fn[_prefix + className] = function (opt) {\n            var result, args = Array.prototype.slice.call(arguments, 1);\n\n            this.each(function (i, el) {\n                var $this = $(el);\n                var obj = $this.edui();\n                if (!obj) {\n                    ClassObj(!opt || !$.isPlainObject(opt) ? {} : opt, $this);\n                    $this.edui(obj)\n                }\n                if ($.type(opt) == 'string') {\n                    if (opt == 'this') {\n                        result = obj;\n                    } else {\n                        result = obj[opt].apply(obj, args);\n                        if (result !== obj && result !== undefined) {\n                            return false;\n                        }\n                        result = null;\n                    }\n\n                }\n            });\n\n            return result !== null ? result : this;\n        }\n    }\n\n    UM.ui = {\n        define: function (className, properties, supperClass) {\n            var ClassObj = UM.ui[className] = _createClass(function (options, $el) {\n                    var _obj = function () {\n                    };\n                    $.extend(_obj.prototype, ClassObj.prototype, {\n                            guid: className + _guid++,\n                            widgetName: className\n                        }\n                    );\n                    var obj = new _obj;\n                    if ($.type(options) == 'string') {\n                        obj.init && obj.init({});\n                        obj.root().edui(obj);\n                        obj.root().find('a').click(function (evt) {\n                            evt.preventDefault()\n                        });\n                        return obj.root()[_prefix + className].apply(obj.root(), arguments)\n                    } else {\n                        $el && obj.root($el);\n                        obj.init && obj.init(!options || $.isPlainObject(options) ? $.extend2(options || {}, obj.defaultOpt || {}, true) : options);\n                        try{\n                            obj.root().find('a').click(function (evt) {\n                                evt.preventDefault()\n                            });\n                        }catch(e){\n                        }\n\n                        return obj.root().edui(obj);\n                    }\n\n                },properties, supperClass);\n\n            mergeToJQ(ClassObj, className);\n        }\n    };\n\n    $(function () {\n        $(document).on('click mouseup mousedown dblclick mouseover', function (evt) {\n            $.each(_eventHandler, function (i, obj) {\n                if (obj.evtname == evt.type) {\n                    $.each(obj.$els, function (i, $el) {\n                        if ($el[0] !== evt.target && !$.contains($el[0], evt.target)) {\n                            obj.handler(evt);\n                        }\n                    })\n                }\n            })\n        })\n    })\n})(jQuery);\n//button 类\nUM.ui.define('button', {\n    tpl: '<<%if(!texttype){%>div class=\"edui-btn edui-btn-<%=icon%> <%if(name){%>edui-btn-name-<%=name%><%}%>\" unselectable=\"on\" onmousedown=\"return false\" <%}else{%>a class=\"edui-text-btn\"<%}%><% if(title) {%> data-original-title=\"<%=title%>\" <%};%>> ' +\n        '<% if(icon) {%><div unselectable=\"on\" class=\"edui-icon-<%=icon%> edui-icon\"></div><% }; %><%if(text) {%><span unselectable=\"on\" onmousedown=\"return false\" class=\"edui-button-label\"><%=text%></span><%}%>' +\n        '<%if(caret && text){%><span class=\"edui-button-spacing\"></span><%}%>' +\n        '<% if(caret) {%><span unselectable=\"on\" onmousedown=\"return false\" class=\"edui-caret\"></span><% };%></<%if(!texttype){%>div<%}else{%>a<%}%>>',\n    defaultOpt: {\n        text: '',\n        title: '',\n        icon: '',\n        width: '',\n        caret: false,\n        texttype: false,\n        click: function () {\n        }\n    },\n    init: function (options) {\n        var me = this;\n\n        me.root($($.parseTmpl(me.tpl, options)))\n            .click(function (evt) {\n                me.wrapclick(options.click, evt)\n            });\n\n        me.root().hover(function () {\n            if(!me.root().hasClass(\"edui-disabled\")){\n                me.root().toggleClass('edui-hover')\n            }\n        })\n\n        return me;\n    },\n    wrapclick: function (fn, evt) {\n        if (!this.disabled()) {\n            this.root().trigger('wrapclick');\n            $.proxy(fn, this, evt)()\n        }\n        return this;\n    },\n    label: function (text) {\n        if (text === undefined) {\n            return this.root().find('.edui-button-label').text();\n        } else {\n            this.root().find('.edui-button-label').text(text);\n            return this;\n        }\n    },\n    disabled: function (state) {\n        if (state === undefined) {\n            return this.root().hasClass('edui-disabled')\n        }\n        this.root().toggleClass('edui-disabled', state);\n        if(this.root().hasClass('edui-disabled')){\n            this.root().removeClass('edui-hover')\n        }\n        return this;\n    },\n    active: function (state) {\n        if (state === undefined) {\n            return this.root().hasClass('edui-active')\n        }\n        this.root().toggleClass('edui-active', state)\n\n        return this;\n    },\n    mergeWith: function ($obj) {\n        var me = this;\n        me.data('$mergeObj', $obj);\n        $obj.edui().data('$mergeObj', me.root());\n        if (!$.contains(document.body, $obj[0])) {\n            $obj.appendTo(me.root());\n        }\n        me.on('click',function () {\n            me.wrapclick(function () {\n                $obj.edui().show();\n            })\n        }).register('click', me.root(), function (evt) {\n                $obj.hide()\n            });\n    }\n});\n//toolbar 类\n(function () {\n    UM.ui.define('toolbar', {\n        tpl: '<div class=\"edui-toolbar\"  ><div class=\"edui-btn-toolbar\" unselectable=\"on\" onmousedown=\"return false\"  ></div></div>'\n          ,\n        init: function () {\n            var $root = this.root($(this.tpl));\n            this.data('$btnToolbar', $root.find('.edui-btn-toolbar'))\n        },\n        appendToBtnmenu : function(data){\n            var $cont = this.data('$btnToolbar');\n            data = $.isArray(data) ? data : [data];\n            $.each(data,function(i,$item){\n                $cont.append($item)\n            })\n        }\n    });\n})();\n\n//menu 类\nUM.ui.define('menu',{\n    show : function($obj,dir,fnname,topOffset,leftOffset){\n\n        fnname = fnname || 'position';\n        if(this.trigger('beforeshow') === false){\n            return;\n        }else{\n            this.root().css($.extend({display:'block'},$obj ? {\n                top : $obj[fnname]().top + ( dir == 'right' ? 0 : $obj.outerHeight()) - (topOffset || 0),\n                left : $obj[fnname]().left + (dir == 'right' ?  $obj.outerWidth() : 0) -  (leftOffset || 0)\n            }:{}))\n            this.trigger('aftershow');\n        }\n    },\n    hide : function(all){\n        var $parentmenu;\n        if(this.trigger('beforehide') === false){\n            return;\n        } else {\n\n            if($parentmenu = this.root().data('parentmenu')){\n                if($parentmenu.data('parentmenu')|| all)\n                    $parentmenu.edui().hide();\n            }\n            this.root().css('display','none');\n            this.trigger('afterhide');\n        }\n    },\n    attachTo : function($obj){\n        var me = this;\n        if(!$obj.data('$mergeObj')){\n            $obj.data('$mergeObj',me.root());\n            $obj.on('wrapclick',function(evt){\n                me.show()\n            });\n            me.register('click',$obj,function(evt){\n               me.hide()\n            });\n            me.data('$mergeObj',$obj)\n        }\n    }\n});\n//dropmenu 类\nUM.ui.define('dropmenu', {\n    tmpl: '<ul class=\"edui-dropdown-menu\" aria-labelledby=\"dropdownMenu\" >' +\n        '<%for(var i=0,ci;ci=data[i++];){%>' +\n        '<%if(ci.divider){%><li class=\"edui-divider\"></li><%}else{%>' +\n        '<li <%if(ci.active||ci.disabled){%>class=\"<%= ci.active|| \\'\\' %> <%=ci.disabled||\\'\\' %>\" <%}%> data-value=\"<%= ci.value%>\">' +\n        '<a href=\"#\" tabindex=\"-1\"><em class=\"edui-dropmenu-checkbox\"><i class=\"edui-icon-ok\"></i></em><%= ci.label%></a>' +\n        '</li><%}%>' +\n        '<%}%>' +\n        '</ul>',\n    defaultOpt: {\n        data: [],\n        click: function () {\n\n        }\n    },\n    init: function (options) {\n        var me = this;\n        var eventName = {\n            click: 1,\n            mouseover: 1,\n            mouseout: 1\n        };\n\n        this.root($($.parseTmpl(this.tmpl, options))).on('click', 'li[class!=\"edui-disabled edui-divider edui-dropdown-submenu\"]',function (evt) {\n            $.proxy(options.click, me, evt, $(this).data('value'), $(this))()\n        }).find('li').each(function (i, el) {\n                var $this = $(this);\n                if (!$this.hasClass(\"edui-disabled edui-divider edui-dropdown-submenu\")) {\n                    var data = options.data[i];\n                    $.each(eventName, function (k) {\n                        data[k] && $this[k](function (evt) {\n                            $.proxy(data[k], el)(evt, data, me.root)\n                        })\n                    })\n                }\n            })\n\n    },\n    disabled: function (cb) {\n        $('li[class!=edui-divider]', this.root()).each(function () {\n            var $el = $(this);\n            if (cb === true) {\n                $el.addClass('edui-disabled')\n            } else if ($.isFunction(cb)) {\n                $el.toggleClass('edui-disabled', cb(li))\n            } else {\n                $el.removeClass('edui-disabled')\n            }\n\n        });\n    },\n    val: function (val) {\n        var currentVal;\n        $('li[class!=\"edui-divider edui-disabled edui-dropdown-submenu\"]', this.root()).each(function () {\n            var $el = $(this);\n            if (val === undefined) {\n                if ($el.find('em.edui-dropmenu-checked').length) {\n                    currentVal = $el.data('value');\n                    return false\n                }\n            } else {\n                $el.find('em').toggleClass('edui-dropmenu-checked', $el.data('value') == val)\n            }\n        });\n        if (val === undefined) {\n            return currentVal\n        }\n    },\n    addSubmenu: function (label, menu, index) {\n        index = index || 0;\n\n        var $list = $('li[class!=edui-divider]', this.root());\n        var $node = $('<li class=\"edui-dropdown-submenu\"><a tabindex=\"-1\" href=\"#\">' + label + '</a></li>').append(menu);\n\n        if (index >= 0 && index < $list.length) {\n            $node.insertBefore($list[index]);\n        } else if (index < 0) {\n            $node.insertBefore($list[0]);\n        } else if (index >= $list.length) {\n            $node.appendTo($list);\n        }\n    }\n}, 'menu');\n//splitbutton 类\n///import button\nUM.ui.define('splitbutton',{\n    tpl :'<div class=\"edui-splitbutton <%if (name){%>edui-splitbutton-<%= name %><%}%>\"  unselectable=\"on\" <%if(title){%>data-original-title=\"<%=title%>\"<%}%>><div class=\"edui-btn\"  unselectable=\"on\" ><%if(icon){%><div  unselectable=\"on\" class=\"edui-icon-<%=icon%> edui-icon\"></div><%}%><%if(text){%><%=text%><%}%></div>'+\n            '<div  unselectable=\"on\" class=\"edui-btn edui-dropdown-toggle\" >'+\n                '<div  unselectable=\"on\" class=\"edui-caret\"><\\/div>'+\n            '</div>'+\n        '</div>',\n    defaultOpt:{\n        text:'',\n        title:'',\n        click:function(){}\n    },\n    init : function(options){\n        var me = this;\n        me.root( $($.parseTmpl(me.tpl,options)));\n        me.root().find('.edui-btn:first').click(function(evt){\n            if(!me.disabled()){\n                $.proxy(options.click,me)();\n            }\n        });\n        me.root().find('.edui-dropdown-toggle').click(function(){\n            if(!me.disabled()){\n                me.trigger('arrowclick')\n            }\n        });\n        me.root().hover(function () {\n            if(!me.root().hasClass(\"edui-disabled\")){\n                me.root().toggleClass('edui-hover')\n            }\n        });\n\n        return me;\n    },\n    wrapclick:function(fn,evt){\n        if(!this.disabled()){\n            $.proxy(fn,this,evt)()\n        }\n        return this;\n    },\n    disabled : function(state){\n        if(state === undefined){\n            return this.root().hasClass('edui-disabled')\n        }\n        this.root().toggleClass('edui-disabled',state).find('.edui-btn').toggleClass('edui-disabled',state);\n        return this;\n    },\n    active:function(state){\n        if(state === undefined){\n            return this.root().hasClass('edui-active')\n        }\n        this.root().toggleClass('edui-active',state).find('.edui-btn:first').toggleClass('edui-active',state);\n        return this;\n    },\n    mergeWith:function($obj){\n        var me = this;\n        me.data('$mergeObj',$obj);\n        $obj.edui().data('$mergeObj',me.root());\n        if(!$.contains(document.body,$obj[0])){\n            $obj.appendTo(me.root());\n        }\n        me.root().delegate('.edui-dropdown-toggle','click',function(){\n            me.wrapclick(function(){\n                $obj.edui().show();\n            })\n        });\n        me.register('click',me.root().find('.edui-dropdown-toggle'),function(evt){\n            $obj.hide()\n        });\n    }\n});\n/**\n * Created with JetBrains PhpStorm.\n * User: hn\n * Date: 13-7-10\n * Time: 下午3:07\n * To change this template use File | Settings | File Templates.\n */\nUM.ui.define('colorsplitbutton',{\n\n    tpl : '<div class=\"edui-splitbutton <%if (name){%>edui-splitbutton-<%= name %><%}%>\"  unselectable=\"on\" <%if(title){%>data-original-title=\"<%=title%>\"<%}%>><div class=\"edui-btn\"  unselectable=\"on\" ><%if(icon){%><div  unselectable=\"on\" class=\"edui-icon-<%=icon%> edui-icon\"></div><%}%><div class=\"edui-splitbutton-color-label\" <%if (color) {%>style=\"background: <%=color%>\"<%}%>></div><%if(text){%><%=text%><%}%></div>'+\n            '<div  unselectable=\"on\" class=\"edui-btn edui-dropdown-toggle\" >'+\n            '<div  unselectable=\"on\" class=\"edui-caret\"><\\/div>'+\n            '</div>'+\n            '</div>',\n    defaultOpt: {\n        color: ''\n    },\n    init: function( options ){\n\n        var me = this;\n\n        me.supper.init.call( me, options );\n\n    },\n    colorLabel: function(){\n        return this.root().find('.edui-splitbutton-color-label');\n    }\n\n}, 'splitbutton');\n//popup 类\nUM.ui.define('popup', {\n    tpl: '<div class=\"edui-dropdown-menu edui-popup\"'+\n        '<%if(!<%=stopprop%>){%>onmousedown=\"return false\"<%}%>'+\n        '><div class=\"edui-popup-body\" unselectable=\"on\" onmousedown=\"return false\"><%=subtpl%></div>' +\n        '<div class=\"edui-popup-caret\"></div>' +\n        '</div>',\n    defaultOpt: {\n        stopprop:false,\n        subtpl: '',\n        width: '',\n        height: ''\n    },\n    init: function (options) {\n        this.root($($.parseTmpl(this.tpl, options)));\n        return this;\n    },\n    mergeTpl: function (data) {\n        return $.parseTmpl(this.tpl, {subtpl: data});\n    },\n    show: function ($obj, posObj) {\n        if (!posObj) posObj = {};\n\n        var fnname = posObj.fnname || 'position';\n        if (this.trigger('beforeshow') === false) {\n            return;\n        } else {\n            this.root().css($.extend({display: 'block'}, $obj ? {\n                top: $obj[fnname]().top + ( posObj.dir == 'right' ? 0 : $obj.outerHeight()) - (posObj.offsetTop || 0),\n                left: $obj[fnname]().left + (posObj.dir == 'right' ? $obj.outerWidth() : 0) - (posObj.offsetLeft || 0),\n                position: 'absolute'\n            } : {}));\n\n            this.root().find('.edui-popup-caret').css({\n                top: posObj.caretTop || 0,\n                left: posObj.caretLeft || 0,\n                position: 'absolute'\n            }).addClass(posObj.caretDir || \"up\")\n\n        }\n        this.trigger(\"aftershow\");\n    },\n    hide: function () {\n        this.root().css('display', 'none');\n        this.trigger('afterhide')\n    },\n    attachTo: function ($obj, posObj) {\n        var me = this\n        if (!$obj.data('$mergeObj')) {\n            $obj.data('$mergeObj', me.root());\n            $obj.on('wrapclick', function (evt) {\n                me.show($obj, posObj)\n            });\n            me.register('click', $obj, function (evt) {\n                me.hide()\n            });\n            me.data('$mergeObj', $obj)\n        }\n    },\n    getBodyContainer: function () {\n        return this.root().find(\".edui-popup-body\");\n    }\n});\n//scale 类\nUM.ui.define('scale', {\n    tpl: '<div class=\"edui-scale\" unselectable=\"on\">' +\n        '<span class=\"edui-scale-hand0\"></span>' +\n        '<span class=\"edui-scale-hand1\"></span>' +\n        '<span class=\"edui-scale-hand2\"></span>' +\n        '<span class=\"edui-scale-hand3\"></span>' +\n        '<span class=\"edui-scale-hand4\"></span>' +\n        '<span class=\"edui-scale-hand5\"></span>' +\n        '<span class=\"edui-scale-hand6\"></span>' +\n        '<span class=\"edui-scale-hand7\"></span>' +\n        '</div>',\n    defaultOpt: {\n        $doc: $(document),\n        $wrap: $(document)\n    },\n    init: function (options) {\n        if(options.$doc) this.defaultOpt.$doc = options.$doc;\n        if(options.$wrap) this.defaultOpt.$wrap = options.$wrap;\n        this.root($($.parseTmpl(this.tpl, options)));\n        this.initStyle();\n        this.startPos = this.prePos = {x: 0, y: 0};\n        this.dragId = -1;\n        return this;\n    },\n    initStyle: function () {\n        utils.cssRule('edui-style-scale', '.edui-scale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;}' +\n            '.edui-scale span{position:absolute;left:0;top:0;width:7px;height:7px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}'\n            + '.edui-scale .edui-scale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}'\n            + '.edui-scale .edui-scale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}'\n            + '.edui-scale .edui-scale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}');\n    },\n    _eventHandler: function (e) {\n        var me = this,\n            $doc = me.defaultOpt.$doc;\n        switch (e.type) {\n            case 'mousedown':\n                var hand = e.target || e.srcElement, hand;\n                if (hand.className.indexOf('edui-scale-hand') != -1) {\n                    me.dragId = hand.className.slice(-1);\n                    me.startPos.x = me.prePos.x = e.clientX;\n                    me.startPos.y = me.prePos.y = e.clientY;\n                    $doc.bind('mousemove', $.proxy(me._eventHandler, me));\n                }\n                break;\n            case 'mousemove':\n                if (me.dragId != -1) {\n                    me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y});\n                    me.prePos.x = e.clientX;\n                    me.prePos.y = e.clientY;\n                    me.updateTargetElement();\n                }\n                break;\n            case 'mouseup':\n                if (me.dragId != -1) {\n                    me.dragId = -1;\n                    me.updateTargetElement();\n                    var $target = me.data('$scaleTarget');\n                    if ($target.parent()) me.attachTo(me.data('$scaleTarget'));\n                }\n                $doc.unbind('mousemove', $.proxy(me._eventHandler, me));\n                break;\n            default:\n                break;\n        }\n    },\n    updateTargetElement: function () {\n        var me = this,\n            $root = me.root(),\n            $target = me.data('$scaleTarget');\n        $target.css({width: $root.width(), height: $root.height()});\n        me.attachTo($target);\n    },\n    updateContainerStyle: function (dir, offset) {\n        var me = this,\n            $dom = me.root(),\n            tmp,\n            rect = [\n                //[left, top, width, height]\n                [0, 0, -1, -1],\n                [0, 0, 0, -1],\n                [0, 0, 1, -1],\n                [0, 0, -1, 0],\n                [0, 0, 1, 0],\n                [0, 0, -1, 1],\n                [0, 0, 0, 1],\n                [0, 0, 1, 1]\n            ];\n\n        if (rect[dir][0] != 0) {\n            tmp = parseInt($dom.offset().left) + offset.x;\n            $dom.css('left', me._validScaledProp('left', tmp));\n        }\n        if (rect[dir][1] != 0) {\n            tmp = parseInt($dom.offset().top) + offset.y;\n            $dom.css('top', me._validScaledProp('top', tmp));\n        }\n        if (rect[dir][2] != 0) {\n            tmp = $dom.width() + rect[dir][2] * offset.x;\n            $dom.css('width', me._validScaledProp('width', tmp));\n        }\n        if (rect[dir][3] != 0) {\n            tmp = $dom.height() + rect[dir][3] * offset.y;\n            $dom.css('height', me._validScaledProp('height', tmp));\n        }\n    },\n    _validScaledProp: function (prop, value) {\n        var $ele = this.root(),\n            $wrap = this.defaultOpt.$doc,\n            calc = function(val, a, b){\n                return (val + a) > b ? b - a : value;\n            };\n\n        value = isNaN(value) ? 0 : value;\n        switch (prop) {\n            case 'left':\n                return value < 0 ? 0 : calc(value, $ele.width(), $wrap.width());\n            case 'top':\n                return value < 0 ? 0 : calc(value, $ele.height(),$wrap.height());\n            case 'width':\n                return value <= 0 ? 1 : calc(value, $ele.offset().left, $wrap.width());\n            case 'height':\n                return value <= 0 ? 1 : calc(value, $ele.offset().top, $wrap.height());\n        }\n    },\n    show: function ($obj) {\n        var me = this;\n        if ($obj) me.attachTo($obj);\n        me.root().bind('mousedown', $.proxy(me._eventHandler, me));\n        me.defaultOpt.$doc.bind('mouseup', $.proxy(me._eventHandler, me));\n        me.root().show();\n        me.trigger(\"aftershow\");\n    },\n    hide: function () {\n        var me = this;\n        me.root().unbind('mousedown', $.proxy(me._eventHandler, me));\n        me.defaultOpt.$doc.unbind('mouseup', $.proxy(me._eventHandler, me));\n        me.root().hide();\n        me.trigger('afterhide')\n    },\n    attachTo: function ($obj) {\n        var me = this,\n            imgPos = $obj.offset(),\n            $root = me.root(),\n            $wrap = me.defaultOpt.$wrap,\n            posObj = $wrap.offset();\n\n        me.data('$scaleTarget', $obj);\n        me.root().css({\n            position: 'absolute',\n            width: $obj.width(),\n            height: $obj.height(),\n            left: imgPos.left - posObj.left - parseInt($wrap.css('border-left-width')) - parseInt($root.css('border-left-width')),\n            top: imgPos.top - posObj.top - parseInt($wrap.css('border-top-width')) - parseInt($root.css('border-top-width'))\n        });\n    },\n    getScaleTarget: function () {\n        return this.data('$scaleTarget')[0];\n    }\n});\n//colorpicker 类\nUM.ui.define('colorpicker', {\n    tpl: function (opt) {\n        var COLORS = (\n            'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,' +\n                'f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,' +\n                'd8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,' +\n                'bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,' +\n                'a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,' +\n                '7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,' +\n                'c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,').split(',');\n\n        var html = '<div unselectable=\"on\" onmousedown=\"return false\" class=\"edui-colorpicker<%if (name){%> edui-colorpicker-<%=name%><%}%>\" >' +\n            '<table unselectable=\"on\" onmousedown=\"return false\">' +\n            '<tr><td colspan=\"10\">'+opt.lang_themeColor+'</td> </tr>' +\n            '<tr class=\"edui-colorpicker-firstrow\" >';\n\n        for (var i = 0; i < COLORS.length; i++) {\n            if (i && i % 10 === 0) {\n                html += '</tr>' + (i == 60 ? '<tr><td colspan=\"10\">'+opt.lang_standardColor+'</td></tr>' : '') + '<tr' + (i == 60 ? ' class=\"edui-colorpicker-firstrow\"' : '') + '>';\n            }\n            html += i < 70 ? '<td><a unselectable=\"on\" onmousedown=\"return false\" title=\"' + COLORS[i] + '\" class=\"edui-colorpicker-colorcell\"' +\n                ' data-color=\"#' + COLORS[i] + '\"' +\n                ' style=\"background-color:#' + COLORS[i] + ';border:solid #ccc;' +\n                (i < 10 || i >= 60 ? 'border-width:1px;' :\n                    i >= 10 && i < 20 ? 'border-width:1px 1px 0 1px;' :\n                        'border-width:0 1px 0 1px;') +\n                '\"' +\n                '></a></td>' : '';\n        }\n        html += '</tr></table></div>';\n        return html;\n    },\n    init: function (options) {\n        var me = this;\n        me.root($($.parseTmpl(me.supper.mergeTpl(me.tpl(options)),options)));\n\n        me.root().on(\"click\",function (e) {\n            me.trigger('pickcolor',  $(e.target).data('color'));\n        });\n    }\n}, 'popup');\n/**\n * Created with JetBrains PhpStorm.\n * User: hn\n * Date: 13-5-29\n * Time: 下午8:01\n * To change this template use File | Settings | File Templates.\n */\n\n(function(){\n\n    var widgetName = 'combobox',\n        itemClassName = 'edui-combobox-item',\n        HOVER_CLASS = 'edui-combobox-item-hover',\n        ICON_CLASS = 'edui-combobox-checked-icon',\n        labelClassName = 'edui-combobox-item-label';\n\n    UM.ui.define( widgetName, ( function(){\n\n        return {\n            tpl: \"<ul class=\\\"dropdown-menu edui-combobox-menu<%if (comboboxName!=='') {%> edui-combobox-<%=comboboxName%><%}%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\" role=\\\"menu\\\" aria-labelledby=\\\"dropdownMenu\\\">\" +\n                \"<%if(autoRecord) {%>\" +\n                \"<%for( var i=0, len = recordStack.length; i<len; i++ ) {%>\" +\n                \"<%var index = recordStack[i];%>\" +\n                \"<li class=\\\"<%=itemClassName%><%if( selected == index ) {%> edui-combobox-checked<%}%>\\\" data-item-index=\\\"<%=index%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\">\" +\n                \"<span class=\\\"edui-combobox-icon\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"></span>\" +\n                \"<label class=\\\"<%=labelClassName%>\\\" style=\\\"<%=itemStyles[ index ]%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"><%=items[index]%></label>\" +\n                \"</li>\" +\n                \"<%}%>\" +\n                \"<%if( i ) {%>\" +\n                \"<li class=\\\"edui-combobox-item-separator\\\"></li>\" +\n                \"<%}%>\" +\n                \"<%}%>\" +\n                \"<%for( var i=0, label; label = items[i]; i++ ) {%>\" +\n                \"<li class=\\\"<%=itemClassName%><%if( selected == i ) {%> edui-combobox-checked<%}%> edui-combobox-item-<%=i%>\\\" data-item-index=\\\"<%=i%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\">\" +\n                \"<span class=\\\"edui-combobox-icon\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"></span>\" +\n                \"<label class=\\\"<%=labelClassName%>\\\" style=\\\"<%=itemStyles[ i ]%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"><%=label%></label>\" +\n                \"</li>\" +\n                \"<%}%>\" +\n                \"</ul>\",\n            defaultOpt: {\n                //记录栈初始列表\n                recordStack: [],\n                //可用项列表\n                items: [],\n\t\t        //item对应的值列表\n                value: [],\n                comboboxName: '',\n                selected: '',\n                //自动记录\n                autoRecord: true,\n                //最多记录条数\n                recordCount: 5\n            },\n            init: function( options ){\n\n                var me = this;\n\n                $.extend( me._optionAdaptation( options ), me._createItemMapping( options.recordStack, options.items ), {\n                    itemClassName: itemClassName,\n                    iconClass: ICON_CLASS,\n                    labelClassName: labelClassName\n                } );\n\n                this._transStack( options );\n\n                me.root( $( $.parseTmpl( me.tpl, options ) ) );\n\n                this.data( 'options', options ).initEvent();\n\n            },\n            initEvent: function(){\n\n                var me = this;\n\n                me.initSelectItem();\n\n                this.initItemActive();\n\n            },\n            /**\n             * 初始化选择项\n             */\n            initSelectItem: function(){\n\n                var me = this,\n                    labelClass = \".\"+labelClassName;\n\n                me.root().delegate('.' + itemClassName, 'click', function(){\n\n                    var $li = $(this),\n                        index = $li.attr('data-item-index');\n\n                    me.trigger('comboboxselect', {\n                        index: index,\n                        label: $li.find(labelClass).text(),\n                        value: me.data('options').value[ index ]\n                    }).select( index );\n\n                    me.hide();\n\n                    return false;\n\n                });\n\n            },\n            initItemActive: function(){\n                var fn = {\n                    mouseenter: 'addClass',\n                    mouseleave: 'removeClass'\n                };\n                if ($.IE6) {\n                    this.root().delegate( '.'+itemClassName,  'mouseenter mouseleave', function( evt ){\n                        $(this)[ fn[ evt.type ] ]( HOVER_CLASS );\n                    }).one('afterhide', function(){\n                    });\n                }\n            },\n            /**\n             * 选择给定索引的项\n             * @param index 项索引\n             * @returns {*} 如果存在对应索引的项，则返回该项；否则返回null\n             */\n            select: function( index ){\n\n                var itemCount = this.data('options').itemCount,\n                    items = this.data('options').autowidthitem;\n\n                if ( items && !items.length ) {\n                    items = this.data('options').items;\n                }\n\n                if( itemCount == 0 ) {\n                    return null;\n                }\n\n                if( index < 0 ) {\n\n                    index = itemCount + index % itemCount;\n\n                } else if ( index >= itemCount ) {\n\n                    index = itemCount-1;\n\n                }\n\n                this.trigger( 'changebefore', items[ index ] );\n\n                this._update( index );\n\n                this.trigger( 'changeafter', items[ index ] );\n\n                return null;\n\n            },\n            selectItemByLabel: function( label ){\n\n                var itemMapping = this.data('options').itemMapping,\n                    me = this,\n                    index = null;\n\n                !$.isArray( label ) && ( label = [ label ] );\n\n                $.each( label, function( i, item ){\n\n                    index = itemMapping[ item ];\n\n                    if( index !== undefined ) {\n\n                        me.select( index );\n                        return false;\n\n                    }\n\n                } );\n\n            },\n            /**\n             * 转换记录栈\n             */\n            _transStack: function( options ) {\n\n                var temp = [],\n                    itemIndex = -1,\n                    selected = -1;\n\n                $.each( options.recordStack, function( index, item ){\n\n                    itemIndex = options.itemMapping[ item ];\n\n                    if( $.isNumeric( itemIndex ) ) {\n\n                        temp.push( itemIndex );\n\n                        //selected的合法性检测\n                        if( item == options.selected ) {\n                            selected = itemIndex;\n                        }\n\n                    }\n\n                } );\n\n                options.recordStack = temp;\n                options.selected = selected;\n                temp = null;\n\n            },\n            _optionAdaptation: function( options ) {\n\n                if( !( 'itemStyles' in options ) ) {\n\n                    options.itemStyles = [];\n\n                    for( var i = 0, len = options.items.length; i < len; i++ ) {\n                        options.itemStyles.push('');\n                    }\n\n                }\n\n                options.autowidthitem = options.autowidthitem || options.items;\n                options.itemCount = options.items.length;\n\n                return options;\n\n            },\n            _createItemMapping: function( stackItem, items ){\n\n                var temp = {},\n                    result = {\n                        recordStack: [],\n                        mapping: {}\n                    };\n\n                $.each( items, function( index, item ){\n                    temp[ item ] = index;\n                } );\n\n                result.itemMapping = temp;\n\n                $.each( stackItem, function( index, item ){\n\n                    if( temp[ item ] !== undefined ) {\n                        result.recordStack.push( temp[ item ] );\n                        result.mapping[ item ] = temp[ item ];\n                    }\n\n                } );\n\n                return result;\n\n            },\n            _update: function ( index ) {\n\n                var options = this.data(\"options\"),\n                    newStack = [],\n                    newChilds = null;\n\n                $.each( options.recordStack, function( i, item ){\n\n                    if( item != index ) {\n                        newStack.push( item );\n                    }\n\n                } );\n\n                //压入最新的记录\n                newStack.unshift( index );\n\n                if( newStack.length > options.recordCount ) {\n                    newStack.length = options.recordCount;\n                }\n\n                options.recordStack = newStack;\n                options.selected = index;\n\n                newChilds = $( $.parseTmpl( this.tpl, options ) );\n\n                //重新渲染\n                this.root().html( newChilds.html() );\n\n                newChilds = null;\n                newStack = null;\n\n            }\n        };\n\n    } )(), 'menu' );\n\n})();\n\n/**\n * Combox 抽象基类\n * User: hn\n * Date: 13-5-29\n * Time: 下午8:01\n * To change this template use File | Settings | File Templates.\n */\n\n(function(){\n\n    var widgetName = 'buttoncombobox';\n\n    UM.ui.define( widgetName, ( function(){\n\n        return {\n            defaultOpt: {\n                //按钮初始文字\n                label: '',\n                title: ''\n            },\n            init: function( options ) {\n\n                var me = this;\n\n                var btnWidget = $.eduibutton({\n                    caret: true,\n                    name: options.comboboxName,\n                    title: options.title,\n                    text: options.label,\n                    click: function(){\n                        me.show( this.root() );\n                    }\n                });\n\n                me.supper.init.call( me, options );\n\n                //监听change， 改变button显示内容\n                me.on('changebefore', function( e, label ){\n                    btnWidget.eduibutton('label', label );\n                });\n\n                me.data( 'button', btnWidget );\n\n                me.attachTo(btnWidget)\n\n            },\n            button: function(){\n                return this.data( 'button' );\n            }\n        }\n\n    } )(), 'combobox' );\n\n})();\n\n/*modal 类*/\nUM.ui.define('modal', {\n    tpl: '<div class=\"edui-modal\" tabindex=\"-1\" >' +\n        '<div class=\"edui-modal-header\">' +\n        '<div class=\"edui-close\" data-hide=\"modal\"></div>' +\n        '<h3 class=\"edui-title\"><%=title%></h3>' +\n        '</div>' +\n        '<div class=\"edui-modal-body\"  style=\"<%if(width){%>width:<%=width%>px;<%}%>' +\n        '<%if(height){%>height:<%=height%>px;<%}%>\">' +\n        ' </div>' +\n        '<% if(cancellabel || oklabel) {%>' +\n        '<div class=\"edui-modal-footer\">' +\n        '<div class=\"edui-modal-tip\"></div>' +\n        '<%if(oklabel){%><div class=\"edui-btn edui-btn-primary\" data-ok=\"modal\"><%=oklabel%></div><%}%>' +\n        '<%if(cancellabel){%><div class=\"edui-btn\" data-hide=\"modal\"><%=cancellabel%></div><%}%>' +\n        '</div>' +\n        '<%}%></div>',\n    defaultOpt: {\n        title: \"\",\n        cancellabel: \"\",\n        oklabel: \"\",\n        width: '',\n        height: '',\n        backdrop: true,\n        keyboard: true\n    },\n    init: function (options) {\n        var me = this;\n\n        me.root($($.parseTmpl(me.tpl, options || {})));\n\n        me.data(\"options\", options);\n        if (options.okFn) {\n            me.on('ok', $.proxy(options.okFn, me))\n        }\n        if (options.cancelFn) {\n            me.on('beforehide', $.proxy(options.cancelFn, me))\n        }\n\n        me.root().delegate('[data-hide=\"modal\"]', 'click', $.proxy(me.hide, me))\n            .delegate('[data-ok=\"modal\"]', 'click', $.proxy(me.ok, me));\n\n        $('[data-hide=\"modal\"],[data-ok=\"modal\"]',me.root()).hover(function(){\n            $(this).toggleClass('edui-hover')\n        });\n    },\n    toggle: function () {\n        var me = this;\n        return me[!me.data(\"isShown\") ? 'show' : 'hide']();\n    },\n    show: function () {\n\n        var me = this;\n\n        me.trigger(\"beforeshow\");\n\n        if (me.data(\"isShown\")) return;\n\n        me.data(\"isShown\", true);\n\n        me.escape();\n\n        me.backdrop(function () {\n            me.autoCenter();\n            me.root()\n                .show()\n                .focus()\n                .trigger('aftershow');\n        })\n    },\n    showTip: function ( text ) {\n        $( '.edui-modal-tip', this.root() ).html( text ).fadeIn();\n    },\n    hideTip: function ( text ) {\n        $( '.edui-modal-tip', this.root() ).fadeOut( function (){\n            $(this).html('');\n        } );\n    },\n    autoCenter: function () {\n        //ie6下不用处理了\n        !$.IE6 && this.root().css(\"margin-left\", -(this.root().width() / 2));\n    },\n    hide: function () {\n        var me = this;\n\n        me.trigger(\"beforehide\");\n\n        if (!me.data(\"isShown\")) return;\n\n        me.data(\"isShown\", false);\n\n        me.escape();\n\n        me.hideModal();\n    },\n    escape: function () {\n        var me = this;\n        if (me.data(\"isShown\") && me.data(\"options\").keyboard) {\n            me.root().on('keyup', function (e) {\n                e.which == 27 && me.hide();\n            })\n        }\n        else if (!me.data(\"isShown\")) {\n            me.root().off('keyup');\n        }\n    },\n    hideModal: function () {\n        var me = this;\n        me.root().hide();\n        me.backdrop(function () {\n            me.removeBackdrop();\n            me.trigger('afterhide');\n        })\n    },\n    removeBackdrop: function () {\n        this.$backdrop && this.$backdrop.remove();\n        this.$backdrop = null;\n    },\n    backdrop: function (callback) {\n        var me = this;\n        if (me.data(\"isShown\") && me.data(\"options\").backdrop) {\n            me.$backdrop = $('<div class=\"edui-modal-backdrop\" />').click(\n                me.data(\"options\").backdrop == 'static' ?\n                    $.proxy(me.root()[0].focus, me.root()[0])\n                    : $.proxy(me.hide, me)\n            )\n        }\n        me.trigger('afterbackdrop');\n        callback && callback();\n\n    },\n    attachTo: function ($obj) {\n        var me = this\n        if (!$obj.data('$mergeObj')) {\n\n            $obj.data('$mergeObj', me.root());\n            $obj.on('click', function () {\n                me.toggle($obj)\n            });\n            me.data('$mergeObj', $obj)\n        }\n    },\n    ok: function () {\n        var me = this;\n        me.trigger('beforeok');\n        if (me.trigger(\"ok\", me) === false) {\n            return;\n        }\n        me.hide();\n    },\n    getBodyContainer: function () {\n        return this.root().find('.edui-modal-body')\n    }\n});\n\n\n/*tooltip 类*/\nUM.ui.define('tooltip', {\n    tpl: '<div class=\"edui-tooltip\" unselectable=\"on\" onmousedown=\"return false\">' +\n        '<div class=\"edui-tooltip-arrow\" unselectable=\"on\" onmousedown=\"return false\"></div>' +\n        '<div class=\"edui-tooltip-inner\" unselectable=\"on\" onmousedown=\"return false\"></div>' +\n        '</div>',\n    init: function (options) {\n        var me = this;\n        me.root($($.parseTmpl(me.tpl, options || {})));\n    },\n    content: function (e) {\n        var me = this,\n            title = $(e.currentTarget).attr(\"data-original-title\");\n\n        me.root().find('.edui-tooltip-inner')['text'](title);\n    },\n    position: function (e) {\n        var me = this,\n            $obj = $(e.currentTarget);\n\n        me.root().css($.extend({display: 'block'}, $obj ? {\n            top: $obj.outerHeight(),\n            left: (($obj.outerWidth() - me.root().outerWidth()) / 2)\n        } : {}))\n    },\n    show: function (e) {\n        if ($(e.currentTarget).hasClass('edui-disabled')) return;\n\n        var me = this;\n        me.content(e);\n        me.root().appendTo($(e.currentTarget));\n        me.position(e);\n        me.root().css('display', 'block');\n    },\n    hide: function () {\n        var me = this;\n        me.root().css('display', 'none')\n    },\n    attachTo: function ($obj) {\n        var me = this;\n\n        function tmp($obj) {\n            var me = this;\n\n            if (!$.contains(document.body, me.root()[0])) {\n                me.root().appendTo($obj);\n            }\n\n            me.data('tooltip', me.root());\n\n            $obj.each(function () {\n                if ($(this).attr(\"data-original-title\")) {\n                    $(this).on('mouseenter', $.proxy(me.show, me))\n                        .on('mouseleave click', $.proxy(me.hide, me))\n\n                }\n            });\n\n        }\n\n        if ($.type($obj) === \"undefined\") {\n            $(\"[data-original-title]\").each(function (i, el) {\n                tmp.call(me, $(el));\n            })\n\n        } else {\n            if (!$obj.data('tooltip')) {\n                tmp.call(me, $obj);\n            }\n        }\n    }\n});\n\n/*tab 类*/\nUM.ui.define('tab', {\n    init: function (options) {\n        var me = this,\n            slr = options.selector;\n\n        if ($.type(slr)) {\n            me.root($(slr, options.context));\n            me.data(\"context\", options.context);\n\n            $(slr, me.data(\"context\")).on('click', function (e) {\n                me.show(e);\n            });\n        }\n    },\n    show: function (e) {\n\n        var me = this,\n            $cur = $(e.target),\n            $ul = $cur.closest('ul'),\n            selector,\n            previous,\n            $target,\n            e;\n\n        selector = $cur.attr('data-context');\n        selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '');\n\n        var $tmp = $cur.parent('li');\n\n        if (!$tmp.length || $tmp.hasClass('edui-active')) return;\n\n        previous = $ul.find('.edui-active:last a')[0];\n\n        e = $.Event('beforeshow', {\n            target: $cur[0],\n            relatedTarget: previous\n        });\n\n        me.trigger(e);\n\n        if (e.isDefaultPrevented()) return;\n\n        $target = $(selector, me.data(\"context\"));\n\n        me.activate($cur.parent('li'), $ul);\n        me.activate($target, $target.parent(), function () {\n            me.trigger({\n                type: 'aftershow', relatedTarget: previous\n            })\n        });\n    },\n    activate: function (element, container, callback) {\n        if (element === undefined) {\n            return $(\".edui-tab-item.edui-active\",this.root()).index();\n        }\n\n        var $active = container.find('> .edui-active');\n\n        $active.removeClass('edui-active');\n\n        element.addClass('edui-active');\n\n        callback && callback();\n    }\n});\n\n\n//button 类\nUM.ui.define('separator', {\n    tpl: '<div class=\"edui-separator\" unselectable=\"on\" onmousedown=\"return false\" ></div>',\n    init: function (options) {\n        var me = this;\n        me.root($($.parseTmpl(me.tpl, options)));\n        return me;\n    }\n});\n/**\n * @file adapter.js\n * @desc adapt ui to editor\n * @import core/Editor.js, core/utils.js\n */\n\n(function () {\n    var _editorUI = {},\n        _editors = {},\n        _readyFn = [],\n        _activeWidget = null,\n        _widgetData = {},\n        _widgetCallBack = {},\n        _cacheUI = {},\n        _maxZIndex = null;\n\n    utils.extend(UM, {\n        defaultWidth : 500,\n        defaultHeight : 500,\n        registerUI: function (name, fn) {\n            utils.each(name.split(/\\s+/), function (uiname) {\n                _editorUI[uiname] = fn;\n            })\n        },\n\n        setEditor : function(editor){\n            !_editors[editor.id] && (_editors[editor.id] = editor);\n        },\n        registerWidget : function(name,pro,cb){\n            _widgetData[name] = $.extend2(pro,{\n                $root : '',\n                _preventDefault:false,\n                root:function($el){\n                    return this.$root || (this.$root = $el);\n                },\n                preventDefault:function(){\n                    this._preventDefault = true;\n                },\n                clear:false\n            });\n            if(cb){\n                _widgetCallBack[name] = cb;\n            }\n        },\n        getWidgetData : function(name){\n            return _widgetData[name]\n        },\n        setWidgetBody : function(name,$widget,editor){\n            if(!editor._widgetData){\n\n                utils.extend(editor,{\n                    _widgetData : {},\n                    getWidgetData : function(name){\n                        return this._widgetData[name];\n                    },\n                    getWidgetCallback : function(widgetName){\n                        var me = this;\n                        return function(){\n                            return  _widgetCallBack[widgetName].apply(me,[me,$widget].concat(Array.prototype.slice.call(arguments,0)))\n                        }\n                    }\n                })\n\n            }\n            var pro = _widgetData[name];\n            if(!pro){\n                return null;\n            }\n            pro = editor._widgetData[name];\n            if(!pro){\n                pro = _widgetData[name];\n                pro = editor._widgetData[name] = $.type(pro) == 'function' ? pro : utils.clone(pro);\n            }\n\n            pro.root($widget.edui().getBodyContainer());\n\n            pro.initContent(editor,$widget);\n            if(!pro._preventDefault){\n                pro.initEvent(editor,$widget);\n            }\n\n            pro.width &&  $widget.width(pro.width);\n\n\n        },\n        setActiveWidget : function($widget){\n            _activeWidget = $widget;\n        },\n        getEditor: function (id, options) {\n            var editor = _editors[id] || (_editors[id] = this.createEditor(id, options));\n            _maxZIndex = _maxZIndex ? Math.max(editor.getOpt('zIndex'), _maxZIndex):editor.getOpt('zIndex');\n            return editor;\n        },\n        setTopEditor: function(editor){\n            $.each(_editors, function(i, o){\n                if(editor == o) {\n                    editor.$container && editor.$container.css('zIndex', _maxZIndex + 1);\n                } else {\n                    o.$container && o.$container.css('zIndex', o.getOpt('zIndex'));\n                }\n            });\n        },\n        clearCache : function(id){\n            if ( _editors[id]) {\n                delete  _editors[id]\n            }\n        },\n        delEditor: function (id) {\n            var editor;\n            if (editor = _editors[id]) {\n                editor.destroy();\n            }\n        },\n        ready: function( fn ){\n            _readyFn.push( fn );\n        },\n        createEditor: function (id, opt) {\n            var editor = new UM.Editor(opt);\n            var T = this;\n\n            editor.langIsReady ? $.proxy(renderUI,T)() : editor.addListener(\"langReady\", $.proxy(renderUI,T));\n            function renderUI(){\n\n\n                var $container = this.createUI('#' + id, editor);\n                editor.key=id;\n                editor.ready(function(){\n                    $.each( _readyFn, function( index, fn ){\n                        $.proxy( fn, editor )();\n                    } );\n                });\n                var options = editor.options;\n                if(options.initialFrameWidth){\n                    options.minFrameWidth = options.initialFrameWidth\n                }else{\n                    options.minFrameWidth = options.initialFrameWidth = editor.$body.width() || UM.defaultWidth;\n                }\n\n                $container.css({\n                    width: options.initialFrameWidth,\n                    zIndex:editor.getOpt('zIndex')\n                });\n\n                //ie6下缓存图片\n                UM.browser.ie && UM.browser.version === 6 && document.execCommand(\"BackgroundImageCache\", false, true);\n\n                editor.render(id);\n\n\n                //添加tooltip;\n                $.eduitooltip && $.eduitooltip('attachTo', $(\"[data-original-title]\",$container)).css('z-index',editor.getOpt('zIndex')+1);\n\n                $container.find('a').click(function(evt){\n                    evt.preventDefault()\n                });\n\n                editor.fireEvent(\"afteruiready\");\n            }\n\n            return editor;\n\n        },\n        createUI: function (id, editor) {\n            var $editorCont = $(id),\n                $container = $('<div class=\"edui-container\"><div class=\"edui-editor-body\"></div></div>').insertBefore($editorCont);\n            editor.$container = $container;\n            editor.container = $container[0];\n\n            editor.$body = $editorCont;\n\n            //修正在ie9+以上的版本中，自动长高收起时的，残影问题\n            if(browser.ie && browser.ie9above){\n                var $span = $('<span style=\"padding:0;margin:0;height:0;width:0\"></span>');\n                $span.insertAfter($container);\n            }\n            //初始化注册的ui组件\n            $.each(_editorUI,function(n,v){\n                var widget = v.call(editor,n);\n                if(widget){\n                    _cacheUI[n] = widget;\n                }\n\n            });\n\n            $container.find('.edui-editor-body').append($editorCont).before(this.createToolbar(editor.options, editor));\n\n            $container.find('.edui-toolbar').append($('<div class=\"edui-dialog-container\"></div>'));\n\n\n            return $container;\n        },\n        createToolbar: function (options, editor) {\n            var $toolbar = $.eduitoolbar(), toolbar = $toolbar.edui();\n            //创建下来菜单列表\n\n            if (options.toolbar && options.toolbar.length) {\n                var btns = [];\n                $.each(options.toolbar,function(i,uiNames){\n                    $.each(uiNames.split(/\\s+/),function(index,name){\n                        if(name == '|'){\n                                $.eduiseparator && btns.push($.eduiseparator());\n                        }else{\n                            var ui = _cacheUI[name];\n                            if(name==\"fullscreen\"){\n                                ui&&btns.unshift(ui);\n                            }else{\n                                ui && btns.push(ui);\n                            }\n                        }\n\n                    });\n                    btns.length && toolbar.appendToBtnmenu(btns);\n                });\n            } else {\n                $toolbar.find('.edui-btn-toolbar').remove()\n            }\n            return $toolbar;\n        }\n\n    })\n\n\n})();\n\n\n\nUM.registerUI('bold italic redo undo underline strikethrough superscript subscript insertorderedlist insertunorderedlist ' +\n    'cleardoc selectall link unlink print preview justifyleft justifycenter justifyright justifyfull removeformat horizontal drafts',\n    function(name) {\n        var me = this;\n        var $btn = $.eduibutton({\n            icon : name,\n            click : function(){\n                me.execCommand(name);\n            },\n            title: this.getLang('labelMap')[name] || ''\n        });\n\n        this.addListener('selectionchange',function(){\n            var state = this.queryCommandState(name);\n            $btn.edui().disabled(state == -1).active(state == 1)\n        });\n        return $btn;\n    }\n);\n\n\n/**\n * 全屏组件\n */\n\n(function(){\n\n    //状态缓存\n    var STATUS_CACHE = {},\n    //状态值列表\n        STATUS_LIST = [ 'width', 'height', 'position', 'top', 'left', 'margin', 'padding', 'overflowX', 'overflowY' ],\n        CONTENT_AREA_STATUS = {},\n    //页面状态\n        DOCUMENT_STATUS = {},\n        DOCUMENT_ELEMENT_STATUS = {},\n\n        FULLSCREENS = {};\n\n\n    UM.registerUI('fullscreen', function( name ){\n\n        var me = this,\n            $button = $.eduibutton({\n                'icon': 'fullscreen',\n                'title': (me.options.labelMap && me.options.labelMap[name]) || me.getLang(\"labelMap.\" + name),\n                'click': function(){\n                    //切换\n                    me.execCommand( name );\n                    UM.setTopEditor(me);\n                }\n            });\n\n        me.addListener( \"selectionchange\", function () {\n\n            var state = this.queryCommandState( name );\n            $button.edui().disabled( state == -1 ).active( state == 1 );\n\n        } );\n\n        //切换至全屏\n        me.addListener('ready', function(){\n\n            me.options.fullscreen && Fullscreen.getInstance( me ).toggle();\n\n        });\n\n        return $button;\n\n    });\n\n    UM.commands[ 'fullscreen' ] = {\n\n        execCommand: function (cmdName) {\n\n            Fullscreen.getInstance( this ).toggle();\n\n        },\n        queryCommandState: function (cmdName) {\n\n            return this._edui_fullscreen_status;\n        },\n        notNeedUndo: 1\n\n    };\n\n    function Fullscreen( editor ) {\n\n        var me = this;\n\n        if( !editor ) {\n            throw new Error('invalid params, notfound editor');\n        }\n\n        me.editor = editor;\n\n        //记录初始化的全屏组件\n        FULLSCREENS[ editor.uid ] = this;\n\n        editor.addListener('destroy', function(){\n            delete FULLSCREENS[ editor.uid ];\n            me.editor = null;\n        });\n\n    }\n\n    Fullscreen.prototype = {\n\n        /**\n         * 全屏状态切换\n         */\n        toggle: function(){\n\n            var editor = this.editor,\n            //当前编辑器的缩放状态\n                _edui_fullscreen_status = this.isFullState();\n            editor.fireEvent('beforefullscreenchange', !_edui_fullscreen_status );\n\n            //更新状态\n            this.update( !_edui_fullscreen_status );\n\n            !_edui_fullscreen_status ? this.enlarge() : this.revert();\n\n            editor.fireEvent('afterfullscreenchange', !_edui_fullscreen_status );\n            if(editor.body.contentEditable === 'true'){\n                editor.fireEvent( 'fullscreenchanged', !_edui_fullscreen_status );\n            }\n\n            editor.fireEvent( 'selectionchange' );\n\n        },\n        /**\n         * 执行放大\n         */\n        enlarge: function(){\n\n            this.saveSataus();\n\n            this.setDocumentStatus();\n\n            this.resize();\n\n        },\n        /**\n         * 全屏还原\n         */\n        revert: function(){\n\n            //还原CSS表达式\n            var options = this.editor.options,\n                height = /%$/.test(options.initialFrameHeight) ?  '100%' : (options.initialFrameHeight - this.getStyleValue(\"padding-top\")- this.getStyleValue(\"padding-bottom\") - this.getStyleValue('border-width'));\n\n            $.IE6 && this.getEditorHolder().style.setExpression('height', 'this.scrollHeight <= ' + height + ' ? \"' + height + 'px\" : \"auto\"');\n\n            //还原容器状态\n            this.revertContainerStatus();\n\n            this.revertContentAreaStatus();\n\n            this.revertDocumentStatus();\n\n        },\n        /**\n         * 更新状态\n         * @param isFull 当前状态是否是全屏状态\n         */\n        update: function( isFull ) {\n            this.editor._edui_fullscreen_status = isFull;\n        },\n        /**\n         * 调整当前编辑器的大小, 如果当前编辑器不处于全屏状态， 则不做调整\n         */\n        resize: function(){\n\n            var $win = null,\n                height = 0,\n                width = 0,\n                borderWidth = 0,\n                paddingWidth = 0,\n                editor = this.editor,\n                me = this,\n                bound = null,\n                editorBody = null;\n\n            if( !this.isFullState() ) {\n                return;\n            }\n\n            $win = $( window );\n            width = $win.width();\n            height = $win.height();\n            editorBody = this.getEditorHolder();\n            //文本编辑区border宽度\n            borderWidth = parseInt( domUtils.getComputedStyle( editorBody, 'border-width' ), 10 ) || 0;\n            //容器border宽度\n            borderWidth += parseInt( domUtils.getComputedStyle( editor.container, 'border-width' ), 10 ) || 0;\n            //容器padding\n            paddingWidth += parseInt( domUtils.getComputedStyle( editorBody, 'padding-left' ), 10 ) + parseInt( domUtils.getComputedStyle( editorBody, 'padding-right' ), 10 ) || 0;\n\n            //干掉css表达式\n            $.IE6 && editorBody.style.setExpression( 'height', null );\n\n            bound = this.getBound();\n\n            $( editor.container ).css( {\n                width: width + 'px',\n                height: height + 'px',\n                position: !$.IE6 ? 'fixed' : 'absolute',\n                top: bound.top,\n                left: bound.left,\n                margin: 0,\n                padding: 0,\n                overflowX: 'hidden',\n                overflowY: 'hidden'\n            } );\n\n            $( editorBody ).css({\n                width: width - 2*borderWidth - paddingWidth + 'px',\n                height: height - 2*borderWidth - ( editor.options.withoutToolbar ? 0 : $( '.edui-toolbar', editor.container ).outerHeight() ) - $( '.edui-bottombar', editor.container).outerHeight() + 'px',\n                overflowX: 'hidden',\n                overflowY: 'auto'\n            });\n\n        },\n        /**\n         * 保存状态\n         */\n        saveSataus: function(){\n\n            var styles = this.editor.container.style,\n                tmp = null,\n                cache = {};\n\n            for( var i= 0, len = STATUS_LIST.length; i<len; i++ ) {\n\n                tmp = STATUS_LIST[ i ];\n                cache[ tmp ] = styles[ tmp ];\n\n            }\n\n            STATUS_CACHE[ this.editor.uid ] = cache;\n\n            this.saveContentAreaStatus();\n            this.saveDocumentStatus();\n\n        },\n        saveContentAreaStatus: function(){\n\n            var $holder = $(this.getEditorHolder());\n\n            CONTENT_AREA_STATUS[ this.editor.uid ] = {\n                width: $holder.css(\"width\"),\n                overflowX: $holder.css(\"overflowX\"),\n                overflowY: $holder.css(\"overflowY\"),\n                height: $holder.css(\"height\")\n            };\n\n        },\n        /**\n         * 保存与指定editor相关的页面的状态\n         */\n        saveDocumentStatus: function(){\n\n            var $doc = $( this.getEditorDocumentBody() );\n\n            DOCUMENT_STATUS[ this.editor.uid ] = {\n                overflowX: $doc.css( 'overflowX' ),\n                overflowY: $doc.css( 'overflowY' )\n            };\n            DOCUMENT_ELEMENT_STATUS[ this.editor.uid ] = {\n                overflowX: $( this.getEditorDocumentElement() ).css( 'overflowX'),\n                overflowY: $( this.getEditorDocumentElement() ).css( 'overflowY' )\n            };\n\n        },\n        /**\n         * 恢复容器状态\n         */\n        revertContainerStatus: function(){\n            $( this.editor.container ).css( this.getEditorStatus() );\n        },\n        /**\n         * 恢复编辑区状态\n         */\n        revertContentAreaStatus: function(){\n            var holder = this.getEditorHolder(),\n                state = this.getContentAreaStatus();\n\n            if ( this.supportMin() ) {\n                delete state.height;\n                holder.style.height = null;\n            }\n\n            $( holder ).css( state );\n        },\n        /**\n         * 恢复页面状态\n         */\n        revertDocumentStatus: function() {\n\n            var status = this.getDocumentStatus();\n            $( this.getEditorDocumentBody() ).css( 'overflowX', status.body.overflowX );\n            $( this.getEditorDocumentElement() ).css( 'overflowY', status.html.overflowY );\n\n        },\n        setDocumentStatus: function(){\n            $(this.getEditorDocumentBody()).css( {\n                overflowX: 'hidden',\n                overflowY: 'hidden'\n            } );\n            $(this.getEditorDocumentElement()).css( {\n                overflowX: 'hidden',\n                overflowY: 'hidden'\n            } );\n        },\n        /**\n         * 检测当前编辑器是否处于全屏状态全屏状态\n         * @returns {boolean} 是否处于全屏状态\n         */\n        isFullState: function(){\n            return !!this.editor._edui_fullscreen_status;\n        },\n        /**\n         * 获取编辑器状态\n         */\n        getEditorStatus: function(){\n            return STATUS_CACHE[ this.editor.uid ];\n        },\n        getContentAreaStatus: function(){\n            return CONTENT_AREA_STATUS[ this.editor.uid ];\n        },\n        getEditorDocumentElement: function(){\n            return this.editor.container.ownerDocument.documentElement;\n        },\n        getEditorDocumentBody: function(){\n            return this.editor.container.ownerDocument.body;\n        },\n        /**\n         * 获取编辑区包裹对象\n         */\n        getEditorHolder: function(){\n            return this.editor.body;\n        },\n        /**\n         * 获取编辑器状态\n         * @returns {*}\n         */\n        getDocumentStatus: function(){\n            return {\n                'body': DOCUMENT_STATUS[ this.editor.uid ],\n                'html': DOCUMENT_ELEMENT_STATUS[ this.editor.uid ]\n            };\n        },\n        supportMin: function () {\n\n            var node = null;\n\n            if ( !this._support ) {\n\n                node = document.createElement(\"div\");\n\n                this._support = \"minWidth\" in node.style;\n\n                node = null;\n\n            }\n\n            return this._support;\n\n        },\n        getBound: function () {\n\n            var tags = {\n                    html: true,\n                    body: true\n                },\n                result = {\n                    top: 0,\n                    left: 0\n                },\n                offsetParent = null;\n\n            if ( !$.IE6 ) {\n                return result;\n            }\n\n            offsetParent = this.editor.container.offsetParent;\n\n            if( offsetParent && !tags[ offsetParent.nodeName.toLowerCase() ] ) {\n                tags = offsetParent.getBoundingClientRect();\n                result.top = -tags.top;\n                result.left = -tags.left;\n            }\n\n            return result;\n\n        },\n        getStyleValue: function (attr) {\n            return parseInt(domUtils.getComputedStyle( this.getEditorHolder() ,attr));\n        }\n    };\n\n\n    $.extend( Fullscreen, {\n        /**\n         * 监听resize\n         */\n        listen: function(){\n\n            var timer = null;\n\n            if( Fullscreen._hasFullscreenListener ) {\n                return;\n            }\n\n            Fullscreen._hasFullscreenListener = true;\n\n            $( window ).on( 'resize', function(){\n\n                if( timer !== null ) {\n                    window.clearTimeout( timer );\n                    timer = null;\n                }\n\n                timer = window.setTimeout(function(){\n\n                    for( var key in FULLSCREENS ) {\n                        FULLSCREENS[ key ].resize();\n                    }\n\n                    timer = null;\n\n                }, 50);\n\n            } );\n\n        },\n\n        getInstance: function ( editor ) {\n\n            if ( !FULLSCREENS[editor.uid  ] ) {\n                new Fullscreen( editor );\n            }\n\n            return FULLSCREENS[editor.uid  ];\n\n        }\n\n    });\n\n    //开始监听\n    Fullscreen.listen();\n\n})();\nUM.registerUI('link image video map formula',function(name){\n\n    var me = this, currentRange, $dialog,\n        opt = {\n            title: (me.options.labelMap && me.options.labelMap[name]) || me.getLang(\"labelMap.\" + name),\n            url: me.options.UMEDITOR_HOME_URL + 'dialogs/' + name + '/' + name + '.js'\n        };\n\n    var $btn = $.eduibutton({\n        icon: name,\n        title: this.getLang('labelMap')[name] || ''\n    });\n    //加载模版数据\n    utils.loadFile(document,{\n        src: opt.url,\n        tag: \"script\",\n        type: \"text/javascript\",\n        defer: \"defer\"\n    },function(){\n        //调整数据\n        var data = UM.getWidgetData(name);\n        if(!data) return;\n        if(data.buttons){\n            var ok = data.buttons.ok;\n            if(ok){\n                opt.oklabel = ok.label || me.getLang('ok');\n                if(ok.exec){\n                    opt.okFn = function(){\n                        return $.proxy(ok.exec,null,me,$dialog)()\n                    }\n                }\n            }\n            var cancel = data.buttons.cancel;\n            if(cancel){\n                opt.cancellabel = cancel.label || me.getLang('cancel');\n                if(cancel.exec){\n                    opt.cancelFn = function(){\n                        return $.proxy(cancel.exec,null,me,$dialog)()\n                    }\n                }\n            }\n        }\n        data.width && (opt.width = data.width);\n        data.height && (opt.height = data.height);\n\n        $dialog = $.eduimodal(opt);\n\n        $dialog.attr('id', 'edui-dialog-' + name).addClass('edui-dialog-' + name)\n            .find('.edui-modal-body').addClass('edui-dialog-' + name + '-body');\n\n        $dialog.edui().on('beforehide',function () {\n            var rng = me.selection.getRange();\n            if (rng.equals(currentRange)) {\n                rng.select()\n            }\n        }).on('beforeshow', function () {\n                var $root = this.root(),\n                    win = null,\n                    offset = null;\n                currentRange = me.selection.getRange();\n                if (!$root.parent()[0]) {\n                    me.$container.find('.edui-dialog-container').append($root);\n                }\n\n                //IE6下 特殊处理, 通过计算进行定位\n                if( $.IE6 ) {\n\n                    win = {\n                        width: $( window ).width(),\n                        height: $( window ).height()\n                    };\n                    offset = $root.parents(\".edui-toolbar\")[0].getBoundingClientRect();\n                    $root.css({\n                        position: 'absolute',\n                        margin: 0,\n                        left: ( win.width - $root.width() ) / 2 - offset.left,\n                        top: 100 - offset.top\n                    });\n\n                }\n                UM.setWidgetBody(name,$dialog,me);\n                UM.setTopEditor(me);\n        }).on('afterbackdrop',function(){\n            this.$backdrop.css('zIndex',me.getOpt('zIndex')+1).appendTo(me.$container.find('.edui-dialog-container'))\n            $dialog.css('zIndex',me.getOpt('zIndex')+2)\n        }).on('beforeok',function(){\n            try{\n                currentRange.select()\n            }catch(e){}\n        }).attachTo($btn)\n    });\n\n\n\n\n    me.addListener('selectionchange', function () {\n        var state = this.queryCommandState(name);\n        $btn.edui().disabled(state == -1).active(state == 1)\n    });\n    return $btn;\n});\nUM.registerUI( 'emotion formula', function( name ){\n    var me = this,\n        url  = me.options.UMEDITOR_HOME_URL + 'dialogs/' +name+ '/'+name+'.js';\n\n    var $btn = $.eduibutton({\n        icon: name,\n        title: this.getLang('labelMap')[name] || ''\n    });\n\n    //加载模版数据\n    utils.loadFile(document,{\n        src: url,\n        tag: \"script\",\n        type: \"text/javascript\",\n        defer: \"defer\"\n    },function(){\n        var opt = {\n            url : url\n        };\n        //调整数据\n        var data = UM.getWidgetData(name);\n\n        data.width && (opt.width = data.width);\n        data.height && (opt.height = data.height);\n\n        $.eduipopup(opt).css('zIndex',me.options.zIndex + 1)\n            .addClass('edui-popup-' + name)\n            .edui()\n            .on('beforeshow',function(){\n                var $root = this.root();\n                if(!$root.parent().length){\n                    me.$container.find('.edui-dialog-container').append($root);\n                }\n                UM.setWidgetBody(name,$root,me);\n                UM.setTopEditor(me);\n            }).attachTo($btn,{\n                offsetTop:-5,\n                offsetLeft:10,\n                caretLeft:11,\n                caretTop:-8\n            });\n        me.addListener('selectionchange', function () {\n            var state = this.queryCommandState(name);\n            $btn.edui().disabled(state == -1).active(state == 1);\n        });\n    });\n    return $btn;\n\n} );\nUM.registerUI('imagescale',function () {\n    var me = this,\n        $imagescale;\n\n    me.setOpt('imageScaleEnabled', true);\n\n    if (browser.webkit && me.getOpt('imageScaleEnabled')) {\n\n        me.addListener('click', function (type, e) {\n            var range = me.selection.getRange(),\n                img = range.getClosedNode(),\n                target = e.target;\n\n            /* 点击第一个图片的后面,八个角不消失 fix:3652 */\n            if (img && img.tagName == 'IMG' && target == img) {\n\n                if (!$imagescale) {\n                    $imagescale = $.eduiscale({'$wrap':me.$container}).css('zIndex', me.options.zIndex);\n                    me.$container.append($imagescale);\n\n                    var _keyDownHandler = function () {\n                        $imagescale.edui().hide();\n                    }, _mouseDownHandler = function (e) {\n                        var ele = e.target || e.srcElement;\n                        if (ele && ele.className.indexOf('edui-scale') == -1) {\n                            _keyDownHandler(e);\n                        }\n                    }, timer;\n\n                    $imagescale.edui()\n                        .on('aftershow', function () {\n                            $(document).bind('keydown', _keyDownHandler);\n                            $(document).bind('mousedown', _mouseDownHandler);\n                            me.selection.getNative().removeAllRanges();\n                        })\n                        .on('afterhide', function () {\n                            $(document).unbind('keydown', _keyDownHandler);\n                            $(document).unbind('mousedown', _mouseDownHandler);\n                            var target = $imagescale.edui().getScaleTarget();\n                            if (target.parentNode) {\n                                me.selection.getRange().selectNode(target).select();\n                            }\n                        })\n                        .on('mousedown', function (e) {\n                            me.selection.getNative().removeAllRanges();\n                            var ele = e.target || e.srcElement;\n                            if (ele && ele.className.indexOf('edui-scale-hand') == -1) {\n                                timer = setTimeout(function() {\n                                    $imagescale.edui().hide();\n                                }, 200);\n                            }\n                        })\n                        .on('mouseup', function (e) {\n                            var ele = e.target || e.srcElement;\n                            if (ele && ele.className.indexOf('edui-scale-hand') == -1) {\n                                clearTimeout(timer);\n                            }\n                        });\n                }\n                $imagescale.edui().show($(img));\n\n            } else {\n                if ($imagescale && $imagescale.css('display') != 'none') $imagescale.edui().hide();\n\n            }\n        });\n\n        me.addListener('click', function (type, e) {\n            if (e.target.tagName == 'IMG') {\n                var range = new dom.Range(me.document, me.body);\n                range.selectNode(e.target).select();\n            }\n        });\n\n    }\n});\nUM.registerUI('autofloat',function(){\n    var me = this,\n        lang = me.getLang();\n    me.setOpt({\n        autoFloatEnabled: true,\n        topOffset: 0\n    });\n    var optsAutoFloatEnabled = me.options.autoFloatEnabled !== false,\n        topOffset = me.options.topOffset;\n\n\n    //如果不固定toolbar的位置，则直接退出\n    if(!optsAutoFloatEnabled){\n        return;\n    }\n    me.ready(function(){\n        var LteIE6 = browser.ie && browser.version <= 6,\n            quirks = browser.quirks;\n\n        function checkHasUI(){\n            if(!UM.ui){\n                alert(lang.autofloatMsg);\n                return 0;\n            }\n            return 1;\n        }\n        function fixIE6FixedPos(){\n            var docStyle = document.body.style;\n            docStyle.backgroundImage = 'url(\"about:blank\")';\n            docStyle.backgroundAttachment = 'fixed';\n        }\n        var\tbakCssText,\n            placeHolder = document.createElement('div'),\n            toolbarBox,orgTop,\n            getPosition=function(element){\n                var bcr;\n                //trace  IE6下在控制编辑器显隐时可能会报错，catch一下\n                try{\n                    bcr = element.getBoundingClientRect();\n                }catch(e){\n                    bcr={left:0,top:0,height:0,width:0}\n                }\n                var rect = {\n                    left: Math.round(bcr.left),\n                    top: Math.round(bcr.top),\n                    height: Math.round(bcr.bottom - bcr.top),\n                    width: Math.round(bcr.right - bcr.left)\n                };\n                var doc;\n                while ((doc = element.ownerDocument) !== document &&\n                    (element = domUtils.getWindow(doc).frameElement)) {\n                    bcr = element.getBoundingClientRect();\n                    rect.left += bcr.left;\n                    rect.top += bcr.top;\n                }\n                rect.bottom = rect.top + rect.height;\n                rect.right = rect.left + rect.width;\n                return rect;\n            };\n        var isFullScreening = false;\n        function setFloating(){\n            if(isFullScreening){\n                return;\n            }\n            var toobarBoxPos = domUtils.getXY(toolbarBox),\n                origalFloat = domUtils.getComputedStyle(toolbarBox,'position'),\n                origalLeft = domUtils.getComputedStyle(toolbarBox,'left');\n            toolbarBox.style.width = toolbarBox.offsetWidth + 'px';\n            toolbarBox.style.zIndex = me.options.zIndex * 1 + 1;\n            toolbarBox.parentNode.insertBefore(placeHolder, toolbarBox);\n            if (LteIE6 || (quirks && browser.ie)) {\n                if(toolbarBox.style.position != 'absolute'){\n                    toolbarBox.style.position = 'absolute';\n                }\n                toolbarBox.style.top = (document.body.scrollTop||document.documentElement.scrollTop) - orgTop + topOffset  + 'px';\n            } else {\n                if(toolbarBox.style.position != 'fixed'){\n                    toolbarBox.style.position = 'fixed';\n                    toolbarBox.style.top = topOffset +\"px\";\n                    ((origalFloat == 'absolute' || origalFloat == 'relative') && parseFloat(origalLeft)) && (toolbarBox.style.left = toobarBoxPos.x + 'px');\n                }\n            }\n        }\n        function unsetFloating(){\n\n            if(placeHolder.parentNode){\n                placeHolder.parentNode.removeChild(placeHolder);\n            }\n            toolbarBox.style.cssText = bakCssText;\n        }\n\n        function updateFloating(){\n            var rect3 = getPosition(me.container);\n            var offset=me.options.toolbarTopOffset||0;\n            if (rect3.top < 0 && rect3.bottom - toolbarBox.offsetHeight > offset) {\n                setFloating();\n            }else{\n                unsetFloating();\n            }\n        }\n        var defer_updateFloating = utils.defer(function(){\n            updateFloating();\n        },browser.ie ? 200 : 100,true);\n\n        me.addListener('destroy',function(){\n            $(window).off('scroll resize',updateFloating);\n            me.removeListener('keydown', defer_updateFloating);\n        });\n\n        if(checkHasUI(me)){\n            toolbarBox = $('.edui-toolbar',me.container)[0];\n            me.addListener(\"afteruiready\",function(){\n                setTimeout(function(){\n                    orgTop = $(toolbarBox).offset().top;\n                },100);\n            });\n            bakCssText = toolbarBox.style.cssText;\n            placeHolder.style.height = toolbarBox.offsetHeight + 'px';\n            if(LteIE6){\n                fixIE6FixedPos();\n            }\n\n            $(window).on('scroll resize',updateFloating);\n            me.addListener('keydown', defer_updateFloating);\n            me.addListener('resize', function(){\n                unsetFloating();\n                placeHolder.style.height = toolbarBox.offsetHeight + 'px';\n                updateFloating();\n            });\n\n            me.addListener('beforefullscreenchange', function (t, enabled){\n                if (enabled) {\n                    unsetFloating();\n                    isFullScreening = enabled;\n                }\n            });\n            me.addListener('fullscreenchanged', function (t, enabled){\n                if (!enabled) {\n                    updateFloating();\n                }\n                isFullScreening = enabled;\n            });\n            me.addListener('sourcemodechanged', function (t, enabled){\n                setTimeout(function (){\n                    updateFloating();\n                },0);\n            });\n            me.addListener(\"clearDoc\",function(){\n                setTimeout(function(){\n                    updateFloating();\n                },0);\n\n            })\n        }\n    })\n\n\n});\nUM.registerUI('source',function(name){\n    var me = this;\n    me.addListener('fullscreenchanged',function(){\n        me.$container.find('textarea').width(me.$body.width() - 10).height(me.$body.height())\n\n    });\n    var $btn = $.eduibutton({\n        icon : name,\n        click : function(){\n            me.execCommand(name);\n            UM.setTopEditor(me);\n        },\n        title: this.getLang('labelMap')[name] || ''\n    });\n\n    this.addListener('selectionchange',function(){\n        var state = this.queryCommandState(name);\n        $btn.edui().disabled(state == -1).active(state == 1)\n    });\n    return $btn;\n});\n\nUM.registerUI('paragraph fontfamily fontsize', function( name ) {\n\n    var me = this,\n        label = (me.options.labelMap && me.options.labelMap[name]) || me.getLang(\"labelMap.\" + name),\n        options = {\n            label: label,\n            title: label,\n            comboboxName: name,\n            items: me.options[ name ] || [],\n            itemStyles: [],\n            value: [],\n            autowidthitem: []\n        },\n        $combox = null,\n        comboboxWidget = null;\n    if(options.items.length == 0){\n        return null;\n    }\n    switch ( name ) {\n\n        case 'paragraph':\n            options = transForParagraph( options );\n            break;\n\n        case 'fontfamily':\n            options = transForFontfamily( options );\n            break;\n\n        case 'fontsize':\n            options = transForFontsize( options );\n            break;\n\n    }\n\n    //实例化\n    $combox =  $.eduibuttoncombobox(options).css('zIndex',me.getOpt('zIndex') + 1);\n    comboboxWidget =  $combox.edui();\n\n    comboboxWidget.on('comboboxselect', function( evt, res ){\n                        me.execCommand( name, res.value );\n                    }).on(\"beforeshow\", function(){\n                        if( $combox.parent().length === 0 ) {\n                            $combox.appendTo(  me.$container.find('.edui-dialog-container') );\n                        }\n                        UM.setTopEditor(me);\n                    });\n\n\n    //状态反射\n    this.addListener('selectionchange',function( evt ){\n\n        var state  = this.queryCommandState( name ),\n            value = this.queryCommandValue( name );\n\n        //设置按钮状态\n        comboboxWidget.button().edui().disabled( state == -1 ).active( state == 1 );\n        if(value){\n            //设置label\n            value = value.replace(/['\"]/g, '').toLowerCase().split(/['|\"]?\\s*,\\s*[\\1]?/);\n\n            comboboxWidget.selectItemByLabel( value );\n        }\n\n\n    });\n\n    return comboboxWidget.button().addClass('edui-combobox');\n\n    /**\n     * 宽度自适应工具函数\n     * @param word 单词内容\n     * @param hasSuffix 是否含有后缀\n     */\n    function wordCountAdaptive ( word, hasSuffix ) {\n\n        var $tmpNode = $('<span>' ).html( word ).css( {\n                display: 'inline',\n                position: 'absolute',\n                top: -10000000,\n                left: -100000\n            } ).appendTo( document.body),\n            width = $tmpNode.width();\n\n        $tmpNode.remove();\n        $tmpNode = null;\n\n        if( width < 50 ) {\n\n            return word;\n\n        } else {\n\n            word = word.slice( 0, hasSuffix ? -4 : -1 );\n\n            if( !word.length ) {\n                return '...';\n            }\n\n            return wordCountAdaptive( word + '...', true );\n\n        }\n\n    }\n\n\n    //段落参数转换\n    function transForParagraph ( options ) {\n\n        var tempItems = [];\n\n        for( var key in options.items ) {\n\n            options.value.push( key );\n            tempItems.push( key );\n            options.autowidthitem.push( wordCountAdaptive( key ) );\n\n        }\n\n        options.items = tempItems;\n        options.autoRecord = false;\n\n        return options;\n\n    }\n\n    //字体参数转换\n    function transForFontfamily ( options ) {\n\n        var temp = null,\n            tempItems = [];\n\n        for( var i = 0, len = options.items.length; i < len; i++ ) {\n\n            temp = options.items[ i ].val;\n            tempItems.push( temp.split(/\\s*,\\s*/)[0] );\n            options.itemStyles.push('font-family: ' + temp);\n            options.value.push( temp );\n            options.autowidthitem.push( wordCountAdaptive( tempItems[ i ] ) );\n\n        }\n\n        options.items = tempItems;\n\n        return options;\n\n    }\n\n    //字体大小参数转换\n    function transForFontsize ( options ) {\n\n        var temp = null,\n            tempItems = [];\n\n        options.itemStyles = [];\n        options.value = [];\n\n        for( var i = 0, len = options.items.length; i < len; i++ ) {\n\n            temp = options.items[ i ];\n            tempItems.push( temp );\n            options.itemStyles.push('font-size: ' + temp +'px');\n\n        }\n\n        options.value = options.items;\n        options.items = tempItems;\n        options.autoRecord = false;\n\n        return options;\n\n    }\n\n});\n\n\nUM.registerUI('forecolor backcolor', function( name ) {\n    function getCurrentColor() {\n        return domUtils.getComputedStyle( $colorLabel[0], 'background-color' );\n    }\n\n    var me = this,\n        $colorPickerWidget = null,\n        $colorLabel = null,\n        $btn = null;\n\n    //querycommand\n    this.addListener('selectionchange', function(){\n\n        var state = this.queryCommandState( name );\n        $btn.edui().disabled( state == -1 ).active( state == 1 );\n\n    });\n\n    $btn = $.eduicolorsplitbutton({\n        icon: name,\n        caret: true,\n        name: name,\n        title: me.getLang(\"labelMap\")[name],\n        click: function() {\n            me.execCommand( name, getCurrentColor() );\n        }\n    });\n\n    $colorLabel = $btn.edui().colorLabel();\n\n    $colorPickerWidget = $.eduicolorpicker({\n        name: name,\n        lang_clearColor: me.getLang('clearColor') || '',\n        lang_themeColor: me.getLang('themeColor') || '',\n        lang_standardColor: me.getLang('standardColor') || ''\n    })\n        .on('pickcolor', function( evt, color ){\n            window.setTimeout( function(){\n                $colorLabel.css(\"backgroundColor\", color);\n                me.execCommand( name, color );\n            }, 0 );\n        })\n        .on('show',function(){\n            UM.setActiveWidget( colorPickerWidget.root() );\n        }).css('zIndex',me.getOpt('zIndex') + 1);\n\n    $btn.edui().on('arrowclick',function(){\n        if(!$colorPickerWidget.parent().length){\n            me.$container.find('.edui-dialog-container').append($colorPickerWidget);\n        }\n        $colorPickerWidget.edui().show($btn,{\n            caretDir:\"down\",\n            offsetTop:-5,\n            offsetLeft:8,\n            caretLeft:11,\n            caretTop:-8\n        });\n        UM.setTopEditor(me);\n    }).register('click', $btn, function () {\n            $colorPickerWidget.edui().hide()\n        });\n\n    return $btn;\n\n});\n\n})(jQuery)"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/scripts/app.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\nvar App = function() {\n\n    // IE mode\n    var isRTL = false;\n    var isIE8 = false;\n    var isIE9 = false;\n    var isIE10 = false;\n\n    var resizeHandlers = [];\n\n    var assetsPath = '../assets/';\n\n    var globalImgPath = 'global/img/';\n\n    var globalPluginsPath = 'global/plugins/';\n\n    var globalCssPath = 'global/css/';\n\n    // theme layout color set\n\n    var brandColors = {\n        'blue': '#89C4F4',\n        'red': '#F3565D',\n        'green': '#1bbc9b',\n        'purple': '#9b59b6',\n        'grey': '#95a5a6',\n        'yellow': '#F8CB00'\n    };\n\n    // initializes main settings\n    var handleInit = function() {\n\n        if ($('body').css('direction') === 'rtl') {\n            isRTL = true;\n        }\n\n        isIE8 = !!navigator.userAgent.match(/MSIE 8.0/);\n        isIE9 = !!navigator.userAgent.match(/MSIE 9.0/);\n        isIE10 = !!navigator.userAgent.match(/MSIE 10.0/);\n\n        if (isIE10) {\n            $('html').addClass('ie10'); // detect IE10 version\n        }\n\n        if (isIE10 || isIE9 || isIE8) {\n            $('html').addClass('ie'); // detect IE10 version\n        }\n    };\n\n    // runs callback functions set by App.addResponsiveHandler().\n    var _runResizeHandlers = function() {\n        // reinitialize other subscribed elements\n        for (var i = 0; i < resizeHandlers.length; i++) {\n            var each = resizeHandlers[i];\n            each.call();\n        }\n    };\n\n    var handleOnResize = function() {\n        var windowWidth = $(window).width();\n        var resize;\n        if (isIE8) {\n            var currheight;\n            $(window).resize(function() {\n                if (currheight == document.documentElement.clientHeight) {\n                    return; //quite event since only body resized not window.\n                }\n                if (resize) {\n                    clearTimeout(resize);\n                }\n                resize = setTimeout(function() {\n                    _runResizeHandlers();\n                }, 50); // wait 50ms until window resize finishes.                \n                currheight = document.documentElement.clientHeight; // store last body client height\n            });\n        } else {\n            $(window).resize(function() {\n                if ($(window).width() != windowWidth) {\n                    windowWidth = $(window).width();\n                    if (resize) {\n                        clearTimeout(resize);\n                    }\n                    resize = setTimeout(function() {\n                        _runResizeHandlers();\n                    }, 50); // wait 50ms until window resize finishes.\n                }\n            });\n        }\n    };\n\n    // Handles portlet tools & actions\n    var handlePortletTools = function() {\n        // handle portlet remove\n        $('body').on('click', '.portlet > .portlet-title > .tools > a.remove', function(e) {\n            e.preventDefault();\n            var portlet = $(this).closest(\".portlet\");\n\n            if ($('body').hasClass('page-portlet-fullscreen')) {\n                $('body').removeClass('page-portlet-fullscreen');\n            }\n\n            portlet.find('.portlet-title .fullscreen').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .reload').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .remove').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .config').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip('destroy');\n\n            portlet.remove();\n        });\n\n        // handle portlet fullscreen\n        $('body').on('click', '.portlet > .portlet-title .fullscreen', function(e) {\n            e.preventDefault();\n            var portlet = $(this).closest(\".portlet\");\n            if (portlet.hasClass('portlet-fullscreen')) {\n                $(this).removeClass('on');\n                portlet.removeClass('portlet-fullscreen');\n                $('body').removeClass('page-portlet-fullscreen');\n                portlet.children('.portlet-body').css('height', 'auto');\n            } else {\n                var height = App.getViewPort().height -\n                    portlet.children('.portlet-title').outerHeight() -\n                    parseInt(portlet.children('.portlet-body').css('padding-top')) -\n                    parseInt(portlet.children('.portlet-body').css('padding-bottom'));\n\n                $(this).addClass('on');\n                portlet.addClass('portlet-fullscreen');\n                $('body').addClass('page-portlet-fullscreen');\n                portlet.children('.portlet-body').css('height', height);\n            }\n        });\n\n        $('body').on('click', '.portlet > .portlet-title > .tools > a.reload', function(e) {\n            e.preventDefault();\n            var el = $(this).closest(\".portlet\").children(\".portlet-body\");\n            var url = $(this).attr(\"data-url\");\n            var error = $(this).attr(\"data-error-display\");\n            if (url) {\n                App.blockUI({\n                    target: el,\n                    animate: true,\n                    overlayColor: 'none'\n                });\n                $.ajax({\n                    type: \"GET\",\n                    cache: false,\n                    url: url,\n                    dataType: \"html\",\n                    success: function(res) {\n                        App.unblockUI(el);\n                        el.html(res);\n                        App.initAjax() // reinitialize elements & plugins for newly loaded content\n                    },\n                    error: function(xhr, ajaxOptions, thrownError) {\n                        App.unblockUI(el);\n                        var msg = 'Error on reloading the content. Please check your connection and try again.';\n                        if (error == \"toastr\" && toastr) {\n                            toastr.error(msg);\n                        } else if (error == \"notific8\" && $.notific8) {\n                            $.notific8('zindex', 11500);\n                            $.notific8(msg, {\n                                theme: 'ruby',\n                                life: 3000\n                            });\n                        } else {\n                            alert(msg);\n                        }\n                    }\n                });\n            } else {\n                // for demo purpose\n                App.blockUI({\n                    target: el,\n                    animate: true,\n                    overlayColor: 'none'\n                });\n                window.setTimeout(function() {\n                    App.unblockUI(el);\n                }, 1000);\n            }\n        });\n\n        // load ajax data on page init\n        $('.portlet .portlet-title a.reload[data-load=\"true\"]').click();\n\n        $('body').on('click', '.portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand', function(e) {\n            e.preventDefault();\n            var el = $(this).closest(\".portlet\").children(\".portlet-body\");\n            if ($(this).hasClass(\"collapse\")) {\n                $(this).removeClass(\"collapse\").addClass(\"expand\");\n                el.slideUp(200);\n            } else {\n                $(this).removeClass(\"expand\").addClass(\"collapse\");\n                el.slideDown(200);\n            }\n        });\n    };\n    \n    // Handlesmaterial design checkboxes\n    var handleMaterialDesign = function() {\n\n        // Material design ckeckbox and radio effects\n        $('body').on('click', '.md-checkbox > label, .md-radio > label', function() {\n            var the = $(this);\n            // find the first span which is our circle/bubble\n            var el = $(this).children('span:first-child');\n              \n            // add the bubble class (we do this so it doesnt show on page load)\n            el.addClass('inc');\n              \n            // clone it\n            var newone = el.clone(true);  \n              \n            // add the cloned version before our original\n            el.before(newone);  \n              \n            // remove the original so that it is ready to run on next click\n            $(\".\" + el.attr(\"class\") + \":last\", the).remove();\n        }); \n\n        if ($('body').hasClass('page-md')) { \n            // Material design click effect\n            // credit where credit's due; http://thecodeplayer.com/walkthrough/ripple-click-effect-google-material-design       \n            var element, circle, d, x, y;\n            $('body').on('click', 'a.btn, button.btn, input.btn, label.btn', function(e) { \n                element = $(this);\n      \n                if(element.find(\".md-click-circle\").length == 0) {\n                    element.prepend(\"<span class='md-click-circle'></span>\");\n                }\n                    \n                circle = element.find(\".md-click-circle\");\n                circle.removeClass(\"md-click-animate\");\n                \n                if(!circle.height() && !circle.width()) {\n                    d = Math.max(element.outerWidth(), element.outerHeight());\n                    circle.css({height: d, width: d});\n                }\n                \n                x = e.pageX - element.offset().left - circle.width()/2;\n                y = e.pageY - element.offset().top - circle.height()/2;\n                \n                circle.css({top: y+'px', left: x+'px'}).addClass(\"md-click-animate\");\n\n                setTimeout(function() {\n                    circle.remove();      \n                }, 1000);\n            });\n        }\n\n        // Floating labels\n        var handleInput = function(el) {\n            if (el.val() != \"\") {\n                el.addClass('edited');\n            } else {\n                el.removeClass('edited');\n            }\n        } \n\n        $('body').on('keydown', '.form-md-floating-label .form-control', function(e) { \n            handleInput($(this));\n        });\n        $('body').on('blur', '.form-md-floating-label .form-control', function(e) { \n            handleInput($(this));\n        });        \n\n        $('.form-md-floating-label .form-control').each(function(){\n            if ($(this).val().length > 0) {\n                $(this).addClass('edited');\n            }\n        });\n    }\n\n    // Handles custom checkboxes & radios using jQuery iCheck plugin\n    var handleiCheck = function() {\n        if (!$().iCheck) {\n            return;\n        }\n\n        $('.icheck').each(function() {\n            var checkboxClass = $(this).attr('data-checkbox') ? $(this).attr('data-checkbox') : 'icheckbox_minimal-grey';\n            var radioClass = $(this).attr('data-radio') ? $(this).attr('data-radio') : 'iradio_minimal-grey';\n\n            if (checkboxClass.indexOf('_line') > -1 || radioClass.indexOf('_line') > -1) {\n                $(this).iCheck({\n                    checkboxClass: checkboxClass,\n                    radioClass: radioClass,\n                    insert: '<div class=\"icheck_line-icon\"></div>' + $(this).attr(\"data-label\")\n                });\n            } else {\n                $(this).iCheck({\n                    checkboxClass: checkboxClass,\n                    radioClass: radioClass\n                });\n            }\n        });\n    };\n\n    // Handles Bootstrap switches\n    var handleBootstrapSwitch = function() {\n        if (!$().bootstrapSwitch) {\n            return;\n        }\n        $('.make-switch').bootstrapSwitch();\n    };\n\n    // Handles Bootstrap confirmations\n    var handleBootstrapConfirmation = function() {\n        if (!$().confirmation) {\n            return;\n        }\n        $('[data-toggle=confirmation]').confirmation({ btnOkClass: 'btn btn-sm btn-success', btnCancelClass: 'btn btn-sm btn-danger'});\n    }\n    \n    // Handles Bootstrap Accordions.\n    var handleAccordions = function() {\n        $('body').on('shown.bs.collapse', '.accordion.scrollable', function(e) {\n            App.scrollTo($(e.target));\n        });\n    };\n\n    // Handles Bootstrap Tabs.\n    var handleTabs = function() {\n        //activate tab if tab id provided in the URL\n        if (encodeURI(location.hash)) {\n            var tabid = encodeURI(location.hash.substr(1));\n            $('a[href=\"#' + tabid + '\"]').parents('.tab-pane:hidden').each(function() {\n                var tabid = $(this).attr(\"id\");\n                $('a[href=\"#' + tabid + '\"]').click();\n            });\n            $('a[href=\"#' + tabid + '\"]').click();\n        }\n\n        if ($().tabdrop) {\n            $('.tabbable-tabdrop .nav-pills, .tabbable-tabdrop .nav-tabs').tabdrop({\n                text: '<i class=\"fa fa-ellipsis-v\"></i>&nbsp;<i class=\"fa fa-angle-down\"></i>'\n            });\n        }\n    };\n\n    // Handles Bootstrap Modals.\n    var handleModals = function() {        \n        // fix stackable modal issue: when 2 or more modals opened, closing one of modal will remove .modal-open class. \n        $('body').on('hide.bs.modal', function() {\n            if ($('.modal:visible').size() > 1 && $('html').hasClass('modal-open') === false) {\n                $('html').addClass('modal-open');\n            } else if ($('.modal:visible').size() <= 1) {\n                $('html').removeClass('modal-open');\n            }\n        });\n\n        // fix page scrollbars issue\n        $('body').on('show.bs.modal', '.modal', function() {\n            if ($(this).hasClass(\"modal-scroll\")) {\n                $('body').addClass(\"modal-open-noscroll\");\n            }\n        });\n\n        // fix page scrollbars issue\n        $('body').on('hidden.bs.modal', '.modal', function() {\n            $('body').removeClass(\"modal-open-noscroll\");\n        });\n\n        // remove ajax content and remove cache on modal closed \n        $('body').on('hidden.bs.modal', '.modal:not(.modal-cached)', function () {\n            $(this).removeData('bs.modal');\n        });\n    };\n\n    // Handles Bootstrap Tooltips.\n    var handleTooltips = function() {\n        // global tooltips\n        $('.tooltips').tooltip();\n\n        // portlet tooltips\n        $('.portlet > .portlet-title .fullscreen').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Fullscreen'\n        });\n        $('.portlet > .portlet-title > .tools > .reload').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Reload'\n        });\n        $('.portlet > .portlet-title > .tools > .remove').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Remove'\n        });\n        $('.portlet > .portlet-title > .tools > .config').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Settings'\n        });\n        $('.portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Collapse/Expand'\n        });\n    };\n\n    // Handles Bootstrap Dropdowns\n    var handleDropdowns = function() {\n        /*\n          Hold dropdown on click  \n        */\n        $('body').on('click', '.dropdown-menu.hold-on-click', function(e) {\n            e.stopPropagation();\n        });\n    };\n\n    var handleAlerts = function() {\n        $('body').on('click', '[data-close=\"alert\"]', function(e) {\n            $(this).parent('.alert').hide();\n            $(this).closest('.note').hide();\n            e.preventDefault();\n        });\n\n        $('body').on('click', '[data-close=\"note\"]', function(e) {\n            $(this).closest('.note').hide();\n            e.preventDefault();\n        });\n\n        $('body').on('click', '[data-remove=\"note\"]', function(e) {\n            $(this).closest('.note').remove();\n            e.preventDefault();\n        });\n    };\n\n    // Handle textarea autosize \n    var handleTextareaAutosize = function() {\n        if (typeof(autosize) == \"function\") {\n            autosize(document.querySelector('textarea.autosizeme'));\n        }\n    }\n\n    // Handles Bootstrap Popovers\n\n    // last popep popover\n    var lastPopedPopover;\n\n    var handlePopovers = function() {\n        $('.popovers').popover();\n\n        // close last displayed popover\n\n        $(document).on('click.bs.popover.data-api', function(e) {\n            if (lastPopedPopover) {\n                lastPopedPopover.popover('hide');\n            }\n        });\n    };\n\n    // Handles scrollable contents using jQuery SlimScroll plugin.\n    var handleScrollers = function() {\n        App.initSlimScroll('.scroller');\n    };\n\n    // Handles Image Preview using jQuery Fancybox plugin\n    var handleFancybox = function() {\n        if (!jQuery.fancybox) {\n            return;\n        }\n\n        if ($(\".fancybox-button\").size() > 0) {\n            $(\".fancybox-button\").fancybox({\n                groupAttr: 'data-rel',\n                prevEffect: 'none',\n                nextEffect: 'none',\n                closeBtn: true,\n                helpers: {\n                    title: {\n                        type: 'inside'\n                    }\n                }\n            });\n        }\n    };\n\n    // Handles counterup plugin wrapper\n    var handleCounterup = function() {\n        if (!$().counterUp) {\n            return;\n        }\n\n        $(\"[data-counter='counterup']\").counterUp({\n            delay: 10,\n            time: 1000\n        });\n    };\n\n    // Fix input placeholder issue for IE8 and IE9\n    var handleFixInputPlaceholderForIE = function() {\n        //fix html5 placeholder attribute for ie7 & ie8\n        if (isIE8 || isIE9) { // ie8 & ie9\n            // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields)\n            $('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function() {\n                var input = $(this);\n\n                if (input.val() === '' && input.attr(\"placeholder\") !== '') {\n                    input.addClass(\"placeholder\").val(input.attr('placeholder'));\n                }\n\n                input.focus(function() {\n                    if (input.val() == input.attr('placeholder')) {\n                        input.val('');\n                    }\n                });\n\n                input.blur(function() {\n                    if (input.val() === '' || input.val() == input.attr('placeholder')) {\n                        input.val(input.attr('placeholder'));\n                    }\n                });\n            });\n        }\n    };\n\n    // Handle Select2 Dropdowns\n    var handleSelect2 = function() {\n        if ($().select2) {\n            $.fn.select2.defaults.set(\"theme\", \"bootstrap\");\n            $('.select2me').select2({\n                placeholder: \"Select\",\n                width: 'auto', \n                allowClear: true\n            });\n        }\n    };\n\n    // handle group element heights\n   var handleHeight = function() {\n       $('[data-auto-height]').each(function() {\n            var parent = $(this);\n            var items = $('[data-height]', parent);\n            var height = 0;\n            var mode = parent.attr('data-mode');\n            var offset = parseInt(parent.attr('data-offset') ? parent.attr('data-offset') : 0);\n\n            items.each(function() {\n                if ($(this).attr('data-height') == \"height\") {\n                    $(this).css('height', '');\n                } else {\n                    $(this).css('min-height', '');\n                }\n\n                var height_ = (mode == 'base-height' ? $(this).outerHeight() : $(this).outerHeight(true));\n                if (height_ > height) {\n                    height = height_;\n                }\n            });\n\n            height = height + offset;\n\n            items.each(function() {\n                if ($(this).attr('data-height') == \"height\") {\n                    $(this).css('height', height);\n                } else {\n                    $(this).css('min-height', height);\n                }\n            });\n\n            if(parent.attr('data-related')) {\n                $(parent.attr('data-related')).css('height', parent.height());\n            }\n       });       \n    }\n    \n    //* END:CORE HANDLERS *//\n\n    return {\n\n        //main function to initiate the theme\n        init: function() {\n            //IMPORTANT!!!: Do not modify the core handlers call order.\n\n            //Core handlers\n            handleInit(); // initialize core variables\n            handleOnResize(); // set and handle responsive    \n\n            //UI Component handlers     \n            handleMaterialDesign(); // handle material design       \n            handleiCheck(); // handles custom icheck radio and checkboxes\n            handleBootstrapSwitch(); // handle bootstrap switch plugin\n            handleScrollers(); // handles slim scrolling contents \n            handleFancybox(); // handle fancy box\n            handleSelect2(); // handle custom Select2 dropdowns\n            handlePortletTools(); // handles portlet action bar functionality(refresh, configure, toggle, remove)\n            handleAlerts(); //handle closabled alerts\n            handleDropdowns(); // handle dropdowns\n            handleTabs(); // handle tabs\n            handleTooltips(); // handle bootstrap tooltips\n            handlePopovers(); // handles bootstrap popovers\n            handleAccordions(); //handles accordions \n            handleModals(); // handle modals\n            handleBootstrapConfirmation(); // handle bootstrap confirmations\n            handleTextareaAutosize(); // handle autosize textareas\n            handleCounterup(); // handle counterup instances\n\n            //Handle group element heights\n            this.addResizeHandler(handleHeight); // handle auto calculating height on window resize\n\n            // Hacks\n            handleFixInputPlaceholderForIE(); //IE8 & IE9 input placeholder issue fix\n        },\n\n        //main function to initiate core javascript after ajax complete\n        initAjax: function() {\n            //handleUniform(); // handles custom radio & checkboxes     \n            handleiCheck(); // handles custom icheck radio and checkboxes\n            handleBootstrapSwitch(); // handle bootstrap switch plugin\n            handleScrollers(); // handles slim scrolling contents \n            handleSelect2(); // handle custom Select2 dropdowns\n            handleFancybox(); // handle fancy box\n            handleDropdowns(); // handle dropdowns\n            handleTooltips(); // handle bootstrap tooltips\n            handlePopovers(); // handles bootstrap popovers\n            handleAccordions(); //handles accordions \n            handleBootstrapConfirmation(); // handle bootstrap confirmations\n        },\n\n        //init main components \n        initComponents: function() {\n            this.initAjax();\n        },\n\n        //public function to remember last opened popover that needs to be closed on click\n        setLastPopedPopover: function(el) {\n            lastPopedPopover = el;\n        },\n\n        //public function to add callback a function which will be called on window resize\n        addResizeHandler: function(func) {\n            resizeHandlers.push(func);\n        },\n\n        //public functon to call _runresizeHandlers\n        runResizeHandlers: function() {\n            _runResizeHandlers();\n        },\n\n        // wrApper function to scroll(focus) to an element\n        scrollTo: function(el, offeset) {\n            var pos = (el && el.size() > 0) ? el.offset().top : 0;\n\n            if (el) {\n                if ($('body').hasClass('page-header-fixed')) {\n                    pos = pos - $('.page-header').height();\n                } else if ($('body').hasClass('page-header-top-fixed')) {\n                    pos = pos - $('.page-header-top').height();\n                } else if ($('body').hasClass('page-header-menu-fixed')) {\n                    pos = pos - $('.page-header-menu').height();\n                }\n                pos = pos + (offeset ? offeset : -1 * el.height());\n            }\n\n            $('html,body').animate({\n                scrollTop: pos\n            }, 'slow');\n        },\n\n        initSlimScroll: function(el) {\n            if (!$().slimScroll) {\n                return;\n            }\n\n            $(el).each(function() {\n                if ($(this).attr(\"data-initialized\")) {\n                    return; // exit\n                }\n\n                var height;\n\n                if ($(this).attr(\"data-height\")) {\n                    height = $(this).attr(\"data-height\");\n                } else {\n                    height = $(this).css('height');\n                }\n\n                $(this).slimScroll({\n                    allowPageScroll: true, // allow page scroll when the element scroll is ended\n                    size: '7px',\n                    color: ($(this).attr(\"data-handle-color\") ? $(this).attr(\"data-handle-color\") : '#bbb'),\n                    wrapperClass: ($(this).attr(\"data-wrapper-class\") ? $(this).attr(\"data-wrapper-class\") : 'slimScrollDiv'),\n                    railColor: ($(this).attr(\"data-rail-color\") ? $(this).attr(\"data-rail-color\") : '#eaeaea'),\n                    position: isRTL ? 'left' : 'right',\n                    height: height,\n                    alwaysVisible: ($(this).attr(\"data-always-visible\") == \"1\" ? true : false),\n                    railVisible: ($(this).attr(\"data-rail-visible\") == \"1\" ? true : false),\n                    disableFadeOut: true\n                });\n\n                $(this).attr(\"data-initialized\", \"1\");\n            });\n        },\n\n        destroySlimScroll: function(el) {\n            if (!$().slimScroll) {\n                return;\n            }\n\n            $(el).each(function() {\n                if ($(this).attr(\"data-initialized\") === \"1\") { // destroy existing instance before updating the height\n                    $(this).removeAttr(\"data-initialized\");\n                    $(this).removeAttr(\"style\");\n\n                    var attrList = {};\n\n                    // store the custom attribures so later we will reassign.\n                    if ($(this).attr(\"data-handle-color\")) {\n                        attrList[\"data-handle-color\"] = $(this).attr(\"data-handle-color\");\n                    }\n                    if ($(this).attr(\"data-wrapper-class\")) {\n                        attrList[\"data-wrapper-class\"] = $(this).attr(\"data-wrapper-class\");\n                    }\n                    if ($(this).attr(\"data-rail-color\")) {\n                        attrList[\"data-rail-color\"] = $(this).attr(\"data-rail-color\");\n                    }\n                    if ($(this).attr(\"data-always-visible\")) {\n                        attrList[\"data-always-visible\"] = $(this).attr(\"data-always-visible\");\n                    }\n                    if ($(this).attr(\"data-rail-visible\")) {\n                        attrList[\"data-rail-visible\"] = $(this).attr(\"data-rail-visible\");\n                    }\n\n                    $(this).slimScroll({\n                        wrapperClass: ($(this).attr(\"data-wrapper-class\") ? $(this).attr(\"data-wrapper-class\") : 'slimScrollDiv'),\n                        destroy: true\n                    });\n\n                    var the = $(this);\n\n                    // reassign custom attributes\n                    $.each(attrList, function(key, value) {\n                        the.attr(key, value);\n                    });\n\n                }\n            });\n        },\n\n        // function to scroll to the top\n        scrollTop: function() {\n            App.scrollTo();\n        },\n\n        // wrApper function to  block element(indicate loading)\n        blockUI: function(options) {\n            options = $.extend(true, {}, options);\n            var hdnContextPath = $(\"#hdnContextPath\").val();\n            var html = '';\n            if (options.animate) {\n                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\">' + '<div class=\"block-spinner-bar\"><div class=\"bounce1\"></div><div class=\"bounce2\"></div><div class=\"bounce3\"></div></div>' + '</div>';\n            } else if (options.iconOnly) {\n//                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + this.getGlobalImgPath() + 'loading-spinner-grey.gif\" align=\"\"></div>';\n                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + hdnContextPath + '/static/global/img/loading-spinner-grey.gif\" align=\"\"></div>';\n            } else if (options.textOnly) {\n                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><span>&nbsp;&nbsp;' + (options.message ? options.message : 'LOADING...') + '</span></div>';\n            } else {\n//                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + this.getGlobalImgPath() + 'loading-spinner-grey.gif\" align=\"\"><span>&nbsp;&nbsp;' + (options.message ? options.message : 'LOADING...') + '</span></div>';\n            \thtml = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + hdnContextPath + '/static/global/img/loading-spinner-grey.gif\" align=\"\"><span>&nbsp;&nbsp;' + (options.message ? options.message : '请稍后...') + '</span></div>';\n            }\n\n            if (options.target) { // element blocking\n                var el = $(options.target);\n                if (el.height() <= ($(window).height())) {\n                    options.cenrerY = true;\n                }\n                el.block({\n                    message: html,\n                    baseZ: options.zIndex ? options.zIndex : 1000,\n                    centerY: options.cenrerY !== undefined ? options.cenrerY : false,\n                    css: {\n                        top: '10%',\n                        border: '0',\n                        padding: '0',\n                        backgroundColor: 'none'\n                    },\n                    overlayCSS: {\n                        backgroundColor: options.overlayColor ? options.overlayColor : '#555',\n                        opacity: options.boxed ? 0.05 : 0.1,\n                        cursor: 'wait'\n                    }\n                });\n            } else { // page blocking\n                $.blockUI({\n                    message: html,\n                    baseZ: options.zIndex ? options.zIndex : 1000,\n                    css: {\n                        border: '0',\n                        padding: '0',\n                        backgroundColor: 'none'\n                    },\n                    overlayCSS: {\n                        backgroundColor: options.overlayColor ? options.overlayColor : '#555',\n                        opacity: options.boxed ? 0.05 : 0.1,\n                        cursor: 'wait'\n                    }\n                });\n            }\n        },\n\n        // wrApper function to  un-block element(finish loading)\n        unblockUI: function(target) {\n            if (target) {\n                $(target).unblock({\n                    onUnblock: function() {\n                        $(target).css('position', '');\n                        $(target).css('zoom', '');\n                    }\n                });\n            } else {\n                $.unblockUI();\n            }\n        },\n\n        startPageLoading: function(options) {\n            if (options && options.animate) {\n                $('.page-spinner-bar').remove();\n                $('body').append('<div class=\"page-spinner-bar\"><div class=\"bounce1\"></div><div class=\"bounce2\"></div><div class=\"bounce3\"></div></div>');\n            } else {\n                $('.page-loading').remove();\n                $('body').append('<div class=\"page-loading\"><img src=\"' + this.getGlobalImgPath() + 'loading-spinner-grey.gif\"/>&nbsp;&nbsp;<span>' + (options && options.message ? options.message : 'Loading...') + '</span></div>');\n            }\n        },\n\n        stopPageLoading: function() {\n            $('.page-loading, .page-spinner-bar').remove();\n        },\n\n        alert: function(options) {\n\n            options = $.extend(true, {\n                container: \"\", // alerts parent container(by default placed after the page breadcrumbs)\n                place: \"append\", // \"append\" or \"prepend\" in container \n                type: 'success', // alert's type\n                message: \"\", // alert's message\n                close: true, // make alert closable\n                reset: true, // close all previouse alerts first\n                focus: true, // auto scroll to the alert after shown\n                closeInSeconds: 0, // auto close after defined seconds\n                icon: \"\" // put icon before the message\n            }, options);\n\n            var id = App.getUniqueID(\"App_alert\");\n\n            var html = '<div id=\"' + id + '\" class=\"custom-alerts alert alert-' + options.type + ' fade in\">' + (options.close ? '<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\"></button>' : '') + (options.icon !== \"\" ? '<i class=\"fa-lg fa fa-' + options.icon + '\"></i>  ' : '') + options.message + '</div>';\n\n            if (options.reset) {\n                $('.custom-alerts').remove();\n            }\n\n            if (!options.container) {\n                if ($('.page-fixed-main-content').size() === 1) {\n                    $('.page-fixed-main-content').prepend(html);\n                } else if (($('body').hasClass(\"page-container-bg-solid\") || $('body').hasClass(\"page-content-white\")) && $('.page-head').size() === 0) {\n                    $('.page-title').after(html);\n                } else {\n                    if ($('.page-bar').size() > 0) {\n                        $('.page-bar').after(html);\n                    } else {\n                        $('.page-breadcrumb, .breadcrumbs').after(html);\n                    }\n                }\n            } else {\n                if (options.place == \"append\") {\n                    $(options.container).append(html);\n                } else {\n                    $(options.container).prepend(html);\n                }\n            }\n\n            if (options.focus) {\n                App.scrollTo($('#' + id));\n            }\n\n            if (options.closeInSeconds > 0) {\n                setTimeout(function() {\n                    $('#' + id).remove();\n                }, options.closeInSeconds * 1000);\n            }\n\n            return id;\n        },\n\n        //public function to initialize the fancybox plugin\n        initFancybox: function() {\n            handleFancybox();\n        },\n\n        //public helper function to get actual input value(used in IE9 and IE8 due to placeholder attribute not supported)\n        getActualVal: function(el) {\n            el = $(el);\n            if (el.val() === el.attr(\"placeholder\")) {\n                return \"\";\n            }\n            return el.val();\n        },\n\n        //public function to get a paremeter by name from URL\n        getURLParameter: function(paramName) {\n            var searchString = window.location.search.substring(1),\n                i, val, params = searchString.split(\"&\");\n\n            for (i = 0; i < params.length; i++) {\n                val = params[i].split(\"=\");\n                if (val[0] == paramName) {\n                    return unescape(val[1]);\n                }\n            }\n            return null;\n        },\n\n        // check for device touch support\n        isTouchDevice: function() {\n            try {\n                document.createEvent(\"TouchEvent\");\n                return true;\n            } catch (e) {\n                return false;\n            }\n        },\n\n        // To get the correct viewport width based on  http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\n        getViewPort: function() {\n            var e = window,\n                a = 'inner';\n            if (!('innerWidth' in window)) {\n                a = 'client';\n                e = document.documentElement || document.body;\n            }\n\n            return {\n                width: e[a + 'Width'],\n                height: e[a + 'Height']\n            };\n        },\n\n        getUniqueID: function(prefix) {\n            return 'prefix_' + Math.floor(Math.random() * (new Date()).getTime());\n        },\n\n        // check IE8 mode\n        isIE8: function() {\n            return isIE8;\n        },\n\n        // check IE9 mode\n        isIE9: function() {\n            return isIE9;\n        },\n\n        //check RTL mode\n        isRTL: function() {\n            return isRTL;\n        },\n\n        // check IE8 mode\n        isAngularJsApp: function() {\n            return (typeof angular == 'undefined') ? false : true;\n        },\n\n        getAssetsPath: function() {\n            return assetsPath;\n        },\n\n        setAssetsPath: function(path) {\n            assetsPath = path;\n        },\n\n        setGlobalImgPath: function(path) {\n            globalImgPath = path;\n        },\n\n        getGlobalImgPath: function() {\n            return assetsPath + globalImgPath;\n        },\n\n        setGlobalPluginsPath: function(path) {\n            globalPluginsPath = path;\n        },\n\n        getGlobalPluginsPath: function() {\n            return assetsPath + globalPluginsPath;\n        },\n\n        getGlobalCssPath: function() {\n            return assetsPath + globalCssPath;\n        },\n\n        // get layout color code by color name\n        getBrandColor: function(name) {\n            if (brandColors[name]) {\n                return brandColors[name];\n            } else {\n                return '';\n            }\n        },\n\n        getResponsiveBreakpoint: function(size) {\n            // bootstrap responsive breakpoints\n            var sizes = {\n                'xs' : 480,     // extra small\n                'sm' : 768,     // small\n                'md' : 992,     // medium\n                'lg' : 1200     // large\n            };\n\n            return sizes[size] ? sizes[size] : 0; \n        }\n    };\n\n}();\n\n\njQuery(document).ready(function() {    \n   App.init(); // init metronic core componets\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/global/scripts/datatable.js",
    "content": "/***\nWrapper/Helper Class for datagrid based on jQuery Datatable Plugin\n***/\nvar Datatable = function() {\n\n    var tableOptions; // main options\n    var dataTable; // datatable object\n    var table; // actual table jquery object\n    var tableContainer; // actual table container object\n    var tableWrapper; // actual table wrapper jquery object\n    var tableInitialized = false;\n    var ajaxParams = {}; // set filter mode\n    var the;\n\n    var countSelectedRecords = function() {\n        var selected = $('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]:checked', table).size();\n        var text = tableOptions.dataTable.language.metronicGroupActions;\n        if (selected > 0) {\n            $('.table-group-actions > span', tableWrapper).text(text.replace(\"_TOTAL_\", selected));\n        } else {\n            $('.table-group-actions > span', tableWrapper).text(\"\");\n        }\n    };\n\n    return {\n\n        //main function to initiate the module\n        init: function(options) {\n\n            if (!$().dataTable) {\n                return;\n            }\n\n            the = this;\n\n            // default settings\n            options = $.extend(true, {\n                src: \"\", // actual table  \n                filterApplyAction: \"filter\",\n                filterCancelAction: \"filter_cancel\",\n                resetGroupActionInputOnSuccess: true,\n                loadingMessage: 'Loading...',\n                dataTable: {\n                    \"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-responsive't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\", // datatable layout\n                    \"pageLength\": 10, // default records per page\n                    \"language\": { // language settings\n                        // metronic spesific\n                        \"metronicGroupActions\": \"_TOTAL_ records selected:  \",\n                        \"metronicAjaxRequestGeneralError\": \"Could not complete request. Please check your internet connection\",\n\n                        // data tables spesific\n                        \"lengthMenu\": \"<span class='seperator'>|</span>View _MENU_ records\",\n                        \"info\": \"<span class='seperator'>|</span>Found total _TOTAL_ records\",\n                        \"infoEmpty\": \"No records found to show\",\n                        \"emptyTable\": \"No data available in table\",\n                        \"zeroRecords\": \"No matching records found\",\n                        \"paginate\": {\n                            \"previous\": \"Prev\",\n                            \"next\": \"Next\",\n                            \"last\": \"Last\",\n                            \"first\": \"First\",\n                            \"page\": \"Page\",\n                            \"pageOf\": \"of\"\n                        }\n                    },\n\n                    \"orderCellsTop\": true,\n                    \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                        'orderable': false,\n                        'targets': [0]\n                    }],\n\n                    \"pagingType\": \"bootstrap_extended\", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended)\n                    \"autoWidth\": false, // disable fixed width and enable fluid table\n                    \"processing\": false, // enable/disable display message box on record load\n                    \"serverSide\": true, // enable/disable server side ajax loading\n\n                    \"ajax\": { // define ajax settings\n                        \"url\": \"\", // ajax URL\n                        \"type\": \"POST\", // request type\n                        \"timeout\": 20000,\n                        \"data\": function(data) { // add request parameters before submit\n                            $.each(ajaxParams, function(key, value) {\n                                data[key] = value;\n                            });\n                            App.blockUI({\n                                message: tableOptions.loadingMessage,\n                                target: tableContainer,\n                                overlayColor: 'none',\n                                cenrerY: true,\n                                boxed: true\n                            });\n                        },\n                        \"dataSrc\": function(res) { // Manipulate the data returned from the server\n                            if (res.customActionMessage) {\n                                App.alert({\n                                    type: (res.customActionStatus == 'OK' ? 'success' : 'danger'),\n                                    icon: (res.customActionStatus == 'OK' ? 'check' : 'warning'),\n                                    message: res.customActionMessage,\n                                    container: tableWrapper,\n                                    place: 'prepend'\n                                });\n                            }\n\n                            if (res.customActionStatus) {\n                                if (tableOptions.resetGroupActionInputOnSuccess) {\n                                    $('.table-group-action-input', tableWrapper).val(\"\");\n                                }\n                            }\n\n                            if ($('.group-checkable', table).size() === 1) {\n                                $('.group-checkable', table).attr(\"checked\", false);\n                            }\n\n                            if (tableOptions.onSuccess) {\n                                tableOptions.onSuccess.call(undefined, the, res);\n                            }\n\n                            App.unblockUI(tableContainer);\n\n                            return res.data;\n                        },\n                        \"error\": function() { // handle general connection errors\n                            if (tableOptions.onError) {\n                                tableOptions.onError.call(undefined, the);\n                            }\n\n                            App.alert({\n                                type: 'danger',\n                                icon: 'warning',\n                                message: tableOptions.dataTable.language.metronicAjaxRequestGeneralError,\n                                container: tableWrapper,\n                                place: 'prepend'\n                            });\n\n                            App.unblockUI(tableContainer);\n                        }\n                    },\n\n                    \"drawCallback\": function(oSettings) { // run some code on table redraw\n                        if (tableInitialized === false) { // check if table has been initialized\n                            tableInitialized = true; // set table initialized\n                            table.show(); // display table\n                        }\n                        countSelectedRecords(); // reset selected records indicator\n\n                        // callback for ajax data load\n                        if (tableOptions.onDataLoad) {\n                            tableOptions.onDataLoad.call(undefined, the);\n                        }\n                    }\n                }\n            }, options);\n\n            tableOptions = options;\n\n            // create table's jquery object\n            table = $(options.src);\n            tableContainer = table.parents(\".table-container\");\n\n            // apply the special class that used to restyle the default datatable\n            var tmp = $.fn.dataTableExt.oStdClasses;\n\n            $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + \" dataTables_extended_wrapper\";\n            $.fn.dataTableExt.oStdClasses.sFilterInput = \"form-control input-xs input-sm input-inline\";\n            $.fn.dataTableExt.oStdClasses.sLengthSelect = \"form-control input-xs input-sm input-inline\";\n\n            // initialize a datatable\n            dataTable = table.DataTable(options.dataTable);\n\n            // revert back to default\n            $.fn.dataTableExt.oStdClasses.sWrapper = tmp.sWrapper;\n            $.fn.dataTableExt.oStdClasses.sFilterInput = tmp.sFilterInput;\n            $.fn.dataTableExt.oStdClasses.sLengthSelect = tmp.sLengthSelect;\n\n            // get table wrapper\n            tableWrapper = table.parents('.dataTables_wrapper');\n\n            // build table group actions panel\n            if ($('.table-actions-wrapper', tableContainer).size() === 1) {\n                $('.table-group-actions', tableWrapper).html($('.table-actions-wrapper', tableContainer).html()); // place the panel inside the wrapper\n                $('.table-actions-wrapper', tableContainer).remove(); // remove the template container\n            }\n            // handle group checkboxes check/uncheck\n            $('.group-checkable', table).change(function() {\n                var set = table.find('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]');\n                var checked = $(this).prop(\"checked\");\n                $(set).each(function() {\n                    $(this).prop(\"checked\", checked);\n                });\n                countSelectedRecords();\n            });\n\n            // handle row's checkbox click\n            table.on('change', 'tbody > tr > td:nth-child(1) input[type=\"checkbox\"]', function() {\n                countSelectedRecords();\n            });\n\n            // handle filter submit button click\n            table.on('click', '.filter-submit', function(e) {\n                e.preventDefault();\n                the.submitFilter();\n            });\n\n            // handle filter cancel button click\n            table.on('click', '.filter-cancel', function(e) {\n                e.preventDefault();\n                the.resetFilter();\n            });\n        },\n\n        submitFilter: function() {\n            the.setAjaxParam(\"action\", tableOptions.filterApplyAction);\n\n            // get all typeable inputs\n            $('textarea.form-filter, select.form-filter, input.form-filter:not([type=\"radio\"],[type=\"checkbox\"])', table).each(function() {\n                the.setAjaxParam($(this).attr(\"name\"), $(this).val());\n            });\n\n            // get all checkboxes\n            $('input.form-filter[type=\"checkbox\"]:checked', table).each(function() {\n                the.addAjaxParam($(this).attr(\"name\"), $(this).val());\n            });\n\n            // get all radio buttons\n            $('input.form-filter[type=\"radio\"]:checked', table).each(function() {\n                the.setAjaxParam($(this).attr(\"name\"), $(this).val());\n            });\n\n            dataTable.ajax.reload();\n        },\n\n        resetFilter: function() {\n            $('textarea.form-filter, select.form-filter, input.form-filter', table).each(function() {\n                $(this).val(\"\");\n            });\n            $('input.form-filter[type=\"checkbox\"]', table).each(function() {\n                $(this).attr(\"checked\", false);\n            });\n            the.clearAjaxParams();\n            the.addAjaxParam(\"action\", tableOptions.filterCancelAction);\n            dataTable.ajax.reload();\n        },\n\n        getSelectedRowsCount: function() {\n            return $('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]:checked', table).size();\n        },\n\n        getSelectedRows: function() {\n            var rows = [];\n            $('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]:checked', table).each(function() {\n                rows.push($(this).val());\n            });\n\n            return rows;\n        },\n\n        setAjaxParam: function(name, value) {\n            ajaxParams[name] = value;\n        },\n\n        addAjaxParam: function(name, value) {\n            if (!ajaxParams[name]) {\n                ajaxParams[name] = [];\n            }\n\n            skip = false;\n            for (var i = 0; i < (ajaxParams[name]).length; i++) { // check for duplicates\n                if (ajaxParams[name][i] === value) {\n                    skip = true;\n                }\n            }\n\n            if (skip === false) {\n                ajaxParams[name].push(value);\n            }\n        },\n\n        clearAjaxParams: function(name, value) {\n            ajaxParams = {};\n        },\n\n        getDataTable: function() {\n            return dataTable;\n        },\n\n        getTableWrapper: function() {\n            return tableWrapper;\n        },\n\n        gettableContainer: function() {\n            return tableContainer;\n        },\n\n        getTable: function() {\n            return table;\n        }\n\n    };\n\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/global/scripts/cookie-consent.js",
    "content": "/**\nCookie consent init\n**/\n\nvar CookieConsent = function () {\n\n    var _init = function () {\n        $('.mt-cookie-consent-bar').cookieBar({ \n            closeButton : '.mt-cookie-consent-btn' \n        });\n    };\n\n    return {\n        init: function () {\n            _init();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {    \n       CookieConsent.init(); \n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/global/scripts/hor-timeline.js",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/global/scripts/quick-nav.js",
    "content": "var QuickNav = function () {\n\n    return {\n        init: function () {\n           \tif( $('.quick-nav').length > 0 ) {\n\t\t\t\tvar stretchyNavs = $('.quick-nav');\t\t\t\t\n\t\t\t\tstretchyNavs.each(function(){\n\t\t\t\t\tvar stretchyNav = $(this),\n\t\t\t\t\t\tstretchyNavTrigger = stretchyNav.find('.quick-nav-trigger');\n\t\t\t\t\t\n\t\t\t\t\tstretchyNavTrigger.on('click', function(event){\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tstretchyNav.toggleClass('nav-is-visible');\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$(document).on('click', function(event){\n\t\t\t\t\t( !$(event.target).is('.quick-nav-trigger') && !$(event.target).is('.quick-nav-trigger span') ) && stretchyNavs.removeClass('nav-is-visible');\n\t\t\t\t});\n\t\t\t}\n        }\n    };\n}();\n\nQuickNav.init(); // init metronic core componets"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/global/scripts/quick-sidebar.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\nvar QuickSidebar = function () {\n\n    // Handles quick sidebar toggler\n    var handleQuickSidebarToggler = function () {\n        // quick sidebar toggler\n        $('.dropdown-quick-sidebar-toggler a, .page-quick-sidebar-toggler, .quick-sidebar-toggler').click(function (e) {\n            $('body').toggleClass('page-quick-sidebar-open'); \n        });\n    };\n\n    // Handles quick sidebar chats\n    var handleQuickSidebarChat = function () {\n        var wrapper = $('.page-quick-sidebar-wrapper');\n        var wrapperChat = wrapper.find('.page-quick-sidebar-chat');\n\n        var initChatSlimScroll = function () {\n            var chatUsers = wrapper.find('.page-quick-sidebar-chat-users');\n            var chatUsersHeight;\n\n            chatUsersHeight = wrapper.height() - wrapper.find('.nav-tabs').outerHeight(true);\n\n            // chat user list \n            App.destroySlimScroll(chatUsers);\n            chatUsers.attr(\"data-height\", chatUsersHeight);\n            App.initSlimScroll(chatUsers);\n\n            var chatMessages = wrapperChat.find('.page-quick-sidebar-chat-user-messages');\n            var chatMessagesHeight = chatUsersHeight - wrapperChat.find('.page-quick-sidebar-chat-user-form').outerHeight(true);\n            chatMessagesHeight = chatMessagesHeight - wrapperChat.find('.page-quick-sidebar-nav').outerHeight(true);\n\n            // user chat messages \n            App.destroySlimScroll(chatMessages);\n            chatMessages.attr(\"data-height\", chatMessagesHeight);\n            App.initSlimScroll(chatMessages);\n        };\n\n        initChatSlimScroll();\n        App.addResizeHandler(initChatSlimScroll); // reinitialize on window resize\n\n        wrapper.find('.page-quick-sidebar-chat-users .media-list > .media').click(function () {\n            wrapperChat.addClass(\"page-quick-sidebar-content-item-shown\");\n        });\n\n        wrapper.find('.page-quick-sidebar-chat-user .page-quick-sidebar-back-to-list').click(function () {\n            wrapperChat.removeClass(\"page-quick-sidebar-content-item-shown\");\n        });\n\n        var handleChatMessagePost = function (e) {\n            e.preventDefault();\n\n            var chatContainer = wrapperChat.find(\".page-quick-sidebar-chat-user-messages\");\n            var input = wrapperChat.find('.page-quick-sidebar-chat-user-form .form-control');\n\n            var text = input.val();\n            if (text.length === 0) {\n                return;\n            }\n\n            var preparePost = function(dir, time, name, avatar, message) {\n                var tpl = '';\n                tpl += '<div class=\"post '+ dir +'\">';\n                tpl += '<img class=\"avatar\" alt=\"\" src=\"' + Layout.getLayoutImgPath() + avatar +'.jpg\"/>';\n                tpl += '<div class=\"message\">';\n                tpl += '<span class=\"arrow\"></span>';\n                tpl += '<a href=\"#\" class=\"name\">Bob Nilson</a>&nbsp;';\n                tpl += '<span class=\"datetime\">' + time + '</span>';\n                tpl += '<span class=\"body\">';\n                tpl += message;\n                tpl += '</span>';\n                tpl += '</div>';\n                tpl += '</div>';\n\n                return tpl;\n            };\n\n            // handle post\n            var time = new Date();\n            var message = preparePost('out', (time.getHours() + ':' + time.getMinutes()), \"Bob Nilson\", 'avatar3', text);\n            message = $(message);\n            chatContainer.append(message);\n\n            chatContainer.slimScroll({\n                scrollTo: '1000000px'\n            });\n\n            input.val(\"\");\n\n            // simulate reply\n            setTimeout(function(){\n                var time = new Date();\n                var message = preparePost('in', (time.getHours() + ':' + time.getMinutes()), \"Ella Wong\", 'avatar2', 'Lorem ipsum doloriam nibh...');\n                message = $(message);\n                chatContainer.append(message);\n\n                chatContainer.slimScroll({\n                    scrollTo: '1000000px'\n                });\n            }, 3000);\n        };\n\n        wrapperChat.find('.page-quick-sidebar-chat-user-form .btn').click(handleChatMessagePost);\n        wrapperChat.find('.page-quick-sidebar-chat-user-form .form-control').keypress(function (e) {\n            if (e.which == 13) {\n                handleChatMessagePost(e);\n                return false;\n            }\n        });\n    };\n\n    // Handles quick sidebar tasks\n    var handleQuickSidebarAlerts = function () {\n        var wrapper = $('.page-quick-sidebar-wrapper');\n\n        var initAlertsSlimScroll = function () {\n            var alertList = wrapper.find('.page-quick-sidebar-alerts-list');\n            var alertListHeight;\n\n            alertListHeight = wrapper.height() - 80 - wrapper.find('.nav-justified > .nav-tabs').outerHeight();\n\n            // alerts list \n            App.destroySlimScroll(alertList);\n            alertList.attr(\"data-height\", alertListHeight);\n            App.initSlimScroll(alertList);\n        };\n\n        initAlertsSlimScroll();\n        App.addResizeHandler(initAlertsSlimScroll); // reinitialize on window resize\n    };\n\n    // Handles quick sidebar settings\n    var handleQuickSidebarSettings = function () {\n        var wrapper = $('.page-quick-sidebar-wrapper');\n\n        var initSettingsSlimScroll = function () {\n            var settingsList = wrapper.find('.page-quick-sidebar-settings-list');\n            var settingsListHeight;\n\n            settingsListHeight = wrapper.height() - 80 - wrapper.find('.nav-justified > .nav-tabs').outerHeight();\n           \n            // alerts list \n            App.destroySlimScroll(settingsList);\n            settingsList.attr(\"data-height\", settingsListHeight);\n            App.initSlimScroll(settingsList);\n        };\n\n        initSettingsSlimScroll();\n        App.addResizeHandler(initSettingsSlimScroll); // reinitialize on window resize\n    };\n\n    return {\n\n        init: function () {\n            //layout handlers\n            handleQuickSidebarToggler(); // handles quick sidebar's toggler\n            handleQuickSidebarChat(); // handles quick sidebar's chats\n            handleQuickSidebarAlerts(); // handles quick sidebar's alerts\n            handleQuickSidebarSettings(); // handles quick sidebar's setting\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {    \n       QuickSidebar.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout/css/custom.css",
    "content": "/* 此文件用于覆盖原css */\n\n/* *,  */\nbody{font:13px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\nh1, h2, h3, h4, h5, h6, h7 {font:Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\n/* .page-content-wrapper { */\n/* \tmargin-top: -23px; */\n/* } */\n\n/* 必填项 */\n.field-required {\n\tcolor: red;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout/css/layout.css",
    "content": "@charset \"UTF-8\";\n/* Cubic Bezier Transition */\n@media print {\n  body {\n    background-color: #fff !important;\n    direction: ltr; }\n  .page-bar {\n    display: none; }\n  .page-sidebar-wrapper {\n    display: none; }\n  .page-quick-sidebar-wrapper {\n    display: none; }\n  .theme-panel {\n    display: none; }\n  .hidden-print {\n    display: none; }\n  .page-footer {\n    display: none; }\n  .no-page-break {\n    page-break-after: avoid; }\n  .page-container {\n    margin: 0px !important;\n    padding: 0px !important; }\n  .page-content {\n    padding: 0 !important;\n    min-height: 300px !important;\n    padding: 0px 20px 20px !important;\n    margin: 0 !important; }\n  .table th,\n  .table td {\n    text-align: left !important; } }\n\n/***\nPage Header\n***/\n.page-header.navbar {\n  width: 100%;\n  padding: 0 20px 0 20px;\n  margin: 0;\n  border: 0px;\n  padding: 0px;\n  box-shadow: none;\n  height: 50px;\n  min-height: 50px;\n  filter: none;\n  background-image: none;\n  /* Fixed header */\n  /* Header logo */\n  /* Search box */\n  /* Menu Toggler */\n  /* Top menu */ }\n  .page-header.navbar.navbar-fixed-top {\n    z-index: 9995; }\n  .page-header.navbar.navbar-static-top {\n    z-index: 9995; }\n  .page-header.navbar .page-logo {\n    float: left;\n    display: block;\n    width: 235px;\n    height: 50px;\n    padding-left: 20px;\n    padding-right: 20px; }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo {\n      padding: 0; }\n    .page-header.navbar .page-logo > .logo-image,\n    .page-header.navbar .page-logo > a {\n      display: inline-block;\n      float: left; }\n    .page-header.navbar .page-logo .logo-default {\n      margin: 18px 0 0 0; }\n    .page-header.navbar .page-logo .logo-mini {\n      display: none;\n      margin-left: 5px; }\n    .page-header.navbar .page-logo .text-logo {\n      padding-left: 20px;\n      padding-top: 12px; }\n  .page-header.navbar .search-form {\n    display: inline-block;\n    width: 50px;\n    position: relative;\n    float: left;\n    transition: all 0.6s; }\n    .page-header.navbar .search-form .input-group .form-control {\n      height: 50px;\n      border: 0;\n      background: transparent !important;\n      font-size: 13px;\n      padding-left: 0;\n      margin-left: 12px;\n      text-indent: -150000px; }\n      .page-header.navbar .search-form .input-group .form-control:hover {\n        cursor: pointer; }\n    .page-header.navbar .search-form .input-group .input-group-btn {\n      height: 50px; }\n      .page-header.navbar .search-form .input-group .input-group-btn .btn.submit {\n        margin-left: -24px;\n        padding: 0;\n        width: 50px;\n        background: none;\n        margin-top: 4px;\n        display: block; }\n        .page-header.navbar .search-form .input-group .input-group-btn .btn.submit > i {\n          font-size: 15px; }\n    .page-header.navbar .search-form.open {\n      transition: all 0.6s;\n      width: 300px !important; }\n      .page-header.navbar .search-form.open .input-group .form-control {\n        text-indent: 0; }\n        .page-header.navbar .search-form.open .input-group .form-control:hover {\n          cursor: text; }\n      .page-header.navbar .search-form.open .input-group .input-group-btn .btn.submit {\n        margin-left: 0; }\n  .page-header.navbar .menu-toggler {\n    cursor: pointer;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ;\n    display: block;\n    webkit-transition: opacity 0.3s;\n    -moz-transition: opacity 0.3s;\n    -ms-transition: opacity 0.3s;\n    -o-transition: opacity 0.3s;\n    transition: opacity 0.3s; }\n    .page-header.navbar .menu-toggler > span {\n      outline: none !important; }\n      .page-header.navbar .menu-toggler > span:hover {\n        background: #ffffff; }\n        .page-header.navbar .menu-toggler > span:hover:before, .page-header.navbar .menu-toggler > span:hover:after {\n          background: #ffffff; }\n    .page-header.navbar .menu-toggler > span,\n    .page-header.navbar .menu-toggler > span:before,\n    .page-header.navbar .menu-toggler > span:after {\n      display: inline-block;\n      width: 19px;\n      height: 1px;\n      background: #ffffff;\n      position: relative;\n      top: -6px;\n      transition: all ease .3s; }\n    .page-header.navbar .menu-toggler > span:before,\n    .page-header.navbar .menu-toggler > span:after {\n      position: absolute;\n      left: 0;\n      content: ''; }\n    .page-header.navbar .menu-toggler > span:before {\n      top: 6px; }\n    .page-header.navbar .menu-toggler > span:after {\n      top: -6px; }\n    .page-header.navbar .menu-toggler.th-toggle-exit > span {\n      background-color: transparent !important; }\n    .page-header.navbar .menu-toggler.th-toggle-exit > span:after {\n      webkit-transform: translateY(6px) rotateZ(45deg);\n      -moz-transform: translateY(6px) rotateZ(45deg);\n      -ms-transform: translateY(6px) rotateZ(45deg);\n      -o-transform: translateY(6px) rotateZ(45deg);\n      transform: translateY(6px) rotateZ(45deg); }\n    .page-header.navbar .menu-toggler.th-toggle-exit > span:before {\n      webkit-transform: translateY(-6px) rotateZ(-45deg);\n      -moz-transform: translateY(-6px) rotateZ(-45deg);\n      -ms-transform: translateY(-6px) rotateZ(-45deg);\n      -o-transform: translateY(-6px) rotateZ(-45deg);\n      transform: translateY(-6px) rotateZ(-45deg); }\n    .page-header.navbar .menu-toggler:hover {\n      webkit-transition: opacity 0.3s;\n      -moz-transition: opacity 0.3s;\n      -ms-transition: opacity 0.3s;\n      -o-transition: opacity 0.3s;\n      transition: opacity 0.3s;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .page-header.navbar .menu-toggler.sidebar-toggler {\n      float: right;\n      margin: 15.5px 0 0 0; }\n      .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .menu-toggler.sidebar-toggler {\n        margin-right: 13px; }\n    .page-header.navbar .menu-toggler.responsive-toggler {\n      display: none;\n      float: right;\n      margin: 15.5px 6px 0 6px; }\n  .page-header.navbar .top-menu {\n    margin: 0;\n    padding: 0;\n    float: right; }\n    .page-header.navbar .top-menu .navbar-nav {\n      padding: 0;\n      margin-right: 20px;\n      display: block;\n      /* Extended Dropdowns */\n      /* Notification */\n      /* Inbox */\n      /* Tasks */\n      /* User */\n      /* Language */\n      /* Dark version */ }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown {\n        margin: 0px;\n        padding: 0px 4px;\n        height: 50px;\n        display: inline-block; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown:last-child {\n          padding-right: 0px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle {\n          margin: 0px;\n          padding: 19px 10px 10px 10px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:last-child {\n            padding-right: 0; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i {\n            font-size: 17px; }\n            .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i.glyphicon {\n              font-size: 16px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > .badge {\n            font-family: \"Open Sans\", sans-serif;\n            position: absolute;\n            top: 10px;\n            right: 20px;\n            font-weight: 300;\n            padding: 3px 6px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus {\n            background: none; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu {\n          margin-top: 1px;\n          -webkit-border-radius: 4px;\n          -moz-border-radius: 4px;\n          -ms-border-radius: 4px;\n          -o-border-radius: 4px;\n          border-radius: 4px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu:before {\n            position: absolute;\n            top: -7px;\n            right: 9px;\n            display: inline-block !important;\n            border-right: 7px solid transparent;\n            border-bottom: 7px solid #eee;\n            border-left: 7px solid transparent;\n            border-bottom-color: rgba(0, 0, 0, 0.2);\n            content: ''; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu:after {\n            position: absolute;\n            top: -6px;\n            right: 10px;\n            display: inline-block !important;\n            border-right: 6px solid transparent;\n            border-bottom: 6px solid #fff;\n            border-left: 6px solid transparent;\n            content: ''; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu > li > a {\n            color: #555; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu {\n        min-width: 160px;\n        max-width: 275px;\n        width: 275px;\n        z-index: 9995;\n        /* header notifications dropdowns */ }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n          display: block;\n          overflow: hidden;\n          padding: 15px 15px;\n          letter-spacing: 0.5px;\n          -webkit-border-radius: 4px 4px 0 0;\n          -moz-border-radius: 4px 4px 0 0;\n          -ms-border-radius: 4px 4px 0 0;\n          -o-border-radius: 4px 4px 0 0;\n          border-radius: 4px 4px 0 0; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n            margin: 0;\n            padding: 0;\n            float: left;\n            font-size: 13px;\n            display: inline-block; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n            display: inline-block;\n            padding: 0;\n            background: none;\n            clear: inherit;\n            font-size: 13px;\n            font-weight: 300;\n            position: absolute;\n            right: 10px;\n            border: 0;\n            margin-top: -1px; }\n            .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n              text-decoration: none; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list {\n          padding-right: 0 !important;\n          padding-left: 0;\n          list-style: none; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n            display: block;\n            clear: both;\n            font-weight: 300;\n            line-height: 20px;\n            white-space: normal;\n            font-size: 13px;\n            padding: 16px 15px 18px;\n            text-shadow: none; }\n            .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n              opacity: 1 ;\n              filter: alpha(opacity=100) ;\n              text-decoration: none; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li:first-child a {\n            border-top: none; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details {\n        overflow: hidden; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon {\n          margin-right: 10px;\n          -webkit-border-radius: 50%;\n          -moz-border-radius: 50%;\n          -ms-border-radius: 50%;\n          -o-border-radius: 50%;\n          border-radius: 50%; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon i {\n            margin-right: 2px;\n            margin-left: 1px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon .badge {\n            right: 15px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .time {\n        float: right;\n        max-width: 75px;\n        font-size: 11px;\n        font-weight: 400;\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ;\n        text-align: right;\n        padding: 1px 5px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo {\n        float: left;\n        margin: 0 6px 6px 0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo img {\n          height: 40px;\n          width: 40px;\n          -webkit-border-radius: 50% !important;\n          -moz-border-radius: 50% !important;\n          -ms-border-radius: 50% !important;\n          -o-border-radius: 50% !important;\n          border-radius: 50% !important; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject {\n        display: block;\n        margin-left: 46px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .from {\n          font-size: 13px;\n          font-weight: 600; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .time {\n          font-size: 12px;\n          font-weight: 400;\n          opacity: 0.5 ;\n          filter: alpha(opacity=50) ;\n          float: right; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .message {\n        display: block !important;\n        font-size: 12px;\n        line-height: 1.3;\n        margin-left: 46px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task {\n        margin-bottom: 5px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .desc {\n          font-size: 13px;\n          font-weight: 300; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .percent {\n          float: right;\n          font-weight: 600;\n          display: inline-block; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress {\n        display: block;\n        height: 8px;\n        margin: 8px 0 2px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress .progress-bar {\n          box-shadow: none; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n        padding: 16px 6px 13px 8px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > .username {\n          display: inline-block;\n          font-size: 13px;\n          font-weight: 300; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > img {\n          float: left;\n          margin-top: -5px;\n          margin-right: 5px;\n          height: 29px;\n          display: inline-block; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > i {\n          display: inline-block;\n          margin-top: 5px;\n          margin: 0;\n          font-size: 13px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu {\n        width: 175px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a {\n          font-size: 14px;\n          font-weight: 300; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a i {\n            width: 15px;\n            display: inline-block;\n            margin-right: 9px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a .badge {\n            margin-right: 10px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-language {\n        padding-left: 0;\n        padding-right: 0;\n        margin: 0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle {\n          padding: 16px 3px 13px 7px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > img {\n            margin-bottom: 2px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > i {\n            font-size: 14px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a {\n          font-size: 13px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a > img {\n            margin-bottom: 2px;\n            margin-right: 5px; }\n      .page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before {\n        border-left: none;\n        border-right: none; }\n      .page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list > li.external a {\n        background: none !important;\n        border: none !important; }\n\n/* Allow expanded search for above 768px */\n@media (min-width: 768px) {\n  /* 768px */\n  .page-header.navbar {\n    /* Search box */ }\n    .page-header.navbar .search-form.search-form-expanded {\n      width: 200px; }\n      .page-header.navbar .search-form.search-form-expanded .input-group .form-control {\n        text-indent: 0; }\n        .page-header.navbar .search-form.search-form-expanded .input-group .form-control:hover {\n          cursor: text; }\n      .page-header.navbar .search-form.search-form-expanded .input-group .input-group-btn .btn.submit {\n        margin-left: 0; } }\n\n/*** \nHorizontal Menu \n***/\n.page-header.navbar {\n  /* Header container */\n  /* Mega menu */ }\n  .page-header.navbar .container {\n    position: relative; }\n  .page-header.navbar .hor-menu {\n    margin: 0 0 0 -17px;\n    margin: 0;\n    float: left; }\n    .page-header.navbar .hor-menu .navbar-nav {\n      min-height: 50px;\n      position: static;\n      /* Mega menu */\n      /* Mega Menu Dropdown */\n      /* Classic menu */ }\n      .page-header.navbar .hor-menu .navbar-nav.navbar-right .dropdown-menu {\n        left: auto;\n        right: 0; }\n      .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown {\n        position: static; }\n        .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n          left: auto;\n          width: auto; }\n          .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content {\n            font-family: \"Open Sans\", sans-serif;\n            padding: 15px;\n            margin: 0; }\n            .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content.mega-menu-responsive-content {\n              padding: 10px 18px 10px 45px; }\n            .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu {\n              padding: 0;\n              margin: 0; }\n              .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu:last-child {\n                border-right: 0; }\n              .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li {\n                margin: 0 !important;\n                list-style: none; }\n                .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n                  margin-top: 5px;\n                  padding-left: 6px;\n                  font-size: 15px;\n                  font-weight: 400; }\n                .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a {\n                  display: block;\n                  white-space: normal;\n                  font-family: \"Open Sans\", sans-serif;\n                  padding: 7px;\n                  margin: 0;\n                  font-size: 14px;\n                  font-weight: 300; }\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a:hover {\n                    text-decoration: none; }\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify {\n                    padding: 7px 7px 7px 30px; }\n                    .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify > i {\n                      position: absolute;\n                      top: auto !important;\n                      margin-left: -24px;\n                      font-size: 15px;\n                      margin-top: 3px !important; }\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .badge,\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .label {\n                    margin-left: 5px; }\n        .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown.mega-menu-full .dropdown-menu {\n          left: 20px;\n          right: 20px; }\n        .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown:hover > .dropdown-menu {\n          display: block; }\n      .page-header.navbar .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:after, .page-header.navbar .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:before {\n        display: none !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li > a {\n        font-size: 14px;\n        font-weight: 400;\n        padding: 13px 13px;\n        min-height: 50px; }\n        .page-header.navbar .hor-menu .navbar-nav > li > a:focus {\n          background: none !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li.current .selected, .page-header.navbar .hor-menu .navbar-nav > li.active .selected {\n        left: 50%;\n        bottom: 0;\n        position: absolute;\n        border-left: 6px solid transparent;\n        border-right: 6px solid transparent;\n        border-top: 6px solid transparent;\n        display: inline-block;\n        margin: 0;\n        width: 0;\n        height: 0px;\n        margin-left: -7px;\n        margin-bottom: -6px; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu {\n        margin-top: 0;\n        border: none; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a {\n          font-family: \"Open Sans\", sans-serif;\n          font-size: 14px;\n          font-weight: 300;\n          padding: 9px 10px;\n          white-space: normal; }\n          .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a .label,\n          .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a .badge {\n            font-weight: 300; }\n      .page-header.navbar .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu {\n        min-width: 195px;\n        max-width: 235px; }\n      .page-header.navbar .hor-menu .navbar-nav > li.classic-menu-dropdown:hover > .dropdown-menu {\n        display: block; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-submenu > .dropdown-menu {\n        top: 0; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n        top: 9px;\n        right: 10px; }\n\n/* Form medium devices upto large devices */\n@media (min-width: 992px) and (max-width: 1200px) {\n  /* 992px 1200px */\n  /* Boxed layout */\n  .page-boxed .page-header.navbar {\n    /* Top menu */ }\n    .page-boxed .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile {\n      display: none; }\n    .page-boxed .page-header.navbar .top-menu .navbar-nav > li.dropdown-language .dropdown-toggle .langname {\n      display: none; } }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Page header */\n  .page-header.navbar {\n    /* Header logo */ }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo {\n      padding: 0; }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo {\n      width: 45px; }\n      .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo .logo-default {\n        display: none; }\n  /* Boxed Layout */\n  .page-boxed .page-header.navbar {\n    /* Page logo */\n    /* Top menu */ }\n    .page-boxed .page-header.navbar .page-logo {\n      width: 236px; }\n    .page-boxed .page-header.navbar .top-menu .navbar-nav {\n      margin-right: 0px; }\n  /* Sidebar closed & logo hidden */\n  .page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar {\n    /* Page logo */ }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar .page-logo {\n      width: 46px; }\n  /* Boxed layout & page sidebar fixed layout */\n  .page-boxed.page-sidebar-fixed .page-header.navbar {\n    /* Page logo */ }\n    .page-boxed.page-sidebar-fixed .page-header.navbar .page-logo {\n      width: 235px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Page header */\n  .page-header.navbar {\n    padding: 0 20px 0 20px;\n    position: relative;\n    clear: both;\n    /* Page logo */\n    /* Menu Toggler */\n    /* Top Menu */ }\n    .page-header.navbar .page-logo {\n      width: auto;\n      padding: 0;\n      margin-right: 10px;\n      margin-left: 0px !important;\n      padding-left: 0px !important; }\n      .page-header.navbar .page-logo img {\n        margin-left: 4px !important; }\n    .page-header.navbar .menu-toggler.sidebar-toggler {\n      display: none !important; }\n    .page-header.navbar .menu-toggler.responsive-toggler {\n      display: block; }\n    .page-header.navbar .top-menu .navbar-nav {\n      display: inline-block;\n      margin: 0 10px 0 0; }\n      .page-header.navbar .top-menu .navbar-nav > li {\n        float: left; }\n      .page-header.navbar .top-menu .navbar-nav .nav li.dropdown i {\n        display: inline-block;\n        position: relative;\n        top: 1px;\n        right: 0px; }\n      .page-header.navbar .top-menu .navbar-nav .open .dropdown-menu {\n        position: absolute; }\n  /* Fixed header for mobile */\n  .page-header-fixed.page-header-fixed-mobile .navbar-fixed-top {\n    position: fixed; }\n  /* Boxed Layout */\n  .page-boxed .page-header.navbar > .container {\n    max-width: none !important;\n    margin: 0 !important;\n    padding: 0 !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  /* 768px & 991px */\n  /* Boxed Layout */\n  .page-boxed .page-header.navbar {\n    margin: auto !important;\n    padding: 0; }\n    .page-boxed .page-header.navbar > .container {\n      margin: auto !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  /* Page header */\n  .page-header.navbar {\n    padding: 0 10px 0 10px;\n    /* Header logo */\n    /* Search box */\n    /* Top navigation menu*/ }\n    .page-header.navbar .page-logo {\n      width: auto; }\n    .page-header.navbar .search-form.open {\n      z-index: 3;\n      left: 10px;\n      right: 10px;\n      position: absolute;\n      width: auto !important; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended > .dropdown-menu {\n      max-width: 255px;\n      width: 255px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu {\n      margin-right: -190px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu:after, .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu:before {\n        margin-right: 190px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu {\n      margin-right: -150px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu:after, .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu:before {\n        margin-right: 150px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu {\n      margin-right: -110px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu:after, .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu:before {\n        margin-right: 110px; } }\n\n@media (max-width: 580px) {\n  /* Page header */\n  .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile {\n    display: none; }\n  .page-header.navbar .top-menu .navbar-nav > li.dropdown-language .dropdown-toggle .langname {\n    display: none; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  /* Fixed header for mobile */\n  .page-header-fixed.page-header-fixed-mobile .page-header.navbar {\n    height: 100px; }\n  .page-header.navbar {\n    /* Top menu */ }\n    .page-header.navbar .top-menu {\n      display: block;\n      clear: both;\n      float: none; }\n      .page-header.navbar .top-menu .navbar-nav {\n        margin-right: 0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle {\n          padding: 19px 6px 10px 6px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-language .dropdown-toggle {\n          padding: 16px 4px 13px 2px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          padding: 16px 0px 13px 2px; } }\n\n/***\nPace - Page Progress\n***/\n.pace .pace-progress {\n  z-index: 10005;\n  top: 50px;\n  height: 2px;\n  box-shadow: none; }\n\n.pace .pace-progress-inner {\n  box-shadow: none; }\n\n.pace .pace-inactive {\n  display: none; }\n\n.pace .pace-activity {\n  top: 54px;\n  z-index: 10005;\n  right: 20px;\n  border-radius: 10px !important; }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header-fixed .pace .pace-progress {\n    top: 100px; }\n  .page-header-fixed .pace .pace-activity {\n    top: 104px; } }\n\n/***\nPage container\n***/\n.page-container {\n  margin: 0px;\n  padding: 0px;\n  position: relative;\n  /* Fixed header */\n  /* Fixed footer for mobile */ }\n  .page-container:before, .page-container:after {\n    content: \" \";\n    display: table; }\n  .page-container:after {\n    clear: both; }\n  .page-header-fixed .page-container {\n    margin-top: 50px; }\n  .page-footer-fixed.page-footer-fixed-mobile .page-container {\n    margin-bottom: 20px !important; }\n\n@media (min-width: 992px) {\n  /* Page container in fixed footer */\n  .page-footer-fixed .page-container {\n    margin-bottom: 20px !important; } }\n\n@media (max-width: 991px) {\n  /* Page container */\n  .page-container {\n    margin: 0 !important;\n    padding: 0 !important; }\n    .page-header-fixed.page-header-fixed-mobile .page-container {\n      margin-top: 50px !important; } }\n\n@media (max-width: 480px) {\n  /* Page container */\n  .page-header-fixed.page-header-fixed-mobile .page-container {\n    margin-top: 100px !important; } }\n\n/***\nPage sidebar\n***/\n/* Page Sidebar */\n.page-sidebar,\n.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover {\n  /* Default sidebar menu */\n  /* light sidebar menu */ }\n  .page-sidebar.navbar-collapse,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover.navbar-collapse {\n    padding: 0;\n    box-shadow: none; }\n  .page-sidebar .page-sidebar-menu,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu {\n    list-style: none;\n    margin: 0;\n    padding: 0;\n    /* 1st level links */\n    /* all links */ }\n    .page-sidebar .page-sidebar-menu > li,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li {\n      display: block;\n      margin: 0;\n      padding: 0;\n      border: 0px; }\n      .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper {\n        border: 0 !important; }\n        .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper:before, .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper:after, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper:before, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper:before,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper:before,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper:after {\n          content: \" \";\n          display: table; }\n        .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper:after, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper:after {\n          clear: both; }\n      .page-sidebar .page-sidebar-menu > li.start > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.start > a {\n        border-top-color: transparent !important; }\n      .page-sidebar .page-sidebar-menu > li.last > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.last > a {\n        border-bottom-color: transparent !important; }\n      .page-sidebar .page-sidebar-menu > li > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a {\n        display: block;\n        position: relative;\n        margin: 0;\n        border: 0px;\n        padding: 10px 15px;\n        text-decoration: none;\n        font-size: 14px;\n        font-weight: 300; }\n        .page-sidebar .page-sidebar-menu > li > a > i,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i {\n          font-size: 16px;\n          margin-right: 5px;\n          text-shadow: none; }\n        .page-sidebar .page-sidebar-menu > li > a > i.glyphicon,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i.glyphicon {\n          margin-left: 1px;\n          margin-right: 4px; }\n        .page-sidebar .page-sidebar-menu > li > a > [class^=\"icon-\"],\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > [class^=\"icon-\"] {\n          margin-left: 1px;\n          margin-right: 4px; }\n        .page-sidebar-fixed .page-sidebar .page-sidebar-menu > li > a, .page-sidebar-fixed\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a {\n          transition: all 0.2s ease; }\n        .page-sidebar-reversed.page-sidebar-fixed .page-sidebar .page-sidebar-menu > li > a, .page-sidebar-reversed.page-sidebar-fixed\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a {\n          transition: none; }\n      .page-sidebar .page-sidebar-menu > li.heading,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading {\n        padding: 15px 15px 15px 15px; }\n        .page-sidebar .page-sidebar-menu > li.heading > h3,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading > h3 {\n          margin: 0;\n          padding: 0;\n          font-size: 14px;\n          font-weight: 300; }\n      .page-sidebar .page-sidebar-menu > li.heading + li > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading + li > a {\n        border-top: 0; }\n      .page-sidebar .page-sidebar-menu > li.open > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a {\n        font-size: 14px; }\n      .page-sidebar .page-sidebar-menu > li.active > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a {\n        border: none;\n        text-shadow: none;\n        font-size: 14px; }\n        .page-sidebar .page-sidebar-menu > li.active > a > .selected,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n          display: block;\n          background-image: none;\n          /* will be set in a theme css file*/\n          float: right;\n          position: absolute;\n          right: 0px;\n          top: 8px;\n          background: none;\n          width: 0;\n          height: 0;\n          border-top: 12px solid transparent;\n          border-bottom: 12px solid transparent;\n          border-right: 12px solid #ffffff; }\n          .page-sidebar-reversed .page-sidebar .page-sidebar-menu > li.active > a > .selected, .page-sidebar-reversed\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n            right: auto;\n            left: 0;\n            border-right: 0;\n            border-left: 8px solid #ffffff; }\n          .page-container-bg-solid .page-sidebar .page-sidebar-menu > li.active > a > .selected, .page-container-bg-solid\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n            border-color: transparent #eef1f5 transparent transparent; }\n          .page-container-bg-solid.page-sidebar-reversed .page-sidebar .page-sidebar-menu > li.active > a > .selected, .page-container-bg-solid.page-sidebar-reversed\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n            border-color: transparent transparent transparent #eef1f5; }\n    .page-sidebar .page-sidebar-menu li > a,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a {\n      position: relative; }\n      .page-sidebar .page-sidebar-menu li > a > .arrow:before,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow:before {\n        float: right;\n        width: 20px;\n        text-align: center;\n        display: inline;\n        font-size: 16px;\n        font-family: FontAwesome;\n        height: auto;\n        content: \"\\f104\";\n        font-weight: 300;\n        text-shadow: none;\n        position: absolute;\n        top: 4px;\n        right: 14px; }\n      .page-sidebar .page-sidebar-menu li > a > .arrow.open:before,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow.open:before {\n        content: \"\\f107\"; }\n      .page-sidebar .page-sidebar-menu li > a > .badge,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .badge {\n        float: right;\n        margin-top: 1px;\n        margin-right: 0px;\n        position: absolute;\n        right: 14px;\n        top: 6px; }\n    .page-sidebar .page-sidebar-menu > li > a > .arrow:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > .arrow:before {\n      top: 8px; }\n    .page-sidebar .page-sidebar-menu .sub-menu,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu {\n      list-style: none;\n      display: none;\n      padding: 0;\n      margin: 8px 0px 8px 0px; }\n      .page-sidebar .page-sidebar-menu .sub-menu li,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li {\n        background: none;\n        margin: 0px;\n        padding: 0px;\n        margin-top: 1px !important;\n        /* 2nd level sub menu */ }\n        .page-sidebar .page-sidebar-menu .sub-menu li > a,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > a {\n          display: block;\n          margin: 0;\n          padding: 6px 15px 6px 43px;\n          text-decoration: none;\n          font-size: 14px;\n          font-weight: 300;\n          background: none; }\n          .page-sidebar .page-sidebar-menu .sub-menu li > a > i,\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > a > i {\n            font-size: 14px; }\n        .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu {\n          margin: 0; }\n          .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li,\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li {\n            /* 3rd level sub menu */ }\n            .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li > a,\n            .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li > a {\n              padding-left: 60px; }\n            .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu,\n            .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu {\n              margin: 0; }\n              .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu > li > a,\n              .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu > li > a {\n                padding-left: 80px; }\n      .page-sidebar .page-sidebar-menu .sub-menu.always-open,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu.always-open {\n        display: block; }\n    .page-sidebar .page-sidebar-menu li.active > .sub-menu,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active > .sub-menu {\n      display: block; }\n  .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li > a,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li > a {\n    border: 0;\n    margin: 0;\n    padding-left: 11px;\n    border-left: 4px solid transparent; }\n  .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu {\n    margin: 0;\n    padding: 1px 0; }\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li > a,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li > a {\n      padding-top: 8px;\n      padding-bottom: 8px; }\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li:first-child,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li:first-child {\n      margin-top: 0 !important; }\n  .page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li > a, .page-sidebar-reversed\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li > a {\n    padding-left: 15px;\n    padding-right: 11px;\n    border-left: 0;\n    border-right: 4px solid transparent; }\n  .page-sidebar .sidebar-toggler,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler {\n    webkit-transition: opacity 0.3s;\n    -moz-transition: opacity 0.3s;\n    -ms-transition: opacity 0.3s;\n    -o-transition: opacity 0.3s;\n    transition: opacity 0.3s;\n    display: block;\n    cursor: pointer;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ;\n    padding: 6px 8px;\n    margin-top: 15px;\n    margin-right: 16px;\n    float: right;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .page-sidebar .sidebar-toggler > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span {\n      outline: none !important; }\n      .page-sidebar .sidebar-toggler > span:hover,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover {\n        background: #ffffff; }\n        .page-sidebar .sidebar-toggler > span:hover:before, .page-sidebar .sidebar-toggler > span:hover:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:before,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:after {\n          background: #ffffff; }\n    .page-sidebar .sidebar-toggler > span,\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar .sidebar-toggler > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after {\n      display: inline-block;\n      width: 16px;\n      height: 1px;\n      background: #ffffff;\n      position: relative;\n      top: -5px;\n      transition: all ease .3s; }\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar .sidebar-toggler > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after {\n      position: absolute;\n      left: 0;\n      content: ''; }\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before {\n      top: 5px; }\n    .page-sidebar .sidebar-toggler > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after {\n      top: -5px; }\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span {\n      background-color: transparent !important; }\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span:after {\n      webkit-transform: translateY(5px) rotateZ(45deg);\n      -moz-transform: translateY(5px) rotateZ(45deg);\n      -ms-transform: translateY(5px) rotateZ(45deg);\n      -o-transform: translateY(5px) rotateZ(45deg);\n      transform: translateY(5px) rotateZ(45deg); }\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span:before {\n      webkit-transform: translateY(-5px) rotateZ(-45deg);\n      -moz-transform: translateY(-5px) rotateZ(-45deg);\n      -ms-transform: translateY(-5px) rotateZ(-45deg);\n      -o-transform: translateY(-5px) rotateZ(-45deg);\n      transform: translateY(-5px) rotateZ(-45deg); }\n    .page-sidebar .sidebar-toggler:hover,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover {\n      webkit-transition: opacity 0.3s;\n      -moz-transition: opacity 0.3s;\n      -ms-transition: opacity 0.3s;\n      -o-transition: opacity 0.3s;\n      transition: opacity 0.3s;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n  .page-sidebar .sidebar-search,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search {\n    padding: 0;\n    margin: 22px 18px 22px 18px; }\n    .page-sidebar .sidebar-search .remove,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove {\n      display: none; }\n      .page-sidebar .sidebar-search .remove > i,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove > i {\n        font-size: 16px; }\n    .page-sidebar .sidebar-search .input-group,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n      .page-sidebar .sidebar-search .input-group .form-control,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control {\n        border: 0;\n        font-size: 14px;\n        padding: 0;\n        height: auto;\n        line-height: auto;\n        -webkit-border-radius: 4px;\n        -moz-border-radius: 4px;\n        -ms-border-radius: 4px;\n        -o-border-radius: 4px;\n        border-radius: 4px; }\n      .page-sidebar .sidebar-search .input-group .input-group-btn .btn,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn {\n        padding: 2px 0 0 0;\n        background-color: transparent;\n        background-repeat: no-repeat;\n        background-position: 100% 3px; }\n        .page-sidebar .sidebar-search .input-group .input-group-btn .btn > i,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn > i {\n          font-size: 15px; }\n  .page-sidebar .sidebar-search.sidebar-search-bordered,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered {\n    margin: 25px 18px 25px 18px; }\n    .page-sidebar .sidebar-search.sidebar-search-bordered .input-group .form-control,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .form-control {\n      font-size: 13px;\n      padding: 6px 8px; }\n    .page-sidebar .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn {\n      margin-right: 6px; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .page-sidebar {\n    width: 235px;\n    float: left;\n    position: relative;\n    margin-right: -100%; }\n    .page-full-width .page-sidebar {\n      display: none !important; }\n    .page-sidebar.collapse {\n      display: block;\n      max-height: none !important; }\n  .page-sidebar-reversed .page-sidebar {\n    float: right;\n    margin-right: 0;\n    margin-left: -100%; }\n  .page-sidebar-reversed.page-sidebar-fixed .page-sidebar {\n    margin-left: -235px; }\n  .page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper {\n    position: relative;\n    float: right; }\n  .page-sidebar-fixed .page-sidebar {\n    position: fixed !important;\n    margin-left: 0;\n    top: 50px; }\n  .page-sidebar-fixed .page-sidebar-menu > li.last {\n    margin-bottom: 15px !important; }\n  .page-sidebar-fixed .page-sidebar-menu .sub-menu {\n    height: auto !important; }\n  /* Sidebar Closed */\n  .page-sidebar-closed .page-sidebar {\n    width: 45px !important; }\n    .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed {\n      /* sidebar */\n      width: 45px !important;\n      /* sidebar toggler */\n      /* sidebar search */\n      /* sidebar bordered search */\n      /* sidebar search expanded */\n      /* sidebar bordered search expanded */ }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li {\n        /* hide opened sub menu */ }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.open > .sub-menu,\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > .sub-menu {\n          display: none !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover {\n          width: 256px !important;\n          position: relative !important;\n          z-index: 10000;\n          display: block !important; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a {\n            -webkit-border-radius: 0 4px 0 0;\n            -moz-border-radius: 0 4px 0 0;\n            -ms-border-radius: 0 4px 0 0;\n            -o-border-radius: 0 4px 0 0;\n            border-radius: 0 4px 0 0; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > i {\n              margin-right: 10px; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .title {\n              display: inline !important;\n              padding-left: 15px; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .badge {\n              display: block !important; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .selected {\n              display: none; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover.heading {\n            width: 45px !important;\n            box-shadow: none; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu {\n            width: 210px;\n            position: absolute;\n            z-index: 2000;\n            left: 46px;\n            margin-top: 0;\n            top: 100%;\n            display: block !important;\n            -webkit-border-radius: 0 0 4px 4px;\n            -moz-border-radius: 0 0 4px 4px;\n            -ms-border-radius: 0 0 4px 4px;\n            -o-border-radius: 0 0 4px 4px;\n            border-radius: 0 0 4px 4px; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu > li > a {\n              padding-left: 15px !important; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu > li > .sub-menu > li > a {\n              padding-left: 30px !important; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu > li > .sub-menu > li > .sub-menu > li > a {\n              padding-left: 45px !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.heading > h3 {\n          display: none; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-toggler-wrapper .sidebar-toggler {\n          margin-right: 8px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-toggler-wrapper:hover {\n          width: 45px !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-search-wrapper:hover {\n          width: 45px !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a {\n          padding-left: 11px; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a .selected {\n            right: -3px !important; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a > .badge,\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a > .title,\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a > .arrow {\n            display: none !important; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-toggler {\n        margin-left: 3px;\n        margin-right: 3px; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group {\n        border-color: transparent;\n        margin-left: -4px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .form-control {\n          display: none; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .input-group-btn .btn {\n          display: block; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.sidebar-search-bordered .input-group {\n        padding: 5px 0 3px 0; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open {\n        height: 40px;\n        margin-top: 15px;\n        margin-bottom: 14px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group {\n          width: 210px;\n          position: relative;\n          z-index: 1;\n          margin-left: 24px;\n          padding: 0; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .form-control {\n            background: none;\n            border: 0;\n            display: block;\n            padding: 8px 8px; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn {\n            display: block;\n            margin-right: 8px;\n            margin-top: 1px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove {\n          background-repeat: no-repeat;\n          width: 11px;\n          height: 11px;\n          margin: 10px -5px 8px -7px;\n          display: block;\n          float: left; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered {\n        height: 38px;\n        margin-top: 23px;\n        margin-bottom: 23px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered .input-group {\n          padding: 0; }\n    .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed > li > a {\n      padding-right: 11px;\n      padding-left: 7px; }\n  .page-sidebar-closed.page-sidebar-reversed .page-sidebar {\n    margin-left: -45px;\n    width: 45px; }\n    .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed {\n      /* sidebar */\n      /* sidebar search */ }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > .sub-menu {\n        left: auto;\n        right: 46px; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover {\n        margin-left: -211px; }\n        .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a {\n          -webkit-border-radius: 4px 0 0 0;\n          -moz-border-radius: 4px 0 0 0;\n          -ms-border-radius: 4px 0 0 0;\n          -o-border-radius: 4px 0 0 0;\n          border-radius: 4px 0 0 0; }\n          .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .title {\n            padding-left: 0;\n            padding-right: 15px; }\n          .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > i {\n            margin-right: 0;\n            margin-left: 2px; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-search-wrapper:hover, .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-toggler-wrapper:hover {\n        margin-left: 0; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group {\n        margin-left: -227px; }\n        .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn {\n          margin-right: 10px !important; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove {\n        margin: 9px 4px 12px -16px  !important;\n        float: right !important; }\n    .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed > li > a {\n      padding-right: 7px;\n      padding-left: 11px; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover {\n    width: 235px !important;\n    display: block;\n    z-index: 10000; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu {\n      width: 235px !important; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .selected {\n        display: none !important; }\n  .page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover {\n    width: 235px !important;\n    z-index: 10000;\n    margin-left: -235px !important; }\n    .page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover .page-sidebar-menu {\n      width: 235px !important; }\n  .page-sidebar-closed.page-sidebar-hide .page-sidebar {\n    display: none !important; }\n  /* Sidebar Menu Wirh Hoverable Submenu */\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu {\n    display: none;\n    width: 210px;\n    z-index: 2000;\n    position: absolute;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu > li > a {\n      margin: 3px; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li.active .sub-menu, .page-sidebar-menu.page-sidebar-menu-hover-submenu li.open .sub-menu {\n    display: none !important; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li a > .arrow {\n    display: none; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow {\n    display: block;\n    float: right;\n    position: absolute;\n    right: 0;\n    margin-top: -20px;\n    background: none;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-top: 12px double transparent;\n    border-bottom: 12px double transparent;\n    border-left: 0; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow:after, .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow:before {\n      display: none; }\n    .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow {\n      right: auto;\n      left: 0;\n      border-right: 0; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > .sub-menu {\n    display: inline-block !important; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > a > .arrow {\n    z-index: 1;\n    right: 0px;\n    margin-top: -23px; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > a > .selected {\n    display: none; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n    margin-left: 235px;\n    margin-top: -40px; }\n    .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n      margin-left: -210px !important; }\n    .page-sidebar-closed .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n      margin-left: 0; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li > a {\n      padding-left: 15px; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li .sub-menu {\n      margin-left: 210px;\n      margin-top: -38px !important; }\n      .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li .sub-menu {\n        margin-left: -210px !important; }\n      .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li .sub-menu > li > a {\n        padding-left: 10px;\n        padding-right: 10px; }\n  .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover > .sub-menu {\n    margin-top: -41px; }\n    .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover > .sub-menu > li > .sub-menu {\n      margin-top: -41px; } }\n\n.page-sidebar-wrapper .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-sidebar {\n    border-top: 0 !important;\n    margin: 20px; }\n    .page-sidebar .sidebar-toggler {\n      display: none; }\n    .page-sidebar .selected {\n      display: none !important; }\n    .page-sidebar.navbar-collapse {\n      max-height: none;\n      /* set some max height to have a scrollable menu on mobile devices */ }\n      .page-sidebar.navbar-collapse.collapse {\n        display: none !important; }\n      .page-sidebar.navbar-collapse.in {\n        border-top: 0 !important;\n        margin: 20px;\n        position: relative;\n        overflow: hidden !important;\n        overflow-y: auto !important;\n        display: block !important; }\n      .page-sidebar.navbar-collapse.navbar-no-scroll {\n        max-height: none !important; }\n    .page-sidebar .mega-menu-responsive-content {\n      padding: 10px 18px 10px 45px; }\n  .page-full-width .page-sidebar-menu {\n    display: block; }\n  .page-sidebar-mobile-offcanvas .page-sidebar-wrapper {\n    z-index: 10000;\n    position: fixed;\n    top: 0;\n    bottom: 0;\n    overflow-y: auto;\n    width: 235px;\n    left: -235px;\n    transition: all 0.3s; }\n    .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar {\n      margin: 0 !important; }\n      .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu {\n        width: 100%;\n        margin: 0 !important;\n        padding: 0 0 20px 0; }\n        .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler {\n          display: block;\n          border: 0;\n          text-align: right; }\n          .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler > a {\n            border: 0; }\n            .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler > a:hover {\n              background: none; }\n  .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open .page-sidebar-wrapper {\n    left: 0;\n    transition: all 0.3s; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  /* 768px & 991px */\n  .page-sidebar .btn-navbar.collapsed .arrow {\n    display: none; }\n  .page-sidebar .btn-navbar .arrow {\n    position: absolute;\n    right: 25px;\n    width: 0;\n    height: 0;\n    top: 50px;\n    border-bottom: 15px solid #5f646b;\n    border-left: 15px solid transparent;\n    border-right: 15px solid transparent; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  /* Page sidebar */\n  .page-sidebar,\n  .page-sidebar.in {\n    margin: 0 10px 10px 10px !important; }\n    .page-header-fixed.page-header-fixed-mobile .page-sidebar, .page-header-fixed.page-header-fixed-mobile\n    .page-sidebar.in {\n      margin-top: 10px !important; } }\n\n/***\nPage content\n***/\n/* Page title */\n.page-title {\n  padding: 0px;\n  font-size: 28px;\n  letter-spacing: -1px;\n  display: block;\n  color: #666;\n  margin: 0px 0px 15px 0px;\n  font-weight: 300;\n  /* subtitle */ }\n  .page-title small {\n    font-size: 14px;\n    letter-spacing: 0px;\n    font-weight: 300;\n    color: #888; }\n  .page-content-white .page-title,\n  .page-container-bg-solid .page-title {\n    color: #666;\n    margin-bottom: 20px;\n    margin-top: 20px; }\n    .page-content-white .page-title small,\n    .page-container-bg-solid .page-title small {\n      color: #666; }\n  .page-content-white .page-title {\n    margin: 25px 0;\n    font-size: 24px; }\n\n/* Page breadcrumb */\n.page-bar {\n  padding: 0px;\n  background-color: #f1f4f7;\n  margin-bottom: 25px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .page-bar:before, .page-bar:after {\n    content: \" \";\n    display: table; }\n  .page-bar:after {\n    clear: both; }\n  .page-bar .page-breadcrumb {\n    display: inline-block;\n    float: left;\n    padding: 8px;\n    margin: 0;\n    list-style: none; }\n    .page-bar .page-breadcrumb > li {\n      display: inline-block; }\n      .ie8 .page-bar .page-breadcrumb > li {\n        margin-right: 1px; }\n      .page-bar .page-breadcrumb > li > a,\n      .page-bar .page-breadcrumb > li > span {\n        color: #888;\n        font-size: 14px;\n        text-shadow: none; }\n      .page-bar .page-breadcrumb > li > i {\n        color: #aaa;\n        font-size: 14px;\n        text-shadow: none; }\n      .page-bar .page-breadcrumb > li > i[class^=\"icon-\"],\n      .page-bar .page-breadcrumb > li > i[class*=\"icon-\"] {\n        color: gray; }\n  .page-bar .page-toolbar {\n    display: inline-block;\n    float: right;\n    padding: 0; }\n    .page-bar .page-toolbar .btn-fit-height {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      padding-top: 8px;\n      padding-bottom: 8px; }\n      .page-md .page-bar .page-toolbar .btn-fit-height {\n        padding-top: 9px;\n        padding-bottom: 9px;\n        box-shadow: none !important; }\n  .page-content-white .page-bar,\n  .page-container-bg-solid .page-bar {\n    background-color: #ffffff;\n    position: relative;\n    padding: 0px 20px;\n    margin: -25px -20px 0 -20px; }\n    .page-content-white .page-bar .page-breadcrumb,\n    .page-container-bg-solid .page-bar .page-breadcrumb {\n      padding: 11px 0; }\n      .page-content-white .page-bar .page-breadcrumb > li > a,\n      .page-content-white .page-bar .page-breadcrumb > li > span,\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > a,\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > span {\n        color: #888; }\n      .page-content-white .page-bar .page-breadcrumb > li > i,\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > i {\n        color: #aaa; }\n        .page-content-white .page-bar .page-breadcrumb > li > i.fa-circle,\n        .page-container-bg-solid .page-bar .page-breadcrumb > li > i.fa-circle {\n          font-size: 5px;\n          margin: 0 5px;\n          position: relative;\n          top: -3px;\n          opacity: 0.4 ;\n          filter: alpha(opacity=40) ; }\n      .page-content-white .page-bar .page-breadcrumb > li > i[class^=\"icon-\"],\n      .page-content-white .page-bar .page-breadcrumb > li > i[class*=\"icon-\"],\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > i[class^=\"icon-\"],\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > i[class*=\"icon-\"] {\n        color: #8c8c8c; }\n    .page-content-white .page-bar .page-toolbar,\n    .page-container-bg-solid .page-bar .page-toolbar {\n      padding: 6px 0; }\n      .page-content-white .page-bar .page-toolbar .btn,\n      .page-container-bg-solid .page-bar .page-toolbar .btn {\n        margin-top: -2px; }\n        .page-content-white .page-bar .page-toolbar .btn.btn-sm,\n        .page-container-bg-solid .page-bar .page-toolbar .btn.btn-sm {\n          margin-top: 0px; }\n\n/* Page content */\n.page-content {\n  margin-top: 0px;\n  padding: 0px;\n  background-color: #fff; }\n  .page-container-bg-solid .page-content {\n    background: #eef1f5; }\n  .page-content-white .page-content .page-bar {\n    border-bottom: 1px solid #e7ecf1; }\n  .page-content-white.page-md .page-content .page-bar,\n  .page-container-bg-solid.page-md .page-content .page-bar {\n    border-radius: 0 !important; }\n  .page-full-width .page-content {\n    margin-left: 0px !important; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Page content */\n  .page-content-wrapper {\n    float: left;\n    width: 100%; }\n    .page-content-wrapper .page-content {\n      margin-left: 235px;\n      margin-top: 0px;\n      min-height: 600px;\n      padding: 25px 20px 10px 20px; }\n      .page-content-wrapper .page-content.no-min-height {\n        min-height: auto; }\n      .page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content {\n        margin-left: 45px; }\n      .page-sidebar-reversed .page-content-wrapper .page-content {\n        margin-left: 0 !important;\n        margin-right: 235px !important; }\n      .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content {\n        margin-left: 0;\n        margin-right: 45px; }\n      .page-sidebar-reversed.page-sidebar-closed .page-content-wrapper .page-content {\n        margin-left: 0 !important;\n        margin-right: 45px !important; }\n      .page-sidebar-closed .page-content-wrapper .page-content {\n        margin-left: 45px !important; }\n      .page-sidebar-closed.page-sidebar-hide .page-content-wrapper .page-content {\n        margin-left: 0 !important; }\n      .page-sidebar-closed.page-sidebar-reversed.page-sidebar-hide .page-content-wrapper .page-content {\n        margin-right: 0 !important; }\n      .page-full-width .page-content-wrapper .page-content {\n        margin-left: 0px !important; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  html,\n  body {\n    overflow-x: hidden; }\n  /* Bg solid content's breadcrumb */\n  .page-content-white .page-bar,\n  .page-container-bg-solid .page-bar {\n    margin-top: -20px; }\n  /* Boxed page container  */\n  .page-boxed > .container {\n    max-width: none !important;\n    margin: 0 !important;\n    padding: 0 !important; }\n  /* Page content */\n  .page-content-wrapper .page-content {\n    margin: 0px !important;\n    padding: 20px 20px 20px 20px !important;\n    min-height: 280px; }\n  .page-sidebar-mobile-offcanvas .page-wrapper {\n    left: 0;\n    transition: all 0.3s; }\n    .page-sidebar-mobile-offcanvas .page-wrapper .page-header {\n      transition: all 0.3s; }\n  .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open {\n    overflow-x: hidden;\n    transition: all 0.3s; }\n    .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open .page-wrapper {\n      position: relative;\n      left: 235px;\n      transition: all 0.3s; }\n      .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open .page-wrapper .page-header {\n        transition: all 0.3s; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  /*  768px & 991px */\n  /* Boxed page container */\n  .page-boxed > .container {\n    margin: auto !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  /* Page content */\n  .page-content-wrapper .page-content {\n    padding: 20px 10px 10px 10px !important;\n    overflow: hidden;\n    /* Page title */ }\n    .page-content-wrapper .page-content .page-title {\n      margin-bottom: 20px;\n      font-size: 18px; }\n      .page-content-wrapper .page-content .page-title small {\n        font-size: 13px;\n        padding-top: 3px; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  /* Dashboard date range panel */\n  .page-content-wrapper .page-content .page-title small {\n    display: block;\n    clear: both; } }\n\n/***\nPage footer\n***/\n.page-footer {\n  padding: 8px 20px 5px 20px;\n  font-size: 13px;\n  height: 33px; }\n  .page-footer:before, .page-footer:after {\n    content: \" \";\n    display: table; }\n  .page-footer:after {\n    clear: both; }\n  .page-footer .page-footer-inner {\n    float: left;\n    display: inline-block; }\n  .page-footer-fixed.page-footer-fixed-mobile .page-footer {\n    position: fixed;\n    left: 0;\n    right: 0;\n    z-index: 10000;\n    bottom: 0; }\n  .page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .page-footer {\n    margin-left: 0 !important; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Default footer */\n  .page-footer {\n    clear: left; }\n  /* Fixed footer */\n  .page-footer-fixed .page-footer {\n    position: fixed;\n    left: 0;\n    right: 0;\n    z-index: 10000;\n    bottom: 0; }\n  /* Footer with footer sidebar */\n  .page-sidebar-fixed.page-sidebar-closed .page-footer {\n    margin-left: 45px; }\n  .page-sidebar-fixed.page-footer-fixed .page-footer {\n    margin-left: 0 !important; }\n  /* Fixed Sidebar */\n  .page-sidebar-fixed .page-footer {\n    margin-left: 235px;\n    padding: 8px 20px 5px 20px; }\n  /* Boxed page */\n  .page-boxed .page-footer {\n    padding: 8px 0 5px 0; }\n  .page-boxed.page-sidebar-fixed .page-footer {\n    padding-right: 20px;\n    padding-left: 20px; }\n  /* Page sidebar reversed */\n  .page-sidebar-reversed.page-sidebar-fixed .page-footer {\n    margin-left: 0;\n    margin-right: 235px;\n    padding: 8px 20px 5px 20px; }\n  .page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .page-footer {\n    margin-left: 0;\n    margin-right: 0; }\n  .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-footer {\n    margin-right: 45px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Boxed Layout */\n  .page-boxed .page-footer {\n    padding-left: 0px;\n    padding-right: 0px; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  /* Default footer & boxed footer */\n  .page-footer,\n  .page-boxed .page-footer {\n    padding-left: 10px;\n    padding-right: 10px; }\n  /* Fixed footer */\n  .page-footer-fixed .page-footer .container {\n    padding-left: 0;\n    padding-right: 0; } }\n\n/* Scroll Top Top */\n.scroll-to-top {\n  display: inline-block;\n  padding: 1px;\n  text-align: center;\n  position: fixed;\n  bottom: 10px;\n  z-index: 10001;\n  display: none;\n  right: 10px; }\n  .scroll-to-top > i {\n    display: inline-block;\n    color: #687991;\n    font-size: 30px;\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .scroll-to-top:hover {\n    cursor: pointer; }\n    .scroll-to-top:hover > i {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .scroll-to-top {\n    right: 20px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .scroll-to-top {\n    bottom: 10px;\n    right: 10px; }\n    .scroll-to-top > i {\n      font-size: 28px; } }\n\n/***\nTheme Panel\n***/\n.theme-panel {\n  width: 420px;\n  margin-top: -13px;\n  margin-right: 0px;\n  z-index: 100;\n  float: right;\n  position: relative;\n  /* content solid bg color */ }\n  .theme-panel > .toggler {\n    top: 4px;\n    right: 0;\n    padding: 20px;\n    cursor: pointer;\n    position: absolute;\n    background: #536881 url(../img/icon-color.png) center no-repeat;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .theme-panel > .toggler:hover {\n      background-color: #3f4f62 !important; }\n  .theme-panel > .toggler-close {\n    display: none;\n    top: 4px;\n    right: 0;\n    padding: 20px;\n    z-index: 101;\n    cursor: pointer;\n    position: absolute;\n    background: #2b3643 url(../img/icon-color-close.png) center no-repeat !important;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .theme-panel > .toggler-close:hover {\n      background-color: #212933 !important; }\n  .theme-panel > .theme-options {\n    top: 4px;\n    right: 0;\n    display: none;\n    position: absolute;\n    z-index: 100;\n    background: #2b3643;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .theme-panel > .theme-options > .theme-option {\n      color: #c6cfda;\n      padding: 15px;\n      border-top: 1px solid #354353;\n      margin-top: 0px;\n      margin-bottom: 0px; }\n      .theme-panel > .theme-options > .theme-option > span {\n        text-transform: uppercase;\n        display: inline-block;\n        width: 145px;\n        font-size: 13px;\n        font-weight: 300; }\n      .theme-panel > .theme-options > .theme-option > select.form-control {\n        display: inline;\n        width: 135px;\n        padding: 2px;\n        text-transform: lowercase; }\n      .theme-panel > .theme-options > .theme-option.theme-colors {\n        border-top: 0; }\n        .theme-panel > .theme-options > .theme-option.theme-colors > span {\n          display: block;\n          width: auto; }\n        .theme-panel > .theme-options > .theme-option.theme-colors > ul {\n          list-style: none;\n          padding: 0;\n          display: block;\n          margin-bottom: 10px !important;\n          margin-top: 15px; }\n          .theme-panel > .theme-options > .theme-option.theme-colors > ul > li {\n            width: 40px;\n            height: 40px;\n            margin: 0 4px;\n            cursor: pointer;\n            list-style: none;\n            float: left;\n            border: solid 1px #707070;\n            /* theme colors */ }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li:first-child {\n              margin-left: 0; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li:hover, .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.current {\n              border: solid 2px #d64635; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-default {\n              background: #333438; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-darkblue {\n              background: #2b3643; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-blue {\n              background: #2D5F8B; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-grey {\n              background: #697380; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-light {\n              background: #F9FAFD; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-light2 {\n              background: #F1F1F1; }\n  .page-content-white .theme-panel,\n  .page-container-bg-solid .theme-panel {\n    position: absolute;\n    margin-top: 30px;\n    margin-right: 20px;\n    right: 0; }\n    .page-content-white .theme-panel > .toggler1,\n    .page-container-bg-solid .theme-panel > .toggler1 {\n      background: #BFCAD1 url(../img/icon-color.png) center no-repeat; }\n  .page-content-white.page-sidebar-reversed .theme-panel,\n  .page-container-bg-solid.page-sidebar-reversed .theme-panel {\n    margin-right: 255px; }\n  .page-content-white.page-sidebar-reversed.page-sidebar-closed .theme-panel,\n  .page-container-bg-solid.page-sidebar-reversed.page-sidebar-closed .theme-panel {\n    margin-right: 65px; }\n\n/******************\nPage Quick Sidebar\n******************/\n/* Quick sidebar toggler */\n.page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle {\n  padding: 19px 10px 10px 10px !important; }\n  .page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle i {\n    top: 0px; }\n    .page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle i:before {\n      content: \"\"/*rtl:\"\"*/; }\n    .page-quick-sidebar-open .page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle i:before {\n      content: \"\"/*rtl:\"\"*/; }\n\n/* Page Portlet Fullscreen */\n.page-portlet-fullscreen .page-quick-sidebar-wrapper,\n.page-portlet-fullscreen .page-quick-sidebar-toggler {\n  z-index: -1; }\n\n/* Quick sidebar toggler */\n.page-quick-sidebar-toggler {\n  overflow: hidden;\n  z-index: 99999;\n  display: none;\n  width: 28px;\n  height: 27px;\n  position: fixed;\n  top: 10px;\n  right: 15px;\n  text-align: center;\n  padding-top: 6px; }\n  .page-quick-sidebar-toggler:hover {\n    background: #303a43; }\n  .page-quick-sidebar-open .page-quick-sidebar-toggler {\n    display: inline-block; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler:hover {\n      background: none; }\n  .page-quick-sidebar-toggler > i {\n    color: #99a8b5;\n    font-size: 17px; }\n    .page-quick-sidebar-toggler > i:hover {\n      color: #fff !important; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler > i:before {\n      content: \"\"/*rtl:\"\"*/; }\n\n/* Quick sidebar wrapper */\n.page-quick-sidebar-wrapper {\n  transition: right 0.3s;\n  z-index: 10500;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  width: 320px;\n  right: -320px;\n  overflow: hidden;\n  color: #99a8b5;\n  background: #21282e; }\n  .page-quick-sidebar-open .page-quick-sidebar-wrapper {\n    transition: right 0.3s;\n    right: 0; }\n  .page-quick-sidebar-wrapper .page-quick-sidebar {\n    background: #21282e;\n    /* Quick sidebar tabs content */\n    /* Quick sidebar general list heading */\n    /* Quick sidebar general list-items */\n    /* Inner content */\n    /* Quick sidebar list */\n    /* Quick sidebar list item */\n    /* Quick sidebar list item shown */\n    /* Quick sidebar chat */\n    /* Quick sidebar alerts */\n    /* Quick sidebar settings */ }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs {\n      margin: 0;\n      padding: 0;\n      border: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li {\n        display: table-cell !important;\n        width: 1%  !important;\n        padding: 0;\n        margin: 0;\n        float: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a {\n          position: relative;\n          display: block;\n          text-align: center;\n          border: 0;\n          height: auto;\n          font-size: 14px;\n          padding: 45px 15px 8px;\n          text-transform: uppercase;\n          background: none;\n          margin-right: 0;\n          color: #90a1af;\n          border: 0;\n          border-bottom: 3px solid rgba(243, 86, 93, 0.3);\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0;\n          outline: none !important; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a > .badge {\n            position: absolute;\n            top: 45px;\n            right: 3px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.active > a, .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li:hover > a {\n          border: 0;\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          color: #fff;\n          text-decoration: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu {\n          border: 0;\n          background: #36424c;\n          box-shadow: 5px 5px rgba(97, 117, 135, 0.1);\n          margin-top: 8px;\n          margin-right: 20px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:before {\n            position: absolute;\n            top: -7px;\n            right: 19px;\n            display: inline-block !important;\n            border-right: 7px solid transparent;\n            border-left: 7px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:after {\n            position: absolute;\n            top: -6px;\n            right: 20px;\n            display: inline-block !important;\n            border-right: 6px solid transparent;\n            border-left: 6px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a {\n            padding: 10px 15px;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a > i {\n              color: #93a3b1; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a {\n            background: #3d4a55;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a > i {\n              color: #9babb8; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.active > a {\n            background: #38444f;\n            color: #99a8b5; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.divider {\n            background-color: #3d4a55; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.open > a.dropdown-toggle {\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          text-decoration: none;\n          color: #90a1af; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .tab-content {\n      margin: 0;\n      padding: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-heading {\n      font-size: 16px;\n      margin: 10px 10px;\n      color: #6c8296; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-items {\n      margin: 0;\n      padding: 0;\n      list-style: none; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li {\n        margin: 0;\n        padding: 15px;\n        background: none;\n        border-bottom-width: 1px;\n        border-bottom-style: solid;\n        border-bottom-color: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:hover {\n          background: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:last-child {\n          border-bottom: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li {\n        border: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .inner-content {\n      margin: 10px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list {\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item {\n      width: 320px;\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s;\n      margin-left: 320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav {\n        padding: 15px 10px 0px 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list {\n          vertical-align: middle;\n          display: inline-block;\n          font-size: 14px;\n          color: #90a1af; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list:hover {\n            text-decoration: none; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list > i {\n            font-size: 17px;\n            line-height: 17px;\n            vertical-align: top;\n            margin-right: 3px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list {\n      transition: margin 0.3s;\n      margin-left: -320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail {\n        display: none !important; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item {\n      transition: margin 0.3s;\n      margin-left: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media {\n        padding: 15px 15px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object {\n          border-radius: 50% !important;\n          width: 45.71429px;\n          opacity: 0.8;\n          filter: alpha(opacity=80);\n          float: left;\n          margin-right: 10px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before, .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            content: \" \";\n            display: table; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            clear: both; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover {\n          cursor: pointer; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object {\n            opacity: 1;\n            filter: alpha(opacity=100); }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading {\n          margin: 5px 0 0 0;\n          font-size: 14px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub {\n          font-size: 11px;\n          text-transform: uppercase;\n          color: #657b8d; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small {\n          font-size: 10px;\n          color: #5d7081; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status {\n          margin-top: 10px;\n          right: 10px;\n          position: absolute;\n          display: inline-block; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages {\n      padding: 0px 10px;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post {\n        transition: display 0.3s;\n        padding: 5px 0;\n        margin: 10px auto;\n        font-size: 13px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body {\n          color: #c3c3c3;\n          display: block; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar {\n          width: 45.71429px;\n          border-radius: 50% !important; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar {\n          float: left;\n          margin-right: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar {\n          float: right;\n          margin-left: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message {\n          display: block;\n          padding: 5px;\n          position: relative;\n          color: #90a1af;\n          background: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message {\n          text-align: left;\n          margin-left: 55px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            left: -6px;\n            width: 0;\n            height: 0;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-right-width: 6px;\n            border-right-style: solid;\n            border-right-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message {\n          margin-right: 55px;\n          text-align: right; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            right: -6px;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-left-width: 6px;\n            border-left-style: solid;\n            border-left-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name,\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime {\n          text-align: right; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form {\n      padding: 20px 10px 15px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a {\n        color: #7e91a2; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .label {\n          margin-top: 5px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc {\n          text-decoration: underline;\n          padding: 0;\n          color: #788c9e; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .date {\n          color: #5d7081; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch {\n        margin-top: -3px;\n        float: right;\n        border: 0;\n        min-width: 59px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control {\n        width: 75px !important;\n        padding: 4px 4px !important;\n        float: right;\n        border: 0;\n        margin-top: -4px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control {\n        padding: 4px 0px !important; }\n\n.quick-nav {\n  position: fixed;\n  z-index: 10103;\n  top: 50%;\n  right: 10px;\n  margin-top: -230px;\n  pointer-events: none; }\n  .quick-nav .quick-nav-bg {\n    /* this is the stretching navigation background */\n    position: absolute;\n    z-index: 10102;\n    top: 0;\n    right: 0;\n    width: 60px;\n    height: 60px;\n    border-radius: 30px !important;\n    background: #36C6D3;\n    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);\n    webkit-transition: height .2s, box-shadow .2s;\n    -moz-transition: height .2s, box-shadow .2s;\n    -ms-transition: height .2s, box-shadow .2s;\n    -o-transition: height .2s, box-shadow .2s;\n    transition: height .2s, box-shadow .2s; }\n  .quick-nav.nav-is-visible {\n    pointer-events: auto; }\n  .quick-nav.nav-is-visible .quick-nav-bg {\n    height: 100%;\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n\n.quick-nav-trigger {\n  position: absolute;\n  z-index: 10103;\n  top: 0;\n  right: 0;\n  height: 60px;\n  width: 60px;\n  border-radius: 50% !important;\n  overflow: hidden;\n  white-space: nowrap;\n  color: transparent;\n  pointer-events: auto; }\n  .quick-nav-trigger span,\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* this is the hamburger icon */\n    position: absolute;\n    width: 16px;\n    height: 2px;\n    background-color: #ffffff; }\n  .quick-nav-trigger span {\n    /* middle line of the hamburger icon */\n    webkit-transition: background-color 0.2s;\n    -moz-transition: background-color 0.2s;\n    -ms-transition: background-color 0.2s;\n    -o-transition: background-color 0.2s;\n    transition: background-color 0.2s;\n    left: 50%;\n    top: 50%;\n    bottom: auto;\n    right: auto;\n    webkit-transform: translateX(-50%) translateY(-50%);\n    -moz-transform: translateX(-50%) translateY(-50%);\n    -ms-transform: translateX(-50%) translateY(-50%);\n    -o-transform: translateX(-50%) translateY(-50%);\n    transform: translateX(-50%) translateY(-50%); }\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* top and bottom lines of the hamburger icon */\n    content: '';\n    top: 0;\n    left: 0;\n    -webkit-backface-visibility: hidden;\n    -moz-backface-visibility: hidden;\n    backface-visibility: hidden;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .quick-nav-trigger span::before {\n    webkit-transform: translateY(-6px);\n    -moz-transform: translateY(-6px);\n    -ms-transform: translateY(-6px);\n    -o-transform: translateY(-6px);\n    transform: translateY(-6px); }\n  .quick-nav-trigger span::after {\n    webkit-transform: translateY(6px);\n    -moz-transform: translateY(6px);\n    -ms-transform: translateY(6px);\n    -o-transform: translateY(6px);\n    transform: translateY(6px); }\n  .no-touch .quick-nav-trigger:hover ~ .quick-nav-bg {\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n  .nav-is-visible .quick-nav-trigger span {\n    background-color: transparent; }\n  .nav-is-visible .quick-nav-trigger span::before {\n    webkit-transform: rotate(-45deg);\n    -moz-transform: rotate(-45deg);\n    -ms-transform: rotate(-45deg);\n    -o-transform: rotate(-45deg);\n    transform: rotate(-45deg); }\n  .nav-is-visible .quick-nav-trigger span::after {\n    webkit-transform: rotate(45deg);\n    -moz-transform: rotate(45deg);\n    -ms-transform: rotate(45deg);\n    -o-transform: rotate(45deg);\n    transform: rotate(45deg); }\n\n.quick-nav ul {\n  position: relative;\n  z-index: 10103;\n  padding: 60px 0 0;\n  visibility: hidden;\n  webkit-transition: visibility 0.3s;\n  -moz-transition: visibility 0.3s;\n  -ms-transition: visibility 0.3s;\n  -o-transition: visibility 0.3s;\n  transition: visibility 0.3s;\n  text-align: right;\n  list-style: none; }\n  .quick-nav ul > li a {\n    position: relative;\n    display: block;\n    height: 50px;\n    line-height: 50px;\n    padding: 0 calc(1em + 60px) 0 1em;\n    font-size: 1.4rem;\n    webkit-transition: color 0.2s;\n    -moz-transition: color 0.2s;\n    -ms-transition: color 0.2s;\n    -o-transition: color 0.2s;\n    transition: color 0.2s; }\n    .quick-nav ul > li a:hover {\n      text-decoration: none; }\n      .quick-nav ul > li a:hover > span {\n        text-decoration: none; }\n    .quick-nav ul > li a > i {\n      /* navigation item icons */\n      content: '';\n      position: absolute;\n      height: 16px;\n      width: 16px;\n      font-size: 18px;\n      right: 24px;\n      top: 16px;\n      color: #ebebeb; }\n    .quick-nav ul > li a::before {\n      /* line visible next to the active navigation item */\n      content: '';\n      position: absolute;\n      width: 3px;\n      height: 16px;\n      top: 50%;\n      right: 60px;\n      webkit-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -moz-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -ms-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -o-transform: translateX(3px) translateY(-50%) scaleY(0);\n      transform: translateX(3px) translateY(-50%) scaleY(0);\n      background-color: #FF3F3F; }\n  .quick-nav ul > li span {\n    /* navigation item labels */\n    color: #ebebeb;\n    font-weight: 400;\n    display: block;\n    opacity: 0;\n    webkit-transform: translateX(-25px);\n    -moz-transform: translateX(-25px);\n    -ms-transform: translateX(-25px);\n    -o-transform: translateX(-25px);\n    transform: translateX(-25px); }\n  .quick-nav ul > li:last-child {\n    padding-bottom: 10px; }\n\n.quick-nav.nav-is-visible ul {\n  visibility: visible; }\n  .quick-nav.nav-is-visible ul a::after {\n    /* navigation item icons */\n    webkit-transform: translateY(-50%) scale(1);\n    -moz-transform: translateY(-50%) scale(1);\n    -ms-transform: translateY(-50%) scale(1);\n    -o-transform: translateY(-50%) scale(1);\n    transform: translateY(-50%) scale(1);\n    -webkit-animation: scaleIn 0.15s backwards;\n    -o-animation: scaleIn 0.15s backwards;\n    animation: scaleIn 0.15s backwards;\n    webkit-transition: opacity 0.2s;\n    -moz-transition: opacity 0.2s;\n    -ms-transition: opacity 0.2s;\n    -o-transition: opacity 0.2s;\n    transition: opacity 0.2s; }\n  .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .quick-nav.nav-is-visible ul a:hover::before {\n    webkit-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -moz-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -ms-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -o-transform: translateX(3px) translateY(-50%) scaleY(2);\n    transform: translateX(3px) translateY(-50%) scaleY(2);\n    webkit-transition: transform 0.15s 0.3s;\n    -moz-transition: transform 0.15s 0.3s;\n    -ms-transition: transform 0.15s 0.3s;\n    -o-transition: transform 0.15s 0.3s;\n    transition: transform 0.15s 0.3s; }\n  .quick-nav.nav-is-visible ul a:hover > span {\n    color: white; }\n  .quick-nav.nav-is-visible ul a:hover > i {\n    color: #fafafa; }\n  .quick-nav.nav-is-visible ul span {\n    opacity: 1;\n    webkit-transform: translateX(0);\n    -moz-transform: translateX(0);\n    -ms-transform: translateX(0);\n    -o-transform: translateX(0);\n    transform: translateX(0);\n    -webkit-animation: slideIn 0.15s backwards;\n    -o-animation: slideIn 0.15s backwards;\n    animation: slideIn 0.15s backwards;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover span {\n    webkit-transform: translateX(-5px);\n    -moz-transform: translateX(-5px);\n    -ms-transform: translateX(-5px);\n    -o-transform: translateX(-5px);\n    transform: translateX(-5px); }\n\n.quick-nav-overlay {\n  display: none;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  position: fixed;\n  z-index: 10101;\n  background: transparent; }\n\n.quick-nav.nav-is-visible + .quick-nav-overlay {\n  background: rgba(0, 0, 0, 0.8);\n  display: block;\n  -webkit-transition: background .7s ease-out;\n  -moz-transition: background .7s ease-out;\n  -o-transition: background .7s ease-out;\n  transition: background .7s ease-out; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .quick-nav {\n    top: 120px;\n    margin-top: 0; } }\n\n/***  \nPage Loading       \n***/\n.page-on-load {\n  background: #fefefe; }\n  .page-on-load .page-header,\n  .page-on-load .page-container,\n  .page-on-load .page-footer,\n  .page-on-load > .clearfix {\n    display: none;\n    transition: all 2s; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout/css/themes/darkblue.css",
    "content": "/* Cubic Bezier Transition */\n/*********** \n    Page Header\n    ***********/\n/* Header search bar, toggler button & top menu */\n.page-header.navbar {\n  background-color: #2b3643;\n  /* Top notification menu/bar */\n  /* Header seaech box */\n  /* Toggler button for sidebar expand/collapse and responsive sidebar menu */ }\n  .page-header.navbar .top-menu .navbar-nav {\n    /* Extended Dropdowns */\n    /* Notification */\n    /* Inbox */\n    /* Tasks */\n    /* User */\n    /* Language */\n    /* Dark version */ }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle > i {\n      color: #79869a; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle .badge.badge-default {\n      background-color: #36c6d3;\n      color: #ffffff; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle:hover {\n      background-color: #3f4f62; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle:hover > i {\n        color: #a4aebb; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle {\n      background-color: #3f4f62; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle > i {\n        color: #a4aebb; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu {\n      border-color: #e7eaf0; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu:after {\n        border-bottom-color: #eaedf2; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n        background: #eaedf2; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n          color: #62878f; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n          color: #337ab7; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n            color: #23527c;\n            text-decoration: none; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n        border-bottom: 1px solid #EFF2F6 !important;\n        color: #888888; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n          background: #f8f9fa; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a .time {\n      background: #f1f1f1; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n      background: #e4e4e4; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .circle {\n      background-color: #36c6d3;\n      color: #ffffff; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner {\n      border-color: transparent transparent transparent #36c6d3; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from {\n      color: #5b9bd1; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress {\n      background-color: #dfe2e9; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > .username {\n      color: #c6cfda; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > i {\n      color: #c6cfda; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-user > .dropdown-menu {\n      width: 195px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > .langname {\n      color: #c6cfda; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu {\n      background: #3f4f62;\n      border: 0; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu:after {\n        border-bottom-color: #3f4f62; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external {\n        background: #2f3b49; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > h3 {\n          color: #adbaca; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > a:hover {\n          color: #5496cf; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a,\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a {\n        color: #bcc7d4;\n        border-bottom: 1px solid #4b5e75 !important; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a > i,\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a > i {\n          color: #9dadc0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a:hover,\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a:hover {\n          background: #47596e; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a {\n        border-bottom: 0 !important; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li.divider {\n        background: #4b5e75; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a .time {\n      background: #354353; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n      background: #2b3643; }\n  .page-header.navbar .search-form {\n    background: #232c37; }\n    .page-header.navbar .search-form:hover {\n      background: #3f4f62; }\n    .page-header.navbar .search-form .input-group .form-control {\n      color: #959fad; }\n      .page-header.navbar .search-form .input-group .form-control::-moz-placeholder {\n        color: #929cab;\n        opacity: 1; }\n      .page-header.navbar .search-form .input-group .form-control:-ms-input-placeholder {\n        color: #929cab; }\n      .page-header.navbar .search-form .input-group .form-control::-webkit-input-placeholder {\n        color: #929cab; }\n    .page-header.navbar .search-form .input-group .input-group-btn .btn.submit > i {\n      color: #959fad; }\n    .page-header.navbar .search-form.open {\n      background: #3f4f62; }\n  .page-header.navbar .menu-toggler > span,\n  .page-header.navbar .menu-toggler > span:before,\n  .page-header.navbar .menu-toggler > span:after {\n    background: #a7b5c6; }\n  .page-header.navbar .menu-toggler > span:hover {\n    background: #a7b5c6; }\n    .page-header.navbar .menu-toggler > span:hover:before, .page-header.navbar .menu-toggler > span:hover:after {\n      background: #a7b5c6; }\n  .page-header.navbar .menu-toggler.th-toggle-exit > span {\n    background-color: transparent !important; }\n\n/* Default Horizontal Menu */\n.page-header.navbar {\n  /* Default Mega Menu */\n  /* Light Mega Menu */ }\n  .page-header.navbar .hor-menu .navbar-nav {\n    /* Mega menu content */\n    /* Classic menu */ }\n    .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n      box-shadow: 5px 5px rgba(63, 79, 98, 0.2); }\n      .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n        color: #c6cfda; }\n    .page-header.navbar .hor-menu .navbar-nav > li > a {\n      color: #c6cfda; }\n      .page-header.navbar .hor-menu .navbar-nav > li > a > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu .navbar-nav > li:hover > a,\n    .page-header.navbar .hor-menu .navbar-nav > li.open > a,\n    .page-header.navbar .hor-menu .navbar-nav > li > a:hover {\n      color: #d5dce4;\n      background: #3f4f62 !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li:hover > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li.open > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li > a:hover > i {\n        color: #889bb2; }\n    .page-header.navbar .hor-menu .navbar-nav > li.active > a,\n    .page-header.navbar .hor-menu .navbar-nav > li.active > a, .page-header.navbar .hor-menu .navbar-nav > li.current > a,\n    .page-header.navbar .hor-menu .navbar-nav > li.current > a {\n      color: white;\n      background: #36c6d3 !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li.active > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li.active > a > i, .page-header.navbar .hor-menu .navbar-nav > li.current > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li.current > a > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu .navbar-nav > li.active .selected, .page-header.navbar .hor-menu .navbar-nav > li.current .selected {\n      border-top: 6px solid #36c6d3; }\n    .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu {\n      box-shadow: 5px 5px rgba(63, 79, 98, 0.2);\n      background: #3f4f62; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a {\n        color: #c6cfda; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a > i {\n          color: #c6cfda; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li:hover > a {\n        color: #f1f3f6;\n        background: #47596e; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li:hover > a > i {\n          color: #f1f3f6; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a,\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a,\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover {\n        color: #f1f3f6;\n        background: #47596e; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a > i,\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a > i,\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n          color: #f1f3f6; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.divider {\n        background-color: #495c72; }\n    .page-header.navbar .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n      color: #c6cfda; }\n  .page-header.navbar .hor-menu.hor-menu-light .navbar-nav {\n    /* Mega menu content */\n    /* Classic menu */ }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n      box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n        color: #666; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a {\n      color: #c6cfda; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li:hover > a,\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a:hover {\n      color: #d5dce4;\n      background: #3f4f62; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li:hover > a > i,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a:hover > i {\n        color: #889bb2; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.open > a {\n      color: #333 !important;\n      background: white !important; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.open > a > i {\n        color: #333 !important; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a,\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a,\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover {\n      color: white;\n      background: #36c6d3; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a > i,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover > i, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a > i,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu {\n      box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n      background: white; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a {\n        color: #000; }\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a > i {\n          color: #888; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a {\n        color: #000;\n        background: whitesmoke; }\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a > i {\n          color: #666; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover {\n        color: #000;\n        background: whitesmoke; }\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a > i,\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a > i,\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n          color: #666; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.divider {\n        background-color: whitesmoke; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu {\n      border: 1px solid #f2f2f2; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > .dropdown-menu {\n      border-top: 0; }\n\n/* Page sidebar */\n.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover,\n.page-sidebar {\n  background-color: #364150;\n  /* Default sidebar */\n  /* light sidebar */\n  /* Sidebar search */ }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu,\n  .page-sidebar .page-sidebar-menu {\n    /* 1st level links */\n    /* All links */ }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a,\n    .page-sidebar .page-sidebar-menu > li > a {\n      border-top: 1px solid #3d4957;\n      color: #b4bcc8; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i,\n      .page-sidebar .page-sidebar-menu > li > a > i {\n        color: #606C7D; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i[class*=\"icon-\"],\n      .page-sidebar .page-sidebar-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar .page-sidebar-menu > li > a > i[class*=\"icon-\"] {\n        color: #6b788b; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li > a > .arrow.open:before {\n        color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading > h3,\n    .page-sidebar .page-sidebar-menu > li.heading > h3 {\n      color: #708096; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a,\n    .page-sidebar .page-sidebar-menu > li:hover > a,\n    .page-sidebar .page-sidebar-menu > li.open > a {\n      background: #2C3542;\n      color: #b4bcc8; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a > i,\n      .page-sidebar .page-sidebar-menu > li:hover > a > i,\n      .page-sidebar .page-sidebar-menu > li.open > a > i {\n        color: #606C7D; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li:hover > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li:hover > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li.open > a > .arrow.open:before {\n        color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a,\n    .page-sidebar .page-sidebar-menu > li.active > a,\n    .page-sidebar .page-sidebar-menu > li.active.open > a {\n      background: #36c6d3;\n      border-top-color: transparent;\n      color: #ffffff; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a:hover, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a:hover,\n      .page-sidebar .page-sidebar-menu > li.active > a:hover,\n      .page-sidebar .page-sidebar-menu > li.active.open > a:hover {\n        background: #36c6d3; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a > i,\n      .page-sidebar .page-sidebar-menu > li.active > a > i,\n      .page-sidebar .page-sidebar-menu > li.active.open > a > i {\n        color: #ffffff; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li.active > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li.active > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li.active.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li.active.open > a > .arrow.open:before {\n        color: #ffffff; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active + li > a,\n    .page-sidebar .page-sidebar-menu > li.active + li > a {\n      border-top-color: transparent; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open + li > a,\n    .page-sidebar .page-sidebar-menu > li.active.open + li > a {\n      border-top-color: #3d4957; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:last-child > a,\n    .page-sidebar .page-sidebar-menu > li:last-child > a {\n      border-bottom: 1px solid transparent !important; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow.open:before,\n    .page-sidebar .page-sidebar-menu li > a > .arrow:before,\n    .page-sidebar .page-sidebar-menu li > a > .arrow.open:before {\n      color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow.open:before,\n    .page-sidebar .page-sidebar-menu li:hover > a > .arrow:before,\n    .page-sidebar .page-sidebar-menu li:hover > a > .arrow.open:before {\n      color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active > a > .arrow.open:before,\n    .page-sidebar .page-sidebar-menu li.active > a > .arrow:before,\n    .page-sidebar .page-sidebar-menu li.active > a > .arrow.open:before {\n      color: #ffffff; }\n    .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu:hover .sub-menu, .page-sidebar-closed\n    .page-sidebar .page-sidebar-menu:hover .sub-menu {\n      background-color: #364150; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li > a {\n      color: #b4bcc8; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > i {\n        color: #606C7D; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > i[class*=\"icon-\"],\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > i[class*=\"icon-\"] {\n        color: #6b788b; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow.open:before {\n        color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li.open > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li.active > a {\n      background: #3e4b5c !important; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.open > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.active > a > i {\n        color: #606C7D;\n        color: #959fae; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.active > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.active > a > .arrow.open:before {\n        color: #606C7D; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light,\n  .page-sidebar .page-sidebar-menu.page-sidebar-menu-light {\n    /* 1st level links */ }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.open > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li:hover > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.open > a {\n      background: #3a4656; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {\n      background: #3e4b5c;\n      border-left: 4px solid #36c6d3;\n      color: #f1f1f1; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {\n        border-left: 4px solid #36c6d3;\n        background: #3a4656; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i {\n        color: #eeeeee; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow.open:before {\n        color: #eeeeee; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu {\n      background: #3a4656; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a {\n        background: #3e4b5c !important; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler,\n  .page-sidebar .sidebar-toggler {\n    background: #2c3541; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after,\n    .page-sidebar .sidebar-toggler > span,\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar .sidebar-toggler > span:after {\n      background: #a7b5c6; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover,\n    .page-sidebar .sidebar-toggler > span:hover {\n      background: #a7b5c6; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:after,\n      .page-sidebar .sidebar-toggler > span:hover:before,\n      .page-sidebar .sidebar-toggler > span:hover:after {\n        background: #a7b5c6; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span,\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span {\n      background-color: transparent !important; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover,\n    .page-sidebar .sidebar-toggler:hover {\n      background: #212832; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group,\n  .page-sidebar .sidebar-search .input-group {\n    border-bottom: 1px solid #435060; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,\n    .page-sidebar .sidebar-search .input-group .form-control {\n      background-color: #364150;\n      color: #4e5d6f; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder,\n      .page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder {\n        color: #4e5d6f;\n        opacity: 1; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control:-ms-input-placeholder,\n      .page-sidebar .sidebar-search .input-group .form-control:-ms-input-placeholder {\n        color: #4e5d6f; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-webkit-input-placeholder,\n      .page-sidebar .sidebar-search .input-group .form-control::-webkit-input-placeholder {\n        color: #4e5d6f; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn > i,\n    .page-sidebar .sidebar-search .input-group .input-group-btn .btn > i {\n      color: #4e5d6f; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group,\n  .page-sidebar .sidebar-search.sidebar-search-bordered .input-group {\n    border: 1px solid #435060; }\n  .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .input-group, .page-sidebar-closed\n  .page-sidebar .sidebar-search.open .input-group {\n    background-color: #364150; }\n  .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .remove > i, .page-sidebar-closed\n  .page-sidebar .sidebar-search.open .remove > i {\n    color: #4e5d6f; }\n  .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group, .page-sidebar-closed\n  .page-sidebar .sidebar-search.sidebar-search-solid .input-group {\n    background: none; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group,\n  .page-sidebar .sidebar-search.sidebar-search-solid .input-group {\n    border: 1px solid #2c3541;\n    background: #2c3541; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group .form-control,\n    .page-sidebar .sidebar-search.sidebar-search-solid .input-group .form-control {\n      background: #2c3541; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group,\n  .page-sidebar .sidebar-search.sidebar-search-solid.open .input-group {\n    border: 1px solid #364150;\n    background: #364150; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group .form-control,\n    .page-sidebar .sidebar-search.sidebar-search-solid.open .input-group .form-control {\n      background: #364150; }\n\n.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light {\n  /* 1st level links */ }\n  .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {\n    border-left: 0;\n    border-right: 4px solid #36c6d3; }\n    .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {\n      border-left: 0;\n      border-right: 4px solid #36c6d3; }\n\n/******\n    Page Footer \n    ******/\n.page-footer .page-footer-inner {\n  color: #98a6ba; }\n\n.page-footer-fixed .page-footer {\n  background-color: #28303b; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Sidebar menu closed */\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n    box-shadow: 5px 5px rgba(44, 53, 66, 0.2); }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu.sidebar-toggler-wrapper, .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu.sidebar-search-wrapper {\n      box-shadow: none; }\n  .page-sidebar-menu.page-sidebar-menu-closed > li:hover {\n    box-shadow: 5px 5px rgba(44, 53, 66, 0.2); }\n    .page-sidebar-menu.page-sidebar-menu-closed > li:hover.sidebar-toggler-wrapper, .page-sidebar-menu.page-sidebar-menu-closed > li:hover.sidebar-search-wrapper {\n      box-shadow: none; }\n    .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu {\n      box-shadow: 5px 5px rgba(44, 53, 66, 0.2); }\n      .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu.sidebar-toggler-wrapper, .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu.sidebar-search-wrapper {\n        box-shadow: none; }\n  /* Light sidebar menu */\n  .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed > li.heading {\n    padding: 0;\n    margin-top: 15px;\n    margin-bottom: 15px;\n    border-top: 1px solid #3d4957 !important; }\n  /* Fixed Sidebar */\n  .page-sidebar-fixed:not(.page-footer-fixed) .page-content {\n    border-bottom: 0; }\n  .page-sidebar-fixed:not(.page-footer-fixed) .page-footer {\n    background-color: #fff; }\n    .page-sidebar-fixed:not(.page-footer-fixed) .page-footer .page-footer-inner {\n      color: #333; }\n  /* Boxed Layout */\n  .page-boxed {\n    background-color: #303a47 !important;\n    /* Page container */\n    /* Page sidebar */\n    /* Page footer */ }\n    .page-boxed .page-container {\n      background-color: #364150;\n      border-left: 1px solid #3d4957;\n      border-bottom: 1px solid #3d4957; }\n    .page-boxed.page-sidebar-reversed .page-container {\n      border-left: 0;\n      border-right: 1px solid #3d4957; }\n    .page-boxed.page-sidebar-fixed .page-container {\n      border-left: 0;\n      border-bottom: 0; }\n    .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container {\n      border-left: 0;\n      border-right: 0;\n      border-bottom: 0; }\n    .page-boxed.page-sidebar-fixed .page-sidebar {\n      border-left: 1px solid #3d4957; }\n    .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar {\n      border-right: 1px solid #3d4957;\n      border-left: 0; }\n    .page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer {\n      background-color: #303a47 !important; }\n      .page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer .page-footer-inner {\n        color: #98a6ba; }\n  /* Sidebar Menu Wirh Hoverable Submenu */\n  .page-sidebar-menu-hover-submenu li:hover a > .arrow {\n    border-right: 8px solid #323c4b; }\n    .page-sidebar-reversed .page-sidebar-menu-hover-submenu li:hover a > .arrow {\n      border-left: 8px solid #323c4b; }\n  .page-sidebar-menu-hover-submenu li:hover > .sub-menu {\n    background: #323c4b !important; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Page sidebar */\n  .page-sidebar {\n    background-color: #28303b;\n    /* light sidebar */ }\n    .page-sidebar .page-sidebar-menu > li > a {\n      border-top: 1px solid #364150; }\n    .page-sidebar .page-sidebar-menu > li:hover > a, .page-sidebar .page-sidebar-menu > li.open > a {\n      background: #2e3744; }\n    .page-sidebar .page-sidebar-menu > li:last-child > a {\n      border-bottom: 0 !important; }\n    .page-sidebar .page-sidebar-menu > li .sub-menu {\n      background-color: #28303b !important; }\n    .page-sidebar .page-sidebar-menu .sidebar-search input {\n      background-color: #28303b !important; }\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light {\n      /* 1st level links */ }\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li:hover > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.open > a {\n        background: #2e3744; }\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {\n        background: #2e3744; }\n        .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {\n          background: #2e3744; }\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu {\n        background: #28303b !important; }\n        .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a {\n          background: #2e3744 !important; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header.navbar {\n    /* Top menu */ }\n    .page-header.navbar .top-menu {\n      background-color: #364150; }\n      .page-header-fixed-mobile .page-header.navbar .top-menu {\n        background-color: #2b3643; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n        background-color: #415265; }\n        .page-header-fixed-mobile .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          background: none; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle:hover {\n          background-color: #3f4f62; } }\n\n/****\n    Boby\n    ****/\nbody {\n  background-color: #364150; }\n\n/****\n CSS3 Spinner Bar\n****/\n.page-spinner-bar > div,\n.block-spinner-bar > div {\n  background: #4bccd8; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout/scripts/demo.js",
    "content": "/**\nDemo script to handle the theme demo\n**/\nvar Demo = function() {\n\n    // Handle Theme Settings\n    var handleTheme = function() {\n\n        var panel = $('.theme-panel');\n\n        if ($('body').hasClass('page-boxed') === false) {\n            $('.layout-option', panel).val(\"fluid\");\n        }\n\n        $('.sidebar-option', panel).val(\"default\");\n        $('.page-header-option', panel).val(\"fixed\");\n        $('.page-footer-option', panel).val(\"default\");\n        if ($('.sidebar-pos-option').attr(\"disabled\") === false) {\n            $('.sidebar-pos-option', panel).val(App.isRTL() ? 'right' : 'left');\n        }\n\n        //handle theme layout\n        var resetLayout = function() {\n            $(\"body\").\n            removeClass(\"page-boxed\").\n            removeClass(\"page-footer-fixed\").\n            removeClass(\"page-sidebar-fixed\").\n            removeClass(\"page-header-fixed\").\n            removeClass(\"page-sidebar-reversed\");\n\n            $('.page-header > .page-header-inner').removeClass(\"container\");\n\n            if ($('.page-container').parent(\".container\").size() === 1) {\n                $('.page-container').insertAfter('body > .clearfix');\n            }\n\n            if ($('.page-footer > .container').size() === 1) {\n                $('.page-footer').html($('.page-footer > .container').html());\n            } else if ($('.page-footer').parent(\".container\").size() === 1) {\n                $('.page-footer').insertAfter('.page-container');\n                $('.scroll-to-top').insertAfter('.page-footer');\n            }\n\n             $(\".top-menu > .navbar-nav > li.dropdown\").removeClass(\"dropdown-dark\");\n\n            $('body > .container').remove();\n        };\n\n        var lastSelectedLayout = '';\n\n        var setLayout = function() {\n\n            var layoutOption = $('.layout-option', panel).val();\n            var sidebarOption = $('.sidebar-option', panel).val();\n            var headerOption = $('.page-header-option', panel).val();\n            var footerOption = $('.page-footer-option', panel).val();\n            var sidebarPosOption = $('.sidebar-pos-option', panel).val();\n            var sidebarStyleOption = $('.sidebar-style-option', panel).val();\n            var sidebarMenuOption = $('.sidebar-menu-option', panel).val();\n            var headerTopDropdownStyle = $('.page-header-top-dropdown-style-option', panel).val();\n\n            if (sidebarOption == \"fixed\" && headerOption == \"default\") {\n                alert('Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar.');\n                $('.page-header-option', panel).val(\"fixed\");\n                $('.sidebar-option', panel).val(\"fixed\");\n                sidebarOption = 'fixed';\n                headerOption = 'fixed';\n            }\n\n            resetLayout(); // reset layout to default state\n\n            if (layoutOption === \"boxed\") {\n                $(\"body\").addClass(\"page-boxed\");\n\n                // set header\n                $('.page-header > .page-header-inner').addClass(\"container\");\n                var cont = $('body > .page-wrapper > .clearfix').after('<div class=\"container\"></div>');\n\n                // set content\n                $('.page-container').appendTo('body > .page-wrapper > .container');\n\n                // set footer\n                if (footerOption === 'fixed') {\n                    $('.page-footer').html('<div class=\"container\">' + $('.page-footer').html() + '</div>');\n                } else {\n                    $('.page-footer').appendTo('body > .page-wrapper > .container');\n                }\n            }\n\n            if (lastSelectedLayout != layoutOption) {\n                //layout changed, run responsive handler: \n                App.runResizeHandlers();\n            }\n            lastSelectedLayout = layoutOption;\n\n            //header\n            if (headerOption === 'fixed') {\n                $(\"body\").addClass(\"page-header-fixed\");\n                $(\".page-header\").removeClass(\"navbar-static-top\").addClass(\"navbar-fixed-top\");\n            } else {\n                $(\"body\").removeClass(\"page-header-fixed\");\n                $(\".page-header\").removeClass(\"navbar-fixed-top\").addClass(\"navbar-static-top\");\n            }\n\n            //sidebar\n            if ($('body').hasClass('page-full-width') === false) {\n                if (sidebarOption === 'fixed') {\n                    $(\"body\").addClass(\"page-sidebar-fixed\");\n                    $(\"page-sidebar-menu\").addClass(\"page-sidebar-menu-fixed\");\n                    $(\"page-sidebar-menu\").removeClass(\"page-sidebar-menu-default\");\n                    Layout.initFixedSidebarHoverEffect();\n                } else {\n                    $(\"body\").removeClass(\"page-sidebar-fixed\");\n                    $(\"page-sidebar-menu\").addClass(\"page-sidebar-menu-default\");\n                    $(\"page-sidebar-menu\").removeClass(\"page-sidebar-menu-fixed\");\n                    $('.page-sidebar-menu').unbind('mouseenter').unbind('mouseleave');\n                }\n            }\n\n            // top dropdown style\n            if (headerTopDropdownStyle === 'dark') {\n                $(\".top-menu > .navbar-nav > li.dropdown\").addClass(\"dropdown-dark\");\n            } else {\n                $(\".top-menu > .navbar-nav > li.dropdown\").removeClass(\"dropdown-dark\");\n            }\n\n            //footer \n            if (footerOption === 'fixed') {\n                $(\"body\").addClass(\"page-footer-fixed\");\n            } else {\n                $(\"body\").removeClass(\"page-footer-fixed\");\n            }\n\n            //sidebar style\n            if (sidebarStyleOption === 'light') {\n                $(\".page-sidebar-menu\").addClass(\"page-sidebar-menu-light\");\n            } else {\n                $(\".page-sidebar-menu\").removeClass(\"page-sidebar-menu-light\");\n            }\n\n            //sidebar menu \n            if (sidebarMenuOption === 'hover') {\n                if (sidebarOption == 'fixed') {\n                    $('.sidebar-menu-option', panel).val(\"accordion\");\n                    alert(\"Hover Sidebar Menu is not compatible with Fixed Sidebar Mode. Select Default Sidebar Mode Instead.\");\n                } else {\n                    $(\".page-sidebar-menu\").addClass(\"page-sidebar-menu-hover-submenu\");\n                }\n            } else {\n                $(\".page-sidebar-menu\").removeClass(\"page-sidebar-menu-hover-submenu\");\n            }\n\n            //sidebar position\n            if (App.isRTL()) {\n                if (sidebarPosOption === 'left') {\n                    $(\"body\").addClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'right'\n                    });\n                } else {\n                    $(\"body\").removeClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'left'\n                    });\n                }\n            } else {\n                if (sidebarPosOption === 'right') {\n                    $(\"body\").addClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'left'\n                    });\n                } else {\n                    $(\"body\").removeClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'right'\n                    });\n                }\n            }\n\n            Layout.fixContentHeight(); // fix content height            \n            Layout.initFixedSidebar(); // reinitialize fixed sidebar\n        };\n\n        // handle theme colors\n        var setColor = function(color) {\n            var color_ = (App.isRTL() ? color + '-rtl' : color);\n            $('#style_color').attr(\"href\", Layout.getLayoutCssPath() + 'themes/' + color_ + \".min.css\");\n            if (color == 'light2') {\n                $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo-invert.png');\n            } else {\n                $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo.png');\n            }\n        };\n\n        $('.toggler', panel).click(function() {\n            $('.toggler').hide();\n            $('.toggler-close').show();\n            $('.theme-panel > .theme-options').show();\n        });\n\n        $('.toggler-close', panel).click(function() {\n            $('.toggler').show();\n            $('.toggler-close').hide();\n            $('.theme-panel > .theme-options').hide();\n        });\n\n        $('.theme-colors > ul > li', panel).click(function() {\n            var color = $(this).attr(\"data-style\");\n            setColor(color);\n            $('ul > li', panel).removeClass(\"current\");\n            $(this).addClass(\"current\");\n        });\n\n        // set default theme options:\n\n        if ($(\"body\").hasClass(\"page-boxed\")) {\n            $('.layout-option', panel).val(\"boxed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-sidebar-fixed\")) {\n            $('.sidebar-option', panel).val(\"fixed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-header-fixed\")) {\n            $('.page-header-option', panel).val(\"fixed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-footer-fixed\")) {\n            $('.page-footer-option', panel).val(\"fixed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-sidebar-reversed\")) {\n            $('.sidebar-pos-option', panel).val(\"right\");\n        }\n\n        if ($(\".page-sidebar-menu\").hasClass(\"page-sidebar-menu-light\")) {\n            $('.sidebar-style-option', panel).val(\"light\");\n        }\n\n        if ($(\".page-sidebar-menu\").hasClass(\"page-sidebar-menu-hover-submenu\")) {\n            $('.sidebar-menu-option', panel).val(\"hover\");\n        }\n\n        var sidebarOption = $('.sidebar-option', panel).val();\n        var headerOption = $('.page-header-option', panel).val();\n        var footerOption = $('.page-footer-option', panel).val();\n        var sidebarPosOption = $('.sidebar-pos-option', panel).val();\n        var sidebarStyleOption = $('.sidebar-style-option', panel).val();\n        var sidebarMenuOption = $('.sidebar-menu-option', panel).val();\n\n        $('.layout-option, .page-header-option, .page-header-top-dropdown-style-option, .sidebar-option, .page-footer-option, .sidebar-pos-option, .sidebar-style-option, .sidebar-menu-option', panel).change(setLayout);\n    };\n\n    // handle theme style\n    var setThemeStyle = function(style) {\n        var file = (style === 'rounded' ? 'components-rounded' : 'components');\n        file = (App.isRTL() ? file + '-rtl' : file);\n\n        $('#style_components').attr(\"href\", App.getGlobalCssPath() + file + \".min.css\");\n\n        if (typeof Cookies !== \"undefined\") {\n            Cookies.set('layout-style-option', style);\n        }\n    };\n\n    return {\n\n        //main function to initiate the theme\n        init: function() {\n            // handles style customer tool\n            handleTheme(); \n            \n            // handle layout style change\n            $('.theme-panel .layout-style-option').change(function() {\n                 setThemeStyle($(this).val());\n            });\n\n            // set layout style from cookie\n            if (typeof Cookies !== \"undefined\" && Cookies.get('layout-style-option') === 'rounded') {\n                setThemeStyle(Cookies.get('layout-style-option'));\n                $('.theme-panel .layout-style-option').val(Cookies.get('layout-style-option'));\n            }            \n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n       Demo.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout/scripts/layout.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\nvar Layout = function () {\n\n    var layoutImgPath = 'layouts/layout/img/';  \n\n    var layoutCssPath = 'layouts/layout/css/';\n\n    var resBreakpointMd = App.getResponsiveBreakpoint('md');\n\n    var ajaxContentSuccessCallbacks = [];\n    var ajaxContentErrorCallbacks = [];\n\n    //* BEGIN:CORE HANDLERS *//\n    // this function handles responsive layout on screen size resize or mobile device rotate.\n\n    // Set proper height for sidebar and content. The content and sidebar height must be synced always.\n    var handleSidebarAndContentHeight = function () {\n        var content = $('.page-content');\n        var sidebar = $('.page-sidebar');\n        var body = $('body');\n        var height;\n\n        if (body.hasClass(\"page-footer-fixed\") === true && body.hasClass(\"page-sidebar-fixed\") === false) {\n            var available_height = App.getViewPort().height - $('.page-footer').outerHeight() - $('.page-header').outerHeight();\n            var sidebar_height = sidebar.outerHeight();\n            if (sidebar_height > available_height) {\n                available_height = sidebar_height + $('.page-footer').outerHeight();\n            }\n            if (content.height() < available_height) {\n                content.css('min-height', available_height);\n            }\n        } else {\n            if (body.hasClass('page-sidebar-fixed')) {\n                height = _calculateFixedSidebarViewportHeight();\n                if (body.hasClass('page-footer-fixed') === false) {\n                    height = height - $('.page-footer').outerHeight();\n                }\n            } else {\n                var headerHeight = $('.page-header').outerHeight();\n                var footerHeight = $('.page-footer').outerHeight();\n\n                if (App.getViewPort().width < resBreakpointMd) {\n                    height = App.getViewPort().height - headerHeight - footerHeight;\n                } else {\n                    height = sidebar.height() + 20;\n                }\n\n                if ((height + headerHeight + footerHeight) <= App.getViewPort().height) {\n                    height = App.getViewPort().height - headerHeight - footerHeight;\n                }\n            }\n            content.css('min-height', height);\n        }\n    };\n\n    // Handle sidebar menu links\n    var handleSidebarMenuActiveLink = function (mode, el, $state) {\n        var url = location.hash.toLowerCase();\n        var menu = $('.page-sidebar-menu');\n \n        if (mode === 'click' || mode === 'set') {\n            el = $(el);\n        } else if (mode === 'match') {\n            menu.find('li > a').each(function () {\n                var state = $(this).attr('ui-sref');\n                if ($state && state) {\n                    if ($state.is(state)) {\n                        el = $(this);\n                        return;\n                    }\n                } else {\n                    var path = $(this).attr('href');\n                    if (path) {\n                        // url match condition         \n                        path = path.toLowerCase();\n                        if (path.length > 1 && url.substr(1, path.length - 1) == path.substr(1)) {\n                            el = $(this);\n                            return;\n                        }\n                    }\n                }\n            });\n        }\n \n        if (!el || el.size() == 0) {\n            return;\n        }\n \n        if (el.attr('href') == 'javascript:;' ||\n            el.attr('ui-sref') == 'javascript:;' ||\n            el.attr('href') == '#' ||\n            el.attr('ui-sref') == '#'\n            ) {\n            return;\n        }\n \n        var slideSpeed = parseInt(menu.data('slide-speed'));\n        var keepExpand = menu.data('keep-expanded');\n \n        // begin: handle active state\n        if (menu.hasClass('page-sidebar-menu-hover-submenu') === false) {\n            menu.find('li.nav-item.open').each(function () {\n                var match = false;\n                $(this).find('li').each(function () {\n                    var state = $(this).attr('ui-sref');\n                    if ($state && state) {\n                        if ($state.is(state)) {\n                            match = true;\n                            return;\n                        }\n                    } else if ($(this).find(' > a').attr('href') === el.attr('href')) {\n                        match = true;\n                        return;\n                    }\n                });\n \n                if (match === true) {\n                    return;\n                }\n \n                $(this).removeClass('open');\n                $(this).find('> a > .arrow.open').removeClass('open');\n                $(this).find('> .sub-menu').slideUp();\n            });\n        } else {\n            menu.find('li.open').removeClass('open');\n        }\n \n        menu.find('li.active').removeClass('active');\n        menu.find('li > a > .selected').remove();\n        // end: handle active state\n \n        el.parents('li').each(function () {\n            $(this).addClass('active');\n            $(this).find('> a > span.arrow').addClass('open');\n \n            if ($(this).parent('ul.page-sidebar-menu').size() === 1) {\n                $(this).find('> a').append('<span class=\"selected\"></span>');\n            }\n \n            if ($(this).children('ul.sub-menu').size() === 1) {\n                $(this).addClass('open');\n            }\n        });\n \n        if (mode === 'click') {\n            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass('in')) { // close the menu on mobile view while laoding a page \n                $('.page-header .responsive-toggler').click();\n            }\n        }\n    };\n\n    // Handle sidebar menu\n    var handleSidebarMenu = function () {\n        // offcanvas mobile menu \n        $('.page-sidebar-mobile-offcanvas .responsive-toggler').click(function(e) {\n            $('body').toggleClass('page-sidebar-mobile-offcanvas-open');\n            e.preventDefault();\n            e.stopPropagation();\n        });\n\n        if ($('body').hasClass('page-sidebar-mobile-offcanvas')) {\n            $(document).on('click', function(e) {\n                if ($('body').hasClass('page-sidebar-mobile-offcanvas-open')) {\n                    if ($(e.target).closest('.page-sidebar-mobile-offcanvas .responsive-toggler').length === 0 && \n                        $(e.target).closest('.page-sidebar-wrapper').length === 0) { \n                        $('body').removeClass('page-sidebar-mobile-offcanvas-open');\n                        e.preventDefault();\n                        e.stopPropagation();\n                    }\n                }                \n            });\n        }\n\n        // handle sidebar link click\n        $('.page-sidebar-menu').on('click', 'li > a.nav-toggle, li > a > span.nav-toggle', function (e) {\n            var that = $(this).closest('.nav-item').children('.nav-link');\n\n            if (App.getViewPort().width >= resBreakpointMd && !$('.page-sidebar-menu').attr(\"data-initialized\") && $('body').hasClass('page-sidebar-closed') &&  that.parent('li').parent('.page-sidebar-menu').size() === 1) {\n                return;\n            }\n\n            var hasSubMenu = that.next().hasClass('sub-menu');\n\n            if (App.getViewPort().width >= resBreakpointMd && that.parents('.page-sidebar-menu-hover-submenu').size() === 1) { // exit of hover sidebar menu\n                return;\n            }\n\n            if (hasSubMenu === false) {\n                if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass(\"in\")) { // close the menu on mobile view while laoding a page \n                    $('.page-header .responsive-toggler').click();\n                }\n                return;\n            }\n\n            var parent =that.parent().parent();\n            var the = that;\n            var menu = $('.page-sidebar-menu');\n            var sub = that.next();\n\n            var autoScroll = menu.data(\"auto-scroll\");\n            var slideSpeed = parseInt(menu.data(\"slide-speed\"));\n            var keepExpand = menu.data(\"keep-expanded\");\n            \n            if (!keepExpand) {\n                parent.children('li.open').children('a').children('.arrow').removeClass('open');\n                parent.children('li.open').children('.sub-menu:not(.always-open)').slideUp(slideSpeed);\n                parent.children('li.open').removeClass('open');\n            }\n\n            var slideOffeset = -200;\n\n            if (sub.is(\":visible\")) {\n                $('.arrow', the).removeClass(\"open\");\n                the.parent().removeClass(\"open\");\n                sub.slideUp(slideSpeed, function () {\n                    if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {\n                        if ($('body').hasClass('page-sidebar-fixed')) {\n                            menu.slimScroll({\n                                'scrollTo': (the.position()).top\n                            });\n                        } else {\n                            App.scrollTo(the, slideOffeset);\n                        }\n                    }\n                    handleSidebarAndContentHeight();\n                });\n            } else if (hasSubMenu) {\n                $('.arrow', the).addClass(\"open\");\n                the.parent().addClass(\"open\");\n                sub.slideDown(slideSpeed, function () {\n                    if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {\n                        if ($('body').hasClass('page-sidebar-fixed')) {\n                            menu.slimScroll({\n                                'scrollTo': (the.position()).top\n                            });\n                        } else {\n                            App.scrollTo(the, slideOffeset);\n                        }\n                    }\n                    handleSidebarAndContentHeight();\n                });\n            }\n\n            e.preventDefault();\n        });\n\n        // handle menu close for angularjs version\n        if (App.isAngularJsApp()) {\n            $(\".page-sidebar-menu li > a\").on(\"click\", function(e) {\n                if (App.getViewPort().width < resBreakpointMd && $(this).next().hasClass('sub-menu') === false) {\n                    $('.page-header .responsive-toggler').click();\n                }\n            });\n        }\n\n        // handle ajax links within sidebar menu\n        $('.page-sidebar').on('click', ' li > a.ajaxify', function (e) {\n            e.preventDefault();\n            App.scrollTop();\n            var url = $(this).attr(\"href\");\n            var menuContainer = $('.page-sidebar ul');\n\n            menuContainer.children('li.active').removeClass('active');\n            menuContainer.children('arrow.open').removeClass('open');\n\n            $(this).parents('li').each(function () {\n                $(this).addClass('active');\n                $(this).children('a > span.arrow').addClass('open');\n            });\n            $(this).parents('li').addClass('active');\n\n            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass(\"in\")) { // close the menu on mobile view while laoding a page \n                $('.page-header .responsive-toggler').click();\n            }\n\n            Layout.loadAjaxContent(url, $(this));\n        });\n\n        // handle ajax link within main content\n        $('.page-content').on('click', '.ajaxify', function (e) {\n            e.preventDefault();\n            App.scrollTop();\n\n            var url = $(this).attr(\"href\");\n\n            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass(\"in\")) { // close the menu on mobile view while laoding a page \n                $('.page-header .responsive-toggler').click();\n            }\n\n            Layout.loadAjaxContent(url);\n        });\n\n        // handle scrolling to top on responsive menu toggler click when header is fixed for mobile view\n        $(document).on('click', '.page-header-fixed-mobile .page-header .responsive-toggler', function(){\n            App.scrollTop(); \n        });      \n     \n        // handle sidebar hover effect        \n        handleFixedSidebarHoverEffect();\n\n        // handle the search bar close\n        $('.page-sidebar').on('click', '.sidebar-search .remove', function (e) {\n            e.preventDefault();\n            $('.sidebar-search').removeClass(\"open\");\n        });\n\n        // handle the search query submit on enter press\n        $('.page-sidebar .sidebar-search').on('keypress', 'input.form-control', function (e) {\n            if (e.which == 13) {\n                $('.sidebar-search').submit();\n                return false; //<---- Add this line\n            }\n        });\n\n        // handle the search submit(for sidebar search and responsive mode of the header search)\n        $('.sidebar-search .submit').on('click', function (e) {\n            e.preventDefault();\n            if ($('body').hasClass(\"page-sidebar-closed\")) {\n                if ($('.sidebar-search').hasClass('open') === false) {\n                    if ($('.page-sidebar-fixed').size() === 1) {\n                        $('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button\n                    }\n                    $('.sidebar-search').addClass(\"open\");\n                } else {\n                    $('.sidebar-search').submit();\n                }\n            } else {\n                $('.sidebar-search').submit();\n            }\n        });\n\n        // handle close on body click\n        if ($('.sidebar-search').size() !== 0) {\n            $('.sidebar-search .input-group').on('click', function(e){\n                e.stopPropagation();\n            });\n\n            $('body').on('click', function() {\n                if ($('.sidebar-search').hasClass('open')) {\n                    $('.sidebar-search').removeClass(\"open\");\n                }\n            });\n        }\n    };\n\n    // Helper function to calculate sidebar height for fixed sidebar layout.\n    var _calculateFixedSidebarViewportHeight = function () {\n        var sidebarHeight = App.getViewPort().height - $('.page-header').outerHeight(true);\n        if ($('body').hasClass(\"page-footer-fixed\")) {\n            sidebarHeight = sidebarHeight - $('.page-footer').outerHeight();\n        }\n\n        return sidebarHeight;\n    };\n\n    // Handles fixed sidebar\n    var handleFixedSidebar = function () {\n        var menu = $('.page-sidebar-menu');\n\n        handleSidebarAndContentHeight();\n\n        if ($('.page-sidebar-fixed').size() === 0) {\n            App.destroySlimScroll(menu);\n            return;\n        }\n\n        if (App.getViewPort().width >= resBreakpointMd && !$('body').hasClass('page-sidebar-menu-not-fixed')) {\n            menu.attr(\"data-height\", _calculateFixedSidebarViewportHeight());\n            App.destroySlimScroll(menu);\n            App.initSlimScroll(menu);\n            handleSidebarAndContentHeight();\n        } \n    };\n\n    // Handles sidebar toggler to close/hide the sidebar.\n    var handleFixedSidebarHoverEffect = function () {\n        if ($('body').hasClass('page-sidebar-fixed')) {\n            $('.page-sidebar').on('mouseenter', function () {\n                if ($('body').hasClass('page-sidebar-closed')) {\n                    $(this).find('.page-sidebar-menu').removeClass('page-sidebar-menu-closed');\n                }\n            }).on('mouseleave', function () {\n                if ($('body').hasClass('page-sidebar-closed')) {\n                    $(this).find('.page-sidebar-menu').addClass('page-sidebar-menu-closed');\n                }\n            });\n        }\n    };\n\n    // Hanles sidebar toggler\n    var handleSidebarToggler = function () {       \n        /**\n        if (Cookies && Cookies.get('sidebar_closed') === '1' && App.getViewPort().width >= resBreakpointMd) {\n            $('body').addClass('page-sidebar-closed');\n            $('.page-sidebar-menu').addClass('page-sidebar-menu-closed');\n        }\n        */\n\n        // handle sidebar show/hide\n        $('body').on('click', '.sidebar-toggler', function (e) {\n            var body = $('body');\n            var sidebar = $('.page-sidebar');\n            var sidebarMenu = $('.page-sidebar-menu');\n            $(\".sidebar-search\", sidebar).removeClass(\"open\");\n\n            if (body.hasClass(\"page-sidebar-closed\")) {\n                body.removeClass(\"page-sidebar-closed\");\n                sidebarMenu.removeClass(\"page-sidebar-menu-closed\");\n                if (Cookies) {\n                    Cookies.set('sidebar_closed', '0');\n                }\n            } else {\n                body.addClass(\"page-sidebar-closed\");\n                sidebarMenu.addClass(\"page-sidebar-menu-closed\");\n                if (body.hasClass(\"page-sidebar-fixed\")) {\n                    sidebarMenu.trigger(\"mouseleave\");\n                }\n                if (Cookies) {\n                    Cookies.set('sidebar_closed', '1');\n                }\n            }\n\n            $(window).trigger('resize');\n        });\n    };\n\n    // Handles the horizontal menu\n    var handleHorizontalMenu = function () {\n        //handle tab click\n        $('.page-header').on('click', '.hor-menu a[data-toggle=\"tab\"]', function (e) {\n            e.preventDefault();\n            var nav = $(\".hor-menu .nav\");\n            var active_link = nav.find('li.current');\n            $('li.active', active_link).removeClass(\"active\");\n            $('.selected', active_link).remove();\n            var new_link = $(this).parents('li').last();\n            new_link.addClass(\"current\");\n            new_link.find(\"a:first\").append('<span class=\"selected\"></span>');\n        });\n\n        // handle search box expand/collapse        \n        $('.page-header').on('click', '.search-form', function (e) {\n            $(this).addClass(\"open\");\n            $(this).find('.form-control').focus();\n\n            $('.page-header .search-form .form-control').on('blur', function (e) {\n                $(this).closest('.search-form').removeClass(\"open\");\n                $(this).unbind(\"blur\");\n            });\n        });\n\n        // handle hor menu search form on enter press\n        $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function (e) {\n            if (e.which == 13) {\n                $(this).closest('.search-form').submit();\n                return false;\n            }\n        });\n\n        // handle header search button click\n        $('.page-header').on('mousedown', '.search-form.open .submit', function (e) {\n            e.preventDefault();\n            e.stopPropagation();\n            $(this).closest('.search-form').submit();\n        });\n\n        \n        $(document).on('click', '.mega-menu-dropdown .dropdown-menu', function (e) {\n            e.stopPropagation();\n        });\n    };\n\n    // Handles Bootstrap Tabs.\n    var handleTabs = function () {\n        // fix content height on tab click\n        $('body').on('shown.bs.tab', 'a[data-toggle=\"tab\"]', function () {\n            handleSidebarAndContentHeight();\n        });\n    };\n\n    // Handles the go to top button at the footer\n    var handleGoTop = function () {\n        var offset = 300;\n        var duration = 500;\n\n        if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {  // ios supported\n            $(window).bind(\"touchend touchcancel touchleave\", function(e){\n               if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        } else {  // general \n            $(window).scroll(function() {\n                if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        }\n        \n        $('.scroll-to-top').click(function(e) {\n            e.preventDefault();\n            $('html, body').animate({scrollTop: 0}, duration);\n            return false;\n        });\n    };\n\n    // Hanlde 100% height elements(block, portlet, etc)\n    var handle100HeightContent = function () {\n\n        $('.full-height-content').each(function(){\n            var target = $(this);\n            var height;\n\n            height = App.getViewPort().height -\n                $('.page-header').outerHeight(true) -\n                $('.page-footer').outerHeight(true) -\n                $('.page-title').outerHeight(true) -\n                $('.page-bar').outerHeight(true);\n\n            if (target.hasClass('portlet')) {\n                var portletBody = target.find('.portlet-body');\n\n                App.destroySlimScroll(portletBody.find('.full-height-content-body')); // destroy slimscroll \n                \n                height = height -\n                    target.find('.portlet-title').outerHeight(true) -\n                    parseInt(target.find('.portlet-body').css('padding-top')) -\n                    parseInt(target.find('.portlet-body').css('padding-bottom')) - 5;\n\n                if (App.getViewPort().width >= resBreakpointMd && target.hasClass(\"full-height-content-scrollable\")) {\n                    height = height - 35;\n                    portletBody.find('.full-height-content-body').css('height', height);\n                    App.initSlimScroll(portletBody.find('.full-height-content-body'));\n                } else {\n                    portletBody.css('min-height', height);\n                }\n            } else {\n               App.destroySlimScroll(target.find('.full-height-content-body')); // destroy slimscroll \n\n                if (App.getViewPort().width >= resBreakpointMd && target.hasClass(\"full-height-content-scrollable\")) {\n                    height = height - 35;\n                    target.find('.full-height-content-body').css('height', height);\n                    App.initSlimScroll(target.find('.full-height-content-body'));\n                } else {\n                    target.css('min-height', height);\n                }\n            }\n        });        \n    };\n    //* END:CORE HANDLERS *//\n\n    return {\n        // Main init methods to initialize the layout\n        //IMPORTANT!!!: Do not modify the core handlers call order.\n\n        initHeader: function() {\n            handleHorizontalMenu(); // handles horizontal menu    \n        },\n\n        setSidebarMenuActiveLink: function(mode, el) {\n            handleSidebarMenuActiveLink(mode, el, null);\n        },\n\n        setAngularJsSidebarMenuActiveLink: function(mode, el, $state) {\n            handleSidebarMenuActiveLink(mode, el, $state);\n        },\n\n        initSidebar: function($state) {\n            //layout handlers\n            handleFixedSidebar(); // handles fixed sidebar menu\n            handleSidebarMenu(); // handles main menu\n            handleSidebarToggler(); // handles sidebar hide/show\n\n            if (App.isAngularJsApp()) {      \n                handleSidebarMenuActiveLink('match', null, $state); // init sidebar active links \n            }\n\n            App.addResizeHandler(handleFixedSidebar); // reinitialize fixed sidebar on window resize\n        },\n\n        initContent: function() {\n            handle100HeightContent(); // handles 100% height elements(block, portlet, etc)\n            handleTabs(); // handle bootstrah tabs\n\n            App.addResizeHandler(handleSidebarAndContentHeight); // recalculate sidebar & content height on window resize\n            App.addResizeHandler(handle100HeightContent); // reinitialize content height on window resize \n        },\n\n        initFooter: function() {\n            handleGoTop(); //handles scroll to top functionality in the footer\n        },\n\n        init: function () {            \n            this.initHeader();\n            this.initSidebar(null);\n            this.initContent();\n            this.initFooter();\n        },\n\n        loadAjaxContent: function(url, sidebarMenuLink) {\n            var pageContent = $('.page-content .page-content-body');    \n\n            App.startPageLoading({animate: true});\n            \n            $.ajax({\n                type: \"GET\",\n                cache: false,\n                url: url,\n                dataType: \"html\",\n                success: function (res) {\n                    App.stopPageLoading();\n                                    \n                    for (var i = 0; i < ajaxContentSuccessCallbacks.length; i++) {\n                        ajaxContentSuccessCallbacks[i].call(res);\n                    }\n\n                    if (sidebarMenuLink.size() > 0 && sidebarMenuLink.parents('li.open').size() === 0) {\n                        $('.page-sidebar-menu > li.open > a').click();\n                    }\n\n                    pageContent.html(res);\n                    Layout.fixContentHeight(); // fix content height\n                    App.initAjax(); // initialize core stuff\n                },\n                error: function (response, ajaxOptions, thrownError) {\n                    App.stopPageLoading();\n                    debugger;\n                    if (response.status == 404) {// 页面没有找到\n                    \tpageContent.html('<h4><div>404...</div><div>找不到页面...</div></h4>');\n                    } else if (response.status == 401) {// session过期\n                    \tSweetAlert.errorSessionExpire();\n//                    \twindow.location = $(\"#hdnContextPath\").val() + \"/login.shtml\";\n                    } else if (response.status == 507) {// 用户访问次数太频繁 \n                    \tSweetAlert.error(\"您的访问次数太频繁, 请过一会再试...\");\n                    } else {// 其它错误\n                    \tpageContent.html('<h4><div>发生其他错误...</div><div>请联系管理员...</div></h4>');\n                    }\n\n                    for (var i = 0; i < ajaxContentErrorCallbacks.length; i++) {\n                        ajaxContentSuccessCallbacks[i].call(response);\n                    }                    \n                }\n            });\n        },\n\n        addAjaxContentSuccessCallback: function(callback) {\n            ajaxContentSuccessCallbacks.push(callback);\n        },\n\n        addAjaxContentErrorCallback: function(callback) {\n            ajaxContentErrorCallbacks.push(callback);\n        },\n\n        //public function to fix the sidebar and content height accordingly\n        fixContentHeight: function () {\n            handleSidebarAndContentHeight();\n        },\n\n        initFixedSidebarHoverEffect: function() {\n            handleFixedSidebarHoverEffect();\n        },\n\n        initFixedSidebar: function() {\n            handleFixedSidebar();\n        },\n\n        getLayoutImgPath: function () {\n            return App.getAssetsPath() + layoutImgPath;\n        },\n\n        getLayoutCssPath: function () {\n            return App.getAssetsPath() + layoutCssPath;\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n       Layout.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout3/css/custom.css",
    "content": "/* 此文件用于覆盖原css */\n\n/* *,  */\nbody{font:14px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\nh1, h2, h3, h4, h5, h6, h7 {font:13px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\n/* .page-content-wrapper { */\n/* \tmargin-top: -23px; */\n/* } */\n\n/* 必填项 */\n.field-required {\n\tcolor: red;\n}\n\n\n/* .page-header .page-header-menu { */\n/*     background: #3c763d; */\n/* } */\n\n.page-header .page-header-menu .hor-menu .navbar-nav>li>a, .page-header .page-header-menu .hor-menu .navbar-nav>li>a>i {\n    color: #d6e8d5;\n}\n\n\n/** PC 常用尺寸 start **/\n@media screen and (max-width: 2059px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1809px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1559px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1309px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1059px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 991px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n\t\n\t.breadcrumb {\n\t\tmargin-top: 15px;\t\n\t}\n}\n\n@media screen and (max-width: 809px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media only screen and (max-width: 870px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media screen and (max-width: 520px){\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n/** PC 常用尺寸 end **/\n\n@media (max-width: 767px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media (max-width: 568px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media (max-width: 320px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n/* \t\t#EFF3F8 */\n\t}\n}\n\t\n\n\n.page-prefooter {\n    background: #3c763d;\n    color: #91b389;\n    padding: 15px 0;\n    clear: both;\n}\n\n.page-footer {\n    background: #104a06;\n    color: #91b389;\n}\n\n.page-prefooter h2 {\n\tfont-size: 18px;\n    color: #c1d8c7;\n}\n\n.footer-p-first-line {\n\tfont-size: 16px;\n}\n\n.footer-p-other-line {\n\tline-height:25px;\n\tfont-size: 16px;\n}\n\n.page-prefooter a {\n    color: #abccb9;\n}\n\n\n.scroll-to-top > i {\n    color: #6ab98e;\n}\n\n\n.faq-content-1 .faq-section {\n    background-color: #fff;\n    padding: 5px 30px 30px;\n    margin-bottom: 30px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout3/css/layout.css",
    "content": "@charset \"UTF-8\";\n/* Cubic Bezier Transition */\n@media print {\n  body {\n    background-color: #fff !important; }\n  .page-header {\n    display: none; }\n  .theme-panel {\n    display: none; }\n  .hidden-print {\n    display: none; }\n  .page-prefooter {\n    display: none; }\n  .page-footer {\n    display: none; }\n  .page-head {\n    display: none; }\n  .page-breadcrumb {\n    display: none; }\n  .no-page-break {\n    page-break-after: avoid; }\n  .page-container {\n    margin: 0px !important;\n    padding: 0px !important; }\n    .page-container .page-content {\n      padding: 0 !important;\n      margin: 0 !important; }\n      .page-container .page-content > .container {\n        width: 100%;\n        max-width: none !important;\n        margin: 0 !important; }\n      .page-container .page-content > .container > .portlet,\n      .page-container .page-content > .container-fluid > .portlet {\n        padding: 0;\n        margin: 0; }\n        .page-container .page-content > .container > .portlet > .portlet-body,\n        .page-container .page-content > .container-fluid > .portlet > .portlet-body {\n          padding: 0;\n          margin: 0; } }\n\n/***\nPage Header\n***/\n.page-header {\n  opacity: 1 ;\n  filter: alpha(opacity=100) ;\n  width: 100%;\n  margin: 0;\n  border: 0;\n  padding: 0;\n  box-shadow: none;\n  height: 126px;\n  background-image: none;\n  /* Header container */\n  /* Fixed header */\n  /* Static header */\n  /* Page Header Top */\n  /* Page Header Menu */ }\n  .page-header:before, .page-header:after {\n    content: \" \";\n    display: table; }\n  .page-header:after {\n    clear: both; }\n  .page-header .container,\n  .page-header .container-fluid {\n    position: relative; }\n  .page-header.navbar-fixed-top {\n    z-index: 9995; }\n  .page-header.navbar-static-top {\n    z-index: 9995; }\n  .page-header .page-header-top {\n    height: 75px;\n    /* Header logo */\n    /* Top menu */\n    /* Menu Toggler */ }\n    .page-header .page-header-top.fixed {\n      width: 100%;\n      position: fixed;\n      top: 0;\n      left: 0;\n      z-index: 9995; }\n    .page-header .page-header-top .page-logo {\n      float: left;\n      display: block;\n      width: 255px;\n      height: 75px; }\n      .page-header .page-header-top .page-logo .logo-default {\n        margin: 29.5px 0 0 0; }\n    .page-header .page-header-top .top-menu {\n      margin: 13px 0 0;\n      padding: 0;\n      float: right; }\n      .page-header .page-header-top .top-menu .navbar-nav {\n        padding: 0;\n        margin-right: 0;\n        display: block;\n        /* Top Links */\n        /* Separator */\n        /* Extended Dropdowns */\n        /* Notification */\n        /* Inbox */\n        /* Tasks */\n        /* User */\n        /* Quick Sidebar Toggler */\n        /* Language */\n        /* Dark version */ }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown {\n          margin: 0;\n          padding: 0 4px;\n          height: 50px;\n          display: inline-block;\n          /* 1st level */\n          /* 2nd level */ }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle {\n            margin: 0 0 0 1px;\n            padding: 17px 10px 8px 10px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:last-child {\n              padding-right: 0; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i {\n              font-size: 19px; }\n              .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i.glyphicon {\n                font-size: 18px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > .badge {\n              font-family: \"Open Sans\", sans-serif;\n              position: absolute;\n              top: 9px;\n              right: 24px;\n              font-weight: 300;\n              padding: 3px 6px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus {\n              background: none; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-menu {\n            z-index: 9996;\n            margin-top: 5px;\n            margin-right: 7px;\n            font-family: \"Open Sans\", sans-serif;\n            -webkit-border-radius: 4px;\n            -moz-border-radius: 4px;\n            -ms-border-radius: 4px;\n            -o-border-radius: 4px;\n            border-radius: 4px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-menu:before {\n              position: absolute;\n              top: -8px;\n              right: 9px;\n              display: inline-block !important;\n              border-right: 8px solid transparent;\n              border-bottom: 8px solid #efefef;\n              border-left: 8px solid transparent;\n              content: ''; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-menu:after {\n              position: absolute;\n              top: -7px;\n              right: 10px;\n              display: inline-block !important;\n              border-right: 7px solid transparent;\n              border-bottom: 7px solid #fff;\n              border-left: 7px solid transparent;\n              content: ''; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-separator {\n          padding-left: 0px;\n          padding-right: 6px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-separator .separator {\n            float: left;\n            display: inline-block;\n            width: 1px;\n            height: 18px;\n            margin-left: 5px;\n            margin-top: 17px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu {\n          min-width: 160px;\n          max-width: 300px;\n          width: 300px;\n          z-index: 9996;\n          /* header notifications dropdowns */ }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n            display: block;\n            overflow: hidden;\n            padding: 15px 15px;\n            letter-spacing: 0.5px;\n            -webkit-border-radius: 4px 4px 0 0;\n            -moz-border-radius: 4px 4px 0 0;\n            -ms-border-radius: 4px 4px 0 0;\n            -o-border-radius: 4px 4px 0 0;\n            border-radius: 4px 4px 0 0; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n              margin: 0;\n              padding: 0;\n              float: left;\n              font-size: 13px;\n              display: inline-block; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n              display: inline-block;\n              padding: 0;\n              background: none;\n              clear: inherit;\n              font-size: 12px;\n              font-weight: 400;\n              position: absolute;\n              right: 10px;\n              border: 0;\n              margin-top: -2px; }\n              .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n                text-decoration: none; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list {\n            padding-right: 0 !important;\n            padding-left: 0;\n            list-style: none; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n              display: block;\n              clear: both;\n              font-weight: 300;\n              line-height: 20px;\n              white-space: normal;\n              font-size: 13px;\n              padding: 16px 15px 18px;\n              text-shadow: none; }\n              .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n                opacity: 1 ;\n                filter: alpha(opacity=100) ;\n                text-decoration: none; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li:first-child a {\n              border-top: none; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details {\n          overflow: hidden; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon {\n            margin-right: 10px;\n            -webkit-border-radius: 50%;\n            -moz-border-radius: 50%;\n            -ms-border-radius: 50%;\n            -o-border-radius: 50%;\n            border-radius: 50%; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon i {\n              margin-right: 2px;\n              margin-left: 1px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon .badge {\n              right: 15px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .time {\n          float: right;\n          max-width: 75px;\n          font-size: 11px;\n          font-weight: 400;\n          opacity: 0.7 ;\n          filter: alpha(opacity=70) ;\n          text-align: right;\n          padding: 1px 5px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle {\n          padding: 17px 0px 8px 8px;\n          /* safari only hack */ }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .circle {\n            float: left;\n            margin-top: -5px;\n            padding: 3px 10px 4px 10px;\n            -webkit-border-radius: 50% !important;\n            -moz-border-radius: 50% !important;\n            -ms-border-radius: 50% !important;\n            -o-border-radius: 50% !important;\n            border-radius: 50% !important;\n            font-family: \"Open Sans\", sans-serif;\n            font-weight: 300; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner {\n            float: left;\n            margin-left: -4px;\n            width: 0;\n            height: 0;\n            border-style: solid;\n            border-width: 8px 0 9px 9px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner:not(:root:root) {\n            margin-left: -5px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo {\n          float: left;\n          margin: 0 6px 6px 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo img {\n            height: 40px;\n            width: 40px;\n            -webkit-border-radius: 50% !important;\n            -moz-border-radius: 50% !important;\n            -ms-border-radius: 50% !important;\n            -o-border-radius: 50% !important;\n            border-radius: 50% !important; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li a:hover {\n          text-decoration: none; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject {\n          display: block;\n          margin-left: 46px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .from {\n            font-size: 14px;\n            font-weight: 600; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .time {\n            font-size: 12px;\n            font-weight: 400;\n            opacity: 0.5 ;\n            filter: alpha(opacity=50) ;\n            float: right; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .message {\n          display: block !important;\n          font-size: 12px;\n          line-height: 1.3;\n          margin-left: 46px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task {\n          margin-bottom: 5px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .desc {\n            font-size: 13px;\n            font-weight: 300; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .percent {\n            color: #36c6d3;\n            float: right;\n            font-weight: 600;\n            display: inline-block; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress {\n          display: block;\n          height: 8px;\n          margin: 8px 0 2px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress .progress-bar {\n            box-shadow: none; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          padding: 12px 6px 7px 6px;\n          padding-left: 0;\n          padding-right: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > img {\n            margin-top: -8px;\n            margin-right: 8px;\n            height: 40px;\n            float: left; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > .username {\n            float: left;\n            font-size: 400;\n            font-size: 14px;\n            margin-top: 4px;\n            margin-right: 2px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > i {\n            float: left;\n            font-size: 14px;\n            margin-top: 7px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu {\n          width: 210px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a {\n            font-size: 14px;\n            font-weight: 300;\n            font-size: 13px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a i {\n              width: 15px;\n              display: inline-block;\n              margin-right: 9px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a .badge {\n              margin-right: 10px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler {\n          cursor: pointer;\n          padding: 17px 10px 8px 10px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i {\n            color: #c1ccd1;\n            font-size: 19px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i:before {\n              content: \"\"/*rtl:\"\"*/; }\n            .page-quick-sidebar-open .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i:before {\n              content: \"\"/*rtl:\"\"*/; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i:hover {\n              color: #a4b4bb; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language {\n          padding-left: 0;\n          padding-right: 0;\n          margin: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle {\n            padding: 16px 10px 9px 2px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > img {\n              margin-bottom: 2px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > i {\n              font-size: 14px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a {\n            font-size: 13px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a > img {\n              margin-bottom: 2px;\n              margin-right: 5px; }\n        .page-header .page-header-top .top-menu .navbar-nav li.dropdown-dark .dropdown-menu {\n          border: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before {\n            border-left: none;\n            border-right: none; }\n          .page-header .page-header-top .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list > li.external a {\n            background: none !important;\n            border: none !important; }\n    .page-header .page-header-top .menu-toggler {\n      float: right;\n      display: none;\n      margin: 23px 3px 0 13px;\n      width: 40px;\n      height: 30px;\n      background: url(../img/menu-toggler.png) center center;\n      background-repeat: no-repeat;\n      opacity: 0.7 ;\n      filter: alpha(opacity=70) ; }\n      .page-header .page-header-top .menu-toggler:hover {\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n  .page-header .page-header-menu {\n    display: block;\n    height: 51px;\n    clear: both;\n    /* Mega menu */\n    /* Search box */ }\n    .page-header .page-header-menu .hor-menu {\n      margin: 0 0 0 -17px;\n      margin: 0;\n      float: left; }\n      .page-header .page-header-menu .hor-menu .navbar-nav {\n        position: static;\n        /* Mega menu */\n        /* Mega Menu Dropdown */\n        /* Classic menu */ }\n        .page-header .page-header-menu .hor-menu .navbar-nav.navbar-right .dropdown-menu {\n          left: auto;\n          right: 0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown {\n          position: static; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n            left: auto;\n            width: auto; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content {\n              font-family: \"Open Sans\", sans-serif;\n              padding: 15px;\n              margin: 0; }\n              .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content.mega-menu-responsive-content {\n                padding: 10px 18px 10px 45px; }\n              .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu {\n                padding: 0;\n                margin: 0; }\n                .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu:last-child {\n                  border-right: 0; }\n                .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li {\n                  padding: 1px !important;\n                  margin: 0 !important;\n                  list-style: none; }\n                  .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n                    margin-top: 5px;\n                    padding-left: 5px;\n                    font-size: 15px;\n                    font-weight: normal; }\n                  .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a {\n                    display: block;\n                    white-space: normal;\n                    font-family: \"Open Sans\", sans-serif;\n                    padding: 7px;\n                    margin: 0;\n                    font-size: 14px;\n                    font-weight: 300; }\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a:focus, .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a:hover {\n                      text-decoration: none; }\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify {\n                      padding: 7px 7px 7px 30px; }\n                      .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify > i {\n                        position: absolute;\n                        top: auto !important;\n                        margin-left: -24px;\n                        font-size: 15px;\n                        margin-top: 3px !important; }\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .badge,\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .label {\n                      margin-left: 5px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown.mega-menu-full .dropdown-menu {\n            left: 15px;\n            right: 15px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:after, .page-header .page-header-menu .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:before {\n          display: none !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n          font-size: 14px;\n          font-weight: normal;\n          padding: 16px 18px 15px 18px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus {\n            background: none !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.current .selected, .page-header .page-header-menu .hor-menu .navbar-nav > li.active .selected {\n          left: 50%;\n          bottom: 0;\n          position: absolute;\n          border-left: 6px solid transparent;\n          border-right: 6px solid transparent;\n          border-top: 6px solid transparent;\n          display: inline-block;\n          margin: 0;\n          width: 0;\n          height: 0px;\n          margin-left: -7px;\n          margin-bottom: -6px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu {\n          margin-top: 0;\n          border: none; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a {\n            font-family: \"Open Sans\", sans-serif;\n            font-size: 14px;\n            font-weight: 300;\n            padding: 10px 12px;\n            white-space: normal; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a .label,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a .badge {\n              font-weight: 300; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu {\n          min-width: 195px;\n          max-width: 235px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-submenu > .dropdown-menu {\n          top: 0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n          top: 9px;\n          right: 10px; }\n    .page-header .page-header-menu .search-form {\n      position: relative;\n      display: inline-block;\n      float: right;\n      width: 176px;\n      transition: width 0.4s;\n      margin-top: 8px;\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n      .page-header .page-header-menu .search-form .input-group {\n        -webkit-border-radius: 4px;\n        -moz-border-radius: 4px;\n        -ms-border-radius: 4px;\n        -o-border-radius: 4px;\n        border-radius: 4px; }\n        .page-header .page-header-menu .search-form .input-group .form-control {\n          border: 0;\n          font-size: 13px;\n          padding-right: 20px;\n          font-weight: 300; }\n          .page-header .page-header-menu .search-form .input-group .form-control:hover {\n            cursor: pointer; }\n        .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit {\n          padding: 0;\n          height: 34px;\n          z-index: 3;\n          position: relative;\n          top: 10px;\n          right: 11px; }\n          .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit > i {\n            font-size: 15px; }\n      .page-header .page-header-menu .search-form.open {\n        width: 300px !important;\n        transition: width 0.4s; }\n        .page-header .page-header-menu .search-form.open .input-group .form-control {\n          text-indent: 0; }\n          .page-header .page-header-menu .search-form.open .input-group .form-control:hover {\n            cursor: text; }\n        .page-header .page-header-menu .search-form.open .input-group .input-group-btn .btn.submit {\n          margin-left: 0; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .page-header {\n    /* Page Header Menu */ }\n    .page-header .page-header-menu.fixed {\n      width: 100%;\n      position: fixed;\n      top: 0;\n      left: 0;\n      z-index: 9995; }\n    .page-header .page-header-menu .hor-menu .navbar-nav > li.menu-dropdown:hover > .dropdown-menu {\n      display: block; }\n    .page-header .page-header-menu .container-fluid .navbar-nav > li.mega-menu-dropdown.mega-menu-full .dropdown-menu {\n      left: 60px;\n      right: 60px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Page header */\n  .page-header {\n    padding: 0;\n    clear: both;\n    height: auto; }\n    .page-header .page-header-top {\n      height: auto;\n      /* Page logo */\n      /* Top Menu */\n      /* Menu Toggler */ }\n      .page-header .page-header-top > .container {\n        width: 100%;\n        max-width: none !important;\n        margin: 0 !important; }\n      .page-header .page-header-top .page-logo {\n        width: auto;\n        padding: 0;\n        margin-right: 10px;\n        margin-left: 4px;\n        padding-left: 0; }\n      .page-header .page-header-top .top-menu .navbar-nav {\n        display: inline-block;\n        margin: 0 10px 0 0; }\n        .page-header .page-header-top .top-menu .navbar-nav > li {\n          float: left; }\n      .page-header .page-header-top .menu-toggler {\n        display: block; }\n    .page-header .page-header-menu {\n      background: #eff3f8;\n      padding: 20px 0 0 0;\n      height: auto;\n      display: none; }\n      .page-header .page-header-menu > .container {\n        width: 100%;\n        max-width: none !important;\n        margin: 0 !important; }\n      .page-header .page-header-menu .hor-menu {\n        float: none;\n        -webkit-border-radius: 4px;\n        -moz-border-radius: 4px;\n        -ms-border-radius: 4px;\n        -o-border-radius: 4px;\n        border-radius: 4px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav {\n          float: none;\n          -webkit-border-radius: 4px;\n          -moz-border-radius: 4px;\n          -ms-border-radius: 4px;\n          -o-border-radius: 4px;\n          border-radius: 4px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li > a > .arrow:after {\n            position: absolute;\n            display: inline-block;\n            font-size: 14px;\n            right: 15px;\n            top: 11px;\n            font-family: FontAwesome;\n            height: auto;\n            content: \"\\f104\";\n            font-weight: 300; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.opened > a > .arrow:after {\n            content: \"\\f107\";\n            right: 12px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav .dropdown-submenu > a:after {\n            display: none !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li {\n            float: none; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n              padding: 10px; }\n              .page-header .page-header-menu .hor-menu .navbar-nav > li > a .fa-angle-down {\n                float: right; }\n                .page-header .page-header-menu .hor-menu .navbar-nav > li > a .fa-angle-down:before {\n                  content: \"\\f104\"; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li:first-child > a {\n              -webkit-border-radius: 4px 4px 0 0;\n              -moz-border-radius: 4px 4px 0 0;\n              -ms-border-radius: 4px 4px 0 0;\n              -o-border-radius: 4px 4px 0 0;\n              border-radius: 4px 4px 0 0; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li:last-child > a {\n              -webkit-border-radius: 0 0 4px 4px;\n              -moz-border-radius: 0 0 4px 4px;\n              -ms-border-radius: 0 0 4px 4px;\n              -o-border-radius: 0 0 4px 4px;\n              border-radius: 0 0 4px 4px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a .fa-angle-down:before {\n              content: \"\\f107\"; }\n          .page-header .page-header-menu .hor-menu .navbar-nav .dropdown-menu {\n            position: static;\n            float: none !important;\n            width: auto;\n            background: #fff;\n            display: none; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.mega-menu-dropdown.opened > .dropdown-menu {\n            display: block;\n            width: 100%;\n            min-width: inherit !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.mega-menu-dropdown > .dropdown-menu .mega-menu-content {\n            padding-top: 0; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown.opened > .dropdown-menu {\n            display: block; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown li.opened > .dropdown-menu {\n            display: block; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown > .dropdown-menu > li > a {\n            padding-left: 20px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown > .dropdown-menu > li > .dropdown-menu > li > a {\n            padding-left: 40px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown > .dropdown-menu > li > .dropdown-menu > li > .dropdown-menu > li > a {\n            padding-left: 60px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu {\n            max-width: none;\n            width: auto; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.divider {\n              background: none;\n              margin: 5px 12px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu > a:after {\n              content: \"\\f104\";\n              font-size: 14px;\n              margin-right: 7px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.open > a:after {\n              content: \"\\f107\";\n              margin-right: 5px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.open > .dropdown-menu {\n              display: block; }\n      .page-header .page-header-menu .search-form {\n        float: none !important;\n        width: auto;\n        margin: 0 0 20px 0; }\n        .page-header .page-header-menu .search-form.open {\n          width: auto !important; }\n        .page-header .page-header-menu .search-form .input-group .form-control {\n          height: 38px; }\n          .page-header .page-header-menu .search-form .input-group .form-control:hover {\n            cursor: text; }\n        .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit {\n          height: 38px;\n          width: 44px;\n          top: 0;\n          right: 0; }\n          .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit i {\n            position: relative;\n            top: 13px; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .page-header {\n    /* Header Top */ }\n    .page-header .page-header-top .page-logo {\n      width: auto !important; }\n    .page-header .page-header-top .top-menu {\n      display: block; }\n      .page-header .page-header-top .top-menu:before, .page-header .page-header-top .top-menu:after {\n        content: \" \";\n        display: table; }\n      .page-header .page-header-top .top-menu:after {\n        clear: both; }\n      .page-header .page-header-top .top-menu .navbar-nav {\n        margin-right: 0px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle {\n          padding: 17px 6px 8px 6px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > .badge {\n            right: 18px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended > .dropdown-menu {\n          max-width: 255px;\n          width: 255px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-notification > .dropdown-menu {\n          margin-right: -160px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-notification > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-notification > .dropdown-menu:before {\n            margin-right: 160px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox {\n          margin-right: 0;\n          padding-right: 2px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-menu {\n            margin-right: -40px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-menu:before {\n              margin-right: 40px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-toggle {\n            padding: 17px 0px 8px 2px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-tasks > .dropdown-menu {\n          margin-right: -115px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-tasks > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-tasks > .dropdown-menu:before {\n            margin-right: 115px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-menu {\n          margin-right: -20px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-menu:before {\n            margin-right: 20px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-toggle {\n          padding: 16px 6px 9px 2px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-user {\n          padding-left: 0;\n          margin-right: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-user > .dropdown-toggle {\n            padding: 12px 0px 7px 4px; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header {\n    /* Top navigation menu*/ }\n    .page-header .page-header-top .top-menu {\n      display: block;\n      clear: both;\n      margin-top: -10px; }\n      .page-header .page-header-top .top-menu:before, .page-header .page-header-top .top-menu:after {\n        content: \" \";\n        display: table; }\n      .page-header .page-header-top .top-menu:after {\n        clear: both; }\n      .page-header .page-header-top .top-menu .username-hide-mobile {\n        display: none; } }\n\n/***  \nPace - Page Progress\n***/\n.pace .pace-progress {\n  z-index: 10000;\n  top: 126px !important;\n  height: 3px !important; }\n\n.pace .pace-progress-inner {\n  box-shadow: none; }\n\n.pace .pace-activity {\n  top: 128px;\n  right: 22px;\n  border-radius: 10px !important; }\n\n@media (max-width: 480px) {\n  .page-header-fixed .pace .pace-progress {\n    top: 252px; }\n  .page-header-fixed .pace .pace-activity {\n    top: 508px;\n    right: 15px; } }\n\nhtml,\nbody {\n  height: 100%;\n  margin: 0px;\n  padding: 0px; }\n\n.page-wrapper {\n  display: table;\n  width: 100%;\n  height: 100%;\n  table-layout: fixed; }\n  .page-wrapper .page-wrapper-row {\n    width: 100%;\n    display: table-row; }\n    .page-wrapper .page-wrapper-row.full-height {\n      height: 100%; }\n  .page-wrapper .page-wrapper-top {\n    width: 100%;\n    display: table-cell; }\n  .page-wrapper .page-wrapper-middle {\n    background: #eff3f8;\n    width: 100%;\n    display: table-cell;\n    height: 100%; }\n  .page-wrapper .page-wrapper-bottom {\n    width: 100%;\n    display: table-cell; }\n\n/* Page Container */\n.page-container {\n  clear: both; }\n\n.page-head {\n  background: #fff; }\n  .page-head .container {\n    position: relative; }\n  .page-head .page-title {\n    display: inline-block;\n    float: left;\n    padding: 19px 0; }\n    .page-head .page-title > h1 {\n      color: #697882;\n      font-size: 22px;\n      font-weight: 400;\n      margin: 0; }\n      .page-head .page-title > h1 > small {\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n  .page-head .page-toolbar {\n    display: inline-block;\n    float: right; }\n\n.breadcrumb {\n  background: none;\n  padding: 0 0 15px 0;\n  margin: 0;\n  color: #a7b2c0; }\n\n.breadcrumb > li + li:before {\n  display: none; }\n\n.breadcrumb .fa {\n  font-size: 6px;\n  margin: 0 2px 0 4px;\n  position: relative;\n  top: -1px; }\n\n.breadcrumb > .active {\n  color: #9eacb4; }\n\n.page-content {\n  padding: 15px 0 15px; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .container-fluid {\n    padding-left: 60px;\n    padding-right: 60px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-head {\n    background: #EFF3F8; }\n    .page-head > .container {\n      width: 100%;\n      max-width: none !important;\n      margin: 0 !important; }\n  .page-content {\n    padding-top: 0px; }\n    .page-content > .container {\n      width: 100%;\n      max-width: none !important;\n      margin: 0 !important; } }\n\n/*  admin 3 portlet styles */\n.portlet .portlet-input .form-control {\n  background: #F1F3F8;\n  border-radius: 0 !important;\n  border-color: #F1F3F8; }\n  .portlet .portlet-input .form-control:focus {\n    border-color: #cfd6e7; }\n\n/* Pre-footer */\n.page-prefooter {\n  padding: 30px 0;\n  clear: both; }\n  .page-prefooter h2 {\n    font-weight: 700;\n    font-size: 15px;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin: 0 0 12px; }\n  .page-prefooter .subscribe-form {\n    padding-top: 5px; }\n    .page-prefooter .subscribe-form .form-control {\n      font-size: 12px;\n      padding: 0 14px;\n      height: 36px; }\n    .page-prefooter .subscribe-form .btn {\n      height: 34px;\n      text-transform: uppercase;\n      padding: 7px 16px; }\n  .page-prefooter .social-icons {\n    padding-top: 9px; }\n    .page-prefooter .social-icons li {\n      opacity: 0.35 ;\n      filter: alpha(opacity=35) ; }\n      .page-prefooter .social-icons li:hover {\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n  .page-prefooter p,\n  .page-prefooter address {\n    margin: 0; }\n\n/* Footer */\n.page-footer {\n  font-size: 13px;\n  font-weight: 300;\n  padding: 17px 0; }\n  .page-footer a {\n    color: #e6e6e6; }\n    .page-footer a:hover {\n      color: #f2f2f2; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-prefooter {\n    padding-bottom: 10px; }\n    .page-prefooter .footer-block {\n      margin-bottom: 20px; }\n    .page-prefooter > .container {\n      width: 100%;\n      max-width: none !important;\n      margin: 0 !important; }\n  .page-footer > .container {\n    width: 100%;\n    max-width: none !important;\n    margin: 0 !important; } }\n\n/* Scroll Top */\n.scroll-to-top {\n  padding: 2px;\n  text-align: center;\n  position: fixed;\n  z-index: 10001;\n  bottom: 10px;\n  display: none;\n  right: 20px; }\n  .scroll-to-top > i {\n    display: inline-block;\n    font-size: 32px;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .scroll-to-top:hover {\n    cursor: pointer; }\n    .scroll-to-top:hover > i {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .scroll-to-top {\n    right: 10px; }\n    .scroll-to-top > i {\n      font-size: 28px; } }\n\n/***\nTheme Panel\n***/\n.btn-theme-panel {\n  margin-top: 25px; }\n  .btn-theme-panel .btn {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    padding: 0 6px; }\n    .btn-theme-panel .btn > i {\n      font-size: 24px;\n      color: #acbac6; }\n    .btn-theme-panel .btn:hover {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n  .btn-theme-panel.open .btn {\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n\n.theme-panel {\n  z-index: 1000;\n  min-width: 675px;\n  padding: 20px 10px;\n  font-family: \"Open Sans\", sans-serif; }\n  .theme-panel h3 {\n    margin: 8px 0 8px 0;\n    font-size: 15px;\n    padding-left: 12px; }\n  .theme-panel .seperator {\n    border-left: 1px solid #EFF2F4; }\n  .theme-panel .theme-colors {\n    list-style: none;\n    padding: 0;\n    margin: 0; }\n    .theme-panel .theme-colors > li.theme-color {\n      padding: 8px 12px; }\n      .theme-panel .theme-colors > li.theme-color:hover, .theme-panel .theme-colors > li.theme-color.active {\n        background: #f5f7f8; }\n      .theme-panel .theme-colors > li.theme-color:hover {\n        cursor: pointer; }\n      .theme-panel .theme-colors > li.theme-color > .theme-color-view {\n        float: left;\n        margin-top: 0px;\n        margin-right: 8px;\n        display: inline-block;\n        border-radius: 10px !important;\n        height: 20px;\n        width: 20px; }\n      .theme-panel .theme-colors > li.theme-color > .theme-color-name {\n        display: inline-block;\n        color: #777;\n        font-size: 14px;\n        font-weight: 300;\n        padding-top: -4px; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-default .theme-color-view {\n        background: #32c5d2; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-red-sunglo .theme-color-view {\n        background: #E26A6A; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-red-intense .theme-color-view {\n        background: #E35B5A; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-blue-hoki .theme-color-view {\n        background: #67809F; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-blue-steel .theme-color-view {\n        background: #4B77BE; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-green-haze .theme-color-view {\n        background: #44B6AE; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-purple-plum .theme-color-view {\n        background: #8775A7; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-purple-studio .theme-color-view {\n        background: #8E44AD; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-yellow-orange .theme-color-view {\n        background: #F2784B; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-yellow-crusta .theme-color-view {\n        background: #F3C200; }\n  .theme-panel .theme-settings {\n    list-style: none;\n    padding: 0;\n    margin: 0; }\n    .theme-panel .theme-settings > li {\n      padding: 8px 12px;\n      font-size: 14px;\n      font-weight: 300;\n      color: #777; }\n      .theme-panel .theme-settings > li .form-control {\n        color: #777;\n        margin-top: -3px;\n        float: right; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .theme-panel {\n    left: 20px;\n    right: 20px;\n    min-width: 285px; }\n    .theme-panel .seperator {\n      border: 0; }\n    .theme-panel .theme-settings .form-control {\n      width: 105px !important; } }\n\n/* Page Portlet Fullscreen */\n.page-portlet-fullscreen .page-quick-sidebar-wrapper,\n.page-portlet-fullscreen .page-quick-sidebar-toggler {\n  z-index: -1; }\n\n/* Quick sidebar toggler */\n.page-quick-sidebar-toggler {\n  overflow: hidden;\n  z-index: 99999;\n  display: none;\n  width: 28px;\n  height: 27px;\n  position: fixed;\n  top: 10px;\n  right: 15px;\n  text-align: center;\n  padding-top: 6px; }\n  .page-quick-sidebar-toggler:hover {\n    background: #303a43; }\n  .page-quick-sidebar-open .page-quick-sidebar-toggler {\n    display: inline-block; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler:hover {\n      background: none; }\n  .page-quick-sidebar-toggler > i {\n    color: #99a8b5;\n    font-size: 17px; }\n    .page-quick-sidebar-toggler > i:hover {\n      color: #fff !important; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler > i:before {\n      content: \"\"/*rtl:\"\"*/; }\n\n/* Quick sidebar wrapper */\n.page-quick-sidebar-wrapper {\n  transition: right 0.3s;\n  z-index: 9999;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  width: 320px;\n  right: -320px;\n  overflow: hidden;\n  color: #99a8b5;\n  background: #21282e; }\n  .page-quick-sidebar-open .page-quick-sidebar-wrapper {\n    transition: right 0.3s;\n    right: 0; }\n  .page-quick-sidebar-wrapper .page-quick-sidebar {\n    background: #21282e;\n    /* Quick sidebar tabs content */\n    /* Quick sidebar general list heading */\n    /* Quick sidebar general list-items */\n    /* Inner content */\n    /* Quick sidebar list */\n    /* Quick sidebar list item */\n    /* Quick sidebar list item shown */\n    /* Quick sidebar chat */\n    /* Quick sidebar alerts */\n    /* Quick sidebar settings */ }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs {\n      margin: 0;\n      padding: 0;\n      border: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li {\n        display: table-cell !important;\n        width: 1%  !important;\n        padding: 0;\n        margin: 0;\n        float: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a {\n          position: relative;\n          display: block;\n          text-align: center;\n          border: 0;\n          height: auto;\n          font-size: 14px;\n          padding: 45px 15px 8px;\n          text-transform: uppercase;\n          background: none;\n          margin-right: 0;\n          color: #90a1af;\n          border: 0;\n          border-bottom: 3px solid rgba(243, 86, 93, 0.3);\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0;\n          outline: none !important; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a > .badge {\n            position: absolute;\n            top: 45px;\n            right: 3px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.active > a, .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li:hover > a {\n          border: 0;\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          color: #fff;\n          text-decoration: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu {\n          border: 0;\n          background: #36424c;\n          box-shadow: 5px 5px rgba(97, 117, 135, 0.1);\n          margin-top: 8px;\n          margin-right: 20px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:before {\n            position: absolute;\n            top: -7px;\n            right: 19px;\n            display: inline-block !important;\n            border-right: 7px solid transparent;\n            border-left: 7px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:after {\n            position: absolute;\n            top: -6px;\n            right: 20px;\n            display: inline-block !important;\n            border-right: 6px solid transparent;\n            border-left: 6px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a {\n            padding: 10px 15px;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a > i {\n              color: #93a3b1; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a {\n            background: #3d4a55;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a > i {\n              color: #9babb8; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.active > a {\n            background: #38444f;\n            color: #99a8b5; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.divider {\n            background-color: #3d4a55; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.open > a.dropdown-toggle {\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          text-decoration: none;\n          color: #90a1af; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .tab-content {\n      margin: 0;\n      padding: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-heading {\n      font-size: 16px;\n      margin: 10px 10px;\n      color: #6c8296; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-items {\n      margin: 0;\n      padding: 0;\n      list-style: none; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li {\n        margin: 0;\n        padding: 15px;\n        background: none;\n        border-bottom-width: 1px;\n        border-bottom-style: solid;\n        border-bottom-color: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:hover {\n          background: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:last-child {\n          border-bottom: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li {\n        border: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .inner-content {\n      margin: 10px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list {\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item {\n      width: 320px;\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s;\n      margin-left: 320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav {\n        padding: 15px 10px 0px 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list {\n          vertical-align: middle;\n          display: inline-block;\n          font-size: 14px;\n          color: #90a1af; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list:hover {\n            text-decoration: none; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list > i {\n            font-size: 17px;\n            line-height: 17px;\n            vertical-align: top;\n            margin-right: 3px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list {\n      transition: margin 0.3s;\n      margin-left: -320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail {\n        display: none !important; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item {\n      transition: margin 0.3s;\n      margin-left: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media {\n        padding: 15px 15px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object {\n          border-radius: 50% !important;\n          width: 45.71429px;\n          opacity: 0.8;\n          filter: alpha(opacity=80);\n          float: left;\n          margin-right: 10px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before, .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            content: \" \";\n            display: table; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            clear: both; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover {\n          cursor: pointer; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object {\n            opacity: 1;\n            filter: alpha(opacity=100); }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading {\n          margin: 5px 0 0 0;\n          font-size: 14px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub {\n          font-size: 11px;\n          text-transform: uppercase;\n          color: #657b8d; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small {\n          font-size: 10px;\n          color: #5d7081; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status {\n          margin-top: 10px;\n          right: 10px;\n          position: absolute;\n          display: inline-block; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages {\n      padding: 0px 10px;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post {\n        transition: display 0.3s;\n        padding: 5px 0;\n        margin: 10px auto;\n        font-size: 13px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body {\n          color: #c3c3c3;\n          display: block; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar {\n          width: 45.71429px;\n          border-radius: 50% !important; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar {\n          float: left;\n          margin-right: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar {\n          float: right;\n          margin-left: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message {\n          display: block;\n          padding: 5px;\n          position: relative;\n          color: #90a1af;\n          background: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message {\n          text-align: left;\n          margin-left: 55px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            left: -6px;\n            width: 0;\n            height: 0;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-right-width: 6px;\n            border-right-style: solid;\n            border-right-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message {\n          margin-right: 55px;\n          text-align: right; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            right: -6px;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-left-width: 6px;\n            border-left-style: solid;\n            border-left-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name,\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime {\n          text-align: right; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form {\n      padding: 20px 10px 15px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a {\n        color: #7e91a2; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .label {\n          margin-top: 5px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc {\n          text-decoration: underline;\n          padding: 0;\n          color: #788c9e; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .date {\n          color: #5d7081; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch {\n        margin-top: -3px;\n        float: right;\n        border: 0;\n        min-width: 59px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control {\n        width: 75px !important;\n        padding: 4px 4px !important;\n        float: right;\n        border: 0;\n        margin-top: -4px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control {\n        padding: 4px 0px !important; }\n\n.quick-nav {\n  position: fixed;\n  z-index: 10103;\n  top: 50%;\n  right: 10px;\n  margin-top: -230px;\n  pointer-events: none; }\n  .quick-nav .quick-nav-bg {\n    /* this is the stretching navigation background */\n    position: absolute;\n    z-index: 10102;\n    top: 0;\n    right: 0;\n    width: 60px;\n    height: 60px;\n    border-radius: 30px !important;\n    background: #36C6D3;\n    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);\n    webkit-transition: height .2s, box-shadow .2s;\n    -moz-transition: height .2s, box-shadow .2s;\n    -ms-transition: height .2s, box-shadow .2s;\n    -o-transition: height .2s, box-shadow .2s;\n    transition: height .2s, box-shadow .2s; }\n  .quick-nav.nav-is-visible {\n    pointer-events: auto; }\n  .quick-nav.nav-is-visible .quick-nav-bg {\n    height: 100%;\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n\n.quick-nav-trigger {\n  position: absolute;\n  z-index: 10103;\n  top: 0;\n  right: 0;\n  height: 60px;\n  width: 60px;\n  border-radius: 50% !important;\n  overflow: hidden;\n  white-space: nowrap;\n  color: transparent;\n  pointer-events: auto; }\n  .quick-nav-trigger span,\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* this is the hamburger icon */\n    position: absolute;\n    width: 16px;\n    height: 2px;\n    background-color: #ffffff; }\n  .quick-nav-trigger span {\n    /* middle line of the hamburger icon */\n    webkit-transition: background-color 0.2s;\n    -moz-transition: background-color 0.2s;\n    -ms-transition: background-color 0.2s;\n    -o-transition: background-color 0.2s;\n    transition: background-color 0.2s;\n    left: 50%;\n    top: 50%;\n    bottom: auto;\n    right: auto;\n    webkit-transform: translateX(-50%) translateY(-50%);\n    -moz-transform: translateX(-50%) translateY(-50%);\n    -ms-transform: translateX(-50%) translateY(-50%);\n    -o-transform: translateX(-50%) translateY(-50%);\n    transform: translateX(-50%) translateY(-50%); }\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* top and bottom lines of the hamburger icon */\n    content: '';\n    top: 0;\n    left: 0;\n    -webkit-backface-visibility: hidden;\n    -moz-backface-visibility: hidden;\n    backface-visibility: hidden;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .quick-nav-trigger span::before {\n    webkit-transform: translateY(-6px);\n    -moz-transform: translateY(-6px);\n    -ms-transform: translateY(-6px);\n    -o-transform: translateY(-6px);\n    transform: translateY(-6px); }\n  .quick-nav-trigger span::after {\n    webkit-transform: translateY(6px);\n    -moz-transform: translateY(6px);\n    -ms-transform: translateY(6px);\n    -o-transform: translateY(6px);\n    transform: translateY(6px); }\n  .no-touch .quick-nav-trigger:hover ~ .quick-nav-bg {\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n  .nav-is-visible .quick-nav-trigger span {\n    background-color: transparent; }\n  .nav-is-visible .quick-nav-trigger span::before {\n    webkit-transform: rotate(-45deg);\n    -moz-transform: rotate(-45deg);\n    -ms-transform: rotate(-45deg);\n    -o-transform: rotate(-45deg);\n    transform: rotate(-45deg); }\n  .nav-is-visible .quick-nav-trigger span::after {\n    webkit-transform: rotate(45deg);\n    -moz-transform: rotate(45deg);\n    -ms-transform: rotate(45deg);\n    -o-transform: rotate(45deg);\n    transform: rotate(45deg); }\n\n.quick-nav ul {\n  position: relative;\n  z-index: 10103;\n  padding: 60px 0 0;\n  visibility: hidden;\n  webkit-transition: visibility 0.3s;\n  -moz-transition: visibility 0.3s;\n  -ms-transition: visibility 0.3s;\n  -o-transition: visibility 0.3s;\n  transition: visibility 0.3s;\n  text-align: right;\n  list-style: none; }\n  .quick-nav ul > li a {\n    position: relative;\n    display: block;\n    height: 50px;\n    line-height: 50px;\n    padding: 0 calc(1em + 60px) 0 1em;\n    font-size: 1.4rem;\n    webkit-transition: color 0.2s;\n    -moz-transition: color 0.2s;\n    -ms-transition: color 0.2s;\n    -o-transition: color 0.2s;\n    transition: color 0.2s; }\n    .quick-nav ul > li a:hover {\n      text-decoration: none; }\n      .quick-nav ul > li a:hover > span {\n        text-decoration: none; }\n    .quick-nav ul > li a > i {\n      /* navigation item icons */\n      content: '';\n      position: absolute;\n      height: 16px;\n      width: 16px;\n      font-size: 18px;\n      right: 24px;\n      top: 16px;\n      color: #ebebeb; }\n    .quick-nav ul > li a::before {\n      /* line visible next to the active navigation item */\n      content: '';\n      position: absolute;\n      width: 3px;\n      height: 16px;\n      top: 50%;\n      right: 60px;\n      webkit-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -moz-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -ms-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -o-transform: translateX(3px) translateY(-50%) scaleY(0);\n      transform: translateX(3px) translateY(-50%) scaleY(0);\n      background-color: #FF3F3F; }\n  .quick-nav ul > li span {\n    /* navigation item labels */\n    color: #ebebeb;\n    font-weight: 400;\n    display: block;\n    opacity: 0;\n    webkit-transform: translateX(-25px);\n    -moz-transform: translateX(-25px);\n    -ms-transform: translateX(-25px);\n    -o-transform: translateX(-25px);\n    transform: translateX(-25px); }\n  .quick-nav ul > li:last-child {\n    padding-bottom: 10px; }\n\n.quick-nav.nav-is-visible ul {\n  visibility: visible; }\n  .quick-nav.nav-is-visible ul a::after {\n    /* navigation item icons */\n    webkit-transform: translateY(-50%) scale(1);\n    -moz-transform: translateY(-50%) scale(1);\n    -ms-transform: translateY(-50%) scale(1);\n    -o-transform: translateY(-50%) scale(1);\n    transform: translateY(-50%) scale(1);\n    -webkit-animation: scaleIn 0.15s backwards;\n    -o-animation: scaleIn 0.15s backwards;\n    animation: scaleIn 0.15s backwards;\n    webkit-transition: opacity 0.2s;\n    -moz-transition: opacity 0.2s;\n    -ms-transition: opacity 0.2s;\n    -o-transition: opacity 0.2s;\n    transition: opacity 0.2s; }\n  .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .quick-nav.nav-is-visible ul a:hover::before {\n    webkit-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -moz-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -ms-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -o-transform: translateX(3px) translateY(-50%) scaleY(2);\n    transform: translateX(3px) translateY(-50%) scaleY(2);\n    webkit-transition: transform 0.15s 0.3s;\n    -moz-transition: transform 0.15s 0.3s;\n    -ms-transition: transform 0.15s 0.3s;\n    -o-transition: transform 0.15s 0.3s;\n    transition: transform 0.15s 0.3s; }\n  .quick-nav.nav-is-visible ul a:hover > span {\n    color: white; }\n  .quick-nav.nav-is-visible ul a:hover > i {\n    color: #fafafa; }\n  .quick-nav.nav-is-visible ul span {\n    opacity: 1;\n    webkit-transform: translateX(0);\n    -moz-transform: translateX(0);\n    -ms-transform: translateX(0);\n    -o-transform: translateX(0);\n    transform: translateX(0);\n    -webkit-animation: slideIn 0.15s backwards;\n    -o-animation: slideIn 0.15s backwards;\n    animation: slideIn 0.15s backwards;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover span {\n    webkit-transform: translateX(-5px);\n    -moz-transform: translateX(-5px);\n    -ms-transform: translateX(-5px);\n    -o-transform: translateX(-5px);\n    transform: translateX(-5px); }\n\n.quick-nav-overlay {\n  display: none;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  position: fixed;\n  z-index: 10101;\n  background: transparent; }\n\n.quick-nav.nav-is-visible + .quick-nav-overlay {\n  background: rgba(0, 0, 0, 0.8);\n  display: block;\n  -webkit-transition: background .7s ease-out;\n  -moz-transition: background .7s ease-out;\n  -o-transition: background .7s ease-out;\n  transition: background .7s ease-out; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .quick-nav {\n    top: 120px;\n    margin-top: 0; } }\n\n/***  \nPage Loading      \n***/\n.page-on-load {\n  background: #fefefe; }\n  .page-on-load .page-header,\n  .page-on-load .page-container,\n  .page-on-load .page-prefooter,\n  .page-on-load .page-footer,\n  .page-on-load > .clearfix {\n    display: none;\n    transition: all 2s; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout3/css/themes/default.css",
    "content": "/* Cubic Bezier Transition */\n/****\nBoby\n****/\nbody {\n  background-color: #fff; }\n  body.page-md {\n    background: white; }\n\n/******\nGeneral \n******/\n/* Theme Font Color */\n.theme-font {\n  color: #32c5d2 !important; }\n\n/* Pace - Page Progress */\n.pace .pace-progress {\n  background: #32c5d2; }\n\n/* Theme Light Portlet */\n.portlet.light .btn.btn-circle.btn-icon-only.btn-default {\n  border-color: #bbc2ce; }\n  .portlet.light .btn.btn-circle.btn-icon-only.btn-default > i {\n    font-size: 13px;\n    color: #a6b0bf; }\n  .portlet.light .btn.btn-circle.btn-icon-only.btn-default:hover, .portlet.light .btn.btn-circle.btn-icon-only.btn-default.active {\n    color: #fff;\n    background: #32c5d2;\n    border-color: #32c5d2; }\n    .portlet.light .btn.btn-circle.btn-icon-only.btn-default:hover > i, .portlet.light .btn.btn-circle.btn-icon-only.btn-default.active > i {\n      color: #fff; }\n\n/******\nPage Header \n******/\n.page-header {\n  background-color: #fff;\n  /* Page Header Top */\n  /* Page Header Menu */ }\n  .page-header .page-header-top {\n    /* Top menu */ }\n    .page-header .page-header-top.fixed {\n      background: #fff !important;\n      box-shadow: 0px 1px 10px 0px rgba(50, 50, 50, 0.2); }\n    .page-header .page-header-top .top-menu .navbar-nav {\n      /* Top Links */\n      /* Separator */\n      /* Extended Dropdowns */\n      /* Notification */\n      /* Inbox */\n      /* Tasks */\n      /* User */\n      /* Language */\n      /* Dark version */ }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown .separator {\n        border-left: 1px solid #E3E8EC; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i {\n        color: #C1CCD1; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:active, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:hover {\n        background-color: #fff; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:active > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:hover > i {\n          color: #a4b4bb; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle .badge.badge-default {\n        background-color: #f36a5a;\n        color: #ffffff; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:active .dropdown-toggle, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:focus .dropdown-toggle, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle {\n        background-color: #fff; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:active .dropdown-toggle > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:focus .dropdown-toggle > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle > i {\n          color: #a4b4bb; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-separator .separator {\n        border-left: 1px solid #E3E8EC; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu:after {\n        border-bottom-color: #f7f8fa; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n        background: #f7f8fa; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n          color: #6f949c; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n          color: #337ab7; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n            color: #23527c;\n            text-decoration: none; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n        border-bottom: 1px solid #EFF2F6 !important;\n        color: #222222; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n          background: #f8f9fa; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a .time {\n        background: #f1f1f1; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n        background: #e4e4e4; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .circle {\n        background-color: #32c5d2;\n        color: #ffffff; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner {\n        border-color: transparent transparent transparent #32c5d2; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from {\n        color: #5b9bd1; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress {\n        background-color: #dfe2e9; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > .username {\n        color: #8ea3b6; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > i {\n        color: #8ea3b6; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user > .dropdown-menu {\n        width: 195px; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user:hover > .dropdown-toggle > .username,\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user:hover > .dropdown-toggle > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user.open > .dropdown-toggle > .username,\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user.open > .dropdown-toggle > i {\n        color: #7089a2; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > .langname {\n        color: #8ea3b6; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language:hover > .dropdown-toggle > .langname, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language.open > .dropdown-toggle > .langname {\n        color: #7089a2; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu {\n        background: #2e343b;\n        border: 0; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu:after {\n          border-bottom-color: #2e343b; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external {\n          background: #272c33; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > h3 {\n            color: #a2abb7; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > a:hover {\n            color: #5496cf; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a,\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a {\n          color: #aaafb7;\n          border-bottom: 1px solid #3b434c !important; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a > i,\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a > i {\n            color: #6FA7D7; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a:hover,\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a:hover {\n            background: #373e47; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a {\n          border-bottom: 0 !important; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li.divider {\n          background: #3b434c; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a .time {\n        background: #23272d; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n        background: #181b1e; }\n  .page-header .page-header-menu {\n    background: #3c763d;\n    /* Default Mega Menu */\n    /* Light Mega Menu */\n    /* Header seaech box */ }\n    .page-header .page-header-menu.fixed {\n      box-shadow: 0px 1px 10px 0px rgba(68, 77, 88, 0.2); }\n    .page-header .page-header-menu .hor-menu .navbar-nav {\n      /* Mega menu content */\n      /* Classic menu */ }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2); }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n          color: #ced5de; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n        color: #BCC2CB; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a:hover,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a:active {\n        color: #ffffff;\n        background: #5c8e5d !important; }<!-- #5c8e5d 导航底色修改 -->\n        .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a:hover > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a:active > i {\n          color: #ffffff; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover {\n        color: #f1f1f1;\n        background: #4E5966; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2);\n        background: #5c8e5d; }\t/* 原: #55616f */\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a {\n          color: #ced5de; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a {\n          color: #ced5de;\n          background: #5d6b7a; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover {\n          color: #ced5de;\n          background: #5d6b7a; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.divider {\n          background-color: #606d7d; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n        color: #6fa7d7; }\n    .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav {\n      /* Mega menu content */\n      /* Classic menu */ }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2); }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n          color: #555; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a {\n        color: #BCC2CB; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a:hover {\n        color: #ffffff;\n        background: #55616f; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a:hover > i {\n          color: #ffffff; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li:hover > a,\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.open > a {\n        color: #333 !important;\n        background: #fafafc !important; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li:hover > a > i,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.open > a > i {\n          color: #333 !important; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a,\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a,\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover {\n        color: #f1f1f1;\n        background: #4E5966; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a > i,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover > i, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a > i,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2);\n        background: #fafafc; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a {\n          color: #000; }\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a {\n          color: #000;\n          background: #eaeaf2; }\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover {\n          color: #000;\n          background: #eaeaf2; }\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a > i,\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a > i,\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.divider {\n          background-color: #ededf4; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > .dropdown-menu {\n        border: 1px solid #eaeaf2;\n        border-top: 0; }\n    .page-header .page-header-menu .search-form {\n      background: #38414c; }\n      .page-header .page-header-menu .search-form .input-group {\n        background: #38414c; }\n        .page-header .page-header-menu .search-form .input-group .form-control {\n          color: #616d7d;\n          background: #38414c; }\n          .page-header .page-header-menu .search-form .input-group .form-control::-moz-placeholder {\n            color: #5f6a7a;\n            opacity: 1; }\n          .page-header .page-header-menu .search-form .input-group .form-control:-ms-input-placeholder {\n            color: #5f6a7a; }\n          .page-header .page-header-menu .search-form .input-group .form-control::-webkit-input-placeholder {\n            color: #5f6a7a; }\n        .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit > i {\n          color: #616d7d; }\n\n/******\nPage Footer \n******/\n.page-prefooter {\n  background: #48525e;\n  color: #a2abb7; }\n  .page-prefooter h2 {\n    color: #32c5d2; }\n  .page-prefooter a {\n    color: #32c5d2; }\n  .page-prefooter .subscribe-form .form-control {\n    background: #343b44;\n    border-color: #343b44;\n    color: #a2abb7; }\n    .page-prefooter .subscribe-form .form-control::-moz-placeholder {\n      color: #939eac;\n      opacity: 1; }\n    .page-prefooter .subscribe-form .form-control:-ms-input-placeholder {\n      color: #939eac; }\n    .page-prefooter .subscribe-form .form-control::-webkit-input-placeholder {\n      color: #939eac; }\n  .page-prefooter .subscribe-form .btn {\n    color: #fff;\n    background-color: #3fc9d5;\n    border-color: #3fc9d5; }\n    .page-prefooter .subscribe-form .btn:focus, .page-prefooter .subscribe-form .btn.focus {\n      color: #fff;\n      background-color: #28adb9;\n      border-color: #1b727a; }\n    .page-prefooter .subscribe-form .btn:hover {\n      color: #fff;\n      background-color: #28adb9;\n      border-color: #27a5b0; }\n    .page-prefooter .subscribe-form .btn:active, .page-prefooter .subscribe-form .btn.active,\n    .open > .page-prefooter .subscribe-form .btn.dropdown-toggle {\n      color: #fff;\n      background-color: #28adb9;\n      border-color: #27a5b0; }\n      .page-prefooter .subscribe-form .btn:active:hover, .page-prefooter .subscribe-form .btn:active:focus, .page-prefooter .subscribe-form .btn:active.focus, .page-prefooter .subscribe-form .btn.active:hover, .page-prefooter .subscribe-form .btn.active:focus, .page-prefooter .subscribe-form .btn.active.focus,\n      .open > .page-prefooter .subscribe-form .btn.dropdown-toggle:hover,\n      .open > .page-prefooter .subscribe-form .btn.dropdown-toggle:focus,\n      .open > .page-prefooter .subscribe-form .btn.dropdown-toggle.focus {\n        color: #fff;\n        background-color: #22929b;\n        border-color: #1b727a; }\n    .page-prefooter .subscribe-form .btn:active, .page-prefooter .subscribe-form .btn.active,\n    .open > .page-prefooter .subscribe-form .btn.dropdown-toggle {\n      background-image: none; }\n    .page-prefooter .subscribe-form .btn.disabled:hover, .page-prefooter .subscribe-form .btn.disabled:focus, .page-prefooter .subscribe-form .btn.disabled.focus, .page-prefooter .subscribe-form .btn[disabled]:hover, .page-prefooter .subscribe-form .btn[disabled]:focus, .page-prefooter .subscribe-form .btn[disabled].focus,\n    fieldset[disabled] .page-prefooter .subscribe-form .btn:hover,\n    fieldset[disabled] .page-prefooter .subscribe-form .btn:focus,\n    fieldset[disabled] .page-prefooter .subscribe-form .btn.focus {\n      background-color: #3fc9d5;\n      border-color: #3fc9d5; }\n    .page-prefooter .subscribe-form .btn .badge {\n      color: #3fc9d5;\n      background-color: #fff; }\n\n.page-footer {\n  background: #3b434c;\n  color: #a2abb7; }\n\n/* Scroll Top */\n.scroll-to-top > i {\n  color: #657383;\n  font-size: 32px;\n  opacity: 0.7 ;\n  filter: alpha(opacity=70) ; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .page-header {\n    /* Page Header Menu */ }\n    .page-header .page-header-menu.fixed {\n      width: 100%;\n      position: fixed;\n      top: 0;\n      left: 0;\n      z-index: 9995; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-header .page-header-menu {\n    background: #eff3f8;\n    /* Horizontal mega menu */ }\n    .page-header .page-header-menu .hor-menu .navbar-nav {\n      background: #fff !important;\n      /* Mega menu content */\n      /* Classic menu */ }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n        box-shadow: none; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu {\n          border-right: none !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n            color: #72808a; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li {\n        border-bottom: 1px solid #F0F0F0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li:last-child {\n          border-bottom: 0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n          background: none !important;\n          color: #666 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li > a > i {\n            color: #666 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus, .page-header .page-header-menu .hor-menu .navbar-nav > li > a:active, .page-header .page-header-menu .hor-menu .navbar-nav > li > a:hover {\n            background: none !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a {\n          background: none !important;\n          color: #32c5d2 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a > i {\n            color: #32c5d2 !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover {\n          color: #fff !important;\n          background: #32c5d2 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover > i {\n            color: #fff !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu {\n          border: 0 !important;\n          border-top: 1px solid #eee;\n          box-shadow: none !important;\n          background: #fff !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.divider {\n            border-bottom: 1px solid #F0F0F0; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:first-child {\n            margin-top: 1px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a {\n            color: #666 !important; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a > i {\n              color: #666 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a {\n            background: none !important;\n            color: #32c5d2 !important; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a > i {\n              color: #32c5d2 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover {\n            color: #fff !important;\n            background: #32c5d2 !important; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a > i,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a > i,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a > i,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n              color: #fff !important; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.active > a:after,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.open > a:after {\n        color: #fff !important; }\n    .page-header .page-header-menu .hor-menu .nav {\n      border: 0 !important;\n      margin: 0 !important; }\n      .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a,\n      .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a:hover {\n        border: 0 !important;\n        margin: 0 !important;\n        color: #fff !important;\n        background: #47cbd7 !important; }\n        .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a > i,\n        .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a:hover > i {\n          color: #fff !important; }\n  .page-header .search-form {\n    background: #fff !important; }\n    .page-header .search-form .input-group {\n      background: #fff !important; }\n      .page-header .search-form .input-group .form-control {\n        background: #fff !important; }\n      .page-header .search-form .input-group .input-group-btn .btn.submit {\n        background: #32c5d2; }\n        .page-header .search-form .input-group .input-group-btn .btn.submit i {\n          color: #fff !important; }\n        .page-header .search-form .input-group .input-group-btn .btn.submit:hover, .page-header .search-form .input-group .input-group-btn .btn.submit:focus, .page-header .search-form .input-group .input-group-btn .btn.submit:active, .page-header .search-form .input-group .input-group-btn .btn.submit.active {\n          background: #27a9b4; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header {\n    /* Top menu */ }\n    .page-header .top-menu {\n      background-color: #fff; }\n      .page-header-fixed-mobile .page-header .top-menu {\n        background-color: #fff; }\n      .page-header .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n        background-color: white; }\n        .page-header-fixed-mobile .page-header .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          background: none; }\n        .page-header .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle:hover {\n          background-color: #fff; } }\n\n/****\n CSS3 Spinner Bar\n****/\n.page-spinner-bar > div,\n.block-spinner-bar > div {\n  background: #47cbd7; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout3/scripts/demo.js",
    "content": "/**\nDemo script to handle the theme demo\n**/\n\nvar Demo = function () {\n\n    // Handle Theme Settings\n    var handleTheme = function () {\n\n        var panel = $('.theme-panel');\n\n        if ($('.page-head > .container-fluid').size() === 1) {\n            $('.theme-setting-layout', panel).val(\"fluid\");\n        } else {\n            $('.theme-setting-layout', panel).val(\"boxed\");\n        }\n\n        if ($('.top-menu li.dropdown.dropdown-dark').size() > 0) {\n            $('.theme-setting-top-menu-style', panel).val(\"dark\");\n        } else {\n            $('.theme-setting-top-menu-style', panel).val(\"light\");\n        }\n\n        if ($('body').hasClass(\"page-header-top-fixed\")) {\n            $('.theme-setting-top-menu-mode', panel).val(\"fixed\");\n        } else {\n            $('.theme-setting-top-menu-mode', panel).val(\"not-fixed\");\n        }\n\n        if ($('.hor-menu.hor-menu-light').size() > 0) {\n            $('.theme-setting-mega-menu-style', panel).val(\"light\");\n        } else {\n            $('.theme-setting-mega-menu-style', panel).val(\"dark\");\n        }\n\n        if ($('body').hasClass(\"page-header-menu-fixed\")) {\n            $('.theme-setting-mega-menu-mode', panel).val(\"fixed\");\n        } else {\n            $('.theme-setting-mega-menu-mode', panel).val(\"not-fixed\");\n        }\n\n        //handle theme layout\n        var resetLayout = function () {\n            $(\"body\").\n            removeClass(\"page-header-top-fixed\").\n            removeClass(\"page-header-menu-fixed\");\n\n            $('.page-header-top > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-header-menu > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-head > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-content > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-prefooter > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-footer > .container-fluid').removeClass(\"container-fluid\").addClass('container');              \n        };\n\n        var setLayout = function () {\n\n            var layoutMode = $('.theme-setting-layout', panel).val();\n            var headerTopMenuStyle = $('.theme-setting-top-menu-style', panel).val();\n            var headerTopMenuMode = $('.theme-setting-top-menu-mode', panel).val();\n            var headerMegaMenuStyle = $('.theme-setting-mega-menu-style', panel).val();\n            var headerMegaMenuMode = $('.theme-setting-mega-menu-mode', panel).val();\n            \n            resetLayout(); // reset layout to default state\n\n            if (layoutMode === \"fluid\") {\n                $('.page-header-top > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-header-menu > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-head > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-content > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-prefooter > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-footer > .container').removeClass(\"container\").addClass('container-fluid');\n\n                //App.runResizeHandlers();\n            }\n\n            if (headerTopMenuStyle === 'dark') {\n                $(\".top-menu > .navbar-nav > li.dropdown\").addClass(\"dropdown-dark\");\n            } else {\n                $(\".top-menu > .navbar-nav > li.dropdown\").removeClass(\"dropdown-dark\");\n            }\n\n            if (headerTopMenuMode === 'fixed') {\n                $(\"body\").addClass(\"page-header-top-fixed\");\n            } else {\n                $(\"body\").removeClass(\"page-header-top-fixed\");\n            }\n\n            if (headerMegaMenuStyle === 'light') {\n                $(\".hor-menu\").addClass(\"hor-menu-light\");\n            } else {\n                $(\".hor-menu\").removeClass(\"hor-menu-light\");\n            }\n\n            if (headerMegaMenuMode === 'fixed') {\n                $(\"body\").addClass(\"page-header-menu-fixed\");\n            } else {\n                $(\"body\").removeClass(\"page-header-menu-fixed\");\n            }          \n        };\n\n        // handle theme colors\n        var setColor = function (color) {\n            var color_ = (App.isRTL() ? color + '-rtl' : color);\n            $('#style_color').attr(\"href\", Layout.getLayoutCssPath() + 'themes/' + color_ + \".min.css\");\n            $('.page-logo img').attr(\"src\", Layout.getLayoutImgPath() + 'logo-' + color + '.png');\n        };\n\n        $('.theme-colors > li', panel).click(function () {\n            var color = $(this).attr(\"data-theme\");\n            setColor(color);\n            $('.theme-colors > li', panel).removeClass(\"active\");\n            $(this).addClass(\"active\");\n        });\n\n        $('.theme-setting-top-menu-mode', panel).change(function(){\n            var headerTopMenuMode = $('.theme-setting-top-menu-mode', panel).val();\n            var headerMegaMenuMode = $('.theme-setting-mega-menu-mode', panel).val();            \n\n            if (headerMegaMenuMode === \"fixed\") {\n                alert(\"The top menu and mega menu can not be fixed at the same time.\");\n                $('.theme-setting-mega-menu-mode', panel).val(\"not-fixed\");   \n                headerTopMenuMode = 'not-fixed';\n            }                \n        });\n\n        $('.theme-setting-mega-menu-mode', panel).change(function(){\n            var headerTopMenuMode = $('.theme-setting-top-menu-mode', panel).val();\n            var headerMegaMenuMode = $('.theme-setting-mega-menu-mode', panel).val();            \n\n            if (headerTopMenuMode === \"fixed\") {\n                alert(\"The top menu and mega menu can not be fixed at the same time.\");\n                $('.theme-setting-top-menu-mode', panel).val(\"not-fixed\");   \n                headerTopMenuMode = 'not-fixed';\n            }                \n        });\n\n        $('.theme-setting', panel).change(setLayout);\n    };\n\n    // handle theme style\n    var setThemeStyle = function(style) {\n        var file = (style === 'rounded' ? 'components-rounded' : 'components');\n        file = (App.isRTL() ? file + '-rtl' : file);\n\n        $('#style_components').attr(\"href\", App.getGlobalCssPath() + file + \".min.css\");\n\n        if (typeof Cookies !== \"undefined\") {\n            Cookies.set('layout-style-option', style);\n        }\n    };\n\n    return {\n\n        //main function to initiate the theme\n        init: function() {\n            // handles style customer tool\n            handleTheme();\n\n            // handle layout style change\n            $('.theme-panel .theme-setting-style').change(function() {\n                 setThemeStyle($(this).val());\n            });\n\n            // set layout style from cookie\n            if (typeof Cookies !== \"undefined\" && Cookies.get('layout-style-option') === 'rounded') {\n                setThemeStyle(Cookies.get('layout-style-option'));\n                $('.theme-panel .layout-style-option').val(Cookies.get('layout-style-option'));\n            }             \n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {   \n        Demo.init();\n    });\n} "
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/layouts/layout3/scripts/layout.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\n\nvar Layout = function () {\n\n    var layoutImgPath = 'layouts/layout3/img/';\n\n    var layoutCssPath = 'layouts/layout3/css/';\n\n    var resBreakpointMd = App.getResponsiveBreakpoint('md');\n\n    //* BEGIN:CORE HANDLERS *//\n    // this function handles responsive layout on screen size resize or mobile device rotate.\n\n    // Handles header\n    var handleHeader = function () {        \n        // handle search box expand/collapse        \n        $('.page-header').on('click', '.search-form', function (e) {\n            $(this).addClass(\"open\");\n            $(this).find('.form-control').focus();\n\n            $('.page-header .search-form .form-control').on('blur', function (e) {\n                $(this).closest('.search-form').removeClass(\"open\");\n                $(this).unbind(\"blur\");\n            });\n        });\n\n        // handle hor menu search form on enter press\n        $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function (e) {\n            if (e.which == 13) {\n                $(this).closest('.search-form').submit();\n                return false;\n            }\n        });\n\n        // handle header search button click\n        $('.page-header').on('mousedown', '.search-form.open .submit', function (e) {\n            e.preventDefault();\n            e.stopPropagation();\n            $(this).closest('.search-form').submit();\n        });\n\n        // handle scrolling to top on responsive menu toggler click when header is fixed for mobile view\n        $('body').on('click', '.page-header-top-fixed .page-header-top .menu-toggler', function(){\n            App.scrollTop();\n        });     \n    };\n\n    // Handles main menu\n    var handleMainMenu = function () {\n\n        // handle menu toggler icon click\n        $(\".page-header .menu-toggler\").on(\"click\", function(event) {\n            if (App.getViewPort().width < resBreakpointMd) {\n                var menu = $(\".page-header .page-header-menu\");\n                if (menu.is(\":visible\")) {\n                    menu.slideUp(300);\n                } else {  \n                    menu.slideDown(300);\n                }\n\n                if ($('body').hasClass('page-header-top-fixed')) {\n                    App.scrollTop();\n                }\n            }\n        });\n\n        // handle sub dropdown menu click for mobile devices only\n        $(\".hor-menu .menu-dropdown > a, .hor-menu .dropdown-submenu > a\").on(\"click\", function(e) {                \n            if (App.getViewPort().width < resBreakpointMd) {\n                if ($(this).next().hasClass('dropdown-menu')) {\n                    e.stopPropagation();\n                    if ($(this).parent().hasClass(\"opened\")) {\n                        $(this).parent().removeClass(\"opened\");\n                    } else {\n                        $(this).parent().addClass(\"opened\");\n                    }\n                }\n            }\n        });\n\n        // close main menu on final link click for mobile mode\n        $(\".hor-menu li > a\").on(\"click\", function(e) {\n            if (App.getViewPort().width < resBreakpointMd) {\n                if (!$(this).parent('li').hasClass('classic-menu-dropdown') && !$(this).parent('li').hasClass('mega-menu-dropdown')\n                    && !$(this).parent('li').hasClass('dropdown-submenu')) {\n                    $(\".page-header .page-header-menu\").slideUp(300);\n                     App.scrollTop();\n                }\n            }\n        });\n\n        // hold mega menu content open on click/tap. \n        $(document).on('click', '.mega-menu-dropdown .dropdown-menu, .classic-menu-dropdown .dropdown-menu', function (e) {\n            e.stopPropagation();\n        });\n\n        // handle fixed mega menu(minimized) \n        $(window).scroll(function() {                \n            var offset = 75;\n            if ($('body').hasClass('page-header-menu-fixed')) {\n                if ($(window).scrollTop() > offset){\n                    $(\".page-header-menu\").addClass(\"fixed\");\n                } else {\n                    $(\".page-header-menu\").removeClass(\"fixed\");  \n                }\n            }\n\n            if ($('body').hasClass('page-header-top-fixed')) {\n                if ($(window).scrollTop() > offset){\n                    $(\".page-header-top\").addClass(\"fixed\");\n                } else {\n                    $(\".page-header-top\").removeClass(\"fixed\");  \n                }\n            }\n        });\n    };\n\n    // Handle sidebar menu links\n    var handleMainMenuActiveLink = function(mode, el, $state) {\n        var url = encodeURI(location.hash).toLowerCase();    \n\n        var menu = $('.hor-menu');\n\n        if (mode === 'click' || mode === 'set') {\n            el = $(el);\n        } else if (mode === 'match') {\n            menu.find(\"li > a\").each(function() {\n                var state = $(this).attr('ui-sref');\n                if ($state && state) {\n                    if ($state.is(state)) {\n                        el = $(this);\n                        return;\n                    }\n                } else {\n                    var path = $(this).attr('href');\n                    if (path) {\n                        // url match condition         \n                        path = path.toLowerCase();\n                        if (path.length > 1 && url.substr(1, path.length - 1) == path.substr(1)) {\n                            el = $(this);\n                            return;\n                        }\n                    }\n                }\n            });\n        }\n\n        if (!el || el.size() == 0) {\n            return;\n        }\n\n        if (el.attr('href') == 'javascript:;' ||\n            el.attr('ui-sref') == 'javascript:;' ||\n            el.attr('href') == '#' ||\n            el.attr('ui-sref') == '#'\n            ) {\n            return;\n        }      \n\n        // disable active states\n        menu.find('li.active').removeClass('active');\n        menu.find('li > a > .selected').remove();\n        menu.find('li.open').removeClass('open');\n\n        el.parents('li').each(function () {\n            $(this).addClass('active');\n\n            if ($(this).parent('ul.navbar-nav').size() === 1) {\n                $(this).find('> a').append('<span class=\"selected\"></span>');\n            }\n        });\n    };\n\n    // Handles main menu on window resize\n    var handleMainMenuOnResize = function() {\n        // handle hover dropdown menu for desktop devices only\n        var width = App.getViewPort().width;\n        var menu = $(\".page-header-menu\");\n            \n        if (width >= resBreakpointMd) { \n            $(\".page-header-menu\").css(\"display\", \"block\");\n        } else if (width < resBreakpointMd) {\n            $(\".page-header-menu\").css(\"display\", \"none\"); \n        } \n    };\n\n    var handleContentHeight = function() {\n        return;\n        var height;\n\n        if ($('body').height() < App.getViewPort().height) {            \n            height = App.getViewPort().height -\n                $('.page-header').outerHeight() - \n                ($('.page-container').outerHeight() - $('.page-content').outerHeight()) -\n                $('.page-prefooter').outerHeight() - \n                $('.page-footer').outerHeight();\n\n            $('.page-content').css('min-height', height);\n        }\n    };\n\n    // Handles the go to top button at the footer\n    var handleGoTop = function () {\n        var offset = 100;\n        var duration = 500;\n\n        if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {  // ios supported\n            $(window).bind(\"touchend touchcancel touchleave\", function(e){\n               if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        } else {  // general \n            $(window).scroll(function() {\n                if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        }\n        \n        $('.scroll-to-top').click(function(e) {\n            e.preventDefault();\n            $('html, body').animate({scrollTop: 0}, duration);\n            return false;\n        });\n    };\n\n    //* END:CORE HANDLERS *//\n\n    return {\n        \n        // Main init methods to initialize the layout\n        // IMPORTANT!!!: Do not modify the core handlers call order.\n\n        initHeader: function($state) {\n            handleHeader(); // handles horizontal menu    \n            handleMainMenu(); // handles menu toggle for mobile\n            App.addResizeHandler(handleMainMenuOnResize); // handle main menu on window resize\n\n            if (App.isAngularJsApp()) {      \n                handleMainMenuActiveLink('match', null, $state); // init sidebar active links \n            }\n        },\n\n        initContent: function() {\n            handleContentHeight(); // handles content height \n        },\n\n        initFooter: function() {\n            handleGoTop(); //handles scroll to top functionality in the footer\n        },\n\n        init: function () {            \n            this.initHeader();\n            this.initContent();\n            this.initFooter();\n        },\n\n        setMainMenuActiveLink: function(mode, el) {\n            handleMainMenuActiveLink(mode, el);\n        },\n\n        setAngularJsMainMenuActiveLink: function(mode, el, $state) {\n            handleMainMenuActiveLink(mode, el, $state);\n        },\n\n        closeMainMenu: function() {\n            $('.hor-menu').find('li.open').removeClass('open');\n\n            if (App.getViewPort().width < resBreakpointMd && $('.page-header-menu').is(\":visible\")) { // close the menu on mobile view while laoding a page \n                $('.page-header .menu-toggler').click();\n            }\n        },\n\n        getLayoutImgPath: function() {\n            return App.getAssetsPath() + layoutImgPath;\n        },\n\n        getLayoutCssPath: function() {\n            return App.getAssetsPath() + layoutCssPath;\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {   \n        Layout.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/about.css",
    "content": "/* Cubic Bezier Transition */\n/***\nAnout Us Page\n***/\n/* BEGIN HEADER */\n.about-header {\n  height: 500px;\n  background-image: url(\"../media/bg/5.jpg\");\n  background-position: center;\n  text-align: center;\n  margin: 0 -20px; }\n\n.about-header h1 {\n  color: #fff;\n  font-size: 55px;\n  font-weight: 600;\n  margin-top: 130px;\n  text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.2); }\n\n.about-header h2 {\n  color: #fff;\n  font-size: 22px;\n  font-weight: 400;\n  letter-spacing: 1px;\n  text-transform: uppercase;\n  margin-top: 30px;\n  margin-bottom: 40px; }\n\n/* END HEADER */\n/* BEGIN CARD */\n.card-icon {\n  width: 100%;\n  text-align: center;\n  overflow: hidden; }\n\n.card-icon i {\n  font-size: 50px;\n  border: 1px solid #ecf0f4;\n  -webkit-border-radius: 50%;\n  -moz-border-radius: 50%;\n  border-radius: 50%;\n  padding: 47px 30px;\n  margin: 30px 0 30px 0; }\n\n.card-title {\n  text-align: center; }\n\n.card-title span {\n  font-size: 18px;\n  font-weight: 600;\n  color: #373d43; }\n\n.card-desc {\n  text-align: center;\n  margin-top: 20px;\n  margin-bottom: 30px; }\n\n.card-desc span {\n  font-size: 14px;\n  font-weight: 400;\n  color: #808a94; }\n\n/* END CARD */\n/* BEGIN LINKS BLOCK */\n.about-links-cont {\n  background-color: #fff;\n  margin: 0 -20px; }\n\n.about-links-cont .about-links {\n  padding: 70px 0 70px 70px; }\n\n.about-links-cont .about-image {\n  padding-left: 110px; }\n\n.about-links-item h4 {\n  font-size: 18px;\n  font-weight: 600;\n  color: #373d43; }\n\n.about-links-item ul {\n  margin: 0;\n  padding: 0;\n  list-style-type: none; }\n\n.about-links-item ul li {\n  padding-top: 5px; }\n\n.about-links-item ul li a {\n  font-size: 14px;\n  font-weight: 400;\n  color: #4a8fba; }\n\n.about-image {\n  background-repeat: no-repeat;\n  background-size: cover; }\n\n/* END LINKS BLOCK */\n/* BEGIN MEMBERS SUCCESS STORIES */\n.stories-header {\n  text-align: center; }\n\n.stories-header h1 {\n  color: #373d43;\n  font-size: 35px;\n  font-weight: 600; }\n\n.stories-header h2 {\n  color: #808a94;\n  font-size: 18px;\n  font-weight: 400;\n  letter-spacing: 1px;\n  text-transform: uppercase;\n  margin-top: 20px; }\n\n.stories-cont .photo {\n  width: 100%; }\n\n.stories-cont .photo img {\n  margin: 30px auto;\n  width: 130px;\n  height: 130px;\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important; }\n\n.stories-cont .title {\n  text-align: center; }\n\n.stories-cont .title span {\n  font-size: 18px;\n  font-weight: 600;\n  color: #373d43; }\n\n.stories-cont .desc {\n  text-align: center;\n  margin-top: 20px;\n  margin-bottom: 30px; }\n\n.stories-cont .desc span {\n  font-size: 14px;\n  font-weight: 400;\n  color: #808a94; }\n\n.stories-footer {\n  text-align: center; }\n\n/* END MEMBERS SUCCESS STORIES */\n/* BEGIN ABOUt AND VIDEO */\n.about-text {\n  height: 500px;\n  padding: 0 !important; }\n  .about-text > h4 {\n    background-color: #d9534f;\n    font-size: 24px;\n    font-weight: 600;\n    color: #fff;\n    padding: 1em 20px;\n    margin: 0; }\n    .about-text > h4 > i {\n      font-size: 24px !important;\n      color: #fff; }\n  .about-text > p {\n    color: #808a94; }\n  .about-text ul,\n  .about-text > p,\n  .about-text .about-quote {\n    padding-left: 20px;\n    padding-right: 20px; }\n  .about-text li {\n    margin-bottom: 0.5em; }\n  .about-text .about-quote > h3 {\n    border-left: 3px solid;\n    border-color: #ccc;\n    padding-left: 1em;\n    font-style: italic;\n    line-height: 1.3em; }\n  .about-text .about-quote > .about-author {\n    text-align: right; }\n\n.about-image {\n  height: 545px; }\n\n.about-links-item {\n  margin-bottom: 2em; }\n\n/* END ABOUt AND VIDEO */\n/* BEGIN RESPONSIVE */\n@media (max-width: 600px) {\n  .about-text {\n    height: auto;\n    padding-bottom: 1.5em !important; }\n  .about-image {\n    margin: 0 -20px; } }\n\n/* END RESPONSIVE */\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/blog.css",
    "content": "@charset \"UTF-8\";\n/* Cubic Bezier Transition */\n/***\nBlog Page\n***/\n.blog-page .bordered {\n  border: 1px solid;\n  border-color: #e7ecf1; }\n\n.blog-page .blog-container {\n  margin-bottom: 30px; }\n\n.blog-page .blog-title > a {\n  color: #4e5a64;\n  font-weight: 600; }\n  .blog-page .blog-title > a:hover {\n    color: #3598DC;\n    text-decoration: none; }\n\n.blog-content-1 .blog-img-thumb {\n  overflow: hidden;\n  position: relative; }\n  .blog-content-1 .blog-img-thumb img {\n    width: 100%;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    position: absolute;\n    margin: auto; }\n\n.blog-content-1 .blog-post-content {\n  padding: 20px 30px 30px 30px;\n  background-color: #fff; }\n  .blog-content-1 .blog-post-content > .blog-post-title {\n    margin: 0 0 30px 0; }\n    .blog-content-1 .blog-post-content > .blog-post-title > a {\n      font-size: 20px; }\n  .blog-content-1 .blog-post-content > .blog-post-desc {\n    color: #a0a9b4;\n    font-size: 14px;\n    margin: 15px 0; }\n  .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta {\n    display: inline-block;\n    margin-right: 10px; }\n    .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta > a {\n      color: #9aa5b2;\n      font-size: 13px;\n      font-weight: 600; }\n      .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta > a:hover {\n        color: #3598DC;\n        text-decoration: none; }\n    .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta > i {\n      margin-right: 5px; }\n    .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta:last-child {\n      margin-right: 0; }\n\n.blog-content-1 .blog-post-lg > .blog-img-thumb {\n  height: 480px; }\n\n.blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-desc {\n  margin-bottom: 30px; }\n\n.blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot {\n  border-top: 1px solid;\n  border-top-color: #f0f1f2;\n  padding-top: 20px;\n  text-align: right; }\n  .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags {\n    text-align: left;\n    float: left;\n    padding: 0; }\n    .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li {\n      list-style: none;\n      display: inline-block;\n      margin-right: 5px; }\n      .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li > a {\n        background-color: #f4f6f8;\n        color: #a0a9b4;\n        font-size: 11px;\n        font-weight: 600;\n        padding: 7px 10px; }\n        .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li > a:hover {\n          background-color: #3598DC;\n          color: #fff;\n          text-decoration: none; }\n      .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li:last-child {\n        margin-right: 0; }\n\n.blog-content-1 .blog-post-sm > .blog-img-thumb {\n  height: 200px; }\n\n.blog-content-1 .blog-post-sm > .blog-post-content > .blog-post-title {\n  margin: 0 0 15px 0; }\n\n.blog-content-1 .blog-post-sm > .blog-post-content > .blog-post-foot {\n  border: none; }\n\n.blog-content-1 .blog-quote {\n  background-color: #fff;\n  padding-bottom: 30px; }\n  .blog-content-1 .blog-quote > .blog-quote-label {\n    color: #fff;\n    padding: 30px 40px 80px 40px;\n    font-size: 18px;\n    line-height: 28px; }\n    .blog-content-1 .blog-quote > .blog-quote-label > i {\n      display: block;\n      font-size: 30px;\n      margin-bottom: 15px; }\n  .blog-content-1 .blog-quote > .blog-quote-avatar {\n    width: 110px;\n    height: 110px;\n    border-radius: 50% !important;\n    margin: -55px auto 25px auto;\n    overflow: hidden; }\n    .blog-content-1 .blog-quote > .blog-quote-avatar img {\n      width: 100%; }\n  .blog-content-1 .blog-quote > .blog-quote-author {\n    text-align: center; }\n    .blog-content-1 .blog-quote > .blog-quote-author > .blog-quote-title {\n      font-size: 20px;\n      margin: 0 0 15px 0; }\n    .blog-content-1 .blog-quote > .blog-quote-author > .blog-quote-desc {\n      font-size: 16px;\n      color: #9aa5b2;\n      margin: 0; }\n\n.blog-content-1 .blog-video > .blog-img-thumb {\n  height: 330px; }\n  .blog-content-1 .blog-video > .blog-img-thumb img {\n    margin: 0; }\n\n.blog-content-1 .blog-video > .blog-video-play i {\n  color: #da555b;\n  background-color: rgba(0, 0, 0, 0.64);\n  font-size: 35px;\n  padding: 27px 20px;\n  position: absolute;\n  z-index: 5;\n  margin: -90px 0 0 20px;\n  border-radius: 50%; }\n\n.blog-content-1 .blog-video > .blog-video-content {\n  text-align: center;\n  padding: 30px; }\n  .blog-content-1 .blog-video > .blog-video-content > .blog-video-title {\n    font-size: 20px;\n    margin: 0 0 15px 0; }\n  .blog-content-1 .blog-video > .blog-video-content > .blog-video-desc {\n    font-size: 16px;\n    color: #9aa5b2;\n    margin: 0; }\n\n.blog-content-1 .blog-banner {\n  background-position: center;\n  text-align: center;\n  padding: 100px 0; }\n  .blog-content-1 .blog-banner > .blog-banner-title > a {\n    color: #fff; }\n    .blog-content-1 .blog-banner > .blog-banner-title > a:hover {\n      color: #3598DC; }\n\n.blog-content-2 .blog-single-content {\n  padding: 40px 30px 15px 30px;\n  background-color: #fff; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-title {\n    font-size: 25px;\n    font-weight: 600;\n    color: #4e5a64;\n    margin: 0 0 40px 0;\n    display: inline-block; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date {\n    float: right;\n    font-size: 13px;\n    font-weight: 600;\n    margin-top: 7px; }\n    .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date > i {\n      margin-right: 5px; }\n    .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date > a {\n      color: #9aa5b2; }\n      .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date > a:hover {\n        color: #3598DC;\n        text-decoration: none; }\n  .blog-content-2 .blog-single-content > .blog-single-img {\n    margin: 0 0 35px 0; }\n    .blog-content-2 .blog-single-content > .blog-single-img > img {\n      width: 100%; }\n  .blog-content-2 .blog-single-content > .blog-single-desc > p {\n    margin: 0 0 35px 0;\n    font-size: 16px;\n    color: #7e8691;\n    line-height: 24px; }\n  .blog-content-2 .blog-single-content > .blog-single-foot {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n    border-color: #f0f1f2;\n    padding: 20px 0 25px 0;\n    margin-bottom: 20px; }\n    .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags {\n      text-align: left;\n      padding: 0;\n      margin: 0; }\n      .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li {\n        list-style: none;\n        display: inline-block;\n        margin-right: 5px; }\n        .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li > a {\n          background-color: #f4f6f8;\n          color: #a0a9b4;\n          font-size: 11px;\n          font-weight: 600;\n          padding: 7px 10px; }\n          .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li > a:hover {\n            background-color: #3598DC;\n            color: #fff;\n            text-decoration: none; }\n        .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li:last-child {\n          margin-right: 0; }\n  .blog-content-2 .blog-single-content .blog-comments {\n    display: inline-block;\n    font-size: 14px;\n    font-weight: 400;\n    margin: 6px 10px 3px 0; }\n    .blog-content-2 .blog-single-content .blog-comments .blog-comments-title {\n      font-size: 20px; }\n    .blog-content-2 .blog-single-content .blog-comments .c-comment-list {\n      margin-bottom: 60px; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media {\n        margin: 30px 0; }\n        .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media .media-body > .media:last-child {\n          margin-bottom: 0; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-object {\n        height: 50px;\n        width: 50px;\n        border-radius: 50px !important; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-heading > a {\n        color: #9aa5b2;\n        font-weight: 600; }\n        .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-heading > a:hover {\n          color: #3598DC;\n          text-decoration: none; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-heading > .c-date {\n        font-size: 14px; }\n    .blog-content-2 .blog-single-content .blog-comments i {\n      position: relative;\n      top: 2px; }\n    .blog-content-2 .blog-single-content .blog-comments input:focus,\n    .blog-content-2 .blog-single-content .blog-comments textarea:focus {\n      outline: 0;\n      border: 1px solid #ccc; }\n\n.blog-content-2 .blog-single-sidebar {\n  padding: 40px 30px;\n  background-color: #fff; }\n  .blog-content-2 .blog-single-sidebar .blog-sidebar-title {\n    font-weight: 600;\n    font-size: 14px;\n    color: #4e5a64;\n    letter-spacing: 1px;\n    margin-top: 40px;\n    margin-bottom: 30px; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-search input {\n    font-size: 14px;\n    color: #a0a9b4; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-search input:focus {\n      outline: 0;\n      border: 1px solid #ccc; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul {\n    padding: 0; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li {\n      list-style: none;\n      margin-bottom: 10px;\n      position: relative; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li > a {\n        color: #49a7fa;\n        font-size: 16px;\n        padding-left: 20px;\n        display: block; }\n        .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li > a:hover {\n          text-decoration: none;\n          color: #3598DC; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li:before {\n        content: \"•\";\n        color: #dae0e5;\n        font-size: 30px;\n        position: absolute;\n        margin-top: -9px; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags {\n    text-align: left;\n    padding: 0;\n    margin: 20px 0 0 0; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 5px 20px 0; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li > a {\n        background-color: #f4f6f8;\n        color: #a0a9b4;\n        font-size: 11px;\n        font-weight: 600;\n        padding: 7px 10px; }\n        .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li > a:hover {\n          background-color: #3598DC;\n          color: #fff;\n          text-decoration: none; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li:last-child {\n        margin-right: 0; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul {\n    padding: 0; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #f0f1f2;\n      padding: 20px 0; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li > a {\n        color: #49a7fa;\n        font-size: 16px; }\n        .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li > a:hover {\n          text-decoration: none;\n          color: #3598DC; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li:first-child {\n        padding-top: 0; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li:last-child {\n        border: none; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-ui .ui-margin {\n    margin: 0; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-ui .ui-padding {\n    padding: 0 5px 5px 0; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-ui img {\n    width: 100%; }\n\n@media (max-width: 991px) {\n  .blog-content-1 .blog-post-lg > .blog-img-thumb {\n    height: 330px; }\n  .blog-content-1 .blog-post-sm > .blog-img-thumb {\n    height: 170px; }\n  .blog-content-1 .blog-video > .blog-img-thumb {\n    height: 301px; }\n    .blog-content-1 .blog-video > .blog-img-thumb img {\n      height: auto;\n      width: 100%; } }\n\n@media (max-width: 480px) {\n  .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot {\n    text-align: left; }\n    .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags {\n      float: none; }\n    .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-meta {\n      margin-right: 10px;\n      margin-top: 10px; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-title {\n    margin-bottom: 0px; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date {\n    float: none;\n    margin-bottom: 40px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/coming-soon.css",
    "content": "/* Cubic Bezier Transition */\n/***\nComing Soon Page\n***/\nbody {\n  background-color: #ddd;\n  padding: 0;\n  margin: 0; }\n\n.coming-soon-header {\n  padding: 20px;\n  margin-top: 80px; }\n\n.coming-soon-content {\n  padding: 20px;\n  margin-top: 10px; }\n\n.coming-soon-countdown {\n  padding: 20px; }\n\n.coming-soon-content h1,\n.coming-soon-content p {\n  color: #fff; }\n\n.coming-soon-content h1 {\n  font-size: 42px;\n  line-height: 50px;\n  margin-bottom: 15px;\n  font-weight: 300; }\n\n.coming-soon-content p {\n  font-size: 14px; }\n\n.coming-soon-footer {\n  text-align: left !important;\n  font-size: 13px;\n  color: #fefefe;\n  padding: 30px; }\n\n/*Countdown*/\n#defaultCountdown {\n  width: 100%;\n  margin: 60px 0;\n  overflow: hidden; }\n\n#defaultCountdown span.countdown_row {\n  overflow: hidden; }\n\n#defaultCountdown span.countdown_row span {\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 20px;\n  margin-right: 2px; }\n\n#defaultCountdown span.countdown_row > span {\n  float: left; }\n\n#defaultCountdown span.countdown_section {\n  color: #fff;\n  padding: 7px 15px !important;\n  margin-bottom: 2px;\n  font-weight: 300;\n  background: url(../img/bg-white.png) repeat;\n  text-align: center; }\n\n#defaultCountdown span.countdown_amount {\n  display: inline-block;\n  font-size: 38px !important;\n  padding: 15px !important;\n  font-weight: 300; }\n\n/*Responsive*/\n@media (max-width: 1024px) {\n  #defaultCountdown span.countdown_amount {\n    padding: 10px; } }\n\n@media (max-width: 767px) {\n  .coming-soon-header,\n  .coming-soon-countdown,\n  .coming-soon-content,\n  .coming-soon-footer {\n    margin-top: 0px;\n    padding: 10px; } }\n\n@media (max-width: 320px) {\n  .coming-soon-content .btn-subscribe span {\n    display: none; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/contact.css",
    "content": ".c-content-contact-1 {\n  width: 100%;\n  position: relative;\n  margin-bottom: 70px; }\n  .c-content-contact-1:before {\n    background-color: rgba(255, 255, 255, 0.5); }\n  .c-content-contact-1:after {\n    background-color: rgba(255, 255, 255, 0.5); }\n  .c-content-contact-1 > .row .c-body {\n    position: relative;\n    z-index: 100;\n    background: #ffffff;\n    margin: 40px 40px 40px 0;\n    padding: 60px 40px; }\n    .c-content-contact-1 > .row .c-body > .c-section {\n      margin-bottom: 15px;\n      text-align: right; }\n      .c-content-contact-1 > .row .c-body > .c-section > .c-content-label {\n        display: inline;\n        padding: 3px 7px;\n        color: #fff; }\n      .c-content-contact-1 > .row .c-body > .c-section > h3 {\n        font-size: 26px;\n        margin: 0 0 30px 0;\n        text-transform: uppercase; }\n      .c-content-contact-1 > .row .c-body > .c-section > p {\n        font-size: 16px;\n        line-height: 24px;\n        color: #7f8c97;\n        font-weight: 300; }\n      .c-content-contact-1 > .row .c-body > .c-section > p,\n      .c-content-contact-1 > .row .c-body > .c-section > .c-content-iconlist-1 {\n        margin-top: 20px; }\n        .c-content-contact-1 > .row .c-body > .c-section > p > li,\n        .c-content-contact-1 > .row .c-body > .c-section > .c-content-iconlist-1 > li {\n          list-style: none;\n          display: inline-block;\n          font-size: 24px;\n          padding: 0 10px 5px 10px;\n          background-color: #eee; }\n\n.c-content-contact-1-gmap {\n  display: block;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  position: absolute;\n  width: 100%; }\n\n.c-content-feedback-1 {\n  width: 100%; }\n  .c-content-feedback-1 > .row > div .c-content-title-1 > h3 {\n    margin-top: 10px;\n    margin-bottom: 20px; }\n  .c-content-feedback-1 > .row > div .c-content-title-1 > .c-line-left {\n    margin-bottom: 30px;\n    height: 3px;\n    width: 40px; }\n  .c-content-feedback-1 > .row > div .c-content-title-1 > p {\n    margin-bottom: 30px;\n    font-weight: 300; }\n  .c-content-feedback-1 > .row > div > .c-container {\n    background-size: auto;\n    padding: 30px;\n    margin: 0 0 30px 0; }\n    .c-content-feedback-1 > .row > div > .c-container > .c-inverse > h3 {\n      color: #ffffff;\n      margin-top: 10px; }\n    .c-content-feedback-1 > .row > div > .c-container > .c-inverse > .c-line-left {\n      background-color: #ffffff; }\n    .c-content-feedback-1 > .row > div > .c-container > .c-inverse > p {\n      color: #ffffff; }\n    .c-content-feedback-1 > .row > div > .c-container:last-child {\n      margin-bottom: 0; }\n      .c-content-feedback-1 > .row > div > .c-container:last-child p {\n        margin-bottom: 0; }\n  .c-content-feedback-1 > .row > div form {\n    margin-bottom: 20px; }\n    .c-content-feedback-1 > .row > div form .input-group {\n      width: 340px; }\n  .c-content-feedback-1 .input-group {\n    border: 0; }\n    .c-content-feedback-1 .input-group .input-group-addon,\n    .c-content-feedback-1 .input-group .btn {\n      border: 0; }\n\n@media (max-width: 1024px) {\n  .c-content-feedback-1 > .row > div form .input-group {\n    width: 100%; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .c-content-contact-1-gmap {\n    display: block;\n    position: static;\n    width: 100%;\n    height: 300px !important; }\n  .c-content-contact-1 > .row > div {\n    width: 100%; }\n    .c-content-contact-1 > .row > div .c-body {\n      position: static;\n      display: block;\n      padding: 30px 20px 10px 20px;\n      background: #fafafa;\n      margin: 0;\n      text-align: left; }\n  .c-content-feedback-1 > .row > div > .c-container {\n    margin-right: 0;\n    margin-bottom: 40px; }\n  .c-content-feedback-1 > .row > div > .c-contact {\n    padding: 40px 30px 0 30px;\n    margin: 0; }\n  .c-content-feedback-1.c-option-2 > .row > div > .c-contact {\n    padding: 30px;\n    margin-top: 40px;\n    background-color: #ffffff; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/error.css",
    "content": "/* Cubic Bezier Transition */\n/***\nError Pages\n***/\n/* 404 page option #1 */\n.page-404 {\n  text-align: center; }\n\n.page-404 .number {\n  position: relative;\n  top: 35px;\n  display: inline-block;\n  letter-spacing: -10px;\n  margin-top: 0px;\n  margin-bottom: 10px;\n  line-height: 128px;\n  font-size: 128px;\n  font-weight: 300;\n  color: #7bbbd6;\n  text-align: right; }\n\n.page-404 .details {\n  margin-left: 40px;\n  display: inline-block;\n  padding-top: 0px;\n  text-align: left; }\n\n/* 500 page option #1 */\n.page-500 {\n  text-align: center; }\n\n.page-500 .number {\n  display: inline-block;\n  letter-spacing: -10px;\n  line-height: 128px;\n  font-size: 128px;\n  font-weight: 300;\n  color: #ec8c8c;\n  text-align: right; }\n\n.page-500 .details {\n  margin-left: 40px;\n  display: inline-block;\n  text-align: left; }\n\n/* 404 page option #2*/\n.page-404-full-page {\n  overflow-x: hidden;\n  padding: 20px;\n  margin-bottom: 20px;\n  background-color: #fafafa !important; }\n\n.page-404-full-page .details input {\n  background-color: #ffffff; }\n\n.page-404-full-page .page-404 {\n  margin-top: 100px; }\n\n/* 500 page option #2*/\n.page-500-full-page {\n  overflow-x: hidden;\n  padding: 20px;\n  background-color: #fafafa !important; }\n\n.page-500-full-page .details input {\n  background-color: #ffffff; }\n\n.page-500-full-page .page-500 {\n  margin-top: 100px; }\n\n/* 404 page option #3*/\n.page-404-3 {\n  background: #000 !important; }\n\n.page-404-3 .page-inner img {\n  right: 0;\n  bottom: 0;\n  z-index: -1;\n  position: absolute; }\n\n.page-404-3 .error-404 {\n  color: #fff;\n  text-align: left;\n  padding: 70px 20px 0; }\n\n.page-404-3 h1 {\n  color: #fff;\n  font-size: 130px;\n  line-height: 160px; }\n\n.page-404-3 h2 {\n  color: #fff;\n  font-size: 30px;\n  margin-bottom: 30px; }\n\n.page-404-3 p {\n  color: #fff;\n  font-size: 16px; }\n\n@media (max-width: 480px) {\n  .page-404 .number,\n  .page-500 .number,\n  .page-404 .details,\n  .page-500 .details {\n    text-align: center;\n    margin-left: 0px; }\n  .page-404-full-page .page-404 {\n    margin-top: 30px; }\n  .page-404-3 .error-404 {\n    text-align: left;\n    padding-top: 10px; }\n  .page-404-3 .page-inner img {\n    right: 0;\n    bottom: 0;\n    z-index: -1;\n    position: fixed; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/faq.css",
    "content": "/* Cubic Bezier Transition */\n/***\nFAQ page\n***/\n.faq-page .bordered {\n  border: 1px solid;\n  border-color: #e7ecf1; }\n\n.faq-page .search-bar {\n  padding: 20px;\n  margin-bottom: 30px;\n  background-color: #fff; }\n  .faq-page .search-bar .input-group {\n    width: 100%; }\n    .faq-page .search-bar .input-group > input {\n      border: none;\n      background-color: #f3f6f9;\n      color: #a0a9b4;\n      height: 55px; }\n\n.faq-content-1 .faq-section {\n  background-color: #fff;\n  padding: 40px 30px 30px 30px;\n  margin-bottom: 30px; }\n  .faq-content-1 .faq-section > .faq-title {\n    margin: 0 0 20px 0;\n    font-size: 14px;\n    font-weight: 600;\n    letter-spacing: 1px; }\n  .faq-content-1 .faq-section .panel-group {\n    margin-bottom: 0; }\n  .faq-content-1 .faq-section > .faq-content .panel {\n    border: none; }\n  .faq-content-1 .faq-section > .faq-content .panel-heading {\n    background-color: transparent;\n    margin-top: 15px; }\n    .faq-content-1 .faq-section > .faq-content .panel-heading i {\n      font-size: 10px;\n      color: #dae0e5;\n      margin-right: 10px;\n      margin-top: 4px;\n      float: left; }\n    .faq-content-1 .faq-section > .faq-content .panel-heading .accordion-toggle {\n      padding-left: 0;\n      padding-right: 0;\n      font-size: 16px;\n      font-weight: 600;\n      color: #5c646a;\n      padding: 0 0 10px 20px;\n      line-height: 22px; }\n      .faq-content-1 .faq-section > .faq-content .panel-heading .accordion-toggle:hover {\n        text-decoration: none;\n        color: #3598DC; }\n  .faq-content-1 .faq-section > .faq-content .panel-body {\n    border: none;\n    background-color: #f3f6f9;\n    margin-left: 20px; }\n    .faq-content-1 .faq-section > .faq-content .panel-body > p {\n      color: #6a757e;\n      font-size: 14px;\n      line-height: 22px; }\n      .faq-content-1 .faq-section > .faq-content .panel-body > p:first-child {\n        margin-top: 0; }\n      .faq-content-1 .faq-section > .faq-content .panel-body > p:last-child {\n        margin-bottom: 0; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/image-crop.css",
    "content": "/* Cubic Bezier Transition */\n/* Apply these styles only when #preview-pane has\n   been placed within the Jcrop widget */\n#preview-pane {\n  display: block;\n  position: absolute;\n  z-index: 2000;\n  right: -200px;\n  padding: 6px;\n  border: 1px rgba(0, 0, 0, 0.4) solid;\n  background-color: white;\n  -webkit-border-radius: 6px;\n  -moz-border-radius: 6px;\n  border-radius: 6px;\n  -webkit-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);\n  -moz-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);\n  box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2); }\n\n@media (max-width: 1024px) {\n  #preview-pane {\n    right: 0; } }\n\n/* The Javascript code will set the aspect ratio of the crop\n   area based on the size of the thumbnail preview,\n   specified here */\n#preview-pane .preview-container {\n  width: 175px;\n  height: 150px;\n  overflow: hidden; }\n\n#demo7 {\n  background-color: #eee;\n  width: 500px;\n  height: 330px;\n  font-size: 24px;\n  font-weight: 300;\n  display: block; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/invoice-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nInvoice page 2\n***/\n.invoice-content-2 {\n  background-color: #fff;\n  padding: 80px 70px; }\n  .invoice-content-2.bordered {\n    border: 1px solid;\n    border-color: #e7ecf1; }\n  .invoice-content-2 .invoice-head {\n    margin-bottom: 50px; }\n    .invoice-content-2 .invoice-head .invoice-logo {\n      text-align: center; }\n      .invoice-content-2 .invoice-head .invoice-logo > img {\n        float: left;\n        margin-right: 45px; }\n      .invoice-content-2 .invoice-head .invoice-logo > h1 {\n        float: left;\n        font-size: 17px;\n        font-weight: 700;\n        color: #39424a;\n        margin-top: 48px; }\n    .invoice-content-2 .invoice-head .company-address {\n      text-align: right;\n      font-size: 14px;\n      color: #7e8691; }\n  .invoice-content-2 .invoice-title {\n    font-size: 12px;\n    font-weight: 600;\n    letter-spacing: 1px;\n    color: #9ea8b7; }\n  .invoice-content-2 .invoice-desc {\n    font-size: 14px;\n    color: #4e5a64;\n    font-weight: 600; }\n    .invoice-content-2 .invoice-desc.inv-address {\n      font-size: 13px;\n      color: #7e8691;\n      font-weight: 400; }\n    .invoice-content-2 .invoice-desc.grand-total {\n      font-size: 16px;\n      font-weight: 700; }\n  .invoice-content-2 .invoice-cust-add {\n    margin-bottom: 50px; }\n  .invoice-content-2 .invoice-body .text-center {\n    text-align: center; }\n  .invoice-content-2 .invoice-body tr:last-child {\n    border-bottom: 1px solid #e7ecf1; }\n  .invoice-content-2 .invoice-body th, .invoice-content-2 .invoice-body td {\n    vertical-align: middle;\n    padding-left: 40px;\n    padding-right: 40px; }\n    .invoice-content-2 .invoice-body th:first-child, .invoice-content-2 .invoice-body td:first-child {\n      padding-left: 0; }\n    .invoice-content-2 .invoice-body th:last-child, .invoice-content-2 .invoice-body td:last-child {\n      padding-right: 0; }\n  .invoice-content-2 .invoice-body h3 {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4e5a64;\n    margin-bottom: 0; }\n  .invoice-content-2 .invoice-body p {\n    font-size: 13px;\n    color: #7e8691; }\n  .invoice-content-2 .print-btn {\n    float: right;\n    font-size: 14px;\n    font-weight: 600;\n    letter-spacing: 1px; }\n\n@media (max-width: 1024px) {\n  .invoice-content-2 .invoice-head .invoice-logo > img {\n    width: 130px;\n    margin-top: 26px; } }\n\n@media (max-width: 991px) {\n  .invoice-content-2 {\n    padding: 40px 30px; } }\n\n@media (max-width: 480px) {\n  .invoice-content-2 .invoice-head .invoice-logo > h1 {\n    margin-top: 10px; }\n  .invoice-content-2 .invoice-head .company-address {\n    font-size: 12px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/invoice.css",
    "content": "/* Cubic Bezier Transition */\n/***\nInvoice page\n***/\n.invoice {\n  margin: 0; }\n  .invoice table {\n    margin: 30px 0 30px 0; }\n\n.invoice .invoice-logo {\n  margin-bottom: 20px; }\n\n.invoice .invoice-logo p {\n  padding: 5px 0;\n  font-size: 26px;\n  line-height: 28px;\n  text-align: right; }\n\n.invoice .invoice-logo p span {\n  display: block;\n  font-size: 14px; }\n\n.invoice .invoice-logo-space {\n  margin-bottom: 15px; }\n\n.invoice .invoice-payment strong {\n  margin-right: 5px; }\n\n.invoice .invoice-block {\n  text-align: right; }\n\n.invoice .invoice-block .amounts {\n  margin-top: 20px;\n  font-size: 14px; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/lock-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLock Page\n***/\nbody {\n  background-color: #ddd;\n  padding: 0;\n  margin: 0; }\n\n.page-lock {\n  top: 50%;\n  left: 50%;\n  position: absolute;\n  margin-top: -140px;\n  margin-left: -260px; }\n\n.page-lock .page-logo {\n  margin-bottom: 15px; }\n\n.page-lock .page-body {\n  width: 510px;\n  padding: 15px;\n  background: url(../img/bg-white-lock.png) repeat;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.page-lock .page-body:after,\n.page-lock .page-body:before {\n  display: table;\n  content: \"\";\n  line-height: 0; }\n\n.page-lock .page-body:after {\n  clear: both; }\n\n.page-lock .page-footer-custom {\n  margin-top: 10px;\n  text-align: left !important;\n  font-size: 12px;\n  color: #eaeaea; }\n\n.page-lock img.page-lock-img {\n  float: left;\n  width: 200px;\n  height: auto; }\n\n.page-lock .page-lock-info {\n  padding-left: 10px;\n  float: right;\n  width: 280px; }\n\n.page-lock .page-lock-info h1 {\n  margin-top: -5px;\n  font-weight: 300;\n  color: #fff;\n  font-size: 28px;\n  line-height: 32px;\n  margin-bottom: 5px; }\n\n.page-lock .page-lock-info .email {\n  color: #eee;\n  display: block;\n  font-size: 14px;\n  line-height: 14px;\n  margin-bottom: 10px; }\n\n.page-lock .page-lock-info .locked {\n  color: #333;\n  font-size: 14px;\n  line-height: 14px;\n  font-style: normal; }\n\n.page-lock .page-lock-info form {\n  margin: 28px 0; }\n\n.page-lock .page-lock-info input {\n  background: #fff; }\n\n.page-lock .relogin {\n  margin-top: 10px; }\n\n.page-lock .relogin a {\n  color: #e1e1e1; }\n\n/*Responsive*/\n@media (max-width: 768px) {\n  .page-lock {\n    top: 0px;\n    width: 280px;\n    margin-top: 20px;\n    margin-left: -140px; }\n  .page-lock .page-body {\n    padding: 20px 10px;\n    text-align: center;\n    width: 280px; }\n  .page-lock img.page-lock-img {\n    float: none !important;\n    display: block;\n    margin: 0 auto;\n    text-align: center;\n    margin-bottom: 15px; }\n  .page-lock .page-lock-info {\n    float: none !important;\n    width: 260px;\n    margin: 0 auto; }\n  .page-lock .page-lock-info input {\n    width: 200px !important; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/lock.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLock Page\n***/\nbody {\n  background-color: #465568 !important;\n  padding: 0;\n  margin: 0; }\n\n.page-lock {\n  margin: 90px auto 30px auto;\n  width: 450px; }\n\n.page-lock .page-logo {\n  text-align: center;\n  margin-bottom: 15px; }\n\n.page-lock .page-body {\n  width: 100%;\n  margin-top: 50px;\n  background-color: #3a4554;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.lock-head {\n  display: block;\n  background-color: #323d4b;\n  text-align: center;\n  padding-top: 15px;\n  padding-bottom: 15px;\n  font-size: 22px;\n  font-weight: 400;\n  color: #4db3a5;\n  -webkit-border-radius: 7px 7px 0 0;\n  -moz-border-radius: 7px 7px 0 0;\n  -ms-border-radius: 7px 7px 0 0;\n  -o-border-radius: 7px 7px 0 0;\n  border-radius: 7px 7px 0 0; }\n\n.lock-body {\n  display: block;\n  margin: 35px;\n  overflow: hidden; }\n\n.lock-avatar {\n  margin-top: 15px;\n  height: 110px;\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important; }\n\n.lock-form {\n  padding-left: 40px; }\n\n.lock-form h4 {\n  margin-top: 0px;\n  color: #dbe2ea;\n  font-size: 18px;\n  font-weight: 400; }\n\n.lock-form .form-group {\n  margin-top: 20px; }\n\n.lock-form .form-group .form-control {\n  background-color: #303a48;\n  border: none;\n  width: 220px;\n  height: 40px;\n  color: #697687; }\n\n.lock-form .form-group .form-control::-moz-placeholder {\n  color: #556376;\n  opacity: 1; }\n\n.lock-form .form-group .form-control:-ms-input-placeholder {\n  color: #556376; }\n\n.lock-form .form-group .form-control::-webkit-input-placeholder {\n  color: #556376; }\n\n.lock-form .form-group .form-control:focus {\n  background-color: #2b3542; }\n\n.lock-form .form-actions {\n  margin-top: 20px; }\n\n.lock-form .form-actions .btn {\n  width: 220px;\n  font-weight: 600;\n  padding: 10px; }\n\n.lock-bottom {\n  display: block;\n  background-color: #323d4b;\n  text-align: center;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  -webkit-border-radius: 0 0 7px 7px;\n  -moz-border-radius: 0 0 7px 7px;\n  -ms-border-radius: 0 0 7px 7px;\n  -o-border-radius: 0 0 7px 7px;\n  border-radius: 0 0 7px 7px; }\n\n.lock-bottom a {\n  font-size: 14px;\n  font-weight: 400;\n  color: #638cac; }\n\n.lock-bottom a:hover {\n  color: #7ba2c0; }\n\n.page-footer-custom {\n  text-align: center;\n  padding-top: 40px;\n  color: #5f6e83; }\n\n@media (max-width: 768px) {\n  .page-lock {\n    margin: 30px auto;\n    width: 280px; }\n  .lock-body {\n    margin: 0px; }\n  .page-lock .page-body {\n    margin-top: 30px; }\n  .lock-avatar {\n    margin-top: 20px; }\n  .lock-avatar-block {\n    display: block;\n    width: 100%;\n    text-align: center;\n    margin-bottom: 10px; }\n  .lock-form {\n    padding-left: 20px; }\n  .lock-form h4 {\n    font-size: 16px;\n    text-align: center; }\n  .lock-form .form-group .form-control {\n    padding: 20px 20px;\n    width: 240px; }\n  .lock-form .form-actions .btn {\n    width: 100%;\n    margin-bottom: 20px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/login-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* bg color */\n.login {\n  background-color: #5c97bd; }\n  .login a {\n    color: #edf4f8 !important; }\n\n.login .logo {\n  margin: 0 auto;\n  margin-top: 100px;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  width: 400px;\n  margin: 40px auto 40px auto; }\n\n.login .form-title {\n  margin-bottom: 20px; }\n\n.login .form-title {\n  color: #edf4f8;\n  font-size: 19px;\n  font-weight: 400 !important; }\n\n.login .form-subtitle {\n  color: #c9dce9;\n  font-size: 17px;\n  font-weight: 300 !important;\n  padding-left: 10px; }\n\n.login .content h4 {\n  color: #555; }\n\n.login .content .hint {\n  color: #b7d1e2;\n  padding: 0;\n  font-size: 14px;\n  margin: 15px 0 7px 0; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .form-control {\n  border: none;\n  background-color: #6ba3c8;\n  border: 1px solid #6ba3c8;\n  height: 43px;\n  color: #d9ecf9; }\n  .login .content .form-control:focus, .login .content .form-control:active {\n    border: 1px solid #83b8db; }\n  .login .content .form-control::-moz-placeholder {\n    color: #d9ecf9;\n    opacity: 1; }\n  .login .content .form-control:-ms-input-placeholder {\n    color: #d9ecf9; }\n  .login .content .form-control::-webkit-input-placeholder {\n    color: #d9ecf9; }\n\n.login .content select.form-control {\n  padding-left: 9px;\n  padding-right: 9px; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  clear: both;\n  border: 0px;\n  padding: 0px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n\n.form-actions .forget-password-block {\n  padding-top: 7px; }\n\n.login-options {\n  margin-top: 30px;\n  padding-top: 20px;\n  padding-bottom: 50px;\n  border-top: 1px solid #69a0c4;\n  border-bottom: 1px solid #69a0c4; }\n\n.login-options h4 {\n  margin-top: 8px;\n  font-weight: 600;\n  font-size: 15px;\n  color: #b7d1e2 !important; }\n\n.login .forget-password {\n  font-size: 14px; }\n\n.login-options .social-icons {\n  float: right;\n  padding-top: 3px; }\n\n.login-options .social-icons li a {\n  border-radius: 15px 15px 15px 15px !important;\n  -moz-border-radius: 15px 15px 15px 15px !important;\n  -webkit-border-radius: 15px 15px 15px 15px !important; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .checkbox {\n  margin-top: 8px;\n  display: inline-block; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .btn {\n  background-color: #5995bb;\n  border: 1px solid #72a9cc;\n  color: #8fc4e5;\n  font-weight: 600;\n  padding: 10px 25px !important; }\n  .login .btn:hover {\n    border: 1px solid #90bbd7;\n    background-color: #5995bb;\n    color: #8fc4e5; }\n\n.login .btn-default {\n  background-color: #5995bb;\n  border: 1px solid #72a9cc;\n  color: #8fc4e5;\n  font-weight: 600;\n  padding: 10px 25px !important; }\n  .login .btn-default:hover {\n    border: 1px solid #90bbd7;\n    background-color: #5995bb;\n    color: #8fc4e5; }\n\n.login .content .forget-password {\n  color: #d7eaf7;\n  font-size: 15px; }\n\n.login .content .rememberme {\n  margin-top: 8px; }\n\n.login .content .mt-checkbox {\n  color: #c9dce9 !important; }\n\n.login .content .mt-checkbox > span:after {\n  border-color: #c9dce9 !important; }\n\n.login .content .create-account {\n  text-align: center;\n  margin-top: 20px; }\n\n.login .content .create-account p a {\n  font-weight: 300;\n  font-size: 16px;\n  color: #ffffff; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 10px auto 30px 0;\n  padding: 10px;\n  color: #c9dce9;\n  font-size: 13px; }\n\n@media (max-width: 1400px) {\n  .login .logo {\n    margin-top: 100px; } }\n\n@media (max-width: 480px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 30px;\n    padding: 0px; }\n  .login .content {\n    width: 245px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/login-3.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* logo page */\n.login {\n  background-color: #a0b4c9 !important; }\n\n.login .logo {\n  margin: 60px auto 20px auto;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  background-color: #fff;\n  width: 360px;\n  margin: 0 auto;\n  margin-bottom: 0px;\n  padding: 30px;\n  padding-top: 20px;\n  padding-bottom: 15px;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.login .content h3 {\n  color: #000; }\n\n.login .content h4 {\n  color: #555; }\n\n.login .content p {\n  color: #222; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .input-icon {\n  border-left: 2px solid #44B6AE !important; }\n\n.login .content .input-icon {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .login .content .input-icon .form-control {\n    border-left: 0; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  background-color: #fff;\n  clear: both;\n  border: 0px;\n  border-bottom: 1px solid #eee;\n  padding: 0px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .rememberme {\n  margin-top: 8px;\n  display: inline-block; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .content .forget-password {\n  margin-top: 25px; }\n\n.login .content .create-account {\n  border-top: 1px dotted #eee;\n  padding-top: 10px;\n  margin-top: 15px; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* select2 dropdowns */\n.login .content .select2-container {\n  border-left: 2px solid #44B6AE !important; }\n\n.login .content .select2-container .select2-choice {\n  border-left: none !important; }\n\n.login .content .select2-container i {\n  display: inline-block;\n  position: relative;\n  color: #ccc;\n  z-index: 1;\n  top: 1px;\n  margin: 4px 4px 0px -1px;\n  width: 16px;\n  height: 16px;\n  font-size: 16px;\n  text-align: center; }\n\n.login .content .has-error .select2-container i {\n  color: #b94a48; }\n\n.login .content .select2-container a span {\n  font-size: 13px; }\n\n.login .content .select2-container a span img {\n  margin-left: 4px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 0 auto;\n  padding: 10px;\n  color: #999;\n  font-size: 13px; }\n\n@media (max-width: 480px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 10px; }\n  .login .content {\n    width: 280px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/login-4.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* logo page */\n.login {\n  background-color: #666 !important; }\n\n.login .logo {\n  margin: 60px auto 20px auto;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  background: url(../img/bg-white-lock.png) repeat;\n  width: 360px;\n  margin: 0 auto;\n  margin-bottom: 0px;\n  padding: 30px;\n  padding-top: 20px;\n  padding-bottom: 15px;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.login .content h3 {\n  color: #eee; }\n\n.login .content h4 {\n  color: #eee; }\n\n.login .content p,\n.login .content label {\n  color: #fff; }\n\n.login .mt-checkbox > span:after {\n  border-color: #eee; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .form-control {\n  background-color: #fff; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  background-color: transparent;\n  clear: both;\n  border: 0px;\n  padding: 0px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .rememberme {\n  margin-top: 8px;\n  display: inline-block; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .content .forget-password {\n  margin-top: 25px; }\n\n.login .content .create-account {\n  border-top: 1px dotted #eee;\n  padding-top: 10px;\n  margin-top: 15px; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* select2 dropdowns */\n.login .content .select2-container i {\n  display: inline-block;\n  position: relative;\n  color: #ccc;\n  z-index: 1;\n  top: 1px;\n  margin: 4px 4px 0px -1px;\n  width: 16px;\n  height: 16px;\n  font-size: 16px;\n  text-align: center; }\n\n.login .content .has-error .select2-container i {\n  color: #b94a48; }\n\n.login .content .select2-container a span {\n  font-size: 13px; }\n\n.login .content .select2-container a span img {\n  margin-left: 4px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 0 auto;\n  padding: 10px;\n  color: #eee;\n  font-size: 13px; }\n\n@media (max-width: 480px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 10px; }\n  .login .content {\n    padding: 30px;\n    width: 222px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/login-5.css",
    "content": "/* Cubic Bezier Transition */\n/* html, body { */\n/* \tfont-family: PingFang SC, Helvetica Neue, \"microsoft yahei\", arial !important; */\n/* } */\n\n*, body{font:13px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\nh1 {\n\tfont-weight: 300;\n\tfont-size: 36px;\n\tline-height: normal;\n\tmargin: auto;\n\tmargin-top: 30px;\n}\n\n.user-login-5 {\n  min-height: 100vh; }\n  .user-login-5 .bs-reset {\n    margin: 0;\n    padding: 0; }\n  .user-login-5 .text-right {\n    text-align: right; }\n  .user-login-5 .login-bg {\n    background-position: center;\n    background-size: cover;\n    background-repeat: no-repeat;\n    min-height: 100vh; }\n  .user-login-5 .login-logo {\n    position: absolute;\n    top: 2.5em;\n    left: 2.5em; }\n    .user-login-5 .login-logo.login-6 {\n      top: 80px;\n      left: 80px; }\n  .user-login-5 .login-container {\n    position: relative;\n    min-height: 100vh; }\n    .user-login-5 .login-container > .login-content,\n    .user-login-5 .login-container .login-social,\n    .user-login-5 .login-container .login-copyright {\n      padding: 0 80px; }\n    .user-login-5 .login-container > .login-content {\n      margin-top: 35%; }\n      .user-login-5 .login-container > .login-content > h1 {\n        font-size: 30px;\n        font-weight: 300;\n        color: #4e5a64; }\n      .user-login-5 .login-container > .login-content p {\n        color: #a0a9b4;\n        font-size: 15px;\n        line-height: 22px; }\n      .user-login-5 .login-container > .login-content > .login-form {\n        margin-top: 80px;\n        color: #a4aab2;\n        font-size: 13px; }\n        .user-login-5 .login-container > .login-content > .login-form .form-control {\n          width: 100%;\n          padding: 10px 0;\n          border: none;\n          border-bottom: 1px solid;\n          border-color: #a0a9b4;\n          color: #868e97;\n          font-size: 14px;\n          margin-bottom: 30px; }\n          .user-login-5 .login-container > .login-content > .login-form .form-control:focus {\n            outline: 0; }\n        .user-login-5 .login-container > .login-content > .login-form .forgot-password,\n        .user-login-5 .login-container > .login-content > .login-form .login-button {\n          display: inline-block; }\n        .user-login-5 .login-container > .login-content > .login-form .rem-password {\n          margin-top: 10px; }\n          .user-login-5 .login-container > .login-content > .login-form .rem-password > p {\n            margin: 0; }\n          .user-login-5 .login-container > .login-content > .login-form .rem-password > .rem-checkbox {\n            border-color: #a4aab2; }\n        .user-login-5 .login-container > .login-content > .login-form .forgot-password {\n          margin-right: 1em; }\n          .user-login-5 .login-container > .login-content > .login-form .forgot-password > a {\n            color: #a4aab2; }\n            .user-login-5 .login-container > .login-content > .login-form .forgot-password > a:hover {\n              color: #337ab7;\n              text-decoration: none; }\n            .user-login-5 .login-container > .login-content > .login-form .forgot-password > a:focus {\n              color: #a4aab2;\n              text-decoration: none; }\n    .user-login-5 .login-container > .login-footer {\n      position: absolute;\n      bottom: 0;\n      width: 100%;\n      padding-bottom: 10px; }\n      .user-login-5 .login-container > .login-footer .login-social {\n        padding-right: 0; }\n        .user-login-5 .login-container > .login-footer .login-social li {\n          display: inline-block;\n          list-style: none;\n          margin-right: 1em; }\n        .user-login-5 .login-container > .login-footer .login-social a {\n          color: #a9b5be;\n          font-size: 18px; }\n          .user-login-5 .login-container > .login-footer .login-social a:hover {\n            color: #337ab7;\n            text-decoration: none; }\n          .user-login-5 .login-container > .login-footer .login-social a:focus {\n            color: #a9b5be; }\n      .user-login-5 .login-container > .login-footer .login-copyright {\n        padding-left: 0;\n        margin-top: 6px; }\n        .user-login-5 .login-container > .login-footer .login-copyright > p {\n          margin: 0;\n          font-size: 13px;\n          color: #a9b5be; }\n  .user-login-5 .alert {\n    margin-top: -60px; }\n  .user-login-5 .form-group.has-error {\n    border-bottom: 2px solid #ed6b75 !important; }\n  .user-login-5 .form-group.valid {\n    border-bottom: 1px solid #a0a9b4 !important; }\n\n@media (max-width: 1365px) {\n  .user-login-5 .login-logo.login-6 {\n    top: 40px;\n    left: 40px; }\n  .user-login-5 .login-container > .login-content,\n  .user-login-5 .login-container .login-social,\n  .user-login-5 .login-container .login-copyright {\n    padding: 0 40px; }\n  .user-login-5 .login-container .login-social {\n    padding-right: 0; }\n  .user-login-5 .login-container .login-copyright {\n    padding-left: 0; } }\n\n@media (max-width: 1023px) {\n  .user-login-5 {\n    min-height: 50vh; }\n    .user-login-5 .mt-login-5-bsfix {\n      width: 100%; }\n    .user-login-5 .login-bg {\n      min-height: 50vh; }\n    .user-login-5 .login-logo.login-6 {\n      position: relative;\n      margin: 0 0 40px 0; }\n    .user-login-5 .login-container {\n      min-height: 50vh; }\n      .user-login-5 .login-container > .login-content {\n        margin-top: 60px; }\n        .user-login-5 .login-container > .login-content .login-form {\n          margin-top: 40px; }\n      .user-login-5 .login-container .rem-password {\n        margin-bottom: 1em; }\n      .user-login-5 .login-container > .login-footer {\n        position: relative;\n        margin-top: 40px;\n        padding-bottom: 0; }\n        .user-login-5 .login-container > .login-footer .login-social li {\n          margin-right: 0.5em; }\n    .user-login-5 .alert {\n      margin-top: -20px; } }\n\n@media (max-width: 640px) {\n  .user-login-5 .login-container > .login-content .text-right {\n    text-align: left; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/login.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* bg color */\n.login {\n  background-color: #364150 !important; }\n\n.login .logo {\n  margin: 0 auto;\n  margin-top: 60px;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  background-color: white;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px;\n  width: 400px;\n  margin: 40px auto 10px auto;\n  padding: 30px;\n  padding-top: 10px;\n  overflow: hidden;\n  position: relative; }\n\n.login .content h3 {\n  color: #4db3a5;\n  text-align: center;\n  font-size: 28px;\n  font-weight: 400 !important; }\n\n.login .content h4 {\n  color: #555; }\n\n.login .content .hint {\n  color: #999;\n  padding: 0;\n  margin: 15px 0 7px 0; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .form-control {\n  border: none;\n  background-color: #dde3ec;\n  height: 43px;\n  color: #8290a3;\n  border: 1px solid #dde3ec; }\n  .login .content .form-control:focus, .login .content .form-control:active {\n    border: 1px solid #c3ccda; }\n  .login .content .form-control::-moz-placeholder {\n    color: #8290a3;\n    opacity: 1; }\n  .login .content .form-control:-ms-input-placeholder {\n    color: #8290a3; }\n  .login .content .form-control::-webkit-input-placeholder {\n    color: #8290a3; }\n\n.login .content select.form-control {\n  padding-left: 9px;\n  padding-right: 9px; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  clear: both;\n  border: 0px;\n  border-bottom: 1px solid #eee;\n  padding: 25px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n  .login .content .form-actions > .btn {\n    margin-top: -2px; }\n\n.login-options {\n  margin-top: 30px;\n  margin-bottom: 30px;\n  overflow: hidden; }\n\n.login-options h4 {\n  float: left;\n  font-weight: 600;\n  font-size: 15px;\n  color: #7d91aa !important; }\n\n.login-options .social-icons {\n  float: right;\n  padding-top: 3px; }\n\n.login-options .social-icons li a {\n  border-radius: 15px 15px 15px 15px !important;\n  -moz-border-radius: 15px 15px 15px 15px !important;\n  -webkit-border-radius: 15px 15px 15px 15px !important; }\n\n.login .content .form-actions .checkbox {\n  margin-left: 0;\n  padding-left: 0; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .content .form-actions .btn {\n  font-weight: 600;\n  padding: 10px 20px !important; }\n\n.login .content .form-actions .btn-default {\n  font-weight: 600;\n  padding: 10px 25px !important;\n  color: #6c7a8d;\n  background-color: #ffffff;\n  border: none; }\n\n.login .content .form-actions .btn-default:hover {\n  background-color: #fafaff;\n  color: #45b6af; }\n\n.login .content .forget-password {\n  font-size: 14px;\n  float: right;\n  display: inline-block;\n  margin-top: 10px; }\n\n.login .content .check {\n  color: #8290a3; }\n\n.login .content .rememberme {\n  margin-left: 8px; }\n\n.login .content .create-account {\n  margin: 0 -40px -30px -40px;\n  padding: 15px 0 17px 0;\n  text-align: center;\n  background-color: #6c7a8d;\n  -webkit-border-radius: 0 0 7px 7px;\n  -moz-border-radius: 0 0 7px 7px;\n  -ms-border-radius: 0 0 7px 7px;\n  -o-border-radius: 0 0 7px 7px;\n  border-radius: 0 0 7px 7px; }\n  .login .content .create-account > p {\n    margin: 0; }\n\n.login .content .create-account p a {\n  font-weight: 600;\n  font-size: 14px;\n  color: #c3cedd; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 0 auto 30px 0;\n  padding: 10px;\n  color: #7a8ca5;\n  font-size: 13px; }\n\n@media (max-width: 440px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 10px; }\n  .login .content {\n    width: 280px;\n    margin-top: 10px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .forget-password {\n    display: inline-block;\n    margin-top: 20px; }\n  .login-options .social-icons {\n    float: left;\n    padding-top: 3px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/portfolio.css",
    "content": "/* Cubic Bezier Transition */\n/***\nPortfolio\n***/\n.portfolio-content {\n  padding-top: 10px; }\n  .portfolio-content .cbp-l-filters-buttonCenter .cbp-filter-item,\n  .portfolio-content .cbp-l-filters-buttonCenter .cbp-filter-counter,\n  .portfolio-content .cbp-l-filters-big .cbp-l-filters-big .cbp-filter-item,\n  .portfolio-content .cbp-l-grid-work-title,\n  .portfolio-content .cbp-l-clients-title-block,\n  .portfolio-content .cbp-l-grid-masonry-projects-title,\n  .portfolio-content .cbp-l-grid-masonry-projects-desc,\n  .portfolio-content .cbp-l-grid-mosaic .cbp-l-caption-title,\n  .portfolio-content .cbp-l-grid-mosaic .cbp-l-caption-desc,\n  .portfolio-content .cbp-l-slider-title-block div,\n  .portfolio-content .cbp-l-grid-slider-team-name,\n  .portfolio-content .cbp-l-grid-slider-team-position,\n  .portfolio-content .cbp-l-grid-slider-team-desc,\n  .portfolio-content .cbp-l-grid-slider-testimonials-footer,\n  .portfolio-content .cbp-l-testimonials-title-block,\n  .portfolio-content .cbp-l-grid-testimonials-footer,\n  .portfolio-content .cbp-caption-expand .cbp-caption-defaultWrap,\n  .portfolio-content .cbp-caption-expand .cbp-l-caption-body {\n    font-family: \"Open Sans\", sans-serif !important; }\n  .portfolio-content .text-center {\n    text-align: center; }\n  .portfolio-content .cbp-l-project-related-link:hover {\n    text-decoration: none; }\n  .portfolio-content .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active,\n  .portfolio-content .cbp-l-filters-button .cbp-filter-counter {\n    background-color: #2F353B;\n    border-color: #2F353B;\n    color: #fff; }\n    .portfolio-content .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active:before,\n    .portfolio-content .cbp-l-filters-button .cbp-filter-counter:before {\n      border-top-color: #2F353B; }\n  .portfolio-content .cbp-l-project-desc-title span,\n  .portfolio-content .cbp-l-project-details-title span {\n    border-bottom-color: #e7505a;\n    text-transform: uppercase;\n    font-weight: 600; }\n  .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active,\n  .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-counter {\n    background-color: #32C5D2;\n    border-color: #32C5D2;\n    color: #fff; }\n    .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active:before,\n    .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-counter:before {\n      border-top-color: #32C5D2; }\n  .portfolio-content.portfolio-2 .cbp-l-grid-mosaic .cbp-caption-activeWrap {\n    background-color: rgba(50, 197, 210, 0.9); }\n    .portfolio-content.portfolio-2 .cbp-l-grid-mosaic .cbp-caption-activeWrap .cbp-l-caption-title,\n    .portfolio-content.portfolio-2 .cbp-l-grid-mosaic .cbp-caption-activeWrap .cbp-l-caption-desc {\n      color: #fff; }\n  .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active,\n  .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-counter {\n    background-color: #3598DC;\n    border-color: #3598DC;\n    color: #fff; }\n    .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active:before,\n    .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-counter:before {\n      border-top-color: #3598DC; }\n  .portfolio-content.portfolio-3 .cbp-caption-zoom .cbp-caption-activeWrap {\n    background-color: rgba(0, 0, 0, 0.7); }\n  .portfolio-content.portfolio-3 .cbp-l-project-desc-title span,\n  .portfolio-content.portfolio-3 .cbp-l-project-details-title span {\n    border-bottom-color: #3598DC; }\n  .portfolio-content.portfolio-3 .cbp-l-filters-dropdown {\n    margin-bottom: 25px; }\n  .portfolio-content.portfolio-4 .cbp-caption-zoom .cbp-caption-activeWrap {\n    background-color: rgba(0, 0, 0, 0.7); }\n  .portfolio-content.portfolio-4 .cbp-l-filters-alignCenter {\n    margin-bottom: 25px; }\n    .portfolio-content.portfolio-4 .cbp-l-filters-alignCenter .cbp-filter-item {\n      margin-bottom: 0; }\n  .portfolio-content .cbp-l-filters-dropdown-floated {\n    margin-top: 0; }\n  .portfolio-content .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownHeader {\n    line-height: 31px; }\n  .portfolio-content .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item {\n    line-height: 31px; }\n  .portfolio-content .cbp-popup-singlePage .cbp-popup-content {\n    max-width: 1170px; }\n  .portfolio-content .cbp-l-filters-button {\n    margin-bottom: 25px; }\n  .portfolio-content .cbp-l-loadMore-button {\n    margin-bottom: 60px; }\n  .portfolio-content .btn {\n    padding: 6px 12px; }\n\n.cbp-popup-wrap,\n.cbp-popup-singlePage-open {\n  z-index: 10105 !important; }\n\n.cbp-popup-singlePage .cbp-popup-navigation-wrap {\n  z-index: 10106 !important; }\n\n.portfolio-tile {\n  margin-bottom: 30px; }\n\n.cbp-l-filters-dropdownWrap {\n  background: none;\n  border: 1px solid #2F353B; }\n  .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownHeader {\n    color: #2F353B;\n    font-size: 12px; }\n    .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownHeader:after {\n      border-color: #2F353B transparent; }\n  .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList {\n    background: #ffffff; }\n    .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item {\n      font-size: 12px;\n      color: #2F353B;\n      border: 0; }\n      .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item:hover {\n        background: #f3f4f5; }\n      .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item.cbp-filter-item-active {\n        background: #e5e8ea; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/pricing.css",
    "content": "/* Cubic Bezier Transition */\n/***\nPricing Table 1\n***/\n.pricing-content-1 {\n  background-color: #fff; }\n  .pricing-content-1:before, .pricing-content-1:after {\n    content: \" \";\n    display: table; }\n  .pricing-content-1:after {\n    clear: both; }\n  .pricing-content-1 .arrow-down {\n    width: 0;\n    height: 0;\n    border-left: 15px solid transparent;\n    border-right: 15px solid transparent;\n    border-top: 15px solid;\n    margin: auto; }\n    .pricing-content-1 .arrow-down.arrow-blue {\n      border-top-color: #3598DC; }\n    .pricing-content-1 .arrow-down.arrow-green {\n      border-top-color: #32C5D2; }\n    .pricing-content-1 .arrow-down.arrow-dark {\n      border-top-color: #2F353B; }\n    .pricing-content-1 .arrow-down.arrow-grey {\n      border-top-color: #f7f9fb; }\n  .pricing-content-1 .price-ribbon {\n    position: absolute;\n    top: 75px;\n    right: -4px;\n    width: 90px;\n    font-size: 14px;\n    text-transform: uppercase;\n    font-weight: 300;\n    padding: 6px 20px 6px 15px;\n    color: #fff;\n    background-color: #D91E18;\n    text-shadow: 0px 1px 2px #bbb;\n    -webkit-box-shadow: 0px 2px 4px #888;\n    -moz-box-shadow: 0px 2px 4px #888;\n    box-shadow: 0px 2px 4px #888; }\n    .pricing-content-1 .price-ribbon:after {\n      content: ' ';\n      position: absolute;\n      width: 0;\n      height: 0;\n      right: 0px;\n      top: 100%;\n      border-width: 5px 10px;\n      border-style: solid;\n      border-color: #64120f transparent transparent #64120f; }\n  .pricing-content-1 .pricing-title {\n    border-bottom: 1px solid;\n    border-color: #fff; }\n    .pricing-content-1 .pricing-title > h1 {\n      margin: 20px 0; }\n  .pricing-content-1 .price-column-container {\n    text-align: center;\n    margin: 0;\n    background-color: #fff; }\n    .pricing-content-1 .price-column-container.border-active {\n      border: 1px solid #e5e9ee; }\n    .pricing-content-1 .price-column-container:first-child {\n      margin-left: 0; }\n    .pricing-content-1 .price-column-container:last-child {\n      margin-right: 0; }\n  .pricing-content-1 .price-table-head {\n    color: #fff;\n    padding: 20px 0; }\n    .pricing-content-1 .price-table-head h2 {\n      font-size: 26px; }\n    .pricing-content-1 .price-table-head.price-1 {\n      background-color: #3598DC; }\n    .pricing-content-1 .price-table-head.price-2 {\n      background-color: #32C5D2; }\n    .pricing-content-1 .price-table-head.price-3 {\n      background-color: #2F353B; }\n  .pricing-content-1 .price-table-pricing > h3 {\n    font-size: 60px;\n    position: relative; }\n    .pricing-content-1 .price-table-pricing > h3 > .price-sign {\n      font-size: 24px;\n      margin-left: -15px;\n      vertical-align: top;\n      top: 15px; }\n  .pricing-content-1 .price-table-pricing > p {\n    margin-top: 0; }\n  .pricing-content-1 .price-table-content {\n    background-color: #f7f9fb;\n    color: #5c6d7e;\n    font-weight: 600;\n    font-size: 16px; }\n    .pricing-content-1 .price-table-content .row {\n      padding-top: 10px;\n      padding-bottom: 10px; }\n      .pricing-content-1 .price-table-content .row i {\n        color: #6cade6; }\n      .pricing-content-1 .price-table-content .row:first-child {\n        padding-top: 20px; }\n      .pricing-content-1 .price-table-content .row:last-child {\n        padding-bottom: 20px; }\n  .pricing-content-1 .price-table-footer {\n    padding: 20px 0; }\n    .pricing-content-1 .price-table-footer > .price-button {\n      font-weight: bold;\n      padding: 10px 20px; }\n\n@media (max-width: 1024px) {\n  .pricing-content-1 .mobile-padding {\n    padding: 0;\n    margin: 0; }\n    .pricing-content-1 .mobile-padding > i {\n      margin-right: 5px; }\n  .pricing-content-1 .price-table-content {\n    padding-left: 10px;\n    padding-right: 10px; } }\n\n@media (max-width: 1024px) {\n  .pricing-content-1 .mobile-padding {\n    padding: 0 15px;\n    margin: 0 -15px; }\n    .pricing-content-1 .mobile-padding > i {\n      margin-right: 20px; }\n  .pricing-content-1 .price-table-content {\n    padding-left: 15px;\n    padding-right: 15px; } }\n\n/***\nPricing Table 2\n***/\n.pricing-content-2 {\n  background-color: #fff; }\n  .pricing-content-2 .no-padding {\n    padding: 0; }\n  .pricing-content-2 .text-left {\n    text-align: left; }\n  .pricing-content-2 .text-right {\n    text-align: right; }\n  .pricing-content-2.pricing-bg-dark {\n    background-color: #2F353B; }\n  .pricing-content-2 .pricing-title {\n    border-color: #444; }\n    .pricing-content-2 .pricing-title > h1 {\n      color: #fff; }\n  .pricing-content-2 .pricing-table-container {\n    padding-top: 40px;\n    padding-bottom: 40px; }\n    .pricing-content-2 .pricing-table-container .padding-fix {\n      padding-left: 15px;\n      padding-right: 15px; }\n    .pricing-content-2 .pricing-table-container .price-column-container {\n      background-color: #fff;\n      margin: 30px 0;\n      padding: 60px 0;\n      text-align: center;\n      border-bottom: 4px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.border-right {\n        border-right: 1px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.border-left {\n        border-left: 1px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.border-top {\n        border-top: 1px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.featured-price {\n        margin: 0;\n        padding: 89px 0;\n        border: 1px solid;\n        border-bottom: 4px solid;\n        border-color: #ccc; }\n        .pricing-content-2 .pricing-table-container .price-column-container.featured-price > .price-feature-label {\n          position: absolute;\n          top: 0;\n          left: 50%;\n          display: inline-block;\n          width: 110px;\n          margin: 0 0 0 -60px;\n          padding: 7px 15px;\n          color: #fff;\n          font-weight: 300; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-head > h2 {\n        letter-spacing: 1px;\n        font-weight: 600;\n        font-size: 18px;\n        color: #ACB5C3; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-head > h2.opt-pricing-5 {\n          padding: 7px 15px;\n          display: inline;\n          margin: 0 auto 20px auto;\n          font-size: 16px; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-pricing > h3 {\n        font-size: 60px;\n        position: relative;\n        font-weight: 600; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-pricing > h3 > .price-sign {\n          font-size: 24px;\n          margin-left: -15px;\n          vertical-align: top;\n          top: 15px; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-pricing > p {\n        margin-top: 0; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-content {\n        color: #333;\n        font-weight: 300;\n        font-size: 16px; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-content .row {\n          padding-top: 20px;\n          padding-bottom: 20px;\n          border-bottom: 1px solid;\n          border-color: #eee; }\n          .pricing-content-2 .pricing-table-container .price-column-container > .price-table-content .row:first-child {\n            border-top: 1px solid;\n            border-color: #eee; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-footer {\n        padding: 40px 0 0 0; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-footer > .featured-price {\n          font-size: 20px;\n          font-weight: 300;\n          border-bottom: 3px solid #3FABA4; }\n\n@media (max-width: 991px) {\n  .pricing-content-2 .price-column-container {\n    border-left: 1px solid;\n    border-right: 1px solid;\n    border-color: #ccc; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/profile-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nProfile Page\n***/\n.profile {\n  position: relative; }\n  .page-container-bg-solid .profile {\n    background: #ffffff;\n    padding: 20px; }\n\n.profile p {\n  color: #636363;\n  font-size: 13px; }\n\n.profile p a {\n  color: #169ef4; }\n\n.profile label {\n  margin-top: 10px; }\n\n.profile label:first-child {\n  margin-top: 0; }\n\n/*profile info*/\n.profile-classic .profile-image {\n  position: relative; }\n\n.profile-classic .profile-edit {\n  top: 0;\n  right: 0;\n  margin: 0;\n  color: #fff;\n  opacity: 0.6;\n  padding: 0 9px;\n  font-size: 11px;\n  background: #000;\n  position: absolute;\n  filter: alpha(opacity=60);\n  /*for ie*/ }\n\n.profile-classic .profile-image img {\n  margin-bottom: 15px; }\n\n.profile-classic li {\n  padding: 8px 0;\n  font-size: 13px;\n  border-top: solid 1px #f5f5f5; }\n\n.profile-classic li:first-child {\n  border-top: none; }\n\n.profile-classic li span {\n  color: #666;\n  font-size: 13px;\n  margin-right: 7px; }\n\n/*profile tabs*/\n.profile .tabbable-custom-profile .nav-tabs > li > a {\n  padding: 6px 12px; }\n\n/*profile navigation*/\n.profile ul.profile-nav {\n  margin-bottom: 30px; }\n  .profile ul.profile-nav img.pic-bordered {\n    border: 1px solid #e1e7ee; }\n\n.profile ul.profile-nav li {\n  position: relative; }\n\n.profile ul.profile-nav li a {\n  color: #557386;\n  display: block;\n  font-size: 14px;\n  padding: 8px 10px;\n  margin-bottom: 1px;\n  background: #f0f6fa;\n  border-left: solid 2px #c4d5df; }\n\n.profile ul.profile-nav li a:hover {\n  color: #169ef4;\n  background: #ecf5fb;\n  text-decoration: none;\n  border-left: solid 2px #169ef4; }\n\n.profile ul.profile-nav li a.profile-edit {\n  top: 0;\n  right: 0;\n  margin: 0;\n  color: #fff;\n  opacity: 0.6;\n  border: none;\n  padding: 3px 9px;\n  font-size: 12px;\n  background: #000;\n  position: absolute;\n  filter: alpha(opacity=60);\n  /*for ie*/ }\n\n.profile ul.profile-nav li a.profile-edit:hover {\n  text-decoration: underline; }\n\n.profile ul.profile-nav a span {\n  top: 0;\n  right: 0;\n  color: #fff;\n  font-size: 16px;\n  padding: 7px 13px;\n  position: absolute;\n  background: #169ef4; }\n\n.profile ul.profile-nav a:hover span {\n  background: #0b94ea; }\n\n/*profile information*/\n.profile-info h1 {\n  color: #383839;\n  font-size: 24px;\n  font-weight: 400;\n  margin: 0 0 10px 0; }\n\n.profile-info ul {\n  margin-bottom: 15px; }\n\n.profile-info li {\n  color: #6b6b6b;\n  font-size: 13px;\n  margin-right: 15px;\n  margin-bottom: 5px;\n  padding: 0 !important; }\n\n.profile-info li i {\n  color: #b5c1c9;\n  font-size: 15px; }\n\n.profile-info li:hover i {\n  color: #169ef4; }\n\n/*profile sales summary*/\n.sale-summary ul {\n  margin-top: -10px; }\n\n.sale-summary li {\n  padding: 10px 0;\n  overflow: hidden;\n  border-top: solid 1px #eee; }\n\n.sale-summary li:first-child {\n  border-top: none; }\n\n.sale-summary li .sale-info {\n  margin-top: 4px;\n  float: left;\n  color: #646464;\n  font-size: 14px;\n  text-transform: uppercase; }\n\n.sale-summary li .sale-num {\n  float: right;\n  color: #169ef4;\n  font-size: 20px;\n  font-weight: 300; }\n\n.sale-summary li span i {\n  top: 1px;\n  width: 13px;\n  height: 14px;\n  margin-left: 3px;\n  position: relative;\n  display: inline-block; }\n\n.sale-summary .caption h4 {\n  color: #383839;\n  font-size: 18px; }\n\n.sale-summary .caption {\n  border-color: #c9c9c9; }\n\n/*latest customers table*/\n.profile .table-advance thead tr th {\n  background: #f0f6fa; }\n\n.profile .table-bordered th,\n.profile .table-bordered td,\n.profile .table-bordered {\n  border-color: #e5eff6; }\n\n.profile .table-striped tbody > tr:nth-child(2n+1) > td,\n.profile .table-striped tbody > tr:nth-child(2n+1) > th {\n  background: #fcfcfc; }\n\n.profile .table-hover tbody tr:hover td,\n.profile .table-hover tbody tr:hover th {\n  background: #f5fafd; }\n\n/*add portfolio*/\n.add-portfolio {\n  overflow: hidden;\n  margin-bottom: 30px;\n  background: #f0f6fa;\n  padding: 12px 14px; }\n\n.add-portfolio span {\n  float: left;\n  display: inline-block;\n  font-weight: 300;\n  font-size: 22px;\n  margin-top: 0px; }\n\n.add-portfolio .btn {\n  margin-left: 20px; }\n\n/*portfolio block*/\n.portfolio-block {\n  background: #f7f7f7;\n  margin-bottom: 15px;\n  overflow: hidden; }\n\n.portfolio-stat {\n  overflow: hidden; }\n\n/*portfolio text*/\n.portfolio-text {\n  overflow: hidden; }\n\n.portfolio-text img {\n  float: left;\n  margin-right: 15px; }\n\n.portfolio-text .portfolio-text-info {\n  overflow: hidden; }\n\n/*portfolio button*/\n.portfolio-btn a {\n  display: block;\n  padding: 25px 0;\n  background: #ddd !important; }\n\n.portfolio-btn a:hover {\n  background: #1d943b !important; }\n\n.portfolio-btn span {\n  color: #fff;\n  font-size: 22px;\n  font-weight: 200; }\n\n/*portfolio info*/\n.portfolio-info {\n  float: left;\n  color: #616161;\n  font-size: 12px;\n  padding: 10px 25px;\n  margin-bottom: 5px;\n  text-transform: uppercase; }\n\n.portfolio-info span {\n  color: #16a1f2;\n  display: block;\n  font-size: 28px;\n  line-height: 28px;\n  margin-top: 0px;\n  font-weight: 200;\n  text-transform: uppercase; }\n\n/*portfolio settings*/\n.profile-settings {\n  background: #fafafa;\n  padding: 15px 8px 0;\n  margin-bottom: 5px; }\n\n.profile-settings p {\n  padding-left: 5px;\n  margin-bottom: 3px; }\n\n.profile-settings .controls > .radio,\n.profile-settings .controls > .checkbox {\n  font-size: 12px;\n  margin-top: 2px !important; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/profile.css",
    "content": "/* Cubic Bezier Transition */\n/***\nNew Profile Page\n***/\n.profile-sidebar {\n  float: left;\n  width: 300px;\n  margin-right: 20px; }\n\n.profile-content {\n  overflow: hidden; }\n\n/* PROFILE SIDEBAR */\n.profile-sidebar-portlet {\n  padding: 30px 0 0 0 !important; }\n\n.profile-userpic img {\n  float: none;\n  margin: 0 auto;\n  width: 50%;\n  height: 50%;\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important; }\n\n.profile-usertitle {\n  text-align: center;\n  margin-top: 20px; }\n\n.profile-usertitle-name {\n  color: #5a7391;\n  font-size: 20px;\n  font-weight: 600;\n  margin-bottom: 7px; }\n\n.profile-usertitle-job {\n  text-transform: uppercase;\n  color: #5b9bd1;\n  font-size: 13px;\n  font-weight: 800;\n  margin-bottom: 7px; }\n\n.profile-userbuttons {\n  text-align: center;\n  margin-top: 10px; }\n\n.profile-userbuttons .btn {\n  margin-right: 5px; }\n  .profile-userbuttons .btn:last-child {\n    margin-right: 0; }\n\n.profile-userbuttons button {\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 600;\n  padding: 6px 15px; }\n\n.profile-usermenu {\n  margin-top: 30px;\n  padding-bottom: 20px; }\n\n.profile-usermenu ul li {\n  border-bottom: 1px solid #f0f4f7; }\n\n.profile-usermenu ul li:last-child {\n  border-bottom: none; }\n\n.profile-usermenu ul li a {\n  color: #93a3b5;\n  font-size: 16px;\n  font-weight: 400; }\n\n.profile-usermenu ul li a i {\n  margin-right: 8px;\n  font-size: 16px; }\n\n.profile-usermenu ul li a:hover {\n  background-color: #fafcfd;\n  color: #5b9bd1; }\n\n.profile-usermenu ul li.active a {\n  color: #5b9bd1;\n  background-color: #f6f9fb;\n  border-left: 2px solid #5b9bd1;\n  margin-left: -2px; }\n\n.profile-stat {\n  padding-bottom: 20px;\n  border-bottom: 1px solid #f0f4f7; }\n\n.profile-stat-title {\n  color: #7f90a4;\n  font-size: 25px;\n  text-align: center; }\n\n.profile-stat-text {\n  color: #5b9bd1;\n  font-size: 11px;\n  font-weight: 800;\n  text-align: center; }\n\n.profile-desc-title {\n  color: #7f90a4;\n  font-size: 17px;\n  font-weight: 600; }\n\n.profile-desc-text {\n  color: #7e8c9e;\n  font-size: 14px; }\n\n.profile-desc-link i {\n  width: 22px;\n  font-size: 19px;\n  color: #abb6c4;\n  margin-right: 5px; }\n\n.profile-desc-link a {\n  font-size: 14px;\n  font-weight: 600;\n  color: #5b9bd1; }\n\n/* END PROFILE SIDEBAR */\n/* RESPONSIVE MODE */\n@media (max-width: 991px) {\n  /* 991px */\n  /* 991px */\n  .profile-sidebar {\n    float: none;\n    width: 100% !important;\n    margin: 0; }\n  .profile-sidebar > .portlet {\n    margin-bottom: 20px; }\n  .profile-content {\n    overflow: visible; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/search.css",
    "content": "/* Cubic Bezier Transition */\n/* \nSearch Page\n***/\n.search-page .bordered {\n  border: 1px solid;\n  border-color: #e7ecf1; }\n\n.search-page .search-bar {\n  padding: 20px;\n  margin-bottom: 40px;\n  background-color: #fff; }\n  .search-page .search-bar input {\n    border: none;\n    background-color: #f3f6f9;\n    color: #a0a9b4;\n    height: 55px; }\n  .search-page .search-bar button {\n    color: #fff;\n    height: 55px;\n    width: 130px;\n    margin-left: -3px;\n    margin-top: -2px; }\n  .search-page .search-bar .search-desc {\n    margin: 0;\n    color: #a0a9b4;\n    font-size: 13px; }\n\n.search-page .search-filter {\n  background-color: #fff;\n  padding: 40px 30px 0 30px;\n  margin-bottom: 30px; }\n  .search-page .search-filter > .search-label {\n    color: #a0a9b4;\n    font-size: 11px;\n    letter-spacing: 1px;\n    font-weight: 700;\n    margin-bottom: 10px;\n    margin-top: 40px; }\n    .search-page .search-filter > .search-label:first-child {\n      margin-top: 0; }\n  .search-page .search-filter input,\n  .search-page .search-filter select {\n    color: #727f89;\n    font-weight: 700;\n    font-size: 14px; }\n  .search-page .search-filter button {\n    margin: 40px 0;\n    padding: 15px 0; }\n  .search-page .search-filter .search-filter-divider {\n    display: block;\n    height: 1px; }\n\n.search-page .search-pagination {\n  text-align: center; }\n  .search-page .search-pagination > .pagination > li > a {\n    margin: 0 3px;\n    border: none;\n    background: #ddd;\n    color: #666; }\n    .search-page .search-pagination > .pagination > li > a:hover {\n      text-decoration: none;\n      color: #fff;\n      background-color: #3598DC; }\n  .search-page .search-pagination > .pagination > .page-active > a {\n    background-color: #3598DC;\n    color: #fff; }\n  .search-page .search-pagination.pagination-rounded > .pagination > li > a {\n    border-radius: 50% !important; }\n\n.search-content-1 .search-container {\n  background-color: #fff; }\n  .search-content-1 .search-container > ul {\n    padding: 0 20px 20px 20px;\n    margin-bottom: 0; }\n    .search-content-1 .search-container > ul .search-item {\n      list-style: none;\n      padding: 20px 0;\n      border-bottom: 1px solid;\n      border-color: #f4f6f8; }\n      .search-content-1 .search-container > ul .search-item > a > img {\n        width: 100px;\n        float: left;\n        margin-right: 20px; }\n      .search-content-1 .search-container > ul .search-item > .search-content {\n        padding-left: 120px; }\n        .search-content-1 .search-container > ul .search-item > .search-content > .search-title {\n          font-size: 20px;\n          margin: 10px 0 20px 0;\n          font-weight: 600; }\n          .search-content-1 .search-container > ul .search-item > .search-content > .search-title > a {\n            color: #4e5a64; }\n            .search-content-1 .search-container > ul .search-item > .search-content > .search-title > a:hover {\n              text-decoration: none;\n              color: #49a7fa; }\n        .search-content-1 .search-container > ul .search-item > .search-content > .search-desc {\n          color: #a0a9b4;\n          font-size: 13px;\n          margin: 0; }\n      .search-content-1 .search-container > ul .search-item:last-child {\n        border: none; }\n\n.search-content-2 .search-container {\n  background-color: #fff; }\n  .search-content-2 .search-container > ul {\n    padding: 20px;\n    margin-bottom: 0; }\n    .search-content-2 .search-container > ul > .search-item-header {\n      list-style: none;\n      padding: 0 0 5px 0;\n      border-bottom: 1px solid;\n      border-color: #f4f6f8; }\n      .search-content-2 .search-container > ul > .search-item-header h3 {\n        font-size: 17px;\n        color: #a0a9b4;\n        margin: 5px 0 0 0; }\n    .search-content-2 .search-container > ul .search-item {\n      list-style: none;\n      padding: 20px 0;\n      border-bottom: 1px solid;\n      border-color: #f4f6f8; }\n      .search-content-2 .search-container > ul .search-item > .search-content p {\n        margin: 0; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-title {\n        font-size: 19px;\n        margin: 0 0 20px 0;\n        font-weight: 600; }\n        .search-content-2 .search-container > ul .search-item > .search-content .search-title > a {\n          color: #4e5a64; }\n          .search-content-2 .search-container > ul .search-item > .search-content .search-title > a:hover {\n            text-decoration: none;\n            color: #49a7fa; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-desc {\n        color: #a0a9b4;\n        font-size: 13px; }\n        .search-content-2 .search-container > ul .search-item > .search-content .search-desc > a {\n          color: #49a7fa; }\n          .search-content-2 .search-container > ul .search-item > .search-content .search-desc > a:hover {\n            text-decoration: none;\n            color: #326b9e; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-number,\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-label {\n        text-align: center; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-number {\n        font-size: 21px;\n        color: #4e5a64;\n        margin-bottom: 15px; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-label {\n        font-size: 13px;\n        color: #8b96a4; }\n      .search-content-2 .search-container > ul .search-item:last-child {\n        border: none; }\n\n.search-content-3 .tile-container {\n  margin-bottom: 30px; }\n  .search-content-3 .tile-container > .tile-thumbnail {\n    height: 200px;\n    overflow: hidden;\n    position: relative; }\n    .search-content-3 .tile-container > .tile-thumbnail img {\n      width: 100%;\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      margin: auto; }\n  .search-content-3 .tile-container > .tile-title {\n    background-color: #fff;\n    padding: 30px 20px; }\n    .search-content-3 .tile-container > .tile-title > h3 {\n      font-size: 19px;\n      font-weight: 600;\n      margin: 0;\n      display: inline-block; }\n      .search-content-3 .tile-container > .tile-title > h3 > a {\n        color: #4e5a64; }\n        .search-content-3 .tile-container > .tile-title > h3 > a:hover {\n          text-decoration: none;\n          color: #49a7fa; }\n    .search-content-3 .tile-container > .tile-title i {\n      float: right;\n      font-size: 24px;\n      margin: 0 5px; }\n    .search-content-3 .tile-container > .tile-title > .tile-desc {\n      font-size: 14px; }\n      .search-content-3 .tile-container > .tile-title > .tile-desc > p {\n        margin: 20px 0 0 0; }\n        .search-content-3 .tile-container > .tile-title > .tile-desc > p > a:hover {\n          text-decoration: none; }\n\n.search-content-4 .search-bar .extra-buttons button {\n  margin-right: 20px; }\n  .search-content-4 .search-bar .extra-buttons button:last-child {\n    margin-right: 0;\n    width: 170px; }\n\n.search-content-4 .search-table th {\n  border: none; }\n  .search-content-4 .search-table th > a {\n    color: #fff; }\n    .search-content-4 .search-table th > a:hover {\n      text-decoration: none;\n      color: #eee; }\n\n.search-content-4 .search-table th, .search-content-4 .search-table td {\n  padding: 20px 30px;\n  vertical-align: middle; }\n\n.search-content-4 .search-table td {\n  border-color: #fff; }\n\n.search-content-4 .search-table .table-status {\n  text-align: center; }\n  .search-content-4 .search-table .table-status i {\n    font-size: 26px;\n    padding-top: 10px; }\n\n.search-content-4 .search-table .table-date {\n  font-weight: 600;\n  font-size: 14px;\n  width: 180px; }\n  .search-content-4 .search-table .table-date a {\n    color: #49a7fa; }\n    .search-content-4 .search-table .table-date a:hover {\n      text-decoration: none;\n      color: #326b9e; }\n\n.search-content-4 .search-table .table-title {\n  width: 390px; }\n  .search-content-4 .search-table .table-title > h3 {\n    margin: 0;\n    color: #4e5a64;\n    font-size: 19px;\n    font-weight: 600; }\n    .search-content-4 .search-table .table-title > h3 > a {\n      color: #4e5a64; }\n      .search-content-4 .search-table .table-title > h3 > a:hover {\n        text-decoration: none;\n        color: #49a7fa; }\n  .search-content-4 .search-table .table-title > p {\n    margin-bottom: 0;\n    margin-top: 10px; }\n    .search-content-4 .search-table .table-title > p > a {\n      color: #49a7fa; }\n      .search-content-4 .search-table .table-title > p > a:hover {\n        text-decoration: none;\n        color: #326b9e; }\n\n.search-content-4 .search-table .table-desc {\n  font-size: 14px;\n  color: #8b96a4; }\n\n.search-content-4 .search-table .table-download {\n  text-align: center; }\n  .search-content-4 .search-table .table-download i {\n    font-size: 30px;\n    padding-top: 10px; }\n\n@media (max-width: 1024px) {\n  .search-content-4 .search-bar .extra-buttons {\n    margin-top: 30px; }\n  .search-content-4 .search-table th, .search-content-4 .search-table td {\n    vertical-align: top; }\n  .search-content-4 .search-table .table-date {\n    width: auto; }\n  .search-content-4 .search-table .table-title {\n    width: auto; } }\n\n@media (max-width: 991px) {\n  .search-bar .search-desc {\n    margin-top: 20px !important; }\n  .search-pagination {\n    margin-bottom: 40px; }\n  .search-content-2 .search-container .search-item > .search-content.text-left {\n    text-align: left; }\n  .search-content-2 .search-container .search-item > .search-content .search-desc {\n    margin-bottom: 40px; } }\n\n@media (max-width: 767px) {\n  .search-content-2 .search-container .search-item > .search-content {\n    text-align: center; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/tasks.css",
    "content": "/* Cubic Bezier Transition */\n/***\nTasks Widget\n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 0;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 10px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/test.css",
    "content": "/* Cubic Bezier Transition */\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before,\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #a6a6a6; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #A6A8A8; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 120px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-wiget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  border-radius: 4px !important;\n  position: relative; }\n  .mt-wiget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-wiget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-wiget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-wiget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-wiget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-wiget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px; }\n  .mt-wiget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #D1D4D6;\n    font-size: 12px; }\n  .mt-wiget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-wiget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-wiget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 10px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          color: #79dad5;\n          font-size: 16px; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/css/timeline-old.css",
    "content": "/*--------------------------------------------------\n    [TRANSITION]\n----------------------------------------------------*/\n/* Cubic Bezier Transition */\n/***\nTimeline UI Base\n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  position: relative;\n}\n\n/* The line */\n.timeline:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  width: 10px;\n  background: #ccc;\n  left: 20%;\n  margin-left: -10px;\n}\n\n.timeline > li {\n  position: relative;\n}\n\n/*Remove timeline line for last entry*/\n.timeline > li.timeline-noline:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  width: 10px;\n  background: #fff;\n  left: 20%;\n  margin-left: -10px;\n}\n\n/* The date/time */\n.timeline > li .timeline-time {\n  display: block;\n  width: 15%;\n  text-align: right;\n  position: absolute;\n}\n\n.timeline > li .timeline-time span {\n  display: block;\n  text-align: right;\n}\n\n.timeline > li .timeline-time span.date {\n  font-size: 12px;\n  color: #aaa;\n  display: block;\n  font-weight: 300;\n}\n\n.timeline > li .timeline-time span.time {\n  font-weight: 300;\n  font-size: 38px;\n  line-height: 38px;\n}\n\n/* Right content */\n.timeline > li .timeline-body {\n  margin: 0 0 15px 25%;\n  color: #fff;\n  padding: 10px;\n  font-weight: 300;\n  position: relative;\n  border-radius: 5px;\n}\n\n.timeline > li .timeline-body h2 {\n  margin-top: 0px;\n  padding: 0 0 5px 0;\n  border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n  font-size: 24px;\n}\n\n.timeline > li .timeline-content {\n  font-size: 14px;\n}\n\n.ie8 .timeline > li .timeline-body h2 {\n  border-bottom: 1px solid #eee;\n}\n\n.timeline > li .timeline-body img.timeline-img {\n  width: 75px;\n  height: 75px;\n  margin: 5px 10px 0 0px;\n}\n\n.timeline > li .timeline-body img.pull-right {\n  margin-left: 10px;\n}\n\n.timeline > li .timeline-body a.nav-link {\n  display: inline-block;\n  margin-top: 10px;\n  color: #fff;\n  font-size: 14px;\n  padding: 0px;\n  text-align: left;\n  text-decoration: none;\n}\n\n.timeline > li .timeline-body a.nav-link:hover {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.timeline > li .timeline-body .btn {\n  margin-top: 10px;\n}\n\n/* The triangle */\n.timeline > li .timeline-body:after {\n  right: 100%;\n  border: solid transparent;\n  content: \" \";\n  height: 0;\n  width: 0;\n  position: absolute;\n  pointer-events: none;\n  border-right-color: #3594cb;\n  border-width: 10px;\n  top: 19px;\n}\n\n.timeline > li .timeline-content:after,\n.timeline > li .timeline-content:before {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.timeline > li .timeline-content:after {\n  clear: both;\n}\n\n.timeline > li .timeline-footer:after,\n.timeline > li .timeline-footer:before {\n  content: \"\";\n  display: table;\n  line-height: 0;\n}\n\n.timeline > li .timeline-footer:after {\n  clear: both;\n}\n\n/* The icons */\n.timeline > li .timeline-icon {\n  width: 40px;\n  height: 40px;\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: 1.4em;\n  line-height: 40px;\n  -webkit-font-smoothing: antialiased;\n  position: absolute;\n  color: #fff;\n  background: #aaa;\n  border-radius: 50%;\n  box-shadow: 0 0 0 8px #ccc;\n  text-align: center;\n  left: 20%;\n  top: 0;\n  margin: 5px 0 0 -25px;\n  padding-bottom: 3px;\n  padding-right: 1px;\n  padding-left: 2px;\n  -webkit-border-radius: 30px !important;\n  -moz-border-radius: 30px !important;\n  border-radius: 30px !important;\n}\n\n.timeline > li .timeline-icon > i {\n  font-size: 18px;\n}\n\n/* Red */\n.timeline li.timeline-red .timeline-body:after {\n  border-right-color: #e02222;\n}\n\n.timeline li.timeline-red .timeline-body {\n  background: #e02222;\n}\n\n.timeline li.timeline-red .timeline-time span.time {\n  color: #e02222;\n}\n\n/* Yellow */\n.timeline li.timeline-yellow .timeline-body:after {\n  border-right-color: #ffb848;\n}\n\n.timeline li.timeline-yellow .timeline-body {\n  background: #ffb848;\n}\n\n.timeline li.timeline-yellow .timeline-time span.time {\n  color: #ffb848;\n}\n\n/* Green */\n.timeline li.timeline-green .timeline-body:after {\n  border-right-color: #35aa47;\n}\n\n.timeline li.timeline-green .timeline-body {\n  background: #35aa47;\n}\n\n.timeline li.timeline-green .timeline-time span.time {\n  color: #35aa47;\n}\n\n/* Blue */\n.timeline li.timeline-blue .timeline-body:after {\n  border-right-color: #4b8df8;\n}\n\n.timeline li.timeline-blue .timeline-body {\n  background: #4b8df8;\n}\n\n.timeline li.timeline-blue .timeline-time span.time {\n  color: #4b8df8;\n}\n\n/* Purple */\n.timeline li.timeline-purple .timeline-body:after {\n  border-right-color: #852b99;\n}\n\n.timeline li.timeline-purple .timeline-body {\n  background: #852b99;\n}\n\n.timeline li.timeline-purple .timeline-time span.time {\n  color: #852b99;\n}\n\n/* Grey */\n.timeline li.timeline-grey .timeline-body:after {\n  border-right-color: #555555;\n}\n\n.timeline li.timeline-grey .timeline-body {\n  background: #555555;\n}\n\n.timeline li.timeline-grey .timeline-time span.time {\n  color: #555555;\n}\n\n@media (max-width: 767px) {\n  timeline > li .timeline-time span.time {\n    font-size: 18px;\n  }\n\n  .timeline:before {\n    display: none;\n  }\n\n  .timeline > li .timeline-time {\n    width: 100%;\n    position: relative;\n    padding: 0 0 20px 0;\n  }\n\n  .timeline > li .timeline-time span {\n    text-align: left;\n  }\n\n  .timeline > li .timeline-body {\n    margin: 0 0 30px 0;\n    padding: 1em;\n  }\n\n  .timeline > li .timeline-body:after {\n    right: auto;\n    left: 20px;\n    top: -20px;\n  }\n\n  .timeline > li .timeline-icon {\n    position: relative;\n    float: right;\n    left: auto;\n    margin: -55px 5px 0 0px;\n  }\n\n  /*colors*/\n  .timeline li.timeline-red .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #e02222;\n  }\n\n  .timeline li.timeline-blue .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #4b8df8;\n  }\n\n  .timeline li.timeline-green .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #35aa47;\n  }\n\n  .timeline li.timeline-yellow .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #ffb848;\n  }\n\n  .timeline li.timeline-purple .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #852b99;\n  }\n\n  .timeline li.timeline-grey .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #555555;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/ajaxCallbackError.js",
    "content": "var Error = function () {\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        },\n        \n    \t// 显示或者记录错误\n\t    displayError: function(response, ajaxOptions, thrownError) {\n\t    \tif (response.status == 404) {// 页面没有找到\n\t    \t\tSweetAlert.error(\"404: 找不到页面...\");\n            } else if (response.status == 401) {// session过期\n            \tSweetAlert.errorSessionExpire();\n            } else if (response.status == 507) {// 用户访问次数太频繁 \n            \tSweetAlert.error(\"您的访问次数太频繁, 请过一会再试...\");\n            } else {//其他错误\n            \tSweetAlert.error(\"500: 服务端发生错误...\"); \n            }\n            console.log(thrownError);\n\t    }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tError.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/bgmList.js",
    "content": "var deleteBgm = function(bgmId) {\n\t\n\tvar flag = window.confirm(\"是否确认删除？？？\");\n\tif (!flag) {\n\t\treturn;\n\t}\n\t\n\t$.ajax({\n\t\turl: $(\"#hdnContextPath\").val() + '/video/delBgm.action?bgmId=' + bgmId,\n\t\ttype: \"POST\",\n\t\tsuccess: function(data) {\n\t\t\tif (data.status == 200 && data.msg == 'OK') {\n\t\t\t\talert('删除成功~~');\n\t\t\t\tvar jqGrid = $(\"#bgmList\");  \n\t\t\t\tjqGrid.jqGrid().trigger(\"reloadGrid\");\n\t\t\t}\n\t\t}\n\t})\n}\n\nvar BgmList = function() {\n\n\t// 构建bgm列表对象\n    var handleBgmList = function() {\n    \t\n    \t// 上下文对象路径\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\tvar bgmServer = $(\"#bgmServer\").val();\n\t\t\n\t\t\n\t\tvar jqGrid = $(\"#bgmList\");  \n        jqGrid.jqGrid({  \n            caption: \"所有bgm列表\",  \n            url: hdnContextPath + \"/video/queryBgmList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '歌曲名称','作者', '保存路径', '操作'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 30 },  \n                { name: 'name', index: 'name', width: 30 },\n                { name: 'author', index: 'author', width: 20 },\n                { name: 'path', index: 'path', width: 50, \n                \tformatter: function(cellvalue, option, rowObject){\n                \t\t\n                \t\tvar src = bgmServer + cellvalue;\n                \t\tvar html = \"<a href='\" + src + \"' target='_blank'>点我播放</a>\"\n                \t\t\n                \t\treturn html;\n                \t}\n                },\n                { name: '', index: '', width: 50, \n                \tformatter: function(cellvalue, option, rowObject){\n                \t\t\n                \t\tvar html = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=deleteBgm(\"' + rowObject.id + '\") style=\"padding: 1px 3px 1px 3px;\">删除</button>';\n                \t\t\n                \t\treturn html;\n                \t}\n                }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 400,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#bgmListPager\",\t\t// 分页控件的id  \n            subGrid: false\t\t\t\t// 是否启用子表格\n        }).navGrid('#bgmListPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n        \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.bgmList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    \t\n    }\n    \n    return {\n        init: function() {\n        \thandleBgmList();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tBgmList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/commonJSFunction.js",
    "content": "var Common = function () {\n\t\n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        },\n        \n        strIsNotEmpty: function(str) {\n        \tif (str != null && str != undefined && str != '') { \n        \t\treturn true;\n        \t}\n        \treturn false;\n        },\n        \n        // 时间戳转换成指定日期格式\n        formatTime: function(time, format) {\n\t    \tvar t = new Date(time);\n    \t    var tf = function(i){return (i < 10 ? '0' : '') + i};\n    \t    return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){\n    \t        switch(a){\n    \t            case 'yyyy':\n    \t                return tf(t.getFullYear());\n    \t                break;\n    \t            case 'MM':\n    \t                return tf(t.getMonth() + 1);\n    \t                break;\n    \t            case 'mm':\n    \t                return tf(t.getMinutes());\n    \t                break;\n    \t            case 'dd':\n    \t                return tf(t.getDate());\n    \t                break;\n    \t            case 'HH':\n    \t                return tf(t.getHours());\n    \t                break;\n    \t            case 'ss':\n    \t                return tf(t.getSeconds());\n    \t                break;\n    \t        }\n    \t    })\n\t    }    \n\t    \n\t    \n    };\n\n}();\n\njQuery(document).ready(function() {\n\tCommon.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/dataDict.js",
    "content": "var reloadDataDictGrid = function() {\n\tvar jqGrid = $(\"#jqGridDataDictList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/dataDict/getDataDictList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\nvar DataDict = function () {\n\n    // 用户信息\n\tvar handleDataDict = function() {\n\t\t\n        $('#dataDictForm').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            rules: {\n            \ttypeName: {\n                    required: true\n                },\n                typeCode: {\n                    required: true\n                },\n                ddkey: {\n                    required: true\n                },\n                ddvalue: {\n                    required: true\n                },\n                isShow: {\n                \trequired: true\n                }\n            },\n\n            messages: {\n                typeName: {\n                    required: \"字典名称不能为空.\"\n                },\n                typeCode: {\n                    required: \"字典码不能为空.\"\n                },\n                ddkey: {\n                    required: \"key不能为空.\"\n                },\n                ddvalue: {\n                    required: \"value不能为空.\"\n                },\n                isShow: {\n                \trequired: \"是否显示不能为空.\"\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit   \n                $('.alert-danger', $('#dataDictForm')).show();\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tApp.blockUI();\n            \t\n            \tvar dataDictId = $(\"#dataDictId\").val();\n            \n            \tvar dataDictForm = $('#dataDictForm');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \tdataDictForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/dataDict/saveOrUpdate.action', // 需要提交的 url\n                    data: dataDictForm.serialize(),\n                    success: function(data) {\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \tSweetAlert.success(\"保存成功！\");\n                        \tApp.unblockUI();\n                        \t\n                        \t// 修改操作需要刷新grid以及关闭窗口\n                        \tif (dataDictId != \"\" && dataDictId != null && dataDictId != undefined) {\n                        \t\treloadDataDictGrid();\n                        \t\t$(\"#ajax-modifyDataDict-modal\").modal('hide');\n                        \t}\n                        } else {\n                        \tSweetAlert.error(data.msg);\n                        \tApp.unblockUI();\n                        }\n                    },\n\t                error: function (response, ajaxOptions, thrownError) {\n\t                \tError.displayError(response, ajaxOptions, thrownError); \n\t                \tApp.unblockUI();\n\t                }\n                });\n            \t\n            }\n        });\n\n        $('#dataDictForm input').keypress(function(e) {\n            if (e.which == 13) {\n                if ($('#dataDictForm').validate().form()) {\n                    $('#dataDictForm').submit(); //form validation success, call ajax form submit\n                }\n                return false;\n            }\n        });\n        \n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleDataDict();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tDataDict.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/dataDictList.js",
    "content": "// 删除数据字典\nvar deleteDataDict = function(dataDictId) {\n\t\n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\n\tswal({\n\t\t  title: \"提醒\",\n\t\t  text: \"确认删除?\",\n\t\t  type: \"warning\",\n\t\t  confirmButtonText: \"确认!\",\n\t\t  confirmButtonClass: \"btn-warning\",\n\t\t  showCancelButton: true,\n\t\t  cancelButtonText: \"噢!等等...\",\n\t\t  confirmButtonColor: \"#DD6B55\",  \n\t\t  closeOnConfirm: false\n\t}, function(isConfirm) {\n\t\tif (isConfirm) {\n\t\t\tApp.blockUI();\n\t\t\t\n\t\t\t$.ajax({\n\t\t    \turl: $(\"#hdnContextPath\").val() + \"/dataDict/delete.action\",\n\t\t    \ttype: \"POST\",\n\t\t    \tasync: false,\n\t\t    \tdata: {\"ddId\": dataDictId},\n\t\t    \tsuccess: function(data) {\n\t\t            if(data.status == 200 && data.msg == \"OK\") {\n\t\t            \tApp.unblockUI();\n\t\t            \tSweetAlert.success(\"删除成功！\");\n\t\t            \t\n\t\t            \t// 刷新jqgrid\n\t\t            \treloadDataDictGrid();\n\t\t            } else {\n\t\t            \tApp.unblockUI();\n\t\t            \tconsole.log(JSON.stringify(data));\n\t\t            }\n\t\t    \t},\n\t\t        error: function (response, ajaxOptions, thrownError) {\n\t\t        \tApp.unblockUI();\n\t\t        \tError.displayError(response, ajaxOptions, thrownError);                \n\t\t        }\n\t\t    });\n\t\t\t\n\t\t}\n\t});\n\t\n}\n\n// 重新刷新grid\nvar reloadDataDictGrid = function() {\n\tvar jqGrid = $(\"#jqGridDataDictList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/dataDict/getDataDictList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\n// 重新渲染modal\nfunction renderModal() {\n\t// 重新渲染ajax modal\n\tCommon.openAjaxModal('a[name=\"ajaxModifyDataDictLink\"]', '#ajax-modifyDataDict-modal');\n} \n\n// 数据字典对象\nvar DataDictList = function () {\n\t\n    // 数据字典列表\n\tvar handleDataDictList = function() {\n    \t\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\t\n\t\tvar jqGrid = $(\"#jqGridDataDictList\");  \n        jqGrid.jqGrid({  \n            caption: \"数据字典列表\",  \n            url: hdnContextPath + \"/dataDict/getDataDictList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '字典名称', '字典码', 'key', 'value', '是否显示', '操作'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 60, sortable: false, hidden: true },  \n                { name: 'typeName', index: 'typeName', width: 30, sortable: false },\n                { name: 'typeCode', index: 'typeCode', width: 30, sortable: false },\n                { name: 'ddkey', index: 'ddkey', width: 30, sortable: false },\n                { name: 'ddvalue', index: 'ddvalue', width: 30, sortable: false },\n                { name: 'isShow', index: 'isShow', width: 30, sortable: false },\n                {\n                \twidth:50, sortable: false,\n\t\t\t    \tformatter:function(cellvalue, options, rowObject) {\n\t\t\t    \t\t\n\t\t\t    \tvar ddId = rowObject.id;\n\t\t\t    \t\n\t\t\t    \tvar btnModify = '<a class=\"btn btn-outline blue-chambray\" id=\"ajaxModifyDataDictLink\" name=\"ajaxModifyDataDictLink\" data-url=\"' + hdnContextPath + '/dataDict/modifyDataDict.action?ddId=' + ddId + '\" data-toggle=\"modal\" style=\"padding: 1px 3px 1px 3px;\">编辑</a>';\n\t\t\t    \t\n\t\t\t    \tvar btnDelete = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=deleteDataDict(\"' + ddId + '\") style=\"padding: 1px 3px 1px 3px;\">删除</button>';\n\t\t\t    \t\n\t\t\t    \treturn btnModify + btnDelete}  // success\n                }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n//            multiselect: true,  \t\t// 定义是否可以多选\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n//            width: 900,\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 500,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#jqGridDataDictPager\",\t\t// 分页控件的id  \n            subGrid: false,\t\t\t\t// 是否启用子表格\n            gridComplete: renderModal\n        }).navGrid('#jqGridDataDictPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.jqGridDataDictList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        \thandleDataDictList();\n        \t\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {\n\tDataDictList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/demoItem.js",
    "content": "var reloadItemGrid = function() {\n\tvar jqGrid = $(\"#jqGridDemoItemList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/demoItem/getItemInfoList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\n// 商品对象信息\nvar DemoItemInfo = function () {\n\n    // 商品对象的操作函数\n\tvar handleDemoItemInfo = function() {\n\t\t\n        $('#itemForm').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            rules: {\n            \tname: {\n                    required: true\n                },\n                amount: {\n                    required: true,\n                    digits: true\n                }\n            },\n\n            messages: {\n            \tname: {\n                    required: \"商品名称不能为空.\"\n                },\n                amount: {\n                    required: \"金额不能为空.\",\n                    digits: \"请输入一个数字作为价格.\"\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit   \n                $('.alert-danger', $('#itemForm')).show();\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tApp.blockUI();\n            \t\n            \tvar itemForm = $('#itemForm');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \titemForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/demoItem/saveOrUpdate.action', // 需要提交的 url\n                    data: itemForm.serialize(),\n                    success: function(data) {\n                    \tdebugger;\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \tSweetAlert.success(\"保存成功！\");\n                        \tApp.unblockUI();\n                        \t\n                        \t// 修改操作需要刷新grid以及关闭窗口\n                        \tvar itemId = $(\"#itemId\").val();\n                        \tif (itemId != \"\" && itemId != null && itemId != undefined) {\n                        \t\treloadItemGrid();\n                        \t\t$(\"#ajax-modifyItem-modal\").modal('hide');\n                        \t}\n                        } else {\n                        \tSweetAlert.error(data.msg);\n                        \tApp.unblockUI();\n                        }\n                    },\n\t                error: function (response, ajaxOptions, thrownError) {\n\t                \tError.displayError(response, ajaxOptions, thrownError); \n\t                \tApp.unblockUI();\n\t                }\n                });\n            \t\n            }\n        });\n\n        $('#itemForm input').keypress(function(e) {\n            if (e.which == 13) {\n                if ($('#itemForm').validate().form()) {\n                    $('#itemForm').submit(); //form validation success, call ajax form submit\n                }\n                return false;\n            }\n        });\n        \n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleDemoItemInfo();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tDemoItemInfo.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/demoItemList.js",
    "content": "\n// 重新渲染modal\nfunction renderModal() {\n\t// 重新渲染ajax modal\n\tCommon.openAjaxModal('a[name=\"ajaxDetailUserInfoLink\"]', '#ajax-detailItemInfo-modal');\n\tCommon.openAjaxModal('a[name=\"ajaxModifyItemLink\"]', '#ajax-modifyItem-modal');\n} \n\nvar reloadItemGrid = function() {\n\tvar jqGrid = $(\"#jqGridDemoItemList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/demoItem/getItemInfoList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\n// 删除商品\nvar deleteItem = function(itemId) {\n\t\n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\n\tswal({\n\t\t  title: \"提醒\",\n\t\t  text: \"确认删除?\",\n\t\t  type: \"warning\",\n\t\t  confirmButtonText: \"确认!\",\n\t\t  confirmButtonClass: \"btn-warning\",\n\t\t  showCancelButton: true,\n\t\t  cancelButtonText: \"噢!等等...\",\n\t\t  confirmButtonColor: \"#DD6B55\",  \n\t\t  closeOnConfirm: false\n\t}, function(isConfirm) {\n\t\tif (isConfirm) {\n\t\t\tApp.blockUI();\n\t\t\t\n\t\t\t$.ajax({\n\t\t    \turl: $(\"#hdnContextPath\").val() + \"/demoItem/deleteItem.action\",\n\t\t    \ttype: \"POST\",\n\t\t    \tasync: false,\n\t\t    \tdata: {\"itemId\": itemId},\n\t\t    \tsuccess: function(data) {\n\t\t            if(data.status == 200 && data.msg == \"OK\") {\n\t\t            \tApp.unblockUI();\n\t\t            \tSweetAlert.success(\"删除成功！\");\n\t\t            \t\n\t\t            \t// 刷新jqgrid\n\t\t            \treloadItemGrid();\n\t\t            } else {\n\t\t            \tApp.unblockUI();\n\t\t            \tconsole.log(JSON.stringify(data));\n\t\t            }\n\t\t    \t},\n\t\t        error: function (response, ajaxOptions, thrownError) {\n\t\t        \tApp.unblockUI();\n\t\t        \tError.displayError(response, ajaxOptions, thrownError);                \n\t\t        }\n\t\t    });\n\t\t\t\n\t\t}\n\t});\n\t\n}\n\n// 商品对象\nvar DemoItemList = function () {\n\t\n    // 商品列表\n\tvar handleDemoItemList = function() {\n    \t\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\t\n\t\tvar jqGrid = $(\"#jqGridDemoItemList\");  \n        jqGrid.jqGrid({  \n            caption: \"商品信息列表\",  \n            url: hdnContextPath + \"/demoItem/getItemInfoList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '商品名', '金额', '操作'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 60, sortable: false, hidden: true },  \n                { name: 'name', index: 'name', width: 30, sortable: false },\n                { name: 'amount', index: 'amount', width: 30, sortable: false,\n                \tformatter: function (cellvalue, options, rowObject) {\n                \t\t\n                \t\tvar amount = cellvalue / 100;\n                \t\t\n                \t\treturn \"￥\" + amount + \" 元\";\n                \t}\n                },\n                { width: 30, sortable: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n\t\t\t    \t\t\n    \t\t\t    \tvar itemId = rowObject.id;\n    \t\t\t    \t\n    \t\t\t    \tvar btnDetail = '<a class=\"btn btn-outline blue-chambray\" id=\"ajaxDetailItemInfoLink\" name=\"ajaxDetailUserInfoLink\" data-url=\"' + hdnContextPath + '/demoItem/showItemInfoPage.action?itemId=' + itemId + '\" data-toggle=\"modal\" style=\"padding: 1px 3px 1px 3px;\">详情</a>';\n    \t\t\t    \t\n    \t\t\t    \tvar btnModify = '<a class=\"btn btn-outline blue-chambray\" id=\"ajaxModifyItemLink\" name=\"ajaxModifyItemLink\" data-url=\"' + hdnContextPath + '/demoItem/showModifyItemPage.action?itemId=' + itemId + '\" data-toggle=\"modal\" style=\"padding: 1px 3px 1px 3px;\">编辑</a>';\n    \t\t\t    \t\n    \t\t\t    \tvar btnDelete = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=deleteItem(\"' + itemId + '\") style=\"padding: 1px 3px 1px 3px;\">删除</button>';\n    \t\t\t    \t\n    \t\t\t    return btnDetail + btnModify + btnDelete; }  // success\n                }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n//            multiselect: true,  \t\t// 定义是否可以多选\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n//            width: 900,\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: \"auto\",\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#jqGridDemoItemPager\",\t\t// 分页控件的id  \n            subGrid: false,\t\t\t\t// 是否启用子表格\n            gridComplete: renderModal\t// grid加载完毕后重新渲染model\n        }).navGrid('#jqGridDemoItemPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.jqGridDemoItemList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        \thandleDemoItemList();\n        \t\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {\n\tDemoItemList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/login.js",
    "content": "var Login = function() {\n\n\t// 构建登录对象\n    var handleLogin = function() {\n\n    \t// jquery-form-validate 前端的验证框架\n        $('.login-form').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            rules: {\n                username: {\n                    required: true\n                },\n                password: {\n                    required: true\n                }\n            },\n\n            messages: {\n                username: {\n                    required: \"用户名不能为空.\"\n                },\n                password: {\n                    required: \"密码不能为空.\"\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tvar loginForm = $('.login-form');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \tloginForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/users/login.action', // 需要提交的 url\n                    data: loginForm.serialize(),\n                    success: function(data) {\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \twindow.location.href = hdnContextPath + \"/center.action\";\n                        } else {\n//                        \tSweetAlert.error(data.msg);\n                        \talert(data.msg);\n                        }\n                    }\n                });\n            \t\n            }\n        });\n\n    }\n    \n    return {\n        init: function() {\n            handleLogin();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Login.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/menu.js",
    "content": "var Menu = function () {\n\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        },\n    \n    \t// 动态加载页面\n\t    ajaxLoadPage: function(url) {\n\t    \t$(\".page-content\").load(url);\n\t    }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tMenu.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/reportList.js",
    "content": "var forbidVideo = function(videoId) {\n\t\n\tvar flag = window.confirm(\"是否禁播\");\n\tif (!flag) {\n\t\treturn;\n\t}\n\t\n\t$.ajax({\n    \turl: $(\"#hdnContextPath\").val() + \"/video/forbidVideo.action?videoId=\" + videoId,\n    \ttype: \"POST\",\n    \tasync: false,\n    \tsuccess: function(data) {\n            if(data.status == 200 && data.msg == \"OK\") {\n            \talert(\"操作成功\");\n            \tvar jqGrid = $(\"#usersReportsList\");  \n\t\t\t\tjqGrid.jqGrid().trigger(\"reloadGrid\");\n            } else {\n            \tconsole.log(JSON.stringify(data));\n            }\n    \t}\n\t})\n}\n\n// 定义举报列表对象\nvar UsersReportsList = function () {\n\t\n    // 举报列表\n\tvar handleUsersReportsList = function() {\n    \t\n\t\t// 上下文对象路径\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\tvar apiServer = $(\"#apiServer\").val();\n\t\tvar apiSourceServer = $(\"#apiSourceServer\").val();\n\t\tdebugger;\n\t\tvar jqGrid = $(\"#usersReportsList\");  \n        jqGrid.jqGrid({  \n            caption: \"被举报的视频列表\",  \n            url: hdnContextPath + \"/video/reportList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '举报类型', '举报内容', '被举报人', '被举报视频id', '被举报视频', '视频状态', '提交用户', '举报日期', \"操作\"],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 30, sortable: false, hidden: false },  \n                { name: 'title', index: 'title', width: 30, sortable: false },\n                { name: 'content', index: 'content', width: 60, sortable: false },\n                { name: 'dealUsername', index: 'dealUsername', width: 20, sortable: false },\n                { name: 'dealVideoId', index: 'dealVideoId', width: 30, sortable: false },\n                { name: 'videoPath', index: 'videoPath', width: 30, sortable: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar src = apiSourceServer + cellvalue;\n                \t\tvar display = \"<a href='\" + src + \"' target='_blank'>点我播放</a>\"\n\t\t\t    \t\treturn display;\n\t\t\t    \t}\n                },\n                { name: 'status', index: 'status', width: 40, sortable: false, hidden: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n\t\t\t    \t\treturn cellvalue==1 ? '正常' : '禁播';\n\t\t\t    \t}\n\t\t\t    },\n                { name: 'submitUsername', index: 'submitUsername', width: 20, sortable: false },\n                { name: 'createDate', index: 'createDate', width: 40, sortable: false, hidden: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar createTime = Common.formatTime(cellvalue,'yyyy-MM-dd HH:mm:ss');\n\t\t\t    \t\treturn createTime;\n\t\t\t    \t}\n\t\t\t    },\n                { name: '', index: '', width: 20, sortable: false, hidden: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar button = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=forbidVideo(\"' + rowObject.dealVideoId + '\") style=\"padding: 1px 3px 1px 3px;\">禁止播放</button>';\n\t\t\t    \t\treturn button;\n\t\t\t    \t}\n\t\t\t    }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 500,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#usersReportsListPager\",\t\t// 分页控件的id  \n            subGrid: false\t\t\t\t// 是否启用子表格\n        }).navGrid('#usersReportsListPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.usersReportsList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {debugger;\n        \thandleUsersReportsList();\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {debugger;\n\tUsersReportsList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/userInfo.js",
    "content": "var reloadUserGrid = function() {\n\tvar jqGrid = $(\"#jqGridUserInfoList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/user/getUserInfoList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\nvar UserInfo = function () {\n\n    // 用户信息\n\tvar handleUserInfo = function() {\n\t\t\n\t\tjQuery.validator.addMethod(\"nicknameIsExist\", function(value, element) {\n\t\t\t\n\t\t\tvar nickname = value;\n\t\t\tvar userId = $(\"#userId\").val();\n\t\t\t\n\t    \tvar flag = true;\n\t        $.ajax({\n\t        \turl: $(\"#hdnContextPath\").val() + \"/user/nicknameIsExist.action\",\n\t        \ttype: \"POST\",\n\t        \tasync: false,\n\t        \tdata: {\"nickname\": nickname, \"userId\": userId},\n\t        \tsuccess: function(data) {\n\t                if(data.status == 200 && data.msg == \"OK\") {\n\t                \tif (data.data) {\n\t                \t\tflag = false;\n\t                \t} else {\n\t                \t\tflag = true;\n\t                \t}\n\t                } else {\n\t                \tconsole.log(JSON.stringify(data));\n\t                }\n\t        \t},\n                error: function (response, ajaxOptions, thrownError) {\n                \tError.displayError(response, ajaxOptions, thrownError);                \n                }\n\t        });\n\t    \t\n\t    \treturn flag;\n\t\t}, \"该昵称已经存在.\");\n\t\t\n\t\tjQuery.validator.addMethod(\"usernameIsExist\", function(value, element) {\n    \t\t\n    \t\tvar username = value;\n    \t\tvar userId = $(\"#userId\").val();\n    \t\t\n        \tvar flag = true;\n            $.ajax({\n            \turl: $(\"#hdnContextPath\").val() + \"/user/usernameIsExist.action\",\n            \ttype: \"POST\",\n            \tasync: false,\n            \tdata: {\"username\": username, \"userId\": userId},\n            \tsuccess: function(data) {\n                    if(data.status == 200 && data.msg == \"OK\") {\n                    \tif (data.data) {\n                    \t\tflag = false;\n                    \t} else {\n                    \t\tflag = true;\n                    \t}\n                    } else {\n                    \tconsole.log(JSON.stringify(data));\n                    }\n            \t},\n                error: function (response, ajaxOptions, thrownError) {\n                \tError.displayError(response, ajaxOptions, thrownError);                \n                }\n            });\n        \t\n        \treturn flag;\n    \t}, \"该用户名已经存在.\");\n    \t\n        $('#userInfoForm').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            rules: {\n            \tusername: {\n                    required: true,\n                    rangelength: [2,8],\n                    usernameIsExist: true\n                },\n                password: {\n                    required: true,\n                    minlength:6\n                    \n                },\n                confirmPassword: {\n                    required: true,\n                    equalTo: \"#password\"\n                },\n                nickname: {\n                    required: true,\n                    rangelength: [2,8],\n                    nicknameIsExist: true\n                },\n                age: {\n                \tdigits: true,\n                \trange: [12,100] \n                }\n            },\n\n            messages: {\n            \tusername: {\n                    required: \"用户名不能为空.\",\n                    rangelength: \"用户名的长度请控制在2-8位.\"\n                },\n                password: {\n                    required: \"密码不能为空.\",\n                    minlength: \"密码长度不能少于6位.\"\n                },\n                confirmPassword: {\n                    required: \"确认密码不能为空.\",\n                    equalTo: \"两次密码输入不一致.\"\n                },\n                nickname: {\n                    required: \"昵称不能为空.\",\n                    rangelength: \"昵称的长度请控制在2-8位.\"\n                },\n                age: {\n                \tdigits: \"年龄必须为整数.\",\n                \trange: \"年龄范围12岁-100岁 (-_-|||)\"\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit   \n                $('.alert-danger', $('#userInfoForm')).show();\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tApp.blockUI();\n            \t\n            \tvar userId = $(\"#userId\").val();\n            \n            \tvar userInfoForm = $('#userInfoForm');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \tuserInfoForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/user/saveOrUpdate.action', // 需要提交的 url\n                    data: userInfoForm.serialize(),\n                    success: function(data) {\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \tSweetAlert.success(\"保存成功！\");\n                        \tApp.unblockUI();\n                        \t\n                        \t// 修改操作需要刷新grid以及关闭窗口\n                        \tif (userId != \"\" && userId != null && userId != undefined) {\n                        \t\treloadUserGrid();\n                        \t\t$(\"#ajax-modifyUserInfo-modal\").modal('hide');\n                        \t}\n                        } else {\n                        \tSweetAlert.error(data.msg);\n                        \tApp.unblockUI();\n                        }\n                    },\n\t                error: function (response, ajaxOptions, thrownError) {\n\t                \tError.displayError(response, ajaxOptions, thrownError); \n\t                \tApp.unblockUI();\n\t                }\n                });\n            \t\n            }\n        });\n\n        $('#userInfoForm input').keypress(function(e) {\n            if (e.which == 13) {\n                if ($('#userInfoForm').validate().form()) {\n                    $('#userInfoForm').submit(); //form validation success, call ajax form submit\n                }\n                return false;\n            }\n        });\n        \n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleUserInfo();\n        \t\n        \t'use strict';\n        \t$(\"#distpicker\").distpicker({\n//        \t\tprovince: \"浙江省\",\n//        \t\tcity: \"杭州市\",\n//        \t\tdistrict: \"西湖区\"\n        \t});\n        \t\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tUserInfo.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/js/usersList.js",
    "content": "// 定义举报列表对象\nvar List = function () {\n\t\n    // 举报列表\n\tvar handleList = function() {\n    \t\n\t\t// 上下文对象路径\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\tvar apiServer = $(\"#apiServer\").val();\n\t\tvar bgmServer = $(\"#bgmServer\").val();\n\t\tvar apiSourceServer = $(\"#apiSourceServer\").val();\n\n\t\tvar jqGrid = $(\"#usersList\");  \n        jqGrid.jqGrid({  \n            caption: \"短视频用户列表\",  \n            url: hdnContextPath + \"/users/list.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '头像', '用户名', '昵称', '粉丝数', '关注数', '获赞数'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 30, sortable: false, hidden: false },  \n                { name: 'faceImage', index: 'username', width: 50, sortable: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar src = apiSourceServer + cellvalue;\n                \t\tvar img = \"<img src='\" + src + \"' width='120'></img>\"\n\t\t\t    \t\treturn img;\n\t\t\t    \t}  \n                },\n                { name: 'username', index: 'password', width: 30, sortable: false },\n                { name: 'nickname', index: 'nickname', width: 30, sortable: false },\n                { name: 'fansCounts', index: 'age', width: 20, sortable: false },\n                { name: 'followCounts', index: 'sexValue', width: 20, sortable: false },\n                { name: 'receiveLikeCounts', index: 'province', width: 20, sortable: false, hidden: false }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 500,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#usersListPager\",\t\t// 分页控件的id  \n            subGrid: false\t\t\t\t// 是否启用子表格\n        }).navGrid('#usersListPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.usersList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n        \n        // 条件查询所有用户列表\n        $(\"#searchUserListButton\").click(function(){\n        \tvar searchUsersListForm = $(\"#searchUserListForm\");\n        \tjqGrid.jqGrid().setGridParam({ \n        \t\tpage: 1,\n                url: hdnContextPath + \"/users/list.action?\" + searchUsersListForm.serialize(),\n            }).trigger(\"reloadGrid\");\n        });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleList();\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {\n\tList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/coming-soon.js",
    "content": "var ComingSoon = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            var austDay = new Date();\n            austDay = new Date(austDay.getFullYear() + 1, 1 - 1, 26);\n            $('#defaultCountdown').countdown({until: austDay});\n            $('#year').text(austDay.getFullYear());\n\n            $.backstretch([\n\t\t            \"../assets/pages/media/bg/1.jpg\",\n\t\t            \"../assets/pages/media/bg/2.jpg\",\n\t\t            \"../assets/pages/media/bg/3.jpg\",\n\t\t    \t\t\"../assets/pages/media/bg/4.jpg\"\n\t\t        ], {\n\t\t        fade: 1000,\n\t\t        duration: 10000\n\t\t   });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComingSoon.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-bootstrap-maxlength.js",
    "content": "var ComponentsBootstrapMaxlength = function () {\n\n    var handleBootstrapMaxlength = function() {\n        $('#maxlength_defaultconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n        })\n    \n        $('#maxlength_thresholdconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n            threshold: 20\n        });\n\n        $('#maxlength_alloptions').maxlength({\n            alwaysShow: true,\n            warningClass: \"label label-success\",\n            limitReachedClass: \"label label-danger\",\n            separator: ' out of ',\n            preText: 'You typed ',\n            postText: ' chars available.',\n            validate: true\n        });\n\n        $('#maxlength_textarea').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true\n        });\n\n        $('#maxlength_placement').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            placement: App.isRTL() ? 'top-right' : 'top-left'\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleBootstrapMaxlength();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapMaxlength.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-bootstrap-multiselect.js",
    "content": "var ComponentsBootstrapMultiselect = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        \t$('.mt-multiselect').each(function(){\n        \t\tvar btn_class = $(this).attr('class');\n        \t\tvar clickable_groups = ($(this).data('clickable-groups')) ? $(this).data('clickable-groups') : false ;\n        \t\tvar collapse_groups = ($(this).data('collapse-groups')) ? $(this).data('collapse-groups') : false ;\n        \t\tvar drop_right = ($(this).data('drop-right')) ? $(this).data('drop-right') : false ;\n        \t\tvar drop_up = ($(this).data('drop-up')) ? $(this).data('drop-up') : false ;\n        \t\tvar select_all = ($(this).data('select-all')) ? $(this).data('select-all') : false ;\n        \t\tvar width = ($(this).data('width')) ? $(this).data('width') : '' ;\n        \t\tvar height = ($(this).data('height')) ? $(this).data('height') : '' ;\n        \t\tvar filter = ($(this).data('filter')) ? $(this).data('filter') : false ;\n\n        \t\t// advanced functions\n        \t\tvar onchange_function = function(option, checked, select) {\n\t                alert('Changed option ' + $(option).val() + '.');\n\t            }\n\t            var dropdownshow_function = function(event) {\n\t                alert('Dropdown shown.');\n\t            }\n\t            var dropdownhide_function = function(event) {\n\t                alert('Dropdown Hidden.');\n\t            }\n\n\t            // init advanced functions\n\t            var onchange = ($(this).data('action-onchange') == true) ? onchange_function : '';\n\t            var dropdownshow = ($(this).data('action-dropdownshow') == true) ? dropdownshow_function : '';\n\t            var dropdownhide = ($(this).data('action-dropdownhide') == true) ? dropdownhide_function : '';\n\n\t            // template functions\n\t            // init variables\n\t            var li_template;\n\t            if ($(this).attr('multiple')){\n\t            \tli_template = '<li class=\"mt-checkbox-list\"><a href=\"javascript:void(0);\"><label class=\"mt-checkbox\"> <span></span></label></a></li>';\n        \t\t} else {\n        \t\t\tli_template = '<li><a href=\"javascript:void(0);\"><label></label></a></li>';\n         \t\t}\n\n\t            // init multiselect\n        \t\t$(this).multiselect({\n        \t\t\tenableClickableOptGroups: clickable_groups,\n        \t\t\tenableCollapsibleOptGroups: collapse_groups,\n        \t\t\tdisableIfEmpty: true,\n        \t\t\tenableFiltering: filter,\n        \t\t\tincludeSelectAllOption: select_all,\n        \t\t\tdropRight: drop_right,\n        \t\t\tbuttonWidth: width,\n        \t\t\tmaxHeight: height,\n        \t\t\tonChange: onchange,\n        \t\t\tonDropdownShow: dropdownshow,\n        \t\t\tonDropdownHide: dropdownhide,\n        \t\t\tbuttonClass: btn_class,\n        \t\t\t//optionClass: function(element) { return \"mt-checkbox\"; },\n        \t\t\t//optionLabel: function(element) { console.log(element); return $(element).html() + '<span></span>'; },\n        \t\t\t/*templates: {\n\t\t                li: li_template,\n\t\t            }*/\n        \t\t});   \n        \t});\n         \t\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapMultiselect.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-bootstrap-select-splitter.js",
    "content": "var ComponentsBootstrapSelectSplitter = function() {\n\n    var selectSplitter = function() {\n        $('#select_selectsplitter1').selectsplitter({\n            selectSize: 4\n        });\n        $('#select_selectsplitter2').selectsplitter({\n            selectSize: 6\n        });\n        $('#select_selectsplitter3').selectsplitter({\n            selectSize: 5\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            selectSplitter();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapSelectSplitter.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-bootstrap-select.js",
    "content": "var ComponentsBootstrapSelect = function () {\n\n    var handleBootstrapSelect = function() {\n        $('.bs-select').selectpicker({\n            iconBase: 'fa',\n            tickIcon: 'fa-check'\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {      \n            handleBootstrapSelect();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n        ComponentsBootstrapSelect.init(); \n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-bootstrap-switch.js",
    "content": "var ComponentsBootstrapSwitch = function () {\n\n    var handleBootstrapSwitch = function() {\n\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioState');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck', false);\n        });\n\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleBootstrapSwitch();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapSwitch.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-bootstrap-tagsinput.js",
    "content": "var ComponentsBootstrapTagsinput = function() {\n\n    var handleDemo1 = function() {\n        var elt = $('#object_tagsinput');\n        \n        elt.tagsinput({\n          itemValue: 'value',\n          itemText: 'text',\n        });\n\n        $('#object_tagsinput_add').on('click', function(){\n            elt.tagsinput('add', { \n                \"value\": $('#object_tagsinput_value').val(), \n                \"text\": $('#object_tagsinput_city').val(), \n                \"continent\": $('#object_tagsinput_continent').val()    \n            });\n        });\n\n        elt.tagsinput('add', { \"value\": 1 , \"text\": \"Amsterdam\"   , \"continent\": \"Europe\"    });\n        elt.tagsinput('add', { \"value\": 4 , \"text\": \"Washington\"  , \"continent\": \"America\"   });\n        elt.tagsinput('add', { \"value\": 7 , \"text\": \"Sydney\"      , \"continent\": \"Australia\" });\n        elt.tagsinput('add', { \"value\": 10, \"text\": \"Beijing\"     , \"continent\": \"Asia\"      });\n        elt.tagsinput('add', { \"value\": 13, \"text\": \"Cairo\"       , \"continent\": \"Africa\"    });\n    }\n\n    var handleDemo2 = function() {\n\n        var elt = $('#state_tagsinput');\n\n        elt.tagsinput({\n            tagClass: function(item) {\n                switch (item.continent) {\n                    case 'Europe':\n                        return 'label label-primary';\n                    case 'America':\n                        return 'label label-danger label-important';\n                    case 'Australia':\n                        return 'label label-success';\n                    case 'Africa':\n                        return 'label label-default';\n                    case 'Asia':\n                        return 'label label-warning';\n                }\n            },\n            itemValue: 'value',\n            itemText: 'text'\n        });\n\n         $('#state_tagsinput_add').on('click', function(){\n            elt.tagsinput('add', { \n                \"value\": $('#state_tagsinput_value').val(), \n                \"text\": $('#state_tagsinput_city').val(), \n                \"continent\": $('#state_tagsinput_continent').val()    \n            });\n        });\n        \n        elt.tagsinput('add', {\n            \"value\": 1,\n            \"text\": \"Amsterdam\",\n            \"continent\": \"Europe\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 4,\n            \"text\": \"Washington\",\n            \"continent\": \"America\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 7,\n            \"text\": \"Sydney\",\n            \"continent\": \"Australia\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 10,\n            \"text\": \"Beijing\",\n            \"continent\": \"Asia\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 13,\n            \"text\": \"Cairo\",\n            \"continent\": \"Africa\"\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleDemo1();\n            handleDemo2();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsBootstrapTagsinput.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-bootstrap-touchspin.js",
    "content": "var ComponentsBootstrapTouchSpin = function() {\n\n    var handleDemo = function() {\n\n        $(\"#touchspin_1\").TouchSpin({\n            min: 0,\n            max: 100,\n            step: 0.1,\n            decimals: 2,\n            boostat: 5,\n            maxboostedstep: 10,\n            postfix: '%'\n        });\n\n        $(\"#touchspin_2\").TouchSpin({\n            min: -1000000000,\n            max: 1000000000,\n            stepinterval: 50,\n            maxboostedstep: 10000000,\n            prefix: '$'\n        });\n\n        $(\"#touchspin_3\").TouchSpin({\n            verticalbuttons: true\n        });\n\n        $(\"#touchspin_4\").TouchSpin({\n            verticalbuttons: true,\n            verticalupclass: 'glyphicon glyphicon-plus',\n            verticaldownclass: 'glyphicon glyphicon-minus'\n        });\n\n        $(\"#touchspin_5\").TouchSpin();\n\n        $(\"#touchspin_6\").TouchSpin({\n            initval: 40\n        });\n\n        $(\"#touchspin_7\").TouchSpin({\n            initval: 40\n        });\n\n        $(\"#touchspin_8\").TouchSpin({\n            postfix: \"a button\",\n            postfix_extraclass: \"btn red\"\n        });\n\n        $(\"#touchspin_9\").TouchSpin({\n            postfix: \"a button\",\n            postfix_extraclass: \"btn green\"\n        });\n\n        $(\"#touchspin_10\").TouchSpin({\n            prefix: \"pre\",\n            postfix: \"post\"\n        });\n\n        $(\"#touchspin_11\").TouchSpin({\n            buttondown_class: \"btn blue\",\n            buttonup_class: \"btn red\"\n        });\n\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleDemo();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsBootstrapTouchSpin.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-clipboard.js",
    "content": "// ClipboardJS\n\nvar ComponentsClipboard = function() {\n\n    return {\n        //main function to initiate the module\n        init: function() {\n        \tvar paste_text;\n\n        \t$('.mt-clipboard').each(function(){\n        \t\tvar clipboard = new Clipboard(this);\t\n\n        \t\tclipboard.on('success', function(e) {\n\t\t\t\t    paste_text = e.text;\n\t\t\t\t    console.log(paste_text);\n\t\t\t\t});\n        \t});\n\n        \t$('.mt-clipboard').click(function(){\n    \t\t\tif($(this).data('clipboard-paste') == true){\n    \t\t\t\tif(paste_text){\n        \t\t\t\tvar paste_target = $(this).data('paste-target');\n        \t\t\t\t$(paste_target).val(paste_text);\n        \t\t\t\t$(paste_target).html(paste_text);\n        \t\t\t} else {\n        \t\t\t\talert('No text was copied or cut.');\n        \t\t\t}\n        \t\t} \n    \t\t});\n        }\n    }\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsClipboard.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-code-editors.js",
    "content": "var ComponentsCodeEditors = function () {\n    \n    var handleDemo1 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_1');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"ambiance\",\n            mode: 'javascript'\n        });\n    }\n\n    var handleDemo2 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_2');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"material\",\n            mode: 'css'\n        });\n    }\n\n    var handleDemo3 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_3');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"neat\",\n            mode: 'javascript',\n            readOnly: true\n        });\n    }\n\n    var handleDemo4 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_4');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"neo\",\n            mode: 'css',\n            readOnly: true\n        });\n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleDemo1();\n            handleDemo2();\n            handleDemo3();\n            handleDemo4();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsCodeEditors.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-color-pickers.js",
    "content": "var ComponentsColorPickers = function() {\n\n    var handleColorPicker = function () {\n        if (!jQuery().colorpicker) {\n            return;\n        }\n        $('.colorpicker-default').colorpicker({\n            format: 'hex'\n        });\n        $('.colorpicker-rgba').colorpicker();\n    }\n\n    var handleMiniColors = function() {\n        $('.demo').each(function() {\n            //\n            // Dear reader, it's actually very easy to initialize MiniColors. For example:\n            //\n            //  $(selector).minicolors();\n            //\n            // The way I've done it below is just for the demo, so don't get confused\n            // by it. Also, data- attributes aren't supported at this time...they're\n            // only used for this demo.\n            //\n            $(this).minicolors({\n                control: $(this).attr('data-control') || 'hue',\n                defaultValue: $(this).attr('data-defaultValue') || '',\n                inline: $(this).attr('data-inline') === 'true',\n                letterCase: $(this).attr('data-letterCase') || 'lowercase',\n                opacity: $(this).attr('data-opacity'),\n                position: $(this).attr('data-position') || 'bottom left',\n                change: function(hex, opacity) {\n                    if (!hex) return;\n                    if (opacity) hex += ', ' + opacity;\n                    if (typeof console === 'object') {\n                        console.log(hex);\n                    }\n                },\n                theme: 'bootstrap'\n            });\n\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleMiniColors();\n            handleColorPicker();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsColorPickers.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-context-menu.js",
    "content": "var ComponentsContextMenu = function () {\n\n    var demo2 = function() {\n        $('#main').contextmenu({\n            target: '#context-menu2',\n            before: function (e) {\n                // This function is optional.\n                // Here we use it to stop the event if the user clicks a span\n                e.preventDefault();\n                if (e.target.tagName == 'SPAN') {\n                    e.preventDefault();\n                    this.closemenu();\n                    return false;\n                }\n                //this.getMenu().find(\"li\").eq(2).find('a').html(\"Dynamically changed!\");\n                return true;\n            }\n        });\n    }\n\n    var demo3 = function() {\n        // Demo 3\n        $('#context2').contextmenu({\n            target: '#context-menu2',\n            onItem: function (context, e) {\n                alert($(e.target).text());\n            }\n        });\n\n        $('#context-menu2').on('show.bs.context', function (e) {\n            console.log('before show event');\n        });\n\n        $('#context-menu2').on('shown.bs.context', function (e) {\n            console.log('after show event');\n        });\n\n        $('#context-menu2').on('hide.bs.context', function (e) {\n            console.log('before hide event');\n        });\n\n        $('#context-menu2').on('hidden.bs.context', function (e) {\n            console.log('after hide event');\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        \n        init: function () {\n            demo2();\n            demo3();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsContextMenu.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-date-time-pickers.js",
    "content": "var ComponentsDateTimePickers = function () {\n\n    var handleDatePickers = function () {\n\n        if (jQuery().datepicker) {\n            $('.date-picker').datepicker({\n                rtl: App.isRTL(),\n                orientation: \"left\",\n                autoclose: true\n            });\n            //$('body').removeClass(\"modal-open\"); // fix bug when inline picker is used in modal\n        }\n\n        /* Workaround to restrict daterange past date select: http://stackoverflow.com/questions/11933173/how-to-restrict-the-selectable-date-ranges-in-bootstrap-datepicker */\n    \n        // Workaround to fix datepicker position on window scroll\n        $( document ).scroll(function(){\n            $('#form_modal2 .date-picker').datepicker('place'); //#modal is the id of the modal\n        });\n    }\n\n    var handleTimePickers = function () {\n\n        if (jQuery().timepicker) {\n            $('.timepicker-default').timepicker({\n                autoclose: true,\n                showSeconds: true,\n                minuteStep: 1\n            });\n\n            $('.timepicker-no-seconds').timepicker({\n                autoclose: true,\n                minuteStep: 5,\n                defaultTime: false\n            });\n\n            $('.timepicker-24').timepicker({\n                autoclose: true,\n                minuteStep: 5,\n                showSeconds: false,\n                showMeridian: false\n            });\n\n            // handle input group button click\n            $('.timepicker').parent('.input-group').on('click', '.input-group-btn', function(e){\n                e.preventDefault();\n                $(this).parent('.input-group').find('.timepicker').timepicker('showWidget');\n            });\n\n            // Workaround to fix timepicker position on window scroll\n            $( document ).scroll(function(){\n                $('#form_modal4 .timepicker-default, #form_modal4 .timepicker-no-seconds, #form_modal4 .timepicker-24').timepicker('place'); //#modal is the id of the modal\n            });\n        }\n    }\n\n    var handleDateRangePickers = function () {\n        if (!jQuery().daterangepicker) {\n            return;\n        }\n\n        $('#defaultrange').daterangepicker({\n                opens: (App.isRTL() ? 'left' : 'right'),\n                format: 'MM/DD/YYYY',\n                separator: ' to ',\n                startDate: moment().subtract('days', 29),\n                endDate: moment(),\n                ranges: {\n                    'Today': [moment(), moment()],\n                    'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],\n                    'Last 7 Days': [moment().subtract('days', 6), moment()],\n                    'Last 30 Days': [moment().subtract('days', 29), moment()],\n                    'This Month': [moment().startOf('month'), moment().endOf('month')],\n                    'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]\n                },\n                minDate: '01/01/2012',\n                maxDate: '12/31/2018',\n            },\n            function (start, end) {\n                $('#defaultrange input').val(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n            }\n        );        \n\n        $('#defaultrange_modal').daterangepicker({\n                opens: (App.isRTL() ? 'left' : 'right'),\n                format: 'MM/DD/YYYY',\n                separator: ' to ',\n                startDate: moment().subtract('days', 29),\n                endDate: moment(),\n                minDate: '01/01/2012',\n                maxDate: '12/31/2018',\n            },\n            function (start, end) {\n                $('#defaultrange_modal input').val(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n            }\n        );  \n\n        // this is very important fix when daterangepicker is used in modal. in modal when daterange picker is opened and mouse clicked anywhere bootstrap modal removes the modal-open class from the body element.\n        // so the below code will fix this issue.\n        $('#defaultrange_modal').on('click', function(){\n            if ($('#daterangepicker_modal').is(\":visible\") && $('body').hasClass(\"modal-open\") == false) {\n                $('body').addClass(\"modal-open\");\n            }\n        });\n\n        $('#reportrange').daterangepicker({\n                opens: (App.isRTL() ? 'left' : 'right'),\n                startDate: moment().subtract('days', 29),\n                endDate: moment(),\n                //minDate: '01/01/2012',\n                //maxDate: '12/31/2014',\n                dateLimit: {\n                    days: 60\n                },\n                showDropdowns: true,\n                showWeekNumbers: true,\n                timePicker: false,\n                timePickerIncrement: 1,\n                timePicker12Hour: true,\n                ranges: {\n                    'Today': [moment(), moment()],\n                    'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],\n                    'Last 7 Days': [moment().subtract('days', 6), moment()],\n                    'Last 30 Days': [moment().subtract('days', 29), moment()],\n                    'This Month': [moment().startOf('month'), moment().endOf('month')],\n                    'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]\n                },\n                buttonClasses: ['btn'],\n                applyClass: 'green',\n                cancelClass: 'default',\n                format: 'MM/DD/YYYY',\n                separator: ' to ',\n                locale: {\n                    applyLabel: 'Apply',\n                    fromLabel: 'From',\n                    toLabel: 'To',\n                    customRangeLabel: 'Custom Range',\n                    daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n                    monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n                    firstDay: 1\n                }\n            },\n            function (start, end) {\n                $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n            }\n        );\n        //Set the initial state of the picker label\n        $('#reportrange span').html(moment().subtract('days', 29).format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));\n    }\n\n    var handleDatetimePicker = function () {\n\n        if (!jQuery().datetimepicker) {\n            return;\n        }\n\n        $(\".form_datetime\").datetimepicker({\n            autoclose: true,\n            isRTL: App.isRTL(),\n            format: \"dd MM yyyy - hh:ii\",\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\")\n        });\n\n        $(\".form_advance_datetime\").datetimepicker({\n            isRTL: App.isRTL(),\n            format: \"dd MM yyyy - hh:ii\",\n            autoclose: true,\n            todayBtn: true,\n            startDate: \"2013-02-14 10:00\",\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            minuteStep: 10\n        });\n\n        $(\".form_meridian_datetime\").datetimepicker({\n            isRTL: App.isRTL(),\n            format: \"dd MM yyyy - HH:ii P\",\n            showMeridian: true,\n            autoclose: true,\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            todayBtn: true\n        });\n\n        $('body').removeClass(\"modal-open\"); // fix bug when inline picker is used in modal\n\n        // Workaround to fix datetimepicker position on window scroll\n        $( document ).scroll(function(){\n            $('#form_modal1 .form_datetime, #form_modal1 .form_advance_datetime, #form_modal1 .form_meridian_datetime').datetimepicker('place'); //#modal is the id of the modal\n        });\n    }\n\n    var handleClockfaceTimePickers = function () {\n\n        if (!jQuery().clockface) {\n            return;\n        }\n\n        $('.clockface_1').clockface();\n\n        $('#clockface_2').clockface({\n            format: 'HH:mm',\n            trigger: 'manual'\n        });\n\n        $('#clockface_2_toggle').click(function (e) {\n            e.stopPropagation();\n            $('#clockface_2').clockface('toggle');\n        });\n\n        $('#clockface_2_modal').clockface({\n            format: 'HH:mm',\n            trigger: 'manual'\n        });\n\n        $('#clockface_2_modal_toggle').click(function (e) {\n            e.stopPropagation();\n            $('#clockface_2_modal').clockface('toggle');\n        });\n\n        $('.clockface_3').clockface({\n            format: 'H:mm'\n        }).clockface('show', '14:30');\n\n        // Workaround to fix clockface position on window scroll\n        $( document ).scroll(function(){\n            $('#form_modal5 .clockface_1, #form_modal5 #clockface_2_modal').clockface('place'); //#modal is the id of the modal\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleDatePickers();\n            handleTimePickers();\n            handleDatetimePicker();\n            handleDateRangePickers();\n            handleClockfaceTimePickers();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {    \n        ComponentsDateTimePickers.init(); \n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-dropdowns.js",
    "content": "var ComponentsDropdowns = function () {\n\n    var handleSelect2 = function () {\n\n        $('#select2_sample1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample3\").select2({\n            placeholder: \"Select...\",\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample4\").select2({\n            placeholder: \"Select a Country\",\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleSelect2Modal = function () {\n\n        $('#select2_sample_modal_1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample_modal_2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample_modal_3\").select2({\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample_modal_4\").select2({\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample_modal_5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample_modal_6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleBootstrapSelect = function() {\n        $('.bs-select').selectpicker({\n            iconBase: 'fa',\n            tickIcon: 'fa-check'\n        });\n    }\n\n    var handleMultiSelect = function () {\n        $('#my_multi_select1').multiSelect();\n        $('#my_multi_select2').multiSelect({\n            selectableOptgroup: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {            \n            handleSelect2();\n            handleSelect2Modal();\n            handleMultiSelect();\n            handleBootstrapSelect();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsDropdowns.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-editors.js",
    "content": "var ComponentsEditors = function () {\n    \n    var handleWysihtml5 = function () {\n        if (!jQuery().wysihtml5) {\n            return;\n        }\n\n        if ($('.wysihtml5').size() > 0) {\n            $('.wysihtml5').wysihtml5({\n                \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n            });\n        }\n    }\n\n    var handleSummernote = function () {\n        $('#summernote_1').summernote({height: 300});\n        //API:\n        //var sHTML = $('#summernote_1').code(); // get code\n        //$('#summernote_1').destroy(); // destroy\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleWysihtml5();\n            handleSummernote();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsEditors.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-form-tools-2.js",
    "content": "var ComponentsFormTools = function () {\n\n    var handleTwitterTypeahead = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_2').attr(\"dir\", \"rtl\");  \n        } \n        $('#typeahead_example_2').typeahead(null, {\n          name: 'typeahead_example_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: '../demo/typeahead_custom.php?query=%QUERY'\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_3').attr(\"dir\", \"rtl\");  \n        }  \n        $('#typeahead_example_3').typeahead(null, {\n          name: 'datypeahead_example_3',\n          displayKey: 'value',\n          source: custom.ttAdapter(),\n          hint: (App.isRTL() ? false : true),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_4').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_4').typeahead({\n          hint: (App.isRTL() ? false : true),\n          highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    var handleTwitterTypeaheadModal = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_modal_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_2').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_2').typeahead(null, {\n          name: 'typeahead_example_modal_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: '../demo/typeahead_custom.php?query=%QUERY'\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_3').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_3').typeahead(null, {\n          name: 'datypeahead_example_modal_3',\n          displayKey: 'value',\n          hint: (App.isRTL() ? false : true),\n          source: custom.ttAdapter(),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        $('#typeahead_example_modal_4').typeahead({\n            hint: (App.isRTL() ? false : true),\n            highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    var handleBootstrapSwitch = function() {\n\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioState');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck', false);\n        });\n\n    }\n\n    var handleBootstrapTouchSpin = function() {\n\n        $(\"#touchspin_demo1\").TouchSpin({          \n            buttondown_class: 'btn green',\n            buttonup_class: 'btn green',\n            min: -1000000000,\n            max: 1000000000,\n            stepinterval: 50,\n            maxboostedstep: 10000000,\n            prefix: '$'\n        }); \n        \n        $(\"#touchspin_demo2\").TouchSpin({\n            buttondown_class: 'btn blue',\n            buttonup_class: 'btn blue',\n            min: 0,\n            max: 100,\n            step: 0.1,\n            decimals: 2,\n            boostat: 5,\n            maxboostedstep: 10,\n            postfix: '%'\n        });         \n\n        $(\"#touchspin_demo3\").TouchSpin({          \n            buttondown_class: 'btn green',\n            buttonup_class: 'btn green',\n            prefix: \"$\",\n            postfix: \"%\"\n        });\n    }\n\n    var handleBootstrapMaxlength = function() {\n        $('#maxlength_defaultconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n        })\n    \n        $('#maxlength_thresholdconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n            threshold: 20\n        });\n\n        $('#maxlength_alloptions').maxlength({\n            alwaysShow: true,\n            warningClass: \"label label-success\",\n            limitReachedClass: \"label label-danger\",\n            separator: ' out of ',\n            preText: 'You typed ',\n            postText: ' chars available.',\n            validate: true\n        });\n\n        $('#maxlength_textarea').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true\n        });\n\n        $('#maxlength_placement').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            placement: App.isRTL() ? 'top-right' : 'top-left'\n        });\n    }\n\n    var handleSpinners = function () {\n        $('#spinner1').spinner();\n        $('#spinner2').spinner({disabled: true});\n        $('#spinner3').spinner({value:0, min: 0, max: 10});\n        $('#spinner4').spinner({value:0, step: 5, min: 0, max: 200});\n    }\n    \n    var handleTagsInput = function () {\n        if (!jQuery().tagsInput) {\n            return;\n        }\n        $('#tags_1').tagsInput({\n            width: 'auto',\n            'onAddTag': function () {\n                //alert(1);\n            },\n        });\n        $('#tags_2').tagsInput({\n            width: 300\n        });\n    }\n    \n    var handleInputMasks = function () {\n        \n        $(\"#mask_date\").inputmask(\"d/m/y\", {\n            autoUnmask: true\n        }); //direct mask        \n        $(\"#mask_date1\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"*\"\n        }); //change the placeholder\n        $(\"#mask_date2\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"dd/mm/yyyy\"\n        }); //multi-char placeholder\n        $(\"#mask_phone\").inputmask(\"mask\", {\n            \"mask\": \"(999) 999-9999\"\n        }); //specifying fn & options\n        $(\"#mask_tin\").inputmask({\n            \"mask\": \"99-9999999\",\n            placeholder: \"\" // remove underscores from the input mask\n        }); //specifying options only\n        $(\"#mask_number\").inputmask({\n            \"mask\": \"9\",\n            \"repeat\": 10,\n            \"greedy\": false\n        }); // ~ mask \"9\" or mask \"99\" or ... mask \"9999999999\"\n        $(\"#mask_decimal\").inputmask('decimal', {\n            rightAlignNumerics: false\n        }); //disables the right alignment of the decimal input\n        $(\"#mask_currency\").inputmask('€ 999.999.999,99', {\n            numericInput: true\n        }); //123456  =>  € ___.__1.234,56\n\n        $(\"#mask_currency2\").inputmask('€ 999,999,999.99', {\n            numericInput: true,\n            rightAlignNumerics: false,\n            greedy: false\n        }); //123456  =>  € ___.__1.234,56\n        $(\"#mask_ssn\").inputmask(\"999-99-9999\", {\n            placeholder: \" \",\n            clearMaskOnLostFocus: true\n        }); //default\n    }\n\n    var handleIPAddressInput = function () {\n        $('#input_ipv4').ipAddress();\n        $('#input_ipv6').ipAddress({\n            v: 6\n        });\n    }\n\n    var handlePasswordStrengthChecker = function () {\n        var initialized = false;\n        var input = $(\"#password_strength\");\n\n        input.keydown(function () {\n            if (initialized === false) {\n                // set base options\n                input.pwstrength({\n                    raisePower: 1.4,\n                    minChar: 8,\n                    verdicts: [\"Weak\", \"Normal\", \"Medium\", \"Strong\", \"Very Strong\"],\n                    scores: [17, 26, 40, 50, 60]\n                });\n\n                // add your own rule to calculate the password strength\n                input.pwstrength(\"addRule\", \"demoRule\", function (options, word, score) {\n                    return word.match(/[a-z].[0-9]/) && score;\n                }, 10, true);\n\n                // set as initialized \n                initialized = true;\n            }\n        });\n    }\n\n    var handleUsernameAvailabilityChecker1 = function () {\n        var input = $(\"#username1_input\");\n\n        $(\"#username1_checker\").click(function (e) {\n            var pop = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                pop.popover('destroy');\n                pop.popover({\n                    'placement': (App.isRTL() ? 'left' : 'right'),\n                    'html': true,\n                    'container': 'body',\n                    'content': 'Please enter a username to check its availability.',\n                });\n                // add error class to the popover\n                pop.data('bs.popover').tip().addClass('error');\n                // set last poped popover to be closed on click(see App.js => handlePopovers function)     \n                App.setLastPopedPopover(pop);\n                pop.popover('show');\n                e.stopPropagation(); // prevent closing the popover\n\n                return;\n            }\n\n            var btn = $(this);\n\n            btn.attr('disabled', true);\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                btn.attr('disabled', false);\n\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('success').addClass('error');\n                    App.setLastPopedPopover(pop);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    var handleUsernameAvailabilityChecker2 = function () {\n        $(\"#username2_input\").change(function () {\n            var input = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-error').removeClass('has-success');\n                $('.fa-check, fa-warning', input.closest('.form-group')).remove();\n\n                return;\n            }\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                // change popover font color based on the result\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n                    $('.fa-warning', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-check\"></i>');\n                    input.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n                    $('.fa-check', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-warning\"></i>');\n\n                    input.popover('destroy');\n                    input.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    input.popover('show');\n                    input.data('bs.popover').tip().removeClass('success').addClass('error');\n\n                    App.setLastPopedPopover(input);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleTwitterTypeahead();\n            handleTwitterTypeaheadModal();\n\n            handleBootstrapSwitch();\n            handleBootstrapTouchSpin();\n            handleBootstrapMaxlength();\n            handleSpinners();\n            handleTagsInput();\n            handleInputMasks();\n            handleIPAddressInput();\n            handlePasswordStrengthChecker();\n            handleUsernameAvailabilityChecker1();\n            handleUsernameAvailabilityChecker2();\n        }\n    };\n\n}();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-form-tools.js",
    "content": "var ComponentsFormTools = function () {\n\n    var handleBootstrapMaxlength = function() {\n        $('#maxlength_defaultconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n        })\n    \n        $('#maxlength_thresholdconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n            threshold: 20\n        });\n\n        $('#maxlength_alloptions').maxlength({\n            alwaysShow: true,\n            warningClass: \"label label-success\",\n            limitReachedClass: \"label label-danger\",\n            separator: ' out of ',\n            preText: 'You typed ',\n            postText: ' chars available.',\n            validate: true\n        });\n\n        $('#maxlength_textarea').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true\n        });\n\n        $('#maxlength_placement').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            placement: App.isRTL() ? 'top-right' : 'top-left'\n        });\n    }\n    \n    var handlePasswordStrengthChecker = function () {\n        var initialized = false;\n        var input = $(\"#password_strength\");\n\n        input.keydown(function () {\n            if (initialized === false) {\n                // set base options\n                input.pwstrength({\n                    raisePower: 1.4,\n                    minChar: 8,\n                    verdicts: [\"Weak\", \"Normal\", \"Medium\", \"Strong\", \"Very Strong\"],\n                    scores: [17, 26, 40, 50, 60]\n                });\n\n                // add your own rule to calculate the password strength\n                input.pwstrength(\"addRule\", \"demoRule\", function (options, word, score) {\n                    return word.match(/[a-z].[0-9]/) && score;\n                }, 10, true);\n\n                // set as initialized \n                initialized = true;\n            }\n        });\n    }\n\n    var handleUsernameAvailabilityChecker1 = function () {\n        var input = $(\"#username1_input\");\n\n        $(\"#username1_checker\").click(function (e) {\n            var pop = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                pop.popover('destroy');\n                pop.popover({\n                    'placement': (App.isRTL() ? 'left' : 'right'),\n                    'html': true,\n                    'container': 'body',\n                    'content': 'Please enter a username to check its availability.',\n                });\n                // add error class to the popover\n                pop.data('bs.popover').tip().addClass('error');\n                // set last poped popover to be closed on click(see App.js => handlePopovers function)     \n                App.setLastPopedPopover(pop);\n                pop.popover('show');\n                e.stopPropagation(); // prevent closing the popover\n\n                return;\n            }\n\n            var btn = $(this);\n\n            btn.attr('disabled', true);\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                btn.attr('disabled', false);\n\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('success').addClass('error');\n                    App.setLastPopedPopover(pop);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    var handleUsernameAvailabilityChecker2 = function () {\n        $(\"#username2_input\").change(function () {\n            var input = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-error').removeClass('has-success');\n                $('.fa-check, fa-warning', input.closest('.form-group')).remove();\n\n                return;\n            }\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                // change popover font color based on the result\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n                    $('.fa-warning', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-check\"></i>');\n                    input.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n                    $('.fa-check', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-warning\"></i>');\n\n                    input.popover('destroy');\n                    input.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    input.popover('show');\n                    input.data('bs.popover').tip().removeClass('success').addClass('error');\n\n                    App.setLastPopedPopover(input);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleBootstrapMaxlength();\n            handlePasswordStrengthChecker();\n            handleUsernameAvailabilityChecker1();\n            handleUsernameAvailabilityChecker2();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        ComponentsFormTools.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-ion-sliders.js",
    "content": "var ComponentsIonSliders = function() {\n\n    var handleBasicDemo = function() {\n        // demo 1\n        $(\"#range_1\").ionRangeSlider();\n\n        // demo 2\n        $(\"#range_2\").ionRangeSlider({\n            min: 100,\n            max: 1000,\n            from: 550\n        });\n\n        // demo 3\n        $(\"#range_3\").ionRangeSlider({\n            type: \"double\",\n            grid: true,\n            min: 0,\n            max: 1000,\n            from: 200,\n            to: 800,\n            prefix: \"$\"\n        });\n\n        // demo 4\n        $(\"#range_4\").ionRangeSlider({\n            type: \"double\",\n            grid: true,\n            min: -1000,\n            max: 1000,\n            from: -500,\n            to: 500\n        });\n\n        // demo 5\n        $(\"#range_5\").ionRangeSlider({\n            type: \"double\",\n            grid: true,\n            from: 1,\n            to: 5,\n            values: [0, 10, 100, 1000, 10000, 100000, 1000000]\n        });\n\n        // demo 6\n        $(\"#range_6\").ionRangeSlider({\n            grid: true,\n            from: 5,\n            values: [\n                \"zero\", \"one\",\n                \"two\", \"three\",\n                \"four\", \"five\",\n                \"six\", \"seven\",\n                \"eight\", \"nine\",\n                \"ten\"\n            ]\n        });\n\n        // demo 7\n        $(\"#range_7\").ionRangeSlider({\n            grid: true,\n            from: 3,\n            values: [\n                \"January\", \"February\", \"March\",\n                \"April\", \"May\", \"June\",\n                \"July\", \"August\", \"September\",\n                \"October\", \"November\", \"December\"\n            ]\n        });\n\n        // demo 8\n        $(\"#range_8\").ionRangeSlider({\n            type: \"double\",\n            min: 100,\n            max: 200,\n            from: 145,\n            to: 155,\n            prefix: \"Weight: \",\n            postfix: \" million pounds\",\n            decorate_both: true\n        });\n\n        // demo 9\n        $(\"#range_9\").ionRangeSlider({\n            type: \"double\",\n            min: 100,\n            max: 200,\n            from: 148,\n            to: 152,\n            prefix: \"Weight: \",\n            postfix: \" million pounds\",\n            values_separator: \" → \"\n        });\n    }\n\n    var handleAdvancedDemo = function() {\n        $(\"#range_10\").ionRangeSlider({\n            type: \"double\",\n            min: 0,\n            max: 100,\n            from: 30,\n            to: 70,\n            from_fixed: true\n        });\n\n        $(\"#range_11\").ionRangeSlider({\n            min: 0,\n            max: 100,\n            from: 30,\n            from_min: 10,\n            from_max: 50\n        });\n\n        $(\"#range_12\").ionRangeSlider({\n            type: \"double\",\n            min: 0,\n            max: 100,\n            from: 20,\n            from_min: 10,\n            from_max: 30,\n            from_shadow: true,\n            to: 80,\n            to_min: 70,\n            to_max: 90,\n            to_shadow: true,\n            grid: true,\n            grid_num: 10\n        });\n\n        $(\"#range_13\").ionRangeSlider({\n            min: 0,\n            max: 100,\n            from: 30,\n            disable: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleBasicDemo();\n            handleAdvancedDemo();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsIonSliders.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-knob-dials.js",
    "content": "var ComponentsKnobDials = function () {\n\n    return {\n        //main function to initiate the module\n        \n        init: function () {\n            //knob does not support ie8 so skip it\n            if (!jQuery().knob || App.isIE8()) {\n                return;\n            }\n\n            // general knob\n            $(\".knob\").knob({\n                'dynamicDraw': true,\n                'thickness': 0.2,\n                'tickColorizeValues': true,\n                'skin': 'tron'\n            });  \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsKnobDials.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-multi-select.js",
    "content": "var ComponentsDropdowns = function () {\n\n    var handleSelect2 = function () {\n\n        $('#select2_sample1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample3\").select2({\n            placeholder: \"Select...\",\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample4\").select2({\n            placeholder: \"Select a Country\",\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleSelect2Modal = function () {\n\n        $('#select2_sample_modal_1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample_modal_2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample_modal_3\").select2({\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample_modal_4\").select2({\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample_modal_5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample_modal_6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleBootstrapSelect = function() {\n        $('.bs-select').selectpicker({\n            iconBase: 'fa',\n            tickIcon: 'fa-check'\n        });\n    }\n\n    var handleMultiSelect = function () {\n        $('#my_multi_select1').multiSelect();\n        $('#my_multi_select2').multiSelect({\n            selectableOptgroup: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {            \n            handleSelect2();\n            handleSelect2Modal();\n            handleMultiSelect();\n            handleBootstrapSelect();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsDropdowns.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-nouisliders.js",
    "content": "var ComponentsNoUiSliders = function() {\n\n    var demo2 = function() {\n        var connectSlider = document.getElementById('demo2');\n\n        noUiSlider.create(connectSlider, {\n            start: [20],\n            connect: false,\n            range: {\n                'min': 0,\n                'max': 100\n            }\n        });\n    }\n\n    var demo3 = function() {\n        var connectSlider = document.getElementById('demo3');\n\n        noUiSlider.create(connectSlider, {\n            start: [20, 80],\n            connect: false,\n            range: {\n                'min': 0,\n                'max': 100\n            }\n        });\n\n        var connectBar = document.createElement('div'),\n            connectBase = connectSlider.getElementsByClassName('noUi-base')[0],\n            connectHandles = connectSlider.getElementsByClassName('noUi-origin');\n\n        // Give the bar a class for styling and add it to the slider.\n        connectBar.className += 'connect';\n        connectBase.appendChild(connectBar);\n\n        connectSlider.noUiSlider.on('update', function( values, handle ) {\n\n            // Pick left for the first handle, right for the second.\n            var side = handle ? 'right' : 'left',\n            // Get the handle position and trim the '%' sign.\n                offset = (connectHandles[handle].style.left).slice(0, - 1);\n\n            // Right offset is 100% - left offset\n            if ( handle === 1 ) {\n                offset = 100 - offset;\n            }\n\n            connectBar.style[side] = offset + '%';\n        });\n    }\n\n    var demo4 = function() {\n        //** init the select\n        var select = document.getElementById('demo4_select');\n\n        // Append the option elements\n        for ( var i = -20; i <= 40; i++ ) {\n            var option = document.createElement(\"option\");\n                option.text = i;\n                option.value = i;\n            select.appendChild(option);\n        }\n\n        //** init the slider\n        var html5Slider = document.getElementById('demo4');\n\n        noUiSlider.create(html5Slider, {\n            start: [ 10, 30 ],\n            connect: true,\n            range: {\n                'min': -20,\n                'max': 40\n            }\n        });\n\n        //** init the input\n        var inputNumber = document.getElementById('demo4_input');\n\n        html5Slider.noUiSlider.on('update', function( values, handle ) {\n\n            var value = values[handle];\n\n            if ( handle ) {\n                inputNumber.value = value;\n            } else {\n                select.value = Math.round(value);\n            }\n        });\n\n        select.addEventListener('change', function(){\n            html5Slider.noUiSlider.set([this.value, null]);\n        });\n\n        inputNumber.addEventListener('change', function(){\n            html5Slider.noUiSlider.set([null, this.value]);\n        });\n    }\n\n    var demo5 = function() {\n        var nonLinearSlider = document.getElementById('demo5');\n\n        noUiSlider.create(nonLinearSlider, {\n            connect: true,\n            behaviour: 'tap',\n            start: [ 500, 4000 ],\n            range: {\n                // Starting at 500, step the value by 500,\n                // until 4000 is reached. From there, step by 1000.\n                'min': [ 0 ],\n                '10%': [ 500, 500 ],\n                '50%': [ 4000, 1000 ],\n                'max': [ 10000 ]\n            }\n        });\n\n        // Write the CSS 'left' value to a span.\n        function leftValue ( handle ) {\n            return handle.parentElement.style.left;\n        }\n\n        var lowerValue = document.getElementById('demo5_lower-value'),\n            upperValue = document.getElementById('demo5_upper-value'),\n            handles = nonLinearSlider.getElementsByClassName('noUi-handle');\n\n        // Display the slider value and how far the handle moved\n        // from the left edge of the slider.\n        nonLinearSlider.noUiSlider.on('update', function ( values, handle ) {\n            if ( !handle ) {\n                lowerValue.innerHTML = values[handle] + ', ' + leftValue(handles[handle]);\n            } else {\n                upperValue.innerHTML = values[handle] + ', ' + leftValue(handles[handle]);\n            }\n        });\n    }\n\n    var demo6 = function() {\n        // Store the locked state and slider values.\n        var lockedState = false,\n            lockedSlider = false,\n            lockedValues = [60, 80],\n            slider1 = document.getElementById('demo6_slider1'),\n            slider2 = document.getElementById('demo6_slider2'),\n            lockButton = document.getElementById('demo6_lockbutton'),\n            slider1Value = document.getElementById('demo6_slider1-span'),\n            slider2Value = document.getElementById('demo6_slider2-span');\n\n        // When the button is clicked, the locked\n        // state is inverted.\n        lockButton.addEventListener('click', function(){\n            lockedState = !lockedState;\n            this.textContent = lockedState ? 'unlock' : 'lock';\n        });\n\n        function crossUpdate ( value, slider ) {\n\n            // If the sliders aren't interlocked, don't\n            // cross-update.\n            if ( !lockedState ) return;\n\n            // Select whether to increase or decrease\n            // the other slider value.\n            var a = slider1 === slider ? 0 : 1, b = a ? 0 : 1;\n\n            // Offset the slider value.\n            value -= lockedValues[b] - lockedValues[a];\n\n            // Set the value\n            slider.noUiSlider.set(value);\n        }\n\n        noUiSlider.create(slider1, {\n            start: 60,\n\n            // Disable animation on value-setting,\n            // so the sliders respond immediately.\n            animate: false,\n            range: {\n                min: 50,\n                max: 100\n            }\n        });\n\n        noUiSlider.create(slider2, {\n            start: 80,\n            animate: false,\n            range: {\n                min: 50,\n                max: 100\n            }\n        });\n\n        slider1.noUiSlider.on('update', function( values, handle ){\n            slider1Value.innerHTML = values[handle];\n        });\n\n        slider2.noUiSlider.on('update', function( values, handle ){\n            slider2Value.innerHTML = values[handle];\n        });\n\n        function setLockedValues ( ) {\n            lockedValues = [\n                Number(slider1.noUiSlider.get()),\n                Number(slider2.noUiSlider.get())\n            ];\n        }\n\n        slider1.noUiSlider.on('change', setLockedValues);\n        slider2.noUiSlider.on('change', setLockedValues);\n\n        // The value will be send to the other slider,\n        // using a custom function as the serialization\n        // method. The function uses the global 'lockedState'\n        // variable to decide whether the other slider is updated.\n        slider1.noUiSlider.on('slide', function( values, handle ){\n            crossUpdate(values[handle], slider2);\n        });\n\n        slider2.noUiSlider.on('slide', function( values, handle ){\n            crossUpdate(values[handle], slider1);\n        });\n    }\n\n    var demo7 = function() {\n        var softSlider = document.getElementById('demo7');\n\n        noUiSlider.create(softSlider, {\n            start: 50,\n            range: {\n                min: 0,\n                max: 100\n            },\n            pips: {\n                mode: 'values',\n                values: [20, 80],\n                density: 4\n            }\n        });\n\n        softSlider.noUiSlider.on('change', function ( values, handle ) {\n            if ( values[handle] < 20 ) {\n                softSlider.noUiSlider.set(20);\n            } else if ( values[handle] > 80 ) {\n                softSlider.noUiSlider.set(80);\n            }\n        });\n    }\n\n    var demo8 = function() {\n        var tooltipSlider = document.getElementById('demo8');\n\n        noUiSlider.create(tooltipSlider, {\n            start: [40, 50],\n            connect: true,\n            range: {\n                'min': 30,\n                '30%': 40,\n                'max': 50\n            }\n        });\n\n        var tipHandles = tooltipSlider.getElementsByClassName('noUi-handle'),\n            tooltips = [];\n\n        // Add divs to the slider handles.\n        for ( var i = 0; i < tipHandles.length; i++ ){\n            tooltips[i] = document.createElement('div');\n            tipHandles[i].appendChild(tooltips[i]);\n        }\n  \n        // Add a class for styling\n        tooltips[1].className += 'noUi-tooltip';\n        // Add additional markup\n        tooltips[1].innerHTML = '<strong>Value: </strong><span></span>';\n        // Replace the tooltip reference with the span we just added\n        tooltips[1] = tooltips[1].getElementsByTagName('span')[0];\n\n        // Add a class for styling\n        tooltips[0].className += 'noUi-tooltip';\n        // Add additional markup\n        tooltips[0].innerHTML = '<strong>Value: </strong><span></span>';\n        // Replace the tooltip reference with the span we just added\n        tooltips[0] = tooltips[0].getElementsByTagName('span')[0];\n\n        // When the slider changes, write the value to the tooltips.\n        tooltipSlider.noUiSlider.on('update', function( values, handle ){\n            tooltips[handle].innerHTML = values[handle];\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            demo2();\n            demo3();\n            demo4();\n            demo5();\n            demo6();\n            demo7();\n            demo8();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsNoUiSliders.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-select2.js",
    "content": "var ComponentsSelect2 = function() {\n\n    var handleDemo = function() {\n\n        // Set the \"bootstrap\" theme as the default theme for all Select2\n        // widgets.\n        //\n        // @see https://github.com/select2/select2/issues/2927\n        $.fn.select2.defaults.set(\"theme\", \"bootstrap\");\n\n        var placeholder = \"Select a State\";\n\n        $(\".select2, .select2-multiple\").select2({\n            placeholder: placeholder,\n            width: null\n        });\n\n        $(\".select2-allow-clear\").select2({\n            allowClear: true,\n            placeholder: placeholder,\n            width: null\n        });\n\n        // @see https://select2.github.io/examples.html#data-ajax\n        function formatRepo(repo) {\n            if (repo.loading) return repo.text;\n\n            var markup = \"<div class='select2-result-repository clearfix'>\" +\n                \"<div class='select2-result-repository__avatar'><img src='\" + repo.owner.avatar_url + \"' /></div>\" +\n                \"<div class='select2-result-repository__meta'>\" +\n                \"<div class='select2-result-repository__title'>\" + repo.full_name + \"</div>\";\n\n            if (repo.description) {\n                markup += \"<div class='select2-result-repository__description'>\" + repo.description + \"</div>\";\n            }\n\n            markup += \"<div class='select2-result-repository__statistics'>\" +\n                \"<div class='select2-result-repository__forks'><span class='glyphicon glyphicon-flash'></span> \" + repo.forks_count + \" Forks</div>\" +\n                \"<div class='select2-result-repository__stargazers'><span class='glyphicon glyphicon-star'></span> \" + repo.stargazers_count + \" Stars</div>\" +\n                \"<div class='select2-result-repository__watchers'><span class='glyphicon glyphicon-eye-open'></span> \" + repo.watchers_count + \" Watchers</div>\" +\n                \"</div>\" +\n                \"</div></div>\";\n\n            return markup;\n        }\n\n        function formatRepoSelection(repo) {\n            return repo.full_name || repo.text;\n        }\n\n        $(\".js-data-example-ajax\").select2({\n            width: \"off\",\n            ajax: {\n                url: \"https://api.github.com/search/repositories\",\n                dataType: 'json',\n                delay: 250,\n                data: function(params) {\n                    return {\n                        q: params.term, // search term\n                        page: params.page\n                    };\n                },\n                processResults: function(data, page) {\n                    // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to\n                    // alter the remote JSON data\n                    return {\n                        results: data.items\n                    };\n                },\n                cache: true\n            },\n            escapeMarkup: function(markup) {\n                return markup;\n            }, // let our custom formatter work\n            minimumInputLength: 1,\n            templateResult: formatRepo,\n            templateSelection: formatRepoSelection\n        });\n\n        $(\"button[data-select2-open]\").click(function() {\n            $(\"#\" + $(this).data(\"select2-open\")).select2(\"open\");\n        });\n\n        $(\":checkbox\").on(\"click\", function() {\n            $(this).parent().nextAll(\"select\").prop(\"disabled\", !this.checked);\n        });\n\n        // copy Bootstrap validation states to Select2 dropdown\n        //\n        // add .has-waring, .has-error, .has-succes to the Select2 dropdown\n        // (was #select2-drop in Select2 v3.x, in Select2 v4 can be selected via\n        // body > .select2-container) if _any_ of the opened Select2's parents\n        // has one of these forementioned classes (YUCK! ;-))\n        $(\".select2, .select2-multiple, .select2-allow-clear, .js-data-example-ajax\").on(\"select2:open\", function() {\n            if ($(this).parents(\"[class*='has-']\").length) {\n                var classNames = $(this).parents(\"[class*='has-']\")[0].className.split(/\\s+/);\n\n                for (var i = 0; i < classNames.length; ++i) {\n                    if (classNames[i].match(\"has-\")) {\n                        $(\"body > .select2-container\").addClass(classNames[i]);\n                    }\n                }\n            }\n        });\n\n        $(\".js-btn-set-scaling-classes\").on(\"click\", function() {\n            $(\"#select2-multiple-input-sm, #select2-single-input-sm\").next(\".select2-container--bootstrap\").addClass(\"input-sm\");\n            $(\"#select2-multiple-input-lg, #select2-single-input-lg\").next(\".select2-container--bootstrap\").addClass(\"input-lg\");\n            $(this).removeClass(\"btn-primary btn-outline\").prop(\"disabled\", true);\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleDemo();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {\n        ComponentsSelect2.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/components-typeahead.js",
    "content": "var ComponentsTypeahead = function () {\n\n    var handleTwitterTypeahead = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_2').attr(\"dir\", \"rtl\");  \n        } \n        $('#typeahead_example_2').typeahead(null, {\n          name: 'typeahead_example_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: {\n            url: '../demo/typeahead_custom.php?query=%QUERY',\n            wildcard: '%QUERY'\n          }\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_3').attr(\"dir\", \"rtl\");  \n        }  \n        $('#typeahead_example_3').typeahead(null, {\n          name: 'datypeahead_example_3',\n          displayKey: 'value',\n          source: custom.ttAdapter(),\n          hint: (App.isRTL() ? false : true),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_4').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_4').typeahead({\n          hint: (App.isRTL() ? false : true),\n          highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    var handleTwitterTypeaheadModal = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_modal_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_2').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_2').typeahead(null, {\n          name: 'typeahead_example_modal_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: '../demo/typeahead_custom.php?query=%QUERY'\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_3').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_3').typeahead(null, {\n          name: 'datypeahead_example_modal_3',\n          displayKey: 'value',\n          hint: (App.isRTL() ? false : true),\n          source: custom.ttAdapter(),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        $('#typeahead_example_modal_4').typeahead({\n            hint: (App.isRTL() ? false : true),\n            highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleTwitterTypeahead();\n            handleTwitterTypeaheadModal();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsTypeahead.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/contact.js",
    "content": "var Contact = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\t\t\tvar map;\n\t\t\t$(document).ready(function(){\n\t\t\t  map = new GMaps({\n\t\t\t\tdiv: '#gmapbg',\n\t\t\t\tlat: -13.004333,\n\t\t\t\tlng: -38.494333\n\t\t\t  });\n\t\t\t   var marker = map.addMarker({\n\t\t            lat: -13.004333,\n\t\t\t\t\tlng: -38.494333,\n\t\t            title: 'Loop, Inc.',\n\t\t            infoWindow: {\n\t\t                content: \"<b>Metronic, Inc.</b> 795 Park Ave, Suite 120<br>San Francisco, CA 94107\"\n\t\t            }\n\t\t        });\n\n\t\t\t   marker.infoWindow.open(map, marker);\n\t\t\t});\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   Contact.init(); \n});\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/custom.js",
    "content": "/**\nCustom module for you to write your own javascript functions\n**/\nvar Custom = function () {\n\n    // private functions & variables\n\n    var myFunc = function(text) {\n        alert(text);\n    }\n\n    // public functions\n    return {\n\n        //main function\n        init: function () {\n            //initialize here something.            \n        },\n\n        //some helper function\n        doSomeStuff: function () {\n            myFunc();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   Custom.init(); \n});\n\n/***\nUsage\n***/\n//Custom.doSomeStuff();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/dashboard.js",
    "content": "var Dashboard = function() {\n\n    return {\n\n        initJQVMAP: function() {\n            if (!jQuery().vectorMap) {\n                return;\n            }\n\n            var showMap = function(name) {\n                jQuery('.vmaps').hide();\n                jQuery('#vmap_' + name).show();\n            }\n\n            var setMap = function(name) {\n                var map = jQuery('#vmap_' + name);\n                \n                if (map.size() !== 1) {\n                    return;\n                }\n\n                var data = {\n                    map: 'world_en',\n                    backgroundColor: null,\n                    borderColor: '#333333',\n                    borderOpacity: 0.5,\n                    borderWidth: 1,\n                    color: '#c6c6c6',\n                    enableZoom: true,\n                    hoverColor: '#c9dfaf',\n                    hoverOpacity: null,\n                    values: sample_data,\n                    normalizeFunction: 'linear',\n                    scaleColors: ['#b6da93', '#909cae'],\n                    selectedColor: '#c9dfaf',\n                    selectedRegion: null,\n                    showTooltip: true,\n                    onLabelShow: function(event, label, code) {\n\n                    },\n                    onRegionOver: function(event, code) {\n                        if (code == 'ca') {\n                            event.preventDefault();\n                        }\n                    },\n                    onRegionClick: function(element, code, region) {\n                        var message = 'You clicked \"' + region + '\" which has the code: ' + code.toUpperCase();\n                        alert(message);\n                    }\n                };\n\n                data.map = name + '_en';\n              \n                map.width(map.parent().parent().width());\n                map.show();\n                map.vectorMap(data);\n                map.hide();\n            }\n\n            setMap(\"world\");\n            setMap(\"usa\");\n            setMap(\"europe\");\n            setMap(\"russia\");\n            setMap(\"germany\");\n            showMap(\"world\");\n\n            jQuery('#regional_stat_world').click(function() {\n                showMap(\"world\");\n            });\n\n            jQuery('#regional_stat_usa').click(function() {\n                showMap(\"usa\");\n            });\n\n            jQuery('#regional_stat_europe').click(function() {\n                showMap(\"europe\");\n            });\n            jQuery('#regional_stat_russia').click(function() {\n                showMap(\"russia\");\n            });\n            jQuery('#regional_stat_germany').click(function() {\n                showMap(\"germany\");\n            });\n\n            $('#region_statistics_loading').hide();\n            $('#region_statistics_content').show();\n\n            App.addResizeHandler(function() {\n                jQuery('.vmaps').each(function() {\n                    var map = jQuery(this);\n                    map.width(map.parent().width());\n                });\n            });\n        },\n\n        initCalendar: function() {\n            if (!jQuery().fullCalendar) {\n                return;\n            }\n\n            var date = new Date();\n            var d = date.getDate();\n            var m = date.getMonth();\n            var y = date.getFullYear();\n\n            var h = {};\n\n            if ($('#calendar').width() <= 400) {\n                $('#calendar').addClass(\"mobile\");\n                h = {\n                    left: 'title, prev, next',\n                    center: '',\n                    right: 'today,month,agendaWeek,agendaDay'\n                };\n            } else {\n                $('#calendar').removeClass(\"mobile\");\n                if (App.isRTL()) {\n                    h = {\n                        right: 'title',\n                        center: '',\n                        left: 'prev,next,today,month,agendaWeek,agendaDay'\n                    };\n                } else {\n                    h = {\n                        left: 'title',\n                        center: '',\n                        right: 'prev,next,today,month,agendaWeek,agendaDay'\n                    };\n                }\n            }\n\n\n\n            $('#calendar').fullCalendar('destroy'); // destroy the calendar\n            $('#calendar').fullCalendar({ //re-initialize the calendar\n                disableDragging: false,\n                header: h,\n                editable: true,\n                events: [{\n                    title: 'All Day',\n                    start: new Date(y, m, 1),\n                    backgroundColor: App.getBrandColor('yellow')\n                }, {\n                    title: 'Long Event',\n                    start: new Date(y, m, d - 5),\n                    end: new Date(y, m, d - 2),\n                    backgroundColor: App.getBrandColor('blue')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d - 3, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('red')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d + 6, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('green')\n                }, {\n                    title: 'Meeting',\n                    start: new Date(y, m, d + 9, 10, 30),\n                    allDay: false\n                }, {\n                    title: 'Lunch',\n                    start: new Date(y, m, d, 14, 0),\n                    end: new Date(y, m, d, 14, 0),\n                    backgroundColor: App.getBrandColor('grey'),\n                    allDay: false\n                }, {\n                    title: 'Birthday',\n                    start: new Date(y, m, d + 1, 19, 0),\n                    end: new Date(y, m, d + 1, 22, 30),\n                    backgroundColor: App.getBrandColor('purple'),\n                    allDay: false\n                }, {\n                    title: 'Click for Google',\n                    start: new Date(y, m, 28),\n                    end: new Date(y, m, 29),\n                    backgroundColor: App.getBrandColor('yellow'),\n                    url: 'http://google.com/'\n                }]\n            });\n        },\n\n        initCharts: function() {\n            if (!jQuery.plot) {\n                return;\n            }\n\n            function showChartTooltip(x, y, xValue, yValue) {\n                $('<div id=\"tooltip\" class=\"chart-tooltip\">' + yValue + '<\\/div>').css({\n                    position: 'absolute',\n                    display: 'none',\n                    top: y - 40,\n                    left: x - 40,\n                    border: '0px solid #ccc',\n                    padding: '2px 6px',\n                    'background-color': '#fff'\n                }).appendTo(\"body\").fadeIn(200);\n            }\n\n            var data = [];\n            var totalPoints = 250;\n\n            // random data generator for plot charts\n\n            function getRandomData() {\n                if (data.length > 0) data = data.slice(1);\n                // do a random walk\n                while (data.length < totalPoints) {\n                    var prev = data.length > 0 ? data[data.length - 1] : 50;\n                    var y = prev + Math.random() * 10 - 5;\n                    if (y < 0) y = 0;\n                    if (y > 100) y = 100;\n                    data.push(y);\n                }\n                // zip the generated y values with the x values\n                var res = [];\n                for (var i = 0; i < data.length; ++i) res.push([i, data[i]])\n                return res;\n            }\n\n            function randValue() {\n                return (Math.floor(Math.random() * (1 + 50 - 20))) + 10;\n            }\n\n            var visitors = [\n                ['02/2013', 1500],\n                ['03/2013', 2500],\n                ['04/2013', 1700],\n                ['05/2013', 800],\n                ['06/2013', 1500],\n                ['07/2013', 2350],\n                ['08/2013', 1500],\n                ['09/2013', 1300],\n                ['10/2013', 4600]\n            ];\n\n\n            if ($('#site_statistics').size() != 0) {\n\n                $('#site_statistics_loading').hide();\n                $('#site_statistics_content').show();\n\n                var plot_statistics = $.plot($(\"#site_statistics\"), [{\n                        data: visitors,\n                        lines: {\n                            fill: 0.6,\n                            lineWidth: 0\n                        },\n                        color: ['#f89f9f']\n                    }, {\n                        data: visitors,\n                        points: {\n                            show: true,\n                            fill: true,\n                            radius: 5,\n                            fillColor: \"#f89f9f\",\n                            lineWidth: 3\n                        },\n                        color: '#fff',\n                        shadowSize: 0\n                    }],\n\n                    {\n                        xaxis: {\n                            tickLength: 0,\n                            tickDecimals: 0,\n                            mode: \"categories\",\n                            min: 0,\n                            font: {\n                                lineHeight: 14,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        yaxis: {\n                            ticks: 5,\n                            tickDecimals: 0,\n                            tickColor: \"#eee\",\n                            font: {\n                                lineHeight: 14,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        grid: {\n                            hoverable: true,\n                            clickable: true,\n                            tickColor: \"#eee\",\n                            borderColor: \"#eee\",\n                            borderWidth: 1\n                        }\n                    });\n\n                var previousPoint = null;\n                $(\"#site_statistics\").bind(\"plothover\", function(event, pos, item) {\n                    $(\"#x\").text(pos.x.toFixed(2));\n                    $(\"#y\").text(pos.y.toFixed(2));\n                    if (item) {\n                        if (previousPoint != item.dataIndex) {\n                            previousPoint = item.dataIndex;\n\n                            $(\"#tooltip\").remove();\n                            var x = item.datapoint[0].toFixed(2),\n                                y = item.datapoint[1].toFixed(2);\n\n                            showChartTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1] + ' visits');\n                        }\n                    } else {\n                        $(\"#tooltip\").remove();\n                        previousPoint = null;\n                    }\n                });\n            }\n\n\n            if ($('#site_activities').size() != 0) {\n                //site activities\n                var previousPoint2 = null;\n                $('#site_activities_loading').hide();\n                $('#site_activities_content').show();\n\n                var data1 = [\n                    ['DEC', 300],\n                    ['JAN', 600],\n                    ['FEB', 1100],\n                    ['MAR', 1200],\n                    ['APR', 860],\n                    ['MAY', 1200],\n                    ['JUN', 1450],\n                    ['JUL', 1800],\n                    ['AUG', 1200],\n                    ['SEP', 600]\n                ];\n\n\n                var plot_statistics = $.plot($(\"#site_activities\"),\n\n                    [{\n                        data: data1,\n                        lines: {\n                            fill: 0.2,\n                            lineWidth: 0,\n                        },\n                        color: ['#BAD9F5']\n                    }, {\n                        data: data1,\n                        points: {\n                            show: true,\n                            fill: true,\n                            radius: 4,\n                            fillColor: \"#9ACAE6\",\n                            lineWidth: 2\n                        },\n                        color: '#9ACAE6',\n                        shadowSize: 1\n                    }, {\n                        data: data1,\n                        lines: {\n                            show: true,\n                            fill: false,\n                            lineWidth: 3\n                        },\n                        color: '#9ACAE6',\n                        shadowSize: 0\n                    }],\n\n                    {\n\n                        xaxis: {\n                            tickLength: 0,\n                            tickDecimals: 0,\n                            mode: \"categories\",\n                            min: 0,\n                            font: {\n                                lineHeight: 18,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        yaxis: {\n                            ticks: 5,\n                            tickDecimals: 0,\n                            tickColor: \"#eee\",\n                            font: {\n                                lineHeight: 14,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        grid: {\n                            hoverable: true,\n                            clickable: true,\n                            tickColor: \"#eee\",\n                            borderColor: \"#eee\",\n                            borderWidth: 1\n                        }\n                    });\n\n                $(\"#site_activities\").bind(\"plothover\", function(event, pos, item) {\n                    $(\"#x\").text(pos.x.toFixed(2));\n                    $(\"#y\").text(pos.y.toFixed(2));\n                    if (item) {\n                        if (previousPoint2 != item.dataIndex) {\n                            previousPoint2 = item.dataIndex;\n                            $(\"#tooltip\").remove();\n                            var x = item.datapoint[0].toFixed(2),\n                                y = item.datapoint[1].toFixed(2);\n                            showChartTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1] + 'M$');\n                        }\n                    }\n                });\n\n                $('#site_activities').bind(\"mouseleave\", function() {\n                    $(\"#tooltip\").remove();\n                });\n            }\n        },\n\n        initEasyPieCharts: function() {\n            if (!jQuery().easyPieChart) {\n                return;\n            }\n\n            $('.easy-pie-chart .number.transactions').easyPieChart({\n                animate: 1000,\n                size: 75,\n                lineWidth: 3,\n                barColor: App.getBrandColor('yellow')\n            });\n\n            $('.easy-pie-chart .number.visits').easyPieChart({\n                animate: 1000,\n                size: 75,\n                lineWidth: 3,\n                barColor: App.getBrandColor('green')\n            });\n\n            $('.easy-pie-chart .number.bounce').easyPieChart({\n                animate: 1000,\n                size: 75,\n                lineWidth: 3,\n                barColor: App.getBrandColor('red')\n            });\n\n            $('.easy-pie-chart-reload').click(function() {\n                $('.easy-pie-chart .number').each(function() {\n                    var newValue = Math.floor(100 * Math.random());\n                    $(this).data('easyPieChart').update(newValue);\n                    $('span', this).text(newValue);\n                });\n            });\n        },\n\n        initSparklineCharts: function() {\n            if (!jQuery().sparkline) {\n                return;\n            }\n            $(\"#sparkline_bar\").sparkline([8, 9, 10, 11, 10, 10, 12, 10, 10, 11, 9, 12, 11, 10, 9, 11, 13, 13, 12], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#f36a5b',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar2\").sparkline([9, 11, 12, 13, 12, 13, 10, 14, 13, 11, 11, 12, 11, 11, 10, 12, 11, 10], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#5c9bd1',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar5\").sparkline([8, 9, 10, 11, 10, 10, 12, 10, 10, 11, 9, 12, 11, 10, 9, 11, 13, 13, 12], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#35aa47',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar6\").sparkline([9, 11, 12, 13, 12, 13, 10, 14, 13, 11, 11, 12, 11, 11, 10, 12, 11, 10], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#ffb848',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_line\").sparkline([9, 10, 9, 10, 10, 11, 12, 10, 10, 11, 11, 12, 11, 10, 12, 11, 10, 12], {\n                type: 'line',\n                width: '100',\n                height: '55',\n                lineColor: '#ffb848'\n            });\n        },\n\n        initMorisCharts: function() {\n            if (Morris.EventEmitter && $('#sales_statistics').size() > 0) {\n                // Use Morris.Area instead of Morris.Line\n                dashboardMainChart = Morris.Area({\n                    element: 'sales_statistics',\n                    padding: 0,\n                    behaveLikeLine: false,\n                    gridEnabled: false,\n                    gridLineColor: false,\n                    axes: false,\n                    fillOpacity: 1,\n                    data: [{\n                        period: '2011 Q1',\n                        sales: 1400,\n                        profit: 400\n                    }, {\n                        period: '2011 Q2',\n                        sales: 1100,\n                        profit: 600\n                    }, {\n                        period: '2011 Q3',\n                        sales: 1600,\n                        profit: 500\n                    }, {\n                        period: '2011 Q4',\n                        sales: 1200,\n                        profit: 400\n                    }, {\n                        period: '2012 Q1',\n                        sales: 1550,\n                        profit: 800\n                    }],\n                    lineColors: ['#399a8c', '#92e9dc'],\n                    xkey: 'period',\n                    ykeys: ['sales', 'profit'],\n                    labels: ['Sales', 'Profit'],\n                    pointSize: 0,\n                    lineWidth: 0,\n                    hideHover: 'auto',\n                    resize: true\n                });\n\n            }\n        },\n\n        initChat: function() {\n            var cont = $('#chats');\n            var list = $('.chats', cont);\n            var form = $('.chat-form', cont);\n            var input = $('input', form);\n            var btn = $('.btn', form);\n\n            var handleClick = function(e) {\n                e.preventDefault();\n\n                var text = input.val();\n                if (text.length == 0) {\n                    return;\n                }\n\n                var time = new Date();\n                var time_str = (time.getHours() + ':' + time.getMinutes());\n                var tpl = '';\n                tpl += '<li class=\"out\">';\n                tpl += '<img class=\"avatar\" alt=\"\" src=\"' + Layout.getLayoutImgPath() + 'avatar1.jpg\"/>';\n                tpl += '<div class=\"message\">';\n                tpl += '<span class=\"arrow\"></span>';\n                tpl += '<a href=\"#\" class=\"name\">Bob Nilson</a>&nbsp;';\n                tpl += '<span class=\"datetime\">at ' + time_str + '</span>';\n                tpl += '<span class=\"body\">';\n                tpl += text;\n                tpl += '</span>';\n                tpl += '</div>';\n                tpl += '</li>';\n\n                var msg = list.append(tpl);\n                input.val(\"\");\n\n                var getLastPostPos = function() {\n                    var height = 0;\n                    cont.find(\"li.out, li.in\").each(function() {\n                        height = height + $(this).outerHeight();\n                    });\n\n                    return height;\n                }\n\n                cont.find('.scroller').slimScroll({\n                    scrollTo: getLastPostPos()\n                });\n            }\n\n            $('body').on('click', '.message .name', function(e) {\n                e.preventDefault(); // prevent click event\n\n                var name = $(this).text(); // get clicked user's full name\n                input.val('@' + name + ':'); // set it into the input field\n                App.scrollTo(input); // scroll to input if needed\n            });\n\n            btn.click(handleClick);\n\n            input.keypress(function(e) {\n                if (e.which == 13) {\n                    handleClick(e);\n                    return false; //<---- Add this line\n                }\n            });\n        },\n\n        initDashboardDaterange: function() {\n            if (!jQuery().daterangepicker) {\n                return;\n            }\n\n            $('#dashboard-report-range').daterangepicker({\n                \"ranges\": {\n                    'Today': [moment(), moment()],\n                    'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],\n                    'Last 7 Days': [moment().subtract('days', 6), moment()],\n                    'Last 30 Days': [moment().subtract('days', 29), moment()],\n                    'This Month': [moment().startOf('month'), moment().endOf('month')],\n                    'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]\n                },\n                \"locale\": {\n                    \"format\": \"MM/DD/YYYY\",\n                    \"separator\": \" - \",\n                    \"applyLabel\": \"Apply\",\n                    \"cancelLabel\": \"Cancel\",\n                    \"fromLabel\": \"From\",\n                    \"toLabel\": \"To\",\n                    \"customRangeLabel\": \"Custom\",\n                    \"daysOfWeek\": [\n                        \"Su\",\n                        \"Mo\",\n                        \"Tu\",\n                        \"We\",\n                        \"Th\",\n                        \"Fr\",\n                        \"Sa\"\n                    ],\n                    \"monthNames\": [\n                        \"January\",\n                        \"February\",\n                        \"March\",\n                        \"April\",\n                        \"May\",\n                        \"June\",\n                        \"July\",\n                        \"August\",\n                        \"September\",\n                        \"October\",\n                        \"November\",\n                        \"December\"\n                    ],\n                    \"firstDay\": 1\n                },\n                //\"startDate\": \"11/08/2015\",\n                //\"endDate\": \"11/14/2015\",\n                opens: (App.isRTL() ? 'right' : 'left'),\n            }, function(start, end, label) {\n                if ($('#dashboard-report-range').attr('data-display-range') != '0') {\n                    $('#dashboard-report-range span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n                }\n            });\n             if ($('#dashboard-report-range').attr('data-display-range') != '0') {\n                $('#dashboard-report-range span').html(moment().subtract('days', 29).format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));\n            }\n            $('#dashboard-report-range').show();\n        },\n\n        initAmChart1: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_1').size() === 0) {\n                return;\n            }\n\n            var chartData = [{\n                \"date\": \"2012-01-05\",\n                \"distance\": 480,\n                \"townName\": \"Miami\",\n                \"townName2\": \"Miami\",\n                \"townSize\": 10,\n                \"latitude\": 25.83,\n                \"duration\": 501\n            }, {\n                \"date\": \"2012-01-06\",\n                \"distance\": 386,\n                \"townName\": \"Tallahassee\",\n                \"townSize\": 7,\n                \"latitude\": 30.46,\n                \"duration\": 443\n            }, {\n                \"date\": \"2012-01-07\",\n                \"distance\": 348,\n                \"townName\": \"New Orleans\",\n                \"townSize\": 10,\n                \"latitude\": 29.94,\n                \"duration\": 405\n            }, {\n                \"date\": \"2012-01-08\",\n                \"distance\": 238,\n                \"townName\": \"Houston\",\n                \"townName2\": \"Houston\",\n                \"townSize\": 16,\n                \"latitude\": 29.76,\n                \"duration\": 309\n            }, {\n                \"date\": \"2012-01-09\",\n                \"distance\": 218,\n                \"townName\": \"Dalas\",\n                \"townSize\": 17,\n                \"latitude\": 32.8,\n                \"duration\": 287\n            }, {\n                \"date\": \"2012-01-10\",\n                \"distance\": 349,\n                \"townName\": \"Oklahoma City\",\n                \"townSize\": 11,\n                \"latitude\": 35.49,\n                \"duration\": 485\n            }, {\n                \"date\": \"2012-01-11\",\n                \"distance\": 603,\n                \"townName\": \"Kansas City\",\n                \"townSize\": 10,\n                \"latitude\": 39.1,\n                \"duration\": 890\n            }, {\n                \"date\": \"2012-01-12\",\n                \"distance\": 534,\n                \"townName\": \"Denver\",\n                \"townName2\": \"Denver\",\n                \"townSize\": 18,\n                \"latitude\": 39.74,\n                \"duration\": 810\n            }, {\n                \"date\": \"2012-01-13\",\n                \"townName\": \"Salt Lake City\",\n                \"townSize\": 12,\n                \"distance\": 425,\n                \"duration\": 670,\n                \"latitude\": 40.75,\n                \"alpha\": 0.4\n            }, {\n                \"date\": \"2012-01-14\",\n                \"latitude\": 36.1,\n                \"duration\": 470,\n                \"townName\": \"Las Vegas\",\n                \"townName2\": \"Las Vegas\",\n                \"bulletClass\": \"lastBullet\"\n            }, {\n                \"date\": \"2012-01-15\"\n            }];\n            var chart = AmCharts.makeChart(\"dashboard_amchart_1\", {\n                type: \"serial\",\n                fontSize: 12,\n                fontFamily: \"Open Sans\",\n                dataDateFormat: \"YYYY-MM-DD\",\n                dataProvider: chartData,\n\n                addClassNames: true,\n                startDuration: 1,\n                color: \"#6c7b88\",\n                marginLeft: 0,\n\n                categoryField: \"date\",\n                categoryAxis: {\n                    parseDates: true,\n                    minPeriod: \"DD\",\n                    autoGridCount: false,\n                    gridCount: 50,\n                    gridAlpha: 0.1,\n                    gridColor: \"#FFFFFF\",\n                    axisColor: \"#555555\",\n                    dateFormats: [{\n                        period: 'DD',\n                        format: 'DD'\n                    }, {\n                        period: 'WW',\n                        format: 'MMM DD'\n                    }, {\n                        period: 'MM',\n                        format: 'MMM'\n                    }, {\n                        period: 'YYYY',\n                        format: 'YYYY'\n                    }]\n                },\n\n                valueAxes: [{\n                    id: \"a1\",\n                    title: \"distance\",\n                    gridAlpha: 0,\n                    axisAlpha: 0\n                }, {\n                    id: \"a2\",\n                    position: \"right\",\n                    gridAlpha: 0,\n                    axisAlpha: 0,\n                    labelsEnabled: false\n                }, {\n                    id: \"a3\",\n                    title: \"duration\",\n                    position: \"right\",\n                    gridAlpha: 0,\n                    axisAlpha: 0,\n                    inside: true,\n                    duration: \"mm\",\n                    durationUnits: {\n                        DD: \"d. \",\n                        hh: \"h \",\n                        mm: \"min\",\n                        ss: \"\"\n                    }\n                }],\n                graphs: [{\n                    id: \"g1\",\n                    valueField: \"distance\",\n                    title: \"distance\",\n                    type: \"column\",\n                    fillAlphas: 0.7,\n                    valueAxis: \"a1\",\n                    balloonText: \"[[value]] miles\",\n                    legendValueText: \"[[value]] mi\",\n                    legendPeriodValueText: \"total: [[value.sum]] mi\",\n                    lineColor: \"#08a3cc\",\n                    alphaField: \"alpha\",\n                }, {\n                    id: \"g2\",\n                    valueField: \"latitude\",\n                    classNameField: \"bulletClass\",\n                    title: \"latitude/city\",\n                    type: \"line\",\n                    valueAxis: \"a2\",\n                    lineColor: \"#786c56\",\n                    lineThickness: 1,\n                    legendValueText: \"[[description]]/[[value]]\",\n                    descriptionField: \"townName\",\n                    bullet: \"round\",\n                    bulletSizeField: \"townSize\",\n                    bulletBorderColor: \"#02617a\",\n                    bulletBorderAlpha: 1,\n                    bulletBorderThickness: 2,\n                    bulletColor: \"#89c4f4\",\n                    labelText: \"[[townName2]]\",\n                    labelPosition: \"right\",\n                    balloonText: \"latitude:[[value]]\",\n                    showBalloon: true,\n                    animationPlayed: true,\n                }, {\n                    id: \"g3\",\n                    title: \"duration\",\n                    valueField: \"duration\",\n                    type: \"line\",\n                    valueAxis: \"a3\",\n                    lineAlpha: 0.8,\n                    lineColor: \"#e26a6a\",\n                    balloonText: \"[[value]]\",\n                    lineThickness: 1,\n                    legendValueText: \"[[value]]\",\n                    bullet: \"square\",\n                    bulletBorderColor: \"#e26a6a\",\n                    bulletBorderThickness: 1,\n                    bulletBorderAlpha: 0.8,\n                    dashLengthField: \"dashLength\",\n                    animationPlayed: true\n                }],\n\n                chartCursor: {\n                    zoomable: false,\n                    categoryBalloonDateFormat: \"DD\",\n                    cursorAlpha: 0,\n                    categoryBalloonColor: \"#e26a6a\",\n                    categoryBalloonAlpha: 0.8,\n                    valueBalloonsEnabled: false\n                },\n                legend: {\n                    bulletType: \"round\",\n                    equalWidths: false,\n                    valueWidth: 120,\n                    useGraphSettings: true,\n                    color: \"#6c7b88\"\n                }\n            });\n        },\n\n        initAmChart2: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_2').size() === 0) {\n                return;\n            }\n\n            // svg path for target icon\n            var targetSVG = \"M9,0C4.029,0,0,4.029,0,9s4.029,9,9,9s9-4.029,9-9S13.971,0,9,0z M9,15.93 c-3.83,0-6.93-3.1-6.93-6.93S5.17,2.07,9,2.07s6.93,3.1,6.93,6.93S12.83,15.93,9,15.93 M12.5,9c0,1.933-1.567,3.5-3.5,3.5S5.5,10.933,5.5,9S7.067,5.5,9,5.5 S12.5,7.067,12.5,9z\";\n            // svg path for plane icon\n            var planeSVG = \"M19.671,8.11l-2.777,2.777l-3.837-0.861c0.362-0.505,0.916-1.683,0.464-2.135c-0.518-0.517-1.979,0.278-2.305,0.604l-0.913,0.913L7.614,8.804l-2.021,2.021l2.232,1.061l-0.082,0.082l1.701,1.701l0.688-0.687l3.164,1.504L9.571,18.21H6.413l-1.137,1.138l3.6,0.948l1.83,1.83l0.947,3.598l1.137-1.137V21.43l3.725-3.725l1.504,3.164l-0.687,0.687l1.702,1.701l0.081-0.081l1.062,2.231l2.02-2.02l-0.604-2.689l0.912-0.912c0.326-0.326,1.121-1.789,0.604-2.306c-0.452-0.452-1.63,0.101-2.135,0.464l-0.861-3.838l2.777-2.777c0.947-0.947,3.599-4.862,2.62-5.839C24.533,4.512,20.618,7.163,19.671,8.11z\";\n\n            var map = AmCharts.makeChart(\"dashboard_amchart_2\", {\n                type: \"map\",\n                \"theme\": \"light\",\n                pathToImages: \"../assets/global/plugins/amcharts/ammap/images/\",\n\n                dataProvider: {\n                    map: \"worldLow\",\n                    linkToObject: \"london\",\n                    images: [{\n                            id: \"london\",\n                            color: \"#009dc7\",\n                            svgPath: targetSVG,\n                            title: \"London\",\n                            latitude: 51.5002,\n                            longitude: -0.1262,\n                            scale: 1.5,\n                            zoomLevel: 2.74,\n                            zoomLongitude: -20.1341,\n                            zoomLatitude: 49.1712,\n\n                            lines: [{\n                                latitudes: [51.5002, 50.4422],\n                                longitudes: [-0.1262, 30.5367]\n                            }, {\n                                latitudes: [51.5002, 46.9480],\n                                longitudes: [-0.1262, 7.4481]\n                            }, {\n                                latitudes: [51.5002, 59.3328],\n                                longitudes: [-0.1262, 18.0645]\n                            }, {\n                                latitudes: [51.5002, 40.4167],\n                                longitudes: [-0.1262, -3.7033]\n                            }, {\n                                latitudes: [51.5002, 46.0514],\n                                longitudes: [-0.1262, 14.5060]\n                            }, {\n                                latitudes: [51.5002, 48.2116],\n                                longitudes: [-0.1262, 17.1547]\n                            }, {\n                                latitudes: [51.5002, 44.8048],\n                                longitudes: [-0.1262, 20.4781]\n                            }, {\n                                latitudes: [51.5002, 55.7558],\n                                longitudes: [-0.1262, 37.6176]\n                            }, {\n                                latitudes: [51.5002, 38.7072],\n                                longitudes: [-0.1262, -9.1355]\n                            }, {\n                                latitudes: [51.5002, 54.6896],\n                                longitudes: [-0.1262, 25.2799]\n                            }, {\n                                latitudes: [51.5002, 64.1353],\n                                longitudes: [-0.1262, -21.8952]\n                            }, {\n                                latitudes: [51.5002, 40.4300],\n                                longitudes: [-0.1262, -74.0000]\n                            }],\n\n                            images: [{\n                                label: \"Flights from London\",\n                                svgPath: planeSVG,\n                                left: 100,\n                                top: 45,\n                                labelShiftY: 5,\n                                color: \"#d93d5e\",\n                                labelColor: \"#d93d5e\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 20\n                            }, {\n                                label: \"show flights from Vilnius\",\n                                left: 106,\n                                top: 70,\n                                labelColor: \"#6c7b88\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 11,\n                                linkToObject: \"vilnius\"\n                            }]\n                        },\n\n                        {\n                            id: \"vilnius\",\n                            color: \"#009dc7\",\n                            svgPath: targetSVG,\n                            title: \"Vilnius\",\n                            latitude: 54.6896,\n                            longitude: 25.2799,\n                            scale: 1.5,\n                            zoomLevel: 4.92,\n                            zoomLongitude: 15.4492,\n                            zoomLatitude: 50.2631,\n\n                            lines: [{\n                                latitudes: [54.6896, 50.8371],\n                                longitudes: [25.2799, 4.3676]\n                            }, {\n                                latitudes: [54.6896, 59.9138],\n                                longitudes: [25.2799, 10.7387]\n                            }, {\n                                latitudes: [54.6896, 40.4167],\n                                longitudes: [25.2799, -3.7033]\n                            }, {\n                                latitudes: [54.6896, 50.0878],\n                                longitudes: [25.2799, 14.4205]\n                            }, {\n                                latitudes: [54.6896, 48.2116],\n                                longitudes: [25.2799, 17.1547]\n                            }, {\n                                latitudes: [54.6896, 44.8048],\n                                longitudes: [25.2799, 20.4781]\n                            }, {\n                                latitudes: [54.6896, 55.7558],\n                                longitudes: [25.2799, 37.6176]\n                            }, {\n                                latitudes: [54.6896, 37.9792],\n                                longitudes: [25.2799, 23.7166]\n                            }, {\n                                latitudes: [54.6896, 54.6896],\n                                longitudes: [25.2799, 25.2799]\n                            }, {\n                                latitudes: [54.6896, 51.5002],\n                                longitudes: [25.2799, -0.1262]\n                            }, {\n                                latitudes: [54.6896, 53.3441],\n                                longitudes: [25.2799, -6.2675]\n                            }],\n\n                            images: [{\n                                label: \"Flights from Vilnius\",\n                                svgPath: planeSVG,\n                                left: 100,\n                                top: 45,\n                                labelShiftY: 5,\n                                color: \"#d93d5e\",\n                                labelColor: \"#d93d5e\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 20\n                            }, {\n                                label: \"show flights from London\",\n                                left: 106,\n                                top: 70,\n                                labelColor: \"#009dc7\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 11,\n                                linkToObject: \"london\"\n                            }]\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Brussels\",\n                            latitude: 50.8371,\n                            longitude: 4.3676\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Prague\",\n                            latitude: 50.0878,\n                            longitude: 14.4205\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Athens\",\n                            latitude: 37.9792,\n                            longitude: 23.7166\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Reykjavik\",\n                            latitude: 64.1353,\n                            longitude: -21.8952\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Dublin\",\n                            latitude: 53.3441,\n                            longitude: -6.2675\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Oslo\",\n                            latitude: 59.9138,\n                            longitude: 10.7387\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Lisbon\",\n                            latitude: 38.7072,\n                            longitude: -9.1355\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Moscow\",\n                            latitude: 55.7558,\n                            longitude: 37.6176\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Belgrade\",\n                            latitude: 44.8048,\n                            longitude: 20.4781\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Bratislava\",\n                            latitude: 48.2116,\n                            longitude: 17.1547\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Ljubljana\",\n                            latitude: 46.0514,\n                            longitude: 14.5060\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Madrid\",\n                            latitude: 40.4167,\n                            longitude: -3.7033\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Stockholm\",\n                            latitude: 59.3328,\n                            longitude: 18.0645\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Bern\",\n                            latitude: 46.9480,\n                            longitude: 7.4481\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Kiev\",\n                            latitude: 50.4422,\n                            longitude: 30.5367\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Paris\",\n                            latitude: 48.8567,\n                            longitude: 2.3510\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"New York\",\n                            latitude: 40.43,\n                            longitude: -74\n                        }\n                    ]\n                },\n\n                zoomControl: {\n                    buttonFillColor: \"#dddddd\"\n                },\n\n                areasSettings: {\n                    unlistedAreasColor: \"#15A892\"\n                },\n\n                imagesSettings: {\n                    color: \"#d93d5e\",\n                    rollOverColor: \"#d93d5e\",\n                    selectedColor: \"#009dc7\"\n                },\n\n                linesSettings: {\n                    color: \"#d93d5e\",\n                    alpha: 0.4\n                },\n\n\n                backgroundZoomsToTop: true,\n                linesAboveImages: true,\n\n                \"export\": {\n                    \"enabled\": true,\n                    \"libs\": {\n                        \"path\": \"http://www.amcharts.com/lib/3/plugins/export/libs/\"\n                    }\n                }\n            });\n        },\n\n        initAmChart3: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_3').size() === 0) {\n                return;\n            }\n\n            var chart = AmCharts.makeChart(\"dashboard_amchart_3\", {\n                \"type\": \"serial\",\n                \"addClassNames\": true,\n                \"theme\": \"light\",\n                \"path\": \"../assets/global/plugins/amcharts/ammap/images/\",\n                \"autoMargins\": false,\n                \"marginLeft\": 30,\n                \"marginRight\": 8,\n                \"marginTop\": 10,\n                \"marginBottom\": 26,\n                \"balloon\": {\n                    \"adjustBorderColor\": false,\n                    \"horizontalPadding\": 10,\n                    \"verticalPadding\": 8,\n                    \"color\": \"#ffffff\"\n                },\n\n                \"dataProvider\": [{\n                    \"year\": 2009,\n                    \"income\": 23.5,\n                    \"expenses\": 21.1\n                }, {\n                    \"year\": 2010,\n                    \"income\": 26.2,\n                    \"expenses\": 30.5\n                }, {\n                    \"year\": 2011,\n                    \"income\": 30.1,\n                    \"expenses\": 34.9\n                }, {\n                    \"year\": 2012,\n                    \"income\": 29.5,\n                    \"expenses\": 31.1\n                }, {\n                    \"year\": 2013,\n                    \"income\": 30.6,\n                    \"expenses\": 28.2,\n                }, {\n                    \"year\": 2014,\n                    \"income\": 34.1,\n                    \"expenses\": 32.9,\n                    \"dashLengthColumn\": 5,\n                    \"alpha\": 0.2,\n                    \"additional\": \"(projection)\"\n                }],\n                \"valueAxes\": [{\n                    \"axisAlpha\": 0,\n                    \"position\": \"left\"\n                }],\n                \"startDuration\": 1,\n                \"graphs\": [{\n                    \"alphaField\": \"alpha\",\n                    \"balloonText\": \"<span style='font-size:12px;'>[[title]] in [[category]]:<br><span style='font-size:20px;'>[[value]]</span> [[additional]]</span>\",\n                    \"fillAlphas\": 1,\n                    \"title\": \"Income\",\n                    \"type\": \"column\",\n                    \"valueField\": \"income\",\n                    \"dashLengthField\": \"dashLengthColumn\"\n                }, {\n                    \"id\": \"graph2\",\n                    \"balloonText\": \"<span style='font-size:12px;'>[[title]] in [[category]]:<br><span style='font-size:20px;'>[[value]]</span> [[additional]]</span>\",\n                    \"bullet\": \"round\",\n                    \"lineThickness\": 3,\n                    \"bulletSize\": 7,\n                    \"bulletBorderAlpha\": 1,\n                    \"bulletColor\": \"#FFFFFF\",\n                    \"useLineColorForBulletBorder\": true,\n                    \"bulletBorderThickness\": 3,\n                    \"fillAlphas\": 0,\n                    \"lineAlpha\": 1,\n                    \"title\": \"Expenses\",\n                    \"valueField\": \"expenses\"\n                }],\n                \"categoryField\": \"year\",\n                \"categoryAxis\": {\n                    \"gridPosition\": \"start\",\n                    \"axisAlpha\": 0,\n                    \"tickLength\": 0\n                },\n                \"export\": {\n                    \"enabled\": true\n                }\n            });\n        },\n\n        initAmChart4: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_4').size() === 0) {\n                return;\n            }\n\n            var chart = AmCharts.makeChart(\"dashboard_amchart_4\", {\n                \"type\": \"pie\",\n                \"theme\": \"light\",\n                \"path\": \"../assets/global/plugins/amcharts/ammap/images/\",\n                \"dataProvider\": [{\n                    \"country\": \"Lithuania\",\n                    \"value\": 260\n                }, {\n                    \"country\": \"Ireland\",\n                    \"value\": 201\n                }, {\n                    \"country\": \"Germany\",\n                    \"value\": 65\n                }, {\n                    \"country\": \"Australia\",\n                    \"value\": 39\n                }, {\n                    \"country\": \"UK\",\n                    \"value\": 19\n                }, {\n                    \"country\": \"Latvia\",\n                    \"value\": 10\n                }],\n                \"valueField\": \"value\",\n                \"titleField\": \"country\",\n                \"outlineAlpha\": 0.4,\n                \"depth3D\": 15,\n                \"balloonText\": \"[[title]]<br><span style='font-size:14px'><b>[[value]]</b> ([[percents]]%)</span>\",\n                \"angle\": 30,\n                \"export\": {\n                    \"enabled\": true\n                }\n            });\n            jQuery('.chart-input').off().on('input change', function() {\n                var property = jQuery(this).data('property');\n                var target = chart;\n                var value = Number(this.value);\n                chart.startDuration = 0;\n\n                if (property == 'innerRadius') {\n                    value += \"%\";\n                }\n\n                target[property] = value;\n                chart.validateNow();\n            });\n        },\n\n        initWorldMapStats: function() {\n            if ($('#mapplic').size() === 0) {\n                return;\n            }\n\n            $('#mapplic').mapplic({\n                source: '../assets/global/plugins/mapplic/world.json',\n                height: 265,\n                animate: false,\n                sidebar: false,\n                minimap: false,\n                locations: true,\n                deeplinking: true,\n                fullscreen: false,\n                hovertip: true,\n                zoombuttons: false,\n                clearbutton: false,\n                developer: false,\n                maxscale: 2,\n                skin: 'mapplic-dark',\n                zoom: true\n            });\n\n            $(\"#widget_sparkline_bar\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#4db3a4',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#widget_sparkline_bar2\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#f36a5a',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#widget_sparkline_bar3\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#5b9bd1',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#widget_sparkline_bar4\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#9a7caf',\n                negBarColor: '#e02222'\n            });\n        },\n\n        init: function() {\n\n            this.initJQVMAP();\n            this.initCalendar();\n            this.initCharts();\n            this.initEasyPieCharts();\n            this.initSparklineCharts();\n            this.initChat();\n            this.initDashboardDaterange();\n            this.initMorisCharts();\n\n            this.initAmChart1();\n            this.initAmChart2();\n            this.initAmChart3();\n            this.initAmChart4();\n\n            this.initWorldMapStats();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {\n        Dashboard.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ecommerce-dashboard.js",
    "content": "var EcommerceDashboard = function() {\n\n    function showTooltip(x, y, labelX, labelY) {\n        $('<div id=\"tooltip\" class=\"chart-tooltip\">' + (labelY.toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')) + 'USD<\\/div>').css({\n            position: 'absolute',\n            display: 'none',\n            top: y - 40,\n            left: x - 60,\n            border: '0px solid #ccc',\n            padding: '2px 6px',\n            'background-color': '#fff'\n        }).appendTo(\"body\").fadeIn(200);\n    }\n\n    var initChart1 = function() {\n\n        var data = [\n            ['01/2013', 4],\n            ['02/2013', 8],\n            ['03/2013', 10],\n            ['04/2013', 12],\n            ['05/2013', 2125],\n            ['06/2013', 324],\n            ['07/2013', 1223],\n            ['08/2013', 1365],\n            ['09/2013', 250],\n            ['10/2013', 999],\n            ['11/2013', 390]\n        ];\n\n        var plot_statistics = $.plot(\n            $(\"#statistics_1\"), [{\n                data: data,\n                lines: {\n                    fill: 0.6,\n                    lineWidth: 0\n                },\n                color: ['#f89f9f']\n            }, {\n                data: data,\n                points: {\n                    show: true,\n                    fill: true,\n                    radius: 5,\n                    fillColor: \"#f89f9f\",\n                    lineWidth: 3\n                },\n                color: '#fff',\n                shadowSize: 0\n            }], {\n\n                xaxis: {\n                    tickLength: 0,\n                    tickDecimals: 0,\n                    mode: \"categories\",\n                    min: 2,\n                    font: {\n                        lineHeight: 15,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                yaxis: {\n                    ticks: 3,\n                    tickDecimals: 0,\n                    tickColor: \"#f0f0f0\",\n                    font: {\n                        lineHeight: 15,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                grid: {\n                    backgroundColor: {\n                        colors: [\"#fff\", \"#fff\"]\n                    },\n                    borderWidth: 1,\n                    borderColor: \"#f0f0f0\",\n                    margin: 0,\n                    minBorderMargin: 0,\n                    labelMargin: 20,\n                    hoverable: true,\n                    clickable: true,\n                    mouseActiveRadius: 6\n                },\n                legend: {\n                    show: false\n                }\n            }\n        );\n\n        var previousPoint = null;\n\n        $(\"#statistics_1\").bind(\"plothover\", function(event, pos, item) {\n            $(\"#x\").text(pos.x.toFixed(2));\n            $(\"#y\").text(pos.y.toFixed(2));\n            if (item) {\n                if (previousPoint != item.dataIndex) {\n                    previousPoint = item.dataIndex;\n\n                    $(\"#tooltip\").remove();\n                    var x = item.datapoint[0].toFixed(2),\n                        y = item.datapoint[1].toFixed(2);\n\n                    showTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1]);\n                }\n            } else {\n                $(\"#tooltip\").remove();\n                previousPoint = null;\n            }\n        });\n\n    }\n\n    var initChart2 = function() {\n\n        var data = [\n            ['01/2013', 10],\n            ['02/2013', 0],\n            ['03/2013', 10],\n            ['04/2013', 12],\n            ['05/2013', 212],\n            ['06/2013', 324],\n            ['07/2013', 122],\n            ['08/2013', 136],\n            ['09/2013', 250],\n            ['10/2013', 99],\n            ['11/2013', 190]\n        ];\n\n        var plot_statistics = $.plot(\n            $(\"#statistics_2\"), [{\n                data: data,\n                lines: {\n                    fill: 0.6,\n                    lineWidth: 0\n                },\n                color: ['#BAD9F5']\n            }, {\n                data: data,\n                points: {\n                    show: true,\n                    fill: true,\n                    radius: 5,\n                    fillColor: \"#BAD9F5\",\n                    lineWidth: 3\n                },\n                color: '#fff',\n                shadowSize: 0\n            }], {\n\n                xaxis: {\n                    tickLength: 0,\n                    tickDecimals: 0,\n                    mode: \"categories\",\n                    min: 2,\n                    font: {\n                        lineHeight: 14,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                yaxis: {\n                    ticks: 3,\n                    tickDecimals: 0,\n                    tickColor: \"#f0f0f0\",\n                    font: {\n                        lineHeight: 14,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                grid: {\n                    backgroundColor: {\n                        colors: [\"#fff\", \"#fff\"]\n                    },\n                    borderWidth: 1,\n                    borderColor: \"#f0f0f0\",\n                    margin: 0,\n                    minBorderMargin: 0,\n                    labelMargin: 20,\n                    hoverable: true,\n                    clickable: true,\n                    mouseActiveRadius: 6\n                },\n                legend: {\n                    show: false\n                }\n            }\n        );\n\n        var previousPoint = null;\n\n        $(\"#statistics_2\").bind(\"plothover\", function(event, pos, item) {\n            $(\"#x\").text(pos.x.toFixed(2));\n            $(\"#y\").text(pos.y.toFixed(2));\n            if (item) {\n                if (previousPoint != item.dataIndex) {\n                    previousPoint = item.dataIndex;\n\n                    $(\"#tooltip\").remove();\n                    var x = item.datapoint[0].toFixed(2),\n                        y = item.datapoint[1].toFixed(2);\n\n                    showTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1]);\n                }\n            } else {\n                $(\"#tooltip\").remove();\n                previousPoint = null;\n            }\n        });\n\n    }\n\n    return {\n\n        //main function\n        init: function() {\n            initChart1();\n\n            $('#statistics_orders_tab').on('shown.bs.tab', function(e) {\n                initChart2();\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceDashboard.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ecommerce-orders-view.js",
    "content": "var EcommerceOrdersView = function () {\n\n\n    var handleInvoices = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_invoices\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [19, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_invoices.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n    }\n\n    var handleCreditMemos = function () {\n\n        var grid = new Datatable();\n        \n        grid.init({\n            src: $(\"#datatable_credit_memos\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_credit_memos.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n    }\n\n    var handleShipment = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_shipment\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_shipment.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n    }\n\n    var handleHistory = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_history\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_history.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n    }\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n\n        $(\".datetime-picker\").datetimepicker({\n            isRTL: App.isRTL(),\n            autoclose: true,\n            todayBtn: true,\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            minuteStep: 10\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            initPickers();\n\n            handleInvoices();\n            handleCreditMemos();\n            handleShipment();\n            handleHistory();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceOrdersView.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ecommerce-orders.js",
    "content": "var EcommerceOrders = function () {\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n    }\n\n    var handleOrders = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_orders\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_orders.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            initPickers();\n            handleOrders();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceOrders.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ecommerce-products-edit.js",
    "content": "var EcommerceProductsEdit = function () {\n\n    var handleImages = function() {\n\n        // see http://www.plupload.com/\n        var uploader = new plupload.Uploader({\n            runtimes : 'html5,flash,silverlight,html4',\n             \n            browse_button : document.getElementById('tab_images_uploader_pickfiles'), // you can pass in id...\n            container: document.getElementById('tab_images_uploader_container'), // ... or DOM Element itself\n             \n            url : \"assets/plugins/plupload/examples/upload.php\",\n             \n            filters : {\n                max_file_size : '10mb',\n                mime_types: [\n                    {title : \"Image files\", extensions : \"jpg,gif,png\"},\n                    {title : \"Zip files\", extensions : \"zip\"}\n                ]\n            },\n         \n            // Flash settings\n            flash_swf_url : 'assets/plugins/plupload/js/Moxie.swf',\n     \n            // Silverlight settings\n            silverlight_xap_url : 'assets/plugins/plupload/js/Moxie.xap',             \n         \n            init: {\n                PostInit: function() {\n                    $('#tab_images_uploader_filelist').html(\"\");\n         \n                    $('#tab_images_uploader_uploadfiles').click(function() {\n                        uploader.start();\n                        return false;\n                    });\n\n                    $('#tab_images_uploader_filelist').on('click', '.added-files .remove', function(){\n                        uploader.removeFile($(this).parent('.added-files').attr(\"id\"));    \n                        $(this).parent('.added-files').remove();                     \n                    });\n                },\n         \n                FilesAdded: function(up, files) {\n                    plupload.each(files, function(file) {\n                        $('#tab_images_uploader_filelist').append('<div class=\"alert alert-warning added-files\" id=\"uploaded_file_' + file.id + '\">' + file.name + '(' + plupload.formatSize(file.size) + ') <span class=\"status label label-info\"></span>&nbsp;<a href=\"javascript:;\" style=\"margin-top:-5px\" class=\"remove pull-right btn btn-sm red\"><i class=\"fa fa-times\"></i> remove</a></div>');\n                    });\n                },\n         \n                UploadProgress: function(up, file) {\n                    $('#uploaded_file_' + file.id + ' > .status').html(file.percent + '%');\n                },\n\n                FileUploaded: function(up, file, response) {\n                    var response = $.parseJSON(response.response);\n\n                    if (response.result && response.result == 'OK') {\n                        var id = response.id; // uploaded file's unique name. Here you can collect uploaded file names and submit an jax request to your server side script to process the uploaded files and update the images tabke\n\n                        $('#uploaded_file_' + file.id + ' > .status').removeClass(\"label-info\").addClass(\"label-success\").html('<i class=\"fa fa-check\"></i> Done'); // set successfull upload\n                    } else {\n                        $('#uploaded_file_' + file.id + ' > .status').removeClass(\"label-info\").addClass(\"label-danger\").html('<i class=\"fa fa-warning\"></i> Failed'); // set failed upload\n                        App.alert({type: 'danger', message: 'One of uploads failed. Please retry.', closeInSeconds: 10, icon: 'warning'});\n                    }\n                },\n         \n                Error: function(up, err) {\n                    App.alert({type: 'danger', message: err.message, closeInSeconds: 10, icon: 'warning'});\n                }\n            }\n        });\n\n        uploader.init();\n\n    }\n\n    var handleReviews = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_reviews\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_product_reviews.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n    }\n\n    var handleHistory = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_history\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_product_history.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n    } \n\n    var initComponents = function () {\n        //init datepickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n\n        //init datetimepickers\n        $(\".datetime-picker\").datetimepicker({\n            isRTL: App.isRTL(),\n            autoclose: true,\n            todayBtn: true,\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            minuteStep: 10\n        });\n\n        //init maxlength handler\n        $('.maxlength-handler').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            threshold: 5\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            initComponents();\n\n            handleImages();\n            handleReviews();\n            handleHistory();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceProductsEdit.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ecommerce-products.js",
    "content": "var EcommerceProducts = function () {\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n    }\n\n    var handleProducts = function() {\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_products\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150],\n                    [10, 20, 50, 100, 150] // change per page values here \n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_products.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n         // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            handleProducts();\n            initPickers();\n            \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceProducts.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-dropzone.js",
    "content": "var FormDropzone = function () {\n\n\n    return {\n        //main function to initiate the module\n        init: function () {  \n\n            Dropzone.options.myDropzone = {\n                dictDefaultMessage: \"\",\n                init: function() {\n                    this.on(\"addedfile\", function(file) {\n                        // Create the remove button\n                        var removeButton = Dropzone.createElement(\"<a href='javascript:;'' class='btn red btn-sm btn-block'>Remove</a>\");\n                        \n                        // Capture the Dropzone instance as closure.\n                        var _this = this;\n\n                        // Listen to the click event\n                        removeButton.addEventListener(\"click\", function(e) {\n                          // Make sure the button click doesn't submit the form:\n                          e.preventDefault();\n                          e.stopPropagation();\n\n                          // Remove the file preview.\n                          _this.removeFile(file);\n                          // If you want to the delete the file on the server as well,\n                          // you can do the AJAX request here.\n                        });\n\n                        // Add the button to the file preview element.\n                        file.previewElement.appendChild(removeButton);\n                    });\n                }            \n            }\n        }\n    };\n}();\n\njQuery(document).ready(function() {    \n   FormDropzone.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-editable.js",
    "content": "var FormEditable = function() {\n\n    $.mockjaxSettings.responseTime = 500;\n\n    var log = function(settings, response) {\n        var s = [],\n            str;\n        s.push(settings.type.toUpperCase() + ' url = \"' + settings.url + '\"');\n        for (var a in settings.data) {\n            if (settings.data[a] && typeof settings.data[a] === 'object') {\n                str = [];\n                for (var j in settings.data[a]) {\n                    str.push(j + ': \"' + settings.data[a][j] + '\"');\n                }\n                str = '{ ' + str.join(', ') + ' }';\n            } else {\n                str = '\"' + settings.data[a] + '\"';\n            }\n            s.push(a + ' = ' + str);\n        }\n        s.push('RESPONSE: status = ' + response.status);\n\n        if (response.responseText) {\n            if ($.isArray(response.responseText)) {\n                s.push('[');\n                $.each(response.responseText, function(i, v) {\n                    s.push('{value: ' + v.value + ', text: \"' + v.text + '\"}');\n                });\n                s.push(']');\n            } else {\n                s.push($.trim(response.responseText));\n            }\n        }\n        s.push('--------------------------------------\\n');\n        $('#console').val(s.join('\\n') + $('#console').val());\n    }\n\n    var initAjaxMock = function() {\n        //ajax mocks\n\n        $.mockjax({\n            url: '/post',\n            response: function(settings) {\n                log(settings, this);\n            }\n        });\n\n        $.mockjax({\n            url: '/error',\n            status: 400,\n            statusText: 'Bad Request',\n            response: function(settings) {\n                this.responseText = 'Please input correct value';\n                log(settings, this);\n            }\n        });\n\n        $.mockjax({\n            url: '/status',\n            status: 500,\n            response: function(settings) {\n                this.responseText = 'Internal Server Error';\n                log(settings, this);\n            }\n        });\n\n        $.mockjax({\n            url: '/groups',\n            response: function(settings) {\n                this.responseText = [{\n                    value: 0,\n                    text: 'Guest'\n                }, {\n                    value: 1,\n                    text: 'Service'\n                }, {\n                    value: 2,\n                    text: 'Customer'\n                }, {\n                    value: 3,\n                    text: 'Operator'\n                }, {\n                    value: 4,\n                    text: 'Support'\n                }, {\n                    value: 5,\n                    text: 'Admin'\n                }];\n                log(settings, this);\n            }\n        });\n\n    }\n\n    var initEditables = function() {\n\n        //set editable mode based on URL parameter\n        if (App.getURLParameter('mode') == 'inline') {\n            $.fn.editable.defaults.mode = 'inline';\n            $('#inline').attr(\"checked\", true);\n        } else {\n            $('#inline').attr(\"checked\", false);\n        }\n\n        //global settings \n        $.fn.editable.defaults.inputclass = 'form-control';\n        $.fn.editable.defaults.url = '/post';\n\n        //editables element samples \n        $('#username').editable({\n            url: '/post',\n            type: 'text',\n            pk: 1,\n            name: 'username',\n            title: 'Enter username'\n        });\n\n        $('#firstname').editable({\n            validate: function(value) {\n                if ($.trim(value) == '') return 'This field is required';\n            }\n        });\n\n        $('#sex').editable({\n            prepend: \"not selected\",\n            inputclass: 'form-control',\n            source: [{\n                value: 1,\n                text: 'Male'\n            }, {\n                value: 2,\n                text: 'Female'\n            }],\n            display: function(value, sourceData) {\n                var colors = {\n                        \"\": \"gray\",\n                        1: \"green\",\n                        2: \"blue\"\n                    },\n                    elem = $.grep(sourceData, function(o) {\n                        return o.value == value;\n                    });\n\n                if (elem.length) {\n                    $(this).text(elem[0].text).css(\"color\", colors[value]);\n                } else {\n                    $(this).empty();\n                }\n            }\n        });\n\n        $('#status').editable();\n\n        $('#group').editable({\n            showbuttons: false\n        });\n\n        $('#vacation').editable({\n            rtl: App.isRTL()\n        });\n\n        $('#dob').editable({\n            inputclass: 'form-control',\n        });\n\n        $('#event').editable({\n            placement: (App.isRTL() ? 'left' : 'right'),\n            combodate: {\n                firstItem: 'name'\n            }\n        });\n\n        $('#meeting_start').editable({\n            format: 'yyyy-mm-dd hh:ii',\n            viewformat: 'dd/mm/yyyy hh:ii',\n            validate: function(v) {\n                if (v && v.getDate() == 10) return 'Day cant be 10!';\n            },\n            datetimepicker: {\n                rtl: App.isRTL(),\n                todayBtn: 'linked',\n                weekStart: 1\n            }\n        });\n\n        $('#comments').editable({\n            showbuttons: 'bottom'\n        });\n\n        $('#note').editable({\n            showbuttons: (App.isRTL() ? 'left' : 'right')\n        });\n\n        $('#pencil').click(function(e) {\n            e.stopPropagation();\n            e.preventDefault();\n            $('#note').editable('toggle');\n        });\n\n        $('#state').editable({\n            source: [\"Alabama\", \"Alaska\", \"Arizona\", \"Arkansas\", \"California\", \"Colorado\", \"Connecticut\", \"Delaware\", \"Florida\", \"Georgia\", \"Hawaii\", \"Idaho\", \"Illinois\", \"Indiana\", \"Iowa\", \"Kansas\", \"Kentucky\", \"Louisiana\", \"Maine\", \"Maryland\", \"Massachusetts\", \"Michigan\", \"Minnesota\", \"Mississippi\", \"Missouri\", \"Montana\", \"Nebraska\", \"Nevada\", \"New Hampshire\", \"New Jersey\", \"New Mexico\", \"New York\", \"North Dakota\", \"North Carolina\", \"Ohio\", \"Oklahoma\", \"Oregon\", \"Pennsylvania\", \"Rhode Island\", \"South Carolina\", \"South Dakota\", \"Tennessee\", \"Texas\", \"Utah\", \"Vermont\", \"Virginia\", \"Washington\", \"West Virginia\", \"Wisconsin\", \"Wyoming\"]\n        });\n\n        $('#fruits').editable({\n            pk: 1,\n            limit: 3,\n            source: [{\n                value: 1,\n                text: 'banana'\n            }, {\n                value: 2,\n                text: 'peach'\n            }, {\n                value: 3,\n                text: 'apple'\n            }, {\n                value: 4,\n                text: 'watermelon'\n            }, {\n                value: 5,\n                text: 'orange'\n            }]\n        });\n\n        $('#fruits').on('shown', function(e, reason) {\n            \n        });\n\n        $('#tags').editable({\n            inputclass: 'form-control input-medium',\n            select2: {\n                data: ['html', 'javascript', 'css', 'ajax'],\n                tags: true,\n                tokenSeparators: [','], \n                multiple: true\n            }\n        });\n\n        var countries = [];\n        $.each({\n            \"BD\": \"Bangladesh\",\n            \"BE\": \"Belgium\",\n            \"BF\": \"Burkina Faso\",\n            \"BG\": \"Bulgaria\",\n            \"BA\": \"Bosnia and Herzegovina\",\n            \"BB\": \"Barbados\",\n            \"WF\": \"Wallis and Futuna\",\n            \"BL\": \"Saint Bartelemey\",\n            \"BM\": \"Bermuda\",\n            \"BN\": \"Brunei Darussalam\",\n            \"BO\": \"Bolivia\",\n            \"BH\": \"Bahrain\",\n            \"BI\": \"Burundi\",\n            \"BJ\": \"Benin\",\n            \"BT\": \"Bhutan\",\n            \"JM\": \"Jamaica\",\n            \"BV\": \"Bouvet Island\",\n            \"BW\": \"Botswana\",\n            \"WS\": \"Samoa\",\n            \"BR\": \"Brazil\",\n            \"BS\": \"Bahamas\",\n            \"JE\": \"Jersey\",\n            \"BY\": \"Belarus\",\n            \"O1\": \"Other Country\",\n            \"LV\": \"Latvia\",\n            \"RW\": \"Rwanda\",\n            \"RS\": \"Serbia\",\n            \"TL\": \"Timor-Leste\",\n            \"RE\": \"Reunion\",\n            \"LU\": \"Luxembourg\",\n            \"TJ\": \"Tajikistan\",\n            \"RO\": \"Romania\",\n            \"PG\": \"Papua New Guinea\",\n            \"GW\": \"Guinea-Bissau\",\n            \"GU\": \"Guam\",\n            \"GT\": \"Guatemala\",\n            \"GS\": \"South Georgia and the South Sandwich Islands\",\n            \"GR\": \"Greece\",\n            \"GQ\": \"Equatorial Guinea\",\n            \"GP\": \"Guadeloupe\",\n            \"JP\": \"Japan\",\n            \"GY\": \"Guyana\",\n            \"GG\": \"Guernsey\",\n            \"GF\": \"French Guiana\",\n            \"GE\": \"Georgia\",\n            \"GD\": \"Grenada\",\n            \"GB\": \"United Kingdom\",\n            \"GA\": \"Gabon\",\n            \"SV\": \"El Salvador\",\n            \"GN\": \"Guinea\",\n            \"GM\": \"Gambia\",\n            \"GL\": \"Greenland\",\n            \"GI\": \"Gibraltar\",\n            \"GH\": \"Ghana\",\n            \"OM\": \"Oman\",\n            \"TN\": \"Tunisia\",\n            \"JO\": \"Jordan\",\n            \"HR\": \"Croatia\",\n            \"HT\": \"Haiti\",\n            \"HU\": \"Hungary\",\n            \"HK\": \"Hong Kong\",\n            \"HN\": \"Honduras\",\n            \"HM\": \"Heard Island and McDonald Islands\",\n            \"VE\": \"Venezuela\",\n            \"PR\": \"Puerto Rico\",\n            \"PS\": \"Palestinian Territory\",\n            \"PW\": \"Palau\",\n            \"PT\": \"Portugal\",\n            \"SJ\": \"Svalbard and Jan Mayen\",\n            \"PY\": \"Paraguay\",\n            \"IQ\": \"Iraq\",\n            \"PA\": \"Panama\",\n            \"PF\": \"French Polynesia\",\n            \"BZ\": \"Belize\",\n            \"PE\": \"Peru\",\n            \"PK\": \"Pakistan\",\n            \"PH\": \"Philippines\",\n            \"PN\": \"Pitcairn\",\n            \"TM\": \"Turkmenistan\",\n            \"PL\": \"Poland\",\n            \"PM\": \"Saint Pierre and Miquelon\",\n            \"ZM\": \"Zambia\",\n            \"EH\": \"Western Sahara\",\n            \"RU\": \"Russian Federation\",\n            \"EE\": \"Estonia\",\n            \"EG\": \"Egypt\",\n            \"TK\": \"Tokelau\",\n            \"ZA\": \"South Africa\",\n            \"EC\": \"Ecuador\",\n            \"IT\": \"Italy\",\n            \"VN\": \"Vietnam\",\n            \"SB\": \"Solomon Islands\",\n            \"EU\": \"Europe\",\n            \"ET\": \"Ethiopia\",\n            \"SO\": \"Somalia\",\n            \"ZW\": \"Zimbabwe\",\n            \"SA\": \"Saudi Arabia\",\n            \"ES\": \"Spain\",\n            \"ER\": \"Eritrea\",\n            \"ME\": \"Montenegro\",\n            \"MD\": \"Moldova, Republic of\",\n            \"MG\": \"Madagascar\",\n            \"MF\": \"Saint Martin\",\n            \"MA\": \"Morocco\",\n            \"MC\": \"Monaco\",\n            \"UZ\": \"Uzbekistan\",\n            \"MM\": \"Myanmar\",\n            \"ML\": \"Mali\",\n            \"MO\": \"Macao\",\n            \"MN\": \"Mongolia\",\n            \"MH\": \"Marshall Islands\",\n            \"MK\": \"Macedonia\",\n            \"MU\": \"Mauritius\",\n            \"MT\": \"Malta\",\n            \"MW\": \"Malawi\",\n            \"MV\": \"Maldives\",\n            \"MQ\": \"Martinique\",\n            \"MP\": \"Northern Mariana Islands\",\n            \"MS\": \"Montserrat\",\n            \"MR\": \"Mauritania\",\n            \"IM\": \"Isle of Man\",\n            \"UG\": \"Uganda\",\n            \"TZ\": \"Tanzania, United Republic of\",\n            \"MY\": \"Malaysia\",\n            \"MX\": \"Mexico\",\n            \"IL\": \"Israel\",\n            \"FR\": \"France\",\n            \"IO\": \"British Indian Ocean Territory\",\n            \"FX\": \"France, Metropolitan\",\n            \"SH\": \"Saint Helena\",\n            \"FI\": \"Finland\",\n            \"FJ\": \"Fiji\",\n            \"FK\": \"Falkland Islands (Malvinas)\",\n            \"FM\": \"Micronesia, Federated States of\",\n            \"FO\": \"Faroe Islands\",\n            \"NI\": \"Nicaragua\",\n            \"NL\": \"Netherlands\",\n            \"NO\": \"Norway\",\n            \"NA\": \"Namibia\",\n            \"VU\": \"Vanuatu\",\n            \"NC\": \"New Caledonia\",\n            \"NE\": \"Niger\",\n            \"NF\": \"Norfolk Island\",\n            \"NG\": \"Nigeria\",\n            \"NZ\": \"New Zealand\",\n            \"NP\": \"Nepal\",\n            \"NR\": \"Nauru\",\n            \"NU\": \"Niue\",\n            \"CK\": \"Cook Islands\",\n            \"CI\": \"Cote d'Ivoire\",\n            \"CH\": \"Switzerland\",\n            \"CO\": \"Colombia\",\n            \"CN\": \"China\",\n            \"CM\": \"Cameroon\",\n            \"CL\": \"Chile\",\n            \"CC\": \"Cocos (Keeling) Islands\",\n            \"CA\": \"Canada\",\n            \"CG\": \"Congo\",\n            \"CF\": \"Central African Republic\",\n            \"CD\": \"Congo, The Democratic Republic of the\",\n            \"CZ\": \"Czech Republic\",\n            \"CY\": \"Cyprus\",\n            \"CX\": \"Christmas Island\",\n            \"CR\": \"Costa Rica\",\n            \"CV\": \"Cape Verde\",\n            \"CU\": \"Cuba\",\n            \"SZ\": \"Swaziland\",\n            \"SY\": \"Syrian Arab Republic\",\n            \"KG\": \"Kyrgyzstan\",\n            \"KE\": \"Kenya\",\n            \"SR\": \"Suriname\",\n            \"KI\": \"Kiribati\",\n            \"KH\": \"Cambodia\",\n            \"KN\": \"Saint Kitts and Nevis\",\n            \"KM\": \"Comoros\",\n            \"ST\": \"Sao Tome and Principe\",\n            \"SK\": \"Slovakia\",\n            \"KR\": \"Korea, Republic of\",\n            \"SI\": \"Slovenia\",\n            \"KP\": \"Korea, Democratic People's Republic of\",\n            \"KW\": \"Kuwait\",\n            \"SN\": \"Senegal\",\n            \"SM\": \"San Marino\",\n            \"SL\": \"Sierra Leone\",\n            \"SC\": \"Seychelles\",\n            \"KZ\": \"Kazakhstan\",\n            \"KY\": \"Cayman Islands\",\n            \"SG\": \"Singapore\",\n            \"SE\": \"Sweden\",\n            \"SD\": \"Sudan\",\n            \"DO\": \"Dominican Republic\",\n            \"DM\": \"Dominica\",\n            \"DJ\": \"Djibouti\",\n            \"DK\": \"Denmark\",\n            \"VG\": \"Virgin Islands, British\",\n            \"DE\": \"Germany\",\n            \"YE\": \"Yemen\",\n            \"DZ\": \"Algeria\",\n            \"US\": \"United States\",\n            \"UY\": \"Uruguay\",\n            \"YT\": \"Mayotte\",\n            \"UM\": \"United States Minor Outlying Islands\",\n            \"LB\": \"Lebanon\",\n            \"LC\": \"Saint Lucia\",\n            \"LA\": \"Lao People's Democratic Republic\",\n            \"TV\": \"Tuvalu\",\n            \"TW\": \"Taiwan\",\n            \"TT\": \"Trinidad and Tobago\",\n            \"TR\": \"Turkey\",\n            \"LK\": \"Sri Lanka\",\n            \"LI\": \"Liechtenstein\",\n            \"A1\": \"Anonymous Proxy\",\n            \"TO\": \"Tonga\",\n            \"LT\": \"Lithuania\",\n            \"A2\": \"Satellite Provider\",\n            \"LR\": \"Liberia\",\n            \"LS\": \"Lesotho\",\n            \"TH\": \"Thailand\",\n            \"TF\": \"French Southern Territories\",\n            \"TG\": \"Togo\",\n            \"TD\": \"Chad\",\n            \"TC\": \"Turks and Caicos Islands\",\n            \"LY\": \"Libyan Arab Jamahiriya\",\n            \"VA\": \"Holy See (Vatican City State)\",\n            \"VC\": \"Saint Vincent and the Grenadines\",\n            \"AE\": \"United Arab Emirates\",\n            \"AD\": \"Andorra\",\n            \"AG\": \"Antigua and Barbuda\",\n            \"AF\": \"Afghanistan\",\n            \"AI\": \"Anguilla\",\n            \"VI\": \"Virgin Islands, U.S.\",\n            \"IS\": \"Iceland\",\n            \"IR\": \"Iran, Islamic Republic of\",\n            \"AM\": \"Armenia\",\n            \"AL\": \"Albania\",\n            \"AO\": \"Angola\",\n            \"AN\": \"Netherlands Antilles\",\n            \"AQ\": \"Antarctica\",\n            \"AP\": \"Asia/Pacific Region\",\n            \"AS\": \"American Samoa\",\n            \"AR\": \"Argentina\",\n            \"AU\": \"Australia\",\n            \"AT\": \"Austria\",\n            \"AW\": \"Aruba\",\n            \"IN\": \"India\",\n            \"AX\": \"Aland Islands\",\n            \"AZ\": \"Azerbaijan\",\n            \"IE\": \"Ireland\",\n            \"ID\": \"Indonesia\",\n            \"UA\": \"Ukraine\",\n            \"QA\": \"Qatar\",\n            \"MZ\": \"Mozambique\"\n        }, function(k, v) {\n            countries.push({\n                id: k,\n                text: v\n            });\n        });\n\n        $('#country').editable({\n            inputclass: 'form-control input-medium',\n            source: countries\n        });\n\n        $('#address').editable({\n            url: '/post',\n            value: {\n                city: \"San Francisco\",\n                street: \"Valencia\",\n                building: \"#24\"\n            },\n            validate: function(value) {\n                if (value.city == '') return 'city is required!';\n            },\n            display: function(value) {\n                if (!value) {\n                    $(this).empty();\n                    return;\n                }\n                var html = '<b>' + $('<div>').text(value.city).html() + '</b>, ' + $('<div>').text(value.street).html() + ' st., bld. ' + $('<div>').text(value.building).html();\n                $(this).html(html);\n            }\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n\n            // inii ajax simulation\n            initAjaxMock();\n\n            // init editable elements\n            initEditables();\n\n            // init editable toggler\n            $('#enable').click(function() {\n                $('#user .editable').editable('toggleDisabled');\n            });\n\n            // init \n            $('#inline').on('change', function(e) {\n                if ($(this).is(':checked')) {\n                    window.location.href = 'form_editable.html?mode=inline';\n                } else {\n                    window.location.href = 'form_editable.html';\n                }\n            });\n\n            // handle editable elements on hidden event fired\n            $('#user .editable').on('hidden', function(e, reason) {\n                if (reason === 'save' || reason === 'nochange') {\n                    var $next = $(this).closest('tr').next().find('.editable');\n                    if ($('#autoopen').is(':checked')) {\n                        setTimeout(function() {\n                            $next.editable('show');\n                        }, 300);\n                    } else {\n                        $next.focus();\n                    }\n                }\n            });\n\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormEditable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-fileupload.js",
    "content": "var FormFileUpload = function () {\n    return {\n        //main function to initiate the module\n        init: function () {\n\n             // Initialize the jQuery File Upload widget:\n            $('#fileupload').fileupload({\n                disableImageResize: false,\n                autoUpload: false,\n                disableImageResize: /Android(?!.*Chrome)|Opera/.test(window.navigator.userAgent),\n                maxFileSize: 5000000,\n                acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i,\n                // Uncomment the following to send cross-domain cookies:\n                //xhrFields: {withCredentials: true},                \n            });\n\n            // Enable iframe cross-domain access via redirect option:\n            $('#fileupload').fileupload(\n                'option',\n                'redirect',\n                window.location.href.replace(\n                    /\\/[^\\/]*$/,\n                    '/cors/result.html?%s'\n                )\n            );\n\n            // Upload server status check for browsers with CORS support:\n            if ($.support.cors) {\n                $.ajax({\n                    type: 'HEAD'\n                }).fail(function () {\n                    $('<div class=\"alert alert-danger\"/>')\n                        .text('Upload server currently unavailable - ' +\n                                new Date())\n                        .appendTo('#fileupload');\n                });\n            }\n\n            // Load & display existing files:\n            $('#fileupload').addClass('fileupload-processing');\n            $.ajax({\n                // Uncomment the following to send cross-domain cookies:\n                //xhrFields: {withCredentials: true},\n                url: $('#fileupload').attr(\"action\"),\n                dataType: 'json',\n                context: $('#fileupload')[0]\n            }).always(function () {\n                $(this).removeClass('fileupload-processing');\n            }).done(function (result) {\n                $(this).fileupload('option', 'done')\n                .call(this, $.Event('done'), {result: result});\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormFileUpload.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-icheck.js",
    "content": "var FormiCheck = function () {\n    return {\n        //main function to initiate the module\n        init: function () {  \n\n            $('.icheck-colors li').click(function() {\n              var self = $(this);\n\n              if (!self.hasClass('active')) {\n                  self.siblings().removeClass('active');\n\n                var skin = self.closest('.skin'),\n                  color = self.attr('class') ? '-' + self.attr('class') : '',\n                  colorTmp = skin.data('color') ? '-' + skin.data('color') : '-grey',\n                  colorTmp = (colorTmp === '-black' ? '' : colorTmp);\n\n                  checkbox_default = 'icheckbox_minimal',\n                  radio_default = 'iradio_minimal',\n                  checkbox = 'icheckbox_minimal' + colorTmp,\n                  radio = 'iradio_minimal' + colorTmp;\n\n                if (skin.hasClass('skin-square')) {\n                  checkbox_default = 'icheckbox_square';\n                  radio_default = 'iradio_square';\n                  checkbox = 'icheckbox_square' + colorTmp;\n                  radio = 'iradio_square'  + colorTmp;\n                };\n\n                if (skin.hasClass('skin-flat')) {\n                  checkbox_default = 'icheckbox_flat';\n                  radio_default = 'iradio_flat';\n                  checkbox = 'icheckbox_flat' + colorTmp;\n                  radio = 'iradio_flat'  + colorTmp;\n                };\n\n                if (skin.hasClass('skin-line')) {\n                  checkbox_default = 'icheckbox_line';\n                  radio_default = 'iradio_line';\n                  checkbox = 'icheckbox_line' + colorTmp;\n                  radio = 'iradio_line'  + colorTmp;\n                };\n\n                skin.find('.icheck').each(function() {\n                  var element = $(this).hasClass('state') ? $(this) : $(this).parent();\n                  var element_class = element.attr('class').replace(checkbox, checkbox_default + color).replace(radio, radio_default + color);\n                  element.attr('class', element_class);\n                });\n\n                skin.data('color', self.attr('class') ? self.attr('class') : 'black');\n                self.addClass('active');\n              };\n            });\n        }\n    };\n}();\n\njQuery(document).ready(function() {\n    FormiCheck.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-image-crop.js",
    "content": "var FormImageCrop = function () {\n\n    var demo1 = function() {\n        $('#demo1').Jcrop();\n    }\n\n    var demo2 = function() {\n        var jcrop_api;\n\n        $('#demo2').Jcrop({\n          onChange:   showCoords,\n          onSelect:   showCoords,\n          onRelease:  clearCoords\n        },function(){\n          jcrop_api = this;\n        });\n\n        $('#coords').on('change','input',function(e){\n          var x1 = $('#x1').val(),\n              x2 = $('#x2').val(),\n              y1 = $('#y1').val(),\n              y2 = $('#y2').val();\n          jcrop_api.setSelect([x1,y1,x2,y2]);\n        });\n\n        // Simple event handler, called from onChange and onSelect\n        // event handlers, as per the Jcrop invocation above\n        function showCoords(c)\n        {\n            $('#x1').val(c.x);\n            $('#y1').val(c.y);\n            $('#x2').val(c.x2);\n            $('#y2').val(c.y2);\n            $('#w').val(c.w);\n            $('#h').val(c.h);\n        };\n\n        function clearCoords()\n        {\n            $('#coords input').val('');\n        };\n    }\n\n    var demo3 = function() {\n        // Create variables (in this scope) to hold the API and image size\n        var jcrop_api,\n            boundx,\n            boundy,\n            // Grab some information about the preview pane\n            $preview = $('#preview-pane'),\n            $pcnt = $('#preview-pane .preview-container'),\n            $pimg = $('#preview-pane .preview-container img'),\n\n            xsize = $pcnt.width(),\n            ysize = $pcnt.height();\n        \n            console.log('init',[xsize,ysize]);\n\n        $('#demo3').Jcrop({\n          onChange: updatePreview,\n          onSelect: updatePreview,\n          aspectRatio: xsize / ysize\n        },function(){\n          // Use the API to get the real image size\n          var bounds = this.getBounds();\n          boundx = bounds[0];\n          boundy = bounds[1];\n          // Store the API in the jcrop_api variable\n          jcrop_api = this;\n          // Move the preview into the jcrop container for css positioning\n          $preview.appendTo(jcrop_api.ui.holder);\n        });\n\n        function updatePreview(c)\n        {\n          if (parseInt(c.w) > 0)\n          {\n            var rx = xsize / c.w;\n            var ry = ysize / c.h;\n\n            $pimg.css({\n              width: Math.round(rx * boundx) + 'px',\n              height: Math.round(ry * boundy) + 'px',\n              marginLeft: '-' + Math.round(rx * c.x) + 'px',\n              marginTop: '-' + Math.round(ry * c.y) + 'px'\n            });\n          }\n        };\n    }\n\n    var demo4 = function() {\n        var jcrop_api;\n\n        $('#demo4').Jcrop({\n          bgFade:     true,\n          bgOpacity: .2,\n          setSelect: [ 60, 70, 540, 330 ]\n        },function(){\n          jcrop_api = this;\n        });\n\n        $('#fadetog').change(function(){\n          jcrop_api.setOptions({\n            bgFade: this.checked\n          });\n        }).attr('checked', true);\n\n        $('#shadetog').change(function(){\n          if (this.checked) $('#shadetxt').slideDown();\n            else $('#shadetxt').slideUp();\n          jcrop_api.setOptions({\n            shade: this.checked\n          });\n        }).attr('checked', false);\n\n        // Define page sections\n        var sections = {\n          bgc_buttons: 'Change bgColor',\n          bgo_buttons: 'Change bgOpacity',\n          anim_buttons: 'Animate Selection'\n        };\n        // Define animation buttons\n        var ac = {\n          anim1: [217,122,382,284],\n          anim2: [20,20,580,380],\n          anim3: [24,24,176,376],\n          anim4: [347,165,550,355],\n          anim5: [136,55,472,183]\n        };\n        // Define bgOpacity buttons\n        var bgo = {\n          Low: .2,\n          Mid: .5,\n          High: .8,\n          Full: 1\n        };\n        // Define bgColor buttons\n        var bgc = {\n          R: '#900',\n          B: '#4BB6F0',\n          Y: '#F0B207',\n          G: '#46B81C',\n          W: 'white',\n          K: 'black'\n        };\n        // Create fieldset targets for buttons\n        for(i in sections)\n          insertSection(i,sections[i]);\n\n        function create_btn(c) {\n          var $o = $('<button />').addClass('btn small');\n          if (c) $o.append(c);\n          return $o;\n        }\n\n        var a_count = 1;\n        // Create animation buttons\n        for(i in ac) {\n          $('#anim_buttons .btn-group')\n            .append(\n              create_btn(a_count++).click(animHandler(ac[i])),\n              ' '\n            );\n        }\n\n        $('#anim_buttons .btn-group').append(\n          create_btn('Bye!').click(function(e){\n            $(e.target).addClass('active');\n            jcrop_api.animateTo(\n              [300,200,300,200],\n              function(){\n                this.release();\n                $(e.target).closest('.btn-group').find('.active').removeClass('active');\n              }\n            );\n            return false;\n          })\n        );\n\n        // Create bgOpacity buttons\n        for(i in bgo) {\n          $('#bgo_buttons .btn-group').append(\n            create_btn(i).click(setoptHandler('bgOpacity',bgo[i])),\n            ' '\n          );\n        }\n        // Create bgColor buttons\n        for(i in bgc) {\n          $('#bgc_buttons .btn-group').append(\n            create_btn(i).css({\n              background: bgc[i],\n              color: ((i == 'K') || (i == 'R'))?'white':'black'\n            }).click(setoptHandler('bgColor',bgc[i])), ' '\n          );\n        }\n        // Function to insert named sections into interface\n        function insertSection(k,v) {\n          $('#interface').prepend(\n            $('<fieldset></fieldset>').attr('id',k).append(\n              $('<h4></h4>').append(v),\n              '<div class=\"btn-toolbar\"><div class=\"btn-group\"></div></div>'\n            )\n          );\n        };\n        // Handler for option-setting buttons\n        function setoptHandler(k,v) {\n          return function(e) {\n            $(e.target).closest('.btn-group').find('.active').removeClass('active');\n            $(e.target).addClass('active');\n            var opt = { };\n            opt[k] = v;\n            jcrop_api.setOptions(opt);\n            return false;\n          };\n        };\n        // Handler for animation buttons\n        function animHandler(v) {\n          return function(e) {\n            $(e.target).addClass('active');\n            jcrop_api.animateTo(v,function(){\n              $(e.target).closest('.btn-group').find('.active').removeClass('active');\n            });\n            return false;\n          };\n        };\n\n        $('#bgo_buttons .btn:first,#bgc_buttons .btn:last').addClass('active');\n        $('#interface').show();\n    }\n\n    var demo5 = function() {\n        // The variable jcrop_api will hold a reference to the\n        // Jcrop API once Jcrop is instantiated.\n        var jcrop_api;\n\n        // In this example, since Jcrop may be attached or detached\n        // at the whim of the user, I've wrapped the call into a function\n        initJcrop();\n        \n        // The function is pretty simple\n        function initJcrop()//{{{\n        {\n          // Hide any interface elements that require Jcrop\n          // (This is for the local user interface portion.)\n          $('.requiresjcrop').hide();\n\n          // Invoke Jcrop in typical fashion\n          $('#demo5').Jcrop({\n            onRelease: releaseCheck\n          },function(){\n\n            jcrop_api = this;\n            jcrop_api.animateTo([100,100,400,300]);\n\n            // Setup and dipslay the interface for \"enabled\"\n            $('#can_click,#can_move,#can_size').attr('checked','checked');\n\n            $('#ar_lock,#size_lock,#bg_swap').attr('checked',false);\n            \n            $('.requiresjcrop').show();\n\n          });\n\n        };\n        //}}}\n\n        // Use the API to find cropping dimensions\n        // Then generate a random selection\n        // This function is used by setSelect and animateTo buttons\n        // Mainly for demonstration purposes\n        function getRandom() {\n          var dim = jcrop_api.getBounds();\n          return [\n            Math.round(Math.random() * dim[0]),\n            Math.round(Math.random() * dim[1]),\n            Math.round(Math.random() * dim[0]),\n            Math.round(Math.random() * dim[1])\n          ];\n        };\n\n        // This function is bound to the onRelease handler...\n        // In certain circumstances (such as if you set minSize\n        // and aspectRatio together), you can inadvertently lose\n        // the selection. This callback re-enables creating selections\n        // in such a case. Although the need to do this is based on a\n        // buggy behavior, it's recommended that you in some way trap\n        // the onRelease callback if you use allowSelect: false\n        function releaseCheck()\n        {\n          jcrop_api.setOptions({ allowSelect: true });\n          $('#can_click').attr('checked',false);\n        };\n\n        // Attach interface buttons\n        // This may appear to be a lot of code but it's simple stuff\n        $('#setSelect').click(function(e) {\n          // Sets a random selection\n          jcrop_api.setSelect(getRandom());\n        });\n        $('#animateTo').click(function(e) {\n          // Animates to a random selection\n          jcrop_api.animateTo(getRandom());\n        });\n        $('#release').click(function(e) {\n          // Release method clears the selection\n          jcrop_api.release();\n        });\n        $('#disable').click(function(e) {\n          // Disable Jcrop instance\n          jcrop_api.disable();\n          // Update the interface to reflect disabled state\n          $('#enable').show();\n          $('.requiresjcrop').hide();\n        });\n        $('#enable').click(function(e) {\n          // Re-enable Jcrop instance\n          jcrop_api.enable();\n          // Update the interface to reflect enabled state\n          $('#enable').hide();\n          $('.requiresjcrop').show();\n        });\n        $('#rehook').click(function(e) {\n          // This button is visible when Jcrop has been destroyed\n          // It performs the re-attachment and updates the UI\n          $('#rehook,#enable').hide();\n          initJcrop();\n          $('#unhook,.requiresjcrop').show();\n          return false;\n        });\n        $('#unhook').click(function(e) {\n          // Destroy Jcrop widget, restore original state\n          jcrop_api.destroy();\n          // Update the interface to reflect un-attached state\n          $('#unhook,#enable,.requiresjcrop').hide();\n          $('#rehook').show();\n          return false;\n        });\n\n        // Hook up the three image-swapping buttons\n        $('#img1').click(function(e) {\n          $(this).addClass('active').closest('.btn-group')\n            .find('button.active').not(this).removeClass('active');\n\n          jcrop_api.setImage('../../assets/global/plugins/jcrop/demos/demo_files/sago.jpg');\n          jcrop_api.setOptions({ bgOpacity: .6 });\n          return false;\n        });\n        $('#img2').click(function(e) {\n          $(this).addClass('active').closest('.btn-group')\n            .find('button.active').not(this).removeClass('active');\n\n          jcrop_api.setImage('../../assets/global/plugins/jcrop/demos/demo_files/pool.jpg');\n          jcrop_api.setOptions({ bgOpacity: .6 });\n          return false;\n        });\n        $('#img3').click(function(e) {\n          $(this).addClass('active').closest('.btn-group')\n            .find('button.active').not(this).removeClass('active');\n\n          jcrop_api.setImage('../../assets/global/plugins/jcrop/demos/demo_files/sago.jpg',function(){\n            this.setOptions({\n              bgOpacity: 1,\n              outerImage: '../../assets/global/plugins/jcrop/demos/demo_files/sagomod.jpg'\n            });\n            this.animateTo(getRandom());\n          });\n          return false;\n        });\n\n        // The checkboxes simply set options based on it's checked value\n        // Options are changed by passing a new options object\n\n        // Also, to prevent strange behavior, they are initially checked\n        // This matches the default initial state of Jcrop\n\n        $('#can_click').change(function(e) {\n          jcrop_api.setOptions({ allowSelect: !!this.checked });\n          jcrop_api.focus();\n        });\n        $('#can_move').change(function(e) {\n          jcrop_api.setOptions({ allowMove: !!this.checked });\n          jcrop_api.focus();\n        });\n        $('#can_size').change(function(e) {\n          jcrop_api.setOptions({ allowResize: !!this.checked });\n          jcrop_api.focus();\n        });\n        $('#ar_lock').change(function(e) {\n          jcrop_api.setOptions(this.checked?\n            { aspectRatio: 4/3 }: { aspectRatio: 0 });\n          jcrop_api.focus();\n        });\n        $('#size_lock').change(function(e) {\n          jcrop_api.setOptions(this.checked? {\n            minSize: [ 80, 80 ],\n            maxSize: [ 350, 350 ]\n          }: {\n            minSize: [ 0, 0 ],\n            maxSize: [ 0, 0 ]\n          });\n          jcrop_api.focus();\n        });\n\n    }\n\n    var demo6 = function() {\n        var api;\n\n        $('#demo6').Jcrop({\n          // start off with jcrop-light class\n          bgOpacity: 0.5,\n          bgColor: 'white',\n          addClass: 'jcrop-light'\n        },function(){\n          api = this;\n          api.setSelect([130,65,130+350,65+285]);\n          api.setOptions({ bgFade: true });\n          api.ui.selection.addClass('jcrop-selection');\n        });\n\n        $('#buttonbar').on('click','button',function(e){\n          var $t = $(this), $g = $t.closest('.btn-group');\n          $g.find('button.active').removeClass('active');\n          $t.addClass('active');\n          $g.find('[data-setclass]').each(function(){\n            var $th = $(this), c = $th.data('setclass'),\n              a = $th.hasClass('active');\n            if (a) {\n              api.ui.holder.addClass(c);\n              switch(c){\n                case 'jcrop-light':\n                  api.setOptions({ bgColor: 'white', bgOpacity: 0.5 });\n                  break;\n\n                case 'jcrop-dark':\n                  api.setOptions({ bgColor: 'black', bgOpacity: 0.4 });\n                  break;\n\n                case 'jcrop-normal':\n                  api.setOptions({\n                    bgColor: $.Jcrop.defaults.bgColor,\n                    bgOpacity: $.Jcrop.defaults.bgOpacity\n                  });\n                  break;\n              }\n            }\n            else api.ui.holder.removeClass(c);\n          });\n        });\n    }\n\n    var demo7 = function() {\n        // I did JSON.stringify(jcrop_api.tellSelect()) on a crop I liked:\n        var c = {\"x\":13,\"y\":7,\"x2\":487,\"y2\":107,\"w\":474,\"h\":100};\n\n        $('#demo7').Jcrop({\n          bgFade: true,\n          setSelect: [c.x,c.y,c.x2,c.y2]\n        });\n    }\n\n    var demo8 = function() {\n        $('#demo8').Jcrop({\n          aspectRatio: 1,\n          onSelect: updateCoords\n        });\n\n        function updateCoords(c)\n          {\n            $('#crop_x').val(c.x);\n            $('#crop_y').val(c.y);\n            $('#crop_w').val(c.w);\n            $('#crop_h').val(c.h);\n          };\n\n          $('#demo8_form').submit(function(){\n            if (parseInt($('#crop_w').val())) return true;\n            alert('Please select a crop region then press submit.');\n            return false;\n            });\n\n    }\n\n    var handleResponsive = function() {\n      if ($(window).width() <= 1024 && $(window).width() >= 678) {\n        $('.responsive-1024').each(function(){\n          $(this).attr(\"data-class\", $(this).attr(\"class\"));\n          $(this).attr(\"class\", 'responsive-1024 col-md-12');\n        }); \n      } else {\n        $('.responsive-1024').each(function(){\n          if ($(this).attr(\"data-class\")) {\n            $(this).attr(\"class\", $(this).attr(\"data-class\"));  \n            $(this).removeAttr(\"data-class\");\n          }\n        });\n      }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            \n            if (!jQuery().Jcrop) {;\n                return;\n            }\n\n            App.addResizeHandler(handleResponsive);\n            handleResponsive();\n\n            demo1();\n            demo2();\n            demo3();\n            demo4();\n            demo5();\n            demo6();\n            demo7();\n            demo8();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormImageCrop.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-input-mask.js",
    "content": "var FormInputMask = function () {\n    \n    var handleInputMasks = function () {\n        \n\n        $(\"#mask_date\").inputmask(\"d/m/y\", {\n            autoUnmask: true\n        }); //direct mask        \n        $(\"#mask_date1\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"*\"\n        }); //change the placeholder\n        $(\"#mask_date2\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"dd/mm/yyyy\"\n        }); //multi-char placeholder\n        $(\"#mask_phone\").inputmask(\"mask\", {\n            \"mask\": \"(999) 999-9999\"\n        }); //specifying fn & options\n        $(\"#mask_tin\").inputmask({\n            \"mask\": \"99-9999999\",\n            placeholder: \"\" // remove underscores from the input mask\n        }); //specifying options only\n        $(\"#mask_number\").inputmask({\n            \"mask\": \"9\",\n            \"repeat\": 10,\n            \"greedy\": false\n        }); // ~ mask \"9\" or mask \"99\" or ... mask \"9999999999\"\n        $(\"#mask_decimal\").inputmask('decimal', {\n            rightAlignNumerics: false\n        }); //disables the right alignment of the decimal input\n        $(\"#mask_currency\").inputmask('€ 999.999.999,99', {\n            numericInput: true\n        }); //123456  =>  € ___.__1.234,56\n\n        $(\"#mask_currency2\").inputmask('€ 999,999,999.99', {\n            numericInput: true,\n            rightAlignNumerics: false,\n            greedy: false\n        }); //123456  =>  € ___.__1.234,56\n        $(\"#mask_ssn\").inputmask(\"999-99-9999\", {\n            placeholder: \" \",\n            clearMaskOnLostFocus: true\n        }); //default\n    }\n\n    var handleIPAddressInput = function () {\n        $('#input_ipv4').ipAddress();\n        $('#input_ipv6').ipAddress({\n            v: 6\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleInputMasks();\n            handleIPAddressInput();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        FormInputMask.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-repeater.js",
    "content": "var FormRepeater = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        \t$('.mt-repeater').each(function(){\n        \t\t$(this).repeater({\n        \t\t\tshow: function () {\n\t                \t$(this).slideDown();\n                        $('.date-picker').datepicker({\n                            rtl: App.isRTL(),\n                            orientation: \"left\",\n                            autoclose: true\n                        });\n\t\t            },\n\n\t\t            hide: function (deleteElement) {\n\t\t                if(confirm('Are you sure you want to delete this element?')) {\n\t\t                    $(this).slideUp(deleteElement);\n\t\t                }\n\t\t            },\n\n\t\t            ready: function (setIndexes) {\n\n\t\t            }\n\n        \t\t});\n        \t});\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormRepeater.init();\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-samples.js",
    "content": "var FormSamples = function () {\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormSamples.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-validation-md.js",
    "content": "var FormValidationMd = function() {\n\n    var handleValidation1 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n        var form1 = $('#form_sample_1');\n        var error1 = $('.alert-danger', form1);\n        var success1 = $('.alert-success', form1);\n\n        form1.validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block help-block-error', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            messages: {\n                payment: {\n                    maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                },\n                'checkboxes1[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                },\n                'checkboxes2[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                }\n            },\n            rules: {\n                name: {\n                    minlength: 2,\n                    required: true\n                },\n                email: {\n                    required: true,\n                    email: true\n                },\n                email2: {\n                    required: true,\n                    email: true\n                },\n                url: {\n                    required: true,\n                    url: true\n                },\n                url2: {\n                    required: true,\n                    url: true\n                },\n                number: {\n                    required: true,\n                    number: true\n                },\n                number2: {\n                    required: true,\n                    number: true\n                },\n                digits: {\n                    required: true,\n                    digits: true\n                },\n                creditcard: {\n                    required: true,\n                    creditcard: true\n                },\n                delivery: {\n                    required: true\n                },\n                payment: {\n                    required: true,\n                    minlength: 2,\n                    maxlength: 4\n                },\n                memo: {\n                    required: true,\n                    minlength: 10,\n                    maxlength: 40\n                },\n                'checkboxes1[]': {\n                    required: true,\n                    minlength: 2,\n                },\n                'checkboxes2[]': {\n                    required: true,\n                    minlength: 3,\n                },\n                radio1: {\n                    required: true\n                },\n                radio2: {\n                    required: true\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit              \n                success1.hide();\n                error1.show();\n                App.scrollTo(error1, -200);\n            },\n\n            errorPlacement: function(error, element) {\n                if (element.is(':checkbox')) {\n                    error.insertAfter(element.closest(\".md-checkbox-list, .md-checkbox-inline, .checkbox-list, .checkbox-inline\"));\n                } else if (element.is(':radio')) {\n                    error.insertAfter(element.closest(\".md-radio-list, .md-radio-inline, .radio-list,.radio-inline\"));\n                } else {\n                    error.insertAfter(element); // for other inputs, just perform default behavior\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element)\n                    .closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            unhighlight: function(element) { // revert the change done by hightlight\n                $(element)\n                    .closest('.form-group').removeClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label\n                    .closest('.form-group').removeClass('has-error'); // set success class to the control group\n            },\n\n            submitHandler: function(form) {\n                success1.show();\n                error1.hide();\n            }\n        });\n    }\n\n    var handleValidation2 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n        var form1 = $('#form_sample_2');\n        var error1 = $('.alert-danger', form1);\n        var success1 = $('.alert-success', form1);\n\n        form1.validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block help-block-error', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            messages: {\n                payment: {\n                    maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                },\n                'checkboxes1[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                },\n                'checkboxes2[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                }\n            },\n            rules: {\n                name: {\n                    minlength: 2,\n                    required: true\n                },\n                email: {\n                    required: true,\n                    email: true\n                },\n                email2: {\n                    required: true,\n                    email: true\n                },\n                url: {\n                    required: true,\n                    url: true\n                },\n                url2: {\n                    required: true,\n                    url: true\n                },\n                number: {\n                    required: true,\n                    number: true\n                },\n                number2: {\n                    required: true,\n                    number: true\n                },\n                digits: {\n                    required: true,\n                    digits: true\n                },\n                creditcard: {\n                    required: true,\n                    creditcard: true\n                },\n                delivery: {\n                    required: true\n                },\n                payment: {\n                    required: true,\n                    minlength: 2,\n                    maxlength: 4\n                },\n                memo: {\n                    required: true,\n                    minlength: 10,\n                    maxlength: 40\n                },\n                'checkboxes1[]': {\n                    required: true,\n                    minlength: 2,\n                },\n                'checkboxes2[]': {\n                    required: true,\n                    minlength: 3,\n                },\n                radio1: {\n                    required: true\n                },\n                radio2: {\n                    required: true\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit              \n                success1.hide();\n                error1.show();\n                App.scrollTo(error1, -200);\n            },\n\n            errorPlacement: function(error, element) {\n                if (element.is(':checkbox')) {\n                    error.insertAfter(element.closest(\".md-checkbox-list, .md-checkbox-inline, .checkbox-list, .checkbox-inline\"));\n                } else if (element.is(':radio')) {\n                    error.insertAfter(element.closest(\".md-radio-list, .md-radio-inline, .radio-list,.radio-inline\"));\n                } else {\n                    error.insertAfter(element); // for other inputs, just perform default behavior\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element)\n                    .closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            unhighlight: function(element) { // revert the change done by hightlight\n                $(element)\n                    .closest('.form-group').removeClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label\n                    .closest('.form-group').removeClass('has-error'); // set success class to the control group\n            },\n\n            submitHandler: function(form) {\n                success1.show();\n                error1.hide();\n            }\n        });\n    }\n\n    var handleValidation3 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n        var form1 = $('#form_sample_3');\n        var error1 = $('.alert-danger', form1);\n        var success1 = $('.alert-success', form1);\n\n        form1.validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block help-block-error', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            messages: {\n                payment: {\n                    maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                },\n                'checkboxes1[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                },\n                'checkboxes2[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                }\n            },\n            rules: {\n                name: {\n                    minlength: 2,\n                    required: true\n                },\n                email: {\n                    required: true,\n                    email: true\n                },\n                email2: {\n                    required: true,\n                    email: true\n                },\n                url: {\n                    required: true,\n                    url: true\n                },\n                url2: {\n                    required: true,\n                    url: true\n                },\n                number: {\n                    required: true,\n                    number: true\n                },\n                number2: {\n                    required: true,\n                    number: true\n                },\n                digits: {\n                    required: true,\n                    digits: true\n                },\n                creditcard: {\n                    required: true,\n                    creditcard: true\n                },\n                delivery: {\n                    required: true\n                },\n                payment: {\n                    required: true,\n                    minlength: 2,\n                    maxlength: 4\n                },\n                memo: {\n                    required: true,\n                    minlength: 10,\n                    maxlength: 40\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit              \n                success1.hide();\n                error1.show();\n                App.scrollTo(error1, -200);\n            },\n\n            errorPlacement: function(error, element) {\n                if (element.is(':checkbox')) {\n                    error.insertAfter(element.closest(\".md-checkbox-list, .md-checkbox-inline, .checkbox-list, .checkbox-inline\"));\n                } else if (element.is(':radio')) {\n                    error.insertAfter(element.closest(\".md-radio-list, .md-radio-inline, .radio-list,.radio-inline\"));\n                } else {\n                    error.insertAfter(element); // for other inputs, just perform default behavior\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element)\n                    .closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            unhighlight: function(element) { // revert the change done by hightlight\n                $(element)\n                    .closest('.form-group').removeClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label\n                    .closest('.form-group').removeClass('has-error'); // set success class to the control group\n            },\n\n            submitHandler: function(form) {\n                success1.show();\n                error1.hide();\n            }\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleValidation1();\n            handleValidation2();\n            handleValidation3();\n        }\n    };\n}();\n\njQuery(document).ready(function() {\n    FormValidationMd.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-validation.js",
    "content": "var FormValidation = function () {\n\n    // basic validation\n    var handleValidation1 = function() {\n        // for more info visit the official plugin documentation: \n            // http://docs.jquery.com/Plugins/Validation\n\n            var form1 = $('#form_sample_1');\n            var error1 = $('.alert-danger', form1);\n            var success1 = $('.alert-success', form1);\n\n            form1.validate({\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                ignore: \"\",  // validate all fields including form hidden input\n                messages: {\n                    select_multi: {\n                        maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                        minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                    }\n                },\n                rules: {\n                    name: {\n                        minlength: 2,\n                        required: true\n                    },\n                    input_group: {\n                        email: true,\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    url: {\n                        required: true,\n                        url: true\n                    },\n                    number: {\n                        required: true,\n                        number: true\n                    },\n                    digits: {\n                        required: true,\n                        digits: true\n                    },\n                    creditcard: {\n                        required: true,\n                        creditcard: true\n                    },\n                    occupation: {\n                        minlength: 5,\n                    },\n                    select: {\n                        required: true\n                    },\n                    select_multi: {\n                        required: true,\n                        minlength: 1,\n                        maxlength: 3\n                    }\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit              \n                    success1.hide();\n                    error1.show();\n                    App.scrollTo(error1, -200);\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    var cont = $(element).parent('.input-group');\n                    if (cont) {\n                        cont.after(error);\n                    } else {\n                        element.after(error);\n                    }\n                },\n\n                highlight: function (element) { // hightlight error inputs\n\n                    $(element)\n                        .closest('.form-group').addClass('has-error'); // set error class to the control group\n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    $(element)\n                        .closest('.form-group').removeClass('has-error'); // set error class to the control group\n                },\n\n                success: function (label) {\n                    label\n                        .closest('.form-group').removeClass('has-error'); // set success class to the control group\n                },\n\n                submitHandler: function (form) {\n                    success1.show();\n                    error1.hide();\n                }\n            });\n\n\n    }\n\n    // validation using icons\n    var handleValidation2 = function() {\n        // for more info visit the official plugin documentation: \n            // http://docs.jquery.com/Plugins/Validation\n\n            var form2 = $('#form_sample_2');\n            var error2 = $('.alert-danger', form2);\n            var success2 = $('.alert-success', form2);\n\n            form2.validate({\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                ignore: \"\",  // validate all fields including form hidden input\n                rules: {\n                    name: {\n                        minlength: 2,\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    url: {\n                        required: true,\n                        url: true\n                    },\n                    number: {\n                        required: true,\n                        number: true\n                    },\n                    digits: {\n                        required: true,\n                        digits: true\n                    },\n                    creditcard: {\n                        required: true,\n                        creditcard: true\n                    },\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit              \n                    success2.hide();\n                    error2.show();\n                    App.scrollTo(error2, -200);\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    var icon = $(element).parent('.input-icon').children('i');\n                    icon.removeClass('fa-check').addClass(\"fa-warning\");  \n                    icon.attr(\"data-original-title\", error.text()).tooltip({'container': 'body'});\n                },\n\n                highlight: function (element) { // hightlight error inputs\n                    $(element)\n                        .closest('.form-group').removeClass(\"has-success\").addClass('has-error'); // set error class to the control group   \n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    \n                },\n\n                success: function (label, element) {\n                    var icon = $(element).parent('.input-icon').children('i');\n                    $(element).closest('.form-group').removeClass('has-error').addClass('has-success'); // set success class to the control group\n                    icon.removeClass(\"fa-warning\").addClass(\"fa-check\");\n                },\n\n                submitHandler: function (form) {\n                    success2.show();\n                    error2.hide();\n                    form[0].submit(); // submit the form\n                }\n            });\n\n\n    }\n\n    // advance validation\n    var handleValidation3 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n\n            var form3 = $('#form_sample_3');\n            var error3 = $('.alert-danger', form3);\n            var success3 = $('.alert-success', form3);\n\n            //IMPORTANT: update CKEDITOR textarea with actual content before submit\n            form3.on('submit', function() {\n                for(var instanceName in CKEDITOR.instances) {\n                    CKEDITOR.instances[instanceName].updateElement();\n                }\n            })\n\n            form3.validate({\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                ignore: \"\", // validate all fields including form hidden input\n                rules: {\n                    name: {\n                        minlength: 2,\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },  \n                    options1: {\n                        required: true\n                    },\n                    options2: {\n                        required: true\n                    },\n                    select2tags: {\n                        required: true\n                    },\n                    datepicker: {\n                        required: true\n                    },\n                    occupation: {\n                        minlength: 5,\n                    },\n                    membership: {\n                        required: true\n                    },\n                    service: {\n                        required: true,\n                        minlength: 2\n                    },\n                    markdown: {\n                        required: true\n                    },\n                    editor1: {\n                        required: true\n                    },\n                    editor2: {\n                        required: true\n                    }\n                },\n\n                messages: { // custom messages for radio buttons and checkboxes\n                    membership: {\n                        required: \"Please select a Membership type\"\n                    },\n                    service: {\n                        required: \"Please select  at least 2 types of Service\",\n                        minlength: jQuery.validator.format(\"Please select  at least {0} types of Service\")\n                    }\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    if (element.parents('.mt-radio-list') || element.parents('.mt-checkbox-list')) {\n                        if (element.parents('.mt-radio-list')[0]) {\n                            error.appendTo(element.parents('.mt-radio-list')[0]);\n                        }\n                        if (element.parents('.mt-checkbox-list')[0]) {\n                            error.appendTo(element.parents('.mt-checkbox-list')[0]);\n                        }\n                    } else if (element.parents('.mt-radio-inline') || element.parents('.mt-checkbox-inline')) {\n                        if (element.parents('.mt-radio-inline')[0]) {\n                            error.appendTo(element.parents('.mt-radio-inline')[0]);\n                        }\n                        if (element.parents('.mt-checkbox-inline')[0]) {\n                            error.appendTo(element.parents('.mt-checkbox-inline')[0]);\n                        }\n                    } else if (element.parent(\".input-group\").size() > 0) {\n                        error.insertAfter(element.parent(\".input-group\"));\n                    } else if (element.attr(\"data-error-container\")) { \n                        error.appendTo(element.attr(\"data-error-container\"));\n                    } else {\n                        error.insertAfter(element); // for other inputs, just perform default behavior\n                    }\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit   \n                    success3.hide();\n                    error3.show();\n                    App.scrollTo(error3, -200);\n                },\n\n                highlight: function (element) { // hightlight error inputs\n                   $(element)\n                        .closest('.form-group').addClass('has-error'); // set error class to the control group\n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    $(element)\n                        .closest('.form-group').removeClass('has-error'); // set error class to the control group\n                },\n\n                success: function (label) {\n                    label\n                        .closest('.form-group').removeClass('has-error'); // set success class to the control group\n                },\n\n                submitHandler: function (form) {\n                    success3.show();\n                    error3.hide();\n                    form[0].submit(); // submit the form\n                }\n\n            });\n\n             //apply validation on select2 dropdown value change, this only needed for chosen dropdown integration.\n            $('.select2me', form3).change(function () {\n                form3.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input\n            });\n\n            //initialize datepicker\n            $('.date-picker').datepicker({\n                rtl: App.isRTL(),\n                autoclose: true\n            });\n            $('.date-picker .form-control').change(function() {\n                form3.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input \n            })\n    }\n\n    var handleWysihtml5 = function() {\n        if (!jQuery().wysihtml5) {\n            \n            return;\n        }\n\n        if ($('.wysihtml5').size() > 0) {\n            $('.wysihtml5').wysihtml5({\n                \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n            });\n        }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            handleWysihtml5();\n            handleValidation1();\n            handleValidation2();\n            handleValidation3();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormValidation.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/form-wizard.js",
    "content": "var FormWizard = function () {\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            if (!jQuery().bootstrapWizard) {\n                return;\n            }\n\n            function format(state) {\n                if (!state.id) return state.text; // optgroup\n                return \"<img class='flag' src='../../assets/global/img/flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n            }\n\n            $(\"#country_list\").select2({\n                placeholder: \"Select\",\n                allowClear: true,\n                formatResult: format,\n                width: 'auto', \n                formatSelection: format,\n                escapeMarkup: function (m) {\n                    return m;\n                }\n            });\n\n            var form = $('#submit_form');\n            var error = $('.alert-danger', form);\n            var success = $('.alert-success', form);\n\n            form.validate({\n                doNotHideMessage: true, //this option enables to show the error/success messages on tab switch.\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                rules: {\n                    //account\n                    username: {\n                        minlength: 5,\n                        required: true\n                    },\n                    password: {\n                        minlength: 5,\n                        required: true\n                    },\n                    rpassword: {\n                        minlength: 5,\n                        required: true,\n                        equalTo: \"#submit_form_password\"\n                    },\n                    //profile\n                    fullname: {\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    phone: {\n                        required: true\n                    },\n                    gender: {\n                        required: true\n                    },\n                    address: {\n                        required: true\n                    },\n                    city: {\n                        required: true\n                    },\n                    country: {\n                        required: true\n                    },\n                    //payment\n                    card_name: {\n                        required: true\n                    },\n                    card_number: {\n                        minlength: 16,\n                        maxlength: 16,\n                        required: true\n                    },\n                    card_cvc: {\n                        digits: true,\n                        required: true,\n                        minlength: 3,\n                        maxlength: 4\n                    },\n                    card_expiry_date: {\n                        required: true\n                    },\n                    'payment[]': {\n                        required: true,\n                        minlength: 1\n                    }\n                },\n\n                messages: { // custom messages for radio buttons and checkboxes\n                    'payment[]': {\n                        required: \"Please select at least one option\",\n                        minlength: jQuery.validator.format(\"Please select at least one option\")\n                    }\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    if (element.attr(\"name\") == \"gender\") { // for uniform radio buttons, insert the after the given container\n                        error.insertAfter(\"#form_gender_error\");\n                    } else if (element.attr(\"name\") == \"payment[]\") { // for uniform checkboxes, insert the after the given container\n                        error.insertAfter(\"#form_payment_error\");\n                    } else {\n                        error.insertAfter(element); // for other inputs, just perform default behavior\n                    }\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit   \n                    success.hide();\n                    error.show();\n                    App.scrollTo(error, -200);\n                },\n\n                highlight: function (element) { // hightlight error inputs\n                    $(element)\n                        .closest('.form-group').removeClass('has-success').addClass('has-error'); // set error class to the control group\n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    $(element)\n                        .closest('.form-group').removeClass('has-error'); // set error class to the control group\n                },\n\n                success: function (label) {\n                    if (label.attr(\"for\") == \"gender\" || label.attr(\"for\") == \"payment[]\") { // for checkboxes and radio buttons, no need to show OK icon\n                        label\n                            .closest('.form-group').removeClass('has-error').addClass('has-success');\n                        label.remove(); // remove error label here\n                    } else { // display success icon for other inputs\n                        label\n                            .addClass('valid') // mark the current input as valid and display OK icon\n                        .closest('.form-group').removeClass('has-error').addClass('has-success'); // set success class to the control group\n                    }\n                },\n\n                submitHandler: function (form) {\n                    success.show();\n                    error.hide();\n                    form[0].submit();\n                    //add here some ajax code to submit your form or just call form.submit() if you want to submit the form without ajax\n                }\n\n            });\n\n            var displayConfirm = function() {\n                $('#tab4 .form-control-static', form).each(function(){\n                    var input = $('[name=\"'+$(this).attr(\"data-display\")+'\"]', form);\n                    if (input.is(\":radio\")) {\n                        input = $('[name=\"'+$(this).attr(\"data-display\")+'\"]:checked', form);\n                    }\n                    if (input.is(\":text\") || input.is(\"textarea\")) {\n                        $(this).html(input.val());\n                    } else if (input.is(\"select\")) {\n                        $(this).html(input.find('option:selected').text());\n                    } else if (input.is(\":radio\") && input.is(\":checked\")) {\n                        $(this).html(input.attr(\"data-title\"));\n                    } else if ($(this).attr(\"data-display\") == 'payment[]') {\n                        var payment = [];\n                        $('[name=\"payment[]\"]:checked', form).each(function(){ \n                            payment.push($(this).attr('data-title'));\n                        });\n                        $(this).html(payment.join(\"<br>\"));\n                    }\n                });\n            }\n\n            var handleTitle = function(tab, navigation, index) {\n                var total = navigation.find('li').length;\n                var current = index + 1;\n                // set wizard title\n                $('.step-title', $('#form_wizard_1')).text('Step ' + (index + 1) + ' of ' + total);\n                // set done steps\n                jQuery('li', $('#form_wizard_1')).removeClass(\"done\");\n                var li_list = navigation.find('li');\n                for (var i = 0; i < index; i++) {\n                    jQuery(li_list[i]).addClass(\"done\");\n                }\n\n                if (current == 1) {\n                    $('#form_wizard_1').find('.button-previous').hide();\n                } else {\n                    $('#form_wizard_1').find('.button-previous').show();\n                }\n\n                if (current >= total) {\n                    $('#form_wizard_1').find('.button-next').hide();\n                    $('#form_wizard_1').find('.button-submit').show();\n                    displayConfirm();\n                } else {\n                    $('#form_wizard_1').find('.button-next').show();\n                    $('#form_wizard_1').find('.button-submit').hide();\n                }\n                App.scrollTo($('.page-title'));\n            }\n\n            // default form wizard\n            $('#form_wizard_1').bootstrapWizard({\n                'nextSelector': '.button-next',\n                'previousSelector': '.button-previous',\n                onTabClick: function (tab, navigation, index, clickedIndex) {\n                    return false;\n                    \n                    success.hide();\n                    error.hide();\n                    if (form.valid() == false) {\n                        return false;\n                    }\n                    \n                    handleTitle(tab, navigation, clickedIndex);\n                },\n                onNext: function (tab, navigation, index) {\n                    success.hide();\n                    error.hide();\n\n                    if (form.valid() == false) {\n                        return false;\n                    }\n\n                    handleTitle(tab, navigation, index);\n                },\n                onPrevious: function (tab, navigation, index) {\n                    success.hide();\n                    error.hide();\n\n                    handleTitle(tab, navigation, index);\n                },\n                onTabShow: function (tab, navigation, index) {\n                    var total = navigation.find('li').length;\n                    var current = index + 1;\n                    var $percent = (current / total) * 100;\n                    $('#form_wizard_1').find('.progress-bar').css({\n                        width: $percent + '%'\n                    });\n                }\n            });\n\n            $('#form_wizard_1').find('.button-previous').hide();\n            $('#form_wizard_1 .button-submit').click(function () {\n                alert('Finished! Hope you like it :)');\n            }).hide();\n\n            //apply validation on select2 dropdown value change, this only needed for chosen dropdown integration.\n            $('#country_list', form).change(function () {\n                form.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormWizard.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/inbox.js",
    "content": "var AppInbox = function () {\n\n    var content = $('.inbox-content');\n    var loading = $('.inbox-loading');\n    var listListing = '';\n\n    var loadInbox = function (el, name) {\n        var url = 'app_inbox_inbox.html';\n        var title = $('.inbox-nav > li.' + name + ' a').attr('data-title');\n        listListing = name;\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-nav > li.' + name).addClass('active');\n                $('.inbox-header > h1').text(title);\n\n                loading.hide();\n                content.html(res);\n                if (Layout.fixContentHeight) {\n                    Layout.fixContentHeight();\n                }\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n\n        // handle group checkbox:\n        jQuery('body').on('change', '.mail-group-checkbox', function () {\n            var set = jQuery('.mail-checkbox');\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                $(this).attr(\"checked\", checked);\n            });\n        });\n    }\n\n    var loadMessage = function (el, name, resetMenu) {\n        var url = 'app_inbox_view.html';\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        var message_id = el.parent('tr').attr(\"data-messageid\");  \n        \n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            data: {'message_id': message_id},\n            success: function(res) \n            {\n                toggleButton(el);\n\n                if (resetMenu) {\n                    $('.inbox-nav > li.active').removeClass('active');\n                }\n                $('.inbox-header > h1').text('View Message');\n\n                loading.hide();\n                content.html(res);\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var initWysihtml5 = function () {\n        $('.inbox-wysihtml5').wysihtml5({\n            \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n        });\n    }\n\n    var initFileupload = function () {\n\n        $('#fileupload').fileupload({\n            // Uncomment the following to send cross-domain cookies:\n            //xhrFields: {withCredentials: true},\n            url: '../assets/global/plugins/jquery-file-upload/server/php/',\n            autoUpload: true\n        });\n\n        // Upload server status check for browsers with CORS support:\n        if ($.support.cors) {\n            $.ajax({\n                url: '../assets/global/plugins/jquery-file-upload/server/php/',\n                type: 'HEAD'\n            }).fail(function () {\n                $('<span class=\"alert alert-error\"/>')\n                    .text('Upload server currently unavailable - ' +\n                    new Date())\n                    .appendTo('#fileupload');\n            });\n        }\n    }\n\n    var loadCompose = function (el) {\n        var url = 'app_inbox_compose.html';\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Compose');\n\n                loading.hide();\n                content.html(res);\n\n                initFileupload();\n                initWysihtml5();\n\n                $('.inbox-wysihtml5').focus();\n                Layout.fixContentHeight();\n                App.initUniform();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var loadReply = function (el) {\n        var messageid = $(el).attr(\"data-messageid\");\n        var url = 'app_inbox_reply.html&messageid=' + messageid;\n        \n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Reply');\n\n                loading.hide();\n                content.html(res);\n                $('[name=\"message\"]').val($('#reply_email_content_body').html());\n\n                handleCCInput(); // init \"CC\" input field\n\n                initFileupload();\n                initWysihtml5();\n                Layout.fixContentHeight();\n                App.initUniform();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var loadSearchResults = function (el) {\n        var url = 'app_inbox_inbox.html';\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Search');\n\n                loading.hide();\n                content.html(res);\n                Layout.fixContentHeight();\n                App.initUniform();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var handleCCInput = function () {\n        var the = $('.inbox-compose .mail-to .inbox-cc');\n        var input = $('.inbox-compose .input-cc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var handleBCCInput = function () {\n\n        var the = $('.inbox-compose .mail-to .inbox-bcc');\n        var input = $('.inbox-compose .input-bcc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var toggleButton = function(el) {\n        if (typeof el == 'undefined') {\n            return;\n        }\n        if (el.attr(\"disabled\")) {\n            el.attr(\"disabled\", false);\n        } else {\n            el.attr(\"disabled\", true);\n        }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            // handle compose btn click\n            $('.inbox').on('click', '.compose-btn a', function () {\n                loadCompose($(this));\n            });\n\n            // handle discard btn\n            $('.inbox').on('click', '.inbox-discard-btn', function(e) {\n                e.preventDefault();\n                loadInbox($(this), listListing);\n            });\n\n            // handle reply and forward button click\n            $('.inbox').on('click', '.reply-btn', function () {\n                loadReply($(this));\n            });\n\n            // handle view message\n            $('.inbox-content').on('click', '.view-message', function () {\n                loadMessage($(this));\n            });\n\n            // handle inbox listing\n            $('.inbox-nav > li.inbox > a').click(function () {\n                loadInbox($(this), 'inbox');\n            });\n\n            // handle sent listing\n            $('.inbox-nav > li.sent > a').click(function () {\n                loadInbox($(this), 'sent');\n            });\n\n            // handle draft listing\n            $('.inbox-nav > li.draft > a').click(function () {\n                loadInbox($(this), 'draft');\n            });\n\n            // handle trash listing\n            $('.inbox-nav > li.trash > a').click(function () {\n                loadInbox($(this), 'trash');\n            });\n\n            //handle compose/reply cc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-cc', function () {\n                handleCCInput();\n            });\n\n            //handle compose/reply bcc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-bcc', function () {\n                handleBCCInput();\n            });\n\n            //handle loading content based on URL parameter\n            if (App.getURLParameter(\"a\") === \"view\") {\n                loadMessage();\n            } else if (App.getURLParameter(\"a\") === \"compose\") {\n                loadCompose();\n            } else {\n               $('.inbox-nav > li.inbox > a').click();\n            }\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppInbox.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/jquery-gantt.js",
    "content": "var jgantt = function () {\n\n    return {\n        \n        init: function () {\n            var gantt_data = [\n\t\t\t\t{ \"name\": \" Step A \",\"desc\": \"&rarr; Step B\"  ,\"values\": [{\"id\": \"b0\", \"from\": \"/Date(1320182000000)/\", \"to\": \"/Date(1320301600000)/\", \"desc\": \"Id: 0<br/>Name:   Step A\", \"label\": \" Step A\", \"customClass\": \"ganttRed\", \"dep\": \"b1\"}]}\n\t\t\t];\n\n            $(\".jgantt\").gantt({source: gantt_data, navigate: 'scroll', scale: 'days', maxScale: 'weeks', minScale: 'hours'});\n\t\t}\n    };\n}();\n\njQuery(document).ready(function() {    \n\t jgantt.init(); \n});\n  "
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/lock-2.js",
    "content": "var Lock = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n             $.backstretch([\n\t\t        \"../assets/pages/media/bg/1.jpg\",\n    \t\t    \"../assets/pages/media/bg/2.jpg\",\n    \t\t    \"../assets/pages/media/bg/3.jpg\",\n    \t\t    \"../assets/pages/media/bg/4.jpg\"\n\t\t        ], {\n\t\t          fade: 1000,\n\t\t          duration: 8000\n\t\t      });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Lock.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/lock.js",
    "content": "var Lock = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Lock.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/portfolio-1.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-juicy-projects').cubeportfolio({\n        filters: '#js-filters-juicy-projects',\n        loadMore: '#js-loadMore-juicy-projects',\n        loadMoreAction: 'click',\n        layoutMode: 'grid',\n        defaultFilter: '*',\n        animationType: 'quicksand',\n        gapHorizontal: 35,\n        gapVertical: 30,\n        gridAdjustment: 'responsive',\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        caption: 'overlayBottomReveal',\n        displayType: 'sequentially',\n        displayTypeSpeed: 80,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n\n        // singlePage popup\n        singlePageDelegate: '.cbp-singlePage',\n        singlePageDeeplinking: true,\n        singlePageStickyNavigation: true,\n        singlePageCounter: '<div class=\"cbp-popup-singlePage-counter\">{{current}} of {{total}}</div>',\n        singlePageCallback: function(url, element) {\n            // to update singlePage content use the following method: this.updateSinglePage(yourContent)\n            var t = this;\n\n            $.ajax({\n                    url: url,\n                    type: 'GET',\n                    dataType: 'html',\n                    timeout: 10000\n                })\n                .done(function(result) {\n                    t.updateSinglePage(result);\n                })\n                .fail(function() {\n                    t.updateSinglePage('AJAX Error! Please refresh the page!');\n                });\n        },\n    });\n    \n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/portfolio-2.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-mosaic').cubeportfolio({\n        filters: '#js-filters-mosaic',\n        loadMore: '#js-loadMore-mosaic',\n        loadMoreAction: 'click',\n        layoutMode: 'mosaic',\n        sortToPreventGaps: true,\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        defaultFilter: '*',\n        animationType: 'quicksand',\n        gapHorizontal: 0,\n        gapVertical: 0,\n        gridAdjustment: 'responsive',\n        caption: 'zoom',\n        displayType: 'sequentially',\n        displayTypeSpeed: 100,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n    });\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/portfolio-3.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-lightbox-gallery').cubeportfolio({\n        filters: '#js-filters-lightbox-gallery1, #js-filters-lightbox-gallery2',\n        loadMore: '#js-loadMore-lightbox-gallery',\n        loadMoreAction: 'click',\n        layoutMode: 'grid',\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        defaultFilter: '*',\n        animationType: 'rotateSides',\n        gapHorizontal: 10,\n        gapVertical: 10,\n        gridAdjustment: 'responsive',\n        caption: 'zoom',\n        displayType: 'sequentially',\n        displayTypeSpeed: 100,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n\n        // singlePageInline\n        singlePageInlineDelegate: '.cbp-singlePageInline',\n        singlePageInlinePosition: 'below',\n        singlePageInlineInFocus: true,\n        singlePageInlineCallback: function(url, element) {\n            // to update singlePageInline content use the following method: this.updateSinglePageInline(yourContent)\n            var t = this;\n\n            $.ajax({\n                    url: url,\n                    type: 'GET',\n                    dataType: 'html',\n                    timeout: 10000\n                })\n                .done(function(result) {\n\n                    t.updateSinglePageInline(result);\n\n                })\n                .fail(function() {\n                    t.updateSinglePageInline('AJAX Error! Please refresh the page!');\n                });\n        },\n    });\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/portfolio-4.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-full-width').cubeportfolio({\n        filters: '#js-filters-full-width',\n        loadMore: '#js-loadMore-full-width',\n        loadMoreAction: 'auto',\n        layoutMode: 'mosaic',\n        sortToPreventGaps: true,\n        defaultFilter: '*',\n        animationType: 'fadeOutTop',\n        gapHorizontal: 0,\n        gapVertical: 0,\n        gridAdjustment: 'responsive',\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        caption: 'zoom',\n        displayType: 'lazyLoading',\n        displayTypeSpeed: 100,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n    });\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/portlet-ajax.js",
    "content": "var PortletAjax = function () {\n\n    var handlePortletAjax = function () {\n        //custom portlet reload handler\n        $('#my_portlet .portlet-title a.reload').click(function(e){\n            e.preventDefault();  // prevent default event\n            e.stopPropagation(); // stop event handling here(cancel the default reload handler)\n            // do here some custom work:\n            App.alert({\n                'type': 'danger', \n                'icon': 'warning',\n                'message': 'Custom reload handler!',\n                'container': $('#my_portlet .portlet-body') \n            });\n        })\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handlePortletAjax();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   PortletAjax.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/portlet-draggable.js",
    "content": "var PortletDraggable = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().sortable) {\n                return;\n            }\n\n            $(\"#sortable_portlets\").sortable({\n                connectWith: \".portlet\",\n                items: \".portlet\", \n                opacity: 0.8,\n                handle : '.portlet-title',\n                coneHelperSize: true,\n                placeholder: 'portlet-sortable-placeholder',\n                forcePlaceholderSize: true,\n                tolerance: \"pointer\",\n                helper: \"clone\",\n                tolerance: \"pointer\",\n                forcePlaceholderSize: !0,\n                helper: \"clone\",\n                cancel: \".portlet-sortable-empty, .portlet-fullscreen\", // cancel dragging if portlet is in fullscreen mode\n                revert: 250, // animation in milliseconds\n                update: function(b, c) {\n                    if (c.item.prev().hasClass(\"portlet-sortable-empty\")) {\n                        c.item.prev().before(c.item);\n                    }                    \n                }\n            });\n        }\n    };\n}();\n\njQuery(document).ready(function() {\n    PortletDraggable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/profile.js",
    "content": "var Profile = function() {\n\n    var dashboardMainChart = null;\n\n    return {\n\n        //main function\n        init: function() {\n        \n            Profile.initMiniCharts();\n        },\n\n        initMiniCharts: function() {\n\n            // IE8 Fix: function.bind polyfill\n            if (App.isIE8() && !Function.prototype.bind) {\n                Function.prototype.bind = function(oThis) {\n                    if (typeof this !== \"function\") {\n                        // closest thing possible to the ECMAScript 5 internal IsCallable function\n                        throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\");\n                    }\n\n                    var aArgs = Array.prototype.slice.call(arguments, 1),\n                        fToBind = this,\n                        fNOP = function() {},\n                        fBound = function() {\n                            return fToBind.apply(this instanceof fNOP && oThis ? this : oThis,\n                                aArgs.concat(Array.prototype.slice.call(arguments)));\n                        };\n\n                    fNOP.prototype = this.prototype;\n                    fBound.prototype = new fNOP();\n\n                    return fBound;\n                };\n            }\n\n            $(\"#sparkline_bar\").sparkline([8, 9, 10, 11, 10, 10, 12, 10, 10, 11, 9, 12, 11], {\n                type: 'bar',\n                width: '100',\n                barWidth: 6,\n                height: '45',\n                barColor: '#F36A5B',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar2\").sparkline([9, 11, 12, 13, 12, 13, 10, 14, 13, 11, 11, 12, 11], {\n                type: 'bar',\n                width: '100',\n                barWidth: 6,\n                height: '45',\n                barColor: '#5C9BD1',\n                negBarColor: '#e02222'\n            });\n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        Profile.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/search.js",
    "content": "var Search = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n           \t$('.date-picker').datepicker({\n                rtl: App.isRTL(),\n                orientation: \"left\",\n                autoclose: true\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Search.init();\n})"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-bootstrap-master.js",
    "content": "var $table = $('#table'),\n        $remove = $('#remove'),\n        selections = [];\n\n    function initTable() {\n        $table.bootstrapTable({\n            height: getHeight(),\n            columns: [\n                [\n                    {\n                        field: 'state',\n                        checkbox: true,\n                        rowspan: 2,\n                        align: 'center',\n                        valign: 'middle'\n                    }, {\n                        title: 'Item ID',\n                        field: 'id',\n                        rowspan: 2,\n                        align: 'center',\n                        valign: 'middle',\n                        sortable: true,\n                        footerFormatter: totalTextFormatter\n                    }, {\n                        title: 'Item Detail',\n                        colspan: 3,\n                        align: 'center'\n                    }\n                ],\n                [\n                    {\n                        field: 'name',\n                        title: 'Item Name',\n                        sortable: true,\n                        editable: true,\n                        footerFormatter: totalNameFormatter,\n                        align: 'center'\n                    }, {\n                        field: 'price',\n                        title: 'Item Price',\n                        sortable: true,\n                        align: 'center',\n                        editable: {\n                            type: 'text',\n                            title: 'Item Price',\n                            validate: function (value) {\n                                value = $.trim(value);\n                                if (!value) {\n                                    return 'This field is required';\n                                }\n                                if (!/^$/.test(value)) {\n                                    return 'This field needs to start width $.'\n                                }\n                                var data = $table.bootstrapTable('getData'),\n                                    index = $(this).parents('tr').data('index');\n                                console.log(data[index]);\n                                return '';\n                            }\n                        },\n                        footerFormatter: totalPriceFormatter\n                    }, {\n                        field: 'operate',\n                        title: 'Item Operate',\n                        align: 'center',\n                        events: operateEvents,\n                        formatter: operateFormatter\n                    }\n                ]\n            ]\n        });\n        // sometimes footer render error.\n        setTimeout(function () {\n            $table.bootstrapTable('resetView');\n        }, 200);\n        $table.on('check.bs.table uncheck.bs.table ' +\n                'check-all.bs.table uncheck-all.bs.table', function () {\n            $remove.prop('disabled', !$table.bootstrapTable('getSelections').length);\n\n            // save your data, here just save the current page\n            selections = getIdSelections();\n            // push or splice the selections if you want to save all data selections\n        });\n        $table.on('expand-row.bs.table', function (e, index, row, $detail) {\n            if (index % 2 == 1) {\n                $detail.html('Loading from ajax request...');\n                $.get('LICENSE', function (res) {\n                    $detail.html(res.replace(/\\n/g, '<br>'));\n                });\n            }\n        });\n        $table.on('all.bs.table', function (e, name, args) {\n            console.log(name, args);\n        });\n        $remove.click(function () {\n            var ids = getIdSelections();\n            $table.bootstrapTable('remove', {\n                field: 'id',\n                values: ids\n            });\n            $remove.prop('disabled', true);\n        });\n        $(window).resize(function () {\n            $table.bootstrapTable('resetView', {\n                height: getHeight()\n            });\n        });\n    }\n\n    function getIdSelections() {\n        return $.map($table.bootstrapTable('getSelections'), function (row) {\n            return row.id\n        });\n    }\n\n    function responseHandler(res) {\n        $.each(res.rows, function (i, row) {\n            row.state = $.inArray(row.id, selections) !== -1;\n        });\n        return res;\n    }\n\n    function detailFormatter(index, row) {\n        var html = [];\n        $.each(row, function (key, value) {\n            html.push('<p><b>' + key + ':</b> ' + value + '</p>');\n        });\n        return html.join('');\n    }\n\n    function operateFormatter(value, row, index) {\n        return [\n            '<a class=\"like\" href=\"javascript:void(0)\" title=\"Like\">',\n            '<i class=\"glyphicon glyphicon-heart\"></i>',\n            '</a>  ',\n            '<a class=\"remove\" href=\"javascript:void(0)\" title=\"Remove\">',\n            '<i class=\"glyphicon glyphicon-remove\"></i>',\n            '</a>'\n        ].join('');\n    }\n\n    window.operateEvents = {\n        'click .like': function (e, value, row, index) {\n            alert('You click like action, row: ' + JSON.stringify(row));\n        },\n        'click .remove': function (e, value, row, index) {\n            $table.bootstrapTable('remove', {\n                field: 'id',\n                values: [row.id]\n            });\n        }\n    };\n\n    function totalTextFormatter(data) {\n        return 'Total';\n    }\n\n    function totalNameFormatter(data) {\n        return data.length;\n    }\n\n    function totalPriceFormatter(data) {\n        var total = 0;\n        $.each(data, function (i, row) {\n            total += +(row.price.substring(1));\n        });\n        return '$' + total;\n    }\n\n    function getHeight() {\n        return $(window).height() - $('h1').outerHeight(true);\n    }\n\n    $(function () {\n        var scripts = [\n                location.search.substring(1) || 'assets/bootstrap-table/src/bootstrap-table.js',\n                'assets/bootstrap-table/src/extensions/export/bootstrap-table-export.js',\n                'http://rawgit.com/hhurz/tableExport.jquery.plugin/master/tableExport.js',\n                'assets/bootstrap-table/src/extensions/editable/bootstrap-table-editable.js',\n                'http://rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/js/bootstrap-editable.js'\n            ],\n            eachSeries = function (arr, iterator, callback) {\n                callback = callback || function () {};\n                if (!arr.length) {\n                    return callback();\n                }\n                var completed = 0;\n                var iterate = function () {\n                    iterator(arr[completed], function (err) {\n                        if (err) {\n                            callback(err);\n                            callback = function () {};\n                        }\n                        else {\n                            completed += 1;\n                            if (completed >= arr.length) {\n                                callback(null);\n                            }\n                            else {\n                                iterate();\n                            }\n                        }\n                    });\n                };\n                iterate();\n            };\n\n        eachSeries(scripts, getScript, initTable);\n    });\n\n    function getScript(url, callback) {\n        var head = document.getElementsByTagName('head')[0];\n        var script = document.createElement('script');\n        script.src = url;\n\n        var done = false;\n        // Attach handlers for all browsers\n        script.onload = script.onreadystatechange = function() {\n            if (!done && (!this.readyState ||\n                    this.readyState == 'loaded' || this.readyState == 'complete')) {\n                done = true;\n                if (callback)\n                    callback();\n\n                // Handle memory leak in IE\n                script.onload = script.onreadystatechange = null;\n            }\n        };\n\n        head.appendChild(script);\n\n        // We handle everything using the script element injection\n        return undefined;\n    }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-bootstrap.js",
    "content": "var BootstrapTable = function () {\n\n    var TableTransform = function () {\n         var $table_transform = $('#table-transform');\n        $('#transform').click(function () {\n            $table_transform.bootstrapTable();\n        });\n        $('#destroy').click(function () {\n            $table_transform.bootstrapTable('destroy');\n        });\n    }\n\n    var TableStyle = function () {\n        var $table_style = $('#table-style');\n       // $table_style.bootstrapTable();\n\n        $('#hover, #striped, #condensed').click(function () {\n            var classes = 'table';\n\n            if ($('#hover').prop('checked')) {\n                classes += ' table-hover';\n            }\n            if ($('#condensed').prop('checked')) {\n                classes += ' table-condensed';\n            }\n            $('#table-style').bootstrapTable('destroy')\n                .bootstrapTable({\n                    classes: classes,\n                    striped: $('#striped').prop('checked')\n                });\n        });\n\n        function rowStyle(row, index) {\n            var bs_classes = ['active', 'success', 'info', 'warning', 'danger'];\n\n            if (index % 2 === 0 && index / 2 < bs_classes.length) {\n                return {\n                    classes: bs_classes[index / 2]\n                };\n            }\n            return {};\n        }\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            TableTransform();\n            TableStyle();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    BootstrapTable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-ajax.js",
    "content": "var TableDatatablesAjax = function () {\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n    }\n\n    var handleDemo1 = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_ajax\"),\n            onSuccess: function (grid, response) {\n                // grid:        grid object\n                // response:    json object of server side ajax response\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            onDataLoad: function(grid) {\n                // execute some code on ajax data load\n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n                \n                \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/table_ajax.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ]// set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n        //grid.setAjaxParam(\"customActionType\", \"group_action\");\n        //grid.getDataTable().ajax.reload();\n        //grid.clearAjaxParams();\n    }\n\n    var handleDemo2 = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_ajax_2\"),\n            onSuccess: function (grid, response) {\n                // grid:        grid object\n                // response:    json object of server side ajax response\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            onDataLoad: function(grid) {\n                // execute some code on ajax data load\n            },\n\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n               \n                \"dom\": \"<'row'<'col-md-8 col-sm-12'i><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'i><'col-md-4 col-sm-12'>>\",\n\n                \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n                \"pageLength\": 10, // default record count per page\n\n                \"ajax\": {\n                    \"url\": \"../demo/table_ajax.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ],// set first column as a default sort by asc,\n\n                \"language\": {\n                    \"loadingRecords\": \"Please wait ...\",\n                    \"zeroRecords\": \"No records\",\n                    \"emptyTable\": \"No data available in table\",\n                    \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                },\n\n                scrollY: 400,\n                deferRender:    true,\n                scroller: {\n                    loadingIndicator: true\n                }\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n        //grid.setAjaxParam(\"customActionType\", \"group_action\");\n        //grid.getDataTable().ajax.reload();\n        //grid.clearAjaxParams();\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            initPickers();\n            handleDemo1();\n            handleDemo2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesAjax.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-buttons.js",
    "content": "var TableDatatablesButtons = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'copy', className: 'btn red btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'excel', className: 'btn yellow btn-outline ' },\n                { extend: 'csv', className: 'btn purple btn-outline ' },\n                { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: true,\n\n            //\"ordering\": false, disable column ordering \n            //\"paging\": false, disable pagination\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'copy', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'excel', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' },\n                {\n                    text: 'Reload',\n                    className: 'btn default',\n                    action: function ( e, dt, node, config ) {\n                        //dt.ajax.reload();\n                        alert('Custom Button');\n                    }\n                }\n            ],\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable3 = function () {\n        var table = $('#sample_3');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'copy', className: 'btn red btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'excel', className: 'btn yellow btn-outline ' },\n                { extend: 'csv', className: 'btn purple btn-outline ' },\n                { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: true,\n\n            //\"ordering\": false, disable column ordering \n            //\"paging\": false, disable pagination\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            //\"dom\": \"<'row' <'col-md-12'>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n\n        // handle datatable custom tools\n        $('#sample_3_tools > li > a.tool-action').on('click', function() {\n            var action = $(this).attr('data-action');\n            oTable.DataTable().button(action).trigger();\n        });\n    }\n\n    var initAjaxDatatables = function () {\n\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_ajax\"),\n            onSuccess: function (grid, response) {\n                // grid:        grid object\n                // response:    json object of server side ajax response\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            onDataLoad: function(grid) {\n                // execute some code on ajax data load\n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n                \n                \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/table_ajax.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ],// set first column as a default sort by asc\n            \n                // Or you can use remote translation file\n                //\"language\": {\n                //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n                //},\n\n                buttons: [\n                    { extend: 'print', className: 'btn default' },\n                    { extend: 'copy', className: 'btn default' },\n                    { extend: 'pdf', className: 'btn default' },\n                    { extend: 'excel', className: 'btn default' },\n                    { extend: 'csv', className: 'btn default' },\n                    {\n                        text: 'Reload',\n                        className: 'btn default',\n                        action: function ( e, dt, node, config ) {\n                            dt.ajax.reload();\n                            alert('Datatable reloaded!');\n                        }\n                    }\n                ],\n\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n        //grid.setAjaxParam(\"customActionType\", \"group_action\");\n        //grid.getDataTable().ajax.reload();\n        //grid.clearAjaxParams();\n\n        // handle datatable custom tools\n        $('#datatable_ajax_tools > li > a.tool-action').on('click', function() {\n            var action = $(this).attr('data-action');\n            grid.getDataTable().button(action).trigger();\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n            initTable3();\n\n            initAjaxDatatables();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesButtons.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-colreorder.js",
    "content": "var TableDatatablesColreorder = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: true,\n\n            // setup colreorder extension: http://datatables.net/extensions/colreorder/\n            colReorder: {\n                reorderCallback: function () {\n                    console.log( 'callback' );\n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup colreorder extension: http://datatables.net/extensions/colreorder/\n            colReorder: {\n                reorderCallback: function () {\n                    console.log( 'callback' );\n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesColreorder.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-editable.js",
    "content": "var TableDatatablesEditable = function () {\n\n    var handleTable = function () {\n\n        function restoreRow(oTable, nRow) {\n            var aData = oTable.fnGetData(nRow);\n            var jqTds = $('>td', nRow);\n\n            for (var i = 0, iLen = jqTds.length; i < iLen; i++) {\n                oTable.fnUpdate(aData[i], nRow, i, false);\n            }\n\n            oTable.fnDraw();\n        }\n\n        function editRow(oTable, nRow) {\n            var aData = oTable.fnGetData(nRow);\n            var jqTds = $('>td', nRow);\n            jqTds[0].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[0] + '\">';\n            jqTds[1].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[1] + '\">';\n            jqTds[2].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[2] + '\">';\n            jqTds[3].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[3] + '\">';\n            jqTds[4].innerHTML = '<a class=\"edit\" href=\"\">Save</a>';\n            jqTds[5].innerHTML = '<a class=\"cancel\" href=\"\">Cancel</a>';\n        }\n\n        function saveRow(oTable, nRow) {\n            var jqInputs = $('input', nRow);\n            oTable.fnUpdate(jqInputs[0].value, nRow, 0, false);\n            oTable.fnUpdate(jqInputs[1].value, nRow, 1, false);\n            oTable.fnUpdate(jqInputs[2].value, nRow, 2, false);\n            oTable.fnUpdate(jqInputs[3].value, nRow, 3, false);\n            oTable.fnUpdate('<a class=\"edit\" href=\"\">Edit</a>', nRow, 4, false);\n            oTable.fnUpdate('<a class=\"delete\" href=\"\">Delete</a>', nRow, 5, false);\n            oTable.fnDraw();\n        }\n\n        function cancelEditRow(oTable, nRow) {\n            var jqInputs = $('input', nRow);\n            oTable.fnUpdate(jqInputs[0].value, nRow, 0, false);\n            oTable.fnUpdate(jqInputs[1].value, nRow, 1, false);\n            oTable.fnUpdate(jqInputs[2].value, nRow, 2, false);\n            oTable.fnUpdate(jqInputs[3].value, nRow, 3, false);\n            oTable.fnUpdate('<a class=\"edit\" href=\"\">Edit</a>', nRow, 4, false);\n            oTable.fnDraw();\n        }\n\n        var table = $('#sample_editable_1');\n\n        var oTable = table.dataTable({\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // set the initial value\n            \"pageLength\": 5,\n\n            \"language\": {\n                \"lengthMenu\": \" _MENU_ records\"\n            },\n            \"columnDefs\": [{ // set default column settings\n                'orderable': true,\n                'targets': [0]\n            }, {\n                \"searchable\": true,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [0, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = $(\"#sample_editable_1_wrapper\");\n\n        var nEditing = null;\n        var nNew = false;\n\n        $('#sample_editable_1_new').click(function (e) {\n            e.preventDefault();\n\n            if (nNew && nEditing) {\n                if (confirm(\"Previose row not saved. Do you want to save it ?\")) {\n                    saveRow(oTable, nEditing); // save\n                    $(nEditing).find(\"td:first\").html(\"Untitled\");\n                    nEditing = null;\n                    nNew = false;\n\n                } else {\n                    oTable.fnDeleteRow(nEditing); // cancel\n                    nEditing = null;\n                    nNew = false;\n                    \n                    return;\n                }\n            }\n\n            var aiNew = oTable.fnAddData(['', '', '', '', '', '']);\n            var nRow = oTable.fnGetNodes(aiNew[0]);\n            editRow(oTable, nRow);\n            nEditing = nRow;\n            nNew = true;\n        });\n\n        table.on('click', '.delete', function (e) {\n            e.preventDefault();\n\n            if (confirm(\"Are you sure to delete this row ?\") == false) {\n                return;\n            }\n\n            var nRow = $(this).parents('tr')[0];\n            oTable.fnDeleteRow(nRow);\n            alert(\"Deleted! Do not forget to do some ajax to sync with backend :)\");\n        });\n\n        table.on('click', '.cancel', function (e) {\n            e.preventDefault();\n            if (nNew) {\n                oTable.fnDeleteRow(nEditing);\n                nEditing = null;\n                nNew = false;\n            } else {\n                restoreRow(oTable, nEditing);\n                nEditing = null;\n            }\n        });\n\n        table.on('click', '.edit', function (e) {\n            e.preventDefault();\n            nNew = false;\n            \n            /* Get the row as a parent of the link that was clicked on */\n            var nRow = $(this).parents('tr')[0];\n\n            if (nEditing !== null && nEditing != nRow) {\n                /* Currently editing - but not this row - restore the old before continuing to edit mode */\n                restoreRow(oTable, nEditing);\n                editRow(oTable, nRow);\n                nEditing = nRow;\n            } else if (nEditing == nRow && this.innerHTML == \"Save\") {\n                /* Editing this row and want to save it */\n                saveRow(oTable, nEditing);\n                nEditing = null;\n                alert(\"Updated! Do not forget to do some ajax to sync with backend :)\");\n            } else {\n                /* No edit in progress - let's start one */\n                editRow(oTable, nRow);\n                nEditing = nRow;\n            }\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            handleTable();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesEditable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-fixedheader.js",
    "content": "var TableDatatablesFixedHeader = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var fixedHeaderOffset = 0;\n        if (App.getViewPort().width < App.getResponsiveBreakpoint('md')) {\n            if ($('.page-header').hasClass('page-header-fixed-mobile')) {\n                fixedHeaderOffset = $('.page-header').outerHeight(true);\n            } \n        } else if ($('.page-header').hasClass('navbar-fixed-top')) {\n            fixedHeaderOffset = $('.page-header').outerHeight(true);\n        } else if ($('body').hasClass('page-header-fixed')) {\n            fixedHeaderOffset = 64; // admin 5 fixed height\n        }\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup rowreorder extension: http://datatables.net/extensions/fixedheader/\n            fixedHeader: {\n                header: true,\n                headerOffset: fixedHeaderOffset\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 20,\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n      });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var fixedHeaderOffset = 0;\n        if (App.getViewPort().width < App.getResponsiveBreakpoint('md')) {\n            if ($('.page-header').hasClass('page-header-fixed-mobile')) {\n                fixedHeaderOffset = $('.page-header').outerHeight(true);\n            } \n        } else if ($('.page-header').hasClass('navbar-fixed-top')) {\n            fixedHeaderOffset = $('.page-header').outerHeight(true);\n        } else if ($('body').hasClass('page-header-fixed')) {\n            fixedHeaderOffset = 64; // admin 5 fixed height\n        }\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup rowreorder extension: http://datatables.net/extensions/fixedheader/\n            fixedHeader: {\n                header: true,\n                footer: true,\n                headerOffset: fixedHeaderOffset\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 30, -1],\n                [5, 10, 15, 30, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 30,\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n      });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesFixedHeader.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-managed.js",
    "content": "var TableDatatablesManaged = function () {\n\n    var initTable1 = function () {\n\n        var table = $('#sample_1');\n\n        // begin first table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 5,            \n            \"pagingType\": \"bootstrap_full_number\",\n            \"columnDefs\": [\n                {  // set default column settings\n                    'orderable': false,\n                    'targets': [0]\n                }, \n                {\n                    \"searchable\": false,\n                    \"targets\": [0]\n                },\n                {\n                    \"className\": \"dt-right\", \n                    //\"targets\": [2]\n                }\n            ],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_1_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                    $(this).parents('tr').addClass(\"active\");\n                } else {\n                    $(this).prop(\"checked\", false);\n                    $(this).parents('tr').removeClass(\"active\");\n                }\n            });\n        });\n\n        table.on('change', 'tbody tr .checkboxes', function () {\n            $(this).parents('tr').toggleClass(\"active\");\n        });\n    }\n\n    var initTable1_2 = function () {\n\n        var table = $('#sample_1_2');\n\n        // begin first table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": false, // save datatable state(pagination, sort, etc) in cookie.\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n\n            // set the initial value\n            \"pageLength\": 5,            \n            \"pagingType\": \"bootstrap_full_number\",\n            \"columnDefs\": [\n                {  // set default column settings\n                    'orderable': false,\n                    'targets': [0]\n                }, \n                {\n                    \"searchable\": false,\n                    \"targets\": [0]\n                },\n                {\n                    \"className\": \"dt-right\", \n                    //\"targets\": [2]\n                }\n            ],\n\n            \"order\": [\n                [1, \"asc\"]\n            ], // set first column as a default sort by asc\n\n            initComplete: function () {\n\n                // username column\n                this.api().column(1).every(function(){\n                    var column = this;\n                    var select = $('<select class=\"form-control input-sm\"><option value=\"\">Select</option></select>')\n                        .appendTo( $(column.footer()).empty() )\n                        .on( 'change', function () {\n                            var val = $.fn.dataTable.util.escapeRegex(\n                                $(this).val()\n                            );     \n                            column\n                                .search( val ? '^'+val+'$' : '', true, false )\n                                .draw();\n                        } );\n     \n                    column.data().unique().sort().each( function ( d, j ) {\n                        select.append( '<option value=\"'+d+'\">'+d+'</option>' )\n                    } );\n                });\n\n            }\n        });\n\n        var tableWrapper = jQuery('#sample_1_2_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                    $(this).parents('tr').addClass(\"active\");\n                } else {\n                    $(this).prop(\"checked\", false);\n                    $(this).parents('tr').removeClass(\"active\");\n                }\n            });\n        });\n\n        table.on('change', 'tbody tr .checkboxes', function () {\n            $(this).parents('tr').toggleClass(\"active\");\n        });\n    }\n\n    var initTable2 = function () {\n\n        var table = $('#sample_2');\n\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \"pagingType\": \"bootstrap_extended\",\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 5,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_2_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    var initTable3 = function () {\n\n        var table = $('#sample_3');\n\n        // begin: third table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \n            \"lengthMenu\": [\n                [6, 15, 20, -1],\n                [6, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 6,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_3_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    var initTable4 = function () {\n\n        var table = $('#sample_4');\n\n        // begin: third table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \n            \"lengthMenu\": [\n                [6, 15, 20, -1],\n                [6, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 6,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_4_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    var initTable5 = function () {\n\n        var table = $('#sample_5');\n\n        // begin: third table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            \"footerCallback\": function ( row, data, start, end, display ) {\n                var api = this.api(), data;\n     \n                // Remove the formatting to get integer data for summation\n                var intVal = function ( i ) {\n                    return typeof i === 'string' ?\n                        i.replace(/[\\$,]/g, '')*1 :\n                        typeof i === 'number' ?\n                            i : 0;\n                };\n     \n                // Total over all pages\n                total = api\n                    .column( 3 )\n                    .data()\n                    .reduce( function (a, b) {\n                        return intVal(a) + intVal(b);\n                    }, 0 );\n     \n                // Total over this page\n                pageTotal = api\n                    .column( 3, { page: 'current'} )\n                    .data()\n                    .reduce( function (a, b) {\n                        return intVal(a) + intVal(b);\n                    }, 0 );\n     \n                // Update footer\n                $( api.column( 3 ).footer() ).html(\n                    '$'+pageTotal +' ( $'+ total +' total)'\n                );\n            },\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \n            \"lengthMenu\": [\n                [6, 15, 20, -1],\n                [6, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 6,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_5_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable1_2();\n\n            initTable2();\n            initTable3();\n            initTable4();\n            initTable5();\n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        TableDatatablesManaged.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-responsive.js",
    "content": "var TableDatatablesResponsive = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                   \n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                    type: 'column',\n                    target: 'tr'\n                }\n            },\n            columnDefs: [ {\n                className: 'control',\n                orderable: false,\n                targets:   0\n            } ],\n\n            order: [ 1, 'asc' ],\n            \n            // pagination control\n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n            \"pagingType\": 'bootstrap_extended', // pagination type\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable3 = function () {\n        var table = $('#sample_3');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                   \n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable4 = function () {\n        var table = $('#sample_4');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                   \n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n    \n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n            initTable3();\n            initTable4();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesResponsive.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-rowreorder.js",
    "content": "var TableDatatablesRowreorder = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup rowreorder extension: http://datatables.net/extensions/rowreorder/\n            rowReorder: {\n\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup colreorder extension: http://datatables.net/extensions/colreorder/\n            colReorder: {\n                reorderCallback: function () {\n                    console.log( 'callback' );\n                }\n            },\n\n            // setup rowreorder extension: http://datatables.net/extensions/rowreorder/\n            rowReorder: {\n\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesRowreorder.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/table-datatables-scroller.js",
    "content": "var TableDatatablesScroller = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            scrollY:        300,\n            deferRender:    true,\n            scroller:       true,\n\n            stateSave:      true,\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [10, 15, 20, -1],\n                [10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"Loading...\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            serverSide: true,\n            ordering: false,\n            searching: false,\n            ajax: function ( data, callback, settings ) {\n                var out = [];\n     \n                for ( var i=data.start, ien=data.start+data.length ; i<ien ; i++ ) {\n                    out.push( [ i+'-1', i+'-2', i+'-3', i+'-4', i+'-5' ] );\n                }\n     \n                setTimeout( function () {\n                    callback( {\n                        draw: data.draw,\n                        data: out,\n                        recordsTotal: 5000000,\n                        recordsFiltered: 5000000\n                    } );\n                }, 50 );\n            },\n            scrollY: 400,\n            scroller: {\n                loadingIndicator: true\n            },\n\n            \"dom\": \"<'row' <'col-md-12'B>><'table-scrollable't><'row'<'col-md-12'i>>\"\n        });\n    }\n\n    var initTable3 = function () {\n        var table = $('#sample_3');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            scrollY:        300,\n            deferRender:    true,\n            scroller:       true,\n            deferRender:    true,\n            scrollX:        true,\n            scrollCollapse: true,        \n\n            stateSave:      true,\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [10, 15, 20, -1],\n                [10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable4 = function () {\n        var table = $('#sample_4');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            scrollY:        300,\n            deferRender:    true,\n            scroller:       true,\n            deferRender:    true,\n            scrollX:        true,\n            scrollCollapse: true,      \n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [10, 15, 20, -1],\n                [10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n            initTable3();\n            initTable4();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesScroller.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/tasks.js",
    "content": "var AppTask = function () {\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\t\t\t$('.task-list input[type=\"checkbox\"]').change(function() {\n\t\t\t\tif ($(this).is(':checked')) { \n\t\t\t\t\t$(this).parents('li').addClass(\"task-done\"); \n\t\t\t\t} else { \n\t\t\t\t\t$(this).parents('li').removeClass(\"task-done\"); \n\t\t\t\t}\n\t\t\t}); \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTask.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/timeline-2.js",
    "content": "var AppTimeline2 = function () {\n\n    var mapPolygone = function () {\n        var map = new GMaps({\n            div: '#gmap_polygons',\n            lat: -12.043333,\n            lng: -77.028333\n        });\n\n        var path = [\n            [-12.040397656836609, -77.03373871559225],\n            [-12.040248585302038, -77.03993927003302],\n            [-12.050047116528843, -77.02448169303511],\n            [-12.044804866577001, -77.02154422636042]\n        ];\n\n        var polygon = map.drawPolygon({\n            paths: path,\n            strokeColor: '#BBD8E9',\n            strokeOpacity: 1,\n            strokeWeight: 3,\n            fillColor: '#BBD8E9',\n            fillOpacity: 0.6\n        });\n    }\n\n    return {\n        //main function to initiate map samples\n        init: function () {\n            mapPolygone();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTimeline2.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/timeline.js",
    "content": "var AppTimeline = function () {\n\n    var mapPolygone = function () {\n        var map = new GMaps({\n            div: '#gmap_polygons',\n            lat: -12.043333,\n            lng: -77.028333\n        });\n\n        var path = [\n            [-12.040397656836609, -77.03373871559225],\n            [-12.040248585302038, -77.03993927003302],\n            [-12.050047116528843, -77.02448169303511],\n            [-12.044804866577001, -77.02154422636042]\n        ];\n\n        var polygon = map.drawPolygon({\n            paths: path,\n            strokeColor: '#BBD8E9',\n            strokeOpacity: 1,\n            strokeWeight: 3,\n            fillColor: '#BBD8E9',\n            fillOpacity: 0.6\n        });\n    }\n\n    return {\n        //main function to initiate map samples\n        init: function () {\n            mapPolygone();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTimeline.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-alerts-api.js",
    "content": "var UIAlertsApi = function () {\n\n    var handleDemo = function() {        \n        $('#alert_show').click(function(){\n            App.alert({\n                container: $('#alert_container').val(), // alerts parent container(by default placed after the page breadcrumbs)\n                place: $('#alert_place').val(), // append or prepent in container \n                type: $('#alert_type').val(),  // alert's type\n                message: $('#alert_message').val(),  // alert's message\n                close: $('#alert_close').is(\":checked\"), // make alert closable\n                reset: $('#alert_reset').is(\":checked\"), // close all previouse alerts first\n                focus: $('#alert_focus').is(\":checked\"), // auto scroll to the alert after shown\n                closeInSeconds: $('#alert_close_in_seconds').val(), // auto close after defined seconds\n                icon: $('#alert_icon').val() // put icon before the message\n            });\n        });\n    }\n\n    var handleCode = function() {\n        var myTextArea = document.getElementById('code_editor_demo');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            mode: 'javascript',\n            smartIndent: true,\n            indentWithTabs: true,\n            readOnly: true,\n            inputStyle: 'textarea',\n            theme: 'neo'\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            handleDemo();\n            handleCode();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIAlertsApi.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-blockui.js",
    "content": "var UIBlockUI = function() {\n\n    var handleSample1 = function() {\n\n        $('#blockui_sample_1_1').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_1_portlet_body'\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_1_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_1_2').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_1_portlet_body',\n                boxed: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_1_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_1_3').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_1_portlet_body',\n                animate: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_1_portlet_body');\n            }, 2000);\n        });\n    }\n\n    var handleSample2 = function() {\n\n        $('#blockui_sample_2_1').click(function() {\n            App.blockUI();\n\n            window.setTimeout(function() {\n                App.unblockUI();\n            }, 2000);\n        });\n\n        $('#blockui_sample_2_2').click(function() {\n            App.blockUI({\n                boxed: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI();\n            }, 2000);\n        });\n\n        $('#blockui_sample_2_3').click(function() {\n            App.startPageLoading({message: 'Please wait...'});\n\n            window.setTimeout(function() {\n                App.stopPageLoading();\n            }, 2000);\n        });\n\n        $('#blockui_sample_2_4').click(function() {\n            App.startPageLoading({animate: true});\n\n            window.setTimeout(function() {\n                App.stopPageLoading();\n            }, 2000);\n        });\n    }\n\n    var handleSample3 = function() {\n\n        $('#blockui_sample_3_1_0').click(function() {\n            App.blockUI({\n                target: '#basic',\n                overlayColor: 'none',\n                cenrerY: true,\n                animate: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#basic');\n            }, 2000);\n        });\n\n        $('#blockui_sample_3_1').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_3_1_element',\n                overlayColor: 'none',\n                animate: true\n            });\n        });\n\n        $('#blockui_sample_3_1_1').click(function() {\n            App.unblockUI('#blockui_sample_3_1_element');\n        });\n\n        $('#blockui_sample_3_2').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_3_2_element',\n                boxed: true\n            });\n        });\n\n        $('#blockui_sample_3_2_1').click(function() {\n            App.unblockUI('#blockui_sample_3_2_element');\n        });\n    }\n\n    var handleSample4 = function() {\n\n        $('#blockui_sample_4_1').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_4_portlet_body',\n                boxed: true,\n                message: 'Processing...'\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_4_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_4_2').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_4_portlet_body',\n                iconOnly: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_4_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_4_3').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_4_portlet_body',\n                boxed: true,\n                textOnly: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_4_portlet_body');\n            }, 2000);\n        });\n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function() {\n\n            handleSample1();\n            handleSample2();\n            handleSample3();\n            handleSample4();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIBlockUI.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-bootbox.js",
    "content": "var UIBootbox = function () {\n\n    var handleDemo = function() {\n\n        $('#demo_1').click(function(){\n                bootbox.alert(\"Hello world!\");    \n            });\n            //end #demo_1\n\n            $('#demo_2').click(function(){\n                bootbox.alert(\"Hello world!\", function() {\n                    alert(\"Hello world callback\");\n                });  \n            });\n            //end #demo_2\n        \n            $('#demo_3').click(function(){\n                bootbox.confirm(\"Are you sure?\", function(result) {\n                   alert(\"Confirm result: \"+result);\n                }); \n            });\n            //end #demo_3\n\n            $('#demo_4').click(function(){\n                bootbox.prompt(\"What is your name?\", function(result) {\n                    if (result === null) {\n                        alert(\"Prompt dismissed\");\n                    } else {\n                        alert(\"Hi <b>\"+result+\"</b>\");\n                    }\n                });\n            });\n            //end #demo_6\n\n            $('#demo_5').click(function(){\n                bootbox.dialog({\n                    message: \"I am a custom dialog\",\n                    title: \"Custom title\",\n                    buttons: {\n                      success: {\n                        label: \"Success!\",\n                        className: \"green\",\n                        callback: function() {\n                          alert(\"great success\");\n                        }\n                      },\n                      danger: {\n                        label: \"Danger!\",\n                        className: \"red\",\n                        callback: function() {\n                          alert(\"uh oh, look out!\");\n                        }\n                      },\n                      main: {\n                        label: \"Click ME!\",\n                        className: \"blue\",\n                        callback: function() {\n                          alert(\"Primary button\");\n                        }\n                      }\n                    }\n                });\n            });\n            //end #demo_7\n\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            handleDemo();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIBootbox.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-bootstrap-growl.js",
    "content": "var UIBootstrapGrowl = function() {\n\n    return {\n        //main function to initiate the module\n        init: function() {\n\n\n            $('#bs_growl_show').click(function(event) {\n\n                $.bootstrapGrowl($('#growl_text').val(), {\n                    ele: 'body', // which element to append to\n                    type: $('#growl_type').val(), // (null, 'info', 'danger', 'success', 'warning')\n                    offset: {\n                        from: $('#growl_offset').val(),\n                        amount: parseInt($('#growl_offset_val').val())\n                    }, // 'top', or 'bottom'\n                    align: $('#growl_align').val(), // ('left', 'right', or 'center')\n                    width: parseInt($('#growl_width')), // (integer, or 'auto')\n                    delay: $('#growl_delay').val(), // Time while the message will be displayed. It's not equivalent to the *demo* timeOut!\n                    allow_dismiss: $('#glowl_dismiss').is(\":checked\"), // If true then will display a cross to close the popup.\n                    stackup_spacing: 10 // spacing between consecutively stacked growls.\n                });\n\n            });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIBootstrapGrowl.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-buttons.js",
    "content": "var UIButtons = function () {\n\n    var handleButtons = function () {\n        $('.demo-loading-btn').click(function () {\n            var btn = $(this)\n            btn.button('loading')\n            setTimeout(function () {\n                btn.button('reset')\n            }, 3000)\n        });\n\n        Ladda.bind( '.mt-ladda-btn', { timeout: 2000 } );\n        Ladda.bind( '.mt-ladda-btn.mt-progress-demo ', {\n                callback: function( instance ) {\n                    var progress = 0;\n                    var interval = setInterval( function() {\n                        progress = Math.min( progress + Math.random() * 0.1, 1 );\n                        instance.setProgress( progress );\n\n                        if( progress === 1 ) {\n                            instance.stop();\n                            clearInterval( interval );\n                        }\n                    }, 200 );\n                }\n            } );\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleButtons();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIButtons.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-confirmations.js",
    "content": "var UIConfirmations = function () {\n\n    var handleSample = function () {\n        \n        $('#bs_confirmation_demo_1').on('confirmed.bs.confirmation', function () {\n            alert('You confirmed action #1');\n        });\n\n        $('#bs_confirmation_demo_1').on('canceled.bs.confirmation', function () {\n            alert('You canceled action #1');\n        });   \n\n        $('#bs_confirmation_demo_2').on('confirmed.bs.confirmation', function () {\n            alert('You confirmed action #2');\n        });\n\n        $('#bs_confirmation_demo_2').on('canceled.bs.confirmation', function () {\n            alert('You canceled action #2');\n        });\n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n           handleSample();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIConfirmations.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-datepaginator.js",
    "content": "var UIDatepaginator = function () {\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            //sample #1\n            $('#datepaginator_sample_1').datepaginator();\n\n            //sample #2\n            $('#datepaginator_sample_2').datepaginator({\n                size: \"large\"\n            });\n\n            //sample #3\n            $('#datepaginator_sample_3').datepaginator({\n                size: \"small\"\n            });\n\n            //sample #3\n            $('#datepaginator_sample_4').datepaginator({\n                onSelectedDateChanged: function(event, date) {\n                  alert(\"Selected date: \" + moment(date).format(\"Do, MMM YYYY\"));\n                }\n            });\n            \n        } // end init\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIDatepaginator.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-extended-modals.js",
    "content": "var UIExtendedModals = function () {\n\n    \n    return {\n        //main function to initiate the module\n        init: function () {\n        \n            // general settings\n            $.fn.modal.defaults.spinner = $.fn.modalmanager.defaults.spinner = \n              '<div class=\"loading-spinner\" style=\"width: 200px; margin-left: -100px;\">' +\n                '<div class=\"progress progress-striped active\">' +\n                  '<div class=\"progress-bar\" style=\"width: 100%;\"></div>' +\n                '</div>' +\n              '</div>';\n\n            $.fn.modalmanager.defaults.resize = true;\n\n            //dynamic demo:\n            $('.dynamic .demo').click(function(){\n              var tmpl = [\n                // tabindex is required for focus\n                '<div class=\"modal hide fade\" tabindex=\"-1\">',\n                  '<div class=\"modal-header\">',\n                    '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">×</button>',\n                    '<h4 class=\"modal-title\">Modal header</h4>', \n                  '</div>',\n                  '<div class=\"modal-body\">',\n                    '<p>Test</p>',\n                  '</div>',\n                  '<div class=\"modal-footer\">',\n                    '<a href=\"#\" data-dismiss=\"modal\" class=\"btn btn-default\">Close</a>',\n                    '<a href=\"#\" class=\"btn btn-primary\">Save changes</a>',\n                  '</div>',\n                '</div>'\n              ].join('');\n              \n              $(tmpl).modal();\n            });\n\n            //ajax demo:\n            var $modal = $('#ajax-modal');\n\n            $('#ajax-demo').on('click', function(){\n              // create the backdrop and wait for next modal to be triggered\n              $('body').modalmanager('loading');\n              var el = $(this);\n\n              setTimeout(function(){\n                  $modal.load(el.attr('data-url'), '', function(){\n                  $modal.modal();\n                });\n              }, 1000);\n            });\n\n            $modal.on('click', '.update', function(){\n              $modal.modal('loading');\n              setTimeout(function(){\n                $modal\n                  .modal('loading')\n                  .find('.modal-body')\n                    .prepend('<div class=\"alert alert-info fade in\">' +\n                      'Updated!<button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>' +\n                    '</div>');\n              }, 1000);\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {   alert(123);\n   UIExtendedModals.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-general.js",
    "content": "var UIGeneral = function () {\n\n    var handlePulsate = function () {\n        if (!jQuery().pulsate) {\n            return;\n        }\n\n        if (App.isIE8() == true) {\n            return; // pulsate plugin does not support IE8 and below\n        }\n\n        if (jQuery().pulsate) {\n            jQuery('#pulsate-regular').pulsate({\n                color: \"#bf1c56\"\n            });\n\n            jQuery('#pulsate-once').click(function () {\n                $('#pulsate-once-target').pulsate({\n                    color: \"#399bc3\",\n                    repeat: false\n                });\n            });\n\n            jQuery('#pulsate-crazy').click(function () {\n                $('#pulsate-crazy-target').pulsate({\n                    color: \"#fdbe41\",\n                    reach: 50,\n                    repeat: 10,\n                    speed: 100,\n                    glow: true\n                });\n            });\n        }\n    }\n\n    var handleDynamicPagination = function() {\n        $('#dynamic_pager_demo1').bootpag({\n            paginationClass: 'pagination',\n            next: '<i class=\"fa fa-angle-right\"></i>',\n            prev: '<i class=\"fa fa-angle-left\"></i>',\n            total: 6,\n            page: 1,\n        }).on(\"page\", function(event, num){\n            $(\"#dynamic_pager_content1\").html(\"Page \" + num + \" content here\"); // or some ajax content loading...\n        });\n\n        $('#dynamic_pager_demo2').bootpag({\n            paginationClass: 'pagination pagination-sm',\n            next: '<i class=\"fa fa-angle-right\"></i>',\n            prev: '<i class=\"fa fa-angle-left\"></i>',\n            total: 24,\n            page: 1,\n            maxVisible: 6 \n        }).on('page', function(event, num){\n            $(\"#dynamic_pager_content2\").html(\"Page \" + num + \" content here\"); // or some ajax content loading...\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handlePulsate();\n            handleDynamicPagination();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIGeneral.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-idletimeout.js",
    "content": "var UIIdleTimeout = function () {\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            // cache a reference to the countdown element so we don't have to query the DOM for it on each ping.\n            var $countdown;\n\n            $('body').append('');\n                    \n            // start the idle timer plugin\n            $.idleTimeout('#idle-timeout-dialog', '.modal-content button:last', {\n                idleAfter: 5, // 5 seconds\n                timeout: 30000, //30 seconds to timeout\n                pollingInterval: 5, // 5 seconds\n                keepAliveURL: '../demo/idletimeout_keepalive.php',\n                serverResponseEquals: 'OK',\n                onTimeout: function(){\n                    window.location = \"?p=page_user_lock_1\";\n                },\n                onIdle: function(){\n                    $('#idle-timeout-dialog').modal('show');\n                    $countdown = $('#idle-timeout-counter');\n\n                    $('#idle-timeout-dialog-keepalive').on('click', function () { \n                        $('#idle-timeout-dialog').modal('hide');\n                    });\n\n                    $('#idle-timeout-dialog-logout').on('click', function () { \n                        $('#idle-timeout-dialog').modal('hide');\n                        $.idleTimeout.options.onTimeout.call(this);\n                    });\n                },\n                onCountdown: function(counter){\n                    $countdown.html(counter); // update the counter\n                }\n            });\n            \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIIdleTimeout.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-modals.js",
    "content": "var UIModals = function () {\n\n    var handleModals = function () {\n        $(\"#draggable\").draggable({\n            handle: \".modal-header\"\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleModals();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIModals.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-nestable.js",
    "content": "var UINestable = function () {\n\n    var updateOutput = function (e) {\n        var list = e.length ? e : $(e.target),\n            output = list.data('output');\n        if (window.JSON) {\n            output.val(window.JSON.stringify(list.nestable('serialize'))); //, null, 2));\n        } else {\n            output.val('JSON browser support required for this demo.');\n        }\n    };\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            // activate Nestable for list 1\n            $('#nestable_list_1').nestable({\n                group: 1\n            })\n                .on('change', updateOutput);\n\n            // activate Nestable for list 2\n            $('#nestable_list_2').nestable({\n                group: 1\n            })\n                .on('change', updateOutput);\n\n            // output initial serialised data\n            updateOutput($('#nestable_list_1').data('output', $('#nestable_list_1_output')));\n            updateOutput($('#nestable_list_2').data('output', $('#nestable_list_2_output')));\n\n            $('#nestable_list_menu').on('click', function (e) {\n                var target = $(e.target),\n                    action = target.data('action');\n                if (action === 'expand-all') {\n                    $('.dd').nestable('expandAll');\n                }\n                if (action === 'collapse-all') {\n                    $('.dd').nestable('collapseAll');\n                }\n            });\n\n            $('#nestable_list_3').nestable();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UINestable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-notific8.js",
    "content": "var UINotific8 = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            \n                    $('#notific8_show').click(function(event) {\n                        var settings = {\n                                theme: $('#notific8_theme').val(),\n                                sticky: $('#notific8_sticky').is(':checked'),\n                                horizontalEdge: $('#notific8_pos_hor').val(),\n                                verticalEdge: $('#notific8_pos_ver').val()\n                            },\n                            $button = $(this);\n                        \n                        if ($.trim($('#notific8_heading').val()) != '') {\n                            settings.heading = $.trim($('#notific8_heading').val());\n                        }\n                        \n                        if (!settings.sticky) {\n                            settings.life = $('#notific8_life').val();\n                        }\n\n                        $.notific8('zindex', 11500);\n                        $.notific8($.trim($('#notific8_text').val()), settings);\n                        \n                        $button.attr('disabled', 'disabled');\n                        \n                        setTimeout(function() {\n                            $button.removeAttr('disabled');\n                        }, 1000);\n\n                    });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UINotific8.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-session-timeout.js",
    "content": "var SessionTimeout = function () {\n\n    var handlesessionTimeout = function () {\n        $.sessionTimeout({\n            title: 'Session Timeout Notification',\n            message: 'Your session is about to expire.',\n            keepAliveUrl: '../demo/timeout-keep-alive.php',\n            redirUrl: 'page_user_lock_1.html',\n            logoutUrl: 'page_user_login_1.html',\n            warnAfter: 5000, //warn after 5 seconds\n            redirAfter: 15000, //redirect after 10 secons,\n            ignoreUserActivity: true,\n            countdownMessage: 'Redirecting in {timer} seconds.',\n            countdownBar: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handlesessionTimeout();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   SessionTimeout.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-sweetalert.js",
    "content": "var SweetAlert = function () {\n\t\n\tvar setSweetAlertEvents = function() {\n\t\t$('.mt-sweetalert').each(function(){\n    \t\tvar sa_title = $(this).data('title');\n    \t\tvar sa_message = $(this).data('message');\n    \t\tvar sa_type = $(this).data('type');\t\n    \t\tvar sa_allowOutsideClick = $(this).data('allow-outside-click');\n    \t\tvar sa_showConfirmButton = $(this).data('show-confirm-button');\n    \t\tvar sa_showCancelButton = $(this).data('show-cancel-button');\n    \t\tvar sa_closeOnConfirm = $(this).data('close-on-confirm');\n    \t\tvar sa_closeOnCancel = $(this).data('close-on-cancel');\n    \t\tvar sa_confirmButtonText = $(this).data('confirm-button-text');\n    \t\tvar sa_cancelButtonText = $(this).data('cancel-button-text');\n    \t\tvar sa_popupTitleSuccess = $(this).data('popup-title-success');\n    \t\tvar sa_popupMessageSuccess = $(this).data('popup-message-success');\n    \t\tvar sa_popupTitleCancel = $(this).data('popup-title-cancel');\n    \t\tvar sa_popupMessageCancel = $(this).data('popup-message-cancel');\n    \t\tvar sa_confirmButtonClass = $(this).data('confirm-button-class');\n    \t\tvar sa_cancelButtonClass = $(this).data('cancel-button-class');\n    \t\n    \t\t$(this).click(function(){\n    \t\t\t//console.log(sa_btnClass);\n    \t\t\tswal({\n\t\t\t\t  title: sa_title,\n\t\t\t\t  text: sa_message,\n\t\t\t\t  type: sa_type,\n\t\t\t\t  allowOutsideClick: sa_allowOutsideClick,\n\t\t\t\t  showConfirmButton: sa_showConfirmButton,\n\t\t\t\t  showCancelButton: sa_showCancelButton,\n\t\t\t\t  confirmButtonClass: sa_confirmButtonClass,\n\t\t\t\t  cancelButtonClass: sa_cancelButtonClass,\n\t\t\t\t  closeOnConfirm: sa_closeOnConfirm,\n\t\t\t\t  closeOnCancel: sa_closeOnCancel,\n\t\t\t\t  confirmButtonText: sa_confirmButtonText,\n\t\t\t\t  cancelButtonText: sa_cancelButtonText,\n\t\t\t\t},\n\t\t\t\tfunction(isConfirm){\n\t\t\t        if (isConfirm){\n\t\t\t        \tswal(sa_popupTitleSuccess, sa_popupMessageSuccess, \"success\");\n\t\t\t        } else {\n\t\t\t\t\t\tswal(sa_popupTitleCancel, sa_popupMessageCancel, \"error\");\n\t\t\t        }\n\t\t\t\t});\n    \t\t});\n    \t});\n\t}\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        \tsetSweetAlertEvents();\n//        \tvvv();\n    \t},\n    \t\n    \tsuccess: function (msg){\n    \t\tswal({\n  \t\t\t  title: \"成功\",\n  \t\t\t  text: msg,\n  \t\t\t  type: \"success\",\n  \t\t\t  confirmButtonClass: \"btn-success\"\n  \t\t\t});\n    \t},\n    \t\n    \tinfo: function (msg){\n    \t\tswal({\n  \t\t\t  title: \"消息\",\n  \t\t\t  text: msg,\n  \t\t\t  type: \"info\",\n  \t\t\t  confirmButtonClass: \"btn-info \"\n  \t\t\t});\n    \t},\n    \t\n    \twarning: function (msg){\n    \t\tswal({\n  \t\t\t  title: \"提醒\",\n  \t\t\t  text: msg,\n  \t\t\t  type: \"warning\",\n  \t\t\t  confirmButtonClass: \"btn-warning \"\n  \t\t\t});\n    \t},\n    \t\n    \terror: function (msg){\n    \t\tswal({\n    \t\t\t  title: \"失败\",\n    \t\t\t  text: msg,\n    \t\t\t  type: \"error\",\n    \t\t\t  confirmButtonClass: \"btn-danger\"\n    \t\t\t});\n    \t},\n    \t\n    \terrorSessionExpire: function (){\n    \t\tswal({\n    \t\t\t  title: \"失败\",\n    \t\t\t  text: \"您的登录信息已过期，请重新登录\",\n    \t\t\t  type: \"error\",\n    \t\t\t  confirmButtonClass: \"btn-danger\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/login.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tuserRegistSuccess: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"注册成功\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/center.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tuserResetPwdSuccess: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"新密码重置成功，请重新登录...\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/login.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tuserFaceImageUploadSuccess: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"图片上传成功\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/center.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tresetPwdToLogin: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"密码重置成功！请重新登录.\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location.reload();\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \t// 门户页面上的部分功能需要登录才可以继续\n    \tuNeedLogin: function (url){\n    \t\tswal({\n  \t\t\t  title: \"\",\n  \t\t\t  text: \"请登录后操作\",\n  \t\t\t  type: \"info\",\n  \t\t\t  confirmButtonClass: \"btn-info\"\n        \t}, function(isConfirm) {\n  \t\t\t\tif (isConfirm) {\n  \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/login.action?redirectUrl=\" + url;\n  \t\t\t\t}\n  \t\t\t});\n    \t}\n    \t\n    }\n\n}();\n\njQuery(document).ready(function() {\n    SweetAlert.init();\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-toastr.js",
    "content": "var UIToastr = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            var i = -1,\n                toastCount = 0,\n                $toastlast,\n                getMessage = function () {\n                    var msgs = ['Hello, some notification sample goes here',\n                        '<div><input class=\"form-control input-small\" value=\"textbox\"/>&nbsp;<a href=\"http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=keenthemes\" target=\"_blank\">Check this out</a></div><div><button type=\"button\" id=\"okBtn\" class=\"btn blue\">Close me</button><button type=\"button\" id=\"surpriseBtn\" class=\"btn default\" style=\"margin: 0 8px 0 8px\">Surprise me</button></div>',\n                        'Did you like this one ? :)',\n                        'Totally Awesome!!!',\n                        'Yeah, this is the Metronic!',\n                        'Explore the power of App. Purchase it now!'\n                    ];\n                    i++;\n                    if (i === msgs.length) {\n                        i = 0;\n                    }\n\n                    return msgs[i];\n                };\n\n            $('#showtoast').click(function () {\n                var shortCutFunction = $(\"#toastTypeGroup input:checked\").val();\n                var msg = $('#message').val();\n                var title = $('#title').val() || '';\n                var $showDuration = $('#showDuration');\n                var $hideDuration = $('#hideDuration');\n                var $timeOut = $('#timeOut');\n                var $extendedTimeOut = $('#extendedTimeOut');\n                var $showEasing = $('#showEasing');\n                var $hideEasing = $('#hideEasing');\n                var $showMethod = $('#showMethod');\n                var $hideMethod = $('#hideMethod');\n                var toastIndex = toastCount++;\n\n                toastr.options = {\n                    closeButton: $('#closeButton').prop('checked'),\n                    debug: $('#debugInfo').prop('checked'),\n                    positionClass: $('#positionGroup input:checked').val() || 'toast-top-right',\n                    onclick: null\n                };\n\n                if ($('#addBehaviorOnToastClick').prop('checked')) {\n                    toastr.options.onclick = function () {\n                        alert('You can perform some custom action after a toast goes away');\n                    };\n                }\n\n                if ($showDuration.val().length) {\n                    toastr.options.showDuration = $showDuration.val();\n                }\n\n                if ($hideDuration.val().length) {\n                    toastr.options.hideDuration = $hideDuration.val();\n                }\n\n                if ($timeOut.val().length) {\n                    toastr.options.timeOut = $timeOut.val();\n                }\n\n                if ($extendedTimeOut.val().length) {\n                    toastr.options.extendedTimeOut = $extendedTimeOut.val();\n                }\n\n                if ($showEasing.val().length) {\n                    toastr.options.showEasing = $showEasing.val();\n                }\n\n                if ($hideEasing.val().length) {\n                    toastr.options.hideEasing = $hideEasing.val();\n                }\n\n                if ($showMethod.val().length) {\n                    toastr.options.showMethod = $showMethod.val();\n                }\n\n                if ($hideMethod.val().length) {\n                    toastr.options.hideMethod = $hideMethod.val();\n                }\n\n                if (!msg) {\n                    msg = getMessage();\n                }\n\n                $(\"#toastrOptions\").text(\"Command: toastr[\" + shortCutFunction + \"](\\\"\" + msg + (title ? \"\\\", \\\"\" + title : '') + \"\\\")\\n\\ntoastr.options = \" + JSON.stringify(toastr.options, null, 2));\n\n                var $toast = toastr[shortCutFunction](msg, title); // Wire up an event handler to a button in the toast, if it exists\n                $toastlast = $toast;\n                if ($toast.find('#okBtn').length) {\n                    $toast.delegate('#okBtn', 'click', function () {\n                        alert('you clicked me. i was toast #' + toastIndex + '. goodbye!');\n                        $toast.remove();\n                    });\n                }\n                if ($toast.find('#surpriseBtn').length) {\n                    $toast.delegate('#surpriseBtn', 'click', function () {\n                        alert('Surprise! you clicked me. i was toast #' + toastIndex + '. You could perform an action here.');\n                    });\n                }\n\n                $('#clearlasttoast').click(function () {\n                    toastr.clear($toastlast);\n                });\n            });\n            $('#cleartoasts').click(function () {\n                toastr.clear();\n            });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIToastr.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/ui-tree.js",
    "content": "var UITree = function () {\n\n    var handleSample1 = function () {\n\n        $('#tree_1').jstree({\n            \"core\" : {\n                \"themes\" : {\n                    \"responsive\": false\n                }            \n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            },\n            \"plugins\": [\"types\"]\n        });\n\n        // handle link clicks in tree nodes(support target=\"_blank\" as well)\n        $('#tree_1').on('select_node.jstree', function(e,data) { \n            var link = $('#' + data.selected).find('a');\n            if (link.attr(\"href\") != \"#\" && link.attr(\"href\") != \"javascript:;\" && link.attr(\"href\") != \"\") {\n                if (link.attr(\"target\") == \"_blank\") {\n                    link.attr(\"href\").target = \"_blank\";\n                }\n                document.location.href = link.attr(\"href\");\n                return false;\n            }\n        });\n    }\n\n    var handleSample2 = function () {\n        $('#tree_2').jstree({\n            'plugins': [\"wholerow\", \"checkbox\", \"types\"],\n            'core': {\n                \"themes\" : {\n                    \"responsive\": false\n                },    \n                'data': [{\n                        \"text\": \"Same but with checkboxes\",\n                        \"children\": [{\n                            \"text\": \"initially selected\",\n                            \"state\": {\n                                \"selected\": true\n                            }\n                        }, {\n                            \"text\": \"custom icon\",\n                            \"icon\": \"fa fa-warning icon-state-danger\"\n                        }, {\n                            \"text\": \"initially open\",\n                            \"icon\" : \"fa fa-folder icon-state-default\",\n                            \"state\": {\n                                \"opened\": true\n                            },\n                            \"children\": [\"Another node\"]\n                        }, {\n                            \"text\": \"custom icon\",\n                            \"icon\": \"fa fa-warning icon-state-warning\"\n                        }, {\n                            \"text\": \"disabled node\",\n                            \"icon\": \"fa fa-check icon-state-success\",\n                            \"state\": {\n                                \"disabled\": true\n                            }\n                        }]\n                    },\n                    \"And wholerow selection\"\n                ]\n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            }\n        });\n    }\n\n    var contextualMenuSample = function() {\n\n        $(\"#tree_3\").jstree({\n            \"core\" : {\n                \"themes\" : {\n                    \"responsive\": false\n                }, \n                // so that create works\n                \"check_callback\" : true,\n                'data': [{\n                        \"text\": \"Parent Node\",\n                        \"children\": [{\n                            \"text\": \"Initially selected\",\n                            \"state\": {\n                                \"selected\": true\n                            }\n                        }, {\n                            \"text\": \"Custom Icon\",\n                            \"icon\": \"fa fa-warning icon-state-danger\"\n                        }, {\n                            \"text\": \"Initially open\",\n                            \"icon\" : \"fa fa-folder icon-state-success\",\n                            \"state\": {\n                                \"opened\": true\n                            },\n                            \"children\": [\n                                {\"text\": \"Another node\", \"icon\" : \"fa fa-file icon-state-warning\"}\n                            ]\n                        }, {\n                            \"text\": \"Another Custom Icon\",\n                            \"icon\": \"fa fa-warning icon-state-warning\"\n                        }, {\n                            \"text\": \"Disabled Node\",\n                            \"icon\": \"fa fa-check icon-state-success\",\n                            \"state\": {\n                                \"disabled\": true\n                            }\n                        }, {\n                            \"text\": \"Sub Nodes\",\n                            \"icon\": \"fa fa-folder icon-state-danger\",\n                            \"children\": [\n                                {\"text\": \"Item 1\", \"icon\" : \"fa fa-file icon-state-warning\"},\n                                {\"text\": \"Item 2\", \"icon\" : \"fa fa-file icon-state-success\"},\n                                {\"text\": \"Item 3\", \"icon\" : \"fa fa-file icon-state-default\"},\n                                {\"text\": \"Item 4\", \"icon\" : \"fa fa-file icon-state-danger\"},\n                                {\"text\": \"Item 5\", \"icon\" : \"fa fa-file icon-state-info\"}\n                            ]\n                        }]\n                    },\n                    \"Another Node\"\n                ]\n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            },\n            \"state\" : { \"key\" : \"demo2\" },\n            \"plugins\" : [ \"contextmenu\", \"dnd\", \"state\", \"types\" ]\n        });\n    \n    }\n\n     var ajaxTreeSample = function() {\n\n        $(\"#tree_4\").jstree({\n            \"core\" : {\n                \"themes\" : {\n                    \"responsive\": false\n                }, \n                // so that create works\n                \"check_callback\" : true,\n                'data' : {\n                    'url' : function (node) {\n                      return '../demo/jstree_ajax_data.php';\n                    },\n                    'data' : function (node) {\n                      return { 'parent' : node.id };\n                    }\n                }\n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            },\n            \"state\" : { \"key\" : \"demo3\" },\n            \"plugins\" : [ \"dnd\", \"state\", \"types\" ]\n        });\n    \n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            handleSample1();\n            handleSample2();\n            contextualMenuSample();\n            ajaxTreeSample();\n\n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n       UITree.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/src/main/webapp/static/pages/scripts/widgets.js",
    "content": "var Widgets = function () {\n\n\tvar handleMapplic = function () {\n\t\t$('#mapplic').mapplic({\n\t\t\tsource: '../../assets/global/plugins/mapplic/world.json',\n\t\t\theight: 265,\n\t\t\tanimate: false,\n\t\t\tsidebar: false,\n\t\t\tminimap: false,\n            locations: true,\n\t\t\tdeeplinking: true,\n\t\t\tfullscreen: false,\n\t\t\thovertip: true,\n\t\t\tzoombuttons: false,\n\t\t\tclearbutton: false,\n\t\t\tdeveloper: false,\n\t\t\tmaxscale: 2,\n\t\t\tskin: 'mapplic-dark',\n\t\t\tzoom: true\n\t\t});\n\t}\n\n\tvar handleSparklineChart = function () {\n\t\t$(\"#widget_sparkline_bar\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#4db3a4',\n            negBarColor: '#e02222'\n        });\n        $(\"#widget_sparkline_bar2\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#f36a5a',\n            negBarColor: '#e02222'\n        });\n        $(\"#widget_sparkline_bar3\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#5b9bd1',\n            negBarColor: '#e02222'\n        });\n        $(\"#widget_sparkline_bar4\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#9a7caf',\n            negBarColor: '#e02222'\n        });\n\t}\n    \n    var handleCounter = function () {\n        $('.counter').counterUp({\n            delay: 10,\n            time: 1000\n        });\n    }\n\n\treturn {\n\n        // main function\n        init: function () {\n            handleMapplic(); // handle mapplic map\n            handleSparklineChart(); // handle sparkline chart\n            handleCounter(); // handle counter\n        }\n        \n    };\n}();\n\njQuery(document).ready(function() {    \n   Widgets.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/log4j.properties",
    "content": "log4j.rootLogger=INFO,console\n# TODO \\u53d1\\u5e03\\u5230\\u963f\\u91cc\\u4e91\\u8bb0\\u5f97\\u6dfb\\u52a0\\uff0c\\u53e6\\u5916\\u63a7\\u5236\\u53f0\\u4e0d\\u8f93\\u51fa(\\u53ea\\u8f93\\u51fawarn\\u6216\\u8005error\\u4fe1\\u606f)\n#INFO,console,dailyFile\n\n# log4j.logger.org.mybatis = INFO\nlog4j.logger.kkvideo.admin.dao=INFO\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender.console.encoding=UTF-8\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/mybatis/SqlMapConfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE configuration\n\t\tPUBLIC \"-//mybatis.org//DTD Config 3.0//EN\"\n\t\t\"http://mybatis.org/dtd/mybatis-3-config.dtd\">\n<configuration>\n\n\t<!-- 用于输出日志 log4j:LOG4J SLF4J -->\n    <settings>  \n        <setting name=\"logImpl\" value=\"SLF4J\"/>  \n    </settings>  \n\n\t<!-- 此文件可以为空文件, 但是必须要有这文件 -->\n\t\n\t<!-- plugins在配置文件中的位置必须符合要求，否则会报错，顺序如下: properties?, settings?, typeAliases?, \n\t\ttypeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, \n\t\tdatabaseIdProvider?, mappers? -->\n\t<plugins>\n\t\t<!-- com.github.pagehelper为PageHelper类所在包名 -->\n\t\t<plugin interceptor=\"com.github.pagehelper.PageHelper\">\n\t\t\t<!-- 4.0.0以后版本可以不设置该参数 -->\n\t\t\t<property name=\"dialect\" value=\"mysql\" />\n\t\t\t<!-- 该参数默认为false -->\n\t\t\t<!-- 设置为true时，会将RowBounds第一个参数offset当成pageNum页码使用 -->\n\t\t\t<!-- 和startPage中的pageNum效果一样 -->\n\t\t\t<property name=\"offsetAsPageNum\" value=\"true\" />\n\t\t\t<!-- 该参数默认为false -->\n\t\t\t<!-- 设置为true时，使用RowBounds分页会进行count查询 -->\n\t\t\t<property name=\"rowBoundsWithCount\" value=\"true\" />\n\t\t\t<!-- 设置为true时，如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->\n\t\t\t<!-- （相当于没有执行分页查询，但是返回结果仍然是Page类型） -->\n\t\t\t<property name=\"pageSizeZero\" value=\"true\" />\n\t\t\t<!-- 3.3.0版本可用 - 分页参数合理化，默认false禁用 -->\n\t\t\t<!-- 启用合理化时，如果pageNum<1会查询第一页，如果pageNum>pages会查询最后一页 -->\n\t\t\t<!-- 禁用合理化时，如果pageNum<1或pageNum>pages会返回空数据 -->\n<!-- \t\t\t<property name=\"reasonable\" value=\"false\" /> -->\n\t\t\t<!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->\n\t\t\t<!-- 增加了一个`params`参数来配置参数映射，用于从Map或ServletRequest中取值 -->\n\t\t\t<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->\n\t\t\t<!-- 不理解该含义的前提下，不要随便复制该配置 -->\n<!-- \t\t\t<property name=\"params\"\tvalue=\"pageNum=pageHelperStart;pageSize=pageHelperRows;\" /> -->\n\t\t\t<!-- 支持通过Mapper接口参数来传递分页参数 -->\n\t\t\t<property name=\"supportMethodsArguments\" value=\"false\" />\n\t\t\t<!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->\n\t\t\t<property name=\"returnPageInfo\" value=\"none\" />\n\t\t</plugin>\n\t</plugins>\n\t\n</configuration>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/resource/admin.properties",
    "content": "adminusername=admin\nadminpassword=admin"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/resource/db.properties",
    "content": "jdbc.driver=com.mysql.jdbc.Driver\n#jdbc.url=jdbc:mysql://localhost:3306/kkvideo\njdbc.url=jdbc:mysql://video.redrat.cn:3306/kkvideo\njdbc.username=root\njdbc.password=jimisun\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/resource/resource.properties",
    "content": "#FILE_SPACE=E:\\\\worktest\\\\kkvideo\\\\kkvideoadmin\nFILE_SPACE=/resource"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/spring/applicationContext-dao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<!-- 数据库连接池 -->\n\t<!-- 加载配置文件 -->\n\t<!-- \n\t\t由db.properties改为*.properties, 这样也会加载其他的属性文件 可以使用 @Value\n\t\t由于父子容器关系，service层（父）的属性文件在springmvc层（子）是读取不到的，子只能读取对象，属性是读取不到的\n\t -->\n\t<context:property-placeholder location=\"classpath:resource/*.properties\" />\n\t<!-- 数据库连接池 -->\n\t<bean id=\"dataSource\" class=\"com.alibaba.druid.pool.DruidDataSource\"\n\t\tdestroy-method=\"close\">\n\t\t<property name=\"url\" value=\"${jdbc.url}\" />\n\t\t<property name=\"username\" value=\"${jdbc.username}\" />\n\t\t<property name=\"password\" value=\"${jdbc.password}\" />\n\t\t<property name=\"driverClassName\" value=\"${jdbc.driver}\" />\n\t\t<!-- 最大并发连接数 -->\n\t\t<property name=\"maxActive\" value=\"30\" />\n\t\t<!-- 最小空闲连接数 -->\n\t\t<property name=\"minIdle\" value=\"5\" />\n\t\t<!-- 用于显示数据源监控中的sql语句监控 -->\n\t\t<property name=\"filters\" value=\"stat\" />\n\t</bean>\n\t\n\t<!-- 配置sqlsessionFactory -->\n\t<bean id=\"sqlSessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">\n\t\t<property name=\"configLocation\" value=\"classpath:mybatis/SqlMapConfig.xml\"></property>\n\t\t<property name=\"dataSource\" ref=\"dataSource\"></property>\n\t</bean>\n\t\n\t<!-- 配置扫描包，加载mapper代理对象 -->\n\t<bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n\t\t<property name=\"basePackage\" value=\"kkvideo.admin.mapper\"></property>\n\t</bean>\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/spring/applicationContext-service.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\t\t\n\t<!-- 扫描包加载Service实现类 -->\n\t<context:component-scan base-package=\"kkvideo.admin.service\"></context:component-scan>\n\t\n\t<!-- 自动创建代理 对@AspectJ注解的支持 -->\n\t<!-- 通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Service --> \n\t<aop:aspectj-autoproxy proxy-target-class=\"true\"></aop:aspectj-autoproxy>\n\n\t<!--配置工具类sid到Spring的容器中-->\n\t<bean id=\"sid\" class=\"org.n3r.idworker.Sid\"></bean>\n\t\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/spring/applicationContext-transaction.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\" xmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<!-- 事务管理器 -->\n\t<bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\">\n\t\t<!-- 数据源 -->\n\t\t<property name=\"dataSource\" ref=\"dataSource\" />\n\t</bean>\n\t\n\t<!-- 通知 -->\n\t<tx:advice id=\"txAdvice\" transaction-manager=\"transactionManager\">\n\t\t<tx:attributes>\n\t\t\t<!-- 传播行为 -->\n\t\t\t<tx:method name=\"save*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"insert*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"add*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"create*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"delete*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"update*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"display*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"do*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"query*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"find*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"select*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"get*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t</tx:attributes>\n\t</tx:advice>\n\t\n\t<!-- 切面 -->\n\t<aop:config>\n\t\t<aop:advisor advice-ref=\"txAdvice\" pointcut=\"execution(* kkvideo.admin.service.*.*(..))\" />\n\t</aop:config>\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/spring/applicationContext-zookeeper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\t\t\n\t<description>zookeeper 放入spring容器，项目启动加载的时候就建立和zk的连接</description>\n\t\n\t<!--&lt;!&ndash; 创建重连策略 &ndash;&gt;-->\n\t<bean id=\"retryPolicy\" class=\"org.apache.curator.retry.ExponentialBackoffRetry\">\n\t\t<!--&lt;!&ndash; 每次重试连接的等待时间 &ndash;&gt;-->\n\t\t<constructor-arg index=\"0\" value=\"1000\"></constructor-arg>\n\t\t<!--&lt;!&ndash; 设置的重连的次数 &ndash;&gt;-->\n\t\t<constructor-arg index=\"1\" value=\"5\"></constructor-arg>\n\t</bean>\n\t\n\t<!--&lt;!&ndash; 创建zookeeper客户端 &ndash;&gt;-->\n\t<bean id=\"client\" class=\"org.apache.curator.framework.CuratorFrameworkFactory\" \n\t\tfactory-method=\"newClient\" init-method=\"start\">\n\t\t<constructor-arg index=\"0\" value=\"admin.video.redrat.cn:2181\"></constructor-arg>\n\t\t<!--<constructor-arg index=\"0\" value=\"192.168.25.137:2181\"></constructor-arg>-->\n\t\t<constructor-arg index=\"1\" value=\"10000\"></constructor-arg>\n\t\t<constructor-arg index=\"2\" value=\"10000\"></constructor-arg>\n\t\t<constructor-arg index=\"3\" ref=\"retryPolicy\"></constructor-arg>\n\t</bean>\n\t\n\t<!--&lt;!&ndash; 客户端配置 &ndash;&gt;\n\t&lt;!&ndash; init-method=\"init\" 不使用zk的话，仅仅只是测试为了方便可以把这个方法暂时拿掉 &ndash;&gt;-->\n\t<bean id=\"ZKCurator\" class=\"kkvideo.admin.service.util.ZKCurator\" init-method=\"init\">\n\t\t<constructor-arg index=\"0\" ref=\"client\"></constructor-arg>\n\t</bean>\n\n\t\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/classes/spring/springmvc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:mvc=\"http://www.springframework.org/schema/mvc\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd\n\t\thttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<context:component-scan base-package=\"kkvideo.admin.controller\" />\n\t\n\t<!-- 自动创建代理 对@AspectJ注解的支持 -->\n\t<!-- 通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Controller --> \n\t<aop:aspectj-autoproxy proxy-target-class=\"true\"></aop:aspectj-autoproxy>\n\n\t<!--配置注解驱动-->\n\t<mvc:annotation-driven />\n\t\n\t<!-- 静态资源映射 -->\n\t<!-- 缓存存在时间 cache-period 1年 -->\n\t<mvc:resources mapping=\"/static/**\" location=\"/static/\" cache-period=\"31556926\"/>\n\n\t<!--配置视图解析器-->\n\t<bean class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\">\n\t\t<property name=\"prefix\" value=\"/WEB-INF/center/\" />\n\t\t<property name=\"suffix\" value=\".jsp\" />\n\t</bean>\n\t\n\t <!--配置文件方式配置拦截器-->\n   <mvc:interceptors>\n        <mvc:interceptor>\n            <mvc:mapping path=\"/*/**\"/>\n            <mvc:exclude-mapping path=\"/static/**\"/>  \n            <bean class=\"kkvideo.admin.interceptor.LoginInterceptor\">\n               <property name=\"unCheckUrls\"> \n                  <list> \n\t\t\t\t\t<value>/login.action</value>\n\t\t\t\t\t<value>/users/login.action</value>\n                  </list>\n              </property> \n            </bean>\n        </mvc:interceptor>\n    </mvc:interceptors>\n\t\n\t<!-- 配置多媒体文件解析器（视图解析器） -->\n\t<bean id=\"multipartResolver\"\n\t\tclass=\"org.springframework.web.multipart.commons.CommonsMultipartResolver\">\n\t\t<!-- 设定默认编码 -->\n\t\t<property name=\"defaultEncoding\" value=\"UTF-8\"></property>\n\t\t<!-- 设定文件上传的最大值2MB， 10*1024*1024 -->\n\t\t<property name=\"maxUploadSize\" value=\"20485760\"></property>\n\t\t<!--resolveLazily属性启用是为了推迟文件解析，以便在UploadAction 中捕获文件大小异常--> \n\t\t<property name=\"resolveLazily\" value=\"true\"/>    \n\t</bean>\n\t\n\t<!-- 属性文件不能跨容器，要在controller中也能被访问到，也需要配置  加载属性文件 -->\n\t<context:property-placeholder location=\"classpath:resource/*.properties\" />\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/center.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\" %>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html>\n\n<!-- BEGIN HEAD -->\n<head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n    <title>小慕短视频后台管理系统</title>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\"/>\n\n    <!-- 公用头部JS start -->\n    <jsp:include page=\"common/commonHeaderCSS.jsp\"></jsp:include>\n    <!-- 公用头部JS end -->\n\n    <style>\n        /* 设置jqgrid列中文字内容垂直居中 jqgrid 单元格自动换行 */\n        .ui-jqgrid tr.jqgrow td {\n            vertical-align: middle;\n            white-space: normal !important;\n            height: auto;\n            word-break: break-all;\n        }\n    </style>\n\n</head>\n<!-- END HEAD -->\n\n<body class=\"page-header-fixed page-sidebar-closed-hide-logo page-content-white\">\n<div class=\"page-wrapper\">\n\n    <!-- 引入header页面 start -->\n    <jsp:include page=\"common/header.jsp\"></jsp:include>\n    <!-- 引入header页面  end -->\n\n    <!-- BEGIN HEADER & CONTENT DIVIDER -->\n    <div class=\"clearfix\"></div>\n    <!-- END HEADER & CONTENT DIVIDER -->\n\n    <div class=\"page-container\">\n\n        <!-- 菜单 start -->\n        <jsp:include page=\"common/menu.jsp\"></jsp:include>\n        <!-- 菜单 end -->\n\n        <!-- BEGIN CONTENT -->\n        <div class=\"page-content-wrapper\">\n            <!-- BEGIN CONTENT BODY -->\n            <div class=\"page-content\">\n\n                <div class=\"page-content-body\">\n\n                    <jsp:include page=\"first.jsp\"></jsp:include>\n\n                </div>\n\n            </div>\n            <!-- END CONTENT BODY -->\n        </div>\n        <!-- END CONTENT -->\n\n    </div>\n    <!-- END CONTAINER -->\n</div>\n\n<!-- 引入footer页面 start -->\n<jsp:include page=\"common/footer.jsp\"></jsp:include>\n<!-- 引入footer页面  end -->\n\n\n<!-- 公用尾部JS start -->\n<jsp:include page=\"common/commonFooterJS.jsp\"></jsp:include>\n<!-- 公用尾部JS end -->\n\n</body>\n\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/common/commonFooterJS.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%-- <%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %> --%>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!--[if lt IE 9]>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/respond.min.js\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/excanvas.min.js\"></script> \n<script src=\"<%=request.getContextPath() %>/static/global/plugins/ie8.fix.min.js\"></script> \n<![endif]-->\n\n<!-- 上下文对象路径 -->\n<input type=\"hidden\" id=\"hdnContextPath\" name=\"hdnContextPath\" value=\"<%=request.getContextPath() %>\"/>\n<input type=\"hidden\" id=\"apiServer\" name=\"apiServer\" value=\"https://video.redrat.cn\"/>\n<input type=\"hidden\" id=\"bgmServer\" name=\"bgmServer\" value=\"http://admin.video.redrat.cn:8888\"/>\n<input type=\"hidden\" id=\"apiSourceServer\" name=\"apiSourceServer\" value=\"http://video.redrat.cn:8888\"/>\n<%--<input type=\"hidden\" id=\"apiServer\" name=\"apiServer\" value=\"http://192.168.1.2:8081\"/>\n<input type=\"hidden\" id=\"bgmServer\" name=\"bgmServer\" value=\"http://192.168.1.2:8080/mvc\"/>--%>\n\n\n\n<!-- BEGIN CORE PLUGINS -->\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap/js/bootstrap.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/js.cookie.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/morris/morris.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery-validation/js/jquery.validate.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery-validation/js/additional-methods.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<!-- END PAGE LEVEL PLUGINS -->\n<!-- BEGIN THEME GLOBAL SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/global/scripts/app.js?v=3.1415926\" type=\"text/javascript\"></script>\n<!-- END THEME GLOBAL SCRIPTS -->\n<!-- BEGIN PAGE LEVEL SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/jquery.form.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/form-validation.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-sweetalert/sweetalert.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/i18n/grid.locale-cn.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/jquery.jqGrid.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<!-- END PAGE LEVEL SCRIPTS -->\n\n<!-- BEGIN PAGE LEVEL SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/dashboard.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/ui-sweetalert.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/ui-blockui.min.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/icheck/icheck.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/pages/scripts/form-icheck.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/js/bootstrap-modalmanager.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/js/bootstrap-modal.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/file-uploader/js/vendor/jquery.ui.widget.js?v=3.1415926\"></script>\n<script src=\"<%=request.getContextPath() %>/static/global/plugins/file-uploader/js/jquery.fileupload.js?v=3.1415926\"></script>\n\n\n\n<!-- END PAGE LEVEL SCRIPTS -->\n\n<!-- BEGIN 自己写的页面JS -->\n<script src=\"<%=request.getContextPath() %>/static/pages/js/commonJSFunction.js?v=3.1415926\" type=\"text/javascript\"></script>\n\n<!-- END 自己写的页面JS -->\n\n<!-- BEGIN THEME LAYOUT SCRIPTS -->\n<script src=\"<%=request.getContextPath() %>/static/layouts/layout/scripts/layout.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/layouts/layout/scripts/demo.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/layouts/global/scripts/quick-sidebar.js?v=3.1415926\" type=\"text/javascript\"></script>\n<script src=\"<%=request.getContextPath() %>/static/layouts/global/scripts/quick-nav.js?v=3.1415926\" type=\"text/javascript\"></script>\n<!-- END THEME LAYOUT SCRIPTS -->\n\n      \n      \n      \n      \n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/common/commonHeaderCSS.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n\n<%-- <%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %> --%>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- BEGIN GLOBAL MANDATORY STYLES -->\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/font-awesome/css/font-awesome.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/simple-line-icons/simple-line-icons.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap/css/bootstrap.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-switch/css/bootstrap-switch.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<!-- END GLOBAL MANDATORY STYLES -->\n<!-- BEGIN PAGE LEVEL PLUGINS -->\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-daterangepicker/daterangepicker.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/clockface/css/clockface.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/morris/morris.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/fullcalendar/fullcalendar.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/jqvmap/jqvmap/jqvmap.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/jquery-multi-select/css/multi-select.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2-bootstrap.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-sweetalert/sweetalert.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/icheck/skins/all.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap-ui.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/css/bootstrap-modal-bs3patch.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-modal/css/bootstrap-modal.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n        \n<!-- END PAGE LEVEL PLUGINS -->\n\n<!-- BEGIN THEME GLOBAL STYLES -->\n<link href=\"<%=request.getContextPath() %>/static/global/css/components.css\" rel=\"stylesheet\" id=\"style_components\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/global/css/plugins.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n\n<!-- END THEME GLOBAL STYLES -->\n<!-- BEGIN THEME LAYOUT STYLES -->\n<link href=\"<%=request.getContextPath() %>/static/layouts/layout/css/layout.css\" rel=\"stylesheet\" type=\"text/css\" />\n<link href=\"<%=request.getContextPath() %>/static/layouts/layout/css/themes/darkblue.css\" rel=\"stylesheet\" type=\"text/css\" id=\"style_color\" />\n<link href=\"<%=request.getContextPath() %>/static/layouts/layout/css/custom.css\" rel=\"stylesheet\" type=\"text/css\" />\n<!-- END THEME LAYOUT STYLES -->\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/common/footer.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- BEGIN FOOTER -->\n<div class=\"page-footer\">\n    <div class=\"page-footer-inner\"> kk短视频 2018 &copy; All Rights Reserved.\n    </div>\n    <div class=\"scroll-to-top\">\n        <i class=\"icon-arrow-up\"></i>\n    </div>\n</div>\n<!-- END FOOTER -->"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/common/header.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<!-- BEGIN HEADER -->\n<div class=\"page-header navbar navbar-fixed-top\">\n    <!-- BEGIN HEADER INNER -->\n    <div class=\"page-header-inner \">\n        <!-- BEGIN LOGO -->\n        <div class=\"page-logo\">\n            <a href=\"<%=request.getContextPath()%>/\">\n                <img src=\"<%=request.getContextPath()%>/static/pages/img/logos/logo.png\" alt=\"logo\" class=\"logo-default\" /> \n            </a>\n            <div class=\"menu-toggler sidebar-toggler\" style=\"width: 19px; height: 19px;\">\n                <span style=\"top: 8px;\"></span>\n            </div>\n        </div>\n        <!-- END LOGO -->\n        <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n        <a href=\"javascript:;\" class=\"menu-toggler responsive-toggler\" data-toggle=\"collapse\" data-target=\".navbar-collapse\" style=\"width: 19px; height: 19px;\">\n            <span style=\"top: 8px;\"></span>\n        </a>\n        <!-- END RESPONSIVE MENU TOGGLER -->\n        <!-- BEGIN TOP NAVIGATION MENU -->\n        <div class=\"top-menu\">\n            <ul class=\"nav navbar-nav pull-right\">\n                <!-- BEGIN USER LOGIN DROPDOWN -->\n                <!-- DOC: Apply \"dropdown-dark\" class after below \"dropdown-extended\" to change the dropdown styte -->\n                <li class=\"dropdown dropdown-user\">\n                    <a href=\"<%=request.getContextPath()%>/center.shtml\" class=\"dropdown-toggle\" data-toggle=\"dropdown\" data-hover=\"dropdown\" data-close-others=\"true\">\n                        <span class=\"username username-hide-on-mobile\"> 欢迎登录 </span>\n                    </a>\n                </li>\n                <!-- END USER LOGIN DROPDOWN -->\n                <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n                <!-- DOC: Apply \"dropdown-dark\" class after below \"dropdown-extended\" to change the dropdown styte -->\n                <li class=\"dropdown dropdown-quick-sidebar-toggler\">\n                    <a href=\"<%=request.getContextPath() %>/users/logout.action\" class=\"dropdown-toggle\">\n                        <i class=\"icon-logout\"></i>\n                    </a>\n                </li>\n                <!-- END QUICK SIDEBAR TOGGLER -->\n            </ul>\n        </div>\n        <!-- END TOP NAVIGATION MENU -->\n    </div>\n    <!-- END HEADER INNER -->\n</div>\n<!-- END HEADER -->"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/common/menu.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n\n<!-- BEGIN CONTAINER -->\n    <!-- BEGIN SIDEBAR -->\n    <div class=\"page-sidebar-wrapper\">\n        <!-- BEGIN SIDEBAR -->\n        <div class=\"page-sidebar navbar-collapse collapse\">\n            <!-- BEGIN SIDEBAR MENU -->\n            <ul class=\"page-sidebar-menu  page-header-fixed \" data-keep-expanded=\"false\" data-auto-scroll=\"false\" data-slide-speed=\"200\" style=\"padding-top: 20px\">\n                <!-- DOC: To remove the sidebar toggler from the sidebar you just need to completely remove the below \"sidebar-toggler-wrapper\" LI element -->\n                <!-- BEGIN SIDEBAR TOGGLER BUTTON -->\n                <li class=\"sidebar-toggler-wrapper hide\">\n                    <div class=\"sidebar-toggler\">\n                        <span>\n                        \t\n                        </span>\n                    </div>\n                </li>\n                \n               \t<!-- 控制台  start -->\n               \t<li class=\"nav-item\">\n                \t<a href=\"<%=request.getContextPath() %>/\">\n                    \t<i class=\"icon-home\"></i>\n                        \t<span class=\"title\">首页</span>\n\t\t\t\t\t</a>\n               \t</li>\n               \t\n               \t<!-- 用户管理 start -->\n\t\t\t\t<li class=\"nav-item \">\n                    <a href=\"javascript:;\" class=\"nav-link nav-toggle\">\n                        <i class=\"icon-user\"></i>\n                        <span class=\"title\">用户信息</span>\n\t\t\t\t\t\t<span class=\"arrow\"></span>\n                    </a>\n                    <ul class=\"sub-menu\">\n                        <li class=\"nav-item \">\n                            <a href=\"<%=request.getContextPath() %>/users/showList.action\" class=\"ajaxify nav-link \">\n                                <span class=\"title\">用户列表</span>\n                            </a>\n                        </li>\n                    </ul>\n               \t</li>\n               \t\n               \t<!-- 背景音乐 start -->\n\t\t\t\t<li class=\"nav-item \">\n                    <a href=\"javascript:;\" class=\"nav-link nav-toggle\">\n                        <i class=\"icon-basket-loaded\"></i>\n                        <span class=\"title\">bgm管理</span>\n\t\t\t\t\t\t<span class=\"arrow\"></span>\n                    </a>\n                    <ul class=\"sub-menu\">\n\t\t\t\t\t\t<li class=\"nav-item \">\n                            <a id=\"bgmListMenu\" href=\"<%=request.getContextPath() %>/video/showBgmList.action\" class=\"ajaxify nav-link \" id=\"bgmListMenu\">\n                                <span class=\"title\">bgm列表</span>\n                            </a>\n                        </li>\n                        <li class=\"nav-item \">\n                            <a href=\"<%=request.getContextPath() %>/video/showAddBgm.action\" class=\"ajaxify nav-link \">\n                                <span class=\"title\">添加bgm</span>\n                            </a>\n                        </li>\n                    </ul>\n               \t</li>\n               \t\n               \t<!-- 举报管理 start -->\n\t\t\t\t<li class=\"nav-item \">\n                    <a href=\"javascript:;\" class=\"nav-link nav-toggle\">\n                        <i class=\"icon-notebook\"></i>\n                        <span class=\"title\">举报管理</span>\n\t\t\t\t\t\t<span class=\"arrow\"></span>\n                    </a>\n                    <ul class=\"sub-menu\">\n\t\t\t\t\t\t<li class=\"nav-item \">\n                            <a href=\"<%=request.getContextPath() %>/video/showReportList.action\" class=\"ajaxify nav-link \">\n                                <span class=\"title\">举报列表</span>\n                            </a>\n                        </li>\n                    </ul>\n               \t</li>\n               \t\n            </ul>\n            <!-- END SIDEBAR MENU -->\n        </div>\n        <!-- END SIDEBAR -->\n    </div>\n    <!-- END SIDEBAR -->"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/first.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n        \n<style>\n\n.desc {\n\tline-height:18px;\n\ttext-indent:2em;\n}\n\n</style>\n        \n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <a href=\"index.html\">首页</a>\n\t        </li>\n\t    </ul>\n\t</div>\n\t\n\t<h1 class=\"page-title\"> 小慕短视频后台管理系统 </h1>\n                        \n\t<div class=\"clearfix\"></div>\n        \n\t<div class=\"row\">\n\t    <div class=\"col-lg-6 col-xs-12 col-sm-12\">\n\t        \n\t        <div class=\"portlet light portlet-fit bordered\">\n\t            <div class=\"portlet-title\">\n\t                <div class=\"caption\">\n\t                    <i class=\"icon-microphone font-dark hide\"></i>\n\t                    <span class=\"caption-subject bold font-dark uppercase\"> 平台技术简介</span>\n\t                    <span class=\"caption-helper\">小程序后台接口  + 短视频后台管理</span>\n\t                </div>\n\t            </div>\n\t            <div class=\"portlet-body\">\n\t                <div class=\"row\">\n\t                    <div class=\"col-md-12\">\n\t                        <div class=\"mt-widget-3\" style=\"padding-top: 15px;\">\n\t                        \t<p class=\"desc\"><font style=\"font-size: 16px;\"><b>小程序api - 技术选型：</b></font></p>\n\t                        \t<p class=\"desc\">1、核心框架：Spring Framework 4.3.14.RELEASE</p>\n\t                        \t<p class=\"desc\">2、SpringBoot：1.5.10.RELEASE</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">3、持久层框架：MyBatis 3.4.5 + pagehelper 5.1.2</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">4、MariaDB 10.2.6</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">5、数据库连接池：阿里巴巴 Druid 1.1.0</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">6、zookeeper：3.4.11</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">7、spring-data-redis：1.8.7.RELEASE</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">8、swagger2：2.4.0</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">9、FFmpeg：2.0.1.1</p>\n\t                        </div>\n\t                    </div>\n\t                </div>\n\t                \n\t                <div class=\"row\" style=\"margin-top: 15px;\">\n\t                    <div class=\"col-md-12\">\n\t                        <div class=\"mt-widget-3\" style=\"padding-top: 15px;\">\n\t                        \t<p class=\"desc\"><font style=\"font-size: 16px;\"><b>短视频后台 - 技术选型：</b></font></p>\n\t                        \t<p class=\"desc\">1、核心框架：Spring Framework 4.3.8.RELEASE</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">2、持久层框架：MyBatis 3.2.8 + pagehelper 4.1.3</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">3、MariaDB 10.2.6</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">4、数据库连接池：阿里巴巴 Druid 1.1.0</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">5、jackson：2.7.4</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">6、slf4j：1.7.21</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">7、zookeeper：3.4.11</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">8、前端框架：Bootstrap + Jquery</p>\n\t\t\t\t\t\t\t\t<p class=\"desc\">9、前端分页组件：jqGrid</p>\n\t                        </div>\n\t                    </div>\n\t                </div>\n\t                \n<!-- \t                <div class=\"row\" style=\"margin-top: 15px;\"> -->\n<!-- \t                    <div class=\"col-md-12\"> -->\n<!-- \t                        <div class=\"mt-widget-3\" style=\"padding-top: 15px;\"> -->\n<!-- \t                        \t彩蛋：分布式集群架构的演变 -->\n<!-- \t                        </div> -->\n<!-- \t                    </div> -->\n<!-- \t                </div> -->\n\t            </div>\n\t        </div>\n\t        \n\t    </div>\n\t    \n\t    <div class=\"col-lg-6 col-xs-12 col-sm-12\">\n\t        <div class=\"portlet light portlet-fit bordered\">\n\t            <div class=\"portlet-title\">\n\t                <div class=\"caption\">\n\t                    <i class=\"icon-microphone font-dark hide\"></i>\n\t                    <span class=\"caption-subject bold font-dark uppercase\"> 慕课网</span>\n\t                    <span class=\"caption-helper\">视频推荐</span>\n\t                </div>\n\t            </div>\n\t            <div class=\"portlet-body \">\n\t            \t<div class=\"row \">\n\t                    <div class=\"col-md-4 \">\n\t                        <img src=\"<%=request.getContextPath() %>/static/pages/img/course/springboot.jpg\" width=\"233px\" class=\"img-responsive\"/>\n\t                    </div>\n\t                    <div class=\"col-md-8 \" >\n\t                    \t<h4><a href=\"https://www.imooc.com/comment/956\" target=\"_blank\">《SpringBoot开发常用技术整合》</a></h4>\n\t                    </div>\n\t                </div>\n\t                <div class=\"row \" style=\"margin-top: 10px;\">\n\t                    <div class=\"col-md-4 \">\n\t                        <img src=\"<%=request.getContextPath() %>/static/pages/img/course/zookeeper.jpg\" width=\"233px\" class=\"img-responsive\"/>\n\t                    </div>\n\t                    <div class=\"col-md-8 \" >\n\t                    \t<h4><a href=\"https://coding.imooc.com/class/201.html\" target=\"_blank\">《ZooKeeper分布式专题与Dubbo微服务入门》</a></h4>\n\t                    </div>\n\t                </div>\n\t            </div>\n\t        </div>\n\t    </div>\n\t</div>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/login.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"spring\" uri=\"http://www.springframework.org/tags\"%>  \n<!DOCTYPE html>\n<html>\n<head>\n\t<meta charset=\"utf-8\" />\n    <title>短视频后台管理系统</title>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n    <meta content=\"leechenxiang\" name=\"author\" />\n    \n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/font-awesome/css/font-awesome.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/simple-line-icons/simple-line-icons.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap/css/bootstrap.css\" rel=\"stylesheet\" type=\"text/css\" />\n\t<link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-switch/css/bootstrap-switch.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END GLOBAL MANDATORY STYLES -->\n    <!-- BEGIN PAGE LEVEL PLUGINS -->\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/select2/css/select2-bootstrap.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <link href=\"<%=request.getContextPath() %>/static/global/plugins/bootstrap-sweetalert/sweetalert.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END PAGE LEVEL PLUGINS -->\n    <!-- BEGIN THEME GLOBAL STYLES -->\n    <link href=\"<%=request.getContextPath() %>/static/global/css/components.min.css\" rel=\"stylesheet\" id=\"style_components\" type=\"text/css\" />\n\t<link href=\"<%=request.getContextPath() %>/static/global/css/plugins.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END THEME GLOBAL STYLES -->\n    <!-- BEGIN PAGE LEVEL STYLES -->\n    <link href=\"<%=request.getContextPath() %>/static/pages/css/login-2.min.css\" rel=\"stylesheet\" type=\"text/css\" />\n    <!-- END PAGE LEVEL STYLES -->\n\n\t<link rel=\"shortcut icon\" href=\"<%=request.getContextPath()%>/portal/image/itzixi_favicon.ico\" type=\"image/x-icon\">\n        \n\t<style type=\"text/css\">\n\t\t.help-block {\n\t\t\tdisplay: block;\n\t\t  \tmargin-top: 5px;\n\t\t  \tmargin-bottom: 10px;\n\t\t  \tcolor: red; \n\t\t}\n\t</style>\n\t\n</head>\n<body class=\"login\">\n        <!-- BEGIN LOGO -->\n        <div class=\"logo\">\n            <a href=\"<%=request.getContextPath()%>/\">\n                <img src=\"<%=request.getContextPath()%>/static/pages/img/logos/logo.png\" /> \n            </a>\n        </div>\n        <!-- END LOGO -->\n        <!-- BEGIN LOGIN -->\n        <div class=\"content\">\n            <!-- BEGIN LOGIN FORM -->\n            <form class=\"login-form\">\n\n                <div class=\"form-group\">\n                    <!--ie8, ie9 does not support html5 placeholder, so we just show field title for that-->\n                    <label class=\"control-label visible-ie8 visible-ie9\">用户名</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control form-control-solid placeholder-no-fix\" type=\"text\" autocomplete=\"off\" placeholder=\"用户名\" name=\"username\" /> </div>\n                    </div>\n                <div class=\"form-group\">\n                    <label class=\"control-label visible-ie8 visible-ie9\">密码</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control form-control-solid placeholder-no-fix\" type=\"password\" autocomplete=\"off\" placeholder=\"密码\" name=\"password\" /> </div>\n                    </div>\n                \n                \n                <div class=\"form-actions\" style=\"padding: 0 30px 15px;\">\n                    <button type=\"submit\" class=\"btn red btn-block uppercase\">登 录</button>\n                </div>\n                <div class=\"create-account\">\n                    <p>\n                        <a href=\"javascript:;\" class=\"btn-primary btn\" id=\"register-btn\">注 册 用 户</a>\n                    </p>\n                </div>\n            </form>\n            <!-- END LOGIN FORM -->\n\n            <!-- BEGIN REGISTRATION FORM -->\n            <form class=\"register-form\">\n                <div class=\"form-group\">\n                    <label class=\"control-label visible-ie8 visible-ie9\">用户名</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control placeholder-no-fix\" type=\"text\" placeholder=\"用户名\" name=\"username\" />\n                    </div> \n                </div>\n                <div class=\"form-group\">\n                    <label class=\"control-label visible-ie8 visible-ie9\">密码</label>\n                    <div id=\"input-error\">\n                    \t<input class=\"form-control placeholder-no-fix\" type=\"text\" placeholder=\"密码\" name=\"password\" />\n                    </div> \n                </div>\n                <div class=\"form-actions\">\n                    <button type=\"button\" id=\"register-back-btn\" class=\"btn btn-default\">返 回</button>\n                </div>\n            </form>\n            <!-- END REGISTRATION FORM -->\n        </div>\n        \n        <input type=\"hidden\" id=\"hdnContextPath\" name=\"hdnContextPath\" value=\"<%=request.getContextPath() %>\"/>\n        \n<!--[if lt IE 9]>\n<script src=\"../assets/global/plugins/respond.min.js?v=3.1415926\"></script>\n<script src=\"../assets/global/plugins/excanvas.min.js?v=3.1415926\"></script> \n<script src=\"../assets/global/plugins/ie8.fix.min.js?v=3.1415926\"></script> \n<![endif]-->\n        \n        <!-- 公用尾部JS start -->\n\t    <jsp:include page=\"common/commonFooterJS.jsp\"></jsp:include>\n\t    <!-- 公用尾部JS end -->\n    \n        <script src=\"<%=request.getContextPath() %>/static/pages/js/login.js?v=1.1\" type=\"text/javascript\"></script>\n        \n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/users/usersList.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n\n<script src=\"<%=request.getContextPath() %>/static/pages/js/usersList.js\" type=\"text/javascript\"></script>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>用户信息</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>用户列表</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n        \n    <!-- 用户信息列表 jqgrid start -->                \n\t<div class=\"row\">\n\t\n\t\t<!-- 搜索内容 -->\n\t\t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t\t<form id=\"searchUserListForm\" class=\"form-inline\" method=\"post\" role=\"form\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"sr-only\" for=\"username\">用户名:</label>\n\t\t\t\t\t\t<input id=\"username\" name=\"username\" type=\"text\" class=\"form-control\" placeholder=\"用户名\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"sr-only\" for=\"nickname\">昵称:</label>\n\t\t\t\t\t\t<input id=\"nickname\" name=\"nickname\" type=\"text\" class=\"form-control\" placeholder=\"昵称\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<button id=\"searchUserListButton\" class=\"btn yellow-casablanca\" type=\"button\">搜    索</button>\n\t\t\t\t</form>\n\t\t\t</div>\n\t\n\t\n    \t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t\n\t\t\t<div class=\"usersList_wrapper\">  \n\t\t\t    <table id=\"usersList\"></table>  \n\t\t\t    <div id=\"usersListPager\"></div>  \n\t\t\t</div>  \n\t\t\t\n\t\t</div>\n\t</div>\n\t<!-- 用户信息列表 jqgrid end -->\n\t\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/video/addBgm.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>bgm管理</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>添加背景音乐</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n                        \n\t<div class=\"row\">\n    \t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t<!-- 意见反馈 start -->\n\t\t\t<div class=\"tabbable-line boxless tabbable-reversed\">\n            \t<div class=\"portlet box green-jungle\">\n                \t<div class=\"portlet-title\">\n                    \t<div class=\"caption\">\n                    \t\t<i class=\"icon-plus\"></i>添加背景音乐\n                    \t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"portlet-body form\">\n\t\t\t\t\t\n\t                    <!-- BEGIN FORM-->\n\t                    <form id=\"addBgmForm\" class=\"form-horizontal\">\n\t\t                    <div class=\"form-body\">\n\t\t                    \n\t\t                    \t<div class=\"form-group\">\n\t\t                        \t<label class=\"col-md-3 control-label\"><span class=\"field-required\"> * </span>歌手：</label>\n\t\t                            <div class=\"col-md-4\">\n\t\t                            \t<div id=\"input-error\">\n\t\t                            \t\t<input id=\"author\" name=\"author\" type=\"text\" class=\"form-control\" placeholder=\"1-4字\">\n\t\t                            \t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t                        \t<label class=\"col-md-3 control-label\"><span class=\"field-required\"> * </span>歌曲：</label>\n\t\t                            <div class=\"col-md-4\">\n\t\t                            \t<div id=\"input-error\">\n\t\t                            \t\t<input id=\"name\" name=\"name\" type=\"text\" class=\"form-control\" placeholder=\"1-50字\">\n\t\t                            \t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t                        \t<label class=\"col-md-3 control-label\"><span class=\"field-required\"> * </span>音乐片段</label>\n\t\t                            <div class=\"col-md-4\">\n\t\t                            \t<div id=\"input-error\">\n\t                            \t\t\t<input type=\"hidden\" id=\"path\" name=\"path\" class=\"form-control\"/>\n\n\t\t\t\t\t\t\t\t\t\t\t<input id=\"file\" type=\"file\" name=\"file\" data-url=\"<%=request.getContextPath() %>/video/bgmUpload.action\" accept=\".mp3\"/>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<div id=\"bgmContent\"></div>\n\t                            \t\t</div>\n\t                            \t\t\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t                                                  \n\t\t\t\t\t\t\t</div>\n\t                                                        \n\t\t\t\t\t\t\t<div class=\"form-actions\">\n\t\t\t                    <div class=\"row\">\n\t\t\t                        <div class=\"col-md-offset-3 col-md-9\">\n\t\t\t                            <button type=\"submit\" class=\"btn green-jungle\">提 交</button>\n\t\t\t                            <button type=\"reset\" class=\"btn grey-salsa btn-outline\">取  消</button>\n\t\t\t                        </div>\n\t\t\t                    </div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t\t<!-- END FORM-->\n\t\t\t\t\t\t\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n                            \n\t\t</div>\n\t</div>\n\t\n<script type=\"text/javascript\">\n    \n    $(\"#file\").fileupload({\n    \tpasteZone: \"#bgmContent\",\n    \tdataType: \"json\",\n    \tdone: function(e, data) {\n    \t\tconsole.log(data);\n    \t\t\n    \t\tif (data.result.status != '200') {\n    \t\t\talert(\"上传失败...\");\n    \t\t} else {\n    \t\t\tvar bgmServer = $(\"#bgmServer\").val();\n    \t\t\tvar url = bgmServer + data.result.data;\n    \t\t\t$(\"#bgmContent\").html(\"<a href='\" + url + \"' target='_blank'>点我播放</a>\");\n    \t\t\t$(\"#path\").attr(\"value\", data.result.data);\n    \t\t}\n    \t\t\n    \t}\n    });\n    \n    var submitBgm = function() {\n    \t$('#addBgmForm').ajaxSubmit({\n    \t\turl: $('#hdnContextPath').val() + '/video/addBgm.action',\n    \t\ttype: 'POST',\n    \t\tsuccess: function(data) {\n    \t\t\t\n    \t\t\tif (data.status == 200 && data.msg == 'OK') {\n    \t\t\t\talert('BGM添加成功...')\n    \t\t\t} else {\n    \t\t\t\talert('BGM添加失败...')\n    \t\t\t}\n    \t\t\t\n    \t\t\t$(\"#bgmListMenu\").click();\n    \t\t}\n    \t});\n    }\n    \n    $('#addBgmForm').validate({\n    \terrorElement: 'span', //default input error message container\n        errorClass: 'help-block', // default input error message class\n        focusInvalid: false, // do not focus the last invalid input\n        ignore: \"\", // validate all fields including form hidden input\n        rules: {\n        \tauthor: {\n                required: true,\n                rangelength: [1,8]\n            },\n            name: {\n                required: true,\n                rangelength: [1,50]\n            },\n            path: {\n                required: true\n            }\n        },\n        messages: {\n        \tauthor: {\n                required: \"歌手不能为空.\",\n                rangelength: \"歌手长度请控制在1-8位.\"\n            },\n            name: {\n                required: \"歌曲不能为空.\",\n                rangelength: \"歌曲长度请控制在1-50位.\"\n            },\n            path: {\n                required: \"路径不能为空.\"\n            }\n        },\n        invalidHandler: function(event, validator) { //display error alert on form submit   \n            $('.alert-danger', $('#addBgmForm')).show();\n        },\n\n        highlight: function(element) { // hightlight error inputs\n            $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n        },\n        success: function(label) {\n            label.closest('.form-group').removeClass('has-error');\n            label.remove();\n        },\n        errorPlacement: function(error, element) {\n            error.insertAfter(element.closest('#input-error'));\n        },\n        submitHandler: function(form) {\n        \t// FIXME\n        \tsubmitBgm();\n        }\n    });\n    \n    \n</script>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/video/bgmList.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\n\n<script src=\"<%=request.getContextPath() %>/static/pages/js/bgmList.js?v=1.0.0.2\" \n\ttype=\"text/javascript\"></script>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>bgm管理</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>背景音乐列表展示</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n                        \n\t<div class=\"row\">\n    \t<div class=\"col-md-12\">\n                   \n\t\t\t<div class=\"bgmList_wrapper\">\n                <table id=\"bgmList\"></table> \n    \t\t\t<div id=\"bgmListPager\"></div>\n             </div>\n             \n\t\t</div>\n\t</div>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/center/video/reportList.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n\n<script src=\"<%=request.getContextPath() %>/static/pages/js/reportList.js?v=1.1\" type=\"text/javascript\"></script>\n\n\t<!-- BEGIN PAGE HEADER-->\n\t<!-- BEGIN PAGE BAR -->\n\t<div class=\"page-bar\">\n\t    <ul class=\"page-breadcrumb\">\n\t        <li>\n\t            <span>首页</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>举报信息</span>\n\t            <i class=\"fa fa-circle\"></i>\n\t        </li>\n\t        <li>\n\t            <span>举报列表</span>\n\t        </li>\n\t    </ul>\n\t</div>\n\t<!-- END PAGE BAR -->\n\t<!-- END PAGE HEADER-->\n        \n    <!-- 列表 jqgrid start -->                \n\t<div class=\"row\">\n\t\n    \t<div class=\"col-md-12\">\n\t\t\t<br/>\n\t\t\t\n\t\t\t<div class=\"usersReportsList_wrapper\">  \n\t\t\t    <table id=\"usersReportsList\"></table>  \n\t\t\t    <div id=\"usersReportsListPager\"></div>  \n\t\t\t</div>  \n\t\t\t\n\t\t</div>\n\t</div>\n\t<!-- 列表 jqgrid end -->\n\t\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/log4j.properties",
    "content": "log4j.rootLogger=INFO,console\n# TODO \\u53d1\\u5e03\\u5230\\u963f\\u91cc\\u4e91\\u8bb0\\u5f97\\u6dfb\\u52a0\\uff0c\\u53e6\\u5916\\u63a7\\u5236\\u53f0\\u4e0d\\u8f93\\u51fa(\\u53ea\\u8f93\\u51fawarn\\u6216\\u8005error\\u4fe1\\u606f)\n#INFO,console,dailyFile\n\n# log4j.logger.org.mybatis = INFO\nlog4j.logger.kkvideo.admin.dao=INFO\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender.console.encoding=UTF-8\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/mybatis/SqlMapConfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE configuration\n\t\tPUBLIC \"-//mybatis.org//DTD Config 3.0//EN\"\n\t\t\"http://mybatis.org/dtd/mybatis-3-config.dtd\">\n<configuration>\n\n\t<!-- 用于输出日志 log4j:LOG4J SLF4J -->\n    <settings>  \n        <setting name=\"logImpl\" value=\"SLF4J\"/>  \n    </settings>  \n\n\t<!-- 此文件可以为空文件, 但是必须要有这文件 -->\n\t\n\t<!-- plugins在配置文件中的位置必须符合要求，否则会报错，顺序如下: properties?, settings?, typeAliases?, \n\t\ttypeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, \n\t\tdatabaseIdProvider?, mappers? -->\n\t<plugins>\n\t\t<!-- com.github.pagehelper为PageHelper类所在包名 -->\n\t\t<plugin interceptor=\"com.github.pagehelper.PageHelper\">\n\t\t\t<!-- 4.0.0以后版本可以不设置该参数 -->\n\t\t\t<property name=\"dialect\" value=\"mysql\" />\n\t\t\t<!-- 该参数默认为false -->\n\t\t\t<!-- 设置为true时，会将RowBounds第一个参数offset当成pageNum页码使用 -->\n\t\t\t<!-- 和startPage中的pageNum效果一样 -->\n\t\t\t<property name=\"offsetAsPageNum\" value=\"true\" />\n\t\t\t<!-- 该参数默认为false -->\n\t\t\t<!-- 设置为true时，使用RowBounds分页会进行count查询 -->\n\t\t\t<property name=\"rowBoundsWithCount\" value=\"true\" />\n\t\t\t<!-- 设置为true时，如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->\n\t\t\t<!-- （相当于没有执行分页查询，但是返回结果仍然是Page类型） -->\n\t\t\t<property name=\"pageSizeZero\" value=\"true\" />\n\t\t\t<!-- 3.3.0版本可用 - 分页参数合理化，默认false禁用 -->\n\t\t\t<!-- 启用合理化时，如果pageNum<1会查询第一页，如果pageNum>pages会查询最后一页 -->\n\t\t\t<!-- 禁用合理化时，如果pageNum<1或pageNum>pages会返回空数据 -->\n<!-- \t\t\t<property name=\"reasonable\" value=\"false\" /> -->\n\t\t\t<!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->\n\t\t\t<!-- 增加了一个`params`参数来配置参数映射，用于从Map或ServletRequest中取值 -->\n\t\t\t<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->\n\t\t\t<!-- 不理解该含义的前提下，不要随便复制该配置 -->\n<!-- \t\t\t<property name=\"params\"\tvalue=\"pageNum=pageHelperStart;pageSize=pageHelperRows;\" /> -->\n\t\t\t<!-- 支持通过Mapper接口参数来传递分页参数 -->\n\t\t\t<property name=\"supportMethodsArguments\" value=\"false\" />\n\t\t\t<!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->\n\t\t\t<property name=\"returnPageInfo\" value=\"none\" />\n\t\t</plugin>\n\t</plugins>\n\t\n</configuration>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/resource/admin.properties",
    "content": "adminusername=admin\nadminpassword=admin"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/resource/db.properties",
    "content": "jdbc.driver=com.mysql.jdbc.Driver\n#jdbc.url=jdbc:mysql://localhost:3306/kkvideo\njdbc.url=jdbc:mysql://video.redrat.cn:3306/kkvideo\njdbc.username=root\njdbc.password=jimisun\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/resource/resource.properties",
    "content": "#FILE_SPACE=E:\\\\worktest\\\\kkvideo\\\\kkvideoadmin\nFILE_SPACE=/resource"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/spring/applicationContext-dao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<!-- 数据库连接池 -->\n\t<!-- 加载配置文件 -->\n\t<!-- \n\t\t由db.properties改为*.properties, 这样也会加载其他的属性文件 可以使用 @Value\n\t\t由于父子容器关系，service层（父）的属性文件在springmvc层（子）是读取不到的，子只能读取对象，属性是读取不到的\n\t -->\n\t<context:property-placeholder location=\"classpath:resource/*.properties\" />\n\t<!-- 数据库连接池 -->\n\t<bean id=\"dataSource\" class=\"com.alibaba.druid.pool.DruidDataSource\"\n\t\tdestroy-method=\"close\">\n\t\t<property name=\"url\" value=\"${jdbc.url}\" />\n\t\t<property name=\"username\" value=\"${jdbc.username}\" />\n\t\t<property name=\"password\" value=\"${jdbc.password}\" />\n\t\t<property name=\"driverClassName\" value=\"${jdbc.driver}\" />\n\t\t<!-- 最大并发连接数 -->\n\t\t<property name=\"maxActive\" value=\"30\" />\n\t\t<!-- 最小空闲连接数 -->\n\t\t<property name=\"minIdle\" value=\"5\" />\n\t\t<!-- 用于显示数据源监控中的sql语句监控 -->\n\t\t<property name=\"filters\" value=\"stat\" />\n\t</bean>\n\t\n\t<!-- 配置sqlsessionFactory -->\n\t<bean id=\"sqlSessionFactory\" class=\"org.mybatis.spring.SqlSessionFactoryBean\">\n\t\t<property name=\"configLocation\" value=\"classpath:mybatis/SqlMapConfig.xml\"></property>\n\t\t<property name=\"dataSource\" ref=\"dataSource\"></property>\n\t</bean>\n\t\n\t<!-- 配置扫描包，加载mapper代理对象 -->\n\t<bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n\t\t<property name=\"basePackage\" value=\"kkvideo.admin.mapper\"></property>\n\t</bean>\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/spring/applicationContext-service.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\t\t\n\t<!-- 扫描包加载Service实现类 -->\n\t<context:component-scan base-package=\"kkvideo.admin.service\"></context:component-scan>\n\t\n\t<!-- 自动创建代理 对@AspectJ注解的支持 -->\n\t<!-- 通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Service --> \n\t<aop:aspectj-autoproxy proxy-target-class=\"true\"></aop:aspectj-autoproxy>\n\n\t<!--配置工具类sid到Spring的容器中-->\n\t<bean id=\"sid\" class=\"org.n3r.idworker.Sid\"></bean>\n\t\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/spring/applicationContext-transaction.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\" xmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<!-- 事务管理器 -->\n\t<bean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\">\n\t\t<!-- 数据源 -->\n\t\t<property name=\"dataSource\" ref=\"dataSource\" />\n\t</bean>\n\t\n\t<!-- 通知 -->\n\t<tx:advice id=\"txAdvice\" transaction-manager=\"transactionManager\">\n\t\t<tx:attributes>\n\t\t\t<!-- 传播行为 -->\n\t\t\t<tx:method name=\"save*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"insert*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"add*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"create*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"delete*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"update*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"display*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"do*\" propagation=\"REQUIRED\" />\n\t\t\t<tx:method name=\"query*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"find*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"select*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t\t<tx:method name=\"get*\" propagation=\"SUPPORTS\" read-only=\"true\" />\n\t\t</tx:attributes>\n\t</tx:advice>\n\t\n\t<!-- 切面 -->\n\t<aop:config>\n\t\t<aop:advisor advice-ref=\"txAdvice\" pointcut=\"execution(* kkvideo.admin.service.*.*(..))\" />\n\t</aop:config>\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/spring/applicationContext-zookeeper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd\n\t\thttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\t\t\n\t<description>zookeeper 放入spring容器，项目启动加载的时候就建立和zk的连接</description>\n\t\n\t<!--&lt;!&ndash; 创建重连策略 &ndash;&gt;-->\n\t<bean id=\"retryPolicy\" class=\"org.apache.curator.retry.ExponentialBackoffRetry\">\n\t\t<!--&lt;!&ndash; 每次重试连接的等待时间 &ndash;&gt;-->\n\t\t<constructor-arg index=\"0\" value=\"1000\"></constructor-arg>\n\t\t<!--&lt;!&ndash; 设置的重连的次数 &ndash;&gt;-->\n\t\t<constructor-arg index=\"1\" value=\"5\"></constructor-arg>\n\t</bean>\n\t\n\t<!--&lt;!&ndash; 创建zookeeper客户端 &ndash;&gt;-->\n\t<bean id=\"client\" class=\"org.apache.curator.framework.CuratorFrameworkFactory\" \n\t\tfactory-method=\"newClient\" init-method=\"start\">\n\t\t<constructor-arg index=\"0\" value=\"admin.video.redrat.cn:2181\"></constructor-arg>\n\t\t<!--<constructor-arg index=\"0\" value=\"192.168.25.137:2181\"></constructor-arg>-->\n\t\t<constructor-arg index=\"1\" value=\"10000\"></constructor-arg>\n\t\t<constructor-arg index=\"2\" value=\"10000\"></constructor-arg>\n\t\t<constructor-arg index=\"3\" ref=\"retryPolicy\"></constructor-arg>\n\t</bean>\n\t\n\t<!--&lt;!&ndash; 客户端配置 &ndash;&gt;\n\t&lt;!&ndash; init-method=\"init\" 不使用zk的话，仅仅只是测试为了方便可以把这个方法暂时拿掉 &ndash;&gt;-->\n\t<bean id=\"ZKCurator\" class=\"kkvideo.admin.service.util.ZKCurator\" init-method=\"init\">\n\t\t<constructor-arg index=\"0\" ref=\"client\"></constructor-arg>\n\t</bean>\n\n\t\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/classes/spring/springmvc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:mvc=\"http://www.springframework.org/schema/mvc\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:util=\"http://www.springframework.org/schema/util\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd\n\t\thttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd\n\t\thttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd\n\t\thttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd\n\t\thttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd\">\n\n\t<context:component-scan base-package=\"kkvideo.admin.controller\" />\n\t\n\t<!-- 自动创建代理 对@AspectJ注解的支持 -->\n\t<!-- 通知spring使用cglib而不是jdk的来生成代理方法 AOP可以拦截到Controller --> \n\t<aop:aspectj-autoproxy proxy-target-class=\"true\"></aop:aspectj-autoproxy>\n\n\t<!--配置注解驱动-->\n\t<mvc:annotation-driven />\n\t\n\t<!-- 静态资源映射 -->\n\t<!-- 缓存存在时间 cache-period 1年 -->\n\t<mvc:resources mapping=\"/static/**\" location=\"/static/\" cache-period=\"31556926\"/>\n\n\t<!--配置视图解析器-->\n\t<bean class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\">\n\t\t<property name=\"prefix\" value=\"/WEB-INF/center/\" />\n\t\t<property name=\"suffix\" value=\".jsp\" />\n\t</bean>\n\t\n\t <!--配置文件方式配置拦截器-->\n   <mvc:interceptors>\n        <mvc:interceptor>\n            <mvc:mapping path=\"/*/**\"/>\n            <mvc:exclude-mapping path=\"/static/**\"/>  \n            <bean class=\"kkvideo.admin.interceptor.LoginInterceptor\">\n               <property name=\"unCheckUrls\"> \n                  <list> \n\t\t\t\t\t<value>/login.action</value>\n\t\t\t\t\t<value>/users/login.action</value>\n                  </list>\n              </property> \n            </bean>\n        </mvc:interceptor>\n    </mvc:interceptors>\n\t\n\t<!-- 配置多媒体文件解析器（视图解析器） -->\n\t<bean id=\"multipartResolver\"\n\t\tclass=\"org.springframework.web.multipart.commons.CommonsMultipartResolver\">\n\t\t<!-- 设定默认编码 -->\n\t\t<property name=\"defaultEncoding\" value=\"UTF-8\"></property>\n\t\t<!-- 设定文件上传的最大值2MB， 10*1024*1024 -->\n\t\t<property name=\"maxUploadSize\" value=\"20485760\"></property>\n\t\t<!--resolveLazily属性启用是为了推迟文件解析，以便在UploadAction 中捕获文件大小异常--> \n\t\t<property name=\"resolveLazily\" value=\"true\"/>    \n\t</bean>\n\t\n\t<!-- 属性文件不能跨容器，要在controller中也能被访问到，也需要配置  加载属性文件 -->\n\t<context:property-placeholder location=\"classpath:resource/*.properties\" />\n\n</beans>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/WEB-INF/web.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<web-app xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns=\"http://java.sun.com/xml/ns/javaee\" xmlns:web=\"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"\n\txsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"\n\tversion=\"2.5\">\n\n\t<display-name>kkvideo-admin-web</display-name>\n\n\t<welcome-file-list>\n\t\t<welcome-file>index.html</welcome-file>\n\t\t<welcome-file>index.htm</welcome-file>\n\t\t<welcome-file>index.jsp</welcome-file>\n\t\t<welcome-file>default.html</welcome-file>\n\t\t<welcome-file>default.htm</welcome-file>\n\t\t<welcome-file>default.jsp</welcome-file>\n\t</welcome-file-list>\n\n\t<!-- 加载log4j -->\n\t<context-param>\n\t    <param-name>log4jConfigLocation</param-name>\n\t    <param-value>classpath:log4j.properties</param-value>\n\t</context-param>\n\t<listener>\n\t    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>\n\t</listener>\n\n\t<!-- 加载spring容器 -->\n\t<context-param>\n\t\t<param-name>contextConfigLocation</param-name>\n\t\t<param-value>classpath:spring/applicationContext-*.xml</param-value>\n\t</context-param>\n\t<listener>\n\t\t<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>\n\t</listener>\n\t\n\t<!-- 解决post乱码 -->\n\t<filter>\n\t\t<filter-name>CharacterEncodingFilter</filter-name>\n\t\t<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>\n\t\t<init-param>\n\t\t\t<param-name>encoding</param-name>\n\t\t\t<param-value>utf-8</param-value>\n\t\t</init-param>\n\t</filter>\n\t<filter-mapping>\n\t\t<filter-name>CharacterEncodingFilter</filter-name>\n\t\t<url-pattern>/*</url-pattern>\n\t</filter-mapping>\n\t\n\t<!-- springmvc的前端控制器 -->\n\t<servlet>\n\t\t<servlet-name>kkvideo-admin-web</servlet-name>\n\t\t<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>\n\t\t<!-- contextConfigLocation不是必须的， 如果不配置contextConfigLocation， springmvc的配置文件默认在：WEB-INF/servlet的name+\"-servlet.xml\" -->\n\t\t<init-param>\n\t\t\t<param-name>contextConfigLocation</param-name>\n\t\t\t<param-value>classpath:spring/springmvc.xml</param-value>\n\t\t</init-param>\n\t\t<load-on-startup>1</load-on-startup>\n\t</servlet>\n\t\n\t<servlet-mapping>\n\t\t<servlet-name>kkvideo-admin-web</servlet-name>\n\t\t<url-pattern>*.action</url-pattern>\n\t</servlet-mapping>\n    \n</web-app>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/index.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\n<jsp:forward page=\"${base}/center.action\"></jsp:forward>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/css/inbox.css",
    "content": "/* Cubic Bezier Transition */\n/***\nInbox Page\n***/\n.inbox {\n  margin-bottom: 20px; }\n  .inbox .compose-btn {\n    padding: 8px 14px; }\n  .inbox .inbox-content {\n    min-height: 400px; }\n  .inbox .inbox-nav {\n    margin: 30px 0;\n    padding: 0;\n    list-style: none; }\n    .inbox .inbox-nav > li {\n      padding: 0;\n      margin: 0; }\n      .inbox .inbox-nav > li > a {\n        text-decoration: none !important;\n        display: block;\n        padding: 8px 16px;\n        border-left: 4px solid transparent; }\n        .inbox .inbox-nav > li > a:hover {\n          background: #f1f4f7; }\n        .inbox .inbox-nav > li > a .badge {\n          float: right;\n          margin-top: 1px; }\n      .inbox .inbox-nav > li.active > a {\n        border-left: 4px solid #ed6b75; }\n      .inbox .inbox-nav > li.divider {\n        padding: 0;\n        margin: 4px 16px;\n        border-top: 1px solid #eef1f5; }\n  .inbox .inbox-contacts {\n    margin: 0 0 30px 0;\n    padding: 0;\n    list-style: none; }\n    .inbox .inbox-contacts > li {\n      padding: 0;\n      margin: 0; }\n      .inbox .inbox-contacts > li.divider {\n        padding: 0;\n        margin: 4px 16px;\n        border-top: 1px solid #eef1f5; }\n      .inbox .inbox-contacts > li > a {\n        position: relative;\n        display: block;\n        padding: 8px 16px;\n        color: #3f444a; }\n        .inbox .inbox-contacts > li > a:hover {\n          background: #f1f4f7;\n          text-decoration: none; }\n        .inbox .inbox-contacts > li > a .contact-name {\n          display: inline-block;\n          padding-left: 5px; }\n        .inbox .inbox-contacts > li > a .contact-pic {\n          width: 30px;\n          height: 30px;\n          border-radius: 50% !important; }\n        .inbox .inbox-contacts > li > a .contact-status {\n          position: absolute;\n          width: 10px;\n          height: 10px;\n          border-radius: 50% !important;\n          left: 38px;\n          top: 30px; }\n  .inbox .input-actions .btn {\n    margin-left: 10px; }\n  .inbox .inbox-view-info {\n    color: #666;\n    padding: 5px 0;\n    border-top: solid 1px #eee;\n    border-bottom: solid 1px #eee; }\n    .inbox .inbox-view-info .inbox-author {\n      border-radius: 50% !important;\n      margin-right: 10px; }\n    .inbox .inbox-view-info .inbox-info-btn .btn-group {\n      float: right;\n      margin-top: 5px; }\n  .inbox .inbox-sidebar {\n    padding: 20px;\n    border: 1px solid #e7ecf1;\n    border-radius: 4px; }\n  .inbox .inbox-body {\n    padding: 20px;\n    border: 1px solid #e7ecf1;\n    border-radius: 4px; }\n  .page-container-bg-solid .inbox .inbox-sidebar {\n    background: #ffffff;\n    border: 0; }\n  .page-container-bg-solid .inbox .inbox-body {\n    background: #ffffff;\n    border: 0; }\n\n.inbox .inbox {\n  margin-bottom: 0px; }\n\n.inbox .tab-content {\n  overflow: inherit; }\n\n.inbox .inbox-loading {\n  display: none;\n  font-size: 22px;\n  font-weight: 300; }\n\n/*Inbox Content*/\n.inbox .inbox-header {\n  overflow: hidden; }\n\n.inbox .inbox-header h1 {\n  margin: 0;\n  color: #666;\n  margin-bottom: 20px; }\n\n.inbox .pagination-control {\n  text-align: right; }\n\n.inbox .pagination-control .pagination-info {\n  display: inline-block;\n  padding-right: 10px;\n  font-size: 14px;\n  line-height: 14px; }\n\n.inbox tr {\n  color: #777;\n  font-size: 13px; }\n\n.inbox tr label {\n  display: inline-block; }\n\n.inbox tr.unread td {\n  font-weight: 600; }\n\n.inbox td i.icon-paper-clip {\n  top: 2px;\n  color: #d8e0e5;\n  font-size: 17px;\n  position: relative; }\n\n.inbox tr i.icon-star,\n.inbox tr i.icon-trash {\n  cursor: pointer; }\n\n.inbox tr i.icon-star {\n  color: #eceef0; }\n\n.inbox tr i.icon-star:hover {\n  color: #fd7b12; }\n\n.inbox tr i.inbox-started {\n  color: #fd7b12; }\n\n.inbox .table th,\n.inbox .table td {\n  border: none; }\n\n.inbox .table th {\n  background: #eef4f7;\n  border-bottom: solid 5px #fff; }\n\n.inbox th.text-right {\n  text-align: right; }\n\n.inbox th label.inbox-select-all {\n  color: #828f97;\n  font-size: 13px;\n  padding: 1px 4px 0; }\n\n.inbox td.text-right {\n  width: 100px;\n  text-align: right; }\n\n.inbox td.inbox-small-cells {\n  width: 10px; }\n\n.inbox .table-hover tbody tr:hover > td,\n.inbox .table-hover tbody tr:hover > th,\n.inbox .table-striped tbody > tr:nth-child(odd) > td,\n.inbox .table-striped tbody > tr:nth-child(odd) > th {\n  background: #f8fbfd;\n  cursor: pointer; }\n\n.inbox .table-hover tbody tr:hover > td,\n.inbox .table-hover tbody tr:hover > th {\n  background: #eef4f7; }\n\n/*Inbox Drafts*/\n.inbox .inbox-drafts {\n  padding: 8px 0;\n  text-align: center;\n  border-top: solid 1px #eee;\n  border-bottom: solid 1px #eee; }\n\n/*Inbox View*/\n.inbox-view-header {\n  margin-bottom: 20px; }\n\n.inbox-view-header h1 {\n  color: #666;\n  font-size: 22px;\n  line-height: 24px;\n  margin-bottom: 0 !important; }\n\n.inbox-view-header h1 a {\n  top: -2px;\n  color: #fff;\n  cursor: pointer;\n  font-size: 13px;\n  padding: 2px 7px;\n  line-height: 16px;\n  position: relative;\n  background: #b0bcc4;\n  display: inline-block; }\n\n.inbox-view-header h1 a:hover {\n  background: #aab5bc;\n  text-decoration: none; }\n\n.inbox-view-header i.icon-print {\n  color: #94a4ab;\n  cursor: pointer;\n  font-size: 14px;\n  display: inline-block;\n  padding: 6px 8px !important;\n  background: #edf1f4 !important; }\n\n.inbox-view-header i.icon-print:hover {\n  background: #e7ebef !important; }\n\n.inbox-view-info strong {\n  color: #666;\n  margin: 0 10px 0 5px; }\n\n.inbox-view {\n  color: #666;\n  padding: 10px 0 0; }\n\n.inbox-view a {\n  color: #169ce9; }\n\n.inbox-attached {\n  line-height: 16px; }\n\n.inbox-attached a {\n  margin: 0 2px; }\n\n.inbox-attached img {\n  height: auto;\n  max-width: 250px;\n  margin-bottom: 5px; }\n\n.inbox-attached span {\n  margin-right: 3px; }\n\n.inbox-attached strong {\n  color: #555;\n  display: block;\n  font-size: 13px; }\n\n.inbox-attached .margin-bottom-25 {\n  margin-bottom: 25px; }\n\n.inbox-attached .margin-bottom-15 {\n  margin-bottom: 15px; }\n\n/*Inbox Compose*/\n.inbox-compose {\n  margin-top: 1px;\n  border: solid 1px #eee; }\n\n.inbox-compose-btn {\n  padding: 12px 12px;\n  background: #f0f6fa; }\n\n.inbox-compose-attachment {\n  padding: 8px 8px; }\n\n.inbox-compose-attachment .btn {\n  padding: 4px 10px; }\n\n.inbox-compose .inbox-form-group {\n  margin-bottom: 0;\n  position: relative;\n  border-bottom: solid 1px #eee; }\n\n.inbox-compose .controls {\n  margin-left: 85px; }\n\n.inbox-compose .inbox-form-group > label {\n  width: 80px;\n  float: left;\n  color: #979797;\n  text-align: right; }\n\n.inbox-compose .controls > input {\n  border: none !important; }\n\n.inbox-compose .controls-to {\n  padding-right: 55px; }\n\n.inbox-compose .controls-cc {\n  padding-right: 20px; }\n\n.inbox-compose .controls-bcc {\n  padding-right: 20px; }\n\n.inbox-compose .inbox-form-group a.close {\n  top: 13px;\n  right: 10px;\n  position: absolute; }\n\n.inbox-compose .mail-to .inbox-cc-bcc {\n  display: inline-block;\n  top: 7px;\n  right: 10px;\n  color: #979797;\n  font-size: 14px;\n  cursor: pointer;\n  position: absolute; }\n\n.inbox-compose .mail-to .inbox-bcc {\n  margin-left: 5px; }\n\n.inbox-compose .mail-to inbox-cc:hover,\n.inbox-compose .mail-to inbox-bcc:hover {\n  color: #777; }\n\n.inbox-compose .wysihtml5 {\n  padding: 0px !important;\n  margin: 0px !important;\n  border: 0 !important; }\n\n.inbox-compose .wysihtml5-sandbox {\n  padding: 0px !important;\n  margin: 0px !important;\n  display: block !important;\n  border: 0 !important;\n  margin-top: 5px;\n  width: 100% !important;\n  border-left: none;\n  border-right: none;\n  border-color: #eee; }\n\n.inbox-compose .wysihtml5-toolbar {\n  border: 0;\n  border-bottom: 1px solid #eee; }\n\n.inbox-compose .wysihtml5-toolbar > li {\n  height: 34px;\n  margin-right: 0;\n  margin-bottom: 0; }\n\n.inbox-compose .wysihtml5-toolbar > li > a,\n.inbox-compose .wysihtml5-toolbar > li > div > a {\n  background: #fff !important;\n  border-color: #fff !important; }\n  .inbox-compose .wysihtml5-toolbar > li > a:hover,\n  .inbox-compose .wysihtml5-toolbar > li > div > a:hover {\n    background: #f1f1f1 !important;\n    border-color: #f1f1f1 !important;\n    border-radius: 0; }\n\n.inbox-compose .wysihtml5-toolbar .dropdown.open .dropdown-toggle,\nul.wysihtml5-toolbar a.btn.wysihtml5-command-active {\n  background: #eee !important; }\n\n@media (max-width: 480px) {\n  .inbox-compose .inbox-form-group > label {\n    margin-top: 7px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/css/ticket.css",
    "content": "/***\nTicket Page\n***/\n/* Cubic Bezier Transition */\n.app-ticket {\n  overflow: hidden; }\n  .app-ticket h3 {\n    margin: 0 0 15px 0;\n    font-size: 14px;\n    font-weight: bold; }\n  .app-ticket h3 i {\n    color: #a1acb7;\n    margin-right: 5px; }\n  .app-ticket p {\n    margin: 0; }\n\n.app-ticket-details .portlet-body .row {\n  margin-bottom: 30px; }\n\n.app-ticket-details .ticket-line {\n  width: 100%;\n  height: 1px;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  margin-bottom: 30px; }\n\n.app-ticket-details .ticket-id,\n.app-ticket-details .ticket-title {\n  display: inline-block;\n  font-size: 16px;\n  margin-right: 30px; }\n\n.app-ticket-details .ticket-cust a:hover {\n  text-decoration: none; }\n\n.app-ticket-details .ticket-reply-msg {\n  width: 100%;\n  height: 7em;\n  border-color: #e7ecf1;\n  outline: none; }\n\n.app-ticket-details .ticket-assign,\n.app-ticket-details .ticket-status {\n  padding: 5px;\n  border: 1px solid;\n  border-color: #e7ecf1;\n  outline: none; }\n\n.app-ticket-config .ticket-counter {\n  text-align: center; }\n  .app-ticket-config .ticket-counter > h4 {\n    font-size: 24px; }\n\n@media (max-width: 991px) {\n  .app-ticket-details .ticket-margin {\n    margin-top: 30px; } }\n\n@media (max-width: 480px) {\n  .app-ticket-config .ticket-counter {\n    margin-bottom: 30px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/css/todo-2.css",
    "content": "/***\nTODO Page\n***/\n/* Cubic Bezier Transition */\n.todo-sidebar {\n  float: left;\n  width: 230px;\n  margin-right: 20px; }\n\n.todo-content {\n  overflow: hidden; }\n\n.todo-tasklist-item-border-green {\n  border-left: #3faba4 2px solid; }\n\n.todo-tasklist-item-border-blue {\n  border-left: #4c87b9 2px solid; }\n\n.todo-tasklist-item-border-purple {\n  border-left: #8877a9 2px solid; }\n\n.todo-tasklist-item-border-red {\n  border-left: #d05454 2px solid; }\n\n.todo-tasklist-item-border-yellow {\n  border-left: #d4ad38 2px solid; }\n\n.padding-top-10px {\n  padding-top: 15px; }\n\n.todo-userpic {\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important;\n  border: 1px #cedae1 solid; }\n\n.todo-text-color {\n  color: #45535b; }\n\n/* PROJECT LIST */\n.todo-projects-config {\n  padding: 6px 9px 3px 9px !important; }\n  .todo-projects-config > i {\n    font-size: 14px !important; }\n\n.todo-tasklist {\n  padding: 0; }\n\n.todo-project-list ul li a {\n  font-size: 14px !important;\n  padding: 8px 10px; }\n\n.todo-project-list .nav li a .badge {\n  float: right;\n  margin-top: 1px !important; }\n\n.todo-project-list .nav > li.active > a {\n  color: #3f444a;\n  background-color: #f1f4f7 !important; }\n\n/* END PROJECT LIST */\n/* TASK HISTORY */\n.todo-task-history {\n  padding: 0;\n  margin: 0; }\n  .todo-task-history > li {\n    padding: 5px 0; }\n    .todo-task-history > li > .todo-task-history-desc {\n      overflow: hidden; }\n    .todo-task-history > li > .todo-task-history-date {\n      font-size: 12px;\n      float: right;\n      width: 150px;\n      margin-left: 10px;\n      text-align: right;\n      color: #999; }\n\n/* TASKS LIST */\n.todo-tasklist-item {\n  background: #f6fbfc;\n  padding: 10px;\n  margin-bottom: 10px;\n  margin-bottom: 15px;\n  overflow: hidden; }\n  .todo-tasklist-item:last-child {\n    margin-bottom: 0; }\n\ndiv .todo-tasklist-item:hover {\n  cursor: pointer;\n  background-color: #edf7f9; }\n\n.todo-tasklist-item img {\n  margin: 0 10px 10px 0; }\n\n.todo-tasklist-item-title {\n  font-size: 15px;\n  color: #2b4a5c;\n  font-weight: 600;\n  padding-top: 3px;\n  padding-bottom: 13px; }\n\n.todo-tasklist-item-text {\n  font-size: 13px;\n  color: #577688;\n  padding-bottom: 5px; }\n\n.todo-tasklist-item ul {\n  margin: 5px 0 0 0px; }\n\n.todo-tasklist-item li {\n  color: #577688;\n  font-size: 13px;\n  margin-right: 10px;\n  margin-bottom: 5px;\n  padding: 0 !important; }\n\n.todo-tasklist-item li i {\n  color: #b3bfcb;\n  font-size: 15px; }\n\n.todo-tasklist-controls {\n  margin-top: 5px; }\n\n.todo-tasklist-date {\n  color: #637b89 !important;\n  margin-right: 12px; }\n\n.todo-tasklist-date i {\n  color: #abbfca !important;\n  margin-right: 5px; }\n\n/* END TASKS LIST */\n/* TASK BODY */\n.todo-taskbody-tasktitle {\n  font-size: 18px;\n  color: #778d96; }\n\n.todo-taskbody-taskdesc {\n  font-size: 14px;\n  color: #778d96; }\n\n.todo-username {\n  font-size: 16px;\n  color: #2b4a5c;\n  font-weight: 600;\n  padding: 15px 0 0 15px; }\n\n.todo-comment-head {\n  padding-top: 3px; }\n\n.todo-comment {\n  position: relative; }\n\n.todo-comment:hover > .todo-comment-btn {\n  display: block; }\n\n.todo-comment-btn {\n  display: none;\n  position: absolute;\n  top: 1px;\n  right: 0px;\n  font-size: 12px;\n  color: #566e7c;\n  border-color: #a2aeb5; }\n\n.todo-comment-btn:hover {\n  color: #fff;\n  background-color: #a1b6c2;\n  border-color: #a1b6c2; }\n\n.todo-comment-username {\n  font-size: 14px;\n  color: #2b4a5c;\n  font-weight: 600; }\n\n.todo-comment-date {\n  font-size: 12px;\n  color: #2b4a5c;\n  font-weight: 400; }\n\n.todo-username-btn {\n  margin: 14px 0 0 15px;\n  color: #566e7c;\n  border-color: #a2aeb5; }\n\n.todo-username-btn:hover {\n  color: #fff;\n  background-color: #a1b6c2;\n  border-color: #a1b6c2; }\n\n.form .form-actions.todo-form-actions {\n  padding-top: 10px;\n  border: 0;\n  margin: 0 0 20px 0; }\n\n/* END TASK BODY */\n/* RESPONSIVE MODE */\n@media (max-width: 991px) {\n  /* 991px */\n  .todo-sidebar {\n    float: none;\n    width: 100%;\n    margin: 0; }\n    .todo-sidebar > .portlet {\n      margin-bottom: 20px; }\n      .todo-sidebar > .portlet .portlet-title .tools {\n        margin-left: 5px; }\n  .todo-content {\n    overflow: visible; } }\n\n.todo-tasklist-devider {\n  display: none; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .todo-tasklist-devider {\n    display: block;\n    height: 20px;\n    margin: 20px -10px;\n    background: #F1F3FA; }\n  /* TASK HISTORY */\n  .todo-task-history > li {\n    padding: 9px 0; }\n    .todo-task-history > li > .todo-task-history-date {\n      width: 100px;\n      font-size: 11px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/css/todo.css",
    "content": "@charset \"UTF-8\";\n/***\nNEW TODO Page\n***/\n/* Cubic Bezier Transition */\n.todo-main-header {\n  margin-top: -20px; }\n  .todo-main-header > h3 {\n    font-weight: 400;\n    font-size: 22px;\n    margin-right: 1em;\n    display: inline-block;\n    color: #3b464f; }\n  .todo-main-header > .todo-breadcrumb {\n    border-left: 1px solid;\n    border-color: #dae3eb;\n    padding: 0.5em 2em;\n    display: inline-block;\n    margin-top: 17px; }\n    .todo-main-header > .todo-breadcrumb > li {\n      display: inline-block;\n      font-size: 11px; }\n      .todo-main-header > .todo-breadcrumb > li > a {\n        color: #77838d;\n        text-transform: uppercase;\n        text-decoration: none; }\n        .todo-main-header > .todo-breadcrumb > li > a:hover {\n          color: #337ab7;\n          text-decoration: none; }\n      .todo-main-header > .todo-breadcrumb > li > .todo-active {\n        color: #49a7fa; }\n      .todo-main-header > .todo-breadcrumb > li:before {\n        content: \"•\";\n        color: #b6c1cb;\n        margin: 0 1em; }\n      .todo-main-header > .todo-breadcrumb > li:first-child:before {\n        content: \"\";\n        margin: 0; }\n\n.todo-container .todo-projects-container,\n.todo-container .todo-tasks-container {\n  background-color: #fff;\n  border: 1px solid;\n  border-color: #ebf0f5; }\n\n.todo-container .todo-projects-container {\n  padding: 0; }\n  .todo-container .todo-projects-container > li {\n    list-style: none;\n    padding: 30px 20px; }\n\n.todo-container .todo-projects-divider {\n  height: 1px;\n  margin: 0;\n  background-color: #ebf0f5; }\n\n.todo-container .todo-tasks-container {\n  padding: 30px 20px; }\n\n.todo-container .todo-head {\n  border-bottom: 1px solid;\n  border-color: #ebf0f5;\n  padding-bottom: 20px; }\n  .todo-container .todo-head > h3 {\n    margin-top: 0;\n    display: inline-block;\n    color: #4db3a4;\n    font-weight: 600;\n    text-transform: uppercase;\n    font-size: 15px; }\n  .todo-container .todo-head > p {\n    display: inline-block;\n    color: #9eacb4;\n    font-size: 12px;\n    margin-left: 2em;\n    margin-bottom: 0;\n    margin-top: 0; }\n  .todo-container .todo-head > button {\n    float: right;\n    font-weight: 600;\n    font-size: 11px;\n    text-transform: uppercase; }\n\n.todo-container .todo-projects-content,\n.todo-container .todo-tasks-content {\n  padding-left: 0; }\n\n.todo-container .todo-projects-item,\n.todo-container .todo-tasks-item {\n  list-style: none;\n  margin-left: 0; }\n\n.todo-container .todo-projects-item > h3 {\n  font-size: 20px;\n  color: #4e5a64;\n  font-weight: 600;\n  margin-top: 0;\n  margin-bottom: 15px; }\n\n.todo-container .todo-projects-item p {\n  color: #a0a9b4;\n  margin-bottom: 15px;\n  margin-top: 0; }\n\n.todo-container .todo-projects-item:last-child {\n  border-bottom: none; }\n\n.todo-container .todo-projects-item.todo-active {\n  background-color: #fafbfc;\n  position: relative; }\n  .todo-container .todo-projects-item.todo-active > h3 {\n    color: #49a7fa; }\n  .todo-container .todo-projects-item.todo-active:after {\n    content: \" \";\n    width: 0;\n    height: 0;\n    border-top: 40px solid transparent;\n    border-bottom: 40px solid transparent;\n    border-left: 20px solid #fafbfc;\n    position: absolute;\n    right: -20px;\n    top: 65px; }\n\n.todo-container .todo-projects-item:hover {\n  background-color: #fafbfc;\n  cursor: pointer; }\n\n.todo-container .todo-projects-item > .todo-project-item-foot {\n  font-size: 12px; }\n\n.todo-container .todo-tasks-item {\n  padding: 30px 0;\n  border-bottom: 1px solid;\n  border-color: #ebf0f5; }\n  .todo-container .todo-tasks-item > h4 {\n    font-size: 16px;\n    font-weight: 600;\n    margin: 0;\n    line-height: 1.3em; }\n    .todo-container .todo-tasks-item > h4 > a {\n      color: #65717b; }\n      .todo-container .todo-tasks-item > h4 > a:hover {\n        color: #49a7fa;\n        text-decoration: none; }\n      .todo-container .todo-tasks-item > h4 > a:focus {\n        color: #65717b;\n        text-decoration: none; }\n  .todo-container .todo-tasks-item > p {\n    margin: 0;\n    color: #9eacb4; }\n  .todo-container .todo-tasks-item:last-child {\n    border-bottom: none; }\n\n.todo-add-button {\n  border: 1px solid;\n  border-color: #e0e6e9;\n  background-color: #fff;\n  color: #c1cbd1;\n  text-decoration: none;\n  padding: 0 0.4em;\n  font-size: 20px;\n  margin: -0.3em 0 0 0.5em;\n  float: right; }\n  .todo-add-button:hover {\n    background-color: #4db3a4;\n    color: #fff;\n    text-decoration: none; }\n  .todo-add-button:focus {\n    color: #c1cbd1;\n    text-decoration: none; }\n\n#todo-members-modal > .modal-dialog {\n  top: 20px; }\n\n#todo-members-modal .select-height {\n  height: 10em; }\n\n#todo-task-modal > .modal-dialog {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  width: 60%;\n  margin: 0 auto; }\n  #todo-task-modal > .modal-dialog .modal-content {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    left: 0;\n    overflow: auto; }\n    #todo-task-modal > .modal-dialog .modal-content .todo-task-modal-title {\n      font-weight: 600;\n      text-transform: uppercase;\n      margin-left: 2em; }\n    #todo-task-modal > .modal-dialog .modal-content .todo-task-due {\n      margin-left: 1em;\n      font-weight: 600;\n      color: #4db3a4;\n      width: 150px !important; }\n    #todo-task-modal > .modal-dialog .modal-content .todo-task-assign {\n      margin-left: 1em;\n      border: 1px solid;\n      border-color: #ccc;\n      padding: 6px 10px;\n      font-weight: 600;\n      color: #4db3a4;\n      text-transform: uppercase; }\n      #todo-task-modal > .modal-dialog .modal-content .todo-task-assign:hover, #todo-task-modal > .modal-dialog .modal-content .todo-task-assign:focus {\n        text-decoration: none; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-modal-bg {\n      background-color: #f7f9fa;\n      padding: 20px; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > h3 {\n      margin: 15px 0;\n      font-size: 20px;\n      color: #4e5a64;\n      font-weight: 600; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > p {\n      font-size: 15px;\n      color: #8f9ea6;\n      line-height: 24px; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > h4 {\n      font-size: 14px;\n      font-weight: 600;\n      text-transform: uppercase;\n      color: #9eacb4;\n      margin-top: 25px; }\n      #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > h4 > .todo-add-button {\n        float: none; }\n    #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file {\n      color: #49a7fa;\n      font-size: 13px; }\n      #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file > i {\n        margin-right: 0.5em; }\n      #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file > .todo-remove-file {\n        color: #9eacb4;\n        margin-left: 0.5em; }\n        #todo-task-modal > .modal-dialog .modal-content > .todo-task-modal-body > .todo-task-file > .todo-remove-file:hover {\n          color: #4db3a4;\n          cursor: pointer; }\n\n.todo-inline {\n  display: inline-block; }\n\n.todo-float-r {\n  float: right; }\n\n.todo-bold {\n  font-weight: 600;\n  font-size: 11px;\n  text-transform: uppercase; }\n\n.todo-padding-b-0 {\n  padding-bottom: 0 !important; }\n\n.todo-grey {\n  color: #9eacb4; }\n\n.todo-red {\n  color: #d39790 !important; }\n\n.todo-green {\n  color: #4db3a4; }\n\n/* RESPONSIVE MODE */\n@media (max-width: 1199px) {\n  .todo-head > p {\n    display: block;\n    margin-left: 0 !important; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  #todo-task-modal > .modal-dialog {\n    width: 95%; }\n  .todo-active:after {\n    border: none !important; } }\n\n@media (max-width: 480px) {\n  .todo-task-modal-title {\n    margin-left: 0 !important;\n    margin-top: 1em;\n    display: block !important; }\n  .todo-tasks-container .todo-head > p {\n    margin-left: 0 !important;\n    margin-top: 1em; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/scripts/calendar.js",
    "content": "var AppCalendar = function() {\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            this.initCalendar();\n        },\n\n        initCalendar: function() {\n\n            if (!jQuery().fullCalendar) {\n                return;\n            }\n\n            var date = new Date();\n            var d = date.getDate();\n            var m = date.getMonth();\n            var y = date.getFullYear();\n\n            var h = {};\n\n            if (App.isRTL()) {\n                if ($('#calendar').parents(\".portlet\").width() <= 720) {\n                    $('#calendar').addClass(\"mobile\");\n                    h = {\n                        right: 'title, prev, next',\n                        center: '',\n                        left: 'agendaDay, agendaWeek, month, today'\n                    };\n                } else {\n                    $('#calendar').removeClass(\"mobile\");\n                    h = {\n                        right: 'title',\n                        center: '',\n                        left: 'agendaDay, agendaWeek, month, today, prev,next'\n                    };\n                }\n            } else {\n                if ($('#calendar').parents(\".portlet\").width() <= 720) {\n                    $('#calendar').addClass(\"mobile\");\n                    h = {\n                        left: 'title, prev, next',\n                        center: '',\n                        right: 'today,month,agendaWeek,agendaDay'\n                    };\n                } else {\n                    $('#calendar').removeClass(\"mobile\");\n                    h = {\n                        left: 'title',\n                        center: '',\n                        right: 'prev,next,today,month,agendaWeek,agendaDay'\n                    };\n                }\n            }\n\n            var initDrag = function(el) {\n                // create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)\n                // it doesn't need to have a start or end\n                var eventObject = {\n                    title: $.trim(el.text()) // use the element's text as the event title\n                };\n                // store the Event Object in the DOM element so we can get to it later\n                el.data('eventObject', eventObject);\n                // make the event draggable using jQuery UI\n                el.draggable({\n                    zIndex: 999,\n                    revert: true, // will cause the event to go back to its\n                    revertDuration: 0 //  original position after the drag\n                });\n            };\n\n            var addEvent = function(title) {\n                title = title.length === 0 ? \"Untitled Event\" : title;\n                var html = $('<div class=\"external-event label label-default\">' + title + '</div>');\n                jQuery('#event_box').append(html);\n                initDrag(html);\n            };\n\n            $('#external-events div.external-event').each(function() {\n                initDrag($(this));\n            });\n\n            $('#event_add').unbind('click').click(function() {\n                var title = $('#event_title').val();\n                addEvent(title);\n            });\n\n            //predefined events\n            $('#event_box').html(\"\");\n            addEvent(\"My Event 1\");\n            addEvent(\"My Event 2\");\n            addEvent(\"My Event 3\");\n            addEvent(\"My Event 4\");\n            addEvent(\"My Event 5\");\n            addEvent(\"My Event 6\");\n\n            $('#calendar').fullCalendar('destroy'); // destroy the calendar\n            $('#calendar').fullCalendar({ //re-initialize the calendar\n                header: h,\n                defaultView: 'month', // change default view with available options from http://arshaw.com/fullcalendar/docs/views/Available_Views/ \n                slotMinutes: 15,\n                editable: true,\n                droppable: true, // this allows things to be dropped onto the calendar !!!\n                drop: function(date, allDay) { // this function is called when something is dropped\n\n                    // retrieve the dropped element's stored Event Object\n                    var originalEventObject = $(this).data('eventObject');\n                    // we need to copy it, so that multiple events don't have a reference to the same object\n                    var copiedEventObject = $.extend({}, originalEventObject);\n\n                    // assign it the date that was reported\n                    copiedEventObject.start = date;\n                    copiedEventObject.allDay = allDay;\n                    copiedEventObject.className = $(this).attr(\"data-class\");\n\n                    // render the event on the calendar\n                    // the last `true` argument determines if the event \"sticks\" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)\n                    $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);\n\n                    // is the \"remove after drop\" checkbox checked?\n                    if ($('#drop-remove').is(':checked')) {\n                        // if so, remove the element from the \"Draggable Events\" list\n                        $(this).remove();\n                    }\n                },\n                events: [{\n                    title: 'All Day Event',\n                    start: new Date(y, m, 1),\n                    backgroundColor: App.getBrandColor('yellow')\n                }, {\n                    title: 'Long Event',\n                    start: new Date(y, m, d - 5),\n                    end: new Date(y, m, d - 2),\n                    backgroundColor: App.getBrandColor('green')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d - 3, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('red')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d + 4, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('green')\n                }, {\n                    title: 'Meeting',\n                    start: new Date(y, m, d, 10, 30),\n                    allDay: false,\n                }, {\n                    title: 'Lunch',\n                    start: new Date(y, m, d, 12, 0),\n                    end: new Date(y, m, d, 14, 0),\n                    backgroundColor: App.getBrandColor('grey'),\n                    allDay: false,\n                }, {\n                    title: 'Birthday Party',\n                    start: new Date(y, m, d + 1, 19, 0),\n                    end: new Date(y, m, d + 1, 22, 30),\n                    backgroundColor: App.getBrandColor('purple'),\n                    allDay: false,\n                }, {\n                    title: 'Click for Google',\n                    start: new Date(y, m, 28),\n                    end: new Date(y, m, 29),\n                    backgroundColor: App.getBrandColor('yellow'),\n                    url: 'http://google.com/',\n                }]\n            });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   AppCalendar.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/scripts/inbox.js",
    "content": "var AppInbox = function () {\n\n    var content = $('.inbox-content');\n    var listListing = '';\n\n    var loadInbox = function (el, name) {\n        var url = 'app_inbox_inbox.html';\n        var title = el.attr('data-title');\n        listListing = name;\n\n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                App.unblockUI('.inbox-content');\n\n                $('.inbox-nav > li.active').removeClass('active');\n                el.closest('li').addClass('active');\n                $('.inbox-header > h1').text(title);\n\n                content.html(res);\n\n                if (Layout.fixContentHeight) {\n                    Layout.fixContentHeight();\n                }\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n\n        // handle group checkbox:\n        jQuery('body').on('change', '.mail-group-checkbox', function () {\n            var set = jQuery('.mail-checkbox');\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                $(this).attr(\"checked\", checked);\n            });\n        });\n    }\n\n    var loadMessage = function (el, name, resetMenu) {\n        var url = 'app_inbox_view.html';\n\n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        var message_id = el.parent('tr').attr(\"data-messageid\");  \n        \n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            data: {'message_id': message_id},\n            success: function(res) \n            {\n                App.unblockUI(content);\n\n                toggleButton(el);\n\n                if (resetMenu) {\n                    $('.inbox-nav > li.active').removeClass('active');\n                }\n                $('.inbox-header > h1').text('View Message');\n\n                content.html(res);\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var initWysihtml5 = function () {\n        $('.inbox-wysihtml5').wysihtml5({\n            \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n        });\n    }\n\n    var initFileupload = function () {\n\n        $('#fileupload').fileupload({\n            // Uncomment the following to send cross-domain cookies:\n            //xhrFields: {withCredentials: true},\n            url: '../assets/global/plugins/jquery-file-upload/server/php/',\n            autoUpload: true\n        });\n\n        // Upload server status check for browsers with CORS support:\n        if ($.support.cors) {\n            $.ajax({\n                url: '../assets/global/plugins/jquery-file-upload/server/php/',\n                type: 'HEAD'\n            }).fail(function () {\n                $('<span class=\"alert alert-error\"/>')\n                    .text('Upload server currently unavailable - ' +\n                    new Date())\n                    .appendTo('#fileupload');\n            });\n        }\n    }\n\n    var loadCompose = function (el) {\n        var url = 'app_inbox_compose.html';\n\n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                App.unblockUI(content);\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Compose');\n\n                content.html(res);\n\n                initFileupload();\n                initWysihtml5();\n\n                $('.inbox-wysihtml5').focus();\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var loadReply = function (el) {\n        var messageid = $(el).attr(\"data-messageid\");\n        var url = 'app_inbox_reply.html';\n        \n        App.blockUI({\n            target: content,\n            overlayColor: 'none',\n            animate: true\n        });\n\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                App.unblockUI(content);\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Reply');\n\n                content.html(res);\n                $('[name=\"message\"]').val($('#reply_email_content_body').html());\n\n                handleCCInput(); // init \"CC\" input field\n\n                initFileupload();\n                initWysihtml5();\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var handleCCInput = function () {\n        var the = $('.inbox-compose .mail-to .inbox-cc');\n        var input = $('.inbox-compose .input-cc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var handleBCCInput = function () {\n\n        var the = $('.inbox-compose .mail-to .inbox-bcc');\n        var input = $('.inbox-compose .input-bcc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var toggleButton = function(el) {\n        if (typeof el == 'undefined') {\n            return;\n        }\n        if (el.attr(\"disabled\")) {\n            el.attr(\"disabled\", false);\n        } else {\n            el.attr(\"disabled\", true);\n        }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            // handle compose btn click\n            $('.inbox').on('click', '.compose-btn', function () {\n                loadCompose($(this));\n            });\n\n            // handle discard btn\n            $('.inbox').on('click', '.inbox-discard-btn', function(e) {\n                e.preventDefault();\n                loadInbox($(this), listListing);\n            });\n\n            // handle reply and forward button click\n            $('.inbox').on('click', '.reply-btn', function () {\n                loadReply($(this));\n            });\n\n            // handle view message\n            $('.inbox').on('click', '.view-message', function () {\n                loadMessage($(this));\n            });\n\n            // handle inbox listing\n            $('.inbox-nav > li > a').click(function () {\n                loadInbox($(this), 'inbox');\n            });\n\n            //handle compose/reply cc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-cc', function () {\n                handleCCInput();\n            });\n\n            //handle compose/reply bcc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-bcc', function () {\n                handleBCCInput();\n            });\n\n            //handle loading content based on URL parameter\n            if (App.getURLParameter(\"a\") === \"view\") {\n                loadMessage();\n            } else if (App.getURLParameter(\"a\") === \"compose\") {\n                loadCompose();\n            } else {\n               $('.inbox-nav > li:first > a').click();\n            }\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppInbox.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/scripts/todo-2.js",
    "content": "/**\nTodo 2 Module\n**/\nvar AppTodo2 = function () {\n\n    // private functions & variables\n\n    var _initComponents = function() {\n        \n        // init datepicker\n        $('.todo-taskbody-due').datepicker({\n            rtl: App.isRTL(),\n            orientation: \"left\",\n            autoclose: true\n        });\n\n        // init tags        \n        $(\".todo-taskbody-tags\").select2({\n            placeholder: 'Status'\n        });\n    }\n\n    var _handleProjectListMenu = function() {\n        if (App.getViewPort().width <= 992) {\n            $('.todo-project-list-content').addClass(\"collapse\");\n        } else {\n            $('.todo-project-list-content').removeClass(\"collapse\").css(\"height\", \"auto\");\n        }\n    }\n\n    // public functions\n    return {\n\n        //main function\n        init: function () {\n            _initComponents();     \n            _handleProjectListMenu();\n\n            App.addResizeHandler(function(){\n                _handleProjectListMenu();    \n            });       \n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {\n        AppTodo2.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/apps/scripts/todo.js",
    "content": "/**\nTodo Module\n**/\nvar AppTodo = function () {\n\n    // private functions & variables\n\n    var _initComponents = function() {\n        \n        // init datepicker\n        $('.todo-taskbody-due').datepicker({\n            rtl: App.isRTL(),\n            orientation: \"left\",\n            autoclose: true\n        });\n\n        // init tags        \n        $(\".todo-taskbody-tags\").select2({\n            tags: [\"Testing\", \"Important\", \"Info\", \"Pending\", \"Completed\", \"Requested\", \"Approved\"]\n        });\n    }\n\n    var _handleProjectListMenu = function() {\n        if (App.getViewPort().width <= 992) {\n            $('.todo-project-list-content').addClass(\"collapse\");\n        } else {\n            $('.todo-project-list-content').removeClass(\"collapse\").css(\"height\", \"auto\");\n        }\n    }\n\n    // public functions\n    return {\n\n        //main function\n        init: function () {\n            _initComponents();     \n            _handleProjectListMenu();\n\n            App.addResizeHandler(function(){\n                _handleProjectListMenu();    \n            });       \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTodo.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/citys/css/main.css",
    "content": "body{\n\tbackground: #494A5F;\n\tcolor: #D5D6E2;\n\tfont-weight: 500;\n\tfont-size: 1.05em;\n\tfont-family: \"Microsoft YaHei\",\"宋体\",\"Segoe UI\", \"Lucida Grande\", Helvetica, Arial,sans-serif, FreeSans, Arimo;\n}\na{color: #2fa0ec;outline: none;text-decoration: none;}\na:hover,a:focus{color:#74777b;text-decoration: none;}\n\n.htmleaf-container{\n\tmargin: 0 auto;\n}\n\n/* Basic */\n\nbody {\n  margin: 0;\n  overflow-x: hidden;\n}\n\n.browserupgrade {\n  margin: 0;\n  padding: .5em 1em;\n  background-color: #fcfcfc;\n  text-align: center;\n}\n\n\n/* Header */\n\n.docs-header {\n  margin-bottom: 0;\n}\n\n.navbar-toggle:hover,\n.navbar-toggle:focus {\n  border-color: #0074d9;\n}\n\n.navbar-toggle .icon-bar {\n  background-color: #0074d9;\n}\n\n\n/* Jumbotron */\n\n.docs-jumbotron {\n  background-color: #0074d9;\n  color: #fff;\n}\n\n.docs-jumbotron .version {\n  font-size: 14px;\n  color: #fff;\n  filter: alpha(opacity=50);\n  opacity: 0.5;\n}\n\n@media (min-width: 992px) {\n  .docs-jumbotron h1,\n  .docs-jumbotron p {\n    margin-right: 380px;\n  }\n}\n\n.docs-carbonads-container {\n  position: relative;\n}\n\n.docs-carbonads {\n  max-width: 350px;\n  padding: 15px;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  overflow: hidden;\n}\n\n.carbon-wrap {\n  overflow: hidden;\n}\n\n.carbon-img {\n  clear: left;\n  float: left;\n  display: block;\n}\n\n.carbon-text,\n.carbon-poweredby {\n  display: block;\n  margin-left: 140px;\n}\n\n.carbon-text,\n.carbon-text:hover,\n.carbon-text:focus {\n  color: #fff;\n  text-decoration: none;\n}\n\n.carbon-poweredby,\n.carbon-poweredby:hover,\n.carbon-poweredby:focus {\n  color: #ddd;\n  text-decoration: none;\n}\n\n@media (min-width: 992px) {\n  .docs-carbonads {\n    position: absolute;\n    right: 0;\n    bottom: 5px;\n  }\n}\n\n\n/* Content */\n\n\n/* Footer */\n\n.docs-footer {\n  overflow: hidden;\n}\n\n.links {\n  text-align: center;\n  margin-bottom: 30px;\n}\n\n.heart {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 30px;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  color: #ddd;\n  font-size: 18px;\n  line-height: 30px;\n  text-align: center;\n}\n\n.heart:hover {\n  color: #ff4136;\n}\n\n.heart:before {\n  position: absolute;\n  top: 50%;\n  right: 0;\n  left: 0;\n  display: block;\n  height: 0;\n  border-top: 1px solid #eee;\n  content: \" \";\n}\n\n.heart:after {\n  position: relative;\n  z-index: 1;\n  padding-left: 8px;\n  padding-right: 8px;\n  background-color: #fff;\n  content: \"♥\";\n}\n\n\n/* Google Code Prettify */\n\n.prettyprint {\n  margin-bottom: 0;\n  padding: 15px !important;\n  border: 1px solid #ddd !important;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/citys/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n<head>\n<meta charset=\"UTF-8\">\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"> \n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Bootstrap省市区三级联动菜单 - 源码之家</title>\n\n<link href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css\" rel=\"stylesheet\">\n<link href=\"css/main.css\" rel=\"stylesheet\">\n\n</head>\n<body>\n\t<div class=\"container\">\n\t\t<h3>Basic</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province1\">Province</label>\n\t  <select class=\"form-control\" id=\"province1\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city1\">City</label>\n\t  <select class=\"form-control\" id=\"city1\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district1\">District</label>\n\t  <select class=\"form-control\" id=\"district1\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom placeholders</h3>\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select data-province=&quot;---- 选择省 ----&quot;&gt;&lt;/select&gt;\n&lt;select data-city=&quot;---- 选择市 ----&quot;&gt;&lt;/select&gt;\n&lt;select data-district=&quot;---- 选择区 ----&quot;&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province2\">Province</label>\n\t  <select class=\"form-control\" id=\"province2\" data-province=\"---- 选择省 ----\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city2\">City</label>\n\t  <select class=\"form-control\" id=\"city2\" data-city=\"---- 选择市 ----\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district2\">District</label>\n\t  <select class=\"form-control\" id=\"district2\" data-district=\"---- 选择区 ----\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom districts</h3>\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select data-province=&quot;浙江省&quot;&gt;&lt;/select&gt;\n&lt;select data-city=&quot;杭州市&quot;&gt;&lt;/select&gt;\n&lt;select data-district=&quot;西湖区&quot;&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province3\">Province</label>\n\t  <select class=\"form-control\" id=\"province3\" data-province=\"浙江省\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city3\">City</label>\n\t  <select class=\"form-control\" id=\"city3\" data-city=\"杭州市\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district3\">District</label>\n\t  <select class=\"form-control\" id=\"district3\" data-district=\"西湖区\"></select>\n\t</div>\n  </div>\n</form>\n<br>\n<p class=\"alert alert-warning\"><i class=\"glyphicon glyphicon-exclamation-sign\"></i> The districts must be existed in the <strong class=\"text-primary\">distpicker.data.js</strong> file!</p>\n\n<h2 class=\"page-header\">Initialize with <code>$.fn.distpicker</code> method</h2>\n\n<h3>Basic</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div id=\"distpicker1\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker1&quot;).distpicker();</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker1\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province4\">Province</label>\n\t  <select class=\"form-control\" id=\"province4\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city4\">City</label>\n\t  <select class=\"form-control\" id=\"city4\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district4\">District</label>\n\t  <select class=\"form-control\" id=\"district4\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom placeholders</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div id=\"distpicker2\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker2&quot;).distpicker({\nprovince: &quot;---- 所在省 ----&quot;,\ncity: &quot;---- 所在市 ----&quot;,\ndistrict: &quot;---- 所在区 ----&quot;\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker2\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province5\">Province</label>\n\t  <select class=\"form-control\" id=\"province5\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city5\">City</label>\n\t  <select class=\"form-control\" id=\"city5\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district5\">District</label>\n\t  <select class=\"form-control\" id=\"district5\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3>Custom districts</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div id=\"distpicker3\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker3&quot;).distpicker({\nprovince: &quot;浙江省&quot;,\ncity: &quot;杭州市&quot;,\ndistrict: &quot;西湖区&quot;\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker3\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province6\">Province</label>\n\t  <select class=\"form-control\" id=\"province6\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city6\">City</label>\n\t  <select class=\"form-control\" id=\"city6\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district6\">District</label>\n\t  <select class=\"form-control\" id=\"district6\"></select>\n\t</div>\n  </div>\n</form>\n<br>\n<p class=\"alert alert-warning\"><i class=\"glyphicon glyphicon-exclamation-sign\"></i> The districts must be existed in the <strong class=\"text-primary\">distpicker.data.js</strong> file!</p>\n\n<h2 class=\"page-header\">Methods</h2>\n<div class=\"docs-methods\">\n  <form class=\"form-inline\">\n\t<div id=\"distpicker\">\n\t  <div class=\"form-group\">\n\t\t<label class=\"sr-only\" for=\"province\">Province</label>\n\t\t<select class=\"form-control\" id=\"province\"></select>\n\t  </div>\n\t  <div class=\"form-group\">\n\t\t<label class=\"sr-only\" for=\"city\">City</label>\n\t\t<select class=\"form-control\" id=\"city\"></select>\n\t  </div>\n\t  <div class=\"form-group\">\n\t\t<label class=\"sr-only\" for=\"district\">District</label>\n\t\t<select class=\"form-control\" id=\"district\"></select>\n\t  </div>\n\t  <div class=\"form-group\">\n\t\t<button class=\"btn btn-primary\" id=\"reset\" type=\"button\">Reset</button>\n\t\t<button class=\"btn btn-warning\" id=\"reset-deep\" type=\"button\">Reset (deep)</button>\n\t\t<button class=\"btn btn-danger\" id=\"destroy\" type=\"button\">Destroy</button>\n\t  </div>\n\t</div>\n  </form>\n</div>\n\n<h2 class=\"page-header\">More examples</h2>\n\n<h3 class=\"page-header\">Only province and city</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province7\">Province</label>\n\t  <select class=\"form-control\" id=\"province7\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city7\">City</label>\n\t  <select class=\"form-control\" id=\"city7\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3 class=\"page-header\">Only province</h3>\n\n<h5>HTML:</h5>\n<pre class=\"prettyprint\">&lt;div data-toggle=\"distpicker\"&gt;\n&lt;select&gt;&lt;/select&gt;\n&lt;/div&gt;</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div data-toggle=\"distpicker\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province8\">Province</label>\n\t  <select class=\"form-control\" id=\"province8\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3 class=\"page-header\">Without placeholders</h3>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker4&quot;).distpicker({\nplaceholder: false\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker4\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province9\">Province</label>\n\t  <select class=\"form-control\" id=\"province9\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city9\">City</label>\n\t  <select class=\"form-control\" id=\"city9\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district9\">District</label>\n\t  <select class=\"form-control\" id=\"district9\"></select>\n\t</div>\n  </div>\n</form>\n\n<h3 class=\"page-header\">Without automatic selection</h3>\n\n<h5>JavaScript:</h5>\n<pre class=\"prettyprint\">$(&quot;#distpicker5&quot;).distpicker({\nautoSelect: false\n});</pre>\n\n<h5>Demo:</h5>\n<form class=\"form-inline\">\n  <div id=\"distpicker5\">\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"province10\">Province</label>\n\t  <select class=\"form-control\" id=\"province10\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"city10\">City</label>\n\t  <select class=\"form-control\" id=\"city10\"></select>\n\t</div>\n\t<div class=\"form-group\">\n\t  <label class=\"sr-only\" for=\"district10\">District</label>\n\t  <select class=\"form-control\" id=\"district10\"></select>\n\t</div>\n  </div>\n</form>\n</div>\n\n<script src=\"js/jquery-1.11.0.min.js\" type=\"text/javascript\"></script>\n<script src=\"js/bootstrap.min.js\"></script>\n<script src=\"js/distpicker.data.js\"></script>\n<script src=\"js/distpicker.js\"></script>\n<script src=\"js/main.js\"></script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/citys/js/distpicker.data.js",
    "content": "/*!\n * Distpicker v1.0.4\n * https://github.com/fengyuanchen/distpicker\n *\n * Copyright (c) 2014-2016 Fengyuan Chen\n * Released under the MIT license\n *\n * Date: 2016-06-01T15:05:52.606Z\n */\n\n(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as anonymous module.\n    define('ChineseDistricts', [], factory);\n  } else {\n    // Browser globals.\n    factory();\n  }\n})(function () {\n\n  var ChineseDistricts = {\n    86: {\n      110000: '北京市',\n      120000: '天津市',\n      130000: '河北省',\n      140000: '山西省',\n      150000: '内蒙古自治区',\n      210000: '辽宁省',\n      220000: '吉林省',\n      230000: '黑龙江省',\n      310000: '上海市',\n      320000: '江苏省',\n      330000: '浙江省',\n      340000: '安徽省',\n      350000: '福建省',\n      360000: '江西省',\n      370000: '山东省',\n      410000: '河南省',\n      420000: '湖北省',\n      430000: '湖南省',\n      440000: '广东省',\n      450000: '广西壮族自治区',\n      460000: '海南省',\n      500000: '重庆市',\n      510000: '四川省',\n      520000: '贵州省',\n      530000: '云南省',\n      540000: '西藏自治区',\n      610000: '陕西省',\n      620000: '甘肃省',\n      630000: '青海省',\n      640000: '宁夏回族自治区',\n      650000: '新疆维吾尔自治区',\n      710000: '台湾省',\n      810000: '香港特别行政区',\n      820000: '澳门特别行政区'\n    },\n    110000: {\n      110100: '北京市市辖区'\n    },\n    110100: {\n      110101: '东城区',\n      110102: '西城区',\n      110105: '朝阳区',\n      110106: '丰台区',\n      110107: '石景山区',\n      110108: '海淀区',\n      110109: '门头沟区',\n      110111: '房山区',\n      110112: '通州区',\n      110113: '顺义区',\n      110114: '昌平区',\n      110115: '大兴区',\n      110116: '怀柔区',\n      110117: '平谷区',\n      110118: '密云区',\n      110119: '延庆区'\n    },\n    120000: {\n      120100: '天津市市辖区',\n      120200: '天津市郊县'\n    },\n    120100: {\n      120101: '和平区',\n      120102: '河东区',\n      120103: '河西区',\n      120104: '南开区',\n      120105: '河北区',\n      120106: '红桥区',\n      120110: '东丽区',\n      120111: '西青区',\n      120112: '津南区',\n      120113: '北辰区',\n      120114: '武清区',\n      120115: '宝坻区',\n      120116: '滨海新区',\n      120117: '宁河区',\n      120118: '静海区',\n      120225: '蓟县'\n    },\n    130000: {\n      130100: '石家庄市',\n      130200: '唐山市',\n      130300: '秦皇岛市',\n      130400: '邯郸市',\n      130500: '邢台市',\n      130600: '保定市',\n      130700: '张家口市',\n      130800: '承德市',\n      130900: '沧州市',\n      131000: '廊坊市',\n      131100: '衡水市'\n    },\n    130100: {\n      130102: '长安区',\n      130104: '桥西区',\n      130105: '新华区',\n      130107: '井陉矿区',\n      130108: '裕华区',\n      130109: '藁城区',\n      130110: '鹿泉区',\n      130111: '栾城区',\n      130121: '井陉县',\n      130123: '正定县',\n      130125: '行唐县',\n      130126: '灵寿县',\n      130127: '高邑县',\n      130128: '深泽县',\n      130129: '赞皇县',\n      130130: '无极县',\n      130131: '平山县',\n      130132: '元氏县',\n      130133: '赵县',\n      130181: '辛集市',\n      130183: '晋州市',\n      130184: '新乐市'\n    },\n    130200: {\n      130202: '路南区',\n      130203: '路北区',\n      130204: '古冶区',\n      130205: '开平区',\n      130207: '丰南区',\n      130208: '丰润区',\n      130209: '曹妃甸区',\n      130223: '滦县',\n      130224: '滦南县',\n      130225: '乐亭县',\n      130227: '迁西县',\n      130229: '玉田县',\n      130281: '遵化市',\n      130283: '迁安市'\n    },\n    130300: {\n      130302: '海港区',\n      130303: '山海关区',\n      130304: '北戴河区',\n      130306: '抚宁区',\n      130321: '青龙满族自治县',\n      130322: '昌黎县',\n      130324: '卢龙县'\n    },\n    130400: {\n      130402: '邯山区',\n      130403: '丛台区',\n      130404: '复兴区',\n      130406: '峰峰矿区',\n      130421: '邯郸县',\n      130423: '临漳县',\n      130424: '成安县',\n      130425: '大名县',\n      130426: '涉县',\n      130427: '磁县',\n      130428: '肥乡县',\n      130429: '永年县',\n      130430: '邱县',\n      130431: '鸡泽县',\n      130432: '广平县',\n      130433: '馆陶县',\n      130434: '魏县',\n      130435: '曲周县',\n      130481: '武安市'\n    },\n    130500: {\n      130502: '桥东区',\n      130503: '桥西区',\n      130521: '邢台县',\n      130522: '临城县',\n      130523: '内丘县',\n      130524: '柏乡县',\n      130525: '隆尧县',\n      130526: '任县',\n      130527: '南和县',\n      130528: '宁晋县',\n      130529: '巨鹿县',\n      130530: '新河县',\n      130531: '广宗县',\n      130532: '平乡县',\n      130533: '威县',\n      130534: '清河县',\n      130535: '临西县',\n      130581: '南宫市',\n      130582: '沙河市'\n    },\n    130600: {\n      130602: '竞秀区',\n      130606: '莲池区',\n      130607: '满城区',\n      130608: '清苑区',\n      130609: '徐水区',\n      130623: '涞水县',\n      130624: '阜平县',\n      130626: '定兴县',\n      130627: '唐县',\n      130628: '高阳县',\n      130629: '容城县',\n      130630: '涞源县',\n      130631: '望都县',\n      130632: '安新县',\n      130633: '易县',\n      130634: '曲阳县',\n      130635: '蠡县',\n      130636: '顺平县',\n      130637: '博野县',\n      130638: '雄县',\n      130681: '涿州市',\n      130682: '定州市',\n      130683: '安国市',\n      130684: '高碑店市'\n    },\n    130700: {\n      130702: '桥东区',\n      130703: '桥西区',\n      130705: '宣化区',\n      130706: '下花园区',\n      130721: '宣化县',\n      130722: '张北县',\n      130723: '康保县',\n      130724: '沽源县',\n      130725: '尚义县',\n      130726: '蔚县',\n      130727: '阳原县',\n      130728: '怀安县',\n      130729: '万全县',\n      130730: '怀来县',\n      130731: '涿鹿县',\n      130732: '赤城县',\n      130733: '崇礼县'\n    },\n    130800: {\n      130802: '双桥区',\n      130803: '双滦区',\n      130804: '鹰手营子矿区',\n      130821: '承德县',\n      130822: '兴隆县',\n      130823: '平泉县',\n      130824: '滦平县',\n      130825: '隆化县',\n      130826: '丰宁满族自治县',\n      130827: '宽城满族自治县',\n      130828: '围场满族蒙古族自治县'\n    },\n    130900: {\n      130902: '新华区',\n      130903: '运河区',\n      130921: '沧县',\n      130922: '青县',\n      130923: '东光县',\n      130924: '海兴县',\n      130925: '盐山县',\n      130926: '肃宁县',\n      130927: '南皮县',\n      130928: '吴桥县',\n      130929: '献县',\n      130930: '孟村回族自治县',\n      130981: '泊头市',\n      130982: '任丘市',\n      130983: '黄骅市',\n      130984: '河间市'\n    },\n    131000: {\n      131002: '安次区',\n      131003: '广阳区',\n      131022: '固安县',\n      131023: '永清县',\n      131024: '香河县',\n      131025: '大城县',\n      131026: '文安县',\n      131028: '大厂回族自治县',\n      131081: '霸州市',\n      131082: '三河市'\n    },\n    131100: {\n      131102: '桃城区',\n      131121: '枣强县',\n      131122: '武邑县',\n      131123: '武强县',\n      131124: '饶阳县',\n      131125: '安平县',\n      131126: '故城县',\n      131127: '景县',\n      131128: '阜城县',\n      131181: '冀州市',\n      131182: '深州市'\n    },\n    140000: {\n      140100: '太原市',\n      140200: '大同市',\n      140300: '阳泉市',\n      140400: '长治市',\n      140500: '晋城市',\n      140600: '朔州市',\n      140700: '晋中市',\n      140800: '运城市',\n      140900: '忻州市',\n      141000: '临汾市',\n      141100: '吕梁市'\n    },\n    140100: {\n      140105: '小店区',\n      140106: '迎泽区',\n      140107: '杏花岭区',\n      140108: '尖草坪区',\n      140109: '万柏林区',\n      140110: '晋源区',\n      140121: '清徐县',\n      140122: '阳曲县',\n      140123: '娄烦县',\n      140181: '古交市'\n    },\n    140200: {\n      140202: '城区',\n      140203: '矿区',\n      140211: '南郊区',\n      140212: '新荣区',\n      140221: '阳高县',\n      140222: '天镇县',\n      140223: '广灵县',\n      140224: '灵丘县',\n      140225: '浑源县',\n      140226: '左云县',\n      140227: '大同县'\n    },\n    140300: {\n      140302: '城区',\n      140303: '矿区',\n      140311: '郊区',\n      140321: '平定县',\n      140322: '盂县'\n    },\n    140400: {\n      140402: '城区',\n      140411: '郊区',\n      140421: '长治县',\n      140423: '襄垣县',\n      140424: '屯留县',\n      140425: '平顺县',\n      140426: '黎城县',\n      140427: '壶关县',\n      140428: '长子县',\n      140429: '武乡县',\n      140430: '沁县',\n      140431: '沁源县',\n      140481: '潞城市'\n    },\n    140500: {\n      140502: '城区',\n      140521: '沁水县',\n      140522: '阳城县',\n      140524: '陵川县',\n      140525: '泽州县',\n      140581: '高平市'\n    },\n    140600: {\n      140602: '朔城区',\n      140603: '平鲁区',\n      140621: '山阴县',\n      140622: '应县',\n      140623: '右玉县',\n      140624: '怀仁县'\n    },\n    140700: {\n      140702: '榆次区',\n      140721: '榆社县',\n      140722: '左权县',\n      140723: '和顺县',\n      140724: '昔阳县',\n      140725: '寿阳县',\n      140726: '太谷县',\n      140727: '祁县',\n      140728: '平遥县',\n      140729: '灵石县',\n      140781: '介休市'\n    },\n    140800: {\n      140802: '盐湖区',\n      140821: '临猗县',\n      140822: '万荣县',\n      140823: '闻喜县',\n      140824: '稷山县',\n      140825: '新绛县',\n      140826: '绛县',\n      140827: '垣曲县',\n      140828: '夏县',\n      140829: '平陆县',\n      140830: '芮城县',\n      140881: '永济市',\n      140882: '河津市'\n    },\n    140900: {\n      140902: '忻府区',\n      140921: '定襄县',\n      140922: '五台县',\n      140923: '代县',\n      140924: '繁峙县',\n      140925: '宁武县',\n      140926: '静乐县',\n      140927: '神池县',\n      140928: '五寨县',\n      140929: '岢岚县',\n      140930: '河曲县',\n      140931: '保德县',\n      140932: '偏关县',\n      140981: '原平市'\n    },\n    141000: {\n      141002: '尧都区',\n      141021: '曲沃县',\n      141022: '翼城县',\n      141023: '襄汾县',\n      141024: '洪洞县',\n      141025: '古县',\n      141026: '安泽县',\n      141027: '浮山县',\n      141028: '吉县',\n      141029: '乡宁县',\n      141030: '大宁县',\n      141031: '隰县',\n      141032: '永和县',\n      141033: '蒲县',\n      141034: '汾西县',\n      141081: '侯马市',\n      141082: '霍州市'\n    },\n    141100: {\n      141102: '离石区',\n      141121: '文水县',\n      141122: '交城县',\n      141123: '兴县',\n      141124: '临县',\n      141125: '柳林县',\n      141126: '石楼县',\n      141127: '岚县',\n      141128: '方山县',\n      141129: '中阳县',\n      141130: '交口县',\n      141181: '孝义市',\n      141182: '汾阳市'\n    },\n    150000: {\n      150100: '呼和浩特市',\n      150200: '包头市',\n      150300: '乌海市',\n      150400: '赤峰市',\n      150500: '通辽市',\n      150600: '鄂尔多斯市',\n      150700: '呼伦贝尔市',\n      150800: '巴彦淖尔市',\n      150900: '乌兰察布市',\n      152200: '兴安盟',\n      152500: '锡林郭勒盟',\n      152900: '阿拉善盟'\n    },\n    150100: {\n      150102: '新城区',\n      150103: '回民区',\n      150104: '玉泉区',\n      150105: '赛罕区',\n      150121: '土默特左旗',\n      150122: '托克托县',\n      150123: '和林格尔县',\n      150124: '清水河县',\n      150125: '武川县'\n    },\n    150200: {\n      150202: '东河区',\n      150203: '昆都仑区',\n      150204: '青山区',\n      150205: '石拐区',\n      150206: '白云鄂博矿区',\n      150207: '九原区',\n      150221: '土默特右旗',\n      150222: '固阳县',\n      150223: '达尔罕茂明安联合旗'\n    },\n    150300: {\n      150302: '海勃湾区',\n      150303: '海南区',\n      150304: '乌达区'\n    },\n    150400: {\n      150402: '红山区',\n      150403: '元宝山区',\n      150404: '松山区',\n      150421: '阿鲁科尔沁旗',\n      150422: '巴林左旗',\n      150423: '巴林右旗',\n      150424: '林西县',\n      150425: '克什克腾旗',\n      150426: '翁牛特旗',\n      150428: '喀喇沁旗',\n      150429: '宁城县',\n      150430: '敖汉旗'\n    },\n    150500: {\n      150502: '科尔沁区',\n      150521: '科尔沁左翼中旗',\n      150522: '科尔沁左翼后旗',\n      150523: '开鲁县',\n      150524: '库伦旗',\n      150525: '奈曼旗',\n      150526: '扎鲁特旗',\n      150581: '霍林郭勒市'\n    },\n    150600: {\n      150602: '东胜区',\n      150621: '达拉特旗',\n      150622: '准格尔旗',\n      150623: '鄂托克前旗',\n      150624: '鄂托克旗',\n      150625: '杭锦旗',\n      150626: '乌审旗',\n      150627: '伊金霍洛旗'\n    },\n    150700: {\n      150702: '海拉尔区',\n      150703: '扎赉诺尔区',\n      150721: '阿荣旗',\n      150722: '莫力达瓦达斡尔族自治旗',\n      150723: '鄂伦春自治旗',\n      150724: '鄂温克族自治旗',\n      150725: '陈巴尔虎旗',\n      150726: '新巴尔虎左旗',\n      150727: '新巴尔虎右旗',\n      150781: '满洲里市',\n      150782: '牙克石市',\n      150783: '扎兰屯市',\n      150784: '额尔古纳市',\n      150785: '根河市'\n    },\n    150800: {\n      150802: '临河区',\n      150821: '五原县',\n      150822: '磴口县',\n      150823: '乌拉特前旗',\n      150824: '乌拉特中旗',\n      150825: '乌拉特后旗',\n      150826: '杭锦后旗'\n    },\n    150900: {\n      150902: '集宁区',\n      150921: '卓资县',\n      150922: '化德县',\n      150923: '商都县',\n      150924: '兴和县',\n      150925: '凉城县',\n      150926: '察哈尔右翼前旗',\n      150927: '察哈尔右翼中旗',\n      150928: '察哈尔右翼后旗',\n      150929: '四子王旗',\n      150981: '丰镇市'\n    },\n    152200: {\n      152201: '乌兰浩特市',\n      152202: '阿尔山市',\n      152221: '科尔沁右翼前旗',\n      152222: '科尔沁右翼中旗',\n      152223: '扎赉特旗',\n      152224: '突泉县'\n    },\n    152500: {\n      152501: '二连浩特市',\n      152502: '锡林浩特市',\n      152522: '阿巴嘎旗',\n      152523: '苏尼特左旗',\n      152524: '苏尼特右旗',\n      152525: '东乌珠穆沁旗',\n      152526: '西乌珠穆沁旗',\n      152527: '太仆寺旗',\n      152528: '镶黄旗',\n      152529: '正镶白旗',\n      152530: '正蓝旗',\n      152531: '多伦县'\n    },\n    152900: {\n      152921: '阿拉善左旗',\n      152922: '阿拉善右旗',\n      152923: '额济纳旗'\n    },\n    210000: {\n      210100: '沈阳市',\n      210200: '大连市',\n      210300: '鞍山市',\n      210400: '抚顺市',\n      210500: '本溪市',\n      210600: '丹东市',\n      210700: '锦州市',\n      210800: '营口市',\n      210900: '阜新市',\n      211000: '辽阳市',\n      211100: '盘锦市',\n      211200: '铁岭市',\n      211300: '朝阳市',\n      211400: '葫芦岛市'\n    },\n    210100: {\n      210102: '和平区',\n      210103: '沈河区',\n      210104: '大东区',\n      210105: '皇姑区',\n      210106: '铁西区',\n      210111: '苏家屯区',\n      210112: '浑南区',\n      210113: '沈北新区',\n      210114: '于洪区',\n      210122: '辽中县',\n      210123: '康平县',\n      210124: '法库县',\n      210181: '新民市'\n    },\n    210200: {\n      210202: '中山区',\n      210203: '西岗区',\n      210204: '沙河口区',\n      210211: '甘井子区',\n      210212: '旅顺口区',\n      210213: '金州区',\n      210214: '普兰店区',\n      210224: '长海县',\n      210281: '瓦房店市',\n      210283: '庄河市'\n    },\n    210300: {\n      210302: '铁东区',\n      210303: '铁西区',\n      210304: '立山区',\n      210311: '千山区',\n      210321: '台安县',\n      210323: '岫岩满族自治县',\n      210381: '海城市'\n    },\n    210400: {\n      210402: '新抚区',\n      210403: '东洲区',\n      210404: '望花区',\n      210411: '顺城区',\n      210421: '抚顺县',\n      210422: '新宾满族自治县',\n      210423: '清原满族自治县'\n    },\n    210500: {\n      210502: '平山区',\n      210503: '溪湖区',\n      210504: '明山区',\n      210505: '南芬区',\n      210521: '本溪满族自治县',\n      210522: '桓仁满族自治县'\n    },\n    210600: {\n      210602: '元宝区',\n      210603: '振兴区',\n      210604: '振安区',\n      210624: '宽甸满族自治县',\n      210681: '东港市',\n      210682: '凤城市'\n    },\n    210700: {\n      210702: '古塔区',\n      210703: '凌河区',\n      210711: '太和区',\n      210726: '黑山县',\n      210727: '义县',\n      210781: '凌海市',\n      210782: '北镇市'\n    },\n    210800: {\n      210802: '站前区',\n      210803: '西市区',\n      210804: '鲅鱼圈区',\n      210811: '老边区',\n      210881: '盖州市',\n      210882: '大石桥市'\n    },\n    210900: {\n      210902: '海州区',\n      210903: '新邱区',\n      210904: '太平区',\n      210905: '清河门区',\n      210911: '细河区',\n      210921: '阜新蒙古族自治县',\n      210922: '彰武县'\n    },\n    211000: {\n      211002: '白塔区',\n      211003: '文圣区',\n      211004: '宏伟区',\n      211005: '弓长岭区',\n      211011: '太子河区',\n      211021: '辽阳县',\n      211081: '灯塔市'\n    },\n    211100: {\n      211102: '双台子区',\n      211103: '兴隆台区',\n      211121: '大洼县',\n      211122: '盘山县'\n    },\n    211200: {\n      211202: '银州区',\n      211204: '清河区',\n      211221: '铁岭县',\n      211223: '西丰县',\n      211224: '昌图县',\n      211281: '调兵山市',\n      211282: '开原市'\n    },\n    211300: {\n      211302: '双塔区',\n      211303: '龙城区',\n      211321: '朝阳县',\n      211322: '建平县',\n      211324: '喀喇沁左翼蒙古族自治县',\n      211381: '北票市',\n      211382: '凌源市'\n    },\n    211400: {\n      211402: '连山区',\n      211403: '龙港区',\n      211404: '南票区',\n      211421: '绥中县',\n      211422: '建昌县',\n      211481: '兴城市'\n    },\n    220000: {\n      220100: '长春市',\n      220200: '吉林市',\n      220300: '四平市',\n      220400: '辽源市',\n      220500: '通化市',\n      220600: '白山市',\n      220700: '松原市',\n      220800: '白城市',\n      222400: '延边朝鲜族自治州'\n    },\n    220100: {\n      220102: '南关区',\n      220103: '宽城区',\n      220104: '朝阳区',\n      220105: '二道区',\n      220106: '绿园区',\n      220112: '双阳区',\n      220113: '九台区',\n      220122: '农安县',\n      220182: '榆树市',\n      220183: '德惠市'\n    },\n    220200: {\n      220202: '昌邑区',\n      220203: '龙潭区',\n      220204: '船营区',\n      220211: '丰满区',\n      220221: '永吉县',\n      220281: '蛟河市',\n      220282: '桦甸市',\n      220283: '舒兰市',\n      220284: '磐石市'\n    },\n    220300: {\n      220302: '铁西区',\n      220303: '铁东区',\n      220322: '梨树县',\n      220323: '伊通满族自治县',\n      220381: '公主岭市',\n      220382: '双辽市'\n    },\n    220400: {\n      220402: '龙山区',\n      220403: '西安区',\n      220421: '东丰县',\n      220422: '东辽县'\n    },\n    220500: {\n      220502: '东昌区',\n      220503: '二道江区',\n      220521: '通化县',\n      220523: '辉南县',\n      220524: '柳河县',\n      220581: '梅河口市',\n      220582: '集安市'\n    },\n    220600: {\n      220602: '浑江区',\n      220605: '江源区',\n      220621: '抚松县',\n      220622: '靖宇县',\n      220623: '长白朝鲜族自治县',\n      220681: '临江市'\n    },\n    220700: {\n      220702: '宁江区',\n      220721: '前郭尔罗斯蒙古族自治县',\n      220722: '长岭县',\n      220723: '乾安县',\n      220781: '扶余市'\n    },\n    220800: {\n      220802: '洮北区',\n      220821: '镇赉县',\n      220822: '通榆县',\n      220881: '洮南市',\n      220882: '大安市'\n    },\n    222400: {\n      222401: '延吉市',\n      222402: '图们市',\n      222403: '敦化市',\n      222404: '珲春市',\n      222405: '龙井市',\n      222406: '和龙市',\n      222424: '汪清县',\n      222426: '安图县'\n    },\n    230000: {\n      230100: '哈尔滨市',\n      230200: '齐齐哈尔市',\n      230300: '鸡西市',\n      230400: '鹤岗市',\n      230500: '双鸭山市',\n      230600: '大庆市',\n      230700: '伊春市',\n      230800: '佳木斯市',\n      230900: '七台河市',\n      231000: '牡丹江市',\n      231100: '黑河市',\n      231200: '绥化市',\n      232700: '大兴安岭地区'\n    },\n    230100: {\n      230102: '道里区',\n      230103: '南岗区',\n      230104: '道外区',\n      230108: '平房区',\n      230109: '松北区',\n      230110: '香坊区',\n      230111: '呼兰区',\n      230112: '阿城区',\n      230113: '双城区',\n      230123: '依兰县',\n      230124: '方正县',\n      230125: '宾县',\n      230126: '巴彦县',\n      230127: '木兰县',\n      230128: '通河县',\n      230129: '延寿县',\n      230183: '尚志市',\n      230184: '五常市'\n    },\n    230200: {\n      230202: '龙沙区',\n      230203: '建华区',\n      230204: '铁锋区',\n      230205: '昂昂溪区',\n      230206: '富拉尔基区',\n      230207: '碾子山区',\n      230208: '梅里斯达斡尔族区',\n      230221: '龙江县',\n      230223: '依安县',\n      230224: '泰来县',\n      230225: '甘南县',\n      230227: '富裕县',\n      230229: '克山县',\n      230230: '克东县',\n      230231: '拜泉县',\n      230281: '讷河市'\n    },\n    230300: {\n      230302: '鸡冠区',\n      230303: '恒山区',\n      230304: '滴道区',\n      230305: '梨树区',\n      230306: '城子河区',\n      230307: '麻山区',\n      230321: '鸡东县',\n      230381: '虎林市',\n      230382: '密山市'\n    },\n    230400: {\n      230402: '向阳区',\n      230403: '工农区',\n      230404: '南山区',\n      230405: '兴安区',\n      230406: '东山区',\n      230407: '兴山区',\n      230421: '萝北县',\n      230422: '绥滨县'\n    },\n    230500: {\n      230502: '尖山区',\n      230503: '岭东区',\n      230505: '四方台区',\n      230506: '宝山区',\n      230521: '集贤县',\n      230522: '友谊县',\n      230523: '宝清县',\n      230524: '饶河县'\n    },\n    230600: {\n      230602: '萨尔图区',\n      230603: '龙凤区',\n      230604: '让胡路区',\n      230605: '红岗区',\n      230606: '大同区',\n      230621: '肇州县',\n      230622: '肇源县',\n      230623: '林甸县',\n      230624: '杜尔伯特蒙古族自治县'\n    },\n    230700: {\n      230702: '伊春区',\n      230703: '南岔区',\n      230704: '友好区',\n      230705: '西林区',\n      230706: '翠峦区',\n      230707: '新青区',\n      230708: '美溪区',\n      230709: '金山屯区',\n      230710: '五营区',\n      230711: '乌马河区',\n      230712: '汤旺河区',\n      230713: '带岭区',\n      230714: '乌伊岭区',\n      230715: '红星区',\n      230716: '上甘岭区',\n      230722: '嘉荫县',\n      230781: '铁力市'\n    },\n    230800: {\n      230803: '向阳区',\n      230804: '前进区',\n      230805: '东风区',\n      230811: '郊区',\n      230822: '桦南县',\n      230826: '桦川县',\n      230828: '汤原县',\n      230833: '抚远市',\n      230881: '同江市',\n      230882: '富锦市'\n    },\n    230900: {\n      230902: '新兴区',\n      230903: '桃山区',\n      230904: '茄子河区',\n      230921: '勃利县'\n    },\n    231000: {\n      231002: '东安区',\n      231003: '阳明区',\n      231004: '爱民区',\n      231005: '西安区',\n      231025: '林口县',\n      231081: '绥芬河市',\n      231083: '海林市',\n      231084: '宁安市',\n      231085: '穆棱市',\n      231086: '东宁市'\n    },\n    231100: {\n      231102: '爱辉区',\n      231121: '嫩江县',\n      231123: '逊克县',\n      231124: '孙吴县',\n      231181: '北安市',\n      231182: '五大连池市'\n    },\n    231200: {\n      231202: '北林区',\n      231221: '望奎县',\n      231222: '兰西县',\n      231223: '青冈县',\n      231224: '庆安县',\n      231225: '明水县',\n      231226: '绥棱县',\n      231281: '安达市',\n      231282: '肇东市',\n      231283: '海伦市'\n    },\n    232700: {\n      232701: '加格达奇区',\n      232721: '呼玛县',\n      232722: '塔河县',\n      232723: '漠河县'\n    },\n    310000: {\n      310100: '上海市市辖区',\n      310200: '上海市郊县'\n    },\n    310100: {\n      310101: '黄浦区',\n      310104: '徐汇区',\n      310105: '长宁区',\n      310106: '静安区',\n      310107: '普陀区',\n      310109: '虹口区',\n      310110: '杨浦区',\n      310112: '闵行区',\n      310113: '宝山区',\n      310114: '嘉定区',\n      310115: '浦东新区',\n      310116: '金山区',\n      310117: '松江区',\n      310118: '青浦区',\n      310120: '奉贤区',\n      310230: '崇明县'\n    },\n    320000: {\n      320100: '南京市',\n      320200: '无锡市',\n      320300: '徐州市',\n      320400: '常州市',\n      320500: '苏州市',\n      320600: '南通市',\n      320700: '连云港市',\n      320800: '淮安市',\n      320900: '盐城市',\n      321000: '扬州市',\n      321100: '镇江市',\n      321200: '泰州市',\n      321300: '宿迁市'\n    },\n    320100: {\n      320102: '玄武区',\n      320104: '秦淮区',\n      320105: '建邺区',\n      320106: '鼓楼区',\n      320111: '浦口区',\n      320113: '栖霞区',\n      320114: '雨花台区',\n      320115: '江宁区',\n      320116: '六合区',\n      320117: '溧水区',\n      320118: '高淳区'\n    },\n    320200: {\n      320205: '锡山区',\n      320206: '惠山区',\n      320211: '滨湖区',\n      320213: '梁溪区',\n      320214: '新吴区',\n      320281: '江阴市',\n      320282: '宜兴市'\n    },\n    320300: {\n      320302: '鼓楼区',\n      320303: '云龙区',\n      320305: '贾汪区',\n      320311: '泉山区',\n      320312: '铜山区',\n      320321: '丰县',\n      320322: '沛县',\n      320324: '睢宁县',\n      320381: '新沂市',\n      320382: '邳州市'\n    },\n    320400: {\n      320402: '天宁区',\n      320404: '钟楼区',\n      320411: '新北区',\n      320412: '武进区',\n      320413: '金坛区',\n      320481: '溧阳市'\n    },\n    320500: {\n      320505: '虎丘区',\n      320506: '吴中区',\n      320507: '相城区',\n      320508: '姑苏区',\n      320509: '吴江区',\n      320581: '常熟市',\n      320582: '张家港市',\n      320583: '昆山市',\n      320585: '太仓市'\n    },\n    320600: {\n      320602: '崇川区',\n      320611: '港闸区',\n      320612: '通州区',\n      320621: '海安县',\n      320623: '如东县',\n      320681: '启东市',\n      320682: '如皋市',\n      320684: '海门市'\n    },\n    320700: {\n      320703: '连云区',\n      320706: '海州区',\n      320707: '赣榆区',\n      320722: '东海县',\n      320723: '灌云县',\n      320724: '灌南县'\n    },\n    320800: {\n      320802: '清河区',\n      320803: '淮安区',\n      320804: '淮阴区',\n      320811: '清浦区',\n      320826: '涟水县',\n      320829: '洪泽县',\n      320830: '盱眙县',\n      320831: '金湖县'\n    },\n    320900: {\n      320902: '亭湖区',\n      320903: '盐都区',\n      320904: '大丰区',\n      320921: '响水县',\n      320922: '滨海县',\n      320923: '阜宁县',\n      320924: '射阳县',\n      320925: '建湖县',\n      320981: '东台市'\n    },\n    321000: {\n      321002: '广陵区',\n      321003: '邗江区',\n      321012: '江都区',\n      321023: '宝应县',\n      321081: '仪征市',\n      321084: '高邮市'\n    },\n    321100: {\n      321102: '京口区',\n      321111: '润州区',\n      321112: '丹徒区',\n      321181: '丹阳市',\n      321182: '扬中市',\n      321183: '句容市'\n    },\n    321200: {\n      321202: '海陵区',\n      321203: '高港区',\n      321204: '姜堰区',\n      321281: '兴化市',\n      321282: '靖江市',\n      321283: '泰兴市'\n    },\n    321300: {\n      321302: '宿城区',\n      321311: '宿豫区',\n      321322: '沭阳县',\n      321323: '泗阳县',\n      321324: '泗洪县'\n    },\n    330000: {\n      330100: '杭州市',\n      330200: '宁波市',\n      330300: '温州市',\n      330400: '嘉兴市',\n      330500: '湖州市',\n      330600: '绍兴市',\n      330700: '金华市',\n      330800: '衢州市',\n      330900: '舟山市',\n      331000: '台州市',\n      331100: '丽水市'\n    },\n    330100: {\n      330102: '上城区',\n      330103: '下城区',\n      330104: '江干区',\n      330105: '拱墅区',\n      330106: '西湖区',\n      330108: '滨江区',\n      330109: '萧山区',\n      330110: '余杭区',\n      330111: '富阳区',\n      330122: '桐庐县',\n      330127: '淳安县',\n      330182: '建德市',\n      330185: '临安市'\n    },\n    330200: {\n      330203: '海曙区',\n      330204: '江东区',\n      330205: '江北区',\n      330206: '北仑区',\n      330211: '镇海区',\n      330212: '鄞州区',\n      330225: '象山县',\n      330226: '宁海县',\n      330281: '余姚市',\n      330282: '慈溪市',\n      330283: '奉化市'\n    },\n    330300: {\n      330302: '鹿城区',\n      330303: '龙湾区',\n      330304: '瓯海区',\n      330305: '洞头区',\n      330324: '永嘉县',\n      330326: '平阳县',\n      330327: '苍南县',\n      330328: '文成县',\n      330329: '泰顺县',\n      330381: '瑞安市',\n      330382: '乐清市'\n    },\n    330400: {\n      330402: '南湖区',\n      330411: '秀洲区',\n      330421: '嘉善县',\n      330424: '海盐县',\n      330481: '海宁市',\n      330482: '平湖市',\n      330483: '桐乡市'\n    },\n    330500: {\n      330502: '吴兴区',\n      330503: '南浔区',\n      330521: '德清县',\n      330522: '长兴县',\n      330523: '安吉县'\n    },\n    330600: {\n      330602: '越城区',\n      330603: '柯桥区',\n      330604: '上虞区',\n      330624: '新昌县',\n      330681: '诸暨市',\n      330683: '嵊州市'\n    },\n    330700: {\n      330702: '婺城区',\n      330703: '金东区',\n      330723: '武义县',\n      330726: '浦江县',\n      330727: '磐安县',\n      330781: '兰溪市',\n      330782: '义乌市',\n      330783: '东阳市',\n      330784: '永康市'\n    },\n    330800: {\n      330802: '柯城区',\n      330803: '衢江区',\n      330822: '常山县',\n      330824: '开化县',\n      330825: '龙游县',\n      330881: '江山市'\n    },\n    330900: {\n      330902: '定海区',\n      330903: '普陀区',\n      330921: '岱山县',\n      330922: '嵊泗县'\n    },\n    331000: {\n      331002: '椒江区',\n      331003: '黄岩区',\n      331004: '路桥区',\n      331021: '玉环县',\n      331022: '三门县',\n      331023: '天台县',\n      331024: '仙居县',\n      331081: '温岭市',\n      331082: '临海市'\n    },\n    331100: {\n      331102: '莲都区',\n      331121: '青田县',\n      331122: '缙云县',\n      331123: '遂昌县',\n      331124: '松阳县',\n      331125: '云和县',\n      331126: '庆元县',\n      331127: '景宁畲族自治县',\n      331181: '龙泉市'\n    },\n    340000: {\n      340100: '合肥市',\n      340200: '芜湖市',\n      340300: '蚌埠市',\n      340400: '淮南市',\n      340500: '马鞍山市',\n      340600: '淮北市',\n      340700: '铜陵市',\n      340800: '安庆市',\n      341000: '黄山市',\n      341100: '滁州市',\n      341200: '阜阳市',\n      341300: '宿州市',\n      341500: '六安市',\n      341600: '亳州市',\n      341700: '池州市',\n      341800: '宣城市'\n    },\n    340100: {\n      340102: '瑶海区',\n      340103: '庐阳区',\n      340104: '蜀山区',\n      340111: '包河区',\n      340121: '长丰县',\n      340122: '肥东县',\n      340123: '肥西县',\n      340124: '庐江县',\n      340181: '巢湖市'\n    },\n    340200: {\n      340202: '镜湖区',\n      340203: '弋江区',\n      340207: '鸠江区',\n      340208: '三山区',\n      340221: '芜湖县',\n      340222: '繁昌县',\n      340223: '南陵县',\n      340225: '无为县'\n    },\n    340300: {\n      340302: '龙子湖区',\n      340303: '蚌山区',\n      340304: '禹会区',\n      340311: '淮上区',\n      340321: '怀远县',\n      340322: '五河县',\n      340323: '固镇县'\n    },\n    340400: {\n      340402: '大通区',\n      340403: '田家庵区',\n      340404: '谢家集区',\n      340405: '八公山区',\n      340406: '潘集区',\n      340421: '凤台县',\n      340422: '寿县'\n    },\n    340500: {\n      340503: '花山区',\n      340504: '雨山区',\n      340506: '博望区',\n      340521: '当涂县',\n      340522: '含山县',\n      340523: '和县'\n    },\n    340600: {\n      340602: '杜集区',\n      340603: '相山区',\n      340604: '烈山区',\n      340621: '濉溪县'\n    },\n    340700: {\n      340705: '铜官区',\n      340706: '义安区',\n      340711: '郊区',\n      340722: '枞阳县'\n    },\n    340800: {\n      340802: '迎江区',\n      340803: '大观区',\n      340811: '宜秀区',\n      340822: '怀宁县',\n      340824: '潜山县',\n      340825: '太湖县',\n      340826: '宿松县',\n      340827: '望江县',\n      340828: '岳西县',\n      340881: '桐城市'\n    },\n    341000: {\n      341002: '屯溪区',\n      341003: '黄山区',\n      341004: '徽州区',\n      341021: '歙县',\n      341022: '休宁县',\n      341023: '黟县',\n      341024: '祁门县'\n    },\n    341100: {\n      341102: '琅琊区',\n      341103: '南谯区',\n      341122: '来安县',\n      341124: '全椒县',\n      341125: '定远县',\n      341126: '凤阳县',\n      341181: '天长市',\n      341182: '明光市'\n    },\n    341200: {\n      341202: '颍州区',\n      341203: '颍东区',\n      341204: '颍泉区',\n      341221: '临泉县',\n      341222: '太和县',\n      341225: '阜南县',\n      341226: '颍上县',\n      341282: '界首市'\n    },\n    341300: {\n      341302: '埇桥区',\n      341321: '砀山县',\n      341322: '萧县',\n      341323: '灵璧县',\n      341324: '泗县'\n    },\n    341500: {\n      341502: '金安区',\n      341503: '裕安区',\n      341504: '叶集区',\n      341522: '霍邱县',\n      341523: '舒城县',\n      341524: '金寨县',\n      341525: '霍山县'\n    },\n    341600: {\n      341602: '谯城区',\n      341621: '涡阳县',\n      341622: '蒙城县',\n      341623: '利辛县'\n    },\n    341700: {\n      341702: '贵池区',\n      341721: '东至县',\n      341722: '石台县',\n      341723: '青阳县'\n    },\n    341800: {\n      341802: '宣州区',\n      341821: '郎溪县',\n      341822: '广德县',\n      341823: '泾县',\n      341824: '绩溪县',\n      341825: '旌德县',\n      341881: '宁国市'\n    },\n    350000: {\n      350100: '福州市',\n      350200: '厦门市',\n      350300: '莆田市',\n      350400: '三明市',\n      350500: '泉州市',\n      350600: '漳州市',\n      350700: '南平市',\n      350800: '龙岩市',\n      350900: '宁德市'\n    },\n    350100: {\n      350102: '鼓楼区',\n      350103: '台江区',\n      350104: '仓山区',\n      350105: '马尾区',\n      350111: '晋安区',\n      350121: '闽侯县',\n      350122: '连江县',\n      350123: '罗源县',\n      350124: '闽清县',\n      350125: '永泰县',\n      350128: '平潭县',\n      350181: '福清市',\n      350182: '长乐市'\n    },\n    350200: {\n      350203: '思明区',\n      350205: '海沧区',\n      350206: '湖里区',\n      350211: '集美区',\n      350212: '同安区',\n      350213: '翔安区'\n    },\n    350300: {\n      350302: '城厢区',\n      350303: '涵江区',\n      350304: '荔城区',\n      350305: '秀屿区',\n      350322: '仙游县'\n    },\n    350400: {\n      350402: '梅列区',\n      350403: '三元区',\n      350421: '明溪县',\n      350423: '清流县',\n      350424: '宁化县',\n      350425: '大田县',\n      350426: '尤溪县',\n      350427: '沙县',\n      350428: '将乐县',\n      350429: '泰宁县',\n      350430: '建宁县',\n      350481: '永安市'\n    },\n    350500: {\n      350502: '鲤城区',\n      350503: '丰泽区',\n      350504: '洛江区',\n      350505: '泉港区',\n      350521: '惠安县',\n      350524: '安溪县',\n      350525: '永春县',\n      350526: '德化县',\n      350527: '金门县',\n      350581: '石狮市',\n      350582: '晋江市',\n      350583: '南安市'\n    },\n    350600: {\n      350602: '芗城区',\n      350603: '龙文区',\n      350622: '云霄县',\n      350623: '漳浦县',\n      350624: '诏安县',\n      350625: '长泰县',\n      350626: '东山县',\n      350627: '南靖县',\n      350628: '平和县',\n      350629: '华安县',\n      350681: '龙海市'\n    },\n    350700: {\n      350702: '延平区',\n      350703: '建阳区',\n      350721: '顺昌县',\n      350722: '浦城县',\n      350723: '光泽县',\n      350724: '松溪县',\n      350725: '政和县',\n      350781: '邵武市',\n      350782: '武夷山市',\n      350783: '建瓯市'\n    },\n    350800: {\n      350802: '新罗区',\n      350803: '永定区',\n      350821: '长汀县',\n      350823: '上杭县',\n      350824: '武平县',\n      350825: '连城县',\n      350881: '漳平市'\n    },\n    350900: {\n      350902: '蕉城区',\n      350921: '霞浦县',\n      350922: '古田县',\n      350923: '屏南县',\n      350924: '寿宁县',\n      350925: '周宁县',\n      350926: '柘荣县',\n      350981: '福安市',\n      350982: '福鼎市'\n    },\n    360000: {\n      360100: '南昌市',\n      360200: '景德镇市',\n      360300: '萍乡市',\n      360400: '九江市',\n      360500: '新余市',\n      360600: '鹰潭市',\n      360700: '赣州市',\n      360800: '吉安市',\n      360900: '宜春市',\n      361000: '抚州市',\n      361100: '上饶市'\n    },\n    360100: {\n      360102: '东湖区',\n      360103: '西湖区',\n      360104: '青云谱区',\n      360105: '湾里区',\n      360111: '青山湖区',\n      360112: '新建区',\n      360121: '南昌县',\n      360123: '安义县',\n      360124: '进贤县'\n    },\n    360200: {\n      360202: '昌江区',\n      360203: '珠山区',\n      360222: '浮梁县',\n      360281: '乐平市'\n    },\n    360300: {\n      360302: '安源区',\n      360313: '湘东区',\n      360321: '莲花县',\n      360322: '上栗县',\n      360323: '芦溪县'\n    },\n    360400: {\n      360402: '庐山区',\n      360403: '浔阳区',\n      360421: '九江县',\n      360423: '武宁县',\n      360424: '修水县',\n      360425: '永修县',\n      360426: '德安县',\n      360427: '星子县',\n      360428: '都昌县',\n      360429: '湖口县',\n      360430: '彭泽县',\n      360481: '瑞昌市',\n      360482: '共青城市'\n    },\n    360500: {\n      360502: '渝水区',\n      360521: '分宜县'\n    },\n    360600: {\n      360602: '月湖区',\n      360622: '余江县',\n      360681: '贵溪市'\n    },\n    360700: {\n      360702: '章贡区',\n      360703: '南康区',\n      360721: '赣县',\n      360722: '信丰县',\n      360723: '大余县',\n      360724: '上犹县',\n      360725: '崇义县',\n      360726: '安远县',\n      360727: '龙南县',\n      360728: '定南县',\n      360729: '全南县',\n      360730: '宁都县',\n      360731: '于都县',\n      360732: '兴国县',\n      360733: '会昌县',\n      360734: '寻乌县',\n      360735: '石城县',\n      360781: '瑞金市'\n    },\n    360800: {\n      360802: '吉州区',\n      360803: '青原区',\n      360821: '吉安县',\n      360822: '吉水县',\n      360823: '峡江县',\n      360824: '新干县',\n      360825: '永丰县',\n      360826: '泰和县',\n      360827: '遂川县',\n      360828: '万安县',\n      360829: '安福县',\n      360830: '永新县',\n      360881: '井冈山市'\n    },\n    360900: {\n      360902: '袁州区',\n      360921: '奉新县',\n      360922: '万载县',\n      360923: '上高县',\n      360924: '宜丰县',\n      360925: '靖安县',\n      360926: '铜鼓县',\n      360981: '丰城市',\n      360982: '樟树市',\n      360983: '高安市'\n    },\n    361000: {\n      361002: '临川区',\n      361021: '南城县',\n      361022: '黎川县',\n      361023: '南丰县',\n      361024: '崇仁县',\n      361025: '乐安县',\n      361026: '宜黄县',\n      361027: '金溪县',\n      361028: '资溪县',\n      361029: '东乡县',\n      361030: '广昌县'\n    },\n    361100: {\n      361102: '信州区',\n      361103: '广丰区',\n      361121: '上饶县',\n      361123: '玉山县',\n      361124: '铅山县',\n      361125: '横峰县',\n      361126: '弋阳县',\n      361127: '余干县',\n      361128: '鄱阳县',\n      361129: '万年县',\n      361130: '婺源县',\n      361181: '德兴市'\n    },\n    370000: {\n      370100: '济南市',\n      370200: '青岛市',\n      370300: '淄博市',\n      370400: '枣庄市',\n      370500: '东营市',\n      370600: '烟台市',\n      370700: '潍坊市',\n      370800: '济宁市',\n      370900: '泰安市',\n      371000: '威海市',\n      371100: '日照市',\n      371200: '莱芜市',\n      371300: '临沂市',\n      371400: '德州市',\n      371500: '聊城市',\n      371600: '滨州市',\n      371700: '菏泽市'\n    },\n    370100: {\n      370102: '历下区',\n      370103: '市中区',\n      370104: '槐荫区',\n      370105: '天桥区',\n      370112: '历城区',\n      370113: '长清区',\n      370124: '平阴县',\n      370125: '济阳县',\n      370126: '商河县',\n      370181: '章丘市'\n    },\n    370200: {\n      370202: '市南区',\n      370203: '市北区',\n      370211: '黄岛区',\n      370212: '崂山区',\n      370213: '李沧区',\n      370214: '城阳区',\n      370281: '胶州市',\n      370282: '即墨市',\n      370283: '平度市',\n      370285: '莱西市'\n    },\n    370300: {\n      370302: '淄川区',\n      370303: '张店区',\n      370304: '博山区',\n      370305: '临淄区',\n      370306: '周村区',\n      370321: '桓台县',\n      370322: '高青县',\n      370323: '沂源县'\n    },\n    370400: {\n      370402: '市中区',\n      370403: '薛城区',\n      370404: '峄城区',\n      370405: '台儿庄区',\n      370406: '山亭区',\n      370481: '滕州市'\n    },\n    370500: {\n      370502: '东营区',\n      370503: '河口区',\n      370521: '垦利县',\n      370522: '利津县',\n      370523: '广饶县'\n    },\n    370600: {\n      370602: '芝罘区',\n      370611: '福山区',\n      370612: '牟平区',\n      370613: '莱山区',\n      370634: '长岛县',\n      370681: '龙口市',\n      370682: '莱阳市',\n      370683: '莱州市',\n      370684: '蓬莱市',\n      370685: '招远市',\n      370686: '栖霞市',\n      370687: '海阳市'\n    },\n    370700: {\n      370702: '潍城区',\n      370703: '寒亭区',\n      370704: '坊子区',\n      370705: '奎文区',\n      370724: '临朐县',\n      370725: '昌乐县',\n      370781: '青州市',\n      370782: '诸城市',\n      370783: '寿光市',\n      370784: '安丘市',\n      370785: '高密市',\n      370786: '昌邑市'\n    },\n    370800: {\n      370811: '任城区',\n      370812: '兖州区',\n      370826: '微山县',\n      370827: '鱼台县',\n      370828: '金乡县',\n      370829: '嘉祥县',\n      370830: '汶上县',\n      370831: '泗水县',\n      370832: '梁山县',\n      370881: '曲阜市',\n      370883: '邹城市'\n    },\n    370900: {\n      370902: '泰山区',\n      370911: '岱岳区',\n      370921: '宁阳县',\n      370923: '东平县',\n      370982: '新泰市',\n      370983: '肥城市'\n    },\n    371000: {\n      371002: '环翠区',\n      371003: '文登区',\n      371082: '荣成市',\n      371083: '乳山市'\n    },\n    371100: {\n      371102: '东港区',\n      371103: '岚山区',\n      371121: '五莲县',\n      371122: '莒县'\n    },\n    371200: {\n      371202: '莱城区',\n      371203: '钢城区'\n    },\n    371300: {\n      371302: '兰山区',\n      371311: '罗庄区',\n      371312: '河东区',\n      371321: '沂南县',\n      371322: '郯城县',\n      371323: '沂水县',\n      371324: '兰陵县',\n      371325: '费县',\n      371326: '平邑县',\n      371327: '莒南县',\n      371328: '蒙阴县',\n      371329: '临沭县'\n    },\n    371400: {\n      371402: '德城区',\n      371403: '陵城区',\n      371422: '宁津县',\n      371423: '庆云县',\n      371424: '临邑县',\n      371425: '齐河县',\n      371426: '平原县',\n      371427: '夏津县',\n      371428: '武城县',\n      371481: '乐陵市',\n      371482: '禹城市'\n    },\n    371500: {\n      371502: '东昌府区',\n      371521: '阳谷县',\n      371522: '莘县',\n      371523: '茌平县',\n      371524: '东阿县',\n      371525: '冠县',\n      371526: '高唐县',\n      371581: '临清市'\n    },\n    371600: {\n      371602: '滨城区',\n      371603: '沾化区',\n      371621: '惠民县',\n      371622: '阳信县',\n      371623: '无棣县',\n      371625: '博兴县',\n      371626: '邹平县'\n    },\n    371700: {\n      371702: '牡丹区',\n      371721: '曹县',\n      371722: '单县',\n      371723: '成武县',\n      371724: '巨野县',\n      371725: '郓城县',\n      371726: '鄄城县',\n      371727: '定陶县',\n      371728: '东明县'\n    },\n    410000: {\n      410100: '郑州市',\n      410200: '开封市',\n      410300: '洛阳市',\n      410400: '平顶山市',\n      410500: '安阳市',\n      410600: '鹤壁市',\n      410700: '新乡市',\n      410800: '焦作市',\n      410900: '濮阳市',\n      411000: '许昌市',\n      411100: '漯河市',\n      411200: '三门峡市',\n      411300: '南阳市',\n      411400: '商丘市',\n      411500: '信阳市',\n      411600: '周口市',\n      411700: '驻马店市',\n      419001: '济源市'\n    },\n    410100: {\n      410102: '中原区',\n      410103: '二七区',\n      410104: '管城回族区',\n      410105: '金水区',\n      410106: '上街区',\n      410108: '惠济区',\n      410122: '中牟县',\n      410181: '巩义市',\n      410182: '荥阳市',\n      410183: '新密市',\n      410184: '新郑市',\n      410185: '登封市'\n    },\n    410200: {\n      410202: '龙亭区',\n      410203: '顺河回族区',\n      410204: '鼓楼区',\n      410205: '禹王台区',\n      410212: '祥符区',\n      410221: '杞县',\n      410222: '通许县',\n      410223: '尉氏县',\n      410225: '兰考县'\n    },\n    410300: {\n      410302: '老城区',\n      410303: '西工区',\n      410304: '瀍河回族区',\n      410305: '涧西区',\n      410306: '吉利区',\n      410311: '洛龙区',\n      410322: '孟津县',\n      410323: '新安县',\n      410324: '栾川县',\n      410325: '嵩县',\n      410326: '汝阳县',\n      410327: '宜阳县',\n      410328: '洛宁县',\n      410329: '伊川县',\n      410381: '偃师市'\n    },\n    410400: {\n      410402: '新华区',\n      410403: '卫东区',\n      410404: '石龙区',\n      410411: '湛河区',\n      410421: '宝丰县',\n      410422: '叶县',\n      410423: '鲁山县',\n      410425: '郏县',\n      410481: '舞钢市',\n      410482: '汝州市'\n    },\n    410500: {\n      410502: '文峰区',\n      410503: '北关区',\n      410505: '殷都区',\n      410506: '龙安区',\n      410522: '安阳县',\n      410523: '汤阴县',\n      410526: '滑县',\n      410527: '内黄县',\n      410581: '林州市'\n    },\n    410600: {\n      410602: '鹤山区',\n      410603: '山城区',\n      410611: '淇滨区',\n      410621: '浚县',\n      410622: '淇县'\n    },\n    410700: {\n      410702: '红旗区',\n      410703: '卫滨区',\n      410704: '凤泉区',\n      410711: '牧野区',\n      410721: '新乡县',\n      410724: '获嘉县',\n      410725: '原阳县',\n      410726: '延津县',\n      410727: '封丘县',\n      410728: '长垣县',\n      410781: '卫辉市',\n      410782: '辉县市'\n    },\n    410800: {\n      410802: '解放区',\n      410803: '中站区',\n      410804: '马村区',\n      410811: '山阳区',\n      410821: '修武县',\n      410822: '博爱县',\n      410823: '武陟县',\n      410825: '温县',\n      410882: '沁阳市',\n      410883: '孟州市'\n    },\n    410900: {\n      410902: '华龙区',\n      410922: '清丰县',\n      410923: '南乐县',\n      410926: '范县',\n      410927: '台前县',\n      410928: '濮阳县'\n    },\n    411000: {\n      411002: '魏都区',\n      411023: '许昌县',\n      411024: '鄢陵县',\n      411025: '襄城县',\n      411081: '禹州市',\n      411082: '长葛市'\n    },\n    411100: {\n      411102: '源汇区',\n      411103: '郾城区',\n      411104: '召陵区',\n      411121: '舞阳县',\n      411122: '临颍县'\n    },\n    411200: {\n      411202: '湖滨区',\n      411203: '陕州区',\n      411221: '渑池县',\n      411224: '卢氏县',\n      411281: '义马市',\n      411282: '灵宝市'\n    },\n    411300: {\n      411302: '宛城区',\n      411303: '卧龙区',\n      411321: '南召县',\n      411322: '方城县',\n      411323: '西峡县',\n      411324: '镇平县',\n      411325: '内乡县',\n      411326: '淅川县',\n      411327: '社旗县',\n      411328: '唐河县',\n      411329: '新野县',\n      411330: '桐柏县',\n      411381: '邓州市'\n    },\n    411400: {\n      411402: '梁园区',\n      411403: '睢阳区',\n      411421: '民权县',\n      411422: '睢县',\n      411423: '宁陵县',\n      411424: '柘城县',\n      411425: '虞城县',\n      411426: '夏邑县',\n      411481: '永城市'\n    },\n    411500: {\n      411502: '浉河区',\n      411503: '平桥区',\n      411521: '罗山县',\n      411522: '光山县',\n      411523: '新县',\n      411524: '商城县',\n      411525: '固始县',\n      411526: '潢川县',\n      411527: '淮滨县',\n      411528: '息县'\n    },\n    411600: {\n      411602: '川汇区',\n      411621: '扶沟县',\n      411622: '西华县',\n      411623: '商水县',\n      411624: '沈丘县',\n      411625: '郸城县',\n      411626: '淮阳县',\n      411627: '太康县',\n      411628: '鹿邑县',\n      411681: '项城市'\n    },\n    411700: {\n      411702: '驿城区',\n      411721: '西平县',\n      411722: '上蔡县',\n      411723: '平舆县',\n      411724: '正阳县',\n      411725: '确山县',\n      411726: '泌阳县',\n      411727: '汝南县',\n      411728: '遂平县',\n      411729: '新蔡县'\n    },\n    420000: {\n      420100: '武汉市',\n      420200: '黄石市',\n      420300: '十堰市',\n      420500: '宜昌市',\n      420600: '襄阳市',\n      420700: '鄂州市',\n      420800: '荆门市',\n      420900: '孝感市',\n      421000: '荆州市',\n      421100: '黄冈市',\n      421200: '咸宁市',\n      421300: '随州市',\n      422800: '恩施土家族苗族自治州',\n      429004: '仙桃市',\n      429005: '潜江市',\n      429006: '天门市',\n      429021: '神农架林区'\n    },\n    420100: {\n      420102: '江岸区',\n      420103: '江汉区',\n      420104: '硚口区',\n      420105: '汉阳区',\n      420106: '武昌区',\n      420107: '青山区',\n      420111: '洪山区',\n      420112: '东西湖区',\n      420113: '汉南区',\n      420114: '蔡甸区',\n      420115: '江夏区',\n      420116: '黄陂区',\n      420117: '新洲区'\n    },\n    420200: {\n      420202: '黄石港区',\n      420203: '西塞山区',\n      420204: '下陆区',\n      420205: '铁山区',\n      420222: '阳新县',\n      420281: '大冶市'\n    },\n    420300: {\n      420302: '茅箭区',\n      420303: '张湾区',\n      420304: '郧阳区',\n      420322: '郧西县',\n      420323: '竹山县',\n      420324: '竹溪县',\n      420325: '房县',\n      420381: '丹江口市'\n    },\n    420500: {\n      420502: '西陵区',\n      420503: '伍家岗区',\n      420504: '点军区',\n      420505: '猇亭区',\n      420506: '夷陵区',\n      420525: '远安县',\n      420526: '兴山县',\n      420527: '秭归县',\n      420528: '长阳土家族自治县',\n      420529: '五峰土家族自治县',\n      420581: '宜都市',\n      420582: '当阳市',\n      420583: '枝江市'\n    },\n    420600: {\n      420602: '襄城区',\n      420606: '樊城区',\n      420607: '襄州区',\n      420624: '南漳县',\n      420625: '谷城县',\n      420626: '保康县',\n      420682: '老河口市',\n      420683: '枣阳市',\n      420684: '宜城市'\n    },\n    420700: {\n      420702: '梁子湖区',\n      420703: '华容区',\n      420704: '鄂城区'\n    },\n    420800: {\n      420802: '东宝区',\n      420804: '掇刀区',\n      420821: '京山县',\n      420822: '沙洋县',\n      420881: '钟祥市'\n    },\n    420900: {\n      420902: '孝南区',\n      420921: '孝昌县',\n      420922: '大悟县',\n      420923: '云梦县',\n      420981: '应城市',\n      420982: '安陆市',\n      420984: '汉川市'\n    },\n    421000: {\n      421002: '沙市区',\n      421003: '荆州区',\n      421022: '公安县',\n      421023: '监利县',\n      421024: '江陵县',\n      421081: '石首市',\n      421083: '洪湖市',\n      421087: '松滋市'\n    },\n    421100: {\n      421102: '黄州区',\n      421121: '团风县',\n      421122: '红安县',\n      421123: '罗田县',\n      421124: '英山县',\n      421125: '浠水县',\n      421126: '蕲春县',\n      421127: '黄梅县',\n      421181: '麻城市',\n      421182: '武穴市'\n    },\n    421200: {\n      421202: '咸安区',\n      421221: '嘉鱼县',\n      421222: '通城县',\n      421223: '崇阳县',\n      421224: '通山县',\n      421281: '赤壁市'\n    },\n    421300: {\n      421303: '曾都区',\n      421321: '随县',\n      421381: '广水市'\n    },\n    422800: {\n      422801: '恩施市',\n      422802: '利川市',\n      422822: '建始县',\n      422823: '巴东县',\n      422825: '宣恩县',\n      422826: '咸丰县',\n      422827: '来凤县',\n      422828: '鹤峰县'\n    },\n    430000: {\n      430100: '长沙市',\n      430200: '株洲市',\n      430300: '湘潭市',\n      430400: '衡阳市',\n      430500: '邵阳市',\n      430600: '岳阳市',\n      430700: '常德市',\n      430800: '张家界市',\n      430900: '益阳市',\n      431000: '郴州市',\n      431100: '永州市',\n      431200: '怀化市',\n      431300: '娄底市',\n      433100: '湘西土家族苗族自治州'\n    },\n    430100: {\n      430102: '芙蓉区',\n      430103: '天心区',\n      430104: '岳麓区',\n      430105: '开福区',\n      430111: '雨花区',\n      430112: '望城区',\n      430121: '长沙县',\n      430124: '宁乡县',\n      430181: '浏阳市'\n    },\n    430200: {\n      430202: '荷塘区',\n      430203: '芦淞区',\n      430204: '石峰区',\n      430211: '天元区',\n      430221: '株洲县',\n      430223: '攸县',\n      430224: '茶陵县',\n      430225: '炎陵县',\n      430281: '醴陵市'\n    },\n    430300: {\n      430302: '雨湖区',\n      430304: '岳塘区',\n      430321: '湘潭县',\n      430381: '湘乡市',\n      430382: '韶山市'\n    },\n    430400: {\n      430405: '珠晖区',\n      430406: '雁峰区',\n      430407: '石鼓区',\n      430408: '蒸湘区',\n      430412: '南岳区',\n      430421: '衡阳县',\n      430422: '衡南县',\n      430423: '衡山县',\n      430424: '衡东县',\n      430426: '祁东县',\n      430481: '耒阳市',\n      430482: '常宁市'\n    },\n    430500: {\n      430502: '双清区',\n      430503: '大祥区',\n      430511: '北塔区',\n      430521: '邵东县',\n      430522: '新邵县',\n      430523: '邵阳县',\n      430524: '隆回县',\n      430525: '洞口县',\n      430527: '绥宁县',\n      430528: '新宁县',\n      430529: '城步苗族自治县',\n      430581: '武冈市'\n    },\n    430600: {\n      430602: '岳阳楼区',\n      430603: '云溪区',\n      430611: '君山区',\n      430621: '岳阳县',\n      430623: '华容县',\n      430624: '湘阴县',\n      430626: '平江县',\n      430681: '汨罗市',\n      430682: '临湘市'\n    },\n    430700: {\n      430702: '武陵区',\n      430703: '鼎城区',\n      430721: '安乡县',\n      430722: '汉寿县',\n      430723: '澧县',\n      430724: '临澧县',\n      430725: '桃源县',\n      430726: '石门县',\n      430781: '津市市'\n    },\n    430800: {\n      430802: '永定区',\n      430811: '武陵源区',\n      430821: '慈利县',\n      430822: '桑植县'\n    },\n    430900: {\n      430902: '资阳区',\n      430903: '赫山区',\n      430921: '南县',\n      430922: '桃江县',\n      430923: '安化县',\n      430981: '沅江市'\n    },\n    431000: {\n      431002: '北湖区',\n      431003: '苏仙区',\n      431021: '桂阳县',\n      431022: '宜章县',\n      431023: '永兴县',\n      431024: '嘉禾县',\n      431025: '临武县',\n      431026: '汝城县',\n      431027: '桂东县',\n      431028: '安仁县',\n      431081: '资兴市'\n    },\n    431100: {\n      431102: '零陵区',\n      431103: '冷水滩区',\n      431121: '祁阳县',\n      431122: '东安县',\n      431123: '双牌县',\n      431124: '道县',\n      431125: '江永县',\n      431126: '宁远县',\n      431127: '蓝山县',\n      431128: '新田县',\n      431129: '江华瑶族自治县'\n    },\n    431200: {\n      431202: '鹤城区',\n      431221: '中方县',\n      431222: '沅陵县',\n      431223: '辰溪县',\n      431224: '溆浦县',\n      431225: '会同县',\n      431226: '麻阳苗族自治县',\n      431227: '新晃侗族自治县',\n      431228: '芷江侗族自治县',\n      431229: '靖州苗族侗族自治县',\n      431230: '通道侗族自治县',\n      431281: '洪江市'\n    },\n    431300: {\n      431302: '娄星区',\n      431321: '双峰县',\n      431322: '新化县',\n      431381: '冷水江市',\n      431382: '涟源市'\n    },\n    433100: {\n      433101: '吉首市',\n      433122: '泸溪县',\n      433123: '凤凰县',\n      433124: '花垣县',\n      433125: '保靖县',\n      433126: '古丈县',\n      433127: '永顺县',\n      433130: '龙山县'\n    },\n    440000: {\n      440100: '广州市',\n      440200: '韶关市',\n      440300: '深圳市',\n      440400: '珠海市',\n      440500: '汕头市',\n      440600: '佛山市',\n      440700: '江门市',\n      440800: '湛江市',\n      440900: '茂名市',\n      441200: '肇庆市',\n      441300: '惠州市',\n      441400: '梅州市',\n      441500: '汕尾市',\n      441600: '河源市',\n      441700: '阳江市',\n      441800: '清远市',\n      441900: '东莞市',\n      442000: '中山市',\n      445100: '潮州市',\n      445200: '揭阳市',\n      445300: '云浮市'\n    },\n    440100: {\n      440103: '荔湾区',\n      440104: '越秀区',\n      440105: '海珠区',\n      440106: '天河区',\n      440111: '白云区',\n      440112: '黄埔区',\n      440113: '番禺区',\n      440114: '花都区',\n      440115: '南沙区',\n      440117: '从化区',\n      440118: '增城区'\n    },\n    440200: {\n      440203: '武江区',\n      440204: '浈江区',\n      440205: '曲江区',\n      440222: '始兴县',\n      440224: '仁化县',\n      440229: '翁源县',\n      440232: '乳源瑶族自治县',\n      440233: '新丰县',\n      440281: '乐昌市',\n      440282: '南雄市'\n    },\n    440300: {\n      440303: '罗湖区',\n      440304: '福田区',\n      440305: '南山区',\n      440306: '宝安区',\n      440307: '龙岗区',\n      440308: '盐田区'\n    },\n    440400: {\n      440402: '香洲区',\n      440403: '斗门区',\n      440404: '金湾区'\n    },\n    440500: {\n      440507: '龙湖区',\n      440511: '金平区',\n      440512: '濠江区',\n      440513: '潮阳区',\n      440514: '潮南区',\n      440515: '澄海区',\n      440523: '南澳县'\n    },\n    440600: {\n      440604: '禅城区',\n      440605: '南海区',\n      440606: '顺德区',\n      440607: '三水区',\n      440608: '高明区'\n    },\n    440700: {\n      440703: '蓬江区',\n      440704: '江海区',\n      440705: '新会区',\n      440781: '台山市',\n      440783: '开平市',\n      440784: '鹤山市',\n      440785: '恩平市'\n    },\n    440800: {\n      440802: '赤坎区',\n      440803: '霞山区',\n      440804: '坡头区',\n      440811: '麻章区',\n      440823: '遂溪县',\n      440825: '徐闻县',\n      440881: '廉江市',\n      440882: '雷州市',\n      440883: '吴川市'\n    },\n    440900: {\n      440902: '茂南区',\n      440904: '电白区',\n      440981: '高州市',\n      440982: '化州市',\n      440983: '信宜市'\n    },\n    441200: {\n      441202: '端州区',\n      441203: '鼎湖区',\n      441204: '高要区',\n      441223: '广宁县',\n      441224: '怀集县',\n      441225: '封开县',\n      441226: '德庆县',\n      441284: '四会市'\n    },\n    441300: {\n      441302: '惠城区',\n      441303: '惠阳区',\n      441322: '博罗县',\n      441323: '惠东县',\n      441324: '龙门县'\n    },\n    441400: {\n      441402: '梅江区',\n      441403: '梅县区',\n      441422: '大埔县',\n      441423: '丰顺县',\n      441424: '五华县',\n      441426: '平远县',\n      441427: '蕉岭县',\n      441481: '兴宁市'\n    },\n    441500: {\n      441502: '城区',\n      441521: '海丰县',\n      441523: '陆河县',\n      441581: '陆丰市'\n    },\n    441600: {\n      441602: '源城区',\n      441621: '紫金县',\n      441622: '龙川县',\n      441623: '连平县',\n      441624: '和平县',\n      441625: '东源县'\n    },\n    441700: {\n      441702: '江城区',\n      441704: '阳东区',\n      441721: '阳西县',\n      441781: '阳春市'\n    },\n    441800: {\n      441802: '清城区',\n      441803: '清新区',\n      441821: '佛冈县',\n      441823: '阳山县',\n      441825: '连山壮族瑶族自治县',\n      441826: '连南瑶族自治县',\n      441881: '英德市',\n      441882: '连州市'\n    },\n    441900: {\n      441900: '三元里'\n    },\n    442000: {\n      442000: '湖滨北路'\n    },\n    445100: {\n      445102: '湘桥区',\n      445103: '潮安区',\n      445122: '饶平县'\n    },\n    445200: {\n      445202: '榕城区',\n      445203: '揭东区',\n      445222: '揭西县',\n      445224: '惠来县',\n      445281: '普宁市'\n    },\n    445300: {\n      445302: '云城区',\n      445303: '云安区',\n      445321: '新兴县',\n      445322: '郁南县',\n      445381: '罗定市'\n    },\n    450000: {\n      450100: '南宁市',\n      450200: '柳州市',\n      450300: '桂林市',\n      450400: '梧州市',\n      450500: '北海市',\n      450600: '防城港市',\n      450700: '钦州市',\n      450800: '贵港市',\n      450900: '玉林市',\n      451000: '百色市',\n      451100: '贺州市',\n      451200: '河池市',\n      451300: '来宾市',\n      451400: '崇左市'\n    },\n    450100: {\n      450102: '兴宁区',\n      450103: '青秀区',\n      450105: '江南区',\n      450107: '西乡塘区',\n      450108: '良庆区',\n      450109: '邕宁区',\n      450110: '武鸣区',\n      450123: '隆安县',\n      450124: '马山县',\n      450125: '上林县',\n      450126: '宾阳县',\n      450127: '横县'\n    },\n    450200: {\n      450202: '城中区',\n      450203: '鱼峰区',\n      450204: '柳南区',\n      450205: '柳北区',\n      450221: '柳江县',\n      450222: '柳城县',\n      450223: '鹿寨县',\n      450224: '融安县',\n      450225: '融水苗族自治县',\n      450226: '三江侗族自治县'\n    },\n    450300: {\n      450302: '秀峰区',\n      450303: '叠彩区',\n      450304: '象山区',\n      450305: '七星区',\n      450311: '雁山区',\n      450312: '临桂区',\n      450321: '阳朔县',\n      450323: '灵川县',\n      450324: '全州县',\n      450325: '兴安县',\n      450326: '永福县',\n      450327: '灌阳县',\n      450328: '龙胜各族自治县',\n      450329: '资源县',\n      450330: '平乐县',\n      450331: '荔浦县',\n      450332: '恭城瑶族自治县'\n    },\n    450400: {\n      450403: '万秀区',\n      450405: '长洲区',\n      450406: '龙圩区',\n      450421: '苍梧县',\n      450422: '藤县',\n      450423: '蒙山县',\n      450481: '岑溪市'\n    },\n    450500: {\n      450502: '海城区',\n      450503: '银海区',\n      450512: '铁山港区',\n      450521: '合浦县'\n    },\n    450600: {\n      450602: '港口区',\n      450603: '防城区',\n      450621: '上思县',\n      450681: '东兴市'\n    },\n    450700: {\n      450702: '钦南区',\n      450703: '钦北区',\n      450721: '灵山县',\n      450722: '浦北县'\n    },\n    450800: {\n      450802: '港北区',\n      450803: '港南区',\n      450804: '覃塘区',\n      450821: '平南县',\n      450881: '桂平市'\n    },\n    450900: {\n      450902: '玉州区',\n      450903: '福绵区',\n      450921: '容县',\n      450922: '陆川县',\n      450923: '博白县',\n      450924: '兴业县',\n      450981: '北流市'\n    },\n    451000: {\n      451002: '右江区',\n      451021: '田阳县',\n      451022: '田东县',\n      451023: '平果县',\n      451024: '德保县',\n      451026: '那坡县',\n      451027: '凌云县',\n      451028: '乐业县',\n      451029: '田林县',\n      451030: '西林县',\n      451031: '隆林各族自治县',\n      451081: '靖西市'\n    },\n    451100: {\n      451102: '八步区',\n      451121: '昭平县',\n      451122: '钟山县',\n      451123: '富川瑶族自治县'\n    },\n    451200: {\n      451202: '金城江区',\n      451221: '南丹县',\n      451222: '天峨县',\n      451223: '凤山县',\n      451224: '东兰县',\n      451225: '罗城仫佬族自治县',\n      451226: '环江毛南族自治县',\n      451227: '巴马瑶族自治县',\n      451228: '都安瑶族自治县',\n      451229: '大化瑶族自治县',\n      451281: '宜州市'\n    },\n    451300: {\n      451302: '兴宾区',\n      451321: '忻城县',\n      451322: '象州县',\n      451323: '武宣县',\n      451324: '金秀瑶族自治县',\n      451381: '合山市'\n    },\n    451400: {\n      451402: '江州区',\n      451421: '扶绥县',\n      451422: '宁明县',\n      451423: '龙州县',\n      451424: '大新县',\n      451425: '天等县',\n      451481: '凭祥市'\n    },\n    460000: {\n      460100: '海口市',\n      460200: '三亚市',\n      460300: '三沙市',\n      460400: '儋州市',\n      469001: '五指山市',\n      469002: '琼海市',\n      469005: '文昌市',\n      469006: '万宁市',\n      469007: '东方市',\n      469021: '定安县',\n      469022: '屯昌县',\n      469023: '澄迈县',\n      469024: '临高县',\n      469025: '白沙黎族自治县',\n      469026: '昌江黎族自治县',\n      469027: '乐东黎族自治县',\n      469028: '陵水黎族自治县',\n      469029: '保亭黎族苗族自治县',\n      469030: '琼中黎族苗族自治县'\n    },\n    460100: {\n      460105: '秀英区',\n      460106: '龙华区',\n      460107: '琼山区',\n      460108: '美兰区'\n    },\n    460200: {\n      460200: '三亚湾',\n      460202: '海棠区',\n      460203: '吉阳区',\n      460204: '天涯区',\n      460205: '崖州区'\n    },\n    460300: {\n      460321: '西沙群岛',\n      460322: '南沙群岛',\n      460323: '中沙群岛的岛礁及其海域'\n    },\n    500000: {\n      500100: '重庆市市辖区',\n      500200: '重庆市郊县'\n    },\n    500100: {\n      500101: '万州区',\n      500102: '涪陵区',\n      500103: '渝中区',\n      500104: '大渡口区',\n      500105: '江北区',\n      500106: '沙坪坝区',\n      500107: '九龙坡区',\n      500108: '南岸区',\n      500109: '北碚区',\n      500110: '綦江区',\n      500111: '大足区',\n      500112: '渝北区',\n      500113: '巴南区',\n      500114: '黔江区',\n      500115: '长寿区',\n      500116: '江津区',\n      500117: '合川区',\n      500118: '永川区',\n      500119: '南川区',\n      500120: '璧山区',\n      500151: '铜梁区',\n      500152: '潼南区',\n      500153: '荣昌区',\n      500228: '梁平县',\n      500229: '城口县',\n      500230: '丰都县',\n      500231: '垫江县',\n      500232: '武隆县',\n      500233: '忠县',\n      500234: '开县',\n      500235: '云阳县',\n      500236: '奉节县',\n      500237: '巫山县',\n      500238: '巫溪县',\n      500240: '石柱土家族自治县',\n      500241: '秀山土家族苗族自治县',\n      500242: '酉阳土家族苗族自治县',\n      500243: '彭水苗族土家族自治县'\n    },\n    510000: {\n      510100: '成都市',\n      510300: '自贡市',\n      510400: '攀枝花市',\n      510500: '泸州市',\n      510600: '德阳市',\n      510700: '绵阳市',\n      510800: '广元市',\n      510900: '遂宁市',\n      511000: '内江市',\n      511100: '乐山市',\n      511300: '南充市',\n      511400: '眉山市',\n      511500: '宜宾市',\n      511600: '广安市',\n      511700: '达州市',\n      511800: '雅安市',\n      511900: '巴中市',\n      512000: '资阳市',\n      513200: '阿坝藏族羌族自治州',\n      513300: '甘孜藏族自治州',\n      513400: '凉山彝族自治州'\n    },\n    510100: {\n      510104: '锦江区',\n      510105: '青羊区',\n      510106: '金牛区',\n      510107: '武侯区',\n      510108: '成华区',\n      510112: '龙泉驿区',\n      510113: '青白江区',\n      510114: '新都区',\n      510115: '温江区',\n      510116: '双流区',\n      510121: '金堂县',\n      510124: '郫县',\n      510129: '大邑县',\n      510131: '蒲江县',\n      510132: '新津县',\n      510181: '都江堰市',\n      510182: '彭州市',\n      510183: '邛崃市',\n      510184: '崇州市'\n    },\n    510300: {\n      510302: '自流井区',\n      510303: '贡井区',\n      510304: '大安区',\n      510311: '沿滩区',\n      510321: '荣县',\n      510322: '富顺县'\n    },\n    510400: {\n      510402: '东区',\n      510403: '西区',\n      510411: '仁和区',\n      510421: '米易县',\n      510422: '盐边县'\n    },\n    510500: {\n      510502: '江阳区',\n      510503: '纳溪区',\n      510504: '龙马潭区',\n      510521: '泸县',\n      510522: '合江县',\n      510524: '叙永县',\n      510525: '古蔺县'\n    },\n    510600: {\n      510603: '旌阳区',\n      510623: '中江县',\n      510626: '罗江县',\n      510681: '广汉市',\n      510682: '什邡市',\n      510683: '绵竹市'\n    },\n    510700: {\n      510703: '涪城区',\n      510704: '游仙区',\n      510722: '三台县',\n      510723: '盐亭县',\n      510724: '安县',\n      510725: '梓潼县',\n      510726: '北川羌族自治县',\n      510727: '平武县',\n      510781: '江油市'\n    },\n    510800: {\n      510802: '利州区',\n      510811: '昭化区',\n      510812: '朝天区',\n      510821: '旺苍县',\n      510822: '青川县',\n      510823: '剑阁县',\n      510824: '苍溪县'\n    },\n    510900: {\n      510903: '船山区',\n      510904: '安居区',\n      510921: '蓬溪县',\n      510922: '射洪县',\n      510923: '大英县'\n    },\n    511000: {\n      511002: '市中区',\n      511011: '东兴区',\n      511024: '威远县',\n      511025: '资中县',\n      511028: '隆昌县'\n    },\n    511100: {\n      511102: '市中区',\n      511111: '沙湾区',\n      511112: '五通桥区',\n      511113: '金口河区',\n      511123: '犍为县',\n      511124: '井研县',\n      511126: '夹江县',\n      511129: '沐川县',\n      511132: '峨边彝族自治县',\n      511133: '马边彝族自治县',\n      511181: '峨眉山市'\n    },\n    511300: {\n      511302: '顺庆区',\n      511303: '高坪区',\n      511304: '嘉陵区',\n      511321: '南部县',\n      511322: '营山县',\n      511323: '蓬安县',\n      511324: '仪陇县',\n      511325: '西充县',\n      511381: '阆中市'\n    },\n    511400: {\n      511402: '东坡区',\n      511403: '彭山区',\n      511421: '仁寿县',\n      511423: '洪雅县',\n      511424: '丹棱县',\n      511425: '青神县'\n    },\n    511500: {\n      511502: '翠屏区',\n      511503: '南溪区',\n      511521: '宜宾县',\n      511523: '江安县',\n      511524: '长宁县',\n      511525: '高县',\n      511526: '珙县',\n      511527: '筠连县',\n      511528: '兴文县',\n      511529: '屏山县'\n    },\n    511600: {\n      511602: '广安区',\n      511603: '前锋区',\n      511621: '岳池县',\n      511622: '武胜县',\n      511623: '邻水县',\n      511681: '华蓥市'\n    },\n    511700: {\n      511702: '通川区',\n      511703: '达川区',\n      511722: '宣汉县',\n      511723: '开江县',\n      511724: '大竹县',\n      511725: '渠县',\n      511781: '万源市'\n    },\n    511800: {\n      511802: '雨城区',\n      511803: '名山区',\n      511822: '荥经县',\n      511823: '汉源县',\n      511824: '石棉县',\n      511825: '天全县',\n      511826: '芦山县',\n      511827: '宝兴县'\n    },\n    511900: {\n      511902: '巴州区',\n      511903: '恩阳区',\n      511921: '通江县',\n      511922: '南江县',\n      511923: '平昌县'\n    },\n    512000: {\n      512002: '雁江区',\n      512021: '安岳县',\n      512022: '乐至县',\n      512081: '简阳市'\n    },\n    513200: {\n      513201: '马尔康市',\n      513221: '汶川县',\n      513222: '理县',\n      513223: '茂县',\n      513224: '松潘县',\n      513225: '九寨沟县',\n      513226: '金川县',\n      513227: '小金县',\n      513228: '黑水县',\n      513230: '壤塘县',\n      513231: '阿坝县',\n      513232: '若尔盖县',\n      513233: '红原县'\n    },\n    513300: {\n      513301: '康定市',\n      513322: '泸定县',\n      513323: '丹巴县',\n      513324: '九龙县',\n      513325: '雅江县',\n      513326: '道孚县',\n      513327: '炉霍县',\n      513328: '甘孜县',\n      513329: '新龙县',\n      513330: '德格县',\n      513331: '白玉县',\n      513332: '石渠县',\n      513333: '色达县',\n      513334: '理塘县',\n      513335: '巴塘县',\n      513336: '乡城县',\n      513337: '稻城县',\n      513338: '得荣县'\n    },\n    513400: {\n      513401: '西昌市',\n      513422: '木里藏族自治县',\n      513423: '盐源县',\n      513424: '德昌县',\n      513425: '会理县',\n      513426: '会东县',\n      513427: '宁南县',\n      513428: '普格县',\n      513429: '布拖县',\n      513430: '金阳县',\n      513431: '昭觉县',\n      513432: '喜德县',\n      513433: '冕宁县',\n      513434: '越西县',\n      513435: '甘洛县',\n      513436: '美姑县',\n      513437: '雷波县'\n    },\n    520000: {\n      520100: '贵阳市',\n      520200: '六盘水市',\n      520300: '遵义市',\n      520400: '安顺市',\n      520500: '毕节市',\n      520600: '铜仁市',\n      522300: '黔西南布依族苗族自治州',\n      522600: '黔东南苗族侗族自治州',\n      522700: '黔南布依族苗族自治州'\n    },\n    520100: {\n      520102: '南明区',\n      520103: '云岩区',\n      520111: '花溪区',\n      520112: '乌当区',\n      520113: '白云区',\n      520115: '观山湖区',\n      520121: '开阳县',\n      520122: '息烽县',\n      520123: '修文县',\n      520181: '清镇市'\n    },\n    520200: {\n      520201: '钟山区',\n      520203: '六枝特区',\n      520221: '水城县',\n      520222: '盘县'\n    },\n    520300: {\n      520302: '红花岗区',\n      520303: '汇川区',\n      520321: '遵义县',\n      520322: '桐梓县',\n      520323: '绥阳县',\n      520324: '正安县',\n      520325: '道真仡佬族苗族自治县',\n      520326: '务川仡佬族苗族自治县',\n      520327: '凤冈县',\n      520328: '湄潭县',\n      520329: '余庆县',\n      520330: '习水县',\n      520381: '赤水市',\n      520382: '仁怀市'\n    },\n    520400: {\n      520402: '西秀区',\n      520403: '平坝区',\n      520422: '普定县',\n      520423: '镇宁布依族苗族自治县',\n      520424: '关岭布依族苗族自治县',\n      520425: '紫云苗族布依族自治县'\n    },\n    520500: {\n      520502: '七星关区',\n      520521: '大方县',\n      520522: '黔西县',\n      520523: '金沙县',\n      520524: '织金县',\n      520525: '纳雍县',\n      520526: '威宁彝族回族苗族自治县',\n      520527: '赫章县'\n    },\n    520600: {\n      520602: '碧江区',\n      520603: '万山区',\n      520621: '江口县',\n      520622: '玉屏侗族自治县',\n      520623: '石阡县',\n      520624: '思南县',\n      520625: '印江土家族苗族自治县',\n      520626: '德江县',\n      520627: '沿河土家族自治县',\n      520628: '松桃苗族自治县'\n    },\n    522300: {\n      522301: '兴义市',\n      522322: '兴仁县',\n      522323: '普安县',\n      522324: '晴隆县',\n      522325: '贞丰县',\n      522326: '望谟县',\n      522327: '册亨县',\n      522328: '安龙县'\n    },\n    522600: {\n      522601: '凯里市',\n      522622: '黄平县',\n      522623: '施秉县',\n      522624: '三穗县',\n      522625: '镇远县',\n      522626: '岑巩县',\n      522627: '天柱县',\n      522628: '锦屏县',\n      522629: '剑河县',\n      522630: '台江县',\n      522631: '黎平县',\n      522632: '榕江县',\n      522633: '从江县',\n      522634: '雷山县',\n      522635: '麻江县',\n      522636: '丹寨县'\n    },\n    522700: {\n      522701: '都匀市',\n      522702: '福泉市',\n      522722: '荔波县',\n      522723: '贵定县',\n      522725: '瓮安县',\n      522726: '独山县',\n      522727: '平塘县',\n      522728: '罗甸县',\n      522729: '长顺县',\n      522730: '龙里县',\n      522731: '惠水县',\n      522732: '三都水族自治县'\n    },\n    530000: {\n      530100: '昆明市',\n      530300: '曲靖市',\n      530400: '玉溪市',\n      530500: '保山市',\n      530600: '昭通市',\n      530700: '丽江市',\n      530800: '普洱市',\n      530900: '临沧市',\n      532300: '楚雄彝族自治州',\n      532500: '红河哈尼族彝族自治州',\n      532600: '文山壮族苗族自治州',\n      532800: '西双版纳傣族自治州',\n      532900: '大理白族自治州',\n      533100: '德宏傣族景颇族自治州',\n      533300: '怒江傈僳族自治州',\n      533400: '迪庆藏族自治州'\n    },\n    530100: {\n      530102: '五华区',\n      530103: '盘龙区',\n      530111: '官渡区',\n      530112: '西山区',\n      530113: '东川区',\n      530114: '呈贡区',\n      530122: '晋宁县',\n      530124: '富民县',\n      530125: '宜良县',\n      530126: '石林彝族自治县',\n      530127: '嵩明县',\n      530128: '禄劝彝族苗族自治县',\n      530129: '寻甸回族彝族自治县',\n      530181: '安宁市'\n    },\n    530300: {\n      530302: '麒麟区',\n      530321: '马龙县',\n      530322: '陆良县',\n      530323: '师宗县',\n      530324: '罗平县',\n      530325: '富源县',\n      530326: '会泽县',\n      530328: '沾益县',\n      530381: '宣威市'\n    },\n    530400: {\n      530402: '红塔区',\n      530403: '江川区',\n      530422: '澄江县',\n      530423: '通海县',\n      530424: '华宁县',\n      530425: '易门县',\n      530426: '峨山彝族自治县',\n      530427: '新平彝族傣族自治县',\n      530428: '元江哈尼族彝族傣族自治县'\n    },\n    530500: {\n      530502: '隆阳区',\n      530521: '施甸县',\n      530523: '龙陵县',\n      530524: '昌宁县',\n      530581: '腾冲市'\n    },\n    530600: {\n      530602: '昭阳区',\n      530621: '鲁甸县',\n      530622: '巧家县',\n      530623: '盐津县',\n      530624: '大关县',\n      530625: '永善县',\n      530626: '绥江县',\n      530627: '镇雄县',\n      530628: '彝良县',\n      530629: '威信县',\n      530630: '水富县'\n    },\n    530700: {\n      530702: '古城区',\n      530721: '玉龙纳西族自治县',\n      530722: '永胜县',\n      530723: '华坪县',\n      530724: '宁蒗彝族自治县'\n    },\n    530800: {\n      530802: '思茅区',\n      530821: '宁洱哈尼族彝族自治县',\n      530822: '墨江哈尼族自治县',\n      530823: '景东彝族自治县',\n      530824: '景谷傣族彝族自治县',\n      530825: '镇沅彝族哈尼族拉祜族自治县',\n      530826: '江城哈尼族彝族自治县',\n      530827: '孟连傣族拉祜族佤族自治县',\n      530828: '澜沧拉祜族自治县',\n      530829: '西盟佤族自治县'\n    },\n    530900: {\n      530902: '临翔区',\n      530921: '凤庆县',\n      530922: '云县',\n      530923: '永德县',\n      530924: '镇康县',\n      530925: '双江拉祜族佤族布朗族傣族自治县',\n      530926: '耿马傣族佤族自治县',\n      530927: '沧源佤族自治县'\n    },\n    532300: {\n      532301: '楚雄市',\n      532322: '双柏县',\n      532323: '牟定县',\n      532324: '南华县',\n      532325: '姚安县',\n      532326: '大姚县',\n      532327: '永仁县',\n      532328: '元谋县',\n      532329: '武定县',\n      532331: '禄丰县'\n    },\n    532500: {\n      532501: '个旧市',\n      532502: '开远市',\n      532503: '蒙自市',\n      532504: '弥勒市',\n      532523: '屏边苗族自治县',\n      532524: '建水县',\n      532525: '石屏县',\n      532527: '泸西县',\n      532528: '元阳县',\n      532529: '红河县',\n      532530: '金平苗族瑶族傣族自治县',\n      532531: '绿春县',\n      532532: '河口瑶族自治县'\n    },\n    532600: {\n      532601: '文山市',\n      532622: '砚山县',\n      532623: '西畴县',\n      532624: '麻栗坡县',\n      532625: '马关县',\n      532626: '丘北县',\n      532627: '广南县',\n      532628: '富宁县'\n    },\n    532800: {\n      532801: '景洪市',\n      532822: '勐海县',\n      532823: '勐腊县'\n    },\n    532900: {\n      532901: '大理市',\n      532922: '漾濞彝族自治县',\n      532923: '祥云县',\n      532924: '宾川县',\n      532925: '弥渡县',\n      532926: '南涧彝族自治县',\n      532927: '巍山彝族回族自治县',\n      532928: '永平县',\n      532929: '云龙县',\n      532930: '洱源县',\n      532931: '剑川县',\n      532932: '鹤庆县'\n    },\n    533100: {\n      533102: '瑞丽市',\n      533103: '芒市',\n      533122: '梁河县',\n      533123: '盈江县',\n      533124: '陇川县'\n    },\n    533300: {\n      533321: '泸水县',\n      533323: '福贡县',\n      533324: '贡山独龙族怒族自治县',\n      533325: '兰坪白族普米族自治县'\n    },\n    533400: {\n      533401: '香格里拉市',\n      533422: '德钦县',\n      533423: '维西傈僳族自治县'\n    },\n    540000: {\n      540100: '拉萨市',\n      540200: '日喀则市',\n      540300: '昌都市',\n      540400: '林芝市',\n      542200: '山南地区',\n      542400: '那曲地区',\n      542500: '阿里地区'\n    },\n    540100: {\n      540102: '城关区',\n      540103: '堆龙德庆区',\n      540121: '林周县',\n      540122: '当雄县',\n      540123: '尼木县',\n      540124: '曲水县',\n      540126: '达孜县',\n      540127: '墨竹工卡县'\n    },\n    540200: {\n      540202: '桑珠孜区',\n      540221: '南木林县',\n      540222: '江孜县',\n      540223: '定日县',\n      540224: '萨迦县',\n      540225: '拉孜县',\n      540226: '昂仁县',\n      540227: '谢通门县',\n      540228: '白朗县',\n      540229: '仁布县',\n      540230: '康马县',\n      540231: '定结县',\n      540232: '仲巴县',\n      540233: '亚东县',\n      540234: '吉隆县',\n      540235: '聂拉木县',\n      540236: '萨嘎县',\n      540237: '岗巴县'\n    },\n    540300: {\n      540302: '卡若区',\n      540321: '江达县',\n      540322: '贡觉县',\n      540323: '类乌齐县',\n      540324: '丁青县',\n      540325: '察雅县',\n      540326: '八宿县',\n      540327: '左贡县',\n      540328: '芒康县',\n      540329: '洛隆县',\n      540330: '边坝县'\n    },\n    540400: {\n      540402: '巴宜区',\n      540421: '工布江达县',\n      540422: '米林县',\n      540423: '墨脱县',\n      540424: '波密县',\n      540425: '察隅县',\n      540426: '朗县'\n    },\n    542200: {\n      542221: '乃东县',\n      542222: '扎囊县',\n      542223: '贡嘎县',\n      542224: '桑日县',\n      542225: '琼结县',\n      542226: '曲松县',\n      542227: '措美县',\n      542228: '洛扎县',\n      542229: '加查县',\n      542231: '隆子县',\n      542232: '错那县',\n      542233: '浪卡子县'\n    },\n    542400: {\n      542421: '那曲县',\n      542422: '嘉黎县',\n      542423: '比如县',\n      542424: '聂荣县',\n      542425: '安多县',\n      542426: '申扎县',\n      542427: '索县',\n      542428: '班戈县',\n      542429: '巴青县',\n      542430: '尼玛县',\n      542431: '双湖县'\n    },\n    542500: {\n      542521: '普兰县',\n      542522: '札达县',\n      542523: '噶尔县',\n      542524: '日土县',\n      542525: '革吉县',\n      542526: '改则县',\n      542527: '措勤县'\n    },\n    610000: {\n      610100: '西安市',\n      610200: '铜川市',\n      610300: '宝鸡市',\n      610400: '咸阳市',\n      610500: '渭南市',\n      610600: '延安市',\n      610700: '汉中市',\n      610800: '榆林市',\n      610900: '安康市',\n      611000: '商洛市'\n    },\n    610100: {\n      610102: '新城区',\n      610103: '碑林区',\n      610104: '莲湖区',\n      610111: '灞桥区',\n      610112: '未央区',\n      610113: '雁塔区',\n      610114: '阎良区',\n      610115: '临潼区',\n      610116: '长安区',\n      610117: '高陵区',\n      610122: '蓝田县',\n      610124: '周至县',\n      610125: '户县'\n    },\n    610200: {\n      610202: '王益区',\n      610203: '印台区',\n      610204: '耀州区',\n      610222: '宜君县'\n    },\n    610300: {\n      610302: '渭滨区',\n      610303: '金台区',\n      610304: '陈仓区',\n      610322: '凤翔县',\n      610323: '岐山县',\n      610324: '扶风县',\n      610326: '眉县',\n      610327: '陇县',\n      610328: '千阳县',\n      610329: '麟游县',\n      610330: '凤县',\n      610331: '太白县'\n    },\n    610400: {\n      610402: '秦都区',\n      610403: '杨陵区',\n      610404: '渭城区',\n      610422: '三原县',\n      610423: '泾阳县',\n      610424: '乾县',\n      610425: '礼泉县',\n      610426: '永寿县',\n      610427: '彬县',\n      610428: '长武县',\n      610429: '旬邑县',\n      610430: '淳化县',\n      610431: '武功县',\n      610481: '兴平市'\n    },\n    610500: {\n      610502: '临渭区',\n      610503: '华州区',\n      610522: '潼关县',\n      610523: '大荔县',\n      610524: '合阳县',\n      610525: '澄城县',\n      610526: '蒲城县',\n      610527: '白水县',\n      610528: '富平县',\n      610581: '韩城市',\n      610582: '华阴市'\n    },\n    610600: {\n      610602: '宝塔区',\n      610621: '延长县',\n      610622: '延川县',\n      610623: '子长县',\n      610624: '安塞县',\n      610625: '志丹县',\n      610626: '吴起县',\n      610627: '甘泉县',\n      610628: '富县',\n      610629: '洛川县',\n      610630: '宜川县',\n      610631: '黄龙县',\n      610632: '黄陵县'\n    },\n    610700: {\n      610702: '汉台区',\n      610721: '南郑县',\n      610722: '城固县',\n      610723: '洋县',\n      610724: '西乡县',\n      610725: '勉县',\n      610726: '宁强县',\n      610727: '略阳县',\n      610728: '镇巴县',\n      610729: '留坝县',\n      610730: '佛坪县'\n    },\n    610800: {\n      610802: '榆阳区',\n      610803: '横山区',\n      610821: '神木县',\n      610822: '府谷县',\n      610824: '靖边县',\n      610825: '定边县',\n      610826: '绥德县',\n      610827: '米脂县',\n      610828: '佳县',\n      610829: '吴堡县',\n      610830: '清涧县',\n      610831: '子洲县'\n    },\n    610900: {\n      610902: '汉滨区',\n      610921: '汉阴县',\n      610922: '石泉县',\n      610923: '宁陕县',\n      610924: '紫阳县',\n      610925: '岚皋县',\n      610926: '平利县',\n      610927: '镇坪县',\n      610928: '旬阳县',\n      610929: '白河县'\n    },\n    611000: {\n      611002: '商州区',\n      611021: '洛南县',\n      611022: '丹凤县',\n      611023: '商南县',\n      611024: '山阳县',\n      611025: '镇安县',\n      611026: '柞水县'\n    },\n    620000: {\n      620100: '兰州市',\n      620200: '嘉峪关市',\n      620300: '金昌市',\n      620400: '白银市',\n      620500: '天水市',\n      620600: '武威市',\n      620700: '张掖市',\n      620800: '平凉市',\n      620900: '酒泉市',\n      621000: '庆阳市',\n      621100: '定西市',\n      621200: '陇南市',\n      622900: '临夏回族自治州',\n      623000: '甘南藏族自治州'\n    },\n    620100: {\n      620102: '城关区',\n      620103: '七里河区',\n      620104: '西固区',\n      620105: '安宁区',\n      620111: '红古区',\n      620121: '永登县',\n      620122: '皋兰县',\n      620123: '榆中县'\n    },\n    620300: {\n      620302: '金川区',\n      620321: '永昌县'\n    },\n    620400: {\n      620402: '白银区',\n      620403: '平川区',\n      620421: '靖远县',\n      620422: '会宁县',\n      620423: '景泰县'\n    },\n    620500: {\n      620502: '秦州区',\n      620503: '麦积区',\n      620521: '清水县',\n      620522: '秦安县',\n      620523: '甘谷县',\n      620524: '武山县',\n      620525: '张家川回族自治县'\n    },\n    620600: {\n      620602: '凉州区',\n      620621: '民勤县',\n      620622: '古浪县',\n      620623: '天祝藏族自治县'\n    },\n    620700: {\n      620702: '甘州区',\n      620721: '肃南裕固族自治县',\n      620722: '民乐县',\n      620723: '临泽县',\n      620724: '高台县',\n      620725: '山丹县'\n    },\n    620800: {\n      620802: '崆峒区',\n      620821: '泾川县',\n      620822: '灵台县',\n      620823: '崇信县',\n      620824: '华亭县',\n      620825: '庄浪县',\n      620826: '静宁县'\n    },\n    620900: {\n      620902: '肃州区',\n      620921: '金塔县',\n      620922: '瓜州县',\n      620923: '肃北蒙古族自治县',\n      620924: '阿克塞哈萨克族自治县',\n      620981: '玉门市',\n      620982: '敦煌市'\n    },\n    621000: {\n      621002: '西峰区',\n      621021: '庆城县',\n      621022: '环县',\n      621023: '华池县',\n      621024: '合水县',\n      621025: '正宁县',\n      621026: '宁县',\n      621027: '镇原县'\n    },\n    621100: {\n      621102: '安定区',\n      621121: '通渭县',\n      621122: '陇西县',\n      621123: '渭源县',\n      621124: '临洮县',\n      621125: '漳县',\n      621126: '岷县'\n    },\n    621200: {\n      621202: '武都区',\n      621221: '成县',\n      621222: '文县',\n      621223: '宕昌县',\n      621224: '康县',\n      621225: '西和县',\n      621226: '礼县',\n      621227: '徽县',\n      621228: '两当县'\n    },\n    622900: {\n      622901: '临夏市',\n      622921: '临夏县',\n      622922: '康乐县',\n      622923: '永靖县',\n      622924: '广河县',\n      622925: '和政县',\n      622926: '东乡族自治县',\n      622927: '积石山保安族东乡族撒拉族自治县'\n    },\n    623000: {\n      623001: '合作市',\n      623021: '临潭县',\n      623022: '卓尼县',\n      623023: '舟曲县',\n      623024: '迭部县',\n      623025: '玛曲县',\n      623026: '碌曲县',\n      623027: '夏河县'\n    },\n    630000: {\n      630100: '西宁市',\n      630200: '海东市',\n      632200: '海北藏族自治州',\n      632300: '黄南藏族自治州',\n      632500: '海南藏族自治州',\n      632600: '果洛藏族自治州',\n      632700: '玉树藏族自治州',\n      632800: '海西蒙古族藏族自治州'\n    },\n    630100: {\n      630102: '城东区',\n      630103: '城中区',\n      630104: '城西区',\n      630105: '城北区',\n      630121: '大通回族土族自治县',\n      630122: '湟中县',\n      630123: '湟源县'\n    },\n    630200: {\n      630202: '乐都区',\n      630203: '平安区',\n      630222: '民和回族土族自治县',\n      630223: '互助土族自治县',\n      630224: '化隆回族自治县',\n      630225: '循化撒拉族自治县'\n    },\n    632200: {\n      632221: '门源回族自治县',\n      632222: '祁连县',\n      632223: '海晏县',\n      632224: '刚察县'\n    },\n    632300: {\n      632321: '同仁县',\n      632322: '尖扎县',\n      632323: '泽库县',\n      632324: '河南蒙古族自治县'\n    },\n    632500: {\n      632521: '共和县',\n      632522: '同德县',\n      632523: '贵德县',\n      632524: '兴海县',\n      632525: '贵南县'\n    },\n    632600: {\n      632621: '玛沁县',\n      632622: '班玛县',\n      632623: '甘德县',\n      632624: '达日县',\n      632625: '久治县',\n      632626: '玛多县'\n    },\n    632700: {\n      632701: '玉树市',\n      632722: '杂多县',\n      632723: '称多县',\n      632724: '治多县',\n      632725: '囊谦县',\n      632726: '曲麻莱县'\n    },\n    632800: {\n      632801: '格尔木市',\n      632802: '德令哈市',\n      632821: '乌兰县',\n      632822: '都兰县',\n      632823: '天峻县',\n      632825: '海西蒙古族藏族自治州直辖'\n    },\n    640000: {\n      640100: '银川市',\n      640200: '石嘴山市',\n      640300: '吴忠市',\n      640400: '固原市',\n      640500: '中卫市'\n    },\n    640100: {\n      640104: '兴庆区',\n      640105: '西夏区',\n      640106: '金凤区',\n      640121: '永宁县',\n      640122: '贺兰县',\n      640181: '灵武市'\n    },\n    640200: {\n      640202: '大武口区',\n      640205: '惠农区',\n      640221: '平罗县'\n    },\n    640300: {\n      640302: '利通区',\n      640303: '红寺堡区',\n      640323: '盐池县',\n      640324: '同心县',\n      640381: '青铜峡市'\n    },\n    640400: {\n      640402: '原州区',\n      640422: '西吉县',\n      640423: '隆德县',\n      640424: '泾源县',\n      640425: '彭阳县'\n    },\n    640500: {\n      640502: '沙坡头区',\n      640521: '中宁县',\n      640522: '海原县'\n    },\n    650000: {\n      650100: '乌鲁木齐市',\n      650200: '克拉玛依市',\n      650400: '吐鲁番市',\n      652200: '哈密地区',\n      652300: '昌吉回族自治州',\n      652700: '博尔塔拉蒙古自治州',\n      652800: '巴音郭楞蒙古自治州',\n      652900: '阿克苏地区',\n      653000: '克孜勒苏柯尔克孜自治州',\n      653100: '喀什地区',\n      653200: '和田地区',\n      654000: '伊犁哈萨克自治州',\n      654200: '塔城地区',\n      654300: '阿勒泰地区',\n      659001: '石河子市',\n      659002: '阿拉尔市',\n      659003: '图木舒克市',\n      659004: '五家渠市',\n      659005: '北屯市',\n      659006: '铁门关市',\n      659007: '双河市',\n      659008: '可克达拉市'\n    },\n    650100: {\n      650102: '天山区',\n      650103: '沙依巴克区',\n      650104: '新市区',\n      650105: '水磨沟区',\n      650106: '头屯河区',\n      650107: '达坂城区',\n      650109: '米东区',\n      650121: '乌鲁木齐县'\n    },\n    650200: {\n      650202: '独山子区',\n      650203: '克拉玛依区',\n      650204: '白碱滩区',\n      650205: '乌尔禾区'\n    },\n    650400: {\n      650402: '高昌区',\n      650421: '鄯善县',\n      650422: '托克逊县'\n    },\n    652200: {\n      652201: '哈密市',\n      652222: '巴里坤哈萨克自治县',\n      652223: '伊吾县'\n    },\n    652300: {\n      652301: '昌吉市',\n      652302: '阜康市',\n      652323: '呼图壁县',\n      652324: '玛纳斯县',\n      652325: '奇台县',\n      652327: '吉木萨尔县',\n      652328: '木垒哈萨克自治县'\n    },\n    652700: {\n      652701: '博乐市',\n      652702: '阿拉山口市',\n      652722: '精河县',\n      652723: '温泉县'\n    },\n    652800: {\n      652801: '库尔勒市',\n      652822: '轮台县',\n      652823: '尉犁县',\n      652824: '若羌县',\n      652825: '且末县',\n      652826: '焉耆回族自治县',\n      652827: '和静县',\n      652828: '和硕县',\n      652829: '博湖县'\n    },\n    652900: {\n      652901: '阿克苏市',\n      652922: '温宿县',\n      652923: '库车县',\n      652924: '沙雅县',\n      652925: '新和县',\n      652926: '拜城县',\n      652927: '乌什县',\n      652928: '阿瓦提县',\n      652929: '柯坪县'\n    },\n    653000: {\n      653001: '阿图什市',\n      653022: '阿克陶县',\n      653023: '阿合奇县',\n      653024: '乌恰县'\n    },\n    653100: {\n      653101: '喀什市',\n      653121: '疏附县',\n      653122: '疏勒县',\n      653123: '英吉沙县',\n      653124: '泽普县',\n      653125: '莎车县',\n      653126: '叶城县',\n      653127: '麦盖提县',\n      653128: '岳普湖县',\n      653129: '伽师县',\n      653130: '巴楚县',\n      653131: '塔什库尔干塔吉克自治县'\n    },\n    653200: {\n      653201: '和田市',\n      653221: '和田县',\n      653222: '墨玉县',\n      653223: '皮山县',\n      653224: '洛浦县',\n      653225: '策勒县',\n      653226: '于田县',\n      653227: '民丰县'\n    },\n    654000: {\n      654002: '伊宁市',\n      654003: '奎屯市',\n      654004: '霍尔果斯市',\n      654021: '伊宁县',\n      654022: '察布查尔锡伯自治县',\n      654023: '霍城县',\n      654024: '巩留县',\n      654025: '新源县',\n      654026: '昭苏县',\n      654027: '特克斯县',\n      654028: '尼勒克县'\n    },\n    654200: {\n      654201: '塔城市',\n      654202: '乌苏市',\n      654221: '额敏县',\n      654223: '沙湾县',\n      654224: '托里县',\n      654225: '裕民县',\n      654226: '和布克赛尔蒙古自治县'\n    },\n    654300: {\n      654301: '阿勒泰市',\n      654321: '布尔津县',\n      654322: '富蕴县',\n      654323: '福海县',\n      654324: '哈巴河县',\n      654325: '青河县',\n      654326: '吉木乃县'\n    },\n    810000: {\n      810001: '中西区',\n      810002: '湾仔区',\n      810003: '东区',\n      810004: '南区',\n      810005: '油尖旺区',\n      810006: '深水埗区',\n      810007: '九龙城区',\n      810008: '黄大仙区',\n      810009: '观塘区',\n      810010: '荃湾区',\n      810011: '屯门区',\n      810012: '元朗区',\n      810013: '北区',\n      810014: '大埔区',\n      810015: '西贡区',\n      810016: '沙田区',\n      810017: '葵青区',\n      810018: '离岛区'\n    },\n    820000: {\n      820001: '花地玛堂区',\n      820002: '花王堂区',\n      820003: '望德堂区',\n      820004: '大堂区',\n      820005: '风顺堂区',\n      820006: '嘉模堂区',\n      820007: '路凼填海区',\n      820008: '圣方济各堂区'\n    }\n  };\n\n  if (typeof window !== 'undefined') {\n    window.ChineseDistricts = ChineseDistricts;\n  }\n\n  return ChineseDistricts;\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/citys/js/distpicker.js",
    "content": "/*!\n * Distpicker v1.0.4\n * https://github.com/fengyuanchen/distpicker\n *\n * Copyright (c) 2014-2016 Fengyuan Chen\n * Released under the MIT license\n *\n * Date: 2016-06-01T15:05:52.606Z\n */\n\n(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as anonymous module.\n    define(['jquery', 'ChineseDistricts'], factory);\n  } else if (typeof exports === 'object') {\n    // Node / CommonJS\n    factory(require('jquery'), require('ChineseDistricts'));\n  } else {\n    // Browser globals.\n    factory(jQuery, ChineseDistricts);\n  }\n})(function ($, ChineseDistricts) {\n\n  'use strict';\n\n  if (typeof ChineseDistricts === 'undefined') {\n    throw new Error('The file \"distpicker.data.js\" must be included first!');\n  }\n\n  var NAMESPACE = 'distpicker';\n  var EVENT_CHANGE = 'change.' + NAMESPACE;\n  var PROVINCE = 'province';\n  var CIRY = 'city';\n  var DISTRICT = 'district';\n\n  function Distpicker(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, Distpicker.DEFAULTS, $.isPlainObject(options) && options);\n    this.placeholders = $.extend({}, Distpicker.DEFAULTS);\n    this.active = false;\n    this.init();\n  }\n\n  Distpicker.prototype = {\n    constructor: Distpicker,\n\n    init: function () {\n      var options = this.options;\n      var $select = this.$element.find('select');\n      var length = $select.length;\n      var data = {};\n\n      $select.each(function () {\n        $.extend(data, $(this).data());\n      });\n\n      $.each([PROVINCE, CIRY, DISTRICT], $.proxy(function (i, type) {\n        if (data[type]) {\n          options[type] = data[type];\n          this['$' + type] = $select.filter('[data-' + type + ']');\n        } else {\n          this['$' + type] = length > i ? $select.eq(i) : null;\n        }\n      }, this));\n\n      this.bind();\n\n      // Reset all the selects (after event binding)\n      this.reset();\n\n      this.active = true;\n    },\n\n    bind: function () {\n      if (this.$province) {\n        this.$province.on(EVENT_CHANGE, (this._changeProvince = $.proxy(function () {\n          this.output(CIRY);\n          this.output(DISTRICT);\n        }, this)));\n      }\n\n      if (this.$city) {\n        this.$city.on(EVENT_CHANGE, (this._changeCity = $.proxy(function () {\n          this.output(DISTRICT);\n        }, this)));\n      }\n    },\n\n    unbind: function () {\n      if (this.$province) {\n        this.$province.off(EVENT_CHANGE, this._changeProvince);\n      }\n\n      if (this.$city) {\n        this.$city.off(EVENT_CHANGE, this._changeCity);\n      }\n    },\n\n    output: function (type) {\n      var options = this.options;\n      var placeholders = this.placeholders;\n      var $select = this['$' + type];\n      var districts = {};\n      var data = [];\n      var code;\n      var matched;\n      var value;\n\n      if (!$select || !$select.length) {\n        return;\n      }\n\n      value = options[type];\n\n      code = (\n        type === PROVINCE ? 86 :\n        type === CIRY ? this.$province && this.$province.find(':selected').data('code') :\n        type === DISTRICT ? this.$city && this.$city.find(':selected').data('code') : code\n      );\n\n      districts = $.isNumeric(code) ? ChineseDistricts[code] : null;\n\n      if ($.isPlainObject(districts)) {\n        $.each(districts, function (code, address) {\n          var selected = address === value;\n\n          if (selected) {\n            matched = true;\n          }\n\n          data.push({\n            code: code,\n            address: address,\n            selected: selected\n          });\n        });\n      }\n\n      if (!matched) {\n        if (data.length && (options.autoSelect || options.autoselect)) {\n          data[0].selected = true;\n        }\n\n        // Save the unmatched value as a placeholder at the first output\n        if (!this.active && value) {\n          placeholders[type] = value;\n        }\n      }\n\n      // Add placeholder option\n      if (options.placeholder) {\n        data.unshift({\n          code: '',\n          address: placeholders[type],\n          selected: false\n        });\n      }\n\n      $select.html(this.getList(data));\n    },\n\n    getList: function (data) {\n      var list = [];\n\n      $.each(data, function (i, n) {\n        list.push(\n          '<option' +\n          ' value=\"' + (n.address && n.code ? n.address : '') + '\"' +\n          ' data-code=\"' + (n.code || '') + '\"' +\n          (n.selected ? ' selected' : '') +\n          '>' +\n            (n.address || '') +\n          '</option>'\n        );\n      });\n\n      return list.join('');\n    },\n\n    reset: function (deep) {\n      if (!deep) {\n        this.output(PROVINCE);\n        this.output(CIRY);\n        this.output(DISTRICT);\n      } else if (this.$province) {\n        this.$province.find(':first').prop('selected', true).trigger(EVENT_CHANGE);\n      }\n    },\n\n    destroy: function () {\n      this.unbind();\n      this.$element.removeData(NAMESPACE);\n    }\n  };\n\n  Distpicker.DEFAULTS = {\n    autoSelect: true,\n    placeholder: true,\n    province: '请选择',\n    city: '请选择',\n    district: '请选择'\n  };\n\n  Distpicker.setDefaults = function (options) {\n    $.extend(Distpicker.DEFAULTS, options);\n  };\n\n  // Save the other distpicker\n  Distpicker.other = $.fn.distpicker;\n\n  // Register as jQuery plugin\n  $.fn.distpicker = function (option) {\n    var args = [].slice.call(arguments, 1);\n\n    return this.each(function () {\n      var $this = $(this);\n      var data = $this.data(NAMESPACE);\n      var options;\n      var fn;\n\n      if (!data) {\n        if (/destroy/.test(option)) {\n          return;\n        }\n\n        options = $.extend({}, $this.data(), $.isPlainObject(option) && option);\n        $this.data(NAMESPACE, (data = new Distpicker(this, options)));\n      }\n\n      if (typeof option === 'string' && $.isFunction(fn = data[option])) {\n        fn.apply(data, args);\n      }\n    });\n  };\n\n  $.fn.distpicker.Constructor = Distpicker;\n  $.fn.distpicker.setDefaults = Distpicker.setDefaults;\n\n  // No conflict\n  $.fn.distpicker.noConflict = function () {\n    $.fn.distpicker = Distpicker.other;\n    return this;\n  };\n\n  $(function () {\n    $('[data-toggle=\"distpicker\"]').distpicker();\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/citys/js/main.js",
    "content": "$(function () {\n\n  'use strict';\n\n  var $distpicker = $('#distpicker');\n\n  $distpicker.distpicker({\n    province: '福建省',\n    city: '厦门市',\n    district: '思明区'\n  });\n\n  $('#reset').click(function () {\n    $distpicker.distpicker('reset');\n  });\n\n  $('#reset-deep').click(function () {\n    $distpicker.distpicker('reset', true);\n  });\n\n  $('#destroy').click(function () {\n    $distpicker.distpicker('destroy');\n  });\n\n  $('#distpicker1').distpicker();\n\n  $('#distpicker2').distpicker({\n    province: '---- 所在省 ----',\n    city: '---- 所在市 ----',\n    district: '---- 所在区 ----'\n  });\n\n  $('#distpicker3').distpicker({\n    province: '浙江省',\n    city: '杭州市',\n    district: '西湖区'\n  });\n\n  $('#distpicker4').distpicker({\n    placeholder: false\n  });\n\n  $('#distpicker5').distpicker({\n    autoSelect: false\n  });\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/cityselect/css/main.css",
    "content": "@charset \"utf-8\";\n/* CSS Document */\nhtml,body,div,span,h1,h2,h3,h4,h5,h6,p,pre,a,code,em,img,small,strong,sub,sup,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}\na{color:#007bc4/*#424242*/; text-decoration:none;}\na:hover{text-decoration:underline}\nol,ul{list-style:none}\ntable{border-collapse:collapse;border-spacing:0}\nbody{height:100%; font:12px/18px \"Microsoft Yahei\", Tahoma, Helvetica, Arial, Verdana, \"\\5b8b\\4f53\", sans-serif; color:#51555C; background:#FFFFFF;}\nimg{border:none}\n\n\n#main{width:980px; min-height:600px; margin:30px auto 0 auto; background:#fff; -moz-border-radius:12px;-khtml-border-radius: 12px;-webkit-border-radius: 12px; border-radius:12px;}\nh2.top_title{margin:4px 20px; padding-top:15px; padding-left:20px; padding-bottom:10px; border-bottom:1px solid #d3d3d3; font-size:18px; color:#a84c10;}\n\n#footer{height:60px;}\n#footer p{ padding:10px 2px; line-height:24px; text-align:center}\n#footer p a:hover{color:#51555C}\n#stat{display:none}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/cityselect/js/jquery.cityselect.js",
    "content": "/**\n * \n * @Description: 省市区三级联动api\n * Copyright: Copyright (c) 2016\n * \n * ==============================\n * 参数说明\n * url:省市数据josn文件路径\n * prov:默认省份\n * city:默认城市\n * dist:默认地区（县）\n * nodata:无数据状态\n * required:必选项\n * ==============================\n * \n * @author leechenxiang\n * @date 2016年6月16日 下午3:46:58\n * @version V1.0\n */\n\n(function($){\n\t$.fn.citySelect=function(settings){\n\t\tif(this.length<1){return;};\n\t\t\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\n\t\t// 默认值\n\t\tsettings=$.extend({\n\t\t\turl: hdnContextPath + \"/common/getCities\",\n\t\t\tprov:null,\n\t\t\tcity:null,\n\t\t\tdist:null,\n\t\t\tnodata:null,\n\t\t\trequired:true\n\t\t},settings);\n\n\t\tvar box_obj=this;\n\t\tvar prov_obj=box_obj.find(\".prov\");\n\t\tvar city_obj=box_obj.find(\".city\");\n\t\tvar dist_obj=box_obj.find(\".dist\");\n\t\tvar prov_val=settings.prov;\n\t\tvar city_val=settings.city;\n\t\tvar dist_val=settings.dist;\n\t\tvar select_prehtml=(settings.required) ? \"\" : \"<option value=''>请选择</option>\";\n\t\tvar city_json;\n\n\t\t// 赋值市级函数\n\t\tvar cityStart=function(){\n\t\t\tvar prov_id=prov_obj.get(0).selectedIndex;\n\t\t\tif(!settings.required){\n\t\t\t\tprov_id--;\n\t\t\t};\n\t\t\tcity_obj.empty().attr(\"disabled\",true);\n\t\t\tdist_obj.empty().attr(\"disabled\",true);\n\n\t\t\tif(prov_id<0||typeof(city_json.citylist[prov_id].c)==\"undefined\"){\n\t\t\t\tif(settings.nodata==\"none\"){\n\t\t\t\t\tcity_obj.css(\"display\",\"none\");\n\t\t\t\t\tdist_obj.css(\"display\",\"none\");\n\t\t\t\t}else if(settings.nodata==\"hidden\"){\n\t\t\t\t\tcity_obj.css(\"visibility\",\"hidden\");\n\t\t\t\t\tdist_obj.css(\"visibility\",\"hidden\");\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t};\n\t\t\t\n\t\t\t// 遍历赋值市级下拉列表\n\t\t\ttemp_html=select_prehtml;\n\t\t\t$.each(city_json.citylist[prov_id].c,function(i,city){\n\t\t\t\ttemp_html+=\"<option value='\"+city.n+\"'>\"+city.n+\"</option>\";\n\t\t\t});\n\t\t\tcity_obj.html(temp_html).attr(\"disabled\",false).css({\"display\":\"\",\"visibility\":\"\"});\n\t\t\tdistStart();\n\t\t};\n\n\t\t// 赋值地区（县）函数\n\t\tvar distStart=function(){\n\t\t\tvar prov_id=prov_obj.get(0).selectedIndex;\n\t\t\tvar city_id=city_obj.get(0).selectedIndex;\n\t\t\tif(!settings.required){\n\t\t\t\tprov_id--;\n\t\t\t\tcity_id--;\n\t\t\t};\n\t\t\tdist_obj.empty().attr(\"disabled\",true);\n\n\t\t\tif(prov_id<0||city_id<0||typeof(city_json.citylist[prov_id].c[city_id].a)==\"undefined\"){\n\t\t\t\tif(settings.nodata==\"none\"){\n\t\t\t\t\tdist_obj.css(\"display\",\"none\");\n\t\t\t\t}else if(settings.nodata==\"hidden\"){\n\t\t\t\t\tdist_obj.css(\"visibility\",\"hidden\");\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\t};\n\t\t\t\n\t\t\t// 遍历赋值市级下拉列表\n\t\t\ttemp_html=select_prehtml;\n\t\t\t$.each(city_json.citylist[prov_id].c[city_id].a,function(i,dist){\n\t\t\t\ttemp_html+=\"<option value='\"+dist.s+\"'>\"+dist.s+\"</option>\";\n\t\t\t});\n\t\t\tdist_obj.html(temp_html).attr(\"disabled\",false).css({\"display\":\"\",\"visibility\":\"\"});\n\t\t};\n\n\t\tvar init=function(){\n\t\t\t// 遍历赋值省份下拉列表\n\t\t\ttemp_html=select_prehtml;\n\t\t\t$.each(city_json.citylist,function(i,prov){\n\t\t\t\ttemp_html+=\"<option value='\"+prov.p+\"'>\"+prov.p+\"</option>\";\n\t\t\t});\n\t\t\tprov_obj.html(temp_html);\n\n\t\t\t// 若有传入省份与市级的值，则选中。（setTimeout为兼容IE6而设置）\n\t\t\tsetTimeout(function(){\n\t\t\t\tif(settings.prov!=null){\n\t\t\t\t\tprov_obj.val(settings.prov);\n\t\t\t\t\tcityStart();\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif(settings.city!=null){\n\t\t\t\t\t\t\tcity_obj.val(settings.city);\n\t\t\t\t\t\t\tdistStart();\n\t\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t\tif(settings.dist!=null){\n\t\t\t\t\t\t\t\t\tdist_obj.val(settings.dist);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},1);\n\t\t\t\t\t\t};\n\t\t\t\t\t},1);\n\t\t\t\t};\n\t\t\t},1);\n\n\t\t\t// 选择省份时发生事件\n\t\t\tprov_obj.bind(\"change\",function(){\n\t\t\t\tcityStart();\n\t\t\t});\n\n\t\t\t// 选择市级时发生事件\n\t\t\tcity_obj.bind(\"change\",function(){\n\t\t\t\tdistStart();\n\t\t\t});\n\t\t};\n\n\t\t// 设置省市json数据\n\t\tif(typeof(settings.url)==\"string\"){\n\t\t\t$.getJSON(settings.url,function(json){\n\t\t\t\tcity_json=json;\n\t\t\t\tinit();\n\t\t\t});\n\t\t}else{\n\t\t\tcity_json=settings.url;\n\t\t\tinit();\n\t\t};\n\t};\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/cityselect/js/jquery.js",
    "content": "/*!\n * jQuery JavaScript Library v1.4.2\n * http://jquery.com/\n *\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n * Copyright 2010, The Dojo Foundation\n * Released under the MIT, BSD, and GPL Licenses.\n *\n * Date: Sat Feb 13 22:33:48 2010 -0500\n */\n(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll(\"left\")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:\"script\"}):c.globalEval(b.text||b.textContent||b.innerHTML||\"\");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b===\"object\"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?\ne(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,\"events\");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type===\"click\")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,\"\")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=\nj.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType===\"mouseenter\"||i.preType===\"mouseleave\")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return\"live.\"+(a&&a!==\"*\"?a+\".\":\"\")+b.replace(/\\./g,\"`\").replace(/ /g,\n\"&\")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]===\"string\"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=\ntrue;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return\"scrollTo\"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\\w\\W]+>)[^>]*$|^#([\\w-]+)$/,Ua=/^.[^:#\\[\\.,]*$/,Va=/\\S/,\nWa=/^(\\s|\\u00A0)+|(\\s|\\u00A0)+$/g,Xa=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a===\"body\"&&!b){this.context=s;this[0]=s.body;this.selector=\"body\";this.length=1;return this}if(typeof a===\"string\")if((d=Ta.exec(a))&&\n(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,\na)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:\"\",jquery:\"1.4.2\",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===\n\"find\")f.selector=this.selector+(this.selector?\" \":\"\")+d;else if(b)f.selector=this.selector+\".\"+b+\"(\"+d+\")\";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),\"slice\",R.call(arguments).join(\",\"))},map:function(a){return this.pushStack(c.map(this,\nfunction(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a===\"boolean\"){f=a;a=arguments[1]||{};b=2}if(typeof a!==\"object\"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||\nc.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler(\"ready\")}},bindReady:function(){if(!xa){xa=true;if(s.readyState===\"complete\")return c.ready();if(s.addEventListener){s.addEventListener(\"DOMContentLoaded\",\nL,false);A.addEventListener(\"load\",c.ready,false)}else if(s.attachEvent){s.attachEvent(\"onreadystatechange\",L);A.attachEvent(\"onload\",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)===\"[object Function]\"},isArray:function(a){return $.call(a)===\"[object Array]\"},isPlainObject:function(a){if(!a||$.call(a)!==\"[object Object]\"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,\"constructor\")&&!aa.call(a.constructor.prototype,\n\"isPrototypeOf\"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!==\"string\"||!a)return null;a=c.trim(a);if(/^[\\],:{}\\s]*$/.test(a.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,\"@\").replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\"]\").replace(/(?:^|:|,)(?:\\s*\\[)+/g,\"\")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function(\"return \"+\na))();else c.error(\"Invalid JSON: \"+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName(\"head\")[0]||s.documentElement,d=s.createElement(\"script\");d.type=\"text/javascript\";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],\nd)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||\"\").replace(Wa,\"\")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a===\"string\"||c.isFunction(a)||typeof a!==\"function\"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===\na)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length===\"number\")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b===\"string\"){d=a;a=d[b];b=w}else if(b&&\n!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \\/]([\\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \\/]([\\w.]+)/.exec(a)||/(msie) ([\\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\\w.]+))?/.exec(a)||[];return{browser:a[1]||\"\",version:a[2]||\"0\"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=\ntrue;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener(\"DOMContentLoaded\",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState===\"complete\"){s.detachEvent(\"onreadystatechange\",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement(\"script\"),d=s.createElement(\"div\"),f=\"script\"+J();d.style.display=\"none\";d.innerHTML=\"   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>\";\nvar e=d.getElementsByTagName(\"*\"),j=d.getElementsByTagName(\"a\")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName(\"tbody\").length,htmlSerialize:!!d.getElementsByTagName(\"link\").length,style:/red/.test(j.getAttribute(\"style\")),hrefNormalized:j.getAttribute(\"href\")===\"/a\",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName(\"input\")[0].value===\"on\",optSelected:s.createElement(\"select\").appendChild(s.createElement(\"option\")).selected,\nparentNode:d.removeChild(d.appendChild(s.createElement(\"div\"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type=\"text/javascript\";try{b.appendChild(s.createTextNode(\"window.\"+f+\"=1;\"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent(\"onclick\",function k(){c.support.noCloneEvent=\nfalse;d.detachEvent(\"onclick\",k)});d.cloneNode(true).fireEvent(\"onclick\")}d=s.createElement(\"div\");d.innerHTML=\"<input type='radio' name='radiotest' checked='checked'/>\";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement(\"div\");k.style.width=k.style.paddingLeft=\"1px\";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display=\"none\"});a=function(k){var n=\ns.createElement(\"div\");k=\"on\"+k;var r=k in n;if(!r){n.setAttribute(k,\"return;\");r=typeof n[k]===\"function\"}return r};c.support.submitBubbles=a(\"submit\");c.support.changeBubbles=a(\"change\");a=b=d=e=j=null}})();c.props={\"for\":\"htmlFor\",\"class\":\"className\",readonly:\"readOnly\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",rowspan:\"rowSpan\",colspan:\"colSpan\",tabindex:\"tabIndex\",usemap:\"useMap\",frameborder:\"frameBorder\"};var G=\"jQuery\"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,\napplet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b===\"string\"&&d===w)return null;f||(f=++Ya);if(typeof b===\"object\"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b===\"string\"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];\nelse a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a===\"undefined\"&&this.length)return c.data(this[0]);else if(typeof a===\"object\")return this.each(function(){c.data(this,a)});var d=a.split(\".\");d[1]=d[1]?\".\"+d[1]:\"\";if(b===w){var f=this.triggerHandler(\"getData\"+d[1]+\"!\",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger(\"setData\"+d[1]+\"!\",[d[0],b]).each(function(){c.data(this,\na,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||\"fx\")+\"queue\";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||\"fx\";var d=c.queue(a,b),f=d.shift();if(f===\"inprogress\")f=d.shift();if(f){b===\"fx\"&&d.unshift(\"inprogress\");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!==\"string\"){b=a;a=\"fx\"}if(b===\nw)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a===\"fx\"&&d[0]!==\"inprogress\"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||\"fx\";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||\"fx\",[])}});var Aa=/[\\n\\t]/g,ca=/\\s+/,Za=/\\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,\ncb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,\"\");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr(\"class\")))});if(a&&typeof a===\"string\")for(var b=(a||\"\").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=\" \"+e.className+\" \",\ni=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(\" \"+b[o]+\" \")<0)i+=\" \"+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr(\"class\")))});if(a&&typeof a===\"string\"||a===w)for(var b=(a||\"\").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(\" \"+e.className+\" \").replace(Aa,\" \"),i=0,o=b.length;i<o;i++)j=j.replace(\" \"+b[i]+\" \",\n\" \");e.className=c.trim(j)}else e.className=\"\"}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b===\"boolean\";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr(\"class\"),b),b)});return this.each(function(){if(d===\"string\")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?\"addClass\":\"removeClass\"](e)}else if(d===\"undefined\"||d===\"boolean\"){this.className&&c.data(this,\"__className__\",this.className);this.className=\nthis.className||a===false?\"\":c.data(this,\"__className__\")||\"\"}})},hasClass:function(a){a=\" \"+a+\" \";for(var b=0,d=this.length;b<d;b++)if((\" \"+this[b].className+\" \").replace(Aa,\" \").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,\"option\"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,\"select\")){var d=b.selectedIndex,f=[],e=b.options;b=b.type===\"select-one\";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=\ne[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute(\"value\")===null?\"on\":b.value;return(b.value||\"\").replace(Za,\"\")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r===\"number\")r+=\"\";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,\"select\")){var u=c.makeArray(r);c(\"option\",this).each(function(){this.selected=\nc.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b===\"type\"&&ab.test(a.nodeName)&&a.parentNode&&c.error(\"type property can't be changed\");\na[b]=d}if(c.nodeName(a,\"form\")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b===\"tabIndex\")return(b=a.getAttributeNode(\"tabIndex\"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b===\"style\"){if(e)a.style.cssText=\"\"+d;return a.style.cssText}e&&a.setAttribute(b,\"\"+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\\.(.*)$/,db=function(a){return a.replace(/[^\\w\\s\\.\\|`]/g,\nfunction(b){return\"\\\\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!==\"undefined\"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(\" \");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(\".\")>-1){r=k.split(\".\");\nk=r.shift();j.namespace=r.slice(0).sort().join(\".\")}else{r=[];j.namespace=\"\"}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent(\"on\"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),\nC=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b===\"string\"&&b.charAt(0)===\".\"){b=b||\"\";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(\" \");e=b[j++];){n=e;i=e.indexOf(\".\")<0;o=[];if(!i){o=e.split(\".\");e=o.shift();k=new RegExp(\"(^|\\\\.)\"+c.map(o.slice(0).sort(),db).join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=\nnull)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a===\"object\"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf(\"!\")>=0){a.type=\ne=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,\"handle\"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d[\"on\"+e]&&d[\"on\"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&\nf)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,\"a\")&&e===\"click\",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f[\"on\"+e])f[\"on\"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f[\"on\"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(\".\")<0&&!a.exclusive;\nif(!b){d=a.type.split(\".\");a.type=d.shift();f=new RegExp(\"(^|\\\\.)\"+d.slice(0).sort().join(\"\\\\.(?:.*\\\\.)?\")+\"(\\\\.|$)\")}e=c.data(this,\"events\");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:\"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which\".split(\" \"),\nfix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||\nd&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,\"\");c.each(c.data(this,\n\"events\").live||[],function(){if(d===this.origType.replace(O,\"\"))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent(\"on\"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=\na;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,\nisImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=\n{setup:function(){if(this.nodeName.toLowerCase()!==\"form\"){c.event.add(this,\"click.specialSubmit\",function(a){var b=a.target,d=b.type;if((d===\"submit\"||d===\"image\")&&c(b).closest(\"form\").length)return na(\"submit\",this,arguments)});c.event.add(this,\"keypress.specialSubmit\",function(a){var b=a.target,d=b.type;if((d===\"text\"||d===\"password\")&&c(b).closest(\"form\").length&&a.keyCode===13)return na(\"submit\",this,arguments)})}else return false},teardown:function(){c.event.remove(this,\".specialSubmit\")}};\nif(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b===\"radio\"||b===\"checkbox\")d=a.checked;else if(b===\"select-multiple\")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join(\"-\"):\"\";else if(a.nodeName.toLowerCase()===\"select\")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,\"_change_data\");e=Fa(d);if(a.type!==\"focusout\"||d.type!==\"radio\")c.data(d,\"_change_data\",\ne);if(!(f===w||e===f))if(f!=null||e){a.type=\"change\";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d===\"radio\"||d===\"checkbox\"||b.nodeName.toLowerCase()===\"select\")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!==\"textarea\"||a.keyCode===32&&(d===\"checkbox\"||d===\"radio\")||d===\"select-multiple\")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,\n\"_change_data\",Fa(a))}},setup:function(){if(this.type===\"file\")return false;for(var a in ea)c.event.add(this,a+\".specialChange\",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,\".specialChange\");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,\nd,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each([\"bind\",\"one\"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d===\"object\"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b===\"one\"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d===\"unload\"&&b!==\"one\")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a===\"object\"&&\n!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind(\"live\"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},\ntoggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,\"lastToggle\"+a.guid)||0)%d;c.data(this,\"lastToggle\"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:\"focusin\",blur:\"focusout\",mouseenter:\"mouseover\",mouseleave:\"mouseout\"};c.each([\"live\",\"die\"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,\nu=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||\"\").split(\" \");(i=d[o++])!=null;){j=O.exec(i);k=\"\";if(j){k=j[0];i=i.replace(O,\"\")}if(i===\"hover\")d.push(\"mouseenter\"+k,\"mouseleave\"+k);else{n=i;if(i===\"focus\"||i===\"blur\"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b===\"live\"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error\".split(\" \"),\nfunction(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent(\"onunload\",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h=\"\",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];\nif(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!==\"string\"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^[\\]]*\\]|['\"][^'\"]*['\"]|[^[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,\ne=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!==\"string\")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(\"\"),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();\nt=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]===\"~\"||p[0]===\"+\")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D=\"\";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||\ng);if(j.call(y)===\"[object Array]\")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];\nfor(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!==\"\\\\\"){q[1]=(q[1]||\"\").replace(/\\\\/g,\"\");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],\"\");break}}}}m||(m=h.getElementsByTagName(\"*\"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-\n1)!==\"\\\\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],\"\");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw\"Syntax error, unrecognized expression: \"+g;};var n=k.selectors={order:[\"ID\",\"NAME\",\"TAG\"],match:{ID:/#((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)/,\nCLASS:/\\.((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)/,NAME:/\\[name=['\"]*((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)['\"]*\\]/,ATTR:/\\[\\s*((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)\\s*(?:(\\S?=)\\s*(['\"]*)(.*?)\\3|)\\s*\\]/,TAG:/^((?:[\\w\\u00c0-\\uFFFF\\*-]|\\\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\\((even|odd|[\\dn+-]*)\\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\))?(?=[^-]|$)/,PSEUDO:/:((?:[\\w\\u00c0-\\uFFFF-]|\\\\.)+)(?:\\((['\"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},leftMatch:{},attrMap:{\"class\":\"className\",\"for\":\"htmlFor\"},attrHandle:{href:function(g){return g.getAttribute(\"href\")}},\nrelative:{\"+\":function(g,h){var l=typeof h===\"string\",m=l&&!/\\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},\">\":function(g,h){var l=typeof h===\"string\";if(l&&!/\\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=\nl?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},\"\":function(g,h,l){var m=e++,q=d;if(typeof h===\"string\"&&!/\\W/.test(h)){var p=h=h.toLowerCase();q=b}q(\"parentNode\",h,m,g,p,l)},\"~\":function(g,h,l){var m=e++,q=d;if(typeof h===\"string\"&&!/\\W/.test(h)){var p=h=h.toLowerCase();q=b}q(\"previousSibling\",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!==\"undefined\"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!==\"undefined\"){var l=[];\nh=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute(\"name\")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=\" \"+g[1].replace(/\\\\/g,\"\")+\" \";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(\" \"+v.className+\" \").replace(/[\\t\\n]/g,\" \").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\\\/g,\"\")},TAG:function(g){return g[1].toLowerCase()},\nCHILD:function(g){if(g[1]===\"nth\"){var h=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.exec(g[2]===\"even\"&&\"2n\"||g[2]===\"odd\"&&\"2n+1\"||!/\\D/.test(g[2])&&\"0n+\"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\\\/g,\"\");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]===\"~=\")g[4]=\" \"+g[4]+\" \";return g},PSEUDO:function(g,h,l,m,q){if(g[1]===\"not\")if((f.exec(g[3])||\"\").length>1||/^\\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,\ng);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!==\"hidden\"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\\d/i.test(g.nodeName)},\ntext:function(g){return\"text\"===g.type},radio:function(g){return\"radio\"===g.type},checkbox:function(g){return\"checkbox\"===g.type},file:function(g){return\"file\"===g.type},password:function(g){return\"password\"===g.type},submit:function(g){return\"submit\"===g.type},image:function(g){return\"image\"===g.type},reset:function(g){return\"reset\"===g.type},button:function(g){return\"button\"===g.type||g.nodeName.toLowerCase()===\"button\"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},\nsetFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q===\"contains\")return(g.textContent||g.innerText||a([g])||\"\").indexOf(h[3])>=0;else if(q===\"not\"){h=\nh[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error(\"Syntax error, unrecognized expression: \"+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case \"only\":case \"first\":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l===\"first\")return true;m=g;case \"last\":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case \"nth\":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=\nm.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute(\"id\")===h},TAG:function(g,h){return h===\"*\"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(\" \"+(g.className||g.getAttribute(\"class\"))+\" \").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+\"\";var m=h[2];h=h[4];return g==null?m===\"!=\":m===\n\"=\"?l===h:m===\"*=\"?l.indexOf(h)>=0:m===\"~=\"?(\" \"+l+\" \").indexOf(h)>=0:!h?l&&g!==false:m===\"!=\"?l!==h:m===\"^=\"?l.indexOf(h)===0:m===\"$=\"?l.substr(l.length-h.length)===h:m===\"|=\"?l===h||l.substr(0,h.length+1)===h+\"-\":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\\[]*\\])(?![^\\(]*\\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\\r|\\n)*?)/.source+n.match[u].source.replace(/\\\\(\\d+)/g,function(g,\nh){return\"\\\\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)===\"[object Array]\")Array.prototype.push.apply(h,g);else if(typeof g.length===\"number\")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||\n!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if(\"sourceIndex\"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=\nh.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement(\"div\"),h=\"script\"+(new Date).getTime();g.innerHTML=\"<a name='\"+h+\"'/>\";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!==\"undefined\"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!==\"undefined\"&&\nq.getAttributeNode(\"id\").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!==\"undefined\"&&m.getAttributeNode(\"id\");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement(\"div\");g.appendChild(s.createComment(\"\"));if(g.getElementsByTagName(\"*\").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]===\"*\"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=\"<a href='#'></a>\";\nif(g.firstChild&&typeof g.firstChild.getAttribute!==\"undefined\"&&g.firstChild.getAttribute(\"href\")!==\"#\")n.attrHandle.href=function(h){return h.getAttribute(\"href\",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement(\"div\");h.innerHTML=\"<p class='TEST'></p>\";if(!(h.querySelectorAll&&h.querySelectorAll(\".TEST\").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();\n(function(){var g=s.createElement(\"div\");g.innerHTML=\"<div class='test e'></div><div class='test'></div>\";if(!(!g.getElementsByClassName||g.getElementsByClassName(\"e\").length===0)){g.lastChild.className=\"e\";if(g.getElementsByClassName(\"e\").length!==1){n.order.splice(1,0,\"CLASS\");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!==\"undefined\"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:\nfunction(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!==\"HTML\":false},ga=function(g,h){var l=[],m=\"\",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,\"\")}g=n.relative[g]?g+\"*\":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[\":\"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,\ngb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b===\"string\"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack(\"\",\"find\",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;\nc.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),\"not\",a)},filter:function(a){return this.pushStack(Ia(this,a,true),\"filter\",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=\n{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===\n\"string\")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a===\"string\"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,\"parentNode\")},parentsUntil:function(a,b,d){return c.dir(a,\"parentNode\",\nd)},next:function(a){return c.nth(a,2,\"nextSibling\")},prev:function(a){return c.nth(a,2,\"previousSibling\")},nextAll:function(a){return c.dir(a,\"nextSibling\")},prevAll:function(a){return c.dir(a,\"previousSibling\")},nextUntil:function(a,b,d){return c.dir(a,\"nextSibling\",d)},prevUntil:function(a,b,d){return c.dir(a,\"previousSibling\",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,\"iframe\")?\na.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f===\"string\")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(\",\"))}});c.extend({filter:function(a,b,d){if(d)a=\":not(\"+a+\")\";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===\n1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\\d+=\"(?:\\d+|null)\"/g,V=/^\\s+/,Ka=/(<([\\w:]+)[^>]*?)\\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\\w:]+)/,ib=/<tbody/i,jb=/<|&#?\\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?\na:b+\"></\"+d+\">\"},F={option:[1,\"<select multiple='multiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\"\",\"\"]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,\"div<div>\",\"</div>\"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=\nc(this);d.text(a.call(this,b,d.text()))});if(typeof a!==\"object\"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},\nwrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,\"body\")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},\nprepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,\"before\",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,\nthis.nextSibling)});else if(arguments.length){var a=this.pushStack(this,\"after\",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName(\"*\"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName(\"*\"));b.firstChild;)b.removeChild(b.firstChild);\nreturn this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement(\"div\");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,\"\").replace(/=([^=\"'>\\s]+\\/)>/g,'=\"$1\">').replace(V,\"\")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find(\"*\"),b.find(\"*\"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,\n\"\"):null;else if(typeof a===\"string\"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName(\"*\"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&\nthis[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!==\"string\")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),\"replaceWith\",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,\"table\")?u.getElementsByTagName(\"tbody\")[0]||\nu.appendChild(u.ownerDocument.createElement(\"tbody\")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i===\"string\"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===\n1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,\"tr\");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);\nreturn this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement===\"undefined\")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i===\"number\")i+=\"\";if(i){if(typeof i===\"string\"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i===\"string\"){i=i.replace(Ka,Ma);var o=(La.exec(i)||[\"\",\n\"\"])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement(\"div\");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o===\"table\"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===\"<table>\"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],\"tbody\")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=\nc.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],\"script\")&&(!e[j].type||e[j].type.toLowerCase()===\"text/javascript\"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName(\"script\"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?\nc.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\\([^)]*\\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\\d+(?:px)?$/i,nb=/^-?\\d/,ob={position:\"absolute\",visibility:\"hidden\",display:\"block\"},pb=[\"Left\",\"Right\"],qb=[\"Top\",\"Bottom\"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?\"cssFloat\":\"styleFloat\",ja=\nfunction(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e===\"number\"&&!kb.test(f))e+=\"px\";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b===\"width\"||b===\"height\")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b===\"opacity\"){if(e){f.zoom=1;b=parseInt(d,10)+\"\"===\"NaN\"?\"\":\"alpha(opacity=\"+d*100+\")\";a=f.filter||c.curCSS(a,\"filter\")||\"\";f.filter=\nNa.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf(\"opacity=\")>=0?parseFloat(Oa.exec(f.filter)[1])/100+\"\":\"\"}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b===\"width\"||b===\"height\"){var e,j=b===\"width\"?pb:qb;function i(){e=b===\"width\"?a.offsetWidth:a.offsetHeight;f!==\"border\"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,\"padding\"+this,true))||0);if(f===\"margin\")e+=parseFloat(c.curCSS(a,\"margin\"+this,true))||0;else e-=parseFloat(c.curCSS(a,\n\"border\"+this+\"Width\",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b===\"opacity\"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||\"\")?parseFloat(RegExp.$1)/100+\"\":\"\";return f===\"\"?\"1\":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b=\"float\";b=b.replace(lb,\"-$1\").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=\na.getPropertyValue(b);if(b===\"opacity\"&&f===\"\")f=\"1\"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d===\"fontSize\"?\"1em\":f||0;f=e.pixelLeft+\"px\";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=\na.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()===\"tr\";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,\"display\")===\"none\"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\\s)*?\\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\\?(&|$)/,ka=/\\?/,wb=/(\\?|&)_=.*?(&|$)/,xb=/^(\\w+:)?\\/\\/([^\\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==\n\"string\")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(\" \");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f=\"GET\";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b===\"object\"){b=c.param(b,c.ajaxSettings.traditional);f=\"POST\"}var j=this;c.ajax({url:a,type:f,dataType:\"html\",data:b,complete:function(i,o){if(o===\"success\"||o===\"notmodified\")j.html(e?c(\"<div />\").append(i.responseText.replace(tb,\"\")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},\nserialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),\nfunction(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:\"GET\",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,\"script\")},getJSON:function(a,b,d){return c.get(a,b,d,\"json\")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:\"POST\",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,\nglobal:true,type:\"GET\",contentType:\"application/x-www-form-urlencoded\",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!==\"file:\"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(a){}},accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",script:\"text/javascript, application/javascript\",json:\"application/json, text/javascript\",text:\"text/plain\",_default:\"*/*\"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&\ne.success.call(k,o,i,x);e.global&&f(\"ajaxSuccess\",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f(\"ajaxComplete\",[x,e]);e.global&&!--c.active&&c.event.trigger(\"ajaxStop\")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!==\"string\")e.data=c.param(e.data,e.traditional);if(e.dataType===\"jsonp\"){if(n===\"GET\")N.test(e.url)||(e.url+=(ka.test(e.url)?\n\"&\":\"?\")+(e.jsonp||\"callback\")+\"=?\");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+\"&\":\"\")+(e.jsonp||\"callback\")+\"=?\";e.dataType=\"json\"}if(e.dataType===\"json\"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||\"jsonp\"+sb++;if(e.data)e.data=(e.data+\"\").replace(N,\"=\"+j+\"$1\");e.url=e.url.replace(N,\"=\"+j+\"$1\");e.dataType=\"script\";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType===\"script\"&&e.cache===null)e.cache=false;if(e.cache===\nfalse&&n===\"GET\"){var r=J(),u=e.url.replace(wb,\"$1_=\"+r+\"$2\");e.url=u+(u===e.url?(ka.test(e.url)?\"&\":\"?\")+\"_=\"+r:\"\")}if(e.data&&n===\"GET\")e.url+=(ka.test(e.url)?\"&\":\"?\")+e.data;e.global&&!c.active++&&c.event.trigger(\"ajaxStart\");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType===\"script\"&&n===\"GET\"&&r){var z=s.getElementsByTagName(\"head\")[0]||s.documentElement,C=s.createElement(\"script\");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=\nfalse;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState===\"loaded\"||this.readyState===\"complete\")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader(\"Content-Type\",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader(\"If-Modified-Since\",\nc.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader(\"If-None-Match\",c.etag[e.url])}r||x.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\");x.setRequestHeader(\"Accept\",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+\", */*\":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger(\"ajaxStop\");x.abort();return false}e.global&&f(\"ajaxSend\",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q===\"abort\"){E||\nd();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q===\"timeout\")){E=true;x.onreadystatechange=c.noop;i=q===\"timeout\"?\"timeout\":!c.httpSuccess(x)?\"error\":e.ifModified&&c.httpNotModified(x,e.url)?\"notmodified\":\"success\";var p;if(i===\"success\")try{o=c.httpData(x,e.dataType,e)}catch(v){i=\"parsererror\";p=v}if(i===\"success\"||i===\"notmodified\")j||b();else c.handleError(e,x,i,p);d();q===\"timeout\"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);\ng(\"abort\")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g(\"timeout\")},e.timeout);try{x.send(n===\"POST\"||n===\"PUT\"||n===\"DELETE\"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger(\"ajaxError\",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol===\"file:\"||a.status>=200&&a.status<300||a.status===304||a.status===\n1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader(\"Last-Modified\"),f=a.getResponseHeader(\"Etag\");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader(\"content-type\")||\"\",e=b===\"xml\"||!b&&f.indexOf(\"xml\")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName===\"parsererror\"&&c.error(\"parsererror\");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a===\"string\")if(b===\n\"json\"||!b&&f.indexOf(\"json\")>=0)a=c.parseJSON(a);else if(b===\"script\"||!b&&f.indexOf(\"javascript\")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\\[\\]$/.test(i)?f(i,n):d(i+\"[\"+(typeof n===\"object\"||c.isArray(n)?k:\"\")+\"]\",n)});else!b&&o!=null&&typeof o===\"object\"?c.each(o,function(k,n){d(i+\"[\"+k+\"]\",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+\"=\"+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;\nif(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join(\"&\").replace(yb,\"+\")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\\d+-.]+)(.*)$/,W,va=[[\"height\",\"marginTop\",\"marginBottom\",\"paddingTop\",\"paddingBottom\"],[\"width\",\"marginLeft\",\"marginRight\",\"paddingLeft\",\"paddingRight\"],[\"opacity\"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K(\"show\",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],\"olddisplay\");\nthis[a].style.display=d||\"\";if(c.css(this[a],\"display\")===\"none\"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c(\"<\"+d+\" />\").appendTo(\"body\");f=e.css(\"display\");if(f===\"none\")f=\"block\";e.remove();la[d]=f}c.data(this[a],\"olddisplay\",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],\"olddisplay\")||\"\";return this}},hide:function(a,b){if(a||a===0)return this.animate(K(\"hide\",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],\"olddisplay\");!d&&d!==\"none\"&&c.data(this[a],\n\"olddisplay\",c.css(this[a],\"display\"))}a=0;for(b=this.length;a<b;a++)this[a].style.display=\"none\";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a===\"boolean\";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(\":hidden\");c(this)[f?\"show\":\"hide\"]()}):this.animate(K(\"toggle\",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(\":hidden\").css(\"opacity\",0).show().end().animate({opacity:b},a,d)},\nanimate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?\"each\":\"queue\"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(\":hidden\"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]===\"hide\"&&o||a[i]===\"show\"&&!o)return j.complete.call(this);if((i===\"height\"||i===\"width\")&&this.style){j.display=c.css(this,\"display\");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=\nj.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow=\"hidden\";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u===\"toggle\"?o?\"show\":\"hide\":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||\"px\";if(E!==\"px\"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]===\"-=\"?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,\"\")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);\nthis.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K(\"show\",1),slideUp:K(\"hide\",1),slideToggle:K(\"toggle\",1),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a===\"object\"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===\n\"number\"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||\nc.fx.step._default)(this);if((this.prop===\"height\"||this.prop===\"width\")&&this.elem.style)this.elem.style.display=\"block\"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||\"px\";this.now=this.start;\nthis.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===\"width\"||this.prop===\"height\"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=\nthis.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,\"olddisplay\");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,\"display\")===\"none\")this.elem.style.display=\"block\"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,\ne,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?\"swing\":\"linear\");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||\nc.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,\"opacity\",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop===\"width\"||a.prop===\"height\"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset=\"getBoundingClientRect\"in s.documentElement?\nfunction(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=\nthis[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position===\"fixed\")break;j=e?e.getComputedStyle(b,null):b.currentStyle;\nk-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!==\"visible\"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position===\"relative\"||f.position===\"static\"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&\nf.position===\"fixed\"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement(\"div\"),d,f,e,j=parseFloat(c.curCSS(a,\"marginTop\",true))||0;c.extend(b.style,{position:\"absolute\",top:0,left:0,margin:0,border:0,width:\"1px\",height:\"1px\",visibility:\"hidden\"});b.innerHTML=\"<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>\";\na.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position=\"fixed\";f.style.top=\"20px\";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top=\"\";d.style.overflow=\"hidden\";d.style.position=\"relative\";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);\nc.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,\"marginTop\",true))||0;d+=parseFloat(c.curCSS(a,\"marginLeft\",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,\"position\")))a.style.position=\"relative\";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,\"top\",true),10)||0,i=parseInt(c.curCSS(a,\"left\",true),10)||0;if(c.isFunction(b))b=b.call(a,\nd,e);d={top:b.top-e.top+j,left:b.left-e.left+i};\"using\"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,\"marginTop\",true))||0;d.left-=parseFloat(c.curCSS(a,\"marginLeft\",true))||0;f.top+=parseFloat(c.curCSS(b[0],\"borderTopWidth\",true))||0;f.left+=parseFloat(c.curCSS(b[0],\"borderLeftWidth\",true))||0;return{top:d.top-\nf.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,\"position\")===\"static\";)a=a.offsetParent;return a})}});c.each([\"Left\",\"Top\"],function(a,b){var d=\"scroll\"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?\"pageXOffset\"in j?j[a?\"pageYOffset\":\n\"pageXOffset\"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each([\"Height\",\"Width\"],function(a,b){var d=b.toLowerCase();c.fn[\"inner\"+b]=function(){return this[0]?c.css(this[0],d,false,\"padding\"):null};c.fn[\"outer\"+b]=function(f){return this[0]?c.css(this[0],d,false,f?\"margin\":\"border\"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return\"scrollTo\"in\ne&&e.document?e.document.compatMode===\"CSS1Compat\"&&e.document.documentElement[\"client\"+b]||e.document.body[\"client\"+b]:e.nodeType===9?Math.max(e.documentElement[\"client\"+b],e.body[\"scroll\"+b],e.documentElement[\"scroll\"+b],e.body[\"offset\"+b],e.documentElement[\"offset\"+b]):f===w?c.css(e,d):this.css(d,typeof f===\"string\"?f:f+\"px\")}});A.jQuery=A.$=c})(window);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/css/components-buttons.css",
    "content": "\ndiv,\nsvg,\ninput,\nselect,\ntextarea,\nspan,\nimg,\ntable,\nlabel,\ntd,\nth,\np,\na,\nbutton,\nul,\ncode,\npre,\nli {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n  \n  \n/* sweet-alert */\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n/* sweet-alert */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/css/components-md.css",
    "content": "/*****************************************\n METRONIC MATERIAL DESIGN STYLE COMPONENTS \n******************************************/\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1, .alert, .badge, .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all), .btn-group > .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all), .btn.btn-link:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all):hover, .icon-btn, .label:not(.md-skip), .note, .panel, .social-icons li > a, .social-icons.social-icons-color > li > a, .well {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2, .ver-inline-menu, .popover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i, .dropdown-menu, .btn-group > .dropdown-menu {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover, .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all):hover, .icon-btn:hover, .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .social-icons li:hover > a, .social-icons.social-icons-color > li > a:hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3, .modal .modal-content {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover, .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all):active, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #fbe1e3; }\n  .form-md-checkboxes.has-info label {\n    color: #e0ebf9; }\n  .form-md-checkboxes.has-success label {\n    color: #abe7ed; }\n  .form-md-checkboxes.has-warning label {\n    color: #f9e491; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #fbe1e3; }\n  .form-md-radios.has-info label {\n    color: #e0ebf9; }\n  .form-md-radios.has-success label {\n    color: #abe7ed; }\n  .form-md-radios.has-warning label {\n    color: #f9e491; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\np {\n  margin: 20px 0; }\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-family: \"Open Sans\", sans-serif;\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 500 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n.ver-inline-menu {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n.alert {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border-width: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline;\n  padding: 4px 6px 2px 6px; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n.badge {\n  text-transform: uppercase;\n  font-size: 10px;\n  font-weight: 600;\n  padding: 4px 6px 2px 6px; }\n\n.page-sidebar .badge {\n  font-size: 10px !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all) {\n  font-size: 12px;\n  font-weight: 600;\n  text-transform: uppercase;\n  transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  overflow: hidden;\n  position: relative;\n  user-select: none;\n  padding: 8px 14px 7px 14px; }\n  .search-form .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all),\n  .btn-theme-panel .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all) {\n    box-shadow: none !important;\n    overflow: visible; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-link {\n    box-shadow: none;\n    color: #337ab7; }\n    .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-link:hover {\n      text-decoration: none; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all) > i {\n    margin-top: 0;\n    margin-left: 3px;\n    margin-right: 3px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-sm {\n    font-size: 11px;\n    padding: 6px 18px 6px 18px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-xs {\n    font-size: 11px;\n    padding: 3px 8px 3px 8px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-lg {\n    font-size: 16px;\n    padding: 12px 26px 10px 26px; }\n  .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-icon-only {\n    padding-left: 0;\n    padding-right: 0; }\n    .btn:not(.md-skip):not(.bs-select-all):not(.bs-deselect-all).btn-icon-only > i {\n      margin-left: 0;\n      margin-right: 0; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 2px 2px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 2px 2px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu.pull-left:before,\n.dropdown-toggle > .dropdown-menu.pull-left:before,\n.btn-group > .dropdown-menu.pull-left:before {\n  left: auto;\n  right: 9px; }\n\n.dropdown > .dropdown-menu.pull-left:after,\n.dropdown-toggle > .dropdown-menu.pull-left:after,\n.btn-group > .dropdown-menu.pull-left:after {\n  left: auto;\n  right: 10px; }\n\n.dropdown > .dropdown-menu.pull-right:before,\n.dropdown-toggle > .dropdown-menu.pull-right:before,\n.btn-group > .dropdown-menu.pull-right:before {\n  left: auto;\n  right: 9px; }\n\n.dropdown > .dropdown-menu.pull-right:after,\n.dropdown-toggle > .dropdown-menu.pull-right:after,\n.btn-group > .dropdown-menu.pull-right:after {\n  left: auto;\n  right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*rtl:ignore*/\n.dropdown-menu {\n  border: 0 !important;\n  border-radius: 2px !important;\n  margin: 0; }\n  .dropdown-menu:before, .dropdown-menu:after {\n    display: none !important; }\n\n.btn-group > .dropdown-menu {\n  opacity: 0 ;\n  filter: alpha(opacity=0) ;\n  margin-top: 0px; }\n\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 0px; }\n\n.btn-group.open > .dropdown-menu {\n  transition: opacity 1500ms cubic-bezier(0.23, 1, 0.32, 1) 0.1ms;\n  opacity: 1 ;\n  filter: alpha(opacity=100) ; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.input-group-btn .btn {\n  box-shadow: none; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n.icon-btn {\n  border: 0;\n  transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); }\n  .icon-btn > div {\n    text-transform: uppercase;\n    font-weight: 600;\n    font-size: 11px;\n    color: #565d66; }\n  .icon-btn:hover {\n    text-decoration: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 2px 0 0 2px;\n      -moz-border-radius: 2px 0 0 2px;\n      -ms-border-radius: 2px 0 0 2px;\n      -o-border-radius: 2px 0 0 2px;\n      border-radius: 2px 0 0 2px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 2px 2px 0;\n        -moz-border-radius: 0 2px 2px 0;\n        -ms-border-radius: 0 2px 2px 0;\n        -o-border-radius: 0 2px 2px 0;\n        border-radius: 0 2px 2px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n.label:not(.md-skip) {\n  text-transform: uppercase;\n  padding: 2px 6px 4px 6px;\n  font-size: 10px;\n  font-weight: 600; }\n  .label:not(.md-skip).label-sm {\n    font-size: 10px;\n    font-weight: 600;\n    padding: 3px 6px 3px 6px; }\n\n.label:not(.md-skip).label-icon {\n  padding: 4px 0px 4px 4px !important;\n  font-size: 12px !important; }\n  .ie8 .label:not(.md-skip).label-icon,\n  .ie9 .label:not(.md-skip).label-icon {\n    padding: 3px 0 3px 3px !important; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 2px;\n  border-radius-topright: 2px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 2px;\n  border-radius-bottomright: 2px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n.modal .modal-content {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0; }\n  .modal .modal-content .modal-title {\n    font-weight: 400; }\n  .modal .modal-content .modal-footer {\n    border: 0; }\n\n.modal-backdrop.in {\n  opacity: 0.2 ;\n  filter: alpha(opacity=20) ; }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 2px 2px 0;\n  -moz-border-radius: 0 2px 2px 0;\n  -ms-border-radius: 0 2px 2px 0;\n  -o-border-radius: 0 2px 2px 0;\n  border-radius: 0 2px 2px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n.note {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0; }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel-group .panel {\n  overflow: visible; }\n\n.panel .panel-body {\n  font-size: 13px; }\n\n.panel .panel-title > a:hover {\n  text-decoration: none; }\n\n.accordion .panel .panel-heading {\n  padding: 0; }\n\n.accordion .panel .panel-title {\n  padding: 0; }\n  .accordion .panel .panel-title .accordion-toggle {\n    display: block;\n    padding: 10px 15px; }\n  .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n    background: url(\"../img/accordion-plusminus.png\") no-repeat;\n    background-position: right -19px;\n    margin-right: 15px; }\n  .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n    background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n.panel {\n  border: 0; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/*rtl:ignore*/\n.popover {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0;\n  background: #fff; }\n\n.popover > .popover-title {\n  background: #fff;\n  font-weight: 600;\n  font-size: 12px;\n  text-transform: uppercase;\n  padding: 10px 14px 6px 14px;\n  border: 0; }\n\n.popover .arrow,\n.popover .arrow:after {\n  display: none !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 4px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered > .portlet-title {\n  border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n.portlet {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88;\n      box-shadow: none; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0;\n      box-shadow: none; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4;\n      box-shadow: none; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7;\n      box-shadow: none; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798;\n      box-shadow: none; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4;\n      box-shadow: none; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3;\n      box-shadow: none; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0;\n      box-shadow: none; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7;\n      box-shadow: none; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef;\n      box-shadow: none; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec;\n      box-shadow: none; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb;\n      box-shadow: none; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3;\n      box-shadow: none; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de;\n      box-shadow: none; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0;\n      box-shadow: none; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda;\n      box-shadow: none; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1;\n      box-shadow: none; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6;\n      box-shadow: none; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4;\n      box-shadow: none; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6;\n      box-shadow: none; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4;\n      box-shadow: none; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a;\n      box-shadow: none; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5;\n      box-shadow: none; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd;\n      box-shadow: none; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white;\n      box-shadow: none; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9;\n      box-shadow: none; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc;\n      box-shadow: none; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0;\n      box-shadow: none; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd;\n      box-shadow: none; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0;\n      box-shadow: none; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89;\n      box-shadow: none; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6;\n      box-shadow: none; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0;\n      box-shadow: none; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda;\n      box-shadow: none; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7;\n      box-shadow: none; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af;\n      box-shadow: none; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79;\n      box-shadow: none; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb;\n      box-shadow: none; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e;\n      box-shadow: none; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d;\n      box-shadow: none; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1;\n      box-shadow: none; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4;\n      box-shadow: none; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca;\n      box-shadow: none; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce;\n      box-shadow: none; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da;\n      box-shadow: none; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd;\n      box-shadow: none; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa;\n      box-shadow: none; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da;\n      box-shadow: none; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0;\n      box-shadow: none; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef;\n      box-shadow: none; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd;\n      box-shadow: none; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0;\n      box-shadow: none; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde;\n      box-shadow: none; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n.progress {\n  height: 8px;\n  border-radius: 0 !important; }\n  .progress.progress-sm {\n    height: 6px; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px;\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 2px 0 0 2px;\n      -moz-border-radius: 2px 0 0 2px;\n      -ms-border-radius: 2px 0 0 2px;\n      -o-border-radius: 2px 0 0 2px;\n      border-radius: 2px 0 0 2px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 2px 0 0 2px;\n    -moz-border-radius: 2px 0 0 2px;\n    -ms-border-radius: 2px 0 0 2px;\n    -o-border-radius: 2px 0 0 2px;\n    border-radius: 2px 0 0 2px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 2px 2px 0;\n      -moz-border-radius: 0 2px 2px 0;\n      -ms-border-radius: 0 2px 2px 0;\n      -o-border-radius: 0 2px 2px 0;\n      border-radius: 0 2px 2px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 2px 2px 0;\n    -moz-border-radius: 0 2px 2px 0;\n    -ms-border-radius: 0 2px 2px 0;\n    -o-border-radius: 0 2px 2px 0;\n    border-radius: 0 2px 2px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #36c6d3;\n      position: relative; }\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #9fe4ea; }\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px; }\n\n.well {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 2px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 2px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 2px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 2px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 2px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 2px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 2px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 2px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 2px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 2px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 2px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 2px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 2px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-120%); }\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/css/components-portal.css",
    "content": "/*********************************\n METRONIC SQUARE STYLE COMPONENTS \n*********************************/\n/***\nRounded corners reset\n***/\n/* Reset rounded corners for all elements */\ndiv,\nsvg,\ninput,\nselect,\ntextarea,\nspan,\nimg,\ntable,\nlabel,\ntd,\nth,\np,\na,\nbutton,\nul,\ncode,\npre,\nli {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/* except below bootstrap elements */\n.img-circle {\n  border-radius: 50% !important; }\n  \n.img-circle-userFace {\n  border-radius: 50% !important; \n  width: 100px;\n  height: 100px;\n  margin-top: -25px;\n  margin-bottom: 10px;\n}\n\n.img-rounded {\n  border-radius: 6px !important; }\n\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3 {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #ed6b75; }\n  .form-md-checkboxes.has-info label {\n    color: #659be0; }\n  .form-md-checkboxes.has-success label {\n    color: #36c6d3; }\n  .form-md-checkboxes.has-warning label {\n    color: #F1C40F; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #ed6b75; }\n  .form-md-radios.has-info label {\n    color: #659be0; }\n  .form-md-radios.has-success label {\n    color: #36c6d3; }\n  .form-md-radios.has-warning label {\n    color: #F1C40F; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\n/* p { */\n/*   margin: 20px 0; } */\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n/*   font-family: \"Open Sans\", sans-serif; */\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 300 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n/*rtl:ignore*/\n.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 4px 4px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 4px 4px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu,\n.dropdown-toggle > .dropdown-menu,\n.btn-group > .dropdown-menu {\n  margin-top: 10px; }\n  .dropdown > .dropdown-menu:before,\n  .dropdown-toggle > .dropdown-menu:before,\n  .btn-group > .dropdown-menu:before {\n    position: absolute;\n    top: -8px;\n    left: 9px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 8px solid transparent;\n    border-bottom: 8px solid #e0e0e0;\n    border-left: 8px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu:after,\n  .dropdown-toggle > .dropdown-menu:after,\n  .btn-group > .dropdown-menu:after {\n    position: absolute;\n    top: -7px;\n    left: 10px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 7px solid transparent;\n    border-bottom: 7px solid #fff;\n    border-left: 7px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu.pull-left:before,\n  .dropdown-toggle > .dropdown-menu.pull-left:before,\n  .btn-group > .dropdown-menu.pull-left:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-left:after,\n  .dropdown-toggle > .dropdown-menu.pull-left:after,\n  .btn-group > .dropdown-menu.pull-left:after {\n    left: auto;\n    right: 10px; }\n  .dropdown > .dropdown-menu.pull-right:before,\n  .dropdown-toggle > .dropdown-menu.pull-right:before,\n  .btn-group > .dropdown-menu.pull-right:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-right:after,\n  .dropdown-toggle > .dropdown-menu.pull-right:after,\n  .btn-group > .dropdown-menu.pull-right:after {\n    left: auto;\n    right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e7ecf1;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0;\n    border-bottom: 1px solid #e7ecf1; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px;\n  border-bottom: 1px solid #e7ecf1; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease;\n      -webkit-box-shadow: none;\n      -moz-box-shadow: none;\n      box-shadow: none; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 4px 4px 0;\n        -moz-border-radius: 0 4px 4px 0;\n        -ms-border-radius: 0 4px 4px 0;\n        -o-border-radius: 0 4px 4px 0;\n        border-radius: 0 4px 4px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 4px;\n  border-radius-topright: 4px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 4px;\n  border-radius-bottomright: 4px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 4px 4px 0;\n  -moz-border-radius: 0 4px 4px 0;\n  -ms-border-radius: 0 4px 4px 0;\n  -o-border-radius: 0 4px 4px 0;\n  border-radius: 0 4px 4px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n  .panel-group .panel {\n    overflow: visible; }\n  .panel .panel-body {\n    font-size: 13px; }\n  .panel .panel-title > a:hover {\n    text-decoration: none; }\n  .accordion .panel .panel-heading {\n    padding: 0; }\n  .accordion .panel .panel-title {\n    padding: 0; }\n    .accordion .panel .panel-title .accordion-toggle {\n      display: block;\n      padding: 10px 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n      background: url(\"../img/accordion-plusminus.png\") no-repeat;\n      background-position: right -19px;\n      margin-right: 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n      background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 3px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered {\n  border-left: 2px solid #e6e9ec !important; }\n  .portlet.bordered > .portlet-title {\n    border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px; }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 4px 0 0 4px;\n    -moz-border-radius: 4px 0 0 4px;\n    -ms-border-radius: 4px 0 0 4px;\n    -o-border-radius: 4px 0 0 4px;\n    border-radius: 4px 0 0 4px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 4px 4px 0;\n    -moz-border-radius: 0 4px 4px 0;\n    -ms-border-radius: 0 4px 4px 0;\n    -o-border-radius: 0 4px 4px 0;\n    border-radius: 0 4px 4px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #36c6d3;\n      position: relative; }\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #9fe4ea; }\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 4px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 4px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 4px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 4px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 4px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 4px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 4px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 4px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 4px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 4px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 4px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-120%); }\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/css/components-rounded.css",
    "content": "/*********************************\n METRONIC ROUNDED STYLE COMPONENTS \n*********************************/\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3 {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #ed6b75; }\n  .form-md-checkboxes.has-info label {\n    color: #659be0; }\n  .form-md-checkboxes.has-success label {\n    color: #36c6d3; }\n  .form-md-checkboxes.has-warning label {\n    color: #F1C40F; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #ed6b75; }\n  .form-md-radios.has-info label {\n    color: #659be0; }\n  .form-md-radios.has-success label {\n    color: #36c6d3; }\n  .form-md-radios.has-warning label {\n    color: #F1C40F; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\np {\n  margin: 20px 0; }\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-family: \"Open Sans\", sans-serif;\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 300 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n/*rtl:ignore*/\n.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 4px 4px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 4px 4px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu,\n.dropdown-toggle > .dropdown-menu,\n.btn-group > .dropdown-menu {\n  margin-top: 10px; }\n  .dropdown > .dropdown-menu:before,\n  .dropdown-toggle > .dropdown-menu:before,\n  .btn-group > .dropdown-menu:before {\n    position: absolute;\n    top: -8px;\n    left: 9px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 8px solid transparent;\n    border-bottom: 8px solid #e0e0e0;\n    border-left: 8px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu:after,\n  .dropdown-toggle > .dropdown-menu:after,\n  .btn-group > .dropdown-menu:after {\n    position: absolute;\n    top: -7px;\n    left: 10px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 7px solid transparent;\n    border-bottom: 7px solid #fff;\n    border-left: 7px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu.pull-left:before,\n  .dropdown-toggle > .dropdown-menu.pull-left:before,\n  .btn-group > .dropdown-menu.pull-left:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-left:after,\n  .dropdown-toggle > .dropdown-menu.pull-left:after,\n  .btn-group > .dropdown-menu.pull-left:after {\n    left: auto;\n    right: 10px; }\n  .dropdown > .dropdown-menu.pull-right:before,\n  .dropdown-toggle > .dropdown-menu.pull-right:before,\n  .btn-group > .dropdown-menu.pull-right:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-right:after,\n  .dropdown-toggle > .dropdown-menu.pull-right:after,\n  .btn-group > .dropdown-menu.pull-right:after {\n    left: auto;\n    right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e7ecf1;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0;\n    border-bottom: 1px solid #e7ecf1; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px;\n  border-bottom: 1px solid #e7ecf1; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease;\n      -webkit-box-shadow: none;\n      -moz-box-shadow: none;\n      box-shadow: none; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 4px 4px 0;\n        -moz-border-radius: 0 4px 4px 0;\n        -ms-border-radius: 0 4px 4px 0;\n        -o-border-radius: 0 4px 4px 0;\n        border-radius: 0 4px 4px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 4px;\n  border-radius-topright: 4px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 4px;\n  border-radius-bottomright: 4px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 4px 4px 0;\n  -moz-border-radius: 0 4px 4px 0;\n  -ms-border-radius: 0 4px 4px 0;\n  -o-border-radius: 0 4px 4px 0;\n  border-radius: 0 4px 4px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n  .panel-group .panel {\n    overflow: visible; }\n  .panel .panel-body {\n    font-size: 13px; }\n  .panel .panel-title > a:hover {\n    text-decoration: none; }\n  .accordion .panel .panel-heading {\n    padding: 0; }\n  .accordion .panel .panel-title {\n    padding: 0; }\n    .accordion .panel .panel-title .accordion-toggle {\n      display: block;\n      padding: 10px 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n      background: url(\"../img/accordion-plusminus.png\") no-repeat;\n      background-position: right -19px;\n      margin-right: 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n      background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 3px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered {\n  border-left: 2px solid #e6e9ec !important; }\n  .portlet.bordered > .portlet-title {\n    border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px; }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 4px 0 0 4px;\n    -moz-border-radius: 4px 0 0 4px;\n    -ms-border-radius: 4px 0 0 4px;\n    -o-border-radius: 4px 0 0 4px;\n    border-radius: 4px 0 0 4px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 4px 4px 0;\n    -moz-border-radius: 0 4px 4px 0;\n    -ms-border-radius: 0 4px 4px 0;\n    -o-border-radius: 0 4px 4px 0;\n    border-radius: 0 4px 4px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #36c6d3;\n      position: relative; }\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #9fe4ea; }\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 4px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 4px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 4px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 4px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 4px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 4px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 4px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 4px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 4px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 4px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 4px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-120%); }\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/css/components.css",
    "content": "/*********************************\n METRONIC SQUARE STYLE COMPONENTS \n*********************************/\n/***\nRounded corners reset\n***/\n/* Reset rounded corners for all elements */\ndiv,\nsvg,\ninput,\nselect,\ntextarea,\nspan,\nimg,\ntable,\nlabel,\ntd,\nth,\np,\na,\nbutton,\nul,\ncode,\npre,\nli {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/* except below bootstrap elements */\n.img-circle {\n  border-radius: 50% !important; }\n  \n.img-circle-userFace {\n  border-radius: 50% !important; \n  width: 100px;\n  height: 100px;\n  margin-top: -25px;\n  margin-bottom: 10px;\n}\n\n.img-rounded {\n  border-radius: 6px !important; }\n\n/* Cubic Bezier Transition */\n/***\nGeneral reset\n***/\n/* Set default body */\nbody {\n  color: #333333;\n  font-family: \"Open Sans\", sans-serif;\n  padding: 0px !important;\n  margin: 0px !important;\n  direction: \"ltr\";\n  font-size: 14px; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't \n properly apply the media queries in Bootstrap's CSS. To address this, \n you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.\n*/\n@-webkit-viewport {\n  width: device-width; }\n\n@-moz-viewport {\n  width: device-width; }\n\n@-ms-viewport {\n  width: device-width; }\n\n@-o-viewport {\n  width: device-width; }\n\n@viewport {\n  width: device-width; }\n\n/*\n Internet Explorer 10 doesn't differentiate device width from viewport width, \n and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied \n*/\n@-ms-viewport {\n  width: auto !important; }\n\n.md-shadow-z-1 {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); }\n\n.md-shadow-z-1-i {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; }\n\n.md-shadow-z-1-hover {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-2-i {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-2-hover {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-3 {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); }\n\n.md-shadow-z-3-i {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; }\n\n.md-shadow-z-3-hover {\n  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); }\n\n.md-shadow-z-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-4-i {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-z-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); }\n\n.md-shadow-z-5-i {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; }\n\n.md-shadow-none {\n  box-shadow: none !important; }\n\n.md-click-circle {\n  display: block;\n  position: absolute;\n  background: rgba(0, 0, 0, 0.2);\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: scale(0);\n  -moz-transform: scale(0);\n  transform: scale(0); }\n  .md-click-circle.md-click-animate {\n    -webkit-animation: mdClickEffect 0.65s linear;\n    -moz-animation: mdClickEffect 0.65s linear;\n    animation: mdClickEffect 0.65s linear; }\n\n@-webkit-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -webkit-transform: scale(2.5); } }\n\n@-moz-keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    -moz-transform: scale(2.5); } }\n\n@keyframes mdClickEffect {\n  0% {\n    opacity: 1;\n    -webkit-transform: scale(0); }\n  100% {\n    opacity: 0 !important;\n    transform: scale(2.5); } }\n\n.form-group.form-md-line-input {\n  position: relative;\n  margin: 0 0 35px 0;\n  padding-top: 20px; }\n  .form-horizontal .form-group.form-md-line-input {\n    padding-top: 10px;\n    margin-bottom: 20px;\n    margin: 0 -15px 20px -15px; }\n  .form-horizontal .form-group.form-md-line-input > label {\n    padding-top: 5px;\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-group.form-md-line-input .form-control {\n    background: none;\n    border: 0;\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 0;\n    -moz-border-radius: 0;\n    -ms-border-radius: 0;\n    -o-border-radius: 0;\n    border-radius: 0;\n    color: #555555;\n    box-shadow: none;\n    padding-left: 0;\n    padding-right: 0;\n    font-size: 14px; }\n    .form-group.form-md-line-input .form-control::-moz-placeholder {\n      color: #999;\n      opacity: 1; }\n    .form-group.form-md-line-input .form-control:-ms-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control::-webkit-input-placeholder {\n      color: #999; }\n    .form-group.form-md-line-input .form-control.form-control-static {\n      border-bottom: 0; }\n    .form-group.form-md-line-input .form-control.input-sm {\n      font-size: 14px;\n      padding: 6px 0; }\n    .form-group.form-md-line-input .form-control.input-lg {\n      font-size: 20px;\n      padding: 14px 0; }\n    .form-group.form-md-line-input .form-control ~ label,\n    .form-group.form-md-line-input .form-control ~ .form-control-focus {\n      width: 100%;\n      position: absolute;\n      left: 0;\n      bottom: 0;\n      pointer-events: none; }\n      .form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal\n      .form-group.form-md-line-input .form-control ~ .form-control-focus {\n        width: auto;\n        left: 15px;\n        right: 15px; }\n      .form-group.form-md-line-input .form-control ~ label:after,\n      .form-group.form-md-line-input .form-control ~ .form-control-focus:after {\n        content: '';\n        position: absolute;\n        z-index: 5;\n        bottom: 0;\n        left: 50%;\n        width: 0;\n        height: 2px;\n        width: 0;\n        visibility: hidden;\n        transition: 0.2s ease all; }\n    .form-group.form-md-line-input .form-control ~ label {\n      top: 0;\n      margin-bottom: 0;\n      font-size: 14px;\n      color: #888888;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control ~ .help-block-error {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label,\n    .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus {\n      color: #888888; }\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after,\n      .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after {\n        visibility: visible;\n        left: 0;\n        width: 100%;\n        background: #36c6d3; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block {\n      color: #36c6d3;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block-error, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control.edited:not([readonly]):not(:focus) ~ .help-block-error {\n      opacity: 0 ;\n      filter: alpha(opacity=0) ; }\n    .form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled],\n    fieldset[disabled] .form-group.form-md-line-input .form-control {\n      background: none;\n      cursor: not-allowed;\n      border-bottom: 1px dashed #c2cad8; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control ~ label {\n    font-size: 16px;\n    top: 25px;\n    transition: 0.2s ease all;\n    color: #999; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label {\n    font-size: 14px;\n    top: 24px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label {\n    font-size: 20px;\n    top: 30px; }\n  .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label {\n    top: 0;\n    font-size: 13px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon > label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-icon.right > label {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label {\n    padding-left: 34px; }\n  .form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label {\n    padding-right: 34px; }\n  .form-group.form-md-line-input + .input-icon {\n    padding-top: 0; }\n  .form-group.form-md-line-input .help-block {\n    position: absolute;\n    margin: 2px 0 0 0;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ;\n    font-size: 13px; }\n  .form-group.form-md-line-input > .input-icon > i {\n    left: 0;\n    bottom: 0;\n    margin: 9px 2px 10px 10px;\n    color: #888888; }\n  .form-group.form-md-line-input > .input-icon.input-icon-lg > i {\n    top: 6px; }\n  .form-group.form-md-line-input > .input-icon.input-icon-sm > i {\n    top: -1px; }\n  .form-group.form-md-line-input > .input-icon .form-control {\n    padding-left: 34px; }\n  .form-group.form-md-line-input > .input-icon > label {\n    margin-top: -20px; }\n  .form-group.form-md-line-input > .input-icon.right .form-control {\n    padding-left: 0;\n    padding-right: 34px; }\n  .form-group.form-md-line-input > .input-icon.right > i {\n    left: auto;\n    right: 8px;\n    margin: 11px 2px 10px 10px; }\n  .form-group.form-md-line-input + .input-group {\n    padding-top: 0; }\n  .form-group.form-md-line-input .input-group {\n    padding-top: 0; }\n    .form-group.form-md-line-input .input-group > label {\n      margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-addon {\n      -webkit-border-radius: 0;\n      -moz-border-radius: 0;\n      -ms-border-radius: 0;\n      -o-border-radius: 0;\n      border-radius: 0;\n      background: none;\n      border: 0;\n      border-bottom: 1px solid #c2cad8; }\n    .form-group.form-md-line-input .input-group + .input-group-control {\n      padding-top: 0; }\n    .form-group.form-md-line-input .input-group .input-group-control {\n      padding-top: 0;\n      position: relative;\n      display: table-cell;\n      vertical-align: bottom; }\n      .form-group.form-md-line-input .input-group .input-group-control > label {\n        margin-top: -20px; }\n    .form-group.form-md-line-input .input-group .input-group-btn .btn {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn {\n      margin-right: 10px; }\n    .form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn {\n      margin-left: 10px; }\n    .form-group.form-md-line-input .input-group .help-block {\n      margin-top: 35px; }\n    .form-group.form-md-line-input .input-group.input-group-sm .help-block {\n      margin-top: 30px; }\n    .form-group.form-md-line-input .input-group.input-group-lg .help-block {\n      margin-top: 47px; }\n  .form-group.form-md-line-input.has-success .form-control {\n    border-bottom: 1px solid #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i {\n      color: #27a4b0; }\n    .form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block {\n      color: #27a4b0; }\n  .form-group.form-md-line-input.has-success .input-group-addon {\n    color: #27a4b0;\n    border-bottom: 1px solid #27a4b0; }\n  .form-group.form-md-line-input.has-success label {\n    color: #27a4b0; }\n  .form-group.form-md-line-input.has-warning .form-control {\n    border-bottom: 1px solid #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i {\n      color: #c29d0b; }\n    .form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block {\n      color: #c29d0b; }\n  .form-group.form-md-line-input.has-warning .input-group-addon {\n    color: #c29d0b;\n    border-bottom: 1px solid #c29d0b; }\n  .form-group.form-md-line-input.has-warning label {\n    color: #c29d0b; }\n  .form-group.form-md-line-input.has-error .form-control {\n    border-bottom: 1px solid #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i {\n      color: #e73d4a; }\n    .form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block {\n      color: #e73d4a; }\n  .form-group.form-md-line-input.has-error .input-group-addon {\n    color: #e73d4a;\n    border-bottom: 1px solid #e73d4a; }\n  .form-group.form-md-line-input.has-error label {\n    color: #e73d4a; }\n  .form-group.form-md-line-input.has-info .form-control {\n    border-bottom: 1px solid #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after,\n    .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after {\n      background: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i {\n      color: #327ad5; }\n    .form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block {\n      color: #327ad5; }\n  .form-group.form-md-line-input.has-info .input-group-addon {\n    color: #327ad5;\n    border-bottom: 1px solid #327ad5; }\n  .form-group.form-md-line-input.has-info label {\n    color: #327ad5; }\n\n.form-inline .form-md-line-input {\n  margin: 0;\n  padding-top: 0;\n  margin-right: 20px; }\n  .form-inline .form-md-line-input > .input-icon {\n    padding: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon .form-control {\n  padding-left: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > i {\n  top: 0; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control {\n  padding-left: 0;\n  padding-right: 33px; }\n\n.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus {\n  left: 0 !important;\n  right: 0 !important; }\n\n.form-horizontal .form-group.form-md-line-input .input-group {\n  padding-top: 0; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn {\n    margin-bottom: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control {\n    padding-top: 0; }\n    .form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus {\n      left: 0 !important;\n      right: 0 !important; }\n  .form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus {\n    left: 0 !important;\n    right: 0 !important; }\n\n.md-checkbox {\n  position: relative;\n  /* handling click events */\n  /* when checkbox is checked */ }\n  .md-checkbox.md-checkbox-inline {\n    display: inline-block; }\n  .form-inline .md-checkbox.md-checkbox-inline {\n    margin-right: 20px;\n    top: 3px; }\n  .md-checkbox input[type=checkbox] {\n    visibility: hidden;\n    position: absolute; }\n  .md-checkbox label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-checkbox label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-checkbox label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-checkbox label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    z-index: 5;\n    -webkit-transition-delay: 0.2s;\n    -moz-transition-delay: 0.2s;\n    transition-delay: 0.2s; }\n  .md-checkbox label > .check {\n    top: -4px;\n    left: 6px;\n    width: 10px;\n    height: 20px;\n    border: 2px solid #36c6d3;\n    border-top: none;\n    border-left: none;\n    opacity: 0;\n    z-index: 5;\n    -webkit-transform: rotate(180deg);\n    -moz-transform: rotate(180deg);\n    transform: rotate(180deg);\n    -webkit-transition-delay: 0.3s;\n    -moz-transition-delay: 0.3s;\n    transition-delay: 0.3s; }\n  .md-checkbox label > span.inc {\n    -webkit-animation: growCircle 0.3s ease;\n    -moz-animation: growCircle 0.3s ease;\n    animation: growCircle 0.3s ease; }\n  .md-checkbox input[type=checkbox]:checked ~ label > .box {\n    opacity: 0;\n    -webkit-transform: scale(0) rotate(-180deg);\n    -moz-transform: scale(0) rotate(-180deg);\n    transform: scale(0) rotate(-180deg); }\n  .md-checkbox input[type=checkbox]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1) rotate(45deg);\n    -moz-transform: scale(1) rotate(45deg);\n    transform: scale(1) rotate(45deg); }\n  .md-checkbox input[type=checkbox]:disabled ~ label,\n  .md-checkbox input[type=checkbox][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled ~ label > .box,\n  .md-checkbox input[type=checkbox][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-checkbox input[type=checkbox]:disabled:checked ~ label > .check,\n  .md-checkbox input[type=checkbox][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-checkbox label,\n.has-error.md-checkbox label {\n  color: #e73d4a; }\n\n.has-error .md-checkbox label > .box,\n.has-error.md-checkbox label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-checkbox label > .check,\n.has-error.md-checkbox label > .check {\n  border-color: #e73d4a; }\n\n.has-success .md-checkbox label,\n.has-success.md-checkbox label {\n  color: #27a4b0; }\n\n.has-success .md-checkbox label > .box,\n.has-success.md-checkbox label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-checkbox label > .check,\n.has-success.md-checkbox label > .check {\n  border-color: #27a4b0; }\n\n.has-warning .md-checkbox label,\n.has-warning.md-checkbox label {\n  color: #c29d0b; }\n\n.has-warning .md-checkbox label > .box,\n.has-warning.md-checkbox label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-checkbox label > .check,\n.has-warning.md-checkbox label > .check {\n  border-color: #c29d0b; }\n\n.has-info .md-checkbox label,\n.has-info.md-checkbox label {\n  color: #327ad5; }\n\n.has-info .md-checkbox label > .box,\n.has-info.md-checkbox label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-checkbox label > .check,\n.has-info.md-checkbox label > .check {\n  border-color: #327ad5; }\n\n.form-md-checkboxes {\n  padding-top: 5px; }\n  .form-md-checkboxes > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-checkboxes.has-error label {\n    color: #ed6b75; }\n  .form-md-checkboxes.has-info label {\n    color: #659be0; }\n  .form-md-checkboxes.has-success label {\n    color: #36c6d3; }\n  .form-md-checkboxes.has-warning label {\n    color: #F1C40F; }\n\n.md-checkbox-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-list {\n    margin-top: 5px; }\n  .md-checkbox-list .md-checkbox {\n    display: block;\n    margin-bottom: 10px; }\n    .md-checkbox-list .md-checkbox:last-child {\n      margin-bottom: 0; }\n\n.md-checkbox-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-checkbox-inline {\n    margin-top: 7px; }\n  .md-checkbox-inline .md-checkbox {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-checkbox-inline .md-checkbox:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircle {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircle {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircle {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n.md-radio {\n  position: relative;\n  /* handling click events */\n  /* when radio is checked */ }\n  .md-radio input[type=radio] {\n    visibility: hidden;\n    position: absolute; }\n  .md-radio label {\n    cursor: pointer;\n    padding-left: 30px; }\n  .md-radio label > span {\n    display: block;\n    position: absolute;\n    left: 0;\n    -webkit-transition-duration: 0.3s;\n    -moz-transition-duration: 0.3s;\n    transition-duration: 0.3s; }\n  .md-radio label > span.inc {\n    background: #fff;\n    left: -20px;\n    top: -20px;\n    height: 60px;\n    width: 60px;\n    opacity: 0;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important; }\n  .md-radio label > .box {\n    top: 0px;\n    border: 2px solid #666;\n    height: 20px;\n    width: 20px;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    z-index: 5; }\n  .md-radio label > .check {\n    top: 5px;\n    left: 5px;\n    width: 10px;\n    height: 10px;\n    background: #36c6d3;\n    opacity: 0;\n    z-index: 6;\n    border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    -webkit-border-radius: 50% !important;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    transform: scale(0); }\n  .md-radio label > span.inc {\n    -webkit-animation: growCircleRadio 0.3s ease;\n    -moz-animation: growCircleRadio 0.3s ease;\n    animation: growCircleRadio 0.3s ease; }\n  .md-radio input[type=radio]:checked ~ label > .check {\n    opacity: 1;\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    transform: scale(1); }\n  .md-radio input[type=radio]:disabled ~ label,\n  .md-radio input[type=radio][disabled] ~ label {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled ~ label > .box,\n  .md-radio input[type=radio][disabled] ~ label > .box {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .md-radio input[type=radio]:disabled:checked ~ label > .check,\n  .md-radio input[type=radio][disabled]:checked ~ label > .check {\n    cursor: not-allowed;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n\n.has-error .md-radio label,\n.has-error.md-radio label {\n  color: #e73d4a; }\n\n.has-error .md-radio label > .box,\n.has-error.md-radio label > .box {\n  border-color: #e73d4a; }\n\n.has-error .md-radio label > .check,\n.has-error.md-radio label > .check {\n  background: #e73d4a; }\n\n.has-success .md-radio label,\n.has-success.md-radio label {\n  color: #27a4b0; }\n\n.has-success .md-radio label > .box,\n.has-success.md-radio label > .box {\n  border-color: #27a4b0; }\n\n.has-success .md-radio label > .check,\n.has-success.md-radio label > .check {\n  background: #27a4b0; }\n\n.has-warning .md-radio label,\n.has-warning.md-radio label {\n  color: #c29d0b; }\n\n.has-warning .md-radio label > .box,\n.has-warning.md-radio label > .box {\n  border-color: #c29d0b; }\n\n.has-warning .md-radio label > .check,\n.has-warning.md-radio label > .check {\n  background: #c29d0b; }\n\n.has-info .md-radio label,\n.has-info.md-radio label {\n  color: #327ad5; }\n\n.has-info .md-radio label > .box,\n.has-info.md-radio label > .box {\n  border-color: #327ad5; }\n\n.has-info .md-radio label > .check,\n.has-info.md-radio label > .check {\n  background: #327ad5; }\n\n.form-md-radios {\n  padding-top: 5px; }\n  .form-md-radios > label {\n    font-size: 14px;\n    color: #888888;\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n  .form-md-radios.has-error label {\n    color: #ed6b75; }\n  .form-md-radios.has-info label {\n    color: #659be0; }\n  .form-md-radios.has-success label {\n    color: #36c6d3; }\n  .form-md-radios.has-warning label {\n    color: #F1C40F; }\n\n.md-radio-list {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-list {\n    margin-top: 5px; }\n  .md-radio-list .md-radio {\n    display: block;\n    margin-bottom: 10px; }\n\n.md-radio-inline {\n  margin: 5px 0 5px 0; }\n  .form-horizontal .md-radio-inline {\n    margin-top: 7px; }\n  .md-radio-inline .md-radio {\n    display: inline-block;\n    margin-right: 20px; }\n    .md-radio-inline .md-radio:last-child {\n      margin-right: 0; }\n\n/* bubble animation */\n@-webkit-keyframes growCircleRadio {\n  0%, 100% {\n    -webkit-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -webkit-transform: scale(1.25); } }\n\n@-moz-keyframes growCircleRadio {\n  0%, 100% {\n    -moz-transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    -moz-transform: scale(1.25); } }\n\n@keyframes growCircleRadio {\n  0%, 100% {\n    transform: scale(0);\n    opacity: 1; }\n  70% {\n    background: #eee;\n    transform: scale(1.25); } }\n\n/***\nGeneral typography\n***/\n/* Links */\na:hover {\n  cursor: pointer; }\n\n/* Primary Link */\n.primary-link {\n  color: #65A0D0;\n  font-weight: 600; }\n  .primary-link:hover {\n    color: #5194ca; }\n\np {\n  margin: 20px 0; }\n\nlabel {\n  font-weight: normal; }\n\n/* Headings */\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  font-family: \"Open Sans\", sans-serif;\n  font-weight: 300; }\n\nh1 {\n  font-size: 36px; }\n\nh2 {\n  font-size: 30px; }\n\nh3 {\n  font-size: 24px; }\n\nh4 {\n  font-size: 18px; }\n\nh5 {\n  font-size: 14px; }\n\nh6 {\n  font-size: 12px; }\n\n/* Headings helper text */\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  color: #444444; }\n\n/* Block headings */\nh1.block,\nh2.block,\nh3.block,\nh4.block,\nh5.block,\nh6.block {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n/* Links */\na {\n  text-shadow: none;\n  color: #337ab7; }\n  a:hover {\n    color: #23527c; }\n  a:focus, a:hover, a:active {\n    outline: 0; }\n\n/* Horizontal break */\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eee;\n  border-bottom: 0; }\n\n/* Unstyled List */\n.list-unstyled li > .list-unstyled {\n  margin-left: 25px; }\n\n/* Code */\ncode {\n  border: 1px solid #e1e1e1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); }\n\n/* Disabled Navigation Link */\n.disabled-link.disable-target,\n.disabled-link .disable-target {\n  opacity: 0.6 !important;\n  filter: alpha(opacity=60) !important; }\n  .disabled-link.disable-target:hover,\n  .disabled-link .disable-target:hover {\n    cursor: not-allowed !important; }\n\n.disabled-link:hover {\n  cursor: not-allowed !important; }\n\n/***\nUtilities\n***/\n/* Rounded Element */\n.rounded-2 {\n  border-radius: 2px !important; }\n\n.rounded-3 {\n  border-radius: 3px !important; }\n\n.rounded-4 {\n  border-radius: 4px !important; }\n\n/* Circle Element */\n.circle {\n  border-radius: 25px !important; }\n\n.circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.rounded {\n  border-radius: 50% !important; }\n\n/* General utilities */\n.display-none,\n.display-hide {\n  display: none; }\n\n.hidden {\n  display: none !important; }\n\n.primary-font {\n  font-family: \"Open Sans\", sans-serif !important; }\n\n.bold {\n  font-weight: 700 !important; }\n  .bold.btn {\n    letter-spacing: 0; }\n\n.sbold {\n  font-weight: 600 !important; }\n  .sbold.btn {\n    letter-spacing: 0; }\n\n.thin {\n  font-weight: 300 !important; }\n\n.uppercase {\n  text-transform: uppercase !important; }\n\n.fix-margin {\n  margin-left: 0px !important; }\n\n.border {\n  border: 1px solid red; }\n\n.font-hg {\n  font-size: 23px; }\n\n.font-lg {\n  font-size: 18px; }\n\n.font-md {\n  font-size: 14px; }\n\n.font-sm {\n  font-size: 13px; }\n\n.font-xs {\n  font-size: 11px; }\n\n.inline {\n  display: inline; }\n\n.inline-block {\n  display: inline-block; }\n\n.text-align-reverse {\n  text-align: right; }\n\n/* Margin and padding utilities */\n.no-space {\n  margin: 0px !important;\n  padding: 0px !important; }\n\n.no-margin {\n  margin: 0; }\n\n.margin-bottom-5 {\n  margin-bottom: 5px; }\n\n.margin-bottom-10 {\n  margin-bottom: 10px !important; }\n\n.margin-top-10 {\n  margin-top: 10px !important; }\n\n.margin-top-15 {\n  margin-top: 15px !important; }\n\n.margin-bottom-15 {\n  margin-bottom: 15px !important; }\n\n.margin-bottom-20 {\n  margin-bottom: 20px !important; }\n\n.margin-top-20 {\n  margin-top: 20px !important; }\n\n.margin-top-30 {\n  margin-top: 30px !important; }\n\n.margin-top-40 {\n  margin-top: 40px !important; }\n\n.margin-bottom-25 {\n  margin-bottom: 25px !important; }\n\n.margin-bottom-30 {\n  margin-bottom: 30px !important; }\n\n.margin-bottom-40 {\n  margin-bottom: 40px !important; }\n\n.margin-right-10 {\n  margin-right: 10px !important; }\n\n/* IE8 & IE9 mode utilities */\n.visible-ie8 {\n  display: none; }\n\n.ie8 .visible-ie8 {\n  display: inherit !important; }\n\n.visible-ie9 {\n  display: none; }\n\n.ie9 .visible-ie9 {\n  display: inherit !important; }\n\n.hidden-ie8 {\n  display: inherit; }\n\n.ie8 .hidden-ie8 {\n  display: none !important; }\n\n.hidden-ie9 {\n  display: inherit; }\n\n.ie9 .hidden-ie9 {\n  display: none !important; }\n\n/***\nResponsive Utils\n***/\n@media (max-width: 1024px) {\n  .hidden-1024 {\n    display: none; } }\n\n@media (max-width: 480px) {\n  .hidden-480 {\n    display: none; } }\n\n@media (max-width: 320px) {\n  .hidden-320 {\n    display: none; } }\n\n/***\nDemo Utils\n***/\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: 10px;\n  overflow: auto; }\n\n.util-btn-margin-bottom-5 .btn {\n  margin-bottom: 5px !important; }\n\n.util-btn-group-margin-bottom-5 .btn-group {\n  margin-bottom: 5px !important; }\n\n.padding-tb-10 {\n  padding: 10px 0; }\n\n.padding-tb-15 {\n  padding: 10px 0; }\n\n.padding-tb-20 {\n  padding: 20px 0; }\n\n/***\nUsers\n***/\n.user-info {\n  margin-bottom: 10px !important; }\n  .user-info img {\n    float: left;\n    margin-right: 5px; }\n  .user-info .details {\n    display: inline-block; }\n  .user-info .label {\n    font-weight: 300;\n    font-size: 11px; }\n\n/***\nCustom vertical inline menu\n***/\n.ver-inline-menu {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .ver-inline-menu li {\n    position: relative;\n    margin-bottom: 1px; }\n    .ver-inline-menu li i {\n      width: 37px;\n      height: 37px;\n      display: inline-block;\n      color: #b9cbd5;\n      font-size: 15px;\n      padding: 12px 10px 10px 8px;\n      margin: 0 8px 0 0;\n      text-align: center;\n      background: #e0eaf0 !important; }\n    .ver-inline-menu li a {\n      font-size: 14px;\n      font-weight: 300;\n      color: #557386;\n      display: block;\n      background: #f0f6fa;\n      border-left: solid 2px #c4d5df; }\n    .ver-inline-menu li:hover a {\n      background: #e0eaf0;\n      text-decoration: none; }\n    .ver-inline-menu li:hover i {\n      color: #fff;\n      background: #c4d5df !important; }\n    .ver-inline-menu li.active a {\n      border-left: solid 2px #0c91e5; }\n    .ver-inline-menu li.active i {\n      background: #0c91e5 !important; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li.active i {\n      color: #fff;\n      background: #169ef4;\n      text-decoration: none; }\n    .ver-inline-menu li.active a,\n    .ver-inline-menu li:hover a {\n      font-size: 14px; }\n    .ver-inline-menu li.active:after {\n      content: '';\n      display: inline-block;\n      border-bottom: 6px solid transparent;\n      border-top: 6px solid transparent;\n      border-left: 6px solid #169ef4;\n      position: absolute;\n      top: 12px;\n      right: -5px; }\n\n@media (max-width: 767px) {\n  .ver-inline-menu > li.active:after {\n    display: none; } }\n\n/***\nSeparated List\n***/\n.list-separated {\n  margin-top: 10px;\n  margin-bottom: 15px; }\n  .list-separated > div:last-child {\n    border-right: 0; }\n  @media (max-width: 767px) {\n    .list-separated {\n      /* 767px */ }\n      .list-separated > div {\n        margin-bottom: 20px; } }\n\n/***\nNumber & Chart Stats\n***/\n.number-stats {\n  margin: 10px 0; }\n  .number-stats .stat-number {\n    display: inline-block;\n    margin: 0 5px; }\n    .number-stats .stat-number .title {\n      font-size: 13px;\n      margin-bottom: 3px;\n      color: #B8C3C7; }\n    .number-stats .stat-number .number {\n      font-size: 27px;\n      line-height: 27px;\n      color: #7D8C9D; }\n  .number-stats .stat-chart {\n    display: inline-block;\n    margin: 0 5px; }\n  .number-stats > div {\n    border-right: 1px solid #f5f5f5; }\n    .number-stats > div:last-child {\n      border-right: 0; }\n  .number-stats .stat-left {\n    float: right; }\n    .number-stats .stat-left .stat-number {\n      float: right;\n      text-align: right; }\n    .number-stats .stat-left .stat-chart {\n      float: right; }\n  .number-stats .stat-right {\n    float: left !important; }\n    .number-stats .stat-right .stat-number {\n      float: left;\n      text-align: left; }\n    .number-stats .stat-right .stat-chart {\n      float: left; }\n  .number-stats .stat-number {\n    float: left;\n    text-align: left; }\n  .number-stats .stat-chart {\n    float: left; }\n\n/***\nGeneral User Record Listing\n***/\n.general-item-list > .item {\n  padding: 10px 0;\n  border-bottom: 1px solid #F1F4F7; }\n  .general-item-list > .item:last-child {\n    border-bottom: 0; }\n  .general-item-list > .item > .item-head {\n    margin-bottom: 5px; }\n    .general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after {\n      content: \" \";\n      display: table; }\n    .general-item-list > .item > .item-head:after {\n      clear: both; }\n    .general-item-list > .item > .item-head > .item-details {\n      display: inline-block;\n      float: left; }\n      .general-item-list > .item > .item-head > .item-details > .item-pic {\n        height: 35px;\n        margin-right: 10px;\n        -webkit-border-radius: 100%;\n        -moz-border-radius: 100%;\n        -ms-border-radius: 100%;\n        -o-border-radius: 100%;\n        border-radius: 100%; }\n      .general-item-list > .item > .item-head > .item-details > .item-name {\n        display: inline-block;\n        margin-right: 10px; }\n      .general-item-list > .item > .item-head > .item-details > .item-label {\n        color: #C0C9CC; }\n    .general-item-list > .item > .item-head > .item-status {\n      color: #C0C9CC;\n      top: 10px;\n      position: relative;\n      display: inline-block;\n      float: right; }\n      .general-item-list > .item > .item-head > .item-status > .badge {\n        margin-top: -2px; }\n  .general-item-list > .item > .item-body {\n    color: #96a5aa; }\n\n/***\nFile dropzone\n***/\n.file-drop-zone {\n  border: 2px dashed #ddd;\n  padding: 30px;\n  text-align: center; }\n  .file-drop-zone.file-drop-zone-over {\n    border-color: #aaa; }\n\n/***\nFontawesome Icons\n***/\n[class^=\"fa-\"]:not(.fa-stack),\n[class^=\"glyphicon-\"],\n[class^=\"icon-\"],\n[class*=\" fa-\"]:not(.fa-stack),\n[class*=\" glyphicon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  *margin-right: .3em;\n  line-height: 14px;\n  -webkit-font-smoothing: antialiased; }\n\n/* Make font awesome icons fixed width */\nli [class^=\"fa-\"],\nli [class^=\"glyphicon-\"],\nli [class^=\"icon-\"],\nli [class*=\" fa-\"],\nli [class*=\" glyphicon-\"],\nli [class*=\" icon-\"] {\n  display: inline-block;\n  width: 1.25em;\n  text-align: center; }\n\nli [class^=\"glyphicon-\"],\nli [class*=\" glyphicon-\"] {\n  top: 2px; }\n\nli [class^=\"icon-\"],\nli [class*=\" icon-\"] {\n  top: 1px;\n  position: relative; }\n\nli [class^=\"fa-\"].icon-large,\nli [class^=\"glyphicon-\"].icon-large,\nli [class^=\"icon-\"].icon-large,\nli [class*=\" fa-\"].icon-large,\nli [class*=\" glyphicon-\"].icon-large,\nli [class*=\" icon-\"].icon-large {\n  /* increased font size for icon-large */\n  width: 1.5625em; }\n\n/* Icon states */\n.icon-state-default {\n  color: #bac3d0; }\n\n.icon-state-success {\n  color: #36c6d3; }\n\n.icon-state-info {\n  color: #659be0; }\n\n.icon-state-warning {\n  color: #F1C40F; }\n\n.icon-state-danger {\n  color: #ed6b75; }\n\n/***\nFont Awesome 4.x Demo\n***/\n.fa-item {\n  font-size: 14px;\n  padding: 10px 10px 10px 20px; }\n  .fa-item i {\n    font-size: 16px;\n    display: inline-block;\n    width: 20px;\n    color: #333; }\n  .fa-item:hover {\n    cursor: pointer;\n    background: #eee; }\n\n/***\nSimple Line Icons Demo\n***/\n.simplelineicons-demo .item-box {\n  display: inline-block;\n  font-size: 16px;\n  margin: 0 -0.22em 1em 0;\n  padding-left: 1em;\n  width: 100%; }\n  .simplelineicons-demo .item-box .item {\n    background-color: #fff;\n    color: #33383e;\n    border-radius: 8px;\n    display: inline-block;\n    padding: 10px;\n    width: 100%; }\n    .simplelineicons-demo .item-box .item span {\n      font-size: 22px; }\n\n@media only screen and (min-width: 768px) {\n  .simplelineicons-demo .item-box {\n    width: 33.333%; } }\n\n/*** \nGlyphicons Demo\n***/\n.glyphicons-demo ul {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.bs-glyphicon-class {\n  text-align: center; }\n\n.bs-glyphicons {\n  padding-left: 0;\n  padding-bottom: 1px;\n  margin-bottom: 20px;\n  list-style: none;\n  overflow: hidden; }\n\n.glyphicons-demo ul li {\n  float: left;\n  width: 25%;\n  height: 115px;\n  padding: 10px;\n  margin: 0 -1px -1px 0;\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  border: 1px solid #ddd; }\n\n.glyphicons-demo .glyphicon {\n  display: block;\n  margin: 5px auto 10px;\n  font-size: 24px;\n  color: #444; }\n\n.glyphicons-demo ul li:hover {\n  background-color: rgba(86, 61, 124, 0.1); }\n\n@media (min-width: 768px) {\n  .glyphicons-demo ul li {\n    width: 12.5%; } }\n\n/***\nCustomized Bootstrap Alerts\n***/\n.alert {\n  border-width: 1px; }\n  .alert > p {\n    margin: 0; }\n  .alert.alert-borderless {\n    border: 0; }\n\n/***\nCustom Bootstrap Badges\n***/\n.badge {\n  font-size: 11px !important;\n  font-weight: 300;\n  text-align: center;\n  height: 18px;\n  color: #fff;\n  padding: 3px 6px 3px 6px;\n  -webkit-border-radius: 12px !important;\n  -moz-border-radius: 12px !important;\n  border-radius: 12px !important;\n  text-shadow: none !important;\n  text-align: center;\n  vertical-align: middle; }\n  .badge.badge-roundless {\n    -webkit-border-radius: 0 !important;\n    -moz-border-radius: 0 !important;\n    border-radius: 0 !important; }\n  .badge.badge-empty {\n    display: inline-block;\n    padding: 0;\n    min-width: 8px;\n    height: 8px;\n    width: 8px; }\n\n/* Badge variants */\n.badge-default {\n  background-color: #bac3d0;\n  background-image: none; }\n\n.badge-primary {\n  background-color: #337ab7;\n  background-image: none; }\n\n.badge-info {\n  background-color: #659be0;\n  background-image: none; }\n\n.badge-success {\n  background-color: #36c6d3;\n  background-image: none; }\n\n.badge-danger {\n  background-color: #ed6b75;\n  background-image: none; }\n\n.badge-warning {\n  background-color: #F1C40F;\n  background-image: none; }\n\n/* Fix badge position for navs */\n.nav.nav-pills > li > a > .badge,\n.nav.nav-stacked > li > a > .badge {\n  margin-top: -2px; }\n\n/***\nDropdown Menu Badges\n***/\n.dropdown-menu > li > a > .badge {\n  position: absolute;\n  margin-top: 1px;\n  right: 3px;\n  display: inline; }\n\n.dropdown-menu.badge-roundless {\n  -webkit-border-radius: 0 !important;\n  -moz-border-radius: 0 !important;\n  border-radius: 0 !important; }\n\n/***\nCustom buttons based on bootstrap SASS\n***/\n.btn {\n  outline: none !important;\n  box-shadow: none !important; }\n  .btn:hover {\n    transition: all 0.3s; }\n\n.btn:not(.btn-sm):not(.btn-lg) {\n  line-height: 1.44; }\n\n/***\nCustom color buttons \n***/\n.btn.white:not(.btn-outline) {\n  color: #666;\n  background-color: #ffffff;\n  border-color: #ffffff; }\n  .btn.white:not(.btn-outline):focus, .btn.white:not(.btn-outline).focus {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):hover {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #e6e6e6;\n    border-color: #e0e0e0; }\n    .btn.white:not(.btn-outline):active:hover, .btn.white:not(.btn-outline):active:focus, .btn.white:not(.btn-outline):active.focus, .btn.white:not(.btn-outline).active:hover, .btn.white:not(.btn-outline).active:focus, .btn.white:not(.btn-outline).active.focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.white:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #d4d4d4;\n      border-color: #bfbfbf; }\n  .btn.white:not(.btn-outline):active, .btn.white:not(.btn-outline).active,\n  .open > .btn.white:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.white:not(.btn-outline).disabled:hover, .btn.white:not(.btn-outline).disabled:focus, .btn.white:not(.btn-outline).disabled.focus, .btn.white:not(.btn-outline)[disabled]:hover, .btn.white:not(.btn-outline)[disabled]:focus, .btn.white:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.white:not(.btn-outline):hover,\n  fieldset[disabled] .btn.white:not(.btn-outline):focus,\n  fieldset[disabled] .btn.white:not(.btn-outline).focus {\n    background-color: #ffffff;\n    border-color: #ffffff; }\n  .btn.white:not(.btn-outline) .badge {\n    color: #ffffff;\n    background-color: #666; }\n\n.btn.btn-outline.white {\n  border-color: #ffffff;\n  color: #ffffff;\n  background: none; }\n  .btn.btn-outline.white:hover, .btn.btn-outline.white:active, .btn.btn-outline.white:active:hover, .btn.btn-outline.white:active:focus, .btn.btn-outline.white:focus, .btn.btn-outline.white.active {\n    border-color: #ffffff;\n    color: #666;\n    background-color: #ffffff; }\n\n.btn.white-stripe {\n  border-left: 4px solid #ffffff !important; }\n\n.btn.white.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.default:not(.btn-outline) {\n  color: #666;\n  background-color: #e1e5ec;\n  border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline):focus, .btn.default:not(.btn-outline).focus {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):hover {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    color: #666;\n    background-color: #c2cad8;\n    border-color: #bcc5d4; }\n    .btn.default:not(.btn-outline):active:hover, .btn.default:not(.btn-outline):active:focus, .btn.default:not(.btn-outline):active.focus, .btn.default:not(.btn-outline).active:hover, .btn.default:not(.btn-outline).active:focus, .btn.default:not(.btn-outline).active.focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.default:not(.btn-outline).dropdown-toggle.focus {\n      color: #666;\n      background-color: #acb7ca;\n      border-color: #93a1bb; }\n  .btn.default:not(.btn-outline):active, .btn.default:not(.btn-outline).active,\n  .open > .btn.default:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.default:not(.btn-outline).disabled:hover, .btn.default:not(.btn-outline).disabled:focus, .btn.default:not(.btn-outline).disabled.focus, .btn.default:not(.btn-outline)[disabled]:hover, .btn.default:not(.btn-outline)[disabled]:focus, .btn.default:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.default:not(.btn-outline):hover,\n  fieldset[disabled] .btn.default:not(.btn-outline):focus,\n  fieldset[disabled] .btn.default:not(.btn-outline).focus {\n    background-color: #e1e5ec;\n    border-color: #e1e5ec; }\n  .btn.default:not(.btn-outline) .badge {\n    color: #e1e5ec;\n    background-color: #666; }\n\n.btn.btn-outline.default {\n  border-color: #e1e5ec;\n  color: #e1e5ec;\n  background: none; }\n  .btn.btn-outline.default:hover, .btn.btn-outline.default:active, .btn.btn-outline.default:active:hover, .btn.btn-outline.default:active:focus, .btn.btn-outline.default:focus, .btn.btn-outline.default.active {\n    border-color: #e1e5ec;\n    color: #666;\n    background-color: #e1e5ec; }\n\n.btn.default-stripe {\n  border-left: 4px solid #e1e5ec !important; }\n\n.btn.default.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2f353b;\n  border-color: #2f353b; }\n  .btn.dark:not(.btn-outline):focus, .btn.dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: black; }\n  .btn.dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #181c1f;\n    border-color: #141619; }\n    .btn.dark:not(.btn-outline):active:hover, .btn.dark:not(.btn-outline):active:focus, .btn.dark:not(.btn-outline):active.focus, .btn.dark:not(.btn-outline).active:hover, .btn.dark:not(.btn-outline).active:focus, .btn.dark:not(.btn-outline).active.focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #090a0b;\n      border-color: black; }\n  .btn.dark:not(.btn-outline):active, .btn.dark:not(.btn-outline).active,\n  .open > .btn.dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.dark:not(.btn-outline).disabled:hover, .btn.dark:not(.btn-outline).disabled:focus, .btn.dark:not(.btn-outline).disabled.focus, .btn.dark:not(.btn-outline)[disabled]:hover, .btn.dark:not(.btn-outline)[disabled]:focus, .btn.dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.dark:not(.btn-outline).focus {\n    background-color: #2f353b;\n    border-color: #2f353b; }\n  .btn.dark:not(.btn-outline) .badge {\n    color: #2f353b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.dark {\n  border-color: #2f353b;\n  color: #2f353b;\n  background: none; }\n  .btn.btn-outline.dark:hover, .btn.btn-outline.dark:active, .btn.btn-outline.dark:active:hover, .btn.btn-outline.dark:active:focus, .btn.btn-outline.dark:focus, .btn.btn-outline.dark.active {\n    border-color: #2f353b;\n    color: #FFFFFF;\n    background-color: #2f353b; }\n\n.btn.dark-stripe {\n  border-left: 4px solid #2f353b !important; }\n\n.btn.dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3598dc;\n  border-color: #3598dc; }\n  .btn.blue:not(.btn-outline):focus, .btn.blue:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #15527c; }\n  .btn.blue:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #217ebd;\n    border-color: #1f78b5; }\n    .btn.blue:not(.btn-outline):active:hover, .btn.blue:not(.btn-outline):active:focus, .btn.blue:not(.btn-outline):active.focus, .btn.blue:not(.btn-outline).active:hover, .btn.blue:not(.btn-outline).active:focus, .btn.blue:not(.btn-outline).active.focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1c699f;\n      border-color: #15527c; }\n  .btn.blue:not(.btn-outline):active, .btn.blue:not(.btn-outline).active,\n  .open > .btn.blue:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue:not(.btn-outline).disabled:hover, .btn.blue:not(.btn-outline).disabled:focus, .btn.blue:not(.btn-outline).disabled.focus, .btn.blue:not(.btn-outline)[disabled]:hover, .btn.blue:not(.btn-outline)[disabled]:focus, .btn.blue:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue:not(.btn-outline).focus {\n    background-color: #3598dc;\n    border-color: #3598dc; }\n  .btn.blue:not(.btn-outline) .badge {\n    color: #3598dc;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue {\n  border-color: #3598dc;\n  color: #3598dc;\n  background: none; }\n  .btn.btn-outline.blue:hover, .btn.btn-outline.blue:active, .btn.btn-outline.blue:active:hover, .btn.btn-outline.blue:active:focus, .btn.btn-outline.blue:focus, .btn.btn-outline.blue.active {\n    border-color: #3598dc;\n    color: #FFFFFF;\n    background-color: #3598dc; }\n\n.btn.blue-stripe {\n  border-left: 4px solid #3598dc !important; }\n\n.btn.blue.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-madison:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #578ebe;\n  border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline):focus, .btn.blue-madison:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3f74a3;\n    border-color: #3c6f9c; }\n    .btn.blue-madison:not(.btn-outline):active:hover, .btn.blue-madison:not(.btn-outline):active:focus, .btn.blue-madison:not(.btn-outline):active.focus, .btn.blue-madison:not(.btn-outline).active:hover, .btn.blue-madison:not(.btn-outline).active:focus, .btn.blue-madison:not(.btn-outline).active.focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #356289;\n      border-color: #2a4d6c; }\n  .btn.blue-madison:not(.btn-outline):active, .btn.blue-madison:not(.btn-outline).active,\n  .open > .btn.blue-madison:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-madison:not(.btn-outline).disabled:hover, .btn.blue-madison:not(.btn-outline).disabled:focus, .btn.blue-madison:not(.btn-outline).disabled.focus, .btn.blue-madison:not(.btn-outline)[disabled]:hover, .btn.blue-madison:not(.btn-outline)[disabled]:focus, .btn.blue-madison:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-madison:not(.btn-outline).focus {\n    background-color: #578ebe;\n    border-color: #578ebe; }\n  .btn.blue-madison:not(.btn-outline) .badge {\n    color: #578ebe;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-madison {\n  border-color: #578ebe;\n  color: #578ebe;\n  background: none; }\n  .btn.btn-outline.blue-madison:hover, .btn.btn-outline.blue-madison:active, .btn.btn-outline.blue-madison:active:hover, .btn.btn-outline.blue-madison:active:focus, .btn.btn-outline.blue-madison:focus, .btn.btn-outline.blue-madison.active {\n    border-color: #578ebe;\n    color: #FFFFFF;\n    background-color: #578ebe; }\n\n.btn.blue-madison-stripe {\n  border-left: 4px solid #578ebe !important; }\n\n.btn.blue-madison.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-chambray:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2C3E50;\n  border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline):focus, .btn.blue-chambray:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1a252f;\n    border-color: #161f29; }\n    .btn.blue-chambray:not(.btn-outline):active:hover, .btn.blue-chambray:not(.btn-outline):active:focus, .btn.blue-chambray:not(.btn-outline):active.focus, .btn.blue-chambray:not(.btn-outline).active:hover, .btn.blue-chambray:not(.btn-outline).active:focus, .btn.blue-chambray:not(.btn-outline).active.focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0d1318;\n      border-color: black; }\n  .btn.blue-chambray:not(.btn-outline):active, .btn.blue-chambray:not(.btn-outline).active,\n  .open > .btn.blue-chambray:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-chambray:not(.btn-outline).disabled:hover, .btn.blue-chambray:not(.btn-outline).disabled:focus, .btn.blue-chambray:not(.btn-outline).disabled.focus, .btn.blue-chambray:not(.btn-outline)[disabled]:hover, .btn.blue-chambray:not(.btn-outline)[disabled]:focus, .btn.blue-chambray:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-chambray:not(.btn-outline).focus {\n    background-color: #2C3E50;\n    border-color: #2C3E50; }\n  .btn.blue-chambray:not(.btn-outline) .badge {\n    color: #2C3E50;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-chambray {\n  border-color: #2C3E50;\n  color: #2C3E50;\n  background: none; }\n  .btn.btn-outline.blue-chambray:hover, .btn.btn-outline.blue-chambray:active, .btn.btn-outline.blue-chambray:active:hover, .btn.btn-outline.blue-chambray:active:focus, .btn.btn-outline.blue-chambray:focus, .btn.btn-outline.blue-chambray.active {\n    border-color: #2C3E50;\n    color: #FFFFFF;\n    background-color: #2C3E50; }\n\n.btn.blue-chambray-stripe {\n  border-left: 4px solid #2C3E50 !important; }\n\n.btn.blue-chambray.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-ebonyclay:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #22313F;\n  border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline):focus, .btn.blue-ebonyclay:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #10171e;\n    border-color: #0d1217; }\n    .btn.blue-ebonyclay:not(.btn-outline):active:hover, .btn.blue-ebonyclay:not(.btn-outline):active:focus, .btn.blue-ebonyclay:not(.btn-outline):active.focus, .btn.blue-ebonyclay:not(.btn-outline).active:hover, .btn.blue-ebonyclay:not(.btn-outline).active:focus, .btn.blue-ebonyclay:not(.btn-outline).active.focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #040507;\n      border-color: black; }\n  .btn.blue-ebonyclay:not(.btn-outline):active, .btn.blue-ebonyclay:not(.btn-outline).active,\n  .open > .btn.blue-ebonyclay:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-ebonyclay:not(.btn-outline).disabled:hover, .btn.blue-ebonyclay:not(.btn-outline).disabled:focus, .btn.blue-ebonyclay:not(.btn-outline).disabled.focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:hover, .btn.blue-ebonyclay:not(.btn-outline)[disabled]:focus, .btn.blue-ebonyclay:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-ebonyclay:not(.btn-outline).focus {\n    background-color: #22313F;\n    border-color: #22313F; }\n  .btn.blue-ebonyclay:not(.btn-outline) .badge {\n    color: #22313F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-ebonyclay {\n  border-color: #22313F;\n  color: #22313F;\n  background: none; }\n  .btn.btn-outline.blue-ebonyclay:hover, .btn.btn-outline.blue-ebonyclay:active, .btn.btn-outline.blue-ebonyclay:active:hover, .btn.btn-outline.blue-ebonyclay:active:focus, .btn.btn-outline.blue-ebonyclay:focus, .btn.btn-outline.blue-ebonyclay.active {\n    border-color: #22313F;\n    color: #FFFFFF;\n    background-color: #22313F; }\n\n.btn.blue-ebonyclay-stripe {\n  border-left: 4px solid #22313F !important; }\n\n.btn.blue-ebonyclay.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-hoki:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #67809F;\n  border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline):focus, .btn.blue-hoki:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #526781;\n    border-color: #4e627b; }\n    .btn.blue-hoki:not(.btn-outline):active:hover, .btn.blue-hoki:not(.btn-outline):active:focus, .btn.blue-hoki:not(.btn-outline):active.focus, .btn.blue-hoki:not(.btn-outline).active:hover, .btn.blue-hoki:not(.btn-outline).active:focus, .btn.blue-hoki:not(.btn-outline).active.focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #44566b;\n      border-color: #344252; }\n  .btn.blue-hoki:not(.btn-outline):active, .btn.blue-hoki:not(.btn-outline).active,\n  .open > .btn.blue-hoki:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-hoki:not(.btn-outline).disabled:hover, .btn.blue-hoki:not(.btn-outline).disabled:focus, .btn.blue-hoki:not(.btn-outline).disabled.focus, .btn.blue-hoki:not(.btn-outline)[disabled]:hover, .btn.blue-hoki:not(.btn-outline)[disabled]:focus, .btn.blue-hoki:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-hoki:not(.btn-outline).focus {\n    background-color: #67809F;\n    border-color: #67809F; }\n  .btn.blue-hoki:not(.btn-outline) .badge {\n    color: #67809F;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-hoki {\n  border-color: #67809F;\n  color: #67809F;\n  background: none; }\n  .btn.btn-outline.blue-hoki:hover, .btn.btn-outline.blue-hoki:active, .btn.btn-outline.blue-hoki:active:hover, .btn.btn-outline.blue-hoki:active:focus, .btn.btn-outline.blue-hoki:focus, .btn.btn-outline.blue-hoki.active {\n    border-color: #67809F;\n    color: #FFFFFF;\n    background-color: #67809F; }\n\n.btn.blue-hoki-stripe {\n  border-left: 4px solid #67809F !important; }\n\n.btn.blue-hoki.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4B77BE;\n  border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline):focus, .btn.blue-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #395f9d;\n    border-color: #365b96; }\n    .btn.blue-steel:not(.btn-outline):active:hover, .btn.blue-steel:not(.btn-outline):active:focus, .btn.blue-steel:not(.btn-outline):active.focus, .btn.blue-steel:not(.btn-outline).active:hover, .btn.blue-steel:not(.btn-outline).active:focus, .btn.blue-steel:not(.btn-outline).active.focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f4f83;\n      border-color: #243d65; }\n  .btn.blue-steel:not(.btn-outline):active, .btn.blue-steel:not(.btn-outline).active,\n  .open > .btn.blue-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-steel:not(.btn-outline).disabled:hover, .btn.blue-steel:not(.btn-outline).disabled:focus, .btn.blue-steel:not(.btn-outline).disabled.focus, .btn.blue-steel:not(.btn-outline)[disabled]:hover, .btn.blue-steel:not(.btn-outline)[disabled]:focus, .btn.blue-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-steel:not(.btn-outline).focus {\n    background-color: #4B77BE;\n    border-color: #4B77BE; }\n  .btn.blue-steel:not(.btn-outline) .badge {\n    color: #4B77BE;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-steel {\n  border-color: #4B77BE;\n  color: #4B77BE;\n  background: none; }\n  .btn.btn-outline.blue-steel:hover, .btn.btn-outline.blue-steel:active, .btn.btn-outline.blue-steel:active:hover, .btn.btn-outline.blue-steel:active:focus, .btn.btn-outline.blue-steel:focus, .btn.btn-outline.blue-steel.active {\n    border-color: #4B77BE;\n    color: #FFFFFF;\n    background-color: #4B77BE; }\n\n.btn.blue-steel-stripe {\n  border-left: 4px solid #4B77BE !important; }\n\n.btn.blue-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4c87b9;\n  border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline):focus, .btn.blue-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b6d97;\n    border-color: #386890; }\n    .btn.blue-soft:not(.btn-outline):active:hover, .btn.blue-soft:not(.btn-outline):active:focus, .btn.blue-soft:not(.btn-outline):active.focus, .btn.blue-soft:not(.btn-outline).active:hover, .btn.blue-soft:not(.btn-outline).active:focus, .btn.blue-soft:not(.btn-outline).active.focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #315a7d;\n      border-color: #264560; }\n  .btn.blue-soft:not(.btn-outline):active, .btn.blue-soft:not(.btn-outline).active,\n  .open > .btn.blue-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-soft:not(.btn-outline).disabled:hover, .btn.blue-soft:not(.btn-outline).disabled:focus, .btn.blue-soft:not(.btn-outline).disabled.focus, .btn.blue-soft:not(.btn-outline)[disabled]:hover, .btn.blue-soft:not(.btn-outline)[disabled]:focus, .btn.blue-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-soft:not(.btn-outline).focus {\n    background-color: #4c87b9;\n    border-color: #4c87b9; }\n  .btn.blue-soft:not(.btn-outline) .badge {\n    color: #4c87b9;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-soft {\n  border-color: #4c87b9;\n  color: #4c87b9;\n  background: none; }\n  .btn.btn-outline.blue-soft:hover, .btn.btn-outline.blue-soft:active, .btn.btn-outline.blue-soft:active:hover, .btn.btn-outline.blue-soft:active:focus, .btn.btn-outline.blue-soft:focus, .btn.btn-outline.blue-soft.active {\n    border-color: #4c87b9;\n    color: #FFFFFF;\n    background-color: #4c87b9; }\n\n.btn.blue-soft-stripe {\n  border-left: 4px solid #4c87b9 !important; }\n\n.btn.blue-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5e738b;\n  border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline):focus, .btn.blue-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #495a6d;\n    border-color: #455566; }\n    .btn.blue-dark:not(.btn-outline):active:hover, .btn.blue-dark:not(.btn-outline):active:focus, .btn.blue-dark:not(.btn-outline):active.focus, .btn.blue-dark:not(.btn-outline).active:hover, .btn.blue-dark:not(.btn-outline).active:focus, .btn.blue-dark:not(.btn-outline).active.focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #3b4857;\n      border-color: #2b343f; }\n  .btn.blue-dark:not(.btn-outline):active, .btn.blue-dark:not(.btn-outline).active,\n  .open > .btn.blue-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-dark:not(.btn-outline).disabled:hover, .btn.blue-dark:not(.btn-outline).disabled:focus, .btn.blue-dark:not(.btn-outline).disabled.focus, .btn.blue-dark:not(.btn-outline)[disabled]:hover, .btn.blue-dark:not(.btn-outline)[disabled]:focus, .btn.blue-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-dark:not(.btn-outline).focus {\n    background-color: #5e738b;\n    border-color: #5e738b; }\n  .btn.blue-dark:not(.btn-outline) .badge {\n    color: #5e738b;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-dark {\n  border-color: #5e738b;\n  color: #5e738b;\n  background: none; }\n  .btn.btn-outline.blue-dark:hover, .btn.btn-outline.blue-dark:active, .btn.btn-outline.blue-dark:active:hover, .btn.btn-outline.blue-dark:active:focus, .btn.btn-outline.blue-dark:focus, .btn.btn-outline.blue-dark.active {\n    border-color: #5e738b;\n    color: #FFFFFF;\n    background-color: #5e738b; }\n\n.btn.blue-dark-stripe {\n  border-left: 4px solid #5e738b !important; }\n\n.btn.blue-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #5C9BD1;\n  border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline):focus, .btn.blue-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3782c3;\n    border-color: #357dbb; }\n    .btn.blue-sharp:not(.btn-outline):active:hover, .btn.blue-sharp:not(.btn-outline):active:focus, .btn.blue-sharp:not(.btn-outline):active.focus, .btn.blue-sharp:not(.btn-outline).active:hover, .btn.blue-sharp:not(.btn-outline).active:focus, .btn.blue-sharp:not(.btn-outline).active.focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2f70a7;\n      border-color: #265a87; }\n  .btn.blue-sharp:not(.btn-outline):active, .btn.blue-sharp:not(.btn-outline).active,\n  .open > .btn.blue-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-sharp:not(.btn-outline).disabled:hover, .btn.blue-sharp:not(.btn-outline).disabled:focus, .btn.blue-sharp:not(.btn-outline).disabled.focus, .btn.blue-sharp:not(.btn-outline)[disabled]:hover, .btn.blue-sharp:not(.btn-outline)[disabled]:focus, .btn.blue-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-sharp:not(.btn-outline).focus {\n    background-color: #5C9BD1;\n    border-color: #5C9BD1; }\n  .btn.blue-sharp:not(.btn-outline) .badge {\n    color: #5C9BD1;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-sharp {\n  border-color: #5C9BD1;\n  color: #5C9BD1;\n  background: none; }\n  .btn.btn-outline.blue-sharp:hover, .btn.btn-outline.blue-sharp:active, .btn.btn-outline.blue-sharp:active:hover, .btn.btn-outline.blue-sharp:active:focus, .btn.btn-outline.blue-sharp:focus, .btn.btn-outline.blue-sharp.active {\n    border-color: #5C9BD1;\n    color: #FFFFFF;\n    background-color: #5C9BD1; }\n\n.btn.blue-sharp-stripe {\n  border-left: 4px solid #5C9BD1 !important; }\n\n.btn.blue-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.blue-oleo:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #94A0B2;\n  border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline):focus, .btn.blue-oleo:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #76869d;\n    border-color: #708098; }\n    .btn.blue-oleo:not(.btn-outline):active:hover, .btn.blue-oleo:not(.btn-outline):active:focus, .btn.blue-oleo:not(.btn-outline):active.focus, .btn.blue-oleo:not(.btn-outline).active:hover, .btn.blue-oleo:not(.btn-outline).active:focus, .btn.blue-oleo:not(.btn-outline).active.focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #64748b;\n      border-color: #536073; }\n  .btn.blue-oleo:not(.btn-outline):active, .btn.blue-oleo:not(.btn-outline).active,\n  .open > .btn.blue-oleo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.blue-oleo:not(.btn-outline).disabled:hover, .btn.blue-oleo:not(.btn-outline).disabled:focus, .btn.blue-oleo:not(.btn-outline).disabled.focus, .btn.blue-oleo:not(.btn-outline)[disabled]:hover, .btn.blue-oleo:not(.btn-outline)[disabled]:focus, .btn.blue-oleo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.blue-oleo:not(.btn-outline).focus {\n    background-color: #94A0B2;\n    border-color: #94A0B2; }\n  .btn.blue-oleo:not(.btn-outline) .badge {\n    color: #94A0B2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.blue-oleo {\n  border-color: #94A0B2;\n  color: #94A0B2;\n  background: none; }\n  .btn.btn-outline.blue-oleo:hover, .btn.btn-outline.blue-oleo:active, .btn.btn-outline.blue-oleo:active:hover, .btn.btn-outline.blue-oleo:active:focus, .btn.btn-outline.blue-oleo:focus, .btn.btn-outline.blue-oleo.active {\n    border-color: #94A0B2;\n    color: #FFFFFF;\n    background-color: #94A0B2; }\n\n.btn.blue-oleo-stripe {\n  border-left: 4px solid #94A0B2 !important; }\n\n.btn.blue-oleo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #32c5d2;\n  border-color: #32c5d2; }\n  .btn.green:not(.btn-outline):focus, .btn.green:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #18666d; }\n  .btn.green:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #26a1ab;\n    border-color: #2499a3; }\n    .btn.green:not(.btn-outline):active:hover, .btn.green:not(.btn-outline):active:focus, .btn.green:not(.btn-outline):active.focus, .btn.green:not(.btn-outline).active:hover, .btn.green:not(.btn-outline).active:focus, .btn.green:not(.btn-outline).active.focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1f858e;\n      border-color: #18666d; }\n  .btn.green:not(.btn-outline):active, .btn.green:not(.btn-outline).active,\n  .open > .btn.green:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green:not(.btn-outline).disabled:hover, .btn.green:not(.btn-outline).disabled:focus, .btn.green:not(.btn-outline).disabled.focus, .btn.green:not(.btn-outline)[disabled]:hover, .btn.green:not(.btn-outline)[disabled]:focus, .btn.green:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green:not(.btn-outline).focus {\n    background-color: #32c5d2;\n    border-color: #32c5d2; }\n  .btn.green:not(.btn-outline) .badge {\n    color: #32c5d2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green {\n  border-color: #32c5d2;\n  color: #32c5d2;\n  background: none; }\n  .btn.btn-outline.green:hover, .btn.btn-outline.green:active, .btn.btn-outline.green:active:hover, .btn.btn-outline.green:active:focus, .btn.btn-outline.green:focus, .btn.btn-outline.green.active {\n    border-color: #32c5d2;\n    color: #FFFFFF;\n    background-color: #32c5d2; }\n\n.btn.green-stripe {\n  border-left: 4px solid #32c5d2 !important; }\n\n.btn.green.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-meadow:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BBC9B;\n  border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline):focus, .btn.green-meadow:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #158f76;\n    border-color: #13866f; }\n    .btn.green-meadow:not(.btn-outline):active:hover, .btn.green-meadow:not(.btn-outline):active:focus, .btn.green-meadow:not(.btn-outline):active.focus, .btn.green-meadow:not(.btn-outline).active:hover, .btn.green-meadow:not(.btn-outline).active:focus, .btn.green-meadow:not(.btn-outline).active.focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #10705c;\n      border-color: #0b4d3f; }\n  .btn.green-meadow:not(.btn-outline):active, .btn.green-meadow:not(.btn-outline).active,\n  .open > .btn.green-meadow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-meadow:not(.btn-outline).disabled:hover, .btn.green-meadow:not(.btn-outline).disabled:focus, .btn.green-meadow:not(.btn-outline).disabled.focus, .btn.green-meadow:not(.btn-outline)[disabled]:hover, .btn.green-meadow:not(.btn-outline)[disabled]:focus, .btn.green-meadow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-meadow:not(.btn-outline).focus {\n    background-color: #1BBC9B;\n    border-color: #1BBC9B; }\n  .btn.green-meadow:not(.btn-outline) .badge {\n    color: #1BBC9B;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-meadow {\n  border-color: #1BBC9B;\n  color: #1BBC9B;\n  background: none; }\n  .btn.btn-outline.green-meadow:hover, .btn.btn-outline.green-meadow:active, .btn.btn-outline.green-meadow:active:hover, .btn.btn-outline.green-meadow:active:focus, .btn.btn-outline.green-meadow:focus, .btn.btn-outline.green-meadow.active {\n    border-color: #1BBC9B;\n    color: #FFFFFF;\n    background-color: #1BBC9B; }\n\n.btn.green-meadow-stripe {\n  border-left: 4px solid #1BBC9B !important; }\n\n.btn.green-meadow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-seagreen:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #1BA39C;\n  border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline):focus, .btn.green-seagreen:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #147772;\n    border-color: #126e6a; }\n    .btn.green-seagreen:not(.btn-outline):active:hover, .btn.green-seagreen:not(.btn-outline):active:focus, .btn.green-seagreen:not(.btn-outline):active.focus, .btn.green-seagreen:not(.btn-outline).active:hover, .btn.green-seagreen:not(.btn-outline).active:focus, .btn.green-seagreen:not(.btn-outline).active.focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #0f5955;\n      border-color: #093633; }\n  .btn.green-seagreen:not(.btn-outline):active, .btn.green-seagreen:not(.btn-outline).active,\n  .open > .btn.green-seagreen:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-seagreen:not(.btn-outline).disabled:hover, .btn.green-seagreen:not(.btn-outline).disabled:focus, .btn.green-seagreen:not(.btn-outline).disabled.focus, .btn.green-seagreen:not(.btn-outline)[disabled]:hover, .btn.green-seagreen:not(.btn-outline)[disabled]:focus, .btn.green-seagreen:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-seagreen:not(.btn-outline).focus {\n    background-color: #1BA39C;\n    border-color: #1BA39C; }\n  .btn.green-seagreen:not(.btn-outline) .badge {\n    color: #1BA39C;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-seagreen {\n  border-color: #1BA39C;\n  color: #1BA39C;\n  background: none; }\n  .btn.btn-outline.green-seagreen:hover, .btn.btn-outline.green-seagreen:active, .btn.btn-outline.green-seagreen:active:hover, .btn.btn-outline.green-seagreen:active:focus, .btn.btn-outline.green-seagreen:focus, .btn.btn-outline.green-seagreen.active {\n    border-color: #1BA39C;\n    color: #FFFFFF;\n    background-color: #1BA39C; }\n\n.btn.green-seagreen-stripe {\n  border-left: 4px solid #1BA39C !important; }\n\n.btn.green-seagreen.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-turquoise:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #36D7B7;\n  border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline):focus, .btn.green-turquoise:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #24b699;\n    border-color: #22ad92; }\n    .btn.green-turquoise:not(.btn-outline):active:hover, .btn.green-turquoise:not(.btn-outline):active:focus, .btn.green-turquoise:not(.btn-outline):active.focus, .btn.green-turquoise:not(.btn-outline).active:hover, .btn.green-turquoise:not(.btn-outline).active:focus, .btn.green-turquoise:not(.btn-outline).active.focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1e9880;\n      border-color: #177663; }\n  .btn.green-turquoise:not(.btn-outline):active, .btn.green-turquoise:not(.btn-outline).active,\n  .open > .btn.green-turquoise:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-turquoise:not(.btn-outline).disabled:hover, .btn.green-turquoise:not(.btn-outline).disabled:focus, .btn.green-turquoise:not(.btn-outline).disabled.focus, .btn.green-turquoise:not(.btn-outline)[disabled]:hover, .btn.green-turquoise:not(.btn-outline)[disabled]:focus, .btn.green-turquoise:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-turquoise:not(.btn-outline).focus {\n    background-color: #36D7B7;\n    border-color: #36D7B7; }\n  .btn.green-turquoise:not(.btn-outline) .badge {\n    color: #36D7B7;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-turquoise {\n  border-color: #36D7B7;\n  color: #36D7B7;\n  background: none; }\n  .btn.btn-outline.green-turquoise:hover, .btn.btn-outline.green-turquoise:active, .btn.btn-outline.green-turquoise:active:hover, .btn.btn-outline.green-turquoise:active:focus, .btn.btn-outline.green-turquoise:focus, .btn.btn-outline.green-turquoise.active {\n    border-color: #36D7B7;\n    color: #FFFFFF;\n    background-color: #36D7B7; }\n\n.btn.green-turquoise-stripe {\n  border-left: 4px solid #36D7B7 !important; }\n\n.btn.green-turquoise.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-haze:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #44b6ae;\n  border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline):focus, .btn.green-haze:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #36918b;\n    border-color: #338983; }\n    .btn.green-haze:not(.btn-outline):active:hover, .btn.green-haze:not(.btn-outline):active:focus, .btn.green-haze:not(.btn-outline):active.focus, .btn.green-haze:not(.btn-outline).active:hover, .btn.green-haze:not(.btn-outline).active:focus, .btn.green-haze:not(.btn-outline).active.focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2c7772;\n      border-color: #215955; }\n  .btn.green-haze:not(.btn-outline):active, .btn.green-haze:not(.btn-outline).active,\n  .open > .btn.green-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-haze:not(.btn-outline).disabled:hover, .btn.green-haze:not(.btn-outline).disabled:focus, .btn.green-haze:not(.btn-outline).disabled.focus, .btn.green-haze:not(.btn-outline)[disabled]:hover, .btn.green-haze:not(.btn-outline)[disabled]:focus, .btn.green-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-haze:not(.btn-outline).focus {\n    background-color: #44b6ae;\n    border-color: #44b6ae; }\n  .btn.green-haze:not(.btn-outline) .badge {\n    color: #44b6ae;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-haze {\n  border-color: #44b6ae;\n  color: #44b6ae;\n  background: none; }\n  .btn.btn-outline.green-haze:hover, .btn.btn-outline.green-haze:active, .btn.btn-outline.green-haze:active:hover, .btn.btn-outline.green-haze:active:focus, .btn.btn-outline.green-haze:focus, .btn.btn-outline.green-haze.active {\n    border-color: #44b6ae;\n    color: #FFFFFF;\n    background-color: #44b6ae; }\n\n.btn.green-haze-stripe {\n  border-left: 4px solid #44b6ae !important; }\n\n.btn.green-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-jungle:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #26C281;\n  border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline):focus, .btn.green-jungle:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #1e9765;\n    border-color: #1c8f5f; }\n    .btn.green-jungle:not(.btn-outline):active:hover, .btn.green-jungle:not(.btn-outline):active:focus, .btn.green-jungle:not(.btn-outline):active.focus, .btn.green-jungle:not(.btn-outline).active:hover, .btn.green-jungle:not(.btn-outline).active:focus, .btn.green-jungle:not(.btn-outline).active.focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #187a51;\n      border-color: #11573a; }\n  .btn.green-jungle:not(.btn-outline):active, .btn.green-jungle:not(.btn-outline).active,\n  .open > .btn.green-jungle:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-jungle:not(.btn-outline).disabled:hover, .btn.green-jungle:not(.btn-outline).disabled:focus, .btn.green-jungle:not(.btn-outline).disabled.focus, .btn.green-jungle:not(.btn-outline)[disabled]:hover, .btn.green-jungle:not(.btn-outline)[disabled]:focus, .btn.green-jungle:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-jungle:not(.btn-outline).focus {\n    background-color: #26C281;\n    border-color: #26C281; }\n  .btn.green-jungle:not(.btn-outline) .badge {\n    color: #26C281;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-jungle {\n  border-color: #26C281;\n  color: #26C281;\n  background: none; }\n  .btn.btn-outline.green-jungle:hover, .btn.btn-outline.green-jungle:active, .btn.btn-outline.green-jungle:active:hover, .btn.btn-outline.green-jungle:active:focus, .btn.btn-outline.green-jungle:focus, .btn.btn-outline.green-jungle.active {\n    border-color: #26C281;\n    color: #FFFFFF;\n    background-color: #26C281; }\n\n.btn.green-jungle-stripe {\n  border-left: 4px solid #26C281 !important; }\n\n.btn.green-jungle.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-soft:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #3faba4;\n  border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline):focus, .btn.green-soft:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #318680;\n    border-color: #2f7e79; }\n    .btn.green-soft:not(.btn-outline):active:hover, .btn.green-soft:not(.btn-outline):active:focus, .btn.green-soft:not(.btn-outline):active.focus, .btn.green-soft:not(.btn-outline).active:hover, .btn.green-soft:not(.btn-outline).active:focus, .btn.green-soft:not(.btn-outline).active.focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #286c67;\n      border-color: #1d4e4b; }\n  .btn.green-soft:not(.btn-outline):active, .btn.green-soft:not(.btn-outline).active,\n  .open > .btn.green-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-soft:not(.btn-outline).disabled:hover, .btn.green-soft:not(.btn-outline).disabled:focus, .btn.green-soft:not(.btn-outline).disabled.focus, .btn.green-soft:not(.btn-outline)[disabled]:hover, .btn.green-soft:not(.btn-outline)[disabled]:focus, .btn.green-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-soft:not(.btn-outline).focus {\n    background-color: #3faba4;\n    border-color: #3faba4; }\n  .btn.green-soft:not(.btn-outline) .badge {\n    color: #3faba4;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-soft {\n  border-color: #3faba4;\n  color: #3faba4;\n  background: none; }\n  .btn.btn-outline.green-soft:hover, .btn.btn-outline.green-soft:active, .btn.btn-outline.green-soft:active:hover, .btn.btn-outline.green-soft:active:focus, .btn.btn-outline.green-soft:focus, .btn.btn-outline.green-soft.active {\n    border-color: #3faba4;\n    color: #FFFFFF;\n    background-color: #3faba4; }\n\n.btn.green-soft-stripe {\n  border-left: 4px solid #3faba4 !important; }\n\n.btn.green-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-dark:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #4DB3A2;\n  border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline):focus, .btn.green-dark:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3d9082;\n    border-color: #3a897b; }\n    .btn.green-dark:not(.btn-outline):active:hover, .btn.green-dark:not(.btn-outline):active:focus, .btn.green-dark:not(.btn-outline):active.focus, .btn.green-dark:not(.btn-outline).active:hover, .btn.green-dark:not(.btn-outline).active:focus, .btn.green-dark:not(.btn-outline).active.focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-dark:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #33776b;\n      border-color: #265a51; }\n  .btn.green-dark:not(.btn-outline):active, .btn.green-dark:not(.btn-outline).active,\n  .open > .btn.green-dark:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-dark:not(.btn-outline).disabled:hover, .btn.green-dark:not(.btn-outline).disabled:focus, .btn.green-dark:not(.btn-outline).disabled.focus, .btn.green-dark:not(.btn-outline)[disabled]:hover, .btn.green-dark:not(.btn-outline)[disabled]:focus, .btn.green-dark:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-dark:not(.btn-outline).focus {\n    background-color: #4DB3A2;\n    border-color: #4DB3A2; }\n  .btn.green-dark:not(.btn-outline) .badge {\n    color: #4DB3A2;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-dark {\n  border-color: #4DB3A2;\n  color: #4DB3A2;\n  background: none; }\n  .btn.btn-outline.green-dark:hover, .btn.btn-outline.green-dark:active, .btn.btn-outline.green-dark:active:hover, .btn.btn-outline.green-dark:active:focus, .btn.btn-outline.green-dark:focus, .btn.btn-outline.green-dark.active {\n    border-color: #4DB3A2;\n    color: #FFFFFF;\n    background-color: #4DB3A2; }\n\n.btn.green-dark-stripe {\n  border-left: 4px solid #4DB3A2 !important; }\n\n.btn.green-dark.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-sharp:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #2ab4c0;\n  border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline):focus, .btn.green-sharp:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #218d96;\n    border-color: #1f858e; }\n    .btn.green-sharp:not(.btn-outline):active:hover, .btn.green-sharp:not(.btn-outline):active:focus, .btn.green-sharp:not(.btn-outline):active.focus, .btn.green-sharp:not(.btn-outline).active:hover, .btn.green-sharp:not(.btn-outline).active:focus, .btn.green-sharp:not(.btn-outline).active.focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #1a7179;\n      border-color: #135257; }\n  .btn.green-sharp:not(.btn-outline):active, .btn.green-sharp:not(.btn-outline).active,\n  .open > .btn.green-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-sharp:not(.btn-outline).disabled:hover, .btn.green-sharp:not(.btn-outline).disabled:focus, .btn.green-sharp:not(.btn-outline).disabled.focus, .btn.green-sharp:not(.btn-outline)[disabled]:hover, .btn.green-sharp:not(.btn-outline)[disabled]:focus, .btn.green-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-sharp:not(.btn-outline).focus {\n    background-color: #2ab4c0;\n    border-color: #2ab4c0; }\n  .btn.green-sharp:not(.btn-outline) .badge {\n    color: #2ab4c0;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-sharp {\n  border-color: #2ab4c0;\n  color: #2ab4c0;\n  background: none; }\n  .btn.btn-outline.green-sharp:hover, .btn.btn-outline.green-sharp:active, .btn.btn-outline.green-sharp:active:hover, .btn.btn-outline.green-sharp:active:focus, .btn.btn-outline.green-sharp:focus, .btn.btn-outline.green-sharp.active {\n    border-color: #2ab4c0;\n    color: #FFFFFF;\n    background-color: #2ab4c0; }\n\n.btn.green-sharp-stripe {\n  border-left: 4px solid #2ab4c0 !important; }\n\n.btn.green-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.green-steel:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #29b4b6;\n  border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline):focus, .btn.green-steel:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #208b8c;\n    border-color: #1e8384; }\n    .btn.green-steel:not(.btn-outline):active:hover, .btn.green-steel:not(.btn-outline):active:focus, .btn.green-steel:not(.btn-outline):active.focus, .btn.green-steel:not(.btn-outline).active:hover, .btn.green-steel:not(.btn-outline).active:focus, .btn.green-steel:not(.btn-outline).active.focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.green-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #196e6f;\n      border-color: #124d4e; }\n  .btn.green-steel:not(.btn-outline):active, .btn.green-steel:not(.btn-outline).active,\n  .open > .btn.green-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.green-steel:not(.btn-outline).disabled:hover, .btn.green-steel:not(.btn-outline).disabled:focus, .btn.green-steel:not(.btn-outline).disabled.focus, .btn.green-steel:not(.btn-outline)[disabled]:hover, .btn.green-steel:not(.btn-outline)[disabled]:focus, .btn.green-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.green-steel:not(.btn-outline).focus {\n    background-color: #29b4b6;\n    border-color: #29b4b6; }\n  .btn.green-steel:not(.btn-outline) .badge {\n    color: #29b4b6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.green-steel {\n  border-color: #29b4b6;\n  color: #29b4b6;\n  background: none; }\n  .btn.btn-outline.green-steel:hover, .btn.btn-outline.green-steel:active, .btn.btn-outline.green-steel:active:hover, .btn.btn-outline.green-steel:active:focus, .btn.btn-outline.green-steel:focus, .btn.btn-outline.green-steel.active {\n    border-color: #29b4b6;\n    color: #FFFFFF;\n    background-color: #29b4b6; }\n\n.btn.green-steel-stripe {\n  border-left: 4px solid #29b4b6 !important; }\n\n.btn.green-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey:not(.btn-outline) {\n  color: #333333;\n  background-color: #E5E5E5;\n  border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline):focus, .btn.grey:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #cccccc;\n    border-color: #c6c6c6; }\n    .btn.grey:not(.btn-outline):active:hover, .btn.grey:not(.btn-outline):active:focus, .btn.grey:not(.btn-outline):active.focus, .btn.grey:not(.btn-outline).active:hover, .btn.grey:not(.btn-outline).active:focus, .btn.grey:not(.btn-outline).active.focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #bababa;\n      border-color: #a5a5a5; }\n  .btn.grey:not(.btn-outline):active, .btn.grey:not(.btn-outline).active,\n  .open > .btn.grey:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey:not(.btn-outline).disabled:hover, .btn.grey:not(.btn-outline).disabled:focus, .btn.grey:not(.btn-outline).disabled.focus, .btn.grey:not(.btn-outline)[disabled]:hover, .btn.grey:not(.btn-outline)[disabled]:focus, .btn.grey:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey:not(.btn-outline).focus {\n    background-color: #E5E5E5;\n    border-color: #E5E5E5; }\n  .btn.grey:not(.btn-outline) .badge {\n    color: #E5E5E5;\n    background-color: #333333; }\n\n.btn.btn-outline.grey {\n  border-color: #E5E5E5;\n  color: #E5E5E5;\n  background: none; }\n  .btn.btn-outline.grey:hover, .btn.btn-outline.grey:active, .btn.btn-outline.grey:active:hover, .btn.btn-outline.grey:active:focus, .btn.btn-outline.grey:focus, .btn.btn-outline.grey.active {\n    border-color: #E5E5E5;\n    color: #333333;\n    background-color: #E5E5E5; }\n\n.btn.grey-stripe {\n  border-left: 4px solid #E5E5E5 !important; }\n\n.btn.grey.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-steel:not(.btn-outline) {\n  color: #80898e;\n  background-color: #e9edef;\n  border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline):focus, .btn.grey-steel:not(.btn-outline).focus {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):hover {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    color: #80898e;\n    background-color: #cbd5da;\n    border-color: #c6d0d5; }\n    .btn.grey-steel:not(.btn-outline):active:hover, .btn.grey-steel:not(.btn-outline):active:focus, .btn.grey-steel:not(.btn-outline):active.focus, .btn.grey-steel:not(.btn-outline).active:hover, .btn.grey-steel:not(.btn-outline).active:focus, .btn.grey-steel:not(.btn-outline).active.focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle.focus {\n      color: #80898e;\n      background-color: #b7c4ca;\n      border-color: #9fb1b9; }\n  .btn.grey-steel:not(.btn-outline):active, .btn.grey-steel:not(.btn-outline).active,\n  .open > .btn.grey-steel:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-steel:not(.btn-outline).disabled:hover, .btn.grey-steel:not(.btn-outline).disabled:focus, .btn.grey-steel:not(.btn-outline).disabled.focus, .btn.grey-steel:not(.btn-outline)[disabled]:hover, .btn.grey-steel:not(.btn-outline)[disabled]:focus, .btn.grey-steel:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-steel:not(.btn-outline).focus {\n    background-color: #e9edef;\n    border-color: #e9edef; }\n  .btn.grey-steel:not(.btn-outline) .badge {\n    color: #e9edef;\n    background-color: #80898e; }\n\n.btn.btn-outline.grey-steel {\n  border-color: #e9edef;\n  color: #e9edef;\n  background: none; }\n  .btn.btn-outline.grey-steel:hover, .btn.btn-outline.grey-steel:active, .btn.btn-outline.grey-steel:active:hover, .btn.btn-outline.grey-steel:active:focus, .btn.btn-outline.grey-steel:focus, .btn.btn-outline.grey-steel.active {\n    border-color: #e9edef;\n    color: #80898e;\n    background-color: #e9edef; }\n\n.btn.grey-steel-stripe {\n  border-left: 4px solid #e9edef !important; }\n\n.btn.grey-steel.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cararra:not(.btn-outline) {\n  color: #333333;\n  background-color: #fafafa;\n  border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline):focus, .btn.grey-cararra:not(.btn-outline).focus {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):hover {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    color: #333333;\n    background-color: #e1e1e1;\n    border-color: #dbdbdb; }\n    .btn.grey-cararra:not(.btn-outline):active:hover, .btn.grey-cararra:not(.btn-outline):active:focus, .btn.grey-cararra:not(.btn-outline):active.focus, .btn.grey-cararra:not(.btn-outline).active:hover, .btn.grey-cararra:not(.btn-outline).active:focus, .btn.grey-cararra:not(.btn-outline).active.focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle.focus {\n      color: #333333;\n      background-color: #cfcfcf;\n      border-color: #bababa; }\n  .btn.grey-cararra:not(.btn-outline):active, .btn.grey-cararra:not(.btn-outline).active,\n  .open > .btn.grey-cararra:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cararra:not(.btn-outline).disabled:hover, .btn.grey-cararra:not(.btn-outline).disabled:focus, .btn.grey-cararra:not(.btn-outline).disabled.focus, .btn.grey-cararra:not(.btn-outline)[disabled]:hover, .btn.grey-cararra:not(.btn-outline)[disabled]:focus, .btn.grey-cararra:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cararra:not(.btn-outline).focus {\n    background-color: #fafafa;\n    border-color: #fafafa; }\n  .btn.grey-cararra:not(.btn-outline) .badge {\n    color: #fafafa;\n    background-color: #333333; }\n\n.btn.btn-outline.grey-cararra {\n  border-color: #fafafa;\n  color: #fafafa;\n  background: none; }\n  .btn.btn-outline.grey-cararra:hover, .btn.btn-outline.grey-cararra:active, .btn.btn-outline.grey-cararra:active:hover, .btn.btn-outline.grey-cararra:active:focus, .btn.btn-outline.grey-cararra:focus, .btn.btn-outline.grey-cararra.active {\n    border-color: #fafafa;\n    color: #333333;\n    background-color: #fafafa; }\n\n.btn.grey-cararra-stripe {\n  border-left: 4px solid #fafafa !important; }\n\n.btn.grey-cararra.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-gallery:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #555555;\n  border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline):focus, .btn.grey-gallery:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #3c3c3c;\n    border-color: #363636; }\n    .btn.grey-gallery:not(.btn-outline):active:hover, .btn.grey-gallery:not(.btn-outline):active:focus, .btn.grey-gallery:not(.btn-outline):active.focus, .btn.grey-gallery:not(.btn-outline).active:hover, .btn.grey-gallery:not(.btn-outline).active:focus, .btn.grey-gallery:not(.btn-outline).active.focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #2a2a2a;\n      border-color: #151515; }\n  .btn.grey-gallery:not(.btn-outline):active, .btn.grey-gallery:not(.btn-outline).active,\n  .open > .btn.grey-gallery:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-gallery:not(.btn-outline).disabled:hover, .btn.grey-gallery:not(.btn-outline).disabled:focus, .btn.grey-gallery:not(.btn-outline).disabled.focus, .btn.grey-gallery:not(.btn-outline)[disabled]:hover, .btn.grey-gallery:not(.btn-outline)[disabled]:focus, .btn.grey-gallery:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-gallery:not(.btn-outline).focus {\n    background-color: #555555;\n    border-color: #555555; }\n  .btn.grey-gallery:not(.btn-outline) .badge {\n    color: #555555;\n    background-color: #ffffff; }\n\n.btn.btn-outline.grey-gallery {\n  border-color: #555555;\n  color: #555555;\n  background: none; }\n  .btn.btn-outline.grey-gallery:hover, .btn.btn-outline.grey-gallery:active, .btn.btn-outline.grey-gallery:active:hover, .btn.btn-outline.grey-gallery:active:focus, .btn.btn-outline.grey-gallery:focus, .btn.btn-outline.grey-gallery.active {\n    border-color: #555555;\n    color: #ffffff;\n    background-color: #555555; }\n\n.btn.grey-gallery-stripe {\n  border-left: 4px solid #555555 !important; }\n\n.btn.grey-gallery.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-cascade:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #95A5A6;\n  border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline):focus, .btn.grey-cascade:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #798d8f;\n    border-color: #74898a; }\n    .btn.grey-cascade:not(.btn-outline):active:hover, .btn.grey-cascade:not(.btn-outline):active:focus, .btn.grey-cascade:not(.btn-outline):active.focus, .btn.grey-cascade:not(.btn-outline).active:hover, .btn.grey-cascade:not(.btn-outline).active:focus, .btn.grey-cascade:not(.btn-outline).active.focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #687b7c;\n      border-color: #566566; }\n  .btn.grey-cascade:not(.btn-outline):active, .btn.grey-cascade:not(.btn-outline).active,\n  .open > .btn.grey-cascade:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-cascade:not(.btn-outline).disabled:hover, .btn.grey-cascade:not(.btn-outline).disabled:focus, .btn.grey-cascade:not(.btn-outline).disabled.focus, .btn.grey-cascade:not(.btn-outline)[disabled]:hover, .btn.grey-cascade:not(.btn-outline)[disabled]:focus, .btn.grey-cascade:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-cascade:not(.btn-outline).focus {\n    background-color: #95A5A6;\n    border-color: #95A5A6; }\n  .btn.grey-cascade:not(.btn-outline) .badge {\n    color: #95A5A6;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-cascade {\n  border-color: #95A5A6;\n  color: #95A5A6;\n  background: none; }\n  .btn.btn-outline.grey-cascade:hover, .btn.btn-outline.grey-cascade:active, .btn.btn-outline.grey-cascade:active:hover, .btn.btn-outline.grey-cascade:active:focus, .btn.btn-outline.grey-cascade:focus, .btn.btn-outline.grey-cascade.active {\n    border-color: #95A5A6;\n    color: #FFFFFF;\n    background-color: #95A5A6; }\n\n.btn.grey-cascade-stripe {\n  border-left: 4px solid #95A5A6 !important; }\n\n.btn.grey-cascade.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-silver:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #BFBFBF;\n  border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline):focus, .btn.grey-silver:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a6a6a6;\n    border-color: #a0a0a0; }\n    .btn.grey-silver:not(.btn-outline):active:hover, .btn.grey-silver:not(.btn-outline):active:focus, .btn.grey-silver:not(.btn-outline):active.focus, .btn.grey-silver:not(.btn-outline).active:hover, .btn.grey-silver:not(.btn-outline).active:focus, .btn.grey-silver:not(.btn-outline).active.focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #949494;\n      border-color: #7f7f7f; }\n  .btn.grey-silver:not(.btn-outline):active, .btn.grey-silver:not(.btn-outline).active,\n  .open > .btn.grey-silver:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-silver:not(.btn-outline).disabled:hover, .btn.grey-silver:not(.btn-outline).disabled:focus, .btn.grey-silver:not(.btn-outline).disabled.focus, .btn.grey-silver:not(.btn-outline)[disabled]:hover, .btn.grey-silver:not(.btn-outline)[disabled]:focus, .btn.grey-silver:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-silver:not(.btn-outline).focus {\n    background-color: #BFBFBF;\n    border-color: #BFBFBF; }\n  .btn.grey-silver:not(.btn-outline) .badge {\n    color: #BFBFBF;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-silver {\n  border-color: #BFBFBF;\n  color: #BFBFBF;\n  background: none; }\n  .btn.btn-outline.grey-silver:hover, .btn.btn-outline.grey-silver:active, .btn.btn-outline.grey-silver:active:hover, .btn.btn-outline.grey-silver:active:focus, .btn.btn-outline.grey-silver:focus, .btn.btn-outline.grey-silver.active {\n    border-color: #BFBFBF;\n    color: #FAFCFB;\n    background-color: #BFBFBF; }\n\n.btn.grey-silver-stripe {\n  border-left: 4px solid #BFBFBF !important; }\n\n.btn.grey-silver.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salsa:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #ACB5C3;\n  border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline):focus, .btn.grey-salsa:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #8e9bae;\n    border-color: #8895a9; }\n    .btn.grey-salsa:not(.btn-outline):active:hover, .btn.grey-salsa:not(.btn-outline):active:focus, .btn.grey-salsa:not(.btn-outline):active.focus, .btn.grey-salsa:not(.btn-outline).active:hover, .btn.grey-salsa:not(.btn-outline).active:focus, .btn.grey-salsa:not(.btn-outline).active.focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #7a889f;\n      border-color: #64748b; }\n  .btn.grey-salsa:not(.btn-outline):active, .btn.grey-salsa:not(.btn-outline).active,\n  .open > .btn.grey-salsa:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salsa:not(.btn-outline).disabled:hover, .btn.grey-salsa:not(.btn-outline).disabled:focus, .btn.grey-salsa:not(.btn-outline).disabled.focus, .btn.grey-salsa:not(.btn-outline)[disabled]:hover, .btn.grey-salsa:not(.btn-outline)[disabled]:focus, .btn.grey-salsa:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salsa:not(.btn-outline).focus {\n    background-color: #ACB5C3;\n    border-color: #ACB5C3; }\n  .btn.grey-salsa:not(.btn-outline) .badge {\n    color: #ACB5C3;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salsa {\n  border-color: #ACB5C3;\n  color: #ACB5C3;\n  background: none; }\n  .btn.btn-outline.grey-salsa:hover, .btn.btn-outline.grey-salsa:active, .btn.btn-outline.grey-salsa:active:hover, .btn.btn-outline.grey-salsa:active:focus, .btn.btn-outline.grey-salsa:focus, .btn.btn-outline.grey-salsa.active {\n    border-color: #ACB5C3;\n    color: #FAFCFB;\n    background-color: #ACB5C3; }\n\n.btn.grey-salsa-stripe {\n  border-left: 4px solid #ACB5C3 !important; }\n\n.btn.grey-salsa.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-salt:not(.btn-outline) {\n  color: #FAFCFB;\n  background-color: #bfcad1;\n  border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline):focus, .btn.grey-salt:not(.btn-outline).focus {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):hover {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    color: #FAFCFB;\n    background-color: #a1b1bc;\n    border-color: #9badb7; }\n    .btn.grey-salt:not(.btn-outline):active:hover, .btn.grey-salt:not(.btn-outline):active:focus, .btn.grey-salt:not(.btn-outline):active.focus, .btn.grey-salt:not(.btn-outline).active:hover, .btn.grey-salt:not(.btn-outline).active:focus, .btn.grey-salt:not(.btn-outline).active.focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle.focus {\n      color: #FAFCFB;\n      background-color: #8da0ad;\n      border-color: #758d9c; }\n  .btn.grey-salt:not(.btn-outline):active, .btn.grey-salt:not(.btn-outline).active,\n  .open > .btn.grey-salt:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-salt:not(.btn-outline).disabled:hover, .btn.grey-salt:not(.btn-outline).disabled:focus, .btn.grey-salt:not(.btn-outline).disabled.focus, .btn.grey-salt:not(.btn-outline)[disabled]:hover, .btn.grey-salt:not(.btn-outline)[disabled]:focus, .btn.grey-salt:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-salt:not(.btn-outline).focus {\n    background-color: #bfcad1;\n    border-color: #bfcad1; }\n  .btn.grey-salt:not(.btn-outline) .badge {\n    color: #bfcad1;\n    background-color: #FAFCFB; }\n\n.btn.btn-outline.grey-salt {\n  border-color: #bfcad1;\n  color: #bfcad1;\n  background: none; }\n  .btn.btn-outline.grey-salt:hover, .btn.btn-outline.grey-salt:active, .btn.btn-outline.grey-salt:active:hover, .btn.btn-outline.grey-salt:active:focus, .btn.btn-outline.grey-salt:focus, .btn.btn-outline.grey-salt.active {\n    border-color: #bfcad1;\n    color: #FAFCFB;\n    background-color: #bfcad1; }\n\n.btn.grey-salt-stripe {\n  border-left: 4px solid #bfcad1 !important; }\n\n.btn.grey-salt.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.grey-mint:not(.btn-outline) {\n  color: #FFFFFF;\n  background-color: #525e64;\n  border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline):focus, .btn.grey-mint:not(.btn-outline).focus {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):hover {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    color: #FFFFFF;\n    background-color: #3b4448;\n    border-color: #363e42; }\n    .btn.grey-mint:not(.btn-outline):active:hover, .btn.grey-mint:not(.btn-outline):active:focus, .btn.grey-mint:not(.btn-outline):active.focus, .btn.grey-mint:not(.btn-outline).active:hover, .btn.grey-mint:not(.btn-outline).active:focus, .btn.grey-mint:not(.btn-outline).active.focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #FFFFFF;\n      background-color: #2b3134;\n      border-color: #191c1e; }\n  .btn.grey-mint:not(.btn-outline):active, .btn.grey-mint:not(.btn-outline).active,\n  .open > .btn.grey-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.grey-mint:not(.btn-outline).disabled:hover, .btn.grey-mint:not(.btn-outline).disabled:focus, .btn.grey-mint:not(.btn-outline).disabled.focus, .btn.grey-mint:not(.btn-outline)[disabled]:hover, .btn.grey-mint:not(.btn-outline)[disabled]:focus, .btn.grey-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.grey-mint:not(.btn-outline).focus {\n    background-color: #525e64;\n    border-color: #525e64; }\n  .btn.grey-mint:not(.btn-outline) .badge {\n    color: #525e64;\n    background-color: #FFFFFF; }\n\n.btn.btn-outline.grey-mint {\n  border-color: #525e64;\n  color: #525e64;\n  background: none; }\n  .btn.btn-outline.grey-mint:hover, .btn.btn-outline.grey-mint:active, .btn.btn-outline.grey-mint:active:hover, .btn.btn-outline.grey-mint:active:focus, .btn.btn-outline.grey-mint:focus, .btn.btn-outline.grey-mint.active {\n    border-color: #525e64;\n    color: #FFFFFF;\n    background-color: #525e64; }\n\n.btn.grey-mint-stripe {\n  border-left: 4px solid #525e64 !important; }\n\n.btn.grey-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e7505a;\n  border-color: #e7505a; }\n  .btn.red:not(.btn-outline):focus, .btn.red:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #a1161f; }\n  .btn.red:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e12330;\n    border-color: #dc1e2b; }\n    .btn.red:not(.btn-outline):active:hover, .btn.red:not(.btn-outline):active:focus, .btn.red:not(.btn-outline):active.focus, .btn.red:not(.btn-outline).active:hover, .btn.red:not(.btn-outline).active:focus, .btn.red:not(.btn-outline).active.focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c51b26;\n      border-color: #a1161f; }\n  .btn.red:not(.btn-outline):active, .btn.red:not(.btn-outline).active,\n  .open > .btn.red:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red:not(.btn-outline).disabled:hover, .btn.red:not(.btn-outline).disabled:focus, .btn.red:not(.btn-outline).disabled.focus, .btn.red:not(.btn-outline)[disabled]:hover, .btn.red:not(.btn-outline)[disabled]:focus, .btn.red:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red:not(.btn-outline).focus {\n    background-color: #e7505a;\n    border-color: #e7505a; }\n  .btn.red:not(.btn-outline) .badge {\n    color: #e7505a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red {\n  border-color: #e7505a;\n  color: #e7505a;\n  background: none; }\n  .btn.btn-outline.red:hover, .btn.btn-outline.red:active, .btn.btn-outline.red:active:hover, .btn.btn-outline.red:active:focus, .btn.btn-outline.red:focus, .btn.btn-outline.red.active {\n    border-color: #e7505a;\n    color: #ffffff;\n    background-color: #e7505a; }\n\n.btn.red-stripe {\n  border-left: 4px solid #e7505a !important; }\n\n.btn.red.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-pink:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E08283;\n  border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline):focus, .btn.red-pink:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d6595a;\n    border-color: #d45152; }\n    .btn.red-pink:not(.btn-outline):active:hover, .btn.red-pink:not(.btn-outline):active:focus, .btn.red-pink:not(.btn-outline):active.focus, .btn.red-pink:not(.btn-outline).active:hover, .btn.red-pink:not(.btn-outline).active:focus, .btn.red-pink:not(.btn-outline).active.focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-pink:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cf3d3e;\n      border-color: #b52d2e; }\n  .btn.red-pink:not(.btn-outline):active, .btn.red-pink:not(.btn-outline).active,\n  .open > .btn.red-pink:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-pink:not(.btn-outline).disabled:hover, .btn.red-pink:not(.btn-outline).disabled:focus, .btn.red-pink:not(.btn-outline).disabled.focus, .btn.red-pink:not(.btn-outline)[disabled]:hover, .btn.red-pink:not(.btn-outline)[disabled]:focus, .btn.red-pink:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-pink:not(.btn-outline).focus {\n    background-color: #E08283;\n    border-color: #E08283; }\n  .btn.red-pink:not(.btn-outline) .badge {\n    color: #E08283;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-pink {\n  border-color: #E08283;\n  color: #E08283;\n  background: none; }\n  .btn.btn-outline.red-pink:hover, .btn.btn-outline.red-pink:active, .btn.btn-outline.red-pink:active:hover, .btn.btn-outline.red-pink:active:focus, .btn.btn-outline.red-pink:focus, .btn.btn-outline.red-pink.active {\n    border-color: #E08283;\n    color: #ffffff;\n    background-color: #E08283; }\n\n.btn.red-pink-stripe {\n  border-left: 4px solid #E08283 !important; }\n\n.btn.red-pink.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-sunglo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E26A6A;\n  border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline):focus, .btn.red-sunglo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #da3f3f;\n    border-color: #d83737; }\n    .btn.red-sunglo:not(.btn-outline):active:hover, .btn.red-sunglo:not(.btn-outline):active:focus, .btn.red-sunglo:not(.btn-outline):active.focus, .btn.red-sunglo:not(.btn-outline).active:hover, .btn.red-sunglo:not(.btn-outline).active:focus, .btn.red-sunglo:not(.btn-outline).active.focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #cd2828;\n      border-color: #ab2121; }\n  .btn.red-sunglo:not(.btn-outline):active, .btn.red-sunglo:not(.btn-outline).active,\n  .open > .btn.red-sunglo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-sunglo:not(.btn-outline).disabled:hover, .btn.red-sunglo:not(.btn-outline).disabled:focus, .btn.red-sunglo:not(.btn-outline).disabled.focus, .btn.red-sunglo:not(.btn-outline)[disabled]:hover, .btn.red-sunglo:not(.btn-outline)[disabled]:focus, .btn.red-sunglo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-sunglo:not(.btn-outline).focus {\n    background-color: #E26A6A;\n    border-color: #E26A6A; }\n  .btn.red-sunglo:not(.btn-outline) .badge {\n    color: #E26A6A;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-sunglo {\n  border-color: #E26A6A;\n  color: #E26A6A;\n  background: none; }\n  .btn.btn-outline.red-sunglo:hover, .btn.btn-outline.red-sunglo:active, .btn.btn-outline.red-sunglo:active:hover, .btn.btn-outline.red-sunglo:active:focus, .btn.btn-outline.red-sunglo:focus, .btn.btn-outline.red-sunglo.active {\n    border-color: #E26A6A;\n    color: #ffffff;\n    background-color: #E26A6A; }\n\n.btn.red-sunglo-stripe {\n  border-left: 4px solid #E26A6A !important; }\n\n.btn.red-sunglo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e35b5a;\n  border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline):focus, .btn.red-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #dc302e;\n    border-color: #da2726; }\n    .btn.red-intense:not(.btn-outline):active:hover, .btn.red-intense:not(.btn-outline):active:focus, .btn.red-intense:not(.btn-outline):active.focus, .btn.red-intense:not(.btn-outline).active:hover, .btn.red-intense:not(.btn-outline).active:focus, .btn.red-intense:not(.btn-outline).active.focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #c52321;\n      border-color: #a21c1b; }\n  .btn.red-intense:not(.btn-outline):active, .btn.red-intense:not(.btn-outline).active,\n  .open > .btn.red-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-intense:not(.btn-outline).disabled:hover, .btn.red-intense:not(.btn-outline).disabled:focus, .btn.red-intense:not(.btn-outline).disabled.focus, .btn.red-intense:not(.btn-outline)[disabled]:hover, .btn.red-intense:not(.btn-outline)[disabled]:focus, .btn.red-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-intense:not(.btn-outline).focus {\n    background-color: #e35b5a;\n    border-color: #e35b5a; }\n  .btn.red-intense:not(.btn-outline) .badge {\n    color: #e35b5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-intense {\n  border-color: #e35b5a;\n  color: #e35b5a;\n  background: none; }\n  .btn.btn-outline.red-intense:hover, .btn.btn-outline.red-intense:active, .btn.btn-outline.red-intense:active:hover, .btn.btn-outline.red-intense:active:focus, .btn.btn-outline.red-intense:focus, .btn.btn-outline.red-intense.active {\n    border-color: #e35b5a;\n    color: #ffffff;\n    background-color: #e35b5a; }\n\n.btn.red-intense-stripe {\n  border-left: 4px solid #e35b5a !important; }\n\n.btn.red-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-thunderbird:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #D91E18;\n  border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline):focus, .btn.red-thunderbird:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ab1813;\n    border-color: #a21612; }\n    .btn.red-thunderbird:not(.btn-outline):active:hover, .btn.red-thunderbird:not(.btn-outline):active:focus, .btn.red-thunderbird:not(.btn-outline):active.focus, .btn.red-thunderbird:not(.btn-outline).active:hover, .btn.red-thunderbird:not(.btn-outline).active:focus, .btn.red-thunderbird:not(.btn-outline).active.focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #8b130f;\n      border-color: #660e0b; }\n  .btn.red-thunderbird:not(.btn-outline):active, .btn.red-thunderbird:not(.btn-outline).active,\n  .open > .btn.red-thunderbird:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-thunderbird:not(.btn-outline).disabled:hover, .btn.red-thunderbird:not(.btn-outline).disabled:focus, .btn.red-thunderbird:not(.btn-outline).disabled.focus, .btn.red-thunderbird:not(.btn-outline)[disabled]:hover, .btn.red-thunderbird:not(.btn-outline)[disabled]:focus, .btn.red-thunderbird:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-thunderbird:not(.btn-outline).focus {\n    background-color: #D91E18;\n    border-color: #D91E18; }\n  .btn.red-thunderbird:not(.btn-outline) .badge {\n    color: #D91E18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-thunderbird {\n  border-color: #D91E18;\n  color: #D91E18;\n  background: none; }\n  .btn.btn-outline.red-thunderbird:hover, .btn.btn-outline.red-thunderbird:active, .btn.btn-outline.red-thunderbird:active:hover, .btn.btn-outline.red-thunderbird:active:focus, .btn.btn-outline.red-thunderbird:focus, .btn.btn-outline.red-thunderbird.active {\n    border-color: #D91E18;\n    color: #ffffff;\n    background-color: #D91E18; }\n\n.btn.red-thunderbird-stripe {\n  border-left: 4px solid #D91E18 !important; }\n\n.btn.red-thunderbird.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-flamingo:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #EF4836;\n  border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline):focus, .btn.red-flamingo:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #e02612;\n    border-color: #d72411; }\n    .btn.red-flamingo:not(.btn-outline):active:hover, .btn.red-flamingo:not(.btn-outline):active:focus, .btn.red-flamingo:not(.btn-outline):active.focus, .btn.red-flamingo:not(.btn-outline).active:hover, .btn.red-flamingo:not(.btn-outline).active:focus, .btn.red-flamingo:not(.btn-outline).active.focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #bf200f;\n      border-color: #991a0c; }\n  .btn.red-flamingo:not(.btn-outline):active, .btn.red-flamingo:not(.btn-outline).active,\n  .open > .btn.red-flamingo:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-flamingo:not(.btn-outline).disabled:hover, .btn.red-flamingo:not(.btn-outline).disabled:focus, .btn.red-flamingo:not(.btn-outline).disabled.focus, .btn.red-flamingo:not(.btn-outline)[disabled]:hover, .btn.red-flamingo:not(.btn-outline)[disabled]:focus, .btn.red-flamingo:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-flamingo:not(.btn-outline).focus {\n    background-color: #EF4836;\n    border-color: #EF4836; }\n  .btn.red-flamingo:not(.btn-outline) .badge {\n    color: #EF4836;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-flamingo {\n  border-color: #EF4836;\n  color: #EF4836;\n  background: none; }\n  .btn.btn-outline.red-flamingo:hover, .btn.btn-outline.red-flamingo:active, .btn.btn-outline.red-flamingo:active:hover, .btn.btn-outline.red-flamingo:active:focus, .btn.btn-outline.red-flamingo:focus, .btn.btn-outline.red-flamingo.active {\n    border-color: #EF4836;\n    color: #ffffff;\n    background-color: #EF4836; }\n\n.btn.red-flamingo-stripe {\n  border-left: 4px solid #EF4836 !important; }\n\n.btn.red-flamingo.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #d05454;\n  border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline):focus, .btn.red-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #bd3434;\n    border-color: #b53232; }\n    .btn.red-soft:not(.btn-outline):active:hover, .btn.red-soft:not(.btn-outline):active:focus, .btn.red-soft:not(.btn-outline):active.focus, .btn.red-soft:not(.btn-outline).active:hover, .btn.red-soft:not(.btn-outline).active:focus, .btn.red-soft:not(.btn-outline).active.focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #a12c2c;\n      border-color: #812323; }\n  .btn.red-soft:not(.btn-outline):active, .btn.red-soft:not(.btn-outline).active,\n  .open > .btn.red-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-soft:not(.btn-outline).disabled:hover, .btn.red-soft:not(.btn-outline).disabled:focus, .btn.red-soft:not(.btn-outline).disabled.focus, .btn.red-soft:not(.btn-outline)[disabled]:hover, .btn.red-soft:not(.btn-outline)[disabled]:focus, .btn.red-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-soft:not(.btn-outline).focus {\n    background-color: #d05454;\n    border-color: #d05454; }\n  .btn.red-soft:not(.btn-outline) .badge {\n    color: #d05454;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-soft {\n  border-color: #d05454;\n  color: #d05454;\n  background: none; }\n  .btn.btn-outline.red-soft:hover, .btn.btn-outline.red-soft:active, .btn.btn-outline.red-soft:active:hover, .btn.btn-outline.red-soft:active:focus, .btn.btn-outline.red-soft:focus, .btn.btn-outline.red-soft.active {\n    border-color: #d05454;\n    color: #ffffff;\n    background-color: #d05454; }\n\n.btn.red-soft-stripe {\n  border-left: 4px solid #d05454 !important; }\n\n.btn.red-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f36a5a;\n  border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline):focus, .btn.red-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f03f2a;\n    border-color: #ef3621; }\n    .btn.red-haze:not(.btn-outline):active:hover, .btn.red-haze:not(.btn-outline):active:focus, .btn.red-haze:not(.btn-outline):active.focus, .btn.red-haze:not(.btn-outline).active:hover, .btn.red-haze:not(.btn-outline).active:focus, .btn.red-haze:not(.btn-outline).active.focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #e62711;\n      border-color: #c0210e; }\n  .btn.red-haze:not(.btn-outline):active, .btn.red-haze:not(.btn-outline).active,\n  .open > .btn.red-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-haze:not(.btn-outline).disabled:hover, .btn.red-haze:not(.btn-outline).disabled:focus, .btn.red-haze:not(.btn-outline).disabled.focus, .btn.red-haze:not(.btn-outline)[disabled]:hover, .btn.red-haze:not(.btn-outline)[disabled]:focus, .btn.red-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-haze:not(.btn-outline).focus {\n    background-color: #f36a5a;\n    border-color: #f36a5a; }\n  .btn.red-haze:not(.btn-outline) .badge {\n    color: #f36a5a;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-haze {\n  border-color: #f36a5a;\n  color: #f36a5a;\n  background: none; }\n  .btn.btn-outline.red-haze:hover, .btn.btn-outline.red-haze:active, .btn.btn-outline.red-haze:active:hover, .btn.btn-outline.red-haze:active:focus, .btn.btn-outline.red-haze:focus, .btn.btn-outline.red-haze.active {\n    border-color: #f36a5a;\n    color: #ffffff;\n    background-color: #f36a5a; }\n\n.btn.red-haze-stripe {\n  border-left: 4px solid #f36a5a !important; }\n\n.btn.red-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.red-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #e43a45;\n  border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline):focus, .btn.red-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #cf1c28;\n    border-color: #c61b26; }\n    .btn.red-mint:not(.btn-outline):active:hover, .btn.red-mint:not(.btn-outline):active:focus, .btn.red-mint:not(.btn-outline):active.focus, .btn.red-mint:not(.btn-outline).active:hover, .btn.red-mint:not(.btn-outline).active:focus, .btn.red-mint:not(.btn-outline).active.focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.red-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #af1822;\n      border-color: #8b131b; }\n  .btn.red-mint:not(.btn-outline):active, .btn.red-mint:not(.btn-outline).active,\n  .open > .btn.red-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.red-mint:not(.btn-outline).disabled:hover, .btn.red-mint:not(.btn-outline).disabled:focus, .btn.red-mint:not(.btn-outline).disabled.focus, .btn.red-mint:not(.btn-outline)[disabled]:hover, .btn.red-mint:not(.btn-outline)[disabled]:focus, .btn.red-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.red-mint:not(.btn-outline).focus {\n    background-color: #e43a45;\n    border-color: #e43a45; }\n  .btn.red-mint:not(.btn-outline) .badge {\n    color: #e43a45;\n    background-color: #ffffff; }\n\n.btn.btn-outline.red-mint {\n  border-color: #e43a45;\n  color: #e43a45;\n  background: none; }\n  .btn.btn-outline.red-mint:hover, .btn.btn-outline.red-mint:active, .btn.btn-outline.red-mint:active:hover, .btn.btn-outline.red-mint:active:focus, .btn.btn-outline.red-mint:focus, .btn.btn-outline.red-mint.active {\n    border-color: #e43a45;\n    color: #ffffff;\n    background-color: #e43a45; }\n\n.btn.red-mint-stripe {\n  border-left: 4px solid #e43a45 !important; }\n\n.btn.red-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c49f47;\n  border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline):focus, .btn.yellow:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #a48334;\n    border-color: #9c7c32; }\n    .btn.yellow:not(.btn-outline):active:hover, .btn.yellow:not(.btn-outline):active:focus, .btn.yellow:not(.btn-outline):active.focus, .btn.yellow:not(.btn-outline).active:hover, .btn.yellow:not(.btn-outline).active:focus, .btn.yellow:not(.btn-outline).active.focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #896d2c;\n      border-color: #6a5422; }\n  .btn.yellow:not(.btn-outline):active, .btn.yellow:not(.btn-outline).active,\n  .open > .btn.yellow:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow:not(.btn-outline).disabled:hover, .btn.yellow:not(.btn-outline).disabled:focus, .btn.yellow:not(.btn-outline).disabled.focus, .btn.yellow:not(.btn-outline)[disabled]:hover, .btn.yellow:not(.btn-outline)[disabled]:focus, .btn.yellow:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow:not(.btn-outline).focus {\n    background-color: #c49f47;\n    border-color: #c49f47; }\n  .btn.yellow:not(.btn-outline) .badge {\n    color: #c49f47;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow {\n  border-color: #c49f47;\n  color: #c49f47;\n  background: none; }\n  .btn.btn-outline.yellow:hover, .btn.btn-outline.yellow:active, .btn.btn-outline.yellow:active:hover, .btn.btn-outline.yellow:active:focus, .btn.btn-outline.yellow:focus, .btn.btn-outline.yellow.active {\n    border-color: #c49f47;\n    color: #ffffff;\n    background-color: #c49f47; }\n\n.btn.yellow-stripe {\n  border-left: 4px solid #c49f47 !important; }\n\n.btn.yellow.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-gold:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #E87E04;\n  border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline):focus, .btn.yellow-gold:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b66303;\n    border-color: #ac5d03; }\n    .btn.yellow-gold:not(.btn-outline):active:hover, .btn.yellow-gold:not(.btn-outline):active:focus, .btn.yellow-gold:not(.btn-outline):active.focus, .btn.yellow-gold:not(.btn-outline).active:hover, .btn.yellow-gold:not(.btn-outline).active:focus, .btn.yellow-gold:not(.btn-outline).active.focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #935003;\n      border-color: #6b3a02; }\n  .btn.yellow-gold:not(.btn-outline):active, .btn.yellow-gold:not(.btn-outline).active,\n  .open > .btn.yellow-gold:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-gold:not(.btn-outline).disabled:hover, .btn.yellow-gold:not(.btn-outline).disabled:focus, .btn.yellow-gold:not(.btn-outline).disabled.focus, .btn.yellow-gold:not(.btn-outline)[disabled]:hover, .btn.yellow-gold:not(.btn-outline)[disabled]:focus, .btn.yellow-gold:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-gold:not(.btn-outline).focus {\n    background-color: #E87E04;\n    border-color: #E87E04; }\n  .btn.yellow-gold:not(.btn-outline) .badge {\n    color: #E87E04;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-gold {\n  border-color: #E87E04;\n  color: #E87E04;\n  background: none; }\n  .btn.btn-outline.yellow-gold:hover, .btn.btn-outline.yellow-gold:active, .btn.btn-outline.yellow-gold:active:hover, .btn.btn-outline.yellow-gold:active:focus, .btn.btn-outline.yellow-gold:focus, .btn.btn-outline.yellow-gold.active {\n    border-color: #E87E04;\n    color: #ffffff;\n    background-color: #E87E04; }\n\n.btn.yellow-gold-stripe {\n  border-left: 4px solid #E87E04 !important; }\n\n.btn.yellow-gold.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-casablanca:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f2784b;\n  border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline):focus, .btn.yellow-casablanca:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ef541b;\n    border-color: #ee4d12; }\n    .btn.yellow-casablanca:not(.btn-outline):active:hover, .btn.yellow-casablanca:not(.btn-outline):active:focus, .btn.yellow-casablanca:not(.btn-outline):active.focus, .btn.yellow-casablanca:not(.btn-outline).active:hover, .btn.yellow-casablanca:not(.btn-outline).active:focus, .btn.yellow-casablanca:not(.btn-outline).active.focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d74510;\n      border-color: #b1390d; }\n  .btn.yellow-casablanca:not(.btn-outline):active, .btn.yellow-casablanca:not(.btn-outline).active,\n  .open > .btn.yellow-casablanca:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-casablanca:not(.btn-outline).disabled:hover, .btn.yellow-casablanca:not(.btn-outline).disabled:focus, .btn.yellow-casablanca:not(.btn-outline).disabled.focus, .btn.yellow-casablanca:not(.btn-outline)[disabled]:hover, .btn.yellow-casablanca:not(.btn-outline)[disabled]:focus, .btn.yellow-casablanca:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-casablanca:not(.btn-outline).focus {\n    background-color: #f2784b;\n    border-color: #f2784b; }\n  .btn.yellow-casablanca:not(.btn-outline) .badge {\n    color: #f2784b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-casablanca {\n  border-color: #f2784b;\n  color: #f2784b;\n  background: none; }\n  .btn.btn-outline.yellow-casablanca:hover, .btn.btn-outline.yellow-casablanca:active, .btn.btn-outline.yellow-casablanca:active:hover, .btn.btn-outline.yellow-casablanca:active:focus, .btn.btn-outline.yellow-casablanca:focus, .btn.btn-outline.yellow-casablanca.active {\n    border-color: #f2784b;\n    color: #ffffff;\n    background-color: #f2784b; }\n\n.btn.yellow-casablanca-stripe {\n  border-left: 4px solid #f2784b !important; }\n\n.btn.yellow-casablanca.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-crusta:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #f3c200;\n  border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline):focus, .btn.yellow-crusta:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #c09900;\n    border-color: #b69100; }\n    .btn.yellow-crusta:not(.btn-outline):active:hover, .btn.yellow-crusta:not(.btn-outline):active:focus, .btn.yellow-crusta:not(.btn-outline):active.focus, .btn.yellow-crusta:not(.btn-outline).active:hover, .btn.yellow-crusta:not(.btn-outline).active:focus, .btn.yellow-crusta:not(.btn-outline).active.focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c7d00;\n      border-color: #745c00; }\n  .btn.yellow-crusta:not(.btn-outline):active, .btn.yellow-crusta:not(.btn-outline).active,\n  .open > .btn.yellow-crusta:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-crusta:not(.btn-outline).disabled:hover, .btn.yellow-crusta:not(.btn-outline).disabled:focus, .btn.yellow-crusta:not(.btn-outline).disabled.focus, .btn.yellow-crusta:not(.btn-outline)[disabled]:hover, .btn.yellow-crusta:not(.btn-outline)[disabled]:focus, .btn.yellow-crusta:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-crusta:not(.btn-outline).focus {\n    background-color: #f3c200;\n    border-color: #f3c200; }\n  .btn.yellow-crusta:not(.btn-outline) .badge {\n    color: #f3c200;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-crusta {\n  border-color: #f3c200;\n  color: #f3c200;\n  background: none; }\n  .btn.btn-outline.yellow-crusta:hover, .btn.btn-outline.yellow-crusta:active, .btn.btn-outline.yellow-crusta:active:hover, .btn.btn-outline.yellow-crusta:active:focus, .btn.btn-outline.yellow-crusta:focus, .btn.btn-outline.yellow-crusta.active {\n    border-color: #f3c200;\n    color: #ffffff;\n    background-color: #f3c200; }\n\n.btn.yellow-crusta-stripe {\n  border-left: 4px solid #f3c200 !important; }\n\n.btn.yellow-crusta.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-lemon:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F7CA18;\n  border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline):focus, .btn.yellow-lemon:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #d5ab07;\n    border-color: #cba307; }\n    .btn.yellow-lemon:not(.btn-outline):active:hover, .btn.yellow-lemon:not(.btn-outline):active:focus, .btn.yellow-lemon:not(.btn-outline):active.focus, .btn.yellow-lemon:not(.btn-outline).active:hover, .btn.yellow-lemon:not(.btn-outline).active:focus, .btn.yellow-lemon:not(.btn-outline).active.focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #b28f06;\n      border-color: #8b7005; }\n  .btn.yellow-lemon:not(.btn-outline):active, .btn.yellow-lemon:not(.btn-outline).active,\n  .open > .btn.yellow-lemon:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-lemon:not(.btn-outline).disabled:hover, .btn.yellow-lemon:not(.btn-outline).disabled:focus, .btn.yellow-lemon:not(.btn-outline).disabled.focus, .btn.yellow-lemon:not(.btn-outline)[disabled]:hover, .btn.yellow-lemon:not(.btn-outline)[disabled]:focus, .btn.yellow-lemon:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-lemon:not(.btn-outline).focus {\n    background-color: #F7CA18;\n    border-color: #F7CA18; }\n  .btn.yellow-lemon:not(.btn-outline) .badge {\n    color: #F7CA18;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-lemon {\n  border-color: #F7CA18;\n  color: #F7CA18;\n  background: none; }\n  .btn.btn-outline.yellow-lemon:hover, .btn.btn-outline.yellow-lemon:active, .btn.btn-outline.yellow-lemon:active:hover, .btn.btn-outline.yellow-lemon:active:focus, .btn.btn-outline.yellow-lemon:focus, .btn.btn-outline.yellow-lemon.active {\n    border-color: #F7CA18;\n    color: #ffffff;\n    background-color: #F7CA18; }\n\n.btn.yellow-lemon-stripe {\n  border-left: 4px solid #F7CA18 !important; }\n\n.btn.yellow-lemon.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-saffron:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #F4D03F;\n  border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline):focus, .btn.yellow-saffron:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #f1c40f;\n    border-color: #e8bd0d; }\n    .btn.yellow-saffron:not(.btn-outline):active:hover, .btn.yellow-saffron:not(.btn-outline):active:focus, .btn.yellow-saffron:not(.btn-outline):active.focus, .btn.yellow-saffron:not(.btn-outline).active:hover, .btn.yellow-saffron:not(.btn-outline).active:focus, .btn.yellow-saffron:not(.btn-outline).active.focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #d0a90c;\n      border-color: #aa8a0a; }\n  .btn.yellow-saffron:not(.btn-outline):active, .btn.yellow-saffron:not(.btn-outline).active,\n  .open > .btn.yellow-saffron:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-saffron:not(.btn-outline).disabled:hover, .btn.yellow-saffron:not(.btn-outline).disabled:focus, .btn.yellow-saffron:not(.btn-outline).disabled.focus, .btn.yellow-saffron:not(.btn-outline)[disabled]:hover, .btn.yellow-saffron:not(.btn-outline)[disabled]:focus, .btn.yellow-saffron:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-saffron:not(.btn-outline).focus {\n    background-color: #F4D03F;\n    border-color: #F4D03F; }\n  .btn.yellow-saffron:not(.btn-outline) .badge {\n    color: #F4D03F;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-saffron {\n  border-color: #F4D03F;\n  color: #F4D03F;\n  background: none; }\n  .btn.btn-outline.yellow-saffron:hover, .btn.btn-outline.yellow-saffron:active, .btn.btn-outline.yellow-saffron:active:hover, .btn.btn-outline.yellow-saffron:active:focus, .btn.btn-outline.yellow-saffron:focus, .btn.btn-outline.yellow-saffron.active {\n    border-color: #F4D03F;\n    color: #ffffff;\n    background-color: #F4D03F; }\n\n.btn.yellow-saffron-stripe {\n  border-left: 4px solid #F4D03F !important; }\n\n.btn.yellow-saffron.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c8d046;\n  border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline):focus, .btn.yellow-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #adb52e;\n    border-color: #a5ad2c; }\n    .btn.yellow-soft:not(.btn-outline):active:hover, .btn.yellow-soft:not(.btn-outline):active:focus, .btn.yellow-soft:not(.btn-outline):active.focus, .btn.yellow-soft:not(.btn-outline).active:hover, .btn.yellow-soft:not(.btn-outline).active:focus, .btn.yellow-soft:not(.btn-outline).active.focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #929927;\n      border-color: #73781e; }\n  .btn.yellow-soft:not(.btn-outline):active, .btn.yellow-soft:not(.btn-outline).active,\n  .open > .btn.yellow-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-soft:not(.btn-outline).disabled:hover, .btn.yellow-soft:not(.btn-outline).disabled:focus, .btn.yellow-soft:not(.btn-outline).disabled.focus, .btn.yellow-soft:not(.btn-outline)[disabled]:hover, .btn.yellow-soft:not(.btn-outline)[disabled]:focus, .btn.yellow-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-soft:not(.btn-outline).focus {\n    background-color: #c8d046;\n    border-color: #c8d046; }\n  .btn.yellow-soft:not(.btn-outline) .badge {\n    color: #c8d046;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-soft {\n  border-color: #c8d046;\n  color: #c8d046;\n  background: none; }\n  .btn.btn-outline.yellow-soft:hover, .btn.btn-outline.yellow-soft:active, .btn.btn-outline.yellow-soft:active:hover, .btn.btn-outline.yellow-soft:active:focus, .btn.btn-outline.yellow-soft:focus, .btn.btn-outline.yellow-soft.active {\n    border-color: #c8d046;\n    color: #ffffff;\n    background-color: #c8d046; }\n\n.btn.yellow-soft-stripe {\n  border-left: 4px solid #c8d046 !important; }\n\n.btn.yellow-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-haze:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5bf66;\n  border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline):focus, .btn.yellow-haze:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b4ad44;\n    border-color: #aca641; }\n    .btn.yellow-haze:not(.btn-outline):active:hover, .btn.yellow-haze:not(.btn-outline):active:focus, .btn.yellow-haze:not(.btn-outline):active.focus, .btn.yellow-haze:not(.btn-outline).active:hover, .btn.yellow-haze:not(.btn-outline).active:focus, .btn.yellow-haze:not(.btn-outline).active.focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9a943a;\n      border-color: #7c772f; }\n  .btn.yellow-haze:not(.btn-outline):active, .btn.yellow-haze:not(.btn-outline).active,\n  .open > .btn.yellow-haze:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-haze:not(.btn-outline).disabled:hover, .btn.yellow-haze:not(.btn-outline).disabled:focus, .btn.yellow-haze:not(.btn-outline).disabled.focus, .btn.yellow-haze:not(.btn-outline)[disabled]:hover, .btn.yellow-haze:not(.btn-outline)[disabled]:focus, .btn.yellow-haze:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-haze:not(.btn-outline).focus {\n    background-color: #c5bf66;\n    border-color: #c5bf66; }\n  .btn.yellow-haze:not(.btn-outline) .badge {\n    color: #c5bf66;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-haze {\n  border-color: #c5bf66;\n  color: #c5bf66;\n  background: none; }\n  .btn.btn-outline.yellow-haze:hover, .btn.btn-outline.yellow-haze:active, .btn.btn-outline.yellow-haze:active:hover, .btn.btn-outline.yellow-haze:active:focus, .btn.btn-outline.yellow-haze:focus, .btn.btn-outline.yellow-haze.active {\n    border-color: #c5bf66;\n    color: #ffffff;\n    background-color: #c5bf66; }\n\n.btn.yellow-haze-stripe {\n  border-left: 4px solid #c5bf66 !important; }\n\n.btn.yellow-haze.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.yellow-mint:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #c5b96b;\n  border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline):focus, .btn.yellow-mint:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #b6a747;\n    border-color: #aea044; }\n    .btn.yellow-mint:not(.btn-outline):active:hover, .btn.yellow-mint:not(.btn-outline):active:focus, .btn.yellow-mint:not(.btn-outline):active.focus, .btn.yellow-mint:not(.btn-outline).active:hover, .btn.yellow-mint:not(.btn-outline).active:focus, .btn.yellow-mint:not(.btn-outline).active.focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9c8f3d;\n      border-color: #7f7532; }\n  .btn.yellow-mint:not(.btn-outline):active, .btn.yellow-mint:not(.btn-outline).active,\n  .open > .btn.yellow-mint:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.yellow-mint:not(.btn-outline).disabled:hover, .btn.yellow-mint:not(.btn-outline).disabled:focus, .btn.yellow-mint:not(.btn-outline).disabled.focus, .btn.yellow-mint:not(.btn-outline)[disabled]:hover, .btn.yellow-mint:not(.btn-outline)[disabled]:focus, .btn.yellow-mint:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):hover,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline):focus,\n  fieldset[disabled] .btn.yellow-mint:not(.btn-outline).focus {\n    background-color: #c5b96b;\n    border-color: #c5b96b; }\n  .btn.yellow-mint:not(.btn-outline) .badge {\n    color: #c5b96b;\n    background-color: #ffffff; }\n\n.btn.btn-outline.yellow-mint {\n  border-color: #c5b96b;\n  color: #c5b96b;\n  background: none; }\n  .btn.btn-outline.yellow-mint:hover, .btn.btn-outline.yellow-mint:active, .btn.btn-outline.yellow-mint:active:hover, .btn.btn-outline.yellow-mint:active:focus, .btn.btn-outline.yellow-mint:focus, .btn.btn-outline.yellow-mint.active {\n    border-color: #c5b96b;\n    color: #ffffff;\n    background-color: #c5b96b; }\n\n.btn.yellow-mint-stripe {\n  border-left: 4px solid #c5b96b !important; }\n\n.btn.yellow-mint.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline):focus, .btn.purple:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple:not(.btn-outline):active:hover, .btn.purple:not(.btn-outline):active:focus, .btn.purple:not(.btn-outline):active.focus, .btn.purple:not(.btn-outline).active:hover, .btn.purple:not(.btn-outline).active:focus, .btn.purple:not(.btn-outline).active.focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple:not(.btn-outline):active, .btn.purple:not(.btn-outline).active,\n  .open > .btn.purple:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple:not(.btn-outline).disabled:hover, .btn.purple:not(.btn-outline).disabled:focus, .btn.purple:not(.btn-outline).disabled.focus, .btn.purple:not(.btn-outline)[disabled]:hover, .btn.purple:not(.btn-outline)[disabled]:focus, .btn.purple:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple:hover, .btn.btn-outline.purple:active, .btn.btn-outline.purple:active:hover, .btn.btn-outline.purple:active:focus, .btn.btn-outline.purple:focus, .btn.btn-outline.purple.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-plum:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline):focus, .btn.purple-plum:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-plum:not(.btn-outline):active:hover, .btn.purple-plum:not(.btn-outline):active:focus, .btn.purple-plum:not(.btn-outline):active.focus, .btn.purple-plum:not(.btn-outline).active:hover, .btn.purple-plum:not(.btn-outline).active:focus, .btn.purple-plum:not(.btn-outline).active.focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-plum:not(.btn-outline):active, .btn.purple-plum:not(.btn-outline).active,\n  .open > .btn.purple-plum:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-plum:not(.btn-outline).disabled:hover, .btn.purple-plum:not(.btn-outline).disabled:focus, .btn.purple-plum:not(.btn-outline).disabled.focus, .btn.purple-plum:not(.btn-outline)[disabled]:hover, .btn.purple-plum:not(.btn-outline)[disabled]:focus, .btn.purple-plum:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-plum:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-plum:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-plum {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-plum:hover, .btn.btn-outline.purple-plum:active, .btn.btn-outline.purple-plum:active:hover, .btn.btn-outline.purple-plum:active:focus, .btn.btn-outline.purple-plum:focus, .btn.btn-outline.purple-plum.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-plum-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-plum.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-medium:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #BF55EC;\n  border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline):focus, .btn.purple-medium:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #ae27e7;\n    border-color: #aa1ee6; }\n    .btn.purple-medium:not(.btn-outline):active:hover, .btn.purple-medium:not(.btn-outline):active:focus, .btn.purple-medium:not(.btn-outline):active.focus, .btn.purple-medium:not(.btn-outline).active:hover, .btn.purple-medium:not(.btn-outline).active:focus, .btn.purple-medium:not(.btn-outline).active.focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #9b18d3;\n      border-color: #8013ae; }\n  .btn.purple-medium:not(.btn-outline):active, .btn.purple-medium:not(.btn-outline).active,\n  .open > .btn.purple-medium:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-medium:not(.btn-outline).disabled:hover, .btn.purple-medium:not(.btn-outline).disabled:focus, .btn.purple-medium:not(.btn-outline).disabled.focus, .btn.purple-medium:not(.btn-outline)[disabled]:hover, .btn.purple-medium:not(.btn-outline)[disabled]:focus, .btn.purple-medium:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-medium:not(.btn-outline).focus {\n    background-color: #BF55EC;\n    border-color: #BF55EC; }\n  .btn.purple-medium:not(.btn-outline) .badge {\n    color: #BF55EC;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-medium {\n  border-color: #BF55EC;\n  color: #BF55EC;\n  background: none; }\n  .btn.btn-outline.purple-medium:hover, .btn.btn-outline.purple-medium:active, .btn.btn-outline.purple-medium:active:hover, .btn.btn-outline.purple-medium:active:focus, .btn.btn-outline.purple-medium:focus, .btn.btn-outline.purple-medium.active {\n    border-color: #BF55EC;\n    color: #ffffff;\n    background-color: #BF55EC; }\n\n.btn.purple-medium-stripe {\n  border-left: 4px solid #BF55EC !important; }\n\n.btn.purple-medium.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-studio:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8E44AD;\n  border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline):focus, .btn.purple-studio:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #703688;\n    border-color: #6a3381; }\n    .btn.purple-studio:not(.btn-outline):active:hover, .btn.purple-studio:not(.btn-outline):active:focus, .btn.purple-studio:not(.btn-outline):active.focus, .btn.purple-studio:not(.btn-outline).active:hover, .btn.purple-studio:not(.btn-outline).active:focus, .btn.purple-studio:not(.btn-outline).active.focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5b2c6f;\n      border-color: #432051; }\n  .btn.purple-studio:not(.btn-outline):active, .btn.purple-studio:not(.btn-outline).active,\n  .open > .btn.purple-studio:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-studio:not(.btn-outline).disabled:hover, .btn.purple-studio:not(.btn-outline).disabled:focus, .btn.purple-studio:not(.btn-outline).disabled.focus, .btn.purple-studio:not(.btn-outline)[disabled]:hover, .btn.purple-studio:not(.btn-outline)[disabled]:focus, .btn.purple-studio:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-studio:not(.btn-outline).focus {\n    background-color: #8E44AD;\n    border-color: #8E44AD; }\n  .btn.purple-studio:not(.btn-outline) .badge {\n    color: #8E44AD;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-studio {\n  border-color: #8E44AD;\n  color: #8E44AD;\n  background: none; }\n  .btn.btn-outline.purple-studio:hover, .btn.btn-outline.purple-studio:active, .btn.btn-outline.purple-studio:active:hover, .btn.btn-outline.purple-studio:active:focus, .btn.btn-outline.purple-studio:focus, .btn.btn-outline.purple-studio.active {\n    border-color: #8E44AD;\n    color: #ffffff;\n    background-color: #8E44AD; }\n\n.btn.purple-studio-stripe {\n  border-left: 4px solid #8E44AD !important; }\n\n.btn.purple-studio.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-wisteria:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9B59B6;\n  border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline):focus, .btn.purple-wisteria:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #804399;\n    border-color: #7a4092; }\n    .btn.purple-wisteria:not(.btn-outline):active:hover, .btn.purple-wisteria:not(.btn-outline):active:focus, .btn.purple-wisteria:not(.btn-outline):active.focus, .btn.purple-wisteria:not(.btn-outline).active:hover, .btn.purple-wisteria:not(.btn-outline).active:focus, .btn.purple-wisteria:not(.btn-outline).active.focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #6b3880;\n      border-color: #532c64; }\n  .btn.purple-wisteria:not(.btn-outline):active, .btn.purple-wisteria:not(.btn-outline).active,\n  .open > .btn.purple-wisteria:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-wisteria:not(.btn-outline).disabled:hover, .btn.purple-wisteria:not(.btn-outline).disabled:focus, .btn.purple-wisteria:not(.btn-outline).disabled.focus, .btn.purple-wisteria:not(.btn-outline)[disabled]:hover, .btn.purple-wisteria:not(.btn-outline)[disabled]:focus, .btn.purple-wisteria:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-wisteria:not(.btn-outline).focus {\n    background-color: #9B59B6;\n    border-color: #9B59B6; }\n  .btn.purple-wisteria:not(.btn-outline) .badge {\n    color: #9B59B6;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-wisteria {\n  border-color: #9B59B6;\n  color: #9B59B6;\n  background: none; }\n  .btn.btn-outline.purple-wisteria:hover, .btn.btn-outline.purple-wisteria:active, .btn.btn-outline.purple-wisteria:active:hover, .btn.btn-outline.purple-wisteria:active:focus, .btn.btn-outline.purple-wisteria:focus, .btn.btn-outline.purple-wisteria.active {\n    border-color: #9B59B6;\n    color: #ffffff;\n    background-color: #9B59B6; }\n\n.btn.purple-wisteria-stripe {\n  border-left: 4px solid #9B59B6 !important; }\n\n.btn.purple-wisteria.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-seance:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #9A12B3;\n  border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline):focus, .btn.purple-seance:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #720d85;\n    border-color: #6a0c7b; }\n    .btn.purple-seance:not(.btn-outline):active:hover, .btn.purple-seance:not(.btn-outline):active:focus, .btn.purple-seance:not(.btn-outline):active.focus, .btn.purple-seance:not(.btn-outline).active:hover, .btn.purple-seance:not(.btn-outline).active:focus, .btn.purple-seance:not(.btn-outline).active.focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #560a64;\n      border-color: #36063f; }\n  .btn.purple-seance:not(.btn-outline):active, .btn.purple-seance:not(.btn-outline).active,\n  .open > .btn.purple-seance:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-seance:not(.btn-outline).disabled:hover, .btn.purple-seance:not(.btn-outline).disabled:focus, .btn.purple-seance:not(.btn-outline).disabled.focus, .btn.purple-seance:not(.btn-outline)[disabled]:hover, .btn.purple-seance:not(.btn-outline)[disabled]:focus, .btn.purple-seance:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-seance:not(.btn-outline).focus {\n    background-color: #9A12B3;\n    border-color: #9A12B3; }\n  .btn.purple-seance:not(.btn-outline) .badge {\n    color: #9A12B3;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-seance {\n  border-color: #9A12B3;\n  color: #9A12B3;\n  background: none; }\n  .btn.btn-outline.purple-seance:hover, .btn.btn-outline.purple-seance:active, .btn.btn-outline.purple-seance:active:hover, .btn.btn-outline.purple-seance:active:focus, .btn.btn-outline.purple-seance:focus, .btn.btn-outline.purple-seance.active {\n    border-color: #9A12B3;\n    color: #ffffff;\n    background-color: #9A12B3; }\n\n.btn.purple-seance-stripe {\n  border-left: 4px solid #9A12B3 !important; }\n\n.btn.purple-seance.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-intense:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8775a7;\n  border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline):focus, .btn.purple-intense:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6d5b8e;\n    border-color: #685788; }\n    .btn.purple-intense:not(.btn-outline):active:hover, .btn.purple-intense:not(.btn-outline):active:focus, .btn.purple-intense:not(.btn-outline):active.focus, .btn.purple-intense:not(.btn-outline).active:hover, .btn.purple-intense:not(.btn-outline).active:focus, .btn.purple-intense:not(.btn-outline).active.focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4d78;\n      border-color: #493d60; }\n  .btn.purple-intense:not(.btn-outline):active, .btn.purple-intense:not(.btn-outline).active,\n  .open > .btn.purple-intense:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-intense:not(.btn-outline).disabled:hover, .btn.purple-intense:not(.btn-outline).disabled:focus, .btn.purple-intense:not(.btn-outline).disabled.focus, .btn.purple-intense:not(.btn-outline)[disabled]:hover, .btn.purple-intense:not(.btn-outline)[disabled]:focus, .btn.purple-intense:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-intense:not(.btn-outline).focus {\n    background-color: #8775a7;\n    border-color: #8775a7; }\n  .btn.purple-intense:not(.btn-outline) .badge {\n    color: #8775a7;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-intense {\n  border-color: #8775a7;\n  color: #8775a7;\n  background: none; }\n  .btn.btn-outline.purple-intense:hover, .btn.btn-outline.purple-intense:active, .btn.btn-outline.purple-intense:active:hover, .btn.btn-outline.purple-intense:active:focus, .btn.btn-outline.purple-intense:focus, .btn.btn-outline.purple-intense.active {\n    border-color: #8775a7;\n    color: #ffffff;\n    background-color: #8775a7; }\n\n.btn.purple-intense-stripe {\n  border-left: 4px solid #8775a7 !important; }\n\n.btn.purple-intense.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-sharp:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #796799;\n  border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline):focus, .btn.purple-sharp:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #61527b;\n    border-color: #5c4e75; }\n    .btn.purple-sharp:not(.btn-outline):active:hover, .btn.purple-sharp:not(.btn-outline):active:focus, .btn.purple-sharp:not(.btn-outline):active.focus, .btn.purple-sharp:not(.btn-outline).active:hover, .btn.purple-sharp:not(.btn-outline).active:focus, .btn.purple-sharp:not(.btn-outline).active.focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #504465;\n      border-color: #3d344d; }\n  .btn.purple-sharp:not(.btn-outline):active, .btn.purple-sharp:not(.btn-outline).active,\n  .open > .btn.purple-sharp:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-sharp:not(.btn-outline).disabled:hover, .btn.purple-sharp:not(.btn-outline).disabled:focus, .btn.purple-sharp:not(.btn-outline).disabled.focus, .btn.purple-sharp:not(.btn-outline)[disabled]:hover, .btn.purple-sharp:not(.btn-outline)[disabled]:focus, .btn.purple-sharp:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-sharp:not(.btn-outline).focus {\n    background-color: #796799;\n    border-color: #796799; }\n  .btn.purple-sharp:not(.btn-outline) .badge {\n    color: #796799;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-sharp {\n  border-color: #796799;\n  color: #796799;\n  background: none; }\n  .btn.btn-outline.purple-sharp:hover, .btn.btn-outline.purple-sharp:active, .btn.btn-outline.purple-sharp:active:hover, .btn.btn-outline.purple-sharp:active:focus, .btn.btn-outline.purple-sharp:focus, .btn.btn-outline.purple-sharp.active {\n    border-color: #796799;\n    color: #ffffff;\n    background-color: #796799; }\n\n.btn.purple-sharp-stripe {\n  border-left: 4px solid #796799 !important; }\n\n.btn.purple-sharp.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n.btn.purple-soft:not(.btn-outline) {\n  color: #ffffff;\n  background-color: #8877a9;\n  border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline):focus, .btn.purple-soft:not(.btn-outline).focus {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):hover {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    color: #ffffff;\n    background-color: #6e5c91;\n    border-color: #69588b; }\n    .btn.purple-soft:not(.btn-outline):active:hover, .btn.purple-soft:not(.btn-outline):active:focus, .btn.purple-soft:not(.btn-outline):active.focus, .btn.purple-soft:not(.btn-outline).active:hover, .btn.purple-soft:not(.btn-outline).active:focus, .btn.purple-soft:not(.btn-outline).active.focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:hover,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle:focus,\n    .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle.focus {\n      color: #ffffff;\n      background-color: #5d4e7b;\n      border-color: #4a3e62; }\n  .btn.purple-soft:not(.btn-outline):active, .btn.purple-soft:not(.btn-outline).active,\n  .open > .btn.purple-soft:not(.btn-outline).dropdown-toggle {\n    background-image: none; }\n  .btn.purple-soft:not(.btn-outline).disabled:hover, .btn.purple-soft:not(.btn-outline).disabled:focus, .btn.purple-soft:not(.btn-outline).disabled.focus, .btn.purple-soft:not(.btn-outline)[disabled]:hover, .btn.purple-soft:not(.btn-outline)[disabled]:focus, .btn.purple-soft:not(.btn-outline)[disabled].focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):hover,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline):focus,\n  fieldset[disabled] .btn.purple-soft:not(.btn-outline).focus {\n    background-color: #8877a9;\n    border-color: #8877a9; }\n  .btn.purple-soft:not(.btn-outline) .badge {\n    color: #8877a9;\n    background-color: #ffffff; }\n\n.btn.btn-outline.purple-soft {\n  border-color: #8877a9;\n  color: #8877a9;\n  background: none; }\n  .btn.btn-outline.purple-soft:hover, .btn.btn-outline.purple-soft:active, .btn.btn-outline.purple-soft:active:hover, .btn.btn-outline.purple-soft:active:focus, .btn.btn-outline.purple-soft:focus, .btn.btn-outline.purple-soft.active {\n    border-color: #8877a9;\n    color: #ffffff;\n    background-color: #8877a9; }\n\n.btn.purple-soft-stripe {\n  border-left: 4px solid #8877a9 !important; }\n\n.btn.purple-soft.btn-no-border:not(.active) {\n  border-color: transparent; }\n\n/* Circle Buttons */\n.btn-circle {\n  border-radius: 25px !important;\n  overflow: hidden; }\n\n.btn-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.btn-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-icon-only {\n  height: 34px;\n  width: 34px;\n  text-align: center;\n  padding-left: 0;\n  padding-right: 0; }\n  .btn-icon-only > [class^=\"icon-\"],\n  .btn-icon-only > i {\n    text-align: center;\n    margin-top: 2px; }\n\n.btn-group.btn-group-circle > .btn:first-child {\n  border-radius: 25px 0 0 25px !important; }\n\n.btn-group.btn-group-circle > .btn:last-child {\n  border-radius: 0 25px 25px 0 !important; }\n\n.btn-group.btn-group-devided > .btn {\n  margin-right: 5px; }\n  .btn-group.btn-group-devided > .btn:last-child {\n    margin-right: 0; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:first-child {\n  border-radius: 25px 25px 0 0 !important; }\n\n.btn-group-vertical.btn-group-vertical-circle > .btn:last-child {\n  border-radius: 0 0 25px 25px !important; }\n\n/***\nImage Carousel\n***/\n.carousel.image-carousel .carousel-inner {\n  padding-top: 0;\n  padding-bottom: 0; }\n\n.carousel.image-carousel .carousel-control i {\n  position: absolute;\n  top: 40%; }\n\n.carousel.image-carousel.image-carousel-hoverable .carousel-control i {\n  display: none; }\n\n.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i {\n  display: inline-block; }\n\n.carousel.image-carousel .carousel-control.left i {\n  left: 10px; }\n\n.carousel.image-carousel .carousel-control.right i {\n  right: 10px; }\n\n.carousel.image-carousel .carousel-indicators {\n  margin-top: 10px;\n  bottom: -7px; }\n  .carousel.image-carousel .carousel-indicators li {\n    background-color: #666; }\n    .carousel.image-carousel .carousel-indicators li.active {\n      background-color: #666; }\n\n.carousel.image-carousel .carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px 15px 25px 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75); }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2,\n  .carousel.image-carousel .carousel-caption p {\n    text-align: left;\n    line-height: 20px;\n    color: #ffffff; }\n  .carousel.image-carousel .carousel-caption h4,\n  .carousel.image-carousel .carousel-caption h3,\n  .carousel.image-carousel .carousel-caption h2 {\n    margin: 0 0 5px; }\n    .carousel.image-carousel .carousel-caption h4 a,\n    .carousel.image-carousel .carousel-caption h3 a,\n    .carousel.image-carousel .carousel-caption h2 a {\n      color: #aaa; }\n  .carousel.image-carousel .carousel-caption p {\n    margin-bottom: 0; }\n  .carousel.image-carousel .carousel-caption .item {\n    margin: 0; }\n\n/***\nCharts and statistics\n***/\n.chart,\n.pie,\n.bars {\n  overflow: hidden;\n  height: 300px;\n  width: 100%;\n  font-family: \"Open Sans\", sans-serif !important;\n  font-size: 14px; }\n\n/***\nStatistic lists\n***/\n.item-list.table .percent {\n  width: 30px;\n  float: right;\n  margin-right: 10px;\n  margin-top: 3px; }\n\n/***\nChart tooltips\n***/\n.chart-tooltip {\n  clear: both;\n  z-index: 100;\n  background-color: #736e6e !important;\n  padding: 5px !important;\n  color: #fff; }\n  .chart-tooltip .label {\n    clear: both;\n    display: block;\n    margin-bottom: 2px; }\n\n/***\nMini chart containers\n***/\n.bar-chart,\n.line-chart {\n  display: none; }\n\n/***\nChats\n***/\n.chats {\n  margin: 0;\n  padding: 0;\n  margin-top: -15px; }\n  .chats li {\n    list-style: none;\n    padding: 5px 0;\n    margin: 10px auto;\n    font-size: 12px; }\n    .chats li .body {\n      display: block; }\n    .chats li .avatar {\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .chats li.in .avatar {\n      float: left;\n      margin-right: 10px; }\n    .chats li.out .avatar {\n      float: right;\n      margin-left: 10px; }\n    .chats li .name {\n      color: #3590c1;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .datetime {\n      color: #333;\n      font-size: 13px;\n      font-weight: 400; }\n    .chats li .message {\n      display: block;\n      padding: 5px;\n      position: relative; }\n    .chats li.in .message {\n      text-align: left;\n      border-left: 2px solid #1BBC9B;\n      margin-left: 65px;\n      background: #fafafa; }\n      .chats li.in .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        left: -8px;\n        width: 0;\n        height: 0;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-right: 8px solid #1BBC9B; }\n    .chats li.out .message {\n      border-right: 2px solid #F3565D;\n      margin-right: 65px;\n      background: #fafafa;\n      text-align: right; }\n      .chats li.out .message .arrow {\n        display: block;\n        position: absolute;\n        top: 5px;\n        right: -8px;\n        border-top: 8px solid transparent;\n        border-bottom: 8px solid transparent;\n        border-left: 8px solid #F3565D; }\n    .chats li.out .name,\n    .chats li.out .datetime {\n      text-align: right; }\n\n.chat-form {\n  margin-top: 15px;\n  padding: 10px;\n  background-color: #e9eff3;\n  overflow: hidden;\n  clear: both; }\n  .chat-form .input-cont {\n    margin-right: 40px; }\n    .chat-form .input-cont .form-control {\n      border: 1px solid #ddd;\n      width: 100%  !important;\n      margin-top: 0;\n      background-color: #fff !important; }\n      .chat-form .input-cont .form-control:focus {\n        border: 1px solid #4b8df9 !important; }\n  .chat-form .btn-cont {\n    margin-top: -41px;\n    position: relative;\n    float: right;\n    width: 44px; }\n    .chat-form .btn-cont .arrow {\n      position: absolute;\n      top: 17px;\n      right: 43px;\n      border-top: 8px solid transparent;\n      border-bottom: 8px solid transparent;\n      border-right: 8px solid #4d90fe;\n      -webkit-box-sizing: border-box;\n      -moz-box-sizing: border-box;\n      box-sizing: border-box; }\n    .chat-form .btn-cont .btn {\n      margin-top: 7px; }\n    .chat-form .btn-cont:hover .arrow {\n      border-right-color: #0362fd;\n      transition: all 0.3s; }\n    .chat-form .btn-cont:hover .btn {\n      background-color: #0362fd;\n      transition: all 0.3s; }\n\n/***\nCustomized Bootstrap Close Icon \n***/\n.close {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  width: 9px;\n  height: 9px;\n  background-repeat: no-repeat !important;\n  text-indent: -10000px;\n  outline: none;\n  background-image: url(\"../img/remove-icon-small.png\") !important; }\n\n/***\nCustomized Bootstrap Dropdowns\n***/\n/***\nDropdowns\n***/\n.dropup.open > .dropdown-toggle,\n.dropdown.open > .dropdown-toggle {\n  border-color: #ddd; }\n\n/***\nDropdown Menu\n***/\n/*rtl:ignore*/\n.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n\n.dropdown-menu {\n  left: 0/*rtl:auto*/;\n  min-width: 175px;\n  position: absolute;\n  z-index: 1000;\n  display: none;\n  float: left;\n  list-style: none;\n  text-shadow: none;\n  padding: 0px;\n  background-color: #ffffff;\n  margin: 10px  0px 0px 0px;\n  border: 1px solid #eee;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dropdown-hoverable:hover .dropdown-menu {\n    display: block; }\n  .dropdown-menu li.divider {\n    background: #f1f3f6; }\n  .dropdown-menu li.header {\n    padding: 8px 14px 2px 14px; }\n  .dropdown-menu > li > a {\n    padding: 8px 16px;\n    color: #6f6f6f;\n    text-decoration: none;\n    display: block;\n    clear: both;\n    font-weight: 300;\n    line-height: 18px;\n    white-space: nowrap; }\n    .dropdown-menu > li > a > [class^=\"fa-\"],\n    .dropdown-menu > li > a > [class*=\" fa-\"] {\n      color: #888; }\n    .dropdown-menu > li > a > [class^=\"icon-\"],\n    .dropdown-menu > li > a > [class*=\" icon-\"] {\n      color: #666; }\n    .dropdown-menu > li > a > [class^=\"glyphicon-\"],\n    .dropdown-menu > li > a > [class*=\" glyphicon-\"] {\n      color: #888; }\n  .dropdown-menu > li:hover > a, .dropdown-menu > li.active > a, .dropdown-menu > li.active:hover > a {\n    text-decoration: none;\n    background-image: none;\n    background-color: #f6f6f6;\n    color: #555;\n    filter: none; }\n  .dropdown-menu.bottom-up {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px; }\n    .dropdown-menu.bottom-up:before, .dropdown-menu.bottom-up:after {\n      display: none !important; }\n  .dropdown-menu > li:first-child:hover > a {\n    border-radius: 4px 4px 0px 0px; }\n  .dropdown-menu > li:last-child:hover > a {\n    border-radius: 0px 0px 4px 4px; }\n\n.dropdown-hover:hover > .dropdown-menu {\n  display: block; }\n\n.dropdown > .dropdown-menu,\n.dropdown-toggle > .dropdown-menu,\n.btn-group > .dropdown-menu {\n  margin-top: 10px; }\n  .dropdown > .dropdown-menu:before,\n  .dropdown-toggle > .dropdown-menu:before,\n  .btn-group > .dropdown-menu:before {\n    position: absolute;\n    top: -8px;\n    left: 9px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 8px solid transparent;\n    border-bottom: 8px solid #e0e0e0;\n    border-left: 8px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu:after,\n  .dropdown-toggle > .dropdown-menu:after,\n  .btn-group > .dropdown-menu:after {\n    position: absolute;\n    top: -7px;\n    left: 10px;\n    right: auto;\n    display: inline-block !important;\n    border-right: 7px solid transparent;\n    border-bottom: 7px solid #fff;\n    border-left: 7px solid transparent;\n    content: ''; }\n  .dropdown > .dropdown-menu.pull-left:before,\n  .dropdown-toggle > .dropdown-menu.pull-left:before,\n  .btn-group > .dropdown-menu.pull-left:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-left:after,\n  .dropdown-toggle > .dropdown-menu.pull-left:after,\n  .btn-group > .dropdown-menu.pull-left:after {\n    left: auto;\n    right: 10px; }\n  .dropdown > .dropdown-menu.pull-right:before,\n  .dropdown-toggle > .dropdown-menu.pull-right:before,\n  .btn-group > .dropdown-menu.pull-right:before {\n    left: auto;\n    right: 9px; }\n  .dropdown > .dropdown-menu.pull-right:after,\n  .dropdown-toggle > .dropdown-menu.pull-right:after,\n  .btn-group > .dropdown-menu.pull-right:after {\n    left: auto;\n    right: 10px; }\n\n.dropdown.dropup > .dropdown-menu,\n.dropdown-toggle.dropup > .dropdown-menu,\n.btn-group.dropup > .dropdown-menu {\n  margin-top: 0px;\n  margin-bottom: 10px; }\n  .dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before,\n  .dropdown-toggle.dropup > .dropdown-menu:after,\n  .dropdown-toggle.dropup > .dropdown-menu:before,\n  .btn-group.dropup > .dropdown-menu:after,\n  .btn-group.dropup > .dropdown-menu:before {\n    display: none !important; }\n\n.dropdown-toggle:after {\n  display: none; }\n\n/* Dropdown submenu support for Bootsrap 3 */\n.dropdown-submenu {\n  position: relative; }\n  .dropdown-submenu > .dropdown-menu {\n    top: 5px;\n    left: 100%;\n    margin-top: -6px;\n    margin-left: -1px; }\n  .dropdown-submenu > a:after {\n    position: absolute;\n    display: inline-block;\n    font-size: 14px;\n    right: 7px;\n    top: 7px;\n    font-family: FontAwesome;\n    height: auto;\n    content: \"\\f105\";\n    font-weight: 300; }\n  .dropdown-submenu:hover > .dropdown-menu {\n    display: block; }\n  .dropdown-submenu:hover > a:after {\n    border-left-color: #ffffff; }\n  .dropdown-submenu.pull-left {\n    float: none; }\n    .dropdown-submenu.pull-left > .dropdown-menu {\n      left: -100%;\n      margin-left: 10px; }\n  .dropup .dropdown-submenu > .dropdown-menu {\n    top: auto;\n    bottom: 0;\n    margin-top: 0;\n    margin-bottom: -2px; }\n\n.nav.pull-right > li > .dropdown-menu,\n.nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto; }\n  .nav.pull-right > li > .dropdown-menu:before,\n  .nav > li > .dropdown-menu.pull-right:before {\n    right: 12px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu:after,\n  .nav > li > .dropdown-menu.pull-right:after {\n    right: 13px;\n    left: auto; }\n  .nav.pull-right > li > .dropdown-menu .dropdown-menu,\n  .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n    right: 100%;\n    left: auto;\n    margin-right: -1px;\n    margin-left: 0; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .navbar-nav .open .dropdown-menu {\n    position: absolute;\n    float: left;\n    width: auto;\n    margin-top: 0;\n    background-color: #ffffff;\n    border: 1px solid #efefef;\n    box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n    .navbar-nav .open .dropdown-menu > li > a {\n      padding: 6px 0 6px 13px;\n      color: #333; }\n    .navbar-nav .open .dropdown-menu > li > a:hover,\n    .navbar-nav .open .dropdown-menu > li > a:active {\n      background-color: #eee; } }\n\n/***\nDropdown Checkboxes\n***/\n.dropdown-content {\n  padding: 10px; }\n  .dropdown-content form {\n    margin: 0; }\n\n.dropdown.inline .dropdown-menu {\n  display: inline-block;\n  position: relative; }\n\n.dropdown-radiobuttons,\n.dropdown-checkboxes {\n  padding: 5px; }\n  .dropdown-radiobuttons label,\n  .dropdown-checkboxes label {\n    display: block;\n    font-weight: 300;\n    color: #333;\n    margin-bottom: 4px;\n    margin-top: 4px; }\n    .dropdown-radiobuttons label .radio,\n    .dropdown-checkboxes label .radio {\n      margin-right: 3px; }\n\n/*--------------------------------------------------\n    [Dropdown Menu v2]\n----------------------------------------------------*/\n.dropdown-menu-v2 {\n  top: 100%;\n  right: 0;\n  z-index: 1001;\n  display: none;\n  float: left;\n  min-width: 225px;\n  padding: 20px 0;\n  margin: 25px 0 0;\n  font-size: 13px;\n  text-align: left;\n  list-style: none;\n  position: absolute;\n  background: #242b31;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  -webkit-background-clip: padding-box;\n  background-clip: padding-box;\n  transition-duration: 300ms;\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }\n  .dropdown-menu-v2:before {\n    top: -10px;\n    right: 0;\n    width: 0;\n    height: 0;\n    content: ' ';\n    position: absolute;\n    border-style: solid;\n    display: inline-block;\n    border-width: 0 0 15px 15px;\n    border-color: transparent transparent #242b31 transparent; }\n  .dropdown-menu-v2 > li > a {\n    clear: both;\n    color: #606e7a;\n    display: block;\n    font-weight: 600;\n    padding: 8px 20px;\n    position: relative;\n    white-space: nowrap;\n    line-height: 1.42857143;\n    text-transform: uppercase; }\n    .dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus {\n      background: #21282e;\n      text-decoration: none;\n      color: #009dc7; }\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus,\n  .dropdown-menu-v2 .active > a,\n  .dropdown-menu-v2 .active > a:hover,\n  .dropdown-menu-v2 .active > a:focus {\n    outline: 0;\n    text-decoration: none;\n    background-color: #21282e;\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    color: #009dc7; }\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus,\n  .dropdown-menu-v2 .disabled > a:hover,\n  .dropdown-menu-v2 .disabled > a:focus {\n    text-decoration: none;\n    cursor: not-allowed;\n    background-color: transparent;\n    background-image: none; }\n  .dropdown-menu-v2 .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background: #2e353c; }\n  .dropdown-menu-v2 .badge {\n    top: 8px;\n    right: 10px;\n    position: absolute; }\n\n.dropdown-menu-v2.pull-right {\n  right: 0;\n  left: auto; }\n\n.open > .dropdown-menu-v2 {\n  display: block; }\n\n.pull-right > .dropdown-menu-v2 {\n  right: 0;\n  left: auto; }\n\n/***\nSystem feeds\n***/\n.feeds {\n  margin: 0px;\n  padding: 0px;\n  list-style: none; }\n  .feeds li {\n    background-color: #fafafa;\n    color: #82949a;\n    margin-bottom: 7px; }\n    .feeds li:before, .feeds li:after {\n      display: table;\n      line-height: 0;\n      content: \"\"; }\n    .feeds li:after {\n      clear: both; }\n    .feeds li:last-child {\n      margin-bottom: 0px; }\n    .feeds li .col1 {\n      float: left;\n      width: 100%;\n      clear: both; }\n      .feeds li .col1 > .cont {\n        float: left;\n        margin-right: 75px;\n        overflow: hidden; }\n        .feeds li .col1 > .cont > .cont-col1 {\n          float: left;\n          margin-right: -100%; }\n          .feeds li .col1 > .cont > .cont-col1 > .label {\n            display: inline-block;\n            padding: 5px 4px 6px 5px;\n            vertical-align: middle;\n            text-align: center; }\n            .feeds li .col1 > .cont > .cont-col1 > .label > i {\n              text-align: center;\n              font-size: 14px; }\n        .feeds li .col1 > .cont > .cont-col2 {\n          float: left;\n          width: 100%; }\n          .feeds li .col1 > .cont > .cont-col2 > .desc {\n            margin-left: 35px;\n            padding-top: 4px;\n            padding-bottom: 5px;\n            overflow: hidden; }\n    .feeds li .col2 {\n      float: left;\n      width: 75px;\n      margin-left: -75px; }\n      .feeds li .col2 > .date {\n        padding: 4px 9px 5px 4px;\n        text-align: right;\n        font-style: italic;\n        color: #c1cbd0; }\n\n/***\nForm Layouts\n****/\n/* Static info */\n.static-info {\n  margin-bottom: 10px; }\n  .static-info .name {\n    font-size: 14px; }\n  .static-info .value {\n    font-size: 14px;\n    font-weight: 600; }\n  .static-info.align-reverse .name,\n  .static-info.align-reverse .value {\n    text-align: right; }\n\n/* Help blocks */\n.help-block {\n  margin-top: 5px;\n  margin-bottom: 5px; }\n\n.help-inline {\n  font-size: 13px;\n  color: #737373;\n  display: inline-block;\n  padding: 5px; }\n\n.form-inline input {\n  margin-bottom: 0px !important; }\n\n/* Control Label */\n.control-label {\n  margin-top: 1px;\n  font-weight: normal; }\n\n.control-label .required,\n.form-group .required {\n  color: #e02222;\n  font-size: 12px;\n  padding-left: 2px; }\n\n.form {\n  padding: 0 !important; }\n\n.portlet-form .form-body,\n.form .form-body {\n  padding: 20px; }\n  .portlet.light .portlet-form .form-body, .portlet.light\n  .form .form-body {\n    padding-left: 0;\n    padding-right: 0; }\n\n.portlet-form .form-actions,\n.form .form-actions {\n  padding: 20px 20px;\n  margin: 0;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e7ecf1;\n  *zoom: 1; }\n  .portlet.light .portlet-form .form-actions, .portlet.light\n  .form .form-actions {\n    background: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .portlet-form .form-actions.noborder,\n  .form .form-actions.noborder {\n    border-top: 0; }\n  .portlet .portlet-form .form-actions, .portlet\n  .form .form-actions {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .portlet-form .form-actions:before, .portlet-form .form-actions:after,\n  .form .form-actions:before,\n  .form .form-actions:after {\n    content: \" \";\n    display: table; }\n  .portlet-form .form-actions:after,\n  .form .form-actions:after {\n    clear: both; }\n  .portlet-form .form-actions.right,\n  .form .form-actions.right {\n    padding-left: 0;\n    padding-right: 20px;\n    text-align: right; }\n    .portlet.light .portlet-form .form-actions.right, .portlet.light\n    .form .form-actions.right {\n      padding-right: 0; }\n  .portlet-form .form-actions.left,\n  .form .form-actions.left {\n    padding-left: 20px;\n    padding-right: 0;\n    text-align: left; }\n    .portlet.light .portlet-form .form-actions.left, .portlet.light\n    .form .form-actions.left {\n      padding-left: 0; }\n  .portlet-form .form-actions.nobg,\n  .form .form-actions.nobg {\n    background-color: transparent; }\n  .portlet-form .form-actions.top,\n  .form .form-actions.top {\n    margin-top: 0;\n    margin-bottom: 20px;\n    border-top: 0;\n    border-bottom: 1px solid #e7ecf1; }\n    .portlet.light .portlet-form .form-actions.top, .portlet.light\n    .form .form-actions.top {\n      background: none; }\n  .portlet-form .form-actions .btn-set,\n  .form .form-actions .btn-set {\n    display: inline-block; }\n  @media (max-width: 767px) {\n    .portlet-form .form-actions,\n    .form .form-actions {\n      /* 767px */ }\n      .portlet-form .form-actions .btn-set,\n      .form .form-actions .btn-set {\n        margin-bottom: 3px;\n        margin-top: 3px;\n        float: left !important; } }\n\n.portlet-form .form-section,\n.form .form-section {\n  margin: 30px 0px 30px 0px;\n  padding-bottom: 5px;\n  border-bottom: 1px solid #e7ecf1; }\n  .form-fit .portlet-form .form-section, .form-fit\n  .form .form-section {\n    margin-left: 20px;\n    margin-right: 20px; }\n\n/* Checkboxes */\n.checkbox,\n.form-horizontal .checkbox {\n  padding: 0; }\n  .checkbox > label,\n  .form-horizontal .checkbox > label {\n    padding-left: 0; }\n\n.checkbox-list > label {\n  display: block; }\n  .checkbox-list > label.checkbox-inline {\n    display: inline-block; }\n    .checkbox-list > label.checkbox-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons */\n.radio-list > label {\n  display: block; }\n  .radio-list > label.radio-inline {\n    display: inline-block; }\n    .radio-list > label.radio-inline:first-child {\n      padding-left: 0; }\n\n/* Radio buttons in horizontal forms */\n.form-horizontal .radio-list .radio {\n  padding-top: 1px; }\n\n.form-horizontal .radio-list > label {\n  margin-bottom: 0; }\n\n.form-horizontal .radio > span {\n  margin-top: 2px; }\n\n/* Rows seperated form layout */\n.form .form-row-seperated .portlet-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef;\n  padding: 15px 0; }\n  .form .form-row-seperated .form-group.last {\n    border-bottom: 0;\n    margin-bottom: 0;\n    padding-bottom: 13px; }\n  .form .form-row-seperated .form-group .help-block {\n    margin-bottom: 0; }\n\n.form .form-row-seperated .form-body {\n  padding: 0; }\n\n.form .form-row-seperated .form-actions {\n  padding-left: 15px !important;\n  padding-right: 15px !important; }\n\n/* Form bordered */\n.form .form-bordered .form-group {\n  margin: 0;\n  border-bottom: 1px solid #efefef; }\n  .form .form-bordered .form-group > div {\n    padding: 15px;\n    border-left: 1px solid #efefef; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group > div {\n        /* 991px */\n        border-left: 0; } }\n  .form .form-bordered .form-group.last {\n    border-bottom: 0; }\n  .form .form-bordered .form-group .control-label {\n    padding-top: 20px; }\n    @media (max-width: 991px) {\n      .form .form-bordered .form-group .control-label {\n        /* 991px */\n        padding-top: 10px; } }\n  .form .form-bordered .form-group .help-block {\n    margin-bottom: 0; }\n  .form .form-bordered .form-group .form-control {\n    margin: 0; }\n\n.form .form-bordered .form-body {\n  margin: 0;\n  padding: 0; }\n\n.form .form-bordered .form-actions {\n  margin-top: 0;\n  padding-left: 16px !important;\n  padding-right: 16px !important; }\n  @media (max-width: 991px) {\n    .form .form-bordered .form-actions {\n      /* 991px */\n      padding-left: 15px !important;\n      padding-right: 15px !important; } }\n\n/* Horizontal bordered form */\n.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n.form .form-horizontal.form-bordered.form-row-stripped .form-control {\n  background: #fff !important; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n  .form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div {\n    background-color: #ffffff; }\n\n.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) {\n  background-color: #fcfcfc; }\n\n/* Horizontal form small input issue */\n.form-horizontal .form-group .input-sm {\n  margin-top: 3px; }\n\n.form-horizontal .form-group .form-control-static {\n  margin-top: 1px; }\n\n/***\nForm Repeater\n****/\n.mt-repeater {\n  display: table;\n  width: 100%; }\n  .mt-repeater .mt-repeater-item {\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    margin-bottom: 15px; }\n    .mt-repeater .mt-repeater-item.mt-overflow {\n      overflow: auto; }\n  .mt-repeater .mt-repeater-title {\n    font-size: 18px;\n    text-transform: uppercase;\n    margin-top: 0;\n    font-weight: 600; }\n  .mt-repeater .mt-repeater-input {\n    display: table-cell;\n    vertical-align: top;\n    padding: 0 10px 10px 10px;\n    width: 1%; }\n    .mt-repeater .mt-repeater-input input[type=\"text\"], .mt-repeater .mt-repeater-input textarea, .mt-repeater .mt-repeater-input select {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      padding-top: 0;\n      margin-bottom: 5px; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 3%; }\n    .mt-repeater .mt-repeater-input:first-child {\n      padding-left: 0; }\n    .mt-repeater .mt-repeater-input:last-child {\n      padding-right: 0; }\n  .mt-repeater .mt-repeater-delete {\n    margin-top: 1.8em; }\n    .mt-repeater .mt-repeater-delete.mt-repeater-del-right {\n      float: right;\n      margin-top: 10px; }\n  .mt-repeater .mt-repeater-cell {\n    display: table;\n    width: 100%; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline,\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      display: table-cell; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-input-inline {\n      width: 100%;\n      border-right: none; }\n    .mt-repeater .mt-repeater-cell .mt-repeater-btn-inline {\n      width: 1%;\n      float: none; }\n  .mt-repeater .mt-repeater-row {\n    margin-right: 0; }\n\n@media (max-width: 991px) {\n  .mt-repeater .mt-repeater-input {\n    width: 100%;\n    display: block;\n    padding-left: 0;\n    padding-right: 0; }\n    .mt-repeater .mt-repeater-input.mt-repeater-textarea {\n      width: 100%; }\n    .mt-repeater .mt-repeater-input .control-label {\n      text-align: left !important; }\n    .mt-repeater .mt-repeater-input .mt-repeater-delete {\n      margin-top: 0; } }\n\n/***\nForms\n***/\n.form-control {\n  outline: none !important;\n  box-shadow: none !important; }\n  .form-control.height-auto {\n    height: auto; }\n\n.input-group-addon > i {\n  color: #c5cdda; }\n\n/***\nCustom color buttons \n***/\n.form-control.white {\n  border-color: #ffffff; }\n  .form-control.white:focus {\n    border-color: #e6e6e6; }\n\n.form-control.focus-white:focus {\n  border-color: #ffffff; }\n\n.form-control.default {\n  border-color: #e1e5ec; }\n  .form-control.default:focus {\n    border-color: #c2cad8; }\n\n.form-control.focus-default:focus {\n  border-color: #e1e5ec; }\n\n.form-control.dark {\n  border-color: #2f353b; }\n  .form-control.dark:focus {\n    border-color: #181c1f; }\n\n.form-control.focus-dark:focus {\n  border-color: #2f353b; }\n\n.form-control.blue {\n  border-color: #3598dc; }\n  .form-control.blue:focus {\n    border-color: #217ebd; }\n\n.form-control.focus-blue:focus {\n  border-color: #3598dc; }\n\n.form-control.blue-madison {\n  border-color: #578ebe; }\n  .form-control.blue-madison:focus {\n    border-color: #3f74a3; }\n\n.form-control.focus-blue-madison:focus {\n  border-color: #578ebe; }\n\n.form-control.blue-chambray {\n  border-color: #2C3E50; }\n  .form-control.blue-chambray:focus {\n    border-color: #1a252f; }\n\n.form-control.focus-blue-chambray:focus {\n  border-color: #2C3E50; }\n\n.form-control.blue-ebonyclay {\n  border-color: #22313F; }\n  .form-control.blue-ebonyclay:focus {\n    border-color: #10171e; }\n\n.form-control.focus-blue-ebonyclay:focus {\n  border-color: #22313F; }\n\n.form-control.blue-hoki {\n  border-color: #67809F; }\n  .form-control.blue-hoki:focus {\n    border-color: #526781; }\n\n.form-control.focus-blue-hoki:focus {\n  border-color: #67809F; }\n\n.form-control.blue-steel {\n  border-color: #4B77BE; }\n  .form-control.blue-steel:focus {\n    border-color: #395f9d; }\n\n.form-control.focus-blue-steel:focus {\n  border-color: #4B77BE; }\n\n.form-control.blue-soft {\n  border-color: #4c87b9; }\n  .form-control.blue-soft:focus {\n    border-color: #3b6d97; }\n\n.form-control.focus-blue-soft:focus {\n  border-color: #4c87b9; }\n\n.form-control.blue-dark {\n  border-color: #5e738b; }\n  .form-control.blue-dark:focus {\n    border-color: #495a6d; }\n\n.form-control.focus-blue-dark:focus {\n  border-color: #5e738b; }\n\n.form-control.blue-sharp {\n  border-color: #5C9BD1; }\n  .form-control.blue-sharp:focus {\n    border-color: #3782c3; }\n\n.form-control.focus-blue-sharp:focus {\n  border-color: #5C9BD1; }\n\n.form-control.blue-oleo {\n  border-color: #94A0B2; }\n  .form-control.blue-oleo:focus {\n    border-color: #76869d; }\n\n.form-control.focus-blue-oleo:focus {\n  border-color: #94A0B2; }\n\n.form-control.green {\n  border-color: #32c5d2; }\n  .form-control.green:focus {\n    border-color: #26a1ab; }\n\n.form-control.focus-green:focus {\n  border-color: #32c5d2; }\n\n.form-control.green-meadow {\n  border-color: #1BBC9B; }\n  .form-control.green-meadow:focus {\n    border-color: #158f76; }\n\n.form-control.focus-green-meadow:focus {\n  border-color: #1BBC9B; }\n\n.form-control.green-seagreen {\n  border-color: #1BA39C; }\n  .form-control.green-seagreen:focus {\n    border-color: #147772; }\n\n.form-control.focus-green-seagreen:focus {\n  border-color: #1BA39C; }\n\n.form-control.green-turquoise {\n  border-color: #36D7B7; }\n  .form-control.green-turquoise:focus {\n    border-color: #24b699; }\n\n.form-control.focus-green-turquoise:focus {\n  border-color: #36D7B7; }\n\n.form-control.green-haze {\n  border-color: #44b6ae; }\n  .form-control.green-haze:focus {\n    border-color: #36918b; }\n\n.form-control.focus-green-haze:focus {\n  border-color: #44b6ae; }\n\n.form-control.green-jungle {\n  border-color: #26C281; }\n  .form-control.green-jungle:focus {\n    border-color: #1e9765; }\n\n.form-control.focus-green-jungle:focus {\n  border-color: #26C281; }\n\n.form-control.green-soft {\n  border-color: #3faba4; }\n  .form-control.green-soft:focus {\n    border-color: #318680; }\n\n.form-control.focus-green-soft:focus {\n  border-color: #3faba4; }\n\n.form-control.green-dark {\n  border-color: #4DB3A2; }\n  .form-control.green-dark:focus {\n    border-color: #3d9082; }\n\n.form-control.focus-green-dark:focus {\n  border-color: #4DB3A2; }\n\n.form-control.green-sharp {\n  border-color: #2ab4c0; }\n  .form-control.green-sharp:focus {\n    border-color: #218d96; }\n\n.form-control.focus-green-sharp:focus {\n  border-color: #2ab4c0; }\n\n.form-control.green-steel {\n  border-color: #29b4b6; }\n  .form-control.green-steel:focus {\n    border-color: #208b8c; }\n\n.form-control.focus-green-steel:focus {\n  border-color: #29b4b6; }\n\n.form-control.grey {\n  border-color: #E5E5E5; }\n  .form-control.grey:focus {\n    border-color: #cccccc; }\n\n.form-control.focus-grey:focus {\n  border-color: #E5E5E5; }\n\n.form-control.grey-steel {\n  border-color: #e9edef; }\n  .form-control.grey-steel:focus {\n    border-color: #cbd5da; }\n\n.form-control.focus-grey-steel:focus {\n  border-color: #e9edef; }\n\n.form-control.grey-cararra {\n  border-color: #fafafa; }\n  .form-control.grey-cararra:focus {\n    border-color: #e1e1e1; }\n\n.form-control.focus-grey-cararra:focus {\n  border-color: #fafafa; }\n\n.form-control.grey-gallery {\n  border-color: #555555; }\n  .form-control.grey-gallery:focus {\n    border-color: #3c3c3c; }\n\n.form-control.focus-grey-gallery:focus {\n  border-color: #555555; }\n\n.form-control.grey-cascade {\n  border-color: #95A5A6; }\n  .form-control.grey-cascade:focus {\n    border-color: #798d8f; }\n\n.form-control.focus-grey-cascade:focus {\n  border-color: #95A5A6; }\n\n.form-control.grey-silver {\n  border-color: #BFBFBF; }\n  .form-control.grey-silver:focus {\n    border-color: #a6a6a6; }\n\n.form-control.focus-grey-silver:focus {\n  border-color: #BFBFBF; }\n\n.form-control.grey-salsa {\n  border-color: #ACB5C3; }\n  .form-control.grey-salsa:focus {\n    border-color: #8e9bae; }\n\n.form-control.focus-grey-salsa:focus {\n  border-color: #ACB5C3; }\n\n.form-control.grey-salt {\n  border-color: #bfcad1; }\n  .form-control.grey-salt:focus {\n    border-color: #a1b1bc; }\n\n.form-control.focus-grey-salt:focus {\n  border-color: #bfcad1; }\n\n.form-control.grey-mint {\n  border-color: #525e64; }\n  .form-control.grey-mint:focus {\n    border-color: #3b4448; }\n\n.form-control.focus-grey-mint:focus {\n  border-color: #525e64; }\n\n.form-control.red {\n  border-color: #e7505a; }\n  .form-control.red:focus {\n    border-color: #e12330; }\n\n.form-control.focus-red:focus {\n  border-color: #e7505a; }\n\n.form-control.red-pink {\n  border-color: #E08283; }\n  .form-control.red-pink:focus {\n    border-color: #d6595a; }\n\n.form-control.focus-red-pink:focus {\n  border-color: #E08283; }\n\n.form-control.red-sunglo {\n  border-color: #E26A6A; }\n  .form-control.red-sunglo:focus {\n    border-color: #da3f3f; }\n\n.form-control.focus-red-sunglo:focus {\n  border-color: #E26A6A; }\n\n.form-control.red-intense {\n  border-color: #e35b5a; }\n  .form-control.red-intense:focus {\n    border-color: #dc302e; }\n\n.form-control.focus-red-intense:focus {\n  border-color: #e35b5a; }\n\n.form-control.red-thunderbird {\n  border-color: #D91E18; }\n  .form-control.red-thunderbird:focus {\n    border-color: #ab1813; }\n\n.form-control.focus-red-thunderbird:focus {\n  border-color: #D91E18; }\n\n.form-control.red-flamingo {\n  border-color: #EF4836; }\n  .form-control.red-flamingo:focus {\n    border-color: #e02612; }\n\n.form-control.focus-red-flamingo:focus {\n  border-color: #EF4836; }\n\n.form-control.red-soft {\n  border-color: #d05454; }\n  .form-control.red-soft:focus {\n    border-color: #bd3434; }\n\n.form-control.focus-red-soft:focus {\n  border-color: #d05454; }\n\n.form-control.red-haze {\n  border-color: #f36a5a; }\n  .form-control.red-haze:focus {\n    border-color: #f03f2a; }\n\n.form-control.focus-red-haze:focus {\n  border-color: #f36a5a; }\n\n.form-control.red-mint {\n  border-color: #e43a45; }\n  .form-control.red-mint:focus {\n    border-color: #cf1c28; }\n\n.form-control.focus-red-mint:focus {\n  border-color: #e43a45; }\n\n.form-control.yellow {\n  border-color: #c49f47; }\n  .form-control.yellow:focus {\n    border-color: #a48334; }\n\n.form-control.focus-yellow:focus {\n  border-color: #c49f47; }\n\n.form-control.yellow-gold {\n  border-color: #E87E04; }\n  .form-control.yellow-gold:focus {\n    border-color: #b66303; }\n\n.form-control.focus-yellow-gold:focus {\n  border-color: #E87E04; }\n\n.form-control.yellow-casablanca {\n  border-color: #f2784b; }\n  .form-control.yellow-casablanca:focus {\n    border-color: #ef541b; }\n\n.form-control.focus-yellow-casablanca:focus {\n  border-color: #f2784b; }\n\n.form-control.yellow-crusta {\n  border-color: #f3c200; }\n  .form-control.yellow-crusta:focus {\n    border-color: #c09900; }\n\n.form-control.focus-yellow-crusta:focus {\n  border-color: #f3c200; }\n\n.form-control.yellow-lemon {\n  border-color: #F7CA18; }\n  .form-control.yellow-lemon:focus {\n    border-color: #d5ab07; }\n\n.form-control.focus-yellow-lemon:focus {\n  border-color: #F7CA18; }\n\n.form-control.yellow-saffron {\n  border-color: #F4D03F; }\n  .form-control.yellow-saffron:focus {\n    border-color: #f1c40f; }\n\n.form-control.focus-yellow-saffron:focus {\n  border-color: #F4D03F; }\n\n.form-control.yellow-soft {\n  border-color: #c8d046; }\n  .form-control.yellow-soft:focus {\n    border-color: #adb52e; }\n\n.form-control.focus-yellow-soft:focus {\n  border-color: #c8d046; }\n\n.form-control.yellow-haze {\n  border-color: #c5bf66; }\n  .form-control.yellow-haze:focus {\n    border-color: #b4ad44; }\n\n.form-control.focus-yellow-haze:focus {\n  border-color: #c5bf66; }\n\n.form-control.yellow-mint {\n  border-color: #c5b96b; }\n  .form-control.yellow-mint:focus {\n    border-color: #b6a747; }\n\n.form-control.focus-yellow-mint:focus {\n  border-color: #c5b96b; }\n\n.form-control.purple {\n  border-color: #8E44AD; }\n  .form-control.purple:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-plum {\n  border-color: #8775a7; }\n  .form-control.purple-plum:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-plum:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-medium {\n  border-color: #BF55EC; }\n  .form-control.purple-medium:focus {\n    border-color: #ae27e7; }\n\n.form-control.focus-purple-medium:focus {\n  border-color: #BF55EC; }\n\n.form-control.purple-studio {\n  border-color: #8E44AD; }\n  .form-control.purple-studio:focus {\n    border-color: #703688; }\n\n.form-control.focus-purple-studio:focus {\n  border-color: #8E44AD; }\n\n.form-control.purple-wisteria {\n  border-color: #9B59B6; }\n  .form-control.purple-wisteria:focus {\n    border-color: #804399; }\n\n.form-control.focus-purple-wisteria:focus {\n  border-color: #9B59B6; }\n\n.form-control.purple-seance {\n  border-color: #9A12B3; }\n  .form-control.purple-seance:focus {\n    border-color: #720d85; }\n\n.form-control.focus-purple-seance:focus {\n  border-color: #9A12B3; }\n\n.form-control.purple-intense {\n  border-color: #8775a7; }\n  .form-control.purple-intense:focus {\n    border-color: #6d5b8e; }\n\n.form-control.focus-purple-intense:focus {\n  border-color: #8775a7; }\n\n.form-control.purple-sharp {\n  border-color: #796799; }\n  .form-control.purple-sharp:focus {\n    border-color: #61527b; }\n\n.form-control.focus-purple-sharp:focus {\n  border-color: #796799; }\n\n.form-control.purple-soft {\n  border-color: #8877a9; }\n  .form-control.purple-soft:focus {\n    border-color: #6e5c91; }\n\n.form-control.focus-purple-soft:focus {\n  border-color: #8877a9; }\n\n.input-xxs {\n  width: 45px !important; }\n\n/* Form uneditable input */\n.uneditable-input {\n  padding: 6px 12px;\n  min-width: 206px;\n  font-size: 14px;\n  font-weight: normal;\n  height: 34px;\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #c2cad8;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\n\n.form-control-static {\n  display: inline-block;\n  margin: 0; }\n\n/* Form input sizing */\n.input-mini {\n  width: 45px !important; }\n\n.input-xsmall {\n  width: 80px !important; }\n\n.input-small {\n  width: 145px !important; }\n\n.input-medium {\n  width: 240px !important; }\n\n.input-large {\n  width: 320px !important; }\n\n.input-xlarge {\n  width: 420px !important; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-large {\n    width: 250px !important; }\n  .input-xlarge {\n    width: 300px !important; } }\n\n.input-inline {\n  display: inline-block;\n  width: auto;\n  vertical-align: middle; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.input-fixed {\n  overflow: hidden; }\n\n.form-group .input-inline {\n  margin-right: 5px; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .input-lg {\n    width: 250px !important; }\n  .input-xlg {\n    width: 300px !important; } }\n\n/* Circle Inputs */\n.input-circle {\n  border-radius: 25px !important; }\n\n.input-circle-right {\n  border-radius: 0 25px 25px 0 !important; }\n\n.input-circle-left {\n  border-radius: 25px 0 0 25px !important; }\n\n.input-circle-bottom {\n  border-radius: 0 0 25px 25px !important; }\n\n.input-circle-top {\n  border-radius: 25px 25px 0 0 !important; }\n\n.mt-radio,\n.mt-checkbox {\n  display: inline-block;\n  position: relative;\n  padding-left: 30px;\n  margin-bottom: 15px;\n  cursor: pointer;\n  font-size: 14px;\n  webkit-transition: all 0.3s;\n  -moz-transition: all 0.3s;\n  -ms-transition: all 0.3s;\n  -o-transition: all 0.3s;\n  transition: all 0.3s; }\n  .mt-radio.mt-radio-disabled, .mt-radio.mt-checkbox-disabled,\n  .mt-checkbox.mt-radio-disabled,\n  .mt-checkbox.mt-checkbox-disabled {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .mt-radio > input,\n  .mt-checkbox > input {\n    position: absolute;\n    z-index: -1;\n    opacity: 0 ;\n    filter: alpha(opacity=0) ; }\n  .mt-radio > span,\n  .mt-checkbox > span {\n    border: 1px solid transparent;\n    position: absolute;\n    top: 1px;\n    left: 0;\n    height: 18px;\n    width: 18px;\n    background: #E6E6E6; }\n    .mt-radio > span:after,\n    .mt-checkbox > span:after {\n      content: '';\n      position: absolute;\n      display: none; }\n  .mt-radio:hover > input:not([disabled]) ~ span,\n  .mt-radio > input:focus ~ span,\n  .mt-checkbox:hover > input:not([disabled]) ~ span,\n  .mt-checkbox > input:focus ~ span {\n    background: #d9d9d9;\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s; }\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n    .mt-radio > input:checked ~ span:after,\n    .mt-checkbox > input:checked ~ span:after {\n      display: block; }\n  .mt-radio:hover > input:not([disabled]):checked ~ span,\n  .mt-radio > input:checked ~ span,\n  .mt-checkbox:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox > input:checked ~ span {\n    webkit-transition: all 0.3s;\n    -moz-transition: all 0.3s;\n    -ms-transition: all 0.3s;\n    -o-transition: all 0.3s;\n    transition: all 0.3s;\n    background: #d9d9d9; }\n  .mt-radio > input:disabled ~ span,\n  .mt-checkbox > input:disabled ~ span {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    pointer-events: none; }\n  .mt-radio.mt-radio-outline > span, .mt-radio.mt-checkbox-outline > span,\n  .mt-checkbox.mt-radio-outline > span,\n  .mt-checkbox.mt-checkbox-outline > span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-radio-outline > input:focus ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-radio.mt-checkbox-outline > input:focus ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-radio-outline > input:focus ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]) ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:focus ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n  .mt-radio.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-radio-outline > input:checked ~ span, .mt-radio.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-radio.mt-checkbox-outline > input:checked ~ span,\n  .mt-checkbox.mt-radio-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-radio-outline > input:checked ~ span,\n  .mt-checkbox.mt-checkbox-outline:hover > input:not([disabled]):checked ~ span,\n  .mt-checkbox.mt-checkbox-outline > input:checked ~ span {\n    border: 1px solid #d9d9d9;\n    background: none; }\n\n.mt-radio > span {\n  -webkit-border-radius: 50%!important;\n  -moz-border-radius: 50%!important;\n  -ms-border-radius: 50%!important;\n  -o-border-radius: 50%!important;\n  border-radius: 50%!important; }\n  .mt-radio > span:after {\n    left: 5px;\n    top: 5px;\n    height: 6px;\n    width: 6px;\n    border-radius: 100% !important;\n    background: #888888; }\n\n.mt-radio > input:disabled ~ span:after {\n  background: #888888; }\n\nth > .mt-radio.mt-radio-single,\ntd > .mt-radio.mt-radio-single {\n  right: -5px; }\n\n.mt-checkbox > span:after {\n  left: 6px;\n  top: 2px;\n  width: 5px;\n  height: 10px;\n  border: solid #888888;\n  border-width: 0 2px 2px 0;\n  transform: rotate(45deg); }\n\n.mt-checkbox > input:disabled ~ span:after {\n  border-color: #888888; }\n\n.form-inline .mt-checkbox {\n  margin-left: 15px;\n  margin-right: 15px; }\n\nth > .mt-checkbox.mt-checkbox-single,\ntd > .mt-checkbox.mt-checkbox-single {\n  right: -5px; }\n\n.mt-checkbox-list,\n.mt-radio-list {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-list, .form-horizontal .form-group\n  .mt-radio-list {\n    padding-top: 0; }\n  .mt-checkbox-list .mt-checkbox,\n  .mt-checkbox-list .mt-radio,\n  .mt-radio-list .mt-checkbox,\n  .mt-radio-list .mt-radio {\n    display: block; }\n\n.mt-checkbox-inline,\n.mt-radio-inline {\n  padding: 10px 0; }\n  .form-horizontal .form-group .mt-checkbox-inline, .form-horizontal .form-group\n  .mt-radio-inline {\n    padding-top: 8px; }\n  .mt-checkbox-inline .mt-checkbox,\n  .mt-checkbox-inline .mt-radio,\n  .mt-radio-inline .mt-checkbox,\n  .mt-radio-inline .mt-radio {\n    display: inline-block;\n    margin-right: 15px; }\n    .mt-checkbox-inline .mt-checkbox:last-child,\n    .mt-checkbox-inline .mt-radio:last-child,\n    .mt-radio-inline .mt-checkbox:last-child,\n    .mt-radio-inline .mt-radio:last-child {\n      margin-right: 0; }\n\n/***\nCustom icon buttons\n***/\n.icon-btn {\n  height: 60px;\n  min-width: 80px;\n  margin: 5px 5px 0 0;\n  border: 1px solid #ddd;\n  padding: 12px 0px 0px 0px;\n  background-color: #fafafa;\n  background-image: none;\n  filter: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  display: inline-block;\n  color: #646464;\n  text-shadow: none;\n  text-align: center;\n  cursor: pointer;\n  position: relative;\n  -webkit-transition: all 0.3s ease;\n  -moz-transition: all 0.3s ease;\n  -ms-transition: all 0.3s ease;\n  -o-transition: all 0.3s ease;\n  transition: all 0.3s ease; }\n  .icon-btn:hover {\n    text-decoration: none;\n    border-color: #999;\n    color: #444;\n    text-shadow: 0 1px 0px white;\n    -webkit-transition: all 0.3s ease;\n    -moz-transition: all 0.3s ease;\n    -ms-transition: all 0.3s ease;\n    -o-transition: all 0.3s ease;\n    transition: all 0.3s ease;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n    .icon-btn:hover > .badge {\n      -webkit-transition: all 0.3s ease;\n      -moz-transition: all 0.3s ease;\n      -ms-transition: all 0.3s ease;\n      -o-transition: all 0.3s ease;\n      transition: all 0.3s ease;\n      -webkit-box-shadow: none;\n      -moz-box-shadow: none;\n      box-shadow: none; }\n  .icon-btn > div {\n    margin-top: 5px;\n    margin-bottom: 20px;\n    color: #3f444a;\n    font-size: 12px;\n    font-weight: 300; }\n  .icon-btn > .badge {\n    position: absolute;\n    font-size: 11px;\n    font-weight: 300;\n    top: -5px;\n    right: -5px;\n    padding: 3px 6px 3px 6px;\n    color: white;\n    text-shadow: none;\n    border-width: 0;\n    border-style: solid;\n    -webkit-border-radius: 12px;\n    -moz-border-radius: 12px;\n    border-radius: 12px;\n    -webkit-box-shadow: none;\n    -moz-box-shadow: none;\n    box-shadow: none; }\n  .icon-btn > i {\n    font-size: 18px; }\n  .ie8 .icon-btn:hover {\n    filter: none; }\n\n/***\nInput icons\n***/\n.input-icon {\n  position: relative;\n  left: 0; }\n  .input-icon > .form-control {\n    padding-left: 33px; }\n    .input-group .input-icon > .form-control {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px; }\n  .input-icon > i {\n    color: #ccc;\n    display: block;\n    position: absolute;\n    margin: 11px 2px 4px 10px;\n    z-index: 3;\n    width: 16px;\n    font-size: 16px;\n    text-align: center;\n    left: 0; }\n    .modal .input-icon > i {\n      z-index: 10055; }\n    .has-success .input-icon > i {\n      color: #36c6d3; }\n    .has-warning .input-icon > i {\n      color: #F1C40F; }\n    .has-info .input-icon > i {\n      color: #659be0; }\n    .has-error .input-icon > i {\n      color: #ed6b75; }\n  .input-icon.right {\n    left: auto;\n    right: 0; }\n    .input-icon.right > .form-control {\n      padding-right: 33px;\n      padding-left: 12px; }\n      .input-group .input-icon.right > .form-control {\n        -webkit-border-radius: 0 4px 4px 0;\n        -moz-border-radius: 0 4px 4px 0;\n        -ms-border-radius: 0 4px 4px 0;\n        -o-border-radius: 0 4px 4px 0;\n        border-radius: 0 4px 4px 0; }\n    .input-icon.right > i {\n      left: auto;\n      right: 8px;\n      float: right; }\n  .input-icon.input-icon-lg > i {\n    margin-top: 16px; }\n  .input-icon.input-icon-sm > i {\n    margin-top: 8px;\n    font-size: 13px; }\n\n/***\nCustomized Bootstrap Labels\n***/\n.label {\n  text-shadow: none !important;\n  font-size: 14px;\n  font-weight: 300;\n  padding: 3px 6px 3px 6px;\n  color: #fff;\n  font-family: \"Open Sans\", sans-serif; }\n  .label.label-sm {\n    font-size: 13px;\n    padding: 2px 5px 2px 5px; }\n  h1 .label,\n  h2 .label,\n  h3 .label,\n  h4 .label,\n  h5 .label,\n  h6 .label {\n    font-size: 75%; }\n\n/* Labels variants */\n.label-default {\n  background-color: #bac3d0; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #9ca8bb; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #36c6d3; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #27a4b0; }\n\n.label-info {\n  background-color: #659be0; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #3a80d7; }\n\n.label-warning {\n  background-color: #F1C40F; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #c29d0b; }\n\n.label-danger {\n  background-color: #ed6b75; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #e73d4a; }\n\n/***\nIconic labels\n***/\n.label.label-icon {\n  padding: 4px 0px 4px 4px;\n  margin-right: 2px;\n  text-align: center !important; }\n  .label.label-icon > i {\n    font-size: 12px;\n    text-align: center !important; }\n  .ie8 .label.label-icon,\n  .ie9 .label.label-icon {\n    padding: 3px 0px 3px 3px; }\n\n/***\nText states\n***/\n.text-default {\n  color: #bac3d0; }\n\n.text-primary {\n  color: #337ab7; }\n\n.text-success {\n  color: #36c6d3; }\n\n.text-info {\n  color: #659be0; }\n\n.text-warning {\n  color: #F1C40F; }\n\n.text-danger {\n  color: #ed6b75; }\n\n/***\nCustomized List Group\n***/\n/* Contextual variants */\n.list-group > li:first-child {\n  border-radius-topleft: 4px;\n  border-radius-topright: 4px; }\n\n.list-group > li:last-child {\n  border-radius-bottomleft: 4px;\n  border-radius-bottomright: 4px; }\n\n.list-group .list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\n.list-group a.list-group-item-success,\n.list-group button.list-group-item-success {\n  color: #27a4b0; }\n  .list-group a.list-group-item-success .list-group-item-heading,\n  .list-group button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus,\n  .list-group button.list-group-item-success:hover,\n  .list-group button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  .list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus,\n  .list-group button.list-group-item-success.active,\n  .list-group button.list-group-item-success.active:hover,\n  .list-group button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group .list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\n.list-group a.list-group-item-info,\n.list-group button.list-group-item-info {\n  color: #327ad5; }\n  .list-group a.list-group-item-info .list-group-item-heading,\n  .list-group button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus,\n  .list-group button.list-group-item-info:hover,\n  .list-group button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  .list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus,\n  .list-group button.list-group-item-info.active,\n  .list-group button.list-group-item-info.active:hover,\n  .list-group button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group .list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\n.list-group a.list-group-item-warning,\n.list-group button.list-group-item-warning {\n  color: #c29d0b; }\n  .list-group a.list-group-item-warning .list-group-item-heading,\n  .list-group button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus,\n  .list-group button.list-group-item-warning:hover,\n  .list-group button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  .list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus,\n  .list-group button.list-group-item-warning.active,\n  .list-group button.list-group-item-warning.active:hover,\n  .list-group button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group .list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.list-group a.list-group-item-danger,\n.list-group button.list-group-item-danger {\n  color: #e73d4a; }\n  .list-group a.list-group-item-danger .list-group-item-heading,\n  .list-group button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  .list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus,\n  .list-group button.list-group-item-danger:hover,\n  .list-group button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  .list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus,\n  .list-group button.list-group-item-danger.active,\n  .list-group button.list-group-item-danger.active:hover,\n  .list-group button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n/***\nUI Loading\n***/\n.loading-message {\n  display: inline-block;\n  min-width: 125px;\n  margin-left: -60px;\n  padding: 10px;\n  margin: 0 auto;\n  color: #000 !important;\n  font-size: 13px;\n  font-weight: 400;\n  text-align: center;\n  vertical-align: middle; }\n  .loading-message.loading-message-boxed {\n    border: 1px solid #ddd;\n    background-color: #eee;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px;\n    -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .loading-message > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-loading {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  min-width: 125px;\n  margin-left: -60px;\n  margin-top: -30px;\n  padding: 7px;\n  text-align: center;\n  color: #333;\n  font-size: 13px;\n  border: 1px solid #ddd;\n  background-color: #eee;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n  .page-loading > span {\n    line-height: 20px;\n    vertical-align: middle; }\n\n.page-spinner-bar {\n  position: fixed;\n  z-index: 10051;\n  width: 100px;\n  top: 40%;\n  left: 50%;\n  margin-left: -55px;\n  text-align: center; }\n  .page-spinner-bar > div {\n    margin: 0 5px;\n    width: 18px;\n    height: 18px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .page-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .page-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n.block-spinner-bar {\n  display: inline-block;\n  width: 80px;\n  text-align: center; }\n  .block-spinner-bar > div {\n    margin: 0 2px;\n    width: 15px;\n    height: 15px;\n    background: #eee;\n    border-radius: 100% !important;\n    display: inline-block;\n    -webkit-animation: bounceDelay 1.4s infinite ease-in-out;\n    animation: bounceDelay 1.4s infinite ease-in-out;\n    /* Prevent first frame from flickering when animation starts */\n    -webkit-animation-fill-mode: both;\n    animation-fill-mode: both; }\n  .block-spinner-bar .bounce1 {\n    -webkit-animation-delay: -0.32s;\n    animation-delay: -0.32s; }\n  .block-spinner-bar .bounce2 {\n    -webkit-animation-delay: -0.16s;\n    animation-delay: -0.16s; }\n\n/***\nMetro icons\n***/\n[class^=\"m-icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 3px;\n  line-height: 14px;\n  vertical-align: top;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0;\n  background-repeat: no-repeat; }\n\n[class^=\"m-icon-big-\"] {\n  display: inline-block;\n  width: 30px;\n  height: 30px;\n  margin: 6px;\n  vertical-align: middle;\n  background-image: url(../img/syncfusion-icons.png);\n  background-position: 0 0px;\n  background-repeat: no-repeat; }\n\n/* large icons */\n.btn.m-icon-big {\n  padding: 9px 16px 8px 16px; }\n\n.btn.m-icon-big.m-icon-only {\n  padding: 9px 8px 8px 0px; }\n\n.btn.m-icon-big [class^=\"m-icon-big-\"] {\n  margin: 0 0 0 10px; }\n\n.btn.m-icon-ony > i {\n  margin-left: 0px; }\n\n/* default icons */\n.btn.m-icon {\n  padding: 7px 14px 7px 14px; }\n\n.btn.m-icon [class^=\"m-icon-\"] {\n  margin: 4px 0 0 5px; }\n\n.btn.m-icon.m-icon-only {\n  padding: 7px 10px 7px 6px; }\n\n/* white icon */\n.m-icon-white {\n  background-image: url(../img/syncfusion-icons-white.png); }\n\n/*  Misc */\n.m-icon-swapright {\n  background-position: -27px -10px; }\n\n.m-icon-swapdown {\n  background-position: -68px -10px; }\n\n.m-icon-swapleft {\n  background-position: -8px -10px; }\n\n.m-icon-swapup {\n  background-position: -46px -10px; }\n\n.m-icon-big-swapright {\n  background-position: -42px -28px; }\n\n.m-icon-big-swapdown {\n  background-position: -115px -28px; }\n\n.m-icon-big-swapleft {\n  background-position: -6px -28px; }\n\n.m-icon-big-swapup {\n  background-position: -78px -28px; }\n\n/***\nCustomized Bootstrap Modal \n***/\n.modal {\n  z-index: 10050;\n  outline: none;\n  overflow-y: auto !important;\n  /* Fix content shifting to the right on modal open due to scrollbar closed */ }\n  .page-portlet-fullscreen .modal {\n    z-index: 10060; }\n  .modal .modal-header {\n    border-bottom: 1px solid #EFEFEF; }\n    .modal .modal-header h3 {\n      font-weight: 300; }\n    .modal .modal-header .close {\n      margin-top: 0px !important; }\n  .modal.draggable-modal .modal-header {\n    cursor: move; }\n  .modal .modal-dialog {\n    z-index: 10051; }\n  .modal > .loading {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -22px;\n    margin-left: -22px; }\n  .modal.in .page-loading {\n    display: none; }\n\n.modal-open {\n  overflow-y: auto !important; }\n\n.modal-open-noscroll {\n  overflow-y: hidden !important; }\n\n.modal-backdrop {\n  border: 0;\n  outline: none; }\n  .page-portlet-fullscreen .modal-backdrop {\n    z-index: 10059; }\n  .modal-backdrop, .modal-backdrop.fade.in {\n    background-color: #333 !important; }\n\nbody[ng-controller] .modal-backdrop {\n  z-index: 10049; }\n\nbody[ng-controller] .modal {\n  z-index: 10050; }\n\n/* Full width modal */\n.modal-full.modal-dialog {\n  width: 99%; }\n\n@media (max-width: 768px) {\n  .modal-full.modal-dialog {\n    width: auto; } }\n\n/***\nNotes\n***/\n.note {\n  margin: 0 0 20px 0;\n  padding: 15px 30px 15px 15px;\n  border-left: 5px solid #eee;\n  -webkit-border-radius: 0 4px 4px 0;\n  -moz-border-radius: 0 4px 4px 0;\n  -ms-border-radius: 0 4px 4px 0;\n  -o-border-radius: 0 4px 4px 0;\n  border-radius: 0 4px 4px 0; }\n  .note h1,\n  .note h2,\n  .note h3,\n  .note h4,\n  .note h5,\n  .note h6 {\n    margin-top: 0; }\n    .note h1 .close,\n    .note h2 .close,\n    .note h3 .close,\n    .note h4 .close,\n    .note h5 .close,\n    .note h6 .close {\n      margin-right: -10px; }\n  .note p {\n    margin: 0;\n    font-size: 13px; }\n    .note p:last-child {\n      margin-bottom: 0; }\n  .note code,\n  .note .highlight {\n    background-color: #fff; }\n  .note.note-default {\n    background-color: white;\n    border-color: #b0c1d2;\n    color: black; }\n    .note.note-default.note-bordered {\n      background-color: #eef1f5;\n      border-color: #c0cedb; }\n    .note.note-default.note-shadow {\n      background-color: #f1f4f7;\n      border-color: #d1dbe4;\n      box-shadow: 5px 5px rgba(212, 221, 230, 0.2); }\n  .note.note-success {\n    background-color: #c0edf1;\n    border-color: #58d0da;\n    color: black; }\n    .note.note-success.note-bordered {\n      background-color: #a7e6ec;\n      border-color: #6dd6df; }\n    .note.note-success.note-shadow {\n      background-color: #abe7ed;\n      border-color: #81dbe3;\n      box-shadow: 5px 5px rgba(134, 221, 228, 0.2); }\n  .note.note-info {\n    background-color: #f5f8fd;\n    border-color: #8bb4e7;\n    color: #010407; }\n    .note.note-info.note-bordered {\n      background-color: #dbe8f8;\n      border-color: #a0c2ec; }\n    .note.note-info.note-shadow {\n      background-color: #e0ebf9;\n      border-color: #b5cff0;\n      box-shadow: 5px 5px rgba(185, 210, 241, 0.2); }\n  .note.note-warning {\n    background-color: #faeaa9;\n    border-color: #f3cc31;\n    color: black; }\n    .note.note-warning.note-bordered {\n      background-color: #f8e38c;\n      border-color: #f4d249; }\n    .note.note-warning.note-shadow {\n      background-color: #f9e491;\n      border-color: #f6d861;\n      box-shadow: 5px 5px rgba(246, 217, 102, 0.2); }\n  .note.note-danger {\n    background-color: #fef7f8;\n    border-color: #f0868e;\n    color: #210406; }\n    .note.note-danger.note-bordered {\n      background-color: #fbdcde;\n      border-color: #f39da3; }\n    .note.note-danger.note-shadow {\n      background-color: #fbe1e3;\n      border-color: #f6b3b8;\n      box-shadow: 5px 5px rgba(246, 184, 189, 0.2); }\n\n/***\nCustomized Bootstrap Pagination\n***/\n.pagination {\n  margin: 10px 0; }\n  .pagination.pagination-circle > li:first-child > a {\n    border-radius: 25px 0 0 25px !important; }\n  .pagination.pagination-circle > li:last-child > a {\n    border-radius: 0 25px 25px 0 !important; }\n\n/***\nCustomized Bootstrap Panels\n***/\n.panel {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n  .panel-group .panel {\n    overflow: visible; }\n  .panel .panel-body {\n    font-size: 13px; }\n  .panel .panel-title > a:hover {\n    text-decoration: none; }\n  .accordion .panel .panel-heading {\n    padding: 0; }\n  .accordion .panel .panel-title {\n    padding: 0; }\n    .accordion .panel .panel-title .accordion-toggle {\n      display: block;\n      padding: 10px 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled {\n      background: url(\"../img/accordion-plusminus.png\") no-repeat;\n      background-position: right -19px;\n      margin-right: 15px; }\n    .accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed {\n      background-position: right 12px; }\n\n/***\nAccordions\n***/\n.panel-heading {\n  background: #eee; }\n  .panel-heading a {\n    text-decoration: none; }\n  .panel-heading a:active,\n  .panel-heading a:focus,\n  .panel-heading a:hover {\n    text-decoration: none; }\n\n/***\nCustomized Bootstrap Popover\n***/\n/*rtl:ignore*/\n.popover {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n\n.popover .popover-title {\n  margin: 0 !important; }\n\n/***\nPortlets\n***/\n/* Full Screen portlet mode */\n.page-portlet-fullscreen {\n  overflow: hidden; }\n\n/* Basic portlet */\n.portlet {\n  margin-top: 0px;\n  margin-bottom: 25px;\n  padding: 0px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .portlet.portlet-fullscreen {\n    z-index: 10060;\n    margin: 0;\n    position: fixed;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    width: 100%;\n    height: 100%;\n    background: #fff; }\n    .portlet.portlet-fullscreen > .portlet-body {\n      overflow-y: auto;\n      overflow-x: hidden;\n      padding: 0 10px; }\n    .portlet.portlet-fullscreen > .portlet-title {\n      padding: 0 10px; }\n  .portlet > .portlet-title {\n    border-bottom: 1px solid #eee;\n    padding: 0;\n    margin-bottom: 10px;\n    min-height: 41px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .portlet > .portlet-title:before, .portlet > .portlet-title:after {\n      content: \" \";\n      display: table; }\n    .portlet > .portlet-title:after {\n      clear: both; }\n    .portlet > .portlet-title > .caption {\n      float: left;\n      display: inline-block;\n      font-size: 18px;\n      line-height: 18px;\n      padding: 10px 0; }\n      .portlet > .portlet-title > .caption.bold {\n        font-weight: 400; }\n      .portlet > .portlet-title > .caption > i {\n        float: left;\n        margin-top: 4px;\n        display: inline-block;\n        font-size: 13px;\n        margin-right: 5px;\n        color: #666; }\n        .portlet > .portlet-title > .caption > i.glyphicon {\n          margin-top: 2px; }\n      .portlet > .portlet-title > .caption > .caption-helper {\n        padding: 0;\n        margin: 0;\n        line-height: 13px;\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n    .portlet > .portlet-title > .actions {\n      float: right;\n      display: inline-block;\n      padding: 6px 0; }\n      .portlet > .portlet-title > .actions > .dropdown-menu i {\n        color: #555555; }\n      .portlet > .portlet-title > .actions > .btn,\n      .portlet > .portlet-title > .actions > .btn.btn-sm,\n      .portlet > .portlet-title > .actions > .btn-group > .btn,\n      .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm {\n        padding: 4px 10px;\n        font-size: 13px;\n        line-height: 1.5; }\n        .portlet > .portlet-title > .actions > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn.btn-sm.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-default,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default {\n          padding: 3px 9px; }\n        .portlet > .portlet-title > .actions > .btn > i,\n        .portlet > .portlet-title > .actions > .btn.btn-sm > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn > i,\n        .portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i {\n          font-size: 13px; }\n      .portlet > .portlet-title > .actions .btn-icon-only {\n        padding: 5px 7px 3px 7px; }\n        .portlet > .portlet-title > .actions .btn-icon-only.btn-default {\n          padding: 4px 6px 2px 6px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default > i {\n            font-size: 14px; }\n          .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen {\n            font-family: FontAwesome;\n            color: #a0a0a0;\n            padding-top: 3px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm {\n              padding: 3px 3px !important;\n              height: 27px;\n              width: 27px; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before {\n              content: \"\\f065\"; }\n            .portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before {\n              content: \"\\f066\"; }\n    .portlet > .portlet-title > .tools {\n      float: right;\n      display: inline-block;\n      padding: 12px 0 8px 0; }\n      .portlet > .portlet-title > .tools > a {\n        display: inline-block;\n        height: 16px;\n        margin-left: 5px;\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n      .portlet > .portlet-title > .tools > a.remove {\n        background-image: url(../img/portlet-remove-icon.png);\n        background-repeat: no-repeat;\n        width: 11px; }\n      .portlet > .portlet-title > .tools > a.config {\n        background-image: url(../img/portlet-config-icon.png);\n        background-repeat: no-repeat;\n        width: 12px; }\n      .portlet > .portlet-title > .tools > a.reload {\n        background-image: url(../img/portlet-reload-icon.png);\n        width: 13px; }\n      .portlet > .portlet-title > .tools > a.expand {\n        background-image: url(../img/portlet-expand-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.collapse {\n        background-image: url(../img/portlet-collapse-icon.png);\n        width: 14px;\n        visibility: visible; }\n      .portlet > .portlet-title > .tools > a.fullscreen {\n        display: inline-block;\n        top: -3px;\n        position: relative;\n        font-size: 13px;\n        font-family: FontAwesome;\n        color: #ACACAC; }\n        .portlet > .portlet-title > .tools > a.fullscreen:before {\n          content: \"\\f065\"; }\n        .portlet > .portlet-title > .tools > a.fullscreen.on:before {\n          content: \"\\f066\"; }\n      .portlet > .portlet-title > .tools > a:hover {\n        text-decoration: none;\n        -webkit-transition: all 0.1s ease-in-out;\n        -moz-transition: all 0.1s ease-in-out;\n        -o-transition: all 0.1s ease-in-out;\n        -ms-transition: all 0.1s ease-in-out;\n        transition: all 0.1s ease-in-out;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ; }\n    .portlet > .portlet-title > .pagination {\n      float: right;\n      display: inline-block;\n      margin: 2px 0 0 0;\n      border: 0;\n      padding: 4px 0; }\n    .portlet > .portlet-title > .nav-tabs {\n      background: none;\n      margin: 1px 0 0 0;\n      float: right;\n      display: inline-block;\n      border: 0; }\n      .portlet > .portlet-title > .nav-tabs > li {\n        background: none;\n        margin: 0;\n        border: 0; }\n        .portlet > .portlet-title > .nav-tabs > li > a {\n          background: none;\n          margin: 5px 0 0 1px;\n          border: 0;\n          padding: 8px 10px;\n          color: #fff; }\n        .portlet > .portlet-title > .nav-tabs > li.active > a,\n        .portlet > .portlet-title > .nav-tabs > li:hover > a {\n          color: #333;\n          background: #fff;\n          border: 0; }\n  .portlet > .portlet-body {\n    clear: both;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .portlet > .portlet-body p {\n      margin-top: 0; }\n  .portlet > .portlet-empty {\n    min-height: 125px; }\n  .portlet.full-height-content {\n    margin-bottom: 0; }\n\n/* Portlet background colors */\n/* Side bordered portlet */\n.portlet.bordered {\n  border-left: 2px solid #e6e9ec !important; }\n  .portlet.bordered > .portlet-title {\n    border-bottom: 0; }\n\n/* Solid colored portlet */\n.portlet.solid {\n  padding: 0 10px 10px 10px;\n  border: 0px; }\n  .portlet.solid > .portlet-title {\n    border-bottom: 0;\n    margin-bottom: 10px; }\n    .portlet.solid > .portlet-title > .caption {\n      padding: 16px 0 2px 0; }\n    .portlet.solid > .portlet-title > .actions {\n      padding: 12px 0 6px 0; }\n    .portlet.solid > .portlet-title > .tools {\n      padding: 14px 0 6px 0; }\n\n/* Solid bordered portlet */\n.portlet.solid.bordered > .portlet-title {\n  margin-bottom: 10px; }\n\n/* Box portlet */\n.portlet.box {\n  padding: 0px !important; }\n  .portlet.box > .portlet-title {\n    border-bottom: 0;\n    padding: 0 10px;\n    margin-bottom: 0;\n    color: #fff; }\n    .portlet.box > .portlet-title > .caption {\n      padding: 11px 0 9px 0; }\n    .portlet.box > .portlet-title > .tools > a.remove {\n      background-image: url(../img/portlet-remove-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.config {\n      background-image: url(../img/portlet-config-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.reload {\n      background-image: url(../img/portlet-reload-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.expand {\n      background-image: url(../img/portlet-expand-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.collapse {\n      background-image: url(../img/portlet-collapse-icon-white.png); }\n    .portlet.box > .portlet-title > .tools > a.fullscreen {\n      color: #fdfdfd; }\n    .portlet.box > .portlet-title > .actions {\n      padding: 7px 0 5px 0; }\n  .portlet.box > .portlet-body {\n    background-color: #fff;\n    padding: 15px; }\n\n/* Light Portlet */\n.portlet.light {\n  padding: 12px 20px 15px 20px;\n  background-color: #fff; }\n  .portlet.light.bordered {\n    border: 1px solid #e7ecf1 !important; }\n    .portlet.light.bordered > .portlet-title {\n      border-bottom: 1px solid #eef1f5; }\n  .portlet.light.bg-inverse {\n    background: #f1f4f7; }\n  .portlet.light > .portlet-title {\n    padding: 0;\n    min-height: 48px; }\n    .portlet.light > .portlet-title > .caption {\n      color: #666;\n      padding: 10px 0; }\n      .portlet.light > .portlet-title > .caption > .caption-subject {\n        font-size: 16px; }\n      .portlet.light > .portlet-title > .caption > i {\n        color: #777;\n        font-size: 15px;\n        font-weight: 300;\n        margin-top: 3px; }\n      .portlet.light > .portlet-title > .caption.caption-md > .caption-subject {\n        font-size: 15px; }\n      .portlet.light > .portlet-title > .caption.caption-md > i {\n        font-size: 14px; }\n    .portlet.light > .portlet-title > .actions {\n      padding: 6px 0 14px 0; }\n      .portlet.light > .portlet-title > .actions .btn-default {\n        color: #666; }\n      .portlet.light > .portlet-title > .actions .btn-icon-only {\n        height: 27px;\n        width: 27px; }\n      .portlet.light > .portlet-title > .actions .dropdown-menu li > a {\n        color: #555; }\n    .portlet.light > .portlet-title > .inputs {\n      float: right;\n      display: inline-block;\n      padding: 4px 0; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i {\n        font-size: 14px;\n        margin-top: 9px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control {\n        height: 30px;\n        padding: 2px 26px 3px 10px;\n        font-size: 13px; }\n      .portlet.light > .portlet-title > .inputs > .portlet-input > .form-control {\n        height: 30px;\n        padding: 3px 10px;\n        font-size: 13px; }\n    .portlet.light > .portlet-title > .pagination {\n      padding: 2px 0 13px 0; }\n    .portlet.light > .portlet-title > .tools {\n      padding: 10px 0 13px 0;\n      margin-top: 2px; }\n    .portlet.light > .portlet-title > .nav-tabs > li {\n      margin: 0;\n      padding: 0; }\n      .portlet.light > .portlet-title > .nav-tabs > li > a {\n        margin: 0;\n        padding: 12px 13px 13px 13px;\n        font-size: 13px;\n        color: #666; }\n      .portlet.light > .portlet-title > .nav-tabs > li.active > a,\n      .portlet.light > .portlet-title > .nav-tabs > li:hover > a {\n        margin: 0;\n        background: none;\n        color: #333; }\n  .portlet.light.form-fit {\n    padding: 0; }\n    .portlet.light.form-fit > .portlet-title {\n      padding: 17px 20px 10px 20px;\n      margin-bottom: 0; }\n  .portlet.light .portlet-body {\n    padding-top: 8px; }\n  .portlet.light.portlet-fullscreen > .portlet-body {\n    padding: 8px 0; }\n  .portlet.light.portlet-fit {\n    padding: 0; }\n    .portlet.light.portlet-fit > .portlet-title {\n      padding: 15px 20px 10px 20px; }\n    .portlet.light.portlet-fit > .portlet-body {\n      padding: 10px 20px 20px 20px; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n  .portlet.light.portlet-fit.portlet-form > .portlet-body {\n    padding: 0; }\n    .portlet.light.portlet-fit.portlet-form > .portlet-body .form-actions {\n      background: none; }\n  .portlet.light.portlet-datatable.portlet-fit > .portlet-body {\n    padding-top: 10px;\n    padding-bottom: 25px; }\n\n.tab-pane > p:last-child {\n  margin-bottom: 0px; }\n\n/* Reverse aligned tabs */\n.tabs-reversed > li {\n  float: right;\n  margin-right: 0; }\n  .tabs-reversed > li > a {\n    margin-right: 0; }\n\n/* jQuery UI Draggable Portlets */\n.portlet-sortable:not(.portlet-fullscreen) > .portlet-title {\n  cursor: move; }\n\n.portlet-sortable-placeholder {\n  border: 2px dashed #eee;\n  margin-bottom: 25px; }\n\n.portlet-sortable-empty {\n  box-shadow: none !important;\n  height: 45px; }\n\n.portlet-collapsed {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .portlet-collapsed-on-mobile {\n    display: none; } }\n\n/***\nCustom colored portlets \n***/\n.portlet > .portlet-body.white,\n.portlet.white {\n  background-color: #ffffff; }\n\n.portlet.solid.white > .portlet-title,\n.portlet.solid.white > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.white > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.white > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.white > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.white > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.white {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.white > .portlet-title {\n    background-color: #ffffff; }\n    .portlet.box.white > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.white > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.white > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.white > .portlet-title > .actions .btn-default:hover, .portlet.box.white > .portlet-title > .actions .btn-default:focus, .portlet.box.white > .portlet-title > .actions .btn-default:active, .portlet.box.white > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.default,\n.portlet.default {\n  background-color: #e1e5ec; }\n\n.portlet.solid.default > .portlet-title,\n.portlet.solid.default > .portlet-body {\n  border: 0;\n  color: #666; }\n\n.portlet.solid.default > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.default > .portlet-title > .caption > i {\n    color: #666; }\n\n.portlet.solid.default > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.default > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.default {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.default > .portlet-title {\n    background-color: #e1e5ec; }\n    .portlet.box.default > .portlet-title > .caption {\n      color: #666; }\n      .portlet.box.default > .portlet-title > .caption > i {\n        color: #666; }\n    .portlet.box.default > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.default > .portlet-title > .actions .btn-default:hover, .portlet.box.default > .portlet-title > .actions .btn-default:focus, .portlet.box.default > .portlet-title > .actions .btn-default:active, .portlet.box.default > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.dark,\n.portlet.dark {\n  background-color: #2f353b; }\n\n.portlet.solid.dark > .portlet-title,\n.portlet.solid.dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.dark {\n  border: 1px solid #464f57;\n  border-top: 0; }\n  .portlet.box.dark > .portlet-title {\n    background-color: #2f353b; }\n    .portlet.box.dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #616d79;\n      color: #6c7a88; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default > i {\n        color: #738290; }\n      .portlet.box.dark > .portlet-title > .actions .btn-default:hover, .portlet.box.dark > .portlet-title > .actions .btn-default:focus, .portlet.box.dark > .portlet-title > .actions .btn-default:active, .portlet.box.dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #798794;\n        color: #8793a0; }\n\n.portlet > .portlet-body.blue,\n.portlet.blue {\n  background-color: #3598dc; }\n\n.portlet.solid.blue > .portlet-title,\n.portlet.solid.blue > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue {\n  border: 1px solid #60aee4;\n  border-top: 0; }\n  .portlet.box.blue > .portlet-title {\n    background-color: #3598dc; }\n    .portlet.box.blue > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #95c9ed;\n      color: #aad4f0; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default > i {\n        color: #b7daf3; }\n      .portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c0dff4;\n        color: #d6eaf8; }\n\n.portlet > .portlet-body.blue-madison,\n.portlet.blue-madison {\n  background-color: #578ebe; }\n\n.portlet.solid.blue-madison > .portlet-title,\n.portlet.solid.blue-madison > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-madison > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-madison {\n  border: 1px solid #7ca7cc;\n  border-top: 0; }\n  .portlet.box.blue-madison > .portlet-title {\n    background-color: #578ebe; }\n    .portlet.box.blue-madison > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-madison > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-madison > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #a8c4dd;\n      color: #bad1e4; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default > i {\n        color: #c5d8e9; }\n      .portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cdddec;\n        color: #dfeaf3; }\n\n.portlet > .portlet-body.blue-chambray,\n.portlet.blue-chambray {\n  background-color: #2C3E50; }\n\n.portlet.solid.blue-chambray > .portlet-title,\n.portlet.solid.blue-chambray > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-chambray > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-chambray {\n  border: 1px solid #3e5871;\n  border-top: 0; }\n  .portlet.box.blue-chambray > .portlet-title {\n    background-color: #2C3E50; }\n    .portlet.box.blue-chambray > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-chambray > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-chambray > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #547698;\n      color: #5f83a7; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i {\n        color: #698bac; }\n      .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #6f90b0;\n        color: #809cb9; }\n\n.portlet > .portlet-body.blue-ebonyclay,\n.portlet.blue-ebonyclay {\n  background-color: #22313F; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title,\n.portlet.solid.blue-ebonyclay > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-ebonyclay > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-ebonyclay {\n  border: 1px solid #344b60;\n  border-top: 0; }\n  .portlet.box.blue-ebonyclay > .portlet-title {\n    background-color: #22313F; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #496a88;\n      color: #527798; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i {\n        color: #587ea2; }\n      .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #5d83a7;\n        color: #6d90b0; }\n\n.portlet > .portlet-body.blue-hoki,\n.portlet.blue-hoki {\n  background-color: #67809F; }\n\n.portlet.solid.blue-hoki > .portlet-title,\n.portlet.solid.blue-hoki > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-hoki > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-hoki {\n  border: 1px solid #869ab3;\n  border-top: 0; }\n  .portlet.box.blue-hoki > .portlet-title {\n    background-color: #67809F; }\n    .portlet.box.blue-hoki > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-hoki > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-hoki > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #acb9ca;\n      color: #bbc7d4; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i {\n        color: #c5ceda; }\n      .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cbd4de;\n        color: #dbe1e8; }\n\n.portlet > .portlet-body.blue-steel,\n.portlet.blue-steel {\n  background-color: #4B77BE; }\n\n.portlet.solid.blue-steel > .portlet-title,\n.portlet.solid.blue-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-steel {\n  border: 1px solid #7093cc;\n  border-top: 0; }\n  .portlet.box.blue-steel > .portlet-title {\n    background-color: #4B77BE; }\n    .portlet.box.blue-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9db5dc;\n      color: #b0c3e3; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default > i {\n        color: #bbcce7; }\n      .portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c3d2e9;\n        color: #d6e0f0; }\n\n.portlet > .portlet-body.blue-soft,\n.portlet.blue-soft {\n  background-color: #4c87b9; }\n\n.portlet.solid.blue-soft > .portlet-title,\n.portlet.solid.blue-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-soft {\n  border: 1px solid #71a0c7;\n  border-top: 0; }\n  .portlet.box.blue-soft > .portlet-title {\n    background-color: #4c87b9; }\n    .portlet.box.blue-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dbdd9;\n      color: #afc9e0; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default > i {\n        color: #bad1e4; }\n      .portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #c1d6e7;\n        color: #d4e2ee; }\n\n.portlet > .portlet-body.blue-dark,\n.portlet.blue-dark {\n  background-color: #5e738b; }\n\n.portlet.solid.blue-dark > .portlet-title,\n.portlet.solid.blue-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-dark {\n  border: 1px solid #788da4;\n  border-top: 0; }\n  .portlet.box.blue-dark > .portlet-title {\n    background-color: #5e738b; }\n    .portlet.box.blue-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9dacbd;\n      color: #acb8c7; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default > i {\n        color: #b5c0cd; }\n      .portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bbc5d1;\n        color: #cad2db; }\n\n.portlet > .portlet-body.blue-sharp,\n.portlet.blue-sharp {\n  background-color: #5C9BD1; }\n\n.portlet.solid.blue-sharp > .portlet-title,\n.portlet.solid.blue-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-sharp {\n  border: 1px solid #84b3dc;\n  border-top: 0; }\n  .portlet.box.blue-sharp > .portlet-title {\n    background-color: #5C9BD1; }\n    .portlet.box.blue-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4d1ea;\n      color: #c7ddef; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i {\n        color: #d3e4f3; }\n      .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dbe9f5;\n        color: #eff5fb; }\n\n.portlet > .portlet-body.blue-oleo,\n.portlet.blue-oleo {\n  background-color: #94A0B2; }\n\n.portlet.solid.blue-oleo > .portlet-title,\n.portlet.solid.blue-oleo > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.blue-oleo > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.blue-oleo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.blue-oleo {\n  border: 1px solid #b2bac7;\n  border-top: 0; }\n  .portlet.box.blue-oleo > .portlet-title {\n    background-color: #94A0B2; }\n    .portlet.box.blue-oleo > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.blue-oleo > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.blue-oleo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d5dae1;\n      color: #e4e7ec; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default > i {\n        color: #edeff2; }\n      .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default:active, .portlet.box.blue-oleo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f4f6;\n        color: white; }\n\n.portlet > .portlet-body.green,\n.portlet.green {\n  background-color: #32c5d2; }\n\n.portlet.solid.green > .portlet-title,\n.portlet.solid.green > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green {\n  border: 1px solid #5cd1db;\n  border-top: 0; }\n  .portlet.box.green > .portlet-title {\n    background-color: #32c5d2; }\n    .portlet.box.green > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8edfe6;\n      color: #a3e5eb; }\n      .portlet.box.green > .portlet-title > .actions .btn-default > i {\n        color: #afe8ee; }\n      .portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b8ebef;\n        color: #cdf1f4; }\n\n.portlet > .portlet-body.green-meadow,\n.portlet.green-meadow {\n  background-color: #1BBC9B; }\n\n.portlet.solid.green-meadow > .portlet-title,\n.portlet.solid.green-meadow > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-meadow > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-meadow {\n  border: 1px solid #2ae0bb;\n  border-top: 0; }\n  .portlet.box.green-meadow > .portlet-title {\n    background-color: #1BBC9B; }\n    .portlet.box.green-meadow > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-meadow > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-meadow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #5fe8cc;\n      color: #75ebd3; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default > i {\n        color: #83edd7; }\n      .portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #8ceeda;\n        color: #a2f2e1; }\n\n.portlet > .portlet-body.green-seagreen,\n.portlet.green-seagreen {\n  background-color: #1BA39C; }\n\n.portlet.solid.green-seagreen > .portlet-title,\n.portlet.solid.green-seagreen > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-seagreen > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-seagreen {\n  border: 1px solid #22cfc6;\n  border-top: 0; }\n  .portlet.box.green-seagreen > .portlet-title {\n    background-color: #1BA39C; }\n    .portlet.box.green-seagreen > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-seagreen > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-seagreen > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #4de1da;\n      color: #63e5de; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i {\n        color: #70e7e1; }\n      .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #78e9e3;\n        color: #8eece8; }\n\n.portlet > .portlet-body.green-turquoise,\n.portlet.green-turquoise {\n  background-color: #36D7B7; }\n\n.portlet.solid.green-turquoise > .portlet-title,\n.portlet.solid.green-turquoise > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-turquoise > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-turquoise {\n  border: 1px solid #61dfc6;\n  border-top: 0; }\n  .portlet.box.green-turquoise > .portlet-title {\n    background-color: #36D7B7; }\n    .portlet.box.green-turquoise > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-turquoise > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-turquoise > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #94ead9;\n      color: #a9eee0; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i {\n        color: #b6f0e5; }\n      .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bef2e8;\n        color: #d3f6ef; }\n\n.portlet > .portlet-body.green-haze,\n.portlet.green-haze {\n  background-color: #44b6ae; }\n\n.portlet.solid.green-haze > .portlet-title,\n.portlet.solid.green-haze > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-haze > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-haze {\n  border: 1px solid #67c6bf;\n  border-top: 0; }\n  .portlet.box.green-haze > .portlet-title {\n    background-color: #44b6ae; }\n    .portlet.box.green-haze > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-haze > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #93d7d2;\n      color: #a6deda; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default > i {\n        color: #b1e2de; }\n      .portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #b9e5e2;\n        color: #cbece9; }\n\n.portlet > .portlet-body.green-jungle,\n.portlet.green-jungle {\n  background-color: #26C281; }\n\n.portlet.solid.green-jungle > .portlet-title,\n.portlet.solid.green-jungle > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-jungle > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-jungle {\n  border: 1px solid #41da9a;\n  border-top: 0; }\n  .portlet.box.green-jungle > .portlet-title {\n    background-color: #26C281; }\n    .portlet.box.green-jungle > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-jungle > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-jungle > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #74e4b5;\n      color: #8ae8c1; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default > i {\n        color: #96ebc8; }\n      .portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9feccc;\n        color: #b4f0d7; }\n\n.portlet > .portlet-body.green-soft,\n.portlet.green-soft {\n  background-color: #3faba4; }\n\n.portlet.solid.green-soft > .portlet-title,\n.portlet.solid.green-soft > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-soft > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-soft {\n  border: 1px solid #5bc2bc;\n  border-top: 0; }\n  .portlet.box.green-soft > .portlet-title {\n    background-color: #3faba4; }\n    .portlet.box.green-soft > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-soft > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #87d3ce;\n      color: #9adad6; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default > i {\n        color: #a5deda; }\n      .portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ade1dd;\n        color: #bfe7e5; }\n\n.portlet > .portlet-body.green-dark,\n.portlet.green-dark {\n  background-color: #4DB3A2; }\n\n.portlet.solid.green-dark > .portlet-title,\n.portlet.solid.green-dark > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-dark > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-dark > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-dark {\n  border: 1px solid #71c2b5;\n  border-top: 0; }\n  .portlet.box.green-dark > .portlet-title {\n    background-color: #4DB3A2; }\n    .portlet.box.green-dark > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-dark > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-dark > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #9cd5cb;\n      color: #addcd4; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default > i {\n        color: #b8e1da; }\n      .portlet.box.green-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.green-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.green-dark > .portlet-title > .actions .btn-default:active, .portlet.box.green-dark > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #bfe4de;\n        color: #d1ebe7; }\n\n.portlet > .portlet-body.green-sharp,\n.portlet.green-sharp {\n  background-color: #2ab4c0; }\n\n.portlet.solid.green-sharp > .portlet-title,\n.portlet.solid.green-sharp > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-sharp > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-sharp {\n  border: 1px solid #46cbd7;\n  border-top: 0; }\n  .portlet.box.green-sharp > .portlet-title {\n    background-color: #2ab4c0; }\n    .portlet.box.green-sharp > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-sharp > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #79d9e2;\n      color: #8edfe6; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default > i {\n        color: #9ae3e9; }\n      .portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a2e5eb;\n        color: #b7ebef; }\n\n.portlet > .portlet-body.green-steel,\n.portlet.green-steel {\n  background-color: #29b4b6; }\n\n.portlet.solid.green-steel > .portlet-title,\n.portlet.solid.green-steel > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.green-steel > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.green-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.green-steel {\n  border: 1px solid #3ed1d4;\n  border-top: 0; }\n  .portlet.box.green-steel > .portlet-title {\n    background-color: #29b4b6; }\n    .portlet.box.green-steel > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.green-steel > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.green-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #70dddf;\n      color: #85e2e4; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default > i {\n        color: #92e5e6; }\n      .portlet.box.green-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.green-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.green-steel > .portlet-title > .actions .btn-default:active, .portlet.box.green-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #9ae7e8;\n        color: #afeced; }\n\n.portlet > .portlet-body.grey,\n.portlet.grey {\n  background-color: #E5E5E5; }\n\n.portlet.solid.grey > .portlet-title,\n.portlet.solid.grey > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey > .portlet-title {\n    background-color: #E5E5E5; }\n    .portlet.box.grey > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-steel,\n.portlet.grey-steel {\n  background-color: #e9edef; }\n\n.portlet.solid.grey-steel > .portlet-title,\n.portlet.solid.grey-steel > .portlet-body {\n  border: 0;\n  color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-steel > .portlet-title > .caption > i {\n    color: #80898e; }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-steel {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-steel > .portlet-title {\n    background-color: #e9edef; }\n    .portlet.box.grey-steel > .portlet-title > .caption {\n      color: #80898e; }\n      .portlet.box.grey-steel > .portlet-title > .caption > i {\n        color: #80898e; }\n    .portlet.box.grey-steel > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-cararra,\n.portlet.grey-cararra {\n  background-color: #fafafa; }\n\n.portlet.solid.grey-cararra > .portlet-title,\n.portlet.solid.grey-cararra > .portlet-body {\n  border: 0;\n  color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cararra > .portlet-title > .caption > i {\n    color: #333333; }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cararra {\n  border: 1px solid white;\n  border-top: 0; }\n  .portlet.box.grey-cararra > .portlet-title {\n    background-color: #fafafa; }\n    .portlet.box.grey-cararra > .portlet-title > .caption {\n      color: #333333; }\n      .portlet.box.grey-cararra > .portlet-title > .caption > i {\n        color: #333333; }\n    .portlet.box.grey-cararra > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-gallery,\n.portlet.grey-gallery {\n  background-color: #555555; }\n\n.portlet.solid.grey-gallery > .portlet-title,\n.portlet.solid.grey-gallery > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-gallery > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-gallery {\n  border: 1px solid #6f6f6f;\n  border-top: 0; }\n  .portlet.box.grey-gallery > .portlet-title {\n    background-color: #555555; }\n    .portlet.box.grey-gallery > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.grey-gallery > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.grey-gallery > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #8d8d8d;\n      color: #9a9a9a; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i {\n        color: #a2a2a2; }\n      .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a7a7a7;\n        color: #b3b3b3; }\n\n.portlet > .portlet-body.grey-cascade,\n.portlet.grey-cascade {\n  background-color: #95A5A6; }\n\n.portlet.solid.grey-cascade > .portlet-title,\n.portlet.solid.grey-cascade > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-cascade > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-cascade {\n  border: 1px solid #b1bdbd;\n  border-top: 0; }\n  .portlet.box.grey-cascade > .portlet-title {\n    background-color: #95A5A6; }\n    .portlet.box.grey-cascade > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-cascade > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-cascade > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d2d9d9;\n      color: #e0e5e5; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i {\n        color: #e8ecec; }\n      .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eef0f0;\n        color: #fcfcfc; }\n\n.portlet > .portlet-body.grey-silver,\n.portlet.grey-silver {\n  background-color: #BFBFBF; }\n\n.portlet.solid.grey-silver > .portlet-title,\n.portlet.solid.grey-silver > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-silver > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-silver {\n  border: 1px solid #d9d9d9;\n  border-top: 0; }\n  .portlet.box.grey-silver > .portlet-title {\n    background-color: #BFBFBF; }\n    .portlet.box.grey-silver > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-silver > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-silver > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7f7f7;\n      color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salsa,\n.portlet.grey-salsa {\n  background-color: #ACB5C3; }\n\n.portlet.solid.grey-salsa > .portlet-title,\n.portlet.solid.grey-salsa > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salsa > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salsa {\n  border: 1px solid #cacfd8;\n  border-top: 0; }\n  .portlet.box.grey-salsa > .portlet-title {\n    background-color: #ACB5C3; }\n    .portlet.box.grey-salsa > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salsa > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salsa > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #edeff2;\n      color: #fcfcfd; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-salt,\n.portlet.grey-salt {\n  background-color: #bfcad1; }\n\n.portlet.solid.grey-salt > .portlet-title,\n.portlet.solid.grey-salt > .portlet-body {\n  border: 0;\n  color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-salt > .portlet-title > .caption > i {\n    color: #FAFCFB; }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-salt {\n  border: 1px solid #dde3e6;\n  border-top: 0; }\n  .portlet.box.grey-salt > .portlet-title {\n    background-color: #bfcad1; }\n    .portlet.box.grey-salt > .portlet-title > .caption {\n      color: #FAFCFB; }\n      .portlet.box.grey-salt > .portlet-title > .caption > i {\n        color: #FAFCFB; }\n    .portlet.box.grey-salt > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid white;\n      color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default > i {\n        color: white; }\n      .portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.grey-mint,\n.portlet.grey-mint {\n  background-color: #525e64; }\n\n.portlet.solid.grey-mint > .portlet-title,\n.portlet.solid.grey-mint > .portlet-body {\n  border: 0;\n  color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.grey-mint > .portlet-title > .caption > i {\n    color: #FFFFFF; }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.grey-mint {\n  border: 1px solid #697880;\n  border-top: 0; }\n  .portlet.box.grey-mint > .portlet-title {\n    background-color: #525e64; }\n    .portlet.box.grey-mint > .portlet-title > .caption {\n      color: #FFFFFF; }\n      .portlet.box.grey-mint > .portlet-title > .caption > i {\n        color: #FFFFFF; }\n    .portlet.box.grey-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #88979e;\n      color: #96a3a9; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default > i {\n        color: #9faab0; }\n      .portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #a4afb5;\n        color: #b2bcc0; }\n\n.portlet > .portlet-body.red,\n.portlet.red {\n  background-color: #e7505a; }\n\n.portlet.solid.red > .portlet-title,\n.portlet.solid.red > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red {\n  border: 1px solid #ed7d84;\n  border-top: 0; }\n  .portlet.box.red > .portlet-title {\n    background-color: #e7505a; }\n    .portlet.box.red > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f5b3b7;\n      color: #f8c9cc; }\n      .portlet.box.red > .portlet-title > .actions .btn-default > i {\n        color: #f9d7d9; }\n      .portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe0e1;\n        color: #fef6f6; }\n\n.portlet > .portlet-body.red-pink,\n.portlet.red-pink {\n  background-color: #E08283; }\n\n.portlet.solid.red-pink > .portlet-title,\n.portlet.solid.red-pink > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-pink > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-pink {\n  border: 1px solid #eaabac;\n  border-top: 0; }\n  .portlet.box.red-pink > .portlet-title {\n    background-color: #E08283; }\n    .portlet.box.red-pink > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-pink > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-pink > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f6dcdc;\n      color: #fbf0f0; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default > i {\n        color: #fefdfd; }\n      .portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active {\n        border: 1px solid white;\n        color: white; }\n\n.portlet > .portlet-body.red-sunglo,\n.portlet.red-sunglo {\n  background-color: #E26A6A; }\n\n.portlet.solid.red-sunglo > .portlet-title,\n.portlet.solid.red-sunglo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-sunglo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-sunglo {\n  border: 1px solid #ea9595;\n  border-top: 0; }\n  .portlet.box.red-sunglo > .portlet-title {\n    background-color: #E26A6A; }\n    .portlet.box.red-sunglo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-sunglo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-sunglo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f4c8c8;\n      color: #f8dddd; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i {\n        color: #fbeaea; }\n      .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf3f3;\n        color: white; }\n\n.portlet > .portlet-body.red-intense,\n.portlet.red-intense {\n  background-color: #e35b5a; }\n\n.portlet.solid.red-intense > .portlet-title,\n.portlet.solid.red-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-intense {\n  border: 1px solid #ea8686;\n  border-top: 0; }\n  .portlet.box.red-intense > .portlet-title {\n    background-color: #e35b5a; }\n    .portlet.box.red-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f3baba;\n      color: #f7d0d0; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default > i {\n        color: #f9dddd; }\n      .portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbe6e6;\n        color: #fefbfb; }\n\n.portlet > .portlet-body.red-thunderbird,\n.portlet.red-thunderbird {\n  background-color: #D91E18; }\n\n.portlet.solid.red-thunderbird > .portlet-title,\n.portlet.solid.red-thunderbird > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-thunderbird > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-thunderbird {\n  border: 1px solid #e9403b;\n  border-top: 0; }\n  .portlet.box.red-thunderbird > .portlet-title {\n    background-color: #D91E18; }\n    .portlet.box.red-thunderbird > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-thunderbird > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ef7672;\n      color: #f28c89; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i {\n        color: #f39997; }\n      .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f4a2a0;\n        color: #f7b9b7; }\n\n.portlet > .portlet-body.red-flamingo,\n.portlet.red-flamingo {\n  background-color: #EF4836; }\n\n.portlet.solid.red-flamingo > .portlet-title,\n.portlet.solid.red-flamingo > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-flamingo > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-flamingo {\n  border: 1px solid #f37365;\n  border-top: 0; }\n  .portlet.box.red-flamingo > .portlet-title {\n    background-color: #EF4836; }\n    .portlet.box.red-flamingo > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-flamingo > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-flamingo > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f7a79e;\n      color: #f9bcb6; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i {\n        color: #fac9c4; }\n      .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fbd2cd;\n        color: #fde7e5; }\n\n.portlet > .portlet-body.red-soft,\n.portlet.red-soft {\n  background-color: #d05454; }\n\n.portlet.solid.red-soft > .portlet-title,\n.portlet.solid.red-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-soft {\n  border: 1px solid #db7c7c;\n  border-top: 0; }\n  .portlet.box.red-soft > .portlet-title {\n    background-color: #d05454; }\n    .portlet.box.red-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e8acac;\n      color: #eec0c0; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default > i {\n        color: #f1cccc; }\n      .portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3d4d4;\n        color: #f9e8e8; }\n\n.portlet > .portlet-body.red-haze,\n.portlet.red-haze {\n  background-color: #f36a5a; }\n\n.portlet.solid.red-haze > .portlet-title,\n.portlet.solid.red-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-haze {\n  border: 1px solid #f6958a;\n  border-top: 0; }\n  .portlet.box.red-haze > .portlet-title {\n    background-color: #f36a5a; }\n    .portlet.box.red-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbc8c3;\n      color: #fcdeda; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default > i {\n        color: #fdebe9; }\n      .portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fef3f2;\n        color: white; }\n\n.portlet > .portlet-body.red-mint,\n.portlet.red-mint {\n  background-color: #e43a45; }\n\n.portlet.solid.red-mint > .portlet-title,\n.portlet.solid.red-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.red-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.red-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.red-mint {\n  border: 1px solid #ea676f;\n  border-top: 0; }\n  .portlet.box.red-mint > .portlet-title {\n    background-color: #e43a45; }\n    .portlet.box.red-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.red-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.red-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #f29da2;\n      color: #f5b3b7; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default > i {\n        color: #f6c1c4; }\n      .portlet.box.red-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.red-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.red-mint > .portlet-title > .actions .btn-default:active, .portlet.box.red-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f8cacd;\n        color: #fbe0e2; }\n\n.portlet > .portlet-body.yellow,\n.portlet.yellow {\n  background-color: #c49f47; }\n\n.portlet.solid.yellow > .portlet-title,\n.portlet.solid.yellow > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow {\n  border: 1px solid #d0b36e;\n  border-top: 0; }\n  .portlet.box.yellow > .portlet-title {\n    background-color: #c49f47; }\n    .portlet.box.yellow > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #dfcb9c;\n      color: #e5d5af; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default > i {\n        color: #e9dbbb; }\n      .portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ecdfc3;\n        color: #f2ead6; }\n\n.portlet > .portlet-body.yellow-gold,\n.portlet.yellow-gold {\n  background-color: #E87E04; }\n\n.portlet.solid.yellow-gold > .portlet-title,\n.portlet.solid.yellow-gold > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-gold > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-gold {\n  border: 1px solid #fb9724;\n  border-top: 0; }\n  .portlet.box.yellow-gold > .portlet-title {\n    background-color: #E87E04; }\n    .portlet.box.yellow-gold > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-gold > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-gold > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fcb460;\n      color: #fdbf79; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i {\n        color: #fdc788; }\n      .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdcb92;\n        color: #fed7ab; }\n\n.portlet > .portlet-body.yellow-casablanca,\n.portlet.yellow-casablanca {\n  background-color: #f2784b; }\n\n.portlet.solid.yellow-casablanca > .portlet-title,\n.portlet.solid.yellow-casablanca > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-casablanca > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-casablanca {\n  border: 1px solid #f59c7b;\n  border-top: 0; }\n  .portlet.box.yellow-casablanca > .portlet-title {\n    background-color: #f2784b; }\n    .portlet.box.yellow-casablanca > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-casablanca > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fac6b4;\n      color: #fbd8cb; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i {\n        color: #fce3da; }\n      .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdeae3;\n        color: #fffcfb; }\n\n.portlet > .portlet-body.yellow-crusta,\n.portlet.yellow-crusta {\n  background-color: #f3c200; }\n\n.portlet.solid.yellow-crusta > .portlet-title,\n.portlet.solid.yellow-crusta > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-crusta > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-crusta {\n  border: 1px solid #ffd327;\n  border-top: 0; }\n  .portlet.box.yellow-crusta > .portlet-title {\n    background-color: #f3c200; }\n    .portlet.box.yellow-crusta > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-crusta > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #ffe064;\n      color: #ffe57e; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i {\n        color: #ffe88d; }\n      .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ffea97;\n        color: #ffefb1; }\n\n.portlet > .portlet-body.yellow-lemon,\n.portlet.yellow-lemon {\n  background-color: #F7CA18; }\n\n.portlet.solid.yellow-lemon > .portlet-title,\n.portlet.solid.yellow-lemon > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-lemon > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-lemon {\n  border: 1px solid #f9d549;\n  border-top: 0; }\n  .portlet.box.yellow-lemon > .portlet-title {\n    background-color: #F7CA18; }\n    .portlet.box.yellow-lemon > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-lemon > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #fbe384;\n      color: #fce99d; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i {\n        color: #fcecac; }\n      .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fceeb6;\n        color: #fdf4ce; }\n\n.portlet > .portlet-body.yellow-saffron,\n.portlet.yellow-saffron {\n  background-color: #F4D03F; }\n\n.portlet.solid.yellow-saffron > .portlet-title,\n.portlet.solid.yellow-saffron > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-saffron > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-saffron {\n  border: 1px solid #f7dc6f;\n  border-top: 0; }\n  .portlet.box.yellow-saffron > .portlet-title {\n    background-color: #F4D03F; }\n    .portlet.box.yellow-saffron > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-saffron > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #faeaa9;\n      color: #fbf0c1; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i {\n        color: #fcf3d0; }\n      .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #fdf6d9;\n        color: #fefcf1; }\n\n.portlet > .portlet-body.yellow-soft,\n.portlet.yellow-soft {\n  background-color: #c8d046; }\n\n.portlet.solid.yellow-soft > .portlet-title,\n.portlet.solid.yellow-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-soft {\n  border: 1px solid #d4da6f;\n  border-top: 0; }\n  .portlet.box.yellow-soft > .portlet-title {\n    background-color: #c8d046; }\n    .portlet.box.yellow-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e3e79f;\n      color: #e9ecb4; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default > i {\n        color: #ecefc0; }\n      .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #eff1c8;\n        color: #f5f6dc; }\n\n.portlet > .portlet-body.yellow-haze,\n.portlet.yellow-haze {\n  background-color: #c5bf66; }\n\n.portlet.solid.yellow-haze > .portlet-title,\n.portlet.solid.yellow-haze > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-haze > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-haze > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-haze {\n  border: 1px solid #d3ce8b;\n  border-top: 0; }\n  .portlet.box.yellow-haze > .portlet-title {\n    background-color: #c5bf66; }\n    .portlet.box.yellow-haze > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-haze > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-haze > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e4e1b7;\n      color: #ebe9ca; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default > i {\n        color: #efedd5; }\n      .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-haze > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f2f1dc;\n        color: #f9f8ef; }\n\n.portlet > .portlet-body.yellow-mint,\n.portlet.yellow-mint {\n  background-color: #c5b96b; }\n\n.portlet.solid.yellow-mint > .portlet-title,\n.portlet.solid.yellow-mint > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.yellow-mint > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.yellow-mint > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.yellow-mint {\n  border: 1px solid #d3ca90;\n  border-top: 0; }\n  .portlet.box.yellow-mint > .portlet-title {\n    background-color: #c5b96b; }\n    .portlet.box.yellow-mint > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.yellow-mint > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.yellow-mint > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5dfbc;\n      color: #ece8ce; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default > i {\n        color: #f0edd9; }\n      .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-mint > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f3f0e0;\n        color: #faf9f3; }\n\n.portlet > .portlet-body.purple,\n.portlet.purple {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple > .portlet-title,\n.portlet.solid.purple > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-plum,\n.portlet.purple-plum {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-plum > .portlet-title,\n.portlet.solid.purple-plum > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-plum > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-plum {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-plum > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-plum > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-plum > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-plum > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-medium,\n.portlet.purple-medium {\n  background-color: #BF55EC; }\n\n.portlet.solid.purple-medium > .portlet-title,\n.portlet.solid.purple-medium > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-medium > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-medium {\n  border: 1px solid #d083f1;\n  border-top: 0; }\n  .portlet.box.purple-medium > .portlet-title {\n    background-color: #BF55EC; }\n    .portlet.box.purple-medium > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-medium > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-medium > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #e5baf7;\n      color: #eed1fa; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default > i {\n        color: #f3dffb; }\n      .portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #f6e8fc;\n        color: white; }\n\n.portlet > .portlet-body.purple-studio,\n.portlet.purple-studio {\n  background-color: #8E44AD; }\n\n.portlet.solid.purple-studio > .portlet-title,\n.portlet.solid.purple-studio > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-studio > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-studio {\n  border: 1px solid #a563c1;\n  border-top: 0; }\n  .portlet.box.purple-studio > .portlet-title {\n    background-color: #8E44AD; }\n    .portlet.box.purple-studio > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-studio > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-studio > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #bf8ed3;\n      color: #c9a1da; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default > i {\n        color: #cfacde; }\n      .portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #d4b3e1;\n        color: #dec5e8; }\n\n.portlet > .portlet-body.purple-wisteria,\n.portlet.purple-wisteria {\n  background-color: #9B59B6; }\n\n.portlet.solid.purple-wisteria > .portlet-title,\n.portlet.solid.purple-wisteria > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-wisteria > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-wisteria {\n  border: 1px solid #b07cc6;\n  border-top: 0; }\n  .portlet.box.purple-wisteria > .portlet-title {\n    background-color: #9B59B6; }\n    .portlet.box.purple-wisteria > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-wisteria > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #caa7d8;\n      color: #d5b9e0; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i {\n        color: #dbc3e5; }\n      .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfcae8;\n        color: #eadcf0; }\n\n.portlet > .portlet-body.purple-seance,\n.portlet.purple-seance {\n  background-color: #9A12B3; }\n\n.portlet.solid.purple-seance > .portlet-title,\n.portlet.solid.purple-seance > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-seance > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-seance {\n  border: 1px solid #c217e1;\n  border-top: 0; }\n  .portlet.box.purple-seance > .portlet-title {\n    background-color: #9A12B3; }\n    .portlet.box.purple-seance > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-seance > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-seance > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #d349ed;\n      color: #d960ef; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default > i {\n        color: #dc6ef0; }\n      .portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #de77f1;\n        color: #e48ef4; }\n\n.portlet > .portlet-body.purple-intense,\n.portlet.purple-intense {\n  background-color: #8775a7; }\n\n.portlet.solid.purple-intense > .portlet-title,\n.portlet.solid.purple-intense > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-intense > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-intense {\n  border: 1px solid #a294bb;\n  border-top: 0; }\n  .portlet.box.purple-intense > .portlet-title {\n    background-color: #8775a7; }\n    .portlet.box.purple-intense > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-intense > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-intense > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c3bad3;\n      color: #d0c9dd; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default > i {\n        color: #d8d2e3; }\n      .portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #ded9e7;\n        color: #ebe8f0; }\n\n.portlet > .portlet-body.purple-sharp,\n.portlet.purple-sharp {\n  background-color: #796799; }\n\n.portlet.solid.purple-sharp > .portlet-title,\n.portlet.solid.purple-sharp > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-sharp > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-sharp {\n  border: 1px solid #9486ad;\n  border-top: 0; }\n  .portlet.box.purple-sharp > .portlet-title {\n    background-color: #796799; }\n    .portlet.box.purple-sharp > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-sharp > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-sharp > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #b4aac6;\n      color: #c2b9d0; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i {\n        color: #cac3d6; }\n      .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #cfc9db;\n        color: #ddd8e5; }\n\n.portlet > .portlet-body.purple-soft,\n.portlet.purple-soft {\n  background-color: #8877a9; }\n\n.portlet.solid.purple-soft > .portlet-title,\n.portlet.solid.purple-soft > .portlet-body {\n  border: 0;\n  color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .caption {\n  font-weight: 400; }\n  .portlet.solid.purple-soft > .portlet-title > .caption > i {\n    color: #ffffff; }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.remove {\n  background-image: url(../img/portlet-remove-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.config {\n  background-image: url(../img/portlet-config-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.reload {\n  background-image: url(../img/portlet-reload-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.expand {\n  background-image: url(../img/portlet-expand-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse {\n  background-image: url(../img/portlet-collapse-icon-white.png); }\n\n.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen {\n  color: #fdfdfd; }\n\n.portlet.box.purple-soft {\n  border: 1px solid #a396bd;\n  border-top: 0; }\n  .portlet.box.purple-soft > .portlet-title {\n    background-color: #8877a9; }\n    .portlet.box.purple-soft > .portlet-title > .caption {\n      color: #ffffff; }\n      .portlet.box.purple-soft > .portlet-title > .caption > i {\n        color: #ffffff; }\n    .portlet.box.purple-soft > .portlet-title > .actions .btn-default {\n      background: transparent !important;\n      background-color: transparent !important;\n      border: 1px solid #c4bcd4;\n      color: #d2cbde; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default > i {\n        color: #dad5e4; }\n      .portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active {\n        border: 1px solid #dfdbe8;\n        color: #edebf2; }\n\n/***\nCustomized Progress Bars\n***/\n.progress {\n  border: 0;\n  background-image: none;\n  filter: none;\n  box-shadow: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n  .progress.progress-sm {\n    height: 12px; }\n  .page-md .progress {\n    text-indent: -99999px; }\n\n/* Custom colors */\n.progress-bar.white {\n  background: #ffffff !important;\n  color: #666 !important; }\n\n.progress-bar.default {\n  background: #e1e5ec !important;\n  color: #666 !important; }\n\n.progress-bar.dark {\n  background: #2f353b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue {\n  background: #3598dc !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-madison {\n  background: #578ebe !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-chambray {\n  background: #2C3E50 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-ebonyclay {\n  background: #22313F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-hoki {\n  background: #67809F !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-steel {\n  background: #4B77BE !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-soft {\n  background: #4c87b9 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-dark {\n  background: #5e738b !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-sharp {\n  background: #5C9BD1 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.blue-oleo {\n  background: #94A0B2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green {\n  background: #32c5d2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-meadow {\n  background: #1BBC9B !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-seagreen {\n  background: #1BA39C !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-turquoise {\n  background: #36D7B7 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-haze {\n  background: #44b6ae !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-jungle {\n  background: #26C281 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-soft {\n  background: #3faba4 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-dark {\n  background: #4DB3A2 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-sharp {\n  background: #2ab4c0 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.green-steel {\n  background: #29b4b6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey {\n  background: #E5E5E5 !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-steel {\n  background: #e9edef !important;\n  color: #80898e !important; }\n\n.progress-bar.grey-cararra {\n  background: #fafafa !important;\n  color: #333333 !important; }\n\n.progress-bar.grey-gallery {\n  background: #555555 !important;\n  color: #ffffff !important; }\n\n.progress-bar.grey-cascade {\n  background: #95A5A6 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.grey-silver {\n  background: #BFBFBF !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salsa {\n  background: #ACB5C3 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-salt {\n  background: #bfcad1 !important;\n  color: #FAFCFB !important; }\n\n.progress-bar.grey-mint {\n  background: #525e64 !important;\n  color: #FFFFFF !important; }\n\n.progress-bar.red {\n  background: #e7505a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-pink {\n  background: #E08283 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-sunglo {\n  background: #E26A6A !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-intense {\n  background: #e35b5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-thunderbird {\n  background: #D91E18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-flamingo {\n  background: #EF4836 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-soft {\n  background: #d05454 !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-haze {\n  background: #f36a5a !important;\n  color: #ffffff !important; }\n\n.progress-bar.red-mint {\n  background: #e43a45 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow {\n  background: #c49f47 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-gold {\n  background: #E87E04 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-casablanca {\n  background: #f2784b !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-crusta {\n  background: #f3c200 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-lemon {\n  background: #F7CA18 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-saffron {\n  background: #F4D03F !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-soft {\n  background: #c8d046 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-haze {\n  background: #c5bf66 !important;\n  color: #ffffff !important; }\n\n.progress-bar.yellow-mint {\n  background: #c5b96b !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-plum {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-medium {\n  background: #BF55EC !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-studio {\n  background: #8E44AD !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-wisteria {\n  background: #9B59B6 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-seance {\n  background: #9A12B3 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-intense {\n  background: #8775a7 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-sharp {\n  background: #796799 !important;\n  color: #ffffff !important; }\n\n.progress-bar.purple-soft {\n  background: #8877a9 !important;\n  color: #ffffff !important; }\n\n/***\nDashboard Stats\n***/\n.dashboard-stat {\n  display: block;\n  margin-bottom: 25px;\n  overflow: hidden;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .dashboard-stat:before, .dashboard-stat:after {\n    content: \" \";\n    display: table; }\n  .dashboard-stat:after {\n    clear: both; }\n  .portlet .dashboard-stat:last-child {\n    margin-bottom: 0; }\n  .dashboard-stat .visual {\n    width: 80px;\n    height: 80px;\n    display: block;\n    float: left;\n    padding-top: 10px;\n    padding-left: 15px;\n    margin-bottom: 15px;\n    font-size: 35px;\n    line-height: 35px; }\n    .dashboard-stat .visual > i {\n      margin-left: -35px;\n      font-size: 110px;\n      line-height: 110px; }\n  .dashboard-stat .details {\n    position: absolute;\n    right: 15px;\n    padding-right: 15px; }\n    .dashboard-stat .details .number {\n      padding-top: 25px;\n      text-align: right;\n      font-size: 34px;\n      line-height: 36px;\n      letter-spacing: -1px;\n      margin-bottom: 0px;\n      font-weight: 300; }\n    .dashboard-stat .details .desc {\n      text-align: right;\n      font-size: 16px;\n      letter-spacing: 0px;\n      font-weight: 300; }\n  .dashboard-stat .more {\n    clear: both;\n    display: block;\n    padding: 6px 10px 6px 10px;\n    position: relative;\n    text-transform: uppercase;\n    font-weight: 300;\n    font-size: 11px;\n    opacity: 0.7;\n    filter: alpha(opacity=70); }\n    .dashboard-stat .more:hover {\n      text-decoration: none;\n      opacity: 0.9;\n      filter: alpha(opacity=90); }\n    .dashboard-stat .more > i {\n      display: inline-block;\n      margin-top: 1px;\n      float: right; }\n  .dashboard-stat.dashboard-stat-v2 .visual {\n    padding-top: 35px;\n    margin-bottom: 40px; }\n\n.dashboard-stat.white {\n  background-color: #ffffff; }\n  .dashboard-stat.white.dashboard-stat-light:hover {\n    background-color: whitesmoke; }\n  .dashboard-stat.white .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.white .details .number {\n    color: #666; }\n  .dashboard-stat.white .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.white .more {\n    color: #666;\n    background-color: whitesmoke; }\n\n.dashboard-stat.default {\n  background-color: #e1e5ec; }\n  .dashboard-stat.default.dashboard-stat-light:hover {\n    background-color: #d5dae4; }\n  .dashboard-stat.default .visual > i {\n    color: #666;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.default .details .number {\n    color: #666; }\n  .dashboard-stat.default .details .desc {\n    color: #666;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.default .more {\n    color: #666;\n    background-color: #d5dae4; }\n\n.dashboard-stat.dark {\n  background-color: #2f353b; }\n  .dashboard-stat.dark.dashboard-stat-light:hover {\n    background-color: #262b30; }\n  .dashboard-stat.dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.dark .more {\n    color: #FFFFFF;\n    background-color: #262b30; }\n\n.dashboard-stat.blue {\n  background-color: #3598dc; }\n  .dashboard-stat.blue.dashboard-stat-light:hover {\n    background-color: #258fd7; }\n  .dashboard-stat.blue .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue .more {\n    color: #FFFFFF;\n    background-color: #258fd7; }\n\n.dashboard-stat.blue-madison {\n  background-color: #578ebe; }\n  .dashboard-stat.blue-madison.dashboard-stat-light:hover {\n    background-color: #4884b8; }\n  .dashboard-stat.blue-madison .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-madison .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-madison .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-madison .more {\n    color: #FFFFFF;\n    background-color: #4884b8; }\n\n.dashboard-stat.blue-chambray {\n  background-color: #2C3E50; }\n  .dashboard-stat.blue-chambray.dashboard-stat-light:hover {\n    background-color: #253443; }\n  .dashboard-stat.blue-chambray .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-chambray .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-chambray .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-chambray .more {\n    color: #FFFFFF;\n    background-color: #253443; }\n\n.dashboard-stat.blue-ebonyclay {\n  background-color: #22313F; }\n  .dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover {\n    background-color: #1b2732; }\n  .dashboard-stat.blue-ebonyclay .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-ebonyclay .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-ebonyclay .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-ebonyclay .more {\n    color: #FFFFFF;\n    background-color: #1b2732; }\n\n.dashboard-stat.blue-hoki {\n  background-color: #67809F; }\n  .dashboard-stat.blue-hoki.dashboard-stat-light:hover {\n    background-color: #5e7694; }\n  .dashboard-stat.blue-hoki .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-hoki .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-hoki .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-hoki .more {\n    color: #FFFFFF;\n    background-color: #5e7694; }\n\n.dashboard-stat.blue-steel {\n  background-color: #4B77BE; }\n  .dashboard-stat.blue-steel.dashboard-stat-light:hover {\n    background-color: #416db4; }\n  .dashboard-stat.blue-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-steel .more {\n    color: #FFFFFF;\n    background-color: #416db4; }\n\n.dashboard-stat.blue-soft {\n  background-color: #4c87b9; }\n  .dashboard-stat.blue-soft.dashboard-stat-light:hover {\n    background-color: #447dad; }\n  .dashboard-stat.blue-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-soft .more {\n    color: #FFFFFF;\n    background-color: #447dad; }\n\n.dashboard-stat.blue-dark {\n  background-color: #5e738b; }\n  .dashboard-stat.blue-dark.dashboard-stat-light:hover {\n    background-color: #56697f; }\n  .dashboard-stat.blue-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-dark .more {\n    color: #FFFFFF;\n    background-color: #56697f; }\n\n.dashboard-stat.blue-sharp {\n  background-color: #5C9BD1; }\n  .dashboard-stat.blue-sharp.dashboard-stat-light:hover {\n    background-color: #4c91cd; }\n  .dashboard-stat.blue-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-sharp .more {\n    color: #FFFFFF;\n    background-color: #4c91cd; }\n\n.dashboard-stat.blue-oleo {\n  background-color: #94A0B2; }\n  .dashboard-stat.blue-oleo.dashboard-stat-light:hover {\n    background-color: #8895a9; }\n  .dashboard-stat.blue-oleo .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.blue-oleo .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.blue-oleo .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.blue-oleo .more {\n    color: #FFFFFF;\n    background-color: #8895a9; }\n\n.dashboard-stat.green {\n  background-color: #32c5d2; }\n  .dashboard-stat.green.dashboard-stat-light:hover {\n    background-color: #2bb8c4; }\n  .dashboard-stat.green .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green .more {\n    color: #FFFFFF;\n    background-color: #2bb8c4; }\n\n.dashboard-stat.green-meadow {\n  background-color: #1BBC9B; }\n  .dashboard-stat.green-meadow.dashboard-stat-light:hover {\n    background-color: #18aa8c; }\n  .dashboard-stat.green-meadow .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-meadow .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-meadow .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-meadow .more {\n    color: #FFFFFF;\n    background-color: #18aa8c; }\n\n.dashboard-stat.green-seagreen {\n  background-color: #1BA39C; }\n  .dashboard-stat.green-seagreen.dashboard-stat-light:hover {\n    background-color: #18918b; }\n  .dashboard-stat.green-seagreen .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-seagreen .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-seagreen .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-seagreen .more {\n    color: #FFFFFF;\n    background-color: #18918b; }\n\n.dashboard-stat.green-turquoise {\n  background-color: #36D7B7; }\n  .dashboard-stat.green-turquoise.dashboard-stat-light:hover {\n    background-color: #29cfae; }\n  .dashboard-stat.green-turquoise .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-turquoise .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-turquoise .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-turquoise .more {\n    color: #FFFFFF;\n    background-color: #29cfae; }\n\n.dashboard-stat.green-haze {\n  background-color: #44b6ae; }\n  .dashboard-stat.green-haze.dashboard-stat-light:hover {\n    background-color: #3ea7a0; }\n  .dashboard-stat.green-haze .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-haze .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-haze .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-haze .more {\n    color: #FFFFFF;\n    background-color: #3ea7a0; }\n\n.dashboard-stat.green-jungle {\n  background-color: #26C281; }\n  .dashboard-stat.green-jungle.dashboard-stat-light:hover {\n    background-color: #23b176; }\n  .dashboard-stat.green-jungle .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-jungle .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-jungle .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-jungle .more {\n    color: #FFFFFF;\n    background-color: #23b176; }\n\n.dashboard-stat.green-soft {\n  background-color: #3faba4; }\n  .dashboard-stat.green-soft.dashboard-stat-light:hover {\n    background-color: #3a9c96; }\n  .dashboard-stat.green-soft .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-soft .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-soft .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-soft .more {\n    color: #FFFFFF;\n    background-color: #3a9c96; }\n\n.dashboard-stat.green-dark {\n  background-color: #4DB3A2; }\n  .dashboard-stat.green-dark.dashboard-stat-light:hover {\n    background-color: #46a595; }\n  .dashboard-stat.green-dark .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-dark .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-dark .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-dark .more {\n    color: #FFFFFF;\n    background-color: #46a595; }\n\n.dashboard-stat.green-sharp {\n  background-color: #2ab4c0; }\n  .dashboard-stat.green-sharp.dashboard-stat-light:hover {\n    background-color: #26a4af; }\n  .dashboard-stat.green-sharp .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-sharp .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-sharp .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-sharp .more {\n    color: #FFFFFF;\n    background-color: #26a4af; }\n\n.dashboard-stat.green-steel {\n  background-color: #29b4b6; }\n  .dashboard-stat.green-steel.dashboard-stat-light:hover {\n    background-color: #25a4a5; }\n  .dashboard-stat.green-steel .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.green-steel .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.green-steel .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.green-steel .more {\n    color: #FFFFFF;\n    background-color: #25a4a5; }\n\n.dashboard-stat.grey {\n  background-color: #E5E5E5; }\n  .dashboard-stat.grey.dashboard-stat-light:hover {\n    background-color: #dbdbdb; }\n  .dashboard-stat.grey .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey .details .number {\n    color: #333333; }\n  .dashboard-stat.grey .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey .more {\n    color: #333333;\n    background-color: #dbdbdb; }\n\n.dashboard-stat.grey-steel {\n  background-color: #e9edef; }\n  .dashboard-stat.grey-steel.dashboard-stat-light:hover {\n    background-color: #dde3e6; }\n  .dashboard-stat.grey-steel .visual > i {\n    color: #80898e;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-steel .details .number {\n    color: #80898e; }\n  .dashboard-stat.grey-steel .details .desc {\n    color: #80898e;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-steel .more {\n    color: #80898e;\n    background-color: #dde3e6; }\n\n.dashboard-stat.grey-cararra {\n  background-color: #fafafa; }\n  .dashboard-stat.grey-cararra.dashboard-stat-light:hover {\n    background-color: #f0f0f0; }\n  .dashboard-stat.grey-cararra .visual > i {\n    color: #333333;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cararra .details .number {\n    color: #333333; }\n  .dashboard-stat.grey-cararra .details .desc {\n    color: #333333;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cararra .more {\n    color: #333333;\n    background-color: #f0f0f0; }\n\n.dashboard-stat.grey-gallery {\n  background-color: #555555; }\n  .dashboard-stat.grey-gallery.dashboard-stat-light:hover {\n    background-color: #4b4b4b; }\n  .dashboard-stat.grey-gallery .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-gallery .details .number {\n    color: #ffffff; }\n  .dashboard-stat.grey-gallery .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-gallery .more {\n    color: #ffffff;\n    background-color: #4b4b4b; }\n\n.dashboard-stat.grey-cascade {\n  background-color: #95A5A6; }\n  .dashboard-stat.grey-cascade.dashboard-stat-light:hover {\n    background-color: #8a9c9d; }\n  .dashboard-stat.grey-cascade .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-cascade .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-cascade .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-cascade .more {\n    color: #FFFFFF;\n    background-color: #8a9c9d; }\n\n.dashboard-stat.grey-silver {\n  background-color: #BFBFBF; }\n  .dashboard-stat.grey-silver.dashboard-stat-light:hover {\n    background-color: #b5b5b5; }\n  .dashboard-stat.grey-silver .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-silver .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-silver .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-silver .more {\n    color: #FAFCFB;\n    background-color: #b5b5b5; }\n\n.dashboard-stat.grey-salsa {\n  background-color: #ACB5C3; }\n  .dashboard-stat.grey-salsa.dashboard-stat-light:hover {\n    background-color: #a0aaba; }\n  .dashboard-stat.grey-salsa .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salsa .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salsa .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salsa .more {\n    color: #FAFCFB;\n    background-color: #a0aaba; }\n\n.dashboard-stat.grey-salt {\n  background-color: #bfcad1; }\n  .dashboard-stat.grey-salt.dashboard-stat-light:hover {\n    background-color: #b3c0c8; }\n  .dashboard-stat.grey-salt .visual > i {\n    color: #FAFCFB;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-salt .details .number {\n    color: #FAFCFB; }\n  .dashboard-stat.grey-salt .details .desc {\n    color: #FAFCFB;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-salt .more {\n    color: #FAFCFB;\n    background-color: #b3c0c8; }\n\n.dashboard-stat.grey-mint {\n  background-color: #525e64; }\n  .dashboard-stat.grey-mint.dashboard-stat-light:hover {\n    background-color: #495359; }\n  .dashboard-stat.grey-mint .visual > i {\n    color: #FFFFFF;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.grey-mint .details .number {\n    color: #FFFFFF; }\n  .dashboard-stat.grey-mint .details .desc {\n    color: #FFFFFF;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.grey-mint .more {\n    color: #FFFFFF;\n    background-color: #495359; }\n\n.dashboard-stat.red {\n  background-color: #e7505a; }\n  .dashboard-stat.red.dashboard-stat-light:hover {\n    background-color: #e53e49; }\n  .dashboard-stat.red .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red .more {\n    color: #ffffff;\n    background-color: #e53e49; }\n\n.dashboard-stat.red-pink {\n  background-color: #E08283; }\n  .dashboard-stat.red-pink.dashboard-stat-light:hover {\n    background-color: #dc7273; }\n  .dashboard-stat.red-pink .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-pink .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-pink .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-pink .more {\n    color: #ffffff;\n    background-color: #dc7273; }\n\n.dashboard-stat.red-sunglo {\n  background-color: #E26A6A; }\n  .dashboard-stat.red-sunglo.dashboard-stat-light:hover {\n    background-color: #df5959; }\n  .dashboard-stat.red-sunglo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-sunglo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-sunglo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-sunglo .more {\n    color: #ffffff;\n    background-color: #df5959; }\n\n.dashboard-stat.red-intense {\n  background-color: #e35b5a; }\n  .dashboard-stat.red-intense.dashboard-stat-light:hover {\n    background-color: #e04a49; }\n  .dashboard-stat.red-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-intense .more {\n    color: #ffffff;\n    background-color: #e04a49; }\n\n.dashboard-stat.red-thunderbird {\n  background-color: #D91E18; }\n  .dashboard-stat.red-thunderbird.dashboard-stat-light:hover {\n    background-color: #c71b16; }\n  .dashboard-stat.red-thunderbird .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-thunderbird .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-thunderbird .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-thunderbird .more {\n    color: #ffffff;\n    background-color: #c71b16; }\n\n.dashboard-stat.red-flamingo {\n  background-color: #EF4836; }\n  .dashboard-stat.red-flamingo.dashboard-stat-light:hover {\n    background-color: #ed3723; }\n  .dashboard-stat.red-flamingo .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-flamingo .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-flamingo .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-flamingo .more {\n    color: #ffffff;\n    background-color: #ed3723; }\n\n.dashboard-stat.red-soft {\n  background-color: #d05454; }\n  .dashboard-stat.red-soft.dashboard-stat-light:hover {\n    background-color: #cc4444; }\n  .dashboard-stat.red-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-soft .more {\n    color: #ffffff;\n    background-color: #cc4444; }\n\n.dashboard-stat.red-haze {\n  background-color: #f36a5a; }\n  .dashboard-stat.red-haze.dashboard-stat-light:hover {\n    background-color: #f25947; }\n  .dashboard-stat.red-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-haze .more {\n    color: #ffffff;\n    background-color: #f25947; }\n\n.dashboard-stat.red-mint {\n  background-color: #e43a45; }\n  .dashboard-stat.red-mint.dashboard-stat-light:hover {\n    background-color: #e22834; }\n  .dashboard-stat.red-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.red-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.red-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.red-mint .more {\n    color: #ffffff;\n    background-color: #e22834; }\n\n.dashboard-stat.yellow {\n  background-color: #c49f47; }\n  .dashboard-stat.yellow.dashboard-stat-light:hover {\n    background-color: #bb953c; }\n  .dashboard-stat.yellow .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow .more {\n    color: #ffffff;\n    background-color: #bb953c; }\n\n.dashboard-stat.yellow-gold {\n  background-color: #E87E04; }\n  .dashboard-stat.yellow-gold.dashboard-stat-light:hover {\n    background-color: #d47304; }\n  .dashboard-stat.yellow-gold .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-gold .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-gold .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-gold .more {\n    color: #ffffff;\n    background-color: #d47304; }\n\n.dashboard-stat.yellow-casablanca {\n  background-color: #f2784b; }\n  .dashboard-stat.yellow-casablanca.dashboard-stat-light:hover {\n    background-color: #f16a38; }\n  .dashboard-stat.yellow-casablanca .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-casablanca .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-casablanca .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-casablanca .more {\n    color: #ffffff;\n    background-color: #f16a38; }\n\n.dashboard-stat.yellow-crusta {\n  background-color: #f3c200; }\n  .dashboard-stat.yellow-crusta.dashboard-stat-light:hover {\n    background-color: #dfb200; }\n  .dashboard-stat.yellow-crusta .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-crusta .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-crusta .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-crusta .more {\n    color: #ffffff;\n    background-color: #dfb200; }\n\n.dashboard-stat.yellow-lemon {\n  background-color: #F7CA18; }\n  .dashboard-stat.yellow-lemon.dashboard-stat-light:hover {\n    background-color: #f2c308; }\n  .dashboard-stat.yellow-lemon .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-lemon .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-lemon .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-lemon .more {\n    color: #ffffff;\n    background-color: #f2c308; }\n\n.dashboard-stat.yellow-saffron {\n  background-color: #F4D03F; }\n  .dashboard-stat.yellow-saffron.dashboard-stat-light:hover {\n    background-color: #f3cb2c; }\n  .dashboard-stat.yellow-saffron .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-saffron .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-saffron .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-saffron .more {\n    color: #ffffff;\n    background-color: #f3cb2c; }\n\n.dashboard-stat.yellow-soft {\n  background-color: #c8d046; }\n  .dashboard-stat.yellow-soft.dashboard-stat-light:hover {\n    background-color: #c3cc36; }\n  .dashboard-stat.yellow-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-soft .more {\n    color: #ffffff;\n    background-color: #c3cc36; }\n\n.dashboard-stat.yellow-haze {\n  background-color: #c5bf66; }\n  .dashboard-stat.yellow-haze.dashboard-stat-light:hover {\n    background-color: #bfb957; }\n  .dashboard-stat.yellow-haze .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-haze .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-haze .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-haze .more {\n    color: #ffffff;\n    background-color: #bfb957; }\n\n.dashboard-stat.yellow-mint {\n  background-color: #c5b96b; }\n  .dashboard-stat.yellow-mint.dashboard-stat-light:hover {\n    background-color: #bfb25c; }\n  .dashboard-stat.yellow-mint .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.yellow-mint .details .number {\n    color: #ffffff; }\n  .dashboard-stat.yellow-mint .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.yellow-mint .more {\n    color: #ffffff;\n    background-color: #bfb25c; }\n\n.dashboard-stat.purple {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-plum {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-plum.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-plum .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-plum .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-plum .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-plum .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-medium {\n  background-color: #BF55EC; }\n  .dashboard-stat.purple-medium.dashboard-stat-light:hover {\n    background-color: #b843ea; }\n  .dashboard-stat.purple-medium .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-medium .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-medium .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-medium .more {\n    color: #ffffff;\n    background-color: #b843ea; }\n\n.dashboard-stat.purple-studio {\n  background-color: #8E44AD; }\n  .dashboard-stat.purple-studio.dashboard-stat-light:hover {\n    background-color: #823e9e; }\n  .dashboard-stat.purple-studio .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-studio .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-studio .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-studio .more {\n    color: #ffffff;\n    background-color: #823e9e; }\n\n.dashboard-stat.purple-wisteria {\n  background-color: #9B59B6; }\n  .dashboard-stat.purple-wisteria.dashboard-stat-light:hover {\n    background-color: #924dae; }\n  .dashboard-stat.purple-wisteria .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-wisteria .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-wisteria .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-wisteria .more {\n    color: #ffffff;\n    background-color: #924dae; }\n\n.dashboard-stat.purple-seance {\n  background-color: #9A12B3; }\n  .dashboard-stat.purple-seance.dashboard-stat-light:hover {\n    background-color: #8a10a0; }\n  .dashboard-stat.purple-seance .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-seance .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-seance .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-seance .more {\n    color: #ffffff;\n    background-color: #8a10a0; }\n\n.dashboard-stat.purple-intense {\n  background-color: #8775a7; }\n  .dashboard-stat.purple-intense.dashboard-stat-light:hover {\n    background-color: #7c699f; }\n  .dashboard-stat.purple-intense .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-intense .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-intense .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-intense .more {\n    color: #ffffff;\n    background-color: #7c699f; }\n\n.dashboard-stat.purple-sharp {\n  background-color: #796799; }\n  .dashboard-stat.purple-sharp.dashboard-stat-light:hover {\n    background-color: #6f5f8d; }\n  .dashboard-stat.purple-sharp .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-sharp .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-sharp .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-sharp .more {\n    color: #ffffff;\n    background-color: #6f5f8d; }\n\n.dashboard-stat.purple-soft {\n  background-color: #8877a9; }\n  .dashboard-stat.purple-soft.dashboard-stat-light:hover {\n    background-color: #7d6ba1; }\n  .dashboard-stat.purple-soft .visual > i {\n    color: #ffffff;\n    opacity: 0.1;\n    filter: alpha(opacity=10); }\n  .dashboard-stat.purple-soft .details .number {\n    color: #ffffff; }\n  .dashboard-stat.purple-soft .details .desc {\n    color: #ffffff;\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .dashboard-stat.purple-soft .more {\n    color: #ffffff;\n    background-color: #7d6ba1; }\n\n.dashboard-stat-light {\n  padding-bottom: 20px;\n  margin-bottom: 20px; }\n  .dashboard-stat-light .details {\n    margin-bottom: 5px; }\n    .dashboard-stat-light .details .number {\n      font-weight: 300;\n      margin-bottom: 0px; }\n\n/***\nDashboard Stats 2\n***/\n.dashboard-stat2 {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  background: #fff;\n  padding: 15px 15px 30px 15px;\n  margin-bottom: 20px; }\n  .dashboard-stat2.bordered {\n    border: 1px solid #e7ecf1; }\n  .dashboard-stat2 .display {\n    margin-bottom: 20px; }\n    .dashboard-stat2 .display:before, .dashboard-stat2 .display:after {\n      content: \" \";\n      display: table; }\n    .dashboard-stat2 .display:after {\n      clear: both; }\n    .dashboard-stat2 .display .number {\n      float: left;\n      display: inline-block; }\n      .dashboard-stat2 .display .number h3 {\n        margin: 0 0 2px 0;\n        padding: 0;\n        font-size: 30px;\n        font-weight: 400; }\n        .dashboard-stat2 .display .number h3 > small {\n          font-size: 23px; }\n      .dashboard-stat2 .display .number small {\n        font-size: 14px;\n        color: #AAB5BC;\n        font-weight: 600;\n        text-transform: uppercase; }\n    .dashboard-stat2 .display .icon {\n      display: inline-block;\n      float: right;\n      padding: 7px 0 0 0; }\n      .dashboard-stat2 .display .icon > i {\n        color: #cbd4e0;\n        font-size: 26px; }\n  .dashboard-stat2 .progress-info {\n    clear: both; }\n    .dashboard-stat2 .progress-info .progress {\n      margin: 0;\n      height: 4px;\n      clear: both;\n      display: block; }\n    .dashboard-stat2 .progress-info .status {\n      margin-top: 5px;\n      font-size: 11px;\n      color: #AAB5BC;\n      font-weight: 600;\n      text-transform: uppercase; }\n      .dashboard-stat2 .progress-info .status .status-title {\n        float: left;\n        display: inline-block; }\n      .dashboard-stat2 .progress-info .status .status-number {\n        float: right;\n        display: inline-block; }\n\n/***\nText Stats\n***/\n.text-stat h3 {\n  margin-top: 5px;\n  margin-bottom: 0px;\n  font-size: 18px; }\n\n.text-stat span {\n  font-size: 13px !important; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .text-stat {\n    margin-top: 20px; } }\n\n/***\nSocial Icons\n***/\n.social-icons {\n  padding: 0;\n  margin: 0; }\n  .social-icons:before, .social-icons:after {\n    content: \" \";\n    display: table; }\n  .social-icons:after {\n    clear: both; }\n  .social-icons li {\n    float: left;\n    display: inline;\n    list-style: none;\n    margin-right: 5px;\n    margin-bottom: 5px;\n    text-indent: -9999px; }\n    .social-icons li > a {\n      -webkit-border-radius: 2px;\n      -moz-border-radius: 2px;\n      -ms-border-radius: 2px;\n      -o-border-radius: 2px;\n      border-radius: 2px;\n      width: 28px;\n      height: 28px;\n      display: block;\n      background-position: 0 0;\n      background-repeat: no-repeat;\n      transition: all 0.3s ease-in-out;\n      -o-transition: all 0.3s ease-in-out;\n      -ms-transition: all 0.3s ease-in-out;\n      -moz-transition: all 0.3s ease-in-out;\n      -webkit-transition: all 0.3s ease-in-out; }\n    .social-icons li:hover > a {\n      background-position: 0 -38px; }\n    .social-icons li .amazon {\n      background: url(../img/social/amazon.png) no-repeat; }\n    .social-icons li .behance {\n      background: url(../img/social/behance.png) no-repeat; }\n    .social-icons li .blogger {\n      background: url(../img/social/blogger.png) no-repeat; }\n    .social-icons li .deviantart {\n      background: url(../img/social/deviantart.png) no-repeat; }\n    .social-icons li .dribbble {\n      background: url(../img/social/dribbble.png) no-repeat; }\n    .social-icons li .dropbox {\n      background: url(../img/social/dropbox.png) no-repeat; }\n    .social-icons li .evernote {\n      background: url(../img/social/evernote.png) no-repeat; }\n    .social-icons li .facebook {\n      background: url(../img/social/facebook.png) no-repeat; }\n    .social-icons li .forrst {\n      background: url(../img/social/forrst.png) no-repeat; }\n    .social-icons li .github {\n      background: url(../img/social/github.png) no-repeat; }\n    .social-icons li .googleplus {\n      background: url(../img/social/googleplus.png) no-repeat; }\n    .social-icons li .jolicloud {\n      background: url(../img/social/jolicloud.png) no-repeat; }\n    .social-icons li .last-fm {\n      background: url(../img/social/last-fm.png) no-repeat; }\n    .social-icons li .linkedin {\n      background: url(../img/social/linkedin.png) no-repeat; }\n    .social-icons li .picasa {\n      background: url(../img/social/picasa.png) no-repeat; }\n    .social-icons li .pintrest {\n      background: url(../img/social/pintrest.png) no-repeat; }\n    .social-icons li .rss {\n      background: url(../img/social/rss.png) no-repeat; }\n    .social-icons li .skype {\n      background: url(../img/social/skype.png) no-repeat; }\n    .social-icons li .spotify {\n      background: url(../img/social/spotify.png) no-repeat; }\n    .social-icons li .stumbleupon {\n      background: url(../img/social/stumbleupon.png) no-repeat; }\n    .social-icons li .tumblr {\n      background: url(../img/social/tumblr.png) no-repeat; }\n    .social-icons li .twitter {\n      background: url(../img/social/twitter.png) no-repeat; }\n    .social-icons li .vimeo {\n      background: url(../img/social/vimeo.png) no-repeat; }\n    .social-icons li .wordpress {\n      background: url(../img/social/wordpress.png) no-repeat; }\n    .social-icons li .xing {\n      background: url(../img/social/xing.png) no-repeat; }\n    .social-icons li .yahoo {\n      background: url(../img/social/yahoo.png) no-repeat; }\n    .social-icons li .youtube {\n      background: url(../img/social/youtube.png) no-repeat; }\n    .social-icons li .vk {\n      background: url(../img/social/vk.png) no-repeat; }\n    .social-icons li .instagram {\n      background: url(../img/social/instagram.png) no-repeat; }\n    .social-icons li .reddit {\n      background: url(../img/social/reddit.png) no-repeat; }\n    .social-icons li .aboutme {\n      background: url(../img/social/aboutme.png) no-repeat; }\n    .social-icons li .flickr {\n      background: url(../img/social/flickr.png) no-repeat; }\n    .social-icons li .foursquare {\n      background: url(../img/social/foursquare.png) no-repeat; }\n    .social-icons li .gravatar {\n      background: url(../img/social/gravatar.png) no-repeat; }\n    .social-icons li .klout {\n      background: url(../img/social/klout.png) no-repeat; }\n    .social-icons li .myspace {\n      background: url(../img/social/myspace.png) no-repeat; }\n    .social-icons li .quora {\n      background: url(../img/social/quora.png) no-repeat; }\n  .social-icons.social-icons-color > li > a {\n    opacity: 0.7;\n    background-position: 0 -38px !important; }\n    .social-icons.social-icons-color > li > a:hover {\n      opacity: 1; }\n  .social-icons.social-icons-circle > li > a {\n    border-radius: 25px !important; }\n\n/***\nInline Social Icons\n***/\n.social-icon {\n  display: inline-block !important;\n  width: 28px;\n  height: 28px;\n  background-position: 0 0;\n  background-repeat: no-repeat;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  transition: all 0.3s ease-in-out;\n  -o-transition: all 0.3s ease-in-out;\n  -ms-transition: all 0.3s ease-in-out;\n  -moz-transition: all 0.3s ease-in-out;\n  -webkit-transition: all 0.3s ease-in-out; }\n  .social-icon.social-icon-circle {\n    border-radius: 25px !important; }\n\n.social-icon.amazon {\n  background: url(../img/social/amazon.png) no-repeat; }\n\n.social-icon.behance {\n  background: url(../img/social/behance.png) no-repeat; }\n\n.social-icon.blogger {\n  background: url(../img/social/blogger.png) no-repeat; }\n\n.social-icon.deviantart {\n  background: url(../img/social/deviantart.png) no-repeat; }\n\n.social-icon.dribbble {\n  background: url(../img/social/dribbble.png) no-repeat; }\n\n.social-icon.dropbox {\n  background: url(../img/social/dropbox.png) no-repeat; }\n\n.social-icon.evernote {\n  background: url(../img/social/evernote.png) no-repeat; }\n\n.social-icon.facebook {\n  background: url(../img/social/facebook.png) no-repeat; }\n\n.social-icon.forrst {\n  background: url(../img/social/forrst.png) no-repeat; }\n\n.social-icon.github {\n  background: url(../img/social/github.png) no-repeat; }\n\n.social-icon.googleplus {\n  background: url(../img/social/googleplus.png) no-repeat; }\n\n.social-icon.jolicloud {\n  background: url(../img/social/jolicloud.png) no-repeat; }\n\n.social-icon.last-fm {\n  background: url(../img/social/last-fm.png) no-repeat; }\n\n.social-icon.linkedin {\n  background: url(../img/social/linkedin.png) no-repeat; }\n\n.social-icon.picasa {\n  background: url(../img/social/picasa.png) no-repeat; }\n\n.social-icon.pintrest {\n  background: url(../img/social/pintrest.png) no-repeat; }\n\n.social-icon.rss {\n  background: url(../img/social/rss.png) no-repeat; }\n\n.social-icon.skype {\n  background: url(../img/social/skype.png) no-repeat; }\n\n.social-icon.spotify {\n  background: url(../img/social/spotify.png) no-repeat; }\n\n.social-icon.stumbleupon {\n  background: url(../img/social/stumbleupon.png) no-repeat; }\n\n.social-icon.tumblr {\n  background: url(../img/social/tumblr.png) no-repeat; }\n\n.social-icon.twitter {\n  background: url(../img/social/twitter.png) no-repeat; }\n\n.social-icon.vimeo {\n  background: url(../img/social/vimeo.png) no-repeat; }\n\n.social-icon.wordpress {\n  background: url(../img/social/wordpress.png) no-repeat; }\n\n.social-icon.xing {\n  background: url(../img/social/xing.png) no-repeat; }\n\n.social-icon.yahoo {\n  background: url(../img/social/yahoo.png) no-repeat; }\n\n.social-icon.youtube {\n  background: url(../img/social/youtube.png) no-repeat; }\n\n.social-icon.vk {\n  background: url(../img/social/vk.png) no-repeat; }\n\n.social-icon.instagram {\n  background: url(../img/social/instagram.png) no-repeat; }\n\n.social-icon.reddit {\n  background: url(../img/social/reddit.png) no-repeat; }\n\n.social-icon.aboutme {\n  background: url(../img/social/aboutme.png) no-repeat; }\n\n.social-icon.flickr {\n  background: url(../img/social/flickr.png) no-repeat; }\n\n.social-icon.foursquare {\n  background: url(../img/social/foursquare.png) no-repeat; }\n\n.social-icon.gravatar {\n  background: url(../img/social/gravatar.png) no-repeat; }\n\n.social-icon.klout {\n  background: url(../img/social/klout.png) no-repeat; }\n\n.social-icon.myspace {\n  background: url(../img/social/myspace.png) no-repeat; }\n\n.social-icon.quora {\n  background: url(../img/social/quora.png) no-repeat; }\n\n.social-icon:hover {\n  background-position: 0 -38px; }\n\n.social-icon-color {\n  opacity: 0.7;\n  background-position: 0 -38px !important; }\n  .social-icon-color:hover {\n    opacity: 1; }\n\n/***\nScrollable Tables\n***/\n.table-scrollable {\n  width: 100%;\n  overflow-x: auto;\n  overflow-y: hidden;\n  border: 1px solid #e7ecf1;\n  margin: 10px 0 !important; }\n  .DTS .table-scrollable {\n    border: 0; }\n  .table-scrollable.table-scrollable-borderless {\n    border: 0; }\n  .table-scrollable > .table {\n    width: 100% !important;\n    margin: 0 !important;\n    margin-bottom: 0;\n    background-color: #fff; }\n    .table-scrollable > .table > thead > tr > th,\n    .table-scrollable > .table > tbody > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > th,\n    .table-scrollable > .table > tfoot > tr > td {\n      white-space: nowrap; }\n  .table-scrollable > .table-bordered {\n    border: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:first-child,\n    .table-scrollable > .table-bordered > thead > tr > td:first-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:first-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:first-child {\n      border-left: 0; }\n    .table-scrollable > .table-bordered > thead > tr > th:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > th:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > th:last-child,\n    .table-scrollable > .table-bordered > thead > tr > td:last-child,\n    .table-scrollable > .table-bordered > tbody > tr > td:last-child,\n    .table-scrollable > .table-bordered > tfoot > tr > td:last-child {\n      border-right: 0; }\n    .table-scrollable > .table-bordered > thead > tr:last-child > th,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > th,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > th,\n    .table-scrollable > .table-bordered > thead > tr:last-child > td,\n    .table-scrollable > .table-bordered > tbody > tr:last-child > td,\n    .table-scrollable > .table-bordered > tfoot > tr:last-child > td {\n      border-bottom: 0; }\n\n/***\nCustomized Bootstrap Tables\n***/\n.table td,\n.table th {\n  font-size: 14px; }\n\n.table.table-bordered thead > tr > th {\n  border-bottom: 0; }\n\n.table td .img-responsive {\n  width: 100%; }\n\n/***\nResponsive Flip Scroll Tables\n***/\n.flip-scroll table {\n  width: 100%; }\n\n@media only screen and (max-width: 768px) {\n  /* 768px */\n  .flip-scroll .flip-content:after {\n    visibility: hidden;\n    display: block;\n    font-size: 0;\n    content: \" \";\n    clear: both;\n    height: 0; }\n  .flip-scroll * html .flip-content {\n    zoom: 1; }\n  .flip-scroll *:first-child + html .flip-content {\n    zoom: 1; }\n  .flip-scroll table {\n    width: 100%;\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .flip-scroll th,\n  .flip-scroll td {\n    margin: 0;\n    vertical-align: top; }\n  .flip-scroll th {\n    text-align: left;\n    border: 0 !important;\n    border-bottom: 1px solid #ddd !important;\n    border-right: 1px solid #ddd !important;\n    font-size: 13px !important;\n    padding: 5px;\n    width: auto !important; }\n  .flip-scroll table {\n    display: block;\n    position: relative;\n    width: 100%; }\n  .flip-scroll thead {\n    display: block;\n    float: left; }\n  .flip-scroll tbody {\n    display: block;\n    width: auto;\n    position: relative;\n    overflow-x: auto;\n    white-space: nowrap; }\n  .flip-scroll .flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.483; }\n  .flip-scroll .table-bordered.flip-content tbody tr td {\n    font-size: 13px;\n    line-height: 1.43; }\n  .flip-scroll thead tr {\n    display: block; }\n  .flip-scroll th {\n    display: block;\n    text-align: right; }\n  .flip-scroll tbody tr {\n    display: inline-block;\n    vertical-align: top;\n    margin-left: -5px; }\n  .flip-scroll td {\n    display: block;\n    min-height: 1.25em;\n    text-align: left;\n    border-top: 0 !important;\n    border-left: 0 !important;\n    border-right: 0 !important; }\n  /* sort out borders */\n  .flip-scroll th {\n    border-bottom: 0;\n    border-left: 0; }\n  .flip-scroll td {\n    border-left: 0;\n    border-right: 0;\n    border-bottom: 0; }\n  .flip-scroll tbody tr {\n    border-left: 1px solid #ddd; }\n  .flip-scroll th:last-child,\n  .flip-scroll td:last-child {\n    border-bottom: 1px solid #ddd; } }\n\n/***\nCustom tables\n***/\n.table-toolbar {\n  margin-bottom: 20px; }\n  .table-toolbar:before, .table-toolbar:after {\n    content: \" \";\n    display: table; }\n  .table-toolbar:after {\n    clear: both; }\n\n.table.table-full-width {\n  width: 100% !important; }\n\n.table .btn {\n  margin-top: 0px;\n  margin-left: 0px;\n  margin-right: 5px; }\n\n.table thead tr th {\n  font-size: 14px;\n  font-weight: 600; }\n\n.table-advance {\n  margin-bottom: 10px !important; }\n\n.table-advance thead {\n  color: #3f444a; }\n\n.table-advance thead tr th {\n  background-color: #f1f4f7;\n  font-size: 14px;\n  font-weight: 400;\n  color: #3f444a; }\n\n.table-advance div.success,\n.table-advance div.info,\n.table-advance div.important,\n.table-advance div.warning,\n.table-advance div.danger {\n  position: absolute;\n  margin-top: -5px;\n  float: left;\n  width: 2px;\n  height: 30px;\n  margin-right: 20px !important; }\n\n.table-advance tr td {\n  border-left-width: 0px; }\n\n.table-advance tr td:first-child {\n  border-left-width: 2px !important; }\n\n.table-advance tr td.highlight:first-child a {\n  margin-left: 15px; }\n\n.table-advance td.highlight div.primary {\n  border-left: 2px solid #337ab7; }\n\n.table-advance td.highlight div.success {\n  border-left: 2px solid #36c6d3; }\n\n.table-advance td.highlight div.info {\n  border-left: 2px solid #659be0; }\n\n.table-advance td.highlight div.warning {\n  border-left: 2px solid #F1C40F; }\n\n.table-advance td.highlight div.danger {\n  border-left: 2px solid #ed6b75; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .table-advance tr > td.highlight:first-child a {\n    margin-left: 8px; } }\n\n/***\nLight Table\n***/\n.table.table-light {\n  border: 0 !important; }\n  .table.table-light > thead > tr:hover > th {\n    background: none; }\n  .table.table-light > thead > tr.uppercase {\n    text-transform: uppercase; }\n  .table.table-light > thead > tr > th {\n    font-weight: 600;\n    font-size: 13px;\n    color: #93a2a9;\n    font-family: \"Open Sans\", sans-serif;\n    border: 0;\n    border-bottom: 1px solid #F2F5F8; }\n  .table.table-light > tbody > tr:last-child > td {\n    border: 0; }\n  .table.table-light > tbody > tr > td {\n    border: 0;\n    border-bottom: 1px solid #F2F5F8;\n    color: #8896a0;\n    vertical-align: middle; }\n    .table.table-light > tbody > tr > td.fit {\n      width: 1px;\n      padding-right: 3px; }\n    .table.table-light > tbody > tr > td .user-pic {\n      display: inline-block;\n      vertical-align: middle;\n      height: 30px;\n      -webkit-border-radius: 100%;\n      -moz-border-radius: 100%;\n      -ms-border-radius: 100%;\n      -o-border-radius: 100%;\n      border-radius: 100%; }\n  .table.table-light.table-hover > tbody > tr > td:hover,\n  .table.table-light.table-hover > tbody > tr > th:hover,\n  .table.table-light.table-hover > tbody > tr:hover > td {\n    background: #f9fafb !important; }\n\n.table-hover > tbody > tr:hover,\n.table-hover > tbody > tr:hover > td {\n  background: #f3f4f6 !important; }\n\n/***\nCustomized Bootstrap Tabs \n***/\n/* Tabs and pills */\n.nav-tabs,\n.nav-pills {\n  margin-bottom: 10px; }\n  .nav-tabs > li > a,\n  .nav-pills > li > a {\n    font-size: 14px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .nav-tabs > li > a > .badge,\n    .nav-pills > li > a > .badge {\n      margin-top: -6px; }\n  .nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after,\n  .nav-pills > li .dropdown-menu:before,\n  .nav-pills > li .dropdown-menu:after {\n    display: none; }\n  .nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a,\n  .nav-pills.nav-tabs-sm > li > a,\n  .nav-pills.nav-pills-sm > li > a {\n    font-size: 13px; }\n  .nav-tabs .dropdown.open > .dropdown-toggle,\n  .nav-pills .dropdown.open > .dropdown-toggle {\n    background: #eee;\n    color: #0d638f;\n    border-color: transparent; }\n\n/* Left and right tabs */\n.tabs-right.nav-tabs,\n.tabs-left.nav-tabs {\n  border-bottom: 0; }\n  .tabs-right.nav-tabs > li,\n  .tabs-left.nav-tabs > li {\n    float: none; }\n    .tabs-right.nav-tabs > li > a,\n    .tabs-left.nav-tabs > li > a {\n      margin-right: 0;\n      margin-bottom: 3px; }\n\n/* Left tabs */\n.tabs-left.nav-tabs {\n  border-right: 1px solid #ddd; }\n  .tabs-left.nav-tabs > li > a {\n    display: block;\n    margin-right: -1px; }\n    .tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus {\n      -webkit-border-radius: 4px 0 0 4px;\n      -moz-border-radius: 4px 0 0 4px;\n      -ms-border-radius: 4px 0 0 4px;\n      -o-border-radius: 4px 0 0 4px;\n      border-radius: 4px 0 0 4px;\n      border-color: #eeeeee #dddddd #eeeeee #eeeeee; }\n  .tabs-left.nav-tabs > li.active > a,\n  .tabs-left.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 4px 0 0 4px;\n    -moz-border-radius: 4px 0 0 4px;\n    -ms-border-radius: 4px 0 0 4px;\n    -o-border-radius: 4px 0 0 4px;\n    border-radius: 4px 0 0 4px;\n    border-color: #ddd transparent #ddd #ddd;\n    *border-right-color: #ffffff; }\n\n/* Right tabs */\n.tabs-right.nav-tabs {\n  border-left: 1px solid #ddd; }\n  .tabs-right.nav-tabs > li > a {\n    display: block;\n    margin-left: -1px; }\n    .tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      border-color: #eeeeee #eeeeee #eeeeee #dddddd; }\n  .tabs-right.nav-tabs > li.active > a,\n  .tabs-right.nav-tabs > li.active > a:hover > li.active > a:focus {\n    -webkit-border-radius: 0 4px 4px 0;\n    -moz-border-radius: 0 4px 4px 0;\n    -ms-border-radius: 0 4px 4px 0;\n    -o-border-radius: 0 4px 4px 0;\n    border-radius: 0 4px 4px 0;\n    border-color: #ddd #ddd #ddd transparent;\n    *border-left-color: #ffffff; }\n\n/* Below tabs */\n.tabs-below > .nav-tabs,\n.tabs-below > .nav-pills {\n  border-bottom: 0;\n  margin-bottom: 0px;\n  margin-top: 10px; }\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n  margin-bottom: 0;\n  margin-top: 10px; }\n  .tabs-below > .nav-tabs > li > a {\n    margin-top: -1px;\n    margin-bottom: 0; }\n    .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus {\n      border-top-color: #ddd;\n      border-bottom-color: transparent; }\n    .tabs-below > .nav-tabs > li > a .dropdown-menu {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n  .tabs-below > .nav-tabs .active a,\n  .tabs-below > .nav-tabs .active a:hover .active a:focus {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px;\n    border-color: transparent #ddd #ddd #ddd  !important; }\n\n/***\nCustom tabs\n***/\n/* In BS3.0.0 tabbable class was removed. We had to added it back */\n.tabbable:before, .tabbable:after {\n  content: \" \";\n  display: table; }\n\n.tabbable:after {\n  clear: both; }\n\n.tabbable-custom {\n  margin-bottom: 15px;\n  padding: 0px;\n  overflow: hidden;\n  /* justified tabs */\n  /* boxless tabs */\n  /* below justified tabs */\n  /* full width tabs */\n  /* below tabs */ }\n  .tabbable-custom > .nav-tabs {\n    border: none;\n    margin: 0px; }\n    .tabbable-custom > .nav-tabs > li {\n      margin-right: 2px;\n      border-top: 2px solid transparent; }\n      .tabbable-custom > .nav-tabs > li > a {\n        margin-right: 0;\n        -webkit-border-radius: 0;\n        -moz-border-radius: 0;\n        -ms-border-radius: 0;\n        -o-border-radius: 0;\n        border-radius: 0; }\n        .tabbable-custom > .nav-tabs > li > a:hover {\n          background: none;\n          border-color: transparent; }\n      .tabbable-custom > .nav-tabs > li.active {\n        border-top: 3px solid #ed6b75;\n        margin-top: 0;\n        position: relative; }\n        .tabbable-custom > .nav-tabs > li.active > a {\n          border-top: none !important;\n          font-weight: 400;\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0; }\n          .tabbable-custom > .nav-tabs > li.active > a:hover {\n            -webkit-border-radius: 0;\n            -moz-border-radius: 0;\n            -ms-border-radius: 0;\n            -o-border-radius: 0;\n            border-radius: 0;\n            border-top: none;\n            background: #fff;\n            border-color: #d4d4d4 #d4d4d4 transparent; }\n  .tabbable-custom > .tab-content {\n    background-color: #fff;\n    border: 1px solid #ddd;\n    padding: 10px;\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n  .tabbable-custom.nav-justified > .tab-content {\n    margin-top: -1px; }\n  .tabbable-custom.boxless > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below.nav-justified .tab-content {\n    margin-top: 0px;\n    margin-bottom: -2px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .tabbable-custom.tabbable-full-width > .nav-tabs > li > a {\n    color: #424242;\n    font-size: 15px;\n    padding: 9px 15px; }\n  .tabbable-custom.tabbable-full-width > .tab-content {\n    padding: 15px 0;\n    border-left: none;\n    border-right: none;\n    border-bottom: none; }\n  .tabbable-custom.tabs-below .nav-tabs > li > a {\n    border-top: none;\n    border-bottom: 2px solid transparent;\n    margin-top: -1px; }\n  .tabbable-custom.tabs-below .nav-tabs > li.active {\n    border-top: none;\n    border-bottom: 3px solid #d12610;\n    margin-bottom: 0;\n    position: relative; }\n    .tabbable-custom.tabs-below .nav-tabs > li.active > a {\n      border-bottom: none; }\n      .tabbable-custom.tabs-below .nav-tabs > li.active > a:hover {\n        background: #fff;\n        border-color: #d4d4d4 #d4d4d4 transparent; }\n\n.tabbable-custom.tabbable-noborder > .nav-tabs > li > a {\n  border: 0; }\n\n.tabbable-custom.tabbable-noborder .tab-content {\n  border: 0; }\n\n.portlet:not(.light) .tabbable-line {\n  padding-top: 15px; }\n\n.tabbable-line > .nav-tabs {\n  border: none;\n  margin: 0px; }\n  .tabbable-line > .nav-tabs > li {\n    margin: 0;\n    border-bottom: 4px solid transparent; }\n    .tabbable-line > .nav-tabs > li > a {\n      background: none !important;\n      border: 0;\n      margin: 0;\n      padding-left: 15px;\n      padding-right: 15px;\n      color: #737373; }\n      .tabbable-line > .nav-tabs > li > a > i {\n        color: #a6a6a6; }\n    .tabbable-line > .nav-tabs > li.active {\n      background: none;\n      border-bottom: 4px solid #33c389;\n      position: relative; }\n/*       #36c6d3 */\n      .tabbable-line > .nav-tabs > li.active > a {\n        border: 0;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.active > a > i {\n          color: #404040; }\n    .tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover {\n      background: none;\n      border-bottom: 4px solid #94eca7; }\n/*       #9fe4ea */\n      .tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a {\n        border: 0;\n        background: none !important;\n        color: #333; }\n        .tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i {\n          color: #a6a6a6; }\n      .tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu {\n        margin-top: 0px; }\n\n.tabbable-line > .tab-content {\n  margin-top: 0;\n  border: 0;\n  border-top: 1px solid #eef1f5;\n  padding: 30px 0; }\n  .page-container-bg-solid .tabbable-line > .tab-content {\n    border-top: 1px solid #dae2ea; }\n  .portlet .tabbable-line > .tab-content {\n    padding-bottom: 0; }\n\n.tabbable-line.tabs-below > .nav-tabs > li {\n  border-top: 4px solid transparent; }\n  .tabbable-line.tabs-below > .nav-tabs > li > a {\n    margin-top: 0; }\n  .tabbable-line.tabs-below > .nav-tabs > li:hover {\n    border-bottom: 0;\n    border-top: 4px solid #fbdcde; }\n  .tabbable-line.tabs-below > .nav-tabs > li.active {\n    margin-bottom: -2px;\n    border-bottom: 0;\n    border-top: 4px solid #ed6b75; }\n\n.tabbable-line.tabs-below > .tab-content {\n  margin-top: -10px;\n  border-top: 0;\n  border-bottom: 1px solid #eee;\n  padding-bottom: 15px; }\n\n.portlet .tabbable-bordered {\n  margin-top: 20px; }\n\n.tabbable-bordered .nav-tabs {\n  margin-bottom: 0;\n  border-bottom: 0; }\n\n.tabbable-bordered .tab-content {\n  padding: 30px 20px 20px 20px;\n  border: 1px solid #ddd;\n  background: #ffffff; }\n\n/***\nTiles(new in v1.1.1)\n***/\n.tiles {\n  margin-right: -10px; }\n  .tiles:before, .tiles:after {\n    display: table;\n    content: \" \"; }\n  .tiles:after {\n    clear: both; }\n  .tiles .tile {\n    display: block;\n    letter-spacing: 0.02em;\n    float: left;\n    height: 135px;\n    width: 135px !important;\n    cursor: pointer;\n    text-decoration: none;\n    color: #ffffff;\n    position: relative;\n    font-weight: 300;\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    line-height: 20px;\n    overflow: hidden;\n    border: 4px solid transparent;\n    margin: 0 10px 10px 0; }\n    .tiles .tile:after, .tiles .tile:before {\n      content: \"\";\n      float: left; }\n    .tiles .tile.double {\n      width: 280px !important; }\n    .tiles .tile.double-down {\n      height: 280px !important; }\n      .tiles .tile.double-down i {\n        margin-top: 95px; }\n    .tiles .tile:hover {\n      border-color: #aaa !important; }\n    .tiles .tile:active, .tiles .tile.selected {\n      border-color: #ccc !important; }\n    .tiles .tile.selected .corner:after {\n      content: \"\";\n      display: inline-block;\n      border-left: 40px solid transparent;\n      border-bottom: 40px solid transparent;\n      border-right: 40px solid #ccc;\n      position: absolute;\n      top: -3px;\n      right: -3px; }\n    .tiles .tile.selected .check:after {\n      content: \"\";\n      font-family: FontAwesome;\n      font-size: 13px;\n      content: \"\\f00c\";\n      display: inline-block;\n      position: absolute;\n      top: 2px;\n      right: 2px; }\n    .tiles .tile.icon {\n      padding: 0; }\n    .tiles .tile.image .tile-body {\n      padding: 0 !important; }\n      .tiles .tile.image .tile-body > img {\n        width: 100%;\n        height: auto;\n        min-height: 100%;\n        max-width: 100%; }\n      .tiles .tile.image .tile-body h3 {\n        display: inline-block; }\n    .tiles .tile .tile-body {\n      height: 100%;\n      vertical-align: top;\n      padding: 10px 10px;\n      overflow: hidden;\n      position: relative;\n      font-weight: 400;\n      font-size: 12px;\n      color: #000000;\n      color: #ffffff;\n      margin-bottom: 10px; }\n      .tiles .tile .tile-body p {\n        font-weight: 400;\n        font-size: 13px;\n        color: #000000;\n        color: #ffffff;\n        line-height: 20px;\n        overflow: hidden; }\n        .tiles .tile .tile-body p:hover {\n          color: rgba(0, 0, 0, 0.8); }\n        .tiles .tile .tile-body p:active {\n          color: rgba(0, 0, 0, 0.4); }\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body img {\n        float: left;\n        margin-right: 10px; }\n        .tiles .tile .tile-body img.pull-right {\n          float: right !important;\n          margin-left: 10px;\n          margin-right: 0px; }\n      .tiles .tile .tile-body > .content {\n        display: inline-block; }\n      .tiles .tile .tile-body > i {\n        margin-top: 17px;\n        display: block;\n        font-size: 56px;\n        line-height: 56px;\n        text-align: center; }\n      .tiles .tile .tile-body h1,\n      .tiles .tile .tile-body h2,\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4,\n      .tiles .tile .tile-body h5,\n      .tiles .tile .tile-body h6,\n      .tiles .tile .tile-body p {\n        padding: 0;\n        margin: 0;\n        line-height: 14px; }\n        .tiles .tile .tile-body h1:hover,\n        .tiles .tile .tile-body h2:hover,\n        .tiles .tile .tile-body h3:hover,\n        .tiles .tile .tile-body h4:hover,\n        .tiles .tile .tile-body h5:hover,\n        .tiles .tile .tile-body h6:hover,\n        .tiles .tile .tile-body p:hover {\n          color: #ffffff; }\n      .tiles .tile .tile-body h3,\n      .tiles .tile .tile-body h4 {\n        margin-bottom: 5px; }\n    .tiles .tile .tile-object {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      min-height: 30px;\n      background-color: transparent;\n      *zoom: 1; }\n      .tiles .tile .tile-object:before, .tiles .tile .tile-object:after {\n        display: table;\n        content: \"\"; }\n      .tiles .tile .tile-object:after {\n        clear: both; }\n      .tiles .tile .tile-object > .name {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        margin-bottom: 5px;\n        margin-left: 10px;\n        margin-right: 15px;\n        font-weight: 400;\n        font-size: 13px;\n        color: #ffffff; }\n        .tiles .tile .tile-object > .name > i {\n          vertical-align: middle;\n          display: block;\n          font-size: 24px;\n          height: 18px;\n          width: 24px; }\n      .tiles .tile .tile-object > .number {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        margin-bottom: 0;\n        color: #ffffff;\n        text-align: center;\n        font-weight: 600;\n        font-size: 14px;\n        letter-spacing: 0.01em;\n        line-height: 14px;\n        margin-bottom: 8px;\n        margin-right: 10px; }\n\n/***\nCustimized Bootstrap Wells\n***/\n.well {\n  border: 0;\n  padding: 20px;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.well-lg {\n  padding: 40px; }\n\n.well-sm {\n  padding: 10px; }\n\n/*--------------------------------------------------\n\t[Widgets]\n----------------------------------------------------*/\n/*** Widget Background Colors ***/\n.widget-bg-color-purple {\n  background: #9a7caf; }\n\n.widget-bg-color-purple-dark {\n  background: #4b365a; }\n\n.widget-bg-color-purple-light {\n  background: #674d79; }\n\n.widget-bg-color-green {\n  background: #4db3a4; }\n\n.widget-bg-color-red {\n  background: #f36a5a; }\n\n.widget-bg-color-blue {\n  background: #5b9bd1; }\n\n.widget-bg-color-gray {\n  background: #323c45; }\n\n.widget-bg-color-gray-dark {\n  background: #144f57; }\n\n.widget-bg-color-white {\n  background: #fff; }\n\n.widget-bg-color-dark {\n  background: #3e4f5e; }\n\n.widget-bg-color-dark-light {\n  background: #8e9daa; }\n\n.widget-bg-color-fb {\n  background: #475e98; }\n\n.widget-bg-color-tw {\n  background: #55acee; }\n\n/*** Widget Title Colors ***/\n.widget-title-color-purple {\n  color: #9a7caf; }\n\n.widget-title-color-purple-dark {\n  color: #4b365a; }\n\n.widget-title-color-purple-light {\n  color: #674d79; }\n\n.widget-title-color-green {\n  color: #4db3a4; }\n\n.widget-title-color-red {\n  color: #f36a5a; }\n\n.widget-title-color-blue {\n  color: #5b9bd1; }\n\n.widget-title-color-gray {\n  color: #323c45; }\n\n.widget-title-color-gray-dark {\n  color: #144f57; }\n\n.widget-title-color-white {\n  color: #fff; }\n\n.widget-title-color-dark {\n  color: #3e4f5e; }\n\n.widget-title-color-dark-light {\n  color: #8e9daa; }\n\n.widget-title-color-fb {\n  color: #475e98; }\n\n.widget-title-color-tw {\n  color: #55acee; }\n\n.overflow-h {\n  overflow: hidden; }\n\n/*** Widget Carousel ***/\n.widget-carousel .carousel-indicators {\n  left: -18%;\n  bottom: 10px;\n  margin-left: 0; }\n\n.widget-carousel .carousel-indicators-red > li {\n  border-color: #f36a5a; }\n  .widget-carousel .carousel-indicators-red > li.active {\n    background: #f36a5a; }\n\n/*** Widget Gradient ***/\n.widget-gradient {\n  position: relative;\n  min-height: 350px;\n  overflow: hidden;\n  background-size: cover;\n  background-position: 50% 50%;\n  border-radius: 4px; }\n  .widget-gradient .widget-gradient-body {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    width: auto;\n    height: auto;\n    padding: 20px; }\n    .widget-gradient .widget-gradient-body .widget-gradient-title {\n      font-size: 21px;\n      font-weight: 600;\n      color: #fff;\n      margin: 0; }\n    .widget-gradient .widget-gradient-body .widget-gradient-body-actions {\n      position: absolute;\n      right: 20px;\n      bottom: 20px;\n      padding: 0;\n      margin: 0; }\n      .widget-gradient .widget-gradient-body .widget-gradient-body-actions li {\n        font-size: 14px;\n        padding: 0 0 0 8px; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li:first-child {\n          padding-left: 0; }\n        .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a {\n          color: #fff; }\n          .widget-gradient .widget-gradient-body .widget-gradient-body-actions li a:hover {\n            color: #a1afbb;\n            text-decoration: none; }\n\n/*** Widget Gradient ***/\n.widget-wrap-img {\n  border-radius: 4px;\n  position: relative;\n  min-height: 350px;\n  padding: 20px; }\n  .widget-wrap-img .widget-wrap-img-title {\n    font-size: 21px;\n    font-weight: 600;\n    color: #3e4f5e;\n    margin: 0 0 20px; }\n  .widget-wrap-img .widget-wrap-img-element {\n    position: absolute;\n    bottom: 0;\n    right: 0; }\n\n/*** Widget Tab ***/\n.widget-tab {\n  min-height: 420px;\n  border-radius: 4px; }\n  .widget-tab .nav-tabs {\n    margin: 0;\n    border-color: #eff1f3; }\n    .widget-tab .nav-tabs > li {\n      margin: 0 10px; }\n      .widget-tab .nav-tabs > li:first-child {\n        margin-left: 20px; }\n      .widget-tab .nav-tabs > li > a {\n        border: 0;\n        font-weight: bold;\n        color: #8e9daa;\n        text-transform: uppercase;\n        padding: 20px 0; }\n        .widget-tab .nav-tabs > li > a > i {\n          color: #8e9daa; }\n      .widget-tab .nav-tabs > li.open, .widget-tab .nav-tabs > li:hover {\n        border-bottom: 1px solid #f36a5a; }\n        .widget-tab .nav-tabs > li.open > a, .widget-tab .nav-tabs > li:hover > a {\n          border: 0;\n          background: inherit;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.open > a > i, .widget-tab .nav-tabs > li:hover > a > i {\n            color: #f36a5a; }\n      .widget-tab .nav-tabs > li.active {\n        border-bottom: 1px solid #f36a5a;\n        position: relative; }\n        .widget-tab .nav-tabs > li.active > a {\n          border: 0;\n          color: #f36a5a; }\n          .widget-tab .nav-tabs > li.active > a > i {\n            color: #f36a5a; }\n  .widget-tab .tab-content {\n    padding: 20px;\n    color: #8e9daa; }\n  .widget-tab .slimScrollBar {\n    right: 10px !important;\n    margin-top: 17px !important;\n    margin-bottom: 17px !important; }\n\n/*** Widget News ***/\n.widget-news {\n  overflow: hidden;\n  margin-right: 10px;\n  border-radius: 4px; }\n  .widget-news .widget-news-left-elem {\n    float: left;\n    width: 100px;\n    height: auto;\n    margin-right: 15px; }\n  .widget-news .widget-news-right-body {\n    overflow: hidden; }\n    .widget-news .widget-news-right-body .widget-news-right-body-title {\n      font-size: 16px;\n      font-weight: 600;\n      color: #3e4f5e;\n      margin: 0 0 5px;\n      clear: both; }\n      .widget-news .widget-news-right-body .widget-news-right-body-title .label {\n        float: right;\n        font-weight: 600;\n        background: #a1afbb;\n        border-radius: 3px !important; }\n    .widget-news .widget-news-right-body p {\n      font-size: 13px; }\n\n/*** Widget Thumb ***/\n.widget-thumb {\n  padding: 20px;\n  border-radius: 4px; }\n  .widget-thumb.bordered {\n    border: 1px solid #e7ecf1; }\n  .widget-thumb .widget-thumb-heading {\n    font-size: 14px;\n    font-weight: bold;\n    color: #8e9daa;\n    margin: 0 0 20px 0; }\n  .widget-thumb .widget-thumb-wrap {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-wrap .widget-thumb-icon {\n      float: left;\n      width: 60px;\n      height: 60px;\n      display: inline-block;\n      font-size: 20px;\n      line-height: 41px;\n      color: #fff;\n      text-align: center;\n      padding: 10px;\n      margin-right: 15px; }\n  .widget-thumb .widget-thumb-body {\n    overflow: hidden; }\n    .widget-thumb .widget-thumb-body .widget-thumb-subtitle {\n      padding-top: 2px;\n      display: block;\n      font-size: 14px;\n      font-weight: 600;\n      color: #8e9daa; }\n    .widget-thumb .widget-thumb-body .widget-thumb-body-stat {\n      display: block;\n      font-size: 30px;\n      font-weight: 600;\n      color: #3e4f5e; }\n\n/*** Widget Socials ***/\n.widget-socials {\n  border-radius: 4px;\n  min-height: 250px;\n  padding: 20px; }\n  .widget-socials .widget-socials-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    color: #fff;\n    margin: 0 0 20px; }\n  .widget-socials .widget-social-subtitle {\n    color: #fff;\n    font-weight: 200;\n    line-height: 1.4; }\n    .widget-socials .widget-social-subtitle a {\n      color: #fff; }\n  .widget-socials .widget-socials-paragraph {\n    display: block;\n    color: #65727d; }\n  .widget-socials .widget-social-icon-fb, .widget-socials .widget-social-icon-tw {\n    font-size: 30px;\n    margin: 30px 0; }\n  .widget-socials .widget-social-icon-fb {\n    color: #2b3f72; }\n  .widget-socials .widget-social-icon-tw {\n    color: #3686c3; }\n\n/*** Widget Comments ***/\n.widget-comments {\n  min-height: 420px; }\n\n/*** Widget Media ***/\n.widget-media {\n  border-radius: 4px;\n  border-bottom: 1px solid #f6f9fc;\n  overflow: hidden;\n  padding-bottom: 15px;\n  margin-bottom: 15px; }\n  .widget-media .widget-media-elements {\n    float: left;\n    margin-right: 20px; }\n  .widget-media .widget-media-avatar {\n    width: 55px;\n    height: 55px;\n    display: block; }\n  .widget-media .widget-btn-default {\n    display: inline-block;\n    font-size: 12px;\n    color: #96a2b1;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-default .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-default:hover {\n      background: #ebf0f6;\n      text-decoration: none; }\n  .widget-media .widget-btn-red {\n    display: inline-block;\n    font-size: 12px;\n    color: #f36a5a;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px; }\n    .widget-media .widget-btn-red .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-red:hover {\n      color: #fff;\n      background: #f36a5a;\n      text-decoration: none; }\n  .widget-media .widget-btn-blue {\n    display: inline-block;\n    font-size: 12px;\n    color: #fff;\n    border: 1px solid #ebf0f6;\n    padding: 3px 10px;\n    background: #337ab7; }\n    .widget-media .widget-btn-blue .widget-btn-icon {\n      line-height: 1.5; }\n    .widget-media .widget-btn-blue:hover {\n      color: #337ab7;\n      background: #fff;\n      text-decoration: none; }\n  .widget-media .widget-media-body {\n    overflow: hidden; }\n    .widget-media .widget-media-body .widget-media-body-title {\n      font-size: 15px;\n      font-weight: 600;\n      color: #5b9bd1;\n      margin: 0 0 7px; }\n    .widget-media .widget-media-body .widget-media-body-subtitle {\n      font-size: 13px;\n      color: #7e8c9e; }\n\n/*** Widget Blog ***/\n.widget-blog {\n  border-radius: 4px;\n  background: #fff;\n  padding: 20px;\n  background-position: center center;\n  background-size: cover;\n  padding-top: 30px; }\n  .widget-blog .widget-blog-heading {\n    position: relative;\n    margin-bottom: 30px; }\n    .widget-blog .widget-blog-heading:before {\n      position: absolute;\n      bottom: -15px;\n      left: 50%;\n      width: 50px;\n      height: 1px;\n      border-width: 1px;\n      background: #8e9daa;\n      margin-left: -25px;\n      content: \" \"; }\n  .widget-blog .widget-blog-title {\n    font-size: 20px;\n    font-weight: 400;\n    color: #3e4f5e;\n    margin: 0 0 15px; }\n    .widget-blog .widget-blog-title a {\n      color: #3e4f5e; }\n  .widget-blog .widget-blog-subtitle {\n    display: block;\n    font-size: 13px;\n    color: #8e9daa;\n    letter-spacing: 3px; }\n  .widget-blog .btn-widget-purple {\n    display: inline-block;\n    font-size: 13px;\n    color: #8e9daa;\n    border: 1px solid #8e9daa;\n    padding: 7px 17px; }\n    .widget-blog .btn-widget-purple:hover {\n      color: #fff;\n      background: #8e9daa;\n      text-decoration: none; }\n\n/*** Widget Progress ***/\n.widget-progress {\n  min-height: 420px; }\n  .widget-progress .widget-progress-element {\n    border-radius: 4px;\n    overflow: hidden;\n    padding: 30px 10px; }\n  .widget-progress .widget-progress-title {\n    display: block;\n    color: #fff;\n    margin-bottom: 5px; }\n  .widget-progress .progress {\n    height: 3px;\n    background: rgba(255, 255, 255, 0.2);\n    margin-bottom: 0; }\n\n/*** Widget Gradient ***/\n.widget-map {\n  border-radius: 4px;\n  min-height: 350px;\n  border-radius: 3px; }\n  .widget-map .widget-map-mapplic {\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n    .widget-map .widget-map-mapplic .mapplic-container {\n      background: #5b9bd1; }\n    .widget-map .widget-map-mapplic .mapplic-layer.world > img {\n      opacity: .3; }\n  .widget-map .widget-map-body {\n    background: #fff;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px;\n    padding: 20px;\n    overflow: hidden; }\n  .widget-map .widget-sparkline-chart {\n    width: 25%;\n    float: left;\n    border-left: 1px solid #e7eff7;\n    padding: 0 15px; }\n    .widget-map .widget-sparkline-chart:first-child {\n      border-left: none; }\n    .widget-map .widget-sparkline-chart .widget-sparkline-title {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: #a1afbb; }\n\n/* Widget Map for max-width 480px */\n@media (max-width: 480px) {\n  /* 480px */\n  .widget-map .widget-sparkline-chart {\n    width: 50%;\n    border-left: none;\n    margin-top: 10px;\n    margin-bottom: 10px; } }\n\n/*** Widget Subscribe ***/\n.widget-subscribe {\n  border-radius: 4px;\n  min-height: 250px;\n  overflow: hidden;\n  padding: 30px; }\n  .widget-subscribe .widget-subscribe-no {\n    float: left;\n    font-size: 67px;\n    font-weight: 600;\n    line-height: 1;\n    color: #9a7caf; }\n  .widget-subscribe .widget-subscribe-title {\n    font-size: 25px;\n    font-weight: 700;\n    line-height: 1.4;\n    margin: 0 0 15px 45px; }\n  .widget-subscribe .widget-subscribe-subtitle {\n    font-size: 15px;\n    font-weight: 600; }\n  .widget-subscribe .widget-subscribe-subtitle-link {\n    color: #cab0dd; }\n  .widget-subscribe.widget-subscribe-quote {\n    position: relative; }\n    .widget-subscribe.widget-subscribe-quote:before {\n      position: absolute;\n      top: 2px;\n      font-size: 70px;\n      color: #fff;\n      content: \"\\201C\"; }\n\n/* Widget Subscribe for media queries */\n@media (max-width: 767px) {\n  /* 767px */\n  .widget-subscribe.widget-subscribe-border {\n    border-top: 1px solid #f5f8fb;\n    border-bottom: 1px solid #f5f8fb;\n    border-right: none; } }\n\n@media (min-width: 768px) {\n  /* 768px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: 1px solid #f5f8fb;\n    border-right: 1px solid #f5f8fb; } }\n\n@media (min-width: 767px) and (max-width: 991px) {\n  /* 767px & 991px */\n  .widget-subscribe.widget-subscribe-border {\n    border-left: none; }\n  .widget-subscribe.widget-subscribe-border-top {\n    border-top: 1px solid #f5f8fb; } }\n\n/*--------------------------------------------------\n    [Material Design]\n----------------------------------------------------*/\n.page-md .widget-bg-color-white,\n.page-md .widget-map,\n.page-md .widget-carousel,\n.page-md .widget-progress-element,\n.page-md .widget-socials,\n.page-md .widget-blog {\n  box-shadow: 0px 2px 3px 2px rgba(0, 0, 0, 0.03); }\n\n/***\nAngularJS Basic Animations\n***/\n@-webkit-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateY(0); } }\n\n@-moz-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateY(0); } }\n\n@-o-keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    -o-transform: translateY(0); } }\n\n@keyframes fadeInUp {\n  0% {\n    opacity: 0;\n    transform: translateY(15px); }\n  100% {\n    opacity: 1;\n    transform: translateY(0); } }\n\n.fade-in-up {\n  -webkit-animation: fadeInUp .5s;\n  animation: fadeInUp .5s; }\n\n@-webkit-keyframes bounceDelay {\n  0%, 80%, 100% {\n    -webkit-transform: scale(0); }\n  40% {\n    -webkit-transform: scale(1); } }\n\n@keyframes bounceDelay {\n  0%, 80%, 100% {\n    transform: scale(0);\n    -webkit-transform: scale(0); }\n  40% {\n    transform: scale(1);\n    -webkit-transform: scale(1); } }\n\n@keyframes input-focus {\n  0% {\n    left: 20%;\n    width: 20%; }\n  99% {\n    width: 0;\n    left: 0;\n    opacity: 1; }\n  100% {\n    opacity: 0; } }\n\n.m-heading-1 {\n  margin: 0 0 20px 0;\n  background: #ffffff;\n  padding-left: 15px;\n  border-left: 8px solid #88909a; }\n  .m-heading-1 > h3 {\n    font-size: 20px;\n    color: #3f444a;\n    font-weight: 500;\n    margin: 0 0 15px 0; }\n    .m-heading-1 > h3 > i {\n      font-size: 18px;\n      color: #88909a; }\n  .m-heading-1 > p {\n    color: #5c6873;\n    margin: 10px 0 0 0; }\n    .m-heading-1 > p:first-child {\n      margin-top: 0; }\n  .m-heading-1.m-bordered {\n    border-right: 1px solid #10161c;\n    border-top: 1px solid #10161c;\n    border-bottom: 1px solid #10161c;\n    padding: 15px 15px; }\n    .page-container-bg-solid .m-heading-1.m-bordered {\n      border-right: 0;\n      border-top: 0;\n      border-bottom: 0; }\n  .m-heading-1.m-title-md > h3 {\n    font-size: 18px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-md > h3 > i {\n      font-size: 16px;\n      color: #88909a; }\n  .m-heading-1.m-title-md > p {\n    margin: 15px 0; }\n  .m-heading-1.m-title-sm > h3 {\n    font-size: 16px;\n    margin-bottom: 10px; }\n    .m-heading-1.m-title-sm > h3 > i {\n      font-size: 14px;\n      color: #88909a; }\n  .m-heading-1.m-title-sm > p {\n    margin: 10px 0; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .m-heading-1 {\n    margin: 0px 0; } }\n\n/***\nTimeline \n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  position: relative;\n  margin-bottom: 30px; }\n  .timeline:before {\n    content: '';\n    position: absolute;\n    display: block;\n    width: 4px;\n    background: #f5f6fa;\n    top: 0px;\n    bottom: 0px;\n    margin-left: 38px; }\n  .timeline .timeline-item {\n    margin: 0;\n    padding: 0; }\n  .timeline .timeline-badge {\n    float: left;\n    position: relative;\n    padding-right: 30px;\n    height: 80px;\n    width: 80px; }\n  .timeline .timeline-badge-userpic {\n    width: 80px;\n    border: 4px #f5f6fa solid;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important; }\n  .timeline .timeline-badge-userpic img {\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    vertical-align: middle !important; }\n  .timeline .timeline-icon {\n    width: 80px;\n    height: 80px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 50% !important;\n    -moz-border-radius: 50% !important;\n    border-radius: 50% !important;\n    padding-top: 30px;\n    padding-left: 22px; }\n  .timeline .timeline-icon i {\n    font-size: 34px; }\n  .timeline .timeline-body {\n    position: relative;\n    padding: 20px;\n    margin-top: 20px;\n    margin-left: 110px;\n    background-color: #f5f6fa;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .timeline .timeline-body:before, .timeline .timeline-body:after {\n      content: \" \";\n      display: table; }\n    .timeline .timeline-body:after {\n      clear: both; }\n  .timeline .timeline-body-arrow {\n    position: absolute;\n    top: 30px;\n    left: -14px;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 14px 14px 14px 0;\n    border-color: transparent #f5f6fa transparent transparent; }\n  .timeline .timeline-body-head {\n    margin-bottom: 10px; }\n  .timeline .timeline-body-head-caption {\n    float: left; }\n  .timeline .timeline-body-title {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-alerttitle {\n    font-size: 16px;\n    font-weight: 600; }\n  .timeline .timeline-body-time {\n    font-size: 14px;\n    margin-left: 10px; }\n  .timeline .timeline-body-head-actions {\n    float: right; }\n  .timeline .timeline-body-head-actions .btn-group {\n    margin-top: -2px; }\n  .timeline .timeline-body-content {\n    font-size: 14px;\n    margin-top: 35px; }\n  .timeline .timeline-body-img {\n    width: 100px;\n    height: 100px;\n    margin: 5px 20px 0 0px; }\n  .timeline.white-bg:before {\n    background: #fff; }\n  .timeline.white-bg .timeline-badge-userpic {\n    border-color: #fff; }\n  .timeline.white-bg .timeline-icon {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body {\n    background-color: #fff; }\n  .timeline.white-bg .timeline-body-arrow {\n    border-color: transparent #fff transparent transparent; }\n\n@media (max-width: 768px) {\n  .timeline .timeline-body-head-caption {\n    width: 100%; }\n  .timeline .timeline-body-head-actions {\n    float: left;\n    width: 100%;\n    margin-top: 20px;\n    margin-bottom: 20px; } }\n\n@media (max-width: 480px) {\n  .timeline:before {\n    margin-left: 28px; }\n  .timeline .timeline-badge {\n    padding-right: 40px;\n    width: 60px;\n    height: 60px; }\n  .timeline .timeline-badge-userpic {\n    width: 60px; }\n  .timeline .timeline-icon {\n    width: 60px;\n    height: 60px;\n    padding-top: 23px;\n    padding-left: 18px; }\n  .timeline .timeline-icon i {\n    font-size: 25px; }\n  .timeline .timeline-body {\n    margin-left: 80px; }\n  .timeline .timeline-body-arrow {\n    top: 17px; } }\n\n/***\nTimeline 2\n***/\n.mt-timeline-2 {\n  position: relative; }\n  .mt-timeline-2 > .mt-timeline-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 50%;\n    border-left: 4px solid;\n    transform: translateX(-2px); }\n  .mt-timeline-2 > .mt-container {\n    position: relative;\n    padding: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item {\n      list-style: none;\n      padding-bottom: 60px;\n      clear: both; }\n      .mt-timeline-2 > .mt-container > .mt-item .timeline-body-img.pull-left {\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n        width: 70px;\n        height: 70px;\n        background-color: #ccc;\n        border-radius: 50% !important;\n        position: absolute;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 5;\n        border: 0;\n        overflow: hidden; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n          top: 50%;\n          left: 50%;\n          transform: translateY(-50%) translateX(-50%);\n          font-size: 24px; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > img {\n          width: 100%;\n          height: auto; }\n      .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n        width: 50%;\n        display: inline-block;\n        position: relative; }\n        .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container {\n          text-align: left;\n          background-color: #f5f6fa;\n          padding: 30px;\n          border: 2px solid;\n          border-color: #d3d7e9; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            content: \" \";\n            display: table; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:after {\n            clear: both; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n            width: 50%;\n            margin-bottom: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content-title {\n            opacity: 0.8 ;\n            filter: alpha(opacity=80) ;\n            margin-top: 10px;\n            font-size: 18px;\n            font-weight: 600; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar {\n            width: 40px;\n            height: 40px;\n            border-radius: 50% !important;\n            overflow: hidden; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-avatar > img {\n              width: 100%;\n              height: auto; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-name a {\n            opacity: 0.9 ;\n            filter: alpha(opacity=90) ;\n            font-size: 15px;\n            font-weight: 600;\n            text-decoration: none; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            font-size: 12px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content {\n            padding-top: 15px;\n            border-top: 1px solid;\n            clear: both;\n            line-height: 1.7em; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content > p {\n              opacity: 0.7 ;\n              filter: alpha(opacity=70) ; }\n            .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content a, .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-content button {\n              font-size: 14px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn {\n            display: inline-block;\n            margin: 0 5px 10px 0; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .btn.pull-right {\n            margin: 0 0 10px 5px; }\n          .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container:before {\n            content: '';\n            position: absolute;\n            top: 28px;\n            height: 0;\n            width: 0;\n            border: 10px solid transparent; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n        text-align: left; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n          margin-right: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: right;\n            margin-left: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n            right: 40px;\n            border-left: 10px solid #d3d7e9; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) {\n        text-align: right; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-icon > i {\n          transform: translateY(-50%) translateX(50%);\n          left: -50%; }\n        .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n          margin-left: 60px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-avatar {\n            float: left;\n            margin-right: 15px; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-title {\n            float: right;\n            text-align: right; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author {\n            float: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-name,\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n            text-align: left; }\n          .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n            left: 40px;\n            border-right: 10px solid #E9EDEF; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-timeline-2 > .mt-timeline-line {\n    left: 25px; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon {\n    left: 25px; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-icon > i {\n      left: 0; }\n  .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content {\n    width: 100%; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      float: none;\n      text-align: left !important; }\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-author,\n    .mt-timeline-2 > .mt-container > .mt-item > .mt-timeline-content > .mt-content-container .mt-title {\n      width: 100%; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) {\n    text-align: right; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container {\n      margin-left: 80px;\n      margin-right: 0; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-avatar {\n        float: left;\n        margin-right: 15px; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-title {\n        float: right;\n        text-align: right; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author {\n        float: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-name,\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n        text-align: left; }\n      .mt-timeline-2 > .mt-container > .mt-item:nth-child(odd) > .mt-timeline-content > .mt-content-container:before {\n        left: 70px;\n        border-right: 10px solid #E9EDEF;\n        border-left: none; }\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container {\n    margin-left: 80px;\n    margin-right: 0; }\n    .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container:before {\n      left: 70px;\n      border-right: 10px solid #E9EDEF;\n      border-left: none; } }\n\n@media (max-width: 480px) {\n  .mt-timeline-2 .btn.pull-right,\n  .mt-timeline-2 .btn-group.pull-right {\n    float: none !important;\n    margin: 0 5px 10px 0 !important; } }\n\n@media (max-width: 400px) {\n  .mt-timeline-2 > .mt-container > .mt-item:nth-child(even) > .mt-timeline-content > .mt-content-container .mt-author-notes {\n    clear: both;\n    padding-top: 10px; } }\n\n/***\nHorizontal Timeline \n***/\n/* PLUGIN CSS */\n.cd-horizontal-timeline {\n  opacity: 0;\n  -webkit-transition: opacity 0.2s;\n  -moz-transition: opacity 0.2s;\n  transition: opacity 0.2s; }\n\n.cd-horizontal-timeline::before {\n  /* never visible - this is used in jQuery to check the current MQ */\n  content: 'mobile';\n  display: none; }\n\n.cd-horizontal-timeline.loaded {\n  /* show the timeline after events position has been set (using JavaScript) */\n  opacity: 1; }\n\n.cd-horizontal-timeline .timeline {\n  position: relative;\n  height: 100px;\n  width: 90%;\n  max-width: 800px;\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-wrapper {\n  position: relative;\n  height: 100%;\n  margin: 0 40px;\n  overflow: hidden; }\n\n.cd-horizontal-timeline .events-wrapper::after, .cd-horizontal-timeline .events-wrapper::before {\n  /* these are used to create a shadow effect at the sides of the timeline */\n  content: '';\n  position: absolute;\n  z-index: 2;\n  top: 0;\n  height: 100%;\n  width: 20px; }\n\n.cd-horizontal-timeline .events-wrapper::before {\n  left: 0;\n  background-image: -webkit-linear-gradient(left, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to right, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events-wrapper::after {\n  right: 0;\n  background-image: -webkit-linear-gradient(right, #f8f8f8, rgba(248, 248, 248, 0));\n  background-image: linear-gradient(to left, #f8f8f8, rgba(248, 248, 248, 0)); }\n\n.cd-horizontal-timeline .events {\n  /* this is the grey line/timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 49px;\n  height: 2px;\n  /* width will be set using JavaScript */\n  background: #dfdfdf;\n  -webkit-transition: -webkit-transform 0.4s;\n  -moz-transition: -moz-transform 0.4s;\n  transition: transform 0.4s; }\n\n.cd-horizontal-timeline .filling-line {\n  /* this is used to create the green line filling the timeline */\n  position: absolute;\n  z-index: 1;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  background-color: #7b9d6f;\n  -webkit-transform: scaleX(0);\n  -moz-transform: scaleX(0);\n  -ms-transform: scaleX(0);\n  -o-transform: scaleX(0);\n  transform: scaleX(0);\n  -webkit-transform-origin: left center;\n  -moz-transform-origin: left center;\n  -ms-transform-origin: left center;\n  -o-transform-origin: left center;\n  transform-origin: left center;\n  -webkit-transition: -webkit-transform 0.3s;\n  -moz-transition: -moz-transform 0.3s;\n  transition: transform 0.3s; }\n\n.cd-horizontal-timeline .events a {\n  position: absolute;\n  bottom: 0;\n  z-index: 2;\n  text-align: center;\n  font-size: 1.3rem;\n  padding-bottom: 15px;\n  color: #383838;\n  /* fix bug on Safari - text flickering while timeline translates */\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0); }\n\n.cd-horizontal-timeline .events a::after {\n  /* this is used to create the event spot */\n  content: '';\n  position: absolute;\n  left: 50%;\n  right: auto;\n  -webkit-transform: translateX(-50%);\n  -moz-transform: translateX(-50%);\n  -ms-transform: translateX(-50%);\n  -o-transform: translateX(-50%);\n  transform: translateX(-50%);\n  bottom: -5px;\n  height: 12px;\n  width: 12px;\n  border-radius: 50%;\n  -webkit-transition: background-color 0.3s, border-color 0.3s;\n  -moz-transition: background-color 0.3s, border-color 0.3s;\n  transition: background-color 0.3s, border-color 0.3s; }\n\n.no-touch .cd-horizontal-timeline .events a:hover::after {\n  background-color: #7b9d6f;\n  border-color: #7b9d6f; }\n\n.cd-horizontal-timeline .events a.selected {\n  pointer-events: none; }\n\n@media only screen and (min-width: 1100px) {\n  .cd-horizontal-timeline::before {\n    /* never visible - this is used in jQuery to check the current MQ */\n    content: 'desktop'; } }\n\n.cd-timeline-navigation a {\n  /* these are the left/right arrows to navigate the timeline */\n  position: absolute;\n  z-index: 1;\n  top: 50%;\n  bottom: auto;\n  -webkit-transform: translateY(-50%);\n  -moz-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  -o-transform: translateY(-50%);\n  transform: translateY(-50%);\n  height: 34px;\n  width: 34px;\n  border-radius: 50%;\n  border: 2px solid #dfdfdf;\n  /* replace text with an icon */\n  overflow: hidden;\n  color: transparent;\n  text-indent: 100%;\n  white-space: nowrap;\n  -webkit-transition: border-color 0.3s;\n  -moz-transition: border-color 0.3s;\n  transition: border-color 0.3s; }\n\n.cd-timeline-navigation a.prev {\n  left: 0; }\n\n.cd-timeline-navigation a.next {\n  right: 0; }\n\n.cd-timeline-navigation a.inactive {\n  cursor: not-allowed; }\n\n.cd-timeline-navigation a.inactive::after {\n  background-position: 0 -16px; }\n\n.no-touch .cd-timeline-navigation a.inactive:hover {\n  border-color: #dfdfdf; }\n\n.cd-horizontal-timeline .events-content {\n  position: relative;\n  width: 100%;\n  margin: 10px 0 0 0;\n  overflow: hidden;\n  -webkit-transition: height 0.4s;\n  -moz-transition: height 0.4s;\n  transition: height 0.4s; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  left: 0;\n  top: 0;\n  -webkit-transform: translateX(-100%);\n  -moz-transform: translateX(-100%);\n  -ms-transform: translateX(-100%);\n  -o-transform: translateX(-100%);\n  transform: translateX(-100%);\n  padding: 0;\n  opacity: 0;\n  -webkit-animation-duration: 0.4s;\n  -moz-animation-duration: 0.4s;\n  animation-duration: 0.4s;\n  -webkit-animation-timing-function: ease-in-out;\n  -moz-animation-timing-function: ease-in-out;\n  animation-timing-function: ease-in-out; }\n\n.cd-horizontal-timeline .events-content > ol > li.selected {\n  /* visible event content */\n  position: relative;\n  z-index: 2;\n  opacity: 1;\n  -webkit-transform: translateX(0);\n  -moz-transform: translateX(0);\n  -ms-transform: translateX(0);\n  -o-transform: translateX(0);\n  transform: translateX(0); }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-right, .cd-horizontal-timeline .events-content > ol > li.leave-right {\n  -webkit-animation-name: cd-enter-right;\n  -moz-animation-name: cd-enter-right;\n  animation-name: cd-enter-right; }\n\n.cd-horizontal-timeline .events-content > ol > li.enter-left, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-name: cd-enter-left;\n  -moz-animation-name: cd-enter-left;\n  animation-name: cd-enter-left; }\n\n.cd-horizontal-timeline .events-content > ol > li.leave-right, .cd-horizontal-timeline .events-content > ol > li.leave-left {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  animation-direction: reverse; }\n\n.cd-horizontal-timeline .events-content > ol > li {\n  margin: 0 auto; }\n\n.cd-horizontal-timeline .events-content em {\n  display: block;\n  font-style: italic;\n  margin: 10px auto; }\n\n.cd-horizontal-timeline .events-content em::before {\n  content: '- '; }\n\n@-webkit-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-right {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(100%);\n    -moz-transform: translateX(100%);\n    -ms-transform: translateX(100%);\n    -o-transform: translateX(100%);\n    transform: translateX(100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n@-webkit-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%); } }\n\n@-moz-keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -moz-transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -moz-transform: translateX(0%); } }\n\n@keyframes cd-enter-left {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateX(-100%);\n    -moz-transform: translateX(-100%);\n    -ms-transform: translateX(-100%);\n    -o-transform: translateX(-100%);\n    transform: translateX(-100%); }\n  100% {\n    opacity: 1;\n    -webkit-transform: translateX(0%);\n    -moz-transform: translateX(0%);\n    -ms-transform: translateX(0%);\n    -o-transform: translateX(0%);\n    transform: translateX(0%); } }\n\n/* METRONIC EXTENDED CSS */\n.mt-timeline-horizontal {\n  font-size: 14px; }\n  .mt-timeline-horizontal ol, .mt-timeline-horizontal ul {\n    list-style: none; }\n  .mt-timeline-horizontal blockquote, .mt-timeline-horizontal q {\n    quotes: none; }\n  .mt-timeline-horizontal blockquote:before, .mt-timeline-horizontal blockquote:after,\n  .mt-timeline-horizontal q:before, .mt-timeline-horizontal q:after {\n    content: '';\n    content: none; }\n  .mt-timeline-horizontal table {\n    border-collapse: collapse;\n    border-spacing: 0; }\n  .mt-timeline-horizontal .timeline {\n    width: 100%;\n    max-width: 100%; }\n    .mt-timeline-horizontal .timeline:before {\n      background: transparent; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:after {\n      background-color: transparent;\n      border: 2px solid; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a.selected:after {\n      background-color: #fff !important; }\n    .mt-timeline-horizontal .timeline .events-wrapper .events a:hover, .mt-timeline-horizontal .timeline .events-wrapper .events a:focus {\n      text-decoration: none; }\n    .mt-timeline-horizontal .timeline .events-wrapper:before, .mt-timeline-horizontal .timeline .events-wrapper:after {\n      background-image: none; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a {\n      border-radius: 50% !important; }\n      .mt-timeline-horizontal .timeline .mt-ht-nav-icon li a i {\n        position: absolute;\n        top: 50%;\n        left: 0;\n        transform: translateX(50%) translateY(-50%);\n        width: 10px; }\n    .mt-timeline-horizontal .timeline .mt-ht-nav-icon li:first-child a i {\n      left: -2px; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .events a:after {\n      border-radius: 0 !important; }\n    .mt-timeline-horizontal .timeline.mt-timeline-square .mt-ht-nav-icon li a {\n      border-radius: 0 !important; }\n  .mt-timeline-horizontal .events-content ol {\n    padding: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-title {\n      margin-top: 15px;\n      float: left;\n      width: 60%; }\n      .mt-timeline-horizontal .events-content ol li .mt-title h2 {\n        margin: 0;\n        opacity: 0.8 ;\n        filter: alpha(opacity=80) ;\n        font-size: 18px;\n        font-weight: 600; }\n    .mt-timeline-horizontal .events-content ol li .mt-author {\n      float: right;\n      position: relative;\n      text-align: right;\n      width: 40%; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        float: right;\n        margin-left: 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n        margin-top: 5px; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a {\n          opacity: 0.9 ;\n          filter: alpha(opacity=90) ;\n          font-size: 15px;\n          font-weight: 600; }\n          .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:hover, .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name a:focus {\n            text-decoration: none; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-datetime {\n        font-size: 13px; }\n      .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n        width: 50px;\n        height: 50px;\n        border-radius: 50% !important;\n        overflow: hidden; }\n        .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar > img {\n          width: 100%;\n          height: auto; }\n    .mt-timeline-horizontal .events-content ol li .mt-content {\n      margin-top: 20px;\n      padding-top: 20px;\n      border-top: 1px solid;\n      clear: both;\n      line-height: 1.7em; }\n      .mt-timeline-horizontal .events-content ol li .mt-content > p {\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-left {\n        margin: 0 15px 15px 0; }\n      .mt-timeline-horizontal .events-content ol li .mt-content img.pull-right {\n        margin: 0 0 15px 15px; }\n      .mt-timeline-horizontal .events-content ol li .mt-content .btn-group .dropdown-menu {\n        margin-right: 5px; }\n\n@media (max-width: 480px) {\n  .mt-timeline-horizontal .events-content ol li .mt-title {\n    width: 100%; }\n  .mt-timeline-horizontal .events-content ol li .mt-author {\n    width: 100%;\n    margin-top: 15px;\n    text-align: left; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-avatar {\n      float: left;\n      margin-right: 15px;\n      margin-left: 0; }\n    .mt-timeline-horizontal .events-content ol li .mt-author > .mt-author-name {\n      margin-top: 10px; }\n  .mt-timeline-horizontal .btn.pull-right {\n    float: none !important;\n    margin: 0 !important; } }\n\n/***\nTasks Widget \n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 10px;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 7px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before, .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #999999; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #999b9b; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 160px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-widget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  position: relative; }\n  .mt-widget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-widget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-widget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-widget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-widget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-widget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px;\n    font-weight: 600;\n    font-size: 16px; }\n  .mt-widget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #666666;\n    font-size: 13px; }\n  .mt-widget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-widget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          font-size: 16px; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-widget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n\n.mt-widget-2 {\n  border: 1px solid #e7ecf1;\n  position: relative; }\n  .mt-widget-2 .mt-head {\n    position: absolute;\n    width: 100%;\n    background-size: 100% 100%; }\n    .mt-widget-2 .mt-head .mt-head-label {\n      position: absolute;\n      top: 8px;\n      right: 8px;\n      cursor: pointer; }\n      .mt-widget-2 .mt-head .mt-head-label > button {\n        font-size: 13px;\n        border-radius: 2px !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img {\n      position: relative;\n      float: left;\n      margin: 165px 32px 18px 35px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img::after {\n        content: \"\";\n        position: absolute;\n        top: 90%;\n        left: 50%;\n        margin-left: -15px;\n        border-width: 13px;\n        border-style: solid;\n        border-color: transparent transparent white  transparent; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-img > img {\n        width: 65px;\n        border-radius: 50% !important; }\n    .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info {\n      margin: 175px 0 0 -9px;\n      color: white;\n      display: inline-block; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-name {\n        display: block;\n        font-size: 15px; }\n      .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time {\n        font-size: 13px;\n        display: block; }\n        .mt-widget-2 .mt-head .mt-head-user .mt-head-user-info .mt-user-time > i {\n          position: relative;\n          top: 1px;\n          font-size: 13px; }\n  .mt-widget-2 .mt-body {\n    padding-top: 160px;\n    text-align: center; }\n    .mt-widget-2 .mt-body .mt-body-title {\n      margin-top: 130px;\n      font-weight: 600;\n      font-size: 16px; }\n    .mt-widget-2 .mt-body .mt-body-description {\n      margin-top: 10px;\n      display: inline-block;\n      color: #666666;\n      font-size: 13px;\n      padding: 0 10px; }\n    .mt-widget-2 .mt-body .mt-body-stats {\n      padding: 0; }\n      .mt-widget-2 .mt-body .mt-body-stats:before, .mt-widget-2 .mt-body .mt-body-stats:after {\n        content: \" \";\n        display: table; }\n      .mt-widget-2 .mt-body .mt-body-stats:after {\n        clear: both; }\n      .mt-widget-2 .mt-body .mt-body-stats > li {\n        margin: 15px;\n        list-style: none;\n        display: inline-block; }\n    .mt-widget-2 .mt-body .mt-body-actions {\n      border-top: 1px solid #e7ecf1; }\n      .mt-widget-2 .mt-body .mt-body-actions > i {\n        font-size: 18px; }\n      .mt-widget-2 .mt-body .mt-body-actions .btn {\n        font-size: 14px;\n        border-right: 1px solid #e7ecf1;\n        padding: 12px 0 12px 0;\n        text-align: center; }\n        .mt-widget-2 .mt-body .mt-body-actions .btn:last-child {\n          border: 0; }\n\n.mt-widget-3 {\n  border: 1px solid #e7ecf1; }\n  .mt-widget-3 .mt-head {\n    background-color: #5DC9E6;\n    margin-bottom: 20px;\n    color: white;\n    padding: 15px 0; }\n    .mt-widget-3 .mt-head .mt-head-icon {\n      font-size: 35px;\n      text-align: center;\n      padding-top: 20px;\n      margin-bottom: 10px; }\n    .mt-widget-3 .mt-head .mt-head-desc {\n      margin-left: 10px;\n      margin-right: 10px;\n      text-align: center;\n      color: #fff;\n      opacity: 0.8 ;\n      filter: alpha(opacity=80) ; }\n    .mt-widget-3 .mt-head .mt-head-date {\n      text-align: center;\n      margin-top: 20px;\n      display: block;\n      color: #f2f2f2; }\n    .mt-widget-3 .mt-head .mt-head-button {\n      margin: 10px 0;\n      text-align: center;\n      padding: 20px; }\n      .mt-widget-3 .mt-head .mt-head-button > button {\n        width: 90px; }\n  .mt-widget-3 .mt-body-actions-icons .btn-group {\n    margin-bottom: 20px; }\n    .mt-widget-3 .mt-body-actions-icons .btn-group .mt-icon {\n      display: block;\n      position: relative;\n      padding: 5px;\n      font-size: 15px; }\n  .mt-widget-3 .mt-body-actions-icons .btn {\n    border-right: 1px solid #e7ecf1;\n    font-size: 11px;\n    text-align: center;\n    padding: 0; }\n    .mt-widget-3 .mt-body-actions-icons .btn:last-child {\n      border-right: 0; }\n\n.mt-widget-4 {\n  min-height: 250px;\n  color: white;\n  background-color: #26C0B8; }\n  .mt-widget-4 .mt-img-container {\n    position: relative; }\n    .mt-widget-4 .mt-img-container > img {\n      height: 250px;\n      width: 100%; }\n  .mt-widget-4 .mt-container {\n    width: 150px;\n    background-color: #26C0B8;\n    min-height: 250px;\n    position: absolute;\n    right: 15px;\n    top: 0; }\n    .mt-widget-4 .mt-container .mt-head-title {\n      text-align: center;\n      margin-top: 20px;\n      padding: 10px; }\n    .mt-widget-4 .mt-container .mt-body-icons {\n      margin-top: 30px;\n      text-align: center; }\n      .mt-widget-4 .mt-container .mt-body-icons > a {\n        color: #e6e6e6;\n        display: inline-block;\n        padding: 10px;\n        font-size: 17px; }\n        .mt-widget-4 .mt-container .mt-body-icons > a:hover {\n          color: #fff; }\n    .mt-widget-4 .mt-container .mt-footer-button {\n      margin-top: 30px;\n      position: absolute;\n      right: 0; }\n      .mt-widget-4 .mt-container .mt-footer-button > .btn {\n        width: 90px;\n        border-top-right-radius: 0 !important;\n        border-bottom-right-radius: 0 !important;\n        border: none !important; }\n\nbody.stop-scrolling {\n  height: auto !important;\n  overflow: visible !important; }\n\n.sweet-alert .sa-icon.sa-success .sa-placeholder,\n.sweet-alert .sa-icon {\n  border-radius: 50% !important; }\n\n.sweet-alert h2 {\n  font-size: 20px;\n  padding-top: 5px; }\n\n.sweet-alert p {\n  font-size: 14px; }\n\n.sweet-alert .btn {\n  font-size: 14px;\n  padding: 8px 14px; }\n  .sweet-alert .btn:focus {\n    border-color: transparent; }\n\n.mt-sweetalert {\n  margin: 0 5px 5px 0; }\n  .mt-sweetalert:hover {\n    cursor: pointer; }\n  .mt-sweetalert.mt-italic {\n    font-style: italic; }\n  .mt-sweetalert:focus {\n    outline: none !important;\n    border: 1px solid transparent; }\n\n.mt-sweetalert-title {\n  margin: 30px 0 15px 0; }\n\n.mt-clipboard-container {\n  padding: 20px; }\n  .mt-clipboard-container .mt-clipboard {\n    margin: 10px 10px 10px 0; }\n\n.mt-multiselect {\n  text-align: left;\n  position: relative; }\n  .mt-multiselect .caret {\n    position: absolute;\n    top: 50%;\n    margin-top: -2px;\n    right: 15px; }\n  .mt-multiselect.mt-noicon .caret {\n    display: none; }\n\n.mt-code {\n  padding: 3px;\n  color: #E43A45;\n  border-radius: 4px !important;\n  display: inline;\n  word-wrap: normal; }\n\n.caption-desc {\n  font-size: 13px;\n  margin-top: 0.5em;\n  line-height: 2.3em; }\n\n.mt-element-step .row {\n  margin: 0; }\n\n.mt-element-step .step-default .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-default .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px; }\n\n.mt-element-step .step-default .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-default .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-default .active .mt-step-title,\n  .mt-element-step .step-default .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-default .done .mt-step-title,\n  .mt-element-step .step-default .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-default .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-default .error .mt-step-title,\n  .mt-element-step .step-default .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px; }\n\n.mt-element-step .step-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-number {\n    color: #32c5d2 !important; }\n  .mt-element-step .step-thin .active .mt-step-title,\n  .mt-element-step .step-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-number {\n    color: #26C281 !important; }\n  .mt-element-step .step-thin .done .mt-step-title,\n  .mt-element-step .step-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-number {\n    color: #E7505A !important; }\n  .mt-element-step .step-thin .error .mt-step-title,\n  .mt-element-step .step-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center;\n  height: 160px; }\n\n.mt-element-step .step-background .mt-step-number {\n  font-size: 200px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .mt-step-content {\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background .active .mt-step-title,\n  .mt-element-step .step-background .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background .done .mt-step-title,\n  .mt-element-step .step-background .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background .error .mt-step-title,\n  .mt-element-step .step-background .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .mt-step-col {\n  padding-top: 15px;\n  padding-bottom: 15px;\n  text-align: center; }\n\n.mt-element-step .step-background-thin .mt-step-number {\n  font-size: 120px;\n  position: absolute;\n  bottom: 0;\n  right: 0;\n  line-height: 0.79em;\n  color: #dae1e4;\n  z-index: 4; }\n\n.mt-element-step .step-background-thin .mt-step-title {\n  font-size: 30px;\n  font-weight: 100;\n  text-align: right;\n  padding-right: 25%;\n  z-index: 5;\n  position: relative; }\n\n.mt-element-step .step-background-thin .mt-step-content {\n  text-align: right;\n  position: relative;\n  padding-right: 25%;\n  z-index: 5; }\n\n.mt-element-step .step-background-thin .active {\n  background-color: #32c5d2 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-number {\n    color: #2ab4c0 !important; }\n  .mt-element-step .step-background-thin .active .mt-step-title,\n  .mt-element-step .step-background-thin .active .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .done {\n  background-color: #26C281 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-number {\n    color: #22ad73 !important; }\n  .mt-element-step .step-background-thin .done .mt-step-title,\n  .mt-element-step .step-background-thin .done .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-background-thin .error {\n  background-color: #E7505A !important; }\n  .mt-element-step .step-background-thin .error .mt-step-number {\n    color: #e43a45 !important; }\n  .mt-element-step .step-background-thin .error .mt-step-title,\n  .mt-element-step .step-background-thin .error .mt-step-content {\n    color: #fff !important; }\n\n.mt-element-step .step-no-background .mt-step-col {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  text-align: center; }\n\n.mt-element-step .step-no-background .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 3px 14px;\n  margin-bottom: 20px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background .mt-step-title {\n  font-size: 30px;\n  font-weight: 100; }\n\n.mt-element-step .step-no-background .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .active .mt-step-title,\n.mt-element-step .step-no-background .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .done .mt-step-title,\n.mt-element-step .step-no-background .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background .error .mt-step-title,\n.mt-element-step .step-no-background .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .mt-step-col {\n  padding-top: 10px;\n  padding-bottom: 10px; }\n\n.mt-element-step .step-no-background-thin .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  float: left;\n  margin: auto;\n  padding: 3px 14px;\n  border: 1px solid;\n  border-color: #e5e5e5; }\n\n.mt-element-step .step-no-background-thin .mt-step-title {\n  font-size: 24px;\n  font-weight: 100;\n  padding-left: 60px;\n  margin-top: -4px; }\n\n.mt-element-step .step-no-background-thin .mt-step-content {\n  padding-left: 60px;\n  margin-top: -5px; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .active .mt-step-title,\n.mt-element-step .step-no-background-thin .active .mt-step-content {\n  color: #32c5d2 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .done .mt-step-title,\n.mt-element-step .step-no-background-thin .done .mt-step-content {\n  color: #26C281 !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-no-background-thin .error .mt-step-title,\n.mt-element-step .step-no-background-thin .error .mt-step-content {\n  color: #E7505A !important;\n  font-weight: 700; }\n\n.mt-element-step .step-line .mt-step-col {\n  padding: 30px 0;\n  text-align: center; }\n\n.mt-element-step .step-line .mt-step-number {\n  font-size: 26px;\n  border-radius: 50% !important;\n  display: inline-block;\n  margin: auto;\n  padding: 9px;\n  margin-bottom: 5px;\n  border: 3px solid;\n  border-color: #e5e5e5;\n  position: relative;\n  z-index: 5;\n  height: 60px;\n  width: 60px;\n  text-align: center; }\n  .mt-element-step .step-line .mt-step-number > i {\n    position: relative;\n    top: 50%;\n    transform: translateY(-50%); }\n/*     transform: translateY(-120%); */\n\n.mt-element-step .step-line .mt-step-title {\n  font-size: 20px;\n  font-weight: 400;\n  position: relative; }\n  .mt-element-step .step-line .mt-step-title:after {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    left: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: '';\n    height: 3px;\n    width: 50%;\n    position: absolute;\n    background-color: #e5e5e5;\n    top: -32px;\n    right: 50%;\n    z-index: 4;\n    transform: translateY(-100%); }\n\n.mt-element-step .step-line .first .mt-step-title:before {\n  content: none; }\n\n.mt-element-step .step-line .last .mt-step-title:after {\n  content: none; }\n\n.mt-element-step .step-line .active .mt-step-number {\n  color: #32c5d2 !important;\n  border-color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title,\n.mt-element-step .step-line .active .mt-step-content {\n  color: #32c5d2 !important; }\n\n.mt-element-step .step-line .active .mt-step-title:after, .mt-element-step .step-line .active .mt-step-title:before {\n  background-color: #32c5d2; }\n\n.mt-element-step .step-line .done .mt-step-number {\n  color: #26C281 !important;\n  border-color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title,\n.mt-element-step .step-line .done .mt-step-content {\n  color: #26C281 !important; }\n\n.mt-element-step .step-line .done .mt-step-title:after, .mt-element-step .step-line .done .mt-step-title:before {\n  background-color: #26C281; }\n\n.mt-element-step .step-line .error .mt-step-number {\n  color: #E7505A !important;\n  border-color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title,\n.mt-element-step .step-line .error .mt-step-content {\n  color: #E7505A !important; }\n\n.mt-element-step .step-line .error .mt-step-title:after, .mt-element-step .step-line .error .mt-step-title:before {\n  background-color: #E7505A; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .mt-element-step .step-line .mt-step-title:after {\n    content: none; }\n  .mt-element-step .step-line .mt-step-title:before {\n    content: none; } }\n\n.mt-element-list .list-default.mt-list-head {\n  background-position: center;\n  background-size: cover;\n  background-repeat: no-repeat;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-head .list-title {\n    margin: 0 0 0.7em 0;\n    font-size: 18px; }\n  .mt-element-list .list-default.mt-list-head .list-date {\n    font-size: 12px; }\n  .mt-element-list .list-default.mt-list-head .list-pending {\n    margin-bottom: 10px; }\n  .mt-element-list .list-default.mt-list-head .list-count {\n    display: inline-block;\n    padding: 3px 7px; }\n    .mt-element-list .list-default.mt-list-head .list-count.last {\n      margin-bottom: 0; }\n  .mt-element-list .list-default.mt-list-head .list-label {\n    display: inline-block;\n    font-size: 12px; }\n\n.mt-element-list .list-default.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-default.mt-list-container .mt-list-title {\n    padding-bottom: 15px;\n    font-size: 14px;\n    font-weight: 700; }\n  .mt-element-list .list-default.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-default.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 25px 0;\n      min-height: 45px; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container {\n        border: 1px solid;\n        border-color: #e7ecf1;\n        border-radius: 50% !important;\n        padding: 0.9em;\n        float: left;\n        width: 45px;\n        height: 45px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          border-color: #26C281; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin-top: 0;\n          margin-bottom: 5px;\n          font-size: 16px; }\n          .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n        .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-item-content > p {\n          margin: 0; }\n      .mt-element-list .list-default.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-default.ext-1.mt-list-container {\n  padding: 15px 0 0 0; }\n  .mt-element-list .list-default.ext-1.mt-list-container .mt-list-title {\n    padding: 0 15px 15px 15px; }\n  .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #2F353B;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n    .mt-element-list .list-default.ext-1.mt-list-container ul > .mt-list-item > .list-icon-container {\n      border: none; }\n\n.mt-element-list .list-default.group .list-toggle-container:hover, .mt-element-list .list-default.group .list-toggle-container:focus, .mt-element-list .list-default.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-default.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #2F353B;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-default.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-simple.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 14px;\n        float: left; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a {\n          color: #34495e; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container > a:hover {\n            color: #26C281;\n            text-decoration: none; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done {\n          color: #26C281; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a {\n            color: #26C281; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-icon-container.done > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 75px 0 60px; }\n        .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px; }\n          .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #26C281;\n              text-decoration: none; }\n      .mt-element-list .list-simple.mt-list-container ul > .mt-list-item > .list-datetime {\n        text-align: right;\n        float: right;\n        width: 60px; }\n\n.mt-element-list .list-simple.mt-list-head {\n  padding: 15px; }\n  .mt-element-list .list-simple.mt-list-head .list-title {\n    margin: 0;\n    padding-right: 85px; }\n  .mt-element-list .list-simple.mt-list-head .list-date {\n    font-size: 12px;\n    opacity: 0.8;\n    float: right;\n    width: 75px; }\n\n.mt-element-list .list-simple.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px;\n    border-left: 3px solid;\n    border-color: #34495e;\n    border-bottom-color: #e7ecf1; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done {\n      border-color: #26C281;\n      border-bottom-color: #e7ecf1; }\n      .mt-element-list .list-simple.ext-1.mt-list-container ul > .mt-list-item.done:hover {\n        background-color: #96ebc8; }\n\n.mt-element-list .list-simple.group .list-toggle-container:hover, .mt-element-list .list-simple.group .list-toggle-container:focus, .mt-element-list .list-simple.group .list-toggle-container:active {\n  text-decoration: none; }\n\n.mt-element-list .list-simple.group .list-toggle-container .list-toggle {\n  padding: 15px;\n  background-color: #34495e;\n  font-weight: 700;\n  color: #fff;\n  text-decoration: none; }\n  .mt-element-list .list-simple.group .list-toggle-container .list-toggle.done {\n    background-color: #26C281; }\n\n.mt-element-list .list-news.mt-list-head {\n  padding: 15px;\n  text-align: center; }\n  .mt-element-list .list-news.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-news.mt-list-head .badge {\n    margin-top: 5px; }\n\n.mt-element-list .list-news.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  padding: 15px 0; }\n  .mt-element-list .list-news.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0; }\n    .mt-element-list .list-news.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:first-child {\n        padding-top: 0; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item:last-child {\n        padding-bottom: 0;\n        border: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-news.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-news.ext-1.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-1.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-1 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-1 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-1.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-1.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-news.ext-2.mt-list-head {\n  position: relative;\n  text-align: left; }\n  .mt-element-list .list-news.ext-2.mt-list-head .list-count {\n    position: absolute;\n    right: 0;\n    top: 0;\n    height: 100%;\n    padding: 19px; }\n\n.mt-element-list .list-news.ext-2 .list-thumb {\n  width: 80px;\n  height: 80px;\n  overflow: hidden;\n  float: left; }\n  .mt-element-list .list-news.ext-2 .list-thumb img {\n    width: 100%; }\n\n.mt-element-list .list-news.ext-2.mt-list-container {\n  padding: 0; }\n  .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item {\n    padding: 15px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-datetime {\n      padding-left: 90px; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content {\n      padding-left: 90px; }\n      .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n        font-size: 16px; }\n        .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n          color: #F2784B; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:hover {\n      background-color: #e5e5e5; }\n    .mt-element-list .list-news.ext-2.mt-list-container ul > .mt-list-item:last-child {\n      padding-bottom: 15px; }\n\n.mt-element-list .list-todo.mt-list-head {\n  padding: 15px;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-head .list-title {\n    margin: 0; }\n  .mt-element-list .list-todo.mt-list-head .list-head-count {\n    margin-top: 5px; }\n    .mt-element-list .list-todo.mt-list-head .list-head-count > .list-head-count-item {\n      display: inline-block;\n      margin-right: 15px; }\n  .mt-element-list .list-todo.mt-list-head .list-count {\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 29px;\n    font-size: 16px; }\n  .mt-element-list .list-todo.mt-list-head a {\n    color: #fff; }\n    .mt-element-list .list-todo.mt-list-head a:hover {\n      text-decoration: none; }\n\n.mt-element-list .list-todo.mt-list-container {\n  border-left: 1px solid;\n  border-right: 1px solid;\n  border-bottom: 1px solid;\n  border-color: #e7ecf1;\n  position: relative; }\n  .mt-element-list .list-todo.mt-list-container .list-todo-line {\n    position: absolute;\n    z-index: 1;\n    height: 100%;\n    width: 1px;\n    top: 0;\n    left: 25px;\n    border-left: 1px solid;\n    border-color: #e7ecf1; }\n  .mt-element-list .list-todo.mt-list-container ul {\n    margin-bottom: 0;\n    padding: 0;\n    position: relative;\n    z-index: 5; }\n    .mt-element-list .list-todo.mt-list-container ul > .mt-list-item {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-bottom-style: dashed;\n      border-color: #e7ecf1;\n      padding: 15px;\n      position: relative; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item:last-child {\n        border: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-icon {\n        display: inline-block;\n        margin-top: 0.7em;\n        padding: 0.7em 0;\n        vertical-align: top; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item {\n        margin-left: 15px;\n        display: inline-block;\n        vertical-align: top;\n        width: 90%;\n        position: relative; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item:after {\n          right: 100%;\n          top: 50%;\n          border: solid transparent;\n          content: \" \";\n          height: 0;\n          width: 0;\n          position: absolute;\n          pointer-events: none;\n          border-color: rgba(47, 53, 59, 0);\n          border-right-color: #2f353b;\n          border-width: 8px;\n          top: 18px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:hover, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:focus, .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container:active {\n          text-decoration: none; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle {\n          padding: 15px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item > .list-toggle-container .list-toggle > .list-toggle-title {\n            display: inline-block; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list {\n          border: 1px solid;\n          border-color: #e7ecf1;\n          padding: 0;\n          margin: 0;\n          position: relative;\n          border-top: none;\n          border-bottom: none; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item {\n            list-style: none;\n            padding: 15px;\n            border-bottom: 1px solid;\n            border-color: #e7ecf1; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item a:hover {\n                text-decoration: none;\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item:last-child {\n              border-bottom: none; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-icon {\n              float: left; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content {\n              padding: 0 45px 0 35px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > h4 {\n                margin-top: 0;\n                font-size: 14px; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-content > p {\n                font-size: 13px;\n                margin: 0; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status {\n              float: right; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status a {\n                color: #e5e5e5; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .done:hover {\n                color: #26C281; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item > .task-status .pending:hover {\n                color: #e43a45; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-list-item.done > .task-status .done {\n              color: #26C281; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer {\n            padding: 15px;\n            text-align: center; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a {\n              color: #2f353b; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a:hover {\n                text-decoration: none; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-trash:hover {\n                color: #e43a45; }\n              .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-todo-item .task-list .task-footer a.task-add:hover {\n                color: #26C281; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container {\n        font-size: 20px;\n        position: absolute;\n        right: 5px;\n        top: 50%;\n        margin-top: -10px; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a {\n          color: #2f353b; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-icon-container a:hover {\n            color: #32c5d2; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content {\n        padding: 0 25px 0 0; }\n        .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 {\n          margin: 0;\n          font-size: 18px;\n          margin-bottom: 10px; }\n          .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a {\n            color: #34495e; }\n            .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-item-content > h3 > a:hover {\n              color: #32c5d2;\n              text-decoration: none; }\n      .mt-element-list .list-todo.mt-list-container ul > .mt-list-item > .list-datetime {\n        margin-bottom: 10px; }\n\n.mt-element-list .list-default.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.white .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.white.ext-1 .badge {\n    background-color: #e6e6e6; }\n  .mt-element-list .list-default.mt-list-head.white .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.white .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.white {\n  background-color: #ffffff;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.white {\n  background-color: #ffffff;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.white:hover {\n    background-color: #f2f2f2; }\n\n.mt-element-list .list-todo .list-todo-line.white {\n  border-color: #ffffff; }\n\n.mt-element-list .list-todo .list-todo-item.white:after {\n  border-right-color: #ffffff !important; }\n\n.mt-element-list .list-todo .list-todo-item.white .list-toggle {\n  background: #ffffff;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.white .list-toggle > .badge {\n    color: #ffffff;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-default.mt-list-head.default .badge {\n    background-color: white;\n    color: #666; }\n  .mt-element-list .list-default.mt-list-head.default.ext-1 .badge {\n    background-color: #c2cad8; }\n  .mt-element-list .list-default.mt-list-head.default .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.default .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.default {\n  background-color: #e1e5ec;\n  color: #666; }\n\n.mt-element-list .list-todo .list-count.default {\n  background-color: #e1e5ec;\n  color: #666; }\n  .mt-element-list .list-todo .list-count.default:hover {\n    background-color: #d1d7e2; }\n\n.mt-element-list .list-todo .list-todo-line.default {\n  border-color: #e1e5ec; }\n\n.mt-element-list .list-todo .list-todo-item.default:after {\n  border-right-color: #e1e5ec !important; }\n\n.mt-element-list .list-todo .list-todo-item.default .list-toggle {\n  background: #e1e5ec;\n  color: #666 !important; }\n  .mt-element-list .list-todo .list-todo-item.default .list-toggle > .badge {\n    color: #e1e5ec;\n    background: #666; }\n\n.mt-element-list .list-default.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark .badge {\n    background-color: #464f57;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.dark.ext-1 .badge {\n    background-color: #181c1f; }\n  .mt-element-list .list-default.mt-list-head.dark .list-label {\n    color: #acb5bd; }\n  .mt-element-list .list-default.mt-list-head.dark .list-date {\n    color: #acb5bd; }\n\n.mt-element-list .list-todo.mt-list-head.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.dark {\n  background-color: #2f353b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.dark:hover {\n    background-color: #24282d; }\n\n.mt-element-list .list-todo .list-todo-line.dark {\n  border-color: #2f353b; }\n\n.mt-element-list .list-todo .list-todo-item.dark:after {\n  border-right-color: #2f353b !important; }\n\n.mt-element-list .list-todo .list-todo-item.dark .list-toggle {\n  background: #2f353b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.dark .list-toggle > .badge {\n    color: #2f353b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue .badge {\n    background-color: #60aee4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue.ext-1 .badge {\n    background-color: #217ebd; }\n  .mt-element-list .list-default.mt-list-head.blue .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue {\n  background-color: #3598dc;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue:hover {\n    background-color: #258cd3; }\n\n.mt-element-list .list-todo .list-todo-line.blue {\n  border-color: #3598dc; }\n\n.mt-element-list .list-todo .list-todo-item.blue:after {\n  border-right-color: #3598dc !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue .list-toggle {\n  background: #3598dc;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue .list-toggle > .badge {\n    color: #3598dc;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .badge {\n    background-color: #7ca7cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-madison.ext-1 .badge {\n    background-color: #3f74a3; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-madison .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-madison {\n  background-color: #578ebe;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-madison:hover {\n    background-color: #4682b5; }\n\n.mt-element-list .list-todo .list-todo-line.blue-madison {\n  border-color: #578ebe; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-madison .list-toggle > .badge {\n    color: #578ebe;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .badge {\n    background-color: #3e5871;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray.ext-1 .badge {\n    background-color: #1a252f; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-label {\n    color: #aabed1; }\n  .mt-element-list .list-default.mt-list-head.blue-chambray .list-date {\n    color: #aabed1; }\n\n.mt-element-list .list-todo.mt-list-head.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-chambray {\n  background-color: #2C3E50;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-chambray:hover {\n    background-color: #233140; }\n\n.mt-element-list .list-todo .list-todo-line.blue-chambray {\n  border-color: #2C3E50; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-chambray .list-toggle > .badge {\n    color: #2C3E50;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .badge {\n    background-color: #344b60;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay.ext-1 .badge {\n    background-color: #10171e; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-label {\n    color: #98b1c8; }\n  .mt-element-list .list-default.mt-list-head.blue-ebonyclay .list-date {\n    color: #98b1c8; }\n\n.mt-element-list .list-todo.mt-list-head.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-ebonyclay {\n  background-color: #22313F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-ebonyclay:hover {\n    background-color: #19242e; }\n\n.mt-element-list .list-todo .list-todo-line.blue-ebonyclay {\n  border-color: #22313F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-ebonyclay .list-toggle > .badge {\n    color: #22313F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .badge {\n    background-color: #869ab3;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki.ext-1 .badge {\n    background-color: #526781; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-hoki .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-hoki {\n  background-color: #67809F;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-hoki:hover {\n    background-color: #5c7391; }\n\n.mt-element-list .list-todo .list-todo-line.blue-hoki {\n  border-color: #67809F; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-hoki .list-toggle > .badge {\n    color: #67809F;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .badge {\n    background-color: #7093cc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-steel.ext-1 .badge {\n    background-color: #395f9d; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-steel {\n  background-color: #4B77BE;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-steel:hover {\n    background-color: #406bb0; }\n\n.mt-element-list .list-todo .list-todo-line.blue-steel {\n  border-color: #4B77BE; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-steel .list-toggle > .badge {\n    color: #4B77BE;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .badge {\n    background-color: #71a0c7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-soft.ext-1 .badge {\n    background-color: #3b6d97; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-soft {\n  background-color: #4c87b9;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-soft:hover {\n    background-color: #427aa9; }\n\n.mt-element-list .list-todo .list-todo-line.blue-soft {\n  border-color: #4c87b9; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-soft .list-toggle > .badge {\n    color: #4c87b9;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .badge {\n    background-color: #788da4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-dark.ext-1 .badge {\n    background-color: #495a6d; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-label {\n    color: #f2f4f6; }\n  .mt-element-list .list-default.mt-list-head.blue-dark .list-date {\n    color: #f2f4f6; }\n\n.mt-element-list .list-todo.mt-list-head.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-dark {\n  background-color: #5e738b;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-dark:hover {\n    background-color: #54667c; }\n\n.mt-element-list .list-todo .list-todo-line.blue-dark {\n  border-color: #5e738b; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-dark .list-toggle > .badge {\n    color: #5e738b;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .badge {\n    background-color: #84b3dc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp.ext-1 .badge {\n    background-color: #3782c3; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-sharp {\n  background-color: #5C9BD1;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-sharp:hover {\n    background-color: #488fcb; }\n\n.mt-element-list .list-todo .list-todo-line.blue-sharp {\n  border-color: #5C9BD1; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-sharp .list-toggle > .badge {\n    color: #5C9BD1;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .badge {\n    background-color: #b2bac7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo.ext-1 .badge {\n    background-color: #76869d; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.blue-oleo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.blue-oleo {\n  background-color: #94A0B2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.blue-oleo:hover {\n    background-color: #8593a7; }\n\n.mt-element-list .list-todo .list-todo-line.blue-oleo {\n  border-color: #94A0B2; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.blue-oleo .list-toggle > .badge {\n    color: #94A0B2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green .badge {\n    background-color: #5cd1db;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green.ext-1 .badge {\n    background-color: #26a1ab; }\n  .mt-element-list .list-default.mt-list-head.green .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green {\n  background-color: #32c5d2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green:hover {\n    background-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-line.green {\n  border-color: #32c5d2; }\n\n.mt-element-list .list-todo .list-todo-item.green:after {\n  border-right-color: #32c5d2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green .list-toggle {\n  background: #32c5d2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green .list-toggle > .badge {\n    color: #32c5d2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .badge {\n    background-color: #2ae0bb;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-meadow.ext-1 .badge {\n    background-color: #158f76; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-label {\n    color: #dcfaf4; }\n  .mt-element-list .list-default.mt-list-head.green-meadow .list-date {\n    color: #dcfaf4; }\n\n.mt-element-list .list-todo.mt-list-head.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-meadow {\n  background-color: #1BBC9B;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-meadow:hover {\n    background-color: #18a689; }\n\n.mt-element-list .list-todo .list-todo-line.green-meadow {\n  border-color: #1BBC9B; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-meadow .list-toggle > .badge {\n    color: #1BBC9B;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .badge {\n    background-color: #22cfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen.ext-1 .badge {\n    background-color: #147772; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-label {\n    color: #c7f6f3; }\n  .mt-element-list .list-default.mt-list-head.green-seagreen .list-date {\n    color: #c7f6f3; }\n\n.mt-element-list .list-todo.mt-list-head.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-seagreen {\n  background-color: #1BA39C;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-seagreen:hover {\n    background-color: #178d87; }\n\n.mt-element-list .list-todo .list-todo-line.green-seagreen {\n  border-color: #1BA39C; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-seagreen .list-toggle > .badge {\n    color: #1BA39C;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .badge {\n    background-color: #61dfc6;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise.ext-1 .badge {\n    background-color: #24b699; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-turquoise .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-turquoise {\n  background-color: #36D7B7;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-turquoise:hover {\n    background-color: #28cbab; }\n\n.mt-element-list .list-todo .list-todo-line.green-turquoise {\n  border-color: #36D7B7; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-turquoise .list-toggle > .badge {\n    color: #36D7B7;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze .badge {\n    background-color: #67c6bf;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-haze.ext-1 .badge {\n    background-color: #36918b; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-label {\n    color: #fbfefd; }\n  .mt-element-list .list-default.mt-list-head.green-haze .list-date {\n    color: #fbfefd; }\n\n.mt-element-list .list-todo.mt-list-head.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-haze {\n  background-color: #44b6ae;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-haze:hover {\n    background-color: #3da39c; }\n\n.mt-element-list .list-todo .list-todo-line.green-haze {\n  border-color: #44b6ae; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-haze .list-toggle > .badge {\n    color: #44b6ae;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .badge {\n    background-color: #41da9a;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-jungle.ext-1 .badge {\n    background-color: #1e9765; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-label {\n    color: #ecfbf5; }\n  .mt-element-list .list-default.mt-list-head.green-jungle .list-date {\n    color: #ecfbf5; }\n\n.mt-element-list .list-todo.mt-list-head.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-jungle {\n  background-color: #26C281;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-jungle:hover {\n    background-color: #22ad73; }\n\n.mt-element-list .list-todo .list-todo-line.green-jungle {\n  border-color: #26C281; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle {\n  background: #26C281;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-jungle .list-toggle > .badge {\n    color: #26C281;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft .badge {\n    background-color: #5bc2bc;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-soft.ext-1 .badge {\n    background-color: #318680; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-label {\n    color: #f0f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-soft .list-date {\n    color: #f0f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-soft {\n  background-color: #3faba4;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-soft:hover {\n    background-color: #389892; }\n\n.mt-element-list .list-todo .list-todo-line.green-soft {\n  border-color: #3faba4; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-soft .list-toggle {\n  background: #3faba4;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-soft .list-toggle > .badge {\n    color: #3faba4;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark .badge {\n    background-color: #71c2b5;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-dark.ext-1 .badge {\n    background-color: #3d9082; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.green-dark .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-dark {\n  background-color: #4DB3A2;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-dark:hover {\n    background-color: #45a292; }\n\n.mt-element-list .list-todo .list-todo-line.green-dark {\n  border-color: #4DB3A2; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-dark .list-toggle > .badge {\n    color: #4DB3A2;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .badge {\n    background-color: #46cbd7;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-sharp.ext-1 .badge {\n    background-color: #218d96; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-label {\n    color: #eefafb; }\n  .mt-element-list .list-default.mt-list-head.green-sharp .list-date {\n    color: #eefafb; }\n\n.mt-element-list .list-todo.mt-list-head.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-sharp {\n  background-color: #2ab4c0;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-sharp:hover {\n    background-color: #25a0ab; }\n\n.mt-element-list .list-todo .list-todo-line.green-sharp {\n  border-color: #2ab4c0; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-sharp .list-toggle > .badge {\n    color: #2ab4c0;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel .badge {\n    background-color: #3ed1d4;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.green-steel.ext-1 .badge {\n    background-color: #208b8c; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-label {\n    color: #e5f9f9; }\n  .mt-element-list .list-default.mt-list-head.green-steel .list-date {\n    color: #e5f9f9; }\n\n.mt-element-list .list-todo.mt-list-head.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.green-steel {\n  background-color: #29b4b6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.green-steel:hover {\n    background-color: #249fa1; }\n\n.mt-element-list .list-todo .list-todo-line.green-steel {\n  border-color: #29b4b6; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.green-steel .list-toggle > .badge {\n    color: #29b4b6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey.ext-1 .badge {\n    background-color: #cccccc; }\n  .mt-element-list .list-default.mt-list-head.grey .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey {\n  background-color: #E5E5E5;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey:hover {\n    background-color: #d8d8d8; }\n\n.mt-element-list .list-todo .list-todo-line.grey {\n  border-color: #E5E5E5; }\n\n.mt-element-list .list-todo .list-todo-item.grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey .list-toggle {\n  background: #E5E5E5;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey .list-toggle > .badge {\n    color: #E5E5E5;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .badge {\n    background-color: white;\n    color: #80898e; }\n  .mt-element-list .list-default.mt-list-head.grey-steel.ext-1 .badge {\n    background-color: #cbd5da; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-steel .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n\n.mt-element-list .list-todo .list-count.grey-steel {\n  background-color: #e9edef;\n  color: #80898e; }\n  .mt-element-list .list-todo .list-count.grey-steel:hover {\n    background-color: #dae1e4; }\n\n.mt-element-list .list-todo .list-todo-line.grey-steel {\n  border-color: #e9edef; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef;\n  color: #80898e !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-steel .list-toggle > .badge {\n    color: #e9edef;\n    background: #80898e; }\n\n.mt-element-list .list-default.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .badge {\n    background-color: white;\n    color: #333333; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra.ext-1 .badge {\n    background-color: #e1e1e1; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cararra .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n\n.mt-element-list .list-todo .list-count.grey-cararra {\n  background-color: #fafafa;\n  color: #333333; }\n  .mt-element-list .list-todo .list-count.grey-cararra:hover {\n    background-color: #ededed; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cararra {\n  border-color: #fafafa; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa;\n  color: #333333 !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cararra .list-toggle > .badge {\n    color: #fafafa;\n    background: #333333; }\n\n.mt-element-list .list-default.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .badge {\n    background-color: #6f6f6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery.ext-1 .badge {\n    background-color: #3c3c3c; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-label {\n    color: #d5d5d5; }\n  .mt-element-list .list-default.mt-list-head.grey-gallery .list-date {\n    color: #d5d5d5; }\n\n.mt-element-list .list-todo.mt-list-head.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.grey-gallery {\n  background-color: #555555;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.grey-gallery:hover {\n    background-color: #484848; }\n\n.mt-element-list .list-todo .list-todo-line.grey-gallery {\n  border-color: #555555; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle {\n  background: #555555;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-gallery .list-toggle > .badge {\n    color: #555555;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .badge {\n    background-color: #b1bdbd;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade.ext-1 .badge {\n    background-color: #798d8f; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-cascade .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-cascade {\n  background-color: #95A5A6;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-cascade:hover {\n    background-color: #87999a; }\n\n.mt-element-list .list-todo .list-todo-line.grey-cascade {\n  border-color: #95A5A6; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-cascade .list-toggle > .badge {\n    color: #95A5A6;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .badge {\n    background-color: #d9d9d9;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-silver.ext-1 .badge {\n    background-color: #a6a6a6; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-silver .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-silver {\n  background-color: #BFBFBF;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-silver:hover {\n    background-color: #b2b2b2; }\n\n.mt-element-list .list-todo .list-todo-line.grey-silver {\n  border-color: #BFBFBF; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-silver .list-toggle > .badge {\n    color: #BFBFBF;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .badge {\n    background-color: #cacfd8;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa.ext-1 .badge {\n    background-color: #8e9bae; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salsa .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salsa {\n  background-color: #ACB5C3;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salsa:hover {\n    background-color: #9da8b8; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salsa {\n  border-color: #ACB5C3; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salsa .list-toggle > .badge {\n    color: #ACB5C3;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .badge {\n    background-color: #dde3e6;\n    color: #FAFCFB; }\n  .mt-element-list .list-default.mt-list-head.grey-salt.ext-1 .badge {\n    background-color: #a1b1bc; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.grey-salt .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n\n.mt-element-list .list-todo .list-count.grey-salt {\n  background-color: #bfcad1;\n  color: #FAFCFB; }\n  .mt-element-list .list-todo .list-count.grey-salt:hover {\n    background-color: #b0bec6; }\n\n.mt-element-list .list-todo .list-todo-line.grey-salt {\n  border-color: #bfcad1; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1;\n  color: #FAFCFB !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-salt .list-toggle > .badge {\n    color: #bfcad1;\n    background: #FAFCFB; }\n\n.mt-element-list .list-default.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .badge {\n    background-color: #697880;\n    color: #FFFFFF; }\n  .mt-element-list .list-default.mt-list-head.grey-mint.ext-1 .badge {\n    background-color: #3b4448; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-label {\n    color: #d7dcde; }\n  .mt-element-list .list-default.mt-list-head.grey-mint .list-date {\n    color: #d7dcde; }\n\n.mt-element-list .list-todo.mt-list-head.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n\n.mt-element-list .list-todo .list-count.grey-mint {\n  background-color: #525e64;\n  color: #FFFFFF; }\n  .mt-element-list .list-todo .list-count.grey-mint:hover {\n    background-color: #475156; }\n\n.mt-element-list .list-todo .list-todo-line.grey-mint {\n  border-color: #525e64; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle {\n  background: #525e64;\n  color: #FFFFFF !important; }\n  .mt-element-list .list-todo .list-todo-item.grey-mint .list-toggle > .badge {\n    color: #525e64;\n    background: #FFFFFF; }\n\n.mt-element-list .list-default.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red .badge {\n    background-color: #ed7d84;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red.ext-1 .badge {\n    background-color: #e12330; }\n  .mt-element-list .list-default.mt-list-head.red .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red {\n  background-color: #e7505a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red:hover {\n    background-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-line.red {\n  border-color: #e7505a; }\n\n.mt-element-list .list-todo .list-todo-item.red:after {\n  border-right-color: #e7505a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red .list-toggle {\n  background: #e7505a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red .list-toggle > .badge {\n    color: #e7505a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink .badge {\n    background-color: #eaabac;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-pink.ext-1 .badge {\n    background-color: #d6595a; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-pink .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-pink {\n  background-color: #E08283;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-pink:hover {\n    background-color: #db6e6f; }\n\n.mt-element-list .list-todo .list-todo-line.red-pink {\n  border-color: #E08283; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-pink .list-toggle {\n  background: #E08283;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-pink .list-toggle > .badge {\n    color: #E08283;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .badge {\n    background-color: #ea9595;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo.ext-1 .badge {\n    background-color: #da3f3f; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-sunglo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-sunglo {\n  background-color: #E26A6A;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-sunglo:hover {\n    background-color: #de5555; }\n\n.mt-element-list .list-todo .list-todo-line.red-sunglo {\n  border-color: #E26A6A; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-sunglo .list-toggle > .badge {\n    color: #E26A6A;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense .badge {\n    background-color: #ea8686;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-intense.ext-1 .badge {\n    background-color: #dc302e; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-intense {\n  background-color: #e35b5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-intense:hover {\n    background-color: #df4544; }\n\n.mt-element-list .list-todo .list-todo-line.red-intense {\n  border-color: #e35b5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-intense .list-toggle > .badge {\n    color: #e35b5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .badge {\n    background-color: #e9403b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird.ext-1 .badge {\n    background-color: #ab1813; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-label {\n    color: #fef3f2; }\n  .mt-element-list .list-default.mt-list-head.red-thunderbird .list-date {\n    color: #fef3f2; }\n\n.mt-element-list .list-todo.mt-list-head.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-thunderbird {\n  background-color: #D91E18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-thunderbird:hover {\n    background-color: #c21b15; }\n\n.mt-element-list .list-todo .list-todo-line.red-thunderbird {\n  border-color: #D91E18; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-thunderbird .list-toggle > .badge {\n    color: #D91E18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .badge {\n    background-color: #f37365;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo.ext-1 .badge {\n    background-color: #e02612; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-flamingo .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-flamingo {\n  background-color: #EF4836;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-flamingo:hover {\n    background-color: #ed321e; }\n\n.mt-element-list .list-todo .list-todo-line.red-flamingo {\n  border-color: #EF4836; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-flamingo .list-toggle > .badge {\n    color: #EF4836;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft .badge {\n    background-color: #db7c7c;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-soft.ext-1 .badge {\n    background-color: #bd3434; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-soft {\n  background-color: #d05454;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-soft:hover {\n    background-color: #cb4040; }\n\n.mt-element-list .list-todo .list-todo-line.red-soft {\n  border-color: #d05454; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-soft .list-toggle {\n  background: #d05454;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-soft .list-toggle > .badge {\n    color: #d05454;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze .badge {\n    background-color: #f6958a;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-haze.ext-1 .badge {\n    background-color: #f03f2a; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-haze {\n  background-color: #f36a5a;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-haze:hover {\n    background-color: #f15542; }\n\n.mt-element-list .list-todo .list-todo-line.red-haze {\n  border-color: #f36a5a; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-haze .list-toggle > .badge {\n    color: #f36a5a;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint .badge {\n    background-color: #ea676f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.red-mint.ext-1 .badge {\n    background-color: #cf1c28; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.red-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.red-mint {\n  background-color: #e43a45;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.red-mint:hover {\n    background-color: #e12430; }\n\n.mt-element-list .list-todo .list-todo-line.red-mint {\n  border-color: #e43a45; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.mt-element-list .list-todo .list-todo-item.red-mint .list-toggle {\n  background: #e43a45;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.red-mint .list-toggle > .badge {\n    color: #e43a45;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow .badge {\n    background-color: #d0b36e;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow.ext-1 .badge {\n    background-color: #a48334; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow {\n  background-color: #c49f47;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow:hover {\n    background-color: #b7923b; }\n\n.mt-element-list .list-todo .list-todo-line.yellow {\n  border-color: #c49f47; }\n\n.mt-element-list .list-todo .list-todo-item.yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow .list-toggle {\n  background: #c49f47;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow .list-toggle > .badge {\n    color: #c49f47;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .badge {\n    background-color: #fb9724;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold.ext-1 .badge {\n    background-color: #b66303; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-label {\n    color: #fff6ec; }\n  .mt-element-list .list-default.mt-list-head.yellow-gold .list-date {\n    color: #fff6ec; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-gold {\n  background-color: #E87E04;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-gold:hover {\n    background-color: #cf7004; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-gold {\n  border-color: #E87E04; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-gold .list-toggle > .badge {\n    color: #E87E04;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .badge {\n    background-color: #f59c7b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca.ext-1 .badge {\n    background-color: #ef541b; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-casablanca .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-casablanca {\n  background-color: #f2784b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-casablanca:hover {\n    background-color: #f06633; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-casablanca {\n  border-color: #f2784b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-casablanca .list-toggle > .badge {\n    color: #f2784b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .badge {\n    background-color: #ffd327;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta.ext-1 .badge {\n    background-color: #c09900; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-label {\n    color: #fffdf3; }\n  .mt-element-list .list-default.mt-list-head.yellow-crusta .list-date {\n    color: #fffdf3; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-crusta {\n  background-color: #f3c200;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-crusta:hover {\n    background-color: #daae00; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-crusta {\n  border-color: #f3c200; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-crusta .list-toggle > .badge {\n    color: #f3c200;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .badge {\n    background-color: #f9d549;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon.ext-1 .badge {\n    background-color: #d5ab07; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-lemon .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-lemon {\n  background-color: #F7CA18;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-lemon:hover {\n    background-color: #edbf08; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-lemon {\n  border-color: #F7CA18; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-lemon .list-toggle > .badge {\n    color: #F7CA18;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .badge {\n    background-color: #f7dc6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron.ext-1 .badge {\n    background-color: #f1c40f; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-saffron .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-saffron {\n  background-color: #F4D03F;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-saffron:hover {\n    background-color: #f3ca27; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-saffron {\n  border-color: #F4D03F; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-saffron .list-toggle > .badge {\n    color: #F4D03F;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .badge {\n    background-color: #d4da6f;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft.ext-1 .badge {\n    background-color: #adb52e; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-soft {\n  background-color: #c8d046;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-soft:hover {\n    background-color: #c1c933; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-soft {\n  border-color: #c8d046; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-soft .list-toggle > .badge {\n    color: #c8d046;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .badge {\n    background-color: #d3ce8b;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze.ext-1 .badge {\n    background-color: #b4ad44; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-haze .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-haze {\n  background-color: #c5bf66;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-haze:hover {\n    background-color: #beb754; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-haze {\n  border-color: #c5bf66; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-haze .list-toggle > .badge {\n    color: #c5bf66;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .badge {\n    background-color: #d3ca90;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint.ext-1 .badge {\n    background-color: #b6a747; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.yellow-mint .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.yellow-mint {\n  background-color: #c5b96b;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.yellow-mint:hover {\n    background-color: #beb059; }\n\n.mt-element-list .list-todo .list-todo-line.yellow-mint {\n  border-color: #c5b96b; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.yellow-mint .list-toggle > .badge {\n    color: #c5b96b;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-plum.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-plum .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-plum {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-plum:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-plum {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-plum .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .badge {\n    background-color: #d083f1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-medium.ext-1 .badge {\n    background-color: #ae27e7; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-medium .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-medium {\n  background-color: #BF55EC;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-medium:hover {\n    background-color: #b63ee9; }\n\n.mt-element-list .list-todo .list-todo-line.purple-medium {\n  border-color: #BF55EC; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-medium .list-toggle > .badge {\n    color: #BF55EC;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .badge {\n    background-color: #a563c1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-studio.ext-1 .badge {\n    background-color: #703688; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-label {\n    color: #f9f5fb; }\n  .mt-element-list .list-default.mt-list-head.purple-studio .list-date {\n    color: #f9f5fb; }\n\n.mt-element-list .list-todo.mt-list-head.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-studio {\n  background-color: #8E44AD;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-studio:hover {\n    background-color: #7f3d9b; }\n\n.mt-element-list .list-todo .list-todo-line.purple-studio {\n  border-color: #8E44AD; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-studio .list-toggle > .badge {\n    color: #8E44AD;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .badge {\n    background-color: #b07cc6;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria.ext-1 .badge {\n    background-color: #804399; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-wisteria .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-wisteria {\n  background-color: #9B59B6;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-wisteria:hover {\n    background-color: #8f4bab; }\n\n.mt-element-list .list-todo .list-todo-line.purple-wisteria {\n  border-color: #9B59B6; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-wisteria .list-toggle > .badge {\n    color: #9B59B6;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .badge {\n    background-color: #c217e1;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-seance.ext-1 .badge {\n    background-color: #720d85; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-label {\n    color: #f2cafa; }\n  .mt-element-list .list-default.mt-list-head.purple-seance .list-date {\n    color: #f2cafa; }\n\n.mt-element-list .list-todo.mt-list-head.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-seance {\n  background-color: #9A12B3;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-seance:hover {\n    background-color: #86109c; }\n\n.mt-element-list .list-todo .list-todo-line.purple-seance {\n  border-color: #9A12B3; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-seance .list-toggle > .badge {\n    color: #9A12B3;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .badge {\n    background-color: #a294bb;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-intense.ext-1 .badge {\n    background-color: #6d5b8e; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-intense .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-intense {\n  background-color: #8775a7;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-intense:hover {\n    background-color: #79659d; }\n\n.mt-element-list .list-todo .list-todo-line.purple-intense {\n  border-color: #8775a7; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-intense .list-toggle > .badge {\n    color: #8775a7;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .badge {\n    background-color: #9486ad;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp.ext-1 .badge {\n    background-color: #61527b; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-sharp .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-sharp {\n  background-color: #796799;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-sharp:hover {\n    background-color: #6d5d8a; }\n\n.mt-element-list .list-todo .list-todo-line.purple-sharp {\n  border-color: #796799; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle {\n  background: #796799;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-sharp .list-toggle > .badge {\n    color: #796799;\n    background: #ffffff; }\n\n.mt-element-list .list-default.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .badge {\n    background-color: #a396bd;\n    color: #ffffff; }\n  .mt-element-list .list-default.mt-list-head.purple-soft.ext-1 .badge {\n    background-color: #6e5c91; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-label {\n    color: white; }\n  .mt-element-list .list-default.mt-list-head.purple-soft .list-date {\n    color: white; }\n\n.mt-element-list .list-todo.mt-list-head.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n\n.mt-element-list .list-todo .list-count.purple-soft {\n  background-color: #8877a9;\n  color: #ffffff; }\n  .mt-element-list .list-todo .list-count.purple-soft:hover {\n    background-color: #7a679f; }\n\n.mt-element-list .list-todo .list-todo-line.purple-soft {\n  border-color: #8877a9; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n.mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9;\n  color: #ffffff !important; }\n  .mt-element-list .list-todo .list-todo-item.purple-soft .list-toggle > .badge {\n    color: #8877a9;\n    background: #ffffff; }\n\n.mt-element-list .list-todo-item.white:after {\n  border-right-color: #ffffff; }\n\n.mt-element-list .list-todo-item.white .list-toggle {\n  background: #ffffff; }\n\n.mt-element-list .list-todo-item.default:after {\n  border-right-color: #e1e5ec; }\n\n.mt-element-list .list-todo-item.default .list-toggle {\n  background: #e1e5ec; }\n\n.mt-element-list .list-todo-item.dark:after {\n  border-right-color: #2f353b; }\n\n.mt-element-list .list-todo-item.dark .list-toggle {\n  background: #2f353b; }\n\n.mt-element-list .list-todo-item.blue:after {\n  border-right-color: #3598dc; }\n\n.mt-element-list .list-todo-item.blue .list-toggle {\n  background: #3598dc; }\n\n.mt-element-list .list-todo-item.blue-madison:after {\n  border-right-color: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-madison .list-toggle {\n  background: #578ebe; }\n\n.mt-element-list .list-todo-item.blue-chambray:after {\n  border-right-color: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-chambray .list-toggle {\n  background: #2C3E50; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay:after {\n  border-right-color: #22313F; }\n\n.mt-element-list .list-todo-item.blue-ebonyclay .list-toggle {\n  background: #22313F; }\n\n.mt-element-list .list-todo-item.blue-hoki:after {\n  border-right-color: #67809F; }\n\n.mt-element-list .list-todo-item.blue-hoki .list-toggle {\n  background: #67809F; }\n\n.mt-element-list .list-todo-item.blue-steel:after {\n  border-right-color: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-steel .list-toggle {\n  background: #4B77BE; }\n\n.mt-element-list .list-todo-item.blue-soft:after {\n  border-right-color: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-soft .list-toggle {\n  background: #4c87b9; }\n\n.mt-element-list .list-todo-item.blue-dark:after {\n  border-right-color: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-dark .list-toggle {\n  background: #5e738b; }\n\n.mt-element-list .list-todo-item.blue-sharp:after {\n  border-right-color: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-sharp .list-toggle {\n  background: #5C9BD1; }\n\n.mt-element-list .list-todo-item.blue-oleo:after {\n  border-right-color: #94A0B2; }\n\n.mt-element-list .list-todo-item.blue-oleo .list-toggle {\n  background: #94A0B2; }\n\n.mt-element-list .list-todo-item.green:after {\n  border-right-color: #32c5d2; }\n\n.mt-element-list .list-todo-item.green .list-toggle {\n  background: #32c5d2; }\n\n.mt-element-list .list-todo-item.green-meadow:after {\n  border-right-color: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-meadow .list-toggle {\n  background: #1BBC9B; }\n\n.mt-element-list .list-todo-item.green-seagreen:after {\n  border-right-color: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-seagreen .list-toggle {\n  background: #1BA39C; }\n\n.mt-element-list .list-todo-item.green-turquoise:after {\n  border-right-color: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-turquoise .list-toggle {\n  background: #36D7B7; }\n\n.mt-element-list .list-todo-item.green-haze:after {\n  border-right-color: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-haze .list-toggle {\n  background: #44b6ae; }\n\n.mt-element-list .list-todo-item.green-jungle:after {\n  border-right-color: #26C281; }\n\n.mt-element-list .list-todo-item.green-jungle .list-toggle {\n  background: #26C281; }\n\n.mt-element-list .list-todo-item.green-soft:after {\n  border-right-color: #3faba4; }\n\n.mt-element-list .list-todo-item.green-soft .list-toggle {\n  background: #3faba4; }\n\n.mt-element-list .list-todo-item.green-dark:after {\n  border-right-color: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-dark .list-toggle {\n  background: #4DB3A2; }\n\n.mt-element-list .list-todo-item.green-sharp:after {\n  border-right-color: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-sharp .list-toggle {\n  background: #2ab4c0; }\n\n.mt-element-list .list-todo-item.green-steel:after {\n  border-right-color: #29b4b6; }\n\n.mt-element-list .list-todo-item.green-steel .list-toggle {\n  background: #29b4b6; }\n\n.mt-element-list .list-todo-item.grey:after {\n  border-right-color: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey .list-toggle {\n  background: #E5E5E5; }\n\n.mt-element-list .list-todo-item.grey-steel:after {\n  border-right-color: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-steel .list-toggle {\n  background: #e9edef; }\n\n.mt-element-list .list-todo-item.grey-cararra:after {\n  border-right-color: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-cararra .list-toggle {\n  background: #fafafa; }\n\n.mt-element-list .list-todo-item.grey-gallery:after {\n  border-right-color: #555555; }\n\n.mt-element-list .list-todo-item.grey-gallery .list-toggle {\n  background: #555555; }\n\n.mt-element-list .list-todo-item.grey-cascade:after {\n  border-right-color: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-cascade .list-toggle {\n  background: #95A5A6; }\n\n.mt-element-list .list-todo-item.grey-silver:after {\n  border-right-color: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-silver .list-toggle {\n  background: #BFBFBF; }\n\n.mt-element-list .list-todo-item.grey-salsa:after {\n  border-right-color: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salsa .list-toggle {\n  background: #ACB5C3; }\n\n.mt-element-list .list-todo-item.grey-salt:after {\n  border-right-color: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-salt .list-toggle {\n  background: #bfcad1; }\n\n.mt-element-list .list-todo-item.grey-mint:after {\n  border-right-color: #525e64; }\n\n.mt-element-list .list-todo-item.grey-mint .list-toggle {\n  background: #525e64; }\n\n.mt-element-list .list-todo-item.red:after {\n  border-right-color: #e7505a; }\n\n.mt-element-list .list-todo-item.red .list-toggle {\n  background: #e7505a; }\n\n.mt-element-list .list-todo-item.red-pink:after {\n  border-right-color: #E08283; }\n\n.mt-element-list .list-todo-item.red-pink .list-toggle {\n  background: #E08283; }\n\n.mt-element-list .list-todo-item.red-sunglo:after {\n  border-right-color: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-sunglo .list-toggle {\n  background: #E26A6A; }\n\n.mt-element-list .list-todo-item.red-intense:after {\n  border-right-color: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-intense .list-toggle {\n  background: #e35b5a; }\n\n.mt-element-list .list-todo-item.red-thunderbird:after {\n  border-right-color: #D91E18; }\n\n.mt-element-list .list-todo-item.red-thunderbird .list-toggle {\n  background: #D91E18; }\n\n.mt-element-list .list-todo-item.red-flamingo:after {\n  border-right-color: #EF4836; }\n\n.mt-element-list .list-todo-item.red-flamingo .list-toggle {\n  background: #EF4836; }\n\n.mt-element-list .list-todo-item.red-soft:after {\n  border-right-color: #d05454; }\n\n.mt-element-list .list-todo-item.red-soft .list-toggle {\n  background: #d05454; }\n\n.mt-element-list .list-todo-item.red-haze:after {\n  border-right-color: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-haze .list-toggle {\n  background: #f36a5a; }\n\n.mt-element-list .list-todo-item.red-mint:after {\n  border-right-color: #e43a45; }\n\n.mt-element-list .list-todo-item.red-mint .list-toggle {\n  background: #e43a45; }\n\n.mt-element-list .list-todo-item.yellow:after {\n  border-right-color: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow .list-toggle {\n  background: #c49f47; }\n\n.mt-element-list .list-todo-item.yellow-gold:after {\n  border-right-color: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-gold .list-toggle {\n  background: #E87E04; }\n\n.mt-element-list .list-todo-item.yellow-casablanca:after {\n  border-right-color: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-casablanca .list-toggle {\n  background: #f2784b; }\n\n.mt-element-list .list-todo-item.yellow-crusta:after {\n  border-right-color: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-crusta .list-toggle {\n  background: #f3c200; }\n\n.mt-element-list .list-todo-item.yellow-lemon:after {\n  border-right-color: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-lemon .list-toggle {\n  background: #F7CA18; }\n\n.mt-element-list .list-todo-item.yellow-saffron:after {\n  border-right-color: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-saffron .list-toggle {\n  background: #F4D03F; }\n\n.mt-element-list .list-todo-item.yellow-soft:after {\n  border-right-color: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-soft .list-toggle {\n  background: #c8d046; }\n\n.mt-element-list .list-todo-item.yellow-haze:after {\n  border-right-color: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-haze .list-toggle {\n  background: #c5bf66; }\n\n.mt-element-list .list-todo-item.yellow-mint:after {\n  border-right-color: #c5b96b; }\n\n.mt-element-list .list-todo-item.yellow-mint .list-toggle {\n  background: #c5b96b; }\n\n.mt-element-list .list-todo-item.purple:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-plum:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-plum .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-medium:after {\n  border-right-color: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-medium .list-toggle {\n  background: #BF55EC; }\n\n.mt-element-list .list-todo-item.purple-studio:after {\n  border-right-color: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-studio .list-toggle {\n  background: #8E44AD; }\n\n.mt-element-list .list-todo-item.purple-wisteria:after {\n  border-right-color: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-wisteria .list-toggle {\n  background: #9B59B6; }\n\n.mt-element-list .list-todo-item.purple-seance:after {\n  border-right-color: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-seance .list-toggle {\n  background: #9A12B3; }\n\n.mt-element-list .list-todo-item.purple-intense:after {\n  border-right-color: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-intense .list-toggle {\n  background: #8775a7; }\n\n.mt-element-list .list-todo-item.purple-sharp:after {\n  border-right-color: #796799; }\n\n.mt-element-list .list-todo-item.purple-sharp .list-toggle {\n  background: #796799; }\n\n.mt-element-list .list-todo-item.purple-soft:after {\n  border-right-color: #8877a9; }\n\n.mt-element-list .list-todo-item.purple-soft .list-toggle {\n  background: #8877a9; }\n\n.mt-element-ribbon {\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-ribbon .ribbon-content {\n    margin: 0;\n    padding: 25px;\n    clear: both; }\n    .mt-element-ribbon .ribbon-content.no-padding {\n      padding-top: 0; }\n  .mt-element-ribbon .ribbon {\n    padding: 0.5em 1em;\n    z-index: 5;\n    float: left;\n    margin: 10px 0 0 -2px;\n    clear: left;\n    position: relative;\n    background-color: #bac3d0;\n    color: #384353; }\n    .mt-element-ribbon .ribbon.ribbon-right {\n      float: right;\n      clear: right;\n      margin: 10px -2px 0 0; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-left {\n      clear: none;\n      margin: -2px 0 0 10px;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-vertical-right {\n      clear: none;\n      float: right;\n      margin: -2px 10px 0 0;\n      padding-top: 1em;\n      padding-bottom: 1em;\n      width: 41px;\n      text-align: center; }\n    .mt-element-ribbon .ribbon.ribbon-shadow {\n      box-shadow: 2px 2px 7px rgba(0, 0, 0, 0.4); }\n      .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-right, .mt-element-ribbon .ribbon.ribbon-shadow.ribbon-vertical-right {\n        box-shadow: -2px 2px 7px rgba(0, 0, 0, 0.4); }\n    .mt-element-ribbon .ribbon.ribbon-round {\n      border-top-right-radius: 5px !important;\n      border-bottom-right-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-right {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 0px !important;\n        border-top-left-radius: 5px !important;\n        border-bottom-left-radius: 5px !important; }\n      .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-right, .mt-element-ribbon .ribbon.ribbon-round.ribbon-vertical-left {\n        border-top-right-radius: 0px !important;\n        border-bottom-right-radius: 5px !important;\n        border-top-left-radius: 0px !important;\n        border-bottom-left-radius: 5px !important; }\n    .mt-element-ribbon .ribbon.ribbon-border:after {\n      border: 1px solid;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash:after {\n      border: 1px solid;\n      border-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-vert:after {\n      border-top: none;\n      border-bottom: none;\n      border-left: 1px solid;\n      border-right: 1px solid;\n      border-left-style: dashed;\n      border-right-style: dashed;\n      content: '';\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 5px;\n      right: 5px; }\n    .mt-element-ribbon .ribbon.ribbon-border-dash-hor:after {\n      border-top: 1px solid;\n      border-bottom: 1px solid;\n      border-left: none;\n      border-right: none;\n      border-top-style: dashed;\n      border-bottom-style: dashed;\n      content: '';\n      position: absolute;\n      top: 5px;\n      bottom: 5px;\n      left: 0;\n      right: 0; }\n    .mt-element-ribbon .ribbon.ribbon-clip {\n      left: -10px;\n      margin-left: 0; }\n      .mt-element-ribbon .ribbon.ribbon-clip.ribbon-right {\n        left: auto;\n        right: -10px;\n        margin-right: 0; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      z-index: -1;\n      position: absolute;\n      padding: 0;\n      width: 100%;\n      height: 100%;\n      top: 0;\n      left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent !important;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip:before {\n        border-width: 0 10px 10px 0;\n        border-right-color: #222 !important;\n        left: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before, .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        content: '';\n        position: absolute;\n        border-style: solid;\n        border-color: transparent;\n        bottom: -10px; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:before {\n        border-right-color: transparent !important; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-clip.ribbon-right:after {\n        border-width: 0 0 10px 10px;\n        border-left-color: #222 !important;\n        right: 0; }\n      .mt-element-ribbon .ribbon > .ribbon-sub.ribbon-bookmark:after {\n        border-left: 21px solid;\n        border-right: 20px solid;\n        border-bottom: 1em solid transparent !important;\n        bottom: -1em;\n        content: '';\n        height: 0;\n        left: 0;\n        position: absolute;\n        width: 0; }\n    .mt-element-ribbon .ribbon:after {\n      border-color: #62748f; }\n    .mt-element-ribbon .ribbon > .ribbon-sub {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon > .ribbon-sub:after {\n        border-color: #62748f;\n        border-left-color: #bac3d0;\n        border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-default {\n      background-color: #bac3d0;\n      color: #384353; }\n      .mt-element-ribbon .ribbon.ribbon-color-default:after {\n        border-color: #9ca8bb; }\n      .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub {\n        background-color: #bac3d0;\n        color: #384353; }\n        .mt-element-ribbon .ribbon.ribbon-color-default > .ribbon-sub:after {\n          border-color: #62748f;\n          border-left-color: #bac3d0;\n          border-right-color: #bac3d0; }\n    .mt-element-ribbon .ribbon.ribbon-color-primary {\n      background-color: #337ab7;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary:after {\n        border-color: #286090; }\n      .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub {\n        background-color: #337ab7;\n        color: black; }\n        .mt-element-ribbon .ribbon.ribbon-color-primary > .ribbon-sub:after {\n          border-color: #122b40;\n          border-left-color: #337ab7;\n          border-right-color: #337ab7; }\n    .mt-element-ribbon .ribbon.ribbon-color-info {\n      background-color: #659be0;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-info:after {\n        border-color: #3a80d7; }\n      .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub {\n        background-color: #659be0;\n        color: #0c203a; }\n        .mt-element-ribbon .ribbon.ribbon-color-info > .ribbon-sub:after {\n          border-color: #1d4f8e;\n          border-left-color: #659be0;\n          border-right-color: #659be0; }\n    .mt-element-ribbon .ribbon.ribbon-color-success {\n      background-color: #36c6d3;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-success:after {\n        border-color: #27a4b0; }\n      .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub {\n        background-color: #36c6d3;\n        color: #020808; }\n        .mt-element-ribbon .ribbon.ribbon-color-success > .ribbon-sub:after {\n          border-color: #14565c;\n          border-left-color: #36c6d3;\n          border-right-color: #36c6d3; }\n    .mt-element-ribbon .ribbon.ribbon-color-danger {\n      background-color: #ed6b75;\n      color: #fff; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger:after {\n        border-color: #e73d4a; }\n      .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub {\n        background-color: #ed6b75;\n        color: #4f0a0f; }\n        .mt-element-ribbon .ribbon.ribbon-color-danger > .ribbon-sub:after {\n          border-color: #a91520;\n          border-left-color: #ed6b75;\n          border-right-color: #ed6b75; }\n    .mt-element-ribbon .ribbon.ribbon-color-warning {\n      background-color: #F1C40F;\n      color: #010100; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning:after {\n        border-color: #c29d0b; }\n      .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub {\n        background-color: #F1C40F;\n        color: #010100; }\n        .mt-element-ribbon .ribbon.ribbon-color-warning > .ribbon-sub:after {\n          border-color: #614f06;\n          border-left-color: #F1C40F;\n          border-right-color: #F1C40F; }\n\n.mt-element-card .mt-card-item {\n  border: 1px solid;\n  border-color: #e7ecf1;\n  position: relative;\n  margin-bottom: 30px; }\n  .mt-element-card .mt-card-item .mt-card-avatar {\n    margin-bottom: 15px; }\n  .mt-element-card .mt-card-item .mt-card-content {\n    text-align: center; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-name {\n      font-size: 16px;\n      font-weight: 600;\n      margin-bottom: 10px; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-desc {\n      font-size: 14px;\n      margin: 0 0 10px 0; }\n    .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul {\n      padding: 0;\n      margin-bottom: 10px; }\n      .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li {\n        list-style: none;\n        display: inline-block;\n        margin: 0 3px; }\n        .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a {\n          color: #000;\n          font-size: 18px; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn {\n            color: #fff; }\n            .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a.mt-card-btn:hover {\n              color: #36c6d3; }\n          .mt-element-card .mt-card-item .mt-card-content .mt-card-social > ul > li > a:hover {\n            color: #F1C40F; }\n\n.mt-element-card.mt-card-round .mt-card-item {\n  padding: 40px 40px 10px 40px; }\n  .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar {\n    border-radius: 50% !important;\n    -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); }\n    .mt-element-card.mt-card-round .mt-card-item .mt-card-avatar .mt-overlay {\n      -webkit-border-radius: 50%;\n      -moz-border-radius: 50%;\n      -ms-border-radius: 50%;\n      -o-border-radius: 50%;\n      border-radius: 50%; }\n\n.mt-element-overlay .mt-overlay-1 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-1 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px) translateZ(0);\n    -ms-transform: translatey(-100px) translateZ(0);\n    transform: translatey(-100px) translateZ(0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-1 .mt-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0); }\n    .mt-element-overlay .mt-overlay-1 .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-1 .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-1:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0);\n    transform: scale(1.2) translateZ(0); }\n  .mt-element-overlay .mt-overlay-1:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-1 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up:hover .mt-overlay {\n    bottom: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-up .mt-overlay {\n    bottom: -100%;\n    top: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down:hover .mt-overlay {\n    top: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-down .mt-overlay {\n    top: -100%; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left:hover .mt-overlay {\n    right: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-left .mt-overlay {\n    right: -100%;\n    left: auto; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right:hover .mt-overlay {\n    left: 0; }\n  .mt-element-overlay .mt-overlay-1.mt-scroll-right .mt-overlay {\n    left: -100%; }\n\n.mt-element-overlay .mt-overlay-2 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-2 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-2 h2 {\n    text-transform: uppercase;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6); }\n  .mt-element-overlay .mt-overlay-2 .mt-info,\n  .mt-element-overlay .mt-overlay-2 h2 {\n    -webkit-transform: scale(0.7);\n    -ms-transform: scale(0.7);\n    transform: scale(0.7);\n    -webkit-transition: all 0.4s ease-in;\n    transition: all 0.4s ease-in;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    color: #fff;\n    text-transform: uppercase; }\n  .mt-element-overlay .mt-overlay-2 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-2:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: blur(3px);\n    -webkit-filter: blur(3px);\n    -webkit-transform: scale(1.2);\n    -ms-transform: scale(1.2);\n    transform: scale(1.2); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: translate(0px, 0px);\n    -ms-transform: translate(0px, 0px);\n    transform: translate(0px, 0px); }\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    -webkit-transition-delay: 0.5s;\n    transition-delay: 0.5s; }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info,\n  .mt-element-overlay .mt-overlay-2:hover h2 {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1) translateY(-50%);\n    -ms-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%); }\n  .mt-element-overlay .mt-overlay-2:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n  .mt-element-overlay .mt-overlay-2 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-grey:hover img {\n    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"filter\"><feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\" /><feGaussianBlur stdDeviation=\"3\" /></filter></svg>#filter');\n    filter: grayscale(1) blur(3px);\n    -webkit-filter: grayscale(1) blur(3px); }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info {\n    border: none;\n    width: 100%;\n    padding: 0;\n    -webkit-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(0.7) translateY(-50%) translateX(-50%);\n    transform: scale(0.7) translateY(-50%) translateX(-50%); }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n  .mt-element-overlay .mt-overlay-2.mt-overlay-2-icons:hover .mt-info {\n    -webkit-transform: scale(1) translateY(-50%) translateX(-50%);\n    -ms-transform: scale(1) translateY(-50%) translateX(-50%);\n    transform: scale(1) translateY(-50%) translateX(-50%); }\n\n.mt-element-overlay .mt-overlay-3 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-3 img {\n    display: block;\n    position: relative;\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-3 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    padding: 10px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translateY(100px);\n    -ms-transform: translateY(100px);\n    transform: translateY(100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3 .mt-info {\n    display: inline-block;\n    text-decoration: none;\n    text-transform: uppercase;\n    color: #fff;\n    border: 1px solid #fff;\n    background-color: transparent;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transform: scale(0);\n    -ms-transform: scale(0);\n    transform: scale(0);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    font-weight: normal;\n    position: absolute;\n    top: 15px;\n    bottom: 15px;\n    left: 15px;\n    right: 15px;\n    margin: auto;\n    padding: 45% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3 .mt-info:hover {\n      box-shadow: 0 0 5px #fff; }\n  .mt-element-overlay .mt-overlay-3:hover .mt-overlay {\n    background-color: rgba(48, 152, 157, 0.7); }\n  .mt-element-overlay .mt-overlay-3:hover h2 {\n    -webkit-transform: translateY(5px);\n    -ms-transform: translateY(5px);\n    transform: translateY(5px); }\n  .mt-element-overlay .mt-overlay-3:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: scale(1);\n    -ms-transform: scale(1);\n    transform: scale(1); }\n  .mt-element-overlay .mt-overlay-3 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    background-color: rgba(75, 75, 75, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info {\n    padding: 40% 0 0 0; }\n    .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-3.mt-overlay-3-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-4 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default; }\n  .mt-element-overlay .mt-overlay-4 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    width: 100%;\n    height: auto; }\n  .mt-element-overlay .mt-overlay-4 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    background: rgba(0, 0, 0, 0.6);\n    -webkit-transform: translatey(-100px);\n    -ms-transform: translatey(-100px);\n    transform: translatey(-100px);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    padding: 10px; }\n  .mt-element-overlay .mt-overlay-4 .mt-info {\n    display: inline-block;\n    text-transform: uppercase;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: all 0.4s ease;\n    transition: all 0.4s ease;\n    margin: 50px 0 0; }\n  .mt-element-overlay .mt-overlay-4:hover .mt-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100); }\n  .mt-element-overlay .mt-overlay-4:hover h2,\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -ms-transform: translatey(0);\n    -webkit-transform: translatey(0);\n    transform: translatey(0); }\n  .mt-element-overlay .mt-overlay-4:hover .mt-info {\n    -webkit-transition-delay: .2s;\n    transition-delay: .2s; }\n  .mt-element-overlay .mt-overlay-4 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    background-color: rgba(0, 0, 0, 0.7);\n    -webkit-transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81);\n    transition: all 0.4s cubic-bezier(0.88, -0.99, 0, 1.81); }\n  .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info {\n    border: none;\n    position: absolute;\n    padding: 0;\n    top: 50%;\n    left: 0;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n    -ms-transform: translateY(-50%);\n    transform: translateY(-50%);\n    margin: auto; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info:hover {\n      box-shadow: none; }\n    .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 3px; }\n      .mt-element-overlay .mt-overlay-4.mt-overlay-4-icons .mt-info > li:hover {\n        -webkit-transition: all .2s ease-in-out;\n        transition: all .2s ease-in-out;\n        cursor: pointer; }\n\n.mt-element-overlay .mt-overlay-5 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: -webkit-linear-gradient(45deg, #ff89e9 0%, #05abe0 100%);\n  background: linear-gradient(45deg, #ff89e9 0%, #05abe0 100%); }\n  .mt-element-overlay .mt-overlay-5 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 3em;\n    text-align: left; }\n    .mt-element-overlay .mt-overlay-5 .mt-overlay:before {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      bottom: 20px;\n      left: 20px;\n      border: 1px solid #fff;\n      content: '';\n      opacity: 0;\n      filter: alpha(opacity=0);\n      -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n      transition: opacity 0.35s, transform 0.45s;\n      -webkit-transform: translate3d(-20px, 0, 0);\n      transform: translate3d(-20px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(113% + 60px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-40px, 0, 0);\n    transform: translate3d(-40px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    position: relative;\n    font-size: 17px;\n    background-color: transparent;\n    padding: 15% 0 10px 0;\n    text-align: left; }\n  .mt-element-overlay .mt-overlay-5 a,\n  .mt-element-overlay .mt-overlay-5 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.45s;\n    transition: opacity 0.35s, transform 0.45s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0); }\n  .mt-element-overlay .mt-overlay-5 a:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60); }\n  .mt-element-overlay .mt-overlay-5:hover img {\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-5:hover .mt-overlay:before,\n  .mt-element-overlay .mt-overlay-5:hover a,\n  .mt-element-overlay .mt-overlay-5:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n.mt-element-overlay .mt-overlay-6 {\n  width: 100%;\n  height: 100%;\n  float: left;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n  cursor: default;\n  background: #42b078; }\n  .mt-element-overlay .mt-overlay-6 .mt-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    padding: 50px 20px; }\n  .mt-element-overlay .mt-overlay-6 img {\n    display: block;\n    position: relative;\n    max-width: none;\n    width: calc(100% + 20px);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(-10px, 0, 0);\n    transform: translate3d(-10px, 0, 0);\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden; }\n  .mt-element-overlay .mt-overlay-6 h2 {\n    text-transform: uppercase;\n    color: #fff;\n    text-align: center;\n    position: relative;\n    font-size: 17px;\n    overflow: hidden;\n    padding: 0.5em 0;\n    background-color: transparent; }\n    .mt-element-overlay .mt-overlay-6 h2:after {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      height: 2px;\n      background: #fff;\n      content: '';\n      -webkit-transition: -webkit-transform 0.35s;\n      transition: transform 0.35s;\n      -webkit-transform: translate3d(-100%, 0, 0);\n      transform: translate3d(-100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 a,\n  .mt-element-overlay .mt-overlay-6 p {\n    color: #FFF;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;\n    transition: opacity 0.35s, transform 0.35s;\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0); }\n  .mt-element-overlay .mt-overlay-6 p {\n    margin-top: 20px; }\n  .mt-element-overlay .mt-overlay-6 .mt-info:hover {\n    text-decoration: none;\n    opacity: 0.6;\n    filter: alpha(opacity=60);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    cursor: pointer; }\n  .mt-element-overlay .mt-overlay-6:hover img {\n    opacity: 0.4;\n    filter: alpha(opacity=40);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover h2:after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n  .mt-element-overlay .mt-overlay-6:hover a,\n  .mt-element-overlay .mt-overlay-6:hover p {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0); }\n\n/***\nCustom color buttons \n***/\n.bg-white {\n  background: #ffffff !important; }\n\n.bg-white-opacity {\n  background: rgba(255, 255, 255, 0.8) !important; }\n\n.bg-hover-white:hover {\n  background: #ffffff !important; }\n\n.font-white {\n  color: #ffffff !important; }\n\n.bg-font-white {\n  color: #666 !important; }\n\n.border-white {\n  border-color: #ffffff !important; }\n\n.border-top-white {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-white {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-white {\n  border-left-color: #ffffff !important; }\n\n.border-right-white {\n  border-right-color: #ffffff !important; }\n\n.bg-before-white:before,\n.bg-after-white:after {\n  background: #ffffff !important; }\n\n.border-before-white:before,\n.border-after-white:after {\n  border-color: #ffffff !important; }\n\n.border-top-before-white:before,\n.border-top-after-white:after {\n  border-top-color: #ffffff !important; }\n\n.border-bottom-before-white:before,\n.border-bottom-after-white:after {\n  border-bottom-color: #ffffff !important; }\n\n.border-left-before-white:before,\n.border-left-after-white:after {\n  border-left-color: #ffffff !important; }\n\n.border-right-before-white:before,\n.border-right-after-white:after {\n  border-right-color: #ffffff !important; }\n\n.bg-default {\n  background: #e1e5ec !important; }\n\n.bg-default-opacity {\n  background: rgba(225, 229, 236, 0.8) !important; }\n\n.bg-hover-default:hover {\n  background: #e1e5ec !important; }\n\n.font-default {\n  color: #e1e5ec !important; }\n\n.bg-font-default {\n  color: #666 !important; }\n\n.border-default {\n  border-color: #e1e5ec !important; }\n\n.border-top-default {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-default {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-default {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-default {\n  border-right-color: #e1e5ec !important; }\n\n.bg-before-default:before,\n.bg-after-default:after {\n  background: #e1e5ec !important; }\n\n.border-before-default:before,\n.border-after-default:after {\n  border-color: #e1e5ec !important; }\n\n.border-top-before-default:before,\n.border-top-after-default:after {\n  border-top-color: #e1e5ec !important; }\n\n.border-bottom-before-default:before,\n.border-bottom-after-default:after {\n  border-bottom-color: #e1e5ec !important; }\n\n.border-left-before-default:before,\n.border-left-after-default:after {\n  border-left-color: #e1e5ec !important; }\n\n.border-right-before-default:before,\n.border-right-after-default:after {\n  border-right-color: #e1e5ec !important; }\n\n.bg-dark {\n  background: #2f353b !important; }\n\n.bg-dark-opacity {\n  background: rgba(47, 53, 59, 0.8) !important; }\n\n.bg-hover-dark:hover {\n  background: #2f353b !important; }\n\n.font-dark {\n  color: #2f353b !important; }\n\n.bg-font-dark {\n  color: #FFFFFF !important; }\n\n.border-dark {\n  border-color: #2f353b !important; }\n\n.border-top-dark {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-dark {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-dark {\n  border-left-color: #2f353b !important; }\n\n.border-right-dark {\n  border-right-color: #2f353b !important; }\n\n.bg-before-dark:before,\n.bg-after-dark:after {\n  background: #2f353b !important; }\n\n.border-before-dark:before,\n.border-after-dark:after {\n  border-color: #2f353b !important; }\n\n.border-top-before-dark:before,\n.border-top-after-dark:after {\n  border-top-color: #2f353b !important; }\n\n.border-bottom-before-dark:before,\n.border-bottom-after-dark:after {\n  border-bottom-color: #2f353b !important; }\n\n.border-left-before-dark:before,\n.border-left-after-dark:after {\n  border-left-color: #2f353b !important; }\n\n.border-right-before-dark:before,\n.border-right-after-dark:after {\n  border-right-color: #2f353b !important; }\n\n.bg-blue {\n  background: #3598dc !important; }\n\n.bg-blue-opacity {\n  background: rgba(53, 152, 220, 0.8) !important; }\n\n.bg-hover-blue:hover {\n  background: #3598dc !important; }\n\n.font-blue {\n  color: #3598dc !important; }\n\n.bg-font-blue {\n  color: #FFFFFF !important; }\n\n.border-blue {\n  border-color: #3598dc !important; }\n\n.border-top-blue {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-blue {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-blue {\n  border-left-color: #3598dc !important; }\n\n.border-right-blue {\n  border-right-color: #3598dc !important; }\n\n.bg-before-blue:before,\n.bg-after-blue:after {\n  background: #3598dc !important; }\n\n.border-before-blue:before,\n.border-after-blue:after {\n  border-color: #3598dc !important; }\n\n.border-top-before-blue:before,\n.border-top-after-blue:after {\n  border-top-color: #3598dc !important; }\n\n.border-bottom-before-blue:before,\n.border-bottom-after-blue:after {\n  border-bottom-color: #3598dc !important; }\n\n.border-left-before-blue:before,\n.border-left-after-blue:after {\n  border-left-color: #3598dc !important; }\n\n.border-right-before-blue:before,\n.border-right-after-blue:after {\n  border-right-color: #3598dc !important; }\n\n.bg-blue-madison {\n  background: #578ebe !important; }\n\n.bg-blue-madison-opacity {\n  background: rgba(87, 142, 190, 0.8) !important; }\n\n.bg-hover-blue-madison:hover {\n  background: #578ebe !important; }\n\n.font-blue-madison {\n  color: #578ebe !important; }\n\n.bg-font-blue-madison {\n  color: #FFFFFF !important; }\n\n.border-blue-madison {\n  border-color: #578ebe !important; }\n\n.border-top-blue-madison {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-blue-madison {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-blue-madison {\n  border-left-color: #578ebe !important; }\n\n.border-right-blue-madison {\n  border-right-color: #578ebe !important; }\n\n.bg-before-blue-madison:before,\n.bg-after-blue-madison:after {\n  background: #578ebe !important; }\n\n.border-before-blue-madison:before,\n.border-after-blue-madison:after {\n  border-color: #578ebe !important; }\n\n.border-top-before-blue-madison:before,\n.border-top-after-blue-madison:after {\n  border-top-color: #578ebe !important; }\n\n.border-bottom-before-blue-madison:before,\n.border-bottom-after-blue-madison:after {\n  border-bottom-color: #578ebe !important; }\n\n.border-left-before-blue-madison:before,\n.border-left-after-blue-madison:after {\n  border-left-color: #578ebe !important; }\n\n.border-right-before-blue-madison:before,\n.border-right-after-blue-madison:after {\n  border-right-color: #578ebe !important; }\n\n.bg-blue-chambray {\n  background: #2C3E50 !important; }\n\n.bg-blue-chambray-opacity {\n  background: rgba(44, 62, 80, 0.8) !important; }\n\n.bg-hover-blue-chambray:hover {\n  background: #2C3E50 !important; }\n\n.font-blue-chambray {\n  color: #2C3E50 !important; }\n\n.bg-font-blue-chambray {\n  color: #FFFFFF !important; }\n\n.border-blue-chambray {\n  border-color: #2C3E50 !important; }\n\n.border-top-blue-chambray {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-blue-chambray {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-blue-chambray {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-blue-chambray {\n  border-right-color: #2C3E50 !important; }\n\n.bg-before-blue-chambray:before,\n.bg-after-blue-chambray:after {\n  background: #2C3E50 !important; }\n\n.border-before-blue-chambray:before,\n.border-after-blue-chambray:after {\n  border-color: #2C3E50 !important; }\n\n.border-top-before-blue-chambray:before,\n.border-top-after-blue-chambray:after {\n  border-top-color: #2C3E50 !important; }\n\n.border-bottom-before-blue-chambray:before,\n.border-bottom-after-blue-chambray:after {\n  border-bottom-color: #2C3E50 !important; }\n\n.border-left-before-blue-chambray:before,\n.border-left-after-blue-chambray:after {\n  border-left-color: #2C3E50 !important; }\n\n.border-right-before-blue-chambray:before,\n.border-right-after-blue-chambray:after {\n  border-right-color: #2C3E50 !important; }\n\n.bg-blue-ebonyclay {\n  background: #22313F !important; }\n\n.bg-blue-ebonyclay-opacity {\n  background: rgba(34, 49, 63, 0.8) !important; }\n\n.bg-hover-blue-ebonyclay:hover {\n  background: #22313F !important; }\n\n.font-blue-ebonyclay {\n  color: #22313F !important; }\n\n.bg-font-blue-ebonyclay {\n  color: #FFFFFF !important; }\n\n.border-blue-ebonyclay {\n  border-color: #22313F !important; }\n\n.border-top-blue-ebonyclay {\n  border-top-color: #22313F !important; }\n\n.border-bottom-blue-ebonyclay {\n  border-bottom-color: #22313F !important; }\n\n.border-left-blue-ebonyclay {\n  border-left-color: #22313F !important; }\n\n.border-right-blue-ebonyclay {\n  border-right-color: #22313F !important; }\n\n.bg-before-blue-ebonyclay:before,\n.bg-after-blue-ebonyclay:after {\n  background: #22313F !important; }\n\n.border-before-blue-ebonyclay:before,\n.border-after-blue-ebonyclay:after {\n  border-color: #22313F !important; }\n\n.border-top-before-blue-ebonyclay:before,\n.border-top-after-blue-ebonyclay:after {\n  border-top-color: #22313F !important; }\n\n.border-bottom-before-blue-ebonyclay:before,\n.border-bottom-after-blue-ebonyclay:after {\n  border-bottom-color: #22313F !important; }\n\n.border-left-before-blue-ebonyclay:before,\n.border-left-after-blue-ebonyclay:after {\n  border-left-color: #22313F !important; }\n\n.border-right-before-blue-ebonyclay:before,\n.border-right-after-blue-ebonyclay:after {\n  border-right-color: #22313F !important; }\n\n.bg-blue-hoki {\n  background: #67809F !important; }\n\n.bg-blue-hoki-opacity {\n  background: rgba(103, 128, 159, 0.8) !important; }\n\n.bg-hover-blue-hoki:hover {\n  background: #67809F !important; }\n\n.font-blue-hoki {\n  color: #67809F !important; }\n\n.bg-font-blue-hoki {\n  color: #FFFFFF !important; }\n\n.border-blue-hoki {\n  border-color: #67809F !important; }\n\n.border-top-blue-hoki {\n  border-top-color: #67809F !important; }\n\n.border-bottom-blue-hoki {\n  border-bottom-color: #67809F !important; }\n\n.border-left-blue-hoki {\n  border-left-color: #67809F !important; }\n\n.border-right-blue-hoki {\n  border-right-color: #67809F !important; }\n\n.bg-before-blue-hoki:before,\n.bg-after-blue-hoki:after {\n  background: #67809F !important; }\n\n.border-before-blue-hoki:before,\n.border-after-blue-hoki:after {\n  border-color: #67809F !important; }\n\n.border-top-before-blue-hoki:before,\n.border-top-after-blue-hoki:after {\n  border-top-color: #67809F !important; }\n\n.border-bottom-before-blue-hoki:before,\n.border-bottom-after-blue-hoki:after {\n  border-bottom-color: #67809F !important; }\n\n.border-left-before-blue-hoki:before,\n.border-left-after-blue-hoki:after {\n  border-left-color: #67809F !important; }\n\n.border-right-before-blue-hoki:before,\n.border-right-after-blue-hoki:after {\n  border-right-color: #67809F !important; }\n\n.bg-blue-steel {\n  background: #4B77BE !important; }\n\n.bg-blue-steel-opacity {\n  background: rgba(75, 119, 190, 0.8) !important; }\n\n.bg-hover-blue-steel:hover {\n  background: #4B77BE !important; }\n\n.font-blue-steel {\n  color: #4B77BE !important; }\n\n.bg-font-blue-steel {\n  color: #FFFFFF !important; }\n\n.border-blue-steel {\n  border-color: #4B77BE !important; }\n\n.border-top-blue-steel {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-blue-steel {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-blue-steel {\n  border-left-color: #4B77BE !important; }\n\n.border-right-blue-steel {\n  border-right-color: #4B77BE !important; }\n\n.bg-before-blue-steel:before,\n.bg-after-blue-steel:after {\n  background: #4B77BE !important; }\n\n.border-before-blue-steel:before,\n.border-after-blue-steel:after {\n  border-color: #4B77BE !important; }\n\n.border-top-before-blue-steel:before,\n.border-top-after-blue-steel:after {\n  border-top-color: #4B77BE !important; }\n\n.border-bottom-before-blue-steel:before,\n.border-bottom-after-blue-steel:after {\n  border-bottom-color: #4B77BE !important; }\n\n.border-left-before-blue-steel:before,\n.border-left-after-blue-steel:after {\n  border-left-color: #4B77BE !important; }\n\n.border-right-before-blue-steel:before,\n.border-right-after-blue-steel:after {\n  border-right-color: #4B77BE !important; }\n\n.bg-blue-soft {\n  background: #4c87b9 !important; }\n\n.bg-blue-soft-opacity {\n  background: rgba(76, 135, 185, 0.8) !important; }\n\n.bg-hover-blue-soft:hover {\n  background: #4c87b9 !important; }\n\n.font-blue-soft {\n  color: #4c87b9 !important; }\n\n.bg-font-blue-soft {\n  color: #FFFFFF !important; }\n\n.border-blue-soft {\n  border-color: #4c87b9 !important; }\n\n.border-top-blue-soft {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-blue-soft {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-blue-soft {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-blue-soft {\n  border-right-color: #4c87b9 !important; }\n\n.bg-before-blue-soft:before,\n.bg-after-blue-soft:after {\n  background: #4c87b9 !important; }\n\n.border-before-blue-soft:before,\n.border-after-blue-soft:after {\n  border-color: #4c87b9 !important; }\n\n.border-top-before-blue-soft:before,\n.border-top-after-blue-soft:after {\n  border-top-color: #4c87b9 !important; }\n\n.border-bottom-before-blue-soft:before,\n.border-bottom-after-blue-soft:after {\n  border-bottom-color: #4c87b9 !important; }\n\n.border-left-before-blue-soft:before,\n.border-left-after-blue-soft:after {\n  border-left-color: #4c87b9 !important; }\n\n.border-right-before-blue-soft:before,\n.border-right-after-blue-soft:after {\n  border-right-color: #4c87b9 !important; }\n\n.bg-blue-dark {\n  background: #5e738b !important; }\n\n.bg-blue-dark-opacity {\n  background: rgba(94, 115, 139, 0.8) !important; }\n\n.bg-hover-blue-dark:hover {\n  background: #5e738b !important; }\n\n.font-blue-dark {\n  color: #5e738b !important; }\n\n.bg-font-blue-dark {\n  color: #FFFFFF !important; }\n\n.border-blue-dark {\n  border-color: #5e738b !important; }\n\n.border-top-blue-dark {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-blue-dark {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-blue-dark {\n  border-left-color: #5e738b !important; }\n\n.border-right-blue-dark {\n  border-right-color: #5e738b !important; }\n\n.bg-before-blue-dark:before,\n.bg-after-blue-dark:after {\n  background: #5e738b !important; }\n\n.border-before-blue-dark:before,\n.border-after-blue-dark:after {\n  border-color: #5e738b !important; }\n\n.border-top-before-blue-dark:before,\n.border-top-after-blue-dark:after {\n  border-top-color: #5e738b !important; }\n\n.border-bottom-before-blue-dark:before,\n.border-bottom-after-blue-dark:after {\n  border-bottom-color: #5e738b !important; }\n\n.border-left-before-blue-dark:before,\n.border-left-after-blue-dark:after {\n  border-left-color: #5e738b !important; }\n\n.border-right-before-blue-dark:before,\n.border-right-after-blue-dark:after {\n  border-right-color: #5e738b !important; }\n\n.bg-blue-sharp {\n  background: #5C9BD1 !important; }\n\n.bg-blue-sharp-opacity {\n  background: rgba(92, 155, 209, 0.8) !important; }\n\n.bg-hover-blue-sharp:hover {\n  background: #5C9BD1 !important; }\n\n.font-blue-sharp {\n  color: #5C9BD1 !important; }\n\n.bg-font-blue-sharp {\n  color: #FFFFFF !important; }\n\n.border-blue-sharp {\n  border-color: #5C9BD1 !important; }\n\n.border-top-blue-sharp {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-blue-sharp {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-blue-sharp {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-blue-sharp {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-before-blue-sharp:before,\n.bg-after-blue-sharp:after {\n  background: #5C9BD1 !important; }\n\n.border-before-blue-sharp:before,\n.border-after-blue-sharp:after {\n  border-color: #5C9BD1 !important; }\n\n.border-top-before-blue-sharp:before,\n.border-top-after-blue-sharp:after {\n  border-top-color: #5C9BD1 !important; }\n\n.border-bottom-before-blue-sharp:before,\n.border-bottom-after-blue-sharp:after {\n  border-bottom-color: #5C9BD1 !important; }\n\n.border-left-before-blue-sharp:before,\n.border-left-after-blue-sharp:after {\n  border-left-color: #5C9BD1 !important; }\n\n.border-right-before-blue-sharp:before,\n.border-right-after-blue-sharp:after {\n  border-right-color: #5C9BD1 !important; }\n\n.bg-blue-oleo {\n  background: #94A0B2 !important; }\n\n.bg-blue-oleo-opacity {\n  background: rgba(148, 160, 178, 0.8) !important; }\n\n.bg-hover-blue-oleo:hover {\n  background: #94A0B2 !important; }\n\n.font-blue-oleo {\n  color: #94A0B2 !important; }\n\n.bg-font-blue-oleo {\n  color: #FFFFFF !important; }\n\n.border-blue-oleo {\n  border-color: #94A0B2 !important; }\n\n.border-top-blue-oleo {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-blue-oleo {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-blue-oleo {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-blue-oleo {\n  border-right-color: #94A0B2 !important; }\n\n.bg-before-blue-oleo:before,\n.bg-after-blue-oleo:after {\n  background: #94A0B2 !important; }\n\n.border-before-blue-oleo:before,\n.border-after-blue-oleo:after {\n  border-color: #94A0B2 !important; }\n\n.border-top-before-blue-oleo:before,\n.border-top-after-blue-oleo:after {\n  border-top-color: #94A0B2 !important; }\n\n.border-bottom-before-blue-oleo:before,\n.border-bottom-after-blue-oleo:after {\n  border-bottom-color: #94A0B2 !important; }\n\n.border-left-before-blue-oleo:before,\n.border-left-after-blue-oleo:after {\n  border-left-color: #94A0B2 !important; }\n\n.border-right-before-blue-oleo:before,\n.border-right-after-blue-oleo:after {\n  border-right-color: #94A0B2 !important; }\n\n.bg-green {\n  background: #32c5d2 !important; }\n\n.bg-green-opacity {\n  background: rgba(50, 197, 210, 0.8) !important; }\n\n.bg-hover-green:hover {\n  background: #32c5d2 !important; }\n\n.font-green {\n  color: #32c5d2 !important; }\n\n.bg-font-green {\n  color: #FFFFFF !important; }\n\n.border-green {\n  border-color: #32c5d2 !important; }\n\n.border-top-green {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-green {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-green {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-green {\n  border-right-color: #32c5d2 !important; }\n\n.bg-before-green:before,\n.bg-after-green:after {\n  background: #32c5d2 !important; }\n\n.border-before-green:before,\n.border-after-green:after {\n  border-color: #32c5d2 !important; }\n\n.border-top-before-green:before,\n.border-top-after-green:after {\n  border-top-color: #32c5d2 !important; }\n\n.border-bottom-before-green:before,\n.border-bottom-after-green:after {\n  border-bottom-color: #32c5d2 !important; }\n\n.border-left-before-green:before,\n.border-left-after-green:after {\n  border-left-color: #32c5d2 !important; }\n\n.border-right-before-green:before,\n.border-right-after-green:after {\n  border-right-color: #32c5d2 !important; }\n\n.bg-green-meadow {\n  background: #1BBC9B !important; }\n\n.bg-green-meadow-opacity {\n  background: rgba(27, 188, 155, 0.8) !important; }\n\n.bg-hover-green-meadow:hover {\n  background: #1BBC9B !important; }\n\n.font-green-meadow {\n  color: #1BBC9B !important; }\n\n.bg-font-green-meadow {\n  color: #FFFFFF !important; }\n\n.border-green-meadow {\n  border-color: #1BBC9B !important; }\n\n.border-top-green-meadow {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-green-meadow {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-green-meadow {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-green-meadow {\n  border-right-color: #1BBC9B !important; }\n\n.bg-before-green-meadow:before,\n.bg-after-green-meadow:after {\n  background: #1BBC9B !important; }\n\n.border-before-green-meadow:before,\n.border-after-green-meadow:after {\n  border-color: #1BBC9B !important; }\n\n.border-top-before-green-meadow:before,\n.border-top-after-green-meadow:after {\n  border-top-color: #1BBC9B !important; }\n\n.border-bottom-before-green-meadow:before,\n.border-bottom-after-green-meadow:after {\n  border-bottom-color: #1BBC9B !important; }\n\n.border-left-before-green-meadow:before,\n.border-left-after-green-meadow:after {\n  border-left-color: #1BBC9B !important; }\n\n.border-right-before-green-meadow:before,\n.border-right-after-green-meadow:after {\n  border-right-color: #1BBC9B !important; }\n\n.bg-green-seagreen {\n  background: #1BA39C !important; }\n\n.bg-green-seagreen-opacity {\n  background: rgba(27, 163, 156, 0.8) !important; }\n\n.bg-hover-green-seagreen:hover {\n  background: #1BA39C !important; }\n\n.font-green-seagreen {\n  color: #1BA39C !important; }\n\n.bg-font-green-seagreen {\n  color: #FFFFFF !important; }\n\n.border-green-seagreen {\n  border-color: #1BA39C !important; }\n\n.border-top-green-seagreen {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-green-seagreen {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-green-seagreen {\n  border-left-color: #1BA39C !important; }\n\n.border-right-green-seagreen {\n  border-right-color: #1BA39C !important; }\n\n.bg-before-green-seagreen:before,\n.bg-after-green-seagreen:after {\n  background: #1BA39C !important; }\n\n.border-before-green-seagreen:before,\n.border-after-green-seagreen:after {\n  border-color: #1BA39C !important; }\n\n.border-top-before-green-seagreen:before,\n.border-top-after-green-seagreen:after {\n  border-top-color: #1BA39C !important; }\n\n.border-bottom-before-green-seagreen:before,\n.border-bottom-after-green-seagreen:after {\n  border-bottom-color: #1BA39C !important; }\n\n.border-left-before-green-seagreen:before,\n.border-left-after-green-seagreen:after {\n  border-left-color: #1BA39C !important; }\n\n.border-right-before-green-seagreen:before,\n.border-right-after-green-seagreen:after {\n  border-right-color: #1BA39C !important; }\n\n.bg-green-turquoise {\n  background: #36D7B7 !important; }\n\n.bg-green-turquoise-opacity {\n  background: rgba(54, 215, 183, 0.8) !important; }\n\n.bg-hover-green-turquoise:hover {\n  background: #36D7B7 !important; }\n\n.font-green-turquoise {\n  color: #36D7B7 !important; }\n\n.bg-font-green-turquoise {\n  color: #FFFFFF !important; }\n\n.border-green-turquoise {\n  border-color: #36D7B7 !important; }\n\n.border-top-green-turquoise {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-green-turquoise {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-green-turquoise {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-green-turquoise {\n  border-right-color: #36D7B7 !important; }\n\n.bg-before-green-turquoise:before,\n.bg-after-green-turquoise:after {\n  background: #36D7B7 !important; }\n\n.border-before-green-turquoise:before,\n.border-after-green-turquoise:after {\n  border-color: #36D7B7 !important; }\n\n.border-top-before-green-turquoise:before,\n.border-top-after-green-turquoise:after {\n  border-top-color: #36D7B7 !important; }\n\n.border-bottom-before-green-turquoise:before,\n.border-bottom-after-green-turquoise:after {\n  border-bottom-color: #36D7B7 !important; }\n\n.border-left-before-green-turquoise:before,\n.border-left-after-green-turquoise:after {\n  border-left-color: #36D7B7 !important; }\n\n.border-right-before-green-turquoise:before,\n.border-right-after-green-turquoise:after {\n  border-right-color: #36D7B7 !important; }\n\n.bg-green-haze {\n  background: #44b6ae !important; }\n\n.bg-green-haze-opacity {\n  background: rgba(68, 182, 174, 0.8) !important; }\n\n.bg-hover-green-haze:hover {\n  background: #44b6ae !important; }\n\n.font-green-haze {\n  color: #44b6ae !important; }\n\n.bg-font-green-haze {\n  color: #FFFFFF !important; }\n\n.border-green-haze {\n  border-color: #44b6ae !important; }\n\n.border-top-green-haze {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-green-haze {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-green-haze {\n  border-left-color: #44b6ae !important; }\n\n.border-right-green-haze {\n  border-right-color: #44b6ae !important; }\n\n.bg-before-green-haze:before,\n.bg-after-green-haze:after {\n  background: #44b6ae !important; }\n\n.border-before-green-haze:before,\n.border-after-green-haze:after {\n  border-color: #44b6ae !important; }\n\n.border-top-before-green-haze:before,\n.border-top-after-green-haze:after {\n  border-top-color: #44b6ae !important; }\n\n.border-bottom-before-green-haze:before,\n.border-bottom-after-green-haze:after {\n  border-bottom-color: #44b6ae !important; }\n\n.border-left-before-green-haze:before,\n.border-left-after-green-haze:after {\n  border-left-color: #44b6ae !important; }\n\n.border-right-before-green-haze:before,\n.border-right-after-green-haze:after {\n  border-right-color: #44b6ae !important; }\n\n.bg-green-jungle {\n  background: #26C281 !important; }\n\n.bg-green-jungle-opacity {\n  background: rgba(38, 194, 129, 0.8) !important; }\n\n.bg-hover-green-jungle:hover {\n  background: #26C281 !important; }\n\n.font-green-jungle {\n  color: #26C281 !important; }\n\n.bg-font-green-jungle {\n  color: #FFFFFF !important; }\n\n.border-green-jungle {\n  border-color: #26C281 !important; }\n\n.border-top-green-jungle {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-green-jungle {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-green-jungle {\n  border-left-color: #26C281 !important; }\n\n.border-right-green-jungle {\n  border-right-color: #26C281 !important; }\n\n.bg-before-green-jungle:before,\n.bg-after-green-jungle:after {\n  background: #26C281 !important; }\n\n.border-before-green-jungle:before,\n.border-after-green-jungle:after {\n  border-color: #26C281 !important; }\n\n.border-top-before-green-jungle:before,\n.border-top-after-green-jungle:after {\n  border-top-color: #26C281 !important; }\n\n.border-bottom-before-green-jungle:before,\n.border-bottom-after-green-jungle:after {\n  border-bottom-color: #26C281 !important; }\n\n.border-left-before-green-jungle:before,\n.border-left-after-green-jungle:after {\n  border-left-color: #26C281 !important; }\n\n.border-right-before-green-jungle:before,\n.border-right-after-green-jungle:after {\n  border-right-color: #26C281 !important; }\n\n.bg-green-soft {\n  background: #3faba4 !important; }\n\n.bg-green-soft-opacity {\n  background: rgba(63, 171, 164, 0.8) !important; }\n\n.bg-hover-green-soft:hover {\n  background: #3faba4 !important; }\n\n.font-green-soft {\n  color: #3faba4 !important; }\n\n.bg-font-green-soft {\n  color: #FFFFFF !important; }\n\n.border-green-soft {\n  border-color: #3faba4 !important; }\n\n.border-top-green-soft {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-green-soft {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-green-soft {\n  border-left-color: #3faba4 !important; }\n\n.border-right-green-soft {\n  border-right-color: #3faba4 !important; }\n\n.bg-before-green-soft:before,\n.bg-after-green-soft:after {\n  background: #3faba4 !important; }\n\n.border-before-green-soft:before,\n.border-after-green-soft:after {\n  border-color: #3faba4 !important; }\n\n.border-top-before-green-soft:before,\n.border-top-after-green-soft:after {\n  border-top-color: #3faba4 !important; }\n\n.border-bottom-before-green-soft:before,\n.border-bottom-after-green-soft:after {\n  border-bottom-color: #3faba4 !important; }\n\n.border-left-before-green-soft:before,\n.border-left-after-green-soft:after {\n  border-left-color: #3faba4 !important; }\n\n.border-right-before-green-soft:before,\n.border-right-after-green-soft:after {\n  border-right-color: #3faba4 !important; }\n\n.bg-green-dark {\n  background: #4DB3A2 !important; }\n\n.bg-green-dark-opacity {\n  background: rgba(77, 179, 162, 0.8) !important; }\n\n.bg-hover-green-dark:hover {\n  background: #4DB3A2 !important; }\n\n.font-green-dark {\n  color: #4DB3A2 !important; }\n\n.bg-font-green-dark {\n  color: #FFFFFF !important; }\n\n.border-green-dark {\n  border-color: #4DB3A2 !important; }\n\n.border-top-green-dark {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-green-dark {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-green-dark {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-green-dark {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-before-green-dark:before,\n.bg-after-green-dark:after {\n  background: #4DB3A2 !important; }\n\n.border-before-green-dark:before,\n.border-after-green-dark:after {\n  border-color: #4DB3A2 !important; }\n\n.border-top-before-green-dark:before,\n.border-top-after-green-dark:after {\n  border-top-color: #4DB3A2 !important; }\n\n.border-bottom-before-green-dark:before,\n.border-bottom-after-green-dark:after {\n  border-bottom-color: #4DB3A2 !important; }\n\n.border-left-before-green-dark:before,\n.border-left-after-green-dark:after {\n  border-left-color: #4DB3A2 !important; }\n\n.border-right-before-green-dark:before,\n.border-right-after-green-dark:after {\n  border-right-color: #4DB3A2 !important; }\n\n.bg-green-sharp {\n  background: #2ab4c0 !important; }\n\n.bg-green-sharp-opacity {\n  background: rgba(42, 180, 192, 0.8) !important; }\n\n.bg-hover-green-sharp:hover {\n  background: #2ab4c0 !important; }\n\n.font-green-sharp {\n  color: #2ab4c0 !important; }\n\n.bg-font-green-sharp {\n  color: #FFFFFF !important; }\n\n.border-green-sharp {\n  border-color: #2ab4c0 !important; }\n\n.border-top-green-sharp {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-green-sharp {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-green-sharp {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-green-sharp {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-before-green-sharp:before,\n.bg-after-green-sharp:after {\n  background: #2ab4c0 !important; }\n\n.border-before-green-sharp:before,\n.border-after-green-sharp:after {\n  border-color: #2ab4c0 !important; }\n\n.border-top-before-green-sharp:before,\n.border-top-after-green-sharp:after {\n  border-top-color: #2ab4c0 !important; }\n\n.border-bottom-before-green-sharp:before,\n.border-bottom-after-green-sharp:after {\n  border-bottom-color: #2ab4c0 !important; }\n\n.border-left-before-green-sharp:before,\n.border-left-after-green-sharp:after {\n  border-left-color: #2ab4c0 !important; }\n\n.border-right-before-green-sharp:before,\n.border-right-after-green-sharp:after {\n  border-right-color: #2ab4c0 !important; }\n\n.bg-green-steel {\n  background: #29b4b6 !important; }\n\n.bg-green-steel-opacity {\n  background: rgba(41, 180, 182, 0.8) !important; }\n\n.bg-hover-green-steel:hover {\n  background: #29b4b6 !important; }\n\n.font-green-steel {\n  color: #29b4b6 !important; }\n\n.bg-font-green-steel {\n  color: #FFFFFF !important; }\n\n.border-green-steel {\n  border-color: #29b4b6 !important; }\n\n.border-top-green-steel {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-green-steel {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-green-steel {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-green-steel {\n  border-right-color: #29b4b6 !important; }\n\n.bg-before-green-steel:before,\n.bg-after-green-steel:after {\n  background: #29b4b6 !important; }\n\n.border-before-green-steel:before,\n.border-after-green-steel:after {\n  border-color: #29b4b6 !important; }\n\n.border-top-before-green-steel:before,\n.border-top-after-green-steel:after {\n  border-top-color: #29b4b6 !important; }\n\n.border-bottom-before-green-steel:before,\n.border-bottom-after-green-steel:after {\n  border-bottom-color: #29b4b6 !important; }\n\n.border-left-before-green-steel:before,\n.border-left-after-green-steel:after {\n  border-left-color: #29b4b6 !important; }\n\n.border-right-before-green-steel:before,\n.border-right-after-green-steel:after {\n  border-right-color: #29b4b6 !important; }\n\n.bg-grey {\n  background: #E5E5E5 !important; }\n\n.bg-grey-opacity {\n  background: rgba(229, 229, 229, 0.8) !important; }\n\n.bg-hover-grey:hover {\n  background: #E5E5E5 !important; }\n\n.font-grey {\n  color: #E5E5E5 !important; }\n\n.bg-font-grey {\n  color: #333333 !important; }\n\n.border-grey {\n  border-color: #E5E5E5 !important; }\n\n.border-top-grey {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-grey {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-grey {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-grey {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-before-grey:before,\n.bg-after-grey:after {\n  background: #E5E5E5 !important; }\n\n.border-before-grey:before,\n.border-after-grey:after {\n  border-color: #E5E5E5 !important; }\n\n.border-top-before-grey:before,\n.border-top-after-grey:after {\n  border-top-color: #E5E5E5 !important; }\n\n.border-bottom-before-grey:before,\n.border-bottom-after-grey:after {\n  border-bottom-color: #E5E5E5 !important; }\n\n.border-left-before-grey:before,\n.border-left-after-grey:after {\n  border-left-color: #E5E5E5 !important; }\n\n.border-right-before-grey:before,\n.border-right-after-grey:after {\n  border-right-color: #E5E5E5 !important; }\n\n.bg-grey-steel {\n  background: #e9edef !important; }\n\n.bg-grey-steel-opacity {\n  background: rgba(233, 237, 239, 0.8) !important; }\n\n.bg-hover-grey-steel:hover {\n  background: #e9edef !important; }\n\n.font-grey-steel {\n  color: #e9edef !important; }\n\n.bg-font-grey-steel {\n  color: #80898e !important; }\n\n.border-grey-steel {\n  border-color: #e9edef !important; }\n\n.border-top-grey-steel {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-grey-steel {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-grey-steel {\n  border-left-color: #e9edef !important; }\n\n.border-right-grey-steel {\n  border-right-color: #e9edef !important; }\n\n.bg-before-grey-steel:before,\n.bg-after-grey-steel:after {\n  background: #e9edef !important; }\n\n.border-before-grey-steel:before,\n.border-after-grey-steel:after {\n  border-color: #e9edef !important; }\n\n.border-top-before-grey-steel:before,\n.border-top-after-grey-steel:after {\n  border-top-color: #e9edef !important; }\n\n.border-bottom-before-grey-steel:before,\n.border-bottom-after-grey-steel:after {\n  border-bottom-color: #e9edef !important; }\n\n.border-left-before-grey-steel:before,\n.border-left-after-grey-steel:after {\n  border-left-color: #e9edef !important; }\n\n.border-right-before-grey-steel:before,\n.border-right-after-grey-steel:after {\n  border-right-color: #e9edef !important; }\n\n.bg-grey-cararra {\n  background: #fafafa !important; }\n\n.bg-grey-cararra-opacity {\n  background: rgba(250, 250, 250, 0.8) !important; }\n\n.bg-hover-grey-cararra:hover {\n  background: #fafafa !important; }\n\n.font-grey-cararra {\n  color: #fafafa !important; }\n\n.bg-font-grey-cararra {\n  color: #333333 !important; }\n\n.border-grey-cararra {\n  border-color: #fafafa !important; }\n\n.border-top-grey-cararra {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-grey-cararra {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-grey-cararra {\n  border-left-color: #fafafa !important; }\n\n.border-right-grey-cararra {\n  border-right-color: #fafafa !important; }\n\n.bg-before-grey-cararra:before,\n.bg-after-grey-cararra:after {\n  background: #fafafa !important; }\n\n.border-before-grey-cararra:before,\n.border-after-grey-cararra:after {\n  border-color: #fafafa !important; }\n\n.border-top-before-grey-cararra:before,\n.border-top-after-grey-cararra:after {\n  border-top-color: #fafafa !important; }\n\n.border-bottom-before-grey-cararra:before,\n.border-bottom-after-grey-cararra:after {\n  border-bottom-color: #fafafa !important; }\n\n.border-left-before-grey-cararra:before,\n.border-left-after-grey-cararra:after {\n  border-left-color: #fafafa !important; }\n\n.border-right-before-grey-cararra:before,\n.border-right-after-grey-cararra:after {\n  border-right-color: #fafafa !important; }\n\n.bg-grey-gallery {\n  background: #555555 !important; }\n\n.bg-grey-gallery-opacity {\n  background: rgba(85, 85, 85, 0.8) !important; }\n\n.bg-hover-grey-gallery:hover {\n  background: #555555 !important; }\n\n.font-grey-gallery {\n  color: #555555 !important; }\n\n.bg-font-grey-gallery {\n  color: #ffffff !important; }\n\n.border-grey-gallery {\n  border-color: #555555 !important; }\n\n.border-top-grey-gallery {\n  border-top-color: #555555 !important; }\n\n.border-bottom-grey-gallery {\n  border-bottom-color: #555555 !important; }\n\n.border-left-grey-gallery {\n  border-left-color: #555555 !important; }\n\n.border-right-grey-gallery {\n  border-right-color: #555555 !important; }\n\n.bg-before-grey-gallery:before,\n.bg-after-grey-gallery:after {\n  background: #555555 !important; }\n\n.border-before-grey-gallery:before,\n.border-after-grey-gallery:after {\n  border-color: #555555 !important; }\n\n.border-top-before-grey-gallery:before,\n.border-top-after-grey-gallery:after {\n  border-top-color: #555555 !important; }\n\n.border-bottom-before-grey-gallery:before,\n.border-bottom-after-grey-gallery:after {\n  border-bottom-color: #555555 !important; }\n\n.border-left-before-grey-gallery:before,\n.border-left-after-grey-gallery:after {\n  border-left-color: #555555 !important; }\n\n.border-right-before-grey-gallery:before,\n.border-right-after-grey-gallery:after {\n  border-right-color: #555555 !important; }\n\n.bg-grey-cascade {\n  background: #95A5A6 !important; }\n\n.bg-grey-cascade-opacity {\n  background: rgba(149, 165, 166, 0.8) !important; }\n\n.bg-hover-grey-cascade:hover {\n  background: #95A5A6 !important; }\n\n.font-grey-cascade {\n  color: #95A5A6 !important; }\n\n.bg-font-grey-cascade {\n  color: #FFFFFF !important; }\n\n.border-grey-cascade {\n  border-color: #95A5A6 !important; }\n\n.border-top-grey-cascade {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-grey-cascade {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-grey-cascade {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-grey-cascade {\n  border-right-color: #95A5A6 !important; }\n\n.bg-before-grey-cascade:before,\n.bg-after-grey-cascade:after {\n  background: #95A5A6 !important; }\n\n.border-before-grey-cascade:before,\n.border-after-grey-cascade:after {\n  border-color: #95A5A6 !important; }\n\n.border-top-before-grey-cascade:before,\n.border-top-after-grey-cascade:after {\n  border-top-color: #95A5A6 !important; }\n\n.border-bottom-before-grey-cascade:before,\n.border-bottom-after-grey-cascade:after {\n  border-bottom-color: #95A5A6 !important; }\n\n.border-left-before-grey-cascade:before,\n.border-left-after-grey-cascade:after {\n  border-left-color: #95A5A6 !important; }\n\n.border-right-before-grey-cascade:before,\n.border-right-after-grey-cascade:after {\n  border-right-color: #95A5A6 !important; }\n\n.bg-grey-silver {\n  background: #BFBFBF !important; }\n\n.bg-grey-silver-opacity {\n  background: rgba(191, 191, 191, 0.8) !important; }\n\n.bg-hover-grey-silver:hover {\n  background: #BFBFBF !important; }\n\n.font-grey-silver {\n  color: #BFBFBF !important; }\n\n.bg-font-grey-silver {\n  color: #FAFCFB !important; }\n\n.border-grey-silver {\n  border-color: #BFBFBF !important; }\n\n.border-top-grey-silver {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-grey-silver {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-grey-silver {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-grey-silver {\n  border-right-color: #BFBFBF !important; }\n\n.bg-before-grey-silver:before,\n.bg-after-grey-silver:after {\n  background: #BFBFBF !important; }\n\n.border-before-grey-silver:before,\n.border-after-grey-silver:after {\n  border-color: #BFBFBF !important; }\n\n.border-top-before-grey-silver:before,\n.border-top-after-grey-silver:after {\n  border-top-color: #BFBFBF !important; }\n\n.border-bottom-before-grey-silver:before,\n.border-bottom-after-grey-silver:after {\n  border-bottom-color: #BFBFBF !important; }\n\n.border-left-before-grey-silver:before,\n.border-left-after-grey-silver:after {\n  border-left-color: #BFBFBF !important; }\n\n.border-right-before-grey-silver:before,\n.border-right-after-grey-silver:after {\n  border-right-color: #BFBFBF !important; }\n\n.bg-grey-salsa {\n  background: #ACB5C3 !important; }\n\n.bg-grey-salsa-opacity {\n  background: rgba(172, 181, 195, 0.8) !important; }\n\n.bg-hover-grey-salsa:hover {\n  background: #ACB5C3 !important; }\n\n.font-grey-salsa {\n  color: #ACB5C3 !important; }\n\n.bg-font-grey-salsa {\n  color: #FAFCFB !important; }\n\n.border-grey-salsa {\n  border-color: #ACB5C3 !important; }\n\n.border-top-grey-salsa {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-grey-salsa {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-grey-salsa {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-grey-salsa {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-before-grey-salsa:before,\n.bg-after-grey-salsa:after {\n  background: #ACB5C3 !important; }\n\n.border-before-grey-salsa:before,\n.border-after-grey-salsa:after {\n  border-color: #ACB5C3 !important; }\n\n.border-top-before-grey-salsa:before,\n.border-top-after-grey-salsa:after {\n  border-top-color: #ACB5C3 !important; }\n\n.border-bottom-before-grey-salsa:before,\n.border-bottom-after-grey-salsa:after {\n  border-bottom-color: #ACB5C3 !important; }\n\n.border-left-before-grey-salsa:before,\n.border-left-after-grey-salsa:after {\n  border-left-color: #ACB5C3 !important; }\n\n.border-right-before-grey-salsa:before,\n.border-right-after-grey-salsa:after {\n  border-right-color: #ACB5C3 !important; }\n\n.bg-grey-salt {\n  background: #bfcad1 !important; }\n\n.bg-grey-salt-opacity {\n  background: rgba(191, 202, 209, 0.8) !important; }\n\n.bg-hover-grey-salt:hover {\n  background: #bfcad1 !important; }\n\n.font-grey-salt {\n  color: #bfcad1 !important; }\n\n.bg-font-grey-salt {\n  color: #FAFCFB !important; }\n\n.border-grey-salt {\n  border-color: #bfcad1 !important; }\n\n.border-top-grey-salt {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-grey-salt {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-grey-salt {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-grey-salt {\n  border-right-color: #bfcad1 !important; }\n\n.bg-before-grey-salt:before,\n.bg-after-grey-salt:after {\n  background: #bfcad1 !important; }\n\n.border-before-grey-salt:before,\n.border-after-grey-salt:after {\n  border-color: #bfcad1 !important; }\n\n.border-top-before-grey-salt:before,\n.border-top-after-grey-salt:after {\n  border-top-color: #bfcad1 !important; }\n\n.border-bottom-before-grey-salt:before,\n.border-bottom-after-grey-salt:after {\n  border-bottom-color: #bfcad1 !important; }\n\n.border-left-before-grey-salt:before,\n.border-left-after-grey-salt:after {\n  border-left-color: #bfcad1 !important; }\n\n.border-right-before-grey-salt:before,\n.border-right-after-grey-salt:after {\n  border-right-color: #bfcad1 !important; }\n\n.bg-grey-mint {\n  background: #525e64 !important; }\n\n.bg-grey-mint-opacity {\n  background: rgba(82, 94, 100, 0.8) !important; }\n\n.bg-hover-grey-mint:hover {\n  background: #525e64 !important; }\n\n.font-grey-mint {\n  color: #525e64 !important; }\n\n.bg-font-grey-mint {\n  color: #FFFFFF !important; }\n\n.border-grey-mint {\n  border-color: #525e64 !important; }\n\n.border-top-grey-mint {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-grey-mint {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-grey-mint {\n  border-left-color: #525e64 !important; }\n\n.border-right-grey-mint {\n  border-right-color: #525e64 !important; }\n\n.bg-before-grey-mint:before,\n.bg-after-grey-mint:after {\n  background: #525e64 !important; }\n\n.border-before-grey-mint:before,\n.border-after-grey-mint:after {\n  border-color: #525e64 !important; }\n\n.border-top-before-grey-mint:before,\n.border-top-after-grey-mint:after {\n  border-top-color: #525e64 !important; }\n\n.border-bottom-before-grey-mint:before,\n.border-bottom-after-grey-mint:after {\n  border-bottom-color: #525e64 !important; }\n\n.border-left-before-grey-mint:before,\n.border-left-after-grey-mint:after {\n  border-left-color: #525e64 !important; }\n\n.border-right-before-grey-mint:before,\n.border-right-after-grey-mint:after {\n  border-right-color: #525e64 !important; }\n\n.bg-red {\n  background: #e7505a !important; }\n\n.bg-red-opacity {\n  background: rgba(231, 80, 90, 0.8) !important; }\n\n.bg-hover-red:hover {\n  background: #e7505a !important; }\n\n.font-red {\n  color: #e7505a !important; }\n\n.bg-font-red {\n  color: #ffffff !important; }\n\n.border-red {\n  border-color: #e7505a !important; }\n\n.border-top-red {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-red {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-red {\n  border-left-color: #e7505a !important; }\n\n.border-right-red {\n  border-right-color: #e7505a !important; }\n\n.bg-before-red:before,\n.bg-after-red:after {\n  background: #e7505a !important; }\n\n.border-before-red:before,\n.border-after-red:after {\n  border-color: #e7505a !important; }\n\n.border-top-before-red:before,\n.border-top-after-red:after {\n  border-top-color: #e7505a !important; }\n\n.border-bottom-before-red:before,\n.border-bottom-after-red:after {\n  border-bottom-color: #e7505a !important; }\n\n.border-left-before-red:before,\n.border-left-after-red:after {\n  border-left-color: #e7505a !important; }\n\n.border-right-before-red:before,\n.border-right-after-red:after {\n  border-right-color: #e7505a !important; }\n\n.bg-red-pink {\n  background: #E08283 !important; }\n\n.bg-red-pink-opacity {\n  background: rgba(224, 130, 131, 0.8) !important; }\n\n.bg-hover-red-pink:hover {\n  background: #E08283 !important; }\n\n.font-red-pink {\n  color: #E08283 !important; }\n\n.bg-font-red-pink {\n  color: #ffffff !important; }\n\n.border-red-pink {\n  border-color: #E08283 !important; }\n\n.border-top-red-pink {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-red-pink {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-red-pink {\n  border-left-color: #E08283 !important; }\n\n.border-right-red-pink {\n  border-right-color: #E08283 !important; }\n\n.bg-before-red-pink:before,\n.bg-after-red-pink:after {\n  background: #E08283 !important; }\n\n.border-before-red-pink:before,\n.border-after-red-pink:after {\n  border-color: #E08283 !important; }\n\n.border-top-before-red-pink:before,\n.border-top-after-red-pink:after {\n  border-top-color: #E08283 !important; }\n\n.border-bottom-before-red-pink:before,\n.border-bottom-after-red-pink:after {\n  border-bottom-color: #E08283 !important; }\n\n.border-left-before-red-pink:before,\n.border-left-after-red-pink:after {\n  border-left-color: #E08283 !important; }\n\n.border-right-before-red-pink:before,\n.border-right-after-red-pink:after {\n  border-right-color: #E08283 !important; }\n\n.bg-red-sunglo {\n  background: #E26A6A !important; }\n\n.bg-red-sunglo-opacity {\n  background: rgba(226, 106, 106, 0.8) !important; }\n\n.bg-hover-red-sunglo:hover {\n  background: #E26A6A !important; }\n\n.font-red-sunglo {\n  color: #E26A6A !important; }\n\n.bg-font-red-sunglo {\n  color: #ffffff !important; }\n\n.border-red-sunglo {\n  border-color: #E26A6A !important; }\n\n.border-top-red-sunglo {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-red-sunglo {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-red-sunglo {\n  border-left-color: #E26A6A !important; }\n\n.border-right-red-sunglo {\n  border-right-color: #E26A6A !important; }\n\n.bg-before-red-sunglo:before,\n.bg-after-red-sunglo:after {\n  background: #E26A6A !important; }\n\n.border-before-red-sunglo:before,\n.border-after-red-sunglo:after {\n  border-color: #E26A6A !important; }\n\n.border-top-before-red-sunglo:before,\n.border-top-after-red-sunglo:after {\n  border-top-color: #E26A6A !important; }\n\n.border-bottom-before-red-sunglo:before,\n.border-bottom-after-red-sunglo:after {\n  border-bottom-color: #E26A6A !important; }\n\n.border-left-before-red-sunglo:before,\n.border-left-after-red-sunglo:after {\n  border-left-color: #E26A6A !important; }\n\n.border-right-before-red-sunglo:before,\n.border-right-after-red-sunglo:after {\n  border-right-color: #E26A6A !important; }\n\n.bg-red-intense {\n  background: #e35b5a !important; }\n\n.bg-red-intense-opacity {\n  background: rgba(227, 91, 90, 0.8) !important; }\n\n.bg-hover-red-intense:hover {\n  background: #e35b5a !important; }\n\n.font-red-intense {\n  color: #e35b5a !important; }\n\n.bg-font-red-intense {\n  color: #ffffff !important; }\n\n.border-red-intense {\n  border-color: #e35b5a !important; }\n\n.border-top-red-intense {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-red-intense {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-red-intense {\n  border-left-color: #e35b5a !important; }\n\n.border-right-red-intense {\n  border-right-color: #e35b5a !important; }\n\n.bg-before-red-intense:before,\n.bg-after-red-intense:after {\n  background: #e35b5a !important; }\n\n.border-before-red-intense:before,\n.border-after-red-intense:after {\n  border-color: #e35b5a !important; }\n\n.border-top-before-red-intense:before,\n.border-top-after-red-intense:after {\n  border-top-color: #e35b5a !important; }\n\n.border-bottom-before-red-intense:before,\n.border-bottom-after-red-intense:after {\n  border-bottom-color: #e35b5a !important; }\n\n.border-left-before-red-intense:before,\n.border-left-after-red-intense:after {\n  border-left-color: #e35b5a !important; }\n\n.border-right-before-red-intense:before,\n.border-right-after-red-intense:after {\n  border-right-color: #e35b5a !important; }\n\n.bg-red-thunderbird {\n  background: #D91E18 !important; }\n\n.bg-red-thunderbird-opacity {\n  background: rgba(217, 30, 24, 0.8) !important; }\n\n.bg-hover-red-thunderbird:hover {\n  background: #D91E18 !important; }\n\n.font-red-thunderbird {\n  color: #D91E18 !important; }\n\n.bg-font-red-thunderbird {\n  color: #ffffff !important; }\n\n.border-red-thunderbird {\n  border-color: #D91E18 !important; }\n\n.border-top-red-thunderbird {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-red-thunderbird {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-red-thunderbird {\n  border-left-color: #D91E18 !important; }\n\n.border-right-red-thunderbird {\n  border-right-color: #D91E18 !important; }\n\n.bg-before-red-thunderbird:before,\n.bg-after-red-thunderbird:after {\n  background: #D91E18 !important; }\n\n.border-before-red-thunderbird:before,\n.border-after-red-thunderbird:after {\n  border-color: #D91E18 !important; }\n\n.border-top-before-red-thunderbird:before,\n.border-top-after-red-thunderbird:after {\n  border-top-color: #D91E18 !important; }\n\n.border-bottom-before-red-thunderbird:before,\n.border-bottom-after-red-thunderbird:after {\n  border-bottom-color: #D91E18 !important; }\n\n.border-left-before-red-thunderbird:before,\n.border-left-after-red-thunderbird:after {\n  border-left-color: #D91E18 !important; }\n\n.border-right-before-red-thunderbird:before,\n.border-right-after-red-thunderbird:after {\n  border-right-color: #D91E18 !important; }\n\n.bg-red-flamingo {\n  background: #EF4836 !important; }\n\n.bg-red-flamingo-opacity {\n  background: rgba(239, 72, 54, 0.8) !important; }\n\n.bg-hover-red-flamingo:hover {\n  background: #EF4836 !important; }\n\n.font-red-flamingo {\n  color: #EF4836 !important; }\n\n.bg-font-red-flamingo {\n  color: #ffffff !important; }\n\n.border-red-flamingo {\n  border-color: #EF4836 !important; }\n\n.border-top-red-flamingo {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-red-flamingo {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-red-flamingo {\n  border-left-color: #EF4836 !important; }\n\n.border-right-red-flamingo {\n  border-right-color: #EF4836 !important; }\n\n.bg-before-red-flamingo:before,\n.bg-after-red-flamingo:after {\n  background: #EF4836 !important; }\n\n.border-before-red-flamingo:before,\n.border-after-red-flamingo:after {\n  border-color: #EF4836 !important; }\n\n.border-top-before-red-flamingo:before,\n.border-top-after-red-flamingo:after {\n  border-top-color: #EF4836 !important; }\n\n.border-bottom-before-red-flamingo:before,\n.border-bottom-after-red-flamingo:after {\n  border-bottom-color: #EF4836 !important; }\n\n.border-left-before-red-flamingo:before,\n.border-left-after-red-flamingo:after {\n  border-left-color: #EF4836 !important; }\n\n.border-right-before-red-flamingo:before,\n.border-right-after-red-flamingo:after {\n  border-right-color: #EF4836 !important; }\n\n.bg-red-soft {\n  background: #d05454 !important; }\n\n.bg-red-soft-opacity {\n  background: rgba(208, 84, 84, 0.8) !important; }\n\n.bg-hover-red-soft:hover {\n  background: #d05454 !important; }\n\n.font-red-soft {\n  color: #d05454 !important; }\n\n.bg-font-red-soft {\n  color: #ffffff !important; }\n\n.border-red-soft {\n  border-color: #d05454 !important; }\n\n.border-top-red-soft {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-red-soft {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-red-soft {\n  border-left-color: #d05454 !important; }\n\n.border-right-red-soft {\n  border-right-color: #d05454 !important; }\n\n.bg-before-red-soft:before,\n.bg-after-red-soft:after {\n  background: #d05454 !important; }\n\n.border-before-red-soft:before,\n.border-after-red-soft:after {\n  border-color: #d05454 !important; }\n\n.border-top-before-red-soft:before,\n.border-top-after-red-soft:after {\n  border-top-color: #d05454 !important; }\n\n.border-bottom-before-red-soft:before,\n.border-bottom-after-red-soft:after {\n  border-bottom-color: #d05454 !important; }\n\n.border-left-before-red-soft:before,\n.border-left-after-red-soft:after {\n  border-left-color: #d05454 !important; }\n\n.border-right-before-red-soft:before,\n.border-right-after-red-soft:after {\n  border-right-color: #d05454 !important; }\n\n.bg-red-haze {\n  background: #f36a5a !important; }\n\n.bg-red-haze-opacity {\n  background: rgba(243, 106, 90, 0.8) !important; }\n\n.bg-hover-red-haze:hover {\n  background: #f36a5a !important; }\n\n.font-red-haze {\n  color: #f36a5a !important; }\n\n.bg-font-red-haze {\n  color: #ffffff !important; }\n\n.border-red-haze {\n  border-color: #f36a5a !important; }\n\n.border-top-red-haze {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-red-haze {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-red-haze {\n  border-left-color: #f36a5a !important; }\n\n.border-right-red-haze {\n  border-right-color: #f36a5a !important; }\n\n.bg-before-red-haze:before,\n.bg-after-red-haze:after {\n  background: #f36a5a !important; }\n\n.border-before-red-haze:before,\n.border-after-red-haze:after {\n  border-color: #f36a5a !important; }\n\n.border-top-before-red-haze:before,\n.border-top-after-red-haze:after {\n  border-top-color: #f36a5a !important; }\n\n.border-bottom-before-red-haze:before,\n.border-bottom-after-red-haze:after {\n  border-bottom-color: #f36a5a !important; }\n\n.border-left-before-red-haze:before,\n.border-left-after-red-haze:after {\n  border-left-color: #f36a5a !important; }\n\n.border-right-before-red-haze:before,\n.border-right-after-red-haze:after {\n  border-right-color: #f36a5a !important; }\n\n.bg-red-mint {\n  background: #e43a45 !important; }\n\n.bg-red-mint-opacity {\n  background: rgba(228, 58, 69, 0.8) !important; }\n\n.bg-hover-red-mint:hover {\n  background: #e43a45 !important; }\n\n.font-red-mint {\n  color: #e43a45 !important; }\n\n.bg-font-red-mint {\n  color: #ffffff !important; }\n\n.border-red-mint {\n  border-color: #e43a45 !important; }\n\n.border-top-red-mint {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-red-mint {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-red-mint {\n  border-left-color: #e43a45 !important; }\n\n.border-right-red-mint {\n  border-right-color: #e43a45 !important; }\n\n.bg-before-red-mint:before,\n.bg-after-red-mint:after {\n  background: #e43a45 !important; }\n\n.border-before-red-mint:before,\n.border-after-red-mint:after {\n  border-color: #e43a45 !important; }\n\n.border-top-before-red-mint:before,\n.border-top-after-red-mint:after {\n  border-top-color: #e43a45 !important; }\n\n.border-bottom-before-red-mint:before,\n.border-bottom-after-red-mint:after {\n  border-bottom-color: #e43a45 !important; }\n\n.border-left-before-red-mint:before,\n.border-left-after-red-mint:after {\n  border-left-color: #e43a45 !important; }\n\n.border-right-before-red-mint:before,\n.border-right-after-red-mint:after {\n  border-right-color: #e43a45 !important; }\n\n.bg-yellow {\n  background: #c49f47 !important; }\n\n.bg-yellow-opacity {\n  background: rgba(196, 159, 71, 0.8) !important; }\n\n.bg-hover-yellow:hover {\n  background: #c49f47 !important; }\n\n.font-yellow {\n  color: #c49f47 !important; }\n\n.bg-font-yellow {\n  color: #ffffff !important; }\n\n.border-yellow {\n  border-color: #c49f47 !important; }\n\n.border-top-yellow {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-yellow {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-yellow {\n  border-left-color: #c49f47 !important; }\n\n.border-right-yellow {\n  border-right-color: #c49f47 !important; }\n\n.bg-before-yellow:before,\n.bg-after-yellow:after {\n  background: #c49f47 !important; }\n\n.border-before-yellow:before,\n.border-after-yellow:after {\n  border-color: #c49f47 !important; }\n\n.border-top-before-yellow:before,\n.border-top-after-yellow:after {\n  border-top-color: #c49f47 !important; }\n\n.border-bottom-before-yellow:before,\n.border-bottom-after-yellow:after {\n  border-bottom-color: #c49f47 !important; }\n\n.border-left-before-yellow:before,\n.border-left-after-yellow:after {\n  border-left-color: #c49f47 !important; }\n\n.border-right-before-yellow:before,\n.border-right-after-yellow:after {\n  border-right-color: #c49f47 !important; }\n\n.bg-yellow-gold {\n  background: #E87E04 !important; }\n\n.bg-yellow-gold-opacity {\n  background: rgba(232, 126, 4, 0.8) !important; }\n\n.bg-hover-yellow-gold:hover {\n  background: #E87E04 !important; }\n\n.font-yellow-gold {\n  color: #E87E04 !important; }\n\n.bg-font-yellow-gold {\n  color: #ffffff !important; }\n\n.border-yellow-gold {\n  border-color: #E87E04 !important; }\n\n.border-top-yellow-gold {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-yellow-gold {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-yellow-gold {\n  border-left-color: #E87E04 !important; }\n\n.border-right-yellow-gold {\n  border-right-color: #E87E04 !important; }\n\n.bg-before-yellow-gold:before,\n.bg-after-yellow-gold:after {\n  background: #E87E04 !important; }\n\n.border-before-yellow-gold:before,\n.border-after-yellow-gold:after {\n  border-color: #E87E04 !important; }\n\n.border-top-before-yellow-gold:before,\n.border-top-after-yellow-gold:after {\n  border-top-color: #E87E04 !important; }\n\n.border-bottom-before-yellow-gold:before,\n.border-bottom-after-yellow-gold:after {\n  border-bottom-color: #E87E04 !important; }\n\n.border-left-before-yellow-gold:before,\n.border-left-after-yellow-gold:after {\n  border-left-color: #E87E04 !important; }\n\n.border-right-before-yellow-gold:before,\n.border-right-after-yellow-gold:after {\n  border-right-color: #E87E04 !important; }\n\n.bg-yellow-casablanca {\n  background: #f2784b !important; }\n\n.bg-yellow-casablanca-opacity {\n  background: rgba(242, 120, 75, 0.8) !important; }\n\n.bg-hover-yellow-casablanca:hover {\n  background: #f2784b !important; }\n\n.font-yellow-casablanca {\n  color: #f2784b !important; }\n\n.bg-font-yellow-casablanca {\n  color: #ffffff !important; }\n\n.border-yellow-casablanca {\n  border-color: #f2784b !important; }\n\n.border-top-yellow-casablanca {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-yellow-casablanca {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-yellow-casablanca {\n  border-left-color: #f2784b !important; }\n\n.border-right-yellow-casablanca {\n  border-right-color: #f2784b !important; }\n\n.bg-before-yellow-casablanca:before,\n.bg-after-yellow-casablanca:after {\n  background: #f2784b !important; }\n\n.border-before-yellow-casablanca:before,\n.border-after-yellow-casablanca:after {\n  border-color: #f2784b !important; }\n\n.border-top-before-yellow-casablanca:before,\n.border-top-after-yellow-casablanca:after {\n  border-top-color: #f2784b !important; }\n\n.border-bottom-before-yellow-casablanca:before,\n.border-bottom-after-yellow-casablanca:after {\n  border-bottom-color: #f2784b !important; }\n\n.border-left-before-yellow-casablanca:before,\n.border-left-after-yellow-casablanca:after {\n  border-left-color: #f2784b !important; }\n\n.border-right-before-yellow-casablanca:before,\n.border-right-after-yellow-casablanca:after {\n  border-right-color: #f2784b !important; }\n\n.bg-yellow-crusta {\n  background: #f3c200 !important; }\n\n.bg-yellow-crusta-opacity {\n  background: rgba(243, 194, 0, 0.8) !important; }\n\n.bg-hover-yellow-crusta:hover {\n  background: #f3c200 !important; }\n\n.font-yellow-crusta {\n  color: #f3c200 !important; }\n\n.bg-font-yellow-crusta {\n  color: #ffffff !important; }\n\n.border-yellow-crusta {\n  border-color: #f3c200 !important; }\n\n.border-top-yellow-crusta {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-yellow-crusta {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-yellow-crusta {\n  border-left-color: #f3c200 !important; }\n\n.border-right-yellow-crusta {\n  border-right-color: #f3c200 !important; }\n\n.bg-before-yellow-crusta:before,\n.bg-after-yellow-crusta:after {\n  background: #f3c200 !important; }\n\n.border-before-yellow-crusta:before,\n.border-after-yellow-crusta:after {\n  border-color: #f3c200 !important; }\n\n.border-top-before-yellow-crusta:before,\n.border-top-after-yellow-crusta:after {\n  border-top-color: #f3c200 !important; }\n\n.border-bottom-before-yellow-crusta:before,\n.border-bottom-after-yellow-crusta:after {\n  border-bottom-color: #f3c200 !important; }\n\n.border-left-before-yellow-crusta:before,\n.border-left-after-yellow-crusta:after {\n  border-left-color: #f3c200 !important; }\n\n.border-right-before-yellow-crusta:before,\n.border-right-after-yellow-crusta:after {\n  border-right-color: #f3c200 !important; }\n\n.bg-yellow-lemon {\n  background: #F7CA18 !important; }\n\n.bg-yellow-lemon-opacity {\n  background: rgba(247, 202, 24, 0.8) !important; }\n\n.bg-hover-yellow-lemon:hover {\n  background: #F7CA18 !important; }\n\n.font-yellow-lemon {\n  color: #F7CA18 !important; }\n\n.bg-font-yellow-lemon {\n  color: #ffffff !important; }\n\n.border-yellow-lemon {\n  border-color: #F7CA18 !important; }\n\n.border-top-yellow-lemon {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-yellow-lemon {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-yellow-lemon {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-yellow-lemon {\n  border-right-color: #F7CA18 !important; }\n\n.bg-before-yellow-lemon:before,\n.bg-after-yellow-lemon:after {\n  background: #F7CA18 !important; }\n\n.border-before-yellow-lemon:before,\n.border-after-yellow-lemon:after {\n  border-color: #F7CA18 !important; }\n\n.border-top-before-yellow-lemon:before,\n.border-top-after-yellow-lemon:after {\n  border-top-color: #F7CA18 !important; }\n\n.border-bottom-before-yellow-lemon:before,\n.border-bottom-after-yellow-lemon:after {\n  border-bottom-color: #F7CA18 !important; }\n\n.border-left-before-yellow-lemon:before,\n.border-left-after-yellow-lemon:after {\n  border-left-color: #F7CA18 !important; }\n\n.border-right-before-yellow-lemon:before,\n.border-right-after-yellow-lemon:after {\n  border-right-color: #F7CA18 !important; }\n\n.bg-yellow-saffron {\n  background: #F4D03F !important; }\n\n.bg-yellow-saffron-opacity {\n  background: rgba(244, 208, 63, 0.8) !important; }\n\n.bg-hover-yellow-saffron:hover {\n  background: #F4D03F !important; }\n\n.font-yellow-saffron {\n  color: #F4D03F !important; }\n\n.bg-font-yellow-saffron {\n  color: #ffffff !important; }\n\n.border-yellow-saffron {\n  border-color: #F4D03F !important; }\n\n.border-top-yellow-saffron {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-yellow-saffron {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-yellow-saffron {\n  border-left-color: #F4D03F !important; }\n\n.border-right-yellow-saffron {\n  border-right-color: #F4D03F !important; }\n\n.bg-before-yellow-saffron:before,\n.bg-after-yellow-saffron:after {\n  background: #F4D03F !important; }\n\n.border-before-yellow-saffron:before,\n.border-after-yellow-saffron:after {\n  border-color: #F4D03F !important; }\n\n.border-top-before-yellow-saffron:before,\n.border-top-after-yellow-saffron:after {\n  border-top-color: #F4D03F !important; }\n\n.border-bottom-before-yellow-saffron:before,\n.border-bottom-after-yellow-saffron:after {\n  border-bottom-color: #F4D03F !important; }\n\n.border-left-before-yellow-saffron:before,\n.border-left-after-yellow-saffron:after {\n  border-left-color: #F4D03F !important; }\n\n.border-right-before-yellow-saffron:before,\n.border-right-after-yellow-saffron:after {\n  border-right-color: #F4D03F !important; }\n\n.bg-yellow-soft {\n  background: #c8d046 !important; }\n\n.bg-yellow-soft-opacity {\n  background: rgba(200, 208, 70, 0.8) !important; }\n\n.bg-hover-yellow-soft:hover {\n  background: #c8d046 !important; }\n\n.font-yellow-soft {\n  color: #c8d046 !important; }\n\n.bg-font-yellow-soft {\n  color: #ffffff !important; }\n\n.border-yellow-soft {\n  border-color: #c8d046 !important; }\n\n.border-top-yellow-soft {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-yellow-soft {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-yellow-soft {\n  border-left-color: #c8d046 !important; }\n\n.border-right-yellow-soft {\n  border-right-color: #c8d046 !important; }\n\n.bg-before-yellow-soft:before,\n.bg-after-yellow-soft:after {\n  background: #c8d046 !important; }\n\n.border-before-yellow-soft:before,\n.border-after-yellow-soft:after {\n  border-color: #c8d046 !important; }\n\n.border-top-before-yellow-soft:before,\n.border-top-after-yellow-soft:after {\n  border-top-color: #c8d046 !important; }\n\n.border-bottom-before-yellow-soft:before,\n.border-bottom-after-yellow-soft:after {\n  border-bottom-color: #c8d046 !important; }\n\n.border-left-before-yellow-soft:before,\n.border-left-after-yellow-soft:after {\n  border-left-color: #c8d046 !important; }\n\n.border-right-before-yellow-soft:before,\n.border-right-after-yellow-soft:after {\n  border-right-color: #c8d046 !important; }\n\n.bg-yellow-haze {\n  background: #c5bf66 !important; }\n\n.bg-yellow-haze-opacity {\n  background: rgba(197, 191, 102, 0.8) !important; }\n\n.bg-hover-yellow-haze:hover {\n  background: #c5bf66 !important; }\n\n.font-yellow-haze {\n  color: #c5bf66 !important; }\n\n.bg-font-yellow-haze {\n  color: #ffffff !important; }\n\n.border-yellow-haze {\n  border-color: #c5bf66 !important; }\n\n.border-top-yellow-haze {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-yellow-haze {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-yellow-haze {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-yellow-haze {\n  border-right-color: #c5bf66 !important; }\n\n.bg-before-yellow-haze:before,\n.bg-after-yellow-haze:after {\n  background: #c5bf66 !important; }\n\n.border-before-yellow-haze:before,\n.border-after-yellow-haze:after {\n  border-color: #c5bf66 !important; }\n\n.border-top-before-yellow-haze:before,\n.border-top-after-yellow-haze:after {\n  border-top-color: #c5bf66 !important; }\n\n.border-bottom-before-yellow-haze:before,\n.border-bottom-after-yellow-haze:after {\n  border-bottom-color: #c5bf66 !important; }\n\n.border-left-before-yellow-haze:before,\n.border-left-after-yellow-haze:after {\n  border-left-color: #c5bf66 !important; }\n\n.border-right-before-yellow-haze:before,\n.border-right-after-yellow-haze:after {\n  border-right-color: #c5bf66 !important; }\n\n.bg-yellow-mint {\n  background: #c5b96b !important; }\n\n.bg-yellow-mint-opacity {\n  background: rgba(197, 185, 107, 0.8) !important; }\n\n.bg-hover-yellow-mint:hover {\n  background: #c5b96b !important; }\n\n.font-yellow-mint {\n  color: #c5b96b !important; }\n\n.bg-font-yellow-mint {\n  color: #ffffff !important; }\n\n.border-yellow-mint {\n  border-color: #c5b96b !important; }\n\n.border-top-yellow-mint {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-yellow-mint {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-yellow-mint {\n  border-left-color: #c5b96b !important; }\n\n.border-right-yellow-mint {\n  border-right-color: #c5b96b !important; }\n\n.bg-before-yellow-mint:before,\n.bg-after-yellow-mint:after {\n  background: #c5b96b !important; }\n\n.border-before-yellow-mint:before,\n.border-after-yellow-mint:after {\n  border-color: #c5b96b !important; }\n\n.border-top-before-yellow-mint:before,\n.border-top-after-yellow-mint:after {\n  border-top-color: #c5b96b !important; }\n\n.border-bottom-before-yellow-mint:before,\n.border-bottom-after-yellow-mint:after {\n  border-bottom-color: #c5b96b !important; }\n\n.border-left-before-yellow-mint:before,\n.border-left-after-yellow-mint:after {\n  border-left-color: #c5b96b !important; }\n\n.border-right-before-yellow-mint:before,\n.border-right-after-yellow-mint:after {\n  border-right-color: #c5b96b !important; }\n\n.bg-purple {\n  background: #8E44AD !important; }\n\n.bg-purple-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple:hover {\n  background: #8E44AD !important; }\n\n.font-purple {\n  color: #8E44AD !important; }\n\n.bg-font-purple {\n  color: #ffffff !important; }\n\n.border-purple {\n  border-color: #8E44AD !important; }\n\n.border-top-purple {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple:before,\n.bg-after-purple:after {\n  background: #8E44AD !important; }\n\n.border-before-purple:before,\n.border-after-purple:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple:before,\n.border-top-after-purple:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple:before,\n.border-bottom-after-purple:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple:before,\n.border-left-after-purple:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple:before,\n.border-right-after-purple:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-plum {\n  background: #8775a7 !important; }\n\n.bg-purple-plum-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-plum:hover {\n  background: #8775a7 !important; }\n\n.font-purple-plum {\n  color: #8775a7 !important; }\n\n.bg-font-purple-plum {\n  color: #ffffff !important; }\n\n.border-purple-plum {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-plum {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-plum {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-plum {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-plum {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-plum:before,\n.bg-after-purple-plum:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-plum:before,\n.border-after-purple-plum:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-plum:before,\n.border-top-after-purple-plum:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-plum:before,\n.border-bottom-after-purple-plum:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-plum:before,\n.border-left-after-purple-plum:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-plum:before,\n.border-right-after-purple-plum:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-medium {\n  background: #BF55EC !important; }\n\n.bg-purple-medium-opacity {\n  background: rgba(191, 85, 236, 0.8) !important; }\n\n.bg-hover-purple-medium:hover {\n  background: #BF55EC !important; }\n\n.font-purple-medium {\n  color: #BF55EC !important; }\n\n.bg-font-purple-medium {\n  color: #ffffff !important; }\n\n.border-purple-medium {\n  border-color: #BF55EC !important; }\n\n.border-top-purple-medium {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-purple-medium {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-purple-medium {\n  border-left-color: #BF55EC !important; }\n\n.border-right-purple-medium {\n  border-right-color: #BF55EC !important; }\n\n.bg-before-purple-medium:before,\n.bg-after-purple-medium:after {\n  background: #BF55EC !important; }\n\n.border-before-purple-medium:before,\n.border-after-purple-medium:after {\n  border-color: #BF55EC !important; }\n\n.border-top-before-purple-medium:before,\n.border-top-after-purple-medium:after {\n  border-top-color: #BF55EC !important; }\n\n.border-bottom-before-purple-medium:before,\n.border-bottom-after-purple-medium:after {\n  border-bottom-color: #BF55EC !important; }\n\n.border-left-before-purple-medium:before,\n.border-left-after-purple-medium:after {\n  border-left-color: #BF55EC !important; }\n\n.border-right-before-purple-medium:before,\n.border-right-after-purple-medium:after {\n  border-right-color: #BF55EC !important; }\n\n.bg-purple-studio {\n  background: #8E44AD !important; }\n\n.bg-purple-studio-opacity {\n  background: rgba(142, 68, 173, 0.8) !important; }\n\n.bg-hover-purple-studio:hover {\n  background: #8E44AD !important; }\n\n.font-purple-studio {\n  color: #8E44AD !important; }\n\n.bg-font-purple-studio {\n  color: #ffffff !important; }\n\n.border-purple-studio {\n  border-color: #8E44AD !important; }\n\n.border-top-purple-studio {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-purple-studio {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-purple-studio {\n  border-left-color: #8E44AD !important; }\n\n.border-right-purple-studio {\n  border-right-color: #8E44AD !important; }\n\n.bg-before-purple-studio:before,\n.bg-after-purple-studio:after {\n  background: #8E44AD !important; }\n\n.border-before-purple-studio:before,\n.border-after-purple-studio:after {\n  border-color: #8E44AD !important; }\n\n.border-top-before-purple-studio:before,\n.border-top-after-purple-studio:after {\n  border-top-color: #8E44AD !important; }\n\n.border-bottom-before-purple-studio:before,\n.border-bottom-after-purple-studio:after {\n  border-bottom-color: #8E44AD !important; }\n\n.border-left-before-purple-studio:before,\n.border-left-after-purple-studio:after {\n  border-left-color: #8E44AD !important; }\n\n.border-right-before-purple-studio:before,\n.border-right-after-purple-studio:after {\n  border-right-color: #8E44AD !important; }\n\n.bg-purple-wisteria {\n  background: #9B59B6 !important; }\n\n.bg-purple-wisteria-opacity {\n  background: rgba(155, 89, 182, 0.8) !important; }\n\n.bg-hover-purple-wisteria:hover {\n  background: #9B59B6 !important; }\n\n.font-purple-wisteria {\n  color: #9B59B6 !important; }\n\n.bg-font-purple-wisteria {\n  color: #ffffff !important; }\n\n.border-purple-wisteria {\n  border-color: #9B59B6 !important; }\n\n.border-top-purple-wisteria {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-purple-wisteria {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-purple-wisteria {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-purple-wisteria {\n  border-right-color: #9B59B6 !important; }\n\n.bg-before-purple-wisteria:before,\n.bg-after-purple-wisteria:after {\n  background: #9B59B6 !important; }\n\n.border-before-purple-wisteria:before,\n.border-after-purple-wisteria:after {\n  border-color: #9B59B6 !important; }\n\n.border-top-before-purple-wisteria:before,\n.border-top-after-purple-wisteria:after {\n  border-top-color: #9B59B6 !important; }\n\n.border-bottom-before-purple-wisteria:before,\n.border-bottom-after-purple-wisteria:after {\n  border-bottom-color: #9B59B6 !important; }\n\n.border-left-before-purple-wisteria:before,\n.border-left-after-purple-wisteria:after {\n  border-left-color: #9B59B6 !important; }\n\n.border-right-before-purple-wisteria:before,\n.border-right-after-purple-wisteria:after {\n  border-right-color: #9B59B6 !important; }\n\n.bg-purple-seance {\n  background: #9A12B3 !important; }\n\n.bg-purple-seance-opacity {\n  background: rgba(154, 18, 179, 0.8) !important; }\n\n.bg-hover-purple-seance:hover {\n  background: #9A12B3 !important; }\n\n.font-purple-seance {\n  color: #9A12B3 !important; }\n\n.bg-font-purple-seance {\n  color: #ffffff !important; }\n\n.border-purple-seance {\n  border-color: #9A12B3 !important; }\n\n.border-top-purple-seance {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-purple-seance {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-purple-seance {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-purple-seance {\n  border-right-color: #9A12B3 !important; }\n\n.bg-before-purple-seance:before,\n.bg-after-purple-seance:after {\n  background: #9A12B3 !important; }\n\n.border-before-purple-seance:before,\n.border-after-purple-seance:after {\n  border-color: #9A12B3 !important; }\n\n.border-top-before-purple-seance:before,\n.border-top-after-purple-seance:after {\n  border-top-color: #9A12B3 !important; }\n\n.border-bottom-before-purple-seance:before,\n.border-bottom-after-purple-seance:after {\n  border-bottom-color: #9A12B3 !important; }\n\n.border-left-before-purple-seance:before,\n.border-left-after-purple-seance:after {\n  border-left-color: #9A12B3 !important; }\n\n.border-right-before-purple-seance:before,\n.border-right-after-purple-seance:after {\n  border-right-color: #9A12B3 !important; }\n\n.bg-purple-intense {\n  background: #8775a7 !important; }\n\n.bg-purple-intense-opacity {\n  background: rgba(135, 117, 167, 0.8) !important; }\n\n.bg-hover-purple-intense:hover {\n  background: #8775a7 !important; }\n\n.font-purple-intense {\n  color: #8775a7 !important; }\n\n.bg-font-purple-intense {\n  color: #ffffff !important; }\n\n.border-purple-intense {\n  border-color: #8775a7 !important; }\n\n.border-top-purple-intense {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-purple-intense {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-purple-intense {\n  border-left-color: #8775a7 !important; }\n\n.border-right-purple-intense {\n  border-right-color: #8775a7 !important; }\n\n.bg-before-purple-intense:before,\n.bg-after-purple-intense:after {\n  background: #8775a7 !important; }\n\n.border-before-purple-intense:before,\n.border-after-purple-intense:after {\n  border-color: #8775a7 !important; }\n\n.border-top-before-purple-intense:before,\n.border-top-after-purple-intense:after {\n  border-top-color: #8775a7 !important; }\n\n.border-bottom-before-purple-intense:before,\n.border-bottom-after-purple-intense:after {\n  border-bottom-color: #8775a7 !important; }\n\n.border-left-before-purple-intense:before,\n.border-left-after-purple-intense:after {\n  border-left-color: #8775a7 !important; }\n\n.border-right-before-purple-intense:before,\n.border-right-after-purple-intense:after {\n  border-right-color: #8775a7 !important; }\n\n.bg-purple-sharp {\n  background: #796799 !important; }\n\n.bg-purple-sharp-opacity {\n  background: rgba(121, 103, 153, 0.8) !important; }\n\n.bg-hover-purple-sharp:hover {\n  background: #796799 !important; }\n\n.font-purple-sharp {\n  color: #796799 !important; }\n\n.bg-font-purple-sharp {\n  color: #ffffff !important; }\n\n.border-purple-sharp {\n  border-color: #796799 !important; }\n\n.border-top-purple-sharp {\n  border-top-color: #796799 !important; }\n\n.border-bottom-purple-sharp {\n  border-bottom-color: #796799 !important; }\n\n.border-left-purple-sharp {\n  border-left-color: #796799 !important; }\n\n.border-right-purple-sharp {\n  border-right-color: #796799 !important; }\n\n.bg-before-purple-sharp:before,\n.bg-after-purple-sharp:after {\n  background: #796799 !important; }\n\n.border-before-purple-sharp:before,\n.border-after-purple-sharp:after {\n  border-color: #796799 !important; }\n\n.border-top-before-purple-sharp:before,\n.border-top-after-purple-sharp:after {\n  border-top-color: #796799 !important; }\n\n.border-bottom-before-purple-sharp:before,\n.border-bottom-after-purple-sharp:after {\n  border-bottom-color: #796799 !important; }\n\n.border-left-before-purple-sharp:before,\n.border-left-after-purple-sharp:after {\n  border-left-color: #796799 !important; }\n\n.border-right-before-purple-sharp:before,\n.border-right-after-purple-sharp:after {\n  border-right-color: #796799 !important; }\n\n.bg-purple-soft {\n  background: #8877a9 !important; }\n\n.bg-purple-soft-opacity {\n  background: rgba(136, 119, 169, 0.8) !important; }\n\n.bg-hover-purple-soft:hover {\n  background: #8877a9 !important; }\n\n.font-purple-soft {\n  color: #8877a9 !important; }\n\n.bg-font-purple-soft {\n  color: #ffffff !important; }\n\n.border-purple-soft {\n  border-color: #8877a9 !important; }\n\n.border-top-purple-soft {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-purple-soft {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-purple-soft {\n  border-left-color: #8877a9 !important; }\n\n.border-right-purple-soft {\n  border-right-color: #8877a9 !important; }\n\n.bg-before-purple-soft:before,\n.bg-after-purple-soft:after {\n  background: #8877a9 !important; }\n\n.border-before-purple-soft:before,\n.border-after-purple-soft:after {\n  border-color: #8877a9 !important; }\n\n.border-top-before-purple-soft:before,\n.border-top-after-purple-soft:after {\n  border-top-color: #8877a9 !important; }\n\n.border-bottom-before-purple-soft:before,\n.border-bottom-after-purple-soft:after {\n  border-bottom-color: #8877a9 !important; }\n\n.border-left-before-purple-soft:before,\n.border-left-after-purple-soft:after {\n  border-left-color: #8877a9 !important; }\n\n.border-right-before-purple-soft:before,\n.border-right-after-purple-soft:after {\n  border-right-color: #8877a9 !important; }\n\n/***\nColor library demo\n***/\n.color-demo {\n  border: 1px solid #eee;\n  margin: 0 0 20px 0;\n  cursor: pointer; }\n  .color-demo .color-view {\n    padding: 35px 10px;\n    text-align: center;\n    font-size: 18px; }\n  .color-demo .color-info {\n    border-top: 1px solid #eee;\n    padding: 10px 10px;\n    text-align: center; }\n\n.mt-cookie-consent-bar {\n  position: fixed;\n  bottom: 0;\n  z-index: 10101;\n  padding: 10px 25px;\n  width: 100%;\n  background: rgba(0, 0, 0, 0.9);\n  color: #ffffff;\n  left: 0;\n  right: 0; }\n  .mt-cookie-consent-bar .mt-cookie-consent-bar-holder {\n    display: table;\n    width: 100%; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-content {\n      display: table-cell;\n      text-align: left;\n      vertical-align: middle; }\n    .mt-cookie-consent-bar .mt-cookie-consent-bar-holder .mt-cookie-consent-bar-action {\n      display: table-cell;\n      text-align: right;\n      vertical-align: middle; }\n  .mt-cookie-consent-bar.mt-cookie-consent-bar-light {\n    background: rgba(238, 238, 238, 0.9);\n    color: #333; }\n\n.mt-content-row {\n  display: table;\n  height: 100%;\n  width: 100%; }\n  .mt-content-row .mt-content-col-fluid {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fluid .mt-content-body {\n      margin: 0;\n      height: 100%;\n      width: 100%;\n      display: table; }\n  .mt-content-row .mt-content-col-fixed {\n    display: table-cell; }\n    .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n      height: 100%;\n      width: 100%;\n      display: table;\n      margin-left: 20px;\n      border: 1px solid red; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-content-row {\n    display: block;\n    width: 100%; }\n    .mt-content-row .mt-content-col-fluid {\n      display: block;\n      width: 100%;\n      margin-bottom: 20px; }\n      .mt-content-row .mt-content-col-fluid .mt-content-body {\n        margin: 0; }\n    .mt-content-row .mt-content-col-fixed {\n      display: block;\n      width: 100%; }\n      .mt-content-row .mt-content-col-fixed .mt-content-sidebar {\n        margin-left: 0; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/css/plugins-md.css",
    "content": "@charset \"UTF-8\";\n/******************************\n 3RD PARTY PLUGIN CUSTOMIZATION \n******************************/\n/* Cubic Bezier Transition */\n/***\nBootstrap Colorpicker\n***/\n.input-group.color .input-group-btn i {\n  position: absolute;\n  display: block;\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  right: 6px; }\n\n.colorpicker.dropdown-menu {\n  padding: 5px; }\n\n/* change z-index when opened in modal */\n.modal-open .colorpicker {\n  z-index: 10055 !important; }\n\n/***\nBootstrap Datepaginator\n***/\n.datepaginator a {\n  font-family: 'Open Sans';\n  font-size: 13px;\n  font-weight: 300; }\n\n.datepicker .today {\n  background-image: none !important;\n  filter: none !important; }\n\n#dp-calendar {\n  right: 4px !important; }\n\n.datepaginator .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepaginator .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Datepicker\n***/\n.datepicker.dropdown-menu {\n  padding: 5px; }\n\n.datepicker .selected {\n  background-color: #909090 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .input-daterange input {\n  text-align: left; }\n\n/* change z-index when opened in modal */\n.modal-open .datepicker {\n  z-index: 10055 !important; }\n\n.datepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datepicker table th {\n  color: #333;\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datepicker.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.datepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Daterangepicker\n***/\n.modal-open .daterangepicker {\n  z-index: 10055 !important; }\n\n.daterangepicker {\n  margin-top: 4px; }\n  .daterangepicker .input-mini {\n    width: 100% !important;\n    outline: none !important; }\n\n.daterangepicker td {\n  text-shadow: none; }\n\n.daterangepicker td.active {\n  background-color: #4b8df8;\n  background-image: none;\n  filter: none; }\n\n.daterangepicker th {\n  font-weight: 400;\n  font-size: 14px; }\n\n.daterangepicker .ranges input[type=\"text\"] {\n  width: 70px !important;\n  font-size: 11px;\n  vertical-align: middle; }\n\n.daterangepicker .ranges label {\n  font-weight: 300;\n  display: block; }\n\n.daterangepicker .ranges {\n  width: 170px; }\n  .daterangepicker .ranges ul > li.active {\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px; }\n\n.daterangepicker .ranges .btn {\n  margin-top: 10px; }\n\n.daterangepicker.dropdown-menu {\n  padding: 5px; }\n\n.daterangepicker .ranges li {\n  color: #333; }\n\n.daterangepicker .ranges li.active,\n.daterangepicker .ranges li:hover {\n  background: #4b8df8 !important;\n  border: 1px solid #4b8df8 !important;\n  color: #fff; }\n\n.daterangepicker .range_inputs input {\n  margin-bottom: 0 !important; }\n\n.daterangepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.daterangepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap  Datetimepicker\n***/\n.datetimepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datetimepicker table th {\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datetimepicker.dropdown-menu {\n  padding: 5px; }\n\n.datetimepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datetimepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/* change z-index when opened in modal */\n.modal-open .datetimepicker {\n  z-index: 10055; }\n\n/***\nBootstrap Editable\n***/\n.editable-input table,\n.editable-input table th,\n.editable-input table td,\n.editable-input table tr {\n  border: 0 !important; }\n\n.editable-input .combodate select {\n  margin-bottom: 5px; }\n\n/***\nJansy File Input plugin css changes\n***/\n.fileinput {\n  margin-bottom: 0; }\n  .fileinput .close {\n    float: none; }\n  .fileinput .input-group {\n    white-space: nowrap;\n    overflow: hidden; }\n\n/***\nBootstrap Markdown\n***/\n.md-input {\n  padding: 5px !important;\n  border-bottom: 0 !important;\n  -webkit-border-radius: 0 0 2px 2px;\n  -moz-border-radius: 0 0 2px 2px;\n  -ms-border-radius: 0 0 2px 2px;\n  -o-border-radius: 0 0 2px 2px;\n  border-radius: 0 0 2px 2px; }\n\n.md-editor {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .md-editor .btn-toolbar {\n    margin-left: 0px;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n    .md-editor .btn-toolbar .btn-group .btn-sm.btn {\n      padding-bottom: 3px; }\n    .md-editor .btn-toolbar .btn-group .btn-primary {\n      padding-top: 5px;\n      padding-bottom: 7px; }\n\n.md-editor.active {\n  border: 1px solid #999999;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .md-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .md-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .md-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap Modal\n***/\n/* fix: content shifting to the right on modal open */\n.modal-open.page-overflow .page-container,\n.modal-open.page-overflow .page-container .navbar-fixed-top,\n.modal-open.page-overflow .page-container .navbar-fixed-bottom,\n.modal-open.page-overflow .modal-scrollable {\n  overflow-y: auto !important; }\n\n.modal-scrollable {\n  overflow: hidden !important; }\n\n/* BS 3.3.1 fix */\n.modal-backdrop {\n  position: fixed;\n  bottom: 0; }\n\n.modal-scrollable {\n  overflow: hidden !important;\n  z-index: 10051;\n  overflow-y: scroll !important; }\n\n.modal {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 0 !important; }\n  .modal .modal-body {\n    -webkit-border-radius: 2px;\n    -moz-border-radius: 2px;\n    -ms-border-radius: 2px;\n    -o-border-radius: 2px;\n    border-radius: 2px;\n    border: 0; }\n  .modal .modal-title {\n    font-weight: 400; }\n  .modal .modal-footer {\n    border: 0 !important; }\n\n.modal-backdrop,\n.modal-backdrop.fade.in {\n  opacity: 0.2 ;\n  filter: alpha(opacity=20) ; }\n\n/***\nBootstrap Select\n***/\n.bootstrap-select .btn {\n  border-color: #c2cad8; }\n\n.has-error .bootstrap-select .btn {\n  border-color: #fbe1e3; }\n\n.has-success .bootstrap-select .btn {\n  border-color: #abe7ed; }\n\n.has-warning .bootstrap-select .btn {\n  border-color: #f9e491; }\n\n.bootstrap-select.open .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select.open.dropup .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select .btn:focus {\n  outline: none !important;\n  outline-offset: 0; }\n\n.bootstrap-select.btn-group .dropdown-menu {\n  margin-top: 1px; }\n\n.bootstrap-select.btn-group .dropdown-menu > li > dt > .text {\n  font-weight: 600;\n  font-family: 'Open Sans';\n  font-size: 14px; }\n\n.bootstrap-select.btn-group .dropdown-menu .text-muted {\n  color: #999 !important; }\n\n.bootstrap-select .caret {\n  border: 0;\n  width: auto;\n  height: auto;\n  margin-top: -10px !important; }\n\n.bootstrap-select .caret:before {\n  content: \"\\f107\";\n  display: inline-block;\n  border: 0;\n  font-family: FontAwesome;\n  font-style: normal;\n  font-weight: normal; }\n\n.bootstrap-select .selected i {\n  color: #aaa; }\n\n.bootstrap-select .dropdown-menu {\n  z-index: 1000 !important; }\n\n.modal-open .bootstrap-select .dropdown-menu {\n  z-index: 10050 !important; }\n\n/***\nBootstrap Switch \n***/\n.bootstrap-switch {\n  border-color: #c2cad8; }\n  .bootstrap-switch.bootstrap-switch-focused {\n    box-shadow: none;\n    border-color: #c2cad8; }\n\n/***\nColor variants\n***/\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #337ab7; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #659be0; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #36c6d3; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  color: #fff;\n  background: #F1C40F; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #ed6b75; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #444;\n  background: #e8eaef; }\n\n/* Bootstrap switch on portlet headers */\n.portlet:not(.light) > .portlet-title > .actions > .bootstrap-switch {\n  border-color: transparent;\n  margin-top: 0px; }\n\n/***\nBootstrap Time Picker\n***/\n.bootstrap-timepicker-widget table td a {\n  padding: 4px 0; }\n\n.bootstrap-timepicker-widget input,\n.bootstrap-timepicker-widget input:focus {\n  outline: none !important;\n  border: 0; }\n\n.modal-open .bootstrap-timepicker-widget {\n  z-index: 10055 !important; }\n\n.bootstrap-timepicker-widget.timepicker-orient-bottom:before,\n.bootstrap-timepicker-widget.timepicker-orient-bottom:after {\n  top: auto; }\n\n/***\nToastr Notifications\n***/\n.toast {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.toast {\n  background-color: #030303; }\n\n.toast-success {\n  background-color: #51a351; }\n\n.toast-error {\n  background-color: #bd362f; }\n\n.toast-info {\n  background-color: #2f96b4; }\n\n.toast-warning {\n  background-color: #f89406; }\n\n.toast .toast-close-button {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  text-indent: -100000px;\n  width: 11px;\n  height: 16px;\n  background-repeat: no-repeat !important;\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important; }\n\n.toast-top-center {\n  top: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-top-center .toast {\n    margin: 0 !important; }\n\n.toast-bottom-center {\n  bottom: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-bottom-center .toast {\n    margin: 0 !important; }\n\n/***\nBootstrap Wizard\n***/\n.form-wizard .progress {\n  margin-bottom: 30px; }\n\n.form-wizard .steps {\n  padding: 10px 0;\n  margin-bottom: 15px;\n  background-color: #fff;\n  background-image: none;\n  filter: none;\n  border: 0px;\n  box-shadow: none; }\n  .form-wizard .steps > li > a.step {\n    background-color: #fff;\n    background-image: none;\n    filter: none;\n    border: 0px;\n    box-shadow: none; }\n    .form-wizard .steps > li > a.step:hover {\n      background: none; }\n    .form-wizard .steps > li > a.step > .number {\n      background-color: #eee;\n      display: inline-block;\n      text-align: center !important;\n      font-size: 16px;\n      font-weight: 300;\n      padding: 11px 15px 13px 15px;\n      margin-right: 10px;\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .form-wizard .steps > li > a.step > .desc {\n      display: inline-block;\n      font-size: 16px;\n      font-weight: 300; }\n      .form-wizard .steps > li > a.step > .desc > i {\n        display: none; }\n  .form-wizard .steps > li.active > a.step .number {\n    background-color: #36c6d3;\n    color: #fff; }\n  .form-wizard .steps > li.active > a.step .desc {\n    color: #333; }\n  .form-wizard .steps > li.done > a.step .number {\n    background-color: #F1C40F;\n    color: #fff; }\n  .form-wizard .steps > li.done > a.step .desc {\n    color: #333; }\n    .form-wizard .steps > li.done > a.step .desc i {\n      font-size: 12px;\n      font-weight: normal;\n      color: #999;\n      display: inline-block; }\n\n@media (min-width: 768px) and (max-width: 1200px) {\n  /* 768px & 1200px */\n  .form-wizard .step .desc {\n    margin-top: 10px;\n    display: block; } }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .form-wizard .steps > li > a {\n    text-align: left; } }\n\n/*!\n * Tab drop for Bootstrap\n */\n.tabbable-tabdrop .nav-tabs,\n.tabbable-tabdrop .nav-pills {\n  position: relative; }\n  .tabbable-tabdrop .nav-tabs .caret,\n  .tabbable-tabdrop .nav-pills .caret {\n    display: none; }\n  .tabbable-tabdrop .nav-tabs .tabdrop .dropdown-toggle i,\n  .tabbable-tabdrop .nav-pills .tabdrop .dropdown-toggle i {\n    font-size: 14px; }\n\n.tabbable-tabdrop .dropdown-menu:after {\n  right: 10px;\n  left: auto; }\n\n.tabbable-tabdrop .dropdown-menu:before {\n  right: 9px;\n  left: auto; }\n\n/***\nwysihtml5\n***/\n.wysihtml5-sandbox {\n  width: 100% !important; }\n\n.wysihtml5-toolbar li {\n  margin: 0px;\n  height: 29px; }\n\n.wysihtml5-toolbar li .dropdown-menu {\n  margin-top: 5px; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .wysihtml5-sandbox {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .wysihtml5-sandbox {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .wysihtml5-sandbox {\n  border: 1px solid #f9e491 !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.note-editor {\n  border: 1px solid #c2cad8;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .note-editor .note-toolbar {\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n  .note-editor .note-statusbar {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n    .note-editor .note-statusbar .note-resizebar {\n      border-top: 1px solid #c2cad8; }\n  .note-editor.note-frame.fullscreen {\n    z-index: 10050;\n    width: 100% !important; }\n  .note-editor .dropdown-menu:before {\n    left: 9px;\n    right: auto; }\n  .note-editor .dropdown-menu:after {\n    left: 10px;\n    right: auto; }\n\n.note-link-dialog .checkbox {\n  margin-left: 20px; }\n\n.has-error .note-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .note-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .note-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap GtreeTable\n***/\n.gtreetable .dropdown-menu {\n  margin-top: 0px; }\n  .gtreetable .dropdown-menu:after, .gtreetable .dropdown-menu:before {\n    display: none !important; }\n\n.gtreetable .node-action .form-control {\n  position: relative;\n  top: 2px;\n  display: inline-block; }\n\n.gtreetable .node-icon-selected,\n.gtreetable .node-icon-handle,\n.gtreetable .node-icon-ce,\n.gtreetable .node-icon-type {\n  opacity: 0.6 ;\n  filter: alpha(opacity=60) ; }\n\n/***\nModify bootstrap-tagsinput plugin's css\n***/\n.bootstrap-tagsinput .tag [data-role=\"remove\"] {\n  box-shadow: none;\n  font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:after {\n    font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:hover {\n    text-decoration: none;\n    box-shadow: none; }\n\n.mt-bootstrap-tables .mt-btm-transform .bars {\n  height: auto; }\n\n.fixed-table-toolbar .columns label {\n  margin: 10px;\n  padding: 0 0 0 30px; }\n\n.fixed-table-header th.bs-checkbox {\n  outline: none; }\n  .fixed-table-header th.bs-checkbox .th-inner {\n    overflow: visible; }\n    .fixed-table-header th.bs-checkbox .th-inner .mt-checkbox {\n      right: -5px; }\n\n/***\nBootbox\n***/\n.bootbox .bootbox-close-button {\n  margin-top: 0px !important; }\n\n/*--------------------------------------------------\n    [CSS Animation Amchart]\n----------------------------------------------------*/\n.CSSAnimationChart {\n  width: 100%;\n  height: 500px; }\n  .CSSAnimationChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n.amcharts-graph-g2 .amcharts-graph-stroke {\n  stroke-dasharray: 3px 3px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n.lastBullet {\n  -webkit-animation: am-pulsating 1s ease-out infinite;\n  animation: am-pulsating 1s ease-out infinite; }\n\n@-webkit-keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n@keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n.amcharts-graph-column-front {\n  -webkit-transition: all .3s .3s ease-out;\n  transition: all .3s .3s ease-out; }\n\n.amcharts-graph-column-front:hover {\n  fill: #496375;\n  stroke: #496375;\n  -webkit-transition: all .3s ease-out;\n  transition: all .3s ease-out; }\n\n.amcharts-graph-g3 {\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  stroke-dasharray: 500%;\n  stroke-dasharray: 0 \\0;\n  /* fixes IE prob */\n  stroke-dashoffset: 0 \\0;\n  /* fixes IE prob */\n  -webkit-animation: am-draw 40s;\n  animation: am-draw 40s; }\n\n@-webkit-keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n@keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n/*--------------------------------------------------\n    [Mao Amchart]\n----------------------------------------------------*/\n.mapChart {\n  width: 100%;\n  height: 500px; }\n  .mapChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n/*--------------------------------------------------\n    [Column Line]\n----------------------------------------------------*/\n.columnLine {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n.amcharts-graph-graph2 .amcharts-graph-stroke {\n  stroke-dasharray: 4px 5px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n/*--------------------------------------------------\n    [Animated Pie Chart]\n----------------------------------------------------*/\n.animated-pie-chart {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n/***\nCKEditor css changes\n***/\n.cke {\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px; }\n  .cke .cke-top {\n    -webkit-border-radius: 2px 2px 0 0;\n    -moz-border-radius: 2px 2px 0 0;\n    -ms-border-radius: 2px 2px 0 0;\n    -o-border-radius: 2px 2px 0 0;\n    border-radius: 2px 2px 0 0; }\n  .cke .cke-bottom {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n\n.cke_bottom,\n.cke_inner,\n.cke_top,\n.cke_reset,\n.cke_dialog_title,\n.cke_dialog_footer,\n.cke_dialog {\n  background-image: none !important;\n  filter: none;\n  border-top: 0;\n  border-bottom: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none; }\n\n.cke_dialog_ui_button,\n.cke_dialog_tab {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none !important; }\n\n.cke_dialog_ui_button:hover,\n.cke_dialog_tab:hover {\n  text-decoration: none;\n  text-shadow: none; }\n\n.cke_dialog_ui_input_text {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_combo_button,\n.cke_button,\n.cke_toolbar,\n.cke_toolgroup {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_button,\n.cke_combo_button,\n.cke_panel_grouptitle,\n.cke_hc.cke_panel_listItem a {\n  background-image: none !important;\n  filter: none;\n  text-shadow: none; }\n\n.cke_button:hover,\n.cke_combo_button:hover {\n  background-color: #ddd; }\n\n.cke_toolbar_break {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  box-shadow: none !important;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  -ms-box-shadow: none !important;\n  -o-box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .cke {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .cke {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .cke {\n  border: 1px solid #f9e491 !important; }\n\n/***\nClockface\n***/\n.modal-open .clockface {\n  z-index: 10055 !important; }\n\n.clockface .cell .inner.active,\n.clockface .cell .outer.active {\n  background-color: #4b8df8 !important;\n  background-image: none;\n  filter: none; }\n\n/***\nDatatables general customization\n***/\n.table-checkable tr > th:first-child,\n.table-checkable tr > td:first-child {\n  text-align: center;\n  max-width: 50px;\n  min-width: 40px;\n  padding-left: 0;\n  padding-right: 0; }\n\ntable.dataTable thead th,\ntable.dataTable thead td {\n  border-bottom: 2px solid #e7ecf1;\n  outline: none !important; }\n\ntable.dataTable.no-footer {\n  border-bottom-color: #e7ecf1; }\n\ntable.dataTable tr.heading > th {\n  background-color: #fbfcfd; }\n\ntable.dataTable td.sorting_1, table.dataTable td.sorting_2, table.dataTable td.sorting_3,\ntable.dataTable th.sorting_1,\ntable.dataTable th.sorting_2,\ntable.dataTable th.sorting_3 {\n  background: #fbfcfd !important; }\n\n/***\nExtended pagination\n***/\n.paging_bootstrap_extended {\n  margin: 5px 0 0 0 !important;\n  padding: 0 !important;\n  float: none !important;\n  font-size: 13px; }\n\n.dataTables_extended_wrapper {\n  margin-top: 10px; }\n  .dataTables_extended_wrapper .seperator {\n    padding: 0 2px; }\n  .dataTables_extended_wrapper .table.dataTable {\n    margin: 20px 0 !important; }\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: inline-block;\n    float: none !important;\n    padding: 0 !important;\n    margin: 0 !important;\n    position: static !important; }\n  .dataTables_extended_wrapper .table-group-actions > span {\n    font-size: 13px; }\n  .dataTables_extended_wrapper.DTS .paging_bootstrap_extended {\n    display: inline-block; }\n  .dataTables_extended_wrapper.DTS .dataTables_info {\n    display: inline-block;\n    padding-top: 8px !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_info .seperator {\n      display: none; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollHead {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollHead .dataTables_scrollHeadInner .table.dataTable {\n      margin-bottom: 0 !important; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollBody {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollBody .table.dataTable {\n      margin: 0 !important; }\n\n@media (max-width: 480px) {\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: block;\n    margin-bottom: 10px !important; }\n  .dataTables_extended_wrapper .seperator {\n    display: none !important; } }\n\n.dataTables_extended_wrapper div.dataTables_length label {\n  margin: 0 !important;\n  padding: 0 !important;\n  font-size: 13px;\n  float: none !important;\n  display: inline-block !important; }\n\n.table-container .table-actions-wrapper {\n  display: none; }\n\n/***\nScroller Extension\n***/\n.dataTables_scroll {\n  margin-bottom: 10px; }\n\n.dataTables_scrollHead {\n  border-bottom: 2px solid #e7ecf1 !important; }\n  .dataTables_scrollHead thead th {\n    border-bottom: 0 !important; }\n\n.dataTables_scrollBody {\n  border-bottom: 1px solid #e7ecf1 !important; }\n\n.table-both-scroll .dataTables_scrollBody {\n  border-bottom: 0 !important; }\n\n/***\nDatatables processing\n***/\n.dataTables_wrapper .dataTables_processing {\n  width: 200px;\n  display: inline-block;\n  padding: 7px;\n  left: 50%;\n  margin-left: -100px;\n  margin-top: 10px;\n  text-align: center;\n  color: #3f444a;\n  border: 1px solid #e7ecf1;\n  background: #eef1f5;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n/***\nTool Buttons\n***/\n.dt-button-background {\n  display: none !important; }\n\ndiv.dt-button-collection {\n  border: 1px solid #eee;\n  background: #ffffff;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n  div.dt-button-collection > a.dt-button {\n    background: none;\n    padding: 8px 16px;\n    font-weight: 300;\n    margin: 1px 1px;\n    box-shadow: none !important;\n    border: 0 !important; }\n    div.dt-button-collection > a.dt-button > span {\n      font-size: 14px;\n      color: #333; }\n    div.dt-button-collection > a.dt-button.active {\n      background: #f6f6f6 !important;\n      box-shadow: none !important;\n      border: 0 !important; }\n      div.dt-button-collection > a.dt-button.active > span {\n        color: #333; }\n\nbutton.dt-button,\ndiv.dt-button,\na.dt-button {\n  background-image: none !important;\n  padding: 6px 12px !important; }\n  button.dt-button:last-child,\n  div.dt-button:last-child,\n  a.dt-button:last-child {\n    margin-right: 0; }\n\n.dataTables_wrapper .dt-buttons {\n  float: right; }\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: -64px; }\n  .portlet.box .dataTables_wrapper .dt-buttons {\n    margin-top: -50px; }\n\n/***\nRot Details\n***/\n.dataTable .row-details.row-details-close {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 0; }\n\n.dataTable .row-details.row-details-open {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 -23px; }\n\n/***\nSorting\n***/\ntable.dataTable thead .sorting,\ntable.dataTable thead .sorting_asc,\ntable.dataTable thead .sorting_desc,\ntable.dataTable thead .sorting_asc_disabled,\ntable.dataTable thead .sorting_desc_disabled {\n  cursor: pointer; }\n  table.dataTable thead .sorting:after,\n  table.dataTable thead .sorting_asc:after,\n  table.dataTable thead .sorting_desc:after,\n  table.dataTable thead .sorting_asc_disabled:after,\n  table.dataTable thead .sorting_desc_disabled:after {\n    display: none; }\n\ntable.dataTable thead .sorting {\n  background: url(\"../plugins/datatables/images/sort_both.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc {\n  background: url(\"../plugins/datatables/images/sort_asc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc {\n  background: url(\"../plugins/datatables/images/sort_desc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc_disabled {\n  background: url(\"../plugins/datatables/images/sort_asc_disabled.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc_disabled {\n  background: url(\"../plugins/datatables/images/sort_desc_disabled.png\") no-repeat center right; }\n\ntable.dataTable th:active {\n  outline: none; }\n\n/***\nFixed Header\n***/\ntable.dataTable.fixedHeader-floating {\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n  border: 1px solid #dee5ec;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n.table-header-fixed thead > tr > th {\n  border-top: 0; }\n\n.table > tfoot > tr > th,\n.table > tfoot > tr > td {\n  border-bottom: 0;\n  padding: 10px 18px;\n  border-top: 1px solid #e7ecf1;\n  font-weight: 600; }\n\n/***\nResponsive Datatables\n***/\n.table.dataTable.dt-responsive .table.dataTable.responsive {\n  width: 100%; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control,\ntable.dataTable.dtr-column > tbody > tr > th.control {\n  text-align: center;\n  width: 14px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before, table.dataTable.dtr-column > tbody > tr > th.control:before {\n  margin-left: -8px;\n  text-align: center;\n  text-indent: 0;\n  line-height: 0; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  box-shadow: none !important;\n  background-color: #b0c1d2;\n  font-weight: 300;\n  vertical-align: middle;\n  line-height: 16px;\n  border: 0; }\n\ntable.dataTable.dtr-column > tbody > tr.parent td.control:before,\ntable.dataTable.dtr-column > tbody > tr.parent th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {\n  background-color: #36c6d3;\n  font-weight: 300;\n  vertical-align: middle;\n  border: 0; }\n\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  top: 10px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before {\n  text-align: center;\n  margin-top: -8px; }\n\ntable.dataTable > tbody > tr.child ul li {\n  border: 0; }\n\n@-moz-document url-prefix() {\n  .portlet-datatable .dataTables_wrapper .table-responsive {\n    padding: 0 2px !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .portlet.box .dataTables_wrapper .dt-buttons,\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: 0;\n    margin-bottom: 20px; }\n    .portlet.box .dataTables_wrapper .dt-buttons > .dt-button,\n    .portlet.light .dataTables_wrapper .dt-buttons > .dt-button {\n      margin-top: 5px; } }\n\n.table-scrollable .dataTable th > .btn-group,\n.table-scrollable .dataTable td > .btn-group {\n  position: absolute;\n  margin-top: -2px; }\n\n.dataTable td .popover-content .btn-group {\n  position: static !important; }\n\n.table .btn-group .btn {\n  margin-left: 0;\n  margin-right: -1px; }\n\n/***\nDropzone css changes(new in v1.1.1)\n***/\n.dropzone {\n  -webkit-border-radius: 0px;\n  -moz-border-radius: 0px;\n  border-radius: 0px; }\n\n.dropzone-file-area {\n  border: 2px dashed #028AF4;\n  background: white;\n  padding: 20px;\n  margin: 0 auto;\n  text-align: center; }\n\n.dz-hidden-input {\n  left: 0; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .dropzone-file-area {\n    width: auto; } }\n\n/***\nFancy box fix overlay fix\n***/\n.fancybox-overlay {\n  z-index: 100000; }\n\n.fancybox-opened {\n  z-index: 100001; }\n\n/***\nFuelUX Spinners\n***/\n.spinner-buttons.btn-group-vertical .btn {\n  text-align: center;\n  margin: 0;\n  height: 17px;\n  width: 22px;\n  padding-left: 6px;\n  padding-right: 6px;\n  padding-top: 0px; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up {\n    border-radius: 0;\n    border-top-right-radius: 2px !important; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down {\n    border-radius: 0;\n    border-bottom-right-radius: 2px; }\n\n/***\nFullcalendar\n***/\n/* External events */\n.external-event {\n  display: inline-block;\n  cursor: move;\n  margin-bottom: 5px;\n  margin-left: 5px; }\n\n.fc-scroller {\n  overflow-y: auto;\n  overflow-x: hidden; }\n\n.fc-month-view .fc-scroller {\n  height: auto !important; }\n\n.portlet .event-form-title {\n  font-size: 16px;\n  margin-top: 4px;\n  font-weight: 400;\n  margin-bottom: 10px; }\n\n.portlet.calendar .fc-button {\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  text-shadow: none;\n  border: 0;\n  height: 35px;\n  padding: 5px 8px 8px 8px;\n  margin-left: 2px;\n  border-top-style: none;\n  border-bottom-style: none;\n  border-right-style: solid;\n  border-left-style: solid;\n  border-color: #ddd;\n  background: transparent;\n  color: #fff;\n  top: -48px;\n  outline: none !important;\n  -webkit-border-radius: 2px 2px 0 0;\n  -moz-border-radius: 2px 2px 0 0;\n  -ms-border-radius: 2px 2px 0 0;\n  -o-border-radius: 2px 2px 0 0;\n  border-radius: 2px 2px 0 0; }\n\n.portlet.calendar .fc-toolbar {\n  margin-bottom: 0px; }\n  .portlet.calendar .fc-toolbar h2 {\n    margin-top: 3px;\n    font-size: 17px; }\n\n.portlet.calendar .fc-header {\n  margin-bottom: -21px; }\n\n.portlet.calendar .fc-button-prev {\n  padding-right: 10px;\n  padding-left: 8px; }\n\n.portlet.calendar .fc-button-next {\n  padding-right: 8px;\n  padding-left: 10px; }\n\n.portlet.calendar .fc-button .fc-icon {\n  height: 20px;\n  top: -5px; }\n\n.portlet.calendar .fc-button.fc-state-active, .portlet.calendar .fc-button.fc-state-hover {\n  color: #666;\n  background-color: #fff; }\n\n.portlet.calendar .fc-button.fc-state-disabled {\n  color: #ddd; }\n\n.portlet.calendar .fc-button .fc-icon-left-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:after {\n    content: \"\";\n    margin: 0; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:before {\n    content: \"\\f104\"; }\n\n.portlet.calendar .fc-button .fc-icon-right-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:after {\n    margin: 0;\n    content: \"\"; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:before {\n    content: \"\\f105\"; }\n\n.portlet.calendar .fc-text-arrow {\n  font-size: 22px;\n  font-family: \"Courier New\", Courier, monospace;\n  vertical-align: baseline; }\n\n.portlet.calendar .fc-event {\n  border: 0px;\n  background-color: #69a4e0;\n  color: #fff; }\n  .portlet.calendar .fc-event .fc-content {\n    border: 0px;\n    padding: 5px 7px; }\n  .portlet.calendar .fc-event .fc-time {\n    float: left;\n    text-align: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300;\n    padding-right: 5px; }\n  .portlet.calendar .fc-event .fc-title {\n    text-align: left;\n    float: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300; }\n\n.portlet.calendar .fc-header-title h2 {\n  font-size: 14px;\n  line-height: 20px;\n  font-weight: 400;\n  color: #111; }\n\n.portlet.calendar .fc-widget-header {\n  background-image: none;\n  filter: none;\n  background-color: #eee;\n  text-transform: uppercase;\n  font-weight: 300; }\n\n.portlet.calendar.light .fc-button {\n  top: -60px;\n  color: #666;\n  text-transform: uppercase;\n  font-size: 12px;\n  padding-bottom: 35px; }\n  .portlet.calendar.light .fc-button .fc-text-arrow {\n    margin-top: -6px;\n    display: inline-block; }\n  .portlet.calendar.light .fc-button.fc-state-active, .portlet.calendar.light .fc-button.fc-state-hover {\n    color: #333;\n    border-bottom: 2px solid #36c6d3; }\n  .portlet.calendar.light .fc-button.fc-state-disabled {\n    color: #aaa; }\n\n.portlet.calendar .mobile .fc-button {\n  padding: 0px 6px 20px 6px;\n  margin-left: 2px;\n  border: 0;\n  background-color: #ddd;\n  background-image: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n  color: #000;\n  text-shadow: none;\n  text-align: center; }\n  .portlet.calendar .mobile .fc-button.fc-state-hover, .portlet.calendar .mobile .fc-button.fc-state-active {\n    background-color: #eee; }\n  .portlet.calendar .mobile .fc-button.fc-state-disabled {\n    color: #bbb; }\n\n.portlet.calendar .mobile .fc-button-prev {\n  margin-right: 5px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-button-next {\n  margin-right: -0px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-header-space {\n  margin: 0px;\n  padding: 0px;\n  width: 0px; }\n\n.portlet.calendar .mobile .fc-header-left {\n  position: absolute;\n  z-index: 10; }\n  .portlet.calendar .mobile .fc-header-left .fc-button {\n    top: -2px; }\n\n.portlet.calendar .mobile .fc-header-right {\n  position: relative;\n  right: 0; }\n  .portlet.calendar .mobile .fc-header-right .fc-button {\n    top: 35px; }\n\n.portlet.calendar .mobile .fc-content {\n  margin-top: 53px; }\n\n.portlet.calendar.light .fc-button {\n  top: -47px; }\n\n/***\nGoogle Maps\n***/\n.gmaps {\n  height: 300px;\n  width: 100%;\n  /* important!  bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ }\n  .gmaps img {\n    max-width: none; }\n\n#gmap_static div {\n  background-repeat: no-repeat;\n  background-position: 50% 50%;\n  height: 100%;\n  display: block;\n  height: 300px; }\n\n#gmap_routes_instructions {\n  margin-top: 10px;\n  margin-bottom: 0px; }\n\n/***\nGritter notification modify\n***/\n#gritter-notice-wrapper {\n  right: 1px !important; }\n\n.gritter-close {\n  left: auto !important;\n  right: 3px !important; }\n\n.gritter-title {\n  font-family: 'Open Sans';\n  font-size: 18px;\n  font-weight: 300; }\n\n/***\nDashboard Charts(new in v1.2.1)\n***/\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 14px !important;\n  font-weight: 300;\n  margin: 0 auto;\n  position: relative;\n  text-align: center;\n  width: 75px;\n  height: 75px;\n  line-height: 75px; }\n  .easy-pie-chart .number canvas {\n    position: absolute;\n    top: 0;\n    left: 0; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery File Upload\n***/\n.blueimp-gallery .close {\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important;\n  margin-top: -2px; }\n\n.blueimp-gallery .prev,\n.blueimp-gallery .next {\n  border-radius: 23px !important; }\n\n/***\njQuery Multi Select\n***/\n.ms-container .ms-list {\n  border: 1px solid #e5e5e5;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-optgroup-label {\n  font-size: 14px; }\n\n.ms-container .ms-selectable li.ms-elem-selectable,\n.ms-container .ms-selection li.ms-elem-selection {\n  font-size: 13px; }\n\n.ms-container .ms-list.ms-focus {\n  border-color: #999999;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-selectable li.ms-hover,\n.ms-container .ms-selection li.ms-hover {\n  color: #333;\n  background-color: #eee; }\n\n.ms-container .form-control {\n  margin-bottom: 5px; }\n\n/***\njQuery Notific8 Plugin\n***/\n.jquery-notific8-message {\n  font-size: 13px; }\n\n[class*=\"jquery-notific8\"],\n[class*=\"jquery-notific8\"]:after,\n[class*=\"jquery-notific8\"]:before {\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box; }\n\n.right .jquery-notific8-close-sticky span,\n.left .jquery-notific8-close-sticky span {\n  font-size: 10px; }\n\n.jquery-notific8-heading {\n  font-weight: 300;\n  font-size: 16px; }\n\n/***\nPassword Strength(in v1.4)\n***/\n.password-strength .password-verdict {\n  display: inline-block;\n  margin-top: 6px;\n  margin-left: 5px; }\n\n.password-strength .progress {\n  margin-top: 5px;\n  margin-bottom: 0; }\n\n.password-strength .progress-bar {\n  padding: 2px; }\n\n/***\njQuery Slimscroll\n***/\n.scroller {\n  padding: 0px;\n  margin: 0px;\n  padding-right: 12px;\n  overflow: hidden; }\n\n.scroller-footer {\n  margin-top: 10px; }\n  .scroller-footer:before, .scroller-footer:after {\n    content: \" \";\n    display: table; }\n  .scroller-footer:after {\n    clear: both; }\n\n.portlet-body .slimScrollBar {\n  margin-right: 0px; }\n\n/***\njQuery Sparkline\n***/\n.jqstooltip {\n  width: auto !important;\n  height: auto !important; }\n\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 16px;\n  font-weight: 300;\n  width: 85px;\n  margin: 0 auto; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery UI Sliders(new in v1.1.1)\n***/\n.slider {\n  border: 0;\n  padding: 0;\n  display: block;\n  margin: 12px 5px;\n  min-height: 11px; }\n\n.ui-slider-vertical {\n  width: 11px; }\n\n.ui-slider-horizontal .ui-slider-handle {\n  top: -3px; }\n\n.ui-slider-vertical .ui-slider-handle {\n  left: -3px; }\n\n.ui-slider-vertical,\n.ui-slider-handle {\n  filter: none !important;\n  background-image: none !important; }\n\n/***\nJQVMAP Plugin\n***/\n.jqvmap-zoomout,\n.jqvmap-zoomin {\n  height: 16px;\n  width: 16px;\n  background-color: #666; }\n\n.vmaps {\n  position: relative;\n  overflow: hidden;\n  height: 300px; }\n\n/***\nJstree\n***/\n.jstree-default .jstree-clicked {\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-clicked,\n.jstree-wholerow .jstree-wholerow-clicked {\n  background: none;\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-hovered,\n.jstree-wholerow .jstree-wholerow-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-icon.icon-lg {\n  margin-top: 1px; }\n\n.jstree-open > .jstree-anchor > .fa-folder:before {\n  margin-left: 2px;\n  content: \"\\f07c\"; }\n\n.jstree-default.jstree-rtl .jstree-last {\n  background: transparent;\n  background-repeat: no-repeat; }\n\n.vakata-context,\n.vakata-context ul {\n  padding: 0;\n  min-width: 125px;\n  background-color: #ffffff;\n  font-size: 14px;\n  font-family: \"Segoe UI\",Helvetica, Arial, sans-serif;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.vakata-context li {\n  border: 0; }\n  .vakata-context li a {\n    padding: 0 10px;\n    border: 0; }\n    .vakata-context li a i {\n      display: none; }\n    .vakata-context li a .vakata-contextmenu-sep {\n      display: none; }\n\n.vakata-context .vakata-context-hover > a,\n.vakata-context li a:hover {\n  background-color: #eee;\n  color: #333;\n  box-shadow: none;\n  margin: 0; }\n  .vakata-context .vakata-context-hover > a .span,\n  .vakata-context .vakata-context-hover > a .ins,\n  .vakata-context li a:hover .span,\n  .vakata-context li a:hover .ins {\n    border: 0 !important; }\n\n.vakata-context li a span,\n.vakata-context li a ins {\n  display: none;\n  border: 0 !important; }\n\n.vakata-context .vakata-context-separator a,\n.vakata-context-rtl .vakata-context-separator a {\n  margin: 0;\n  border: 0; }\n\n.jstree-rename-input {\n  background-color: #ffffff !important;\n  border: 1px solid #e5e5e5 !important;\n  outline: none !important;\n  padding: 2px 6px !important;\n  margin-right: -4px !important; }\n\n/***\nNoUIRangeSlider\n***/\n.noUi-horizontal {\n  margin: 9px 0; }\n\n/***\nColor variants\n***/\n.noUi-primary .noUi-connect {\n  background: #337ab7; }\n\n.noUi-info .noUi-connect {\n  background: #659be0; }\n\n.noUi-success .noUi-connect {\n  background: #36c6d3; }\n\n.noUi-warning .noUi-connect {\n  background: #F1C40F; }\n\n.noUi-danger .noUi-connect {\n  background: #ed6b75; }\n\n.noUi-default .noUi-connect {\n  background: #bac3d0; }\n\n/* Conect slider */\n/* For this slider, disable the 'origin' size. */\n.noui-connect .noUi-origin {\n  right: auto;\n  width: 0; }\n\n/* Position the bar and color it. */\n.noui-connect .connect {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  background: #80C9F5;\n  box-shadow: inset 0 0 3px rgba(51, 51, 51, 0.45); }\n\n/* When the slider is moved by tap,\n   transition the connect bar like the handle. */\n.noui-connect.noUi-state-tap .connect {\n  -webkit-transition: left 300ms, right 300ms;\n  transition: left 300ms, right 300ms; }\n\n/**\nnoUI Tooltips\n**/\n.noUi-handle .noUi-tooltip {\n  display: block;\n  position: absolute;\n  border: 1px solid #D9D9D9;\n  font-size: 12px;\n  border-radius: 3px;\n  background: #fff;\n  top: -55px;\n  padding: 5px;\n  left: -10px;\n  text-align: center;\n  min-width: 50px; }\n  .noUi-handle .noUi-tooltip strong {\n    display: block;\n    padding: 2px; }\n\n/***\nGoogle reCaptcha\n***/\n.form-recaptcha-img {\n  margin-bottom: 10px;\n  clear: both;\n  border: 1px solid #e5e5e5;\n  padding: 5px; }\n\niframe[src=\"about:blank\"] {\n  display: none; }\n\n.select2-container--bootstrap .select2-search--dropdown .select2-search__field,\n.select2-container--bootstrap .select2-selection,\n.select2-container--bootstrap.select2-container--focus .select2-selection,\n.select2-container--bootstrap.select2-container--open .select2-selection {\n  -webkit-box-shadow: none;\n  box-shadow: none; }\n\n.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove {\n  cursor: pointer;\n  display: inline-block;\n  font-weight: 700;\n  margin-right: 3px; }\n\n.select2-container--bootstrap .select2-results__group {\n  display: block;\n  font-size: 12px;\n  white-space: nowrap;\n  font-weight: 600;\n  font-family: \"Open Sans\", sans-serif; }\n\n.select2-container--bootstrap .select2-selection {\n  font-family: \"Open Sans\", sans-serif; }\n\n.modal-open .select2-dropdown {\n  z-index: 10060; }\n\n.modal-open .select2-close-mask {\n  z-index: 10055; }\n\n.modal-open .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field {\n  width: auto !important; }\n\n.select2-result-repository {\n  padding-top: 4px;\n  padding-bottom: 3px; }\n\n.select2-result-repository__avatar {\n  float: left;\n  width: 60px;\n  margin-right: 10px; }\n\n.select2-result-repository__avatar img {\n  width: 100%;\n  height: auto;\n  border-radius: 2px; }\n\n.select2-result-repository__meta {\n  margin-left: 70px; }\n\n.select2-result-repository__title {\n  color: black;\n  font-weight: bold;\n  word-wrap: break-word;\n  line-height: 1.1;\n  margin-bottom: 4px; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers {\n  margin-right: 1em; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers, .select2-result-repository__watchers {\n  display: inline-block;\n  color: #aaa;\n  font-size: 11px; }\n\n.select2-result-repository__description {\n  font-size: 13px;\n  color: #777;\n  margin-top: 4px; }\n\n.select2-results__option--highlighted .select2-result-repository__title {\n  color: white; }\n\n.select2-results__option--highlighted .select2-result-repository__forks, .select2-results__option--highlighted .select2-result-repository__stargazers, .select2-results__option--highlighted .select2-result-repository__description, .select2-results__option--highlighted .select2-result-repository__watchers {\n  color: #c1d7e9; }\n\n.select2-selection__choice {\n  background-color: #eee !important;\n  border: 1px solid #eee !important; }\n  .select2-selection__choice .select2-selection__choice__remove {\n    font-weight: normal !important; }\n\n/***\nMorris Charts\n***/\n.portlet-body-morris-fit {\n  margin-right: -20px;\n  margin-left: -20px;\n  margin-bottom: -15px; }\n  .portlet-body-morris-fit > svg {\n    -webkit-border-radius: 0 0 2px 2px;\n    -moz-border-radius: 0 0 2px 2px;\n    -ms-border-radius: 0 0 2px 2px;\n    -o-border-radius: 0 0 2px 2px;\n    border-radius: 0 0 2px 2px; }\n\n.morris-hover.morris-default-style .morris-hover-row-label {\n  text-align: left;\n  font-weight: 400;\n  font-size: 15px;\n  color: #7D8C9D;\n  font-family: \"Open Sans\", sans-serif; }\n\n.morris-hover.morris-default-style .morris-hover-point {\n  text-align: left;\n  font-size: 14px;\n  font-weight: 400;\n  font-family: \"Open Sans\", sans-serif; }\n\n/***\niCheck\n***/\n.icheck-list > label {\n  display: block;\n  margin-bottom: 8px; }\n  .icheck-list > label:last-child {\n    margin-bottom: 0; }\n\n.form-horizontal .icheck-inline {\n  margin-top: 8px; }\n\n.icheck-inline > label {\n  display: inline-block;\n  margin-left: 15px; }\n  .icheck-inline > label:first-child {\n    margin-left: 0; }\n\ndiv[class*='icheckbox_'],\ndiv[class*='iradio_'] {\n  margin-right: 5px;\n  top: -1px !important; }\n\n.icheck-colors {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .icheck-colors > li {\n    padding: 0;\n    margin: 4px;\n    float: left;\n    display: inline-block;\n    height: 20px;\n    width: 20px;\n    background: #000000;\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n    .icheck-colors > li:first-child {\n      margin-left: 0; }\n    .icheck-colors > li:hover {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ;\n      cursor: pointer; }\n    .icheck-colors > li.active {\n      height: 26px;\n      margin-top: 0;\n      opacity: 0.6 ;\n      filter: alpha(opacity=60) ; }\n    .icheck-colors > li.red {\n      background: #d54e21; }\n    .icheck-colors > li.green {\n      background: #78a300; }\n    .icheck-colors > li.blue {\n      background: #0e76a8; }\n    .icheck-colors > li.aero {\n      background: #9cc2cb; }\n    .icheck-colors > li.grey {\n      background: #73716e; }\n    .icheck-colors > li.orange {\n      background: #f70; }\n    .icheck-colors > li.yellow {\n      background: #fc0; }\n    .icheck-colors > li.pink {\n      background: #ff66b5; }\n    .icheck-colors > li.purple {\n      background: #6a5a8c; }\n\n/***\nAngularJS UI-select\n***/\n.ui-select-match-close {\n  margin-top: 5px !important;\n  margin-left: 5px !important; }\n\n.minicolors-swatch {\n  border: 0; }\n\n/***\nCodemirror Plugin\n***/\n.CodeMirror {\n  border: 1px solid #eee;\n  height: auto; }\n\n/***\nPrism Plugin\n***/\npre[class*=\"language-\"] {\n  padding: 10px;\n  background: none !important;\n  border: 1px solid #f1f4f7 !important;\n  box-shadow: none !important;\n  margin: 0; }\n  pre[class*=\"language-\"] code {\n    background: none !important;\n    box-shadow: none !important;\n    border: 0 !important; }\n\n.socicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased; }\n\n.socicon-btn:empty .socicon:empty {\n  width: 1em; }\n\n.socicon-btn {\n  position: relative;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  text-align: center;\n  width: 44px;\n  height: 44px;\n  padding-top: 11px;\n  font-size: 24px;\n  border: 1px solid #e7ecf1;\n  color: #3f444a;\n  transition: background, color 0.3s; }\n  .socicon-btn.socicon-solid {\n    border: 0;\n    width: 46px;\n    height: 46px;\n    padding-top: 12px; }\n  .socicon-btn.socicon-btn-circle {\n    border-radius: 44px !important; }\n  .socicon-btn:hover {\n    transition: background, color 0.3s;\n    text-decoration: none; }\n  .socicon-btn.socicon-lg {\n    width: 54px;\n    height: 54px;\n    padding-top: 13px;\n    font-size: 28px; }\n    .socicon-btn.socicon-lg.socicon-solid {\n      border: 0;\n      width: 55px;\n      height: 55px;\n      padding-top: 13px; }\n  .socicon-btn.socicon-sm {\n    width: 30px;\n    height: 30px;\n    padding-top: 8px;\n    font-size: 16px; }\n    .socicon-btn.socicon-sm.socicon-solid {\n      border: 0;\n      width: 30px;\n      height: 30px;\n      padding-top: 8px; }\n\n.socicons .socicon-btn {\n  margin-bottom: 5px; }\n\n.socicon-twitter:before {\n  content: \"a\"; }\n\n.socicon-facebook:before {\n  content: \"b\"; }\n\n.socicon-google:before {\n  content: \"c\"; }\n\n.socicon-pinterest:before {\n  content: \"d\"; }\n\n.socicon-foursquare:before {\n  content: \"e\"; }\n\n.socicon-yahoo:before {\n  content: \"f\"; }\n\n.socicon-skype:before {\n  content: \"g\"; }\n\n.socicon-yelp:before {\n  content: \"h\"; }\n\n.socicon-feedburner:before {\n  content: \"i\"; }\n\n.socicon-linkedin:before {\n  content: \"j\"; }\n\n.socicon-viadeo:before {\n  content: \"k\"; }\n\n.socicon-xing:before {\n  content: \"l\"; }\n\n.socicon-myspace:before {\n  content: \"m\"; }\n\n.socicon-soundcloud:before {\n  content: \"n\"; }\n\n.socicon-spotify:before {\n  content: \"o\"; }\n\n.socicon-grooveshark:before {\n  content: \"p\"; }\n\n.socicon-lastfm:before {\n  content: \"q\"; }\n\n.socicon-youtube:before {\n  content: \"r\"; }\n\n.socicon-vimeo:before {\n  content: \"s\"; }\n\n.socicon-dailymotion:before {\n  content: \"t\"; }\n\n.socicon-vine:before {\n  content: \"u\"; }\n\n.socicon-flickr:before {\n  content: \"v\"; }\n\n.socicon-500px:before {\n  content: \"w\"; }\n\n.socicon-instagram:before {\n  content: \"x\"; }\n\n.socicon-wordpress:before {\n  content: \"y\"; }\n\n.socicon-tumblr:before {\n  content: \"z\"; }\n\n.socicon-blogger:before {\n  content: \"A\"; }\n\n.socicon-technorati:before {\n  content: \"B\"; }\n\n.socicon-reddit:before {\n  content: \"C\"; }\n\n.socicon-dribbble:before {\n  content: \"D\"; }\n\n.socicon-stumbleupon:before {\n  content: \"E\"; }\n\n.socicon-digg:before {\n  content: \"F\"; }\n\n.socicon-envato:before {\n  content: \"G\"; }\n\n.socicon-behance:before {\n  content: \"H\"; }\n\n.socicon-delicious:before {\n  content: \"I\"; }\n\n.socicon-deviantart:before {\n  content: \"J\"; }\n\n.socicon-forrst:before {\n  content: \"K\"; }\n\n.socicon-playstore:before {\n  content: \"L\"; }\n\n.socicon-zerply:before {\n  content: \"M\"; }\n\n.socicon-wikipedia:before {\n  content: \"N\"; }\n\n.socicon-apple:before {\n  content: \"O\"; }\n\n.socicon-flattr:before {\n  content: \"P\"; }\n\n.socicon-github:before {\n  content: \"Q\"; }\n\n.socicon-chimein:before {\n  content: \"R\"; }\n\n.socicon-friendfeed:before {\n  content: \"S\"; }\n\n.socicon-newsvine:before {\n  content: \"T\"; }\n\n.socicon-identica:before {\n  content: \"U\"; }\n\n.socicon-bebo:before {\n  content: \"V\"; }\n\n.socicon-zynga:before {\n  content: \"W\"; }\n\n.socicon-steam:before {\n  content: \"X\"; }\n\n.socicon-xbox:before {\n  content: \"Y\"; }\n\n.socicon-windows:before {\n  content: \"Z\"; }\n\n.socicon-outlook:before {\n  content: \"1\"; }\n\n.socicon-coderwall:before {\n  content: \"2\"; }\n\n.socicon-tripadvisor:before {\n  content: \"3\"; }\n\n.socicon-appnet:before {\n  content: \"4\"; }\n\n.socicon-goodreads:before {\n  content: \"5\"; }\n\n.socicon-tripit:before {\n  content: \"6\"; }\n\n.socicon-lanyrd:before {\n  content: \"7\"; }\n\n.socicon-slideshare:before {\n  content: \"8\"; }\n\n.socicon-buffer:before {\n  content: \"9\"; }\n\n.socicon-rss:before {\n  content: \",\"; }\n\n.socicon-vkontakte:before {\n  content: \";\"; }\n\n.socicon-disqus:before {\n  content: \":\"; }\n\n.socicon-houzz:before {\n  content: \"+\"; }\n\n.socicon-mail:before {\n  content: \"@\"; }\n\n.socicon-patreon:before {\n  content: \"=\"; }\n\n.socicon-paypal:before {\n  content: \"-\"; }\n\n.socicon-playstation:before {\n  content: \"^\"; }\n\n.socicon-smugmug:before {\n  content: \"¨\"; }\n\n.socicon-swarm:before {\n  content: \"$\"; }\n\n.socicon-triplej:before {\n  content: \"*\"; }\n\n.socicon-yammer:before {\n  content: \"&\"; }\n\n.socicon-stackoverflow:before {\n  content: \"(\"; }\n\n.socicon-drupal:before {\n  content: \"#\"; }\n\n.socicon-odnoklassniki:before {\n  content: \".\"; }\n\n.socicon-android:before {\n  content: \"_\"; }\n\n.socicon-meetup:before {\n  content: \"]\"; }\n\n.socicon-persona:before {\n  content: \")\"; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/css/plugins.css",
    "content": "@charset \"UTF-8\";\n/******************************\n 3RD PARTY PLUGIN CUSTOMIZATION \n******************************/\n/* Cubic Bezier Transition */\n/***\nBootstrap Colorpicker\n***/\n.input-group.color .input-group-btn i {\n  position: absolute;\n  display: block;\n  cursor: pointer;\n  width: 20px;\n  height: 20px;\n  right: 6px; }\n\n.colorpicker.dropdown-menu {\n  padding: 5px; }\n\n/* change z-index when opened in modal */\n.modal-open .colorpicker {\n  z-index: 10055 !important; }\n\n/***\nBootstrap Datepaginator\n***/\n.datepaginator a {\n  font-family: 'Open Sans';\n  font-size: 13px;\n  font-weight: 300; }\n\n.datepicker .today {\n  background-image: none !important;\n  filter: none !important; }\n\n#dp-calendar {\n  right: 4px !important; }\n\n.datepaginator .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepaginator .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Datepicker\n***/\n.datepicker.dropdown-menu {\n  padding: 5px; }\n\n.datepicker .selected {\n  background-color: #909090 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datepicker .input-daterange input {\n  text-align: left; }\n\n/* change z-index when opened in modal */\n.modal-open .datepicker {\n  z-index: 10055 !important; }\n\n.datepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datepicker table th {\n  color: #333;\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datepicker.dropdown-menu {\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.datepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap Daterangepicker\n***/\n.modal-open .daterangepicker {\n  z-index: 10055 !important; }\n\n.daterangepicker {\n  margin-top: 4px; }\n  .daterangepicker .input-mini {\n    width: 100% !important;\n    outline: none !important; }\n\n.daterangepicker td {\n  text-shadow: none; }\n\n.daterangepicker td.active {\n  background-color: #4b8df8;\n  background-image: none;\n  filter: none; }\n\n.daterangepicker th {\n  font-weight: 400;\n  font-size: 14px; }\n\n.daterangepicker .ranges input[type=\"text\"] {\n  width: 70px !important;\n  font-size: 11px;\n  vertical-align: middle; }\n\n.daterangepicker .ranges label {\n  font-weight: 300;\n  display: block; }\n\n.daterangepicker .ranges {\n  width: 170px; }\n  .daterangepicker .ranges ul > li.active {\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n\n.daterangepicker .ranges .btn {\n  margin-top: 10px; }\n\n.daterangepicker.dropdown-menu {\n  padding: 5px; }\n\n.daterangepicker .ranges li {\n  color: #333; }\n\n.daterangepicker .ranges li.active,\n.daterangepicker .ranges li:hover {\n  background: #4b8df8 !important;\n  border: 1px solid #4b8df8 !important;\n  color: #fff; }\n\n.daterangepicker .range_inputs input {\n  margin-bottom: 0 !important; }\n\n.daterangepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.daterangepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/***\nBootstrap  Datetimepicker\n***/\n.datetimepicker table td {\n  color: #000;\n  font-weight: 300  !important;\n  font-family: 'Open Sans' !important; }\n\n.datetimepicker table th {\n  font-family: 'Open Sans' !important;\n  font-weight: 400  !important; }\n\n.datetimepicker.dropdown-menu {\n  padding: 5px; }\n\n.datetimepicker .active {\n  background-color: #4b8df8 !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .active:hover {\n  background-color: #2678FC !important;\n  background-image: none !important;\n  filter: none !important; }\n\n.datetimepicker .fa-angle-left:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n.datetimepicker .fa-angle-right:before {\n  content: \"\"/*rtl:\"\"*/; }\n\n/* change z-index when opened in modal */\n.modal-open .datetimepicker {\n  z-index: 10055; }\n\n/***\nBootstrap Editable\n***/\n.editable-input table,\n.editable-input table th,\n.editable-input table td,\n.editable-input table tr {\n  border: 0 !important; }\n\n.editable-input .combodate select {\n  margin-bottom: 5px; }\n\n/***\nJansy File Input plugin css changes\n***/\n.fileinput {\n  margin-bottom: 0; }\n  .fileinput .close {\n    float: none; }\n  .fileinput .input-group {\n    white-space: nowrap;\n    overflow: hidden; }\n\n/***\nBootstrap Markdown\n***/\n.md-input {\n  padding: 5px !important;\n  border-bottom: 0 !important;\n  -webkit-border-radius: 0 0 4px 4px;\n  -moz-border-radius: 0 0 4px 4px;\n  -ms-border-radius: 0 0 4px 4px;\n  -o-border-radius: 0 0 4px 4px;\n  border-radius: 0 0 4px 4px; }\n\n.md-editor {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .md-editor .btn-toolbar {\n    margin-left: 0px;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n    .md-editor .btn-toolbar .btn-group .btn-sm.btn {\n      padding-bottom: 3px; }\n    .md-editor .btn-toolbar .btn-group .btn-primary {\n      padding-top: 5px;\n      padding-bottom: 7px; }\n\n.md-editor.active {\n  border: 1px solid #999999;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .md-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .md-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .md-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap Modal\n***/\n/* fix: content shifting to the right on modal open */\n.modal-open.page-overflow .page-container,\n.modal-open.page-overflow .page-container .navbar-fixed-top,\n.modal-open.page-overflow .page-container .navbar-fixed-bottom,\n.modal-open.page-overflow .modal-scrollable {\n  overflow-y: auto !important; }\n\n.modal-scrollable {\n  overflow: hidden !important; }\n\n/* BS 3.3.1 fix */\n.modal-backdrop {\n  position: fixed;\n  bottom: 0; }\n\n.modal-scrollable {\n  overflow: hidden !important;\n  z-index: 10051;\n  overflow-y: scroll !important; }\n\n/***\nBootstrap Select\n***/\n.bootstrap-select .btn {\n  border-color: #c2cad8; }\n\n.has-error .bootstrap-select .btn {\n  border-color: #fbe1e3; }\n\n.has-success .bootstrap-select .btn {\n  border-color: #abe7ed; }\n\n.has-warning .bootstrap-select .btn {\n  border-color: #f9e491; }\n\n.bootstrap-select.open .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select.open.dropup .btn {\n  border-color: #93a1bb; }\n\n.bootstrap-select .btn:focus {\n  outline: none !important;\n  outline-offset: 0; }\n\n.bootstrap-select.btn-group .dropdown-menu {\n  margin-top: 1px; }\n\n.bootstrap-select.btn-group .dropdown-menu > li > dt > .text {\n  font-weight: 600;\n  font-family: 'Open Sans';\n  font-size: 14px; }\n\n.bootstrap-select.btn-group .dropdown-menu .text-muted {\n  color: #999 !important; }\n\n.bootstrap-select .caret {\n  border: 0;\n  width: auto;\n  height: auto;\n  margin-top: -10px !important; }\n\n.bootstrap-select .caret:before {\n  content: \"\\f107\";\n  display: inline-block;\n  border: 0;\n  font-family: FontAwesome;\n  font-style: normal;\n  font-weight: normal; }\n\n.bootstrap-select .selected i {\n  color: #aaa; }\n\n.bootstrap-select .dropdown-menu {\n  z-index: 1000 !important; }\n\n.modal-open .bootstrap-select .dropdown-menu {\n  z-index: 10050 !important; }\n\n/***\nBootstrap Switch \n***/\n.bootstrap-switch {\n  border-color: #c2cad8; }\n  .bootstrap-switch.bootstrap-switch-focused {\n    box-shadow: none;\n    border-color: #c2cad8; }\n\n/***\nColor variants\n***/\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #337ab7; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #659be0; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #36c6d3; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  color: #fff;\n  background: #F1C40F; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #ed6b75; }\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #444;\n  background: #e8eaef; }\n\n/* Bootstrap switch on portlet headers */\n.portlet:not(.light) > .portlet-title > .actions > .bootstrap-switch {\n  border-color: transparent;\n  margin-top: 0px; }\n\n/***\nBootstrap Time Picker\n***/\n.bootstrap-timepicker-widget table td a {\n  padding: 4px 0; }\n\n.bootstrap-timepicker-widget input,\n.bootstrap-timepicker-widget input:focus {\n  outline: none !important;\n  border: 0; }\n\n.modal-open .bootstrap-timepicker-widget {\n  z-index: 10055 !important; }\n\n.bootstrap-timepicker-widget.timepicker-orient-bottom:before,\n.bootstrap-timepicker-widget.timepicker-orient-bottom:after {\n  top: auto; }\n\n/***\nToastr Notifications\n***/\n.toast {\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.toast {\n  background-color: #030303; }\n\n.toast-success {\n  background-color: #51a351; }\n\n.toast-error {\n  background-color: #bd362f; }\n\n.toast-info {\n  background-color: #2f96b4; }\n\n.toast-warning {\n  background-color: #f89406; }\n\n.toast .toast-close-button {\n  display: inline-block;\n  margin-top: 0px;\n  margin-right: 0px;\n  text-indent: -100000px;\n  width: 11px;\n  height: 16px;\n  background-repeat: no-repeat !important;\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important; }\n\n.toast-top-center {\n  top: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-top-center .toast {\n    margin: 0 !important; }\n\n.toast-bottom-center {\n  bottom: 12px;\n  margin: 0 auto;\n  left: 50%;\n  margin-left: -150px; }\n  .toast-bottom-center .toast {\n    margin: 0 !important; }\n\n/***\nBootstrap Wizard\n***/\n.form-wizard .progress {\n  margin-bottom: 30px; }\n\n.form-wizard .steps {\n  padding: 10px 0;\n  margin-bottom: 15px;\n  background-color: #fff;\n  background-image: none;\n  filter: none;\n  border: 0px;\n  box-shadow: none; }\n  .form-wizard .steps > li > a.step {\n    background-color: #fff;\n    background-image: none;\n    filter: none;\n    border: 0px;\n    box-shadow: none; }\n    .form-wizard .steps > li > a.step:hover {\n      background: none; }\n    .form-wizard .steps > li > a.step > .number {\n      background-color: #eee;\n      display: inline-block;\n      text-align: center !important;\n      font-size: 16px;\n      font-weight: 300;\n      padding: 11px 15px 13px 15px;\n      margin-right: 10px;\n      height: 45px;\n      width: 45px;\n      -webkit-border-radius: 50% !important;\n      -moz-border-radius: 50% !important;\n      border-radius: 50% !important; }\n    .form-wizard .steps > li > a.step > .desc {\n      display: inline-block;\n      font-size: 16px;\n      font-weight: 300; }\n      .form-wizard .steps > li > a.step > .desc > i {\n        display: none; }\n  .form-wizard .steps > li.active > a.step .number {\n    background-color: #36c6d3;\n    color: #fff; }\n  .form-wizard .steps > li.active > a.step .desc {\n    color: #333; }\n  .form-wizard .steps > li.done > a.step .number {\n    background-color: #F1C40F;\n    color: #fff; }\n  .form-wizard .steps > li.done > a.step .desc {\n    color: #333; }\n    .form-wizard .steps > li.done > a.step .desc i {\n      font-size: 12px;\n      font-weight: normal;\n      color: #999;\n      display: inline-block; }\n\n@media (min-width: 768px) and (max-width: 1200px) {\n  /* 768px & 1200px */\n  .form-wizard .step .desc {\n    margin-top: 10px;\n    display: block; } }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .form-wizard .steps > li > a {\n    text-align: left; } }\n\n/*!\n * Tab drop for Bootstrap\n */\n.tabbable-tabdrop .nav-tabs,\n.tabbable-tabdrop .nav-pills {\n  position: relative; }\n  .tabbable-tabdrop .nav-tabs .caret,\n  .tabbable-tabdrop .nav-pills .caret {\n    display: none; }\n  .tabbable-tabdrop .nav-tabs .tabdrop .dropdown-toggle i,\n  .tabbable-tabdrop .nav-pills .tabdrop .dropdown-toggle i {\n    font-size: 14px; }\n\n.tabbable-tabdrop .dropdown-menu:after {\n  right: 10px;\n  left: auto; }\n\n.tabbable-tabdrop .dropdown-menu:before {\n  right: 9px;\n  left: auto; }\n\n/***\nwysihtml5\n***/\n.wysihtml5-sandbox {\n  width: 100% !important; }\n\n.wysihtml5-toolbar li {\n  margin: 0px;\n  height: 29px; }\n\n.wysihtml5-toolbar li .dropdown-menu {\n  margin-top: 5px; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .wysihtml5-sandbox {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .wysihtml5-sandbox {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .wysihtml5-sandbox {\n  border: 1px solid #f9e491 !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.note-editor {\n  border: 1px solid #c2cad8;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .note-editor .note-toolbar {\n    border-bottom: 1px solid #c2cad8;\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .note-editor .note-statusbar {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n    .note-editor .note-statusbar .note-resizebar {\n      border-top: 1px solid #c2cad8; }\n  .note-editor.note-frame.fullscreen {\n    z-index: 10050;\n    width: 100% !important; }\n  .note-editor .dropdown-menu:before {\n    left: 9px;\n    right: auto; }\n  .note-editor .dropdown-menu:after {\n    left: 10px;\n    right: auto; }\n\n.note-link-dialog .checkbox {\n  margin-left: 20px; }\n\n.has-error .note-editor {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .note-editor {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .note-editor {\n  border: 1px solid #f9e491 !important; }\n\n/***\nBootstrap GtreeTable\n***/\n.gtreetable .dropdown-menu {\n  margin-top: 0px; }\n  .gtreetable .dropdown-menu:after, .gtreetable .dropdown-menu:before {\n    display: none !important; }\n\n.gtreetable .node-action .form-control {\n  position: relative;\n  top: 2px;\n  display: inline-block; }\n\n.gtreetable .node-icon-selected,\n.gtreetable .node-icon-handle,\n.gtreetable .node-icon-ce,\n.gtreetable .node-icon-type {\n  opacity: 0.6 ;\n  filter: alpha(opacity=60) ; }\n\n/***\nModify bootstrap-tagsinput plugin's css\n***/\n.bootstrap-tagsinput .tag [data-role=\"remove\"] {\n  box-shadow: none;\n  font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:after {\n    font-family: arial; }\n  .bootstrap-tagsinput .tag [data-role=\"remove\"]:hover {\n    text-decoration: none;\n    box-shadow: none; }\n\n.mt-bootstrap-tables .mt-btm-transform .bars {\n  height: auto; }\n\n.fixed-table-toolbar .columns label {\n  margin: 10px;\n  padding: 0 0 0 30px; }\n\n.fixed-table-header th.bs-checkbox {\n  outline: none; }\n  .fixed-table-header th.bs-checkbox .th-inner {\n    overflow: visible; }\n    .fixed-table-header th.bs-checkbox .th-inner .mt-checkbox {\n      right: -5px; }\n\n/***\nBootbox\n***/\n.bootbox .bootbox-close-button {\n  margin-top: 0px !important; }\n\n/*--------------------------------------------------\n    [CSS Animation Amchart]\n----------------------------------------------------*/\n.CSSAnimationChart {\n  width: 100%;\n  height: 500px; }\n  .CSSAnimationChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n.amcharts-graph-g2 .amcharts-graph-stroke {\n  stroke-dasharray: 3px 3px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -31px; } }\n\n.lastBullet {\n  -webkit-animation: am-pulsating 1s ease-out infinite;\n  animation: am-pulsating 1s ease-out infinite; }\n\n@-webkit-keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n@keyframes am-pulsating {\n  0% {\n    stroke-opacity: 1;\n    stroke-width: 0px; }\n  100% {\n    stroke-opacity: 0;\n    stroke-width: 50px; } }\n\n.amcharts-graph-column-front {\n  -webkit-transition: all .3s .3s ease-out;\n  transition: all .3s .3s ease-out; }\n\n.amcharts-graph-column-front:hover {\n  fill: #496375;\n  stroke: #496375;\n  -webkit-transition: all .3s ease-out;\n  transition: all .3s ease-out; }\n\n.amcharts-graph-g3 {\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  stroke-dasharray: 500%;\n  stroke-dasharray: 0 \\0;\n  /* fixes IE prob */\n  stroke-dashoffset: 0 \\0;\n  /* fixes IE prob */\n  -webkit-animation: am-draw 40s;\n  animation: am-draw 40s; }\n\n@-webkit-keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n@keyframes am-draw {\n  0% {\n    stroke-dashoffset: 500%; }\n  100% {\n    stroke-dashoffset: 0px; } }\n\n/*--------------------------------------------------\n    [Mao Amchart]\n----------------------------------------------------*/\n.mapChart {\n  width: 100%;\n  height: 500px; }\n  .mapChart a {\n    color: #bbb !important;\n    font-size: 12px !important; }\n\n/*--------------------------------------------------\n    [Column Line]\n----------------------------------------------------*/\n.columnLine {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n.amcharts-graph-graph2 .amcharts-graph-stroke {\n  stroke-dasharray: 4px 5px;\n  stroke-linejoin: round;\n  stroke-linecap: round;\n  -webkit-animation: am-moving-dashes 1s linear infinite;\n  animation: am-moving-dashes 1s linear infinite; }\n\n@-webkit-keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n@keyframes am-moving-dashes {\n  100% {\n    stroke-dashoffset: -28px; } }\n\n/*--------------------------------------------------\n    [Animated Pie Chart]\n----------------------------------------------------*/\n.animated-pie-chart {\n  width: 100%;\n  height: 350px;\n  font-size: 11px; }\n\n/***\nCKEditor css changes\n***/\n.cke {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .cke .cke-top {\n    -webkit-border-radius: 4px 4px 0 0;\n    -moz-border-radius: 4px 4px 0 0;\n    -ms-border-radius: 4px 4px 0 0;\n    -o-border-radius: 4px 4px 0 0;\n    border-radius: 4px 4px 0 0; }\n  .cke .cke-bottom {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n\n.cke_bottom,\n.cke_inner,\n.cke_top,\n.cke_reset,\n.cke_dialog_title,\n.cke_dialog_footer,\n.cke_dialog {\n  background-image: none !important;\n  filter: none;\n  border-top: 0;\n  border-bottom: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none; }\n\n.cke_dialog_ui_button,\n.cke_dialog_tab {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important;\n  text-shadow: none !important; }\n\n.cke_dialog_ui_button:hover,\n.cke_dialog_tab:hover {\n  text-decoration: none;\n  text-shadow: none; }\n\n.cke_dialog_ui_input_text {\n  background-image: none !important;\n  filter: none;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_combo_button,\n.cke_button,\n.cke_toolbar,\n.cke_toolgroup {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  box-shadow: none !important; }\n\n.cke_button,\n.cke_combo_button,\n.cke_panel_grouptitle,\n.cke_hc.cke_panel_listItem a {\n  background-image: none !important;\n  filter: none;\n  text-shadow: none; }\n\n.cke_button:hover,\n.cke_combo_button:hover {\n  background-color: #ddd; }\n\n.cke_toolbar_break {\n  background-image: none !important;\n  filter: none !important;\n  border: 0;\n  box-shadow: none !important;\n  -webkit-box-shadow: none !important;\n  -moz-box-shadow: none !important;\n  -ms-box-shadow: none !important;\n  -o-box-shadow: none !important; }\n\n/***\nError state for WYSIWYG Editors\n***/\n.has-error .cke {\n  border: 1px solid #fbe1e3 !important; }\n\n.has-success .cke {\n  border: 1px solid #abe7ed !important; }\n\n.has-warning .cke {\n  border: 1px solid #f9e491 !important; }\n\n/***\nClockface\n***/\n.modal-open .clockface {\n  z-index: 10055 !important; }\n\n.clockface .cell .inner.active,\n.clockface .cell .outer.active {\n  background-color: #4b8df8 !important;\n  background-image: none;\n  filter: none; }\n\n/***\nDatatables general customization\n***/\n.table-checkable tr > th:first-child,\n.table-checkable tr > td:first-child {\n  text-align: center;\n  max-width: 50px;\n  min-width: 40px;\n  padding-left: 0;\n  padding-right: 0; }\n\ntable.dataTable thead th,\ntable.dataTable thead td {\n  border-bottom: 2px solid #e7ecf1;\n  outline: none !important; }\n\ntable.dataTable.no-footer {\n  border-bottom-color: #e7ecf1; }\n\ntable.dataTable tr.heading > th {\n  background-color: #fbfcfd; }\n\ntable.dataTable td.sorting_1, table.dataTable td.sorting_2, table.dataTable td.sorting_3,\ntable.dataTable th.sorting_1,\ntable.dataTable th.sorting_2,\ntable.dataTable th.sorting_3 {\n  background: #fbfcfd !important; }\n\n/***\nExtended pagination\n***/\n.paging_bootstrap_extended {\n  margin: 5px 0 0 0 !important;\n  padding: 0 !important;\n  float: none !important;\n  font-size: 13px; }\n\n.dataTables_extended_wrapper {\n  margin-top: 10px; }\n  .dataTables_extended_wrapper .seperator {\n    padding: 0 2px; }\n  .dataTables_extended_wrapper .table.dataTable {\n    margin: 20px 0 !important; }\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: inline-block;\n    float: none !important;\n    padding: 0 !important;\n    margin: 0 !important;\n    position: static !important; }\n  .dataTables_extended_wrapper .table-group-actions > span {\n    font-size: 13px; }\n  .dataTables_extended_wrapper.DTS .paging_bootstrap_extended {\n    display: inline-block; }\n  .dataTables_extended_wrapper.DTS .dataTables_info {\n    display: inline-block;\n    padding-top: 8px !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_info .seperator {\n      display: none; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollHead {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollHead .dataTables_scrollHeadInner .table.dataTable {\n      margin-bottom: 0 !important; }\n  .dataTables_extended_wrapper.DTS .dataTables_scrollBody {\n    border-bottom: 0 !important; }\n    .dataTables_extended_wrapper.DTS .dataTables_scrollBody .table.dataTable {\n      margin: 0 !important; }\n\n@media (max-width: 480px) {\n  .dataTables_extended_wrapper div.dataTables_paginate,\n  .dataTables_extended_wrapper div.dataTables_length,\n  .dataTables_extended_wrapper div.dataTables_info {\n    display: block;\n    margin-bottom: 10px !important; }\n  .dataTables_extended_wrapper .seperator {\n    display: none !important; } }\n\n.dataTables_extended_wrapper div.dataTables_length label {\n  margin: 0 !important;\n  padding: 0 !important;\n  font-size: 13px;\n  float: none !important;\n  display: inline-block !important; }\n\n.table-container .table-actions-wrapper {\n  display: none; }\n\n/***\nScroller Extension\n***/\n.dataTables_scroll {\n  margin-bottom: 10px; }\n\n.dataTables_scrollHead {\n  border-bottom: 2px solid #e7ecf1 !important; }\n  .dataTables_scrollHead thead th {\n    border-bottom: 0 !important; }\n\n.dataTables_scrollBody {\n  border-bottom: 1px solid #e7ecf1 !important; }\n\n.table-both-scroll .dataTables_scrollBody {\n  border-bottom: 0 !important; }\n\n/***\nDatatables processing\n***/\n.dataTables_wrapper .dataTables_processing {\n  width: 200px;\n  display: inline-block;\n  padding: 7px;\n  left: 50%;\n  margin-left: -100px;\n  margin-top: 10px;\n  text-align: center;\n  color: #3f444a;\n  border: 1px solid #e7ecf1;\n  background: #eef1f5;\n  vertical-align: middle;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n/***\nTool Buttons\n***/\n.dt-button-background {\n  display: none !important; }\n\ndiv.dt-button-collection {\n  border: 1px solid #eee;\n  background: #ffffff;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  padding: 0; }\n  div.dt-button-collection > a.dt-button {\n    background: none;\n    padding: 8px 16px;\n    font-weight: 300;\n    margin: 1px 1px;\n    box-shadow: none !important;\n    border: 0 !important; }\n    div.dt-button-collection > a.dt-button > span {\n      font-size: 14px;\n      color: #333; }\n    div.dt-button-collection > a.dt-button.active {\n      background: #f6f6f6 !important;\n      box-shadow: none !important;\n      border: 0 !important; }\n      div.dt-button-collection > a.dt-button.active > span {\n        color: #333; }\n\nbutton.dt-button,\ndiv.dt-button,\na.dt-button {\n  background-image: none !important;\n  padding: 6px 12px !important; }\n  button.dt-button:last-child,\n  div.dt-button:last-child,\n  a.dt-button:last-child {\n    margin-right: 0; }\n\n.dataTables_wrapper .dt-buttons {\n  float: right; }\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: -64px; }\n  .portlet.box .dataTables_wrapper .dt-buttons {\n    margin-top: -50px; }\n\n/***\nRot Details\n***/\n.dataTable .row-details.row-details-close {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 0; }\n\n.dataTable .row-details.row-details-open {\n  background: url(\"../img/datatable-row-openclose.png\") no-repeat 0 -23px; }\n\n/***\nSorting\n***/\ntable.dataTable thead .sorting,\ntable.dataTable thead .sorting_asc,\ntable.dataTable thead .sorting_desc,\ntable.dataTable thead .sorting_asc_disabled,\ntable.dataTable thead .sorting_desc_disabled {\n  cursor: pointer; }\n  table.dataTable thead .sorting:after,\n  table.dataTable thead .sorting_asc:after,\n  table.dataTable thead .sorting_desc:after,\n  table.dataTable thead .sorting_asc_disabled:after,\n  table.dataTable thead .sorting_desc_disabled:after {\n    display: none; }\n\ntable.dataTable thead .sorting {\n  background: url(\"../plugins/datatables/images/sort_both.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc {\n  background: url(\"../plugins/datatables/images/sort_asc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc {\n  background: url(\"../plugins/datatables/images/sort_desc.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_asc_disabled {\n  background: url(\"../plugins/datatables/images/sort_asc_disabled.png\") no-repeat center right; }\n\ntable.dataTable thead .sorting_desc_disabled {\n  background: url(\"../plugins/datatables/images/sort_desc_disabled.png\") no-repeat center right; }\n\ntable.dataTable th:active {\n  outline: none; }\n\n/***\nFixed Header\n***/\ntable.dataTable.fixedHeader-floating {\n  margin-top: 0 !important;\n  margin-bottom: 0 !important;\n  border: 1px solid #dee5ec;\n  -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);\n  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); }\n\n.table-header-fixed thead > tr > th {\n  border-top: 0; }\n\n.table > tfoot > tr > th,\n.table > tfoot > tr > td {\n  border-bottom: 0;\n  padding: 10px 18px;\n  border-top: 1px solid #e7ecf1;\n  font-weight: 600; }\n\n/***\nResponsive Datatables\n***/\n.table.dataTable.dt-responsive\n.table.dataTable.responsive {\n  width: 100%; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control,\ntable.dataTable.dtr-column > tbody > tr > th.control {\n  text-align: center;\n  width: 14px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before, table.dataTable.dtr-column > tbody > tr > th.control:before {\n  margin-left: -8px;\n  text-align: center;\n  text-indent: 0;\n  line-height: 0; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  box-shadow: none !important;\n  background-color: #b0c1d2;\n  font-weight: 300;\n  vertical-align: middle;\n  line-height: 16px;\n  border: 0; }\n\ntable.dataTable.dtr-column > tbody > tr.parent td.control:before,\ntable.dataTable.dtr-column > tbody > tr.parent th.control:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {\n  background-color: #36c6d3;\n  font-weight: 300;\n  vertical-align: middle;\n  border: 0; }\n\ntable.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,\ntable.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {\n  top: 10px; }\n\ntable.dataTable.dtr-column > tbody > tr > td.control:before,\ntable.dataTable.dtr-column > tbody > tr > th.control:before {\n  text-align: center;\n  margin-top: -8px; }\n\ntable.dataTable > tbody > tr.child ul li {\n  border: 0; }\n\n@-moz-document url-prefix() {\n  .portlet-datatable .dataTables_wrapper .table-responsive {\n    padding: 0 2px !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .portlet.box .dataTables_wrapper .dt-buttons,\n  .portlet.light .dataTables_wrapper .dt-buttons {\n    margin-top: 0;\n    margin-bottom: 20px; }\n    .portlet.box .dataTables_wrapper .dt-buttons > .dt-button,\n    .portlet.light .dataTables_wrapper .dt-buttons > .dt-button {\n      margin-top: 5px; } }\n\n.table-scrollable .dataTable th > .btn-group,\n.table-scrollable .dataTable td > .btn-group {\n  position: absolute;\n  margin-top: -2px; }\n\n.dataTable td .popover-content .btn-group {\n  position: static !important; }\n\n.table .btn-group .btn {\n  margin-left: 0;\n  margin-right: -1px; }\n\n/***\nDropzone css changes(new in v1.1.1)\n***/\n.dropzone {\n  -webkit-border-radius: 0px;\n  -moz-border-radius: 0px;\n  border-radius: 0px; }\n\n.dropzone-file-area {\n  border: 2px dashed #028AF4;\n  background: white;\n  padding: 20px;\n  margin: 0 auto;\n  text-align: center; }\n\n.dz-hidden-input {\n  left: 0; }\n\n@media (max-width: 768px) {\n  /* 768px */\n  .dropzone-file-area {\n    width: auto; } }\n\n/***\nFancy box fix overlay fix\n***/\n.fancybox-overlay {\n  z-index: 100000; }\n\n.fancybox-opened {\n  z-index: 100001; }\n\n/***\nFuelUX Spinners\n***/\n.spinner-buttons.btn-group-vertical .btn {\n  text-align: center;\n  margin: 0;\n  height: 17px;\n  width: 22px;\n  padding-left: 6px;\n  padding-right: 6px;\n  padding-top: 0px; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up {\n    border-radius: 0;\n    border-top-right-radius: 4px !important; }\n  .page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down {\n    border-radius: 0;\n    border-bottom-right-radius: 4px; }\n\n/***\nFullcalendar\n***/\n/* External events */\n.external-event {\n  display: inline-block;\n  cursor: move;\n  margin-bottom: 5px;\n  margin-left: 5px; }\n\n.fc-scroller {\n  overflow-y: auto;\n  overflow-x: hidden; }\n\n.fc-month-view .fc-scroller {\n  height: auto !important; }\n\n.portlet .event-form-title {\n  font-size: 16px;\n  margin-top: 4px;\n  font-weight: 400;\n  margin-bottom: 10px; }\n\n.portlet.calendar .fc-button {\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  text-shadow: none;\n  border: 0;\n  height: 35px;\n  padding: 5px 8px 8px 8px;\n  margin-left: 2px;\n  border-top-style: none;\n  border-bottom-style: none;\n  border-right-style: solid;\n  border-left-style: solid;\n  border-color: #ddd;\n  background: transparent;\n  color: #fff;\n  top: -48px;\n  outline: none !important;\n  -webkit-border-radius: 4px 4px 0 0;\n  -moz-border-radius: 4px 4px 0 0;\n  -ms-border-radius: 4px 4px 0 0;\n  -o-border-radius: 4px 4px 0 0;\n  border-radius: 4px 4px 0 0; }\n\n.portlet.calendar .fc-toolbar {\n  margin-bottom: 0px; }\n  .portlet.calendar .fc-toolbar h2 {\n    margin-top: 3px;\n    font-size: 17px; }\n\n.portlet.calendar .fc-header {\n  margin-bottom: -21px; }\n\n.portlet.calendar .fc-button-prev {\n  padding-right: 10px;\n  padding-left: 8px; }\n\n.portlet.calendar .fc-button-next {\n  padding-right: 8px;\n  padding-left: 10px; }\n\n.portlet.calendar .fc-button .fc-icon {\n  height: 20px;\n  top: -5px; }\n\n.portlet.calendar .fc-button.fc-state-active, .portlet.calendar .fc-button.fc-state-hover {\n  color: #666;\n  background-color: #fff; }\n\n.portlet.calendar .fc-button.fc-state-disabled {\n  color: #ddd; }\n\n.portlet.calendar .fc-button .fc-icon-left-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:after {\n    content: \"\";\n    margin: 0; }\n  .portlet.calendar .fc-button .fc-icon-left-single-arrow:before {\n    content: \"\\f104\"; }\n\n.portlet.calendar .fc-button .fc-icon-right-single-arrow {\n  font-family: FontAwesome;\n  display: inline-block;\n  font-size: 16px; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:after {\n    margin: 0;\n    content: \"\"; }\n  .portlet.calendar .fc-button .fc-icon-right-single-arrow:before {\n    content: \"\\f105\"; }\n\n.portlet.calendar .fc-text-arrow {\n  font-size: 22px;\n  font-family: \"Courier New\", Courier, monospace;\n  vertical-align: baseline; }\n\n.portlet.calendar .fc-event {\n  border: 0px;\n  background-color: #69a4e0;\n  color: #fff; }\n  .portlet.calendar .fc-event .fc-content {\n    border: 0px;\n    padding: 5px 7px; }\n  .portlet.calendar .fc-event .fc-time {\n    float: left;\n    text-align: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300;\n    padding-right: 5px; }\n  .portlet.calendar .fc-event .fc-title {\n    text-align: left;\n    float: left;\n    color: #fff;\n    font-size: 14px;\n    font-weight: 300; }\n\n.portlet.calendar .fc-header-title h2 {\n  font-size: 14px;\n  line-height: 20px;\n  font-weight: 400;\n  color: #111; }\n\n.portlet.calendar .fc-widget-header {\n  background-image: none;\n  filter: none;\n  background-color: #eee;\n  text-transform: uppercase;\n  font-weight: 300; }\n\n.portlet.calendar.light .fc-button {\n  top: -60px;\n  color: #666;\n  text-transform: uppercase;\n  font-size: 12px;\n  padding-bottom: 35px; }\n  .portlet.calendar.light .fc-button .fc-text-arrow {\n    margin-top: -6px;\n    display: inline-block; }\n  .portlet.calendar.light .fc-button.fc-state-active, .portlet.calendar.light .fc-button.fc-state-hover {\n    color: #333;\n    border-bottom: 2px solid #36c6d3; }\n  .portlet.calendar.light .fc-button.fc-state-disabled {\n    color: #aaa; }\n\n.portlet.calendar .mobile .fc-button {\n  padding: 0px 6px 20px 6px;\n  margin-left: 2px;\n  border: 0;\n  background-color: #ddd;\n  background-image: none;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n  color: #000;\n  text-shadow: none;\n  text-align: center; }\n  .portlet.calendar .mobile .fc-button.fc-state-hover, .portlet.calendar .mobile .fc-button.fc-state-active {\n    background-color: #eee; }\n  .portlet.calendar .mobile .fc-button.fc-state-disabled {\n    color: #bbb; }\n\n.portlet.calendar .mobile .fc-button-prev {\n  margin-right: 5px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-button-next {\n  margin-right: -0px;\n  margin-top: -2px; }\n\n.portlet.calendar .mobile .fc-header-space {\n  margin: 0px;\n  padding: 0px;\n  width: 0px; }\n\n.portlet.calendar .mobile .fc-header-left {\n  position: absolute;\n  z-index: 10; }\n  .portlet.calendar .mobile .fc-header-left .fc-button {\n    top: -2px; }\n\n.portlet.calendar .mobile .fc-header-right {\n  position: relative;\n  right: 0; }\n  .portlet.calendar .mobile .fc-header-right .fc-button {\n    top: 35px; }\n\n.portlet.calendar .mobile .fc-content {\n  margin-top: 53px; }\n\n/***\nGoogle Maps\n***/\n.gmaps {\n  height: 300px;\n  width: 100%;\n  /* important!  bootstrap sets max-width on img to 100% which conflicts with google map canvas*/ }\n  .gmaps img {\n    max-width: none; }\n\n#gmap_static div {\n  background-repeat: no-repeat;\n  background-position: 50% 50%;\n  height: 100%;\n  display: block;\n  height: 300px; }\n\n#gmap_routes_instructions {\n  margin-top: 10px;\n  margin-bottom: 0px; }\n\n/***\nGritter notification modify\n***/\n#gritter-notice-wrapper {\n  right: 1px !important; }\n\n.gritter-close {\n  left: auto !important;\n  right: 3px !important; }\n\n.gritter-title {\n  font-family: 'Open Sans';\n  font-size: 18px;\n  font-weight: 300; }\n\n/***\nDashboard Charts(new in v1.2.1)\n***/\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 14px !important;\n  font-weight: 300;\n  margin: 0 auto;\n  position: relative;\n  text-align: center;\n  width: 75px;\n  height: 75px;\n  line-height: 75px; }\n  .easy-pie-chart .number canvas {\n    position: absolute;\n    top: 0;\n    left: 0; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery File Upload\n***/\n.blueimp-gallery .close {\n  background-image: url(\"../img/portlet-remove-icon-white.png\") !important;\n  margin-top: -2px; }\n\n.blueimp-gallery .prev,\n.blueimp-gallery .next {\n  border-radius: 23px !important; }\n\n/***\njQuery Multi Select\n***/\n.ms-container .ms-list {\n  border: 1px solid #e5e5e5;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-optgroup-label {\n  font-size: 14px; }\n\n.ms-container .ms-selectable li.ms-elem-selectable,\n.ms-container .ms-selection li.ms-elem-selection {\n  font-size: 13px; }\n\n.ms-container .ms-list.ms-focus {\n  border-color: #999999;\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none; }\n\n.ms-container .ms-selectable li.ms-hover,\n.ms-container .ms-selection li.ms-hover {\n  color: #333;\n  background-color: #eee; }\n\n.ms-container .form-control {\n  margin-bottom: 5px; }\n\n/***\njQuery Notific8 Plugin\n***/\n.jquery-notific8-message {\n  font-size: 13px; }\n\n[class*=\"jquery-notific8\"],\n[class*=\"jquery-notific8\"]:after,\n[class*=\"jquery-notific8\"]:before {\n  -webkit-box-sizing: content-box;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box; }\n\n.right .jquery-notific8-close-sticky span,\n.left .jquery-notific8-close-sticky span {\n  font-size: 10px; }\n\n.jquery-notific8-heading {\n  font-weight: 300;\n  font-size: 16px; }\n\n/***\nPassword Strength(in v1.4)\n***/\n.password-strength .password-verdict {\n  display: inline-block;\n  margin-top: 6px;\n  margin-left: 5px; }\n\n.password-strength .progress {\n  margin-top: 5px;\n  margin-bottom: 0; }\n\n.password-strength .progress-bar {\n  padding: 2px; }\n\n/***\njQuery Slimscroll\n***/\n.scroller {\n  padding: 0px;\n  margin: 0px;\n  padding-right: 12px;\n  overflow: hidden; }\n\n.scroller-footer {\n  margin-top: 10px; }\n  .scroller-footer:before, .scroller-footer:after {\n    content: \" \";\n    display: table; }\n  .scroller-footer:after {\n    clear: both; }\n\n.portlet-body .slimScrollBar {\n  margin-right: 0px; }\n\n/***\njQuery Sparkline\n***/\n.jqstooltip {\n  width: auto !important;\n  height: auto !important; }\n\n.easy-pie-chart,\n.sparkline-chart {\n  text-align: center; }\n\n.sparkline-chart {\n  margin-top: 15px;\n  position: relative; }\n\n.easy-pie-chart .number {\n  font-size: 16px;\n  font-weight: 300;\n  width: 85px;\n  margin: 0 auto; }\n\n.sparkline-chart .number {\n  width: 100px;\n  margin: 0 auto;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title,\n.easy-pie-chart .title {\n  display: block;\n  text-align: center;\n  color: #333;\n  font-weight: 300;\n  font-size: 16px;\n  margin-top: 5px;\n  margin-bottom: 10px; }\n\n.sparkline-chart .title:hover,\n.easy-pie-chart .title:hover {\n  color: #666;\n  text-decoration: none; }\n\n.sparkline-chart .title > i,\n.easy-pie-chart .title > i {\n  margin-top: 5px; }\n\n/***\njQuery UI Sliders(new in v1.1.1)\n***/\n.slider {\n  border: 0;\n  padding: 0;\n  display: block;\n  margin: 12px 5px;\n  min-height: 11px; }\n\n.ui-slider-vertical {\n  width: 11px; }\n\n.ui-slider-horizontal .ui-slider-handle {\n  top: -3px; }\n\n.ui-slider-vertical .ui-slider-handle {\n  left: -3px; }\n\n.ui-slider-vertical,\n.ui-slider-handle {\n  filter: none !important;\n  background-image: none !important; }\n\n/***\nJQVMAP Plugin\n***/\n.jqvmap-zoomout,\n.jqvmap-zoomin {\n  height: 16px;\n  width: 16px;\n  background-color: #666; }\n\n.vmaps {\n  position: relative;\n  overflow: hidden;\n  height: 300px; }\n\n/***\nJstree\n***/\n.jstree-default .jstree-clicked {\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-clicked,\n.jstree-wholerow .jstree-wholerow-clicked {\n  background: none;\n  border: 0;\n  background-color: #e1e1e1;\n  box-shadow: none; }\n\n.jstree-default .jstree-wholerow-hovered,\n.jstree-wholerow .jstree-wholerow-hovered {\n  border: 0;\n  background-color: #eee;\n  box-shadow: none; }\n\n.jstree-icon.icon-lg {\n  margin-top: 1px; }\n\n.jstree-open > .jstree-anchor > .fa-folder:before {\n  margin-left: 2px;\n  content: \"\\f07c\"; }\n\n.jstree-default.jstree-rtl .jstree-last {\n  background: transparent;\n  background-repeat: no-repeat; }\n\n.vakata-context,\n.vakata-context ul {\n  padding: 0;\n  min-width: 125px;\n  background-color: #ffffff;\n  font-size: 14px;\n  font-family: \"Segoe UI\",Helvetica, Arial, sans-serif;\n  box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n  border: 1px solid #efefef; }\n\n.vakata-context li {\n  border: 0; }\n  .vakata-context li a {\n    padding: 0 10px;\n    border: 0; }\n    .vakata-context li a i {\n      display: none; }\n    .vakata-context li a .vakata-contextmenu-sep {\n      display: none; }\n\n.vakata-context .vakata-context-hover > a,\n.vakata-context li a:hover {\n  background-color: #eee;\n  color: #333;\n  box-shadow: none;\n  margin: 0; }\n  .vakata-context .vakata-context-hover > a .span,\n  .vakata-context .vakata-context-hover > a .ins,\n  .vakata-context li a:hover .span,\n  .vakata-context li a:hover .ins {\n    border: 0 !important; }\n\n.vakata-context li a span,\n.vakata-context li a ins {\n  display: none;\n  border: 0 !important; }\n\n.vakata-context .vakata-context-separator a,\n.vakata-context-rtl .vakata-context-separator a {\n  margin: 0;\n  border: 0; }\n\n.jstree-rename-input {\n  background-color: #ffffff !important;\n  border: 1px solid #e5e5e5 !important;\n  outline: none !important;\n  padding: 2px 6px !important;\n  margin-right: -4px !important; }\n\n/***\nNoUIRangeSlider\n***/\n.noUi-horizontal {\n  margin: 9px 0; }\n\n/***\nColor variants\n***/\n.noUi-primary .noUi-connect {\n  background: #337ab7; }\n\n.noUi-info .noUi-connect {\n  background: #659be0; }\n\n.noUi-success .noUi-connect {\n  background: #36c6d3; }\n\n.noUi-warning .noUi-connect {\n  background: #F1C40F; }\n\n.noUi-danger .noUi-connect {\n  background: #ed6b75; }\n\n.noUi-default .noUi-connect {\n  background: #bac3d0; }\n\n/* Conect slider */\n/* For this slider, disable the 'origin' size. */\n.noui-connect .noUi-origin {\n  right: auto;\n  width: 0; }\n\n/* Position the bar and color it. */\n.noui-connect .connect {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  background: #80C9F5;\n  box-shadow: inset 0 0 3px rgba(51, 51, 51, 0.45); }\n\n/* When the slider is moved by tap,\n   transition the connect bar like the handle. */\n.noui-connect.noUi-state-tap .connect {\n  -webkit-transition: left 300ms, right 300ms;\n  transition: left 300ms, right 300ms; }\n\n/**\nnoUI Tooltips\n**/\n.noUi-handle .noUi-tooltip {\n  display: block;\n  position: absolute;\n  border: 1px solid #D9D9D9;\n  font-size: 12px;\n  border-radius: 3px;\n  background: #fff;\n  top: -55px;\n  padding: 5px;\n  left: -10px;\n  text-align: center;\n  min-width: 50px; }\n  .noUi-handle .noUi-tooltip strong {\n    display: block;\n    padding: 2px; }\n\n/***\nGoogle reCaptcha\n***/\n.form-recaptcha-img {\n  margin-bottom: 10px;\n  clear: both;\n  border: 1px solid #e5e5e5;\n  padding: 5px; }\n\niframe[src=\"about:blank\"] {\n  display: none; }\n\n.select2-container--bootstrap .select2-search--dropdown .select2-search__field,\n.select2-container--bootstrap .select2-selection,\n.select2-container--bootstrap.select2-container--focus .select2-selection,\n.select2-container--bootstrap.select2-container--open .select2-selection {\n  -webkit-box-shadow: none;\n  box-shadow: none; }\n\n.select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove {\n  cursor: pointer;\n  display: inline-block;\n  font-weight: 700;\n  margin-right: 3px; }\n\n.select2-container--bootstrap .select2-results__group {\n  display: block;\n  font-size: 12px;\n  white-space: nowrap;\n  font-weight: 600;\n  font-family: \"Open Sans\", sans-serif; }\n\n.select2-container--bootstrap .select2-selection {\n  font-family: \"Open Sans\", sans-serif; }\n\n.modal-open .select2-dropdown {\n  z-index: 10060; }\n\n.modal-open .select2-close-mask {\n  z-index: 10055; }\n\n.modal-open .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field {\n  width: auto !important; }\n\n.select2-result-repository {\n  padding-top: 4px;\n  padding-bottom: 3px; }\n\n.select2-result-repository__avatar {\n  float: left;\n  width: 60px;\n  margin-right: 10px; }\n\n.select2-result-repository__avatar img {\n  width: 100%;\n  height: auto;\n  border-radius: 2px; }\n\n.select2-result-repository__meta {\n  margin-left: 70px; }\n\n.select2-result-repository__title {\n  color: black;\n  font-weight: bold;\n  word-wrap: break-word;\n  line-height: 1.1;\n  margin-bottom: 4px; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers {\n  margin-right: 1em; }\n\n.select2-result-repository__forks, .select2-result-repository__stargazers, .select2-result-repository__watchers {\n  display: inline-block;\n  color: #aaa;\n  font-size: 11px; }\n\n.select2-result-repository__description {\n  font-size: 13px;\n  color: #777;\n  margin-top: 4px; }\n\n.select2-results__option--highlighted .select2-result-repository__title {\n  color: white; }\n\n.select2-results__option--highlighted .select2-result-repository__forks, .select2-results__option--highlighted .select2-result-repository__stargazers, .select2-results__option--highlighted .select2-result-repository__description, .select2-results__option--highlighted .select2-result-repository__watchers {\n  color: #c1d7e9; }\n\n.select2-selection__choice {\n  background-color: #eee !important;\n  border: 1px solid #eee !important; }\n  .select2-selection__choice .select2-selection__choice__remove {\n    font-weight: normal !important; }\n\n/***\nMorris Charts\n***/\n.portlet-body-morris-fit {\n  margin-right: -20px;\n  margin-left: -20px;\n  margin-bottom: -15px; }\n  .portlet-body-morris-fit > svg {\n    -webkit-border-radius: 0 0 4px 4px;\n    -moz-border-radius: 0 0 4px 4px;\n    -ms-border-radius: 0 0 4px 4px;\n    -o-border-radius: 0 0 4px 4px;\n    border-radius: 0 0 4px 4px; }\n\n.morris-hover.morris-default-style .morris-hover-row-label {\n  text-align: left;\n  font-weight: 400;\n  font-size: 15px;\n  color: #7D8C9D;\n  font-family: \"Open Sans\", sans-serif; }\n\n.morris-hover.morris-default-style .morris-hover-point {\n  text-align: left;\n  font-size: 14px;\n  font-weight: 400;\n  font-family: \"Open Sans\", sans-serif; }\n\n/***\niCheck\n***/\n.icheck-list > label {\n  display: block;\n  margin-bottom: 8px; }\n  .icheck-list > label:last-child {\n    margin-bottom: 0; }\n\n.form-horizontal .icheck-inline {\n  margin-top: 8px; }\n\n.icheck-inline > label {\n  display: inline-block;\n  margin-left: 15px; }\n  .icheck-inline > label:first-child {\n    margin-left: 0; }\n\ndiv[class*='icheckbox_'],\ndiv[class*='iradio_'] {\n  margin-right: 5px;\n  top: -1px !important; }\n\n.icheck-colors {\n  padding: 0;\n  margin: 0;\n  list-style: none; }\n  .icheck-colors > li {\n    padding: 0;\n    margin: 4px;\n    float: left;\n    display: inline-block;\n    height: 20px;\n    width: 20px;\n    background: #000000;\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n    .icheck-colors > li:first-child {\n      margin-left: 0; }\n    .icheck-colors > li:hover {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ;\n      cursor: pointer; }\n    .icheck-colors > li.active {\n      height: 26px;\n      margin-top: 0;\n      opacity: 0.6 ;\n      filter: alpha(opacity=60) ; }\n    .icheck-colors > li.red {\n      background: #d54e21; }\n    .icheck-colors > li.green {\n      background: #78a300; }\n    .icheck-colors > li.blue {\n      background: #0e76a8; }\n    .icheck-colors > li.aero {\n      background: #9cc2cb; }\n    .icheck-colors > li.grey {\n      background: #73716e; }\n    .icheck-colors > li.orange {\n      background: #f70; }\n    .icheck-colors > li.yellow {\n      background: #fc0; }\n    .icheck-colors > li.pink {\n      background: #ff66b5; }\n    .icheck-colors > li.purple {\n      background: #6a5a8c; }\n\n/***\nAngularJS UI-select\n***/\n.ui-select-match-close {\n  margin-top: 5px !important;\n  margin-left: 5px !important; }\n\n.minicolors-swatch {\n  border: 0; }\n\n/***\nCodemirror Plugin\n***/\n.CodeMirror {\n  border: 1px solid #eee;\n  height: auto; }\n\n/***\nPrism Plugin\n***/\npre[class*=\"language-\"] {\n  padding: 10px;\n  background: none !important;\n  border: 1px solid #f1f4f7 !important;\n  box-shadow: none !important;\n  margin: 0; }\n  pre[class*=\"language-\"] code {\n    background: none !important;\n    box-shadow: none !important;\n    border: 0 !important; }\n\n.socicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased; }\n\n.socicon-btn:empty\n.socicon:empty {\n  width: 1em; }\n\n.socicon-btn {\n  position: relative;\n  display: inline-block;\n  font-family: 'socicon';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  text-align: center;\n  width: 44px;\n  height: 44px;\n  padding-top: 11px;\n  font-size: 24px;\n  border: 1px solid #e7ecf1;\n  color: #3f444a;\n  transition: background, color 0.3s; }\n  .socicon-btn.socicon-solid {\n    border: 0;\n    width: 46px;\n    height: 46px;\n    padding-top: 12px; }\n  .socicon-btn.socicon-btn-circle {\n    border-radius: 44px !important; }\n  .socicon-btn:hover {\n    transition: background, color 0.3s;\n    text-decoration: none; }\n  .socicon-btn.socicon-lg {\n    width: 54px;\n    height: 54px;\n    padding-top: 13px;\n    font-size: 28px; }\n    .socicon-btn.socicon-lg.socicon-solid {\n      border: 0;\n      width: 55px;\n      height: 55px;\n      padding-top: 13px; }\n  .socicon-btn.socicon-sm {\n    width: 30px;\n    height: 30px;\n    padding-top: 8px;\n    font-size: 16px; }\n    .socicon-btn.socicon-sm.socicon-solid {\n      border: 0;\n      width: 30px;\n      height: 30px;\n      padding-top: 8px; }\n\n.socicons .socicon-btn {\n  margin-bottom: 5px; }\n\n.socicon-twitter:before {\n  content: \"a\"; }\n\n.socicon-facebook:before {\n  content: \"b\"; }\n\n.socicon-google:before {\n  content: \"c\"; }\n\n.socicon-pinterest:before {\n  content: \"d\"; }\n\n.socicon-foursquare:before {\n  content: \"e\"; }\n\n.socicon-yahoo:before {\n  content: \"f\"; }\n\n.socicon-skype:before {\n  content: \"g\"; }\n\n.socicon-yelp:before {\n  content: \"h\"; }\n\n.socicon-feedburner:before {\n  content: \"i\"; }\n\n.socicon-linkedin:before {\n  content: \"j\"; }\n\n.socicon-viadeo:before {\n  content: \"k\"; }\n\n.socicon-xing:before {\n  content: \"l\"; }\n\n.socicon-myspace:before {\n  content: \"m\"; }\n\n.socicon-soundcloud:before {\n  content: \"n\"; }\n\n.socicon-spotify:before {\n  content: \"o\"; }\n\n.socicon-grooveshark:before {\n  content: \"p\"; }\n\n.socicon-lastfm:before {\n  content: \"q\"; }\n\n.socicon-youtube:before {\n  content: \"r\"; }\n\n.socicon-vimeo:before {\n  content: \"s\"; }\n\n.socicon-dailymotion:before {\n  content: \"t\"; }\n\n.socicon-vine:before {\n  content: \"u\"; }\n\n.socicon-flickr:before {\n  content: \"v\"; }\n\n.socicon-500px:before {\n  content: \"w\"; }\n\n.socicon-instagram:before {\n  content: \"x\"; }\n\n.socicon-wordpress:before {\n  content: \"y\"; }\n\n.socicon-tumblr:before {\n  content: \"z\"; }\n\n.socicon-blogger:before {\n  content: \"A\"; }\n\n.socicon-technorati:before {\n  content: \"B\"; }\n\n.socicon-reddit:before {\n  content: \"C\"; }\n\n.socicon-dribbble:before {\n  content: \"D\"; }\n\n.socicon-stumbleupon:before {\n  content: \"E\"; }\n\n.socicon-digg:before {\n  content: \"F\"; }\n\n.socicon-envato:before {\n  content: \"G\"; }\n\n.socicon-behance:before {\n  content: \"H\"; }\n\n.socicon-delicious:before {\n  content: \"I\"; }\n\n.socicon-deviantart:before {\n  content: \"J\"; }\n\n.socicon-forrst:before {\n  content: \"K\"; }\n\n.socicon-playstore:before {\n  content: \"L\"; }\n\n.socicon-zerply:before {\n  content: \"M\"; }\n\n.socicon-wikipedia:before {\n  content: \"N\"; }\n\n.socicon-apple:before {\n  content: \"O\"; }\n\n.socicon-flattr:before {\n  content: \"P\"; }\n\n.socicon-github:before {\n  content: \"Q\"; }\n\n.socicon-chimein:before {\n  content: \"R\"; }\n\n.socicon-friendfeed:before {\n  content: \"S\"; }\n\n.socicon-newsvine:before {\n  content: \"T\"; }\n\n.socicon-identica:before {\n  content: \"U\"; }\n\n.socicon-bebo:before {\n  content: \"V\"; }\n\n.socicon-zynga:before {\n  content: \"W\"; }\n\n.socicon-steam:before {\n  content: \"X\"; }\n\n.socicon-xbox:before {\n  content: \"Y\"; }\n\n.socicon-windows:before {\n  content: \"Z\"; }\n\n.socicon-outlook:before {\n  content: \"1\"; }\n\n.socicon-coderwall:before {\n  content: \"2\"; }\n\n.socicon-tripadvisor:before {\n  content: \"3\"; }\n\n.socicon-appnet:before {\n  content: \"4\"; }\n\n.socicon-goodreads:before {\n  content: \"5\"; }\n\n.socicon-tripit:before {\n  content: \"6\"; }\n\n.socicon-lanyrd:before {\n  content: \"7\"; }\n\n.socicon-slideshare:before {\n  content: \"8\"; }\n\n.socicon-buffer:before {\n  content: \"9\"; }\n\n.socicon-rss:before {\n  content: \",\"; }\n\n.socicon-vkontakte:before {\n  content: \";\"; }\n\n.socicon-disqus:before {\n  content: \":\"; }\n\n.socicon-houzz:before {\n  content: \"+\"; }\n\n.socicon-mail:before {\n  content: \"@\"; }\n\n.socicon-patreon:before {\n  content: \"=\"; }\n\n.socicon-paypal:before {\n  content: \"-\"; }\n\n.socicon-playstation:before {\n  content: \"^\"; }\n\n.socicon-smugmug:before {\n  content: \"¨\"; }\n\n.socicon-swarm:before {\n  content: \"$\"; }\n\n.socicon-triplej:before {\n  content: \"*\"; }\n\n.socicon-yammer:before {\n  content: \"&\"; }\n\n.socicon-stackoverflow:before {\n  content: \"(\"; }\n\n.socicon-drupal:before {\n  content: \"#\"; }\n\n.socicon-odnoklassniki:before {\n  content: \".\"; }\n\n.socicon-android:before {\n  content: \"_\"; }\n\n.socicon-meetup:before {\n  content: \"]\"; }\n\n.socicon-persona:before {\n  content: \")\"; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/img/flags/readme.txt",
    "content": "Flag icons - http://www.famfamfam.com\n\nThese icons are public domain, and as such are free for any use (attribution appreciated but not required).\n\nNote that these flags are named using the ISO3166-1 alpha-2 country codes where appropriate. A list of codes can be found at http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n\nIf you find these icons useful, please donate via paypal to mjames@gmail.com (or click the donate button available at http://www.famfamfam.com/lab/icons/silk)\n\nContact: mjames@gmail.com"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap-ui.css",
    "content": "/*\nTo change this license header, choose License Headers in Project Properties.\nTo change this template file, choose Tools | Templates\nand open the template in the editor.\n*/\n/* \n    Created on : Mar 16, 2015, 10:24:01 AM\n    Author     : tony\n*/\n\n.ui-jqgrid tr.jqgrow td { height: 26px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:20px }\n.ui-state-hover\n{\n    border: .15em solid;\n\tborder-color: inherit;\n\n}\n.ui-jqdialog .ui-jqdialog-titlebar  {\n\theight:29px;\n\tborder-color: inherit;\n}\n\n.ui-jqdialog-content input.FormElement {\n    padding: 0.25em;\n}\n\n.fm-button {\n    height:30px;\n}\n#nData, #pData { height:20px; width:18px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid-bootstrap.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative; \n\tborder: 1px solid #ddd;      /*default*/\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n}\n.ui-jqgrid .ui-jqgrid-view {\n\tposition: relative;\n\tleft:0; \n\ttop: 0; \n\tpadding: 0;\n}\n.ui-jqgrid .ui-common-table {}\n\n/* Caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {\n\tfont-weight: normal;\n\tmin-height:37px; \n\tpadding: 4px 8px; \n\tposition: relative; \n\tmargin-right: 2px;\n\tborder-bottom: 1px solid #ddd; /*default*/\n\n}\n.ui-jqgrid .ui-jqgrid-caption {\n\ttext-align: left;\n}\n.ui-jqgrid .ui-jqgrid-title { \n\tpadding-top: 5px; \n\tvertical-align: middle;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close { \n\tcolor: inherit; \n\tposition: absolute;\n\ttop: 50%; \n\tmargin: -10px 7px 0 0; \n\tpadding: 1px; \n\tcursor:pointer;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { \n\tdisplay: block; \n\tmargin: 1px; \n}\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover {  }\n\n/* Header*/\n.ui-jqgrid .ui-jqgrid-hdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-hbox {\n\tfloat: left; \n\tpadding-right: 20px;\n}\n.ui-jqgrid .ui-jqgrid-htable { \n\tmargin-bottom: 0; \n\ttable-layout: fixed; \n\tborder-top:none;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th {\n\toverflow : hidden; \n\tborder-bottom : none;\n\tpadding-right: 2px;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th div {\n\toverflow: hidden; \n\tposition:relative;\n}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-column-header, \n.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; }\n.ui-first-th-ltr { }\n.ui-first-th-rtl { }\n.ui-jqgrid tr.jqg-first-row-header th {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n\ttext-align: center;\n}\n.ui-jqgrid tr.jqg-second-row-header th,\n.ui-jqgrid tr.jqg-third--row-header th\n{\n\tborder-top:none;\n\ttext-align: center;\n}\n\n.ui-jqgrid .ui-th-div-ie {\n\twhite-space: nowrap; \n\tzoom :1; \n\theight:17px;\n}\n.ui-jqgrid .ui-jqgrid-resize {\n\theight:20px !important;\n\tposition: relative; \n\tcursor :e-resize;\n\tdisplay: inline;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-grid-ico-sort { \n\tmargin-left:5px; \n\toverflow:hidden;\n\tposition:absolute;\n\tright: auto;\n\tfont-size:12px;\n}\n.ui-jqgrid .ui-icon-asc {\n\tmargin-top:-3px;\n}\n.ui-jqgrid .ui-icon-desc {\n\tmargin-top:4px;\n}\n.ui-jqgrid .ui-i-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-i-desc {\n\tmargin-top:0;\n\tmargin-right:13px;\n}\n.ui-jqgrid .ui-single-sort-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-single-sort-desc {}\n.ui-jqgrid .ui-jqgrid-sortable {\n\tcursor:pointer;\n}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { }\n.ui-jqgrid tr.ui-search-toolbar td > input { }\n.ui-jqgrid tr.ui-search-toolbar select {}\n\n/* Body */ \n.ui-jqgrid .table-bordered,\n.ui-jqgrid .table-bordered td,\n.ui-jqgrid .table-bordered th.ui-th-ltr\n{\n\tborder-left:0px none !important;\n}\n.ui-jqgrid .table-bordered th.ui-th-rtl\n{\n\tborder-right:0px none !important;\n}\n.ui-jqgrid .table-bordered tr.ui-row-rtl td\n{\n\tborder-right:0px none !important;\n\tborder-left: 1px solid #ddd !important;\n}\ndiv.tablediv > .table-bordered {\n\tborder-left : 1px solid #ddd !important;\n}\n.ui-jqgrid  .ui-jqgrid-bdiv table.table-bordered td {\n\tborder-top: 0px none;\n}\n.ui-jqgrid .ui-jqgrid-bdiv {\n\tposition: relative; \n\tmargin: 0; \n\tpadding:0; \n\toverflow: auto; \n\ttext-align:left; \n}\n.ui-jqgrid .ui-jqgrid-btable {\n\ttable-layout: fixed; \n\tborder-left:none ; \n\tborder-top:none; \n\tmargin-bottom: 0px\n}\n.ui-jqgrid tr.jqgrow {  \n\toutline-style: none; \n}\n.ui-jqgrid tr.jqgroup {  \n\toutline-style: none; \n}\n.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td { \n\toverflow: hidden; \n\twhite-space: pre; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgfirstrow  td {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgroup td { \n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.jqfoot td {\n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.ui-row-ltr td {}\n.ui-jqgrid tr.ui-row-rtl td {}\n.ui-jqgrid td.jqgrid-rownum { }\n.ui-jqgrid .ui-jqgrid-resize-mark { \n\twidth:2px; \n\tleft:0; \n\tbackground-color:#777; \n\tcursor: e-resize; \n\tcursor: col-resize; \n\tposition:absolute; \n\ttop:0; \n\theight:100px; \n\toverflow:hidden; \n\tdisplay:none; \n\tborder:0 none; \n\tz-index: 99999;\n\n}\n/* Footer */\n.ui-jqgrid .ui-jqgrid-sdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden; \n\tborder-left: 0 none !important; \n\tborder-top : 0 none !important; \n\tborder-right : 0 none !important;\n}\n.ui-jqgrid .ui-jqgrid-ftable {\n\ttable-layout:fixed;\n\tmargin-bottom:0;\n}\n\n.ui-jqgrid tr.footrow td {\n\tfont-weight: bold; \n\toverflow: hidden; \n\twhite-space:nowrap; \n\tpadding-right: 2px;\n\tborder-bottom: 0px none;\n}\n.ui-jqgrid tr.footrow-ltr td {\n\ttext-align:left;\n}\n.ui-jqgrid tr.footrow-rtl td {\n\ttext-align:right;\n}\n\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager\n{ \n\tborder-left-width: 0px;\n\tborder-top: 1px solid #ddd;  \n\t/*padding : 4px 0px;*/\n\tposition: relative; \n\t/*height: auto; */\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-toppager {\n\tborder-top-width :0;\n\tborder-bottom : 1px solid #ddd;\n}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, \n.ui-jqgrid .ui-jqgrid-pager .ui-pager-control {\n\tposition: relative;\n\tborder-left: 0;\n\tborder-bottom: 0;\n\tborder-top: 0; \n\t/*height: 30px;*/\n}\n.ui-jqgrid .ui-pg-table {\n\tposition: relative; \n\tpadding: 1px 0; \n\twidth:auto; \n\tmargin: 0;\n}\n.ui-jqgrid .ui-pg-table td {\n\tfont-weight:normal; \n\tvertical-align:middle; \n\t/*padding:0px 6px;*/\n}\n.ui-jqgrid .ui-pager-control .ui-pager-table td {\n\tborder-top : 0px none !important;\n\tmin-height : 20px !important;\n}\n.ui-jqgrid .ui-pg-button  { \n\theight:auto; \n}\n.ui-jqgrid  .ui-paging-pager td {\n\tpadding : 0 5px;\n}\n.ui-jqgrid .ui-pg-button span { \n\tdisplay: block; \n\tmargin: 0px 2px; \n\tfloat:left;\n}\n.ui-jqgrid .ui-pg-button:hover {  }\n.ui-jqgrid .ui-disabled:hover {}\n.ui-jqgrid .ui-pg-input,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { \n\tdisplay: inline-block;\n\theight:auto;\n\twidth: auto;\n\tfont-size:.9em; \n\tmargin:0;\n\tline-height: inherit;\n\tborder: none; \n\tpadding: 0px 3px\n}\n.ui-jqgrid .ui-pg-selbox, \n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {\n\tfont-size:.9em; \n\tline-height:inherit; \n\tdisplay:block; \n\theight:22px; \n\tmargin: 0; \n\tpadding: 3px 0px 3px 3px; \n\tborder:none;\n}\n.ui-jqgrid .ui-separator {\n\theight: 18px; \n\tborder : none;\n\tborder-left: 2px solid #ccc ; /*default*/\n\t\n}\n.ui-separator-li {\n\theight: 2px; \n\tborder : none;\n\tborder-top: 2px solid #ccc ;  /*default*/\n\tmargin: 0; padding: 0; width:100%\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{\n\tfloat:left;\n\tposition:relative; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ \n\tcursor:pointer; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span\n{\n\tfloat:left;\n}\n.ui-jqgrid td input, \n.ui-jqgrid td select, \n.ui-jqgrid td textarea { \n\tmargin: 0;\n}\n.ui-jqgrid td textarea {\n\twidth:auto;\n\theight:auto;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table\n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable td,\n.ui-jqgrid .ui-jqgrid-toppager .navtable td \n{ \n\tpadding : 0 5px;\n}\n\n/*Subgrid*/\n\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {\n\tdisplay: block;\n}\n.ui-jqgrid .ui-subgrid {\n\tmargin:0;\n\tpadding:0; \n\twidth:100%;\n}\n.ui-jqgrid .ui-subgrid table {\n\ttable-layout: fixed;\n}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {}\n.ui-jqgrid .ui-subgrid td.subgrid-data {\n\tborder-top:  0 none !important;\n}\n.ui-jqgrid .ui-subgrid td.subgrid-cell { \n\tvertical-align: middle\n}\n.ui-jqgrid a.ui-sghref {\n\ttext-decoration: none;\n\tcolor : #010101; /*default*/\n}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n.tablediv > .row { margin: 0 0}\n/* loading */\n.ui-jqgrid .loading {\n\tposition: absolute; \n\ttop: 45%;\n\tleft: 45%;\n\twidth: auto;\n\tz-index:101;\n\tpadding: 6px; \n\tmargin: 5px;\n\ttext-align: center;\n\tdisplay: none;\n\tborder: 1px solid #ddd;  /*default*/\n\tfont-size: 14px;\n\tbackground-color: #d9edf7;\n}\n.ui-jqgrid .jqgrid-overlay { \n\tdisplay:none;\n\tz-index:100;\n}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n\n/* Toolbar */\n.ui-jqgrid .ui-userdata {\n\tpadding: 4px 0px; \n\toverflow: hidden; \n\tmin-height: 32px; \n}\n.ui-jqgrid .ui-userdata-top {\n\tborder-left-width: 0px;    /*default*/\n\tborder-bottom: 1px solid #ddd;\t\n}\n.ui-jqgrid .ui-userdata-bottom {\n\tborder-left-width: 0px;    /*default*/\n\tborder-top: 1px solid #ddd;\t\n}\n/*Modal Window */\n.ui-jqdialog { }\n.ui-jqdialog { \n\tdisplay: none; \n\twidth: 500px; \n\tposition: absolute; \n\t/*padding: 5px; */\n\toverflow:visible;\n}\n.ui-jqdialog .ui-jqdialog-titlebar {\n\tpadding: .1em .1em; \n\tmin-height: 35px; \n}\n.ui-jqdialog .ui-jqdialog-title { \n\tmargin: .3em 0 .2em;  \n\tfont-weight: bold;\n\tpadding-left :6px;\n\tpadding-right:6px;\n} \n.ui-jqdialog .ui-jqdialog-titlebar-close { \n\tposition: absolute;  \n\ttop: 0%; \n\tmargin: 3px 5px 0 0; \n\tpadding: 8px;  \n\tcursor:pointer;\n}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span {  }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, \n.ui-jqdialog .ui-jqdialog-titlebar-close:focus { \n\tpadding: 8px; \n}\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { \n\tborder: 0; \n\tpadding: .3em .2em; \n\tbackground: none; \n\theight:auto;\n}\n.ui-jqdialog .ui-jqconfirm {\n\tpadding: .4em 1em; \n\tborder-width:3px;\n\tposition:absolute;\n\tbottom:10px;\n\tright:10px;\n\toverflow:visible;\n\tdisplay:none;\n\theight:120px;\n\twidth:220px;\n\ttext-align:center;\n\tbackground-color: #fff;\n\tborder-radius: 4px;\n\t-webkit-border-radius: 4px;\n\t-moz-border-radius: 4px;\n}\n.ui-jqdialog>.ui-resizable-se { }\n.ui-jqgrid>.ui-resizable-se { }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid { \n\tmargin: 0 8px 0 8px; \n\toverflow:auto;\n\tposition:relative;\n}\n.ui-jqdialog-content .EditTable { \n\twidth: 100%; \n\tmargin-bottom:0; \n}\n.ui-jqdialog-content .DelTable { \n\twidth: 100%; \n\tmargin-bottom:0;\n}\n.EditTable td input, \n.EditTable td select, \n.EditTable td textarea { \n\twidth: 98%; \n\tdisplay: inline-block;\n}\n.EditTable td textarea { \n\twidth:auto; \n\theight:auto;\n}\n.EditTable .FormData td { \n\theight:37px !important;\n}\n.ui-jqdialog-content td.EditButton {\n\ttext-align: right; \n\tpadding: 5px 5px 5px 0;\n}\n.ui-jqdialog-content td.navButton {\n\ttext-align: center; \n\tborder-left: 0 none;\n\tborder-top: 0 none;\n\tborder-right: 0 none; \n\tpadding-bottom:5px; \n\tpadding-top:5px;\n}\n.ui-jqdialog-content input.FormElement {\n\tpadding: .5em .3em; \n\tmargin-bottom: 5px\n}\n.ui-jqdialog-content select.FormElement {\n\tpadding:.3em; \n\tmargin-bottom: 3px;\n}\n.ui-jqdialog-content .data-line {\n\tpadding-top:.1em;\n\tborder: 0 none;\n}\n\n.ui-jqdialog-content .CaptionTD {\n\tvertical-align: middle;\n\tborder: 0 none; \n\tpadding: 2px;\n\twhite-space: nowrap;\n}\n.ui-jqdialog-content .DataTD {\n\tpadding: 2px; \n\tborder: 0 none; \n\tvertical-align: top;\n}\n.ui-jqdialog-content .form-view-data {\n\twhite-space:pre\n}\n.fm-button {  }\n.fm-button-icon-left { \n\tmargin-left: 4px; \n\tmargin-right: 4px;  \n}\n.fm-button-icon-right { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n.fm-button-icon-left  {  }\n.fm-button-icon-right  { }\n#nData, #pData { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n#sData span, #cData span { \n\tmargin-left: 5px;\n}\n/* End Eorm edit */\n/*.ui-jqgrid .edit-cell {}*/\n.ui-jqgrid .selected-row, \ndiv.ui-jqgrid .selected-row td {\n\tfont-style : normal;\n}\n/* inline edit actions button*/\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 14px;\n}\n.ui-jqgrid .inline-edit-cell {}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {\n\tfloat: left; \n\tposition: relative;\n\theight: 18px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-minus {\n\tposition: absolute; \n\theight: 18px; \n\twidth: 18px; \n\toverflow: hidden;\n}\n.ui-jqgrid .tree-plus {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\t\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-leaf {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\n\toverflow: hidden;\n}\n.ui-jqgrid .treeclick {\n\tcursor: pointer;\n}\n/* moda dialog */\n* iframe.jqm {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {\n\tborder-right-width: 1px;\n\tborder-right-color: inherit;\n\tborder-right-style: solid; \n\theight:20px\n}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {\n\ttext-align: right;\n}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {\n\tfloat: right; \n\t/*padding-left: 20px;*/\n}\n.ui-jqgrid .ui-jqgrid-resize-ltr {\n\tfloat: right;\n\tmargin: -2px -2px -2px 0;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-resize-rtl {\n\tfloat: left;\n\tmargin: -2px -2px -2px -0px;\n}\n.ui-jqgrid .ui-sort-rtl {\n\t\n}\n.ui-jqgrid .tree-wrap-ltr {\n\tfloat: left;\n}\n.ui-jqgrid .tree-wrap-rtl {\n\tfloat: right;\n}\n.ui-jqgrid .ui-ellipsis {\n\t-moz-text-overflow:ellipsis;\n\ttext-overflow:ellipsis;\n}\n/* Toolbar Search Menu. Nav menu */\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { \n\tpadding: 0; \n\tborder: 0 none; \n\theight:20px; \n\twidth:100%;\n}\n.ui-jqgrid .ui-search-table .ui-search-oper { \n\twidth:20px; \n}\na.g-menu-item, a.soptclass, a.clearsearchclass { \n\tcursor: pointer; \n} \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    /*font-size: 11px*/\n}\n.ui-jqgrid .ui-scroll-popup {\n\twidth: 100px;\n}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\t\n.ui-disabled {\n\topacity: .35;\n\tfilter:Alpha(Opacity=35); /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0,0,0,0.5);\n\topacity: .3;\n\tfilter: Alpha(Opacity=30); /* support: IE8 */\n}\n \n.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover,\n.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover\n{\n\tbackground-color: #ddd;\n}\n.ui-jqgrid-corner  {\n\t border-radius: 5px\n}\n.ui-resizable-handle {\n\t/*position: absolute;*/\n\tdisplay: block;\n\tleft :97%;\n}\n.ui-jqdialog .ui-resizable-se {\n\twidth: 12px;\n\theight: 12px;\n\tright: -5px;\n\tbottom: -5px;\n\tbackground-position: 16px 16px;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-top-corner {\n\tborder-top-left-radius: 5px;\n\tborder-top-right-radius: 5px;\n}\n.ui-bottom-corner {\n\tborder-bottom-left-radius: 5px;\n\tborder-bottom-right-radius: 5px;\n}\n\n.ui-search-table {\n\tmargin-bottom: 0;\n}\n.ui-search-table .columns, .ui-search-table .operators {\n\tpadding-right: 5px;\n}\n.opsel {\n\tfloat :left;\n\twidth : 100px;\n\tmargin-right : 5px;\n}\n.add-group, .add-rule, .delete-group {\n\twidth: 14%;\t\n\tmargin-right : 5px;\n}\n.delete-rule {\n\twidth : 15px;\n}\nul.ui-search-menu, ul.ui-nav-menu {\n\t list-style-type:  none;\n}\nul.ui-search-menu li a, \nul.ui-nav-menu li a,\n.soptclass, \n.clearsearchclass {\n\ttext-decoration: none;\n\tcolor : #010101;\n}\nul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover {\n\tbackground-color: #ddd;\n\tpadding: 1px 1px;\n\ttext-decoration: none;\n}\nul.ui-search-menu li, ul.ui-nav-menu li {\n\tpadding : 5px 5px;\n}\n.ui-menu-item hr {\n\tmargin-bottom: 0px;\n\tmargin-top:0px;\n}\n\n.searchFilter .ui-search-table td,\n.searchFilter .ui-search-table th\n{\n\tborder-top: 0px none !important;\n}\n\n.searchFilter .queryresult {\n\tmargin-bottom: 5px;\n}\n.searchFilter .queryresult tr td{\n\tborder-top: 0px none;\n}\n.ui-search-label { \n\tpadding-left: 5px;\n}\n\n.frozen-div, .frozen-bdiv {\n\tbackground-color: #fff;\n}\n/*\n.ui-jqgrid .ui-jqgrid-caption,\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager,\n.ui-jqgrid .ui-jqgrid-htable thead th,\n.ui-jqgrid .ui-userdata-top,\n.ui-jqgrid .ui-userdata-bottom,\n.ui-jqgrid .ui-jqgrid-hdiv,\n.ui-jqdialog .ui-jqdialog-titlebar\n{\n    background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%);\n    background-repeat: repeat-x;\n    border-color: #ccc;\n    text-shadow: 0 1px 0 #fff;\n}\n*/\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright: auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 15px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\tpadding-right: 8px;\n\tpadding-left: 8px;\n}\ntd.menu_text {\n\twidth: auto;\n\tpadding-left: 1px;\n\twhite-space: nowrap;\n}\n#search_menu .ui-menu-item div {\n\tpadding: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n\tpadding: 3px 3px;\n}\n.search_buttons .btn-default:hover {\n\tpadding-bottom: 6px;\n\tpadding-top: 6px;\n}\n.search_buttons #bs_reset {\n\tmargin-right: 3px;\n}\n.search_buttons #bs_search {\n\tmargin-left: 3px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/css/ui.jqgrid.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative;\n\t-moz-box-sizing: content-box; \n\t-webkit-box-sizing: content-box; \n\tbox-sizing: content-box;\n}\n.ui-jqgrid .ui-jqgrid-view {position: relative;left:0; top: 0; padding: 0; font-size:11px; z-index:100;}\n.ui-jqgrid .ui-common-table {border-width: 0px; border-style: none; border-spacing: 0px; padding: 0;}\n/* caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {height:19px; padding: .3em .2em .2em .3em; position: relative; font-size: 12px; border-left: 0 none;border-right: 0 none; border-top: 0 none;}\n.ui-jqgrid .ui-jqgrid-caption {text-align: left;}\n.ui-jqgrid .ui-jqgrid-title { margin: .1em 0 .2em; }\n.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px; cursor:pointer;}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }\n/* header*/\n.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}\n.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0;border-collapse: separate;}\n.ui-jqgrid .ui-jqgrid-htable th { height: 27px; padding: 0 2px 0 2px;}\n.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative;margin: .1em 0em .1em 0em;}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none;border-bottom : 0 none;}\n.ui-th-column-header, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none; height: 26px;}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0 none;}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0 none;}\n.ui-first-th-ltr {border-right: 1px solid; }\n.ui-first-th-rtl {border-left: 1px solid; }\n.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}\n.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}\n.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}\n.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}\n.ui-jqgrid .ui-icon-desc {margin-top:3px;margin-left:-1px;height:12px;}\n.ui-jqgrid .ui-i-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-i-desc {margin-top:0;margin-left:12px;height:18px;}\n.ui-jqgrid .ui-single-sort-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-single-sort-desc {margin-top:-1px;height:18px;}\n.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;height:14px}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { width:25px;}\n.ui-jqgrid tr.ui-search-toolbar td > input { padding-right: 0px; width: 95%;}\n.ui-jqgrid tr.ui-search-toolbar select {}\n/* body */ \n.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0; padding:0; overflow: auto; text-align:left;z-index: 101;}\n.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0; outline-style: none; border-collapse: separate;}\n.ui-jqgrid tr.jqgrow { outline-style: none; }\n.ui-jqgrid tr.jqgroup { outline-style: none; }\n.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 23px;padding: 1px 2px 1px 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqgfirstrow td {padding: 0 2px 0 2px;border-right-width: 1px; border-right-style: solid; height:auto;}\n.ui-jqgrid tr.jqgroup td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqfoot td {font-weight: bold; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0; border: 0 none;}\n.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none; border:0 none; z-index: 99999;}\n/* footer */\n.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0;border-collapse: separate;}\n.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 20px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager { border-left: 0 none !important;border-right: 0 none !important; border-bottom: 0 none !important; border-top: 0 none; margin: 0 !important; padding: 0 !important; position: relative; height: auto; min-height: 28px; white-space: nowrap;overflow: hidden;font-size:11px; z-index:101}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, .ui-jqgrid .ui-jqgrid-pager .ui-pager-control {position: relative;border-left: 0;border-bottom: 0;border-top: 0; height: 28px;}\n.ui-jqgrid .ui-pg-table {position: relative; padding: 1px 0; width:auto; margin: 0;}\n.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:0px 1px;}\n.ui-jqgrid .ui-pg-button  { height:auto}\n.ui-jqgrid .ui-pg-button span { display: block; margin: 2px; float:left;}\n.ui-jqgrid .ui-pg-button:hover { padding: 0;}\n.ui-jqgrid .ui-state-disabled:hover {padding:0px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:14px;width: auto;font-size:.9em; margin:0;line-height: inherit;border: none; padding: 3px 2px}\n.ui-jqgrid .ui-pg-selbox, .ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {font-size:.9em; line-height:inherit; display:block; height:19px; margin: 0; padding: 3px 0px; border:none;}\n.ui-jqgrid .ui-separator {height: 18px; border-left: 2px solid #ccc ;}\n.ui-separator-li {height: 2px; border : none;border-top: 2px solid #ccc ; margin: 0; padding: 0; width:100%}\n.ui-jqgrid  .dropdownmenu {\n\tpadding: 3px 0 3px 0;\n\tmargin-left: 4px;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{padding:1px 0;float:left;position:relative; line-height: 20px;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon\n{float:left;margin: 2px; width:18px;}\n.ui-jqgrid td input, .ui-jqgrid td select, .ui-jqgrid td textarea { margin: 0; padding-top:5px;padding-bottom: 5px;}\n.ui-jqgrid td textarea {width:auto;height:auto;}\n.ui-jqgrid .ui-jqgrid-toppager {border-left: 0 none !important;border-right: 0 none !important; border-top: 0 none !important; margin: 0 !important; padding: 0 !important; position: relative;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table \n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n\n/*.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div {padding:1px 0;float:left;position:relative; line-height: 20px; margin-right:3px;}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button { cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon {float:left;margin: 2px; width:18px;}\n*/\n\n/*subgrid*/\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}\n.ui-jqgrid .ui-subgrid {margin:0;padding:0; width:100%;}\n.ui-jqgrid .ui-subgrid table {table-layout: fixed;}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0 none !important; border-left: 0 none !important;}\n.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0 1px 1px 0;}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n/* loading */\n.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important; font-size:11px;}\n.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n/* toolbar */\n.ui-jqgrid .ui-userdata {border-left: 0 none;    border-right: 0 none;\theight : 27px;overflow: hidden;\t}\n/*Modal Window */\n.ui-jqdialog { font-size:11px !important; }\n.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}\n.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative; height:20px;}\n.ui-jqdialog .ui-jqdialog-title { margin: .3em .2em .2em .2em;} \n.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -12px 0 0 0; padding: 1px; height: 18px; cursor:pointer;}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}\n.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}\n.ui-jqdialog>.ui-resizable-se { bottom: -3px; right: -3px}\n.ui-jqgrid>.ui-resizable-se { bottom: -3px; right: -3px }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid {margin: 0; overflow:auto;position:relative;}\n.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0;}\n.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0;}\n.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0;}\n.EditTable td textarea { width:auto; height:auto;}\n.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0 none;border-left: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content td.navButton {text-align: center; border-left: 0 none;border-top: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content input.FormElement {padding: .5em .3em; margin-bottom: 3px}\n.ui-jqdialog-content select.FormElement {padding:.3em; margin-bottom: 3px;}\n.ui-jqdialog-content .data-line {padding-top:.1em;border: 0 none;}\n\n.ui-jqdialog-content .CaptionTD {vertical-align: middle;border: 0 none; padding: 2px;white-space: nowrap;}\n.ui-jqdialog-content .DataTD {padding: 2px; border: 0 none; vertical-align: top;}\n.ui-jqdialog-content .form-view-data {white-space:pre}\n.fm-button { height: 18px; display: inline-block; margin:2px 4px 0 0; padding: .6em .5em .2em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }\n.fm-button-icon-left { padding-left: 1.9em; }\n.fm-button-icon-right { padding-right: 1.9em; }\n.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }\n.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}\n#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }\n.ViewTable {\n\tborder-width: 0; \n\tborder-style: none; \n\tborder-spacing: 1px;\n\tpadding: 4px;\n\ttable-layout: fixed;\n}\n.ViewTable .CaptionTD, .ViewTable .DataTD {padding : 4px;} \n/* End Eorm edit */\n/*cell edit*/\n.ui-jqgrid .edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0 none;}\n/* inline edit actions button*/\n.ui-inline-del.ui-state-hover span, .ui-inline-edit.ui-state-hover span,\n.ui-inline-save.ui-state-hover span, .ui-inline-cancel.ui-state-hover span {\n    margin: -1px;\n}\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 8px;\n}\n\n.ui-jqgrid .inline-edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}\n.ui-jqgrid .tree-plus {position: absolute;\theight: 18px; width: 18px;\toverflow: hidden;}\n.ui-jqgrid .tree-leaf {position: absolute;\theight: 18px; width: 18px;overflow: hidden;}\n.ui-jqgrid .treeclick {cursor: pointer;}\n/* moda dialog */\n* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {text-align: right;}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right;}\n.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0;}\n.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0 -1px -3px;}\n.ui-jqgrid .ui-sort-rtl {left:0;}\n.ui-jqgrid .tree-wrap-ltr {float: left;}\n.ui-jqgrid .tree-wrap-rtl {float: right;}\n.ui-jqgrid .ui-ellipsis {-moz-text-overflow:ellipsis;text-overflow:ellipsis;}\n\n/* Toolbar Search Menu , Nav menu*/\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n\t-webkit-box-shadow: 7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\t-moz-box-shadow:    7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\tbox-shadow:         7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { padding: 0; border: 0 none; height:20px; width:100%;}\n.ui-jqgrid .ui-search-table .ui-search-oper { width:20px; }\na.g-menu-item, a.soptclass, a.clearsearchclass { cursor: pointer; } \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    font-size: 11px;\n}\n.ui-jqgrid .ui-scroll-popup {width: 95px;}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-separator {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-pg-div > .ui-icon {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright:auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 10px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\twhite-space: pre;\n\tpadding-right: 4px;\n\tpadding-left: 4px;\n\twidth : auto;\n}\n.ui-menu-item .ui-common-table .menu_icon .ui-icon {\n\tdisplay : inline-block;\n\tposition: relative;\n}\ntd.menu_text {\n\twidth: auto;\n\twhite-space: nowrap;\n}\n.ui-search-menu .ui-menu-item {\n\tpadding : 0 0;\n}\n.ui-col-menu .ui-menu-item td.menu_text{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left : 1px;\n}\n.ui-col-menu .ui-menu-item td.menu_icon{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tvertical-align: middle;\n}\n.ui-col-menu .ui-menu-item td.menu_icon input{\n\tmargin: 2px 0;\n\t\n}\n#search_menu .ui-menu-item div {\n\tmargin: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu .ui-menu-item div input,\n#search_menu .ui-menu-item div select\n{\n\tpadding: 3px 2px;\n}\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n}\n#column_menu.ui-menu .ui-menu-item {\n\tposition :static;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/i18n/grid.locale-cn.js",
    "content": "/**\n * jqGrid Chinese Translation\n * 咖啡兔 yanhonglei@gmail.com \n * http://www.kafeitu.me \n * \n * 花岗岩 marbleqi@163.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html \n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"cn\"] = {\n    defaults : {\n        recordtext: \"第{0}到第{1}条\\u3000共 {2} 条\", // 共字前是全角空格\n        emptyrecords: \"没有记录！\",\n        loadtext: \"读取中...\",\n\tsavetext: \"保存中...\",\n        pgtext : \"第{0}页\\u3000共{1}页\",\n\t\tpgfirst : \"第一页\",\n\t\tpglast : \"最后一页\",\n\t\tpgnext : \"下一页\",\n\t\tpgprev : \"上一页\",\n\t\tpgrecs : \"每页记录数\",\n\t\tshowhide: \"切换 展开 折叠 表格\",\n\t\t// mobile\n\t\tpagerCaption : \"表格::页面设置\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"每页记录数\",\n\t\tnomorerecs : \"没有更多记录...\",\n\t\tscrollPullup: \"加载更多...\",\n\t\tscrollPulldown : \"刷新...\",\n\t\tscrollRefresh : \"滚动刷新...\"\n    },\n    search : {\n        caption: \"搜索...\",\n        Find: \"查找\",\n        Reset: \"重置\",\n        odata: [{ oper:'eq', text:'等于\\u3000\\u3000'},{ oper:'ne', text:'不等于\\u3000'},{ oper:'lt', text:'小于\\u3000\\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\\u3000\\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于\\u3000\\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含\\u3000\\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}],\n        groupOps: [ { op: \"AND\", text: \"满足所有条件\" },    { op: \"OR\",  text: \"满足任一条件\" } ],\n\t\toperandTitle : \"单击进行搜索。\",\n\t\tresetTitle : \"重置搜索条件\",\n\t\taddsubgrup : \"添加条件组\",\n\t\taddrule : \"添加条件\",\n\t\tdelgroup : \"删除条件组\",\n\t\tdelrule : \"删除条件\"\t\t\n    },\n    edit : {\n        addCaption: \"添加记录\",\n        editCaption: \"编辑记录\",\n        bSubmit: \"提交\",\n        bCancel: \"取消\",\n        bClose: \"关闭\",\n        saveData: \"数据已修改，是否保存？\",\n        bYes : \"是\",\n        bNo : \"否\",\n        bExit : \"取消\",\n        msg: {\n            required:\"此字段必需\",\n            number:\"请输入有效数字\",\n            minValue:\"输值必须大于等于 \",\n            maxValue:\"输值必须小于等于 \",\n            email: \"这不是有效的e-mail地址\",\n            integer: \"请输入有效整数\",\n            date: \"请输入有效时间\",\n            url: \"无效网址。前缀必须为 ('http://' 或 'https://')\",\n            nodefined : \" 未定义！\",\n            novalue : \" 需要返回值！\",\n            customarray : \"自定义函数需要返回数组！\",\n            customfcheck : \"必须有自定义函数!\"\n        }\n    },\n    view : {\n        caption: \"查看记录\",\n        bClose: \"关闭\"\n    },\n    del : {\n        caption: \"删除\",\n        msg: \"删除所选记录？\",\n        bSubmit: \"删除\",\n        bCancel: \"取消\"\n    },\n    nav : {\n        edittext: \"\",\n        edittitle: \"编辑所选记录\",\n        addtext:\"\",\n        addtitle: \"添加新记录\",\n        deltext: \"\",\n        deltitle: \"删除所选记录\",\n        searchtext: \"\",\n        searchtitle: \"查找\",\n        refreshtext: \"\",\n        refreshtitle: \"刷新表格\",\n        alertcap: \"注意\",\n        alerttext: \"请选择记录\",\n        viewtext: \"\",\n        viewtitle: \"查看所选记录\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"保存记录\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"取消编辑记录\",\n\t\tselectcaption : \"操作...\"\n    },\n    col : {\n        caption: \"选择列\",\n        bSubmit: \"确定\",\n        bCancel: \"取消\"\n    },\n    errors : {\n        errcap : \"错误\",\n        nourl : \"没有设置url\",\n        norecords: \"没有需要处理的记录\",\n        model : \"colNames 和 colModel 长度不等！\"\n    },\n    formatter : {\n        integer : {thousandsSeparator: \",\", defaultValue: '0'},\n        number : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n        currency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n        date : {\n            dayNames:   [\n                \"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\",\n                \"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\",\n            ],\n            monthNames: [\n                \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\", \"十\", \"十一\", \"十二\",\n                \"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n            ],\n            AmPm : [\"am\",\"pm\",\"上午\",\"下午\"],\n            S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n            srcformat: 'Y-m-d',\n            newformat: 'Y-m-d',\n            parseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n            masks : {\n                // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n                // and see http://docs.jquery.com/UI/Datepicker/formatDate\n                // and https://github.com/jquery/globalize#dates for alternative formats used frequently\n                // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n                // information about date, time, numbers and currency formats used in different countries\n                // one should just convert the information in PHP format\n                ISO8601Long:\"Y-m-d H:i:s\",\n                ISO8601Short:\"Y-m-d\",\n                // short date:\n                //    n - Numeric representation of a month, without leading zeros\n                //    j - Day of the month without leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                // example: 3/1/2012 which means 1 March 2012\n                ShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n                // long date:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                LongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n                // long date with long time:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                FullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n                // month day:\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                MonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n                // short time (without seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                ShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n                // long time (with seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                LongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n                SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                // month with year\n                //    Y - A full numeric representation of a year, 4 digits\n                //    F - A full textual representation of a month\n                YearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n            },\n            reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n        },\n        baseLinkUrl: '',\n        showAction: '',\n        target: '',\n        checkbox : {disabled:true},\n        idName : 'id'\n    },\n\tcolmenu : {\n\t\tsortasc : \"升序排序\",\n\t\tsortdesc : \"降序排序\",\n\t\tcolumns : \"列\",\n\t\tfilter : \"筛选\",\n\t\tgrouping : \"分类\",\n\t\tungrouping : \"取消分类\",\n\t\tsearchTitle : \"查找:\",\n\t\tfreeze : \"冻结\",\n\t\tunfreeze : \"取消冻结\",\n\t\treorder : \"重新排序\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/js/install.txt",
    "content": "Installation\n\nDownload the jqGrid package from the www.trirand/blog site section downloads.\nNote the new download manager where you can choose which modules you want to\ninclude in the download.\n\nIn order to use jqGrid 3.5, first a UI theme css file should be loaded.\nDownload the desired theme (or build a custom one) from jQueryUI site\n(www.jqueryui.com) and point in your link tag in head section the path to the\ntheme css\n\n<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"path_to_ui_css_file/jquery-ui-1.7.1.custom.css\" />\n\nwhere the path_to_ui_css_file is a valid path to the ui theme file\n\nExtract the jqGrid package and copy the ui.jqgrid.css from css directory to\nyour webserver directory. It is not necessary that the jqgrid css file is in\nthe same directory as those of the jquery ui css.\n\n<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"path_to_jqgrid_css_file/ui.jqgrid.css\" />\n\nStarting with this version, jqGrid does not use a loader (which loads the\nneeded files one by one), but all the needed code is contained in one file.\nThe desired modules can be built using the jqGrid download manager from the\nsite pointed above. In order to use this, first a language file should be\nloaded and then the jqgrid file.\n\nCopy the desired language file from js/i18n directory to your web server\ndirectory where you store the java script files. Every language file is\nnamed grid.locale-XX.js, where XX is a two-letter code for the language.\nCopy the jquery.jqGid.min.js file to the same or other valid directory in\nyour web server\n\nInclude both the files in script tags in the head section\n\n<script src=\"path_to_js_files/grid.locale-en.js\" type=\"text/javascript\"></script>\n<script src=\"path_to_js_files/jquery.jqGrid.min.js\" type=\"text/javascript\"></script>\n\nFor debugging purposes, I have created a grid.loader.js which does the same\nloading of the files as in previous versions. The location of the file is in\nsrc directory of the package. In order to use this, the variable pathojsfiles\nshould be adjusted to point to the appropriate folder - see 3.4.x docs.\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/grid.addons.js",
    "content": "(function($){\n/*\n * jqGrid methods without support. Use as you wish\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n *\n * This list of deprecated methods.\n * If you instead want to use them, please include this file after the grid main file.\n * Some methods will be then overwritten.\n *\n */\n/*global jQuery, $ */\n\n$.jgrid.extend({\n// This is the ols search Filter method used in navigator.\n\tsearchGrid : function (p) {\n\t\tp = $.extend({\n\t\t\trecreateFilter: false,\n\t\t\tdrag: true,\n\t\t\tsField:'searchField',\n\t\t\tsValue:'searchString',\n\t\t\tsOper: 'searchOper',\n\t\t\tsFilter: 'filters',\n            loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.\n\t\t\tbeforeShowSearch: null,\n\t\t\tafterShowSearch : null,\n\t\t\tonInitializeSearch: null,\n\t\t\tcloseAfterSearch : false,\n\t\t\tcloseAfterReset: false,\n\t\t\tcloseOnEscape : false,\n\t\t\tmultipleSearch : false,\n\t\t\tcloneSearchRowOnAdd: true,\n\t\t\t// translation\n\t\t\t// if you want to change or remove the order change it in sopt\n\t\t\t// ['bw','eq','ne','lt','le','gt','ge','ew','cn']\n\t\t\tsopt: null,\n\t\t\t// Note: stringResult is intentionally declared \"undefined by default\".\n\t\t\t//  you are velcome to define stringResult expressly in the options you pass to searchGrid()\n\t\t\t//  stringResult is a \"safeguard\" measure to insure we post sensible data when communicated as form-encoded\n\t\t\t//  see http://github.com/tonytomov/jqGrid/issues/#issue/36\n\t\t\t//\n\t\t\t//  If this value is not expressly defined in the incoming options,\n\t\t\t// lower in the code we will infer the value based on value of multipleSearch\n\t\t\tstringResult: undefined,\n\t\t\tonClose : null,\n\t\t\t// useDataProxy allows ADD, EDIT and DEL code to bypass calling $.ajax\n\t\t\t// directly when grid's 'dataProxy' property (grid.p.dataProxy) is a function.\n\t\t\t// Used for \"editGridRow\" and \"delGridRow\" below and automatically flipped to TRUE\n\t\t\t// when ajax setting's 'url' (grid's 'editurl') property is undefined.\n\t\t\t// When 'useDataProxy' is true, instead of calling $.ajax.call(gridDOMobj, o, i) we call\n\t\t\t// gridDOMobj.p.dataProxy.call(gridDOMobj, o, i)\n\t\t\t//\n\t\t\t// Behavior is extremely similar to when 'datatype' is a function, but arguments are slightly different.\n\t\t\t// Normally the following is fed to datatype.call(a, b, c):\n\t\t\t//   a = Pointer to grid's table DOM element, b = grid.p.postdata, c = \"load_\"+grid's ID\n\t\t\t// In cases of \"edit\" and \"del\" the following is fed:\n\t\t\t//   a = Pointer to grid's table DOM element (same),\n\t\t\t//   b = extended Ajax Options including postdata in \"data\" property. (different object type)\n\t\t\t//   c = \"set_\"+grid's ID in case of \"edit\" and \"del_\"+grid's ID in case of \"del\" (same type, different content)\n\t\t\t// The major difference is that complete ajax options object, with attached \"complete\" and \"error\"\n\t\t\t// callback functions is fed instead of only post data.\n\t\t\t// This allows you to emulate a $.ajax call (including calling \"complete\"/\"error\"),\n\t\t\t// while retrieving the data locally in the browser.\n\t\t\tuseDataProxy: false,\n\t\t\toverlay : true\n\t\t}, $.jgrid.search, p || {});\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar fid = \"fbox_\"+$t.p.id,\n\t\t\tshowFrm = true;\n            function applyDefaultFilters(gridDOMobj, filterSettings) {\n\t\t\t\t/*\n                gridDOMobj = ointer to grid DOM object ( $(#list)[0] )\n                What we need from gridDOMobj:\n                gridDOMobj.SearchFilter is the pointer to the Search box, once it's created.\n                gridDOMobj.p.postData - dictionary of post settings. These can be overriden at grid creation to\n                contain default filter settings. We will parse these and will populate the search with defaults.\n                filterSettings - same settings object you (would) pass to $().jqGrid('searchGrid', filterSettings);\n                */\n\n                // Pulling default filter settings out of postData property of grid's properties.:\n                var defaultFilters = gridDOMobj.p.postData[filterSettings.sFilter];\n                // example of what we might get: {\"groupOp\":\"and\",\"rules\":[{\"field\":\"amount\",\"op\":\"eq\",\"data\":\"100\"}]}\n\t\t\t\t// suppose we have imported this with grid import, the this is a string.\n\t\t\t\tif(typeof(defaultFilters) == \"string\") {\n\t\t\t\t\tdefaultFilters = $.jgrid.parse(defaultFilters);\n\t\t\t\t}\n                if (defaultFilters) {\n                    if (defaultFilters.groupOp) {\n                        gridDOMobj.SearchFilter.setGroupOp(defaultFilters.groupOp);\n                    }\n                    if (defaultFilters.rules) {\n                        var f, i = 0, li = defaultFilters.rules.length, success = false;\n                        for (; i < li; i++) {\n                            f = defaultFilters.rules[i];\n                            // we are not trying to counter all issues with filter declaration here. Just the basics to avoid lookup exceptions.\n                            if (f.field !== undefined && f.op !== undefined && f.data !== undefined) {\n                                success = gridDOMobj.SearchFilter.setFilter({\n                                    'sfref':gridDOMobj.SearchFilter.$.find(\".sf:last\"),\n                                    'filter':$.extend({},f)\n                                });\n\t\t\t\t\t\t\t\tif (success) { gridDOMobj.SearchFilter.add(); }\n                            }\n                        }\n                    }\n\t\t\t\t}\n            } // end of applyDefaultFilters\n\t\t\tfunction hideFilter(selector) {\n\t\t\t\tif(p.onClose){\n\t\t\t\t\tvar fclm = p.onClose(selector);\n\t\t\t\t\tif(typeof fclm == 'boolean' && !fclm) { return; }\n\t\t\t\t}\n\t\t\t\tselector.hide();\n\t\t\t\tif(p.overlay === true) {\n\t\t\t\t\t$(\".jqgrid-overlay:first\",\"#gbox_\"+$t.p.id).hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction showFilter(){\n\t\t\t\tvar fl = $(\".ui-searchFilter\").length;\n\t\t\t\tif(fl > 1) {\n\t\t\t\t\tvar zI = $(\"#\"+fid).css(\"zIndex\");\n\t\t\t\t\t$(\"#\"+fid).css({zIndex:parseInt(zI,10)+fl});\n\t\t\t\t}\n\t\t\t\t$(\"#\"+fid).show();\n\t\t\t\tif(p.overlay === true) {\n\t\t\t\t\t$(\".jqgrid-overlay:first\",\"#gbox_\"+$t.p.id).show();\n\t\t\t\t}\n\t\t\t\ttry{$(':input:visible',\"#\"+fid)[0].focus();}catch(_){}\n\t\t\t}\n\t\t\tfunction searchFilters(filters) {\n\t\t\t\tvar hasFilters = (filters !== undefined),\n\t\t\t\tgrid = $(\"#\"+$t.p.id),\n\t\t\t\tsdata={};\n\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\tsdata[p.sField] = filters.rules[0].field;\n\t\t\t\t\tsdata[p.sValue] = filters.rules[0].data;\n\t\t\t\t\tsdata[p.sOper] = filters.rules[0].op;\n\t\t\t\t\tif(sdata.hasOwnProperty(p.sFilter) ) {\n\t\t\t\t\t\tdelete sdata[p.sFilter];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsdata[p.sFilter] = filters;\n\t\t\t\t\t$.each([p.sField, p.sValue, p.sOper], function(i, n){\n\t\t\t\t\t\tif(sdata.hasOwnProperty(n)) { delete sdata[n];}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tgrid[0].p.search = hasFilters;\n\t\t\t\t$.extend(grid[0].p.postData,sdata);\n\t\t\t\tgrid.trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\tif(p.closeAfterSearch) { hideFilter($(\"#\"+fid)); }\n\t\t\t}\n\t\t\tfunction resetFilters(op) {\n\t\t\t\tvar reload = op && op.hasOwnProperty(\"reload\") ? op.reload : true,\n\t\t\t\tgrid = $(\"#\"+$t.p.id),\n\t\t\t\tsdata={};\n\t\t\t\tgrid[0].p.search = false;\n\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\tsdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = \"\";\n\t\t\t\t} else {\n\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t}\n\t\t\t\t$.extend(grid[0].p.postData,sdata);\n\t\t\t\tif(reload) {\n\t\t\t\t\tgrid.trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t}\n\t\t\t\tif(p.closeAfterReset) { hideFilter($(\"#\"+fid)); }\n\t\t\t}\n\t\t\tif($.fn.searchFilter) {\n\t\t\t\tif(p.recreateFilter===true) {$(\"#\"+fid).remove();}\n\t\t\t\tif( $(\"#\"+fid).html() !== null ) {\n\t\t\t\t\tif ( $.isFunction(p.beforeShowSearch) ) {\n\t\t\t\t\t\tshowFrm = p.beforeShowSearch($(\"#\"+fid));\n\t\t\t\t\t\tif(typeof(showFrm) == \"undefined\") {\n\t\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(showFrm === false) { return; }\n\t\t\t\t\tshowFilter();\n\t\t\t\t\tif( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($(\"#\"+fid)); }\n\t\t\t\t} else {\n\t\t\t\t\tvar fields = [],\n\t\t\t\t\tcolNames = $(\"#\"+$t.p.id).jqGrid(\"getGridParam\",\"colNames\"),\n\t\t\t\t\tcolModel = $(\"#\"+$t.p.id).jqGrid(\"getGridParam\",\"colModel\"),\n\t\t\t\t\tstempl = ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],\n\t\t\t\t\tj,pos,k,oprtr=[];\n\t\t\t\t\tif (p.sopt !==null) {\n\t\t\t\t\t\tk=0;\n\t\t\t\t\t\tfor(j=0;j<p.sopt.length;j++) {\n\t\t\t\t\t\t\tif( (pos= $.inArray(p.sopt[j],stempl)) != -1 ){\n\t\t\t\t\t\t\t\toprtr[k] = {op:p.sopt[j],text: p.odata[pos]};\n\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(j=0;j<stempl.length;j++) {\n\t\t\t\t\t\t\toprtr[j] = {op:stempl[j],text: p.odata[j]};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t    $.each(colModel, function(i, v) {\n\t\t\t\t        var searchable = (typeof v.search === 'undefined') ?  true: v.search ,\n\t\t\t\t        hidden = (v.hidden === true),\n\t\t\t\t\t\tsoptions = $.extend({}, {text: colNames[i], itemval: v.index || v.name}, this.searchoptions),\n\t\t\t\t\t\tignoreHiding = (soptions.searchhidden === true);\n\t\t\t\t\t\tif(typeof soptions.sopt !== 'undefined') {\n\t\t\t\t\t\t\tk=0;\n\t\t\t\t\t\t\tsoptions.ops =[];\n\t\t\t\t\t\t\tif(soptions.sopt.length>0) {\n\t\t\t\t\t\t\t\tfor(j=0;j<soptions.sopt.length;j++) {\n\t\t\t\t\t\t\t\t\tif( (pos= $.inArray(soptions.sopt[j],stempl)) != -1 ){\n\t\t\t\t\t\t\t\t\t\tsoptions.ops[k] = {op:soptions.sopt[j],text: p.odata[pos]};\n\t\t\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(typeof(this.stype) === 'undefined') { this.stype='text'; }\n\t\t\t\t\t\tif(this.stype == 'select') {\n\t\t\t\t\t\t\tif ( soptions.dataUrl !== undefined) {}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvar eov;\n\t\t\t\t\t\t\t\tif(soptions.value) {\n\t\t\t\t\t\t\t\t\teov = soptions.value;\n\t\t\t\t\t\t\t\t} else if(this.editoptions) {\n\t\t\t\t\t\t\t\t\teov = this.editoptions.value;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(eov) {\n\t\t\t\t\t\t\t\t\tsoptions.dataValues =[];\n\t\t\t\t\t\t\t\t\tif(typeof(eov) === 'string') {\n\t\t\t\t\t\t\t\t\t\tvar so = eov.split(\";\"),sv;\n\t\t\t\t\t\t\t\t\t\tfor(j=0;j<so.length;j++) {\n\t\t\t\t\t\t\t\t\t\t\tsv = so[j].split(\":\");\n\t\t\t\t\t\t\t\t\t\t\tsoptions.dataValues[j] ={value:sv[0],text:sv[1]};\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if (typeof(eov) === 'object') {\n\t\t\t\t\t\t\t\t\t\tj=0;\n\t\t\t\t\t\t\t\t\t\tfor (var key in eov) {\n\t\t\t\t\t\t\t\t\t\t\tif(eov.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsoptions.dataValues[j] ={value:key,text:eov[key]};\n\t\t\t\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t        if ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\t\tfields.push(soptions);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(fields.length>0){\n\t\t\t\t\t\t$(\"<div id='\"+fid+\"' role='dialog' tabindex='-1'></div>\").insertBefore(\"#gview_\"+$t.p.id);\n\t\t\t\t\t\t// Before we create searchFilter we need to decide if we want to get back a string or a JS object.\n\t\t\t\t\t\t//  see http://github.com/tonytomov/jqGrid/issues/#issue/36 for background on the issue.\n\t\t\t\t\t\t// If p.stringResult is defined, it was explisitly passed to us by user. Honor the choice, whatever it is.\n\t\t\t\t\t\tif (p.stringResult===undefined) {\n\t\t\t\t\t\t\t// to provide backward compatibility, inferring stringResult value from multipleSearch\n\t\t\t\t\t\t\tp.stringResult = p.multipleSearch;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// we preserve the return value here to retain access to .add() and other good methods of search form.\n\t\t\t\t\t\t$t.SearchFilter = $(\"#\"+fid).searchFilter(fields, { groupOps: p.groupOps, operators: oprtr, onClose:hideFilter, resetText: p.Reset, searchText: p.Find, windowTitle: p.caption,  rulesText:p.rulesText, matchText:p.matchText, onSearch: searchFilters, onReset: resetFilters,stringResult:p.stringResult, ajaxSelectOptions: $.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions ||{}), clone: p.cloneSearchRowOnAdd });\n\t\t\t\t\t\t$(\".ui-widget-overlay\",\"#\"+fid).remove();\n\t\t\t\t\t\tif($t.p.direction==\"rtl\") { $(\".ui-closer\",\"#\"+fid).css(\"float\",\"left\"); }\n\t\t\t\t\t\tif (p.drag===true) {\n\t\t\t\t\t\t\t$(\"#\"+fid+\" table thead tr:first td:first\").css('cursor','move');\n\t\t\t\t\t\t\tif(jQuery.fn.jqDrag) {\n\t\t\t\t\t\t\t\t$(\"#\"+fid).jqDrag($(\"#\"+fid+\" table thead tr:first td:first\"));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t$(\"#\"+fid).draggable({handle: $(\"#\"+fid+\" table thead tr:first td:first\")});\n\t\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(p.multipleSearch === false) {\n\t\t\t\t\t\t\t$(\".ui-del, .ui-add, .ui-del, .ui-add-last, .matchText, .rulesText\", \"#\"+fid).hide();\n\t\t\t\t\t\t\t$(\"select[name='groupOp']\",\"#\"+fid).hide();\n\t\t\t\t\t\t}\n                        if (p.multipleSearch === true && p.loadDefaults === true) {\n                            applyDefaultFilters($t, p);\n                        }\n\t\t\t\t\t\tif ( $.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch( $(\"#\"+fid) ); }\n\t\t\t\t\t\tif ( $.isFunction(p.beforeShowSearch) ) {\n\t\t\t\t\t\t\tshowFrm = p.beforeShowSearch($(\"#\"+fid));\n\t\t\t\t\t\t\tif(typeof(showFrm) == \"undefined\") {\n\t\t\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(showFrm === false) { return; }\n\t\t\t\t\t\tshowFilter();\n\t\t\t\t\t\tif( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($(\"#\"+fid)); }\n\t\t\t\t\t\tif(p.closeOnEscape===true){\n\t\t\t\t\t\t\t$(\"#\"+fid).keydown( function( e ) {\n\t\t\t\t\t\t\t\tif( e.which == 27 ) {\n\t\t\t\t\t\t\t\t\thideFilter($(\"#\"+fid));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (e.which == 13) {\n\t\t\t\t\t\t\t\t\t$(\".ui-search\", this).click();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\t// methods taken from grid.custom.\n\tupdateGridRows : function (data, rowidname, jsonreader) {\n\t\tvar nm, success=false, title;\n\t\tthis.each(function(){\n\t\t\tvar t = this, vl, ind, srow, sid;\n\t\t\tif(!t.grid) {return false;}\n\t\t\tif(!rowidname) { rowidname = \"id\"; }\n\t\t\tif( data  && data.length >0 ) {\n\t\t\t\t$(data).each(function(j){\n\t\t\t\t\tsrow = this;\n\t\t\t\t\tind = t.rows.namedItem(srow[rowidname]);\n\t\t\t\t\tif(ind) {\n\t\t\t\t\t\tsid = srow[rowidname];\n\t\t\t\t\t\tif(jsonreader === true){\n\t\t\t\t\t\t\tif(t.p.jsonReader.repeatitems === true) {\n\t\t\t\t\t\t\t\tif(t.p.jsonReader.cell) {srow = srow[t.p.jsonReader.cell];}\n\t\t\t\t\t\t\t\tfor (var k=0;k<srow.length;k++) {\n\t\t\t\t\t\t\t\t\tvl = t.formatter( sid, srow[k], k, srow, 'edit');\n\t\t\t\t\t\t\t\t\ttitle = t.p.colModel[k].title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm == t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+k+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+k+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(t.p.colModel).each(function(i){\n\t\t\t\t\t\t\tnm = jsonreader===true ? this.jsonmap || this.name :this.name;\n\t\t\t\t\t\t\tif( srow[nm] !== undefined) {\n\t\t\t\t\t\t\t\tvl = t.formatter( sid, srow[nm], i, srow, 'edit');\n\t\t\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm == t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+i+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$(\"td:eq(\"+i+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\t// Form search - sorry for this method. Instead use ne jqFilter method.\n\tfilterGrid : function(gridid,p){\n\t\tp = $.extend({\n\t\t\tgridModel : false,\n\t\t\tgridNames : false,\n\t\t\tgridToolbar : false,\n\t\t\tfilterModel: [], // label/name/stype/defval/surl/sopt\n\t\t\tformtype : \"horizontal\", // horizontal/vertical\n\t\t\tautosearch: true, // if set to false a serch button should be enabled.\n\t\t\tformclass: \"filterform\",\n\t\t\ttableclass: \"filtertable\",\n\t\t\tbuttonclass: \"filterbutton\",\n\t\t\tsearchButton: \"Search\",\n\t\t\tclearButton: \"Clear\",\n\t\t\tenableSearch : false,\n\t\t\tenableClear: false,\n\t\t\tbeforeSearch: null,\n\t\t\tafterSearch: null,\n\t\t\tbeforeClear: null,\n\t\t\tafterClear: null,\n\t\t\turl : '',\n\t\t\tmarksearched: true\n\t\t},p  || {});\n\t\treturn this.each(function(){\n\t\t\tvar self = this;\n\t\t\tthis.p = p;\n\t\t\tif(this.p.filterModel.length === 0 && this.p.gridModel===false) { alert(\"No filter is set\"); return;}\n\t\t\tif( !gridid) {alert(\"No target grid is set!\"); return;}\n\t\t\tthis.p.gridid = gridid.indexOf(\"#\") != -1 ? gridid : \"#\"+gridid;\n\t\t\tvar gcolMod = $(this.p.gridid).jqGrid(\"getGridParam\",'colModel');\n\t\t\tif(gcolMod) {\n\t\t\t\tif( this.p.gridModel === true) {\n\t\t\t\t\tvar thegrid = $(this.p.gridid)[0];\n\t\t\t\t\tvar sh;\n\t\t\t\t\t// we should use the options search, edittype, editoptions\n\t\t\t\t\t// additionally surl and defval can be added in grid colModel\n\t\t\t\t\t$.each(gcolMod, function (i,n) {\n\t\t\t\t\t\tvar tmpFil = [];\n\t\t\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\t\t\tif(this.editrules && this.editrules.searchhidden === true) {\n\t\t\t\t\t\t\tsh = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(this.hidden === true ) {\n\t\t\t\t\t\t\t\tsh = false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsh = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( this.search === true && sh === true) {\n\t\t\t\t\t\t\tif(self.p.gridNames===true) {\n\t\t\t\t\t\t\t\ttmpFil.label = thegrid.p.colNames[i];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmpFil.label = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpFil.name = this.name;\n\t\t\t\t\t\t\ttmpFil.index = this.index || this.name;\n\t\t\t\t\t\t\t// we support only text and selects, so all other to text\n\t\t\t\t\t\t\ttmpFil.stype = this.edittype || 'text';\n\t\t\t\t\t\t\tif(tmpFil.stype != 'select' ) {\n\t\t\t\t\t\t\t\ttmpFil.stype = 'text';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpFil.defval = this.defval || '';\n\t\t\t\t\t\t\ttmpFil.surl = this.surl || '';\n\t\t\t\t\t\t\ttmpFil.sopt = this.editoptions || {};\n\t\t\t\t\t\t\ttmpFil.width = this.width;\n\t\t\t\t\t\t\tself.p.filterModel.push(tmpFil);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.each(self.p.filterModel,function(i,n) {\n\t\t\t\t\t\tfor(var j=0;j<gcolMod.length;j++) {\n\t\t\t\t\t\t\tif(this.name == gcolMod[j].name) {\n\t\t\t\t\t\t\t\tthis.index = gcolMod[j].index || this.name;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!this.index) {\n\t\t\t\t\t\t\tthis.index = this.name;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\talert(\"Could not get grid colModel\"); return;\n\t\t\t}\n\t\t\tvar triggerSearch = function() {\n\t\t\t\tvar sdata={}, j=0, v;\n\t\t\t\tvar gr = $(self.p.gridid)[0], nm;\n                gr.p.searchdata = {};\n\t\t\t\tif($.isFunction(self.p.beforeSearch)){self.p.beforeSearch();}\n\t\t\t\t$.each(self.p.filterModel,function(i,n){\n                    nm = this.index;\n\t\t\t\t\tif(this.stype === 'select') {\n\t\t\t\t\t\tv = $(\"select[name=\"+nm+\"]\",self).val();\n\t\t\t\t\t\tif(v) {\n\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n                               try {\n                                   delete gr.p.postData[this.index];\n                               } catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tv = $(\"input[name=\"+nm+\"]\",self).val();\n\t\t\t\t\t\tif(v) {\n\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete gr.p.postData[this.index];\n                            } catch(x) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n                $.extend(gr.p.postData,sdata);\n\t\t\t\tvar saveurl;\n\t\t\t\tif(self.p.url) {\n\t\t\t\t\tsaveurl = $(gr).jqGrid(\"getGridParam\",'url');\n\t\t\t\t\t$(gr).jqGrid(\"setGridParam\",{url:self.p.url});\n\t\t\t\t}\n\t\t\t    $(gr).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\tif(saveurl) {$(gr).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\tif($.isFunction(self.p.afterSearch)){self.p.afterSearch();}\n\t\t\t};\n\t\t\tvar clearSearch = function(){\n\t\t\t\tvar sdata={}, v, j=0;\n\t\t\t\tvar gr = $(self.p.gridid)[0], nm;\n\t\t\t\tif($.isFunction(self.p.beforeClear)){self.p.beforeClear();}\n\t\t\t\t$.each(self.p.filterModel,function(i,n){\n                    nm = this.index;\n\t\t\t\t\tv = (this.defval) ? this.defval : \"\";\n\t\t\t\t\tif(!this.stype){this.stype='text';}\n\t\t\t\t\tswitch (this.stype) {\n\t\t\t\t\t\tcase 'select' :\n\t\t\t\t\t\t\tvar v1;\n\t\t\t\t\t\t\t$(\"select[name=\"+nm+\"] option\",self).each(function (i){\n                                if(i===0) { this.selected = true; }\n\t\t\t\t\t\t\t\tif ($(this).text() == v) {\n\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\tv1 = $(this).val();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif(v1) {\n\t\t\t\t\t\t\t\t// post the key and not the text\n\t\t\t\t\t\t\t\tsdata[nm] = v1;\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n                                try {\n                                    delete gr.p.postData[this.index];\n                                } catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\t$(\"input[name=\"+nm+\"]\",self).val(v);\n\t\t\t\t\t\t\tif(v) {\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(self.p.marksearched){\n\t\t\t\t\t\t\t\t\t$(\"#jqgh_\"+this.name,gr.grid.hDiv).removeClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t}\n                                try {\n                                    delete gr.p.postData[this.index];\n                                } catch (k) {}\n\t\t\t\t\t\t\t}\n                            break;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n                $.extend(gr.p.postData,sdata);\n\t\t\t\tvar saveurl;\n\t\t\t\tif(self.p.url) {\n\t\t\t\t\tsaveurl = $(gr).jqGrid(\"getGridParam\",'url');\n\t\t\t\t\t$(gr).jqGrid(\"setGridParam\",{url:self.p.url});\n\t\t\t\t}\n\t\t\t\t$(gr).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\tif(saveurl) {$(gr).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\tif($.isFunction(self.p.afterClear)){self.p.afterClear();}\n\t\t\t};\n\t\t\tvar tbl;\n\t\t\tvar formFill = function(){\n\t\t\t\tvar tr = document.createElement(\"tr\");\n\t\t\t\tvar tr1, sb, cb,tl,td;\n\t\t\t\tif(self.p.formtype=='horizontal'){\n\t\t\t\t\t$(tbl).append(tr);\n\t\t\t\t}\n\t\t\t\t$.each(self.p.filterModel,function(i,n){\n\t\t\t\t\ttl = document.createElement(\"td\");\n\t\t\t\t\t$(tl).append(\"<label for='\"+this.name+\"'>\"+this.label+\"</label>\");\n\t\t\t\t\ttd = document.createElement(\"td\");\n\t\t\t\t\tvar $t=this;\n\t\t\t\t\tif(!this.stype) { this.stype='text';}\n\t\t\t\t\tswitch (this.stype)\n\t\t\t\t\t{\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(this.surl) {\n\t\t\t\t\t\t\t// data returned should have already constructed html select\n\t\t\t\t\t\t\t$(td).load(this.surl,function(){\n\t\t\t\t\t\t\t\tif($t.defval) { $(\"select\",this).val($t.defval); }\n\t\t\t\t\t\t\t\t$(\"select\",this).attr({name:$t.index || $t.name, id: \"sg_\"+$t.name});\n\t\t\t\t\t\t\t\tif($t.sopt) { $(\"select\",this).attr($t.sopt); }\n\t\t\t\t\t\t\t\tif(self.p.gridToolbar===true && $t.width) {\n\t\t\t\t\t\t\t\t\t$(\"select\",this).width($t.width);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(self.p.autosearch===true){\n\t\t\t\t\t\t\t\t\t$(\"select\",this).change(function(e){\n\t\t\t\t\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// sopt to construct the values\n\t\t\t\t\t\t\tif($t.sopt.value) {\n\t\t\t\t\t\t\t\tvar oSv = $t.sopt.value;\n\t\t\t\t\t\t\t\tvar elem = document.createElement(\"select\");\n\t\t\t\t\t\t\t\t$(elem).attr({name:$t.index || $t.name, id: \"sg_\"+$t.name}).attr($t.sopt);\n\t\t\t\t\t\t\t\tvar so, sv, ov;\n\t\t\t\t\t\t\t\tif(typeof oSv === \"string\") {\n\t\t\t\t\t\t\t\t\tso = oSv.split(\";\");\n\t\t\t\t\t\t\t\t\tfor(var k=0; k<so.length;k++){\n\t\t\t\t\t\t\t\t\t\tsv = so[k].split(\":\");\n\t\t\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\t\t\tov.value = sv[0]; ov.innerHTML = sv[1];\n\t\t\t\t\t\t\t\t\t\tif (sv[1]==$t.defval) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if(typeof oSv === \"object\" ) {\n\t\t\t\t\t\t\t\t\tfor ( var key in oSv) {\n\t\t\t\t\t\t\t\t\t\tif(oSv.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = oSv[key];\n\t\t\t\t\t\t\t\t\t\t\tif (oSv[key]==$t.defval) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(self.p.gridToolbar===true && $t.width) {\n\t\t\t\t\t\t\t\t\t$(elem).width($t.width);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$(td).append(elem);\n\t\t\t\t\t\t\t\tif(self.p.autosearch===true){\n\t\t\t\t\t\t\t\t\t$(elem).change(function(e){\n\t\t\t\t\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'text':\n\t\t\t\t\t\tvar df = this.defval ? this.defval: \"\";\n\t\t\t\t\t\t$(td).append(\"<input type='text' name='\"+(this.index || this.name)+\"' id='sg_\"+this.name+\"' value='\"+df+\"'/>\");\n\t\t\t\t\t\tif($t.sopt) { $(\"input\",td).attr($t.sopt); }\n\t\t\t\t\t\tif(self.p.gridToolbar===true && $t.width) {\n\t\t\t\t\t\t\tif($.browser.msie) {\n\t\t\t\t\t\t\t\t$(\"input\",td).width($t.width-4);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(\"input\",td).width($t.width-2);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(self.p.autosearch===true){\n\t\t\t\t\t\t\t$(\"input\",td).keypress(function(e){\n\t\t\t\t\t\t\t\tvar key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;\n\t\t\t\t\t\t\t\tif(key == 13){\n\t\t\t\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn this;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(self.p.formtype=='horizontal'){\n\t\t\t\t\t\tif(self.p.gridToolbar===true && self.p.gridNames===false) {\n\t\t\t\t\t\t\t$(tr).append(td);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(tr).append(tl).append(td);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(tr).append(td);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttr1 = document.createElement(\"tr\");\n\t\t\t\t\t\t$(tr1).append(tl).append(td);\n\t\t\t\t\t\t$(tbl).append(tr1);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttd = document.createElement(\"td\");\n\t\t\t\tif(self.p.enableSearch === true){\n\t\t\t\t\tsb = \"<input type='button' id='sButton' class='\"+self.p.buttonclass+\"' value='\"+self.p.searchButton+\"'/>\";\n\t\t\t\t\t$(td).append(sb);\n\t\t\t\t\t$(\"input#sButton\",td).click(function(){\n\t\t\t\t\t\ttriggerSearch();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(self.p.enableClear === true) {\n\t\t\t\t\tcb = \"<input type='button' id='cButton' class='\"+self.p.buttonclass+\"' value='\"+self.p.clearButton+\"'/>\";\n\t\t\t\t\t$(td).append(cb);\n\t\t\t\t\t$(\"input#cButton\",td).click(function(){\n\t\t\t\t\t\tclearSearch();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(self.p.enableClear === true || self.p.enableSearch === true) {\n\t\t\t\t\tif(self.p.formtype=='horizontal') {\n\t\t\t\t\t\t$(tr).append(td);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttr1 = document.createElement(\"tr\");\n\t\t\t\t\t\t$(tr1).append(\"<td>&#160;</td>\").append(td);\n\t\t\t\t\t\t$(tbl).append(tr1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar frm = $(\"<form name='SearchForm' style=display:inline;' class='\"+this.p.formclass+\"'></form>\");\n\t\t\ttbl =$(\"<table class='\"+this.p.tableclass+\"' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>\");\n\t\t\t$(frm).append(tbl);\n\t\t\tformFill();\n\t\t\t$(this).append(frm);\n\t\t\tthis.triggerSearch = triggerSearch;\n\t\t\tthis.clearSearch = clearSearch;\n\t\t});\n\t}\n\n});\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/grid.postext.js",
    "content": ";(function($){\n/**\n * jqGrid extension\n * Paul Tiseo ptiseo@wasteconsultants.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n**/ \n$.jgrid.extend({\n\tgetPostData : function(){\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.postData;\n\t},\n\tsetPostData : function( newdata ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\t// check if newdata is correct type\n\t\tif ( typeof(newdata) === 'object' ) {\n\t\t\t$t.p.postData = newdata;\n\t\t}\n\t\telse {\n\t\t\talert(\"Error: cannot add a non-object postData value. postData unchanged.\");\n\t\t}\n\t},\n\tappendPostData : function( newdata ) { \n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\t// check if newdata is correct type\n\t\tif ( typeof(newdata) === 'object' ) {\n\t\t\t$.extend($t.p.postData, newdata);\n\t\t}\n\t\telse {\n\t\t\talert(\"Error: cannot append a non-object postData value. postData unchanged.\");\n\t\t}\n\t},\n\tsetPostDataItem : function( key, val ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\t$t.p.postData[key] = val;\n\t},\n\tgetPostDataItem : function( key ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.postData[key];\n\t},\n\tremovePostDataItem : function( key ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\tdelete $t.p.postData[key];\n\t},\n\tgetUserData : function(){\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.userData;\n\t},\n\tgetUserDataItem : function( key ) {\n\t\tvar $t = this[0];\n\t\tif(!$t.grid) { return; }\n\t\treturn $t.p.userData[key];\n\t}\n});\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/grid.setcolumns.js",
    "content": ";(function($){\n/**\n * jqGrid extension for manipulating columns properties\n * Piotr Roznicki roznicki@o2.pl\n * http://www.roznicki.prv.pl\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n**/\n$.jgrid.extend({\n\tsetColumns : function(p) {\n\t\tp = $.extend({\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 200,\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\tdrag: true,\n\t\t\tbeforeShowForm: null,\n\t\t\tafterShowForm: null,\n\t\t\tafterSubmitForm: null,\n\t\t\tcloseOnEscape : true,\n\t\t\tShrinkToFit : false,\n\t\t\tjqModal : false,\n\t\t\tsaveicon: [true,\"left\",\"ui-icon-disk\"],\n\t\t\tcloseicon: [true,\"left\",\"ui-icon-close\"],\n\t\t\tonClose : null,\n\t\t\tcolnameview : true,\n\t\t\tcloseAfterSubmit : true,\n\t\t\tupdateAfterCheck : false,\n\t\t\trecreateForm : false\n\t\t}, $.jgrid.col, p ||{});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tvar onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;\n\t\t\tvar onAfterShow = typeof p.afterShowForm === 'function' ? true: false;\n\t\t\tvar onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true: false;\t\t\t\n\t\t\tvar gID = $t.p.id,\n\t\t\tdtbl = \"ColTbl_\"+gID,\n\t\t\tIDs = {themodal:'colmod'+gID,modalhead:'colhd'+gID,modalcontent:'colcnt'+gID, scrollelm: dtbl};\n\t\t\tif(p.recreateForm===true && $(\"#\"+IDs.themodal).html() != null) {\n\t\t\t\t$(\"#\"+IDs.themodal).remove();\n\t\t\t}\n\t\t\tif ( $(\"#\"+IDs.themodal).html() != null ) {\n\t\t\t\tif(onBeforeShow) { p.beforeShowForm($(\"#\"+dtbl)); }\n\t\t\t\t$.jgrid.viewModal(\"#\"+IDs.themodal,{gbox:\"#gbox_\"+gID,jqm:p.jqModal, jqM:false, modal:p.modal});\n\t\t\t\tif(onAfterShow) { p.afterShowForm($(\"#\"+dtbl)); }\n\t\t\t} else {\n\t\t\t\tvar dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+\"px\";\n\t\t\t\tvar formdata = \"<div id='\"+dtbl+\"' class='formdata' style='width:100%;overflow:auto;position:relative;height:\"+dh+\";'>\";\n\t\t\t\tformdata += \"<table class='ColTable' cellspacing='1' cellpading='2' border='0'><tbody>\";\n\t\t\t\tfor(i=0;i<this.p.colNames.length;i++){\n\t\t\t\t\tif(!$t.p.colModel[i].hidedlg) { // added from T. Tomov\n\t\t\t\t\t\tformdata += \"<tr><td style='white-space: pre;'><input type='checkbox' style='margin-right:5px;' id='col_\" + this.p.colModel[i].name + \"' class='cbox' value='T' \" + \n\t\t\t\t\t\t((this.p.colModel[i].hidden===false)?\"checked\":\"\") + \"/>\" +  \"<label for='col_\" + this.p.colModel[i].name + \"'>\" + this.p.colNames[i] + ((p.colnameview) ? \" (\" + this.p.colModel[i].name + \")\" : \"\" )+ \"</label></td></tr>\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tformdata += \"</tbody></table></div>\"\n\t\t\t\tvar bS  = !p.updateAfterCheck ? \"<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>\"+p.bSubmit+\"</a>\" : \"\",\n\t\t\t\tbC  =\"<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>\"+p.bCancel+\"</a>\";\n\t\t\t\tformdata += \"<table border='0' class='EditTable' id='\"+dtbl+\"_2'><tbody><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DataTD ui-widget-content'></td></tr><tr><td class='ColButton EditButton'>\"+bS+\"&#160;\"+bC+\"</td></tr></tbody></table>\";\n\t\t\t\tp.gbox = \"#gbox_\"+gID;\n\t\t\t\t$.jgrid.createModal(IDs,formdata,p,\"#gview_\"+$t.p.id,$(\"#gview_\"+$t.p.id)[0]);\n\t\t\t\tif(p.saveicon[0]==true) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").addClass(p.saveicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='ui-icon \"+p.saveicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(p.closeicon[0]==true) {\n\t\t\t\t\t$(\"#eData\",\"#\"+dtbl+\"_2\").addClass(p.closeicon[1] == \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='ui-icon \"+p.closeicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(!p.updateAfterCheck) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").click(function(e){\n\t\t\t\t\t\tfor(i=0;i<$t.p.colModel.length;i++){\n\t\t\t\t\t\t\tif(!$t.p.colModel[i].hidedlg) { // added from T. Tomov\n\t\t\t\t\t\t\t\tvar nm = $t.p.colModel[i].name.replace(/\\./g, \"\\\\.\");\n\t\t\t\t\t\t\t\tif($(\"#col_\" + nm,\"#\"+dtbl).attr(\"checked\")) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"showCol\",$t.p.colModel[i].name);\n\t\t\t\t\t\t\t\t\t$(\"#col_\" + nm,\"#\"+dtbl).attr(\"defaultChecked\",true); // Added from T. Tomov IE BUG\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"hideCol\",$t.p.colModel[i].name);\n\t\t\t\t\t\t\t\t\t$(\"#col_\" + nm,\"#\"+dtbl).attr(\"defaultChecked\",\"\"); // Added from T. Tomov IE BUG\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(p.ShrinkToFit===true) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.grid.width-0.001,true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(p.closeAfterSubmit) $.jgrid.hideModal(\"#\"+IDs.themodal,{gb:\"#gbox_\"+gID,jqm:p.jqModal, onClose: p.onClose});\n\t\t\t\t\t\tif (onAfterSubmit) { p.afterSubmitForm($(\"#\"+dtbl)); }\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(\":input\",\"#\"+dtbl).click(function(e){\n\t\t\t\t\t\tvar cn = this.id.substr(4);\n\t\t\t\t\t\tif(cn){\n\t\t\t\t\t\t\tif(this.checked) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"showCol\",cn);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"hideCol\",cn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(p.ShrinkToFit===true) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.grid.width-0.001,true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$(\"#eData\", \"#\"+dtbl+\"_2\").click(function(e){\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+IDs.themodal,{gb:\"#gbox_\"+gID,jqm:p.jqModal, onClose: p.onClose});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#dData, #eData\",\"#\"+dtbl+\"_2\").hover(\n\t\t\t\t   function(){$(this).addClass('ui-state-hover');}, \n\t\t\t\t   function(){$(this).removeClass('ui-state-hover');}\n\t\t\t\t);\t\t\t\t\n\t\t\t\tif(onBeforeShow) { p.beforeShowForm($(\"#\"+dtbl)); }\n\t\t\t\t$.jgrid.viewModal(\"#\"+IDs.themodal,{gbox:\"#gbox_\"+gID,jqm:p.jqModal, jqM: true, modal:p.modal});\n\t\t\t\tif(onAfterShow) { p.afterShowForm($(\"#\"+dtbl)); }\n\t\t\t}\n\t\t});\n\t}\n});\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/jquery.contextmenu.js",
    "content": "/*\n * ContextMenu - jQuery plugin for right-click context menus\n *\n * Author: Chris Domigan\n * Contributors: Dan G. Switzer, II\n * Parts of this plugin are inspired by Joern Zaefferer's Tooltip plugin\n *\n * Dual licensed under the MIT and GPL licenses:\n *   http://www.opensource.org/licenses/mit-license.php\n *   http://www.gnu.org/licenses/gpl.html\n *\n * Version: r2\n * Date: 16 July 2007\n *\n * For documentation visit http://www.trendskitchens.co.nz/jquery/contextmenu/\n *\n */\n\n(function($) {\n\n \tvar menu, shadow, content, hash, currentTarget;\n  var defaults = {\n    menuStyle: {\n      listStyle: 'none',\n      padding: '1px',\n      margin: '0px',\n      backgroundColor: '#fff',\n      border: '1px solid #999',\n      width: '100px'\n    },\n    itemStyle: {\n      margin: '0px',\n      color: '#000',\n      display: 'block',\n      cursor: 'default',\n      padding: '3px',\n      border: '1px solid #fff',\n      backgroundColor: 'transparent'\n    },\n    itemHoverStyle: {\n      border: '1px solid #0a246a',\n      backgroundColor: '#b6bdd2'\n    },\n    eventPosX: 'pageX',\n    eventPosY: 'pageY',\n    shadow : true,\n    onContextMenu: null,\n    onShowMenu: null\n \t};\n\n  $.fn.contextMenu = function(id, options) {\n    if (!menu) {                                      // Create singleton menu\n      menu = $('<div id=\"jqContextMenu\"></div>')\n               .hide()\n               .css({position:'absolute', zIndex:'500'})\n               .appendTo('body')\n               .bind('click', function(e) {\n                 e.stopPropagation();\n               });\n    }\n    if (!shadow) {\n      shadow = $('<div></div>')\n                 .css({backgroundColor:'#000',position:'absolute',opacity:0.2,zIndex:499})\n                 .appendTo('body')\n                 .hide();\n    }\n    hash = hash || [];\n    hash.push({\n      id : id,\n      menuStyle: $.extend({}, defaults.menuStyle, options.menuStyle || {}),\n      itemStyle: $.extend({}, defaults.itemStyle, options.itemStyle || {}),\n      itemHoverStyle: $.extend({}, defaults.itemHoverStyle, options.itemHoverStyle || {}),\n      bindings: options.bindings || {},\n      shadow: options.shadow || options.shadow === false ? options.shadow : defaults.shadow,\n      onContextMenu: options.onContextMenu || defaults.onContextMenu,\n      onShowMenu: options.onShowMenu || defaults.onShowMenu,\n      eventPosX: options.eventPosX || defaults.eventPosX,\n      eventPosY: options.eventPosY || defaults.eventPosY\n    });\n\n    var index = hash.length - 1;\n    $(this).bind('contextmenu', function(e) {\n      // Check if onContextMenu() defined\n      var bShowContext = (!!hash[index].onContextMenu) ? hash[index].onContextMenu(e) : true;\n\t  currentTarget = e.target;\n      if (bShowContext) {\n\t\tdisplay(index, this, e );\n\t\treturn false;\n\t  }\n    });\n    return this;\n  };\n\n  function display(index, trigger, e ) {\n    var cur = hash[index];\n    content = $('#'+cur.id).find('ul:first').clone(true);\n    content.css(cur.menuStyle).find('li').css(cur.itemStyle).hover(\n      function() {\n        $(this).css(cur.itemHoverStyle);\n      },\n      function(){\n        $(this).css(cur.itemStyle);\n      }\n    ).find('img').css({verticalAlign:'middle',paddingRight:'2px'});\n\n    // Send the content to the menu\n    menu.html(content);\n\n    // if there's an onShowMenu, run it now -- must run after content has been added\n\t\t// if you try to alter the content variable before the menu.html(), IE6 has issues\n\t\t// updating the content\n    if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);\n\n    $.each(cur.bindings, function(id, func) {\n      $('#'+id, menu).bind('click', function() {\n        hide();\n        func(trigger, currentTarget);\n      });\n    });\n\n    menu.css({'left':e[cur.eventPosX],'top':e[cur.eventPosY]}).show();\n    if (cur.shadow) shadow.css({width:menu.width(),height:menu.height(),left:e.pageX+2,top:e.pageY+2}).show();\n    $(document).one('click', hide);\n  }\n\n  function hide() {\n    menu.hide();\n    shadow.hide();\n  }\n\n  // Apply defaults\n  $.contextMenu = {\n    defaults : function(userDefaults) {\n      $.each(userDefaults, function(i, val) {\n        if (typeof val == 'object' && defaults[i]) {\n          $.extend(defaults[i], val);\n        }\n        else defaults[i] = val;\n      });\n    }\n  };\n\n})(jQuery);\n\n$(function() {\n  $('div.contextMenu').hide();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/jquery.searchFilter.js",
    "content": "/* Plugin:      searchFilter v1.2.9\n * Author:      Kasey Speakman (kasey@cornerspeed.com)\n * License:     Dual Licensed, MIT and GPL v2 (http://www.gnu.org/licenses/gpl-2.0.html)\n *\n * REQUIREMENTS:\n *    jQuery 1.3+           (http://jquery.com/)\n *    A Themeroller Theme   (http://jqueryui.com/themeroller/)\n *\n * SECURITY WARNING\n *    You should always implement server-side checking to ensure that\n *    the query will fail when forged/invalid data is received.\n *    Clever users can send any value they want through JavaScript and HTTP POST/GET.\n *\n * THEMES\n *    Simply include the CSS file for your Themeroller theme.\n *\n * DESCRIPTION\n *     This plugin creates a new searchFilter object in the specified container\n *\n * INPUT TYPE\n *     fields:  an array of field objects. each object has the following properties:\n *              text: a string containing the display name of the field (e.g. \"Field 1\")\n *              itemval: a string containing the actual field name (e.g. \"field1\")\n *              optional properties:\n *                  ops: an array of operators in the same format as jQuery.fn.searchFilter.defaults.operators\n *                       that is: [ { op: 'gt', text: 'greater than'}, { op:'lt', text: 'less than'}, ... ]\n *                       if not specified, the passed-in options used, and failting that, jQuery.fn.searchFilter.defaults.operators will be used\n *                  *** NOTE ***\n *                  Specifying a dataUrl or dataValues property means that a <select ...> (drop-down-list) will be generated\n *                  instead of a text input <input type='text'.../> where the user would normally type in their search data\n *                  ************\n *                  dataUrl: a url that will return the html select for this field, this url will only be called once for this field\n *                  dataValues: the possible values for this field in the form [ { text: 'Data Display Text', value: 'data_actual_value' }, { ... } ]\n *                  dataInit: a function that you can use to initialize the data field. this function is passed the jQuery-fied data element\n *                  dataEvents: list of events to apply to the data element. uses $(\"#id\").bind(type, [data], fn) to bind events to data element\n *              *** JSON of this object could look like this: ***\n *               var fields = [\n *                 {\n *                   text: 'Field Display Name',\n *                   itemval: 'field_actual_name',\n *                   // below this are optional values\n *                   ops: [ // this format is the same as jQuery.fn.searchFilter.defaults.operators\n *                     { op: 'gt', text: 'greater than' },\n *                     { op: 'lt', text: 'less than' }\n *                   ],\n *                   dataUrl: 'http://server/path/script.php?propName=propValue', // using this creates a select for the data input instead of an input type='text'\n *                   dataValues: [ // using this creates a select for the data input instead of an input type='text'\n *                     { text: 'Data Value Display Name', value: 'data_actual_value' },\n *                     { ... }\n *                   ],\n *                   dataInit: function(jElem) { jElem.datepicker(options); },\n *                   dataEvents: [ // these are the same options that you pass to $(\"#id\").bind(type, [data], fn)\n *                     { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },\n *                     { type: 'keypress', fn: function(e) { console.log('keypress'); } }\n *                   ]\n *                 },\n *                 { ... }\n *               ]\n *     options: name:value properties containing various creation options\n *              see jQuery.fn.searchFilter.defaults for the overridable options\n *\n * RETURN TYPE: This plugin returns a SearchFilter object, which has additional SearchFilter methods:\n *     Methods\n *         add:    Adds a filter. added to the end of the list unless a jQuery event object or valid row number is passed.\n *         del:    Removes a filter. removed from the end of the list unless a jQuery event object or valid row number is passed.\n *         reset:  resets filters back to original state (only one blank filter), and calls onReset\n *         search: puts the search rules into an object and calls onSearch with it\n *         close:  calls the onClose event handler\n *\n * USAGE\n *     HTML\n *         <head>\n *             ...\n *             <script src=\"path/to/jquery.min.js\" type=\"text/javascript\"></script>\n *             <link href=\"path/to/themeroller.css\" rel=\"Stylesheet\" type=\"text/css\" />\n *             <script src=\"path/to/jquery.searchFilter.js\" type=\"text/javascript\"></script>\n *             <link href=\"path/to/jquery.searchFilter.css\" rel=\"Stylesheet\" type=\"text/css\" />\n *             ...\n *         </head>\n *         <body>\n *             ...\n *             <div id='mySearch'></div>\n *             ...\n *         </body>\n *     JQUERY\n *         Methods\n *             initializing: $(\"#mySearch\").searchFilter([{text: \"Field 1\", value: \"field1\"},{text: \"Field 2\", value: \"field2\"}], {onSearch: myFilterRuleReceiverFn, onReset: myFilterResetFn });\n *         Manual Methods (there's no need to call these methods unless you are trying to manipulate searchFilter with script)\n *             add:          $(\"#mySearch\").searchFilter().add();     // appends a blank filter\n *                           $(\"#mySearch\").searchFilter().add(0);    // copies the first filter as second\n *             del:          $(\"#mySearch\").searchFilter().del();     // removes the bottom filter\n *                           $(\"#mySearch\").searchFilter().del(1);    // removes the second filter\n *             search:       $(\"#mySearch\").searchFilter().search();  // invokes onSearch, passing it a ruleGroup object\n *             reset:        $(\"#mySearch\").searchFilter().reset();   // resets rules and invokes onReset\n *             close:        $(\"#mySearch\").searchFilter().close();   // without an onClose handler, equivalent to $(\"#mySearch\").hide();\n * \n * NOTE: You can get the jQuery object back from the SearchFilter object by chaining .$\n *     Example\n *         $(\"#mySearch\").searchFilter().add().add().reset().$.hide();\n *     Verbose Example\n *         $(\"#mySearch\")      // gets jQuery object for the HTML element with id=\"mySearch\"\n *             .searchFilter() // gets the SearchFilter object for an existing search filter\n *             .add()          // adds a new filter to the end of the list\n *             .add()          // adds another new filter to the end of the list\n *             .reset()        // resets filters back to original state, triggers onReset\n *             .$              // returns jQuery object for $(\"#mySearch\")\n *             .hide();        // equivalent to $(\"#mySearch\").hide();\n */\n\njQuery.fn.searchFilter = function(fields, options) {\n\n    function SearchFilter(jQ, fields, options) {\n\n\n        //---------------------------------------------------------------\n        // PUBLIC VARS\n        //---------------------------------------------------------------\n\n        this.$ = jQ; // makes the jQuery object available as .$ from the return value\n\n\n        //---------------------------------------------------------------\n        // PUBLIC FUNCTIONS\n        //---------------------------------------------------------------\n\n        this.add = function(i) {\n            if (i == null) jQ.find(\".ui-add-last\").click();\n            else jQ.find(\".sf:eq(\" + i + \") .ui-add\").click();\n            return this;\n        };\n\n        this.del = function(i) {\n            if (i == null) jQ.find(\".sf:last .ui-del\").click();\n            else jQ.find(\".sf:eq(\" + i + \") .ui-del\").click();\n            return this;\n        };\n\n        this.search = function(e) {\n            jQ.find(\".ui-search\").click();\n            return this;\n        };\n\n        this.reset = function(o) {\n            if(o===undefined) o = false;\n            jQ.find(\".ui-reset\").trigger('click',[o]);\n            return this;\n        };\n\n        this.close = function() {\n            jQ.find(\".ui-closer\").click();\n            return this;\n        };\n\n\n\n        //---------------------------------------------------------------\n        // \"CONSTRUCTOR\" (in air quotes)\n        //---------------------------------------------------------------\n\n        if (fields != null) { // type coercion matches undefined as well as null\n\n\n            //---------------------------------------------------------------\n            // UTILITY FUNCTIONS\n            //---------------------------------------------------------------\n\n            function hover() {\n                jQuery(this).toggleClass(\"ui-state-hover\");\n                return false;\n            }\n\n            function active(e) {\n                jQuery(this).toggleClass(\"ui-state-active\", (e.type == \"mousedown\"));\n                return false;\n            }\n\n            function buildOpt(value, text) {\n                return \"<option value='\" + value + \"'>\" + text + \"</option>\";\n            }\n\n            function buildSel(className, options, isHidden) {\n                return \"<select class='\" + className + \"'\" + (isHidden ? \" style='display:none;'\" : \"\") + \">\" + options + \"</select>\";\n            }\n\n            function initData(selector, fn) {\n                var jElem = jQ.find(\"tr.sf td.data \" + selector);\n                if (jElem[0] != null)\n                    fn(jElem);\n            }\n\n            function bindDataEvents(selector, events) {\n                var jElem = jQ.find(\"tr.sf td.data \" + selector);\n                if (jElem[0] != null) {\n                    jQuery.each(events, function() {\n                        if (this.data != null)\n                            jElem.bind(this.type, this.data, this.fn);\n                        else\n                            jElem.bind(this.type, this.fn);\n                    });\n                }\n            }\n\n\n            //---------------------------------------------------------------\n            // SUPER IMPORTANT PRIVATE VARS\n            //---------------------------------------------------------------\n\n            // copies jQuery.fn.searchFilter.defaults.options properties onto an empty object, then options onto that\n            var opts = jQuery.extend({}, jQuery.fn.searchFilter.defaults, options);\n\n            // this is keeps track of the last asynchronous setup\n            var highest_late_setup = -1;\n\n\n            //---------------------------------------------------------------\n            // CREATION PROCESS STARTS\n            //---------------------------------------------------------------\n\n            // generate the global ops\n            var gOps_html = \"\";\n            jQuery.each(opts.groupOps, function() { gOps_html += buildOpt(this.op, this.text); });\n            gOps_html = \"<select name='groupOp'>\" + gOps_html + \"</select>\";\n\n            /* original content - doesn't minify very well\n            jQ\n            .html(\"\") // clear any old content\n            .addClass(\"ui-searchFilter\") // add classes\n            .append( // add content\n            \"\\\n            <div class='ui-widget-overlay' style='z-index: -1'>&nbsp;</div>\\\n            <table class='ui-widget-content ui-corner-all'>\\\n            <thead>\\\n            <tr>\\\n            <td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'>\\\n            <div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'>\\\n            <span class='ui-icon ui-icon-close'></span>\\\n            </div>\\\n            \" + opts.windowTitle + \"\\\n            </td>\\\n            </tr>\\\n            </thead>\\\n            <tbody>\\\n            <tr class='sf'>\\\n            <td class='fields'></td>\\\n            <td class='ops'></td>\\\n            <td class='data'></td>\\\n            <td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td>\\\n            <td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td>\\\n            </tr>\\\n            <tr>\\\n            <td colspan='5' class='divider'><div>&nbsp;</div></td>\\\n            </tr>\\\n            </tbody>\\\n            <tfoot>\\\n            <tr>\\\n            <td colspan='3'>\\\n            <span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.resetText + \"</span></span>\\\n            <span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.searchText + \"</span></span>\\\n            <span class='matchText'>\" + opts.matchText + \"</span> \\\n            \" + gOps_html + \" \\\n            <span class='rulesText'>\" + opts.rulesText + \"</span>\\\n            </td>\\\n            <td>&nbsp;</td>\\\n            <td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td>\\\n            </tr>\\\n            </tfoot>\\\n            </table>\\\n            \");\n            /* end hard-to-minify code */\n            /* begin easier to minify code */\n            jQ.html(\"\").addClass(\"ui-searchFilter\").append(\"<div class='ui-widget-overlay' style='z-index: -1'>&#160;</div><table class='ui-widget-content ui-corner-all'><thead><tr><td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'><div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'><span class='ui-icon ui-icon-close'></span></div>\" + opts.windowTitle + \"</td></tr></thead><tbody><tr class='sf'><td class='fields'></td><td class='ops'></td><td class='data'></td><td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td><td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td></tr><tr><td colspan='5' class='divider'><hr class='ui-widget-content' style='margin:1px'/></td></tr></tbody><tfoot><tr><td colspan='3'><span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.resetText + \"</span></span><span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>\" + opts.searchText + \"</span></span><span class='matchText'>\" + opts.matchText + \"</span> \" + gOps_html + \" <span class='rulesText'>\" + opts.rulesText + \"</span></td><td>&#160;</td><td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td></tr></tfoot></table>\");\n            /* end easier-to-minify code */\n\n            var jRow = jQ.find(\"tr.sf\");\n            var jFields = jRow.find(\"td.fields\");\n            var jOps = jRow.find(\"td.ops\");\n            var jData = jRow.find(\"td.data\");\n\n            // generate the defaults\n            var default_ops_html = \"\";\n            jQuery.each(opts.operators, function() { default_ops_html += buildOpt(this.op, this.text); });\n            default_ops_html = buildSel(\"default\", default_ops_html, true);\n            jOps.append(default_ops_html);\n            var default_data_html = \"<input type='text' class='default' style='display:none;' />\";\n            jData.append(default_data_html);\n\n            // generate the field list as a string\n            var fields_html = \"\";\n            var has_custom_ops = false;\n            var has_custom_data = false;\n            jQuery.each(fields, function(i) {\n                var field_num = i;\n                fields_html += buildOpt(this.itemval, this.text);\n                // add custom ops if they exist\n                if (this.ops != null) {\n                    has_custom_ops = true;\n                    var custom_ops = \"\";\n                    jQuery.each(this.ops, function() { custom_ops += buildOpt(this.op, this.text); });\n                    custom_ops = buildSel(\"field\" + field_num, custom_ops, true);\n                    jOps.append(custom_ops);\n                }\n                // add custom data if it is given\n                if (this.dataUrl != null) {\n                    if (i > highest_late_setup) highest_late_setup = i;\n                    has_custom_data = true;\n                    var dEvents = this.dataEvents;\n                    var iEvent = this.dataInit;\n                    var bs = this.buildSelect;\n                    jQuery.ajax(jQuery.extend({\n                        url : this.dataUrl,\n                        complete: function(data) {\n                            var $d;\n                            if(bs != null) $d =jQuery(\"<div />\").append(bs(data));\n                            else $d = jQuery(\"<div />\").append(data.responseText);\n                            $d.find(\"select\").addClass(\"field\" + field_num).hide();\n                            jData.append($d.html());\n                            if (iEvent) initData(\".field\" + i, iEvent);\n                            if (dEvents) bindDataEvents(\".field\" + i, dEvents);\n                            if (i == highest_late_setup) { // change should get called no more than twice when this searchFilter is constructed\n                                jQ.find(\"tr.sf td.fields select[name='field']\").change();\n                            }\n                        }\n                    },opts.ajaxSelectOptions));\n                } else if (this.dataValues != null) {\n                    has_custom_data = true;\n                    var custom_data = \"\";\n                    jQuery.each(this.dataValues, function() { custom_data += buildOpt(this.value, this.text); });\n                    custom_data = buildSel(\"field\" + field_num, custom_data, true);\n                    jData.append(custom_data);\n                } else if (this.dataEvents != null || this.dataInit != null) {\n                    has_custom_data = true;\n                    var custom_data = \"<input type='text' class='field\" + field_num + \"' />\";\n                    jData.append(custom_data);\n                }\n                // attach events to data if they exist\n                if (this.dataInit != null && i != highest_late_setup)\n                    initData(\".field\" + i, this.dataInit);\n                if (this.dataEvents != null && i != highest_late_setup)\n                    bindDataEvents(\".field\" + i, this.dataEvents);\n            });\n            fields_html = \"<select name='field'>\" + fields_html + \"</select>\";\n            jFields.append(fields_html);\n\n            // setup the field select with an on-change event if there are custom ops or data\n            var jFSelect = jFields.find(\"select[name='field']\");\n            if (has_custom_ops) jFSelect.change(function(e) {\n                var index = e.target.selectedIndex;\n                var td = jQuery(e.target).parents(\"tr.sf\").find(\"td.ops\");\n                td.find(\"select\").removeAttr(\"name\").hide(); // disown and hide all elements\n                var jElem = td.find(\".field\" + index);\n                if (jElem[0] == null) jElem = td.find(\".default\"); // if there's not an element for that field, use the default one\n                jElem.attr(\"name\", \"op\").show();\n                return false;\n            });\n            else jOps.find(\".default\").attr(\"name\", \"op\").show();\n            if (has_custom_data) jFSelect.change(function(e) {\n                var index = e.target.selectedIndex;\n                var td = jQuery(e.target).parents(\"tr.sf\").find(\"td.data\");\n                td.find(\"select,input\").removeClass(\"vdata\").hide(); // disown and hide all elements\n                var jElem = td.find(\".field\" + index);\n                if (jElem[0] == null) jElem = td.find(\".default\"); // if there's not an element for that field, use the default one\n                jElem.show().addClass(\"vdata\");\n                return false;\n            });\n            else jData.find(\".default\").show().addClass(\"vdata\");\n            // go ahead and call the change event and setup the ops and data values\n            if (has_custom_ops || has_custom_data) jFSelect.change();\n\n            // bind events\n            jQ.find(\".ui-state-default\").hover(hover, hover).mousedown(active).mouseup(active); // add hover/active effects to all buttons\n            jQ.find(\".ui-closer\").click(function(e) {\n                opts.onClose(jQuery(jQ.selector));\n                return false;\n            });\n            jQ.find(\".ui-del\").click(function(e) {\n                var row = jQuery(e.target).parents(\".sf\");\n                if (row.siblings(\".sf\").length > 0) { // doesn't remove if there's only one filter left\n                    if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined)\n                        row.find(\".hasDatepicker\").datepicker(\"destroy\"); // clean up datepicker's $.data mess\n                    row.remove(); // also unbinds\n                } else { // resets the filter if it's the last one\n                    row.find(\"select[name='field']\")[0].selectedIndex = 0;\n                    row.find(\"select[name='op']\")[0].selectedIndex = 0;\n                    row.find(\".data input\").val(\"\"); // blank all input values\n                    row.find(\".data select\").each(function() { this.selectedIndex = 0; }); // select first option on all selects\n                    row.find(\"select[name='field']\").change(function(event){event.stopPropagation();}); // trigger any change events\n                }\n                return false;\n            });\n            jQ.find(\".ui-add\").click(function(e) {\n                var row = jQuery(e.target).parents(\".sf\");\n                var newRow = row.clone(true).insertAfter(row);\n                newRow.find(\".ui-state-default\").removeClass(\"ui-state-hover ui-state-active\");\n                if (opts.clone) {\n                    newRow.find(\"select[name='field']\")[0].selectedIndex = row.find(\"select[name='field']\")[0].selectedIndex;\n                    var stupid_browser = (newRow.find(\"select[name='op']\")[0] == null); // true for IE6\n                    if (!stupid_browser)\n                        newRow.find(\"select[name='op']\").focus()[0].selectedIndex = row.find(\"select[name='op']\")[0].selectedIndex;\n                    var jElem = newRow.find(\"select.vdata\");\n                    if (jElem[0] != null) // select doesn't copy it's selected index when cloned\n                        jElem[0].selectedIndex = row.find(\"select.vdata\")[0].selectedIndex;\n                } else {\n                    newRow.find(\".data input\").val(\"\"); // blank all input values\n                    newRow.find(\"select[name='field']\").focus();\n                }\n                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good\n                    row.find(\".hasDatepicker\").each(function() {\n                        var settings = jQuery.data(this, \"datepicker\").settings;\n                        newRow.find(\"#\" + this.id).unbind().removeAttr(\"id\").removeClass(\"hasDatepicker\").datepicker(settings);\n                    });\n                }\n                newRow.find(\"select[name='field']\").change(function(event){event.stopPropagation();} );\n                return false;\n            });\n            jQ.find(\".ui-search\").click(function(e) {\n                var ui = jQuery(jQ.selector); // pointer to search box wrapper element\n                var ruleGroup;\n                var group_op = ui.find(\"select[name='groupOp'] :selected\").val(); // puls \"AND\" or \"OR\"\n                if (!opts.stringResult) {\n                    ruleGroup = {\n                        groupOp: group_op,\n                        rules: []\n                    };\n                } else {\n                    ruleGroup = \"{\\\"groupOp\\\":\\\"\" + group_op + \"\\\",\\\"rules\\\":[\";\n                }\n                ui.find(\".sf\").each(function(i) {\n                    var tField = jQuery(this).find(\"select[name='field'] :selected\").val();\n                    var tOp = jQuery(this).find(\"select[name='op'] :selected\").val();\n                    var tData = jQuery(this).find(\"input.vdata,select.vdata :selected\").val();\n                    tData += \"\";\n                    if (!opts.stringResult) {\n                        ruleGroup.rules.push({\n                            field: tField,\n                            op: tOp,\n                            data: tData\n                        });\n                    } else {\n\t\t\t\t\t\ttData = tData.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"');\n                        if (i > 0) ruleGroup += \",\";\n                        ruleGroup += \"{\\\"field\\\":\\\"\" + tField + \"\\\",\";\n                        ruleGroup += \"\\\"op\\\":\\\"\" + tOp + \"\\\",\";\n                        ruleGroup += \"\\\"data\\\":\\\"\" + tData + \"\\\"}\";\n                    }\n                });\n                if (opts.stringResult) ruleGroup += \"]}\";\n                opts.onSearch(ruleGroup);\n                return false;\n            });\n            jQ.find(\".ui-reset\").click(function(e,op) {\n                var ui = jQuery(jQ.selector);\n                ui.find(\".ui-del\").click(); // removes all filters, resets the last one\n                ui.find(\"select[name='groupOp']\")[0].selectedIndex = 0; // changes the op back to the default one\n                opts.onReset(op);\n                return false;\n            });\n            jQ.find(\".ui-add-last\").click(function() {\n                var row = jQuery(jQ.selector + \" .sf:last\");\n                var newRow = row.clone(true).insertAfter(row);\n                newRow.find(\".ui-state-default\").removeClass(\"ui-state-hover ui-state-active\");\n                newRow.find(\".data input\").val(\"\"); // blank all input values\n                newRow.find(\"select[name='field']\").focus();\n                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good\n                    row.find(\".hasDatepicker\").each(function() {\n                        var settings = jQuery.data(this, \"datepicker\").settings;\n                        newRow.find(\"#\" + this.id).unbind().removeAttr(\"id\").removeClass(\"hasDatepicker\").datepicker(settings);\n                    });\n                }\n                newRow.find(\"select[name='field']\").change(function(event){event.stopPropagation();});\n                return false;\n            });\n\n            this.setGroupOp = function(setting) {\n                /* a \"setter\" for groupping argument.\n                 *  (\"AND\" or \"OR\")\n                 *\n                 * Inputs:\n                 *  setting - a string\n                 *\n                 * Returns:\n                 *  Does not return anything. May add success / failure reporting in future versions.\n                 *\n                 *  author: Daniel Dotsenko (dotsa@hotmail.com)\n                 */\n                selDOMobj = jQ.find(\"select[name='groupOp']\")[0];\n                var indexmap = {}, l = selDOMobj.options.length, i;\n                for (i=0; i<l; i++) {\n                    indexmap[selDOMobj.options[i].value] = i;\n                }\n                selDOMobj.selectedIndex = indexmap[setting];\n                jQuery(selDOMobj).change(function(event){event.stopPropagation();});\n            };\n\n            this.setFilter = function(settings) {\n                /* a \"setter\" for an arbitrary SearchFilter's filter line.\n                 * designed to abstract the DOM manipulations required to infer\n                 * a particular filter is a fit to the search box.\n                 *\n                 * Inputs:\n                 *  settings - an \"object\" (dictionary)\n                 *   index (optional*) (to be implemented in the future) : signed integer index (from top to bottom per DOM) of the filter line to fill.\n                 *           Negative integers (rooted in -1 and lower) denote position of the line from the bottom.\n                 *   sfref (optional*) : DOM object referencing individual '.sf' (normally a TR element) to be populated. (optional)\n                 *   filter (mandatory) : object (dictionary) of form {'field':'field_value','op':'op_value','data':'data value'}\n                 *\n                 * * It is mandatory to have either index or sfref defined.\n                 *\n                 * Returns:\n                 *  Does not return anything. May add success / failure reporting in future versions.\n                 *\n                 *  author: Daniel Dotsenko (dotsa@hotmail.com)\n                 */\n\n                var o = settings['sfref'], filter = settings['filter'];\n                \n                // setting up valueindexmap that we will need to manipulate SELECT elements.\n                var fields = [], i, j , l, lj, li,\n                    valueindexmap = {};\n                    // example of valueindexmap:\n                    // {'field1':{'index':0,'ops':{'eq':0,'ne':1}},'fieldX':{'index':1,'ops':{'eq':0,'ne':1},'data':{'true':0,'false':1}}},\n                    // if data is undefined it's a INPUT field. If defined, it's SELECT\n                selDOMobj = o.find(\"select[name='field']\")[0];\n                for (i=0, l=selDOMobj.options.length; i<l; i++) {\n                    valueindexmap[selDOMobj.options[i].value] = {'index':i,'ops':{}};\n                    fields.push(selDOMobj.options[i].value);\n                }\n                for (i=0, li=fields.length; i < li; i++) {\n                    selDOMobj = o.find(\".ops > select[class='field\"+i+\"']\")[0];\n                    if (selDOMobj) {\n                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {\n                            valueindexmap[fields[i]]['ops'][selDOMobj.options[j].value] = j;\n                        }\n                    }\n                    selDOMobj = o.find(\".data > select[class='field\"+i+\"']\")[0];\n                    if (selDOMobj) {\n                        valueindexmap[fields[i]]['data'] = {}; // this setting is the flag that 'data' is contained in a SELECT\n                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {\n                            valueindexmap[fields[i]]['data'][selDOMobj.options[j].value] = j;\n                        }\n                    }\n                } // done populating valueindexmap\n\n                // preparsing the index values for SELECT elements.\n                var fieldvalue, fieldindex, opindex, datavalue, dataindex;\n                fieldvalue = filter['field'];\n\t\t\t\tif (valueindexmap[fieldvalue]) {\n\t\t\t\t\tfieldindex = valueindexmap[fieldvalue]['index'];\n\t\t\t\t}\n                if (fieldindex != null) {\n                    opindex = valueindexmap[fieldvalue]['ops'][filter['op']];\n                    if(opindex === undefined) {\n                        for(i=0,li=options.operators.length; i<li;i++) {\n                            if(options.operators[i].op == filter.op ){\n                                opindex = i;\n                                break;\n                            }\n                        }\n                    }\n                    datavalue = filter['data'];\n                    if (valueindexmap[fieldvalue]['data'] == null) {\n                        dataindex = -1; // 'data' is not SELECT, Making the var 'defined'\n                    } else {\n                        dataindex = valueindexmap[fieldvalue]['data'][datavalue]; // 'undefined' may come from here.\n                    }\n                }\n                // only if values for 'field' and 'op' and 'data' are 'found' in mapping...\n                if (fieldindex != null && opindex != null && dataindex != null) {\n                    o.find(\"select[name='field']\")[0].selectedIndex = fieldindex;\n                    o.find(\"select[name='field']\").change();\n                    o.find(\"select[name='op']\")[0].selectedIndex = opindex;\n                    o.find(\"input.vdata\").val(datavalue); // if jquery does not find any INPUT, it does not set any. This means we deal with SELECT\n                    o = o.find(\"select.vdata\")[0];\n                    if (o) {\n                        o.selectedIndex = dataindex;\n                    }\n\t\t\t\t\treturn true\n                } else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n            }; // end of this.setFilter fn\n        } // end of if fields != null\n    }\n    return new SearchFilter(this, fields, options);\n};\n\njQuery.fn.searchFilter.version = '1.2.9';\n\n/* This property contains the default options */\njQuery.fn.searchFilter.defaults = {\n\n    /*\n     * PROPERTY\n     * TYPE:        boolean \n     * DESCRIPTION: clone a row if it is added from an existing row\n     *              when false, any new added rows will be blank.\n     */\n    clone: true,\n\n    /*\n     * PROPERTY\n     * TYPE:        boolean \n     * DESCRIPTION: current version of datepicker uses a data store,\n     *              which is incompatible with $().clone(true)\n     */\n    datepickerFix: true,\n\n    /*\n     * FUNCTION\n     * DESCRIPTION: the function that will be called when the user clicks Reset\n     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string\n     */\n    onReset: function(data) { alert(\"Reset Clicked. Data Returned: \" + data) },\n\n    /*\n     * FUNCTION\n     * DESCRIPTION: the function that will be called when the user clicks Search\n     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string\n     */\n    onSearch: function(data) { alert(\"Search Clicked. Data Returned: \" + data) },\n\n    /*\n     * FUNCTION\n     * DESCRIPTION: the function that will be called when the user clicks the Closer icon\n     *              or the close() function is called\n     *              if left null, it simply does a .hide() on the searchFilter\n     * INPUT TYPE:  a jQuery object for the searchFilter\n     */\n    onClose: function(jElem) { jElem.hide(); },\n\n    /* \n     * PROPERTY\n     * TYPE:        array of objects, each object has the properties op and text \n     * DESCRIPTION: the selectable operators that are applied between rules\n     *              e.g. for {op:\"AND\", text:\"all\"}\n     *                  the search filter box will say: match all rules\n     *                  the server should interpret this as putting the AND op between each rule:\n     *                      rule1 AND rule2 AND rule3\n     *              text will be the option text, and op will be the option value\n     */\n    groupOps: [\n        { op: \"AND\", text: \"all\" },\n        { op: \"OR\",  text: \"any\" }\n    ],\n\n\n    /* \n     * PROPERTY\n     * TYPE:        array of objects, each object has the properties op and text \n     * DESCRIPTION: the operators that will appear as drop-down options\n     *              text will be the option text, and op will be the option value\n     */\n    operators: [\n        { op: \"eq\", text: \"is equal to\" },\n        { op: \"ne\", text: \"is not equal to\" },\n        { op: \"lt\", text: \"is less than\" },\n        { op: \"le\", text: \"is less or equal to\" },\n        { op: \"gt\", text: \"is greater than\" },\n        { op: \"ge\", text: \"is greater or equal to\" },\n        { op: \"in\", text: \"is in\" },\n        { op: \"ni\", text: \"is not in\" },\n        { op: \"bw\", text: \"begins with\" },\n        { op: \"bn\", text: \"does not begin with\" },\n        { op: \"ew\", text: \"ends with\" },\n        { op: \"en\", text: \"does not end with\" },\n        { op: \"cn\", text: \"contains\" },\n        { op: \"nc\", text: \"does not contain\" }\n    ],\n\n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: part of the phrase: _match_ ANY/ALL rules\n     */\n    matchText: \"match\",\n\n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: part of the phrase: match ANY/ALL _rules_\n     */\n    rulesText: \"rules\",\n\n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: the text that will be displayed in the reset button\n     */\n    resetText: \"Reset\",\n    \n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: the text that will be displayed in the search button\n     */\n    searchText: \"Search\",\n    \n    /*\n     * PROPERTY\n     * TYPE:        boolean\n     * DESCRIPTION: a flag that, when set, will make the onSearch and onReset return strings instead of objects\n     */\n    stringResult: true,    \n    \n    /*\n     * PROPERTY\n     * TYPE:        string\n     * DESCRIPTION: the title of the searchFilter window\n     */\n    windowTitle: \"Search Rules\",\n    /*\n     * PROPERTY\n     * TYPE:        object\n     * DESCRIPTION: options to extend the ajax request\n     */\n    ajaxSelectOptions : {}\n}; /* end of searchFilter */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/jquery.tablednd.js",
    "content": "/**\n * TableDnD plug-in for JQuery, allows you to drag and drop table rows\n * You can set up various options to control how the system will work\n * Copyright (c) Denis Howlett <denish@isocra.com>\n * Licensed like jQuery, see http://docs.jquery.com/License.\n *\n * Configuration options:\n * \n * onDragStyle\n *     This is the style that is assigned to the row during drag. There are limitations to the styles that can be\n *     associated with a row (such as you can't assign a border--well you can, but it won't be\n *     displayed). (So instead consider using onDragClass.) The CSS style to apply is specified as\n *     a map (as used in the jQuery css(...) function).\n * onDropStyle\n *     This is the style that is assigned to the row when it is dropped. As for onDragStyle, there are limitations\n *     to what you can do. Also this replaces the original style, so again consider using onDragClass which\n *     is simply added and then removed on drop.\n * onDragClass\n *     This class is added for the duration of the drag and then removed when the row is dropped. It is more\n *     flexible than using onDragStyle since it can be inherited by the row cells and other content. The default\n *     is class is tDnD_whileDrag. So to use the default, simply customise this CSS class in your\n *     stylesheet.\n * onDrop\n *     Pass a function that will be called when the row is dropped. The function takes 2 parameters: the table\n *     and the row that was dropped. You can work out the new order of the rows by using\n *     table.rows.\n * onDragStart\n *     Pass a function that will be called when the user starts dragging. The function takes 2 parameters: the\n *     table and the row which the user has started to drag.\n * onAllowDrop\n *     Pass a function that will be called as a row is over another row. If the function returns true, allow \n *     dropping on that row, otherwise not. The function takes 2 parameters: the dragged row and the row under\n *     the cursor. It returns a boolean: true allows the drop, false doesn't allow it.\n * scrollAmount\n *     This is the number of pixels to scroll if the user moves the mouse cursor to the top or bottom of the\n *     window. The page should automatically scroll up or down as appropriate (tested in IE6, IE7, Safari, FF2,\n *     FF3 beta\n * dragHandle\n *     This is the name of a class that you assign to one or more cells in each row that is draggable. If you\n *     specify this class, then you are responsible for setting cursor: move in the CSS and only these cells\n *     will have the drag behaviour. If you do not specify a dragHandle, then you get the old behaviour where\n *     the whole row is draggable.\n * \n * Other ways to control behaviour:\n *\n * Add class=\"nodrop\" to any rows for which you don't want to allow dropping, and class=\"nodrag\" to any rows\n * that you don't want to be draggable.\n *\n * Inside the onDrop method you can also call $.tableDnD.serialize() this returns a string of the form\n * <tableID>[]=<rowID1>&<tableID>[]=<rowID2> so that you can send this back to the server. The table must have\n * an ID as must all the rows.\n *\n * Other methods:\n *\n * $(\"...\").tableDnDUpdate() \n * Will update all the matching tables, that is it will reapply the mousedown method to the rows (or handle cells).\n * This is useful if you have updated the table rows using Ajax and you want to make the table draggable again.\n * The table maintains the original configuration (so you don't have to specify it again).\n *\n * $(\"...\").tableDnDSerialize()\n * Will serialize and return the serialized string as above, but for each of the matching tables--so it can be\n * called from anywhere and isn't dependent on the currentTable being set up correctly before calling\n *\n * Known problems:\n * - Auto-scoll has some problems with IE7  (it scrolls even when it shouldn't), work-around: set scrollAmount to 0\n * \n * Version 0.2: 2008-02-20 First public version\n * Version 0.3: 2008-02-07 Added onDragStart option\n *                         Made the scroll amount configurable (default is 5 as before)\n * Version 0.4: 2008-03-15 Changed the noDrag/noDrop attributes to nodrag/nodrop classes\n *                         Added onAllowDrop to control dropping\n *                         Fixed a bug which meant that you couldn't set the scroll amount in both directions\n *                         Added serialize method\n * Version 0.5: 2008-05-16 Changed so that if you specify a dragHandle class it doesn't make the whole row\n *                         draggable\n *                         Improved the serialize method to use a default (and settable) regular expression.\n *                         Added tableDnDupate() and tableDnDSerialize() to be called when you are outside the table\n */\njQuery.tableDnD = {\n    /** Keep hold of the current table being dragged */\n    currentTable : null,\n    /** Keep hold of the current drag object if any */\n    dragObject: null,\n    /** The current mouse offset */\n    mouseOffset: null,\n    /** Remember the old value of Y so that we don't do too much processing */\n    oldY: 0,\n\n    /** Actually build the structure */\n    build: function(options) {\n        // Set up the defaults if any\n\n        this.each(function() {\n            // This is bound to each matching table, set up the defaults and override with user options\n            this.tableDnDConfig = jQuery.extend({\n                onDragStyle: null,\n                onDropStyle: null,\n\t\t\t\t// Add in the default class for whileDragging\n\t\t\t\tonDragClass: \"tDnD_whileDrag\",\n                onDrop: null,\n                onDragStart: null,\n                scrollAmount: 5,\n\t\t\t\tserializeRegexp: /[^\\-]*$/, // The regular expression to use to trim row IDs\n\t\t\t\tserializeParamName: null, // If you want to specify another parameter name instead of the table ID\n                dragHandle: null // If you give the name of a class here, then only Cells with this class will be draggable\n            }, options || {});\n            // Now make the rows draggable\n            jQuery.tableDnD.makeDraggable(this);\n        });\n\n        // Now we need to capture the mouse up and mouse move event\n        // We can use bind so that we don't interfere with other event handlers\n        jQuery(document)\n            .bind('mousemove', jQuery.tableDnD.mousemove)\n            .bind('mouseup', jQuery.tableDnD.mouseup);\n\n        // Don't break the chain\n        return this;\n    },\n\n    /** This function makes all the rows on the table draggable apart from those marked as \"NoDrag\" */\n    makeDraggable: function(table) {\n        var config = table.tableDnDConfig;\n\t\tif (table.tableDnDConfig.dragHandle) {\n\t\t\t// We only need to add the event to the specified cells\n\t\t\tvar cells = jQuery(\"td.\"+table.tableDnDConfig.dragHandle, table);\n\t\t\tcells.each(function() {\n\t\t\t\t// The cell is bound to \"this\"\n                jQuery(this).mousedown(function(ev) {\n                    jQuery.tableDnD.dragObject = this.parentNode;\n                    jQuery.tableDnD.currentTable = table;\n                    jQuery.tableDnD.mouseOffset = jQuery.tableDnD.getMouseOffset(this, ev);\n                    if (config.onDragStart) {\n                        // Call the onDrop method if there is one\n                        config.onDragStart(table, this);\n                    }\n                    return false;\n                });\n\t\t\t})\n\t\t} else {\n\t\t\t// For backwards compatibility, we add the event to the whole row\n\t        var rows = jQuery(\"tr\", table); // get all the rows as a wrapped set\n\t        rows.each(function() {\n\t\t\t\t// Iterate through each row, the row is bound to \"this\"\n\t\t\t\tvar row = jQuery(this);\n\t\t\t\tif (! row.hasClass(\"nodrag\")) {\n\t                row.mousedown(function(ev) {\n\t                    if (ev.target.tagName == \"TD\") {\n\t                        jQuery.tableDnD.dragObject = this;\n\t                        jQuery.tableDnD.currentTable = table;\n\t                        jQuery.tableDnD.mouseOffset = jQuery.tableDnD.getMouseOffset(this, ev);\n\t                        if (config.onDragStart) {\n\t                            // Call the onDrop method if there is one\n\t                            config.onDragStart(table, this);\n\t                        }\n\t                        return false;\n\t                    }\n\t                }).css(\"cursor\", \"move\"); // Store the tableDnD object\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\n\tupdateTables: function() {\n\t\tthis.each(function() {\n\t\t\t// this is now bound to each matching table\n\t\t\tif (this.tableDnDConfig) {\n\t\t\t\tjQuery.tableDnD.makeDraggable(this);\n\t\t\t}\n\t\t})\n\t},\n\n    /** Get the mouse coordinates from the event (allowing for browser differences) */\n    mouseCoords: function(ev){\n        if(ev.pageX || ev.pageY){\n            return {x:ev.pageX, y:ev.pageY};\n        }\n        return {\n            x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,\n            y:ev.clientY + document.body.scrollTop  - document.body.clientTop\n        };\n    },\n\n    /** Given a target element and a mouse event, get the mouse offset from that element.\n        To do this we need the element's position and the mouse position */\n    getMouseOffset: function(target, ev) {\n        ev = ev || window.event;\n\n        var docPos    = this.getPosition(target);\n        var mousePos  = this.mouseCoords(ev);\n        return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};\n    },\n\n    /** Get the position of an element by going up the DOM tree and adding up all the offsets */\n    getPosition: function(e){\n        var left = 0;\n        var top  = 0;\n        /** Safari fix -- thanks to Luis Chato for this! */\n        if (e.offsetHeight == 0) {\n            /** Safari 2 doesn't correctly grab the offsetTop of a table row\n            this is detailed here:\n            http://jacob.peargrove.com/blog/2006/technical/table-row-offsettop-bug-in-safari/\n            the solution is likewise noted there, grab the offset of a table cell in the row - the firstChild.\n            note that firefox will return a text node as a first child, so designing a more thorough\n            solution may need to take that into account, for now this seems to work in firefox, safari, ie */\n            e = e.firstChild; // a table cell\n        }\n\t\tif (e && e.offsetParent) {\n        \twhile (e.offsetParent){\n            \tleft += e.offsetLeft;\n            \ttop  += e.offsetTop;\n            \te     = e.offsetParent;\n        \t}\n\n        \tleft += e.offsetLeft;\n        \ttop  += e.offsetTop;\n        }\n\n        return {x:left, y:top};\n    },\n\n    mousemove: function(ev) {\n        if (jQuery.tableDnD.dragObject == null) {\n            return;\n        }\n\n        var dragObj = jQuery(jQuery.tableDnD.dragObject);\n        var config = jQuery.tableDnD.currentTable.tableDnDConfig;\n        var mousePos = jQuery.tableDnD.mouseCoords(ev);\n        var y = mousePos.y - jQuery.tableDnD.mouseOffset.y;\n        //auto scroll the window\n\t    var yOffset = window.pageYOffset;\n\t \tif (document.all) {\n\t        // Windows version\n\t        //yOffset=document.body.scrollTop;\n\t        if (typeof document.compatMode != 'undefined' &&\n\t             document.compatMode != 'BackCompat') {\n\t           yOffset = document.documentElement.scrollTop;\n\t        }\n\t        else if (typeof document.body != 'undefined') {\n\t           yOffset=document.body.scrollTop;\n\t        }\n\n\t    }\n\t\t    \n\t\tif (mousePos.y-yOffset < config.scrollAmount) {\n\t    \twindow.scrollBy(0, -config.scrollAmount);\n\t    } else {\n            var windowHeight = window.innerHeight ? window.innerHeight\n                    : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;\n            if (windowHeight-(mousePos.y-yOffset) < config.scrollAmount) {\n                window.scrollBy(0, config.scrollAmount);\n            }\n        }\n\n\n        if (y != jQuery.tableDnD.oldY) {\n            // work out if we're going up or down...\n            var movingDown = y > jQuery.tableDnD.oldY;\n            // update the old value\n            jQuery.tableDnD.oldY = y;\n            // update the style to show we're dragging\n\t\t\tif (config.onDragClass) {\n\t\t\t\tdragObj.addClass(config.onDragClass);\n\t\t\t} else {\n\t            dragObj.css(config.onDragStyle);\n\t\t\t}\n            // If we're over a row then move the dragged row to there so that the user sees the\n            // effect dynamically\n            var currentRow = jQuery.tableDnD.findDropTargetRow(dragObj, y);\n            if (currentRow) {\n                // TODO worry about what happens when there are multiple TBODIES\n                if (movingDown && jQuery.tableDnD.dragObject != currentRow) {\n                    jQuery.tableDnD.dragObject.parentNode.insertBefore(jQuery.tableDnD.dragObject, currentRow.nextSibling);\n                } else if (! movingDown && jQuery.tableDnD.dragObject != currentRow) {\n                    jQuery.tableDnD.dragObject.parentNode.insertBefore(jQuery.tableDnD.dragObject, currentRow);\n                }\n            }\n        }\n\n        return false;\n    },\n\n    /** We're only worried about the y position really, because we can only move rows up and down */\n    findDropTargetRow: function(draggedRow, y) {\n        var rows = jQuery.tableDnD.currentTable.rows;\n        for (var i=0; i<rows.length; i++) {\n            var row = rows[i];\n            var rowY    = this.getPosition(row).y;\n            var rowHeight = parseInt(row.offsetHeight)/2;\n            if (row.offsetHeight == 0) {\n                rowY = this.getPosition(row.firstChild).y;\n                rowHeight = parseInt(row.firstChild.offsetHeight)/2;\n            }\n            // Because we always have to insert before, we need to offset the height a bit\n            if ((y > rowY - rowHeight) && (y < (rowY + rowHeight))) {\n                // that's the row we're over\n\t\t\t\t// If it's the same as the current row, ignore it\n\t\t\t\tif (row == draggedRow) {return null;}\n                var config = jQuery.tableDnD.currentTable.tableDnDConfig;\n                if (config.onAllowDrop) {\n                    if (config.onAllowDrop(draggedRow, row)) {\n                        return row;\n                    } else {\n                        return null;\n                    }\n                } else {\n\t\t\t\t\t// If a row has nodrop class, then don't allow dropping (inspired by John Tarr and Famic)\n                    var nodrop = jQuery(row).hasClass(\"nodrop\");\n                    if (! nodrop) {\n                        return row;\n                    } else {\n                        return null;\n                    }\n                }\n                return row;\n            }\n        }\n        return null;\n    },\n\n    mouseup: function(e) {\n        if (jQuery.tableDnD.currentTable && jQuery.tableDnD.dragObject) {\n            var droppedRow = jQuery.tableDnD.dragObject;\n            var config = jQuery.tableDnD.currentTable.tableDnDConfig;\n            // If we have a dragObject, then we need to release it,\n            // The row will already have been moved to the right place so we just reset stuff\n\t\t\tif (config.onDragClass) {\n\t            jQuery(droppedRow).removeClass(config.onDragClass);\n\t\t\t} else {\n\t            jQuery(droppedRow).css(config.onDropStyle);\n\t\t\t}\n            jQuery.tableDnD.dragObject   = null;\n            if (config.onDrop) {\n                // Call the onDrop method if there is one\n                config.onDrop(jQuery.tableDnD.currentTable, droppedRow);\n            }\n            jQuery.tableDnD.currentTable = null; // let go of the table too\n        }\n    },\n\n    serialize: function() {\n        if (jQuery.tableDnD.currentTable) {\n            return jQuery.tableDnD.serializeTable(jQuery.tableDnD.currentTable);\n        } else {\n            return \"Error: No Table id set, you need to set an id on your table and every row\";\n        }\n    },\n\n\tserializeTable: function(table) {\n        var result = \"\";\n        var tableId = table.id;\n        var rows = table.rows;\n        for (var i=0; i<rows.length; i++) {\n            if (result.length > 0) result += \"&\";\n            var rowId = rows[i].id;\n            if (rowId && rowId && table.tableDnDConfig && table.tableDnDConfig.serializeRegexp) {\n                rowId = rowId.match(table.tableDnDConfig.serializeRegexp)[0];\n            }\n\n            result += tableId + '[]=' + rowId;\n        }\n        return result;\n\t},\n\n\tserializeTables: function() {\n        var result = \"\";\n        this.each(function() {\n\t\t\t// this is now bound to each matching table\n\t\t\tresult += jQuery.tableDnD.serializeTable(this);\n\t\t});\n        return result;\n    }\n\n}\n\njQuery.fn.extend(\n\t{\n\t\ttableDnD : jQuery.tableDnD.build,\n\t\ttableDnDUpdate : jQuery.tableDnD.updateTables,\n\t\ttableDnDSerialize: jQuery.tableDnD.serializeTables\n\t}\n);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/searchFilter.css",
    "content": ".ui-searchFilter { display: none; position: absolute; z-index: 770; overflow: visible;}\n.ui-searchFilter table {position:relative; margin:0em; width:auto}\n.ui-searchFilter table td {margin: 0em; padding: 1px;}\n.ui-searchFilter table td input, .ui-searchFilter table td select {margin: 0.1em;}\n.ui-searchFilter .ui-state-default { cursor: pointer; }\n.ui-searchFilter .divider hr {margin: 1px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/ui.multiselect.css",
    "content": "/* Multiselect\n----------------------------------*/\n\n.ui-multiselect { border: solid 1px; font-size: 0.8em; }\n.ui-multiselect ul { -moz-user-select: none; }\n.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }\n.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}\n.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }\n\n.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }\n.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }\n.ui-multiselect ul.selected li { }\n\n.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }\n.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }\n.ui-multiselect ul.available li { padding-left: 10px; }\n \n.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}\n.ui-multiselect .ui-state-hover { border: none; }\n.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}\n \n.ui-multiselect .add-all { float: right; padding: 7px;}\n.ui-multiselect .remove-all { float: right; padding: 7px;}\n.ui-multiselect .search { float: left; padding: 4px;}\n.ui-multiselect .count { float: left; padding: 7px;}\n\n.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }\n.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }\n \n.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/plugins/ui.multiselect.js",
    "content": "/*\n * jQuery UI Multiselect\n *\n * Authors:\n *  Michael Aufreiter (quasipartikel.at)\n *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)\n * \n * Dual licensed under the MIT (MIT-LICENSE.txt)\n * and GPL (GPL-LICENSE.txt) licenses.\n * \n * http://www.quasipartikel.at/multiselect/\n *\n * \n * Depends:\n *\tui.core.js\n *\tui.sortable.js\n *\n * Optional:\n * localization (http://plugins.jquery.com/project/localisation)\n * scrollTo (http://plugins.jquery.com/project/ScrollTo)\n * \n * Todo:\n *  Make batch actions faster\n *  Implement dynamic insertion through remote calls\n */\n\n\n(function($) {\n\n$.widget(\"ui.multiselect\", {\n  options: {\n\t\tsortable: true,\n\t\tsearchable: true,\n\t\tdoubleClickable: true,\n\t\tanimated: 'fast',\n\t\tshow: 'slideDown',\n\t\thide: 'slideUp',\n\t\tdividerLocation: 0.6,\n\t\tavailableFirst: false,\n\t\tnodeComparator: function(node1,node2) {\n\t\t\tvar text1 = node1.text(),\n\t\t\t    text2 = node2.text();\n\t\t\treturn text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);\n\t\t}\n\t},\n\t_create: function() {\n\t\tthis.element.hide();\n\t\tthis.id = this.element.attr(\"id\");\n\t\tthis.container = $('<div class=\"ui-multiselect ui-helper-clearfix ui-widget\"></div>').insertAfter(this.element);\n\t\tthis.count = 0; // number of currently selected options\n\t\tthis.selectedContainer = $('<div class=\"selected\"></div>').appendTo(this.container);\n\t\tthis.availableContainer = $('<div class=\"available\"></div>')[this.options.availableFirst?'prependTo': 'appendTo'](this.container);\n\t\tthis.selectedActions = $('<div class=\"actions ui-widget-header ui-helper-clearfix\"><span class=\"count\">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href=\"#\" class=\"remove-all\">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);\n\t\tthis.availableActions = $('<div class=\"actions ui-widget-header ui-helper-clearfix\"><input type=\"text\" class=\"search empty ui-widget-content ui-corner-all\"/><a href=\"#\" class=\"add-all\">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);\n\t\tthis.selectedList = $('<ul class=\"selected connected-list\"><li class=\"ui-helper-hidden-accessible\"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);\n\t\tthis.availableList = $('<ul class=\"available connected-list\"><li class=\"ui-helper-hidden-accessible\"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);\n\t\t\n\t\tvar that = this;\n\n\t\t// set dimensions\n\t\tthis.container.width(this.element.width()+1);\n\t\tthis.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));\n\t\tthis.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));\n\n\t\t// fix list height to match <option> depending on their individual header's heights\n\t\tthis.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));\n\t\tthis.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));\n\t\t\n\t\tif ( !this.options.animated ) {\n\t\t\tthis.options.show = 'show';\n\t\t\tthis.options.hide = 'hide';\n\t\t}\n\t\tthis.useProp = !!$.fn.prop;\n\t\t// init lists\n\t\tthis._populateLists(this.element.find('option'));\n\t\t\n\t\t// make selection sortable\n\t\tif (this.options.sortable) {\n\t\t\tthis.selectedList.sortable({\n\t\t\t\tplaceholder: 'ui-state-highlight',\n\t\t\t\taxis: 'y',\n\t\t\t\tupdate: function(event, ui) {\n\t\t\t\t\t// apply the new sort order to the original selectbox\n\t\t\t\t\tthat.selectedList.find('li').each(function() {\n\t\t\t\t\t\tif ($(this).data('optionLink'))\n\t\t\t\t\t\t\t$(this).data('optionLink').remove().appendTo(that.element);\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\treceive: function(event, ui) {\n\t\t\t\t\tui.item.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', true);\n\t\t\t\t\t// increment count\n\t\t\t\t\tthat.count += 1;\n\t\t\t\t\tthat._updateCount();\n\t\t\t\t\t// workaround, because there's no way to reference \n\t\t\t\t\t// the new element, see http://dev.jqueryui.com/ticket/4303\n\t\t\t\t\tthat.selectedList.children('.ui-draggable').each(function() {\n\t\t\t\t\t\t$(this).removeClass('ui-draggable');\n\t\t\t\t\t\t$(this).data('optionLink', ui.item.data('optionLink'));\n\t\t\t\t\t\t$(this).data('idx', ui.item.data('idx'));\n\t\t\t\t\t\tthat._applyItemState($(this), true);\n\t\t\t\t\t});\n\t\t\t\n\t\t\t\t\t// workaround according to http://dev.jqueryui.com/ticket/4088\n\t\t\t\t\tsetTimeout(function() { ui.item.remove(); }, 1);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t// set up livesearch\n\t\tif (this.options.searchable) {\n\t\t\tthis._registerSearchEvents(this.availableContainer.find('input.search'));\n\t\t} else {\n\t\t\t$('.search').hide();\n\t\t}\n\t\t\n\t\t// batch actions\n\t\tthis.container.find(\".remove-all\").click(function() {\n\t\t\tthat._populateLists(that.element.find('option').removeAttr('selected'));\n\t\t\treturn false;\n\t\t});\n\t\t\n\t\tthis.container.find(\".add-all\").click(function() {\n\t\t\tvar options = that.element.find('option').not(\":selected\");\n\t\t\tif (that.availableList.children('li:hidden').length > 1) {\n\t\t\t\tthat.availableList.children('li').each(function(i) {\n\t\t\t\t\tif ($(this).is(\":visible\")) $(options[i-1])[ that.useProp ? 'prop' : 'attr' ]('selected', true); \n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\toptions[ that.useProp ? 'prop' : 'attr' ]('selected', true);\n\t\t\t}\n\t\t\tthat._populateLists(that.element.find('option'));\n\t\t\treturn false;\n\t\t});\n\t},\n\tdestroy: function() {\n\t\tthis.element.show();\n\t\tthis.container.remove();\n\n\t\t$.Widget.prototype.destroy.apply(this, arguments);\n\t},\n\t_populateLists: function(options) {\n\t\tthis.selectedList.children('.ui-element').remove();\n\t\tthis.availableList.children('.ui-element').remove();\n\t\tthis.count = 0;\n\n\t\tvar that = this;\n\t\tvar items = $(options.map(function(i) {\n\t      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();\n\n\t\t\tif (this.selected) that.count += 1;\n\t\t\tthat._applyItemState(item, this.selected);\n\t\t\titem.data('idx', i);\n\t\t\treturn item[0];\n    }));\n\t\t\n\t\t// update count\n\t\tthis._updateCount();\n\t\tthat._filter.apply(this.availableContainer.find('input.search'), [that.availableList]);\n  },\n\t_updateCount: function() {\n\t\tthis.element.trigger('change');\n\t\tthis.selectedContainer.find('span.count').text(this.count+\" \"+$.ui.multiselect.locale.itemsCount);\n\t},\n\t_getOptionNode: function(option) {\n\t\toption = $(option);\n\t\tvar node = $('<li class=\"ui-state-default ui-element\" title=\"'+option.text()+'\"><span class=\"ui-icon\"/>'+option.text()+'<a href=\"#\" class=\"action\"><span class=\"ui-corner-all ui-icon\"/></a></li>').hide();\n\t\tnode.data('optionLink', option);\n\t\treturn node;\n\t},\n\t// clones an item with associated data\n\t// didn't find a smarter away around this\n\t_cloneWithData: function(clonee) {\n\t\tvar clone = clonee.clone(false,false);\n\t\tclone.data('optionLink', clonee.data('optionLink'));\n\t\tclone.data('idx', clonee.data('idx'));\n\t\treturn clone;\n\t},\n\t_setSelected: function(item, selected) {\n\t\titem.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', selected);\n\n\t\tif (selected) {\n\t\t\tvar selectedItem = this._cloneWithData(item);\n\t\t\titem[this.options.hide](this.options.animated, function() { $(this).remove(); });\n\t\t\tselectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);\n\t\t\t\n\t\t\tthis._applyItemState(selectedItem, true);\n\t\t\treturn selectedItem;\n\t\t} else {\n\t\t\t\n\t\t\t// look for successor based on initial option index\n\t\t\tvar items = this.availableList.find('li'), comparator = this.options.nodeComparator;\n\t\t\tvar succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));\n\n\t\t\t// TODO: test needed for dynamic list populating\n\t\t\tif ( direction ) {\n\t\t\t\twhile (i>=0 && i<items.length) {\n\t\t\t\t\tdirection > 0 ? i++ : i--;\n\t\t\t\t\tif ( direction != comparator(item, $(items[i])) ) {\n\t\t\t\t\t\t// going up, go back one item down, otherwise leave as is\n\t\t\t\t\t\tsucc = items[direction > 0 ? i : i+1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsucc = items[i];\n\t\t\t}\n\t\t\t\n\t\t\tvar availableItem = this._cloneWithData(item);\n\t\t\tsucc ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);\n\t\t\titem[this.options.hide](this.options.animated, function() { $(this).remove(); });\n\t\t\tavailableItem.hide()[this.options.show](this.options.animated);\n\t\t\t\n\t\t\tthis._applyItemState(availableItem, false);\n\t\t\treturn availableItem;\n\t\t}\n\t},\n\t_applyItemState: function(item, selected) {\n\t\tif (selected) {\n\t\t\tif (this.options.sortable)\n\t\t\t\titem.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');\n\t\t\telse\n\t\t\t\titem.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');\n\t\t\titem.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');\n\t\t\tthis._registerRemoveEvents(item.find('a.action'));\n\t\t\t\n\t\t} else {\n\t\t\titem.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');\n\t\t\titem.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');\n\t\t\tthis._registerAddEvents(item.find('a.action'));\n\t\t}\n\t\t\n\t\tthis._registerDoubleClickEvents(item);\n\t\tthis._registerHoverEvents(item);\n\t},\n\t// taken from John Resig's liveUpdate script\n\t_filter: function(list) {\n\t\tvar input = $(this);\n\t\tvar rows = list.children('li'),\n\t\t\tcache = rows.map(function(){\n\t\t\t\t\n\t\t\t\treturn $(this).text().toLowerCase();\n\t\t\t});\n\t\t\n\t\tvar term = $.trim(input.val().toLowerCase()), scores = [];\n\t\t\n\t\tif (!term) {\n\t\t\trows.show();\n\t\t} else {\n\t\t\trows.hide();\n\n\t\t\tcache.each(function(i) {\n\t\t\t\tif (this.indexOf(term)>-1) { scores.push(i); }\n\t\t\t});\n\n\t\t\t$.each(scores, function() {\n\t\t\t\t$(rows[this]).show();\n\t\t\t});\n\t\t}\n\t},\n\t_registerDoubleClickEvents: function(elements) {\n\t\tif (!this.options.doubleClickable) return;\n\t\telements.dblclick(function(ev) {\n\t\t\tif ($(ev.target).closest('.action').length === 0) {\n\t\t\t\t// This may be triggered with rapid clicks on actions as well. In that\n\t\t\t\t// case don't trigger an additional click.\n\t\t\t\telements.find('a.action').click();\n\t\t\t}\n\t\t});\n\t},\n\t_registerHoverEvents: function(elements) {\n\t\telements.removeClass('ui-state-hover');\n\t\telements.mouseover(function() {\n\t\t\t$(this).addClass('ui-state-hover');\n\t\t});\n\t\telements.mouseout(function() {\n\t\t\t$(this).removeClass('ui-state-hover');\n\t\t});\n\t},\n\t_registerAddEvents: function(elements) {\n\t\tvar that = this;\n\t\telements.click(function() {\n\t\t\tvar item = that._setSelected($(this).parent(), true);\n\t\t\tthat.count += 1;\n\t\t\tthat._updateCount();\n\t\t\treturn false;\n\t\t});\n\t\t\n\t\t// make draggable\n\t\tif (this.options.sortable) {\n  \t\telements.each(function() {\n  \t\t\t$(this).parent().draggable({\n  \t      connectToSortable: that.selectedList,\n  \t\t\t\thelper: function() {\n  \t\t\t\t\tvar selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);\n  \t\t\t\t\tselectedItem.width($(this).width());\n  \t\t\t\t\treturn selectedItem;\n  \t\t\t\t},\n  \t\t\t\tappendTo: that.container,\n  \t\t\t\tcontainment: that.container,\n  \t\t\t\trevert: 'invalid'\n  \t    });\n  \t\t});\t\t  \n\t\t}\n\t},\n\t_registerRemoveEvents: function(elements) {\n\t\tvar that = this;\n\t\telements.click(function() {\n\t\t\tthat._setSelected($(this).parent(), false);\n\t\t\tthat.count -= 1;\n\t\t\tthat._updateCount();\n\t\t\treturn false;\n\t\t});\n \t},\n\t_registerSearchEvents: function(input) {\n\t\tvar that = this;\n\n\t\tinput.focus(function() {\n\t\t\t$(this).addClass('ui-state-active');\n\t\t})\n\t\t.blur(function() {\n\t\t\t$(this).removeClass('ui-state-active');\n\t\t})\n\t\t.keypress(function(e) {\n\t\t\tif (e.keyCode == 13)\n\t\t\t\treturn false;\n\t\t})\n\t\t.keyup(function() {\n\t\t\tthat._filter.apply(this, [that.availableList]);\n\t\t});\n\t}\n});\n\t\t\n$.extend($.ui.multiselect, {\n\tlocale: {\n\t\taddAll:'Add all',\n\t\tremoveAll:'Remove all',\n\t\titemsCount:'items selected'\n\t}\n});\n\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.jqgrid-bootstrap-ui.css",
    "content": "/*\nTo change this license header, choose License Headers in Project Properties.\nTo change this template file, choose Tools | Templates\nand open the template in the editor.\n*/\n/* \n    Created on : Mar 16, 2015, 10:24:01 AM\n    Author     : tony\n*/\n\n.ui-jqgrid tr.jqgrow td { height: 26px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:20px }\n.ui-state-hover\n{\n    border: .15em solid;\n\tborder-color: inherit;\n\n}\n.ui-jqdialog .ui-jqdialog-titlebar  {\n\theight:29px;\n\tborder-color: inherit;\n}\n\n.ui-jqdialog-content input.FormElement {\n    padding: 0.25em;\n}\n\n.fm-button {\n    height:30px;\n}\n#nData, #pData { height:20px; width:18px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.jqgrid-bootstrap.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative; \n\tborder: 1px solid #ddd;      /*default*/\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n}\n.ui-jqgrid .ui-jqgrid-view {\n\tposition: relative;\n\tleft:0; \n\ttop: 0; \n\tpadding: 0;\n}\n.ui-jqgrid .ui-common-table {}\n\n/* Caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {\n\tfont-weight: normal;\n\tmin-height:37px; \n\tpadding: 4px 8px; \n\tposition: relative; \n\tmargin-right: 2px;\n\tborder-bottom: 1px solid #ddd; /*default*/\n\n}\n.ui-jqgrid .ui-jqgrid-caption {\n\ttext-align: left;\n}\n.ui-jqgrid .ui-jqgrid-title { \n\tpadding-top: 5px; \n\tvertical-align: middle;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close { \n\tcolor: inherit; \n\tposition: absolute;\n\ttop: 50%; \n\tmargin: -10px 7px 0 0; \n\tpadding: 1px; \n\tcursor:pointer;\n}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { \n\tdisplay: block; \n\tmargin: 1px; \n}\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover {  }\n\n/* Header*/\n.ui-jqgrid .ui-jqgrid-hdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-hbox {\n\tfloat: left; \n\tpadding-right: 20px;\n}\n.ui-jqgrid .ui-jqgrid-htable { \n\tmargin-bottom: 0; \n\ttable-layout: fixed; \n\tborder-top:none;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th {\n\toverflow : hidden; \n\tborder-bottom : none;\n\tpadding-right: 2px;\n}\n.ui-jqgrid .ui-jqgrid-htable thead th div {\n\toverflow: hidden; \n\tposition:relative;\n}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-column-header, \n.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; }\n.ui-first-th-ltr { }\n.ui-first-th-rtl { }\n.ui-jqgrid tr.jqg-first-row-header th {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n\ttext-align: center;\n}\n.ui-jqgrid tr.jqg-second-row-header th,\n.ui-jqgrid tr.jqg-third--row-header th\n{\n\tborder-top:none;\n\ttext-align: center;\n}\n\n.ui-jqgrid .ui-th-div-ie {\n\twhite-space: nowrap; \n\tzoom :1; \n\theight:17px;\n}\n.ui-jqgrid .ui-jqgrid-resize {\n\theight:20px !important;\n\tposition: relative; \n\tcursor :e-resize;\n\tdisplay: inline;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-grid-ico-sort { \n\tmargin-left:5px; \n\toverflow:hidden;\n\tposition:absolute;\n\tright: auto;\n\tfont-size:12px;\n}\n.ui-jqgrid .ui-icon-asc {\n\tmargin-top:-3px;\n}\n.ui-jqgrid .ui-icon-desc {\n\tmargin-top:4px;\n}\n.ui-jqgrid .ui-i-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-i-desc {\n\tmargin-top:0;\n\tmargin-right:13px;\n}\n.ui-jqgrid .ui-single-sort-asc {\n\tmargin-top:0;\n}\n.ui-jqgrid .ui-single-sort-desc {}\n.ui-jqgrid .ui-jqgrid-sortable {\n\tcursor:pointer;\n}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { }\n.ui-jqgrid tr.ui-search-toolbar td > input { }\n.ui-jqgrid tr.ui-search-toolbar select {}\n\n/* Body */ \n.ui-jqgrid .table-bordered,\n.ui-jqgrid .table-bordered td,\n.ui-jqgrid .table-bordered th.ui-th-ltr\n{\n\tborder-left:0px none !important;\n}\n.ui-jqgrid .table-bordered th.ui-th-rtl\n{\n\tborder-right:0px none !important;\n}\n.ui-jqgrid .table-bordered tr.ui-row-rtl td\n{\n\tborder-right:0px none !important;\n\tborder-left: 1px solid #ddd !important;\n}\ndiv.tablediv > .table-bordered {\n\tborder-left : 1px solid #ddd !important;\n}\n.ui-jqgrid  .ui-jqgrid-bdiv table.table-bordered td {\n\tborder-top: 0px none;\n}\n.ui-jqgrid .ui-jqgrid-bdiv {\n\tposition: relative; \n\tmargin: 0; \n\tpadding:0; \n\toverflow: auto; \n\ttext-align:left; \n}\n.ui-jqgrid .ui-jqgrid-btable {\n\ttable-layout: fixed; \n\tborder-left:none ; \n\tborder-top:none; \n\tmargin-bottom: 0px\n}\n.ui-jqgrid tr.jqgrow {  \n\toutline-style: none; \n}\n.ui-jqgrid tr.jqgroup {  \n\toutline-style: none; \n}\n.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td { \n\toverflow: hidden; \n\twhite-space: pre; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgfirstrow  td {\n\theight:auto; \n\tborder-top:none; \n\tpadding-bottom: 0;\n\tpadding-top: 0;\n\tborder-bottom: none; \n\tpadding-right: 2px;\n}\n.ui-jqgrid tr.jqgroup td { \n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.jqfoot td {\n\twhite-space: nowrap;\n}\n.ui-jqgrid tr.ui-row-ltr td {}\n.ui-jqgrid tr.ui-row-rtl td {}\n.ui-jqgrid td.jqgrid-rownum { }\n.ui-jqgrid .ui-jqgrid-resize-mark { \n\twidth:2px; \n\tleft:0; \n\tbackground-color:#777; \n\tcursor: e-resize; \n\tcursor: col-resize; \n\tposition:absolute; \n\ttop:0; \n\theight:100px; \n\toverflow:hidden; \n\tdisplay:none; \n\tborder:0 none; \n\tz-index: 99999;\n\n}\n/* Footer */\n.ui-jqgrid .ui-jqgrid-sdiv {\n\tposition: relative; \n\tmargin: 0;\n\tpadding: 0; \n\toverflow: hidden; \n\tborder-left: 0 none !important; \n\tborder-top : 0 none !important; \n\tborder-right : 0 none !important;\n}\n.ui-jqgrid .ui-jqgrid-ftable {\n\ttable-layout:fixed;\n\tmargin-bottom:0;\n}\n\n.ui-jqgrid tr.footrow td {\n\tfont-weight: bold; \n\toverflow: hidden; \n\twhite-space:nowrap; \n\tpadding-right: 2px;\n\tborder-bottom: 0px none;\n}\n.ui-jqgrid tr.footrow-ltr td {\n\ttext-align:left;\n}\n.ui-jqgrid tr.footrow-rtl td {\n\ttext-align:right;\n}\n\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager\n{ \n\tborder-left-width: 0px;\n\tborder-top: 1px solid #ddd;  \n\t/*padding : 4px 0px;*/\n\tposition: relative; \n\t/*height: auto; */\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .ui-jqgrid-toppager {\n\tborder-top-width :0;\n\tborder-bottom : 1px solid #ddd;\n}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, \n.ui-jqgrid .ui-jqgrid-pager .ui-pager-control {\n\tposition: relative;\n\tborder-left: 0;\n\tborder-bottom: 0;\n\tborder-top: 0; \n\t/*height: 30px;*/\n}\n.ui-jqgrid .ui-pg-table {\n\tposition: relative; \n\tpadding: 1px 0; \n\twidth:auto; \n\tmargin: 0;\n}\n.ui-jqgrid .ui-pg-table td {\n\tfont-weight:normal; \n\tvertical-align:middle; \n\t/*padding:0px 6px;*/\n}\n.ui-jqgrid .ui-pager-control .ui-pager-table td {\n\tborder-top : 0px none !important;\n\tmin-height : 20px !important;\n}\n.ui-jqgrid .ui-pg-button  { \n\theight:auto; \n}\n.ui-jqgrid  .ui-paging-pager td {\n\tpadding : 0 5px;\n}\n.ui-jqgrid .ui-pg-button span { \n\tdisplay: block; \n\tmargin: 0px 2px; \n\tfloat:left;\n}\n.ui-jqgrid .ui-pg-button:hover {  }\n.ui-jqgrid .ui-disabled:hover {}\n.ui-jqgrid .ui-pg-input,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { \n\tdisplay: inline-block;\n\theight:auto;\n\twidth: auto;\n\tfont-size:.9em; \n\tmargin:0;\n\tline-height: inherit;\n\tborder: none; \n\tpadding: 0px 3px\n}\n.ui-jqgrid .ui-pg-selbox, \n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {\n\tfont-size:.9em; \n\tline-height:inherit; \n\tdisplay:block; \n\theight:22px; \n\tmargin: 0; \n\tpadding: 3px 0px 3px 3px; \n\tborder:none;\n}\n.ui-jqgrid .ui-separator {\n\theight: 18px; \n\tborder : none;\n\tborder-left: 2px solid #ccc ; /*default*/\n\t\n}\n.ui-separator-li {\n\theight: 2px; \n\tborder : none;\n\tborder-top: 2px solid #ccc ;  /*default*/\n\tmargin: 0; padding: 0; width:100%\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{\n\tfloat:left;\n\tposition:relative; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ \n\tcursor:pointer; \n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span\n{\n\tfloat:left;\n}\n.ui-jqgrid td input, \n.ui-jqgrid td select, \n.ui-jqgrid td textarea { \n\tmargin: 0;\n}\n.ui-jqgrid td textarea {\n\twidth:auto;\n\theight:auto;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table\n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable td,\n.ui-jqgrid .ui-jqgrid-toppager .navtable td \n{ \n\tpadding : 0 5px;\n}\n\n/*Subgrid*/\n\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {\n\tdisplay: block;\n}\n.ui-jqgrid .ui-subgrid {\n\tmargin:0;\n\tpadding:0; \n\twidth:100%;\n}\n.ui-jqgrid .ui-subgrid table {\n\ttable-layout: fixed;\n}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {}\n.ui-jqgrid .ui-subgrid td.subgrid-data {\n\tborder-top:  0 none !important;\n}\n.ui-jqgrid .ui-subgrid td.subgrid-cell { \n\tvertical-align: middle\n}\n.ui-jqgrid a.ui-sghref {\n\ttext-decoration: none;\n\tcolor : #010101; /*default*/\n}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n.tablediv > .row { margin: 0 0}\n/* loading */\n.ui-jqgrid .loading {\n\tposition: absolute; \n\ttop: 45%;\n\tleft: 45%;\n\twidth: auto;\n\tz-index:101;\n\tpadding: 6px; \n\tmargin: 5px;\n\ttext-align: center;\n\tdisplay: none;\n\tborder: 1px solid #ddd;  /*default*/\n\tfont-size: 14px;\n\tbackground-color: #d9edf7;\n}\n.ui-jqgrid .jqgrid-overlay { \n\tdisplay:none;\n\tz-index:100;\n}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n\n/* Toolbar */\n.ui-jqgrid .ui-userdata {\n\tpadding: 4px 0px; \n\toverflow: hidden; \n\tmin-height: 32px; \n}\n.ui-jqgrid .ui-userdata-top {\n\tborder-left-width: 0px;    /*default*/\n\tborder-bottom: 1px solid #ddd;\t\n}\n.ui-jqgrid .ui-userdata-bottom {\n\tborder-left-width: 0px;    /*default*/\n\tborder-top: 1px solid #ddd;\t\n}\n/*Modal Window */\n.ui-jqdialog { }\n.ui-jqdialog { \n\tdisplay: none; \n\twidth: 500px; \n\tposition: absolute; \n\t/*padding: 5px; */\n\toverflow:visible;\n}\n.ui-jqdialog .ui-jqdialog-titlebar {\n\tpadding: .1em .1em; \n\tmin-height: 35px; \n}\n.ui-jqdialog .ui-jqdialog-title { \n\tmargin: .3em 0 .2em;  \n\tfont-weight: bold;\n\tpadding-left :6px;\n\tpadding-right:6px;\n} \n.ui-jqdialog .ui-jqdialog-titlebar-close { \n\tposition: absolute;  \n\ttop: 0%; \n\tmargin: 3px 5px 0 0; \n\tpadding: 8px;  \n\tcursor:pointer;\n}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span {  }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, \n.ui-jqdialog .ui-jqdialog-titlebar-close:focus { \n\tpadding: 8px; \n}\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { \n\tborder: 0; \n\tpadding: .3em .2em; \n\tbackground: none; \n\theight:auto;\n}\n.ui-jqdialog .ui-jqconfirm {\n\tpadding: .4em 1em; \n\tborder-width:3px;\n\tposition:absolute;\n\tbottom:10px;\n\tright:10px;\n\toverflow:visible;\n\tdisplay:none;\n\theight:120px;\n\twidth:220px;\n\ttext-align:center;\n\tbackground-color: #fff;\n\tborder-radius: 4px;\n\t-webkit-border-radius: 4px;\n\t-moz-border-radius: 4px;\n}\n.ui-jqdialog>.ui-resizable-se { }\n.ui-jqgrid>.ui-resizable-se { }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid { \n\tmargin: 0 8px 0 8px; \n\toverflow:auto;\n\tposition:relative;\n}\n.ui-jqdialog-content .EditTable { \n\twidth: 100%; \n\tmargin-bottom:0; \n}\n.ui-jqdialog-content .DelTable { \n\twidth: 100%; \n\tmargin-bottom:0;\n}\n.EditTable td input, \n.EditTable td select, \n.EditTable td textarea { \n\twidth: 98%; \n\tdisplay: inline-block;\n}\n.EditTable td textarea { \n\twidth:auto; \n\theight:auto;\n}\n.EditTable .FormData td { \n\theight:37px !important;\n}\n.ui-jqdialog-content td.EditButton {\n\ttext-align: right; \n\tpadding: 5px 5px 5px 0;\n}\n.ui-jqdialog-content td.navButton {\n\ttext-align: center; \n\tborder-left: 0 none;\n\tborder-top: 0 none;\n\tborder-right: 0 none; \n\tpadding-bottom:5px; \n\tpadding-top:5px;\n}\n.ui-jqdialog-content input.FormElement {\n\tpadding: .5em .3em; \n\tmargin-bottom: 5px\n}\n.ui-jqdialog-content select.FormElement {\n\tpadding:.3em; \n\tmargin-bottom: 3px;\n}\n.ui-jqdialog-content .data-line {\n\tpadding-top:.1em;\n\tborder: 0 none;\n}\n\n.ui-jqdialog-content .CaptionTD {\n\tvertical-align: middle;\n\tborder: 0 none; \n\tpadding: 2px;\n\twhite-space: nowrap;\n}\n.ui-jqdialog-content .DataTD {\n\tpadding: 2px; \n\tborder: 0 none; \n\tvertical-align: top;\n}\n.ui-jqdialog-content .form-view-data {\n\twhite-space:pre\n}\n.fm-button {  }\n.fm-button-icon-left { \n\tmargin-left: 4px; \n\tmargin-right: 4px;  \n}\n.fm-button-icon-right { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n.fm-button-icon-left  {  }\n.fm-button-icon-right  { }\n#nData, #pData { \n\tmargin-left: 4px; \n\tmargin-right: 4px; \n}\n#sData span, #cData span { \n\tmargin-left: 5px;\n}\n/* End Eorm edit */\n/*.ui-jqgrid .edit-cell {}*/\n.ui-jqgrid .selected-row, \ndiv.ui-jqgrid .selected-row td {\n\tfont-style : normal;\n}\n/* inline edit actions button*/\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 14px;\n}\n.ui-jqgrid .inline-edit-cell {}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {\n\tfloat: left; \n\tposition: relative;\n\theight: 18px;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-minus {\n\tposition: absolute; \n\theight: 18px; \n\twidth: 18px; \n\toverflow: hidden;\n}\n.ui-jqgrid .tree-plus {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\t\n\toverflow: hidden;\n}\n.ui-jqgrid .tree-leaf {\n\tposition: absolute;\t\n\theight: 18px; \n\twidth: 18px;\n\toverflow: hidden;\n}\n.ui-jqgrid .treeclick {\n\tcursor: pointer;\n}\n/* moda dialog */\n* iframe.jqm {\n\tposition:absolute;\n\ttop:0;\n\tleft:0;\n\tz-index:-1;\n}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {\n\tborder-right-width: 1px;\n\tborder-right-color: inherit;\n\tborder-right-style: solid; \n\theight:20px\n}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {\n\ttext-align: right;\n}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {\n\tfloat: right; \n\t/*padding-left: 20px;*/\n}\n.ui-jqgrid .ui-jqgrid-resize-ltr {\n\tfloat: right;\n\tmargin: -2px -2px -2px 0;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-resize-rtl {\n\tfloat: left;\n\tmargin: -2px -2px -2px -0px;\n}\n.ui-jqgrid .ui-sort-rtl {\n\t\n}\n.ui-jqgrid .tree-wrap-ltr {\n\tfloat: left;\n}\n.ui-jqgrid .tree-wrap-rtl {\n\tfloat: right;\n}\n.ui-jqgrid .ui-ellipsis {\n\t-moz-text-overflow:ellipsis;\n\ttext-overflow:ellipsis;\n}\n/* Toolbar Search Menu. Nav menu */\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { \n\tpadding: 0; \n\tborder: 0 none; \n\theight:20px; \n\twidth:100%;\n}\n.ui-jqgrid .ui-search-table .ui-search-oper { \n\twidth:20px; \n}\na.g-menu-item, a.soptclass, a.clearsearchclass { \n\tcursor: pointer; \n} \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    /*font-size: 11px*/\n}\n.ui-jqgrid .ui-scroll-popup {\n\twidth: 100px;\n}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\t\n.ui-disabled {\n\topacity: .35;\n\tfilter:Alpha(Opacity=35); /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0,0,0,0.5);\n\topacity: .3;\n\tfilter: Alpha(Opacity=30); /* support: IE8 */\n}\n \n.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover,\n.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover\n{\n\tbackground-color: #ddd;\n}\n.ui-jqgrid-corner  {\n\t border-radius: 5px\n}\n.ui-resizable-handle {\n\t/*position: absolute;*/\n\tdisplay: block;\n\tleft :97%;\n}\n.ui-jqdialog .ui-resizable-se {\n\twidth: 12px;\n\theight: 12px;\n\tright: -5px;\n\tbottom: -5px;\n\tbackground-position: 16px 16px;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-top-corner {\n\tborder-top-left-radius: 5px;\n\tborder-top-right-radius: 5px;\n}\n.ui-bottom-corner {\n\tborder-bottom-left-radius: 5px;\n\tborder-bottom-right-radius: 5px;\n}\n\n.ui-search-table {\n\tmargin-bottom: 0;\n}\n.ui-search-table .columns, .ui-search-table .operators {\n\tpadding-right: 5px;\n}\n.opsel {\n\tfloat :left;\n\twidth : 100px;\n\tmargin-right : 5px;\n}\n.add-group, .add-rule, .delete-group {\n\twidth: 14%;\t\n\tmargin-right : 5px;\n}\n.delete-rule {\n\twidth : 15px;\n}\nul.ui-search-menu, ul.ui-nav-menu {\n\t list-style-type:  none;\n}\nul.ui-search-menu li a, \nul.ui-nav-menu li a,\n.soptclass, \n.clearsearchclass {\n\ttext-decoration: none;\n\tcolor : #010101;\n}\nul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover {\n\tbackground-color: #ddd;\n\tpadding: 1px 1px;\n\ttext-decoration: none;\n}\nul.ui-search-menu li, ul.ui-nav-menu li {\n\tpadding : 5px 5px;\n}\n.ui-menu-item hr {\n\tmargin-bottom: 0px;\n\tmargin-top:0px;\n}\n\n.searchFilter .ui-search-table td,\n.searchFilter .ui-search-table th\n{\n\tborder-top: 0px none !important;\n}\n\n.searchFilter .queryresult {\n\tmargin-bottom: 5px;\n}\n.searchFilter .queryresult tr td{\n\tborder-top: 0px none;\n}\n.ui-search-label { \n\tpadding-left: 5px;\n}\n\n.frozen-div, .frozen-bdiv {\n\tbackground-color: #fff;\n}\n/*\n.ui-jqgrid .ui-jqgrid-caption,\n.ui-jqgrid .ui-jqgrid-pager,\n.ui-jqgrid .ui-jqgrid-toppager,\n.ui-jqgrid .ui-jqgrid-htable thead th,\n.ui-jqgrid .ui-userdata-top,\n.ui-jqgrid .ui-userdata-bottom,\n.ui-jqgrid .ui-jqgrid-hdiv,\n.ui-jqdialog .ui-jqdialog-titlebar\n{\n    background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%);\n    background-repeat: repeat-x;\n    border-color: #ccc;\n    text-shadow: 0 1px 0 #fff;\n}\n*/\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright: auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 15px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\tpadding-right: 8px;\n\tpadding-left: 8px;\n}\ntd.menu_text {\n\twidth: auto;\n\tpadding-left: 1px;\n\twhite-space: nowrap;\n}\n#search_menu .ui-menu-item div {\n\tpadding: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n\tpadding: 3px 3px;\n}\n.search_buttons .btn-default:hover {\n\tpadding-bottom: 6px;\n\tpadding-top: 6px;\n}\n.search_buttons #bs_reset {\n\tmargin-right: 3px;\n}\n.search_buttons #bs_search {\n\tmargin-left: 3px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.jqgrid.css",
    "content": "/*Grid*/\n.ui-jqgrid {\n\tposition: relative;\n\t-moz-box-sizing: content-box; \n\t-webkit-box-sizing: content-box; \n\tbox-sizing: content-box;\n}\n.ui-jqgrid .ui-jqgrid-view {position: relative;left:0; top: 0; padding: 0; font-size:11px; z-index:100;}\n.ui-jqgrid .ui-common-table {border-width: 0px; border-style: none; border-spacing: 0px; padding: 0;}\n/* caption*/\n.ui-jqgrid .ui-jqgrid-titlebar {height:19px; padding: .3em .2em .2em .3em; position: relative; font-size: 12px; border-left: 0 none;border-right: 0 none; border-top: 0 none;}\n.ui-jqgrid .ui-jqgrid-caption {text-align: left;}\n.ui-jqgrid .ui-jqgrid-title { margin: .1em 0 .2em; }\n.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px; cursor:pointer;}\n.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }\n.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }\n/* header*/\n.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}\n.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0;border-collapse: separate;}\n.ui-jqgrid .ui-jqgrid-htable th { height: 27px; padding: 0 2px 0 2px;}\n.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative;margin: .1em 0em .1em 0em;}\n.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none;border-bottom : 0 none;}\n.ui-th-column-header, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none; height: 26px;}\n.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0 none;}\n.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0 none;}\n.ui-first-th-ltr {border-right: 1px solid; }\n.ui-first-th-rtl {border-left: 1px solid; }\n.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}\n.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}\n.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}\n.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}\n.ui-jqgrid .ui-icon-desc {margin-top:3px;margin-left:-1px;height:12px;}\n.ui-jqgrid .ui-i-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-i-desc {margin-top:0;margin-left:12px;height:18px;}\n.ui-jqgrid .ui-single-sort-asc {margin-top:0;height:18px;}\n.ui-jqgrid .ui-single-sort-desc {margin-top:-1px;height:18px;}\n.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;height:14px}\n.ui-jqgrid tr.ui-search-toolbar th { }\n.ui-jqgrid .ui-search-table td.ui-search-clear { width:25px;}\n.ui-jqgrid tr.ui-search-toolbar td > input { padding-right: 0px; width: 95%;}\n.ui-jqgrid tr.ui-search-toolbar select {}\n/* body */ \n.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0; padding:0; overflow: auto; text-align:left;z-index: 101;}\n.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0; outline-style: none; border-collapse: separate;}\n.ui-jqgrid tr.jqgrow { outline-style: none; }\n.ui-jqgrid tr.jqgroup { outline-style: none; }\n.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 23px;padding: 1px 2px 1px 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqgfirstrow td {padding: 0 2px 0 2px;border-right-width: 1px; border-right-style: solid; height:auto;}\n.ui-jqgrid tr.jqgroup td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.jqfoot td {font-weight: bold; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0; border: 0 none;}\n.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none; border:0 none; z-index: 99999;}\n/* footer */\n.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}\n.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0;border-collapse: separate;}\n.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 20px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}\n.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}\n/* Pager*/\n.ui-jqgrid .ui-jqgrid-pager { border-left: 0 none !important;border-right: 0 none !important; border-bottom: 0 none !important; border-top: 0 none; margin: 0 !important; padding: 0 !important; position: relative; height: auto; min-height: 28px; white-space: nowrap;overflow: hidden;font-size:11px; z-index:101}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, .ui-jqgrid .ui-jqgrid-pager .ui-pager-control {position: relative;border-left: 0;border-bottom: 0;border-top: 0; height: 28px;}\n.ui-jqgrid .ui-pg-table {position: relative; padding: 1px 0; width:auto; margin: 0;}\n.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:0px 1px;}\n.ui-jqgrid .ui-pg-button  { height:auto}\n.ui-jqgrid .ui-pg-button span { display: block; margin: 2px; float:left;}\n.ui-jqgrid .ui-pg-button:hover { padding: 0;}\n.ui-jqgrid .ui-state-disabled:hover {padding:0px;}\n.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:14px;width: auto;font-size:.9em; margin:0;line-height: inherit;border: none; padding: 3px 2px}\n.ui-jqgrid .ui-pg-selbox, .ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {font-size:.9em; line-height:inherit; display:block; height:19px; margin: 0; padding: 3px 0px; border:none;}\n.ui-jqgrid .ui-separator {height: 18px; border-left: 2px solid #ccc ;}\n.ui-separator-li {height: 2px; border : none;border-top: 2px solid #ccc ; margin: 0; padding: 0; width:100%}\n.ui-jqgrid  .dropdownmenu {\n\tpadding: 3px 0 3px 0;\n\tmargin-left: 4px;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div\n{padding:1px 0;float:left;position:relative; line-height: 20px;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button\n{ cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon\n{float:left;margin: 2px; width:18px;}\n.ui-jqgrid td input, .ui-jqgrid td select, .ui-jqgrid td textarea { margin: 0; padding-top:5px;padding-bottom: 5px;}\n.ui-jqgrid td textarea {width:auto;height:auto;}\n.ui-jqgrid .ui-jqgrid-toppager {border-left: 0 none !important;border-right: 0 none !important; border-top: 0 none !important; margin: 0 !important; padding: 0 !important; position: relative;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,\n.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table \n{\n\twidth:100%;\n\ttable-layout:fixed;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info\n{ \n\tfont-weight: normal;\n\theight:auto; \n\tmargin-top:3px;\n\tmargin-right:4px;\n\tdisplay: inline;\n}\n.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,\n.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager\n{\n\ttable-layout:auto;\n\theight:100%;\n}\n.ui-jqgrid .ui-jqgrid-pager .navtable,\n.ui-jqgrid .ui-jqgrid-toppager .navtable\n{\n\tfloat:left;\n\ttable-layout:auto;\n\theight:100%;\n}\n\n/*.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div {padding:1px 0;float:left;position:relative; line-height: 20px; margin-right:3px;}\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button { cursor:pointer; }\n.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon {float:left;margin: 2px; width:18px;}\n*/\n\n/*subgrid*/\n.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}\n.ui-jqgrid .ui-subgrid {margin:0;padding:0; width:100%;}\n.ui-jqgrid .ui-subgrid table {table-layout: fixed;}\n.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}\n.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0 none !important; border-left: 0 none !important;}\n.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0 1px 1px 0;}\n.ui-jqgrid .ui-th-subgrid {height:20px;}\n/* loading */\n.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important; font-size:11px;}\n.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}\n/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */\n* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;}\n/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n/* end loading div */\n/* toolbar */\n.ui-jqgrid .ui-userdata {border-left: 0 none;    border-right: 0 none;\theight : 27px;overflow: hidden;\t}\n/*Modal Window */\n.ui-jqdialog { font-size:11px !important; }\n.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}\n.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative; height:20px;}\n.ui-jqdialog .ui-jqdialog-title { margin: .3em .2em .2em .2em;} \n.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -12px 0 0 0; padding: 1px; height: 18px; cursor:pointer;}\n\n.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }\n.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }\n.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}\n.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}\n.ui-jqdialog>.ui-resizable-se { bottom: -3px; right: -3px}\n.ui-jqgrid>.ui-resizable-se { bottom: -3px; right: -3px }\n/* end Modal window*/\n/* Form edit */\n.ui-jqdialog-content .FormGrid {margin: 0; overflow:auto;position:relative;}\n.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0;}\n.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0;}\n.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0;}\n.EditTable td textarea { width:auto; height:auto;}\n.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0 none;border-left: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content td.navButton {text-align: center; border-left: 0 none;border-top: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}\n.ui-jqdialog-content input.FormElement {padding: .5em .3em; margin-bottom: 3px}\n.ui-jqdialog-content select.FormElement {padding:.3em; margin-bottom: 3px;}\n.ui-jqdialog-content .data-line {padding-top:.1em;border: 0 none;}\n\n.ui-jqdialog-content .CaptionTD {vertical-align: middle;border: 0 none; padding: 2px;white-space: nowrap;}\n.ui-jqdialog-content .DataTD {padding: 2px; border: 0 none; vertical-align: top;}\n.ui-jqdialog-content .form-view-data {white-space:pre}\n.fm-button { height: 18px; display: inline-block; margin:2px 4px 0 0; padding: .6em .5em .2em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }\n.fm-button-icon-left { padding-left: 1.9em; }\n.fm-button-icon-right { padding-right: 1.9em; }\n.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }\n.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}\n#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }\n.ViewTable {\n\tborder-width: 0; \n\tborder-style: none; \n\tborder-spacing: 1px;\n\tpadding: 4px;\n\ttable-layout: fixed;\n}\n.ViewTable .CaptionTD, .ViewTable .DataTD {padding : 4px;} \n/* End Eorm edit */\n/*cell edit*/\n.ui-jqgrid .edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0 none;}\n/* inline edit actions button*/\n.ui-inline-del.ui-state-hover span, .ui-inline-edit.ui-state-hover span,\n.ui-inline-save.ui-state-hover span, .ui-inline-cancel.ui-state-hover span {\n    margin: -1px;\n}\n.ui-inline-del, .ui-inline-cancel {\n    margin-left: 8px;\n}\n\n.ui-jqgrid .inline-edit-cell {\n\tpadding: 4px 0px 4px 4px;\n}\n/* Tree Grid */\n.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}\n.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}\n.ui-jqgrid .tree-plus {position: absolute;\theight: 18px; width: 18px;\toverflow: hidden;}\n.ui-jqgrid .tree-leaf {position: absolute;\theight: 18px; width: 18px;overflow: hidden;}\n.ui-jqgrid .treeclick {cursor: pointer;}\n/* moda dialog */\n* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;}\n/*\t width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/\n.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}\n/* RTL Support */\n.ui-jqgrid .ui-jqgrid-caption-rtl {text-align: right;}\n.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right;}\n.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0;}\n.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0 -1px -3px;}\n.ui-jqgrid .ui-sort-rtl {left:0;}\n.ui-jqgrid .tree-wrap-ltr {float: left;}\n.ui-jqgrid .tree-wrap-rtl {float: right;}\n.ui-jqgrid .ui-ellipsis {-moz-text-overflow:ellipsis;text-overflow:ellipsis;}\n\n/* Toolbar Search Menu , Nav menu*/\n.ui-search-menu, \n.ui-nav-menu {\n\tposition: absolute; \n\tpadding: 2px 5px; \n\tz-index:99999;\n\t-webkit-box-shadow: 7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\t-moz-box-shadow:    7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n\tbox-shadow:         7px 7px 5px 0px rgba(50, 50, 50, 0.75);\n}\n.ui-search-menu.ui-menu .ui-menu-item,\n.ui-nav-menu.ui-menu .ui-menu-item\n{ \n\tlist-style-image: none; \n\tpadding-right: 0; \n\tpadding-left: 0; \n}\n.ui-search-menu.ui-menu .ui-menu-item a, \n.ui-nav-menu.ui-menu .ui-menu-item a \n{ \n\tdisplay: block; \n}\n.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,\n.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover \n{ \n\tmargin: -1px; \n\tfont-weight: normal; \n}\n.ui-jqgrid .ui-search-table { padding: 0; border: 0 none; height:20px; width:100%;}\n.ui-jqgrid .ui-search-table .ui-search-oper { width:20px; }\na.g-menu-item, a.soptclass, a.clearsearchclass { cursor: pointer; } \n.ui-jqgrid .ui-jqgrid-view input,\n.ui-jqgrid .ui-jqgrid-view select,\n.ui-jqgrid .ui-jqgrid-view textarea,\n.ui-jqgrid .ui-jqgrid-view button {\n    font-size: 11px;\n}\n.ui-jqgrid .ui-scroll-popup {width: 95px;}\n.ui-search-table select,\n.ui-search-table input \n{\n\tpadding: 4px 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-separator {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n\n.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-pg-div > .ui-icon {\n\tmargin-left: 3px;\n\tmargin-right: 3px;\n}\n/* Column menu */\n.ui-jqgrid .ui-jqgrid-htable .colmenu {\n\tposition:absolute;\n\tright:1px;\n\theight:100%;\n\tcolor : black;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {\n\tright:auto;\n\tleft : 1px;\n}\n.ui-jqgrid .ui-jqgrid-htable .colmenuspan {\n\tdisplay:inline-block;\n}\n\n.ui-jqgrid .ui-jqgrid-htable .ui-th-div {\n\theight:17px;\n\tmargin-top:5px;\n\tdisplay:inine-block;\n}\n.column-menu, .ui-search-menu {\n\tpadding: 10px 10px;\n}\n.column-menu .divider {\n\tbackground-color: #e5e5e5; \n\theight: 1px;\n\tpadding:0 0;\n\tmargin: 5px 0;  \n\toverflow: hidden;\n}\n.ui-menu-item .ui-common-table .menu_icon {\n\twhite-space: pre;\n\tpadding-right: 4px;\n\tpadding-left: 4px;\n\twidth : auto;\n}\n.ui-menu-item .ui-common-table .menu_icon .ui-icon {\n\tdisplay : inline-block;\n\tposition: relative;\n}\ntd.menu_text {\n\twidth: auto;\n\twhite-space: nowrap;\n}\n.ui-search-menu .ui-menu-item {\n\tpadding : 0 0;\n}\n.ui-col-menu .ui-menu-item td.menu_text{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left : 1px;\n}\n.ui-col-menu .ui-menu-item td.menu_icon{\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tvertical-align: middle;\n}\n.ui-col-menu .ui-menu-item td.menu_icon input{\n\tmargin: 2px 0;\n\t\n}\n#search_menu .ui-menu-item div {\n\tmargin: 3px 0;\n\twhite-space: nowrap;\n}\n\n#search_menu .ui-menu-item div input,\n#search_menu .ui-menu-item div select\n{\n\tpadding: 3px 2px;\n}\n#search_menu  .search_buttons {\n\tdisplay:inline-block;\n\twidth:50%;\n}\n#column_menu.ui-menu .ui-menu-item {\n\tposition :static;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/css/ui.multiselect.css",
    "content": "/* Multiselect\n----------------------------------*/\n\n.ui-multiselect { border: solid 1px; font-size: 0.8em; }\n.ui-multiselect ul { -moz-user-select: none; }\n.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }\n.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}\n.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }\n\n.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }\n.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }\n.ui-multiselect ul.selected li { }\n\n.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }\n.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }\n.ui-multiselect ul.available li { padding-left: 10px; }\n \n.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}\n.ui-multiselect .ui-state-hover { border: none; }\n.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}\n \n.ui-multiselect .add-all { float: right; padding: 7px;}\n.ui-multiselect .remove-all { float: right; padding: 7px;}\n.ui-multiselect .search { float: left; padding: 4px;}\n.ui-multiselect .count { float: left; padding: 7px;}\n\n.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }\n.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }\n \n.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.base.js",
    "content": "// ==ClosureCompiler==\n// @compilation_level SIMPLE_OPTIMIZATIONS\n\n/**\n * @license Guriddo jqGrid JS 5.2.0 (2016-11-21)\n * Copyright (c) 2008, Tony Tomov, tony@trirand.com\n * \n * License: http://guriddo.net/?page_id=103334\n */\n//jsHint options\n/*jshint evil:true, eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, window, define, navigator, document */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"defaults\")) {\n\t$.jgrid.defaults = {};\n}\n$.extend($.jgrid,{\n\tversion : \"5.2.0\",\n\thtmlDecode : function(value){\n\t\tif(value && (value==='&nbsp;' || value==='&#160;' || (value.length===1 && value.charCodeAt(0)===160))) { return \"\";}\n\t\treturn !value ? value : String(value).replace(/&gt;/g, \">\").replace(/&lt;/g, \"<\").replace(/&quot;/g, '\"').replace(/&amp;/g, \"&\");\t\t\n\t},\n\thtmlEncode : function (value){\n\t\treturn !value ? value : String(value).replace(/&/g, \"&amp;\").replace(/\\\"/g, \"&quot;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n\t},\n\ttemplate : function(format){ //jqgformat\n\t\tvar args = $.makeArray(arguments).slice(1), j, al = args.length;\n\t\tif(format==null) { format = \"\"; }\n\t\treturn format.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\tif(!isNaN(parseInt(i,10))) {\n\t\t\t\treturn args[parseInt(i,10)];\n\t\t\t}\n\t\t\tfor(j=0; j < al;j++) {\n\t\t\t\tif($.isArray(args[j])) {\n\t\t\t\t\tvar nmarr = args[ j ],\n\t\t\t\t\tk = nmarr.length;\n\t\t\t\t\twhile(k--) {\n\t\t\t\t\t\tif(i===nmarr[k].nm) {\n\t\t\t\t\t\t\treturn nmarr[k].v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}, \n\tmsie : function () {\n\t\treturn $.jgrid.msiever() > 0;\n\t},\n\tmsiever : function () {\n\t\tvar rv =0,\n\t\tsAgent = window.navigator.userAgent,\n\t\tIdx = sAgent.indexOf(\"MSIE\");\n\n\t\tif (Idx > 0)  {\n\t\t\trv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(\".\", Idx)));\n\t\t} else if ( !!navigator.userAgent.match(/Trident\\/7\\./) ) {\n\t\t\trv = 11;\n\t\t}\n\t\treturn rv;\n\t},\n\tgetCellIndex : function (cell) {\n\t\tvar c = $(cell);\n\t\tif (c.is('tr')) { return -1; }\n\t\tc = (!c.is('td') && !c.is('th') ? c.closest(\"td,th\") : c)[0];\n\t\tif ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); }\n\t\treturn c.cellIndex;\n\t},\n\tstripHtml : function(v) {\n\t\tv = String(v);\n\t\tvar regexp = /<(\"[^\"]*\"|'[^']*'|[^'\">])*>/gi;\n\t\tif (v) {\n\t\t\tv = v.replace(regexp,\"\");\n\t\t\treturn (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\\\"/g,\"'\") : \"\";\n\t\t} \n\t\t\treturn v;\n\t},\n\tstripPref : function (pref, id) {\n\t\tvar obj = $.type( pref );\n\t\tif( obj === \"string\" || obj === \"number\") {\n\t\t\tpref =  String(pref);\n\t\t\tid = pref !== \"\" ? String(id).replace(String(pref), \"\") : id;\n\t\t}\n\t\treturn id;\n\t},\n\tuseJSON : true,\n\tparse : function(jsonString) {\n\t\tvar js = jsonString;\n\t\tif (js.substr(0,9) === \"while(1);\") { js = js.substr(9); }\n\t\tif (js.substr(0,2) === \"/*\") { js = js.substr(2,js.length-4); }\n\t\tif(!js) { js = \"{}\"; }\n\t\treturn ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ?\n\t\t\tJSON.parse(js) :\n\t\t\teval('(' + js + ')');\n\t},\n\tparseDate : function(format, date, newformat, opts) {\n\t\tvar\ttoken = /\\\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,\n\t\ttimezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\n\t\ttimezoneClip = /[^-+\\dA-Z]/g,\n\t\tmsDateRegExp = new RegExp(\"^\\/Date\\\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\\\)\\/$\"),\n\t\tmsMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null),\n\t\tpad = function (value, length) {\n\t\t\tvalue = String(value);\n\t\t\tlength = parseInt(length,10) || 2;\n\t\t\twhile (value.length < length)  { value = '0' + value; }\n\t\t\treturn value;\n\t\t},\n\t\tts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},\n\t\ttimestamp=0, dM, k,hl,\n\t\th12to24 = function(ampm, h){\n\t\t\tif (ampm === 0){ if (h === 12) { h = 0;} }\n\t\t\telse { if (h !== 12) { h += 12; } }\n\t\t\treturn h;\n\t\t},\n\t\toffset =0;\n\t\tif(opts === undefined) {\n\t\t\topts = $.jgrid.getRegional(this, \"formatter.date\");//$.jgrid.formatter.date;\n\t\t}\n\t\t// old lang files\n\t\tif(opts.parseRe === undefined ) {\n\t\t\topts.parseRe = /[#%\\\\\\/:_;.,\\t\\s-]/;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; }\n\t\tif(date && date != null) {\n\t\t\tif( !isNaN( date - 0 ) && String(format).toLowerCase() === \"u\") {\n\t\t\t\t//Unix timestamp\n\t\t\t\ttimestamp = new Date( parseFloat(date)*1000 );\n\t\t\t} else if(date.constructor === Date) {\n\t\t\t\ttimestamp = date;\n\t\t\t\t// Microsoft date format support\n\t\t\t} else if( msMatch !== null ) {\n\t\t\t\ttimestamp = new Date(parseInt(msMatch[1], 10));\n\t\t\t\tif (msMatch[3]) {\n\t\t\t\t\toffset = Number(msMatch[5]) * 60 + Number(msMatch[6]);\n\t\t\t\t\toffset *= ((msMatch[4] === '-') ? 1 : -1);\n\t\t\t\t\toffset -= timestamp.getTimezoneOffset();\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//Support ISO8601Long that have Z at the end to indicate UTC timezone\n\t\t\t\tif(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') {\n\t\t\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\t\t}\n\t\t\t\tdate = String(date).replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\tformat = format.replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\t// parsing for month names\n\t\t\t\tfor(k=0,hl=format.length;k<hl;k++){\n\t\t\t\t\tswitch ( format[k] ) {\n\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'F':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames,12);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tformat[k] = 'm';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'j': \n\t\t\t\t\t\t\tformat[k] = 'd';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'A':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM-2;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tts.h = parseInt(date[k], 10);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(date[k] !== undefined) {\n\t\t\t\t\t\tts[format[k].toLowerCase()] = parseInt(date[k],10);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.f) {ts.m = ts.f;}\n\t\t\t\tif( ts.m === 0 && ts.y === 0 && ts.d === 0) {\n\t\t\t\t\treturn \"&#160;\" ;\n\t\t\t\t}\n\t\t\t\tts.m = parseInt(ts.m,10)-1;\n\t\t\t\tvar ty = ts.y;\n\t\t\t\tif (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;}\n\t\t\t\telse if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;}\n\t\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t\t\t//Apply offset to show date as local time.\n\t\t\t\tif(offset > 0) {\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t}\n\t\tif(opts.userLocalTime && offset === 0) {\n\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\tif( offset > 0 ) {\n\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t}\n\t\t}\n\t\tif( newformat === undefined ) {\n\t\t\treturn timestamp;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(newformat) )  {\n\t\t\tnewformat = opts.masks[newformat];\n\t\t} else if ( !newformat ) {\n\t\t\tnewformat = 'Y-m-d';\n\t\t}\n\t\tvar \n\t\t\tG = timestamp.getHours(),\n\t\t\ti = timestamp.getMinutes(),\n\t\t\tj = timestamp.getDate(),\n\t\t\tn = timestamp.getMonth() + 1,\n\t\t\to = timestamp.getTimezoneOffset(),\n\t\t\ts = timestamp.getSeconds(),\n\t\t\tu = timestamp.getMilliseconds(),\n\t\t\tw = timestamp.getDay(),\n\t\t\tY = timestamp.getFullYear(),\n\t\t\tN = (w + 6) % 7 + 1,\n\t\t\tz = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,\n\t\t\tflags = {\n\t\t\t\t// Day\n\t\t\t\td: pad(j),\n\t\t\t\tD: opts.dayNames[w],\n\t\t\t\tj: j,\n\t\t\t\tl: opts.dayNames[w + 7],\n\t\t\t\tN: N,\n\t\t\t\tS: opts.S(j),\n\t\t\t\t//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',\n\t\t\t\tw: w,\n\t\t\t\tz: z,\n\t\t\t\t// Week\n\t\t\t\tW: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),\n\t\t\t\t// Month\n\t\t\t\tF: opts.monthNames[n - 1 + 12],\n\t\t\t\tm: pad(n),\n\t\t\t\tM: opts.monthNames[n - 1],\n\t\t\t\tn: n,\n\t\t\t\tt: '?',\n\t\t\t\t// Year\n\t\t\t\tL: '?',\n\t\t\t\to: '?',\n\t\t\t\tY: Y,\n\t\t\t\ty: String(Y).substring(2),\n\t\t\t\t// Time\n\t\t\t\ta: G < 12 ? opts.AmPm[0] : opts.AmPm[1],\n\t\t\t\tA: G < 12 ? opts.AmPm[2] : opts.AmPm[3],\n\t\t\t\tB: '?',\n\t\t\t\tg: G % 12 || 12,\n\t\t\t\tG: G,\n\t\t\t\th: pad(G % 12 || 12),\n\t\t\t\tH: pad(G),\n\t\t\t\ti: pad(i),\n\t\t\t\ts: pad(s),\n\t\t\t\tu: u,\n\t\t\t\t// Timezone\n\t\t\t\te: '?',\n\t\t\t\tI: '?',\n\t\t\t\tO: (o > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\n\t\t\t\tP: '?',\n\t\t\t\tT: (String(timestamp).match(timezone) || [\"\"]).pop().replace(timezoneClip, \"\"),\n\t\t\t\tZ: '?',\n\t\t\t\t// Full Date/Time\n\t\t\t\tc: '?',\n\t\t\t\tr: '?',\n\t\t\t\tU: Math.floor(timestamp / 1000)\n\t\t\t};\n\t\treturn newformat.replace(token, function ($0) {\n\t\t\treturn flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1);\n\t\t});\n\t},\n\tjqID : function(sid){\n\t\treturn String(sid).replace(/[!\"#$%&'()*+,.\\/:; <=>?@\\[\\\\\\]\\^`{|}~]/g,\"\\\\$&\");\n\t},\n\tguid : 1,\n\tuidPref: 'jqg',\n\trandId : function( prefix )\t{\n\t\treturn (prefix || $.jgrid.uidPref) + ($.jgrid.guid++);\n\t},\n\tgetAccessor : function(obj, expr) {\n\t\tvar ret,p,prm = [], i;\n\t\tif( typeof expr === 'function') { return expr(obj); }\n\t\tret = obj[expr];\n\t\tif(ret===undefined) {\n\t\t\ttry {\n\t\t\t\tif ( typeof expr === 'string' ) {\n\t\t\t\t\tprm = expr.split('.');\n\t\t\t\t}\n\t\t\t\ti = prm.length;\n\t\t\t\tif( i ) {\n\t\t\t\t\tret = obj;\n\t\t\t\t\twhile (ret && i--) {\n\t\t\t\t\t\tp = prm.shift();\n\t\t\t\t\t\tret = ret[p];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t\treturn ret;\n\t},\n\tgetXmlData: function (obj, expr, returnObj) {\n\t\tvar ret, m = typeof expr === 'string' ? expr.match(/^(.*)\\[(\\w+)\\]$/) : null;\n\t\tif (typeof expr === 'function') { return expr(obj); }\n\t\tif (m && m[2]) {\n\t\t\t// m[2] is the attribute selector\n\t\t\t// m[1] is an optional element selector\n\t\t\t// examples: \"[id]\", \"rows[page]\"\n\t\t\treturn m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]);\n\t\t}\n\t\t\tret = $(expr, obj);\n\t\t\tif (returnObj) { return ret; }\n\t\t\t//$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid\n\t\t\treturn ret.length > 0 ? $(ret).text() : undefined;\n\t},\n\tcellWidth : function () {\n\t\tvar $testDiv = $(\"<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>\"),\n\t\ttestCell = $testDiv.appendTo(\"body\")\n\t\t\t.find(\"td\")\n\t\t\t.width();\n\t\t$testDiv.remove();\n\t\treturn Math.abs(testCell-5) > 0.1;\n\t},\n\tisLocalStorage : function () {\n\t\ttry {\n\t\t\treturn 'localStorage' in window && window.localStorage !== null;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t},\n\tgetRegional : function(inst, param, def_val) {\n\t\tvar ret;\n\t\tif(def_val !== undefined) {\n\t\t\treturn def_val;\n\t\t}\n\t\tif(inst.p && inst.p.regional && $.jgrid.regional) {\n\t\t\t\tret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param);\n\t\t}\n\t\tif(ret === undefined ) {\n\t\t\tret = $.jgrid.getAccessor( $.jgrid, param);\n\t\t}\n\t\treturn ret;\n\t},\n\tisMobile : function() {\n\t\ttry {\n\t\t\tif(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t} catch(e)\t{ \n\t\t\treturn false; \n\t\t}\t\n\t},\n\tcell_width : true,\n\tajaxOptions: {},\n\tfrom : function(source){\n\t\t// Original Author Hugo Bonacci\n\t\t// License MIT http://jlinq.codeplex.com/license\n\t\tvar $t = this,\n\t\tQueryObject=function(d,q){\n\t\tif(typeof d===\"string\"){\n\t\t\td=$.data(d);\n\t\t}\n\t\tvar self=this,\n\t\t_data=d,\n\t\t_usecase=true,\n\t\t_trim=false,\n\t\t_query=q,\n\t\t_stripNum = /[\\$,%]/g,\n\t\t_lastCommand=null,\n\t\t_lastField=null,\n\t\t_orDepth=0,\n\t\t_negate=false,\n\t\t_queuedOperator=\"\",\n\t\t_sorting=[],\n\t\t_useProperties=true;\n\t\tif(typeof d===\"object\"&&d.push) {\n\t\t\tif(d.length>0){\n\t\t\t\tif(typeof d[0]!==\"object\"){\n\t\t\t\t\t_useProperties=false;\n\t\t\t\t}else{\n\t\t\t\t\t_useProperties=true;\n\t\t\t\t}\n\t\t\t}\n\t\t}else{\n\t\t\tthrow \"data provides is not an array\";\n\t\t}\n\t\tthis._hasData=function(){\n\t\t\treturn _data===null?false:_data.length===0?false:true;\n\t\t};\n\t\tthis._getStr=function(s){\n\t\t\tvar phrase=[];\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\"jQuery.trim(\");\n\t\t\t}\n\t\t\tphrase.push(\"String(\"+s+\")\");\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\")\");\n\t\t\t}\n\t\t\tif(!_usecase){\n\t\t\t\tphrase.push(\".toLowerCase()\");\n\t\t\t}\n\t\t\treturn phrase.join(\"\");\n\t\t};\n\t\tthis._strComp=function(val){\n\t\t\tif(typeof val===\"string\"){\n\t\t\t\treturn\".toString()\";\n\t\t\t}\n\t\t\treturn\"\";\n\t\t};\n\t\tthis._group=function(f,u){\n\t\t\treturn({field:f.toString(),unique:u,items:[]});\n\t\t};\n\t\tthis._toStr=function(phrase){\n\t\t\tif(_trim){\n\t\t\t\tphrase=$.trim(phrase);\n\t\t\t}\n\t\t\tphrase=phrase.toString().replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"');\n\t\t\treturn _usecase ? phrase : phrase.toLowerCase();\n\t\t};\n\t\tthis._funcLoop=function(func){\n\t\t\tvar results=[];\n\t\t\t$.each(_data,function(i,v){\n\t\t\t\tresults.push(func(v));\n\t\t\t});\n\t\t\treturn results;\n\t\t};\n\t\tthis._append=function(s){\n\t\t\tvar i;\n\t\t\tif(_query===null){\n\t\t\t\t_query=\"\";\n\t\t\t} else {\n\t\t\t\t_query+=_queuedOperator === \"\" ? \" && \" :_queuedOperator;\n\t\t\t}\n\t\t\tfor (i=0;i<_orDepth;i++){\n\t\t\t\t_query+=\"(\";\n\t\t\t}\n\t\t\tif(_negate){\n\t\t\t\t_query+=\"!\";\n\t\t\t}\n\t\t\t_query+=\"(\"+s+\")\";\n\t\t\t_negate=false;\n\t\t\t_queuedOperator=\"\";\n\t\t\t_orDepth=0;\n\t\t};\n\t\tthis._setCommand=function(f,c){\n\t\t\t_lastCommand=f;\n\t\t\t_lastField=c;\n\t\t};\n\t\tthis._resetNegate=function(){\n\t\t\t_negate=false;\n\t\t};\n\t\tthis._repeatCommand=function(f,v){\n\t\t\tif(_lastCommand===null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\tif(f!==null&&v!==null){\n\t\t\t\treturn _lastCommand(f,v);\n\t\t\t}\n\t\t\tif(_lastField===null){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\tif(!_useProperties){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\treturn _lastCommand(_lastField,f);\n\t\t};\n\t\tthis._equals=function(a,b){\n\t\t\treturn(self._compare(a,b,1)===0);\n\t\t};\n\t\tthis._compare=function(a,b,d){\n\t\t\tvar toString = Object.prototype.toString;\n\t\t\tif( d === undefined) { d = 1; }\n\t\t\tif(a===undefined) { a = null; }\n\t\t\tif(b===undefined) { b = null; }\n\t\t\tif(a===null && b===null){\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(a===null&&b!==null){\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif(a!==null&&b===null){\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') {\n\t\t\t\tif (a < b) { return -d; }\n\t\t\t\tif (a > b) { return d; }\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(!_usecase && typeof a !== \"number\" && typeof b !== \"number\" ) {\n\t\t\t\ta=String(a);\n\t\t\t\tb=String(b);\n\t\t\t}\n\t\t\tif(a<b){return -d;}\n\t\t\tif(a>b){return d;}\n\t\t\treturn 0;\n\t\t};\n\t\tthis._performSort=function(){\n\t\t\tif(_sorting.length===0){return;}\n\t\t\t_data=self._doSort(_data,0);\n\t\t};\n\t\tthis._doSort=function(d,q){\n\t\t\tvar by=_sorting[q].by,\n\t\t\tdir=_sorting[q].dir,\n\t\t\ttype = _sorting[q].type,\n\t\t\tdfmt = _sorting[q].datefmt,\n\t\t\tsfunc = _sorting[q].sfunc;\n\t\t\tif(q===_sorting.length-1){\n\t\t\t\treturn self._getOrder(d, by, dir, type, dfmt, sfunc);\n\t\t\t}\n\t\t\tq++;\n\t\t\tvar values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted;\n\t\t\tfor(i=0;i<values.length;i++){\n\t\t\t\tsorted=self._doSort(values[i].items,q);\n\t\t\t\tfor(j=0;j<sorted.length;j++){\n\t\t\t\t\tresults.push(sorted[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis._getOrder=function(data,by,dir,type, dfmt, sfunc){\n\t\t\tvar sortData=[],_sortData=[], newDir = dir===\"a\" ? 1 : -1, i,ab,j,\n\t\t\tfindSortKey;\n\n\t\t\tif(type === undefined ) { type = \"text\"; }\n\t\t\tif (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\tvar key = parseFloat( String($cell).replace(_stripNum, ''));\n\t\t\t\t\treturn isNaN(key) ? Number.NEGATIVE_INFINITY : key;\n\t\t\t\t};\n\t\t\t} else if (type==='int' || type==='integer') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY;\n\t\t\t\t};\n\t\t\t} else if(type === 'date' || type === 'datetime') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $.jgrid.parseDate.call($t, dfmt, $cell).getTime();\n\t\t\t\t};\n\t\t\t} else if($.isFunction(type)) {\n\t\t\t\tfindSortKey = type;\n\t\t\t} else {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\t$cell = $cell ? $.trim(String($cell)) : \"\";\n\t\t\t\t\treturn _usecase ? $cell : $cell.toLowerCase();\n\t\t\t\t};\n\t\t\t}\n\t\t\t$.each(data,function(i,v){\n\t\t\t\tab = by!==\"\" ? $.jgrid.getAccessor(v,by) : v;\n\t\t\t\tif(ab === undefined) { ab = \"\"; }\n\t\t\t\tab = findSortKey(ab, v);\n\t\t\t\t_sortData.push({ 'vSort': ab,'index':i});\n\t\t\t});\n\t\t\tif($.isFunction(sfunc)) {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn sfunc.call(this,a.vSort, b.vSort, newDir, a, b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn self._compare(a.vSort, b.vSort,newDir);\n\t\t\t\t});\n\t\t\t}\n\t\t\tj=0;\n\t\t\tvar nrec= data.length;\n\t\t\t// overhead, but we do not change the original data.\n\t\t\twhile(j<nrec) {\n\t\t\t\ti = _sortData[j].index;\n\t\t\t\tsortData.push(data[i]);\n\t\t\t\tj++;\n\t\t\t}\n\t\t\treturn sortData;\n\t\t};\n\t\tthis._getGroup=function(data,by,dir,type, dfmt){\n\t\t\tvar results=[],\n\t\t\tgroup=null,\n\t\t\tlast=null, val;\n\t\t\t$.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){\n\t\t\t\tval = $.jgrid.getAccessor(v, by);\n\t\t\t\tif(val == null) { val = \"\"; }\n\t\t\t\tif(!self._equals(last,val)){\n\t\t\t\t\tlast=val;\n\t\t\t\t\tif(group !== null){\n\t\t\t\t\t\tresults.push(group);\n\t\t\t\t\t}\n\t\t\t\t\tgroup=self._group(by,val);\n\t\t\t\t}\n\t\t\t\tgroup.items.push(v);\n\t\t\t});\n\t\t\tif(group !== null){\n\t\t\t\tresults.push(group);\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis.ignoreCase=function(){\n\t\t\t_usecase=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.useCase=function(){\n\t\t\t_usecase=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.trim=function(){\n\t\t\t_trim=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.noTrim=function(){\n\t\t\t_trim=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.execute=function(){\n\t\t\tvar match=_query, results=[];\n\t\t\tif(match === null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\t$.each(_data,function(){\n\t\t\t\tif(eval(match)){results.push(this);}\n\t\t\t});\n\t\t\t_data=results;\n\t\t\treturn self;\n\t\t};\n\t\tthis.data=function(){\n\t\t\treturn _data;\n\t\t};\n\t\tthis.select=function(f){\n\t\t\tself._performSort();\n\t\t\tif(!self._hasData()){ return[]; }\n\t\t\tself.execute();\n\t\t\tif($.isFunction(f)){\n\t\t\t\tvar results=[];\n\t\t\t\t$.each(_data,function(i,v){\n\t\t\t\t\tresults.push(f(v));\n\t\t\t\t});\n\t\t\t\treturn results;\n\t\t\t}\n\t\t\treturn _data;\n\t\t};\n\t\tthis.hasMatch=function(){\n\t\t\tif(!self._hasData()) { return false; }\n\t\t\tself.execute();\n\t\t\treturn _data.length>0;\n\t\t};\n\t\tthis.andNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.and(f,v,x);\n\t\t};\n\t\tthis.orNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.or(f,v,x);\n\t\t};\n\t\tthis.not=function(f,v,x){\n\t\t\treturn self.andNot(f,v,x);\n\t\t};\n\t\tthis.and=function(f,v,x){\n\t\t\t_queuedOperator=\" && \";\n\t\t\tif(f===undefined){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.or=function(f,v,x){\n\t\t\t_queuedOperator=\" || \";\n\t\t\tif(f===undefined) { return self; }\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.orBegin=function(){\n\t\t\t_orDepth++;\n\t\t\treturn self;\n\t\t};\n\t\tthis.orEnd=function(){\n\t\t\tif (_query !== null){\n\t\t\t\t_query+=\")\";\n\t\t\t}\n\t\t\treturn self;\n\t\t};\n\t\tthis.isNot=function(f){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.is(f);\n\t\t};\n\t\tthis.is=function(f){\n\t\t\tself._append('this.'+f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis._compareValues=function(func,f,v,how,t){\n\t\t\tvar fld;\n\t\t\tif(_useProperties){\n\t\t\t\tfld='jQuery.jgrid.getAccessor(this,\\''+f+'\\')';\n\t\t\t}else{\n\t\t\t\tfld='this';\n\t\t\t}\n\t\t\tif(v===undefined) { v = null; }\n\t\t\t//var val=v===null?f:v,\n\t\t\tvar val =v,\n\t\t\tswst = t.stype === undefined ? \"text\" : t.stype;\n\t\t\tif(v !== null) {\n\t\t\tswitch(swst) {\n\t\t\t\tcase 'int':\n\t\t\t\tcase 'integer':\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseInt('+fld+',10)';\n\t\t\t\t\tval = 'parseInt('+val+',10)';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'float':\n\t\t\t\tcase 'number':\n\t\t\t\tcase 'numeric':\n\t\t\t\t\tval = String(val).replace(_stripNum, '');\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseFloat('+fld+')';\n\t\t\t\t\tval = 'parseFloat('+val+')';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':\n\t\t\t\tcase 'datetime':\n\t\t\t\t\tval = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime());\n\t\t\t\t\tfld = 'jQuery.jgrid.parseDate.call(jQuery(\"#'+$.jgrid.jqID($t.p.id)+'\")[0],\"'+t.srcfmt+'\",'+fld+').getTime()';\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tfld=self._getStr(fld);\n\t\t\t\t\tval=self._getStr('\"'+self._toStr(val)+'\"');\n\t\t\t}\n\t\t\t}\n\t\t\tself._append(fld+' '+how+' '+val);\n\t\t\tself._setCommand(func,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.equals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"==\",t);\n\t\t};\n\t\tthis.notEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"!==\",t);\n\t\t};\n\t\tthis.isNull = function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,null,\"===\",t);\n\t\t};\n\t\tthis.greater=function(f,v,t){\n\t\t\treturn self._compareValues(self.greater,f,v,\">\",t);\n\t\t};\n\t\tthis.less=function(f,v,t){\n\t\t\treturn self._compareValues(self.less,f,v,\"<\",t);\n\t\t};\n\t\tthis.greaterOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.greaterOrEquals,f,v,\">=\",t);\n\t\t};\n\t\tthis.lessOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.lessOrEquals,f,v,\"<=\",t);\n\t\t};\n\t\tthis.startsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length : val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(v)+'\"'));\n\t\t\t}else{\n\t\t\t\tif (v!=null) { length=_trim?$.trim(v.toString()).length:v.toString().length; }\n\t\t\t\tself._append(self._getStr('this')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(f)+'\"'));\n\t\t\t}\n\t\t\tself._setCommand(self.startsWith,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.endsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length:val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.length-'+length+','+length+') == \"'+self._toStr(v)+'\"');\n\t\t\t} else {\n\t\t\t\tself._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-\"'+self._toStr(f)+'\".length,\"'+self._toStr(f)+'\".length) == \"'+self._toStr(f)+'\"');\n\t\t\t}\n\t\t\tself._setCommand(self.endsWith,f);self._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.contains=function(f,v){\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.indexOf(\"'+self._toStr(v)+'\",0) > -1');\n\t\t\t}else{\n\t\t\t\tself._append(self._getStr('this')+'.indexOf(\"'+self._toStr(f)+'\",0) > -1');\n\t\t\t}\n\t\t\tself._setCommand(self.contains,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.groupBy=function(by,dir,type, datefmt){\n\t\t\tif(!self._hasData()){\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn self._getGroup(_data,by,dir,type, datefmt);\n\t\t};\n\t\tthis.orderBy=function(by,dir,stype, dfmt, sfunc){\n\t\t\tdir = dir == null ? \"a\" :$.trim(dir.toString().toLowerCase());\n\t\t\tif(stype == null) { stype = \"text\"; }\n\t\t\tif(dfmt == null) { dfmt = \"Y-m-d\"; }\n\t\t\tif(sfunc == null) { sfunc = false; }\n\t\t\tif(dir===\"desc\"||dir===\"descending\"){dir=\"d\";}\n\t\t\tif(dir===\"asc\"||dir===\"ascending\"){dir=\"a\";}\n\t\t\t_sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc});\n\t\t\treturn self;\n\t\t};\n\t\treturn self;\n\t\t};\n\treturn new QueryObject(source,null);\n\t},\n\tgetMethod: function (name) {\n        return this.getAccessor($.fn.jqGrid, name);\n\t},\n\textend : function(methods) {\n\t\t$.extend($.fn.jqGrid,methods);\n\t\tif (!this.no_legacy_api) {\n\t\t\t$.fn.extend(methods);\n\t\t}\n\t},\n\tclearBeforeUnload : function( jqGridId ) {\n\t\tvar $t = $(\"#\"+$.jgrid.jqID( jqGridId ))[0], grid;\n\t\tif(!$t.grid) { return;}\n\t\tgrid = $t.grid;\n\t\tif ($.isFunction(grid.emptyRows)) {\n\t\t\tgrid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone\n\t\t}\n\n\t\t$(document).off(\"mouseup.jqGrid\" + $t.p.id ); \n\t\t$(grid.hDiv).off(\"mousemove\"); // TODO add namespace\n\t\t$($t).off();\n\t\tvar i, l = grid.headers.length,\n\t\tremovevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData'];\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tgrid.headers[i].el = null;\n\t\t}\n\n\t\tfor( i in grid) {\n\t\t\tif( grid.hasOwnProperty(i)) {\n\t\t\t\tgrid[i] = null;\n\t\t\t}\n\t\t}\n\t\t// experimental \n\t\tfor( i in $t.p) {\n\t\t\tif($t.p.hasOwnProperty(i)) {\n\t\t\t\t$t.p[i] = $.isArray($t.p[i]) ? [] : null;\n\t\t\t}\n\t\t}\n\t\tl = removevents.length;\n\t\tfor(i = 0; i < l; i++) {\n\t\t\tif($t.hasOwnProperty(removevents[i])) {\n\t\t\t\t$t[removevents[i]] = null;\n\t\t\t\tdelete($t[removevents[i]]);\n\t\t\t}\n\t\t}\n\t},\n\tgridUnload : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\t\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tvar defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')};\n\t\tif ($t.p.pager) {\n\t\t\t$($t.p.pager).off().empty().removeClass(\"ui-state-default ui-jqgrid-pager ui-corner-bottom\");\n\t\t}\n\t\tvar newtable = document.createElement('table');\n\t\tnewtable.className = defgrid.cl;\n\t\tvar gid = $.jgrid.jqID($t.id);\n\t\t$(newtable).removeClass(\"ui-jqgrid-btable ui-common-table\").insertBefore(\"#gbox_\"+gid);\n\t\tif( $($t.p.pager).parents(\"#gbox_\"+gid).length === 1 ) {\n\t\t\t$($t.p.pager).insertBefore(\"#gbox_\"+gid);\n\t\t}\n\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t$(\"#gbox_\"+gid).remove();\n\t\t$(newtable).attr({id:defgrid.id});\n\t\t$(\"#alertmod_\"+$.jgrid.jqID(jqGridId)).remove();\n\t},\n\tgridDestroy : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tif ( $t.p.pager ) { // if not part of grid\n\t\t\t$($t.p.pager).remove();\n\t\t}\n\t\ttry {\n\t\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(jqGridId)).remove();\n\t\t} catch (_) {}\n\t},\n\tstyleUI : {\n\t\tjQueryUI : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-state-disabled\",\n\t\t\t\thighlight : \"ui-state-highlight\",\n\t\t\t\thover : \"ui-state-hover\",\n\t\t\t\tcornerall: \"ui-corner-all\",\n\t\t\t\tcornertop: \"ui-corner-top\",\n\t\t\t\tcornerbottom : \"ui-corner-bottom\",\n\t\t\t\thidden : \"ui-helper-hidden\",\n\t\t\t\ticon_base : \"ui-icon\",\n\t\t\t\toverlay : \"ui-widget-overlay\",\n\t\t\t\tactive : \"ui-state-active\",\n\t\t\t\terror : \"ui-state-error\",\n\t\t\t\tbutton : \"ui-state-default ui-corner-all\",\n\t\t\t\tcontent : \"ui-widget-content\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"ui-widget ui-widget-content ui-corner-all\", // entrie div  incl everthing\n\t\t\t\tviewBox : \"\", // view diw\n\t\t\t\theaderTable : \"\",\n\t\t\t\theaderBox : \"ui-state-default\",\n\t\t\t\trowTable : \"\",\n\t\t\t\trowBox : \"ui-widget-content\",\n\t\t\t\tfooterTable : \"\",\n\t\t\t\tfooterBox : \"ui-widget-content\",\n\t\t\t\theaderDiv : \"ui-state-default\",\n\t\t\t\tgridtitleBox : \"ui-widget-header ui-corner-top ui-helper-clearfix\",\n\t\t\t\tcustomtoolbarBox : \"ui-state-default\",\n\t\t\t\t//overlayBox: \"ui-widget-overlay\",\n\t\t\t\tloadingBox : \"ui-state-default ui-state-active\",\n\t\t\t\trownumBox :  \"ui-state-default\",\n\t\t\t\tscrollBox : \"ui-widget-content\",\n\t\t\t\tmultiBox : \"\",\n\t\t\t\tpagerBox : \"ui-state-default ui-corner-bottom\",\n\t\t\t\tpagerTable : \"\",\n\t\t\t\ttoppagerBox : \"ui-state-default\",\n\t\t\t\tpgInput : \"ui-corner-all\",\n\t\t\t\tpgSelectBox : \"ui-widget-content ui-corner-all\",\n\t\t\t\tpgButtonBox : \"ui-corner-all\",\n\t\t\t\ticon_first : \"ui-icon-seek-first\",\n\t\t\t\ticon_prev : \"ui-icon-seek-prev\",\n\t\t\t\ticon_next: \"ui-icon-seek-next\",\n\t\t\t\ticon_end: \"ui-icon-seek-end\",\n\t\t\t\ticon_asc : \"ui-icon-triangle-1-n\",\n\t\t\t\ticon_desc : \"ui-icon-triangle-1-s\",\n\t\t\t\ticon_caption_open : \"ui-icon-circle-triangle-n\",\n\t\t\t\ticon_caption_close : \"ui-icon-circle-triangle-s\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"ui-widget ui-widget-content ui-corner-all ui-dialog\",\n\t\t\t\theader : \"ui-widget-header ui-corner-all ui-helper-clearfix\",\n\t\t\t\tcontent :\"ui-widget-content\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"ui-icon-closethick\",\n\t\t\t\ticon_resizable : \"ui-icon-gripsmall-diagonal-se\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\"\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_save_nav : \"ui-icon-disk\",\n\t\t\t\ticon_cancel_nav : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_prev : \"ui-icon-triangle-1-w\",\n\t\t\t\ticon_next : \"ui-icon-triangle-1-e\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_close : \"ui-icon-close\",\n\t\t\t\ticon_del : \"ui-icon-scissors\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_del_nav : \"ui-icon-trash\",\n\t\t\t\ticon_search_nav : \"ui-icon-search\",\n\t\t\t\ticon_refresh_nav : \"ui-icon-refresh\",\n\t\t\t\ticon_view_nav : \"ui-icon-document\",\n\t\t\t\ticon_newbutton_nav : \"ui-icon-newwin\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'ui-icon-circlesmall-plus',\n\t\t\t\ticon_minus : 'ui-icon-circlesmall-minus'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'ui-widget ui-widget-content',\n\t\t\t\tsrSelect : 'ui-widget-content ui-corner-all',\n\t\t\t\tsrInput : 'ui-widget-content ui-corner-all',\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\ticon_search : 'ui-icon-search',\n\t\t\t\ticon_reset : 'ui-icon-arrowreturnthick-1-w',\n\t\t\t\ticon_query :'ui-icon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'ui-icon-plus',\n\t\t\t\ticon_minus : 'ui-icon-minus',\n\t\t\t\ticon_open : 'ui-icon-carat-1-sw'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'ui-icon-triangle-1-',\n\t\t\t\ticon_minus : 'ui-icon-triangle-1-s',\n\t\t\t\ticon_leaf : 'ui-icon-radio-off'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"ui-icon-pencil\",\n\t\t\t\ticon_add : \"ui-icon-plus\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\",\n\t\t\t\ticon_del : \"ui-icon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\tinput_checkbox : \"ui-widget ui-widget-content\",\n\t\t\t\tfilter_select: \"ui-widget-content ui-corner-all\",\n\t\t\t\tfilter_input : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_menu : \"ui-icon-comment\",\n\t\t\t\ticon_sort_asc : \"ui-icon-arrow-1-n\",\n\t\t\t\ticon_sort_desc : \"ui-icon-arrow-1-s\",\n\t\t\t\ticon_columns : \"ui-icon-extlink\",\n\t\t\t\ticon_filter : \"ui-icon-calculator\",\n\t\t\t\ticon_group : \"ui-icon-grip-solid-horizontal\",\n\t\t\t\ticon_freeze : \"ui-icon-grip-solid-vertical\",\n\t\t\t\ticon_move: \"ui-icon-arrow-4\"\n\t\t\t}\n\t\t},\n\t\tBootstrap : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-disabled\",\n\t\t\t\thighlight : \"success\",\n\t\t\t\thover : \"active\",\n\t\t\t\tcornerall: \"\", \n\t\t\t\tcornertop: \"\",\n\t\t\t\tcornerbottom : \"\",\n\t\t\t\thidden : \"\",\n\t\t\t\ticon_base : \"glyphicon\",\n\t\t\t\toverlay: \"ui-overlay\",\n\t\t\t\tactive : \"active\",\n\t\t\t\terror : \"bg-danger\",\n\t\t\t\tbutton : \"btn btn-default\",\n\t\t\t\tcontent : \"\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"\",\n\t\t\t\tviewBox : \"table-responsive\",\n\t\t\t\theaderTable : \"table table-bordered\",\n\t\t\t\theaderBox : \"\",\n\t\t\t\trowTable : \"table table-bordered\",\n\t\t\t\trowBox : \"\",\n\t\t\t\tfooterTable : \"table table-bordered\",\n\t\t\t\tfooterBox : \"\",\n\t\t\t\theaderDiv : \"\",\n\t\t\t\tgridtitleBox : \"\",\n\t\t\t\tcustomtoolbarBox : \"\",\n\t\t\t\t//overlayBox: \"ui-overlay\",\n\t\t\t\tloadingBox : \"row\",\n\t\t\t\trownumBox :  \"active\",\n\t\t\t\tscrollBox : \"\",\n\t\t\t\tmultiBox : \"checkbox\",\n\t\t\t\tpagerBox : \"\",\n\t\t\t\tpagerTable : \"table\",\n\t\t\t\ttoppagerBox : \"\",\n\t\t\t\tpgInput : \"form-control\",\n\t\t\t\tpgSelectBox : \"form-control\",\n\t\t\t\tpgButtonBox : \"\",\n\t\t\t\ticon_first : \"glyphicon-step-backward\",\n\t\t\t\ticon_prev : \"glyphicon-backward\",\n\t\t\t\ticon_next: \"glyphicon-forward\",\n\t\t\t\ticon_end: \"glyphicon-step-forward\",\n\t\t\t\ticon_asc : \"glyphicon-triangle-top\",\n\t\t\t\ticon_desc : \"glyphicon-triangle-bottom\",\n\t\t\t\ticon_caption_open : \"glyphicon-circle-arrow-up\",\n\t\t\t\ticon_caption_close : \"glyphicon-circle-arrow-down\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"modal-content\",\n\t\t\t\theader : \"modal-header\",\n\t\t\t\ttitle : \"modal-title\",\n\t\t\t\tcontent :\"modal-body\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_resizable : \"glyphicon-import\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : 'form-control'\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : 'form-control',\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_save_nav : \"glyphicon-save\",\n\t\t\t\ticon_cancel_nav : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"form-control\",\n\t\t\t\ticon_prev : \"glyphicon-step-backward\",\n\t\t\t\ticon_next : \"glyphicon-step-forward\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_del_nav : \"glyphicon-trash\",\n\t\t\t\ticon_search_nav : \"glyphicon-search\",\n\t\t\t\ticon_refresh_nav : \"glyphicon-refresh\",\n\t\t\t\ticon_view_nav : \"glyphicon-info-sign\",\n\t\t\t\ticon_newbutton_nav : \"glyphicon-new-window\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'table table-condensed',\n\t\t\t\tsrSelect : 'form-control',\n\t\t\t\tsrInput : 'form-control',\n\t\t\t\tmenu_widget : '',\n\t\t\t\ticon_search : 'glyphicon-search',\n\t\t\t\ticon_reset : 'glyphicon-refresh',\n\t\t\t\ticon_query :'glyphicon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_open : 'glyphicon-indent-left'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_leaf : 'glyphicon-unchecked'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"glyphicon-edit\",\n\t\t\t\ticon_add : \"glyphicon-plus\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : '',\n\t\t\t\tinput_checkbox : \"\",\n\t\t\t\tfilter_select: \"form-control\",\n\t\t\t\tfilter_input : \"form-control\",\n\t\t\t\ticon_menu : \"glyphicon-menu-hamburger\",\n\t\t\t\ticon_sort_asc : \"glyphicon-sort-by-alphabet\",\n\t\t\t\ticon_sort_desc : \"glyphicon-sort-by-alphabet-alt\",\n\t\t\t\ticon_columns : \"glyphicon-list-alt\",\n\t\t\t\ticon_filter : \"glyphicon-filter\",\n\t\t\t\ticon_group : \"glyphicon-align-left\",\n\t\t\t\ticon_freeze : \"glyphicon-object-align-horizontal\",\n\t\t\t\ticon_move: \"glyphicon-move\"\n\t\t\t}\n\t\t}\n\t}\n});\n\n$.fn.jqGrid = function( pin ) {\n\tif (typeof pin === 'string') {\n\t\tvar fn = $.jgrid.getMethod(pin);\n\t\tif (!fn) {\n\t\t\tthrow (\"jqGrid - No such method: \" + pin);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\treturn this.each( function() {\n\t\tif(this.grid) {return;}\n\t\tvar localData;\n\t\tif (pin != null && pin.data !== undefined) {\n\t\t\tlocalData = pin.data;\n\t\t\tpin.data = [];\n\t\t}\n\n\t\tvar p = $.extend(true,{\n\t\t\turl: \"\",\n\t\t\theight: 150,\n\t\t\tpage: 1,\n\t\t\trowNum: 20,\n\t\t\trowTotal : null,\n\t\t\trecords: 0,\n\t\t\tpager: \"\",\n\t\t\tpgbuttons: true,\n\t\t\tpginput: true,\n\t\t\tcolModel: [],\n\t\t\trowList: [],\n\t\t\tcolNames: [],\n\t\t\tsortorder: \"asc\",\n\t\t\tsortname: \"\",\n\t\t\tdatatype: \"xml\",\n\t\t\tmtype: \"GET\",\n\t\t\taltRows: false,\n\t\t\tselarrrow: [],\n\t\t\tsavedRow: [],\n\t\t\tshrinkToFit: true,\n\t\t\txmlReader: {},\n\t\t\tjsonReader: {},\n\t\t\tsubGrid: false,\n\t\t\tsubGridModel :[],\n\t\t\treccount: 0,\n\t\t\tlastpage: 0,\n\t\t\tlastsort: 0,\n\t\t\tselrow: null,\n\t\t\tbeforeSelectRow: null,\n\t\t\tonSelectRow: null,\n\t\t\tonSortCol: null,\n\t\t\tondblClickRow: null,\n\t\t\tonRightClickRow: null,\n\t\t\tonPaging: null,\n\t\t\tonSelectAll: null,\n\t\t\tonInitGrid : null,\n\t\t\tloadComplete: null,\n\t\t\tgridComplete: null,\n\t\t\tloadError: null,\n\t\t\tloadBeforeSend: null,\n\t\t\tafterInsertRow: null,\n\t\t\tbeforeRequest: null,\n\t\t\tbeforeProcessing : null,\n\t\t\tonHeaderClick: null,\n\t\t\tviewrecords: false,\n\t\t\tloadonce: false,\n\t\t\tmultiselect: false,\n\t\t\tmultikey: false,\n\t\t\tediturl: null,\n\t\t\tsearch: false,\n\t\t\tcaption: \"\",\n\t\t\thidegrid: true,\n\t\t\thiddengrid: false,\n\t\t\tpostData: {},\n\t\t\tuserData: {},\n\t\t\ttreeGrid : false,\n\t\t\ttreeGridModel : 'nested',\n\t\t\ttreeReader : {},\n\t\t\ttreeANode : -1,\n\t\t\tExpandColumn: null,\n\t\t\ttree_root_level : 0,\n\t\t\tprmNames: {\n\t\t\t\tpage:\"page\",\n\t\t\t\trows:\"rows\", \n\t\t\t\tsort: \"sidx\",\n\t\t\t\torder: \"sord\", \n\t\t\t\tsearch:\"_search\", \n\t\t\t\tnd:\"nd\", \n\t\t\t\tid:\"id\",\n\t\t\t\toper:\"oper\",\n\t\t\t\teditoper:\"edit\",\n\t\t\t\taddoper:\"add\",\n\t\t\t\tdeloper:\"del\", \n\t\t\t\tsubgridid:\"id\", \n\t\t\t\tnpage: null, \n\t\t\t\ttotalrows:\"totalrows\"\n\t\t\t},\n\t\t\tforceFit : false,\n\t\t\tgridstate : \"visible\",\n\t\t\tcellEdit: false,\n\t\t\tcellsubmit: \"remote\",\n\t\t\tnv:0,\n\t\t\tloadui: \"enable\",\n\t\t\ttoolbar: [false,\"\"],\n\t\t\tscroll: false,\n\t\t\tmultiboxonly : false,\n\t\t\tdeselectAfterSort : true,\n\t\t\tscrollrows : false,\n\t\t\tautowidth: false,\n\t\t\tscrollOffset : 18,\n\t\t\tcellLayout: 5,\n\t\t\tsubGridWidth: 20,\n\t\t\tmultiselectWidth: 30,\n\t\t\tgridview: true,\n\t\t\trownumWidth: 35,\n\t\t\trownumbers : false,\n\t\t\tpagerpos: 'center',\n\t\t\trecordpos: 'right',\n\t\t\tfooterrow : false,\n\t\t\tuserDataOnFooter : false,\n\t\t\thoverrows : true,\n\t\t\taltclass : 'ui-priority-secondary',\n\t\t\tviewsortcols : [false,'vertical',true],\n\t\t\tresizeclass : '',\n\t\t\tautoencode : false,\n\t\t\tremapColumns : [],\n\t\t\tajaxGridOptions :{},\n\t\t\tdirection : \"ltr\",\n\t\t\ttoppager: false,\n\t\t\theadertitles: false,\n\t\t\tscrollTimeout: 40,\n\t\t\tdata : [],\n\t\t\t_index : {},\n\t\t\tgrouping : false,\n\t\t\tgroupingView : {\n\t\t\t\tgroupField:[],\n\t\t\t\tgroupOrder:[], \n\t\t\t\tgroupText:[],\n\t\t\t\tgroupColumnShow:[],\n\t\t\t\tgroupSummary:[], \n\t\t\t\tshowSummaryOnHide: false, \n\t\t\t\tsortitems:[], \n\t\t\t\tsortnames:[], \n\t\t\t\tsummary:[],\n\t\t\t\tsummaryval:[], \n\t\t\t\tplusicon: '',  \n\t\t\t\tminusicon: '', \n\t\t\t\tdisplayField: [], \n\t\t\t\tgroupSummaryPos:[], \n\t\t\t\tformatDisplayField : [], \n\t\t\t\t_locgr : false\n\t\t\t},\n\t\t\tignoreCase : true,\n\t\t\tcmTemplate : {},\n\t\t\tidPrefix : \"\",\n\t\t\tmultiSort :  false,\n\t\t\tminColWidth : 33,\n\t\t\tscrollPopUp : false,\n\t\t\tscrollTopOffset: 0, // pixel\n\t\t\tscrollLeftOffset : \"100%\", //percent\n\t\t\tstoreNavOptions: false,\n\t\t\tregional :  \"en\",\n\t\t\tstyleUI : \"jQueryUI\",\n\t\t\tresponsive : false,\n\t\t\trestoreCellonFail : true,\n\t\t\tcolFilters : {},\n\t\t\tcolMenu : false\n\t\t}, $.jgrid.defaults , pin );\n\t\tif (localData !== undefined) {\n\t\t\tp.data = localData;\n\t\t\tpin.data = localData;\n\t\t}\n\t\tvar ts= this, grid={\n\t\t\theaders:[],\n\t\t\tcols:[],\n\t\t\tfooters: [],\n\t\t\tdragStart: function(i,x,y) {\n\t\t\t\tvar gridLeftPos = $(this.bDiv).offset().left;\n\t\t\t\tthis.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos };\n\t\t\t\tthis.hDiv.style.cursor = \"col-resize\";\n\t\t\t\tthis.curGbox = $(\"#rs_m\"+$.jgrid.jqID(p.id),\"#gbox_\"+$.jgrid.jqID(p.id));\n\t\t\t\tthis.curGbox.css({display:\"block\",left:x.pageX-gridLeftPos,top:y[1],height:y[2]});\n\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStart\", [x, i]);\n\t\t\t\tif($.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); }\n\t\t\t\tdocument.onselectstart=function(){return false;};\n\t\t\t},\n\t\t\tdragMove: function(x) {\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar diff = x.pageX-this.resizing.startX,\n\t\t\t\t\th = this.headers[this.resizing.idx],\n\t\t\t\t\tnewWidth = p.direction === \"ltr\" ? h.width + diff : h.width - diff, hn, nWn;\n\t\t\t\t\tif(newWidth > 33) {\n\t\t\t\t\t\tthis.curGbox.css({left:this.resizing.sOL+diff});\n\t\t\t\t\t\tif(p.forceFit===true ){\n\t\t\t\t\t\t\thn = this.headers[this.resizing.idx+p.nv];\n\t\t\t\t\t\t\tnWn = p.direction === \"ltr\" ? hn.width - diff : hn.width + diff;\n\t\t\t\t\t\t\tif(nWn > p.minColWidth ) {\n\t\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t\t\thn.newWidth = nWn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.newWidth = p.direction === \"ltr\" ? p.tblwidth+diff : p.tblwidth-diff;\n\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdragEnd: function( events ) {\n\t\t\t\tthis.hDiv.style.cursor = \"default\";\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar idx = this.resizing.idx,\n\t\t\t\t\tnw = this.headers[idx].newWidth || this.headers[idx].width;\n\t\t\t\t\tnw = parseInt(nw,10);\n\t\t\t\t\tthis.resizing = false;\n\t\t\t\t\t$(\"#rs_m\"+$.jgrid.jqID(p.id)).css(\"display\",\"none\");\n\t\t\t\t\tp.colModel[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].el.style.width = nw + \"px\";\n\t\t\t\t\tthis.cols[idx].style.width = nw+\"px\";\n\t\t\t\t\tif(this.footers.length>0) {this.footers[idx].style.width = nw+\"px\";}\n\t\t\t\t\tif(p.forceFit===true){\n\t\t\t\t\t\tnw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;\n\t\t\t\t\t\tthis.headers[idx+p.nv].width = nw;\n\t\t\t\t\t\tthis.headers[idx+p.nv].el.style.width = nw + \"px\";\n\t\t\t\t\t\tthis.cols[idx+p.nv].style.width = nw+\"px\";\n\t\t\t\t\t\tif(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+\"px\";}\n\t\t\t\t\t\tp.colModel[idx+p.nv].width = nw;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.tblwidth = this.newWidth || p.tblwidth;\n\t\t\t\t\t\t$('table:first',this.bDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t$('table:first',this.hDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\tif(p.footerrow) {\n\t\t\t\t\t\t\t$('table:first',this.sDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t\tthis.sDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(events) {\n\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStop\", [nw, idx]);\n\t\t\t\t\t\tif($.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.curGbox = null;\n\t\t\t\tdocument.onselectstart=function(){return true;};\n\t\t\t},\n\t\t\tpopulateVisible: function() {\n\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\tgrid.timer = null;\n\t\t\t\tvar dh = $(grid.bDiv).height();\n\t\t\t\tif (!dh) { return; }\n\t\t\t\tvar table = $(\"table:first\", grid.bDiv);\n\t\t\t\tvar rows, rh;\n\t\t\t\tif(table[0].rows.length) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\trows = table[0].rows[1];\n\t\t\t\t\t\trh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight;\n\t\t\t\t\t} catch (pv) {\n\t\t\t\t\t\trh = grid.prevRowHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!rh) { return; }\n\t\t\t\tgrid.prevRowHeight = rh;\n\t\t\t\tvar rn = p.rowNum;\n\t\t\t\tvar scrollTop = grid.scrollTop = grid.bDiv.scrollTop;\n\t\t\t\tvar ttop = Math.round(table.position().top) - scrollTop;\n\t\t\t\tvar tbot = ttop + table.height();\n\t\t\t\tvar div = rh * rn;\n\t\t\t\tvar page, npage, empty;\n\t\t\t\tif ( tbot < dh && ttop <= 0 &&\n\t\t\t\t\t(p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage))\n\t\t\t\t{\n\t\t\t\t\tnpage = parseInt((dh - tbot + div - 1) / div,10) || 1;\n\t\t\t\t\tif (tbot >= 0 || npage < 2 || p.scroll === true) {\n\t\t\t\t\t\tpage = ( Math.round((tbot + scrollTop) / div) || 0) + 1;\n\t\t\t\t\t\tttop = -1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tttop = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ttop > 0) {\n\t\t\t\t\tpage = ( parseInt(scrollTop / div,10) || 0 ) + 1;\n\t\t\t\t\tnpage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page;\n\t\t\t\t\tempty = true;\n\t\t\t\t}\n\t\t\t\tif (npage) {\n\t\t\t\t\tif (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (grid.hDiv.loading) {\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.page = page;\n\t\t\t\t\t\tif (empty) {\n\t\t\t\t\t\t\tgrid.selectionPreserver(table[0]);\n\t\t\t\t\t\t\tgrid.emptyRows.call(table[0], false, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgrid.populate(npage);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.scrollPopUp && p.lastpage != null) {\n\t\t\t\t\t\t$(\"#scroll_g\"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", p.pgtext) , p.page, p.lastpage)).css({ \"top\": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +\"px\", \"left\" : p.scrollLeftOffset});\n\t\t\t\t\t\t$(this).mouseout(function(){ \n\t\t\t\t\t\t\t$(\"#scroll_g\"+p.id).hide();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tscrollGrid: function( e ) {\n\t\t\t\tif(p.scroll) {\n\t\t\t\t\tvar scrollTop = grid.bDiv.scrollTop;\n\t\t\t\t\tif(grid.scrollTop === undefined) { grid.scrollTop = 0; }\n\t\t\t\t\tif (scrollTop !== grid.scrollTop) {\n\t\t\t\t\t\tgrid.scrollTop = scrollTop;\n\t\t\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\tif(p.footerrow) {\n\t\t\t\t\tgrid.sDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\t}\n\t\t\t\tif(p.frozenColumns) {\n\t\t\t\t\t$(grid.fbDiv).scrollTop( grid.bDiv.scrollTop );\n\t\t\t\t}\n\t\t\t\tif( e ) { e.stopPropagation(); }\n\t\t\t},\n\t\t\tselectionPreserver : function(ts) {\n\t\t\t\tvar p = ts.p,\n\t\t\t\tsr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null,\n\t\t\t\tleft = ts.grid.bDiv.scrollLeft,\n\t\t\t\trestoreSelection = function() {\n\t\t\t\t\tvar i;\n\t\t\t\t\tp.selrow = null;\n\t\t\t\t\tp.selarrrow = [];\n\t\t\t\t\tif(p.multiselect && sra && sra.length>0) {\n\t\t\t\t\t\tfor(i=0;i<sra.length;i++){\n\t\t\t\t\t\t\tif (sra[i] !== sr) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sra[i],false, null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sr,false,null);\n\t\t\t\t\t}\n\t\t\t\t\tts.grid.bDiv.scrollLeft = left;\n\t\t\t\t\t$(ts).off('.selectionPreserver', restoreSelection);\n\t\t\t\t};\n\t\t\t\t$(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection);\t\t\t\t\n\t\t\t}\n\t\t};\n\t\tif(this.tagName.toUpperCase() !== 'TABLE' || this.id == null) {\n\t\t\talert(\"Element is not a table or has no id!\");\n\t\t\treturn;\n\t\t}\n\t\tif(document.documentMode !== undefined ) { // IE only\n\t\t\tif(document.documentMode <= 5) {\n\t\t\t\talert(\"Grid can not be used in this ('quirks') mode!\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tvar i =0, lr, lk, dir;\n\t\tfor( lk in $.jgrid.regional ){\n\t\t\tif($.jgrid.regional.hasOwnProperty(lk)) {\n\t\t\t\tif(i===0) { lr = lk; }\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\t\tif(i === 1 && lr !== p.regional) {\n\t\t\tp.regional = lr;\n\t\t}\n\t\t$(this).empty().attr(\"tabindex\",\"0\");\n\t\tthis.p = p ;\n\t\tthis.p.useProp = !!$.fn.prop;\n\t\tif(this.p.colNames.length === 0) {\n\t\t\tfor (i=0;i<this.p.colModel.length;i++){\n\t\t\t\tthis.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tif( this.p.colNames.length !== this.p.colModel.length ) {\n\t\t\talert($.jgrid.getRegional(this,\"errors.model\"));\n\t\t\treturn;\n\t\t}\n\t\tvar getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\tstylemodule = ts.p.styleUI + \".common\",\n\t\tdisabled = getstyle(stylemodule,'disabled', true),\n\t\thighlight = getstyle(stylemodule,'highlight', true),\n\t\thover = getstyle(stylemodule,'hover', true),\n\t\tcornerall = getstyle(stylemodule,'cornerall', true),\n\t\ticonbase = getstyle(stylemodule,'icon_base', true),\n\t\tcolmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,\n\t\tisMSIE = $.jgrid.msie(),\n\t\tgv, sortarr = [], sortord = [], sotmp=[];\n\t\tstylemodule = ts.p.styleUI + \".base\";\n\t\tgv = $(\"<div \"+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+\" role='grid'></div>\");\n\t\tts.p.direction = $.trim(ts.p.direction.toLowerCase());\n\t\tts.p._ald = false;\n\t\tif($.inArray(ts.p.direction,[\"ltr\",\"rtl\"]) === -1) { ts.p.direction = \"ltr\"; }\n\t\tdir = ts.p.direction;\n\t\t\n\t\t$(gv).insertBefore(this);\n\t\t$(this).appendTo(gv);\n\t\n\t\tvar eg = $(\"<div \"+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +\"></div>\");\n\t\t$(eg).attr({\"id\" : \"gbox_\"+this.id,\"dir\":dir}).insertBefore(gv);\n\t\t$(gv).attr(\"id\",\"gview_\"+this.id).appendTo(eg);\n\t\t$(\"<div \"+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ \" id='lui_\"+this.id+\"'></div>\").insertBefore(gv);\n\t\t$(\"<div \"+getstyle(stylemodule,'loadingBox', false, 'loading')+\" id='load_\"+this.id+\"'>\"+$.jgrid.getRegional(ts, \"defaults.loadtext\", this.p.loadtext)+\"</div>\").insertBefore(gv);\n\t\t\n\t\t$(this).attr({role:\"presentation\",\"aria-multiselectable\":!!this.p.multiselect,\"aria-labelledby\":\"gbox_\"+this.id});\n\t\t\n\t\tvar sortkeys = [\"shiftKey\",\"altKey\",\"ctrlKey\"],\n\t\tintNum = function(val,defval) {\n\t\t\tval = parseInt(val,10);\n\t\t\tif (isNaN(val)) { return defval || 0;}\n\t\t\treturn val;\n\t\t},\n\t\tformatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){\n\t\t\tvar cm = ts.p.colModel[pos], cellAttrFunc,\n\t\t\tral = cm.align, result=\"style=\\\"\", clas = cm.classes, nm = cm.name, celp, acp=[];\n\t\t\tif(ral) { result += \"text-align:\"+ral+\";\"; }\n\t\t\tif(cm.hidden===true) { result += \"display:none;\"; }\n\t\t\tif(rowInd===0) {\n\t\t\t\tresult += \"width: \"+grid.headers[pos].width+\"px;\";\n\t\t\t} else if ($.isFunction(cm.cellattr) || (typeof cm.cellattr === \"string\" && $.jgrid.cellattr != null && $.isFunction($.jgrid.cellattr[cm.cellattr]))) {\n\t\t\t\tcellAttrFunc = $.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr];\n\t\t\t\tcelp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata);\n\t\t\t\tif(celp && typeof celp === \"string\") {\n\t\t\t\t\tcelp = celp.replace(/style/i,'style').replace(/title/i,'title');\n\t\t\t\t\tif(celp.indexOf('title') > -1) { cm.title=false;}\n\t\t\t\t\tif(celp.indexOf('class') > -1) { clas = undefined;}\n\t\t\t\t\tacp = celp.replace(/\\-style/g,'-sti').split(/style/);\n\t\t\t\t\tif(acp.length === 2 ) {\n\t\t\t\t\t\tacp[1] =  $.trim(acp[1].replace(/\\-sti/g,'-style').replace(\"=\",\"\"));\n\t\t\t\t\t\tif(acp[1].indexOf(\"'\") === 0 || acp[1].indexOf('\"') === 0) {\n\t\t\t\t\t\t\tacp[1] = acp[1].substring(1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult += acp[1].replace(/'/gi,'\"');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult += \"\\\"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!acp.length) { acp[0] = \"\"; result += \"\\\"\";}\n\t\t\tresult += (clas !== undefined ? (\" class=\\\"\"+clas+\"\\\"\") :\"\") + ((cm.title && tv) ? (\" title=\\\"\"+$.jgrid.stripHtml(tv)+\"\\\"\") :\"\");\n\t\t\tresult += \" aria-describedby=\\\"\"+ts.p.id+\"_\"+nm+\"\\\"\";\n\t\t\treturn result + acp[0];\n\t\t},\n\t\tcellVal =  function (val) {\n\t\t\treturn val == null || val === \"\" ? \"&#160;\" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val));\n\t\t},\n\t\tformatter = function (rowId, cellval , colpos, rwdat, _act){\n\t\t\tvar cm = ts.p.colModel[colpos],v;\n\t\t\tif(cm.formatter !== undefined) {\n\t\t\t\trowId = String(ts.p.idPrefix) !== \"\" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId;\n\t\t\t\tvar opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI };\n\t\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\t\tv = cm.formatter.call(ts,cellval,opts,rwdat,_act);\n\t\t\t\t} else if($.fmatter){\n\t\t\t\t\tv = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act);\n\t\t\t\t} else {\n\t\t\t\t\tv = cellVal(cellval);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv = cellVal(cellval);\n\t\t\t}\n\t\t\treturn v;\n\t\t},\n\t\taddCell = function(rowId,cell,pos,irow, srvr, rdata) {\n\t\t\tvar v,prp;\n\t\t\tv = formatter(rowId,cell,pos,srvr,'add');\n\t\t\tprp = formatCol( pos,irow, v, srvr, rowId, rdata);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddMulti = function(rowid, pos, irow, checked, uiclass){\n\t\t\tvar\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\" \"+uiclass+\" name=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\"\" + (checked ? \"checked=\\\"checked\\\"\" : \"\")+\"/>\",\n\t\t\tprp = formatCol( pos,irow,'',null, rowid, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddRowNum = function (pos, irow, pG, rN, uiclass ) {\n\t\t\tvar v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,\n\t\t\tprp = formatCol( pos,irow,v, null, irow, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+uiclass+\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\treader = function (datatype) {\n\t\t\tvar field, f=[], j=0, i;\n\t\t\tfor(i =0; i<ts.p.colModel.length; i++){\n\t\t\t\tfield = ts.p.colModel[i];\n\t\t\t\tif (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {\n\t\t\t\t\tf[j]= datatype === \"local\" ?\n\t\t\t\t\tfield.name :\n\t\t\t\t\t( (datatype===\"xml\" || datatype === \"xmlstring\") ? field.xmlmap || field.name : field.jsonmap || field.name );\n\t\t\t\t\tif(ts.p.keyName !== false && field.key===true ) {\n\t\t\t\t\t\tts.p.keyName = f[j];\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn f;\n\t\t},\n\t\torderedCols = function (offset) {\n\t\t\tvar order = ts.p.remapColumns;\n\t\t\tif (!order || !order.length) {\n\t\t\t\torder = $.map(ts.p.colModel, function(v,i) { return i; });\n\t\t\t}\n\t\t\tif (offset) {\n\t\t\t\torder = $.map(order, function(v) { return v<offset?null:v-offset; });\n\t\t\t}\n\t\t\treturn order;\n\t\t},\n\t\temptyRows = function (scroll, locdata) {\n\t\t\tvar firstrow;\n\t\t\tif (this.p.deepempty) {\n\t\t\t\t$(this.rows).slice(1).remove();\n\t\t\t} else {\n\t\t\t\tfirstrow = this.rows.length > 0 ? this.rows[0] : null;\n\t\t\t\t$(this.firstChild).empty().append(firstrow);\n\t\t\t}\n\t\t\tif (scroll && this.p.scroll) {\n\t\t\t\t$(this.grid.bDiv.firstChild).css({height: \"auto\"});\n\t\t\t\t$(this.grid.bDiv.firstChild.firstChild).css({height: \"0px\", display: \"none\"});\n\t\t\t\tif (this.grid.bDiv.scrollTop !== 0) {\n\t\t\t\t\tthis.grid.bDiv.scrollTop = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(locdata === true && this.p.treeGrid && !this.p.loadonce ) {\n\t\t\t\tthis.p.data = []; this.p._index = {};\n\t\t\t}\n\t\t},\n\t\tnormalizeData = function() {\n\t\t\tvar p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd,\n\t\t\tlocalReader = p.localReader,\n\t\t\tcolModel = p.colModel,\n\t\t\tcellName = localReader.cell,\n\t\t\tiOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0),\n\t\t\tbr = p.scroll ? $.jgrid.randId() : 1,\n\t\t\tarrayReader, objectReader, rowReader;\n\n\t\t\tif (p.datatype !== \"local\" || localReader.repeatitems !== true) {\n\t\t\t\treturn; // nothing to do\n\t\t\t}\n\n\t\t\tarrayReader = orderedCols(iOffset);\n\t\t\tobjectReader = reader(\"local\");\n\t\t\t// read ALL input items and convert items to be read by\n\t\t\t// $.jgrid.getAccessor with column name as the second parameter\n\t\t\tidn = p.keyIndex === false ?\n\t\t\t\t($.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) :\n\t\t\t\tp.keyIndex; \n\t\t\tfor (i = 0; i < dataLength; i++) {\n\t\t\t\tcur = data[i];\n\t\t\t\t// read id in the same way like addJSONData do\n\t\t\t\t// probably it would be better to start with \"if (cellName) {...}\"\n\t\t\t\t// but the goal of the current implementation was just have THE SAME\n\t\t\t\t// id values like in addJSONData ...\n\t\t\t\tidr = $.jgrid.getAccessor(cur, idn);\n\t\t\t\tif (idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && colModel[idn + iOffset] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name);\n\t\t\t\t\t}\n\t\t\t\t\tif (idr === undefined) {\n\t\t\t\t\t\tidr = br + i;\n\t\t\t\t\t\tif (cellName) {\n\t\t\t\t\t\t\tccur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\tccur = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trd = { };\n\t\t\t\trd[localReader.id] = idr;\n\t\t\t\tif (cellName) {\n\t\t\t\t\tcur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t}\n\t\t\t\trowReader = $.isArray(cur) ? arrayReader : objectReader;\n\t\t\t\tfor (j = 0; j < rowReader.length; j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur, rowReader[j]);\n\t\t\t\t\trd[colModel[j + iOffset].name] = v;\n\t\t\t\t}\n\t\t\t\t$.extend(true, data[i], rd);\n\t\t\t}\n\t\t},\n\t\trefreshIndex = function() {\n\t\t\tvar datalen = ts.p.data.length, idname, i, val;\n\n\t\t\tif(ts.p.keyName === false || ts.p.loadonce === true) {\n\t\t\t\tidname = ts.p.localReader.id;\n\t\t\t} else {\n\t\t\t\tidname = ts.p.keyName;\n\t\t\t}\n\t\t\tts.p._index = [];\n\t\t\tfor(i =0;i < datalen; i++) {\n\t\t\t\tval = $.jgrid.getAccessor(ts.p.data[i],idname);\n\t\t\t\tif (val === undefined) { val=String(i+1); }\n\t\t\t\tts.p._index[val] = i;\n\t\t\t}\n\t\t},\n\t\tconstructTr = function(id, hide, classes, rd, cur ) {\n\t\t\tvar tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '',\n\t\t\t\t//classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''),\n\t\t\t\trowAttrObj = $(ts).triggerHandler(\"jqGridRowAttr\", [rd, cur, id]);\n\t\t\tif( typeof rowAttrObj !== \"object\" ) {\n\t\t\t\trowAttrObj = $.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) :\n\t\t\t\t\t(typeof ts.p.rowattr === \"string\" && $.jgrid.rowattr != null && $.isFunction($.jgrid.rowattr[ts.p.rowattr]) ?\n\t\t\t\t\t$.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {});\n\t\t\t}\n\t\t\tif(!$.isEmptyObject( rowAttrObj )) {\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"id\")) {\n\t\t\t\t\tid = rowAttrObj.id;\n\t\t\t\t\tdelete rowAttrObj.id;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"tabindex\")) {\n\t\t\t\t\ttabindex = rowAttrObj.tabindex;\n\t\t\t\t\tdelete rowAttrObj.tabindex;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"style\")) {\n\t\t\t\t\tstyle += rowAttrObj.style;\n\t\t\t\t\tdelete rowAttrObj.style;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"class\")) {\n\t\t\t\t\tclasses += ' ' + rowAttrObj['class'];\n\t\t\t\t\tdelete rowAttrObj['class'];\n\t\t\t\t}\n\t\t\t\t// dot't allow to change role attribute\n\t\t\t\ttry { delete rowAttrObj.role; } catch(ra){}\n\t\t\t\tfor (attrName in rowAttrObj) {\n\t\t\t\t\tif (rowAttrObj.hasOwnProperty(attrName)) {\n\t\t\t\t\t\trestAttr += ' ' + attrName + '=' + rowAttrObj[attrName];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '<tr role=\"row\" id=\"' + id + '\" tabindex=\"' + tabindex + '\" class=\"' + classes + '\"' +\n\t\t\t\t(style === '' ? '' : ' style=\"' + style + '\"') + restAttr + '>';\n\t\t},\n\t\taddXmlData = function (xml, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date(),\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"xmlstring\",\n\t\t\txmlid = \"_id_\", xmlRd = ts.p.xmlReader,\n\t\t\tfrd = ts.p.datatype === \"local\" ? \"local\" : \"xml\";\n\t\t\tif(locdata) {\n\t\t\t\tts.p.data = [];\n\t\t\t\tts.p._index = {};\n\t\t\t\tts.p.localReader.id = xmlid;\n\t\t\t}\n\t\t\tts.p.reccount = 0;\n\t\t\tif($.isXMLDoc(xml)) {\n\t\t\t\tif(ts.p.treeANode===-1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\t\t\tvar self= $(ts), i,fpos,ir=0,v,gi=ts.p.multiselect===true?1:0,si=0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,idn, getId,f=[],F,rd ={}, \n\t\t\t\t\txmlr,rid, rowData=[], cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tif(ts.p.subGrid===true) {\n\t\t\t\tsi = 1;\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif(!xmlRd.repeatitems) {f = reader(frd);}\n\t\t\tif( ts.p.keyName===false) {\n\t\t\t\tidn = $.isFunction( xmlRd.id ) ?  xmlRd.id.call(ts, xml) : xmlRd.id;\n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tif( String(idn).indexOf(\"[\") === -1 ) {\n\t\t\t\tif (f.length) {\n\t\t\t\t\tgetId = function( trow, k) {return $(idn,trow).text() || k;};\n\t\t\t\t} else {\n\t\t\t\t\tgetId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;};\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tgetId = function( trow, k) {return trow.getAttribute(idn.replace(/[\\[\\]]/g,\"\")) || k;};\n\t\t\t}\n\t\t\tts.p.userData = {};\n\t\t\tts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records));\n\t\t\tif($.isFunction(xmlRd.userdata)) {\n\t\t\t\tts.p.userData = xmlRd.userdata.call(ts, xml) || {};\n\t\t\t} else {\n\t\t\t\t$.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute(\"name\")]= $(this).text();});\n\t\t\t}\n\t\t\tvar gxml = $.jgrid.getXmlData( xml, xmlRd.root, true);\n\t\t\tgxml = $.jgrid.getXmlData( gxml, xmlRd.row, true);\n\t\t\tif (!gxml) { gxml = []; }\n\t\t\tvar gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1, altr,\n\t\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\");\n\t\t\tif (gl > 0 &&  ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tif(gxml && gl){\n\t\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), hiderow=false, groupingPrepare,\n\t\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\t\tif(ts.p.grouping)  {\n\t\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t\t}\n\t\t\t\twhile (j<gl) {\n\t\t\t\t\txmlr = gxml[j];\n\t\t\t\t\trid = getId(xmlr,br+j);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\taltr = rcnt === 0 ? 0 : rcnt+1;\n\t\t\t\t\tclasses = cn1 + ( (altr+j)%2 === 1 ? ' ' + cn : '');\n\t\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\t\trowData.push(\"\");\n\t\t\t\t\tif( ni ) {\n\t\t\t\t\t\trowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t\t}\n\t\t\t\t\tif( gi ) {\n\t\t\t\t\t\trowData.push( addMulti(rid, ni, j, false, mlc) );\n\t\t\t\t\t}\n\t\t\t\t\tif( si ) {\n\t\t\t\t\t\trowData.push( addSubGridCell.call(self, gi+ni, j+rcnt) );\n\t\t\t\t\t}\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr, rd) );\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr, rd) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr);\n\t\t\t\t\trowData.push(\"</tr>\");\n\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self , rd, j );\n\t\t\t\t\t\t}\n\t\t\t\t\t\trowData = [];\n\t\t\t\t\t}\n\t\t\t\t\tif(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) {\n\t\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [rid, rd, xmlr]);\n\t\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}\n\t\t\t\t\t\trowData=[];\n\t\t\t\t\t}\n\t\t\t\t\trd={};\n\t\t\t\t\tir++;\n\t\t\t\t\tj++;\n\t\t\t\t\tif(ir===rn) {break;}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.gridview === true) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else {\n\t\t\t\t\t//$(\"tbody:first\",t).append(rowData.join(''));\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells; // update cached first row\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData =null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry {self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} }\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = gl;\n\t\t\t\tts.p.lastpage = Math.ceil(gl/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<gl) {\n\t\t\t\t\txmlr = gxml[ir];\n\t\t\t\t\trid = getId(xmlr,ir+br);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells2[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\tif( ts.p.grouping ) {\n\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t}\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\trd = {};\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddJSONData = function(data, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date();\n\t\t\tif(data) {\n\t\t\t\tif(ts.p.treeANode === -1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\n\t\t\tvar dReader, locid = \"_id_\", frd,\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"jsonstring\";\n\t\t\tif(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = locid;}\n\t\t\tts.p.reccount = 0;\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tdReader =  ts.p.localReader;\n\t\t\t\tfrd= 'local';\n\t\t\t} else {\n\t\t\t\tdReader =  ts.p.jsonReader;\n\t\t\t\tfrd='json';\n\t\t\t}\n\t\t\tvar self = $(ts), ir=0,v,i,j,f=[],cur,gi=ts.p.multiselect?1:0,si=ts.p.subGrid===true?1:0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,arrayReader=orderedCols(gi+si+ni),objectReader=reader(frd),rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[],cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getAccessor(data,dReader.records));\n\t\t\tts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {};\n\t\t\tif(si) {\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif( ts.p.keyName===false ) {\n\t\t\t\tidn = $.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id; \n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tdrows = $.jgrid.getAccessor(data,dReader.root);\n\t\t\tif (drows == null && $.isArray(data)) { drows = data; }\n\t\t\tif (!drows) { drows = []; }\n\t\t\tlen = drows.length; i=0;\n\t\t\tif (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tvar rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?$.jgrid.randId():1, altr, selected=false, selr;\n\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\tif(ts.p.datatype === \"local\" && !ts.p.deselectAfterSort) {\n\t\t\t\tselected = true;\n\t\t\t}\n\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare,\n\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"),\n\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\tif(ts.p.grouping)  {\n\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t}\n\t\t\twhile (i<len) {\n\t\t\t\tcur = drows[i];\n\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\tif(idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t}\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tidr = br+i;\n\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\tvar ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\t\tccur=null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\taltr = rcnt === 1 ? 0 : rcnt;\n\t\t\t\tclasses = cn1+ ( (altr+i)%2 === 1 ? ' '+cn : '');\n\t\t\t\tif( selected) {\n\t\t\t\t\tif( ts.p.multiselect) {\n\t\t\t\t\t\tselr = ($.inArray(idr, ts.p.selarrrow) !== -1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselr = (idr === ts.p.selrow);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\trowData.push(\"\");\n\t\t\t\tif( ni ) {\n\t\t\t\t\trowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t}\n\t\t\t\tif( gi ){\n\t\t\t\t\trowData.push( addMulti(idr, ni, i, selr, mlc) );\n\t\t\t\t}\n\t\t\t\tif( si ) {\n\t\t\t\t\trowData.push( addSubGridCell.call(self ,gi+ni,i+rcnt) );\n\t\t\t\t}\n\t\t\t\trowReader=objectReader;\n\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t}\n\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = v;\n\t\t\t\t\trowData.push( addCell(idr,v,j+gi+si+ni,i+rcnt,cur, rd) );\n\t\t\t\t}\n\t\t\t\tclasses += (selr ? ' ' + highlight : '');\n\t\t\t\trowData[iStartTrTag] = constructTr(idr, hiderow, classes, rd, cur);\n\t\t\t\trowData.push( \"</tr>\" );\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\tgroupingPrepare.call(self , rd, i);\n\t\t\t\t\t}\n\t\t\t\t\trowData = [];\n\t\t\t\t}\n\t\t\t\tif(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) {\n\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t}\n\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [idr, rd, cur]);\n\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}\n\t\t\t\t\trowData=[];//ari=0;\n\t\t\t\t}\n\t\t\t\trd={};\n\t\t\t\tir++;\n\t\t\t\ti++;\n\t\t\t\tif(ir===rn) { break; }\n\t\t\t}\n\t\t\tif(ts.p.gridview === true ) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else { \n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells;\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData = null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry { self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) {\n\t\t\t\tif(ts.p.records===0) { ts.p.records=len; }\n\t\t\t}\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = len;\n\t\t\t\tts.p.lastpage = Math.ceil(len/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<len && drows[ir]) {\n\t\t\t\t\tcur = drows[ir];\n\t\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\t\tidr = br+ir;\n\t\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\t\tvar ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\t\tidr = ccur2 != null && ccur2[idn] !== undefined ? ccur2[idn] : idr;\n\t\t\t\t\t\t\t\t\tccur2=null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cur) {\n\t\t\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\t\t\trowReader=objectReader;\n\t\t\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t\t\trd = {};\n\t\t\t\t\t}\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddLocalData = function( retAll ) {\n\t\t\tvar st = ts.p.multiSort ? [] : \"\", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld;\n\t\t\tif(!$.isArray(ts.p.data)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si;\n\t\t\t$.each(ts.p.colModel,function(){\n\t\t\t\tsorttype = this.sorttype || \"text\";\n\t\t\t\tsi = this.index || this.name;\n\t\t\t\tif(sorttype === \"date\" || sorttype === \"datetime\") {\n\t\t\t\t\tif(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') {\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.srcformat) {\n\t\t\t\t\t\t\tsrcformat = this.formatoptions.srcformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsrcformat = $.jgrid.getRegional(ts, \"formatter.date.srcformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.newformat) {\n\t\t\t\t\t\t\tnewformat = this.formatoptions.newformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewformat = $.jgrid.getRegional(ts, \"formatter.date.newformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsrcformat = newformat = this.datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\": srcformat,\"newfmt\":newformat, \"sfunc\": this.sortfunc || null};\n\t\t\t\t} else {\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\":'',\"newfmt\":'', \"sfunc\": this.sortfunc || null};\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping ) {\n\t\t\t\t\tfor(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) {\n\t\t\t\t\t\tif( this.name === grpview.groupField[gin]) {\n\t\t\t\t\t\t\tgrtypes[gin] = cmtypes[si];\n\t\t\t\t\t\t\tgrindexes[gin]= si;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!ts.p.multiSort) {\n\t\t\t\t\tif(!fndsort && (si === ts.p.sortname)){\n\t\t\t\t\t\tst = si; \n\t\t\t\t\t\tfndsort = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tst =  sortarr;\n\t\t\t\tsto = sortord;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p._sort) {\n\t\t\t\t$(ts).jqGrid(\"SortTree\", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || '');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar compareFnMap = {\n\t\t\t\t'eq':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'ne':function(queryObj) {return queryObj.notEquals;},\n\t\t\t\t'lt':function(queryObj) {return queryObj.less;},\n\t\t\t\t'le':function(queryObj) {return queryObj.lessOrEquals;},\n\t\t\t\t'gt':function(queryObj) {return queryObj.greater;},\n\t\t\t\t'ge':function(queryObj) {return queryObj.greaterOrEquals;},\n\t\t\t\t'cn':function(queryObj) {return queryObj.contains;},\n\t\t\t\t'nc':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().contains : queryObj.andNot().contains;},\n\t\t\t\t'bw':function(queryObj) {return queryObj.startsWith;},\n\t\t\t\t'bn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;},\n\t\t\t\t'en':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;},\n\t\t\t\t'ew':function(queryObj) {return queryObj.endsWith;},\n\t\t\t\t'ni':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().equals : queryObj.andNot().equals;},\n\t\t\t\t'in':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'nu':function(queryObj) {return queryObj.isNull;},\n\t\t\t\t'nn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().isNull : queryObj.andNot().isNull;}\n\n\t\t\t},\n\t\t\tquery = $.jgrid.from.call(ts, ts.p.data);\n\t\t\tif (ts.p.ignoreCase) { query = query.ignoreCase(); }\n\t\t\tfunction tojLinq ( group ) {\n\t\t\t\tvar s = 0, index, gor, ror, opr, rule, fld;\n\t\t\t\tif (group.groups != null) {\n\t\t\t\t\tgor = group.groups.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t}\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s > 0 && gor) {\n\t\t\t\t\t\t\tquery.or();\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttojLinq(group.groups[index]);\n\t\t\t\t\t\t} catch (e) {alert(e);}\n\t\t\t\t\t\ts++;\n\t\t\t\t\t}\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (group.rules != null) {\n\t\t\t\t\t//if(s>0) {\n\t\t\t\t\t//\tvar result = query.select();\n\t\t\t\t\t//\tquery = $.jgrid.from( result);\n\t\t\t\t\t//\tif (ts.p.ignoreCase) { query = query.ignoreCase(); } \n\t\t\t\t\t//}\n\t\t\t\t\ttry{\n\t\t\t\t\t\tror = group.rules.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\t\trule = group.rules[index];\n\t\t\t\t\t\t\topr = group.groupOp.toString().toUpperCase();\n\t\t\t\t\t\t\tif (compareFnMap[rule.op] && rule.field ) {\n\t\t\t\t\t\t\t\tif(s > 0 && opr && opr === \"OR\") {\n\t\t\t\t\t\t\t\t\tquery = query.or();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfld = cmtypes[rule.field];\n\t\t\t\t\t\t\t\tif(fld.stype === 'date') {\n\t\t\t\t\t\t\t\t\tif(fld.srcfmt && fld.newfmt && fld.srcfmt !== fld.newfmt ) {\n\t\t\t\t\t\t\t\t\t\trule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tquery = compareFnMap[rule.op](query, opr)(rule.field, rule.data, cmtypes[rule.field]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ts++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (g) {alert(g);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ts.p.search === true) {\n\t\t\t\tvar srules = ts.p.postData.filters;\n\t\t\t\tif(srules) {\n\t\t\t\t\tif(typeof srules === \"string\") { srules = $.jgrid.parse(srules);}\n\t\t\t\t\ttojLinq( srules );\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsfld = cmtypes[ts.p.postData.searchField];\n\t\t\t\t\t\tif(sfld.stype === 'date') {\n\t\t\t\t\t\t\tif(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) {\n\t\t\t\t\t\t\t\tts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tquery = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]);\n\t\t\t\t\t} catch (se){}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"nested\") {\n\t\t\t\t\tquery.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"adjacency\") {\n\t\t\t\tlengrp =0;\n\t\t\t\tst = null;\n\t\t\t}\n\t\t\tif(ts.p.grouping) {\n\t\t\t\tfor(gin=0; gin<lengrp;gin++) {\n\t\t\t\t\tquery.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\t$.each(st,function(i){\n\t\t\t\t\tquery.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (st && ts.p.sortorder && fndsort) {\n\t\t\t\t\t// to be fixed in case sortname has more than one field\n\t\t\t\t\tif(ts.p.sortorder.toUpperCase() === \"DESC\") {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"d\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"a\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar queryResults = query.select(),\n\t\t\trecordsperpage = parseInt(ts.p.rowNum,10),\n\t\t\ttotal = queryResults.length,\n\t\t\tpage = parseInt(ts.p.page,10),\n\t\t\ttotalpages = Math.ceil(total / recordsperpage),\n\t\t\tretresult = {};\n\t\t\tif((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) {\n\t\t\t\tts.p.groupingView.groups =[];\n\t\t\t\tvar j, grPrepare = $.jgrid.getMethod(\"groupingPrepare\"), key, udc;\n\t\t\t\tif(ts.p.footerrow && ts.p.userDataOnFooter) {\n\t\t\t\t\tfor (key in ts.p.userData) {\n\t\t\t\t\t\tif(ts.p.userData.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tts.p.userData[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tudc = true;\n\t\t\t\t}\n\t\t\t\tfor(j=0; j<total; j++) {\n\t\t\t\t\tif(udc) {\n\t\t\t\t\t\tfor(key in ts.p.userData){\n\t\t\t\t\t\t\tif( ts.p.userData.hasOwnProperty( key ) ) {\n\t\t\t\t\t\t\t\tts.p.userData[key] += parseFloat(queryResults[j][key] || 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrPrepare.call($(ts),queryResults[j],j, recordsperpage );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( retAll ) {\n\t\t\t\treturn  queryResults;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.search) {\n\t\t\t\tqueryResults = $(ts).jqGrid(\"searchTree\", queryResults);\n\t\t\t} else {\n\t\t\t\tqueryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );\n\t\t\t}\n\t\t\tquery = null;\n\t\t\tcmtypes = null;\n\t\t\tretresult[ts.p.localReader.total] = totalpages;\n\t\t\tretresult[ts.p.localReader.page] = page;\n\t\t\tretresult[ts.p.localReader.records] = total;\n\t\t\tretresult[ts.p.localReader.root] = queryResults;\n\t\t\tretresult[ts.p.localReader.userdata] = ts.p.userData;\n\t\t\tqueryResults = null;\n\t\t\treturn  retresult;\n\t\t},\n\t\tupdatepager = function(rn, dnd) {\n\t\t\tvar cp, last, base, from,to,tot,fmt, pgboxes = \"\", sppg,\n\t\t\tpgid = ts.p.pager ? $.jgrid.jqID(ts.p.pager.substr(1)) : \"\",\n\t\t\ttspg = pgid ? \"_\"+pgid : \"\",\n\t\t\ttspg_t = ts.p.toppager ? \"_\"+ts.p.toppager.substr(1) : \"\";\n\t\t\tbase = parseInt(ts.p.page,10)-1;\n\t\t\tif(base < 0) { base = 0; }\n\t\t\tbase = base*parseInt(ts.p.rowNum,10);\n\t\t\tto = base + ts.p.reccount;\n\t\t\tif (ts.p.scroll) {\n\t\t\t\tvar rows = $(\"tbody:first > tr:gt(0)\", ts.grid.bDiv);\n\t\t\t\tif(to > ts.p.records) {\n\t\t\t\t\tto = ts.p.records;\n\t\t\t\t}\n\t\t\t\tbase = to - rows.length;\n\t\t\t\tts.p.reccount = rows.length;\n\t\t\t\tvar rh = rows.outerHeight() || ts.grid.prevRowHeight;\n\t\t\t\tif (rh) {\n\t\t\t\t\tvar top = base * rh;\n\t\t\t\t\tvar height = parseInt(ts.p.records,10) * rh;\n\t\t\t\t\t$(\">div:first\",ts.grid.bDiv).css({height : height}).children(\"div:first\").css({height:top,display:top?\"\":\"none\"});\n\t\t\t\t\tif (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;\n\t\t\t}\n\t\t\tpgboxes = ts.p.pager || \"\";\n\t\t\tpgboxes += ts.p.toppager ?  (pgboxes ? \",\" + ts.p.toppager : ts.p.toppager) : \"\";\n\t\t\tif(pgboxes) {\n\t\t\t\tfmt = $.jgrid.getRegional(ts, \"formatter.integer\");\n\t\t\t\tcp = intNum(ts.p.page);\n\t\t\t\tlast = intNum(ts.p.lastpage);\n\t\t\t\t$(\".selbox\",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ](\"disabled\",false);\n\t\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t\t$(\"#input\"+tspg).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\"));\n\t\t\t\t\tif(ts.p.toppager) {\n\t\t\t\t\t\t$(\"#input_t\"+tspg_t).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"_toppager'></span>\"));\n\t\t\t\t\t}\n\t\t\t\t\t$('.ui-pg-input',pgboxes).val(ts.p.page);\n\t\t\t\t\tsppg = ts.p.toppager ? '#sp_1'+tspg+\",#sp_1\"+tspg+\"_toppager\" : '#sp_1'+tspg;\n\t\t\t\t\t$(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);\n\t\t\t\t}\n\t\t\t\tif (ts.p.viewrecords){\n\t\t\t\t\tif(ts.p.reccount === 0) {\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.getRegional(ts, \"defaults.emptyrecords\", ts.p.emptyrecords ));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfrom = base+1;\n\t\t\t\t\t\ttot=ts.p.records;\n\t\t\t\t\t\tif($.fmatter) {\n\t\t\t\t\t\t\tfrom = $.fmatter.util.NumberFormat(from,fmt);\n\t\t\t\t\t\t\tto = $.fmatter.util.NumberFormat(to,fmt);\n\t\t\t\t\t\t\ttot = $.fmatter.util.NumberFormat(tot,fmt);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rt = $.jgrid.getRegional(ts, \"defaults.recordtext\", ts.p.recordtext);\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.template( rt ,from,to,tot));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t\tif(cp<=0) {cp = last = 0;}\n\t\t\t\t\tif(cp===1 || cp === 0) {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t\tif(cp===last || cp === 0) {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(rn===true && ts.p.rownumbers === true) {\n\t\t\t\t$(\">td.jqgrid-rownum\",ts.rows).each(function(i){\n\t\t\t\t\t$(this).html(base+1+i);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}\n\t\t\t$(ts).triggerHandler(\"jqGridGridComplete\");\n\t\t\tif($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}\n\t\t\t$(ts).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t},\n\t\tbeginReq = function() {\n\t\t\tts.grid.hDiv.loading = true;\n\t\t\tif(ts.p.hiddengrid) { return;}\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"show\", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, \"defaults.loadtext\", ts.p.loadtext) });\n\t\t},\n\t\tendReq = function() {\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"hide\", loadtype : ts.p.loadui });\n\t\t},\n\t\tpopulate = function (npage) {\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tvar pvis = ts.p.scroll && npage === false,\n\t\t\t\tprm = {}, dt, dstr, pN=ts.p.prmNames;\n\t\t\t\tif(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); }\n\t\t\t\tif(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}\n\t\t\t\tif(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}\n\t\t\t\tif(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}\n\t\t\t\tif(ts.p.rowTotal !== null && pN.totalrows !== null) { prm[pN.totalrows]= ts.p.rowTotal; }\n\t\t\t\tvar lcf = $.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null;\n\t\t\t\tvar adjust = 0;\n\t\t\t\tnpage = npage || 1;\n\t\t\t\tif (npage > 1) {\n\t\t\t\t\tif(pN.npage !== null) {\n\t\t\t\t\t\tprm[pN.npage] = npage;\n\t\t\t\t\t\tadjust = npage - 1;\n\t\t\t\t\t\tnpage = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlc = function(req) {\n\t\t\t\t\t\t\tts.p.page++;\n\t\t\t\t\t\t\tts.grid.hDiv.loading = false;\n\t\t\t\t\t\t\tif (lcf) {\n\t\t\t\t\t\t\t\tts.p.loadComplete.call(ts,req);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopulate(npage-1);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} else if (pN.npage !== null) {\n\t\t\t\t\tdelete ts.p.postData[pN.npage];\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t$(ts).jqGrid('groupingSetup');\n\t\t\t\t\tvar grp = ts.p.groupingView, gi, gs=\"\";\n\t\t\t\t\tfor(gi=0;gi<grp.groupField.length;gi++) {\n\t\t\t\t\t\tvar index = grp.groupField[gi];\n\t\t\t\t\t\t$.each(ts.p.colModel, function(cmIndex, cmValue) {\n\t\t\t\t\t\t\tif (cmValue.name === index && cmValue.index){\n\t\t\t\t\t\t\t\tindex = cmValue.index;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tgs += index +\" \"+grp.groupOrder[gi]+\", \";\n\t\t\t\t\t}\n\t\t\t\t\tprm[pN.sort] = gs + prm[pN.sort];\n\t\t\t\t}\n\t\t\t\t$.extend(ts.p.postData,prm);\n\t\t\t\tvar rcnt = !ts.p.scroll ? 1 : ts.rows.length-1;\n\t\t\t\tvar bfr = $(ts).triggerHandler(\"jqGridBeforeRequest\");\n\t\t\t\tif (bfr === false || bfr === 'stop') { return; }\n\t\t\t\tif ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,\"load_\"+ts.p.id, rcnt, npage, adjust); return;}\n\t\t\t\tif ($.isFunction(ts.p.beforeRequest)) {\n\t\t\t\t\tbfr = ts.p.beforeRequest.call(ts);\n\t\t\t\t\tif(bfr === undefined) { bfr = true; }\n\t\t\t\t\tif ( bfr === false ) { return; }\n\t\t\t\t}\n\t\t\t\tdt = ts.p.datatype.toLowerCase();\n\t\t\t\tswitch(dt)\n\t\t\t\t{\n\t\t\t\tcase \"json\":\n\t\t\t\tcase \"jsonp\":\n\t\t\t\tcase \"xml\":\n\t\t\t\tcase \"script\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl:ts.p.url,\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\tdataType: dt ,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,\n\t\t\t\t\t\tsuccess:function(data,st, xhr) {\n\t\t\t\t\t\t\tif ($.isFunction(ts.p.beforeProcessing)) {\n\t\t\t\t\t\t\t\tif (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) {\n\t\t\t\t\t\t\t\t\tendReq();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dt === \"xml\") { addXmlData(data, rcnt,npage>1,adjust); }\n\t\t\t\t\t\t\telse { addJSONData(data, rcnt, npage>1, adjust); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [data]);\n\t\t\t\t\t\t\tif(lc) { lc.call(ts,data); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [data]);\n\t\t\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\t\t\tif( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = \"local\";}\n\t\t\t\t\t\t\tdata=null;\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror:function(xhr,st,err){\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t\txhr=null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbeforeSend: function(xhr, settings ){\n\t\t\t\t\t\t\tvar gotoreq = true;\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadBeforeSend)) {\n\t\t\t\t\t\t\t\tgotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(gotoreq === undefined) { gotoreq = true; }\n\t\t\t\t\t\t\tif(gotoreq === false) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbeginReq();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));\n\t\t\t\tbreak;\n\t\t\t\tcase \"xmlstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tdstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr);\n\t\t\t\t\taddXmlData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"jsonstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tif(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); }\n\t\t\t\t\telse { dstr = ts.p.datastr; }\n\t\t\t\t\taddJSONData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"local\":\n\t\t\t\tcase \"clientside\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p._ald = true;\n\t\t\t\t\tvar req = addLocalData( false );\n\t\t\t\t\taddJSONData(req,rcnt,npage>1,adjust);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [req]);\n\t\t\t\t\tif(lc) { lc.call(ts,req); }\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [req]);\n\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\tendReq();\n\t\t\t\t\tts.p._ald = false;\n\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tts.p._sort = false;\n\t\t\t}\n\t\t},\n\t\tsetHeadCheckBox = function ( checked ) {\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\tvar fid = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\tif(fid) {\n\t\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\t}\n\t\t},\n\t\tsetPager = function (pgid, tp){\n\t\t\t// TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid);\n\t\t\tvar sep = \"<td class='ui-pg-button \"+disabled+\"'><span class='ui-separator'></span></td>\",\n\t\t\tpginp = \"\",\n\t\t\tpgl=\"<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>\",\n\t\t\tstr=\"\", pgcnt, lft, cent, rgt, twd, tdw, i,\n\t\t\tclearVals = function(onpaging, thus){\n\t\t\t\tvar ret;\n\t\t\t\tif ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); }\n\t\t\t\tif(ret==='stop') {return false;}\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[]; setHeadCheckBox( false );}\n\t\t\t\tts.p.savedRow = [];\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tpgid = pgid.substr(1);\n\t\t\ttp += \"_\" + pgid;\n\t\t\tpgcnt = \"pg_\"+pgid;\n\t\t\tlft = pgid+\"_left\"; cent = pgid+\"_center\"; rgt = pgid+\"_right\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pgid) )\n\t\t\t.append(\"<div id='\"+pgcnt+\"' class='ui-pager-control' role='group'><table \" + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + \"><tbody><tr><td id='\"+lft+\"' align='left'></td><td id='\"+cent+\"' align='center' style='white-space:pre;'></td><td id='\"+rgt+\"' align='right'></td></tr></tbody></table></div>\")\n\t\t\t.attr(\"dir\",\"ltr\"); //explicit setting\n\t\t\tif(ts.p.rowList.length >0){\n\t\t\t\tstr = \"<td dir=\\\"\"+dir+\"\\\">\";\n\t\t\t\tstr +=\"<select \"+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+\" role=\\\"listbox\\\" title=\\\"\"+($.jgrid.getRegional(ts,\"defaults.pgrecs\",ts.p.pgrecs) || \"\")+ \"\\\">\";\n\t\t\t\tvar strnm;\n\t\t\t\tfor(i=0;i<ts.p.rowList.length;i++){\n\t\t\t\t\tstrnm = ts.p.rowList[i].toString().split(\":\");\n\t\t\t\t\tif(strnm.length === 1) {\n\t\t\t\t\t\tstrnm[1] = strnm[0];\n\t\t\t\t\t}\n\t\t\t\t\tstr +=\"<option role=\\\"option\\\" value=\\\"\"+strnm[0]+\"\\\"\"+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?\" selected=\\\"selected\\\"\":\"\")+\">\"+strnm[1]+\"</option>\";\n\t\t\t\t}\n\t\t\t\tstr +=\"</select></td>\";\n\t\t\t}\n\t\t\tif(dir===\"rtl\") { pgl += str; }\n\t\t\tif(ts.p.pginput===true) { \n\t\t\t\tpginp= \"<td id='input\"+tp+\"' dir='\"+dir+\"'>\"+$.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\")+\"</td>\";\n\t\t\t}\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\tvar po=[\"first\"+tp,\"prev\"+tp, \"next\"+tp,\"last\"+tp], btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'),\n\t\t\t\t\t\tpot = [($.jgrid.getRegional(ts,\"defaults.pgfirst\",ts.p.pgfirst) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgprev\",ts.p.pgprev) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgnext\",ts.p.pgnext) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pglast\",ts.p.pglast) || \"\")];\n\t\t\t\tif(dir===\"rtl\") { \n\t\t\t\t\tpo.reverse();\n\t\t\t\t\tpot.reverse();\n\t\t\t\t}\n\t\t\t\tpgl += \"<td id='\"+po[0]+\"' class='\"+btc+\"' title='\"+ pot[0] +\"'\" + \"><span \" + getstyle(stylemodule, 'icon_first', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[1]+\"' class='\"+btc+\"'  title='\"+ pot[1] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_prev', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += pginp !== \"\" ? sep+pginp+sep:\"\";\n\t\t\t\tpgl += \"<td id='\"+po[2]+\"' class='\"+btc+\"' title='\"+ pot[2] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_next',false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[3]+\"' class='\"+btc+\"' title='\"+ pot[3] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_end',false, iconbase)+\"></span></td>\";\n\t\t\t} else if (pginp !== \"\") { \n\t\t\t\tpgl += pginp; \n\t\t\t}\n\t\t\tif(dir===\"ltr\") { \n\t\t\t\tpgl += str; \n\t\t\t}\n\t\t\tpgl += \"</tr></tbody></table>\";\n\t\t\tif(ts.p.viewrecords===true) {\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.recordpos,\"#\"+pgcnt).append(\"<div dir='\"+dir+\"' style='text-align:\"+ts.p.recordpos+\"' class='ui-paging-info'></div>\");\n\t\t\t}\n\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).append(pgl);\n\t\t\ttdw = $(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).css(\"font-size\") || \"11px\";\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).append(\"<div id='testpg' \"+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+\" style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\ttwd = $(pgl).clone().appendTo(\"#testpg\").width();\n\t\t\t$(\"#testpg\").remove();\n\t\t\tif(twd > 0) {\n\t\t\t\tif(pginp !== \"\") { twd += 50; } //should be param\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).width(twd);\n\t\t\t}\n\t\t\tts.p._nvtd = [];\n\t\t\tts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);\n\t\t\tts.p._nvtd[1] = 0; \n\t\t\tpgl=null;\n\t\t\t$('.ui-pg-selbox',\"#\"+pgcnt).on('change',function() {\n\t\t\t\tif(!clearVals('records', this)) { return false; }\n\t\t\t\tts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;\n\t\t\t\tts.p.rowNum = this.value;\n\t\t\t\tif(ts.p.pager) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }\n\t\t\t\tif(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }\n\t\t\t\tpopulate();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t$(\".ui-pg-button\",\"#\"+pgcnt).hover(function(){\n\t\t\t\t\tif($(this).hasClass(disabled)) {\n\t\t\t\t\t\tthis.style.cursor='default';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\tthis.style.cursor='pointer';\n\t\t\t\t\t}\n\t\t\t\t},function() {\n\t\t\t\t\tif(!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t$(this).removeClass(hover);\n\t\t\t\t\t\tthis.style.cursor= \"default\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#first\"+$.jgrid.jqID(tp)+\", #prev\"+$.jgrid.jqID(tp)+\", #next\"+$.jgrid.jqID(tp)+\", #last\"+$.jgrid.jqID(tp)).click( function() {\n\t\t\t\t\tif ($(this).hasClass(disabled)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tvar cp = intNum(ts.p.page,1),\n\t\t\t\t\tlast = intNum(ts.p.lastpage,1), selclick = false,\n\t\t\t\t\tfp=true, pp=true, np=true,lp=true;\n\t\t\t\t\tif(last ===0 || last===1) {\n\t\t\t\t\t\tfp=false;\n\t\t\t\t\t\tpp=false;\n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t} else if( last>1 && cp >=1) {\n\t\t\t\t\t\tif( cp === 1) { \n\t\t\t\t\t\t\tfp=false; \n\t\t\t\t\t\t\tpp=false; \n\t\t\t\t\t\t} else if( cp===last){ \n\t\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( last>1 && cp===0 ) { \n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\tcp=last-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(!clearVals(this.id.split(\"_\")[0], this)) { return false; }\n\t\t\t\t\tif( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;}\n\t\t\t\t\tif( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;}\n\t\t\t\t\tif( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;}\n\t\t\t\t\tif( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}\n\t\t\t\t\tif(selclick) {\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t$(\"#\"+pgcnt).on('keypress','input.ui-pg-input', function(e) {\n\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\tif(key === 13) {\n\t\t\t\t\t\tif(!clearVals('user', this)) { return false; }\n\t\t\t\t\t\t$(this).val( intNum( $(this).val(), 1));\n\t\t\t\t\t\tts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmultiSort = function(iCol, obj, sor ) {\n\t\t\tvar cm = ts.p.colModel,\n\t\t\t\t\tselTh = ts.p.frozenColumns ?  obj : ts.grid.headers[iCol].el, so=\"\", sn;\n\t\t\t$(\"span.ui-grid-ico-sort\",selTh).addClass(disabled);\n\t\t\t$(selTh).attr(\"aria-selected\",\"false\");\n\t\t\tsn = (cm[iCol].index || cm[iCol].name);\n\t\t\tif ( typeof sor == \"undefined\" )\n\t\t\t{\n\t\t\t\tif(cm[iCol].lso) {\n\t\t\t\t\tif(cm[iCol].lso===\"asc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-desc\";\n\t\t\t\t\t\tso = \"desc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"desc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-asc\";\n\t\t\t\t\t\tso = \"asc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"asc-desc\" || cm[iCol].lso===\"desc-asc\") {\n\t\t\t\t\t\tcm[iCol].lso=\"\";\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcm[iCol].lso = so = cm[iCol].firstsortorder || 'asc';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcm[iCol].lso = so = sor;\n\t\t\t}\t\n\t\t\tif( so ) {\n\t\t\t\t$(\"span.s-ico\",selTh).show();\n\t\t\t\t$(\"span.ui-icon-\"+so,selTh).removeClass(disabled);\n\t\t\t\t$(selTh).attr(\"aria-selected\",\"true\");\n\t\t\t} else {\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\t$(\"span.s-ico\",selTh).hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar isn = sortarr.indexOf( sn );\n\t\t\tif( isn === -1 ) {\n\t\t\t\tsortarr.push( sn );\n\t\t\t\tsortord.push( so );\n\t\t\t} else {\n\t\t\t\tif( so ) {\n\t\t\t\t\tsortord[isn] = so;\n\t\t\t\t} else {\n\t\t\t\t\tsortord.splice( isn, 1 );\n\t\t\t\t\tsortarr.splice( isn, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = \"\";\n\t\t\tts.p.sortname = \"\";\n\t\t\tfor( var i = 0, len = sortarr.length; i < len ; i++) {\n\t\t\t\tif( i > 0) {\n\t\t\t\t\tts.p.sortname += \", \";\n\t\t\t\t}\n\t\t\t\tts.p.sortname += sortarr[ i ];\n\t\t\t\tif( i !== len -1) {\n\t\t\t\t\tts.p.sortname += \" \"+sortord[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = sortord[ len -1 ];\n\t\t\t/*\n\t\t\t$.each(cm, function(i){\n\t\t\t\tif(this.lso) {\n\t\t\t\t\tif(i>0 && fs) {\n\t\t\t\t\t\tsort += \", \";\n\t\t\t\t\t}\n\t\t\t\t\tsplas = this.lso.split(\"-\");\n\t\t\t\t\tsort += cm[i].index || cm[i].name;\n\t\t\t\t\tsort += \" \"+splas[splas.length-1];\n\t\t\t\t\tfs = true;\n\t\t\t\t\tts.p.sortorder = splas[splas.length-1];\n\t\t\t\t}\n\t\t\t});\n\t\t\tls = sort.lastIndexOf(ts.p.sortorder);\n\t\t\tsort = sort.substring(0, ls);\n\t\t\tts.p.sortname = sort;\n\t\t\t*/\n\t\t},\n\t\tsortData = function (index, idxcol,reload,sor, obj){\n\t\t\tif(!ts.p.colModel[idxcol].sortable) { return; }\n\t\t\tif(ts.p.savedRow.length > 0) {return;}\n\t\t\tif(!reload) {\n\t\t\t\tif( ts.p.lastsort === idxcol && ts.p.sortname !== \"\" ) {\n\t\t\t\t\tif( ts.p.sortorder === 'asc') {\n\t\t\t\t\t\tts.p.sortorder = 'desc';\n\t\t\t\t\t} else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';}\n\t\t\t\t} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }\n\t\t\t\tts.p.page = 1;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tmultiSort( idxcol, obj, sor);\n\t\t\t} else {\n\t\t\t\tif(sor) {\n\t\t\t\t\tif(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; }\n\t\t\t\t\tts.p.sortorder = sor;\n\t\t\t\t}\n\t\t\t\tvar previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = ts.p.frozenColumns ?  obj : ts.grid.headers[idxcol].el,\n\t\t\t\t\t\t//sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled);\n\t\t\t\t\tusehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon;\n\t\t\t\ttmpicon = $(previousSelectedTh).find(\"span.ui-grid-ico-sort\");\n\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\tif(usehide) { \n\t\t\t\t\t$(tmpicon).css(\"display\",\"none\"); \n\t\t\t\t}\n\t\t\t\t$(previousSelectedTh).attr(\"aria-selected\",\"false\");\n\t\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t\ttmpicon = ts.grid.fhDiv.find(\"span.ui-grid-ico-sort\");\n\t\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"none\"); }\n\t\t\t\t\tts.grid.fhDiv.find(\"th\").attr(\"aria-selected\",\"false\");\n\t\t\t\t}\n\t\t\t\ttmpicon = $(newSelectedTh).find(\"span.ui-icon-\"+ts.p.sortorder);\n\t\t\t\ttmpicon.removeClass(disabled);\n\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"\"); }\n\t\t\t\t$(newSelectedTh).attr(\"aria-selected\",\"true\");\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\tif(ts.p.lastsort !== idxcol) {\n\t\t\t\t\t\tif(ts.p.frozenColumns){\n\t\t\t\t\t\t\tts.grid.fhDiv.find(\"span.s-ico\").hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"span.s-ico\",previousSelectedTh).hide();\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t} else if (ts.p.sortname === \"\") { // if ts.p.lastsort === idxcol but ts.p.sortname === \"\"\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tindex = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?!\n\t\t\t\tts.p.sortname = ts.p.colModel[idxcol].index || index;\n\t\t\t}\n\t\t\tif ($(ts).triggerHandler(\"jqGridSortCol\", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') {\n\t\t\t\tts.p.lastsort = idxcol;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') {ts.p.lastsort = idxcol; return;}}\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tif(ts.p.deselectAfterSort) {$(ts).jqGrid(\"resetSelection\");}\n\t\t\t} else {\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect){setHeadCheckBox( false );}\n\t\t\t\tts.p.selarrrow =[];\n\t\t\t\tts.p.savedRow =[];\n\t\t\t}\n\t\t\tif(ts.p.scroll) {\n\t\t\t\tvar sscroll = ts.grid.bDiv.scrollLeft;\n\t\t\t\temptyRows.call(ts, true, false);\n\t\t\t\tts.grid.hDiv.scrollLeft = sscroll;\n\t\t\t}\n\t\t\tif(ts.p.subGrid && ts.p.datatype === 'local') {\n\t\t\t\t$(\"td.sgexpanded\",\"#\"+$.jgrid.jqID(ts.p.id)).each(function(){\n\t\t\t\t\t$(this).trigger(\"click\");\n\t\t\t\t});\n\t\t\t}\n\t\t\tts.p._sort = true;\n\t\t\tpopulate();\n\t\t\tts.p.lastsort = idxcol;\n\t\t\tif(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;}\n\t\t},\n\t\tsetColWidth = function () {\n\t\t\tvar initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr;\n\t\t\t$.each(ts.p.colModel, function() {\n\t\t\t\tif(this.hidden === undefined) {this.hidden=false;}\n\t\t\t\tif(ts.p.grouping && ts.p.autowidth) {\n\t\t\t\t\tvar ind = $.inArray(this.name, ts.p.groupingView.groupField);\n\t\t\t\t\tif(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) {\n\t\t\t\t\t\tthis.hidden = !ts.p.groupingView.groupColumnShow[ind];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.widthOrg = cw = intNum(this.width,0);\n\t\t\t\tif(this.hidden===false){\n\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvc++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(isNaN(ts.p.width)) {\n\t\t\t\tts.p.width  = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0);\n\t\t\t}\n\t\t\tgrid.width = parseInt(ts.p.width,10);\n\t\t\tts.p.tblwidth = initwidth;\n\t\t\tif(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}\n\t\t\tif(ts.p.shrinkToFit===true && vc > 0) {\n\t\t\t\taw = grid.width-brd*vc-gw;\n\t\t\t\tif(!isNaN(ts.p.height)) {\n\t\t\t\t\taw -= scw;\n\t\t\t\t\ths = true;\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\t$.each(ts.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(grid.width-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\tts.p.colModel[lvc].width += cr;\n\t\t\t\tts.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif(ts.p.tblwidth > ts.p.width) {\n\t\t\t\t\tts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));\n\t\t\t\t\tts.p.tblwidth = ts.p.width;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tnextVisible= function(iCol) {\n\t\t\tvar ret = iCol, j=iCol, i;\n\t\t\tfor (i = iCol+1;i<ts.p.colModel.length;i++){\n\t\t\t\tif(ts.p.colModel[i].hidden !== true ) {\n\t\t\t\t\tj=i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn j-ret;\n\t\t},\n\t\tgetOffset = function (iCol) {\n\t\t\tvar $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()];\n\t\t\tif(ts.p.direction===\"rtl\") { ret[0] = ts.p.width - ret[0]; }\n\t\t\tret[0] -= ts.grid.bDiv.scrollLeft;\n\t\t\tret.push($(ts.grid.hDiv).position().top);\n\t\t\tret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height());\n\t\t\treturn ret;\n\t\t},\n\t\tgetColumnHeaderIndex = function (th) {\n\t\t\tvar i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th);\n\t\t\tfor (i = 0; i < headers.length; i++) {\n\t\t\t\tif (th === headers[i].el) {\n\t\t\t\t\tci = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn ci;\n\t\t},\n\t\tbuildColItems = function (top, left, parent) {\n\t\t\tvar cm = ts.p.colModel, len = cm.length, i, cols=[], disp,\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tstr1 = '<ul id=\"col_menu\" class=\"ui-search-menu  ui-col-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\">';\n\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t//if(!cm[i].hidedlg) { // column chooser\n\t\t\t\tvar hid = !cm[i].hidden ? \"checked\" : \"\", nm = cm[i].name, lb = ts.p.colNames[i];\n\t\t\t\tdisp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || cm[i].hidedlg) ? \"style='display:none'\" :\"\";\n\t\t\t\tstr1 += '<li '+disp+' class=\"ui-menu-item\" role=\"presentation\" draggable=\"true\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" ><table class=\"ui-common-table\" ><tr><td class=\"menu_icon\" title=\"'+texts.reorder+'\"><span class=\"'+iconbase+' '+colmenustyle.icon_move+' notclick\"></span></td><td class=\"menu_icon\"><input class=\"'+colmenustyle.input_checkbox+'\" type=\"checkbox\" name=\"'+nm+'\" '+hid+'></td><td class=\"menu_text\">'+lb+'</td></tr></table></a></li>';\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\tstr1 += \"</ul>\";\n\t\t\t$(parent).append(str1);\n\t\t\t$(\"#col_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif($.fn.html5sortable()) {\n\t\t\t\t$(\"#col_menu\").html5sortable({\n\t\t\t\t\thandle: 'span',\n\t\t\t\t\tforcePlaceholderSize: true }\n\t\t\t\t).on('sortupdate', function(e, ui) {\n\t\t\t\t\tcols.splice( ui.startindex, 1);\n\t\t\t\t\tcols.splice(ui.endindex, 0, ui.startindex);\n\t\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t\t\tcols[i] = i;\n\t\t\t\t\t}\n\t\t\t\t});\t\t\t\n\t\t\t} // NO jQuery UI \n\t\t\t$(\"#col_menu > li > a\").on(\"click\", function(e) {\n\t\t\t\tvar checked;\n\t\t\t\tif($(e.target).hasClass('notclick')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif($(e.target).is(\":input\")) {\n\t\t\t\t\tchecked = $(e.target).is(\":checked\");\n\t\t\t\t} else {\n\t\t\t\t\tchecked = !$(\"input\", this).is(\":checked\");\n\t\t\t\t\t$(\"input\", this).prop(\"checked\",checked);\n\t\t\t\t}\n\t\t\t\tif(!checked) {\n\t\t\t\t\t$(ts).jqGrid('hideCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"false\");\n\t\t\t\t} else {\n\t\t\t\t\t$(ts).jqGrid('showCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"true\");\n\t\t\t\t}\n\t\t\t}).hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\t\t},\n\t\tbuildSearchBox = function (index, top, left, parent) {\n\t\t\tvar cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem,\n\t\t\tnumopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\t\tstropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\t\ttexts = $.jgrid.getRegional(ts, \"search\"),\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tif(!cm ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\trules = ts.p.colFilters && ts.p.colFilters[cm.name] ?  ts.p.colFilters[cm.name] : false;\n\t\t\tif(rules && !$.isEmptyObject( rules )) {\n\t\t\t\to1 = rules.oper1;\n\t\t\t\tv1 = rules.value1;\n\t\t\t\tr1 = rules.rule;\n\t\t\t\to2 = rules.oper2;\n\t\t\t\tv2 = rules.value2;\n\t\t\t}\n\t\t\tif(! cm.searchoptions ) {\n\t\t\t\tcm.searchoptions = {};\n\t\t\t}\n\t\t\tif(cm.searchoptions.sopt) {\n\t\t\t\tso = cm.searchoptions.sopt;\n\t\t\t} else if(cm.sorttype === 'text') {\n\t\t\t\tso = stropts;\n\t\t\t} else {\n\t\t\t\tso = numopts;\n\t\t\t}\n\t\t\tif(cm.searchoptions.operands) {\n\t\t\t\top = cm.searchoptions.operands;\n\t\t\t} else  {\n\t\t\t\top = texts.groupOps;\n\t\t\t} \n\t\t\t\n\t\t\t//elem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>');\n\t\t\telem = $('<form></form>');\n\t\t\tvar str1= '<div>'+$.jgrid.getRegional(ts, \"colmenu.searchTitle\")+'</div>';\n\t\t\tstr1 += '<div><select id=\"oper1\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o1 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 += repstr;\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\tvar df=\"\";\n\t\t\tif(cm.searchoptions.defaultValue ) {\n\t\t\t\tdf = $.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;\n\t\t\t}\n\t\t\t//overwrite default value if restore from filters\n\t\t\tif( v1 ) {\n\t\t\t\tdf = v1;\n\t\t\t}\n\t\t\tvar soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval1_\" + ts.p.idPrefix+cm.name, oper:'search'}),\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// and/or\n\t\t\tstr1 ='<div><select id=\"operand\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(op, function(i, n){\n\t\t\t\tselected = n.op === r1 ? 'selected=\"selected\"' : '';\n\t\t\t\tstr1 += \"<option value='\"+n.op+\"' \"+selected+\">\"+n.text+\"</option>\";\n\t\t\t});\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\t//oper2 \t\t\n\t\t\trepstr ='';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o2 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 = '<div><select id=\"oper2\" class=\"'+colmenustyle.filter_select+'\">' + repstr +'</select></div>';\n\t\t\telem.append(str1);\n\t\t\t// value2\n\t\t\tif( v2 ) {\n\t\t\t\tdf = v2;\n\t\t\t} else {\n\t\t\t\tdf = \"\";\n\t\t\t}\n\t\t\tsoptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval2_\" + ts.p.idPrefix+cm.name, oper:'search'});\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// buttons\n\t\t\tstr1 = \"<div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button \" + common.button +\" ui-reset'>\"+texts.Reset+\"</a></div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button \" + common.button + \" ui-search'>\"+texts.Find+\"</a></div>\";\n\t\t\tstr1 += \"</div>\";\n\t\t\telem.append(str1);\n\t\t\telem = $('<li class=\"ui-menu-item\" role=\"presentation\"></li>').append( elem );\n\t\t\telem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>').append(elem);\n\t\t\t$(parent).append(elem);\n\t\t\t$(\"#search_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\t$(\"#bs_reset, #bs_search\", \"#search_menu\").hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\n\t\t\t$(elem).find(\"#bs_reset\").click(function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(elem).find(\"#bs_search\").click( function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {\n\t\t\t\t\toper1: $(\"#oper1\",\"#search_menu\").val(),\n\t\t\t\t\tvalue1: $(\"#sval1_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val(),\n\t\t\t\t\trule: $(\"#operand\",\"#search_menu\").val(),\n\t\t\t\t\toper2 : $(\"#oper2\",\"#search_menu\").val(),\n\t\t\t\t\tvalue2 : $(\"#sval2_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val()\n\t\t\t\t};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\t\tbuildFilters = function() {\n\t\t\tvar go = \"AND\",\n\t\t\tfilters =\"{\\\"groupOp\\\":\\\"\" + go + \"\\\",\\\"rules\\\":[], \\\"groups\\\" : [\", i=0;\n\t\t\tfor (var item in ts.p.colFilters) {\n\t\t\t\tif(ts.p.colFilters.hasOwnProperty(item)) {\n\t\t\t\t\tvar si = ts.p.colFilters[item];\n\t\t\t\t\tif(!$.isEmptyObject(si)) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tfilters += \",\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"{\\\"groupOp\\\": \\\"\"+si.rule +\"\\\", \\\"rules\\\" : [\";\n\t\t\t\t\t\tfilters += \"{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper1 + \"\\\",\";\n\t\t\t\t\t\tsi.value1 +=\"\";\n\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value1.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tif(si.value2) {\n\t\t\t\t\t\t\tfilters += \",{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper2 + \"\\\",\";\n\t\t\t\t\t\t\tsi.value2 +=\"\";\n\t\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value2.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"]}\";\n\t\t\t\t\t\ti++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//console.log('empty object');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfilters += \"]}\";\n\t\t\treturn filters;\n\t\t},\n\t\tbuildGrouping = function( index, isgroup ) {\n\t\t\tvar cm = ts.p.colModel[index],\n\t\t\t\tgroup = ts.p.groupingView;\n\t\t\tif(isgroup !== -1) {\n\t\t\t\tgroup.groupField.splice(isgroup,1);\n\t\t\t} else {\n\t\t\t\tgroup.groupField.push( cm.name);\n\t\t\t}\n\t\t\t$(ts).jqGrid('groupingGroupBy', group.groupField );\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t}\n\t\t},\n\t\tbuildFreeze = function( index, isfreeze ) {\n\t\t\tvar cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel;\n\t\t\tfor(i=0; i < len; i++) {\n\t\t\t\tif(cm[i].frozen) {\n\t\t\t\t\tlastfrozen = i;\n\t\t\t\t}\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\t\t// from position index to lastfrozen+1\n\t\t\tcols.splice( index, 1);\n\t\t\tcols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index);\n\t\t\tcm[index].frozen = isfreeze;\n\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t},\n\t\tbuildColMenu = function( index, left, top ){\n\t\t\t//$(\"#sopt_menu\").remove();\n\t\t\tleft=parseInt(left,10);\n\t\t\ttop=parseInt(top,10) + 25;\n\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\tvar str = '<ul id=\"column_menu\" class=\"ui-search-menu modal-content column-menu\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\tcm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions),\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tisgroup, isfreeze; // ???\n\t\t\t// sorting\n\t\t\tif(op.sorting) {\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortasc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_asc+'\"></span></td><td class=\"menu_text\">'+texts.sortasc+'</td></tr></table></a></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortdesc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_desc+'\"></span></td><td class=\"menu_text\">'+texts.sortdesc+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.columns) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"columns\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_columns+'\"></span></td><td class=\"menu_text\">'+texts.columns+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.filtering) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"filtering\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_filter+'\"></span></td><td class=\"menu_text\">'+texts.filter + ' ' +(cm.label || cm.name)+'</td></tr></table></a></li>';\t\t\t\n\t\t\t}\n\t\t\tif(op.grouping) {\n\t\t\t\tisgroup = $.inArray(cm.name, ts.p.groupingView.groupField);\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"grouping\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_group+'\"></span></td><td class=\"menu_text\">'+(isgroup !== -1 ?  texts.ungrouping: texts.grouping + ' ' + (cm.label || cm.name))+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.freeze) {\n\t\t\t\tisfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true;\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"freeze\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_freeze+'\"></span></td><td class=\"menu_text\">'+(isfreeze ? (texts.freeze + \" \"+(cm.label || cm.name)) : texts.unfreeze)+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tstr += \"</ul>\";\n\t\t\t$('body').append( str );\n\t\t\t$(\"#column_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\tvar wcm = $(\"#column_menu\").width() + 26;\n\t\t\t\t$(\"#column_menu\").css(\"left\", left- wcm);\n\t\t\t}\n\t\t\t$(\"#column_menu > li > a\").hover(\n\t\t\t\tfunction(){\n\t\t\t\t\t$(\"#col_menu\").remove();\n\t\t\t\t\t$(\"#search_menu\").remove();\n\t\t\t\t\tvar left1, top1;\n\t\t\t\t\tif($(this).attr(\"value\") === 'columns') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildColItems(top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\tif($(this).attr(\"value\") === 'filtering') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildSearchBox(index, top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\t$(this).addClass(hover); \n\t\t\t\t},\n\t\t\t\tfunction(){ $(this).removeClass(hover); }\n\t\t\t).click(function(){\n\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\tsobj = ts.grid.headers[index].el;\n\t\t\t\tif(v === 'sortasc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'asc', sobj);\n\t\t\t\t} else if(v === 'sortdesc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'desc', sobj);\n\t\t\t\t} else if (v === 'grouping') {\n\t\t\t\t\tbuildGrouping(index, isgroup);\n\t\t\t\t} else if( v==='freeze') {\n\t\t\t\t\tbuildFreeze( index, isfreeze);\n\t\t\t\t}\n\t\t\t\tif(v.indexOf('sort') !== -1 || v === 'grouping' || v==='freeze') {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tcolTemplate;\n\t\tif(ts.p.colMenu) {\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).closest(\".column-menu\").length) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.p.id = this.id;\n\t\tif ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;}\n\t\tts.p.keyName=false;\n\t\tfor (i=0; i<ts.p.colModel.length;i++) {\n\t\t\tcolTemplate = typeof ts.p.colModel[i].template === \"string\" ?\n\t\t\t\t($.jgrid.cmTemplate != null && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === \"object\" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) :\n\t\t\t\tts.p.colModel[i].template;\n\t\t\tts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]);\n\t\t\tif (ts.p.keyName === false && ts.p.colModel[i].key===true) {\n\t\t\t\tts.p.keyName = ts.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tts.p.sortorder = ts.p.sortorder.toLowerCase();\n\t\t$.jgrid.cell_width = $.jgrid.cellWidth();\n\t\tif(ts.p.grouping===true) {\n\t\t\tts.p.scroll = false;\n\t\t\tts.p.rownumbers = false;\n\t\t\t//ts.p.subGrid = false; expiremental\n\t\t\tts.p.treeGrid = false;\n\t\t\tts.p.gridview = true;\n\t\t}\n\t\tif(this.p.treeGrid === true) {\n\t\t\ttry { $(this).jqGrid(\"setTreeGrid\");} catch (_) {}\n\t\t\tif(ts.p.datatype !== \"local\") { ts.p.localReader = {id: \"_id_\"};\t}\n\t\t}\n\t\tif(this.p.subGrid) {\n\t\t\ttry { $(ts).jqGrid(\"setSubGrid\");} catch (s){}\n\t\t}\n\t\tif(this.p.multiselect) {\n\t\t\tthis.p.colNames.unshift(\"<input role='checkbox' id='cb_\"+this.p.id+\"' class='cbox' type='checkbox'/>\");\n\t\t\tthis.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true});\n\t\t}\n\t\tif(this.p.rownumbers) {\n\t\t\tthis.p.colNames.unshift(\"\");\n\t\t\tthis.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true});\n\t\t}\n\t\tts.p.xmlReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\trow: \"row\",\n\t\t\tpage: \"rows>page\",\n\t\t\ttotal: \"rows>total\",\n\t\t\trecords : \"rows>records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"[id]\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", row: \"row\", repeatitems: true, cell:\"cell\"}\n\t\t}, ts.p.xmlReader);\n\t\tts.p.jsonReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.jsonReader);\n\t\tts.p.localReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: false,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.localReader);\n\t\tif(ts.p.scroll){\n\t\t\tts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];\n\t\t}\n\t\tif(ts.p.data.length) { normalizeData(); refreshIndex(); }\n\t\tvar thead = \"<thead><tr class='ui-jqgrid-labels' role='row'>\",\n\t\ttdc, idn, w, res, sort =\"\",\n\t\ttd, ptr, tbody, imgs, iac=\"\", idc=\"\", tmpcm;\n\t\tif(ts.p.shrinkToFit===true && ts.p.forceFit===true) {\n\t\t\tfor (i=ts.p.colModel.length-1;i>=0;i--){\n\t\t\t\tif(!ts.p.colModel[i].hidden) {\n\t\t\t\t\tts.p.colModel[i].resizable=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(ts.p.viewsortcols[1] === 'horizontal') {\n\t\t\tiac=\" ui-i-asc\";\n\t\t\tidc=\" ui-i-desc\";\n\t\t} else if(ts.p.viewsortcols[1] === \"single\") { \n\t\t\tiac = \" ui-single-sort-asc\";\n\t\t\tidc = \" ui-single-sort-desc\";\n\t\t\tsort = \" style='display:none'\";\n\t\t\tts.p.viewsortcols[0] = false;\n\t\t}\n\t\ttdc = isMSIE ?  \"class='ui-th-div-ie'\" :\"\";\n\t\timgs = \"<span class='s-ico' style='display:none'>\";\n\t\timgs += \"<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc\"+iac+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_asc', true)+ \"'\" + sort + \"></span>\";\n\t\timgs += \"<span sort='desc' class='ui-grid-ico-sort ui-icon-desc\"+idc+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_desc', true)+\"'\" + sort + \"></span></span>\";\n\t\tif(ts.p.multiSort) {\n\t\t\tif(ts.p.sortname ) {\n\t\t\tsortarr = ts.p.sortname.split(\",\");\n\t\t\tfor (i=0; i < sortarr.length; i++) {\n\t\t\t\tsotmp = $.trim(sortarr[i]).split(\" \");\n\t\t\t\tsortarr[i] = $.trim(sotmp[0]);\n\t\t\t\tsortord[i] = sotmp[1] ? $.trim(sotmp[1]) : ts.p.sortorder || \"asc\";\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor(i=0;i<this.p.colNames.length;i++){\n\t\t\tvar tooltip = ts.p.headertitles ? (\" title=\\\"\"+$.jgrid.stripHtml(ts.p.colNames[i])+\"\\\"\") :\"\";\n\t\t\ttmpcm = ts.p.colModel[i];\n\t\t\tif(!tmpcm.hasOwnProperty('colmenu')) {\n\t\t\t\ttmpcm.colmenu = (tmpcm.name === \"rn\" || tmpcm.name === \"cb\" || tmpcm.name === \"subgrid\") ? false : true;\n\t\t\t}\n\t\t\tthead += \"<th id='\"+ts.p.id+\"_\" + tmpcm.name+\"' role='columnheader' \"+getstyle(stylemodule,'headerBox',false, \"ui-th-column ui-th-\"+dir)+\" \"+ tooltip+\">\";\n\t\t\tidn = tmpcm.index || tmpcm.name;\n\t\t\tthead += \"<div class='ui-th-div' id='jqgh_\"+ts.p.id+\"_\"+tmpcm.name+\"' \"+tdc+\">\"+ts.p.colNames[i];\n\t\t\tif(!tmpcm.width)  { \n\t\t\t\ttmpcm.width = 150; \n\t\t\t} else { \n\t\t\t\ttmpcm.width = parseInt(tmpcm.width,10); \n\t\t\t}\n\t\t\tif(typeof tmpcm.title !== \"boolean\") { \n\t\t\t\ttmpcm.title = true; \n\t\t\t}\n\t\t\ttmpcm.lso = \"\";\n\t\t\tif (idn === ts.p.sortname) {\n\t\t\t\tts.p.lastsort = i;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tsotmp = $.inArray(idn,sortarr);\n\t\t\t\tif( sotmp !== -1 ) {\n\t\t\t\t\ttmpcm.lso = sortord[sotmp];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthead += imgs;\n\t\t\tif(ts.p.colMenu && tmpcm.colmenu) {\n\t\t\t\tthead += \"<a class='colmenu' href='#/'><span class='colmenuspan \"+iconbase+' '+colmenustyle.icon_menu+\"'></span></a>\";\n\t\t\t}\n\t\t\tthead += \"</div></th>\";\n\t\t}\n\t\tthead += \"</tr></thead>\";\n\t\timgs = null;\n\t\ttmpcm = null;\n\t\t$(this).append(thead);\n\t\t$(\"thead tr:first th\",this).hover(\n\t\t\tfunction(){ $(this).addClass(hover);},\n\t\t\tfunction(){\t$(this).removeClass(hover);}\n\t\t);\n\t\tif(this.p.multiselect) {\n\t\t\tvar emp=[], chk;\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){\n\t\t\t\tts.p.selarrrow = [];\n\t\t\t\tvar froz = ts.p.frozenColumns === true ? ts.p.id + \"_frozen\" : \"\";\n\t\t\t\tif (this.checked) {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif (i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t$(this).addClass(highlight).attr(\"aria-selected\",\"true\");  \n\t\t\t\t\t\t\t\tts.p.selarrrow.push(this.id);\n\t\t\t\t\t\t\t\tts.p.selrow = this.id;\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tchk=true;\n\t\t\t\t\temp=[];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t$(this).removeClass(highlight).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t\t\t\temp.push(this.id);\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tts.p.selrow = null;\n\t\t\t\t\tchk=false;\n\t\t\t\t}\n\t\t\t\t$(ts).triggerHandler(\"jqGridSelectAll\", [chk ? ts.p.selarrrow : emp, chk]);\n\t\t\t\tif($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}\n\t\t\t});\n\t\t}\n\n\t\tif(ts.p.autowidth===true) {\n\t\t\tvar pw = $(eg).innerWidth();\n\t\t\tts.p.width = pw > 0?  pw: 'nw';\n\t\t}\n\t\tsetColWidth();\n\t\t$(eg).css(\"width\",grid.width+\"px\").append(\"<div class='ui-jqgrid-resize-mark' id='rs_m\"+ts.p.id+\"'>&#160;</div>\");\n\t\tif(ts.p.scrollPopUp) {\n\t\t\t$(eg).append(\"<div \"+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+\" id='scroll_g\"+ts.p.id+\"'></div>\");\n\t\t}\n\t\t$(gv).css(\"width\",grid.width+\"px\");\n\t\tthead = $(\"thead:first\",ts).get(0);\n\t\tvar\ttfoot = \"\";\n\t\tif(ts.p.footerrow) { tfoot += \"<table role='presentation' style='width:\"+ts.p.tblwidth+\"px' \"+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ \"><tbody><tr role='row' \"+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+\">\"; }\n\t\tvar thr = $(\"tr:first\",thead),\n\t\tfirstr = \"<tr class='jqgfirstrow' role='row'>\";\n\t\tts.p.disableClick=false;\n\t\t$(\"th\",thr).each(function ( j ) {\n\t\t\ttmpcm = ts.p.colModel[j];\n\t\t\tw = tmpcm.width;\n\t\t\tif(tmpcm.resizable === undefined) {\n\t\t\t\ttmpcm.resizable = true;\n\t\t\t}\n\t\t\tif(tmpcm.resizable){\n\t\t\t\tres = document.createElement(\"span\");\n\t\t\t\t$(res).html(\"&#160;\").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir)\n\t\t\t\t.css(\"cursor\",\"col-resize\");\n\t\t\t\t$(this).addClass(ts.p.resizeclass);\n\t\t\t} else {\n\t\t\t\tres = \"\";\n\t\t\t}\n\t\t\t$(this).css(\"width\",w+\"px\").prepend(res);\n\t\t\tres = null;\n\t\t\tvar hdcol = \"\";\n\t\t\tif( tmpcm.hidden ) {\n\t\t\t\t$(this).css(\"display\",\"none\");\n\t\t\t\thdcol = \"display:none;\";\n\t\t\t}\n\t\t\tfirstr += \"<td role='gridcell' style='height:0px;width:\"+w+\"px;\"+hdcol+\"'></td>\";\n\t\t\tgrid.headers[j] = { width: w, el: this };\n\t\t\tsort = tmpcm.sortable;\n\t\t\tif( typeof sort !== 'boolean') { \n\t\t\t\ttmpcm.sortable =  true; \n\t\t\t\tsort=true;\n\t\t\t}\n\t\t\tvar nm = tmpcm.name;\n\t\t\tif( !(nm === 'cb' || nm==='subgrid' || nm==='rn') ) {\n\t\t\t\tif(ts.p.viewsortcols[2]){\n\t\t\t\t\t$(\">div\",this).addClass('ui-jqgrid-sortable');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(sort) {\n\t\t\t\tif(ts.p.multiSort) {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(ts.p.colModel[j].lso){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( ts.p.colModel[j].lso) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(j===ts.p.lastsort){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(j === ts.p.lastsort && ts.p.sortname !== \"\") {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.footerrow) {\n\t\t\t\ttfoot += \"<td role='gridcell' \"+formatCol(j,0,'', null, '', false)+\">&#160;</td>\"; \n\t\t\t}\n\t\t}).mousedown(function(e) {\n\t\t\tif ($(e.target).closest(\"th>span.ui-jqgrid-resize\").length !== 1) { return; }\n\t\t\tvar ci = getColumnHeaderIndex(this);\n\t\t\tif(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}\n\t\t\tgrid.dragStart(ci, e, getOffset(ci));\n\t\t\treturn false;\n\t\t}).click(function(e) {\n\t\t\tif (ts.p.disableClick) {\n\t\t\t\tts.p.disableClick = false;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar s = \"th>div.ui-jqgrid-sortable\",r,d;\n\t\t\tif (!ts.p.viewsortcols[2]) { s = \"th>div>span>span.ui-grid-ico-sort\"; }\n\t\t\tvar t = $(e.target).closest(s);\n\t\t\tif (t.length !== 1) { return; }\n\t\t\tvar ci;\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\tvar tid =  $(this)[0].id.substring( ts.p.id.length + 1 );\n\t\t\t\t$(ts.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === tid) {\n\t\t\t\t\t\tci = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tci = getColumnHeaderIndex(this);\n\t\t\t}\n\t\t\t//\n\t\t\tif($(e.target).hasClass('colmenuspan')) {\n\t\t\t\tif($(\"#column_menu\")[0] != null) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\n\t\t\t\tvar colindex = $.jgrid.getCellIndex(e.target);\n\t\t\t\tif(colindex === -1) { return;}\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = ( offset.top);\n\t\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\t\tleft += $(this).outerWidth();\n\t\t\t\t}\n\t\t\t\tbuildColMenu(colindex, left, top, t );\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t//\n\t\t\tif (!ts.p.viewsortcols[2]) { r=true;d=t.attr(\"sort\"); }\n\t\t\tif(ci != null){\n\t\t\t\tsortData( $('div',this)[0].id, ci, r, d, this);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t\ttmpcm = null;\n\t\tif (ts.p.sortable && $.fn.sortable) {\n\t\t\ttry {\n\t\t\t\t$(ts).jqGrid(\"sortableColumns\", thr);\n\t\t\t} catch (e){}\n\t\t}\n\t\tif(ts.p.footerrow) { tfoot += \"</tr></tbody></table>\"; }\n\t\tfirstr += \"</tr>\";\n\t\ttbody = document.createElement(\"tbody\");\n\t\t//$(this).append(firstr);\n\t\tthis.appendChild(tbody);\n\t\t$(this).addClass(getstyle(stylemodule,\"rowTable\", true, 'ui-jqgrid-btable ui-common-table')).append(firstr);\n\t\t//$(firstr).insertAfter(this);\n\t\tfirstr = null;\n\t\tvar hTable = $(\"<table \"+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+\" style='width:\"+ts.p.tblwidth+\"px' role='presentation' aria-labelledby='gbox_\"+this.id+\"'></table>\").append(thead),\n\t\thg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,\n\t\thb = $(\"<div class='ui-jqgrid-hbox\" + (dir===\"rtl\" ? \"-rtl\" : \"\" )+\"'></div>\"),\n\t\tbstw = ts.p.styleUI === 'Bootstrap' && !isNaN(ts.p.height) ? 2 : 0;\n\t\tthead = null;\n\t\tgrid.hDiv = document.createElement(\"div\");\n\t\tgrid.hDiv.style.width = (grid.width - bstw) + \"px\";\n\t\tgrid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv');\n\n\t\t$(grid.hDiv).append(hb);\n\t\t$(hb).append(hTable);\n\t\thTable = null;\n\t\tif(hg) { $(grid.hDiv).hide(); }\n\t\tif(ts.p.pager){\n\t\t\t// TBD -- escape ts.p.pager here?\n\t\t\tif(typeof ts.p.pager === \"string\") {if(ts.p.pager.substr(0,1) !== \"#\") { ts.p.pager = \"#\"+ts.p.pager;} }\n\t\t\telse { ts.p.pager = \"#\"+ $(ts.p.pager).attr(\"id\");}\n\t\t\t$(ts.p.pager).css({width: grid.width+\"px\"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg);\n\t\t\tif(hg) {$(ts.p.pager).hide();}\n\t\t\tsetPager(ts.p.pager,'');\n\t\t}\n\t\tif( ts.p.cellEdit === false && ts.p.hoverrows === true) {\n\t\t\t$(ts).on({\n\t\t\t\tmouseover: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t$(ptr).addClass(hover);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmouseout: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t$(ptr).removeClass(hover);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tvar ri,ci, tdHtml;\n\t\t$(ts).before(grid.hDiv).on({\n\t\t\t'click': function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest(\"table.ui-jqgrid-btable\").attr('id') || '').replace(\"_frozen\",\"\") !== ts.id ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tvar scb = $(td).filter(\":enabled\").hasClass(\"cbox\"),\n\t\t\t\tcSel = $(ts).triggerHandler(\"jqGridBeforeSelectRow\", [ptr[0].id, e]);\n\t\t\t\tcSel = (cSel === false || cSel === 'stop') ? false : true;\n\t\t\t\tif ($.isFunction(ts.p.beforeSelectRow)) {\n\t\t\t\t\tvar allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e);\n\t\t\t\t\tif (allowRowSelect === false || allowRowSelect === 'stop') {\n\t\t\t\t\t\tcSel = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && !scb) ) { return; }\n\t\t\t\tri = ptr[0].id;\n\t\t\t\ttd = $(td).closest(\"tr.jqgrow>td\");\n\t\t\t\tif (td.length > 0) {\n\t\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\t\ttdHtml = $(td).closest(\"td,th\").html();\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridCellSelect\", [ri,ci,tdHtml,e]);\n\t\t\t\t\tif($.isFunction(ts.p.onCellSelect)) {\n\t\t\t\t\t\tts.p.onCellSelect.call(ts,ri,ci,tdHtml,e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.cellEdit === true) {\n\t\t\t\t\tif(ts.p.multiselect && scb && cSel){\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\", ri ,true,e);\n\t\t\t\t\t} else if (td.length > 0) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$(ts).jqGrid(\"editCell\", ptr[0].rowIndex, ci, true);\n\t\t\t\t\t\t} catch (_) {}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!cSel) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( !ts.p.multikey ) {\n\t\t\t\t\tif(ts.p.multiselect && ts.p.multiboxonly) {\n\t\t\t\t\t\tif(scb){$(ts).jqGrid(\"setSelection\",ri,true,e);}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar frz = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\t\t\t\t\t$(ts.p.selarrrow).each(function(i,n){\n\t\t\t\t\t\t\t\tvar trid = $(ts).jqGrid('getGridRowById',n);\n\t\t\t\t\t\t\t\tif(trid) { \n\t\t\t\t\t\t\t\t\t$( trid ).removeClass(highlight); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz)).removeClass(highlight);\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tts.p.selarrrow = [];\n\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(e[ts.p.multikey]) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t} else if(ts.p.multiselect && scb) {\n\t\t\t\t\t\tscb = $(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri).is(\":checked\");\n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", !scb);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'reloadGrid': function(e,opts) {\n\t\t\t\tif(ts.p.treeGrid ===true) {\tts.p.datatype = ts.p.treedatatype;}\n\t\t\t\topts = opts || {};\n\t\t\t\tif (opts.current) {\n\t\t\t\t\tts.grid.selectionPreserver(ts);\n\t\t\t\t}\n\t\t\t\tif(ts.p.datatype===\"local\"){ $(ts).jqGrid(\"resetSelection\");  if(ts.p.data.length) { normalizeData(); refreshIndex();} }\n\t\t\t\telse if(!ts.p.treeGrid) {\n\t\t\t\t\tts.p.selrow=null;\n\t\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[];setHeadCheckBox(false);}\n\t\t\t\t\tts.p.savedRow = [];\n\t\t\t\t}\n\t\t\t\tif(ts.p.scroll) {emptyRows.call(ts, true, false);}\n\t\t\t\tif (opts.page) {\n\t\t\t\t\tvar page = opts.page;\n\t\t\t\t\tif (page > ts.p.lastpage) { page = ts.p.lastpage; }\n\t\t\t\t\tif (page < 1) { page = 1; }\n\t\t\t\t\tts.p.page = page;\n\t\t\t\t\tif (ts.grid.prevRowHeight) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) {\n\t\t\t\t\tdelete ts.p.lastpage;\n\t\t\t\t\tts.grid.populateVisible();\n\t\t\t\t} else {\n\t\t\t\t\tts.grid.populate();\n\t\t\t\t}\n\t\t\t\tif(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t'dblclick' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar dbcr = $(ts).triggerHandler(\"jqGridDblClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\tif ($.isFunction(ts.p.ondblClickRow)) { \n\t\t\t\t\tdbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\t}\n\t\t\t},\n\t\t\t'contextmenu' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tif(!ts.p.multiselect) {\t$(ts).jqGrid(\"setSelection\",ptr[0].id,true,e);\t}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar rcr = $(ts).triggerHandler(\"jqGridRightClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\tif ($.isFunction(ts.p.onRightClickRow)) { \n\t\t\t\t\trcr = ts.p.onRightClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t//---\n\t\tgrid.bDiv = document.createElement(\"div\");\n\t\tif(isMSIE) { if(String(ts.p.height).toLowerCase() === \"auto\") { ts.p.height = \"100%\"; } }\n\t\t$(grid.bDiv)\n\t\t\t.append($('<div style=\"position:relative;\"></div>').append('<div></div>').append(this))\n\t\t\t.addClass(\"ui-jqgrid-bdiv\")\n\t\t\t.css({ height: ts.p.height+(isNaN(ts.p.height)?\"\":\"px\"), width: (grid.width - bstw)+\"px\"})\n\t\t\t.scroll(grid.scrollGrid);\n\t\t$(\"table:first\",grid.bDiv).css({width:ts.p.tblwidth+\"px\"});\n\t\tif( !$.support.tbody ) { //IE\n\t\t\tif( $(\"tbody\",this).length === 2 ) { $(\"tbody:gt(0)\",this).remove();}\n\t\t}\n\t\tif(ts.p.multikey){\n\t\t\tif( $.jgrid.msie()) {\n\t\t\t\t$(grid.bDiv).on(\"selectstart\",function(){return false;});\n\t\t\t} else {\n\t\t\t\t$(grid.bDiv).on(\"mousedown\",function(){return false;});\n\t\t\t}\n\t\t}\n\t\tif(hg) { // hidden grid\n\t\t\t$(grid.bDiv).hide();\n\t\t}\n\t\tvar icoo =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_open', true),\n\t\ticoc =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_close', true);\n\t\tgrid.cDiv = document.createElement(\"div\");\n\t\tvar arf = ts.p.hidegrid===true ? $(\"<a role='link' class='ui-jqgrid-titlebar-close HeaderButton \"+cornerall+\"' title='\"+($.jgrid.getRegional(ts, \"defaults.showhide\", ts.p.showhide) || \"\")+\"'\" + \" />\").hover(\n\t\t\tfunction(){ arf.addClass(hover);},\n\t\t\tfunction() {arf.removeClass(hover);})\n\t\t.append(\"<span class='ui-jqgrid-headlink \" + icoo +\"'></span>\").css((dir===\"rtl\"?\"left\":\"right\"),\"0px\") : \"\";\n\t\t$(grid.cDiv).append(arf).append(\"<span class='ui-jqgrid-title'>\"+ts.p.caption+\"</span>\")\n\t\t.addClass(\"ui-jqgrid-titlebar ui-jqgrid-caption\"+(dir===\"rtl\" ? \"-rtl\" :\"\" )+\" \"+getstyle(stylemodule,'gridtitleBox',true));\n\t\t$(grid.cDiv).insertBefore(grid.hDiv);\n\t\tif( ts.p.toolbar[0] ) {\n\t\t\tvar tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata');\n\t\t\tgrid.uDiv = document.createElement(\"div\");\n\t\t\tif(ts.p.toolbar[1] === \"top\") {$(grid.uDiv).insertBefore(grid.hDiv);}\n\t\t\telse if (ts.p.toolbar[1]===\"bottom\" ) {$(grid.uDiv).insertAfter(grid.hDiv);}\n\t\t\tif(ts.p.toolbar[1]===\"both\") {\n\t\t\t\tgrid.ubDiv = document.createElement(\"div\");\n\t\t\t\t$(grid.uDiv).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw);\n\t\t\t\t$(grid.ubDiv).addClass( tbstyle + \" ui-userdata-bottom\").attr(\"id\",\"tb_\"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw);\n\t\t\t\tif(hg)  {$(grid.ubDiv).hide();}\n\t\t\t} else {\n\t\t\t\t$(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id);\n\t\t\t}\n\t\t\tif(hg) {$(grid.uDiv).hide();}\n\t\t}\n\t\tif(ts.p.toppager) {\n\t\t\tts.p.toppager = $.jgrid.jqID(ts.p.id)+\"_toppager\";\n\t\t\tgrid.topDiv = $(\"<div id='\"+ts.p.toppager+\"'></div>\")[0];\n\t\t\tts.p.toppager = \"#\"+ts.p.toppager;\n\t\t\t$(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv);\n\t\t\tsetPager(ts.p.toppager,'_t');\n\t\t}\n\t\tif(ts.p.footerrow) {\n\t\t\tgrid.sDiv = $(\"<div class='ui-jqgrid-sdiv'></div>\")[0];\n\t\t\thb = $(\"<div class='ui-jqgrid-hbox\"+(dir===\"rtl\"?\"-rtl\":\"\")+\"'></div>\");\n\t\t\t$(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);\n\t\t\t$(hb).append(tfoot);\n\t\t\tgrid.footers = $(\".ui-jqgrid-ftable\",grid.sDiv)[0].rows[0].cells;\n\t\t\tif(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); }\n\t\t\tif(hg) {$(grid.sDiv).hide();}\n\t\t}\n\t\thb = null;\n\t\tif(ts.p.caption) {\n\t\t\tvar tdt = ts.p.datatype;\n\t\t\tif(ts.p.hidegrid===true) {\n\t\t\t\t$(\".ui-jqgrid-titlebar-close\",grid.cDiv).click( function(e){\n\t\t\t\t\tvar onHdCl = $.isFunction(ts.p.onHeaderClick),\n\t\t\t\t\telems = \".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv\",\n\t\t\t\t\tcounter, self = this;\n\t\t\t\t\tif(ts.p.toolbar[0]===true) {\n\t\t\t\t\t\tif( ts.p.toolbar[1]==='both') {\n\t\t\t\t\t\t\telems += ', #' + $(grid.ubDiv).attr('id');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telems += ', #' + $(grid.uDiv).attr('id');\n\t\t\t\t\t}\n\t\t\t\t\tcounter = $(elems,\"#gview_\"+$.jgrid.jqID(ts.p.id)).length;\n\n\t\t\t\t\tif(ts.p.gridstate === 'visible') {\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideUp(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoo).addClass(icoc);\n\t\t\t\t\t\t\t\tts.p.gridstate = 'hidden';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hide(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if(ts.p.gridstate === 'hidden'){\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideDown(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoc).addClass(icoo);\n\t\t\t\t\t\t\t\tif(hg) {ts.p.datatype = tdt;populate();hg=false;}\n\t\t\t\t\t\t\t\tts.p.gridstate = 'visible';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).show(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(hg) {ts.p.datatype=\"local\"; $(\".ui-jqgrid-titlebar-close\",grid.cDiv).trigger(\"click\");}\n\t\t\t}\n\t\t} else {\n\t\t\t$(grid.cDiv).hide();\n\t\t\tif(!ts.p.toppager) {\n\t\t\t\t$(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true));\n\t\t\t}\n\t\t}\n\t\t$(grid.hDiv).after(grid.bDiv)\n\t\t.mousemove(function (e) {\n\t\t\tif(grid.resizing){grid.dragMove(e);return false;}\n\t\t});\n\t\t$(\".ui-jqgrid-labels\",grid.hDiv).on(\"selectstart\", function () { return false; });\n\t\t$(document).on( \"mouseup.jqGrid\" + ts.p.id, function () {\n\t\t\tif(grid.resizing) {\tgrid.dragEnd( true ); return false;}\n\t\t\treturn true;\n\t\t});\n\t\tif(ts.p.direction === 'rtl') {\n\t\t\t$(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){\n\t\t\t\t\tvar  vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth;\n\t\t\t\t\t//gridhbox = $(\"div:first\",grid.hDiv);\n\t\t\t\t\tts.p.scrollOffset = vScrollWidth;\n\t\t\t\t\t// for future implementation\n\t\t\t\t\t//if (gridhbox.hasClass(\"ui-jqgrid-hbox-rtl\")) {\n\t\t\t\t\t\t$(\"div:first\",grid.hDiv).css({paddingLeft: vScrollWidth + \"px\"});\n\t\t\t\t\t//} else {\n\t\t\t\t\t\t//gridhbox.css({paddingRight: vScrollWidth + \"px\"});\n\t\t\t\t\t//}\n\t\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t});\n\t\t}\n\t\tts.formatCol = formatCol;\n\t\tts.sortData = sortData;\n\t\tts.updatepager = updatepager;\n\t\tts.refreshIndex = refreshIndex;\n\t\tts.setHeadCheckBox = setHeadCheckBox;\n\t\tts.constructTr = constructTr;\n\t\tts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};\n\t\t$.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq});\n\t\tthis.grid = grid;\n\t\tts.addXmlData = function(d) {addXmlData( d );};\n\t\tts.addJSONData = function(d) {addJSONData( d );};\n\t\tts.addLocalData = function(d) { return addLocalData( d );};\n\t\tthis.grid.cols = this.rows[0].cells;\n\t\t$(ts).triggerHandler(\"jqGridInitGrid\");\n\t\tif ($.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); }\n\t\tpopulate();\n\t\tts.p.hiddengrid=false;\n\t\tif(ts.p.responsive) {\n\t\t\tvar supportsOrientationChange = \"onorientationchange\" in window,\n\t\t\torientationEvent = supportsOrientationChange ? \"orientationchange\" : \"resize\";\t\t\n\t\t\t$(window).on( orientationEvent, function(){\n\t\t\t\t$(ts).jqGrid('resizeGrid');\n\t\t\t});\n\t\t}\n\t});\n};\n$.jgrid.extend({\n\tgetGridParam : function(name, module) {\n\t\tvar $t = this[0], ret;\n\t\tif (!$t || !$t.grid) {return;}\n\t\tif(module === undefined && typeof module !== 'string') {\n\t\t\tmodule = 'jqGrid'; //$t.p\n\t\t}\n\t\tret = $t.p;\n\t\tif(module !== 'jqGrid') {\n\t\t\ttry {\n\t\t\t\tret = $($t).data( module );\n\t\t\t} catch (e) {\n\t\t\t\tret = $t.p;\n\t\t\t}\n\t\t}\n\t\tif (!name) { return ret; }\t\n\t\treturn ret[name] !== undefined ? ret[name] : null;\n\t},\n\tsetGridParam : function (newParams, overwrite){\n\t\treturn this.each(function(){\n\t\t\tif(overwrite == null) {\n\t\t\t\toverwrite = false;\n\t\t\t}\n\t\t\tif (this.grid && typeof newParams === 'object') {\n\t\t\t\tif(overwrite === true) {\n\t\t\t\t\tvar params = $.extend({}, this.p, newParams);\n\t\t\t\t\tthis.p = params;\n\t\t\t\t} else {\n\t\t\t\t\t$.extend(true,this.p,newParams);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetGridRowById: function ( rowid ) {\n\t\tvar row;\n\t\tthis.each( function(){\n\t\t\ttry {\n\t\t\t\t//row = this.rows.namedItem( rowid );\n\t\t\t\tvar i = this.rows.length;\n\t\t\t\twhile(i--) {\n\t\t\t\t\tif( rowid.toString() === this.rows[i].id) {\n\t\t\t\t\t\trow = this.rows[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch ( e ) {\n\t\t\t\trow = $(this.grid.bDiv).find( \"#\" + $.jgrid.jqID( rowid ));\n\t\t\t}\n\t\t});\n\t\treturn row;\n\t},\n\tgetDataIDs : function () {\n\t\tvar ids=[], i=0, len, j=0;\n\t\tthis.each(function(){\n\t\t\tlen = this.rows.length;\n\t\t\tif(len && len>0){\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($(this.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\tids[j] = this.rows[i].id;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ids;\n\t},\n\tsetSelection : function(selection,onsr, e) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, stat,pt, ner, ia, tpsr, fid, csr,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle($t.p.styleUI+'.common','highlight', true),\n\t\t\tdisabled = getstyle($t.p.styleUI+'.common','disabled', true);\n\t\t\tif(selection === undefined) { return; }\n\t\t\tonsr = onsr === false ? false : true;\n\t\t\tpt=$($t).jqGrid('getGridRowById', selection);\n\t\t\tif(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; }\n\t\t\tfunction scrGrid(iR){\n\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\trpos = $($t.rows[iR]).position().top,\n\t\t\t\trh = $t.rows[iR].clientHeight;\n\t\t\t\tif(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }\n\t\t\t\telse if(rpos < ch+st) {\n\t\t\t\t\tif(rpos < st) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = rpos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.scrollrows===true) {\n\t\t\t\tner = $($t).jqGrid('getGridRowById',selection).rowIndex;\n\t\t\t\tif(ner >=0 ){\n\t\t\t\t\tscrGrid(ner);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.frozenColumns === true ) {\n\t\t\t\tfid = $t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(!$t.p.multiselect) {\t\n\t\t\t\tif(pt.className !== \"ui-subgrid\") {\n\t\t\t\t\tif( $t.p.selrow !== pt.id ) {\n\t\t\t\t\t\tcsr = $($t).jqGrid('getGridRowById', $t.p.selrow);\n\t\t\t\t\t\tif( csr ) {\n\t\t\t\t\t\t\t$(  csr ).removeClass(highlight).attr({\"aria-selected\":\"false\", \"tabindex\" : \"-1\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(pt).addClass(highlight).attr({\"aria-selected\":\"true\", \"tabindex\" : \"0\"});//.focus();\n\t\t\t\t\t\tif(fid) {\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstat = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\t\tif( onsr ) { \n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//unselect selectall checkbox when deselecting a specific row\n\t\t\t\t$t.setHeadCheckBox( false );\n\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\tia = $.inArray($t.p.selrow,$t.p.selarrrow);\n\t\t\t\tif (  ia === -1 ){\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).addClass(highlight).attr(\"aria-selected\",\"true\");}\n\t\t\t\t\tstat = true;\n\t\t\t\t\t$t.p.selarrrow.push($t.p.selrow);\n\t\t\t\t} else {\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).removeClass(highlight).attr(\"aria-selected\",\"false\");}\n\t\t\t\t\tstat = false;\n\t\t\t\t\t$t.p.selarrrow.splice(ia,1);\n\t\t\t\t\ttpsr = $t.p.selarrrow[0];\n\t\t\t\t\t$t.p.selrow = (tpsr === undefined) ? null : tpsr;\n\t\t\t\t}\n\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\tif(fid) {\n\t\t\t\t\tif(ia === -1) {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\t}\n\t\t\t\tif( onsr ) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tresetSelection : function( rowid ){\n\t\treturn this.each(function(){\n\t\t\tvar t = this, sr, fid,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle(t.p.styleUI+'.common','highlight', true),\n\t\t\thover = getstyle(t.p.styleUI+'.common','hover', true);\n\t\t\tif( t.p.frozenColumns === true ) {\n\t\t\t\tfid = t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(rowid !== undefined ) {\n\t\t\t\tsr = rowid === t.p.selrow ? t.p.selrow : rowid;\n\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(sr)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\tif (fid) { $(\"#\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\tif(t.p.multiselect) {\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { $(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false); }\n\t\t\t\t\tt.setHeadCheckBox( false);\n\t\t\t\t\tvar ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow);\n\t\t\t\t\tif (  ia !== -1 ){\n\t\t\t\t\t\tt.p.selarrrow.splice(ia,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); }\n\t\t\t\tsr = null;\n\t\t\t} else if(!t.p.multiselect) {\n\t\t\t\tif(t.p.selrow) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\tif(fid) { $(\"#\"+$.jgrid.jqID(t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); }\n\t\t\t\t\tt.p.selrow = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$(t.p.selarrrow).each(function(i,n){\n\t\t\t\t\t$( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { \n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); \n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t}\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); }\n\t\t\t\t});\n\t\t\t\tt.setHeadCheckBox( false );\n\t\t\t\tt.p.selarrrow = [];\n\t\t\t\tt.p.selrow = null;\n\t\t\t}\n\t\t\tif(t.p.cellEdit === true) {\n\t\t\t\tif(parseInt(t.p.iCol,10)>=0  && parseInt(t.p.iRow,10)>=0) {\n\t\t\t\t\t$(\"td:eq(\"+t.p.iCol+\")\",t.rows[t.p.iRow]).removeClass(\"edit-cell \" + highlight );\n\t\t\t\t\t$(t.rows[t.p.iRow]).removeClass(\"selected-row \" + hover );\n\t\t\t\t}\n\t\t\t}\n\t\t\tt.p.savedRow = [];\n\t\t});\n\t},\n\tgetRowData : function( rowid, usedata ) {\n\t\tvar res = {}, resall, getall=false, len, j=0;\n\t\tthis.each(function(){\n\t\t\tvar $t = this,nm,ind;\n\t\t\tif(rowid == null) {\n\t\t\t\tgetall = true;\n\t\t\t\tresall = [];\n\t\t\t\tlen = $t.rows.length-1;\n\t\t\t} else {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(!ind) { return res; }\n\t\t\t\tlen = 1;\n\t\t\t}\n\t\t\tif( !(usedata && usedata === true && $t.p.data.length > 0)  ) {\n\t\t\t\tusedata = false;\n\t\t\t}\n\t\t\twhile(j<len){\n\t\t\t\tif(getall) { \n\t\t\t\t\tind = $t.rows[j+1];  // ignore first not visible row\n\t\t\t\t}\n\t\t\t\tif( $(ind).hasClass('jqgrow') ) {\n\t\t\t\t\tif(usedata) {\n\t\t\t\t\t\tres = $t.p.data[$t.p._index[ind.id]]; \n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\t\t\tif($t.p.treeGrid===true && nm === $t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(\"span:first\",this).html());\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(getall) { resall.push(res); res={}; }\n\t\t\t\t}\n\t\t\t\tj++;\n\t\t\t}\n\t\t});\n\t\treturn resall || res;\n\t},\n\tdelRowData : function(rowid) {\n\t\tvar success = false, rowInd, ia, nextRow;\n\t\tthis.each(function() {\n\t\t\tvar $t = this;\n\t\t\trowInd = $($t).jqGrid('getGridRowById', rowid);\n\t\t\tif(!rowInd) {return false;}\n\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\tnextRow = $(rowInd).next();\n\t\t\t\t\tif(nextRow.hasClass('ui-subgrid')) {\n\t\t\t\t\t\tnextRow.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(rowInd).remove();\n\t\t\t\t$t.p.records--;\n\t\t\t\t$t.p.reccount--;\n\t\t\t\t$t.updatepager(true,false);\n\t\t\t\tsuccess=true;\n\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\tia = $.inArray(rowid,$t.p.selarrrow);\n\t\t\t\t\tif(ia !== -1) { $t.p.selarrrow.splice(ia,1);}\n\t\t\t\t}\n\t\t\t\tif ($t.p.multiselect && $t.p.selarrrow.length > 0) {\n\t\t\t\t\t$t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1];\n\t\t\t\t} else {\n\t\t\t\t\tif( $t.p.selrow === rowid ) {\n\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tif($t.p.datatype === 'local') {\n\t\t\t\tvar id = $.jgrid.stripPref($t.p.idPrefix, rowid),\n\t\t\t\tpos = $t.p._index[id];\n\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t$t.p.data.splice(pos,1);\n\t\t\t\t\t$t.refreshIndex();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( $t.p.altRows === true && success ) {\n\t\t\t\tvar cn = $t.p.altclass;\n\t\t\t\t$($t.rows).each(function(i){\n\t\t\t\t\tif(i % 2 === 1) { $(this).addClass(cn); }\n\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\tsetRowData : function(rowid, data, cssp) {\n\t\tvar nm, success=true, title;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid) {return false;}\n\t\t\tvar t = this, vl, ind, cp = typeof cssp, lcdata={};\n\t\t\tind = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(!ind) { return false; }\n\t\t\tif( data ) {\n\t\t\t\ttry {\n\t\t\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\tvar dval =$.jgrid.getAccessor(data,nm);\n\t\t\t\t\t\tif( dval !== undefined) {\n\t\t\t\t\t\t\tlcdata[nm] = this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval;\n\t\t\t\t\t\t\tvl = t.formatter( rowid, lcdata[nm], i, data, 'edit');\n\t\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm === t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tvar id = $.jgrid.stripPref(t.p.idPrefix, rowid),\n\t\t\t\t\t\tpos = t.p._index[id], key;\n\t\t\t\t\t\tif(t.p.treeGrid) {\n\t\t\t\t\t\t\tfor(key in t.p.treeReader){\n\t\t\t\t\t\t\t\tif(t.p.treeReader.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tdelete lcdata[t.p.treeReader[key]];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t\t\tt.p.data[pos] = $.extend(true, t.p.data[pos], lcdata);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlcdata = null;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tsuccess = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(success) {\n\t\t\t\tif(cp === 'string') {$(ind).addClass(cssp);} else if(cssp !== null && cp === 'object') {$(ind).css(cssp);}\n\t\t\t\t$(t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\taddRowData : function(rowid,rdata,pos,src) {\n\t\tif($.inArray( pos, [\"first\", \"last\", \"before\", \"after\"] ) === -1) {pos = \"last\";}\n\t\tvar success = false, nm, row, rnc=\"\", msc=\"\", gi, si, ni,sind, i, v, prp=\"\", aradd, cnm, cn, data, cm, id;\n\t\tif(rdata) {\n\t\t\tif($.isArray(rdata)) {\n\t\t\t\taradd=true;\n\t\t\t\t//pos = \"last\";\n\t\t\t\tcnm = rowid;\n\t\t\t} else {\n\t\t\t\trdata = [rdata];\n\t\t\t\taradd = false;\n\t\t\t}\n\t\t\tthis.each(function() {\n\t\t\t\tvar t = this, datalen = rdata.length;\n\t\t\t\tni = t.p.rownumbers===true ? 1 :0;\n\t\t\t\tgi = t.p.multiselect ===true ? 1 :0;\n\t\t\t\tsi = t.p.subGrid===true ? 1 :0;\n\t\t\t\tif(!aradd) {\n\t\t\t\t\tif(rowid !== undefined) { rowid = String(rowid);}\n\t\t\t\t\telse {\n\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\tif(t.p.keyName !== false) {\n\t\t\t\t\t\t\tcnm = t.p.keyName;\n\t\t\t\t\t\t\tif(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcn = t.p.altclass;\n\t\t\t\tvar k = 0, cna = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {}, classes,\n\t\t\t\tair = $.isFunction(t.p.afterInsertRow) ? true : false;\n\t\t\t\tif(ni) {\n\t\t\t\t\trnc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rownumBox', false, 'jqgrid-rownum');\n\t\t\t\t}\n\t\t\t\tif(gi) {\n\t\t\t\t\tmsc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'multiBox', false, 'cbox');\n\t\t\t\t}\n\t\t\t\twhile(k < datalen) {\n\t\t\t\t\tdata = rdata[k];\n\t\t\t\t\trow=[];\n\t\t\t\t\tclasses = cna;\n\t\t\t\t\tif(aradd) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trowid = data[cnm];\n\t\t\t\t\t\t\tif(rowid===undefined) {\n\t\t\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {rowid = $.jgrid.randId();}\n\t\t\t\t\t\tclasses += (t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? \" \" + cn : \"\" : \"\");\n\t\t\t\t\t}\n\t\t\t\t\tid = rowid;\n\t\t\t\t\trowid  = t.p.idPrefix + rowid;\n\t\t\t\t\tif(ni){\n\t\t\t\t\t\tprp = t.formatCol(0,1,'',null,rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \" + rnc +\" \"+prp+\">0</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(gi) {\n\t\t\t\t\t\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+t.p.id+\"_\"+rowid+\"\\\" \"+msc+\"/>\";\n\t\t\t\t\t\tprp = t.formatCol(ni,1,'', null, rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(si) {\n\t\t\t\t\t\trow[row.length] = $(t).jqGrid(\"addSubGridCell\",gi+ni,1);\n\t\t\t\t\t}\n\t\t\t\t\tfor(i = gi+si+ni; i < t.p.colModel.length;i++){\n\t\t\t\t\t\tcm = t.p.colModel[i];\n\t\t\t\t\t\tnm = cm.name;\n\t\t\t\t\t\tlcdata[nm] = data[nm];\n\t\t\t\t\t\tv = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data );\n\t\t\t\t\t\tprp = t.formatCol(i,1,v, data, rowid, lcdata);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\trow.unshift( t.constructTr(rowid, false, classes, lcdata, data ) );\n\t\t\t\t\trow[row.length] = \"</tr>\";\n\t\t\t\t\tif(t.rows.length === 0){\n\t\t\t\t\t\t$(\"table:first\",t.grid.bDiv).append(row.join(''));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch (pos) {\n\t\t\t\t\t\t\tcase 'last':\n\t\t\t\t\t\t\t\t$(t.rows[t.rows.length-1]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = t.rows.length-1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'first':\n\t\t\t\t\t\t\t\t$(t.rows[0]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif (sind) {\n\t\t\t\t\t\t\t\t\tif($(t.rows[sind.rowIndex+1]).hasClass(\"ui-subgrid\")) { $(t.rows[sind.rowIndex+1]).after(row); }\n\t\t\t\t\t\t\t\t\telse { $(sind).after(row.join('')); }\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex + 1;\n\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif(sind) {\n\t\t\t\t\t\t\t\t\t$(sind).before(row.join(''));\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex - 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(t.p.subGrid===true) {\n\t\t\t\t\t\t$(t).jqGrid(\"addSubGrid\",gi+ni, sind);\n\t\t\t\t\t}\n\t\t\t\t\tt.p.records++;\n\t\t\t\t\tt.p.reccount++;\n\t\t\t\t\t$(t).triggerHandler(\"jqGridAfterInsertRow\", [rowid,data,data]);\n\t\t\t\t\tif(air) { t.p.afterInsertRow.call(t,rowid,data,data); }\n\t\t\t\t\tk++;\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tlcdata[t.p.localReader.id] = id;\n\t\t\t\t\t\tt.p._index[id] = t.p.data.length;\n\t\t\t\t\t\tt.p.data.push(lcdata);\n\t\t\t\t\t\tlcdata = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.altRows === true && !aradd) {\n\t\t\t\t\tif (pos === \"last\") {\n\t\t\t\t\t\tif ((t.rows.length-1)%2 === 0)  {$(t.rows[t.rows.length-1]).addClass(cn);}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(t.rows).each(function(i){\n\t\t\t\t\t\t\tif(i % 2 ===0) { $(this).addClass(cn); }\n\t\t\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt.updatepager(true,true);\n\t\t\t\tsuccess = true;\n\t\t\t});\n\t\t}\n\t\treturn success;\n\t},\n\tfooterData : function(action,data, format) {\n\t\tvar nm, success=false, res={}, title;\n\t\tfunction isEmpty(obj) {\n\t\t\tvar i;\n\t\t\tfor(i in obj) {\n\t\t\t\tif (obj.hasOwnProperty(i)) { return false; }\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\tif(action === undefined) { action = \"get\"; }\n\t\tif(typeof format !== \"boolean\") { format  = true; }\n\t\taction = action.toLowerCase();\n\t\tthis.each(function(){\n\t\t\tvar t = this, vl;\n\t\t\tif(!t.grid || !t.p.footerrow) {return false;}\n\t\t\tif(action === \"set\") { if(isEmpty(data)) { return false; } }\n\t\t\tsuccess=true;\n\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\tnm = this.name;\n\t\t\t\tif(action === \"set\") {\n\t\t\t\t\tif( data[nm] !== undefined) {\n\t\t\t\t\t\tvl = format ? t.formatter( \"\", data[nm], i, data, 'edit') : data[nm];\n\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t$(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html(vl).attr(title);\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t} else if(action === \"get\") {\n\t\t\t\t\tres[nm] = $(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn action === \"get\" ? res : success;\n\t},\n\tshowHideCol : function(colname,show) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif( typeof colname === 'string') {colname=[colname];}\n\t\t\tshow = show !== \"none\" ? \"\" : \"none\";\n\t\t\tvar sw = show === \"\" ? true :false,\n\t\t\tgh = $t.p.groupHeader && ($.isArray($t.p.groupHeader) || $.isFunction($t.p.groupHeader) );\n\t\t\tif(gh) { $($t).jqGrid('destroyGroupHeader', false); }\n\t\t\t$(this.p.colModel).each(function(i) {\n\t\t\t\tif ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {\n\t\t\t\t\tif($t.p.frozenColumns === true && this.frozen === true) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr[role=row]\",$t.grid.hDiv).each(function(){\n\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t});\n\t\t\t\t\t$($t.rows).each(function(){\n\t\t\t\t\t\tif (!$(this).hasClass(\"jqgroup\")) {\n\t\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.footerrow) { $(\"tr.footrow td:eq(\"+i+\")\", $t.grid.sDiv).css(\"display\", show); }\n\t\t\t\t\tcw =  parseInt(this.width,10);\n\t\t\t\t\tif(show === \"none\") {\n\t\t\t\t\t\t$t.p.tblwidth -= cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$t.p.tblwidth += cw+brd;\n\t\t\t\t\t}\n\t\t\t\t\tthis.hidden = !sw;\n\t\t\t\t\tfndh=true;\n\t\t\t\t\t$($t).triggerHandler(\"jqGridShowHideCol\", [sw,this.name,i]);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(fndh===true) {\n\t\t\t\tif($t.p.shrinkToFit === true && !isNaN($t.p.height)) { $t.p.tblwidth += parseInt($t.p.scrollOffset,10);}\n\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.p.shrinkToFit === true ? $t.p.tblwidth : $t.p.width );\n\t\t\t}\n\t\t\tif( gh )  {\n\t\t\t\tvar gHead = $.extend([],$t.p.groupHeader);\n\t\t\t\t$t.p.groupHeader = null;\n\t\t\t\tfor(var k =0; k < gHead.length; k++) {\n\t\t\t\t\t$($t).jqGrid('setGroupHeaders', gHead[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\thideCol : function (colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"none\");});\n\t},\n\tshowCol : function(colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"\");});\n\t},\n\tremapColumns : function(permutation, updateCells, keepHeader) {\n\t\tfunction resortArray(a) {\n\t\t\tvar ac;\n\t\t\tif (a.length) {\n\t\t\t\tac = $.makeArray(a);\n\t\t\t} else {\n\t\t\t\tac = $.extend({}, a);\n\t\t\t}\n\t\t\t$.each(permutation, function(i) {\n\t\t\t\ta[i] = ac[this];\n\t\t\t});\n\t\t}\n\t\tvar ts = this.get(0);\n\t\tfunction resortRows(parent, clobj) {\n\t\t\t$(\">tr\"+(clobj||\"\"), parent).each(function() {\n\t\t\t\tvar row = this;\n\t\t\t\tvar elems = $.makeArray(row.cells);\n\t\t\t\t$.each(permutation, function() {\n\t\t\t\t\tvar e = elems[this];\n\t\t\t\t\tif (e) {\n\t\t\t\t\t\trow.appendChild(e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tresortArray(ts.p.colModel);\n\t\tresortArray(ts.p.colNames);\n\t\tresortArray(ts.grid.headers);\n\t\tresortRows($(\"thead:first\", ts.grid.hDiv), keepHeader && \":not(.ui-jqgrid-labels)\");\n\t\tif (updateCells) {\n\t\t\tresortRows($(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"), \".jqgfirstrow, tr.jqgrow, tr.jqfoot\");\n\t\t}\n\t\tif (ts.p.footerrow) {\n\t\t\tresortRows($(\"tbody:first\", ts.grid.sDiv));\n\t\t}\n\t\tif (ts.p.remapColumns) {\n\t\t\tif (!ts.p.remapColumns.length){\n\t\t\t\tts.p.remapColumns = $.makeArray(permutation);\n\t\t\t} else {\n\t\t\t\tresortArray(ts.p.remapColumns);\n\t\t\t}\n\t\t}\n\t\tts.p.lastsort = $.inArray(ts.p.lastsort, permutation);\n\t\tif(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }\n\t\t$(ts).triggerHandler(\"jqGridRemapColumns\", [permutation, updateCells, keepHeader]);\n\t},\n\tsetGridWidth : function(nwidth, shrink) {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) {return;}\n\t\t\tvar $t = this, cw,\n\t\t\tinitwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI === 'Bootstrap' ? 2 : 0;\n\t\t\tif(typeof shrink !== 'boolean') {\n\t\t\t\tshrink=$t.p.shrinkToFit;\n\t\t\t}\n\t\t\tif(isNaN(nwidth)) {return;}\n\t\t\tnwidth = parseInt(nwidth,10); \n\t\t\t$t.grid.width = $t.p.width = nwidth;\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$($t.grid.bDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\t$($t.grid.hDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\tif($t.p.pager ) {\n\t\t\t\t$($t.p.pager).css(\"width\",nwidth+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toppager ) {\n\t\t\t\t$($t.p.toppager).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toolbar[0] === true){\n\t\t\t\t$($t.grid.uDiv).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t\tif($t.p.toolbar[1]===\"both\") {$($t.grid.ubDiv).css(\"width\",(nwidth - bstw)+\"px\");}\n\t\t\t}\n\t\t\tif($t.p.footerrow) { \n\t\t\t\t$($t.grid.sDiv).css(\"width\",(nwidth - bstw)+\"px\"); \n\t\t\t}\n\t\t\tif(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}\n\t\t\tif(shrink===true) {\n\t\t\t\t$.each($t.p.colModel, function() {\n\t\t\t\t\tif(this.hidden===false){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvc++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(vc  === 0) { return; }\n\t\t\t\t$t.p.tblwidth = initwidth;\n\t\t\t\taw = nwidth-brd*vc-gw;\n\t\t\t\tif(!isNaN($t.p.height)) {\n\t\t\t\t\tif($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === 1){\n\t\t\t\t\t\ths = true;\n\t\t\t\t\t\taw -= scw;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\tvar cle = $t.grid.cols.length >0;\n\t\t\t\t$.each($t.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tcw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tif (cw < 0) { return; }\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\t$t.grid.headers[i].width=cw;\n\t\t\t\t\t\t$t.grid.headers[i].el.style.width=cw+\"px\";\n\t\t\t\t\t\tif($t.p.footerrow) { $t.grid.footers[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tif(cle) { $t.grid.cols[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (!lvc) { return; }\n\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(nwidth-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\t$t.p.colModel[lvc].width += cr;\n\t\t\t\t$t.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif($t.p.tblwidth > nwidth) {\n\t\t\t\t\tvar delta = $t.p.tblwidth - parseInt(nwidth,10);\n\t\t\t\t\t$t.p.tblwidth = nwidth;\n\t\t\t\t\tcw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;\n\t\t\t\t} else {\n\t\t\t\t\tcw= $t.p.colModel[lvc].width;\n\t\t\t\t}\n\t\t\t\t$t.grid.headers[lvc].width = cw;\n\t\t\t\t$t.grid.headers[lvc].el.style.width=cw+\"px\";\n\t\t\t\tif(cle) { $t.grid.cols[lvc].style.width = cw+\"px\"; }\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$t.grid.footers[lvc].style.width = cw+\"px\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.tblwidth) {\n\t\t\t\t$('table:first',$t.grid.bDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$('table:first',$t.grid.hDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$('table:first',$t.grid.sDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsetGridHeight : function (nh) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar bDiv = $($t.grid.bDiv);\n\t\t\tbDiv.css({height: nh+(isNaN(nh)?\"\":\"px\")});\n\t\t\tif($t.p.frozenColumns === true){\n\t\t\t\t//follow the original set height to use 16, better scrollbar width detection\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+\"_frozen\").parent().height(bDiv.height() - 16);\n\t\t\t}\n\t\t\t$t.p.height = nh;\n\t\t\tif ($t.p.scroll) { $t.grid.populateVisible(); }\n\t\t});\n\t},\n\tsetCaption : function (newcap){\n\t\treturn this.each(function(){\n\t\t\tvar ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+\".common\",'cornertop', true);\n\t\t\tthis.p.caption=newcap;\n\t\t\t$(\".ui-jqgrid-title, .ui-jqgrid-title-rtl\",this.grid.cDiv).html(newcap);\n\t\t\t$(this.grid.cDiv).show();\n\t\t\t$(this.grid.hDiv).removeClass(ctop);\n\t\t});\n\t},\n\tsetLabel : function(colname, nData, prop, attrp ){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { return; }\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif (nData){\n\t\t\t\t\tvar ico = $(\".s-ico\",thecol);\n\t\t\t\t\t$(\"[id^=jqgh_]\",thecol).empty().html(nData).append(ico);\n\t\t\t\t\t$t.p.colNames[pos] = nData;\n\t\t\t\t}\n\t\t\t\tif (prop) {\n\t\t\t\t\tif(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}\n\t\t\t\t}\n\t\t\t\tif(typeof attrp === 'object') {$(thecol).attr(attrp);}\n\t\t\t}\n\t\t});\n\t},\n\tsetSortIcon : function(colname, position) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1, addpix = 8;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif(position === 'left') {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"left\");\n\t\t\t\t} else {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"none\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t},\n\tsetCell : function(rowid,colname,nData,cssp,attrp, forceupd) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos =-1,v, title;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(colname)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(colname,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ind = $($t).jqGrid('getGridRowById', rowid); \n\t\t\t\tif (ind){\n\t\t\t\t\tvar tcell = $(\"td:eq(\"+pos+\")\",ind), cl=0, rawdat=[];\n\t\t\t\t\tif(nData !== \"\" || forceupd === true ) {\n\t\t\t\t\t\tif(ind.cells !== undefined) {\n\t\t\t\t\t\t\twhile(cl<ind.cells.length) {\n\t\t\t\t\t\t\t\t// slow down speed\n\t\t\t\t\t\t\t\trawdat.push(ind.cells[cl].innerHTML);\n\t\t\t\t\t\t\t\tcl++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $t.formatter(rowid, nData, pos, rawdat, 'edit');\n\t\t\t\t\t\ttitle = $t.p.colModel[pos].title ? {\"title\":$.jgrid.stripHtml(v)} : {};\n\t\t\t\t\t\tif($t.p.treeGrid && $(\".tree-wrap\",$(tcell)).length>0) {\n\t\t\t\t\t\t\t$(\"span\",$(tcell)).html(v).attr(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(tcell).html(v).attr(title);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.datatype === \"local\") {\n\t\t\t\t\t\t\tvar cm = $t.p.colModel[pos], index;\n\t\t\t\t\t\t\tnData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData;\n\t\t\t\t\t\t\tindex = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)];\n\t\t\t\t\t\t\tif(index !== undefined) {\n\t\t\t\t\t\t\t\t$t.p.data[index][cm.name] = nData;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cssp === 'string'){\n\t\t\t\t\t\t$(tcell).addClass(cssp);\n\t\t\t\t\t} else if(cssp) {\n\t\t\t\t\t\t$(tcell).css(cssp);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof attrp === 'object') {$(tcell).attr(attrp);}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetCell : function(rowid,col) {\n\t\tvar ret = false;\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1, cnm, ind;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tcnm = col;\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tcnm = this.name;\n\t\t\t\t\t\tpos = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpos = parseInt(col,10);\n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(ind) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tret = $.unformat.call($t,$(\"td:eq(\"+pos+\")\",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t} catch (e){\n\t\t\t\t\t\tret = $.jgrid.htmlDecode($(\"td:eq(\"+pos+\")\",ind).html());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($t.p.treeGrid && ret && $t.p.ExpandColumn === cnm) {\n\t\t\t\t\tret = $( \"<div>\" + ret +\"</div>\").find(\"span:first\").html();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetCol : function (col, obj, mathopr) {\n\t\tvar ret = [], val, sum=0, min, max, v;\n\t\tobj = typeof obj !== 'boolean' ? false : obj;\n\t\tif(mathopr === undefined) { mathopr = false; }\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(col,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ln = $t.rows.length, i =0, dlen=0;\n\t\t\t\tif (ln && ln>0){\n\t\t\t\t\twhile(i<ln){\n\t\t\t\t\t\tif($($t.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tval = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tval = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\t\t\tv = parseFloat(val);\n\t\t\t\t\t\t\t\tif(!isNaN(v)) {\n\t\t\t\t\t\t\t\t\tsum += v;\n\t\t\t\t\t\t\t\t\tif (max === undefined) {max = min = v;}\n\t\t\t\t\t\t\t\t\tmin = Math.min(min, v);\n\t\t\t\t\t\t\t\t\tmax = Math.max(max, v);\n\t\t\t\t\t\t\t\t\tdlen++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(obj) { ret.push( {id:$t.rows[i].id,value:val} ); }\n\t\t\t\t\t\t\telse { ret.push( val ); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\tswitch(mathopr.toLowerCase()){\n\t\t\t\t\t\t\tcase 'sum': ret =sum; break;\n\t\t\t\t\t\t\tcase 'avg': ret = sum/dlen; break;\n\t\t\t\t\t\t\tcase 'count': ret = (ln-1); break;\n\t\t\t\t\t\t\tcase 'min': ret = min; break;\n\t\t\t\t\t\t\tcase 'max': ret = max; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tclearGridData : function(clearfooter) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(typeof clearfooter !== 'boolean') { clearfooter = false; }\n\t\t\tif($t.p.deepempty) {$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:gt(0)\").remove();}\n\t\t\telse {\n\t\t\t\tvar trf = $(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:first\")[0];\n\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").empty().append(trf);\n\t\t\t}\n\t\t\tif($t.p.footerrow && clearfooter) { $(\".ui-jqgrid-ftable td\",$t.grid.sDiv).html(\"&#160;\"); }\n\t\t\t$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];\n\t\t\t$t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0;\n\t\t\t$t.p.data = []; $t.p._index = {};\n\t\t\t$t.updatepager(true,false);\n\t\t});\n\t},\n\tgetInd : function(rowid,rc){\n\t\tvar ret =false,rw;\n\t\tthis.each(function(){\n\t\t\trw = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(rw) {\n\t\t\t\tret = rc===true ? rw: rw.rowIndex;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tbindKeys : function( settings ){\n\t\tvar o = $.extend({\n\t\t\tonEnter: null,\n\t\t\tonSpace: null,\n\t\t\tonLeftKey: null,\n\t\t\tonRightKey: null,\n\t\t\tscrollingRows : true\n\t\t},settings || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$('body').is('[role]') ){$('body').attr('role','application');}\n\t\t\t$t.p.scrollrows = o.scrollingRows;\n\t\t\t$($t).keydown(function(event){\n\t\t\t\tvar target = $($t).find('tr[tabindex=0]')[0], id, r, mind,\n\t\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t\t//check for arrow keys\n\t\t\t\tif(target) {\n\t\t\t\t\tmind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)];\n\t\t\t\t\tif(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){\n\t\t\t\t\t\t// up key\n\t\t\t\t\t\tif(event.keyCode === 38 ){\n\t\t\t\t\t\t\tr = target.previousSibling;\n\t\t\t\t\t\t\tid = \"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.previousSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow')) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if key is down arrow\n\t\t\t\t\t\tif(event.keyCode === 40){\n\t\t\t\t\t\t\tr = target.nextSibling;\n\t\t\t\t\t\t\tid =\"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow') ) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// left\n\t\t\t\t\t\tif(event.keyCode === 37 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && $t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyLeft\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onLeftKey)) {\n\t\t\t\t\t\t\t\to.onLeftKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// right\n\t\t\t\t\t\tif(event.keyCode === 39 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && !$t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyRight\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onRightKey)) {\n\t\t\t\t\t\t\t\to.onRightKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//check if enter was pressed on a grid or treegrid node\n\t\t\t\t\telse if( event.keyCode === 13 ){\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyEnter\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onEnter)) {\n\t\t\t\t\t\t\to.onEnter.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(event.keyCode === 32) {\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeySpace\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onSpace)) {\n\t\t\t\t\t\t\to.onSpace.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tunbindKeys : function(){\n\t\treturn this.each(function(){\n\t\t\t$(this).off('keydown');\n\t\t});\n\t},\n\tgetLocalRow : function (rowid) {\n\t\tvar ret = false, ind;\n\t\tthis.each(function(){\n\t\t\tif(rowid !== undefined) {\n\t\t\t\tind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)];\n\t\t\t\tif(ind >= 0 ) {\n\t\t\t\t\tret = this.p.data[ind];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tprogressBar : function ( p ) {\n\t\tp = $.extend({\n\t\t\thtmlcontent : \"\",\n\t\t\tmethod : \"hide\",\n\t\t\tloadtype : \"disable\" \n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar sh = p.method===\"show\" ? true : false,\n\t\t\tloadDiv = $(\"#load_\"+$.jgrid.jqID(this.p.id)), \n\t\t\toffsetParent, top, \n\t\t\tscrollTop = $(window).scrollTop();\n\t\t\tif(p.htmlcontent !== \"\") {\n\t\t\t\tloadDiv.html( p.htmlcontent );\n\t\t\t}\n\t\t\tswitch(p.loadtype) {\n\t\t\t\tcase \"disable\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"enable\":\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"block\":\n\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID(this.p.id)).toggle( sh );\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (loadDiv.is(':visible')) {\n\t\t\t\toffsetParent = loadDiv.offsetParent();\n\t\t\t\tloadDiv.css('top', '');\n\t\t\t\tif (loadDiv.offset().top < scrollTop) {\n\t\t\t\t\ttop = Math.min(\n\t\t\t\t\t\t10 + scrollTop - offsetParent.offset().top,\n\t\t\t\t\t\toffsetParent.height() - loadDiv.height()\n\t\t\t\t\t);\n\t\t\t\t\tloadDiv.css('top', top + 'px');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetColProp : function(colname){\n\t\tvar ret ={}, $t = this[0];\n\t\tif ( !$t.grid ) { return false; }\n\t\tvar cM = $t.p.colModel, i;\n\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\tret = cM[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t},\n\tsetColProp : function(colname, obj){\n\t\t//do not set width will not work\n\t\treturn this.each(function(){\n\t\t\tif ( this.grid ) {\n\t\t\t\tif ( obj ) {\n\t\t\t\t\tvar cM = this.p.colModel, i;\n\t\t\t\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\t\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\t\t\t\t$.extend(true, this.p.colModel[i],obj);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsortGrid : function(colname,reload, sor){\n\t\treturn this.each(function(){\n\t\t\tvar $t=this,idx=-1,i, sobj=false;\n\t\t\tif ( !$t.grid ) { return;}\n\t\t\tif ( !colname ) { colname = $t.p.sortname; }\n\t\t\tfor ( i=0;i<$t.p.colModel.length;i++ ) {\n\t\t\t\tif ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) {\n\t\t\t\t\tidx = i;\n\t\t\t\t\tif($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) {\n\t\t\t\t\t\tsobj = $t.grid.fhDiv.find(\"#\" + $t.p.id + \"_\" + colname);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( idx !== -1 ){\n\t\t\t\tvar sort = $t.p.colModel[idx].sortable;\n\t\t\t\tif(!sobj) {\n\t\t\t\t\tsobj = $t.grid.headers[idx].el;\n\t\t\t\t}\n\t\t\t\tif ( typeof sort !== 'boolean' ) { sort =  true; }\n\t\t\t\tif ( typeof reload !=='boolean' ) { reload = false; }\n\t\t\t\tif ( sort ) { $t.sortData(\"jqgh_\"+$t.p.id+\"_\" + colname, idx, reload, sor, sobj); }\n\t\t\t}\n\t\t});\n\t},\n\tsetGridState : function(state) {\n\t\treturn this.each(function(){\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this,\n\t\t\topen = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_open', true),\n\t\t\tclose = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_close', true);\n\n\t\t\tif(state === 'hidden'){\n\t\t\t\t$(\".ui-jqgrid-bdiv, .ui-jqgrid-hdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideUp(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideUp(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( open ).addClass( close );\n\t\t\t\t$t.p.gridstate = 'hidden';\n\t\t\t} else if(state === 'visible') {\n\t\t\t\t$(\".ui-jqgrid-hdiv, .ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideDown(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideDown(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( close ).addClass( open );\n\t\t\t\t$t.p.gridstate = 'visible';\n\t\t\t}\n\n\t\t});\n\t},\n\tsetFrozenColumns : function () {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this, cm = $t.p.colModel,i=0, len = cm.length, maxfrozen = -1, frozen= false,\n\t\t\thd= $($t).jqGrid('getStyleUI',$t.p.styleUI+\".base\",'headerDiv', true, 'ui-jqgrid-hdiv'),\n\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t// TODO treeGrid and grouping  Support\n\t\t\tif($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll )\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($t.p.rownumbers) { i++; }\n\t\t\tif($t.p.multiselect) { i++; }\n\t\t\t\n\t\t\t// get the max index of frozen col\n\t\t\twhile(i<len)\n\t\t\t{\n\t\t\t\t// from left, no breaking frozen\n\t\t\t\tif(cm[i].frozen === true)\n\t\t\t\t{\n\t\t\t\t\tfrozen = true;\n\t\t\t\t\tmaxfrozen = i;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif( maxfrozen>=0 && frozen) {\n\t\t\t\tvar top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0,\n\t\t\t\thth = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\t\t\t\t//headers\n\t\t\t\tif($t.p.toppager) {\n\t\t\t\t\ttop = top + $($t.grid.topDiv).outerHeight();\n\t\t\t\t}\n\t\t\t\tif($t.p.toolbar[0] === true) {\n\t\t\t\t\tif($t.p.toolbar[1] !== \"bottom\") {\n\t\t\t\t\t\ttop = top + $($t.grid.uDiv).outerHeight();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$t.grid.fhDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+top+'px;height:'+hth+'px;\" class=\"frozen-div ' + hd +'\"></div>');\n\t\t\t\t$t.grid.fbDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+(parseInt(top,10)+parseInt(hth,10) + 1)+'px;overflow-y:hidden\" class=\"frozen-bdiv ui-jqgrid-bdiv\"></div>');\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv);\n\t\t\t\tvar htbl = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t// groupheader support - only if useColSpanstyle is false\n\t\t\t\tif($t.p.groupHeader) {\n\t\t\t\t\t$(\"tr.jqg-first-row-header, tr.jqg-third-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\tvar swapfroz = -1, fdel = -1, cs, rs;\n\t\t\t\t\t$(\"tr.jqg-second-row-header th\", htbl).each(function(){\n\t\t\t\t\t\tcs= parseInt($(this).attr(\"colspan\"),10);\n\t\t\t\t\t\trs= parseInt($(this).attr(\"rowspan\"),10);\n\t\t\t\t\t\tif(rs) {\n\t\t\t\t\t\t\tswapfroz++;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cs) {\n\t\t\t\t\t\t\tswapfroz = swapfroz+cs;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(swapfroz === maxfrozen) {\n\t\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(swapfroz !== maxfrozen) {\n\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr.jqg-second-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+fdel+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$(htbl).width(1);\n\t\t\t\tif(!$.jgrid.msie()) { $(htbl).css(\"height\",\"100%\"); }\n\t\t\t\t// resizing stuff\n\t\t\t\t$($t.grid.fhDiv).append(htbl)\n\t\t\t\t.mousemove(function (e) {\n\t\t\t\t\tif($t.grid.resizing){ $t.grid.dragMove(e);return false; }\n\t\t\t\t});\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\tvar hbd = $(\".ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\n\t\t\t\t\t$t.grid.fsDiv = $('<div style=\"position:absolute;left:0px;top:'+(parseInt(top,10)+parseInt(hth,10) + parseInt(hbd,10)+1)+'px;\" class=\"frozen-sdiv ui-jqgrid-sdiv\"></div>');\n\t\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv);\n\t\t\t\t\tvar ftbl = $(\".ui-jqgrid-ftable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr\",ftbl).each(function(){\n\t\t\t\t\t\t$(\"td:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\t$(ftbl).width(1);\n\t\t\t\t\t$($t.grid.fsDiv).append(ftbl);\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridResizeStop.setFrozenColumns', function (e, w, index) {\n\t\t\t\t\tvar rhth = $(\".ui-jqgrid-htable\",$t.grid.fhDiv);\n\t\t\t\t\t$(\"th:eq(\"+index+\")\",rhth).width( w ); \n\t\t\t\t\tvar btd = $(\".ui-jqgrid-btable\",$t.grid.fbDiv);\n\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",btd).width( w );\n\t\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t\tvar ftd = $(\".ui-jqgrid-ftable\",$t.grid.fsDiv);\n\t\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",ftd).width( w );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t// data stuff\n\t\t\t\t//TODO support for setRowData\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv);\n\t\t\t\t\n\t\t\t\t$($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) {\n\t\t\t\t\tvar st = $($t.grid.bDiv).scrollTop();\n\t\t\t\t\tif (e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0) {\n\t\t\t\t\t\t//up\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st - 25 );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//down\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st + 25 );\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout');\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridAfterGridComplete.setFrozenColumns', function () {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").remove();\n\t\t\t\t\t$($t.grid.fbDiv).height($($t.grid.bDiv).height()-14);\n\t\t\t\t\t// find max height\n\t\t\t\t\tvar mh = [];\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id) + \" tr[role=row].jqgrow\").each(function(){\n\t\t\t\t\t\tmh.push( $(\"td:visible:first\", this).height() );\n\t\t\t\t\t});\n\n\t\t\t\t\tvar btbl = $(\"#\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr[role=row]\",btbl).each(function(){\n\t\t\t\t\t\t$(\"td[role=gridcell]:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\n\t\t\t\t\t$(btbl).width(1).attr(\"id\",$t.p.id+\"_frozen\");\n\t\t\t\t\t$($t.grid.fbDiv).append(btbl);\n\t\t\t\t\t// set the height\n\t\t\t\t\t$(\"tr[role=row].jqgrow\",btbl).each(function(i, n){\n\t\t\t\t\t\t$(\"td:not(.jqgrid-rownum):visible:first\", this).height( mh[i] );\n\t\t\t\t\t});\n\n\t\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t\t$(\"tr.jqgrow\", btbl).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).addClass( hover ); },\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$(\"tr.jqgrow\", \"#\"+$.jgrid.jqID($t.p.id)).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").addClass( hover );},\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbtbl=null;\n\t\t\t\t});\n\t\t\t\tif(!$t.grid.hDiv.loading) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\t$t.p.frozenColumns = true;\n\t\t\t}\n\t\t});\n\t},\n\tdestroyFrozenColumns :  function() {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tif(this.p.frozenColumns === true) {\n\t\t\t\tvar $t = this,\n\t\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t\t$($t.grid.fhDiv).remove();\n\t\t\t\t$($t.grid.fbDiv).remove();\n\t\t\t\t$t.grid.fhDiv = null; $t.grid.fbDiv=null;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$($t.grid.fsDiv).remove();\n\t\t\t\t\t$t.grid.fsDiv = null;\n\t\t\t\t}\n\t\t\t\t$(this).off('.setFrozenColumns');\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\tvar ptr;\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).on({\n\t\t\t\t\t\t'mouseover': function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t\t\t$(ptr).addClass( hover );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'mouseout' : function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\t$(ptr).removeClass( hover );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.p.frozenColumns = false;\n\t\t\t}\n\t\t});\n\t},\n\tresizeColumn : function (iCol, newWidth) {\n\t\treturn this.each(function(){\n\t\t\tvar grid = this.grid, p = this.p, cm = p.colModel, i, cmLen = cm.length, diff, diffnv;\n\t\t\tif(typeof iCol === \"string\" ) {\n\t\t\t\tfor(i = 0; i < cmLen; i++) {\n\t\t\t\t\tif(cm[i].name === iCol) {\n\t\t\t\t\t\tiCol = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tiCol = parseInt( iCol, 10 );\n\t\t\t}\n\t\t\tnewWidth = parseInt( newWidth, 10);\n\t\t\t// filters\n\t\t\tif(typeof iCol !== \"number\" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== \"number\" ) { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\t\n\t\t\tif( newWidth < p.minColWidth ) { return; }\n\t\t\t\n\t\t\tif( p.forceFit ) {\n\t\t\t\tp.nv = 0;\n\t\t\t\tfor (i = iCol+1; i < cmLen; i++){\n\t\t\t\t\tif(cm[i].hidden !== true ) {\n\t\t\t\t\t\tp.nv = i - iCol; \n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// use resize stuff\n\t\t\tgrid.resizing = {idx : iCol };\n\t\t\tdiff = newWidth - grid.headers[iCol].width;\n\t\t\tif(p.forceFit) {\n\t\t\t\tdiffnv = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t\tif(diffnv < p.minColWidth) { return; }\n\t\t\t\tgrid.headers[ iCol + p.nv].newWidth = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t} \n\t\t\tgrid.newWidth = p.tblwidth + diff;\n\t\t\tgrid.headers[ iCol ].newWidth = newWidth;\n\t\t\tgrid.dragEnd( false );\n\t\t\t\n\t\t});\n\t},\n\tgetStyleUI : function( styleui, classui, notclasstag, gridclass) {\n\t\tvar ret = \"\", q = \"\";\n\t\ttry {\n\t\t\tvar stylemod = styleui.split(\".\");\n\t\t\tif(!notclasstag) {\n\t\t\t\tret = \"class=\";\n\t\t\t\tq = \"\\\"\";\n\t\t\t}\n\t\t\tif(gridclass == null) {\n\t\t\t\tgridclass = \"\";\n\t\t\t}\n\t\t\tswitch(stylemod.length) {\n\t\t\t\tcase 1 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][classui] + q);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q);\n\t\t\t}\n\t\t} catch (cls) {\n\t\t\tret = \"\";\n\t\t}\n\t\treturn ret;\n\t},\n\tresizeGrid : function (timeout) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(timeout === undefined) {\n\t\t\t\ttimeout = 500;\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\ttry {\n\t\t\t\t\tvar winwidth = $(window).width(),\n\t\t\t\t\tparentwidth = $(\"#gbox_\"+$.jgrid.jqID($t.p.id)).parent().width(),\n\t\t\t\t\tww = $t.p.width;\n\t\t\t\t\tif( (winwidth-parentwidth) > 3 ) {\n\t\t\t\t\t\tww = parentwidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tww = winwidth;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww);\n\t\t\t\t} catch(e){}\n\t\t\t}, timeout);\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.celledit.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n/**\n * all events and options here are aded anonynous and not in the base grid\n * since the array is to big. Here is the order of execution.\n * From this point we use jQuery isFunction\n * formatCell\n * beforeEditCell,\n * onSelectCell (used only for noneditable cels)\n * afterEditCell,\n * beforeSaveCell, (called before validation of values if any)\n * beforeSubmitCell (if cellsubmit remote (ajax))\n * afterSubmitCell(if cellsubmit remote (ajax)),\n * afterSaveCell,\n * errorCell,\n * validationCell\n * serializeCellData - new\n * Options\n * cellsubmit (remote,clientArray) (added in grid options)\n * cellurl\n * ajaxCellOptions\n * restoreCellonFail\n* */\n\"use strict\";\n//module begin\n$.jgrid.extend({\n\teditCell : function (iRow,iCol, ed){\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nm, tmp,cc, cm,\n\t\t\thighlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true),\n\t\t\t\n\t\t\thover = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true),\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".celledit\",'inputClass', true);\n\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tiCol = parseInt(iCol,10);\n\t\t\t// select the row that can be used for other methods\n\t\t\t$t.p.selrow = $t.rows[iRow].id;\n\t\t\tif (!$t.p.knv) {$($t).jqGrid(\"GridNav\");}\n\t\t\t// check to see if we have already edited cell\n\t\t\tif ($t.p.savedRow.length>0) {\n\t\t\t\t// prevent second click on that field and enable selects\n\t\t\t\tif (ed===true ) {\n\t\t\t\t\tif(iRow == $t.p.iRow && iCol == $t.p.iCol){\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// save the cell\n\t\t\t\t$($t).jqGrid(\"saveCell\",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},1);\n\t\t\t}\n\t\t\tcm = $t.p.colModel[iCol];\n\t\t\tnm = cm.name;\n\t\t\tif (nm==='subgrid' || nm==='cb' || nm==='rn') {return;}\n\t\t\ttry {\n\t\t\t\tcc = $($t.rows[iRow].cells[iCol]);\n\t\t\t} catch(e) {\n\t\t\t\tcc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t}\n\t\t\tif (cm.editable===true && ed===true && !cc.hasClass(\"not-editable-cell\") && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {\n\t\t\t\tif(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttry {\n\t\t\t\t\ttmp =  $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);\n\t\t\t\t} catch (_) {\n\t\t\t\t\ttmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html();\n\t\t\t\t}\n\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\tif (!cm.edittype) {cm.edittype = \"text\";}\n\t\t\t\t$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});\n\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\tif($.isFunction($t.p.formatCell)) {\n\t\t\t\t\tvar tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t\tif(tmp2 !== undefined ) {tmp = tmp2;}\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridBeforeEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.beforeEditCell)) {\n\t\t\t\t\t$t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t\tvar opt = $.extend({}, cm.editoptions || {} ,{id:iRow+\"_\"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit'});\n\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\tif( $.inArray(cm.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t$(elc).addClass(inpclass);\n\t\t\t\t}\n\n\t\t\t\tcc.html(\"\").append(elc).attr(\"tabindex\",\"0\");\n\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\twindow.setTimeout(function () { $(elc).focus();},1);\n\t\t\t\t$(\"input, select, textarea\",cc).on(\"keydown\",function(e) {\n\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\tif($(\"input.hasDatepicker\",cc).length >0) {\n\t\t\t\t\t\t\tif( $(\".ui-datepicker\").is(\":hidden\") )  { $($t).jqGrid(\"restoreCell\",iRow,iCol); }\n\t\t\t\t\t\t\telse { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t}\n\t\t\t\t\t} //ESC\n\t\t\t\t\tif (e.keyCode === 13 && !e.shiftKey) {\n\t\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t\t\t// Prevent default action\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} //Enter\n\t\t\t\t\tif (e.keyCode === 9)  {\n\t\t\t\t\t\tif(!$t.grid.hDiv.loading ) {\n\t\t\t\t\t\t\tif (e.shiftKey) {$($t).jqGrid(\"prevCell\",iRow,iCol);} //Shift TAb\n\t\t\t\t\t\t\telse {$($t).jqGrid(\"nextCell\",iRow,iCol);} //Tab\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterEditCell)) {\n\t\t\t\t\t$t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttmp = cc.html().replace(/\\&#160\\;/ig,'');\n\t\t\t\t$($t).triggerHandler(\"jqGridSelectCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.onSelectCell)) {\n\t\t\t\t\t$t.p.onSelectCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$t.p.iCol = iCol; $t.p.iRow = iRow;\n\t\t});\n\t},\n\tsaveCell : function (iRow, iCol){\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr,\n\t\t\terrors = $.jgrid.getRegional(this, 'errors'),\n\t\t\tedit =$.jgrid.getRegional(this, 'edit');\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} \n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]),v,v2,\n\t\t\t\tcm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm),\n\t\t\t\tp = $(cc).offset();\n\n\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).val();\n\t\t\t\t\t\t\tv2 = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar sel = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), selectedText = [];\n\t\t\t\t\t\t\tv = $(sel).val();\n\t\t\t\t\t\t\tif(v) { v.join(\",\");} else { v=\"\"; }\n\t\t\t\t\t\t\t$(\"option:selected\",sel).each(\n\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tv2 = selectedText.join(\",\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm.formatter) { v2 = v; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\tvar cbv  = [\"Yes\",\"No\"];\n\t\t\t\t\t\tif(cm.editoptions){\n\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"password\":\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).val();\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\tv = cm.editoptions.custom_value.call($t, $(\".customelement\",cc),'get');\n\t\t\t\t\t\t\t\tif (v===undefined) { throw \"e2\";} else { v2=v; }\n\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// The common approach is if nothing changed do not do anything\n\t\t\t\tif (v2 !== $t.p.savedRow[fr].v){\n\t\t\t\t\tvar vvv = $($t).triggerHandler(\"jqGridBeforeSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\tif (vvv) {v = vvv; v2=vvv;}\n\t\t\t\t\tif ($.isFunction($t.p.beforeSaveCell)) {\n\t\t\t\t\t\tvar vv = $t.p.beforeSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\tif (vv) {v = vv; v2=vv;}\n\t\t\t\t\t}\n\t\t\t\t\tvar cv = $.jgrid.checkValues.call($t,v,iCol), nuem = false;\n\t\t\t\t\tif(cv[0] === true) {\n\t\t\t\t\t\tvar addpost = $($t).triggerHandler(\"jqGridBeforeSubmitCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]) || {};\n\t\t\t\t\t\tif ($.isFunction($t.p.beforeSubmitCell)) {\n\t\t\t\t\t\t\taddpost = $t.p.beforeSubmitCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\tif (!addpost) {addpost={};}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( $(\"input.hasDatepicker\",cc).length >0) { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'remote') {\n\t\t\t\t\t\t\tif ($t.p.cellurl) {\n\t\t\t\t\t\t\t\tvar postdata = {};\n\t\t\t\t\t\t\t\tif($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }\n\t\t\t\t\t\t\t\tif(cm.editoptions && cm.editoptions.NullIfEmpty && v === \"\") {\n\t\t\t\t\t\t\t\t\tv = 'null';\n\t\t\t\t\t\t\t\t\tnuem = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tpostdata[nm] = v;\n\t\t\t\t\t\t\t\tvar idname,oper, opers;\n\t\t\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.rows[iRow].id);\n\t\t\t\t\t\t\t\tpostdata[oper] = opers.editoper;\n\t\t\t\t\t\t\t\tpostdata = $.extend(addpost,postdata);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') });\n\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = true;\n\t\t\t\t\t\t\t\t$.ajax( $.extend( {\n\t\t\t\t\t\t\t\t\turl: $t.p.cellurl,\n\t\t\t\t\t\t\t\t\tdata :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata,\n\t\t\t\t\t\t\t\t\ttype: \"POST\",\n\t\t\t\t\t\t\t\t\tcomplete: function (result, stat) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : $t.p.loadui });\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\tif (stat === 'success') {\n\t\t\t\t\t\t\t\t\t\t\tvar ret = $($t).triggerHandler(\"jqGridAfterSubmitCell\", [$t, result, postdata.id, nm, v, iRow, iCol]) || [true, ''];\n\t\t\t\t\t\t\t\t\t\t\tif (ret[0] === true && $.isFunction($t.p.afterSubmitCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\tret = $t.p.afterSubmitCell.call($t, result,postdata.id,nm,v,iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif(ret[0] === true){\n\t\t\t\t\t\t\t\t\t\t\t\tif(nuem) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = \"\";\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, v2, false, false, true);\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, result, stat);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\terror:function(res,stat,err) {\n\t\t\t\t\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridErrorCell\", [res, stat, err]);\n\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, res,stat,err);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, res.status+\" : \"+res.statusText+\"<br/>\"+stat, edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'clientArray') {\n\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id,iCol, v2, false, false, true);\n\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t\t\t$t.p.validationCell.call($t, $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), cv[1], iRow, iCol);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.setTimeout(function(){\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,v+ \" \" + cv[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},50);\n\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\talert(cv[1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\trestoreCell : function(iRow, iCol) {\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}\n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t\t// datepicker fix\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",cc).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$(cc).empty().attr(\"tabindex\",\"-1\");\n\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterRestoreCell\", [$t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterRestoreCell)) {\n\t\t\t\t\t$t.p.afterRestoreCell.call($t, $t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol);\n\t\t\t\t}\t\t\t\t\n\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$t.p.knv).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\tnextCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol+1; i<$t.p.colModel.length; i++) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tprevCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol-1; i>=0; i--) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tGridNav : function() {\n\t\treturn this.each(function () {\n\t\t\tvar  $t = this;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t// trick to process keydown on non input elements\n\t\t\t$t.p.knv = $t.p.id + \"_kn\";\n\t\t\tvar selection = $(\"<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='\"+$t.p.knv+\"'></div></div>\"),\n\t\t\ti, kdir;\n\t\t\tfunction scrollGrid(iR, iC, tp){\n\t\t\t\tif (tp.substr(0,1)==='v') {\n\t\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\t\tnROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,\n\t\t\t\t\tpROT = $t.rows[iR].offsetTop;\n\t\t\t\t\tif(tp === 'vd') {\n\t\t\t\t\t\tif(nROT >= ch) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(tp === 'vu'){\n\t\t\t\t\t\tif (pROT < st ) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(tp==='h') {\n\t\t\t\t\tvar cw = $($t.grid.bDiv)[0].clientWidth,\n\t\t\t\t\tsl = $($t.grid.bDiv)[0].scrollLeft,\n\t\t\t\t\tnCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,\n\t\t\t\t\tpCOL = $t.rows[iR].cells[iC].offsetLeft;\n\t\t\t\t\tif(nCOL >= cw+parseInt(sl,10)) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t} else if (pCOL < sl) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction findNextVisible(iC,act){\n\t\t\t\tvar ind, i;\n\t\t\t\tif(act === 'lft') {\n\t\t\t\t\tind = iC+1;\n\t\t\t\t\tfor (i=iC;i>=0;i--){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(act === 'rgt') {\n\t\t\t\t\tind = iC-1;\n\t\t\t\t\tfor (i=iC; i<$t.p.colModel.length;i++){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ind;\n\t\t\t}\n\n\t\t\t$(selection).insertBefore($t.grid.cDiv);\n\t\t\t$(\"#\"+$t.p.knv)\n\t\t\t.focus()\n\t\t\t.keydown(function (e){\n\t\t\t\tkdir = e.keyCode;\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\tif(kdir===37) { kdir = 39;}\n\t\t\t\t\telse if (kdir===39) { kdir = 37; }\n\t\t\t\t}\n\t\t\t\tswitch (kdir) {\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tif ($t.p.iRow-1 >0 ) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow-1,$t.p.iCol,'vu');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow-1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 40 :\n\t\t\t\t\t\tif ($t.p.iRow+1 <=  $t.rows.length-1) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow+1,$t.p.iCol,'vd');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow+1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 37 :\n\t\t\t\t\t\tif ($t.p.iCol -1 >=  0) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol-1,'lft');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow, i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow, i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 39 :\n\t\t\t\t\t\tif ($t.p.iCol +1 <=  $t.p.colModel.length-1) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol+1,'rgt');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow,i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 13:\n\t\t\t\t\t\tif (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,$t.p.iCol,true);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tdefault :\n\t\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t});\n\t},\n\tgetChangedCells : function (mthd) {\n\t\tvar ret=[];\n\t\tif (!mthd) {mthd='all';}\n\t\tthis.each(function(){\n\t\t\tvar $t= this,nm;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t$($t.rows).each(function(j){\n\t\t\t\tvar res = {};\n\t\t\t\tif ($(this).hasClass(\"edited\")) {\n\t\t\t\t\t$('td',this).each( function(i) {\n\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid') {\n\t\t\t\t\t\t\tif (mthd==='dirty') {\n\t\t\t\t\t\t\t\tif ($(this).hasClass('dirty-cell')) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tres.id = this.id;\n\t\t\t\t\tret.push(res);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn ret;\n\t}\n/// end  cell editing\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.common.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./jqModal\",\n\t\t\t\"./jqDnR\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.extend($.jgrid,{\n// Modal functions\n\tshowModal : function(h) {\n\t\th.w.show();\n\t},\n\tcloseModal : function(h) {\n\t\th.w.hide().attr(\"aria-hidden\",\"true\");\n\t\tif(h.o) {h.o.remove();}\n\t},\n\thideModal : function (selector,o) {\n\t\to = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {});\n\t\tvar thisgrid = o.gb && typeof o.gb === \"string\" && o.gb.substr(0,6) === \"#gbox_\" ? $(\"#\" + o.gb.substr(6))[0] : false;\n\t\tif(o.onClose) {\n\t\t\tvar oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector);\n\t\t\tif (typeof oncret === 'boolean'  && !oncret ) { return; }\n\t\t}\n\t\tif( o.formprop && thisgrid  && o.form) {\n\t\t\tvar fh = $(selector)[0].style.height,\n\t\t\tfw = $(selector)[0].style.width;\n\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\tfh = parseFloat(fh);\n\t\t\t}\n\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\tfw = parseFloat(fw);\n\t\t\t}\n\t\t\tvar frmgr, frmdata;\n\t\t\tif(o.form==='edit'){\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"FrmGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"formProp\";\n\t\t\t} else if( o.form === 'view') {\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"ViewGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"viewProp\";\n\t\t\t}\n\t\t\t$(thisgrid).data(frmdata, {\n\t\t\t\ttop:parseFloat($(selector).css(\"top\")),\n\t\t\t\tleft : parseFloat($(selector).css(\"left\")),\n\t\t\t\twidth : fw,\n\t\t\t\theight : fh,\n\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t});\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\t$(selector).attr(\"aria-hidden\",\"true\").jqmHide();\n\t\t} else {\n\t\t\tif(o.gb !== '') {\n\t\t\t\ttry {$(\".jqgrid-overlay:first\",o.gb).hide();} catch (e){}\n\t\t\t}\n\t\t\t$(selector).hide().attr(\"aria-hidden\",\"true\");\n\t\t}\n\t\tif( o.removemodal ) {\n\t\t\t$(selector).remove();\n\t\t}\n\t},\n//Helper functions\n\tfindPos : function(obj) {\n\t\tvar offset = $(obj).offset();\n\t\treturn [offset.left,offset.top];\n\t},\n\tcreateModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {\n\t\tp = $.extend(true, {}, $.jgrid.jqModal || {}, p);\n\t\tvar self = this,\n\t\t\trtlsup = $(p.gbox).attr(\"dir\") === \"rtl\" ? true : false,\n\t\t\tclasses = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal,\n\t\t\tcommon = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common,\n\t\t\tmw  = document.createElement('div');\n\t\tcss = $.extend({}, css || {});\n\t\tmw.className= \"ui-jqdialog \" + classes.modal;\n\t\tmw.id = aIDs.themodal;\n\t\tvar mh = document.createElement('div');\n\t\tmh.className = \"ui-jqdialog-titlebar \" + classes.header;\n\t\tmh.id = aIDs.modalhead;\n\t\t$(mh).append(\"<span class='ui-jqdialog-title'>\"+p.caption+\"</span>\");\n\t\tvar ahr= $(\"<a class='ui-jqdialog-titlebar-close \"+common.cornerall+\"'></a>\")\n\t\t.hover(function(){ahr.addClass(common.hover);},\n\t\t\tfunction(){ahr.removeClass(common.hover);})\n\t\t.append(\"<span class='\" + common.icon_base+\" \" + classes.icon_close + \"'></span>\");\n\t\t$(mh).append(ahr);\n\t\tif(rtlsup) {\n\t\t\tmw.dir = \"rtl\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"right\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"left\",0.3+\"em\");\n\t\t} else {\n\t\t\tmw.dir = \"ltr\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"left\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"right\",0.3+\"em\");\n\t\t}\n\t\tvar mc = document.createElement('div');\n\t\t$(mc).addClass(\"ui-jqdialog-content \" + classes.content).attr(\"id\",aIDs.modalcontent);\n\t\t$(mc).append(content);\n\t\tmw.appendChild(mc);\n\t\t$(mw).prepend(mh);\n\t\tif(appendsel===true) { \n\t\t\t$('body').append(mw); \n\t\t} //append as first child in body -for alert dialog\n\t\telse if (typeof appendsel === \"string\") {\n\t\t\t$(appendsel).append(mw);\n\t\t} else {\n\t\t\t$(mw).insertBefore(insertSelector);\n\t\t}\n\t\t$(mw).css(css);\n\t\tif(p.jqModal === undefined) {p.jqModal = true;} // internal use\n\t\tvar coord = {};\n\t\tif ( $.fn.jqm && p.jqModal === true) {\n\t\t\tif(p.left ===0 && p.top===0 && p.overlay) {\n\t\t\t\tvar pos = [];\n\t\t\t\tpos = $.jgrid.findPos(posSelector);\n\t\t\t\tp.left = pos[0] + 4;\n\t\t\t\tp.top = pos[1] + 4;\n\t\t\t}\n\t\t\tcoord.top = p.top+\"px\";\n\t\t\tcoord.left = p.left;\n\t\t} else if(p.left !==0 || p.top!==0) {\n\t\t\tcoord.left = p.left;\n\t\t\tcoord.top = p.top+\"px\";\n\t\t}\n\t\t$(\"a.ui-jqdialog-titlebar-close\",mh).click(function(){\n\t\t\tvar oncm = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\tvar gboxclose = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"gbox\") || p.gbox;\n\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\treturn false;\n\t\t});\n\t\tif (p.width === 0 || !p.width) {p.width = 300;}\n\t\tif(p.height === 0 || !p.height) {p.height =200;}\n\t\tif(!p.zIndex) {\n\t\t\tvar parentZ = $(insertSelector).parents(\"*[role=dialog]\").filter(':first').css(\"z-index\");\n\t\t\tif(parentZ) {\n\t\t\t\tp.zIndex = parseInt(parentZ,10)+2;\n\t\t\t} else {\n\t\t\t\tp.zIndex = 950;\n\t\t\t}\n\t\t}\n\t\tvar rtlt = 0;\n\t\tif( rtlsup && coord.left && !appendsel) {\n\t\t\trtlt = $(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do\n\t\t// just in case\n\t\t\tcoord.left = parseInt(coord.left,10) + parseInt(rtlt,10);\n\t\t}\n\t\tif(coord.left) { coord.left += \"px\"; }\n\t\t$(mw).css($.extend({\n\t\t\twidth: isNaN(p.width) ? \"auto\": p.width+\"px\",\n\t\t\theight:isNaN(p.height) ? \"auto\" : p.height + \"px\",\n\t\t\tzIndex:p.zIndex,\n\t\t\toverflow: 'hidden'\n\t\t},coord))\n\t\t.attr({tabIndex: \"-1\",\"role\":\"dialog\",\"aria-labelledby\":aIDs.modalhead,\"aria-hidden\":\"true\"});\n\t\tif(p.drag === undefined) { p.drag=true;}\n\t\tif(p.resize === undefined) {p.resize=true;}\n\t\tif (p.drag) {\n\t\t\t$(mh).css('cursor','move');\n\t\t\tif($.fn.tinyDraggable) {\n\t\t\t\t//$(mw).jqDrag(mh);\n\t\t\t\t$(mw).tinyDraggable({ handle:\"#\"+$.jgrid.jqID(mh.id) });\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).draggable({handle: $(\"#\"+$.jgrid.jqID(mh.id))});\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t}\n\t\tif(p.resize) {\n\t\t\tif($.fn.jqResize) {\n\t\t\t\t$(mw).append(\"<div class='jqResize \"+classes.resizable+\" \"+common.icon_base + \" \" +classes.icon_resizable+\"'></div>\");\n\t\t\t\t$(\"#\"+$.jgrid.jqID(aIDs.themodal)).jqResize(\".jqResize\",aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false});\n\t\t\t\t} catch (r) {}\n\t\t\t}\n\t\t}\n\t\tif(p.closeOnEscape === true){\n\t\t\t$(mw).keydown( function( e ) {\n\t\t\t\tif( e.which === 27 ) {\n\t\t\t\t\tvar cone = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tviewModal : function (selector,o){\n\t\to = $.extend({\n\t\t\ttoTop: true,\n\t\t\toverlay: 10,\n\t\t\tmodal: false,\n\t\t\toverlayClass : 'ui-widget-overlay', // to be fixed\n\t\t\tonShow: $.jgrid.showModal,\n\t\t\tonHide: $.jgrid.closeModal,\n\t\t\tgbox: '',\n\t\t\tjqm : true,\n\t\t\tjqM : true\n\t\t}, o || {});\n\t\tif(o.focusField === undefined) {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif(typeof o.focusField === \"number\" && o.focusField >= 0 ) {\n\t\t\to.focusField = parseInt(o.focusField,10);\n\t\t} else if(typeof o.focusField === \"boolean\" && !o.focusField) {\n\t\t\to.focusField = false;\n\t\t} else {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\tif(o.jqM) { $(selector).attr(\"aria-hidden\",\"false\").jqm(o).jqmShow(); }\n\t\t\telse {$(selector).attr(\"aria-hidden\",\"false\").jqmShow();}\n\t\t} else {\n\t\t\tif(o.gbox !== '') {\n\t\t\t\t$(\".jqgrid-overlay:first\",o.gbox).show();\n\t\t\t\t$(selector).data(\"gbox\",o.gbox);\n\t\t\t}\n\t\t\t$(selector).show().attr(\"aria-hidden\",\"false\");\n\t\t\tif(o.focusField >= 0) {\n\t\t\t\ttry{$(':input:visible',selector)[parseInt(o.focusField,10)].focus();}catch(_){}\n\t\t\t}\n\t\t}\n\t},\n\tinfo_dialog : function(caption, content,c_b, modalopt) {\n\t\tvar mopt = {\n\t\t\twidth:290,\n\t\t\theight:'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tdrag: true,\n\t\t\tresize: false,\n\t\t\tleft:250,\n\t\t\ttop:170,\n\t\t\tzIndex : 1000,\n\t\t\tjqModal : true,\n\t\t\tmodal : false,\n\t\t\tcloseOnEscape : true,\n\t\t\talign: 'center',\n\t\t\tbuttonalign : 'center',\n\t\t\tbuttons : []\n\t\t// {text:'textbutt', id:\"buttid\", onClick : function(){...}}\n\t\t// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...\n\t\t};\n\t\t$.extend(true, mopt, $.jgrid.jqModal || {}, {caption:\"<b>\"+caption+\"</b>\"}, modalopt || {});\n\t\tvar jm = mopt.jqModal, self = this,\n\t\tclasses = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].modal,\n\t\tcommon = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].common;\n\t\tif($.fn.jqm && !jm) { jm = false; }\n\t\t// in case there is no jqModal\n\t\tvar buttstr =\"\", i;\n\t\tif(mopt.buttons.length > 0) {\n\t\t\tfor(i=0;i<mopt.buttons.length;i++) {\n\t\t\t\tif(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = \"info_button_\"+i; }\n\t\t\t\tbuttstr += \"<a id='\"+mopt.buttons[i].id+\"' class='fm-button \" + common.button+\"'>\"+mopt.buttons[i].text+\"</a>\";\n\t\t\t}\n\t\t}\n\t\tvar dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+\"px\",\n\t\tcn = \"text-align:\"+mopt.align+\";\";\n\t\tvar cnt = \"<div id='info_id'>\";\n\t\tcnt += \"<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:\"+dh+\";\"+cn+\"'>\"+content+\"</div>\";\n\t\tcnt += c_b ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button \" + common.button + \"'>\"+c_b+\"</a>\"+buttstr+\"</div>\" :\n\t\t\tbuttstr !== \"\"  ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>\"+buttstr+\"</div>\" : \"\";\n\t\tcnt += \"</div>\";\n\n\t\ttry {\n\t\t\tif($(\"#info_dialog\").attr(\"aria-hidden\") === \"false\") {\n\t\t\t\t$.jgrid.hideModal(\"#info_dialog\",{jqm:jm});\n\t\t\t}\n\t\t\t$(\"#info_dialog\").remove();\n\t\t} catch (e){}\n\t\t$.jgrid.createModal({\n\t\t\tthemodal:'info_dialog',\n\t\t\tmodalhead:'info_head',\n\t\t\tmodalcontent:'info_content',\n\t\t\tscrollelm: 'infocnt'},\n\t\t\tcnt,\n\t\t\tmopt,\n\t\t\t'','',true\n\t\t);\n\t\t// attach onclick after inserting into the dom\n\t\tif(buttstr) {\n\t\t\t$.each(mopt.buttons,function(i){\n\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id),\"#info_id\").on('click',function(){mopt.buttons[i].onClick.call($(\"#info_dialog\")); return false;});\n\t\t\t});\n\t\t}\n\t\t$(\"#closedialog\", \"#info_id\").on('click',function(){\n\t\t\tself.hideModal(\"#info_dialog\",{\n\t\t\t\tjqm:jm,\n\t\t\t\tonClose: $(\"#info_dialog\").data(\"onClose\") || mopt.onClose,\n\t\t\t\tgb: $(\"#info_dialog\").data(\"gbox\") || mopt.gbox\n\t\t\t});\n\t\t\treturn false;\n\t\t});\n\t\t$(\".fm-button\",\"#info_dialog\").hover(\n\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t);\n\t\tif($.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); }\n\t\t$.jgrid.viewModal(\"#info_dialog\",{\n\t\t\tonHide: function(h) {\n\t\t\t\th.w.hide().remove();\n\t\t\t\tif(h.o) { h.o.remove(); }\n\t\t\t},\n\t\t\tmodal :mopt.modal,\n\t\t\tjqm:jm\n\t\t});\n\t\tif($.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); }\n\t\ttry{ $(\"#info_dialog\").focus();} catch (m){}\n\t},\n\tbindEv: function  (el, opt) {\n\t\tvar $t = this;\n\t\tif($.isFunction(opt.dataInit)) {\n\t\t\topt.dataInit.call($t,el,opt);\n\t\t}\n\t\tif(opt.dataEvents) {\n\t\t\t$.each(opt.dataEvents, function() {\n\t\t\t\tif (this.data !== undefined) {\n\t\t\t\t\t$(el).on(this.type, this.data, this.fn);\n\t\t\t\t} else {\n\t\t\t\t\t$(el).on(this.type, this.fn);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n// Form Functions\n\tcreateEl : function(eltype,options,vl,autowidth, ajaxso) {\n\t\tvar elem = \"\", $t = this;\n\t\tfunction setAttributes(elm, atr, exl ) {\n\t\t\tvar exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper'];\n\t\t\tif(exl !== undefined && $.isArray(exl)) {\n\t\t\t\t$.merge(exclude, exl);\n\t\t\t}\n\t\t\t$.each(atr, function(key, value){\n\t\t\t\tif($.inArray(key, exclude) === -1) {\n\t\t\t\t\t$(elm).attr(key,value);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!atr.hasOwnProperty('id')) {\n\t\t\t\t$(elm).attr('id', $.jgrid.randId());\n\t\t\t}\n\t\t}\n\t\tswitch (eltype)\n\t\t{\n\t\t\tcase \"textarea\" :\n\t\t\t\telem = document.createElement(\"textarea\");\n\t\t\t\tif(autowidth) {\n\t\t\t\t\tif(!options.cols) { $(elem).css({width:\"98%\"});}\n\t\t\t\t} else if (!options.cols) { options.cols = 20; }\n\t\t\t\tif(!options.rows) { options.rows = 2; }\n\t\t\t\tif(vl==='&nbsp;' || vl==='&#160;' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl=\"\";}\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\t$(elem).attr({\"role\":\"textbox\",\"multiline\":\"true\"});\n\t\t\tbreak;\n\t\t\tcase \"checkbox\" : //what code for simple checkbox\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = \"checkbox\";\n\t\t\t\tif( !options.value ) {\n\t\t\t\t\tvar vl1 = (vl+\"\").toLowerCase();\n\t\t\t\t\tif(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!==\"\") {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t\telem.value = vl;\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.value = \"on\";\n\t\t\t\t\t}\n\t\t\t\t\t$(elem).attr(\"offval\",\"off\");\n\t\t\t\t} else {\n\t\t\t\t\tvar cbval = options.value.split(\":\");\n\t\t\t\t\tif(vl === cbval[0]) {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t}\n\t\t\t\t\telem.value = cbval[0];\n\t\t\t\t\t$(elem).attr(\"offval\",cbval[1]);\n\t\t\t\t}\n\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t$(elem).attr(\"role\",\"checkbox\");\n\t\t\tbreak;\n\t\t\tcase \"select\" :\n\t\t\t\telem = document.createElement(\"select\");\n\t\t\t\telem.setAttribute(\"role\",\"select\");\n\t\t\t\tvar msl, ovm = [];\n\t\t\t\tif(options.multiple===true) {\n\t\t\t\t\tmsl = true;\n\t\t\t\t\telem.multiple=\"multiple\";\n\t\t\t\t\t$(elem).attr(\"aria-multiselectable\",\"true\");\n\t\t\t\t} else { msl = false; }\n\t\t\t\tif(options.dataUrl != null) {\n\t\t\t\t\tvar rowid = null, postData = options.postData || ajaxso.postData;\n\t\t\t\t\ttry {\n\t\t\t\t\t\trowid = options.rowId;\n\t\t\t\t\t} catch(e) {}\n\n\t\t\t\t\tif ($t.p && $t.p.idPrefix) {\n\t\t\t\t\t\trowid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\t}\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl: $.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl,\n\t\t\t\t\t\ttype : \"GET\",\n\t\t\t\t\t\tdataType: \"html\",\n\t\t\t\t\t\tdata: $.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData,\n\t\t\t\t\t\tcontext: {elem:elem, options:options, vl:vl},\n\t\t\t\t\t\tsuccess: function(data){\n\t\t\t\t\t\t\tvar ovm = [], elem = this.elem, vl = this.vl,\n\t\t\t\t\t\t\toptions = $.extend({},this.options),\n\t\t\t\t\t\t\tmsl = options.multiple===true,\n\t\t\t\t\t\t\tcU = options.cacheUrlData === true,\n\t\t\t\t\t\t\toV ='', txt,\n\t\t\t\t\t\t\ta = $.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data;\n\t\t\t\t\t\t\tif(typeof a === 'string') {\n\t\t\t\t\t\t\t\ta = $( $.trim( a ) ).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(a) {\n\t\t\t\t\t\t\t\t$(elem).append(a);\n\t\t\t\t\t\t\t\tsetAttributes(elem, options, postData ? ['postData'] : undefined );\n\t\t\t\t\t\t\t\tif(options.size === undefined) { options.size =  msl ? 3 : 1;}\n\t\t\t\t\t\t\t\tif(msl) {\n\t\t\t\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tovm[0] = $.trim(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//$(elem).attr(options);\n\t\t\t\t\t\t\t\t//setTimeout(function(){\n\t\t\t\t\t\t\t\t$(\"option\",elem).each(function(i){\n\t\t\t\t\t\t\t\t\ttxt = $(this).text();\n\t\t\t\t\t\t\t\t\tvl = $(this).val();\n\t\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\t\toV += (i!== 0 ? \";\": \"\")+ vl+\":\"+txt; \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//if(i===0) { this.selected = \"\"; }\n\t\t\t\t\t\t\t\t\t// fix IE8/IE7 problem with selecting of the first item on multiple=true\n\t\t\t\t\t\t\t\t\tif (i === 0 && elem.multiple) { this.selected = false; }\n\t\t\t\t\t\t\t\t\t$(this).attr(\"role\",\"option\");\n\t\t\t\t\t\t\t\t\tif($.inArray($.trim(txt),ovm) > -1 || $.inArray($.trim(vl),ovm) > -1 ) {\n\t\t\t\t\t\t\t\t\t\tthis.selected= \"selected\";\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\tif(options.oper === 'edit') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper === 'search') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper ==='filter') {\n\t\t\t\t\t\t\t\t\t\tif($(\"#fbox_\"+$t.p.id)[0].p) {\n\t\t\t\t\t\t\t\t\t\t\tvar cols = $(\"#fbox_\"+$t.p.id)[0].p.columns, nm;\n\t\t\t\t\t\t\t\t\t\t\t$.each(cols,function(i) {\n\t\t\t\t\t\t\t\t\t\t\t\tnm  =  this.index || this.name;\n\t\t\t\t\t\t\t\t\t\t\t\tif(options.name === nm) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.dataUrl = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.value = oV;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterSelectUrlComplete\", [elem]);\n\t\t\t\t\t\t\t\t//},0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},ajaxso || {}));\n\t\t\t\t} else if(options.value) {\n\t\t\t\t\tvar i;\n\t\t\t\t\tif(options.size === undefined) {\n\t\t\t\t\t\toptions.size = msl ? 3 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof options.value === 'function') { options.value = options.value(); }\n\t\t\t\t\tvar so,sv, ov, oSv, key, value,\n\t\t\t\t\tsep = options.separator === undefined ? \":\" : options.separator,\n\t\t\t\t\tdelim = options.delimiter === undefined ? \";\" : options.delimiter;\n\t\t\t\t\tif(typeof options.value === 'string') {\n\t\t\t\t\t\tso = options.value.split(delim);\n\t\t\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\t\t\tsv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\tov.value = sv[0]; ov.innerHTML = sv[1];\n\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\tif (!msl &&  ($.trim(sv[0]) === $.trim(vl) || $.trim(sv[1]) === $.trim(vl))) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(sv[1]), ovm)>-1 || $.inArray($.trim(sv[0]), ovm)>-1)) {ov.selected =\"selected\";}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (Object.prototype.toString.call(options.value) === \"[object Array]\") {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\t// array of arrays [[Key, Value], [Key, Value], ...]\n\t\t\t\t\t\tfor (i=0; i<oSv.length; i++) {\n\t\t\t\t\t\t\tif(oSv[i].length === 2) {\n\t\t\t\t\t\t\t\tkey = oSv[i][0]; \n\t\t\t\t\t\t\t\tvalue = oSv[i][1];\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = value;\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(value) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(value),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (typeof options.value === 'object') {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\tfor (key in oSv) {\n\t\t\t\t\t\t\tif (oSv.hasOwnProperty(key ) ){\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = oSv[key];\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(oSv[key]) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(oSv[key]),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"image\" :\n\t\t\tcase \"file\" :\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tbreak;\n\t\t\tcase \"custom\" :\n\t\t\t\telem = document.createElement(\"span\");\n\t\t\t\ttry {\n\t\t\t\t\tif($.isFunction(options.custom_element)) {\n\t\t\t\t\t\tvar celm = options.custom_element.call($t,vl,options);\n\t\t\t\t\t\tif(celm) {\n\t\t\t\t\t\t\tcelm = $(celm).addClass(\"customelement\").attr({id:options.id,name:options.name});\n\t\t\t\t\t\t\t$(elem).empty().append(celm);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow \"e2\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow \"e1\";\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\t\t\t\t\tedit =$.jgrid.getRegional($t, 'edit');\n\n\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,typeof e===\"string\"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tdefault :\n\t\t\t\tvar role;\n\t\t\t\tif(eltype===\"button\") { role = \"button\"; }\n\t\t\t\telse { role = \"textbox\"; } // ???\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tif(eltype !== \"button\"){\n\t\t\t\t\tif(autowidth) {\n\t\t\t\t\t\tif(!options.size) { $(elem).css({width:\"96%\"}); }\n\t\t\t\t\t} else if (!options.size) { options.size = 20; }\n\t\t\t\t}\n\t\t\t\t$(elem).attr(\"role\",role);\n\t\t}\n\t\treturn elem;\n\t},\n// Date Validation Javascript\n\tcheckDate : function (format, date) {\n\t\tvar daysInFebruary = function(year){\n\t\t// February has 29 days in any year evenly divisible by four,\n\t\t// EXCEPT for centurial years which are not also divisible by 400.\n\t\t\treturn (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );\n\t\t},\n\t\ttsp = {}, sep;\n\t\tformat = format.toLowerCase();\n\t\t//we search for /,-,. for the date separator\n\t\tif(format.indexOf(\"/\") !== -1) {\n\t\t\tsep = \"/\";\n\t\t} else if(format.indexOf(\"-\") !== -1) {\n\t\t\tsep = \"-\";\n\t\t} else if(format.indexOf(\".\") !== -1) {\n\t\t\tsep = \".\";\n\t\t} else {\n\t\t\tsep = \"/\";\n\t\t}\n\t\tformat = format.split(sep);\n\t\tdate = date.split(sep);\n\t\tif (date.length !== 3) { return false; }\n\t\tvar j=-1,yln, dln=-1, mln=-1, i;\n\t\tfor(i=0;i<format.length;i++){\n\t\t\tvar dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10);\n\t\t\ttsp[format[i]] = dv;\n\t\t\tyln = format[i];\n\t\t\tif(yln.indexOf(\"y\") !== -1) { j=i; }\n\t\t\tif(yln.indexOf(\"m\") !== -1) { mln=i; }\n\t\t\tif(yln.indexOf(\"d\") !== -1) { dln=i; }\n\t\t}\n\t\tif (format[j] === \"y\" || format[j] === \"yyyy\") {\n\t\t\tyln=4;\n\t\t} else if(format[j] ===\"yy\"){\n\t\t\tyln = 2;\n\t\t} else {\n\t\t\tyln = -1;\n\t\t}\n\t\tvar daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31],\n\t\tstrDate;\n\t\tif (j === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[j]].toString();\n\t\t\tif(yln === 2 && strDate.length === 1) {yln = 1;}\n\t\t\tif (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!==\"00\")){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(mln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[mln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(dln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[dln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){\n\t\t\t\treturn false;\n\t\t\t}\n\t\treturn true;\n\t},\n\tisEmpty : function(val)\n\t{\n\t\tif (val === undefined || val.match(/^\\s+$/) || val === \"\")\t{\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\tcheckTime : function(time){\n\t// checks only hh:ss (and optional am/pm)\n\t\tvar re = /^(\\d{1,2}):(\\d{2})([apAP][Mm])?$/,regs;\n\t\tif(!$.jgrid.isEmpty(time))\n\t\t{\n\t\t\tregs = time.match(re);\n\t\t\tif(regs) {\n\t\t\t\tif(regs[3]) {\n\t\t\t\t\tif(regs[1] < 1 || regs[1] > 12) { return false; }\n\t\t\t\t} else {\n\t\t\t\t\tif(regs[1] > 23) { return false; }\n\t\t\t\t}\n\t\t\t\tif(regs[2] > 59) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\tcheckValues : function(val, valref, customobject, nam) {\n\t\tvar edtrul,i, nm, dft, len, g = this, cm = g.p.colModel,\n\t\tmsg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate;\n\t\tif(customobject === undefined) {\n\t\t\tif(typeof valref==='string'){\n\t\t\t\tfor( i =0, len=cm.length;i<len; i++){\n\t\t\t\t\tif(cm[i].name===valref) {\n\t\t\t\t\t\tedtrul = cm[i].editrules;\n\t\t\t\t\t\tvalref = i;\n\t\t\t\t\t\tif(cm[i].formoptions != null) { nm = cm[i].formoptions.label; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(valref >=0) {\n\t\t\t\tedtrul = cm[valref].editrules;\n\t\t\t}\n\t\t} else {\n\t\t\tedtrul = customobject;\n\t\t\tnm = nam===undefined ? \"_\" : nam;\n\t\t}\n\t\tif(edtrul) {\n\t\t\tif(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; }\n\t\t\tif(edtrul.required === true) {\n\t\t\t\tif( $.jgrid.isEmpty(val) )  { return [false,nm+\": \"+msg.required,\"\"]; }\n\t\t\t}\n\t\t\t// force required\n\t\t\tvar rqfield = edtrul.required === false ? false : true;\n\t\t\tif(edtrul.number === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.number,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) {\n\t\t\t\tif (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+\": \"+msg.minValue+\" \"+edtrul.minValue,\"\"];}\n\t\t\t}\n\t\t\tif(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) {\n\t\t\t\tif (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+\": \"+msg.maxValue+\" \"+edtrul.maxValue,\"\"];}\n\t\t\t}\n\t\t\tvar filter;\n\t\t\tif(edtrul.email === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t// taken from $ Validate plugin\n\t\t\t\t\tfilter = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.email,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.integer === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.integer,\"\"]; }\n\t\t\t\t\tif ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+\": \"+msg.integer,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.date === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(cm[valref].formatoptions && cm[valref].formatoptions.newformat) {\n\t\t\t\t\t\tdft = cm[valref].formatoptions.newformat;\n\t\t\t\t\t\tfmtdate = $.jgrid.getRegional(g, 'formatter.date.masks');\n\t\t\t\t\t\tif(fmtdate && fmtdate.hasOwnProperty(dft) ) {\n\t\t\t\t\t\t\tdft = fmtdate[dft];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdft = cm[valref].datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tif(!$.jgrid.checkDate (dft, val)) { return [false,nm+\": \"+msg.date+\" - \"+dft,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.time === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(!$.jgrid.checkTime (val)) { return [false,nm+\": \"+msg.date+\" - hh:mm (am/pm)\",\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.url === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tfilter = /^(((https?)|(ftp)):\\/\\/([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\\\/+@&#;`~=%!]*)(\\.\\w{2,})?)*\\/?)/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.url,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.custom === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif($.isFunction(edtrul.custom_func)) {\n\t\t\t\t\t\tvar ret = edtrul.custom_func.call(g,val,nm,valref);\n\t\t\t\t\t\treturn $.isArray(ret) ? ret : [false,msg.customarray,\"\"];\n\t\t\t\t\t}\n\t\t\t\t\treturn [false,msg.customfcheck,\"\"];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [true,\"\",\"\"];\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.export.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, jqGridUtils, JSZip, pdfMake */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./jquery.fmatter\",\n\t\t\t\"./grid.utils\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n\n$.jgrid = $.jgrid || {};\n\n\n$.extend($.jgrid,{\n\tformatCell : function ( cellval , colpos, rwdat, cm, $t){\n\t\tvar v;\n\t\tif(cm.formatter !== undefined) {\n\t\t\tvar opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '' };\n\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\tv = cm.formatter.call($t,cellval,opts,rwdat);\n\t\t\t} else if($.fmatter){\n\t\t\t\tv = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat);\n\t\t\t} else {\n\t\t\t\tv = cellval;\n\t\t\t}\n\t\t} else {\n\t\t\tv = cellval;\n\t\t}\n\t\treturn v;\n\t},\n\tformatCellCsv : function (v, p) {\n\t\tv = v == null ? '' : String(v);\n\t\ttry {\n\t\t\tv = v.replace(p._regexsep ,p.separatorReplace).replace(/\\r\\n/g, p.replaceNewLine).replace(/\\n/g, p.replaceNewLine);\n\t\t} catch (_e) {\n\t\t\tv=\"\";\n\t\t}\n\t\tif(p.escquote) {\n\t\t\tv = v.replace(p._regexquot, p.escquote + p.quote);\n\t\t}\n\t\tif( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) {\n\t\t\tv = p.quote + v + p.quote;\n\t\t}\n\t\treturn v;\t\t\n\t},\n\n\texcelCellPos : function ( n ){\n\t\tvar ordA = 'A'.charCodeAt(0),\n\t\tordZ = 'Z'.charCodeAt(0),\n\t\tlen = ordZ - ordA + 1,\n\t\ts = \"\";\n\n\t\twhile( n >= 0 ) {\n\t\t\ts = String.fromCharCode(n % len + ordA) + s;\n\t\t\tn = Math.floor(n / len) - 1;\n\t\t}\n\n\t\treturn s;\n\t},\n\n\tmakeNode : function ( root, elemName, options ) {\n\t\tvar currNode = root.createElement( elemName );\n\n\t\tif ( options ) {\n\t\t\tif ( options.attr ) {\n\t\t\t\t$(currNode).attr( options.attr );\n\t\t\t}\n\t\t\tif( options.children ) {\n\t\t\t\t$.each( options.children, function ( key, value ) {\n\t\t\t\t\tcurrNode.appendChild( value );\n\t\t\t\t});\n\t\t\t}\n\t\t\tif( options.text ) {\n\t\t\t\tcurrNode.appendChild( root.createTextNode( options.text ) );\n\t\t\t}\n\t\t}\n\t\treturn currNode;\n\t},\n\txmlToZip : function ( zip, obj ) {\n\t\tvar $t = this,\n\t\txmlserialiser = new XMLSerializer(),\n\t\t// IE >= 9\n\t\tieExcel = xmlserialiser.serializeToString(\t\n\t\t\t$.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) )\n\t\t\t.indexOf( 'xmlns:r' ) === -1,\n\t\tnewDir, worksheet, i, ien, attr, attrs = [], str;\n\n\t\t$.each( obj, function ( name, val ) {\n\t\t\tif ( $.isPlainObject( val ) ) {\n\t\t\t\tnewDir = zip.folder( name );\n\t\t\t\t$t.xmlToZip( newDir, val );\n\t\t\t} else {\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tworksheet = val.childNodes[0];\n\t\t\t\t\tfor ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {\n\t\t\t\t\t\tvar attrName = worksheet.attributes[i].nodeName;\n\t\t\t\t\t\tvar attrValue = worksheet.attributes[i].nodeValue;\n\n\t\t\t\t\t\tif ( attrName.indexOf( ':' ) !== -1 ) {\n\t\t\t\t\t\t\tattrs.push( { name: attrName, value: attrValue } );\n\n\t\t\t\t\t\t\tworksheet.removeAttribute( attrName );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( i=0, ien=attrs.length ; i<ien ; i++ ) {\n\t\t\t\t\t\tattr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );\n\t\t\t\t\t\tattr.value = attrs[i].value;\n\t\t\t\t\t\tworksheet.setAttributeNode( attr );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// suuport of all browsers\n\t\t\t\tstr = xmlserialiser.serializeToString(val);\n\t\t\t\t// Fix IE's XML\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tif ( str.indexOf( '<?xml' ) === -1 ) {\n\t\t\t\t\t\tstr = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+str;\n\t\t\t\t\t}\n\t\t\t\t\tstr = str.replace( /_dt_b_namespace_token_/g, ':' );\n\t\t\t\t}\n\n\t\t\t\tstr = str\n\t\t\t\t\t.replace( /<row xmlns=\"\" /g, '<row ' )\n\t\t\t\t\t.replace( /<cols xmlns=\"\">/g, '<cols>' )\n\t\t\t\t\t.replace( /<mergeCells xmlns=\"\" /g, '<mergeCells ' );\n\n\t\t\t\tzip.file( name, str );\n\t\t\t}\n\t\t} );\n\t},\n\t// Excel - Pre-defined strings to build a basic XLSX file\n\texcelStrings  : {\n\t\t\"_rels/.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"xl/_rels/workbook.xml.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>'+\n\t\t\t\t'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"[Content_Types].xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">'+\n\t\t\t\t'<Default Extension=\"xml\" ContentType=\"application/xml\" />'+\n\t\t\t\t'<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />'+\n\t\t\t\t'<Default Extension=\"jpeg\" ContentType=\"image/jpeg\" />'+\n\t\t\t\t'<Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" />'+\n\t\t\t'</Types>',\n\n\t\t\"xl/workbook.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">'+\n\t\t\t\t'<fileVersion appName=\"xl\" lastEdited=\"5\" lowestEdited=\"5\" rupBuild=\"24816\"/>'+\n\t\t\t\t'<workbookPr showInkAnnotation=\"0\" autoCompressPictures=\"0\"/>'+\n\t\t\t\t'<bookViews>'+\n\t\t\t\t\t'<workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"25600\" windowHeight=\"19020\" tabRatio=\"500\"/>'+\n\t\t\t\t'</bookViews>'+\n\t\t\t\t'<sheets>'+\n\t\t\t\t\t'<sheet name=\"\" sheetId=\"1\" r:id=\"rId1\"/>'+\n\t\t\t\t'</sheets>'+\n\t\t\t'</workbook>',\n\n\t\t\"xl/worksheets/sheet1.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<sheetData/>'+\n\t\t\t'</worksheet>',\n\n\t\t\"xl/styles.xml\": \n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\"?>'+\n\t\t\t'<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<fonts count=\"5\" x14ac:knownFonts=\"1\">'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<color rgb=\"FFFFFFFF\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<b />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<i />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<u />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t'</fonts>'+\n\t\t\t\t'<fills count=\"6\">'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"none\" />'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill/>'+ \n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD9D9D9\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD99795\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6efce\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6cfef\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t'</fills>'+\n\t\t\t\t'<borders count=\"2\">'+\n\t\t\t\t\t'<border>'+\n\t\t\t\t\t\t'<left />'+\n\t\t\t\t\t\t'<right />'+\n\t\t\t\t\t\t'<top />'+\n\t\t\t\t\t\t'<bottom />'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t\t'<border diagonalUp=\"false\" diagonalDown=\"false\">'+\n\t\t\t\t\t\t'<left style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</left>'+\n\t\t\t\t\t\t'<right style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</right>'+\n\t\t\t\t\t\t'<top style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</top>'+\n\t\t\t\t\t\t'<bottom style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</bottom>'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t'</borders>'+\n\t\t\t\t'<cellStyleXfs count=\"1\">'+\n\t\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" />'+\n\t\t\t\t'</cellStyleXfs>'+\n\t\t\t\t'<cellXfs count=\"2\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'</cellXfs>'+\n\t\t\t\t'<cellStyles count=\"1\">'+\n\t\t\t\t\t'<cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\" />'+\n\t\t\t\t'</cellStyles>'+\n\t\t\t\t'<dxfs count=\"0\" />'+\n\t\t\t\t'<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\" />'+\n\t\t\t'</styleSheet>'\n\t}\n\t\n});\n/******************************************************************** \n*\n* due to speed, every export method will have separate module\n* to collect grouped data\n*\n*********************************************************************/\n$.jgrid.extend({\n\texportToCsv : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tseparator: \",\",\n\t\t\tseparatorReplace : \" \",\n\t\t\tquote : '\"', \n\t\t\tescquote : '\"', \n\t\t\tnewLine : \"\\r\\n\", // navigator.userAgent.match(/Windows/) ?\t'\\r\\n' : '\\n';\n\t\t\treplaceNewLine : \" \",\n\t\t\tincludeCaption : true,\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.csv\",\n\t\t\tmimetype : \"text/csv;charset=utf-8\",\n\t\t\treturnAsString : false\n\t\t}, p || {});\n\t\tvar ret =\"\";\n\t\tthis.each(function(){\n\n\t\t\tp._regexsep = new RegExp(p.separator, \"g\");\n\t\t\tp._regexquot = new RegExp(p.quote, \"g\");\n\t\t\t\t\t\t\n\t\t\tvar $t = this,\n\t\t\t// get the filtered data\n\t\t\tdata1 = this.addLocalData( true ), \n\t\t\tdlen = data1.length,\n\t\t\tcm = $t.p.colModel,\n\t\t\tcmlen = cm.length,\n\t\t\ti, j=0, row, str = '' , tmp, k,\n\t\t\tcap = \"\", hdr = \"\", ftr=\"\",\tlbl=\"\", albl=[], restorevis = [];\n\t\t\tfunction groupToCsv (grdata, p) {\n\t\t\t\tvar str=\"\",\n\t\t\t\tgrp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0;\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[j] = \n\t\t\t\t\t\t\t\t\t$.jgrid.formatCellCsv(\n\t\t\t\t\t\t\t\t\t$.jgrid.stripHtml( \n\t\t\t\t\t\t\t\t\t$.jgrid.template(tplfld,vv) \n\t\t\t\t\t\t\t\t\t), p ) ;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv, k;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = new Array(p.collen);\n\t\t\t\t\t}\n\t\t\t\t\tarr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p);\n\t\t\t\t\tstr +=  arr.join( p.separator ) + p.newLine;\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tto = grdata[kk - offset];\n\t\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t\tfor(ik = 0; ik < cm.length; ik++) {\n\t\t\t\t\t\t\t\tif(!cm[ik].hidden) {\n\t\t\t\t\t\t\t\t\tarr[k] = $.jgrid.formatCellCsv( \n\t\t\t\t\t\t\t\t\t\t$.jgrid.formatCell( to[cm[ik].name], ik, to, cm[ik], $t ) , p);\n\t\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn str;\n\t\t\t}\n\n\t\t\t// end group function\n\t\t\tvar def = {}, key;\n\t\t\t$.each(cm,function(i,n) {\n\t\t\t\tif((n.name === 'cb' || n.name === 'rn') && !n.hidden) {\n\t\t\t\t\trestorevis.push(i);\n\t\t\t\t\tn.hidden = true;\n\t\t\t\t}\n\t\t\t\tif(!n.hidden) {\n\t\t\t\t\talbl.push( $.jgrid.formatCellCsv( n.label || n.name, p) );\n\t\t\t\t\tdef[n.name] = n.label || n.name;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tif(p.includeLabels) {\n\t\t\t\tlbl = albl.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\t\n\t\t\tp.collen = albl.length;\n\t\t\t\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\t\n\t\t\t\tstr += groupToCsv(data1, p);\n\t\t\t\t\n\t\t\t}  else {\n\t\t\t\twhile(j < dlen) {\n\t\t\t\t\trow = data1[j];\n\t\t\t\t\ttmp = [];\n\t\t\t\t\tk =0;\n\t\t\t\t\tfor(i = 0; i < cmlen; i++) {\n\t\t\t\t\t\tif(!cm[i].hidden) {\n\t\t\t\t\t\t\ttmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t ), p );\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tstr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata1 = null; // free\n\t\t\t// get the column length.\n\t\t\ttmp = new Array(p.collen);\n\t\t\tif(p.includeCaption && $t.p.caption) {\n\t\t\t\tj=p.collen;\n\t\t\t\twhile(--j) {tmp[j]=\"\";}\n\t\t\t\ttmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p );\n\t\t\t\tcap += tmp.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\tif(p.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders;\n\t\t\t\t\tj = 0; tmp = [];\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttmp[j] = '';\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\ttmp[j]= ghdata[k].titleText;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\thdr += tmp.join( p.separator ) + p.newLine;\n \t\t\t\t}\n\t\t\t}\n\t\t\tif(p.includeFooter && $t.p.footerrow) {\n\t\t\t\t// already formated\n\t\t\t\tvar foot = $(\".ui-jqgrid-ftable\", this.sDiv);\n\t\t\t\tif(foot.length) {\n\t\t\t\t\tvar frows = foot[0].rows[0];\n\t\t\t\t\ti=0;j=0; tmp=[];\n\t\t\t\t\twhile(i < frows.cells.length){\n\t\t\t\t\t\tvar fc = frows.cells[i],\n\t\t\t\t\t\tcoln = $(fc).attr('aria-describedby').slice(-3);\n\t\t\t\t\t\tif(!fc.hidden && coln !== '_cb' && coln !== '_rn' ) {\n\t\t\t\t\t\t\ttmp[j] = $.jgrid.formatCellCsv( $(fc).text(), p );\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tftr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t}\n\t\t\t}\n\t\t\tret = cap + hdr + lbl + str + ftr;\n\t\t\t\n\t\t\tfor(i=0;i<restorevis.length;i++) {\n\t\t\t\tcm[restorevis[i]].hidden = false;\n\t\t\t}\n\t\t});\n\t\tif (p.returnAsString) {\n\t\t\treturn ret;\n\t\t} else {\n\t\t\tjqGridUtils.saveAs( ret, p.fileName, { type : p.mimetype });\n\t\t}\n\t},\n\t/*\n\t * \n\t * @param object o - settings for the export\n\t * @returns excel 2007 document\n\t * The method requiere jsZip lib in order to create excel document\n\t */\n\texportToExcel : function ( o ) {\n\t\to = $.extend(true, {\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.xlsx\",\n\t\t\tmimetype : \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n\t\t\tmaxlength : 40 // maxlength for visible string data \n\t\t}, o || {} );\n\t\tthis.each(function() {\n\t\t\tvar $t = this,\n\t\t\tes = $.jgrid.excelStrings,\n\t\t\trowPos = 0,\n\t\t\trels = $.parseXML( es['xl/worksheets/sheet1.xml']),\n\t\t\trelsGet = rels.getElementsByTagName( \"sheetData\" )[0],\n\t\t\txlsx = {\n\t\t\t\t_rels: {\n\t\t\t\t\t\".rels\": $.parseXML( es['_rels/.rels'])\n\t\t\t\t},\n\t\t\t\txl: {\n\t\t\t\t\t_rels: {\n\t\t\t\t\t\t\"workbook.xml.rels\": $.parseXML( es['xl/_rels/workbook.xml.rels'])\n\t\t\t\t\t},\n\t\t\t\t\t\"workbook.xml\": $.parseXML( es['xl/workbook.xml']),\n\t\t\t\t\t\"styles.xml\": $.parseXML( es['xl/styles.xml']),\n\t\t\t\t\t\"worksheets\": {\n\t\t\t\t\t\t\"sheet1.xml\": rels\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"[Content_Types].xml\": $.parseXML( es['[Content_Types].xml'])\n\t\t\t},\n\t\t\tcm = $t.p.colModel,\n\t\t\ti=0, j, ien, obj={},\n\t\t\tdata = { \n\t\t\t\tbody  : $t.addLocalData( true ),\n\t\t\t\theader : [],\n\t\t\t\tfooter : [],\n\t\t\t\twidth : [],\n\t\t\t\tmap : [] \n\t\t\t};\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj[ cm[j].name ] = cm[j].label || cm[j].name;\n\t\t\t\tdata.width[ i ] = 5;\n\t\t\t\tdata.map[i] = j;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tdata.header.push( obj );\n\t\t\tvar currentRow, rowNode,\n\t\t\taddRow = function ( row, header ) {\n\t\t\t\tcurrentRow = rowPos+1;\n\t\t\t\trowNode = $.jgrid.makeNode( rels, \"row\", { attr: {r:currentRow} } );\n\t\t\t\tvar i=0;\n\t\t\t\tfor ( var key  in data.header[0]) {\n\t\t\t\t\tif(!data.header[0].hasOwnProperty( key )) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t// key = cm[i].name;\n\t\t\t\t\t// Concat both the Cell Columns as a letter and the Row of the cell.\n\t\t\t\t\tvar cellId = $.jgrid.excelCellPos(i) + '' + currentRow,\n\t\t\t\t\tcell,\n\t\t\t\t\tv= row[key];\n\t\t\t\t\tif ( v == null ) {\n\t\t\t\t\t\tv = '';\n\t\t\t\t\t}\n\t\t\t\t\tif(!header) {\n\t\t\t\t\t\tv = v !== '' ? $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t) : v;\n\t\t\t\t\t}\n\t\t\t\t\tdata.width[i] = Math.max(data.width[i], Math.min(parseInt(v.length,10), o.maxlength) );\n\t\t\t\t\t// Detect numbers - don't match numbers with leading zeros or a negative\n\t\t\t\t\t// anywhere but the start\n\t\t\t\t\t// $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t )\n\t\t\t\t\tif ( typeof v === 'number' || (\n\t\t\t\t\t\t\tv.match &&\n\t\t\t\t\t\t\t$.trim(v).match(/^-?\\d+(\\.\\d+)?$/) &&\n\t\t\t\t\t\t\t! $.trim(v).match(/^0\\d+/) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'n',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t$.jgrid.makeNode( rels, 'v', { text: v } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Replace non standard characters for text output\n\t\t\t\t\t\tvar text = ! v.replace ?\n\t\t\t\t\t\t\tv :\n\t\t\t\t\t\t\t$.jgrid.htmlEncode (v );\n\t\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'inlineStr',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren:{\n\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 'is', {\n\t\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 't', {\n\t\t\t\t\t\t\t\t\t\t\ttext: text\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\trowNode.appendChild( cell );\n\t\t\t\t}\n\t\t\t\trelsGet.appendChild(rowNode);\n\t\t\t\trowPos++;\n\t\t\t};\n//=========================================================================\t\t\t\n\t\t\tfunction groupToExcel ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\t\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(data.header[0]);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(data.header[0]);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\taddRow( to, false );\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\t\n\t\t\t$( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName );\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader, mergecell=[];\n\t\t\t\tvar mrow = 0;\n\t\t\t\tfor (i=0;i<gh.length;i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders, clone ={};\n\t\t\t\t\tj=0; mrow++;\n\t\t\t\t\tfor(var key in data.header[0] ) {\n\t\t\t\t\t\tif(!data.header[0].hasOwnProperty(key)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\tfor(var k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tclone[key] = ghdata[k].titleText;\n\t\t\t\t\t\t\t\tvar start = $.jgrid.excelCellPos(j) + mrow,\n\t\t\t\t\t\t\t\t\tend = $.jgrid.excelCellPos(j+ghdata[k].numberOfColumns -1) + mrow;\n\t\t\t\t\t\t\t\tmergecell.push({ ref: start+\":\"+end });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\taddRow( clone, true );\n \t\t\t\t}\n\t\t\t\tvar merge = $.jgrid.makeNode( rels, 'mergeCells', {\n\t\t\t\t\tattr : {\n\t\t\t\t\t\tcount : mergecell.length\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$('worksheet', rels).append( merge );\n\t\t\t\tfor(i=0;i<mergecell.length;i++) {\n\t\t\t\t\tmerge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{ \n\t\t\t\t\t\tattr:  mergecell[i]\n\t\t\t\t\t}));\n\t\t\t\t}\t\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeLabels ) {\n\t\t\t\taddRow( data.header[0], true );\n\t\t\t\t$('row c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\tgroupToExcel(data.body);\n\t\t\t} else {\n\t\t\t\tfor ( var n=0, ie=data.body.length ; n<ie ; n++ ) {\n\t\t\t\t\taddRow( data.body[n], false );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( o.includeFooter || $t.p.footerrow) {\n\t\t\t\tdata.footer = $($t).jqGrid('footerData', 'get');\n\t\t\t\tfor( i in data.footer) {\n\t\t\t\t\tif(data.footer.hasOwnProperty(i)) {\n\t\t\t\t\t\tdata.footer[i] = $.jgrid.stripHtml(data.footer[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\taddRow( data.footer, true );\n\t\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\t\n\t\t\t// Set column widths\n\t\t\tvar cols = $.jgrid.makeNode( rels, 'cols' );\n\t\t\t$('worksheet', rels).prepend( cols );\n\n\t\t\tfor ( i=0, ien=data.width.length ; i<ien ; i++ ) {\n\t\t\t\tcols.appendChild( $.jgrid.makeNode( rels, 'col', {\n\t\t\t\t\tattr: {\n\t\t\t\t\t\tmin: i+1,\n\t\t\t\t\t\tmax: i+1,\n\t\t\t\t\t\twidth: data.width[i],\n\t\t\t\t\t\tcustomWidth: 1\n\t\t\t\t\t}\n\t\t\t\t} ) );\n\t\t\t}\n\t\t\tdata = null; // free memory\n\t\t\ttry {\n\t\t\t\tvar zip = new JSZip();\n\t\t\t\tvar zipConfig = {\n\t\t\t\t\ttype: 'blob',\n\t\t\t\t\tmimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t};\n\t\t\t\t$.jgrid.xmlToZip( zip, xlsx );\n\t\t\t\t\tif ( zip.generateAsync ) {\n\t\t\t\t\t// JSZip 3+\n\t\t\t\t\tzip\n\t\t\t\t\t\t.generateAsync( zipConfig )\n\t\t\t\t\t\t.then( function ( blob ) {\n\t\t\t\t\t\t\tjqGridUtils.saveAs( blob, o.fileName, { type : o.mimetype } );\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// JSZip 2.5\n\t\t\t\t\tjqGridUtils.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } );\t\t\t\t}\n\t\t\t}\n\t\t\tcatch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t},\n\texportToPdf : function (o) {\n\t\to = $.extend(true,{\n\t\t\ttitle: null,\n\t\t\torientation: 'portrait',\n\t\t\tpageSize: 'A4',\n\t\t\tdescription: null,\n\t\t\tcustomSettings: null,\n\t\t\tdownload: 'download',\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.pdf\",\n\t\t\tmimetype : \"application/pdf\"\n\t\t\t\n\t\t}, o || {} );\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key, \n\t\t\tdata = $t.addLocalData( true ), def = {}, i=0, map=[], test=[], widths = [],  align={};\n// Group function\t\t\t\n\t\t\tfunction groupToPdf ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tfunction constructRow( row, fmt ) {\n\t\t\t\t\tvar k =0, test=[];\n\t\t\t\t\t//row = data[i];\n\t\t\t\t\tfor( var key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif(def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj = {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : (fmt ? $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t) : row[key]),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn test;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(def);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(def);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\trows.push( constructRow (to, true) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\tvar k;\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj = { text:  cm[j].label || cm[j].name, style: 'tableHeader' };\n\t\t\t\ttest.push( obj );\n\t\t\t\tdef[cm[j].name]  = cm[j].label || cm[j].name;\n\t\t\t\tmap[i] = j;\n\t\t\t\twidths.push(cm[j].width); \n\t\t\t\talign[cm[j].name] = cm[j].align || 'left';\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tvar gh;\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tgh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar clone = [],\n\t\t\t\t\tghdata = gh[i].groupHeaders;\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tobj = {text:'', style: 'tableHeader'};\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tobj = { \n\t\t\t\t\t\t\t\t\ttext : ghdata[k].titleText, \n\t\t\t\t\t\t\t\t\tcolSpan: ghdata[k].numberOfColumns,\n\t\t\t\t\t\t\t\t\tstyle: 'tableHeader'\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone.push(obj);\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\trows.push(clone);\n \t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif(o.includeLabels) {\n\t\t\t\trows.push( test );\n\t\t\t}\n\t\t\tif($t.p.grouping) {\n\t\t\t\tgroupToPdf(data);\n\t\t\t} else {\n\t\t\t\tvar row;\n\t\t\t\tfor ( i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\t\tk =0; \n\t\t\t\t\ttest=[];\n\t\t\t\t\trow = data[i];\n\t\t\t\t\tfor( key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif( def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj\t= {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trows.push(test);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeFooter && $t.p.footerrow) {\n\t\t\t\tvar fdata = $($t).jqGrid('footerData', 'get');\n\t\t\t\ttest=[];\n\t\t\t\tfor( key in def) {\n\t\t\t\t\tif(def.hasOwnProperty(key) ) {\n\t\t\t\t\t\tobj  =  {\n\t\t\t\t\t\t\ttext : $.jgrid.stripHtml(fdata[key]),\n\t\t\t\t\t\t\tstyle : 'tableFooter',\n\t\t\t\t\t\t\talignment : align[key]\n\t\t\t\t\t\t};\n\t\t\t\t\t\ttest.push( obj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trows.push( test );\n\t\t\t}\n\n\t\t\tvar doc = {\n\t\t\t\tpageSize: o.pageSize,\n\t\t\t\tpageOrientation: o.orientation,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\tstyle : 'tableExample',\n\t\t\t\t\t\twidths : widths,\n\t\t\t\t\t\ttable: {\n\t\t\t\t\t\t\theaderRows: (gh!=null) ? 0 : 1,\n\t\t\t\t\t\t\tbody: rows\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tstyles: {\n\t\t\t\t\ttableHeader: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc',\n\t\t\t\t\t\talignment: 'center'\n\t\t\t\t\t},\n\t\t\t\t\ttableBody: {\n\t\t\t\t\t\tfontSize: 10\n\t\t\t\t\t},\n\t\t\t\t\ttableFooter: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc'\n\t\t\t\t\t},\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\talignment: 'center',\n\t\t\t\t\t\tfontSize: 15\n\t\t\t\t\t},\n\t\t\t\t\tdescription: {}\n\t\t\t\t},\n\t\t\t\tdefaultStyle: {\n\t\t\t\t\tfontSize: 10\n\t\t\t\t}\n\t\t\t};\n\t\t\tif ( o.description ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.description,\n\t\t\t\t\tstyle: 'description',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( o.title ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.title,\n\t\t\t\t\tstyle: 'title',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif( o. customSettings ) {\n\t\t\t\to.customSettings.call($t, doc);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvar pdf = pdfMake.createPdf( doc );\n\t\t\t\tif ( o.download === 'open' ) {\n\t\t\t\t\tpdf.open();\n\t\t\t\t} else {\n\t\t\t\t\tpdf.getBuffer( function (buffer) {\n\t\t\t\t\t\tjqGridUtils.saveAs( buffer, o.fileName, {type: o.mimetype } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t}\n});\n//module end\t\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.filter.js",
    "content": "/*\n *\n * The filter uses JSON entities to hold filter rules and groups. Here is an example of a filter:\n\n{ \"groupOp\": \"AND\",\n      \"groups\" : [ \n        { \"groupOp\": \"OR\",\n            \"rules\": [\n                { \"field\": \"name\", \"op\": \"eq\", \"data\": \"England\" }, \n                { \"field\": \"id\", \"op\": \"le\", \"data\": \"5\"}\n             ]\n        } \n      ],\n      \"rules\": [\n        { \"field\": \"name\", \"op\": \"eq\", \"data\": \"Romania\" }, \n        { \"field\": \"id\", \"op\": \"le\", \"data\": \"1\"}\n      ]\n}\n*/\n/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.common\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.fn.jqFilter = function( arg ) {\n\tif (typeof arg === 'string') {\n\t\t\n\t\tvar fn = $.fn.jqFilter[arg];\n\t\tif (!fn) {\n\t\t\tthrow (\"jqFilter - No such method: \" + arg);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\n\tvar p = $.extend(true,{\n\t\tfilter: null,\n\t\tcolumns: [],\n\t\tsortStrategy: null,\n\t\tonChange : null,\n\t\tafterRedraw : null,\n\t\tcheckValues : null,\n\t\terror: false,\n\t\terrmsg : \"\",\n\t\terrorcheck : true,\n\t\tshowQuery : true,\n\t\tsopt : null,\n\t\tops : [],\n\t\toperands : null,\n\t\tnumopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\tstropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\tstrarr : ['text', 'string', 'blob'],\n\t\tgroupOps : [{ op: \"AND\", text: \"AND\" },\t{ op: \"OR\",  text: \"OR\" }],\n\t\tgroupButton : true,\n\t\truleButtons : true,\n\t\tuniqueSearchFields : false,\n\t\tdirection : \"ltr\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t}, $.jgrid.filter, arg || {});\n\treturn this.each( function() {\n\t\tif (this.filter) {return;}\n\t\tthis.p = p;\n\t\t// setup filter in case if they is not defined\n\t\tif (this.p.filter === null || this.p.filter === undefined) {\n\t\t\tthis.p.filter = {\n\t\t\t\tgroupOp: this.p.groupOps[0].op,\n\t\t\t\trules: [],\n\t\t\t\tgroups: []\n\t\t\t};\n\t\t}\n\n\t\t// Sort the columns if the sort strategy is provided.\n\t\tif (this.p.sortStrategy != null && $.isFunction(this.p.sortStrategy)) {\n\t\t\tthis.p.columns.sort(this.p.sortStrategy);\n\t\t}\n\n\t\tvar i, len = this.p.columns.length, cl,\n\t\tisIE = /msie/i.test(navigator.userAgent) && !window.opera;\n\n\t\t// translating the options\n\t\tthis.p.initFilter = $.extend(true,{},this.p.filter);\n\n\t\t// set default values for the columns if they are not set\n\t\tif( !len ) {return;}\n\t\tfor(i=0; i < len; i++) {\n\t\t\tcl = this.p.columns[i];\n\t\t\tif( cl.stype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.inputtype = cl.stype;\n\t\t\t} else if(!cl.inputtype) {\n\t\t\t\tcl.inputtype = 'text';\n\t\t\t}\n\t\t\tif( cl.sorttype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.searchtype = cl.sorttype;\n\t\t\t} else if (!cl.searchtype) {\n\t\t\t\tcl.searchtype = 'string';\n\t\t\t}\n\t\t\tif(cl.hidden === undefined) {\n\t\t\t\t// jqGrid compatibility\n\t\t\t\tcl.hidden = false;\n\t\t\t}\n\t\t\tif(!cl.label) {\n\t\t\t\tcl.label = cl.name;\n\t\t\t}\n\t\t\tif(cl.index) {\n\t\t\t\tcl.name = cl.index;\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchoptions')) {\n\t\t\t\tcl.searchoptions = {};\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchrules')) {\n\t\t\t\tcl.searchrules = {};\n\t\t\t}\n\t\t\tif(cl.search === undefined) {\n\t\t\t\tcl.inlist = true;\n\t\t\t} else {\n\t\t\t\tcl.inlist = cl.search;\n\t\t\t}\n\t\t}\n\t\tvar getGrid = function () {\n\t\t\treturn $(\"#\" + $.jgrid.jqID(p.id))[0] || null;\n\t\t},\n\t\t\n\t\t$tg = getGrid(),\n\t\tclasses = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter,\n\t\tcommon = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common;\n\n\t\t\n\t\tif(this.p.showQuery) {\n\t\t\t$(this).append(\"<table class='queryresult \" + classes.table_widget + \"' style='display:block;max-width:440px;border:0px none;' dir='\"+this.p.direction+\"'><tbody><tr><td class='query'></td></tr></tbody></table>\");\n\t\t}\n\t\t/*\n\t\t *Perform checking.\n\t\t *\n\t\t*/\n\t\tvar checkData = function(val, colModelItem) {\n\t\t\tvar ret = [true,\"\"], $t = getGrid();\n\t\t\tif($.isFunction(colModelItem.searchrules)) {\n\t\t\t\tret = colModelItem.searchrules.call($t, val, colModelItem);\n\t\t\t} else if($.jgrid && $.jgrid.checkValues) {\n\t\t\t\ttry {\n\t\t\t\t\tret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label);\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\tif(ret && ret.length && ret[0] === false) {\n\t\t\t\tp.error = !ret[0];\n\t\t\t\tp.errmsg = ret[1];\n\t\t\t}\n\t\t};\n\t\t/* moving to common\n\t\trandId = function() {\n\t\t\treturn Math.floor(Math.random()*10000).toString();\n\t\t};\n\t\t*/\n\n\t\tthis.onchange = function (  ){\n\t\t\t// clear any error \n\t\t\tthis.p.error = false;\n\t\t\tthis.p.errmsg=\"\";\n\t\t\treturn $.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false;\n\t\t};\n\t\t/*\n\t\t * Redraw the filter every time when new field is added/deleted\n\t\t * and field is  changed\n\t\t */\n\t\tthis.reDraw = function() {\n\t\t\t$(\"table.group:first\",this).remove();\n\t\t\tvar t = this.createTableForGroup(p.filter, null);\n\t\t\t$(this).append(t);\n\t\t\tif($.isFunction(this.p.afterRedraw) ) {\n\t\t\t\tthis.p.afterRedraw.call(this, this.p);\n\t\t\t}\n\t\t};\n\t\t/*\n\t\t * Creates a grouping data for the filter\n\t\t * @param group - object\n\t\t * @param parentgroup - object\n\t\t */\n\t\tthis.createTableForGroup = function(group, parentgroup) {\n\t\t\tvar that = this,  i;\n\t\t\t// this table will hold all the group (tables) and rules (rows)\n\t\t\tvar table = $(\"<table class='group \" + classes.table_widget +\" ui-search-table' style='border:0px none;'><tbody></tbody></table>\"),\n\t\t\t// create error message row\n\t\t\talign = \"left\";\n\t\t\tif(this.p.direction === \"rtl\") {\n\t\t\t\talign = \"right\";\n\t\t\t\ttable.attr(\"dir\",\"rtl\");\n\t\t\t}\n\t\t\tif(parentgroup === null) {\n\t\t\t\ttable.append(\"<tr class='error' style='display:none;'><th colspan='5' class='\" + common.error + \"' align='\"+align+\"'></th></tr>\");\n\t\t\t}\n\n\t\t\tvar tr = $(\"<tr></tr>\");\n\t\t\ttable.append(tr);\n\t\t\t// this header will hold the group operator type and group action buttons for\n\t\t\t// creating subgroup \"+ {}\", creating rule \"+\" or deleting the group \"-\"\n\t\t\tvar th = $(\"<th colspan='5' align='\"+align+\"'></th>\");\n\t\t\ttr.append(th);\n\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// dropdown for: choosing group operator type\n\t\t\tvar groupOpSelect = $(\"<select class='opsel \" + classes.srSelect + \"'></select>\");\n\t\t\tth.append(groupOpSelect);\n\t\t\t// populate dropdown with all posible group operators: or, and\n\t\t\tvar str= \"\", selected;\n\t\t\tfor (i = 0; i < p.groupOps.length; i++) {\n\t\t\t\tselected =  group.groupOp === that.p.groupOps[i].op ? \" selected='selected'\" :\"\";\n\t\t\t\tstr += \"<option value='\"+that.p.groupOps[i].op+\"'\" + selected+\">\"+that.p.groupOps[i].text+\"</option>\";\n\t\t\t}\n\n\t\t\tgroupOpSelect\n\t\t\t.append(str)\n\t\t\t.on('change',function() {\n\t\t\t\tgroup.groupOp = $(groupOpSelect).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\t\t\t}\n\t\t\t// button for adding a new subgroup\n\t\t\tvar inputAddSubgroup =\"<span></span>\";\n\t\t\tif(this.p.groupButton) {\n\t\t\t\tinputAddSubgroup = $(\"<input type='button' value='+ {}' title='\" +that.p.subgroup+\"' class='add-group \" + common.button + \"'/>\");\n\t\t\t\tinputAddSubgroup.on('click',function() {\n\t\t\t\t\tif (group.groups === undefined ) {\n\t\t\t\t\t\tgroup.groups = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgroup.groups.push({\n\t\t\t\t\t\tgroupOp: p.groupOps[0].op,\n\t\t\t\t\t\trules: [],\n\t\t\t\t\t\tgroups: []\n\t\t\t\t\t}); // adding a new group\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tth.append(inputAddSubgroup);\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// button for adding a new rule\n\t\t\tvar inputAddRule = $(\"<input type='button' value='+' title='\"+that.p.addrule+\"' class='add-rule ui-add \" + common.button + \"'/>\"), cm;\n\t\t\tinputAddRule.on('click',function() {\n\t\t\t\t//if(!group) { group = {};}\n\t\t\t\tif (group.rules === undefined) {\n\t\t\t\t\tgroup.rules = [];\n\t\t\t\t}\n\t\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ?  true: that.p.columns[i].search,\n\t\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( !cm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar opr;\n\t\t\t\tif( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { opr= that.p.sopt; }\n\t\t\t\telse if  ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;}\n\t\t\t\telse {opr = that.p.numopts;}\n\n\t\t\t\tgroup.rules.push({\n\t\t\t\t\tfield: cm.name,\n\t\t\t\t\top: opr[0],\n\t\t\t\t\tdata: \"\"\n\t\t\t\t}); // adding a new rule\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\t\t\t\t// for the moment no change have been made to the rule, so\n\t\t\t\t// this will not trigger onchange event\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tth.append(inputAddRule);\n\t\t\t}\n\n\t\t\t// button for delete the group\n\t\t\tif (parentgroup !== null) { // ignore the first group\n\t\t\t\tvar inputDeleteGroup = $(\"<input type='button' value='-' title='\"+that.p.delgroup+\"' class='delete-group \" + common.button + \"'/>\");\n\t\t\t\tth.append(inputDeleteGroup);\n\t\t\t\tinputDeleteGroup.on('click',function() {\n\t\t\t\t// remove group from parent\n\t\t\t\t\tfor (i = 0; i < parentgroup.groups.length; i++) {\n\t\t\t\t\t\tif (parentgroup.groups[i] === group) {\n\t\t\t\t\t\t\tparentgroup.groups.splice(i, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// append subgroup rows\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (i = 0; i < group.groups.length; i++) {\n\t\t\t\t\tvar trHolderForSubgroup = $(\"<tr></tr>\");\n\t\t\t\t\ttable.append(trHolderForSubgroup);\n\n\t\t\t\t\tvar tdFirstHolderForSubgroup = $(\"<td class='first'></td>\");\n\t\t\t\t\ttrHolderForSubgroup.append(tdFirstHolderForSubgroup);\n\n\t\t\t\t\tvar tdMainHolderForSubgroup = $(\"<td colspan='4'></td>\");\n\t\t\t\t\ttdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));\n\t\t\t\t\ttrHolderForSubgroup.append(tdMainHolderForSubgroup);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(group.groupOp === undefined) {\n\t\t\t\tgroup.groupOp = that.p.groupOps[0].op;\n\t\t\t}\n\n\t\t\t// append rules rows\n\t\t\tvar suni = that.p.ruleButtons && that.p.uniqueSearchFields;\n\t\t\tif( suni ) {\n\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\tif(that.p.columns[ii].inlist) {\n\t\t\t\t\t\tthat.p.columns[ii].search = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\ttable.append(\n                       this.createTableRowForRule(group.rules[i], group)\n\t\t\t\t\t);\n\t\t\t\t\tif( suni ) {\n\t\t\t\t\t\tvar field = group.rules[i].field;\n\t\t\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\t\t\tif(field === that.p.columns[ii].name) {\n\t\t\t\t\t\t\t\tthat.p.columns[ii].search = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn table;\n\t\t};\n\t\t/*\n\t\t * Create the rule data for the filter\n\t\t */\n\t\tthis.createTableRowForRule = function(rule, group ) {\n\t\t\t// save current entity in a variable so that it could\n\t\t\t// be referenced in anonimous method calls\n\n\t\t\tvar that=this, $t = getGrid(), tr = $(\"<tr></tr>\"),\n\t\t\t//document.createElement(\"tr\"),\n\n\t\t\t// first column used for padding\n\t\t\t//tdFirstHolderForRule = document.createElement(\"td\"),\n\t\t\ti, op, trpar, cm, str=\"\", selected;\n\t\t\t//tdFirstHolderForRule.setAttribute(\"class\", \"first\");\n\t\t\ttr.append(\"<td class='first'></td>\");\n\n\n\t\t\t// create field container\n\t\t\tvar ruleFieldTd = $(\"<td class='columns'></td>\");\n\t\t\ttr.append(ruleFieldTd);\n\n\n\t\t\t// dropdown for: choosing field\n\t\t\tvar ruleFieldSelect = $(\"<select class='\" + classes.srSelect + \"'></select>\"), ina, aoprs = [];\n\t\t\truleFieldTd.append(ruleFieldSelect);\n\t\t\truleFieldSelect.on('change',function() {\n\t\t\t\tif( that.p.ruleButtons && that.p.uniqueSearchFields ) {\n\t\t\t\t\tvar prev = parseInt($(this).data('curr'),10),\n\t\t\t\t\tcurr = this.selectedIndex;\n\t\t\t\t\tif(prev >= 0 ) {\n\t\t\t\t\t\tthat.p.columns[prev].search = true;\n\t\t\t\t\t\t$(this).data('curr', curr);\n\t\t\t\t\t\tthat.p.columns[curr].search = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trule.field = $(ruleFieldSelect).val();\n\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\t$(\".data\",trpar).empty();\n\t\t\t\tfor (i=0;i<that.p.columns.length;i++) {\n\t\t\t\t\tif(that.p.columns[i].name ===  rule.field) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cm) {return;}\n\t\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\t\tcm.searchoptions.name = rule.field;\n\t\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\t\t\n\t\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, \"\", true, that.p.ajaxSelectOptions || {}, true);\n\t\t\t\t$(elm).addClass(\"input-elm \" + classes.srInput );\n\t\t\t\t//that.createElement(rule, \"\");\n\n\t\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\t\telse {op = that.p.numopts;}\n\t\t\t\t// operators\n\t\t\t\tvar s =\"\", so = 0;\n\t\t\t\taoprs = [];\n\t\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < op.length; i++) {\n\t\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tif(so===0) {\n\t\t\t\t\t\t\trule.op = that.p.ops[ina].oper;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += \"<option value='\"+that.p.ops[ina].oper+\"'>\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t\t\tso++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\".selectopts\",trpar).empty().append( s );\n\t\t\t\t$(\".selectopts\",trpar)[0].selectedIndex = 0;\n\t\t\t\tif( $.jgrid.msie() && $.jgrid.msiever() < 9) {\n\t\t\t\t\tvar sw = parseInt($(\"select.selectopts\",trpar)[0].offsetWidth, 10) + 1;\n\t\t\t\t\t$(\".selectopts\",trpar).width( sw );\n\t\t\t\t\t$(\".selectopts\",trpar).css(\"width\",\"auto\");\n\t\t\t\t}\n\t\t\t\t// data\n\t\t\t\t$(\".data\",trpar).append( elm );\n\t\t\t\t$.jgrid.bindEv.call($t, elm, cm.searchoptions);\n\t\t\t\t$(\".input-elm\",trpar).on('change',function( e ) {\n\t\t\t\t\tvar elem = e.target;\n\t\t\t\t\trule.data = elem.nodeName.toUpperCase() === \"SPAN\" && cm.searchoptions && $.isFunction(cm.searchoptions.custom_value) ?\n\t\t\t\t\t\tcm.searchoptions.custom_value.call($t, $(elem).children(\".customelement:first\"), 'get') : elem.value;\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t});\n\t\t\t\tsetTimeout(function(){ //IE, Opera, Chrome\n\t\t\t\trule.data = $(elm).val();\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t\t}, 0);\n\t\t\t});\n\n\t\t\t// populate drop down with user provided column definitions\n\t\t\tvar j=0;\n\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,\n\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\tselected = \"\";\n\t\t\t\t\tif(rule.field === that.p.columns[i].name) {\n\t\t\t\t\t\tselected = \" selected='selected'\";\n\t\t\t\t\t\tj=i;\n\t\t\t\t\t}\n\t\t\t\t\tstr += \"<option value='\"+that.p.columns[i].name+\"'\" +selected+\">\"+that.p.columns[i].label+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleFieldSelect.append( str );\n\t\t\truleFieldSelect.data('curr', j);\n\n\n\t\t\t// create operator container\n\t\t\tvar ruleOperatorTd = $(\"<td class='operators'></td>\");\n\t\t\ttr.append(ruleOperatorTd);\n\t\t\tcm = p.columns[j];\n\t\t\t// create it here so it can be referentiated in the onchange event\n\t\t\t//var RD = that.createElement(rule, rule.data);\n\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcm.searchoptions.name = rule.field;\n\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\tvar ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true);\n\t\t\tif(rule.op === 'nu' || rule.op === 'nn') {\n\t\t\t\t$(ruleDataInput).attr('readonly','true');\n\t\t\t\t$(ruleDataInput).attr('disabled','true');\n\t\t\t} //retain the state of disabled text fields in case of null ops\n\t\t\t// dropdown for: choosing operator\n\t\t\tvar ruleOperatorSelect = $(\"<select class='selectopts \" + classes.srSelect + \"'></select>\");\n\t\t\truleOperatorTd.append(ruleOperatorSelect);\n\t\t\truleOperatorSelect.on('change',function() {\n\t\t\t\trule.op = $(ruleOperatorSelect).val();\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\tvar rd = $(\".input-elm\",trpar)[0];\n\t\t\t\tif (rule.op === \"nu\" || rule.op === \"nn\") { // disable for operator \"is null\" and \"is not null\"\n\t\t\t\t\trule.data = \"\";\n\t\t\t\t\tif(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = \"\"; }\n\t\t\t\t\trd.setAttribute(\"readonly\", \"true\");\n\t\t\t\t\trd.setAttribute(\"disabled\", \"true\");\n\t\t\t\t} else {\n\t\t\t\t\tif(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; }\n\t\t\t\t\trd.removeAttribute(\"readonly\");\n\t\t\t\t\trd.removeAttribute(\"disabled\");\n\t\t\t\t}\n\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// populate drop down with all available operators\n\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\telse {op = that.p.numopts;}\n\t\t\tstr=\"\";\n\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\tfor ( i = 0; i < op.length; i++) {\n\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\tif(ina !== -1) {\n\t\t\t\t\tselected = rule.op === that.p.ops[ina].oper ? \" selected='selected'\" : \"\";\n\t\t\t\t\tstr += \"<option value='\"+that.p.ops[ina].oper+\"'\"+selected+\">\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleOperatorSelect.append( str );\n\t\t\t// create data container\n\t\t\tvar ruleDataTd = $(\"<td class='data'></td>\");\n\t\t\ttr.append(ruleDataTd);\n\n\t\t\t// textbox for: data\n\t\t\t// is created previously\n\t\t\t//ruleDataInput.setAttribute(\"type\", \"text\");\n\t\t\truleDataTd.append(ruleDataInput);\n\t\t\t$.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions);\n\t\t\t$(ruleDataInput)\n\t\t\t.addClass(\"input-elm \" + classes.srInput )\n\t\t\t.on('change', function() {\n\t\t\t\trule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(this).children(\".customelement:first\"),'get') : $(this).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// create action container\n\t\t\tvar ruleDeleteTd = $(\"<td></td>\");\n\t\t\ttr.append(ruleDeleteTd);\n\n\t\t\t// create button for: delete rule\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\tvar ruleDeleteInput = $(\"<input type='button' value='-' title='\"+that.p.delrule+\"' class='delete-rule ui-del \" + common.button + \"'/>\");\n\t\t\truleDeleteTd.append(ruleDeleteInput);\n\t\t\t//$(ruleDeleteInput).html(\"\").height(20).width(30).button({icons: {  primary: \"ui-icon-minus\", text:false}});\n\t\t\truleDeleteInput.on('click',function() {\n\t\t\t\t// remove rule from group\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\tif (group.rules[i] === rule) {\n\t\t\t\t\t\tgroup.rules.splice(i, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t}\n\t\t\treturn tr;\n\t\t};\n\n\t\tthis.getStringForGroup = function(group) {\n\t\t\tvar s = \"(\", index;\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\ts += this.getStringForGroup(group.groups[index]);\n\t\t\t\t\t} catch (eg) {alert(eg);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\ttry{\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += this.getStringForRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {alert(e);}\n\t\t\t}\n\n\t\t\ts += \")\";\n\n\t\t\tif (s === \"()\") {\n\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t}\n\t\t\treturn s;\n\t\t};\n\t\tthis.getStringForRule = function(rule) {\n\t\t\tvar opUF = \"\",opC=\"\", i, cm, ret, val,\n\t\t\tnumtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid\n\t\t\tfor (i = 0; i < this.p.ops.length; i++) {\n\t\t\t\tif (this.p.ops[i].oper === rule.op) {\n\t\t\t\t\topUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : \"\";\n\t\t\t\t\topC = this.p.ops[i].oper;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (i=0; i<this.p.columns.length; i++) {\n\t\t\t\tif(this.p.columns[i].name === rule.field) {\n\t\t\t\t\tcm = this.p.columns[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cm === undefined) { return \"\"; }\n\t\t\tval = rule.data;\n\t\t\tif(opC === 'bw' || opC === 'bn') { val = val+\"%\"; }\n\t\t\tif(opC === 'ew' || opC === 'en') { val = \"%\"+val; }\n\t\t\tif(opC === 'cn' || opC === 'nc') { val = \"%\"+val+\"%\"; }\n\t\t\tif(opC === 'in' || opC === 'ni') { val = \" (\"+val+\")\"; }\n\t\t\tif(p.errorcheck) { checkData(rule.data, cm); }\n\t\t\tif($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu') { ret = rule.field + \" \" + opUF + \" \" + val; }\n\t\t\telse { ret = rule.field + \" \" + opUF + \" \\\"\" + val + \"\\\"\"; }\n\t\t\treturn ret;\n\t\t};\n\t\tthis.resetFilter = function () {\n\t\t\tthis.p.filter = $.extend(true,{},this.p.initFilter);\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t};\n\t\tthis.hideError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(\"\");\n\t\t\t$(\"tr.error\", this).hide();\n\t\t};\n\t\tthis.showError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(this.p.errmsg);\n\t\t\t$(\"tr.error\", this).show();\n\t\t};\n\t\tthis.toUserFriendlyString = function() {\n\t\t\treturn this.getStringForGroup(p.filter);\n\t\t};\n\t\tthis.toString = function() {\n\t\t\t// this will obtain a string that can be used to match an item.\n\t\t\tvar that = this;\n\t\t\tfunction getStringRule(rule) {\n\t\t\t\tif(that.p.errorcheck) {\n\t\t\t\t\tvar i, cm;\n\t\t\t\t\tfor (i=0; i<that.p.columns.length; i++) {\n\t\t\t\t\t\tif(that.p.columns[i].name === rule.field) {\n\t\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cm) {checkData(rule.data, cm);}\n\t\t\t\t}\n\t\t\t\treturn rule.op + \"(item.\" + rule.field + \",'\" + rule.data + \"')\";\n\t\t\t}\n\n\t\t\tfunction getStringForGroup(group) {\n\t\t\t\tvar s = \"(\", index;\n\n\t\t\t\tif (group.groups !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringForGroup(group.groups[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (group.rules !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse  {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ts += \")\";\n\n\t\t\t\tif (s === \"()\") {\n\t\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t}\n\n\t\t\treturn getStringForGroup(this.p.filter);\n\t\t};\n\n\t\t// Here we init the filter\n\t\tthis.reDraw();\n\n\t\tif(this.p.showQuery) {\n\t\t\tthis.onchange();\n\t\t}\n\t\t// mark is as created so that it will not be created twice on this element\n\t\tthis.filter = true;\n\t});\n};\n$.extend($.fn.jqFilter,{\n\t/*\n\t * Return SQL like string. Can be used directly\n\t */\n\ttoSQLString : function()\n\t{\n\t\tvar s =\"\";\n\t\tthis.each(function(){\n\t\t\ts = this.toUserFriendlyString();\n\t\t});\n\t\treturn s;\n\t},\n\t/*\n\t * Return filter data as object.\n\t */\n\tfilterData : function()\n\t{\n\t\tvar s;\n\t\tthis.each(function(){\n\t\t\ts = this.p.filter;\n\t\t});\n\t\treturn s;\n\n\t},\n\tgetParameter : function (param) {\n\t\tif(param !== undefined) {\n\t\t\tif (this.p.hasOwnProperty(param) ) {\n\t\t\t\treturn this.p[param];\n\t\t\t}\n\t\t}\n\t\treturn this.p;\n\t},\n\tresetFilter: function() {\n\t\treturn this.each(function(){\n\t\t\tthis.resetFilter();\n\t\t});\n\t},\n\taddFilter: function (pfilter) {\n\t\tif (typeof pfilter === \"string\") {\n\t\t\tpfilter = $.jgrid.parse( pfilter );\n\t\t}\n\t\tthis.each(function(){\n\t\t\tthis.p.filter = pfilter;\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t});\n\t}\n\n});\n$.jgrid.extend({\n\tfilterToolbar : function(p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend({\n\t\t\tautosearch: true,\n\t\t\tautosearchDelay: 500,\n\t\t\tsearchOnEnter : true,\n\t\t\tbeforeSearch: null,\n\t\t\tafterSearch: null,\n\t\t\tbeforeClear: null,\n\t\t\tafterClear: null,\n\t\t\tonClearSearchValue : null,\n\t\t\tsearchurl : '',\n\t\t\tstringResult: false,\n\t\t\tgroupOp: 'AND',\n\t\t\tdefaultSearch : \"bw\",\n\t\t\tsearchOperators : false,\n\t\t\tresetIcon : \"x\",\n\t\t\tsplitSelect : \",\",\n\t\t\tgroupOpSelect : \"OR\",\n\t\t\toperands : { \"eq\" :\"==\", \"ne\":\"!\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"^\",\"bn\":\"!^\",\"in\":\"=\",\"ni\":\"!=\",\"ew\":\"|\",\"en\":\"!@\",\"cn\":\"~\",\"nc\":\"!~\",\"nu\":\"#\",\"nn\":\"!#\", \"bt\":\"...\"}\n\t\t}, regional , p  || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif($t.p.filterToolbar) { return; }\n\t\t\tif(!$($t).data('filterToolbar')) {\n\t\t\t\t$($t).data('filterToolbar', p);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\tp = $.extend(p, regional);\n\t\t\t}\n\t\t\tvar classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tbase = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base,\t\t\t\n\n\t\t\ttriggerToolbar = function() {\n\t\t\t\tvar sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], bbt =false, sop;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar $elem = $(\"#gs_\"+ $t.p.idPrefix + $.jgrid.jqID(this.name), (this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\t\tif(p.searchOperators &&  sop.searchOperMenu) {\n\t\t\t\t\t\tso = $elem.parent().prev().children(\"a\").attr(\"soper\") || p.defaultSearch;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tso  = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t}\n\t\t\t\t\tv = this.stype === \"custom\" && $.isFunction(sop.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\" ?\n\t\t\t\t\t\tsop.custom_value.call($t, $elem.children(\".customelement:first\"), \"get\") :\n\t\t\t\t\t\t$elem.val();\n\t\t\t\t\t// detect multiselect\n\t\t\t\t\tif(this.stype === 'select' && sop.multiple && $.isArray(v) && v.length) {\n\t\t\t\t\t\tms = true;\n\t\t\t\t\t\tssfield.push(nm);\n\t\t\t\t\t\tv= v.length === 1 ? v[0] : v;\n\t\t\t\t\t}\n\t\t\t\t\tif(so===\"bt\") {\n\t\t\t\t\t\tbbt = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(v || so===\"nu\" || so===\"nn\") {\n\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\tsopt[nm] = so;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t} catch (z) {}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\" || p.searchOperators === true) \n\t\t\t\t{\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + sopt[i] + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t// multiselect\n\t\t\t\t\tvar filters, rules, k,str, rule, ssdata, group;\n\t\t\t\t\tif(ms) {\n\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);//, rules, k,str, rule, ssdata, group;\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif($.inArray(rule.filed, ssfield)) {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(p.splitSelect);\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: p.groupOpSelect, groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: rule.op, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//ruleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt) {\n\t\t\t\t\t\tif(!$.isPlainObject(filters)) {\n\t\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif(rule.op === \"bt\") {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(\"...\");\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: 'AND', groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tvar btop = l === 0 ? 'ge' : 'le';\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif(str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: btop, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt || ms ) {\n\t\t\t\t\t\truleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bsr = $($t).triggerHandler(\"jqGridToolbarBeforeSearch\") === 'stop' ? true : false;\n\t\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterSearch\");\n\t\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t\t},\n\t\t\tclearToolbar = function(trigger){\n\t\t\t\tvar sdata={}, j=0, nm;\n\t\t\t\ttrigger = (typeof trigger !== 'boolean') ? true : trigger;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar v, $elem = $(\"#gs_\"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tif(this.searchoptions && this.searchoptions.defaultValue !== undefined) { \n\t\t\t\t\t\tv = this.searchoptions.defaultValue; \n\t\t\t\t\t}\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tswitch (this.stype) {\n\t\t\t\t\t\tcase 'select' :\n\t\t\t\t\t\t\t$elem.find(\"option\").each(function (i){\n\t\t\t\t\t\t\t\tif(i===0) { this.selected = true; }\n\t\t\t\t\t\t\t\tif ($(this).val() === v) {\n\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif ( v !== undefined ) {\n\t\t\t\t\t\t\t\t// post the key and not the text\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\t$elem.val(v || \"\");\n\t\t\t\t\t\t\tif(v !== undefined) {\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch (y){}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom':\n\t\t\t\t\t\t\tif ($.isFunction(this.searchoptions.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\") {\n\t\t\t\t\t\t\t\tthis.searchoptions.custom_value.call($t, $elem.children(\".customelement:first\"), \"set\", v || \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\") {\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + \"eq\" + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bcv = $($t).triggerHandler(\"jqGridToolbarBeforeClear\") === 'stop' ? true : false;\n\t\t\t\tif(!bcv && $.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}\n\t\t\t\tif(!bcv) {\n\t\t\t\t\tif(trigger) {\n\t\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterClear\");\n\t\t\t\tif($.isFunction(p.afterClear)){p.afterClear();}\n\t\t\t},\n\t\t\ttoggleToolbar = function(){\n\t\t\t\tvar trow = $(\"tr.ui-search-toolbar\",$t.grid.hDiv),\n\t\t\t\ttrow2 = $t.p.frozenColumns === true ?  $(\"tr.ui-search-toolbar\",$t.grid.fhDiv) : false;\n\t\t\t\tif(trow.css(\"display\") === 'none') {\n\t\t\t\t\ttrow.show(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.show();\n\t\t\t\t\t}\n\t\t\t\t} else { \n\t\t\t\t\ttrow.hide(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tbuildRuleMenu = function( elem, left, top ){\n\t\t\t\t$(\"#sopt_menu\").remove();\n\n\t\t\t\tleft=parseInt(left,10);\n\t\t\t\ttop=parseInt(top,10) + 18;\n\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\t\tvar str = '<ul id=\"sopt_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\t\tselected = $(elem).attr(\"soper\"), selclass,\n\t\t\t\taoprs = [], ina;\n\t\t\t\tvar i=0, nm =$(elem).attr(\"colname\"),len = $t.p.colModel.length;\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($t.p.colModel[i].name === nm) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tvar cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions);\n\t\t\t\tif(!options.sopt) {\n\t\t\t\t\toptions.sopt = [];\n\t\t\t\t\toptions.sopt[0]= cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t}\n\t\t\t\t$.each(p.odata, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < options.sopt.length; i++) {\n\t\t\t\t\tina = $.inArray(options.sopt[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tselclass = selected === p.odata[ina].oper ? common.highlight : \"\";\n\t\t\t\t\t\tstr += '<li class=\"ui-menu-item '+selclass+'\" role=\"presentation\"><a class=\"'+ common.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"'+p.odata[ina].oper+'\" oper=\"'+p.operands[p.odata[ina].oper]+'\"><table class=\"ui-common-table\"><tr><td width=\"25px\">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstr += \"</ul>\";\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#sopt_menu\").addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#sopt_menu > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(common.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(common.hover); }\n\t\t\t\t).click(function() {\n\t\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\t\toper = $(this).attr(\"oper\");\n\t\t\t\t\t$($t).triggerHandler(\"jqGridToolbarSelectOper\", [v, oper, elem]);\n\t\t\t\t\t$(\"#sopt_menu\").hide();\n\t\t\t\t\t$(elem).text(oper).attr(\"soper\",v);\n\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\tvar inpelm = $(elem).parent().next().children()[0];\n\t\t\t\t\t\tif( $(inpelm).val() || v===\"nu\" || v ===\"nn\") {\n\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t// create the row\n\t\t\tvar tr = $(\"<tr class='ui-search-toolbar' role='row'></tr>\"),\n\t\t\ttimeoutHnd, rules, filterobj;\n\t\t\tif( p.restoreFromFilters ) {\n\t\t\t\tfilterobj = $t.p.postData.filters;\n\t\t\t\tif(filterobj) {\n\t\t\t\t\tif( typeof filterobj === \"string\") {\n\t\t\t\t\t\tfilterobj = $.jgrid.parse( filterobj );\n\t\t\t\t\t}\n\t\t\t\t\trules = filterobj.rules.length ? filterobj.rules : false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.colModel,function(ci){\n\t\t\t\tvar cm=this, soptions, select=\"\", sot=\"=\", so, i, st, csv, df, elem, restores,\n\t\t\t\tth = $(\"<th role='columnheader' class='\" + base.headerBox+\" ui-th-\"+$t.p.direction+\"' id='gsh_\" + $t.p.id + \"_\" + cm.name + \"' ></th>\"),\n\t\t\t\tthd = $(\"<div></div>\"),\n\t\t\t\tstbl = $(\"<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>\");\n\t\t\t\tif(this.hidden===true) { $(th).css(\"display\",\"none\");}\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif(this.stype === undefined) {this.stype='text';}\n\t\t\t\tthis.searchoptions = this.searchoptions || {};\n\t\t\t\tif(this.searchoptions.searchOperMenu === undefined) {\n\t\t\t\t\tthis.searchoptions.searchOperMenu = true;\n\t\t\t\t}\n\t\t\t\tsoptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: \"gs_\"+$t.p.idPrefix+cm.name, oper:'search'});\n\t\t\t\tif(this.search){\n\t\t\t\t\tif( p.restoreFromFilters && rules) {\n\t\t\t\t\t\trestores = false;\n\t\t\t\t\t\tfor( var is = 0; is < rules.length; is++) {\n\t\t\t\t\t\t\tif(rules[is].field ) {\n\t\t\t\t\t\t\t\tvar snm = cm.index || cm.name;\n\t\t\t\t\t\t\t\tif( snm === rules[is].field) {\n\t\t\t\t\t\t\t\t\trestores = rules[is];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(p.searchOperators) {\n\t\t\t\t\t\tso  = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t\t// overwrite  search operators\n\t\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\t\tso = restores.op;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i = 0;i<p.odata.length;i++) {\n\t\t\t\t\t\t\tif(p.odata[i].oper === so) {\n\t\t\t\t\t\t\t\tsot = p.operands[so] || \"\";\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tst = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle;\n\t\t\t\t\t\tselect = this.searchoptions.searchOperMenu ? \"<a title='\"+st+\"' style='padding-right: 0.5em;' soper='\"+so+\"' class='soptclass' colname='\"+this.name+\"'>\"+sot+\"</a>\" : \"\";\n\t\t\t\t\t}\n\t\t\t\t\t$(\"td:eq(0)\",stbl).attr(\"colindex\",ci).append(select);\n\t\t\t\t\tif(soptions.clearSearch === undefined) {\n\t\t\t\t\t\tsoptions.clearSearch = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(soptions.clearSearch) {\n\t\t\t\t\t\tcsv = p.resetTitle || 'Clear Search Value';\n\t\t\t\t\t\t$(\"td:eq(2)\",stbl).append(\"<a title='\"+csv+\"' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>\"+p.resetIcon+\"</a>\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"td:eq(2)\", stbl).hide();\n\t\t\t\t\t}\n\t\t\t\t\tif(this.surl) {\n\t\t\t\t\t\tsoptions.dataUrl = this.surl;\n\t\t\t\t\t}\n\t\t\t\t\tdf=\"\";\n\t\t\t\t\tif(soptions.defaultValue ) {\n\t\t\t\t\t\tdf = $.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue;\n\t\t\t\t\t}\n\t\t\t\t\t//overwrite default value if restore from filters\n\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\tdf = restores.data;\n\t\t\t\t\t}\n\t\t\t\t\telem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t$(elem).addClass( classes.srInput );\n\t\t\t\t\t$(\"td:eq(1)\",stbl).append(elem);\n\t\t\t\t\t$(thd).append(stbl);\n\t\t\t\t\tif(soptions.dataEvents == null ) {\n\t\t\t\t\t\tsoptions.dataEvents = [];\n\t\t\t\t\t}\n\t\t\t\t\tswitch (this.stype)\n\t\t\t\t\t{\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(p.autosearch === true) {\n\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\ttype : \"change\",\n\t\t\t\t\t\t\t\tfn : function() {\n\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\t\tif(p.searchOnEnter) {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keypress\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\t\t\t\t\t\tif(key === 13){\n\t\t\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn this;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keydown\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.which;\n\t\t\t\t\t\t\t\t\t\tswitch (key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\tcase 9 :\n\t\t\t\t\t\t\t\t\t\t\tcase 16:\n\t\t\t\t\t\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\t\t\t\t\tcase 27:\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault :\n\t\t\t\t\t\t\t\t\t\t\t\tif(timeoutHnd) { clearTimeout(timeoutHnd); }\n\t\t\t\t\t\t\t\t\t\t\t\ttimeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$.jgrid.bindEv.call($t, elem , soptions);\n\t\t\t\t}\n\t\t\t\t$(th).append(thd);\n\t\t\t\t$(tr).append(th);\n\t\t\t\tif(!p.searchOperators || select === \"\") {\n\t\t\t\t\t$(\"td:eq(0)\",stbl).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"table thead\",$t.grid.hDiv).append(tr);\n\t\t\tif(p.searchOperators) {\n\t\t\t\t$(\".soptclass\",tr).click(function(e){\n\t\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\t\tleft = ( offset.left ),\n\t\t\t\t\ttop = ( offset.top);\n\t\t\t\t\tbuildRuleMenu(this, left, top );\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\t\tif(e.target.className !== \"soptclass\") {\n\t\t\t\t\t\t$(\"#sopt_menu\").remove();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".clearsearchclass\",tr).click(function() {\n\t\t\t\tvar ptr = $(this).parents(\"tr:first\"),\n\t\t\t\tcoli = parseInt($(\"td.ui-search-oper\", ptr).attr('colindex'),10),\n\t\t\t\tsval  = $.extend({},$t.p.colModel[coli].searchoptions || {}),\n\t\t\t\tdval = sval.defaultValue ? sval.defaultValue : \"\",\n\t\t\t\telem;\n\t\t\t\tif($t.p.colModel[coli].stype === \"select\") {\n\t\t\t\t\telem = $(\"td.ui-search-input select\", ptr);\n\t\t\t\t\tif(dval) {\n\t\t\t\t\t\telem.val( dval );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[0].selectedIndex = 0;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telem = $(\"td.ui-search-input input\", ptr);\n\t\t\t\t\telem.val( dval );\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarClearVal\",[elem[0], coli, sval, dval]);\n\t\t\t\tif($.isFunction(p.onClearSearchValue)) {\n\t\t\t\t\tp.onClearSearchValue.call($t, elem[0], coli, sval, dval);\n\t\t\t\t}\n\t\t\t\t// ToDo custom search type\n\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\ttriggerToolbar();\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tthis.p.filterToolbar = true;\n\t\t\tthis.triggerToolbar = triggerToolbar;\n\t\t\tthis.clearToolbar = clearToolbar;\n\t\t\tthis.toggleToolbar = toggleToolbar;\n\t\t});\n\t},\n\tdestroyFilterToolbar: function () {\n\t\treturn this.each(function () {\n\t\t\tif (!this.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.triggerToolbar = null;\n\t\t\tthis.clearToolbar = null;\n\t\t\tthis.toggleToolbar = null;\n\t\t\tthis.p.filterToolbar = false;\n\t\t\t$(this.grid.hDiv).find(\"table thead tr.ui-search-toolbar\").remove();\n\t\t});\n\t},\n\trefreshFilterToolbar : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tfilters : \"\",\n\t\t\tonClearVal : null,\n\t\t\tonSetVal : null\n\t\t}, p || {});\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length,\n\t\t\tsearchitem, filters, rules, rule, ssfield =[], ia;\n\t\t\t// clear the values on toolbar.\n\t\t\t// do not call clearToolbar \n\t\t\tif(!$t.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\tssfield.push(cm[i].name);\n\t\t\t\tsearchitem = $(\"#gs_\" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name));\n\t\t\t\tswitch (cm[i].stype) {\n\t\t\t\t\tcase 'select' :\n\t\t\t\t\tcase 'text' :\n\t\t\t\t\t\tsearchitem.val(\"\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif($.isFunction(p.onClearVal)) {\n\t\t\t\t\tp.onClearVal.call($t, searchitem, cm[i].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setrules (filter) {\n\t\t\t\tif(filter && filter.rules) { // condition to exit\n\t\t\t\t\trules = filter.rules;\n\t\t\t\t\tl = rules.length;\n\t\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\t\trule = rules[i];\n\t\t\t\t\t\tia = $.inArray(rule.field, ssfield);\n\t\t\t\t\t\tif( ia !== -1) {\n\t\t\t\t\t\t\tsearchitem = $(\"#gs_\" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name));\n\t\t\t\t\t\t\t// problem for between operator\n\t\t\t\t\t\t\tif ( searchitem.length > 0) {\n\t\t\t\t\t\t\t\tif (cm[ia].stype === \"select\") { \n\t\t\t\t\t\t\t\t\tsearchitem.find(\"option[value='\" + $.jgrid.jqID(rule.data) + \"']\").prop('selected', true);\n\t\t\t\t\t\t\t\t} else if (cm[ia].stype === \"text\") {\n\t\t\t\t\t\t\t\t\tsearchitem.val(rule.data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(p.onSetVal)) {\n\t\t\t\t\t\t\t\t\tp.onSetVal.call($t, searchitem, cm[ia].name);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t    }\n\t\t\t\t\t}\n\t\t\t\t\tif(filter.groups) {\n\t\t\t\t\t\tfor(var k=0;k<filter.groups.length;k++) {\n\t\t\t\t\t\t\tsetrules(filter.groups[k]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof (p.filters) === \"string\" && p.filters.length) {\n\t\t\t\tfilters = $.jgrid.parse(p.filters);\n\t\t\t\t// flat filters only\n\t\t\t}\n\t        if ($.isPlainObject(filters)) {\n\t\t\t\tsetrules( filters );\n\t        }\n\t\t});\n\t},\n\tsearchGrid : function (p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend(true, {\n\t\t\trecreateFilter: false,\n\t\t\tdrag: true,\n\t\t\tsField:'searchField',\n\t\t\tsValue:'searchString',\n\t\t\tsOper: 'searchOper',\n\t\t\tsFilter: 'filters',\n\t\t\tloadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.\n\t\t\tbeforeShowSearch: null,\n\t\t\tafterShowSearch : null,\n\t\t\tonInitializeSearch: null,\n\t\t\tafterRedraw : null,\n\t\t\tafterChange: null,\n\t\t\tsortStrategy: null,\n\t\t\tcloseAfterSearch : false,\n\t\t\tcloseAfterReset: false,\n\t\t\tcloseOnEscape : false,\n\t\t\tsearchOnEnter : false,\n\t\t\tmultipleSearch : false,\n\t\t\tmultipleGroup : false,\n\t\t\t//cloneSearchRowOnAdd: true,\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\tjqModal : true,\n\t\t\tmodal: false,\n\t\t\tresize : true,\n\t\t\twidth: 450,\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tshowQuery: false,\n\t\t\terrorcheck : true,\n\t\t\tsopt: null,\n\t\t\tstringResult: undefined,\n\t\t\tonClose : null,\n\t\t\tonSearch : null,\n\t\t\tonReset : null,\n\t\t\ttoTop : true,\n\t\t\toverlay : 30,\n\t\t\tcolumns : [],\n\t\t\ttmplNames : null,\n\t\t\ttmplFilters : null,\n\t\t\ttmplLabel : ' Template: ',\n\t\t\tshowOnLoad: false,\n\t\t\tlayer: null,\n\t\t\toperands : { \"eq\" :\"=\", \"ne\":\"<>\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"LIKE\",\"bn\":\"NOT LIKE\",\"in\":\"IN\",\"ni\":\"NOT IN\",\"ew\":\"LIKE\",\"en\":\"NOT LIKE\",\"cn\":\"LIKE\",\"nc\":\"NOT LIKE\",\"nu\":\"IS NULL\",\"nn\":\"ISNOT NULL\"}\n\t\t}, regional,  p || {});\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar fid = \"fbox_\"+$t.p.id,\n\t\t\tshowFrm = true,\n\t\t\tmustReload = true,\n\t\t\tIDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid},\n\t\t\tdefaultFilters  = $t.p.postData[p.sFilter],\n\t\t\tfl,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\t\t\tp.styleUI = $t.p.styleUI;\n\t\t\tif(typeof defaultFilters === \"string\") {\n\t\t\t\tdefaultFilters = $.jgrid.parse( defaultFilters );\n\t\t\t}\n\t\t\tif(p.recreateFilter === true) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).remove();\n\t\t\t}\n\t\t\tfunction showFilter(_filter) {\n\t\t\t\tshowFrm = $($t).triggerHandler(\"jqGridFilterBeforeShow\", [_filter]);\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t\tif(showFrm && $.isFunction(p.beforeShowSearch)) {\n\t\t\t\t\tshowFrm = p.beforeShowSearch.call($t,_filter);\n\t\t\t\t}\n\t\t\t\tif(showFrm) {\n\t\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(fid),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});\n\t\t\t\t\t$($t).triggerHandler(\"jqGridFilterAfterShow\", [_filter]);\n\t\t\t\t\tif($.isFunction(p.afterShowSearch)) {\n\t\t\t\t\t\tp.afterShowSearch.call($t, _filter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tshowFilter($(\"#fbox_\"+$.jgrid.jqID( $t.p.id )));\n\t\t\t} else {\n\t\t\t\tvar fil = $(\"<div><div id='\"+fid+\"' class='searchFilter' style='overflow:auto'></div></div>\").insertBefore(\"#gview_\"+$.jgrid.jqID($t.p.id)),\n\t\t\t\talign = \"left\", butleft =\"\"; \n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\talign = \"right\";\n\t\t\t\t\tbutleft = \" style='text-align:left'\";\n\t\t\t\t\tfil.attr(\"dir\",\"rtl\");\n\t\t\t\t}\n\t\t\t\tvar columns = $.extend([],$t.p.colModel),\n\t\t\t\tbS  =\"<a id='\"+fid+\"_search' class='fm-button \" + common.button + \" fm-button-icon-right ui-search'><span class='\" + common.icon_base + \" \" +classes.icon_search + \"'></span>\"+p.Find+\"</a>\",\n\t\t\t\tbC  =\"<a id='\"+fid+\"_reset' class='fm-button \" + common.button +\" fm-button-icon-left ui-reset'><span class='\" + common.icon_base + \" \" +classes.icon_reset + \"'></span>\"+p.Reset+\"</a>\",\n\t\t\t\tbQ = \"\", tmpl=\"\", colnm, found = false, bt, cmi=-1;\n\t\t\t\tif(p.showQuery) {\n\t\t\t\t\tbQ =\"<a id='\"+fid+\"_query' class='fm-button \" + common.button + \" fm-button-icon-left'><span class='\" + common.icon_base + \" \" +classes.icon_query + \"'></span>Query</a>\";\n\t\t\t\t}\n\t\t\t\tif(!p.columns.length) {\n\t\t\t\t\t$.each(columns, function(i,n){\n\t\t\t\t\t\tif(!n.label) {\n\t\t\t\t\t\t\tn.label = $t.p.colNames[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// find first searchable column and set it if no default filter\n\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\tvar searchable = (n.search === undefined) ?  true: n.search ,\n\t\t\t\t\t\t\thidden = (n.hidden === true),\n\t\t\t\t\t\t\tignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);\n\t\t\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\tcolnm = n.index || n.name;\n\t\t\t\t\t\t\t\tcmi =i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcolumns = p.columns;\n\t\t\t\t\tcmi = 0;\n\t\t\t\t\tcolnm = columns[0].index || columns[0].name;\n\t\t\t\t}\n\t\t\t\t// old behaviour\n\t\t\t\tif( (!defaultFilters && colnm) || p.multipleSearch === false  ) {\n\t\t\t\t\tvar cmop = \"eq\";\n\t\t\t\t\tif(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) {\n\t\t\t\t\t\tcmop = columns[cmi].searchoptions.sopt[0];\n\t\t\t\t\t} else if(p.sopt && p.sopt.length) {\n\t\t\t\t\t\tcmop = p.sopt[0];\n\t\t\t\t\t}\n\t\t\t\t\tdefaultFilters = {groupOp: \"AND\", rules: [{field: colnm, op: cmop, data: \"\"}]};\n\t\t\t\t}\n\t\t\t\tfound = false;\n\t\t\t\tif(p.tmplNames && p.tmplNames.length) {\n\t\t\t\t\tfound = true;\n\t\t\t\t\ttmpl = \"<tr><td class='ui-search-label'>\"+ p.tmplLabel +\"</td>\";\n\t\t\t\t\ttmpl += \"<td><select class='ui-template \" + classes.srSelect + \"'>\";\n\t\t\t\t\ttmpl += \"<option value='default'>Default</option>\";\n\t\t\t\t\t$.each(p.tmplNames, function(i,n){\n\t\t\t\t\t\ttmpl += \"<option value='\"+i+\"'>\"+n+\"</option>\";\n\t\t\t\t\t});\n\t\t\t\t\ttmpl += \"</select></td></tr>\";\n\t\t\t\t}\n\n\t\t\t\tbt = \"<table class='EditTable' style='border:0px none;margin-top:5px' id='\"+fid+\"_2'><tbody><tr><td colspan='2'><hr class='\" + common.content + \"' style='margin:1px'/></td></tr>\"+tmpl+\"<tr><td class='EditButton' style='text-align:\"+align+\"'>\"+bC+\"</td><td class='EditButton' \"+butleft+\">\"+bQ+bS+\"</td></tr></tbody></table>\";\n\t\t\t\tfid = $.jgrid.jqID( fid);\n\t\t\t\t$(\"#\"+fid).jqFilter({\n\t\t\t\t\tcolumns: columns,\n\t\t\t\t\tsortStrategy: p.sortStrategy,\n\t\t\t\t\tfilter: p.loadDefaults ? defaultFilters : null,\n\t\t\t\t\tshowQuery: p.showQuery,\n\t\t\t\t\terrorcheck : p.errorcheck,\n\t\t\t\t\tsopt: p.sopt,\n\t\t\t\t\tgroupButton : p.multipleGroup,\n\t\t\t\t\truleButtons : p.multipleSearch,\n\t\t\t\t\tuniqueSearchFields : p.uniqueSearchFields,\n\t\t\t\t\tafterRedraw : p.afterRedraw,\n\t\t\t\t\tops : p.odata,\n\t\t\t\t\toperands : p.operands,\n\t\t\t\t\tajaxSelectOptions: $t.p.ajaxSelectOptions,\n\t\t\t\t\tgroupOps: p.groupOps,\n\t\t\t\t\taddsubgrup : p.addsubgrup,\n\t\t\t\t\taddrule : p.addrule,\n\t\t\t\t\tdelgroup : p.delgroup,\n\t\t\t\t\tdelrule : p.delrule,\n\t\t\t\t\tonChange : function() {\n\t\t\t\t\t\tif(this.p.showQuery) {\n\t\t\t\t\t\t\t$('.query',this).html(this.toUserFriendlyString());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($.isFunction(p.afterChange)) {\n\t\t\t\t\t\t\tp.afterChange.call($t, $(\"#\"+fid), p);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tdirection : $t.p.direction,\n\t\t\t\t\tid: $t.p.id\n\t\t\t\t});\n\t\t\t\tfil.append( bt );\n\t\t\t\tif(found && p.tmplFilters && p.tmplFilters.length) {\n\t\t\t\t\t$(\".ui-template\", fil).on('change', function(){\n\t\t\t\t\t\tvar curtempl = $(this).val();\n\t\t\t\t\t\tif(curtempl===\"default\") {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', defaultFilters);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(p.multipleGroup === true) {p.multipleSearch = true;}\n\t\t\t\t$($t).triggerHandler(\"jqGridFilterInitialize\", [$(\"#\"+fid)]);\n\t\t\t\tif($.isFunction(p.onInitializeSearch) ) {\n\t\t\t\t\tp.onInitializeSearch.call($t, $(\"#\"+fid));\n\t\t\t\t}\n\t\t\t\tp.gbox = \"#gbox_\"+fid;\n\t\t\t\tif (p.layer) {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0], \"#\"+$.jgrid.jqID(p.layer), {position: \"relative\"});\n\t\t\t\t} else {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\t\t}\n\t\t\t\tif (p.searchOnEnter || p.closeOnEscape) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {\n\t\t\t\t\t\tvar $target = $(e.target);\n\t\t\t\t\t\tif (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER\n\t\t\t\t\t\t\t\t!$target.hasClass('add-group') && !$target.hasClass('add-rule') &&\n\t\t\t\t\t\t\t\t!$target.hasClass('delete-group') && !$target.hasClass('delete-rule') &&\n\t\t\t\t\t\t\t\t(!$target.hasClass(\"fm-button\") || !$target.is(\"[id$=_query]\"))) {\n\t\t\t\t\t\t\t$(\"#\"+fid+\"_search\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.modalhead)).find(\".ui-jqdialog-titlebar-close\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(bQ) {\n\t\t\t\t\t$(\"#\"+fid+\"_query\").on('click', function(){\n\t\t\t\t\t\t$(\".queryresult\", fil).toggle();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (p.stringResult===undefined) {\n\t\t\t\t\t// to provide backward compatibility, inferring stringResult value from multipleSearch\n\t\t\t\t\tp.stringResult = p.multipleSearch;\n\t\t\t\t}\n\t\t\t\t$(\"#\"+fid+\"_search\").on('click', function(){\n\t\t\t\t\tvar sdata={}, res, filters;\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\tfl.find(\".input-elm:focus\").change();\n\t\t\t\t\tfilters = fl.jqFilter('filterData');\n\t\t\t\t\tif(p.errorcheck) {\n\t\t\t\t\t\tfl[0].hideError();\n\t\t\t\t\t\tif(!p.showQuery) {fl.jqFilter('toSQLString');}\n\t\t\t\t\t\tif(fl[0].p.error) {\n\t\t\t\t\t\t\tfl[0].showError();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(p.stringResult) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tres = JSON.stringify(filters);\n\t\t\t\t\t\t} catch (e2) { }\n\t\t\t\t\t\tif(typeof res===\"string\") {\n\t\t\t\t\t\t\tsdata[p.sFilter] = res;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(p.multipleSearch) {\n\t\t\t\t\t\t\tsdata[p.sFilter] = filters;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsdata[p.sField] = filters.rules[0].field;\n\t\t\t\t\t\t\tsdata[p.sValue] = filters.rules[0].data;\n\t\t\t\t\t\t\tsdata[p.sOper] = filters.rules[0].op;\n\t\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.search = true;\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterSearch\");\n\t\t\t\t\tif( mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onSearch) ) {\n\t\t\t\t\t\tmustReload = p.onSearch.call($t, $t.p.filters);\n\t\t\t\t\t}\n\t\t\t\t\tif (mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.closeAfterSearch) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#\"+fid+\"_reset\").on('click', function(){\n\t\t\t\t\tvar sdata={},\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\t\tsdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = \"\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfl[0].resetFilter();\n\t\t\t\t\tif(found) {\n\t\t\t\t\t\t$(\".ui-template\", fil).val(\"default\");\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterReset\");\n\t\t\t\t\tif(mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onReset) ) {\n\t\t\t\t\t\tmustReload = p.onReset.call($t);\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif (p.closeAfterReset) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tshowFilter($(\"#\"+fid));\n\t\t\t\t$(\".fm-button:not(.\"+common.disabled+\")\",fil).hover(\n\t\t\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t},\n\tfilterInput : function( val, p) {\n\t\tp = $.extend(true, {\n\t\t\tdefaultSearch : 'cn',\n\t\t\tgroupOp : 'OR',\n\t\t\tsearchAll : false,\n\t\t\tbeforeSearch : null,\n\t\t\tafterSearch : null\n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar nm, sop,ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\", gi=0, so;\n\t\t\tval +=\"\";\n\t\t\tif(!$t.p.datatype === 'local') { return; }\n\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\tnm = this.index || this.name;\n\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\tso  = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch;\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif (this.search || p.searchAll) {\n\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + nm + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + so + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + val.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\tgi++;\n\t}\n});\n\t\t\truleGroup += \"]}\";\n\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t});\n\t\t\tvar bsr = $($t).triggerHandler(\"jqGridFilterInputBeforeSearch\") === 'stop' ? true : false;\n\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:true}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t$($t).triggerHandler(\"jqGridFilterInputAfterSearch\");\n\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.formedit.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.common\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\nvar rp_ge = {};\n$.jgrid.extend({\n\teditGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'edit'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: '500',\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay : 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl: null,\n\t\t\tmtype : \"POST\",\n\t\t\tclearAfterAdd :true,\n\t\t\tcloseAfterEdit : false,\n\t\t\treloadAfterSubmit : true,\n\t\t\tonInitializeForm: null,\n\t\t\tbeforeInitData: null,\n\t\t\tbeforeShowForm: null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterComplete: null,\n\t\t\tonclickPgButtons : null,\n\t\t\tafterclickPgButtons: null,\n\t\t\teditData : {},\n\t\t\trecreateForm : false,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\taddedrow : \"first\",\n\t\t\ttopinfo : '',\n\t\t\tbottominfo: '',\n\t\t\tsaveicon : [],\n\t\t\tcloseicon : [],\n\t\t\tsavekey: [false,13],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tcheckOnSubmit : false,\n\t\t\tcheckOnUpdate : false,\n\t\t\tprocessing : false,\n\t\t\tonClose : null,\n\t\t\tajaxEditOptions : {},\n\t\t\tserializeEditData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\toverlayClass : commonstyle.overlay,\n\t\t\tremovemodal : true,\n\t\t\tform: 'edit',\n\t\t\ttemplate : null,\n\t\t\tfocusField : true,\n\t\t\teditselected : false\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\t$t.p.savedData = {};\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"FrmGrid_\"+gID, frmtborg = \"TblGrid_\"+gID, frmtb = \"#\"+$.jgrid.jqID(frmtborg), frmtb2,\n\t\t\tIDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},\n\t\t\tshowFrm = true, maxCols = 1, maxRows=0,\tpostdata, diff, frmoper,\n\t\t\ttempl = typeof rp_ge[$t.p.id].template === \"string\" && rp_ge[$t.p.id].template.length > 0,\n\t\t\terrors =$.jgrid.getRegional(this, 'errors');\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif($.jgrid.isMobile()) {\n\t\t\t\trp_ge[$t.p.id].resize = false;\n\t\t\t}\n\t\t\tif (rowid === \"new\") {\n\t\t\t\trowid = \"_empty\";\n\t\t\t\tfrmoper = \"add\";\n\t\t\t\tp.caption=rp_ge[$t.p.id].addCaption;\n\t\t\t} else {\n\t\t\t\tp.caption=rp_ge[$t.p.id].editCaption;\n\t\t\t\tfrmoper = \"edit\";\n\t\t\t}\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"formProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"formProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar closeovrl = true;\n\t\t\tif(p.checkOnUpdate && p.jqModal && !p.modal) {\n\t\t\t\tcloseovrl = false;\n\t\t\t}\n\t\t\tfunction getFormData(){\n\t\t\t\tvar a2 ={}, i;\n\t\t\t\t$(frmtb).find(\".FormElement\").each(function() {\n\t\t\t\t\tvar celm = $(\".customelement\", this);\n\t\t\t\t\tif (celm.length) {\n\t\t\t\t\t\tvar  elem = celm[0], nm = $(elem).attr('name');\n\t\t\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\t\t\tif(this.name === nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tpostdata[nm] = this.editoptions.custom_value.call($t, $(\"#\"+$.jgrid.jqID(nm),frmtb),'get');\n\t\t\t\t\t\t\t\t\tif (postdata[nm] === undefined) {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch ($(this).get(0).type) {\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\tif($(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar ofv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= ofv;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-one\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-multiple\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\tpostdata[this.name] = postdata[this.name] ? postdata[this.name].join(\",\") : \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\tcase \"button\":\n\t\t\t\t\t\t\t\tpostdata[this.name] = $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"radio\" :\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfor(i in a2 ) {\n\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frmtb).val();\n\t\t\t\t\t\tpostdata[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[i] = $.jgrid.htmlEncode(postdata[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD'>&#160;</td><td class='DataTD'>&#160;</td>\", tmpl=\"\", i, ffld; //*2\n\t\t\t\tfor (i =1; i<=maxcols;i++) {\n\t\t\t\t\ttmpl += tdtmpl;\n\t\t\t\t}\n\t\t\t\tif(rowid !== '_empty') {\n\t\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t}\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]),{rowId:rowid, colModel:this},i);\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\ttmp =  (this.edittype && this.edittype === \"textarea\") ? $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text() : $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(!tmp || tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:'edit'}),\n\t\t\t\t\t\tfrmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(rowid === \"_empty\" && opt.defaultValue ) {\n\t\t\t\t\t\t\ttmp = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!this.edittype) {this.edittype = \"text\";}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\telc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"checkbox\") {tmp = $(elc).attr(\"offval\");}\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"select\") {tmp = $(\"option:eq(0)\",elc).text();}\n\t\t\t\t\t\tif(this.edittype === \"select\") {\n\t\t\t\t\t\t\ttmp = $(elc).val();\n\t\t\t\t\t\t\tif($(elc).get(0).type === 'select-multiple' && tmp) {\n\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype === 'checkbox') {\n\t\t\t\t\t\t\tif($(elc).is(\":checked\")) {\n\t\t\t\t\t\t\t\ttmp= $(elc).val();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(elc).attr(\"offval\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(elc).addClass(\"FormElement\");\n\t\t\t\t\t\tif( $.inArray(this.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t$(elc).addClass( styles.inputClass );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tffld = true;\n\t\t\t\t\t\tif(templ) {\n\t\t\t\t\t\t\tvar ftmplfld = $(frm).find(\"#\"+nm);\n\t\t\t\t\t\t\tif(ftmplfld.length){\n\t\t\t\t\t\t\t\tftmplfld.replaceWith( elc );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tffld = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//--------------------\n\t\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"tr_\"+nm);\n\t\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html(\"<label for='\"+nm+\"'>\"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + \"</label>\");\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);\n\t\t\t\t\t\t\t//-------------------------\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) {\n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype==='custom' && $.isFunction(opt.custom_value) ) {\n\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm, frmgr),'set',tmp);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow;\n\t\t\t\t\tif(templ) {\n\t\t\t\t\t\tidrow = \"<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/>\";\n\t\t\t\t\t\t$(frm).append(idrow);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\t\tidrow[0].rp = cnt+999;\n\t\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t\t} \n\t\t\t\t\t//$(tb).append(idrow);\n\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\t\t\t\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj,fmid){\n\t\t\t\tvar nm,cnt=0,tmp, fld,opt,vl,vlc;\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t$t.p.savedData = {};\n\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"]=rowid;\n\t\t\t\t}\n\t\t\t\tvar cm = obj.p.colModel;\n\t\t\t\tif(rowid === '_empty') {\n\t\t\t\t\t$(cm).each(function(){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\topt = $.extend({}, this.editoptions || {} );\n\t\t\t\t\t\tfld = $(\"#\"+$.jgrid.jqID(nm),fmid);\n\t\t\t\t\t\tif(fld && fld.length && fld[0] !== null) {\n\t\t\t\t\t\t\tvl = \"\";\n\t\t\t\t\t\t\tif(this.edittype === 'custom' && $.isFunction(opt.custom_value)) {\n\t\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm,fmid),'set',vl);\n\t\t\t\t\t\t\t} else if(opt.defaultValue ) {\n\t\t\t\t\t\t\t\tvl = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t\t\tif(fld[0].type==='checkbox') {\n\t\t\t\t\t\t\t\t\tvlc = vl.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!==\"\") {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].value = vl;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {fld.val(vl);}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif( fld[0].type==='checkbox' ) {\n\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\tvl = $(fld).attr(\"offval\");\n\t\t\t\t\t\t\t\t} else if (fld[0].type && fld[0].type.substr(0,6)==='select') {\n\t\t\t\t\t\t\t\t\tfld[0].selectedIndex = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfld.val(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t$t.p.savedData[nm] = vl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$(\"#id_g\",fmid).val(rowid);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar tre = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!tre) {return;}\n\t\t\t\t$('td[role=\"gridcell\"]',tre).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\ttmp = cm[i].edittype===\"textarea\" ? $(this).text() : $(this).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(nm);\n\t\t\t\t\t\tswitch (cm[i].edittype) {\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t\t$(\"#\"+nm,fmid).val(tmp);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\t\t\tvar opv = tmp.split(\",\");\n\t\t\t\t\t\t\t\topv = $.map(opv,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t$(\"#\"+nm+\" option\",fmid).each(function(){\n\t\t\t\t\t\t\t\t\tif (!cm[i].editoptions.multiple && ($.trim(tmp) === $.trim($(this).text()) || opv[0] === $.trim($(this).text()) || opv[0] === $.trim($(this).val())) ){\n\t\t\t\t\t\t\t\t\t\tthis.selected= true;\n\t\t\t\t\t\t\t\t\t} else if (cm[i].editoptions.multiple){\n\t\t\t\t\t\t\t\t\t\tif(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm,fmid).val();\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions.multiple) {\n\t\t\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\ttmp = String(tmp);\n\t\t\t\t\t\t\t\tif(cm[i].editoptions && cm[i].editoptions.value) {\n\t\t\t\t\t\t\t\t\tvar cb = cm[i].editoptions.value.split(\":\");\n\t\t\t\t\t\t\t\t\tif(cb[0] === tmp) {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":true, \"defaultChecked\" : true});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":false, \"defaultChecked\" : false});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttmp = tmp.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!==\"\") {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\",true); //ie\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\", false); //ie\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\tif($(\"#\"+nm, fmid).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).val();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).attr(\"offval\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\t\tcm[i].editoptions.custom_value.call($t, $(\"#\"+nm, fmid),'set',tmp);\n\t\t\t\t\t\t\t\t\t} else {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {\n\t\t\t\t\t$(\"#id_g\",frmtb).val(rowid);\n\t\t\t\t\tif( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setNulls() {\n\t\t\t\t$.each($t.p.colModel, function(i,n){\n\t\t\t\t\tif(n.editoptions && n.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(postdata.hasOwnProperty(n.name) && postdata[n.name] === \"\") {\n\t\t\t\t\t\t\tpostdata[n.name] = 'null';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction postIt() {\n\t\t\t\tvar copydata, ret=[true,\"\",\"\"], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url;\n\t\t\t\t\n\t\t\t\tvar retvals = $($t).triggerHandler(\"jqGridAddEditBeforeCheckValues\", [$(frmgr), frmoper]);\n\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t\n\t\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {\n\t\t\t\t\tretvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata,$(frmgr),frmoper);\n\t\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t}\n\t\t\t\tfor( key in postdata ){\n\t\t\t\t\tif(postdata.hasOwnProperty(key)) {\n\t\t\t\t\t\tret = $.jgrid.checkValues.call($t,postdata[key],key);\n\t\t\t\t\t\tif(ret[0] === false) {break;}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetNulls();\n\t\t\t\tif(ret[0]) {\n\t\t\t\t\tonCS = $($t).triggerHandler(\"jqGridAddEditClickSubmit\", [rp_ge[$t.p.id], postdata, frmoper]);\n\t\t\t\t\tif( onCS === undefined && $.isFunction( rp_ge[$t.p.id].onclickSubmit)) { \n\t\t\t\t\t\tonCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; \n\t\t\t\t\t}\n\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditBeforeSubmit\", [postdata, $(frmgr), frmoper]);\n\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t}\n\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].beforeSubmit))  {\n\t\t\t\t\t\tret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").addClass( commonstyle.active );\n\t\t\t\t\turl = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl');\n\t\t\t\t\toper = opers.oper;\n\t\t\t\t\tidname = url === 'clientArray' ? $t.p.keyName : opers.id;\n\t\t\t\t\t// we add to pos data array the action - the name is oper\n\t\t\t\t\tpostdata[oper] = ($.trim(postdata[$t.p.id+\"_id\"]) === \"_empty\") ? opers.addoper : opers.editoper;\n\t\t\t\t\tif(postdata[oper] !== opers.addoper) {\n\t\t\t\t\t\tpostdata[idname] = postdata[$t.p.id+\"_id\"];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// check to see if we have allredy this field in the form and if yes lieve it\n\t\t\t\t\t\tif( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+\"_id\"];}\n\t\t\t\t\t}\n\t\t\t\t\tdelete postdata[$t.p.id+\"_id\"];\n\t\t\t\t\tpostdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS);\n\t\t\t\t\tif($t.p.treeGrid === true)  {\n\t\t\t\t\t\tif(postdata[oper] === opers.addoper) {\n\t\t\t\t\t\tselr = $($t).jqGrid(\"getGridParam\", 'selrow');\n\t\t\t\t\t\t\tvar tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id';\n\t\t\t\t\t\t\tpostdata[tr_par_id] = selr;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i in $t.p.treeReader){\n\t\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(i)) {\n\t\t\t\t\t\t\t\tvar itm = $t.p.treeReader[i];\n\t\t\t\t\t\t\t\tif(postdata.hasOwnProperty(itm)) {\n\t\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;}\n\t\t\t\t\t\t\t\t\tdelete postdata[itm];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]);\n\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) :  postdata,\n\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\tvar key;\n\t\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\tpostdata[idname] = $t.p.idPrefix + postdata[idname];\n\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = $($t).triggerHandler(\"jqGridAddEditErrorTextFormat\", [data, frmoper]);\n\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditAfterSubmit\", [data, postdata, frmoper]);\n\t\t\t\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].afterSubmit) ) {\n\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(postdata,function(n,v){\n\t\t\t\t\t\t\t\t\t\tpostdata[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != \"local\";\n\t\t\t\t\t\t\t\t// the action is add\n\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper ) {\n\t\t\t\t\t\t\t\t\t//id processing\n\t\t\t\t\t\t\t\t\t// user not set the id ret[2]\n\t\t\t\t\t\t\t\t\tif(!ret[2]) {ret[2] = $.jgrid.randId();}\n\t\t\t\t\t\t\t\t\tif(postdata[idname] == null || postdata[idname] === \"_empty\" || postdata[idname] == \"\"){\n\t\t\t\t\t\t\t\t\t\tpostdata[idname] = ret[2];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[2] = postdata[idname];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addChildNode\",ret[2],selr,postdata );\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addRowData\",ret[2],postdata,p.addedrow);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid !== true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ret[2]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t\t} else if (rp_ge[$t.p.id].clearAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tfillData(\"_empty\", $t, frmgr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// the action is update\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t\tif( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid(\"setSelection\",postdata[idname]);},1000);}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setTreeRow\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\tcopydata = data;\n\t\t\t\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterComplete\", [copydata, postdata, $(frmgr), frmoper]);\n\t\t\t\t\t\t\t\t\t\trp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper);\n\t\t\t\t\t\t\t\t\t\tcopydata=null;\n\t\t\t\t\t\t\t\t\t},500);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t\t\t\t\tif($t.p.savedData[$t.p.id+\"_id\"] !== \"_empty\"){\n\t\t\t\t\t\t\t\t\t\tfor(key in $t.p.savedData) {\n\t\t\t\t\t\t\t\t\t\t\tif($t.p.savedData.hasOwnProperty(key) && postdata[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedData[key] = postdata[key];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\ttry{$(':input:visible',frmgr)[0].focus();} catch (e){}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions );\n\n\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+errors.nourl;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"set_\"+$t.p.id); \n\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].reloadAfterSubmit = false;\n\t\t\t\t\t\t\t\tpostdata = ajaxOptions.data;\n\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t// return;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction compareData(nObj, oObj ) {\n\t\t\t\tvar ret = false,key;\n\t\t\t\tret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj)\n\t\t\t\t\t&& Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length);\n\t\t\t\tif(!ret) {\n\t\t\t\t\tfor (key in oObj) {\n\t\t\t\t\t\tif(oObj.hasOwnProperty(key) )  {\n\t\t\t\t\t\t\tif(nObj.hasOwnProperty(key) ) {\n\t\t\t\t\t\t\t\tif( nObj[key] !== oObj[key] ) {\n\t\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction checkUpdates () {\n\t\t\t\tvar stat = true;\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tif(rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\tpostdata = {};\n\t\t\t\t\tgetFormData();\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+IDs.themodal).show();\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn stat;\n\t\t\t}\n\t\t\tfunction restoreInline() {\n\t\t\t\tvar i;\n\t\t\t\tif (rowid !== \"_empty\" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.isFunction($.fn.jqGrid.restoreRow)) {\n\t\t\t\t\tfor (i=0;i<$t.p.savedRow.length;i++) {\n\t\t\t\t\t\tif ($t.p.savedRow[i].id === rowid) {\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow',rowid);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction updateNav(cr, posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid =  $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",frmtb).val(), pos;\n\t\t\t\tif($t.p.multiselect && rp_ge[$t.p.id].editselected) {\n\t\t\t\t\tvar arr = [];\n\t\t\t\t\tfor(var i=0, len = rowsInGrid.length;i<len;i++) {\n\t\t\t\t\t\tif($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {\n\t\t\t\t\t\t\tarr.push(rowsInGrid[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpos = $.inArray(selrow,arr);\n\t\t\t\t\treturn [pos, arr];\n\t\t\t\t} else {\n\t\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\t}\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\t\t\tfunction parseTemplate ( template ){\n\t\t\t\tvar   tmpl =\"\";\n\t\t\t\tif(typeof template === \"string\") {\n\t\t\t\t\ttmpl = template.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\t\t\t\treturn '<span id=\"'+ i+ '\" ></span>';\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn tmpl;\n\t\t\t}\n\t\t\tfunction syncSavedData () {\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\n\t\t\t\t\tvar a1=[], a2={};\n\t\t\t\t\ta1 = $.map($t.p.savedData, function(v, i){\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t});\n\t\t\t\t\t$(\".FormElement\", frm ).each(function(){\n\t\t\t\t\t\tif( a1.indexOf(this.name) === -1 ) {\n\t\t\t\t\t\t\tvar tv = $(this).val(), tt = $(this).get(0).type;\n\t\t\t\t\t\t\tif( tt === 'checkbox') {\n\t\t\t\t\t\t\t\tif(!$(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\ttv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if(tt === 'select-multiple') {\n\t\t\t\t\t\t\t\ttv = tv.join(\",\");\n\t\t\t\t\t\t\t} else if(tt === 'radio') {\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedData[this.name] = tv;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tfor(var i in a2 ) {\n\t\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frm).val();\n\t\t\t\t\t\t\t$t.p.savedData[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr+\"' class='FormGrid' onSubmit='return false;' style='width:\"+dw+\";height:\"+dh+\";'></form>\").data(\"disabled\",false),\n\t\t\ttbl;\n\t\t\tif(templ) {\n\t\t\t\ttbl = parseTemplate( rp_ge[$(this)[0].p.id].template );\n\t\t\t\tfrmtb2 = frmtb;\n\t\t\t} else {\n\t\t\t\ttbl = $(\"<table id='\"+frmtborg+\"' class='EditTable ui-common-table'><tbody></tbody></table>\");\n\t\t\t\tfrmtb2 = frmtb+\"_2\";\n\t\t\t}\n\t\t\tfrmgr = \"#\"+ $.jgrid.jqID(frmgr);\n\t\t\t// errors\n\t\t\t$(frm).append(\"<div class='FormError \" + commonstyle.error + \"' style='display:none;'></div>\" );\n\t\t\t// topinfo\n\t\t\t$(frm).append(\"<div class='tinfo topinfo'>\"+rp_ge[$t.p.id].topinfo+\"</div>\");\n\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t$(frm).append(tbl);\n\n\t\t\tshowFrm = $($t).triggerHandler(\"jqGridAddEditBeforeInitData\", [frm, frmoper]);\n\t\t\tif(showFrm === undefined) {\n\t\t\t\tshowFrm = true;\n\t\t\t}\n\t\t\tif(showFrm && $.isFunction(rp_ge[$t.p.id].beforeInitData)) {\n\t\t\t\tshowFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper);\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\n\t\t\trestoreInline();\n\t\t\t// set the id.\n\t\t\t// use carefull only to change here colproperties.\n\t\t\t// create data\n\t\t\tcreateData(rowid,$t,tbl,maxCols);\n\t\t\t// buttons at footer\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\";\n\t\t\tvar bP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbS  =\"<a id='sData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\tvar bt = \"<table style='height:auto' class='EditTable ui-common-table' id='\"+frmtborg+\"_2'><tbody><tr><td colspan='2'><hr class='\"+commonstyle.content+\"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bS+bC+\"</td></tr>\";\n\t\t\t//bt += \"<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>\"+rp_ge[$t.p.id].bottominfo+\"</td></tr>\";\n\t\t\tbt += \"</tbody></table>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar cle = false;\n\t\t\tif(p.closeOnEscape===true){\n\t\t\t\tp.closeOnEscape = false;\n\t\t\t\tcle = true;\n\t\t\t}\n\t\t\tvar tms;\n\t\t\tif(templ) {\n\t\t\t\t$(frm).find(\"#pData\").replaceWith( bP );\n\t\t\t\t$(frm).find(\"#nData\").replaceWith( bN );\n\t\t\t\t$(frm).find(\"#sData\").replaceWith( bS );\n\t\t\t\t$(frm).find(\"#cData\").replaceWith( bC );\n\t\t\t\ttms = $(\"<div id=\"+frmtborg+\"></div>\").append(frm);\n\t\t\t} else {\n\t\t\t\ttms = $(\"<div></div>\").append(frm).append(bt);\n\t\t\t}\n\t\t\t\n\t\t\t$(frm).append(\"<div class='binfo topinfo bottominfo'>\"+rp_ge[$t.p.id].bottominfo+\"</div>\");\n\n\t\t\t$.jgrid.createModal(IDs,tms, rp_ge[$(this)[0].p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\n\t\t\tif(rp_ge[$t.p.id].topinfo) {$(\".tinfo\", frmgr).show();}\n\t\t\tif(rp_ge[$t.p.id].bottominfo) {$(\".binfo\",frmgr).show();}\n\n\t\t\ttms = null;bt=null;\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) {\n\t\t\t\tvar wkey = e.target;\n\t\t\t\tif ($(frmgr).data(\"disabled\")===true ) {return false;}//??\n\t\t\t\tif(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save\n\t\t\t\t\tif(wkey.tagName !== \"TEXTAREA\") {\n\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\tif(cle)\t{$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tif($(\"#id_g\",frmtb).val() === \"_empty\") {return true;}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(p.checkOnUpdate) {\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close span\",\"#\"+$.jgrid.jqID(IDs.themodal)).removeClass(\"jqmClose\");\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.themodal)).off(\"click\")\n\t\t\t\t.click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.saveicon = $.extend([true,\"left\", styles.icon_save ],p.saveicon);\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\t// beforeinitdata after creation of the form\n\t\t\tif(p.saveicon[0]===true) {\n\t\t\t\t$(\"#sData\",frmtb2).addClass(p.saveicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\"+commonstyle.icon_base + \" \" +p.saveicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",frmtb2).addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base +\" \"+p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\tbS  =\"<a id='sNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002'>\"+p.bYes+\"</a>\";\n\t\t\t\tbN  =\"<a id='nNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px'>\"+p.bNo+\"</a>\";\n\t\t\t\tbC  =\"<a id='cNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px;'>\"+p.bExit+\"</a>\";\n\t\t\t\tvar zI = p.zIndex  || 999;zI ++;\n\t\t\t\t$(\"<div class='\"+ p.overlayClass+\" jqgrid-overlay confirm' style='z-index:\"+zI+\";display:none;'>&#160;\"+\"</div><div class='confirm ui-jqconfirm \"+commonstyle.content+\"' style='z-index:\"+(zI+1)+\"'>\"+p.saveData+\"<br/><br/>\"+bS+bN+bC+\"</div>\").insertAfter(frmgr);\n\t\t\t\t$(\"#sNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\tpostIt();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#nNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\tsetTimeout(function(){$(\":input:visible\",frmgr)[0].focus();},0);\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#cNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t// here initform - only once\n\t\t\t$($t).triggerHandler(\"jqGridAddEditInitializeForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);}\n\t\t\tif(rowid===\"_empty\" || !rp_ge[$t.p.id].viewPagerButtons) {$(\"#pData,#nData\",frmtb2).hide();} else {$(\"#pData,#nData\",frmtb2).show();}\n\t\t\t$($t).triggerHandler(\"jqGridAddEditBeforeShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);}\n\t\t\tsyncSavedData();\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).data(\"onClose\",rp_ge[$t.p.id].onClose);\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal, \n\t\t\t\toverlay: p.overlay,\n\t\t\t\tmodal:p.modal, \n\t\t\t\toverlayClass: p.overlayClass,\n\t\t\t\tfocusField : p.focusField,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\tvar fh = $('#editmod'+gID)[0].style.height,\n\t\t\t\t\t\tfw = $('#editmod'+gID)[0].style.width;\n\t\t\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfh = parseFloat(fh);\n\t\t\t\t\t}\n\t\t\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfw = parseFloat(fw);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).data(\"formProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : fw,\n\t\t\t\t\t\theight : fh,\n\t\t\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!closeovrl) {\n\t\t\t\t$(\".\" + $.jgrid.jqID(p.overlayClass)).click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".fm-button\",\"#\"+$.jgrid.jqID(IDs.themodal)).hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\t$(\"#sData\", frmtb2).click(function(){\n\t\t\t\tpostdata = {};\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\t// all depend on ret array\n\t\t\t\t//ret[0] - succes\n\t\t\t\t//ret[1] - msg if not succes\n\t\t\t\t//ret[2] - the id  that will be set if reload after submit false\n\t\t\t\tgetFormData();\n\t\t\t\tif(postdata[$t.p.id+\"_id\"] === \"_empty\")\t{postIt();}\n\t\t\t\telse if(p.checkOnSubmit===true ) {\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpostIt();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpostIt();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#cData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tvar nposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tnposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]);\n\t\t\t\t\t\tif( nposret !== undefined && nposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tvar pposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tpposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t\tif( pposret !== undefined && pposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); }\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tviewGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'view'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 500,\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\tjqModal: true,\n\t\t\tcloseOnEscape : false,\n\t\t\tlabelswidth: '30%',\n\t\t\tcloseicon: [],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tonClose: null,\n\t\t\tbeforeShowForm : null,\n\t\t\tbeforeInitData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\trecreateForm : false,\n\t\t\tremovemodal: true,\n\t\t\tform: 'view'\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"ViewGrid_\"+$.jgrid.jqID( gID  ), frmtb = \"ViewTbl_\" + $.jgrid.jqID( gID ),\n\t\t\tfrmgr_id = \"ViewGrid_\"+gID, frmtb_id = \"ViewTbl_\"+gID,\n\t\t\tIDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tshowFrm = true,\n\t\t\tmaxCols = 1, maxRows=0;\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"viewProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"viewProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction focusaref(){ //Sfari 3 issues\n\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\", \"-1\").focus();},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD form-view-label \" + commonstyle.content + \"' width='\"+p.labelswidth+\"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset \"  + commonstyle.content +\"'>&#160;</td>\", tmpl=\"\",\n\t\t\t\ttdtmpl2 = \"<td class='CaptionTD form-view-label \" + commonstyle.content +\"'>&#160;</td><td class='DataTD form-view-data \" + commonstyle.content +\"'>&#160;</td>\",\n\t\t\t\tfmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;\n\t\t\t\tfor (i=1;i<=maxcols;i++) {\n\t\t\t\t\ttmpl += i === 1 ? tdtmpl : tdtmpl2;\n\t\t\t\t}\n\t\t\t\t// find max number align rigth with property formatter\n\t\t\t\t$(obj.p.colModel).each( function() {\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif(!hc && this.align==='right') {\n\t\t\t\t\t\tif(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {\n\t\t\t\t\t\t\tmax1 = Math.max(max1,parseInt(this.width,10));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmax2 = Math.max(max2,parseInt(this.width,10));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tmaxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;\n\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\tsetme = false;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tviewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable;\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetme = this.align === 'right' && maxw !==0 ? true : false;\n\t\t\t\t\t\tvar frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"trv_\"+nm);\n\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>');\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(\"<span>\"+tmp+\"</span>\").attr(\"id\",\"v_\"+nm);\n\t\t\t\t\t\tif(setme){\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\") span\",trdata[0]).css({'text-align':'right',width:maxw+\"px\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\tidrow[0].rp = cnt+99;\n\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t}\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj){\n\t\t\t\tvar nm, hc,cnt=0,tmp,trv;\n\t\t\t\ttrv = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!trv) {return;}\n\t\t\t\t$('td',trv).each( function(i) {\n\t\t\t\t\tnm = obj.p.colModel[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = obj.p.colModel[i].hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttmp = $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(\"v_\"+nm);\n\t\t\t\t\t\t$(\"#\"+nm+\" span\",\"#\"+frmtb).html(tmp);\n\t\t\t\t\t\tif (hc) {$(\"#\"+nm,\"#\"+frmtb).parents(\"tr:first\").hide();}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {$(\"#id_g\",\"#\"+frmtb).val(rowid);}\n\t\t\t}\n\t\t\tfunction updateNav(cr,posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(\"#pData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid = $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",\"#\"+frmtb).val(),\n\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr_id+\"' class='FormGrid' style='width:\"+dw+\";height:\"+dh+\";'></form>\"),\n\t\t\ttbl =$(\"<table id='\"+frmtb_id+\"' class='EditTable ViewTable'><tbody></tbody></table>\");\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t// set the id.\n\t\t\t$(frm).append(tbl);\n\t\t\tif(onBeforeInit) {\n\t\t\t\tshowFrm = onBeforeInit.call($t, frm );\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\t\t\tcreateData(rowid, $t, tbl, maxCols);\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\",\n\t\t\t\t// buttons at footer\n\t\t\tbP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bClose+\"</a>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar bt = $(\"<div></div>\").append(frm).append(\"<table border='0' class='EditTable' id='\"+frmtb+\"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='\"+p.labelswidth+\"'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bC+\"</td></tr></tbody></table>\");\n\t\t\t$.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",\"#\"+frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\t\t\tif(!p.viewPagerButtons) {$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").hide();}\n\t\t\tbt = null;\n\t\t\t$(\"#\"+IDs.themodal).keydown( function( e ) {\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(p.navkeys[0]===true) {\n\t\t\t\t\tif(e.which === p.navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === p.navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",\"#\"+frmtb+\"_2\").addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base+ \" \" +p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif($.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$(\"#\"+frmgr));}\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal,\n\t\t\t\toverlay: p.overlay, \n\t\t\t\tmodal:p.modal,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\t$($t).data(\"viewProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : $(h.w).width(),\n\t\t\t\t\t\theight : $(h.w).height(),\n\t\t\t\t\t\tdataheight : $(\"#\"+frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(\"#\"+frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\".fm-button:not(.\" + commonstyle.disabled + \")\",\"#\"+frmtb+\"_2\").hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\tfocusaref();\n\t\t\t$(\"#cData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tdelGridRow : function(rowids,p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'del'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 240,\n\t\t\theight: 'auto',\n\t\t\tdataheight : 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl : '',\n\t\t\tmtype : \"POST\",\n\t\t\treloadAfterSubmit: true,\n\t\t\tbeforeShowForm: null,\n\t\t\tbeforeInitData : null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\tdelData: {},\n\t\t\tdelicon : [],\n\t\t\tcancelicon : [],\n\t\t\tonClose : null,\n\t\t\tajaxDelOptions : {},\n\t\t\tprocessing : false,\n\t\t\tserializeDelData : null,\n\t\t\tuseDataProxy : false\n\t\t}, regional, p ||{});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif(!rowids) {return;}\n\t\t\tvar onBeforeShow = $.isFunction( rp_ge[$t.p.id].beforeShowForm  ),\n\t\t\tonAfterShow = $.isFunction( rp_ge[$t.p.id].afterShowForm ),\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tgID = $t.p.id, onCS = {},\n\t\t\tshowFrm = true,\n\t\t\tdtbl = \"DelTbl_\"+$.jgrid.jqID(gID),postd, idname, opers, oper,\n\t\t\tdtbl_id = \"DelTbl_\" + gID,\n\t\t\tIDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif ($.isArray(rowids)) {rowids = rowids.join();}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(\"#\"+dtbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\t\t\t\t$(\"#DelData>td\",\"#\"+dtbl).text(rowids);\n\t\t\t\t$(\"#DelError\",\"#\"+dtbl).hide();\n\t\t\t\tif( rp_ge[$t.p.id].processing === true) {\n\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t$(\"#dData\", \"#\"+dtbl).removeClass( commonstyle.active );\n\t\t\t\t}\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal,jqM: false, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t} else {\n\t\t\t\tvar dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+\"px\",\n\t\t\t\tdw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+\"px\",\n\t\t\t\ttbl = \"<div id='\"+dtbl_id+\"' class='formdata' style='width:\"+dw+\";overflow:auto;position:relative;height:\"+dh+\";'>\";\n\t\t\t\ttbl += \"<table class='DelTable'><tbody>\";\n\t\t\t\t// error data\n\t\t\t\ttbl += \"<tr id='DelError' style='display:none'><td class='\" + commonstyle.error +\"'></td></tr>\";\n\t\t\t\ttbl += \"<tr id='DelData' style='display:none'><td >\"+rowids+\"</td></tr>\";\n\t\t\t\ttbl += \"<tr><td class=\\\"delmsg\\\" style=\\\"white-space:pre;\\\">\"+rp_ge[$t.p.id].msg+\"</td></tr><tr><td >&#160;</td></tr>\";\n\t\t\t\t// buttons at footer\n\t\t\t\ttbl += \"</tbody></table></div>\";\n\t\t\t\tvar bS  = \"<a id='dData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\t\tbC  = \"<a id='eData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\t\ttbl += \"<table class='EditTable ui-common-table' id='\"+dtbl+\"_2'><tbody><tr><td><hr class='\" + commonstyle.content + \"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>\"+bS+\"&#160;\"+bC+\"</td></tr></tbody></table>\";\n\t\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\t\t$.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(tbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\n\t\t\t\t$(\".fm-button\",\"#\"+dtbl+\"_2\").hover(\n\t\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t\t);\n\t\t\t\tp.delicon = $.extend([true,\"left\", styles.icon_del ],rp_ge[$t.p.id].delicon);\n\t\t\t\tp.cancelicon = $.extend([true,\"left\", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon);\n\t\t\t\tif(p.delicon[0]===true) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").addClass(p.delicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.delicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(p.cancelicon[0]===true) {\n\t\t\t\t\t$(\"#eData\",\"#\"+dtbl+\"_2\").addClass(p.cancelicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.cancelicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\tvar ret=[true,\"\"], pk,\n\t\t\t\t\tpostdata = $(\"#DelData>td\",\"#\"+dtbl).text(); //the pair is name=val1,val2,...\n\t\t\t\t\tonCS = {};\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {onCS = rp_ge[$t.p.id].onclickSubmit.call($t,rp_ge[$t.p.id], postdata) || {};}\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].beforeSubmit ) ) {ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata);}\n\t\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\tpostd = $.extend({},rp_ge[$t.p.id].delData, onCS);\n\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\tpostd[oper] = opers.deloper;\n\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\tpostdata = String(postdata).split(\",\");\n\t\t\t\t\t\tif(!postdata.length) { return false; }\n\t\t\t\t\t\tfor(pk in postdata) {\n\t\t\t\t\t\t\tif(postdata.hasOwnProperty(pk)) {\n\t\t\t\t\t\t\t\tpostdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpostd[idname] = postdata.join();\n\t\t\t\t\t\t$(this).addClass( commonstyle.active );\n\t\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\t\turl: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'),\n\t\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd,\n\t\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t$(\"#dData\", \"#\"+dtbl+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t,data);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].afterSubmit ) ) {\n\t\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t,data,postd);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== \"local\") {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid===true){\n\t\t\t\t\t\t\t\t\t\t\t\ttry {$($t).jqGrid(\"delTreeNode\",$t.p.idPrefix+postdata[0]);} catch(e){}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tfor(i=0;i<postdata.length;i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",$t.p.idPrefix+ postdata[i]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t\t\t\t\t\t$t.p.selarrrow = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\t\tsetTimeout(function(){rp_ge[$t.p.id].afterComplete.call($t,data,postdata);},500);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\t\tif(ret[0]) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);\n\n\n\t\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+$.jgrid.getRegional($t, 'errors.nourl');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"del_\"+$t.p.id); \n\t\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\t\tpostd = ajaxOptions.data;\n\t\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#eData\", \"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true) {\n\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t\t}\n\t\t});\n\t},\n\tnavGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'nav'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tedit: true,\n\t\t\tediticon: styles.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon: styles.icon_add_nav,\n\t\t\tdel: true,\n\t\t\tdelicon: styles.icon_del_nav,\n\t\t\tsearch: true,\n\t\t\tsearchicon: styles.icon_search_nav,\n\t\t\trefresh: true,\n\t\t\trefreshicon: styles.icon_refresh_nav,\n\t\t\trefreshstate: 'firstpage',\n\t\t\tview: false,\n\t\t\tviewicon : styles.icon_view_nav,\n\t\t\tposition : \"left\",\n\t\t\tcloseOnEscape : true,\n\t\t\tbeforeRefresh : null,\n\t\t\tafterRefresh : null,\n\t\t\tcloneToTop : false,\n\t\t\talertwidth : 200,\n\t\t\talertheight : 'auto',\n\t\t\talerttop: null,\n\t\t\talertleft: null,\n\t\t\talertzIndex : null,\n\t\t\tdropmenu : false,\n\t\t\tnavButtonText : ''\n\t\t}, regional, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif(this.p.navGrid) {return;}\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t$t = this, twd, tdw, o;\n\t\t\tif(!$t.grid || typeof elem !== 'string') {return;}\n\t\t\tif(!$($t).data('navGrid')) {\n\t\t\t\t$($t).data('navGrid',p);\n\t\t\t}\n\t\t\t// speedoverhead, but usefull for future \n\t\t\to = $($t).data('navGrid');\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\t\t\tif ($(\"#\"+alertIDs.themodal)[0] === undefined) {\n\t\t\t\tif(!o.alerttop && !o.alertleft) {\n\t\t\t\t\tif (window.innerWidth !== undefined) {\n\t\t\t\t\t\to.alertleft = window.innerWidth;\n\t\t\t\t\t\to.alerttop = window.innerHeight;\n\t\t\t\t\t} else if (document.documentElement !== undefined && document.documentElement.clientWidth !== undefined && document.documentElement.clientWidth !== 0) {\n\t\t\t\t\t\to.alertleft = document.documentElement.clientWidth;\n\t\t\t\t\t\to.alerttop = document.documentElement.clientHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\to.alertleft=1024;\n\t\t\t\t\t\to.alerttop=768;\n\t\t\t\t\t}\n\t\t\t\t\to.alertleft = o.alertleft/2 - parseInt(o.alertwidth,10)/2;\n\t\t\t\t\to.alerttop = o.alerttop/2-25;\n\t\t\t\t}\n\t\t\t\t$.jgrid.createModal(alertIDs,\n\t\t\t\t\t\"<div>\"+o.alerttext+\"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>\",\n\t\t\t\t\t{ \n\t\t\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t\tjqModal:true,\n\t\t\t\t\t\tdrag:true,\n\t\t\t\t\t\tresize:true,\n\t\t\t\t\t\tcaption:o.alertcap,\n\t\t\t\t\t\ttop:o.alerttop,\n\t\t\t\t\t\tleft:o.alertleft,\n\t\t\t\t\t\twidth:o.alertwidth,\n\t\t\t\t\t\theight: o.alertheight,\n\t\t\t\t\t\tcloseOnEscape:o.closeOnEscape, \n\t\t\t\t\t\tzIndex: o.alertzIndex,\n\t\t\t\t\t\tstyleUI: $t.p.styleUI\n\t\t\t\t\t},\n\t\t\t\t\t\"#gview_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0],\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t\tvar clone = 1, i,\n\t\t\tonHoverIn = function () {\n\t\t\t\tif (!$(this).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(this).addClass(commonstyle.hover);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHoverOut = function () {\n\t\t\t\t$(this).removeClass(commonstyle.hover);\n\t\t\t};\n\t\t\tif(o.cloneToTop && $t.p.toppager) {clone = 2;}\n\t\t\tfor(i = 0; i<clone; i++) {\n\t\t\t\tvar tbd,\n\t\t\t\tnavtbl = $(\"<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>\"),\n\t\t\t\tsep = \"<td class='ui-pg-button \" +commonstyle.disabled + \"' style='width:4px;'><span class='ui-separator'></span></td>\",\n\t\t\t\tpgid, elemids;\n\t\t\t\tif(i===0) {\n\t\t\t\t\tpgid = elem;\n\t\t\t\t\telemids = $t.p.id;\n\t\t\t\t\tif(pgid === $t.p.toppager) {\n\t\t\t\t\t\telemids += \"_top\";\n\t\t\t\t\t\tclone = 1;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpgid = $t.p.toppager;\n\t\t\t\t\telemids = $t.p.id+\"_top\";\n\t\t\t\t}\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\t$(navtbl).attr(\"dir\",\"rtl\").css(\"float\",\"right\");\n\t\t\t\t}\n\t\t\t\tpAdd = pAdd || {};\n\t\t\t\tif (o.add) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base +\" \" +o.addicon+\"'></span>\"+o.addtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.addtitle || \"\",id : pAdd.id || \"add_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( o.addfunc )) {\n\t\t\t\t\t\t\t\to.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpEdit = pEdit || {};\n\t\t\t\tif (o.edit) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.editicon+\"'></span>\"+o.edittext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.edittitle || \"\",id: pEdit.id || \"edit_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.editfunc ) ) {\n\t\t\t\t\t\t\t\t\to.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpView = pView || {};\n\t\t\t\tif (o.view) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.viewicon+\"'></span>\"+o.viewtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.viewtitle || \"\",id: pView.id || \"view_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.viewfunc ) ) {\n\t\t\t\t\t\t\t\t\to.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpDel = pDel || {};\n\t\t\t\tif (o.del) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.delicon+\"'></span>\"+o.deltext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.deltitle || \"\",id: pDel.id || \"del_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( o.delfunc )){\n\t\t\t\t\t\t\t\t\to.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif(o.add || o.edit || o.del || o.view) {$(\"tr\",navtbl).append(sep);}\n\t\t\t\tpSearch = pSearch || {};\n\t\t\t\tif (o.search) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.searchicon+\"'></span>\"+o.searchtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.searchtitle  || \"\",id:pSearch.id || \"search_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( o.searchfunc )) {\n\t\t\t\t\t\t\t\to.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$(tbd,navtbl).click();\n\t\t\t\t\t}\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif (o.refresh) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.refreshicon+\"'></span>\"+o.refreshtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.refreshtitle  || \"\",id: \"refresh_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( o.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (o.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\ttdw = $(\".ui-jqgrid\").css(\"font-size\") || \"11px\";\n\t\t\t\t$('body').append(\"<div id='testpg2' class='ui-jqgrid \"+$.jgrid.styleUI[currstyle].base.entrieBox+\"' style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\t\ttwd = $(navtbl).clone().appendTo(\"#testpg2\").width();\n\t\t\t\t$(\"#testpg2\").remove();\n\t\t\t\t\n\t\t\t\tif($t.p._nvtd) {\n\t\t\t\t\tif(o.dropmenu) {\n\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\t\t\t\t\t\t\n\t\t\t\t\t} else if(twd > $t.p._nvtd[0] ) {\n\t\t\t\t\t\tif($t.p.responsive) {\n\t\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl).width(twd);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$t.p._nvtd[0] = twd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl);\n\t\t\t\t\t}\n\t\t\t\t\t$t.p._nvtd[1] = twd;\n\t\t\t\t}\n\t\t\t\t$t.p.navGrid = true;\n\t\t\t}\n\t\t\tif($t.p.storeNavOptions) {\n\t\t\t\t$t.p.navOptions = o;\n\t\t\t\t$t.p.editOptions = pEdit;\n\t\t\t\t$t.p.addOptions = pAdd;\n\t\t\t\t$t.p.delOptions = pDel;\n\t\t\t\t$t.p.searchOptions = pSearch;\n\t\t\t\t$t.p.viewOptions = pView;\n\t\t\t\t$t.p.navButtons =[];\n\t\t\t}\n\n\t\t});\n\t},\n\tnavButtonAdd : function (elem, p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator;\n\t\tp = $.extend({\n\t\t\tcaption : \"newButton\",\n\t\t\ttitle: '',\n\t\t\tbuttonicon : styles.icon_newbutton_nav,\n\t\t\tonClickButton: null,\n\t\t\tposition : \"last\",\n\t\t\tcursor : 'pointer',\n\t\t\tinternal : false\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], $t = this,\n\t\t\t//getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\tdisabled = $.jgrid.styleUI[currstyle].common.disabled,\n\t\t\thover = $.jgrid.styleUI[currstyle].common.hover,\n\t\t\tcornerall = $.jgrid.styleUI[currstyle].common.cornerall,\n\t\t\ticonbase = $.jgrid.styleUI[currstyle].common.icon_base;\n\n\t\t\tif ($t.p.storeNavOptions && !p.internal) {\n\t\t\t\t$t.p.navButtons.push([elem,p]);\n\t\t\t}\n\n\t\t\tif (findnav) {\n\t\t\t\tif( p.id && $(\"#\"+$.jgrid.jqID(p.id), findnav)[0] !== undefined )  {return;}\n\t\t\t\tvar tbd = $(\"<td></td>\");\n\t\t\t\tif(p.buttonicon.toString().toUpperCase() === \"NONE\") {\n                    $(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'>\"+p.caption+\"</div>\");\n\t\t\t\t} else\t{\n\t\t\t\t\t$(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'><span class='\"+iconbase+\" \"+p.buttonicon+\"'></span>\"+p.caption+\"</div>\");\n\t\t\t\t}\n\t\t\t\tif(p.id) {$(tbd).attr(\"id\",p.id);}\n\t\t\t\tif(p.position==='first'){\n\t\t\t\t\tif(findnav.rows[0].cells.length ===0 ) {\n\t\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\",findnav).before(tbd);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t}\n\t\t\t\t$(tbd,findnav)\n\t\t\t\t.attr(\"title\",p.title  || \"\")\n\t\t\t\t.click(function(e){\n\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);}\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t\t.hover(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tif (findnav) {\n\t\t\t\t\tvar id = $(findnav).val(),\n\t\t\t\t\teid = p.id || $.jgrid.randId(),\n\t\t\t\t\titem = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.caption || p.title)+'</a></li>');\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === 'first') {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( item );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( item );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(item).on(\"click\", function(e){\n\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t$(\"#\"+id).hide();\n\t\t\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {\n\t\t\t\t\t\t\t\t\tp.onClickButton.call($t,e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}).find(\"a\")\n\t\t\t\t\t\t.hover(\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tnavSeparatorAdd:function (elem,p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tsepclass : \"ui-separator\",\n\t\t\tsepcontent: '',\n\t\t\tposition : \"last\"\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], sep, id;\n\t\t\tif ( this.p.storeNavOptions ) {\n\t\t\t\tthis.p.navButtons.push([elem,p]);\n\t\t\t}\n\t\t\t\n\t\t\tif(findnav) {\n\t\t\t\tsep = \"<td class='ui-pg-button \"+ commonstyle.disabled +\"' style='width:4px;'><span class='\"+p.sepclass+\"'></span>\"+p.sepcontent+\"</td>\";\n\t\t\t\tif (p.position === 'first') {\n\t\t\t\t\tif (findnav.rows[0].cells.length === 0) {\n\t\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\", findnav).before(sep);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tsep = \"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\";\n\t\t\t\tif(findnav) {\n\t\t\t\t\tid = $(findnav).val();\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === \"first\") {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( sep );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( sep );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\t_buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this,\n\t\t\t//actions = ['add','edit', 'del', 'view', 'search','refresh'],\n\t\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\t\tcurrstyle = $t.p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tclasses = $.jgrid.styleUI[currstyle].filter,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common,\n\t\t\tmid = \"form_menu_\"+$.jgrid.randId(),\n\t\t\tbt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions',\n\t\t\tact = \"<button class='dropdownmenu \"+commonstyle.button+\"' value='\"+mid+\"'>\" + bt +\"</button>\";\n\t\t\t$(elem+\"_\"+p.position, elem).append( act );\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t_buildMenu = function() {\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px',\n\t\t\t\teid, itm,\n\t\t\t\tstr = $('<ul id=\"'+mid+'\" class=\"ui-nav-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"display:none;font-size:'+fs+'\"></ul>');\n\t\t\t\tif( p.add ) {\n\t\t\t\t\tpAdd = pAdd || {};\n\t\t\t\t\teid = pAdd.id || \"add_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.addtext || p.addtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( p.addfunc )) {\n\t\t\t\t\t\t\t\tp.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.edit ) {\n\t\t\t\t\tpEdit = pEdit || {};\n\t\t\t\t\teid = pEdit.id || \"edit_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.edittext || p.edittitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.view ) {\n\t\t\t\t\tpView = pView || {};\n\t\t\t\t\teid = pView.id || \"view_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.viewtext || p.viewtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.del ) {\n\t\t\t\t\tpDel = pDel || {};\n\t\t\t\t\teid = pDel.id || \"del_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.deltext || p.deltitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( p.delfunc )){\n\t\t\t\t\t\t\t\t\tp.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif(p.add || p.edit || p.del || p.view) {\n\t\t\t\t\t$(str).append(\"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\");\n\t\t\t\t}\n\t\t\t\tif( p.search ) {\n\t\t\t\t\tpSearch = pSearch || {};\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.searchtext || p.searchtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( p.searchfunc )) {\n\t\t\t\t\t\t\t\tp.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$( itm ).click();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( p.refresh ) {\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( p.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (p.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\t$(str).hide();\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#\"+mid).addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#\"+mid+\" > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(commonstyle.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(commonstyle.hover); }\n\t\t\t\t);\n\t\t\t};\n\t\t\t_buildMenu();\n\t\t\t$(\".dropdownmenu\", elem+\"_\"+p.position).on(\"click\", function( e ){\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = parseInt( offset.top),\n\t\t\t\tbid =$(this).val();\n\t\t\t\t//if( $(\"#\"+mid)[0] === undefined)  {\n\t\t\t\t\t//_buildMenu();\n\t\t\t\t//}\n\t\t\t\t$(\"#\"+bid).show().css({\"top\":top - ($(\"#\"+bid).height() +10)+\"px\", \"left\":left+\"px\"});\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).hasClass(\"dropdownmenu\")) {\n\t\t\t\t\t$(\"#\"+mid).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tGridToForm : function( rowid, formid ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, i;\n\t\t\tif (!$t.grid) {return;}\n\t\t\tvar rowdata = $($t).jqGrid(\"getRowData\",rowid);\n\t\t\tif (rowdata) {\n\t\t\t\tfor(i in rowdata) {\n\t\t\t\t\tif(rowdata.hasOwnProperty(i)) {\n\t\t\t\t\tif ( $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:radio\") || $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:checkbox\"))  {\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).each( function() {\n\t\t\t\t\t\t\tif( $(this).val() == rowdata[i] ) {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t// this is very slow on big table and form.\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).val(rowdata[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tFormToGrid : function(rowid, formid, mode, position){\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(!mode) {mode = 'set';}\n\t\t\tif(!position) {position = 'first';}\n\t\t\tvar fields = $(formid).serializeArray();\n\t\t\tvar griddata = {};\n\t\t\t$.each(fields, function(i, field){\n\t\t\t\tgriddata[field.name] = field.value;\n\t\t\t});\n\t\t\tif(mode==='add') {$($t).jqGrid(\"addRowData\",rowid,griddata, position);}\n\t\t\telse if(mode==='set') {$($t).jqGrid(\"setRowData\",rowid,griddata);}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.grouping.js",
    "content": "/*jshint eqeqeq:false, eqnull:true */\n/*global jQuery, define */\n// Grouping module\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.extend({\n\tgroupingSetup : function () {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping;\n\t\t\tif(grp !== null && ( (typeof grp === 'object') || $.isFunction(grp) ) ) {\n\t\t\t\tif(!grp.plusicon) { grp.plusicon = classes.icon_plus;}\n\t\t\t\tif(!grp.minusicon) { grp.minusicon = classes.icon_minus;}\n\t\t\t\tif(!grp.groupField.length) {\n\t\t\t\t\t$t.p.grouping = false;\n\t\t\t\t} else {\n\t\t\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgrp.lastvalues=[];\n\t\t\t\t\tif(!grp._locgr) {\n\t\t\t\t\t\tgrp.groups =[];\n\t\t\t\t\t}\n\t\t\t\t\tgrp.counters =[];\n\t\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\t\t\tif(!grp.groupOrder[i]) {\n\t\t\t\t\t\t\tgrp.groupOrder[i] = 'asc';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!grp.groupText[i]) {\n\t\t\t\t\t\t\tgrp.groupText[i] = '{0}';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupColumnShow[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupColumnShow[i] = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupSummary[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupSummary[i] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( !grp.groupSummaryPos[i]) {\n\t\t\t\t\t\t\tgrp.groupSummaryPos[i] = 'footer';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(grp.groupColumnShow[i] === true) {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = true;\n\t\t\t\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id+\"_\"+grp.groupField[i])).is(\":visible\");\n\t\t\t\t\t\t\t$($t).jqGrid('hideCol',grp.groupField[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrp.summary =[];\n\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\tif($.isArray(grp.formatDisplayField) && !$.isFunction(grp.formatDisplayField[0] ) ) {\n\t\t\t\t\t\t\tgrp.formatDisplayField[0] = function (v) { return v;};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(j=0, cml = cm.length; j < cml; j++) {\n\t\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\t\tif(!cm[j].hidden && grp.groupField[0] === cm[j].name) {\n\t\t\t\t\t\t\t\tcm[j].formatter = function(){return '';};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm[j].summaryType ) {\n\t\t\t\t\t\t\tif(cm[j].summaryDivider) {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$t.p.grouping = false;\n\t\t\t}\n\t\t});\n\t},\n\tgroupingPrepare : function ( record, irow ) {\n\t\tthis.each(function(){\n\t\t\tvar grp = this.p.groupingView, $t= this, i,\n\t\t\tsumGroups = function() {\n\t\t\t\tif ($.isFunction(this.st)) {\n\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\n\t\t\t\t} else {\n\t\t\t\t\tthis.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record);\n\t\t\t\t\tif(this.st.toLowerCase() === 'avg' && this.sd) {\n\t\t\t\t\t\tthis.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tgrlen = grp.groupField.length, \n\t\t\tfieldName,\n\t\t\tv,\n\t\t\tdisplayName,\n\t\t\tdisplayValue,\n\t\t\tchanged = 0;\n\t\t\tfor(i=0;i<grlen;i++) {\n\t\t\t\tfieldName = grp.groupField[i];\n\t\t\t\tdisplayName = grp.displayField[i];\n\t\t\t\tv = record[fieldName];\n\t\t\t\tdisplayValue = displayName == null ? null : record[displayName];\n\n\t\t\t\tif( displayValue == null ) {\n\t\t\t\t\tdisplayValue = v;\n\t\t\t\t}\n\t\t\t\tif( v !== undefined ) {\n\t\t\t\t\tif(irow === 0 ) {\n\t\t\t\t\t\t// First record always starts a new group\n\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (typeof v !== \"object\" && ($.isArray(grp.isInTheSameGroup) && $.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) {\n\t\t\t\t\t\t\t// This record is not in same group as previous one\n\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\tchanged = 1;\n\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (changed === 1) {\n\t\t\t\t\t\t\t\t// This group has changed because an earlier group changed.\n\t\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.counters[i].cnt += 1;\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt;\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t//gdata.push( rData );\n\t\t});\n\t\treturn this;\n\t},\n\tgroupingToggle : function(hid){\n\t\tthis.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstrpos = hid.split('_'),\n\t\t\tnum = parseInt(strpos[strpos.length-2], 10);\n\t\t\tstrpos.splice(strpos.length-2,2);\n\t\t\tvar uid = strpos.join(\"_\"),\n\t\t\tminus = grp.minusicon,\n\t\t\tplus = grp.plusicon,\n\t\t\ttar = $(\"#\"+$.jgrid.jqID(hid)),\n\t\t\tr = tar.length ? tar[0].nextSibling : null,\n\t\t\ttarspan = $(\"#\"+$.jgrid.jqID(hid)+\" span.\"+\"tree-wrap-\"+$t.p.direction),\n\t\t\tgetGroupingLevelFromClass = function (className) {\n\t\t\t\tvar nums = $.map(className.split(\" \"), function (item) {\n\t\t\t\t\tif (item.substring(0, uid.length + 1) === uid + \"_\") {\n\t\t\t\t\t\treturn parseInt(item.substring(uid.length + 1), 10);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn nums.length > 0 ? nums[0] : undefined;\n\t\t\t},\n\t\t\titemGroupingLevel,\n\t\t\tshowData,\n\t\t\tcollapsed = false,\n\t\t\tskip = false,\n\t\t\tfrz = $t.p.frozenColumns ? $t.p.id+\"_frozen\" : false,\n\t\t\ttar2 = frz ? $(\"#\"+$.jgrid.jqID(hid), \"#\"+$.jgrid.jqID(frz) ) : false,\n\t\t\tr2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null;\n\t\t\tif( tarspan.hasClass(minus) ) {\n\t\t\t\tif(r){\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined && itemGroupingLevel <= num) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(r).hide();\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t$(r2).hide();\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(minus).addClass(plus);\n\t\t\t\tcollapsed = true;\n\t\t\t} else {\n\t\t\t\tif(r){\n\t\t\t\t\tshowData = undefined;\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (showData === undefined) {\n\t\t\t\t\t\t\tshowData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows\n\t\t\t\t\t\t}\n\t\t\t\t\t\tskip = $(r).hasClass(\"ui-subgrid\") && $(r).hasClass(\"ui-sg-collapsed\");\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined) {\n\t\t\t\t\t\t\tif (itemGroupingLevel <= num) {\n\t\t\t\t\t\t\t\tbreak;// next item of the same lever are found\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (itemGroupingLevel === num + 1) {\n\t\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t\t$(r).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t\t$(r2).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (showData) {\n\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t$(r).show();\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(r2).show();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(plus).addClass(minus);\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridGroupingClickGroup\", [hid , collapsed]);\n\t\t\tif( $.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); }\n\n\t\t});\n\t\treturn false;\n\t},\n\tgroupingRender : function (grdata, colspans, page, rn ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstr = \"\", icon = \"\", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length,\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tpmrtl = pmrtl+\" tree-wrap-\"+$t.p.direction; \n\t\t\t$.each($t.p.colModel, function (i,n){\n\t\t\t\tvar ii;\n\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar toEnd = 0;\n\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\tvar ret = false, i;\n\t\t\t\tif(offset===0) {\n\t\t\t\t\tret = grp[ind];\n\t\t\t\t} else {\n\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t}  else {\n\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tvv, grlen = fdata.cnt, str=\"\", k;\n\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\tvar tmpdata = \"<td \"+$t.formatCol(k,1,'')+\">&#160;</td>\",\n\t\t\t\t\ttplfld = \"{0}\";\n\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpdata= \"<td \"+$t.formatCol(k,1,'')+\">\"+$.jgrid.template(tplfld,vv)+ \"</td>\";\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tstr += tmpdata;\n\t\t\t\t}\n\t\t\t\treturn str;\n\t\t\t}\n\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), mul;\n\t\t\tsumreverse.reverse();\n\t\t\tmul = $t.p.multiselect ? \" colspan=\\\"2\\\"\" : \"\";\n\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\tif(grp._locgr) {\n\t\t\t\t\tif( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttoEnd++;\n\t\t\t\tclid = $t.p.id+\"ghead_\"+n.idx;\n\t\t\t\thid = clid+\"_\"+i;\n\t\t\t\ticon = \"<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='\" + common.icon_base +\" \"+pmrtl+\"' onclick=\\\"jQuery('#\"+$.jgrid.jqID($t.p.id)+\"').jqGrid('groupingToggle','\"+hid+\"');return false;\\\"></span>\";\n\t\t\t\ttry {\n\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t}\n\t\t\t\t} catch (egv) {\n\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t}\n\t\t\t\tvar grpTextStr = ''; \n\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t} else {\n\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t}\n\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t}\n\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\"\" + mul +\">\" + icon+grpTextStr + \"</td>\";\n\t\t\t\t\tstr += buildSummaryTd(i, 0, grp.groups, grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2) );\n\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t} else {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\" colspan=\\\"\"+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+\"\\\">\" + icon + grpTextStr + \"</td></tr>\";\n\t\t\t\t}\n\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\tif( leaf ) {\n\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\tif(grp._locgr) {\n\t\t\t\t\t\toffset = (page-1)*rn;\n\t\t\t\t\t\tif(offset > n.startRow) {\n\t\t\t\t\t\t\tsgr = offset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\tstr += grdata[kk - offset].join('');\n\t\t\t\t\t}\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\tvar hhdr = \"\";\n\t\t\t\t\t\t\tif(grp.groupCollapse && !grp.showSummaryOnHide) {\n\t\t\t\t\t\t\t\thhdr = \" style=\\\"display:none;\\\"\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += \"<tr\"+hhdr+\" jqfootlevel=\\\"\"+(n.idx-ik)+\"\\\" role=\\\"row\\\" class=\\\"\" + common.content + \" jqfoot ui-row-\"+$t.p.direction+\"\\\">\";\n\t\t\t\t\t\t\tstr += buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").append(str);\n\t\t\t// free up memory\n\t\t\tstr = null;\n\t\t});\n\t},\n\tgroupingGroupBy : function (name, options ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(typeof name === \"string\") {\n\t\t\t\tname = [name];\n\t\t\t}\n\t\t\tvar grp = $t.p.groupingView;\n\t\t\t$t.p.grouping = true;\n\t\t\tgrp._locgr = false;\n\t\t\t//Set default, in case visibilityOnNextGrouping is undefined \n\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t}\n\t\t\tvar i;\n\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// set visibility status of current group columns on next grouping\n\t\t\tfor(i=0;i<name.length;i++) {\n\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(name[i])).is(\":visible\");\n\t\t\t}\n\t\t\t$t.p.groupingView = $.extend($t.p.groupingView, options || {});\n\t\t\tgrp.groupField = name;\n\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t});\n\t},\n\tgroupingRemove : function (current) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(current === undefined) {\n\t\t\t\tcurrent = true;\n\t\t\t}\n\t\t\t$t.p.grouping = false;\n\t\t\tif(current===true) {\n\t\t\t\tvar grp = $t.p.groupingView, i;\n\t\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t\t\t$($t).jqGrid('showCol', grp.groupField);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\"tr.jqgroup, tr.jqfoot\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").remove();\n\t\t\t\t$(\"tr.jqgrow:hidden\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").show();\n\t\t\t} else {\n\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t}\n\t\t});\n\t},\n\tgroupingCalculations : {\n\t\thandler: function(fn, v, field, round, roundType, rc) {\n\t\t\tvar funcs = {\n\t\t\t\tsum: function() {\n\t\t\t\t\treturn parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmin: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmax: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tcount: function() {\n\t\t\t\t\tif(v===\"\") {v=0;}\n\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\treturn v+1;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t},\n\n\t\t\t\tavg: function() {\n\t\t\t\t\t// the same as sum, but at end we divide it\n\t\t\t\t\t// so use sum instead of duplicating the code (?)\n\t\t\t\t\treturn funcs.sum();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif(!funcs[fn]) {\n\t\t\t\tthrow (\"jqGrid Grouping No such method: \" + fn);\n\t\t\t}\n\t\t\tvar res = funcs[fn]();\n\n\t\t\tif (round != null) {\n\t\t\t\tif (roundType === 'fixed') {\n\t\t\t\t\tres = res.toFixed(round);\n\t\t\t\t} else {\n\t\t\t\t\tvar mul = Math.pow(10, round);\n\t\t\t\t\tres = Math.round(res * mul) / mul;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\t\n\t},\n\tsetGroupHeaders : function ( o ) {\n\t\to = $.extend({\n\t\t\tuseColSpanStyle :  false,\n\t\t\tgroupHeaders: []\n\t\t},o  || {});\n\t\treturn this.each(function(){\n\t\t\tvar ts = this,\n\t\t\ti, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle,\n\t\t\tiCol,\n\t\t\tcghi,\n\t\t\t//startColumnName,\n\t\t\tnumberOfColumns,\n\t\t\ttitleText,\n\t\t\tcVisibleColumns,\n\t\t\tclassName,\n\t\t\tcolModel = ts.p.colModel,\n\t\t\tcml = colModel.length,\n\t\t\tths = ts.grid.headers,\n\t\t\t$htable = $(\"table.ui-jqgrid-htable\", ts.grid.hDiv),\n\t\t\t$trLabels = $htable.children(\"thead\").children(\"tr.ui-jqgrid-labels:last\").addClass(\"jqg-second-row-header\"),\n\t\t\t$thead = $htable.children(\"thead\"),\n\t\t\t$theadInTable,\n\t\t\t$firstHeaderRow = $htable.find(\".jqg-first-row-header\"),\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tbase = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;\n\t\t\tif(!ts.p.groupHeader) {\n\t\t\t\tts.p.groupHeader = [];\n\t\t\t}\n\t\t\tts.p.groupHeader.push(o);\n\t\t\tif($firstHeaderRow[0] === undefined) {\n\t\t\t\t$firstHeaderRow = $('<tr>', {role: \"row\", \"aria-hidden\": \"true\"}).addClass(\"jqg-first-row-header\").css(\"height\", \"auto\");\n\t\t\t} else {\n\t\t\t\t$firstHeaderRow.empty();\n\t\t\t}\n\t\t\tvar $firstRow,\n\t\t\tinColumnHeader = function (text, columnHeaders) {\n\t\t\t\tvar length = columnHeaders.length, i;\n\t\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\t\tif (columnHeaders[i].startColumnName === text) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t};\n\n\t\t\t$(ts).prepend($thead);\n\t\t\t$tr = $('<tr>', {role: \"row\"}).addClass(\"ui-jqgrid-labels jqg-third-row-header\");\n\t\t\tfor (i = 0; i < cml; i++) {\n\t\t\t\tth = ths[i].el;\n\t\t\t\t$th = $(th);\n\t\t\t\tcmi = colModel[i];\n\t\t\t\t// build the next cell for the first header row\n\t\t\t\tthStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};\n\t\t\t\t$(\"<th>\", {role: 'gridcell'}).css(thStyle).addClass(\"ui-first-th-\"+ts.p.direction).appendTo($firstHeaderRow);\n\n\t\t\t\tth.style.width = \"\"; // remove unneeded style\n\t\t\t\tiCol = inColumnHeader(cmi.name, o.groupHeaders);\n\t\t\t\tif (iCol >= 0) {\n\t\t\t\t\tcghi = o.groupHeaders[iCol];\n\t\t\t\t\tnumberOfColumns = cghi.numberOfColumns;\n\t\t\t\t\ttitleText = cghi.titleText;\n\t\t\t\t\tclassName = cghi.className || \"\";\n\t\t\t\t\t// caclulate the number of visible columns from the next numberOfColumns columns\n\t\t\t\t\tfor (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {\n\t\t\t\t\t\tif (!colModel[i + iCol].hidden) {\n\t\t\t\t\t\t\tcVisibleColumns++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// The next numberOfColumns headers will be moved in the next row\n\t\t\t\t\t// in the current row will be placed the new column header with the titleText.\n\t\t\t\t\t// The text will be over the cVisibleColumns columns\n\t\t\t\t\t$colHeader = $('<th>').attr({role: \"columnheader\"})\n\t\t\t\t\t\t.addClass(base.headerBox+ \" ui-th-column-header ui-th-\"+ts.p.direction+\" \"+className)\n\t\t\t\t\t\t//.css({'height':'22px', 'border-top': '0 none'})\n\t\t\t\t\t\t.html(titleText);\n\t\t\t\t\tif(cVisibleColumns > 0) {\n\t\t\t\t\t\t$colHeader.attr(\"colspan\", String(cVisibleColumns));\n\t\t\t\t\t}\n\t\t\t\t\tif (ts.p.headertitles) {\n\t\t\t\t\t\t$colHeader.attr(\"title\", $colHeader.text());\n\t\t\t\t\t}\n\t\t\t\t\t// hide if not a visible cols\n\t\t\t\t\tif( cVisibleColumns === 0) {\n\t\t\t\t\t\t$colHeader.hide();\n\t\t\t\t\t}\n\n\t\t\t\t\t$th.before($colHeader); // insert new column header before the current\n\t\t\t\t\t$tr.append(th);         // move the current header in the next row\n\n\t\t\t\t\t// set the coumter of headers which will be moved in the next row\n\t\t\t\t\tskip = numberOfColumns - 1;\n\t\t\t\t} else {\n\t\t\t\t\tif (skip === 0) {\n\t\t\t\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t\t\t\t// expand the header height to two rows\n\t\t\t\t\t\t\t$th.attr(\"rowspan\", \"2\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$('<th>', {role: \"columnheader\"})\n\t\t\t\t\t\t\t\t.addClass(base.headerBox+\" ui-th-column-header ui-th-\"+ts.p.direction)\n\t\t\t\t\t\t\t\t.css({\"display\": cmi.hidden ? 'none' : ''})\n\t\t\t\t\t\t\t\t.insertBefore($th);\n\t\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// move the header to the next row\n\t\t\t\t\t\t//$th.css({\"padding-top\": \"2px\", height: \"19px\"});\n\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\tskip--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$theadInTable = $(ts).children(\"thead\");\n\t\t\t$theadInTable.prepend($firstHeaderRow);\n\t\t\t$tr.insertAfter($trLabels);\n\t\t\t$htable.append($theadInTable);\n\n\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t// Increase the height of resizing span of visible headers\n\t\t\t\t$htable.find(\"span.ui-jqgrid-resize\").each(function () {\n\t\t\t\t\tvar $parent = $(this).parent();\n\t\t\t\t\tif ($parent.is(\":visible\")) {\n\t\t\t\t\t\tthis.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Set position of the sortable div (the main lable)\n\t\t\t\t// with the column header text to the middle of the cell.\n\t\t\t\t// One should not do this for hidden headers.\n\t\t\t\t$htable.find(\"div.ui-jqgrid-sortable\").each(function () {\n\t\t\t\t\tvar $ts = $(this), $parent = $ts.parent();\n\t\t\t\t\tif ($parent.is(\":visible\") && $parent.is(\":has(span.ui-jqgrid-resize)\")) {\n\t\t\t\t\t\t// minus 4px from the margins of the resize markers\n\t\t\t\t\t\t$ts.css('top', ($parent.height() - $ts.outerHeight()) / 2  - 4 +  'px');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$firstRow = $theadInTable.find(\"tr.jqg-first-row-header\");\n\t\t\t$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {\n\t\t\t\t$firstRow.find('th').eq(idx)[0].style.width = nw + \"px\";\n\t\t\t});\n\t\t});\t\t\t\t\n\t},\n\tdestroyGroupHeader : function(nullHeader) {\n\t\tif(nullHeader === undefined) {\n\t\t\tnullHeader = true;\n\t\t}\n\t\treturn this.each(function()\n\t\t{\n\t\t\tvar $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,\n\t\t\tthead = $(\"table.ui-jqgrid-htable thead\", grid.hDiv), cm = $t.p.colModel, hc;\n\t\t\tif(!grid) { return; }\n\n\t\t\t$(this).off('.setGroupHeaders');\n\t\t\t$tr = $(\"<tr>\", {role: \"row\"}).addClass(\"ui-jqgrid-labels\");\n\t\t\theaders = grid.headers;\n\t\t\tfor (i = 0, l = headers.length; i < l; i++) {\n\t\t\t\thc = cm[i].hidden ? \"none\" : \"\";\n\t\t\t\t$th = $(headers[i].el)\n\t\t\t\t\t.width(headers[i].width)\n\t\t\t\t\t.css('display',hc);\n\t\t\t\ttry {\n\t\t\t\t\t$th.removeAttr(\"rowSpan\");\n\t\t\t\t} catch (rs) {\n\t\t\t\t\t//IE 6/7\n\t\t\t\t\t$th.attr(\"rowSpan\",1);\n\t\t\t\t}\n\t\t\t\t$tr.append($th);\n\t\t\t\t$resizing = $th.children(\"span.ui-jqgrid-resize\");\n\t\t\t\tif ($resizing.length>0) {// resizable column\n\t\t\t\t\t$resizing[0].style.height = \"\";\n\t\t\t\t}\n\t\t\t\t$th.children(\"div\")[0].style.top = \"\";\n\t\t\t}\n\t\t\t$(thead).children('tr.ui-jqgrid-labels').remove();\n\t\t\t$(thead).prepend($tr);\n\n\t\t\tif(nullHeader === true) {\n\t\t\t\t$($t).jqGrid('setGridParam',{ 'groupHeader': null});\n\t\t\t}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.import.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, jqGridUtils, define, URL */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.utils\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid = $.jgrid || {};\n$.extend($.jgrid,{\n\tsaveState : function ( jqGridId, o ) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\", // localStorage or sessionStorage\n\t\t\tbeforeSetItem : null,\n\t\t\tcompression: false,\n\t\t\tcompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tcompressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16\n\t\t\tdebug : false\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar gridstate = \"\", data = \"\", ret, $t = $(\"#\"+jqGridId)[0], tmp;\n\t\t// to use navigator set storeNavOptions to true in grid options\n\t\tif(!$t.grid) { return;}\n\t\ttmp = $($t).data('inlineNav');\n\t\tif(tmp && $t.p.inlineNav) {\n\t\t\t$($t).jqGrid('setGridParam',{_iN: tmp});\n\t\t}\n\t\ttmp = $($t).data('filterToolbar');\n\t\tif(tmp && $t.p.filterToolbar) {\n\t\t\t$($t).jqGrid('setGridParam',{_fT: tmp});\n\t\t}\n\t\tgridstate  =  $($t).jqGrid('jqGridExport', { exptype : \"jsonstring\", ident:\"\", root:\"\" });\n\t\tdata = $($t.grid.bDiv).find(\".ui-jqgrid-btable tbody:first\").html();\n\t\tvar firstrow  = data.indexOf(\"</tr>\");\n\t\tdata = data.slice(firstrow + 5);\n\t\tif($.isFunction(o.beforeSetItem)) {\n\t\t\tret = o.beforeSetItem.call($t, gridstate);\n\t\t\tif(ret != null) {\n\t\t\t\tgridstate = ret;\n\t\t\t}\n\t\t}\n\t\tif(o.debug) {\n\t\t\t$(\"#gbox_tree\").prepend('<a id=\"link_save\" target=\"_blank\" download=\"jqGrid_dump.txt\">Click to save Dump Data</a>');\n\t\t\tvar temp = [], file, properties = {}, url;\n\t\t\ttemp.push(\"Grid Options\\n\");\n\t\t\ttemp.push(gridstate);\n\t\t\ttemp.push(\"\\n\");\n\t\t\ttemp.push(\"GridData\\n\");\n\t\t\ttemp.push(data);\n\t\t\tproperties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type.\n\t\t\ttry {\n\t\t\t\tfile = new File(temp, \"jqGrid_dump.txt\", properties);\n\t\t\t} catch (e) {\n\t\t\t\tfile = new Blob(temp, properties);\n\t\t\t}\n\t\t\turl = URL.createObjectURL(file);\n\t\t\t$(\"#link_save\").attr(\"href\",url).on('click',function(){\n\t\t\t\t$(this).remove();\n\t\t\t});\n\t\t}\t\t\n\t\tif(o.compression) {\n\t\t\tif(o.compressionModule) {\n\t\t\t\ttry { \n\t\t\t\t\tret = window[o.compressionModule][o.compressionMethod](gridstate);\n\t\t\t\t\tif(ret != null) {\n\t\t\t\t\t\tgridstate = ret;\n\t\t\t\t\t\tdata = window[o.compressionModule][o.compressionMethod](data);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// can not execute a compression.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(o.useStorage && $.jgrid.isLocalStorage()) {\n\t\t\ttry {\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id, gridstate);\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id+\"_data\", data);\n\t\t\t} catch (e) {\n\t\t\t\tif(e.code === 22) { // chrome is 21\n\t\t\t\t\t// just for now. we should make some additionla changes and eventually clear some local items\n\t\t\t\t\talert(\"Local storage limit is over!\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn gridstate;\n\t},\n\tloadState : function (jqGridId, gridstring, o) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\",\n\t\t\tclearAfterLoad: false,  // clears the jqGrid localStorage items aftre load\n\t\t\tbeforeSetGrid : null,\n\t\t\tafterSetGrid : null,\n\t\t\tdecompression: false,\n\t\t\tdecompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tdecompressionMethod : 'decompressFromUTF16' // string by example unzip, decompressFromUTF16\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar ret, tmp, $t = $(\"#\"+jqGridId)[0], data, iN, fT;\n\t\tif(o.useStorage) {\n\t\t\ttry {\n\t\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+$t.id);\n\t\t\t\tdata = window[o.storageType].getItem(\"jqGrid\"+$t.id+\"_data\");\n\t\t\t} catch (e) {\n\t\t\t\t// can not get data\n\t\t\t}\n\t\t}\n\t\tif(!gridstring) { return; }\n\t\tif(o.decompression) {\n\t\t\tif(o.decompressionModule) {\n\t\t\ttry {\n\t\t\t\t\tret = window[o.decompressionModule][o.decompressionMethod]( gridstring );\n\t\t\t\t\tif(ret != null ) {\n\t\t\t\t\t\tgridstring = ret;\n\t\t\t\t\t\tdata = window[o.decompressionModule][o.decompressionMethod]( data );\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// decompression can not be done\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tret = jqGridUtils.parse( gridstring );\n\t\tif( ret && $.type(ret) === 'object') {\n\t\t\tif($t.grid) { \n\t\t\t\t$.jgrid.gridUnload( jqGridId ); \n\t\t\t}\n\t\t\tif($.isFunction(o.beforeSetGrid)) {\n\t\t\t\ttmp = o.beforeSetGrid( ret );\n\t\t\t\tif(tmp && $.type(tmp) === 'object') {\n\t\t\t\t\tret = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// some preparings\n\t\t\tvar retfunc = function( param ) { var p; p = param; return p;},\n\t\t\tprm = {\n\t\t\t\t\"reccount\" : ret.reccount,\n\t\t\t\t\"records\" : ret.records,\n\t\t\t\t\"lastpage\" : ret.lastpage,\n\t\t\t\t\"shrinkToFit\" : retfunc( ret.shrinkToFit),\n\t\t\t\t\"data\": retfunc(ret.data),\n\t\t\t\t\"datatype\" : retfunc(ret.datatype),\n\t\t\t\t\"grouping\" : retfunc(ret.grouping)\n\t\t\t};\n\t\t\tret.shrinkToFit = false;\n\t\t\tret.data = [];\n\t\t\tret.datatype = 'local';\n\t\t\tret.grouping = false;\n\t\t\t//ret.navGrid = false;\n\n\t\t\tif(ret.inlineNav) {\n\t\t\t\tiN = retfunc( ret._iN );\n\t\t\t\tret._iN = null; delete ret._iN; \n\t\t\t}\n\t\t\tif(ret.filterToolbar) {\n\t\t\t\tfT = retfunc( ret._fT );\n\t\t\t\tret._fT = null; delete ret._fT; \n\t\t\t}\n\t\t\tvar grid = $(\"#\"+jqGridId).jqGrid( ret );\n\t\t\tgrid.append( data );\n\t\t\tgrid.jqGrid( 'setGridParam', prm);\n\t\t\tif(ret.storeNavOptions && ret.navGrid) {\n\t\t\t\t// set to false so that nav grid can be run\n\t\t\t\tgrid[0].p.navGrid = false;\n\t\t\t\tgrid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions);\n\t\t\t\tif(ret.navButtons && ret.navButtons.length) {\n\t\t\t\t\tfor(var b = 0; b < ret.navButtons.length; b++) {\n\t\t\t\t\t\tif( 'sepclass'  in ret.navButtons[b][1]) {\n\t\t\t\t\t\t\tgrid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// refresh index \n\t\t\tgrid[0].refreshIndex();\n\t\t\t// subgrid\n\t\t\tif(ret.subGrid) {\n\t\t\t\tvar ms = ret.multiselect === 1 ? 1 : 0,\n\t\t\t\t\trn = ret.rownumbers === true ? 1 :0;\n\t\t\t\tgrid.jqGrid('addSubGrid', ms + rn);\n\t\t\t}\n\t\t\t// treegrid\n\t\t\tif(ret.treeGrid) {\n\t\t\t\tvar i = 1, len = grid[0].rows.length,\n\t\t\t\texpCol = ret.expColInd,\n\t\t\t\tisLeaf = ret.treeReader.leaf_field,\n\t\t\t\texpanded = ret.treeReader.expanded_field;\n\t\t\t\t// optimization of code needed here\n\t\t\t\twhile(i<len) {\n\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\tif(ret.ExpandColClick === true) {\n\t\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgrid.jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// multiselect\n\t\t\tif(ret.multiselect) {\n\t\t\t\t$.each(ret.selarrrow, function(){\n\t\t\t\t\t$(\"#jqg_\" + jqGridId + \"_\"+this)[ret.useProp ? 'prop': 'attr'](\"checked\", \"checked\");\n\t\t\t\t});\n\t\t\t}\n\t\t\t// grouping\n\t\t\t// pivotgrid\n\t\t\tif(ret.inlineNav && iN) {\n\t\t\t\tgrid.jqGrid('setGridParam', { inlineNav:false });\n\t\t\t\tgrid.jqGrid('inlineNav', ret.pager, iN);\n\t\t\t}\n\t\t\tif(ret.filterToolbar && fT) {\n\t\t\t\tgrid.jqGrid('setGridParam', { filterToolbar:false });\n\t\t\t\tfT.restoreFromFilters = true;\n\t\t\t\tgrid.jqGrid('filterToolbar', fT);\n\t\t\t}\n\t\t\t// finally frozenColums\n\t\t\tif( ret.frozenColumns ) {\n\t\t\t\tgrid.jqGrid('setFrozenColumns');\n\t\t\t}\n\t\t\tgrid[0].updatepager(true, true);\n\t\t\t\n\t\t\tif($.isFunction(o.afterSetGrid)) {\n\t\t\t\to.afterSetGrid( grid );\n\t\t\t}\n\t\t\tif(o.clearAfterLoad) {\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id);\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id + \"_data\");\n\t\t\t}\n\t\t} else {\n\t\t\talert(\"can not convert to object\");\n\t\t}\n\t},\n\tisGridInStorage : function ( jqGridId, options ) {\n\t\tvar o = {\n\t\t\tstorageType: \"localStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\tvar ret, gridstring, data;\n\t\ttry {\n\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+jqGridId);\n\t\t\tdata = window[o.storageType].getItem(\"jqGrid\" + jqGridId + \"_data\");\n\t\t\tret = gridstring != null && data != null && typeof gridstring === \"string\" && typeof data === \"string\" ;\n\t\t} catch (e) {\n\t\t\tret = false;\n\t\t}\n\t\treturn ret;\n\t},\n\tsetRegional : function( jqGridId , options) {\n\t\tvar o = {\n\t\t\tstorageType: \"sessionStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\t\n\t\tif( !o.regional ) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t$.jgrid.saveState( jqGridId, o );\n\t\t\n\t\to.beforeSetGrid = function(params) {\n\t\t\tparams.regional = o.regional;\n\t\t\tparams.force_regional = true;\n\t\t\treturn params;\n\t\t};\n\t\t\n\t\t$.jgrid.loadState( jqGridId, null, o);\n\t\t// check for formatter actions\n\t\tvar grid = $(\"#\"+jqGridId)[0],\n\t\tmodel = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav');\n\t\t$.each(model,function(k){\n\t\t\tif(this.formatter && this.formatter === 'actions') {\n\t\t\t\ti = k;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(i !== -1 && nav) {\n\t\t\t$(\"#\"+jqGridId + \" tbody tr\").each(function(){\n\t\t\t\tvar td = this.cells[i];\n\t\t\t\t$(td).find(\".ui-inline-edit\").attr(\"title\",nav.edittitle);\n\t\t\t\t$(td).find(\".ui-inline-del\").attr(\"title\",nav.deltitle);\n\t\t\t\t$(td).find(\".ui-inline-save\").attr(\"title\",nav.savetitle);\n\t\t\t\t$(td).find(\".ui-inline-cancel\").attr(\"title\",nav.canceltitle);\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id);\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id+\"_data\");\n\t\t} catch (e) {}\n\t},\n\tjqGridImport : function(jqGridId, o) {\n\t\to = $.extend({\n\t\t\timptype : \"xml\", // xml, json, xmlstring, jsonstring\n\t\t\timpstring: \"\",\n\t\t\timpurl: \"\",\n\t\t\tmtype: \"GET\",\n\t\t\timpData : {},\n\t\t\txmlGrid :{\n\t\t\t\tconfig : \"root>grid\",\n\t\t\t\tdata: \"root>rows\"\n\t\t\t},\n\t\t\tjsonGrid :{\n\t\t\t\tconfig : \"grid\",\n\t\t\t\tdata: \"data\"\n\t\t\t},\n\t\t\tajaxOptions :{}\n\t\t}, o || {});\n\t\tvar $t = (jqGridId.indexOf(\"#\") === 0 ? \"\": \"#\") + $.jgrid.jqID(jqGridId);\n\t\tvar xmlConvert = function (xml,o) {\n\t\t\tvar cnfg = $(o.xmlGrid.config,xml)[0];\n\t\t\tvar xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key;\n\t\t\tif(jqGridUtils.xmlToJSON ) {\n\t\t\t\tjstr = jqGridUtils.xmlToJSON( cnfg );\n\t\t\t\t//jstr = $.jgrid.parse(jstr);\n\t\t\t\tfor(key in jstr) {\n\t\t\t\t\tif(jstr.hasOwnProperty(key)) {\n\t\t\t\t\t\tjstr1=jstr[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(xmldata) {\n\t\t\t\t// save the datatype\n\t\t\t\t\tvar svdatatype = jstr.grid.datatype;\n\t\t\t\t\tjstr.grid.datatype = 'xmlstring';\n\t\t\t\t\tjstr.grid.datastr = xml;\n\t\t\t\t\t$($t).jqGrid( jstr1 ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() { $($t).jqGrid( jstr1 ); },0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\talert(\"xml2json or parse are not present\");\n\t\t\t}\n\t\t};\n\t\tvar jsonConvert = function (jsonstr,o){\n\t\t\tif (jsonstr && typeof jsonstr === 'string') {\n\t\t\t\tvar json = jqGridUtils.parse(jsonstr);\n\t\t\t\tvar gprm = json[o.jsonGrid.config];\n\t\t\t\tvar jdata = json[o.jsonGrid.data];\n\t\t\t\tif(jdata) {\n\t\t\t\t\tvar svdatatype = gprm.datatype;\n\t\t\t\t\tgprm.datatype = 'jsonstring';\n\t\t\t\t\tgprm.datastr = jdata;\n\t\t\t\t\t$($t).jqGrid( gprm ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid( gprm );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tswitch (o.imptype){\n\t\t\tcase 'xml':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"xml\",\n\t\t\t\t\tcomplete: function(xml,stat) {\n\t\t\t\t\t\tif(stat === 'success') {\n\t\t\t\t\t\t\txmlConvert(xml.responseXML,o);\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xml, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(xml);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\txml=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions));\n\t\t\t\tbreak;\n\t\t\tcase 'xmlstring' :\n\t\t\t\t// we need to make just the conversion and use the same code as xml\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tvar xmld = $.parseXML(o.impstring);\n\t\t\t\t\tif(xmld) {\n\t\t\t\t\t\txmlConvert(xmld,o);\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xmld, o]);\n\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\to.importComplete(xmld);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'json':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"json\",\n\t\t\t\t\tcomplete: function(json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tjsonConvert(json.responseText,o );\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [json, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(json);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (ee){}\n\t\t\t\t\t\tjson=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions ));\n\t\t\t\tbreak;\n\t\t\tcase 'jsonstring' :\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tjsonConvert(o.impstring,o );\n\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [o.impstring, o]);\n\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\to.importComplete(o.impstring);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n});\n\t$.jgrid.extend({\n\t\tjqGridExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"xmlstring\",\n\t\t\t\troot: \"grid\",\n\t\t\t\tident: \"\\t\",\n\t\t\t\taddOptions : {}\n\t\t\t}, o || {});\n\t\t\tvar ret = null;\n\t\t\tthis.each(function () {\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar key, gprm = $.extend(true, {}, $(this).jqGrid(\"getGridParam\"), o.addOptions);\n\t\t\t\t// we need to check for:\n\t\t\t\t// 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames\n\t\t\t\tif(gprm.rownumbers) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.multiselect) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.subGrid) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tgprm.knv = null;\n\t\t\t\tswitch (o.exptype) {\n\t\t\t\t\tcase 'xmlstring' :\n\t\t\t\t\t\tret = \"<\"+o.root+\">\"+ jqGridUtils.jsonToXML( gprm, {xmlDecl:\"\"} )+\"</\"+o.root+\">\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'jsonstring' :\n\t\t\t\t\t\tret =  jqGridUtils.stringify( gprm );\n\t\t\t\t\t\tif(o.root) { ret = \"{\"+ o.root +\":\"+ret+\"}\"; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ret;\n\t\t},\n\t\texcelExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"remote\",\n\t\t\t\turl : null,\n\t\t\t\toper: \"oper\",\n\t\t\t\ttag: \"excel\",\n\t\t\t\tbeforeExport : null,\n\t\t\t\texporthidden : false,\n\t\t\t\texportgrouping: false,\n\t\t\t\texportOptions : {}\n\t\t\t}, o || {});\n\t\t\treturn this.each(function(){\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar url;\n\t\t\t\tif(o.exptype === \"remote\") {\n\t\t\t\t\tvar pdata = $.extend({},this.p.postData), expg;\n\t\t\t\t\tpdata[o.oper] = o.tag;\n\t\t\t\t\tif($.isFunction(o.beforeExport)) {\n\t\t\t\t\t\tvar result = o.beforeExport.call(this, pdata );\n\t\t\t\t\t\tif( $.isPlainObject( result ) ) {\n\t\t\t\t\t\t\tpdata = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exporthidden) {\n\t\t\t\t\t\tvar cm = this.p.colModel, i, len = cm.length, newm=[];\n\t\t\t\t\t\tfor(i=0; i< len; i++) {\n\t\t\t\t\t\t\tif(cm[i].hidden === undefined) { cm[i].hidden = false; }\n\t\t\t\t\t\t\tnewm.push({name:cm[i].name, hidden:cm[i].hidden});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar newm1 = JSON.stringify( newm );\n\t\t\t\t\t\tif(typeof newm1 === 'string' ) {\n\t\t\t\t\t\t\tpdata['colModel'] = newm1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exportgrouping) {\n\t\t\t\t\t\texpg = JSON.stringify( this.p.groupingView );\n\t\t\t\t\t\tif(typeof expg === 'string' ) {\n\t\t\t\t\t\t\tpdata['groupingView'] = expg;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar params = jQuery.param(pdata);\n\t\t\t\t\tif(o.url.indexOf(\"?\") !== -1) { url = o.url+\"&\"+params; }\n\t\t\t\t\telse { url = o.url+\"?\"+params; }\n\t\t\t\t\twindow.location = url;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n    });\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.inlinedit.js",
    "content": "/*jshint eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.common\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.inlineEdit = $.jgrid.inlineEdit || {};\n$.jgrid.extend({\n//Editing\n\teditRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar o={}, args = $.makeArray(arguments).slice(1);\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif (keys !== undefined) { o.keys = keys; }\n\t\t\tif ($.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; }\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t\t// last two not as param, but as object (sorry)\n\t\t\t//if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; }\n\t\t\t//if (mtype !== undefined) { o.mtype = mtype || \"POST\"; }\t\t\t\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tkeys : false,\n\t\t\tkeyevent : \"keydown\",\n\t\t\toneditfunc: null,\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tfocusField : true\n\t\t}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer,\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".inlinedit\",'inputClass', true);\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif( ind === false ) {return;}\n\t\t\t$t.p.beforeAction = true;\n\t\t\tbfer = $.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) :  undefined;\n\t\t\tif( bfer === undefined ) {\n\t\t\t\tbfer = true;\n\t\t\t}\n\t\t\tif(!bfer) { \n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\teditable = $(ind).attr(\"editable\") || \"0\";\n\t\t\tif (editable === \"0\" && !$(ind).hasClass(\"not-editable-row\")) {\n\t\t\t\tcm = $t.p.colModel;\n\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\tvar treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn;\n\t\t\t\t\tif(treeg) { tmp = $(\"span:first\",this).html();}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\ttmp =  ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\t\t\tsvr[nm]=tmp;\n\t\t\t\t\t\tif(cm[i].editable===true) {\n\t\t\t\t\t\t\tif(focus===null) { focus = i; }\n\t\t\t\t\t\t\tif (treeg) { $(\"span:first\",this).html(\"\"); }\n\t\t\t\t\t\t\telse { $(this).html(\"\"); }\n\t\t\t\t\t\t\tvar opt = $.extend({},cm[i].editoptions || {},{id:rowid+\"_\"+nm,name:nm,rowId:rowid, oper:'edit'});\n\t\t\t\t\t\t\tif(!cm[i].edittype) { cm[i].edittype = \"text\"; }\n\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t\t$(elc).addClass(\"editable inline-edit-cell\");\n\t\t\t\t\t\t\tif( $.inArray(cm[i].edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t\t$(elc).addClass( inpclass );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(treeg) { $(\"span:first\",this).append(elc); }\n\t\t\t\t\t\t\telse { $(this).append(elc); }\n\t\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\t\t//Again IE\n\t\t\t\t\t\t\tif(cm[i].edittype === \"select\" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true  && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) {\n\t\t\t\t\t\t\t\t$(elc).width($(elc).width());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcnt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt > 0) {\n\t\t\t\t\tsvr.id = rowid; $t.p.savedRow.push(svr);\n\t\t\t\t\t$(ind).attr(\"editable\",\"1\");\n\t\t\t\t\tif(o.focusField ) {\n\t\t\t\t\t\tif(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) {\n\t\t\t\t\t\t\tfocus = o.focusField;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetTimeout(function(){ \n\t\t\t\t\t\t\tvar fe = $(\"td:eq(\"+focus+\") :input:visible\",ind).not(\":disabled\"); \n\t\t\t\t\t\t\tif(fe.length > 0) {\n\t\t\t\t\t\t\t\tfe.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},0);\n\t\t\t\t\t}\n\t\t\t\t\tif(o.keys===true) {\n\t\t\t\t\t\t$(ind).on( o.keyevent ,function(e) {\n\t\t\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t} catch (eer1) {}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (e.keyCode === 13) {\n\t\t\t\t\t\t\t\tvar ta = e.target;\n\t\t\t\t\t\t\t\tif(ta.tagName === 'TEXTAREA') { return true; }\n\t\t\t\t\t\t\t\tif( $($t).jqGrid(\"saveRow\", rowid, o ) ) {\n\t\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t\t} catch (eer2) {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineEditRow\", [rowid, o]);\n\t\t\t\t\tif( $.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsaveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o = {}, $t = this[0];\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tsaveui : \"enable\",\n\t\t\tsavetext : $.jgrid.getRegional($t,'defaults.savetext')\n\t\t}, $.jgrid.inlineEdit, o );\n\t\t// End compatible\n\n\t\tvar success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false,\n\t\terror = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) );\n\t\tif (!$t.grid ) { return success; }\n\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\tif(ind === false) {return success;}\n\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\tedit =$.jgrid.getRegional($t, 'edit'),\n\t\tbfsr = $.isFunction( o.beforeSaveRow ) ?\to.beforeSaveRow.call($t,o, rowid) :  undefined;\n\t\tif( bfsr === undefined ) {\n\t\t\tbfsr = true;\n\t\t}\n\t\tif(!bfsr) { return; }\n\t\teditable = $(ind).attr(\"editable\");\n\t\to.url = o.url || $t.p.editurl;\n\t\tif (editable===\"1\") {\n\t\t\tvar cm, index, elem;\n\t\t\t$('td[role=\"gridcell\"]',ind).each(function(i) {\n\t\t\t\tcm = $t.p.colModel[i];\n\t\t\t\tnm = cm.name;\n\t\t\t\telem = \"\";\n\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn' && !$(this).hasClass('not-editable-cell')) {\n\t\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\tvar cbv = [\"Yes\",\"No\"];\n\t\t\t\t\t\t\tif(cm.editoptions ) {\n\t\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmp[nm]=  $(\"input\",this).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\t\telem = $(\"input\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\tcase 'password':\n\t\t\t\t\t\tcase 'textarea':\n\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\ttmp[nm]=$(\"input, textarea\",this).val();\n\t\t\t\t\t\t\telem = $(\"input, textarea\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'select':\n\t\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\t\ttmp[nm] = $(\"select option:selected\",this).val();\n\t\t\t\t\t\t\t\ttmp2[nm] = $(\"select option:selected\", this).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar sel = $(\"select\",this), selectedText = [];\n\t\t\t\t\t\t\t\ttmp[nm] = $(sel).val();\n\t\t\t\t\t\t\t\tif(tmp[nm]) { tmp[nm]= tmp[nm].join(\",\"); } else { tmp[nm] =\"\"; }\n\t\t\t\t\t\t\t\t$(\"select option:selected\",this).each(\n\t\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\ttmp2[nm] = selectedText.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(cm.formatter && cm.formatter === 'select') { tmp2={}; }\n\t\t\t\t\t\t\telem = $(\"select\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\ttmp[nm] = cm.editoptions.custom_value.call($t, $(\".customelement\",this),'get');\n\t\t\t\t\t\t\t\t\tif (tmp[nm] === undefined) { throw \"e2\"; }\n\t\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcv = $.jgrid.checkValues.call($t,tmp[nm],i);\n\t\t\t\t\tif(cv[0] === false) {\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }\n\t\t\t\t\tif(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(tmp[nm] === \"\") {\n\t\t\t\t\t\t\ttmp3[nm] = 'null';\n\t\t\t\t\t\t\tnullIfEmpty = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (cv[0] === false){\n\t\t\t\ttry {\n\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t$t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar tr = $($t).jqGrid('getGridRowById', rowid), \n\t\t\t\t\t\t\tpositions = $.jgrid.findPos(tr);\n\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{\n\t\t\t\t\t\t\tleft:positions[0],\n\t\t\t\t\t\t\ttop:positions[1]+$(tr).outerHeight(), \n\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\tonClose: function(){\n\t\t\t\t\t\t\t\tif(index >= 0 ) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+rowid+\"_\" +$t.p.colModel[index].name).focus();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\talert(cv[1]);\n\t\t\t\t}\n\t\t\t\treturn success;\n\t\t\t}\n\t\t\tvar idname, opers = $t.p.prmNames, oldRowId = rowid;\n\t\t\tif ($t.p.keyName === false) {\n\t\t\t\tidname = opers.id;\n\t\t\t} else {\n\t\t\t\tidname = $t.p.keyName;\n\t\t\t}\n\t\t\tif(tmp) {\n\t\t\t\ttmp[opers.oper] = opers.editoper;\n\t\t\t\tif (tmp[idname] === undefined || tmp[idname]===\"\") {\n\t\t\t\t\ttmp[idname] = rowid;\n\t\t\t\t} else if (ind.id !== $t.p.idPrefix + tmp[idname]) {\n\t\t\t\t\t// rename rowid\n\t\t\t\t\tvar oldid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\tif ($t.p._index[oldid] !== undefined) {\n\t\t\t\t\t\t$t.p._index[tmp[idname]] = $t.p._index[oldid];\n\t\t\t\t\t\tdelete $t.p._index[oldid];\n\t\t\t\t\t}\n\t\t\t\t\trowid = $t.p.idPrefix + tmp[idname];\n\t\t\t\t\t$(ind).attr(\"id\", rowid);\n\t\t\t\t\tif ($t.p.selrow === oldRowId) {\n\t\t\t\t\t\t$t.p.selrow = rowid;\n\t\t\t\t\t}\n\t\t\t\t\tif ($.isArray($t.p.selarrrow)) {\n\t\t\t\t\t\tvar i = $.inArray(oldRowId, $t.p.selarrrow);\n\t\t\t\t\t\tif (i>=0) {\n\t\t\t\t\t\t\t$t.p.selarrrow[i] = rowid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ($t.p.multiselect) {\n\t\t\t\t\t\tvar newCboxId = \"jqg_\" + $t.p.id + \"_\" + rowid;\n\t\t\t\t\t\t$(\"input.cbox\",ind)\n\t\t\t\t\t\t\t.attr(\"id\", newCboxId)\n\t\t\t\t\t\t\t.attr(\"name\", newCboxId);\n\t\t\t\t\t}\n\t\t\t\t\t// TODO: to test the case of frozen columns\n\t\t\t\t}\n\t\t\t\tif($t.p.inlineData === undefined) { $t.p.inlineData ={}; }\n\t\t\t\ttmp = $.extend({},tmp,$t.p.inlineData,o.extraparam);\n\t\t\t}\n\t\t\tif (o.url === 'clientArray') {\n\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tvar k, resp = $($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}\n\t\t\t\t}\n\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, resp, tmp, o]);\n\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }\n\t\t\t\tsuccess = true;\n\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t} else {\n\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : o.saveui, htmlcontent: o.savetext });\n\t\t\t\ttmp3 = $.extend({},tmp,tmp3);\n\t\t\t\ttmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.url,\n\t\t\t\t\tdata: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3,\n\t\t\t\t\ttype: o.mtype,\n\t\t\t\t\tasync : false, //?!?\n\t\t\t\t\tcomplete: function(res,stat){\n\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : o.saveui, htmlcontent: o.savetext});\n\t\t\t\t\t\tif (stat === \"success\"){\n\t\t\t\t\t\t\tvar ret = true, sucret, k;\n\t\t\t\t\t\t\tsucret = $($t).triggerHandler(\"jqGridInlineSuccessSaveRow\", [res, rowid, o]);\n\t\t\t\t\t\t\tif (!$.isArray(sucret)) {sucret = [true, tmp3];}\n\t\t\t\t\t\t\tif (sucret[0] && $.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);}\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif($.isArray(sucret)) {\n\t\t\t\t\t\t\t\t// expect array - status, data, rowid\n\t\t\t\t\t\t\t\tret = sucret[0];\n\t\t\t\t\t\t\t\ttmp = sucret[1] || tmp;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = sucret;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (ret===true) {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(nullIfEmpty) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function( n ){\n\t\t\t\t\t\t\t\t\t\tif(tmp[n] === 'null' ) {\n\t\t\t\t\t\t\t\t\t\t\ttmp[n] = '';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\t\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, res, tmp, o]);\n\t\t\t\t\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); }\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, null, o]);\n\t\t\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror:function(res,stat,err){\n\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, err, o]);\n\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar rT = res.responseText || res.statusText;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,'<div class=\"'+error+'\">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\t\talert(rT);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));\n\t\t\t}\n\t\t}\n\t\treturn success;\n\t},\n\trestoreRow : function(rowid, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o={};\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr=-1, ind, ares={}, k;\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(ind === false) {return;}\n\t\t\tvar bfcr = $.isFunction( o.beforeCancelRow ) ?\to.beforeCancelRow.call($t, o, rowid) :  undefined;\n\t\t\tif( bfcr === undefined ) {\n\t\t\t\tbfcr = true;\n\t\t\t}\n\t\t\tif(!bfcr) { return; }\n\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t}\n\t\t\tif(fr >= 0) {\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",\"#\"+$.jgrid.jqID(ind.id)).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\tif(this.editable === true && $t.p.savedRow[fr].hasOwnProperty(this.name)) {\n\t\t\t\t\t\tares[this.name] = $t.p.savedRow[fr][this.name];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,ares);\n\t\t\t\t$(ind).attr(\"editable\",\"0\").off(\"keydown\");\n\t\t\t\t$t.p.savedRow.splice(fr,1);\n\t\t\t\tif($(\"#\"+$.jgrid.jqID(rowid), \"#\"+$.jgrid.jqID($t.p.id)).hasClass(\"jqgrid-new-row\")){\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",rowid);\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridInlineAfterRestoreRow\", [rowid]);\n\t\t\tif ($.isFunction(o.afterrestorefunc))\n\t\t\t{\n\t\t\t\to.afterrestorefunc.call($t, rowid);\n\t\t\t}\n\t\t});\n\t},\n\taddRow : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\trowID : null,\n\t\t\tinitdata : {},\n\t\t\tposition :\"first\",\n\t\t\tuseDefValues : true,\n\t\t\tuseFormatter : false,\n\t\t\taddRowParams : {extraparam:{}}\n\t\t},p  || {});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar $t = this;\n\t\t\t$t.p.beforeAction = true;\n\t\t\tvar bfar = $.isFunction( p.beforeAddRow ) ?\tp.beforeAddRow.call($t,p.addRowParams) :  undefined;\n\t\t\tif( bfar === undefined ) {\n\t\t\t\tbfar = true;\n\t\t\t}\n\t\t\tif(!bfar) {\n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\tp.rowID = $.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId());\n\t\t\tif(p.useDefValues === true) {\n\t\t\t\t$($t.p.colModel).each(function(){\n\t\t\t\t\tif( this.editoptions && this.editoptions.defaultValue ) {\n\t\t\t\t\t\tvar opt = this.editoptions.defaultValue,\n\t\t\t\t\t\ttmp = $.isFunction(opt) ? opt.call($t) : opt;\n\t\t\t\t\t\tp.initdata[this.name] = tmp;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$($t).jqGrid('addRowData', p.rowID, p.initdata, p.position);\n\t\t\tp.rowID = $t.p.idPrefix + p.rowID;\n\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID), \"#\"+$.jgrid.jqID($t.p.id)).addClass(\"jqgrid-new-row\");\n\t\t\tif(p.useFormatter) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID)+\" .ui-inline-edit\", \"#\"+$.jgrid.jqID($t.p.id)).click();\n\t\t\t} else {\n\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\toper = opers.oper;\n\t\t\t\tp.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t$($t).jqGrid('editRow', p.rowID, p.addRowParams);\n\t\t\t\t$($t).jqGrid('setSelection', p.rowID);\n\t\t\t}\n\t\t});\n\t},\n\tinlineNav : function (elem, o) {\n\t\tvar $t = this[0],\n\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\ticons = $.jgrid.styleUI[$t.p.styleUI].inlinedit;\n\t\to = $.extend(true,{\n\t\t\tedit: true,\n\t\t\tediticon: icons.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon:icons.icon_add_nav,\n\t\t\tsave: true,\n\t\t\tsaveicon: icons.icon_save_nav,\n\t\t\tcancel: true,\n\t\t\tcancelicon: icons.icon_cancel_nav,\n\t\t\taddParams : {addRowParams: {extraparam: {}}},\n\t\t\teditParams : {},\n\t\t\trestoreAfterSelect : true,\n\t\t\tsaveAfterSelect : false\n\t\t}, regional, o ||{});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid  || this.p.inlineNav) { return; }\n\t\t\tvar gID = $.jgrid.jqID($t.p.id),\n\t\t\tdisabled = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) );\n\t\t\t// check to see if navgrid is started, if not call it with all false parameters.\n\t\t\tif(!$t.p.navGrid) {\n\t\t\t\t$($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false});\n\t\t\t}\n\t\t\tif(!$($t).data('inlineNav')) {\n\t\t\t\t$($t).data('inlineNav',o);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\n\t\t\t$t.p.inlineNav = true;\n\t\t\t// detect the formatactions column\n\t\t\tif(o.addParams.useFormatter === true) {\n\t\t\t\tvar cm = $t.p.colModel,i;\n\t\t\t\tfor (i = 0; i<cm.length; i++) {\n\t\t\t\t\tif(cm[i].formatter && cm[i].formatter === \"actions\" ) {\n\t\t\t\t\t\tif(cm[i].formatoptions) {\n\t\t\t\t\t\t\tvar defaults =  {\n\t\t\t\t\t\t\t\tkeys:false,\n\t\t\t\t\t\t\t\tonEdit : null,\n\t\t\t\t\t\t\t\tonSuccess: null,\n\t\t\t\t\t\t\t\tafterSave:null,\n\t\t\t\t\t\t\t\tonError: null,\n\t\t\t\t\t\t\t\tafterRestore: null,\n\t\t\t\t\t\t\t\textraparam: {},\n\t\t\t\t\t\t\t\turl: null\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tap = $.extend( defaults, cm[i].formatoptions );\n\t\t\t\t\t\t\to.addParams.addRowParams = {\n\t\t\t\t\t\t\t\t\"keys\" : ap.keys,\n\t\t\t\t\t\t\t\t\"oneditfunc\" : ap.onEdit,\n\t\t\t\t\t\t\t\t\"successfunc\" : ap.onSuccess,\n\t\t\t\t\t\t\t\t\"url\" : ap.url,\n\t\t\t\t\t\t\t\t\"extraparam\" : ap.extraparam,\n\t\t\t\t\t\t\t\t\"aftersavefunc\" : ap.afterSave,\n\t\t\t\t\t\t\t\t\"errorfunc\": ap.onError,\n\t\t\t\t\t\t\t\t\"afterrestorefunc\" : ap.afterRestore\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.add) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.addtext,\n\t\t\t\t\ttitle : o.addtitle,\n\t\t\t\t\tbuttonicon : o.addicon,\n\t\t\t\t\tid : $t.p.id+\"_iladd\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('addRow', o.addParams);\n\t\t\t\t\t\tif(!o.addParams.useFormatter && $t.p.beforeAction) {\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.edit) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.edittext,\n\t\t\t\t\ttitle : o.edittitle,\n\t\t\t\t\tbuttonicon : o.editicon,\n\t\t\t\t\tid : $t.p.id+\"_iledit\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $($t).jqGrid('getGridParam','selrow');\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('editRow', sr, o.editParams);\n\t\t\t\t\t\t\tif($t.p.beforeAction) {\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.save) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.savetext || '',\n\t\t\t\t\ttitle : o.savetitle || 'Save row',\n\t\t\t\t\tbuttonicon : o.saveicon,\n\t\t\t\t\tid : $t.p.id+\"_ilsave\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\t\t\t\toper = opers.oper, tmpParams = o.editParams;\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\to.addParams.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t\t\t\t\ttmpParams = o.addParams.addRowParams;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(!o.editParams.extraparam) {\n\t\t\t\t\t\t\t\t\to.editParams.extraparam = {};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\to.editParams.extraparam[oper] = opers.editoper;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif( $($t).jqGrid('saveRow', sr, tmpParams) ) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.cancel) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.canceltext || '',\n\t\t\t\t\ttitle : o.canceltitle || 'Cancel row editing',\n\t\t\t\t\tbuttonicon : o.cancelicon,\n\t\t\t\t\tid : $t.p.id+\"_ilcancel\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id, cancelPrm = o.editParams;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\tcancelPrm = o.addParams.addRowParams;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', sr, cancelPrm);\n\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod\",{gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.restoreAfterSelect === true || o.saveAfterSelect === true) {\n\t\t\t\t$($t).on(\"jqGridBeforeSelectRow.inlineNav\", function( event, id ) {\n\t\t\t\t\tif($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) {\n\t\t\t\t\t\tif($t.p.selrow === o.addParams.rowID ) {\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData', $t.p.selrow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(o.restoreAfterSelect === true) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid('saveRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t});\n\t},\n\tshowAddEditButtons : function()  {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar gID = $.jgrid.jqID(this.p.id),\n\t\t\tdisabled = $.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );\n\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iladd\").removeClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iledit\").removeClass( disabled );\n\t\t});\n\t}\n//end inline edit\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.jqueryui.js",
    "content": "/*jshint evil:true, eqeqeq:false, eqnull:true, devel:true */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"jquery-ui/dialog\",\n\t\t\t\"jquery-ui/draggable\",\n\t\t\t\"jquery-ui/droppable\",\n\t\t\t\"jquery-ui/resizable\",\n\t\t\t\"jquery-ui/sortable\",\n\t\t\t\"./addons/ui.multiselect\"\t\t\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {/*\n**\n * jqGrid addons using jQuery UI \n * Author: Mark Williams\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n * depends on jQuery UI \n**/\n\"use strict\";\n//module begin\nif ($.jgrid.msie() && $.jgrid.msiever()===8) {\n\t$.expr[\":\"].hidden = function(elem) {\n\t\treturn elem.offsetWidth === 0 || elem.offsetHeight === 0 ||\n\t\t\telem.style.display === \"none\";\n\t};\n}\n// requiere load multiselect before grid\n$.jgrid._multiselect = false;\nif($.ui) {\n\tif ($.ui.multiselect ) {\n\t\tif($.ui.multiselect.prototype._setSelected) {\n\t\t\tvar setSelected = $.ui.multiselect.prototype._setSelected;\n\t\t\t$.ui.multiselect.prototype._setSelected = function(item,selected) {\n\t\t\t\tvar ret = setSelected.call(this,item,selected);\n\t\t\t\tif (selected && this.selectedList) {\n\t\t\t\t\tvar elt = this.element;\n\t\t\t\t\tthis.selectedList.find('li').each(function() {\n\t\t\t\t\t\tif ($(this).data('optionLink')) {\n\t\t\t\t\t\t\t$(this).data('optionLink').remove().appendTo(elt);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t};\n\t\t}\n\t\tif($.ui.multiselect.prototype.destroy) {\n\t\t\t$.ui.multiselect.prototype.destroy = function() {\n\t\t\t\tthis.element.show();\n\t\t\t\tthis.container.remove();\n\t\t\t\tif ($.Widget === undefined) {\n\t\t\t\t\t$.widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t} else {\n\t\t\t\t\t$.Widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t$.jgrid._multiselect = true;\n\t}\n}\n        \n$.jgrid.extend({\n\tsortableColumns : function (tblrow)\n\t{\n\t\treturn this.each(function (){\n\t\t\tvar ts = this, tid= $.jgrid.jqID( ts.p.id );\n\t\t\tfunction start() {ts.p.disableClick = true;}\n\t\t\tvar sortable_opts = {\n\t\t\t\t\"tolerance\" : \"pointer\",\n\t\t\t\t\"axis\" : \"x\",\n\t\t\t\t\"scrollSensitivity\": \"1\",\n\t\t\t\t\"items\": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)',\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\telement: function(item) {\n\t\t\t\t\t\tvar el = $(document.createElement(item[0].nodeName))\n\t\t\t\t\t\t.addClass(item[0].className+\" ui-sortable-placeholder ui-state-highlight\")\n\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\")[0];\n\t\t\t\t\t\treturn el;\n\t\t\t\t\t},\n\t\t\t\t\tupdate: function(self, p) {\n\t\t\t\t\t\tp.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));\n\t\t\t\t\t\tp.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"update\": function(event, ui) {\n\t\t\t\t\tvar p = $(ui.item).parent(),\n\t\t\t\t\tth = $(\">th\", p),\n\t\t\t\t\tcolModel = ts.p.colModel,\n\t\t\t\t\tcmMap = {}, tid= ts.p.id+\"_\";\n\t\t\t\t\t$.each(colModel, function(i) { cmMap[this.name]=i; });\n\t\t\t\t\tvar permutation = [];\n\t\t\t\t\tth.each(function() {\n\t\t\t\t\t\tvar id = $(\">div\", this).get(0).id.replace(/^jqgh_/, \"\").replace(tid,\"\");\n\t\t\t\t\t\t\tif (cmMap.hasOwnProperty(id)) {\n\t\t\t\t\t\t\t\tpermutation.push(cmMap[id]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\",permutation, true, true);\n\t\t\t\t\tif ($.isFunction(ts.p.sortable.update)) {\n\t\t\t\t\t\tts.p.sortable.update(permutation);\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(function(){ts.p.disableClick=false;}, 50);\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (ts.p.sortable.options) {\n\t\t\t\t$.extend(sortable_opts, ts.p.sortable.options);\n\t\t\t} else if ($.isFunction(ts.p.sortable)) {\n\t\t\t\tts.p.sortable = { \"update\" : ts.p.sortable };\n\t\t\t}\n\t\t\tif (sortable_opts.start) {\n\t\t\t\tvar s = sortable_opts.start;\n\t\t\t\tsortable_opts.start = function(e,ui) {\n\t\t\t\t\tstart();\n\t\t\t\t\ts.call(this,e,ui);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsortable_opts.start = start;\n\t\t\t}\n\t\t\tif (ts.p.sortable.exclude) {\n\t\t\t\tsortable_opts.items += \":not(\"+ts.p.sortable.exclude+\")\";\n\t\t\t}\n\t\t\tvar $e = tblrow.sortable(sortable_opts), dataObj = $e.data(\"sortable\") || $e.data(\"uiSortable\");\n\t\t\tif (dataObj != null) {\n\t\t\t\tdataObj.data(\"sortable\").floating = true;\n\t\t\t}\n\t\t});\n\t},\n    columnChooser : function(opts) {\n\t\tvar self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight,\n\t\t\tcolModel = self.jqGrid(\"getGridParam\", \"colModel\"),\n\t\t\tcolNames = self.jqGrid(\"getGridParam\", \"colNames\"),\n\t\t\tgetMultiselectWidgetData = function ($elem) {\n\t\t\t\treturn ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) ||\n\t\t\t\t\t$elem.data(\"ui-multiselect\") || $elem.data(\"multiselect\");\n\t\t\t},\n\t\t\tregional =  $.jgrid.getRegional(this[0], 'col');\n\n\t\tif ($(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id)).length) { return; }\n\t\tselector = $('<div id=\"colchooser_'+self[0].p.id+'\" style=\"position:relative;overflow:hidden\"><div><select multiple=\"multiple\"></select></div></div>');\n\t\tselect = $('select', selector);\n\n\t\tfunction insert(perm,i,v) {\n\t\t\tvar a, b;\n\t\t\tif(i>=0){\n\t\t\t\ta = perm.slice();\n\t\t\t\tb = a.splice(i,Math.max(perm.length-i,i));\n\t\t\t\tif(i>perm.length) { i = perm.length; }\n\t\t\t\ta[i] = v;\n\t\t\t\treturn a.concat(b);\n\t\t\t}\n\t\t\treturn perm;\n\t\t}\n\t\tfunction call(fn, obj) {\n\t\t\tif (!fn) { return; }\n\t\t\tif (typeof fn === 'string') {\n\t\t\t\tif ($.fn[fn]) {\n\t\t\t\t\t$.fn[fn].apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t\t}\n\t\t\t} else if ($.isFunction(fn)) {\n\t\t\t\tfn.apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t}\n\t\t}\n\n\t\topts = $.extend({\n\t\t\twidth : 400,\n\t\t\theight : 240,\n\t\t\tclassname : null,\n\t\t\tdone : function(perm) { if (perm) { self.jqGrid(\"remapColumns\", perm, true); } },\n\t\t\t/* msel is either the name of a ui widget class that\n\t\t\t   extends a multiselect, or a function that supports\n\t\t\t   creating a multiselect object (with no argument,\n\t\t\t   or when passed an object), and destroying it (when\n\t\t\t   passed the string \"destroy\"). */\n\t\t\tmsel : \"multiselect\",\n\t\t\t/* \"msel_opts\" : {}, */\n\n\t\t\t/* dlog is either the name of a ui widget class that \n\t\t\t   behaves in a dialog-like way, or a function, that\n\t\t\t   supports creating a dialog (when passed dlog_opts)\n\t\t\t   or destroying a dialog (when passed the string\n\t\t\t   \"destroy\")\n\t\t\t   */\n\t\t\tdlog : \"dialog\",\n\t\t\tdialog_opts : {\n\t\t\t\tminWidth: 470,\n\t\t\t\tdialogClass: \"ui-jqdialog\"\n\t\t\t},\n\t\t\t/* dlog_opts is either an option object to be passed \n\t\t\t   to \"dlog\", or (more likely) a function that creates\n\t\t\t   the options object.\n\t\t\t   The default produces a suitable options object for\n\t\t\t   ui.dialog */\n\t\t\tdlog_opts : function(options) {\n\t\t\t\tvar buttons = {};\n\t\t\t\tbuttons[options.bSubmit] = function() {\n\t\t\t\t\toptions.apply_perm();\n\t\t\t\t\toptions.cleanup(false);\n\t\t\t\t};\n\t\t\t\tbuttons[options.bCancel] = function() {\n\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t};\n\t\t\t\treturn $.extend(true, {\n\t\t\t\t\tbuttons: buttons,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t\t},\n\t\t\t\t\tmodal: options.modal || false,\n\t\t\t\t\tresizable: options.resizable || true,\n\t\t\t\t\twidth: options.width + 70,\n\t\t\t\t\tresize: function () {\n\t\t\t\t\t\tvar widgetData = getMultiselectWidgetData(select),\n\t\t\t\t\t\t\t$thisDialogContent = widgetData.container.closest(\".ui-dialog-content\");\n\n\t\t\t\t\t\tif ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === \"object\") {\n\t\t\t\t\t\t\t$thisDialogContent[0].style.width = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$thisDialogContent.css(\"width\", \"\"); // or just remove width style\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twidgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() - 1, 1));\n\t\t\t\t\t\twidgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() - 1, 1));\n\t\t\t\t\t}\n\t\t\t\t}, options.dialog_opts || {});\n\t\t\t},\n\t\t\t/* Function to get the permutation array, and pass it to the\n\t\t\t   \"done\" function */\n\t\t\tapply_perm : function() {\n\t\t\t\tvar perm = [];\n\t\t\t\t$('option',select).each(function() {\n\t\t\t\t\tif ($(this).is(\":selected\")) {\n\t\t\t\t\t\tself.jqGrid(\"showCol\", colModel[this.value].name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.jqGrid(\"hideCol\", colModel[this.value].name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t//fixedCols.slice(0);\n\t\t\t\t$('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });\n\t\t\t\t$.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });\n\t\t\t\t$.each(colMap, function() {\n\t\t\t\t\tvar ti = parseInt(this,10);\n\t\t\t\t\tperm = insert(perm,ti,ti);\n\t\t\t\t});\n\t\t\t\tif (opts.done) {\n\t\t\t\t\topts.done.call(self, perm);\n\t\t\t\t}\n\t\t\t\tself.jqGrid(\"setGridWidth\", self[0].p.width, self[0].p.shrinkToFit);\n\t\t\t},\n\t\t\t/* Function to cleanup the dialog, and select. Also calls the\n\t\t\t   done function with no permutation (to indicate that the\n\t\t\t   columnChooser was aborted */\n\t\t\tcleanup : function(calldone) {\n\t\t\t\tcall(opts.dlog, selector, 'destroy');\n\t\t\t\tcall(opts.msel, select, 'destroy');\n\t\t\t\tselector.remove();\n\t\t\t\tif (calldone && opts.done) {\n\t\t\t\t\topts.done.call(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tmsel_opts : {}\n\t\t}, regional, opts || {} );\n\t\tif($.ui) {\n\t\t\tif ($.ui.multiselect && $.ui.multiselect.defaults) {\n\t\t\t\tif (!$.jgrid._multiselect) {\n\t\t\t\t\t// should be in language file\n\t\t\t\t\talert(\"Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ??? the next line uses $.ui.multiselect.defaults which will be typically undefined\n\t\t\t\topts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts);\n\t\t\t}\n\t\t}\n\t\tif (opts.caption) {\n\t\t\tselector.attr(\"title\", opts.caption);\n\t\t}\n\t\tif (opts.classname) {\n\t\t\tselector.addClass(opts.classname);\n\t\t\tselect.addClass(opts.classname);\n\t\t}\n\t\tif (opts.width) {\n\t\t\t$(\">div\",selector).css({width: opts.width,margin:\"0 auto\"});\n\t\t\tselect.css(\"width\", opts.width);\n\t\t}\n\t\tif (opts.height) {\n\t\t\t$(\">div\",selector).css(\"height\", opts.height);\n\t\t\tselect.css(\"height\", opts.height - 10);\n\t\t}\n\n\t\tselect.empty();\n\t\t$.each(colModel, function(i) {\n\t\t\tcolMap[this.name] = i;\n\t\t\tif (this.hidedlg) {\n\t\t\t\tif (!this.hidden) {\n\t\t\t\t\tfixedCols.push(i);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselect.append(\"<option value='\"+i+\"' \"+\n\t\t\t\t\t\t  (this.hidden?\"\":\"selected='selected'\")+\">\"+$.jgrid.stripHtml(colNames[i])+\"</option>\");\n\t\t});\n\n\t\tdopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;\n\t\tcall(opts.dlog, selector, dopts);\n\t\tmopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;\n\t\tcall(opts.msel, select, mopts);\n\n\t\t// fix height of elements of the multiselect widget\n\t\t$dialogContent = $(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id));\n\n\t\t$dialogContent.css({ margin: \"auto\" });\n\t\t$dialogContent.find(\">div\").css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData = getMultiselectWidgetData(select);\n\t\tmultiselectData.container.css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\t\tmultiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\n\t\t// set height for both selectedList and availableList\n\t\tmultiselectData.selectedList.css(\"height\", \"auto\");\n\t\tmultiselectData.availableList.css(\"height\", \"auto\");\n\t\tlistHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height());\n\t\tlistHeight = Math.min(listHeight, $(window).height());\n\t\tmultiselectData.selectedList.css(\"height\", listHeight);\n\t\tmultiselectData.availableList.css(\"height\", listHeight);\n\t},\n\tsortableRows : function (opts) {\n\t\t// Can accept all sortable options and events\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) { return; }\n\t\t\t// Currently we disable a treeGrid sortable\n\t\t\tif($t.p.treeGrid) { return; }\n\t\t\tif($.fn.sortable) {\n\t\t\t\topts = $.extend({\n\t\t\t\t\t\"cursor\":\"move\",\n\t\t\t\t\t\"axis\" : \"y\",\n\t\t\t\t\t\"items\": \" > .jqgrow\"\n\t\t\t\t\t},\n\t\t\t\topts || {});\n\t\t\t\tif(opts.start && $.isFunction(opts.start)) {\n\t\t\t\t\topts._start_ = opts.start;\n\t\t\t\t\tdelete opts.start;\n\t\t\t\t} else {opts._start_=false;}\n\t\t\t\tif(opts.update && $.isFunction(opts.update)) {\n\t\t\t\t\topts._update_ = opts.update;\n\t\t\t\t\tdelete opts.update;\n\t\t\t\t} else {opts._update_ = false;}\n\t\t\t\topts.start = function(ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"0\");\n\t\t\t\t\t$(\"td\",ui.item).each(function(i){\n\t\t\t\t\t\tthis.style.width = $t.grid.cols[i].style.width;\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\tvar subgid = $(ui.item).attr(\"id\");\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._start_) {\n\t\t\t\t\t\topts._start_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\topts.update = function (ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"\");\n\t\t\t\t\tif($t.p.rownumbers === true) {\n\t\t\t\t\t\t$(\"td.jqgrid-rownum\",$t.rows).each(function( i ){\n\t\t\t\t\t\t\t$(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) );\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._update_) {\n\t\t\t\t\t\topts._update_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\t$(\"tbody:first\",$t).sortable(opts);\n\t\t\t\t$(\"tbody:first > .jqgrow\",$t).disableSelection();\n\t\t\t}\n\t\t});\n\t},\n\tgridDnD : function(opts) {\n\t\treturn this.each(function(){\n\t\tvar $t = this, i, cn;\n\t\tif(!$t.grid) { return; }\n\t\t// Currently we disable a treeGrid drag and drop\n\t\tif($t.p.treeGrid) { return; }\n\t\tif(!$.fn.draggable || !$.fn.droppable) { return; }\n\t\tfunction updateDnD ()\n\t\t{\n\t\t\tvar datadnd = $.data($t,\"dnd\");\n\t\t\t$(\"tr.jqgrow:not(.ui-draggable)\",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);\n\t\t}\n\t\tvar appender = \"<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>\";\n\t\tif($(\"#jqgrid_dnd\")[0] === undefined) {\n\t\t\t$('body').append(appender);\n\t\t}\n\n\t\tif(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) {\n\t\t\tupdateDnD();\n\t\t\treturn;\n\t\t}\n\t\tvar tid;\n\t\topts = $.extend({\n\t\t\t\"drag\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\tstart : function (ev, ui) {\n\t\t\t\t\t\tvar i, subgid;\n\t\t\t\t\t\t// if we are in subgrid mode try to collapse the node\n\t\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\t\tsubgid = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// hack\n\t\t\t\t\t\t// drag and drop does not insert tr in table, when the table has no rows\n\t\t\t\t\t\t// we try to insert new empty row on the target(s)\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\tif($($.data($t,\"dnd\").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){\n\t\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.addClass(\"ui-state-highlight\");\n\t\t\t\t\t\t$(\"td\",ui.helper).each(function(i) {\n\t\t\t\t\t\t\tthis.style.width = $t.grid.headers[i].width+\"px\";\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }\n\t\t\t\t\t},\n\t\t\t\t\tstop :function(ev,ui) {\n\t\t\t\t\t\tvar i, ids;\n\t\t\t\t\t\tif(ui.helper.dropped && !opts.dragcopy) {\n\t\t\t\t\t\t\tids = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\tif(ids === undefined) { ids = $(this).attr(\"id\"); }\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData',ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if we have a empty row inserted from start event try to delete it\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('delRowData','jqg_empty_row');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }\n\t\t\t\t\t}\n\t\t\t\t},opts.drag_opts || {});\n\t\t\t},\n\t\t\t\"drop\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\taccept: function(d) {\n\t\t\t\t\t\tif (!$(d).hasClass('jqgrow')) { return d;}\n\t\t\t\t\t\ttid = $(d).closest(\"table.ui-jqgrid-btable\");\n\t\t\t\t\t\tif(tid.length > 0 && $.data(tid[0],\"dnd\") !== undefined) {\n\t\t\t\t\t\t\tvar cn = $.data(tid[0],\"dnd\").connectWith;\n\t\t\t\t\t\t\treturn $.inArray('#'+$.jgrid.jqID(this.id),cn) !== -1 ? true : false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t},\n\t\t\t\t\tdrop: function(ev, ui) {\n\t\t\t\t\t\tif (!$(ui.draggable).hasClass('jqgrow')) { return; }\n\t\t\t\t\t\tvar accept = $(ui.draggable).attr(\"id\");\n\t\t\t\t\t\tvar getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept);\n\t\t\t\t\t\tif(!opts.dropbyname) {\n\t\t\t\t\t\t\tvar j =0, tmpdata = {}, nm, key;\n\t\t\t\t\t\t\tvar dropmodel = $(\"#\"+$.jgrid.jqID(this.id)).jqGrid('getGridParam','colModel');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tfor (key in getdata) {\n\t\t\t\t\t\t\t\t\tif (getdata.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tnm = dropmodel[j].name;\n\t\t\t\t\t\t\t\t\tif( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' )) {\n\t\t\t\t\t\t\t\t\t\tif(getdata.hasOwnProperty(key) && dropmodel[j]) {\n\t\t\t\t\t\t\t\t\t\t\ttmpdata[nm] = getdata[key];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgetdata = tmpdata;\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.dropped = true;\n\t\t\t\t\t\tif($.data(tid[0],\"dnd\").beforedrop && $.isFunction($.data(tid[0],\"dnd\").beforedrop) ) {\n\t\t\t\t\t\t\t//parameters to this callback - event, element, data to be inserted, sender, reciever\n\t\t\t\t\t\t\t// should return object which will be inserted into the reciever\n\t\t\t\t\t\t\tvar datatoinsert = $.data(tid[0],\"dnd\").beforedrop.call(this,ev,ui,getdata,$(tid[0]),$(this));\n\t\t\t\t\t\t\tif (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === \"object\") { getdata = datatoinsert; }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ui.helper.dropped) {\n\t\t\t\t\t\t\tvar grid;\n\t\t\t\t\t\t\tif(opts.autoid) {\n\t\t\t\t\t\t\t\tif($.isFunction(opts.autoid)) {\n\t\t\t\t\t\t\t\t\tgrid = opts.autoid.call(this,getdata);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid = Math.ceil(Math.random()*1000);\n\t\t\t\t\t\t\t\t\tgrid = opts.autoidprefix+grid;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// NULL is interpreted as undefined while null as object\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id)).jqGrid('addRowData',grid,getdata,opts.droppos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }\n\t\t\t\t\t}}, opts.drop_opts || {});\n\t\t\t},\n\t\t\t\"onstart\" : null,\n\t\t\t\"onstop\" : null,\n\t\t\t\"beforedrop\": null,\n\t\t\t\"ondrop\" : null,\n\t\t\t\"drop_opts\" : {\n\t\t\t\t\"activeClass\": \"ui-state-active\",\n\t\t\t\t\"hoverClass\": \"ui-state-hover\"\n\t\t\t},\n\t\t\t\"drag_opts\" : {\n\t\t\t\t\"revert\": \"invalid\",\n\t\t\t\t\"helper\": \"clone\",\n\t\t\t\t\"cursor\": \"move\",\n\t\t\t\t\"appendTo\" : \"#jqgrid_dnd\",\n\t\t\t\t\"zIndex\": 5000\n\t\t\t},\n\t\t\t\"dragcopy\": false,\n\t\t\t\"dropbyname\" : false,\n\t\t\t\"droppos\" : \"first\",\n\t\t\t\"autoid\" : true,\n\t\t\t\"autoidprefix\" : \"dnd_\"\n\t\t}, opts || {});\n\t\t\n\t\tif(!opts.connectWith) { return; }\n\t\topts.connectWith = opts.connectWith.split(\",\");\n\t\topts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});\n\t\t$.data($t,\"dnd\",opts);\n\t\t\n\t\tif($t.p.reccount !== 0 && !$t.p.jqgdnd) {\n\t\t\tupdateDnD();\n\t\t}\n\t\t$t.p.jqgdnd = true;\n\t\tfor (i=0;i<opts.connectWith.length;i++){\n\t\t\tcn =opts.connectWith[i];\n\t\t\t$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);\n\t\t}\n\t\t});\n\t},\n\tgridResize : function(opts) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, gID = $.jgrid.jqID($t.p.id), req;\n\t\t\tif(!$t.grid || !$.fn.resizable) { return; }\n\t\t\topts = $.extend({}, opts || {});\n\t\t\tif(opts.alsoResize ) {\n\t\t\t\topts._alsoResize_ = opts.alsoResize;\n\t\t\t\tdelete opts.alsoResize;\n\t\t\t} else {\n\t\t\t\topts._alsoResize_ = false;\n\t\t\t}\n\t\t\tif(opts.stop && $.isFunction(opts.stop)) {\n\t\t\t\topts._stop_ = opts.stop;\n\t\t\t\tdelete opts.stop;\n\t\t\t} else {\n\t\t\t\topts._stop_ = false;\n\t\t\t}\n\t\t\topts.stop = function (ev, ui) {\n\t\t\t\t$($t).jqGrid('setGridParam',{height:$(\"#gview_\"+gID+\" .ui-jqgrid-bdiv\").height()});\n\t\t\t\t$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);\n\t\t\t\tif(opts._stop_) { opts._stop_.call($t,ev,ui); }\n\t\t\t\tif($t.p.caption) {\n\t\t\t\t\t$(\"#gbox_\"+ gID).css({ 'height': 'auto' });\n\t\t\t\t}\n\t\t\t\tif($t.p.frozenColumns) {\n\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\treq = setTimeout(function(){\n\t\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t\tif(opts._alsoResize_) {\n\t\t\t\tvar optstest = \"{\\'#gview_\"+gID+\" .ui-jqgrid-bdiv\\':true,'\" +opts._alsoResize_+\"':true}\";\n\t\t\t\topts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this\n\t\t\t} else {\n\t\t\t\topts.alsoResize = $(\".ui-jqgrid-bdiv\",\"#gview_\"+gID);\n\t\t\t}\n\t\t\tdelete opts._alsoResize_;\n\t\t\t$(\"#gbox_\"+gID).resizable(opts);\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.pivot.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\",\n\t\t\t\"./grid.grouping\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n// To optimize the search we need custom array filter\n// This code is taken from\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter\n//module begin\nfunction _pivotfilter (fn, context) {\n\t/*jshint validthis: true */\n\tvar i,\n\t\tvalue,\n\t\tresult = [],\n\t\tlength;\n\t\t\n\tif (!this || typeof fn !== 'function' || (fn instanceof RegExp)) {\n\t\tthrow new TypeError();\n\t}\n\n\tlength = this.length;\n\n\tfor (i = 0; i < length; i++) {\n\t\tif (this.hasOwnProperty(i)) {\n\t\t\tvalue = this[i];\n\t\t\tif (fn.call(context, value, i, this)) {\n\t\t\t\tresult.push(value);\n\t\t\t\t// We need break in order to cancel loop \n\t\t\t\t// in case the row is found\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n}\n$.assocArraySize = function(obj) {\n    // http://stackoverflow.com/a/6700/11236\n    var size = 0, key;\n    for (key in obj) {\n        if (obj.hasOwnProperty(key)) {\n        \tsize++;\n        }\n    }\n    return size;\n};\n\n$.jgrid.extend({\n\tpivotSetup : function( data, options ){\n\t\t// data should come in json format\n\t\t// The function return the new colModel and the transformed data\n\t\t// again with group setup options which then will be passed to the grid\n\t\tvar columns =[],\n\t\tpivotrows =[],\n\t\tsummaries = [],\n\t\tmember=[],\n\t\tlabels=[],\n\t\tgroupOptions = {\n\t\t\tgrouping : true,\n\t\t\tgroupingView :  {\n\t\t\t\tgroupField : [],\n\t\t\t\tgroupSummary: [],\n\t\t\t\tgroupSummaryPos:[]\n\t\t\t}\n\t\t},\n\t\theaders = [],\n\t\to = $.extend ( {\n\t\t\trowTotals : false,\n\t\t\trowTotalsText : 'Total',\n\t\t\t// summary columns\n\t\t\tcolTotals : false,\n\t\t\tgroupSummary : true,\n\t\t\tgroupSummaryPos :  'header',\n\t\t\tfrozenStaticCols : false\n\t\t}, options || {});\n\t\tthis.each(function(){\n\n\t\t\tvar \n\t\t\t\trow,\n\t\t\t\trowindex,\n\t\t\t\ti,\n\t\t\t\t\n\t\t\t\trowlen = data.length,\n\t\t\t\txlen, ylen, aggrlen,\n\t\t\t\ttmp,\n\t\t\t\tnewObj,\n\t\t\t\tr=0;\n\t\t\t// utility funcs\n\t\t\t/* \n\t\t\t * Filter the data to a given criteria. Return the firt occurance\n\t\t\t */\n\t\t\tfunction find(ar, fun, extra) {\n\t\t\t\tvar res;\n\t\t\t\tres = _pivotfilter.call(ar, fun, extra);\n\t\t\t\treturn res.length > 0 ? res[0] : null;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Check if the grouped row column exist (See find)\n\t\t\t * If the row is not find in pivot rows retun null,\n\t\t\t * otherviese the column\n\t\t\t */\n\t\t\tfunction findGroup(item, index) {\n\t\t\t\t/*jshint validthis: true */\n\t\t\t\tvar j = 0, ret = true, i;\n\t\t\t\tfor(i in item) {\n\t\t\t\t\tif( item.hasOwnProperty(i) ) {\n\t\t\t\t\t\tif(item[i] != this[j]) {\n\t\t\t\t\t\t\tret =  false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t\tif(j>=this.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret) {\n\t\t\t\t\trowindex =  index;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Perform calculations of the pivot values.\n\t\t\t */\n\t\t\tfunction calculation(oper, v, field, rc, _cnt)  {\n\t\t\t\tvar ret;\n\t\t\t\tif( $.isFunction(oper)) {\n\t\t\t\t\tret = oper.call(this, v, field, rc);\n\t\t\t\t} else {\n\t\t\t\t\tswitch (oper) {\n\t\t\t\t\t\tcase  \"sum\" : \n\t\t\t\t\t\t\tret = parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"count\" :\n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tv=0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\t\t\tret = v+1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"min\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret =Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"max\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"avg\" : //avg grouping\n\t\t\t\t\t\t\tret = (parseFloat(v||0) * (_cnt -1) + parseFloat(rc[field]||0) ) /_cnt;\n\t\t\t\t\t\t\tbreak;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * The function agragates the values of the pivot grid.\n\t\t\t * Return the current row with pivot summary values\n\t\t\t */\n\t\t\tfunction agregateFunc ( row, aggr, value, curr) {\n\t\t\t\t// default is sum\n\t\t\t\tvar arrln = aggr.length, i, label, j, jv, mainval=\"\",swapvals=[], swapstr, _cntavg = 1, lbl;\n\t\t\t\tif($.isArray(value)) {\n\t\t\t\t\tjv = value.length;\n\t\t\t\t\tswapvals = value;\n\t\t\t\t} else {\n\t\t\t\t\tjv = 1;\n\t\t\t\t\tswapvals[0]=value;\n\t\t\t\t}\n\t\t\t\tmember = [];\n\t\t\t\tlabels = [];\n\t\t\t\tmember.root = 0;\n\t\t\t\tfor(j=0;j<jv;j++) {\n\t\t\t\t\tvar  tmpmember = [], vl;\n\t\t\t\t\tfor(i=0; i < arrln; i++) {\n\t\t\t\t\t\tswapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust';\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif(value == null) {\n\t\t\t\t\t\t\tlabel = $.trim(aggr[i].member)+\"_\" + swapstr;\n\t\t\t\t\t\t\tvl = label;\n\t\t\t\t\t\t\tswapvals[0]= aggr[i].label || (swapstr + \" \" +$.trim(aggr[i].member));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvl = value[j].replace(/\\s+/g, '');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tlabel = (arrln === 1 ? mainval + vl : mainval + vl + \"_\" + swapstr + \"_\" + String(i));\n\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\tswapvals[j] = value[j];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if(j<=1 && vl !==  '_r_Totals' && mainval === \"\") { // this does not fix full the problem\n\t\t\t\t\t\t\t//mainval = vl;\n\t\t\t\t\t\t//}\n\t\t\t\t\t\tlabel = !isNaN(parseInt(label,10)) ? label + \" \" : label;\n\t\t\t\t\t\tif(aggr[i].aggregator === 'avg') {\n\t\t\t\t\t\t\tlbl = rowindex === -1 ? pivotrows.length+\"_\"+label : rowindex+\"_\"+label;\n\t\t\t\t\t\t\tif(!_avg[lbl]) {\n\t\t\t\t\t\t\t\t_avg[lbl] = 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_avg[lbl]++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_cntavg = _avg[lbl];\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\tcurr[label] =  tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg);\n\t\t\t\t\t}\n\t\t\t\t\tmainval += (value && value[j] != null) ? value[j].replace(/\\s+/g, '') : ''\n\t\t\t\t\t//vl = !isNaN(parseInt(vl,10)) ? vl + \" \" : vl;\n\t\t\t\t\tmember[label] = tmpmember;\n\t\t\t\t\tlabels[label] = swapvals[j];\n\t\t\t\t}\n\t\t\t\treturn curr;\n\t\t\t}\n\t\t\t// Making the row totals without to add in yDimension\n\t\t\tif(o.rowTotals && o.yDimension.length > 0) {\n\t\t\t\tvar dn = o.yDimension[0].dataName;\n\t\t\t\to.yDimension.splice(0,0,{dataName:dn});\n\t\t\t\to.yDimension[0].converter =  function(){ return '_r_Totals'; };\n\t\t\t}\n\t\t\t// build initial columns (colModel) from xDimension\n\t\t\txlen = $.isArray(o.xDimension) ? o.xDimension.length : 0;\n\t\t\tylen = o.yDimension.length;\n\t\t\taggrlen  = $.isArray(o.aggregates) ? o.aggregates.length : 0;\n\t\t\tif(xlen === 0 || aggrlen === 0) {\n\t\t\t\tthrow(\"xDimension or aggregates optiona are not set!\");\n\t\t\t}\n\t\t\tvar colc;\n\t\t\tfor(i = 0; i< xlen; i++) {\n\t\t\t\tcolc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols};\n\t\t\t\tif(o.xDimension[i].isGroupField == null) {\n\t\t\t\t\to.xDimension[i].isGroupField =  true;\n\t\t\t\t}\n\t\t\t\tcolc = $.extend(true, colc, o.xDimension[i]);\n\t\t\t\tcolumns.push( colc );\n\t\t\t}\n\t\t\tvar groupfields = xlen - 1, tree={}, _avg=[];\n\t\t\t//tree = { text: 'root', leaf: false, children: [] };\n\t\t\t//loop over alll the source data\n\t\t\twhile( r < rowlen ) {\n\t\t\t\trow = data[r];\n\t\t\t\tvar xValue = [];\n\t\t\t\tvar yValue = []; \n\t\t\t\ttmp = {};\n\t\t\t\ti = 0;\n\t\t\t\t// build the data from xDimension\n\t\t\t\tdo {\n\t\t\t\t\txValue[i]  = $.trim(row[o.xDimension[i].dataName]);\n\t\t\t\t\ttmp[o.xDimension[i].dataName] = xValue[i];\n\t\t\t\t\ti++;\n\t\t\t\t} while( i < xlen );\n\t\t\t\t\n\t\t\t\tvar k = 0;\n\t\t\t\trowindex = -1;\n\t\t\t\t// check to see if the row is in our new pivotrow set\n\t\t\t\tnewObj = find(pivotrows, findGroup, xValue);\n\t\t\t\tif(!newObj) {\n\t\t\t\t\t// if the row is not in our set\n\t\t\t\t\tk = 0;\n\t\t\t\t\t// if yDimension is set\n\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t// build the cols set in yDimension\n\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t// Check to see if we have user defined conditions\n\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// make the colums based on aggregates definition \n\t\t\t\t\t\t// and return the members for late calculation\n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, yValue, tmp );\n\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t// if not set use direct the aggregates \n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, null, tmp );\n\t\t\t\t\t}\n\t\t\t\t\t// add the result in pivot rows\n\t\t\t\t\tpivotrows.push( tmp );\n\t\t\t\t} else {\n\t\t\t\t\t// the pivot exists\n\t\t\t\t\tif( rowindex >= 0) {\n\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t// make the recalculations \n\t\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, yValue, newObj );\n\t\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, null, newObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// update the row\n\t\t\t\t\t\tpivotrows[rowindex] = newObj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar kj=0, current = null,existing = null, kk;\n\t\t\t\t// Build a JSON tree from the member (see aggregateFunc) \n\t\t\t\t// to make later the columns \n\t\t\t\t// \n\t\t\t\tfor (kk in member) {\n\t\t\t\t\tif(member.hasOwnProperty( kk )) {\n\t\t\t\t\t\tif(kj === 0) {\n\t\t\t\t\t\t\tif (!tree.children||tree.children === undefined){\n\t\t\t\t\t\t\t\ttree = { text: kk, level : 0, children: [], label: kk  };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurrent = tree.children;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\texisting = null;\n\t\t\t\t\t\t\tfor (i=0; i < current.length; i++) {\n\t\t\t\t\t\t\t\tif (current[i].text === kk) {\n\t\t\t\t\t\t\t\t//current[i].fields=member[kk];\n\t\t\t\t\t\t\t\t\texisting = current[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (existing) {\n\t\t\t\t\t\t\t\tcurrent = existing.children;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrent.push({ children: [], text: kk, level: kj,  fields: member[kk], label: labels[kk] });\n\t\t\t\t\t\t\t\tcurrent = current[current.length - 1].children;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tkj++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tr++;\n\t\t\t}\n\t\t\t_avg = null; // free mem\n\t\t\tvar  lastval=[], initColLen = columns.length, swaplen = initColLen;\n\t\t\tif(ylen>0) {\n\t\t\t\theaders[ylen-1] = {\tuseColSpanStyle: false,\tgroupHeaders: []};\n\t\t\t}\n\t\t\t/*\n\t\t\t * Recursive function which uses the tree to build the \n\t\t\t * columns from the pivot values and set the group Headers\n\t\t\t */\n\t\t\tfunction list(items) {\n\t\t\t\tvar l, j, key, k, col;\n\t\t\t\tfor (key in items) {\t // iterate\n\t\t\t\t\tif (items.hasOwnProperty(key)) {\n\t\t\t\t\t// write amount of spaces according to level\n\t\t\t\t\t// and write name and newline\n\t\t\t\t\t\tif(typeof items[key] !== \"object\") {\n\t\t\t\t\t\t\t// If not a object build the header of the appropriate level\n\t\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\t\tif(lastval[items.level] === undefined) {\n\t\t\t\t\t\t\t\t\tlastval[items.level] ='';\n\t\t\t\t\t\t\t\t\tif(items.level>0 && items.text.indexOf('_r_Totals') === -1) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1] = {\n\t\t\t\t\t\t\t\t\t\t\tuseColSpanStyle: false,\n\t\t\t\t\t\t\t\t\t\t\tgroupHeaders: []\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) {\n\t\t\t\t\t\t\t\t\tif(items.level>0) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders.push({\n\t\t\t\t\t\t\t\t\t\t\ttitleText: items.label,\n\t\t\t\t\t\t\t\t\t\t\tnumberOfColumns : 0\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tvar collen = headers[items.level-1].groupHeaders.length-1,\n\t\t\t\t\t\t\t\t\t\tcolpos = collen === 0 ? swaplen : initColLen;//+aggrlen;\n\t\t\t\t\t\t\t\t\t\tif(items.level-1=== (o.rowTotals ? 1 : 0)) {\n\t\t\t\t\t\t\t\t\t\t\tif(collen>0) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar l1=0;\n\t\t\t\t\t\t\t\t\t\t\t\tfor(var kk=0; kk<collen; kk++) { \n\t\t\t\t\t\t\t\t\t\t\t\t\tl1 += headers[items.level-1].groupHeaders[kk].numberOfColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif(l1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolpos = l1  + xlen;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif(columns[colpos]) {\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name;\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tinitColLen = columns.length;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastval[items.level] = items.text;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// This is in case when the member contain more than one summary item\n\t\t\t\t\t\t\tif(items.level === ylen  && key==='level' && ylen >0) {\n\t\t\t\t\t\t\t\tif( aggrlen > 1){\n\t\t\t\t\t\t\t\t\tvar ll=1;\n\t\t\t\t\t\t\t\t\tfor( l in items.fields) {\n\t\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty(l)) {\n\t\t\t\t\t\t\t\t\t\t\tif(ll===1) {\n\t\t\t\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tll++;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\theaders.splice(ylen-1,1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if object, call recursively\n\t\t\t\t\t\tif (items[key] != null && typeof items[key] === \"object\") {\n\t\t\t\t\t\t\tlist(items[key]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Finally build the columns\n\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\tif( items.level > 0 &&  (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){\n\t\t\t\t\t\t\t\tj=0;\n\t\t\t\t\t\t\t\tfor(l in items.fields) {\n\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty( l ) ) {\n\t\t\t\t\t\t\t\t\t\tcol = {};\n\t\t\t\t\t\t\t\t\t\tfor(k in o.aggregates[j]) {\n\t\t\t\t\t\t\t\t\t\t\tif(o.aggregates[j].hasOwnProperty(k)) {\n\t\t\t\t\t\t\t\t\t\t\t\tswitch( k ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'member':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'label':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'aggregator':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcol[k] = o.aggregates[j][k];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\tif(aggrlen > 1) {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = l;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = o.aggregates[j].label || items.label;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = items.text;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcolumns.push (col);\n\t\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlist( tree );\n\t\t\tvar nm;\n\t\t\t// loop again trougth the pivot rows in order to build grand total \n\t\t\tif(o.colTotals) {\n\t\t\t\tvar plen = pivotrows.length;\n\t\t\t\twhile(plen--) {\n\t\t\t\t\tfor(i=xlen;i<columns.length;i++) {\n\t\t\t\t\t\tnm = columns[i].name;\n\t\t\t\t\t\tif(!summaries[nm]) {\n\t\t\t\t\t\t\tsummaries[nm] = parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsummaries[nm] += parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// based on xDimension  levels build grouping \n\t\t\tif( groupfields > 0) {\n\t\t\t\tfor(i=0;i<groupfields;i++) {\n\t\t\t\t\tif(columns[i].isGroupField) {\n\t\t\t\t\t\tgroupOptions.groupingView.groupField.push(columns[i].name);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummary.push(o.groupSummary);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// no grouping is needed\n\t\t\t\tgroupOptions.grouping = false;\n\t\t\t}\n\t\t\tgroupOptions.sortname = columns[groupfields].name;\n\t\t\tgroupOptions.groupingView.hideFirstGroupCol = true;\n\t\t});\n\t\t// return the final result.\n\t\treturn { \"colModel\" : columns, \"rows\": pivotrows, \"groupOptions\" : groupOptions, \"groupHeaders\" :  headers, summary : summaries };\n\t},\n\tjqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\n\t\t\tfunction pivot( data) {\n\t\t\t\tif(!$.isArray(data)) {\n\t\t\t\t\tthrow \"data provides is not an array\";\n\t\t\t\t}\n\t\t\t\tvar pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt),\n\t\t\t\tfooterrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false,\n\t\t\t\tquery= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len;\n\t\t\t\tif(pivotOpt.ignoreCase) {\n\t\t\t\t\tquery = query.ignoreCase();\n\t\t\t\t}\n\t\t\t\tfor(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) {\n\t\t\t\t\tso = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc';\n\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st);\n\t\t\t\t}\n\t\t\t\tlen = pivotOpt.xDimension.length;\n\t\t\t\tif(gridOpt.sortname) { // should be a part of xDimension\n\t\t\t\t\tso = gridOpt.sortorder ? gridOpt.sortorder : 'asc';\n\t\t\t\t\tst = 'text';\n\t\t\t\t\tfor( i=0; i< len; i++) {\n\t\t\t\t\t\tif(pivotOpt.xDimension[i].dataName === gridOpt.sortname) {\n\t\t\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tquery.orderBy(gridOpt.sortname, so, st, '', st);\n\t\t\t\t} else {\n\t\t\t\t\tif(pivotGrid.groupOptions.sortname && len) {\n\t\t\t\t\t\tso = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc';\n\t\t\t\t\t\tst = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text';\n\t\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st);\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tjQuery($t).jqGrid($.extend(true, {\n\t\t\t\t\tdatastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}),\n\t\t\t\t\tdatatype: \"jsonstring\",\n\t\t\t\t\tfooterrow : footerrow,\n\t\t\t\t\tuserDataOnFooter: footerrow,\n\t\t\t\t\tcolModel: pivotGrid.colModel,\n\t\t\t\t\tviewrecords: true,\n\t\t\t\t\tsortname: pivotOpt.xDimension[0].dataName // ?????\n\t\t\t\t}, pivotGrid.groupOptions, gridOpt || {}));\n\t\t\t\tvar gHead = pivotGrid.groupHeaders;\n\t\t\t\tif(gHead.length) {\n\t\t\t\t\tfor( i = 0;i < gHead.length ; i++) {\n\t\t\t\t\t\tif(gHead[i] && gHead[i].groupHeaders.length) {\n\t\t\t\t\t\t\tjQuery($t).jqGrid('setGroupHeaders',gHead[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(pivotOpt.frozenStaticCols) {\n\t\t\t\t\tjQuery($t).jqGrid(\"setFrozenColumns\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(typeof data === \"string\") {\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl : data,\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tsuccess : function(response) {\n\t\t\t\t\t\tpivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') );\n\t\t\t\t\t}\n\t\t\t\t}, ajaxOpt || {}) );\n\t\t\t} else {\n\t\t\t\tpivot( data );\n\t\t\t}\n\t\t});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.subgrid.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.extend({\nsetSubGrid : function () {\n\treturn this.each(function (){\n\t\tvar $t = this, cm, i,\n\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid,\n\t\tsuboptions = {\n\t\t\tplusicon : classes.icon_plus,\n\t\t\tminusicon : classes.icon_minus,\n\t\t\topenicon:  classes.icon_open,\n\t\t\texpandOnLoad:  false,\n\t\t\tdelayOnLoad : 50,\n\t\t\tselectOnExpand : false,\n\t\t\tselectOnCollapse : false,\n\t\t\treloadOnExpand : true\n\t\t};\n\t\t$t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {});\n\t\t$t.p.colNames.unshift(\"\");\n\t\t$t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});\n\t\tcm = $t.p.subGridModel;\n\t\tif(cm[0]) {\n\t\t\tcm[0].align = $.extend([],cm[0].align || []);\n\t\t\tfor(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}\n\t\t}\n\t});\n},\naddSubGridCell :function (pos,iRow) {\n\tvar prp='', ic, sid, icb ;\n\tthis.each(function(){\n\t\tprp = this.formatCol(pos,iRow);\n\t\tsid= this.p.id;\n\t\tic = this.p.subGridOptions.plusicon;\n\t\ticb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common;\n\t});\n\treturn \"<td role=\\\"gridcell\\\" aria-describedby=\\\"\"+sid+\"_subgrid\\\" class=\\\"ui-sgcollapsed sgcollapsed\\\" \"+prp+\"><a style='cursor:pointer;' class='ui-sghref'><span class='\" + icb.icon_base +\" \"+ic+\"'></span></a></td>\";\n},\naddSubGrid : function( pos, sind ) {\n\treturn this.each(function(){\n\t\tvar ts = this;\n\t\tif (!ts.grid ) { return; }\n\t\tvar base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base,\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\t\t//-------------------------\n\t\tvar subGridCell = function(trdiv,cell,pos)\n\t\t{\n\t\t\tvar tddiv = $(\"<td align='\"+ts.p.subGridModel[0].align[pos]+\"'></td>\").html(cell);\n\t\t\t$(trdiv).append(tddiv);\n\t\t};\n\t\tvar subGridXml = function(sjxml, sbid){\n\t\t\tvar tddiv, i,  sgmap,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox+\" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.xmlReader.subgrid;\n\t\t\t\t$(sgmap.root+\" \"+sgmap.row, sjxml).each( function(){\n\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t$(sgmap.cell,this).each( function(i) {\n\t\t\t\t\t\t\tsubGridCell(trdiv, $(this).text() || '&#160;',i);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\tif (f) {\n\t\t\t\t\t\t\tfor (i=0;i<f.length;i++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, $(f[i],this).text() || '&#160;',i);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar subGridJson = function(sjxml, sbid){\n\t\t\tvar tddiv,result,i,cur, sgmap,j,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox + \" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.jsonReader.subgrid;\n\t\t\t\tresult = $.jgrid.getAccessor(sjxml, sgmap.root);\n\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\tfor (i=0;i<result.length;i++) {\n\t\t\t\t\t\tcur = result[i];\n\t\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t\tif(sgmap.cell) { cur=cur[sgmap.cell]; }\n\t\t\t\t\t\t\tfor (j=0;j<cur.length;j++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[j] || '&#160;',j);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\t\tif(f.length) {\n\t\t\t\t\t\t\t\tfor (j=0;j<f.length;j++) {\n\t\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[f[j]] || '&#160;',j);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar populatesubgrid = function( rd )\n\t\t{\n\t\t\tvar sid,dp, i, j;\n\t\t\tsid = $(rd).attr(\"id\");\n\t\t\tdp = {nd_: (new Date().getTime())};\n\t\t\tdp[ts.p.prmNames.subgridid]=sid;\n\t\t\tif(!ts.p.subGridModel[0]) { return false; }\n\t\t\tif(ts.p.subGridModel[0].params) {\n\t\t\t\tfor(j=0; j < ts.p.subGridModel[0].params.length; j++) {\n\t\t\t\t\tfor(i=0; i<ts.p.colModel.length; i++) {\n\t\t\t\t\t\tif(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) {\n\t\t\t\t\t\t\tdp[ts.p.colModel[i].name]= $(\"td:eq(\"+i+\")\",rd).text().replace(/\\&#160\\;/ig,'');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tts.grid.hDiv.loading = true;\n\t\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).show();\n\t\t\t\tif(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }\n\t\t\t\tif($.isFunction(ts.p.subgridtype)) {\n\t\t\t\t\tts.p.subgridtype.call(ts, dp);\n\t\t\t\t} else {\n\t\t\t\t\tts.p.subgridtype = ts.p.subgridtype.toLowerCase();\n\t\t\t\t}\n\t\t\t\tswitch(ts.p.subgridtype) {\n\t\t\t\t\tcase \"xml\":\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\turl: $.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl,\n\t\t\t\t\t\tdataType:ts.p.subgridtype,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp,\n\t\t\t\t\t\tcomplete: function(sxml) {\n\t\t\t\t\t\t\tif(ts.p.subgridtype === \"xml\") {\n\t\t\t\t\t\t\t\tsubGridXml(sxml.responseXML, sid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsubGridJson($.jgrid.parse(sxml.responseText),sid);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsxml=null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\tvar _id, pID,atd, nhc=0, bfsc, $r;\n\t\t$.each(ts.p.colModel,function(){\n\t\t\tif(this.hidden === true || this.name === 'rn' || this.name === 'cb') {\n\t\t\t\tnhc++;\n\t\t\t}\n\t\t});\n\t\tvar len = ts.rows.length, i=1,hsret, ishsg = $.isFunction(ts.p.isHasSubGrid);\n\t\tif( sind !== undefined && sind > 0) {\n\t\t\ti = sind;\n\t\t\tlen = sind+1;\n\t\t}\n\t\twhile(i < len) {\n\t\t\tif($(ts.rows[i]).hasClass('jqgrow')) {\n\t\t\t\tif(ts.p.scroll) {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).off('click');\n\t\t\t\t}\n\t\t\t\thsret = null;\n\t\t\t\tif(ishsg) {\n\t\t\t\t\tvar hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id);\n\t\t\t\t}\n\t\t\t\tif(hsret === false) {\n\t\t\t\t\tts.rows[i].cells[pos].innerHTML = \"\";\n\t\t\t\t} else {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).on('click', function() {\n\t\t\t\t\t\tvar tr = $(this).parent(\"tr\")[0];\n\t\t\t\t\t\tpID = ts.p.id;\n\t\t\t\t\t\t_id = tr.id;\n\t\t\t\t\t\t$r = $(\"#\" + pID + \"_\" + _id + \"_expandedContent\");\n\t\t\t\t\t\tif($(this).hasClass(\"sgcollapsed\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridBeforeExpand\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif(bfsc && $.isFunction(ts.p.subGridBeforeExpand)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridBeforeExpand.call(ts, pID+\"_\"+_id,_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc === false) {return false;}\n\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) {\n\t\t\t\t\t\t\t\tatd = pos >=1 ? \"<td colspan='\"+pos+\"'>&#160;</td>\":\"\";\n\t\t\t\t\t\t\t\t$(tr).after( \"<tr role='row' id='\" + pID + \"_\" + _id + \"_expandedContent\" + \"' class='ui-subgrid ui-sg-expanded'>\"+atd+\"<td class='\" + common.content +\" subgrid-cell'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.openicon+\"'></span></td><td colspan='\"+parseInt(ts.p.colNames.length-1-nhc,10)+\"' class='\" + common.content +\" subgrid-data'><div id=\"+pID+\"_\"+_id+\" class='tablediv'></div></td></tr>\" );\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridSubGridRowExpanded\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\t\tif( $.isFunction(ts.p.subGridRowExpanded)) {\n\t\t\t\t\t\t\t\t\tts.p.subGridRowExpanded.call(ts, pID+\"_\"+ _id,_id);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpopulatesubgrid(tr);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$r.show().removeClass(\"ui-sg-collapsed\").addClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.minusicon+\"'></span></a>\").removeClass(\"sgcollapsed\").addClass(\"sgexpanded\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnExpand) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if($(this).hasClass(\"sgexpanded\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridRowColapsed\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif( bfsc &&  $.isFunction(ts.p.subGridRowColapsed)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridRowColapsed.call(ts, pID+\"_\"+_id,_id );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc===false) {return false;}\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true) {\n\t\t\t\t\t\t\t\t$r.remove(\".ui-subgrid\");\n\t\t\t\t\t\t\t} else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting\n\t\t\t\t\t\t\t\t$r.hide().addClass(\"ui-sg-collapsed\").removeClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\"+common.icon_base +\" \"+ts.p.subGridOptions.plusicon+\"'></span></a>\").removeClass(\"sgexpanded\").addClass(\"sgcollapsed\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnCollapse) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\tif(ts.p.subGridOptions.expandOnLoad === true) {\n\t\t\t$(ts.rows).filter('.jqgrow').each(function(index,row){\n\t\t\t\t$(row.cells[0]).click();\n\t\t\t});\n\t\t}\n\t\tts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};\n\t\tts.subGridJson = function(json,sid) {subGridJson(json,sid);};\n\t});\n},\nexpandSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ncollapseSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ntoggleSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t} else {\n\t\t\t\t\tsgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\t\tif(sgc) {\n\t\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.treegrid.js",
    "content": "/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid.extend({\n\tsetTreeNode : function(i, len){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$t.grid || !$t.p.treeGrid ) {return;}\n\t\t\tvar expCol = $t.p.expColInd,\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\ticon = $t.p.treeReader.icon_field,\n\t\t\tloaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,\n\t\t\tldat, lf,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tindex = i;\n\t\t\t$($t).triggerHandler(\"jqGridBeforeSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.beforeSetTreeNode)) {\n\t\t\t\t$t.p.beforeSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t\twhile(i<len) {\n\t\t\t\tvar ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan;\n\t\t\t\tldat = $t.p.data[dind];\n\t\t\t\t//$t.rows[i].level = ldat[level];\n\t\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t\tif(!ldat[isLeaf]) {\n\t\t\t\t\tlft = parseInt(ldat[$t.p.treeReader.left_field],10);\n\t\t\t\t\trgt = parseInt(ldat[$t.p.treeReader.right_field],10);\n\t\t\t\t\t// NS Model\n\t\t\t\t\t\tldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';\n\t\t\t\t\t\t$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//else {\n\t\t\t\t\t//row.parent_id = rd[$t.p.treeReader.parent_id_field];\n\t\t\t\t//}\n\t\t\t\tcurLevel = parseInt(ldat[level],10);\n\t\t\t\tif($t.p.tree_root_level === 0) {\n\t\t\t\t\tident = curLevel+1;\n\t\t\t\t\tlftpos = curLevel;\n\t\t\t\t} else {\n\t\t\t\t\tident = curLevel;\n\t\t\t\t\tlftpos = curLevel -1;\n\t\t\t\t}\n\t\t\t\ttwrap = \"<div class='tree-wrap tree-wrap-\"+$t.p.direction+\"' style='width:\"+(ident*18)+\"px;'>\";\n\t\t\t\ttwrap += \"<div style='\"+($t.p.direction===\"rtl\" ? \"right:\" : \"left:\")+(lftpos*18)+\"px;' class='\"+common.icon_base+\" \";\n\n\n\t\t\t\tif(ldat[loaded] !== undefined) {\n\t\t\t\t\tif(ldat[loaded]===\"true\" || ldat[loaded]===true) {\n\t\t\t\t\t\tldat[loaded] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tldat[loaded] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ldat[isLeaf] === \"true\" || ldat[isLeaf] === true) {\n\t\t\t\t\ttwrap += ((ldat[icon] !== undefined && ldat[icon] !== \"\") ? ldat[icon] : $t.p.treeIcons.leaf)+\" tree-leaf treeclick\";\n\t\t\t\t\tldat[isLeaf] = true;\n\t\t\t\t\tlf=\"leaf\";\n\t\t\t\t} else {\n\t\t\t\t\tldat[isLeaf] = false;\n\t\t\t\t\tlf=\"\";\n\t\t\t\t}\n\t\t\t\tldat[expanded] = ((ldat[expanded] === \"true\" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined);\n\t\t\t\tif(ldat[expanded] === false) {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.plus+\" tree-plus treeclick'\");\n\t\t\t\t} else {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.minus+\" tree-minus treeclick'\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttwrap += \"></div></div>\";\n\t\t\t\t$($t.rows[i].cells[expCol]).wrapInner(\"<span class='cell-wrapper\"+lf+\"'></span>\").prepend(twrap);\n\n\t\t\t\tif(curLevel !== parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t//var pn = $($t).jqGrid('getNodeParent',ldat);\n\t\t\t\t\t//expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;\n\t\t\t\t\texpan = $($t).jqGrid('isVisibleNode',ldat); // overhead\n\t\t\t\t\tif( !expan ){\n\t\t\t\t\t\t$($t.rows[i]).css(\"display\",\"none\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\tif($t.p.ExpandColClick === true) {\n\t\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridAfterSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.afterSetTreeNode)) {\n\t\t\t\t$t.p.afterSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t});\n\t},\n\tsetTreeGrid : function() {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[],\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid;\n\t\t\tif(!$t.p.treeGrid) {return;}\n\t\t\tif(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}\n\t\t\tif($t.p.loadonce) { $t.p.treedatatype = 'local'; }\n\t\t\t$t.p.subGrid = false;$t.p.altRows =false;\n\t\t\t$t.p.pgbuttons = false;$t.p.pginput = false;\n\t\t\t$t.p.gridview =  true;\n\t\t\tif($t.p.rowTotal === null ) { $t.p.rowNum = 10000; }\n\t\t\t$t.p.multiselect = false;$t.p.rowList = [];\n\t\t\t$t.p.expColInd = 0;\n\t\t\tpico = classes.icon_plus;\n\t\t\tif($t.p.styleUI === 'jQueryUI') {\n\t\t\t\tpico += ($t.p.direction===\"rtl\" ? 'w' : 'e');\n\t\t\t}\n\t\t\t$t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {});\n\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\tleft_field:\"lft\",\n\t\t\t\t\tright_field: \"rgt\",\n\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader);\n\t\t\t} else if($t.p.treeGridModel === 'adjacency') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\t\tparent_id_field: \"parent\",\n\t\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader );\n\t\t\t}\n\t\t\tfor ( key in $t.p.colModel){\n\t\t\t\tif($t.p.colModel.hasOwnProperty(key)) {\n\t\t\t\t\tnm = $t.p.colModel[key].name;\n\t\t\t\t\tif( nm === $t.p.ExpandColumn && !ecol ) {\n\t\t\t\t\t\tecol = true;\n\t\t\t\t\t\t$t.p.expColInd = i;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\t//\n\t\t\t\t\tfor(tkey in $t.p.treeReader) {\n\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) {\n\t\t\t\t\t\t\tdupcols.push(nm);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.treeReader,function(j,n){\n\t\t\t\tif(n && $.inArray(n, dupcols) === -1){\n\t\t\t\t\tif(j==='leaf_field') { $t.p._treeleafpos= i; }\n\t\t\t\ti++;\n\t\t\t\t\t$t.p.colNames.push(n);\n\t\t\t\t\t$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});\n\t\t\t\t}\n\t\t\t});\t\t\t\n\t\t});\n\t},\n\texpandRow: function (record){\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\t//if ($($t).jqGrid(\"isVisibleNode\",record)) {\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeExpandTreeGridRow) ? $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"\");\n\t\t\t\tif(this[expanded]) {\n\t\t\t\t\t$($t).jqGrid(\"expandRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterExpandTreeGridRow)) {\n\t\t\t\t$t.p.afterExpandTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\n\t\t\t//}\n\t\t});\n\t},\n\tcollapseRow : function (record) {\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeCollapseTreeGridRow) ? $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"none\");\n\t\t\t\tif(this[expanded]){\n\t\t\t\t\t$($t).jqGrid(\"collapseRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterCollapseTreeGridRow)) {\n\t\t\t\t$t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\t\t\t\n\t\t});\n\t},\n\t// NS ,adjacency models\n\tgetRootNodes : function(currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, level, parent_id, view;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif( typeof currentview !== 'boolean') {\n\t\t\t\tcurrentview = false;\n\t\t\t}\n\t\t\tif(currentview) {\n\t\t\t\tview = $($t).jqGrid('getRowData', null, true);\n\t\t\t} else {\n\t\t\t\tview = $t.p.data;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tlevel = $t.p.treeReader.level_field;\n\t\t\t\t\t$(view).each(function() {\n\t\t\t\t\t\tif(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tparent_id = $t.p.treeReader.parent_id_field;\n\t\t\t\t\t$(view).each(function(){\n\t\t\t\t\t\tif(this[parent_id] === null || String(this[parent_id]).toLowerCase() === \"null\") {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeDepth : function(rc) {\n\t\tvar ret = null;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar $t = this;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar level = $t.p.treeReader.level_field;\n\t\t\t\t\tret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tret = $($t).jqGrid(\"getNodeAncestors\",rc).length;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetNodeParent : function(rc) {\n\t\tvar result = null;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {\n\t\t\t\t\t\t\tresult = this;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id,\n\t\t\t\t\tind = rc[dtid], pos = $t.p._index[ind];\n\t\t\t\t\twhile(pos--) {\n\t\t\t\t\t\tif($t.p.data[pos][dtid] === $.jgrid.stripPref($t.p.idPrefix, rc[parent_id])) {\n\t\t\t\t\t\t\tresult = $t.p.data[pos];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeChildren : function(rc, currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar i, len = currentview ? this.rows.length : this.p.data.length, row;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && String(row[parent_id]) === $.jgrid.stripPref($t.p.idPrefix, rc[dtid])) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetFullTreeNode : function(rc, expand) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, len,expanded = $t.p.treeReader.expanded_field;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif(expand == null || typeof expand !== 'boolean') {\n\t\t\t\texpand = false;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {\n\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tif(rc) {\n\t\t\t\t\tresult.push(rc);\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\t$(this.p.data).each(function(i){\n\t\t\t\t\t\tlen = result.length;\n\t\t\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\t\t\tif ($.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) === this[parent_id]) {\n\t\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\t\n\t// End NS, adjacency Model\n\tgetNodeAncestors : function(rc, reverse, expanded) {\n\t\tvar ancestors = [];\n\t\tif(reverse === undefined ) {\n\t\t\treverse = false;\n\t\t}\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tif(expanded === undefined ) {\n\t\t\t\texpanded = false;\n\t\t\t} else {\n\t\t\t\texpanded = this.p.treeReader.expanded_field;\n\t\t\t}\n\t\t\tvar parent = $(this).jqGrid(\"getNodeParent\",rc);\n\t\t\twhile (parent) {\n\t\t\t\tif(expanded) {\n\t\t\t\t\ttry{\n\t\t\t\t\t\tparent[expanded] = true;\n\t\t\t\t\t} catch (etn) {}\n\t\t\t\t}\n\t\t\t\tif(reverse) {\n\t\t\t\t\tancestors.unshift(parent);\n\t\t\t\t} else {\n\t\t\t\tancestors.push(parent);\n\t\t\t\t}\n\t\t\t\tparent = $(this).jqGrid(\"getNodeParent\",parent);\t\n\t\t\t}\n\t\t});\n\t\treturn ancestors;\n\t},\n\tisVisibleNode : function(rc) {\n\t\tvar result = true;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar ancestors = $($t).jqGrid(\"getNodeAncestors\",rc),\n\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t$(ancestors).each(function(){\n\t\t\t\tresult = result && this[expanded];\n\t\t\t\tif(!result) {return false;}\n\t\t\t});\n\t\t});\n\t\treturn result;\n\t},\n\tisNodeLoaded : function(rc) {\n\t\tvar result;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar isLeaf = $t.p.treeReader.leaf_field,\n\t\t\tloaded = $t.p.treeReader.loaded;\n\t\t\tif(rc !== undefined ) {\n\t\t\t\tif(rc[loaded] !== undefined) {\n\t\t\t\t\tresult = rc[loaded];\n\t\t\t\t} else if( rc[isLeaf] || $($t).jqGrid(\"getNodeChildren\",rc).length > 0){\n\t\t\t\t\tresult = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tsetLeaf : function (rc, state, collapsed) {\n\t\treturn this.each(function(){\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0],\n\t\t\tisLeaf = this.p.treeReader.leaf_field;\n\t\t\ttry {\n\t\t\t\tvar dr = this.p._index[id];\n\t\t\t\tif(dr != null) {\n\t\t\t\t\tthis.p.data[dr][isLeaf] = state;\n\t\t\t\t}\n\t\t\t} catch(E){}\n\t\t\tif(state === true) {\n\t\t\t\t// set it in data\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus \"+this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.leaf +\" tree-leaf\");\n\t\t\t} else if(state === false) {\n\t\t\t\tvar ico = this.p.treeIcons.minus+\" tree-minus\";\n\t\t\t\tif(collapsed) {\n\t\t\t\t\tico = this.p.treeIcons.plus+\" tree-plus\";\n\t\t\t\t}\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.leaf +\" tree-leaf\").addClass( ico );\n\t\t\t}\t\n\t\t});\n\t},\n\treloadNode: function(rc, reloadcurrent) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar rid = this.p.localReader.id,\n\t\t\tcurrselection  = this.p.selrow;\n\n\t\t\t$(this).jqGrid(\"delChildren\", rc[rid]);\n\n\t\t\tif(reloadcurrent=== undefined) {\n\t\t\t\treloadcurrent = false;\n\t\t\t}\n\t\t\t\n\t\t\tif(!reloadcurrent) {\n\t\t\t\tif(!jQuery._data( this, \"events\" ).jqGridAfterSetTreeNode) {\n\t\t\t\t\t$(this).on(\"jqGridAfterSetTreeNode.reloadNode\", function(){\n\t\t\t\t\t\tvar isLeaf = this.p.treeReader.leaf_field;\n\t\t\t\t\t\tif(this.p.reloadnode ) {\n\t\t\t\t\t\t\tvar rc = this.p.reloadnode,\n\t\t\t\t\t\t\tchld = $(this).jqGrid('getNodeChildren', rc);\n\t\t\t\t\t\t\tif(rc[isLeaf] && chld.length) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, false);\n\t\t\t\t\t\t\t} else if(!rc[isLeaf] && chld.length === 0) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.p.reloadnode = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tisLeaf = this.p.treeReader.leaf_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0];\n\n\t\t\trc[expanded] = true;\n\t\t\tif(!rc[isLeaf]) {\n\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t}\n\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\tthis.p.reloadnode = rc;\n\t\t\tif(reloadcurrent) {\n\t\t\t\tthis.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1;\n\t\t\t\t$(this).jqGrid('delRowData', id);\n\t\t\t}\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t}\n\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\n\t\t\trc[loaded] = true;\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}});\n\t\t\t}\n\t\t});\n\t},\n\texpandNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tif(!rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],\n\t\t\t\tposition = this.p._index[id],\n\t\t\t\tret = $.isFunction(this.p.beforeExpandTreeGridNode) ? this.p.beforeExpandTreeGridNode.call(this, id, rc ) : true;\n\t\t\t\tif( ret === false ) { return; }\n\n\t\t\t\tif( $(this).jqGrid(\"isNodeLoaded\",this.p.data[position]) ) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t} else if (!this.grid.hDiv.loading) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t\t\t}\n\t\t\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\t\trc[loaded] = true;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',parentid:'',n_level:''}}); \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($.isFunction(this.p.afterExpandTreeGridNode)) {\n\t\t\t\t\tthis.p.afterExpandTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tcollapseNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field;\n\t\t\tif(rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\tret = $.isFunction(this.p.beforeCollapseTreeGridNode) ? this.p.beforeCollapseTreeGridNode.call(this, id, rc ) : true,\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0];\n\t\t\t\trc[expanded] = false;\n\t\t\t\tif( ret === false ) { return; }\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus\").addClass(this.p.treeIcons.plus+\" tree-plus\");\n\t\t\t\tif($.isFunction(this.p.afterCollapseTreeGridNode)) {\n\t\t\t\t\tthis.p.afterCollapseTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tSortTree : function( sortname, newDir, st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\trec, records = [], $t = this, query, roots,\n\t\t\trt = $(this).jqGrid(\"getRootNodes\", $t.p.search);\n\t\t\t// Sorting roots\n\t\t\tquery = $.jgrid.from.call(this, rt);\n\t\t\tquery.orderBy(sortname,newDir,st, datefmt);\n\t\t\troots = query.select();\n\n\t\t\t// Sorting children\n\t\t\tfor (i = 0, len = roots.length; i < len; i++) {\n\t\t\t\trec = roots[i];\n\t\t\t\trecords.push(rec);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, rec, sortname, newDir,st, datefmt);\n\t\t\t}\n\t\t\t$.each(records, function(index) {\n\t\t\t\tvar id  = $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr:eq('+index+')').after($('tr#'+$.jgrid.jqID(id),$t.grid.bDiv));\n\t\t\t});\n\t\t\tquery = null;roots=null;records=null;\n\t\t});\n\t},\n\tsearchTree : function ( recs ) {\n\t\tvar i= recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(i) {\n\t\t\t\tlid = this.p.localReader.id;\n\t\t\t\twhile( i-- ) { // reverse \n\t\t\t\t\tancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true);\n\t\t\t\t\t//add the searched item\n\t\t\t\t\tancestors.push(recs[i]);\n\t\t\t\t\ttid = ancestors[0][lid]; \n\t\t\t\t\tif($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing\n\t\t\t\t\t\tfor( j = 0, alen = ancestors.length; j < alen; j++) {\n\t\t\t\t\t\t\t//$.inArray ?!?\n\t\t\t\t\t\t\tvar found = false;\n\t\t\t\t\t\t\tfor( k=0, rlen = result.length; k < rlen; k++) {\n\t\t\t\t\t\t\t\tif(ancestors[j][lid] === result[k][lid]) {\n\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\t\tresult.push(ancestors[j]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\troots.push( tid );\n\t\t\t\t\t\t}\n\t\t\t\t\tresult = result.concat( ancestors );\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tcollectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\tchild, ch, query, children;\n\t\t\tch = $(this).jqGrid(\"getNodeChildren\",rec, this.p.search);\n\t\t\tquery = $.jgrid.from.call(this, ch);\n\t\t\tquery.orderBy(sortname, newDir, st, datefmt);\n\t\t\tchildren = query.select();\n\t\t\tfor (i = 0, len = children.length; i < len; i++) {\n\t\t\t\tchild = children[i];\n\t\t\t\trecords.push(child);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, child, sortname, newDir, st, datefmt); \n\t\t\t}\n\t\t});\n\t},\n\t// experimental \n\tsetTreeRow : function(rowid, data) {\n\t\tvar success=false;\n\t\tthis.each(function(){\n\t\t\tvar t = this;\n\t\t\tif(!t.grid || !t.p.treeGrid) {return;}\n\t\t\tsuccess = $(t).jqGrid(\"setRowData\",rowid,data);\n\t\t});\n\t\treturn success;\n\t},\n\tdelTreeNode : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id, i,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (i=0;i<dr.length;i++){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tdelChildren : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (var i=0;i<dr.length;i++){\n\t\t\t\t\t\tif(dr[i][rid] !== rowid)\n\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\taddChildNode : function( nodeid, parentid, data, expandData ) {\n\t\t//return this.each(function(){\n\t\tvar $t = this[0];\n\t\tif(data) {\n\t\t\t// we suppose tha the id is autoincremet and\n\t\t\tvar expanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\t//icon = $t.p.treeReader.icon_field,\n\t\t\tparent = $t.p.treeReader.parent_id_field,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field,\n\t\t\tloaded = $t.p.treeReader.loaded,\n\t\t\tmethod, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;\n\t\t\tif(expandData===undefined) {expandData = false;}\n\t\t\tif ( nodeid == null ) {\n\t\t\t\ti = $t.p.data.length-1;\n\t\t\t\tif(\ti>= 0 ) {\n\t\t\t\t\twhile(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}\n\t\t\t\t}\n\t\t\t\tnodeid = max+1;\n\t\t\t}\n\t\t\tvar prow = $($t).jqGrid('getInd', parentid);\n\t\t\tleaf = false;\n\t\t\t// if not a parent we assume root\n\t\t\tif ( parentid === undefined  || parentid === null || parentid===\"\") {\n\t\t\t\tparentid = null;\n\t\t\t\trowind = null;\n\t\t\t\tmethod = 'last';\n\t\t\t\tparentlevel = $t.p.tree_root_level;\n\t\t\t\ti = $t.p.data.length+1;\n\t\t\t} else {\n\t\t\t\tmethod = 'after';\n\t\t\t\tparentindex = $t.p._index[parentid];\n\t\t\t\tparentdata = $t.p.data[parentindex];\n\t\t\t\tparentid = parentdata[$t.p.localReader.id];\n\t\t\t\tparentlevel = parseInt(parentdata[level],10)+1;\n\t\t\t\tvar childs = $($t).jqGrid('getFullTreeNode', parentdata);\n\t\t\t\t// if there are child nodes get the last index of it\n\t\t\t\tif(childs.length) {\n\t\t\t\t\ti = childs[childs.length-1][$t.p.localReader.id];\n\t\t\t\t\trowind = i;\n\t\t\t\t\ti = $($t).jqGrid('getInd',rowind)+1;\n\t\t\t\t} else {\n\t\t\t\t\ti = $($t).jqGrid('getInd', parentid)+1;\n\t\t\t\t}\n\t\t\t\t// if the node is leaf\n\t\t\t\tif(parentdata[isLeaf]) {\n\t\t\t\t\tleaf = true;\n\t\t\t\t\tparentdata[expanded] = true;\n\t\t\t\t\t//var prow = $($t).jqGrid('getInd', parentid);\n\t\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t\t.find(\"span.cell-wrapperleaf\").removeClass(\"cell-wrapperleaf\").addClass(\"cell-wrapper\")\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find(\"div.tree-leaf\").removeClass($t.p.treeIcons.leaf+\" tree-leaf\").addClass($t.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\t$t.p.data[parentindex][isLeaf] = false;\n\t\t\t\t\tparentdata[loaded] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlen = i+1;\n\n\t\t\tif( data[expanded]===undefined)  {data[expanded]= false;}\n\t\t\tif( data[loaded]===undefined )  { data[loaded] = false;}\n\t\t\tdata[level] = parentlevel;\n\t\t\tif( data[isLeaf]===undefined) {data[isLeaf]= true;}\n\t\t\tif( $t.p.treeGridModel === \"adjacency\") {\n\t\t\t\tdata[parent] = parentid;\n\t\t\t}\n\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t// this method requiere more attention\n\t\t\t\tvar query, res, key;\n\t\t\t\t//maxright = parseInt(maxright,10);\n\t\t\t\t// ToDo - update grid data\n\t\t\t\tif(parentid !== null) {\n\t\t\t\t\tmaxright = parseInt(parentdata[right],10);\n\t\t\t\t\tquery = $.jgrid.from.call($t, $t.p.data);\n\t\t\t\t\tquery = query.greaterOrEquals(right,maxright,{stype:'integer'});\n\t\t\t\t\tres = query.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];\n\t\t\t\t\t\t\t\tres[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright;\n\t\t\t\t\tdata[right]= maxright+1;\n\t\t\t\t} else {\n\t\t\t\t\tmaxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright+1;\n\t\t\t\t\tdata[right] = maxright + 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( parentid === null || $($t).jqGrid(\"isNodeLoaded\",parentdata) || leaf ) {\n\t\t\t\t\t$($t).jqGrid('addRowData', nodeid, data, method, rowind);\n\t\t\t\t\t$($t).jqGrid('setTreeNode', i, len);\n\t\t\t}\n\t\t\tif(parentdata && !parentdata[expanded] && expandData) {\n\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.click();\n\t\t\t}\n\t\t}\n\t\t//});\n\t}\n});\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/grid.utils.js",
    "content": "/*global jQuery, define, URL */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\n\t// Browser globals\n\t\tfactory();\n\t}\n}(function() {\n\"use strict\";\n//module begin\nwindow.jqGridUtils = {\n\tstringify : function(obj) {\n\t\treturn JSON.stringify(obj,function(key, value){\n            return (typeof value === 'function' ) ? value.toString() : value;\n        });\n\t},\n\tparse : function(str) {\n\t\treturn JSON.parse(str,function(key, value){\n\t\t\tif(typeof value === \"string\" && value.indexOf(\"function\") !== -1) {\n\t\t\t\tvar sv = value.split(\" \");\n\t\t\t\tif(sv[0].trim() === 'function' && value.trim().slice(-1) === \"}\") {\n\t\t\t\t\treturn  eval('('+value+')');\n\t\t\t\t} else {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t},\n\tencode : function ( text ) { // repeated, but should not depend on grid\n\t\treturn String(text).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;');\n\t},\n\tjsonToXML : function ( tree, options ) {\n\t\tvar o = $.extend( {\n\t\t\txmlDecl : '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\\n',\n\t\t\tattr_prefix : '-',\n\t\t\tencode : true\n\t\t}, options || {}),\n\t\tthat = this,\n\t\tscalarToxml = function ( name, text ) {\n\t\t\tif ( name === \"#text\" ) {\n\t\t\t\treturn (o.encode ? that.encode(text) : text);\n\t\t\t} else if(typeof(text) ==='function') {\n\t\t\t\treturn \"<\"+name+\"><![CDATA[\"+ text +\"]]></\"+name+\">\\n\";\n\t\t\t} if(text === \"\") {\n\t\t\t\treturn \"<\"+name+\">__EMPTY_STRING_</\"+name+\">\\n\";\n\t\t\t} else {\n\t\t\t\treturn \"<\"+name+\">\"+(o.encode ? that.encode(text) : text )+\"</\"+name+\">\\n\";\n\t\t\t}\n\t\t},\n\t\tarrayToxml = function ( name, array ) {\n\t\t\tvar out = [];\n\t\t    for( var i=0; i<array.length; i++ ) {\n\t\t\t\tvar val = array[i];\n\t\t        if ( typeof(val) === \"undefined\" || val == null ) {\n\t\t\t\t\tout[out.length] = \"<\"+name+\" />\";\n\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor == Array ) {\n\t\t\t\t\tout[out.length] = arrayToxml( name, val );\n\t\t\t\t} else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\tout[out.length] = hashToxml( name, val );\n\t\t\t\t} else {\n\t\t\t\t\tout[out.length] = scalarToxml( name, val );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!out.length) {\n\t\t\t\tout[0] = \"<\"+ name+\">__EMPTY_ARRAY_</\"+name+\">\\n\";\n\t\t\t}\n\t\t\treturn out.join(\"\");\n\t\t},\n\t\thashToxml = function ( name, tree ) {\n\t\t\tvar elem = [];\n\t\t    var attr = [];\n\t\t    for( var key in tree ) {\n\t\t\t\tif ( ! tree.hasOwnProperty(key) ) continue;\n\t\t\t\tvar val = tree[key];\n\t\t\t\tif ( key.charAt(0) !==  o.attr_prefix ) {\n\t\t\t\t\tif ( val == null ) { // null or undefined\n\t\t               elem[elem.length] = \"<\"+key+\" />\";\n\t\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor === Array ) {\n\t\t                elem[elem.length] = arrayToxml( key, val );\n\t\t            } else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\t\telem[elem.length] = hashToxml( key, val );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[elem.length] = scalarToxml( key, val );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tattr[attr.length] = \" \"+(key.substring(1))+'=\"'+(o.encode ? that.encode( val ) : val)+'\"';\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar jattr = attr.join(\"\");\n\t\t\tvar jelem = elem.join(\"\");\n\t\t\tif ( name == null ) { // null or undefined\n\t\t\t\t// no tag\n\t\t\t} else if ( elem.length > 0 ) {\n\t\t\t\tif ( jelem.match( /\\n/ )) {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\\n\"+jelem+\"</\"+name+\">\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\"  +jelem+\"</\"+name+\">\\n\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tjelem = \"<\"+name+jattr+\" />\\n\";\n\t\t\t}\n\t\t\treturn jelem;\n\t\t};\n\n\t\tvar xml = hashToxml( null, tree );\n\t\treturn o.xmlDecl + xml;\n\t},\n\txmlToJSON : function ( root, options ) {\n\t\tvar o = $.extend ( {\n\t\t\tforce_array : [], //[ \"rdf:li\", \"item\", \"-xmlns\" ];\n\t\t\tattr_prefix : '-'\n\t\t}, options || {} );\n\t\t\n\t\tif(!root) { return; }\n\t\t\n\t    var __force_array = {};\n\t\tif ( o.force_array ) {\n\t\t\tfor( var i=0; i< o.force_array.length; i++ ) {\n\t\t\t\t__force_array[o.force_array[i]] = 1;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(typeof root === 'string') {\n\t\t\troot = $.parseXML(root);\n\t\t} \n\t\tif(root.documentElement) {\n\t\t\troot = root.documentElement;\n\t\t}\n\t\tvar addNode = function ( hash, key, cnts, val ) {\n\t\t\tif(typeof val === 'string') {\n\t\t\t\tif( val.indexOf('function') !== -1) {\n\t\t\t\t\tval =  eval( '(' + val +')'); // we need this in our implement\n\t\t\t\t} else {\n\t\t\t\t\tswitch(val) {\n\t\t\t\t\t\tcase '__EMPTY_ARRAY_' :\n\t\t\t\t\t\t\tval = [];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase '__EMPTY_STRING_':\n\t\t\t\t\t\t\tval = \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"false\" :\n\t\t\t\t\t\t\tval = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"true\":\n\t\t\t\t\t\t\tval = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} \n\t\t\tif ( __force_array[key] ) {\n\t\t\t\tif ( cnts === 1 ) {\n\t\t\t\t\thash[key] = [];\n\t\t\t\t}\n\t\t\t\thash[key][hash[key].length] = val;      // push\n\t\t\t} else if ( cnts === 1 ) {                   // 1st sibling\n\t\t\t\thash[key] = val;\n\t\t\t} else if ( cnts === 2 ) {                   // 2nd sibling\n\t\t\t\thash[key] = [ hash[key], val ];\n\t\t\t} else {                                    // 3rd sibling and more\n\t\t\t\thash[key][hash[key].length] = val;\n\t\t\t}\n\t\t},\n\t\tparseElement = function ( elem ) {\n\t\t\t//  COMMENT_NODE\n\t\t\tif ( elem.nodeType === 7 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t//  TEXT_NODE CDATA_SECTION_NODE\n\t\t\tif ( elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\tvar bool = elem.nodeValue.match( /[^\\x00-\\x20]/ );\n\t\t\t\tif ( bool == null ) return;     // ignore white spaces\n\t\t\t\treturn elem.nodeValue;\n\t\t\t}\n\t\t\t\n\t\t\tvar retval,\tcnt = {}, i, key, val;\n\n\t\t\t//  parse attributes\n\t\t\tif ( elem.attributes && elem.attributes.length ) {\n\t\t\t\tretval = {};\n\t\t\t\tfor ( i=0; i<elem.attributes.length; i++ ) {\n\t\t\t\t\tkey = elem.attributes[i].nodeName;\n\t\t\t\t\tif ( typeof(key) !== \"string\" )  {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tval = elem.attributes[i].nodeValue;\n\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tkey = o.attr_prefix + key;\n\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t}\n\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//  parse child nodes (recursive)\n\t\t\tif ( elem.childNodes && elem.childNodes.length ) {\n\t\t\t\tvar textonly = true;\n\t\t\t\tif ( retval ) {\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}        // some attributes exists\n\t\t\t\tfor ( i=0; i<elem.childNodes.length && textonly; i++ ) {\n\t\t\t\t\tvar ntype = elem.childNodes[i].nodeType;\n\t\t\t\t\tif ( ntype === 3 || ntype === 4 ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}\n\t\t\t\tif ( textonly ) {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tretval += elem.childNodes[i].nodeValue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = {};\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tkey = elem.childNodes[i].nodeName;\n\t\t\t\t\t\tif ( typeof(key) !== \"string\" ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tval = parseElement( elem.childNodes[i] );\n\t\t\t\t\t\tif ( !val ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn retval;\n\t\t};\n\t\t\n\t    var json = parseElement( root );   // parse root node\n\t\tif ( __force_array[root.nodeName] ) {\n\t\t\tjson = [ json ];\n\t\t}\n\t\tif ( root.nodeType !== 11 ) {            // DOCUMENT_FRAGMENT_NODE\n\t\t\tvar tmp = {};\n\t\t\ttmp[root.nodeName] = json;          // root nodeName\n\t\t\tjson = tmp;\n\t\t}\n\t\treturn json;\n\t},\n\tsaveAs : function (data, fname, opts) {\n\t\topts = $.extend(true,{\n\t\t\ttype : 'plain/text;charset=utf-8'\n\t\t}, opts || {});\n\n\t\tvar file, url, tmp = []; \n\n\t\tfname = fname == null || fname === '' ? 'jqGridFile.txt' : fname;\n\n\t\tif(!$.isArray(data) ) {\n\t\t\ttmp[0]= data ;\n\t\t} else {\n\t\t\ttmp = data;\t\n\t\t}\n\t\ttry {\n\t\t\tfile = new File(tmp, fname, opts);\n\t\t} catch (e) {\n\t\t\tfile = new Blob(tmp, opts);\n\t\t}\n\t\turl = URL.createObjectURL(file);\n\t\tvar a = document.createElement(\"a\");\n\t\ta.href = url;\n\t\ta.download = fname;\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tsetTimeout(function() {\n\t\t\tdocument.body.removeChild(a);\n\t\t\twindow.URL.revokeObjectURL(url);  \n\t\t}, 0);\t\n\t}\n};\n//module end\nreturn window.jqGridUtils;\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ar.js",
    "content": "/**\n * jqGrid Arabic Translation\n * \n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ar\"] = {\n\tdefaults : {\n\t\trecordtext: \"تسجيل {0} - {1} على {2}\",\n\t\temptyrecords: \"لا يوجد تسجيل\",\n\t\tloadtext: \"تحميل...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"صفحة {0} على {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"بحث...\",\n\t\tFind: \"بحث\",\n\t\tReset: \"إلغاء\",\n\t\todata: [{ oper:'eq', text:\"يساوي\"},{ oper:'ne', text:\"يختلف\"},{ oper:'lt', text:\"أقل\"},{ oper:'le', text:\"أقل أو يساوي\"},{ oper:'gt', text:\"أكبر\"},{ oper:'ge', text:\"أكبر أو يساوي\"},{ oper:'bw', text:\"يبدأ بـ\"},{ oper:'bn', text:\"لا يبدأ بـ\"},{ oper:'in', text:\"est dans\"},{ oper:'ni', text:\"n'est pas dans\"},{ oper:'ew', text:\"ينته بـ\"},{ oper:'en', text:\"لا ينته بـ\"},{ oper:'cn', text:\"يحتوي\"},{ oper:'nc', text:\"لا يحتوي\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"مع\", text: \"الكل\" },\t{ op: \"أو\",  text: \"لا أحد\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n},\n\tedit : {\n\t\taddCaption: \"اضافة\",\n\t\teditCaption: \"تحديث\",\n\t\tbSubmit: \"تثبيث\",\n\t\tbCancel: \"إلغاء\",\n\t\tbClose: \"غلق\",\n\t\tsaveData: \"تغيرت المعطيات هل تريد التسجيل ?\",\n\t\tbYes: \"نعم\",\n\t\tbNo: \"لا\",\n\t\tbExit: \"إلغاء\",\n\t\tmsg: {\n\t\t\trequired: \"خانة إجبارية\",\n\t\t\tnumber: \"سجل رقم صحيح\",\n\t\t\tminValue: \"يجب أن تكون القيمة أكبر أو تساوي 0\",\n\t\t\tmaxValue: \"يجب أن تكون القيمة أقل أو تساوي 0\",\n\t\t\temail: \"بريد غير صحيح\",\n\t\t\tinteger: \"سجل عدد طبييعي صحيح\",\n\t\t\turl: \"ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')\",\n\t\t\tnodefined : \" ليس محدد!\",\n\t\t\tnovalue : \" قيمة الرجوع مطلوبة!\",\n\t\t\tcustomarray : \"يجب على الدالة الشخصية أن تنتج جدولا\",\n\t\t\tcustomfcheck : \"الدالة الشخصية مطلوبة في حالة التحقق الشخصي\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"رأيت التسجيلات\",\n\t\tbClose: \"غلق\"\n\t},\n\tdel : {\n\t\tcaption: \"حذف\",\n\t\tmsg: \"حذف التسجيلات المختارة ?\",\n\t\tbSubmit: \"حذف\",\n\t\tbCancel: \"إلغاء\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"تغيير التسجيل المختار\",\n\t\taddtext:\" \",\n\t\taddtitle: \"إضافة تسجيل\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"حذف التسجيل المختار\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"بحث عن تسجيل\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"تحديث الجدول\",\n\t\talertcap: \"تحذير\",\n\t\talerttext: \"يرجى إختيار السطر\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"إظهار السطر المختار\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"إظهار/إخفاء الأعمدة\",\n\t\tbSubmit: \"تثبيث\",\n\t\tbCancel: \"إلغاء\"\n\t},\n\terrors : {\n\t\terrcap : \"خطأ\",\n\t\tnourl : \"لا يوجد عنوان محدد\",\n\t\tnorecords: \"لا يوجد تسجيل للمعالجة\",\n\t\tmodel : \"عدد العناوين (colNames) <> عدد التسجيلات (colModel)!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"الأحد\", \"الإثنين\", \"الثلاثاء\", \"الأربعاء\", \"الخميس\", \"الجمعة\", \"السبت\",\n\t\t\t\t\"الأحد\", \"الإثنين\", \"الثلاثاء\", \"الأربعاء\", \"الخميس\", \"الجمعة\", \"السبت\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"جانفي\", \"فيفري\", \"مارس\", \"أفريل\", \"ماي\", \"جوان\", \"جويلية\", \"أوت\", \"سبتمبر\", \"أكتوبر\", \"نوفمبر\", \"ديسمبر\",\n\t\t\t\t\"جانفي\", \"فيفري\", \"مارس\", \"أفريل\", \"ماي\", \"جوان\", \"جويلية\", \"أوت\", \"سبتمبر\", \"أكتوبر\", \"نوفمبر\", \"ديسمبر\"\n\t\t\t],\n\t\t\tAmPm : [\"صباحا\",\"مساءا\",\"صباحا\",\"مساءا\"],\n\t\t\tS: function (j) {return j == 1 ? 'er' : 'e';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-bg.js",
    "content": "/**\n * jqGrid Bulgarian Translation \n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"bg\"] = {\n\tdefaults : {\n\t\trecordtext: \"{0} - {1} от {2}\",\n\t\temptyrecords: \"Няма запис(и)\",\n\t\tloadtext: \"Зареждам...\",\n\t\tsavetext: \"Записвам...\",\n\t\tpgtext : \"Стр. {0} от {1}\",\n\t\tpgfirst : \"Първа Стр.\",\n\t\tpglast : \"Последна Стр.\",\n\t\tpgnext : \"Следваща Стр.\",\n\t\tpgprev : \"Предишна Стр.\",\n\t\tpgrecs : \"Брой записи на Стр.\",\n\t\tshowhide: \"Свиване/Разтягане на таблицата\",\n\t\t// mobile\n\t\tpagerCaption : \"Таблица::Настр. Страница\",\n\t\tpageText : \"Страница:\",\n\t\trecordPage : \"Записи на стр.\",\n\t\tnomorerecs : \"Няма повече записи...\",\n\t\tscrollPullup: \"Издърпайте нагоре за повече...\",\n\t\tscrollPulldown : \"Дръпнете надолу за опресняване...\",\n\t\tscrollRefresh : \"Освободете за да опресните...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Търсене...\",\n\t\tFind: \"Намери\",\n\t\tReset: \"Изчисти\",\n\t\todata: [{ oper:'eq', text:\"равно\"},{ oper:'ne', text:\"различно\"},{ oper:'lt', text:\"по-малко\"},{ oper:'le', text:\"по-малко или=\"},{ oper:'gt', text:\"по-голямо\"},{ oper:'ge', text:\"по-голямо или =\"},{ oper:'bw', text:\"започва с\"},{ oper:'bn', text:\"не започва с\"},{ oper:'in', text:\"се намира в\"},{ oper:'ni', text:\"не се намира в\"},{ oper:'ew', text:\"завършва с\"},{ oper:'en', text:\"не завършава с\"},{ oper:'cn', text:\"съдържа\"},{ oper:'nc', text:\"не съдържа\"},{ oper:'nu', text:'е NULL'},{ oper:'nn', text:'не е NULL'}, {oper:'bt', text:'между'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"&nbsp;И \" },\t{ op: \"OR\",  text: \"ИЛИ\" }\t],\n\t\toperandTitle : \"Натисни за избор на операнд.\",\n\t\tresetTitle : \"Изчисти стойността\",\n\t\taddsubgrup : \"Добави група\",\n\t\taddrule : \"Добави правило\",\n\t\tdelgroup : \"Изтрий група\",\n\t\tdelrule : \"Изтрий правило\"\n\t},\n\tedit : {\n\t\taddCaption: \"Нов Запис\",\n\t\teditCaption: \"Редакция Запис\",\n\t\tbSubmit: \"Запиши\",\n\t\tbCancel: \"Изход\",\n\t\tbClose: \"Затвори\",\n\t\tsaveData: \"Данните са променени! Да съхраня ли промените?\",\n\t\tbYes : \"Да\",\n\t\tbNo : \"Не\",\n\t\tbExit : \"Отказ\",\n\t\tmsg: {\n\t\t\trequired:\"Полето е задължително\",\n\t\t\tnumber:\"Въведете валидно число!\",\n\t\t\tminValue:\"стойността трябва да е по-голяма или равна от\",\n\t\t\tmaxValue:\"стойността трябва да е по-малка или равна от\",\n\t\t\temail: \"не е валиден ел. адрес\",\n\t\t\tinteger: \"Въведете валидно цяло число\",\n\t\t\tdate: \"Въведете валидна дата\",\n\t\t\turl: \"e невалиден URL. Изискава се префикс('http://' или 'https://')\",\n\t\t\tnodefined : \" е недефинирана!\",\n\t\t\tnovalue : \" изисква връщане на стойност!\",\n\t\t\tcustomarray : \"Потреб. Функция трябва да върне масив!\",\n\t\t\tcustomfcheck : \"Потребителска функция е задължителна при този тип елемент!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Преглед запис\",\n\t\tbClose: \"Затвори\"\n\t},\n\tdel : {\n\t\tcaption: \"Изтриване\",\n\t\tmsg: \"Да изтрия ли избраният запис?\",\n\t\tbSubmit: \"Изтрий\",\n\t\tbCancel: \"Отказ\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Редакция избран запис\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Добавяне нов запис\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Изтриване избран запис\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Търсене запис(и)\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Обнови таблица\",\n\t\talertcap: \"Предупреждение\",\n\t\talerttext: \"Моля, изберете запис\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Преглед избран запис\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Съхрани запис\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Отказ редакция\",\n\t\tselectcaption : \"Действия...\"\n\t},\n\tcol : {\n\t\tcaption: \"Избери колони\",\n\t\tbSubmit: \"Ок\",\n\t\tbCancel: \"Изход\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Грешка\",\n\t\tnourl : \"Няма посочен url адрес\",\n\t\tnorecords: \"Няма запис за обработка\",\n\t\tmodel : \"Модела не съответства на имената!\"\t\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\" лв.\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Нед\", \"Пон\", \"Вт\", \"Ср\", \"Чет\", \"Пет\", \"Съб\",\n\t\t\t\t\"Неделя\", \"Понеделник\", \"Вторник\", \"Сряда\", \"Четвъртък\", \"Петък\", \"Събота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Яну\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Юни\", \"Юли\", \"Авг\", \"Сеп\", \"Окт\", \"Нов\", \"Дек\",\n\t\t\t\t\"Януари\", \"Февруари\", \"Март\", \"Април\", \"Май\", \"Юни\", \"Юли\", \"Август\", \"Септември\", \"Октомври\", \"Ноември\", \"Декември\"\n\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function (j) {\n\t\t\t\tif(j==7 || j==8 || j== 27 || j== 28) {\n\t\t\t\t\treturn 'ми';\n\t\t\t\t}\n\t\t\t\treturn ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];\n\t\t\t},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Сортирай възходящо\",\n\t\tsortdesc : \"Сортирай низходящо\",\n\t\tcolumns : \"Колони\",\n\t\tfilter : \"Филтрирай\",\n\t\tgrouping : \"Групирай по\",\n\t\tungrouping : \"Разгрупиране\",\n\t\tsearchTitle : \"Търси данни със стойност, която\",\n\t\tfreeze : \"Неподвижна\",\n\t\tunfreeze : \"Отмяна неподвижност\",\n\t\treorder : \"Премести за пренареждане\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ca.js",
    "content": "/**\n * jqGrid Catalan Translation\n * Traducció jqGrid en Catatà per Faserline, S.L.\n * http://www.faserline.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ca\"] = {\n\tdefaults : {\n\t\trecordtext: \"Mostrant {0} - {1} de {2}\",\n\t    emptyrecords: \"Sense registres que mostrar\",\n\t\tloadtext: \"Carregant...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Pàgina {0} de {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Cerca...\",\n\t\tFind: \"Cercar\",\n\t\tReset: \"Buidar\",\n\t    odata: [{ oper:'eq', text:\"equal\"},{ oper:'ne', text:\"not equal\"},{ oper:'lt', text:\"less\"},{ oper:'le', text:\"less or equal\"},{ oper:'gt', text:\"greater\"},{ oper:'ge', text:\"greater or equal\"},{ oper:'bw', text:\"begins with\"},{ oper:'bn', text:\"does not begin with\"},{ oper:'in', text:\"is in\"},{ oper:'ni', text:\"is not in\"},{ oper:'ew', text:\"ends with\"},{ oper:'en', text:\"does not end with\"},{ oper:'cn', text:\"contains\"},{ oper:'nc', text:\"does not contain\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"tot\" },\t{ op: \"OR\",  text: \"qualsevol\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n\t},\n\tedit : {\n\t\taddCaption: \"Afegir registre\",\n\t\teditCaption: \"Modificar registre\",\n\t\tbSubmit: \"Guardar\",\n\t\tbCancel: \"Cancelar\",\n\t\tbClose: \"Tancar\",\n\t\tsaveData: \"Les dades han canviat. Guardar canvis?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t\tmsg: {\n\t\t    required:\"Camp obligatori\",\n\t\t    number:\"Introdueixi un nombre\",\n\t\t    minValue:\"El valor ha de ser major o igual que \",\n\t\t    maxValue:\"El valor ha de ser menor o igual a \",\n\t\t    email: \"no és una direcció de correu vàlida\",\n\t\t    integer: \"Introdueixi un valor enter\",\n\t\t\tdate: \"Introdueixi una data correcta \",\n\t\t\turl: \"no és una URL vàlida. Prefix requerit ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Veure registre\",\n\t\tbClose: \"Tancar\"\n\t},\n\tdel : {\n\t\tcaption: \"Eliminar\",\n\t\tmsg: \"¿Desitja eliminar els registres seleccionats?\",\n\t\tbSubmit: \"Eliminar\",\n\t\tbCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Modificar fila seleccionada\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Agregar nova fila\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Eliminar fila seleccionada\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Cercar informació\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Refrescar taula\",\n\t\talertcap: \"Avís\",\n\t\talerttext: \"Seleccioni una fila\",\n\t\tviewtext: \" \",\n\t\tviewtitle: \"Veure fila seleccionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n// setcolumns module\n\tcol : {\n\t\tcaption: \"Mostrar/ocultar columnes\",\n\t\tbSubmit: \"Enviar\",\n\t\tbCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"No s'ha especificat una URL\",\n\t\tnorecords: \"No hi ha dades per processar\",\n\t\tmodel : \"Les columnes de noms són diferents de les columnes del model\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dg\", \"Dl\", \"Dt\", \"Dc\", \"Dj\", \"Dv\", \"Ds\",\n\t\t\t\t\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Gen\", \"Febr\", \"Març\", \"Abr\", \"Maig\", \"Juny\", \"Jul\", \"Ag\", \"Set\", \"Oct\", \"Nov\", \"Des\",\n\t\t\t\t\"Gener\", \"Febrer\", \"Març\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd-m-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t        ISO8601Long:\"Y-m-d H:i:s\",\n\t\t        ISO8601Short:\"Y-m-d\",\n\t\t        ShortDate: \"n/j/Y\",\n\t\t        LongDate: \"l, F d, Y\",\n\t\t        FullDateTime: \"l, F d, Y g:i:s A\",\n\t\t        MonthDay: \"F d\",\n\t\t        ShortTime: \"g:i A\",\n\t\t        LongTime: \"g:i:s A\",\n\t\t        SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t        UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t        YearMonth: \"F, Y\"\n\t\t    },\n\t\t    reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: 'show',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-cn.js",
    "content": "/**\n * jqGrid Chinese Translation\n * 咖啡兔 yanhonglei@gmail.com \n * http://www.kafeitu.me \n * \n * 花岗岩 marbleqi@163.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html \n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"cn\"] = {\n    defaults : {\n        recordtext: \"第{0}到第{1}条\\u3000共 {2} 条\", // 共字前是全角空格\n        emptyrecords: \"没有记录！\",\n        loadtext: \"读取中...\",\n\tsavetext: \"保存中...\",\n        pgtext : \"第{0}页\\u3000共{1}页\",\n\t\tpgfirst : \"第一页\",\n\t\tpglast : \"最后一页\",\n\t\tpgnext : \"下一页\",\n\t\tpgprev : \"上一页\",\n\t\tpgrecs : \"每页记录数\",\n\t\tshowhide: \"切换 展开 折叠 表格\",\n\t\t// mobile\n\t\tpagerCaption : \"表格::页面设置\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"每页记录数\",\n\t\tnomorerecs : \"没有更多记录...\",\n\t\tscrollPullup: \"加载更多...\",\n\t\tscrollPulldown : \"刷新...\",\n\t\tscrollRefresh : \"滚动刷新...\"\n    },\n    search : {\n        caption: \"搜索...\",\n        Find: \"查找\",\n        Reset: \"重置\",\n        odata: [{ oper:'eq', text:'等于\\u3000\\u3000'},{ oper:'ne', text:'不等于\\u3000'},{ oper:'lt', text:'小于\\u3000\\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\\u3000\\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于\\u3000\\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含\\u3000\\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}],\n        groupOps: [ { op: \"AND\", text: \"满足所有条件\" },    { op: \"OR\",  text: \"满足任一条件\" } ],\n\t\toperandTitle : \"单击进行搜索。\",\n\t\tresetTitle : \"重置搜索条件\",\n\t\taddsubgrup : \"添加条件组\",\n\t\taddrule : \"添加条件\",\n\t\tdelgroup : \"删除条件组\",\n\t\tdelrule : \"删除条件\"\t\t\n    },\n    edit : {\n        addCaption: \"添加记录\",\n        editCaption: \"编辑记录\",\n        bSubmit: \"提交\",\n        bCancel: \"取消\",\n        bClose: \"关闭\",\n        saveData: \"数据已修改，是否保存？\",\n        bYes : \"是\",\n        bNo : \"否\",\n        bExit : \"取消\",\n        msg: {\n            required:\"此字段必需\",\n            number:\"请输入有效数字\",\n            minValue:\"输值必须大于等于 \",\n            maxValue:\"输值必须小于等于 \",\n            email: \"这不是有效的e-mail地址\",\n            integer: \"请输入有效整数\",\n            date: \"请输入有效时间\",\n            url: \"无效网址。前缀必须为 ('http://' 或 'https://')\",\n            nodefined : \" 未定义！\",\n            novalue : \" 需要返回值！\",\n            customarray : \"自定义函数需要返回数组！\",\n            customfcheck : \"必须有自定义函数!\"\n        }\n    },\n    view : {\n        caption: \"查看记录\",\n        bClose: \"关闭\"\n    },\n    del : {\n        caption: \"删除\",\n        msg: \"删除所选记录？\",\n        bSubmit: \"删除\",\n        bCancel: \"取消\"\n    },\n    nav : {\n        edittext: \"\",\n        edittitle: \"编辑所选记录\",\n        addtext:\"\",\n        addtitle: \"添加新记录\",\n        deltext: \"\",\n        deltitle: \"删除所选记录\",\n        searchtext: \"\",\n        searchtitle: \"查找\",\n        refreshtext: \"\",\n        refreshtitle: \"刷新表格\",\n        alertcap: \"注意\",\n        alerttext: \"请选择记录\",\n        viewtext: \"\",\n        viewtitle: \"查看所选记录\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"保存记录\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"取消编辑记录\",\n\t\tselectcaption : \"操作...\"\n    },\n    col : {\n        caption: \"选择列\",\n        bSubmit: \"确定\",\n        bCancel: \"取消\"\n    },\n    errors : {\n        errcap : \"错误\",\n        nourl : \"没有设置url\",\n        norecords: \"没有需要处理的记录\",\n        model : \"colNames 和 colModel 长度不等！\"\n    },\n    formatter : {\n        integer : {thousandsSeparator: \",\", defaultValue: '0'},\n        number : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n        currency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n        date : {\n            dayNames:   [\n                \"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\",\n                \"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\",\n            ],\n            monthNames: [\n                \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\", \"十\", \"十一\", \"十二\",\n                \"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n            ],\n            AmPm : [\"am\",\"pm\",\"上午\",\"下午\"],\n            S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n            srcformat: 'Y-m-d',\n            newformat: 'Y-m-d',\n            parseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n            masks : {\n                // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n                // and see http://docs.jquery.com/UI/Datepicker/formatDate\n                // and https://github.com/jquery/globalize#dates for alternative formats used frequently\n                // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n                // information about date, time, numbers and currency formats used in different countries\n                // one should just convert the information in PHP format\n                ISO8601Long:\"Y-m-d H:i:s\",\n                ISO8601Short:\"Y-m-d\",\n                // short date:\n                //    n - Numeric representation of a month, without leading zeros\n                //    j - Day of the month without leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                // example: 3/1/2012 which means 1 March 2012\n                ShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n                // long date:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                LongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n                // long date with long time:\n                //    l - A full textual representation of the day of the week\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                //    Y - A full numeric representation of a year, 4 digits\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                FullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n                // month day:\n                //    F - A full textual representation of a month\n                //    d - Day of the month, 2 digits with leading zeros\n                MonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n                // short time (without seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                ShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n                // long time (with seconds)\n                //    g - 12-hour format of an hour without leading zeros\n                //    i - Minutes with leading zeros\n                //    s - Seconds, with leading zeros\n                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n                LongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n                SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                // month with year\n                //    Y - A full numeric representation of a year, 4 digits\n                //    F - A full textual representation of a month\n                YearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n            },\n            reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n        },\n        baseLinkUrl: '',\n        showAction: '',\n        target: '',\n        checkbox : {disabled:true},\n        idName : 'id'\n    },\n\tcolmenu : {\n\t\tsortasc : \"升序排序\",\n\t\tsortdesc : \"降序排序\",\n\t\tcolumns : \"列\",\n\t\tfilter : \"筛选\",\n\t\tgrouping : \"分类\",\n\t\tungrouping : \"取消分类\",\n\t\tsearchTitle : \"查找:\",\n\t\tfreeze : \"冻结\",\n\t\tunfreeze : \"取消冻结\",\n\t\treorder : \"重新排序\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-cs.js",
    "content": "/**\n * jqGrid Czech Translation\n * Pavel Jirak pavel.jirak@jipas.cz\n * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"cs\"] = {\n\tdefaults : {\n\t\trecordtext: \"Zobrazeno {0} - {1} z {2} záznamů\",\n\t    emptyrecords: \"Nenalezeny žádné záznamy\",\n\t\tloadtext: \"Načítám...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Strana {0} z {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\t\t\n\t},\n\tsearch : {\n\t\tcaption: \"Vyhledávám...\",\n\t\tFind: \"Hledat\",\n\t\tReset: \"Reset\",\n\t    odata: [{ oper:'eq', text:\"rovno\"},{ oper:'ne', text:\"nerovno\"},{ oper:'lt', text:\"menší\"},{ oper:'le', text:\"menší nebo rovno\"},{ oper:'gt', text:\"větší\"},{ oper:'ge', text:\"větší nebo rovno\"},{ oper:'bw', text:\"začíná s\"},{ oper:'bn', text:\"nezačíná s\"},{ oper:'in', text:\"je v\"},{ oper:'ni', text:\"není v\"},{ oper:'ew', text:\"končí s\"},{ oper:'en', text:\"nekončí s\"},{ oper:'cn', text:\"obsahuje\"},{ oper:'nc', text:\"neobsahuje\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"všech\" },\t{ op: \"OR\",  text: \"některého z\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Přidat záznam\",\n\t\teditCaption: \"Editace záznamu\",\n\t\tbSubmit: \"Uložit\",\n\t\tbCancel: \"Storno\",\n\t\tbClose: \"Zavřít\",\n\t\tsaveData: \"Data byla změněna! Uložit změny?\",\n\t\tbYes : \"Ano\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Zrušit\",\n\t\tmsg: {\n\t\t    required:\"Pole je vyžadováno\",\n\t\t    number:\"Prosím, vložte validní číslo\",\n\t\t    minValue:\"hodnota musí být větší než nebo rovná \",\n\t\t    maxValue:\"hodnota musí být menší než nebo rovná \",\n\t\t    email: \"není validní e-mail\",\n\t\t    integer: \"Prosím, vložte celé číslo\",\n\t\t\tdate: \"Prosím, vložte validní datum\",\n\t\t\turl: \"není platnou URL. Vyžadován prefix ('http://' or 'https://')\",\n\t\t\tnodefined : \" není definován!\",\n\t\t\tnovalue : \" je vyžadována návratová hodnota!\",\n\t\t\tcustomarray : \"Custom function mělá vrátit pole!\",\n\t\t\tcustomfcheck : \"Custom function by měla být přítomna v případě custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Zobrazit záznam\",\n\t    bClose: \"Zavřít\"\n\t},\n\tdel : {\n\t\tcaption: \"Smazat\",\n\t\tmsg: \"Smazat vybraný(é) záznam(y)?\",\n\t\tbSubmit: \"Smazat\",\n\t\tbCancel: \"Storno\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Editovat vybraný řádek\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Přidat nový řádek\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Smazat vybraný záznam \",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Najít záznamy\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Obnovit tabulku\",\n\t\talertcap: \"Varování\",\n\t\talerttext: \"Prosím, vyberte řádek\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Zobrazit vybraný řádek\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Zobrazit/Skrýt sloupce\",\n\t\tbSubmit: \"Uložit\",\n\t\tbCancel: \"Storno\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Chyba\",\n\t\tnourl : \"Není nastavena url\",\n\t\tnorecords: \"Žádné záznamy ke zpracování\",\n\t\tmodel : \"Délka colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\",\n\t\t\t\t\"Neděle\", \"Pondělí\", \"Úterý\", \"Středa\", \"Čtvrtek\", \"Pátek\", \"Sobota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Led\", \"Úno\", \"Bře\", \"Dub\", \"Kvě\", \"Čer\", \"Čvc\", \"Srp\", \"Zář\", \"Říj\", \"Lis\", \"Pro\",\n\t\t\t\t\"Leden\", \"Únor\", \"Březen\", \"Duben\", \"Květen\", \"Červen\", \"Červenec\", \"Srpen\", \"Září\", \"Říjen\", \"Listopad\", \"Prosinec\"\n\t\t\t],\n\t\t\tAmPm : [\"do\",\"od\",\"DO\",\"OD\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t        ISO8601Long:\"Y-m-d H:i:s\",\n\t\t        ISO8601Short:\"Y-m-d\",\n\t\t        ShortDate: \"n/j/Y\",\n\t\t        LongDate: \"l, F d, Y\",\n\t\t        FullDateTime: \"l, F d, Y g:i:s A\",\n\t\t        MonthDay: \"F d\",\n\t\t        ShortTime: \"g:i A\",\n\t\t        LongTime: \"g:i:s A\",\n\t\t        SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t        UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t        YearMonth: \"F, Y\"\n\t\t    },\n\t\t    reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-de.js",
    "content": "/**\n * jqGrid German Translation\n * Version 1.0.0 (developed for jQuery Grid 3.3.1)\n * Olaf Klöppel opensource@blue-hit.de\n * http://blue-hit.de/ \n *\n * Updated for jqGrid 3.8\n * Andreas Flack\n * http://www.contentcontrol-berlin.de\n *\n * Updated for jQuery 4.4\n * Oleg Kiriljuk oleg.kiriljuk@ok-soft-gmbh.com\n * the format corresponds now the format from\n * https://github.com/jquery/globalize/blob/master/lib/cultures/globalize.culture.de.js\n * \n * Updated for jqGrid 4.8\n * Tony Tomov\n * http://www.guriddo.net\n *\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"de\"] = {\n\tdefaults : {\n\t\trecordtext: \"Zeige {0} - {1} von {2}\",\n\t\temptyrecords: \"Keine Datensätze vorhanden\",\n\t\tloadtext: \"Lädt...\",\n\t\tsavetext: \"Speichern...\",\n\t\tpgtext : \"Seite {0} von {1}\",\n\t\tpgfirst : \"erste Seite\",\n\t\tpglast : \"letzte Seite\",\n\t\tpgnext : \"nächste Seite\",\n\t\tpgprev : \"vorherige Seite\",\n\t\tpgrecs : \"Datensätze pro Seite\",\n\t\tshowhide: \"Toggle erweitern reduzieren\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Seite Optionen\",\n\t\tpageText : \"Seite:\",\n\t\trecordPage : \"Ergebnisse pro Seite\",\n\t\tnomorerecs : \"Keine weiteren Datensätze...\",\n\t\tscrollPullup: \"Ziehen Sie, um mehr zu laden...\",\n\t\tscrollPulldown : \"Pulldown zu aktualisieren...\",\n\t\tscrollRefresh : \"Lassen Sie zu aktualisieren...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Suche...\",\n\t\tFind: \"Suchen\",\n\t\tReset: \"Zurücksetzen\",\n\t\todata: [{ oper:'eq', text:\"gleich\"},{ oper:'ne', text:\"ungleich\"},{ oper:'lt', text:\"kleiner\"},{ oper:'le', text:\"kleiner gleich\"},{ oper:'gt', text:\"größer\"},{ oper:'ge', text:\"größer gleich\"},{ oper:'bw', text:\"beginnt mit\"},{ oper:'bn', text:\"beginnt nicht mit\"},{ oper:'in', text:\"ist in\"},{ oper:'ni', text:\"ist nicht in\"},{ oper:'ew', text:\"endet mit\"},{ oper:'en', text:\"endet nicht mit\"},{ oper:'cn', text:\"enthält\"},{ oper:'nc', text:\"enthält nicht\"}, { oper:'nu', text:\"ist Null\" }, { oper:'nn', text:\"ist nicht Null\" }, {oper:'bt', text:'zwischen'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"alle\" },{ op: \"OR\", text: \"mindestens eine\" }],\n\t\toperandTitle : \"Klicken Sie auf Suchoperation zu wählen.\",\n\t\tresetTitle : \"Reset Suche Wert\",\n\t\taddsubgrup : \"Gruppe hinzufügen\",\n\t\taddrule : \"In der Regel\",\n\t\tdelgroup : \"Gruppe löschen\",\n\t\tdelrule : \"Regel löschen\"\n\t},\n\tedit : {\n\t\taddCaption: \"Datensatz hinzufügen\",\n\t\teditCaption: \"Datensatz bearbeiten\",\n\t\tbSubmit: \"Speichern\",\n\t\tbCancel: \"Abbrechen\",\n\t\tbClose: \"Schließen\",\n\t\tsaveData: \"Daten wurden geändert! Änderungen speichern?\",\n\t\tbYes : \"ja\",\n\t\tbNo : \"nein\",\n\t\tbExit : \"abbrechen\",\n\t\tmsg: {\n\t\t\trequired:\"Feld ist erforderlich\",\n\t\t\tnumber: \"Bitte geben Sie eine Zahl ein\",\n\t\t\tminValue:\"Wert muss größer oder gleich sein, als \",\n\t\t\tmaxValue:\"Wert muss kleiner oder gleich sein, als \",\n\t\t\temail: \"ist keine gültige E-Mail-Adresse\",\n\t\t\tinteger: \"Bitte geben Sie eine Ganzzahl ein\",\n\t\t\tdate: \"Bitte geben Sie ein gültiges Datum ein\",\n\t\t\turl: \"ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')\",\n\t\t\tnodefined : \" ist nicht definiert!\",\n\t\t\tnovalue : \" Rückgabewert ist erforderlich!\",\n\t\t\tcustomarray : \"Benutzerdefinierte Funktion sollte ein Array zurückgeben!\",\n\t\t\tcustomfcheck : \"Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Datensatz anzeigen\",\n\t\tbClose: \"Schließen\"\n\t},\n\tdel : {\n\t\tcaption: \"Löschen\",\n\t\tmsg: \"Ausgewählte Datensätze löschen?\",\n\t\tbSubmit: \"Löschen\",\n\t\tbCancel: \"Abbrechen\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Ausgewählte Zeile editieren\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Neue Zeile einfügen\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Ausgewählte Zeile löschen\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Datensatz suchen\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Tabelle neu laden\",\n\t\talertcap: \"Warnung\",\n\t\talerttext: \"Bitte Zeile auswählen\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ausgewählte Zeile anzeigen\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Zeile speihern\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Zeile abbrechen\",\n\t\tselectcaption : \"Aktionen...\"\n\t},\n\tcol : {\n\t\tcaption: \"Spalten auswählen\",\n\t\tbSubmit: \"Speichern\",\n\t\tbCancel: \"Abbrechen\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Fehler\",\n\t\tnourl : \"Keine URL angegeben\",\n\t\tnorecords: \"Keine Datensätze zu bearbeiten\",\n\t\tmodel : \"colNames und colModel sind unterschiedlich lang!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\" €\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\",\n\t\t\t\t\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\",\n\t\t\t\t\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"\n\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function () {return '.';}, // one can also use 'er' instead of '.' but one have to use additional word like 'der' or 'den' before\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\tISO8601Long: \"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short: \"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    m - Numeric representation of a month, with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tShortDate: \"d.m.Y\",\t// in jQuery UI Datepicker: \"dd.MM.yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, j. F Y\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tFullDateTime: \"l, j. F Y H:i:s\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy HH:mm:ss\"\n\t\t\t\t// month day:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tMonthDay: \"d F\", // in jQuery UI Datepicker: \"dd MMMM\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\tShortTime: \"H:i\", // in jQuery UI Datepicker: \"HH:mm\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tLongTime: \"H:i:s\", // in jQuery UI Datepicker: \"HH:mm:ss\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tYearMonth: \"F Y\" // in jQuery UI Datepicker: \"MMMM yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Aufsteigend sortieren\",\n\t\tsortdesc : \"Absteigend sortieren\",\n\t\tcolumns : \"Spalte\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Gruppiere nach\",\n\t\tungrouping : \"Gruppierung aufheben\",\n\t\tsearchTitle : \"Erhalten Sie Artikel mit Wert:\",\n\t\tfreeze : \"Einfrieren\",\n\t\tunfreeze : \"Freigeben\",\n\t\treorder : \"Bewegen neu anordnen\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-dk.js",
    "content": "/**\n * jqGrid Danish Translation\n * Kaare Rasmussen kjs@jasonic.dk\n * http://jasonic.dk/blog \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"dk\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t    emptyrecords: \"No records to view\",\n\t\tloadtext: \"Loading...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Page {0} of {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Søg...\",\n\t    Find: \"Find\",\n\t    Reset: \"Nulstil\",\n\t    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Tilføj\",\n\t    editCaption: \"Ret\",\n\t    bSubmit: \"Send\",\n\t    bCancel: \"Annuller\",\n\t\tbClose: \"Luk\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t    msg: {\n\t        required:\"Felt er nødvendigt\",\n\t        number:\"Indtast venligst et validt tal\",\n\t        minValue:\"værdi skal være større end eller lig med\",\n\t        maxValue:\"værdi skal være mindre end eller lig med\",\n\t        email: \"er ikke en valid email\",\n\t        integer: \"Indtast venligst et validt heltalt\",\n\t\t\tdate: \"Indtast venligst en valid datoværdi\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"View Record\",\n\t    bClose: \"Close\"\n\t},\n\tdel : {\n\t    caption: \"Slet\",\n\t    msg: \"Slet valgte række(r)?\",\n\t    bSubmit: \"Slet\",\n\t    bCancel: \"Annuller\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Rediger valgte række\",\n\t\taddtext:\" \",\n\t    addtitle: \"Tilføj ny række\",\n\t    deltext: \" \",\n\t    deltitle: \"Slet valgte række\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Find poster\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Indlæs igen\",\n\t    alertcap: \"Advarsel\",\n\t    alerttext: \"Vælg venligst række\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Vis/skjul kolonner\",\n\t    bSubmit: \"Send\",\n\t    bCancel: \"Annuller\"\n\t},\n\terrors : {\n\t\terrcap : \"Fejl\",\n\t\tnourl : \"Ingel url valgt\",\n\t\tnorecords: \"Ingen poster at behandle\",\n\t    model : \"colNames og colModel har ikke samme længde!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Søn\", \"Man\", \"Tirs\", \"Ons\", \"Tors\", \"Fre\", \"Lør\",\n\t\t\t\t\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function (j) {return '.'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"j/n/Y\",\n\t            LongDate: \"l d. F Y\",\n\t            FullDateTime: \"l d F Y G:i:s\",\n\t            MonthDay: \"d. F\",\n\t            ShortTime: \"G:i\",\n\t            LongTime: \"G:i:s\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n// DK\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-el.js",
    "content": "/**\n * jqGrid Greek (el) Translation\n * Alex Cicovic\n * http://www.alexcicovic.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"el\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t    emptyrecords: \"No records to view\",\n\t\tloadtext: \"Φόρτωση...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Page {0} of {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\t\t\n\t},\n\tsearch : {\n\t    caption: \"Αναζήτηση...\",\n\t    Find: \"Εύρεση\",\n\t    Reset: \"Επαναφορά\",\n\t    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Εισαγωγή Εγγραφής\",\n\t    editCaption: \"Επεξεργασία Εγγραφής\",\n\t    bSubmit: \"Καταχώρηση\",\n\t    bCancel: \"Άκυρο\",\n\t\tbClose: \"Κλείσιμο\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t    msg: {\n\t        required:\"Το πεδίο είναι απαραίτητο\",\n\t        number:\"Το πεδίο δέχεται μόνο αριθμούς\",\n\t        minValue:\"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του \",\n\t        maxValue:\"Η τιμή πρέπει να είναι μικρότερη ή ίση του \",\n\t        email: \"Η διεύθυνση e-mail δεν είναι έγκυρη\",\n\t        integer: \"Το πεδίο δέχεται μόνο ακέραιους αριθμούς\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"View Record\",\n\t    bClose: \"Close\"\n\t},\n\tdel : {\n\t    caption: \"Διαγραφή\",\n\t    msg: \"Διαγραφή των επιλεγμένων εγγραφών;\",\n\t    bSubmit: \"Ναι\",\n\t    bCancel: \"Άκυρο\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Επεξεργασία επιλεγμένης εγγραφής\",\n\t\taddtext:\" \",\n\t    addtitle: \"Εισαγωγή νέας εγγραφής\",\n\t    deltext: \" \",\n\t    deltitle: \"Διαγραφή επιλεγμένης εγγραφής\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Εύρεση Εγγραφών\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Ανανέωση Πίνακα\",\n\t    alertcap: \"Προσοχή\",\n\t    alerttext: \"Δεν έχετε επιλέξει εγγραφή\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Εμφάνιση / Απόκρυψη Στηλών\",\n\t    bSubmit: \"ΟΚ\",\n\t    bCancel: \"Άκυρο\"\n\t},\n\terrors : {\n\t\terrcap : \"Σφάλμα\",\n\t\tnourl : \"Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια\",\n\t\tnorecords: \"Δεν υπάρχουν εγγραφές προς επεξεργασία\",\n\t\tmodel : \"Άνισος αριθμός πεδίων colNames/colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Κυρ\", \"Δευ\", \"Τρι\", \"Τετ\", \"Πεμ\", \"Παρ\", \"Σαβ\",\n\t\t\t\t\"Κυριακή\", \"Δευτέρα\", \"Τρίτη\", \"Τετάρτη\", \"Πέμπτη\", \"Παρασκευή\", \"Σάββατο\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Ιαν\", \"Φεβ\", \"Μαρ\", \"Απρ\", \"Μαι\", \"Ιουν\", \"Ιουλ\", \"Αυγ\", \"Σεπ\", \"Οκτ\", \"Νοε\", \"Δεκ\",\n\t\t\t\t\"Ιανουάριος\", \"Φεβρουάριος\", \"Μάρτιος\", \"Απρίλιος\", \"Μάιος\", \"Ιούνιος\", \"Ιούλιος\", \"Αύγουστος\", \"Σεπτέμβριος\", \"Οκτώβριος\", \"Νοέμβριος\", \"Δεκέμβριος\"\n\t\t\t],\n\t\t\tAmPm : [\"πμ\",\"μμ\",\"ΠΜ\",\"ΜΜ\"],\n\t\t\tS: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-en.js",
    "content": "/**\n * jqGrid English Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"en\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t\temptyrecords: \"No records to view\",\n\t\tloadtext: \"Loading...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext : \"Page {0} of {1}\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Search...\",\n\t\tFind: \"Find\",\n\t\tReset: \"Reset\",\n\t\todata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"all\" },{ op: \"OR\",  text: \"any\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Add Record\",\n\t\teditCaption: \"Edit Record\",\n\t\tbSubmit: \"Submit\",\n\t\tbCancel: \"Cancel\",\n\t\tbClose: \"Close\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t\tmsg: {\n\t\t\trequired:\"Field is required\",\n\t\t\tnumber:\"Please, enter valid number\",\n\t\t\tminValue:\"value must be greater than or equal to \",\n\t\t\tmaxValue:\"value must be less than or equal to\",\n\t\t\temail: \"is not a valid e-mail\",\n\t\t\tinteger: \"Please, enter valid integer value\",\n\t\t\tdate: \"Please, enter valid date value\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"View Record\",\n\t\tbClose: \"Close\"\n\t},\n\tdel : {\n\t\tcaption: \"Delete\",\n\t\tmsg: \"Delete selected record(s)?\",\n\t\tbSubmit: \"Delete\",\n\t\tbCancel: \"Cancel\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Edit selected row\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Add new row\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Delete selected row\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Find records\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Reload Grid\",\n\t\talertcap: \"Warning\",\n\t\talerttext: \"Please, select row\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Select columns\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Cancel\"\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"No url is set\",\n\t\tnorecords: \"No records to process\",\n\t\tmodel : \"Length of colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \",\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thr\", \"Fri\", \"Sat\",\n\t\t\t\t\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\",\n\t\t\t\t\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-es.js",
    "content": "/**\n * jqGrid Spanish Translation\n * Traduccion jqGrid en Español por Yamil Bracho\n * Traduccion corregida y ampliada por Faserline, S.L. \n * http://www.faserline.com\n * Traduccion corregida y ampliada por Fernán Castro Asensio\n * Traducción corregida y ampliada por Luis Sánchez\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"es\"] = {\n\tdefaults : {\n\t\trecordtext: \"Mostrando {0} - {1} de {2}\",\n\t    emptyrecords: \"Sin registros que mostrar\",\n\t\tloadtext: \"Cargando...\",\n\t\tsavetext: \"Guardando...\",\n\t\tpgtext : \"Página {0} de {1}\",\n\t\tpgfirst : \"Primera página\",\n\t\tpglast : \"Última página\",\n\t\tpgnext : \"Siguiente página\",\n\t\tpgprev : \"Anterior página\",\n\t\tpgrecs : \"Registros por página\",\n\t\tshowhide: \"Alternar Contraer Expandir Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Configurar página\",\n\t\tpageText : \"Página:\",\n\t\trecordPage : \"Registros por página\",\n\t\tnomorerecs : \"No más registros...\",\n\t\tscrollPullup: \"Arrastrar arriba para cargar más...\",\n\t\tscrollPulldown : \"Arrastrar arriba para refrescar...\",\n\t\tscrollRefresh : \"Soltar para refrescar...\"\t\t\n\t},\n\tsearch : {\n\t    caption: \"Búsqueda...\",\n\t    Find: \"Buscar\",\n\t    Reset: \"Limpiar\",\n\t    odata: [{ oper:'eq', text:\"igual \"},{ oper:'ne', text:\"no igual a\"},{ oper:'lt', text:\"menor que\"},{ oper:'le', text:\"menor o igual que\"},{ oper:'gt', text:\"mayor que\"},{ oper:'ge', text:\"mayor o igual a\"},{ oper:'bw', text:\"empiece por\"},{ oper:'bn', text:\"no empiece por\"},{ oper:'in', text:\"está en\"},{ oper:'ni', text:\"no está en\"},{ oper:'ew', text:\"termina por\"},{ oper:'en', text:\"no termina por\"},{ oper:'cn', text:\"contiene\"},{ oper:'nc', text:\"no contiene\"},{ oper:'nu', text:'es nulo'},{ oper:'nn', text:'no es nulo'}, {oper:'bt', text:'entre'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"todo\" },\t{ op: \"OR\",  text: \"cualquier\" }\t],\n\t\toperandTitle : \"Clic para seleccionar la operación de búsqueda.\",\n\t\tresetTitle : \"Reiniciar valores de búsqueda\",\n\t\taddsubgrup : \"Agregar subgrupo\",\n\t\taddrule : \"Agregar regla\",\n\t\tdelgroup : \"Borrar grupo\",\n\t\tdelrule : \"Borrar regla\"\n\t},\n\tedit : {\n\t    addCaption: \"Agregar registro\",\n\t    editCaption: \"Modificar registro\",\n\t    bSubmit: \"Guardar\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Cerrar\",\n\t\tsaveData: \"Se han modificado los datos, ¿guardar cambios?\",\n\t\tbYes : \"Si\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancelar\",\n\t    msg: {\n\t        required:\"Campo obligatorio\",\n\t        number:\"Introduzca un número\",\n\t        minValue:\"El valor debe ser mayor o igual a \",\n\t        maxValue:\"El valor debe ser menor o igual a \",\n\t        email: \"no es una dirección de correo válida\",\n\t        integer: \"Introduzca un valor entero\",\n\t\tdate: \"Introduzca una fecha correcta \",\n\t\turl: \"no es una URL válida. Prefijo requerido ('http://' or 'https://')\",\n\t\tnodefined : \" no está definido.\",\n\t\tnovalue : \" valor de retorno es requerido.\",\n\t\tcustomarray : \"La función personalizada debe devolver un array.\",\n\t\tcustomfcheck : \"La función personalizada debe estar presente en el caso de validación personalizada.\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Consultar registro\",\n\t    bClose: \"Cerrar\"\n\t},\n\tdel : {\n\t    caption: \"Eliminar\",\n\t    msg: \"¿Desea eliminar los registros seleccionados?\",\n\t    bSubmit: \"Eliminar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t    edittext: \" \",\n\t    edittitle: \"Modificar fila seleccionada\",\n\t    addtext:\" \",\n\t    addtitle: \"Agregar nueva fila\",\n\t    deltext: \" \",\n\t    deltitle: \"Eliminar fila seleccionada\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Buscar información\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Recargar datos\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Seleccione una fila\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ver fila seleccionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Guardar fila\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancelar edición de fila\",\n\t\tselectcaption : \"Acciones...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/ocultar columnas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"No se ha especificado una URL\",\n\t\tnorecords: \"No hay datos para procesar\",\n\t    model : \"Las columnas de nombres son diferentes de las columnas del modelo\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Do\", \"Lu\", \"Ma\", \"Mi\", \"Ju\", \"Vi\", \"Sa\",\n\t\t\t\t\"Domingo\", \"Lunes\", \"Martes\", \"Miércoles\", \"Jueves\", \"Viernes\", \"Sábado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\",\n\t\t\t\t\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd-m-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Ordenar ascendentemente\",\n\t\tsortdesc : \"Ordenar descendientemente\",\n\t\tcolumns : \"Columnas\",\n\t\tfilter : \"Filtrar\",\n\t\tgrouping : \"Agrupar por\",\n\t\tungrouping : \"Desagrupar\",\n\t\tsearchTitle : \"Obtener elementos con un valor que:\",\n\t\tfreeze : \"Congelar\",\n\t\tunfreeze : \"Descongelar\",\n\t\treorder : \"Mover para reordenar\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-fa.js",
    "content": "/**\n * jqGrid Persian Translation\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"fa\"] = {\n        defaults: {\n            recordtext: \"نمابش {0} - {1} از {2}\",\n            emptyrecords: \"رکوردی یافت نشد\",\n            loadtext: \"بارگزاري...\",\n\t\t\tsavetext: \"Saving...\",\n\t\t\tpgtext: \"صفحه {0} از {1}\",\n\t\t\tpgfirst : \"First Page\",\n\t\t\tpglast : \"Last Page\",\n\t\t\tpgnext : \"Next Page\",\n\t\t\tpgprev : \"Previous Page\",\n\t\t\tpgrecs : \"Records per Page\",\n\t\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n        },\n        search: {\n            caption: \"جستجو...\",\n            Find: \"يافته ها\",\n            Reset: \"از نو\",\n            odata: [{ oper:'eq', text:\"برابر\"},{ oper:'ne', text:\"نا برابر\"},{ oper:'lt', text:\"به\"},{ oper:'le', text:\"کوچکتر\"},{ oper:'gt', text:\"از\"},{ oper:'ge', text:\"بزرگتر\"},{ oper:'bw', text:\"شروع با\"},{ oper:'bn', text:\"شروع نشود با\"},{ oper:'in', text:\"نباشد\"},{ oper:'ni', text:\"عضو این نباشد\"},{ oper:'ew', text:\"اتمام با\"},{ oper:'en', text:\"تمام نشود با\"},{ oper:'cn', text:\"حاوی\"},{ oper:'nc', text:\"نباشد حاوی\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n            groupOps: [{\n                op: \"AND\",\n                text: \"کل\"\n            },\n            {\n                op: \"OR\",\n                text: \"مجموع\"\n            }],\n\t\t\toperandTitle : \"Click to select search operation.\",\n\t\t\tresetTitle : \"Reset Search Value\",\n\t\t\taddsubgrup : \"Add subgroup\",\n\t\t\taddrule : \"Add rule\",\n\t\t\tdelgroup : \"Delete group\",\n\t\t\tdelrule : \"Delete rule\"\n        },\n        edit: {\n            addCaption: \"اضافه کردن رکورد\",\n            editCaption: \"ويرايش رکورد\",\n            bSubmit: \"ثبت\",\n            bCancel: \"انصراف\",\n            bClose: \"بستن\",\n            saveData: \"دیتا تعییر کرد! ذخیره شود؟\",\n            bYes: \"بله\",\n            bNo: \"خیر\",\n            bExit: \"انصراف\",\n            msg: {\n                required: \"فيلدها بايد ختما پر شوند\",\n                number: \"لطفا عدد وعتبر وارد کنيد\",\n                minValue: \"مقدار وارد شده بايد بزرگتر يا مساوي با\",\n                maxValue: \"مقدار وارد شده بايد کوچکتر يا مساوي\",\n                email: \"پست الکترونيک وارد شده معتبر نيست\",\n                integer: \"لطفا يک عدد صحيح وارد کنيد\",\n                date: \"لطفا يک تاريخ معتبر وارد کنيد\",\n                url: \"این آدرس صحیح نمی باشد. پیشوند نیاز است ('http://' یا 'https://')\",\n                nodefined: \" تعریف نشده!\",\n                novalue: \" مقدار برگشتی اجباری است!\",\n                customarray: \"تابع شما باید مقدار آرایه داشته باشد!\",\n                customfcheck: \"برای داشتن متد دلخواه شما باید سطون با چکینگ دلخواه داشته باشید!\"\n            }\n        },\n        view: {\n            caption: \"نمایش رکورد\",\n            bClose: \"بستن\"\n        },\n        del: {\n            caption: \"حذف\",\n            msg: \"از حذف گزينه هاي انتخاب شده مطمئن هستيد؟\",\n            bSubmit: \"حذف\",\n            bCancel: \"ابطال\"\n        },\n        nav: {\n            edittext: \" \",\n            edittitle: \"ويرايش رديف هاي انتخاب شده\",\n            addtext: \" \",\n            addtitle: \"افزودن رديف جديد\",\n            deltext: \" \",\n            deltitle: \"حذف ردبف هاي انتیاب شده\",\n            searchtext: \" \",\n            searchtitle: \"جستجوي رديف\",\n            refreshtext: \"\",\n            refreshtitle: \"بازيابي مجدد صفحه\",\n            alertcap: \"اخطار\",\n            alerttext: \"لطفا يک رديف انتخاب کنيد\",\n            viewtext: \"\",\n            viewtitle: \"نمایش رکورد های انتخاب شده\",\n\t\t\tsavetext: \"\",\n\t\t\tsavetitle: \"Save row\",\n\t\t\tcanceltext: \"\",\n\t\t\tcanceltitle : \"Cancel row editing\",\n\t\t\tselectcaption : \"Actions...\"\n        },\n        col: {\n            caption: \"نمايش/عدم نمايش ستون\",\n            bSubmit: \"ثبت\",\n            bCancel: \"انصراف\"\n        },\n        errors: {\n            errcap: \"خطا\",\n            nourl: \"هيچ آدرسي تنظيم نشده است\",\n            norecords: \"هيچ رکوردي براي پردازش موجود نيست\",\n            model: \"طول نام ستون ها محالف ستون هاي مدل مي باشد!\"\n        },\n        formatter: {\n            integer: {\n                thousandsSeparator: \" \",\n                defaultValue: \"0\"\n            },\n            number: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \" \",\n                decimalPlaces: 2,\n                defaultValue: \"0.00\"\n            },\n            currency: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \" \",\n                decimalPlaces: 2,\n                prefix: \"\",\n                suffix: \"\",\n                defaultValue: \"0\"\n            },\n            date: {\n                dayNames: [\"يک\", \"دو\", \"سه\", \"چهار\", \"پنج\", \"جمع\", \"شنب\", \"يکشنبه\", \"دوشنبه\", \"سه شنبه\", \"چهارشنبه\", \"پنجشنبه\", \"جمعه\", \"شنبه\"],\n                monthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"ژانويه\", \"فوريه\", \"مارس\", \"آوريل\", \"مه\", \"ژوئن\", \"ژوئيه\", \"اوت\", \"سپتامبر\", \"اکتبر\", \"نوامبر\", \"December\"],\n                AmPm: [\"ب.ظ\", \"ب.ظ\", \"ق.ظ\", \"ق.ظ\"],\n                S: function (b) {\n                    return b < 11 || b > 13 ? [\"st\", \"nd\", \"rd\", \"th\"][Math.min((b - 1) % 10, 3)] : \"th\"\n                },\n                srcformat: \"Y-m-d\",\n                newformat: \"d/m/Y\",\n\t\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n                masks: {\n                    ISO8601Long: \"Y-m-d H:i:s\",\n                    ISO8601Short: \"Y-m-d\",\n                    ShortDate: \"n/j/Y\",\n                    LongDate: \"l, F d, Y\",\n                    FullDateTime: \"l, F d, Y g:i:s A\",\n                    MonthDay: \"F d\",\n                    ShortTime: \"g:i A\",\n                    LongTime: \"g:i:s A\",\n                    SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                    UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                    YearMonth: \"F, Y\"\n                },\n                reformatAfterEdit: false,\n\t\t\t\tuserLocalTime : false\n            },\n            baseLinkUrl: \"\",\n            showAction: \"نمايش\",\n            target: \"\",\n            checkbox: {\n                disabled: true\n            },\n            idName: \"id\"\n        },\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n    };\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-fi.js",
    "content": "/**\n * jqGrid (fi) Finnish Translation\n * Jukka Inkeri  awot.fi  2010-05-19\n * Alex Grönholm  alex.gronholm@nextday.fi  2011-05-18\n * http://awot.fi\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"fi\"] = {\n\tdefaults: {\n\t\trecordtext: \"Rivit {0} - {1} / {2}\",\n\t    emptyrecords: \"Ei n&auml;ytett&auml;vi&auml;\",\n\t\tloadtext: \"Haetaan...\",\n\t\tsavetext: \"Saving...\",\n\t\tpgtext: \"Sivu {0} / {1}\",\t\t\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch: {\n\t    caption: \"Etsi...\",\n\t    Find: \"Etsi\",\n\t    Reset: \"Tyhjenn&auml;\",\n\t    odata: [{ oper:'eq', text:\"on\"},{ oper:'ne', text:\"ei ole\"},{ oper:'lt', text:\"pienempi\"},{ oper:'le', text:\"pienempi tai yht&auml;suuri\"},{ oper:'gt', text:\"suurempi\"},{ oper:'ge', text:\"suurempi tai yht&auml;suuri\"},{ oper:'bw', text:\"alkaa\"},{ oper:'bn', text:\"ei ala\"},{ oper:'in', text:\"joukossa\"},{ oper:'ni', text:\"ei joukossa\"},{ oper:'ew', text:\"loppuu\"},{ oper:'en', text:\"ei lopu\"},{ oper:'cn', text:\"sis&auml;lt&auml;&auml;\"},{ oper:'nc', text:\"ei sis&auml;ll&auml;\"},{ oper:'nu', text:\"on tyhj&auml;\"},{ oper:'nn', text:\"ei ole tyhj&auml;\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"kaikki\" }, { op: \"OR\", text: \"mik&auml; tahansa\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit: {\n\t    addCaption: \"Uusi rivi\",\n\t    editCaption: \"Muokkaa rivi&auml;\",\n\t    bSubmit: \"OK\",\n\t    bCancel: \"Peru\",\n\t\tbClose: \"Sulje\",\n\t\tsaveData: \"Tietoja muutettu! Tallennetaanko?\",\n\t\tbYes: \"Kyll&auml;\",\n\t\tbNo: \"Ei\",\n\t\tbExit: \"Peru\",\n\t    msg: {\n\t        required: \"pakollinen\",\n\t        number: \"Anna kelvollinen nro\",\n\t        minValue: \"arvon oltava suurempi tai yht&auml;suuri kuin \",\n\t        maxValue: \"arvon oltava pienempi tai yht&auml;suuri kuin \",\n\t        email: \"ei ole kelvollinen s&auml;postiosoite\",\n\t        integer: \"Anna kelvollinen kokonaisluku\",\n\t\t\tdate: \"Anna kelvollinen pvm\",\n\t\t\turl: \"Ei ole kelvollinen linkki(URL). Alku oltava ('http://' tai 'https://')\",\n\t\t\tnodefined: \" ei ole m&auml;&auml;ritelty!\",\n\t\t\tnovalue: \" paluuarvo vaaditaan!\",\n\t\t\tcustomarray: \"Oman funktion tulee palauttaa jono!\",\n\t\t\tcustomfcheck: \"Oma funktio on m&auml;&auml;ritelt&auml;v&auml; r&auml;&auml;t&auml;l&ouml;ity&auml; tarkastusta varten!\"\n\t\t}\n\t},\n\tview: {\n\t    caption: \"N&auml;yt&auml; rivi\",\n\t    bClose: \"Sulje\"\n\t},\n\tdel: {\n\t    caption: \"Poista\",\n\t    msg: \"Poista valitut rivit?\",\n\t    bSubmit: \"Poista\",\n\t    bCancel: \"Peru\"\n\t},\n\tnav: {\n\t\tedittext: \"\",\n\t    edittitle: \"Muokkaa valittua rivi&auml;\",\n\t\taddtext: \"\",\n\t    addtitle: \"Uusi rivi\",\n\t    deltext: \"\",\n\t    deltitle: \"Poista valittu rivi\",\n\t    searchtext: \"\",\n\t    searchtitle: \"Etsi tietoja\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Lataa uudelleen\",\n\t    alertcap: \"Varoitus\",\n\t    alerttext: \"Valitse rivi\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"N&auml;yta valitut rivit\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol: {\n\t    caption: \"Valitse sarakkeet\",\n\t    bSubmit: \"OK\",\n\t    bCancel: \"Peru\"\t\n\t},\n\terrors : {\n\t\terrcap: \"Virhe\",\n\t\tnourl: \"URL on asettamatta\",\n\t\tnorecords: \"Ei muokattavia tietoja\",\n\t    model: \"Pituus colNames <> colModel!\"\n\t},\n\tformatter: {\n\t\tinteger: {thousandsSeparator: \"\", defaultValue: '0'},\n\t\tnumber: {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency: {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate: {\n\t\t\tdayNames:   [\n\t\t\t\t\"Su\", \"Ma\", \"Ti\", \"Ke\", \"To\", \"Pe\", \"La\",\n\t\t\t\t\"Sunnuntai\", \"Maanantai\", \"Tiistai\", \"Keskiviikko\", \"Torstai\", \"Perjantai\", \"Lauantai\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Tam\", \"Hel\", \"Maa\", \"Huh\", \"Tou\", \"Kes\", \"Hei\", \"Elo\", \"Syy\", \"Lok\", \"Mar\", \"Jou\",\n\t\t\t\t\"Tammikuu\", \"Helmikuu\", \"Maaliskuu\", \"Huhtikuu\", \"Toukokuu\", \"Kes&auml;kuu\", \"Hein&auml;kuu\", \"Elokuu\", \"Syyskuu\", \"Lokakuu\", \"Marraskuu\", \"Joulukuu\"\n\t\t\t],\n\t\t\tAmPm: [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks: {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"d.m.Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox: {disabled:true},\n\t\tidName: 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n// FI\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-fr.js",
    "content": "/**\n * jqGrid French Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"fr\"] = {\n\tdefaults : {\n\t\trecordtext: \"Enregistrements {0} - {1} sur {2}\",\n\t\temptyrecords: \"Aucun enregistrement à afficher\",\n\t\tloadtext: \"Chargement...\",\n\t\tsavetext: \"Sauvegarde en cours...\",\n\t\tpgtext : \"Page {0} de {1}\",\n\t\tpgfirst : \"Première page\",\n\t\tpglast : \"Dernière page\",\n\t\tpgnext : \"Page suivante\",\n\t\tpgprev : \"Page précédente\",\n\t\tpgrecs : \"Enregistrements par page\",\n\t\tshowhide: \"Réduire/Agrandir la grille\",\n\t\t// mobile\n\t\tpagerCaption : \"Grille::Options de pagination\",\n\t\tpageText : \"Page:\",\n\t\trecordPage: \"Enregistrements par page\",\n\t\tnomorerecs : \"Plus de données...\",\n\t\tscrollPullup: \"Glisser vers le haut pour charger plus de données...\",\n\t\tscrollPulldown : \"Glisser vers le bas pour rafraîchir...\",\n\t\tscrollRefresh : \"Relâcher pour rafraîchir...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Recherche...\",\n\t\tFind: \"Chercher\",\n\t\tReset: \"Réinitialiser\",\n\t\todata: [{ oper:'eq', text:\"égal\"},{ oper:'ne', text:\"différent\"},{ oper:'lt', text:\"inférieur\"},{ oper:'le', text:\"inférieur ou égal\"},{ oper:'gt', text:\"supérieur\"},{ oper:'ge', text:\"supérieur ou égal\"},{ oper:'bw', text:\"commence par\"},{ oper:'bn', text:\"ne commence pas par\"},{ oper:'in', text:\"est dans\"},{ oper:'ni', text:\"n'est pas dans\"},{ oper:'ew', text:\"finit par\"},{ oper:'en', text:\"ne finit pas par\"},{ oper:'cn', text:\"contient\"},{ oper:'nc', text:\"ne contient pas\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'entre'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"tous\" },\t{ op: \"OR\",  text: \"au moins un\" }\t],\n\t\toperandTitle : \"Cliquer pour sélectionner l'opérateur.\",\n\t\tresetTitle : \"Réinitialiser la valeur de recherche\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Ajouter\",\n\t\teditCaption: \"Éditer\",\n\t\tbSubmit: \"Valider\",\n\t\tbCancel: \"Annuler\",\n\t\tbClose: \"Fermer\",\n\t\tsaveData: \"Les données ont changé ! Enregistrer les modifications ?\",\n\t\tbYes: \"Oui\",\n\t\tbNo: \"Non\",\n\t\tbExit: \"Annuler\",\n\t\tmsg: {\n\t\t\trequired: \"Champ obligatoire\",\n\t\t\tnumber: \"Saisissez un nombre correct\",\n\t\t\tminValue: \"La valeur doit être supérieure ou égale à\",\n\t\t\tmaxValue: \"La valeur doit être inférieure ou égale à\",\n\t\t\temail: \"n'est pas un email valide\",\n\t\t\tinteger: \"Saisissez un entier valide\",\n\t\t\turl: \"n'est pas une adresse valide. Préfixe requis ('http://' or 'https://')\",\n\t\t\tnodefined : \" n'est pas défini!\",\n\t\t\tnovalue : \" la valeur de retour est requise!\",\n\t\t\tcustomarray : \"Une fonction personnalisée devrait retourner un tableau (array)!\",\n\t\t\tcustomfcheck : \"Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Voir les enregistrements\",\n\t\tbClose: \"Fermer\"\n\t},\n\tdel : {\n\t\tcaption: \"Supprimer\",\n\t\tmsg: \"Supprimer les enregistrements sélectionnés ?\",\n\t\tbSubmit: \"Supprimer\",\n\t\tbCancel: \"Annuler\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Editer la ligne sélectionnée\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Ajouter une ligne\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Supprimer la ligne sélectionnée\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Chercher un enregistrement\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Recharger le tableau\",\n\t\talertcap: \"Avertissement\",\n\t\talerttext: \"Veuillez sélectionner une ligne\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Afficher la ligne sélectionnée\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Sauvegarder la ligne\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Annuler l'édition de la ligne\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Afficher/Masquer les colonnes\",\n\t\tbSubmit: \"Valider\",\n\t\tbCancel: \"Annuler\"\n\t},\n\terrors : {\n\t\terrcap : \"Erreur\",\n\t\tnourl : \"Aucune adresse n'est paramétrée\",\n\t\tnorecords: \"Aucun enregistrement à traiter\",\n\t\tmodel : \"Nombre de titres (colNames) <> Nombre de données (colModel)!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\",\n\t\t\t\t\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Fév\", \"Mar\", \"Avr\", \"Mai\", \"Jui\", \"Jul\", \"Aou\", \"Sep\", \"Oct\", \"Nov\", \"Déc\",\n\t\t\t\t\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Aout\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j == 1 ? 'er' : 'e';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Trier en ordre croissant\",\n\t\tsortdesc: \"Trier en ordre décroissant\",\n\t\tcolumns : \"Colonnes\",\n\t\tfilter : \"Filtrer\",\n\t\tgrouping : \"Grouper par\",\n\t\tungrouping : \"Séparer\",\n\t\tsearchTitle : \"Prendre les items avec la valeur:\",\n\t\tfreeze : \"Figer\",\n\t\tunfreeze : \"Relâcher\",\n\t\treorder : \"Déplacer pour changer l'ordre\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-gl.js",
    "content": "/**\n * jqGrid Galician Translation\n * Translated by Jorge Barreiro <yortx.barry@gmail.com>\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"gl\"] = {\n\tdefaults : {\n\t\trecordtext: \"Amosando {0} - {1} de {2}\",\n\t    emptyrecords: \"Sen rexistros que amosar\",\n\t\tloadtext: \"Cargando...\",\n\t\tpgtext : \"Páxina {0} de {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Búsqueda...\",\n\t    Find: \"Buscar\",\n\t    Reset: \"Limpar\",\n\t    odata: [{ oper:'eq', text:\"igual \"},{ oper:'ne', text:\"diferente a\"},{ oper:'lt', text:\"menor que\"},{ oper:'le', text:\"menor ou igual que\"},{ oper:'gt', text:\"maior que\"},{ oper:'ge', text:\"maior ou igual a\"},{ oper:'bw', text:\"empece por\"},{ oper:'bn', text:\"non empece por\"},{ oper:'in', text:\"está en\"},{ oper:'ni', text:\"non está en\"},{ oper:'ew', text:\"termina por\"},{ oper:'en', text:\"non termina por\"},{ oper:'cn', text:\"contén\"},{ oper:'nc', text:\"non contén\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"todo\" },\t{ op: \"OR\",  text: \"calquera\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Engadir rexistro\",\n\t    editCaption: \"Modificar rexistro\",\n\t    bSubmit: \"Gardar\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Pechar\",\n\t\tsaveData: \"Modificáronse os datos, quere gardar os cambios?\",\n\t\tbYes : \"Si\",\n\t\tbNo : \"Non\",\n\t\tbExit : \"Cancelar\",\n\t    msg: {\n\t        required:\"Campo obrigatorio\",\n\t        number:\"Introduza un número\",\n\t        minValue:\"O valor debe ser maior ou igual a \",\n\t        maxValue:\"O valor debe ser menor ou igual a \",\n\t        email: \"non é un enderezo de correo válido\",\n\t        integer: \"Introduza un valor enteiro\",\n\t\t\tdate: \"Introduza unha data correcta \",\n\t\t\turl: \"non é unha URL válida. Prefixo requerido ('http://' ou 'https://')\",\n\t\t\tnodefined : \" non está definido.\",\n\t\t\tnovalue : \" o valor de retorno é obrigatorio.\",\n\t\t\tcustomarray : \"A función persoalizada debe devolver un array.\",\n\t\t\tcustomfcheck : \"A función persoalizada debe estar presente no caso de ter validación persoalizada.\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Consultar rexistro\",\n\t    bClose: \"Pechar\"\n\t},\n\tdel : {\n\t    caption: \"Eliminar\",\n\t    msg: \"Desexa eliminar os rexistros seleccionados?\",\n\t    bSubmit: \"Eliminar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Modificar a fila seleccionada\",\n\t\taddtext:\" \",\n\t    addtitle: \"Engadir unha nova fila\",\n\t    deltext: \" \",\n\t    deltitle: \"Eliminar a fila seleccionada\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Buscar información\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Recargar datos\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Seleccione unha fila\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ver fila seleccionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/ocultar columnas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Erro\",\n\t\tnourl : \"Non especificou unha URL\",\n\t\tnorecords: \"Non hai datos para procesar\",\n\t    model : \"As columnas de nomes son diferentes das columnas de modelo\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Do\", \"Lu\", \"Ma\", \"Me\", \"Xo\", \"Ve\", \"Sa\",\n\t\t\t\t\"Domingo\", \"Luns\", \"Martes\", \"Mércoles\", \"Xoves\", \"Vernes\", \"Sábado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Xan\", \"Feb\", \"Mar\", \"Abr\", \"Mai\", \"Xuñ\", \"Xul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dec\",\n\t\t\t\t\"Xaneiro\", \"Febreiro\", \"Marzo\", \"Abril\", \"Maio\", \"Xuño\", \"Xullo\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Decembro\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd-m-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-he.js",
    "content": "/**\n * jqGrid Hebrew Translation\n * Shuki Shukrun shukrun.shuki@gmail.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"he\"] = {\n\tdefaults : {\n\t\trecordtext: \"מציג {0} - {1} מתוך {2}\",\n\t\temptyrecords: \"אין רשומות להציג\",\n\t\tloadtext: \"טוען...\",\n\t\tpgtext : \"דף {0} מתוך {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"מחפש...\",\n\t\tFind: \"חפש\",\n\t\tReset: \"התחל\",\n\t\todata: [{ oper:'eq', text:\"שווה\"},{ oper:'ne', text:\"לא שווה\"},{ oper:'lt', text:\"קטן\"},{ oper:'le', text:\"קטן או שווה\"},{ oper:'gt', text:\"גדול\"},{ oper:'ge', text:\"גדול או שווה\"},{ oper:'bw', text:\"מתחיל ב\"},{ oper:'bn', text:\"לא מתחיל ב\"},{ oper:'in', text:\"נמצא ב\"},{ oper:'ni', text:\"לא נמצא ב\"},{ oper:'ew', text:\"מסתיים ב\"},{ oper:'en', text:\"לא מסתיים ב\"},{ oper:'cn', text:\"מכיל\"},{ oper:'nc', text:\"לא מכיל\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"הכל\" },\t{ op: \"OR\",  text: \"אחד מ\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"הוסף רשומה\",\n\t\teditCaption: \"ערוך רשומה\",\n\t\tbSubmit: \"שלח\",\n\t\tbCancel: \"בטל\",\n\t\tbClose: \"סגור\",\n\t\tsaveData: \"נתונים השתנו! לשמור?\",\n\t\tbYes : \"כן\",\n\t\tbNo : \"לא\",\n\t\tbExit : \"בטל\",\n\t\tmsg: {\n\t\t\trequired:\"שדה חובה\",\n\t\t\tnumber:\"אנא, הכנס מספר תקין\",\n\t\t\tminValue:\"ערך צריך להיות גדול או שווה ל \",\n\t\t\tmaxValue:\"ערך צריך להיות קטן או שווה ל \",\n\t\t\temail: \"היא לא כתובת איימל תקינה\",\n\t\t\tinteger: \"אנא, הכנס מספר שלם\",\n\t\t\tdate: \"אנא, הכנס תאריך תקין\",\n\t\t\turl: \"הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"הצג רשומה\",\n\t\tbClose: \"סגור\"\n\t},\n\tdel : {\n\t\tcaption: \"מחק\",\n\t\tmsg: \"האם למחוק את הרשומה/ות המסומנות?\",\n\t\tbSubmit: \"מחק\",\n\t\tbCancel: \"בטל\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"ערוך שורה מסומנת\",\n\t\taddtext:\"\",\n\t\taddtitle: \"הוסף שורה חדשה\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"מחק שורה מסומנת\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"חפש רשומות\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"טען גריד מחדש\",\n\t\talertcap: \"אזהרה\",\n\t\talerttext: \"אנא, בחר שורה\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"הצג שורה מסומנת\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"הצג/הסתר עמודות\",\n\t\tbSubmit: \"שלח\",\n\t\tbCancel: \"בטל\"\n\t},\n\terrors : {\n\t\terrcap : \"שגיאה\",\n\t\tnourl : \"לא הוגדרה כתובת url\",\n\t\tnorecords: \"אין רשומות לעבד\",\n\t\tmodel : \"אורך של colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\",\n\t\t\t\t\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"ינו\", \"פבר\", \"מרץ\", \"אפר\", \"מאי\", \"יונ\", \"יול\", \"אוג\", \"ספט\", \"אוק\", \"נוב\", \"דצמ\",\n\t\t\t\t\"ינואר\", \"פברואר\", \"מרץ\", \"אפריל\", \"מאי\", \"יוני\", \"יולי\", \"אוגוסט\", \"ספטמבר\", \"אוקטובר\", \"נובמבר\", \"דצמבר\"\n\t\t\t],\n\t\t\tAmPm : [\"לפני הצהרים\",\"אחר הצהרים\",\"לפני הצהרים\",\"אחר הצהרים\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-hr.js",
    "content": "/**\n * jqGrid Croatian Translation\n * Version 1.0.1 (developed for jQuery Grid 4.4)\n * msajko@gmail.com\n * \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"hr\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pregled {0} - {1} od {2}\",\n\t\temptyrecords: \"Nema zapisa\",\n\t\tloadtext: \"Učitavam...\",\n\t\tpgtext : \"Stranica {0} od {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Traži...\",\n\t\tFind: \"Pretraživanje\",\n\t\tReset: \"Poništi\",\n\t\todata: [{ oper:'eq', text:\"jednak\"},{ oper:'ne', text:\"nije identičan\"},{ oper:'lt', text:\"manje\"},{ oper:'le', text:\"manje ili identično\"},{ oper:'gt', text:\"veće\"},{ oper:'ge', text:\"veće ili identično\"},{ oper:'bw', text:\"počinje sa\"},{ oper:'bn', text:\"ne počinje sa \"},{ oper:'in', text:\"je u\"},{ oper:'ni', text:\"nije u\"},{ oper:'ew', text:\"završava sa\"},{ oper:'en', text:\"ne završava sa\"},{ oper:'cn', text:\"sadrži\"},{ oper:'nc', text:\"ne sadrži\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"I\", text: \"sve\" },\t{ op: \"ILI\",  text: \"bilo koji\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj zapis\",\n\t\teditCaption: \"Promijeni zapis\",\n\t\tbSubmit: \"Preuzmi\",\n\t\tbCancel: \"Odustani\",\n\t\tbClose: \"Zatvri\",\n\t\tsaveData: \"Podaci su promijenjeni! Preuzmi promijene?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Odustani\",\n\t\tmsg: {\n\t\t\trequired:\"Polje je obavezno\",\n\t\t\tnumber:\"Molim, unesite ispravan broj\",\n\t\t\tminValue:\"Vrijednost mora biti veća ili identična \",\n\t\t\tmaxValue:\"Vrijednost mora biti manja ili identična\",\n\t\t\temail: \"neispravan e-mail\",\n\t\t\tinteger: \"Molim, unjeti ispravan cijeli broj (integer)\",\n\t\t\tdate: \"Molim, unjeti ispravan datum \",\n\t\t\turl: \"neispravan URL. Prefiks je obavezan ('http://' or 'https://')\",\n\t\t\tnodefined : \" nije definiran!\",\n\t\t\tnovalue : \" zahtjevan podatak je obavezan!\",\n\t\t\tcustomarray : \"Opcionalna funkcija trebala bi bili polje (array)!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Otvori zapis\",\n\t\tbClose: \"Zatvori\"\n\t},\n\tdel : {\n\t\tcaption: \"Obriši\",\n\t\tmsg: \"Obriši označen zapis ili više njih?\",\n\t\tbSubmit: \"Obriši\",\n\t\tbCancel: \"Odustani\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Promijeni obilježeni red\",\n\t\taddtext: \"\",\n\t\taddtitle: \"Dodaj novi red\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Obriši obilježeni red\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Potraži zapise\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ponovo preuzmi podatke\",\n\t\talertcap: \"Upozorenje\",\n\t\talerttext: \"Molim, odaberi red\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pregled obilježenog reda\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Obilježi kolonu\",\n\t\tbSubmit: \"Uredu\",\n\t\tbCancel: \"Odustani\"\n\t},\n\terrors : {\n\t\terrcap : \"Greška\",\n\t\tnourl : \"Nedostaje URL\",\n\t\tnorecords: \"Bez zapisa za obradu\",\n\t\tmodel : \"colNames i colModel imaju različitu duljinu!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sri\", \"Čet\", \"Pet\", \"Sub\",\n\t\t\t\t\"Nedjelja\", \"Ponedjeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Sij\", \"Velj\", \"Ožu\", \"Tra\", \"Svi\", \"Lip\", \"Srp\", \"Kol\", \"Ruj\", \"Lis\", \"Stu\", \"Pro\",\n\t\t\t\t\"Siječanj\", \"Veljača\", \"Ožujak\", \"Travanj\", \"Svibanj\", \"Lipanj\", \"Srpanj\", \"Kolovoz\", \"Rujan\", \"Listopad\", \"Studeni\", \"Prosinac\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y.',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\tISO8601Long: \"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short: \"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    m - Numeric representation of a month, with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tShortDate: \"d.m.Y.\",\t// in jQuery UI Datepicker: \"dd.mm.yy.\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, j. F Y\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tFullDateTime: \"l, j. F Y H:i:s\", // in jQuery UI Datepicker: \"dddd, d. MMMM yyyy HH:mm:ss\"\n\t\t\t\t// month day:\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tMonthDay: \"d F\", // in jQuery UI Datepicker: \"dd MMMM\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\tShortTime: \"H:i\", // in jQuery UI Datepicker: \"HH:mm\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    H - 24-hour format of an hour with leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\tLongTime: \"H:i:s\", // in jQuery UI Datepicker: \"HH:mm:ss\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tYearMonth: \"F Y\" // in jQuery UI Datepicker: \"MMMM yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-hu.js",
    "content": "/**\n * jqGrid Hungarian Translation\n * Őrszigety Ádám udx6bs@freemail.hu\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"hu\"] = {\n\tdefaults : {\n\t\trecordtext: \"Oldal {0} - {1} / {2}\",\n\t\temptyrecords: \"Nincs találat\",\n\t\tloadtext: \"Betöltés...\",\n\t\tpgtext : \"Oldal {0} / {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Keresés...\",\n\t\tFind: \"Keres\",\n\t\tReset: \"Alapértelmezett\",\n\t\todata: [{ oper:'eq', text:\"egyenlő\"},{ oper:'ne', text:\"nem egyenlő\"},{ oper:'lt', text:\"kevesebb\"},{ oper:'le', text:\"kevesebb vagy egyenlő\"},{ oper:'gt', text:\"nagyobb\"},{ oper:'ge', text:\"nagyobb vagy egyenlő\"},{ oper:'bw', text:\"ezzel kezdődik\"},{ oper:'bn', text:\"nem ezzel kezdődik\"},{ oper:'in', text:\"tartalmaz\"},{ oper:'ni', text:\"nem tartalmaz\"},{ oper:'ew', text:\"végződik\"},{ oper:'en', text:\"nem végződik\"},{ oper:'cn', text:\"tartalmaz\"},{ oper:'nc', text:\"nem tartalmaz\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Új tétel\",\n\t\teditCaption: \"Tétel szerkesztése\",\n\t\tbSubmit: \"Mentés\",\n\t\tbCancel: \"Mégse\",\n\t\tbClose: \"Bezárás\",\n\t\tsaveData: \"A tétel megváltozott! Tétel mentése?\",\n\t\tbYes : \"Igen\",\n\t\tbNo : \"Nem\",\n\t\tbExit : \"Mégse\",\n\t\tmsg: {\n\t\t\trequired:\"Kötelező mező\",\n\t\t\tnumber:\"Kérjük, adjon meg egy helyes számot\",\n\t\t\tminValue:\"Nagyobb vagy egyenlőnek kell lenni mint \",\n\t\t\tmaxValue:\"Kisebb vagy egyenlőnek kell lennie mint\",\n\t\t\temail: \"hibás emailcím\",\n\t\t\tinteger: \"Kérjük adjon meg egy helyes egész számot\",\n\t\t\tdate: \"Kérjük adjon meg egy helyes dátumot\",\n\t\t\turl: \"nem helyes cím. Előtag kötelező ('http://' vagy 'https://')\",\n\t\t\tnodefined : \" nem definiált!\",\n\t\t\tnovalue : \" visszatérési érték kötelező!!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Tétel megtekintése\",\n\t\tbClose: \"Bezárás\"\n\t},\n\tdel : {\n\t\tcaption: \"Törlés\",\n\t\tmsg: \"Kiválaztott tétel(ek) törlése?\",\n\t\tbSubmit: \"Törlés\",\n\t\tbCancel: \"Mégse\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Tétel szerkesztése\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Új tétel hozzáadása\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Tétel törlése\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Keresés\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Frissítés\",\n\t\talertcap: \"Figyelmeztetés\",\n\t\talerttext: \"Kérem válasszon tételt.\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Tétel megtekintése\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Oszlopok kiválasztása\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Mégse\"\n\t},\n\terrors : {\n\t\terrcap : \"Hiba\",\n\t\tnourl : \"Nincs URL beállítva\",\n\t\tnorecords: \"Nincs feldolgozásra váró tétel\",\n\t\tmodel : \"colNames és colModel hossza nem egyenlő!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Va\", \"Hé\", \"Ke\", \"Sze\", \"Csü\", \"Pé\", \"Szo\",\n\t\t\t\t\"Vasárnap\", \"Hétfő\", \"Kedd\", \"Szerda\", \"Csütörtök\", \"Péntek\", \"Szombat\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Már\", \"Ápr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Szep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Január\", \"Február\", \"Március\", \"Áprili\", \"Május\", \"Június\", \"Július\", \"Augusztus\", \"Szeptember\", \"Október\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"de\",\"du\",\"DE\",\"DU\"],\n\t\t\tS: function (j) {return '.-ik';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'Y/m/d',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"Y/j/n\",\n\t\t\t\tLongDate: \"Y. F hó d., l\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"a g:i\",\n\t\t\t\tLongTime: \"a g:i:s\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"Y, F\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-id.js",
    "content": "/**\n * jqGrid Indonesian Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"id\"] = {\n\tdefaults : {\n\t\trecordtext: \"Data {0} - {1} dari {2}\",\n\t\temptyrecords: \"Tidak ada data\",\n\t\tloadtext: \"Memuat...\",\n\t\tpgtext : \"Halaman {0} dari {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Pencarian\",\n\t\tFind: \"Cari !\",\n\t\tReset: \"Segarkan\",\n\t\todata: [{ oper:'eq', text:\"sama dengan\"},{ oper:'ne', text:\"tidak sama dengan\"},{ oper:'lt', text:\"kurang dari\"},{ oper:'le', text:\"kurang dari atau sama dengan\"},{ oper:'gt', text:\"lebih besar\"},{ oper:'ge', text:\"lebih besar atau sama dengan\"},{ oper:'bw', text:\"dimulai dengan\"},{ oper:'bn', text:\"tidak dimulai dengan\"},{ oper:'in', text:\"di dalam\"},{ oper:'ni', text:\"tidak di dalam\"},{ oper:'ew', text:\"diakhiri dengan\"},{ oper:'en', text:\"tidak diakhiri dengan\"},{ oper:'cn', text:\"mengandung\"},{ oper:'nc', text:\"tidak mengandung\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Tambah Data\",\n\t\teditCaption: \"Sunting Data\",\n\t\tbSubmit: \"Submit\",\n\t\tbCancel: \"Tutup\",\n\t\tbClose: \"Tutup\",\n\t\tsaveData: \"Data telah berubah! Simpan perubahan?\",\n\t\tbYes : \"Ya\",\n\t\tbNo : \"Tidak\",\n\t\tbExit : \"Tutup\",\n\t\tmsg: {\n\t\t\trequired:\"kolom wajib diisi\",\n\t\t\tnumber:\"hanya nomer yang diperbolehkan\",\n\t\t\tminValue:\"kolom harus lebih besar dari atau sama dengan\",\n\t\t\tmaxValue:\"kolom harus lebih kecil atau sama dengan\",\n\t\t\temail: \"alamat e-mail tidak valid\",\n\t\t\tinteger: \"hanya nilai integer yang diperbolehkan\",\n\t\t\tdate: \"nilai tanggal tidak valid\",\n\t\t\turl: \"Bukan URL yang valid. Harap gunakan ('http://' or 'https://')\",\n\t\t\tnodefined : \" belum didefinisikan!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Menampilkan data\",\n\t\tbClose: \"Tutup\"\n\t},\n\tdel : {\n\t\tcaption: \"Hapus\",\n\t\tmsg: \"Hapus data terpilih?\",\n\t\tbSubmit: \"Hapus\",\n\t\tbCancel: \"Batalkan\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Sunting data terpilih\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Tambah baris baru\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Hapus baris terpilih\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Temukan data\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Segarkan Grid\",\n\t\talertcap: \"Warning\",\n\t\talerttext: \"Harap pilih baris\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Tampilkan baris terpilih\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Pilih Kolom\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Batal\"\n\t},\n\terrors : {\n\t\terrcap : \"Error\",\n\t\tnourl : \"Tidak ada url yang diset\",\n\t\tnorecords: \"Tidak ada data untuk diproses\",\n\t\tmodel : \"Lebar dari colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"Rp. \", suffix:\"\", defaultValue: '0'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ming\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\",\n\t\t\t\t\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Agu\", \"Sep\", \"Okt\", \"Nov\", \"Des\",\n\t\t\t\t\"Januari\", \"Februari\", \"Maret\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Agustus\", \"September\", \"Oktober\", \"November\", \"Desember\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-is.js",
    "content": "/**\n * jqGrid Icelandic Translation\n * jtm@hi.is Univercity of Iceland\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"is\"] = {\n\tdefaults : {\n\t\trecordtext: \"Skoða {0} - {1} af {2}\",\n\t    emptyrecords: \"Engar færslur\",\n\t\tloadtext: \"Hleður...\",\n\t\tpgtext : \"Síða {0} af {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Leita...\",\n\t    Find: \"Leita\",\n\t    Reset: \"Endursetja\",\n\t    odata: [{ oper:'eq', text:\"sama og\"},{ oper:'ne', text:\"ekki sama og\"},{ oper:'lt', text:\"minna en\"},{ oper:'le', text:\"minna eða jafnt og\"},{ oper:'gt', text:\"stærra en\"},{ oper:'ge', text:\"stærra eða jafnt og\"},{ oper:'bw', text:\"byrjar á\"},{ oper:'bn', text:\"byrjar ekki á\"},{ oper:'in', text:\"er í\"},{ oper:'ni', text:\"er ekki í\"},{ oper:'ew', text:\"endar á\"},{ oper:'en', text:\"endar ekki á\"},{ oper:'cn', text:\"inniheldur\"},{ oper:'nc', text:\"inniheldur ekki\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"allt\" },\t{ op: \"OR\",  text: \"eða\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Bæta við færslu\",\n\t    editCaption: \"Breyta færslu\",\n\t    bSubmit: \"Vista\",\n\t    bCancel: \"Hætta við\",\n\t\tbClose: \"Loka\",\n\t\tsaveData: \"Gögn hafa breyst! Vista breytingar?\",\n\t\tbYes : \"Já\",\n\t\tbNo : \"Nei\",\n\t\tbExit : \"Hætta við\",\n\t    msg: {\n\t        required:\"Reitur er nauðsynlegur\",\n\t        number:\"Vinsamlega settu inn tölu\",\n\t        minValue:\"gildi verður að vera meira en eða jafnt og \",\n\t        maxValue:\"gildi verður að vera minna en eða jafnt og \",\n\t        email: \"er ekki löglegt email\",\n\t        integer: \"Vinsamlega settu inn tölu\",\n\t\t\tdate: \"Vinsamlega setti inn dagsetningu\",\n\t\t\turl: \"er ekki löglegt URL. Vantar ('http://' eða 'https://')\",\n\t\t\tnodefined : \" er ekki skilgreint!\",\n\t\t\tnovalue : \" skilagildi nauðsynlegt!\",\n\t\t\tcustomarray : \"Fall skal skila fylki!\",\n\t\t\tcustomfcheck : \"Fall skal vera skilgreint!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Skoða færslu\",\n\t    bClose: \"Loka\"\n\t},\n\tdel : {\n\t    caption: \"Eyða\",\n\t    msg: \"Eyða völdum færslum ?\",\n\t    bSubmit: \"Eyða\",\n\t    bCancel: \"Hætta við\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Breyta færslu\",\n\t\taddtext:\" \",\n\t    addtitle: \"Ný færsla\",\n\t    deltext: \" \",\n\t    deltitle: \"Eyða færslu\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Leita\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Endurhlaða\",\n\t    alertcap: \"Viðvörun\",\n\t    alerttext: \"Vinsamlega veldu færslu\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Skoða valda færslu\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Sýna / fela dálka\",\n\t    bSubmit: \"Vista\",\n\t    bCancel: \"Hætta við\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Villa\",\n\t\tnourl : \"Vantar slóð\",\n\t\tnorecords: \"Engar færslur valdar\",\n\t    model : \"Lengd colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sun\", \"Mán\", \"Þri\", \"Mið\", \"Fim\", \"Fös\", \"Lau\",\n\t\t\t\t\"Sunnudagur\", \"Mánudagur\", \"Þriðjudagur\", \"Miðvikudagur\", \"Fimmtudagur\", \"Föstudagur\", \"Laugardagur\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maí\", \"Jún\", \"Júl\", \"Ágú\", \"Sep\", \"Oct\", \"Nóv\", \"Des\",\n\t\t\t\t\"Janúar\", \"Febrúar\", \"Mars\", \"Apríl\", \"Maí\", \"Júný\", \"Júlý\", \"Ágúst\", \"September\", \"Október\", \"Nóvember\", \"Desember\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-it.js",
    "content": "/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"it\"] = {\n\tdefaults : {\n\t\trecordtext: \"Mostra {0} - {1} di {2}\",\n\t\temptyrecords: \"Non ci sono record da mostrare\",\n\t\tloadtext: \"Caricamento...\",\n\t\tsavetext: \"Salvataggio...\",\n\t\tpgtext : \"Pagina {0} di {1}\",\n\t\tpgfirst : \"Prima Pagina\",\n\t\tpglast : \"Ultima Pagina\",\n\t\tpgnext : \"Pagina Successiva\",\n\t\tpgprev : \"Pagina Precedente\",\n\t\tpgrecs : \"Records per Pagina\",\n\t\tshowhide: \"Espandi o collassa griglia\",\n\t\t// mobile\n\t\tpagerCaption : \"Griglia::Impostaioni della pagina\",\n\t\tpageText : \"Pagina:\",\n\t\trecordPage : \"Records per Pagina\",\n\t\tnomorerecs : \"Non ci sono altri record...\",\n\t\tscrollPullup: \"Trascina verso l'alto per altri...\",\n\t\tscrollPulldown : \"Trascina verso il basso per aggiornare...\",\n\t\tscrollRefresh : \"Rilascia per aggiornare...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Cerca...\",\n\t\tFind: \"Trova\",\n\t\tReset: \"Reset\",\n\t\todata: [{ oper:'eq', text:'uguale'},{ oper:'ne', text:'diverso'},{ oper:'lt', text:'minore'},{ oper:'le', text:'minore o uguale'},{ oper:'gt', text:'maggiore'},{ oper:'ge', text:'maggiore o uguale'},{ oper:'bw', text:'inizia per'},{ oper:'bn', text:'non inizia per'},{ oper:'in', text:'è in'},{ oper:'ni', text:'non è in'},{ oper:'ew', text:'finisce per'},{ oper:'en', text:'non finisce per'},{ oper:'cn', text:'contiene'},{ oper:'nc', text:'non contiene'},{ oper:'nu', text:'è null'},{ oper:'nn', text:'non è null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"tutti\" },{ op: \"OR\",  text: \"ciascuno\" }],\n\t\toperandTitle : \"Clicca sull'opzione di ricerca scelta.\",\n\t\tresetTitle : \"Resetta valori di ricerca\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Aggiungi Record\",\n\t\teditCaption: \"Modifica Record\",\n\t\tbSubmit: \"Invia\",\n\t\tbCancel: \"Annulla\",\n\t\tbClose: \"Chiudi\",\n\t\tsaveData: \"I dati sono stati modificati! Salvare le modifiche?\",\n\t\tbYes : \"Si\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Annulla\",\n\t\tmsg: {\n\t\t\trequired:\"Campo obbligatorio\",\n\t\t\tnumber:\"Per favore, inserisci un numero valido\",\n\t\t\tminValue:\"il valore deve essere maggiore o uguale a \",\n\t\t\tmaxValue:\"il valore deve essere minore o uguale a \",\n\t\t\temail: \"non è una e-mail valida\",\n\t\t\tinteger: \"Per favore, inserisci un intero valido\",\n\t\t\tdate: \"Per favore, inserisci una data valida\",\n\t\t\turl: \"non è un URL valido. Prefissi richiesti ('http://' o 'https://')\",\n\t\t\tnodefined : \" non è definito!\",\n\t\t\tnovalue : \" valore di ritorno richiesto!\",\n\t\t\tcustomarray : \"La funzione personalizzata deve restituire un array!\",\n\t\t\tcustomfcheck : \"La funzione personalizzata deve essere presente in caso di controlli personalizzati!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Visualizza Record\",\n\t\tbClose: \"Chiudi\"\n\t},\n\tdel : {\n\t\tcaption: \"Cancella\",\n\t\tmsg: \"Cancellare i record selezionati?\",\n\t\tbSubmit: \"Canella\",\n\t\tbCancel: \"Annulla\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Modifica riga selezionata\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Aggiungi riga\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Cancella riga\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Trova record\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ricarica tabella\",\n\t\talertcap: \"Attenzione\",\n\t\talerttext: \"Per favore, seleziona un record\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Visualizza riga selezionata\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Salva riga\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Annulla modifica riga\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Seleziona colonne\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Annulla\"\n\t},\n\terrors : {\n\t\terrcap : \"Errore\",\n\t\tnourl : \"Nessun url impostato\",\n\t\tnorecords: \"Non ci sono record da elaborare\",\n\t\tmodel : \"Lunghezza dei colNames <> colModel!\"\n\t},\n\tformatter:{\n\t\tinteger:{ \n\t\t\tthousandsSeparator:\".\",\n\t\t\tdefaultValue:\"0\"\n\t\t},\n\t\tnumber:{\n\t\t\tdecimalSeparator:\",\",\n\t\t\tthousandsSeparator:\".\",\n\t\t\tdecimalPlaces:2,\n\t\t\tdefaultValue:\"0,00\"\n\t\t},\n\t\tcurrency:{\n\t\t\tdecimalSeparator:\",\",\n\t\t\tthousandsSeparator:\".\",\n\t\t\tdecimalPlaces:2,\n\t\t\tprefix:\"€ \",\n\t\t\tsuffix:\"\",\n\t\t\tdefaultValue:\"0,00\"\n\t\t},\n\t\tdate:{\n\t\t\tdayNames:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\",\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"],\n\t\t\tmonthNames:[\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\",\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],\n\t\t\tAmPm:[\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS:function(b){return b<11||b>13?[\"st\",\"nd\",\"rd\",\"th\"][Math.min((b-1)%10,3)]:\"th\"},\n\t\t\tsrcformat:\"Y-m-d\",\n\t\t\tnewformat:\"d/m/Y\",\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks:{\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\", \n\t\t\t\tShortDate:\"d/m/Y\", \n\t\t\t\tLongDate:\"l d F Y\",\n\t\t\t\tFullDateTime:\"l d F Y G:i:s\",\n\t\t\t\tMonthDay:\"F d\",\n\t\t\t\tShortTime:\"H:i\",\n\t\t\t\tLongTime:\"H:i:s\",\n\t\t\t\tSortableDateTime:\"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime:\"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth:\"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit:false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl:\"\",\n\t\tshowAction:\"\",\n\t\ttarget:\"\",\n\t\tcheckbox:{ disabled:true},\n\t\tidName:\"id\"\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ja.js",
    "content": "/**\n * jqGrid Japanese Translation\n * OKADA Yoshitada okada.dev@sth.jp\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ja\"] = {\n\tdefaults : {\n\t\trecordtext: \"{2} \\u4EF6\\u4E2D {0} - {1} \\u3092\\u8868\\u793A \",\n\t    emptyrecords: \"\\u8868\\u793A\\u3059\\u308B\\u30EC\\u30B3\\u30FC\\u30C9\\u304C\\u3042\\u308A\\u307E\\u305B\\u3093\",\n\t\tloadtext: \"\\u8aad\\u307f\\u8fbc\\u307f\\u4e2d...\",\n\t\tpgtext : \"{1} \\u30DA\\u30FC\\u30B8\\u4E2D {0} \\u30DA\\u30FC\\u30B8\\u76EE \",\n\t\tsavetext: \"\\u4fdd\\u5b58\\u4e2d...\",\n\t\tpgfirst : \"\\u6700\\u521d\\u306e\\u30da\\u30fc\\u30b8\\u3078\",\n\t\tpglast : \"\\u6700\\u5f8c\\u306e\\u30da\\u30fc\\u30b8\\u3078\",\n\t\tpgnext : \"\\u6b21\\u306e\\u30da\\u30fc\\u30b8\",\n\t\tpgprev : \"\\u524d\\u306e\\u30da\\u30fc\\u30b8\",\n\t\tpgrecs : \"\\u30da\\u30fc\\u30b8\\u5358\\u4f4d\\u306e\\u30ec\\u30b3\\u30fc\\u30c9\\u6570\",\n\t\tshowhide: \"\\u30b0\\u30ea\\u30c3\\u30c9\\u306e\\u5c55\\u958b/\\u9589\\u3058\\u8fbc\\u307f\",\n\t\t// mobile\n\t\tpagerCaption : \"\\u30b0\\u30ea\\u30c3\\u30c9::\\u30da\\u30fc\\u30b8\\u8a2d\\u5b9a\",\n\t\tpageText : \"\\u30da\\u30fc\\u30b8:\",\n\t\trecordPage : \"\\u30da\\u30fc\\u30b8\\u5358\\u4f4d\\u306e\\u30ec\\u30b3\\u30fc\\u30c9\\u6570\",\n\t\tnomorerecs : \"\\u30ec\\u30b3\\u30fc\\u30c9\\u304c\\u3042\\u308a\\u307e\\u305b\\u3093...\",\n\t\tscrollPullup: \"\\u4e0a\\u306b\\u30b9\\u30af\\u30ed\\u30fc\\u30eb\\u3057\\u3066\\u8aad\\u307f\\u8fbc\\u307f...\",\n\t\tscrollPulldown : \"\\u4e0b\\u306b\\u30b9\\u30af\\u30ed\\u30fc\\u30eb\\u3057\\u3066\\u66f4\\u65b0...\",\n\t\tscrollRefresh : \"\\u653e\\u3057\\u3066\\u66f4\\u65b0...\"\n\t},\n\tsearch : {\n\t    caption: \"\\u691c\\u7d22...\",\n\t    Find: \"\\u691c\\u7d22\",\n\t    Reset: \"\\u30ea\\u30bb\\u30c3\\u30c8\",\n\t    odata: [{ oper:'eq', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u3044\"}, { oper:'ne', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u304F\\u306A\\u3044\"},\n            { oper:'lt', text:\"\\u6B21\\u3088\\u308A\\u5C0F\\u3055\\u3044\"}, { oper:'le', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u3044\\u304B\\u5C0F\\u3055\\u3044\"},\n            { oper:'gt', text:\"\\u6B21\\u3088\\u308A\\u5927\\u304D\\u3044\"}, { oper:'ge', text:\"\\u6B21\\u306B\\u7B49\\u3057\\u3044\\u304B\\u5927\\u304D\\u3044\"},\n            { oper:'bw', text:\"\\u6B21\\u3067\\u59CB\\u307E\\u308B\"}, { oper:'bn', text:\"\\u6B21\\u3067\\u59CB\\u307E\\u3089\\u306A\\u3044\"},\n            { oper:'in', text:\"\\u6B21\\u306B\\u542B\\u307E\\u308C\\u308B\"}, { oper:'ni', text:\"\\u6B21\\u306B\\u542B\\u307E\\u308C\\u306A\\u3044\"},\n            { oper:'ew', text:\"\\u6B21\\u3067\\u7D42\\u308F\\u308B\"}, { oper:'en', text:\"\\u6B21\\u3067\\u7D42\\u308F\\u3089\\u306A\\u3044\"},\n            { oper:'cn', text:\"\\u6B21\\u3092\\u542B\\u3080\"}, { oper:'nc', text:\"\\u6B21\\u3092\\u542B\\u307E\\u306A\\u3044\"},\n\t\t\t{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [{\n                op: \"AND\",\n                text: \"\\u3059\\u3079\\u3066\\u306E\"\n            },\n            {\n                op: \"OR\",\n                text: \"\\u3044\\u305A\\u308C\\u304B\\u306E\"\n            }],\n\t\toperandTitle : \"\\u30af\\u30ea\\u30c3\\u30af\\u3057\\u3066\\u691c\\u7d22\\u64cd\\u4f5c\\u3092\\u9078\\u629e\",\n\t\tresetTitle : \"\\u691c\\u7d22\\u5024\\u3092\\u30ea\\u30bb\\u30c3\\u30c8\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n\t},\n\tedit : {\n\t    addCaption: \"\\u30ec\\u30b3\\u30fc\\u30c9\\u8ffd\\u52a0\",\n\t    editCaption: \"\\u30ec\\u30b3\\u30fc\\u30c9\\u7de8\\u96c6\",\n\t    bSubmit: \"\\u9001\\u4fe1\",\n\t    bCancel: \"\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\",\n  \t\tbClose: \"\\u9589\\u3058\\u308b\",\n      saveData: \"\\u30C7\\u30FC\\u30BF\\u304C\\u5909\\u66F4\\u3055\\u308C\\u3066\\u3044\\u307E\\u3059\\u3002\\u4FDD\\u5B58\\u3057\\u307E\\u3059\\u304B\\uFF1F\",\n      bYes: \"\\u306F\\u3044\",\n      bNo: \"\\u3044\\u3044\\u3048\",\n      bExit: \"\\u30AD\\u30E3\\u30F3\\u30BB\\u30EB\",\n\t    msg: {\n\t        required:\"\\u3053\\u306e\\u9805\\u76ee\\u306f\\u5fc5\\u9808\\u3067\\u3059\\u3002\",\n\t        number:\"\\u6b63\\u3057\\u3044\\u6570\\u5024\\u3092\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n\t        minValue:\"\\u6b21\\u306e\\u5024\\u4ee5\\u4e0a\\u3067\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n\t        maxValue:\"\\u6b21\\u306e\\u5024\\u4ee5\\u4e0b\\u3067\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n\t        email: \"e-mail\\u304c\\u6b63\\u3057\\u304f\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\",\n\t        integer: \"\\u6b63\\u3057\\u3044\\u6574\\u6570\\u5024\\u3092\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n    \t\t\tdate: \"\\u6b63\\u3057\\u3044\\u5024\\u3092\\u5165\\u529b\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n          url: \"\\u306F\\u6709\\u52B9\\u306AURL\\u3067\\u306F\\u3042\\u308A\\u307E\\u305B\\u3093\\u3002\\20\\u30D7\\u30EC\\u30D5\\u30A3\\u30C3\\u30AF\\u30B9\\u304C\\u5FC5\\u8981\\u3067\\u3059\\u3002 ('http://' \\u307E\\u305F\\u306F 'https://')\",\n          nodefined: \" \\u304C\\u5B9A\\u7FA9\\u3055\\u308C\\u3066\\u3044\\u307E\\u305B\\u3093\",\n          novalue: \" \\u623B\\u308A\\u5024\\u304C\\u5FC5\\u8981\\u3067\\u3059\",\n          customarray: \"\\u30AB\\u30B9\\u30BF\\u30E0\\u95A2\\u6570\\u306F\\u914D\\u5217\\u3092\\u8FD4\\u3059\\u5FC5\\u8981\\u304C\\u3042\\u308A\\u307E\\u3059\",\n          customfcheck: \"\\u30AB\\u30B9\\u30BF\\u30E0\\u691C\\u8A3C\\u306B\\u306F\\u30AB\\u30B9\\u30BF\\u30E0\\u95A2\\u6570\\u304C\\u5FC5\\u8981\\u3067\\u3059\"\n\t\t}\n\t},\n\tview : {\n      caption: \"\\u30EC\\u30B3\\u30FC\\u30C9\\u3092\\u8868\\u793A\",\n      bClose: \"\\u9589\\u3058\\u308B\"\n\t},\n\tdel : {\n\t    caption: \"\\u524a\\u9664\",\n\t    msg: \"\\u9078\\u629e\\u3057\\u305f\\u30ec\\u30b3\\u30fc\\u30c9\\u3092\\u524a\\u9664\\u3057\\u307e\\u3059\\u304b\\uff1f\",\n\t    bSubmit: \"\\u524a\\u9664\",\n\t    bCancel: \"\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\"\n\t},\n\tnav : {\n    \tedittext: \" \",\n\t    edittitle: \"\\u9078\\u629e\\u3057\\u305f\\u884c\\u3092\\u7de8\\u96c6\",\n      addtext:\" \",\n\t    addtitle: \"\\u884c\\u3092\\u65b0\\u898f\\u8ffd\\u52a0\",\n\t    deltext: \" \",\n\t    deltitle: \"\\u9078\\u629e\\u3057\\u305f\\u884c\\u3092\\u524a\\u9664\",\n\t    searchtext: \" \",\n\t    searchtitle: \"\\u30ec\\u30b3\\u30fc\\u30c9\\u691c\\u7d22\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"\\u30b0\\u30ea\\u30c3\\u30c9\\u3092\\u30ea\\u30ed\\u30fc\\u30c9\",\n\t    alertcap: \"\\u8b66\\u544a\",\n\t    alerttext: \"\\u884c\\u3092\\u9078\\u629e\\u3057\\u3066\\u4e0b\\u3055\\u3044\\u3002\",\n      viewtext: \"\",\n      viewtitle: \"\\u9078\\u629E\\u3057\\u305F\\u884C\\u3092\\u8868\\u793A\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"\\u5217\\u3092\\u4fdd\\u5b58\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"\\u5217\\u306e\\u7de8\\u96c6\\u3092\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\",\n\t\tselectcaption : \"\\u30a2\\u30af\\u30b7\\u30e7\\u30f3...\"\n\t},\n\tcol : {\n\t    caption: \"\\u5217\\u3092\\u8868\\u793a\\uff0f\\u96a0\\u3059\",\n\t    bSubmit: \"\\u9001\\u4fe1\",\n\t    bCancel: \"\\u30ad\\u30e3\\u30f3\\u30bb\\u30eb\"\t\n\t},\n\terrors : {\n\t\terrcap : \"\\u30a8\\u30e9\\u30fc\",\n\t\tnourl : \"URL\\u304c\\u8a2d\\u5b9a\\u3055\\u308c\\u3066\\u3044\\u307e\\u305b\\u3093\\u3002\",\n\t\tnorecords: \"\\u51e6\\u7406\\u5bfe\\u8c61\\u306e\\u30ec\\u30b3\\u30fc\\u30c9\\u304c\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\",\n\t    model : \"colNames\\u306e\\u9577\\u3055\\u304ccolModel\\u3068\\u4e00\\u81f4\\u3057\\u307e\\u305b\\u3093\\u3002\"\n\t},\n\tformatter : {\n            integer: {\n                thousandsSeparator: \",\",\n                defaultValue: '0'\n            },\n            number: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \",\",\n                decimalPlaces: 2,\n                defaultValue: '0.00'\n            },\n            currency: {\n                decimalSeparator: \".\",\n                thousandsSeparator: \",\",\n                decimalPlaces: 0,\n                prefix: \"\",\n                suffix: \"\",\n                defaultValue: '0'\n            },\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"\\u65e5\", \"\\u6708\", \"\\u706b\", \"\\u6c34\", \"\\u6728\", \"\\u91d1\", \"\\u571f\",\n\t\t\t\t\"\\u65e5\", \"\\u6708\", \"\\u706b\", \"\\u6c34\", \"\\u6728\", \"\\u91d1\", \"\\u571f\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\",\n\t\t\t\t\"1\\u6708\", \"2\\u6708\", \"3\\u6708\", \"4\\u6708\", \"5\\u6708\", \"6\\u6708\", \"7\\u6708\", \"8\\u6708\", \"9\\u6708\", \"10\\u6708\", \"11\\u6708\", \"12\\u6708\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) { return \"\\u756a\\u76ee\"; },\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-kr.js",
    "content": "/**\n * jqGrid English Translation\n * Tony Tomov tony@trirand.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"kr\"] = {\n\tdefaults : {\n\t\trecordtext: \"보기 {0} - {1} / {2}\",\n\t\temptyrecords: \"표시할 행이 없습니다\",\n\t\tloadtext: \"조회중...\",\n\t\tpgtext : \"페이지 {0} / {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"검색...\",\n\t\tFind: \"찾기\",\n\t\tReset: \"초기화\",\n\t\todata: [{ oper:'eq', text:\"같다\"},{ oper:'ne', text:\"같지 않다\"},{ oper:'lt', text:\"작다\"},{ oper:'le', text:\"작거나 같다\"},{ oper:'gt', text:\"크다\"},{ oper:'ge', text:\"크거나 같다\"},{ oper:'bw', text:\"로 시작한다\"},{ oper:'bn', text:\"로 시작하지 않는다\"},{ oper:'in', text:\"내에 있다\"},{ oper:'ni', text:\"내에 있지 않다\"},{ oper:'ew', text:\"로 끝난다\"},{ oper:'en', text:\"로 끝나지 않는다\"},{ oper:'cn', text:\"내에 존재한다\"},{ oper:'nc', text:\"내에 존재하지 않는다\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"전부\" },\t{ op: \"OR\",  text: \"임의\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"행 추가\",\n\t\teditCaption: \"행 수정\",\n\t\tbSubmit: \"전송\",\n\t\tbCancel: \"취소\",\n\t\tbClose: \"닫기\",\n\t\tsaveData: \"자료가 변경되었습니다! 저장하시겠습니까?\",\n\t\tbYes : \"예\",\n\t\tbNo : \"아니오\",\n\t\tbExit : \"취소\",\n\t\tmsg: {\n\t\t\trequired:\"필수항목입니다\",\n\t\t\tnumber:\"유효한 번호를 입력해 주세요\",\n\t\t\tminValue:\"입력값은 크거나 같아야 합니다\",\n\t\t\tmaxValue:\"입력값은 작거나 같아야 합니다\",\n\t\t\temail: \"유효하지 않은 이메일주소입니다\",\n\t\t\tinteger: \"유효한 숫자를 입력하세요\",\n\t\t\tdate: \"유효한 날짜를 입력하세요\",\n\t\t\turl: \"은 유효하지 않은 URL입니다. 문장앞에 다음단어가 필요합니다('http://' or 'https://')\",\n\t\t\tnodefined : \" 은 정의도지 않았습니다!\",\n\t\t\tnovalue : \" 반환값이 필요합니다!\",\n\t\t\tcustomarray : \"사용자정의 함수는 배열을 반환해야 합니다!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"행 조회\",\n\t\tbClose: \"닫기\"\n\t},\n\tdel : {\n\t\tcaption: \"삭제\",\n\t\tmsg: \"선택된 행을 삭제하시겠습니까?\",\n\t\tbSubmit: \"삭제\",\n\t\tbCancel: \"취소\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"선택된 행 편집\",\n\t\taddtext:\"\",\n\t\taddtitle: \"행 삽입\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"선택된 행 삭제\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"행 찾기\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"그리드 갱신\",\n\t\talertcap: \"경고\",\n\t\talerttext: \"행을 선택하세요\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"선택된 행 조회\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"열을 선택하세요\",\n\t\tbSubmit: \"확인\",\n\t\tbCancel: \"취소\"\n\t},\n\terrors : {\n\t\terrcap : \"오류\",\n\t\tnourl : \"설정된 url이 없습니다\",\n\t\tnorecords: \"처리할 행이 없습니다\",\n\t\tmodel : \"colNames의 길이가 colModel과 일치하지 않습니다!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \",\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thr\", \"Fri\", \"Sat\",\n\t\t\t\t\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\",\n\t\t\t\t\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'm-d-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"Y/j/n\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-lt.js",
    "content": "/**\n * jqGrid Lithuanian Translation\n * aur1mas aur1mas@devnet.lt\n * http://aur1mas.devnet.lt\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"lt\"] = {\n\tdefaults : {\n\t\trecordtext: \"Peržiūrima {0} - {1} iš {2}\",\n\t\temptyrecords: \"Įrašų nėra\",\n\t\tloadtext: \"Kraunama...\",\n\t\tpgtext : \"Puslapis {0} iš {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Paieška...\",\n\t\tFind: \"Ieškoti\",\n\t\tReset: \"Atstatyti\",\n\t\todata: [{ oper:'eq', text:\"lygu\"},{ oper:'ne', text:\"nelygu\"},{ oper:'lt', text:\"mažiau\"},{ oper:'le', text:\"mažiau arba lygu\"},{ oper:'gt', text:\"daugiau\"},{ oper:'ge', text:\"daugiau arba lygu\"},{ oper:'bw', text:\"prasideda\"},{ oper:'bn', text:\"neprasideda\"},{ oper:'in', text:\"reikšmė yra\"},{ oper:'ni', text:\"reikšmės nėra\"},{ oper:'ew', text:\"baigiasi\"},{ oper:'en', text:\"nesibaigia\"},{ oper:'cn', text:\"yra sudarytas\"},{ oper:'nc', text:\"nėra sudarytas\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"visi\" },\t{ op: \"OR\",  text: \"bet kuris\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Sukurti įrašą\",\n\t\teditCaption: \"Redaguoti įrašą\",\n\t\tbSubmit: \"Išsaugoti\",\n\t\tbCancel: \"Atšaukti\",\n\t\tbClose: \"Uždaryti\",\n\t\tsaveData: \"Duomenys buvo pakeisti! Išsaugoti pakeitimus?\",\n\t\tbYes : \"Taip\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Atšaukti\",\n\t\tmsg: {\n\t\t\trequired:\"Privalomas laukas\",\n\t\t\tnumber:\"Įveskite tinkamą numerį\",\n\t\t\tminValue:\"reikšmė turi būti didesnė arba lygi \",\n\t\t\tmaxValue:\"reikšmė turi būti mažesnė arba lygi\",\n\t\t\temail: \"neteisingas el. pašto adresas\",\n\t\t\tinteger: \"Įveskite teisingą sveikąjį skaičių\",\n\t\t\tdate: \"Įveskite teisingą datą\",\n\t\t\turl: \"blogas adresas. Nepamirškite pridėti ('http://' arba 'https://')\",\n\t\t\tnodefined : \" nėra apibrėžta!\",\n\t\t\tnovalue : \" turi būti gražinama kokia nors reikšmė!\",\n\t\t\tcustomarray : \"Custom f-ja turi grąžinti masyvą!\",\n\t\t\tcustomfcheck : \"Custom f-ja tūrėtų būti sukurta, prieš bandant ją naudoti!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Peržiūrėti įrašus\",\n\t\tbClose: \"Uždaryti\"\n\t},\n\tdel : {\n\t\tcaption: \"Ištrinti\",\n\t\tmsg: \"Ištrinti pažymėtus įrašus(-ą)?\",\n\t\tbSubmit: \"Ištrinti\",\n\t\tbCancel: \"Atšaukti\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Redaguoti pažymėtą eilutę\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Pridėti naują eilutę\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Ištrinti pažymėtą eilutę\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Rasti įrašus\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Perkrauti lentelę\",\n\t\talertcap: \"Įspėjimas\",\n\t\talerttext: \"Pasirinkite eilutę\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Peržiūrėti pasirinktą eilutę\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Pasirinkti stulpelius\",\n\t\tbSubmit: \"Gerai\",\n\t\tbCancel: \"Atšaukti\"\n\t},\n\terrors : {\n\t\terrcap : \"Klaida\",\n\t\tnourl : \"Url reikšmė turi būti perduota\",\n\t\tnorecords: \"Nėra įrašų, kuriuos būtų galima apdoroti\",\n\t\tmodel : \"colNames skaičius <> colModel skaičiui!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \"\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \"\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sek\", \"Pir\", \"Ant\", \"Tre\", \"Ket\", \"Pen\", \"Šeš\",\n\t\t\t\t\"Sekmadienis\", \"Pirmadienis\", \"Antradienis\", \"Trečiadienis\", \"Ketvirtadienis\", \"Penktadienis\", \"Šeštadienis\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Sau\", \"Vas\", \"Kov\", \"Bal\", \"Geg\", \"Bir\", \"Lie\", \"Rugj\", \"Rugs\", \"Spa\", \"Lap\", \"Gru\",\n\t\t\t\t\"Sausis\", \"Vasaris\", \"Kovas\", \"Balandis\", \"Gegužė\", \"Birželis\", \"Liepa\", \"Rugpjūtis\", \"Rugsėjis\", \"Spalis\", \"Lapkritis\", \"Gruodis\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-me.js",
    "content": "/**\n * jqGrid Montenegrian Translation\n * Bild Studio info@bild-studio.net\n * http://www.bild-studio.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"me\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pregled {0} - {1} od {2}\",\n\t\temptyrecords: \"Ne postoji nijedan zapis\",\n\t\tloadtext: \"Učitivanje...\",\n\t\tpgtext : \"Strana {0} od {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Traženje...\",\n\t\tFind: \"Traži\",\n\t\tReset: \"Resetuj\",\n\t\todata: [{ oper:'eq', text:\"jednako\"},{ oper:'ne', text:\"nije jednako\"},{ oper:'lt', text:\"manje\"},{ oper:'le', text:\"manje ili jednako\"},{ oper:'gt', text:\"veće\"},{ oper:'ge', text:\"veće ili jednako\"},{ oper:'bw', text:\"počinje sa\"},{ oper:'bn', text:\"ne počinje sa\"},{ oper:'in', text:\"je u\"},{ oper:'ni', text:\"nije u\"},{ oper:'ew', text:\"završava sa\"},{ oper:'en', text:\"ne završava sa\"},{ oper:'cn', text:\"sadrži\"},{ oper:'nc', text:\"ne sadrži\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"sva\" },\t{ op: \"OR\",  text: \"bilo koje\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj zapis\",\n\t\teditCaption: \"Izmjeni zapis\",\n\t\tbSubmit: \"Pošalji\",\n\t\tbCancel: \"Odustani\",\n\t\tbClose: \"Zatvori\",\n\t\tsaveData: \"Podatak je izmjenjen! Sačuvaj izmjene?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Odustani\",\n\t\tmsg: {\n\t\t\trequired:\"Polje je obavezno\",\n\t\t\tnumber:\"Unesite ispravan broj\",\n\t\t\tminValue:\"vrijednost mora biti veća od ili jednaka sa \",\n\t\t\tmaxValue:\"vrijednost mora biti manja ili jednaka sa\",\n\t\t\temail: \"nije ispravna email adresa, nije valjda da ne umiješ ukucati mail!?\",\n\t\t\tinteger: \"Ne zajebaji se unesi cjelobrojnu vrijednost \",\n\t\t\tdate: \"Unesite ispravan datum\",\n\t\t\turl: \"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')\",\n\t\t\tnodefined : \" nije definisan!\",\n\t\t\tnovalue : \" zahtjevana je povratna vrijednost!\",\n\t\t\tcustomarray : \"Prilagođena funkcija treba da vrati niz!\",\n\t\t\tcustomfcheck : \"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provjere!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Pogledaj zapis\",\n\t\tbClose: \"Zatvori\"\n\t},\n\tdel : {\n\t\tcaption: \"Izbrisi\",\n\t\tmsg: \"Izbrisi izabran(e) zapise(e)?\",\n\t\tbSubmit: \"Izbriši\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Izmjeni izabrani red\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Dodaj novi red\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Izbriši izabran red\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Nađi zapise\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ponovo učitaj podatke\",\n\t\talertcap: \"Upozorenje\",\n\t\talerttext: \"Izaberite red\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pogledaj izabrani red\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Izaberi kolone\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\terrors : {\n\t\terrcap : \"Greška\",\n\t\tnourl : \"Nije postavljen URL\",\n\t\tnorecords: \"Nema zapisa za obradu\",\n\t\tmodel : \"Dužina modela colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\",\n\t\t\t\t\"Nedelja\", \"Ponedeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-nl.js",
    "content": "//NETHERLANDS\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"nl\"] = {\n        defaults:\n        {\n            recordtext: \"regels {0} - {1} van {2}\",\n            emptyrecords: \"Geen data gevonden.\",\n            loadtext: \"Laden...\",\n            pgtext: \"pagina  {0}  van {1}\",\n\t\t\tsavetext: \"Saving...\",\n\t\t\tpgfirst : \"Eerste Pagina\",\n\t\t\tpglast : \"Laatste Pagina\",\n\t\t\tpgnext : \"Volgende Pagina\",\n\t\t\tpgprev : \"Vorige Pagina\",\n\t\t\tpgrecs : \"Records per Pagina\",\n\t\t\tshowhide: \"Schakelen Uitklappen Inklappen Grid\",\n\t\t\t// mobile\n\t\t\tpagerCaption : \"Grid::Page Settings\",\n\t\t\tpageText : \"Page:\",\n\t\t\trecordPage : \"Records per Page\",\n\t\t\tnomorerecs : \"No more records...\",\n\t\t\tscrollPullup: \"Pull up to load more...\",\n\t\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\t\tscrollRefresh : \"Release to refresh...\"\n        },\n        search:\n        {\n            caption: \"Zoeken...\",\n            Find: \"Zoek\",\n            Reset: \"Herstellen\",\n            odata: [{ oper:'eq', text:\"gelijk aan\"},{ oper:'ne', text:\"niet gelijk aan\"},{ oper:'lt', text:\"kleiner dan\"},{ oper:'le', text:\"kleiner dan of gelijk aan\"},{ oper:'gt', text:\"groter dan\"},{ oper:'ge', text:\"groter dan of gelijk aan\"},{ oper:'bw', text:\"begint met\"},{ oper:'bn', text:\"begint niet met\"},{ oper:'in', text:\"is in\"},{ oper:'ni', text:\"is niet in\"},{ oper:'ew', text:\"eindigt met\"},{ oper:'en', text:\"eindigt niet met\"},{ oper:'cn', text:\"bevat\"},{ oper:'nc', text:\"bevat niet\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n            groupOps: [{ op: \"AND\", text: \"alle\" }, { op: \"OR\", text: \"een van de\"}],\n\t\t\toperandTitle : \"Klik om de zoekterm te selecteren.\",\n\t\t\tresetTitle : \"Herstel zoekterm\",\n\t\t\taddsubgrup : \"Add subgroup\",\n\t\t\taddrule : \"Add rule\",\n\t\t\tdelgroup : \"Delete group\",\n\t\t\tdelrule : \"Delete rule\"\n        },\n        edit:\n        {\n            addCaption: \"Nieuw\",\n            editCaption: \"Bewerken\",\n            bSubmit: \"Opslaan\",\n            bCancel: \"Annuleren\",\n            bClose: \"Sluiten\",\n            saveData: \"Er is data aangepast! Wijzigingen opslaan?\",\n            bYes: \"Ja\",\n            bNo: \"Nee\",\n            bExit: \"Sluiten\",\n            msg:\n            {\n                required: \"Veld is verplicht\",\n                number: \"Voer a.u.b. geldig nummer in\",\n                minValue: \"Waarde moet groter of gelijk zijn aan \",\n                maxValue: \"Waarde moet kleiner of gelijk zijn aan\",\n                email: \"is geen geldig e-mailadres\",\n                integer: \"Voer a.u.b. een geldig getal in\",\n                date: \"Voer a.u.b. een geldige waarde in\",\n                url: \"is geen geldige URL. Prefix is verplicht ('http://' or 'https://')\",\n                nodefined : \" is niet gedefineerd!\",\n                novalue : \" return waarde is verplicht!\",\n                customarray : \"Aangepaste functie moet array teruggeven!\",\n                customfcheck : \"Aangepaste function moet aanwezig zijn in het geval van aangepaste controle!\"\n            }\n        },\n        view:\n        {\n            caption: \"Tonen\",\n            bClose: \"Sluiten\"\n        },\n        del:\n        {\n            caption: \"Verwijderen\",\n            msg: \"Verwijder geselecteerde regel(s)?\",\n            bSubmit: \"Verwijderen\",\n            bCancel: \"Annuleren\"\n        },\n        nav:\n        {\n            edittext: \"\",\n            edittitle: \"Bewerken\",\n            addtext: \"\",\n            addtitle: \"Nieuw\",\n            deltext: \"\",\n            deltitle: \"Verwijderen\",\n            searchtext: \"\",\n            searchtitle: \"Zoeken\",\n            refreshtext: \"\",\n            refreshtitle: \"Vernieuwen\",\n            alertcap: \"Waarschuwing\",\n            alerttext: \"Selecteer a.u.b. een regel\",\n            viewtext: \"\",\n            viewtitle: \"Openen\",\n\t\t\tsavetext: \"\",\n\t\t\tsavetitle: \"Save row\",\n\t\t\tcanceltext: \"\",\n\t\t\tcanceltitle : \"Cancel row editing\",\n\t\t\tselectcaption : \"Actions...\"\n        },\n        col:\n        {\n            caption: \"Tonen/verbergen kolommen\",\n            bSubmit: \"OK\",\n            bCancel: \"Annuleren\"\n        },\n        errors:\n        {\n            errcap: \"Fout\",\n            nourl: \"Er is geen URL gedefinieerd\",\n            norecords: \"Geen data om te verwerken\",\n            model: \"Lengte van 'colNames' is niet gelijk aan 'colModel'!\"\n        },\n        formatter:\n        {\n            integer:\n            {\n                thousandsSeparator: \".\",\n                defaultValue: \"0\"\n            },\n            number:\n            {\n                decimalSeparator: \",\",\n                thousandsSeparator: \".\",\n                decimalPlaces: 2,\n                defaultValue: \"0.00\"\n            },\n            currency:\n            {\n                decimalSeparator: \",\",\n                thousandsSeparator: \".\",\n                decimalPlaces: 2,\n                prefix: \"EUR \",\n                suffix: \"\",\n                defaultValue: \"0.00\"\n            },\n            date:\n            {\n                dayNames: [\"Zo\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\", \"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\n                monthNames: [\"Jan\", \"Feb\", \"Maa\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"Januari\", \"Februari\", \"Maart\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Augustus\", \"September\", \"October\", \"November\", \"December\"],\n                AmPm: [\"am\", \"pm\", \"AM\", \"PM\"],\n                S: function(b) {\n                    return b < 11 || b > 13 ? [\"st\", \"nd\", \"rd\", \"th\"][Math.min((b - 1) % 10, 3)] : \"th\"\n                },\n                srcformat: \"Y-m-d\",\n                newformat: \"d/m/Y\",\n\t\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n                masks:\n                {\n                    ISO8601Long: \"Y-m-d H:i:s\",\n                    ISO8601Short: \"Y-m-d\",\n                    ShortDate: \"n/j/Y\",\n                    LongDate: \"l, F d, Y\",\n                    FullDateTime: \"l d F Y G:i:s\",\n                    MonthDay: \"d F\",\n                    ShortTime: \"G:i\",\n                    LongTime: \"G:i:s\",\n                    SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n                    UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n                    YearMonth: \"F, Y\"\n                },\n                reformatAfterEdit: false,\n\t\t\t\tuserLocalTime : false\n            },\n            baseLinkUrl: \"\",\n            showAction: \"\",\n            target: \"\",\n            checkbox:\n            {\n                disabled: true\n            },\n            idName: \"id\"\n        },\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n    };\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-no.js",
    "content": "//NORWAY\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"no\"] = {\n    defaults : {\n        recordtext: \"Rad {0} - {1}, totalt {2}\",\n        loadtext: \"Laster...\",\n        pgtext: \"Side {0} av {1}\",\n\t\tsavetext: \"Saving...\",\n        pgfirst: \"First Page\",\n        pglast: \"Last Page\",\n        pgnext: \"Next Page\",\n        pgprev: \"Previous Page\",\n        pgrecs: \"Records per Page\",\n        showhide: \"Toggle Expand Collapse Grid\",\n        emptyrecords: \"Ingen poster funnet\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\n    },\n    search : {\n\t\tcaption: \"Søk...\", \n\t\tFind: \"Finn\", \n\t\tReset: \"Nullstill\", \n\t\todata: [\n        {oper: 'eq', text: \"lik\"},\n        {oper: 'ne', text: \"forskjellig fra\"},\n        {oper: 'lt', text: \"mindre enn\"},\n        {oper: 'le', text: \"mindre eller lik\"},\n        {oper: 'gt', text: \"større enn\"},\n        {oper: 'ge', text: \" større eller lik\"},\n        {oper: 'bw', text: \"starter med\"},\n        {oper: 'ew', text: \"slutter med\"},\n        {oper: 'cn', text: \"inneholder\"},\n        { oper: 'nu', text: 'is null'},\n        { oper: 'nn', text: 'is not null'}, \n\t\t{oper:'bt', text:'between'}\n\t\t], \n\t\toperandTitle: \"Click to select search operation.\", \n\t\tresetTitle: \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n    edit : {addCaption: \"Ny rad\", editCaption: \"Rediger\", bSubmit: \"Send\", bCancel: \"Avbryt\", bClose: \"Lukk\", processData: \"Laster...\", msg: {required: \"Felt er obligatorisk\", number: \"Legg inn et gyldig tall\", minValue: \"verdi mø vøre større enn eller lik\", maxValue: \"verdi må være mindre enn eller lik\", email: \"er ikke en gyldig e-post adresse\", integer: \"Legg inn et gyldig heltall\", date: \"Legg inn en gyldig dato\", url: \"er ikke en gyldig URL. Prefiks påkrevd ('http://' eller 'https://')\", nodefined: \" er ikke definert!\", novalue: \" returverdi er påkrevd!\", customarray: \"Tilpasset funksjon må returnere en tabell!\", customfcheck: \"Tilpasset funksjon må eksistere!\"}},\n    view : {caption: \"Åpne post\", bClose: \"Lukk\"},\n    del : {caption: \"Slett\", msg: \"Slett valgte rad(er)?\", bSubmit: \"Slett\", bCancel: \"Avbryt\", processData: \"Behandler...\"},\n    nav : {edittext: \" \", edittitle: \"Rediger valgte rad(er)\", addtext: \" \", addtitle: \"Legg til ny rad\", deltext: \" \", deltitle: \"Slett valgte rad(er)\", searchtext: \" \", searchtitle: \"Søk\", refreshtext: \"\", refreshtitle: \"Oppdater tabell\", alertcap: \"Advarsel\", alerttext: \"Velg rad\", viewtext: \" \", viewtitle: \"Åpne valgt rad\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n    col : {caption: \"Vis/skjul kolonner\", bSubmit: \"Utfør\", bCancel: \"Avbryt\"},\n    errors : {errcap: \"Feil\", nourl: \"Ingen url er satt\", norecords: \"Ingen poster å behandle\", model: \"colNames og colModel har forskjellig lengde!\"},\n    formatter : {integer: {thousandsSeparator: \" \", defaultValue: 0}, number: {decimalSeparator: \",\", thousandsSeparator: \" \", decimalPlaces: 2, defaulValue: 0}, currency: {decimalSeparator: \",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix: \"\", defaulValue: 0}, date: {dayNames: [\"sø.\", \"ma.\", \"ti.\", \"on.\", \"to.\", \"fr.\", \"lø.\", \"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"], monthNames: [\"jan.\", \"feb.\", \"mars\", \"april\", \"mai\", \"juni\", \"juli\", \"aug.\", \"sep.\", \"okt.\", \"nov.\", \"des.\", \"januar\", \"februar\", \"mars\", \"april\", \"mai\", \"juni\", \"juli\", \"august\", \"september\", \"oktober\", \"november\", \"desember\"], AmPm: [\"\", \"\", \"\", \"\"], S: function (b) {\n        return\".\";\n    }, srcformat: \"Y-m-d H:i:s\", newformat: \"Y-m-d H:i:s\", parseRe: /[#%\\\\\\/:_;.,\\t\\s-]/, masks: {ISO8601Long: \"Y-m-d H:i:s\", ISO8601Short: \"Y-m-d\", ShortDate: \"j.n.Y\", LongDate: \"l j. F Y\", FullDateTime: \"l j. F Y kl. G.i.s\", MonthDay: \"j. F\", ShortTime: \"H:i\", LongTime: \"H:i:s\", SortableDateTime: \"Y-m-d\\\\TH:i:s\", UniversalSortableDateTime: \"Y-m-d H:i:sO\", YearMonth: \"F Y\"}, reformatAfterEdit: false, userLocalTime: false}, baseLinkUrl: \"\", showAction: \"show\", addParam: \"\", checkbox: {disabled: true}\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-pl.js",
    "content": "/**\n * jqGrid Polish Translation\n * Łukasz Schab lukasz@freetree.pl\n * http://FreeTree.pl\n *\n * Updated names, abbreviations, currency and date/time formats for Polish norms (also corresponding with CLDR v21.0.1 --> http://cldr.unicode.org/index) \n * Tomasz Pęczek tpeczek@gmail.com\n * http://tpeczek.blogspot.com; http://tpeczek.codeplex.com\n *\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"pl\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pokaż {0} - {1} z {2}\",\n\t\temptyrecords: \"Brak rekordów do pokazania\",\n\t\tloadtext: \"Ładowanie...\",\n\t\tpgtext : \"Strona {0} z {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Wyszukiwanie...\",\n\t\tFind: \"Szukaj\",\n\t\tReset: \"Czyść\",\n\t\todata: [{ oper:'eq', text:\"dokładnie\"},{ oper:'ne', text:\"różne od\"},{ oper:'lt', text:\"mniejsze od\"},{ oper:'le', text:\"mniejsze lub równe\"},{ oper:'gt', text:\"większe od\"},{ oper:'ge', text:\"większe lub równe\"},{ oper:'bw', text:\"zaczyna się od\"},{ oper:'bn', text:\"nie zaczyna się od\"},{ oper:'in', text:\"jest w\"},{ oper:'ni', text:\"nie jest w\"},{ oper:'ew', text:\"kończy się na\"},{ oper:'en', text:\"nie kończy się na\"},{ oper:'cn', text:\"zawiera\"},{ oper:'nc', text:\"nie zawiera\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"oraz\" },\t{ op: \"OR\",  text: \"lub\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj rekord\",\n\t\teditCaption: \"Edytuj rekord\",\n\t\tbSubmit: \"Zapisz\",\n\t\tbCancel: \"Anuluj\",\n\t\tbClose: \"Zamknij\",\n\t\tsaveData: \"Dane zostały zmienione! Zapisać zmiany?\",\n\t\tbYes: \"Tak\",\n\t\tbNo: \"Nie\",\n\t\tbExit: \"Anuluj\",\n\t\tmsg: {\n\t\t\trequired: \"Pole jest wymagane\",\n\t\t\tnumber: \"Proszę wpisać poprawną liczbę\",\n\t\t\tminValue: \"wartość musi być większa lub równa od\",\n\t\t\tmaxValue: \"wartość musi być mniejsza lub równa od\",\n\t\t\temail: \"nie jest poprawnym adresem e-mail\",\n\t\t\tinteger: \"Proszę wpisać poprawną liczbę\",\n\t\t\tdate: \"Proszę podaj poprawną datę\",\n\t\t\turl: \"jest niewłaściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')\",\n\t\t\tnodefined: \" niezdefiniowane!\",\n\t\t\tnovalue: \" wymagana jest wartość zwracana!\",\n\t\t\tcustomarray: \"Funkcja niestandardowa powinna zwracać tablicę!\",\n\t\t\tcustomfcheck: \"Funkcja niestandardowa powinna być obecna w przypadku niestandardowego sprawdzania!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Pokaż rekord\",\n\t\tbClose: \"Zamknij\"\n\t},\n\tdel : {\n\t\tcaption: \"Usuń\",\n\t\tmsg: \"Czy usunąć wybrany rekord(y)?\",\n\t\tbSubmit: \"Usuń\",\n\t\tbCancel: \"Anuluj\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Edytuj wybrany wiersz\",\n\t\taddtext: \"\",\n\t\taddtitle: \"Dodaj nowy wiersz\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Usuń wybrany wiersz\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Wyszukaj rekord\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Przeładuj\",\n\t\talertcap: \"Uwaga\",\n\t\talerttext: \"Proszę wybrać wiersz\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pokaż wybrany wiersz\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Pokaż/Ukryj kolumny\",\n\t\tbSubmit: \"Zatwierdź\",\n\t\tbCancel: \"Anuluj\"\n\t},\n\terrors : {\n\t\terrcap: \"Błąd\",\n\t\tnourl: \"Brak adresu url\",\n\t\tnorecords: \"Brak danych\",\n\t\tmodel : \"Długość colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\" zł\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"niedz.\", \"pon.\", \"wt.\", \"śr.\", \"czw.\", \"pt.\", \"sob.\",\n\t\t\t\t\"niedziela\", \"poniedziałek\", \"wtorek\", \"środa\", \"czwartek\", \"piątek\", \"sobota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"sty\", \"lut\", \"mar\", \"kwi\", \"maj\", \"cze\", \"lip\", \"sie\", \"wrz\", \"paź\", \"lis\", \"gru\",\n\t\t\t\t\"styczeń\", \"luty\", \"marzec\", \"kwiecień\", \"maj\", \"czerwiec\", \"lipiec\", \"sierpień\", \"wrzesień\", \"październik\", \"listopad\", \"grudzień\"\n\t\t\t\t],\n\t\t\tAmPm : [\"\",\"\",\"\",\"\"],\n\t\t\tS: function (j) {return '';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long: \"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short: \"Y-m-d\",\n\t\t\t\tShortDate: \"d.m.y\",\n\t\t\t\tLongDate: \"l, j F Y\",\n\t\t\t\tFullDateTime: \"l, j F Y H:i:s\",\n\t\t\t\tMonthDay: \"j F\",\n\t\t\t\tShortTime: \"H:i\",\n\t\t\t\tLongTime: \"H:i:s\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-pt-br.js",
    "content": "/**\n * jqGrid Brazilian-Portuguese Translation\n * Sergio Righi sergio.righi@gmail.com\n * http://curve.com.br\n * \n * Updated by Jonnas Fonini\n * http://fonini.net\n *\n *\n * Updated by Fabio Ferreira da Silva fabio_ferreiradasilva@yahoo.com.br\n * \n * Updated by Anderson Pimentel anderson.pimentel[at]gmail.com\n *\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"pt-br\"] = {\n\tdefaults : {\n\t\trecordtext: \"Ver {0} - {1} de {2}\",\n\t    emptyrecords: \"Nenhum registro para visualizar\",\n\t\tloadtext: \"Carregando...\",\n\t\tpgtext : \"Página {0} de {1}\",\n\t\tsavetext: \"Salvando...\",\n\t\tpgfirst : \"Primeira Página\",\n\t\tpglast : \"Última Página\",\n\t\tpgnext : \"Próxima Página\",\n\t\tpgprev : \"Página Anterior\",\n\t\tpgrecs : \"Registros por Página\",\n\t\tshowhide: \"Mostrar/Ocultar Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Procurar...\",\n\t    Find: \"Procurar\",\n\t    Reset: \"Limpar\",\n\t    odata: [{ oper:'eq', text:\"igual\"},{ oper:'ne', text:\"diferente\"},{ oper:'lt', text:\"menor\"},{ oper:'le', text:\"menor ou igual\"},{ oper:'gt', text:\"maior\"},{ oper:'ge', text:\"maior ou igual\"},{ oper:'bw', text:\"inicia com\"},{ oper:'bn', text:\"não inicia com\"},{ oper:'in', text:\"está em\"},{ oper:'ni', text:\"não está em\"},{ oper:'ew', text:\"termina com\"},{ oper:'en', text:\"não termina com\"},{ oper:'cn', text:\"contém\"},{ oper:'nc', text:\"não contém\"},{ oper:'nu', text:\"nulo\"},{ oper:'nn', text:\"não nulo\"}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"todos\" },{ op: \"OR\",  text: \"qualquer um\" }\t],\n\t\toperandTitle : \"Clique para escolher a operação de pesquisa.\",\n\t\tresetTitle : \"Limpar valor de pesquisa\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Incluir\",\n\t    editCaption: \"Alterar\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Fechar\",\n\t\tsaveData: \"Os dados foram alterados! Salvar alterações?\",\n\t\tbYes : \"Sim\",\n\t\tbNo : \"Não\",\n\t\tbExit : \"Cancelar\",\n\t    msg: {\n\t        required:\"Campo obrigatório\",\n\t        number:\"Por favor, informe um número válido\",\n\t        minValue:\"valor deve ser igual ou maior que \",\n\t        maxValue:\"valor deve ser menor ou igual a\",\n\t        email: \"este e-mail não é válido\",\n\t        integer: \"Por favor, informe um valor inteiro\",\n\t\t\tdate: \"Por favor, informe uma data válida\",\n\t\t\turl: \"não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')\",\n\t\t\tnodefined : \" não está definido!\",\n\t\t\tnovalue : \" um valor de retorno é obrigatório!\",\n\t\t\tcustomarray : \"Função customizada deve retornar um array!\",\n\t\t\tcustomfcheck : \"Função customizada deve estar presente em caso de validação customizada!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Ver Registro\",\n\t    bClose: \"Fechar\"\n\t},\n\tdel : {\n    caption: \"Apagar\",\n\t    msg: \"Apagar registro(s) selecionado(s)?\",\n\t    bSubmit: \"Apagar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Alterar registro selecionado\",\n\t\taddtext:\" \",\n\t    addtitle: \"Incluir novo registro\",\n\t    deltext: \" \",\n\t    deltitle: \"Apagar registro selecionado\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Procurar registros\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Recarregar tabela\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Por favor, selecione um registro\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Ver linha selecionada\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Salvar linha\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancelar edição da linha\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/Esconder Colunas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\terrors : {\n\t\terrcap : \"Erro\",\n\t\tnourl : \"Nenhuma URL definida\",\n\t\tnorecords: \"Sem registros para exibir\",\n\t    model : \"Comprimento de colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"R$ \", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\",\n\t\t\t\t\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\",\n\t\t\t\t\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-pt.js",
    "content": "/**\n * jqGrid Portuguese Translation\n * Traduçã da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"pt\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t    emptyrecords: \"No records to view\",\n\t\tloadtext: \"A carregar...\",\n\t\tpgtext : \"Página {0} de {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Busca...\",\n\t    Find: \"Procurar\",\n\t    Reset: \"Limpar\",\n\t    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"all\" },\t{ op: \"OR\",  text: \"any\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Adicionar Registo\",\n\t    editCaption: \"Modificar Registo\",\n\t    bSubmit: \"Submeter\",\n\t    bCancel: \"Cancelar\",\n\t\tbClose: \"Fechar\",\n\t\tsaveData: \"Data has been changed! Save changes?\",\n\t\tbYes : \"Yes\",\n\t\tbNo : \"No\",\n\t\tbExit : \"Cancel\",\n\t    msg: {\n\t        required:\"Campo obrigat�rio\",\n\t        number:\"Por favor, introduza um numero\",\n\t        minValue:\"O valor deve ser maior ou igual que\",\n\t        maxValue:\"O valor deve ser menor ou igual a\",\n\t        email: \"N�o � um endere�o de email v�lido\",\n\t        integer: \"Por favor, introduza um numero inteiro\",\n\t\t\turl: \"is not a valid URL. Prefix required ('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"View Record\",\n\t    bClose: \"Close\"\n\t},\n\tdel : {\n\t    caption: \"Eliminar\",\n\t    msg: \"Deseja eliminar o(s) registo(s) seleccionado(s)?\",\n\t    bSubmit: \"Eliminar\",\n\t    bCancel: \"Cancelar\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Modificar registo seleccionado\",\n\t\taddtext:\" \",\n\t    addtitle: \"Adicionar novo registo\",\n\t    deltext: \" \",\n\t    deltitle: \"Eliminar registo seleccionado\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Procurar\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Actualizar\",\n\t    alertcap: \"Aviso\",\n\t    alerttext: \"Por favor, seleccione um registo\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"View selected row\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Mostrar/Ocultar Colunas\",\n\t    bSubmit: \"Enviar\",\n\t    bCancel: \"Cancelar\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Erro\",\n\t\tnourl : \"N�o especificou um url\",\n\t\tnorecords: \"N�o existem dados para processar\",\n\t    model : \"Tamanho do colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\",\n\t\t\t\t\"Domingo\", \"Segunda-Feira\", \"Ter�a-Feira\", \"Quarta-Feira\", \"Quinta-Feira\", \"Sexta-Feira\", \"S�bado\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\",\n\t\t\t\t\"Janeiro\", \"Fevereiro\", \"Mar�o\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ro.js",
    "content": "/**\n * jqGrid Romanian Translation\n * Alexandru Emil Lupu contact@alecslupu.ro\n * http://www.alecslupu.ro/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ro\"] = {\n\tdefaults : {\n\t\trecordtext: \"Vizualizare {0} - {1} din {2}\",\n\t\temptyrecords: \"Nu există înregistrări de vizualizat\",\n\t\tloadtext: \"Încărcare...\",\n\t\tpgtext : \"Pagina {0} din {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Caută...\",\n\t\tFind: \"Caută\",\n\t\tReset: \"Resetare\",\n\t\todata: [{ oper:'eq', text:\"egal\"},{ oper:'ne', text:\"diferit\"},{ oper:'lt', text:\"mai mic\"},{ oper:'le', text:\"mai mic sau egal\"},{ oper:'gt', text:\"mai mare\"},{ oper:'ge', text:\"mai mare sau egal\"},{ oper:'bw', text:\"începe cu\"},{ oper:'bn', text:\"nu începe cu\"},{ oper:'in', text:\"se găsește în\"},{ oper:'ni', text:\"nu se găsește în\"},{ oper:'ew', text:\"se termină cu\"},{ oper:'en', text:\"nu se termină cu\"},{ oper:'cn', text:\"conține\"},{ oper:'nc', text:\"\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"toate\" },\t{ op: \"OR\",  text: \"oricare\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Adăugare înregistrare\",\n\t\teditCaption: \"Modificare înregistrare\",\n\t\tbSubmit: \"Salvează\",\n\t\tbCancel: \"Anulare\",\n\t\tbClose: \"Închide\",\n\t\tsaveData: \"Informațiile au fost modificate! Salvați modificările?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Nu\",\n\t\tbExit : \"Anulare\",\n\t\tmsg: {\n\t\t\trequired:\"Câmpul este obligatoriu\",\n\t\t\tnumber:\"Vă rugăm introduceți un număr valid\",\n\t\t\tminValue:\"valoarea trebuie sa fie mai mare sau egală cu\",\n\t\t\tmaxValue:\"valoarea trebuie sa fie mai mică sau egală cu\",\n\t\t\temail: \"nu este o adresă de e-mail validă\",\n\t\t\tinteger: \"Vă rugăm introduceți un număr valid\",\n\t\t\tdate: \"Vă rugăm să introduceți o dată validă\",\n\t\t\turl: \"Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Vizualizare înregistrare\",\n\t\tbClose: \"Închidere\"\n\t},\n\tdel : {\n\t\tcaption: \"Ștegere\",\n\t\tmsg: \"Ștergeți înregistrarea (înregistrările) selectate?\",\n\t\tbSubmit: \"Șterge\",\n\t\tbCancel: \"Anulare\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Modifică rândul selectat\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Adaugă rând nou\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Șterge rândul selectat\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Căutare înregistrări\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Reîncarcare Grid\",\n\t\talertcap: \"Avertisment\",\n\t\talerttext: \"Vă rugăm să selectați un rând\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Vizualizează rândul selectat\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Arată/Ascunde coloanele\",\n\t\tbSubmit: \"Salvează\",\n\t\tbCancel: \"Anulare\"\n\t},\n\terrors : {\n\t\terrcap : \"Eroare\",\n\t\tnourl : \"Niciun url nu este setat\",\n\t\tnorecords: \"Nu sunt înregistrări de procesat\",\n\t\tmodel : \"Lungimea colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dum\", \"Lun\", \"Mar\", \"Mie\", \"Joi\", \"Vin\", \"Sâm\",\n\t\t\t\t\"Duminică\", \"Luni\", \"Marți\", \"Miercuri\", \"Joi\", \"Vineri\", \"Sâmbătă\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Ian\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Iun\", \"Iul\", \"Aug\", \"Sep\", \"Oct\", \"Noi\", \"Dec\",\n\t\t\t\t\"Ianuarie\", \"Februarie\", \"Martie\", \"Aprilie\", \"Mai\", \"Iunie\", \"Iulie\", \"August\", \"Septembrie\", \"Octombrie\", \"Noiembrie\", \"Decembrie\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\t/*\n\t\t\t Here is a problem in romanian: \n\t\t\t\t\tM\t/\tF\n\t\t\t 1st = primul / prima\n\t\t\t 2nd = Al doilea / A doua\n\t\t\t 3rd = Al treilea / A treia \n\t\t\t 4th = Al patrulea/ A patra\n\t\t\t 5th = Al cincilea / A cincea \n\t\t\t 6th = Al șaselea / A șasea\n\t\t\t 7th = Al șaptelea / A șaptea\n\t\t\t .... \n\t\t\t */\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-ru.js",
    "content": "/**\n * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru)\n * Sergey Dyagovchenko\n * http://d.sumy.ua\n * Tony Tomov\n * http://www.guriddo.net\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ru\"] = {\n\tdefaults : {\n\t\trecordtext: \"Просмотр {0} - {1} из {2}\",\n\t\temptyrecords: \"Нет записей для просмотра\",\n\t\tloadtext: \"Загрузка...\",\n\t\tpgtext : \"Стр. {0} из {1}\",\n\t\tsavetext: \"Сохранения...\",\n\t\tpgfirst : \"Первая\",\n\t\tpglast : \"Последняя\",\n\t\tpgnext : \"Следующая\",\n\t\tpgprev : \"Предыдущая\",\n\t\tpgrecs : \"Записей на стр.\",\n\t\tshowhide: \"Показать/Скрыть таблицу\",\n\t\t// mobile\n\t\tpagerCaption : \"Грид::Параметры страницы\",\n\t\tpageText : \"Страница:\",\n\t\trecordPage : \"Записей на стр.\",\n\t\tnomorerecs : \"Нет больше записей...\",\n\t\tscrollPullup: \"Потяните, чтобы загрузить более...\",\n\t\tscrollPulldown : \"Потяните вниз чтобы обновить...\",\n\t\tscrollRefresh : \"Отпустите, чтобы обновить...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Поиск...\",\n\t\tFind: \"Найти\",\n\t\tReset: \"Сброс\",\n\t\todata: [{ oper:'eq', text:\"равно\"},{ oper:'ne', text:\"не равно\"},{ oper:'lt', text:\"меньше\"},{ oper:'le', text:\"меньше или равно\"},{ oper:'gt', text:\"больше\"},{ oper:'ge', text:\"больше или равно\"},{ oper:'bw', text:\"начинается с\"},{ oper:'bn', text:\"не начинается с\"},{ oper:'in', text:\"находится в\"},{ oper:'ni', text:\"не находится в\"},{ oper:'ew', text:\"заканчивается на\"},{ oper:'en', text:\"не заканчивается на\"},{ oper:'cn', text:\"содержит\"},{ oper:'nc', text:\"не содержит\"},{ oper:'nu', text:\"равно NULL\"},{ oper:'nn', text:\"не равно NULL\"}, {oper:'bt', text:'между'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"все\" }, { op: \"OR\", text: \"любой\" }],\n\t\toperandTitle : \"Выбрать поисковую операцию.\",\n\t\tresetTitle : \"Сбросить поиск\",\n\t\taddsubgrup : \"Добавить группу\",\n\t\taddrule : \"Добавить правило\",\n\t\tdelgroup : \"Удалить группу\",\n\t\tdelrule : \"Удалить правило\"\n\t},\n\tedit : {\n\t\taddCaption: \"Добавить запись\",\n\t\teditCaption: \"Редактировать запись\",\n\t\tbSubmit: \"Сохранить\",\n\t\tbCancel: \"Отмена\",\n\t\tbClose: \"Закрыть\",\n\t\tsaveData: \"Данные были измененны! Сохранить изменения?\",\n\t\tbYes : \"Да\",\n\t\tbNo : \"Нет\",\n\t\tbExit : \"Отмена\",\n\t\tmsg: {\n\t\t\trequired:\"Поле является обязательным\",\n\t\t\tnumber:\"Пожалуйста, введите правильное число\",\n\t\t\tminValue:\"значение должно быть больше либо равно\",\n\t\t\tmaxValue:\"значение должно быть меньше либо равно\",\n\t\t\temail: \"некорректное значение e-mail\",\n\t\t\tinteger: \"Пожалуйста, введите целое число\",\n\t\t\tdate: \"Пожалуйста, введите правильную дату\",\n\t\t\turl: \"неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')\",\n\t\t\tnodefined : \" не определено!\",\n\t\t\tnovalue : \" возвращаемое значение обязательно!\",\n\t\t\tcustomarray : \"Пользовательская функция должна возвращать массив!\",\n\t\t\tcustomfcheck : \"Пользовательская функция должна присутствовать в случаи пользовательской проверки!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Просмотр записи\",\n\t\tbClose: \"Закрыть\"\n\t},\n\tdel : {\n\t\tcaption: \"Удалить\",\n\t\tmsg: \"Удалить выбранную запись(и)?\",\n\t\tbSubmit: \"Удалить\",\n\t\tbCancel: \"Отмена\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Редактировать выбранную запись\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Добавить новую запись\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Удалить выбранную запись\",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Найти записи\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Обновить таблицу\",\n\t\talertcap: \"Внимание\",\n\t\talerttext: \"Пожалуйста, выберите запись\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Просмотреть выбранную запись\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Сохранить запись\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Отмена сохранения\",\n\t\tselectcaption : \"Действия...\"\n\t},\n\tcol : {\n\t\tcaption: \"Показать/скрыть столбцы\",\n\t\tbSubmit: \"Сохранить\",\n\t\tbCancel: \"Отмена\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Ошибка\",\n\t\tnourl : \"URL не установлен\",\n\t\tnorecords: \"Нет записей для обработки\",\n\t\tmodel : \"Число полей не соответствует числу столбцов таблицы!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\",\n\t\t\t\t\"Воскресение\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Янв\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Июн\", \"Июл\", \"Авг\", \"Сен\", \"Окт\", \"Ноя\", \"Дек\",\n\t\t\t\t\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n.j.Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y G:i:s\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"G:i\",\n\t\t\t\tLongTime: \"G:i:s\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Сортировка по возрастанию\",\n\t\tsortdesc : \"Сортировка по убыванию\",\n\t\tcolumns : \"Колонны\",\n\t\tfilter : \"Филтрировать\",\n\t\tgrouping : \"Группа по\",\n\t\tungrouping : \"Разгруппировать\",\n\t\tsearchTitle : \"Строки со значениями\",\n\t\tfreeze : \"Закрепление\",\n\t\tunfreeze : \"Отмена закрепление\",\n\t\treorder : \"Переместить в порядок\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sk.js",
    "content": "/**\n * jqGrid Slovak Translation\n * Milan Cibulka\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sk\"] = {\n\tdefaults : {\n\t\trecordtext: \"Zobrazených {0} - {1} z {2} záznamov\",\n\t    emptyrecords: \"Neboli nájdené žiadne záznamy\",\n\t\tloadtext: \"Načítám...\",\n\t\tpgtext : \"Strana {0} z {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Vyhľadávam...\",\n\t\tFind: \"Hľadať\",\n\t\tReset: \"Reset\",\n\t    odata: [{ oper:'eq', text:\"rovná sa\"},{ oper:'ne', text:\"nerovná sa\"},{ oper:'lt', text:\"menšie\"},{ oper:'le', text:\"menšie alebo rovnajúce sa\"},{ oper:'gt', text:\"väčšie\"},{ oper:'ge', text:\"väčšie alebo rovnajúce sa\"},{ oper:'bw', text:\"začína s\"},{ oper:'bn', text:\"nezačína s\"},{ oper:'in', text:\"je v\"},{ oper:'ni', text:\"nie je v\"},{ oper:'ew', text:\"končí s\"},{ oper:'en', text:\"nekončí s\"},{ oper:'cn', text:\"obahuje\"},{ oper:'nc', text:\"neobsahuje\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"AND\", text: \"všetkých\" },\t{ op: \"OR\",  text: \"niektorého z\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Pridať záznam\",\n\t\teditCaption: \"Editácia záznamov\",\n\t\tbSubmit: \"Uložiť\",\n\t\tbCancel: \"Storno\",\n\t\tbClose: \"Zavrieť\",\n\t\tsaveData: \"Údaje boli zmenené! Uložiť zmeny?\",\n\t\tbYes : \"Ano\",\n\t\tbNo : \"Nie\",\n\t\tbExit : \"Zrušiť\",\n\t\tmsg: {\n\t\t    required:\"Pole je požadované\",\n\t\t    number:\"Prosím, vložte valídne číslo\",\n\t\t    minValue:\"hodnota musí býť väčšia ako alebo rovná \",\n\t\t    maxValue:\"hodnota musí býť menšia ako alebo rovná \",\n\t\t    email: \"nie je valídny e-mail\",\n\t\t    integer: \"Prosím, vložte celé číslo\",\n\t\t\tdate: \"Prosím, vložte valídny dátum\",\n\t\t\turl: \"nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')\",\n\t\t\tnodefined : \" nie je definovaný!\",\n\t\t\tnovalue : \" je vyžadovaná návratová hodnota!\",\n\t\t\tcustomarray : \"Custom function mala vrátiť pole!\",\n\t\t\tcustomfcheck : \"Custom function by mala byť prítomná v prípade custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Zobraziť záznam\",\n\t    bClose: \"Zavrieť\"\n\t},\n\tdel : {\n\t\tcaption: \"Zmazať\",\n\t\tmsg: \"Zmazať vybraný(é) záznam(y)?\",\n\t\tbSubmit: \"Zmazať\",\n\t\tbCancel: \"Storno\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t\tedittitle: \"Editovať vybraný riadok\",\n\t\taddtext:\" \",\n\t\taddtitle: \"Pridať nový riadek\",\n\t\tdeltext: \" \",\n\t\tdeltitle: \"Zmazať vybraný záznam \",\n\t\tsearchtext: \" \",\n\t\tsearchtitle: \"Nájsť záznamy\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Obnoviť tabuľku\",\n\t\talertcap: \"Varovanie\",\n\t\talerttext: \"Prosím, vyberte riadok\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Zobraziť vybraný riadok\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Zobrazit/Skrýť stĺpce\",\n\t\tbSubmit: \"Uložiť\",\n\t\tbCancel: \"Storno\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Chyba\",\n\t\tnourl : \"Nie je nastavená url\",\n\t\tnorecords: \"Žiadne záznamy k spracovaniu\",\n\t\tmodel : \"Dĺžka colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ne\", \"Po\", \"Ut\", \"St\", \"Št\", \"Pi\", \"So\",\n\t\t\t\t\"Nedela\", \"Pondelok\", \"Utorok\", \"Streda\", \"Štvrtok\", \"Piatek\", \"Sobota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Január\", \"Február\", \"Marec\", \"Apríl\", \"Máj\", \"Jún\", \"Júl\", \"August\", \"September\", \"Október\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"do\",\"od\",\"DO\",\"OD\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t        ISO8601Long:\"Y-m-d H:i:s\",\n\t\t        ISO8601Short:\"Y-m-d\",\n\t\t        ShortDate: \"n/j/Y\",\n\t\t        LongDate: \"l, F d, Y\",\n\t\t        FullDateTime: \"l, F d, Y g:i:s A\",\n\t\t        MonthDay: \"F d\",\n\t\t        ShortTime: \"g:i A\",\n\t\t        LongTime: \"g:i:s A\",\n\t\t        SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t        UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t        YearMonth: \"F, Y\"\n\t\t    },\n\t\t    reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sq.js",
    "content": "/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"en\"] = {\n\tdefaults : {\n\t\trecordtext: \"Shfaq {0} - {1}/{2}\",\n\t\temptyrecords: \"Nuk ka rreshta për të shfaqur\",\n\t\tloadtext: \"Duke u ngarkuar...\",\n\t\tsavetext: \"Duke ruajtur...\",\n\t\tpgtext : \"Faqja {0}/{1}\",\n\t\tpgfirst : \"Faqja e parë\",\n\t\tpglast : \"Faqja e fundit\",\n\t\tpgnext : \"Faqja tjetër\",\n\t\tpgprev : \"Faqja mëparshme\",\n\t\tpgrecs : \"Rreshta për faqe\",\n\t\tshowhide: \"Shpalos ose mbyll tabelën\",\n\t\t// mobile\n\t\tpagerCaption : \"Tabela::Kruskoti i faqes\",\n\t\tpageText : \"Faqja:\",\n\t\trecordPage : \"Rreshta për faqe\",\n\t\tnomorerecs : \"Nuk ka rreshta të tjerë...\",\n\t\tscrollPullup: \"Tërhiq për lart për të tjerë...\",\n\t\tscrollPulldown : \"Tërqiq për poshtë për rifreskim...\",\n\t\tscrollRefresh : \"Lësho për rifreskim...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Kërko...\",\n\t\tFind: \"Gjej\",\n\t\tReset: \"Pastro\",\n\t\todata: [{ oper:'eq', text:'baraz'},{ oper:'ne', text:'jo baraz'},{ oper:'lt', text:'me e vogel'},{ oper:'le', text:'me e vogel ose baraz'},{ oper:'gt', text:'me e madhe'},{ oper:'ge', text:'me e madhe ose baraz'},{ oper:'bw', text:'fillon me'},{ oper:'bn', text:'nuk fillon me'},{ oper:'in', text:'brenda'},{ oper:'ni', text:'jo brenda'},{ oper:'ew', text:'mbaron me'},{ oper:'en', text:'nuk mbaron me'},{ oper:'cn', text:'permban'},{ oper:'nc', text:'nuk permban'},{ oper:'nu', text:'eshte bosh'},{ oper:'nn', text:'nuk eshte bosh'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [{ op: \"AND\", text: \"te gjithe\" },{ op: \"OR\",  text: \"cfaredo\" }],\n\t\toperandTitle : \"Kliko per te zgjedhur veprimin.\",\n\t\tresetTitle : \"Fshi vlerat e kerkimit\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\n\t},\n\tedit : {\n\t\taddCaption: \"Shto rresht\",\n\t\teditCaption: \"Fshi rresht\",\n\t\tbSubmit: \"Vendos\",\n\t\tbCancel: \"Anullo\",\n\t\tbClose: \"Mbyll\",\n\t\tsaveData: \"Te dhenat jane ndryshuar! Deshironi ti ruani ndryshimet?\",\n\t\tbYes : \"Po\",\n\t\tbNo : \"Jo\",\n\t\tbExit : \"Anullo\",\n\t\tmsg: {\n\t\t\trequired:\"Kjo fushe eshte e detyrueshme\",\n\t\t\tnumber:\"Ju lutem, vendosni nje numer te vlefshem\",\n\t\t\tminValue:\"vlera duhet te jete me e madhe ose e njejte me \",\n\t\t\tmaxValue:\"vlera duhet te jete me e vogel ose e njejte me\",\n\t\t\temail: \"nuk eshte adrese poste elektronike e vlefshme\",\n\t\t\tinteger: \"Ju lutem, vendosni nje numer te plote te vlefshem\",\n\t\t\tdate: \"Ju lutem, vendosni nje date te vlefshme\",\n\t\t\turl: \"nuk eshte URL e vlefshme. Nevojitet prefiksi ('http://' ose 'https://')\",\n\t\t\tnodefined : \" nuk eshte percaktuar!\",\n\t\t\tnovalue : \" vlera si pergjigje eshte e detyreshme!\",\n\t\t\tcustomarray : \"Funksioni i personalizuar duhet te ktheje nje array!\",\n\t\t\tcustomfcheck : \"unksioni i personalizuar duhet te egzistoje ne rast kontrolli te personalizuar!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Shfaq Rreshtin\",\n\t\tbClose: \"Mbyll\"\n\t},\n\tdel : {\n\t\tcaption: \"Fshi\",\n\t\tmsg: \"Deshironi te fshini rreshtin/rreshtat e zgjedhur?\",\n\t\tbSubmit: \"Fshi\",\n\t\tbCancel: \"Anullo\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Modifiko rreshtin e zgjedhur\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Shto rresht te ri\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Fshi rreshtin e zgjedhur\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Gjej rreshtat\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ringarko listen\",\n\t\talertcap: \"Paralajmerim\",\n\t\talerttext: \"Ju lutem, zgjidh nje rresht\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Shfaq rreshtin e zgjedhur\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Ruaj rreshtin\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Anullo modifikim rreshti\",\n\t\tselectcaption : \"Veprime...\"\n\t},\n\tcol : {\n\t\tcaption: \"Zgjidh kolona\",\n\t\tbSubmit: \"Ok\",\n\t\tbCancel: \"Anullo\"\n\t},\n\terrors : {\n\t\terrcap : \"Gabim\",\n\t\tnourl : \"Nuk eshte percaktuar asnje URL\",\n\t\tnorecords: \"Nuk ka rreshta per perpunim\",\n\t\tmodel : \"Gjatesia e emrit te kolones <> modeli i kolones!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \",\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \",\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Dje\", \"Hën\", \"Mar\", \"Mër\", \"Enj\", \"Pre\", \"Sht\",\n\t\t\t\t\"Djelë\", \"Hënë\", \"Martë\", \"Mërkurë\", \"Enjte\", \"Premte\", \"Shtunë\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Shk\", \"Mar\", \"Pri\", \"Maj\", \"Qer\", \"Kor\", \"Gus\", \"Sht\", \"Tet\", \"Nën\", \"Dhj\",\n\t\t\t\t\"Janar\", \"Shkurt\", \"Mars\", \"Prill\", \"Maj\", \"Qershor\", \"Korrik\", \"Gusht\", \"Shtator\", \"Tetor\", \"Nëntor\", \"Dhjetor\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sr-latin.js",
    "content": "/**\n * jqGrid Serbian latin Translation\n * Bild Studio info@bild-studio.net\n * http://www.bild-studio.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sr-latin\"] = {\n\tdefaults : {\n\t\trecordtext: \"Pregled {0} - {1} od {2}\",\n\t\temptyrecords: \"Ne postoji nijedan zapis\",\n\t\tloadtext: \"Učitavanje…\",\n\t\tpgtext : \"Strana {0} od {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Traženje...\",\n\t\tFind: \"Traži\",\n\t\tReset: \"Resetuj\",\n\t\todata: [{ oper:'eq', text:\"jednako\"},{ oper:'ne', text:\"nije jednako\"},{ oper:'lt', text:\"manje\"},{ oper:'le', text:\"manje ili jednako\"},{ oper:'gt', text:\"veće\"},{ oper:'ge', text:\"veće ili jednako\"},{ oper:'bw', text:\"počinje sa\"},{ oper:'bn', text:\"ne počinje sa\"},{ oper:'in', text:\"je u\"},{ oper:'ni', text:\"nije u\"},{ oper:'ew', text:\"završava sa\"},{ oper:'en', text:\"ne završava sa\"},{ oper:'cn', text:\"sadrži\"},{ oper:'nc', text:\"ne sadrži\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"sva\" },\t{ op: \"OR\",  text: \"bilo koje\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Dodaj zapis\",\n\t\teditCaption: \"Izmeni zapis\",\n\t\tbSubmit: \"Pošalji\",\n\t\tbCancel: \"Odustani\",\n\t\tbClose: \"Zatvori\",\n\t\tsaveData: \"Podatak je izmenjen! Sačuvaj izmene?\",\n\t\tbYes : \"Da\",\n\t\tbNo : \"Ne\",\n\t\tbExit : \"Odustani\",\n\t\tmsg: {\n\t\t\trequired: \"Polje je obavezno\",\n\t\t\tnumber: \"Unesite ispravan broj\",\n\t\t\tminValue: \"vrednost mora biti veća od ili jednaka sa \",\n\t\t\tmaxValue: \"vrednost mora biti manja ili jednaka sa\",\n\t\t\temail: \"nije ispravna email adresa, nije valjda da ne umeš ukucati mail!?\",\n\t\t\tinteger: \"Unesi celobrojnu vrednost \",\n\t\t\tdate: \"Unesite ispravan datum\",\n\t\t\turl: \"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')\",\n\t\t\tnodefined : \" nije definisan!\",\n\t\t\tnovalue : \" zahtevana je povratna vrednost!\",\n\t\t\tcustomarray : \"Prilagođena funkcija treba da vrati niz!\",\n\t\t\tcustomfcheck : \"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provere!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Pogledaj zapis\",\n\t\tbClose: \"Zatvori\"\n\t},\n\tdel : {\n\t\tcaption: \"Izbrisi\",\n\t\tmsg: \"Izbrisi izabran(e) zapise(e)?\",\n\t\tbSubmit: \"Izbriši\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Izmeni izabrani red\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Dodaj novi red\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Izbriši izabran red\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Nađi zapise\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Ponovo učitaj podatke\",\n\t\talertcap: \"Upozorenje\",\n\t\talerttext: \"Izaberite red\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Pogledaj izabrani red\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Izaberi kolone\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Odbaci\"\n\t},\n\terrors : {\n\t\terrcap : \"Greška\",\n\t\tnourl : \"Nije postavljen URL\",\n\t\tnorecords: \"Nema zapisa za obradu\",\n\t\tmodel : \"Dužina modela colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\",\n\t\t\t\t\"Nedelja\", \"Ponedeljak\", \"Utorak\", \"Srijeda\", \"Četvrtak\", \"Petak\", \"Subota\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sr.js",
    "content": "/**\n * jqGrid Serbian Translation\n * Александар Миловац(Aleksandar Milovac) aleksandar.milovac@gmail.com\n * http://trirand.com/blog/\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sr\"] = {\n\tdefaults : {\n\t\trecordtext: \"Преглед {0} - {1} од {2}\",\n\t\temptyrecords: \"Не постоји ниједан запис\",\n\t\tloadtext: \"Учитавање...\",\n\t\tpgtext : \"Страна {0} од {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Тражење...\",\n\t\tFind: \"Тражи\",\n\t\tReset: \"Ресетуј\",\n\t\todata: [{ oper:'eq', text:\"једнако\"},{ oper:'ne', text:\"није једнако\"},{ oper:'lt', text:\"мање\"},{ oper:'le', text:\"мање или једнако\"},{ oper:'gt', text:\"веће\"},{ oper:'ge', text:\"веће или једнако\"},{ oper:'bw', text:\"почиње са\"},{ oper:'bn', text:\"не почиње са\"},{ oper:'in', text:\"је у\"},{ oper:'ni', text:\"није у\"},{ oper:'ew', text:\"завршава са\"},{ oper:'en', text:\"не завршава са\"},{ oper:'cn', text:\"садржи\"},{ oper:'nc', text:\"не садржи\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"И\", text: \"сви\" },\t{ op: \"ИЛИ\",  text: \"сваки\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\t\t\n\t},\n\tedit : {\n\t\taddCaption: \"Додај запис\",\n\t\teditCaption: \"Измени запис\",\n\t\tbSubmit: \"Пошаљи\",\n\t\tbCancel: \"Одустани\",\n\t\tbClose: \"Затвори\",\n\t\tsaveData: \"Податак је измењен! Сачувај измене?\",\n\t\tbYes : \"Да\",\n\t\tbNo : \"Не\",\n\t\tbExit : \"Одустани\",\n\t\tmsg: {\n\t\t\trequired:\"Поље је обавезно\",\n\t\t\tnumber:\"Молим, унесите исправан број\",\n\t\t\tminValue:\"вредност мора бити већа од или једнака са \",\n\t\t\tmaxValue:\"вредност мора бити мања од или једнака са\",\n\t\t\temail: \"није исправна имејл адреса\",\n\t\t\tinteger: \"Молим, унесите исправну целобројну вредност \",\n\t\t\tdate: \"Молим, унесите исправан датум\",\n\t\t\turl: \"није исправан УРЛ. Потребан је префикс ('http://' or 'https://')\",\n\t\t\tnodefined : \" није дефинисан!\",\n\t\t\tnovalue : \" захтевана је повратна вредност!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Погледај запис\",\n\t\tbClose: \"Затвори\"\n\t},\n\tdel : {\n\t\tcaption: \"Избриши\",\n\t\tmsg: \"Избриши изабран(е) запис(е)?\",\n\t\tbSubmit: \"Ибриши\",\n\t\tbCancel: \"Одбаци\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Измени изабрани ред\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Додај нови ред\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Избриши изабран ред\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Нађи записе\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Поново учитај податке\",\n\t\talertcap: \"Упозорење\",\n\t\talerttext: \"Молим, изаберите ред\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Погледај изабрани ред\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Изабери колоне\",\n\t\tbSubmit: \"ОК\",\n\t\tbCancel: \"Одбаци\"\n\t},\n\terrors : {\n\t\terrcap : \"Грешка\",\n\t\tnourl : \"Није постављен URL\",\n\t\tnorecords: \"Нема записа за обраду\",\n\t\tmodel : \"Дужина модела colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Нед\", \"Пон\", \"Уто\", \"Сре\", \"Чет\", \"Пет\", \"Суб\",\n\t\t\t\t\"Недеља\", \"Понедељак\", \"Уторак\", \"Среда\", \"Четвртак\", \"Петак\", \"Субота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Јан\", \"Феб\", \"Мар\", \"Апр\", \"Мај\", \"Јун\", \"Јул\", \"Авг\", \"Сеп\", \"Окт\", \"Нов\", \"Дец\",\n\t\t\t\t\"Јануар\", \"Фебруар\", \"Март\", \"Април\", \"Мај\", \"Јун\", \"Јул\", \"Август\", \"Септембар\", \"Октобар\", \"Новембар\", \"Децембар\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-sv.js",
    "content": "/**\n * jqGrid Swedish Translation\n * Harald Normann harald.normann@wts.se, harald.normann@gmail.com\n * http://www.worldteamsoftware.com \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"sv\"] = {\n\tdefaults : {\n\t\trecordtext: \"Visar {0} - {1} av {2}\",\n\t\temptyrecords: \"Det finns inga poster att visa\",\n\t\tloadtext: \"Laddar...\",\n\t\tpgtext : \"Sida {0} av {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Sök Poster - Ange sökvillkor\",\n\t\tFind: \"Sök\",\n\t\tReset: \"Nollställ Villkor\",\n\t\todata: [{ oper:'eq', text:\"lika\"},{ oper:'ne', text:\"ej lika\"},{ oper:'lt', text:\"mindre\"},{ oper:'le', text:\"mindre eller lika\"},{ oper:'gt', text:\"större\"},{ oper:'ge', text:\"större eller lika\"},{ oper:'bw', text:\"börjar med\"},{ oper:'bn', text:\"börjar inte med\"},{ oper:'in', text:\"tillhör\"},{ oper:'ni', text:\"tillhör inte\"},{ oper:'ew', text:\"slutar med\"},{ oper:'en', text:\"slutar inte med\"},{ oper:'cn', text:\"innehåller\"},{ oper:'nc', text:\"innehåller inte\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"alla\" },\t{ op: \"OR\",  text: \"eller\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Ny Post\",\n\t\teditCaption: \"Redigera Post\",\n\t\tbSubmit: \"Spara\",\n\t\tbCancel: \"Avbryt\",\n\t\tbClose: \"Stäng\",\n\t\tsaveData: \"Data har ändrats! Spara förändringar?\",\n\t\tbYes : \"Ja\",\n\t\tbNo : \"Nej\",\n\t\tbExit : \"Avbryt\",\n\t\tmsg: {\n\t        required:\"Fältet är obligatoriskt\",\n\t        number:\"Välj korrekt nummer\",\n\t        minValue:\"värdet måste vara större än eller lika med\",\n\t        maxValue:\"värdet måste vara mindre än eller lika med\",\n\t        email: \"är inte korrekt e-post adress\",\n\t        integer: \"Var god ange korrekt heltal\",\n\t        date: \"Var god ange korrekt datum\",\n\t        url: \"är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')\",\n\t        nodefined : \" är inte definierad!\",\n\t        novalue : \" returvärde måste anges!\",\n\t        customarray : \"Custom funktion måste returnera en vektor!\",\n\t\t\tcustomfcheck : \"Custom funktion måste finnas om Custom kontroll sker!\"\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Visa Post\",\n\t\tbClose: \"Stäng\"\n\t},\n\tdel : {\n\t\tcaption: \"Radera\",\n\t\tmsg: \"Radera markerad(e) post(er)?\",\n\t\tbSubmit: \"Radera\",\n\t\tbCancel: \"Avbryt\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Redigera markerad rad\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Skapa ny post\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Radera markerad rad\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Sök poster\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Uppdatera data\",\n\t\talertcap: \"Varning\",\n\t\talerttext: \"Ingen rad är markerad\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Visa markerad rad\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Välj Kolumner\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Avbryt\"\n\t},\n\terrors : {\n\t\terrcap : \"Fel\",\n\t\tnourl : \"URL saknas\",\n\t\tnorecords: \"Det finns inga poster att bearbeta\",\n\t\tmodel : \"Antal colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"Kr\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\",\n\t\t\t\t\"Söndag\", \"Måndag\", \"Tisdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lördag\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\",\n\t\t\t\t\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"\n\t\t\t],\n\t\t\tAmPm : [\"fm\",\"em\",\"FM\",\"EM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'Y-m-d',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate:  \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-th.js",
    "content": "/**\n * jqGrid Thai Translation\n * Kittituch Manakul m.kittituch@Gmail.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"th\"] = {\n\tdefaults : {\n\t\trecordtext: \"แสดง {0} - {1} จาก {2}\",\n\t\temptyrecords: \"ไม่พบข้อมูล\",\n\t\tloadtext: \"กำลังร้องขอข้อมูล...\",\n\t\tpgtext : \"หน้า {0} จาก {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"กำลังค้นหา...\",\n\t\tFind: \"ค้นหา\",\n\t\tReset: \"คืนค่ากลับ\",\n\t\todata: [{ oper:'eq', text:\"เท่ากับ\"},{ oper:'ne', text:\"ไม่เท่ากับ\"},{ oper:'lt', text:\"น้อยกว่า\"},{ oper:'le', text:\"ไม่มากกว่า\"},{ oper:'gt', text:\"มากกกว่า\"},{ oper:'ge', text:\"ไม่น้อยกว่า\"},{ oper:'bw', text:\"ขึ้นต้นด้วย\"},{ oper:'bn', text:\"ไม่ขึ้นต้นด้วย\"},{ oper:'in', text:\"มีคำใดคำหนึ่งใน\"},{ oper:'ni', text:\"ไม่มีคำใดคำหนึ่งใน\"},{ oper:'ew', text:\"ลงท้ายด้วย\"},{ oper:'en', text:\"ไม่ลงท้ายด้วย\"},{ oper:'cn', text:\"มีคำว่า\"},{ oper:'nc', text:\"ไม่มีคำว่า\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"และ\", text: \"ทั้งหมด\" },\t{ op: \"หรือ\",  text: \"ใดๆ\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"เพิ่มข้อมูล\",\n\t\teditCaption: \"แก้ไขข้อมูล\",\n\t\tbSubmit: \"บันทึก\",\n\t\tbCancel: \"ยกเลิก\",\n\t\tbClose: \"ปิด\",\n\t\tsaveData: \"คุณต้องการบันทึการแก้ไข ใช่หรือไม่?\",\n\t\tbYes : \"บันทึก\",\n\t\tbNo : \"ละทิ้งการแก้ไข\",\n\t\tbExit : \"ยกเลิก\",\n\t\tmsg: {\n\t\t\trequired:\"ข้อมูลนี้จำเป็น\",\n\t\t\tnumber:\"กรุณากรอกหมายเลขให้ถูกต้อง\",\n\t\t\tminValue:\"ค่าของข้อมูลนี้ต้องไม่น้อยกว่า\",\n\t\t\tmaxValue:\"ค่าของข้อมูลนี้ต้องไม่มากกว่า\",\n\t\t\temail: \"อีเมลล์นี้ไม่ถูกต้อง\",\n\t\t\tinteger: \"กรุณากรอกเป็นจำนวนเต็ม\",\n\t\t\tdate: \"กรุณากรอกวันที่ให้ถูกต้อง\",\n\t\t\turl: \"URL ไม่ถูกต้อง URL จำเป็นต้องขึ้นต้นด้วย 'http://' หรือ 'https://'\",\n\t\t\tnodefined : \"ไม่ได้ถูกกำหนดค่า!\",\n\t\t\tnovalue : \"ต้องการการคืนค่า!\",\n\t\t\tcustomarray : \"ฟังก์ชันที่สร้างขึ้นต้องส่งค่ากลับเป็นแบบแอเรย์\",\n\t\t\tcustomfcheck : \"ระบบต้องการฟังก์ชันที่สร้างขึ้นสำหรับการตรวจสอบ!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"เรียกดูข้อมูล\",\n\t\tbClose: \"ปิด\"\n\t},\n\tdel : {\n\t\tcaption: \"ลบข้อมูล\",\n\t\tmsg: \"คุณต้องการลบข้อมูลที่ถูกเลือก ใช่หรือไม่?\",\n\t\tbSubmit: \"ต้องการลบ\",\n\t\tbCancel: \"ยกเลิก\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"แก้ไขข้อมูล\",\n\t\taddtext:\"\",\n\t\taddtitle: \"เพิ่มข้อมูล\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"ลบข้อมูล\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"ค้นหาข้อมูล\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"รีเฟรช\",\n\t\talertcap: \"คำเตือน\",\n\t\talerttext: \"กรุณาเลือกข้อมูล\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"ดูรายละเอียดข้อมูล\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"กรุณาเลือกคอลัมน์\",\n\t\tbSubmit: \"ตกลง\",\n\t\tbCancel: \"ยกเลิก\"\n\t},\n\terrors : {\n\t\terrcap : \"เกิดความผิดพลาด\",\n\t\tnourl : \"ไม่ได้กำหนด URL\",\n\t\tnorecords: \"ไม่มีข้อมูลให้ดำเนินการ\",\n\t\tmodel : \"จำนวนคอลัมน์ไม่เท่ากับจำนวนคอลัมน์โมเดล!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"อา\", \"จ\", \"อ\", \"พ\", \"พฤ\", \"ศ\", \"ส\",\n\t\t\t\t\"อาทิตย์\", \"จันทร์\", \"อังคาร\", \"พุธ\", \"พฤหัสบดี\", \"ศูกร์\", \"เสาร์\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"ม.ค.\", \"ก.พ.\", \"มี.ค.\", \"เม.ย.\", \"พ.ค.\", \"มิ.ย.\", \"ก.ค.\", \"ส.ค.\", \"ก.ย.\", \"ต.ค.\", \"พ.ย.\", \"ธ.ค.\",\n\t\t\t\t\"มกราคม\", \"กุมภาพันธ์\", \"มีนาคม\", \"เมษายน\", \"พฤษภาคม\", \"มิถุนายน\", \"กรกฏาคม\", \"สิงหาคม\", \"กันยายน\", \"ตุลาคม\", \"พฤศจิกายน\", \"ธันวาคม\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return ''},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"n/j/Y\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-tr.js",
    "content": "/**\n * jqGrid Turkish Translation\n * Erhan Gündoğan (erhan@trposta.net)\n * http://blog.zakkum.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"tr\"] = {\n\tdefaults : {\n\t\trecordtext: \"{0}-{1} listeleniyor. Toplam:{2}\",\n\t    emptyrecords: \"Kayıt bulunamadı\",\n\t\tloadtext: \"Yükleniyor...\",\n\t\tpgtext : \"{0}/{1}. Sayfa\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t    caption: \"Arama...\",\n\t    Find: \"Bul\",\n\t    Reset: \"Temizle\",\t    \n\t    odata: [{ oper:'eq', text:\"eşit\"},{ oper:'ne', text:\"eşit değil\"},{ oper:'lt', text:\"daha az\"},{ oper:'le', text:\"daha az veya eşit\"},{ oper:'gt', text:\"daha fazla\"},{ oper:'ge', text:\"daha fazla veya eşit\"},{ oper:'bw', text:\"ile başlayan\"},{ oper:'bn', text:\"ile başlamayan\"},{ oper:'in', text:\"içinde\"},{ oper:'ni', text:\"içinde değil\"},{ oper:'ew', text:\"ile biten\"},{ oper:'en', text:\"ile bitmeyen\"},{ oper:'cn', text:\"içeren\"},{ oper:'nc', text:\"içermeyen\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t    groupOps: [\t{ op: \"VE\", text: \"tüm\" },\t{ op: \"VEYA\",  text: \"herhangi\" }],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t    addCaption: \"Kayıt Ekle\",\n\t    editCaption: \"Kayıt Düzenle\",\n\t    bSubmit: \"Gönder\",\n\t    bCancel: \"İptal\",\n\t\tbClose: \"Kapat\",\n\t\tsaveData: \"Veriler değişti! Kayıt edilsin mi?\",\n\t\tbYes : \"Evet\",\n\t\tbNo : \"Hayıt\",\n\t\tbExit : \"İptal\",\n\t    msg: {\n\t        required:\"Alan gerekli\",\n\t        number:\"Lütfen bir numara giriniz\",\n\t        minValue:\"girilen değer daha büyük ya da buna eşit olmalıdır\",\n\t        maxValue:\"girilen değer daha küçük ya da buna eşit olmalıdır\",\n\t        email: \"geçerli bir e-posta adresi değildir\",\n\t        integer: \"Lütfen bir tamsayı giriniz\",\n\t\t\turl: \"Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.\",\n\t\t\tnodefined : \" is not defined!\",\n\t\t\tnovalue : \" return value is required!\",\n\t\t\tcustomarray : \"Custom function should return array!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Kayıt Görüntüle\",\n\t    bClose: \"Kapat\"\n\t},\n\tdel : {\n\t    caption: \"Sil\",\n\t    msg: \"Seçilen kayıtlar silinsin mi?\",\n\t    bSubmit: \"Sil\",\n\t    bCancel: \"İptal\"\n\t},\n\tnav : {\n\t\tedittext: \" \",\n\t    edittitle: \"Seçili satırı düzenle\",\n\t\taddtext:\" \",\n\t    addtitle: \"Yeni satır ekle\",\n\t    deltext: \" \",\n\t    deltitle: \"Seçili satırı sil\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Kayıtları bul\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Tabloyu yenile\",\n\t    alertcap: \"Uyarı\",\n\t    alerttext: \"Lütfen bir satır seçiniz\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Seçilen satırı görüntüle\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Sütunları göster/gizle\",\n\t    bSubmit: \"Gönder\",\n\t    bCancel: \"İptal\"\t\n\t},\n\terrors : {\n\t\terrcap : \"Hata\",\n\t\tnourl : \"Bir url yapılandırılmamış\",\n\t\tnorecords: \"İşlem yapılacak bir kayıt yok\",\n\t    model : \"colNames uzunluğu <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Paz\", \"Pts\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cts\",\n\t\t\t\t\"Pazar\", \"Pazartesi\", \"Salı\", \"Çarşamba\", \"Perşembe\", \"Cuma\", \"Cumartesi\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Oca\", \"Şub\", \"Mar\", \"Nis\", \"May\", \"Haz\", \"Tem\", \"Ağu\", \"Eyl\", \"Eki\", \"Kas\", \"Ara\",\n\t\t\t\t\"Ocak\", \"Şubat\", \"Mart\", \"Nisan\", \"Mayıs\", \"Haziran\", \"Temmuz\", \"Ağustos\", \"Eylül\", \"Ekim\", \"Kasım\", \"Aralık\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd/m/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n/j/Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y g:i:s A\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"g:i A\",\n\t            LongTime: \"g:i:s A\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t    target: '',\n\t    checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-tw.js",
    "content": "/**\n * jqGrid Chinese (Taiwan) Translation for v4.2\n * linquize\n * https://github.com/linquize/jqGrid\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n * \n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"tw\"] = {\n\tdefaults : {\n\t\trecordtext: \"{0} - {1} 共 {2} 條\",\n\t\temptyrecords: \"沒有記錄\",\n\t\tloadtext: \"載入中...\",\n\t\tpgtext : \" {0} 共 {1} 頁\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"搜尋...\",\n\t\tFind: \"搜尋\",\n\t\tReset: \"重設\",\n\t\todata: [{ oper:'eq', text:\"等於 \"},{ oper:'ne', text:\"不等於 \"},{ oper:'lt', text:\"小於 \"},{ oper:'le', text:\"小於等於 \"},{ oper:'gt', text:\"大於 \"},{ oper:'ge', text:\"大於等於 \"},{ oper:'bw', text:\"開始於 \"},{ oper:'bn', text:\"不開始於 \"},{ oper:'in', text:\"在其中 \"},{ oper:'ni', text:\"不在其中 \"},{ oper:'ew', text:\"結束於 \"},{ oper:'en', text:\"不結束於 \"},{ oper:'cn', text:\"包含 \"},{ oper:'nc', text:\"不包含 \"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"AND\", text: \"所有\" },\t{ op: \"OR\",  text: \"任一\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"新增記錄\",\n\t\teditCaption: \"編輯記錄\",\n\t\tbSubmit: \"提交\",\n\t\tbCancel: \"取消\",\n\t\tbClose: \"關閉\",\n\t\tsaveData: \"資料已改變，是否儲存？\",\n\t\tbYes : \"是\",\n\t\tbNo : \"否\",\n\t\tbExit : \"取消\",\n\t\tmsg: {\n\t\t\trequired:\"此欄必要\",\n\t\t\tnumber:\"請輸入有效的數字\",\n\t\t\tminValue:\"值必須大於等於 \",\n\t\t\tmaxValue:\"值必須小於等於 \",\n\t\t\temail: \"不是有效的e-mail地址\",\n\t\t\tinteger: \"請輸入有效整数\",\n\t\t\tdate: \"請輸入有效時間\",\n\t\t\turl: \"網址無效。前綴必須為 ('http://' 或 'https://')\",\n\t\t\tnodefined : \" 未定義！\",\n\t\t\tnovalue : \" 需要傳回值！\",\n\t\t\tcustomarray : \"自訂函數應傳回陣列！\",\n\t\t\tcustomfcheck : \"自訂檢查應有自訂函數！\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"查看記錄\",\n\t\tbClose: \"關閉\"\n\t},\n\tdel : {\n\t\tcaption: \"刪除\",\n\t\tmsg: \"刪除已選記錄？\",\n\t\tbSubmit: \"刪除\",\n\t\tbCancel: \"取消\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"編輯已選列\",\n\t\taddtext:\"\",\n\t\taddtitle: \"新增列\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"刪除已選列\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"搜尋記錄\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"重新整理表格\",\n\t\talertcap: \"警告\",\n\t\talerttext: \"請選擇列\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"檢視已選列\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"選擇欄\",\n\t\tbSubmit: \"確定\",\n\t\tbCancel: \"取消\"\n\t},\n\terrors : {\n\t\terrcap : \"錯誤\",\n\t\tnourl : \"未設定URL\",\n\t\tnorecords: \"無需要處理的記錄\",\n\t\tmodel : \"colNames 和 colModel 長度不同！\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0.00'},\n\t\tcurrency : {decimalSeparator:\".\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0.00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\",\n\t\t         \"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\", \"十\", \"十一\", \"十二\",\n\t\t\t\t\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"\n\t\t\t],\n\t\t\tAmPm : [\"上午\",\"下午\",\"上午\",\"下午\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'm-d-Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\tShortDate: \"Y/j/n\",\n\t\t\t\tLongDate: \"l, F d, Y\",\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\",\n\t\t\t\tMonthDay: \"F d\",\n\t\t\t\tShortTime: \"g:i A\",\n\t\t\t\tLongTime: \"g:i:s A\",\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\tYearMonth: \"F, Y\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-uk.js",
    "content": "/**\n * jqGrid Ukrainian Translation v1.0 02.07.2009\n * Sergey Dyagovchenko\n * http://d.sumy.ua\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"ua\"] = {\n\tdefaults : {\n\t\trecordtext: \"Перегляд {0} - {1} з {2}\",\n\t  emptyrecords: \"Немає записів для перегляду\",\n\t\tloadtext: \"Завантаження...\",\n\t\tpgtext : \"Стор. {0} з {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n    caption: \"Пошук...\",\n    Find: \"Знайти\",\n    Reset: \"Скидання\",\n    odata: [{ oper:'eq', text:\"рівно\"},{ oper:'ne', text:\"не рівно\"},{ oper:'lt', text:\"менше\"},{ oper:'le', text:\"менше або рівне\"},{ oper:'gt', text:\"більше\"},{ oper:'ge', text:\"більше або рівне\"},{ oper:'bw', text:\"починається з\"},{ oper:'bn', text:\"не починається з\"},{ oper:'in', text:\"знаходиться в\"},{ oper:'ni', text:\"не знаходиться в\"},{ oper:'ew', text:\"закінчується на\"},{ oper:'en', text:\"не закінчується на\"},{ oper:'cn', text:\"містить\"},{ oper:'nc', text:\"не містить\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n    groupOps: [\t{ op: \"AND\", text: \"все\" },\t{ op: \"OR\",  text: \"будь-який\" }],\n\toperandTitle : \"Click to select search operation.\",\n\tresetTitle : \"Reset Search Value\",\n\taddsubgrup : \"Add subgroup\",\n\taddrule : \"Add rule\",\n\tdelgroup : \"Delete group\",\n\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n    addCaption: \"Додати запис\",\n    editCaption: \"Змінити запис\",\n    bSubmit: \"Зберегти\",\n    bCancel: \"Відміна\",\n\t\tbClose: \"Закрити\",\n\t\tsaveData: \"До данних були внесені зміни! Зберегти зміни?\",\n\t\tbYes : \"Так\",\n\t\tbNo : \"Ні\",\n\t\tbExit : \"Відміна\",\n\t    msg: {\n        required:\"Поле є обов'язковим\",\n        number:\"Будь ласка, введіть правильне число\",\n        minValue:\"значення повинне бути більше або дорівнює\",\n        maxValue:\"значення повинно бути менше або дорівнює\",\n        email: \"некоректна адреса електронної пошти\",\n        integer: \"Будь ласка, введення дійсне ціле значення\",\n        date: \"Будь ласка, введення дійсне значення дати\",\n        url: \"не дійсний URL. Необхідна приставка ('http://' or 'https://')\",\n\t\tnodefined : \" is not defined!\",\n\t\tnovalue : \" return value is required!\",\n\t\tcustomarray : \"Custom function should return array!\",\n\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t}\n\t},\n\tview : {\n\t    caption: \"Переглянути запис\",\n\t    bClose: \"Закрити\"\n\t},\n\tdel : {\n\t    caption: \"Видалити\",\n\t    msg: \"Видалити обраний запис(и)?\",\n\t    bSubmit: \"Видалити\",\n\t    bCancel: \"Відміна\"\n\t},\n\tnav : {\n  \t\tedittext: \" \",\n\t    edittitle: \"Змінити вибраний запис\",\n  \t\taddtext:\" \",\n\t    addtitle: \"Додати новий запис\",\n\t    deltext: \" \",\n\t    deltitle: \"Видалити вибраний запис\",\n\t    searchtext: \" \",\n\t    searchtitle: \"Знайти записи\",\n\t    refreshtext: \"\",\n\t    refreshtitle: \"Оновити таблицю\",\n\t    alertcap: \"Попередження\",\n\t    alerttext: \"Будь ласка, виберіть запис\",\n  \t\tviewtext: \"\",\n  \t\tviewtitle: \"Переглянути обраний запис\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t    caption: \"Показати/Приховати стовпці\",\n\t    bSubmit: \"Зберегти\",\n\t    bCancel: \"Відміна\"\n\t},\n\terrors : {\n\t\terrcap : \"Помилка\",\n\t\tnourl : \"URL не задан\",\n\t\tnorecords: \"Немає записів для обробки\",\n    model : \"Число полів не відповідає числу стовпців таблиці!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \" \", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, defaultValue: '0,00'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \" \", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0,00'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\",\n\t\t\t\t\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четвер\", \"П'ятниця\", \"Субота\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Січ\", \"Лют\", \"Бер\", \"Кві\", \"Тра\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Гру\",\n\t\t\t\t\"Січень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"\n\t\t\t],\n\t\t\tAmPm : [\"am\",\"pm\",\"AM\",\"PM\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'd.m.Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t            ISO8601Long:\"Y-m-d H:i:s\",\n\t            ISO8601Short:\"Y-m-d\",\n\t            ShortDate: \"n.j.Y\",\n\t            LongDate: \"l, F d, Y\",\n\t            FullDateTime: \"l, F d, Y G:i:s\",\n\t            MonthDay: \"F d\",\n\t            ShortTime: \"G:i\",\n\t            LongTime: \"G:i:s\",\n\t            SortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t            UniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t            YearMonth: \"F, Y\"\n\t        },\n\t        reformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t  target: '',\n\t  checkbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/i18n/grid.locale-vi.js",
    "content": "/**\n * jqGrid Vietnamese Translation\n * Lê Đình Dũng dungtdc@gmail.com\n * http://trirand.com/blog/ \n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl.html\n**/\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"../grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"regional\")) {\n\t$.jgrid.regional = [];\n}\n$.jgrid.regional[\"vi\"] = {\n\tdefaults : {\n\t\trecordtext: \"View {0} - {1} of {2}\",\n\t\temptyrecords: \"Không có dữ liệu\",\n\t\tloadtext: \"Đang nạp dữ liệu...\",\n\t\tpgtext : \"Trang {0} trong tổng số {1}\",\n\t\tsavetext: \"Saving...\",\n\t\tpgfirst : \"First Page\",\n\t\tpglast : \"Last Page\",\n\t\tpgnext : \"Next Page\",\n\t\tpgprev : \"Previous Page\",\n\t\tpgrecs : \"Records per Page\",\n\t\tshowhide: \"Toggle Expand Collapse Grid\",\n\t\t// mobile\n\t\tpagerCaption : \"Grid::Page Settings\",\n\t\tpageText : \"Page:\",\n\t\trecordPage : \"Records per Page\",\n\t\tnomorerecs : \"No more records...\",\n\t\tscrollPullup: \"Pull up to load more...\",\n\t\tscrollPulldown : \"Pull down to refresh...\",\n\t\tscrollRefresh : \"Release to refresh...\"\n\t},\n\tsearch : {\n\t\tcaption: \"Tìm kiếm...\",\n\t\tFind: \"Tìm\",\n\t\tReset: \"Khởi tạo lại\",\n\t\todata: [{ oper:'eq', text:\"bằng\"},{ oper:'ne', text:\"không bằng\"},{ oper:'lt', text:\"bé hơn\"},{ oper:'le', text:\"bé hơn hoặc bằng\"},{ oper:'gt', text:\"lớn hơn\"},{ oper:'ge', text:\"lớn hơn hoặc bằng\"},{ oper:'bw', text:\"bắt đầu với\"},{ oper:'bn', text:\"không bắt đầu với\"},{ oper:'in', text:\"trong\"},{ oper:'ni', text:\"không nằm trong\"},{ oper:'ew', text:\"kết thúc với\"},{ oper:'en', text:\"không kết thúc với\"},{ oper:'cn', text:\"chứa\"},{ oper:'nc', text:\"không chứa\"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],\n\t\tgroupOps: [\t{ op: \"VÀ\", text: \"tất cả\" },\t{ op: \"HOẶC\",  text: \"bất kỳ\" }\t],\n\t\toperandTitle : \"Click to select search operation.\",\n\t\tresetTitle : \"Reset Search Value\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t},\n\tedit : {\n\t\taddCaption: \"Thêm bản ghi\",\n\t\teditCaption: \"Sửa bản ghi\",\n\t\tbSubmit: \"Gửi\",\n\t\tbCancel: \"Hủy bỏ\",\n\t\tbClose: \"Đóng\",\n\t\tsaveData: \"Dữ liệu đã thay đổi! Có lưu thay đổi không?\",\n\t\tbYes : \"Có\",\n\t\tbNo : \"Không\",\n\t\tbExit : \"Hủy bỏ\",\n\t\tmsg: {\n\t\t\trequired:\"Trường dữ liệu bắt buộc có\",\n\t\t\tnumber:\"Hãy điền đúng số\",\n\t\t\tminValue:\"giá trị phải lớn hơn hoặc bằng với \",\n\t\t\tmaxValue:\"giá trị phải bé hơn hoặc bằng\",\n\t\t\temail: \"không phải là một email đúng\",\n\t\t\tinteger: \"Hãy điền đúng số nguyên\",\n\t\t\tdate: \"Hãy điền đúng ngày tháng\",\n\t\t\turl: \"không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')\",\n\t\t\tnodefined : \" chưa được định nghĩa!\",\n\t\t\tnovalue : \" giá trị trả về bắt buộc phải có!\",\n\t\t\tcustomarray : \"Hàm nên trả về một mảng!\",\n\t\t\tcustomfcheck : \"Custom function should be present in case of custom checking!\"\n\t\t\t\n\t\t}\n\t},\n\tview : {\n\t\tcaption: \"Xem bản ghi\",\n\t\tbClose: \"Đóng\"\n\t},\n\tdel : {\n\t\tcaption: \"Xóa\",\n\t\tmsg: \"Xóa bản ghi đã chọn?\",\n\t\tbSubmit: \"Xóa\",\n\t\tbCancel: \"Hủy bỏ\"\n\t},\n\tnav : {\n\t\tedittext: \"\",\n\t\tedittitle: \"Sửa dòng đã chọn\",\n\t\taddtext:\"\",\n\t\taddtitle: \"Thêm mới 1 dòng\",\n\t\tdeltext: \"\",\n\t\tdeltitle: \"Xóa dòng đã chọn\",\n\t\tsearchtext: \"\",\n\t\tsearchtitle: \"Tìm bản ghi\",\n\t\trefreshtext: \"\",\n\t\trefreshtitle: \"Nạp lại lưới\",\n\t\talertcap: \"Cảnh báo\",\n\t\talerttext: \"Hãy chọn một dòng\",\n\t\tviewtext: \"\",\n\t\tviewtitle: \"Xem dòng đã chọn\",\n\t\tsavetext: \"\",\n\t\tsavetitle: \"Save row\",\n\t\tcanceltext: \"\",\n\t\tcanceltitle : \"Cancel row editing\",\n\t\tselectcaption : \"Actions...\"\n\t},\n\tcol : {\n\t\tcaption: \"Chọn cột\",\n\t\tbSubmit: \"OK\",\n\t\tbCancel: \"Hủy bỏ\"\n\t},\n\terrors : {\n\t\terrcap : \"Lỗi\",\n\t\tnourl : \"không url được đặt\",\n\t\tnorecords: \"Không có bản ghi để xử lý\",\n\t\tmodel : \"Chiều dài của colNames <> colModel!\"\n\t},\n\tformatter : {\n\t\tinteger : {thousandsSeparator: \".\", defaultValue: '0'},\n\t\tnumber : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, defaultValue: '0'},\n\t\tcurrency : {decimalSeparator:\",\", thousandsSeparator: \".\", decimalPlaces: 2, prefix: \"\", suffix:\"\", defaultValue: '0'},\n\t\tdate : {\n\t\t\tdayNames:   [\n\t\t\t\t\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\",\n\t\t\t\t\"Chủ nhật\", \"Thứ hai\", \"Thứ ba\", \"Thứ tư\", \"Thứ năm\", \"Thứ sáu\", \"Thứ bảy\"\n\t\t\t],\n\t\t\tmonthNames: [\n\t\t\t\t\"Th1\", \"Th2\", \"Th3\", \"Th4\", \"Th5\", \"Th6\", \"Th7\", \"Th8\", \"Th9\", \"Th10\", \"Th11\", \"Th12\",\n\t\t\t\t\"Tháng một\", \"Tháng hai\", \"Tháng ba\", \"Tháng tư\", \"Tháng năm\", \"Tháng sáu\", \"Tháng bảy\", \"Tháng tám\", \"Tháng chín\", \"Tháng mười\", \"Tháng mười một\", \"Tháng mười hai\"\n\t\t\t],\n\t\t\tAmPm : [\"sáng\",\"chiều\",\"SÁNG\",\"CHIỀU\"],\n\t\t\tS: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},\n\t\t\tsrcformat: 'Y-m-d',\n\t\t\tnewformat: 'n/j/Y',\n\t\t\tparseRe : /[#%\\\\\\/:_;.,\\t\\s-]/,\n\t\t\tmasks : {\n\t\t\t\t// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid\n\t\t\t\t// and see http://docs.jquery.com/UI/Datepicker/formatDate\n\t\t\t\t// and https://github.com/jquery/globalize#dates for alternative formats used frequently\n\t\t\t\t// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many\n\t\t\t\t// information about date, time, numbers and currency formats used in different countries\n\t\t\t\t// one should just convert the information in PHP format\n\t\t\t\tISO8601Long:\"Y-m-d H:i:s\",\n\t\t\t\tISO8601Short:\"Y-m-d\",\n\t\t\t\t// short date:\n\t\t\t\t//    n - Numeric representation of a month, without leading zeros\n\t\t\t\t//    j - Day of the month without leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t// example: 3/1/2012 which means 1 March 2012\n\t\t\t\tShortDate: \"n/j/Y\", // in jQuery UI Datepicker: \"M/d/yyyy\"\n\t\t\t\t// long date:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\tLongDate: \"l, F d, Y\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy\"\n\t\t\t\t// long date with long time:\n\t\t\t\t//    l - A full textual representation of the day of the week\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tFullDateTime: \"l, F d, Y g:i:s A\", // in jQuery UI Datepicker: \"dddd, MMMM dd, yyyy h:mm:ss tt\"\n\t\t\t\t// month day:\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\t//    d - Day of the month, 2 digits with leading zeros\n\t\t\t\tMonthDay: \"F d\", // in jQuery UI Datepicker: \"MMMM dd\"\n\t\t\t\t// short time (without seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tShortTime: \"g:i A\", // in jQuery UI Datepicker: \"h:mm tt\"\n\t\t\t\t// long time (with seconds)\n\t\t\t\t//    g - 12-hour format of an hour without leading zeros\n\t\t\t\t//    i - Minutes with leading zeros\n\t\t\t\t//    s - Seconds, with leading zeros\n\t\t\t\t//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)\n\t\t\t\tLongTime: \"g:i:s A\", // in jQuery UI Datepicker: \"h:mm:ss tt\"\n\t\t\t\tSortableDateTime: \"Y-m-d\\\\TH:i:s\",\n\t\t\t\tUniversalSortableDateTime: \"Y-m-d H:i:sO\",\n\t\t\t\t// month with year\n\t\t\t\t//    Y - A full numeric representation of a year, 4 digits\n\t\t\t\t//    F - A full textual representation of a month\n\t\t\t\tYearMonth: \"F, Y\" // in jQuery UI Datepicker: \"MMMM, yyyy\"\n\t\t\t},\n\t\t\treformatAfterEdit : false,\n\t\t\tuserLocalTime : false\n\t\t},\n\t\tbaseLinkUrl: '',\n\t\tshowAction: '',\n\t\ttarget: '',\n\t\tcheckbox : {disabled:true},\n\t\tidName : 'id'\n\t},\n\tcolmenu : {\n\t\tsortasc : \"Sort Ascending\",\n\t\tsortdesc : \"Sort Descending\",\n\t\tcolumns : \"Columns\",\n\t\tfilter : \"Filter\",\n\t\tgrouping : \"Group By\",\n\t\tungrouping : \"Ungroup\",\n\t\tsearchTitle : \"Get items with value that:\",\n\t\tfreeze : \"Freeze\",\n\t\tunfreeze : \"Unfreeze\",\n\t\treorder : \"Move to reorder\"\n\t}\n};\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jqDnR.js",
    "content": "/*\n * jqDnR - Minimalistic Drag'n'Resize for jQuery.\n *\n * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net\n * Licensed under the MIT License:\n * http://www.opensource.org/licenses/mit-license.php\n * \n * $Version: 2007.08.19 +r2\n */\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} (function( $ ) {\n\"use strict\";\n//module begin\n$.fn.jqDrag=function(h){return i(this,h,'d');};\n$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};\n$.jqDnR={\n\tdnr:{},\n\te:0,\n\tdrag:function(v){\n\t\tif(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}\n\t\telse {\n\t\t\tE.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});\n\t\t\tif(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}\n\t\t}\n\t\treturn false;\n\t},\n\tstop:function(){\n\t\t//E.css('opacity',M.o);\n\t\t$(document).off('mousemove',J.drag).off('mouseup',J.stop);\n\t}\n};\nvar J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,\ni=function(e,h,k,aR){\n\treturn e.each(function(){\n\t\th=(h)?$(h,e):e;\n\t\th.on('mousedown',{e:e,k:k},function(v){\n\t\t\tvar d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;\n\t\t\t// attempt utilization of dimensions plugin to fix IE issues\n\t\t\tif(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}\n\t\t\tM={\n\t\t\t\tX:p.left||f('left')||0,\n\t\t\t\tY:p.top||f('top')||0,\n\t\t\t\tW:f('width')||E[0].scrollWidth||0,\n\t\t\t\tH:f('height')||E[0].scrollHeight||0,\n\t\t\t\tpX:v.pageX,\n\t\t\t\tpY:v.pageY,\n\t\t\t\tk:d.k\n\t\t\t\t//o:E.css('opacity')\n\t\t\t};\n\t\t\t// also resize\n\t\t\tif(E1 && d.k != 'd'){\n\t\t\t\tM1={\n\t\t\t\t\tX:p.left||f1('left')||0,\n\t\t\t\t\tY:p.top||f1('top')||0,\n\t\t\t\t\tW:E1[0].offsetWidth||f1('width')||0,\n\t\t\t\t\tH:E1[0].offsetHeight||f1('height')||0,\n\t\t\t\t\tpX:v.pageX,\n\t\t\t\t\tpY:v.pageY,\n\t\t\t\t\tk:d.k\n\t\t\t\t};\n\t\t\t} else {M1 = false;}\t\t\t\n\t\t\t//E.css({opacity:0.8});\n\t\t\tif($(\"input.hasDatepicker\",E[0])[0]) {\n\t\t\ttry {$(\"input.hasDatepicker\",E[0]).datepicker('hide');}catch (dpe){}\n\t\t\t}\n\t\t\t$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);\n\t\t\treturn false;\n\t\t});\n\t});\n},\nf=function(k){return parseInt(E.css(k),10)||false;},\nf1=function(k){return parseInt(E1.css(k),10)||false;};\n/*\n\tjQuery tinyDraggable v1.0.2\n    Copyright (c) 2014 Simon Steinberger / Pixabay\n    GitHub: https://github.com/Pixabay/jQuery-tinyDraggable\n    More info: https://pixabay.com/blog/posts/p-52/\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n$.fn.tinyDraggable = function(options){\n\tvar settings = $.extend({ handle: 0, exclude: 0 }, options);\n\treturn this.each(function(){\n\t    var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el;\n        handle.on({\n        mousedown: function(e){\n\t\t\tif (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; }\n\t\t\te.preventDefault();\n\t\t\tvar os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top;\n\t\t\t$(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); });\n\t\t\t},\n\t\t\tmouseup: function(e){ $(document).off('mousemove.drag'); }\n\t\t});\n\t});\n};\n//module end\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jqModal.js",
    "content": "/*\n * jqModal - Minimalist Modaling with jQuery\n *   (http://dev.iceburg.net/jquery/jqmodal/)\n *\n * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>\n * Dual licensed under the MIT and GPL licenses:\n *   http://www.opensource.org/licenses/mit-license.php\n *   http://www.gnu.org/licenses/gpl.html\n * \n * $Version: 07/06/2008 +r13\n */\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} (function( $ ) {\n\"use strict\";\n//module begin\n$.fn.jqm=function(o){\nvar p={\noverlay: 50,\ncloseoverlay : true,\noverlayClass: 'jqmOverlay',\ncloseClass: 'jqmClose',\ntrigger: '.jqModal',\najax: F,\najaxText: '',\ntarget: F,\nmodal: F,\ntoTop: F,\nonShow: F,\nonHide: F,\nonLoad: F\n};\nreturn this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s;\nH[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};\nif(p.trigger){$(this).jqmAddTrigger(p.trigger);}\n});};\n\n$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};\n$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};\n$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};\n$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});};\n\n$.jqm = {\nhash:{},\nopen:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z);\n if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);}\n else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}}\n else {o=F;}\n\n h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;\n\n if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u;\n  r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});}\n else if(cc){h.w.jqmAddClose($(cc,h.w));}\n\n if(c.toTop&&h.o){h.w.before('<span id=\"jqmP'+h.w[0]._jqm+'\"></span>').insertAfter(h.o);}\n (c.onShow)?c.onShow(h):h.w.show();e(h);return F;\n},\nclose:function(s){var h=H[s];if(!h.a){return F;}h.a=F;\n if(A[0]){A.pop();if(!A[0]){new L('unbind');}}\n if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();}\n if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F;\n},\nparams:{}};\nvar s=0,H=$.jqm.hash,A=[],F=false,\ne=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} },\nf=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus();\t}catch(_){}},\nL=function(t){$(document)[t](\"keypress\",m)[t](\"keydown\",m)[t](\"mousedown\",m);},\nm=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width()){r=false;return false;}});f(h);}return !r;},\nhs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {\n if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});}\n this[c].push(s);});});};\n//module end\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jquery.fmatter.js",
    "content": "/*\n**\n * formatter for values but most of the values if for jqGrid\n * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion\n * we are trying to keep it as light as possible\n * Joshua Burnett josh@9ci.com\t\n * http://www.greenbill.com\n *\n * Changes from Tony Tomov tony@trirand.com\n * Dual licensed under the MIT and GPL licenses:\n * http://www.opensource.org/licenses/mit-license.php\n * http://www.gnu.org/licenses/gpl-2.0.html\n * \n**/\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\",\n\t\t\t\"./grid.base\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n\t$.fmatter = {};\n\t//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column\n\t//example {id:1234,}\n\t$.extend($.fmatter,{\n\t\tisBoolean : function(o) {\n\t\t\treturn typeof o === 'boolean';\n\t\t},\n\t\tisObject : function(o) {\n\t\t\treturn (o && (typeof o === 'object' || $.isFunction(o))) || false;\n\t\t},\n\t\tisString : function(o) {\n\t\t\treturn typeof o === 'string';\n\t\t},\n\t\tisNumber : function(o) {\n\t\t\treturn typeof o === 'number' && isFinite(o);\n\t\t},\n\t\tisValue : function (o) {\n\t\t\treturn (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));\n\t\t},\n\t\tisEmpty : function(o) {\n\t\t\tif(!this.isString(o) && this.isValue(o)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!this.isValue(o)){\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\to = $.trim(o).replace(/\\&nbsp\\;/ig,'').replace(/\\&#160\\;/ig,'');\n\t\t\treturn o===\"\";\t\n\t\t}\n\t});\n\t$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {\n\t\t// build main options before element iteration\n\t\tvar v=cellval;\n\t\topts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts);\n\n\t\ttry {\n\t\t\tv = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);\n\t\t} catch(fe){}\n\t\treturn v;\n\t};\n\t$.fmatter.util = {\n\t\t// Taken from YAHOO utils\n\t\tNumberFormat : function(nData,opts) {\n\t\t\tif(!$.fmatter.isNumber(nData)) {\n\t\t\t\tnData *= 1;\n\t\t\t}\n\t\t\tif($.fmatter.isNumber(nData)) {\n\t\t\t\tvar bNegative = (nData < 0);\n\t\t\t\tvar sOutput = String(nData);\n\t\t\t\tvar sDecimalSeparator = opts.decimalSeparator || \".\";\n\t\t\t\tvar nDotIndex;\n\t\t\t\tif($.fmatter.isNumber(opts.decimalPlaces)) {\n\t\t\t\t\t// Round to the correct decimal place\n\t\t\t\t\tvar nDecimalPlaces = opts.decimalPlaces;\n\t\t\t\t\tvar nDecimal = Math.pow(10, nDecimalPlaces);\n\t\t\t\t\tsOutput = String(Math.round(nData*nDecimal)/nDecimal);\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(\".\");\n\t\t\t\t\tif(nDecimalPlaces > 0) {\n\t\t\t\t\t// Add the decimal separator\n\t\t\t\t\t\tif(nDotIndex < 0) {\n\t\t\t\t\t\t\tsOutput += sDecimalSeparator;\n\t\t\t\t\t\t\tnDotIndex = sOutput.length-1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Replace the \".\"\n\t\t\t\t\t\telse if(sDecimalSeparator !== \".\"){\n\t\t\t\t\t\t\tsOutput = sOutput.replace(\".\",sDecimalSeparator);\n\t\t\t\t\t\t}\n\t\t\t\t\t// Add missing zeros\n\t\t\t\t\t\twhile((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {\n\t\t\t\t\t\t\tsOutput += \"0\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(opts.thousandsSeparator) {\n\t\t\t\t\tvar sThousandsSeparator = opts.thousandsSeparator;\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(sDecimalSeparator);\n\t\t\t\t\tnDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;\n\t\t\t\t\tvar sNewOutput = sOutput.substring(nDotIndex);\n\t\t\t\t\tvar nCount = -1, i;\n\t\t\t\t\tfor (i=nDotIndex; i>0; i--) {\n\t\t\t\t\t\tnCount++;\n\t\t\t\t\t\tif ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {\n\t\t\t\t\t\t\tsNewOutput = sThousandsSeparator + sNewOutput;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsNewOutput = sOutput.charAt(i-1) + sNewOutput;\n\t\t\t\t\t}\n\t\t\t\t\tsOutput = sNewOutput;\n\t\t\t\t}\n\t\t\t\t// Prepend prefix\n\t\t\t\tsOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;\n\t\t\t\t// Append suffix\n\t\t\t\tsOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;\n\t\t\t\treturn sOutput;\n\t\t\t\t\n\t\t\t}\n\t\t\treturn nData;\n\t\t}\n\t};\n\t$.fn.fmatter.defaultFormat = function(cellval, opts) {\n\t\treturn ($.fmatter.isValue(cellval) && cellval!==\"\" ) ?  cellval : opts.defaultValue || \"&#160;\";\n\t};\n\t$.fn.fmatter.email = function(cellval, opts) {\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a href=\\\"mailto:\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts );\n\t};\n\t$.fn.fmatter.checkbox =function(cval, opts) {\n\t\tvar op = $.extend({},opts.checkbox), ds;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.disabled===true) {ds = \"disabled=\\\"disabled\\\"\";} else {ds=\"\";}\n\t\tif($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}\n\t\tcval=String(cval);\n\t\tcval=(cval+\"\").toLowerCase();\n\t\tvar bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? \" checked='checked' \" : \"\";\n\t\treturn \"<input type=\\\"checkbox\\\" \" + bchk  + \" value=\\\"\"+ cval+\"\\\" offval=\\\"no\\\" \"+ds+ \"/>\";\n\t};\n\t$.fn.fmatter.link = function(cellval, opts) {\n\t\tvar op = {target:opts.target};\n\t\tvar target = \"\";\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.showlink = function(cellval, opts) {\n\t\tvar op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || \"\", target: opts.target, idName: opts.idName},\n\t\ttarget = \"\", idUrl;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tidUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;\n\t\tif($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) {\t//add this one even if its blank string\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + idUrl + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.integer = function(cellval, opts) {\n\t\tvar op = $.extend({},opts.integer);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.number = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.number);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.currency = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.currency);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.date = function (cellval, opts, rwd, act) {\n\t\tvar op = $.extend({},opts.date);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(!op.reformatAfterEdit && act === 'edit'){\n\t\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t\t}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n\t$.fn.fmatter.select = function (cellval,opts) {\n\t\t// jqGrid specific\n\t\tcellval = String(cellval);\n\t\tvar oSelect = false, ret=[], sep, delim;\n\t\tif(opts.colModel.formatoptions !== undefined){\n\t\t\toSelect= opts.colModel.formatoptions.value;\n\t\t\tsep = opts.colModel.formatoptions.separator === undefined ? \":\" : opts.colModel.formatoptions.separator;\n\t\t\tdelim = opts.colModel.formatoptions.delimiter === undefined ? \";\" : opts.colModel.formatoptions.delimiter;\n\t\t} else if(opts.colModel.editoptions !== undefined){\n\t\t\toSelect= opts.colModel.editoptions.value;\n\t\t\tsep = opts.colModel.editoptions.separator === undefined ? \":\" : opts.colModel.editoptions.separator;\n\t\t\tdelim = opts.colModel.editoptions.delimiter === undefined ? \";\" : opts.colModel.editoptions.delimiter;\n\t\t}\n\t\tif (oSelect) {\n\t\t\tvar\tmsl =  (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cellval.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\t// mybe here we can use some caching with care ????\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray(sv[0],scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[1];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[0]) === $.trim(cellval)) {\n\t\t\t\t\t\tret[0] = sv[1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect)) {\n\t\t\t\t// this is quicker\n\t\t\t\tif(msl) {\n\t\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\t\treturn oSelect[n];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tret[0] = oSelect[cellval] || \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcellval = ret.join(\", \");\n\t\treturn  cellval === \"\" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;\n\t};\n\t$.fn.fmatter.rowactions = function(act) {\n\t\tvar $tr = $(this).closest(\"tr.jqgrow\"),\n\t\t\trid = $tr.attr(\"id\"),\n\t\t\t$id = $(this).closest(\"table.ui-jqgrid-btable\").attr('id').replace(/_frozen([^_]*)$/,'$1'),\n\t\t\t$grid = $(\"#\"+$id),\n\t\t\t$t = $grid[0],\n\t\t\tp = $t.p,\n\t\t\tcm = p.colModel[$.jgrid.getCellIndex(this)],\n\t\t\t$actionsDiv = cm.frozen ? $(\"tr#\"+rid+\" td:eq(\"+$.jgrid.getCellIndex(this)+\") > div\",$grid) :$(this).parent(),\n\t\t\top = {\n\t\t\t\textraparam: {}\n\t\t\t},\n\t\t\tsaverow = function(rowid, res) {\n\t\t\t\tif($.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t},\n\t\t\trestorerow = function(rowid) {\n\t\t\t\tif($.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t};\n\n\t\tif (cm.formatoptions !== undefined) {\n\t\t\top = $.extend(op,cm.formatoptions);\n\t\t}\n\t\tif (p.editOptions !== undefined) {\n\t\t\top.editOptions = p.editOptions;\n\t\t}\n\t\tif (p.delOptions !== undefined) {\n\t\t\top.delOptions = p.delOptions;\n\t\t}\n\t\tif ($tr.hasClass(\"jqgrid-new-row\")){\n\t\t\top.extraparam[p.prmNames.oper] = p.prmNames.addoper;\n\t\t}\n\t\tvar actop = {\n\t\t\tkeys: op.keys,\n\t\t\toneditfunc: op.onEdit,\n\t\t\tsuccessfunc: op.onSuccess,\n\t\t\turl: op.url,\n\t\t\textraparam: op.extraparam,\n\t\t\taftersavefunc: saverow,\n\t\t\terrorfunc: op.onError,\n\t\t\tafterrestorefunc: restorerow,\n\t\t\trestoreAfterError: op.restoreAfterError,\n\t\t\tmtype: op.mtype\n\t\t};\n\t\tswitch(act)\n\t\t{\n\t\t\tcase 'edit':\n\t\t\t\t$grid.jqGrid('editRow', rid, actop);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").hide();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").show();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'save':\n\t\t\t\tif ($grid.jqGrid('saveRow', rid, actop)) {\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'cancel' :\n\t\t\t\t$grid.jqGrid('restoreRow', rid, restorerow);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'del':\n\t\t\t\t$grid.jqGrid('delGridRow', rid, op.delOptions);\n\t\t\t\tbreak;\n\t\t\tcase 'formedit':\n\t\t\t\t$grid.jqGrid('setSelection', rid);\n\t\t\t\t$grid.jqGrid('editGridRow', rid, op.editOptions);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\t$.fn.fmatter.actions = function(cellval,opts) {\n\t\tvar op={keys:false, editbutton:true, delbutton:true, editformbutton: false},\n\t\t\trowid=opts.rowId, str=\"\",ocl,\n\t\t\tnav = $.jgrid.getRegional(this, 'nav'),\n\t\t\tclasses = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter,\n\t\t\tcommon = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common;\n\t\tif(opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend(op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(rowid === undefined || $.fmatter.isEmpty(rowid)) {return \"\";}\n\t\tvar hover = \"onmouseover=jQuery(this).addClass('\" + common.hover +\"'); onmouseout=jQuery(this).removeClass('\" + common.hover +\"');  \";\n\t\tif(op.editformbutton){ \n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t} else if(op.editbutton){\n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t}\n\t\tif(op.delbutton) {\n\t\t\tocl = \"id='jDeleteButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.deltitle+\"' style='float:left;' class='ui-pg-div ui-inline-del' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_del +\"'></span></div>\";\n\t\t}\n\t\tocl = \"id='jSaveButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); \" + hover;\n\t\tstr += \"<div title='\"+nav.savetitle+\"' style='float:left;display:none' class='ui-pg-div ui-inline-save' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_save +\"'></span></div>\";\n\t\tocl = \"id='jCancelButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); \" + hover;\n\t\tstr += \"<div title='\"+nav.canceltitle+\"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_cancel +\"'></span></div>\";\n\t\treturn \"<div style='margin-left:8px;'>\" + str + \"</div>\";\n\t};\n\t$.unformat = function (cellval,options,pos,cnt) {\n\t\t// specific for jqGrid only\n\t\tvar ret, formatType = options.colModel.formatter,\n\t\top =options.colModel.formatoptions || {}, sep,\n\t\tre = /([\\.\\*\\_\\'\\(\\)\\{\\}\\+\\?\\\\])/g,\n\t\tunformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);\n\t\tif(unformatFunc !== undefined && $.isFunction(unformatFunc) ) {\n\t\t\tret = unformatFunc.call(this, $(cellval).text(), options, cellval);\n\t\t} else if(formatType !== undefined && $.fmatter.isString(formatType) ) {\n\t\t\tvar opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag;\n\t\t\tswitch(formatType) {\n\t\t\t\tcase 'integer' :\n\t\t\t\t\top = $.extend({},opts.integer,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,'');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'number' :\n\t\t\t\t\top = $.extend({},opts.number,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,\"\").replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'currency':\n\t\t\t\t\top = $.extend({},opts.currency,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text();\n\t\t\t\t\tif (op.prefix && op.prefix.length) {\n\t\t\t\t\t\tret = ret.substr(op.prefix.length);\n\t\t\t\t\t}\n\t\t\t\t\tif (op.suffix && op.suffix.length) {\n\t\t\t\t\t\tret = ret.substr(0, ret.length - op.suffix.length);\n\t\t\t\t\t}\n\t\t\t\t\tret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\tvar cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(\":\") : [\"Yes\",\"No\"];\n\t\t\t\t\tret = $('input',cellval).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select' :\n\t\t\t\t\tret = $.unformat.select(cellval,options,pos,cnt);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'actions':\n\t\t\t\t\treturn \"\";\n\t\t\t\tdefault:\n\t\t\t\t\tret= $(cellval).text();\n\t\t\t}\n\t\t}\n\t\treturn ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());\n\t};\n\t$.unformat.select = function (cellval,options,pos,cnt) {\n\t\t// Spacial case when we have local data and perform a sort\n\t\t// cnt is set to true only in sortDataArray\n\t\tvar ret = [];\n\t\tvar cell = $(cellval).text();\n\t\tif(cnt===true) {return cell;}\n\t\tvar op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions),\n\t\tsep = op.separator === undefined ? \":\" : op.separator,\n\t\tdelim = op.delimiter === undefined ? \";\" : op.delimiter;\n\t\t\n\t\tif(op.value){\n\t\t\tvar oSelect = op.value,\n\t\t\tmsl =  op.multiple === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cell.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray($.trim(sv[1]),scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[0];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[1]) === $.trim(cell)) {\n\t\t\t\t\t\tret[0] = sv[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect) || $.isArray(oSelect) ){\n\t\t\t\tif(!msl) {scell[0] =  cell;}\n\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\tvar rv;\n\t\t\t\t\t$.each(oSelect, function(i,val){\n\t\t\t\t\t\tif (val === n) {\n\t\t\t\t\t\t\trv = i;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif( rv !== undefined ) {return rv;}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ret.join(\", \");\n\t\t}\n\t\treturn cell || \"\";\n\t};\n\t$.unformat.date = function (cellval, opts) {\n\t\tvar op = $.jgrid.getRegional(this, 'formatter.date') || {};\n\t\tif(opts.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.formatoptions);\n\t\t}\t\t\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n//module end\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jquery.jqGrid.js",
    "content": "/**\n*\n* @license Guriddo jqGrid JS - v5.2.0 - 2016-11-21\n* Copyright(c) 2008, Tony Tomov, tony@trirand.com\n* \n* License: http://guriddo.net/?page_id=103334\n*/\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \n\t\t\t\"jquery\"\n\t\t], factory );\n \t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n \t}\n}(function( $ ) {\n\"use strict\";\n//module begin\n$.jgrid = $.jgrid || {};\nif(!$.jgrid.hasOwnProperty(\"defaults\")) {\n\t$.jgrid.defaults = {};\n}\n$.extend($.jgrid,{\n\tversion : \"5.2.0\",\n\thtmlDecode : function(value){\n\t\tif(value && (value==='&nbsp;' || value==='&#160;' || (value.length===1 && value.charCodeAt(0)===160))) { return \"\";}\n\t\treturn !value ? value : String(value).replace(/&gt;/g, \">\").replace(/&lt;/g, \"<\").replace(/&quot;/g, '\"').replace(/&amp;/g, \"&\");\t\t\n\t},\n\thtmlEncode : function (value){\n\t\treturn !value ? value : String(value).replace(/&/g, \"&amp;\").replace(/\\\"/g, \"&quot;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n\t},\n\ttemplate : function(format){ //jqgformat\n\t\tvar args = $.makeArray(arguments).slice(1), j, al = args.length;\n\t\tif(format==null) { format = \"\"; }\n\t\treturn format.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\tif(!isNaN(parseInt(i,10))) {\n\t\t\t\treturn args[parseInt(i,10)];\n\t\t\t}\n\t\t\tfor(j=0; j < al;j++) {\n\t\t\t\tif($.isArray(args[j])) {\n\t\t\t\t\tvar nmarr = args[ j ],\n\t\t\t\t\tk = nmarr.length;\n\t\t\t\t\twhile(k--) {\n\t\t\t\t\t\tif(i===nmarr[k].nm) {\n\t\t\t\t\t\t\treturn nmarr[k].v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}, \n\tmsie : function () {\n\t\treturn $.jgrid.msiever() > 0;\n\t},\n\tmsiever : function () {\n\t\tvar rv =0,\n\t\tsAgent = window.navigator.userAgent,\n\t\tIdx = sAgent.indexOf(\"MSIE\");\n\n\t\tif (Idx > 0)  {\n\t\t\trv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(\".\", Idx)));\n\t\t} else if ( !!navigator.userAgent.match(/Trident\\/7\\./) ) {\n\t\t\trv = 11;\n\t\t}\n\t\treturn rv;\n\t},\n\tgetCellIndex : function (cell) {\n\t\tvar c = $(cell);\n\t\tif (c.is('tr')) { return -1; }\n\t\tc = (!c.is('td') && !c.is('th') ? c.closest(\"td,th\") : c)[0];\n\t\tif ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); }\n\t\treturn c.cellIndex;\n\t},\n\tstripHtml : function(v) {\n\t\tv = String(v);\n\t\tvar regexp = /<(\"[^\"]*\"|'[^']*'|[^'\">])*>/gi;\n\t\tif (v) {\n\t\t\tv = v.replace(regexp,\"\");\n\t\t\treturn (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\\\"/g,\"'\") : \"\";\n\t\t} \n\t\t\treturn v;\n\t},\n\tstripPref : function (pref, id) {\n\t\tvar obj = $.type( pref );\n\t\tif( obj === \"string\" || obj === \"number\") {\n\t\t\tpref =  String(pref);\n\t\t\tid = pref !== \"\" ? String(id).replace(String(pref), \"\") : id;\n\t\t}\n\t\treturn id;\n\t},\n\tuseJSON : true,\n\tparse : function(jsonString) {\n\t\tvar js = jsonString;\n\t\tif (js.substr(0,9) === \"while(1);\") { js = js.substr(9); }\n\t\tif (js.substr(0,2) === \"/*\") { js = js.substr(2,js.length-4); }\n\t\tif(!js) { js = \"{}\"; }\n\t\treturn ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ?\n\t\t\tJSON.parse(js) :\n\t\t\teval('(' + js + ')');\n\t},\n\tparseDate : function(format, date, newformat, opts) {\n\t\tvar\ttoken = /\\\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,\n\t\ttimezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\n\t\ttimezoneClip = /[^-+\\dA-Z]/g,\n\t\tmsDateRegExp = new RegExp(\"^\\/Date\\\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\\\)\\/$\"),\n\t\tmsMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null),\n\t\tpad = function (value, length) {\n\t\t\tvalue = String(value);\n\t\t\tlength = parseInt(length,10) || 2;\n\t\t\twhile (value.length < length)  { value = '0' + value; }\n\t\t\treturn value;\n\t\t},\n\t\tts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},\n\t\ttimestamp=0, dM, k,hl,\n\t\th12to24 = function(ampm, h){\n\t\t\tif (ampm === 0){ if (h === 12) { h = 0;} }\n\t\t\telse { if (h !== 12) { h += 12; } }\n\t\t\treturn h;\n\t\t},\n\t\toffset =0;\n\t\tif(opts === undefined) {\n\t\t\topts = $.jgrid.getRegional(this, \"formatter.date\");//$.jgrid.formatter.date;\n\t\t}\n\t\t// old lang files\n\t\tif(opts.parseRe === undefined ) {\n\t\t\topts.parseRe = /[#%\\\\\\/:_;.,\\t\\s-]/;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; }\n\t\tif(date && date != null) {\n\t\t\tif( !isNaN( date - 0 ) && String(format).toLowerCase() === \"u\") {\n\t\t\t\t//Unix timestamp\n\t\t\t\ttimestamp = new Date( parseFloat(date)*1000 );\n\t\t\t} else if(date.constructor === Date) {\n\t\t\t\ttimestamp = date;\n\t\t\t\t// Microsoft date format support\n\t\t\t} else if( msMatch !== null ) {\n\t\t\t\ttimestamp = new Date(parseInt(msMatch[1], 10));\n\t\t\t\tif (msMatch[3]) {\n\t\t\t\t\toffset = Number(msMatch[5]) * 60 + Number(msMatch[6]);\n\t\t\t\t\toffset *= ((msMatch[4] === '-') ? 1 : -1);\n\t\t\t\t\toffset -= timestamp.getTimezoneOffset();\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//Support ISO8601Long that have Z at the end to indicate UTC timezone\n\t\t\t\tif(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') {\n\t\t\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\t\t}\n\t\t\t\tdate = String(date).replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\tformat = format.replace(/\\T/g,\"#\").replace(/\\t/,\"%\").split(opts.parseRe);\n\t\t\t\t// parsing for month names\n\t\t\t\tfor(k=0,hl=format.length;k<hl;k++){\n\t\t\t\t\tswitch ( format[k] ) {\n\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'F':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.monthNames,12);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tformat[k] = 'm';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'j': \n\t\t\t\t\t\t\tformat[k] = 'd';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'a':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'A':\n\t\t\t\t\t\t\tdM = $.inArray(date[k],opts.AmPm);\n\t\t\t\t\t\t\tif(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){\n\t\t\t\t\t\t\t\tdate[k] = dM-2;\n\t\t\t\t\t\t\t\tts.h = h12to24(date[k], ts.h);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'g':\n\t\t\t\t\t\t\tts.h = parseInt(date[k], 10);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(date[k] !== undefined) {\n\t\t\t\t\t\tts[format[k].toLowerCase()] = parseInt(date[k],10);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.f) {ts.m = ts.f;}\n\t\t\t\tif( ts.m === 0 && ts.y === 0 && ts.d === 0) {\n\t\t\t\t\treturn \"&#160;\" ;\n\t\t\t\t}\n\t\t\t\tts.m = parseInt(ts.m,10)-1;\n\t\t\t\tvar ty = ts.y;\n\t\t\t\tif (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;}\n\t\t\t\telse if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;}\n\t\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t\t\t//Apply offset to show date as local time.\n\t\t\t\tif(offset > 0) {\n\t\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\ttimestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);\n\t\t}\n\t\tif(opts.userLocalTime && offset === 0) {\n\t\t\toffset -= (new Date()).getTimezoneOffset();\n\t\t\tif( offset > 0 ) {\n\t\t\t\ttimestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));\n\t\t\t}\n\t\t}\n\t\tif( newformat === undefined ) {\n\t\t\treturn timestamp;\n\t\t}\n\t\tif( opts.masks.hasOwnProperty(newformat) )  {\n\t\t\tnewformat = opts.masks[newformat];\n\t\t} else if ( !newformat ) {\n\t\t\tnewformat = 'Y-m-d';\n\t\t}\n\t\tvar \n\t\t\tG = timestamp.getHours(),\n\t\t\ti = timestamp.getMinutes(),\n\t\t\tj = timestamp.getDate(),\n\t\t\tn = timestamp.getMonth() + 1,\n\t\t\to = timestamp.getTimezoneOffset(),\n\t\t\ts = timestamp.getSeconds(),\n\t\t\tu = timestamp.getMilliseconds(),\n\t\t\tw = timestamp.getDay(),\n\t\t\tY = timestamp.getFullYear(),\n\t\t\tN = (w + 6) % 7 + 1,\n\t\t\tz = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,\n\t\t\tflags = {\n\t\t\t\t// Day\n\t\t\t\td: pad(j),\n\t\t\t\tD: opts.dayNames[w],\n\t\t\t\tj: j,\n\t\t\t\tl: opts.dayNames[w + 7],\n\t\t\t\tN: N,\n\t\t\t\tS: opts.S(j),\n\t\t\t\t//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',\n\t\t\t\tw: w,\n\t\t\t\tz: z,\n\t\t\t\t// Week\n\t\t\t\tW: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),\n\t\t\t\t// Month\n\t\t\t\tF: opts.monthNames[n - 1 + 12],\n\t\t\t\tm: pad(n),\n\t\t\t\tM: opts.monthNames[n - 1],\n\t\t\t\tn: n,\n\t\t\t\tt: '?',\n\t\t\t\t// Year\n\t\t\t\tL: '?',\n\t\t\t\to: '?',\n\t\t\t\tY: Y,\n\t\t\t\ty: String(Y).substring(2),\n\t\t\t\t// Time\n\t\t\t\ta: G < 12 ? opts.AmPm[0] : opts.AmPm[1],\n\t\t\t\tA: G < 12 ? opts.AmPm[2] : opts.AmPm[3],\n\t\t\t\tB: '?',\n\t\t\t\tg: G % 12 || 12,\n\t\t\t\tG: G,\n\t\t\t\th: pad(G % 12 || 12),\n\t\t\t\tH: pad(G),\n\t\t\t\ti: pad(i),\n\t\t\t\ts: pad(s),\n\t\t\t\tu: u,\n\t\t\t\t// Timezone\n\t\t\t\te: '?',\n\t\t\t\tI: '?',\n\t\t\t\tO: (o > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\n\t\t\t\tP: '?',\n\t\t\t\tT: (String(timestamp).match(timezone) || [\"\"]).pop().replace(timezoneClip, \"\"),\n\t\t\t\tZ: '?',\n\t\t\t\t// Full Date/Time\n\t\t\t\tc: '?',\n\t\t\t\tr: '?',\n\t\t\t\tU: Math.floor(timestamp / 1000)\n\t\t\t};\n\t\treturn newformat.replace(token, function ($0) {\n\t\t\treturn flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1);\n\t\t});\n\t},\n\tjqID : function(sid){\n\t\treturn String(sid).replace(/[!\"#$%&'()*+,.\\/:; <=>?@\\[\\\\\\]\\^`{|}~]/g,\"\\\\$&\");\n\t},\n\tguid : 1,\n\tuidPref: 'jqg',\n\trandId : function( prefix )\t{\n\t\treturn (prefix || $.jgrid.uidPref) + ($.jgrid.guid++);\n\t},\n\tgetAccessor : function(obj, expr) {\n\t\tvar ret,p,prm = [], i;\n\t\tif( typeof expr === 'function') { return expr(obj); }\n\t\tret = obj[expr];\n\t\tif(ret===undefined) {\n\t\t\ttry {\n\t\t\t\tif ( typeof expr === 'string' ) {\n\t\t\t\t\tprm = expr.split('.');\n\t\t\t\t}\n\t\t\t\ti = prm.length;\n\t\t\t\tif( i ) {\n\t\t\t\t\tret = obj;\n\t\t\t\t\twhile (ret && i--) {\n\t\t\t\t\t\tp = prm.shift();\n\t\t\t\t\t\tret = ret[p];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t\treturn ret;\n\t},\n\tgetXmlData: function (obj, expr, returnObj) {\n\t\tvar ret, m = typeof expr === 'string' ? expr.match(/^(.*)\\[(\\w+)\\]$/) : null;\n\t\tif (typeof expr === 'function') { return expr(obj); }\n\t\tif (m && m[2]) {\n\t\t\t// m[2] is the attribute selector\n\t\t\t// m[1] is an optional element selector\n\t\t\t// examples: \"[id]\", \"rows[page]\"\n\t\t\treturn m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]);\n\t\t}\n\t\t\tret = $(expr, obj);\n\t\t\tif (returnObj) { return ret; }\n\t\t\t//$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid\n\t\t\treturn ret.length > 0 ? $(ret).text() : undefined;\n\t},\n\tcellWidth : function () {\n\t\tvar $testDiv = $(\"<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>\"),\n\t\ttestCell = $testDiv.appendTo(\"body\")\n\t\t\t.find(\"td\")\n\t\t\t.width();\n\t\t$testDiv.remove();\n\t\treturn Math.abs(testCell-5) > 0.1;\n\t},\n\tisLocalStorage : function () {\n\t\ttry {\n\t\t\treturn 'localStorage' in window && window.localStorage !== null;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t},\n\tgetRegional : function(inst, param, def_val) {\n\t\tvar ret;\n\t\tif(def_val !== undefined) {\n\t\t\treturn def_val;\n\t\t}\n\t\tif(inst.p && inst.p.regional && $.jgrid.regional) {\n\t\t\t\tret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param);\n\t\t}\n\t\tif(ret === undefined ) {\n\t\t\tret = $.jgrid.getAccessor( $.jgrid, param);\n\t\t}\n\t\treturn ret;\n\t},\n\tisMobile : function() {\n\t\ttry {\n\t\t\tif(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t} catch(e)\t{ \n\t\t\treturn false; \n\t\t}\t\n\t},\n\tcell_width : true,\n\tajaxOptions: {},\n\tfrom : function(source){\n\t\t// Original Author Hugo Bonacci\n\t\t// License MIT http://jlinq.codeplex.com/license\n\t\tvar $t = this,\n\t\tQueryObject=function(d,q){\n\t\tif(typeof d===\"string\"){\n\t\t\td=$.data(d);\n\t\t}\n\t\tvar self=this,\n\t\t_data=d,\n\t\t_usecase=true,\n\t\t_trim=false,\n\t\t_query=q,\n\t\t_stripNum = /[\\$,%]/g,\n\t\t_lastCommand=null,\n\t\t_lastField=null,\n\t\t_orDepth=0,\n\t\t_negate=false,\n\t\t_queuedOperator=\"\",\n\t\t_sorting=[],\n\t\t_useProperties=true;\n\t\tif(typeof d===\"object\"&&d.push) {\n\t\t\tif(d.length>0){\n\t\t\t\tif(typeof d[0]!==\"object\"){\n\t\t\t\t\t_useProperties=false;\n\t\t\t\t}else{\n\t\t\t\t\t_useProperties=true;\n\t\t\t\t}\n\t\t\t}\n\t\t}else{\n\t\t\tthrow \"data provides is not an array\";\n\t\t}\n\t\tthis._hasData=function(){\n\t\t\treturn _data===null?false:_data.length===0?false:true;\n\t\t};\n\t\tthis._getStr=function(s){\n\t\t\tvar phrase=[];\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\"jQuery.trim(\");\n\t\t\t}\n\t\t\tphrase.push(\"String(\"+s+\")\");\n\t\t\tif(_trim){\n\t\t\t\tphrase.push(\")\");\n\t\t\t}\n\t\t\tif(!_usecase){\n\t\t\t\tphrase.push(\".toLowerCase()\");\n\t\t\t}\n\t\t\treturn phrase.join(\"\");\n\t\t};\n\t\tthis._strComp=function(val){\n\t\t\tif(typeof val===\"string\"){\n\t\t\t\treturn\".toString()\";\n\t\t\t}\n\t\t\treturn\"\";\n\t\t};\n\t\tthis._group=function(f,u){\n\t\t\treturn({field:f.toString(),unique:u,items:[]});\n\t\t};\n\t\tthis._toStr=function(phrase){\n\t\t\tif(_trim){\n\t\t\t\tphrase=$.trim(phrase);\n\t\t\t}\n\t\t\tphrase=phrase.toString().replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"');\n\t\t\treturn _usecase ? phrase : phrase.toLowerCase();\n\t\t};\n\t\tthis._funcLoop=function(func){\n\t\t\tvar results=[];\n\t\t\t$.each(_data,function(i,v){\n\t\t\t\tresults.push(func(v));\n\t\t\t});\n\t\t\treturn results;\n\t\t};\n\t\tthis._append=function(s){\n\t\t\tvar i;\n\t\t\tif(_query===null){\n\t\t\t\t_query=\"\";\n\t\t\t} else {\n\t\t\t\t_query+=_queuedOperator === \"\" ? \" && \" :_queuedOperator;\n\t\t\t}\n\t\t\tfor (i=0;i<_orDepth;i++){\n\t\t\t\t_query+=\"(\";\n\t\t\t}\n\t\t\tif(_negate){\n\t\t\t\t_query+=\"!\";\n\t\t\t}\n\t\t\t_query+=\"(\"+s+\")\";\n\t\t\t_negate=false;\n\t\t\t_queuedOperator=\"\";\n\t\t\t_orDepth=0;\n\t\t};\n\t\tthis._setCommand=function(f,c){\n\t\t\t_lastCommand=f;\n\t\t\t_lastField=c;\n\t\t};\n\t\tthis._resetNegate=function(){\n\t\t\t_negate=false;\n\t\t};\n\t\tthis._repeatCommand=function(f,v){\n\t\t\tif(_lastCommand===null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\tif(f!==null&&v!==null){\n\t\t\t\treturn _lastCommand(f,v);\n\t\t\t}\n\t\t\tif(_lastField===null){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\tif(!_useProperties){\n\t\t\t\treturn _lastCommand(f);\n\t\t\t}\n\t\t\treturn _lastCommand(_lastField,f);\n\t\t};\n\t\tthis._equals=function(a,b){\n\t\t\treturn(self._compare(a,b,1)===0);\n\t\t};\n\t\tthis._compare=function(a,b,d){\n\t\t\tvar toString = Object.prototype.toString;\n\t\t\tif( d === undefined) { d = 1; }\n\t\t\tif(a===undefined) { a = null; }\n\t\t\tif(b===undefined) { b = null; }\n\t\t\tif(a===null && b===null){\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(a===null&&b!==null){\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif(a!==null&&b===null){\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') {\n\t\t\t\tif (a < b) { return -d; }\n\t\t\t\tif (a > b) { return d; }\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif(!_usecase && typeof a !== \"number\" && typeof b !== \"number\" ) {\n\t\t\t\ta=String(a);\n\t\t\t\tb=String(b);\n\t\t\t}\n\t\t\tif(a<b){return -d;}\n\t\t\tif(a>b){return d;}\n\t\t\treturn 0;\n\t\t};\n\t\tthis._performSort=function(){\n\t\t\tif(_sorting.length===0){return;}\n\t\t\t_data=self._doSort(_data,0);\n\t\t};\n\t\tthis._doSort=function(d,q){\n\t\t\tvar by=_sorting[q].by,\n\t\t\tdir=_sorting[q].dir,\n\t\t\ttype = _sorting[q].type,\n\t\t\tdfmt = _sorting[q].datefmt,\n\t\t\tsfunc = _sorting[q].sfunc;\n\t\t\tif(q===_sorting.length-1){\n\t\t\t\treturn self._getOrder(d, by, dir, type, dfmt, sfunc);\n\t\t\t}\n\t\t\tq++;\n\t\t\tvar values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted;\n\t\t\tfor(i=0;i<values.length;i++){\n\t\t\t\tsorted=self._doSort(values[i].items,q);\n\t\t\t\tfor(j=0;j<sorted.length;j++){\n\t\t\t\t\tresults.push(sorted[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis._getOrder=function(data,by,dir,type, dfmt, sfunc){\n\t\t\tvar sortData=[],_sortData=[], newDir = dir===\"a\" ? 1 : -1, i,ab,j,\n\t\t\tfindSortKey;\n\n\t\t\tif(type === undefined ) { type = \"text\"; }\n\t\t\tif (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\tvar key = parseFloat( String($cell).replace(_stripNum, ''));\n\t\t\t\t\treturn isNaN(key) ? Number.NEGATIVE_INFINITY : key;\n\t\t\t\t};\n\t\t\t} else if (type==='int' || type==='integer') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY;\n\t\t\t\t};\n\t\t\t} else if(type === 'date' || type === 'datetime') {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\treturn $.jgrid.parseDate.call($t, dfmt, $cell).getTime();\n\t\t\t\t};\n\t\t\t} else if($.isFunction(type)) {\n\t\t\t\tfindSortKey = type;\n\t\t\t} else {\n\t\t\t\tfindSortKey = function($cell) {\n\t\t\t\t\t$cell = $cell ? $.trim(String($cell)) : \"\";\n\t\t\t\t\treturn _usecase ? $cell : $cell.toLowerCase();\n\t\t\t\t};\n\t\t\t}\n\t\t\t$.each(data,function(i,v){\n\t\t\t\tab = by!==\"\" ? $.jgrid.getAccessor(v,by) : v;\n\t\t\t\tif(ab === undefined) { ab = \"\"; }\n\t\t\t\tab = findSortKey(ab, v);\n\t\t\t\t_sortData.push({ 'vSort': ab,'index':i});\n\t\t\t});\n\t\t\tif($.isFunction(sfunc)) {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn sfunc.call(this,a.vSort, b.vSort, newDir, a, b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t_sortData.sort(function(a,b){\n\t\t\t\t\treturn self._compare(a.vSort, b.vSort,newDir);\n\t\t\t\t});\n\t\t\t}\n\t\t\tj=0;\n\t\t\tvar nrec= data.length;\n\t\t\t// overhead, but we do not change the original data.\n\t\t\twhile(j<nrec) {\n\t\t\t\ti = _sortData[j].index;\n\t\t\t\tsortData.push(data[i]);\n\t\t\t\tj++;\n\t\t\t}\n\t\t\treturn sortData;\n\t\t};\n\t\tthis._getGroup=function(data,by,dir,type, dfmt){\n\t\t\tvar results=[],\n\t\t\tgroup=null,\n\t\t\tlast=null, val;\n\t\t\t$.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){\n\t\t\t\tval = $.jgrid.getAccessor(v, by);\n\t\t\t\tif(val == null) { val = \"\"; }\n\t\t\t\tif(!self._equals(last,val)){\n\t\t\t\t\tlast=val;\n\t\t\t\t\tif(group !== null){\n\t\t\t\t\t\tresults.push(group);\n\t\t\t\t\t}\n\t\t\t\t\tgroup=self._group(by,val);\n\t\t\t\t}\n\t\t\t\tgroup.items.push(v);\n\t\t\t});\n\t\t\tif(group !== null){\n\t\t\t\tresults.push(group);\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\t\tthis.ignoreCase=function(){\n\t\t\t_usecase=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.useCase=function(){\n\t\t\t_usecase=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.trim=function(){\n\t\t\t_trim=true;\n\t\t\treturn self;\n\t\t};\n\t\tthis.noTrim=function(){\n\t\t\t_trim=false;\n\t\t\treturn self;\n\t\t};\n\t\tthis.execute=function(){\n\t\t\tvar match=_query, results=[];\n\t\t\tif(match === null){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\t$.each(_data,function(){\n\t\t\t\tif(eval(match)){results.push(this);}\n\t\t\t});\n\t\t\t_data=results;\n\t\t\treturn self;\n\t\t};\n\t\tthis.data=function(){\n\t\t\treturn _data;\n\t\t};\n\t\tthis.select=function(f){\n\t\t\tself._performSort();\n\t\t\tif(!self._hasData()){ return[]; }\n\t\t\tself.execute();\n\t\t\tif($.isFunction(f)){\n\t\t\t\tvar results=[];\n\t\t\t\t$.each(_data,function(i,v){\n\t\t\t\t\tresults.push(f(v));\n\t\t\t\t});\n\t\t\t\treturn results;\n\t\t\t}\n\t\t\treturn _data;\n\t\t};\n\t\tthis.hasMatch=function(){\n\t\t\tif(!self._hasData()) { return false; }\n\t\t\tself.execute();\n\t\t\treturn _data.length>0;\n\t\t};\n\t\tthis.andNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.and(f,v,x);\n\t\t};\n\t\tthis.orNot=function(f,v,x){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.or(f,v,x);\n\t\t};\n\t\tthis.not=function(f,v,x){\n\t\t\treturn self.andNot(f,v,x);\n\t\t};\n\t\tthis.and=function(f,v,x){\n\t\t\t_queuedOperator=\" && \";\n\t\t\tif(f===undefined){\n\t\t\t\treturn self;\n\t\t\t}\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.or=function(f,v,x){\n\t\t\t_queuedOperator=\" || \";\n\t\t\tif(f===undefined) { return self; }\n\t\t\treturn self._repeatCommand(f,v,x);\n\t\t};\n\t\tthis.orBegin=function(){\n\t\t\t_orDepth++;\n\t\t\treturn self;\n\t\t};\n\t\tthis.orEnd=function(){\n\t\t\tif (_query !== null){\n\t\t\t\t_query+=\")\";\n\t\t\t}\n\t\t\treturn self;\n\t\t};\n\t\tthis.isNot=function(f){\n\t\t\t_negate=!_negate;\n\t\t\treturn self.is(f);\n\t\t};\n\t\tthis.is=function(f){\n\t\t\tself._append('this.'+f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis._compareValues=function(func,f,v,how,t){\n\t\t\tvar fld;\n\t\t\tif(_useProperties){\n\t\t\t\tfld='jQuery.jgrid.getAccessor(this,\\''+f+'\\')';\n\t\t\t}else{\n\t\t\t\tfld='this';\n\t\t\t}\n\t\t\tif(v===undefined) { v = null; }\n\t\t\t//var val=v===null?f:v,\n\t\t\tvar val =v,\n\t\t\tswst = t.stype === undefined ? \"text\" : t.stype;\n\t\t\tif(v !== null) {\n\t\t\tswitch(swst) {\n\t\t\t\tcase 'int':\n\t\t\t\tcase 'integer':\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseInt('+fld+',10)';\n\t\t\t\t\tval = 'parseInt('+val+',10)';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'float':\n\t\t\t\tcase 'number':\n\t\t\t\tcase 'numeric':\n\t\t\t\t\tval = String(val).replace(_stripNum, '');\n\t\t\t\t\tval = (isNaN(Number(val)) || val===\"\") ? '0' : val; // To be fixed with more inteligent code\n\t\t\t\t\tfld = 'parseFloat('+fld+')';\n\t\t\t\t\tval = 'parseFloat('+val+')';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'date':\n\t\t\t\tcase 'datetime':\n\t\t\t\t\tval = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime());\n\t\t\t\t\tfld = 'jQuery.jgrid.parseDate.call(jQuery(\"#'+$.jgrid.jqID($t.p.id)+'\")[0],\"'+t.srcfmt+'\",'+fld+').getTime()';\n\t\t\t\t\tbreak;\n\t\t\t\tdefault :\n\t\t\t\t\tfld=self._getStr(fld);\n\t\t\t\t\tval=self._getStr('\"'+self._toStr(val)+'\"');\n\t\t\t}\n\t\t\t}\n\t\t\tself._append(fld+' '+how+' '+val);\n\t\t\tself._setCommand(func,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.equals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"==\",t);\n\t\t};\n\t\tthis.notEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,v,\"!==\",t);\n\t\t};\n\t\tthis.isNull = function(f,v,t){\n\t\t\treturn self._compareValues(self.equals,f,null,\"===\",t);\n\t\t};\n\t\tthis.greater=function(f,v,t){\n\t\t\treturn self._compareValues(self.greater,f,v,\">\",t);\n\t\t};\n\t\tthis.less=function(f,v,t){\n\t\t\treturn self._compareValues(self.less,f,v,\"<\",t);\n\t\t};\n\t\tthis.greaterOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.greaterOrEquals,f,v,\">=\",t);\n\t\t};\n\t\tthis.lessOrEquals=function(f,v,t){\n\t\t\treturn self._compareValues(self.lessOrEquals,f,v,\"<=\",t);\n\t\t};\n\t\tthis.startsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length : val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(v)+'\"'));\n\t\t\t}else{\n\t\t\t\tif (v!=null) { length=_trim?$.trim(v.toString()).length:v.toString().length; }\n\t\t\t\tself._append(self._getStr('this')+'.substr(0,'+length+') == '+self._getStr('\"'+self._toStr(f)+'\"'));\n\t\t\t}\n\t\t\tself._setCommand(self.startsWith,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.endsWith=function(f,v){\n\t\t\tvar val = (v==null) ? f: v,\n\t\t\tlength=_trim ? $.trim(val.toString()).length:val.toString().length;\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.length-'+length+','+length+') == \"'+self._toStr(v)+'\"');\n\t\t\t} else {\n\t\t\t\tself._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-\"'+self._toStr(f)+'\".length,\"'+self._toStr(f)+'\".length) == \"'+self._toStr(f)+'\"');\n\t\t\t}\n\t\t\tself._setCommand(self.endsWith,f);self._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.contains=function(f,v){\n\t\t\tif(_useProperties){\n\t\t\t\tself._append(self._getStr('jQuery.jgrid.getAccessor(this,\\''+f+'\\')')+'.indexOf(\"'+self._toStr(v)+'\",0) > -1');\n\t\t\t}else{\n\t\t\t\tself._append(self._getStr('this')+'.indexOf(\"'+self._toStr(f)+'\",0) > -1');\n\t\t\t}\n\t\t\tself._setCommand(self.contains,f);\n\t\t\tself._resetNegate();\n\t\t\treturn self;\n\t\t};\n\t\tthis.groupBy=function(by,dir,type, datefmt){\n\t\t\tif(!self._hasData()){\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn self._getGroup(_data,by,dir,type, datefmt);\n\t\t};\n\t\tthis.orderBy=function(by,dir,stype, dfmt, sfunc){\n\t\t\tdir = dir == null ? \"a\" :$.trim(dir.toString().toLowerCase());\n\t\t\tif(stype == null) { stype = \"text\"; }\n\t\t\tif(dfmt == null) { dfmt = \"Y-m-d\"; }\n\t\t\tif(sfunc == null) { sfunc = false; }\n\t\t\tif(dir===\"desc\"||dir===\"descending\"){dir=\"d\";}\n\t\t\tif(dir===\"asc\"||dir===\"ascending\"){dir=\"a\";}\n\t\t\t_sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc});\n\t\t\treturn self;\n\t\t};\n\t\treturn self;\n\t\t};\n\treturn new QueryObject(source,null);\n\t},\n\tgetMethod: function (name) {\n        return this.getAccessor($.fn.jqGrid, name);\n\t},\n\textend : function(methods) {\n\t\t$.extend($.fn.jqGrid,methods);\n\t\tif (!this.no_legacy_api) {\n\t\t\t$.fn.extend(methods);\n\t\t}\n\t},\n\tclearBeforeUnload : function( jqGridId ) {\n\t\tvar $t = $(\"#\"+$.jgrid.jqID( jqGridId ))[0], grid;\n\t\tif(!$t.grid) { return;}\n\t\tgrid = $t.grid;\n\t\tif ($.isFunction(grid.emptyRows)) {\n\t\t\tgrid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone\n\t\t}\n\n\t\t$(document).off(\"mouseup.jqGrid\" + $t.p.id ); \n\t\t$(grid.hDiv).off(\"mousemove\"); // TODO add namespace\n\t\t$($t).off();\n\t\tvar i, l = grid.headers.length,\n\t\tremovevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData'];\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tgrid.headers[i].el = null;\n\t\t}\n\n\t\tfor( i in grid) {\n\t\t\tif( grid.hasOwnProperty(i)) {\n\t\t\t\tgrid[i] = null;\n\t\t\t}\n\t\t}\n\t\t// experimental \n\t\tfor( i in $t.p) {\n\t\t\tif($t.p.hasOwnProperty(i)) {\n\t\t\t\t$t.p[i] = $.isArray($t.p[i]) ? [] : null;\n\t\t\t}\n\t\t}\n\t\tl = removevents.length;\n\t\tfor(i = 0; i < l; i++) {\n\t\t\tif($t.hasOwnProperty(removevents[i])) {\n\t\t\t\t$t[removevents[i]] = null;\n\t\t\t\tdelete($t[removevents[i]]);\n\t\t\t}\n\t\t}\n\t},\n\tgridUnload : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\t\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tvar defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')};\n\t\tif ($t.p.pager) {\n\t\t\t$($t.p.pager).off().empty().removeClass(\"ui-state-default ui-jqgrid-pager ui-corner-bottom\");\n\t\t}\n\t\tvar newtable = document.createElement('table');\n\t\tnewtable.className = defgrid.cl;\n\t\tvar gid = $.jgrid.jqID($t.id);\n\t\t$(newtable).removeClass(\"ui-jqgrid-btable ui-common-table\").insertBefore(\"#gbox_\"+gid);\n\t\tif( $($t.p.pager).parents(\"#gbox_\"+gid).length === 1 ) {\n\t\t\t$($t.p.pager).insertBefore(\"#gbox_\"+gid);\n\t\t}\n\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t$(\"#gbox_\"+gid).remove();\n\t\t$(newtable).attr({id:defgrid.id});\n\t\t$(\"#alertmod_\"+$.jgrid.jqID(jqGridId)).remove();\n\t},\n\tgridDestroy : function ( jqGridId ) {\n\t\tif(!jqGridId) { return; }\n\t\tjqGridId = $.trim(jqGridId);\n\t\tif(jqGridId.indexOf(\"#\") === 0) {\n\t\t\tjqGridId = jqGridId.substring(1);\n\t\t}\n\t\tvar $t = $(\"#\"+ $.jgrid.jqID(jqGridId))[0];\n\t\tif ( !$t.grid ) {return;}\n\t\tif ( $t.p.pager ) { // if not part of grid\n\t\t\t$($t.p.pager).remove();\n\t\t}\n\t\ttry {\n\t\t\t$.jgrid.clearBeforeUnload( jqGridId );\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(jqGridId)).remove();\n\t\t} catch (_) {}\n\t},\n\tstyleUI : {\n\t\tjQueryUI : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-state-disabled\",\n\t\t\t\thighlight : \"ui-state-highlight\",\n\t\t\t\thover : \"ui-state-hover\",\n\t\t\t\tcornerall: \"ui-corner-all\",\n\t\t\t\tcornertop: \"ui-corner-top\",\n\t\t\t\tcornerbottom : \"ui-corner-bottom\",\n\t\t\t\thidden : \"ui-helper-hidden\",\n\t\t\t\ticon_base : \"ui-icon\",\n\t\t\t\toverlay : \"ui-widget-overlay\",\n\t\t\t\tactive : \"ui-state-active\",\n\t\t\t\terror : \"ui-state-error\",\n\t\t\t\tbutton : \"ui-state-default ui-corner-all\",\n\t\t\t\tcontent : \"ui-widget-content\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"ui-widget ui-widget-content ui-corner-all\", // entrie div  incl everthing\n\t\t\t\tviewBox : \"\", // view diw\n\t\t\t\theaderTable : \"\",\n\t\t\t\theaderBox : \"ui-state-default\",\n\t\t\t\trowTable : \"\",\n\t\t\t\trowBox : \"ui-widget-content\",\n\t\t\t\tfooterTable : \"\",\n\t\t\t\tfooterBox : \"ui-widget-content\",\n\t\t\t\theaderDiv : \"ui-state-default\",\n\t\t\t\tgridtitleBox : \"ui-widget-header ui-corner-top ui-helper-clearfix\",\n\t\t\t\tcustomtoolbarBox : \"ui-state-default\",\n\t\t\t\t//overlayBox: \"ui-widget-overlay\",\n\t\t\t\tloadingBox : \"ui-state-default ui-state-active\",\n\t\t\t\trownumBox :  \"ui-state-default\",\n\t\t\t\tscrollBox : \"ui-widget-content\",\n\t\t\t\tmultiBox : \"\",\n\t\t\t\tpagerBox : \"ui-state-default ui-corner-bottom\",\n\t\t\t\tpagerTable : \"\",\n\t\t\t\ttoppagerBox : \"ui-state-default\",\n\t\t\t\tpgInput : \"ui-corner-all\",\n\t\t\t\tpgSelectBox : \"ui-widget-content ui-corner-all\",\n\t\t\t\tpgButtonBox : \"ui-corner-all\",\n\t\t\t\ticon_first : \"ui-icon-seek-first\",\n\t\t\t\ticon_prev : \"ui-icon-seek-prev\",\n\t\t\t\ticon_next: \"ui-icon-seek-next\",\n\t\t\t\ticon_end: \"ui-icon-seek-end\",\n\t\t\t\ticon_asc : \"ui-icon-triangle-1-n\",\n\t\t\t\ticon_desc : \"ui-icon-triangle-1-s\",\n\t\t\t\ticon_caption_open : \"ui-icon-circle-triangle-n\",\n\t\t\t\ticon_caption_close : \"ui-icon-circle-triangle-s\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"ui-widget ui-widget-content ui-corner-all ui-dialog\",\n\t\t\t\theader : \"ui-widget-header ui-corner-all ui-helper-clearfix\",\n\t\t\t\tcontent :\"ui-widget-content\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"ui-icon-closethick\",\n\t\t\t\ticon_resizable : \"ui-icon-gripsmall-diagonal-se\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\"\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_save_nav : \"ui-icon-disk\",\n\t\t\t\ticon_cancel_nav : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_prev : \"ui-icon-triangle-1-w\",\n\t\t\t\ticon_next : \"ui-icon-triangle-1-e\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_close : \"ui-icon-close\",\n\t\t\t\ticon_del : \"ui-icon-scissors\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"ui-icon-pencil\",\n\t\t\t\ticon_add_nav : \"ui-icon-plus\",\n\t\t\t\ticon_del_nav : \"ui-icon-trash\",\n\t\t\t\ticon_search_nav : \"ui-icon-search\",\n\t\t\t\ticon_refresh_nav : \"ui-icon-refresh\",\n\t\t\t\ticon_view_nav : \"ui-icon-document\",\n\t\t\t\ticon_newbutton_nav : \"ui-icon-newwin\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'ui-icon-circlesmall-plus',\n\t\t\t\ticon_minus : 'ui-icon-circlesmall-minus'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'ui-widget ui-widget-content',\n\t\t\t\tsrSelect : 'ui-widget-content ui-corner-all',\n\t\t\t\tsrInput : 'ui-widget-content ui-corner-all',\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\ticon_search : 'ui-icon-search',\n\t\t\t\ticon_reset : 'ui-icon-arrowreturnthick-1-w',\n\t\t\t\ticon_query :'ui-icon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'ui-icon-plus',\n\t\t\t\ticon_minus : 'ui-icon-minus',\n\t\t\t\ticon_open : 'ui-icon-carat-1-sw'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'ui-icon-triangle-1-',\n\t\t\t\ticon_minus : 'ui-icon-triangle-1-s',\n\t\t\t\ticon_leaf : 'ui-icon-radio-off'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"ui-icon-pencil\",\n\t\t\t\ticon_add : \"ui-icon-plus\",\n\t\t\t\ticon_save : \"ui-icon-disk\",\n\t\t\t\ticon_cancel : \"ui-icon-cancel\",\n\t\t\t\ticon_del : \"ui-icon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : 'ui-widget ui-widget-content ui-corner-all',\n\t\t\t\tinput_checkbox : \"ui-widget ui-widget-content\",\n\t\t\t\tfilter_select: \"ui-widget-content ui-corner-all\",\n\t\t\t\tfilter_input : \"ui-widget-content ui-corner-all\",\n\t\t\t\ticon_menu : \"ui-icon-comment\",\n\t\t\t\ticon_sort_asc : \"ui-icon-arrow-1-n\",\n\t\t\t\ticon_sort_desc : \"ui-icon-arrow-1-s\",\n\t\t\t\ticon_columns : \"ui-icon-extlink\",\n\t\t\t\ticon_filter : \"ui-icon-calculator\",\n\t\t\t\ticon_group : \"ui-icon-grip-solid-horizontal\",\n\t\t\t\ticon_freeze : \"ui-icon-grip-solid-vertical\",\n\t\t\t\ticon_move: \"ui-icon-arrow-4\"\n\t\t\t}\n\t\t},\n\t\tBootstrap : {\n\t\t\tcommon : {\n\t\t\t\tdisabled: \"ui-disabled\",\n\t\t\t\thighlight : \"success\",\n\t\t\t\thover : \"active\",\n\t\t\t\tcornerall: \"\", \n\t\t\t\tcornertop: \"\",\n\t\t\t\tcornerbottom : \"\",\n\t\t\t\thidden : \"\",\n\t\t\t\ticon_base : \"glyphicon\",\n\t\t\t\toverlay: \"ui-overlay\",\n\t\t\t\tactive : \"active\",\n\t\t\t\terror : \"bg-danger\",\n\t\t\t\tbutton : \"btn btn-default\",\n\t\t\t\tcontent : \"\"\n\t\t\t},\n\t\t\tbase : {\n\t\t\t\tentrieBox : \"\",\n\t\t\t\tviewBox : \"table-responsive\",\n\t\t\t\theaderTable : \"table table-bordered\",\n\t\t\t\theaderBox : \"\",\n\t\t\t\trowTable : \"table table-bordered\",\n\t\t\t\trowBox : \"\",\n\t\t\t\tfooterTable : \"table table-bordered\",\n\t\t\t\tfooterBox : \"\",\n\t\t\t\theaderDiv : \"\",\n\t\t\t\tgridtitleBox : \"\",\n\t\t\t\tcustomtoolbarBox : \"\",\n\t\t\t\t//overlayBox: \"ui-overlay\",\n\t\t\t\tloadingBox : \"row\",\n\t\t\t\trownumBox :  \"active\",\n\t\t\t\tscrollBox : \"\",\n\t\t\t\tmultiBox : \"checkbox\",\n\t\t\t\tpagerBox : \"\",\n\t\t\t\tpagerTable : \"table\",\n\t\t\t\ttoppagerBox : \"\",\n\t\t\t\tpgInput : \"form-control\",\n\t\t\t\tpgSelectBox : \"form-control\",\n\t\t\t\tpgButtonBox : \"\",\n\t\t\t\ticon_first : \"glyphicon-step-backward\",\n\t\t\t\ticon_prev : \"glyphicon-backward\",\n\t\t\t\ticon_next: \"glyphicon-forward\",\n\t\t\t\ticon_end: \"glyphicon-step-forward\",\n\t\t\t\ticon_asc : \"glyphicon-triangle-top\",\n\t\t\t\ticon_desc : \"glyphicon-triangle-bottom\",\n\t\t\t\ticon_caption_open : \"glyphicon-circle-arrow-up\",\n\t\t\t\ticon_caption_close : \"glyphicon-circle-arrow-down\"\n\t\t\t},\n\t\t\tmodal : {\n\t\t\t\tmodal : \"modal-content\",\n\t\t\t\theader : \"modal-header\",\n\t\t\t\ttitle : \"modal-title\",\n\t\t\t\tcontent :\"modal-body\",\n\t\t\t\tresizable : \"ui-resizable-handle ui-resizable-se\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_resizable : \"glyphicon-import\"\n\t\t\t},\n\t\t\tcelledit : {\n\t\t\t\tinputClass : 'form-control'\n\t\t\t}, \n\t\t\tinlinedit : {\n\t\t\t\tinputClass : 'form-control',\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_save_nav : \"glyphicon-save\",\n\t\t\t\ticon_cancel_nav : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tformedit : {\n\t\t\t\tinputClass : \"form-control\",\n\t\t\t\ticon_prev : \"glyphicon-step-backward\",\n\t\t\t\ticon_next : \"glyphicon-step-forward\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_close : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\"\n\t\t\t},\n\t\t\tnavigator : {\n\t\t\t\ticon_edit_nav : \"glyphicon-edit\",\n\t\t\t\ticon_add_nav : \"glyphicon-plus\",\n\t\t\t\ticon_del_nav : \"glyphicon-trash\",\n\t\t\t\ticon_search_nav : \"glyphicon-search\",\n\t\t\t\ticon_refresh_nav : \"glyphicon-refresh\",\n\t\t\t\ticon_view_nav : \"glyphicon-info-sign\",\n\t\t\t\ticon_newbutton_nav : \"glyphicon-new-window\"\n\t\t\t},\n\t\t\tgrouping : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom'\n\t\t\t},\n\t\t\tfilter : {\n\t\t\t\ttable_widget : 'table table-condensed',\n\t\t\t\tsrSelect : 'form-control',\n\t\t\t\tsrInput : 'form-control',\n\t\t\t\tmenu_widget : '',\n\t\t\t\ticon_search : 'glyphicon-search',\n\t\t\t\ticon_reset : 'glyphicon-refresh',\n\t\t\t\ticon_query :'glyphicon-comment'\n\t\t\t},\n\t\t\tsubgrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_open : 'glyphicon-indent-left'\n\t\t\t},\n\t\t\ttreegrid : {\n\t\t\t\ticon_plus : 'glyphicon-triangle-right',\n\t\t\t\ticon_minus : 'glyphicon-triangle-bottom',\n\t\t\t\ticon_leaf : 'glyphicon-unchecked'\n\t\t\t},\n\t\t\tfmatter : {\n\t\t\t\ticon_edit : \"glyphicon-edit\",\n\t\t\t\ticon_add : \"glyphicon-plus\",\n\t\t\t\ticon_save : \"glyphicon-save\",\n\t\t\t\ticon_cancel : \"glyphicon-remove-circle\",\n\t\t\t\ticon_del : \"glyphicon-trash\"\n\t\t\t},\n\t\t\tcolmenu : {\n\t\t\t\tmenu_widget : '',\n\t\t\t\tinput_checkbox : \"\",\n\t\t\t\tfilter_select: \"form-control\",\n\t\t\t\tfilter_input : \"form-control\",\n\t\t\t\ticon_menu : \"glyphicon-menu-hamburger\",\n\t\t\t\ticon_sort_asc : \"glyphicon-sort-by-alphabet\",\n\t\t\t\ticon_sort_desc : \"glyphicon-sort-by-alphabet-alt\",\n\t\t\t\ticon_columns : \"glyphicon-list-alt\",\n\t\t\t\ticon_filter : \"glyphicon-filter\",\n\t\t\t\ticon_group : \"glyphicon-align-left\",\n\t\t\t\ticon_freeze : \"glyphicon-object-align-horizontal\",\n\t\t\t\ticon_move: \"glyphicon-move\"\n\t\t\t}\n\t\t}\n\t}\n});\n\n$.fn.jqGrid = function( pin ) {\n\tif (typeof pin === 'string') {\n\t\tvar fn = $.jgrid.getMethod(pin);\n\t\tif (!fn) {\n\t\t\tthrow (\"jqGrid - No such method: \" + pin);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\treturn this.each( function() {\n\t\tif(this.grid) {return;}\n\t\tvar localData;\n\t\tif (pin != null && pin.data !== undefined) {\n\t\t\tlocalData = pin.data;\n\t\t\tpin.data = [];\n\t\t}\n\n\t\tvar p = $.extend(true,{\n\t\t\turl: \"\",\n\t\t\theight: 150,\n\t\t\tpage: 1,\n\t\t\trowNum: 20,\n\t\t\trowTotal : null,\n\t\t\trecords: 0,\n\t\t\tpager: \"\",\n\t\t\tpgbuttons: true,\n\t\t\tpginput: true,\n\t\t\tcolModel: [],\n\t\t\trowList: [],\n\t\t\tcolNames: [],\n\t\t\tsortorder: \"asc\",\n\t\t\tsortname: \"\",\n\t\t\tdatatype: \"xml\",\n\t\t\tmtype: \"GET\",\n\t\t\taltRows: false,\n\t\t\tselarrrow: [],\n\t\t\tsavedRow: [],\n\t\t\tshrinkToFit: true,\n\t\t\txmlReader: {},\n\t\t\tjsonReader: {},\n\t\t\tsubGrid: false,\n\t\t\tsubGridModel :[],\n\t\t\treccount: 0,\n\t\t\tlastpage: 0,\n\t\t\tlastsort: 0,\n\t\t\tselrow: null,\n\t\t\tbeforeSelectRow: null,\n\t\t\tonSelectRow: null,\n\t\t\tonSortCol: null,\n\t\t\tondblClickRow: null,\n\t\t\tonRightClickRow: null,\n\t\t\tonPaging: null,\n\t\t\tonSelectAll: null,\n\t\t\tonInitGrid : null,\n\t\t\tloadComplete: null,\n\t\t\tgridComplete: null,\n\t\t\tloadError: null,\n\t\t\tloadBeforeSend: null,\n\t\t\tafterInsertRow: null,\n\t\t\tbeforeRequest: null,\n\t\t\tbeforeProcessing : null,\n\t\t\tonHeaderClick: null,\n\t\t\tviewrecords: false,\n\t\t\tloadonce: false,\n\t\t\tmultiselect: false,\n\t\t\tmultikey: false,\n\t\t\tediturl: null,\n\t\t\tsearch: false,\n\t\t\tcaption: \"\",\n\t\t\thidegrid: true,\n\t\t\thiddengrid: false,\n\t\t\tpostData: {},\n\t\t\tuserData: {},\n\t\t\ttreeGrid : false,\n\t\t\ttreeGridModel : 'nested',\n\t\t\ttreeReader : {},\n\t\t\ttreeANode : -1,\n\t\t\tExpandColumn: null,\n\t\t\ttree_root_level : 0,\n\t\t\tprmNames: {\n\t\t\t\tpage:\"page\",\n\t\t\t\trows:\"rows\", \n\t\t\t\tsort: \"sidx\",\n\t\t\t\torder: \"sord\", \n\t\t\t\tsearch:\"_search\", \n\t\t\t\tnd:\"nd\", \n\t\t\t\tid:\"id\",\n\t\t\t\toper:\"oper\",\n\t\t\t\teditoper:\"edit\",\n\t\t\t\taddoper:\"add\",\n\t\t\t\tdeloper:\"del\", \n\t\t\t\tsubgridid:\"id\", \n\t\t\t\tnpage: null, \n\t\t\t\ttotalrows:\"totalrows\"\n\t\t\t},\n\t\t\tforceFit : false,\n\t\t\tgridstate : \"visible\",\n\t\t\tcellEdit: false,\n\t\t\tcellsubmit: \"remote\",\n\t\t\tnv:0,\n\t\t\tloadui: \"enable\",\n\t\t\ttoolbar: [false,\"\"],\n\t\t\tscroll: false,\n\t\t\tmultiboxonly : false,\n\t\t\tdeselectAfterSort : true,\n\t\t\tscrollrows : false,\n\t\t\tautowidth: false,\n\t\t\tscrollOffset : 18,\n\t\t\tcellLayout: 5,\n\t\t\tsubGridWidth: 20,\n\t\t\tmultiselectWidth: 30,\n\t\t\tgridview: true,\n\t\t\trownumWidth: 35,\n\t\t\trownumbers : false,\n\t\t\tpagerpos: 'center',\n\t\t\trecordpos: 'right',\n\t\t\tfooterrow : false,\n\t\t\tuserDataOnFooter : false,\n\t\t\thoverrows : true,\n\t\t\taltclass : 'ui-priority-secondary',\n\t\t\tviewsortcols : [false,'vertical',true],\n\t\t\tresizeclass : '',\n\t\t\tautoencode : false,\n\t\t\tremapColumns : [],\n\t\t\tajaxGridOptions :{},\n\t\t\tdirection : \"ltr\",\n\t\t\ttoppager: false,\n\t\t\theadertitles: false,\n\t\t\tscrollTimeout: 40,\n\t\t\tdata : [],\n\t\t\t_index : {},\n\t\t\tgrouping : false,\n\t\t\tgroupingView : {\n\t\t\t\tgroupField:[],\n\t\t\t\tgroupOrder:[], \n\t\t\t\tgroupText:[],\n\t\t\t\tgroupColumnShow:[],\n\t\t\t\tgroupSummary:[], \n\t\t\t\tshowSummaryOnHide: false, \n\t\t\t\tsortitems:[], \n\t\t\t\tsortnames:[], \n\t\t\t\tsummary:[],\n\t\t\t\tsummaryval:[], \n\t\t\t\tplusicon: '',  \n\t\t\t\tminusicon: '', \n\t\t\t\tdisplayField: [], \n\t\t\t\tgroupSummaryPos:[], \n\t\t\t\tformatDisplayField : [], \n\t\t\t\t_locgr : false\n\t\t\t},\n\t\t\tignoreCase : true,\n\t\t\tcmTemplate : {},\n\t\t\tidPrefix : \"\",\n\t\t\tmultiSort :  false,\n\t\t\tminColWidth : 33,\n\t\t\tscrollPopUp : false,\n\t\t\tscrollTopOffset: 0, // pixel\n\t\t\tscrollLeftOffset : \"100%\", //percent\n\t\t\tstoreNavOptions: false,\n\t\t\tregional :  \"en\",\n\t\t\tstyleUI : \"jQueryUI\",\n\t\t\tresponsive : false,\n\t\t\trestoreCellonFail : true,\n\t\t\tcolFilters : {},\n\t\t\tcolMenu : false\n\t\t}, $.jgrid.defaults , pin );\n\t\tif (localData !== undefined) {\n\t\t\tp.data = localData;\n\t\t\tpin.data = localData;\n\t\t}\n\t\tvar ts= this, grid={\n\t\t\theaders:[],\n\t\t\tcols:[],\n\t\t\tfooters: [],\n\t\t\tdragStart: function(i,x,y) {\n\t\t\t\tvar gridLeftPos = $(this.bDiv).offset().left;\n\t\t\t\tthis.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos };\n\t\t\t\tthis.hDiv.style.cursor = \"col-resize\";\n\t\t\t\tthis.curGbox = $(\"#rs_m\"+$.jgrid.jqID(p.id),\"#gbox_\"+$.jgrid.jqID(p.id));\n\t\t\t\tthis.curGbox.css({display:\"block\",left:x.pageX-gridLeftPos,top:y[1],height:y[2]});\n\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStart\", [x, i]);\n\t\t\t\tif($.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); }\n\t\t\t\tdocument.onselectstart=function(){return false;};\n\t\t\t},\n\t\t\tdragMove: function(x) {\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar diff = x.pageX-this.resizing.startX,\n\t\t\t\t\th = this.headers[this.resizing.idx],\n\t\t\t\t\tnewWidth = p.direction === \"ltr\" ? h.width + diff : h.width - diff, hn, nWn;\n\t\t\t\t\tif(newWidth > 33) {\n\t\t\t\t\t\tthis.curGbox.css({left:this.resizing.sOL+diff});\n\t\t\t\t\t\tif(p.forceFit===true ){\n\t\t\t\t\t\t\thn = this.headers[this.resizing.idx+p.nv];\n\t\t\t\t\t\t\tnWn = p.direction === \"ltr\" ? hn.width - diff : hn.width + diff;\n\t\t\t\t\t\t\tif(nWn > p.minColWidth ) {\n\t\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t\t\thn.newWidth = nWn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.newWidth = p.direction === \"ltr\" ? p.tblwidth+diff : p.tblwidth-diff;\n\t\t\t\t\t\t\th.newWidth = newWidth;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdragEnd: function( events ) {\n\t\t\t\tthis.hDiv.style.cursor = \"default\";\n\t\t\t\tif(this.resizing) {\n\t\t\t\t\tvar idx = this.resizing.idx,\n\t\t\t\t\tnw = this.headers[idx].newWidth || this.headers[idx].width;\n\t\t\t\t\tnw = parseInt(nw,10);\n\t\t\t\t\tthis.resizing = false;\n\t\t\t\t\t$(\"#rs_m\"+$.jgrid.jqID(p.id)).css(\"display\",\"none\");\n\t\t\t\t\tp.colModel[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].width = nw;\n\t\t\t\t\tthis.headers[idx].el.style.width = nw + \"px\";\n\t\t\t\t\tthis.cols[idx].style.width = nw+\"px\";\n\t\t\t\t\tif(this.footers.length>0) {this.footers[idx].style.width = nw+\"px\";}\n\t\t\t\t\tif(p.forceFit===true){\n\t\t\t\t\t\tnw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;\n\t\t\t\t\t\tthis.headers[idx+p.nv].width = nw;\n\t\t\t\t\t\tthis.headers[idx+p.nv].el.style.width = nw + \"px\";\n\t\t\t\t\t\tthis.cols[idx+p.nv].style.width = nw+\"px\";\n\t\t\t\t\t\tif(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+\"px\";}\n\t\t\t\t\t\tp.colModel[idx+p.nv].width = nw;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.tblwidth = this.newWidth || p.tblwidth;\n\t\t\t\t\t\t$('table:first',this.bDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t$('table:first',this.hDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\tthis.hDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\tif(p.footerrow) {\n\t\t\t\t\t\t\t$('table:first',this.sDiv).css(\"width\",p.tblwidth+\"px\");\n\t\t\t\t\t\t\tthis.sDiv.scrollLeft = this.bDiv.scrollLeft;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(events) {\n\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridResizeStop\", [nw, idx]);\n\t\t\t\t\t\tif($.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.curGbox = null;\n\t\t\t\tdocument.onselectstart=function(){return true;};\n\t\t\t},\n\t\t\tpopulateVisible: function() {\n\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\tgrid.timer = null;\n\t\t\t\tvar dh = $(grid.bDiv).height();\n\t\t\t\tif (!dh) { return; }\n\t\t\t\tvar table = $(\"table:first\", grid.bDiv);\n\t\t\t\tvar rows, rh;\n\t\t\t\tif(table[0].rows.length) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\trows = table[0].rows[1];\n\t\t\t\t\t\trh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight;\n\t\t\t\t\t} catch (pv) {\n\t\t\t\t\t\trh = grid.prevRowHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!rh) { return; }\n\t\t\t\tgrid.prevRowHeight = rh;\n\t\t\t\tvar rn = p.rowNum;\n\t\t\t\tvar scrollTop = grid.scrollTop = grid.bDiv.scrollTop;\n\t\t\t\tvar ttop = Math.round(table.position().top) - scrollTop;\n\t\t\t\tvar tbot = ttop + table.height();\n\t\t\t\tvar div = rh * rn;\n\t\t\t\tvar page, npage, empty;\n\t\t\t\tif ( tbot < dh && ttop <= 0 &&\n\t\t\t\t\t(p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage))\n\t\t\t\t{\n\t\t\t\t\tnpage = parseInt((dh - tbot + div - 1) / div,10) || 1;\n\t\t\t\t\tif (tbot >= 0 || npage < 2 || p.scroll === true) {\n\t\t\t\t\t\tpage = ( Math.round((tbot + scrollTop) / div) || 0) + 1;\n\t\t\t\t\t\tttop = -1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tttop = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ttop > 0) {\n\t\t\t\t\tpage = ( parseInt(scrollTop / div,10) || 0 ) + 1;\n\t\t\t\t\tnpage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page;\n\t\t\t\t\tempty = true;\n\t\t\t\t}\n\t\t\t\tif (npage) {\n\t\t\t\t\tif (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (grid.hDiv.loading) {\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp.page = page;\n\t\t\t\t\t\tif (empty) {\n\t\t\t\t\t\t\tgrid.selectionPreserver(table[0]);\n\t\t\t\t\t\t\tgrid.emptyRows.call(table[0], false, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgrid.populate(npage);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.scrollPopUp && p.lastpage != null) {\n\t\t\t\t\t\t$(\"#scroll_g\"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", p.pgtext) , p.page, p.lastpage)).css({ \"top\": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +\"px\", \"left\" : p.scrollLeftOffset});\n\t\t\t\t\t\t$(this).mouseout(function(){ \n\t\t\t\t\t\t\t$(\"#scroll_g\"+p.id).hide();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tscrollGrid: function( e ) {\n\t\t\t\tif(p.scroll) {\n\t\t\t\t\tvar scrollTop = grid.bDiv.scrollTop;\n\t\t\t\t\tif(grid.scrollTop === undefined) { grid.scrollTop = 0; }\n\t\t\t\t\tif (scrollTop !== grid.scrollTop) {\n\t\t\t\t\t\tgrid.scrollTop = scrollTop;\n\t\t\t\t\t\tif (grid.timer) { clearTimeout(grid.timer); }\n\t\t\t\t\t\tgrid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\tif(p.footerrow) {\n\t\t\t\t\tgrid.sDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t\t}\n\t\t\t\tif(p.frozenColumns) {\n\t\t\t\t\t$(grid.fbDiv).scrollTop( grid.bDiv.scrollTop );\n\t\t\t\t}\n\t\t\t\tif( e ) { e.stopPropagation(); }\n\t\t\t},\n\t\t\tselectionPreserver : function(ts) {\n\t\t\t\tvar p = ts.p,\n\t\t\t\tsr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null,\n\t\t\t\tleft = ts.grid.bDiv.scrollLeft,\n\t\t\t\trestoreSelection = function() {\n\t\t\t\t\tvar i;\n\t\t\t\t\tp.selrow = null;\n\t\t\t\t\tp.selarrrow = [];\n\t\t\t\t\tif(p.multiselect && sra && sra.length>0) {\n\t\t\t\t\t\tfor(i=0;i<sra.length;i++){\n\t\t\t\t\t\t\tif (sra[i] !== sr) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sra[i],false, null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",sr,false,null);\n\t\t\t\t\t}\n\t\t\t\t\tts.grid.bDiv.scrollLeft = left;\n\t\t\t\t\t$(ts).off('.selectionPreserver', restoreSelection);\n\t\t\t\t};\n\t\t\t\t$(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection);\t\t\t\t\n\t\t\t}\n\t\t};\n\t\tif(this.tagName.toUpperCase() !== 'TABLE' || this.id == null) {\n\t\t\talert(\"Element is not a table or has no id!\");\n\t\t\treturn;\n\t\t}\n\t\tif(document.documentMode !== undefined ) { // IE only\n\t\t\tif(document.documentMode <= 5) {\n\t\t\t\talert(\"Grid can not be used in this ('quirks') mode!\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tvar i =0, lr, lk, dir;\n\t\tfor( lk in $.jgrid.regional ){\n\t\t\tif($.jgrid.regional.hasOwnProperty(lk)) {\n\t\t\t\tif(i===0) { lr = lk; }\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\t\tif(i === 1 && lr !== p.regional) {\n\t\t\tp.regional = lr;\n\t\t}\n\t\t$(this).empty().attr(\"tabindex\",\"0\");\n\t\tthis.p = p ;\n\t\tthis.p.useProp = !!$.fn.prop;\n\t\tif(this.p.colNames.length === 0) {\n\t\t\tfor (i=0;i<this.p.colModel.length;i++){\n\t\t\t\tthis.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tif( this.p.colNames.length !== this.p.colModel.length ) {\n\t\t\talert($.jgrid.getRegional(this,\"errors.model\"));\n\t\t\treturn;\n\t\t}\n\t\tvar getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\tstylemodule = ts.p.styleUI + \".common\",\n\t\tdisabled = getstyle(stylemodule,'disabled', true),\n\t\thighlight = getstyle(stylemodule,'highlight', true),\n\t\thover = getstyle(stylemodule,'hover', true),\n\t\tcornerall = getstyle(stylemodule,'cornerall', true),\n\t\ticonbase = getstyle(stylemodule,'icon_base', true),\n\t\tcolmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,\n\t\tisMSIE = $.jgrid.msie(),\n\t\tgv, sortarr = [], sortord = [], sotmp=[];\n\t\tstylemodule = ts.p.styleUI + \".base\";\n\t\tgv = $(\"<div \"+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+\" role='grid'></div>\");\n\t\tts.p.direction = $.trim(ts.p.direction.toLowerCase());\n\t\tts.p._ald = false;\n\t\tif($.inArray(ts.p.direction,[\"ltr\",\"rtl\"]) === -1) { ts.p.direction = \"ltr\"; }\n\t\tdir = ts.p.direction;\n\t\t\n\t\t$(gv).insertBefore(this);\n\t\t$(this).appendTo(gv);\n\t\n\t\tvar eg = $(\"<div \"+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +\"></div>\");\n\t\t$(eg).attr({\"id\" : \"gbox_\"+this.id,\"dir\":dir}).insertBefore(gv);\n\t\t$(gv).attr(\"id\",\"gview_\"+this.id).appendTo(eg);\n\t\t$(\"<div \"+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ \" id='lui_\"+this.id+\"'></div>\").insertBefore(gv);\n\t\t$(\"<div \"+getstyle(stylemodule,'loadingBox', false, 'loading')+\" id='load_\"+this.id+\"'>\"+$.jgrid.getRegional(ts, \"defaults.loadtext\", this.p.loadtext)+\"</div>\").insertBefore(gv);\n\t\t\n\t\t$(this).attr({role:\"presentation\",\"aria-multiselectable\":!!this.p.multiselect,\"aria-labelledby\":\"gbox_\"+this.id});\n\t\t\n\t\tvar sortkeys = [\"shiftKey\",\"altKey\",\"ctrlKey\"],\n\t\tintNum = function(val,defval) {\n\t\t\tval = parseInt(val,10);\n\t\t\tif (isNaN(val)) { return defval || 0;}\n\t\t\treturn val;\n\t\t},\n\t\tformatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){\n\t\t\tvar cm = ts.p.colModel[pos], cellAttrFunc,\n\t\t\tral = cm.align, result=\"style=\\\"\", clas = cm.classes, nm = cm.name, celp, acp=[];\n\t\t\tif(ral) { result += \"text-align:\"+ral+\";\"; }\n\t\t\tif(cm.hidden===true) { result += \"display:none;\"; }\n\t\t\tif(rowInd===0) {\n\t\t\t\tresult += \"width: \"+grid.headers[pos].width+\"px;\";\n\t\t\t} else if ($.isFunction(cm.cellattr) || (typeof cm.cellattr === \"string\" && $.jgrid.cellattr != null && $.isFunction($.jgrid.cellattr[cm.cellattr]))) {\n\t\t\t\tcellAttrFunc = $.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr];\n\t\t\t\tcelp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata);\n\t\t\t\tif(celp && typeof celp === \"string\") {\n\t\t\t\t\tcelp = celp.replace(/style/i,'style').replace(/title/i,'title');\n\t\t\t\t\tif(celp.indexOf('title') > -1) { cm.title=false;}\n\t\t\t\t\tif(celp.indexOf('class') > -1) { clas = undefined;}\n\t\t\t\t\tacp = celp.replace(/\\-style/g,'-sti').split(/style/);\n\t\t\t\t\tif(acp.length === 2 ) {\n\t\t\t\t\t\tacp[1] =  $.trim(acp[1].replace(/\\-sti/g,'-style').replace(\"=\",\"\"));\n\t\t\t\t\t\tif(acp[1].indexOf(\"'\") === 0 || acp[1].indexOf('\"') === 0) {\n\t\t\t\t\t\t\tacp[1] = acp[1].substring(1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult += acp[1].replace(/'/gi,'\"');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult += \"\\\"\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!acp.length) { acp[0] = \"\"; result += \"\\\"\";}\n\t\t\tresult += (clas !== undefined ? (\" class=\\\"\"+clas+\"\\\"\") :\"\") + ((cm.title && tv) ? (\" title=\\\"\"+$.jgrid.stripHtml(tv)+\"\\\"\") :\"\");\n\t\t\tresult += \" aria-describedby=\\\"\"+ts.p.id+\"_\"+nm+\"\\\"\";\n\t\t\treturn result + acp[0];\n\t\t},\n\t\tcellVal =  function (val) {\n\t\t\treturn val == null || val === \"\" ? \"&#160;\" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val));\n\t\t},\n\t\tformatter = function (rowId, cellval , colpos, rwdat, _act){\n\t\t\tvar cm = ts.p.colModel[colpos],v;\n\t\t\tif(cm.formatter !== undefined) {\n\t\t\t\trowId = String(ts.p.idPrefix) !== \"\" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId;\n\t\t\t\tvar opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI };\n\t\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\t\tv = cm.formatter.call(ts,cellval,opts,rwdat,_act);\n\t\t\t\t} else if($.fmatter){\n\t\t\t\t\tv = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act);\n\t\t\t\t} else {\n\t\t\t\t\tv = cellVal(cellval);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv = cellVal(cellval);\n\t\t\t}\n\t\t\treturn v;\n\t\t},\n\t\taddCell = function(rowId,cell,pos,irow, srvr, rdata) {\n\t\t\tvar v,prp;\n\t\t\tv = formatter(rowId,cell,pos,srvr,'add');\n\t\t\tprp = formatCol( pos,irow, v, srvr, rowId, rdata);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddMulti = function(rowid, pos, irow, checked, uiclass){\n\t\t\tvar\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\" \"+uiclass+\" name=\\\"jqg_\"+ts.p.id+\"_\"+rowid+\"\\\"\" + (checked ? \"checked=\\\"checked\\\"\" : \"\")+\"/>\",\n\t\t\tprp = formatCol( pos,irow,'',null, rowid, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\taddRowNum = function (pos, irow, pG, rN, uiclass ) {\n\t\t\tvar v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,\n\t\t\tprp = formatCol( pos,irow,v, null, irow, true);\n\t\t\treturn \"<td role=\\\"gridcell\\\" \"+uiclass+\" \"+prp+\">\"+v+\"</td>\";\n\t\t},\n\t\treader = function (datatype) {\n\t\t\tvar field, f=[], j=0, i;\n\t\t\tfor(i =0; i<ts.p.colModel.length; i++){\n\t\t\t\tfield = ts.p.colModel[i];\n\t\t\t\tif (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {\n\t\t\t\t\tf[j]= datatype === \"local\" ?\n\t\t\t\t\tfield.name :\n\t\t\t\t\t( (datatype===\"xml\" || datatype === \"xmlstring\") ? field.xmlmap || field.name : field.jsonmap || field.name );\n\t\t\t\t\tif(ts.p.keyName !== false && field.key===true ) {\n\t\t\t\t\t\tts.p.keyName = f[j];\n\t\t\t\t\t}\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn f;\n\t\t},\n\t\torderedCols = function (offset) {\n\t\t\tvar order = ts.p.remapColumns;\n\t\t\tif (!order || !order.length) {\n\t\t\t\torder = $.map(ts.p.colModel, function(v,i) { return i; });\n\t\t\t}\n\t\t\tif (offset) {\n\t\t\t\torder = $.map(order, function(v) { return v<offset?null:v-offset; });\n\t\t\t}\n\t\t\treturn order;\n\t\t},\n\t\temptyRows = function (scroll, locdata) {\n\t\t\tvar firstrow;\n\t\t\tif (this.p.deepempty) {\n\t\t\t\t$(this.rows).slice(1).remove();\n\t\t\t} else {\n\t\t\t\tfirstrow = this.rows.length > 0 ? this.rows[0] : null;\n\t\t\t\t$(this.firstChild).empty().append(firstrow);\n\t\t\t}\n\t\t\tif (scroll && this.p.scroll) {\n\t\t\t\t$(this.grid.bDiv.firstChild).css({height: \"auto\"});\n\t\t\t\t$(this.grid.bDiv.firstChild.firstChild).css({height: \"0px\", display: \"none\"});\n\t\t\t\tif (this.grid.bDiv.scrollTop !== 0) {\n\t\t\t\t\tthis.grid.bDiv.scrollTop = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(locdata === true && this.p.treeGrid && !this.p.loadonce ) {\n\t\t\t\tthis.p.data = []; this.p._index = {};\n\t\t\t}\n\t\t},\n\t\tnormalizeData = function() {\n\t\t\tvar p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd,\n\t\t\tlocalReader = p.localReader,\n\t\t\tcolModel = p.colModel,\n\t\t\tcellName = localReader.cell,\n\t\t\tiOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0),\n\t\t\tbr = p.scroll ? $.jgrid.randId() : 1,\n\t\t\tarrayReader, objectReader, rowReader;\n\n\t\t\tif (p.datatype !== \"local\" || localReader.repeatitems !== true) {\n\t\t\t\treturn; // nothing to do\n\t\t\t}\n\n\t\t\tarrayReader = orderedCols(iOffset);\n\t\t\tobjectReader = reader(\"local\");\n\t\t\t// read ALL input items and convert items to be read by\n\t\t\t// $.jgrid.getAccessor with column name as the second parameter\n\t\t\tidn = p.keyIndex === false ?\n\t\t\t\t($.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) :\n\t\t\t\tp.keyIndex; \n\t\t\tfor (i = 0; i < dataLength; i++) {\n\t\t\t\tcur = data[i];\n\t\t\t\t// read id in the same way like addJSONData do\n\t\t\t\t// probably it would be better to start with \"if (cellName) {...}\"\n\t\t\t\t// but the goal of the current implementation was just have THE SAME\n\t\t\t\t// id values like in addJSONData ...\n\t\t\t\tidr = $.jgrid.getAccessor(cur, idn);\n\t\t\t\tif (idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && colModel[idn + iOffset] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name);\n\t\t\t\t\t}\n\t\t\t\t\tif (idr === undefined) {\n\t\t\t\t\t\tidr = br + i;\n\t\t\t\t\t\tif (cellName) {\n\t\t\t\t\t\t\tccur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\tccur = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trd = { };\n\t\t\t\trd[localReader.id] = idr;\n\t\t\t\tif (cellName) {\n\t\t\t\t\tcur = $.jgrid.getAccessor(cur, cellName) || cur;\n\t\t\t\t}\n\t\t\t\trowReader = $.isArray(cur) ? arrayReader : objectReader;\n\t\t\t\tfor (j = 0; j < rowReader.length; j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur, rowReader[j]);\n\t\t\t\t\trd[colModel[j + iOffset].name] = v;\n\t\t\t\t}\n\t\t\t\t$.extend(true, data[i], rd);\n\t\t\t}\n\t\t},\n\t\trefreshIndex = function() {\n\t\t\tvar datalen = ts.p.data.length, idname, i, val;\n\n\t\t\tif(ts.p.keyName === false || ts.p.loadonce === true) {\n\t\t\t\tidname = ts.p.localReader.id;\n\t\t\t} else {\n\t\t\t\tidname = ts.p.keyName;\n\t\t\t}\n\t\t\tts.p._index = [];\n\t\t\tfor(i =0;i < datalen; i++) {\n\t\t\t\tval = $.jgrid.getAccessor(ts.p.data[i],idname);\n\t\t\t\tif (val === undefined) { val=String(i+1); }\n\t\t\t\tts.p._index[val] = i;\n\t\t\t}\n\t\t},\n\t\tconstructTr = function(id, hide, classes, rd, cur ) {\n\t\t\tvar tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '',\n\t\t\t\t//classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''),\n\t\t\t\trowAttrObj = $(ts).triggerHandler(\"jqGridRowAttr\", [rd, cur, id]);\n\t\t\tif( typeof rowAttrObj !== \"object\" ) {\n\t\t\t\trowAttrObj = $.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) :\n\t\t\t\t\t(typeof ts.p.rowattr === \"string\" && $.jgrid.rowattr != null && $.isFunction($.jgrid.rowattr[ts.p.rowattr]) ?\n\t\t\t\t\t$.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {});\n\t\t\t}\n\t\t\tif(!$.isEmptyObject( rowAttrObj )) {\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"id\")) {\n\t\t\t\t\tid = rowAttrObj.id;\n\t\t\t\t\tdelete rowAttrObj.id;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"tabindex\")) {\n\t\t\t\t\ttabindex = rowAttrObj.tabindex;\n\t\t\t\t\tdelete rowAttrObj.tabindex;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"style\")) {\n\t\t\t\t\tstyle += rowAttrObj.style;\n\t\t\t\t\tdelete rowAttrObj.style;\n\t\t\t\t}\n\t\t\t\tif (rowAttrObj.hasOwnProperty(\"class\")) {\n\t\t\t\t\tclasses += ' ' + rowAttrObj['class'];\n\t\t\t\t\tdelete rowAttrObj['class'];\n\t\t\t\t}\n\t\t\t\t// dot't allow to change role attribute\n\t\t\t\ttry { delete rowAttrObj.role; } catch(ra){}\n\t\t\t\tfor (attrName in rowAttrObj) {\n\t\t\t\t\tif (rowAttrObj.hasOwnProperty(attrName)) {\n\t\t\t\t\t\trestAttr += ' ' + attrName + '=' + rowAttrObj[attrName];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '<tr role=\"row\" id=\"' + id + '\" tabindex=\"' + tabindex + '\" class=\"' + classes + '\"' +\n\t\t\t\t(style === '' ? '' : ' style=\"' + style + '\"') + restAttr + '>';\n\t\t},\n\t\taddXmlData = function (xml, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date(),\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"xmlstring\",\n\t\t\txmlid = \"_id_\", xmlRd = ts.p.xmlReader,\n\t\t\tfrd = ts.p.datatype === \"local\" ? \"local\" : \"xml\";\n\t\t\tif(locdata) {\n\t\t\t\tts.p.data = [];\n\t\t\t\tts.p._index = {};\n\t\t\t\tts.p.localReader.id = xmlid;\n\t\t\t}\n\t\t\tts.p.reccount = 0;\n\t\t\tif($.isXMLDoc(xml)) {\n\t\t\t\tif(ts.p.treeANode===-1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\t\t\tvar self= $(ts), i,fpos,ir=0,v,gi=ts.p.multiselect===true?1:0,si=0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,idn, getId,f=[],F,rd ={}, \n\t\t\t\t\txmlr,rid, rowData=[], cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tif(ts.p.subGrid===true) {\n\t\t\t\tsi = 1;\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif(!xmlRd.repeatitems) {f = reader(frd);}\n\t\t\tif( ts.p.keyName===false) {\n\t\t\t\tidn = $.isFunction( xmlRd.id ) ?  xmlRd.id.call(ts, xml) : xmlRd.id;\n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tif( String(idn).indexOf(\"[\") === -1 ) {\n\t\t\t\tif (f.length) {\n\t\t\t\t\tgetId = function( trow, k) {return $(idn,trow).text() || k;};\n\t\t\t\t} else {\n\t\t\t\t\tgetId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;};\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tgetId = function( trow, k) {return trow.getAttribute(idn.replace(/[\\[\\]]/g,\"\")) || k;};\n\t\t\t}\n\t\t\tts.p.userData = {};\n\t\t\tts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records));\n\t\t\tif($.isFunction(xmlRd.userdata)) {\n\t\t\t\tts.p.userData = xmlRd.userdata.call(ts, xml) || {};\n\t\t\t} else {\n\t\t\t\t$.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute(\"name\")]= $(this).text();});\n\t\t\t}\n\t\t\tvar gxml = $.jgrid.getXmlData( xml, xmlRd.root, true);\n\t\t\tgxml = $.jgrid.getXmlData( gxml, xmlRd.row, true);\n\t\t\tif (!gxml) { gxml = []; }\n\t\t\tvar gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1, altr,\n\t\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\");\n\t\t\tif (gl > 0 &&  ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tif(gxml && gl){\n\t\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), hiderow=false, groupingPrepare,\n\t\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\t\tif(ts.p.grouping)  {\n\t\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t\t}\n\t\t\t\twhile (j<gl) {\n\t\t\t\t\txmlr = gxml[j];\n\t\t\t\t\trid = getId(xmlr,br+j);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\taltr = rcnt === 0 ? 0 : rcnt+1;\n\t\t\t\t\tclasses = cn1 + ( (altr+j)%2 === 1 ? ' ' + cn : '');\n\t\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\t\trowData.push(\"\");\n\t\t\t\t\tif( ni ) {\n\t\t\t\t\t\trowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t\t}\n\t\t\t\t\tif( gi ) {\n\t\t\t\t\t\trowData.push( addMulti(rid, ni, j, false, mlc) );\n\t\t\t\t\t}\n\t\t\t\t\tif( si ) {\n\t\t\t\t\t\trowData.push( addSubGridCell.call(self, gi+ni, j+rcnt) );\n\t\t\t\t\t}\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr, rd) );\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t\trowData.push( addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr, rd) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr);\n\t\t\t\t\trowData.push(\"</tr>\");\n\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self , rd, j );\n\t\t\t\t\t\t}\n\t\t\t\t\t\trowData = [];\n\t\t\t\t\t}\n\t\t\t\t\tif(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) {\n\t\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [rid, rd, xmlr]);\n\t\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}\n\t\t\t\t\t\trowData=[];\n\t\t\t\t\t}\n\t\t\t\t\trd={};\n\t\t\t\t\tir++;\n\t\t\t\t\tj++;\n\t\t\t\t\tif(ir===rn) {break;}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.gridview === true) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else {\n\t\t\t\t\t//$(\"tbody:first\",t).append(rowData.join(''));\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells; // update cached first row\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData =null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry {self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} }\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = gl;\n\t\t\t\tts.p.lastpage = Math.ceil(gl/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<gl) {\n\t\t\t\t\txmlr = gxml[ir];\n\t\t\t\t\trid = getId(xmlr,ir+br);\n\t\t\t\t\trid  = ts.p.idPrefix + rid;\n\t\t\t\t\tif(xmlRd.repeatitems){\n\t\t\t\t\t\tif (!F) { F=orderedCols(gi+si+ni); }\n\t\t\t\t\t\tvar cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);\n\t\t\t\t\t\t$.each(F, function (k) {\n\t\t\t\t\t\t\tvar cell = cells2[this];\n\t\t\t\t\t\t\tif (!cell) { return false; }\n\t\t\t\t\t\t\tv = cell.textContent || cell.text;\n\t\t\t\t\t\t\trd[ts.p.colModel[k+gi+si+ni].name] = v;\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor(i = 0; i < f.length;i++) {\n\t\t\t\t\t\t\tv = $.jgrid.getXmlData( xmlr, f[i]);\n\t\t\t\t\t\t\trd[ts.p.colModel[i+gi+si+ni].name] = v;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);\n\t\t\t\t\tif( ts.p.grouping ) {\n\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t}\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[xmlid]] = ts.p.data.length-1;\n\t\t\t\t\trd = {};\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddJSONData = function(data, rcnt, more, adjust) {\n\t\t\tvar startReq = new Date();\n\t\t\tif(data) {\n\t\t\t\tif(ts.p.treeANode === -1 && !ts.p.scroll) {\n\t\t\t\t\temptyRows.call(ts, false, true);\n\t\t\t\t\trcnt=1;\n\t\t\t\t} else { rcnt = rcnt > 1 ? rcnt :1; }\n\t\t\t} else { return; }\n\n\t\t\tvar dReader, locid = \"_id_\", frd,\n\t\t\tlocdata = (ts.p.datatype !== \"local\" && ts.p.loadonce) || ts.p.datatype === \"jsonstring\";\n\t\t\tif(locdata) { ts.p.data = []; ts.p._index = {}; ts.p.localReader.id = locid;}\n\t\t\tts.p.reccount = 0;\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tdReader =  ts.p.localReader;\n\t\t\t\tfrd= 'local';\n\t\t\t} else {\n\t\t\t\tdReader =  ts.p.jsonReader;\n\t\t\t\tfrd='json';\n\t\t\t}\n\t\t\tvar self = $(ts), ir=0,v,i,j,f=[],cur,gi=ts.p.multiselect?1:0,si=ts.p.subGrid===true?1:0,addSubGridCell,ni=ts.p.rownumbers===true?1:0,arrayReader=orderedCols(gi+si+ni),objectReader=reader(frd),rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[],cn=(ts.p.altRows === true) ? ts.p.altclass:\"\",\n\t\t\t\t\tcn1 = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction), classes;\n\t\t\tts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page);\n\t\t\tts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1);\n\t\t\tts.p.records = intNum($.jgrid.getAccessor(data,dReader.records));\n\t\t\tts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {};\n\t\t\tif(si) {\n\t\t\t\taddSubGridCell = $.jgrid.getMethod(\"addSubGridCell\");\n\t\t\t}\n\t\t\tif( ts.p.keyName===false ) {\n\t\t\t\tidn = $.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id; \n\t\t\t} else {\n\t\t\t\tidn = ts.p.keyName;\n\t\t\t}\n\t\t\tdrows = $.jgrid.getAccessor(data,dReader.root);\n\t\t\tif (drows == null && $.isArray(data)) { drows = data; }\n\t\t\tif (!drows) { drows = []; }\n\t\t\tlen = drows.length; i=0;\n\t\t\tif (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }\n\t\t\tvar rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?$.jgrid.randId():1, altr, selected=false, selr;\n\t\t\tif (adjust) { rn *= adjust+1; }\n\t\t\tif(ts.p.datatype === \"local\" && !ts.p.deselectAfterSort) {\n\t\t\t\tselected = true;\n\t\t\t}\n\t\t\tvar afterInsRow = $.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare,\n\t\t\ttablebody = $(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"),\n\t\t\trnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :\"\",\n\t\t\tmlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):\"\";\n\t\t\tif(ts.p.grouping)  {\n\t\t\t\thiderow = ts.p.groupingView.groupCollapse === true;\n\t\t\t\tgroupingPrepare = $.jgrid.getMethod(\"groupingPrepare\");\n\t\t\t}\n\t\t\twhile (i<len) {\n\t\t\t\tcur = drows[i];\n\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\tif(idr === undefined) {\n\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t}\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tidr = br+i;\n\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\tvar ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\tidr = ccur != null && ccur[idn] !== undefined ? ccur[idn] : idr;\n\t\t\t\t\t\t\t\tccur=null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\taltr = rcnt === 1 ? 0 : rcnt;\n\t\t\t\tclasses = cn1+ ( (altr+i)%2 === 1 ? ' '+cn : '');\n\t\t\t\tif( selected) {\n\t\t\t\t\tif( ts.p.multiselect) {\n\t\t\t\t\t\tselr = ($.inArray(idr, ts.p.selarrrow) !== -1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselr = (idr === ts.p.selrow);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar iStartTrTag = rowData.length;\n\t\t\t\trowData.push(\"\");\n\t\t\t\tif( ni ) {\n\t\t\t\t\trowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) );\n\t\t\t\t}\n\t\t\t\tif( gi ){\n\t\t\t\t\trowData.push( addMulti(idr, ni, i, selr, mlc) );\n\t\t\t\t}\n\t\t\t\tif( si ) {\n\t\t\t\t\trowData.push( addSubGridCell.call(self ,gi+ni,i+rcnt) );\n\t\t\t\t}\n\t\t\t\trowReader=objectReader;\n\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t}\n\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\tv = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = v;\n\t\t\t\t\trowData.push( addCell(idr,v,j+gi+si+ni,i+rcnt,cur, rd) );\n\t\t\t\t}\n\t\t\t\tclasses += (selr ? ' ' + highlight : '');\n\t\t\t\trowData[iStartTrTag] = constructTr(idr, hiderow, classes, rd, cur);\n\t\t\t\trowData.push( \"</tr>\" );\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tgrpdata.push( rowData );\n\t\t\t\t\tif(!ts.p.groupingView._locgr) {\n\t\t\t\t\t\tgroupingPrepare.call(self , rd, i);\n\t\t\t\t\t}\n\t\t\t\t\trowData = [];\n\t\t\t\t}\n\t\t\t\tif(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) {\n\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t}\n\t\t\t\tif(ts.p.gridview === false ) {\n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tself.triggerHandler(\"jqGridAfterInsertRow\", [idr, rd, cur]);\n\t\t\t\t\tif(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}\n\t\t\t\t\trowData=[];//ari=0;\n\t\t\t\t}\n\t\t\t\trd={};\n\t\t\t\tir++;\n\t\t\t\ti++;\n\t\t\t\tif(ir===rn) { break; }\n\t\t\t}\n\t\t\tif(ts.p.gridview === true ) {\n\t\t\t\tfpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tif(!locdata) {\n\t\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\t\tgrpdata = null;\n\t\t\t\t\t}\n\t\t\t\t} else if(ts.p.treeGrid === true && fpos > 0) {\n\t\t\t\t\t$(ts.rows[fpos]).after(rowData.join(''));\n\t\t\t\t} else { \n\t\t\t\t\ttablebody.append(rowData.join(''));\n\t\t\t\t\tts.grid.cols = ts.rows[0].cells;\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.totaltime = new Date() - startReq;\n\t\t\trowData = null;\n\t\t\tif(ts.p.subGrid === true ) {\n\t\t\t\ttry { self.jqGrid(\"addSubGrid\",gi+ni);} catch (_){}\n\t\t\t}\n\t\t\tif(ir>0) {\n\t\t\t\tif(ts.p.records===0) { ts.p.records=len; }\n\t\t\t}\n\t\t\tif( ts.p.treeGrid === true) {\n\t\t\t\ttry {self.jqGrid(\"setTreeNode\", fpos+1, ir+fpos+1);} catch (e) {}\n\t\t\t}\n\t\t\t//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}\n\t\t\tts.p.reccount=ir;\n\t\t\tts.p.treeANode = -1;\n\t\t\tif(ts.p.userDataOnFooter) { self.jqGrid(\"footerData\",\"set\",ts.p.userData,true); }\n\t\t\tif(locdata) {\n\t\t\t\tts.p.records = len;\n\t\t\t\tts.p.lastpage = Math.ceil(len/ rn);\n\t\t\t}\n\t\t\tif (!more) { ts.updatepager(false,true); }\n\t\t\tif(locdata) {\n\t\t\t\twhile (ir<len && drows[ir]) {\n\t\t\t\t\tcur = drows[ir];\n\t\t\t\t\tidr = $.jgrid.getAccessor(cur,idn);\n\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\tif (typeof idn === \"number\" && ts.p.colModel[idn+gi+si+ni] != null) {\n\t\t\t\t\t\t\t// reread id by name\n\t\t\t\t\t\t\tidr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni].name);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(idr === undefined) {\n\t\t\t\t\t\t\tidr = br+ir;\n\t\t\t\t\t\t\tif(f.length===0){\n\t\t\t\t\t\t\t\tif(dReader.cell){\n\t\t\t\t\t\t\t\t\tvar ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur;\n\t\t\t\t\t\t\t\t\tidr = ccur2 != null && ccur2[idn] !== undefined ? ccur2[idn] : idr;\n\t\t\t\t\t\t\t\t\tccur2=null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cur) {\n\t\t\t\t\t\tidr  = ts.p.idPrefix + idr;\n\t\t\t\t\t\trowReader=objectReader;\n\t\t\t\t\t\tif (dReader.repeatitems) {\n\t\t\t\t\t\t\tif(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}\n\t\t\t\t\t\t\tif ($.isArray(cur)) { rowReader=arrayReader; }\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (j=0;j<rowReader.length;j++) {\n\t\t\t\t\t\t\trd[ts.p.colModel[j+gi+si+ni].name] = $.jgrid.getAccessor(cur,rowReader[j]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);\n\t\t\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t\t\tgroupingPrepare.call(self, rd, ir );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tts.p.data.push(rd);\n\t\t\t\t\t\tts.p._index[rd[locid]] = ts.p.data.length-1;\n\t\t\t\t\t\trd = {};\n\t\t\t\t\t}\n\t\t\t\t\tir++;\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\tts.p.groupingView._locgr = true;\n\t\t\t\t\tself.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);\n\t\t\t\t\tgrpdata = null;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\taddLocalData = function( retAll ) {\n\t\t\tvar st = ts.p.multiSort ? [] : \"\", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld;\n\t\t\tif(!$.isArray(ts.p.data)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si;\n\t\t\t$.each(ts.p.colModel,function(){\n\t\t\t\tsorttype = this.sorttype || \"text\";\n\t\t\t\tsi = this.index || this.name;\n\t\t\t\tif(sorttype === \"date\" || sorttype === \"datetime\") {\n\t\t\t\t\tif(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') {\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.srcformat) {\n\t\t\t\t\t\t\tsrcformat = this.formatoptions.srcformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsrcformat = $.jgrid.getRegional(ts, \"formatter.date.srcformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.formatoptions && this.formatoptions.newformat) {\n\t\t\t\t\t\t\tnewformat = this.formatoptions.newformat;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnewformat = $.jgrid.getRegional(ts, \"formatter.date.newformat\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsrcformat = newformat = this.datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\": srcformat,\"newfmt\":newformat, \"sfunc\": this.sortfunc || null};\n\t\t\t\t} else {\n\t\t\t\t\tcmtypes[si] = {\"stype\": sorttype, \"srcfmt\":'',\"newfmt\":'', \"sfunc\": this.sortfunc || null};\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping ) {\n\t\t\t\t\tfor(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) {\n\t\t\t\t\t\tif( this.name === grpview.groupField[gin]) {\n\t\t\t\t\t\t\tgrtypes[gin] = cmtypes[si];\n\t\t\t\t\t\t\tgrindexes[gin]= si;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!ts.p.multiSort) {\n\t\t\t\t\tif(!fndsort && (si === ts.p.sortname)){\n\t\t\t\t\t\tst = si; \n\t\t\t\t\t\tfndsort = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tst =  sortarr;\n\t\t\t\tsto = sortord;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p._sort) {\n\t\t\t\t$(ts).jqGrid(\"SortTree\", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || '');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar compareFnMap = {\n\t\t\t\t'eq':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'ne':function(queryObj) {return queryObj.notEquals;},\n\t\t\t\t'lt':function(queryObj) {return queryObj.less;},\n\t\t\t\t'le':function(queryObj) {return queryObj.lessOrEquals;},\n\t\t\t\t'gt':function(queryObj) {return queryObj.greater;},\n\t\t\t\t'ge':function(queryObj) {return queryObj.greaterOrEquals;},\n\t\t\t\t'cn':function(queryObj) {return queryObj.contains;},\n\t\t\t\t'nc':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().contains : queryObj.andNot().contains;},\n\t\t\t\t'bw':function(queryObj) {return queryObj.startsWith;},\n\t\t\t\t'bn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;},\n\t\t\t\t'en':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;},\n\t\t\t\t'ew':function(queryObj) {return queryObj.endsWith;},\n\t\t\t\t'ni':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().equals : queryObj.andNot().equals;},\n\t\t\t\t'in':function(queryObj) {return queryObj.equals;},\n\t\t\t\t'nu':function(queryObj) {return queryObj.isNull;},\n\t\t\t\t'nn':function(queryObj,op) {return op === \"OR\" ? queryObj.orNot().isNull : queryObj.andNot().isNull;}\n\n\t\t\t},\n\t\t\tquery = $.jgrid.from.call(ts, ts.p.data);\n\t\t\tif (ts.p.ignoreCase) { query = query.ignoreCase(); }\n\t\t\tfunction tojLinq ( group ) {\n\t\t\t\tvar s = 0, index, gor, ror, opr, rule, fld;\n\t\t\t\tif (group.groups != null) {\n\t\t\t\t\tgor = group.groups.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t}\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s > 0 && gor) {\n\t\t\t\t\t\t\tquery.or();\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttojLinq(group.groups[index]);\n\t\t\t\t\t\t} catch (e) {alert(e);}\n\t\t\t\t\t\ts++;\n\t\t\t\t\t}\n\t\t\t\t\tif (gor) {\n\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (group.rules != null) {\n\t\t\t\t\t//if(s>0) {\n\t\t\t\t\t//\tvar result = query.select();\n\t\t\t\t\t//\tquery = $.jgrid.from( result);\n\t\t\t\t\t//\tif (ts.p.ignoreCase) { query = query.ignoreCase(); } \n\t\t\t\t\t//}\n\t\t\t\t\ttry{\n\t\t\t\t\t\tror = group.rules.length && group.groupOp.toString().toUpperCase() === \"OR\";\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orBegin();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\t\trule = group.rules[index];\n\t\t\t\t\t\t\topr = group.groupOp.toString().toUpperCase();\n\t\t\t\t\t\t\tif (compareFnMap[rule.op] && rule.field ) {\n\t\t\t\t\t\t\t\tif(s > 0 && opr && opr === \"OR\") {\n\t\t\t\t\t\t\t\t\tquery = query.or();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfld = cmtypes[rule.field];\n\t\t\t\t\t\t\t\tif(fld.stype === 'date') {\n\t\t\t\t\t\t\t\t\tif(fld.srcfmt && fld.newfmt && fld.srcfmt !== fld.newfmt ) {\n\t\t\t\t\t\t\t\t\t\trule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tquery = compareFnMap[rule.op](query, opr)(rule.field, rule.data, cmtypes[rule.field]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ts++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ror) {\n\t\t\t\t\t\t\tquery.orEnd();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (g) {alert(g);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ts.p.search === true) {\n\t\t\t\tvar srules = ts.p.postData.filters;\n\t\t\t\tif(srules) {\n\t\t\t\t\tif(typeof srules === \"string\") { srules = $.jgrid.parse(srules);}\n\t\t\t\t\ttojLinq( srules );\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsfld = cmtypes[ts.p.postData.searchField];\n\t\t\t\t\t\tif(sfld.stype === 'date') {\n\t\t\t\t\t\t\tif(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) {\n\t\t\t\t\t\t\t\tts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tquery = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]);\n\t\t\t\t\t} catch (se){}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"nested\") {\n\t\t\t\t\tquery.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.treeGridModel === \"adjacency\") {\n\t\t\t\tlengrp =0;\n\t\t\t\tst = null;\n\t\t\t}\n\t\t\tif(ts.p.grouping) {\n\t\t\t\tfor(gin=0; gin<lengrp;gin++) {\n\t\t\t\t\tquery.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\t$.each(st,function(i){\n\t\t\t\t\tquery.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (st && ts.p.sortorder && fndsort) {\n\t\t\t\t\t// to be fixed in case sortname has more than one field\n\t\t\t\t\tif(ts.p.sortorder.toUpperCase() === \"DESC\") {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"d\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tquery.orderBy(ts.p.sortname, \"a\", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar queryResults = query.select(),\n\t\t\trecordsperpage = parseInt(ts.p.rowNum,10),\n\t\t\ttotal = queryResults.length,\n\t\t\tpage = parseInt(ts.p.page,10),\n\t\t\ttotalpages = Math.ceil(total / recordsperpage),\n\t\t\tretresult = {};\n\t\t\tif((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) {\n\t\t\t\tts.p.groupingView.groups =[];\n\t\t\t\tvar j, grPrepare = $.jgrid.getMethod(\"groupingPrepare\"), key, udc;\n\t\t\t\tif(ts.p.footerrow && ts.p.userDataOnFooter) {\n\t\t\t\t\tfor (key in ts.p.userData) {\n\t\t\t\t\t\tif(ts.p.userData.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tts.p.userData[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tudc = true;\n\t\t\t\t}\n\t\t\t\tfor(j=0; j<total; j++) {\n\t\t\t\t\tif(udc) {\n\t\t\t\t\t\tfor(key in ts.p.userData){\n\t\t\t\t\t\t\tif( ts.p.userData.hasOwnProperty( key ) ) {\n\t\t\t\t\t\t\t\tts.p.userData[key] += parseFloat(queryResults[j][key] || 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrPrepare.call($(ts),queryResults[j],j, recordsperpage );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( retAll ) {\n\t\t\t\treturn  queryResults;\n\t\t\t}\n\t\t\tif(ts.p.treeGrid && ts.p.search) {\n\t\t\t\tqueryResults = $(ts).jqGrid(\"searchTree\", queryResults);\n\t\t\t} else {\n\t\t\t\tqueryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );\n\t\t\t}\n\t\t\tquery = null;\n\t\t\tcmtypes = null;\n\t\t\tretresult[ts.p.localReader.total] = totalpages;\n\t\t\tretresult[ts.p.localReader.page] = page;\n\t\t\tretresult[ts.p.localReader.records] = total;\n\t\t\tretresult[ts.p.localReader.root] = queryResults;\n\t\t\tretresult[ts.p.localReader.userdata] = ts.p.userData;\n\t\t\tqueryResults = null;\n\t\t\treturn  retresult;\n\t\t},\n\t\tupdatepager = function(rn, dnd) {\n\t\t\tvar cp, last, base, from,to,tot,fmt, pgboxes = \"\", sppg,\n\t\t\tpgid = ts.p.pager ? $.jgrid.jqID(ts.p.pager.substr(1)) : \"\",\n\t\t\ttspg = pgid ? \"_\"+pgid : \"\",\n\t\t\ttspg_t = ts.p.toppager ? \"_\"+ts.p.toppager.substr(1) : \"\";\n\t\t\tbase = parseInt(ts.p.page,10)-1;\n\t\t\tif(base < 0) { base = 0; }\n\t\t\tbase = base*parseInt(ts.p.rowNum,10);\n\t\t\tto = base + ts.p.reccount;\n\t\t\tif (ts.p.scroll) {\n\t\t\t\tvar rows = $(\"tbody:first > tr:gt(0)\", ts.grid.bDiv);\n\t\t\t\tif(to > ts.p.records) {\n\t\t\t\t\tto = ts.p.records;\n\t\t\t\t}\n\t\t\t\tbase = to - rows.length;\n\t\t\t\tts.p.reccount = rows.length;\n\t\t\t\tvar rh = rows.outerHeight() || ts.grid.prevRowHeight;\n\t\t\t\tif (rh) {\n\t\t\t\t\tvar top = base * rh;\n\t\t\t\t\tvar height = parseInt(ts.p.records,10) * rh;\n\t\t\t\t\t$(\">div:first\",ts.grid.bDiv).css({height : height}).children(\"div:first\").css({height:top,display:top?\"\":\"none\"});\n\t\t\t\t\tif (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;\n\t\t\t}\n\t\t\tpgboxes = ts.p.pager || \"\";\n\t\t\tpgboxes += ts.p.toppager ?  (pgboxes ? \",\" + ts.p.toppager : ts.p.toppager) : \"\";\n\t\t\tif(pgboxes) {\n\t\t\t\tfmt = $.jgrid.getRegional(ts, \"formatter.integer\");\n\t\t\t\tcp = intNum(ts.p.page);\n\t\t\t\tlast = intNum(ts.p.lastpage);\n\t\t\t\t$(\".selbox\",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ](\"disabled\",false);\n\t\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t\t$(\"#input\"+tspg).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\"));\n\t\t\t\t\tif(ts.p.toppager) {\n\t\t\t\t\t\t$(\"#input_t\"+tspg_t).html($.jgrid.template($.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input \"+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + \" type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"_toppager'></span>\"));\n\t\t\t\t\t}\n\t\t\t\t\t$('.ui-pg-input',pgboxes).val(ts.p.page);\n\t\t\t\t\tsppg = ts.p.toppager ? '#sp_1'+tspg+\",#sp_1\"+tspg+\"_toppager\" : '#sp_1'+tspg;\n\t\t\t\t\t$(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);\n\t\t\t\t}\n\t\t\t\tif (ts.p.viewrecords){\n\t\t\t\t\tif(ts.p.reccount === 0) {\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.getRegional(ts, \"defaults.emptyrecords\", ts.p.emptyrecords ));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfrom = base+1;\n\t\t\t\t\t\ttot=ts.p.records;\n\t\t\t\t\t\tif($.fmatter) {\n\t\t\t\t\t\t\tfrom = $.fmatter.util.NumberFormat(from,fmt);\n\t\t\t\t\t\t\tto = $.fmatter.util.NumberFormat(to,fmt);\n\t\t\t\t\t\t\ttot = $.fmatter.util.NumberFormat(tot,fmt);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rt = $.jgrid.getRegional(ts, \"defaults.recordtext\", ts.p.recordtext);\n\t\t\t\t\t\t$(\".ui-paging-info\",pgboxes).html($.jgrid.template( rt ,from,to,tot));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t\tif(cp<=0) {cp = last = 0;}\n\t\t\t\t\tif(cp===1 || cp === 0) {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#first\"+tspg+\", #prev\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#first_t\"+tspg_t+\", #prev_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t\tif(cp===last || cp === 0) {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).addClass( disabled ).removeClass( hover );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).addClass( disabled ).removeClass( hover ); }\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#next\"+tspg+\", #last\"+tspg).removeClass( disabled );\n\t\t\t\t\t\tif(ts.p.toppager) { $(\"#next_t\"+tspg_t+\", #last_t\"+tspg_t).removeClass( disabled ); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(rn===true && ts.p.rownumbers === true) {\n\t\t\t\t$(\">td.jqgrid-rownum\",ts.rows).each(function(i){\n\t\t\t\t\t$(this).html(base+1+i);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}\n\t\t\t$(ts).triggerHandler(\"jqGridGridComplete\");\n\t\t\tif($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}\n\t\t\t$(ts).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t},\n\t\tbeginReq = function() {\n\t\t\tts.grid.hDiv.loading = true;\n\t\t\tif(ts.p.hiddengrid) { return;}\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"show\", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, \"defaults.loadtext\", ts.p.loadtext) });\n\t\t},\n\t\tendReq = function() {\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(ts).jqGrid(\"progressBar\", {method:\"hide\", loadtype : ts.p.loadui });\n\t\t},\n\t\tpopulate = function (npage) {\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tvar pvis = ts.p.scroll && npage === false,\n\t\t\t\tprm = {}, dt, dstr, pN=ts.p.prmNames;\n\t\t\t\tif(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); }\n\t\t\t\tif(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}\n\t\t\t\tif(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}\n\t\t\t\tif(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}\n\t\t\t\tif(ts.p.rowTotal !== null && pN.totalrows !== null) { prm[pN.totalrows]= ts.p.rowTotal; }\n\t\t\t\tvar lcf = $.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null;\n\t\t\t\tvar adjust = 0;\n\t\t\t\tnpage = npage || 1;\n\t\t\t\tif (npage > 1) {\n\t\t\t\t\tif(pN.npage !== null) {\n\t\t\t\t\t\tprm[pN.npage] = npage;\n\t\t\t\t\t\tadjust = npage - 1;\n\t\t\t\t\t\tnpage = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlc = function(req) {\n\t\t\t\t\t\t\tts.p.page++;\n\t\t\t\t\t\t\tts.grid.hDiv.loading = false;\n\t\t\t\t\t\t\tif (lcf) {\n\t\t\t\t\t\t\t\tts.p.loadComplete.call(ts,req);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopulate(npage-1);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} else if (pN.npage !== null) {\n\t\t\t\t\tdelete ts.p.postData[pN.npage];\n\t\t\t\t}\n\t\t\t\tif(ts.p.grouping) {\n\t\t\t\t\t$(ts).jqGrid('groupingSetup');\n\t\t\t\t\tvar grp = ts.p.groupingView, gi, gs=\"\";\n\t\t\t\t\tfor(gi=0;gi<grp.groupField.length;gi++) {\n\t\t\t\t\t\tvar index = grp.groupField[gi];\n\t\t\t\t\t\t$.each(ts.p.colModel, function(cmIndex, cmValue) {\n\t\t\t\t\t\t\tif (cmValue.name === index && cmValue.index){\n\t\t\t\t\t\t\t\tindex = cmValue.index;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tgs += index +\" \"+grp.groupOrder[gi]+\", \";\n\t\t\t\t\t}\n\t\t\t\t\tprm[pN.sort] = gs + prm[pN.sort];\n\t\t\t\t}\n\t\t\t\t$.extend(ts.p.postData,prm);\n\t\t\t\tvar rcnt = !ts.p.scroll ? 1 : ts.rows.length-1;\n\t\t\t\tvar bfr = $(ts).triggerHandler(\"jqGridBeforeRequest\");\n\t\t\t\tif (bfr === false || bfr === 'stop') { return; }\n\t\t\t\tif ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,\"load_\"+ts.p.id, rcnt, npage, adjust); return;}\n\t\t\t\tif ($.isFunction(ts.p.beforeRequest)) {\n\t\t\t\t\tbfr = ts.p.beforeRequest.call(ts);\n\t\t\t\t\tif(bfr === undefined) { bfr = true; }\n\t\t\t\t\tif ( bfr === false ) { return; }\n\t\t\t\t}\n\t\t\t\tdt = ts.p.datatype.toLowerCase();\n\t\t\t\tswitch(dt)\n\t\t\t\t{\n\t\t\t\tcase \"json\":\n\t\t\t\tcase \"jsonp\":\n\t\t\t\tcase \"xml\":\n\t\t\t\tcase \"script\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl:ts.p.url,\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\tdataType: dt ,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,\n\t\t\t\t\t\tsuccess:function(data,st, xhr) {\n\t\t\t\t\t\t\tif ($.isFunction(ts.p.beforeProcessing)) {\n\t\t\t\t\t\t\t\tif (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) {\n\t\t\t\t\t\t\t\t\tendReq();\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dt === \"xml\") { addXmlData(data, rcnt,npage>1,adjust); }\n\t\t\t\t\t\t\telse { addJSONData(data, rcnt, npage>1, adjust); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [data]);\n\t\t\t\t\t\t\tif(lc) { lc.call(ts,data); }\n\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [data]);\n\t\t\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\t\t\tif( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = \"local\";}\n\t\t\t\t\t\t\tdata=null;\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror:function(xhr,st,err){\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }\n\t\t\t\t\t\t\tif (npage === 1) { endReq(); }\n\t\t\t\t\t\t\txhr=null;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbeforeSend: function(xhr, settings ){\n\t\t\t\t\t\t\tvar gotoreq = true;\n\t\t\t\t\t\t\tif($.isFunction(ts.p.loadBeforeSend)) {\n\t\t\t\t\t\t\t\tgotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(gotoreq === undefined) { gotoreq = true; }\n\t\t\t\t\t\t\tif(gotoreq === false) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbeginReq();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));\n\t\t\t\tbreak;\n\t\t\t\tcase \"xmlstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tdstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr);\n\t\t\t\t\taddXmlData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"jsonstring\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tif(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); }\n\t\t\t\t\telse { dstr = ts.p.datastr; }\n\t\t\t\t\taddJSONData(dstr);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [dstr]);\n\t\t\t\t\tif(lcf) {ts.p.loadComplete.call(ts,dstr);}\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [dstr]);\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p.datastr = null;\n\t\t\t\t\tendReq();\n\t\t\t\tbreak;\n\t\t\t\tcase \"local\":\n\t\t\t\tcase \"clientside\":\n\t\t\t\t\tbeginReq();\n\t\t\t\t\tts.p.datatype = \"local\";\n\t\t\t\t\tts.p._ald = true;\n\t\t\t\t\tvar req = addLocalData( false );\n\t\t\t\t\taddJSONData(req,rcnt,npage>1,adjust);\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridLoadComplete\", [req]);\n\t\t\t\t\tif(lc) { lc.call(ts,req); }\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridAfterLoadComplete\", [req]);\n\t\t\t\t\tif (pvis) { ts.grid.populateVisible(); }\n\t\t\t\t\tendReq();\n\t\t\t\t\tts.p._ald = false;\n\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tts.p._sort = false;\n\t\t\t}\n\t\t},\n\t\tsetHeadCheckBox = function ( checked ) {\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\tvar fid = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\tif(fid) {\n\t\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr'](\"checked\", checked);\n\t\t\t}\n\t\t},\n\t\tsetPager = function (pgid, tp){\n\t\t\t// TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid);\n\t\t\tvar sep = \"<td class='ui-pg-button \"+disabled+\"'><span class='ui-separator'></span></td>\",\n\t\t\tpginp = \"\",\n\t\t\tpgl=\"<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>\",\n\t\t\tstr=\"\", pgcnt, lft, cent, rgt, twd, tdw, i,\n\t\t\tclearVals = function(onpaging, thus){\n\t\t\t\tvar ret;\n\t\t\t\tif ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); }\n\t\t\t\tif(ret==='stop') {return false;}\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[]; setHeadCheckBox( false );}\n\t\t\t\tts.p.savedRow = [];\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tpgid = pgid.substr(1);\n\t\t\ttp += \"_\" + pgid;\n\t\t\tpgcnt = \"pg_\"+pgid;\n\t\t\tlft = pgid+\"_left\"; cent = pgid+\"_center\"; rgt = pgid+\"_right\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pgid) )\n\t\t\t.append(\"<div id='\"+pgcnt+\"' class='ui-pager-control' role='group'><table \" + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + \"><tbody><tr><td id='\"+lft+\"' align='left'></td><td id='\"+cent+\"' align='center' style='white-space:pre;'></td><td id='\"+rgt+\"' align='right'></td></tr></tbody></table></div>\")\n\t\t\t.attr(\"dir\",\"ltr\"); //explicit setting\n\t\t\tif(ts.p.rowList.length >0){\n\t\t\t\tstr = \"<td dir=\\\"\"+dir+\"\\\">\";\n\t\t\t\tstr +=\"<select \"+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+\" role=\\\"listbox\\\" title=\\\"\"+($.jgrid.getRegional(ts,\"defaults.pgrecs\",ts.p.pgrecs) || \"\")+ \"\\\">\";\n\t\t\t\tvar strnm;\n\t\t\t\tfor(i=0;i<ts.p.rowList.length;i++){\n\t\t\t\t\tstrnm = ts.p.rowList[i].toString().split(\":\");\n\t\t\t\t\tif(strnm.length === 1) {\n\t\t\t\t\t\tstrnm[1] = strnm[0];\n\t\t\t\t\t}\n\t\t\t\t\tstr +=\"<option role=\\\"option\\\" value=\\\"\"+strnm[0]+\"\\\"\"+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?\" selected=\\\"selected\\\"\":\"\")+\">\"+strnm[1]+\"</option>\";\n\t\t\t\t}\n\t\t\t\tstr +=\"</select></td>\";\n\t\t\t}\n\t\t\tif(dir===\"rtl\") { pgl += str; }\n\t\t\tif(ts.p.pginput===true) { \n\t\t\t\tpginp= \"<td id='input\"+tp+\"' dir='\"+dir+\"'>\"+$.jgrid.template( $.jgrid.getRegional(ts, \"defaults.pgtext\", ts.p.pgtext) || \"\",\"<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>\",\"<span id='sp_1_\"+$.jgrid.jqID(pgid)+\"'></span>\")+\"</td>\";\n\t\t\t}\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\tvar po=[\"first\"+tp,\"prev\"+tp, \"next\"+tp,\"last\"+tp], btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'),\n\t\t\t\t\t\tpot = [($.jgrid.getRegional(ts,\"defaults.pgfirst\",ts.p.pgfirst) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgprev\",ts.p.pgprev) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pgnext\",ts.p.pgnext) || \"\"),\n\t\t\t\t\t\t\t\t($.jgrid.getRegional(ts,\"defaults.pglast\",ts.p.pglast) || \"\")];\n\t\t\t\tif(dir===\"rtl\") { \n\t\t\t\t\tpo.reverse();\n\t\t\t\t\tpot.reverse();\n\t\t\t\t}\n\t\t\t\tpgl += \"<td id='\"+po[0]+\"' class='\"+btc+\"' title='\"+ pot[0] +\"'\" + \"><span \" + getstyle(stylemodule, 'icon_first', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[1]+\"' class='\"+btc+\"'  title='\"+ pot[1] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_prev', false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += pginp !== \"\" ? sep+pginp+sep:\"\";\n\t\t\t\tpgl += \"<td id='\"+po[2]+\"' class='\"+btc+\"' title='\"+ pot[2] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_next',false, iconbase)+\"></span></td>\";\n\t\t\t\tpgl += \"<td id='\"+po[3]+\"' class='\"+btc+\"' title='\"+ pot[3] +\"'\" +\"><span \" + getstyle(stylemodule, 'icon_end',false, iconbase)+\"></span></td>\";\n\t\t\t} else if (pginp !== \"\") { \n\t\t\t\tpgl += pginp; \n\t\t\t}\n\t\t\tif(dir===\"ltr\") { \n\t\t\t\tpgl += str; \n\t\t\t}\n\t\t\tpgl += \"</tr></tbody></table>\";\n\t\t\tif(ts.p.viewrecords===true) {\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.recordpos,\"#\"+pgcnt).append(\"<div dir='\"+dir+\"' style='text-align:\"+ts.p.recordpos+\"' class='ui-paging-info'></div>\");\n\t\t\t}\n\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).append(pgl);\n\t\t\ttdw = $(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).css(\"font-size\") || \"11px\";\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).append(\"<div id='testpg' \"+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+\" style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\ttwd = $(pgl).clone().appendTo(\"#testpg\").width();\n\t\t\t$(\"#testpg\").remove();\n\t\t\tif(twd > 0) {\n\t\t\t\tif(pginp !== \"\") { twd += 50; } //should be param\n\t\t\t\t$(\"td#\"+pgid+\"_\"+ts.p.pagerpos,\"#\"+pgcnt).width(twd);\n\t\t\t}\n\t\t\tts.p._nvtd = [];\n\t\t\tts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);\n\t\t\tts.p._nvtd[1] = 0; \n\t\t\tpgl=null;\n\t\t\t$('.ui-pg-selbox',\"#\"+pgcnt).on('change',function() {\n\t\t\t\tif(!clearVals('records', this)) { return false; }\n\t\t\t\tts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;\n\t\t\t\tts.p.rowNum = this.value;\n\t\t\t\tif(ts.p.pager) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }\n\t\t\t\tif(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }\n\t\t\t\tpopulate();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tif(ts.p.pgbuttons===true) {\n\t\t\t\t$(\".ui-pg-button\",\"#\"+pgcnt).hover(function(){\n\t\t\t\t\tif($(this).hasClass(disabled)) {\n\t\t\t\t\t\tthis.style.cursor='default';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\tthis.style.cursor='pointer';\n\t\t\t\t\t}\n\t\t\t\t},function() {\n\t\t\t\t\tif(!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t$(this).removeClass(hover);\n\t\t\t\t\t\tthis.style.cursor= \"default\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#first\"+$.jgrid.jqID(tp)+\", #prev\"+$.jgrid.jqID(tp)+\", #next\"+$.jgrid.jqID(tp)+\", #last\"+$.jgrid.jqID(tp)).click( function() {\n\t\t\t\t\tif ($(this).hasClass(disabled)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tvar cp = intNum(ts.p.page,1),\n\t\t\t\t\tlast = intNum(ts.p.lastpage,1), selclick = false,\n\t\t\t\t\tfp=true, pp=true, np=true,lp=true;\n\t\t\t\t\tif(last ===0 || last===1) {\n\t\t\t\t\t\tfp=false;\n\t\t\t\t\t\tpp=false;\n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t} else if( last>1 && cp >=1) {\n\t\t\t\t\t\tif( cp === 1) { \n\t\t\t\t\t\t\tfp=false; \n\t\t\t\t\t\t\tpp=false; \n\t\t\t\t\t\t} else if( cp===last){ \n\t\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( last>1 && cp===0 ) { \n\t\t\t\t\t\tnp=false;\n\t\t\t\t\t\tlp=false; \n\t\t\t\t\t\tcp=last-1;\n\t\t\t\t\t}\n\t\t\t\t\tif(!clearVals(this.id.split(\"_\")[0], this)) { return false; }\n\t\t\t\t\tif( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;}\n\t\t\t\t\tif( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;}\n\t\t\t\t\tif( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;}\n\t\t\t\t\tif( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}\n\t\t\t\t\tif(selclick) {\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(ts.p.pginput===true) {\n\t\t\t\t$(\"#\"+pgcnt).on('keypress','input.ui-pg-input', function(e) {\n\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\tif(key === 13) {\n\t\t\t\t\t\tif(!clearVals('user', this)) { return false; }\n\t\t\t\t\t\t$(this).val( intNum( $(this).val(), 1));\n\t\t\t\t\t\tts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;\n\t\t\t\t\t\tpopulate();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmultiSort = function(iCol, obj, sor ) {\n\t\t\tvar cm = ts.p.colModel,\n\t\t\t\t\tselTh = ts.p.frozenColumns ?  obj : ts.grid.headers[iCol].el, so=\"\", sn;\n\t\t\t$(\"span.ui-grid-ico-sort\",selTh).addClass(disabled);\n\t\t\t$(selTh).attr(\"aria-selected\",\"false\");\n\t\t\tsn = (cm[iCol].index || cm[iCol].name);\n\t\t\tif ( typeof sor == \"undefined\" )\n\t\t\t{\n\t\t\t\tif(cm[iCol].lso) {\n\t\t\t\t\tif(cm[iCol].lso===\"asc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-desc\";\n\t\t\t\t\t\tso = \"desc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"desc\") {\n\t\t\t\t\t\tcm[iCol].lso += \"-asc\";\n\t\t\t\t\t\tso = \"asc\";\n\t\t\t\t\t} else if(cm[iCol].lso===\"asc-desc\" || cm[iCol].lso===\"desc-asc\") {\n\t\t\t\t\t\tcm[iCol].lso=\"\";\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcm[iCol].lso = so = cm[iCol].firstsortorder || 'asc';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcm[iCol].lso = so = sor;\n\t\t\t}\t\n\t\t\tif( so ) {\n\t\t\t\t$(\"span.s-ico\",selTh).show();\n\t\t\t\t$(\"span.ui-icon-\"+so,selTh).removeClass(disabled);\n\t\t\t\t$(selTh).attr(\"aria-selected\",\"true\");\n\t\t\t} else {\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\t$(\"span.s-ico\",selTh).hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar isn = sortarr.indexOf( sn );\n\t\t\tif( isn === -1 ) {\n\t\t\t\tsortarr.push( sn );\n\t\t\t\tsortord.push( so );\n\t\t\t} else {\n\t\t\t\tif( so ) {\n\t\t\t\t\tsortord[isn] = so;\n\t\t\t\t} else {\n\t\t\t\t\tsortord.splice( isn, 1 );\n\t\t\t\t\tsortarr.splice( isn, 1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = \"\";\n\t\t\tts.p.sortname = \"\";\n\t\t\tfor( var i = 0, len = sortarr.length; i < len ; i++) {\n\t\t\t\tif( i > 0) {\n\t\t\t\t\tts.p.sortname += \", \";\n\t\t\t\t}\n\t\t\t\tts.p.sortname += sortarr[ i ];\n\t\t\t\tif( i !== len -1) {\n\t\t\t\t\tts.p.sortname += \" \"+sortord[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tts.p.sortorder = sortord[ len -1 ];\n\t\t\t/*\n\t\t\t$.each(cm, function(i){\n\t\t\t\tif(this.lso) {\n\t\t\t\t\tif(i>0 && fs) {\n\t\t\t\t\t\tsort += \", \";\n\t\t\t\t\t}\n\t\t\t\t\tsplas = this.lso.split(\"-\");\n\t\t\t\t\tsort += cm[i].index || cm[i].name;\n\t\t\t\t\tsort += \" \"+splas[splas.length-1];\n\t\t\t\t\tfs = true;\n\t\t\t\t\tts.p.sortorder = splas[splas.length-1];\n\t\t\t\t}\n\t\t\t});\n\t\t\tls = sort.lastIndexOf(ts.p.sortorder);\n\t\t\tsort = sort.substring(0, ls);\n\t\t\tts.p.sortname = sort;\n\t\t\t*/\n\t\t},\n\t\tsortData = function (index, idxcol,reload,sor, obj){\n\t\t\tif(!ts.p.colModel[idxcol].sortable) { return; }\n\t\t\tif(ts.p.savedRow.length > 0) {return;}\n\t\t\tif(!reload) {\n\t\t\t\tif( ts.p.lastsort === idxcol && ts.p.sortname !== \"\" ) {\n\t\t\t\t\tif( ts.p.sortorder === 'asc') {\n\t\t\t\t\t\tts.p.sortorder = 'desc';\n\t\t\t\t\t} else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';}\n\t\t\t\t} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }\n\t\t\t\tts.p.page = 1;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tmultiSort( idxcol, obj, sor);\n\t\t\t} else {\n\t\t\t\tif(sor) {\n\t\t\t\t\tif(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; }\n\t\t\t\t\tts.p.sortorder = sor;\n\t\t\t\t}\n\t\t\t\tvar previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = ts.p.frozenColumns ?  obj : ts.grid.headers[idxcol].el,\n\t\t\t\t\t\t//sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled);\n\t\t\t\t\tusehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon;\n\t\t\t\ttmpicon = $(previousSelectedTh).find(\"span.ui-grid-ico-sort\");\n\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\tif(usehide) { \n\t\t\t\t\t$(tmpicon).css(\"display\",\"none\"); \n\t\t\t\t}\n\t\t\t\t$(previousSelectedTh).attr(\"aria-selected\",\"false\");\n\t\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t\ttmpicon = ts.grid.fhDiv.find(\"span.ui-grid-ico-sort\");\n\t\t\t\t\ttmpicon.addClass(disabled);\n\t\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"none\"); }\n\t\t\t\t\tts.grid.fhDiv.find(\"th\").attr(\"aria-selected\",\"false\");\n\t\t\t\t}\n\t\t\t\ttmpicon = $(newSelectedTh).find(\"span.ui-icon-\"+ts.p.sortorder);\n\t\t\t\ttmpicon.removeClass(disabled);\n\t\t\t\tif(usehide) { tmpicon.css(\"display\",\"\"); }\n\t\t\t\t$(newSelectedTh).attr(\"aria-selected\",\"true\");\n\t\t\t\tif(!ts.p.viewsortcols[0]) {\n\t\t\t\t\tif(ts.p.lastsort !== idxcol) {\n\t\t\t\t\t\tif(ts.p.frozenColumns){\n\t\t\t\t\t\t\tts.grid.fhDiv.find(\"span.s-ico\").hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"span.s-ico\",previousSelectedTh).hide();\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t} else if (ts.p.sortname === \"\") { // if ts.p.lastsort === idxcol but ts.p.sortname === \"\"\n\t\t\t\t\t\t$(\"span.s-ico\",newSelectedTh).show();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tindex = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?!\n\t\t\t\tts.p.sortname = ts.p.colModel[idxcol].index || index;\n\t\t\t}\n\t\t\tif ($(ts).triggerHandler(\"jqGridSortCol\", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') {\n\t\t\t\tts.p.lastsort = idxcol;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') {ts.p.lastsort = idxcol; return;}}\n\t\t\tif(ts.p.datatype === \"local\") {\n\t\t\t\tif(ts.p.deselectAfterSort) {$(ts).jqGrid(\"resetSelection\");}\n\t\t\t} else {\n\t\t\t\tts.p.selrow = null;\n\t\t\t\tif(ts.p.multiselect){setHeadCheckBox( false );}\n\t\t\t\tts.p.selarrrow =[];\n\t\t\t\tts.p.savedRow =[];\n\t\t\t}\n\t\t\tif(ts.p.scroll) {\n\t\t\t\tvar sscroll = ts.grid.bDiv.scrollLeft;\n\t\t\t\temptyRows.call(ts, true, false);\n\t\t\t\tts.grid.hDiv.scrollLeft = sscroll;\n\t\t\t}\n\t\t\tif(ts.p.subGrid && ts.p.datatype === 'local') {\n\t\t\t\t$(\"td.sgexpanded\",\"#\"+$.jgrid.jqID(ts.p.id)).each(function(){\n\t\t\t\t\t$(this).trigger(\"click\");\n\t\t\t\t});\n\t\t\t}\n\t\t\tts.p._sort = true;\n\t\t\tpopulate();\n\t\t\tts.p.lastsort = idxcol;\n\t\t\tif(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;}\n\t\t},\n\t\tsetColWidth = function () {\n\t\t\tvar initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr;\n\t\t\t$.each(ts.p.colModel, function() {\n\t\t\t\tif(this.hidden === undefined) {this.hidden=false;}\n\t\t\t\tif(ts.p.grouping && ts.p.autowidth) {\n\t\t\t\t\tvar ind = $.inArray(this.name, ts.p.groupingView.groupField);\n\t\t\t\t\tif(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) {\n\t\t\t\t\t\tthis.hidden = !ts.p.groupingView.groupColumnShow[ind];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.widthOrg = cw = intNum(this.width,0);\n\t\t\t\tif(this.hidden===false){\n\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvc++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(isNaN(ts.p.width)) {\n\t\t\t\tts.p.width  = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0);\n\t\t\t}\n\t\t\tgrid.width = parseInt(ts.p.width,10);\n\t\t\tts.p.tblwidth = initwidth;\n\t\t\tif(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}\n\t\t\tif(ts.p.shrinkToFit===true && vc > 0) {\n\t\t\t\taw = grid.width-brd*vc-gw;\n\t\t\t\tif(!isNaN(ts.p.height)) {\n\t\t\t\t\taw -= scw;\n\t\t\t\t\ths = true;\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\t$.each(ts.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(grid.width-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = grid.width-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\tts.p.colModel[lvc].width += cr;\n\t\t\t\tts.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif(ts.p.tblwidth > ts.p.width) {\n\t\t\t\t\tts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));\n\t\t\t\t\tts.p.tblwidth = ts.p.width;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tnextVisible= function(iCol) {\n\t\t\tvar ret = iCol, j=iCol, i;\n\t\t\tfor (i = iCol+1;i<ts.p.colModel.length;i++){\n\t\t\t\tif(ts.p.colModel[i].hidden !== true ) {\n\t\t\t\t\tj=i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn j-ret;\n\t\t},\n\t\tgetOffset = function (iCol) {\n\t\t\tvar $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()];\n\t\t\tif(ts.p.direction===\"rtl\") { ret[0] = ts.p.width - ret[0]; }\n\t\t\tret[0] -= ts.grid.bDiv.scrollLeft;\n\t\t\tret.push($(ts.grid.hDiv).position().top);\n\t\t\tret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height());\n\t\t\treturn ret;\n\t\t},\n\t\tgetColumnHeaderIndex = function (th) {\n\t\t\tvar i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th);\n\t\t\tfor (i = 0; i < headers.length; i++) {\n\t\t\t\tif (th === headers[i].el) {\n\t\t\t\t\tci = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn ci;\n\t\t},\n\t\tbuildColItems = function (top, left, parent) {\n\t\t\tvar cm = ts.p.colModel, len = cm.length, i, cols=[], disp,\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tstr1 = '<ul id=\"col_menu\" class=\"ui-search-menu  ui-col-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\">';\n\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t//if(!cm[i].hidedlg) { // column chooser\n\t\t\t\tvar hid = !cm[i].hidden ? \"checked\" : \"\", nm = cm[i].name, lb = ts.p.colNames[i];\n\t\t\t\tdisp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || cm[i].hidedlg) ? \"style='display:none'\" :\"\";\n\t\t\t\tstr1 += '<li '+disp+' class=\"ui-menu-item\" role=\"presentation\" draggable=\"true\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" ><table class=\"ui-common-table\" ><tr><td class=\"menu_icon\" title=\"'+texts.reorder+'\"><span class=\"'+iconbase+' '+colmenustyle.icon_move+' notclick\"></span></td><td class=\"menu_icon\"><input class=\"'+colmenustyle.input_checkbox+'\" type=\"checkbox\" name=\"'+nm+'\" '+hid+'></td><td class=\"menu_text\">'+lb+'</td></tr></table></a></li>';\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\tstr1 += \"</ul>\";\n\t\t\t$(parent).append(str1);\n\t\t\t$(\"#col_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif($.fn.html5sortable()) {\n\t\t\t\t$(\"#col_menu\").html5sortable({\n\t\t\t\t\thandle: 'span',\n\t\t\t\t\tforcePlaceholderSize: true }\n\t\t\t\t).on('sortupdate', function(e, ui) {\n\t\t\t\t\tcols.splice( ui.startindex, 1);\n\t\t\t\t\tcols.splice(ui.endindex, 0, ui.startindex);\n\t\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\tfor(i=0;i<len;i++) {\n\t\t\t\t\t\tcols[i] = i;\n\t\t\t\t\t}\n\t\t\t\t});\t\t\t\n\t\t\t} // NO jQuery UI \n\t\t\t$(\"#col_menu > li > a\").on(\"click\", function(e) {\n\t\t\t\tvar checked;\n\t\t\t\tif($(e.target).hasClass('notclick')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif($(e.target).is(\":input\")) {\n\t\t\t\t\tchecked = $(e.target).is(\":checked\");\n\t\t\t\t} else {\n\t\t\t\t\tchecked = !$(\"input\", this).is(\":checked\");\n\t\t\t\t\t$(\"input\", this).prop(\"checked\",checked);\n\t\t\t\t}\n\t\t\t\tif(!checked) {\n\t\t\t\t\t$(ts).jqGrid('hideCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"false\");\n\t\t\t\t} else {\n\t\t\t\t\t$(ts).jqGrid('showCol', $(\"input\", this).attr('name'));\n\t\t\t\t\t$(this).parent().attr(\"draggable\",\"true\");\n\t\t\t\t}\n\t\t\t}).hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\t\t},\n\t\tbuildSearchBox = function (index, top, left, parent) {\n\t\t\tvar cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem,\n\t\t\tnumopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\t\tstropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\t\ttexts = $.jgrid.getRegional(ts, \"search\"),\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tif(!cm ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\trules = ts.p.colFilters && ts.p.colFilters[cm.name] ?  ts.p.colFilters[cm.name] : false;\n\t\t\tif(rules && !$.isEmptyObject( rules )) {\n\t\t\t\to1 = rules.oper1;\n\t\t\t\tv1 = rules.value1;\n\t\t\t\tr1 = rules.rule;\n\t\t\t\to2 = rules.oper2;\n\t\t\t\tv2 = rules.value2;\n\t\t\t}\n\t\t\tif(! cm.searchoptions ) {\n\t\t\t\tcm.searchoptions = {};\n\t\t\t}\n\t\t\tif(cm.searchoptions.sopt) {\n\t\t\t\tso = cm.searchoptions.sopt;\n\t\t\t} else if(cm.sorttype === 'text') {\n\t\t\t\tso = stropts;\n\t\t\t} else {\n\t\t\t\tso = numopts;\n\t\t\t}\n\t\t\tif(cm.searchoptions.operands) {\n\t\t\t\top = cm.searchoptions.operands;\n\t\t\t} else  {\n\t\t\t\top = texts.groupOps;\n\t\t\t} \n\t\t\t\n\t\t\t//elem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>');\n\t\t\telem = $('<form></form>');\n\t\t\tvar str1= '<div>'+$.jgrid.getRegional(ts, \"colmenu.searchTitle\")+'</div>';\n\t\t\tstr1 += '<div><select id=\"oper1\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o1 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 += repstr;\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\tvar df=\"\";\n\t\t\tif(cm.searchoptions.defaultValue ) {\n\t\t\t\tdf = $.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;\n\t\t\t}\n\t\t\t//overwrite default value if restore from filters\n\t\t\tif( v1 ) {\n\t\t\t\tdf = v1;\n\t\t\t}\n\t\t\tvar soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval1_\" + ts.p.idPrefix+cm.name, oper:'search'}),\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// and/or\n\t\t\tstr1 ='<div><select id=\"operand\" class=\"'+colmenustyle.filter_select+'\">';\n\t\t\t$.each(op, function(i, n){\n\t\t\t\tselected = n.op === r1 ? 'selected=\"selected\"' : '';\n\t\t\t\tstr1 += \"<option value='\"+n.op+\"' \"+selected+\">\"+n.text+\"</option>\";\n\t\t\t});\n\t\t\tstr1 += '</select></div>';\n\t\t\telem.append(str1);\n\t\t\t//oper2 \t\t\n\t\t\trepstr ='';\n\t\t\t$.each(texts.odata, function(i, n) {\n\t\t\t\tselected = n.oper === o2 ? 'selected=\"selected\"' : '';\n\t\t\t\tif($.inArray(n.oper, so) !== -1) {\n\t\t\t\t\trepstr += '<option value=\"'+n.oper+'\" '+selected+'>'+n.text+'</option>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tstr1 = '<div><select id=\"oper2\" class=\"'+colmenustyle.filter_select+'\">' + repstr +'</select></div>';\n\t\t\telem.append(str1);\n\t\t\t// value2\n\t\t\tif( v2 ) {\n\t\t\t\tdf = v2;\n\t\t\t} else {\n\t\t\t\tdf = \"\";\n\t\t\t}\n\t\t\tsoptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: \"sval2_\" + ts.p.idPrefix+cm.name, oper:'search'});\n\t\t\tinput = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));\n\t\t\t$(input).addClass( colmenustyle.filter_input );\n\t\t\tstr1 = $('<div></div>').append(input);\n\t\t\telem.append(str1);\n\t\t\t// buttons\n\t\t\tstr1 = \"<div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button \" + common.button +\" ui-reset'>\"+texts.Reset+\"</a></div>\";\n\t\t\tstr1 +=\"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button \" + common.button + \" ui-search'>\"+texts.Find+\"</a></div>\";\n\t\t\tstr1 += \"</div>\";\n\t\t\telem.append(str1);\n\t\t\telem = $('<li class=\"ui-menu-item\" role=\"presentation\"></li>').append( elem );\n\t\t\telem = $('<ul id=\"search_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"left:'+left+'px;top:'+top+'px;\"></ul>').append(elem);\n\t\t\t$(parent).append(elem);\n\t\t\t$(\"#search_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\t$(\"#bs_reset, #bs_search\", \"#search_menu\").hover(function(){\n\t\t\t\t$(this).addClass(hover);\n\t\t\t},function(){\n\t\t\t\t$(this).removeClass(hover);\n\t\t\t});\n\n\t\t\t$(elem).find(\"#bs_reset\").click(function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(elem).find(\"#bs_search\").click( function(e){\n\t\t\t\tts.p.colFilters[cm.name] = {\n\t\t\t\t\toper1: $(\"#oper1\",\"#search_menu\").val(),\n\t\t\t\t\tvalue1: $(\"#sval1_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val(),\n\t\t\t\t\trule: $(\"#operand\",\"#search_menu\").val(),\n\t\t\t\t\toper2 : $(\"#oper2\",\"#search_menu\").val(),\n\t\t\t\t\tvalue2 : $(\"#sval2_\" + ts.p.idPrefix+cm.name,\"#search_menu\").val()\n\t\t\t\t};\n\t\t\t\tts.p.postData.filters = buildFilters();\n\t\t\t\tts.p.search = true;\n\t\t\t\t$(ts).trigger(\"reloadGrid\");\n\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\t\tbuildFilters = function() {\n\t\t\tvar go = \"AND\",\n\t\t\tfilters =\"{\\\"groupOp\\\":\\\"\" + go + \"\\\",\\\"rules\\\":[], \\\"groups\\\" : [\", i=0;\n\t\t\tfor (var item in ts.p.colFilters) {\n\t\t\t\tif(ts.p.colFilters.hasOwnProperty(item)) {\n\t\t\t\t\tvar si = ts.p.colFilters[item];\n\t\t\t\t\tif(!$.isEmptyObject(si)) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tfilters += \",\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"{\\\"groupOp\\\": \\\"\"+si.rule +\"\\\", \\\"rules\\\" : [\";\n\t\t\t\t\t\tfilters += \"{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper1 + \"\\\",\";\n\t\t\t\t\t\tsi.value1 +=\"\";\n\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value1.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tif(si.value2) {\n\t\t\t\t\t\t\tfilters += \",{\\\"field\\\":\\\"\" + item + \"\\\",\";\n\t\t\t\t\t\t\tfilters += \"\\\"op\\\":\\\"\" + si.oper2 + \"\\\",\";\n\t\t\t\t\t\t\tsi.value2 +=\"\";\n\t\t\t\t\t\t\tfilters += \"\\\"data\\\":\\\"\" + si.value2.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfilters += \"]}\";\n\t\t\t\t\t\ti++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//console.log('empty object');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfilters += \"]}\";\n\t\t\treturn filters;\n\t\t},\n\t\tbuildGrouping = function( index, isgroup ) {\n\t\t\tvar cm = ts.p.colModel[index],\n\t\t\t\tgroup = ts.p.groupingView;\n\t\t\tif(isgroup !== -1) {\n\t\t\t\tgroup.groupField.splice(isgroup,1);\n\t\t\t} else {\n\t\t\t\tgroup.groupField.push( cm.name);\n\t\t\t}\n\t\t\t$(ts).jqGrid('groupingGroupBy', group.groupField );\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t\t}\n\t\t},\n\t\tbuildFreeze = function( index, isfreeze ) {\n\t\t\tvar cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel;\n\t\t\tfor(i=0; i < len; i++) {\n\t\t\t\tif(cm[i].frozen) {\n\t\t\t\t\tlastfrozen = i;\n\t\t\t\t}\n\t\t\t\tcols.push(i);\n\t\t\t}\n\t\t\t\t// from position index to lastfrozen+1\n\t\t\tcols.splice( index, 1);\n\t\t\tcols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index);\n\t\t\tcm[index].frozen = isfreeze;\n\t\t\t$(ts).jqGrid(\"destroyFrozenColumns\");\n\t\t\t$(ts).jqGrid(\"remapColumns\", cols, true);\n\t\t\t$(ts).jqGrid(\"setFrozenColumns\");\n\t\t},\n\t\tbuildColMenu = function( index, left, top ){\n\t\t\t//$(\"#sopt_menu\").remove();\n\t\t\tleft=parseInt(left,10);\n\t\t\ttop=parseInt(top,10) + 25;\n\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\tvar str = '<ul id=\"column_menu\" class=\"ui-search-menu modal-content column-menu\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\tcm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions),\n\t\t\ttexts = $.jgrid.getRegional(ts, \"colmenu\"),\n\t\t\tisgroup, isfreeze; // ???\n\t\t\t// sorting\n\t\t\tif(op.sorting) {\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortasc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_asc+'\"></span></td><td class=\"menu_text\">'+texts.sortasc+'</td></tr></table></a></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"sortdesc\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_sort_desc+'\"></span></td><td class=\"menu_text\">'+texts.sortdesc+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.columns) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"columns\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_columns+'\"></span></td><td class=\"menu_text\">'+texts.columns+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.filtering) {\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"filtering\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_filter+'\"></span></td><td class=\"menu_text\">'+texts.filter + ' ' +(cm.label || cm.name)+'</td></tr></table></a></li>';\t\t\t\n\t\t\t}\n\t\t\tif(op.grouping) {\n\t\t\t\tisgroup = $.inArray(cm.name, ts.p.groupingView.groupField);\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"grouping\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_group+'\"></span></td><td class=\"menu_text\">'+(isgroup !== -1 ?  texts.ungrouping: texts.grouping + ' ' + (cm.label || cm.name))+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tif(op.freeze) {\n\t\t\t\tisfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true;\n\t\t\t\tstr += '<li class=\"ui-menu-item divider\" role=\"separator\"></li>';\n\t\t\t\tstr += '<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"freeze\"><table class=\"ui-common-table\"><tr><td class=\"menu_icon\"><span class=\"'+iconbase+' '+colmenustyle.icon_freeze+'\"></span></td><td class=\"menu_text\">'+(isfreeze ? (texts.freeze + \" \"+(cm.label || cm.name)) : texts.unfreeze)+'</td></tr></table></a></li>';\n\t\t\t}\n\t\t\tstr += \"</ul>\";\n\t\t\t$('body').append( str );\n\t\t\t$(\"#column_menu\").addClass(\"ui-menu \" + colmenustyle.menu_widget);\n\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\tvar wcm = $(\"#column_menu\").width() + 26;\n\t\t\t\t$(\"#column_menu\").css(\"left\", left- wcm);\n\t\t\t}\n\t\t\t$(\"#column_menu > li > a\").hover(\n\t\t\t\tfunction(){\n\t\t\t\t\t$(\"#col_menu\").remove();\n\t\t\t\t\t$(\"#search_menu\").remove();\n\t\t\t\t\tvar left1, top1;\n\t\t\t\t\tif($(this).attr(\"value\") === 'columns') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildColItems(top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\tif($(this).attr(\"value\") === 'filtering') {\n\t\t\t\t\t\tleft1 = $(this).parent().width()+18,\n\t\t\t\t\t\ttop1 = $(this).parent().position().top - 5;\n\t\t\t\t\t\tbuildSearchBox(index, top1, left1, $(this).parent());\n\t\t\t\t\t}\n\t\t\t\t\t$(this).addClass(hover); \n\t\t\t\t},\n\t\t\t\tfunction(){ $(this).removeClass(hover); }\n\t\t\t).click(function(){\n\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\tsobj = ts.grid.headers[index].el;\n\t\t\t\tif(v === 'sortasc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'asc', sobj);\n\t\t\t\t} else if(v === 'sortdesc') {\n\t\t\t\t\tsortData( \"jqgh_\"+ts.p.id+\"_\" + cm.name, index, true, 'desc', sobj);\n\t\t\t\t} else if (v === 'grouping') {\n\t\t\t\t\tbuildGrouping(index, isgroup);\n\t\t\t\t} else if( v==='freeze') {\n\t\t\t\t\tbuildFreeze( index, isfreeze);\n\t\t\t\t}\n\t\t\t\tif(v.indexOf('sort') !== -1 || v === 'grouping' || v==='freeze') {\n\t\t\t\t\t$(this).remove();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tcolTemplate;\n\t\tif(ts.p.colMenu) {\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).closest(\".column-menu\").length) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.p.id = this.id;\n\t\tif ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;}\n\t\tts.p.keyName=false;\n\t\tfor (i=0; i<ts.p.colModel.length;i++) {\n\t\t\tcolTemplate = typeof ts.p.colModel[i].template === \"string\" ?\n\t\t\t\t($.jgrid.cmTemplate != null && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === \"object\" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) :\n\t\t\t\tts.p.colModel[i].template;\n\t\t\tts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]);\n\t\t\tif (ts.p.keyName === false && ts.p.colModel[i].key===true) {\n\t\t\t\tts.p.keyName = ts.p.colModel[i].name;\n\t\t\t}\n\t\t}\n\t\tts.p.sortorder = ts.p.sortorder.toLowerCase();\n\t\t$.jgrid.cell_width = $.jgrid.cellWidth();\n\t\tif(ts.p.grouping===true) {\n\t\t\tts.p.scroll = false;\n\t\t\tts.p.rownumbers = false;\n\t\t\t//ts.p.subGrid = false; expiremental\n\t\t\tts.p.treeGrid = false;\n\t\t\tts.p.gridview = true;\n\t\t}\n\t\tif(this.p.treeGrid === true) {\n\t\t\ttry { $(this).jqGrid(\"setTreeGrid\");} catch (_) {}\n\t\t\tif(ts.p.datatype !== \"local\") { ts.p.localReader = {id: \"_id_\"};\t}\n\t\t}\n\t\tif(this.p.subGrid) {\n\t\t\ttry { $(ts).jqGrid(\"setSubGrid\");} catch (s){}\n\t\t}\n\t\tif(this.p.multiselect) {\n\t\t\tthis.p.colNames.unshift(\"<input role='checkbox' id='cb_\"+this.p.id+\"' class='cbox' type='checkbox'/>\");\n\t\t\tthis.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true});\n\t\t}\n\t\tif(this.p.rownumbers) {\n\t\t\tthis.p.colNames.unshift(\"\");\n\t\t\tthis.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true});\n\t\t}\n\t\tts.p.xmlReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\trow: \"row\",\n\t\t\tpage: \"rows>page\",\n\t\t\ttotal: \"rows>total\",\n\t\t\trecords : \"rows>records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"[id]\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", row: \"row\", repeatitems: true, cell:\"cell\"}\n\t\t}, ts.p.xmlReader);\n\t\tts.p.jsonReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: true,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.jsonReader);\n\t\tts.p.localReader = $.extend(true,{\n\t\t\troot: \"rows\",\n\t\t\tpage: \"page\",\n\t\t\ttotal: \"total\",\n\t\t\trecords: \"records\",\n\t\t\trepeatitems: false,\n\t\t\tcell: \"cell\",\n\t\t\tid: \"id\",\n\t\t\tuserdata: \"userdata\",\n\t\t\tsubgrid: {root:\"rows\", repeatitems: true, cell:\"cell\"}\n\t\t},ts.p.localReader);\n\t\tif(ts.p.scroll){\n\t\t\tts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];\n\t\t}\n\t\tif(ts.p.data.length) { normalizeData(); refreshIndex(); }\n\t\tvar thead = \"<thead><tr class='ui-jqgrid-labels' role='row'>\",\n\t\ttdc, idn, w, res, sort =\"\",\n\t\ttd, ptr, tbody, imgs, iac=\"\", idc=\"\", tmpcm;\n\t\tif(ts.p.shrinkToFit===true && ts.p.forceFit===true) {\n\t\t\tfor (i=ts.p.colModel.length-1;i>=0;i--){\n\t\t\t\tif(!ts.p.colModel[i].hidden) {\n\t\t\t\t\tts.p.colModel[i].resizable=false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(ts.p.viewsortcols[1] === 'horizontal') {\n\t\t\tiac=\" ui-i-asc\";\n\t\t\tidc=\" ui-i-desc\";\n\t\t} else if(ts.p.viewsortcols[1] === \"single\") { \n\t\t\tiac = \" ui-single-sort-asc\";\n\t\t\tidc = \" ui-single-sort-desc\";\n\t\t\tsort = \" style='display:none'\";\n\t\t\tts.p.viewsortcols[0] = false;\n\t\t}\n\t\ttdc = isMSIE ?  \"class='ui-th-div-ie'\" :\"\";\n\t\timgs = \"<span class='s-ico' style='display:none'>\";\n\t\timgs += \"<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc\"+iac+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_asc', true)+ \"'\" + sort + \"></span>\";\n\t\timgs += \"<span sort='desc' class='ui-grid-ico-sort ui-icon-desc\"+idc+\" ui-sort-\"+dir+\" \"+disabled+\" \" + iconbase + \" \" + getstyle(stylemodule, 'icon_desc', true)+\"'\" + sort + \"></span></span>\";\n\t\tif(ts.p.multiSort) {\n\t\t\tif(ts.p.sortname ) {\n\t\t\tsortarr = ts.p.sortname.split(\",\");\n\t\t\tfor (i=0; i < sortarr.length; i++) {\n\t\t\t\tsotmp = $.trim(sortarr[i]).split(\" \");\n\t\t\t\tsortarr[i] = $.trim(sotmp[0]);\n\t\t\t\tsortord[i] = sotmp[1] ? $.trim(sotmp[1]) : ts.p.sortorder || \"asc\";\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor(i=0;i<this.p.colNames.length;i++){\n\t\t\tvar tooltip = ts.p.headertitles ? (\" title=\\\"\"+$.jgrid.stripHtml(ts.p.colNames[i])+\"\\\"\") :\"\";\n\t\t\ttmpcm = ts.p.colModel[i];\n\t\t\tif(!tmpcm.hasOwnProperty('colmenu')) {\n\t\t\t\ttmpcm.colmenu = (tmpcm.name === \"rn\" || tmpcm.name === \"cb\" || tmpcm.name === \"subgrid\") ? false : true;\n\t\t\t}\n\t\t\tthead += \"<th id='\"+ts.p.id+\"_\" + tmpcm.name+\"' role='columnheader' \"+getstyle(stylemodule,'headerBox',false, \"ui-th-column ui-th-\"+dir)+\" \"+ tooltip+\">\";\n\t\t\tidn = tmpcm.index || tmpcm.name;\n\t\t\tthead += \"<div class='ui-th-div' id='jqgh_\"+ts.p.id+\"_\"+tmpcm.name+\"' \"+tdc+\">\"+ts.p.colNames[i];\n\t\t\tif(!tmpcm.width)  { \n\t\t\t\ttmpcm.width = 150; \n\t\t\t} else { \n\t\t\t\ttmpcm.width = parseInt(tmpcm.width,10); \n\t\t\t}\n\t\t\tif(typeof tmpcm.title !== \"boolean\") { \n\t\t\t\ttmpcm.title = true; \n\t\t\t}\n\t\t\ttmpcm.lso = \"\";\n\t\t\tif (idn === ts.p.sortname) {\n\t\t\t\tts.p.lastsort = i;\n\t\t\t}\n\t\t\tif(ts.p.multiSort) {\n\t\t\t\tsotmp = $.inArray(idn,sortarr);\n\t\t\t\tif( sotmp !== -1 ) {\n\t\t\t\t\ttmpcm.lso = sortord[sotmp];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthead += imgs;\n\t\t\tif(ts.p.colMenu && tmpcm.colmenu) {\n\t\t\t\tthead += \"<a class='colmenu' href='#/'><span class='colmenuspan \"+iconbase+' '+colmenustyle.icon_menu+\"'></span></a>\";\n\t\t\t}\n\t\t\tthead += \"</div></th>\";\n\t\t}\n\t\tthead += \"</tr></thead>\";\n\t\timgs = null;\n\t\ttmpcm = null;\n\t\t$(this).append(thead);\n\t\t$(\"thead tr:first th\",this).hover(\n\t\t\tfunction(){ $(this).addClass(hover);},\n\t\t\tfunction(){\t$(this).removeClass(hover);}\n\t\t);\n\t\tif(this.p.multiselect) {\n\t\t\tvar emp=[], chk;\n\t\t\t$('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){\n\t\t\t\tts.p.selarrrow = [];\n\t\t\t\tvar froz = ts.p.frozenColumns === true ? ts.p.id + \"_frozen\" : \"\";\n\t\t\t\tif (this.checked) {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif (i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t$(this).addClass(highlight).attr(\"aria-selected\",\"true\");  \n\t\t\t\t\t\t\t\tts.p.selarrrow.push(this.id);\n\t\t\t\t\t\t\t\tts.p.selrow = this.id;\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tchk=true;\n\t\t\t\t\temp=[];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(ts.rows).each(function(i) {\n\t\t\t\t\t\tif(i>0) {\n\t\t\t\t\t\t\tif(!$(this).hasClass(\"ui-subgrid\") && !$(this).hasClass(\"jqgroup\") && !$(this).hasClass(disabled) && !$(this).hasClass(\"jqfoot\")){\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t$(this).removeClass(highlight).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t\t\t\temp.push(this.id);\n\t\t\t\t\t\t\t\tif(froz) {\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tts.p.selrow = null;\n\t\t\t\t\tchk=false;\n\t\t\t\t}\n\t\t\t\t$(ts).triggerHandler(\"jqGridSelectAll\", [chk ? ts.p.selarrrow : emp, chk]);\n\t\t\t\tif($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}\n\t\t\t});\n\t\t}\n\n\t\tif(ts.p.autowidth===true) {\n\t\t\tvar pw = $(eg).innerWidth();\n\t\t\tts.p.width = pw > 0?  pw: 'nw';\n\t\t}\n\t\tsetColWidth();\n\t\t$(eg).css(\"width\",grid.width+\"px\").append(\"<div class='ui-jqgrid-resize-mark' id='rs_m\"+ts.p.id+\"'>&#160;</div>\");\n\t\tif(ts.p.scrollPopUp) {\n\t\t\t$(eg).append(\"<div \"+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+\" id='scroll_g\"+ts.p.id+\"'></div>\");\n\t\t}\n\t\t$(gv).css(\"width\",grid.width+\"px\");\n\t\tthead = $(\"thead:first\",ts).get(0);\n\t\tvar\ttfoot = \"\";\n\t\tif(ts.p.footerrow) { tfoot += \"<table role='presentation' style='width:\"+ts.p.tblwidth+\"px' \"+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ \"><tbody><tr role='row' \"+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+\">\"; }\n\t\tvar thr = $(\"tr:first\",thead),\n\t\tfirstr = \"<tr class='jqgfirstrow' role='row'>\";\n\t\tts.p.disableClick=false;\n\t\t$(\"th\",thr).each(function ( j ) {\n\t\t\ttmpcm = ts.p.colModel[j];\n\t\t\tw = tmpcm.width;\n\t\t\tif(tmpcm.resizable === undefined) {\n\t\t\t\ttmpcm.resizable = true;\n\t\t\t}\n\t\t\tif(tmpcm.resizable){\n\t\t\t\tres = document.createElement(\"span\");\n\t\t\t\t$(res).html(\"&#160;\").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir)\n\t\t\t\t.css(\"cursor\",\"col-resize\");\n\t\t\t\t$(this).addClass(ts.p.resizeclass);\n\t\t\t} else {\n\t\t\t\tres = \"\";\n\t\t\t}\n\t\t\t$(this).css(\"width\",w+\"px\").prepend(res);\n\t\t\tres = null;\n\t\t\tvar hdcol = \"\";\n\t\t\tif( tmpcm.hidden ) {\n\t\t\t\t$(this).css(\"display\",\"none\");\n\t\t\t\thdcol = \"display:none;\";\n\t\t\t}\n\t\t\tfirstr += \"<td role='gridcell' style='height:0px;width:\"+w+\"px;\"+hdcol+\"'></td>\";\n\t\t\tgrid.headers[j] = { width: w, el: this };\n\t\t\tsort = tmpcm.sortable;\n\t\t\tif( typeof sort !== 'boolean') { \n\t\t\t\ttmpcm.sortable =  true; \n\t\t\t\tsort=true;\n\t\t\t}\n\t\t\tvar nm = tmpcm.name;\n\t\t\tif( !(nm === 'cb' || nm==='subgrid' || nm==='rn') ) {\n\t\t\t\tif(ts.p.viewsortcols[2]){\n\t\t\t\t\t$(\">div\",this).addClass('ui-jqgrid-sortable');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(sort) {\n\t\t\t\tif(ts.p.multiSort) {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(ts.p.colModel[j].lso){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( ts.p.colModel[j].lso) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+tmpcm.lso,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(ts.p.viewsortcols[0]) {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show(); \n\t\t\t\t\t\tif(j===ts.p.lastsort){ \n\t\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(j === ts.p.lastsort && ts.p.sortname !== \"\") {\n\t\t\t\t\t\t$(\"div span.s-ico\",this).show();\n\t\t\t\t\t\t$(\"div span.ui-icon-\"+ts.p.sortorder,this).removeClass(disabled).css(\"display\",\"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(ts.p.footerrow) {\n\t\t\t\ttfoot += \"<td role='gridcell' \"+formatCol(j,0,'', null, '', false)+\">&#160;</td>\"; \n\t\t\t}\n\t\t}).mousedown(function(e) {\n\t\t\tif ($(e.target).closest(\"th>span.ui-jqgrid-resize\").length !== 1) { return; }\n\t\t\tvar ci = getColumnHeaderIndex(this);\n\t\t\tif(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}\n\t\t\tgrid.dragStart(ci, e, getOffset(ci));\n\t\t\treturn false;\n\t\t}).click(function(e) {\n\t\t\tif (ts.p.disableClick) {\n\t\t\t\tts.p.disableClick = false;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar s = \"th>div.ui-jqgrid-sortable\",r,d;\n\t\t\tif (!ts.p.viewsortcols[2]) { s = \"th>div>span>span.ui-grid-ico-sort\"; }\n\t\t\tvar t = $(e.target).closest(s);\n\t\t\tif (t.length !== 1) { return; }\n\t\t\tvar ci;\n\t\t\tif(ts.p.frozenColumns) {\n\t\t\t\tvar tid =  $(this)[0].id.substring( ts.p.id.length + 1 );\n\t\t\t\t$(ts.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === tid) {\n\t\t\t\t\t\tci = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tci = getColumnHeaderIndex(this);\n\t\t\t}\n\t\t\t//\n\t\t\tif($(e.target).hasClass('colmenuspan')) {\n\t\t\t\tif($(\"#column_menu\")[0] != null) {\n\t\t\t\t\t$(\"#column_menu\").remove();\n\t\t\t\t}\n\n\t\t\t\tvar colindex = $.jgrid.getCellIndex(e.target);\n\t\t\t\tif(colindex === -1) { return;}\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = ( offset.top);\n\t\t\t\tif(ts.p.direction === \"ltr\") {\n\t\t\t\t\tleft += $(this).outerWidth();\n\t\t\t\t}\n\t\t\t\tbuildColMenu(colindex, left, top, t );\n\t\t\t\te.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t//\n\t\t\tif (!ts.p.viewsortcols[2]) { r=true;d=t.attr(\"sort\"); }\n\t\t\tif(ci != null){\n\t\t\t\tsortData( $('div',this)[0].id, ci, r, d, this);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t\ttmpcm = null;\n\t\tif (ts.p.sortable && $.fn.sortable) {\n\t\t\ttry {\n\t\t\t\t$(ts).jqGrid(\"sortableColumns\", thr);\n\t\t\t} catch (e){}\n\t\t}\n\t\tif(ts.p.footerrow) { tfoot += \"</tr></tbody></table>\"; }\n\t\tfirstr += \"</tr>\";\n\t\ttbody = document.createElement(\"tbody\");\n\t\t//$(this).append(firstr);\n\t\tthis.appendChild(tbody);\n\t\t$(this).addClass(getstyle(stylemodule,\"rowTable\", true, 'ui-jqgrid-btable ui-common-table')).append(firstr);\n\t\t//$(firstr).insertAfter(this);\n\t\tfirstr = null;\n\t\tvar hTable = $(\"<table \"+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+\" style='width:\"+ts.p.tblwidth+\"px' role='presentation' aria-labelledby='gbox_\"+this.id+\"'></table>\").append(thead),\n\t\thg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,\n\t\thb = $(\"<div class='ui-jqgrid-hbox\" + (dir===\"rtl\" ? \"-rtl\" : \"\" )+\"'></div>\"),\n\t\tbstw = ts.p.styleUI === 'Bootstrap' && !isNaN(ts.p.height) ? 2 : 0;\n\t\tthead = null;\n\t\tgrid.hDiv = document.createElement(\"div\");\n\t\tgrid.hDiv.style.width = (grid.width - bstw) + \"px\";\n\t\tgrid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv');\n\n\t\t$(grid.hDiv).append(hb);\n\t\t$(hb).append(hTable);\n\t\thTable = null;\n\t\tif(hg) { $(grid.hDiv).hide(); }\n\t\tif(ts.p.pager){\n\t\t\t// TBD -- escape ts.p.pager here?\n\t\t\tif(typeof ts.p.pager === \"string\") {if(ts.p.pager.substr(0,1) !== \"#\") { ts.p.pager = \"#\"+ts.p.pager;} }\n\t\t\telse { ts.p.pager = \"#\"+ $(ts.p.pager).attr(\"id\");}\n\t\t\t$(ts.p.pager).css({width: grid.width+\"px\"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg);\n\t\t\tif(hg) {$(ts.p.pager).hide();}\n\t\t\tsetPager(ts.p.pager,'');\n\t\t}\n\t\tif( ts.p.cellEdit === false && ts.p.hoverrows === true) {\n\t\t\t$(ts).on({\n\t\t\t\tmouseover: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t$(ptr).addClass(hover);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmouseout: function(e) {\n\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t$(ptr).removeClass(hover);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tvar ri,ci, tdHtml;\n\t\t$(ts).before(grid.hDiv).on({\n\t\t\t'click': function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest(\"table.ui-jqgrid-btable\").attr('id') || '').replace(\"_frozen\",\"\") !== ts.id ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tvar scb = $(td).filter(\":enabled\").hasClass(\"cbox\"),\n\t\t\t\tcSel = $(ts).triggerHandler(\"jqGridBeforeSelectRow\", [ptr[0].id, e]);\n\t\t\t\tcSel = (cSel === false || cSel === 'stop') ? false : true;\n\t\t\t\tif ($.isFunction(ts.p.beforeSelectRow)) {\n\t\t\t\t\tvar allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e);\n\t\t\t\t\tif (allowRowSelect === false || allowRowSelect === 'stop') {\n\t\t\t\t\t\tcSel = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && !scb) ) { return; }\n\t\t\t\tri = ptr[0].id;\n\t\t\t\ttd = $(td).closest(\"tr.jqgrow>td\");\n\t\t\t\tif (td.length > 0) {\n\t\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\t\ttdHtml = $(td).closest(\"td,th\").html();\n\t\t\t\t\t$(ts).triggerHandler(\"jqGridCellSelect\", [ri,ci,tdHtml,e]);\n\t\t\t\t\tif($.isFunction(ts.p.onCellSelect)) {\n\t\t\t\t\t\tts.p.onCellSelect.call(ts,ri,ci,tdHtml,e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ts.p.cellEdit === true) {\n\t\t\t\t\tif(ts.p.multiselect && scb && cSel){\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\", ri ,true,e);\n\t\t\t\t\t} else if (td.length > 0) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$(ts).jqGrid(\"editCell\", ptr[0].rowIndex, ci, true);\n\t\t\t\t\t\t} catch (_) {}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!cSel) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( !ts.p.multikey ) {\n\t\t\t\t\tif(ts.p.multiselect && ts.p.multiboxonly) {\n\t\t\t\t\t\tif(scb){$(ts).jqGrid(\"setSelection\",ri,true,e);}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar frz = ts.p.frozenColumns ? ts.p.id+\"_frozen\" : \"\";\n\t\t\t\t\t\t\t$(ts.p.selarrrow).each(function(i,n){\n\t\t\t\t\t\t\t\tvar trid = $(ts).jqGrid('getGridRowById',n);\n\t\t\t\t\t\t\t\tif(trid) { \n\t\t\t\t\t\t\t\t\t$( trid ).removeClass(highlight); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz)).removeClass(highlight);\n\t\t\t\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tts.p.selarrrow = [];\n\t\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif(e[ts.p.multikey]) {\n\t\t\t\t\t\t$(ts).jqGrid(\"setSelection\",ri,true,e);\n\t\t\t\t\t} else if(ts.p.multiselect && scb) {\n\t\t\t\t\t\tscb = $(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri).is(\":checked\");\n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(ts.p.id)+\"_\"+ri)[ts.p.useProp ? 'prop' : 'attr'](\"checked\", !scb);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'reloadGrid': function(e,opts) {\n\t\t\t\tif(ts.p.treeGrid ===true) {\tts.p.datatype = ts.p.treedatatype;}\n\t\t\t\topts = opts || {};\n\t\t\t\tif (opts.current) {\n\t\t\t\t\tts.grid.selectionPreserver(ts);\n\t\t\t\t}\n\t\t\t\tif(ts.p.datatype===\"local\"){ $(ts).jqGrid(\"resetSelection\");  if(ts.p.data.length) { normalizeData(); refreshIndex();} }\n\t\t\t\telse if(!ts.p.treeGrid) {\n\t\t\t\t\tts.p.selrow=null;\n\t\t\t\t\tif(ts.p.multiselect) {ts.p.selarrrow =[];setHeadCheckBox(false);}\n\t\t\t\t\tts.p.savedRow = [];\n\t\t\t\t}\n\t\t\t\tif(ts.p.scroll) {emptyRows.call(ts, true, false);}\n\t\t\t\tif (opts.page) {\n\t\t\t\t\tvar page = opts.page;\n\t\t\t\t\tif (page > ts.p.lastpage) { page = ts.p.lastpage; }\n\t\t\t\t\tif (page < 1) { page = 1; }\n\t\t\t\t\tts.p.page = page;\n\t\t\t\t\tif (ts.grid.prevRowHeight) {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tts.grid.bDiv.scrollTop = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) {\n\t\t\t\t\tdelete ts.p.lastpage;\n\t\t\t\t\tts.grid.populateVisible();\n\t\t\t\t} else {\n\t\t\t\t\tts.grid.populate();\n\t\t\t\t}\n\t\t\t\tif(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t'dblclick' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar dbcr = $(ts).triggerHandler(\"jqGridDblClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\tif ($.isFunction(ts.p.ondblClickRow)) { \n\t\t\t\t\tdbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( dbcr != null) { return dbcr; }\n\t\t\t\t}\n\t\t\t},\n\t\t\t'contextmenu' : function(e) {\n\t\t\t\ttd = e.target;\n\t\t\t\tptr = $(td,ts.rows).closest(\"tr.jqgrow\");\n\t\t\t\tif($(ptr).length === 0 ){return;}\n\t\t\t\tif(!ts.p.multiselect) {\t$(ts).jqGrid(\"setSelection\",ptr[0].id,true,e);\t}\n\t\t\t\tri = ptr[0].rowIndex;\n\t\t\t\tci = $.jgrid.getCellIndex(td);\n\t\t\t\tvar rcr = $(ts).triggerHandler(\"jqGridRightClickRow\", [$(ptr).attr(\"id\"),ri,ci,e]);\n\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\tif ($.isFunction(ts.p.onRightClickRow)) { \n\t\t\t\t\trcr = ts.p.onRightClickRow.call(ts,$(ptr).attr(\"id\"),ri,ci, e); \n\t\t\t\t\tif( rcr != null) { return rcr; }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t//---\n\t\tgrid.bDiv = document.createElement(\"div\");\n\t\tif(isMSIE) { if(String(ts.p.height).toLowerCase() === \"auto\") { ts.p.height = \"100%\"; } }\n\t\t$(grid.bDiv)\n\t\t\t.append($('<div style=\"position:relative;\"></div>').append('<div></div>').append(this))\n\t\t\t.addClass(\"ui-jqgrid-bdiv\")\n\t\t\t.css({ height: ts.p.height+(isNaN(ts.p.height)?\"\":\"px\"), width: (grid.width - bstw)+\"px\"})\n\t\t\t.scroll(grid.scrollGrid);\n\t\t$(\"table:first\",grid.bDiv).css({width:ts.p.tblwidth+\"px\"});\n\t\tif( !$.support.tbody ) { //IE\n\t\t\tif( $(\"tbody\",this).length === 2 ) { $(\"tbody:gt(0)\",this).remove();}\n\t\t}\n\t\tif(ts.p.multikey){\n\t\t\tif( $.jgrid.msie()) {\n\t\t\t\t$(grid.bDiv).on(\"selectstart\",function(){return false;});\n\t\t\t} else {\n\t\t\t\t$(grid.bDiv).on(\"mousedown\",function(){return false;});\n\t\t\t}\n\t\t}\n\t\tif(hg) { // hidden grid\n\t\t\t$(grid.bDiv).hide();\n\t\t}\n\t\tvar icoo =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_open', true),\n\t\ticoc =  iconbase + \" \" + getstyle(stylemodule,'icon_caption_close', true);\n\t\tgrid.cDiv = document.createElement(\"div\");\n\t\tvar arf = ts.p.hidegrid===true ? $(\"<a role='link' class='ui-jqgrid-titlebar-close HeaderButton \"+cornerall+\"' title='\"+($.jgrid.getRegional(ts, \"defaults.showhide\", ts.p.showhide) || \"\")+\"'\" + \" />\").hover(\n\t\t\tfunction(){ arf.addClass(hover);},\n\t\t\tfunction() {arf.removeClass(hover);})\n\t\t.append(\"<span class='ui-jqgrid-headlink \" + icoo +\"'></span>\").css((dir===\"rtl\"?\"left\":\"right\"),\"0px\") : \"\";\n\t\t$(grid.cDiv).append(arf).append(\"<span class='ui-jqgrid-title'>\"+ts.p.caption+\"</span>\")\n\t\t.addClass(\"ui-jqgrid-titlebar ui-jqgrid-caption\"+(dir===\"rtl\" ? \"-rtl\" :\"\" )+\" \"+getstyle(stylemodule,'gridtitleBox',true));\n\t\t$(grid.cDiv).insertBefore(grid.hDiv);\n\t\tif( ts.p.toolbar[0] ) {\n\t\t\tvar tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata');\n\t\t\tgrid.uDiv = document.createElement(\"div\");\n\t\t\tif(ts.p.toolbar[1] === \"top\") {$(grid.uDiv).insertBefore(grid.hDiv);}\n\t\t\telse if (ts.p.toolbar[1]===\"bottom\" ) {$(grid.uDiv).insertAfter(grid.hDiv);}\n\t\t\tif(ts.p.toolbar[1]===\"both\") {\n\t\t\t\tgrid.ubDiv = document.createElement(\"div\");\n\t\t\t\t$(grid.uDiv).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw);\n\t\t\t\t$(grid.ubDiv).addClass( tbstyle + \" ui-userdata-bottom\").attr(\"id\",\"tb_\"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw);\n\t\t\t\tif(hg)  {$(grid.ubDiv).hide();}\n\t\t\t} else {\n\t\t\t\t$(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + \" ui-userdata-top\").attr(\"id\",\"t_\"+this.id);\n\t\t\t}\n\t\t\tif(hg) {$(grid.uDiv).hide();}\n\t\t}\n\t\tif(ts.p.toppager) {\n\t\t\tts.p.toppager = $.jgrid.jqID(ts.p.id)+\"_toppager\";\n\t\t\tgrid.topDiv = $(\"<div id='\"+ts.p.toppager+\"'></div>\")[0];\n\t\t\tts.p.toppager = \"#\"+ts.p.toppager;\n\t\t\t$(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv);\n\t\t\tsetPager(ts.p.toppager,'_t');\n\t\t}\n\t\tif(ts.p.footerrow) {\n\t\t\tgrid.sDiv = $(\"<div class='ui-jqgrid-sdiv'></div>\")[0];\n\t\t\thb = $(\"<div class='ui-jqgrid-hbox\"+(dir===\"rtl\"?\"-rtl\":\"\")+\"'></div>\");\n\t\t\t$(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);\n\t\t\t$(hb).append(tfoot);\n\t\t\tgrid.footers = $(\".ui-jqgrid-ftable\",grid.sDiv)[0].rows[0].cells;\n\t\t\tif(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); }\n\t\t\tif(hg) {$(grid.sDiv).hide();}\n\t\t}\n\t\thb = null;\n\t\tif(ts.p.caption) {\n\t\t\tvar tdt = ts.p.datatype;\n\t\t\tif(ts.p.hidegrid===true) {\n\t\t\t\t$(\".ui-jqgrid-titlebar-close\",grid.cDiv).click( function(e){\n\t\t\t\t\tvar onHdCl = $.isFunction(ts.p.onHeaderClick),\n\t\t\t\t\telems = \".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv\",\n\t\t\t\t\tcounter, self = this;\n\t\t\t\t\tif(ts.p.toolbar[0]===true) {\n\t\t\t\t\t\tif( ts.p.toolbar[1]==='both') {\n\t\t\t\t\t\t\telems += ', #' + $(grid.ubDiv).attr('id');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telems += ', #' + $(grid.uDiv).attr('id');\n\t\t\t\t\t}\n\t\t\t\t\tcounter = $(elems,\"#gview_\"+$.jgrid.jqID(ts.p.id)).length;\n\n\t\t\t\t\tif(ts.p.gridstate === 'visible') {\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideUp(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoo).addClass(icoc);\n\t\t\t\t\t\t\t\tts.p.gridstate = 'hidden';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hide(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if(ts.p.gridstate === 'hidden'){\n\t\t\t\t\t\t$(elems,\"#gbox_\"+$.jgrid.jqID(ts.p.id)).slideDown(\"fast\", function() {\n\t\t\t\t\t\t\tcounter--;\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\t$(\"span\",self).removeClass(icoc).addClass(icoo);\n\t\t\t\t\t\t\t\tif(hg) {ts.p.datatype = tdt;populate();hg=false;}\n\t\t\t\t\t\t\t\tts.p.gridstate = 'visible';\n\t\t\t\t\t\t\t\tif($(\"#gbox_\"+$.jgrid.jqID(ts.p.id)).hasClass(\"ui-resizable\")) { $(\".ui-resizable-handle\",\"#gbox_\"+$.jgrid.jqID(ts.p.id)).show(); }\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridHeaderClick\", [ts.p.gridstate,e]);\n\t\t\t\t\t\t\t\tif(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(hg) {ts.p.datatype=\"local\"; $(\".ui-jqgrid-titlebar-close\",grid.cDiv).trigger(\"click\");}\n\t\t\t}\n\t\t} else {\n\t\t\t$(grid.cDiv).hide();\n\t\t\tif(!ts.p.toppager) {\n\t\t\t\t$(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true));\n\t\t\t}\n\t\t}\n\t\t$(grid.hDiv).after(grid.bDiv)\n\t\t.mousemove(function (e) {\n\t\t\tif(grid.resizing){grid.dragMove(e);return false;}\n\t\t});\n\t\t$(\".ui-jqgrid-labels\",grid.hDiv).on(\"selectstart\", function () { return false; });\n\t\t$(document).on( \"mouseup.jqGrid\" + ts.p.id, function () {\n\t\t\tif(grid.resizing) {\tgrid.dragEnd( true ); return false;}\n\t\t\treturn true;\n\t\t});\n\t\tif(ts.p.direction === 'rtl') {\n\t\t\t$(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){\n\t\t\t\t\tvar  vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth;\n\t\t\t\t\t//gridhbox = $(\"div:first\",grid.hDiv);\n\t\t\t\t\tts.p.scrollOffset = vScrollWidth;\n\t\t\t\t\t// for future implementation\n\t\t\t\t\t//if (gridhbox.hasClass(\"ui-jqgrid-hbox-rtl\")) {\n\t\t\t\t\t\t$(\"div:first\",grid.hDiv).css({paddingLeft: vScrollWidth + \"px\"});\n\t\t\t\t\t//} else {\n\t\t\t\t\t\t//gridhbox.css({paddingRight: vScrollWidth + \"px\"});\n\t\t\t\t\t//}\n\t\t\t\t\tgrid.hDiv.scrollLeft = grid.bDiv.scrollLeft;\n\t\t\t});\n\t\t}\n\t\tts.formatCol = formatCol;\n\t\tts.sortData = sortData;\n\t\tts.updatepager = updatepager;\n\t\tts.refreshIndex = refreshIndex;\n\t\tts.setHeadCheckBox = setHeadCheckBox;\n\t\tts.constructTr = constructTr;\n\t\tts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};\n\t\t$.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq});\n\t\tthis.grid = grid;\n\t\tts.addXmlData = function(d) {addXmlData( d );};\n\t\tts.addJSONData = function(d) {addJSONData( d );};\n\t\tts.addLocalData = function(d) { return addLocalData( d );};\n\t\tthis.grid.cols = this.rows[0].cells;\n\t\t$(ts).triggerHandler(\"jqGridInitGrid\");\n\t\tif ($.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); }\n\t\tpopulate();\n\t\tts.p.hiddengrid=false;\n\t\tif(ts.p.responsive) {\n\t\t\tvar supportsOrientationChange = \"onorientationchange\" in window,\n\t\t\torientationEvent = supportsOrientationChange ? \"orientationchange\" : \"resize\";\t\t\n\t\t\t$(window).on( orientationEvent, function(){\n\t\t\t\t$(ts).jqGrid('resizeGrid');\n\t\t\t});\n\t\t}\n\t});\n};\n$.jgrid.extend({\n\tgetGridParam : function(name, module) {\n\t\tvar $t = this[0], ret;\n\t\tif (!$t || !$t.grid) {return;}\n\t\tif(module === undefined && typeof module !== 'string') {\n\t\t\tmodule = 'jqGrid'; //$t.p\n\t\t}\n\t\tret = $t.p;\n\t\tif(module !== 'jqGrid') {\n\t\t\ttry {\n\t\t\t\tret = $($t).data( module );\n\t\t\t} catch (e) {\n\t\t\t\tret = $t.p;\n\t\t\t}\n\t\t}\n\t\tif (!name) { return ret; }\t\n\t\treturn ret[name] !== undefined ? ret[name] : null;\n\t},\n\tsetGridParam : function (newParams, overwrite){\n\t\treturn this.each(function(){\n\t\t\tif(overwrite == null) {\n\t\t\t\toverwrite = false;\n\t\t\t}\n\t\t\tif (this.grid && typeof newParams === 'object') {\n\t\t\t\tif(overwrite === true) {\n\t\t\t\t\tvar params = $.extend({}, this.p, newParams);\n\t\t\t\t\tthis.p = params;\n\t\t\t\t} else {\n\t\t\t\t\t$.extend(true,this.p,newParams);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetGridRowById: function ( rowid ) {\n\t\tvar row;\n\t\tthis.each( function(){\n\t\t\ttry {\n\t\t\t\t//row = this.rows.namedItem( rowid );\n\t\t\t\tvar i = this.rows.length;\n\t\t\t\twhile(i--) {\n\t\t\t\t\tif( rowid.toString() === this.rows[i].id) {\n\t\t\t\t\t\trow = this.rows[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch ( e ) {\n\t\t\t\trow = $(this.grid.bDiv).find( \"#\" + $.jgrid.jqID( rowid ));\n\t\t\t}\n\t\t});\n\t\treturn row;\n\t},\n\tgetDataIDs : function () {\n\t\tvar ids=[], i=0, len, j=0;\n\t\tthis.each(function(){\n\t\t\tlen = this.rows.length;\n\t\t\tif(len && len>0){\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($(this.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\tids[j] = this.rows[i].id;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ids;\n\t},\n\tsetSelection : function(selection,onsr, e) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, stat,pt, ner, ia, tpsr, fid, csr,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle($t.p.styleUI+'.common','highlight', true),\n\t\t\tdisabled = getstyle($t.p.styleUI+'.common','disabled', true);\n\t\t\tif(selection === undefined) { return; }\n\t\t\tonsr = onsr === false ? false : true;\n\t\t\tpt=$($t).jqGrid('getGridRowById', selection);\n\t\t\tif(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; }\n\t\t\tfunction scrGrid(iR){\n\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\trpos = $($t.rows[iR]).position().top,\n\t\t\t\trh = $t.rows[iR].clientHeight;\n\t\t\t\tif(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }\n\t\t\t\telse if(rpos < ch+st) {\n\t\t\t\t\tif(rpos < st) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = rpos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.scrollrows===true) {\n\t\t\t\tner = $($t).jqGrid('getGridRowById',selection).rowIndex;\n\t\t\t\tif(ner >=0 ){\n\t\t\t\t\tscrGrid(ner);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.frozenColumns === true ) {\n\t\t\t\tfid = $t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(!$t.p.multiselect) {\t\n\t\t\t\tif(pt.className !== \"ui-subgrid\") {\n\t\t\t\t\tif( $t.p.selrow !== pt.id ) {\n\t\t\t\t\t\tcsr = $($t).jqGrid('getGridRowById', $t.p.selrow);\n\t\t\t\t\t\tif( csr ) {\n\t\t\t\t\t\t\t$(  csr ).removeClass(highlight).attr({\"aria-selected\":\"false\", \"tabindex\" : \"-1\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(pt).addClass(highlight).attr({\"aria-selected\":\"true\", \"tabindex\" : \"0\"});//.focus();\n\t\t\t\t\t\tif(fid) {\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstat = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\t\tif( onsr ) { \n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//unselect selectall checkbox when deselecting a specific row\n\t\t\t\t$t.setHeadCheckBox( false );\n\t\t\t\t$t.p.selrow = pt.id;\n\t\t\t\tia = $.inArray($t.p.selrow,$t.p.selarrrow);\n\t\t\t\tif (  ia === -1 ){\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).addClass(highlight).attr(\"aria-selected\",\"true\");}\n\t\t\t\t\tstat = true;\n\t\t\t\t\t$t.p.selarrrow.push($t.p.selrow);\n\t\t\t\t} else {\n\t\t\t\t\tif(pt.className !== \"ui-subgrid\") { $(pt).removeClass(highlight).attr(\"aria-selected\",\"false\");}\n\t\t\t\t\tstat = false;\n\t\t\t\t\t$t.p.selarrrow.splice(ia,1);\n\t\t\t\t\ttpsr = $t.p.selarrrow[0];\n\t\t\t\t\t$t.p.selrow = (tpsr === undefined) ? null : tpsr;\n\t\t\t\t}\n\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\tif(fid) {\n\t\t\t\t\tif(ia === -1) {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).addClass(highlight);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid)).removeClass(highlight);\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(selection), \"#\"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr'](\"checked\",stat);\n\t\t\t\t}\n\t\t\t\tif( onsr ) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridSelectRow\", [pt.id, stat, e]);\n\t\t\t\t\tif( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tresetSelection : function( rowid ){\n\t\treturn this.each(function(){\n\t\t\tvar t = this, sr, fid,\n\t\t\tgetstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\thighlight = getstyle(t.p.styleUI+'.common','highlight', true),\n\t\t\thover = getstyle(t.p.styleUI+'.common','hover', true);\n\t\t\tif( t.p.frozenColumns === true ) {\n\t\t\t\tfid = t.p.id+\"_frozen\";\n\t\t\t}\n\t\t\tif(rowid !== undefined ) {\n\t\t\t\tsr = rowid === t.p.selrow ? t.p.selrow : rowid;\n\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(sr)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\tif (fid) { $(\"#\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\tif(t.p.multiselect) {\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { $(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(sr), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false); }\n\t\t\t\t\tt.setHeadCheckBox( false);\n\t\t\t\t\tvar ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow);\n\t\t\t\t\tif (  ia !== -1 ){\n\t\t\t\t\t\tt.p.selarrrow.splice(ia,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); }\n\t\t\t\tsr = null;\n\t\t\t} else if(!t.p.multiselect) {\n\t\t\t\tif(t.p.selrow) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(t.p.id)+\" tbody:first tr#\"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\tif(fid) { $(\"#\"+$.jgrid.jqID(t.p.selrow), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); }\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); }\n\t\t\t\t\tt.p.selrow = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$(t.p.selarrrow).each(function(i,n){\n\t\t\t\t\t$( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr(\"aria-selected\",\"false\");\n\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\tif(fid) { \n\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid)).removeClass( highlight ); \n\t\t\t\t\t\t$(\"#jqg_\"+$.jgrid.jqID(t.p.id)+\"_\"+$.jgrid.jqID(n), \"#\"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr'](\"checked\",false);\n\t\t\t\t\t}\n\t\t\t\t\tif( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); }\n\t\t\t\t});\n\t\t\t\tt.setHeadCheckBox( false );\n\t\t\t\tt.p.selarrrow = [];\n\t\t\t\tt.p.selrow = null;\n\t\t\t}\n\t\t\tif(t.p.cellEdit === true) {\n\t\t\t\tif(parseInt(t.p.iCol,10)>=0  && parseInt(t.p.iRow,10)>=0) {\n\t\t\t\t\t$(\"td:eq(\"+t.p.iCol+\")\",t.rows[t.p.iRow]).removeClass(\"edit-cell \" + highlight );\n\t\t\t\t\t$(t.rows[t.p.iRow]).removeClass(\"selected-row \" + hover );\n\t\t\t\t}\n\t\t\t}\n\t\t\tt.p.savedRow = [];\n\t\t});\n\t},\n\tgetRowData : function( rowid, usedata ) {\n\t\tvar res = {}, resall, getall=false, len, j=0;\n\t\tthis.each(function(){\n\t\t\tvar $t = this,nm,ind;\n\t\t\tif(rowid == null) {\n\t\t\t\tgetall = true;\n\t\t\t\tresall = [];\n\t\t\t\tlen = $t.rows.length-1;\n\t\t\t} else {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(!ind) { return res; }\n\t\t\t\tlen = 1;\n\t\t\t}\n\t\t\tif( !(usedata && usedata === true && $t.p.data.length > 0)  ) {\n\t\t\t\tusedata = false;\n\t\t\t}\n\t\t\twhile(j<len){\n\t\t\t\tif(getall) { \n\t\t\t\t\tind = $t.rows[j+1];  // ignore first not visible row\n\t\t\t\t}\n\t\t\t\tif( $(ind).hasClass('jqgrow') ) {\n\t\t\t\t\tif(usedata) {\n\t\t\t\t\t\tres = $t.p.data[$t.p._index[ind.id]]; \n\t\t\t\t\t} else {\n\t\t\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\t\t\tif($t.p.treeGrid===true && nm === $t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(\"span:first\",this).html());\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(getall) { resall.push(res); res={}; }\n\t\t\t\t}\n\t\t\t\tj++;\n\t\t\t}\n\t\t});\n\t\treturn resall || res;\n\t},\n\tdelRowData : function(rowid) {\n\t\tvar success = false, rowInd, ia, nextRow;\n\t\tthis.each(function() {\n\t\t\tvar $t = this;\n\t\t\trowInd = $($t).jqGrid('getGridRowById', rowid);\n\t\t\tif(!rowInd) {return false;}\n\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\tnextRow = $(rowInd).next();\n\t\t\t\t\tif(nextRow.hasClass('ui-subgrid')) {\n\t\t\t\t\t\tnextRow.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(rowInd).remove();\n\t\t\t\t$t.p.records--;\n\t\t\t\t$t.p.reccount--;\n\t\t\t\t$t.updatepager(true,false);\n\t\t\t\tsuccess=true;\n\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\tia = $.inArray(rowid,$t.p.selarrrow);\n\t\t\t\t\tif(ia !== -1) { $t.p.selarrrow.splice(ia,1);}\n\t\t\t\t}\n\t\t\t\tif ($t.p.multiselect && $t.p.selarrrow.length > 0) {\n\t\t\t\t\t$t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1];\n\t\t\t\t} else {\n\t\t\t\t\tif( $t.p.selrow === rowid ) {\n\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tif($t.p.datatype === 'local') {\n\t\t\t\tvar id = $.jgrid.stripPref($t.p.idPrefix, rowid),\n\t\t\t\tpos = $t.p._index[id];\n\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t$t.p.data.splice(pos,1);\n\t\t\t\t\t$t.refreshIndex();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( $t.p.altRows === true && success ) {\n\t\t\t\tvar cn = $t.p.altclass;\n\t\t\t\t$($t.rows).each(function(i){\n\t\t\t\t\tif(i % 2 === 1) { $(this).addClass(cn); }\n\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\tsetRowData : function(rowid, data, cssp) {\n\t\tvar nm, success=true, title;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid) {return false;}\n\t\t\tvar t = this, vl, ind, cp = typeof cssp, lcdata={};\n\t\t\tind = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(!ind) { return false; }\n\t\t\tif( data ) {\n\t\t\t\ttry {\n\t\t\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\tvar dval =$.jgrid.getAccessor(data,nm);\n\t\t\t\t\t\tif( dval !== undefined) {\n\t\t\t\t\t\t\tlcdata[nm] = this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval;\n\t\t\t\t\t\t\tvl = t.formatter( rowid, lcdata[nm], i, data, 'edit');\n\t\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t\tif(t.p.treeGrid===true && nm === t.p.ExpandColumn) {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\") > span:first\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(\"td[role='gridcell']:eq(\"+i+\")\",ind).html(vl).attr(title);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tvar id = $.jgrid.stripPref(t.p.idPrefix, rowid),\n\t\t\t\t\t\tpos = t.p._index[id], key;\n\t\t\t\t\t\tif(t.p.treeGrid) {\n\t\t\t\t\t\t\tfor(key in t.p.treeReader){\n\t\t\t\t\t\t\t\tif(t.p.treeReader.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tdelete lcdata[t.p.treeReader[key]];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(pos !== undefined) {\n\t\t\t\t\t\t\tt.p.data[pos] = $.extend(true, t.p.data[pos], lcdata);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlcdata = null;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tsuccess = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(success) {\n\t\t\t\tif(cp === 'string') {$(ind).addClass(cssp);} else if(cssp !== null && cp === 'object') {$(ind).css(cssp);}\n\t\t\t\t$(t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t}\n\t\t});\n\t\treturn success;\n\t},\n\taddRowData : function(rowid,rdata,pos,src) {\n\t\tif($.inArray( pos, [\"first\", \"last\", \"before\", \"after\"] ) === -1) {pos = \"last\";}\n\t\tvar success = false, nm, row, rnc=\"\", msc=\"\", gi, si, ni,sind, i, v, prp=\"\", aradd, cnm, cn, data, cm, id;\n\t\tif(rdata) {\n\t\t\tif($.isArray(rdata)) {\n\t\t\t\taradd=true;\n\t\t\t\t//pos = \"last\";\n\t\t\t\tcnm = rowid;\n\t\t\t} else {\n\t\t\t\trdata = [rdata];\n\t\t\t\taradd = false;\n\t\t\t}\n\t\t\tthis.each(function() {\n\t\t\t\tvar t = this, datalen = rdata.length;\n\t\t\t\tni = t.p.rownumbers===true ? 1 :0;\n\t\t\t\tgi = t.p.multiselect ===true ? 1 :0;\n\t\t\t\tsi = t.p.subGrid===true ? 1 :0;\n\t\t\t\tif(!aradd) {\n\t\t\t\t\tif(rowid !== undefined) { rowid = String(rowid);}\n\t\t\t\t\telse {\n\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\tif(t.p.keyName !== false) {\n\t\t\t\t\t\t\tcnm = t.p.keyName;\n\t\t\t\t\t\t\tif(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; }\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcn = t.p.altclass;\n\t\t\t\tvar k = 0, cna = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {}, classes,\n\t\t\t\tair = $.isFunction(t.p.afterInsertRow) ? true : false;\n\t\t\t\tif(ni) {\n\t\t\t\t\trnc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'rownumBox', false, 'jqgrid-rownum');\n\t\t\t\t}\n\t\t\t\tif(gi) {\n\t\t\t\t\tmsc = $(t).jqGrid('getStyleUI',t.p.styleUI+\".base\",'multiBox', false, 'cbox');\n\t\t\t\t}\n\t\t\t\twhile(k < datalen) {\n\t\t\t\t\tdata = rdata[k];\n\t\t\t\t\trow=[];\n\t\t\t\t\tclasses = cna;\n\t\t\t\t\tif(aradd) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trowid = data[cnm];\n\t\t\t\t\t\t\tif(rowid===undefined) {\n\t\t\t\t\t\t\t\trowid = $.jgrid.randId();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (e) {rowid = $.jgrid.randId();}\n\t\t\t\t\t\tclasses += (t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? \" \" + cn : \"\" : \"\");\n\t\t\t\t\t}\n\t\t\t\t\tid = rowid;\n\t\t\t\t\trowid  = t.p.idPrefix + rowid;\n\t\t\t\t\tif(ni){\n\t\t\t\t\t\tprp = t.formatCol(0,1,'',null,rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \" + rnc +\" \"+prp+\">0</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(gi) {\n\t\t\t\t\t\tv = \"<input role=\\\"checkbox\\\" type=\\\"checkbox\\\"\"+\" id=\\\"jqg_\"+t.p.id+\"_\"+rowid+\"\\\" \"+msc+\"/>\";\n\t\t\t\t\t\tprp = t.formatCol(ni,1,'', null, rowid, true);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(si) {\n\t\t\t\t\t\trow[row.length] = $(t).jqGrid(\"addSubGridCell\",gi+ni,1);\n\t\t\t\t\t}\n\t\t\t\t\tfor(i = gi+si+ni; i < t.p.colModel.length;i++){\n\t\t\t\t\t\tcm = t.p.colModel[i];\n\t\t\t\t\t\tnm = cm.name;\n\t\t\t\t\t\tlcdata[nm] = data[nm];\n\t\t\t\t\t\tv = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data );\n\t\t\t\t\t\tprp = t.formatCol(i,1,v, data, rowid, lcdata);\n\t\t\t\t\t\trow[row.length] = \"<td role=\\\"gridcell\\\" \"+prp+\">\"+v+\"</td>\";\n\t\t\t\t\t}\n\t\t\t\t\trow.unshift( t.constructTr(rowid, false, classes, lcdata, data ) );\n\t\t\t\t\trow[row.length] = \"</tr>\";\n\t\t\t\t\tif(t.rows.length === 0){\n\t\t\t\t\t\t$(\"table:first\",t.grid.bDiv).append(row.join(''));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch (pos) {\n\t\t\t\t\t\t\tcase 'last':\n\t\t\t\t\t\t\t\t$(t.rows[t.rows.length-1]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = t.rows.length-1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'first':\n\t\t\t\t\t\t\t\t$(t.rows[0]).after(row.join(''));\n\t\t\t\t\t\t\t\tsind = 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif (sind) {\n\t\t\t\t\t\t\t\t\tif($(t.rows[sind.rowIndex+1]).hasClass(\"ui-subgrid\")) { $(t.rows[sind.rowIndex+1]).after(row); }\n\t\t\t\t\t\t\t\t\telse { $(sind).after(row.join('')); }\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex + 1;\n\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\t\t\tsind = $(t).jqGrid('getGridRowById', src);\n\t\t\t\t\t\t\t\tif(sind) {\n\t\t\t\t\t\t\t\t\t$(sind).before(row.join(''));\n\t\t\t\t\t\t\t\t\tsind=sind.rowIndex - 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(t.p.subGrid===true) {\n\t\t\t\t\t\t$(t).jqGrid(\"addSubGrid\",gi+ni, sind);\n\t\t\t\t\t}\n\t\t\t\t\tt.p.records++;\n\t\t\t\t\tt.p.reccount++;\n\t\t\t\t\t$(t).triggerHandler(\"jqGridAfterInsertRow\", [rowid,data,data]);\n\t\t\t\t\tif(air) { t.p.afterInsertRow.call(t,rowid,data,data); }\n\t\t\t\t\tk++;\n\t\t\t\t\tif(t.p.datatype === 'local') {\n\t\t\t\t\t\tlcdata[t.p.localReader.id] = id;\n\t\t\t\t\t\tt.p._index[id] = t.p.data.length;\n\t\t\t\t\t\tt.p.data.push(lcdata);\n\t\t\t\t\t\tlcdata = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( t.p.altRows === true && !aradd) {\n\t\t\t\t\tif (pos === \"last\") {\n\t\t\t\t\t\tif ((t.rows.length-1)%2 === 0)  {$(t.rows[t.rows.length-1]).addClass(cn);}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(t.rows).each(function(i){\n\t\t\t\t\t\t\tif(i % 2 ===0) { $(this).addClass(cn); }\n\t\t\t\t\t\t\telse { $(this).removeClass(cn); }\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt.updatepager(true,true);\n\t\t\t\tsuccess = true;\n\t\t\t});\n\t\t}\n\t\treturn success;\n\t},\n\tfooterData : function(action,data, format) {\n\t\tvar nm, success=false, res={}, title;\n\t\tfunction isEmpty(obj) {\n\t\t\tvar i;\n\t\t\tfor(i in obj) {\n\t\t\t\tif (obj.hasOwnProperty(i)) { return false; }\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\tif(action === undefined) { action = \"get\"; }\n\t\tif(typeof format !== \"boolean\") { format  = true; }\n\t\taction = action.toLowerCase();\n\t\tthis.each(function(){\n\t\t\tvar t = this, vl;\n\t\t\tif(!t.grid || !t.p.footerrow) {return false;}\n\t\t\tif(action === \"set\") { if(isEmpty(data)) { return false; } }\n\t\t\tsuccess=true;\n\t\t\t$(this.p.colModel).each(function(i){\n\t\t\t\tnm = this.name;\n\t\t\t\tif(action === \"set\") {\n\t\t\t\t\tif( data[nm] !== undefined) {\n\t\t\t\t\t\tvl = format ? t.formatter( \"\", data[nm], i, data, 'edit') : data[nm];\n\t\t\t\t\t\ttitle = this.title ? {\"title\":$.jgrid.stripHtml(vl)} : {};\n\t\t\t\t\t\t$(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html(vl).attr(title);\n\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t}\n\t\t\t\t} else if(action === \"get\") {\n\t\t\t\t\tres[nm] = $(\"tr.footrow td:eq(\"+i+\")\",t.grid.sDiv).html();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn action === \"get\" ? res : success;\n\t},\n\tshowHideCol : function(colname,show) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif( typeof colname === 'string') {colname=[colname];}\n\t\t\tshow = show !== \"none\" ? \"\" : \"none\";\n\t\t\tvar sw = show === \"\" ? true :false,\n\t\t\tgh = $t.p.groupHeader && ($.isArray($t.p.groupHeader) || $.isFunction($t.p.groupHeader) );\n\t\t\tif(gh) { $($t).jqGrid('destroyGroupHeader', false); }\n\t\t\t$(this.p.colModel).each(function(i) {\n\t\t\t\tif ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {\n\t\t\t\t\tif($t.p.frozenColumns === true && this.frozen === true) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr[role=row]\",$t.grid.hDiv).each(function(){\n\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t});\n\t\t\t\t\t$($t.rows).each(function(){\n\t\t\t\t\t\tif (!$(this).hasClass(\"jqgroup\")) {\n\t\t\t\t\t\t\t$(this.cells[i]).css(\"display\", show);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.footerrow) { $(\"tr.footrow td:eq(\"+i+\")\", $t.grid.sDiv).css(\"display\", show); }\n\t\t\t\t\tcw =  parseInt(this.width,10);\n\t\t\t\t\tif(show === \"none\") {\n\t\t\t\t\t\t$t.p.tblwidth -= cw+brd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$t.p.tblwidth += cw+brd;\n\t\t\t\t\t}\n\t\t\t\t\tthis.hidden = !sw;\n\t\t\t\t\tfndh=true;\n\t\t\t\t\t$($t).triggerHandler(\"jqGridShowHideCol\", [sw,this.name,i]);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(fndh===true) {\n\t\t\t\tif($t.p.shrinkToFit === true && !isNaN($t.p.height)) { $t.p.tblwidth += parseInt($t.p.scrollOffset,10);}\n\t\t\t\t$($t).jqGrid(\"setGridWidth\",$t.p.shrinkToFit === true ? $t.p.tblwidth : $t.p.width );\n\t\t\t}\n\t\t\tif( gh )  {\n\t\t\t\tvar gHead = $.extend([],$t.p.groupHeader);\n\t\t\t\t$t.p.groupHeader = null;\n\t\t\t\tfor(var k =0; k < gHead.length; k++) {\n\t\t\t\t\t$($t).jqGrid('setGroupHeaders', gHead[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\thideCol : function (colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"none\");});\n\t},\n\tshowCol : function(colname) {\n\t\treturn this.each(function(){$(this).jqGrid(\"showHideCol\",colname,\"\");});\n\t},\n\tremapColumns : function(permutation, updateCells, keepHeader) {\n\t\tfunction resortArray(a) {\n\t\t\tvar ac;\n\t\t\tif (a.length) {\n\t\t\t\tac = $.makeArray(a);\n\t\t\t} else {\n\t\t\t\tac = $.extend({}, a);\n\t\t\t}\n\t\t\t$.each(permutation, function(i) {\n\t\t\t\ta[i] = ac[this];\n\t\t\t});\n\t\t}\n\t\tvar ts = this.get(0);\n\t\tfunction resortRows(parent, clobj) {\n\t\t\t$(\">tr\"+(clobj||\"\"), parent).each(function() {\n\t\t\t\tvar row = this;\n\t\t\t\tvar elems = $.makeArray(row.cells);\n\t\t\t\t$.each(permutation, function() {\n\t\t\t\t\tvar e = elems[this];\n\t\t\t\t\tif (e) {\n\t\t\t\t\t\trow.appendChild(e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tresortArray(ts.p.colModel);\n\t\tresortArray(ts.p.colNames);\n\t\tresortArray(ts.grid.headers);\n\t\tresortRows($(\"thead:first\", ts.grid.hDiv), keepHeader && \":not(.ui-jqgrid-labels)\");\n\t\tif (updateCells) {\n\t\t\tresortRows($(\"#\"+$.jgrid.jqID(ts.p.id)+\" tbody:first\"), \".jqgfirstrow, tr.jqgrow, tr.jqfoot\");\n\t\t}\n\t\tif (ts.p.footerrow) {\n\t\t\tresortRows($(\"tbody:first\", ts.grid.sDiv));\n\t\t}\n\t\tif (ts.p.remapColumns) {\n\t\t\tif (!ts.p.remapColumns.length){\n\t\t\t\tts.p.remapColumns = $.makeArray(permutation);\n\t\t\t} else {\n\t\t\t\tresortArray(ts.p.remapColumns);\n\t\t\t}\n\t\t}\n\t\tts.p.lastsort = $.inArray(ts.p.lastsort, permutation);\n\t\tif(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }\n\t\t$(ts).triggerHandler(\"jqGridRemapColumns\", [permutation, updateCells, keepHeader]);\n\t},\n\tsetGridWidth : function(nwidth, shrink) {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) {return;}\n\t\t\tvar $t = this, cw,\n\t\t\tinitwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI === 'Bootstrap' ? 2 : 0;\n\t\t\tif(typeof shrink !== 'boolean') {\n\t\t\t\tshrink=$t.p.shrinkToFit;\n\t\t\t}\n\t\t\tif(isNaN(nwidth)) {return;}\n\t\t\tnwidth = parseInt(nwidth,10); \n\t\t\t$t.grid.width = $t.p.width = nwidth;\n\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).css(\"width\",nwidth+\"px\");\n\t\t\t$($t.grid.bDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\t$($t.grid.hDiv).css(\"width\",(nwidth - bstw) +\"px\");\n\t\t\tif($t.p.pager ) {\n\t\t\t\t$($t.p.pager).css(\"width\",nwidth+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toppager ) {\n\t\t\t\t$($t.p.toppager).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t}\n\t\t\tif($t.p.toolbar[0] === true){\n\t\t\t\t$($t.grid.uDiv).css(\"width\",(nwidth - bstw)+\"px\");\n\t\t\t\tif($t.p.toolbar[1]===\"both\") {$($t.grid.ubDiv).css(\"width\",(nwidth - bstw)+\"px\");}\n\t\t\t}\n\t\t\tif($t.p.footerrow) { \n\t\t\t\t$($t.grid.sDiv).css(\"width\",(nwidth - bstw)+\"px\"); \n\t\t\t}\n\t\t\tif(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}\n\t\t\tif(shrink===true) {\n\t\t\t\t$.each($t.p.colModel, function() {\n\t\t\t\t\tif(this.hidden===false){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tinitwidth += cw+brd;\n\t\t\t\t\t\tif(this.fixed) {\n\t\t\t\t\t\t\tgw += cw+brd;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvc++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(vc  === 0) { return; }\n\t\t\t\t$t.p.tblwidth = initwidth;\n\t\t\t\taw = nwidth-brd*vc-gw;\n\t\t\t\tif(!isNaN($t.p.height)) {\n\t\t\t\t\tif($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === 1){\n\t\t\t\t\t\ths = true;\n\t\t\t\t\t\taw -= scw;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinitwidth =0;\n\t\t\t\tvar cle = $t.grid.cols.length >0;\n\t\t\t\t$.each($t.p.colModel, function(i) {\n\t\t\t\t\tif(this.hidden === false && !this.fixed){\n\t\t\t\t\t\tcw = this.widthOrg;\n\t\t\t\t\t\tcw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw));\n\t\t\t\t\t\tif (cw < 0) { return; }\n\t\t\t\t\t\tthis.width =cw;\n\t\t\t\t\t\tinitwidth += cw;\n\t\t\t\t\t\t$t.grid.headers[i].width=cw;\n\t\t\t\t\t\t$t.grid.headers[i].el.style.width=cw+\"px\";\n\t\t\t\t\t\tif($t.p.footerrow) { $t.grid.footers[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tif(cle) { $t.grid.cols[i].style.width = cw+\"px\"; }\n\t\t\t\t\t\tlvc = i;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (!lvc) { return; }\n\n\t\t\t\tcr =0;\n\t\t\t\tif (hs) {\n\t\t\t\t\tif(nwidth-gw-(initwidth+brd*vc) !== scw){\n\t\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc)-scw;\n\t\t\t\t\t}\n\t\t\t\t} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {\n\t\t\t\t\tcr = nwidth-gw-(initwidth+brd*vc);\n\t\t\t\t}\n\t\t\t\t$t.p.colModel[lvc].width += cr;\n\t\t\t\t$t.p.tblwidth = initwidth+cr+brd*vc+gw;\n\t\t\t\tif($t.p.tblwidth > nwidth) {\n\t\t\t\t\tvar delta = $t.p.tblwidth - parseInt(nwidth,10);\n\t\t\t\t\t$t.p.tblwidth = nwidth;\n\t\t\t\t\tcw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;\n\t\t\t\t} else {\n\t\t\t\t\tcw= $t.p.colModel[lvc].width;\n\t\t\t\t}\n\t\t\t\t$t.grid.headers[lvc].width = cw;\n\t\t\t\t$t.grid.headers[lvc].el.style.width=cw+\"px\";\n\t\t\t\tif(cle) { $t.grid.cols[lvc].style.width = cw+\"px\"; }\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$t.grid.footers[lvc].style.width = cw+\"px\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif($t.p.tblwidth) {\n\t\t\t\t$('table:first',$t.grid.bDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$('table:first',$t.grid.hDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$('table:first',$t.grid.sDiv).css(\"width\",$t.p.tblwidth+\"px\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsetGridHeight : function (nh) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar bDiv = $($t.grid.bDiv);\n\t\t\tbDiv.css({height: nh+(isNaN(nh)?\"\":\"px\")});\n\t\t\tif($t.p.frozenColumns === true){\n\t\t\t\t//follow the original set height to use 16, better scrollbar width detection\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+\"_frozen\").parent().height(bDiv.height() - 16);\n\t\t\t}\n\t\t\t$t.p.height = nh;\n\t\t\tif ($t.p.scroll) { $t.grid.populateVisible(); }\n\t\t});\n\t},\n\tsetCaption : function (newcap){\n\t\treturn this.each(function(){\n\t\t\tvar ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+\".common\",'cornertop', true);\n\t\t\tthis.p.caption=newcap;\n\t\t\t$(\".ui-jqgrid-title, .ui-jqgrid-title-rtl\",this.grid.cDiv).html(newcap);\n\t\t\t$(this.grid.cDiv).show();\n\t\t\t$(this.grid.hDiv).removeClass(ctop);\n\t\t});\n\t},\n\tsetLabel : function(colname, nData, prop, attrp ){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { return; }\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif (nData){\n\t\t\t\t\tvar ico = $(\".s-ico\",thecol);\n\t\t\t\t\t$(\"[id^=jqgh_]\",thecol).empty().html(nData).append(ico);\n\t\t\t\t\t$t.p.colNames[pos] = nData;\n\t\t\t\t}\n\t\t\t\tif (prop) {\n\t\t\t\t\tif(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}\n\t\t\t\t}\n\t\t\t\tif(typeof attrp === 'object') {$(thecol).attr(attrp);}\n\t\t\t}\n\t\t});\n\t},\n\tsetSortIcon : function(colname, position) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos=-1, addpix = 8;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(colname != null) {\n\t\t\t\tif(isNaN(colname)) {\n\t\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpos = parseInt(colname,10);\n\t\t\t\t}\n\t\t\t} else { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar thecol = $(\"tr.ui-jqgrid-labels th:eq(\"+pos+\")\",$t.grid.hDiv);\n\t\t\t\tif(position === 'left') {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"left\");\n\t\t\t\t} else {\n\t\t\t\t\tthecol.find(\".s-ico\").css(\"float\", \"none\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t},\n\tsetCell : function(rowid,colname,nData,cssp,attrp, forceupd) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, pos =-1,v, title;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(colname)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === colname) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(colname,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ind = $($t).jqGrid('getGridRowById', rowid); \n\t\t\t\tif (ind){\n\t\t\t\t\tvar tcell = $(\"td:eq(\"+pos+\")\",ind), cl=0, rawdat=[];\n\t\t\t\t\tif(nData !== \"\" || forceupd === true ) {\n\t\t\t\t\t\tif(ind.cells !== undefined) {\n\t\t\t\t\t\t\twhile(cl<ind.cells.length) {\n\t\t\t\t\t\t\t\t// slow down speed\n\t\t\t\t\t\t\t\trawdat.push(ind.cells[cl].innerHTML);\n\t\t\t\t\t\t\t\tcl++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $t.formatter(rowid, nData, pos, rawdat, 'edit');\n\t\t\t\t\t\ttitle = $t.p.colModel[pos].title ? {\"title\":$.jgrid.stripHtml(v)} : {};\n\t\t\t\t\t\tif($t.p.treeGrid && $(\".tree-wrap\",$(tcell)).length>0) {\n\t\t\t\t\t\t\t$(\"span\",$(tcell)).html(v).attr(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(tcell).html(v).attr(title);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.datatype === \"local\") {\n\t\t\t\t\t\t\tvar cm = $t.p.colModel[pos], index;\n\t\t\t\t\t\t\tnData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData;\n\t\t\t\t\t\t\tindex = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)];\n\t\t\t\t\t\t\tif(index !== undefined) {\n\t\t\t\t\t\t\t\t$t.p.data[index][cm.name] = nData;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof cssp === 'string'){\n\t\t\t\t\t\t$(tcell).addClass(cssp);\n\t\t\t\t\t} else if(cssp) {\n\t\t\t\t\t\t$(tcell).css(cssp);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof attrp === 'object') {$(tcell).attr(attrp);}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetCell : function(rowid,col) {\n\t\tvar ret = false;\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1, cnm, ind;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tcnm = col;\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tcnm = this.name;\n\t\t\t\t\t\tpos = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpos = parseInt(col,10);\n\t\t\t}\n\t\t\tif(pos>=0) {\n\t\t\t\tind = $($t).jqGrid('getGridRowById', rowid);\n\t\t\t\tif(ind) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tret = $.unformat.call($t,$(\"td:eq(\"+pos+\")\",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t} catch (e){\n\t\t\t\t\t\tret = $.jgrid.htmlDecode($(\"td:eq(\"+pos+\")\",ind).html());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($t.p.treeGrid && ret && $t.p.ExpandColumn === cnm) {\n\t\t\t\t\tret = $( \"<div>\" + ret +\"</div>\").find(\"span:first\").html();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetCol : function (col, obj, mathopr) {\n\t\tvar ret = [], val, sum=0, min, max, v;\n\t\tobj = typeof obj !== 'boolean' ? false : obj;\n\t\tif(mathopr === undefined) { mathopr = false; }\n\t\tthis.each(function(){\n\t\t\tvar $t=this, pos=-1;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(isNaN(col)) {\n\t\t\t\t$($t.p.colModel).each(function(i){\n\t\t\t\t\tif (this.name === col) {\n\t\t\t\t\t\tpos = i;return false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {pos = parseInt(col,10);}\n\t\t\tif(pos>=0) {\n\t\t\t\tvar ln = $t.rows.length, i =0, dlen=0;\n\t\t\t\tif (ln && ln>0){\n\t\t\t\t\twhile(i<ln){\n\t\t\t\t\t\tif($($t.rows[i]).hasClass('jqgrow')) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tval = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tval = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\t\t\tv = parseFloat(val);\n\t\t\t\t\t\t\t\tif(!isNaN(v)) {\n\t\t\t\t\t\t\t\t\tsum += v;\n\t\t\t\t\t\t\t\t\tif (max === undefined) {max = min = v;}\n\t\t\t\t\t\t\t\t\tmin = Math.min(min, v);\n\t\t\t\t\t\t\t\t\tmax = Math.max(max, v);\n\t\t\t\t\t\t\t\t\tdlen++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(obj) { ret.push( {id:$t.rows[i].id,value:val} ); }\n\t\t\t\t\t\t\telse { ret.push( val ); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tif(mathopr) {\n\t\t\t\t\t\tswitch(mathopr.toLowerCase()){\n\t\t\t\t\t\t\tcase 'sum': ret =sum; break;\n\t\t\t\t\t\t\tcase 'avg': ret = sum/dlen; break;\n\t\t\t\t\t\t\tcase 'count': ret = (ln-1); break;\n\t\t\t\t\t\t\tcase 'min': ret = min; break;\n\t\t\t\t\t\t\tcase 'max': ret = max; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tclearGridData : function(clearfooter) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(typeof clearfooter !== 'boolean') { clearfooter = false; }\n\t\t\tif($t.p.deepempty) {$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:gt(0)\").remove();}\n\t\t\telse {\n\t\t\t\tvar trf = $(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first tr:first\")[0];\n\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").empty().append(trf);\n\t\t\t}\n\t\t\tif($t.p.footerrow && clearfooter) { $(\".ui-jqgrid-ftable td\",$t.grid.sDiv).html(\"&#160;\"); }\n\t\t\t$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];\n\t\t\t$t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0;\n\t\t\t$t.p.data = []; $t.p._index = {};\n\t\t\t$t.updatepager(true,false);\n\t\t});\n\t},\n\tgetInd : function(rowid,rc){\n\t\tvar ret =false,rw;\n\t\tthis.each(function(){\n\t\t\trw = $(this).jqGrid('getGridRowById', rowid);\n\t\t\tif(rw) {\n\t\t\t\tret = rc===true ? rw: rw.rowIndex;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tbindKeys : function( settings ){\n\t\tvar o = $.extend({\n\t\t\tonEnter: null,\n\t\t\tonSpace: null,\n\t\t\tonLeftKey: null,\n\t\t\tonRightKey: null,\n\t\t\tscrollingRows : true\n\t\t},settings || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$('body').is('[role]') ){$('body').attr('role','application');}\n\t\t\t$t.p.scrollrows = o.scrollingRows;\n\t\t\t$($t).keydown(function(event){\n\t\t\t\tvar target = $($t).find('tr[tabindex=0]')[0], id, r, mind,\n\t\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t\t//check for arrow keys\n\t\t\t\tif(target) {\n\t\t\t\t\tmind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)];\n\t\t\t\t\tif(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){\n\t\t\t\t\t\t// up key\n\t\t\t\t\t\tif(event.keyCode === 38 ){\n\t\t\t\t\t\t\tr = target.previousSibling;\n\t\t\t\t\t\t\tid = \"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.previousSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow')) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if key is down arrow\n\t\t\t\t\t\tif(event.keyCode === 40){\n\t\t\t\t\t\t\tr = target.nextSibling;\n\t\t\t\t\t\t\tid =\"\";\n\t\t\t\t\t\t\tif(r) {\n\t\t\t\t\t\t\t\tif($(r).is(\":hidden\")) {\n\t\t\t\t\t\t\t\t\twhile(r) {\n\t\t\t\t\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\t\t\t\t\tif(!$(r).is(\":hidden\") && $(r).hasClass('jqgrow') ) {id = r.id;break;}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tid = r.id;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('setSelection', id, true, event);\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// left\n\t\t\t\t\t\tif(event.keyCode === 37 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && $t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyLeft\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onLeftKey)) {\n\t\t\t\t\t\t\t\to.onLeftKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// right\n\t\t\t\t\t\tif(event.keyCode === 39 ){\n\t\t\t\t\t\t\tif($t.p.treeGrid && !$t.p.data[mind][expanded]) {\n\t\t\t\t\t\t\t\t$(target).find(\"div.treeclick\").trigger('click');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyRight\", [$t.p.selrow]);\n\t\t\t\t\t\t\tif($.isFunction(o.onRightKey)) {\n\t\t\t\t\t\t\t\to.onRightKey.call($t, $t.p.selrow);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//check if enter was pressed on a grid or treegrid node\n\t\t\t\t\telse if( event.keyCode === 13 ){\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeyEnter\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onEnter)) {\n\t\t\t\t\t\t\to.onEnter.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(event.keyCode === 32) {\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridKeySpace\", [$t.p.selrow]);\n\t\t\t\t\t\tif($.isFunction(o.onSpace)) {\n\t\t\t\t\t\t\to.onSpace.call($t, $t.p.selrow);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tunbindKeys : function(){\n\t\treturn this.each(function(){\n\t\t\t$(this).off('keydown');\n\t\t});\n\t},\n\tgetLocalRow : function (rowid) {\n\t\tvar ret = false, ind;\n\t\tthis.each(function(){\n\t\t\tif(rowid !== undefined) {\n\t\t\t\tind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)];\n\t\t\t\tif(ind >= 0 ) {\n\t\t\t\t\tret = this.p.data[ind];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tprogressBar : function ( p ) {\n\t\tp = $.extend({\n\t\t\thtmlcontent : \"\",\n\t\t\tmethod : \"hide\",\n\t\t\tloadtype : \"disable\" \n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar sh = p.method===\"show\" ? true : false,\n\t\t\tloadDiv = $(\"#load_\"+$.jgrid.jqID(this.p.id)), \n\t\t\toffsetParent, top, \n\t\t\tscrollTop = $(window).scrollTop();\n\t\t\tif(p.htmlcontent !== \"\") {\n\t\t\t\tloadDiv.html( p.htmlcontent );\n\t\t\t}\n\t\t\tswitch(p.loadtype) {\n\t\t\t\tcase \"disable\":\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"enable\":\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"block\":\n\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID(this.p.id)).toggle( sh );\n\t\t\t\t\tloadDiv.toggle( sh );\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (loadDiv.is(':visible')) {\n\t\t\t\toffsetParent = loadDiv.offsetParent();\n\t\t\t\tloadDiv.css('top', '');\n\t\t\t\tif (loadDiv.offset().top < scrollTop) {\n\t\t\t\t\ttop = Math.min(\n\t\t\t\t\t\t10 + scrollTop - offsetParent.offset().top,\n\t\t\t\t\t\toffsetParent.height() - loadDiv.height()\n\t\t\t\t\t);\n\t\t\t\t\tloadDiv.css('top', top + 'px');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tgetColProp : function(colname){\n\t\tvar ret ={}, $t = this[0];\n\t\tif ( !$t.grid ) { return false; }\n\t\tvar cM = $t.p.colModel, i;\n\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\tret = cM[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t},\n\tsetColProp : function(colname, obj){\n\t\t//do not set width will not work\n\t\treturn this.each(function(){\n\t\t\tif ( this.grid ) {\n\t\t\t\tif ( obj ) {\n\t\t\t\t\tvar cM = this.p.colModel, i;\n\t\t\t\t\tfor ( i=0;i<cM.length;i++ ) {\n\t\t\t\t\t\tif ( cM[i].name === colname ) {\n\t\t\t\t\t\t\t$.extend(true, this.p.colModel[i],obj);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsortGrid : function(colname,reload, sor){\n\t\treturn this.each(function(){\n\t\t\tvar $t=this,idx=-1,i, sobj=false;\n\t\t\tif ( !$t.grid ) { return;}\n\t\t\tif ( !colname ) { colname = $t.p.sortname; }\n\t\t\tfor ( i=0;i<$t.p.colModel.length;i++ ) {\n\t\t\t\tif ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) {\n\t\t\t\t\tidx = i;\n\t\t\t\t\tif($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) {\n\t\t\t\t\t\tsobj = $t.grid.fhDiv.find(\"#\" + $t.p.id + \"_\" + colname);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( idx !== -1 ){\n\t\t\t\tvar sort = $t.p.colModel[idx].sortable;\n\t\t\t\tif(!sobj) {\n\t\t\t\t\tsobj = $t.grid.headers[idx].el;\n\t\t\t\t}\n\t\t\t\tif ( typeof sort !== 'boolean' ) { sort =  true; }\n\t\t\t\tif ( typeof reload !=='boolean' ) { reload = false; }\n\t\t\t\tif ( sort ) { $t.sortData(\"jqgh_\"+$t.p.id+\"_\" + colname, idx, reload, sor, sobj); }\n\t\t\t}\n\t\t});\n\t},\n\tsetGridState : function(state) {\n\t\treturn this.each(function(){\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this,\n\t\t\topen = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_open', true),\n\t\t\tclose = $(this).jqGrid('getStyleUI',this.p.styleUI+\".base\",'icon_caption_close', true);\n\n\t\t\tif(state === 'hidden'){\n\t\t\t\t$(\".ui-jqgrid-bdiv, .ui-jqgrid-hdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideUp(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideUp(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideUp(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideUp(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( open ).addClass( close );\n\t\t\t\t$t.p.gridstate = 'hidden';\n\t\t\t} else if(state === 'visible') {\n\t\t\t\t$(\".ui-jqgrid-hdiv, .ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\");\n\t\t\t\tif($t.p.pager) {$($t.p.pager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toppager) {$($t.p.toppager).slideDown(\"fast\");}\n\t\t\t\tif($t.p.toolbar[0]===true) {\n\t\t\t\t\tif( $t.p.toolbar[1] === 'both') {\n\t\t\t\t\t\t$($t.grid.ubDiv).slideDown(\"fast\");\n\t\t\t\t\t}\n\t\t\t\t\t$($t.grid.uDiv).slideDown(\"fast\");\n\t\t\t\t}\n\t\t\t\tif($t.p.footerrow) { $(\".ui-jqgrid-sdiv\",\"#gbox_\"+$.jgrid.jqID($t.p.id)).slideDown(\"fast\"); }\n\t\t\t\t$(\".ui-jqgrid-headlink\",$t.grid.cDiv).removeClass( close ).addClass( open );\n\t\t\t\t$t.p.gridstate = 'visible';\n\t\t\t}\n\n\t\t});\n\t},\n\tsetFrozenColumns : function () {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tvar $t = this, cm = $t.p.colModel,i=0, len = cm.length, maxfrozen = -1, frozen= false,\n\t\t\thd= $($t).jqGrid('getStyleUI',$t.p.styleUI+\".base\",'headerDiv', true, 'ui-jqgrid-hdiv'),\n\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t// TODO treeGrid and grouping  Support\n\t\t\tif($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll )\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif($t.p.rownumbers) { i++; }\n\t\t\tif($t.p.multiselect) { i++; }\n\t\t\t\n\t\t\t// get the max index of frozen col\n\t\t\twhile(i<len)\n\t\t\t{\n\t\t\t\t// from left, no breaking frozen\n\t\t\t\tif(cm[i].frozen === true)\n\t\t\t\t{\n\t\t\t\t\tfrozen = true;\n\t\t\t\t\tmaxfrozen = i;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif( maxfrozen>=0 && frozen) {\n\t\t\t\tvar top = $t.p.caption ? $($t.grid.cDiv).outerHeight() : 0,\n\t\t\t\thth = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\t\t\t\t//headers\n\t\t\t\tif($t.p.toppager) {\n\t\t\t\t\ttop = top + $($t.grid.topDiv).outerHeight();\n\t\t\t\t}\n\t\t\t\tif($t.p.toolbar[0] === true) {\n\t\t\t\t\tif($t.p.toolbar[1] !== \"bottom\") {\n\t\t\t\t\t\ttop = top + $($t.grid.uDiv).outerHeight();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$t.grid.fhDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+top+'px;height:'+hth+'px;\" class=\"frozen-div ' + hd +'\"></div>');\n\t\t\t\t$t.grid.fbDiv = $('<div style=\"position:absolute;' + ($t.p.direction === \"rtl\" ? 'right:0;' : 'left:0;') + 'top:'+(parseInt(top,10)+parseInt(hth,10) + 1)+'px;overflow-y:hidden\" class=\"frozen-bdiv ui-jqgrid-bdiv\"></div>');\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv);\n\t\t\t\tvar htbl = $(\".ui-jqgrid-htable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t// groupheader support - only if useColSpanstyle is false\n\t\t\t\tif($t.p.groupHeader) {\n\t\t\t\t\t$(\"tr.jqg-first-row-header, tr.jqg-third-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\tvar swapfroz = -1, fdel = -1, cs, rs;\n\t\t\t\t\t$(\"tr.jqg-second-row-header th\", htbl).each(function(){\n\t\t\t\t\t\tcs= parseInt($(this).attr(\"colspan\"),10);\n\t\t\t\t\t\trs= parseInt($(this).attr(\"rowspan\"),10);\n\t\t\t\t\t\tif(rs) {\n\t\t\t\t\t\t\tswapfroz++;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cs) {\n\t\t\t\t\t\t\tswapfroz = swapfroz+cs;\n\t\t\t\t\t\t\tfdel++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(swapfroz === maxfrozen) {\n\t\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif(swapfroz !== maxfrozen) {\n\t\t\t\t\t\tfdel = maxfrozen;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"tr.jqg-second-row-header\", htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+fdel+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",htbl).each(function(){\n\t\t\t\t\t\t$(\"th:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t$(htbl).width(1);\n\t\t\t\tif(!$.jgrid.msie()) { $(htbl).css(\"height\",\"100%\"); }\n\t\t\t\t// resizing stuff\n\t\t\t\t$($t.grid.fhDiv).append(htbl)\n\t\t\t\t.mousemove(function (e) {\n\t\t\t\t\tif($t.grid.resizing){ $t.grid.dragMove(e);return false; }\n\t\t\t\t});\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\tvar hbd = $(\".ui-jqgrid-bdiv\",\"#gview_\"+$.jgrid.jqID($t.p.id)).height();\n\n\t\t\t\t\t$t.grid.fsDiv = $('<div style=\"position:absolute;left:0px;top:'+(parseInt(top,10)+parseInt(hth,10) + parseInt(hbd,10)+1)+'px;\" class=\"frozen-sdiv ui-jqgrid-sdiv\"></div>');\n\t\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv);\n\t\t\t\t\tvar ftbl = $(\".ui-jqgrid-ftable\",\"#gview_\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr\",ftbl).each(function(){\n\t\t\t\t\t\t$(\"td:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\t\t\t\t\t$(ftbl).width(1);\n\t\t\t\t\t$($t.grid.fsDiv).append(ftbl);\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridResizeStop.setFrozenColumns', function (e, w, index) {\n\t\t\t\t\tvar rhth = $(\".ui-jqgrid-htable\",$t.grid.fhDiv);\n\t\t\t\t\t$(\"th:eq(\"+index+\")\",rhth).width( w ); \n\t\t\t\t\tvar btd = $(\".ui-jqgrid-btable\",$t.grid.fbDiv);\n\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",btd).width( w );\n\t\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t\tvar ftd = $(\".ui-jqgrid-ftable\",$t.grid.fsDiv);\n\t\t\t\t\t\t$(\"tr:first td:eq(\"+index+\")\",ftd).width( w );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t// data stuff\n\t\t\t\t//TODO support for setRowData\n\t\t\t\t$(\"#gview_\"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv);\n\t\t\t\t\n\t\t\t\t$($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) {\n\t\t\t\t\tvar st = $($t.grid.bDiv).scrollTop();\n\t\t\t\t\tif (e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0) {\n\t\t\t\t\t\t//up\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st - 25 );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//down\n\t\t\t\t\t\t$($t.grid.bDiv).scrollTop( st + 25 );\n\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout');\n\t\t\t\t}\n\t\t\t\t$($t).on('jqGridAfterGridComplete.setFrozenColumns', function () {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").remove();\n\t\t\t\t\t$($t.grid.fbDiv).height($($t.grid.bDiv).height()-14);\n\t\t\t\t\t// find max height\n\t\t\t\t\tvar mh = [];\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id) + \" tr[role=row].jqgrow\").each(function(){\n\t\t\t\t\t\tmh.push( $(\"td:visible:first\", this).height() );\n\t\t\t\t\t});\n\n\t\t\t\t\tvar btbl = $(\"#\"+$.jgrid.jqID($t.p.id)).clone(true);\n\t\t\t\t\t$(\"tr[role=row]\",btbl).each(function(){\n\t\t\t\t\t\t$(\"td[role=gridcell]:gt(\"+maxfrozen+\")\",this).remove();\n\t\t\t\t\t});\n\n\t\t\t\t\t$(btbl).width(1).attr(\"id\",$t.p.id+\"_frozen\");\n\t\t\t\t\t$($t.grid.fbDiv).append(btbl);\n\t\t\t\t\t// set the height\n\t\t\t\t\t$(\"tr[role=row].jqgrow\",btbl).each(function(i, n){\n\t\t\t\t\t\t$(\"td:not(.jqgrid-rownum):visible:first\", this).height( mh[i] );\n\t\t\t\t\t});\n\n\t\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\t\t$(\"tr.jqgrow\", btbl).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).addClass( hover ); },\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)).removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t\t$(\"tr.jqgrow\", \"#\"+$.jgrid.jqID($t.p.id)).hover(\n\t\t\t\t\t\t\tfunction(){ $(this).addClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").addClass( hover );},\n\t\t\t\t\t\t\tfunction(){ $(this).removeClass( hover ); $(\"#\"+$.jgrid.jqID(this.id), \"#\"+$.jgrid.jqID($t.p.id)+\"_frozen\").removeClass( hover ); }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tbtbl=null;\n\t\t\t\t});\n\t\t\t\tif(!$t.grid.hDiv.loading) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\t$t.p.frozenColumns = true;\n\t\t\t}\n\t\t});\n\t},\n\tdestroyFrozenColumns :  function() {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.grid ) {return;}\n\t\t\tif(this.p.frozenColumns === true) {\n\t\t\t\tvar $t = this,\n\t\t\t\thover = $($t).jqGrid('getStyleUI',$t.p.styleUI+\".common\",'hover', true);\n\t\t\t\t$($t.grid.fhDiv).remove();\n\t\t\t\t$($t.grid.fbDiv).remove();\n\t\t\t\t$t.grid.fhDiv = null; $t.grid.fbDiv=null;\n\t\t\t\tif($t.p.footerrow) {\n\t\t\t\t\t$($t.grid.fsDiv).remove();\n\t\t\t\t\t$t.grid.fsDiv = null;\n\t\t\t\t}\n\t\t\t\t$(this).off('.setFrozenColumns');\n\t\t\t\tif($t.p.hoverrows === true) {\n\t\t\t\t\tvar ptr;\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).on({\n\t\t\t\t\t\t'mouseover': function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\tif($(ptr).attr(\"class\") !== \"ui-subgrid\") {\n\t\t\t\t\t\t\t\t$(ptr).addClass( hover );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'mouseout' : function(e) {\n\t\t\t\t\t\t\tptr = $(e.target).closest(\"tr.jqgrow\");\n\t\t\t\t\t\t\t$(ptr).removeClass( hover );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.p.frozenColumns = false;\n\t\t\t}\n\t\t});\n\t},\n\tresizeColumn : function (iCol, newWidth) {\n\t\treturn this.each(function(){\n\t\t\tvar grid = this.grid, p = this.p, cm = p.colModel, i, cmLen = cm.length, diff, diffnv;\n\t\t\tif(typeof iCol === \"string\" ) {\n\t\t\t\tfor(i = 0; i < cmLen; i++) {\n\t\t\t\t\tif(cm[i].name === iCol) {\n\t\t\t\t\t\tiCol = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tiCol = parseInt( iCol, 10 );\n\t\t\t}\n\t\t\tnewWidth = parseInt( newWidth, 10);\n\t\t\t// filters\n\t\t\tif(typeof iCol !== \"number\" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== \"number\" ) { \n\t\t\t\treturn; \n\t\t\t}\n\t\t\t\n\t\t\tif( newWidth < p.minColWidth ) { return; }\n\t\t\t\n\t\t\tif( p.forceFit ) {\n\t\t\t\tp.nv = 0;\n\t\t\t\tfor (i = iCol+1; i < cmLen; i++){\n\t\t\t\t\tif(cm[i].hidden !== true ) {\n\t\t\t\t\t\tp.nv = i - iCol; \n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// use resize stuff\n\t\t\tgrid.resizing = {idx : iCol };\n\t\t\tdiff = newWidth - grid.headers[iCol].width;\n\t\t\tif(p.forceFit) {\n\t\t\t\tdiffnv = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t\tif(diffnv < p.minColWidth) { return; }\n\t\t\t\tgrid.headers[ iCol + p.nv].newWidth = grid.headers[ iCol + p.nv].width - diff;\n\t\t\t} \n\t\t\tgrid.newWidth = p.tblwidth + diff;\n\t\t\tgrid.headers[ iCol ].newWidth = newWidth;\n\t\t\tgrid.dragEnd( false );\n\t\t\t\n\t\t});\n\t},\n\tgetStyleUI : function( styleui, classui, notclasstag, gridclass) {\n\t\tvar ret = \"\", q = \"\";\n\t\ttry {\n\t\t\tvar stylemod = styleui.split(\".\");\n\t\t\tif(!notclasstag) {\n\t\t\t\tret = \"class=\";\n\t\t\t\tq = \"\\\"\";\n\t\t\t}\n\t\t\tif(gridclass == null) {\n\t\t\t\tgridclass = \"\";\n\t\t\t}\n\t\t\tswitch(stylemod.length) {\n\t\t\t\tcase 1 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][classui] + q);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2 :\n\t\t\t\t\tret += q + $.trim(gridclass + \" \" + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q);\n\t\t\t}\n\t\t} catch (cls) {\n\t\t\tret = \"\";\n\t\t}\n\t\treturn ret;\n\t},\n\tresizeGrid : function (timeout) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(timeout === undefined) {\n\t\t\t\ttimeout = 500;\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\ttry {\n\t\t\t\t\tvar winwidth = $(window).width(),\n\t\t\t\t\tparentwidth = $(\"#gbox_\"+$.jgrid.jqID($t.p.id)).parent().width(),\n\t\t\t\t\tww = $t.p.width;\n\t\t\t\t\tif( (winwidth-parentwidth) > 3 ) {\n\t\t\t\t\t\tww = parentwidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tww = winwidth;\n\t\t\t\t\t}\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww);\n\t\t\t\t} catch(e){}\n\t\t\t}, timeout);\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid.extend({\n\teditCell : function (iRow,iCol, ed){\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nm, tmp,cc, cm,\n\t\t\thighlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true),\n\t\t\t\n\t\t\thover = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true),\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".celledit\",'inputClass', true);\n\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tiCol = parseInt(iCol,10);\n\t\t\t// select the row that can be used for other methods\n\t\t\t$t.p.selrow = $t.rows[iRow].id;\n\t\t\tif (!$t.p.knv) {$($t).jqGrid(\"GridNav\");}\n\t\t\t// check to see if we have already edited cell\n\t\t\tif ($t.p.savedRow.length>0) {\n\t\t\t\t// prevent second click on that field and enable selects\n\t\t\t\tif (ed===true ) {\n\t\t\t\t\tif(iRow == $t.p.iRow && iCol == $t.p.iCol){\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// save the cell\n\t\t\t\t$($t).jqGrid(\"saveCell\",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},1);\n\t\t\t}\n\t\t\tcm = $t.p.colModel[iCol];\n\t\t\tnm = cm.name;\n\t\t\tif (nm==='subgrid' || nm==='cb' || nm==='rn') {return;}\n\t\t\ttry {\n\t\t\t\tcc = $($t.rows[iRow].cells[iCol]);\n\t\t\t} catch(e) {\n\t\t\t\tcc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t}\n\t\t\tif (cm.editable===true && ed===true && !cc.hasClass(\"not-editable-cell\") && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {\n\t\t\t\tif(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttry {\n\t\t\t\t\ttmp =  $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);\n\t\t\t\t} catch (_) {\n\t\t\t\t\ttmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html();\n\t\t\t\t}\n\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\tif (!cm.edittype) {cm.edittype = \"text\";}\n\t\t\t\t$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});\n\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\tif($.isFunction($t.p.formatCell)) {\n\t\t\t\t\tvar tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t\tif(tmp2 !== undefined ) {tmp = tmp2;}\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridBeforeEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.beforeEditCell)) {\n\t\t\t\t\t$t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t\tvar opt = $.extend({}, cm.editoptions || {} ,{id:iRow+\"_\"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit'});\n\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\tif( $.inArray(cm.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t$(elc).addClass(inpclass);\n\t\t\t\t}\n\n\t\t\t\tcc.html(\"\").append(elc).attr(\"tabindex\",\"0\");\n\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\twindow.setTimeout(function () { $(elc).focus();},1);\n\t\t\t\t$(\"input, select, textarea\",cc).on(\"keydown\",function(e) {\n\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\tif($(\"input.hasDatepicker\",cc).length >0) {\n\t\t\t\t\t\t\tif( $(\".ui-datepicker\").is(\":hidden\") )  { $($t).jqGrid(\"restoreCell\",iRow,iCol); }\n\t\t\t\t\t\t\telse { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t}\n\t\t\t\t\t} //ESC\n\t\t\t\t\tif (e.keyCode === 13 && !e.shiftKey) {\n\t\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t\t\t// Prevent default action\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} //Enter\n\t\t\t\t\tif (e.keyCode === 9)  {\n\t\t\t\t\t\tif(!$t.grid.hDiv.loading ) {\n\t\t\t\t\t\t\tif (e.shiftKey) {$($t).jqGrid(\"prevCell\",iRow,iCol);} //Shift TAb\n\t\t\t\t\t\t\telse {$($t).jqGrid(\"nextCell\",iRow,iCol);} //Tab\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterEditCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterEditCell)) {\n\t\t\t\t\t$t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t//$(\"td:eq(\"+$t.p.iCol+\")\",$t.rows[$t.p.iRow]).removeClass(\"edit-cell \" + highlight);\n\t\t\t\t\t$($t.rows[$t.p.iRow]).removeClass(\"selected-row \" + hover).find(\"td:eq(\"+$t.p.iCol+\")\").removeClass(\"edit-cell \" + highlight);\n\t\t\t\t}\n\t\t\t\tcc.addClass(\"edit-cell \" + highlight);\n\t\t\t\t$($t.rows[iRow]).addClass(\"selected-row \" + hover);\n\t\t\t\ttmp = cc.html().replace(/\\&#160\\;/ig,'');\n\t\t\t\t$($t).triggerHandler(\"jqGridSelectCell\", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.onSelectCell)) {\n\t\t\t\t\t$t.p.onSelectCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$t.p.iCol = iCol; $t.p.iRow = iRow;\n\t\t});\n\t},\n\tsaveCell : function (iRow, iCol){\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr,\n\t\t\terrors = $.jgrid.getRegional(this, 'errors'),\n\t\t\tedit =$.jgrid.getRegional(this, 'edit');\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} \n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]),v,v2,\n\t\t\t\tcm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm),\n\t\t\t\tp = $(cc).offset();\n\n\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).val();\n\t\t\t\t\t\t\tv2 = $(\"#\"+iRow+\"_\"+nmjq+\" option:selected\",$t.rows[iRow]).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar sel = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), selectedText = [];\n\t\t\t\t\t\t\tv = $(sel).val();\n\t\t\t\t\t\t\tif(v) { v.join(\",\");} else { v=\"\"; }\n\t\t\t\t\t\t\t$(\"option:selected\",sel).each(\n\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tv2 = selectedText.join(\",\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm.formatter) { v2 = v; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\tvar cbv  = [\"Yes\",\"No\"];\n\t\t\t\t\t\tif(cm.editoptions){\n\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"password\":\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\tv = $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).val();\n\t\t\t\t\t\tv2=v;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\tv = cm.editoptions.custom_value.call($t, $(\".customelement\",cc),'get');\n\t\t\t\t\t\t\t\tif (v===undefined) { throw \"e2\";} else { v2=v; }\n\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap, \"function 'custom_value' \" + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// The common approach is if nothing changed do not do anything\n\t\t\t\tif (v2 !== $t.p.savedRow[fr].v){\n\t\t\t\t\tvar vvv = $($t).triggerHandler(\"jqGridBeforeSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\tif (vvv) {v = vvv; v2=vvv;}\n\t\t\t\t\tif ($.isFunction($t.p.beforeSaveCell)) {\n\t\t\t\t\t\tvar vv = $t.p.beforeSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\tif (vv) {v = vv; v2=vv;}\n\t\t\t\t\t}\n\t\t\t\t\tvar cv = $.jgrid.checkValues.call($t,v,iCol), nuem = false;\n\t\t\t\t\tif(cv[0] === true) {\n\t\t\t\t\t\tvar addpost = $($t).triggerHandler(\"jqGridBeforeSubmitCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]) || {};\n\t\t\t\t\t\tif ($.isFunction($t.p.beforeSubmitCell)) {\n\t\t\t\t\t\t\taddpost = $t.p.beforeSubmitCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\tif (!addpost) {addpost={};}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( $(\"input.hasDatepicker\",cc).length >0) { $(\"input.hasDatepicker\",cc).datepicker('hide'); }\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'remote') {\n\t\t\t\t\t\t\tif ($t.p.cellurl) {\n\t\t\t\t\t\t\t\tvar postdata = {};\n\t\t\t\t\t\t\t\tif($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }\n\t\t\t\t\t\t\t\tif(cm.editoptions && cm.editoptions.NullIfEmpty && v === \"\") {\n\t\t\t\t\t\t\t\t\tv = 'null';\n\t\t\t\t\t\t\t\t\tnuem = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tpostdata[nm] = v;\n\t\t\t\t\t\t\t\tvar idname,oper, opers;\n\t\t\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.rows[iRow].id);\n\t\t\t\t\t\t\t\tpostdata[oper] = opers.editoper;\n\t\t\t\t\t\t\t\tpostdata = $.extend(addpost,postdata);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') });\n\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = true;\n\t\t\t\t\t\t\t\t$.ajax( $.extend( {\n\t\t\t\t\t\t\t\t\turl: $t.p.cellurl,\n\t\t\t\t\t\t\t\t\tdata :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata,\n\t\t\t\t\t\t\t\t\ttype: \"POST\",\n\t\t\t\t\t\t\t\t\tcomplete: function (result, stat) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : $t.p.loadui });\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\tif (stat === 'success') {\n\t\t\t\t\t\t\t\t\t\t\tvar ret = $($t).triggerHandler(\"jqGridAfterSubmitCell\", [$t, result, postdata.id, nm, v, iRow, iCol]) || [true, ''];\n\t\t\t\t\t\t\t\t\t\t\tif (ret[0] === true && $.isFunction($t.p.afterSubmitCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\tret = $t.p.afterSubmitCell.call($t, result,postdata.id,nm,v,iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif(ret[0] === true){\n\t\t\t\t\t\t\t\t\t\t\t\tif(nuem) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = \"\";\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, v2, false, false, true);\n\t\t\t\t\t\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, result, stat);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\terror:function(res,stat,err) {\n\t\t\t\t\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t\t\t\t\t$t.grid.hDiv.loading = false;\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridErrorCell\", [res, stat, err]);\n\t\t\t\t\t\t\t\t\t\tif ($.isFunction($t.p.errorCell)) {\n\t\t\t\t\t\t\t\t\t\t\t$t.p.errorCell.call($t, res,stat,err);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap, res.status+\" : \"+res.statusText+\"<br/>\"+stat, edit.bClose, {\n\t\t\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI,\n\t\t\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($t.p.cellsubmit === 'clientArray') {\n\t\t\t\t\t\t\t$(cc).empty();\n\t\t\t\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id,iCol, v2, false, false, true);\n\t\t\t\t\t\t\t$(cc).addClass(\"dirty-cell\");\n\t\t\t\t\t\t\t$($t.rows[iRow]).addClass(\"edited\");\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAfterSaveCell\", [$t.rows[iRow].id, nm, v, iRow, iCol]);\n\t\t\t\t\t\t\tif ($.isFunction($t.p.afterSaveCell)) {\n\t\t\t\t\t\t\t\t$t.p.afterSaveCell.call($t, $t.rows[iRow].id,nm, v, iRow,iCol);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t\t\t$t.p.validationCell.call($t, $(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]), cv[1], iRow, iCol);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.setTimeout(function(){\n\t\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,v+ \" \" + cv[1], edit.bClose, {\n\t\t\t\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\t\t\t\ttop:p.top+30, \n\t\t\t\t\t\t\t\t\t\tleft:p.left ,\n\t\t\t\t\t\t\t\t\t\tonClose : function() {\n\t\t\t\t\t\t\t\t\t\t\tif(!$t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t\t\t\t$(\"#\"+iRow+\"_\"+nmjq,$t.rows[iRow]).focus();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},50);\n\t\t\t\t\t\t\t\tif( $t.p.restoreCellonFail) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\talert(cv[1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid(\"restoreCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$.jgrid.jqID($t.p.knv)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\trestoreCell : function(iRow, iCol) {\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\tif ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}\n\t\t\tif(fr !== null) {\n\t\t\t\tvar cc = $(\"td:eq(\"+iCol+\")\",$t.rows[iRow]);\n\t\t\t\t// datepicker fix\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",cc).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$(cc).empty().attr(\"tabindex\",\"-1\");\n\t\t\t\t$($t).jqGrid(\"setCell\",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);\n\t\t\t\t$($t).triggerHandler(\"jqGridAfterRestoreCell\", [$t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol]);\n\t\t\t\tif ($.isFunction($t.p.afterRestoreCell)) {\n\t\t\t\t\t$t.p.afterRestoreCell.call($t, $t.rows[iRow].id, $t.p.savedRow[fr].v, iRow, iCol);\n\t\t\t\t}\t\t\t\t\n\t\t\t\t$t.p.savedRow.splice(0,1);\n\t\t\t}\n\t\t\twindow.setTimeout(function () { $(\"#\"+$t.p.knv).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t});\n\t},\n\tnextCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol+1; i<$t.p.colModel.length; i++) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tprevCell : function (iRow,iCol) {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, nCol=false, i;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true) {return;}\n\t\t\t// try to find next editable cell\n\t\t\tfor (i=iCol-1; i>=0; i--) {\n\t\t\t\tif ( $t.p.colModel[i].editable ===true && (!$.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) {\n\t\t\t\t\tnCol = i; break;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(nCol !== false) {\n\t\t\t\t$($t).jqGrid(\"editCell\",iRow,nCol,true);\n\t\t\t} else {\n\t\t\t\tif ($t.p.savedRow.length >0) {\n\t\t\t\t\t$($t).jqGrid(\"saveCell\",iRow,iCol);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tGridNav : function() {\n\t\treturn this.each(function () {\n\t\t\tvar  $t = this;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t// trick to process keydown on non input elements\n\t\t\t$t.p.knv = $t.p.id + \"_kn\";\n\t\t\tvar selection = $(\"<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='\"+$t.p.knv+\"'></div></div>\"),\n\t\t\ti, kdir;\n\t\t\tfunction scrollGrid(iR, iC, tp){\n\t\t\t\tif (tp.substr(0,1)==='v') {\n\t\t\t\t\tvar ch = $($t.grid.bDiv)[0].clientHeight,\n\t\t\t\t\tst = $($t.grid.bDiv)[0].scrollTop,\n\t\t\t\t\tnROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,\n\t\t\t\t\tpROT = $t.rows[iR].offsetTop;\n\t\t\t\t\tif(tp === 'vd') {\n\t\t\t\t\t\tif(nROT >= ch) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(tp === 'vu'){\n\t\t\t\t\t\tif (pROT < st ) {\n\t\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(tp==='h') {\n\t\t\t\t\tvar cw = $($t.grid.bDiv)[0].clientWidth,\n\t\t\t\t\tsl = $($t.grid.bDiv)[0].scrollLeft,\n\t\t\t\t\tnCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,\n\t\t\t\t\tpCOL = $t.rows[iR].cells[iC].offsetLeft;\n\t\t\t\t\tif(nCOL >= cw+parseInt(sl,10)) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t} else if (pCOL < sl) {\n\t\t\t\t\t\t$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction findNextVisible(iC,act){\n\t\t\t\tvar ind, i;\n\t\t\t\tif(act === 'lft') {\n\t\t\t\t\tind = iC+1;\n\t\t\t\t\tfor (i=iC;i>=0;i--){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(act === 'rgt') {\n\t\t\t\t\tind = iC-1;\n\t\t\t\t\tfor (i=iC; i<$t.p.colModel.length;i++){\n\t\t\t\t\t\tif ($t.p.colModel[i].hidden !== true) {\n\t\t\t\t\t\t\tind = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ind;\n\t\t\t}\n\n\t\t\t$(selection).insertBefore($t.grid.cDiv);\n\t\t\t$(\"#\"+$t.p.knv)\n\t\t\t.focus()\n\t\t\t.keydown(function (e){\n\t\t\t\tkdir = e.keyCode;\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\tif(kdir===37) { kdir = 39;}\n\t\t\t\t\telse if (kdir===39) { kdir = 37; }\n\t\t\t\t}\n\t\t\t\tswitch (kdir) {\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tif ($t.p.iRow-1 >0 ) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow-1,$t.p.iCol,'vu');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow-1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 40 :\n\t\t\t\t\t\tif ($t.p.iRow+1 <=  $t.rows.length-1) {\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow+1,$t.p.iCol,'vd');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow+1,$t.p.iCol,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 37 :\n\t\t\t\t\t\tif ($t.p.iCol -1 >=  0) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol-1,'lft');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow, i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow, i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 39 :\n\t\t\t\t\t\tif ($t.p.iCol +1 <=  $t.p.colModel.length-1) {\n\t\t\t\t\t\t\ti = findNextVisible($t.p.iCol+1,'rgt');\n\t\t\t\t\t\t\tscrollGrid($t.p.iRow,i,'h');\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,i,false);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 13:\n\t\t\t\t\t\tif (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"editCell\",$t.p.iRow,$t.p.iCol,true);\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tdefault :\n\t\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t});\n\t},\n\tgetChangedCells : function (mthd) {\n\t\tvar ret=[];\n\t\tif (!mthd) {mthd='all';}\n\t\tthis.each(function(){\n\t\t\tvar $t= this,nm;\n\t\t\tif (!$t.grid || $t.p.cellEdit !== true ) {return;}\n\t\t\t$($t.rows).each(function(j){\n\t\t\t\tvar res = {};\n\t\t\t\tif ($(this).hasClass(\"edited\")) {\n\t\t\t\t\t$('td',this).each( function(i) {\n\t\t\t\t\t\tnm = $t.p.colModel[i].name;\n\t\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid') {\n\t\t\t\t\t\t\tif (mthd==='dirty') {\n\t\t\t\t\t\t\t\tif ($(this).hasClass('dirty-cell')) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tres[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tres[nm] = $.jgrid.htmlDecode($(this).html());\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tres.id = this.id;\n\t\t\t\t\tret.push(res);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn ret;\n\t}\n/// end  cell editing\n});\n\n//module begin\n$.extend($.jgrid,{\n// Modal functions\n\tshowModal : function(h) {\n\t\th.w.show();\n\t},\n\tcloseModal : function(h) {\n\t\th.w.hide().attr(\"aria-hidden\",\"true\");\n\t\tif(h.o) {h.o.remove();}\n\t},\n\thideModal : function (selector,o) {\n\t\to = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {});\n\t\tvar thisgrid = o.gb && typeof o.gb === \"string\" && o.gb.substr(0,6) === \"#gbox_\" ? $(\"#\" + o.gb.substr(6))[0] : false;\n\t\tif(o.onClose) {\n\t\t\tvar oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector);\n\t\t\tif (typeof oncret === 'boolean'  && !oncret ) { return; }\n\t\t}\n\t\tif( o.formprop && thisgrid  && o.form) {\n\t\t\tvar fh = $(selector)[0].style.height,\n\t\t\tfw = $(selector)[0].style.width;\n\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\tfh = parseFloat(fh);\n\t\t\t}\n\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\tfw = parseFloat(fw);\n\t\t\t}\n\t\t\tvar frmgr, frmdata;\n\t\t\tif(o.form==='edit'){\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"FrmGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"formProp\";\n\t\t\t} else if( o.form === 'view') {\n\t\t\t\tfrmgr = '#' +$.jgrid.jqID(\"ViewGrid_\"+ o.gb.substr(6));\n\t\t\t\tfrmdata = \"viewProp\";\n\t\t\t}\n\t\t\t$(thisgrid).data(frmdata, {\n\t\t\t\ttop:parseFloat($(selector).css(\"top\")),\n\t\t\t\tleft : parseFloat($(selector).css(\"left\")),\n\t\t\t\twidth : fw,\n\t\t\t\theight : fh,\n\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t});\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\t$(selector).attr(\"aria-hidden\",\"true\").jqmHide();\n\t\t} else {\n\t\t\tif(o.gb !== '') {\n\t\t\t\ttry {$(\".jqgrid-overlay:first\",o.gb).hide();} catch (e){}\n\t\t\t}\n\t\t\t$(selector).hide().attr(\"aria-hidden\",\"true\");\n\t\t}\n\t\tif( o.removemodal ) {\n\t\t\t$(selector).remove();\n\t\t}\n\t},\n//Helper functions\n\tfindPos : function(obj) {\n\t\tvar offset = $(obj).offset();\n\t\treturn [offset.left,offset.top];\n\t},\n\tcreateModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {\n\t\tp = $.extend(true, {}, $.jgrid.jqModal || {}, p);\n\t\tvar self = this,\n\t\t\trtlsup = $(p.gbox).attr(\"dir\") === \"rtl\" ? true : false,\n\t\t\tclasses = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal,\n\t\t\tcommon = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common,\n\t\t\tmw  = document.createElement('div');\n\t\tcss = $.extend({}, css || {});\n\t\tmw.className= \"ui-jqdialog \" + classes.modal;\n\t\tmw.id = aIDs.themodal;\n\t\tvar mh = document.createElement('div');\n\t\tmh.className = \"ui-jqdialog-titlebar \" + classes.header;\n\t\tmh.id = aIDs.modalhead;\n\t\t$(mh).append(\"<span class='ui-jqdialog-title'>\"+p.caption+\"</span>\");\n\t\tvar ahr= $(\"<a class='ui-jqdialog-titlebar-close \"+common.cornerall+\"'></a>\")\n\t\t.hover(function(){ahr.addClass(common.hover);},\n\t\t\tfunction(){ahr.removeClass(common.hover);})\n\t\t.append(\"<span class='\" + common.icon_base+\" \" + classes.icon_close + \"'></span>\");\n\t\t$(mh).append(ahr);\n\t\tif(rtlsup) {\n\t\t\tmw.dir = \"rtl\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"right\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"left\",0.3+\"em\");\n\t\t} else {\n\t\t\tmw.dir = \"ltr\";\n\t\t\t$(\".ui-jqdialog-title\",mh).css(\"float\",\"left\");\n\t\t\t$(\".ui-jqdialog-titlebar-close\",mh).css(\"right\",0.3+\"em\");\n\t\t}\n\t\tvar mc = document.createElement('div');\n\t\t$(mc).addClass(\"ui-jqdialog-content \" + classes.content).attr(\"id\",aIDs.modalcontent);\n\t\t$(mc).append(content);\n\t\tmw.appendChild(mc);\n\t\t$(mw).prepend(mh);\n\t\tif(appendsel===true) { \n\t\t\t$('body').append(mw); \n\t\t} //append as first child in body -for alert dialog\n\t\telse if (typeof appendsel === \"string\") {\n\t\t\t$(appendsel).append(mw);\n\t\t} else {\n\t\t\t$(mw).insertBefore(insertSelector);\n\t\t}\n\t\t$(mw).css(css);\n\t\tif(p.jqModal === undefined) {p.jqModal = true;} // internal use\n\t\tvar coord = {};\n\t\tif ( $.fn.jqm && p.jqModal === true) {\n\t\t\tif(p.left ===0 && p.top===0 && p.overlay) {\n\t\t\t\tvar pos = [];\n\t\t\t\tpos = $.jgrid.findPos(posSelector);\n\t\t\t\tp.left = pos[0] + 4;\n\t\t\t\tp.top = pos[1] + 4;\n\t\t\t}\n\t\t\tcoord.top = p.top+\"px\";\n\t\t\tcoord.left = p.left;\n\t\t} else if(p.left !==0 || p.top!==0) {\n\t\t\tcoord.left = p.left;\n\t\t\tcoord.top = p.top+\"px\";\n\t\t}\n\t\t$(\"a.ui-jqdialog-titlebar-close\",mh).click(function(){\n\t\t\tvar oncm = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\tvar gboxclose = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"gbox\") || p.gbox;\n\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\treturn false;\n\t\t});\n\t\tif (p.width === 0 || !p.width) {p.width = 300;}\n\t\tif(p.height === 0 || !p.height) {p.height =200;}\n\t\tif(!p.zIndex) {\n\t\t\tvar parentZ = $(insertSelector).parents(\"*[role=dialog]\").filter(':first').css(\"z-index\");\n\t\t\tif(parentZ) {\n\t\t\t\tp.zIndex = parseInt(parentZ,10)+2;\n\t\t\t} else {\n\t\t\t\tp.zIndex = 950;\n\t\t\t}\n\t\t}\n\t\tvar rtlt = 0;\n\t\tif( rtlsup && coord.left && !appendsel) {\n\t\t\trtlt = $(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do\n\t\t// just in case\n\t\t\tcoord.left = parseInt(coord.left,10) + parseInt(rtlt,10);\n\t\t}\n\t\tif(coord.left) { coord.left += \"px\"; }\n\t\t$(mw).css($.extend({\n\t\t\twidth: isNaN(p.width) ? \"auto\": p.width+\"px\",\n\t\t\theight:isNaN(p.height) ? \"auto\" : p.height + \"px\",\n\t\t\tzIndex:p.zIndex,\n\t\t\toverflow: 'hidden'\n\t\t},coord))\n\t\t.attr({tabIndex: \"-1\",\"role\":\"dialog\",\"aria-labelledby\":aIDs.modalhead,\"aria-hidden\":\"true\"});\n\t\tif(p.drag === undefined) { p.drag=true;}\n\t\tif(p.resize === undefined) {p.resize=true;}\n\t\tif (p.drag) {\n\t\t\t$(mh).css('cursor','move');\n\t\t\tif($.fn.tinyDraggable) {\n\t\t\t\t//$(mw).jqDrag(mh);\n\t\t\t\t$(mw).tinyDraggable({ handle:\"#\"+$.jgrid.jqID(mh.id) });\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).draggable({handle: $(\"#\"+$.jgrid.jqID(mh.id))});\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t}\n\t\tif(p.resize) {\n\t\t\tif($.fn.jqResize) {\n\t\t\t\t$(mw).append(\"<div class='jqResize \"+classes.resizable+\" \"+common.icon_base + \" \" +classes.icon_resizable+\"'></div>\");\n\t\t\t\t$(\"#\"+$.jgrid.jqID(aIDs.themodal)).jqResize(\".jqResize\",aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\t$(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? \"#\"+$.jgrid.jqID(aIDs.scrollelm) : false});\n\t\t\t\t} catch (r) {}\n\t\t\t}\n\t\t}\n\t\tif(p.closeOnEscape === true){\n\t\t\t$(mw).keydown( function( e ) {\n\t\t\t\tif( e.which === 27 ) {\n\t\t\t\t\tvar cone = $(\"#\"+$.jgrid.jqID(aIDs.themodal)).data(\"onClose\") || p.onClose;\n\t\t\t\t\tself.hideModal(\"#\"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tviewModal : function (selector,o){\n\t\to = $.extend({\n\t\t\ttoTop: true,\n\t\t\toverlay: 10,\n\t\t\tmodal: false,\n\t\t\toverlayClass : 'ui-widget-overlay', // to be fixed\n\t\t\tonShow: $.jgrid.showModal,\n\t\t\tonHide: $.jgrid.closeModal,\n\t\t\tgbox: '',\n\t\t\tjqm : true,\n\t\t\tjqM : true\n\t\t}, o || {});\n\t\tif(o.focusField === undefined) {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif(typeof o.focusField === \"number\" && o.focusField >= 0 ) {\n\t\t\to.focusField = parseInt(o.focusField,10);\n\t\t} else if(typeof o.focusField === \"boolean\" && !o.focusField) {\n\t\t\to.focusField = false;\n\t\t} else {\n\t\t\to.focusField = 0;\n\t\t}\n\t\tif ($.fn.jqm && o.jqm === true) {\n\t\t\tif(o.jqM) { $(selector).attr(\"aria-hidden\",\"false\").jqm(o).jqmShow(); }\n\t\t\telse {$(selector).attr(\"aria-hidden\",\"false\").jqmShow();}\n\t\t} else {\n\t\t\tif(o.gbox !== '') {\n\t\t\t\t$(\".jqgrid-overlay:first\",o.gbox).show();\n\t\t\t\t$(selector).data(\"gbox\",o.gbox);\n\t\t\t}\n\t\t\t$(selector).show().attr(\"aria-hidden\",\"false\");\n\t\t\tif(o.focusField >= 0) {\n\t\t\t\ttry{$(':input:visible',selector)[parseInt(o.focusField,10)].focus();}catch(_){}\n\t\t\t}\n\t\t}\n\t},\n\tinfo_dialog : function(caption, content,c_b, modalopt) {\n\t\tvar mopt = {\n\t\t\twidth:290,\n\t\t\theight:'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tdrag: true,\n\t\t\tresize: false,\n\t\t\tleft:250,\n\t\t\ttop:170,\n\t\t\tzIndex : 1000,\n\t\t\tjqModal : true,\n\t\t\tmodal : false,\n\t\t\tcloseOnEscape : true,\n\t\t\talign: 'center',\n\t\t\tbuttonalign : 'center',\n\t\t\tbuttons : []\n\t\t// {text:'textbutt', id:\"buttid\", onClick : function(){...}}\n\t\t// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...\n\t\t};\n\t\t$.extend(true, mopt, $.jgrid.jqModal || {}, {caption:\"<b>\"+caption+\"</b>\"}, modalopt || {});\n\t\tvar jm = mopt.jqModal, self = this,\n\t\tclasses = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].modal,\n\t\tcommon = $.jgrid.styleUI[(mopt.styleUI || 'jQueryUI')].common;\n\t\tif($.fn.jqm && !jm) { jm = false; }\n\t\t// in case there is no jqModal\n\t\tvar buttstr =\"\", i;\n\t\tif(mopt.buttons.length > 0) {\n\t\t\tfor(i=0;i<mopt.buttons.length;i++) {\n\t\t\t\tif(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = \"info_button_\"+i; }\n\t\t\t\tbuttstr += \"<a id='\"+mopt.buttons[i].id+\"' class='fm-button \" + common.button+\"'>\"+mopt.buttons[i].text+\"</a>\";\n\t\t\t}\n\t\t}\n\t\tvar dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+\"px\",\n\t\tcn = \"text-align:\"+mopt.align+\";\";\n\t\tvar cnt = \"<div id='info_id'>\";\n\t\tcnt += \"<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:\"+dh+\";\"+cn+\"'>\"+content+\"</div>\";\n\t\tcnt += c_b ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button \" + common.button + \"'>\"+c_b+\"</a>\"+buttstr+\"</div>\" :\n\t\t\tbuttstr !== \"\"  ? \"<div class='\" + classes.content + \"' style='text-align:\"+mopt.buttonalign+\";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>\"+buttstr+\"</div>\" : \"\";\n\t\tcnt += \"</div>\";\n\n\t\ttry {\n\t\t\tif($(\"#info_dialog\").attr(\"aria-hidden\") === \"false\") {\n\t\t\t\t$.jgrid.hideModal(\"#info_dialog\",{jqm:jm});\n\t\t\t}\n\t\t\t$(\"#info_dialog\").remove();\n\t\t} catch (e){}\n\t\t$.jgrid.createModal({\n\t\t\tthemodal:'info_dialog',\n\t\t\tmodalhead:'info_head',\n\t\t\tmodalcontent:'info_content',\n\t\t\tscrollelm: 'infocnt'},\n\t\t\tcnt,\n\t\t\tmopt,\n\t\t\t'','',true\n\t\t);\n\t\t// attach onclick after inserting into the dom\n\t\tif(buttstr) {\n\t\t\t$.each(mopt.buttons,function(i){\n\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id),\"#info_id\").on('click',function(){mopt.buttons[i].onClick.call($(\"#info_dialog\")); return false;});\n\t\t\t});\n\t\t}\n\t\t$(\"#closedialog\", \"#info_id\").on('click',function(){\n\t\t\tself.hideModal(\"#info_dialog\",{\n\t\t\t\tjqm:jm,\n\t\t\t\tonClose: $(\"#info_dialog\").data(\"onClose\") || mopt.onClose,\n\t\t\t\tgb: $(\"#info_dialog\").data(\"gbox\") || mopt.gbox\n\t\t\t});\n\t\t\treturn false;\n\t\t});\n\t\t$(\".fm-button\",\"#info_dialog\").hover(\n\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t);\n\t\tif($.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); }\n\t\t$.jgrid.viewModal(\"#info_dialog\",{\n\t\t\tonHide: function(h) {\n\t\t\t\th.w.hide().remove();\n\t\t\t\tif(h.o) { h.o.remove(); }\n\t\t\t},\n\t\t\tmodal :mopt.modal,\n\t\t\tjqm:jm\n\t\t});\n\t\tif($.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); }\n\t\ttry{ $(\"#info_dialog\").focus();} catch (m){}\n\t},\n\tbindEv: function  (el, opt) {\n\t\tvar $t = this;\n\t\tif($.isFunction(opt.dataInit)) {\n\t\t\topt.dataInit.call($t,el,opt);\n\t\t}\n\t\tif(opt.dataEvents) {\n\t\t\t$.each(opt.dataEvents, function() {\n\t\t\t\tif (this.data !== undefined) {\n\t\t\t\t\t$(el).on(this.type, this.data, this.fn);\n\t\t\t\t} else {\n\t\t\t\t\t$(el).on(this.type, this.fn);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n// Form Functions\n\tcreateEl : function(eltype,options,vl,autowidth, ajaxso) {\n\t\tvar elem = \"\", $t = this;\n\t\tfunction setAttributes(elm, atr, exl ) {\n\t\t\tvar exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper'];\n\t\t\tif(exl !== undefined && $.isArray(exl)) {\n\t\t\t\t$.merge(exclude, exl);\n\t\t\t}\n\t\t\t$.each(atr, function(key, value){\n\t\t\t\tif($.inArray(key, exclude) === -1) {\n\t\t\t\t\t$(elm).attr(key,value);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!atr.hasOwnProperty('id')) {\n\t\t\t\t$(elm).attr('id', $.jgrid.randId());\n\t\t\t}\n\t\t}\n\t\tswitch (eltype)\n\t\t{\n\t\t\tcase \"textarea\" :\n\t\t\t\telem = document.createElement(\"textarea\");\n\t\t\t\tif(autowidth) {\n\t\t\t\t\tif(!options.cols) { $(elem).css({width:\"98%\"});}\n\t\t\t\t} else if (!options.cols) { options.cols = 20; }\n\t\t\t\tif(!options.rows) { options.rows = 2; }\n\t\t\t\tif(vl==='&nbsp;' || vl==='&#160;' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl=\"\";}\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\t$(elem).attr({\"role\":\"textbox\",\"multiline\":\"true\"});\n\t\t\tbreak;\n\t\t\tcase \"checkbox\" : //what code for simple checkbox\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = \"checkbox\";\n\t\t\t\tif( !options.value ) {\n\t\t\t\t\tvar vl1 = (vl+\"\").toLowerCase();\n\t\t\t\t\tif(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!==\"\") {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t\telem.value = vl;\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.value = \"on\";\n\t\t\t\t\t}\n\t\t\t\t\t$(elem).attr(\"offval\",\"off\");\n\t\t\t\t} else {\n\t\t\t\t\tvar cbval = options.value.split(\":\");\n\t\t\t\t\tif(vl === cbval[0]) {\n\t\t\t\t\t\telem.checked=true;\n\t\t\t\t\t\telem.defaultChecked=true;\n\t\t\t\t\t}\n\t\t\t\t\telem.value = cbval[0];\n\t\t\t\t\t$(elem).attr(\"offval\",cbval[1]);\n\t\t\t\t}\n\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t$(elem).attr(\"role\",\"checkbox\");\n\t\t\tbreak;\n\t\t\tcase \"select\" :\n\t\t\t\telem = document.createElement(\"select\");\n\t\t\t\telem.setAttribute(\"role\",\"select\");\n\t\t\t\tvar msl, ovm = [];\n\t\t\t\tif(options.multiple===true) {\n\t\t\t\t\tmsl = true;\n\t\t\t\t\telem.multiple=\"multiple\";\n\t\t\t\t\t$(elem).attr(\"aria-multiselectable\",\"true\");\n\t\t\t\t} else { msl = false; }\n\t\t\t\tif(options.dataUrl != null) {\n\t\t\t\t\tvar rowid = null, postData = options.postData || ajaxso.postData;\n\t\t\t\t\ttry {\n\t\t\t\t\t\trowid = options.rowId;\n\t\t\t\t\t} catch(e) {}\n\n\t\t\t\t\tif ($t.p && $t.p.idPrefix) {\n\t\t\t\t\t\trowid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\t}\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\turl: $.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl,\n\t\t\t\t\t\ttype : \"GET\",\n\t\t\t\t\t\tdataType: \"html\",\n\t\t\t\t\t\tdata: $.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData,\n\t\t\t\t\t\tcontext: {elem:elem, options:options, vl:vl},\n\t\t\t\t\t\tsuccess: function(data){\n\t\t\t\t\t\t\tvar ovm = [], elem = this.elem, vl = this.vl,\n\t\t\t\t\t\t\toptions = $.extend({},this.options),\n\t\t\t\t\t\t\tmsl = options.multiple===true,\n\t\t\t\t\t\t\tcU = options.cacheUrlData === true,\n\t\t\t\t\t\t\toV ='', txt,\n\t\t\t\t\t\t\ta = $.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data;\n\t\t\t\t\t\t\tif(typeof a === 'string') {\n\t\t\t\t\t\t\t\ta = $( $.trim( a ) ).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(a) {\n\t\t\t\t\t\t\t\t$(elem).append(a);\n\t\t\t\t\t\t\t\tsetAttributes(elem, options, postData ? ['postData'] : undefined );\n\t\t\t\t\t\t\t\tif(options.size === undefined) { options.size =  msl ? 3 : 1;}\n\t\t\t\t\t\t\t\tif(msl) {\n\t\t\t\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tovm[0] = $.trim(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//$(elem).attr(options);\n\t\t\t\t\t\t\t\t//setTimeout(function(){\n\t\t\t\t\t\t\t\t$(\"option\",elem).each(function(i){\n\t\t\t\t\t\t\t\t\ttxt = $(this).text();\n\t\t\t\t\t\t\t\t\tvl = $(this).val();\n\t\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\t\toV += (i!== 0 ? \";\": \"\")+ vl+\":\"+txt; \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//if(i===0) { this.selected = \"\"; }\n\t\t\t\t\t\t\t\t\t// fix IE8/IE7 problem with selecting of the first item on multiple=true\n\t\t\t\t\t\t\t\t\tif (i === 0 && elem.multiple) { this.selected = false; }\n\t\t\t\t\t\t\t\t\t$(this).attr(\"role\",\"option\");\n\t\t\t\t\t\t\t\t\tif($.inArray($.trim(txt),ovm) > -1 || $.inArray($.trim(vl),ovm) > -1 ) {\n\t\t\t\t\t\t\t\t\t\tthis.selected= \"selected\";\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(cU) {\n\t\t\t\t\t\t\t\t\tif(options.oper === 'edit') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper === 'search') {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} });\n\t\t\t\t\t\t\t\t\t} else if(options.oper ==='filter') {\n\t\t\t\t\t\t\t\t\t\tif($(\"#fbox_\"+$t.p.id)[0].p) {\n\t\t\t\t\t\t\t\t\t\t\tvar cols = $(\"#fbox_\"+$t.p.id)[0].p.columns, nm;\n\t\t\t\t\t\t\t\t\t\t\t$.each(cols,function(i) {\n\t\t\t\t\t\t\t\t\t\t\t\tnm  =  this.index || this.name;\n\t\t\t\t\t\t\t\t\t\t\t\tif(options.name === nm) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.dataUrl = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.searchoptions.value = oV;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterSelectUrlComplete\", [elem]);\n\t\t\t\t\t\t\t\t//},0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},ajaxso || {}));\n\t\t\t\t} else if(options.value) {\n\t\t\t\t\tvar i;\n\t\t\t\t\tif(options.size === undefined) {\n\t\t\t\t\t\toptions.size = msl ? 3 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tovm = vl.split(\",\");\n\t\t\t\t\t\tovm = $.map(ovm,function(n){return $.trim(n);});\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof options.value === 'function') { options.value = options.value(); }\n\t\t\t\t\tvar so,sv, ov, oSv, key, value,\n\t\t\t\t\tsep = options.separator === undefined ? \":\" : options.separator,\n\t\t\t\t\tdelim = options.delimiter === undefined ? \";\" : options.delimiter;\n\t\t\t\t\tif(typeof options.value === 'string') {\n\t\t\t\t\t\tso = options.value.split(delim);\n\t\t\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\t\t\tsv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\tov.value = sv[0]; ov.innerHTML = sv[1];\n\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\tif (!msl &&  ($.trim(sv[0]) === $.trim(vl) || $.trim(sv[1]) === $.trim(vl))) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(sv[1]), ovm)>-1 || $.inArray($.trim(sv[0]), ovm)>-1)) {ov.selected =\"selected\";}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (Object.prototype.toString.call(options.value) === \"[object Array]\") {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\t// array of arrays [[Key, Value], [Key, Value], ...]\n\t\t\t\t\t\tfor (i=0; i<oSv.length; i++) {\n\t\t\t\t\t\t\tif(oSv[i].length === 2) {\n\t\t\t\t\t\t\t\tkey = oSv[i][0]; \n\t\t\t\t\t\t\t\tvalue = oSv[i][1];\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = value;\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(value) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(value),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (typeof options.value === 'object') {\n\t\t\t\t\t\toSv = options.value;\n\t\t\t\t\t\tfor (key in oSv) {\n\t\t\t\t\t\t\tif (oSv.hasOwnProperty(key ) ){\n\t\t\t\t\t\t\t\tov = document.createElement(\"option\");\n\t\t\t\t\t\t\t\tov.setAttribute(\"role\",\"option\");\n\t\t\t\t\t\t\t\tov.value = key; ov.innerHTML = oSv[key];\n\t\t\t\t\t\t\t\telem.appendChild(ov);\n\t\t\t\t\t\t\t\tif (!msl &&  ( $.trim(key) === $.trim(vl) || $.trim(oSv[key]) === $.trim(vl)) ) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t\tif (msl && ($.inArray($.trim(oSv[key]),ovm)>-1 || $.inArray($.trim(key),ovm)>-1)) { ov.selected =\"selected\"; }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetAttributes(elem, options, ['value']);\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"image\" :\n\t\t\tcase \"file\" :\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tbreak;\n\t\t\tcase \"custom\" :\n\t\t\t\telem = document.createElement(\"span\");\n\t\t\t\ttry {\n\t\t\t\t\tif($.isFunction(options.custom_element)) {\n\t\t\t\t\t\tvar celm = options.custom_element.call($t,vl,options);\n\t\t\t\t\t\tif(celm) {\n\t\t\t\t\t\t\tcelm = $(celm).addClass(\"customelement\").attr({id:options.id,name:options.name});\n\t\t\t\t\t\t\t$(elem).empty().append(celm);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow \"e2\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow \"e1\";\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\t\t\t\t\tedit =$.jgrid.getRegional($t, 'edit');\n\n\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse if (e===\"e2\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_element' \"+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });}\n\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,typeof e===\"string\"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tdefault :\n\t\t\t\tvar role;\n\t\t\t\tif(eltype===\"button\") { role = \"button\"; }\n\t\t\t\telse { role = \"textbox\"; } // ???\n\t\t\t\telem = document.createElement(\"input\");\n\t\t\t\telem.type = eltype;\n\t\t\t\telem.value = vl;\n\t\t\t\tsetAttributes(elem, options);\n\t\t\t\tif(eltype !== \"button\"){\n\t\t\t\t\tif(autowidth) {\n\t\t\t\t\t\tif(!options.size) { $(elem).css({width:\"96%\"}); }\n\t\t\t\t\t} else if (!options.size) { options.size = 20; }\n\t\t\t\t}\n\t\t\t\t$(elem).attr(\"role\",role);\n\t\t}\n\t\treturn elem;\n\t},\n// Date Validation Javascript\n\tcheckDate : function (format, date) {\n\t\tvar daysInFebruary = function(year){\n\t\t// February has 29 days in any year evenly divisible by four,\n\t\t// EXCEPT for centurial years which are not also divisible by 400.\n\t\t\treturn (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );\n\t\t},\n\t\ttsp = {}, sep;\n\t\tformat = format.toLowerCase();\n\t\t//we search for /,-,. for the date separator\n\t\tif(format.indexOf(\"/\") !== -1) {\n\t\t\tsep = \"/\";\n\t\t} else if(format.indexOf(\"-\") !== -1) {\n\t\t\tsep = \"-\";\n\t\t} else if(format.indexOf(\".\") !== -1) {\n\t\t\tsep = \".\";\n\t\t} else {\n\t\t\tsep = \"/\";\n\t\t}\n\t\tformat = format.split(sep);\n\t\tdate = date.split(sep);\n\t\tif (date.length !== 3) { return false; }\n\t\tvar j=-1,yln, dln=-1, mln=-1, i;\n\t\tfor(i=0;i<format.length;i++){\n\t\t\tvar dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10);\n\t\t\ttsp[format[i]] = dv;\n\t\t\tyln = format[i];\n\t\t\tif(yln.indexOf(\"y\") !== -1) { j=i; }\n\t\t\tif(yln.indexOf(\"m\") !== -1) { mln=i; }\n\t\t\tif(yln.indexOf(\"d\") !== -1) { dln=i; }\n\t\t}\n\t\tif (format[j] === \"y\" || format[j] === \"yyyy\") {\n\t\t\tyln=4;\n\t\t} else if(format[j] ===\"yy\"){\n\t\t\tyln = 2;\n\t\t} else {\n\t\t\tyln = -1;\n\t\t}\n\t\tvar daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31],\n\t\tstrDate;\n\t\tif (j === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[j]].toString();\n\t\t\tif(yln === 2 && strDate.length === 1) {yln = 1;}\n\t\t\tif (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!==\"00\")){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(mln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[mln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){\n\t\t\t\treturn false;\n\t\t\t}\n\t\tif(dln === -1) {\n\t\t\treturn false;\n\t\t}\n\t\t\tstrDate = tsp[format[dln]].toString();\n\t\t\tif (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){\n\t\t\t\treturn false;\n\t\t\t}\n\t\treturn true;\n\t},\n\tisEmpty : function(val)\n\t{\n\t\tif (val === undefined || val.match(/^\\s+$/) || val === \"\")\t{\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\tcheckTime : function(time){\n\t// checks only hh:ss (and optional am/pm)\n\t\tvar re = /^(\\d{1,2}):(\\d{2})([apAP][Mm])?$/,regs;\n\t\tif(!$.jgrid.isEmpty(time))\n\t\t{\n\t\t\tregs = time.match(re);\n\t\t\tif(regs) {\n\t\t\t\tif(regs[3]) {\n\t\t\t\t\tif(regs[1] < 1 || regs[1] > 12) { return false; }\n\t\t\t\t} else {\n\t\t\t\t\tif(regs[1] > 23) { return false; }\n\t\t\t\t}\n\t\t\t\tif(regs[2] > 59) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t},\n\tcheckValues : function(val, valref, customobject, nam) {\n\t\tvar edtrul,i, nm, dft, len, g = this, cm = g.p.colModel,\n\t\tmsg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate;\n\t\tif(customobject === undefined) {\n\t\t\tif(typeof valref==='string'){\n\t\t\t\tfor( i =0, len=cm.length;i<len; i++){\n\t\t\t\t\tif(cm[i].name===valref) {\n\t\t\t\t\t\tedtrul = cm[i].editrules;\n\t\t\t\t\t\tvalref = i;\n\t\t\t\t\t\tif(cm[i].formoptions != null) { nm = cm[i].formoptions.label; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(valref >=0) {\n\t\t\t\tedtrul = cm[valref].editrules;\n\t\t\t}\n\t\t} else {\n\t\t\tedtrul = customobject;\n\t\t\tnm = nam===undefined ? \"_\" : nam;\n\t\t}\n\t\tif(edtrul) {\n\t\t\tif(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; }\n\t\t\tif(edtrul.required === true) {\n\t\t\t\tif( $.jgrid.isEmpty(val) )  { return [false,nm+\": \"+msg.required,\"\"]; }\n\t\t\t}\n\t\t\t// force required\n\t\t\tvar rqfield = edtrul.required === false ? false : true;\n\t\t\tif(edtrul.number === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.number,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) {\n\t\t\t\tif (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+\": \"+msg.minValue+\" \"+edtrul.minValue,\"\"];}\n\t\t\t}\n\t\t\tif(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) {\n\t\t\t\tif (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+\": \"+msg.maxValue+\" \"+edtrul.maxValue,\"\"];}\n\t\t\t}\n\t\t\tvar filter;\n\t\t\tif(edtrul.email === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t// taken from $ Validate plugin\n\t\t\t\t\tfilter = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.email,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.integer === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(isNaN(val)) { return [false,nm+\": \"+msg.integer,\"\"]; }\n\t\t\t\t\tif ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+\": \"+msg.integer,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.date === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(cm[valref].formatoptions && cm[valref].formatoptions.newformat) {\n\t\t\t\t\t\tdft = cm[valref].formatoptions.newformat;\n\t\t\t\t\t\tfmtdate = $.jgrid.getRegional(g, 'formatter.date.masks');\n\t\t\t\t\t\tif(fmtdate && fmtdate.hasOwnProperty(dft) ) {\n\t\t\t\t\t\t\tdft = fmtdate[dft];\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdft = cm[valref].datefmt || \"Y-m-d\";\n\t\t\t\t\t}\n\t\t\t\t\tif(!$.jgrid.checkDate (dft, val)) { return [false,nm+\": \"+msg.date+\" - \"+dft,\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.time === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif(!$.jgrid.checkTime (val)) { return [false,nm+\": \"+msg.date+\" - hh:mm (am/pm)\",\"\"]; }\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.url === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tfilter = /^(((https?)|(ftp)):\\/\\/([\\-\\w]+\\.)+\\w{2,3}(\\/[%\\-\\w]+(\\.\\w{2,})?)*(([\\w\\-\\.\\?\\\\\\/+@&#;`~=%!]*)(\\.\\w{2,})?)*\\/?)/i;\n\t\t\t\t\tif(!filter.test(val)) {return [false,nm+\": \"+msg.url,\"\"];}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(edtrul.custom === true) {\n\t\t\t\tif( !(rqfield === false && $.jgrid.isEmpty(val)) ) {\n\t\t\t\t\tif($.isFunction(edtrul.custom_func)) {\n\t\t\t\t\t\tvar ret = edtrul.custom_func.call(g,val,nm,valref);\n\t\t\t\t\t\treturn $.isArray(ret) ? ret : [false,msg.customarray,\"\"];\n\t\t\t\t\t}\n\t\t\t\t\treturn [false,msg.customfcheck,\"\"];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [true,\"\",\"\"];\n\t}\n});\n\n//module begin\n$.fn.jqFilter = function( arg ) {\n\tif (typeof arg === 'string') {\n\t\t\n\t\tvar fn = $.fn.jqFilter[arg];\n\t\tif (!fn) {\n\t\t\tthrow (\"jqFilter - No such method: \" + arg);\n\t\t}\n\t\tvar args = $.makeArray(arguments).slice(1);\n\t\treturn fn.apply(this,args);\n\t}\n\n\tvar p = $.extend(true,{\n\t\tfilter: null,\n\t\tcolumns: [],\n\t\tsortStrategy: null,\n\t\tonChange : null,\n\t\tafterRedraw : null,\n\t\tcheckValues : null,\n\t\terror: false,\n\t\terrmsg : \"\",\n\t\terrorcheck : true,\n\t\tshowQuery : true,\n\t\tsopt : null,\n\t\tops : [],\n\t\toperands : null,\n\t\tnumopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],\n\t\tstropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],\n\t\tstrarr : ['text', 'string', 'blob'],\n\t\tgroupOps : [{ op: \"AND\", text: \"AND\" },\t{ op: \"OR\",  text: \"OR\" }],\n\t\tgroupButton : true,\n\t\truleButtons : true,\n\t\tuniqueSearchFields : false,\n\t\tdirection : \"ltr\",\n\t\taddsubgrup : \"Add subgroup\",\n\t\taddrule : \"Add rule\",\n\t\tdelgroup : \"Delete group\",\n\t\tdelrule : \"Delete rule\"\n\t}, $.jgrid.filter, arg || {});\n\treturn this.each( function() {\n\t\tif (this.filter) {return;}\n\t\tthis.p = p;\n\t\t// setup filter in case if they is not defined\n\t\tif (this.p.filter === null || this.p.filter === undefined) {\n\t\t\tthis.p.filter = {\n\t\t\t\tgroupOp: this.p.groupOps[0].op,\n\t\t\t\trules: [],\n\t\t\t\tgroups: []\n\t\t\t};\n\t\t}\n\n\t\t// Sort the columns if the sort strategy is provided.\n\t\tif (this.p.sortStrategy != null && $.isFunction(this.p.sortStrategy)) {\n\t\t\tthis.p.columns.sort(this.p.sortStrategy);\n\t\t}\n\n\t\tvar i, len = this.p.columns.length, cl,\n\t\tisIE = /msie/i.test(navigator.userAgent) && !window.opera;\n\n\t\t// translating the options\n\t\tthis.p.initFilter = $.extend(true,{},this.p.filter);\n\n\t\t// set default values for the columns if they are not set\n\t\tif( !len ) {return;}\n\t\tfor(i=0; i < len; i++) {\n\t\t\tcl = this.p.columns[i];\n\t\t\tif( cl.stype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.inputtype = cl.stype;\n\t\t\t} else if(!cl.inputtype) {\n\t\t\t\tcl.inputtype = 'text';\n\t\t\t}\n\t\t\tif( cl.sorttype ) {\n\t\t\t\t// grid compatibility\n\t\t\t\tcl.searchtype = cl.sorttype;\n\t\t\t} else if (!cl.searchtype) {\n\t\t\t\tcl.searchtype = 'string';\n\t\t\t}\n\t\t\tif(cl.hidden === undefined) {\n\t\t\t\t// jqGrid compatibility\n\t\t\t\tcl.hidden = false;\n\t\t\t}\n\t\t\tif(!cl.label) {\n\t\t\t\tcl.label = cl.name;\n\t\t\t}\n\t\t\tif(cl.index) {\n\t\t\t\tcl.name = cl.index;\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchoptions')) {\n\t\t\t\tcl.searchoptions = {};\n\t\t\t}\n\t\t\tif(!cl.hasOwnProperty('searchrules')) {\n\t\t\t\tcl.searchrules = {};\n\t\t\t}\n\t\t\tif(cl.search === undefined) {\n\t\t\t\tcl.inlist = true;\n\t\t\t} else {\n\t\t\t\tcl.inlist = cl.search;\n\t\t\t}\n\t\t}\n\t\tvar getGrid = function () {\n\t\t\treturn $(\"#\" + $.jgrid.jqID(p.id))[0] || null;\n\t\t},\n\t\t\n\t\t$tg = getGrid(),\n\t\tclasses = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter,\n\t\tcommon = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common;\n\n\t\t\n\t\tif(this.p.showQuery) {\n\t\t\t$(this).append(\"<table class='queryresult \" + classes.table_widget + \"' style='display:block;max-width:440px;border:0px none;' dir='\"+this.p.direction+\"'><tbody><tr><td class='query'></td></tr></tbody></table>\");\n\t\t}\n\t\t/*\n\t\t *Perform checking.\n\t\t *\n\t\t*/\n\t\tvar checkData = function(val, colModelItem) {\n\t\t\tvar ret = [true,\"\"], $t = getGrid();\n\t\t\tif($.isFunction(colModelItem.searchrules)) {\n\t\t\t\tret = colModelItem.searchrules.call($t, val, colModelItem);\n\t\t\t} else if($.jgrid && $.jgrid.checkValues) {\n\t\t\t\ttry {\n\t\t\t\t\tret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label);\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\tif(ret && ret.length && ret[0] === false) {\n\t\t\t\tp.error = !ret[0];\n\t\t\t\tp.errmsg = ret[1];\n\t\t\t}\n\t\t};\n\t\t/* moving to common\n\t\trandId = function() {\n\t\t\treturn Math.floor(Math.random()*10000).toString();\n\t\t};\n\t\t*/\n\n\t\tthis.onchange = function (  ){\n\t\t\t// clear any error \n\t\t\tthis.p.error = false;\n\t\t\tthis.p.errmsg=\"\";\n\t\t\treturn $.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false;\n\t\t};\n\t\t/*\n\t\t * Redraw the filter every time when new field is added/deleted\n\t\t * and field is  changed\n\t\t */\n\t\tthis.reDraw = function() {\n\t\t\t$(\"table.group:first\",this).remove();\n\t\t\tvar t = this.createTableForGroup(p.filter, null);\n\t\t\t$(this).append(t);\n\t\t\tif($.isFunction(this.p.afterRedraw) ) {\n\t\t\t\tthis.p.afterRedraw.call(this, this.p);\n\t\t\t}\n\t\t};\n\t\t/*\n\t\t * Creates a grouping data for the filter\n\t\t * @param group - object\n\t\t * @param parentgroup - object\n\t\t */\n\t\tthis.createTableForGroup = function(group, parentgroup) {\n\t\t\tvar that = this,  i;\n\t\t\t// this table will hold all the group (tables) and rules (rows)\n\t\t\tvar table = $(\"<table class='group \" + classes.table_widget +\" ui-search-table' style='border:0px none;'><tbody></tbody></table>\"),\n\t\t\t// create error message row\n\t\t\talign = \"left\";\n\t\t\tif(this.p.direction === \"rtl\") {\n\t\t\t\talign = \"right\";\n\t\t\t\ttable.attr(\"dir\",\"rtl\");\n\t\t\t}\n\t\t\tif(parentgroup === null) {\n\t\t\t\ttable.append(\"<tr class='error' style='display:none;'><th colspan='5' class='\" + common.error + \"' align='\"+align+\"'></th></tr>\");\n\t\t\t}\n\n\t\t\tvar tr = $(\"<tr></tr>\");\n\t\t\ttable.append(tr);\n\t\t\t// this header will hold the group operator type and group action buttons for\n\t\t\t// creating subgroup \"+ {}\", creating rule \"+\" or deleting the group \"-\"\n\t\t\tvar th = $(\"<th colspan='5' align='\"+align+\"'></th>\");\n\t\t\ttr.append(th);\n\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// dropdown for: choosing group operator type\n\t\t\tvar groupOpSelect = $(\"<select class='opsel \" + classes.srSelect + \"'></select>\");\n\t\t\tth.append(groupOpSelect);\n\t\t\t// populate dropdown with all posible group operators: or, and\n\t\t\tvar str= \"\", selected;\n\t\t\tfor (i = 0; i < p.groupOps.length; i++) {\n\t\t\t\tselected =  group.groupOp === that.p.groupOps[i].op ? \" selected='selected'\" :\"\";\n\t\t\t\tstr += \"<option value='\"+that.p.groupOps[i].op+\"'\" + selected+\">\"+that.p.groupOps[i].text+\"</option>\";\n\t\t\t}\n\n\t\t\tgroupOpSelect\n\t\t\t.append(str)\n\t\t\t.on('change',function() {\n\t\t\t\tgroup.groupOp = $(groupOpSelect).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\t\t\t}\n\t\t\t// button for adding a new subgroup\n\t\t\tvar inputAddSubgroup =\"<span></span>\";\n\t\t\tif(this.p.groupButton) {\n\t\t\t\tinputAddSubgroup = $(\"<input type='button' value='+ {}' title='\" +that.p.subgroup+\"' class='add-group \" + common.button + \"'/>\");\n\t\t\t\tinputAddSubgroup.on('click',function() {\n\t\t\t\t\tif (group.groups === undefined ) {\n\t\t\t\t\t\tgroup.groups = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgroup.groups.push({\n\t\t\t\t\t\tgroupOp: p.groupOps[0].op,\n\t\t\t\t\t\trules: [],\n\t\t\t\t\t\tgroups: []\n\t\t\t\t\t}); // adding a new group\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tth.append(inputAddSubgroup);\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\t// button for adding a new rule\n\t\t\tvar inputAddRule = $(\"<input type='button' value='+' title='\"+that.p.addrule+\"' class='add-rule ui-add \" + common.button + \"'/>\"), cm;\n\t\t\tinputAddRule.on('click',function() {\n\t\t\t\t//if(!group) { group = {};}\n\t\t\t\tif (group.rules === undefined) {\n\t\t\t\t\tgroup.rules = [];\n\t\t\t\t}\n\t\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ?  true: that.p.columns[i].search,\n\t\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( !cm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar opr;\n\t\t\t\tif( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { opr= that.p.sopt; }\n\t\t\t\telse if  ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;}\n\t\t\t\telse {opr = that.p.numopts;}\n\n\t\t\t\tgroup.rules.push({\n\t\t\t\t\tfield: cm.name,\n\t\t\t\t\top: opr[0],\n\t\t\t\t\tdata: \"\"\n\t\t\t\t}); // adding a new rule\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\t\t\t\t// for the moment no change have been made to the rule, so\n\t\t\t\t// this will not trigger onchange event\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tth.append(inputAddRule);\n\t\t\t}\n\n\t\t\t// button for delete the group\n\t\t\tif (parentgroup !== null) { // ignore the first group\n\t\t\t\tvar inputDeleteGroup = $(\"<input type='button' value='-' title='\"+that.p.delgroup+\"' class='delete-group \" + common.button + \"'/>\");\n\t\t\t\tth.append(inputDeleteGroup);\n\t\t\t\tinputDeleteGroup.on('click',function() {\n\t\t\t\t// remove group from parent\n\t\t\t\t\tfor (i = 0; i < parentgroup.groups.length; i++) {\n\t\t\t\t\t\tif (parentgroup.groups[i] === group) {\n\t\t\t\t\t\t\tparentgroup.groups.splice(i, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// append subgroup rows\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (i = 0; i < group.groups.length; i++) {\n\t\t\t\t\tvar trHolderForSubgroup = $(\"<tr></tr>\");\n\t\t\t\t\ttable.append(trHolderForSubgroup);\n\n\t\t\t\t\tvar tdFirstHolderForSubgroup = $(\"<td class='first'></td>\");\n\t\t\t\t\ttrHolderForSubgroup.append(tdFirstHolderForSubgroup);\n\n\t\t\t\t\tvar tdMainHolderForSubgroup = $(\"<td colspan='4'></td>\");\n\t\t\t\t\ttdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));\n\t\t\t\t\ttrHolderForSubgroup.append(tdMainHolderForSubgroup);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(group.groupOp === undefined) {\n\t\t\t\tgroup.groupOp = that.p.groupOps[0].op;\n\t\t\t}\n\n\t\t\t// append rules rows\n\t\t\tvar suni = that.p.ruleButtons && that.p.uniqueSearchFields;\n\t\t\tif( suni ) {\n\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\tif(that.p.columns[ii].inlist) {\n\t\t\t\t\t\tthat.p.columns[ii].search = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\ttable.append(\n                       this.createTableRowForRule(group.rules[i], group)\n\t\t\t\t\t);\n\t\t\t\t\tif( suni ) {\n\t\t\t\t\t\tvar field = group.rules[i].field;\n\t\t\t\t\t\tfor (var ii = 0; ii < that.p.columns.length; ii++) {\n\t\t\t\t\t\t\tif(field === that.p.columns[ii].name) {\n\t\t\t\t\t\t\t\tthat.p.columns[ii].search = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn table;\n\t\t};\n\t\t/*\n\t\t * Create the rule data for the filter\n\t\t */\n\t\tthis.createTableRowForRule = function(rule, group ) {\n\t\t\t// save current entity in a variable so that it could\n\t\t\t// be referenced in anonimous method calls\n\n\t\t\tvar that=this, $t = getGrid(), tr = $(\"<tr></tr>\"),\n\t\t\t//document.createElement(\"tr\"),\n\n\t\t\t// first column used for padding\n\t\t\t//tdFirstHolderForRule = document.createElement(\"td\"),\n\t\t\ti, op, trpar, cm, str=\"\", selected;\n\t\t\t//tdFirstHolderForRule.setAttribute(\"class\", \"first\");\n\t\t\ttr.append(\"<td class='first'></td>\");\n\n\n\t\t\t// create field container\n\t\t\tvar ruleFieldTd = $(\"<td class='columns'></td>\");\n\t\t\ttr.append(ruleFieldTd);\n\n\n\t\t\t// dropdown for: choosing field\n\t\t\tvar ruleFieldSelect = $(\"<select class='\" + classes.srSelect + \"'></select>\"), ina, aoprs = [];\n\t\t\truleFieldTd.append(ruleFieldSelect);\n\t\t\truleFieldSelect.on('change',function() {\n\t\t\t\tif( that.p.ruleButtons && that.p.uniqueSearchFields ) {\n\t\t\t\t\tvar prev = parseInt($(this).data('curr'),10),\n\t\t\t\t\tcurr = this.selectedIndex;\n\t\t\t\t\tif(prev >= 0 ) {\n\t\t\t\t\t\tthat.p.columns[prev].search = true;\n\t\t\t\t\t\t$(this).data('curr', curr);\n\t\t\t\t\t\tthat.p.columns[curr].search = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trule.field = $(ruleFieldSelect).val();\n\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\t$(\".data\",trpar).empty();\n\t\t\t\tfor (i=0;i<that.p.columns.length;i++) {\n\t\t\t\t\tif(that.p.columns[i].name ===  rule.field) {\n\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cm) {return;}\n\t\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\t\tcm.searchoptions.name = rule.field;\n\t\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\t\t\n\t\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, \"\", true, that.p.ajaxSelectOptions || {}, true);\n\t\t\t\t$(elm).addClass(\"input-elm \" + classes.srInput );\n\t\t\t\t//that.createElement(rule, \"\");\n\n\t\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\t\telse {op = that.p.numopts;}\n\t\t\t\t// operators\n\t\t\t\tvar s =\"\", so = 0;\n\t\t\t\taoprs = [];\n\t\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < op.length; i++) {\n\t\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tif(so===0) {\n\t\t\t\t\t\t\trule.op = that.p.ops[ina].oper;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += \"<option value='\"+that.p.ops[ina].oper+\"'>\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t\t\tso++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\".selectopts\",trpar).empty().append( s );\n\t\t\t\t$(\".selectopts\",trpar)[0].selectedIndex = 0;\n\t\t\t\tif( $.jgrid.msie() && $.jgrid.msiever() < 9) {\n\t\t\t\t\tvar sw = parseInt($(\"select.selectopts\",trpar)[0].offsetWidth, 10) + 1;\n\t\t\t\t\t$(\".selectopts\",trpar).width( sw );\n\t\t\t\t\t$(\".selectopts\",trpar).css(\"width\",\"auto\");\n\t\t\t\t}\n\t\t\t\t// data\n\t\t\t\t$(\".data\",trpar).append( elm );\n\t\t\t\t$.jgrid.bindEv.call($t, elm, cm.searchoptions);\n\t\t\t\t$(\".input-elm\",trpar).on('change',function( e ) {\n\t\t\t\t\tvar elem = e.target;\n\t\t\t\t\trule.data = elem.nodeName.toUpperCase() === \"SPAN\" && cm.searchoptions && $.isFunction(cm.searchoptions.custom_value) ?\n\t\t\t\t\t\tcm.searchoptions.custom_value.call($t, $(elem).children(\".customelement:first\"), 'get') : elem.value;\n\t\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\t});\n\t\t\t\tsetTimeout(function(){ //IE, Opera, Chrome\n\t\t\t\trule.data = $(elm).val();\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t\t}, 0);\n\t\t\t});\n\n\t\t\t// populate drop down with user provided column definitions\n\t\t\tvar j=0;\n\t\t\tfor (i = 0; i < that.p.columns.length; i++) {\n\t\t\t\t// but show only serchable and serchhidden = true fields\n\t\t\t\tvar searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,\n\t\t\t\thidden = (that.p.columns[i].hidden === true),\n\t\t\t\tignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);\n\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\tselected = \"\";\n\t\t\t\t\tif(rule.field === that.p.columns[i].name) {\n\t\t\t\t\t\tselected = \" selected='selected'\";\n\t\t\t\t\t\tj=i;\n\t\t\t\t\t}\n\t\t\t\t\tstr += \"<option value='\"+that.p.columns[i].name+\"'\" +selected+\">\"+that.p.columns[i].label+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleFieldSelect.append( str );\n\t\t\truleFieldSelect.data('curr', j);\n\n\n\t\t\t// create operator container\n\t\t\tvar ruleOperatorTd = $(\"<td class='operators'></td>\");\n\t\t\ttr.append(ruleOperatorTd);\n\t\t\tcm = p.columns[j];\n\t\t\t// create it here so it can be referentiated in the onchange event\n\t\t\t//var RD = that.createElement(rule, rule.data);\n\t\t\tcm.searchoptions.id = $.jgrid.randId();\n\t\t\tif(isIE && cm.inputtype === \"text\") {\n\t\t\t\tif(!cm.searchoptions.size) {\n\t\t\t\t\tcm.searchoptions.size = 10;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcm.searchoptions.name = rule.field;\n\t\t\tcm.searchoptions.oper = 'filter';\n\t\t\tvar ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true);\n\t\t\tif(rule.op === 'nu' || rule.op === 'nn') {\n\t\t\t\t$(ruleDataInput).attr('readonly','true');\n\t\t\t\t$(ruleDataInput).attr('disabled','true');\n\t\t\t} //retain the state of disabled text fields in case of null ops\n\t\t\t// dropdown for: choosing operator\n\t\t\tvar ruleOperatorSelect = $(\"<select class='selectopts \" + classes.srSelect + \"'></select>\");\n\t\t\truleOperatorTd.append(ruleOperatorSelect);\n\t\t\truleOperatorSelect.on('change',function() {\n\t\t\t\trule.op = $(ruleOperatorSelect).val();\n\t\t\t\ttrpar = $(this).parents(\"tr:first\");\n\t\t\t\tvar rd = $(\".input-elm\",trpar)[0];\n\t\t\t\tif (rule.op === \"nu\" || rule.op === \"nn\") { // disable for operator \"is null\" and \"is not null\"\n\t\t\t\t\trule.data = \"\";\n\t\t\t\t\tif(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = \"\"; }\n\t\t\t\t\trd.setAttribute(\"readonly\", \"true\");\n\t\t\t\t\trd.setAttribute(\"disabled\", \"true\");\n\t\t\t\t} else {\n\t\t\t\t\tif(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; }\n\t\t\t\t\trd.removeAttribute(\"readonly\");\n\t\t\t\t\trd.removeAttribute(\"disabled\");\n\t\t\t\t}\n\n\t\t\t\tthat.onchange();  // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// populate drop down with all available operators\n\t\t\tif( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}\n\t\t\telse if(that.p.sopt) { op= that.p.sopt; }\n\t\t\telse if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}\n\t\t\telse {op = that.p.numopts;}\n\t\t\tstr=\"\";\n\t\t\t$.each(that.p.ops, function() { aoprs.push(this.oper); });\n\t\t\tfor ( i = 0; i < op.length; i++) {\n\t\t\t\tina = $.inArray(op[i],aoprs);\n\t\t\t\tif(ina !== -1) {\n\t\t\t\t\tselected = rule.op === that.p.ops[ina].oper ? \" selected='selected'\" : \"\";\n\t\t\t\t\tstr += \"<option value='\"+that.p.ops[ina].oper+\"'\"+selected+\">\"+that.p.ops[ina].text+\"</option>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\truleOperatorSelect.append( str );\n\t\t\t// create data container\n\t\t\tvar ruleDataTd = $(\"<td class='data'></td>\");\n\t\t\ttr.append(ruleDataTd);\n\n\t\t\t// textbox for: data\n\t\t\t// is created previously\n\t\t\t//ruleDataInput.setAttribute(\"type\", \"text\");\n\t\t\truleDataTd.append(ruleDataInput);\n\t\t\t$.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions);\n\t\t\t$(ruleDataInput)\n\t\t\t.addClass(\"input-elm \" + classes.srInput )\n\t\t\t.on('change', function() {\n\t\t\t\trule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(this).children(\".customelement:first\"),'get') : $(this).val();\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t});\n\n\t\t\t// create action container\n\t\t\tvar ruleDeleteTd = $(\"<td></td>\");\n\t\t\ttr.append(ruleDeleteTd);\n\n\t\t\t// create button for: delete rule\n\t\t\tif(this.p.ruleButtons === true) {\n\t\t\tvar ruleDeleteInput = $(\"<input type='button' value='-' title='\"+that.p.delrule+\"' class='delete-rule ui-del \" + common.button + \"'/>\");\n\t\t\truleDeleteTd.append(ruleDeleteInput);\n\t\t\t//$(ruleDeleteInput).html(\"\").height(20).width(30).button({icons: {  primary: \"ui-icon-minus\", text:false}});\n\t\t\truleDeleteInput.on('click',function() {\n\t\t\t\t// remove rule from group\n\t\t\t\tfor (i = 0; i < group.rules.length; i++) {\n\t\t\t\t\tif (group.rules[i] === rule) {\n\t\t\t\t\t\tgroup.rules.splice(i, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthat.reDraw(); // the html has changed, force reDraw\n\n\t\t\t\tthat.onchange(); // signals that the filter has changed\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t}\n\t\t\treturn tr;\n\t\t};\n\n\t\tthis.getStringForGroup = function(group) {\n\t\t\tvar s = \"(\", index;\n\t\t\tif (group.groups !== undefined) {\n\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\ts += this.getStringForGroup(group.groups[index]);\n\t\t\t\t\t} catch (eg) {alert(eg);}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (group.rules !== undefined) {\n\t\t\t\ttry{\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\ts += \" \" + group.groupOp + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += this.getStringForRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {alert(e);}\n\t\t\t}\n\n\t\t\ts += \")\";\n\n\t\t\tif (s === \"()\") {\n\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t}\n\t\t\treturn s;\n\t\t};\n\t\tthis.getStringForRule = function(rule) {\n\t\t\tvar opUF = \"\",opC=\"\", i, cm, ret, val,\n\t\t\tnumtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid\n\t\t\tfor (i = 0; i < this.p.ops.length; i++) {\n\t\t\t\tif (this.p.ops[i].oper === rule.op) {\n\t\t\t\t\topUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : \"\";\n\t\t\t\t\topC = this.p.ops[i].oper;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (i=0; i<this.p.columns.length; i++) {\n\t\t\t\tif(this.p.columns[i].name === rule.field) {\n\t\t\t\t\tcm = this.p.columns[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cm === undefined) { return \"\"; }\n\t\t\tval = rule.data;\n\t\t\tif(opC === 'bw' || opC === 'bn') { val = val+\"%\"; }\n\t\t\tif(opC === 'ew' || opC === 'en') { val = \"%\"+val; }\n\t\t\tif(opC === 'cn' || opC === 'nc') { val = \"%\"+val+\"%\"; }\n\t\t\tif(opC === 'in' || opC === 'ni') { val = \" (\"+val+\")\"; }\n\t\t\tif(p.errorcheck) { checkData(rule.data, cm); }\n\t\t\tif($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu') { ret = rule.field + \" \" + opUF + \" \" + val; }\n\t\t\telse { ret = rule.field + \" \" + opUF + \" \\\"\" + val + \"\\\"\"; }\n\t\t\treturn ret;\n\t\t};\n\t\tthis.resetFilter = function () {\n\t\t\tthis.p.filter = $.extend(true,{},this.p.initFilter);\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t};\n\t\tthis.hideError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(\"\");\n\t\t\t$(\"tr.error\", this).hide();\n\t\t};\n\t\tthis.showError = function() {\n\t\t\t$(\"th.\"+common.error, this).html(this.p.errmsg);\n\t\t\t$(\"tr.error\", this).show();\n\t\t};\n\t\tthis.toUserFriendlyString = function() {\n\t\t\treturn this.getStringForGroup(p.filter);\n\t\t};\n\t\tthis.toString = function() {\n\t\t\t// this will obtain a string that can be used to match an item.\n\t\t\tvar that = this;\n\t\t\tfunction getStringRule(rule) {\n\t\t\t\tif(that.p.errorcheck) {\n\t\t\t\t\tvar i, cm;\n\t\t\t\t\tfor (i=0; i<that.p.columns.length; i++) {\n\t\t\t\t\t\tif(that.p.columns[i].name === rule.field) {\n\t\t\t\t\t\t\tcm = that.p.columns[i];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(cm) {checkData(rule.data, cm);}\n\t\t\t\t}\n\t\t\t\treturn rule.op + \"(item.\" + rule.field + \",'\" + rule.data + \"')\";\n\t\t\t}\n\n\t\t\tfunction getStringForGroup(group) {\n\t\t\t\tvar s = \"(\", index;\n\n\t\t\t\tif (group.groups !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.groups.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringForGroup(group.groups[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (group.rules !== undefined) {\n\t\t\t\t\tfor (index = 0; index < group.rules.length; index++) {\n\t\t\t\t\t\tif (s.length > 1) {\n\t\t\t\t\t\t\tif (group.groupOp === \"OR\") {\n\t\t\t\t\t\t\t\ts += \" || \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse  {\n\t\t\t\t\t\t\t\ts += \" && \";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\ts += getStringRule(group.rules[index]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ts += \")\";\n\n\t\t\t\tif (s === \"()\") {\n\t\t\t\t\treturn \"\"; // ignore groups that don't have rules\n\t\t\t\t}\n\t\t\t\treturn s;\n\t\t\t}\n\n\t\t\treturn getStringForGroup(this.p.filter);\n\t\t};\n\n\t\t// Here we init the filter\n\t\tthis.reDraw();\n\n\t\tif(this.p.showQuery) {\n\t\t\tthis.onchange();\n\t\t}\n\t\t// mark is as created so that it will not be created twice on this element\n\t\tthis.filter = true;\n\t});\n};\n$.extend($.fn.jqFilter,{\n\t/*\n\t * Return SQL like string. Can be used directly\n\t */\n\ttoSQLString : function()\n\t{\n\t\tvar s =\"\";\n\t\tthis.each(function(){\n\t\t\ts = this.toUserFriendlyString();\n\t\t});\n\t\treturn s;\n\t},\n\t/*\n\t * Return filter data as object.\n\t */\n\tfilterData : function()\n\t{\n\t\tvar s;\n\t\tthis.each(function(){\n\t\t\ts = this.p.filter;\n\t\t});\n\t\treturn s;\n\n\t},\n\tgetParameter : function (param) {\n\t\tif(param !== undefined) {\n\t\t\tif (this.p.hasOwnProperty(param) ) {\n\t\t\t\treturn this.p[param];\n\t\t\t}\n\t\t}\n\t\treturn this.p;\n\t},\n\tresetFilter: function() {\n\t\treturn this.each(function(){\n\t\t\tthis.resetFilter();\n\t\t});\n\t},\n\taddFilter: function (pfilter) {\n\t\tif (typeof pfilter === \"string\") {\n\t\t\tpfilter = $.jgrid.parse( pfilter );\n\t\t}\n\t\tthis.each(function(){\n\t\t\tthis.p.filter = pfilter;\n\t\t\tthis.reDraw();\n\t\t\tthis.onchange();\n\t\t});\n\t}\n\n});\n$.jgrid.extend({\n\tfilterToolbar : function(p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend({\n\t\t\tautosearch: true,\n\t\t\tautosearchDelay: 500,\n\t\t\tsearchOnEnter : true,\n\t\t\tbeforeSearch: null,\n\t\t\tafterSearch: null,\n\t\t\tbeforeClear: null,\n\t\t\tafterClear: null,\n\t\t\tonClearSearchValue : null,\n\t\t\tsearchurl : '',\n\t\t\tstringResult: false,\n\t\t\tgroupOp: 'AND',\n\t\t\tdefaultSearch : \"bw\",\n\t\t\tsearchOperators : false,\n\t\t\tresetIcon : \"x\",\n\t\t\tsplitSelect : \",\",\n\t\t\tgroupOpSelect : \"OR\",\n\t\t\toperands : { \"eq\" :\"==\", \"ne\":\"!\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"^\",\"bn\":\"!^\",\"in\":\"=\",\"ni\":\"!=\",\"ew\":\"|\",\"en\":\"!@\",\"cn\":\"~\",\"nc\":\"!~\",\"nu\":\"#\",\"nn\":\"!#\", \"bt\":\"...\"}\n\t\t}, regional , p  || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif($t.p.filterToolbar) { return; }\n\t\t\tif(!$($t).data('filterToolbar')) {\n\t\t\t\t$($t).data('filterToolbar', p);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\tp = $.extend(p, regional);\n\t\t\t}\n\t\t\tvar classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tbase = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base,\t\t\t\n\n\t\t\ttriggerToolbar = function() {\n\t\t\t\tvar sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], bbt =false, sop;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar $elem = $(\"#gs_\"+ $t.p.idPrefix + $.jgrid.jqID(this.name), (this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\t\tif(p.searchOperators &&  sop.searchOperMenu) {\n\t\t\t\t\t\tso = $elem.parent().prev().children(\"a\").attr(\"soper\") || p.defaultSearch;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tso  = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t}\n\t\t\t\t\tv = this.stype === \"custom\" && $.isFunction(sop.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\" ?\n\t\t\t\t\t\tsop.custom_value.call($t, $elem.children(\".customelement:first\"), \"get\") :\n\t\t\t\t\t\t$elem.val();\n\t\t\t\t\t// detect multiselect\n\t\t\t\t\tif(this.stype === 'select' && sop.multiple && $.isArray(v) && v.length) {\n\t\t\t\t\t\tms = true;\n\t\t\t\t\t\tssfield.push(nm);\n\t\t\t\t\t\tv= v.length === 1 ? v[0] : v;\n\t\t\t\t\t}\n\t\t\t\t\tif(so===\"bt\") {\n\t\t\t\t\t\tbbt = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(v || so===\"nu\" || so===\"nn\") {\n\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\tsopt[nm] = so;\n\t\t\t\t\t\tj++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t} catch (z) {}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\" || p.searchOperators === true) \n\t\t\t\t{\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + sopt[i] + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t// multiselect\n\t\t\t\t\tvar filters, rules, k,str, rule, ssdata, group;\n\t\t\t\t\tif(ms) {\n\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);//, rules, k,str, rule, ssdata, group;\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif($.inArray(rule.filed, ssfield)) {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(p.splitSelect);\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: p.groupOpSelect, groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: rule.op, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//ruleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt) {\n\t\t\t\t\t\tif(!$.isPlainObject(filters)) {\n\t\t\t\t\t\t\tfilters = $.jgrid.parse(ruleGroup);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(filters.rules && filters.rules.length) {\n\t\t\t\t\t\t\trules = filters.rules;\n\t\t\t\t\t\t\tfor(k=0;k < rules.length; k++) {\n\t\t\t\t\t\t\t\trule = rules[k];\n\t\t\t\t\t\t\t\tif(rule.op === \"bt\") {\n\t\t\t\t\t\t\t\t\tssdata = rule.data.split(\"...\");\n\t\t\t\t\t\t\t\t\tif(ssdata.length > 1) {\n\t\t\t\t\t\t\t\t\t\tif(filters.groups === undefined) {\n\t\t\t\t\t\t\t\t\t\t\tfilters.groups = [];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tgroup = { groupOp: 'AND', groups: [], rules: [] };\n\t\t\t\t\t\t\t\t\t\tfilters.groups.push(group);\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t$.each(ssdata,function(l) {\n\t\t\t\t\t\t\t\t\t\t\tvar btop = l === 0 ? 'ge' : 'le';\n\t\t\t\t\t\t\t\t\t\t\tstr = ssdata[l];\n\t\t\t\t\t\t\t\t\t\t\tif(str) {\n\t\t\t\t\t\t\t\t\t\t\t\tgroup.rules.push({ data: ssdata[l],\top: btop, field: rule.field});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\trules.splice(k, 1);\n\t\t\t\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(bbt || ms ) {\n\t\t\t\t\t\truleGroup = JSON.stringify( filters );\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bsr = $($t).triggerHandler(\"jqGridToolbarBeforeSearch\") === 'stop' ? true : false;\n\t\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterSearch\");\n\t\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t\t},\n\t\t\tclearToolbar = function(trigger){\n\t\t\t\tvar sdata={}, j=0, nm;\n\t\t\t\ttrigger = (typeof trigger !== 'boolean') ? true : trigger;\n\t\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\t\tvar v, $elem = $(\"#gs_\"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);\n\t\t\t\t\tif(this.searchoptions && this.searchoptions.defaultValue !== undefined) { \n\t\t\t\t\t\tv = this.searchoptions.defaultValue; \n\t\t\t\t\t}\n\t\t\t\t\tnm = this.index || this.name;\n\t\t\t\t\tswitch (this.stype) {\n\t\t\t\t\t\tcase 'select' :\n\t\t\t\t\t\t\t$elem.find(\"option\").each(function (i){\n\t\t\t\t\t\t\t\tif(i===0) { this.selected = true; }\n\t\t\t\t\t\t\t\tif ($(this).val() === v) {\n\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif ( v !== undefined ) {\n\t\t\t\t\t\t\t\t// post the key and not the text\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\t\t$elem.val(v || \"\");\n\t\t\t\t\t\t\tif(v !== undefined) {\n\t\t\t\t\t\t\t\tsdata[nm] = v;\n\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tdelete $t.p.postData[nm];\n\t\t\t\t\t\t\t\t} catch (y){}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom':\n\t\t\t\t\t\t\tif ($.isFunction(this.searchoptions.custom_value) && $elem.length > 0 && $elem[0].nodeName.toUpperCase() === \"SPAN\") {\n\t\t\t\t\t\t\t\tthis.searchoptions.custom_value.call($t, $elem.children(\".customelement:first\"), \"set\", v || \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tvar sd =  j>0 ? true : false;\n\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\tif(p.stringResult === true || $t.p.datatype === \"local\") {\n\t\t\t\t\tvar ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\";\n\t\t\t\t\tvar gi=0;\n\t\t\t\t\t$.each(sdata,function(i,n){\n\t\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + i + \"\\\",\";\n\t\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + \"eq\" + \"\\\",\";\n\t\t\t\t\t\tn+=\"\";\n\t\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + n.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\t\tgi++;\n\t\t\t\t\t});\n\t\t\t\t\truleGroup += \"]}\";\n\t\t\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t}\n\t\t\t\tvar saveurl;\n\t\t\t\tif($t.p.searchurl) {\n\t\t\t\t\tsaveurl = $t.p.url;\n\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{url:$t.p.searchurl});\n\t\t\t\t}\n\t\t\t\tvar bcv = $($t).triggerHandler(\"jqGridToolbarBeforeClear\") === 'stop' ? true : false;\n\t\t\t\tif(!bcv && $.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}\n\t\t\t\tif(!bcv) {\n\t\t\t\t\tif(trigger) {\n\t\t\t\t\t\t$($t).jqGrid(\"setGridParam\",{search:sd}).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(saveurl) {$($t).jqGrid(\"setGridParam\",{url:saveurl});}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarAfterClear\");\n\t\t\t\tif($.isFunction(p.afterClear)){p.afterClear();}\n\t\t\t},\n\t\t\ttoggleToolbar = function(){\n\t\t\t\tvar trow = $(\"tr.ui-search-toolbar\",$t.grid.hDiv),\n\t\t\t\ttrow2 = $t.p.frozenColumns === true ?  $(\"tr.ui-search-toolbar\",$t.grid.fhDiv) : false;\n\t\t\t\tif(trow.css(\"display\") === 'none') {\n\t\t\t\t\ttrow.show(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.show();\n\t\t\t\t\t}\n\t\t\t\t} else { \n\t\t\t\t\ttrow.hide(); \n\t\t\t\t\tif(trow2) {\n\t\t\t\t\t\ttrow2.hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tbuildRuleMenu = function( elem, left, top ){\n\t\t\t\t$(\"#sopt_menu\").remove();\n\n\t\t\t\tleft=parseInt(left,10);\n\t\t\t\ttop=parseInt(top,10) + 18;\n\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px';\n\t\t\t\tvar str = '<ul id=\"sopt_menu\" class=\"ui-search-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"font-size:'+fs+';left:'+left+'px;top:'+top+'px;\">',\n\t\t\t\tselected = $(elem).attr(\"soper\"), selclass,\n\t\t\t\taoprs = [], ina;\n\t\t\t\tvar i=0, nm =$(elem).attr(\"colname\"),len = $t.p.colModel.length;\n\t\t\t\twhile(i<len) {\n\t\t\t\t\tif($t.p.colModel[i].name === nm) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tvar cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions);\n\t\t\t\tif(!options.sopt) {\n\t\t\t\t\toptions.sopt = [];\n\t\t\t\t\toptions.sopt[0]= cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t}\n\t\t\t\t$.each(p.odata, function() { aoprs.push(this.oper); });\n\t\t\t\tfor ( i = 0 ; i < options.sopt.length; i++) {\n\t\t\t\t\tina = $.inArray(options.sopt[i],aoprs);\n\t\t\t\t\tif(ina !== -1) {\n\t\t\t\t\t\tselclass = selected === p.odata[ina].oper ? common.highlight : \"\";\n\t\t\t\t\t\tstr += '<li class=\"ui-menu-item '+selclass+'\" role=\"presentation\"><a class=\"'+ common.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" value=\"'+p.odata[ina].oper+'\" oper=\"'+p.operands[p.odata[ina].oper]+'\"><table class=\"ui-common-table\"><tr><td width=\"25px\">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstr += \"</ul>\";\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#sopt_menu\").addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#sopt_menu > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(common.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(common.hover); }\n\t\t\t\t).click(function() {\n\t\t\t\t\tvar v = $(this).attr(\"value\"),\n\t\t\t\t\toper = $(this).attr(\"oper\");\n\t\t\t\t\t$($t).triggerHandler(\"jqGridToolbarSelectOper\", [v, oper, elem]);\n\t\t\t\t\t$(\"#sopt_menu\").hide();\n\t\t\t\t\t$(elem).text(oper).attr(\"soper\",v);\n\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\tvar inpelm = $(elem).parent().next().children()[0];\n\t\t\t\t\t\tif( $(inpelm).val() || v===\"nu\" || v ===\"nn\") {\n\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t// create the row\n\t\t\tvar tr = $(\"<tr class='ui-search-toolbar' role='row'></tr>\"),\n\t\t\ttimeoutHnd, rules, filterobj;\n\t\t\tif( p.restoreFromFilters ) {\n\t\t\t\tfilterobj = $t.p.postData.filters;\n\t\t\t\tif(filterobj) {\n\t\t\t\t\tif( typeof filterobj === \"string\") {\n\t\t\t\t\t\tfilterobj = $.jgrid.parse( filterobj );\n\t\t\t\t\t}\n\t\t\t\t\trules = filterobj.rules.length ? filterobj.rules : false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.colModel,function(ci){\n\t\t\t\tvar cm=this, soptions, select=\"\", sot=\"=\", so, i, st, csv, df, elem, restores,\n\t\t\t\tth = $(\"<th role='columnheader' class='\" + base.headerBox+\" ui-th-\"+$t.p.direction+\"' id='gsh_\" + $t.p.id + \"_\" + cm.name + \"' ></th>\"),\n\t\t\t\tthd = $(\"<div></div>\"),\n\t\t\t\tstbl = $(\"<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>\");\n\t\t\t\tif(this.hidden===true) { $(th).css(\"display\",\"none\");}\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif(this.stype === undefined) {this.stype='text';}\n\t\t\t\tthis.searchoptions = this.searchoptions || {};\n\t\t\t\tif(this.searchoptions.searchOperMenu === undefined) {\n\t\t\t\t\tthis.searchoptions.searchOperMenu = true;\n\t\t\t\t}\n\t\t\t\tsoptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: \"gs_\"+$t.p.idPrefix+cm.name, oper:'search'});\n\t\t\t\tif(this.search){\n\t\t\t\t\tif( p.restoreFromFilters && rules) {\n\t\t\t\t\t\trestores = false;\n\t\t\t\t\t\tfor( var is = 0; is < rules.length; is++) {\n\t\t\t\t\t\t\tif(rules[is].field ) {\n\t\t\t\t\t\t\t\tvar snm = cm.index || cm.name;\n\t\t\t\t\t\t\t\tif( snm === rules[is].field) {\n\t\t\t\t\t\t\t\t\trestores = rules[is];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(p.searchOperators) {\n\t\t\t\t\t\tso  = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ?  'eq' : p.defaultSearch;\n\t\t\t\t\t\t// overwrite  search operators\n\t\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\t\tso = restores.op;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i = 0;i<p.odata.length;i++) {\n\t\t\t\t\t\t\tif(p.odata[i].oper === so) {\n\t\t\t\t\t\t\t\tsot = p.operands[so] || \"\";\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tst = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle;\n\t\t\t\t\t\tselect = this.searchoptions.searchOperMenu ? \"<a title='\"+st+\"' style='padding-right: 0.5em;' soper='\"+so+\"' class='soptclass' colname='\"+this.name+\"'>\"+sot+\"</a>\" : \"\";\n\t\t\t\t\t}\n\t\t\t\t\t$(\"td:eq(0)\",stbl).attr(\"colindex\",ci).append(select);\n\t\t\t\t\tif(soptions.clearSearch === undefined) {\n\t\t\t\t\t\tsoptions.clearSearch = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(soptions.clearSearch) {\n\t\t\t\t\t\tcsv = p.resetTitle || 'Clear Search Value';\n\t\t\t\t\t\t$(\"td:eq(2)\",stbl).append(\"<a title='\"+csv+\"' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>\"+p.resetIcon+\"</a>\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"td:eq(2)\", stbl).hide();\n\t\t\t\t\t}\n\t\t\t\t\tif(this.surl) {\n\t\t\t\t\t\tsoptions.dataUrl = this.surl;\n\t\t\t\t\t}\n\t\t\t\t\tdf=\"\";\n\t\t\t\t\tif(soptions.defaultValue ) {\n\t\t\t\t\t\tdf = $.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue;\n\t\t\t\t\t}\n\t\t\t\t\t//overwrite default value if restore from filters\n\t\t\t\t\tif( p.restoreFromFilters && restores) {\n\t\t\t\t\t\tdf = restores.data;\n\t\t\t\t\t}\n\t\t\t\t\telem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t$(elem).addClass( classes.srInput );\n\t\t\t\t\t$(\"td:eq(1)\",stbl).append(elem);\n\t\t\t\t\t$(thd).append(stbl);\n\t\t\t\t\tif(soptions.dataEvents == null ) {\n\t\t\t\t\t\tsoptions.dataEvents = [];\n\t\t\t\t\t}\n\t\t\t\t\tswitch (this.stype)\n\t\t\t\t\t{\n\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\tif(p.autosearch === true) {\n\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\ttype : \"change\",\n\t\t\t\t\t\t\t\tfn : function() {\n\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\t\t\tif(p.searchOnEnter) {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keypress\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.charCode || e.keyCode || 0;\n\t\t\t\t\t\t\t\t\t\tif(key === 13){\n\t\t\t\t\t\t\t\t\t\t\ttriggerToolbar();\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn this;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsoptions.dataEvents.push({\n\t\t\t\t\t\t\t\t\ttype: \"keydown\",\n\t\t\t\t\t\t\t\t\tfn : function(e) {\n\t\t\t\t\t\t\t\t\t\tvar key = e.which;\n\t\t\t\t\t\t\t\t\t\tswitch (key) {\n\t\t\t\t\t\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\tcase 9 :\n\t\t\t\t\t\t\t\t\t\t\tcase 16:\n\t\t\t\t\t\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\t\t\t\t\tcase 27:\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\tdefault :\n\t\t\t\t\t\t\t\t\t\t\t\tif(timeoutHnd) { clearTimeout(timeoutHnd); }\n\t\t\t\t\t\t\t\t\t\t\t\ttimeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t$.jgrid.bindEv.call($t, elem , soptions);\n\t\t\t\t}\n\t\t\t\t$(th).append(thd);\n\t\t\t\t$(tr).append(th);\n\t\t\t\tif(!p.searchOperators || select === \"\") {\n\t\t\t\t\t$(\"td:eq(0)\",stbl).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"table thead\",$t.grid.hDiv).append(tr);\n\t\t\tif(p.searchOperators) {\n\t\t\t\t$(\".soptclass\",tr).click(function(e){\n\t\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\t\tleft = ( offset.left ),\n\t\t\t\t\ttop = ( offset.top);\n\t\t\t\t\tbuildRuleMenu(this, left, top );\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t});\n\t\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\t\tif(e.target.className !== \"soptclass\") {\n\t\t\t\t\t\t$(\"#sopt_menu\").remove();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".clearsearchclass\",tr).click(function() {\n\t\t\t\tvar ptr = $(this).parents(\"tr:first\"),\n\t\t\t\tcoli = parseInt($(\"td.ui-search-oper\", ptr).attr('colindex'),10),\n\t\t\t\tsval  = $.extend({},$t.p.colModel[coli].searchoptions || {}),\n\t\t\t\tdval = sval.defaultValue ? sval.defaultValue : \"\",\n\t\t\t\telem;\n\t\t\t\tif($t.p.colModel[coli].stype === \"select\") {\n\t\t\t\t\telem = $(\"td.ui-search-input select\", ptr);\n\t\t\t\t\tif(dval) {\n\t\t\t\t\t\telem.val( dval );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[0].selectedIndex = 0;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\telem = $(\"td.ui-search-input input\", ptr);\n\t\t\t\t\telem.val( dval );\n\t\t\t\t}\n\t\t\t\t$($t).triggerHandler(\"jqGridToolbarClearVal\",[elem[0], coli, sval, dval]);\n\t\t\t\tif($.isFunction(p.onClearSearchValue)) {\n\t\t\t\t\tp.onClearSearchValue.call($t, elem[0], coli, sval, dval);\n\t\t\t\t}\n\t\t\t\t// ToDo custom search type\n\t\t\t\tif(p.autosearch===true){\n\t\t\t\t\ttriggerToolbar();\n\t\t\t\t}\n\n\t\t\t});\n\t\t\tthis.p.filterToolbar = true;\n\t\t\tthis.triggerToolbar = triggerToolbar;\n\t\t\tthis.clearToolbar = clearToolbar;\n\t\t\tthis.toggleToolbar = toggleToolbar;\n\t\t});\n\t},\n\tdestroyFilterToolbar: function () {\n\t\treturn this.each(function () {\n\t\t\tif (!this.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.triggerToolbar = null;\n\t\t\tthis.clearToolbar = null;\n\t\t\tthis.toggleToolbar = null;\n\t\t\tthis.p.filterToolbar = false;\n\t\t\t$(this.grid.hDiv).find(\"table thead tr.ui-search-toolbar\").remove();\n\t\t});\n\t},\n\trefreshFilterToolbar : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tfilters : \"\",\n\t\t\tonClearVal : null,\n\t\t\tonSetVal : null\n\t\t}, p || {});\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length,\n\t\t\tsearchitem, filters, rules, rule, ssfield =[], ia;\n\t\t\t// clear the values on toolbar.\n\t\t\t// do not call clearToolbar \n\t\t\tif(!$t.p.filterToolbar) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\tssfield.push(cm[i].name);\n\t\t\t\tsearchitem = $(\"#gs_\" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name));\n\t\t\t\tswitch (cm[i].stype) {\n\t\t\t\t\tcase 'select' :\n\t\t\t\t\tcase 'text' :\n\t\t\t\t\t\tsearchitem.val(\"\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif($.isFunction(p.onClearVal)) {\n\t\t\t\t\tp.onClearVal.call($t, searchitem, cm[i].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setrules (filter) {\n\t\t\t\tif(filter && filter.rules) { // condition to exit\n\t\t\t\t\trules = filter.rules;\n\t\t\t\t\tl = rules.length;\n\t\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\t\trule = rules[i];\n\t\t\t\t\t\tia = $.inArray(rule.field, ssfield);\n\t\t\t\t\t\tif( ia !== -1) {\n\t\t\t\t\t\t\tsearchitem = $(\"#gs_\" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name));\n\t\t\t\t\t\t\t// problem for between operator\n\t\t\t\t\t\t\tif ( searchitem.length > 0) {\n\t\t\t\t\t\t\t\tif (cm[ia].stype === \"select\") { \n\t\t\t\t\t\t\t\t\tsearchitem.find(\"option[value='\" + $.jgrid.jqID(rule.data) + \"']\").prop('selected', true);\n\t\t\t\t\t\t\t\t} else if (cm[ia].stype === \"text\") {\n\t\t\t\t\t\t\t\t\tsearchitem.val(rule.data);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(p.onSetVal)) {\n\t\t\t\t\t\t\t\t\tp.onSetVal.call($t, searchitem, cm[ia].name);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t    }\n\t\t\t\t\t}\n\t\t\t\t\tif(filter.groups) {\n\t\t\t\t\t\tfor(var k=0;k<filter.groups.length;k++) {\n\t\t\t\t\t\t\tsetrules(filter.groups[k]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof (p.filters) === \"string\" && p.filters.length) {\n\t\t\t\tfilters = $.jgrid.parse(p.filters);\n\t\t\t\t// flat filters only\n\t\t\t}\n\t        if ($.isPlainObject(filters)) {\n\t\t\t\tsetrules( filters );\n\t        }\n\t\t});\n\t},\n\tsearchGrid : function (p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'search');\n\t\tp = $.extend(true, {\n\t\t\trecreateFilter: false,\n\t\t\tdrag: true,\n\t\t\tsField:'searchField',\n\t\t\tsValue:'searchString',\n\t\t\tsOper: 'searchOper',\n\t\t\tsFilter: 'filters',\n\t\t\tloadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.\n\t\t\tbeforeShowSearch: null,\n\t\t\tafterShowSearch : null,\n\t\t\tonInitializeSearch: null,\n\t\t\tafterRedraw : null,\n\t\t\tafterChange: null,\n\t\t\tsortStrategy: null,\n\t\t\tcloseAfterSearch : false,\n\t\t\tcloseAfterReset: false,\n\t\t\tcloseOnEscape : false,\n\t\t\tsearchOnEnter : false,\n\t\t\tmultipleSearch : false,\n\t\t\tmultipleGroup : false,\n\t\t\t//cloneSearchRowOnAdd: true,\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\tjqModal : true,\n\t\t\tmodal: false,\n\t\t\tresize : true,\n\t\t\twidth: 450,\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tshowQuery: false,\n\t\t\terrorcheck : true,\n\t\t\tsopt: null,\n\t\t\tstringResult: undefined,\n\t\t\tonClose : null,\n\t\t\tonSearch : null,\n\t\t\tonReset : null,\n\t\t\ttoTop : true,\n\t\t\toverlay : 30,\n\t\t\tcolumns : [],\n\t\t\ttmplNames : null,\n\t\t\ttmplFilters : null,\n\t\t\ttmplLabel : ' Template: ',\n\t\t\tshowOnLoad: false,\n\t\t\tlayer: null,\n\t\t\toperands : { \"eq\" :\"=\", \"ne\":\"<>\",\"lt\":\"<\",\"le\":\"<=\",\"gt\":\">\",\"ge\":\">=\",\"bw\":\"LIKE\",\"bn\":\"NOT LIKE\",\"in\":\"IN\",\"ni\":\"NOT IN\",\"ew\":\"LIKE\",\"en\":\"NOT LIKE\",\"cn\":\"LIKE\",\"nc\":\"NOT LIKE\",\"nu\":\"IS NULL\",\"nn\":\"ISNOT NULL\"}\n\t\t}, regional,  p || {});\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar fid = \"fbox_\"+$t.p.id,\n\t\t\tshowFrm = true,\n\t\t\tmustReload = true,\n\t\t\tIDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid},\n\t\t\tdefaultFilters  = $t.p.postData[p.sFilter],\n\t\t\tfl,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\t\t\tp.styleUI = $t.p.styleUI;\n\t\t\tif(typeof defaultFilters === \"string\") {\n\t\t\t\tdefaultFilters = $.jgrid.parse( defaultFilters );\n\t\t\t}\n\t\t\tif(p.recreateFilter === true) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).remove();\n\t\t\t}\n\t\t\tfunction showFilter(_filter) {\n\t\t\t\tshowFrm = $($t).triggerHandler(\"jqGridFilterBeforeShow\", [_filter]);\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t\tif(showFrm && $.isFunction(p.beforeShowSearch)) {\n\t\t\t\t\tshowFrm = p.beforeShowSearch.call($t,_filter);\n\t\t\t\t}\n\t\t\t\tif(showFrm) {\n\t\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(fid),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});\n\t\t\t\t\t$($t).triggerHandler(\"jqGridFilterAfterShow\", [_filter]);\n\t\t\t\t\tif($.isFunction(p.afterShowSearch)) {\n\t\t\t\t\t\tp.afterShowSearch.call($t, _filter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tshowFilter($(\"#fbox_\"+$.jgrid.jqID( $t.p.id )));\n\t\t\t} else {\n\t\t\t\tvar fil = $(\"<div><div id='\"+fid+\"' class='searchFilter' style='overflow:auto'></div></div>\").insertBefore(\"#gview_\"+$.jgrid.jqID($t.p.id)),\n\t\t\t\talign = \"left\", butleft =\"\"; \n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\talign = \"right\";\n\t\t\t\t\tbutleft = \" style='text-align:left'\";\n\t\t\t\t\tfil.attr(\"dir\",\"rtl\");\n\t\t\t\t}\n\t\t\t\tvar columns = $.extend([],$t.p.colModel),\n\t\t\t\tbS  =\"<a id='\"+fid+\"_search' class='fm-button \" + common.button + \" fm-button-icon-right ui-search'><span class='\" + common.icon_base + \" \" +classes.icon_search + \"'></span>\"+p.Find+\"</a>\",\n\t\t\t\tbC  =\"<a id='\"+fid+\"_reset' class='fm-button \" + common.button +\" fm-button-icon-left ui-reset'><span class='\" + common.icon_base + \" \" +classes.icon_reset + \"'></span>\"+p.Reset+\"</a>\",\n\t\t\t\tbQ = \"\", tmpl=\"\", colnm, found = false, bt, cmi=-1;\n\t\t\t\tif(p.showQuery) {\n\t\t\t\t\tbQ =\"<a id='\"+fid+\"_query' class='fm-button \" + common.button + \" fm-button-icon-left'><span class='\" + common.icon_base + \" \" +classes.icon_query + \"'></span>Query</a>\";\n\t\t\t\t}\n\t\t\t\tif(!p.columns.length) {\n\t\t\t\t\t$.each(columns, function(i,n){\n\t\t\t\t\t\tif(!n.label) {\n\t\t\t\t\t\t\tn.label = $t.p.colNames[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// find first searchable column and set it if no default filter\n\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\tvar searchable = (n.search === undefined) ?  true: n.search ,\n\t\t\t\t\t\t\thidden = (n.hidden === true),\n\t\t\t\t\t\t\tignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);\n\t\t\t\t\t\t\tif ((ignoreHiding && searchable) || (searchable && !hidden)) {\n\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\tcolnm = n.index || n.name;\n\t\t\t\t\t\t\t\tcmi =i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcolumns = p.columns;\n\t\t\t\t\tcmi = 0;\n\t\t\t\t\tcolnm = columns[0].index || columns[0].name;\n\t\t\t\t}\n\t\t\t\t// old behaviour\n\t\t\t\tif( (!defaultFilters && colnm) || p.multipleSearch === false  ) {\n\t\t\t\t\tvar cmop = \"eq\";\n\t\t\t\t\tif(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) {\n\t\t\t\t\t\tcmop = columns[cmi].searchoptions.sopt[0];\n\t\t\t\t\t} else if(p.sopt && p.sopt.length) {\n\t\t\t\t\t\tcmop = p.sopt[0];\n\t\t\t\t\t}\n\t\t\t\t\tdefaultFilters = {groupOp: \"AND\", rules: [{field: colnm, op: cmop, data: \"\"}]};\n\t\t\t\t}\n\t\t\t\tfound = false;\n\t\t\t\tif(p.tmplNames && p.tmplNames.length) {\n\t\t\t\t\tfound = true;\n\t\t\t\t\ttmpl = \"<tr><td class='ui-search-label'>\"+ p.tmplLabel +\"</td>\";\n\t\t\t\t\ttmpl += \"<td><select class='ui-template \" + classes.srSelect + \"'>\";\n\t\t\t\t\ttmpl += \"<option value='default'>Default</option>\";\n\t\t\t\t\t$.each(p.tmplNames, function(i,n){\n\t\t\t\t\t\ttmpl += \"<option value='\"+i+\"'>\"+n+\"</option>\";\n\t\t\t\t\t});\n\t\t\t\t\ttmpl += \"</select></td></tr>\";\n\t\t\t\t}\n\n\t\t\t\tbt = \"<table class='EditTable' style='border:0px none;margin-top:5px' id='\"+fid+\"_2'><tbody><tr><td colspan='2'><hr class='\" + common.content + \"' style='margin:1px'/></td></tr>\"+tmpl+\"<tr><td class='EditButton' style='text-align:\"+align+\"'>\"+bC+\"</td><td class='EditButton' \"+butleft+\">\"+bQ+bS+\"</td></tr></tbody></table>\";\n\t\t\t\tfid = $.jgrid.jqID( fid);\n\t\t\t\t$(\"#\"+fid).jqFilter({\n\t\t\t\t\tcolumns: columns,\n\t\t\t\t\tsortStrategy: p.sortStrategy,\n\t\t\t\t\tfilter: p.loadDefaults ? defaultFilters : null,\n\t\t\t\t\tshowQuery: p.showQuery,\n\t\t\t\t\terrorcheck : p.errorcheck,\n\t\t\t\t\tsopt: p.sopt,\n\t\t\t\t\tgroupButton : p.multipleGroup,\n\t\t\t\t\truleButtons : p.multipleSearch,\n\t\t\t\t\tuniqueSearchFields : p.uniqueSearchFields,\n\t\t\t\t\tafterRedraw : p.afterRedraw,\n\t\t\t\t\tops : p.odata,\n\t\t\t\t\toperands : p.operands,\n\t\t\t\t\tajaxSelectOptions: $t.p.ajaxSelectOptions,\n\t\t\t\t\tgroupOps: p.groupOps,\n\t\t\t\t\taddsubgrup : p.addsubgrup,\n\t\t\t\t\taddrule : p.addrule,\n\t\t\t\t\tdelgroup : p.delgroup,\n\t\t\t\t\tdelrule : p.delrule,\n\t\t\t\t\tonChange : function() {\n\t\t\t\t\t\tif(this.p.showQuery) {\n\t\t\t\t\t\t\t$('.query',this).html(this.toUserFriendlyString());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($.isFunction(p.afterChange)) {\n\t\t\t\t\t\t\tp.afterChange.call($t, $(\"#\"+fid), p);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tdirection : $t.p.direction,\n\t\t\t\t\tid: $t.p.id\n\t\t\t\t});\n\t\t\t\tfil.append( bt );\n\t\t\t\tif(found && p.tmplFilters && p.tmplFilters.length) {\n\t\t\t\t\t$(\".ui-template\", fil).on('change', function(){\n\t\t\t\t\t\tvar curtempl = $(this).val();\n\t\t\t\t\t\tif(curtempl===\"default\") {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', defaultFilters);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(p.multipleGroup === true) {p.multipleSearch = true;}\n\t\t\t\t$($t).triggerHandler(\"jqGridFilterInitialize\", [$(\"#\"+fid)]);\n\t\t\t\tif($.isFunction(p.onInitializeSearch) ) {\n\t\t\t\t\tp.onInitializeSearch.call($t, $(\"#\"+fid));\n\t\t\t\t}\n\t\t\t\tp.gbox = \"#gbox_\"+fid;\n\t\t\t\tif (p.layer) {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0], \"#\"+$.jgrid.jqID(p.layer), {position: \"relative\"});\n\t\t\t\t} else {\n\t\t\t\t\t$.jgrid.createModal(IDs ,fil,p,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\t\t}\n\t\t\t\tif (p.searchOnEnter || p.closeOnEscape) {\n\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {\n\t\t\t\t\t\tvar $target = $(e.target);\n\t\t\t\t\t\tif (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER\n\t\t\t\t\t\t\t\t!$target.hasClass('add-group') && !$target.hasClass('add-rule') &&\n\t\t\t\t\t\t\t\t!$target.hasClass('delete-group') && !$target.hasClass('delete-rule') &&\n\t\t\t\t\t\t\t\t(!$target.hasClass(\"fm-button\") || !$target.is(\"[id$=_query]\"))) {\n\t\t\t\t\t\t\t$(\"#\"+fid+\"_search\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(IDs.modalhead)).find(\".ui-jqdialog-titlebar-close\").click();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(bQ) {\n\t\t\t\t\t$(\"#\"+fid+\"_query\").on('click', function(){\n\t\t\t\t\t\t$(\".queryresult\", fil).toggle();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (p.stringResult===undefined) {\n\t\t\t\t\t// to provide backward compatibility, inferring stringResult value from multipleSearch\n\t\t\t\t\tp.stringResult = p.multipleSearch;\n\t\t\t\t}\n\t\t\t\t$(\"#\"+fid+\"_search\").on('click', function(){\n\t\t\t\t\tvar sdata={}, res, filters;\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\tfl.find(\".input-elm:focus\").change();\n\t\t\t\t\tfilters = fl.jqFilter('filterData');\n\t\t\t\t\tif(p.errorcheck) {\n\t\t\t\t\t\tfl[0].hideError();\n\t\t\t\t\t\tif(!p.showQuery) {fl.jqFilter('toSQLString');}\n\t\t\t\t\t\tif(fl[0].p.error) {\n\t\t\t\t\t\t\tfl[0].showError();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(p.stringResult) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tres = JSON.stringify(filters);\n\t\t\t\t\t\t} catch (e2) { }\n\t\t\t\t\t\tif(typeof res===\"string\") {\n\t\t\t\t\t\t\tsdata[p.sFilter] = res;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(p.multipleSearch) {\n\t\t\t\t\t\t\tsdata[p.sFilter] = filters;\n\t\t\t\t\t\t\t$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = \"\";});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsdata[p.sField] = filters.rules[0].field;\n\t\t\t\t\t\t\tsdata[p.sValue] = filters.rules[0].data;\n\t\t\t\t\t\t\tsdata[p.sOper] = filters.rules[0].op;\n\t\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$t.p.search = true;\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterSearch\");\n\t\t\t\t\tif( mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onSearch) ) {\n\t\t\t\t\t\tmustReload = p.onSearch.call($t, $t.p.filters);\n\t\t\t\t\t}\n\t\t\t\t\tif (mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif(p.closeAfterSearch) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#\"+fid+\"_reset\").on('click', function(){\n\t\t\t\t\tvar sdata={},\n\t\t\t\t\tfl = $(\"#\"+fid);\n\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\tif(p.multipleSearch===false) {\n\t\t\t\t\t\tsdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = \"\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsdata[p.sFilter] = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfl[0].resetFilter();\n\t\t\t\t\tif(found) {\n\t\t\t\t\t\t$(\".ui-template\", fil).val(\"default\");\n\t\t\t\t\t}\n\t\t\t\t\t$.extend($t.p.postData,sdata);\n\t\t\t\t\tmustReload = $($t).triggerHandler(\"jqGridFilterReset\");\n\t\t\t\t\tif(mustReload === undefined) {\n\t\t\t\t\t\tmustReload = true;\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload && $.isFunction(p.onReset) ) {\n\t\t\t\t\t\tmustReload = p.onReset.call($t);\n\t\t\t\t\t}\n\t\t\t\t\tif(mustReload !== false) {\n\t\t\t\t\t\t$($t).trigger(\"reloadGrid\",[{page:1}]);\n\t\t\t\t\t}\n\t\t\t\t\tif (p.closeAfterReset) {\n\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tshowFilter($(\"#\"+fid));\n\t\t\t\t$(\".fm-button:not(.\"+common.disabled+\")\",fil).hover(\n\t\t\t\t\tfunction(){$(this).addClass(common.hover);},\n\t\t\t\t\tfunction(){$(this).removeClass(common.hover);}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t},\n\tfilterInput : function( val, p) {\n\t\tp = $.extend(true, {\n\t\t\tdefaultSearch : 'cn',\n\t\t\tgroupOp : 'OR',\n\t\t\tsearchAll : false,\n\t\t\tbeforeSearch : null,\n\t\t\tafterSearch : null\n\t\t}, p || {});\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tvar nm, sop,ruleGroup = \"{\\\"groupOp\\\":\\\"\" + p.groupOp + \"\\\",\\\"rules\\\":[\", gi=0, so;\n\t\t\tval +=\"\";\n\t\t\tif(!$t.p.datatype === 'local') { return; }\n\t\t\t$.each($t.p.colModel,function(){\n\t\t\t\tnm = this.index || this.name;\n\t\t\t\tsop = this.searchoptions || {};\n\t\t\t\tso  = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch;\n\t\t\t\tthis.search = this.search === false ? false : true;\n\t\t\t\tif (this.search || p.searchAll) {\n\t\t\t\t\tif (gi > 0) {ruleGroup += \",\";}\n\t\t\t\t\truleGroup += \"{\\\"field\\\":\\\"\" + nm + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"op\\\":\\\"\" + so + \"\\\",\";\n\t\t\t\t\truleGroup += \"\\\"data\\\":\\\"\" + val.replace(/\\\\/g,'\\\\\\\\').replace(/\\\"/g,'\\\\\"') + \"\\\"}\";\n\t\t\t\t\tgi++;\n\t}\n});\n\t\t\truleGroup += \"]}\";\n\t\t\t$.extend($t.p.postData,{filters:ruleGroup});\n\t\t\t$.each(['searchField', 'searchString', 'searchOper'], function(i, n){\n\t\t\t\tif($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}\n\t\t\t});\n\t\t\tvar bsr = $($t).triggerHandler(\"jqGridFilterInputBeforeSearch\") === 'stop' ? true : false;\n\t\t\tif(!bsr && $.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}\n\t\t\tif(!bsr) { $($t).jqGrid(\"setGridParam\",{search:true}).trigger(\"reloadGrid\",[{page:1}]); }\n\t\t\t$($t).triggerHandler(\"jqGridFilterInputAfterSearch\");\n\t\t\tif($.isFunction(p.afterSearch)){p.afterSearch.call($t);}\n\t\t});\n\t}\n});\n\n//module begin\nvar rp_ge = {};\n$.jgrid.extend({\n\teditGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'edit'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: '500',\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay : 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl: null,\n\t\t\tmtype : \"POST\",\n\t\t\tclearAfterAdd :true,\n\t\t\tcloseAfterEdit : false,\n\t\t\treloadAfterSubmit : true,\n\t\t\tonInitializeForm: null,\n\t\t\tbeforeInitData: null,\n\t\t\tbeforeShowForm: null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterComplete: null,\n\t\t\tonclickPgButtons : null,\n\t\t\tafterclickPgButtons: null,\n\t\t\teditData : {},\n\t\t\trecreateForm : false,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\taddedrow : \"first\",\n\t\t\ttopinfo : '',\n\t\t\tbottominfo: '',\n\t\t\tsaveicon : [],\n\t\t\tcloseicon : [],\n\t\t\tsavekey: [false,13],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tcheckOnSubmit : false,\n\t\t\tcheckOnUpdate : false,\n\t\t\tprocessing : false,\n\t\t\tonClose : null,\n\t\t\tajaxEditOptions : {},\n\t\t\tserializeEditData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\toverlayClass : commonstyle.overlay,\n\t\t\tremovemodal : true,\n\t\t\tform: 'edit',\n\t\t\ttemplate : null,\n\t\t\tfocusField : true,\n\t\t\teditselected : false\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\t$t.p.savedData = {};\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"FrmGrid_\"+gID, frmtborg = \"TblGrid_\"+gID, frmtb = \"#\"+$.jgrid.jqID(frmtborg), frmtb2,\n\t\t\tIDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},\n\t\t\tshowFrm = true, maxCols = 1, maxRows=0,\tpostdata, diff, frmoper,\n\t\t\ttempl = typeof rp_ge[$t.p.id].template === \"string\" && rp_ge[$t.p.id].template.length > 0,\n\t\t\terrors =$.jgrid.getRegional(this, 'errors');\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif($.jgrid.isMobile()) {\n\t\t\t\trp_ge[$t.p.id].resize = false;\n\t\t\t}\n\t\t\tif (rowid === \"new\") {\n\t\t\t\trowid = \"_empty\";\n\t\t\t\tfrmoper = \"add\";\n\t\t\t\tp.caption=rp_ge[$t.p.id].addCaption;\n\t\t\t} else {\n\t\t\t\tp.caption=rp_ge[$t.p.id].editCaption;\n\t\t\t\tfrmoper = \"edit\";\n\t\t\t}\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"formProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"formProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar closeovrl = true;\n\t\t\tif(p.checkOnUpdate && p.jqModal && !p.modal) {\n\t\t\t\tcloseovrl = false;\n\t\t\t}\n\t\t\tfunction getFormData(){\n\t\t\t\tvar a2 ={}, i;\n\t\t\t\t$(frmtb).find(\".FormElement\").each(function() {\n\t\t\t\t\tvar celm = $(\".customelement\", this);\n\t\t\t\t\tif (celm.length) {\n\t\t\t\t\t\tvar  elem = celm[0], nm = $(elem).attr('name');\n\t\t\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\t\t\tif(this.name === nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tpostdata[nm] = this.editoptions.custom_value.call($t, $(\"#\"+$.jgrid.jqID(nm),frmtb),'get');\n\t\t\t\t\t\t\t\t\tif (postdata[nm] === undefined) {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tswitch ($(this).get(0).type) {\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\tif($(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar ofv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t\tpostdata[this.name]= ofv;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-one\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select-multiple\":\n\t\t\t\t\t\t\t\tpostdata[this.name]= $(this).val();\n\t\t\t\t\t\t\t\tpostdata[this.name] = postdata[this.name] ? postdata[this.name].join(\",\") : \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\tcase \"button\":\n\t\t\t\t\t\t\t\tpostdata[this.name] = $(this).val();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"radio\" :\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfor(i in a2 ) {\n\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frmtb).val();\n\t\t\t\t\t\tpostdata[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\tpostdata[i] = $.jgrid.htmlEncode(postdata[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD'>&#160;</td><td class='DataTD'>&#160;</td>\", tmpl=\"\", i, ffld; //*2\n\t\t\t\tfor (i =1; i<=maxcols;i++) {\n\t\t\t\t\ttmpl += tdtmpl;\n\t\t\t\t}\n\t\t\t\tif(rowid !== '_empty') {\n\t\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t}\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]),{rowId:rowid, colModel:this},i);\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\ttmp =  (this.edittype && this.edittype === \"textarea\") ? $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).text() : $(\"td[role='gridcell']:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(!tmp || tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:'edit'}),\n\t\t\t\t\t\tfrmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(rowid === \"_empty\" && opt.defaultValue ) {\n\t\t\t\t\t\t\ttmp = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!this.edittype) {this.edittype = \"text\";}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\telc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"checkbox\") {tmp = $(elc).attr(\"offval\");}\n\t\t\t\t\t\t//if(tmp === \"\" && this.edittype == \"select\") {tmp = $(\"option:eq(0)\",elc).text();}\n\t\t\t\t\t\tif(this.edittype === \"select\") {\n\t\t\t\t\t\t\ttmp = $(elc).val();\n\t\t\t\t\t\t\tif($(elc).get(0).type === 'select-multiple' && tmp) {\n\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype === 'checkbox') {\n\t\t\t\t\t\t\tif($(elc).is(\":checked\")) {\n\t\t\t\t\t\t\t\ttmp= $(elc).val();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(elc).attr(\"offval\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(elc).addClass(\"FormElement\");\n\t\t\t\t\t\tif( $.inArray(this.edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t$(elc).addClass( styles.inputClass );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tffld = true;\n\t\t\t\t\t\tif(templ) {\n\t\t\t\t\t\t\tvar ftmplfld = $(frm).find(\"#\"+nm);\n\t\t\t\t\t\t\tif(ftmplfld.length){\n\t\t\t\t\t\t\t\tftmplfld.replaceWith( elc );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tffld = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t//--------------------\n\t\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"tr_\"+nm);\n\t\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html(\"<label for='\"+nm+\"'>\"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + \"</label>\");\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);\n\t\t\t\t\t\t\t//-------------------------\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) {\n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.edittype==='custom' && $.isFunction(opt.custom_value) ) {\n\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm, frmgr),'set',tmp);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow;\n\t\t\t\t\tif(templ) {\n\t\t\t\t\t\tidrow = \"<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/>\";\n\t\t\t\t\t\t$(frm).append(idrow);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='\"+obj.p.id+\"_id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\t\tidrow[0].rp = cnt+999;\n\t\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t\t} \n\t\t\t\t\t//$(tb).append(idrow);\n\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\t\t\t\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj,fmid){\n\t\t\t\tvar nm,cnt=0,tmp, fld,opt,vl,vlc;\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t$t.p.savedData = {};\n\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"]=rowid;\n\t\t\t\t}\n\t\t\t\tvar cm = obj.p.colModel;\n\t\t\t\tif(rowid === '_empty') {\n\t\t\t\t\t$(cm).each(function(){\n\t\t\t\t\t\tnm = this.name;\n\t\t\t\t\t\topt = $.extend({}, this.editoptions || {} );\n\t\t\t\t\t\tfld = $(\"#\"+$.jgrid.jqID(nm),fmid);\n\t\t\t\t\t\tif(fld && fld.length && fld[0] !== null) {\n\t\t\t\t\t\t\tvl = \"\";\n\t\t\t\t\t\t\tif(this.edittype === 'custom' && $.isFunction(opt.custom_value)) {\n\t\t\t\t\t\t\t\topt.custom_value.call($t, $(\"#\"+nm,fmid),'set',vl);\n\t\t\t\t\t\t\t} else if(opt.defaultValue ) {\n\t\t\t\t\t\t\t\tvl = $.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;\n\t\t\t\t\t\t\t\tif(fld[0].type==='checkbox') {\n\t\t\t\t\t\t\t\t\tvlc = vl.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!==\"\") {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = true;\n\t\t\t\t\t\t\t\t\t\tfld[0].value = vl;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {fld.val(vl);}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif( fld[0].type==='checkbox' ) {\n\t\t\t\t\t\t\t\t\tfld[0].checked = false;\n\t\t\t\t\t\t\t\t\tfld[0].defaultChecked = false;\n\t\t\t\t\t\t\t\t\tvl = $(fld).attr(\"offval\");\n\t\t\t\t\t\t\t\t} else if (fld[0].type && fld[0].type.substr(0,6)==='select') {\n\t\t\t\t\t\t\t\t\tfld[0].selectedIndex = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfld.val(vl);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t$t.p.savedData[nm] = vl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$(\"#id_g\",fmid).val(rowid);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar tre = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!tre) {return;}\n\t\t\t\t$('td[role=\"gridcell\"]',tre).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\ttmp =  $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\ttmp = cm[i].edittype===\"textarea\" ? $(this).text() : $(this).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}\n\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { \n\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(nm);\n\t\t\t\t\t\tswitch (cm[i].edittype) {\n\t\t\t\t\t\t\tcase \"password\":\n\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\tcase \"image\":\n\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\t\t$(\"#\"+nm,fmid).val(tmp);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"select\":\n\t\t\t\t\t\t\t\tvar opv = tmp.split(\",\");\n\t\t\t\t\t\t\t\topv = $.map(opv,function(n){return $.trim(n);});\n\t\t\t\t\t\t\t\t$(\"#\"+nm+\" option\",fmid).each(function(){\n\t\t\t\t\t\t\t\t\tif (!cm[i].editoptions.multiple && ($.trim(tmp) === $.trim($(this).text()) || opv[0] === $.trim($(this).text()) || opv[0] === $.trim($(this).val())) ){\n\t\t\t\t\t\t\t\t\t\tthis.selected= true;\n\t\t\t\t\t\t\t\t\t} else if (cm[i].editoptions.multiple){\n\t\t\t\t\t\t\t\t\t\tif(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = true;\n\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.selected = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm,fmid).val();\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions.multiple) {\n\t\t\t\t\t\t\t\t\t\ttmp = tmp.join(\",\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\ttmp = String(tmp);\n\t\t\t\t\t\t\t\tif(cm[i].editoptions && cm[i].editoptions.value) {\n\t\t\t\t\t\t\t\t\tvar cb = cm[i].editoptions.value.split(\":\");\n\t\t\t\t\t\t\t\t\tif(cb[0] === tmp) {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":true, \"defaultChecked\" : true});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({\"checked\":false, \"defaultChecked\" : false});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ttmp = tmp.toLowerCase();\n\t\t\t\t\t\t\t\t\tif(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!==\"\") {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\",true); //ie\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t\t\t\t$(\"#\"+nm, fmid)[$t.p.useProp ? 'prop': 'attr'](\"defaultChecked\", false); //ie\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\tif($(\"#\"+nm, fmid).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).val();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttmp = $(\"#\"+nm, fmid).attr(\"offval\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$t.p.savedData[nm] = tmp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tif(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\t\tcm[i].editoptions.custom_value.call($t, $(\"#\"+nm, fmid),'set',tmp);\n\t\t\t\t\t\t\t\t\t} else {throw \"e1\";}\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tif (e===\"e1\") {$.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t\telse {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {\n\t\t\t\t\t$(\"#id_g\",frmtb).val(rowid);\n\t\t\t\t\tif( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) {\n\t\t\t\t\t\t$t.p.savedData[obj.p.id+\"_id\"] = rowid;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction setNulls() {\n\t\t\t\t$.each($t.p.colModel, function(i,n){\n\t\t\t\t\tif(n.editoptions && n.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(postdata.hasOwnProperty(n.name) && postdata[n.name] === \"\") {\n\t\t\t\t\t\t\tpostdata[n.name] = 'null';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction postIt() {\n\t\t\t\tvar copydata, ret=[true,\"\",\"\"], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url;\n\t\t\t\t\n\t\t\t\tvar retvals = $($t).triggerHandler(\"jqGridAddEditBeforeCheckValues\", [$(frmgr), frmoper]);\n\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t\n\t\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {\n\t\t\t\t\tretvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata,$(frmgr),frmoper);\n\t\t\t\t\tif(retvals && typeof retvals === 'object') {postdata = retvals;}\n\t\t\t\t}\n\t\t\t\tfor( key in postdata ){\n\t\t\t\t\tif(postdata.hasOwnProperty(key)) {\n\t\t\t\t\t\tret = $.jgrid.checkValues.call($t,postdata[key],key);\n\t\t\t\t\t\tif(ret[0] === false) {break;}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetNulls();\n\t\t\t\tif(ret[0]) {\n\t\t\t\t\tonCS = $($t).triggerHandler(\"jqGridAddEditClickSubmit\", [rp_ge[$t.p.id], postdata, frmoper]);\n\t\t\t\t\tif( onCS === undefined && $.isFunction( rp_ge[$t.p.id].onclickSubmit)) { \n\t\t\t\t\t\tonCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; \n\t\t\t\t\t}\n\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditBeforeSubmit\", [postdata, $(frmgr), frmoper]);\n\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t}\n\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].beforeSubmit))  {\n\t\t\t\t\t\tret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").addClass( commonstyle.active );\n\t\t\t\t\turl = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl');\n\t\t\t\t\toper = opers.oper;\n\t\t\t\t\tidname = url === 'clientArray' ? $t.p.keyName : opers.id;\n\t\t\t\t\t// we add to pos data array the action - the name is oper\n\t\t\t\t\tpostdata[oper] = ($.trim(postdata[$t.p.id+\"_id\"]) === \"_empty\") ? opers.addoper : opers.editoper;\n\t\t\t\t\tif(postdata[oper] !== opers.addoper) {\n\t\t\t\t\t\tpostdata[idname] = postdata[$t.p.id+\"_id\"];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// check to see if we have allredy this field in the form and if yes lieve it\n\t\t\t\t\t\tif( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+\"_id\"];}\n\t\t\t\t\t}\n\t\t\t\t\tdelete postdata[$t.p.id+\"_id\"];\n\t\t\t\t\tpostdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS);\n\t\t\t\t\tif($t.p.treeGrid === true)  {\n\t\t\t\t\t\tif(postdata[oper] === opers.addoper) {\n\t\t\t\t\t\tselr = $($t).jqGrid(\"getGridParam\", 'selrow');\n\t\t\t\t\t\t\tvar tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id';\n\t\t\t\t\t\t\tpostdata[tr_par_id] = selr;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor(i in $t.p.treeReader){\n\t\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(i)) {\n\t\t\t\t\t\t\t\tvar itm = $t.p.treeReader[i];\n\t\t\t\t\t\t\t\tif(postdata.hasOwnProperty(itm)) {\n\t\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;}\n\t\t\t\t\t\t\t\t\tdelete postdata[itm];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tpostdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]);\n\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) :  postdata,\n\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\tvar key;\n\t\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\tpostdata[idname] = $t.p.idPrefix + postdata[idname];\n\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = $($t).triggerHandler(\"jqGridAddEditErrorTextFormat\", [data, frmoper]);\n\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\tret = $($t).triggerHandler(\"jqGridAddEditAfterSubmit\", [data, postdata, frmoper]);\n\t\t\t\t\t\t\t\tif(ret === undefined) {\n\t\t\t\t\t\t\t\t\tret = [true,\"\",\"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif( ret[0] && $.isFunction(rp_ge[$t.p.id].afterSubmit) ) {\n\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(postdata,function(n,v){\n\t\t\t\t\t\t\t\t\t\tpostdata[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != \"local\";\n\t\t\t\t\t\t\t\t// the action is add\n\t\t\t\t\t\t\t\tif(postdata[oper] === opers.addoper ) {\n\t\t\t\t\t\t\t\t\t//id processing\n\t\t\t\t\t\t\t\t\t// user not set the id ret[2]\n\t\t\t\t\t\t\t\t\tif(!ret[2]) {ret[2] = $.jgrid.randId();}\n\t\t\t\t\t\t\t\t\tif(postdata[idname] == null || postdata[idname] === \"_empty\" || postdata[idname] == \"\"){\n\t\t\t\t\t\t\t\t\t\tpostdata[idname] = ret[2];\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[2] = postdata[idname];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addChildNode\",ret[2],selr,postdata );\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"addRowData\",ret[2],postdata,p.addedrow);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid !== true){\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ret[2]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t\t} else if (rp_ge[$t.p.id].clearAfterAdd) {\n\t\t\t\t\t\t\t\t\t\tfillData(\"_empty\", $t, frmgr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// the action is update\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit) {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t\tif( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid(\"setSelection\",postdata[idname]);},1000);}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid === true) {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setTreeRow\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\", postdata[idname],postdata);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\tcopydata = data;\n\t\t\t\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterComplete\", [copydata, postdata, $(frmgr), frmoper]);\n\t\t\t\t\t\t\t\t\t\trp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper);\n\t\t\t\t\t\t\t\t\t\tcopydata=null;\n\t\t\t\t\t\t\t\t\t},500);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t\t\t\t\tif($t.p.savedData[$t.p.id+\"_id\"] !== \"_empty\"){\n\t\t\t\t\t\t\t\t\t\tfor(key in $t.p.savedData) {\n\t\t\t\t\t\t\t\t\t\t\tif($t.p.savedData.hasOwnProperty(key) && postdata[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t$t.p.savedData[key] = postdata[key];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\ttry{$(':input:visible',frmgr)[0].focus();} catch (e){}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions );\n\n\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+errors.nourl;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"set_\"+$t.p.id); \n\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].reloadAfterSubmit = false;\n\t\t\t\t\t\t\t\tpostdata = ajaxOptions.data;\n\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t$(\".FormError\",frmgr).html(ret[1]);\n\t\t\t\t\t$(\".FormError\",frmgr).show();\n\t\t\t\t\t// return;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction compareData(nObj, oObj ) {\n\t\t\t\tvar ret = false,key;\n\t\t\t\tret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj)\n\t\t\t\t\t&& Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length);\n\t\t\t\tif(!ret) {\n\t\t\t\t\tfor (key in oObj) {\n\t\t\t\t\t\tif(oObj.hasOwnProperty(key) )  {\n\t\t\t\t\t\t\tif(nObj.hasOwnProperty(key) ) {\n\t\t\t\t\t\t\t\tif( nObj[key] !== oObj[key] ) {\n\t\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction checkUpdates () {\n\t\t\t\tvar stat = true;\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tif(rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\t\tpostdata = {};\n\t\t\t\t\tgetFormData();\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+IDs.themodal).show();\n\t\t\t\t\t\tstat = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn stat;\n\t\t\t}\n\t\t\tfunction restoreInline() {\n\t\t\t\tvar i;\n\t\t\t\tif (rowid !== \"_empty\" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.isFunction($.fn.jqGrid.restoreRow)) {\n\t\t\t\t\tfor (i=0;i<$t.p.savedRow.length;i++) {\n\t\t\t\t\t\tif ($t.p.savedRow[i].id === rowid) {\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow',rowid);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction updateNav(cr, posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t$(\"#pData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb2).addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",frmtb2).removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid =  $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",frmtb).val(), pos;\n\t\t\t\tif($t.p.multiselect && rp_ge[$t.p.id].editselected) {\n\t\t\t\t\tvar arr = [];\n\t\t\t\t\tfor(var i=0, len = rowsInGrid.length;i<len;i++) {\n\t\t\t\t\t\tif($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {\n\t\t\t\t\t\t\tarr.push(rowsInGrid[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpos = $.inArray(selrow,arr);\n\t\t\t\t\treturn [pos, arr];\n\t\t\t\t} else {\n\t\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\t}\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\t\t\tfunction parseTemplate ( template ){\n\t\t\t\tvar   tmpl =\"\";\n\t\t\t\tif(typeof template === \"string\") {\n\t\t\t\t\ttmpl = template.replace(/\\{([\\w\\-]+)(?:\\:([\\w\\.]*)(?:\\((.*?)?\\))?)?\\}/g, function(m,i){\n\t\t\t\t\t\treturn '<span id=\"'+ i+ '\" ></span>';\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn tmpl;\n\t\t\t}\n\t\t\tfunction syncSavedData () {\n\t\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\n\t\t\t\t\tvar a1=[], a2={};\n\t\t\t\t\ta1 = $.map($t.p.savedData, function(v, i){\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t});\n\t\t\t\t\t$(\".FormElement\", frm ).each(function(){\n\t\t\t\t\t\tif( a1.indexOf(this.name) === -1 ) {\n\t\t\t\t\t\t\tvar tv = $(this).val(), tt = $(this).get(0).type;\n\t\t\t\t\t\t\tif( tt === 'checkbox') {\n\t\t\t\t\t\t\t\tif(!$(this).is(\":checked\")) {\n\t\t\t\t\t\t\t\t\ttv = $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if(tt === 'select-multiple') {\n\t\t\t\t\t\t\t\ttv = tv.join(\",\");\n\t\t\t\t\t\t\t} else if(tt === 'radio') {\n\t\t\t\t\t\t\t\tif(a2.hasOwnProperty(this.name)) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ta2[this.name] = ($(this).attr(\"offval\") === undefined) ? \"off\" : $(this).attr(\"offval\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$t.p.savedData[this.name] = tv;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tfor(var i in a2 ) {\n\t\t\t\t\t\tif( a2.hasOwnProperty(i)) {\n\t\t\t\t\t\t\tvar val = $('input[name=\"'+i+'\"]:checked',frm).val();\n\t\t\t\t\t\t\t$t.p.savedData[i] = (val !== undefined) ? val : a2[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr+\"' class='FormGrid' onSubmit='return false;' style='width:\"+dw+\";height:\"+dh+\";'></form>\").data(\"disabled\",false),\n\t\t\ttbl;\n\t\t\tif(templ) {\n\t\t\t\ttbl = parseTemplate( rp_ge[$(this)[0].p.id].template );\n\t\t\t\tfrmtb2 = frmtb;\n\t\t\t} else {\n\t\t\t\ttbl = $(\"<table id='\"+frmtborg+\"' class='EditTable ui-common-table'><tbody></tbody></table>\");\n\t\t\t\tfrmtb2 = frmtb+\"_2\";\n\t\t\t}\n\t\t\tfrmgr = \"#\"+ $.jgrid.jqID(frmgr);\n\t\t\t// errors\n\t\t\t$(frm).append(\"<div class='FormError \" + commonstyle.error + \"' style='display:none;'></div>\" );\n\t\t\t// topinfo\n\t\t\t$(frm).append(\"<div class='tinfo topinfo'>\"+rp_ge[$t.p.id].topinfo+\"</div>\");\n\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t$(frm).append(tbl);\n\n\t\t\tshowFrm = $($t).triggerHandler(\"jqGridAddEditBeforeInitData\", [frm, frmoper]);\n\t\t\tif(showFrm === undefined) {\n\t\t\t\tshowFrm = true;\n\t\t\t}\n\t\t\tif(showFrm && $.isFunction(rp_ge[$t.p.id].beforeInitData)) {\n\t\t\t\tshowFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper);\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\n\t\t\trestoreInline();\n\t\t\t// set the id.\n\t\t\t// use carefull only to change here colproperties.\n\t\t\t// create data\n\t\t\tcreateData(rowid,$t,tbl,maxCols);\n\t\t\t// buttons at footer\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\";\n\t\t\tvar bP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbS  =\"<a id='sData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\tvar bt = \"<table style='height:auto' class='EditTable ui-common-table' id='\"+frmtborg+\"_2'><tbody><tr><td colspan='2'><hr class='\"+commonstyle.content+\"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bS+bC+\"</td></tr>\";\n\t\t\t//bt += \"<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>\"+rp_ge[$t.p.id].bottominfo+\"</td></tr>\";\n\t\t\tbt += \"</tbody></table>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar cle = false;\n\t\t\tif(p.closeOnEscape===true){\n\t\t\t\tp.closeOnEscape = false;\n\t\t\t\tcle = true;\n\t\t\t}\n\t\t\tvar tms;\n\t\t\tif(templ) {\n\t\t\t\t$(frm).find(\"#pData\").replaceWith( bP );\n\t\t\t\t$(frm).find(\"#nData\").replaceWith( bN );\n\t\t\t\t$(frm).find(\"#sData\").replaceWith( bS );\n\t\t\t\t$(frm).find(\"#cData\").replaceWith( bC );\n\t\t\t\ttms = $(\"<div id=\"+frmtborg+\"></div>\").append(frm);\n\t\t\t} else {\n\t\t\t\ttms = $(\"<div></div>\").append(frm).append(bt);\n\t\t\t}\n\t\t\t\n\t\t\t$(frm).append(\"<div class='binfo topinfo bottominfo'>\"+rp_ge[$t.p.id].bottominfo+\"</div>\");\n\n\t\t\t$.jgrid.createModal(IDs,tms, rp_ge[$(this)[0].p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\n\t\t\tif(rp_ge[$t.p.id].topinfo) {$(\".tinfo\", frmgr).show();}\n\t\t\tif(rp_ge[$t.p.id].bottominfo) {$(\".binfo\",frmgr).show();}\n\n\t\t\ttms = null;bt=null;\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) {\n\t\t\t\tvar wkey = e.target;\n\t\t\t\tif ($(frmgr).data(\"disabled\")===true ) {return false;}//??\n\t\t\t\tif(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save\n\t\t\t\t\tif(wkey.tagName !== \"TEXTAREA\") {\n\t\t\t\t\t\t$(\"#sData\", frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\tif(cle)\t{$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tif($(\"#id_g\",frmtb).val() === \"_empty\") {return true;}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === rp_ge[$t.p.id].navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", frmtb2).trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(p.checkOnUpdate) {\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close span\",\"#\"+$.jgrid.jqID(IDs.themodal)).removeClass(\"jqmClose\");\n\t\t\t\t$(\"a.ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.themodal)).off(\"click\")\n\t\t\t\t.click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.saveicon = $.extend([true,\"left\", styles.icon_save ],p.saveicon);\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\t// beforeinitdata after creation of the form\n\t\t\tif(p.saveicon[0]===true) {\n\t\t\t\t$(\"#sData\",frmtb2).addClass(p.saveicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\"+commonstyle.icon_base + \" \" +p.saveicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",frmtb2).addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base +\" \"+p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {\n\t\t\t\tbS  =\"<a id='sNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002'>\"+p.bYes+\"</a>\";\n\t\t\t\tbN  =\"<a id='nNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px'>\"+p.bNo+\"</a>\";\n\t\t\t\tbC  =\"<a id='cNew' class='fm-button \"+commonstyle.button + \"' style='z-index:1002;margin-left:5px;'>\"+p.bExit+\"</a>\";\n\t\t\t\tvar zI = p.zIndex  || 999;zI ++;\n\t\t\t\t$(\"<div class='\"+ p.overlayClass+\" jqgrid-overlay confirm' style='z-index:\"+zI+\";display:none;'>&#160;\"+\"</div><div class='confirm ui-jqconfirm \"+commonstyle.content+\"' style='z-index:\"+(zI+1)+\"'>\"+p.saveData+\"<br/><br/>\"+bS+bN+bC+\"</div>\").insertAfter(frmgr);\n\t\t\t\t$(\"#sNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\tpostIt();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#nNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\tsetTimeout(function(){$(\":input:visible\",frmgr)[0].focus();},0);\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#cNew\",\"#\"+$.jgrid.jqID(IDs.themodal)).click(function(){\n\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).hide();\n\t\t\t\t\t$(frmgr).data(\"disabled\",false);\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t// here initform - only once\n\t\t\t$($t).triggerHandler(\"jqGridAddEditInitializeForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);}\n\t\t\tif(rowid===\"_empty\" || !rp_ge[$t.p.id].viewPagerButtons) {$(\"#pData,#nData\",frmtb2).hide();} else {$(\"#pData,#nData\",frmtb2).show();}\n\t\t\t$($t).triggerHandler(\"jqGridAddEditBeforeShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);}\n\t\t\tsyncSavedData();\n\t\t\t$(\"#\"+$.jgrid.jqID(IDs.themodal)).data(\"onClose\",rp_ge[$t.p.id].onClose);\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal, \n\t\t\t\toverlay: p.overlay,\n\t\t\t\tmodal:p.modal, \n\t\t\t\toverlayClass: p.overlayClass,\n\t\t\t\tfocusField : p.focusField,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\tvar fh = $('#editmod'+gID)[0].style.height,\n\t\t\t\t\t\tfw = $('#editmod'+gID)[0].style.width;\n\t\t\t\t\tif(fh.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfh = parseFloat(fh);\n\t\t\t\t\t}\n\t\t\t\t\tif(fw.indexOf(\"px\") > -1 ) {\n\t\t\t\t\t\tfw = parseFloat(fw);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).data(\"formProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : fw,\n\t\t\t\t\t\theight : fh,\n\t\t\t\t\t\tdataheight : $(frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!closeovrl) {\n\t\t\t\t$(\".\" + $.jgrid.jqID(p.overlayClass)).click(function(){\n\t\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\t$(\".fm-button\",\"#\"+$.jgrid.jqID(IDs.themodal)).hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\t$(\"#sData\", frmtb2).click(function(){\n\t\t\t\tpostdata = {};\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\t// all depend on ret array\n\t\t\t\t//ret[0] - succes\n\t\t\t\t//ret[1] - msg if not succes\n\t\t\t\t//ret[2] - the id  that will be set if reload after submit false\n\t\t\t\tgetFormData();\n\t\t\t\tif(postdata[$t.p.id+\"_id\"] === \"_empty\")\t{postIt();}\n\t\t\t\telse if(p.checkOnSubmit===true ) {\n\t\t\t\t\tdiff = compareData(postdata, $t.p.savedData);\n\t\t\t\t\tif(diff) {\n\t\t\t\t\t\t$(frmgr).data(\"disabled\",true);\n\t\t\t\t\t\t$(\".confirm\",\"#\"+$.jgrid.jqID(IDs.themodal)).show();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpostIt();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpostIt();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#cData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tvar nposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tnposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]);\n\t\t\t\t\t\tif( nposret !== undefined && nposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['next',$(frmgr),npos[1][npos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", frmtb2).click(function(){\n\t\t\t\tif(!checkUpdates()) {return false;}\n\t\t\t\t$(\".FormError\",frmgr).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tvar pposret;\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tpposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t\tif( pposret !== undefined && pposret === false ) {return false;}\n\t\t\t\t\t}\n\t\t\t\t\tif( $(\"#\"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t,frmgr);\n\t\t\t\t\tif(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {\n\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterClickPgButtons\", ['prev',$(frmgr),ppos[1][ppos[0]]]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tsyncSavedData();\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$($t).triggerHandler(\"jqGridAddEditAfterShowForm\", [$(frmgr), frmoper]);\n\t\t\tif($.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); }\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tviewGridRow : function(rowid, p){\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'view'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 500,\n\t\t\tdatawidth: 'auto',\n\t\t\theight: 'auto',\n\t\t\tdataheight: 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\tjqModal: true,\n\t\t\tcloseOnEscape : false,\n\t\t\tlabelswidth: '30%',\n\t\t\tcloseicon: [],\n\t\t\tnavkeys: [false,38,40],\n\t\t\tonClose: null,\n\t\t\tbeforeShowForm : null,\n\t\t\tbeforeInitData : null,\n\t\t\tviewPagerButtons : true,\n\t\t\trecreateForm : false,\n\t\t\tremovemodal: true,\n\t\t\tform: 'view'\n\t\t}, regional, p || {});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid || !rowid) {return;}\n\t\t\tvar gID = $t.p.id,\n\t\t\tfrmgr = \"ViewGrid_\"+$.jgrid.jqID( gID  ), frmtb = \"ViewTbl_\" + $.jgrid.jqID( gID ),\n\t\t\tfrmgr_id = \"ViewGrid_\"+gID, frmtb_id = \"ViewTbl_\"+gID,\n\t\t\tIDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tshowFrm = true,\n\t\t\tmaxCols = 1, maxRows=0;\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif(!p.recreateForm) {\n\t\t\t\tif( $($t).data(\"viewProp\") ) {\n\t\t\t\t\t$.extend(rp_ge[$(this)[0].p.id], $($t).data(\"viewProp\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction focusaref(){ //Sfari 3 issues\n\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) {\n\t\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\", \"-1\").focus();},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction createData(rowid,obj,tb,maxcols){\n\t\t\t\tvar nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i,\n\t\t\t\ttdtmpl = \"<td class='CaptionTD form-view-label \" + commonstyle.content + \"' width='\"+p.labelswidth+\"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset \"  + commonstyle.content +\"'>&#160;</td>\", tmpl=\"\",\n\t\t\t\ttdtmpl2 = \"<td class='CaptionTD form-view-label \" + commonstyle.content +\"'>&#160;</td><td class='DataTD form-view-data \" + commonstyle.content +\"'>&#160;</td>\",\n\t\t\t\tfmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;\n\t\t\t\tfor (i=1;i<=maxcols;i++) {\n\t\t\t\t\ttmpl += i === 1 ? tdtmpl : tdtmpl2;\n\t\t\t\t}\n\t\t\t\t// find max number align rigth with property formatter\n\t\t\t\t$(obj.p.colModel).each( function() {\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif(!hc && this.align==='right') {\n\t\t\t\t\t\tif(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {\n\t\t\t\t\t\t\tmax1 = Math.max(max1,parseInt(this.width,10));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmax2 = Math.max(max2,parseInt(this.width,10));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tmaxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;\n\t\t\t\tind = $(obj).jqGrid(\"getInd\",rowid);\n\t\t\t\t$(obj.p.colModel).each( function(i) {\n\t\t\t\t\tnm = this.name;\n\t\t\t\t\tsetme = false;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(this.editrules && this.editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = this.hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tdc = hc ? \"style='display:none'\" : \"\";\n\t\t\t\t\tviewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable;\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {\n\t\t\t\t\t\tif(ind === false) {\n\t\t\t\t\t\t\ttmp = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttmp = $(\"td:eq(\"+i+\")\",obj.rows[ind]).html();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetme = this.align === 'right' && maxw !==0 ? true : false;\n\t\t\t\t\t\tvar frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),\n\t\t\t\t\t\trp = parseInt(frmopt.rowpos,10) || cnt+1,\n\t\t\t\t\t\tcp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);\n\t\t\t\t\t\tif(frmopt.rowabove) {\n\t\t\t\t\t\t\tvar newdata = $(\"<tr><td class='contentinfo' colspan='\"+(maxcols*2)+\"'>\"+frmopt.rowcontent+\"</td></tr>\");\n\t\t\t\t\t\t\t$(tb).append(newdata);\n\t\t\t\t\t\t\tnewdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttrdata = $(tb).find(\"tr[rowpos=\"+rp+\"]\");\n\t\t\t\t\t\tif ( trdata.length===0 ) {\n\t\t\t\t\t\t\ttrdata = $(\"<tr \"+dc+\" rowpos='\"+rp+\"'></tr>\").addClass(\"FormData\").attr(\"id\",\"trv_\"+nm);\n\t\t\t\t\t\t\t$(trdata).append(tmpl);\n\t\t\t\t\t\t\t$(tb).append(trdata);\n\t\t\t\t\t\t\ttrdata[0].rp = rp;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-2)+\")\",trdata[0]).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>');\n\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\")\",trdata[0]).append(\"<span>\"+tmp+\"</span>\").attr(\"id\",\"v_\"+nm);\n\t\t\t\t\t\tif(setme){\n\t\t\t\t\t\t\t$(\"td:eq(\"+(cp-1)+\") span\",trdata[0]).css({'text-align':'right',width:maxw+\"px\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tretpos[cnt] = i;\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif( cnt > 0) {\n\t\t\t\t\tvar idrow = $(\"<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='\"+ (maxcols*2-1)+\"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='\"+rowid+\"'/></td></tr>\");\n\t\t\t\t\tidrow[0].rp = cnt+99;\n\t\t\t\t\t$(tb).append(idrow);\n\t\t\t\t}\n\t\t\t\treturn retpos;\n\t\t\t}\n\t\t\tfunction fillData(rowid,obj){\n\t\t\t\tvar nm, hc,cnt=0,tmp,trv;\n\t\t\t\ttrv = $(obj).jqGrid(\"getInd\",rowid,true);\n\t\t\t\tif(!trv) {return;}\n\t\t\t\t$('td',trv).each( function(i) {\n\t\t\t\t\tnm = obj.p.colModel[i].name;\n\t\t\t\t\t// hidden fields are included in the form\n\t\t\t\t\tif(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {\n\t\t\t\t\t\thc = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\thc = obj.p.colModel[i].hidden === true ? true : false;\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {\n\t\t\t\t\t\t\ttmp = $(this).text();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttmp = $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnm = $.jgrid.jqID(\"v_\"+nm);\n\t\t\t\t\t\t$(\"#\"+nm+\" span\",\"#\"+frmtb).html(tmp);\n\t\t\t\t\t\tif (hc) {$(\"#\"+nm,\"#\"+frmtb).parents(\"tr:first\").hide();}\n\t\t\t\t\t\tcnt++;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt>0) {$(\"#id_g\",\"#\"+frmtb).val(rowid);}\n\t\t\t}\n\t\t\tfunction updateNav(cr,posarr){\n\t\t\t\tvar totr = posarr[1].length-1;\n\t\t\t\tif (cr===0) {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr-1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(\"#pData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#pData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t\tif (cr===totr) {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else if( posarr[1][cr+1] !== undefined && $(\"#\"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t$(\"#nData\",frmtb+\"_2\").addClass( commonstyle.disabled );\n\t\t\t\t} else {\n\t\t\t\t\t$(\"#nData\",\"#\"+frmtb+\"_2\").removeClass( commonstyle.disabled );\n\t\t\t\t}\n\t\t\t}\n\t\t\tfunction getCurrPos() {\n\t\t\t\tvar rowsInGrid = $($t).jqGrid(\"getDataIDs\"),\n\t\t\t\tselrow = $(\"#id_g\",\"#\"+frmtb).val(),\n\t\t\t\tpos = $.inArray(selrow,rowsInGrid);\n\t\t\t\treturn [pos,rowsInGrid];\n\t\t\t}\n\n\t\t\tvar dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+\"px\",\n\t\t\tdw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+\"px\",\n\t\t\tfrm = $(\"<form name='FormPost' id='\"+frmgr_id+\"' class='FormGrid' style='width:\"+dw+\";height:\"+dh+\";'></form>\"),\n\t\t\ttbl =$(\"<table id='\"+frmtb_id+\"' class='EditTable ViewTable'><tbody></tbody></table>\");\n\t\t\t$($t.p.colModel).each( function() {\n\t\t\t\tvar fmto = this.formoptions;\n\t\t\t\tmaxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );\n\t\t\t\tmaxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );\n\t\t\t});\n\t\t\t// set the id.\n\t\t\t$(frm).append(tbl);\n\t\t\tif(onBeforeInit) {\n\t\t\t\tshowFrm = onBeforeInit.call($t, frm );\n\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\tshowFrm = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(showFrm === false) {return;}\n\t\t\tcreateData(rowid, $t, tbl, maxCols);\n\t\t\tvar rtlb = $t.p.direction === \"rtl\" ? true :false,\n\t\t\tbp = rtlb ? \"nData\" : \"pData\",\n\t\t\tbn = rtlb ? \"pData\" : \"nData\",\n\t\t\t\t// buttons at footer\n\t\t\tbP = \"<a id='\"+bp+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_prev+ \"'></span></a>\",\n\t\t\tbN = \"<a id='\"+bn+\"' class='fm-button \" + commonstyle.button + \"'><span class='\" + commonstyle.icon_base + \" \" + styles.icon_next+ \"'></span></a>\",\n\t\t\tbC  =\"<a id='cData' class='fm-button \" + commonstyle.button + \"'>\"+p.bClose+\"</a>\";\n\t\t\tif(maxRows >  0) {\n\t\t\t\tvar sd=[];\n\t\t\t\t$.each($(tbl)[0].rows,function(i,r){\n\t\t\t\t\tsd[i] = r;\n\t\t\t\t});\n\t\t\t\tsd.sort(function(a,b){\n\t\t\t\t\tif(a.rp > b.rp) {return 1;}\n\t\t\t\t\tif(a.rp < b.rp) {return -1;}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\t$.each(sd, function(index, row) {\n\t\t\t\t\t$('tbody',tbl).append(row);\n\t\t\t\t});\n\t\t\t}\n\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\tvar bt = $(\"<div></div>\").append(frm).append(\"<table border='0' class='EditTable' id='\"+frmtb+\"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='\"+p.labelswidth+\"'>\"+(rtlb ? bN+bP : bP+bN)+\"</td><td class='EditButton'>\"+bC+\"</td></tr></tbody></table>\");\n\t\t\t$.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\t\t\tif(rtlb) {\n\t\t\t\t$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").css(\"float\",\"right\");\n\t\t\t\t$(\".EditButton\",\"#\"+frmtb+\"_2\").css(\"text-align\",\"left\");\n\t\t\t}\n\t\t\tif(!p.viewPagerButtons) {$(\"#pData, #nData\",\"#\"+frmtb+\"_2\").hide();}\n\t\t\tbt = null;\n\t\t\t$(\"#\"+IDs.themodal).keydown( function( e ) {\n\t\t\t\tif(e.which === 27) {\n\t\t\t\t\tif(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif(p.navkeys[0]===true) {\n\t\t\t\t\tif(e.which === p.navkeys[1]){ //up\n\t\t\t\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif(e.which === p.navkeys[2]){ //down\n\t\t\t\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").trigger(\"click\");\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tp.closeicon = $.extend([true,\"left\", styles.icon_close ],p.closeicon);\n\t\t\tif(p.closeicon[0]===true) {\n\t\t\t\t$(\"#cData\",\"#\"+frmtb+\"_2\").addClass(p.closeicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base+ \" \" +p.closeicon[2]+\"'></span>\");\n\t\t\t}\n\t\t\tif($.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$(\"#\"+frmgr));}\n\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{\n\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID(gID),\n\t\t\t\tjqm:p.jqModal,\n\t\t\t\toverlay: p.overlay, \n\t\t\t\tmodal:p.modal,\n\t\t\t\tonHide :  function(h) {\n\t\t\t\t\t$($t).data(\"viewProp\", {\n\t\t\t\t\t\ttop:parseFloat($(h.w).css(\"top\")),\n\t\t\t\t\t\tleft : parseFloat($(h.w).css(\"left\")),\n\t\t\t\t\t\twidth : $(h.w).width(),\n\t\t\t\t\t\theight : $(h.w).height(),\n\t\t\t\t\t\tdataheight : $(\"#\"+frmgr).height(),\n\t\t\t\t\t\tdatawidth: $(\"#\"+frmgr).width()\n\t\t\t\t\t});\n\t\t\t\t\th.w.remove();\n\t\t\t\t\tif(h.o) {h.o.remove();}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\".fm-button:not(.\" + commonstyle.disabled + \")\",\"#\"+frmtb+\"_2\").hover(\n\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t);\n\t\t\tfocusaref();\n\t\t\t$(\"#cData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#nData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar npos = getCurrPos();\n\t\t\t\tnpos[0] = parseInt(npos[0],10);\n\t\t\t\tif(npos[0] !== -1 && npos[1][npos[0]+1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(npos[1][npos[0]+1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",npos[1][npos[0]+1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'next',$(\"#\"+frmgr),npos[1][npos[0]+1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(npos[0]+1,npos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\t$(\"#pData\", \"#\"+frmtb+\"_2\").click(function(){\n\t\t\t\t$(\"#FormError\",\"#\"+frmtb).hide();\n\t\t\t\tvar ppos = getCurrPos();\n\t\t\t\tif(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {\n\t\t\t\t\tif($.isFunction(p.onclickPgButtons)) {\n\t\t\t\t\t\tp.onclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]]);\n\t\t\t\t\t}\n\t\t\t\t\tfillData(ppos[1][ppos[0]-1],$t);\n\t\t\t\t\t$($t).jqGrid(\"setSelection\",ppos[1][ppos[0]-1]);\n\t\t\t\t\tif($.isFunction(p.afterclickPgButtons)) {\n\t\t\t\t\t\tp.afterclickPgButtons.call($t,'prev',$(\"#\"+frmgr),ppos[1][ppos[0]-1]);\n\t\t\t\t\t}\n\t\t\t\t\tupdateNav(ppos[0]-1,ppos);\n\t\t\t\t}\n\t\t\t\tfocusaref();\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tvar posInit =getCurrPos();\n\t\t\tupdateNav(posInit[0],posInit);\n\t\t});\n\t},\n\tdelGridRow : function(rowids,p) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'del'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].formedit,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\n\t\tp = $.extend(true, {\n\t\t\ttop : 0,\n\t\t\tleft: 0,\n\t\t\twidth: 240,\n\t\t\theight: 'auto',\n\t\t\tdataheight : 'auto',\n\t\t\tmodal: false,\n\t\t\toverlay: 30,\n\t\t\tdrag: true,\n\t\t\tresize: true,\n\t\t\turl : '',\n\t\t\tmtype : \"POST\",\n\t\t\treloadAfterSubmit: true,\n\t\t\tbeforeShowForm: null,\n\t\t\tbeforeInitData : null,\n\t\t\tafterShowForm: null,\n\t\t\tbeforeSubmit: null,\n\t\t\tonclickSubmit: null,\n\t\t\tafterSubmit: null,\n\t\t\tjqModal : true,\n\t\t\tcloseOnEscape : false,\n\t\t\tdelData: {},\n\t\t\tdelicon : [],\n\t\t\tcancelicon : [],\n\t\t\tonClose : null,\n\t\t\tajaxDelOptions : {},\n\t\t\tprocessing : false,\n\t\t\tserializeDelData : null,\n\t\t\tuseDataProxy : false\n\t\t}, regional, p ||{});\n\t\trp_ge[$(this)[0].p.id] = p;\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif (!$t.grid ) {return;}\n\t\t\tif(!rowids) {return;}\n\t\t\tvar onBeforeShow = $.isFunction( rp_ge[$t.p.id].beforeShowForm  ),\n\t\t\tonAfterShow = $.isFunction( rp_ge[$t.p.id].afterShowForm ),\n\t\t\tonBeforeInit = $.isFunction(rp_ge[$t.p.id].beforeInitData) ? rp_ge[$t.p.id].beforeInitData : false,\n\t\t\tgID = $t.p.id, onCS = {},\n\t\t\tshowFrm = true,\n\t\t\tdtbl = \"DelTbl_\"+$.jgrid.jqID(gID),postd, idname, opers, oper,\n\t\t\tdtbl_id = \"DelTbl_\" + gID,\n\t\t\tIDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};\n\t\t\trp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';\n\t\t\tif ($.isArray(rowids)) {rowids = rowids.join();}\n\t\t\tif ( $(\"#\"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(\"#\"+dtbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\t\t\t\t$(\"#DelData>td\",\"#\"+dtbl).text(rowids);\n\t\t\t\t$(\"#DelError\",\"#\"+dtbl).hide();\n\t\t\t\tif( rp_ge[$t.p.id].processing === true) {\n\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t$(\"#dData\", \"#\"+dtbl).removeClass( commonstyle.active );\n\t\t\t\t}\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal,jqM: false, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t} else {\n\t\t\t\tvar dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+\"px\",\n\t\t\t\tdw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+\"px\",\n\t\t\t\ttbl = \"<div id='\"+dtbl_id+\"' class='formdata' style='width:\"+dw+\";overflow:auto;position:relative;height:\"+dh+\";'>\";\n\t\t\t\ttbl += \"<table class='DelTable'><tbody>\";\n\t\t\t\t// error data\n\t\t\t\ttbl += \"<tr id='DelError' style='display:none'><td class='\" + commonstyle.error +\"'></td></tr>\";\n\t\t\t\ttbl += \"<tr id='DelData' style='display:none'><td >\"+rowids+\"</td></tr>\";\n\t\t\t\ttbl += \"<tr><td class=\\\"delmsg\\\" style=\\\"white-space:pre;\\\">\"+rp_ge[$t.p.id].msg+\"</td></tr><tr><td >&#160;</td></tr>\";\n\t\t\t\t// buttons at footer\n\t\t\t\ttbl += \"</tbody></table></div>\";\n\t\t\t\tvar bS  = \"<a id='dData' class='fm-button \" + commonstyle.button + \"'>\"+p.bSubmit+\"</a>\",\n\t\t\t\tbC  = \"<a id='eData' class='fm-button \" + commonstyle.button + \"'>\"+p.bCancel+\"</a>\";\n\t\t\t\ttbl += \"<table class='EditTable ui-common-table' id='\"+dtbl+\"_2'><tbody><tr><td><hr class='\" + commonstyle.content + \"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>\"+bS+\"&#160;\"+bC+\"</td></tr></tbody></table>\";\n\t\t\t\tp.gbox = \"#gbox_\"+$.jgrid.jqID(gID);\n\t\t\t\t$.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,\"#gview_\"+$.jgrid.jqID($t.p.id),$(\"#gview_\"+$.jgrid.jqID($t.p.id))[0]);\n\n\t\t\t\tif(onBeforeInit) {\n\t\t\t\t\tshowFrm = onBeforeInit.call($t,$(tbl));\n\t\t\t\t\tif(showFrm === undefined) {\n\t\t\t\t\t\tshowFrm = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(showFrm === false) {return;}\n\n\t\t\t\t$(\".fm-button\",\"#\"+dtbl+\"_2\").hover(\n\t\t\t\t\tfunction(){$(this).addClass( commonstyle.hover );},\n\t\t\t\t\tfunction(){$(this).removeClass( commonstyle.hover );}\n\t\t\t\t);\n\t\t\t\tp.delicon = $.extend([true,\"left\", styles.icon_del ],rp_ge[$t.p.id].delicon);\n\t\t\t\tp.cancelicon = $.extend([true,\"left\", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon);\n\t\t\t\tif(p.delicon[0]===true) {\n\t\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").addClass(p.delicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.delicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\tif(p.cancelicon[0]===true) {\n\t\t\t\t\t$(\"#eData\",\"#\"+dtbl+\"_2\").addClass(p.cancelicon[1] === \"right\" ? 'fm-button-icon-right' : 'fm-button-icon-left')\n\t\t\t\t\t.append(\"<span class='\" + commonstyle.icon_base + \" \" + p.cancelicon[2]+\"'></span>\");\n\t\t\t\t}\n\t\t\t\t$(\"#dData\",\"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\tvar ret=[true,\"\"], pk,\n\t\t\t\t\tpostdata = $(\"#DelData>td\",\"#\"+dtbl).text(); //the pair is name=val1,val2,...\n\t\t\t\t\tonCS = {};\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {onCS = rp_ge[$t.p.id].onclickSubmit.call($t,rp_ge[$t.p.id], postdata) || {};}\n\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].beforeSubmit ) ) {ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata);}\n\t\t\t\t\tif(ret[0] && !rp_ge[$t.p.id].processing) {\n\t\t\t\t\t\trp_ge[$t.p.id].processing = true;\n\t\t\t\t\t\topers = $t.p.prmNames;\n\t\t\t\t\t\tpostd = $.extend({},rp_ge[$t.p.id].delData, onCS);\n\t\t\t\t\t\toper = opers.oper;\n\t\t\t\t\t\tpostd[oper] = opers.deloper;\n\t\t\t\t\t\tidname = opers.id;\n\t\t\t\t\t\tpostdata = String(postdata).split(\",\");\n\t\t\t\t\t\tif(!postdata.length) { return false; }\n\t\t\t\t\t\tfor(pk in postdata) {\n\t\t\t\t\t\t\tif(postdata.hasOwnProperty(pk)) {\n\t\t\t\t\t\t\t\tpostdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpostd[idname] = postdata.join();\n\t\t\t\t\t\t$(this).addClass( commonstyle.active );\n\t\t\t\t\t\tvar ajaxOptions = $.extend({\n\t\t\t\t\t\t\turl: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'),\n\t\t\t\t\t\t\ttype: rp_ge[$t.p.id].mtype,\n\t\t\t\t\t\t\tdata: $.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd,\n\t\t\t\t\t\t\tcomplete:function(data,status){\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t$(\"#dData\", \"#\"+dtbl+\"_2\").removeClass( commonstyle.active );\n\t\t\t\t\t\t\t\tif(data.status >= 300 && data.status !== 304) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tif ($.isFunction(rp_ge[$t.p.id].errorTextFormat)) {\n\t\t\t\t\t\t\t\t\t\tret[1] = rp_ge[$t.p.id].errorTextFormat.call($t,data);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tret[1] = status + \" Status: '\" + data.statusText + \"'. Error code: \" + data.status;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// data is posted successful\n\t\t\t\t\t\t\t\t\t// execute aftersubmit with the returned data from server\n\t\t\t\t\t\t\t\t\tif( $.isFunction( rp_ge[$t.p.id].afterSubmit ) ) {\n\t\t\t\t\t\t\t\t\t\tret = rp_ge[$t.p.id].afterSubmit.call($t,data,postd);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== \"local\") {\n\t\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif($t.p.treeGrid===true){\n\t\t\t\t\t\t\t\t\t\t\t\ttry {$($t).jqGrid(\"delTreeNode\",$t.p.idPrefix+postdata[0]);} catch(e){}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tfor(i=0;i<postdata.length;i++) {\n\t\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",$t.p.idPrefix+ postdata[i]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$t.p.selrow = null;\n\t\t\t\t\t\t\t\t\t\t$t.p.selarrrow = [];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif($.isFunction(rp_ge[$t.p.id].afterComplete)) {\n\t\t\t\t\t\t\t\t\t\tsetTimeout(function(){rp_ge[$t.p.id].afterComplete.call($t,data,postdata);},500);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].processing=false;\n\t\t\t\t\t\t\t\tif(ret[0]) {$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);\n\n\n\t\t\t\t\t\tif (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\tif ($.isFunction($t.p.dataProxy)) {\n\t\t\t\t\t\t\t\trp_ge[$t.p.id].useDataProxy = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret[0]=false;ret[1] += \" \"+$.jgrid.getRegional($t, 'errors.nourl');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (ret[0]) {\n\t\t\t\t\t\t\tif (rp_ge[$t.p.id].useDataProxy) {\n\t\t\t\t\t\t\t\tvar dpret = $t.p.dataProxy.call($t, ajaxOptions, \"del_\"+$t.p.id); \n\t\t\t\t\t\t\t\tif(dpret === undefined) {\n\t\t\t\t\t\t\t\t\tdpret = [true, \"\"];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(dpret[0] === false ) {\n\t\t\t\t\t\t\t\t\tret[0] = false;\n\t\t\t\t\t\t\t\t\tret[1] = dpret[1] || \"Error deleting the selected row!\" ;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif(ajaxOptions.url === \"clientArray\") {\n\t\t\t\t\t\t\t\t\tpostd = ajaxOptions.data;\n\t\t\t\t\t\t\t\t\tajaxOptions.complete({status:200, statusText:''},'');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$.ajax(ajaxOptions); \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(ret[0] === false) {\n\t\t\t\t\t\t$(\"#DelError>td\",\"#\"+dtbl).html(ret[1]);\n\t\t\t\t\t\t$(\"#DelError\",\"#\"+dtbl).show();\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\t$(\"#eData\", \"#\"+dtbl+\"_2\").click(function(){\n\t\t\t\t\t$.jgrid.hideModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gb:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tif(onBeforeShow) {rp_ge[$t.p.id].beforeShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t\t$.jgrid.viewModal(\"#\"+$.jgrid.jqID(IDs.themodal),{gbox:\"#gbox_\"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});\n\t\t\t\tif(onAfterShow) {rp_ge[$t.p.id].afterShowForm.call($t,$(\"#\"+dtbl));}\n\t\t\t}\n\t\t\tif(rp_ge[$t.p.id].closeOnEscape===true) {\n\t\t\t\tsetTimeout(function(){$(\".ui-jqdialog-titlebar-close\",\"#\"+$.jgrid.jqID(IDs.modalhead)).attr(\"tabindex\",\"-1\").focus();},0);\n\t\t\t}\n\t\t});\n\t},\n\tnavGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) {\n\t\tvar regional =  $.jgrid.getRegional(this[0], 'nav'),\n\t\t\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tedit: true,\n\t\t\tediticon: styles.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon: styles.icon_add_nav,\n\t\t\tdel: true,\n\t\t\tdelicon: styles.icon_del_nav,\n\t\t\tsearch: true,\n\t\t\tsearchicon: styles.icon_search_nav,\n\t\t\trefresh: true,\n\t\t\trefreshicon: styles.icon_refresh_nav,\n\t\t\trefreshstate: 'firstpage',\n\t\t\tview: false,\n\t\t\tviewicon : styles.icon_view_nav,\n\t\t\tposition : \"left\",\n\t\t\tcloseOnEscape : true,\n\t\t\tbeforeRefresh : null,\n\t\t\tafterRefresh : null,\n\t\t\tcloneToTop : false,\n\t\t\talertwidth : 200,\n\t\t\talertheight : 'auto',\n\t\t\talerttop: null,\n\t\t\talertleft: null,\n\t\t\talertzIndex : null,\n\t\t\tdropmenu : false,\n\t\t\tnavButtonText : ''\n\t\t}, regional, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif(this.p.navGrid) {return;}\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t$t = this, twd, tdw, o;\n\t\t\tif(!$t.grid || typeof elem !== 'string') {return;}\n\t\t\tif(!$($t).data('navGrid')) {\n\t\t\t\t$($t).data('navGrid',p);\n\t\t\t}\n\t\t\t// speedoverhead, but usefull for future \n\t\t\to = $($t).data('navGrid');\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\t\t\tif ($(\"#\"+alertIDs.themodal)[0] === undefined) {\n\t\t\t\tif(!o.alerttop && !o.alertleft) {\n\t\t\t\t\tif (window.innerWidth !== undefined) {\n\t\t\t\t\t\to.alertleft = window.innerWidth;\n\t\t\t\t\t\to.alerttop = window.innerHeight;\n\t\t\t\t\t} else if (document.documentElement !== undefined && document.documentElement.clientWidth !== undefined && document.documentElement.clientWidth !== 0) {\n\t\t\t\t\t\to.alertleft = document.documentElement.clientWidth;\n\t\t\t\t\t\to.alerttop = document.documentElement.clientHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\to.alertleft=1024;\n\t\t\t\t\t\to.alerttop=768;\n\t\t\t\t\t}\n\t\t\t\t\to.alertleft = o.alertleft/2 - parseInt(o.alertwidth,10)/2;\n\t\t\t\t\to.alerttop = o.alerttop/2-25;\n\t\t\t\t}\n\t\t\t\t$.jgrid.createModal(alertIDs,\n\t\t\t\t\t\"<div>\"+o.alerttext+\"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>\",\n\t\t\t\t\t{ \n\t\t\t\t\t\tgbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t\tjqModal:true,\n\t\t\t\t\t\tdrag:true,\n\t\t\t\t\t\tresize:true,\n\t\t\t\t\t\tcaption:o.alertcap,\n\t\t\t\t\t\ttop:o.alerttop,\n\t\t\t\t\t\tleft:o.alertleft,\n\t\t\t\t\t\twidth:o.alertwidth,\n\t\t\t\t\t\theight: o.alertheight,\n\t\t\t\t\t\tcloseOnEscape:o.closeOnEscape, \n\t\t\t\t\t\tzIndex: o.alertzIndex,\n\t\t\t\t\t\tstyleUI: $t.p.styleUI\n\t\t\t\t\t},\n\t\t\t\t\t\"#gview_\"+$.jgrid.jqID($t.p.id),\n\t\t\t\t\t$(\"#gbox_\"+$.jgrid.jqID($t.p.id))[0],\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\t\t\tvar clone = 1, i,\n\t\t\tonHoverIn = function () {\n\t\t\t\tif (!$(this).hasClass(commonstyle.disabled)) {\n\t\t\t\t\t$(this).addClass(commonstyle.hover);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonHoverOut = function () {\n\t\t\t\t$(this).removeClass(commonstyle.hover);\n\t\t\t};\n\t\t\tif(o.cloneToTop && $t.p.toppager) {clone = 2;}\n\t\t\tfor(i = 0; i<clone; i++) {\n\t\t\t\tvar tbd,\n\t\t\t\tnavtbl = $(\"<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>\"),\n\t\t\t\tsep = \"<td class='ui-pg-button \" +commonstyle.disabled + \"' style='width:4px;'><span class='ui-separator'></span></td>\",\n\t\t\t\tpgid, elemids;\n\t\t\t\tif(i===0) {\n\t\t\t\t\tpgid = elem;\n\t\t\t\t\telemids = $t.p.id;\n\t\t\t\t\tif(pgid === $t.p.toppager) {\n\t\t\t\t\t\telemids += \"_top\";\n\t\t\t\t\t\tclone = 1;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpgid = $t.p.toppager;\n\t\t\t\t\telemids = $t.p.id+\"_top\";\n\t\t\t\t}\n\t\t\t\tif($t.p.direction === \"rtl\") {\n\t\t\t\t\t$(navtbl).attr(\"dir\",\"rtl\").css(\"float\",\"right\");\n\t\t\t\t}\n\t\t\t\tpAdd = pAdd || {};\n\t\t\t\tif (o.add) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base +\" \" +o.addicon+\"'></span>\"+o.addtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.addtitle || \"\",id : pAdd.id || \"add_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( o.addfunc )) {\n\t\t\t\t\t\t\t\to.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpEdit = pEdit || {};\n\t\t\t\tif (o.edit) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.editicon+\"'></span>\"+o.edittext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.edittitle || \"\",id: pEdit.id || \"edit_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.editfunc ) ) {\n\t\t\t\t\t\t\t\t\to.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpView = pView || {};\n\t\t\t\tif (o.view) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.viewicon+\"'></span>\"+o.viewtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.viewtitle || \"\",id: pView.id || \"view_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( o.viewfunc ) ) {\n\t\t\t\t\t\t\t\t\to.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tpDel = pDel || {};\n\t\t\t\tif (o.del) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.delicon+\"'></span>\"+o.deltext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.deltitle || \"\",id: pDel.id || \"del_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( o.delfunc )){\n\t\t\t\t\t\t\t\t\to.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif(o.add || o.edit || o.del || o.view) {$(\"tr\",navtbl).append(sep);}\n\t\t\t\tpSearch = pSearch || {};\n\t\t\t\tif (o.search) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.searchicon+\"'></span>\"+o.searchtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.searchtitle  || \"\",id:pSearch.id || \"search_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( o.searchfunc )) {\n\t\t\t\t\t\t\t\to.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$(tbd,navtbl).click();\n\t\t\t\t\t}\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\tif (o.refresh) {\n\t\t\t\t\ttbd = $(\"<td class='ui-pg-button \"+commonstyle.cornerall+\"'></td>\");\n\t\t\t\t\t$(tbd).append(\"<div class='ui-pg-div'><span class='\"+commonstyle.icon_base+\" \"+o.refreshicon+\"'></span>\"+o.refreshtext+\"</div>\");\n\t\t\t\t\t$(\"tr\",navtbl).append(tbd);\n\t\t\t\t\t$(tbd,navtbl)\n\t\t\t\t\t.attr({\"title\":o.refreshtitle  || \"\",id: \"refresh_\"+elemids})\n\t\t\t\t\t.click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( o.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (o.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}).hover(onHoverIn, onHoverOut);\n\t\t\t\t\ttbd = null;\n\t\t\t\t}\n\t\t\t\ttdw = $(\".ui-jqgrid\").css(\"font-size\") || \"11px\";\n\t\t\t\t$('body').append(\"<div id='testpg2' class='ui-jqgrid \"+$.jgrid.styleUI[currstyle].base.entrieBox+\"' style='font-size:\"+tdw+\";visibility:hidden;' ></div>\");\n\t\t\t\ttwd = $(navtbl).clone().appendTo(\"#testpg2\").width();\n\t\t\t\t$(\"#testpg2\").remove();\n\t\t\t\t\n\t\t\t\tif($t.p._nvtd) {\n\t\t\t\t\tif(o.dropmenu) {\n\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\t\t\t\t\t\t\n\t\t\t\t\t} else if(twd > $t.p._nvtd[0] ) {\n\t\t\t\t\t\tif($t.p.responsive) {\n\t\t\t\t\t\t\tnavtbl = null;\n\t\t\t\t\t\t\t$($t).jqGrid('_buildNavMenu', pgid, elemids, p, pEdit, pAdd, pDel, pSearch, pView );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl).width(twd);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$t.p._nvtd[0] = twd;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(pgid+\"_\"+o.position,pgid).append(navtbl);\n\t\t\t\t\t}\n\t\t\t\t\t$t.p._nvtd[1] = twd;\n\t\t\t\t}\n\t\t\t\t$t.p.navGrid = true;\n\t\t\t}\n\t\t\tif($t.p.storeNavOptions) {\n\t\t\t\t$t.p.navOptions = o;\n\t\t\t\t$t.p.editOptions = pEdit;\n\t\t\t\t$t.p.addOptions = pAdd;\n\t\t\t\t$t.p.delOptions = pDel;\n\t\t\t\t$t.p.searchOptions = pSearch;\n\t\t\t\t$t.p.viewOptions = pView;\n\t\t\t\t$t.p.navButtons =[];\n\t\t\t}\n\n\t\t});\n\t},\n\tnavButtonAdd : function (elem, p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator;\n\t\tp = $.extend({\n\t\t\tcaption : \"newButton\",\n\t\t\ttitle: '',\n\t\t\tbuttonicon : styles.icon_newbutton_nav,\n\t\t\tonClickButton: null,\n\t\t\tposition : \"last\",\n\t\t\tcursor : 'pointer',\n\t\t\tinternal : false\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], $t = this,\n\t\t\t//getstyle = $.jgrid.getMethod(\"getStyleUI\"),\n\t\t\tdisabled = $.jgrid.styleUI[currstyle].common.disabled,\n\t\t\thover = $.jgrid.styleUI[currstyle].common.hover,\n\t\t\tcornerall = $.jgrid.styleUI[currstyle].common.cornerall,\n\t\t\ticonbase = $.jgrid.styleUI[currstyle].common.icon_base;\n\n\t\t\tif ($t.p.storeNavOptions && !p.internal) {\n\t\t\t\t$t.p.navButtons.push([elem,p]);\n\t\t\t}\n\n\t\t\tif (findnav) {\n\t\t\t\tif( p.id && $(\"#\"+$.jgrid.jqID(p.id), findnav)[0] !== undefined )  {return;}\n\t\t\t\tvar tbd = $(\"<td></td>\");\n\t\t\t\tif(p.buttonicon.toString().toUpperCase() === \"NONE\") {\n                    $(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'>\"+p.caption+\"</div>\");\n\t\t\t\t} else\t{\n\t\t\t\t\t$(tbd).addClass('ui-pg-button '+cornerall).append(\"<div class='ui-pg-div'><span class='\"+iconbase+\" \"+p.buttonicon+\"'></span>\"+p.caption+\"</div>\");\n\t\t\t\t}\n\t\t\t\tif(p.id) {$(tbd).attr(\"id\",p.id);}\n\t\t\t\tif(p.position==='first'){\n\t\t\t\t\tif(findnav.rows[0].cells.length ===0 ) {\n\t\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\",findnav).before(tbd);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\",findnav).append(tbd);\n\t\t\t\t}\n\t\t\t\t$(tbd,findnav)\n\t\t\t\t.attr(\"title\",p.title  || \"\")\n\t\t\t\t.click(function(e){\n\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);}\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t})\n\t\t\t\t.hover(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tif (findnav) {\n\t\t\t\t\tvar id = $(findnav).val(),\n\t\t\t\t\teid = p.id || $.jgrid.randId(),\n\t\t\t\t\titem = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.caption || p.title)+'</a></li>');\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === 'first') {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( item );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( item );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(item).on(\"click\", function(e){\n\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t$(\"#\"+id).hide();\n\t\t\t\t\t\t\t\tif ($.isFunction(p.onClickButton) ) {\n\t\t\t\t\t\t\t\t\tp.onClickButton.call($t,e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}).find(\"a\")\n\t\t\t\t\t\t.hover(\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tif (!$(this).hasClass(disabled)) {\n\t\t\t\t\t\t\t\t\t$(this).addClass(hover);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction () {$(this).removeClass(hover);}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tnavSeparatorAdd:function (elem,p) {\n\t\tvar\tcurrstyle = this[0].p.styleUI,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common;\n\t\tp = $.extend({\n\t\t\tsepclass : \"ui-separator\",\n\t\t\tsepcontent: '',\n\t\t\tposition : \"last\"\n\t\t}, p ||{});\n\t\treturn this.each(function() {\n\t\t\tif( !this.grid)  {return;}\n\t\t\tif( typeof elem === \"string\" && elem.indexOf(\"#\") !== 0) {elem = \"#\"+$.jgrid.jqID(elem);}\n\t\t\tvar findnav = $(\".navtable\",elem)[0], sep, id;\n\t\t\tif ( this.p.storeNavOptions ) {\n\t\t\t\tthis.p.navButtons.push([elem,p]);\n\t\t\t}\n\t\t\t\n\t\t\tif(findnav) {\n\t\t\t\tsep = \"<td class='ui-pg-button \"+ commonstyle.disabled +\"' style='width:4px;'><span class='\"+p.sepclass+\"'></span>\"+p.sepcontent+\"</td>\";\n\t\t\t\tif (p.position === 'first') {\n\t\t\t\t\tif (findnav.rows[0].cells.length === 0) {\n\t\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(\"tr td:eq(0)\", findnav).before(sep);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$(\"tr\", findnav).append(sep);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfindnav = $(\".dropdownmenu\",elem)[0];\n\t\t\t\tsep = \"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\";\n\t\t\t\tif(findnav) {\n\t\t\t\t\tid = $(findnav).val();\n\t\t\t\t\tif(id) {\n\t\t\t\t\t\tif(p.position === \"first\") {\n\t\t\t\t\t\t\t$(\"#\"+id).prepend( sep );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(\"#\"+id).append( sep );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\t_buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) {\n\t\treturn this.each(function() {\n\t\t\tvar $t = this,\n\t\t\t//actions = ['add','edit', 'del', 'view', 'search','refresh'],\n\t\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\t\tcurrstyle = $t.p.styleUI,\n\t\t\tstyles = $.jgrid.styleUI[currstyle].navigator,\n\t\t\tclasses = $.jgrid.styleUI[currstyle].filter,\n\t\t\tcommonstyle = $.jgrid.styleUI[currstyle].common,\n\t\t\tmid = \"form_menu_\"+$.jgrid.randId(),\n\t\t\tbt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions',\n\t\t\tact = \"<button class='dropdownmenu \"+commonstyle.button+\"' value='\"+mid+\"'>\" + bt +\"</button>\";\n\t\t\t$(elem+\"_\"+p.position, elem).append( act );\n\t\t\tvar alertIDs = {themodal: 'alertmod_' + this.p.id, modalhead: 'alerthd_' + this.p.id,modalcontent: 'alertcnt_' + this.p.id},\n\t\t\t_buildMenu = function() {\n\t\t\t\tvar fs =  $('.ui-jqgrid-view').css('font-size') || '11px',\n\t\t\t\teid, itm,\n\t\t\t\tstr = $('<ul id=\"'+mid+'\" class=\"ui-nav-menu modal-content\" role=\"menu\" tabindex=\"0\" style=\"display:none;font-size:'+fs+'\"></ul>');\n\t\t\t\tif( p.add ) {\n\t\t\t\t\tpAdd = pAdd || {};\n\t\t\t\t\teid = pAdd.id || \"add_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.addtext || p.addtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif ($.isFunction( p.addfunc )) {\n\t\t\t\t\t\t\t\tp.addfunc.call($t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",\"new\",pAdd);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.edit ) {\n\t\t\t\t\tpEdit = pEdit || {};\n\t\t\t\t\teid = pEdit.id || \"edit_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.edittext || p.edittitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.editfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"editGridRow\",sr,pEdit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.view ) {\n\t\t\t\t\tpView = pView || {};\n\t\t\t\t\teid = pView.id || \"view_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.viewtext || p.viewtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar sr = $t.p.selrow;\n\t\t\t\t\t\t\tif (sr) {\n\t\t\t\t\t\t\t\tif($.isFunction( p.editfunc ) ) {\n\t\t\t\t\t\t\t\t\tp.viewfunc.call($t, sr);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"viewGridRow\",sr,pView);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});\n\t\t\t\t\t\t\t\t$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif( p.del ) {\n\t\t\t\t\tpDel = pDel || {};\n\t\t\t\t\teid = pDel.id || \"del_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.deltext || p.deltitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tvar dr;\n\t\t\t\t\t\t\tif($t.p.multiselect) {\n\t\t\t\t\t\t\t\tdr = $t.p.selarrrow;\n\t\t\t\t\t\t\t\tif(dr.length===0) {dr = null;}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tdr = $t.p.selrow;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(dr){\n\t\t\t\t\t\t\t\tif($.isFunction( p.delfunc )){\n\t\t\t\t\t\t\t\t\tp.delfunc.call($t, dr);\n\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"delGridRow\",dr,pDel);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else  {\n\t\t\t\t\t\t\t\t$.jgrid.viewModal(\"#\"+alertIDs.themodal,{gbox:\"#gbox_\"+$.jgrid.jqID($t.p.id),jqm:true});$(\"#jqg_alrt\").focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\tif(p.add || p.edit || p.del || p.view) {\n\t\t\t\t\t$(str).append(\"<li class='ui-menu-item \" +commonstyle.disabled + \"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>\");\n\t\t\t\t}\n\t\t\t\tif( p.search ) {\n\t\t\t\t\tpSearch = pSearch || {};\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.searchtext || p.searchtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction( p.searchfunc )) {\n\t\t\t\t\t\t\t\tp.searchfunc.call($t, pSearch);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"searchGrid\",pSearch);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t\tif (pSearch.showOnLoad && pSearch.showOnLoad === true) {\n\t\t\t\t\t\t$( itm ).click();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( p.refresh ) {\n\t\t\t\t\teid = pSearch.id || \"search_\"+elemids;\n\t\t\t\t\titm = $('<li class=\"ui-menu-item\" role=\"presentation\"><a class=\"'+ commonstyle.cornerall+' g-menu-item\" tabindex=\"0\" role=\"menuitem\" id=\"'+eid+'\">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){\n\t\t\t\t\t\tif (!$(this).hasClass( commonstyle.disabled )) {\n\t\t\t\t\t\t\tif($.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);}\n\t\t\t\t\t\t\t$t.p.search = false;\n\t\t\t\t\t\t\t$t.p.resetsearch =  true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif( p.refreshstate !== 'currentfilter') {\n\t\t\t\t\t\t\t\t\tvar gID = $t.p.id;\n\t\t\t\t\t\t\t\t\t$t.p.postData.filters =\"\";\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$(\"#fbox_\"+$.jgrid.jqID(gID)).jqFilter('resetFilter');\n\t\t\t\t\t\t\t\t\t} catch(ef) {}\n\t\t\t\t\t\t\t\t\tif($.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t\tswitch (p.refreshstate) {\n\t\t\t\t\t\t\t\tcase 'firstpage':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{page:1}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'current':\n\t\t\t\t\t\t\t\tcase 'currentfilter':\n\t\t\t\t\t\t\t\t\t$($t).trigger(\"reloadGrid\", [{current:true}]);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif($.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);}\n\t\t\t\t\t\t\t$(str).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t\t$(str).append(itm);\n\t\t\t\t}\n\t\t\t\t$(str).hide();\n\t\t\t\t$('body').append(str);\n\t\t\t\t$(\"#\"+mid).addClass(\"ui-menu \" + classes.menu_widget);\n\t\t\t\t$(\"#\"+mid+\" > li > a\").hover(\n\t\t\t\t\tfunction(){ $(this).addClass(commonstyle.hover); },\n\t\t\t\t\tfunction(){ $(this).removeClass(commonstyle.hover); }\n\t\t\t\t);\n\t\t\t};\n\t\t\t_buildMenu();\n\t\t\t$(\".dropdownmenu\", elem+\"_\"+p.position).on(\"click\", function( e ){\n\t\t\t\tvar offset = $(this).offset(),\n\t\t\t\tleft = ( offset.left ),\n\t\t\t\ttop = parseInt( offset.top),\n\t\t\t\tbid =$(this).val();\n\t\t\t\t//if( $(\"#\"+mid)[0] === undefined)  {\n\t\t\t\t\t//_buildMenu();\n\t\t\t\t//}\n\t\t\t\t$(\"#\"+bid).show().css({\"top\":top - ($(\"#\"+bid).height() +10)+\"px\", \"left\":left+\"px\"});\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\t\t\t$(\"body\").on('click', function(e){\n\t\t\t\tif(!$(e.target).hasClass(\"dropdownmenu\")) {\n\t\t\t\t\t$(\"#\"+mid).hide();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\tGridToForm : function( rowid, formid ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, i;\n\t\t\tif (!$t.grid) {return;}\n\t\t\tvar rowdata = $($t).jqGrid(\"getRowData\",rowid);\n\t\t\tif (rowdata) {\n\t\t\t\tfor(i in rowdata) {\n\t\t\t\t\tif(rowdata.hasOwnProperty(i)) {\n\t\t\t\t\tif ( $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:radio\") || $(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).is(\"input:checkbox\"))  {\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).each( function() {\n\t\t\t\t\t\t\tif( $(this).val() == rowdata[i] ) {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\",true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$(this)[$t.p.useProp ? 'prop': 'attr'](\"checked\", false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t// this is very slow on big table and form.\n\t\t\t\t\t\t$(\"[name=\"+$.jgrid.jqID(i)+\"]\",formid).val(rowdata[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tFormToGrid : function(rowid, formid, mode, position){\n\t\treturn this.each(function() {\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) {return;}\n\t\t\tif(!mode) {mode = 'set';}\n\t\t\tif(!position) {position = 'first';}\n\t\t\tvar fields = $(formid).serializeArray();\n\t\t\tvar griddata = {};\n\t\t\t$.each(fields, function(i, field){\n\t\t\t\tgriddata[field.name] = field.value;\n\t\t\t});\n\t\t\tif(mode==='add') {$($t).jqGrid(\"addRowData\",rowid,griddata, position);}\n\t\t\telse if(mode==='set') {$($t).jqGrid(\"setRowData\",rowid,griddata);}\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid.extend({\n\tgroupingSetup : function () {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView,\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping;\n\t\t\tif(grp !== null && ( (typeof grp === 'object') || $.isFunction(grp) ) ) {\n\t\t\t\tif(!grp.plusicon) { grp.plusicon = classes.icon_plus;}\n\t\t\t\tif(!grp.minusicon) { grp.minusicon = classes.icon_minus;}\n\t\t\t\tif(!grp.groupField.length) {\n\t\t\t\t\t$t.p.grouping = false;\n\t\t\t\t} else {\n\t\t\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tgrp.lastvalues=[];\n\t\t\t\t\tif(!grp._locgr) {\n\t\t\t\t\t\tgrp.groups =[];\n\t\t\t\t\t}\n\t\t\t\t\tgrp.counters =[];\n\t\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\t\t\tif(!grp.groupOrder[i]) {\n\t\t\t\t\t\t\tgrp.groupOrder[i] = 'asc';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!grp.groupText[i]) {\n\t\t\t\t\t\t\tgrp.groupText[i] = '{0}';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupColumnShow[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupColumnShow[i] = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( typeof grp.groupSummary[i] !== 'boolean') {\n\t\t\t\t\t\t\tgrp.groupSummary[i] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( !grp.groupSummaryPos[i]) {\n\t\t\t\t\t\t\tgrp.groupSummaryPos[i] = 'footer';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(grp.groupColumnShow[i] === true) {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = true;\n\t\t\t\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id+\"_\"+grp.groupField[i])).is(\":visible\");\n\t\t\t\t\t\t\t$($t).jqGrid('hideCol',grp.groupField[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tgrp.summary =[];\n\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\tif($.isArray(grp.formatDisplayField) && !$.isFunction(grp.formatDisplayField[0] ) ) {\n\t\t\t\t\t\t\tgrp.formatDisplayField[0] = function (v) { return v;};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(j=0, cml = cm.length; j < cml; j++) {\n\t\t\t\t\t\tif(grp.hideFirstGroupCol) {\n\t\t\t\t\t\t\tif(!cm[j].hidden && grp.groupField[0] === cm[j].name) {\n\t\t\t\t\t\t\t\tcm[j].formatter = function(){return '';};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cm[j].summaryType ) {\n\t\t\t\t\t\t\tif(cm[j].summaryDivider) {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$t.p.grouping = false;\n\t\t\t}\n\t\t});\n\t},\n\tgroupingPrepare : function ( record, irow ) {\n\t\tthis.each(function(){\n\t\t\tvar grp = this.p.groupingView, $t= this, i,\n\t\t\tsumGroups = function() {\n\t\t\t\tif ($.isFunction(this.st)) {\n\t\t\t\t\tthis.v = this.st.call($t, this.v, this.nm, record);\n\t\t\t\t} else {\n\t\t\t\t\tthis.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record);\n\t\t\t\t\tif(this.st.toLowerCase() === 'avg' && this.sd) {\n\t\t\t\t\t\tthis.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tgrlen = grp.groupField.length, \n\t\t\tfieldName,\n\t\t\tv,\n\t\t\tdisplayName,\n\t\t\tdisplayValue,\n\t\t\tchanged = 0;\n\t\t\tfor(i=0;i<grlen;i++) {\n\t\t\t\tfieldName = grp.groupField[i];\n\t\t\t\tdisplayName = grp.displayField[i];\n\t\t\t\tv = record[fieldName];\n\t\t\t\tdisplayValue = displayName == null ? null : record[displayName];\n\n\t\t\t\tif( displayValue == null ) {\n\t\t\t\t\tdisplayValue = v;\n\t\t\t\t}\n\t\t\t\tif( v !== undefined ) {\n\t\t\t\t\tif(irow === 0 ) {\n\t\t\t\t\t\t// First record always starts a new group\n\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (typeof v !== \"object\" && ($.isArray(grp.isInTheSameGroup) && $.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) {\n\t\t\t\t\t\t\t// This record is not in same group as previous one\n\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\tchanged = 1;\n\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (changed === 1) {\n\t\t\t\t\t\t\t\t// This group has changed because an earlier group changed.\n\t\t\t\t\t\t\t\tgrp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );\n\t\t\t\t\t\t\t\tgrp.lastvalues[i] = v;\n\t\t\t\t\t\t\t\tgrp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tgrp.counters[i].cnt += 1;\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt;\n\t\t\t\t\t\t\t\t$.each(grp.counters[i].summary, sumGroups);\n\t\t\t\t\t\t\t\tgrp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t//gdata.push( rData );\n\t\t});\n\t\treturn this;\n\t},\n\tgroupingToggle : function(hid){\n\t\tthis.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstrpos = hid.split('_'),\n\t\t\tnum = parseInt(strpos[strpos.length-2], 10);\n\t\t\tstrpos.splice(strpos.length-2,2);\n\t\t\tvar uid = strpos.join(\"_\"),\n\t\t\tminus = grp.minusicon,\n\t\t\tplus = grp.plusicon,\n\t\t\ttar = $(\"#\"+$.jgrid.jqID(hid)),\n\t\t\tr = tar.length ? tar[0].nextSibling : null,\n\t\t\ttarspan = $(\"#\"+$.jgrid.jqID(hid)+\" span.\"+\"tree-wrap-\"+$t.p.direction),\n\t\t\tgetGroupingLevelFromClass = function (className) {\n\t\t\t\tvar nums = $.map(className.split(\" \"), function (item) {\n\t\t\t\t\tif (item.substring(0, uid.length + 1) === uid + \"_\") {\n\t\t\t\t\t\treturn parseInt(item.substring(uid.length + 1), 10);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn nums.length > 0 ? nums[0] : undefined;\n\t\t\t},\n\t\t\titemGroupingLevel,\n\t\t\tshowData,\n\t\t\tcollapsed = false,\n\t\t\tskip = false,\n\t\t\tfrz = $t.p.frozenColumns ? $t.p.id+\"_frozen\" : false,\n\t\t\ttar2 = frz ? $(\"#\"+$.jgrid.jqID(hid), \"#\"+$.jgrid.jqID(frz) ) : false,\n\t\t\tr2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null;\n\t\t\tif( tarspan.hasClass(minus) ) {\n\t\t\t\tif(r){\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined && itemGroupingLevel <= num) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(r).hide();\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t$(r2).hide();\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(minus).addClass(plus);\n\t\t\t\tcollapsed = true;\n\t\t\t} else {\n\t\t\t\tif(r){\n\t\t\t\t\tshowData = undefined;\n\t\t\t\t\twhile(r) {\n\t\t\t\t\t\titemGroupingLevel = getGroupingLevelFromClass(r.className);\n\t\t\t\t\t\tif (showData === undefined) {\n\t\t\t\t\t\t\tshowData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows\n\t\t\t\t\t\t}\n\t\t\t\t\t\tskip = $(r).hasClass(\"ui-subgrid\") && $(r).hasClass(\"ui-sg-collapsed\");\n\t\t\t\t\t\tif (itemGroupingLevel !== undefined) {\n\t\t\t\t\t\t\tif (itemGroupingLevel <= num) {\n\t\t\t\t\t\t\t\tbreak;// next item of the same lever are found\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (itemGroupingLevel === num + 1) {\n\t\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t\t$(r).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t\t$(r2).show().find(\">td>span.\"+\"tree-wrap-\"+$t.p.direction).removeClass(minus).addClass(plus);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (showData) {\n\t\t\t\t\t\t\tif(!skip) {\n\t\t\t\t\t\t\t\t$(r).show();\n\t\t\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\t\t\t$(r2).show();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tr = r.nextSibling;\n\t\t\t\t\t\tif(frz) {\n\t\t\t\t\t\t\tr2 = r2.nextSibling;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttarspan.removeClass(plus).addClass(minus);\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridGroupingClickGroup\", [hid , collapsed]);\n\t\t\tif( $.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); }\n\n\t\t});\n\t\treturn false;\n\t},\n\tgroupingRender : function (grdata, colspans, page, rn ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this,\n\t\t\tgrp = $t.p.groupingView,\n\t\t\tstr = \"\", icon = \"\", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length,\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;\n\n\t\t\tpmrtl = pmrtl+\" tree-wrap-\"+$t.p.direction; \n\t\t\t$.each($t.p.colModel, function (i,n){\n\t\t\t\tvar ii;\n\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar toEnd = 0;\n\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\tvar ret = false, i;\n\t\t\t\tif(offset===0) {\n\t\t\t\t\tret = grp[ind];\n\t\t\t\t} else {\n\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t}  else {\n\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tvv, grlen = fdata.cnt, str=\"\", k;\n\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\tvar tmpdata = \"<td \"+$t.formatCol(k,1,'')+\">&#160;</td>\",\n\t\t\t\t\ttplfld = \"{0}\";\n\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmpdata= \"<td \"+$t.formatCol(k,1,'')+\">\"+$.jgrid.template(tplfld,vv)+ \"</td>\";\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tstr += tmpdata;\n\t\t\t\t}\n\t\t\t\treturn str;\n\t\t\t}\n\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), mul;\n\t\t\tsumreverse.reverse();\n\t\t\tmul = $t.p.multiselect ? \" colspan=\\\"2\\\"\" : \"\";\n\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\tif(grp._locgr) {\n\t\t\t\t\tif( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttoEnd++;\n\t\t\t\tclid = $t.p.id+\"ghead_\"+n.idx;\n\t\t\t\thid = clid+\"_\"+i;\n\t\t\t\ticon = \"<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='\" + common.icon_base +\" \"+pmrtl+\"' onclick=\\\"jQuery('#\"+$.jgrid.jqID($t.p.id)+\"').jqGrid('groupingToggle','\"+hid+\"');return false;\\\"></span>\";\n\t\t\t\ttry {\n\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t}\n\t\t\t\t} catch (egv) {\n\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t}\n\t\t\t\tvar grpTextStr = ''; \n\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t} else {\n\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t}\n\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t}\n\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\"\" + mul +\">\" + icon+grpTextStr + \"</td>\";\n\t\t\t\t\tstr += buildSummaryTd(i, 0, grp.groups, grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2) );\n\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t} else {\n\t\t\t\t\tstr += \"<tr id=\\\"\"+hid+\"\\\"\" +(grp.groupCollapse && n.idx>0 ? \" style=\\\"display:none;\\\" \" : \" \") + \"role=\\\"row\\\" class= \\\"\" + common.content + \" jqgroup ui-row-\"+$t.p.direction+\" \"+clid+\"\\\"><td style=\\\"padding-left:\"+(n.idx * 12) + \"px;\"+\"\\\" colspan=\\\"\"+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+\"\\\">\" + icon + grpTextStr + \"</td></tr>\";\n\t\t\t\t}\n\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\tif( leaf ) {\n\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\tif(grp._locgr) {\n\t\t\t\t\t\toffset = (page-1)*rn;\n\t\t\t\t\t\tif(offset > n.startRow) {\n\t\t\t\t\t\t\tsgr = offset;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\tstr += grdata[kk - offset].join('');\n\t\t\t\t\t}\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\tvar hhdr = \"\";\n\t\t\t\t\t\t\tif(grp.groupCollapse && !grp.showSummaryOnHide) {\n\t\t\t\t\t\t\t\thhdr = \" style=\\\"display:none;\\\"\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += \"<tr\"+hhdr+\" jqfootlevel=\\\"\"+(n.idx-ik)+\"\\\" role=\\\"row\\\" class=\\\"\" + common.content + \" jqfoot ui-row-\"+$t.p.direction+\"\\\">\";\n\t\t\t\t\t\t\tstr += buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\tstr += \"</tr>\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").append(str);\n\t\t\t// free up memory\n\t\t\tstr = null;\n\t\t});\n\t},\n\tgroupingGroupBy : function (name, options ) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(typeof name === \"string\") {\n\t\t\t\tname = [name];\n\t\t\t}\n\t\t\tvar grp = $t.p.groupingView;\n\t\t\t$t.p.grouping = true;\n\t\t\tgrp._locgr = false;\n\t\t\t//Set default, in case visibilityOnNextGrouping is undefined \n\t\t\tif (grp.visibiltyOnNextGrouping === undefined) {\n\t\t\t\tgrp.visibiltyOnNextGrouping = [];\n\t\t\t}\n\t\t\tvar i;\n\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t$($t).jqGrid('showCol',grp.groupField[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// set visibility status of current group columns on next grouping\n\t\t\tfor(i=0;i<name.length;i++) {\n\t\t\t\tgrp.visibiltyOnNextGrouping[i] = $(\"#\"+$.jgrid.jqID($t.p.id)+\"_\"+$.jgrid.jqID(name[i])).is(\":visible\");\n\t\t\t}\n\t\t\t$t.p.groupingView = $.extend($t.p.groupingView, options || {});\n\t\t\tgrp.groupField = name;\n\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t});\n\t},\n\tgroupingRemove : function (current) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(current === undefined) {\n\t\t\t\tcurrent = true;\n\t\t\t}\n\t\t\t$t.p.grouping = false;\n\t\t\tif(current===true) {\n\t\t\t\tvar grp = $t.p.groupingView, i;\n\t\t\t\t// show previous hidden groups if they are hidden and weren't removed yet\n\t\t\t\tfor(i=0;i<grp.groupField.length;i++) {\n\t\t\t\tif (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {\n\t\t\t\t\t\t$($t).jqGrid('showCol', grp.groupField);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$(\"tr.jqgroup, tr.jqfoot\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").remove();\n\t\t\t\t$(\"tr.jqgrow:hidden\",\"#\"+$.jgrid.jqID($t.p.id)+\" tbody:first\").show();\n\t\t\t} else {\n\t\t\t\t$($t).trigger(\"reloadGrid\");\n\t\t\t}\n\t\t});\n\t},\n\tgroupingCalculations : {\n\t\thandler: function(fn, v, field, round, roundType, rc) {\n\t\t\tvar funcs = {\n\t\t\t\tsum: function() {\n\t\t\t\t\treturn parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmin: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tmax: function() {\n\t\t\t\t\tif(v===\"\") {\n\t\t\t\t\t\treturn parseFloat(rc[field]||0);\n\t\t\t\t\t}\n\t\t\t\t\treturn Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t},\n\n\t\t\t\tcount: function() {\n\t\t\t\t\tif(v===\"\") {v=0;}\n\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\treturn v+1;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t},\n\n\t\t\t\tavg: function() {\n\t\t\t\t\t// the same as sum, but at end we divide it\n\t\t\t\t\t// so use sum instead of duplicating the code (?)\n\t\t\t\t\treturn funcs.sum();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif(!funcs[fn]) {\n\t\t\t\tthrow (\"jqGrid Grouping No such method: \" + fn);\n\t\t\t}\n\t\t\tvar res = funcs[fn]();\n\n\t\t\tif (round != null) {\n\t\t\t\tif (roundType === 'fixed') {\n\t\t\t\t\tres = res.toFixed(round);\n\t\t\t\t} else {\n\t\t\t\t\tvar mul = Math.pow(10, round);\n\t\t\t\t\tres = Math.round(res * mul) / mul;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res;\n\t\t}\t\n\t},\n\tsetGroupHeaders : function ( o ) {\n\t\to = $.extend({\n\t\t\tuseColSpanStyle :  false,\n\t\t\tgroupHeaders: []\n\t\t},o  || {});\n\t\treturn this.each(function(){\n\t\t\tvar ts = this,\n\t\t\ti, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle,\n\t\t\tiCol,\n\t\t\tcghi,\n\t\t\t//startColumnName,\n\t\t\tnumberOfColumns,\n\t\t\ttitleText,\n\t\t\tcVisibleColumns,\n\t\t\tclassName,\n\t\t\tcolModel = ts.p.colModel,\n\t\t\tcml = colModel.length,\n\t\t\tths = ts.grid.headers,\n\t\t\t$htable = $(\"table.ui-jqgrid-htable\", ts.grid.hDiv),\n\t\t\t$trLabels = $htable.children(\"thead\").children(\"tr.ui-jqgrid-labels:last\").addClass(\"jqg-second-row-header\"),\n\t\t\t$thead = $htable.children(\"thead\"),\n\t\t\t$theadInTable,\n\t\t\t$firstHeaderRow = $htable.find(\".jqg-first-row-header\"),\n\t\t\t//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],\n\t\t\tbase = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;\n\t\t\tif(!ts.p.groupHeader) {\n\t\t\t\tts.p.groupHeader = [];\n\t\t\t}\n\t\t\tts.p.groupHeader.push(o);\n\t\t\tif($firstHeaderRow[0] === undefined) {\n\t\t\t\t$firstHeaderRow = $('<tr>', {role: \"row\", \"aria-hidden\": \"true\"}).addClass(\"jqg-first-row-header\").css(\"height\", \"auto\");\n\t\t\t} else {\n\t\t\t\t$firstHeaderRow.empty();\n\t\t\t}\n\t\t\tvar $firstRow,\n\t\t\tinColumnHeader = function (text, columnHeaders) {\n\t\t\t\tvar length = columnHeaders.length, i;\n\t\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\t\tif (columnHeaders[i].startColumnName === text) {\n\t\t\t\t\t\treturn i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn -1;\n\t\t\t};\n\n\t\t\t$(ts).prepend($thead);\n\t\t\t$tr = $('<tr>', {role: \"row\"}).addClass(\"ui-jqgrid-labels jqg-third-row-header\");\n\t\t\tfor (i = 0; i < cml; i++) {\n\t\t\t\tth = ths[i].el;\n\t\t\t\t$th = $(th);\n\t\t\t\tcmi = colModel[i];\n\t\t\t\t// build the next cell for the first header row\n\t\t\t\tthStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};\n\t\t\t\t$(\"<th>\", {role: 'gridcell'}).css(thStyle).addClass(\"ui-first-th-\"+ts.p.direction).appendTo($firstHeaderRow);\n\n\t\t\t\tth.style.width = \"\"; // remove unneeded style\n\t\t\t\tiCol = inColumnHeader(cmi.name, o.groupHeaders);\n\t\t\t\tif (iCol >= 0) {\n\t\t\t\t\tcghi = o.groupHeaders[iCol];\n\t\t\t\t\tnumberOfColumns = cghi.numberOfColumns;\n\t\t\t\t\ttitleText = cghi.titleText;\n\t\t\t\t\tclassName = cghi.className || \"\";\n\t\t\t\t\t// caclulate the number of visible columns from the next numberOfColumns columns\n\t\t\t\t\tfor (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {\n\t\t\t\t\t\tif (!colModel[i + iCol].hidden) {\n\t\t\t\t\t\t\tcVisibleColumns++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// The next numberOfColumns headers will be moved in the next row\n\t\t\t\t\t// in the current row will be placed the new column header with the titleText.\n\t\t\t\t\t// The text will be over the cVisibleColumns columns\n\t\t\t\t\t$colHeader = $('<th>').attr({role: \"columnheader\"})\n\t\t\t\t\t\t.addClass(base.headerBox+ \" ui-th-column-header ui-th-\"+ts.p.direction+\" \"+className)\n\t\t\t\t\t\t//.css({'height':'22px', 'border-top': '0 none'})\n\t\t\t\t\t\t.html(titleText);\n\t\t\t\t\tif(cVisibleColumns > 0) {\n\t\t\t\t\t\t$colHeader.attr(\"colspan\", String(cVisibleColumns));\n\t\t\t\t\t}\n\t\t\t\t\tif (ts.p.headertitles) {\n\t\t\t\t\t\t$colHeader.attr(\"title\", $colHeader.text());\n\t\t\t\t\t}\n\t\t\t\t\t// hide if not a visible cols\n\t\t\t\t\tif( cVisibleColumns === 0) {\n\t\t\t\t\t\t$colHeader.hide();\n\t\t\t\t\t}\n\n\t\t\t\t\t$th.before($colHeader); // insert new column header before the current\n\t\t\t\t\t$tr.append(th);         // move the current header in the next row\n\n\t\t\t\t\t// set the coumter of headers which will be moved in the next row\n\t\t\t\t\tskip = numberOfColumns - 1;\n\t\t\t\t} else {\n\t\t\t\t\tif (skip === 0) {\n\t\t\t\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t\t\t\t// expand the header height to two rows\n\t\t\t\t\t\t\t$th.attr(\"rowspan\", \"2\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$('<th>', {role: \"columnheader\"})\n\t\t\t\t\t\t\t\t.addClass(base.headerBox+\" ui-th-column-header ui-th-\"+ts.p.direction)\n\t\t\t\t\t\t\t\t.css({\"display\": cmi.hidden ? 'none' : ''})\n\t\t\t\t\t\t\t\t.insertBefore($th);\n\t\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// move the header to the next row\n\t\t\t\t\t\t//$th.css({\"padding-top\": \"2px\", height: \"19px\"});\n\t\t\t\t\t\t$tr.append(th);\n\t\t\t\t\t\tskip--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$theadInTable = $(ts).children(\"thead\");\n\t\t\t$theadInTable.prepend($firstHeaderRow);\n\t\t\t$tr.insertAfter($trLabels);\n\t\t\t$htable.append($theadInTable);\n\n\t\t\tif (o.useColSpanStyle) {\n\t\t\t\t// Increase the height of resizing span of visible headers\n\t\t\t\t$htable.find(\"span.ui-jqgrid-resize\").each(function () {\n\t\t\t\t\tvar $parent = $(this).parent();\n\t\t\t\t\tif ($parent.is(\":visible\")) {\n\t\t\t\t\t\tthis.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Set position of the sortable div (the main lable)\n\t\t\t\t// with the column header text to the middle of the cell.\n\t\t\t\t// One should not do this for hidden headers.\n\t\t\t\t$htable.find(\"div.ui-jqgrid-sortable\").each(function () {\n\t\t\t\t\tvar $ts = $(this), $parent = $ts.parent();\n\t\t\t\t\tif ($parent.is(\":visible\") && $parent.is(\":has(span.ui-jqgrid-resize)\")) {\n\t\t\t\t\t\t// minus 4px from the margins of the resize markers\n\t\t\t\t\t\t$ts.css('top', ($parent.height() - $ts.outerHeight()) / 2  - 4 +  'px');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$firstRow = $theadInTable.find(\"tr.jqg-first-row-header\");\n\t\t\t$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {\n\t\t\t\t$firstRow.find('th').eq(idx)[0].style.width = nw + \"px\";\n\t\t\t});\n\t\t});\t\t\t\t\n\t},\n\tdestroyGroupHeader : function(nullHeader) {\n\t\tif(nullHeader === undefined) {\n\t\t\tnullHeader = true;\n\t\t}\n\t\treturn this.each(function()\n\t\t{\n\t\t\tvar $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,\n\t\t\tthead = $(\"table.ui-jqgrid-htable thead\", grid.hDiv), cm = $t.p.colModel, hc;\n\t\t\tif(!grid) { return; }\n\n\t\t\t$(this).off('.setGroupHeaders');\n\t\t\t$tr = $(\"<tr>\", {role: \"row\"}).addClass(\"ui-jqgrid-labels\");\n\t\t\theaders = grid.headers;\n\t\t\tfor (i = 0, l = headers.length; i < l; i++) {\n\t\t\t\thc = cm[i].hidden ? \"none\" : \"\";\n\t\t\t\t$th = $(headers[i].el)\n\t\t\t\t\t.width(headers[i].width)\n\t\t\t\t\t.css('display',hc);\n\t\t\t\ttry {\n\t\t\t\t\t$th.removeAttr(\"rowSpan\");\n\t\t\t\t} catch (rs) {\n\t\t\t\t\t//IE 6/7\n\t\t\t\t\t$th.attr(\"rowSpan\",1);\n\t\t\t\t}\n\t\t\t\t$tr.append($th);\n\t\t\t\t$resizing = $th.children(\"span.ui-jqgrid-resize\");\n\t\t\t\tif ($resizing.length>0) {// resizable column\n\t\t\t\t\t$resizing[0].style.height = \"\";\n\t\t\t\t}\n\t\t\t\t$th.children(\"div\")[0].style.top = \"\";\n\t\t\t}\n\t\t\t$(thead).children('tr.ui-jqgrid-labels').remove();\n\t\t\t$(thead).prepend($tr);\n\n\t\t\tif(nullHeader === true) {\n\t\t\t\t$($t).jqGrid('setGridParam',{ 'groupHeader': null});\n\t\t\t}\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid = $.jgrid || {};\n$.extend($.jgrid,{\n\tsaveState : function ( jqGridId, o ) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\", // localStorage or sessionStorage\n\t\t\tbeforeSetItem : null,\n\t\t\tcompression: false,\n\t\t\tcompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tcompressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16\n\t\t\tdebug : false\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar gridstate = \"\", data = \"\", ret, $t = $(\"#\"+jqGridId)[0], tmp;\n\t\t// to use navigator set storeNavOptions to true in grid options\n\t\tif(!$t.grid) { return;}\n\t\ttmp = $($t).data('inlineNav');\n\t\tif(tmp && $t.p.inlineNav) {\n\t\t\t$($t).jqGrid('setGridParam',{_iN: tmp});\n\t\t}\n\t\ttmp = $($t).data('filterToolbar');\n\t\tif(tmp && $t.p.filterToolbar) {\n\t\t\t$($t).jqGrid('setGridParam',{_fT: tmp});\n\t\t}\n\t\tgridstate  =  $($t).jqGrid('jqGridExport', { exptype : \"jsonstring\", ident:\"\", root:\"\" });\n\t\tdata = $($t.grid.bDiv).find(\".ui-jqgrid-btable tbody:first\").html();\n\t\tvar firstrow  = data.indexOf(\"</tr>\");\n\t\tdata = data.slice(firstrow + 5);\n\t\tif($.isFunction(o.beforeSetItem)) {\n\t\t\tret = o.beforeSetItem.call($t, gridstate);\n\t\t\tif(ret != null) {\n\t\t\t\tgridstate = ret;\n\t\t\t}\n\t\t}\n\t\tif(o.debug) {\n\t\t\t$(\"#gbox_tree\").prepend('<a id=\"link_save\" target=\"_blank\" download=\"jqGrid_dump.txt\">Click to save Dump Data</a>');\n\t\t\tvar temp = [], file, properties = {}, url;\n\t\t\ttemp.push(\"Grid Options\\n\");\n\t\t\ttemp.push(gridstate);\n\t\t\ttemp.push(\"\\n\");\n\t\t\ttemp.push(\"GridData\\n\");\n\t\t\ttemp.push(data);\n\t\t\tproperties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type.\n\t\t\ttry {\n\t\t\t\tfile = new File(temp, \"jqGrid_dump.txt\", properties);\n\t\t\t} catch (e) {\n\t\t\t\tfile = new Blob(temp, properties);\n\t\t\t}\n\t\t\turl = URL.createObjectURL(file);\n\t\t\t$(\"#link_save\").attr(\"href\",url).on('click',function(){\n\t\t\t\t$(this).remove();\n\t\t\t});\n\t\t}\t\t\n\t\tif(o.compression) {\n\t\t\tif(o.compressionModule) {\n\t\t\t\ttry { \n\t\t\t\t\tret = window[o.compressionModule][o.compressionMethod](gridstate);\n\t\t\t\t\tif(ret != null) {\n\t\t\t\t\t\tgridstate = ret;\n\t\t\t\t\t\tdata = window[o.compressionModule][o.compressionMethod](data);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// can not execute a compression.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(o.useStorage && $.jgrid.isLocalStorage()) {\n\t\t\ttry {\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id, gridstate);\n\t\t\t\twindow[o.storageType].setItem(\"jqGrid\"+$t.p.id+\"_data\", data);\n\t\t\t} catch (e) {\n\t\t\t\tif(e.code === 22) { // chrome is 21\n\t\t\t\t\t// just for now. we should make some additionla changes and eventually clear some local items\n\t\t\t\t\talert(\"Local storage limit is over!\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn gridstate;\n\t},\n\tloadState : function (jqGridId, gridstring, o) {\n\t\to = $.extend({\n\t\t\tuseStorage : true,\n\t\t\tstorageType : \"localStorage\",\n\t\t\tclearAfterLoad: false,  // clears the jqGrid localStorage items aftre load\n\t\t\tbeforeSetGrid : null,\n\t\t\tafterSetGrid : null,\n\t\t\tdecompression: false,\n\t\t\tdecompressionModule :  'LZString', // object by example gzip, LZString\n\t\t\tdecompressionMethod : 'decompressFromUTF16' // string by example unzip, decompressFromUTF16\n\t\t}, o || {});\n\t\tif(!jqGridId) { return; }\n\t\tvar ret, tmp, $t = $(\"#\"+jqGridId)[0], data, iN, fT;\n\t\tif(o.useStorage) {\n\t\t\ttry {\n\t\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+$t.id);\n\t\t\t\tdata = window[o.storageType].getItem(\"jqGrid\"+$t.id+\"_data\");\n\t\t\t} catch (e) {\n\t\t\t\t// can not get data\n\t\t\t}\n\t\t}\n\t\tif(!gridstring) { return; }\n\t\tif(o.decompression) {\n\t\t\tif(o.decompressionModule) {\n\t\t\ttry {\n\t\t\t\t\tret = window[o.decompressionModule][o.decompressionMethod]( gridstring );\n\t\t\t\t\tif(ret != null ) {\n\t\t\t\t\t\tgridstring = ret;\n\t\t\t\t\t\tdata = window[o.decompressionModule][o.decompressionMethod]( data );\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// decompression can not be done\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tret = jqGridUtils.parse( gridstring );\n\t\tif( ret && $.type(ret) === 'object') {\n\t\t\tif($t.grid) { \n\t\t\t\t$.jgrid.gridUnload( jqGridId ); \n\t\t\t}\n\t\t\tif($.isFunction(o.beforeSetGrid)) {\n\t\t\t\ttmp = o.beforeSetGrid( ret );\n\t\t\t\tif(tmp && $.type(tmp) === 'object') {\n\t\t\t\t\tret = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// some preparings\n\t\t\tvar retfunc = function( param ) { var p; p = param; return p;},\n\t\t\tprm = {\n\t\t\t\t\"reccount\" : ret.reccount,\n\t\t\t\t\"records\" : ret.records,\n\t\t\t\t\"lastpage\" : ret.lastpage,\n\t\t\t\t\"shrinkToFit\" : retfunc( ret.shrinkToFit),\n\t\t\t\t\"data\": retfunc(ret.data),\n\t\t\t\t\"datatype\" : retfunc(ret.datatype),\n\t\t\t\t\"grouping\" : retfunc(ret.grouping)\n\t\t\t};\n\t\t\tret.shrinkToFit = false;\n\t\t\tret.data = [];\n\t\t\tret.datatype = 'local';\n\t\t\tret.grouping = false;\n\t\t\t//ret.navGrid = false;\n\n\t\t\tif(ret.inlineNav) {\n\t\t\t\tiN = retfunc( ret._iN );\n\t\t\t\tret._iN = null; delete ret._iN; \n\t\t\t}\n\t\t\tif(ret.filterToolbar) {\n\t\t\t\tfT = retfunc( ret._fT );\n\t\t\t\tret._fT = null; delete ret._fT; \n\t\t\t}\n\t\t\tvar grid = $(\"#\"+jqGridId).jqGrid( ret );\n\t\t\tgrid.append( data );\n\t\t\tgrid.jqGrid( 'setGridParam', prm);\n\t\t\tif(ret.storeNavOptions && ret.navGrid) {\n\t\t\t\t// set to false so that nav grid can be run\n\t\t\t\tgrid[0].p.navGrid = false;\n\t\t\t\tgrid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions);\n\t\t\t\tif(ret.navButtons && ret.navButtons.length) {\n\t\t\t\t\tfor(var b = 0; b < ret.navButtons.length; b++) {\n\t\t\t\t\t\tif( 'sepclass'  in ret.navButtons[b][1]) {\n\t\t\t\t\t\t\tgrid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgrid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// refresh index \n\t\t\tgrid[0].refreshIndex();\n\t\t\t// subgrid\n\t\t\tif(ret.subGrid) {\n\t\t\t\tvar ms = ret.multiselect === 1 ? 1 : 0,\n\t\t\t\t\trn = ret.rownumbers === true ? 1 :0;\n\t\t\t\tgrid.jqGrid('addSubGrid', ms + rn);\n\t\t\t}\n\t\t\t// treegrid\n\t\t\tif(ret.treeGrid) {\n\t\t\t\tvar i = 1, len = grid[0].rows.length,\n\t\t\t\texpCol = ret.expColInd,\n\t\t\t\tisLeaf = ret.treeReader.leaf_field,\n\t\t\t\texpanded = ret.treeReader.expanded_field;\n\t\t\t\t// optimization of code needed here\n\t\t\t\twhile(i<len) {\n\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\",grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\tif(ret.ExpandColClick === true) {\n\t\t\t\t\t\t$(grid[0].rows[i].cells[expCol])\n\t\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\t\tind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\t\tpos = grid[0].p._index[ind2];\n\t\t\t\t\t\t\t\tif(!grid[0].p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\t\tif(grid[0].p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"collapseNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandRow\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t\tgrid.jqGrid(\"expandNode\", grid[0].p.data[pos]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgrid.jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// multiselect\n\t\t\tif(ret.multiselect) {\n\t\t\t\t$.each(ret.selarrrow, function(){\n\t\t\t\t\t$(\"#jqg_\" + jqGridId + \"_\"+this)[ret.useProp ? 'prop': 'attr'](\"checked\", \"checked\");\n\t\t\t\t});\n\t\t\t}\n\t\t\t// grouping\n\t\t\t// pivotgrid\n\t\t\tif(ret.inlineNav && iN) {\n\t\t\t\tgrid.jqGrid('setGridParam', { inlineNav:false });\n\t\t\t\tgrid.jqGrid('inlineNav', ret.pager, iN);\n\t\t\t}\n\t\t\tif(ret.filterToolbar && fT) {\n\t\t\t\tgrid.jqGrid('setGridParam', { filterToolbar:false });\n\t\t\t\tfT.restoreFromFilters = true;\n\t\t\t\tgrid.jqGrid('filterToolbar', fT);\n\t\t\t}\n\t\t\t// finally frozenColums\n\t\t\tif( ret.frozenColumns ) {\n\t\t\t\tgrid.jqGrid('setFrozenColumns');\n\t\t\t}\n\t\t\tgrid[0].updatepager(true, true);\n\t\t\t\n\t\t\tif($.isFunction(o.afterSetGrid)) {\n\t\t\t\to.afterSetGrid( grid );\n\t\t\t}\n\t\t\tif(o.clearAfterLoad) {\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id);\n\t\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+$t.id + \"_data\");\n\t\t\t}\n\t\t} else {\n\t\t\talert(\"can not convert to object\");\n\t\t}\n\t},\n\tisGridInStorage : function ( jqGridId, options ) {\n\t\tvar o = {\n\t\t\tstorageType: \"localStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\tvar ret, gridstring, data;\n\t\ttry {\n\t\t\tgridstring = window[o.storageType].getItem(\"jqGrid\"+jqGridId);\n\t\t\tdata = window[o.storageType].getItem(\"jqGrid\" + jqGridId + \"_data\");\n\t\t\tret = gridstring != null && data != null && typeof gridstring === \"string\" && typeof data === \"string\" ;\n\t\t} catch (e) {\n\t\t\tret = false;\n\t\t}\n\t\treturn ret;\n\t},\n\tsetRegional : function( jqGridId , options) {\n\t\tvar o = {\n\t\t\tstorageType: \"sessionStorage\"\n\t\t};\n\t\to =  $.extend(o , options || {});\n\t\t\n\t\tif( !o.regional ) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t$.jgrid.saveState( jqGridId, o );\n\t\t\n\t\to.beforeSetGrid = function(params) {\n\t\t\tparams.regional = o.regional;\n\t\t\tparams.force_regional = true;\n\t\t\treturn params;\n\t\t};\n\t\t\n\t\t$.jgrid.loadState( jqGridId, null, o);\n\t\t// check for formatter actions\n\t\tvar grid = $(\"#\"+jqGridId)[0],\n\t\tmodel = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav');\n\t\t$.each(model,function(k){\n\t\t\tif(this.formatter && this.formatter === 'actions') {\n\t\t\t\ti = k;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(i !== -1 && nav) {\n\t\t\t$(\"#\"+jqGridId + \" tbody tr\").each(function(){\n\t\t\t\tvar td = this.cells[i];\n\t\t\t\t$(td).find(\".ui-inline-edit\").attr(\"title\",nav.edittitle);\n\t\t\t\t$(td).find(\".ui-inline-del\").attr(\"title\",nav.deltitle);\n\t\t\t\t$(td).find(\".ui-inline-save\").attr(\"title\",nav.savetitle);\n\t\t\t\t$(td).find(\".ui-inline-cancel\").attr(\"title\",nav.canceltitle);\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id);\n\t\t\twindow[o.storageType].removeItem(\"jqGrid\"+grid.id+\"_data\");\n\t\t} catch (e) {}\n\t},\n\tjqGridImport : function(jqGridId, o) {\n\t\to = $.extend({\n\t\t\timptype : \"xml\", // xml, json, xmlstring, jsonstring\n\t\t\timpstring: \"\",\n\t\t\timpurl: \"\",\n\t\t\tmtype: \"GET\",\n\t\t\timpData : {},\n\t\t\txmlGrid :{\n\t\t\t\tconfig : \"root>grid\",\n\t\t\t\tdata: \"root>rows\"\n\t\t\t},\n\t\t\tjsonGrid :{\n\t\t\t\tconfig : \"grid\",\n\t\t\t\tdata: \"data\"\n\t\t\t},\n\t\t\tajaxOptions :{}\n\t\t}, o || {});\n\t\tvar $t = (jqGridId.indexOf(\"#\") === 0 ? \"\": \"#\") + $.jgrid.jqID(jqGridId);\n\t\tvar xmlConvert = function (xml,o) {\n\t\t\tvar cnfg = $(o.xmlGrid.config,xml)[0];\n\t\t\tvar xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key;\n\t\t\tif(jqGridUtils.xmlToJSON ) {\n\t\t\t\tjstr = jqGridUtils.xmlToJSON( cnfg );\n\t\t\t\t//jstr = $.jgrid.parse(jstr);\n\t\t\t\tfor(key in jstr) {\n\t\t\t\t\tif(jstr.hasOwnProperty(key)) {\n\t\t\t\t\t\tjstr1=jstr[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(xmldata) {\n\t\t\t\t// save the datatype\n\t\t\t\t\tvar svdatatype = jstr.grid.datatype;\n\t\t\t\t\tjstr.grid.datatype = 'xmlstring';\n\t\t\t\t\tjstr.grid.datastr = xml;\n\t\t\t\t\t$($t).jqGrid( jstr1 ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() { $($t).jqGrid( jstr1 ); },0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\talert(\"xml2json or parse are not present\");\n\t\t\t}\n\t\t};\n\t\tvar jsonConvert = function (jsonstr,o){\n\t\t\tif (jsonstr && typeof jsonstr === 'string') {\n\t\t\t\tvar json = jqGridUtils.parse(jsonstr);\n\t\t\t\tvar gprm = json[o.jsonGrid.config];\n\t\t\t\tvar jdata = json[o.jsonGrid.data];\n\t\t\t\tif(jdata) {\n\t\t\t\t\tvar svdatatype = gprm.datatype;\n\t\t\t\t\tgprm.datatype = 'jsonstring';\n\t\t\t\t\tgprm.datastr = jdata;\n\t\t\t\t\t$($t).jqGrid( gprm ).jqGrid(\"setGridParam\",{datatype:svdatatype});\n\t\t\t\t} else {\n\t\t\t\t\t$($t).jqGrid( gprm );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tswitch (o.imptype){\n\t\t\tcase 'xml':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"xml\",\n\t\t\t\t\tcomplete: function(xml,stat) {\n\t\t\t\t\t\tif(stat === 'success') {\n\t\t\t\t\t\t\txmlConvert(xml.responseXML,o);\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xml, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(xml);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\txml=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions));\n\t\t\t\tbreak;\n\t\t\tcase 'xmlstring' :\n\t\t\t\t// we need to make just the conversion and use the same code as xml\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tvar xmld = $.parseXML(o.impstring);\n\t\t\t\t\tif(xmld) {\n\t\t\t\t\t\txmlConvert(xmld,o);\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [xmld, o]);\n\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\to.importComplete(xmld);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'json':\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.impurl,\n\t\t\t\t\ttype:o.mtype,\n\t\t\t\t\tdata: o.impData,\n\t\t\t\t\tdataType:\"json\",\n\t\t\t\t\tcomplete: function(json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tjsonConvert(json.responseText,o );\n\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [json, o]);\n\t\t\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\t\t\to.importComplete(json);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (ee){}\n\t\t\t\t\t\tjson=null;\n\t\t\t\t\t}\n\t\t\t\t}, o.ajaxOptions ));\n\t\t\t\tbreak;\n\t\t\tcase 'jsonstring' :\n\t\t\t\tif(o.impstring && typeof o.impstring === 'string') {\n\t\t\t\t\tjsonConvert(o.impstring,o );\n\t\t\t\t\t$($t).triggerHandler(\"jqGridImportComplete\", [o.impstring, o]);\n\t\t\t\t\tif($.isFunction(o.importComplete)) {\n\t\t\t\t\t\to.importComplete(o.impstring);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n});\n\t$.jgrid.extend({\n\t\tjqGridExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"xmlstring\",\n\t\t\t\troot: \"grid\",\n\t\t\t\tident: \"\\t\",\n\t\t\t\taddOptions : {}\n\t\t\t}, o || {});\n\t\t\tvar ret = null;\n\t\t\tthis.each(function () {\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar key, gprm = $.extend(true, {}, $(this).jqGrid(\"getGridParam\"), o.addOptions);\n\t\t\t\t// we need to check for:\n\t\t\t\t// 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames\n\t\t\t\tif(gprm.rownumbers) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.multiselect) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tif(gprm.subGrid) {\n\t\t\t\t\tgprm.colNames.splice(0,1);\n\t\t\t\t\tgprm.colModel.splice(0,1);\n\t\t\t\t}\n\t\t\t\tgprm.knv = null;\n\t\t\t\tswitch (o.exptype) {\n\t\t\t\t\tcase 'xmlstring' :\n\t\t\t\t\t\tret = \"<\"+o.root+\">\"+ jqGridUtils.jsonToXML( gprm, {xmlDecl:\"\"} )+\"</\"+o.root+\">\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'jsonstring' :\n\t\t\t\t\t\tret =  jqGridUtils.stringify( gprm );\n\t\t\t\t\t\tif(o.root) { ret = \"{\"+ o.root +\":\"+ret+\"}\"; }\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ret;\n\t\t},\n\t\texcelExport : function(o) {\n\t\t\to = $.extend({\n\t\t\t\texptype : \"remote\",\n\t\t\t\turl : null,\n\t\t\t\toper: \"oper\",\n\t\t\t\ttag: \"excel\",\n\t\t\t\tbeforeExport : null,\n\t\t\t\texporthidden : false,\n\t\t\t\texportgrouping: false,\n\t\t\t\texportOptions : {}\n\t\t\t}, o || {});\n\t\t\treturn this.each(function(){\n\t\t\t\tif(!this.grid) { return;}\n\t\t\t\tvar url;\n\t\t\t\tif(o.exptype === \"remote\") {\n\t\t\t\t\tvar pdata = $.extend({},this.p.postData), expg;\n\t\t\t\t\tpdata[o.oper] = o.tag;\n\t\t\t\t\tif($.isFunction(o.beforeExport)) {\n\t\t\t\t\t\tvar result = o.beforeExport.call(this, pdata );\n\t\t\t\t\t\tif( $.isPlainObject( result ) ) {\n\t\t\t\t\t\t\tpdata = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exporthidden) {\n\t\t\t\t\t\tvar cm = this.p.colModel, i, len = cm.length, newm=[];\n\t\t\t\t\t\tfor(i=0; i< len; i++) {\n\t\t\t\t\t\t\tif(cm[i].hidden === undefined) { cm[i].hidden = false; }\n\t\t\t\t\t\t\tnewm.push({name:cm[i].name, hidden:cm[i].hidden});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar newm1 = JSON.stringify( newm );\n\t\t\t\t\t\tif(typeof newm1 === 'string' ) {\n\t\t\t\t\t\t\tpdata['colModel'] = newm1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(o.exportgrouping) {\n\t\t\t\t\t\texpg = JSON.stringify( this.p.groupingView );\n\t\t\t\t\t\tif(typeof expg === 'string' ) {\n\t\t\t\t\t\t\tpdata['groupingView'] = expg;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar params = jQuery.param(pdata);\n\t\t\t\t\tif(o.url.indexOf(\"?\") !== -1) { url = o.url+\"&\"+params; }\n\t\t\t\t\telse { url = o.url+\"?\"+params; }\n\t\t\t\t\twindow.location = url;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n    });\n\n//module begin\n$.jgrid.inlineEdit = $.jgrid.inlineEdit || {};\n$.jgrid.extend({\n//Editing\n\teditRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar o={}, args = $.makeArray(arguments).slice(1);\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif (keys !== undefined) { o.keys = keys; }\n\t\t\tif ($.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; }\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t\t// last two not as param, but as object (sorry)\n\t\t\t//if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; }\n\t\t\t//if (mtype !== undefined) { o.mtype = mtype || \"POST\"; }\t\t\t\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tkeys : false,\n\t\t\tkeyevent : \"keydown\",\n\t\t\toneditfunc: null,\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tfocusField : true\n\t\t}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer,\n\t\t\tinpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+\".inlinedit\",'inputClass', true);\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif( ind === false ) {return;}\n\t\t\t$t.p.beforeAction = true;\n\t\t\tbfer = $.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) :  undefined;\n\t\t\tif( bfer === undefined ) {\n\t\t\t\tbfer = true;\n\t\t\t}\n\t\t\tif(!bfer) { \n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\teditable = $(ind).attr(\"editable\") || \"0\";\n\t\t\tif (editable === \"0\" && !$(ind).hasClass(\"not-editable-row\")) {\n\t\t\t\tcm = $t.p.colModel;\n\t\t\t\t$('td[role=\"gridcell\"]',ind).each( function(i) {\n\t\t\t\t\tnm = cm[i].name;\n\t\t\t\t\tvar treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn;\n\t\t\t\t\tif(treeg) { tmp = $(\"span:first\",this).html();}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\ttmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i);\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\ttmp =  ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {\n\t\t\t\t\t\tif($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }\n\t\t\t\t\t\tsvr[nm]=tmp;\n\t\t\t\t\t\tif(cm[i].editable===true) {\n\t\t\t\t\t\t\tif(focus===null) { focus = i; }\n\t\t\t\t\t\t\tif (treeg) { $(\"span:first\",this).html(\"\"); }\n\t\t\t\t\t\t\telse { $(this).html(\"\"); }\n\t\t\t\t\t\t\tvar opt = $.extend({},cm[i].editoptions || {},{id:rowid+\"_\"+nm,name:nm,rowId:rowid, oper:'edit'});\n\t\t\t\t\t\t\tif(!cm[i].edittype) { cm[i].edittype = \"text\"; }\n\t\t\t\t\t\t\tif(tmp === \"&nbsp;\" || tmp === \"&#160;\" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}\n\t\t\t\t\t\t\tvar elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));\n\t\t\t\t\t\t\t$(elc).addClass(\"editable inline-edit-cell\");\n\t\t\t\t\t\t\tif( $.inArray(cm[i].edittype, ['text','textarea','password','select']) > -1) {\n\t\t\t\t\t\t\t\t$(elc).addClass( inpclass );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(treeg) { $(\"span:first\",this).append(elc); }\n\t\t\t\t\t\t\telse { $(this).append(elc); }\n\t\t\t\t\t\t\t$.jgrid.bindEv.call($t, elc, opt);\n\t\t\t\t\t\t\t//Again IE\n\t\t\t\t\t\t\tif(cm[i].edittype === \"select\" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true  && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) {\n\t\t\t\t\t\t\t\t$(elc).width($(elc).width());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcnt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(cnt > 0) {\n\t\t\t\t\tsvr.id = rowid; $t.p.savedRow.push(svr);\n\t\t\t\t\t$(ind).attr(\"editable\",\"1\");\n\t\t\t\t\tif(o.focusField ) {\n\t\t\t\t\t\tif(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) {\n\t\t\t\t\t\t\tfocus = o.focusField;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetTimeout(function(){ \n\t\t\t\t\t\t\tvar fe = $(\"td:eq(\"+focus+\") :input:visible\",ind).not(\":disabled\"); \n\t\t\t\t\t\t\tif(fe.length > 0) {\n\t\t\t\t\t\t\t\tfe.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},0);\n\t\t\t\t\t}\n\t\t\t\t\tif(o.keys===true) {\n\t\t\t\t\t\t$(ind).on( o.keyevent ,function(e) {\n\t\t\t\t\t\t\tif (e.keyCode === 27) {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t} catch (eer1) {}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (e.keyCode === 13) {\n\t\t\t\t\t\t\t\tvar ta = e.target;\n\t\t\t\t\t\t\t\tif(ta.tagName === 'TEXTAREA') { return true; }\n\t\t\t\t\t\t\t\tif( $($t).jqGrid(\"saveRow\", rowid, o ) ) {\n\t\t\t\t\t\t\t\t\tif($t.p.inlineNav) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t\t\t\t} catch (eer2) {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineEditRow\", [rowid, o]);\n\t\t\t\t\tif( $.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tsaveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o = {}, $t = this[0];\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(successfunc)) { o.successfunc = successfunc; }\n\t\t\tif (url !== undefined) { o.url = url; }\n\t\t\tif (extraparam !== undefined) { o.extraparam = extraparam; }\n\t\t\tif ($.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }\n\t\t\tif ($.isFunction(errorfunc)) { o.errorfunc = errorfunc; }\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {\n\t\t\tsuccessfunc: null,\n\t\t\turl: null,\n\t\t\textraparam: {},\n\t\t\taftersavefunc: null,\n\t\t\terrorfunc: null,\n\t\t\tafterrestorefunc: null,\n\t\t\trestoreAfterError: true,\n\t\t\tmtype: \"POST\",\n\t\t\tsaveui : \"enable\",\n\t\t\tsavetext : $.jgrid.getRegional($t,'defaults.savetext')\n\t\t}, $.jgrid.inlineEdit, o );\n\t\t// End compatible\n\n\t\tvar success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false,\n\t\terror = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) );\n\t\tif (!$t.grid ) { return success; }\n\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\tif(ind === false) {return success;}\n\t\tvar errors = $.jgrid.getRegional($t, 'errors'),\n\t\tedit =$.jgrid.getRegional($t, 'edit'),\n\t\tbfsr = $.isFunction( o.beforeSaveRow ) ?\to.beforeSaveRow.call($t,o, rowid) :  undefined;\n\t\tif( bfsr === undefined ) {\n\t\t\tbfsr = true;\n\t\t}\n\t\tif(!bfsr) { return; }\n\t\teditable = $(ind).attr(\"editable\");\n\t\to.url = o.url || $t.p.editurl;\n\t\tif (editable===\"1\") {\n\t\t\tvar cm, index, elem;\n\t\t\t$('td[role=\"gridcell\"]',ind).each(function(i) {\n\t\t\t\tcm = $t.p.colModel[i];\n\t\t\t\tnm = cm.name;\n\t\t\t\telem = \"\";\n\t\t\t\tif ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn' && !$(this).hasClass('not-editable-cell')) {\n\t\t\t\t\tswitch (cm.edittype) {\n\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\tvar cbv = [\"Yes\",\"No\"];\n\t\t\t\t\t\t\tif(cm.editoptions ) {\n\t\t\t\t\t\t\t\tcbv = cm.editoptions.value.split(\":\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttmp[nm]=  $(\"input\",this).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\t\t\telem = $(\"input\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'text':\n\t\t\t\t\t\tcase 'password':\n\t\t\t\t\t\tcase 'textarea':\n\t\t\t\t\t\tcase \"button\" :\n\t\t\t\t\t\t\ttmp[nm]=$(\"input, textarea\",this).val();\n\t\t\t\t\t\t\telem = $(\"input, textarea\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'select':\n\t\t\t\t\t\t\tif(!cm.editoptions.multiple) {\n\t\t\t\t\t\t\t\ttmp[nm] = $(\"select option:selected\",this).val();\n\t\t\t\t\t\t\t\ttmp2[nm] = $(\"select option:selected\", this).text();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar sel = $(\"select\",this), selectedText = [];\n\t\t\t\t\t\t\t\ttmp[nm] = $(sel).val();\n\t\t\t\t\t\t\t\tif(tmp[nm]) { tmp[nm]= tmp[nm].join(\",\"); } else { tmp[nm] =\"\"; }\n\t\t\t\t\t\t\t\t$(\"select option:selected\",this).each(\n\t\t\t\t\t\t\t\t\tfunction(i,selected){\n\t\t\t\t\t\t\t\t\t\tselectedText[i] = $(selected).text();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\ttmp2[nm] = selectedText.join(\",\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(cm.formatter && cm.formatter === 'select') { tmp2={}; }\n\t\t\t\t\t\t\telem = $(\"select\",this);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'custom' :\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {\n\t\t\t\t\t\t\t\t\ttmp[nm] = cm.editoptions.custom_value.call($t, $(\".customelement\",this),'get');\n\t\t\t\t\t\t\t\t\tif (tmp[nm] === undefined) { throw \"e2\"; }\n\t\t\t\t\t\t\t\t} else { throw \"e1\"; }\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tif (e===\"e1\") { $.jgrid.info_dialog(errors.errcap,\"function 'custom_value' \"+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t\telse { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcv = $.jgrid.checkValues.call($t,tmp[nm],i);\n\t\t\t\t\tif(cv[0] === false) {\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }\n\t\t\t\t\tif(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) {\n\t\t\t\t\t\tif(tmp[nm] === \"\") {\n\t\t\t\t\t\t\ttmp3[nm] = 'null';\n\t\t\t\t\t\t\tnullIfEmpty = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (cv[0] === false){\n\t\t\t\ttry {\n\t\t\t\t\tif( $.isFunction($t.p.validationCell) ) {\n\t\t\t\t\t\t$t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar tr = $($t).jqGrid('getGridRowById', rowid), \n\t\t\t\t\t\t\tpositions = $.jgrid.findPos(tr);\n\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{\n\t\t\t\t\t\t\tleft:positions[0],\n\t\t\t\t\t\t\ttop:positions[1]+$(tr).outerHeight(), \n\t\t\t\t\t\t\tstyleUI : $t.p.styleUI, \n\t\t\t\t\t\t\tonClose: function(){\n\t\t\t\t\t\t\t\tif(index >= 0 ) {\n\t\t\t\t\t\t\t\t\t$(\"#\"+rowid+\"_\" +$t.p.colModel[index].name).focus();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\talert(cv[1]);\n\t\t\t\t}\n\t\t\t\treturn success;\n\t\t\t}\n\t\t\tvar idname, opers = $t.p.prmNames, oldRowId = rowid;\n\t\t\tif ($t.p.keyName === false) {\n\t\t\t\tidname = opers.id;\n\t\t\t} else {\n\t\t\t\tidname = $t.p.keyName;\n\t\t\t}\n\t\t\tif(tmp) {\n\t\t\t\ttmp[opers.oper] = opers.editoper;\n\t\t\t\tif (tmp[idname] === undefined || tmp[idname]===\"\") {\n\t\t\t\t\ttmp[idname] = rowid;\n\t\t\t\t} else if (ind.id !== $t.p.idPrefix + tmp[idname]) {\n\t\t\t\t\t// rename rowid\n\t\t\t\t\tvar oldid = $.jgrid.stripPref($t.p.idPrefix, rowid);\n\t\t\t\t\tif ($t.p._index[oldid] !== undefined) {\n\t\t\t\t\t\t$t.p._index[tmp[idname]] = $t.p._index[oldid];\n\t\t\t\t\t\tdelete $t.p._index[oldid];\n\t\t\t\t\t}\n\t\t\t\t\trowid = $t.p.idPrefix + tmp[idname];\n\t\t\t\t\t$(ind).attr(\"id\", rowid);\n\t\t\t\t\tif ($t.p.selrow === oldRowId) {\n\t\t\t\t\t\t$t.p.selrow = rowid;\n\t\t\t\t\t}\n\t\t\t\t\tif ($.isArray($t.p.selarrrow)) {\n\t\t\t\t\t\tvar i = $.inArray(oldRowId, $t.p.selarrrow);\n\t\t\t\t\t\tif (i>=0) {\n\t\t\t\t\t\t\t$t.p.selarrrow[i] = rowid;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ($t.p.multiselect) {\n\t\t\t\t\t\tvar newCboxId = \"jqg_\" + $t.p.id + \"_\" + rowid;\n\t\t\t\t\t\t$(\"input.cbox\",ind)\n\t\t\t\t\t\t\t.attr(\"id\", newCboxId)\n\t\t\t\t\t\t\t.attr(\"name\", newCboxId);\n\t\t\t\t\t}\n\t\t\t\t\t// TODO: to test the case of frozen columns\n\t\t\t\t}\n\t\t\t\tif($t.p.inlineData === undefined) { $t.p.inlineData ={}; }\n\t\t\t\ttmp = $.extend({},tmp,$t.p.inlineData,o.extraparam);\n\t\t\t}\n\t\t\tif (o.url === 'clientArray') {\n\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tvar k, resp = $($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}\n\t\t\t\t}\n\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, resp, tmp, o]);\n\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }\n\t\t\t\tsuccess = true;\n\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t} else {\n\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"show\", loadtype : o.saveui, htmlcontent: o.savetext });\n\t\t\t\ttmp3 = $.extend({},tmp,tmp3);\n\t\t\t\ttmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl:o.url,\n\t\t\t\t\tdata: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3,\n\t\t\t\t\ttype: o.mtype,\n\t\t\t\t\tasync : false, //?!?\n\t\t\t\t\tcomplete: function(res,stat){\n\t\t\t\t\t\t$($t).jqGrid(\"progressBar\", {method:\"hide\", loadtype : o.saveui, htmlcontent: o.savetext});\n\t\t\t\t\t\tif (stat === \"success\"){\n\t\t\t\t\t\t\tvar ret = true, sucret, k;\n\t\t\t\t\t\t\tsucret = $($t).triggerHandler(\"jqGridInlineSuccessSaveRow\", [res, rowid, o]);\n\t\t\t\t\t\t\tif (!$.isArray(sucret)) {sucret = [true, tmp3];}\n\t\t\t\t\t\t\tif (sucret[0] && $.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);}\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif($.isArray(sucret)) {\n\t\t\t\t\t\t\t\t// expect array - status, data, rowid\n\t\t\t\t\t\t\t\tret = sucret[0];\n\t\t\t\t\t\t\t\ttmp = sucret[1] || tmp;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = sucret;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (ret===true) {\n\t\t\t\t\t\t\t\tif($t.p.autoencode) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function(n,v){\n\t\t\t\t\t\t\t\t\t\ttmp[n] = $.jgrid.htmlDecode(v);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(nullIfEmpty) {\n\t\t\t\t\t\t\t\t\t$.each(tmp,function( n ){\n\t\t\t\t\t\t\t\t\t\tif(tmp[n] === 'null' ) {\n\t\t\t\t\t\t\t\t\t\t\ttmp[n] = '';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttmp = $.extend({},tmp, tmp2);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,tmp);\n\t\t\t\t\t\t\t\t$(ind).attr(\"editable\",\"0\");\n\t\t\t\t\t\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\t\t\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(fr >= 0) { $t.p.savedRow.splice(fr,1); }\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineAfterSaveRow\", [rowid, res, tmp, o]);\n\t\t\t\t\t\t\t\tif( $.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); }\n\t\t\t\t\t\t\t\tsuccess = true;\n\t\t\t\t\t\t\t\t$(ind).removeClass(\"jqgrid-new-row\").off(\"keydown\");\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, null, o]);\n\t\t\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror:function(res,stat,err){\n\t\t\t\t\t\t$(\"#lui_\"+$.jgrid.jqID($t.p.id)).hide();\n\t\t\t\t\t\t$($t).triggerHandler(\"jqGridInlineErrorSaveRow\", [rowid, res, stat, err, o]);\n\t\t\t\t\t\tif($.isFunction(o.errorfunc) ) {\n\t\t\t\t\t\t\to.errorfunc.call($t, rowid, res, stat, err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar rT = res.responseText || res.statusText;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$.jgrid.info_dialog(errors.errcap,'<div class=\"'+error+'\">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI });\n\t\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\t\talert(rT);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(o.restoreAfterError === true) {\n\t\t\t\t\t\t\t$($t).jqGrid(\"restoreRow\",rowid, o.afterrestorefunc);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));\n\t\t\t}\n\t\t}\n\t\treturn success;\n\t},\n\trestoreRow : function(rowid, afterrestorefunc) {\n\t\t// Compatible mode old versions\n\t\tvar args = $.makeArray(arguments).slice(1), o={};\n\n\t\tif( $.type(args[0]) === \"object\" ) {\n\t\t\to = args[0];\n\t\t} else {\n\t\t\tif ($.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }\n\t\t}\n\t\to = $.extend(true, {}, $.jgrid.inlineEdit, o );\n\n\t\t// End compatible\n\n\t\treturn this.each(function(){\n\t\t\tvar $t= this, fr=-1, ind, ares={}, k;\n\t\t\tif (!$t.grid ) { return; }\n\t\t\tind = $($t).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(ind === false) {return;}\n\t\t\tvar bfcr = $.isFunction( o.beforeCancelRow ) ?\to.beforeCancelRow.call($t, o, rowid) :  undefined;\n\t\t\tif( bfcr === undefined ) {\n\t\t\t\tbfcr = true;\n\t\t\t}\n\t\t\tif(!bfcr) { return; }\n\t\t\tfor(k=0;k<$t.p.savedRow.length;k++) {\n\t\t\t\tif( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}\n\t\t\t}\n\t\t\tif(fr >= 0) {\n\t\t\t\tif($.isFunction($.fn.datepicker)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(\"input.hasDatepicker\",\"#\"+$.jgrid.jqID(ind.id)).datepicker('hide');\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\t\t\t$.each($t.p.colModel, function(){\n\t\t\t\t\tif(this.editable === true && $t.p.savedRow[fr].hasOwnProperty(this.name)) {\n\t\t\t\t\t\tares[this.name] = $t.p.savedRow[fr][this.name];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$($t).jqGrid(\"setRowData\",rowid,ares);\n\t\t\t\t$(ind).attr(\"editable\",\"0\").off(\"keydown\");\n\t\t\t\t$t.p.savedRow.splice(fr,1);\n\t\t\t\tif($(\"#\"+$.jgrid.jqID(rowid), \"#\"+$.jgrid.jqID($t.p.id)).hasClass(\"jqgrid-new-row\")){\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",rowid);\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t},0);\n\t\t\t\t}\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridInlineAfterRestoreRow\", [rowid]);\n\t\t\tif ($.isFunction(o.afterrestorefunc))\n\t\t\t{\n\t\t\t\to.afterrestorefunc.call($t, rowid);\n\t\t\t}\n\t\t});\n\t},\n\taddRow : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\trowID : null,\n\t\t\tinitdata : {},\n\t\t\tposition :\"first\",\n\t\t\tuseDefValues : true,\n\t\t\tuseFormatter : false,\n\t\t\taddRowParams : {extraparam:{}}\n\t\t},p  || {});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar $t = this;\n\t\t\t$t.p.beforeAction = true;\n\t\t\tvar bfar = $.isFunction( p.beforeAddRow ) ?\tp.beforeAddRow.call($t,p.addRowParams) :  undefined;\n\t\t\tif( bfar === undefined ) {\n\t\t\t\tbfar = true;\n\t\t\t}\n\t\t\tif(!bfar) {\n\t\t\t\t$t.p.beforeAction = false;\n\t\t\t\treturn; \n\t\t\t}\n\t\t\tp.rowID = $.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId());\n\t\t\tif(p.useDefValues === true) {\n\t\t\t\t$($t.p.colModel).each(function(){\n\t\t\t\t\tif( this.editoptions && this.editoptions.defaultValue ) {\n\t\t\t\t\t\tvar opt = this.editoptions.defaultValue,\n\t\t\t\t\t\ttmp = $.isFunction(opt) ? opt.call($t) : opt;\n\t\t\t\t\t\tp.initdata[this.name] = tmp;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t$($t).jqGrid('addRowData', p.rowID, p.initdata, p.position);\n\t\t\tp.rowID = $t.p.idPrefix + p.rowID;\n\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID), \"#\"+$.jgrid.jqID($t.p.id)).addClass(\"jqgrid-new-row\");\n\t\t\tif(p.useFormatter) {\n\t\t\t\t$(\"#\"+$.jgrid.jqID(p.rowID)+\" .ui-inline-edit\", \"#\"+$.jgrid.jqID($t.p.id)).click();\n\t\t\t} else {\n\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\toper = opers.oper;\n\t\t\t\tp.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t$($t).jqGrid('editRow', p.rowID, p.addRowParams);\n\t\t\t\t$($t).jqGrid('setSelection', p.rowID);\n\t\t\t}\n\t\t});\n\t},\n\tinlineNav : function (elem, o) {\n\t\tvar $t = this[0],\n\t\tregional =  $.jgrid.getRegional($t, 'nav'),\n\t\ticons = $.jgrid.styleUI[$t.p.styleUI].inlinedit;\n\t\to = $.extend(true,{\n\t\t\tedit: true,\n\t\t\tediticon: icons.icon_edit_nav,\n\t\t\tadd: true,\n\t\t\taddicon:icons.icon_add_nav,\n\t\t\tsave: true,\n\t\t\tsaveicon: icons.icon_save_nav,\n\t\t\tcancel: true,\n\t\t\tcancelicon: icons.icon_cancel_nav,\n\t\t\taddParams : {addRowParams: {extraparam: {}}},\n\t\t\teditParams : {},\n\t\t\trestoreAfterSelect : true,\n\t\t\tsaveAfterSelect : false\n\t\t}, regional, o ||{});\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid  || this.p.inlineNav) { return; }\n\t\t\tvar gID = $.jgrid.jqID($t.p.id),\n\t\t\tdisabled = $.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) );\n\t\t\t// check to see if navgrid is started, if not call it with all false parameters.\n\t\t\tif(!$t.p.navGrid) {\n\t\t\t\t$($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false});\n\t\t\t}\n\t\t\tif(!$($t).data('inlineNav')) {\n\t\t\t\t$($t).data('inlineNav',o);\n\t\t\t}\n\t\t\tif($t.p.force_regional) {\n\t\t\t\to = $.extend(o, regional);\n\t\t\t}\n\n\t\t\t$t.p.inlineNav = true;\n\t\t\t// detect the formatactions column\n\t\t\tif(o.addParams.useFormatter === true) {\n\t\t\t\tvar cm = $t.p.colModel,i;\n\t\t\t\tfor (i = 0; i<cm.length; i++) {\n\t\t\t\t\tif(cm[i].formatter && cm[i].formatter === \"actions\" ) {\n\t\t\t\t\t\tif(cm[i].formatoptions) {\n\t\t\t\t\t\t\tvar defaults =  {\n\t\t\t\t\t\t\t\tkeys:false,\n\t\t\t\t\t\t\t\tonEdit : null,\n\t\t\t\t\t\t\t\tonSuccess: null,\n\t\t\t\t\t\t\t\tafterSave:null,\n\t\t\t\t\t\t\t\tonError: null,\n\t\t\t\t\t\t\t\tafterRestore: null,\n\t\t\t\t\t\t\t\textraparam: {},\n\t\t\t\t\t\t\t\turl: null\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tap = $.extend( defaults, cm[i].formatoptions );\n\t\t\t\t\t\t\to.addParams.addRowParams = {\n\t\t\t\t\t\t\t\t\"keys\" : ap.keys,\n\t\t\t\t\t\t\t\t\"oneditfunc\" : ap.onEdit,\n\t\t\t\t\t\t\t\t\"successfunc\" : ap.onSuccess,\n\t\t\t\t\t\t\t\t\"url\" : ap.url,\n\t\t\t\t\t\t\t\t\"extraparam\" : ap.extraparam,\n\t\t\t\t\t\t\t\t\"aftersavefunc\" : ap.afterSave,\n\t\t\t\t\t\t\t\t\"errorfunc\": ap.onError,\n\t\t\t\t\t\t\t\t\"afterrestorefunc\" : ap.afterRestore\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.add) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.addtext,\n\t\t\t\t\ttitle : o.addtitle,\n\t\t\t\t\tbuttonicon : o.addicon,\n\t\t\t\t\tid : $t.p.id+\"_iladd\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('addRow', o.addParams);\n\t\t\t\t\t\tif(!o.addParams.useFormatter && $t.p.beforeAction) {\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.edit) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.edittext,\n\t\t\t\t\ttitle : o.edittitle,\n\t\t\t\t\tbuttonicon : o.editicon,\n\t\t\t\t\tid : $t.p.id+\"_iledit\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $($t).jqGrid('getGridParam','selrow');\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($t.p.beforeAction === undefined) {\n\t\t\t\t\t\t\t\t$t.p.beforeAction = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('editRow', sr, o.editParams);\n\t\t\t\t\t\t\tif($t.p.beforeAction) {\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilsave\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_ilcancel\").removeClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iladd\").addClass( disabled );\n\t\t\t\t\t\t\t\t$(\"#\"+gID+\"_iledit\").addClass( disabled );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(o.save) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.savetext || '',\n\t\t\t\t\ttitle : o.savetitle || 'Save row',\n\t\t\t\t\tbuttonicon : o.saveicon,\n\t\t\t\t\tid : $t.p.id+\"_ilsave\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tvar opers = $t.p.prmNames,\n\t\t\t\t\t\t\toper = opers.oper, tmpParams = o.editParams;\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\to.addParams.addRowParams.extraparam[oper] = opers.addoper;\n\t\t\t\t\t\t\t\ttmpParams = o.addParams.addRowParams;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif(!o.editParams.extraparam) {\n\t\t\t\t\t\t\t\t\to.editParams.extraparam = {};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\to.editParams.extraparam[oper] = opers.editoper;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif( $($t).jqGrid('saveRow', sr, tmpParams) ) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod_\"+gID, {gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.cancel) {\n\t\t\t\t$($t).jqGrid('navButtonAdd', elem,{\n\t\t\t\t\tcaption : o.canceltext || '',\n\t\t\t\t\ttitle : o.canceltitle || 'Cancel row editing',\n\t\t\t\t\tbuttonicon : o.cancelicon,\n\t\t\t\t\tid : $t.p.id+\"_ilcancel\",\n\t\t\t\t\tinternal : true,\n\t\t\t\t\tonClickButton : function () {\n\t\t\t\t\t\tvar sr = $t.p.savedRow[0].id, cancelPrm = o.editParams;\n\t\t\t\t\t\tif(sr) {\n\t\t\t\t\t\t\tif($(\"#\"+$.jgrid.jqID(sr), \"#\"+gID ).hasClass(\"jqgrid-new-row\")) {\n\t\t\t\t\t\t\t\tcancelPrm = o.addParams.addRowParams;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', sr, cancelPrm);\n\t\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$.jgrid.viewModal(\"#alertmod\",{gbox:\"#gbox_\"+gID,jqm:true});$(\"#jqg_alrt\").focus();\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t}\n\t\t\tif(o.restoreAfterSelect === true || o.saveAfterSelect === true) {\n\t\t\t\t$($t).on(\"jqGridBeforeSelectRow.inlineNav\", function( event, id ) {\n\t\t\t\t\tif($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) {\n\t\t\t\t\t\tif($t.p.selrow === o.addParams.rowID ) {\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData', $t.p.selrow);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(o.restoreAfterSelect === true) {\n\t\t\t\t\t\t\t\t$($t).jqGrid('restoreRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid('saveRow', $t.p.selrow, o.editParams);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$($t).jqGrid('showAddEditButtons');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t});\n\t},\n\tshowAddEditButtons : function()  {\n\t\treturn this.each(function(){\n\t\t\tif (!this.grid ) { return; }\n\t\t\tvar gID = $.jgrid.jqID(this.p.id),\n\t\t\tdisabled = $.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );\n\t\t\t$(\"#\"+gID+\"_ilsave\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_ilcancel\").addClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iladd\").removeClass( disabled );\n\t\t\t$(\"#\"+gID+\"_iledit\").removeClass( disabled );\n\t\t});\n\t}\n//end inline edit\n});\n\n//module begin\nif ($.jgrid.msie() && $.jgrid.msiever()===8) {\n\t$.expr[\":\"].hidden = function(elem) {\n\t\treturn elem.offsetWidth === 0 || elem.offsetHeight === 0 ||\n\t\t\telem.style.display === \"none\";\n\t};\n}\n// requiere load multiselect before grid\n$.jgrid._multiselect = false;\nif($.ui) {\n\tif ($.ui.multiselect ) {\n\t\tif($.ui.multiselect.prototype._setSelected) {\n\t\t\tvar setSelected = $.ui.multiselect.prototype._setSelected;\n\t\t\t$.ui.multiselect.prototype._setSelected = function(item,selected) {\n\t\t\t\tvar ret = setSelected.call(this,item,selected);\n\t\t\t\tif (selected && this.selectedList) {\n\t\t\t\t\tvar elt = this.element;\n\t\t\t\t\tthis.selectedList.find('li').each(function() {\n\t\t\t\t\t\tif ($(this).data('optionLink')) {\n\t\t\t\t\t\t\t$(this).data('optionLink').remove().appendTo(elt);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t};\n\t\t}\n\t\tif($.ui.multiselect.prototype.destroy) {\n\t\t\t$.ui.multiselect.prototype.destroy = function() {\n\t\t\t\tthis.element.show();\n\t\t\t\tthis.container.remove();\n\t\t\t\tif ($.Widget === undefined) {\n\t\t\t\t\t$.widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t} else {\n\t\t\t\t\t$.Widget.prototype.destroy.apply(this, arguments);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t$.jgrid._multiselect = true;\n\t}\n}\n        \n$.jgrid.extend({\n\tsortableColumns : function (tblrow)\n\t{\n\t\treturn this.each(function (){\n\t\t\tvar ts = this, tid= $.jgrid.jqID( ts.p.id );\n\t\t\tfunction start() {ts.p.disableClick = true;}\n\t\t\tvar sortable_opts = {\n\t\t\t\t\"tolerance\" : \"pointer\",\n\t\t\t\t\"axis\" : \"x\",\n\t\t\t\t\"scrollSensitivity\": \"1\",\n\t\t\t\t\"items\": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)',\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\telement: function(item) {\n\t\t\t\t\t\tvar el = $(document.createElement(item[0].nodeName))\n\t\t\t\t\t\t.addClass(item[0].className+\" ui-sortable-placeholder ui-state-highlight\")\n\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\")[0];\n\t\t\t\t\t\treturn el;\n\t\t\t\t\t},\n\t\t\t\t\tupdate: function(self, p) {\n\t\t\t\t\t\tp.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));\n\t\t\t\t\t\tp.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"update\": function(event, ui) {\n\t\t\t\t\tvar p = $(ui.item).parent(),\n\t\t\t\t\tth = $(\">th\", p),\n\t\t\t\t\tcolModel = ts.p.colModel,\n\t\t\t\t\tcmMap = {}, tid= ts.p.id+\"_\";\n\t\t\t\t\t$.each(colModel, function(i) { cmMap[this.name]=i; });\n\t\t\t\t\tvar permutation = [];\n\t\t\t\t\tth.each(function() {\n\t\t\t\t\t\tvar id = $(\">div\", this).get(0).id.replace(/^jqgh_/, \"\").replace(tid,\"\");\n\t\t\t\t\t\t\tif (cmMap.hasOwnProperty(id)) {\n\t\t\t\t\t\t\t\tpermutation.push(cmMap[id]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\n\t\t\t\t\t$(ts).jqGrid(\"remapColumns\",permutation, true, true);\n\t\t\t\t\tif ($.isFunction(ts.p.sortable.update)) {\n\t\t\t\t\t\tts.p.sortable.update(permutation);\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(function(){ts.p.disableClick=false;}, 50);\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (ts.p.sortable.options) {\n\t\t\t\t$.extend(sortable_opts, ts.p.sortable.options);\n\t\t\t} else if ($.isFunction(ts.p.sortable)) {\n\t\t\t\tts.p.sortable = { \"update\" : ts.p.sortable };\n\t\t\t}\n\t\t\tif (sortable_opts.start) {\n\t\t\t\tvar s = sortable_opts.start;\n\t\t\t\tsortable_opts.start = function(e,ui) {\n\t\t\t\t\tstart();\n\t\t\t\t\ts.call(this,e,ui);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsortable_opts.start = start;\n\t\t\t}\n\t\t\tif (ts.p.sortable.exclude) {\n\t\t\t\tsortable_opts.items += \":not(\"+ts.p.sortable.exclude+\")\";\n\t\t\t}\n\t\t\tvar $e = tblrow.sortable(sortable_opts), dataObj = $e.data(\"sortable\") || $e.data(\"uiSortable\");\n\t\t\tif (dataObj != null) {\n\t\t\t\tdataObj.data(\"sortable\").floating = true;\n\t\t\t}\n\t\t});\n\t},\n    columnChooser : function(opts) {\n\t\tvar self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight,\n\t\t\tcolModel = self.jqGrid(\"getGridParam\", \"colModel\"),\n\t\t\tcolNames = self.jqGrid(\"getGridParam\", \"colNames\"),\n\t\t\tgetMultiselectWidgetData = function ($elem) {\n\t\t\t\treturn ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) ||\n\t\t\t\t\t$elem.data(\"ui-multiselect\") || $elem.data(\"multiselect\");\n\t\t\t},\n\t\t\tregional =  $.jgrid.getRegional(this[0], 'col');\n\n\t\tif ($(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id)).length) { return; }\n\t\tselector = $('<div id=\"colchooser_'+self[0].p.id+'\" style=\"position:relative;overflow:hidden\"><div><select multiple=\"multiple\"></select></div></div>');\n\t\tselect = $('select', selector);\n\n\t\tfunction insert(perm,i,v) {\n\t\t\tvar a, b;\n\t\t\tif(i>=0){\n\t\t\t\ta = perm.slice();\n\t\t\t\tb = a.splice(i,Math.max(perm.length-i,i));\n\t\t\t\tif(i>perm.length) { i = perm.length; }\n\t\t\t\ta[i] = v;\n\t\t\t\treturn a.concat(b);\n\t\t\t}\n\t\t\treturn perm;\n\t\t}\n\t\tfunction call(fn, obj) {\n\t\t\tif (!fn) { return; }\n\t\t\tif (typeof fn === 'string') {\n\t\t\t\tif ($.fn[fn]) {\n\t\t\t\t\t$.fn[fn].apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t\t}\n\t\t\t} else if ($.isFunction(fn)) {\n\t\t\t\tfn.apply(obj, $.makeArray(arguments).slice(2));\n\t\t\t}\n\t\t}\n\n\t\topts = $.extend({\n\t\t\twidth : 400,\n\t\t\theight : 240,\n\t\t\tclassname : null,\n\t\t\tdone : function(perm) { if (perm) { self.jqGrid(\"remapColumns\", perm, true); } },\n\t\t\t/* msel is either the name of a ui widget class that\n\t\t\t   extends a multiselect, or a function that supports\n\t\t\t   creating a multiselect object (with no argument,\n\t\t\t   or when passed an object), and destroying it (when\n\t\t\t   passed the string \"destroy\"). */\n\t\t\tmsel : \"multiselect\",\n\t\t\t/* \"msel_opts\" : {}, */\n\n\t\t\t/* dlog is either the name of a ui widget class that \n\t\t\t   behaves in a dialog-like way, or a function, that\n\t\t\t   supports creating a dialog (when passed dlog_opts)\n\t\t\t   or destroying a dialog (when passed the string\n\t\t\t   \"destroy\")\n\t\t\t   */\n\t\t\tdlog : \"dialog\",\n\t\t\tdialog_opts : {\n\t\t\t\tminWidth: 470,\n\t\t\t\tdialogClass: \"ui-jqdialog\"\n\t\t\t},\n\t\t\t/* dlog_opts is either an option object to be passed \n\t\t\t   to \"dlog\", or (more likely) a function that creates\n\t\t\t   the options object.\n\t\t\t   The default produces a suitable options object for\n\t\t\t   ui.dialog */\n\t\t\tdlog_opts : function(options) {\n\t\t\t\tvar buttons = {};\n\t\t\t\tbuttons[options.bSubmit] = function() {\n\t\t\t\t\toptions.apply_perm();\n\t\t\t\t\toptions.cleanup(false);\n\t\t\t\t};\n\t\t\t\tbuttons[options.bCancel] = function() {\n\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t};\n\t\t\t\treturn $.extend(true, {\n\t\t\t\t\tbuttons: buttons,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\toptions.cleanup(true);\n\t\t\t\t\t},\n\t\t\t\t\tmodal: options.modal || false,\n\t\t\t\t\tresizable: options.resizable || true,\n\t\t\t\t\twidth: options.width + 70,\n\t\t\t\t\tresize: function () {\n\t\t\t\t\t\tvar widgetData = getMultiselectWidgetData(select),\n\t\t\t\t\t\t\t$thisDialogContent = widgetData.container.closest(\".ui-dialog-content\");\n\n\t\t\t\t\t\tif ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === \"object\") {\n\t\t\t\t\t\t\t$thisDialogContent[0].style.width = \"\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$thisDialogContent.css(\"width\", \"\"); // or just remove width style\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twidgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() - 1, 1));\n\t\t\t\t\t\twidgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() - 1, 1));\n\t\t\t\t\t}\n\t\t\t\t}, options.dialog_opts || {});\n\t\t\t},\n\t\t\t/* Function to get the permutation array, and pass it to the\n\t\t\t   \"done\" function */\n\t\t\tapply_perm : function() {\n\t\t\t\tvar perm = [];\n\t\t\t\t$('option',select).each(function() {\n\t\t\t\t\tif ($(this).is(\":selected\")) {\n\t\t\t\t\t\tself.jqGrid(\"showCol\", colModel[this.value].name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.jqGrid(\"hideCol\", colModel[this.value].name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t//fixedCols.slice(0);\n\t\t\t\t$('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });\n\t\t\t\t$.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });\n\t\t\t\t$.each(colMap, function() {\n\t\t\t\t\tvar ti = parseInt(this,10);\n\t\t\t\t\tperm = insert(perm,ti,ti);\n\t\t\t\t});\n\t\t\t\tif (opts.done) {\n\t\t\t\t\topts.done.call(self, perm);\n\t\t\t\t}\n\t\t\t\tself.jqGrid(\"setGridWidth\", self[0].p.width, self[0].p.shrinkToFit);\n\t\t\t},\n\t\t\t/* Function to cleanup the dialog, and select. Also calls the\n\t\t\t   done function with no permutation (to indicate that the\n\t\t\t   columnChooser was aborted */\n\t\t\tcleanup : function(calldone) {\n\t\t\t\tcall(opts.dlog, selector, 'destroy');\n\t\t\t\tcall(opts.msel, select, 'destroy');\n\t\t\t\tselector.remove();\n\t\t\t\tif (calldone && opts.done) {\n\t\t\t\t\topts.done.call(self);\n\t\t\t\t}\n\t\t\t},\n\t\t\tmsel_opts : {}\n\t\t}, regional, opts || {} );\n\t\tif($.ui) {\n\t\t\tif ($.ui.multiselect && $.ui.multiselect.defaults) {\n\t\t\t\tif (!$.jgrid._multiselect) {\n\t\t\t\t\t// should be in language file\n\t\t\t\t\talert(\"Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// ??? the next line uses $.ui.multiselect.defaults which will be typically undefined\n\t\t\t\topts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts);\n\t\t\t}\n\t\t}\n\t\tif (opts.caption) {\n\t\t\tselector.attr(\"title\", opts.caption);\n\t\t}\n\t\tif (opts.classname) {\n\t\t\tselector.addClass(opts.classname);\n\t\t\tselect.addClass(opts.classname);\n\t\t}\n\t\tif (opts.width) {\n\t\t\t$(\">div\",selector).css({width: opts.width,margin:\"0 auto\"});\n\t\t\tselect.css(\"width\", opts.width);\n\t\t}\n\t\tif (opts.height) {\n\t\t\t$(\">div\",selector).css(\"height\", opts.height);\n\t\t\tselect.css(\"height\", opts.height - 10);\n\t\t}\n\n\t\tselect.empty();\n\t\t$.each(colModel, function(i) {\n\t\t\tcolMap[this.name] = i;\n\t\t\tif (this.hidedlg) {\n\t\t\t\tif (!this.hidden) {\n\t\t\t\t\tfixedCols.push(i);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselect.append(\"<option value='\"+i+\"' \"+\n\t\t\t\t\t\t  (this.hidden?\"\":\"selected='selected'\")+\">\"+$.jgrid.stripHtml(colNames[i])+\"</option>\");\n\t\t});\n\n\t\tdopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;\n\t\tcall(opts.dlog, selector, dopts);\n\t\tmopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;\n\t\tcall(opts.msel, select, mopts);\n\n\t\t// fix height of elements of the multiselect widget\n\t\t$dialogContent = $(\"#colchooser_\" + $.jgrid.jqID(self[0].p.id));\n\n\t\t$dialogContent.css({ margin: \"auto\" });\n\t\t$dialogContent.find(\">div\").css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData = getMultiselectWidgetData(select);\n\t\tmultiselectData.container.css({ width: \"100%\", height: \"100%\", margin: \"auto\" });\n\n\t\tmultiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\t\tmultiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + \"%\", height: \"100%\", margin: \"auto\", boxSizing: \"border-box\" });\n\n\t\t// set height for both selectedList and availableList\n\t\tmultiselectData.selectedList.css(\"height\", \"auto\");\n\t\tmultiselectData.availableList.css(\"height\", \"auto\");\n\t\tlistHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height());\n\t\tlistHeight = Math.min(listHeight, $(window).height());\n\t\tmultiselectData.selectedList.css(\"height\", listHeight);\n\t\tmultiselectData.availableList.css(\"height\", listHeight);\n\t},\n\tsortableRows : function (opts) {\n\t\t// Can accept all sortable options and events\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid) { return; }\n\t\t\t// Currently we disable a treeGrid sortable\n\t\t\tif($t.p.treeGrid) { return; }\n\t\t\tif($.fn.sortable) {\n\t\t\t\topts = $.extend({\n\t\t\t\t\t\"cursor\":\"move\",\n\t\t\t\t\t\"axis\" : \"y\",\n\t\t\t\t\t\"items\": \" > .jqgrow\"\n\t\t\t\t\t},\n\t\t\t\topts || {});\n\t\t\t\tif(opts.start && $.isFunction(opts.start)) {\n\t\t\t\t\topts._start_ = opts.start;\n\t\t\t\t\tdelete opts.start;\n\t\t\t\t} else {opts._start_=false;}\n\t\t\t\tif(opts.update && $.isFunction(opts.update)) {\n\t\t\t\t\topts._update_ = opts.update;\n\t\t\t\t\tdelete opts.update;\n\t\t\t\t} else {opts._update_ = false;}\n\t\t\t\topts.start = function(ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"0\");\n\t\t\t\t\t$(\"td\",ui.item).each(function(i){\n\t\t\t\t\t\tthis.style.width = $t.grid.cols[i].style.width;\n\t\t\t\t\t});\n\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\tvar subgid = $(ui.item).attr(\"id\");\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._start_) {\n\t\t\t\t\t\topts._start_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\topts.update = function (ev,ui) {\n\t\t\t\t\t$(ui.item).css(\"border-width\",\"\");\n\t\t\t\t\tif($t.p.rownumbers === true) {\n\t\t\t\t\t\t$(\"td.jqgrid-rownum\",$t.rows).each(function( i ){\n\t\t\t\t\t\t\t$(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) );\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(opts._update_) {\n\t\t\t\t\t\topts._update_.apply(this,[ev,ui]);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\t$(\"tbody:first\",$t).sortable(opts);\n\t\t\t\t$(\"tbody:first > .jqgrow\",$t).disableSelection();\n\t\t\t}\n\t\t});\n\t},\n\tgridDnD : function(opts) {\n\t\treturn this.each(function(){\n\t\tvar $t = this, i, cn;\n\t\tif(!$t.grid) { return; }\n\t\t// Currently we disable a treeGrid drag and drop\n\t\tif($t.p.treeGrid) { return; }\n\t\tif(!$.fn.draggable || !$.fn.droppable) { return; }\n\t\tfunction updateDnD ()\n\t\t{\n\t\t\tvar datadnd = $.data($t,\"dnd\");\n\t\t\t$(\"tr.jqgrow:not(.ui-draggable)\",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);\n\t\t}\n\t\tvar appender = \"<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>\";\n\t\tif($(\"#jqgrid_dnd\")[0] === undefined) {\n\t\t\t$('body').append(appender);\n\t\t}\n\n\t\tif(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) {\n\t\t\tupdateDnD();\n\t\t\treturn;\n\t\t}\n\t\tvar tid;\n\t\topts = $.extend({\n\t\t\t\"drag\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\tstart : function (ev, ui) {\n\t\t\t\t\t\tvar i, subgid;\n\t\t\t\t\t\t// if we are in subgrid mode try to collapse the node\n\t\t\t\t\t\tif($t.p.subGrid) {\n\t\t\t\t\t\t\tsubgid = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t$($t).jqGrid('collapseSubGridRow',subgid);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// hack\n\t\t\t\t\t\t// drag and drop does not insert tr in table, when the table has no rows\n\t\t\t\t\t\t// we try to insert new empty row on the target(s)\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\tif($($.data($t,\"dnd\").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){\n\t\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.addClass(\"ui-state-highlight\");\n\t\t\t\t\t\t$(\"td\",ui.helper).each(function(i) {\n\t\t\t\t\t\t\tthis.style.width = $t.grid.headers[i].width+\"px\";\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }\n\t\t\t\t\t},\n\t\t\t\t\tstop :function(ev,ui) {\n\t\t\t\t\t\tvar i, ids;\n\t\t\t\t\t\tif(ui.helper.dropped && !opts.dragcopy) {\n\t\t\t\t\t\t\tids = $(ui.helper).attr(\"id\");\n\t\t\t\t\t\t\tif(ids === undefined) { ids = $(this).attr(\"id\"); }\n\t\t\t\t\t\t\t$($t).jqGrid('delRowData',ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if we have a empty row inserted from start event try to delete it\n\t\t\t\t\t\tfor (i=0;i<$.data($t,\"dnd\").connectWith.length;i++){\n\t\t\t\t\t\t\t$($.data($t,\"dnd\").connectWith[i]).jqGrid('delRowData','jqg_empty_row');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }\n\t\t\t\t\t}\n\t\t\t\t},opts.drag_opts || {});\n\t\t\t},\n\t\t\t\"drop\" : function (opts) {\n\t\t\t\treturn $.extend({\n\t\t\t\t\taccept: function(d) {\n\t\t\t\t\t\tif (!$(d).hasClass('jqgrow')) { return d;}\n\t\t\t\t\t\ttid = $(d).closest(\"table.ui-jqgrid-btable\");\n\t\t\t\t\t\tif(tid.length > 0 && $.data(tid[0],\"dnd\") !== undefined) {\n\t\t\t\t\t\t\tvar cn = $.data(tid[0],\"dnd\").connectWith;\n\t\t\t\t\t\t\treturn $.inArray('#'+$.jgrid.jqID(this.id),cn) !== -1 ? true : false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t},\n\t\t\t\t\tdrop: function(ev, ui) {\n\t\t\t\t\t\tif (!$(ui.draggable).hasClass('jqgrow')) { return; }\n\t\t\t\t\t\tvar accept = $(ui.draggable).attr(\"id\");\n\t\t\t\t\t\tvar getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept);\n\t\t\t\t\t\tif(!opts.dropbyname) {\n\t\t\t\t\t\t\tvar j =0, tmpdata = {}, nm, key;\n\t\t\t\t\t\t\tvar dropmodel = $(\"#\"+$.jgrid.jqID(this.id)).jqGrid('getGridParam','colModel');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tfor (key in getdata) {\n\t\t\t\t\t\t\t\t\tif (getdata.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tnm = dropmodel[j].name;\n\t\t\t\t\t\t\t\t\tif( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' )) {\n\t\t\t\t\t\t\t\t\t\tif(getdata.hasOwnProperty(key) && dropmodel[j]) {\n\t\t\t\t\t\t\t\t\t\t\ttmpdata[nm] = getdata[key];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tgetdata = tmpdata;\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tui.helper.dropped = true;\n\t\t\t\t\t\tif($.data(tid[0],\"dnd\").beforedrop && $.isFunction($.data(tid[0],\"dnd\").beforedrop) ) {\n\t\t\t\t\t\t\t//parameters to this callback - event, element, data to be inserted, sender, reciever\n\t\t\t\t\t\t\t// should return object which will be inserted into the reciever\n\t\t\t\t\t\t\tvar datatoinsert = $.data(tid[0],\"dnd\").beforedrop.call(this,ev,ui,getdata,$(tid[0]),$(this));\n\t\t\t\t\t\t\tif (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === \"object\") { getdata = datatoinsert; }\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ui.helper.dropped) {\n\t\t\t\t\t\t\tvar grid;\n\t\t\t\t\t\t\tif(opts.autoid) {\n\t\t\t\t\t\t\t\tif($.isFunction(opts.autoid)) {\n\t\t\t\t\t\t\t\t\tgrid = opts.autoid.call(this,getdata);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tgrid = Math.ceil(Math.random()*1000);\n\t\t\t\t\t\t\t\t\tgrid = opts.autoidprefix+grid;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// NULL is interpreted as undefined while null as object\n\t\t\t\t\t\t\t$(\"#\"+$.jgrid.jqID(this.id)).jqGrid('addRowData',grid,getdata,opts.droppos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }\n\t\t\t\t\t}}, opts.drop_opts || {});\n\t\t\t},\n\t\t\t\"onstart\" : null,\n\t\t\t\"onstop\" : null,\n\t\t\t\"beforedrop\": null,\n\t\t\t\"ondrop\" : null,\n\t\t\t\"drop_opts\" : {\n\t\t\t\t\"activeClass\": \"ui-state-active\",\n\t\t\t\t\"hoverClass\": \"ui-state-hover\"\n\t\t\t},\n\t\t\t\"drag_opts\" : {\n\t\t\t\t\"revert\": \"invalid\",\n\t\t\t\t\"helper\": \"clone\",\n\t\t\t\t\"cursor\": \"move\",\n\t\t\t\t\"appendTo\" : \"#jqgrid_dnd\",\n\t\t\t\t\"zIndex\": 5000\n\t\t\t},\n\t\t\t\"dragcopy\": false,\n\t\t\t\"dropbyname\" : false,\n\t\t\t\"droppos\" : \"first\",\n\t\t\t\"autoid\" : true,\n\t\t\t\"autoidprefix\" : \"dnd_\"\n\t\t}, opts || {});\n\t\t\n\t\tif(!opts.connectWith) { return; }\n\t\topts.connectWith = opts.connectWith.split(\",\");\n\t\topts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});\n\t\t$.data($t,\"dnd\",opts);\n\t\t\n\t\tif($t.p.reccount !== 0 && !$t.p.jqgdnd) {\n\t\t\tupdateDnD();\n\t\t}\n\t\t$t.p.jqgdnd = true;\n\t\tfor (i=0;i<opts.connectWith.length;i++){\n\t\t\tcn =opts.connectWith[i];\n\t\t\t$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);\n\t\t}\n\t\t});\n\t},\n\tgridResize : function(opts) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this, gID = $.jgrid.jqID($t.p.id), req;\n\t\t\tif(!$t.grid || !$.fn.resizable) { return; }\n\t\t\topts = $.extend({}, opts || {});\n\t\t\tif(opts.alsoResize ) {\n\t\t\t\topts._alsoResize_ = opts.alsoResize;\n\t\t\t\tdelete opts.alsoResize;\n\t\t\t} else {\n\t\t\t\topts._alsoResize_ = false;\n\t\t\t}\n\t\t\tif(opts.stop && $.isFunction(opts.stop)) {\n\t\t\t\topts._stop_ = opts.stop;\n\t\t\t\tdelete opts.stop;\n\t\t\t} else {\n\t\t\t\topts._stop_ = false;\n\t\t\t}\n\t\t\topts.stop = function (ev, ui) {\n\t\t\t\t$($t).jqGrid('setGridParam',{height:$(\"#gview_\"+gID+\" .ui-jqgrid-bdiv\").height()});\n\t\t\t\t$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);\n\t\t\t\tif(opts._stop_) { opts._stop_.call($t,ev,ui); }\n\t\t\t\tif($t.p.caption) {\n\t\t\t\t\t$(\"#gbox_\"+ gID).css({ 'height': 'auto' });\n\t\t\t\t}\n\t\t\t\tif($t.p.frozenColumns) {\n\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\treq = setTimeout(function(){\n\t\t\t\t\t\tif (req ) clearTimeout(req);\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"destroyFrozenColumns\");\n\t\t\t\t\t\t$(\"#\" + gID).jqGrid(\"setFrozenColumns\");\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t\tif(opts._alsoResize_) {\n\t\t\t\tvar optstest = \"{\\'#gview_\"+gID+\" .ui-jqgrid-bdiv\\':true,'\" +opts._alsoResize_+\"':true}\";\n\t\t\t\topts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this\n\t\t\t} else {\n\t\t\t\topts.alsoResize = $(\".ui-jqgrid-bdiv\",\"#gview_\"+gID);\n\t\t\t}\n\t\t\tdelete opts._alsoResize_;\n\t\t\t$(\"#gbox_\"+gID).resizable(opts);\n\t\t});\n\t}\n});\n\n//module begin\nfunction _pivotfilter (fn, context) {\n\t/*jshint validthis: true */\n\tvar i,\n\t\tvalue,\n\t\tresult = [],\n\t\tlength;\n\t\t\n\tif (!this || typeof fn !== 'function' || (fn instanceof RegExp)) {\n\t\tthrow new TypeError();\n\t}\n\n\tlength = this.length;\n\n\tfor (i = 0; i < length; i++) {\n\t\tif (this.hasOwnProperty(i)) {\n\t\t\tvalue = this[i];\n\t\t\tif (fn.call(context, value, i, this)) {\n\t\t\t\tresult.push(value);\n\t\t\t\t// We need break in order to cancel loop \n\t\t\t\t// in case the row is found\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n}\n$.assocArraySize = function(obj) {\n    // http://stackoverflow.com/a/6700/11236\n    var size = 0, key;\n    for (key in obj) {\n        if (obj.hasOwnProperty(key)) {\n        \tsize++;\n        }\n    }\n    return size;\n};\n\n$.jgrid.extend({\n\tpivotSetup : function( data, options ){\n\t\t// data should come in json format\n\t\t// The function return the new colModel and the transformed data\n\t\t// again with group setup options which then will be passed to the grid\n\t\tvar columns =[],\n\t\tpivotrows =[],\n\t\tsummaries = [],\n\t\tmember=[],\n\t\tlabels=[],\n\t\tgroupOptions = {\n\t\t\tgrouping : true,\n\t\t\tgroupingView :  {\n\t\t\t\tgroupField : [],\n\t\t\t\tgroupSummary: [],\n\t\t\t\tgroupSummaryPos:[]\n\t\t\t}\n\t\t},\n\t\theaders = [],\n\t\to = $.extend ( {\n\t\t\trowTotals : false,\n\t\t\trowTotalsText : 'Total',\n\t\t\t// summary columns\n\t\t\tcolTotals : false,\n\t\t\tgroupSummary : true,\n\t\t\tgroupSummaryPos :  'header',\n\t\t\tfrozenStaticCols : false\n\t\t}, options || {});\n\t\tthis.each(function(){\n\n\t\t\tvar \n\t\t\t\trow,\n\t\t\t\trowindex,\n\t\t\t\ti,\n\t\t\t\t\n\t\t\t\trowlen = data.length,\n\t\t\t\txlen, ylen, aggrlen,\n\t\t\t\ttmp,\n\t\t\t\tnewObj,\n\t\t\t\tr=0;\n\t\t\t// utility funcs\n\t\t\t/* \n\t\t\t * Filter the data to a given criteria. Return the firt occurance\n\t\t\t */\n\t\t\tfunction find(ar, fun, extra) {\n\t\t\t\tvar res;\n\t\t\t\tres = _pivotfilter.call(ar, fun, extra);\n\t\t\t\treturn res.length > 0 ? res[0] : null;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Check if the grouped row column exist (See find)\n\t\t\t * If the row is not find in pivot rows retun null,\n\t\t\t * otherviese the column\n\t\t\t */\n\t\t\tfunction findGroup(item, index) {\n\t\t\t\t/*jshint validthis: true */\n\t\t\t\tvar j = 0, ret = true, i;\n\t\t\t\tfor(i in item) {\n\t\t\t\t\tif( item.hasOwnProperty(i) ) {\n\t\t\t\t\t\tif(item[i] != this[j]) {\n\t\t\t\t\t\t\tret =  false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t\tif(j>=this.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ret) {\n\t\t\t\t\trowindex =  index;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * Perform calculations of the pivot values.\n\t\t\t */\n\t\t\tfunction calculation(oper, v, field, rc, _cnt)  {\n\t\t\t\tvar ret;\n\t\t\t\tif( $.isFunction(oper)) {\n\t\t\t\t\tret = oper.call(this, v, field, rc);\n\t\t\t\t} else {\n\t\t\t\t\tswitch (oper) {\n\t\t\t\t\t\tcase  \"sum\" : \n\t\t\t\t\t\t\tret = parseFloat(v||0) + parseFloat((rc[field]||0));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"count\" :\n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tv=0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(rc.hasOwnProperty(field)) {\n\t\t\t\t\t\t\t\tret = v+1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"min\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret =Math.min(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"max\" : \n\t\t\t\t\t\t\tif(v===\"\" || v == null) {\n\t\t\t\t\t\t\t\tret = parseFloat(rc[field]||0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tret = Math.max(parseFloat(v),parseFloat(rc[field]||0));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"avg\" : //avg grouping\n\t\t\t\t\t\t\tret = (parseFloat(v||0) * (_cnt -1) + parseFloat(rc[field]||0) ) /_cnt;\n\t\t\t\t\t\t\tbreak;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\t/*\n\t\t\t * The function agragates the values of the pivot grid.\n\t\t\t * Return the current row with pivot summary values\n\t\t\t */\n\t\t\tfunction agregateFunc ( row, aggr, value, curr) {\n\t\t\t\t// default is sum\n\t\t\t\tvar arrln = aggr.length, i, label, j, jv, mainval=\"\",swapvals=[], swapstr, _cntavg = 1, lbl;\n\t\t\t\tif($.isArray(value)) {\n\t\t\t\t\tjv = value.length;\n\t\t\t\t\tswapvals = value;\n\t\t\t\t} else {\n\t\t\t\t\tjv = 1;\n\t\t\t\t\tswapvals[0]=value;\n\t\t\t\t}\n\t\t\t\tmember = [];\n\t\t\t\tlabels = [];\n\t\t\t\tmember.root = 0;\n\t\t\t\tfor(j=0;j<jv;j++) {\n\t\t\t\t\tvar  tmpmember = [], vl;\n\t\t\t\t\tfor(i=0; i < arrln; i++) {\n\t\t\t\t\t\tswapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust';\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif(value == null) {\n\t\t\t\t\t\t\tlabel = $.trim(aggr[i].member)+\"_\" + swapstr;\n\t\t\t\t\t\t\tvl = label;\n\t\t\t\t\t\t\tswapvals[0]= aggr[i].label || (swapstr + \" \" +$.trim(aggr[i].member));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvl = value[j].replace(/\\s+/g, '');\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tlabel = (arrln === 1 ? mainval + vl : mainval + vl + \"_\" + swapstr + \"_\" + String(i));\n\t\t\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t\t\tswapvals[j] = value[j];\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//if(j<=1 && vl !==  '_r_Totals' && mainval === \"\") { // this does not fix full the problem\n\t\t\t\t\t\t\t//mainval = vl;\n\t\t\t\t\t\t//}\n\t\t\t\t\t\tlabel = !isNaN(parseInt(label,10)) ? label + \" \" : label;\n\t\t\t\t\t\tif(aggr[i].aggregator === 'avg') {\n\t\t\t\t\t\t\tlbl = rowindex === -1 ? pivotrows.length+\"_\"+label : rowindex+\"_\"+label;\n\t\t\t\t\t\t\tif(!_avg[lbl]) {\n\t\t\t\t\t\t\t\t_avg[lbl] = 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_avg[lbl]++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_cntavg = _avg[lbl];\n\t\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\tcurr[label] =  tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg);\n\t\t\t\t\t}\n\t\t\t\t\tmainval += (value && value[j] != null) ? value[j].replace(/\\s+/g, '') : ''\n\t\t\t\t\t//vl = !isNaN(parseInt(vl,10)) ? vl + \" \" : vl;\n\t\t\t\t\tmember[label] = tmpmember;\n\t\t\t\t\tlabels[label] = swapvals[j];\n\t\t\t\t}\n\t\t\t\treturn curr;\n\t\t\t}\n\t\t\t// Making the row totals without to add in yDimension\n\t\t\tif(o.rowTotals && o.yDimension.length > 0) {\n\t\t\t\tvar dn = o.yDimension[0].dataName;\n\t\t\t\to.yDimension.splice(0,0,{dataName:dn});\n\t\t\t\to.yDimension[0].converter =  function(){ return '_r_Totals'; };\n\t\t\t}\n\t\t\t// build initial columns (colModel) from xDimension\n\t\t\txlen = $.isArray(o.xDimension) ? o.xDimension.length : 0;\n\t\t\tylen = o.yDimension.length;\n\t\t\taggrlen  = $.isArray(o.aggregates) ? o.aggregates.length : 0;\n\t\t\tif(xlen === 0 || aggrlen === 0) {\n\t\t\t\tthrow(\"xDimension or aggregates optiona are not set!\");\n\t\t\t}\n\t\t\tvar colc;\n\t\t\tfor(i = 0; i< xlen; i++) {\n\t\t\t\tcolc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols};\n\t\t\t\tif(o.xDimension[i].isGroupField == null) {\n\t\t\t\t\to.xDimension[i].isGroupField =  true;\n\t\t\t\t}\n\t\t\t\tcolc = $.extend(true, colc, o.xDimension[i]);\n\t\t\t\tcolumns.push( colc );\n\t\t\t}\n\t\t\tvar groupfields = xlen - 1, tree={}, _avg=[];\n\t\t\t//tree = { text: 'root', leaf: false, children: [] };\n\t\t\t//loop over alll the source data\n\t\t\twhile( r < rowlen ) {\n\t\t\t\trow = data[r];\n\t\t\t\tvar xValue = [];\n\t\t\t\tvar yValue = []; \n\t\t\t\ttmp = {};\n\t\t\t\ti = 0;\n\t\t\t\t// build the data from xDimension\n\t\t\t\tdo {\n\t\t\t\t\txValue[i]  = $.trim(row[o.xDimension[i].dataName]);\n\t\t\t\t\ttmp[o.xDimension[i].dataName] = xValue[i];\n\t\t\t\t\ti++;\n\t\t\t\t} while( i < xlen );\n\t\t\t\t\n\t\t\t\tvar k = 0;\n\t\t\t\trowindex = -1;\n\t\t\t\t// check to see if the row is in our new pivotrow set\n\t\t\t\tnewObj = find(pivotrows, findGroup, xValue);\n\t\t\t\tif(!newObj) {\n\t\t\t\t\t// if the row is not in our set\n\t\t\t\t\tk = 0;\n\t\t\t\t\t// if yDimension is set\n\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t// build the cols set in yDimension\n\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t// Check to see if we have user defined conditions\n\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// make the colums based on aggregates definition \n\t\t\t\t\t\t// and return the members for late calculation\n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, yValue, tmp );\n\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t// if not set use direct the aggregates \n\t\t\t\t\t\ttmp = agregateFunc( row, o.aggregates, null, tmp );\n\t\t\t\t\t}\n\t\t\t\t\t// add the result in pivot rows\n\t\t\t\t\tpivotrows.push( tmp );\n\t\t\t\t} else {\n\t\t\t\t\t// the pivot exists\n\t\t\t\t\tif( rowindex >= 0) {\n\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t// make the recalculations \n\t\t\t\t\t\tif(ylen>=1) {\n\t\t\t\t\t\t\tfor(k=0;k<ylen;k++) {\n\t\t\t\t\t\t\t\tyValue[k] = $.trim(row[o.yDimension[k].dataName]);\n\t\t\t\t\t\t\t\tif(o.yDimension[k].converter && $.isFunction(o.yDimension[k].converter)) {\n\t\t\t\t\t\t\t\t\tyValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, yValue, newObj );\n\t\t\t\t\t\t} else  if( ylen === 0 ) {\n\t\t\t\t\t\t\tnewObj = agregateFunc( row, o.aggregates, null, newObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// update the row\n\t\t\t\t\t\tpivotrows[rowindex] = newObj;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar kj=0, current = null,existing = null, kk;\n\t\t\t\t// Build a JSON tree from the member (see aggregateFunc) \n\t\t\t\t// to make later the columns \n\t\t\t\t// \n\t\t\t\tfor (kk in member) {\n\t\t\t\t\tif(member.hasOwnProperty( kk )) {\n\t\t\t\t\t\tif(kj === 0) {\n\t\t\t\t\t\t\tif (!tree.children||tree.children === undefined){\n\t\t\t\t\t\t\t\ttree = { text: kk, level : 0, children: [], label: kk  };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurrent = tree.children;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\texisting = null;\n\t\t\t\t\t\t\tfor (i=0; i < current.length; i++) {\n\t\t\t\t\t\t\t\tif (current[i].text === kk) {\n\t\t\t\t\t\t\t\t//current[i].fields=member[kk];\n\t\t\t\t\t\t\t\t\texisting = current[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (existing) {\n\t\t\t\t\t\t\t\tcurrent = existing.children;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrent.push({ children: [], text: kk, level: kj,  fields: member[kk], label: labels[kk] });\n\t\t\t\t\t\t\t\tcurrent = current[current.length - 1].children;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tkj++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tr++;\n\t\t\t}\n\t\t\t_avg = null; // free mem\n\t\t\tvar  lastval=[], initColLen = columns.length, swaplen = initColLen;\n\t\t\tif(ylen>0) {\n\t\t\t\theaders[ylen-1] = {\tuseColSpanStyle: false,\tgroupHeaders: []};\n\t\t\t}\n\t\t\t/*\n\t\t\t * Recursive function which uses the tree to build the \n\t\t\t * columns from the pivot values and set the group Headers\n\t\t\t */\n\t\t\tfunction list(items) {\n\t\t\t\tvar l, j, key, k, col;\n\t\t\t\tfor (key in items) {\t // iterate\n\t\t\t\t\tif (items.hasOwnProperty(key)) {\n\t\t\t\t\t// write amount of spaces according to level\n\t\t\t\t\t// and write name and newline\n\t\t\t\t\t\tif(typeof items[key] !== \"object\") {\n\t\t\t\t\t\t\t// If not a object build the header of the appropriate level\n\t\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\t\tif(lastval[items.level] === undefined) {\n\t\t\t\t\t\t\t\t\tlastval[items.level] ='';\n\t\t\t\t\t\t\t\t\tif(items.level>0 && items.text.indexOf('_r_Totals') === -1) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1] = {\n\t\t\t\t\t\t\t\t\t\t\tuseColSpanStyle: false,\n\t\t\t\t\t\t\t\t\t\t\tgroupHeaders: []\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) {\n\t\t\t\t\t\t\t\t\tif(items.level>0) {\n\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders.push({\n\t\t\t\t\t\t\t\t\t\t\ttitleText: items.label,\n\t\t\t\t\t\t\t\t\t\t\tnumberOfColumns : 0\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tvar collen = headers[items.level-1].groupHeaders.length-1,\n\t\t\t\t\t\t\t\t\t\tcolpos = collen === 0 ? swaplen : initColLen;//+aggrlen;\n\t\t\t\t\t\t\t\t\t\tif(items.level-1=== (o.rowTotals ? 1 : 0)) {\n\t\t\t\t\t\t\t\t\t\t\tif(collen>0) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar l1=0;\n\t\t\t\t\t\t\t\t\t\t\t\tfor(var kk=0; kk<collen; kk++) { \n\t\t\t\t\t\t\t\t\t\t\t\t\tl1 += headers[items.level-1].groupHeaders[kk].numberOfColumns;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif(l1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolpos = l1  + xlen;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif(columns[colpos]) {\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name;\n\t\t\t\t\t\t\t\t\t\t\theaders[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tinitColLen = columns.length;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastval[items.level] = items.text;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// This is in case when the member contain more than one summary item\n\t\t\t\t\t\t\tif(items.level === ylen  && key==='level' && ylen >0) {\n\t\t\t\t\t\t\t\tif( aggrlen > 1){\n\t\t\t\t\t\t\t\t\tvar ll=1;\n\t\t\t\t\t\t\t\t\tfor( l in items.fields) {\n\t\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty(l)) {\n\t\t\t\t\t\t\t\t\t\t\tif(ll===1) {\n\t\t\t\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tll++;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\theaders[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\theaders.splice(ylen-1,1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// if object, call recursively\n\t\t\t\t\t\tif (items[key] != null && typeof items[key] === \"object\") {\n\t\t\t\t\t\t\tlist(items[key]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Finally build the columns\n\t\t\t\t\t\tif( key === 'level') {\n\t\t\t\t\t\t\tif( items.level > 0 &&  (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){\n\t\t\t\t\t\t\t\tj=0;\n\t\t\t\t\t\t\t\tfor(l in items.fields) {\n\t\t\t\t\t\t\t\t\tif(items.fields.hasOwnProperty( l ) ) {\n\t\t\t\t\t\t\t\t\t\tcol = {};\n\t\t\t\t\t\t\t\t\t\tfor(k in o.aggregates[j]) {\n\t\t\t\t\t\t\t\t\t\t\tif(o.aggregates[j].hasOwnProperty(k)) {\n\t\t\t\t\t\t\t\t\t\t\t\tswitch( k ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'member':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'label':\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'aggregator':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcol[k] = o.aggregates[j][k];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\tif(aggrlen > 1) {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = l;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = o.aggregates[j].label || items.label;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tcol.name = items.text;\n\t\t\t\t\t\t\t\t\t\t\tcol.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcolumns.push (col);\n\t\t\t\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlist( tree );\n\t\t\tvar nm;\n\t\t\t// loop again trougth the pivot rows in order to build grand total \n\t\t\tif(o.colTotals) {\n\t\t\t\tvar plen = pivotrows.length;\n\t\t\t\twhile(plen--) {\n\t\t\t\t\tfor(i=xlen;i<columns.length;i++) {\n\t\t\t\t\t\tnm = columns[i].name;\n\t\t\t\t\t\tif(!summaries[nm]) {\n\t\t\t\t\t\t\tsummaries[nm] = parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsummaries[nm] += parseFloat(pivotrows[plen][nm] || 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// based on xDimension  levels build grouping \n\t\t\tif( groupfields > 0) {\n\t\t\t\tfor(i=0;i<groupfields;i++) {\n\t\t\t\t\tif(columns[i].isGroupField) {\n\t\t\t\t\t\tgroupOptions.groupingView.groupField.push(columns[i].name);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummary.push(o.groupSummary);\n\t\t\t\t\t\tgroupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// no grouping is needed\n\t\t\t\tgroupOptions.grouping = false;\n\t\t\t}\n\t\t\tgroupOptions.sortname = columns[groupfields].name;\n\t\t\tgroupOptions.groupingView.hideFirstGroupCol = true;\n\t\t});\n\t\t// return the final result.\n\t\treturn { \"colModel\" : columns, \"rows\": pivotrows, \"groupOptions\" : groupOptions, \"groupHeaders\" :  headers, summary : summaries };\n\t},\n\tjqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) {\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\n\t\t\tfunction pivot( data) {\n\t\t\t\tif(!$.isArray(data)) {\n\t\t\t\t\tthrow \"data provides is not an array\";\n\t\t\t\t}\n\t\t\t\tvar pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt),\n\t\t\t\tfooterrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false,\n\t\t\t\tquery= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len;\n\t\t\t\tif(pivotOpt.ignoreCase) {\n\t\t\t\t\tquery = query.ignoreCase();\n\t\t\t\t}\n\t\t\t\tfor(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) {\n\t\t\t\t\tso = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc';\n\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st);\n\t\t\t\t}\n\t\t\t\tlen = pivotOpt.xDimension.length;\n\t\t\t\tif(gridOpt.sortname) { // should be a part of xDimension\n\t\t\t\t\tso = gridOpt.sortorder ? gridOpt.sortorder : 'asc';\n\t\t\t\t\tst = 'text';\n\t\t\t\t\tfor( i=0; i< len; i++) {\n\t\t\t\t\t\tif(pivotOpt.xDimension[i].dataName === gridOpt.sortname) {\n\t\t\t\t\t\t\tst = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tquery.orderBy(gridOpt.sortname, so, st, '', st);\n\t\t\t\t} else {\n\t\t\t\t\tif(pivotGrid.groupOptions.sortname && len) {\n\t\t\t\t\t\tso = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc';\n\t\t\t\t\t\tst = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text';\n\t\t\t\t\t\tquery.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st);\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tjQuery($t).jqGrid($.extend(true, {\n\t\t\t\t\tdatastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}),\n\t\t\t\t\tdatatype: \"jsonstring\",\n\t\t\t\t\tfooterrow : footerrow,\n\t\t\t\t\tuserDataOnFooter: footerrow,\n\t\t\t\t\tcolModel: pivotGrid.colModel,\n\t\t\t\t\tviewrecords: true,\n\t\t\t\t\tsortname: pivotOpt.xDimension[0].dataName // ?????\n\t\t\t\t}, pivotGrid.groupOptions, gridOpt || {}));\n\t\t\t\tvar gHead = pivotGrid.groupHeaders;\n\t\t\t\tif(gHead.length) {\n\t\t\t\t\tfor( i = 0;i < gHead.length ; i++) {\n\t\t\t\t\t\tif(gHead[i] && gHead[i].groupHeaders.length) {\n\t\t\t\t\t\t\tjQuery($t).jqGrid('setGroupHeaders',gHead[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(pivotOpt.frozenStaticCols) {\n\t\t\t\t\tjQuery($t).jqGrid(\"setFrozenColumns\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(typeof data === \"string\") {\n\t\t\t\t$.ajax($.extend({\n\t\t\t\t\turl : data,\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tsuccess : function(response) {\n\t\t\t\t\t\tpivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') );\n\t\t\t\t\t}\n\t\t\t\t}, ajaxOpt || {}) );\n\t\t\t} else {\n\t\t\t\tpivot( data );\n\t\t\t}\n\t\t});\n\t}\n});\n\n//module begin\n$.jgrid.extend({\nsetSubGrid : function () {\n\treturn this.each(function (){\n\t\tvar $t = this, cm, i,\n\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid,\n\t\tsuboptions = {\n\t\t\tplusicon : classes.icon_plus,\n\t\t\tminusicon : classes.icon_minus,\n\t\t\topenicon:  classes.icon_open,\n\t\t\texpandOnLoad:  false,\n\t\t\tdelayOnLoad : 50,\n\t\t\tselectOnExpand : false,\n\t\t\tselectOnCollapse : false,\n\t\t\treloadOnExpand : true\n\t\t};\n\t\t$t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {});\n\t\t$t.p.colNames.unshift(\"\");\n\t\t$t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});\n\t\tcm = $t.p.subGridModel;\n\t\tif(cm[0]) {\n\t\t\tcm[0].align = $.extend([],cm[0].align || []);\n\t\t\tfor(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}\n\t\t}\n\t});\n},\naddSubGridCell :function (pos,iRow) {\n\tvar prp='', ic, sid, icb ;\n\tthis.each(function(){\n\t\tprp = this.formatCol(pos,iRow);\n\t\tsid= this.p.id;\n\t\tic = this.p.subGridOptions.plusicon;\n\t\ticb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common;\n\t});\n\treturn \"<td role=\\\"gridcell\\\" aria-describedby=\\\"\"+sid+\"_subgrid\\\" class=\\\"ui-sgcollapsed sgcollapsed\\\" \"+prp+\"><a style='cursor:pointer;' class='ui-sghref'><span class='\" + icb.icon_base +\" \"+ic+\"'></span></a></td>\";\n},\naddSubGrid : function( pos, sind ) {\n\treturn this.each(function(){\n\t\tvar ts = this;\n\t\tif (!ts.grid ) { return; }\n\t\tvar base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base,\n\t\t\tcommon = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common;\n\t\t//-------------------------\n\t\tvar subGridCell = function(trdiv,cell,pos)\n\t\t{\n\t\t\tvar tddiv = $(\"<td align='\"+ts.p.subGridModel[0].align[pos]+\"'></td>\").html(cell);\n\t\t\t$(trdiv).append(tddiv);\n\t\t};\n\t\tvar subGridXml = function(sjxml, sbid){\n\t\t\tvar tddiv, i,  sgmap,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox+\" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.xmlReader.subgrid;\n\t\t\t\t$(sgmap.root+\" \"+sgmap.row, sjxml).each( function(){\n\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t$(sgmap.cell,this).each( function(i) {\n\t\t\t\t\t\t\tsubGridCell(trdiv, $(this).text() || '&#160;',i);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\tif (f) {\n\t\t\t\t\t\t\tfor (i=0;i<f.length;i++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, $(f[i],this).text() || '&#160;',i);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar subGridJson = function(sjxml, sbid){\n\t\t\tvar tddiv,result,i,cur, sgmap,j,\n\t\t\tdummy = $(\"<table class='\" + base.rowTable + \" ui-common-table'><tbody></tbody></table>\"),\n\t\t\ttrdiv = $(\"<tr></tr>\");\n\t\t\tfor (i = 0; i<ts.p.subGridModel[0].name.length; i++) {\n\t\t\t\ttddiv = $(\"<th class='\" + base.headerBox + \" ui-th-subgrid ui-th-column ui-th-\"+ts.p.direction+\"'></th>\");\n\t\t\t\t$(tddiv).html(ts.p.subGridModel[0].name[i]);\n\t\t\t\t$(tddiv).width( ts.p.subGridModel[0].width[i]);\n\t\t\t\t$(trdiv).append(tddiv);\n\t\t\t}\n\t\t\t$(dummy).append(trdiv);\n\t\t\tif (sjxml){\n\t\t\t\tsgmap = ts.p.jsonReader.subgrid;\n\t\t\t\tresult = $.jgrid.getAccessor(sjxml, sgmap.root);\n\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\tfor (i=0;i<result.length;i++) {\n\t\t\t\t\t\tcur = result[i];\n\t\t\t\t\t\ttrdiv = $(\"<tr class='\" + common.content+\" ui-subtblcell'></tr>\");\n\t\t\t\t\t\tif(sgmap.repeatitems === true) {\n\t\t\t\t\t\t\tif(sgmap.cell) { cur=cur[sgmap.cell]; }\n\t\t\t\t\t\t\tfor (j=0;j<cur.length;j++) {\n\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[j] || '&#160;',j);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;\n\t\t\t\t\t\t\tif(f.length) {\n\t\t\t\t\t\t\t\tfor (j=0;j<f.length;j++) {\n\t\t\t\t\t\t\t\t\tsubGridCell(trdiv, cur[f[j]] || '&#160;',j);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dummy).append(trdiv);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar pID = $(\"table:first\",ts.grid.bDiv).attr(\"id\")+\"_\";\n\t\t\t$(\"#\"+$.jgrid.jqID(pID+sbid)).append(dummy);\n\t\t\tts.grid.hDiv.loading = false;\n\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).hide();\n\t\t\treturn false;\n\t\t};\n\t\tvar populatesubgrid = function( rd )\n\t\t{\n\t\t\tvar sid,dp, i, j;\n\t\t\tsid = $(rd).attr(\"id\");\n\t\t\tdp = {nd_: (new Date().getTime())};\n\t\t\tdp[ts.p.prmNames.subgridid]=sid;\n\t\t\tif(!ts.p.subGridModel[0]) { return false; }\n\t\t\tif(ts.p.subGridModel[0].params) {\n\t\t\t\tfor(j=0; j < ts.p.subGridModel[0].params.length; j++) {\n\t\t\t\t\tfor(i=0; i<ts.p.colModel.length; i++) {\n\t\t\t\t\t\tif(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) {\n\t\t\t\t\t\t\tdp[ts.p.colModel[i].name]= $(\"td:eq(\"+i+\")\",rd).text().replace(/\\&#160\\;/ig,'');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!ts.grid.hDiv.loading) {\n\t\t\t\tts.grid.hDiv.loading = true;\n\t\t\t\t$(\"#load_\"+$.jgrid.jqID(ts.p.id)).show();\n\t\t\t\tif(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }\n\t\t\t\tif($.isFunction(ts.p.subgridtype)) {\n\t\t\t\t\tts.p.subgridtype.call(ts, dp);\n\t\t\t\t} else {\n\t\t\t\t\tts.p.subgridtype = ts.p.subgridtype.toLowerCase();\n\t\t\t\t}\n\t\t\t\tswitch(ts.p.subgridtype) {\n\t\t\t\t\tcase \"xml\":\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\t$.ajax($.extend({\n\t\t\t\t\t\ttype:ts.p.mtype,\n\t\t\t\t\t\turl: $.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl,\n\t\t\t\t\t\tdataType:ts.p.subgridtype,\n\t\t\t\t\t\tdata: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp,\n\t\t\t\t\t\tcomplete: function(sxml) {\n\t\t\t\t\t\t\tif(ts.p.subgridtype === \"xml\") {\n\t\t\t\t\t\t\t\tsubGridXml(sxml.responseXML, sid);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsubGridJson($.jgrid.parse(sxml.responseText),sid);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsxml=null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\tvar _id, pID,atd, nhc=0, bfsc, $r;\n\t\t$.each(ts.p.colModel,function(){\n\t\t\tif(this.hidden === true || this.name === 'rn' || this.name === 'cb') {\n\t\t\t\tnhc++;\n\t\t\t}\n\t\t});\n\t\tvar len = ts.rows.length, i=1,hsret, ishsg = $.isFunction(ts.p.isHasSubGrid);\n\t\tif( sind !== undefined && sind > 0) {\n\t\t\ti = sind;\n\t\t\tlen = sind+1;\n\t\t}\n\t\twhile(i < len) {\n\t\t\tif($(ts.rows[i]).hasClass('jqgrow')) {\n\t\t\t\tif(ts.p.scroll) {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).off('click');\n\t\t\t\t}\n\t\t\t\thsret = null;\n\t\t\t\tif(ishsg) {\n\t\t\t\t\tvar hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id);\n\t\t\t\t}\n\t\t\t\tif(hsret === false) {\n\t\t\t\t\tts.rows[i].cells[pos].innerHTML = \"\";\n\t\t\t\t} else {\n\t\t\t\t\t$(ts.rows[i].cells[pos]).on('click', function() {\n\t\t\t\t\t\tvar tr = $(this).parent(\"tr\")[0];\n\t\t\t\t\t\tpID = ts.p.id;\n\t\t\t\t\t\t_id = tr.id;\n\t\t\t\t\t\t$r = $(\"#\" + pID + \"_\" + _id + \"_expandedContent\");\n\t\t\t\t\t\tif($(this).hasClass(\"sgcollapsed\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridBeforeExpand\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif(bfsc && $.isFunction(ts.p.subGridBeforeExpand)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridBeforeExpand.call(ts, pID+\"_\"+_id,_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc === false) {return false;}\n\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) {\n\t\t\t\t\t\t\t\tatd = pos >=1 ? \"<td colspan='\"+pos+\"'>&#160;</td>\":\"\";\n\t\t\t\t\t\t\t\t$(tr).after( \"<tr role='row' id='\" + pID + \"_\" + _id + \"_expandedContent\" + \"' class='ui-subgrid ui-sg-expanded'>\"+atd+\"<td class='\" + common.content +\" subgrid-cell'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.openicon+\"'></span></td><td colspan='\"+parseInt(ts.p.colNames.length-1-nhc,10)+\"' class='\" + common.content +\" subgrid-data'><div id=\"+pID+\"_\"+_id+\" class='tablediv'></div></td></tr>\" );\n\t\t\t\t\t\t\t\t$(ts).triggerHandler(\"jqGridSubGridRowExpanded\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\t\tif( $.isFunction(ts.p.subGridRowExpanded)) {\n\t\t\t\t\t\t\t\t\tts.p.subGridRowExpanded.call(ts, pID+\"_\"+ _id,_id);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpopulatesubgrid(tr);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$r.show().removeClass(\"ui-sg-collapsed\").addClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\" + common.icon_base +\" \"+ts.p.subGridOptions.minusicon+\"'></span></a>\").removeClass(\"sgcollapsed\").addClass(\"sgexpanded\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnExpand) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if($(this).hasClass(\"sgexpanded\")) {\n\t\t\t\t\t\t\tbfsc = $(ts).triggerHandler(\"jqGridSubGridRowColapsed\", [pID + \"_\" + _id, _id]);\n\t\t\t\t\t\t\tbfsc = (bfsc === false || bfsc === 'stop') ? false : true;\n\t\t\t\t\t\t\tif( bfsc &&  $.isFunction(ts.p.subGridRowColapsed)) {\n\t\t\t\t\t\t\t\tbfsc = ts.p.subGridRowColapsed.call(ts, pID+\"_\"+_id,_id );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(bfsc===false) {return false;}\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.reloadOnExpand === true) {\n\t\t\t\t\t\t\t\t$r.remove(\".ui-subgrid\");\n\t\t\t\t\t\t\t} else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting\n\t\t\t\t\t\t\t\t$r.hide().addClass(\"ui-sg-collapsed\").removeClass(\"ui-sg-expanded\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$(this).html(\"<a style='cursor:pointer;' class='ui-sghref'><span class='\"+common.icon_base +\" \"+ts.p.subGridOptions.plusicon+\"'></span></a>\").removeClass(\"sgexpanded\").addClass(\"sgcollapsed\");\n\t\t\t\t\t\t\tif(ts.p.subGridOptions.selectOnCollapse) {\n\t\t\t\t\t\t\t\t$(ts).jqGrid('setSelection',_id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\tif(ts.p.subGridOptions.expandOnLoad === true) {\n\t\t\t$(ts.rows).filter('.jqgrow').each(function(index,row){\n\t\t\t\t$(row.cells[0]).click();\n\t\t\t});\n\t\t}\n\t\tts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};\n\t\tts.subGridJson = function(json,sid) {subGridJson(json,sid);};\n\t});\n},\nexpandSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ncollapseSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n},\ntoggleSubGridRow : function(rowid) {\n\treturn this.each(function () {\n\t\tvar $t = this;\n\t\tif(!$t.grid && !rowid) {return;}\n\t\tif($t.p.subGrid===true) {\n\t\t\tvar rc = $(this).jqGrid(\"getInd\",rowid,true);\n\t\t\tif(rc) {\n\t\t\t\tvar sgc = $(\"td.sgcollapsed\",rc)[0];\n\t\t\t\tif(sgc) {\n\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t} else {\n\t\t\t\t\tsgc = $(\"td.sgexpanded\",rc)[0];\n\t\t\t\t\tif(sgc) {\n\t\t\t\t\t\t$(sgc).trigger(\"click\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n});\n\n//module begin\n$.jgrid.extend({\n\tsetTreeNode : function(i, len){\n\t\treturn this.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif( !$t.grid || !$t.p.treeGrid ) {return;}\n\t\t\tvar expCol = $t.p.expColInd,\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\ticon = $t.p.treeReader.icon_field,\n\t\t\tloaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,\n\t\t\tldat, lf,\n\t\t\tcommon = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,\n\t\t\tindex = i;\n\t\t\t$($t).triggerHandler(\"jqGridBeforeSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.beforeSetTreeNode)) {\n\t\t\t\t$t.p.beforeSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t\twhile(i<len) {\n\t\t\t\tvar ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan;\n\t\t\t\tldat = $t.p.data[dind];\n\t\t\t\t//$t.rows[i].level = ldat[level];\n\t\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t\tif(!ldat[isLeaf]) {\n\t\t\t\t\tlft = parseInt(ldat[$t.p.treeReader.left_field],10);\n\t\t\t\t\trgt = parseInt(ldat[$t.p.treeReader.right_field],10);\n\t\t\t\t\t// NS Model\n\t\t\t\t\t\tldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';\n\t\t\t\t\t\t$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//else {\n\t\t\t\t\t//row.parent_id = rd[$t.p.treeReader.parent_id_field];\n\t\t\t\t//}\n\t\t\t\tcurLevel = parseInt(ldat[level],10);\n\t\t\t\tif($t.p.tree_root_level === 0) {\n\t\t\t\t\tident = curLevel+1;\n\t\t\t\t\tlftpos = curLevel;\n\t\t\t\t} else {\n\t\t\t\t\tident = curLevel;\n\t\t\t\t\tlftpos = curLevel -1;\n\t\t\t\t}\n\t\t\t\ttwrap = \"<div class='tree-wrap tree-wrap-\"+$t.p.direction+\"' style='width:\"+(ident*18)+\"px;'>\";\n\t\t\t\ttwrap += \"<div style='\"+($t.p.direction===\"rtl\" ? \"right:\" : \"left:\")+(lftpos*18)+\"px;' class='\"+common.icon_base+\" \";\n\n\n\t\t\t\tif(ldat[loaded] !== undefined) {\n\t\t\t\t\tif(ldat[loaded]===\"true\" || ldat[loaded]===true) {\n\t\t\t\t\t\tldat[loaded] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tldat[loaded] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(ldat[isLeaf] === \"true\" || ldat[isLeaf] === true) {\n\t\t\t\t\ttwrap += ((ldat[icon] !== undefined && ldat[icon] !== \"\") ? ldat[icon] : $t.p.treeIcons.leaf)+\" tree-leaf treeclick\";\n\t\t\t\t\tldat[isLeaf] = true;\n\t\t\t\t\tlf=\"leaf\";\n\t\t\t\t} else {\n\t\t\t\t\tldat[isLeaf] = false;\n\t\t\t\t\tlf=\"\";\n\t\t\t\t}\n\t\t\t\tldat[expanded] = ((ldat[expanded] === \"true\" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined);\n\t\t\t\tif(ldat[expanded] === false) {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.plus+\" tree-plus treeclick'\");\n\t\t\t\t} else {\n\t\t\t\t\ttwrap += ((ldat[isLeaf] === true) ? \"'\" : $t.p.treeIcons.minus+\" tree-minus treeclick'\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttwrap += \"></div></div>\";\n\t\t\t\t$($t.rows[i].cells[expCol]).wrapInner(\"<span class='cell-wrapper\"+lf+\"'></span>\").prepend(twrap);\n\n\t\t\t\tif(curLevel !== parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t//var pn = $($t).jqGrid('getNodeParent',ldat);\n\t\t\t\t\t//expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;\n\t\t\t\t\texpan = $($t).jqGrid('isVisibleNode',ldat); // overhead\n\t\t\t\t\tif( !expan ){\n\t\t\t\t\t\t$($t.rows[i]).css(\"display\",\"none\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.on(\"click\",function(e){\n\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\tif($t.p.ExpandColClick === true) {\n\t\t\t\t\t$($t.rows[i].cells[expCol])\n\t\t\t\t\t\t.find(\"span.cell-wrapper\")\n\t\t\t\t\t\t.css(\"cursor\",\"pointer\")\n\t\t\t\t\t\t.on(\"click\",function(e) {\n\t\t\t\t\t\t\tvar target = e.target || e.srcElement,\n\t\t\t\t\t\t\tind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest(\"tr.jqgrow\")[0].id),\n\t\t\t\t\t\t\tpos = $t.p._index[ind2];\n\t\t\t\t\t\t\tif(!$t.p.data[pos][isLeaf]){\n\t\t\t\t\t\t\t\tif($t.p.data[pos][expanded]){\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"collapseNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandRow\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t\t$($t).jqGrid(\"expandNode\",$t.p.data[pos]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t$($t).jqGrid(\"setSelection\",ind2);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t}\n\t\t\t$($t).triggerHandler(\"jqGridAfterSetTreeNode\", [index, len]);\t\t\t\n\t\t\tif($.isFunction($t.p.afterSetTreeNode)) {\n\t\t\t\t$t.p.afterSetTreeNode.call($t, index, len);\n\t\t\t}\n\t\t});\n\t},\n\tsetTreeGrid : function() {\n\t\treturn this.each(function (){\n\t\t\tvar $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[],\n\t\t\tclasses = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid;\n\t\t\tif(!$t.p.treeGrid) {return;}\n\t\t\tif(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}\n\t\t\tif($t.p.loadonce) { $t.p.treedatatype = 'local'; }\n\t\t\t$t.p.subGrid = false;$t.p.altRows =false;\n\t\t\t$t.p.pgbuttons = false;$t.p.pginput = false;\n\t\t\t$t.p.gridview =  true;\n\t\t\tif($t.p.rowTotal === null ) { $t.p.rowNum = 10000; }\n\t\t\t$t.p.multiselect = false;$t.p.rowList = [];\n\t\t\t$t.p.expColInd = 0;\n\t\t\tpico = classes.icon_plus;\n\t\t\tif($t.p.styleUI === 'jQueryUI') {\n\t\t\t\tpico += ($t.p.direction===\"rtl\" ? 'w' : 'e');\n\t\t\t}\n\t\t\t$t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {});\n\t\t\tif($t.p.treeGridModel === 'nested') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\tleft_field:\"lft\",\n\t\t\t\t\tright_field: \"rgt\",\n\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader);\n\t\t\t} else if($t.p.treeGridModel === 'adjacency') {\n\t\t\t\t$t.p.treeReader = $.extend({\n\t\t\t\t\t\tlevel_field: \"level\",\n\t\t\t\t\t\tparent_id_field: \"parent\",\n\t\t\t\t\t\tleaf_field: \"isLeaf\",\n\t\t\t\t\t\texpanded_field: \"expanded\",\n\t\t\t\t\t\tloaded: \"loaded\",\n\t\t\t\t\t\ticon_field: \"icon\"\n\t\t\t\t},$t.p.treeReader );\n\t\t\t}\n\t\t\tfor ( key in $t.p.colModel){\n\t\t\t\tif($t.p.colModel.hasOwnProperty(key)) {\n\t\t\t\t\tnm = $t.p.colModel[key].name;\n\t\t\t\t\tif( nm === $t.p.ExpandColumn && !ecol ) {\n\t\t\t\t\t\tecol = true;\n\t\t\t\t\t\t$t.p.expColInd = i;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\t//\n\t\t\t\t\tfor(tkey in $t.p.treeReader) {\n\t\t\t\t\t\tif($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) {\n\t\t\t\t\t\t\tdupcols.push(nm);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t$.each($t.p.treeReader,function(j,n){\n\t\t\t\tif(n && $.inArray(n, dupcols) === -1){\n\t\t\t\t\tif(j==='leaf_field') { $t.p._treeleafpos= i; }\n\t\t\t\ti++;\n\t\t\t\t\t$t.p.colNames.push(n);\n\t\t\t\t\t$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});\n\t\t\t\t}\n\t\t\t});\t\t\t\n\t\t});\n\t},\n\texpandRow: function (record){\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\t//if ($($t).jqGrid(\"isVisibleNode\",record)) {\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeExpandTreeGridRow) ? $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"\");\n\t\t\t\tif(this[expanded]) {\n\t\t\t\t\t$($t).jqGrid(\"expandRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterExpandTreeGridRow)) {\n\t\t\t\t$t.p.afterExpandTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\n\t\t\t//}\n\t\t});\n\t},\n\tcollapseRow : function (record) {\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar childern = $($t).jqGrid(\"getNodeChildren\",record),\n\t\t\texpanded = $t.p.treeReader.expanded_field,\n\t\t\trowid  = record[$t.p.localReader.id];\n\t\t\tvar ret = $.isFunction($t.p.beforeCollapseTreeGridRow) ? $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern) : true;\n\t\t\tif( ret === false ) { return; }\n\t\t\t$(childern).each(function(){\n\t\t\t\tvar id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$($($t).jqGrid('getGridRowById', id)).css(\"display\",\"none\");\n\t\t\t\tif(this[expanded]){\n\t\t\t\t\t$($t).jqGrid(\"collapseRow\",this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($.isFunction($t.p.afterCollapseTreeGridRow)) {\n\t\t\t\t$t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern);\n\t\t\t}\t\t\t\n\t\t});\n\t},\n\t// NS ,adjacency models\n\tgetRootNodes : function(currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, level, parent_id, view;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif( typeof currentview !== 'boolean') {\n\t\t\t\tcurrentview = false;\n\t\t\t}\n\t\t\tif(currentview) {\n\t\t\t\tview = $($t).jqGrid('getRowData', null, true);\n\t\t\t} else {\n\t\t\t\tview = $t.p.data;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tlevel = $t.p.treeReader.level_field;\n\t\t\t\t\t$(view).each(function() {\n\t\t\t\t\t\tif(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tparent_id = $t.p.treeReader.parent_id_field;\n\t\t\t\t\t$(view).each(function(){\n\t\t\t\t\t\tif(this[parent_id] === null || String(this[parent_id]).toLowerCase() === \"null\") {\n\t\t\t\t\t\t\tif(currentview){\n\t\t\t\t\t\t\t\tresult.push($t.p.data[$t.p._index[this[$t.p.keyName]]]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeDepth : function(rc) {\n\t\tvar ret = null;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar $t = this;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar level = $t.p.treeReader.level_field;\n\t\t\t\t\tret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tret = $($t).jqGrid(\"getNodeAncestors\",rc).length;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn ret;\n\t},\n\tgetNodeParent : function(rc) {\n\t\tvar result = null;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {\n\t\t\t\t\t\t\tresult = this;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id,\n\t\t\t\t\tind = rc[dtid], pos = $t.p._index[ind];\n\t\t\t\t\twhile(pos--) {\n\t\t\t\t\t\tif($t.p.data[pos][dtid] === $.jgrid.stripPref($t.p.idPrefix, rc[parent_id])) {\n\t\t\t\t\t\t\tresult = $t.p.data[pos];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetNodeChildren : function(rc, currentview) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar i, len = currentview ? this.rows.length : this.p.data.length, row;\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\tfor(i=0; i  < len; i++) {\n\t\t\t\t\t\trow = currentview ? $t.p.data[$t.p._index[this.rows[i].id]] : $t.p.data[i];\n\t\t\t\t\t\tif(row && String(row[parent_id]) === $.jgrid.stripPref($t.p.idPrefix, rc[dtid])) {\n\t\t\t\t\t\t\tresult.push(row);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tgetFullTreeNode : function(rc, expand) {\n\t\tvar result = [];\n\t\tthis.each(function(){\n\t\t\tvar $t = this, len,expanded = $t.p.treeReader.expanded_field;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tif(expand == null || typeof expand !== 'boolean') {\n\t\t\t\texpand = false;\n\t\t\t}\n\t\t\tswitch ($t.p.treeGridModel) {\n\t\t\t\tcase 'nested' :\n\t\t\t\t\tvar lftc = $t.p.treeReader.left_field,\n\t\t\t\t\trgtc = $t.p.treeReader.right_field,\n\t\t\t\t\tlevelc = $t.p.treeReader.level_field,\n\t\t\t\t\tlft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);\n\t\t\t\t\t$(this.p.data).each(function(){\n\t\t\t\t\t\tif(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {\n\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'adjacency' :\n\t\t\t\t\tif(rc) {\n\t\t\t\t\tresult.push(rc);\n\t\t\t\t\tvar parent_id = $t.p.treeReader.parent_id_field,\n\t\t\t\t\tdtid = $t.p.localReader.id;\n\t\t\t\t\t$(this.p.data).each(function(i){\n\t\t\t\t\t\tlen = result.length;\n\t\t\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\t\t\tif ($.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) === this[parent_id]) {\n\t\t\t\t\t\t\t\tif(expand) { this[expanded] = true; }\n\t\t\t\t\t\t\t\tresult.push(this);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\t\n\t// End NS, adjacency Model\n\tgetNodeAncestors : function(rc, reverse, expanded) {\n\t\tvar ancestors = [];\n\t\tif(reverse === undefined ) {\n\t\t\treverse = false;\n\t\t}\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tif(expanded === undefined ) {\n\t\t\t\texpanded = false;\n\t\t\t} else {\n\t\t\t\texpanded = this.p.treeReader.expanded_field;\n\t\t\t}\n\t\t\tvar parent = $(this).jqGrid(\"getNodeParent\",rc);\n\t\t\twhile (parent) {\n\t\t\t\tif(expanded) {\n\t\t\t\t\ttry{\n\t\t\t\t\t\tparent[expanded] = true;\n\t\t\t\t\t} catch (etn) {}\n\t\t\t\t}\n\t\t\t\tif(reverse) {\n\t\t\t\t\tancestors.unshift(parent);\n\t\t\t\t} else {\n\t\t\t\tancestors.push(parent);\n\t\t\t\t}\n\t\t\t\tparent = $(this).jqGrid(\"getNodeParent\",parent);\t\n\t\t\t}\n\t\t});\n\t\treturn ancestors;\n\t},\n\tisVisibleNode : function(rc) {\n\t\tvar result = true;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar ancestors = $($t).jqGrid(\"getNodeAncestors\",rc),\n\t\t\texpanded = $t.p.treeReader.expanded_field;\n\t\t\t$(ancestors).each(function(){\n\t\t\t\tresult = result && this[expanded];\n\t\t\t\tif(!result) {return false;}\n\t\t\t});\n\t\t});\n\t\treturn result;\n\t},\n\tisNodeLoaded : function(rc) {\n\t\tvar result;\n\t\tthis.each(function(){\n\t\t\tvar $t = this;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar isLeaf = $t.p.treeReader.leaf_field,\n\t\t\tloaded = $t.p.treeReader.loaded;\n\t\t\tif(rc !== undefined ) {\n\t\t\t\tif(rc[loaded] !== undefined) {\n\t\t\t\t\tresult = rc[loaded];\n\t\t\t\t} else if( rc[isLeaf] || $($t).jqGrid(\"getNodeChildren\",rc).length > 0){\n\t\t\t\t\tresult = true;\n\t\t\t\t} else {\n\t\t\t\t\tresult = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tsetLeaf : function (rc, state, collapsed) {\n\t\treturn this.each(function(){\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0],\n\t\t\tisLeaf = this.p.treeReader.leaf_field;\n\t\t\ttry {\n\t\t\t\tvar dr = this.p._index[id];\n\t\t\t\tif(dr != null) {\n\t\t\t\t\tthis.p.data[dr][isLeaf] = state;\n\t\t\t\t}\n\t\t\t} catch(E){}\n\t\t\tif(state === true) {\n\t\t\t\t// set it in data\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus \"+this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.leaf +\" tree-leaf\");\n\t\t\t} else if(state === false) {\n\t\t\t\tvar ico = this.p.treeIcons.minus+\" tree-minus\";\n\t\t\t\tif(collapsed) {\n\t\t\t\t\tico = this.p.treeIcons.plus+\" tree-plus\";\n\t\t\t\t}\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.leaf +\" tree-leaf\").addClass( ico );\n\t\t\t}\t\n\t\t});\n\t},\n\treloadNode: function(rc, reloadcurrent) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar rid = this.p.localReader.id,\n\t\t\tcurrselection  = this.p.selrow;\n\n\t\t\t$(this).jqGrid(\"delChildren\", rc[rid]);\n\n\t\t\tif(reloadcurrent=== undefined) {\n\t\t\t\treloadcurrent = false;\n\t\t\t}\n\t\t\t\n\t\t\tif(!reloadcurrent) {\n\t\t\t\tif(!jQuery._data( this, \"events\" ).jqGridAfterSetTreeNode) {\n\t\t\t\t\t$(this).on(\"jqGridAfterSetTreeNode.reloadNode\", function(){\n\t\t\t\t\t\tvar isLeaf = this.p.treeReader.leaf_field;\n\t\t\t\t\t\tif(this.p.reloadnode ) {\n\t\t\t\t\t\t\tvar rc = this.p.reloadnode,\n\t\t\t\t\t\t\tchld = $(this).jqGrid('getNodeChildren', rc);\n\t\t\t\t\t\t\tif(rc[isLeaf] && chld.length) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, false);\n\t\t\t\t\t\t\t} else if(!rc[isLeaf] && chld.length === 0) {\n\t\t\t\t\t\t\t\t$(this).jqGrid('setLeaf', rc, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.p.reloadnode = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tisLeaf = this.p.treeReader.leaf_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\trc1 = $(\"#\"+id,this.grid.bDiv)[0];\n\n\t\t\trc[expanded] = true;\n\t\t\tif(!rc[isLeaf]) {\n\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t}\n\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\tthis.p.reloadnode = rc;\n\t\t\tif(reloadcurrent) {\n\t\t\t\tthis.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1;\n\t\t\t\t$(this).jqGrid('delRowData', id);\n\t\t\t}\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t}\n\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\n\t\t\trc[loaded] = true;\n\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t} else {\n\t\t\t\t$(this).jqGrid(\"setGridParam\",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}});\n\t\t\t}\n\t\t});\n\t},\n\texpandNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field,\n\t\t\tparent = this.p.treeReader.parent_id_field,\n\t\t\tloaded = this.p.treeReader.loaded,\n\t\t\tlevel = this.p.treeReader.level_field,\n\t\t\tlft = this.p.treeReader.left_field,\n\t\t\trgt = this.p.treeReader.right_field;\n\n\t\t\tif(!rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],\n\t\t\t\tposition = this.p._index[id],\n\t\t\t\tret = $.isFunction(this.p.beforeExpandTreeGridNode) ? this.p.beforeExpandTreeGridNode.call(this, id, rc ) : true;\n\t\t\t\tif( ret === false ) { return; }\n\n\t\t\t\tif( $(this).jqGrid(\"isNodeLoaded\",this.p.data[position]) ) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t} else if (!this.grid.hDiv.loading) {\n\t\t\t\t\trc[expanded] = true;\n\t\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.plus+\" tree-plus\").addClass(this.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\tthis.p.treeANode = rc1.rowIndex;\n\t\t\t\t\tthis.p.datatype = this.p.treedatatype;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );\n\t\t\t\t\t}\n\t\t\t\t\t$(this).trigger(\"reloadGrid\");\n\t\t\t\t\trc[loaded] = true;\n\t\t\t\t\tif(this.p.treeGridModel === 'nested') {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).jqGrid(\"setGridParam\",{postData:{nodeid:'',parentid:'',n_level:''}}); \n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif($.isFunction(this.p.afterExpandTreeGridNode)) {\n\t\t\t\t\tthis.p.afterExpandTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tcollapseNode : function(rc) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar expanded = this.p.treeReader.expanded_field;\n\t\t\tif(rc[expanded]) {\n\t\t\t\tvar id = $.jgrid.getAccessor(rc,this.p.localReader.id),\n\t\t\t\tret = $.isFunction(this.p.beforeCollapseTreeGridNode) ? this.p.beforeCollapseTreeGridNode.call(this, id, rc ) : true,\n\t\t\t\trc1 = $(\"#\" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0];\n\t\t\t\trc[expanded] = false;\n\t\t\t\tif( ret === false ) { return; }\n\t\t\t\t$(\"div.treeclick\",rc1).removeClass(this.p.treeIcons.minus+\" tree-minus\").addClass(this.p.treeIcons.plus+\" tree-plus\");\n\t\t\t\tif($.isFunction(this.p.afterCollapseTreeGridNode)) {\n\t\t\t\t\tthis.p.afterCollapseTreeGridNode.call(this, id, rc );\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tSortTree : function( sortname, newDir, st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\trec, records = [], $t = this, query, roots,\n\t\t\trt = $(this).jqGrid(\"getRootNodes\", $t.p.search);\n\t\t\t// Sorting roots\n\t\t\tquery = $.jgrid.from.call(this, rt);\n\t\t\tquery.orderBy(sortname,newDir,st, datefmt);\n\t\t\troots = query.select();\n\n\t\t\t// Sorting children\n\t\t\tfor (i = 0, len = roots.length; i < len; i++) {\n\t\t\t\trec = roots[i];\n\t\t\t\trecords.push(rec);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, rec, sortname, newDir,st, datefmt);\n\t\t\t}\n\t\t\t$.each(records, function(index) {\n\t\t\t\tvar id  = $.jgrid.getAccessor(this,$t.p.localReader.id);\n\t\t\t\t$('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr:eq('+index+')').after($('tr#'+$.jgrid.jqID(id),$t.grid.bDiv));\n\t\t\t});\n\t\t\tquery = null;roots=null;records=null;\n\t\t});\n\t},\n\tsearchTree : function ( recs ) {\n\t\tvar i= recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k;\n\t\tthis.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(i) {\n\t\t\t\tlid = this.p.localReader.id;\n\t\t\t\twhile( i-- ) { // reverse \n\t\t\t\t\tancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true);\n\t\t\t\t\t//add the searched item\n\t\t\t\t\tancestors.push(recs[i]);\n\t\t\t\t\ttid = ancestors[0][lid]; \n\t\t\t\t\tif($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing\n\t\t\t\t\t\tfor( j = 0, alen = ancestors.length; j < alen; j++) {\n\t\t\t\t\t\t\t//$.inArray ?!?\n\t\t\t\t\t\t\tvar found = false;\n\t\t\t\t\t\t\tfor( k=0, rlen = result.length; k < rlen; k++) {\n\t\t\t\t\t\t\t\tif(ancestors[j][lid] === result[k][lid]) {\n\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(!found) {\n\t\t\t\t\t\t\t\tresult.push(ancestors[j]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\troots.push( tid );\n\t\t\t\t\t\t}\n\t\t\t\t\tresult = result.concat( ancestors );\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t},\n\tcollectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {\n\t\treturn this.each(function(){\n\t\t\tif(!this.grid || !this.p.treeGrid) {return;}\n\t\t\tvar i, len,\n\t\t\tchild, ch, query, children;\n\t\t\tch = $(this).jqGrid(\"getNodeChildren\",rec, this.p.search);\n\t\t\tquery = $.jgrid.from.call(this, ch);\n\t\t\tquery.orderBy(sortname, newDir, st, datefmt);\n\t\t\tchildren = query.select();\n\t\t\tfor (i = 0, len = children.length; i < len; i++) {\n\t\t\t\tchild = children[i];\n\t\t\t\trecords.push(child);\n\t\t\t\t$(this).jqGrid(\"collectChildrenSortTree\",records, child, sortname, newDir, st, datefmt); \n\t\t\t}\n\t\t});\n\t},\n\t// experimental \n\tsetTreeRow : function(rowid, data) {\n\t\tvar success=false;\n\t\tthis.each(function(){\n\t\t\tvar t = this;\n\t\t\tif(!t.grid || !t.p.treeGrid) {return;}\n\t\t\tsuccess = $(t).jqGrid(\"setRowData\",rowid,data);\n\t\t});\n\t\treturn success;\n\t},\n\tdelTreeNode : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id, i,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (i=0;i<dr.length;i++){\n\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\tdelChildren : function (rowid) {\n\t\treturn this.each(function () {\n\t\t\tvar $t = this, rid = $t.p.localReader.id,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field, myright, width, res, key;\n\t\t\tif(!$t.grid || !$t.p.treeGrid) {return;}\n\t\t\tvar rc = $t.p._index[rowid];\n\t\t\tif (rc !== undefined) {\n\t\t\t\t// nested\n\t\t\t\tmyright = parseInt($t.p.data[rc][right],10);\n\t\t\t\twidth = myright -  parseInt($t.p.data[rc][left],10) + 1;\n\t\t\t\tvar dr = $($t).jqGrid(\"getFullTreeNode\",$t.p.data[rc]);\n\t\t\t\tif(dr.length>0){\n\t\t\t\t\tfor (var i=0;i<dr.length;i++){\n\t\t\t\t\t\tif(dr[i][rid] !== rowid)\n\t\t\t\t\t\t\t$($t).jqGrid(\"delRowData\",dr[i][rid]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t\t// ToDo - update grid data\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(left,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from($t.p.data)\n\t\t\t\t\t\t.greater(right,myright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) - width ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\taddChildNode : function( nodeid, parentid, data, expandData ) {\n\t\t//return this.each(function(){\n\t\tvar $t = this[0];\n\t\tif(data) {\n\t\t\t// we suppose tha the id is autoincremet and\n\t\t\tvar expanded = $t.p.treeReader.expanded_field,\n\t\t\tisLeaf = $t.p.treeReader.leaf_field,\n\t\t\tlevel = $t.p.treeReader.level_field,\n\t\t\t//icon = $t.p.treeReader.icon_field,\n\t\t\tparent = $t.p.treeReader.parent_id_field,\n\t\t\tleft = $t.p.treeReader.left_field,\n\t\t\tright = $t.p.treeReader.right_field,\n\t\t\tloaded = $t.p.treeReader.loaded,\n\t\t\tmethod, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;\n\t\t\tif(expandData===undefined) {expandData = false;}\n\t\t\tif ( nodeid == null ) {\n\t\t\t\ti = $t.p.data.length-1;\n\t\t\t\tif(\ti>= 0 ) {\n\t\t\t\t\twhile(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}\n\t\t\t\t}\n\t\t\t\tnodeid = max+1;\n\t\t\t}\n\t\t\tvar prow = $($t).jqGrid('getInd', parentid);\n\t\t\tleaf = false;\n\t\t\t// if not a parent we assume root\n\t\t\tif ( parentid === undefined  || parentid === null || parentid===\"\") {\n\t\t\t\tparentid = null;\n\t\t\t\trowind = null;\n\t\t\t\tmethod = 'last';\n\t\t\t\tparentlevel = $t.p.tree_root_level;\n\t\t\t\ti = $t.p.data.length+1;\n\t\t\t} else {\n\t\t\t\tmethod = 'after';\n\t\t\t\tparentindex = $t.p._index[parentid];\n\t\t\t\tparentdata = $t.p.data[parentindex];\n\t\t\t\tparentid = parentdata[$t.p.localReader.id];\n\t\t\t\tparentlevel = parseInt(parentdata[level],10)+1;\n\t\t\t\tvar childs = $($t).jqGrid('getFullTreeNode', parentdata);\n\t\t\t\t// if there are child nodes get the last index of it\n\t\t\t\tif(childs.length) {\n\t\t\t\t\ti = childs[childs.length-1][$t.p.localReader.id];\n\t\t\t\t\trowind = i;\n\t\t\t\t\ti = $($t).jqGrid('getInd',rowind)+1;\n\t\t\t\t} else {\n\t\t\t\t\ti = $($t).jqGrid('getInd', parentid)+1;\n\t\t\t\t}\n\t\t\t\t// if the node is leaf\n\t\t\t\tif(parentdata[isLeaf]) {\n\t\t\t\t\tleaf = true;\n\t\t\t\t\tparentdata[expanded] = true;\n\t\t\t\t\t//var prow = $($t).jqGrid('getInd', parentid);\n\t\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t\t.find(\"span.cell-wrapperleaf\").removeClass(\"cell-wrapperleaf\").addClass(\"cell-wrapper\")\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find(\"div.tree-leaf\").removeClass($t.p.treeIcons.leaf+\" tree-leaf\").addClass($t.p.treeIcons.minus+\" tree-minus\");\n\t\t\t\t\t$t.p.data[parentindex][isLeaf] = false;\n\t\t\t\t\tparentdata[loaded] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlen = i+1;\n\n\t\t\tif( data[expanded]===undefined)  {data[expanded]= false;}\n\t\t\tif( data[loaded]===undefined )  { data[loaded] = false;}\n\t\t\tdata[level] = parentlevel;\n\t\t\tif( data[isLeaf]===undefined) {data[isLeaf]= true;}\n\t\t\tif( $t.p.treeGridModel === \"adjacency\") {\n\t\t\t\tdata[parent] = parentid;\n\t\t\t}\n\t\t\tif( $t.p.treeGridModel === \"nested\") {\n\t\t\t\t// this method requiere more attention\n\t\t\t\tvar query, res, key;\n\t\t\t\t//maxright = parseInt(maxright,10);\n\t\t\t\t// ToDo - update grid data\n\t\t\t\tif(parentid !== null) {\n\t\t\t\t\tmaxright = parseInt(parentdata[right],10);\n\t\t\t\t\tquery = $.jgrid.from.call($t, $t.p.data);\n\t\t\t\t\tquery = query.greaterOrEquals(right,maxright,{stype:'integer'});\n\t\t\t\t\tres = query.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];\n\t\t\t\t\t\t\t\tres[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright;\n\t\t\t\t\tdata[right]= maxright+1;\n\t\t\t\t} else {\n\t\t\t\t\tmaxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(left,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][left] = parseInt(res[key][left],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tres = $.jgrid.from.call($t, $t.p.data)\n\t\t\t\t\t\t.greater(right,maxright,{stype:'integer'})\n\t\t\t\t\t\t.select();\n\t\t\t\t\tif(res.length) {\n\t\t\t\t\t\tfor( key in res) {\n\t\t\t\t\t\t\tif(res.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tres[key][right] = parseInt(res[key][right],10) +2 ;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata[left] = maxright+1;\n\t\t\t\t\tdata[right] = maxright + 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif( parentid === null || $($t).jqGrid(\"isNodeLoaded\",parentdata) || leaf ) {\n\t\t\t\t\t$($t).jqGrid('addRowData', nodeid, data, method, rowind);\n\t\t\t\t\t$($t).jqGrid('setTreeNode', i, len);\n\t\t\t}\n\t\t\tif(parentdata && !parentdata[expanded] && expandData) {\n\t\t\t\t$($t.rows[prow])\n\t\t\t\t\t.find(\"div.treeclick\")\n\t\t\t\t\t.click();\n\t\t\t}\n\t\t}\n\t\t//});\n\t}\n});\n\n//module begin\n$.fn.jqDrag=function(h){return i(this,h,'d');};\n$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};\n$.jqDnR={\n\tdnr:{},\n\te:0,\n\tdrag:function(v){\n\t\tif(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}\n\t\telse {\n\t\t\tE.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});\n\t\t\tif(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}\n\t\t}\n\t\treturn false;\n\t},\n\tstop:function(){\n\t\t//E.css('opacity',M.o);\n\t\t$(document).off('mousemove',J.drag).off('mouseup',J.stop);\n\t}\n};\nvar J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,\ni=function(e,h,k,aR){\n\treturn e.each(function(){\n\t\th=(h)?$(h,e):e;\n\t\th.on('mousedown',{e:e,k:k},function(v){\n\t\t\tvar d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;\n\t\t\t// attempt utilization of dimensions plugin to fix IE issues\n\t\t\tif(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}\n\t\t\tM={\n\t\t\t\tX:p.left||f('left')||0,\n\t\t\t\tY:p.top||f('top')||0,\n\t\t\t\tW:f('width')||E[0].scrollWidth||0,\n\t\t\t\tH:f('height')||E[0].scrollHeight||0,\n\t\t\t\tpX:v.pageX,\n\t\t\t\tpY:v.pageY,\n\t\t\t\tk:d.k\n\t\t\t\t//o:E.css('opacity')\n\t\t\t};\n\t\t\t// also resize\n\t\t\tif(E1 && d.k != 'd'){\n\t\t\t\tM1={\n\t\t\t\t\tX:p.left||f1('left')||0,\n\t\t\t\t\tY:p.top||f1('top')||0,\n\t\t\t\t\tW:E1[0].offsetWidth||f1('width')||0,\n\t\t\t\t\tH:E1[0].offsetHeight||f1('height')||0,\n\t\t\t\t\tpX:v.pageX,\n\t\t\t\t\tpY:v.pageY,\n\t\t\t\t\tk:d.k\n\t\t\t\t};\n\t\t\t} else {M1 = false;}\t\t\t\n\t\t\t//E.css({opacity:0.8});\n\t\t\tif($(\"input.hasDatepicker\",E[0])[0]) {\n\t\t\ttry {$(\"input.hasDatepicker\",E[0]).datepicker('hide');}catch (dpe){}\n\t\t\t}\n\t\t\t$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);\n\t\t\treturn false;\n\t\t});\n\t});\n},\nf=function(k){return parseInt(E.css(k),10)||false;},\nf1=function(k){return parseInt(E1.css(k),10)||false;};\n/*\n\tjQuery tinyDraggable v1.0.2\n    Copyright (c) 2014 Simon Steinberger / Pixabay\n    GitHub: https://github.com/Pixabay/jQuery-tinyDraggable\n    More info: https://pixabay.com/blog/posts/p-52/\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n$.fn.tinyDraggable = function(options){\n\tvar settings = $.extend({ handle: 0, exclude: 0 }, options);\n\treturn this.each(function(){\n\t    var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el;\n        handle.on({\n        mousedown: function(e){\n\t\t\tif (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; }\n\t\t\te.preventDefault();\n\t\t\tvar os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top;\n\t\t\t$(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); });\n\t\t\t},\n\t\t\tmouseup: function(e){ $(document).off('mousemove.drag'); }\n\t\t});\n\t});\n};\n\n//module begin\n$.fn.jqm=function(o){\nvar p={\noverlay: 50,\ncloseoverlay : true,\noverlayClass: 'jqmOverlay',\ncloseClass: 'jqmClose',\ntrigger: '.jqModal',\najax: F,\najaxText: '',\ntarget: F,\nmodal: F,\ntoTop: F,\nonShow: F,\nonHide: F,\nonLoad: F\n};\nreturn this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s;\nH[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};\nif(p.trigger){$(this).jqmAddTrigger(p.trigger);}\n});};\n\n$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};\n$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};\n$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};\n$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});};\n\n$.jqm = {\nhash:{},\nopen:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z);\n if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);}\n else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}}\n else {o=F;}\n\n h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;\n\n if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u;\n  r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});}\n else if(cc){h.w.jqmAddClose($(cc,h.w));}\n\n if(c.toTop&&h.o){h.w.before('<span id=\"jqmP'+h.w[0]._jqm+'\"></span>').insertAfter(h.o);}\n (c.onShow)?c.onShow(h):h.w.show();e(h);return F;\n},\nclose:function(s){var h=H[s];if(!h.a){return F;}h.a=F;\n if(A[0]){A.pop();if(!A[0]){new L('unbind');}}\n if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();}\n if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F;\n},\nparams:{}};\nvar s=0,H=$.jqm.hash,A=[],F=false,\ne=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} },\nf=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus();\t}catch(_){}},\nL=function(t){$(document)[t](\"keypress\",m)[t](\"keydown\",m)[t](\"mousedown\",m);},\nm=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width()){r=false;return false;}});f(h);}return !r;},\nhs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {\n if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});}\n this[c].push(s);});});};\n\n//module begin\n\t$.fmatter = {};\n\t//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column\n\t//example {id:1234,}\n\t$.extend($.fmatter,{\n\t\tisBoolean : function(o) {\n\t\t\treturn typeof o === 'boolean';\n\t\t},\n\t\tisObject : function(o) {\n\t\t\treturn (o && (typeof o === 'object' || $.isFunction(o))) || false;\n\t\t},\n\t\tisString : function(o) {\n\t\t\treturn typeof o === 'string';\n\t\t},\n\t\tisNumber : function(o) {\n\t\t\treturn typeof o === 'number' && isFinite(o);\n\t\t},\n\t\tisValue : function (o) {\n\t\t\treturn (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));\n\t\t},\n\t\tisEmpty : function(o) {\n\t\t\tif(!this.isString(o) && this.isValue(o)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (!this.isValue(o)){\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\to = $.trim(o).replace(/\\&nbsp\\;/ig,'').replace(/\\&#160\\;/ig,'');\n\t\t\treturn o===\"\";\t\n\t\t}\n\t});\n\t$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {\n\t\t// build main options before element iteration\n\t\tvar v=cellval;\n\t\topts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts);\n\n\t\ttry {\n\t\t\tv = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);\n\t\t} catch(fe){}\n\t\treturn v;\n\t};\n\t$.fmatter.util = {\n\t\t// Taken from YAHOO utils\n\t\tNumberFormat : function(nData,opts) {\n\t\t\tif(!$.fmatter.isNumber(nData)) {\n\t\t\t\tnData *= 1;\n\t\t\t}\n\t\t\tif($.fmatter.isNumber(nData)) {\n\t\t\t\tvar bNegative = (nData < 0);\n\t\t\t\tvar sOutput = String(nData);\n\t\t\t\tvar sDecimalSeparator = opts.decimalSeparator || \".\";\n\t\t\t\tvar nDotIndex;\n\t\t\t\tif($.fmatter.isNumber(opts.decimalPlaces)) {\n\t\t\t\t\t// Round to the correct decimal place\n\t\t\t\t\tvar nDecimalPlaces = opts.decimalPlaces;\n\t\t\t\t\tvar nDecimal = Math.pow(10, nDecimalPlaces);\n\t\t\t\t\tsOutput = String(Math.round(nData*nDecimal)/nDecimal);\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(\".\");\n\t\t\t\t\tif(nDecimalPlaces > 0) {\n\t\t\t\t\t// Add the decimal separator\n\t\t\t\t\t\tif(nDotIndex < 0) {\n\t\t\t\t\t\t\tsOutput += sDecimalSeparator;\n\t\t\t\t\t\t\tnDotIndex = sOutput.length-1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Replace the \".\"\n\t\t\t\t\t\telse if(sDecimalSeparator !== \".\"){\n\t\t\t\t\t\t\tsOutput = sOutput.replace(\".\",sDecimalSeparator);\n\t\t\t\t\t\t}\n\t\t\t\t\t// Add missing zeros\n\t\t\t\t\t\twhile((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {\n\t\t\t\t\t\t\tsOutput += \"0\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(opts.thousandsSeparator) {\n\t\t\t\t\tvar sThousandsSeparator = opts.thousandsSeparator;\n\t\t\t\t\tnDotIndex = sOutput.lastIndexOf(sDecimalSeparator);\n\t\t\t\t\tnDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;\n\t\t\t\t\tvar sNewOutput = sOutput.substring(nDotIndex);\n\t\t\t\t\tvar nCount = -1, i;\n\t\t\t\t\tfor (i=nDotIndex; i>0; i--) {\n\t\t\t\t\t\tnCount++;\n\t\t\t\t\t\tif ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {\n\t\t\t\t\t\t\tsNewOutput = sThousandsSeparator + sNewOutput;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsNewOutput = sOutput.charAt(i-1) + sNewOutput;\n\t\t\t\t\t}\n\t\t\t\t\tsOutput = sNewOutput;\n\t\t\t\t}\n\t\t\t\t// Prepend prefix\n\t\t\t\tsOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;\n\t\t\t\t// Append suffix\n\t\t\t\tsOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;\n\t\t\t\treturn sOutput;\n\t\t\t\t\n\t\t\t}\n\t\t\treturn nData;\n\t\t}\n\t};\n\t$.fn.fmatter.defaultFormat = function(cellval, opts) {\n\t\treturn ($.fmatter.isValue(cellval) && cellval!==\"\" ) ?  cellval : opts.defaultValue || \"&#160;\";\n\t};\n\t$.fn.fmatter.email = function(cellval, opts) {\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a href=\\\"mailto:\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts );\n\t};\n\t$.fn.fmatter.checkbox =function(cval, opts) {\n\t\tvar op = $.extend({},opts.checkbox), ds;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.disabled===true) {ds = \"disabled=\\\"disabled\\\"\";} else {ds=\"\";}\n\t\tif($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}\n\t\tcval=String(cval);\n\t\tcval=(cval+\"\").toLowerCase();\n\t\tvar bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? \" checked='checked' \" : \"\";\n\t\treturn \"<input type=\\\"checkbox\\\" \" + bchk  + \" value=\\\"\"+ cval+\"\\\" offval=\\\"no\\\" \"+ds+ \"/>\";\n\t};\n\t$.fn.fmatter.link = function(cellval, opts) {\n\t\tvar op = {target:opts.target};\n\t\tvar target = \"\";\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + cellval + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.showlink = function(cellval, opts) {\n\t\tvar op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || \"\", target: opts.target, idName: opts.idName},\n\t\ttarget = \"\", idUrl;\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(op.target) {target = 'target=' + op.target;}\n\t\tidUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;\n\t\tif($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) {\t//add this one even if its blank string\n\t\t\treturn \"<a \"+target+\" href=\\\"\" + idUrl + \"\\\">\" + cellval + \"</a>\";\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval,opts);\n\t};\n\t$.fn.fmatter.integer = function(cellval, opts) {\n\t\tvar op = $.extend({},opts.integer);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.number = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.number);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.currency = function (cellval, opts) {\n\t\tvar op = $.extend({},opts.currency);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif($.fmatter.isEmpty(cellval)) {\n\t\t\treturn op.defaultValue;\n\t\t}\n\t\treturn $.fmatter.util.NumberFormat(cellval,op);\n\t};\n\t$.fn.fmatter.date = function (cellval, opts, rwd, act) {\n\t\tvar op = $.extend({},opts.date);\n\t\tif(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(!op.reformatAfterEdit && act === 'edit'){\n\t\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t\t}\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n\t$.fn.fmatter.select = function (cellval,opts) {\n\t\t// jqGrid specific\n\t\tcellval = String(cellval);\n\t\tvar oSelect = false, ret=[], sep, delim;\n\t\tif(opts.colModel.formatoptions !== undefined){\n\t\t\toSelect= opts.colModel.formatoptions.value;\n\t\t\tsep = opts.colModel.formatoptions.separator === undefined ? \":\" : opts.colModel.formatoptions.separator;\n\t\t\tdelim = opts.colModel.formatoptions.delimiter === undefined ? \";\" : opts.colModel.formatoptions.delimiter;\n\t\t} else if(opts.colModel.editoptions !== undefined){\n\t\t\toSelect= opts.colModel.editoptions.value;\n\t\t\tsep = opts.colModel.editoptions.separator === undefined ? \":\" : opts.colModel.editoptions.separator;\n\t\t\tdelim = opts.colModel.editoptions.delimiter === undefined ? \";\" : opts.colModel.editoptions.delimiter;\n\t\t}\n\t\tif (oSelect) {\n\t\t\tvar\tmsl =  (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cellval.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\t// mybe here we can use some caching with care ????\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray(sv[0],scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[1];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[0]) === $.trim(cellval)) {\n\t\t\t\t\t\tret[0] = sv[1];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect)) {\n\t\t\t\t// this is quicker\n\t\t\t\tif(msl) {\n\t\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\t\treturn oSelect[n];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tret[0] = oSelect[cellval] || \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcellval = ret.join(\", \");\n\t\treturn  cellval === \"\" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;\n\t};\n\t$.fn.fmatter.rowactions = function(act) {\n\t\tvar $tr = $(this).closest(\"tr.jqgrow\"),\n\t\t\trid = $tr.attr(\"id\"),\n\t\t\t$id = $(this).closest(\"table.ui-jqgrid-btable\").attr('id').replace(/_frozen([^_]*)$/,'$1'),\n\t\t\t$grid = $(\"#\"+$id),\n\t\t\t$t = $grid[0],\n\t\t\tp = $t.p,\n\t\t\tcm = p.colModel[$.jgrid.getCellIndex(this)],\n\t\t\t$actionsDiv = cm.frozen ? $(\"tr#\"+rid+\" td:eq(\"+$.jgrid.getCellIndex(this)+\") > div\",$grid) :$(this).parent(),\n\t\t\top = {\n\t\t\t\textraparam: {}\n\t\t\t},\n\t\t\tsaverow = function(rowid, res) {\n\t\t\t\tif($.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t},\n\t\t\trestorerow = function(rowid) {\n\t\t\t\tif($.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t};\n\n\t\tif (cm.formatoptions !== undefined) {\n\t\t\top = $.extend(op,cm.formatoptions);\n\t\t}\n\t\tif (p.editOptions !== undefined) {\n\t\t\top.editOptions = p.editOptions;\n\t\t}\n\t\tif (p.delOptions !== undefined) {\n\t\t\top.delOptions = p.delOptions;\n\t\t}\n\t\tif ($tr.hasClass(\"jqgrid-new-row\")){\n\t\t\top.extraparam[p.prmNames.oper] = p.prmNames.addoper;\n\t\t}\n\t\tvar actop = {\n\t\t\tkeys: op.keys,\n\t\t\toneditfunc: op.onEdit,\n\t\t\tsuccessfunc: op.onSuccess,\n\t\t\turl: op.url,\n\t\t\textraparam: op.extraparam,\n\t\t\taftersavefunc: saverow,\n\t\t\terrorfunc: op.onError,\n\t\t\tafterrestorefunc: restorerow,\n\t\t\trestoreAfterError: op.restoreAfterError,\n\t\t\tmtype: op.mtype\n\t\t};\n\t\tswitch(act)\n\t\t{\n\t\t\tcase 'edit':\n\t\t\t\t$grid.jqGrid('editRow', rid, actop);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").hide();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").show();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'save':\n\t\t\t\tif ($grid.jqGrid('saveRow', rid, actop)) {\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'cancel' :\n\t\t\t\t$grid.jqGrid('restoreRow', rid, restorerow);\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-edit,div.ui-inline-del\").show();\n\t\t\t\t$actionsDiv.find(\"div.ui-inline-save,div.ui-inline-cancel\").hide();\n\t\t\t\t$grid.triggerHandler(\"jqGridAfterGridComplete\");\n\t\t\t\tbreak;\n\t\t\tcase 'del':\n\t\t\t\t$grid.jqGrid('delGridRow', rid, op.delOptions);\n\t\t\t\tbreak;\n\t\t\tcase 'formedit':\n\t\t\t\t$grid.jqGrid('setSelection', rid);\n\t\t\t\t$grid.jqGrid('editGridRow', rid, op.editOptions);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\t$.fn.fmatter.actions = function(cellval,opts) {\n\t\tvar op={keys:false, editbutton:true, delbutton:true, editformbutton: false},\n\t\t\trowid=opts.rowId, str=\"\",ocl,\n\t\t\tnav = $.jgrid.getRegional(this, 'nav'),\n\t\t\tclasses = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter,\n\t\t\tcommon = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common;\n\t\tif(opts.colModel.formatoptions !== undefined) {\n\t\t\top = $.extend(op,opts.colModel.formatoptions);\n\t\t}\n\t\tif(rowid === undefined || $.fmatter.isEmpty(rowid)) {return \"\";}\n\t\tvar hover = \"onmouseover=jQuery(this).addClass('\" + common.hover +\"'); onmouseout=jQuery(this).removeClass('\" + common.hover +\"');  \";\n\t\tif(op.editformbutton){ \n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t} else if(op.editbutton){\n\t\t\tocl = \"id='jEditButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.edittitle+\"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_edit +\"'></span></div>\";\n\t\t}\n\t\tif(op.delbutton) {\n\t\t\tocl = \"id='jDeleteButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); \" + hover;\n\t\t\tstr += \"<div title='\"+nav.deltitle+\"' style='float:left;' class='ui-pg-div ui-inline-del' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_del +\"'></span></div>\";\n\t\t}\n\t\tocl = \"id='jSaveButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); \" + hover;\n\t\tstr += \"<div title='\"+nav.savetitle+\"' style='float:left;display:none' class='ui-pg-div ui-inline-save' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_save +\"'></span></div>\";\n\t\tocl = \"id='jCancelButton_\"+rowid+\"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); \" + hover;\n\t\tstr += \"<div title='\"+nav.canceltitle+\"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' \"+ocl+\"><span class='\" + common.icon_base +\" \"+classes.icon_cancel +\"'></span></div>\";\n\t\treturn \"<div style='margin-left:8px;'>\" + str + \"</div>\";\n\t};\n\t$.unformat = function (cellval,options,pos,cnt) {\n\t\t// specific for jqGrid only\n\t\tvar ret, formatType = options.colModel.formatter,\n\t\top =options.colModel.formatoptions || {}, sep,\n\t\tre = /([\\.\\*\\_\\'\\(\\)\\{\\}\\+\\?\\\\])/g,\n\t\tunformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);\n\t\tif(unformatFunc !== undefined && $.isFunction(unformatFunc) ) {\n\t\t\tret = unformatFunc.call(this, $(cellval).text(), options, cellval);\n\t\t} else if(formatType !== undefined && $.fmatter.isString(formatType) ) {\n\t\t\tvar opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag;\n\t\t\tswitch(formatType) {\n\t\t\t\tcase 'integer' :\n\t\t\t\t\top = $.extend({},opts.integer,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,'');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'number' :\n\t\t\t\t\top = $.extend({},opts.number,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text().replace(stripTag,\"\").replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'currency':\n\t\t\t\t\top = $.extend({},opts.currency,op);\n\t\t\t\t\tsep = op.thousandsSeparator.replace(re,\"\\\\$1\");\n\t\t\t\t\tstripTag = new RegExp(sep, \"g\");\n\t\t\t\t\tret = $(cellval).text();\n\t\t\t\t\tif (op.prefix && op.prefix.length) {\n\t\t\t\t\t\tret = ret.substr(op.prefix.length);\n\t\t\t\t\t}\n\t\t\t\t\tif (op.suffix && op.suffix.length) {\n\t\t\t\t\t\tret = ret.substr(0, ret.length - op.suffix.length);\n\t\t\t\t\t}\n\t\t\t\t\tret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\tvar cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(\":\") : [\"Yes\",\"No\"];\n\t\t\t\t\tret = $('input',cellval).is(\":checked\") ? cbv[0] : cbv[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select' :\n\t\t\t\t\tret = $.unformat.select(cellval,options,pos,cnt);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'actions':\n\t\t\t\t\treturn \"\";\n\t\t\t\tdefault:\n\t\t\t\t\tret= $(cellval).text();\n\t\t\t}\n\t\t}\n\t\treturn ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());\n\t};\n\t$.unformat.select = function (cellval,options,pos,cnt) {\n\t\t// Spacial case when we have local data and perform a sort\n\t\t// cnt is set to true only in sortDataArray\n\t\tvar ret = [];\n\t\tvar cell = $(cellval).text();\n\t\tif(cnt===true) {return cell;}\n\t\tvar op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions),\n\t\tsep = op.separator === undefined ? \":\" : op.separator,\n\t\tdelim = op.delimiter === undefined ? \";\" : op.delimiter;\n\t\t\n\t\tif(op.value){\n\t\t\tvar oSelect = op.value,\n\t\t\tmsl =  op.multiple === true ? true : false,\n\t\t\tscell = [], sv;\n\t\t\tif(msl) {scell = cell.split(\",\");scell = $.map(scell,function(n){return $.trim(n);});}\n\t\t\tif ($.fmatter.isString(oSelect)) {\n\t\t\t\tvar so = oSelect.split(delim), j=0, i;\n\t\t\t\tfor(i=0; i<so.length;i++){\n\t\t\t\t\tsv = so[i].split(sep);\n\t\t\t\t\tif(sv.length > 2 ) {\n\t\t\t\t\t\tsv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);\n\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\tif(msl) {\n\t\t\t\t\t\tif($.inArray($.trim(sv[1]),scell)>-1) {\n\t\t\t\t\t\t\tret[j] = sv[0];\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if($.trim(sv[1]) === $.trim(cell)) {\n\t\t\t\t\t\tret[0] = sv[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if($.fmatter.isObject(oSelect) || $.isArray(oSelect) ){\n\t\t\t\tif(!msl) {scell[0] =  cell;}\n\t\t\t\tret = $.map(scell, function(n){\n\t\t\t\t\tvar rv;\n\t\t\t\t\t$.each(oSelect, function(i,val){\n\t\t\t\t\t\tif (val === n) {\n\t\t\t\t\t\t\trv = i;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif( rv !== undefined ) {return rv;}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ret.join(\", \");\n\t\t}\n\t\treturn cell || \"\";\n\t};\n\t$.unformat.date = function (cellval, opts) {\n\t\tvar op = $.jgrid.getRegional(this, 'formatter.date') || {};\n\t\tif(opts.formatoptions !== undefined) {\n\t\t\top = $.extend({},op,opts.formatoptions);\n\t\t}\t\t\n\t\tif(!$.fmatter.isEmpty(cellval)) {\n\t\t\treturn $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op);\n\t\t}\n\t\treturn $.fn.fmatter.defaultFormat(cellval, opts);\n\t};\n\n//module begin\nvar dragging, placeholders = $();\n$.fn.html5sortable = function(options) {\n\tvar method = String(options);\n\toptions = $.extend({\n\t\tconnectWith: false\n\t}, options);\n\treturn this.each(function() {\n\t\tif (/^enable|disable|destroy$/.test(method)) {\n\t\t\tvar items = $(this).children($(this).data('items')).attr('draggable', method === 'enable');\n\t\t\tif (method === 'destroy') {\n\t\t\t\titems.add(this).removeData('connectWith items')\n\t\t\t\t\t.off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tvar isHandle, index, items = $(this).children(options.items);\n\t\tvar placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div')\n            + ' class=\"sortable-placeholder ' + options.placeholderClass + '\">').html('&nbsp;');\n        items.find(options.handle).mousedown(function() {\n\t\t\tisHandle = true;\n\t\t}).mouseup(function() {\n\t\t\tisHandle = false;\n\t\t});\n\t\t$(this).data('items', options.items);\n\t\tplaceholders = placeholders.add(placeholder);\n\t\tif (options.connectWith) {\n\t\t\t$(options.connectWith).add(this).data('connectWith', options.connectWith);\n\t\t}\n\t\titems.attr('draggable', 'true').on('dragstart.h5s', function(e) {\n\t\t\tif (options.handle && !isHandle) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tisHandle = false;\n\t\t\tvar dt = e.originalEvent.dataTransfer;\n\t\t\tdt.effectAllowed = 'move';\n\t\t\tdt.setData('Text', 'dummy');\n\t\t\tindex = (dragging = $(this)).addClass('sortable-dragging').index();\n\t\t}).on('dragend.h5s', function() {\n\t\t\tif (!dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdragging.removeClass('sortable-dragging').show();\n\t\t\tplaceholders.detach();\n\t\t\tif (index !== dragging.index()) {\n\t\t\t\tdragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()});\n\t\t\t}\n\t\t\tdragging = null;\n\t\t}).not('a[href], img').on('selectstart.h5s', function() {\n\t\t\tthis.dragDrop && this.dragDrop();\n\t\t\treturn false;\n\t\t}).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) {\n\t\t\tif (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (e.type === 'drop') {\n\t\t\t\te.stopPropagation();\n\t\t\t\tplaceholders.filter(':visible').after(dragging);\n\t\t\t\tdragging.trigger('dragend.h5s');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.originalEvent.dataTransfer.dropEffect = 'move';\n\t\t\tif (items.is(this)) {\n\t\t\t\tif (options.forcePlaceholderSize) {\n\t\t\t\t\tplaceholder.height(dragging.outerHeight());\n\t\t\t\t}\n\t\t\t\tdragging.hide();\n\t\t\t\t$(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder);\n\t\t\t\tplaceholders.not(placeholder).detach();\n\t\t\t} else if (!placeholders.is(this) && !$(this).children(options.items).length) {\n\t\t\t\tplaceholders.detach();\n\t\t\t\t$(this).append(placeholder);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t});\n};\n\n//module begin\nwindow.jqGridUtils = {\n\tstringify : function(obj) {\n\t\treturn JSON.stringify(obj,function(key, value){\n            return (typeof value === 'function' ) ? value.toString() : value;\n        });\n\t},\n\tparse : function(str) {\n\t\treturn JSON.parse(str,function(key, value){\n\t\t\tif(typeof value === \"string\" && value.indexOf(\"function\") !== -1) {\n\t\t\t\tvar sv = value.split(\" \");\n\t\t\t\tif(sv[0].trim() === 'function' && value.trim().slice(-1) === \"}\") {\n\t\t\t\t\treturn  eval('('+value+')');\n\t\t\t\t} else {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t},\n\tencode : function ( text ) { // repeated, but should not depend on grid\n\t\treturn String(text).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\"/g,'&quot;');\n\t},\n\tjsonToXML : function ( tree, options ) {\n\t\tvar o = $.extend( {\n\t\t\txmlDecl : '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\\n',\n\t\t\tattr_prefix : '-',\n\t\t\tencode : true\n\t\t}, options || {}),\n\t\tthat = this,\n\t\tscalarToxml = function ( name, text ) {\n\t\t\tif ( name === \"#text\" ) {\n\t\t\t\treturn (o.encode ? that.encode(text) : text);\n\t\t\t} else if(typeof(text) ==='function') {\n\t\t\t\treturn \"<\"+name+\"><![CDATA[\"+ text +\"]]></\"+name+\">\\n\";\n\t\t\t} if(text === \"\") {\n\t\t\t\treturn \"<\"+name+\">__EMPTY_STRING_</\"+name+\">\\n\";\n\t\t\t} else {\n\t\t\t\treturn \"<\"+name+\">\"+(o.encode ? that.encode(text) : text )+\"</\"+name+\">\\n\";\n\t\t\t}\n\t\t},\n\t\tarrayToxml = function ( name, array ) {\n\t\t\tvar out = [];\n\t\t    for( var i=0; i<array.length; i++ ) {\n\t\t\t\tvar val = array[i];\n\t\t        if ( typeof(val) === \"undefined\" || val == null ) {\n\t\t\t\t\tout[out.length] = \"<\"+name+\" />\";\n\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor == Array ) {\n\t\t\t\t\tout[out.length] = arrayToxml( name, val );\n\t\t\t\t} else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\tout[out.length] = hashToxml( name, val );\n\t\t\t\t} else {\n\t\t\t\t\tout[out.length] = scalarToxml( name, val );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(!out.length) {\n\t\t\t\tout[0] = \"<\"+ name+\">__EMPTY_ARRAY_</\"+name+\">\\n\";\n\t\t\t}\n\t\t\treturn out.join(\"\");\n\t\t},\n\t\thashToxml = function ( name, tree ) {\n\t\t\tvar elem = [];\n\t\t    var attr = [];\n\t\t    for( var key in tree ) {\n\t\t\t\tif ( ! tree.hasOwnProperty(key) ) continue;\n\t\t\t\tvar val = tree[key];\n\t\t\t\tif ( key.charAt(0) !==  o.attr_prefix ) {\n\t\t\t\t\tif ( val == null ) { // null or undefined\n\t\t               elem[elem.length] = \"<\"+key+\" />\";\n\t\t\t\t\t} else if ( typeof(val) === \"object\" && val.constructor === Array ) {\n\t\t                elem[elem.length] = arrayToxml( key, val );\n\t\t            } else if ( typeof(val) === \"object\" ) {\n\t\t\t\t\t\telem[elem.length] = hashToxml( key, val );\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[elem.length] = scalarToxml( key, val );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tattr[attr.length] = \" \"+(key.substring(1))+'=\"'+(o.encode ? that.encode( val ) : val)+'\"';\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar jattr = attr.join(\"\");\n\t\t\tvar jelem = elem.join(\"\");\n\t\t\tif ( name == null ) { // null or undefined\n\t\t\t\t// no tag\n\t\t\t} else if ( elem.length > 0 ) {\n\t\t\t\tif ( jelem.match( /\\n/ )) {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\\n\"+jelem+\"</\"+name+\">\\n\";\n\t\t\t\t} else {\n\t\t\t\t\tjelem = \"<\"+name+jattr+\">\"  +jelem+\"</\"+name+\">\\n\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tjelem = \"<\"+name+jattr+\" />\\n\";\n\t\t\t}\n\t\t\treturn jelem;\n\t\t};\n\n\t\tvar xml = hashToxml( null, tree );\n\t\treturn o.xmlDecl + xml;\n\t},\n\txmlToJSON : function ( root, options ) {\n\t\tvar o = $.extend ( {\n\t\t\tforce_array : [], //[ \"rdf:li\", \"item\", \"-xmlns\" ];\n\t\t\tattr_prefix : '-'\n\t\t}, options || {} );\n\t\t\n\t\tif(!root) { return; }\n\t\t\n\t    var __force_array = {};\n\t\tif ( o.force_array ) {\n\t\t\tfor( var i=0; i< o.force_array.length; i++ ) {\n\t\t\t\t__force_array[o.force_array[i]] = 1;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(typeof root === 'string') {\n\t\t\troot = $.parseXML(root);\n\t\t} \n\t\tif(root.documentElement) {\n\t\t\troot = root.documentElement;\n\t\t}\n\t\tvar addNode = function ( hash, key, cnts, val ) {\n\t\t\tif(typeof val === 'string') {\n\t\t\t\tif( val.indexOf('function') !== -1) {\n\t\t\t\t\tval =  eval( '(' + val +')'); // we need this in our implement\n\t\t\t\t} else {\n\t\t\t\t\tswitch(val) {\n\t\t\t\t\t\tcase '__EMPTY_ARRAY_' :\n\t\t\t\t\t\t\tval = [];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase '__EMPTY_STRING_':\n\t\t\t\t\t\t\tval = \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"false\" :\n\t\t\t\t\t\t\tval = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"true\":\n\t\t\t\t\t\t\tval = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} \n\t\t\tif ( __force_array[key] ) {\n\t\t\t\tif ( cnts === 1 ) {\n\t\t\t\t\thash[key] = [];\n\t\t\t\t}\n\t\t\t\thash[key][hash[key].length] = val;      // push\n\t\t\t} else if ( cnts === 1 ) {                   // 1st sibling\n\t\t\t\thash[key] = val;\n\t\t\t} else if ( cnts === 2 ) {                   // 2nd sibling\n\t\t\t\thash[key] = [ hash[key], val ];\n\t\t\t} else {                                    // 3rd sibling and more\n\t\t\t\thash[key][hash[key].length] = val;\n\t\t\t}\n\t\t},\n\t\tparseElement = function ( elem ) {\n\t\t\t//  COMMENT_NODE\n\t\t\tif ( elem.nodeType === 7 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t//  TEXT_NODE CDATA_SECTION_NODE\n\t\t\tif ( elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\tvar bool = elem.nodeValue.match( /[^\\x00-\\x20]/ );\n\t\t\t\tif ( bool == null ) return;     // ignore white spaces\n\t\t\t\treturn elem.nodeValue;\n\t\t\t}\n\t\t\t\n\t\t\tvar retval,\tcnt = {}, i, key, val;\n\n\t\t\t//  parse attributes\n\t\t\tif ( elem.attributes && elem.attributes.length ) {\n\t\t\t\tretval = {};\n\t\t\t\tfor ( i=0; i<elem.attributes.length; i++ ) {\n\t\t\t\t\tkey = elem.attributes[i].nodeName;\n\t\t\t\t\tif ( typeof(key) !== \"string\" )  {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tval = elem.attributes[i].nodeValue;\n\t\t\t\t\tif ( ! val ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tkey = o.attr_prefix + key;\n\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t}\n\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//  parse child nodes (recursive)\n\t\t\tif ( elem.childNodes && elem.childNodes.length ) {\n\t\t\t\tvar textonly = true;\n\t\t\t\tif ( retval ) {\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}        // some attributes exists\n\t\t\t\tfor ( i=0; i<elem.childNodes.length && textonly; i++ ) {\n\t\t\t\t\tvar ntype = elem.childNodes[i].nodeType;\n\t\t\t\t\tif ( ntype === 3 || ntype === 4 ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\ttextonly = false;\n\t\t\t\t}\n\t\t\t\tif ( textonly ) {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = \"\";\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tretval += elem.childNodes[i].nodeValue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( ! retval ) {\n\t\t\t\t\t\tretval = {};\n\t\t\t\t\t}\n\t\t\t\t\tfor ( i=0; i<elem.childNodes.length; i++ ) {\n\t\t\t\t\t\tkey = elem.childNodes[i].nodeName;\n\t\t\t\t\t\tif ( typeof(key) !== \"string\" ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tval = parseElement( elem.childNodes[i] );\n\t\t\t\t\t\tif ( !val ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( typeof(cnt[key]) === \"undefined\" ) {\n\t\t\t\t\t\t\tcnt[key] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcnt[key] ++;\n\t\t\t\t\t\taddNode( retval, key, cnt[key], val );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn retval;\n\t\t};\n\t\t\n\t    var json = parseElement( root );   // parse root node\n\t\tif ( __force_array[root.nodeName] ) {\n\t\t\tjson = [ json ];\n\t\t}\n\t\tif ( root.nodeType !== 11 ) {            // DOCUMENT_FRAGMENT_NODE\n\t\t\tvar tmp = {};\n\t\t\ttmp[root.nodeName] = json;          // root nodeName\n\t\t\tjson = tmp;\n\t\t}\n\t\treturn json;\n\t},\n\tsaveAs : function (data, fname, opts) {\n\t\topts = $.extend(true,{\n\t\t\ttype : 'plain/text;charset=utf-8'\n\t\t}, opts || {});\n\n\t\tvar file, url, tmp = []; \n\n\t\tfname = fname == null || fname === '' ? 'jqGridFile.txt' : fname;\n\n\t\tif(!$.isArray(data) ) {\n\t\t\ttmp[0]= data ;\n\t\t} else {\n\t\t\ttmp = data;\t\n\t\t}\n\t\ttry {\n\t\t\tfile = new File(tmp, fname, opts);\n\t\t} catch (e) {\n\t\t\tfile = new Blob(tmp, opts);\n\t\t}\n\t\turl = URL.createObjectURL(file);\n\t\tvar a = document.createElement(\"a\");\n\t\ta.href = url;\n\t\ta.download = fname;\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tsetTimeout(function() {\n\t\t\tdocument.body.removeChild(a);\n\t\t\twindow.URL.revokeObjectURL(url);  \n\t\t}, 0);\t\n\t}\n};\n\n//module begin\n\n$.jgrid = $.jgrid || {};\n\n\n$.extend($.jgrid,{\n\tformatCell : function ( cellval , colpos, rwdat, cm, $t){\n\t\tvar v;\n\t\tif(cm.formatter !== undefined) {\n\t\t\tvar opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '' };\n\t\t\tif($.isFunction( cm.formatter ) ) {\n\t\t\t\tv = cm.formatter.call($t,cellval,opts,rwdat);\n\t\t\t} else if($.fmatter){\n\t\t\t\tv = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat);\n\t\t\t} else {\n\t\t\t\tv = cellval;\n\t\t\t}\n\t\t} else {\n\t\t\tv = cellval;\n\t\t}\n\t\treturn v;\n\t},\n\tformatCellCsv : function (v, p) {\n\t\tv = v == null ? '' : String(v);\n\t\ttry {\n\t\t\tv = v.replace(p._regexsep ,p.separatorReplace).replace(/\\r\\n/g, p.replaceNewLine).replace(/\\n/g, p.replaceNewLine);\n\t\t} catch (_e) {\n\t\t\tv=\"\";\n\t\t}\n\t\tif(p.escquote) {\n\t\t\tv = v.replace(p._regexquot, p.escquote + p.quote);\n\t\t}\n\t\tif( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) {\n\t\t\tv = p.quote + v + p.quote;\n\t\t}\n\t\treturn v;\t\t\n\t},\n\n\texcelCellPos : function ( n ){\n\t\tvar ordA = 'A'.charCodeAt(0),\n\t\tordZ = 'Z'.charCodeAt(0),\n\t\tlen = ordZ - ordA + 1,\n\t\ts = \"\";\n\n\t\twhile( n >= 0 ) {\n\t\t\ts = String.fromCharCode(n % len + ordA) + s;\n\t\t\tn = Math.floor(n / len) - 1;\n\t\t}\n\n\t\treturn s;\n\t},\n\n\tmakeNode : function ( root, elemName, options ) {\n\t\tvar currNode = root.createElement( elemName );\n\n\t\tif ( options ) {\n\t\t\tif ( options.attr ) {\n\t\t\t\t$(currNode).attr( options.attr );\n\t\t\t}\n\t\t\tif( options.children ) {\n\t\t\t\t$.each( options.children, function ( key, value ) {\n\t\t\t\t\tcurrNode.appendChild( value );\n\t\t\t\t});\n\t\t\t}\n\t\t\tif( options.text ) {\n\t\t\t\tcurrNode.appendChild( root.createTextNode( options.text ) );\n\t\t\t}\n\t\t}\n\t\treturn currNode;\n\t},\n\txmlToZip : function ( zip, obj ) {\n\t\tvar $t = this,\n\t\txmlserialiser = new XMLSerializer(),\n\t\t// IE >= 9\n\t\tieExcel = xmlserialiser.serializeToString(\t\n\t\t\t$.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) )\n\t\t\t.indexOf( 'xmlns:r' ) === -1,\n\t\tnewDir, worksheet, i, ien, attr, attrs = [], str;\n\n\t\t$.each( obj, function ( name, val ) {\n\t\t\tif ( $.isPlainObject( val ) ) {\n\t\t\t\tnewDir = zip.folder( name );\n\t\t\t\t$t.xmlToZip( newDir, val );\n\t\t\t} else {\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tworksheet = val.childNodes[0];\n\t\t\t\t\tfor ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {\n\t\t\t\t\t\tvar attrName = worksheet.attributes[i].nodeName;\n\t\t\t\t\t\tvar attrValue = worksheet.attributes[i].nodeValue;\n\n\t\t\t\t\t\tif ( attrName.indexOf( ':' ) !== -1 ) {\n\t\t\t\t\t\t\tattrs.push( { name: attrName, value: attrValue } );\n\n\t\t\t\t\t\t\tworksheet.removeAttribute( attrName );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( i=0, ien=attrs.length ; i<ien ; i++ ) {\n\t\t\t\t\t\tattr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );\n\t\t\t\t\t\tattr.value = attrs[i].value;\n\t\t\t\t\t\tworksheet.setAttributeNode( attr );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// suuport of all browsers\n\t\t\t\tstr = xmlserialiser.serializeToString(val);\n\t\t\t\t// Fix IE's XML\n\t\t\t\tif ( ieExcel ) {\n\t\t\t\t\tif ( str.indexOf( '<?xml' ) === -1 ) {\n\t\t\t\t\t\tstr = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+str;\n\t\t\t\t\t}\n\t\t\t\t\tstr = str.replace( /_dt_b_namespace_token_/g, ':' );\n\t\t\t\t}\n\n\t\t\t\tstr = str\n\t\t\t\t\t.replace( /<row xmlns=\"\" /g, '<row ' )\n\t\t\t\t\t.replace( /<cols xmlns=\"\">/g, '<cols>' )\n\t\t\t\t\t.replace( /<mergeCells xmlns=\"\" /g, '<mergeCells ' );\n\n\t\t\t\tzip.file( name, str );\n\t\t\t}\n\t\t} );\n\t},\n\t// Excel - Pre-defined strings to build a basic XLSX file\n\texcelStrings  : {\n\t\t\"_rels/.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"xl/_rels/workbook.xml.rels\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">'+\n\t\t\t\t'<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>'+\n\t\t\t\t'<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>'+\n\t\t\t'</Relationships>',\n\n\t\t\"[Content_Types].xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">'+\n\t\t\t\t'<Default Extension=\"xml\" ContentType=\"application/xml\" />'+\n\t\t\t\t'<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />'+\n\t\t\t\t'<Default Extension=\"jpeg\" ContentType=\"image/jpeg\" />'+\n\t\t\t\t'<Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\" />'+\n\t\t\t\t'<Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" />'+\n\t\t\t'</Types>',\n\n\t\t\"xl/workbook.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">'+\n\t\t\t\t'<fileVersion appName=\"xl\" lastEdited=\"5\" lowestEdited=\"5\" rupBuild=\"24816\"/>'+\n\t\t\t\t'<workbookPr showInkAnnotation=\"0\" autoCompressPictures=\"0\"/>'+\n\t\t\t\t'<bookViews>'+\n\t\t\t\t\t'<workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"25600\" windowHeight=\"19020\" tabRatio=\"500\"/>'+\n\t\t\t\t'</bookViews>'+\n\t\t\t\t'<sheets>'+\n\t\t\t\t\t'<sheet name=\"\" sheetId=\"1\" r:id=\"rId1\"/>'+\n\t\t\t\t'</sheets>'+\n\t\t\t'</workbook>',\n\n\t\t\"xl/worksheets/sheet1.xml\":\n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>'+\n\t\t\t'<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<sheetData/>'+\n\t\t\t'</worksheet>',\n\n\t\t\"xl/styles.xml\": \n\t\t\t'<?xml version=\"1.0\" encoding=\"UTF-8\"?>'+\n\t\t\t'<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'+\n\t\t\t\t'<fonts count=\"5\" x14ac:knownFonts=\"1\">'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<color rgb=\"FFFFFFFF\" />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<b />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<i />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t\t'<font>'+\n\t\t\t\t\t\t'<sz val=\"11\" />'+\n\t\t\t\t\t\t'<name val=\"Calibri\" />'+\n\t\t\t\t\t\t'<u />'+\n\t\t\t\t\t'</font>'+\n\t\t\t\t'</fonts>'+\n\t\t\t\t'<fills count=\"6\">'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"none\" />'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill/>'+ \n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD9D9D9\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"FFD99795\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6efce\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t\t'<fill>'+\n\t\t\t\t\t\t'<patternFill patternType=\"solid\">'+\n\t\t\t\t\t\t\t'<fgColor rgb=\"ffc6cfef\" />'+\n\t\t\t\t\t\t\t'<bgColor indexed=\"64\" />'+\n\t\t\t\t\t\t'</patternFill>'+\n\t\t\t\t\t'</fill>'+\n\t\t\t\t'</fills>'+\n\t\t\t\t'<borders count=\"2\">'+\n\t\t\t\t\t'<border>'+\n\t\t\t\t\t\t'<left />'+\n\t\t\t\t\t\t'<right />'+\n\t\t\t\t\t\t'<top />'+\n\t\t\t\t\t\t'<bottom />'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t\t'<border diagonalUp=\"false\" diagonalDown=\"false\">'+\n\t\t\t\t\t\t'<left style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</left>'+\n\t\t\t\t\t\t'<right style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</right>'+\n\t\t\t\t\t\t'<top style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</top>'+\n\t\t\t\t\t\t'<bottom style=\"thin\">'+\n\t\t\t\t\t\t\t'<color auto=\"1\" />'+\n\t\t\t\t\t\t'</bottom>'+\n\t\t\t\t\t\t'<diagonal />'+\n\t\t\t\t\t'</border>'+\n\t\t\t\t'</borders>'+\n\t\t\t\t'<cellStyleXfs count=\"1\">'+\n\t\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" />'+\n\t\t\t\t'</cellStyleXfs>'+\n\t\t\t\t'<cellXfs count=\"2\">'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"0\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"0\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"2\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"3\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"4\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"0\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"1\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"2\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"3\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'<xf numFmtId=\"0\" fontId=\"4\" fillId=\"5\" borderId=\"1\" applyFont=\"1\" applyFill=\"1\" applyBorder=\"1\"/>'+\n\t\t\t\t'</cellXfs>'+\n\t\t\t\t'<cellStyles count=\"1\">'+\n\t\t\t\t\t'<cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\" />'+\n\t\t\t\t'</cellStyles>'+\n\t\t\t\t'<dxfs count=\"0\" />'+\n\t\t\t\t'<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\" />'+\n\t\t\t'</styleSheet>'\n\t}\n\t\n});\n/******************************************************************** \n*\n* due to speed, every export method will have separate module\n* to collect grouped data\n*\n*********************************************************************/\n$.jgrid.extend({\n\texportToCsv : function ( p ) {\n\t\tp = $.extend(true, {\n\t\t\tseparator: \",\",\n\t\t\tseparatorReplace : \" \",\n\t\t\tquote : '\"', \n\t\t\tescquote : '\"', \n\t\t\tnewLine : \"\\r\\n\", // navigator.userAgent.match(/Windows/) ?\t'\\r\\n' : '\\n';\n\t\t\treplaceNewLine : \" \",\n\t\t\tincludeCaption : true,\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.csv\",\n\t\t\tmimetype : \"text/csv;charset=utf-8\",\n\t\t\treturnAsString : false\n\t\t}, p || {});\n\t\tvar ret =\"\";\n\t\tthis.each(function(){\n\n\t\t\tp._regexsep = new RegExp(p.separator, \"g\");\n\t\t\tp._regexquot = new RegExp(p.quote, \"g\");\n\t\t\t\t\t\t\n\t\t\tvar $t = this,\n\t\t\t// get the filtered data\n\t\t\tdata1 = this.addLocalData( true ), \n\t\t\tdlen = data1.length,\n\t\t\tcm = $t.p.colModel,\n\t\t\tcmlen = cm.length,\n\t\t\ti, j=0, row, str = '' , tmp, k,\n\t\t\tcap = \"\", hdr = \"\", ftr=\"\",\tlbl=\"\", albl=[], restorevis = [];\n\t\t\tfunction groupToCsv (grdata, p) {\n\t\t\t\tvar str=\"\",\n\t\t\t\tgrp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0;\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[j] = \n\t\t\t\t\t\t\t\t\t$.jgrid.formatCellCsv(\n\t\t\t\t\t\t\t\t\t$.jgrid.stripHtml( \n\t\t\t\t\t\t\t\t\t$.jgrid.template(tplfld,vv) \n\t\t\t\t\t\t\t\t\t), p ) ;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv, k;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = new Array(p.collen);\n\t\t\t\t\t}\n\t\t\t\t\tarr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p);\n\t\t\t\t\tstr +=  arr.join( p.separator ) + p.newLine;\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tto = grdata[kk - offset];\n\t\t\t\t\t\t\tk = 0;\n\t\t\t\t\t\t\tfor(ik = 0; ik < cm.length; ik++) {\n\t\t\t\t\t\t\t\tif(!cm[ik].hidden) {\n\t\t\t\t\t\t\t\t\tarr[k] = $.jgrid.formatCellCsv( \n\t\t\t\t\t\t\t\t\t\t$.jgrid.formatCell( to[cm[ik].name], ik, to, cm[ik], $t ) , p);\n\t\t\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\tstr += arr.join( p.separator ) + p.newLine;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn str;\n\t\t\t}\n\n\t\t\t// end group function\n\t\t\tvar def = {}, key;\n\t\t\t$.each(cm,function(i,n) {\n\t\t\t\tif((n.name === 'cb' || n.name === 'rn') && !n.hidden) {\n\t\t\t\t\trestorevis.push(i);\n\t\t\t\t\tn.hidden = true;\n\t\t\t\t}\n\t\t\t\tif(!n.hidden) {\n\t\t\t\t\talbl.push( $.jgrid.formatCellCsv( n.label || n.name, p) );\n\t\t\t\t\tdef[n.name] = n.label || n.name;\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tif(p.includeLabels) {\n\t\t\t\tlbl = albl.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\t\n\t\t\tp.collen = albl.length;\n\t\t\t\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\t\n\t\t\t\tstr += groupToCsv(data1, p);\n\t\t\t\t\n\t\t\t}  else {\n\t\t\t\twhile(j < dlen) {\n\t\t\t\t\trow = data1[j];\n\t\t\t\t\ttmp = [];\n\t\t\t\t\tk =0;\n\t\t\t\t\tfor(i = 0; i < cmlen; i++) {\n\t\t\t\t\t\tif(!cm[i].hidden) {\n\t\t\t\t\t\t\ttmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t ), p );\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tstr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata1 = null; // free\n\t\t\t// get the column length.\n\t\t\ttmp = new Array(p.collen);\n\t\t\tif(p.includeCaption && $t.p.caption) {\n\t\t\t\tj=p.collen;\n\t\t\t\twhile(--j) {tmp[j]=\"\";}\n\t\t\t\ttmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p );\n\t\t\t\tcap += tmp.join( p.separator ) + p.newLine;\n\t\t\t}\n\t\t\tif(p.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders;\n\t\t\t\t\tj = 0; tmp = [];\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttmp[j] = '';\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\ttmp[j]= ghdata[k].titleText;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\thdr += tmp.join( p.separator ) + p.newLine;\n \t\t\t\t}\n\t\t\t}\n\t\t\tif(p.includeFooter && $t.p.footerrow) {\n\t\t\t\t// already formated\n\t\t\t\tvar foot = $(\".ui-jqgrid-ftable\", this.sDiv);\n\t\t\t\tif(foot.length) {\n\t\t\t\t\tvar frows = foot[0].rows[0];\n\t\t\t\t\ti=0;j=0; tmp=[];\n\t\t\t\t\twhile(i < frows.cells.length){\n\t\t\t\t\t\tvar fc = frows.cells[i],\n\t\t\t\t\t\tcoln = $(fc).attr('aria-describedby').slice(-3);\n\t\t\t\t\t\tif(!fc.hidden && coln !== '_cb' && coln !== '_rn' ) {\n\t\t\t\t\t\t\ttmp[j] = $.jgrid.formatCellCsv( $(fc).text(), p );\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tftr += tmp.join( p.separator ) + p.newLine;\n\t\t\t\t}\n\t\t\t}\n\t\t\tret = cap + hdr + lbl + str + ftr;\n\t\t\t\n\t\t\tfor(i=0;i<restorevis.length;i++) {\n\t\t\t\tcm[restorevis[i]].hidden = false;\n\t\t\t}\n\t\t});\n\t\tif (p.returnAsString) {\n\t\t\treturn ret;\n\t\t} else {\n\t\t\tjqGridUtils.saveAs( ret, p.fileName, { type : p.mimetype });\n\t\t}\n\t},\n\t/*\n\t * \n\t * @param object o - settings for the export\n\t * @returns excel 2007 document\n\t * The method requiere jsZip lib in order to create excel document\n\t */\n\texportToExcel : function ( o ) {\n\t\to = $.extend(true, {\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.xlsx\",\n\t\t\tmimetype : \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n\t\t\tmaxlength : 40 // maxlength for visible string data \n\t\t}, o || {} );\n\t\tthis.each(function() {\n\t\t\tvar $t = this,\n\t\t\tes = $.jgrid.excelStrings,\n\t\t\trowPos = 0,\n\t\t\trels = $.parseXML( es['xl/worksheets/sheet1.xml']),\n\t\t\trelsGet = rels.getElementsByTagName( \"sheetData\" )[0],\n\t\t\txlsx = {\n\t\t\t\t_rels: {\n\t\t\t\t\t\".rels\": $.parseXML( es['_rels/.rels'])\n\t\t\t\t},\n\t\t\t\txl: {\n\t\t\t\t\t_rels: {\n\t\t\t\t\t\t\"workbook.xml.rels\": $.parseXML( es['xl/_rels/workbook.xml.rels'])\n\t\t\t\t\t},\n\t\t\t\t\t\"workbook.xml\": $.parseXML( es['xl/workbook.xml']),\n\t\t\t\t\t\"styles.xml\": $.parseXML( es['xl/styles.xml']),\n\t\t\t\t\t\"worksheets\": {\n\t\t\t\t\t\t\"sheet1.xml\": rels\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"[Content_Types].xml\": $.parseXML( es['[Content_Types].xml'])\n\t\t\t},\n\t\t\tcm = $t.p.colModel,\n\t\t\ti=0, j, ien, obj={},\n\t\t\tdata = { \n\t\t\t\tbody  : $t.addLocalData( true ),\n\t\t\t\theader : [],\n\t\t\t\tfooter : [],\n\t\t\t\twidth : [],\n\t\t\t\tmap : [] \n\t\t\t};\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj[ cm[j].name ] = cm[j].label || cm[j].name;\n\t\t\t\tdata.width[ i ] = 5;\n\t\t\t\tdata.map[i] = j;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tdata.header.push( obj );\n\t\t\tvar currentRow, rowNode,\n\t\t\taddRow = function ( row, header ) {\n\t\t\t\tcurrentRow = rowPos+1;\n\t\t\t\trowNode = $.jgrid.makeNode( rels, \"row\", { attr: {r:currentRow} } );\n\t\t\t\tvar i=0;\n\t\t\t\tfor ( var key  in data.header[0]) {\n\t\t\t\t\tif(!data.header[0].hasOwnProperty( key )) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t// key = cm[i].name;\n\t\t\t\t\t// Concat both the Cell Columns as a letter and the Row of the cell.\n\t\t\t\t\tvar cellId = $.jgrid.excelCellPos(i) + '' + currentRow,\n\t\t\t\t\tcell,\n\t\t\t\t\tv= row[key];\n\t\t\t\t\tif ( v == null ) {\n\t\t\t\t\t\tv = '';\n\t\t\t\t\t}\n\t\t\t\t\tif(!header) {\n\t\t\t\t\t\tv = v !== '' ? $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t) : v;\n\t\t\t\t\t}\n\t\t\t\t\tdata.width[i] = Math.max(data.width[i], Math.min(parseInt(v.length,10), o.maxlength) );\n\t\t\t\t\t// Detect numbers - don't match numbers with leading zeros or a negative\n\t\t\t\t\t// anywhere but the start\n\t\t\t\t\t// $.jgrid.formatCell( row[cm[i].name], i, row, cm[i], $t )\n\t\t\t\t\tif ( typeof v === 'number' || (\n\t\t\t\t\t\t\tv.match &&\n\t\t\t\t\t\t\t$.trim(v).match(/^-?\\d+(\\.\\d+)?$/) &&\n\t\t\t\t\t\t\t! $.trim(v).match(/^0\\d+/) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'n',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t$.jgrid.makeNode( rels, 'v', { text: v } )\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Replace non standard characters for text output\n\t\t\t\t\t\tvar text = ! v.replace ?\n\t\t\t\t\t\t\tv :\n\t\t\t\t\t\t\t$.jgrid.htmlEncode (v );\n\t\t\t\t\t\t\tcell = $.jgrid.makeNode( rels, 'c', {\n\t\t\t\t\t\t\tattr: {\n\t\t\t\t\t\t\t\tt: 'inlineStr',\n\t\t\t\t\t\t\t\tr: cellId\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren:{\n\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 'is', {\n\t\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t\trow: $.jgrid.makeNode( rels, 't', {\n\t\t\t\t\t\t\t\t\t\t\ttext: text\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t\trowNode.appendChild( cell );\n\t\t\t\t}\n\t\t\t\trelsGet.appendChild(rowNode);\n\t\t\t\trowPos++;\n\t\t\t};\n//=========================================================================\t\t\t\n\t\t\tfunction groupToExcel ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\t\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(data.header[0]);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(data.header[0]);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\taddRow( to, false );\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\taddRow( arr, true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\t\n\t\t\t$( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName );\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tvar gh = $t.p.groupHeader, mergecell=[];\n\t\t\t\tvar mrow = 0;\n\t\t\t\tfor (i=0;i<gh.length;i++) {\n\t\t\t\t\tvar ghdata = gh[i].groupHeaders, clone ={};\n\t\t\t\t\tj=0; mrow++;\n\t\t\t\t\tfor(var key in data.header[0] ) {\n\t\t\t\t\t\tif(!data.header[0].hasOwnProperty(key)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\tfor(var k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tclone[key] = ghdata[k].titleText;\n\t\t\t\t\t\t\t\tvar start = $.jgrid.excelCellPos(j) + mrow,\n\t\t\t\t\t\t\t\t\tend = $.jgrid.excelCellPos(j+ghdata[k].numberOfColumns -1) + mrow;\n\t\t\t\t\t\t\t\tmergecell.push({ ref: start+\":\"+end });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\taddRow( clone, true );\n \t\t\t\t}\n\t\t\t\tvar merge = $.jgrid.makeNode( rels, 'mergeCells', {\n\t\t\t\t\tattr : {\n\t\t\t\t\t\tcount : mergecell.length\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t$('worksheet', rels).append( merge );\n\t\t\t\tfor(i=0;i<mergecell.length;i++) {\n\t\t\t\t\tmerge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{ \n\t\t\t\t\t\tattr:  mergecell[i]\n\t\t\t\t\t}));\n\t\t\t\t}\t\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeLabels ) {\n\t\t\t\taddRow( data.header[0], true );\n\t\t\t\t$('row c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\tif( $t.p.grouping ) {\n\t\t\t\tgroupToExcel(data.body);\n\t\t\t} else {\n\t\t\t\tfor ( var n=0, ie=data.body.length ; n<ie ; n++ ) {\n\t\t\t\t\taddRow( data.body[n], false );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( o.includeFooter || $t.p.footerrow) {\n\t\t\t\tdata.footer = $($t).jqGrid('footerData', 'get');\n\t\t\t\tfor( i in data.footer) {\n\t\t\t\t\tif(data.footer.hasOwnProperty(i)) {\n\t\t\t\t\t\tdata.footer[i] = $.jgrid.stripHtml(data.footer[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\taddRow( data.footer, true );\n\t\t\t\t$('row:last c', rels).attr( 's', '2' ); // bold\n\t\t\t}\n\t\t\t\n\t\t\t// Set column widths\n\t\t\tvar cols = $.jgrid.makeNode( rels, 'cols' );\n\t\t\t$('worksheet', rels).prepend( cols );\n\n\t\t\tfor ( i=0, ien=data.width.length ; i<ien ; i++ ) {\n\t\t\t\tcols.appendChild( $.jgrid.makeNode( rels, 'col', {\n\t\t\t\t\tattr: {\n\t\t\t\t\t\tmin: i+1,\n\t\t\t\t\t\tmax: i+1,\n\t\t\t\t\t\twidth: data.width[i],\n\t\t\t\t\t\tcustomWidth: 1\n\t\t\t\t\t}\n\t\t\t\t} ) );\n\t\t\t}\n\t\t\tdata = null; // free memory\n\t\t\ttry {\n\t\t\t\tvar zip = new JSZip();\n\t\t\t\tvar zipConfig = {\n\t\t\t\t\ttype: 'blob',\n\t\t\t\t\tmimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t};\n\t\t\t\t$.jgrid.xmlToZip( zip, xlsx );\n\t\t\t\t\tif ( zip.generateAsync ) {\n\t\t\t\t\t// JSZip 3+\n\t\t\t\t\tzip\n\t\t\t\t\t\t.generateAsync( zipConfig )\n\t\t\t\t\t\t.then( function ( blob ) {\n\t\t\t\t\t\t\tjqGridUtils.saveAs( blob, o.fileName, { type : o.mimetype } );\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// JSZip 2.5\n\t\t\t\t\tjqGridUtils.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } );\t\t\t\t}\n\t\t\t}\n\t\t\tcatch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t},\n\texportToPdf : function (o) {\n\t\to = $.extend(true,{\n\t\t\ttitle: null,\n\t\t\torientation: 'portrait',\n\t\t\tpageSize: 'A4',\n\t\t\tdescription: null,\n\t\t\tcustomSettings: null,\n\t\t\tdownload: 'download',\n\t\t\tincludeLabels : true,\n\t\t\tincludeGroupHeader : true,\n\t\t\tincludeFooter: true,\n\t\t\tfileName : \"jqGridExport.pdf\",\n\t\t\tmimetype : \"application/pdf\"\n\t\t\t\n\t\t}, o || {} );\n\t\treturn this.each(function() {\n\t\t\tvar $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key, \n\t\t\tdata = $t.addLocalData( true ), def = {}, i=0, map=[], test=[], widths = [],  align={};\n// Group function\t\t\t\n\t\t\tfunction groupToPdf ( grdata ) {\n\t\t\t\tvar grp = $t.p.groupingView, \n\t\t\t\tcp=[], len =grp.groupField.length,\n\t\t\t\tcm = $t.p.colModel,\n\t\t\t\tcolspans = cm.length,\n\t\t\t\ttoEnd = 0;\n\n\t\t\t\t$.each(cm, function (i,n){\n\t\t\t\t\tvar ii;\n\t\t\t\t\tfor(ii=0;ii<len;ii++) {\n\t\t\t\t\t\tif(grp.groupField[ii] === n.name ) {\n\t\t\t\t\t\t\tcp[ii] = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tfunction constructRow( row, fmt ) {\n\t\t\t\t\tvar k =0, test=[];\n\t\t\t\t\t//row = data[i];\n\t\t\t\t\tfor( var key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif(def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj = {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : (fmt ? $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t) : row[key]),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn test;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction findGroupIdx( ind , offset, grp) {\n\t\t\t\t\tvar ret = false, i;\n\t\t\t\t\tif(offset===0) {\n\t\t\t\t\t\tret = grp[ind];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar id = grp[ind].idx;\n\t\t\t\t\t\tif(id===0) { \n\t\t\t\t\t\t\tret = grp[ind]; \n\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\tfor(i=ind;i >= 0; i--) {\n\t\t\t\t\t\t\t\tif(grp[i].idx === id-offset) {\n\t\t\t\t\t\t\t\t\tret = grp[i];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction buildSummaryTd(i, ik, grp, foffset) {\n\t\t\t\t\tvar fdata = findGroupIdx(i, ik, grp),\n\t\t\t\t\t//cm = $t.p.colModel,\n\t\t\t\t\tvv, grlen = fdata.cnt, k, retarr = emptyData(def);\n\t\t\t\t\tfor(k=foffset; k<colspans;k++) {\n\t\t\t\t\t\tif(cm[k].hidden) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar tplfld = \"{0}\";\n\t\t\t\t\t\t$.each(fdata.summary,function(){\n\t\t\t\t\t\t\tif(this.nm === cm[k].name) {\n\t\t\t\t\t\t\t\tif(cm[k].summaryTpl)  {\n\t\t\t\t\t\t\t\t\ttplfld = cm[k].summaryTpl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {\n\t\t\t\t\t\t\t\t\tif(this.sd && this.vd) { \n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/this.vd);\n\t\t\t\t\t\t\t\t\t} else if(this.v && grlen > 0) {\n\t\t\t\t\t\t\t\t\t\tthis.v = (this.v/grlen);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tthis.groupCount = fdata.cnt;\n\t\t\t\t\t\t\t\t\tthis.groupIndex = fdata.dataIndex;\n\t\t\t\t\t\t\t\t\tthis.groupValue = fdata.value;\n\t\t\t\t\t\t\t\t\tvv = $t.formatter('', this.v, k, this);\n\t\t\t\t\t\t\t\t} catch (ef) {\n\t\t\t\t\t\t\t\t\tvv = this.v;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tretarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn retarr;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfunction emptyData ( d ) {\n\t\t\t\t\tvar clone = {};\n\t\t\t\t\tfor(var key in d ) {\n\t\t\t\t\t\tif(d.hasOwnProperty(key)) {\n\t\t\t\t\t\t\tclone[key] = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn clone;\n\t\t\t\t}\n\n\t\t\t\tvar sumreverse = $.makeArray(grp.groupSummary), gv;\n\t\t\t\tsumreverse.reverse();\n\t\t\t\t$.each(grp.groups,function(i,n){\n\t\t\t\t\ttoEnd++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif ($.isArray(grp.formatDisplayField) && $.isFunction(grp.formatDisplayField[n.idx])) {\n\t\t\t\t\t\t\tgv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgv = $t.formatter('', n.displayValue, cp[n.idx], n.value );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (egv) {\n\t\t\t\t\t\tgv = n.displayValue;\n\t\t\t\t\t}\n\t\t\t\t\tvar grpTextStr = ''; \n\t\t\t\t\tif($.isFunction(grp.groupText[n.idx])) { \n\t\t\t\t\t\tgrpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgrpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);\n\t\t\t\t\t}\n\t\t\t\t\tif( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {\n\t\t\t\t\t\tgrpTextStr = gv;\n\t\t\t\t\t}\n\t\t\t\t\tvar arr;\n\t\t\t\t\tif(grp.groupSummaryPos[n.idx] === 'header')  {\n\t\t\t\t\t\tarr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ===\"\" ? 2 : 3) : ((mul ===\"\") ? 1 : 2)*/ );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr = emptyData(def);\n\t\t\t\t\t}\n\t\t\t\t\tvar fkey = Object.keys(arr);\n\t\t\t\t\tarr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );\n\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\tvar leaf = len-1 === n.idx; \n\t\t\t\t\tif( leaf ) {\n\t\t\t\t\t\tvar gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,\n\t\t\t\t\t\tend = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;\n\t\t\t\t\t\tfor(kk=sgr;kk<end;kk++) {\n\t\t\t\t\t\t\tif(!grdata[kk - offset]) { break; }\n\t\t\t\t\t\t\tvar to = grdata[kk - offset];\n\t\t\t\t\t\t\trows.push( constructRow (to, true) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(grp.groupSummaryPos[n.idx] !== 'header') {\n\t\t\t\t\t\t\tvar jj;\n\t\t\t\t\t\t\tif (gg !== undefined) {\n\t\t\t\t\t\t\t\tfor (jj = 0; jj < grp.groupField.length; jj++) {\n\t\t\t\t\t\t\t\t\tif (gg.dataIndex === grp.groupField[jj]) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoEnd = grp.groupField.length - jj;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (ik = 0; ik < toEnd; ik++) {\n\t\t\t\t\t\t\t\tif(!sumreverse[ik]) { continue; }\n\t\t\t\t\t\t\t\tarr = buildSummaryTd(i, ik, grp.groups, 0);\n\t\t\t\t\t\t\t\trows.push( constructRow (arr, false) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoEnd = jj;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n//============================================================================\t\t\t\n\t\t\tvar k;\n\t\t\tfor ( j=0, ien=cm.length ; j<ien ; j++ ) {\n\t\t\t\tif(cm[j].hidden || cm[j].name === 'cb' || cm[j].name === 'rn') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tobj = { text:  cm[j].label || cm[j].name, style: 'tableHeader' };\n\t\t\t\ttest.push( obj );\n\t\t\t\tdef[cm[j].name]  = cm[j].label || cm[j].name;\n\t\t\t\tmap[i] = j;\n\t\t\t\twidths.push(cm[j].width); \n\t\t\t\talign[cm[j].name] = cm[j].align || 'left';\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tvar gh;\n\t\t\tif(o.includeGroupHeader && $t.p.groupHeader && $t.p.groupHeader.length) {\n\t\t\t\tgh = $t.p.groupHeader;\n\t\t\t\tfor (i=0;i < gh.length; i++) {\n\t\t\t\t\tvar clone = [],\n\t\t\t\t\tghdata = gh[i].groupHeaders;\n\t\t\t\t\tfor(key in def ) {\n\t\t\t\t\t\tif(!def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tobj = {text:'', style: 'tableHeader'};\n\t\t\t\t\t\tfor(k=0;k<ghdata.length;k++) {\n\t\t\t\t\t\t\tif(ghdata[k].startColumnName === key) {\n\t\t\t\t\t\t\t\tobj = { \n\t\t\t\t\t\t\t\t\ttext : ghdata[k].titleText, \n\t\t\t\t\t\t\t\t\tcolSpan: ghdata[k].numberOfColumns,\n\t\t\t\t\t\t\t\t\tstyle: 'tableHeader'\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone.push(obj);\n\t\t\t\t\t\tj++;\n\t\t\t\t\t}\n\t\t\t\t\trows.push(clone);\n \t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif(o.includeLabels) {\n\t\t\t\trows.push( test );\n\t\t\t}\n\t\t\tif($t.p.grouping) {\n\t\t\t\tgroupToPdf(data);\n\t\t\t} else {\n\t\t\t\tvar row;\n\t\t\t\tfor ( i=0, ien=data.length ; i<ien ; i++ ) {\n\t\t\t\t\tk =0; \n\t\t\t\t\ttest=[];\n\t\t\t\t\trow = data[i];\n\t\t\t\t\tfor( key in def ) {\n\t\t\t\t\t\t//obj = row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t)\n\t\t\t\t\t\tif( def.hasOwnProperty( key )) {\n\t\t\t\t\t\t\tobj\t= {\n\t\t\t\t\t\t\t\ttext: row[key] == null ? '' : $.jgrid.formatCell( row[key] + '', map[k], data[i], cm[map[k]], $t),\n\t\t\t\t\t\t\t\talignment : align[key],\n\t\t\t\t\t\t\t\tstyle : 'tableBody'\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\t\t\ttest.push(obj);\n\t\t\t\t\t\t\tk++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\trows.push(test);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( o.includeFooter && $t.p.footerrow) {\n\t\t\t\tvar fdata = $($t).jqGrid('footerData', 'get');\n\t\t\t\ttest=[];\n\t\t\t\tfor( key in def) {\n\t\t\t\t\tif(def.hasOwnProperty(key) ) {\n\t\t\t\t\t\tobj  =  {\n\t\t\t\t\t\t\ttext : $.jgrid.stripHtml(fdata[key]),\n\t\t\t\t\t\t\tstyle : 'tableFooter',\n\t\t\t\t\t\t\talignment : align[key]\n\t\t\t\t\t\t};\n\t\t\t\t\t\ttest.push( obj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trows.push( test );\n\t\t\t}\n\n\t\t\tvar doc = {\n\t\t\t\tpageSize: o.pageSize,\n\t\t\t\tpageOrientation: o.orientation,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\tstyle : 'tableExample',\n\t\t\t\t\t\twidths : widths,\n\t\t\t\t\t\ttable: {\n\t\t\t\t\t\t\theaderRows: (gh!=null) ? 0 : 1,\n\t\t\t\t\t\t\tbody: rows\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tstyles: {\n\t\t\t\t\ttableHeader: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc',\n\t\t\t\t\t\talignment: 'center'\n\t\t\t\t\t},\n\t\t\t\t\ttableBody: {\n\t\t\t\t\t\tfontSize: 10\n\t\t\t\t\t},\n\t\t\t\t\ttableFooter: {\n\t\t\t\t\t\tbold: true,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: '#2e6e9e',\n\t\t\t\t\t\tfillColor: '#dfeffc'\n\t\t\t\t\t},\n\t\t\t\t\ttitle: {\n\t\t\t\t\t\talignment: 'center',\n\t\t\t\t\t\tfontSize: 15\n\t\t\t\t\t},\n\t\t\t\t\tdescription: {}\n\t\t\t\t},\n\t\t\t\tdefaultStyle: {\n\t\t\t\t\tfontSize: 10\n\t\t\t\t}\n\t\t\t};\n\t\t\tif ( o.description ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.description,\n\t\t\t\t\tstyle: 'description',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( o.title ) {\n\t\t\t\tdoc.content.unshift( {\n\t\t\t\t\ttext: o.title,\n\t\t\t\t\tstyle: 'title',\n\t\t\t\t\tmargin: [ 0, 0, 0, 12 ]\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif( o. customSettings ) {\n\t\t\t\to.customSettings.call($t, doc);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvar pdf = pdfMake.createPdf( doc );\n\t\t\t\tif ( o.download === 'open' ) {\n\t\t\t\t\tpdf.open();\n\t\t\t\t} else {\n\t\t\t\t\tpdf.getBuffer( function (buffer) {\n\t\t\t\t\t\tjqGridUtils.saveAs( buffer, o.fileName, {type: o.mimetype } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t});\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/Guriddo_jqGrid_JS_5.2.0/src/jquery.sortable.js",
    "content": "/*\n * \n * HTML5 Sortable jQuery Plugin\n * \n * Original code Copyright 2012 Ali Farhadi.\n *\n * This version is maintained by Tony Tomov <tony@trirand.com>\n * \n * Released under the MIT license.\n */\n/*jshint eqeqeq:false */\n/*global jQuery, define */\n(function( factory ) {\n\t\"use strict\";\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([\n\t\t\t\"jquery\"\n\t\t], factory );\n\t} else {\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} (function( $ ) {\n\"use strict\";\n//module begin\nvar dragging, placeholders = $();\n$.fn.html5sortable = function(options) {\n\tvar method = String(options);\n\toptions = $.extend({\n\t\tconnectWith: false\n\t}, options);\n\treturn this.each(function() {\n\t\tif (/^enable|disable|destroy$/.test(method)) {\n\t\t\tvar items = $(this).children($(this).data('items')).attr('draggable', method === 'enable');\n\t\t\tif (method === 'destroy') {\n\t\t\t\titems.add(this).removeData('connectWith items')\n\t\t\t\t\t.off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tvar isHandle, index, items = $(this).children(options.items);\n\t\tvar placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div')\n            + ' class=\"sortable-placeholder ' + options.placeholderClass + '\">').html('&nbsp;');\n        items.find(options.handle).mousedown(function() {\n\t\t\tisHandle = true;\n\t\t}).mouseup(function() {\n\t\t\tisHandle = false;\n\t\t});\n\t\t$(this).data('items', options.items);\n\t\tplaceholders = placeholders.add(placeholder);\n\t\tif (options.connectWith) {\n\t\t\t$(options.connectWith).add(this).data('connectWith', options.connectWith);\n\t\t}\n\t\titems.attr('draggable', 'true').on('dragstart.h5s', function(e) {\n\t\t\tif (options.handle && !isHandle) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tisHandle = false;\n\t\t\tvar dt = e.originalEvent.dataTransfer;\n\t\t\tdt.effectAllowed = 'move';\n\t\t\tdt.setData('Text', 'dummy');\n\t\t\tindex = (dragging = $(this)).addClass('sortable-dragging').index();\n\t\t}).on('dragend.h5s', function() {\n\t\t\tif (!dragging) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdragging.removeClass('sortable-dragging').show();\n\t\t\tplaceholders.detach();\n\t\t\tif (index !== dragging.index()) {\n\t\t\t\tdragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()});\n\t\t\t}\n\t\t\tdragging = null;\n\t\t}).not('a[href], img').on('selectstart.h5s', function() {\n\t\t\tthis.dragDrop && this.dragDrop();\n\t\t\treturn false;\n\t\t}).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) {\n\t\t\tif (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (e.type === 'drop') {\n\t\t\t\te.stopPropagation();\n\t\t\t\tplaceholders.filter(':visible').after(dragging);\n\t\t\t\tdragging.trigger('dragend.h5s');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.originalEvent.dataTransfer.dropEffect = 'move';\n\t\t\tif (items.is(this)) {\n\t\t\t\tif (options.forcePlaceholderSize) {\n\t\t\t\t\tplaceholder.height(dragging.outerHeight());\n\t\t\t\t}\n\t\t\t\tdragging.hide();\n\t\t\t\t$(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder);\n\t\t\t\tplaceholders.not(placeholder).detach();\n\t\t\t} else if (!placeholders.is(this) && !$(this).children(options.items).length) {\n\t\t\t\tplaceholders.detach();\n\t\t\t\t$(this).append(placeholder);\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\t});\n};\n//module end\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap/css/bootstrap.css",
    "content": "@charset \"UTF-8\";\n/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  font-family: sans-serif;\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block; }\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline; }\n\naudio:not([controls]) {\n  display: none;\n  height: 0; }\n\n[hidden],\ntemplate {\n  display: none; }\n\na {\n  background-color: transparent; }\n\na:active,\na:hover {\n  outline: 0; }\n\nabbr[title] {\n  border-bottom: 1px dotted; }\n\nb,\nstrong {\n  font-weight: bold; }\n\ndfn {\n  font-style: italic; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nmark {\n  background: #ff0;\n  color: #000; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsup {\n  top: -0.5em; }\n\nsub {\n  bottom: -0.25em; }\n\nimg {\n  border: 0; }\n\nsvg:not(:root) {\n  overflow: hidden; }\n\nfigure {\n  margin: 1em 40px; }\n\nhr {\n  box-sizing: content-box;\n  height: 0; }\n\npre {\n  overflow: auto; }\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  font: inherit;\n  margin: 0; }\n\nbutton {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer; }\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default; }\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0; }\n\ninput {\n  line-height: normal; }\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  box-sizing: content-box; }\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em; }\n\nlegend {\n  border: 0;\n  padding: 0; }\n\ntextarea {\n  overflow: auto; }\n\noptgroup {\n  font-weight: bold; }\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0; }\n\ntd,\nth {\n  padding: 0; }\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n  *,\n  *:before,\n  *:after {\n    background: transparent !important;\n    color: #000 !important;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\"; }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .navbar {\n    display: none; }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important; }\n  .label {\n    border: 1px solid #000; }\n  .table {\n    border-collapse: collapse !important; }\n    .table td,\n    .table th {\n      background-color: #fff !important; }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important; } }\n\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url(\"../fonts/bootstrap/glyphicons-halflings-regular.eot\");\n  src: url(\"../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\"); }\n\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\n.glyphicon-asterisk:before {\n  content: \"\\002a\"; }\n\n.glyphicon-plus:before {\n  content: \"\\002b\"; }\n\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"\\20ac\"; }\n\n.glyphicon-minus:before {\n  content: \"\\2212\"; }\n\n.glyphicon-cloud:before {\n  content: \"\\2601\"; }\n\n.glyphicon-envelope:before {\n  content: \"\\2709\"; }\n\n.glyphicon-pencil:before {\n  content: \"\\270f\"; }\n\n.glyphicon-glass:before {\n  content: \"\\e001\"; }\n\n.glyphicon-music:before {\n  content: \"\\e002\"; }\n\n.glyphicon-search:before {\n  content: \"\\e003\"; }\n\n.glyphicon-heart:before {\n  content: \"\\e005\"; }\n\n.glyphicon-star:before {\n  content: \"\\e006\"; }\n\n.glyphicon-star-empty:before {\n  content: \"\\e007\"; }\n\n.glyphicon-user:before {\n  content: \"\\e008\"; }\n\n.glyphicon-film:before {\n  content: \"\\e009\"; }\n\n.glyphicon-th-large:before {\n  content: \"\\e010\"; }\n\n.glyphicon-th:before {\n  content: \"\\e011\"; }\n\n.glyphicon-th-list:before {\n  content: \"\\e012\"; }\n\n.glyphicon-ok:before {\n  content: \"\\e013\"; }\n\n.glyphicon-remove:before {\n  content: \"\\e014\"; }\n\n.glyphicon-zoom-in:before {\n  content: \"\\e015\"; }\n\n.glyphicon-zoom-out:before {\n  content: \"\\e016\"; }\n\n.glyphicon-off:before {\n  content: \"\\e017\"; }\n\n.glyphicon-signal:before {\n  content: \"\\e018\"; }\n\n.glyphicon-cog:before {\n  content: \"\\e019\"; }\n\n.glyphicon-trash:before {\n  content: \"\\e020\"; }\n\n.glyphicon-home:before {\n  content: \"\\e021\"; }\n\n.glyphicon-file:before {\n  content: \"\\e022\"; }\n\n.glyphicon-time:before {\n  content: \"\\e023\"; }\n\n.glyphicon-road:before {\n  content: \"\\e024\"; }\n\n.glyphicon-download-alt:before {\n  content: \"\\e025\"; }\n\n.glyphicon-download:before {\n  content: \"\\e026\"; }\n\n.glyphicon-upload:before {\n  content: \"\\e027\"; }\n\n.glyphicon-inbox:before {\n  content: \"\\e028\"; }\n\n.glyphicon-play-circle:before {\n  content: \"\\e029\"; }\n\n.glyphicon-repeat:before {\n  content: \"\\e030\"; }\n\n.glyphicon-refresh:before {\n  content: \"\\e031\"; }\n\n.glyphicon-list-alt:before {\n  content: \"\\e032\"; }\n\n.glyphicon-lock:before {\n  content: \"\\e033\"; }\n\n.glyphicon-flag:before {\n  content: \"\\e034\"; }\n\n.glyphicon-headphones:before {\n  content: \"\\e035\"; }\n\n.glyphicon-volume-off:before {\n  content: \"\\e036\"; }\n\n.glyphicon-volume-down:before {\n  content: \"\\e037\"; }\n\n.glyphicon-volume-up:before {\n  content: \"\\e038\"; }\n\n.glyphicon-qrcode:before {\n  content: \"\\e039\"; }\n\n.glyphicon-barcode:before {\n  content: \"\\e040\"; }\n\n.glyphicon-tag:before {\n  content: \"\\e041\"; }\n\n.glyphicon-tags:before {\n  content: \"\\e042\"; }\n\n.glyphicon-book:before {\n  content: \"\\e043\"; }\n\n.glyphicon-bookmark:before {\n  content: \"\\e044\"; }\n\n.glyphicon-print:before {\n  content: \"\\e045\"; }\n\n.glyphicon-camera:before {\n  content: \"\\e046\"; }\n\n.glyphicon-font:before {\n  content: \"\\e047\"; }\n\n.glyphicon-bold:before {\n  content: \"\\e048\"; }\n\n.glyphicon-italic:before {\n  content: \"\\e049\"; }\n\n.glyphicon-text-height:before {\n  content: \"\\e050\"; }\n\n.glyphicon-text-width:before {\n  content: \"\\e051\"; }\n\n.glyphicon-align-left:before {\n  content: \"\\e052\"; }\n\n.glyphicon-align-center:before {\n  content: \"\\e053\"; }\n\n.glyphicon-align-right:before {\n  content: \"\\e054\"; }\n\n.glyphicon-align-justify:before {\n  content: \"\\e055\"; }\n\n.glyphicon-list:before {\n  content: \"\\e056\"; }\n\n.glyphicon-indent-left:before {\n  content: \"\\e057\"; }\n\n.glyphicon-indent-right:before {\n  content: \"\\e058\"; }\n\n.glyphicon-facetime-video:before {\n  content: \"\\e059\"; }\n\n.glyphicon-picture:before {\n  content: \"\\e060\"; }\n\n.glyphicon-map-marker:before {\n  content: \"\\e062\"; }\n\n.glyphicon-adjust:before {\n  content: \"\\e063\"; }\n\n.glyphicon-tint:before {\n  content: \"\\e064\"; }\n\n.glyphicon-edit:before {\n  content: \"\\e065\"; }\n\n.glyphicon-share:before {\n  content: \"\\e066\"; }\n\n.glyphicon-check:before {\n  content: \"\\e067\"; }\n\n.glyphicon-move:before {\n  content: \"\\e068\"; }\n\n.glyphicon-step-backward:before {\n  content: \"\\e069\"; }\n\n.glyphicon-fast-backward:before {\n  content: \"\\e070\"; }\n\n.glyphicon-backward:before {\n  content: \"\\e071\"; }\n\n.glyphicon-play:before {\n  content: \"\\e072\"; }\n\n.glyphicon-pause:before {\n  content: \"\\e073\"; }\n\n.glyphicon-stop:before {\n  content: \"\\e074\"; }\n\n.glyphicon-forward:before {\n  content: \"\\e075\"; }\n\n.glyphicon-fast-forward:before {\n  content: \"\\e076\"; }\n\n.glyphicon-step-forward:before {\n  content: \"\\e077\"; }\n\n.glyphicon-eject:before {\n  content: \"\\e078\"; }\n\n.glyphicon-chevron-left:before {\n  content: \"\\e079\"; }\n\n.glyphicon-chevron-right:before {\n  content: \"\\e080\"; }\n\n.glyphicon-plus-sign:before {\n  content: \"\\e081\"; }\n\n.glyphicon-minus-sign:before {\n  content: \"\\e082\"; }\n\n.glyphicon-remove-sign:before {\n  content: \"\\e083\"; }\n\n.glyphicon-ok-sign:before {\n  content: \"\\e084\"; }\n\n.glyphicon-question-sign:before {\n  content: \"\\e085\"; }\n\n.glyphicon-info-sign:before {\n  content: \"\\e086\"; }\n\n.glyphicon-screenshot:before {\n  content: \"\\e087\"; }\n\n.glyphicon-remove-circle:before {\n  content: \"\\e088\"; }\n\n.glyphicon-ok-circle:before {\n  content: \"\\e089\"; }\n\n.glyphicon-ban-circle:before {\n  content: \"\\e090\"; }\n\n.glyphicon-arrow-left:before {\n  content: \"\\e091\"; }\n\n.glyphicon-arrow-right:before {\n  content: \"\\e092\"; }\n\n.glyphicon-arrow-up:before {\n  content: \"\\e093\"; }\n\n.glyphicon-arrow-down:before {\n  content: \"\\e094\"; }\n\n.glyphicon-share-alt:before {\n  content: \"\\e095\"; }\n\n.glyphicon-resize-full:before {\n  content: \"\\e096\"; }\n\n.glyphicon-resize-small:before {\n  content: \"\\e097\"; }\n\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\"; }\n\n.glyphicon-gift:before {\n  content: \"\\e102\"; }\n\n.glyphicon-leaf:before {\n  content: \"\\e103\"; }\n\n.glyphicon-fire:before {\n  content: \"\\e104\"; }\n\n.glyphicon-eye-open:before {\n  content: \"\\e105\"; }\n\n.glyphicon-eye-close:before {\n  content: \"\\e106\"; }\n\n.glyphicon-warning-sign:before {\n  content: \"\\e107\"; }\n\n.glyphicon-plane:before {\n  content: \"\\e108\"; }\n\n.glyphicon-calendar:before {\n  content: \"\\e109\"; }\n\n.glyphicon-random:before {\n  content: \"\\e110\"; }\n\n.glyphicon-comment:before {\n  content: \"\\e111\"; }\n\n.glyphicon-magnet:before {\n  content: \"\\e112\"; }\n\n.glyphicon-chevron-up:before {\n  content: \"\\e113\"; }\n\n.glyphicon-chevron-down:before {\n  content: \"\\e114\"; }\n\n.glyphicon-retweet:before {\n  content: \"\\e115\"; }\n\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\"; }\n\n.glyphicon-folder-close:before {\n  content: \"\\e117\"; }\n\n.glyphicon-folder-open:before {\n  content: \"\\e118\"; }\n\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\"; }\n\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\"; }\n\n.glyphicon-hdd:before {\n  content: \"\\e121\"; }\n\n.glyphicon-bullhorn:before {\n  content: \"\\e122\"; }\n\n.glyphicon-bell:before {\n  content: \"\\e123\"; }\n\n.glyphicon-certificate:before {\n  content: \"\\e124\"; }\n\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\"; }\n\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\"; }\n\n.glyphicon-hand-right:before {\n  content: \"\\e127\"; }\n\n.glyphicon-hand-left:before {\n  content: \"\\e128\"; }\n\n.glyphicon-hand-up:before {\n  content: \"\\e129\"; }\n\n.glyphicon-hand-down:before {\n  content: \"\\e130\"; }\n\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\"; }\n\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\"; }\n\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\"; }\n\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\"; }\n\n.glyphicon-globe:before {\n  content: \"\\e135\"; }\n\n.glyphicon-wrench:before {\n  content: \"\\e136\"; }\n\n.glyphicon-tasks:before {\n  content: \"\\e137\"; }\n\n.glyphicon-filter:before {\n  content: \"\\e138\"; }\n\n.glyphicon-briefcase:before {\n  content: \"\\e139\"; }\n\n.glyphicon-fullscreen:before {\n  content: \"\\e140\"; }\n\n.glyphicon-dashboard:before {\n  content: \"\\e141\"; }\n\n.glyphicon-paperclip:before {\n  content: \"\\e142\"; }\n\n.glyphicon-heart-empty:before {\n  content: \"\\e143\"; }\n\n.glyphicon-link:before {\n  content: \"\\e144\"; }\n\n.glyphicon-phone:before {\n  content: \"\\e145\"; }\n\n.glyphicon-pushpin:before {\n  content: \"\\e146\"; }\n\n.glyphicon-usd:before {\n  content: \"\\e148\"; }\n\n.glyphicon-gbp:before {\n  content: \"\\e149\"; }\n\n.glyphicon-sort:before {\n  content: \"\\e150\"; }\n\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\"; }\n\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\"; }\n\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\"; }\n\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\"; }\n\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\"; }\n\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\"; }\n\n.glyphicon-unchecked:before {\n  content: \"\\e157\"; }\n\n.glyphicon-expand:before {\n  content: \"\\e158\"; }\n\n.glyphicon-collapse-down:before {\n  content: \"\\e159\"; }\n\n.glyphicon-collapse-up:before {\n  content: \"\\e160\"; }\n\n.glyphicon-log-in:before {\n  content: \"\\e161\"; }\n\n.glyphicon-flash:before {\n  content: \"\\e162\"; }\n\n.glyphicon-log-out:before {\n  content: \"\\e163\"; }\n\n.glyphicon-new-window:before {\n  content: \"\\e164\"; }\n\n.glyphicon-record:before {\n  content: \"\\e165\"; }\n\n.glyphicon-save:before {\n  content: \"\\e166\"; }\n\n.glyphicon-open:before {\n  content: \"\\e167\"; }\n\n.glyphicon-saved:before {\n  content: \"\\e168\"; }\n\n.glyphicon-import:before {\n  content: \"\\e169\"; }\n\n.glyphicon-export:before {\n  content: \"\\e170\"; }\n\n.glyphicon-send:before {\n  content: \"\\e171\"; }\n\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\"; }\n\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\"; }\n\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\"; }\n\n.glyphicon-floppy-save:before {\n  content: \"\\e175\"; }\n\n.glyphicon-floppy-open:before {\n  content: \"\\e176\"; }\n\n.glyphicon-credit-card:before {\n  content: \"\\e177\"; }\n\n.glyphicon-transfer:before {\n  content: \"\\e178\"; }\n\n.glyphicon-cutlery:before {\n  content: \"\\e179\"; }\n\n.glyphicon-header:before {\n  content: \"\\e180\"; }\n\n.glyphicon-compressed:before {\n  content: \"\\e181\"; }\n\n.glyphicon-earphone:before {\n  content: \"\\e182\"; }\n\n.glyphicon-phone-alt:before {\n  content: \"\\e183\"; }\n\n.glyphicon-tower:before {\n  content: \"\\e184\"; }\n\n.glyphicon-stats:before {\n  content: \"\\e185\"; }\n\n.glyphicon-sd-video:before {\n  content: \"\\e186\"; }\n\n.glyphicon-hd-video:before {\n  content: \"\\e187\"; }\n\n.glyphicon-subtitles:before {\n  content: \"\\e188\"; }\n\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\"; }\n\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\"; }\n\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\"; }\n\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\"; }\n\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\"; }\n\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\"; }\n\n.glyphicon-registration-mark:before {\n  content: \"\\e195\"; }\n\n.glyphicon-cloud-download:before {\n  content: \"\\e197\"; }\n\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\"; }\n\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\"; }\n\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\"; }\n\n.glyphicon-cd:before {\n  content: \"\\e201\"; }\n\n.glyphicon-save-file:before {\n  content: \"\\e202\"; }\n\n.glyphicon-open-file:before {\n  content: \"\\e203\"; }\n\n.glyphicon-level-up:before {\n  content: \"\\e204\"; }\n\n.glyphicon-copy:before {\n  content: \"\\e205\"; }\n\n.glyphicon-paste:before {\n  content: \"\\e206\"; }\n\n.glyphicon-alert:before {\n  content: \"\\e209\"; }\n\n.glyphicon-equalizer:before {\n  content: \"\\e210\"; }\n\n.glyphicon-king:before {\n  content: \"\\e211\"; }\n\n.glyphicon-queen:before {\n  content: \"\\e212\"; }\n\n.glyphicon-pawn:before {\n  content: \"\\e213\"; }\n\n.glyphicon-bishop:before {\n  content: \"\\e214\"; }\n\n.glyphicon-knight:before {\n  content: \"\\e215\"; }\n\n.glyphicon-baby-formula:before {\n  content: \"\\e216\"; }\n\n.glyphicon-tent:before {\n  content: \"\\26fa\"; }\n\n.glyphicon-blackboard:before {\n  content: \"\\e218\"; }\n\n.glyphicon-bed:before {\n  content: \"\\e219\"; }\n\n.glyphicon-apple:before {\n  content: \"\\f8ff\"; }\n\n.glyphicon-erase:before {\n  content: \"\\e221\"; }\n\n.glyphicon-hourglass:before {\n  content: \"\\231b\"; }\n\n.glyphicon-lamp:before {\n  content: \"\\e223\"; }\n\n.glyphicon-duplicate:before {\n  content: \"\\e224\"; }\n\n.glyphicon-piggy-bank:before {\n  content: \"\\e225\"; }\n\n.glyphicon-scissors:before {\n  content: \"\\e226\"; }\n\n.glyphicon-bitcoin:before {\n  content: \"\\e227\"; }\n\n.glyphicon-btc:before {\n  content: \"\\e227\"; }\n\n.glyphicon-xbt:before {\n  content: \"\\e227\"; }\n\n.glyphicon-yen:before {\n  content: \"\\00a5\"; }\n\n.glyphicon-jpy:before {\n  content: \"\\00a5\"; }\n\n.glyphicon-ruble:before {\n  content: \"\\20bd\"; }\n\n.glyphicon-rub:before {\n  content: \"\\20bd\"; }\n\n.glyphicon-scale:before {\n  content: \"\\e230\"; }\n\n.glyphicon-ice-lolly:before {\n  content: \"\\e231\"; }\n\n.glyphicon-ice-lolly-tasted:before {\n  content: \"\\e232\"; }\n\n.glyphicon-education:before {\n  content: \"\\e233\"; }\n\n.glyphicon-option-horizontal:before {\n  content: \"\\e234\"; }\n\n.glyphicon-option-vertical:before {\n  content: \"\\e235\"; }\n\n.glyphicon-menu-hamburger:before {\n  content: \"\\e236\"; }\n\n.glyphicon-modal-window:before {\n  content: \"\\e237\"; }\n\n.glyphicon-oil:before {\n  content: \"\\e238\"; }\n\n.glyphicon-grain:before {\n  content: \"\\e239\"; }\n\n.glyphicon-sunglasses:before {\n  content: \"\\e240\"; }\n\n.glyphicon-text-size:before {\n  content: \"\\e241\"; }\n\n.glyphicon-text-color:before {\n  content: \"\\e242\"; }\n\n.glyphicon-text-background:before {\n  content: \"\\e243\"; }\n\n.glyphicon-object-align-top:before {\n  content: \"\\e244\"; }\n\n.glyphicon-object-align-bottom:before {\n  content: \"\\e245\"; }\n\n.glyphicon-object-align-horizontal:before {\n  content: \"\\e246\"; }\n\n.glyphicon-object-align-left:before {\n  content: \"\\e247\"; }\n\n.glyphicon-object-align-vertical:before {\n  content: \"\\e248\"; }\n\n.glyphicon-object-align-right:before {\n  content: \"\\e249\"; }\n\n.glyphicon-triangle-right:before {\n  content: \"\\e250\"; }\n\n.glyphicon-triangle-left:before {\n  content: \"\\e251\"; }\n\n.glyphicon-triangle-bottom:before {\n  content: \"\\e252\"; }\n\n.glyphicon-triangle-top:before {\n  content: \"\\e253\"; }\n\n.glyphicon-console:before {\n  content: \"\\e254\"; }\n\n.glyphicon-superscript:before {\n  content: \"\\e255\"; }\n\n.glyphicon-subscript:before {\n  content: \"\\e256\"; }\n\n.glyphicon-menu-left:before {\n  content: \"\\e257\"; }\n\n.glyphicon-menu-right:before {\n  content: \"\\e258\"; }\n\n.glyphicon-menu-down:before {\n  content: \"\\e259\"; }\n\n.glyphicon-menu-up:before {\n  content: \"\\e260\"; }\n\n* {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box; }\n\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box; }\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: transparent; }\n\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #333333;\n  background-color: #fff; }\n\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit; }\n\na {\n  color: #337ab7;\n  text-decoration: none; }\n  a:hover, a:focus {\n    color: #23527c;\n    text-decoration: underline; }\n  a:focus {\n    outline: 5px auto -webkit-focus-ring-color;\n    outline-offset: -2px; }\n\nfigure {\n  margin: 0; }\n\nimg {\n  vertical-align: middle; }\n\n.img-responsive {\n  display: block;\n  max-width: 100%;\n  height: auto; }\n\n.img-rounded {\n  border-radius: 6px; }\n\n.img-thumbnail {\n  padding: 4px;\n  line-height: 1.42857;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: all 0.2s ease-in-out;\n  -o-transition: all 0.2s ease-in-out;\n  transition: all 0.2s ease-in-out;\n  display: inline-block;\n  max-width: 100%;\n  height: auto; }\n\n.img-circle {\n  border-radius: 50%; }\n\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eeeeee; }\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto; }\n\n[role=\"button\"] {\n  cursor: pointer; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit; }\n  h1 small,\n  h1 .small, h2 small,\n  h2 .small, h3 small,\n  h3 .small, h4 small,\n  h4 .small, h5 small,\n  h5 .small, h6 small,\n  h6 .small,\n  .h1 small,\n  .h1 .small, .h2 small,\n  .h2 .small, .h3 small,\n  .h3 .small, .h4 small,\n  .h4 .small, .h5 small,\n  .h5 .small, .h6 small,\n  .h6 .small {\n    font-weight: normal;\n    line-height: 1;\n    color: #777777; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: 20px;\n  margin-bottom: 10px; }\n  h1 small,\n  h1 .small, .h1 small,\n  .h1 .small,\n  h2 small,\n  h2 .small, .h2 small,\n  .h2 .small,\n  h3 small,\n  h3 .small, .h3 small,\n  .h3 .small {\n    font-size: 65%; }\n\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: 10px;\n  margin-bottom: 10px; }\n  h4 small,\n  h4 .small, .h4 small,\n  .h4 .small,\n  h5 small,\n  h5 .small, .h5 small,\n  .h5 .small,\n  h6 small,\n  h6 .small, .h6 small,\n  .h6 .small {\n    font-size: 75%; }\n\nh1, .h1 {\n  font-size: 36px; }\n\nh2, .h2 {\n  font-size: 30px; }\n\nh3, .h3 {\n  font-size: 24px; }\n\nh4, .h4 {\n  font-size: 18px; }\n\nh5, .h5 {\n  font-size: 14px; }\n\nh6, .h6 {\n  font-size: 12px; }\n\np {\n  margin: 0 0 10px; }\n\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4; }\n  @media (min-width: 768px) {\n    .lead {\n      font-size: 21px; } }\n\nsmall,\n.small {\n  font-size: 85%; }\n\nmark,\n.mark {\n  background-color: #f9e491;\n  padding: .2em; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n.text-nowrap {\n  white-space: nowrap; }\n\n.text-lowercase {\n  text-transform: lowercase; }\n\n.text-uppercase, .initialism {\n  text-transform: uppercase; }\n\n.text-capitalize {\n  text-transform: capitalize; }\n\n.text-muted {\n  color: #777777; }\n\n.text-primary {\n  color: #337ab7; }\n\na.text-primary:hover,\na.text-primary:focus {\n  color: #286090; }\n\n.text-success {\n  color: #27a4b0; }\n\na.text-success:hover,\na.text-success:focus {\n  color: #1d7d86; }\n\n.text-info {\n  color: #327ad5; }\n\na.text-info:hover,\na.text-info:focus {\n  color: #2462b0; }\n\n.text-warning {\n  color: #c29d0b; }\n\na.text-warning:hover,\na.text-warning:focus {\n  color: #927608; }\n\n.text-danger {\n  color: #e73d4a; }\n\na.text-danger:hover,\na.text-danger:focus {\n  color: #d71b29; }\n\n.bg-primary {\n  color: #fff; }\n\n.bg-primary {\n  background-color: #337ab7; }\n\na.bg-primary:hover,\na.bg-primary:focus {\n  background-color: #286090; }\n\n.bg-success {\n  background-color: #abe7ed; }\n\na.bg-success:hover,\na.bg-success:focus {\n  background-color: #81dbe3; }\n\n.bg-info {\n  background-color: #e0ebf9; }\n\na.bg-info:hover,\na.bg-info:focus {\n  background-color: #b5cff0; }\n\n.bg-warning {\n  background-color: #f9e491; }\n\na.bg-warning:hover,\na.bg-warning:focus {\n  background-color: #f6d861; }\n\n.bg-danger {\n  background-color: #fbe1e3; }\n\na.bg-danger:hover,\na.bg-danger:focus {\n  background-color: #f6b3b8; }\n\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eeeeee; }\n\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px; }\n  ul ul,\n  ul ol,\n  ol ul,\n  ol ol {\n    margin-bottom: 0; }\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none; }\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n  margin-left: -5px; }\n  .list-inline > li {\n    display: inline-block;\n    padding-left: 5px;\n    padding-right: 5px; }\n\ndl {\n  margin-top: 0;\n  margin-bottom: 20px; }\n\ndt,\ndd {\n  line-height: 1.42857; }\n\ndt {\n  font-weight: bold; }\n\ndd {\n  margin-left: 0; }\n\n.dl-horizontal dd:before, .dl-horizontal dd:after {\n  content: \" \";\n  display: table; }\n\n.dl-horizontal dd:after {\n  clear: both; }\n\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    clear: left;\n    text-align: right;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap; }\n  .dl-horizontal dd {\n    margin-left: 180px; } }\n\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777777; }\n\n.initialism {\n  font-size: 90%; }\n\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eeeeee; }\n  blockquote p:last-child,\n  blockquote ul:last-child,\n  blockquote ol:last-child {\n    margin-bottom: 0; }\n  blockquote footer,\n  blockquote small,\n  blockquote .small {\n    display: block;\n    font-size: 80%;\n    line-height: 1.42857;\n    color: #777777; }\n    blockquote footer:before,\n    blockquote small:before,\n    blockquote .small:before {\n      content: '\\2014 \\00A0'; }\n\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n  text-align: right; }\n  .blockquote-reverse footer:before,\n  .blockquote-reverse small:before,\n  .blockquote-reverse .small:before,\n  blockquote.pull-right footer:before,\n  blockquote.pull-right small:before,\n  blockquote.pull-right .small:before {\n    content: ''; }\n  .blockquote-reverse footer:after,\n  .blockquote-reverse small:after,\n  .blockquote-reverse .small:after,\n  blockquote.pull-right footer:after,\n  blockquote.pull-right small:after,\n  blockquote.pull-right .small:after {\n    content: '\\00A0 \\2014'; }\n\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857; }\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace; }\n\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 4px; }\n\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #fff;\n  background-color: #333;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }\n  kbd kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: bold;\n    box-shadow: none; }\n\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.42857;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: #333333;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border-radius: 4px; }\n  pre code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0; }\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll; }\n\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px; }\n  .container:before, .container:after {\n    content: \" \";\n    display: table; }\n  .container:after {\n    clear: both; }\n  @media (min-width: 768px) {\n    .container {\n      width: 750px; } }\n  @media (min-width: 992px) {\n    .container {\n      width: 970px; } }\n  @media (min-width: 1200px) {\n    .container {\n      width: 1170px; } }\n\n.container-fluid {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px; }\n  .container-fluid:before, .container-fluid:after {\n    content: \" \";\n    display: table; }\n  .container-fluid:after {\n    clear: both; }\n\n.row {\n  margin-left: -15px;\n  margin-right: -15px; }\n  .row:before, .row:after {\n    content: \" \";\n    display: table; }\n  .row:after {\n    clear: both; }\n\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-left: 15px;\n  padding-right: 15px; }\n\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n  float: left; }\n\n.col-xs-1 {\n  width: 8.33333%; }\n\n.col-xs-2 {\n  width: 16.66667%; }\n\n.col-xs-3 {\n  width: 25%; }\n\n.col-xs-4 {\n  width: 33.33333%; }\n\n.col-xs-5 {\n  width: 41.66667%; }\n\n.col-xs-6 {\n  width: 50%; }\n\n.col-xs-7 {\n  width: 58.33333%; }\n\n.col-xs-8 {\n  width: 66.66667%; }\n\n.col-xs-9 {\n  width: 75%; }\n\n.col-xs-10 {\n  width: 83.33333%; }\n\n.col-xs-11 {\n  width: 91.66667%; }\n\n.col-xs-12 {\n  width: 100%; }\n\n.col-xs-pull-0 {\n  right: auto; }\n\n.col-xs-pull-1 {\n  right: 8.33333%; }\n\n.col-xs-pull-2 {\n  right: 16.66667%; }\n\n.col-xs-pull-3 {\n  right: 25%; }\n\n.col-xs-pull-4 {\n  right: 33.33333%; }\n\n.col-xs-pull-5 {\n  right: 41.66667%; }\n\n.col-xs-pull-6 {\n  right: 50%; }\n\n.col-xs-pull-7 {\n  right: 58.33333%; }\n\n.col-xs-pull-8 {\n  right: 66.66667%; }\n\n.col-xs-pull-9 {\n  right: 75%; }\n\n.col-xs-pull-10 {\n  right: 83.33333%; }\n\n.col-xs-pull-11 {\n  right: 91.66667%; }\n\n.col-xs-pull-12 {\n  right: 100%; }\n\n.col-xs-push-0 {\n  left: auto; }\n\n.col-xs-push-1 {\n  left: 8.33333%; }\n\n.col-xs-push-2 {\n  left: 16.66667%; }\n\n.col-xs-push-3 {\n  left: 25%; }\n\n.col-xs-push-4 {\n  left: 33.33333%; }\n\n.col-xs-push-5 {\n  left: 41.66667%; }\n\n.col-xs-push-6 {\n  left: 50%; }\n\n.col-xs-push-7 {\n  left: 58.33333%; }\n\n.col-xs-push-8 {\n  left: 66.66667%; }\n\n.col-xs-push-9 {\n  left: 75%; }\n\n.col-xs-push-10 {\n  left: 83.33333%; }\n\n.col-xs-push-11 {\n  left: 91.66667%; }\n\n.col-xs-push-12 {\n  left: 100%; }\n\n.col-xs-offset-0 {\n  margin-left: 0%; }\n\n.col-xs-offset-1 {\n  margin-left: 8.33333%; }\n\n.col-xs-offset-2 {\n  margin-left: 16.66667%; }\n\n.col-xs-offset-3 {\n  margin-left: 25%; }\n\n.col-xs-offset-4 {\n  margin-left: 33.33333%; }\n\n.col-xs-offset-5 {\n  margin-left: 41.66667%; }\n\n.col-xs-offset-6 {\n  margin-left: 50%; }\n\n.col-xs-offset-7 {\n  margin-left: 58.33333%; }\n\n.col-xs-offset-8 {\n  margin-left: 66.66667%; }\n\n.col-xs-offset-9 {\n  margin-left: 75%; }\n\n.col-xs-offset-10 {\n  margin-left: 83.33333%; }\n\n.col-xs-offset-11 {\n  margin-left: 91.66667%; }\n\n.col-xs-offset-12 {\n  margin-left: 100%; }\n\n@media (min-width: 768px) {\n  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n    float: left; }\n  .col-sm-1 {\n    width: 8.33333%; }\n  .col-sm-2 {\n    width: 16.66667%; }\n  .col-sm-3 {\n    width: 25%; }\n  .col-sm-4 {\n    width: 33.33333%; }\n  .col-sm-5 {\n    width: 41.66667%; }\n  .col-sm-6 {\n    width: 50%; }\n  .col-sm-7 {\n    width: 58.33333%; }\n  .col-sm-8 {\n    width: 66.66667%; }\n  .col-sm-9 {\n    width: 75%; }\n  .col-sm-10 {\n    width: 83.33333%; }\n  .col-sm-11 {\n    width: 91.66667%; }\n  .col-sm-12 {\n    width: 100%; }\n  .col-sm-pull-0 {\n    right: auto; }\n  .col-sm-pull-1 {\n    right: 8.33333%; }\n  .col-sm-pull-2 {\n    right: 16.66667%; }\n  .col-sm-pull-3 {\n    right: 25%; }\n  .col-sm-pull-4 {\n    right: 33.33333%; }\n  .col-sm-pull-5 {\n    right: 41.66667%; }\n  .col-sm-pull-6 {\n    right: 50%; }\n  .col-sm-pull-7 {\n    right: 58.33333%; }\n  .col-sm-pull-8 {\n    right: 66.66667%; }\n  .col-sm-pull-9 {\n    right: 75%; }\n  .col-sm-pull-10 {\n    right: 83.33333%; }\n  .col-sm-pull-11 {\n    right: 91.66667%; }\n  .col-sm-pull-12 {\n    right: 100%; }\n  .col-sm-push-0 {\n    left: auto; }\n  .col-sm-push-1 {\n    left: 8.33333%; }\n  .col-sm-push-2 {\n    left: 16.66667%; }\n  .col-sm-push-3 {\n    left: 25%; }\n  .col-sm-push-4 {\n    left: 33.33333%; }\n  .col-sm-push-5 {\n    left: 41.66667%; }\n  .col-sm-push-6 {\n    left: 50%; }\n  .col-sm-push-7 {\n    left: 58.33333%; }\n  .col-sm-push-8 {\n    left: 66.66667%; }\n  .col-sm-push-9 {\n    left: 75%; }\n  .col-sm-push-10 {\n    left: 83.33333%; }\n  .col-sm-push-11 {\n    left: 91.66667%; }\n  .col-sm-push-12 {\n    left: 100%; }\n  .col-sm-offset-0 {\n    margin-left: 0%; }\n  .col-sm-offset-1 {\n    margin-left: 8.33333%; }\n  .col-sm-offset-2 {\n    margin-left: 16.66667%; }\n  .col-sm-offset-3 {\n    margin-left: 25%; }\n  .col-sm-offset-4 {\n    margin-left: 33.33333%; }\n  .col-sm-offset-5 {\n    margin-left: 41.66667%; }\n  .col-sm-offset-6 {\n    margin-left: 50%; }\n  .col-sm-offset-7 {\n    margin-left: 58.33333%; }\n  .col-sm-offset-8 {\n    margin-left: 66.66667%; }\n  .col-sm-offset-9 {\n    margin-left: 75%; }\n  .col-sm-offset-10 {\n    margin-left: 83.33333%; }\n  .col-sm-offset-11 {\n    margin-left: 91.66667%; }\n  .col-sm-offset-12 {\n    margin-left: 100%; } }\n\n@media (min-width: 992px) {\n  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n    float: left; }\n  .col-md-1 {\n    width: 8.33333%; }\n  .col-md-2 {\n    width: 16.66667%; }\n  .col-md-3 {\n    width: 25%; }\n  .col-md-4 {\n    width: 33.33333%; }\n  .col-md-5 {\n    width: 41.66667%; }\n  .col-md-6 {\n    width: 50%; }\n  .col-md-7 {\n    width: 58.33333%; }\n  .col-md-8 {\n    width: 66.66667%; }\n  .col-md-9 {\n    width: 75%; }\n  .col-md-10 {\n    width: 83.33333%; }\n  .col-md-11 {\n    width: 91.66667%; }\n  .col-md-12 {\n    width: 100%; }\n  .col-md-pull-0 {\n    right: auto; }\n  .col-md-pull-1 {\n    right: 8.33333%; }\n  .col-md-pull-2 {\n    right: 16.66667%; }\n  .col-md-pull-3 {\n    right: 25%; }\n  .col-md-pull-4 {\n    right: 33.33333%; }\n  .col-md-pull-5 {\n    right: 41.66667%; }\n  .col-md-pull-6 {\n    right: 50%; }\n  .col-md-pull-7 {\n    right: 58.33333%; }\n  .col-md-pull-8 {\n    right: 66.66667%; }\n  .col-md-pull-9 {\n    right: 75%; }\n  .col-md-pull-10 {\n    right: 83.33333%; }\n  .col-md-pull-11 {\n    right: 91.66667%; }\n  .col-md-pull-12 {\n    right: 100%; }\n  .col-md-push-0 {\n    left: auto; }\n  .col-md-push-1 {\n    left: 8.33333%; }\n  .col-md-push-2 {\n    left: 16.66667%; }\n  .col-md-push-3 {\n    left: 25%; }\n  .col-md-push-4 {\n    left: 33.33333%; }\n  .col-md-push-5 {\n    left: 41.66667%; }\n  .col-md-push-6 {\n    left: 50%; }\n  .col-md-push-7 {\n    left: 58.33333%; }\n  .col-md-push-8 {\n    left: 66.66667%; }\n  .col-md-push-9 {\n    left: 75%; }\n  .col-md-push-10 {\n    left: 83.33333%; }\n  .col-md-push-11 {\n    left: 91.66667%; }\n  .col-md-push-12 {\n    left: 100%; }\n  .col-md-offset-0 {\n    margin-left: 0%; }\n  .col-md-offset-1 {\n    margin-left: 8.33333%; }\n  .col-md-offset-2 {\n    margin-left: 16.66667%; }\n  .col-md-offset-3 {\n    margin-left: 25%; }\n  .col-md-offset-4 {\n    margin-left: 33.33333%; }\n  .col-md-offset-5 {\n    margin-left: 41.66667%; }\n  .col-md-offset-6 {\n    margin-left: 50%; }\n  .col-md-offset-7 {\n    margin-left: 58.33333%; }\n  .col-md-offset-8 {\n    margin-left: 66.66667%; }\n  .col-md-offset-9 {\n    margin-left: 75%; }\n  .col-md-offset-10 {\n    margin-left: 83.33333%; }\n  .col-md-offset-11 {\n    margin-left: 91.66667%; }\n  .col-md-offset-12 {\n    margin-left: 100%; } }\n\n@media (min-width: 1200px) {\n  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n    float: left; }\n  .col-lg-1 {\n    width: 8.33333%; }\n  .col-lg-2 {\n    width: 16.66667%; }\n  .col-lg-3 {\n    width: 25%; }\n  .col-lg-4 {\n    width: 33.33333%; }\n  .col-lg-5 {\n    width: 41.66667%; }\n  .col-lg-6 {\n    width: 50%; }\n  .col-lg-7 {\n    width: 58.33333%; }\n  .col-lg-8 {\n    width: 66.66667%; }\n  .col-lg-9 {\n    width: 75%; }\n  .col-lg-10 {\n    width: 83.33333%; }\n  .col-lg-11 {\n    width: 91.66667%; }\n  .col-lg-12 {\n    width: 100%; }\n  .col-lg-pull-0 {\n    right: auto; }\n  .col-lg-pull-1 {\n    right: 8.33333%; }\n  .col-lg-pull-2 {\n    right: 16.66667%; }\n  .col-lg-pull-3 {\n    right: 25%; }\n  .col-lg-pull-4 {\n    right: 33.33333%; }\n  .col-lg-pull-5 {\n    right: 41.66667%; }\n  .col-lg-pull-6 {\n    right: 50%; }\n  .col-lg-pull-7 {\n    right: 58.33333%; }\n  .col-lg-pull-8 {\n    right: 66.66667%; }\n  .col-lg-pull-9 {\n    right: 75%; }\n  .col-lg-pull-10 {\n    right: 83.33333%; }\n  .col-lg-pull-11 {\n    right: 91.66667%; }\n  .col-lg-pull-12 {\n    right: 100%; }\n  .col-lg-push-0 {\n    left: auto; }\n  .col-lg-push-1 {\n    left: 8.33333%; }\n  .col-lg-push-2 {\n    left: 16.66667%; }\n  .col-lg-push-3 {\n    left: 25%; }\n  .col-lg-push-4 {\n    left: 33.33333%; }\n  .col-lg-push-5 {\n    left: 41.66667%; }\n  .col-lg-push-6 {\n    left: 50%; }\n  .col-lg-push-7 {\n    left: 58.33333%; }\n  .col-lg-push-8 {\n    left: 66.66667%; }\n  .col-lg-push-9 {\n    left: 75%; }\n  .col-lg-push-10 {\n    left: 83.33333%; }\n  .col-lg-push-11 {\n    left: 91.66667%; }\n  .col-lg-push-12 {\n    left: 100%; }\n  .col-lg-offset-0 {\n    margin-left: 0%; }\n  .col-lg-offset-1 {\n    margin-left: 8.33333%; }\n  .col-lg-offset-2 {\n    margin-left: 16.66667%; }\n  .col-lg-offset-3 {\n    margin-left: 25%; }\n  .col-lg-offset-4 {\n    margin-left: 33.33333%; }\n  .col-lg-offset-5 {\n    margin-left: 41.66667%; }\n  .col-lg-offset-6 {\n    margin-left: 50%; }\n  .col-lg-offset-7 {\n    margin-left: 58.33333%; }\n  .col-lg-offset-8 {\n    margin-left: 66.66667%; }\n  .col-lg-offset-9 {\n    margin-left: 75%; }\n  .col-lg-offset-10 {\n    margin-left: 83.33333%; }\n  .col-lg-offset-11 {\n    margin-left: 91.66667%; }\n  .col-lg-offset-12 {\n    margin-left: 100%; } }\n\ntable {\n  background-color: transparent; }\n\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777777;\n  text-align: left; }\n\nth {\n  text-align: left; }\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 20px; }\n  .table > thead > tr > th,\n  .table > thead > tr > td,\n  .table > tbody > tr > th,\n  .table > tbody > tr > td,\n  .table > tfoot > tr > th,\n  .table > tfoot > tr > td {\n    padding: 8px;\n    line-height: 1.42857;\n    vertical-align: top;\n    border-top: 1px solid #e7ecf1; }\n  .table > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid #e7ecf1; }\n  .table > caption + thead > tr:first-child > th,\n  .table > caption + thead > tr:first-child > td,\n  .table > colgroup + thead > tr:first-child > th,\n  .table > colgroup + thead > tr:first-child > td,\n  .table > thead:first-child > tr:first-child > th,\n  .table > thead:first-child > tr:first-child > td {\n    border-top: 0; }\n  .table > tbody + tbody {\n    border-top: 2px solid #e7ecf1; }\n  .table .table {\n    background-color: #fff; }\n\n.table-condensed > thead > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > th,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > th,\n.table-condensed > tfoot > tr > td {\n  padding: 5px; }\n\n.table-bordered {\n  border: 1px solid #e7ecf1; }\n  .table-bordered > thead > tr > th,\n  .table-bordered > thead > tr > td,\n  .table-bordered > tbody > tr > th,\n  .table-bordered > tbody > tr > td,\n  .table-bordered > tfoot > tr > th,\n  .table-bordered > tfoot > tr > td {\n    border: 1px solid #e7ecf1; }\n  .table-bordered > thead > tr > th,\n  .table-bordered > thead > tr > td {\n    border-bottom-width: 2px; }\n\n.table-striped > tbody > tr:nth-of-type(odd) {\n  background-color: #fbfcfd; }\n\n.table-hover > tbody > tr:hover {\n  background-color: #eef1f5; }\n\ntable col[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-column; }\n\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-cell; }\n\n.table > thead > tr > td.active,\n.table > thead > tr > th.active,\n.table > thead > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr > td.active,\n.table > tbody > tr > th.active,\n.table > tbody > tr.active > td,\n.table > tbody > tr.active > th,\n.table > tfoot > tr > td.active,\n.table > tfoot > tr > th.active,\n.table > tfoot > tr.active > td,\n.table > tfoot > tr.active > th {\n  background-color: #eef1f5; }\n\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #dee5ec; }\n\n.table > thead > tr > td.success,\n.table > thead > tr > th.success,\n.table > thead > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr > td.success,\n.table > tbody > tr > th.success,\n.table > tbody > tr.success > td,\n.table > tbody > tr.success > th,\n.table > tfoot > tr > td.success,\n.table > tfoot > tr > th.success,\n.table > tfoot > tr.success > td,\n.table > tfoot > tr.success > th {\n  background-color: #abe7ed; }\n\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #96e1e8; }\n\n.table > thead > tr > td.info,\n.table > thead > tr > th.info,\n.table > thead > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr > td.info,\n.table > tbody > tr > th.info,\n.table > tbody > tr.info > td,\n.table > tbody > tr.info > th,\n.table > tfoot > tr > td.info,\n.table > tfoot > tr > th.info,\n.table > tfoot > tr.info > td,\n.table > tfoot > tr.info > th {\n  background-color: #e0ebf9; }\n\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #caddf4; }\n\n.table > thead > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr > td.warning,\n.table > tbody > tr > th.warning,\n.table > tbody > tr.warning > td,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr > td.warning,\n.table > tfoot > tr > th.warning,\n.table > tfoot > tr.warning > td,\n.table > tfoot > tr.warning > th {\n  background-color: #f9e491; }\n\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #f7de79; }\n\n.table > thead > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr > td.danger,\n.table > tbody > tr > th.danger,\n.table > tbody > tr.danger > td,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr > td.danger,\n.table > tfoot > tr > th.danger,\n.table > tfoot > tr.danger > td,\n.table > tfoot > tr.danger > th {\n  background-color: #fbe1e3; }\n\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #f8cace; }\n\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%; }\n  @media screen and (max-width: 767px) {\n    .table-responsive {\n      width: 100%;\n      margin-bottom: 15px;\n      overflow-y: hidden;\n      -ms-overflow-style: -ms-autohiding-scrollbar;\n      border: 1px solid #e7ecf1; }\n      .table-responsive > .table {\n        margin-bottom: 0; }\n        .table-responsive > .table > thead > tr > th,\n        .table-responsive > .table > thead > tr > td,\n        .table-responsive > .table > tbody > tr > th,\n        .table-responsive > .table > tbody > tr > td,\n        .table-responsive > .table > tfoot > tr > th,\n        .table-responsive > .table > tfoot > tr > td {\n          white-space: nowrap; }\n      .table-responsive > .table-bordered {\n        border: 0; }\n        .table-responsive > .table-bordered > thead > tr > th:first-child,\n        .table-responsive > .table-bordered > thead > tr > td:first-child,\n        .table-responsive > .table-bordered > tbody > tr > th:first-child,\n        .table-responsive > .table-bordered > tbody > tr > td:first-child,\n        .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n        .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n          border-left: 0; }\n        .table-responsive > .table-bordered > thead > tr > th:last-child,\n        .table-responsive > .table-bordered > thead > tr > td:last-child,\n        .table-responsive > .table-bordered > tbody > tr > th:last-child,\n        .table-responsive > .table-bordered > tbody > tr > td:last-child,\n        .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n        .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n          border-right: 0; }\n        .table-responsive > .table-bordered > tbody > tr:last-child > th,\n        .table-responsive > .table-bordered > tbody > tr:last-child > td,\n        .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n        .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n          border-bottom: 0; } }\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0; }\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #34495e;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5; }\n\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold; }\n\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box; }\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal; }\n\ninput[type=\"file\"] {\n  display: block; }\n\ninput[type=\"range\"] {\n  display: block;\n  width: 100%; }\n\nselect[multiple],\nselect[size] {\n  height: auto; }\n\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px; }\n\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #555555; }\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857;\n  color: #555555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #c2cad8;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n  -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }\n  .form-control:focus {\n    border-color: #93a1bb;\n    outline: 0;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(147, 161, 187, 0.6);\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(147, 161, 187, 0.6); }\n  .form-control::-moz-placeholder {\n    color: #999;\n    opacity: 1; }\n  .form-control:-ms-input-placeholder {\n    color: #999; }\n  .form-control::-webkit-input-placeholder {\n    color: #999; }\n  .form-control::-ms-expand {\n    border: 0;\n    background-color: transparent; }\n  .form-control[disabled], .form-control[readonly],\n  fieldset[disabled] .form-control {\n    background-color: #eef1f5;\n    opacity: 1; }\n  .form-control[disabled],\n  fieldset[disabled] .form-control {\n    cursor: not-allowed; }\n\ntextarea.form-control {\n  height: auto; }\n\ninput[type=\"search\"] {\n  -webkit-appearance: none; }\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"].form-control,\n  input[type=\"time\"].form-control,\n  input[type=\"datetime-local\"].form-control,\n  input[type=\"month\"].form-control {\n    line-height: 34px; }\n  input[type=\"date\"].input-sm, .input-group-sm > input[type=\"date\"].form-control,\n  .input-group-sm > input[type=\"date\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"date\"].btn,\n  .input-group-sm input[type=\"date\"],\n  input[type=\"time\"].input-sm,\n  .input-group-sm > input[type=\"time\"].form-control,\n  .input-group-sm > input[type=\"time\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"time\"].btn,\n  .input-group-sm\n  input[type=\"time\"],\n  input[type=\"datetime-local\"].input-sm,\n  .input-group-sm > input[type=\"datetime-local\"].form-control,\n  .input-group-sm > input[type=\"datetime-local\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"datetime-local\"].btn,\n  .input-group-sm\n  input[type=\"datetime-local\"],\n  input[type=\"month\"].input-sm,\n  .input-group-sm > input[type=\"month\"].form-control,\n  .input-group-sm > input[type=\"month\"].input-group-addon,\n  .input-group-sm > .input-group-btn > input[type=\"month\"].btn,\n  .input-group-sm\n  input[type=\"month\"] {\n    line-height: 30px; }\n  input[type=\"date\"].input-lg, .input-group-lg > input[type=\"date\"].form-control,\n  .input-group-lg > input[type=\"date\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"date\"].btn,\n  .input-group-lg input[type=\"date\"],\n  input[type=\"time\"].input-lg,\n  .input-group-lg > input[type=\"time\"].form-control,\n  .input-group-lg > input[type=\"time\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"time\"].btn,\n  .input-group-lg\n  input[type=\"time\"],\n  input[type=\"datetime-local\"].input-lg,\n  .input-group-lg > input[type=\"datetime-local\"].form-control,\n  .input-group-lg > input[type=\"datetime-local\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"datetime-local\"].btn,\n  .input-group-lg\n  input[type=\"datetime-local\"],\n  input[type=\"month\"].input-lg,\n  .input-group-lg > input[type=\"month\"].form-control,\n  .input-group-lg > input[type=\"month\"].input-group-addon,\n  .input-group-lg > .input-group-btn > input[type=\"month\"].btn,\n  .input-group-lg\n  input[type=\"month\"] {\n    line-height: 46px; } }\n\n.form-group {\n  margin-bottom: 15px; }\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px; }\n  .radio label,\n  .checkbox label {\n    min-height: 20px;\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: normal;\n    cursor: pointer; }\n\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9; }\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; }\n\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer; }\n\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; }\n\ninput[type=\"radio\"][disabled], input[type=\"radio\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled]\ninput[type=\"checkbox\"] {\n  cursor: not-allowed; }\n\n.radio-inline.disabled,\nfieldset[disabled] .radio-inline,\n.checkbox-inline.disabled,\nfieldset[disabled]\n.checkbox-inline {\n  cursor: not-allowed; }\n\n.radio.disabled label,\nfieldset[disabled] .radio label,\n.checkbox.disabled label,\nfieldset[disabled]\n.checkbox label {\n  cursor: not-allowed; }\n\n.form-control-static {\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n  min-height: 34px; }\n  .form-control-static.input-lg, .input-group-lg > .form-control-static.form-control,\n  .input-group-lg > .form-control-static.input-group-addon,\n  .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,\n  .input-group-sm > .form-control-static.input-group-addon,\n  .input-group-sm > .input-group-btn > .form-control-static.btn {\n    padding-left: 0;\n    padding-right: 0; }\n\n.input-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\nselect.input-sm, .input-group-sm > select.form-control,\n.input-group-sm > select.input-group-addon,\n.input-group-sm > .input-group-btn > select.btn {\n  height: 30px;\n  line-height: 30px; }\n\ntextarea.input-sm, .input-group-sm > textarea.form-control,\n.input-group-sm > textarea.input-group-addon,\n.input-group-sm > .input-group-btn > textarea.btn,\nselect[multiple].input-sm,\n.input-group-sm > select[multiple].form-control,\n.input-group-sm > select[multiple].input-group-addon,\n.input-group-sm > .input-group-btn > select[multiple].btn {\n  height: auto; }\n\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\n.form-group-sm select.form-control {\n  height: 30px;\n  line-height: 30px; }\n\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n  height: auto; }\n\n.form-group-sm .form-control-static {\n  height: 30px;\n  min-height: 32px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5; }\n\n.input-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 6px; }\n\nselect.input-lg, .input-group-lg > select.form-control,\n.input-group-lg > select.input-group-addon,\n.input-group-lg > .input-group-btn > select.btn {\n  height: 46px;\n  line-height: 46px; }\n\ntextarea.input-lg, .input-group-lg > textarea.form-control,\n.input-group-lg > textarea.input-group-addon,\n.input-group-lg > .input-group-btn > textarea.btn,\nselect[multiple].input-lg,\n.input-group-lg > select[multiple].form-control,\n.input-group-lg > select[multiple].input-group-addon,\n.input-group-lg > .input-group-btn > select[multiple].btn {\n  height: auto; }\n\n.form-group-lg .form-control {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 6px; }\n\n.form-group-lg select.form-control {\n  height: 46px;\n  line-height: 46px; }\n\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n  height: auto; }\n\n.form-group-lg .form-control-static {\n  height: 46px;\n  min-height: 38px;\n  padding: 11px 16px;\n  font-size: 18px;\n  line-height: 1.33333; }\n\n.has-feedback {\n  position: relative; }\n  .has-feedback .form-control {\n    padding-right: 42.5px; }\n\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none; }\n\n.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback,\n.input-group-lg > .input-group-addon + .form-control-feedback,\n.input-group-lg > .input-group-btn > .btn + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px; }\n\n.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback,\n.input-group-sm > .input-group-addon + .form-control-feedback,\n.input-group-sm > .input-group-btn > .btn + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px; }\n\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #27a4b0; }\n\n.has-success .form-control {\n  border-color: #27a4b0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n  .has-success .form-control:focus {\n    border-color: #1d7d86;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #60d2dc;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #60d2dc; }\n\n.has-success .input-group-addon {\n  color: #27a4b0;\n  border-color: #27a4b0;\n  background-color: #abe7ed; }\n\n.has-success .form-control-feedback {\n  color: #27a4b0; }\n\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #c29d0b; }\n\n.has-warning .form-control {\n  border-color: #c29d0b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n  .has-warning .form-control:focus {\n    border-color: #927608;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f4d03f;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f4d03f; }\n\n.has-warning .input-group-addon {\n  color: #c29d0b;\n  border-color: #c29d0b;\n  background-color: #f9e491; }\n\n.has-warning .form-control-feedback {\n  color: #c29d0b; }\n\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #e73d4a; }\n\n.has-error .form-control {\n  border-color: #e73d4a;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }\n  .has-error .form-control:focus {\n    border-color: #d71b29;\n    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f2989f;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f2989f; }\n\n.has-error .input-group-addon {\n  color: #e73d4a;\n  border-color: #e73d4a;\n  background-color: #fbe1e3; }\n\n.has-error .form-control-feedback {\n  color: #e73d4a; }\n\n.has-feedback label ~ .form-control-feedback {\n  top: 25px; }\n\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0; }\n\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373; }\n\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle; }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle; }\n  .form-inline .form-control-static {\n    display: inline-block; }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle; }\n    .form-inline .input-group .input-group-addon,\n    .form-inline .input-group .input-group-btn,\n    .form-inline .input-group .form-control {\n      width: auto; }\n  .form-inline .input-group > .form-control {\n    width: 100%; }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle; }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle; }\n    .form-inline .radio label,\n    .form-inline .checkbox label {\n      padding-left: 0; }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0; }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0; } }\n\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding-top: 7px; }\n\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 27px; }\n\n.form-horizontal .form-group {\n  margin-left: -15px;\n  margin-right: -15px; }\n  .form-horizontal .form-group:before, .form-horizontal .form-group:after {\n    content: \" \";\n    display: table; }\n  .form-horizontal .form-group:after {\n    clear: both; }\n\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    text-align: right;\n    margin-bottom: 0;\n    padding-top: 7px; } }\n\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 15px; }\n\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 11px;\n    font-size: 18px; } }\n\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px; } }\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0;\n  font-weight: normal;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857;\n  border-radius: 4px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none; }\n  .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus {\n    outline: 5px auto -webkit-focus-ring-color;\n    outline-offset: -2px; }\n  .btn:hover, .btn:focus, .btn.focus {\n    color: #333;\n    text-decoration: none; }\n  .btn:active, .btn.active {\n    outline: 0;\n    background-image: none;\n    -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n    box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n  .btn.disabled, .btn[disabled],\n  fieldset[disabled] .btn {\n    cursor: not-allowed;\n    opacity: 0.65;\n    filter: alpha(opacity=65);\n    -webkit-box-shadow: none;\n    box-shadow: none; }\n\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none; }\n\n.btn-default {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc; }\n  .btn-default:focus, .btn-default.focus {\n    color: #333;\n    background-color: #e6e6e6;\n    border-color: #8c8c8c; }\n  .btn-default:hover {\n    color: #333;\n    background-color: #e6e6e6;\n    border-color: #adadad; }\n  .btn-default:active, .btn-default.active,\n  .open > .btn-default.dropdown-toggle {\n    color: #333;\n    background-color: #e6e6e6;\n    border-color: #adadad; }\n    .btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus,\n    .open > .btn-default.dropdown-toggle:hover,\n    .open > .btn-default.dropdown-toggle:focus,\n    .open > .btn-default.dropdown-toggle.focus {\n      color: #333;\n      background-color: #d4d4d4;\n      border-color: #8c8c8c; }\n  .btn-default:active, .btn-default.active,\n  .open > .btn-default.dropdown-toggle {\n    background-image: none; }\n  .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus,\n  fieldset[disabled] .btn-default:hover,\n  fieldset[disabled] .btn-default:focus,\n  fieldset[disabled] .btn-default.focus {\n    background-color: #fff;\n    border-color: #ccc; }\n  .btn-default .badge {\n    color: #fff;\n    background-color: #333; }\n\n.btn-primary {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #2e6da4; }\n  .btn-primary:focus, .btn-primary.focus {\n    color: #fff;\n    background-color: #286090;\n    border-color: #122b40; }\n  .btn-primary:hover {\n    color: #fff;\n    background-color: #286090;\n    border-color: #204d74; }\n  .btn-primary:active, .btn-primary.active,\n  .open > .btn-primary.dropdown-toggle {\n    color: #fff;\n    background-color: #286090;\n    border-color: #204d74; }\n    .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,\n    .open > .btn-primary.dropdown-toggle:hover,\n    .open > .btn-primary.dropdown-toggle:focus,\n    .open > .btn-primary.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #204d74;\n      border-color: #122b40; }\n  .btn-primary:active, .btn-primary.active,\n  .open > .btn-primary.dropdown-toggle {\n    background-image: none; }\n  .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus,\n  fieldset[disabled] .btn-primary:hover,\n  fieldset[disabled] .btn-primary:focus,\n  fieldset[disabled] .btn-primary.focus {\n    background-color: #337ab7;\n    border-color: #2e6da4; }\n  .btn-primary .badge {\n    color: #337ab7;\n    background-color: #fff; }\n\n.btn-success {\n  color: #fff;\n  background-color: #36c6d3;\n  border-color: #2bb8c4; }\n  .btn-success:focus, .btn-success.focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #14565c; }\n  .btn-success:hover {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #208992; }\n  .btn-success:active, .btn-success.active,\n  .open > .btn-success.dropdown-toggle {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #208992; }\n    .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,\n    .open > .btn-success.dropdown-toggle:hover,\n    .open > .btn-success.dropdown-toggle:focus,\n    .open > .btn-success.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #208992;\n      border-color: #14565c; }\n  .btn-success:active, .btn-success.active,\n  .open > .btn-success.dropdown-toggle {\n    background-image: none; }\n  .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus,\n  fieldset[disabled] .btn-success:hover,\n  fieldset[disabled] .btn-success:focus,\n  fieldset[disabled] .btn-success.focus {\n    background-color: #36c6d3;\n    border-color: #2bb8c4; }\n  .btn-success .badge {\n    color: #36c6d3;\n    background-color: #fff; }\n\n.btn-info {\n  color: #fff;\n  background-color: #659be0;\n  border-color: #508edb; }\n  .btn-info:focus, .btn-info.focus {\n    color: #fff;\n    background-color: #3a80d7;\n    border-color: #1d4f8e; }\n  .btn-info:hover {\n    color: #fff;\n    background-color: #3a80d7;\n    border-color: #286ec5; }\n  .btn-info:active, .btn-info.active,\n  .open > .btn-info.dropdown-toggle {\n    color: #fff;\n    background-color: #3a80d7;\n    border-color: #286ec5; }\n    .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus,\n    .open > .btn-info.dropdown-toggle:hover,\n    .open > .btn-info.dropdown-toggle:focus,\n    .open > .btn-info.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #286ec5;\n      border-color: #1d4f8e; }\n  .btn-info:active, .btn-info.active,\n  .open > .btn-info.dropdown-toggle {\n    background-image: none; }\n  .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus,\n  fieldset[disabled] .btn-info:hover,\n  fieldset[disabled] .btn-info:focus,\n  fieldset[disabled] .btn-info.focus {\n    background-color: #659be0;\n    border-color: #508edb; }\n  .btn-info .badge {\n    color: #659be0;\n    background-color: #fff; }\n\n.btn-warning {\n  color: #fff;\n  background-color: #F1C40F;\n  border-color: #dab10d; }\n  .btn-warning:focus, .btn-warning.focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #614f06; }\n  .btn-warning:hover {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #a08209; }\n  .btn-warning:active, .btn-warning.active,\n  .open > .btn-warning.dropdown-toggle {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #a08209; }\n    .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus,\n    .open > .btn-warning.dropdown-toggle:hover,\n    .open > .btn-warning.dropdown-toggle:focus,\n    .open > .btn-warning.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #a08209;\n      border-color: #614f06; }\n  .btn-warning:active, .btn-warning.active,\n  .open > .btn-warning.dropdown-toggle {\n    background-image: none; }\n  .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus,\n  fieldset[disabled] .btn-warning:hover,\n  fieldset[disabled] .btn-warning:focus,\n  fieldset[disabled] .btn-warning.focus {\n    background-color: #F1C40F;\n    border-color: #dab10d; }\n  .btn-warning .badge {\n    color: #F1C40F;\n    background-color: #fff; }\n\n.btn-danger {\n  color: #fff;\n  background-color: #ed6b75;\n  border-color: #ea5460; }\n  .btn-danger:focus, .btn-danger.focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #a91520; }\n  .btn-danger:hover {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e31d2d; }\n  .btn-danger:active, .btn-danger.active,\n  .open > .btn-danger.dropdown-toggle {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e31d2d; }\n    .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus,\n    .open > .btn-danger.dropdown-toggle:hover,\n    .open > .btn-danger.dropdown-toggle:focus,\n    .open > .btn-danger.dropdown-toggle.focus {\n      color: #fff;\n      background-color: #e31d2d;\n      border-color: #a91520; }\n  .btn-danger:active, .btn-danger.active,\n  .open > .btn-danger.dropdown-toggle {\n    background-image: none; }\n  .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus,\n  fieldset[disabled] .btn-danger:hover,\n  fieldset[disabled] .btn-danger:focus,\n  fieldset[disabled] .btn-danger.focus {\n    background-color: #ed6b75;\n    border-color: #ea5460; }\n  .btn-danger .badge {\n    color: #ed6b75;\n    background-color: #fff; }\n\n.btn-link {\n  color: #337ab7;\n  font-weight: normal;\n  border-radius: 0; }\n  .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled],\n  fieldset[disabled] .btn-link {\n    background-color: transparent;\n    -webkit-box-shadow: none;\n    box-shadow: none; }\n  .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {\n    border-color: transparent; }\n  .btn-link:hover, .btn-link:focus {\n    color: #23527c;\n    text-decoration: underline;\n    background-color: transparent; }\n  .btn-link[disabled]:hover, .btn-link[disabled]:focus,\n  fieldset[disabled] .btn-link:hover,\n  fieldset[disabled] .btn-link:focus {\n    color: #6c8dae;\n    text-decoration: none; }\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333;\n  border-radius: 6px; }\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\n.btn-xs, .btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px; }\n\n.btn-block {\n  display: block;\n  width: 100%; }\n\n.btn-block + .btn-block {\n  margin-top: 5px; }\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%; }\n\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n  -o-transition: opacity 0.15s linear;\n  transition: opacity 0.15s linear; }\n  .fade.in {\n    opacity: 1; }\n\n.collapse {\n  display: none; }\n  .collapse.in {\n    display: block; }\n\ntr.collapse.in {\n  display: table-row; }\n\ntbody.collapse.in {\n  display: table-row-group; }\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-property: height, visibility;\n  transition-property: height, visibility;\n  -webkit-transition-duration: 0.35s;\n  transition-duration: 0.35s;\n  -webkit-transition-timing-function: ease;\n  transition-timing-function: ease; }\n\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid \\9;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent; }\n\n.dropup,\n.dropdown {\n  position: relative; }\n\n.dropdown-toggle:focus {\n  outline: 0; }\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0/*rtl:auto*/;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  font-size: 14px;\n  text-align: left;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  background-clip: padding-box; }\n  .dropdown-menu.pull-right {\n    right: 0;\n    left: auto; }\n  .dropdown-menu .divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background-color: #e5e5e5; }\n  .dropdown-menu > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: 1.42857;\n    color: #333333;\n    white-space: nowrap; }\n\n.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {\n  text-decoration: none;\n  color: #262626;\n  background-color: #e1e5ec; }\n\n.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  background-color: #337ab7; }\n\n.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {\n  color: #777777; }\n\n.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  cursor: not-allowed; }\n\n.open > .dropdown-menu {\n  display: block; }\n\n.open > a {\n  outline: 0; }\n\n.dropdown-menu-right {\n  left: auto;\n  right: 0; }\n\n.dropdown-menu-left {\n  left: 0;\n  right: auto; }\n\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857;\n  color: #777777;\n  white-space: nowrap; }\n\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: 990; }\n\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto; }\n\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px dashed;\n  border-bottom: 4px solid \\9;\n  content: \"\"; }\n\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 2px; }\n\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    right: 0;\n    left: auto; }\n  .navbar-right .dropdown-menu-left {\n    left: 0;\n    right: auto; } }\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; }\n  .btn-group > .btn,\n  .btn-group-vertical > .btn {\n    position: relative;\n    float: left; }\n    .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n    .btn-group-vertical > .btn:hover,\n    .btn-group-vertical > .btn:focus,\n    .btn-group-vertical > .btn:active,\n    .btn-group-vertical > .btn.active {\n      z-index: 2; }\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px; }\n\n.btn-toolbar {\n  margin-left: -5px; }\n  .btn-toolbar:before, .btn-toolbar:after {\n    content: \" \";\n    display: table; }\n  .btn-toolbar:after {\n    clear: both; }\n  .btn-toolbar .btn,\n  .btn-toolbar .btn-group,\n  .btn-toolbar .input-group {\n    float: left; }\n  .btn-toolbar > .btn,\n  .btn-toolbar > .btn-group,\n  .btn-toolbar > .input-group {\n    margin-left: 5px; }\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0; }\n\n.btn-group > .btn:first-child {\n  margin-left: 0; }\n  .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n    border-bottom-right-radius: 0;\n    border-top-right-radius: 0; }\n\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0; }\n\n.btn-group > .btn-group {\n  float: left; }\n\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0; }\n\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0; }\n\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0; }\n\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0; }\n\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px; }\n\n.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px; }\n\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }\n  .btn-group.open .dropdown-toggle.btn-link {\n    -webkit-box-shadow: none;\n    box-shadow: none; }\n\n.btn .caret {\n  margin-left: 0; }\n\n.btn-lg .caret, .btn-group-lg > .btn .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0; }\n\n.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {\n  border-width: 0 5px 5px; }\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%; }\n\n.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {\n  content: \" \";\n  display: table; }\n\n.btn-group-vertical > .btn-group:after {\n  clear: both; }\n\n.btn-group-vertical > .btn-group > .btn {\n  float: none; }\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0; }\n\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0; }\n\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px; }\n\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0; }\n\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate; }\n  .btn-group-justified > .btn,\n  .btn-group-justified > .btn-group {\n    float: none;\n    display: table-cell;\n    width: 1%; }\n  .btn-group-justified > .btn-group .btn {\n    width: 100%; }\n  .btn-group-justified > .btn-group .dropdown-menu {\n    left: auto; }\n\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none; }\n\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate; }\n  .input-group[class*=\"col-\"] {\n    float: none;\n    padding-left: 0;\n    padding-right: 0; }\n  .input-group .form-control {\n    position: relative;\n    z-index: 2;\n    float: left;\n    width: 100%;\n    margin-bottom: 0; }\n    .input-group .form-control:focus {\n      z-index: 3; }\n\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell; }\n  .input-group-addon:not(:first-child):not(:last-child),\n  .input-group-btn:not(:first-child):not(:last-child),\n  .input-group .form-control:not(:first-child):not(:last-child) {\n    border-radius: 0; }\n\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; }\n\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  border-radius: 4px; }\n  .input-group-addon.input-sm,\n  .input-group-sm > .input-group-addon,\n  .input-group-sm > .input-group-btn > .input-group-addon.btn {\n    padding: 5px 10px;\n    font-size: 12px;\n    border-radius: 3px; }\n  .input-group-addon.input-lg,\n  .input-group-lg > .input-group-addon,\n  .input-group-lg > .input-group-btn > .input-group-addon.btn {\n    padding: 10px 16px;\n    font-size: 18px;\n    border-radius: 6px; }\n  .input-group-addon input[type=\"radio\"],\n  .input-group-addon input[type=\"checkbox\"] {\n    margin-top: 0; }\n\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0; }\n\n.input-group-addon:first-child {\n  border-right: 0; }\n\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0; }\n\n.input-group-addon:last-child {\n  border-left: 0; }\n\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap; }\n  .input-group-btn > .btn {\n    position: relative; }\n    .input-group-btn > .btn + .btn {\n      margin-left: -1px; }\n    .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {\n      z-index: 2; }\n  .input-group-btn:first-child > .btn,\n  .input-group-btn:first-child > .btn-group {\n    margin-right: -1px; }\n  .input-group-btn:last-child > .btn,\n  .input-group-btn:last-child > .btn-group {\n    z-index: 2;\n    margin-left: -1px; }\n\n.nav {\n  margin-bottom: 0;\n  padding-left: 0;\n  list-style: none; }\n  .nav:before, .nav:after {\n    content: \" \";\n    display: table; }\n  .nav:after {\n    clear: both; }\n  .nav > li {\n    position: relative;\n    display: block; }\n    .nav > li > a {\n      position: relative;\n      display: block;\n      padding: 10px 15px; }\n      .nav > li > a:hover, .nav > li > a:focus {\n        text-decoration: none;\n        background-color: #eeeeee; }\n    .nav > li.disabled > a {\n      color: #777777; }\n      .nav > li.disabled > a:hover, .nav > li.disabled > a:focus {\n        color: #777777;\n        text-decoration: none;\n        background-color: transparent;\n        cursor: not-allowed; }\n  .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {\n    background-color: #eeeeee;\n    border-color: #337ab7; }\n  .nav .nav-divider {\n    height: 1px;\n    margin: 9px 0;\n    overflow: hidden;\n    background-color: #e5e5e5; }\n  .nav > li > a > img {\n    max-width: none; }\n\n.nav-tabs {\n  border-bottom: 1px solid #ddd; }\n  .nav-tabs > li {\n    float: left;\n    margin-bottom: -1px; }\n    .nav-tabs > li > a {\n      margin-right: 2px;\n      line-height: 1.42857;\n      border: 1px solid transparent;\n      border-radius: 4px 4px 0 0; }\n      .nav-tabs > li > a:hover {\n        border-color: #eeeeee #eeeeee #ddd; }\n    .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {\n      color: #555555;\n      background-color: #fff;\n      border: 1px solid #ddd;\n      border-bottom-color: transparent;\n      cursor: default; }\n\n.nav-pills > li {\n  float: left; }\n  .nav-pills > li > a {\n    border-radius: 4px; }\n  .nav-pills > li + li {\n    margin-left: 2px; }\n  .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {\n    color: #fff;\n    background-color: #337ab7; }\n\n.nav-stacked > li {\n  float: none; }\n  .nav-stacked > li + li {\n    margin-top: 2px;\n    margin-left: 0; }\n\n.nav-justified, .nav-tabs.nav-justified {\n  width: 100%; }\n  .nav-justified > li, .nav-tabs.nav-justified > li {\n    float: none; }\n    .nav-justified > li > a, .nav-tabs.nav-justified > li > a {\n      text-align: center;\n      margin-bottom: 5px; }\n  .nav-justified > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto; }\n  @media (min-width: 768px) {\n    .nav-justified > li, .nav-tabs.nav-justified > li {\n      display: table-cell;\n      width: 1%; }\n      .nav-justified > li > a, .nav-tabs.nav-justified > li > a {\n        margin-bottom: 0; } }\n\n.nav-tabs-justified, .nav-tabs.nav-justified {\n  border-bottom: 0; }\n  .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {\n    margin-right: 0;\n    border-radius: 4px; }\n  .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {\n    border: 1px solid #ddd; }\n  @media (min-width: 768px) {\n    .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {\n      border-bottom: 1px solid #ddd;\n      border-radius: 4px 4px 0 0; }\n    .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,\n    .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,\n    .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {\n      border-bottom-color: #fff; } }\n\n.tab-content > .tab-pane {\n  display: none; }\n\n.tab-content > .active {\n  display: block; }\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent; }\n  .navbar:before, .navbar:after {\n    content: \" \";\n    display: table; }\n  .navbar:after {\n    clear: both; }\n  @media (min-width: 768px) {\n    .navbar {\n      border-radius: 4px; } }\n\n.navbar-header:before, .navbar-header:after {\n  content: \" \";\n  display: table; }\n\n.navbar-header:after {\n  clear: both; }\n\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left; } }\n\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: 15px;\n  padding-left: 15px;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n  -webkit-overflow-scrolling: touch; }\n  .navbar-collapse:before, .navbar-collapse:after {\n    content: \" \";\n    display: table; }\n  .navbar-collapse:after {\n    clear: both; }\n  .navbar-collapse.in {\n    overflow-y: auto; }\n  @media (min-width: 768px) {\n    .navbar-collapse {\n      width: auto;\n      border-top: 0;\n      box-shadow: none; }\n      .navbar-collapse.collapse {\n        display: block !important;\n        height: auto !important;\n        padding-bottom: 0;\n        overflow: visible !important; }\n      .navbar-collapse.in {\n        overflow-y: visible; }\n      .navbar-fixed-top .navbar-collapse,\n      .navbar-static-top .navbar-collapse,\n      .navbar-fixed-bottom .navbar-collapse {\n        padding-left: 0;\n        padding-right: 0; } }\n\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px; }\n  @media (max-device-width: 480px) and (orientation: landscape) {\n    .navbar-fixed-top .navbar-collapse,\n    .navbar-fixed-bottom .navbar-collapse {\n      max-height: 200px; } }\n\n.container > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-header,\n.container-fluid > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px; }\n  @media (min-width: 768px) {\n    .container > .navbar-header,\n    .container > .navbar-collapse,\n    .container-fluid > .navbar-header,\n    .container-fluid > .navbar-collapse {\n      margin-right: 0;\n      margin-left: 0; } }\n\n.navbar-static-top {\n  z-index: 9995;\n  border-width: 0 0 1px; }\n  @media (min-width: 768px) {\n    .navbar-static-top {\n      border-radius: 0; } }\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030; }\n  @media (min-width: 768px) {\n    .navbar-fixed-top,\n    .navbar-fixed-bottom {\n      border-radius: 0; } }\n\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px; }\n\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0; }\n\n.navbar-brand {\n  float: left;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n  height: 50px; }\n  .navbar-brand:hover, .navbar-brand:focus {\n    text-decoration: none; }\n  .navbar-brand > img {\n    display: block; }\n  @media (min-width: 768px) {\n    .navbar > .container .navbar-brand,\n    .navbar > .container-fluid .navbar-brand {\n      margin-left: -15px; } }\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: 15px;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px; }\n  .navbar-toggle:focus {\n    outline: 0; }\n  .navbar-toggle .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px; }\n  .navbar-toggle .icon-bar + .icon-bar {\n    margin-top: 4px; }\n  @media (min-width: 768px) {\n    .navbar-toggle {\n      display: none; } }\n\n.navbar-nav {\n  margin: 7.5px -15px; }\n  .navbar-nav > li > a {\n    padding-top: 10px;\n    padding-bottom: 10px;\n    line-height: 20px; }\n  @media (max-width: 767px) {\n    .navbar-nav .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none; }\n      .navbar-nav .open .dropdown-menu > li > a,\n      .navbar-nav .open .dropdown-menu .dropdown-header {\n        padding: 5px 15px 5px 25px; }\n      .navbar-nav .open .dropdown-menu > li > a {\n        line-height: 20px; }\n        .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {\n          background-image: none; } }\n  @media (min-width: 768px) {\n    .navbar-nav {\n      float: left;\n      margin: 0; }\n      .navbar-nav > li {\n        float: left; }\n        .navbar-nav > li > a {\n          padding-top: 15px;\n          padding-bottom: 15px; } }\n\n.navbar-form {\n  margin-left: -15px;\n  margin-right: -15px;\n  padding: 10px 15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  margin-top: 8px;\n  margin-bottom: 8px; }\n  @media (min-width: 768px) {\n    .navbar-form .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle; }\n    .navbar-form .form-control {\n      display: inline-block;\n      width: auto;\n      vertical-align: middle; }\n    .navbar-form .form-control-static {\n      display: inline-block; }\n    .navbar-form .input-group {\n      display: inline-table;\n      vertical-align: middle; }\n      .navbar-form .input-group .input-group-addon,\n      .navbar-form .input-group .input-group-btn,\n      .navbar-form .input-group .form-control {\n        width: auto; }\n    .navbar-form .input-group > .form-control {\n      width: 100%; }\n    .navbar-form .control-label {\n      margin-bottom: 0;\n      vertical-align: middle; }\n    .navbar-form .radio,\n    .navbar-form .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle; }\n      .navbar-form .radio label,\n      .navbar-form .checkbox label {\n        padding-left: 0; }\n    .navbar-form .radio input[type=\"radio\"],\n    .navbar-form .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0; }\n    .navbar-form .has-feedback .form-control-feedback {\n      top: 0; } }\n  @media (max-width: 767px) {\n    .navbar-form .form-group {\n      margin-bottom: 5px; }\n      .navbar-form .form-group:last-child {\n        margin-bottom: 0; } }\n  @media (min-width: 768px) {\n    .navbar-form {\n      width: auto;\n      border: 0;\n      margin-left: 0;\n      margin-right: 0;\n      padding-top: 0;\n      padding-bottom: 0;\n      -webkit-box-shadow: none;\n      box-shadow: none; } }\n\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0; }\n\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px; }\n  .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {\n    margin-top: 10px;\n    margin-bottom: 10px; }\n  .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {\n    margin-top: 14px;\n    margin-bottom: 14px; }\n\n.navbar-text {\n  margin-top: 15px;\n  margin-bottom: 15px; }\n  @media (min-width: 768px) {\n    .navbar-text {\n      float: left;\n      margin-left: 15px;\n      margin-right: 15px; } }\n\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important; }\n  .navbar-right {\n    float: right !important;\n    margin-right: -15px; }\n    .navbar-right ~ .navbar-right {\n      margin-right: 0; } }\n\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7; }\n  .navbar-default .navbar-brand {\n    color: #777; }\n    .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {\n      color: #5e5e5e;\n      background-color: transparent; }\n  .navbar-default .navbar-text {\n    color: #777; }\n  .navbar-default .navbar-nav > li > a {\n    color: #777; }\n    .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {\n      color: #333;\n      background-color: transparent; }\n  .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {\n    color: #555;\n    background-color: #e7e7e7; }\n  .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus {\n    color: #ccc;\n    background-color: transparent; }\n  .navbar-default .navbar-toggle {\n    border-color: #ddd; }\n    .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {\n      background-color: #ddd; }\n    .navbar-default .navbar-toggle .icon-bar {\n      background-color: #888; }\n  .navbar-default .navbar-collapse,\n  .navbar-default .navbar-form {\n    border-color: #e7e7e7; }\n  .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {\n    background-color: #e7e7e7;\n    color: #555; }\n  @media (max-width: 767px) {\n    .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n      color: #777; }\n      .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n        color: #333;\n        background-color: transparent; }\n    .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n      color: #555;\n      background-color: #e7e7e7; }\n    .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n      color: #ccc;\n      background-color: transparent; } }\n  .navbar-default .navbar-link {\n    color: #777; }\n    .navbar-default .navbar-link:hover {\n      color: #333; }\n  .navbar-default .btn-link {\n    color: #777; }\n    .navbar-default .btn-link:hover, .navbar-default .btn-link:focus {\n      color: #333; }\n    .navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus,\n    fieldset[disabled] .navbar-default .btn-link:hover,\n    fieldset[disabled] .navbar-default .btn-link:focus {\n      color: #ccc; }\n\n.navbar-inverse {\n  background-color: #222;\n  border-color: #090909; }\n  .navbar-inverse .navbar-brand {\n    color: #9d9d9d; }\n    .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {\n      color: #fff;\n      background-color: transparent; }\n  .navbar-inverse .navbar-text {\n    color: #9d9d9d; }\n  .navbar-inverse .navbar-nav > li > a {\n    color: #9d9d9d; }\n    .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {\n      color: #fff;\n      background-color: transparent; }\n  .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus {\n    color: #fff;\n    background-color: #090909; }\n  .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus {\n    color: #444;\n    background-color: transparent; }\n  .navbar-inverse .navbar-toggle {\n    border-color: #333; }\n    .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {\n      background-color: #333; }\n    .navbar-inverse .navbar-toggle .icon-bar {\n      background-color: #fff; }\n  .navbar-inverse .navbar-collapse,\n  .navbar-inverse .navbar-form {\n    border-color: #101010; }\n  .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {\n    background-color: #090909;\n    color: #fff; }\n  @media (max-width: 767px) {\n    .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n      border-color: #090909; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n      background-color: #090909; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n      color: #9d9d9d; }\n      .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n        color: #fff;\n        background-color: transparent; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n      color: #fff;\n      background-color: #090909; }\n    .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n      color: #444;\n      background-color: transparent; } }\n  .navbar-inverse .navbar-link {\n    color: #9d9d9d; }\n    .navbar-inverse .navbar-link:hover {\n      color: #fff; }\n  .navbar-inverse .btn-link {\n    color: #9d9d9d; }\n    .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus {\n      color: #fff; }\n    .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus,\n    fieldset[disabled] .navbar-inverse .btn-link:hover,\n    fieldset[disabled] .navbar-inverse .btn-link:focus {\n      color: #444; }\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px; }\n  .breadcrumb > li {\n    display: inline-block; }\n    .breadcrumb > li + li:before {\n      content: \"/ \";\n      padding: 0 5px;\n      color: #ccc; }\n  .breadcrumb > .active {\n    color: #777777; }\n\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px; }\n  .pagination > li {\n    display: inline; }\n    .pagination > li > a,\n    .pagination > li > span {\n      position: relative;\n      float: left;\n      padding: 6px 12px;\n      line-height: 1.42857;\n      text-decoration: none;\n      color: #337ab7;\n      background-color: #fff;\n      border: 1px solid #ddd;\n      margin-left: -1px; }\n    .pagination > li:first-child > a,\n    .pagination > li:first-child > span {\n      margin-left: 0;\n      border-bottom-left-radius: 4px;\n      border-top-left-radius: 4px; }\n    .pagination > li:last-child > a,\n    .pagination > li:last-child > span {\n      border-bottom-right-radius: 4px;\n      border-top-right-radius: 4px; }\n  .pagination > li > a:hover, .pagination > li > a:focus,\n  .pagination > li > span:hover,\n  .pagination > li > span:focus {\n    z-index: 2;\n    color: #23527c;\n    background-color: #eeeeee;\n    border-color: #ddd; }\n  .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,\n  .pagination > .active > span,\n  .pagination > .active > span:hover,\n  .pagination > .active > span:focus {\n    z-index: 3;\n    color: #fff;\n    background-color: #337ab7;\n    border-color: #337ab7;\n    cursor: default; }\n  .pagination > .disabled > span,\n  .pagination > .disabled > span:hover,\n  .pagination > .disabled > span:focus,\n  .pagination > .disabled > a,\n  .pagination > .disabled > a:hover,\n  .pagination > .disabled > a:focus {\n    color: #777777;\n    background-color: #fff;\n    border-color: #ddd;\n    cursor: not-allowed; }\n\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33333; }\n\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-bottom-left-radius: 6px;\n  border-top-left-radius: 6px; }\n\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-bottom-right-radius: 6px;\n  border-top-right-radius: 6px; }\n\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5; }\n\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px; }\n\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px; }\n\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  list-style: none;\n  text-align: center; }\n  .pager:before, .pager:after {\n    content: \" \";\n    display: table; }\n  .pager:after {\n    clear: both; }\n  .pager li {\n    display: inline; }\n    .pager li > a,\n    .pager li > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: #fff;\n      border: 1px solid #ddd;\n      border-radius: 15px; }\n    .pager li > a:hover,\n    .pager li > a:focus {\n      text-decoration: none;\n      background-color: #eeeeee; }\n  .pager .next > a,\n  .pager .next > span {\n    float: right; }\n  .pager .previous > a,\n  .pager .previous > span {\n    float: left; }\n  .pager .disabled > a,\n  .pager .disabled > a:hover,\n  .pager .disabled > a:focus,\n  .pager .disabled > span {\n    color: #777777;\n    background-color: #fff;\n    cursor: not-allowed; }\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em; }\n  .label:empty {\n    display: none; }\n  .btn .label {\n    position: relative;\n    top: -1px; }\n\na.label:hover, a.label:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer; }\n\n.label-default {\n  background-color: #777777; }\n  .label-default[href]:hover, .label-default[href]:focus {\n    background-color: #5e5e5e; }\n\n.label-primary {\n  background-color: #337ab7; }\n  .label-primary[href]:hover, .label-primary[href]:focus {\n    background-color: #286090; }\n\n.label-success {\n  background-color: #5cb85c; }\n  .label-success[href]:hover, .label-success[href]:focus {\n    background-color: #449d44; }\n\n.label-info {\n  background-color: #5bc0de; }\n  .label-info[href]:hover, .label-info[href]:focus {\n    background-color: #31b0d5; }\n\n.label-warning {\n  background-color: #f0ad4e; }\n  .label-warning[href]:hover, .label-warning[href]:focus {\n    background-color: #ec971f; }\n\n.label-danger {\n  background-color: #d9534f; }\n  .label-danger[href]:hover, .label-danger[href]:focus {\n    background-color: #c9302c; }\n\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  color: #fff;\n  line-height: 1;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: #777777;\n  border-radius: 10px; }\n  .badge:empty {\n    display: none; }\n  .btn .badge {\n    position: relative;\n    top: -1px; }\n  .btn-xs .badge, .btn-group-xs > .btn .badge,\n  .btn-group-xs > .btn .badge {\n    top: 0;\n    padding: 1px 5px; }\n  .list-group-item.active > .badge,\n  .nav-pills > .active > a > .badge {\n    color: #337ab7;\n    background-color: #fff; }\n  .list-group-item > .badge {\n    float: right; }\n  .list-group-item > .badge + .badge {\n    margin-right: 5px; }\n  .nav-pills > li > a > .badge {\n    margin-left: 3px; }\n\na.badge:hover, a.badge:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer; }\n\n.jumbotron {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eeeeee; }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    color: inherit; }\n  .jumbotron p {\n    margin-bottom: 15px;\n    font-size: 21px;\n    font-weight: 200; }\n  .jumbotron > hr {\n    border-top-color: #d5d5d5; }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    border-radius: 6px;\n    padding-left: 15px;\n    padding-right: 15px; }\n  .jumbotron .container {\n    max-width: 100%; }\n  @media screen and (min-width: 768px) {\n    .jumbotron {\n      padding-top: 48px;\n      padding-bottom: 48px; }\n      .container .jumbotron,\n      .container-fluid .jumbotron {\n        padding-left: 60px;\n        padding-right: 60px; }\n      .jumbotron h1,\n      .jumbotron .h1 {\n        font-size: 63px; } }\n\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.42857;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: border 0.2s ease-in-out;\n  -o-transition: border 0.2s ease-in-out;\n  transition: border 0.2s ease-in-out; }\n  .thumbnail > img,\n  .thumbnail a > img {\n    display: block;\n    max-width: 100%;\n    height: auto;\n    margin-left: auto;\n    margin-right: auto; }\n  .thumbnail .caption {\n    padding: 9px;\n    color: #333333; }\n\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7; }\n\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px; }\n  .alert h4 {\n    margin-top: 0;\n    color: inherit; }\n  .alert .alert-link {\n    font-weight: bold; }\n  .alert > p,\n  .alert > ul {\n    margin-bottom: 0; }\n  .alert > p + p {\n    margin-top: 5px; }\n\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px; }\n  .alert-dismissable .close,\n  .alert-dismissible .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit; }\n\n.alert-success {\n  background-color: #abe7ed;\n  border-color: #abe7ed;\n  color: #27a4b0; }\n  .alert-success hr {\n    border-top-color: #96e1e8; }\n  .alert-success .alert-link {\n    color: #1d7d86; }\n\n.alert-info {\n  background-color: #e0ebf9;\n  border-color: #e0ebf9;\n  color: #327ad5; }\n  .alert-info hr {\n    border-top-color: #caddf4; }\n  .alert-info .alert-link {\n    color: #2462b0; }\n\n.alert-warning {\n  background-color: #f9e491;\n  border-color: #f9e491;\n  color: #c29d0b; }\n  .alert-warning hr {\n    border-top-color: #f7de79; }\n  .alert-warning .alert-link {\n    color: #927608; }\n\n.alert-danger {\n  background-color: #fbe1e3;\n  border-color: #fbe1e3;\n  color: #e73d4a; }\n  .alert-danger hr {\n    border-top-color: #f8cace; }\n  .alert-danger .alert-link {\n    color: #d71b29; }\n    \n.alert-danger-row-null {\n  background-color: #fbe1e3;\n  border-color: #fbe1e3;\n  color: #e73d4a; }\n  .alert-danger-row-null hr {\n    border-top-color: #f8cace; }\n  .alert-danger-row-null .alert-link {\n    color: #d71b29; }\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0; }\n  to {\n    background-position: 0 0; } }\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0; }\n  to {\n    background-position: 0 0; } }\n\n.progress {\n  overflow: hidden;\n  height: 20px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }\n\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #fff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-transition: width 0.6s ease;\n  -o-transition: width 0.6s ease;\n  transition: width 0.6s ease; }\n\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 40px 40px; }\n\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n  -o-animation: progress-bar-stripes 2s linear infinite;\n  animation: progress-bar-stripes 2s linear infinite; }\n\n.progress-bar-success {\n  background-color: #36c6d3; }\n  .progress-striped .progress-bar-success {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-info {\n  background-color: #659be0; }\n  .progress-striped .progress-bar-info {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-warning {\n  background-color: #F1C40F; }\n  .progress-striped .progress-bar-warning {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.progress-bar-danger {\n  background-color: #ed6b75; }\n  .progress-striped .progress-bar-danger {\n    background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }\n\n.media {\n  margin-top: 15px; }\n  .media:first-child {\n    margin-top: 0; }\n\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden; }\n\n.media-body {\n  width: 10000px; }\n\n.media-object {\n  display: block; }\n  .media-object.img-thumbnail {\n    max-width: none; }\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px; }\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px; }\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top; }\n\n.media-middle {\n  vertical-align: middle; }\n\n.media-bottom {\n  vertical-align: bottom; }\n\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px; }\n\n.media-list {\n  padding-left: 0;\n  list-style: none; }\n\n.list-group {\n  margin-bottom: 20px;\n  padding-left: 0; }\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid #ddd; }\n  .list-group-item:first-child {\n    border-top-right-radius: 4px;\n    border-top-left-radius: 4px; }\n  .list-group-item:last-child {\n    margin-bottom: 0;\n    border-bottom-right-radius: 4px;\n    border-bottom-left-radius: 4px; }\n\na.list-group-item,\nbutton.list-group-item {\n  color: #555; }\n  a.list-group-item .list-group-item-heading,\n  button.list-group-item .list-group-item-heading {\n    color: #333; }\n  a.list-group-item:hover, a.list-group-item:focus,\n  button.list-group-item:hover,\n  button.list-group-item:focus {\n    text-decoration: none;\n    color: #555;\n    background-color: #f5f5f5; }\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left; }\n\n.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus {\n  background-color: #f1f4f7;\n  color: #b1b7bd;\n  cursor: not-allowed; }\n  .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading {\n    color: inherit; }\n  .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text {\n    color: #b1b7bd; }\n\n.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {\n  z-index: 2;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7; }\n  .list-group-item.active .list-group-item-heading,\n  .list-group-item.active .list-group-item-heading > small,\n  .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,\n  .list-group-item.active:hover .list-group-item-heading > small,\n  .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,\n  .list-group-item.active:focus .list-group-item-heading > small,\n  .list-group-item.active:focus .list-group-item-heading > .small {\n    color: inherit; }\n  .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text {\n    color: #c7ddef; }\n\n.list-group-item-success {\n  color: #27a4b0;\n  background-color: #abe7ed; }\n\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #27a4b0; }\n  a.list-group-item-success .list-group-item-heading,\n  button.list-group-item-success .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-success:hover, a.list-group-item-success:focus,\n  button.list-group-item-success:hover,\n  button.list-group-item-success:focus {\n    color: #27a4b0;\n    background-color: #96e1e8; }\n  a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus,\n  button.list-group-item-success.active,\n  button.list-group-item-success.active:hover,\n  button.list-group-item-success.active:focus {\n    color: #fff;\n    background-color: #27a4b0;\n    border-color: #27a4b0; }\n\n.list-group-item-info {\n  color: #327ad5;\n  background-color: #e0ebf9; }\n\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #327ad5; }\n  a.list-group-item-info .list-group-item-heading,\n  button.list-group-item-info .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-info:hover, a.list-group-item-info:focus,\n  button.list-group-item-info:hover,\n  button.list-group-item-info:focus {\n    color: #327ad5;\n    background-color: #caddf4; }\n  a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus,\n  button.list-group-item-info.active,\n  button.list-group-item-info.active:hover,\n  button.list-group-item-info.active:focus {\n    color: #fff;\n    background-color: #327ad5;\n    border-color: #327ad5; }\n\n.list-group-item-warning {\n  color: #c29d0b;\n  background-color: #f9e491; }\n\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #c29d0b; }\n  a.list-group-item-warning .list-group-item-heading,\n  button.list-group-item-warning .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-warning:hover, a.list-group-item-warning:focus,\n  button.list-group-item-warning:hover,\n  button.list-group-item-warning:focus {\n    color: #c29d0b;\n    background-color: #f7de79; }\n  a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus,\n  button.list-group-item-warning.active,\n  button.list-group-item-warning.active:hover,\n  button.list-group-item-warning.active:focus {\n    color: #fff;\n    background-color: #c29d0b;\n    border-color: #c29d0b; }\n\n.list-group-item-danger {\n  color: #e73d4a;\n  background-color: #fbe1e3; }\n\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #e73d4a; }\n  a.list-group-item-danger .list-group-item-heading,\n  button.list-group-item-danger .list-group-item-heading {\n    color: inherit; }\n  a.list-group-item-danger:hover, a.list-group-item-danger:focus,\n  button.list-group-item-danger:hover,\n  button.list-group-item-danger:focus {\n    color: #e73d4a;\n    background-color: #f8cace; }\n  a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus,\n  button.list-group-item-danger.active,\n  button.list-group-item-danger.active:hover,\n  button.list-group-item-danger.active:focus {\n    color: #fff;\n    background-color: #e73d4a;\n    border-color: #e73d4a; }\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px; }\n\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3; }\n\n.panel {\n  margin-bottom: 20px;\n  background-color: #fff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n\n.panel-body {\n  padding: 15px; }\n  .panel-body:before, .panel-body:after {\n    content: \" \";\n    display: table; }\n  .panel-body:after {\n    clear: both; }\n\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px; }\n  .panel-heading > .dropdown .dropdown-toggle {\n    color: inherit; }\n\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n  color: inherit; }\n  .panel-title > a,\n  .panel-title > small,\n  .panel-title > .small,\n  .panel-title > small > a,\n  .panel-title > .small > a {\n    color: inherit; }\n\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px; }\n\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0; }\n  .panel > .list-group .list-group-item,\n  .panel > .panel-collapse > .list-group .list-group-item {\n    border-width: 1px 0;\n    border-radius: 0; }\n  .panel > .list-group:first-child .list-group-item:first-child,\n  .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n    border-top: 0;\n    border-top-right-radius: 3px;\n    border-top-left-radius: 3px; }\n  .panel > .list-group:last-child .list-group-item:last-child,\n  .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n    border-bottom: 0;\n    border-bottom-right-radius: 3px;\n    border-bottom-left-radius: 3px; }\n\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0; }\n\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0; }\n\n.list-group + .panel-footer {\n  border-top-width: 0; }\n\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0; }\n  .panel > .table caption,\n  .panel > .table-responsive > .table caption,\n  .panel > .panel-collapse > .table caption {\n    padding-left: 15px;\n    padding-right: 15px; }\n\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px; }\n  .panel > .table:first-child > thead:first-child > tr:first-child,\n  .panel > .table:first-child > tbody:first-child > tr:first-child,\n  .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n  .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n    border-top-left-radius: 3px;\n    border-top-right-radius: 3px; }\n    .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n    .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n      border-top-left-radius: 3px; }\n    .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n    .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n    .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n    .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n      border-top-right-radius: 3px; }\n\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px; }\n  .panel > .table:last-child > tbody:last-child > tr:last-child,\n  .panel > .table:last-child > tfoot:last-child > tr:last-child,\n  .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n  .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n    border-bottom-left-radius: 3px;\n    border-bottom-right-radius: 3px; }\n    .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n    .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n      border-bottom-left-radius: 3px; }\n    .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n    .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n    .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n    .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n      border-bottom-right-radius: 3px; }\n\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #e7ecf1; }\n\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0; }\n\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0; }\n  .panel > .table-bordered > thead > tr > th:first-child,\n  .panel > .table-bordered > thead > tr > td:first-child,\n  .panel > .table-bordered > tbody > tr > th:first-child,\n  .panel > .table-bordered > tbody > tr > td:first-child,\n  .panel > .table-bordered > tfoot > tr > th:first-child,\n  .panel > .table-bordered > tfoot > tr > td:first-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0; }\n  .panel > .table-bordered > thead > tr > th:last-child,\n  .panel > .table-bordered > thead > tr > td:last-child,\n  .panel > .table-bordered > tbody > tr > th:last-child,\n  .panel > .table-bordered > tbody > tr > td:last-child,\n  .panel > .table-bordered > tfoot > tr > th:last-child,\n  .panel > .table-bordered > tfoot > tr > td:last-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0; }\n  .panel > .table-bordered > thead > tr:first-child > td,\n  .panel > .table-bordered > thead > tr:first-child > th,\n  .panel > .table-bordered > tbody > tr:first-child > td,\n  .panel > .table-bordered > tbody > tr:first-child > th,\n  .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n  .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n  .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n  .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n    border-bottom: 0; }\n  .panel > .table-bordered > tbody > tr:last-child > td,\n  .panel > .table-bordered > tbody > tr:last-child > th,\n  .panel > .table-bordered > tfoot > tr:last-child > td,\n  .panel > .table-bordered > tfoot > tr:last-child > th,\n  .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n  .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n    border-bottom: 0; }\n\n.panel > .table-responsive {\n  border: 0;\n  margin-bottom: 0; }\n\n.panel-group {\n  margin-bottom: 20px; }\n  .panel-group .panel {\n    margin-bottom: 0;\n    border-radius: 4px; }\n    .panel-group .panel + .panel {\n      margin-top: 5px; }\n  .panel-group .panel-heading {\n    border-bottom: 0; }\n    .panel-group .panel-heading + .panel-collapse > .panel-body,\n    .panel-group .panel-heading + .panel-collapse > .list-group {\n      border-top: 1px solid #ddd; }\n  .panel-group .panel-footer {\n    border-top: 0; }\n    .panel-group .panel-footer + .panel-collapse .panel-body {\n      border-bottom: 1px solid #ddd; }\n\n.panel-default {\n  border-color: #ddd; }\n  .panel-default > .panel-heading {\n    color: #333333;\n    background-color: #f5f5f5;\n    border-color: #ddd; }\n    .panel-default > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #ddd; }\n    .panel-default > .panel-heading .badge {\n      color: #f5f5f5;\n      background-color: #333333; }\n  .panel-default > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #ddd; }\n\n.panel-primary {\n  border-color: #337ab7; }\n  .panel-primary > .panel-heading {\n    color: #fff;\n    background-color: #337ab7;\n    border-color: #337ab7; }\n    .panel-primary > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #337ab7; }\n    .panel-primary > .panel-heading .badge {\n      color: #337ab7;\n      background-color: #fff; }\n  .panel-primary > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #337ab7; }\n\n.panel-success {\n  border-color: #abe7ed; }\n  .panel-success > .panel-heading {\n    color: #27a4b0;\n    background-color: #abe7ed;\n    border-color: #abe7ed; }\n    .panel-success > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #abe7ed; }\n    .panel-success > .panel-heading .badge {\n      color: #abe7ed;\n      background-color: #27a4b0; }\n  .panel-success > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #abe7ed; }\n\n.panel-info {\n  border-color: #e0ebf9; }\n  .panel-info > .panel-heading {\n    color: #327ad5;\n    background-color: #e0ebf9;\n    border-color: #e0ebf9; }\n    .panel-info > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #e0ebf9; }\n    .panel-info > .panel-heading .badge {\n      color: #e0ebf9;\n      background-color: #327ad5; }\n  .panel-info > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #e0ebf9; }\n\n.panel-warning {\n  border-color: #f9e491; }\n  .panel-warning > .panel-heading {\n    color: #c29d0b;\n    background-color: #f9e491;\n    border-color: #f9e491; }\n    .panel-warning > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #f9e491; }\n    .panel-warning > .panel-heading .badge {\n      color: #f9e491;\n      background-color: #c29d0b; }\n  .panel-warning > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #f9e491; }\n\n.panel-danger {\n  border-color: #fbe1e3; }\n  .panel-danger > .panel-heading {\n    color: #e73d4a;\n    background-color: #fbe1e3;\n    border-color: #fbe1e3; }\n    .panel-danger > .panel-heading + .panel-collapse > .panel-body {\n      border-top-color: #fbe1e3; }\n    .panel-danger > .panel-heading .badge {\n      color: #fbe1e3;\n      background-color: #e73d4a; }\n  .panel-danger > .panel-footer + .panel-collapse > .panel-body {\n    border-bottom-color: #fbe1e3; }\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden; }\n  .embed-responsive .embed-responsive-item,\n  .embed-responsive iframe,\n  .embed-responsive embed,\n  .embed-responsive object,\n  .embed-responsive video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    height: 100%;\n    width: 100%;\n    border: 0; }\n\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%; }\n\n.embed-responsive-4by3 {\n  padding-bottom: 75%; }\n\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f1f4f7;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }\n  .well blockquote {\n    border-color: #ddd;\n    border-color: rgba(0, 0, 0, 0.15); }\n\n.well-lg {\n  padding: 24px;\n  border-radius: 6px; }\n\n.well-sm {\n  padding: 9px;\n  border-radius: 3px; }\n\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: 0.2;\n  filter: alpha(opacity=20); }\n  .close:hover, .close:focus {\n    color: #000;\n    text-decoration: none;\n    cursor: pointer;\n    opacity: 0.5;\n    filter: alpha(opacity=50); }\n\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none; }\n\n.modal-open {\n  overflow: hidden; }\n\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 10050;\n  -webkit-overflow-scrolling: touch;\n  outline: 0; }\n  .modal.fade .modal-dialog {\n    -webkit-transform: translate(0, -25%);\n    -ms-transform: translate(0, -25%);\n    -o-transform: translate(0, -25%);\n    transform: translate(0, -25%);\n    -webkit-transition: -webkit-transform 0.3s ease-out;\n    -moz-transition: -moz-transform 0.3s ease-out;\n    -o-transition: -o-transform 0.3s ease-out;\n    transition: transform 0.3s ease-out; }\n  .modal.in .modal-dialog {\n    -webkit-transform: translate(0, 0);\n    -ms-transform: translate(0, 0);\n    -o-transform: translate(0, 0);\n    transform: translate(0, 0); }\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto; }\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px; }\n\n.modal-content {\n  position: relative;\n  background-color: #fff;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n  outline: 0; }\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 10049;\n  background-color: #000; }\n  .modal-backdrop.fade {\n    opacity: 0;\n    filter: alpha(opacity=0); }\n  .modal-backdrop.in {\n    opacity: 0.5;\n    filter: alpha(opacity=50); }\n\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5; }\n  .modal-header:before, .modal-header:after {\n    content: \" \";\n    display: table; }\n  .modal-header:after {\n    clear: both; }\n\n.modal-header .close {\n  margin-top: -2px; }\n\n.modal-title {\n  margin: 0;\n  line-height: 1.42857; }\n\n.modal-body {\n  position: relative;\n  padding: 15px; }\n\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5; }\n  .modal-footer:before, .modal-footer:after {\n    content: \" \";\n    display: table; }\n  .modal-footer:after {\n    clear: both; }\n  .modal-footer .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; }\n  .modal-footer .btn-group .btn + .btn {\n    margin-left: -1px; }\n  .modal-footer .btn-block + .btn-block {\n    margin-left: 0; }\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll; }\n\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto; }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }\n  .modal-sm {\n    width: 300px; } }\n\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px; } }\n\n.tooltip {\n  position: absolute;\n  z-index: 1030;\n  display: block;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 12px;\n  opacity: 0;\n  filter: alpha(opacity=0); }\n  .tooltip.in {\n    opacity: 0.9;\n    filter: alpha(opacity=90); }\n  .tooltip.top {\n    margin-top: -3px;\n    padding: 5px 0; }\n  .tooltip.right {\n    margin-left: 3px;\n    padding: 0 5px; }\n  .tooltip.bottom {\n    margin-top: 3px;\n    padding: 5px 0; }\n  .tooltip.left {\n    margin-left: -3px;\n    padding: 0 5px; }\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 4px; }\n\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid; }\n\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000; }\n\n.tooltip.top-left .tooltip-arrow {\n  bottom: 0;\n  right: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000; }\n\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000; }\n\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0/*rtl:ignore*/;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0/*rtl:ignore*/;\n  border-right-color: #000/*rtl:ignore*/; }\n\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0/*rtl:ignore*/;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px/*rtl:ignore*/;\n  border-left-color: #000/*rtl:ignore*/; }\n\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000; }\n\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000; }\n\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000; }\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0/*rtl:ignore*/;\n  z-index: 1010;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 14px;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }\n  .popover.top {\n    margin-top: -10px; }\n  .popover.right {\n    margin-left: 10px/*rtl:ignore*/; }\n  .popover.bottom {\n    margin-top: 10px; }\n  .popover.left {\n    margin-left: -10px/*rtl:ignore*/; }\n\n.popover-title {\n  margin: 0;\n  padding: 8px 14px;\n  font-size: 14px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0; }\n\n.popover-content {\n  padding: 9px 14px; }\n\n.popover > .arrow, .popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid; }\n\n.popover > .arrow {\n  border-width: 11px; }\n\n.popover > .arrow:after {\n  border-width: 10px;\n  content: \"\"; }\n\n.popover.top > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-width: 0;\n  border-top-color: #999999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  bottom: -11px; }\n  .popover.top > .arrow:after {\n    content: \" \";\n    bottom: 1px;\n    margin-left: -10px;\n    border-bottom-width: 0;\n    border-top-color: #fff; }\n\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px/*rtl:ignore*/;\n  margin-top: -11px;\n  border-left-width: 0/*rtl:ignore*/;\n  border-right-color: #999999/*rtl:ignore*/;\n  border-right-color: rgba(0, 0, 0, 0.25)/*rtl:ignore*/; }\n  .popover.right > .arrow:after {\n    content: \" \";\n    left: 1px/*rtl:ignore*/;\n    bottom: -10px;\n    border-left-width: 0/*rtl:ignore*/;\n    border-right-color: #fff/*rtl:ignore*/; }\n\n.popover.bottom > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  top: -11px; }\n  .popover.bottom > .arrow:after {\n    content: \" \";\n    top: 1px;\n    margin-left: -10px;\n    border-top-width: 0;\n    border-bottom-color: #fff; }\n\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px/*rtl:ignore*/;\n  margin-top: -11px;\n  border-right-width: 0/*rtl:ignore*/;\n  border-left-color: #999999/*rtl:ignore*/;\n  border-left-color: rgba(0, 0, 0, 0.25)/*rtl:ignore*/; }\n  .popover.left > .arrow:after {\n    content: \" \";\n    right: 1px/*rtl:ignore*/;\n    border-right-width: 0/*rtl:ignore*/;\n    border-left-color: #fff/*rtl:ignore*/;\n    bottom: -10px; }\n\n.carousel {\n  position: relative; }\n\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%; }\n  .carousel-inner > .item {\n    display: none;\n    position: relative;\n    -webkit-transition: 0.6s ease-in-out left;\n    -o-transition: 0.6s ease-in-out left;\n    transition: 0.6s ease-in-out left; }\n    .carousel-inner > .item > img,\n    .carousel-inner > .item > a > img {\n      display: block;\n      max-width: 100%;\n      height: auto;\n      line-height: 1; }\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      .carousel-inner > .item {\n        -webkit-transition: -webkit-transform 0.6s ease-in-out;\n        -moz-transition: -moz-transform 0.6s ease-in-out;\n        -o-transition: -o-transform 0.6s ease-in-out;\n        transition: transform 0.6s ease-in-out;\n        -webkit-backface-visibility: hidden;\n        -moz-backface-visibility: hidden;\n        backface-visibility: hidden;\n        -webkit-perspective: 1000px;\n        -moz-perspective: 1000px;\n        perspective: 1000px; }\n        .carousel-inner > .item.next, .carousel-inner > .item.active.right {\n          -webkit-transform: translate3d(100%, 0, 0);\n          transform: translate3d(100%, 0, 0);\n          left: 0; }\n        .carousel-inner > .item.prev, .carousel-inner > .item.active.left {\n          -webkit-transform: translate3d(-100%, 0, 0);\n          transform: translate3d(-100%, 0, 0);\n          left: 0; }\n        .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active {\n          -webkit-transform: translate3d(0, 0, 0);\n          transform: translate3d(0, 0, 0);\n          left: 0; } }\n  .carousel-inner > .active,\n  .carousel-inner > .next,\n  .carousel-inner > .prev {\n    display: block; }\n  .carousel-inner > .active {\n    left: 0; }\n  .carousel-inner > .next,\n  .carousel-inner > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%; }\n  .carousel-inner > .next {\n    left: 100%; }\n  .carousel-inner > .prev {\n    left: -100%; }\n  .carousel-inner > .next.left,\n  .carousel-inner > .prev.right {\n    left: 0; }\n  .carousel-inner > .active.left {\n    left: -100%; }\n  .carousel-inner > .active.right {\n    left: 100%; }\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: 15%;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  font-size: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n  background-color: transparent; }\n  .carousel-control.left {\n    background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n    background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }\n  .carousel-control.right {\n    left: auto;\n    right: 0;\n    background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n    background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }\n  .carousel-control:hover, .carousel-control:focus {\n    outline: 0;\n    color: #fff;\n    text-decoration: none;\n    opacity: 0.9;\n    filter: alpha(opacity=90); }\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next,\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    margin-top: -10px;\n    z-index: 5;\n    display: inline-block; }\n  .carousel-control .icon-prev,\n  .carousel-control .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px; }\n  .carousel-control .icon-next,\n  .carousel-control .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px; }\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 20px;\n    height: 20px;\n    line-height: 1;\n    font-family: serif; }\n  .carousel-control .icon-prev:before {\n    content: '\\2039'; }\n  .carousel-control .icon-next:before {\n    content: '\\203a'; }\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center; }\n  .carousel-indicators li {\n    display: inline-block;\n    width: 10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    border: 1px solid #fff;\n    border-radius: 10px;\n    cursor: pointer;\n    background-color: #000 \\9;\n    background-color: transparent; }\n  .carousel-indicators .active {\n    margin: 0;\n    width: 12px;\n    height: 12px;\n    background-color: #fff; }\n\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }\n  .carousel-caption .btn {\n    text-shadow: none; }\n\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -10px;\n    font-size: 30px; }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -10px; }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -10px; }\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px; }\n  .carousel-indicators {\n    bottom: 20px; } }\n\n.clearfix:before, .clearfix:after {\n  content: \" \";\n  display: table; }\n\n.clearfix:after {\n  clear: both; }\n\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto; }\n\n.pull-right {\n  float: right !important; }\n\n.pull-left {\n  float: left !important; }\n\n.hide {\n  display: none !important; }\n\n.show {\n  display: block !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0; }\n\n.hidden {\n  display: none !important; }\n\n.affix {\n  position: fixed; }\n\n@-ms-viewport {\n  width: device-width; }\n\n.visible-xs {\n  display: none !important; }\n\n.visible-sm {\n  display: none !important; }\n\n.visible-md {\n  display: none !important; }\n\n.visible-lg {\n  display: none !important; }\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important; }\n\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important; }\n  table.visible-xs {\n    display: table !important; }\n  tr.visible-xs {\n    display: table-row !important; }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important; } }\n\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important; } }\n\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important; } }\n\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important; }\n  table.visible-sm {\n    display: table !important; }\n  tr.visible-sm {\n    display: table-row !important; }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important; }\n  table.visible-md {\n    display: table !important; }\n  tr.visible-md {\n    display: table-row !important; }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important; }\n  table.visible-lg {\n    display: table !important; }\n  tr.visible-lg {\n    display: table-row !important; }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important; } }\n\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important; } }\n\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important; } }\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important; } }\n\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important; } }\n\n.visible-print {\n  display: none !important; }\n\n@media print {\n  .visible-print {\n    display: block !important; }\n  table.visible-print {\n    display: table !important; }\n  tr.visible-print {\n    display: table-row !important; }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important; } }\n\n.visible-print-block {\n  display: none !important; }\n  @media print {\n    .visible-print-block {\n      display: block !important; } }\n\n.visible-print-inline {\n  display: none !important; }\n  @media print {\n    .visible-print-inline {\n      display: inline !important; } }\n\n.visible-print-inline-block {\n  display: none !important; }\n  @media print {\n    .visible-print-inline-block {\n      display: inline-block !important; } }\n\n@media print {\n  .hidden-print {\n    display: none !important; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap/js/bootstrap.js",
    "content": "/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n  'use strict';\n  var version = $.fn.jquery.split(' ')[0].split('.')\n  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')\n  }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.6\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n  // ============================================================\n\n  function transitionEnd() {\n    var el = document.createElement('bootstrap')\n\n    var transEndEventNames = {\n      WebkitTransition : 'webkitTransitionEnd',\n      MozTransition    : 'transitionend',\n      OTransition      : 'oTransitionEnd otransitionend',\n      transition       : 'transitionend'\n    }\n\n    for (var name in transEndEventNames) {\n      if (el.style[name] !== undefined) {\n        return { end: transEndEventNames[name] }\n      }\n    }\n\n    return false // explicit for ie8 (  ._.)\n  }\n\n  // http://blog.alexmaccaw.com/css-transitions\n  $.fn.emulateTransitionEnd = function (duration) {\n    var called = false\n    var $el = this\n    $(this).one('bsTransitionEnd', function () { called = true })\n    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n    setTimeout(callback, duration)\n    return this\n  }\n\n  $(function () {\n    $.support.transition = transitionEnd()\n\n    if (!$.support.transition) return\n\n    $.event.special.bsTransitionEnd = {\n      bindType: $.support.transition.end,\n      delegateType: $.support.transition.end,\n      handle: function (e) {\n        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n      }\n    }\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.6\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // ALERT CLASS DEFINITION\n  // ======================\n\n  var dismiss = '[data-dismiss=\"alert\"]'\n  var Alert   = function (el) {\n    $(el).on('click', dismiss, this.close)\n  }\n\n  Alert.VERSION = '3.3.6'\n\n  Alert.TRANSITION_DURATION = 150\n\n  Alert.prototype.close = function (e) {\n    var $this    = $(this)\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = $(selector)\n\n    if (e) e.preventDefault()\n\n    if (!$parent.length) {\n      $parent = $this.closest('.alert')\n    }\n\n    $parent.trigger(e = $.Event('close.bs.alert'))\n\n    if (e.isDefaultPrevented()) return\n\n    $parent.removeClass('in')\n\n    function removeElement() {\n      // detach from parent, fire event then clean up data\n      $parent.detach().trigger('closed.bs.alert').remove()\n    }\n\n    $.support.transition && $parent.hasClass('fade') ?\n      $parent\n        .one('bsTransitionEnd', removeElement)\n        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n      removeElement()\n  }\n\n\n  // ALERT PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.alert')\n\n      if (!data) $this.data('bs.alert', (data = new Alert(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.alert\n\n  $.fn.alert             = Plugin\n  $.fn.alert.Constructor = Alert\n\n\n  // ALERT NO CONFLICT\n  // =================\n\n  $.fn.alert.noConflict = function () {\n    $.fn.alert = old\n    return this\n  }\n\n\n  // ALERT DATA-API\n  // ==============\n\n  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.6\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // BUTTON PUBLIC CLASS DEFINITION\n  // ==============================\n\n  var Button = function (element, options) {\n    this.$element  = $(element)\n    this.options   = $.extend({}, Button.DEFAULTS, options)\n    this.isLoading = false\n  }\n\n  Button.VERSION  = '3.3.6'\n\n  Button.DEFAULTS = {\n    loadingText: 'loading...'\n  }\n\n  Button.prototype.setState = function (state) {\n    var d    = 'disabled'\n    var $el  = this.$element\n    var val  = $el.is('input') ? 'val' : 'html'\n    var data = $el.data()\n\n    state += 'Text'\n\n    if (data.resetText == null) $el.data('resetText', $el[val]())\n\n    // push to event loop to allow forms to submit\n    setTimeout($.proxy(function () {\n      $el[val](data[state] == null ? this.options[state] : data[state])\n\n      if (state == 'loadingText') {\n        this.isLoading = true\n        $el.addClass(d).attr(d, d)\n      } else if (this.isLoading) {\n        this.isLoading = false\n        $el.removeClass(d).removeAttr(d)\n      }\n    }, this), 0)\n  }\n\n  Button.prototype.toggle = function () {\n    var changed = true\n    var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n    if ($parent.length) {\n      var $input = this.$element.find('input')\n      if ($input.prop('type') == 'radio') {\n        if ($input.prop('checked')) changed = false\n        $parent.find('.active').removeClass('active')\n        this.$element.addClass('active')\n      } else if ($input.prop('type') == 'checkbox') {\n        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n        this.$element.toggleClass('active')\n      }\n      $input.prop('checked', this.$element.hasClass('active'))\n      if (changed) $input.trigger('change')\n    } else {\n      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n      this.$element.toggleClass('active')\n    }\n  }\n\n\n  // BUTTON PLUGIN DEFINITION\n  // ========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.button')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n      if (option == 'toggle') data.toggle()\n      else if (option) data.setState(option)\n    })\n  }\n\n  var old = $.fn.button\n\n  $.fn.button             = Plugin\n  $.fn.button.Constructor = Button\n\n\n  // BUTTON NO CONFLICT\n  // ==================\n\n  $.fn.button.noConflict = function () {\n    $.fn.button = old\n    return this\n  }\n\n\n  // BUTTON DATA-API\n  // ===============\n\n  $(document)\n    .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      var $btn = $(e.target)\n      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n      Plugin.call($btn, 'toggle')\n      if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n    })\n    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n    })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.6\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CAROUSEL CLASS DEFINITION\n  // =========================\n\n  var Carousel = function (element, options) {\n    this.$element    = $(element)\n    this.$indicators = this.$element.find('.carousel-indicators')\n    this.options     = options\n    this.paused      = null\n    this.sliding     = null\n    this.interval    = null\n    this.$active     = null\n    this.$items      = null\n\n    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n  }\n\n  Carousel.VERSION  = '3.3.6'\n\n  Carousel.TRANSITION_DURATION = 600\n\n  Carousel.DEFAULTS = {\n    interval: 5000,\n    pause: 'hover',\n    wrap: true,\n    keyboard: true\n  }\n\n  Carousel.prototype.keydown = function (e) {\n    if (/input|textarea/i.test(e.target.tagName)) return\n    switch (e.which) {\n      case 37: this.prev(); break\n      case 39: this.next(); break\n      default: return\n    }\n\n    e.preventDefault()\n  }\n\n  Carousel.prototype.cycle = function (e) {\n    e || (this.paused = false)\n\n    this.interval && clearInterval(this.interval)\n\n    this.options.interval\n      && !this.paused\n      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n    return this\n  }\n\n  Carousel.prototype.getItemIndex = function (item) {\n    this.$items = item.parent().children('.item')\n    return this.$items.index(item || this.$active)\n  }\n\n  Carousel.prototype.getItemForDirection = function (direction, active) {\n    var activeIndex = this.getItemIndex(active)\n    var willWrap = (direction == 'prev' && activeIndex === 0)\n                || (direction == 'next' && activeIndex == (this.$items.length - 1))\n    if (willWrap && !this.options.wrap) return active\n    var delta = direction == 'prev' ? -1 : 1\n    var itemIndex = (activeIndex + delta) % this.$items.length\n    return this.$items.eq(itemIndex)\n  }\n\n  Carousel.prototype.to = function (pos) {\n    var that        = this\n    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n    if (pos > (this.$items.length - 1) || pos < 0) return\n\n    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n    if (activeIndex == pos) return this.pause().cycle()\n\n    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n  }\n\n  Carousel.prototype.pause = function (e) {\n    e || (this.paused = true)\n\n    if (this.$element.find('.next, .prev').length && $.support.transition) {\n      this.$element.trigger($.support.transition.end)\n      this.cycle(true)\n    }\n\n    this.interval = clearInterval(this.interval)\n\n    return this\n  }\n\n  Carousel.prototype.next = function () {\n    if (this.sliding) return\n    return this.slide('next')\n  }\n\n  Carousel.prototype.prev = function () {\n    if (this.sliding) return\n    return this.slide('prev')\n  }\n\n  Carousel.prototype.slide = function (type, next) {\n    var $active   = this.$element.find('.item.active')\n    var $next     = next || this.getItemForDirection(type, $active)\n    var isCycling = this.interval\n    var direction = type == 'next' ? 'left' : 'right'\n    var that      = this\n\n    if ($next.hasClass('active')) return (this.sliding = false)\n\n    var relatedTarget = $next[0]\n    var slideEvent = $.Event('slide.bs.carousel', {\n      relatedTarget: relatedTarget,\n      direction: direction\n    })\n    this.$element.trigger(slideEvent)\n    if (slideEvent.isDefaultPrevented()) return\n\n    this.sliding = true\n\n    isCycling && this.pause()\n\n    if (this.$indicators.length) {\n      this.$indicators.find('.active').removeClass('active')\n      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n      $nextIndicator && $nextIndicator.addClass('active')\n    }\n\n    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n    if ($.support.transition && this.$element.hasClass('slide')) {\n      $next.addClass(type)\n      $next[0].offsetWidth // force reflow\n      $active.addClass(direction)\n      $next.addClass(direction)\n      $active\n        .one('bsTransitionEnd', function () {\n          $next.removeClass([type, direction].join(' ')).addClass('active')\n          $active.removeClass(['active', direction].join(' '))\n          that.sliding = false\n          setTimeout(function () {\n            that.$element.trigger(slidEvent)\n          }, 0)\n        })\n        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n    } else {\n      $active.removeClass('active')\n      $next.addClass('active')\n      this.sliding = false\n      this.$element.trigger(slidEvent)\n    }\n\n    isCycling && this.cycle()\n\n    return this\n  }\n\n\n  // CAROUSEL PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.carousel')\n      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n      var action  = typeof option == 'string' ? option : options.slide\n\n      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n      if (typeof option == 'number') data.to(option)\n      else if (action) data[action]()\n      else if (options.interval) data.pause().cycle()\n    })\n  }\n\n  var old = $.fn.carousel\n\n  $.fn.carousel             = Plugin\n  $.fn.carousel.Constructor = Carousel\n\n\n  // CAROUSEL NO CONFLICT\n  // ====================\n\n  $.fn.carousel.noConflict = function () {\n    $.fn.carousel = old\n    return this\n  }\n\n\n  // CAROUSEL DATA-API\n  // =================\n\n  var clickHandler = function (e) {\n    var href\n    var $this   = $(this)\n    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n    if (!$target.hasClass('carousel')) return\n    var options = $.extend({}, $target.data(), $this.data())\n    var slideIndex = $this.attr('data-slide-to')\n    if (slideIndex) options.interval = false\n\n    Plugin.call($target, options)\n\n    if (slideIndex) {\n      $target.data('bs.carousel').to(slideIndex)\n    }\n\n    e.preventDefault()\n  }\n\n  $(document)\n    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n  $(window).on('load', function () {\n    $('[data-ride=\"carousel\"]').each(function () {\n      var $carousel = $(this)\n      Plugin.call($carousel, $carousel.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.6\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // COLLAPSE PUBLIC CLASS DEFINITION\n  // ================================\n\n  var Collapse = function (element, options) {\n    this.$element      = $(element)\n    this.options       = $.extend({}, Collapse.DEFAULTS, options)\n    this.$trigger      = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n                           '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n    this.transitioning = null\n\n    if (this.options.parent) {\n      this.$parent = this.getParent()\n    } else {\n      this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n    }\n\n    if (this.options.toggle) this.toggle()\n  }\n\n  Collapse.VERSION  = '3.3.6'\n\n  Collapse.TRANSITION_DURATION = 350\n\n  Collapse.DEFAULTS = {\n    toggle: true\n  }\n\n  Collapse.prototype.dimension = function () {\n    var hasWidth = this.$element.hasClass('width')\n    return hasWidth ? 'width' : 'height'\n  }\n\n  Collapse.prototype.show = function () {\n    if (this.transitioning || this.$element.hasClass('in')) return\n\n    var activesData\n    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n    if (actives && actives.length) {\n      activesData = actives.data('bs.collapse')\n      if (activesData && activesData.transitioning) return\n    }\n\n    var startEvent = $.Event('show.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    if (actives && actives.length) {\n      Plugin.call(actives, 'hide')\n      activesData || actives.data('bs.collapse', null)\n    }\n\n    var dimension = this.dimension()\n\n    this.$element\n      .removeClass('collapse')\n      .addClass('collapsing')[dimension](0)\n      .attr('aria-expanded', true)\n\n    this.$trigger\n      .removeClass('collapsed')\n      .attr('aria-expanded', true)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse in')[dimension]('')\n      this.transitioning = 0\n      this.$element\n        .trigger('shown.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n    this.$element\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n  }\n\n  Collapse.prototype.hide = function () {\n    if (this.transitioning || !this.$element.hasClass('in')) return\n\n    var startEvent = $.Event('hide.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    var dimension = this.dimension()\n\n    this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n    this.$element\n      .addClass('collapsing')\n      .removeClass('collapse in')\n      .attr('aria-expanded', false)\n\n    this.$trigger\n      .addClass('collapsed')\n      .attr('aria-expanded', false)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.transitioning = 0\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse')\n        .trigger('hidden.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    this.$element\n      [dimension](0)\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n  }\n\n  Collapse.prototype.toggle = function () {\n    this[this.$element.hasClass('in') ? 'hide' : 'show']()\n  }\n\n  Collapse.prototype.getParent = function () {\n    return $(this.options.parent)\n      .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n      .each($.proxy(function (i, element) {\n        var $element = $(element)\n        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n      }, this))\n      .end()\n  }\n\n  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n    var isOpen = $element.hasClass('in')\n\n    $element.attr('aria-expanded', isOpen)\n    $trigger\n      .toggleClass('collapsed', !isOpen)\n      .attr('aria-expanded', isOpen)\n  }\n\n  function getTargetFromTrigger($trigger) {\n    var href\n    var target = $trigger.attr('data-target')\n      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n    return $(target)\n  }\n\n\n  // COLLAPSE PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.collapse')\n      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.collapse\n\n  $.fn.collapse             = Plugin\n  $.fn.collapse.Constructor = Collapse\n\n\n  // COLLAPSE NO CONFLICT\n  // ====================\n\n  $.fn.collapse.noConflict = function () {\n    $.fn.collapse = old\n    return this\n  }\n\n\n  // COLLAPSE DATA-API\n  // =================\n\n  $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n    var $this   = $(this)\n\n    if (!$this.attr('data-target')) e.preventDefault()\n\n    var $target = getTargetFromTrigger($this)\n    var data    = $target.data('bs.collapse')\n    var option  = data ? 'toggle' : $this.data()\n\n    Plugin.call($target, option)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.6\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // DROPDOWN CLASS DEFINITION\n  // =========================\n\n  var backdrop = '.dropdown-backdrop'\n  var toggle   = '[data-toggle=\"dropdown\"]'\n  var Dropdown = function (element) {\n    $(element).on('click.bs.dropdown', this.toggle)\n  }\n\n  Dropdown.VERSION = '3.3.6'\n\n  function getParent($this) {\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = selector && $(selector)\n\n    return $parent && $parent.length ? $parent : $this.parent()\n  }\n\n  function clearMenus(e) {\n    if (e && e.which === 3) return\n    $(backdrop).remove()\n    $(toggle).each(function () {\n      var $this         = $(this)\n      var $parent       = getParent($this)\n      var relatedTarget = { relatedTarget: this }\n\n      if (!$parent.hasClass('open')) return\n\n      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this.attr('aria-expanded', 'false')\n      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n    })\n  }\n\n  Dropdown.prototype.toggle = function (e) {\n    var $this = $(this)\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    clearMenus()\n\n    if (!isActive) {\n      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n        // if mobile we use a backdrop because click events don't delegate\n        $(document.createElement('div'))\n          .addClass('dropdown-backdrop')\n          .insertAfter($(this))\n          .on('click', clearMenus)\n      }\n\n      var relatedTarget = { relatedTarget: this }\n      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this\n        .trigger('focus')\n        .attr('aria-expanded', 'true')\n\n      $parent\n        .toggleClass('open')\n        .trigger($.Event('shown.bs.dropdown', relatedTarget))\n    }\n\n    return false\n  }\n\n  Dropdown.prototype.keydown = function (e) {\n    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n    var $this = $(this)\n\n    e.preventDefault()\n    e.stopPropagation()\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    if (!isActive && e.which != 27 || isActive && e.which == 27) {\n      if (e.which == 27) $parent.find(toggle).trigger('focus')\n      return $this.trigger('click')\n    }\n\n    var desc = ' li:not(.disabled):visible a'\n    var $items = $parent.find('.dropdown-menu' + desc)\n\n    if (!$items.length) return\n\n    var index = $items.index(e.target)\n\n    if (e.which == 38 && index > 0)                 index--         // up\n    if (e.which == 40 && index < $items.length - 1) index++         // down\n    if (!~index)                                    index = 0\n\n    $items.eq(index).trigger('focus')\n  }\n\n\n  // DROPDOWN PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.dropdown')\n\n      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.dropdown\n\n  $.fn.dropdown             = Plugin\n  $.fn.dropdown.Constructor = Dropdown\n\n\n  // DROPDOWN NO CONFLICT\n  // ====================\n\n  $.fn.dropdown.noConflict = function () {\n    $.fn.dropdown = old\n    return this\n  }\n\n\n  // APPLY TO STANDARD DROPDOWN ELEMENTS\n  // ===================================\n\n  $(document)\n    .on('click.bs.dropdown.data-api', clearMenus)\n    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.6\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // MODAL CLASS DEFINITION\n  // ======================\n\n  var Modal = function (element, options) {\n    this.options             = options\n    this.$body               = $(document.body)\n    this.$element            = $(element)\n    this.$dialog             = this.$element.find('.modal-dialog')\n    this.$backdrop           = null\n    this.isShown             = null\n    this.originalBodyPad     = null\n    this.scrollbarWidth      = 0\n    this.ignoreBackdropClick = false\n\n    if (this.options.remote) {\n      this.$element\n        .find('.modal-content')\n        .load(this.options.remote, $.proxy(function () {\n          this.$element.trigger('loaded.bs.modal')\n        }, this))\n    }\n  }\n\n  Modal.VERSION  = '3.3.6'\n\n  Modal.TRANSITION_DURATION = 300\n  Modal.BACKDROP_TRANSITION_DURATION = 150\n\n  Modal.DEFAULTS = {\n    backdrop: true,\n    keyboard: true,\n    show: true\n  }\n\n  Modal.prototype.toggle = function (_relatedTarget) {\n    return this.isShown ? this.hide() : this.show(_relatedTarget)\n  }\n\n  Modal.prototype.show = function (_relatedTarget) {\n    var that = this\n    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n    this.$element.trigger(e)\n\n    if (this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = true\n\n    this.checkScrollbar()\n    this.setScrollbar()\n    this.$body.addClass('modal-open')\n\n    this.escape()\n    this.resize()\n\n    this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n    this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n      that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n      })\n    })\n\n    this.backdrop(function () {\n      var transition = $.support.transition && that.$element.hasClass('fade')\n\n      if (!that.$element.parent().length) {\n        that.$element.appendTo(that.$body) // don't move modals dom position\n      }\n\n      that.$element\n        .show()\n        .scrollTop(0)\n\n      that.adjustDialog()\n\n      if (transition) {\n        that.$element[0].offsetWidth // force reflow\n      }\n\n      that.$element.addClass('in')\n\n      that.enforceFocus()\n\n      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n      transition ?\n        that.$dialog // wait for modal to slide in\n          .one('bsTransitionEnd', function () {\n            that.$element.trigger('focus').trigger(e)\n          })\n          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n        that.$element.trigger('focus').trigger(e)\n    })\n  }\n\n  Modal.prototype.hide = function (e) {\n    if (e) e.preventDefault()\n\n    e = $.Event('hide.bs.modal')\n\n    this.$element.trigger(e)\n\n    if (!this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = false\n\n    this.escape()\n    this.resize()\n\n    $(document).off('focusin.bs.modal')\n\n    this.$element\n      .removeClass('in')\n      .off('click.dismiss.bs.modal')\n      .off('mouseup.dismiss.bs.modal')\n\n    this.$dialog.off('mousedown.dismiss.bs.modal')\n\n    $.support.transition && this.$element.hasClass('fade') ?\n      this.$element\n        .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n      this.hideModal()\n  }\n\n  Modal.prototype.enforceFocus = function () {\n    $(document)\n      .off('focusin.bs.modal') // guard against infinite focus loop\n      .on('focusin.bs.modal', $.proxy(function (e) {\n        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n          this.$element.trigger('focus')\n        }\n      }, this))\n  }\n\n  Modal.prototype.escape = function () {\n    if (this.isShown && this.options.keyboard) {\n      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n        e.which == 27 && this.hide()\n      }, this))\n    } else if (!this.isShown) {\n      this.$element.off('keydown.dismiss.bs.modal')\n    }\n  }\n\n  Modal.prototype.resize = function () {\n    if (this.isShown) {\n      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n    } else {\n      $(window).off('resize.bs.modal')\n    }\n  }\n\n  Modal.prototype.hideModal = function () {\n    var that = this\n    this.$element.hide()\n    this.backdrop(function () {\n      that.$body.removeClass('modal-open')\n      that.resetAdjustments()\n      that.resetScrollbar()\n      that.$element.trigger('hidden.bs.modal')\n    })\n  }\n\n  Modal.prototype.removeBackdrop = function () {\n    this.$backdrop && this.$backdrop.remove()\n    this.$backdrop = null\n  }\n\n  Modal.prototype.backdrop = function (callback) {\n    var that = this\n    var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n    if (this.isShown && this.options.backdrop) {\n      var doAnimate = $.support.transition && animate\n\n      this.$backdrop = $(document.createElement('div'))\n        .addClass('modal-backdrop ' + animate)\n        .appendTo(this.$body)\n\n      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n        if (this.ignoreBackdropClick) {\n          this.ignoreBackdropClick = false\n          return\n        }\n        if (e.target !== e.currentTarget) return\n        this.options.backdrop == 'static'\n          ? this.$element[0].focus()\n          : this.hide()\n      }, this))\n\n      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n      this.$backdrop.addClass('in')\n\n      if (!callback) return\n\n      doAnimate ?\n        this.$backdrop\n          .one('bsTransitionEnd', callback)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callback()\n\n    } else if (!this.isShown && this.$backdrop) {\n      this.$backdrop.removeClass('in')\n\n      var callbackRemove = function () {\n        that.removeBackdrop()\n        callback && callback()\n      }\n      $.support.transition && this.$element.hasClass('fade') ?\n        this.$backdrop\n          .one('bsTransitionEnd', callbackRemove)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callbackRemove()\n\n    } else if (callback) {\n      callback()\n    }\n  }\n\n  // these following methods are used to handle overflowing modals\n\n  Modal.prototype.handleUpdate = function () {\n    this.adjustDialog()\n  }\n\n  Modal.prototype.adjustDialog = function () {\n    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n    this.$element.css({\n      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n    })\n  }\n\n  Modal.prototype.resetAdjustments = function () {\n    this.$element.css({\n      paddingLeft: '',\n      paddingRight: ''\n    })\n  }\n\n  Modal.prototype.checkScrollbar = function () {\n    var fullWindowWidth = window.innerWidth\n    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n      var documentElementRect = document.documentElement.getBoundingClientRect()\n      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n    }\n    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n    this.scrollbarWidth = this.measureScrollbar()\n  }\n\n  Modal.prototype.setScrollbar = function () {\n    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n    this.originalBodyPad = document.body.style.paddingRight || ''\n    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n  }\n\n  Modal.prototype.resetScrollbar = function () {\n    this.$body.css('padding-right', this.originalBodyPad)\n  }\n\n  Modal.prototype.measureScrollbar = function () { // thx walsh\n    var scrollDiv = document.createElement('div')\n    scrollDiv.className = 'modal-scrollbar-measure'\n    this.$body.append(scrollDiv)\n    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n    this.$body[0].removeChild(scrollDiv)\n    return scrollbarWidth\n  }\n\n\n  // MODAL PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option, _relatedTarget) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.modal')\n      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n      if (typeof option == 'string') data[option](_relatedTarget)\n      else if (options.show) data.show(_relatedTarget)\n    })\n  }\n\n  var old = $.fn.modal\n\n  $.fn.modal             = Plugin\n  $.fn.modal.Constructor = Modal\n\n\n  // MODAL NO CONFLICT\n  // =================\n\n  $.fn.modal.noConflict = function () {\n    $.fn.modal = old\n    return this\n  }\n\n\n  // MODAL DATA-API\n  // ==============\n\n  $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n    var $this   = $(this)\n    var href    = $this.attr('href')\n    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n    if ($this.is('a')) e.preventDefault()\n\n    $target.one('show.bs.modal', function (showEvent) {\n      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n      $target.one('hidden.bs.modal', function () {\n        $this.is(':visible') && $this.trigger('focus')\n      })\n    })\n    Plugin.call($target, option, this)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.6\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TOOLTIP PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Tooltip = function (element, options) {\n    this.type       = null\n    this.options    = null\n    this.enabled    = null\n    this.timeout    = null\n    this.hoverState = null\n    this.$element   = null\n    this.inState    = null\n\n    this.init('tooltip', element, options)\n  }\n\n  Tooltip.VERSION  = '3.3.6'\n\n  Tooltip.TRANSITION_DURATION = 150\n\n  Tooltip.DEFAULTS = {\n    animation: true,\n    placement: 'top',\n    selector: false,\n    template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    container: false,\n    viewport: {\n      selector: 'body',\n      padding: 0\n    }\n  }\n\n  Tooltip.prototype.init = function (type, element, options) {\n    this.enabled   = true\n    this.type      = type\n    this.$element  = $(element)\n    this.options   = this.getOptions(options)\n    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n    this.inState   = { click: false, hover: false, focus: false }\n\n    if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n    }\n\n    var triggers = this.options.trigger.split(' ')\n\n    for (var i = triggers.length; i--;) {\n      var trigger = triggers[i]\n\n      if (trigger == 'click') {\n        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n      } else if (trigger != 'manual') {\n        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'\n        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n      }\n    }\n\n    this.options.selector ?\n      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n      this.fixTitle()\n  }\n\n  Tooltip.prototype.getDefaults = function () {\n    return Tooltip.DEFAULTS\n  }\n\n  Tooltip.prototype.getOptions = function (options) {\n    options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n    if (options.delay && typeof options.delay == 'number') {\n      options.delay = {\n        show: options.delay,\n        hide: options.delay\n      }\n    }\n\n    return options\n  }\n\n  Tooltip.prototype.getDelegateOptions = function () {\n    var options  = {}\n    var defaults = this.getDefaults()\n\n    this._options && $.each(this._options, function (key, value) {\n      if (defaults[key] != value) options[key] = value\n    })\n\n    return options\n  }\n\n  Tooltip.prototype.enter = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n    }\n\n    if (self.tip().hasClass('in') || self.hoverState == 'in') {\n      self.hoverState = 'in'\n      return\n    }\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'in'\n\n    if (!self.options.delay || !self.options.delay.show) return self.show()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'in') self.show()\n    }, self.options.delay.show)\n  }\n\n  Tooltip.prototype.isInStateTrue = function () {\n    for (var key in this.inState) {\n      if (this.inState[key]) return true\n    }\n\n    return false\n  }\n\n  Tooltip.prototype.leave = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n    }\n\n    if (self.isInStateTrue()) return\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'out'\n\n    if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'out') self.hide()\n    }, self.options.delay.hide)\n  }\n\n  Tooltip.prototype.show = function () {\n    var e = $.Event('show.bs.' + this.type)\n\n    if (this.hasContent() && this.enabled) {\n      this.$element.trigger(e)\n\n      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n      if (e.isDefaultPrevented() || !inDom) return\n      var that = this\n\n      var $tip = this.tip()\n\n      var tipId = this.getUID(this.type)\n\n      this.setContent()\n      $tip.attr('id', tipId)\n      this.$element.attr('aria-describedby', tipId)\n\n      if (this.options.animation) $tip.addClass('fade')\n\n      var placement = typeof this.options.placement == 'function' ?\n        this.options.placement.call(this, $tip[0], this.$element[0]) :\n        this.options.placement\n\n      var autoToken = /\\s?auto?\\s?/i\n      var autoPlace = autoToken.test(placement)\n      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n      $tip\n        .detach()\n        .css({ top: 0, left: 0, display: 'block' })\n        .addClass(placement)\n        .data('bs.' + this.type, this)\n\n      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n      this.$element.trigger('inserted.bs.' + this.type)\n\n      var pos          = this.getPosition()\n      var actualWidth  = $tip[0].offsetWidth\n      var actualHeight = $tip[0].offsetHeight\n\n      if (autoPlace) {\n        var orgPlacement = placement\n        var viewportDim = this.getPosition(this.$viewport)\n\n        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :\n                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :\n                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :\n                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :\n                    placement\n\n        $tip\n          .removeClass(orgPlacement)\n          .addClass(placement)\n      }\n\n      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n      this.applyPlacement(calculatedOffset, placement)\n\n      var complete = function () {\n        var prevHoverState = that.hoverState\n        that.$element.trigger('shown.bs.' + that.type)\n        that.hoverState = null\n\n        if (prevHoverState == 'out') that.leave(that)\n      }\n\n      $.support.transition && this.$tip.hasClass('fade') ?\n        $tip\n          .one('bsTransitionEnd', complete)\n          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n        complete()\n    }\n  }\n\n  Tooltip.prototype.applyPlacement = function (offset, placement) {\n    var $tip   = this.tip()\n    var width  = $tip[0].offsetWidth\n    var height = $tip[0].offsetHeight\n\n    // manually read margins because getBoundingClientRect includes difference\n    var marginTop = parseInt($tip.css('margin-top'), 10)\n    var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n    // we must check for NaN for ie 8/9\n    if (isNaN(marginTop))  marginTop  = 0\n    if (isNaN(marginLeft)) marginLeft = 0\n\n    offset.top  += marginTop\n    offset.left += marginLeft\n\n    // $.fn.offset doesn't round pixel values\n    // so we use setOffset directly with our own function B-0\n    $.offset.setOffset($tip[0], $.extend({\n      using: function (props) {\n        $tip.css({\n          top: Math.round(props.top),\n          left: Math.round(props.left)\n        })\n      }\n    }, offset), 0)\n\n    $tip.addClass('in')\n\n    // check to see if placing tip in new offset caused the tip to resize itself\n    var actualWidth  = $tip[0].offsetWidth\n    var actualHeight = $tip[0].offsetHeight\n\n    if (placement == 'top' && actualHeight != height) {\n      offset.top = offset.top + height - actualHeight\n    }\n\n    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n    if (delta.left) offset.left += delta.left\n    else offset.top += delta.top\n\n    var isVertical          = /top|bottom/.test(placement)\n    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n    $tip.offset(offset)\n    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n  }\n\n  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n    this.arrow()\n      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n      .css(isVertical ? 'top' : 'left', '')\n  }\n\n  Tooltip.prototype.setContent = function () {\n    var $tip  = this.tip()\n    var title = this.getTitle()\n\n    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n    $tip.removeClass('fade in top bottom left right')\n  }\n\n  Tooltip.prototype.hide = function (callback) {\n    var that = this\n    var $tip = $(this.$tip)\n    var e    = $.Event('hide.bs.' + this.type)\n\n    function complete() {\n      if (that.hoverState != 'in') $tip.detach()\n      that.$element\n        .removeAttr('aria-describedby')\n        .trigger('hidden.bs.' + that.type)\n      callback && callback()\n    }\n\n    this.$element.trigger(e)\n\n    if (e.isDefaultPrevented()) return\n\n    $tip.removeClass('in')\n\n    $.support.transition && $tip.hasClass('fade') ?\n      $tip\n        .one('bsTransitionEnd', complete)\n        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n      complete()\n\n    this.hoverState = null\n\n    return this\n  }\n\n  Tooltip.prototype.fixTitle = function () {\n    var $e = this.$element\n    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n    }\n  }\n\n  Tooltip.prototype.hasContent = function () {\n    return this.getTitle()\n  }\n\n  Tooltip.prototype.getPosition = function ($element) {\n    $element   = $element || this.$element\n\n    var el     = $element[0]\n    var isBody = el.tagName == 'BODY'\n\n    var elRect    = el.getBoundingClientRect()\n    if (elRect.width == null) {\n      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n    }\n    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()\n    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n    return $.extend({}, elRect, scroll, outerDims, elOffset)\n  }\n\n  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n  }\n\n  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n    var delta = { top: 0, left: 0 }\n    if (!this.$viewport) return delta\n\n    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n    var viewportDimensions = this.getPosition(this.$viewport)\n\n    if (/right|left/.test(placement)) {\n      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll\n      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n      if (topEdgeOffset < viewportDimensions.top) { // top overflow\n        delta.top = viewportDimensions.top - topEdgeOffset\n      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n      }\n    } else {\n      var leftEdgeOffset  = pos.left - viewportPadding\n      var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n      if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n        delta.left = viewportDimensions.left - leftEdgeOffset\n      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n      }\n    }\n\n    return delta\n  }\n\n  Tooltip.prototype.getTitle = function () {\n    var title\n    var $e = this.$element\n    var o  = this.options\n\n    title = $e.attr('data-original-title')\n      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)\n\n    return title\n  }\n\n  Tooltip.prototype.getUID = function (prefix) {\n    do prefix += ~~(Math.random() * 1000000)\n    while (document.getElementById(prefix))\n    return prefix\n  }\n\n  Tooltip.prototype.tip = function () {\n    if (!this.$tip) {\n      this.$tip = $(this.options.template)\n      if (this.$tip.length != 1) {\n        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n      }\n    }\n    return this.$tip\n  }\n\n  Tooltip.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n  }\n\n  Tooltip.prototype.enable = function () {\n    this.enabled = true\n  }\n\n  Tooltip.prototype.disable = function () {\n    this.enabled = false\n  }\n\n  Tooltip.prototype.toggleEnabled = function () {\n    this.enabled = !this.enabled\n  }\n\n  Tooltip.prototype.toggle = function (e) {\n    var self = this\n    if (e) {\n      self = $(e.currentTarget).data('bs.' + this.type)\n      if (!self) {\n        self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n        $(e.currentTarget).data('bs.' + this.type, self)\n      }\n    }\n\n    if (e) {\n      self.inState.click = !self.inState.click\n      if (self.isInStateTrue()) self.enter(self)\n      else self.leave(self)\n    } else {\n      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n    }\n  }\n\n  Tooltip.prototype.destroy = function () {\n    var that = this\n    clearTimeout(this.timeout)\n    this.hide(function () {\n      that.$element.off('.' + that.type).removeData('bs.' + that.type)\n      if (that.$tip) {\n        that.$tip.detach()\n      }\n      that.$tip = null\n      that.$arrow = null\n      that.$viewport = null\n    })\n  }\n\n\n  // TOOLTIP PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.tooltip')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tooltip\n\n  $.fn.tooltip             = Plugin\n  $.fn.tooltip.Constructor = Tooltip\n\n\n  // TOOLTIP NO CONFLICT\n  // ===================\n\n  $.fn.tooltip.noConflict = function () {\n    $.fn.tooltip = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.6\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // POPOVER PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Popover = function (element, options) {\n    this.init('popover', element, options)\n  }\n\n  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n  Popover.VERSION  = '3.3.6'\n\n  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n  })\n\n\n  // NOTE: POPOVER EXTENDS tooltip.js\n  // ================================\n\n  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n  Popover.prototype.constructor = Popover\n\n  Popover.prototype.getDefaults = function () {\n    return Popover.DEFAULTS\n  }\n\n  Popover.prototype.setContent = function () {\n    var $tip    = this.tip()\n    var title   = this.getTitle()\n    var content = this.getContent()\n\n    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n    ](content)\n\n    $tip.removeClass('fade top bottom left right in')\n\n    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n    // this manually by checking the contents.\n    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n  }\n\n  Popover.prototype.hasContent = function () {\n    return this.getTitle() || this.getContent()\n  }\n\n  Popover.prototype.getContent = function () {\n    var $e = this.$element\n    var o  = this.options\n\n    return $e.attr('data-content')\n      || (typeof o.content == 'function' ?\n            o.content.call($e[0]) :\n            o.content)\n  }\n\n  Popover.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n  }\n\n\n  // POPOVER PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.popover')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.popover\n\n  $.fn.popover             = Plugin\n  $.fn.popover.Constructor = Popover\n\n\n  // POPOVER NO CONFLICT\n  // ===================\n\n  $.fn.popover.noConflict = function () {\n    $.fn.popover = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.6\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // SCROLLSPY CLASS DEFINITION\n  // ==========================\n\n  function ScrollSpy(element, options) {\n    this.$body          = $(document.body)\n    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)\n    this.selector       = (this.options.target || '') + ' .nav li > a'\n    this.offsets        = []\n    this.targets        = []\n    this.activeTarget   = null\n    this.scrollHeight   = 0\n\n    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n    this.refresh()\n    this.process()\n  }\n\n  ScrollSpy.VERSION  = '3.3.6'\n\n  ScrollSpy.DEFAULTS = {\n    offset: 10\n  }\n\n  ScrollSpy.prototype.getScrollHeight = function () {\n    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n  }\n\n  ScrollSpy.prototype.refresh = function () {\n    var that          = this\n    var offsetMethod  = 'offset'\n    var offsetBase    = 0\n\n    this.offsets      = []\n    this.targets      = []\n    this.scrollHeight = this.getScrollHeight()\n\n    if (!$.isWindow(this.$scrollElement[0])) {\n      offsetMethod = 'position'\n      offsetBase   = this.$scrollElement.scrollTop()\n    }\n\n    this.$body\n      .find(this.selector)\n      .map(function () {\n        var $el   = $(this)\n        var href  = $el.data('target') || $el.attr('href')\n        var $href = /^#./.test(href) && $(href)\n\n        return ($href\n          && $href.length\n          && $href.is(':visible')\n          && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n      })\n      .sort(function (a, b) { return a[0] - b[0] })\n      .each(function () {\n        that.offsets.push(this[0])\n        that.targets.push(this[1])\n      })\n  }\n\n  ScrollSpy.prototype.process = function () {\n    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset\n    var scrollHeight = this.getScrollHeight()\n    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()\n    var offsets      = this.offsets\n    var targets      = this.targets\n    var activeTarget = this.activeTarget\n    var i\n\n    if (this.scrollHeight != scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n    }\n\n    if (activeTarget && scrollTop < offsets[0]) {\n      this.activeTarget = null\n      return this.clear()\n    }\n\n    for (i = offsets.length; i--;) {\n      activeTarget != targets[i]\n        && scrollTop >= offsets[i]\n        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n        && this.activate(targets[i])\n    }\n  }\n\n  ScrollSpy.prototype.activate = function (target) {\n    this.activeTarget = target\n\n    this.clear()\n\n    var selector = this.selector +\n      '[data-target=\"' + target + '\"],' +\n      this.selector + '[href=\"' + target + '\"]'\n\n    var active = $(selector)\n      .parents('li')\n      .addClass('active')\n\n    if (active.parent('.dropdown-menu').length) {\n      active = active\n        .closest('li.dropdown')\n        .addClass('active')\n    }\n\n    active.trigger('activate.bs.scrollspy')\n  }\n\n  ScrollSpy.prototype.clear = function () {\n    $(this.selector)\n      .parentsUntil(this.options.target, '.active')\n      .removeClass('active')\n  }\n\n\n  // SCROLLSPY PLUGIN DEFINITION\n  // ===========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.scrollspy')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.scrollspy\n\n  $.fn.scrollspy             = Plugin\n  $.fn.scrollspy.Constructor = ScrollSpy\n\n\n  // SCROLLSPY NO CONFLICT\n  // =====================\n\n  $.fn.scrollspy.noConflict = function () {\n    $.fn.scrollspy = old\n    return this\n  }\n\n\n  // SCROLLSPY DATA-API\n  // ==================\n\n  $(window).on('load.bs.scrollspy.data-api', function () {\n    $('[data-spy=\"scroll\"]').each(function () {\n      var $spy = $(this)\n      Plugin.call($spy, $spy.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.6\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TAB CLASS DEFINITION\n  // ====================\n\n  var Tab = function (element) {\n    // jscs:disable requireDollarBeforejQueryAssignment\n    this.element = $(element)\n    // jscs:enable requireDollarBeforejQueryAssignment\n  }\n\n  Tab.VERSION = '3.3.6'\n\n  Tab.TRANSITION_DURATION = 150\n\n  Tab.prototype.show = function () {\n    var $this    = this.element\n    var $ul      = $this.closest('ul:not(.dropdown-menu)')\n    var selector = $this.data('target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    if ($this.parent('li').hasClass('active')) return\n\n    var $previous = $ul.find('.active:last a')\n    var hideEvent = $.Event('hide.bs.tab', {\n      relatedTarget: $this[0]\n    })\n    var showEvent = $.Event('show.bs.tab', {\n      relatedTarget: $previous[0]\n    })\n\n    $previous.trigger(hideEvent)\n    $this.trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n    var $target = $(selector)\n\n    this.activate($this.closest('li'), $ul)\n    this.activate($target, $target.parent(), function () {\n      $previous.trigger({\n        type: 'hidden.bs.tab',\n        relatedTarget: $this[0]\n      })\n      $this.trigger({\n        type: 'shown.bs.tab',\n        relatedTarget: $previous[0]\n      })\n    })\n  }\n\n  Tab.prototype.activate = function (element, container, callback) {\n    var $active    = container.find('> .active')\n    var transition = callback\n      && $.support.transition\n      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n    function next() {\n      $active\n        .removeClass('active')\n        .find('> .dropdown-menu > .active')\n          .removeClass('active')\n        .end()\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', false)\n\n      element\n        .addClass('active')\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', true)\n\n      if (transition) {\n        element[0].offsetWidth // reflow for transition\n        element.addClass('in')\n      } else {\n        element.removeClass('fade')\n      }\n\n      if (element.parent('.dropdown-menu').length) {\n        element\n          .closest('li.dropdown')\n            .addClass('active')\n          .end()\n          .find('[data-toggle=\"tab\"]')\n            .attr('aria-expanded', true)\n      }\n\n      callback && callback()\n    }\n\n    $active.length && transition ?\n      $active\n        .one('bsTransitionEnd', next)\n        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n      next()\n\n    $active.removeClass('in')\n  }\n\n\n  // TAB PLUGIN DEFINITION\n  // =====================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.tab')\n\n      if (!data) $this.data('bs.tab', (data = new Tab(this)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tab\n\n  $.fn.tab             = Plugin\n  $.fn.tab.Constructor = Tab\n\n\n  // TAB NO CONFLICT\n  // ===============\n\n  $.fn.tab.noConflict = function () {\n    $.fn.tab = old\n    return this\n  }\n\n\n  // TAB DATA-API\n  // ============\n\n  var clickHandler = function (e) {\n    e.preventDefault()\n    Plugin.call($(this), 'show')\n  }\n\n  $(document)\n    .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n    .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.6\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // AFFIX CLASS DEFINITION\n  // ======================\n\n  var Affix = function (element, options) {\n    this.options = $.extend({}, Affix.DEFAULTS, options)\n\n    this.$target = $(this.options.target)\n      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))\n\n    this.$element     = $(element)\n    this.affixed      = null\n    this.unpin        = null\n    this.pinnedOffset = null\n\n    this.checkPosition()\n  }\n\n  Affix.VERSION  = '3.3.6'\n\n  Affix.RESET    = 'affix affix-top affix-bottom'\n\n  Affix.DEFAULTS = {\n    offset: 0,\n    target: window\n  }\n\n  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n    var scrollTop    = this.$target.scrollTop()\n    var position     = this.$element.offset()\n    var targetHeight = this.$target.height()\n\n    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n    if (this.affixed == 'bottom') {\n      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n    }\n\n    var initializing   = this.affixed == null\n    var colliderTop    = initializing ? scrollTop : position.top\n    var colliderHeight = initializing ? targetHeight : height\n\n    if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n    return false\n  }\n\n  Affix.prototype.getPinnedOffset = function () {\n    if (this.pinnedOffset) return this.pinnedOffset\n    this.$element.removeClass(Affix.RESET).addClass('affix')\n    var scrollTop = this.$target.scrollTop()\n    var position  = this.$element.offset()\n    return (this.pinnedOffset = position.top - scrollTop)\n  }\n\n  Affix.prototype.checkPositionWithEventLoop = function () {\n    setTimeout($.proxy(this.checkPosition, this), 1)\n  }\n\n  Affix.prototype.checkPosition = function () {\n    if (!this.$element.is(':visible')) return\n\n    var height       = this.$element.height()\n    var offset       = this.options.offset\n    var offsetTop    = offset.top\n    var offsetBottom = offset.bottom\n    var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n    if (typeof offset != 'object')         offsetBottom = offsetTop = offset\n    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)\n    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n    if (this.affixed != affix) {\n      if (this.unpin != null) this.$element.css('top', '')\n\n      var affixType = 'affix' + (affix ? '-' + affix : '')\n      var e         = $.Event(affixType + '.bs.affix')\n\n      this.$element.trigger(e)\n\n      if (e.isDefaultPrevented()) return\n\n      this.affixed = affix\n      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n      this.$element\n        .removeClass(Affix.RESET)\n        .addClass(affixType)\n        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n    }\n\n    if (affix == 'bottom') {\n      this.$element.offset({\n        top: scrollHeight - height - offsetBottom\n      })\n    }\n  }\n\n\n  // AFFIX PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.affix')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.affix\n\n  $.fn.affix             = Plugin\n  $.fn.affix.Constructor = Affix\n\n\n  // AFFIX NO CONFLICT\n  // =================\n\n  $.fn.affix.noConflict = function () {\n    $.fn.affix = old\n    return this\n  }\n\n\n  // AFFIX DATA-API\n  // ==============\n\n  $(window).on('load', function () {\n    $('[data-spy=\"affix\"]').each(function () {\n      var $spy = $(this)\n      var data = $spy.data()\n\n      data.offset = data.offset || {}\n\n      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n      if (data.offsetTop    != null) data.offset.top    = data.offsetTop\n\n      Plugin.call($spy, data)\n    })\n  })\n\n}(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  padding: 4px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #999999;\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid #999999;\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker td,\n.datepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.day.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  background: #d9edf7;\n  border-radius: 0;\n}\n.datepicker table tr td.today,\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:hover {\n  background-color: #fde19a;\n  background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));\n  background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);\n  border-color: #fdf59a #fdf59a #fbed50;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #000;\n}\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today:hover:hover,\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today.disabled:hover:hover,\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today:hover.disabled,\n.datepicker table tr td.today.disabled.disabled,\n.datepicker table tr td.today.disabled:hover.disabled,\n.datepicker table tr td.today[disabled],\n.datepicker table tr td.today:hover[disabled],\n.datepicker table tr td.today.disabled[disabled],\n.datepicker table tr td.today.disabled:hover[disabled] {\n  background-color: #fdf59a;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active {\n  background-color: #fbf069 \\9;\n}\n.datepicker table tr td.today:hover:hover {\n  color: #000;\n}\n.datepicker table tr td.today.active:hover {\n  color: #fff;\n}\n.datepicker table tr td.range,\n.datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:hover {\n  background: #eeeeee;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today,\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:hover {\n  background-color: #f3d17a;\n  background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));\n  background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);\n  border-color: #f3e97a #f3e97a #edde34;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:hover:hover,\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today.disabled:hover:hover,\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today:hover.disabled,\n.datepicker table tr td.range.today.disabled.disabled,\n.datepicker table tr td.range.today.disabled:hover.disabled,\n.datepicker table tr td.range.today[disabled],\n.datepicker table tr td.range.today:hover[disabled],\n.datepicker table tr td.range.today.disabled[disabled],\n.datepicker table tr td.range.today.disabled:hover[disabled] {\n  background-color: #f3e97a;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active {\n  background-color: #efe24b \\9;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected.disabled:hover {\n  background-color: #9e9e9e;\n  background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));\n  background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: linear-gradient(to bottom, #b3b3b3, #808080);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);\n  border-color: #808080 #808080 #595959;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected:hover:hover,\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.disabled:hover:hover,\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected:hover.disabled,\n.datepicker table tr td.selected.disabled.disabled,\n.datepicker table tr td.selected.disabled:hover.disabled,\n.datepicker table tr td.selected[disabled],\n.datepicker table tr td.selected:hover[disabled],\n.datepicker table tr td.selected.disabled[disabled],\n.datepicker table tr td.selected.disabled:hover[disabled] {\n  background-color: #808080;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active {\n  background-color: #666666 \\9;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active:hover:hover,\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.disabled:hover:hover,\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active:hover.disabled,\n.datepicker table tr td.active.disabled.disabled,\n.datepicker table tr td.active.disabled:hover.disabled,\n.datepicker table tr td.active[disabled],\n.datepicker table tr td.active:hover[disabled],\n.datepicker table tr td.active.disabled[disabled],\n.datepicker table tr td.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active:hover.disabled,\n.datepicker table tr td span.active.disabled.disabled,\n.datepicker table tr td span.active.disabled:hover.disabled,\n.datepicker table tr td span.active[disabled],\n.datepicker table tr td span.active:hover[disabled],\n.datepicker table tr td span.active.disabled[disabled],\n.datepicker table tr td span.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-append.date .add-on,\n.input-prepend.date .add-on {\n  cursor: pointer;\n}\n.input-append.date .add-on i,\n.input-prepend.date .add-on i {\n  margin-top: 3px;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  -webkit-border-radius: 3px 0 0 3px;\n  -moz-border-radius: 3px 0 0 3px;\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  -webkit-border-radius: 0 3px 3px 0;\n  -moz-border-radius: 0 3px 3px 0;\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .add-on {\n  display: inline-block;\n  width: auto;\n  min-width: 16px;\n  height: 18px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 18px;\n  text-align: center;\n  text-shadow: 0 1px 0 #ffffff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker.standalone.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  padding: 4px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #999999;\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid #999999;\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker td,\n.datepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.day.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  background: #d9edf7;\n  border-radius: 0;\n}\n.datepicker table tr td.today,\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:hover {\n  background-color: #fde19a;\n  background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));\n  background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);\n  border-color: #fdf59a #fdf59a #fbed50;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #000;\n}\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today:hover:hover,\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today.disabled:hover:hover,\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today:hover.disabled,\n.datepicker table tr td.today.disabled.disabled,\n.datepicker table tr td.today.disabled:hover.disabled,\n.datepicker table tr td.today[disabled],\n.datepicker table tr td.today:hover[disabled],\n.datepicker table tr td.today.disabled[disabled],\n.datepicker table tr td.today.disabled:hover[disabled] {\n  background-color: #fdf59a;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active {\n  background-color: #fbf069 \\9;\n}\n.datepicker table tr td.today:hover:hover {\n  color: #000;\n}\n.datepicker table tr td.today.active:hover {\n  color: #fff;\n}\n.datepicker table tr td.range,\n.datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:hover {\n  background: #eeeeee;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today,\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:hover {\n  background-color: #f3d17a;\n  background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));\n  background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);\n  border-color: #f3e97a #f3e97a #edde34;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:hover:hover,\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today.disabled:hover:hover,\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today:hover.disabled,\n.datepicker table tr td.range.today.disabled.disabled,\n.datepicker table tr td.range.today.disabled:hover.disabled,\n.datepicker table tr td.range.today[disabled],\n.datepicker table tr td.range.today:hover[disabled],\n.datepicker table tr td.range.today.disabled[disabled],\n.datepicker table tr td.range.today.disabled:hover[disabled] {\n  background-color: #f3e97a;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active {\n  background-color: #efe24b \\9;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected.disabled:hover {\n  background-color: #9e9e9e;\n  background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));\n  background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080);\n  background-image: linear-gradient(to bottom, #b3b3b3, #808080);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);\n  border-color: #808080 #808080 #595959;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected:hover:hover,\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.disabled:hover:hover,\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected:hover.disabled,\n.datepicker table tr td.selected.disabled.disabled,\n.datepicker table tr td.selected.disabled:hover.disabled,\n.datepicker table tr td.selected[disabled],\n.datepicker table tr td.selected:hover[disabled],\n.datepicker table tr td.selected.disabled[disabled],\n.datepicker table tr td.selected.disabled:hover[disabled] {\n  background-color: #808080;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active {\n  background-color: #666666 \\9;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active:hover:hover,\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.disabled:hover:hover,\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active:hover.disabled,\n.datepicker table tr td.active.disabled.disabled,\n.datepicker table tr td.active.disabled:hover.disabled,\n.datepicker table tr td.active[disabled],\n.datepicker table tr td.active:hover[disabled],\n.datepicker table tr td.active.disabled[disabled],\n.datepicker table tr td.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(to bottom, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active:hover.disabled,\n.datepicker table tr td span.active.disabled.disabled,\n.datepicker table tr td span.active.disabled:hover.disabled,\n.datepicker table tr td span.active[disabled],\n.datepicker table tr td span.active:hover[disabled],\n.datepicker table tr td span.active.disabled[disabled],\n.datepicker table tr td span.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-append.date .add-on,\n.input-prepend.date .add-on {\n  cursor: pointer;\n}\n.input-append.date .add-on i,\n.input-prepend.date .add-on i {\n  margin-top: 3px;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  -webkit-border-radius: 3px 0 0 3px;\n  -moz-border-radius: 3px 0 0 3px;\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  -webkit-border-radius: 0 3px 3px 0;\n  -moz-border-radius: 0 3px 3px 0;\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .add-on {\n  display: inline-block;\n  width: auto;\n  min-width: 16px;\n  height: 20px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 20px;\n  text-align: center;\n  text-shadow: 0 1px 0 #ffffff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n.datepicker.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  float: left;\n  display: none;\n  min-width: 160px;\n  list-style: none;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  -webkit-border-radius: 5px;\n  -moz-border-radius: 5px;\n  border-radius: 5px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  color: #333333;\n  font-size: 13px;\n  line-height: 20px;\n}\n.datepicker.dropdown-menu th,\n.datepicker.datepicker-inline th,\n.datepicker.dropdown-menu td,\n.datepicker.datepicker-inline td {\n  padding: 4px 5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n  padding: 4px;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid rgba(0, 0, 0, 0.15);\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid rgba(0, 0, 0, 0.15);\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker table tr td,\n.datepicker table tr th {\n  text-align: center;\n  width: 30px;\n  height: 30px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n  border-radius: 0;\n}\n.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:hover {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active:hover,\n.datepicker table tr td.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted:active:focus,\n.datepicker table tr td.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted:active.focus,\n.datepicker table tr td.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #91cbe8;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.highlighted.disabled:hover,\n.datepicker table tr td.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted.disabled:focus,\n.datepicker table tr td.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.disabled.focus,\n.datepicker table tr td.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.highlighted.focus {\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n}\n.datepicker table tr td.highlighted.focused {\n  background: #afd9ee;\n}\n.datepicker table tr td.highlighted.disabled,\n.datepicker table tr td.highlighted.disabled:active {\n  background: #d9edf7;\n  color: #999999;\n}\n.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today:focus,\n.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:hover {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active:hover,\n.datepicker table tr td.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.today:hover,\n.datepicker table tr td.today:active:focus,\n.datepicker table tr td.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.today:focus,\n.datepicker table tr td.today:active.focus,\n.datepicker table tr td.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffbc42;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  background-image: none;\n}\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled:focus,\n.datepicker table tr td.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.today:focus,\n.datepicker table tr td.today.disabled.focus,\n.datepicker table tr td.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.today.focus {\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today.focused {\n  background: #ffc966;\n}\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:active {\n  background: #ffdb99;\n  color: #999999;\n}\n.datepicker table tr td.range {\n  color: #000000;\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n  border-radius: 0;\n}\n.datepicker table tr td.range:focus,\n.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:hover {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active:hover,\n.datepicker table tr td.range.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range:hover,\n.datepicker table tr td.range:active:focus,\n.datepicker table tr td.range.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range:focus,\n.datepicker table tr td.range:active.focus,\n.datepicker table tr td.range.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #c3c3c3;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  background-image: none;\n}\n.datepicker table tr td.range.disabled:hover,\n.datepicker table tr td.range[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled:focus,\n.datepicker table tr td.range[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range:focus,\n.datepicker table tr td.range.disabled.focus,\n.datepicker table tr td.range[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.focus {\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n}\n.datepicker table tr td.range.focused {\n  background: #d5d5d5;\n}\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:active {\n  background: #eeeeee;\n  color: #999999;\n}\n.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:hover {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active:hover,\n.datepicker table tr td.range.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted:active:focus,\n.datepicker table tr td.range.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted:active.focus,\n.datepicker table tr td.range.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #a8c8d8;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.range.highlighted.disabled:hover,\n.datepicker table tr td.range.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted.disabled:focus,\n.datepicker table tr td.range.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.disabled.focus,\n.datepicker table tr td.range.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted.focus {\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted.focused {\n  background: #c1d7e3;\n}\n.datepicker table tr td.range.highlighted.disabled,\n.datepicker table tr td.range.highlighted.disabled:active {\n  background: #e4eef3;\n  color: #999999;\n}\n.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:hover {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active:hover,\n.datepicker table tr td.range.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:active:focus,\n.datepicker table tr td.range.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today:active.focus,\n.datepicker table tr td.range.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f2aa25;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  background-image: none;\n}\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled:focus,\n.datepicker table tr td.range.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.disabled.focus,\n.datepicker table tr td.range.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.today.focus {\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:active {\n  background: #f7ca77;\n  color: #999999;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #999999;\n  border-color: #555555;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:focus,\n.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.focus,\n.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.highlighted:hover {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active:hover,\n.datepicker table tr td.selected.highlighted:active:hover,\n.datepicker table tr td.selected.active:hover,\n.datepicker table tr td.selected.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected:active:focus,\n.datepicker table tr td.selected.highlighted:active:focus,\n.datepicker table tr td.selected.active:focus,\n.datepicker table tr td.selected.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected:active.focus,\n.datepicker table tr td.selected.highlighted:active.focus,\n.datepicker table tr td.selected.active.focus,\n.datepicker table tr td.selected.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #6e6e6e;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.highlighted.disabled:hover,\n.datepicker table tr td.selected[disabled]:hover,\n.datepicker table tr td.selected.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.selected:hover,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected.disabled:focus,\n.datepicker table tr td.selected.highlighted.disabled:focus,\n.datepicker table tr td.selected[disabled]:focus,\n.datepicker table tr td.selected.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.selected:focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.disabled.focus,\n.datepicker table tr td.selected.highlighted.disabled.focus,\n.datepicker table tr td.selected[disabled].focus,\n.datepicker table tr td.selected.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.selected.focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted.focus {\n  background-color: #999999;\n  border-color: #555555;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:focus,\n.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.focus,\n.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.highlighted:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active:hover,\n.datepicker table tr td.active.highlighted:active:hover,\n.datepicker table tr td.active.active:hover,\n.datepicker table tr td.active.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active:active:focus,\n.datepicker table tr td.active.highlighted:active:focus,\n.datepicker table tr td.active.active:focus,\n.datepicker table tr td.active.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active:active.focus,\n.datepicker table tr td.active.highlighted:active.focus,\n.datepicker table tr td.active.active.focus,\n.datepicker table tr td.active.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.highlighted.disabled:hover,\n.datepicker table tr td.active[disabled]:hover,\n.datepicker table tr td.active.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.active:hover,\nfieldset[disabled] .datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active.disabled:focus,\n.datepicker table tr td.active.highlighted.disabled:focus,\n.datepicker table tr td.active[disabled]:focus,\n.datepicker table tr td.active.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.active:focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.disabled.focus,\n.datepicker table tr td.active.highlighted.disabled.focus,\n.datepicker table tr td.active[disabled].focus,\n.datepicker table tr td.active.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.active.focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:focus,\n.datepicker table tr td span.active:hover:focus,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.focus,\n.datepicker table tr td span.active:hover.focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active:hover,\n.datepicker table tr td span.active:hover:active:hover,\n.datepicker table tr td span.active.disabled:active:hover,\n.datepicker table tr td span.active.disabled:hover:active:hover,\n.datepicker table tr td span.active.active:hover,\n.datepicker table tr td span.active:hover.active:hover,\n.datepicker table tr td span.active.disabled.active:hover,\n.datepicker table tr td span.active.disabled:hover.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active:focus,\n.datepicker table tr td span.active:hover:active:focus,\n.datepicker table tr td span.active.disabled:active:focus,\n.datepicker table tr td span.active.disabled:hover:active:focus,\n.datepicker table tr td span.active.active:focus,\n.datepicker table tr td span.active:hover.active:focus,\n.datepicker table tr td span.active.disabled.active:focus,\n.datepicker table tr td span.active.disabled:hover.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active:active.focus,\n.datepicker table tr td span.active:hover:active.focus,\n.datepicker table tr td span.active.disabled:active.focus,\n.datepicker table tr td span.active.disabled:hover:active.focus,\n.datepicker table tr td span.active.active.focus,\n.datepicker table tr td span.active:hover.active.focus,\n.datepicker table tr td span.active.disabled.active.focus,\n.datepicker table tr td span.active.disabled:hover.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  background-image: none;\n}\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active:hover.disabled:hover,\n.datepicker table tr td span.active.disabled.disabled:hover,\n.datepicker table tr td span.active.disabled:hover.disabled:hover,\n.datepicker table tr td span.active[disabled]:hover,\n.datepicker table tr td span.active:hover[disabled]:hover,\n.datepicker table tr td span.active.disabled[disabled]:hover,\n.datepicker table tr td span.active.disabled:hover[disabled]:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active:hover.disabled:focus,\n.datepicker table tr td span.active.disabled.disabled:focus,\n.datepicker table tr td span.active.disabled:hover.disabled:focus,\n.datepicker table tr td span.active[disabled]:focus,\n.datepicker table tr td span.active:hover[disabled]:focus,\n.datepicker table tr td span.active.disabled[disabled]:focus,\n.datepicker table tr td span.active.disabled:hover[disabled]:focus,\nfieldset[disabled] .datepicker table tr td span.active:focus,\nfieldset[disabled] .datepicker table tr td span.active:hover:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active:hover.disabled.focus,\n.datepicker table tr td span.active.disabled.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.disabled.focus,\n.datepicker table tr td span.active[disabled].focus,\n.datepicker table tr td span.active:hover[disabled].focus,\n.datepicker table tr td span.active.disabled[disabled].focus,\n.datepicker table tr td span.active.disabled:hover[disabled].focus,\nfieldset[disabled] .datepicker table tr td span.active.focus,\nfieldset[disabled] .datepicker table tr td span.active:hover.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-group.date .input-group-addon {\n  cursor: pointer;\n}\n.input-daterange {\n  width: 100%;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .input-group-addon {\n  width: auto;\n  min-width: 16px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: center;\n  text-shadow: 0 1px 0 #fff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: solid #cccccc;\n  border-width: 1px 0;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.standalone.css",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n.datepicker {\n  border-radius: 4px;\n  direction: ltr;\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n  padding: 4px;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid rgba(0, 0, 0, 0.15);\n  border-top: 0;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-top: 0;\n  position: absolute;\n}\n.datepicker-dropdown.datepicker-orient-left:before {\n  left: 6px;\n}\n.datepicker-dropdown.datepicker-orient-left:after {\n  left: 7px;\n}\n.datepicker-dropdown.datepicker-orient-right:before {\n  right: 6px;\n}\n.datepicker-dropdown.datepicker-orient-right:after {\n  right: 7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:before {\n  top: -7px;\n}\n.datepicker-dropdown.datepicker-orient-bottom:after {\n  top: -6px;\n}\n.datepicker-dropdown.datepicker-orient-top:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid rgba(0, 0, 0, 0.15);\n}\n.datepicker-dropdown.datepicker-orient-top:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker table {\n  margin: 0;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.datepicker table tr td,\n.datepicker table tr th {\n  text-align: center;\n  width: 30px;\n  height: 30px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.day:hover,\n.datepicker table tr td.focused {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n  border-radius: 0;\n}\n.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:hover {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  color: #000000;\n  background-color: #afd9ee;\n  border-color: #52addb;\n}\n.datepicker table tr td.highlighted:active:hover,\n.datepicker table tr td.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted:active:focus,\n.datepicker table tr td.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted:active.focus,\n.datepicker table tr td.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.highlighted.focus {\n  color: #000000;\n  background-color: #91cbe8;\n  border-color: #298fc2;\n}\n.datepicker table tr td.highlighted:active,\n.datepicker table tr td.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.highlighted.disabled:hover,\n.datepicker table tr td.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.highlighted:hover,\n.datepicker table tr td.highlighted.disabled:focus,\n.datepicker table tr td.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.highlighted:focus,\n.datepicker table tr td.highlighted.disabled.focus,\n.datepicker table tr td.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.highlighted.focus {\n  background-color: #d9edf7;\n  border-color: #85c5e5;\n}\n.datepicker table tr td.highlighted.focused {\n  background: #afd9ee;\n}\n.datepicker table tr td.highlighted.disabled,\n.datepicker table tr td.highlighted.disabled:active {\n  background: #d9edf7;\n  color: #999999;\n}\n.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today:focus,\n.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:hover {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  color: #000000;\n  background-color: #ffc966;\n  border-color: #f59e00;\n}\n.datepicker table tr td.today:active:hover,\n.datepicker table tr td.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.today:hover,\n.datepicker table tr td.today:active:focus,\n.datepicker table tr td.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.today:focus,\n.datepicker table tr td.today:active.focus,\n.datepicker table tr td.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.today.focus {\n  color: #000000;\n  background-color: #ffbc42;\n  border-color: #b37400;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today.active,\n.open > .dropdown-toggle.datepicker table tr td.today {\n  background-image: none;\n}\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled:focus,\n.datepicker table tr td.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.today:focus,\n.datepicker table tr td.today.disabled.focus,\n.datepicker table tr td.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.today.focus {\n  background-color: #ffdb99;\n  border-color: #ffb733;\n}\n.datepicker table tr td.today.focused {\n  background: #ffc966;\n}\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:active {\n  background: #ffdb99;\n  color: #999999;\n}\n.datepicker table tr td.range {\n  color: #000000;\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n  border-radius: 0;\n}\n.datepicker table tr td.range:focus,\n.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:hover {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  color: #000000;\n  background-color: #d5d5d5;\n  border-color: #9d9d9d;\n}\n.datepicker table tr td.range:active:hover,\n.datepicker table tr td.range.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range:hover,\n.datepicker table tr td.range:active:focus,\n.datepicker table tr td.range.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range:focus,\n.datepicker table tr td.range:active.focus,\n.datepicker table tr td.range.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.focus {\n  color: #000000;\n  background-color: #c3c3c3;\n  border-color: #7c7c7c;\n}\n.datepicker table tr td.range:active,\n.datepicker table tr td.range.active,\n.open > .dropdown-toggle.datepicker table tr td.range {\n  background-image: none;\n}\n.datepicker table tr td.range.disabled:hover,\n.datepicker table tr td.range[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled:focus,\n.datepicker table tr td.range[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range:focus,\n.datepicker table tr td.range.disabled.focus,\n.datepicker table tr td.range[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.focus {\n  background-color: #eeeeee;\n  border-color: #bbbbbb;\n}\n.datepicker table tr td.range.focused {\n  background: #d5d5d5;\n}\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:active {\n  background: #eeeeee;\n  color: #999999;\n}\n.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:hover {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  color: #000000;\n  background-color: #c1d7e3;\n  border-color: #73a6c0;\n}\n.datepicker table tr td.range.highlighted:active:hover,\n.datepicker table tr td.range.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted:active:focus,\n.datepicker table tr td.range.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted:active.focus,\n.datepicker table tr td.range.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted.focus {\n  color: #000000;\n  background-color: #a8c8d8;\n  border-color: #4b88a6;\n}\n.datepicker table tr td.range.highlighted:active,\n.datepicker table tr td.range.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.range.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.range.highlighted.disabled:hover,\n.datepicker table tr td.range.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.highlighted:hover,\n.datepicker table tr td.range.highlighted.disabled:focus,\n.datepicker table tr td.range.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted:focus,\n.datepicker table tr td.range.highlighted.disabled.focus,\n.datepicker table tr td.range.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.highlighted.focus {\n  background-color: #e4eef3;\n  border-color: #9dc1d3;\n}\n.datepicker table tr td.range.highlighted.focused {\n  background: #c1d7e3;\n}\n.datepicker table tr td.range.highlighted.disabled,\n.datepicker table tr td.range.highlighted.disabled:active {\n  background: #e4eef3;\n  color: #999999;\n}\n.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:hover {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  color: #000000;\n  background-color: #f4b747;\n  border-color: #bf800c;\n}\n.datepicker table tr td.range.today:active:hover,\n.datepicker table tr td.range.today.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:active:focus,\n.datepicker table tr td.range.today.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today:active.focus,\n.datepicker table tr td.range.today.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.range.today.focus {\n  color: #000000;\n  background-color: #f2aa25;\n  border-color: #815608;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today.active,\n.open > .dropdown-toggle.datepicker table tr td.range.today {\n  background-image: none;\n}\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled:focus,\n.datepicker table tr td.range.today[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.range.today:focus,\n.datepicker table tr td.range.today.disabled.focus,\n.datepicker table tr td.range.today[disabled].focus,\nfieldset[disabled] .datepicker table tr td.range.today.focus {\n  background-color: #f7ca77;\n  border-color: #f1a417;\n}\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:active {\n  background: #f7ca77;\n  color: #999999;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #999999;\n  border-color: #555555;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:focus,\n.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.focus,\n.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.highlighted:hover {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  color: #ffffff;\n  background-color: #808080;\n  border-color: #373737;\n}\n.datepicker table tr td.selected:active:hover,\n.datepicker table tr td.selected.highlighted:active:hover,\n.datepicker table tr td.selected.active:hover,\n.datepicker table tr td.selected.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected:hover,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected:active:focus,\n.datepicker table tr td.selected.highlighted:active:focus,\n.datepicker table tr td.selected.active:focus,\n.datepicker table tr td.selected.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected:focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected:active.focus,\n.datepicker table tr td.selected.highlighted:active.focus,\n.datepicker table tr td.selected.active.focus,\n.datepicker table tr td.selected.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.focus,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted.focus {\n  color: #ffffff;\n  background-color: #6e6e6e;\n  border-color: #161616;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected.highlighted:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.selected,\n.open > .dropdown-toggle.datepicker table tr td.selected.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.highlighted.disabled:hover,\n.datepicker table tr td.selected[disabled]:hover,\n.datepicker table tr td.selected.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.selected:hover,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:hover,\n.datepicker table tr td.selected.disabled:focus,\n.datepicker table tr td.selected.highlighted.disabled:focus,\n.datepicker table tr td.selected[disabled]:focus,\n.datepicker table tr td.selected.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.selected:focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted:focus,\n.datepicker table tr td.selected.disabled.focus,\n.datepicker table tr td.selected.highlighted.disabled.focus,\n.datepicker table tr td.selected[disabled].focus,\n.datepicker table tr td.selected.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.selected.focus,\nfieldset[disabled] .datepicker table tr td.selected.highlighted.focus {\n  background-color: #999999;\n  border-color: #555555;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:focus,\n.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.focus,\n.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.highlighted:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td.active:active:hover,\n.datepicker table tr td.active.highlighted:active:hover,\n.datepicker table tr td.active.active:hover,\n.datepicker table tr td.active.highlighted.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active:hover,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active:active:focus,\n.datepicker table tr td.active.highlighted:active:focus,\n.datepicker table tr td.active.active:focus,\n.datepicker table tr td.active.highlighted.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active:focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active:active.focus,\n.datepicker table tr td.active.highlighted:active.focus,\n.datepicker table tr td.active.active.focus,\n.datepicker table tr td.active.highlighted.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.focus,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active.highlighted:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active.highlighted.active,\n.open > .dropdown-toggle.datepicker table tr td.active,\n.open > .dropdown-toggle.datepicker table tr td.active.highlighted {\n  background-image: none;\n}\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.highlighted.disabled:hover,\n.datepicker table tr td.active[disabled]:hover,\n.datepicker table tr td.active.highlighted[disabled]:hover,\nfieldset[disabled] .datepicker table tr td.active:hover,\nfieldset[disabled] .datepicker table tr td.active.highlighted:hover,\n.datepicker table tr td.active.disabled:focus,\n.datepicker table tr td.active.highlighted.disabled:focus,\n.datepicker table tr td.active[disabled]:focus,\n.datepicker table tr td.active.highlighted[disabled]:focus,\nfieldset[disabled] .datepicker table tr td.active:focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted:focus,\n.datepicker table tr td.active.disabled.focus,\n.datepicker table tr td.active.highlighted.disabled.focus,\n.datepicker table tr td.active[disabled].focus,\n.datepicker table tr td.active.highlighted[disabled].focus,\nfieldset[disabled] .datepicker table tr td.active.focus,\nfieldset[disabled] .datepicker table tr td.active.highlighted.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:focus,\n.datepicker table tr td span.active:hover:focus,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.focus,\n.datepicker table tr td span.active:hover.focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  color: #ffffff;\n  background-color: #3071a9;\n  border-color: #285e8e;\n}\n.datepicker table tr td span.active:active:hover,\n.datepicker table tr td span.active:hover:active:hover,\n.datepicker table tr td span.active.disabled:active:hover,\n.datepicker table tr td span.active.disabled:hover:active:hover,\n.datepicker table tr td span.active.active:hover,\n.datepicker table tr td span.active:hover.active:hover,\n.datepicker table tr td span.active.disabled.active:hover,\n.datepicker table tr td span.active.disabled:hover.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active:focus,\n.datepicker table tr td span.active:hover:active:focus,\n.datepicker table tr td span.active.disabled:active:focus,\n.datepicker table tr td span.active.disabled:hover:active:focus,\n.datepicker table tr td span.active.active:focus,\n.datepicker table tr td span.active:hover.active:focus,\n.datepicker table tr td span.active.disabled.active:focus,\n.datepicker table tr td span.active.disabled:hover.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active:active.focus,\n.datepicker table tr td span.active:hover:active.focus,\n.datepicker table tr td span.active.disabled:active.focus,\n.datepicker table tr td span.active.disabled:hover:active.focus,\n.datepicker table tr td span.active.active.focus,\n.datepicker table tr td span.active:hover.active.focus,\n.datepicker table tr td span.active.disabled.active.focus,\n.datepicker table tr td span.active.disabled:hover.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled.focus,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover.focus {\n  color: #ffffff;\n  background-color: #285e8e;\n  border-color: #193c5a;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.open > .dropdown-toggle.datepicker table tr td span.active,\n.open > .dropdown-toggle.datepicker table tr td span.active:hover,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled,\n.open > .dropdown-toggle.datepicker table tr td span.active.disabled:hover {\n  background-image: none;\n}\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active:hover.disabled:hover,\n.datepicker table tr td span.active.disabled.disabled:hover,\n.datepicker table tr td span.active.disabled:hover.disabled:hover,\n.datepicker table tr td span.active[disabled]:hover,\n.datepicker table tr td span.active:hover[disabled]:hover,\n.datepicker table tr td span.active.disabled[disabled]:hover,\n.datepicker table tr td span.active.disabled:hover[disabled]:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover,\nfieldset[disabled] .datepicker table tr td span.active:hover:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active.disabled:focus,\n.datepicker table tr td span.active:hover.disabled:focus,\n.datepicker table tr td span.active.disabled.disabled:focus,\n.datepicker table tr td span.active.disabled:hover.disabled:focus,\n.datepicker table tr td span.active[disabled]:focus,\n.datepicker table tr td span.active:hover[disabled]:focus,\n.datepicker table tr td span.active.disabled[disabled]:focus,\n.datepicker table tr td span.active.disabled:hover[disabled]:focus,\nfieldset[disabled] .datepicker table tr td span.active:focus,\nfieldset[disabled] .datepicker table tr td span.active:hover:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus,\n.datepicker table tr td span.active.disabled.focus,\n.datepicker table tr td span.active:hover.disabled.focus,\n.datepicker table tr td span.active.disabled.disabled.focus,\n.datepicker table tr td span.active.disabled:hover.disabled.focus,\n.datepicker table tr td span.active[disabled].focus,\n.datepicker table tr td span.active:hover[disabled].focus,\n.datepicker table tr td span.active.disabled[disabled].focus,\n.datepicker table tr td span.active.disabled:hover[disabled].focus,\nfieldset[disabled] .datepicker table tr td span.active.focus,\nfieldset[disabled] .datepicker table tr td span.active:hover.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled.focus,\nfieldset[disabled] .datepicker table tr td span.active.disabled:hover.focus {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker .datepicker-switch {\n  width: 145px;\n}\n.datepicker .datepicker-switch,\n.datepicker .prev,\n.datepicker .next,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker .datepicker-switch:hover,\n.datepicker .prev:hover,\n.datepicker .next:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.input-group.date .input-group-addon {\n  cursor: pointer;\n}\n.input-daterange {\n  width: 100%;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .input-group-addon {\n  width: auto;\n  min-width: 16px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: center;\n  text-shadow: 0 1px 0 #fff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: solid #cccccc;\n  border-width: 1px 0;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n.datepicker.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  float: left;\n  display: none;\n  min-width: 160px;\n  list-style: none;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 5px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n  -moz-background-clip: padding;\n  background-clip: padding-box;\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  color: #333333;\n  font-size: 13px;\n  line-height: 1.42857143;\n}\n.datepicker.dropdown-menu th,\n.datepicker.datepicker-inline th,\n.datepicker.dropdown-menu td,\n.datepicker.datepicker-inline td {\n  padding: 0px 5px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.js",
    "content": "/*!\n * Datepicker for Bootstrap v1.5.1 (https://github.com/eternicode/bootstrap-datepicker)\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */(function(factory){\n    if (typeof define === \"function\" && define.amd) {\n        define([\"jquery\"], factory);\n    } else if (typeof exports === 'object') {\n        factory(require('jquery'));\n    } else {\n        factory(jQuery);\n    }\n}(function($, undefined){\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction isUTCEquals(date1, date2) {\n\t\treturn (\n\t\t\tdate1.getUTCFullYear() === date2.getUTCFullYear() &&\n\t\t\tdate1.getUTCMonth() === date2.getUTCMonth() &&\n\t\t\tdate1.getUTCDate() === date2.getUTCDate()\n\t\t);\n\t}\n\tfunction alias(method){\n\t\treturn function(){\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\tfunction isValidDate(d) {\n\t\treturn d && !isNaN(d.getTime());\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n\t\t\t\t\tif (this[i].valueOf() === val)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.length = 0;\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\t$(element).data('datepicker', this);\n\t\tthis._process_options(options);\n\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = this.o.defaultViewDate;\n\t\tthis.focusDate = null;\n\n\t\tthis.element = $(element);\n\t\tthis.isInline = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\n\t\tthis.picker = $(DPGlobal.template);\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tthis.viewMode = this.o.startView;\n\n\t\tif (this.o.calendarWeeks)\n\t\t\tthis.picker.find('thead .datepicker-title, tfoot .today, tfoot .clear')\n\t\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t\t});\n\n\t\tthis._allow_update = false;\n\n\t\tthis.setStartDate(this._o.startDate);\n\t\tthis.setEndDate(this._o.endDate);\n\t\tthis.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);\n\t\tthis.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted);\n\t\tthis.setDatesDisabled(this.o.datesDisabled);\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis._allow_update = true;\n\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\tswitch (o.startView){\n\t\t\t\tcase 2:\n\t\t\t\tcase 'decade':\n\t\t\t\t\to.startView = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'year':\n\t\t\t\t\to.startView = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.startView = 0;\n\t\t\t}\n\n\t\t\tswitch (o.minViewMode){\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.minViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'years':\n\t\t\t\t\to.minViewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.minViewMode = 0;\n\t\t\t}\n\n\t\t\tswitch (o.maxViewMode) {\n\t\t\t\tcase 0:\n\t\t\t\tcase 'days':\n\t\t\t\t\to.maxViewMode = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.maxViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.maxViewMode = 2;\n\t\t\t}\n\n\t\t\to.startView = Math.min(o.startView, o.maxViewMode);\n\t\t\to.startView = Math.max(o.startView, o.minViewMode);\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = (o.weekStart + 6) % 7;\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled||[];\n\t\t\tif (!$.isArray(o.daysOfWeekDisabled))\n\t\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\\s]*/);\n\t\t\to.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\to.daysOfWeekHighlighted = o.daysOfWeekHighlighted||[];\n\t\t\tif (!$.isArray(o.daysOfWeekHighlighted))\n\t\t\t\to.daysOfWeekHighlighted = o.daysOfWeekHighlighted.split(/[,\\s]*/);\n\t\t\to.daysOfWeekHighlighted = $.map(o.daysOfWeekHighlighted, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\to.datesDisabled = o.datesDisabled||[];\n\t\t\tif (!$.isArray(o.datesDisabled)) {\n\t\t\t\tvar datesDisabled = [];\n\t\t\t\tdatesDisabled.push(DPGlobal.parseDate(o.datesDisabled, format, o.language));\n\t\t\t\to.datesDisabled = datesDisabled;\n\t\t\t}\n\t\t\to.datesDisabled = $.map(o.datesDisabled,function(d){\n\t\t\t\treturn DPGlobal.parseDate(d, format, o.language);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn /^auto|left|right|top|bottom$/.test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^left|right$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^top|bottom$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t\tif (o.defaultViewDate) {\n\t\t\t\tvar year = o.defaultViewDate.year || new Date().getFullYear();\n\t\t\t\tvar month = o.defaultViewDate.month || 0;\n\t\t\t\tvar day = o.defaultViewDate.day || 1;\n\t\t\t\to.defaultViewDate = UTCDate(year, month, day);\n\t\t\t} else {\n\t\t\t\to.defaultViewDate = UTCToday();\n\t\t\t}\n\t\t},\n\t\t_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n            var events = {\n                keyup: $.proxy(function(e){\n                    if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)\n                        this.update();\n                }, this),\n                keydown: $.proxy(this.keydown, this),\n                paste: $.proxy(this.paste, this)\n            };\n\n            if (this.o.showOnFocus === true) {\n                events.focus = $.proxy(this.show, this);\n            }\n\n            if (this.isInput) { // single input\n                this._events = [\n                    [this.element, events]\n                ];\n            }\n            else if (this.component && this.hasInput) { // component: input + button\n                this._events = [\n                    // For components that are not readonly, allow keyboard nav\n                    [this.element.find('input'), events],\n                    [this.component, {\n                        click: $.proxy(this.show, this)\n                    }]\n                ];\n            }\n\t\t\telse if (this.element.is('div')){  // inline datepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tif (this.o.immediateUpdates) {\n\t\t\t\t// Trigger input updates immediately on changed year/month\n\t\t\t\tthis._events.push([this.element, {\n\t\t\t\t\t'changeYear changeMonth': $.proxy(function(e){\n\t\t\t\t\t\tthis.update(e.date);\n\t\t\t\t\t}, this)\n\t\t\t\t}]);\n\t\t\t}\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\tmousedown: $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.hasClass('datepicker-inline')\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n      var element = this.component ? this.element.find('input') : this.element;\n\t\t\tif (element.attr('readonly') && this.o.enableOnReadonly === false)\n\t\t\t\treturn;\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo(this.o.container);\n\t\t\tthis.place();\n\t\t\tthis.picker.show();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t\tif ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {\n\t\t\t\t$(this.element).blur();\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tif (!this.picker.is(':visible'))\n\t\t\t\treturn this;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.viewMode = this.o.startView;\n\t\t\tthis.showMode();\n\n\t\t\tif (\n\t\t\t\tthis.o.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val() ||\n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t\treturn this;\n\t\t},\n\n\t\tremove: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tpaste: function(evt){\n\t\t\tvar dateString;\n\t\t\tif (evt.originalEvent.clipboardData && evt.originalEvent.clipboardData.types\n\t\t\t\t&& $.inArray('text/plain', evt.originalEvent.clipboardData.types) !== -1) {\n\t\t\t\tdateString = evt.originalEvent.clipboardData.getData('text/plain');\n\t\t\t}\n\t\t\telse if (window.clipboardData) {\n\t\t\t\tdateString = window.clipboardData.getData('Text');\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.setDate(dateString);\n\t\t\tthis.update();\n\t\t\tevt.preventDefault();\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\treturn utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\tvar selected_date = this.dates.get(-1);\n\t\t\tif (typeof selected_date !== 'undefined') {\n\t\t\t\treturn new Date(selected_date);\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\n\t\tclearDates: function(){\n\t\t\tvar element;\n\t\t\tif (this.isInput) {\n\t\t\t\telement = this.element;\n\t\t\t} else if (this.component) {\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\n\t\t\tif (element) {\n\t\t\t\telement.val('');\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t\tthis._trigger('changeDate');\n\n\t\t\tif (this.o.autoclose) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, $.map(args, this._utc_to_local));\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput){\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.element.val(formatted);\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekHighlighted: function(daysOfWeekHighlighted){\n\t\t\tthis._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDatesDisabled: function(datesDisabled){\n\t\t\tthis._process_options({datesDisabled: datesDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\tcontainer = $(this.o.container),\n\t\t\t\twindowWidth = container.width(),\n\t\t\t\tscrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),\n\t\t\t\tappendOffset = container.offset();\n\n\t\t\tvar parentsZindex = [];\n\t\t\tthis.element.parents().each(function(){\n\t\t\t\tvar itemZIndex = $(this).css('z-index');\n\t\t\t\tif (itemZIndex !== 'auto' && itemZIndex !== 0) parentsZindex.push(parseInt(itemZIndex));\n\t\t\t});\n\t\t\tvar zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left - appendOffset.left,\n\t\t\t\ttop = offset.top - appendOffset.top;\n\n\t\t\tif (this.o.container !== 'body') {\n\t\t\t\ttop += scrollTop;\n\t\t\t}\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\tif (offset.left < 0) {\n\t\t\t\t\t// component is outside the window on the left side. Move it into visible range\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\t} else if (left + calendarWidth > windowWidth) {\n\t\t\t\t\t// the calendar passes the widow right edge. Align it to component right side\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\tleft += width - calendarWidth;\n\t\t\t\t} else {\n\t\t\t\t\t// Default to left\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + top - calendarHeight;\n\t\t\t\tyorient = top_overflow < 0 ? 'bottom' : 'top';\n\t\t\t}\n\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\t\t\telse\n\t\t\t\ttop += height;\n\n\t\t\tif (this.o.rtl) {\n\t\t\t\tvar right = windowWidth - (left + width);\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tright: right,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tleft: left,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn this;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.element.find('input').val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\t!this.dateWithinRange(date) ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.dates.length)\n\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\t\t\telse\n\t\t\t\tthis.viewDate = this.o.defaultViewDate;\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t}\n\t\t\telse if (dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates))\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length)\n\t\t\t\tthis._trigger('clearDate');\n\n\t\t\tthis.fill();\n\t\t\tthis.element.change();\n\t\t\treturn this;\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '<tr>';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\tthis.picker.find('.datepicker-days .datepicker-switch')\n\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t});\n\t\t\t\thtml += '<th class=\"cw\">&#160;</th>';\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += '<th class=\"dow\">'+dates[this.o.language].daysMin[(dowCnt++)%7]+'</th>';\n\t\t\t}\n\t\t\thtml += '</tr>';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12){\n\t\t\t\thtml += '<span class=\"month\">'+dates[this.o.language].monthsShort[i++]+'</span>';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = new Date();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t}\n\t\t\telse if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\tif (this.o.todayHighlight &&\n\t\t\t\tdate.getUTCFullYear() === today.getFullYear() &&\n\t\t\t\tdate.getUTCMonth() === today.getMonth() &&\n\t\t\t\tdate.getUTCDate() === today.getDate()){\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (!this.dateWithinRange(date) || this.dateIsDisabled(date)){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){\n\t\t\t\tcls.push('highlighted');\n\t\t\t}\n\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t\tif (date.valueOf() === this.range[0]){\n          cls.push('range-start');\n        }\n        if (date.valueOf() === this.range[this.range.length-1]){\n          cls.push('range-end');\n        }\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n\t\t\t\ttitleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n\t\t\t\ttooltip;\n\t\t\tif (isNaN(year) || isNaN(month))\n\t\t\t\treturn;\n\t\t\tthis.picker.find('.datepicker-days thead .datepicker-switch')\n\t\t\t\t\t\t.text(DPGlobal.formatDate(new UTCDate(year, month), titleFormat, this.o.language));\n\t\t\tthis.picker.find('tfoot .today')\n\t\t\t\t\t\t.text(todaytxt)\n\t\t\t\t\t\t.toggle(this.o.todayBtn !== false);\n\t\t\tthis.picker.find('tfoot .clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.toggle(this.o.clearBtn !== false);\n\t\t\tthis.picker.find('thead .datepicker-title')\n\t\t\t\t\t\t.text(this.o.title)\n\t\t\t\t\t\t.toggle(this.o.title !== '');\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28),\n\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\tprevMonth.setUTCDate(day);\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tif (prevMonth.getUTCFullYear() < 100){\n        nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());\n      }\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekStart){\n\t\t\t\t\thtml.push('<tr>');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek =  (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push('<td class=\"cw\">'+ calWeek +'</td>');\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tvar before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t}\n\n\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\thtml.push('<td class=\"'+clsName.join(' ')+'\"' + (tooltip ? ' title=\"'+tooltip+'\"' : '') + '>'+prevMonth.getUTCDate() + '</td>');\n\t\t\t\ttooltip = null;\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekEnd){\n\t\t\t\t\thtml.push('</tr>');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').empty().append(html.join(''));\n\n\t\t\tvar monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('.datepicker-switch')\n\t\t\t\t\t\t\t.text(this.o.maxViewMode < 2 ? monthsTitle : year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\tif (this.o.beforeShowMonth !== $.noop){\n\t\t\t\tvar that = this;\n\t\t\t\t$.each(months, function(i, month){\n\t\t\t\t\tif (!$(month).hasClass('disabled')) {\n\t\t\t\t\t\tvar moDate = new Date(year, i, 1);\n\t\t\t\t\t\tvar before = that.o.beforeShowMonth(moDate);\n\t\t\t\t\t\tif (before === false)\n\t\t\t\t\t\t\t$(month).addClass('disabled');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datepicker-years')\n\t\t\t\t\t\t\t\t.find('.datepicker-switch')\n\t\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tvar years = $.map(this.dates, function(d){\n\t\t\t\t\treturn d.getUTCFullYear();\n\t\t\t\t}),\n\t\t\t\tclasses;\n\t\t\tfor (var i = -1; i < 11; i++){\n\t\t\t\tclasses = ['year'];\n\t\t\t\ttooltip = null;\n\n\t\t\t\tif (i === -1)\n\t\t\t\t\tclasses.push('old');\n\t\t\t\telse if (i === 10)\n\t\t\t\t\tclasses.push('new');\n\t\t\t\tif ($.inArray(year, years) !== -1)\n\t\t\t\t\tclasses.push('active');\n\t\t\t\tif (year < startYear || year > endYear)\n\t\t\t\t\tclasses.push('disabled');\n\n\t\t\t\tif (this.o.beforeShowYear !== $.noop) {\n\t\t\t\t\tvar yrBefore = this.o.beforeShowYear(new Date(year, 0, 1));\n\t\t\t\t\tif (yrBefore === undefined)\n\t\t\t\t\t\tyrBefore = {};\n\t\t\t\t\telse if (typeof(yrBefore) === 'boolean')\n\t\t\t\t\t\tyrBefore = {enabled: yrBefore};\n\t\t\t\t\telse if (typeof(yrBefore) === 'string')\n\t\t\t\t\t\tyrBefore = {classes: yrBefore};\n\t\t\t\t\tif (yrBefore.enabled === false)\n\t\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t\tif (yrBefore.classes)\n\t\t\t\t\t\tclasses = classes.concat(yrBefore.classes.split(/\\s+/));\n\t\t\t\t\tif (yrBefore.tooltip)\n\t\t\t\t\t\ttooltip = yrBefore.tooltip;\n\t\t\t\t}\n\n\t\t\t\thtml += '<span class=\"' + classes.join(' ') + '\"' + (tooltip ? ' title=\"'+tooltip+'\"' : '') + '>' + year + '</span>';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth();\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() || this.o.maxViewMode < 2){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() || this.o.maxViewMode < 2){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tvar target = $(e.target).closest('span, td, th'),\n\t\t\t\tyear, month, day;\n\t\t\tif (target.length === 1){\n\t\t\t\tswitch (target[0].nodeName.toLowerCase()){\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch (target[0].className){\n\t\t\t\t\t\t\tcase 'datepicker-switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch (this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode === 1)\n\t\t\t\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tthis.showMode(-2);\n\t\t\t\t\t\t\t\tvar which = this.o.todayBtn === 'linked' ? null : 'view';\n\t\t\t\t\t\t\t\tthis._setDate(UTCToday(), which);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clear':\n\t\t\t\t\t\t\t\tthis.clearDates();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.hasClass('disabled')){\n\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\tif (target.hasClass('month')){\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 1){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t\tthis.showMode();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10)||0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 2){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.hasClass('day') && !target.hasClass('disabled')){\n\t\t\t\t\t\t\tday = parseInt(target.text(), 10)||1;\n\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth();\n\t\t\t\t\t\t\tif (target.hasClass('old')){\n\t\t\t\t\t\t\t\tif (month === 0){\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (target.hasClass('new')){\n\t\t\t\t\t\t\t\tif (month === 11){\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\t$(this._focused_from).focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\n\t\t\tif (ix !== -1){\n\t\t\t\tif (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){\n\t\t\t\t\tthis.dates.remove(ix);\n\t\t\t\t}\n\t\t\t} else if (this.o.multidate === false) {\n\t\t\t\tthis.dates.clear();\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif (!which || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tif (!which || which !== 'view') {\n\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tvar element;\n\t\t\tif (this.isInput){\n\t\t\t\telement = this.element;\n\t\t\t}\n\t\t\telse if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element){\n\t\t\t\telement.change();\n\t\t\t}\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveDay: function(date, dir){\n\t\t\tvar newDate = new Date(date);\n\t\t\tnewDate.setUTCDate(date.getUTCDate() + dir);\n\n\t\t\treturn newDate;\n\t\t},\n\n\t\tmoveWeek: function(date, dir){\n\t\t\treturn this.moveDay(date, dir * 7);\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!isValidDate(date))\n\t\t\t\treturn this.o.defaultViewDate;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tmoveAvailableDate: function(date, dir, fn){\n\t\t\tdo {\n\t\t\t\tdate = this[fn](date, dir);\n\n\t\t\t\tif (!this.dateWithinRange(date))\n\t\t\t\t\treturn false;\n\n\t\t\t\tfn = 'moveDay';\n\t\t\t}\n\t\t\twhile (this.dateIsDisabled(date));\n\n\t\t\treturn date;\n\t\t},\n\n\t\tweekOfDateIsDisabled: function(date){\n\t\t\treturn $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;\n\t\t},\n\n\t\tdateIsDisabled: function(date){\n\t\t\treturn (\n\t\t\t\tthis.weekOfDateIsDisabled(date) ||\n\t\t\t\t$.grep(this.o.datesDisabled, function(d){\n\t\t\t\t\treturn isUTCEquals(date, d);\n\t\t\t\t}).length > 0\n\t\t\t);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (!this.picker.is(':visible')){\n\t\t\t\tif (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\t\te.stopPropagation();\n        }\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 39: // right\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n\n\t\t\t\t\t\tif (newViewDate)\n\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n\n\t\t\t\t\t\tif (newViewDate)\n\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.keyCode === 37 || e.keyCode === 39){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');\n\t\t\t\t\t}\n\t\t\t\t\telse if (!this.weekOfDateIsDisabled(focusDate)){\n\t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');\n\t\t\t\t\t}\n\t\t\t\t\tif (newViewDate){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tif (!this.o.forceParse)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tif (this.o.keyboardNavigation) {\n\t\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput){\n\t\t\t\t\telement = this.element;\n\t\t\t\t}\n\t\t\t\telse if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element){\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir){\n\t\t\tif (dir){\n\t\t\t\tthis.viewMode = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, this.viewMode + dir));\n\t\t\t}\n\t\t\tthis.picker\n\t\t\t\t.children('div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-' + DPGlobal.modes[this.viewMode].clsName)\n\t\t\t\t\t.show();\n\t\t\tthis.updateNavArrows();\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\t$(element).data('datepicker', this);\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\tdatepickerPlugin.call($(this.inputs), options)\n\t\t\t.on('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $(i).data('datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling.  Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $(e.target).data('datepicker');\n\n\t\t\tif (typeof(dp) === \"undefined\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar new_date = dp.getUTCDate(),\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tj = i - 1,\n\t\t\t\tk = i + 1,\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate())\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[j]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (j >= 0 && new_date < this.dates[j]){\n\t\t\t\t\tthis.pickers[j--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (new_date > this.dates[k]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (k < l && new_date > this.dates[k]){\n\t\t\t\t\tthis.pickers[k++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tremove: function(){\n\t\t\t$.map(this.pickers, function(p){ p.remove(); });\n\t\t\tdelete this.element.data().datepicker;\n\t\t}\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\tvar datepickerPlugin = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.hasClass('input-daterange') || opts.inputs){\n\t\t\t\t\t$.extend(opts, {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t});\n\t\t\t\t\tdata = new DateRangePicker(this, opts);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata = new Datepicker(this, opts);\n\t\t\t\t}\n\t\t\t\t$this.data('datepicker', data);\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t}\n\t\t});\n\n\t\tif (\n\t\t\tinternal_return === undefined ||\n\t\t\tinternal_return instanceof Datepicker ||\n\t\t\tinternal_return instanceof DateRangePicker\n\t\t)\n\t\t\treturn this;\n\n\t\tif (this.length > 1)\n\t\t\tthrow new Error('Using only allowed for the collection of a single element (' + option + ' function)');\n\t\telse\n\t\t\treturn internal_return;\n\t};\n\t$.fn.datepicker = datepickerPlugin;\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tbeforeShowMonth: $.noop,\n\t\tbeforeShowYear: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\ttoggleActive: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tdaysOfWeekHighlighted: [],\n\t\tdatesDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmaxViewMode: 2,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tweekStart: 0,\n\t\tdisableTouchKeyboard: false,\n\t\tenableOnReadonly: true,\n\t\tshowOnFocus: true,\n\t\tzIndexOffset: 10,\n\t\tcontainer: 'body',\n\t\timmediateUpdates: false,\n\t\ttitle: ''\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\",\n\t\t\ttitleFormat: \"MM yyyy\"\n\t\t},\n\t\tcn: {\n\t\t\tdays: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\", \"周日\"],\n\t\t\tdaysShort: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\"],\n\t\t\tdaysMin: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\"],\n\t\t\tmonths: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\tmonthsShort: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\ttoday: \"今天\",\n\t\t\tclear: \"清除\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function(year){\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\t\t},\n\t\tgetDaysInMonth: function(year, month){\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\t\t},\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\[\\u3400-\\u9fff-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\tif (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')\n                return format;\n            // IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toValue)\n                return format.toValue(date, format, language);\n            var part_re = /([\\-+]\\d+)([dmwy])/,\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g),\n\t\t\t\tfn_map = {\n\t\t\t\t\td: 'moveDay',\n\t\t\t\t\tm: 'moveMonth',\n\t\t\t\t\tw: 'moveWeek',\n\t\t\t\t\ty: 'moveYear'\n\t\t\t\t},\n\t\t\t\tpart, dir, i, fn;\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tfn = fn_map[part[2]];\n\t\t\t\t\tdate = Datepicker.prototype[fn](date, dir);\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n\t\t\t}\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\t\t\tdate = new Date();\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(v);\n\t\t\t\t\t},\n\t\t\t\t\tyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(2000+v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCToday();\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m.toLowerCase() === p.toLowerCase();\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toDisplay)\n                return format.toDisplay(date, format, language);\n            var val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: '<thead>'+\n\t\t\t              '<tr>'+\n\t\t\t                '<th colspan=\"7\" class=\"datepicker-title\"></th>'+\n\t\t\t              '</tr>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th class=\"prev\"><i class=\"fa fa-angle-left\"></i></th>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"5\" class=\"datepicker-switch\"></th>'+\n\t\t\t\t\t\t\t\t'<th class=\"next\"><i class=\"fa fa-angle-right\"></i></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t'</thead>',\n\t\tcontTemplate: '<tbody><tr><td colspan=\"7\"></td></tr></tbody>',\n\t\tfootTemplate: '<tfoot>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"7\" class=\"today\"></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"7\" class=\"clear\"></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t'</tfoot>'\n\t};\n\tDPGlobal.template = '<div class=\"datepicker\">'+\n\t\t\t\t\t\t\t'<div class=\"datepicker-days\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t'<tbody></tbody>'+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datepicker-months\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datepicker-years\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'</div>';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\t/* DATEPICKER VERSION\n\t * =================== */\n\t$.fn.datepicker.version = '1.5.1';\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\tdatepickerPlugin.call($this, 'show');\n\t\t}\n\t);\n\t$(function(){\n\t\tdatepickerPlugin.call($('[data-provide=\"datepicker-inline\"]'));\n\t});\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-daterangepicker/daterangepicker.css",
    "content": "/**\n* A stylesheet for use with Bootstrap 3.x\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved.\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\n* @website: https://www.improvely.com/\n*/\n\n/* Container Appearance */\n\n.daterangepicker {\n  position: absolute;\n  background: #fff;\n  top: 100px;\n  left: 20px;\n  padding: 4px;\n  margin-top: 1px;\n  border-radius: 4px;\n  width:278px;\n}\n\n.daterangepicker.opensleft:before {\n  position: absolute;\n  top: -7px;\n  right: 9px;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.daterangepicker.opensleft:after {\n  position: absolute;\n  top: -6px;\n  right: 10px;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #fff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.daterangepicker.openscenter:before {\n  position: absolute;\n  top: -7px;\n  left: 0;\n  right: 0;\n  width: 0;\n  margin-left: auto;\n  margin-right: auto;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.daterangepicker.openscenter:after {\n  position: absolute;\n  top: -6px;\n  left: 0;\n  right: 0;\n  width: 0;\n  margin-left: auto;\n  margin-right: auto;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #fff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.daterangepicker.opensright:before {\n  position: absolute;\n  top: -7px;\n  left: 9px;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.daterangepicker.opensright:after {\n  position: absolute;\n  top: -6px;\n  left: 10px;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #fff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.daterangepicker.dropup{\n  margin-top: -5px;\n}\n.daterangepicker.dropup:before{\n  top: initial;\n  bottom:-7px;\n  border-bottom: initial;\n  border-top: 7px solid #ccc;\n}\n.daterangepicker.dropup:after{\n  top: initial;\n  bottom:-6px;\n  border-bottom: initial;\n  border-top: 6px solid #fff;\n}\n\n.daterangepicker.dropdown-menu {\n  max-width: none;\n  z-index: 3000;\n}\n\n.daterangepicker.single .ranges, .daterangepicker.single .calendar {\n  float: none;\n}\n\n.daterangepicker .calendar {\n  display: none;\n  max-width: 270px;\n  margin: 4px;\n}\n\n.daterangepicker.show-calendar .calendar {\n  display: block;\n}\n\n.daterangepicker .calendar.single .calendar-table {\n  border: none;\n}\n\n/* Calendars */\n\n.daterangepicker .calendar th, .daterangepicker .calendar td {\n  white-space: nowrap;\n  text-align: center;\n  min-width: 32px;\n}\n\n.daterangepicker .calendar-table {\n  border: 1px solid #ddd;\n  padding: 4px;\n  border-radius: 4px;\n  background: #fff;\n}\n\n.daterangepicker table {\n  width: 100%;\n  margin: 0;\n}\n\n.daterangepicker td, .daterangepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  border-radius: 4px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n\n.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {\n  color: #999;\n  background: #fff;\n}\n\n.daterangepicker td.disabled, .daterangepicker option.disabled {\n  color: #999;\n  cursor: not-allowed;\n  text-decoration: line-through;\n}\n\n.daterangepicker td.available:hover, .daterangepicker th.available:hover {\n  background: #eee;\n}\n\n.daterangepicker td.in-range {\n  background: #ebf4f8;\n  border-radius: 0;\n}\n\n.daterangepicker td.start-date {\n  border-radius: 4px 0 0 4px;\n}\n\n.daterangepicker td.end-date {\n  border-radius: 0 4px 4px 0;\n}\n\n.daterangepicker td.start-date.end-date {\n  border-radius: 4px;\n}\n\n.daterangepicker td.active, .daterangepicker td.active:hover {\n  background-color: #357ebd;\n  border-color: #3071a9;\n  color: #fff;\n}\n\n.daterangepicker td.week, .daterangepicker th.week {\n  font-size: 80%;\n  color: #ccc;\n}\n\n.daterangepicker select.monthselect, .daterangepicker select.yearselect {\n  font-size: 12px;\n  padding: 1px;\n  height: auto;\n  margin: 0;\n  cursor: default;\n}\n\n.daterangepicker select.monthselect {\n  margin-right: 2%;\n  width: 56%;\n}\n\n.daterangepicker select.yearselect {\n  width: 40%;\n}\n\n.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {\n  width: 50px;\n  margin-bottom: 0;\n}\n\n.daterangepicker th.month {\n  width: auto;\n}\n\n/* Text Input Above Each Calendar */\n\n.daterangepicker .input-mini {\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  color: #555;\n  display: block;\n  height: 30px;\n  line-height: 30px;\n  vertical-align: middle;\n  margin: 0 0 5px 0;\n  padding: 0 6px 0 28px;\n  width: 100%;\n}\n\n.daterangepicker .input-mini.active {\n  border: 1px solid #357ebd;\n}\n\n.daterangepicker .daterangepicker_input i {\n  position: absolute;\n  left: 8px;\n  top: 8px;\n}\n\n.daterangepicker .daterangepicker_input {\n  position: relative;\n}\n\n/* Time Picker */\n\n.daterangepicker .calendar-time {\n  text-align: center;\n  margin: 5px auto;\n  line-height: 30px;\n  position: relative;\n  padding-left: 28px;\n}\n\n.daterangepicker .calendar-time select.disabled {\n  color: #ccc;\n  cursor: not-allowed;\n}\n\n/* Predefined Ranges */\n\n.daterangepicker .ranges {\n  font-size: 11px;\n  float: none;\n  margin: 4px;\n  text-align: left;\n}\n\n.daterangepicker .ranges ul {\n  list-style: none;\n  margin: 0 auto;\n  padding: 0;\n  width: 100%;\n}\n\n.daterangepicker .ranges li {\n  font-size: 13px;\n  background: #f5f5f5;\n  border: 1px solid #f5f5f5;\n  color: #08c;\n  padding: 3px 12px;\n  margin-bottom: 8px;\n  border-radius: 5px;\n  cursor: pointer;\n}\n\n.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover {\n  background: #08c;\n  border: 1px solid #08c;\n  color: #fff;\n}\n\n/*  Larger Screen Styling */\n@media (min-width: 564px) {\n  .daterangepicker{\n    width: auto;\n  }\n\n  .daterangepicker .ranges ul {\n    width: 160px;\n  }\n  .daterangepicker.single .ranges ul {\n    width: 100%;\n  }\n  .daterangepicker .calendar.left .calendar-table {\n    border-right: none;\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  .daterangepicker .calendar.right .calendar-table {\n    border-left: none;\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n\n  .daterangepicker .calendar.left {\n    clear: left;\n    margin-right: 0;\n  }\n  .daterangepicker.single .calendar.left {\n    clear: none;\n  }\n  .daterangepicker.single .ranges,\n  .daterangepicker.single .calendar{\n    float:left;\n  }\n\n  .daterangepicker .calendar.right {\n    margin-left: 0;\n  }\n\n  .daterangepicker .left .daterangepicker_input {\n    padding-right: 12px;\n  }\n\n  .daterangepicker .calendar.left .calendar-table {\n    padding-right: 12px;\n  }\n\n  .daterangepicker .ranges,\n  .daterangepicker .calendar {\n    float: left;\n  }\n}\n\n@media (min-width: 730px) {\n  .daterangepicker .ranges {\n    width: auto;\n    float: left;\n  }\n  .daterangepicker .calendar.left {\n    clear: none;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-daterangepicker/daterangepicker.js",
    "content": "/**\n* @version: 2.1.13\n* @author: Dan Grossman http://www.dangrossman.info/\n* @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved.\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\n* @website: https://www.improvely.com/\n*/\n\n(function(root, factory) {\n\n  if (typeof define === 'function' && define.amd) {\n    define(['moment', 'jquery', 'exports'], function(momentjs, $, exports) {\n      root.daterangepicker = factory(root, exports, momentjs, $);\n    });\n\n  } else if (typeof exports !== 'undefined') {\n      var momentjs = require('moment');\n      var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;  //isomorphic issue\n      if (!jQuery) {\n          try {\n              jQuery = require('jquery');\n              if (!jQuery.fn) jQuery.fn = {}; //isomorphic issue\n          } catch (err) {\n              if (!jQuery) throw new Error('jQuery dependency not found');\n          }\n      }\n\n    factory(root, exports, momentjs, jQuery);\n\n  // Finally, as a browser global.\n  } else {\n    root.daterangepicker = factory(root, {}, root.moment || moment, (root.jQuery || root.Zepto || root.ender || root.$));\n  }\n\n}(this || {}, function(root, daterangepicker, moment, $) { // 'this' doesn't exist on a server\n\n    var DateRangePicker = function(element, options, cb) {\n\n        //default settings for options\n        this.parentEl = 'body';\n        this.element = $(element);\n        this.startDate = moment().startOf('day');\n        this.endDate = moment().endOf('day');\n        this.minDate = false;\n        this.maxDate = false;\n        this.dateLimit = false;\n        this.autoApply = false;\n        this.singleDatePicker = false;\n        this.showDropdowns = false;\n        this.showWeekNumbers = false;\n        this.timePicker = false;\n        this.timePicker24Hour = false;\n        this.timePickerIncrement = 1;\n        this.timePickerSeconds = false;\n        this.linkedCalendars = true;\n        this.autoUpdateInput = true;\n        this.ranges = {};\n\n        this.opens = 'right';\n        if (this.element.hasClass('pull-right'))\n            this.opens = 'left';\n\n        this.drops = 'down';\n        if (this.element.hasClass('dropup'))\n            this.drops = 'up';\n\n        this.buttonClasses = 'btn btn-sm';\n        this.applyClass = 'btn-success';\n        this.cancelClass = 'btn-default';\n\n        this.locale = {\n            format: 'MM/DD/YYYY',\n            separator: ' - ',\n            applyLabel: 'Apply',\n            cancelLabel: 'Cancel',\n            weekLabel: 'W',\n            customRangeLabel: 'Custom Range',\n            daysOfWeek: moment.weekdaysMin(),\n            monthNames: moment.monthsShort(),\n            firstDay: moment.localeData().firstDayOfWeek()\n        };\n\n        this.callback = function() { };\n\n        //some state information\n        this.isShowing = false;\n        this.leftCalendar = {};\n        this.rightCalendar = {};\n\n        //custom options from user\n        if (typeof options !== 'object' || options === null)\n            options = {};\n\n        //allow setting options with data attributes\n        //data-api options will be overwritten with custom javascript options\n        options = $.extend(this.element.data(), options);\n\n        //html template for the picker UI\n        if (typeof options.template !== 'string')\n            options.template = '<div class=\"daterangepicker dropdown-menu\">' +\n                '<div class=\"calendar left\">' +\n                    '<div class=\"daterangepicker_input\">' +\n                      '<input class=\"input-mini\" type=\"text\" name=\"daterangepicker_start\" value=\"\" />' +\n                      '<i class=\"fa fa-calendar\"></i>' +\n                      '<div class=\"calendar-time\">' +\n                        '<div></div>' +\n                        '<i class=\"fa fa-clock-o\"></i>' +\n                      '</div>' +\n                    '</div>' +\n                    '<div class=\"calendar-table\"></div>' +\n                '</div>' +\n                '<div class=\"calendar right\">' +\n                    '<div class=\"daterangepicker_input\">' +\n                      '<input class=\"input-mini\" type=\"text\" name=\"daterangepicker_end\" value=\"\" />' +\n                      '<i class=\"fa fa-calendar\"></i>' +\n                      '<div class=\"calendar-time\">' +\n                        '<div></div>' +\n                        '<i class=\"fa fa-clock-o\"></i>' +\n                      '</div>' +\n                    '</div>' +\n                    '<div class=\"calendar-table\"></div>' +\n                '</div>' +\n                '<div class=\"ranges\">' +\n                    '<div class=\"range_inputs\">' +\n                        '<button class=\"applyBtn\" disabled=\"disabled\" type=\"button\"></button> ' +\n                        '<button class=\"cancelBtn\" type=\"button\"></button>' +\n                    '</div>' +\n                '</div>' +\n            '</div>';\n\n        this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);\n        this.container = $(options.template).appendTo(this.parentEl);\n\n        //\n        // handle all the possible options overriding defaults\n        //\n\n        if (typeof options.locale === 'object') {\n\n            if (typeof options.locale.format === 'string')\n                this.locale.format = options.locale.format;\n\n            if (typeof options.locale.separator === 'string')\n                this.locale.separator = options.locale.separator;\n\n            if (typeof options.locale.daysOfWeek === 'object')\n                this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\n\n            if (typeof options.locale.monthNames === 'object')\n              this.locale.monthNames = options.locale.monthNames.slice();\n\n            if (typeof options.locale.firstDay === 'number')\n              this.locale.firstDay = options.locale.firstDay;\n\n            if (typeof options.locale.applyLabel === 'string')\n              this.locale.applyLabel = options.locale.applyLabel;\n\n            if (typeof options.locale.cancelLabel === 'string')\n              this.locale.cancelLabel = options.locale.cancelLabel;\n\n            if (typeof options.locale.weekLabel === 'string')\n              this.locale.weekLabel = options.locale.weekLabel;\n\n            if (typeof options.locale.customRangeLabel === 'string')\n              this.locale.customRangeLabel = options.locale.customRangeLabel;\n\n        }\n\n        if (typeof options.startDate === 'string')\n            this.startDate = moment(options.startDate, this.locale.format);\n\n        if (typeof options.endDate === 'string')\n            this.endDate = moment(options.endDate, this.locale.format);\n\n        if (typeof options.minDate === 'string')\n            this.minDate = moment(options.minDate, this.locale.format);\n\n        if (typeof options.maxDate === 'string')\n            this.maxDate = moment(options.maxDate, this.locale.format);\n\n        if (typeof options.startDate === 'object')\n            this.startDate = moment(options.startDate);\n\n        if (typeof options.endDate === 'object')\n            this.endDate = moment(options.endDate);\n\n        if (typeof options.minDate === 'object')\n            this.minDate = moment(options.minDate);\n\n        if (typeof options.maxDate === 'object')\n            this.maxDate = moment(options.maxDate);\n\n        // sanity check for bad options\n        if (this.minDate && this.startDate.isBefore(this.minDate))\n            this.startDate = this.minDate.clone();\n\n        // sanity check for bad options\n        if (this.maxDate && this.endDate.isAfter(this.maxDate))\n            this.endDate = this.maxDate.clone();\n\n        if (typeof options.applyClass === 'string')\n            this.applyClass = options.applyClass;\n\n        if (typeof options.cancelClass === 'string')\n            this.cancelClass = options.cancelClass;\n\n        if (typeof options.dateLimit === 'object')\n            this.dateLimit = options.dateLimit;\n\n        if (typeof options.opens === 'string')\n            this.opens = options.opens;\n\n        if (typeof options.drops === 'string')\n            this.drops = options.drops;\n\n        if (typeof options.showWeekNumbers === 'boolean')\n            this.showWeekNumbers = options.showWeekNumbers;\n\n        if (typeof options.buttonClasses === 'string')\n            this.buttonClasses = options.buttonClasses;\n\n        if (typeof options.buttonClasses === 'object')\n            this.buttonClasses = options.buttonClasses.join(' ');\n\n        if (typeof options.showDropdowns === 'boolean')\n            this.showDropdowns = options.showDropdowns;\n\n        if (typeof options.singleDatePicker === 'boolean') {\n            this.singleDatePicker = options.singleDatePicker;\n            if (this.singleDatePicker)\n                this.endDate = this.startDate.clone();\n        }\n\n        if (typeof options.timePicker === 'boolean')\n            this.timePicker = options.timePicker;\n\n        if (typeof options.timePickerSeconds === 'boolean')\n            this.timePickerSeconds = options.timePickerSeconds;\n\n        if (typeof options.timePickerIncrement === 'number')\n            this.timePickerIncrement = options.timePickerIncrement;\n\n        if (typeof options.timePicker24Hour === 'boolean')\n            this.timePicker24Hour = options.timePicker24Hour;\n\n        if (typeof options.autoApply === 'boolean')\n            this.autoApply = options.autoApply;\n\n        if (typeof options.autoUpdateInput === 'boolean')\n            this.autoUpdateInput = options.autoUpdateInput;\n\n        if (typeof options.linkedCalendars === 'boolean')\n            this.linkedCalendars = options.linkedCalendars;\n\n        if (typeof options.isInvalidDate === 'function')\n            this.isInvalidDate = options.isInvalidDate;\n\n        // update day names order to firstDay\n        if (this.locale.firstDay != 0) {\n            var iterator = this.locale.firstDay;\n            while (iterator > 0) {\n                this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\n                iterator--;\n            }\n        }\n\n        var start, end, range;\n\n        //if no start/end dates set, check if an input element contains initial values\n        if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\n            if ($(this.element).is('input[type=text]')) {\n                var val = $(this.element).val(),\n                    split = val.split(this.locale.separator);\n\n                start = end = null;\n\n                if (split.length == 2) {\n                    start = moment(split[0], this.locale.format);\n                    end = moment(split[1], this.locale.format);\n                } else if (this.singleDatePicker && val !== \"\") {\n                    start = moment(val, this.locale.format);\n                    end = moment(val, this.locale.format);\n                }\n                if (start !== null && end !== null) {\n                    this.setStartDate(start);\n                    this.setEndDate(end);\n                }\n            }\n        }\n\n        if (typeof options.ranges === 'object') {\n            for (range in options.ranges) {\n\n                if (typeof options.ranges[range][0] === 'string')\n                    start = moment(options.ranges[range][0], this.locale.format);\n                else\n                    start = moment(options.ranges[range][0]);\n\n                if (typeof options.ranges[range][1] === 'string')\n                    end = moment(options.ranges[range][1], this.locale.format);\n                else\n                    end = moment(options.ranges[range][1]);\n\n                // If the start or end date exceed those allowed by the minDate or dateLimit\n                // options, shorten the range to the allowable period.\n                if (this.minDate && start.isBefore(this.minDate))\n                    start = this.minDate.clone();\n\n                var maxDate = this.maxDate;\n                if (this.dateLimit && start.clone().add(this.dateLimit).isAfter(maxDate))\n                    maxDate = start.clone().add(this.dateLimit);\n                if (maxDate && end.isAfter(maxDate))\n                    end = maxDate.clone();\n\n                // If the end of the range is before the minimum or the start of the range is\n                // after the maximum, don't display this range option at all.\n                if ((this.minDate && end.isBefore(this.minDate)) || (maxDate && start.isAfter(maxDate)))\n                    continue;\n                \n                //Support unicode chars in the range names.\n                var elem = document.createElement('textarea');\n                elem.innerHTML = range;\n                rangeHtml = elem.value;\n\n                this.ranges[rangeHtml] = [start, end];\n            }\n\n            var list = '<ul>';\n            for (range in this.ranges) {\n                list += '<li>' + range + '</li>';\n            }\n            list += '<li>' + this.locale.customRangeLabel + '</li>';\n            list += '</ul>';\n            this.container.find('.ranges').prepend(list);\n        }\n\n        if (typeof cb === 'function') {\n            this.callback = cb;\n        }\n\n        if (!this.timePicker) {\n            this.startDate = this.startDate.startOf('day');\n            this.endDate = this.endDate.endOf('day');\n            this.container.find('.calendar-time').hide();\n        }\n\n        //can't be used together for now\n        if (this.timePicker && this.autoApply)\n            this.autoApply = false;\n\n        if (this.autoApply && typeof options.ranges !== 'object') {\n            this.container.find('.ranges').hide();\n        } else if (this.autoApply) {\n            this.container.find('.applyBtn, .cancelBtn').addClass('hide');\n        }\n\n        if (this.singleDatePicker) {\n            this.container.addClass('single');\n            this.container.find('.calendar.left').addClass('single');\n            this.container.find('.calendar.left').show();\n            this.container.find('.calendar.right').hide();\n            this.container.find('.daterangepicker_input input, .daterangepicker_input i').hide();\n            if (!this.timePicker) {\n                this.container.find('.ranges').hide();\n            }\n        }\n\n        if (typeof options.ranges === 'undefined' && !this.singleDatePicker) {\n            this.container.addClass('show-calendar');\n        }\n\n        this.container.addClass('opens' + this.opens);\n\n        //swap the position of the predefined ranges if opens right\n        if (typeof options.ranges !== 'undefined' && this.opens == 'right') {\n            var ranges = this.container.find('.ranges');\n            var html = ranges.clone();\n            ranges.remove();\n            this.container.find('.calendar.left').parent().prepend(html);\n        }\n\n        //apply CSS classes and labels to buttons\n        this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\n        if (this.applyClass.length)\n            this.container.find('.applyBtn').addClass(this.applyClass);\n        if (this.cancelClass.length)\n            this.container.find('.cancelBtn').addClass(this.cancelClass);\n        this.container.find('.applyBtn').html(this.locale.applyLabel);\n        this.container.find('.cancelBtn').html(this.locale.cancelLabel);\n\n        //\n        // event listeners\n        //\n\n        this.container.find('.calendar')\n            .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\n            .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\n            .on('click.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\n            .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\n            .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this))\n            .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\n            .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\n            .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this))\n            .on('click.daterangepicker', '.daterangepicker_input input', $.proxy(this.showCalendars, this))\n            //.on('keyup.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this))\n            .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this));\n\n        this.container.find('.ranges')\n            .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\n            .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this))\n            .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this))\n            .on('mouseenter.daterangepicker', 'li', $.proxy(this.hoverRange, this))\n            .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this));\n\n        if (this.element.is('input')) {\n            this.element.on({\n                'click.daterangepicker': $.proxy(this.show, this),\n                'focus.daterangepicker': $.proxy(this.show, this),\n                'keyup.daterangepicker': $.proxy(this.elementChanged, this),\n                'keydown.daterangepicker': $.proxy(this.keydown, this)\n            });\n        } else {\n            this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\n        }\n\n        //\n        // if attached to a text input, set the initial value\n        //\n\n        if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {\n            this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n            this.element.trigger('change');\n        } else if (this.element.is('input') && this.autoUpdateInput) {\n            this.element.val(this.startDate.format(this.locale.format));\n            this.element.trigger('change');\n        }\n\n    };\n\n    DateRangePicker.prototype = {\n\n        constructor: DateRangePicker,\n\n        setStartDate: function(startDate) {\n            if (typeof startDate === 'string')\n                this.startDate = moment(startDate, this.locale.format);\n\n            if (typeof startDate === 'object')\n                this.startDate = moment(startDate);\n\n            if (!this.timePicker)\n                this.startDate = this.startDate.startOf('day');\n\n            if (this.timePicker && this.timePickerIncrement)\n                this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n            if (this.minDate && this.startDate.isBefore(this.minDate))\n                this.startDate = this.minDate;\n\n            if (this.maxDate && this.startDate.isAfter(this.maxDate))\n                this.startDate = this.maxDate;\n\n            if (!this.isShowing)\n                this.updateElement();\n\n            this.updateMonthsInView();\n        },\n\n        setEndDate: function(endDate) {\n            if (typeof endDate === 'string')\n                this.endDate = moment(endDate, this.locale.format);\n\n            if (typeof endDate === 'object')\n                this.endDate = moment(endDate);\n\n            if (!this.timePicker)\n                this.endDate = this.endDate.endOf('day');\n\n            if (this.timePicker && this.timePickerIncrement)\n                this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\n\n            if (this.endDate.isBefore(this.startDate))\n                this.endDate = this.startDate.clone();\n\n            if (this.maxDate && this.endDate.isAfter(this.maxDate))\n                this.endDate = this.maxDate;\n\n            if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate))\n                this.endDate = this.startDate.clone().add(this.dateLimit);\n\n            if (!this.isShowing)\n                this.updateElement();\n\n            this.updateMonthsInView();\n        },\n\n        isInvalidDate: function() {\n            return false;\n        },\n\n        updateView: function() {\n            if (this.timePicker) {\n                this.renderTimePicker('left');\n                this.renderTimePicker('right');\n                if (!this.endDate) {\n                    this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled');\n                } else {\n                    this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled');\n                }\n            }\n            if (this.endDate) {\n                this.container.find('input[name=\"daterangepicker_end\"]').removeClass('active');\n                this.container.find('input[name=\"daterangepicker_start\"]').addClass('active');\n            } else {\n                this.container.find('input[name=\"daterangepicker_end\"]').addClass('active');\n                this.container.find('input[name=\"daterangepicker_start\"]').removeClass('active');\n            }\n            this.updateMonthsInView();\n            this.updateCalendars();\n            this.updateFormInputs();\n        },\n\n        updateMonthsInView: function() {\n            if (this.endDate) {\n\n                //if both dates are visible already, do nothing\n                if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\n                    (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n                    &&\n                    (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\n                    ) {\n                    return;\n                }\n\n                this.leftCalendar.month = this.startDate.clone().date(2);\n                if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\n                    this.rightCalendar.month = this.endDate.clone().date(2);\n                } else {\n                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n                }\n                \n            } else {\n                if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\n                    this.leftCalendar.month = this.startDate.clone().date(2);\n                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\n                }\n            }\n        },\n\n        updateCalendars: function() {\n\n            if (this.timePicker) {\n                var hour, minute, second;\n                if (this.endDate) {\n                    hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n                    minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n                    second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.left .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                } else {\n                    hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n                    minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n                    second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.right .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                }\n                this.leftCalendar.month.hour(hour).minute(minute).second(second);\n                this.rightCalendar.month.hour(hour).minute(minute).second(second);\n            }\n\n            this.renderCalendar('left');\n            this.renderCalendar('right');\n\n            //highlight any predefined range matching the current start and end dates\n            this.container.find('.ranges li').removeClass('active');\n            if (this.endDate == null) return;\n\n            var customRange = true;\n            var i = 0;\n            for (var range in this.ranges) {\n                if (this.timePicker) {\n                    if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) {\n                        customRange = false;\n                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();\n                        break;\n                    }\n                } else {\n                    //ignore times when comparing dates if time picker is not enabled\n                    if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\n                        customRange = false;\n                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();\n                        break;\n                    }\n                }\n                i++;\n            }\n            if (customRange) {\n                this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html();\n                this.showCalendars();\n            }\n\n        },\n\n        renderCalendar: function(side) {\n\n            //\n            // Build the matrix of dates that will populate the calendar\n            //\n\n            var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\n            var month = calendar.month.month();\n            var year = calendar.month.year();\n            var hour = calendar.month.hour();\n            var minute = calendar.month.minute();\n            var second = calendar.month.second();\n            var daysInMonth = moment([year, month]).daysInMonth();\n            var firstDay = moment([year, month, 1]);\n            var lastDay = moment([year, month, daysInMonth]);\n            var lastMonth = moment(firstDay).subtract(1, 'month').month();\n            var lastYear = moment(firstDay).subtract(1, 'month').year();\n            var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\n            var dayOfWeek = firstDay.day();\n\n            //initialize a 6 rows x 7 columns array for the calendar\n            var calendar = [];\n            calendar.firstDay = firstDay;\n            calendar.lastDay = lastDay;\n\n            for (var i = 0; i < 6; i++) {\n                calendar[i] = [];\n            }\n\n            //populate the calendar with date objects\n            var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\n            if (startDay > daysInLastMonth)\n                startDay -= 7;\n\n            if (dayOfWeek == this.locale.firstDay)\n                startDay = daysInLastMonth - 6;\n\n            var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\n\n            var col, row;\n            for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\n                if (i > 0 && col % 7 === 0) {\n                    col = 0;\n                    row++;\n                }\n                calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\n                curDate.hour(12);\n\n                if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\n                    calendar[row][col] = this.minDate.clone();\n                }\n\n                if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\n                    calendar[row][col] = this.maxDate.clone();\n                }\n\n            }\n\n            //make the calendar object available to hoverDate/clickDate\n            if (side == 'left') {\n                this.leftCalendar.calendar = calendar;\n            } else {\n                this.rightCalendar.calendar = calendar;\n            }\n\n            //\n            // Display the calendar\n            //\n\n            var minDate = side == 'left' ? this.minDate : this.startDate;\n            var maxDate = this.maxDate;\n            var selected = side == 'left' ? this.startDate : this.endDate;\n\n            var html = '<table class=\"table-condensed\">';\n            html += '<thead>';\n            html += '<tr>';\n\n            // add empty cell for week number\n            if (this.showWeekNumbers)\n                html += '<th></th>';\n\n            if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\n                html += '<th class=\"prev available\"><i class=\"fa fa-angle-left\"></i></th>';\n            } else {\n                html += '<th></th>';\n            }\n\n            var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\n\n            if (this.showDropdowns) {\n                var currentMonth = calendar[1][1].month();\n                var currentYear = calendar[1][1].year();\n                var maxYear = (maxDate && maxDate.year()) || (currentYear + 5);\n                var minYear = (minDate && minDate.year()) || (currentYear - 50);\n                var inMinYear = currentYear == minYear;\n                var inMaxYear = currentYear == maxYear;\n\n                var monthHtml = '<select class=\"monthselect\">';\n                for (var m = 0; m < 12; m++) {\n                    if ((!inMinYear || m >= minDate.month()) && (!inMaxYear || m <= maxDate.month())) {\n                        monthHtml += \"<option value='\" + m + \"'\" +\n                            (m === currentMonth ? \" selected='selected'\" : \"\") +\n                            \">\" + this.locale.monthNames[m] + \"</option>\";\n                    } else {\n                        monthHtml += \"<option value='\" + m + \"'\" +\n                            (m === currentMonth ? \" selected='selected'\" : \"\") +\n                            \" disabled='disabled'>\" + this.locale.monthNames[m] + \"</option>\";\n                    }\n                }\n                monthHtml += \"</select>\";\n\n                var yearHtml = '<select class=\"yearselect\">';\n                for (var y = minYear; y <= maxYear; y++) {\n                    yearHtml += '<option value=\"' + y + '\"' +\n                        (y === currentYear ? ' selected=\"selected\"' : '') +\n                        '>' + y + '</option>';\n                }\n                yearHtml += '</select>';\n\n                dateHtml = monthHtml + yearHtml;\n            }\n\n            html += '<th colspan=\"5\" class=\"month\">' + dateHtml + '</th>';\n            if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\n                html += '<th class=\"next available\"><i class=\"fa fa-angle-right\"></i></th>';\n            } else {\n                html += '<th></th>';\n            }\n\n            html += '</tr>';\n            html += '<tr>';\n\n            // add week number label\n            if (this.showWeekNumbers)\n                html += '<th class=\"week\">' + this.locale.weekLabel + '</th>';\n\n            $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {\n                html += '<th>' + dayOfWeek + '</th>';\n            });\n\n            html += '</tr>';\n            html += '</thead>';\n            html += '<tbody>';\n\n            //adjust maxDate to reflect the dateLimit setting in order to\n            //grey out end dates beyond the dateLimit\n            if (this.endDate == null && this.dateLimit) {\n                var maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day');\n                if (!maxDate || maxLimit.isBefore(maxDate)) {\n                    maxDate = maxLimit;\n                }\n            }\n\n            for (var row = 0; row < 6; row++) {\n                html += '<tr>';\n\n                // add week number\n                if (this.showWeekNumbers)\n                    html += '<td class=\"week\">' + calendar[row][0].week() + '</td>';\n\n                for (var col = 0; col < 7; col++) {\n\n                    var classes = [];\n\n                    //highlight today's date\n                    if (calendar[row][col].isSame(new Date(), \"day\"))\n                        classes.push('today');\n\n                    //highlight weekends\n                    if (calendar[row][col].isoWeekday() > 5)\n                        classes.push('weekend');\n\n                    //grey out the dates in other months displayed at beginning and end of this calendar\n                    if (calendar[row][col].month() != calendar[1][1].month())\n                        classes.push('off');\n\n                    //don't allow selection of dates before the minimum date\n                    if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\n                        classes.push('off', 'disabled');\n\n                    //don't allow selection of dates after the maximum date\n                    if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\n                        classes.push('off', 'disabled');\n\n                    //don't allow selection of date if a custom function decides it's invalid\n                    if (this.isInvalidDate(calendar[row][col]))\n                        classes.push('off', 'disabled');\n\n                    //highlight the currently selected start date\n                    if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\n                        classes.push('active', 'start-date');\n\n                    //highlight the currently selected end date\n                    if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\n                        classes.push('active', 'end-date');\n\n                    //highlight dates in-between the selected dates\n                    if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\n                        classes.push('in-range');\n\n                    var cname = '', disabled = false;\n                    for (var i = 0; i < classes.length; i++) {\n                        cname += classes[i] + ' ';\n                        if (classes[i] == 'disabled')\n                            disabled = true;\n                    }\n                    if (!disabled)\n                        cname += 'available';\n\n                    html += '<td class=\"' + cname.replace(/^\\s+|\\s+$/g, '') + '\" data-title=\"' + 'r' + row + 'c' + col + '\">' + calendar[row][col].date() + '</td>';\n\n                }\n                html += '</tr>';\n            }\n\n            html += '</tbody>';\n            html += '</table>';\n\n            this.container.find('.calendar.' + side + ' .calendar-table').html(html);\n\n        },\n\n        renderTimePicker: function(side) {\n\n            var html, selected, minDate, maxDate = this.maxDate;\n\n            if (this.dateLimit && (!this.maxDate || this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate)))\n                maxDate = this.startDate.clone().add(this.dateLimit);\n\n            if (side == 'left') {\n                selected = this.startDate.clone();\n                minDate = this.minDate;\n            } else if (side == 'right') {\n                selected = this.endDate ? this.endDate.clone() : this.startDate.clone();\n                minDate = this.startDate;\n            }\n\n            //\n            // hours\n            //\n\n            html = '<select class=\"hourselect\">';\n\n            var start = this.timePicker24Hour ? 0 : 1;\n            var end = this.timePicker24Hour ? 23 : 12;\n\n            for (var i = start; i <= end; i++) {\n                var i_in_24 = i;\n                if (!this.timePicker24Hour)\n                    i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);\n\n                var time = selected.clone().hour(i_in_24);\n                var disabled = false;\n                if (minDate && time.minute(59).isBefore(minDate))\n                    disabled = true;\n                if (maxDate && time.minute(0).isAfter(maxDate))\n                    disabled = true;\n\n                if (i_in_24 == selected.hour() && !disabled) {\n                    html += '<option value=\"' + i + '\" selected=\"selected\">' + i + '</option>';\n                } else if (disabled) {\n                    html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + i + '</option>';\n                } else {\n                    html += '<option value=\"' + i + '\">' + i + '</option>';\n                }\n            }\n\n            html += '</select> ';\n\n            //\n            // minutes\n            //\n\n            html += ': <select class=\"minuteselect\">';\n\n            for (var i = 0; i < 60; i += this.timePickerIncrement) {\n                var padded = i < 10 ? '0' + i : i;\n                var time = selected.clone().minute(i);\n\n                var disabled = false;\n                if (minDate && time.second(59).isBefore(minDate))\n                    disabled = true;\n                if (maxDate && time.second(0).isAfter(maxDate))\n                    disabled = true;\n\n                if (selected.minute() == i && !disabled) {\n                    html += '<option value=\"' + i + '\" selected=\"selected\">' + padded + '</option>';\n                } else if (disabled) {\n                    html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + padded + '</option>';\n                } else {\n                    html += '<option value=\"' + i + '\">' + padded + '</option>';\n                }\n            }\n\n            html += '</select> ';\n\n            //\n            // seconds\n            //\n\n            if (this.timePickerSeconds) {\n                html += ': <select class=\"secondselect\">';\n\n                for (var i = 0; i < 60; i++) {\n                    var padded = i < 10 ? '0' + i : i;\n                    var time = selected.clone().second(i);\n\n                    var disabled = false;\n                    if (minDate && time.isBefore(minDate))\n                        disabled = true;\n                    if (maxDate && time.isAfter(maxDate))\n                        disabled = true;\n\n                    if (selected.second() == i && !disabled) {\n                        html += '<option value=\"' + i + '\" selected=\"selected\">' + padded + '</option>';\n                    } else if (disabled) {\n                        html += '<option value=\"' + i + '\" disabled=\"disabled\" class=\"disabled\">' + padded + '</option>';\n                    } else {\n                        html += '<option value=\"' + i + '\">' + padded + '</option>';\n                    }\n                }\n\n                html += '</select> ';\n            }\n\n            //\n            // AM/PM\n            //\n\n            if (!this.timePicker24Hour) {\n                html += '<select class=\"ampmselect\">';\n\n                var am_html = '';\n                var pm_html = '';\n\n                if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate))\n                    am_html = ' disabled=\"disabled\" class=\"disabled\"';\n\n                if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate))\n                    pm_html = ' disabled=\"disabled\" class=\"disabled\"';\n\n                if (selected.hour() >= 12) {\n                    html += '<option value=\"AM\"' + am_html + '>AM</option><option value=\"PM\" selected=\"selected\"' + pm_html + '>PM</option>';\n                } else {\n                    html += '<option value=\"AM\" selected=\"selected\"' + am_html + '>AM</option><option value=\"PM\"' + pm_html + '>PM</option>';\n                }\n\n                html += '</select>';\n            }\n\n            this.container.find('.calendar.' + side + ' .calendar-time div').html(html);\n\n        },\n\n        updateFormInputs: function() {\n\n            //ignore mouse movements while an above-calendar text input has focus\n            if (this.container.find('input[name=daterangepicker_start]').is(\":focus\") || this.container.find('input[name=daterangepicker_end]').is(\":focus\"))\n                return;\n\n            this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.locale.format));\n            if (this.endDate)\n                this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.locale.format));\n\n            if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {\n                this.container.find('button.applyBtn').removeAttr('disabled');\n            } else {\n                this.container.find('button.applyBtn').attr('disabled', 'disabled');\n            }\n\n        },\n\n        move: function() {\n            var parentOffset = { top: 0, left: 0 },\n                containerTop;\n            var parentRightEdge = $(window).width();\n            if (!this.parentEl.is('body')) {\n                parentOffset = {\n                    top: this.parentEl.offset().top - this.parentEl.scrollTop(),\n                    left: this.parentEl.offset().left - this.parentEl.scrollLeft()\n                };\n                parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\n            }\n\n            if (this.drops == 'up')\n                containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\n            else\n                containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\n            this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('dropup');\n\n            if (this.opens == 'left') {\n                this.container.css({\n                    top: containerTop,\n                    right: parentRightEdge - this.element.offset().left - this.element.outerWidth(),\n                    left: 'auto'\n                });\n                if (this.container.offset().left < 0) {\n                    this.container.css({\n                        right: 'auto',\n                        left: 9\n                    });\n                }\n            } else if (this.opens == 'center') {\n                this.container.css({\n                    top: containerTop,\n                    left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2\n                            - this.container.outerWidth() / 2,\n                    right: 'auto'\n                });\n                if (this.container.offset().left < 0) {\n                    this.container.css({\n                        right: 'auto',\n                        left: 9\n                    });\n                }\n            } else {\n                this.container.css({\n                    top: containerTop,\n                    left: this.element.offset().left - parentOffset.left,\n                    right: 'auto'\n                });\n                if (this.container.offset().left + this.container.outerWidth() > $(window).width()) {\n                    this.container.css({\n                        left: 'auto',\n                        right: 0\n                    });\n                }\n            }\n        },\n\n        show: function(e) {\n            if (this.isShowing) return;\n\n            // Create a click proxy that is private to this instance of datepicker, for unbinding\n            this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);\n\n            // Bind global datepicker mousedown for hiding and\n            $(document)\n              .on('mousedown.daterangepicker', this._outsideClickProxy)\n              // also support mobile devices\n              .on('touchend.daterangepicker', this._outsideClickProxy)\n              // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\n              .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)\n              // and also close when focus changes to outside the picker (eg. tabbing between controls)\n              .on('focusin.daterangepicker', this._outsideClickProxy);\n\n            // Reposition the picker if the window is resized while it's open\n            $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));\n\n            this.oldStartDate = this.startDate.clone();\n            this.oldEndDate = this.endDate.clone();\n\n            this.updateView();\n            this.container.show();\n            this.move();\n            this.element.trigger('show.daterangepicker', this);\n            this.isShowing = true;\n        },\n\n        hide: function(e) {\n            if (!this.isShowing) return;\n\n            //incomplete date selection, revert to last values\n            if (!this.endDate) {\n                this.startDate = this.oldStartDate.clone();\n                this.endDate = this.oldEndDate.clone();\n            }\n\n            //if a new date range was selected, invoke the user callback function\n            if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))\n                this.callback(this.startDate, this.endDate, this.chosenLabel);\n\n            //if picker is attached to a text input, update it\n            this.updateElement();\n\n            $(document).off('.daterangepicker');\n            $(window).off('.daterangepicker');\n            this.container.hide();\n            this.element.trigger('hide.daterangepicker', this);\n            this.isShowing = false;\n        },\n\n        toggle: function(e) {\n            if (this.isShowing) {\n                this.hide();\n            } else {\n                this.show();\n            }\n        },\n\n        outsideClick: function(e) {\n            var target = $(e.target);\n            // if the page is clicked anywhere except within the daterangerpicker/button\n            // itself then call this.hide()\n            if (\n                // ie modal dialog fix\n                e.type == \"focusin\" ||\n                target.closest(this.element).length ||\n                target.closest(this.container).length ||\n                target.closest('.calendar-table').length\n                ) return;\n            this.hide();\n        },\n\n        showCalendars: function() {\n            this.container.addClass('show-calendar');\n            this.move();\n            this.element.trigger('showCalendar.daterangepicker', this);\n        },\n\n        hideCalendars: function() {\n            this.container.removeClass('show-calendar');\n            this.element.trigger('hideCalendar.daterangepicker', this);\n        },\n\n        hoverRange: function(e) {\n\n            //ignore mouse movements while an above-calendar text input has focus\n            if (this.container.find('input[name=daterangepicker_start]').is(\":focus\") || this.container.find('input[name=daterangepicker_end]').is(\":focus\"))\n                return;\n\n            var label = e.target.innerHTML;\n            if (label == this.locale.customRangeLabel) {\n                this.updateView();\n            } else {\n                var dates = this.ranges[label];\n                this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.locale.format));\n                this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.locale.format));\n            }\n            \n        },\n\n        clickRange: function(e) {\n            var label = e.target.innerHTML;\n            this.chosenLabel = label;\n            if (label == this.locale.customRangeLabel) {\n                this.showCalendars();\n            } else {\n                var dates = this.ranges[label];\n                this.startDate = dates[0];\n                this.endDate = dates[1];\n\n                if (!this.timePicker) {\n                    this.startDate.startOf('day');\n                    this.endDate.endOf('day');\n                }\n\n                this.hideCalendars();\n                this.clickApply();\n            }\n        },\n\n        clickPrev: function(e) {\n            var cal = $(e.target).parents('.calendar');\n            if (cal.hasClass('left')) {\n                this.leftCalendar.month.subtract(1, 'month');\n                if (this.linkedCalendars)\n                    this.rightCalendar.month.subtract(1, 'month');\n            } else {\n                this.rightCalendar.month.subtract(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        clickNext: function(e) {\n            var cal = $(e.target).parents('.calendar');\n            if (cal.hasClass('left')) {\n                this.leftCalendar.month.add(1, 'month');\n            } else {\n                this.rightCalendar.month.add(1, 'month');\n                if (this.linkedCalendars)\n                    this.leftCalendar.month.add(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        hoverDate: function(e) {\n\n            //ignore mouse movements while an above-calendar text input has focus\n            if (this.container.find('input[name=daterangepicker_start]').is(\":focus\") || this.container.find('input[name=daterangepicker_end]').is(\":focus\"))\n                return;\n\n            //ignore dates that can't be selected\n            if (!$(e.target).hasClass('available')) return;\n\n            //have the text inputs above calendars reflect the date being hovered over\n            var title = $(e.target).attr('data-title');\n            var row = title.substr(1, 1);\n            var col = title.substr(3, 1);\n            var cal = $(e.target).parents('.calendar');\n            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n            if (this.endDate) {\n                this.container.find('input[name=daterangepicker_start]').val(date.format(this.locale.format));\n            } else {\n                this.container.find('input[name=daterangepicker_end]').val(date.format(this.locale.format));\n            }\n\n            //highlight the dates between the start date and the date being hovered as a potential end date\n            var leftCalendar = this.leftCalendar;\n            var rightCalendar = this.rightCalendar;\n            var startDate = this.startDate;\n            if (!this.endDate) {\n                this.container.find('.calendar td').each(function(index, el) {\n\n                    //skip week numbers, only look at dates\n                    if ($(el).hasClass('week')) return;\n\n                    var title = $(el).attr('data-title');\n                    var row = title.substr(1, 1);\n                    var col = title.substr(3, 1);\n                    var cal = $(el).parents('.calendar');\n                    var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\n\n                    if (dt.isAfter(startDate) && dt.isBefore(date)) {\n                        $(el).addClass('in-range');\n                    } else {\n                        $(el).removeClass('in-range');\n                    }\n\n                });\n            }\n\n        },\n\n        clickDate: function(e) {\n\n            if (!$(e.target).hasClass('available')) return;\n\n            var title = $(e.target).attr('data-title');\n            var row = title.substr(1, 1);\n            var col = title.substr(3, 1);\n            var cal = $(e.target).parents('.calendar');\n            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\n\n            //\n            // this function needs to do a few things:\n            // * alternate between selecting a start and end date for the range,\n            // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\n            // * if autoapply is enabled, and an end date was chosen, apply the selection\n            // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\n            //\n\n            if (this.endDate || date.isBefore(this.startDate)) {\n                if (this.timePicker) {\n                    var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\n                    if (!this.timePicker24Hour) {\n                        var ampm = cal.find('.ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                    var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\n                    var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\n                    date = date.clone().hour(hour).minute(minute).second(second);\n                }\n                this.endDate = null;\n                this.setStartDate(date.clone());\n            } else {\n                if (this.timePicker) {\n                    var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\n                    if (!this.timePicker24Hour) {\n                        var ampm = this.container.find('.right .ampmselect').val();\n                        if (ampm === 'PM' && hour < 12)\n                            hour += 12;\n                        if (ampm === 'AM' && hour === 12)\n                            hour = 0;\n                    }\n                    var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\n                    var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\n                    date = date.clone().hour(hour).minute(minute).second(second);\n                }\n                this.setEndDate(date.clone());\n                if (this.autoApply)\n                    this.clickApply();\n            }\n\n            if (this.singleDatePicker) {\n                this.setEndDate(this.startDate);\n                if (!this.timePicker)\n                    this.clickApply();\n            }\n\n            this.updateView();\n\n        },\n\n        clickApply: function(e) {\n            this.hide();\n            this.element.trigger('apply.daterangepicker', this);\n        },\n\n        clickCancel: function(e) {\n            this.startDate = this.oldStartDate;\n            this.endDate = this.oldEndDate;\n            this.hide();\n            this.element.trigger('cancel.daterangepicker', this);\n        },\n\n        monthOrYearChanged: function(e) {\n            var isLeft = $(e.target).closest('.calendar').hasClass('left'),\n                leftOrRight = isLeft ? 'left' : 'right',\n                cal = this.container.find('.calendar.'+leftOrRight);\n\n            // Month must be Number for new moment versions\n            var month = parseInt(cal.find('.monthselect').val(), 10);\n            var year = cal.find('.yearselect').val();\n\n            if (!isLeft) {\n                if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {\n                    month = this.startDate.month();\n                    year = this.startDate.year();\n                }\n            }\n\n            if (this.minDate) {\n                if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {\n                    month = this.minDate.month();\n                    year = this.minDate.year();\n                }\n            }\n\n            if (this.maxDate) {\n                if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {\n                    month = this.maxDate.month();\n                    year = this.maxDate.year();\n                }\n            }\n\n            if (isLeft) {\n                this.leftCalendar.month.month(month).year(year);\n                if (this.linkedCalendars)\n                    this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\n            } else {\n                this.rightCalendar.month.month(month).year(year);\n                if (this.linkedCalendars)\n                    this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\n            }\n            this.updateCalendars();\n        },\n\n        timeChanged: function(e) {\n\n            var cal = $(e.target).closest('.calendar'),\n                isLeft = cal.hasClass('left');\n\n            var hour = parseInt(cal.find('.hourselect').val(), 10);\n            var minute = parseInt(cal.find('.minuteselect').val(), 10);\n            var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\n\n            if (!this.timePicker24Hour) {\n                var ampm = cal.find('.ampmselect').val();\n                if (ampm === 'PM' && hour < 12)\n                    hour += 12;\n                if (ampm === 'AM' && hour === 12)\n                    hour = 0;\n            }\n\n            if (isLeft) {\n                var start = this.startDate.clone();\n                start.hour(hour);\n                start.minute(minute);\n                start.second(second);\n                this.setStartDate(start);\n                if (this.singleDatePicker) {\n                    this.endDate = this.startDate.clone();\n                } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\n                    this.setEndDate(start.clone());\n                }\n            } else if (this.endDate) {\n                var end = this.endDate.clone();\n                end.hour(hour);\n                end.minute(minute);\n                end.second(second);\n                this.setEndDate(end);\n            }\n\n            //update the calendars so all clickable dates reflect the new time component\n            this.updateCalendars();\n\n            //update the form inputs above the calendars with the new time\n            this.updateFormInputs();\n\n            //re-render the time pickers because changing one selection can affect what's enabled in another\n            this.renderTimePicker('left');\n            this.renderTimePicker('right');\n\n        },\n\n        formInputsChanged: function(e) {\n            var isRight = $(e.target).closest('.calendar').hasClass('right');\n            var start = moment(this.container.find('input[name=\"daterangepicker_start\"]').val(), this.locale.format);\n            var end = moment(this.container.find('input[name=\"daterangepicker_end\"]').val(), this.locale.format);\n\n            if (start.isValid() && end.isValid()) {\n\n                if (isRight && end.isBefore(start))\n                    start = end.clone();\n\n                this.setStartDate(start);\n                this.setEndDate(end);\n\n                if (isRight) {\n                    this.container.find('input[name=\"daterangepicker_start\"]').val(this.startDate.format(this.locale.format));\n                } else {\n                    this.container.find('input[name=\"daterangepicker_end\"]').val(this.endDate.format(this.locale.format));\n                }\n\n            }\n\n            this.updateCalendars();\n            if (this.timePicker) {\n                this.renderTimePicker('left');\n                this.renderTimePicker('right');\n            }\n        },\n\n        elementChanged: function() {\n            if (!this.element.is('input')) return;\n            if (!this.element.val().length) return;\n            if (this.element.val().length < this.locale.format.length) return;\n\n            var dateString = this.element.val().split(this.locale.separator),\n                start = null,\n                end = null;\n\n            if (dateString.length === 2) {\n                start = moment(dateString[0], this.locale.format);\n                end = moment(dateString[1], this.locale.format);\n            }\n\n            if (this.singleDatePicker || start === null || end === null) {\n                start = moment(this.element.val(), this.locale.format);\n                end = start;\n            }\n\n            if (!start.isValid() || !end.isValid()) return;\n\n            this.setStartDate(start);\n            this.setEndDate(end);\n            this.updateView();\n        },\n\n        keydown: function(e) {\n            //hide on tab or enter\n            if ((e.keyCode === 9) || (e.keyCode === 13)) {\n                this.hide();\n            }\n        },\n\n        updateElement: function() {\n            if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {\n                this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\n                this.element.trigger('change');\n            } else if (this.element.is('input') && this.autoUpdateInput) {\n                this.element.val(this.startDate.format(this.locale.format));\n                this.element.trigger('change');\n            }\n        },\n\n        remove: function() {\n            this.container.remove();\n            this.element.off('.daterangepicker');\n            this.element.removeData();\n        }\n\n    };\n\n    $.fn.daterangepicker = function(options, callback) {\n        this.each(function() {\n            var el = $(this);\n            if (el.data('daterangepicker'))\n                el.data('daterangepicker').remove();\n            el.data('daterangepicker', new DateRangePicker(el, options, callback));\n        });\n        return this;\n    };\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css",
    "content": "/*!\n * Datetimepicker for Bootstrap\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n */\n.datetimepicker {\n  padding: 4px;\n  margin-top: 1px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  direction: ltr;\n  /*.dow {\n\t\tborder-top: 1px solid #ddd !important;\n\t}*/\n\n}\n.datetimepicker-inline {\n  width: 220px;\n}\n.datetimepicker.datetimepicker-rtl {\n  direction: rtl;\n}\n.datetimepicker.datetimepicker-rtl table tr td span {\n  float: right;\n}\n.datetimepicker-dropdown, .datetimepicker-dropdown-left {\n  top: 0;\n  left: 0;\n}\n[class*=\" datetimepicker-dropdown\"]:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n}\n[class*=\" datetimepicker-dropdown\"]:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  position: absolute;\n}\n[class*=\" datetimepicker-dropdown-top\"]:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-top: 7px solid #ccc;\n  border-top-color: rgba(0, 0, 0, 0.2);\n  border-bottom: 0;\n}\n[class*=\" datetimepicker-dropdown-top\"]:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-top: 6px solid #ffffff;\n  border-bottom: 0;\n}\n.datetimepicker-dropdown-bottom-left:before {\n  top: -7px;\n  right: 6px;\n}\n.datetimepicker-dropdown-bottom-left:after {\n  top: -6px;\n  right: 7px;\n}\n.datetimepicker-dropdown-bottom-right:before {\n  top: -7px;\n  left: 6px;\n}\n.datetimepicker-dropdown-bottom-right:after {\n  top: -6px;\n  left: 7px;\n}\n.datetimepicker-dropdown-top-left:before {\n  bottom: -7px;\n  right: 6px;\n}\n.datetimepicker-dropdown-top-left:after {\n  bottom: -6px;\n  right: 7px;\n}\n.datetimepicker-dropdown-top-right:before {\n  bottom: -7px;\n  left: 6px;\n}\n.datetimepicker-dropdown-top-right:after {\n  bottom: -6px;\n  left: 7px;\n}\n.datetimepicker > div {\n  display: none;\n}\n.datetimepicker.minutes div.datetimepicker-minutes {\n    display: block;\n}\n.datetimepicker.hours div.datetimepicker-hours {\n    display: block;\n}\n.datetimepicker.days div.datetimepicker-days {\n    display: block;\n}\n.datetimepicker.months div.datetimepicker-months {\n  display: block;\n}\n.datetimepicker.years div.datetimepicker-years {\n  display: block;\n}\n.datetimepicker table {\n  margin: 0;\n}\n.datetimepicker  td,\n.datetimepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datetimepicker table tr td,\n.table-striped .datetimepicker table tr th {\n  background-color: transparent;\n}\n.datetimepicker table tr td.minute:hover {\n    background: #eeeeee;\n    cursor: pointer;\n}\n.datetimepicker table tr td.hour:hover {\n    background: #eeeeee;\n    cursor: pointer;\n}\n.datetimepicker table tr td.day:hover {\n    background: #eeeeee;\n    cursor: pointer;\n}\n.datetimepicker table tr td.old,\n.datetimepicker table tr td.new {\n  color: #999999;\n}\n.datetimepicker table tr td.disabled,\n.datetimepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datetimepicker table tr td.today,\n.datetimepicker table tr td.today:hover,\n.datetimepicker table tr td.today.disabled,\n.datetimepicker table tr td.today.disabled:hover {\n  background-color: #fde19a;\n  background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));\n  background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -o-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: linear-gradient(top, #fdd49a, #fdf59a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);\n  border-color: #fdf59a #fdf59a #fbed50;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n.datetimepicker table tr td.today:hover,\n.datetimepicker table tr td.today:hover:hover,\n.datetimepicker table tr td.today.disabled:hover,\n.datetimepicker table tr td.today.disabled:hover:hover,\n.datetimepicker table tr td.today:active,\n.datetimepicker table tr td.today:hover:active,\n.datetimepicker table tr td.today.disabled:active,\n.datetimepicker table tr td.today.disabled:hover:active,\n.datetimepicker table tr td.today.active,\n.datetimepicker table tr td.today:hover.active,\n.datetimepicker table tr td.today.disabled.active,\n.datetimepicker table tr td.today.disabled:hover.active,\n.datetimepicker table tr td.today.disabled,\n.datetimepicker table tr td.today:hover.disabled,\n.datetimepicker table tr td.today.disabled.disabled,\n.datetimepicker table tr td.today.disabled:hover.disabled,\n.datetimepicker table tr td.today[disabled],\n.datetimepicker table tr td.today:hover[disabled],\n.datetimepicker table tr td.today.disabled[disabled],\n.datetimepicker table tr td.today.disabled:hover[disabled] {\n  background-color: #fdf59a;\n}\n.datetimepicker table tr td.today:active,\n.datetimepicker table tr td.today:hover:active,\n.datetimepicker table tr td.today.disabled:active,\n.datetimepicker table tr td.today.disabled:hover:active,\n.datetimepicker table tr td.today.active,\n.datetimepicker table tr td.today:hover.active,\n.datetimepicker table tr td.today.disabled.active,\n.datetimepicker table tr td.today.disabled:hover.active {\n  background-color: #fbf069 \\9;\n}\n.datetimepicker table tr td.active,\n.datetimepicker table tr td.active:hover,\n.datetimepicker table tr td.active.disabled,\n.datetimepicker table tr td.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(top, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datetimepicker table tr td.active:hover,\n.datetimepicker table tr td.active:hover:hover,\n.datetimepicker table tr td.active.disabled:hover,\n.datetimepicker table tr td.active.disabled:hover:hover,\n.datetimepicker table tr td.active:active,\n.datetimepicker table tr td.active:hover:active,\n.datetimepicker table tr td.active.disabled:active,\n.datetimepicker table tr td.active.disabled:hover:active,\n.datetimepicker table tr td.active.active,\n.datetimepicker table tr td.active:hover.active,\n.datetimepicker table tr td.active.disabled.active,\n.datetimepicker table tr td.active.disabled:hover.active,\n.datetimepicker table tr td.active.disabled,\n.datetimepicker table tr td.active:hover.disabled,\n.datetimepicker table tr td.active.disabled.disabled,\n.datetimepicker table tr td.active.disabled:hover.disabled,\n.datetimepicker table tr td.active[disabled],\n.datetimepicker table tr td.active:hover[disabled],\n.datetimepicker table tr td.active.disabled[disabled],\n.datetimepicker table tr td.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datetimepicker table tr td.active:active,\n.datetimepicker table tr td.active:hover:active,\n.datetimepicker table tr td.active.disabled:active,\n.datetimepicker table tr td.active.disabled:hover:active,\n.datetimepicker table tr td.active.active,\n.datetimepicker table tr td.active:hover.active,\n.datetimepicker table tr td.active.disabled.active,\n.datetimepicker table tr td.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datetimepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.datetimepicker .datetimepicker-hours span {\n  height: 26px;\n  line-height: 26px;\n}\n.datetimepicker .datetimepicker-hours table tr td span.hour_am,\n.datetimepicker .datetimepicker-hours table tr td span.hour_pm {\n  width: 14.6%;\n}\n.datetimepicker .datetimepicker-hours fieldset legend,\n.datetimepicker .datetimepicker-minutes fieldset legend {\n  margin-bottom: inherit;\n  line-height: 30px;\n}\n.datetimepicker .datetimepicker-minutes span {\n  height: 26px;\n  line-height: 26px;\n}\n.datetimepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datetimepicker table tr td span.disabled,\n.datetimepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datetimepicker table tr td span.active,\n.datetimepicker table tr td span.active:hover,\n.datetimepicker table tr td span.active.disabled,\n.datetimepicker table tr td span.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(top, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datetimepicker table tr td span.active:hover,\n.datetimepicker table tr td span.active:hover:hover,\n.datetimepicker table tr td span.active.disabled:hover,\n.datetimepicker table tr td span.active.disabled:hover:hover,\n.datetimepicker table tr td span.active:active,\n.datetimepicker table tr td span.active:hover:active,\n.datetimepicker table tr td span.active.disabled:active,\n.datetimepicker table tr td span.active.disabled:hover:active,\n.datetimepicker table tr td span.active.active,\n.datetimepicker table tr td span.active:hover.active,\n.datetimepicker table tr td span.active.disabled.active,\n.datetimepicker table tr td span.active.disabled:hover.active,\n.datetimepicker table tr td span.active.disabled,\n.datetimepicker table tr td span.active:hover.disabled,\n.datetimepicker table tr td span.active.disabled.disabled,\n.datetimepicker table tr td span.active.disabled:hover.disabled,\n.datetimepicker table tr td span.active[disabled],\n.datetimepicker table tr td span.active:hover[disabled],\n.datetimepicker table tr td span.active.disabled[disabled],\n.datetimepicker table tr td span.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datetimepicker table tr td span.active:active,\n.datetimepicker table tr td span.active:hover:active,\n.datetimepicker table tr td span.active.disabled:active,\n.datetimepicker table tr td span.active.disabled:hover:active,\n.datetimepicker table tr td span.active.active,\n.datetimepicker table tr td span.active:hover.active,\n.datetimepicker table tr td span.active.disabled.active,\n.datetimepicker table tr td span.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datetimepicker table tr td span.old {\n  color: #999999;\n}\n.datetimepicker th.switch {\n  width: 145px;\n}\n.datetimepicker thead tr:first-child th,\n.datetimepicker tfoot tr:first-child th {\n  cursor: pointer;\n}\n.datetimepicker thead tr:first-child th:hover,\n.datetimepicker tfoot tr:first-child th:hover {\n  background: #eeeeee;\n}\n.input-append.date .add-on i,\n.input-prepend.date .add-on i {\n  cursor: pointer;\n  width: 14px;\n  height: 14px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.js",
    "content": "﻿/* =========================================================\n * bootstrap-datetimepicker.js\n * =========================================================\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Improvements by Sébastien Malot\n * Improvements by Yun Lai\n * Improved by Keenthemes for Bootstrap 3.0 Support\n\n * Project URL : http://www.malot.fr/bootstrap-datetimepicker\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n\n!function( $ ) {\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), today.getUTCHours(), today.getUTCMinutes(), today.getUTCSeconds(), 0);\n\t}\n\n\t// Picker object\n\n\tvar Datetimepicker = function(element, options) {\n\t\tvar that = this;\n\n\t\tthis.element = $(element);\n\t\tthis.language = options.language || this.element.data('date-language') || \"en\";\n\t\tthis.language = this.language in dates ? this.language : \"en\";\n\t\tthis.isRTL = dates[this.language].rtl || ($('body').css(\"direction\") == 'rtl');\n\t\tthis.formatType = options.formatType || this.element.data('format-type') || 'standard';\n\t\tthis.format = DPGlobal.parseFormat(options.format || this.element.data('date-format') || dates[this.language].format || DPGlobal.getDefaultFormat(this.formatType, 'input'), this.formatType);\n\t\tthis.isInline = false;\n\t\tthis.isVisible = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.is('.date') ? this.element.find('.date-set').parent() : false;\n\t\tthis.componentReset = this.element.is('.date') ? this.element.find('.date-reset').parent() : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0) {\n\t\t\tthis.component = false;\n\t\t}\n\t\tthis.linkField = options.linkField || this.element.data('link-field') || false;\n\t\tthis.linkFormat = DPGlobal.parseFormat(options.linkFormat || this.element.data('link-format') || DPGlobal.getDefaultFormat(this.formatType, 'link'), this.formatType);\n\t\tthis.minuteStep = options.minuteStep || this.element.data('minute-step') || 5;\n\t\tthis.pickerPosition = options.pickerPosition || this.element.data('picker-position') || 'bottom-right';\n\t\t\t\tthis.showMeridian = options.showMeridian || this.element.data('show-meridian') || false;\n\t\t\t\tthis.initialDate = options.initialDate || new Date();\n\n\t\tthis._attachEvents();\n\t\t\n\t\t\tthis.formatViewType = \"datetime\";\n\t\t\tif ('formatViewType' in options) {\n\t\t\t\t\tthis.formatViewType = options.formatViewType;\n\t\t\t} else if ('formatViewType' in this.element.data()) {\n\t\t\t\t\tthis.formatViewType = this.element.data('formatViewType');\n\t\t\t}\n\n\t\tthis.minView = 0;\n\t\tif ('minView' in options) {\n\t\t\tthis.minView = options.minView;\n\t\t} else if ('minView' in this.element.data()) {\n\t\t\tthis.minView = this.element.data('min-view');\n\t\t}\n\t\tthis.minView = DPGlobal.convertViewMode(this.minView);\n\n\t\tthis.maxView = DPGlobal.modes.length-1;\n\t\tif ('maxView' in options) {\n\t\t\tthis.maxView = options.maxView;\n\t\t} else if ('maxView' in this.element.data()) {\n\t\t\tthis.maxView = this.element.data('max-view');\n\t\t}\n\t\tthis.maxView = DPGlobal.convertViewMode(this.maxView);\n\n        this.wheelViewModeNavigation = false;\n        if('wheelViewModeNavigation' in options){\n            this.wheelViewModeNavigation = options.wheelViewModeNavigation;\n        }else if('wheelViewModeNavigation' in this.element.data()){\n            this.wheelViewModeNavigation = this.element.data('view-mode-wheel-navigation');\n        }\n\n        this.wheelViewModeNavigationInverseDirection = false;\n\n        if('wheelViewModeNavigationInverseDirection' in options){\n            this.wheelViewModeNavigationInverseDirection = options.wheelViewModeNavigationInverseDirection;\n        }else if('wheelViewModeNavigationInverseDirection' in this.element.data()){\n            this.wheelViewModeNavigationInverseDirection = this.element.data('view-mode-wheel-navigation-inverse-dir');\n        }\n\n        this.wheelViewModeNavigationDelay = 100;\n        if('wheelViewModeNavigationDelay' in options){\n            this.wheelViewModeNavigationDelay = options.wheelViewModeNavigationDelay;\n        }else if('wheelViewModeNavigationDelay' in this.element.data()){\n            this.wheelViewModeNavigationDelay = this.element.data('view-mode-wheel-navigation-delay');\n        }\n\n\t\tthis.startViewMode = 2;\n\t\tif ('startView' in options) {\n\t\t\tthis.startViewMode = options.startView;\n\t\t} else if ('startView' in this.element.data()) {\n\t\t\tthis.startViewMode = this.element.data('start-view');\n\t\t}\n\t\tthis.startViewMode = DPGlobal.convertViewMode(this.startViewMode);\n\t\tthis.viewMode = this.startViewMode;\n\n\t\t\t\tthis.viewSelect = this.minView;\n\t\t\t\tif ('viewSelect' in options) {\n\t\t\t\t\t\tthis.viewSelect = options.viewSelect;\n\t\t\t\t} else if ('viewSelect' in this.element.data()) {\n\t\t\t\t\t\tthis.viewSelect = this.element.data('view-select');\n\t\t\t\t}\n\t\t\t\tthis.viewSelect = DPGlobal.convertViewMode(this.viewSelect);\n\n\t\tthis.forceParse = true;\n\t\tif ('forceParse' in options) {\n\t\t\tthis.forceParse = options.forceParse;\n\t\t} else if ('dateForceParse' in this.element.data()) {\n\t\t\tthis.forceParse = this.element.data('date-force-parse');\n\t\t}\n\n\t\tthis.picker = $(DPGlobal.template)\n\t\t\t\t\t\t\t.appendTo(this.isInline ? this.element : 'body')\n\t\t\t\t\t\t\t.on({\n\t\t\t\t\t\t\t\tclick: $.proxy(this.click, this),\n\t\t\t\t\t\t\t\tmousedown: $.proxy(this.mousedown, this)\n\t\t\t\t\t\t\t});\n\n        if(this.wheelViewModeNavigation)\n        {\n            if($.fn.mousewheel)\n            {\n                this.picker.on({mousewheel: $.proxy(this.mousewheel,this)});\n            }else\n            {\n                console.log(\"Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option\");\n            }\n        }\n\n\t\tif (this.isInline) {\n\t\t\tthis.picker.addClass('datetimepicker-inline');\n\t\t} else {\n\t\t\tthis.picker.addClass('datetimepicker-dropdown-' + this.pickerPosition + ' dropdown-menu');\n\t\t}\n\t\tif (this.isRTL){\n\t\t\tthis.picker.addClass('datetimepicker-rtl');\n\t\t\tthis.picker.find('.prev i, .next i')\n\t\t\t\t\t\t.toggleClass('fa-arrow-left fa-arrow-right');\n\t\t}\n\t\t$(document).on('mousedown', function (e) {\n\t\t\t// Clicked outside the datetimepicker, hide it\n\t\t\tif ($(e.target).closest('.datetimepicker').length === 0) {\n\t\t\t\tthat.hide();\n\t\t\t}\n\t\t});\n\n\t\tthis.autoclose = false;\n\t\tif ('autoclose' in options) {\n\t\t\tthis.autoclose = options.autoclose;\n\t\t} else if ('dateAutoclose' in this.element.data()) {\n\t\t\tthis.autoclose = this.element.data('date-autoclose');\n\t\t}\n\n\t\tthis.keyboardNavigation = true;\n\t\tif ('keyboardNavigation' in options) {\n\t\t\tthis.keyboardNavigation = options.keyboardNavigation;\n\t\t} else if ('dateKeyboardNavigation' in this.element.data()) {\n\t\t\tthis.keyboardNavigation = this.element.data('date-keyboard-navigation');\n\t\t}\n\n\t\tthis.todayBtn = (options.todayBtn || this.element.data('date-today-btn') || false);\n\t\tthis.todayHighlight = (options.todayHighlight || this.element.data('date-today-highlight') || false);\n\n\t\tthis.weekStart = ((options.weekStart || this.element.data('date-weekstart') || dates[this.language].weekStart || 0) % 7);\n\t\tthis.weekEnd = ((this.weekStart + 6) % 7);\n\t\tthis.startDate = -Infinity;\n\t\tthis.endDate = Infinity;\n\t\tthis.daysOfWeekDisabled = [];\n\t\tthis.setStartDate(options.startDate || this.element.data('date-startdate'));\n\t\tthis.setEndDate(options.endDate || this.element.data('date-enddate'));\n\t\tthis.setDaysOfWeekDisabled(options.daysOfWeekDisabled || this.element.data('date-days-of-week-disabled'));\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif(this.isInline) {\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatetimepicker.prototype = {\n\t\tconstructor: Datetimepicker,\n\n\t\t_events: [],\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tif (this.isInput) { // single input\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(this.update, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.component && this.hasInput){ // component: input + button\n\t\t\t\tthis._events = [\n\t\t\t\t\t// For components that are not readonly, allow keyboard nav\n\t\t\t\t\t[this.element.find('input'), {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(this.update, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}],\n\t\t\t\t\t[this.component, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t\tif (this.componentReset) {\n\t\t\t\t\tthis._events.push([\n\t\t\t\t\t\tthis.componentReset,\n\t\t\t\t\t\t{click: $.proxy(this.reset, this)}\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (this.element.is('div')) {  // inline datetimepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tfor (var i=0, el, ev; i<this._events.length; i++){\n\t\t\t\tel = this._events[i][0];\n\t\t\t\tev = this._events[i][1];\n\t\t\t\tel.on(ev);\n\t\t\t}\n\t\t},\n\t\t\n\t\t_detachEvents: function(){\n\t\t\tfor (var i=0, el, ev; i<this._events.length; i++){\n\t\t\t\tel = this._events[i][0];\n\t\t\t\tev = this._events[i][1];\n\t\t\t\tel.off(ev);\n\t\t\t}\n\t\t\tthis._events = [];\n\t\t},\n\n\t\tshow: function(e) {\n\t\t\tthis.picker.show();\n\t\t\tthis.height = this.component ? this.component.outerHeight() : this.element.outerHeight();\n\t\t\tif (this.forceParse) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t\tthis.place();\n\t\t\t$(window).on('resize', $.proxy(this.place, this));\n\t\t\tif (e) {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t\tthis.isVisible = true;\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: 'show',\n\t\t\t\tdate: this.date\n\t\t\t});\n\t\t},\n\n\t\thide: function(e){\n\t\t\tif(!this.isVisible) return;\n\t\t\tif(this.isInline) return;\n\t\t\tthis.picker.hide();\n\t\t\t$(window).off('resize', this.place);\n\t\t\tthis.viewMode = this.startViewMode;\n\t\t\tthis.showMode();\n\t\t\tif (!this.isInput) {\n\t\t\t\t$(document).off('mousedown', this.hide);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val()  || \n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis.isVisible = false;\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: 'hide',\n\t\t\t\tdate: this.date\n\t\t\t});\n\t\t},\n\n\t\tremove: function() {\n\t\t\tthis._detachEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.picker;\n\t\t\tdelete this.element.data().datetimepicker;\n\t\t},\n\n\t\tgetDate: function() {\n\t\t\tvar d = this.getUTCDate();\n\t\t\treturn new Date(d.getTime() + (d.getTimezoneOffset()*60000));\n\t\t},\n\n\t\tgetUTCDate: function() {\n\t\t\treturn this.date;\n\t\t},\n\n\t\tsetDate: function(d) {\n\t\t\tthis.setUTCDate(new Date(d.getTime() - (d.getTimezoneOffset()*60000)));\n\t\t},\n\n\t\tsetUTCDate: function(d) {\n\t\t\tif (d >= this.startDate && d <= this.endDate) {\n\t\t\t\tthis.date = d;\n\t\t\t\tthis.setValue();\n\t\t\t\tthis.viewDate = this.date;\n\t\t\t\tthis.fill();\n\t\t\t} else {\n\t\t\t\tthis.element.trigger({\n\t\t\t\t\ttype: 'outOfRange',\n\t\t\t\t\tdate: d,\n\t\t\t\t\tstartDate: this.startDate,\n\t\t\t\t\tendDate: this.endDate\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n        setFormat: function(format) {\n            this.format = DPGlobal.parseFormat(format, this.formatType);\n            var element;\n            if (this.isInput) {\n                element = this.element;\n            } else if (this.component){\n                element = this.element.find('input');\n            }\n            if (element && element.val()) {\n                this.setValue();\n            }\n        },\n\n\t\tsetValue: function() {\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput) {\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted);\n\t\t\t\t}\n\t\t\t\tthis.element.data('date', formatted);\n\t\t\t} else {\n\t\t\t\tthis.element.val(formatted);\n\t\t\t}\n\t\t\tif (this.linkField) {\n\t\t\t\t$('#' + this.linkField).val(this.getFormattedDate(this.linkFormat));\n\t\t\t}\n\t\t},\n\n\t\tgetFormattedDate: function(format) {\n\t\t\tif(format == undefined) format = this.format;\n\t\t\treturn DPGlobal.formatDate(this.date, format, this.language, this.formatType);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis.startDate = startDate || -Infinity;\n\t\t\tif (this.startDate !== -Infinity) {\n\t\t\t\tthis.startDate = DPGlobal.parseDate(this.startDate, this.format, this.language, this.formatType);\n\t\t\t}\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis.endDate = endDate || Infinity;\n\t\t\tif (this.endDate !== Infinity) {\n\t\t\t\tthis.endDate = DPGlobal.parseDate(this.endDate, this.format, this.language, this.formatType);\n\t\t\t}\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis.daysOfWeekDisabled = daysOfWeekDisabled || [];\n\t\t\tif (!$.isArray(this.daysOfWeekDisabled)) {\n\t\t\t\tthis.daysOfWeekDisabled = this.daysOfWeekDisabled.split(/,\\s*/);\n\t\t\t}\n\t\t\tthis.daysOfWeekDisabled = $.map(this.daysOfWeekDisabled, function (d) {\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif(this.isInline) return;\n\t\t\tvar zIndex = parseInt(this.element.parents().filter(function() {\n\t\t\t\treturn $(this).css('z-index') != 'auto';\n\t\t\t}).first().css('z-index'))+10;\n\t\t\tvar offset, top, left;\n\t\t\tif (this.component) {\n\t\t\t\toffset = this.component.offset();\n\t\t\t\tleft = offset.left;\n\t\t\t\tif (this.pickerPosition == 'bottom-left' || this.pickerPosition == 'top-left') {\n\t\t\t\t\tleft += this.component.outerWidth() - this.picker.outerWidth();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toffset = this.element.offset();\n\t\t\t\tleft = offset.left;\n\t\t\t}\n\t\t\tif (this.pickerPosition == 'top-left' || this.pickerPosition == 'top-right') {\n\t\t\t\ttop = offset.top - this.picker.outerHeight();\n\t\t\t} else {\n\t\t\t\ttop = offset.top + this.height;\n\t\t\t}\n\t\t\tthis.picker.css({\n\t\t\t\ttop: top,\n\t\t\t\tleft: left,\n\t\t\t\tzIndex: zIndex\n\t\t\t});\n\t\t},\n\n\t\tupdate: function(){\n\t\t\tvar date, fromArgs = false;\n\t\t\tif(arguments && arguments.length && (typeof arguments[0] === 'string' || arguments[0] instanceof Date)) {\n\t\t\t\tdate = arguments[0];\n\t\t\t\tfromArgs = true;\n\t\t\t} else {\n                date = this.element.data('date') || (this.isInput ? this.element.val() : this.element.find('input').val()) || this.initialDate;\n\t\t\t}\n\n\t\t\tif (!date) {\n\t\t\t\tdate = new Date();\n\t\t\t\tfromArgs = false;\n\t\t\t}\n\n\t\t\tthis.date = DPGlobal.parseDate(date, this.format, this.language, this.formatType);\n\n\t\t\tif (fromArgs) this.setValue();\n\n\t\t\tif (this.date < this.startDate) {\n\t\t\t\tthis.viewDate = new Date(this.startDate);\n\t\t\t} else if (this.date > this.endDate) {\n\t\t\t\tthis.viewDate = new Date(this.endDate);\n\t\t\t} else {\n\t\t\t\tthis.viewDate = new Date(this.date);\n\t\t\t}\n\t\t\tthis.fill();\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.weekStart,\n\t\t\thtml = '<tr>';\n\t\t\twhile (dowCnt < this.weekStart + 7) {\n\t\t\t\thtml += '<th class=\"dow\">'+dates[this.language].daysMin[(dowCnt++)%7]+'</th>';\n\t\t\t}\n\t\t\thtml += '</tr>';\n\t\t\tthis.picker.find('.datetimepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12) {\n\t\t\t\thtml += '<span class=\"month\">'+dates[this.language].monthsShort[i++]+'</span>';\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-months td').html(html);\n\t\t},\n\n\t\tfill: function() {\n\t\t\tif (this.date == null || this.viewDate == null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tdayMonth = d.getUTCDate(),\n\t\t\t\thours = d.getUTCHours(),\n\t\t\t\tminutes = d.getUTCMinutes(),\n\t\t\t\tstartYear = this.startDate !== -Infinity ? this.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.startDate !== -Infinity ? this.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.endDate !== Infinity ? this.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.endDate !== Infinity ? this.endDate.getUTCMonth() : Infinity,\n\t\t\t\tcurrentDate = (new UTCDate(this.date.getUTCFullYear(), this.date.getUTCMonth(), this.date.getUTCDate())).valueOf(),\n\t\t\t\ttoday = new Date();\n\t\t\tthis.picker.find('.datetimepicker-days thead th:eq(1)')\n\t\t\t\t\t\t.text(dates[this.language].months[month]+' '+year);\n\t\t\t\tif (this.formatViewType == \"time\") {\n\t\t\t\t\t\tvar hourConverted = hours % 12 ? hours % 12 : 12;\n\t\t\t\t\t\tvar hoursDisplay = (hourConverted < 10 ? '0' : '') + hourConverted;\n\t\t\t\t\t\tvar minutesDisplay = (minutes < 10 ? '0' : '') + minutes;\n\t\t\t\t\t\tvar meridianDisplay = dates[this.language].meridiem[hours < 12 ? 0 : 1];\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-hours thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(hoursDisplay + ':' + minutesDisplay + ' ' + meridianDisplay.toUpperCase());\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-minutes thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(hoursDisplay + ':' + minutesDisplay + ' ' + meridianDisplay.toUpperCase());\n\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-hours thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(dayMonth + ' ' + dates[this.language].months[month] + ' ' + year);\n\t\t\t\t\t\tthis.picker.find('.datetimepicker-minutes thead th:eq(1)')\n\t\t\t\t\t\t\t\t.text(dayMonth + ' ' + dates[this.language].months[month] + ' ' + year);\t\t        \n\t\t\t\t}\n\t\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.text(dates[this.language].today)\n\t\t\t\t\t\t.toggle(this.todayBtn !== false);\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\t/*var prevMonth = UTCDate(year, month, 0,0,0,0,0);\n\t\t\tprevMonth.setUTCDate(prevMonth.getDate() - (prevMonth.getUTCDay() - this.weekStart + 7)%7);*/\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28,0,0,0,0),\n\t\t\t\t\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\t\tprevMonth.setUTCDate(day);\n\t\t\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile(prevMonth.valueOf() < nextMonth) {\n\t\t\t\tif (prevMonth.getUTCDay() == this.weekStart) {\n\t\t\t\t\thtml.push('<tr>');\n\t\t\t\t}\n\t\t\t\tclsName = '';\n\t\t\t\tif (prevMonth.getUTCFullYear() < year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() < month)) {\n\t\t\t\t\tclsName += ' old';\n\t\t\t\t} else if (prevMonth.getUTCFullYear() > year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() > month)) {\n\t\t\t\t\tclsName += ' new';\n\t\t\t\t}\n\t\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\t\tif (this.todayHighlight &&\n\t\t\t\t\tprevMonth.getUTCFullYear() == today.getFullYear() &&\n\t\t\t\t\tprevMonth.getUTCMonth() == today.getMonth() &&\n\t\t\t\t\tprevMonth.getUTCDate() == today.getDate()) {\n\t\t\t\t\tclsName += ' today';\n\t\t\t\t}\n\t\t\t\tif (prevMonth.valueOf() == currentDate) {\n\t\t\t\t\tclsName += ' active';\n\t\t\t\t}\n\t\t\t\tif ((prevMonth.valueOf() + 86400000) <= this.startDate || prevMonth.valueOf() > this.endDate ||\n\t\t\t\t\t$.inArray(prevMonth.getUTCDay(), this.daysOfWeekDisabled) !== -1) {\n\t\t\t\t\tclsName += ' disabled';\n\t\t\t\t}\n\t\t\t\thtml.push('<td class=\"day'+clsName+'\">'+prevMonth.getUTCDate() + '</td>');\n\t\t\t\tif (prevMonth.getUTCDay() == this.weekEnd) {\n\t\t\t\t\thtml.push('</tr>');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-days tbody').empty().append(html.join(''));\n\n\t\t\thtml = [];\n\t\t\t\t\t\tvar txt = '', meridian = '', meridianOld = '';\n\t\t\tfor (var i=0;i<24;i++) {\n\t\t\t\tvar actual = UTCDate(year, month, dayMonth, i);\n\t\t\t\tclsName = '';\n\t\t\t\t// We want the previous hour for the startDate\n\t\t\t\tif ((actual.valueOf() + 3600000) <= this.startDate || actual.valueOf() > this.endDate) {\n\t\t\t\t\tclsName += ' disabled';\n\t\t\t\t} else if (hours == i) {\n\t\t\t\t\tclsName += ' active';\n\t\t\t\t}\n\t\t\t\t\t\t\t\tif (this.showMeridian && dates[this.language].meridiem.length == 2) {\n\t\t\t\t\t\t\t\t\t\tmeridian = (i<12?dates[this.language].meridiem[0]:dates[this.language].meridiem[1]);\n\t\t\t\t\t\t\t\t\t\tif (meridian != meridianOld) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (meridianOld != '') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('<fieldset class=\"hour\"><legend>'+meridian.toUpperCase()+'</legend>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tmeridianOld = meridian;\n\t\t\t\t\t\t\t\t\t\ttxt = (i%12?i%12:12);\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"hour'+clsName+' hour_'+(i<12?'am':'pm')+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t\t\tif (i == 23) {\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttxt = i+':00';\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"hour'+clsName+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-hours td').html(html.join(''));\n\n\t\t\thtml = [];\n\t\t\t\t\t\ttxt = '', meridian = '', meridianOld = '';\n\t\t\tfor(var i=0;i<60;i+=this.minuteStep) {\n\t\t\t\tvar actual = UTCDate(year, month, dayMonth, hours, i, 0);\n\t\t\t\tclsName = '';\n\t\t\t\tif (actual.valueOf() < this.startDate || actual.valueOf() > this.endDate) {\n\t\t\t\t\tclsName += ' disabled';\n\t\t\t\t} else if (Math.floor(minutes/this.minuteStep) == Math.floor(i/this.minuteStep)) {\n\t\t\t\t\tclsName += ' active';\n\t\t\t\t}\n\t\t\t\t\t\t\t\tif (this.showMeridian && dates[this.language].meridiem.length == 2) {\n\t\t\t\t\t\t\t\t\t\tmeridian = (hours<12?dates[this.language].meridiem[0]:dates[this.language].meridiem[1]);\n\t\t\t\t\t\t\t\t\t\tif (meridian != meridianOld) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (meridianOld != '') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('<fieldset class=\"minute\"><legend>'+meridian.toUpperCase()+'</legend>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tmeridianOld = meridian;\n\t\t\t\t\t\t\t\t\t\ttxt = (hours%12?hours%12:12);\n\t\t\t\t\t\t\t\t\t\t//html.push('<span class=\"minute'+clsName+' minute_'+(hours<12?'am':'pm')+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"minute'+clsName+'\">'+txt+':'+(i<10?'0'+i:i)+'</span>');\n\t\t\t\t\t\t\t\t\t\tif (i == 59) {\n\t\t\t\t\t\t\t\t\t\t\t\thtml.push('</fieldset>');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttxt = i+':00';\n\t\t\t\t\t\t\t\t\t\t//html.push('<span class=\"hour'+clsName+'\">'+txt+'</span>');\n\t\t\t\t\t\t\t\t\t\thtml.push('<span class=\"minute'+clsName+'\">'+hours+':'+(i<10?'0'+i:i)+'</span>');\n\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\tthis.picker.find('.datetimepicker-minutes td').html(html.join(''));\n\n\t\t\tvar currentYear = this.date.getUTCFullYear();\n\t\t\tvar months = this.picker.find('.datetimepicker-months')\n\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t.text(year)\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\t\t\tif (currentYear == year) {\n\t\t\t\tmonths.eq(this.date.getUTCMonth()).addClass('active');\n\t\t\t}\n\t\t\tif (year < startYear || year > endYear) {\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year == startYear) {\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year == endYear) {\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datetimepicker-years')\n\t\t\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tfor (var i = -1; i < 11; i++) {\n\t\t\t\thtml += '<span class=\"year'+(i == -1 || i == 10 ? ' old' : '')+(currentYear == year ? ' active' : '')+(year < startYear || year > endYear ? ' disabled' : '')+'\">'+year+'</span>';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t\tthis.place();\n\t\t},\n\n\t\tupdateNavArrows: function() {\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tday = d.getUTCDate(),\n\t\t\t\thour = d.getUTCHours();\n\t\t\tswitch (this.viewMode) {\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t && month <= this.startDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t && day <= this.startDate.getUTCDate()\n\t\t\t\t\t\t\t\t\t\t\t\t\t && hour <= this.startDate.getUTCHours()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t&& month >= this.endDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t&& day >= this.endDate.getUTCDate()\n\t\t\t\t\t\t\t\t\t\t\t\t\t&& hour >= this.endDate.getUTCHours()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t && month <= this.startDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t && day <= this.startDate.getUTCDate()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t&& month >= this.endDate.getUTCMonth()\n\t\t\t\t\t\t\t\t\t\t\t\t\t&& day >= this.endDate.getUTCDate()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t && month <= this.startDate.getUTCMonth()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() \n\t\t\t\t\t\t\t\t\t\t\t\t\t&& month >= this.endDate.getUTCMonth()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\tcase 4:\n\t\t\t\t\tif (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear()) {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear()) {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n        mousewheel: function(e){\n\n            e.preventDefault();\n            e.stopPropagation();\n\n            if(this.wheelPause)\n            {\n                return;\n            }\n\n            this.wheelPause = true;\n\n            var originalEvent = e.originalEvent;\n\n            var delta = originalEvent.wheelDelta;\n\n            var mode = delta > 0 ? 1:(delta === 0)?0:-1;\n\n            if(this.wheelViewModeNavigationInverseDirection)\n            {\n                mode = -mode;\n            }\n\n            this.showMode(mode);\n\n            setTimeout($.proxy(function(){\n\n                this.wheelPause = false\n\n            },this),this.wheelViewModeNavigationDelay);\n\n\n\n        },\n\n\t\tclick: function(e) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\tvar target = $(e.target).closest('span, td, th, legend');\n\t\t\tif (target.length == 1) {\n\t\t\t\tif (target.is('.disabled')) {\n\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\ttype: 'outOfRange',\n\t\t\t\t\t\tdate: this.viewDate,\n\t\t\t\t\t\tstartDate: this.startDate,\n\t\t\t\t\t\tendDate: this.endDate\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tswitch(target[0].nodeName.toLowerCase()) {\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch(target[0].className) {\n\t\t\t\t\t\t\tcase 'switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className == 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch(this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveHour(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveDate(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tvar date = new Date();\n\t\t\t\t\t\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n\n\t\t\t\t\t\t\t\tthis.viewMode = this.startViewMode;\n\t\t\t\t\t\t\t\tthis.showMode(0);\n\t\t\t\t\t\t\t\tthis._setDate(date);\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tif (this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.is('.disabled')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar year    = this.viewDate.getUTCFullYear(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmonth   = this.viewDate.getUTCMonth(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tday     = this.viewDate.getUTCDate(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours   = this.viewDate.getUTCHours(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminutes = this.viewDate.getUTCMinutes(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tseconds = this.viewDate.getUTCSeconds();\n\n\t\t\t\t\t\t\tif (target.is('.month')) {\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tday   = this.viewDate.getUTCDate();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeMonth',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 3) {\n\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.year')) {\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10) || 0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeYear',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 4) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.hour')){\n\t\t\t\t\t\t\t\thours = parseInt(target.text(), 10) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (target.hasClass('hour_am') || target.hasClass('hour_pm')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (hours == 12 && target.hasClass('hour_am')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (hours != 12 && target.hasClass('hour_pm')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thours += 12;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCHours(hours);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeHour',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 1) {\n\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.minute')){\n\t\t\t\t\t\t\t\tminutes = parseInt(target.text().substr(target.text().indexOf(':')+1), 10) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCMinutes(minutes);\n\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\ttype: 'changeMinute',\n\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 0) {\n\t\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (this.viewMode != 0) {\n\t\t\t\t\t\t\t\tvar oldViewMode = this.viewMode;\n\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tif (oldViewMode == this.viewMode && this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tif (this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.is('.day') && !target.is('.disabled')){\n\t\t\t\t\t\t\tvar day = parseInt(target.text(), 10) || 1;\n\t\t\t\t\t\t\tvar year = this.viewDate.getUTCFullYear(),\n\t\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\t\t\t\t\thours = this.viewDate.getUTCHours(),\n\t\t\t\t\t\t\t\tminutes = this.viewDate.getUTCMinutes(),\n\t\t\t\t\t\t\t\tseconds = this.viewDate.getUTCSeconds();\n\t\t\t\t\t\t\tif (target.is('.old')) {\n\t\t\t\t\t\t\t\tif (month === 0) {\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (target.is('.new')) {\n\t\t\t\t\t\t\t\tif (month == 11) {\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.viewDate.setUTCDate(day);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'changeDay',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdate: this.viewDate\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.viewSelect >= 2) {\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar oldViewMode = this.viewMode;\n\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\tif (oldViewMode == this.viewMode && this.autoclose) {\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which == 'date')\n\t\t\t\tthis.date = date;\n\t\t\tif (!which || which  == 'view')\n\t\t\t\tthis.viewDate = date;\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tvar element;\n\t\t\tif (this.isInput) {\n\t\t\t\telement = this.element;\n\t\t\t} else if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element) {\n\t\t\t\telement.change();\n\t\t\t\tif (this.autoclose && (!which || which == 'date')) {\n\t\t\t\t\t//this.hide();\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: 'changeDate',\n\t\t\t\tdate: this.date\n\t\t\t});\n\t\t},\n\n\t\tmoveMinute: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf());\n\t\t\t//dir = dir > 0 ? 1 : -1;\n\t\t\tnew_date.setUTCMinutes(new_date.getUTCMinutes() + (dir * this.minuteStep));\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveHour: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf());\n\t\t\t//dir = dir > 0 ? 1 : -1;\n\t\t\tnew_date.setUTCHours(new_date.getUTCHours() + dir);\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveDate: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf());\n\t\t\t//dir = dir > 0 ? 1 : -1;\n\t\t\tnew_date.setUTCDate(new_date.getUTCDate() + dir);\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!dir) return date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag == 1){\n\t\t\t\ttest = dir == -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){ return new_date.getUTCMonth() == month; }\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){ return new_date.getUTCMonth() != new_month; };\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t} else {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i<mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){ return new_month != new_date.getUTCMonth(); };\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.startDate && date <= this.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (this.picker.is(':not(:visible)')){\n\t\t\t\tif (e.keyCode == 27) // allow escape to hide and re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, day, month,\n\t\t\t\tnewDate, newViewDate;\n\t\t\tswitch(e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 39: // right\n\t\t\t\t\tif (!this.keyboardNavigation) break;\n\t\t\t\t\tdir = e.keyCode == 37 ? -1 : 1;\n\t\t\t\t\t\t\t\t\t\tviewMode = this.viewMode;\n\t\t\t\t\t\t\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 2;\n\t\t\t\t\t\t\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (viewMode == 4) {\n\t\t\t\t\t\tnewDate = this.moveYear(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 3) {\n\t\t\t\t\t\tnewDate = this.moveMonth(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 2) {\n\t\t\t\t\t\tnewDate = this.moveDate(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveDate(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 1) {\n\t\t\t\t\t\tnewDate = this.moveHour(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveHour(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 0) {\n\t\t\t\t\t\tnewDate = this.moveMinute(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveMinute(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.date = newDate;\n\t\t\t\t\t\tthis.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.keyboardNavigation) break;\n\t\t\t\t\tdir = e.keyCode == 38 ? -1 : 1;\n\t\t\t\t\t\t\t\t\t\tviewMode = this.viewMode;\n\t\t\t\t\t\t\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 2;\n\t\t\t\t\t\t\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tviewMode += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (viewMode == 4) {\n\t\t\t\t\t\tnewDate = this.moveYear(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 3) {\n\t\t\t\t\t\tnewDate = this.moveMonth(this.date, dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 2) {\n\t\t\t\t\t\tnewDate = this.moveDate(this.date, dir * 7);\n\t\t\t\t\t\tnewViewDate = this.moveDate(this.viewDate, dir * 7);\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.showMeridian) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewDate = this.moveHour(this.date, dir * 6);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewViewDate = this.moveHour(this.viewDate, dir * 6);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewDate = this.moveHour(this.date, dir * 4);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewViewDate = this.moveHour(this.viewDate, dir * 4);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else if (viewMode == 0) {\n\t\t\t\t\t\tnewDate = this.moveMinute(this.date, dir * 4);\n\t\t\t\t\t\tnewViewDate = this.moveMinute(this.viewDate, dir * 4);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.date = newDate;\n\t\t\t\t\t\tthis.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode != 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar oldViewMode = this.viewMode;\n\t\t\t\t\t\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\t\t\t\t\tif (oldViewMode == this.viewMode && this.autoclose) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.autoclose) {\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput) {\n\t\t\t\t\telement = this.element;\n\t\t\t\t} else if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t\tthis.element.trigger({\n\t\t\t\t\ttype: 'changeDate',\n\t\t\t\t\tdate: this.date\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir) {\n\t\t\tif (dir) {\n\t\t\t\tvar newViewMode = Math.max(0, Math.min(DPGlobal.modes.length - 1, this.viewMode + dir));\n\t\t\t\tif (newViewMode >= this.minView && newViewMode <= this.maxView) {\n\t\t\t\t\tthis.element.trigger({\n\t\t\t\t\t\ttype: 'changeMode',\n\t\t\t\t\t\tdate: this.viewDate,\n\t\t\t\t\t\toldViewMode: this.viewMode,\n\t\t\t\t\t\tnewViewMode: newViewMode\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.viewMode = newViewMode;\n\t\t\t\t}\n\t\t\t}\n\t\t\t/*\n\t\t\t\tvitalets: fixing bug of very special conditions:\n\t\t\t\tjquery 1.7.1 + webkit + show inline datetimepicker in bootstrap popover.\n\t\t\t\tMethod show() does not set display css correctly and datetimepicker is not shown.\n\t\t\t\tChanged to .css('display', 'block') solve the problem.\n\t\t\t\tSee https://github.com/vitalets/x-editable/issues/37\n\n\t\t\t\tIn jquery 1.7.2+ everything works fine.\n\t\t\t*/\n\t\t\t//this.picker.find('>div').hide().filter('.datetimepicker-'+DPGlobal.modes[this.viewMode].clsName).show();\n\t\t\tthis.picker.find('>div').hide().filter('.datetimepicker-'+DPGlobal.modes[this.viewMode].clsName).css('display', 'block');\n\t\t\tthis.updateNavArrows();\n\t\t},\n\t\t\n\t\treset: function(e) {\n\t\t\tthis._setDate(null, 'date');\n\t\t}\n\t};\n\n\t$.fn.datetimepicker = function ( option ) {\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\treturn this.each(function () {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datetimepicker'),\n\t\t\t\toptions = typeof option == 'object' && option;\n\t\t\tif (!data) {\n\t\t\t\t$this.data('datetimepicker', (data = new Datetimepicker(this, $.extend({}, $.fn.datetimepicker.defaults,options))));\n\t\t\t}\n\t\t\tif (typeof option == 'string' && typeof data[option] == 'function') {\n\t\t\t\tdata[option].apply(data, args);\n\t\t\t}\n\t\t});\n\t};\n\n\t$.fn.datetimepicker.defaults = {\n\t};\n\t$.fn.datetimepicker.Constructor = Datetimepicker;\n\tvar dates = $.fn.datetimepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\tmeridiem: [\"am\", \"pm\"],\n\t\t\tsuffix: [\"st\", \"nd\", \"rd\", \"th\"],\n\t\t\ttoday: \"Today\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'minutes',\n\t\t\t\tnavFnc: 'Hours',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'hours',\n\t\t\t\tnavFnc: 'Date',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function (year) {\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0))\n\t\t},\n\t\tgetDaysInMonth: function (year, month) {\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]\n\t\t},\n\t\tgetDefaultFormat: function (type, field) {\n\t\t\tif (type == \"standard\") {\n\t\t\t\tif (field == 'input')\n\t\t\t\t\treturn 'yyyy-mm-dd hh:ii';\n\t\t\t\telse\n\t\t\t\t\treturn 'yyyy-mm-dd hh:ii:ss';\n\t\t\t} else if (type == \"php\") {\n\t\t\t\tif (field == 'input')\n\t\t\t\t\treturn 'Y-m-d H:i';\n\t\t\t\telse\n\t\t\t\t\treturn 'Y-m-d H:i:s';\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Invalid format type.\");\n\t\t\t}\n\t\t},\n\t\tvalidParts: function (type) {\n\t\t\tif (type == \"standard\") {\n\t\t\t\treturn /hh?|HH?|p|P|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g;\n\t\t\t} else if (type == \"php\") {\n\t\t\t\treturn /[dDjlNwzFmMnStyYaABgGhHis]/g;\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Invalid format type.\");\n\t\t\t}\n\t\t},\n\t\tnonpunctuation: /[^ -\\/:-@\\[-`{-~\\t\\n\\rTZ]+/g,\n\t\tparseFormat: function(format, type){\n\t\t\t// IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts(type), '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts(type));\n\t\t\tif (!separators || !separators.length || !parts || parts.length == 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language, type) {\n\t\t\tif (date instanceof Date) {\n\t\t\t\tvar dateUTC = new Date(date.valueOf() - date.getTimezoneOffset() * 60000);\n\t\t\t\t\t\t\t\tdateUTC.setMilliseconds(0);\n\t\t\t\treturn dateUTC;\n\t\t\t}\n\t\t\tif (/^\\d{4}\\-\\d{1,2}\\-\\d{1,2}$/.test(date)) {\n\t\t\t\tformat = this.parseFormat('yyyy-mm-dd', type);\n\t\t\t}\n\t\t\tif (/^\\d{4}\\-\\d{1,2}\\-\\d{1,2}[T ]\\d{1,2}\\:\\d{1,2}$/.test(date)) {\n\t\t\t\tformat = this.parseFormat('yyyy-mm-dd hh:ii', type);\n\t\t\t}\n\t\t\tif (/^\\d{4}\\-\\d{1,2}\\-\\d{1,2}[T ]\\d{1,2}\\:\\d{1,2}\\:\\d{1,2}[Z]{0,1}$/.test(date)) {\n\t\t\t\tformat = this.parseFormat('yyyy-mm-dd hh:ii:ss', type);\n\t\t\t}\n\t\t\tif (/^[-+]\\d+[dmwy]([\\s,]+[-+]\\d+[dmwy])*$/.test(date)) {\n\t\t\t\tvar part_re = /([-+]\\d+)([dmwy])/,\n\t\t\t\t\tparts = date.match(/([-+]\\d+)([dmwy])/g),\n\t\t\t\t\tpart, dir;\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (var i=0; i<parts.length; i++) {\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tswitch(part[2]){\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'm':\n\t\t\t\t\t\t\tdate = Datetimepicker.prototype.moveMonth.call(Datetimepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'w':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir * 7);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'y':\n\t\t\t\t\t\t\tdate = Datetimepicker.prototype.moveYear.call(Datetimepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), 0);\n\t\t\t}\n\t\t\tvar parts = date && date.match(this.nonpunctuation) || [],\n\t\t\t\tdate = new Date(0, 0, 0, 0, 0, 0, 0),\n\t\t\t\tparsed = {},\n\t\t\t\tsetters_order = ['hh', 'h', 'ii', 'i', 'ss', 's', 'yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'D', 'DD', 'd', 'dd', 'H', 'HH', 'p', 'P'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\thh: function(d,v){ return d.setUTCHours(v); },\n\t\t\t\t\th:  function(d,v){ return d.setUTCHours(v); },\n\t\t\t\t\tHH: function(d,v){ return d.setUTCHours(v==12?0:v); },\n\t\t\t\t\tH:  function(d,v){ return d.setUTCHours(v==12?0:v); },\n\t\t\t\t\tii: function(d,v){ return d.setUTCMinutes(v); },\n\t\t\t\t\ti:  function(d,v){ return d.setUTCMinutes(v); },\n\t\t\t\t\tss: function(d,v){ return d.setUTCSeconds(v); },\n\t\t\t\t\ts:  function(d,v){ return d.setUTCSeconds(v); },\n\t\t\t\t\tyyyy: function(d,v){ return d.setUTCFullYear(v); },\n\t\t\t\t\tyy: function(d,v){ return d.setUTCFullYear(2000+v); },\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v<0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() != v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){ return d.setUTCDate(v); },\n\t\t\t\t\tp: function(d,v){ return d.setUTCHours(v==1?d.getUTCHours()+12:d.getUTCHours()); }\n\t\t\t\t},\n\t\t\t\tval, filtered, part;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\t\t\tsetters_map['P'] = setters_map['p'];\n\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());\n\t\t\tif (parts.length == format.parts.length) {\n\t\t\t\tfor (var i=0, cnt = format.parts.length; i < cnt; i++) {\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = format.parts[i];\n\t\t\t\t\tif (isNaN(val)) {\n\t\t\t\t\t\tswitch(part) {\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(function(){\n\t\t\t\t\t\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\t\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\t\t\t\t\t\treturn m == p;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(function(){\n\t\t\t\t\t\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\t\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\t\t\t\t\t\treturn m == p;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'p':\n\t\t\t\t\t\t\t\tcase 'P':\n\t\t\t\t\t\t\t\t\t\tval = $.inArray(parts[i].toLowerCase(), dates[language].meridiem);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tfor (var i=0, s; i<setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s]))\n\t\t\t\t\t\tsetters_map[s](date, parsed[s])\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language, type){\n\t\t\tif (date == null) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tvar val;\n\t\t\tif (type == 'standard') {\n\t\t\t\tval = {\n\t\t\t\t\t// year\n\t\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\t\tyyyy: date.getUTCFullYear(),\n\t\t\t\t\t// month\n\t\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\t\t// day\n\t\t\t\t\td: date.getUTCDate(),\n\t\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\t\tp: (dates[language].meridiem.length==2?dates[language].meridiem[date.getUTCHours()<12?0:1]:''),\n\t\t\t\t\t// hour\n\t\t\t\t\th: date.getUTCHours(),\n\t\t\t\t\t// minute\n\t\t\t\t\ti: date.getUTCMinutes(),\n\t\t\t\t\t// second\n\t\t\t\t\ts: date.getUTCSeconds()\n\t\t\t\t};\n\t\t\t\t\t\t\t\tval.H  = (val.h%12==0? 12 : val.h%12);\n\t\t\t\t\t\t\t\tval.HH = (val.H < 10 ? '0' : '') + val.H;\n\t\t\t\t\t\t\t\tval.P  = val.p.toUpperCase();\n\t\t\t\tval.hh = (val.h < 10 ? '0' : '') + val.h;\n\t\t\t\tval.ii = (val.i < 10 ? '0' : '') + val.i;\n\t\t\t\tval.ss = (val.s < 10 ? '0' : '') + val.s;\n\t\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\t} else if (type == 'php') {\n\t\t\t\t// php format\n\t\t\t\tval = {\n\t\t\t\t\t// year\n\t\t\t\t\ty: date.getUTCFullYear().toString().substring(2),\n\t\t\t\t\tY: date.getUTCFullYear(),\n\t\t\t\t\t// month\n\t\t\t\t\tF: dates[language].months[date.getUTCMonth()],\n\t\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\t\tn: date.getUTCMonth() + 1,\n\t\t\t\t\tt: DPGlobal.getDaysInMonth(date.getUTCFullYear(), date.getUTCMonth()),\n\t\t\t\t\t// day\n\t\t\t\t\tj: date.getUTCDate(),\n\t\t\t\t\tl: dates[language].days[date.getUTCDay()],\n\t\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\t\tw: date.getUTCDay(), // 0 -> 6\n\t\t\t\t\tN: (date.getUTCDay()==0?7:date.getUTCDay()),       // 1 -> 7\n\t\t\t\t\tS: (date.getUTCDate()%10<=dates[language].suffix.length?dates[language].suffix[date.getUTCDate()%10-1]:''),\n\t\t\t\t\t// hour\n\t\t\t\t\ta: (dates[language].meridiem.length==2?dates[language].meridiem[date.getUTCHours()<12?0:1]:''),\n\t\t\t\t\tg: (date.getUTCHours()%12==0?12:date.getUTCHours()%12),\n\t\t\t\t\tG: date.getUTCHours(),\n\t\t\t\t\t// minute\n\t\t\t\t\ti: date.getUTCMinutes(),\n\t\t\t\t\t// second\n\t\t\t\t\ts: date.getUTCSeconds()\n\t\t\t\t};\n\t\t\t\tval.m = (val.n < 10 ? '0' : '') + val.n;\n\t\t\t\tval.d = (val.j < 10 ? '0' : '') + val.j;\n\t\t\t\tval.A = val.a.toString().toUpperCase();\n\t\t\t\tval.h = (val.g < 10 ? '0' : '') + val.g;\n\t\t\t\tval.H = (val.G < 10 ? '0' : '') + val.G;\n\t\t\t\tval.i = (val.i < 10 ? '0' : '') + val.i;\n\t\t\t\tval.s = (val.s < 10 ? '0' : '') + val.s;\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Invalid format type.\");\n\t\t\t}\n\t\t\tvar date = [],\n\t\t\t\tseps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i < cnt; i++) {\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift())\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\tconvertViewMode: function(viewMode){\n\t\t\tswitch (viewMode) {\n\t\t\t\tcase 4:\n\t\t\t\tcase 'decade':\n\t\t\t\t\tviewMode = 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\tcase 'year':\n\t\t\t\t\tviewMode = 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'month':\n\t\t\t\t\tviewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'day':\n\t\t\t\t\tviewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\tcase 'hour':\n\t\t\t\t\tviewMode = 0;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn viewMode;\n\t\t},\n\t\theadTemplate: '<thead>'+\n\t\t\t\t\t\t\t'<tr>'+\n\t\t\t\t\t\t\t\t'<th class=\"prev\"><i class=\"fa fa-angle-left\"/></th>'+\n\t\t\t\t\t\t\t\t'<th colspan=\"5\" class=\"switch\"></th>'+\n\t\t\t\t\t\t\t\t'<th class=\"next\"><i class=\"fa fa-angle-right\"/></th>'+\n\t\t\t\t\t\t\t'</tr>'+\n\t\t\t\t\t\t'</thead>',\n\t\tcontTemplate: '<tbody><tr><td colspan=\"7\"></td></tr></tbody>',\n\t\tfootTemplate: '<tfoot><tr><th colspan=\"7\" class=\"today\"></th></tr></tfoot>'\n\t};\n\tDPGlobal.template = '<div class=\"datetimepicker\">'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-minutes\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-hours\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-days\">'+\n\t\t\t\t\t\t\t\t'<table class=\" table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t'<tbody></tbody>'+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-months\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t\t'<div class=\"datetimepicker-years\">'+\n\t\t\t\t\t\t\t\t'<table class=\"table-condensed\">'+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'</table>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'</div>';\n\n\t$.fn.datetimepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATETIMEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datetimepicker.noConflict = function () {\n\t    $.fn.datetimepicker = old;\n\t    return this;\n\t};\n\n\n\t/* DATETIMEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datetimepicker.data-api click.datetimepicker.data-api',\n\t\t'[data-provide=\"datetimepicker\"]',\n\t\tfunction (e) {\n\t\t    var $this = $(this);\n\t\t    if ($this.data('datetimepicker')) return;\n\t\t    e.preventDefault();\n\t\t    // component click requires us to explicitly show it\n\t\t    $this.datetimepicker('show');\n\t\t}\n\t);\n\t$(function () {\n\t    $('[data-provide=\"datetimepicker-inline\"]').datetimepicker();\n\t});\n\n}( window.jQuery );\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.bg.js",
    "content": "/**\n * Bulgarian translation for bootstrap-datetimepicker\n * Apostol Apostolov <apostol.s.apostolov@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['bg'] = {\n\t\tdays: [\"Неделя\", \"Понеделник\", \"Вторник\", \"Сряда\", \"Четвъртък\", \"Петък\", \"Събота\", \"Неделя\"],\n\t\tdaysShort: [\"Нед\", \"Пон\", \"Вто\", \"Сря\", \"Чет\", \"Пет\", \"Съб\", \"Нед\"],\n\t\tdaysMin: [\"Н\", \"П\", \"В\", \"С\", \"Ч\", \"П\", \"С\", \"Н\"],\n\t\tmonths: [\"Януари\", \"Февруари\", \"Март\", \"Април\", \"Май\", \"Юни\", \"Юли\", \"Август\", \"Септември\", \"Октомври\", \"Ноември\", \"Декември\"],\n\t\tmonthsShort: [\"Ян\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Юни\", \"Юли\", \"Авг\", \"Сеп\", \"Окт\", \"Ное\", \"Дек\"],\n\t\ttoday: \"днес\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ca.js",
    "content": "/**\n * Catalan translation for bootstrap-datetimepicker\n * J. Garcia <jogaco.en@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ca'] = {\n\t\tdays: [\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\", \"Diumenge\"],\n\t\tdaysShort: [\"Diu\",  \"Dil\", \"Dmt\", \"Dmc\", \"Dij\", \"Div\", \"Dis\", \"Diu\"],\n\t\tdaysMin: [\"dg\", \"dl\", \"dt\", \"dc\", \"dj\", \"dv\", \"ds\", \"dg\"],\n\t\tmonths: [\"Gener\", \"Febrer\", \"Març\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"],\n\t\tmonthsShort: [\"Gen\", \"Feb\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Oct\", \"Nov\", \"Des\"],\n\t\ttoday: \"Avui\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.cs.js",
    "content": "/**\n * Czech translation for bootstrap-datetimepicker\n * Matěj Koubík <matej@koubik.name>\n * Fixes by Michal Remiš <michal.remis@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['cs'] = {\n\t\tdays: [\"Neděle\", \"Pondělí\", \"Úterý\", \"Středa\", \"Čtvrtek\", \"Pátek\", \"Sobota\", \"Neděle\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Úte\", \"Stř\", \"Čtv\", \"Pát\", \"Sob\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\", \"Ne\"],\n\t\tmonths: [\"Leden\", \"Únor\", \"Březen\", \"Duben\", \"Květen\", \"Červen\", \"Červenec\", \"Srpen\", \"Září\", \"Říjen\", \"Listopad\", \"Prosinec\"],\n\t\tmonthsShort: [\"Led\", \"Úno\", \"Bře\", \"Dub\", \"Kvě\", \"Čer\", \"Čnc\", \"Srp\", \"Zář\", \"Říj\", \"Lis\", \"Pro\"],\n\t\ttoday: \"Dnes\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.da.js",
    "content": "/**\n * Danish translation for bootstrap-datetimepicker\n * Christian Pedersen <http://github.com/chripede>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['da'] = {\n\t\tdays: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\", \"Søndag\"],\n\t\tdaysShort: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\", \"Søn\"],\n\t\tdaysMin: [\"Sø\", \"Ma\", \"Ti\", \"On\", \"To\", \"Fr\", \"Lø\", \"Sø\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"I Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.de.js",
    "content": "/**\n * German translation for bootstrap-datetimepicker\n * Sam Zurcher <sam@orelias.ch>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['de'] = {\n\t\tdays: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\", \"Sonntag\"],\n\t\tdaysShort: [\"Son\", \"Mon\", \"Die\", \"Mit\", \"Don\", \"Fre\", \"Sam\", \"Son\"],\n\t\tdaysMin: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\", \"So\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mär\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\"],\n\t\ttoday: \"Heute\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1,\n\t\tformat: \"dd.mm.yyyy\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.el.js",
    "content": "/**\n* Greek translation for bootstrap-datetimepicker\n*/\n;(function($){\n  $.fn.datetimepicker.dates['el'] = {\n\t    days: [\"Κυριακή\", \"Δευτέρα\", \"Τρίτη\", \"Τετάρτη\", \"Πέμπτη\", \"Παρασκευή\", \"Σάββατο\", \"Κυριακή\"],\n\t    daysShort: [\"Κυρ\", \"Δευ\", \"Τρι\", \"Τετ\", \"Πεμ\", \"Παρ\", \"Σαβ\", \"Κυρ\"],\n\t    daysMin: [\"Κυ\", \"Δε\", \"Τρ\", \"Τε\", \"Πε\", \"Πα\", \"Σα\", \"Κυ\"],\n\t    months: [\"Ιανουάριος\", \"Φεβρουάριος\", \"Μάρτιος\", \"Απρίλιος\", \"Μάιος\", \"Ιούνιος\", \"Ιούλιος\", \"Αύγουστος\", \"Σεπτέμβριος\", \"Οκτώβριος\", \"Νοέμβριος\", \"Δεκέμβριος\"],\n\t    monthsShort: [\"Ιαν\", \"Φεβ\", \"Μαρ\", \"Απρ\", \"Μάι\", \"Ιουν\", \"Ιουλ\", \"Αυγ\", \"Σεπ\", \"Οκτ\", \"Νοε\", \"Δεκ\"],\n\t    today: \"Σήμερα\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n  };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.es.js",
    "content": "/**\n * Spanish translation for bootstrap-datetimepicker\n * Bruno Bonamin <bruno.bonamin@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['es'] = {\n\t\tdays: [\"Domingo\", \"Lunes\", \"Martes\", \"Miércoles\", \"Jueves\", \"Viernes\", \"Sábado\", \"Domingo\"],\n\t\tdaysShort: [\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Lu\", \"Ma\", \"Mi\", \"Ju\", \"Vi\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\n\t\tmonthsShort: [\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\"],\n\t\ttoday: \"Hoy\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fi.js",
    "content": "/**\n * Finnish translation for bootstrap-datetimepicker\n * Jaakko Salonen <https://github.com/jsalonen>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['fi'] = {\n\t\tdays: [\"sunnuntai\", \"maanantai\", \"tiistai\", \"keskiviikko\", \"torstai\", \"perjantai\", \"lauantai\", \"sunnuntai\"],\n\t\tdaysShort: [\"sun\", \"maa\", \"tii\", \"kes\", \"tor\", \"per\", \"lau\", \"sun\"],\n\t\tdaysMin: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\", \"su\"],\n\t\tmonths: [\"tammikuu\", \"helmikuu\", \"maaliskuu\", \"huhtikuu\", \"toukokuu\", \"kesäkuu\", \"heinäkuu\", \"elokuu\", \"syyskuu\", \"lokakuu\", \"marraskuu\", \"joulukuu\"],\n\t\tmonthsShort: [\"tam\", \"hel\", \"maa\", \"huh\", \"tou\", \"kes\", \"hei\", \"elo\", \"syy\", \"lok\", \"mar\", \"jou\"],\n\t\ttoday: \"tänään\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.fr.js",
    "content": "/**\n * French translation for bootstrap-datetimepicker\n * Nico Mollet <nico.mollet@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['fr'] = {\n\t\tdays: [\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\", \"Dimanche\"],\n\t\tdaysShort: [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\", \"Dim\"],\n\t\tdaysMin: [\"D\", \"L\", \"Ma\", \"Me\", \"J\", \"V\", \"S\", \"D\"],\n\t\tmonths: [\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"],\n\t\tmonthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Avr\", \"Mai\", \"Jui\", \"Jul\", \"Aou\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Aujourd'hui\",\n\t\tsuffix: [],\n\t\tmeridiem: [\"am\", \"pm\"],\n\t\tweekStart: 1,\n\t\tformat: \"dd/mm/yyyy\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.he.js",
    "content": "/**\n * Hebrew translation for bootstrap-datetimepicker\n * Sagie Maoz <sagie@maoz.info>\n */\n;(function($){\n  $.fn.datetimepicker.dates['he'] = {\n      days: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\", \"ראשון\"],\n      daysShort: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\", \"א\"],\n      daysMin: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\", \"א\"],\n      months: [\"ינואר\", \"פברואר\", \"מרץ\", \"אפריל\", \"מאי\", \"יוני\", \"יולי\", \"אוגוסט\", \"ספטמבר\", \"אוקטובר\", \"נובמבר\", \"דצמבר\"],\n      monthsShort: [\"ינו\", \"פבר\", \"מרץ\", \"אפר\", \"מאי\", \"יונ\", \"יול\", \"אוג\", \"ספט\", \"אוק\", \"נוב\", \"דצמ\"],\n      today: \"היום\",\n\t  suffix: [],\n\t  meridiem: [],\n      rtl: true\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hr.js",
    "content": "/**\n * Croatian localisation\n */\n;(function($){\n\t$.fn.datetimepicker.dates['hr'] = {\n\t\tdays: [\"Nedjelja\", \"Ponedjelja\", \"Utorak\", \"Srijeda\", \"Četrtak\", \"Petak\", \"Subota\", \"Nedjelja\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Uto\", \"Srr\", \"Čet\", \"Pet\", \"Sub\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"Ut\", \"Sr\", \"Če\", \"Pe\", \"Su\", \"Ne\"],\n\t\tmonths: [\"Siječanj\", \"Veljača\", \"Ožujak\", \"Travanj\", \"Svibanj\", \"Lipanj\", \"Srpanj\", \"Kolovoz\", \"Rujan\", \"Listopad\", \"Studeni\", \"Prosinac\"],\n\t\tmonthsShort: [\"Sije\", \"Velj\", \"Ožu\", \"Tra\", \"Svi\", \"Lip\", \"Jul\", \"Kol\", \"Ruj\", \"Lis\", \"Stu\", \"Pro\"],\n\t\ttoday: \"Danas\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.hu.js",
    "content": "/**\n * Hungarian translation for bootstrap-datetimepicker\n * darevish <http://github.com/darevish>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['hu'] = {\n\t\tdays: [\"Vasárnap\", \"Hétfő\", \"Kedd\", \"Szerda\", \"Csütörtök\", \"Péntek\", \"Szombat\", \"Vasárnap\"],\n\t\tdaysShort: [\"Vas\", \"Hét\", \"Ked\", \"Sze\", \"Csü\", \"Pén\", \"Szo\", \"Vas\"],\n\t\tdaysMin: [\"V\", \"H\", \"K\", \"Sze\", \"Cs\", \"P\", \"Szo\", \"V\"],\n\t\tmonths: [\"Január\", \"Február\", \"Március\", \"Április\", \"Május\", \"Június\", \"Július\", \"Augusztus\", \"Szeptember\", \"Október\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Már\", \"Ápr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sze\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Ma\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.id.js",
    "content": "/**\n * Bahasa translation for bootstrap-datetimepicker\n * Azwar Akbar <azwar.akbar@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['id'] = {\n\t\tdays: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\", \"Minggu\"],\n\t\tdaysShort: [\"Mgu\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\", \"Mgu\"],\n\t\tdaysMin: [\"Mg\", \"Sn\", \"Sl\", \"Ra\", \"Ka\", \"Ju\", \"Sa\", \"Mg\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Maret\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Agustus\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Ags\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.is.js",
    "content": "/**\n * Icelandic translation for bootstrap-datetimepicker\n * Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['is'] = {\n\t\tdays: [\"Sunnudagur\", \"Mánudagur\", \"Þriðjudagur\", \"Miðvikudagur\", \"Fimmtudagur\", \"Föstudagur\", \"Laugardagur\", \"Sunnudagur\"],\n\t\tdaysShort: [\"Sun\", \"Mán\", \"Þri\", \"Mið\", \"Fim\", \"Fös\", \"Lau\", \"Sun\"],\n\t\tdaysMin: [\"Su\", \"Má\", \"Þr\", \"Mi\", \"Fi\", \"Fö\", \"La\", \"Su\"],\n\t\tmonths: [\"Janúar\", \"Febrúar\", \"Mars\", \"Apríl\", \"Maí\", \"Júní\", \"Júlí\", \"Ágúst\", \"September\", \"Október\", \"Nóvember\", \"Desember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maí\", \"Jún\", \"Júl\", \"Ágú\", \"Sep\", \"Okt\", \"Nóv\", \"Des\"],\n\t\ttoday: \"Í Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.it.js",
    "content": "/**\n * Italian translation for bootstrap-datetimepicker\n * Enrico Rubboli <rubboli@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['it'] = {\n\t\tdays: [\"Domenica\", \"Lunedi\", \"Martedi\", \"Mercoledi\", \"Giovedi\", \"Venerdi\", \"Sabato\", \"Domenica\"],\n\t\tdaysShort: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Lu\", \"Ma\", \"Me\", \"Gi\", \"Ve\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Giugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"],\n\t\tmonthsShort: [\"Gen\", \"Feb\", \"Mar\", \"Apr\", \"Mag\", \"Giu\", \"Lug\", \"Ago\", \"Set\", \"Ott\", \"Nov\", \"Dic\"],\n\t\ttoday: \"Oggi\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1,\n\t\tformat: \"dd.mm.yyyy\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ja.js",
    "content": "/**\n * Japanese translation for bootstrap-datetimepicker\n * Norio Suzuki <https://github.com/suzuki/>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ja'] = {\n\t\tdays: [\"日曜\", \"月曜\", \"火曜\", \"水曜\", \"木曜\", \"金曜\", \"土曜\", \"日曜\"],\n\t\tdaysShort: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\", \"日\"],\n\t\tdaysMin: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\", \"日\"],\n\t\tmonths: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n\t\tmonthsShort: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n\t\ttoday: \"今日\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.kr.js",
    "content": "/**\n * Korean translation for bootstrap-datetimepicker\n * Gu Youn <http://github.com/guyoun>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['kr'] = {\n\t\tdays: [\"일요일\", \"월요일\", \"화요일\", \"수요일\", \"목요일\", \"금요일\", \"토요일\", \"일요일\"],\n\t\tdaysShort: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\", \"일\"],\n\t\tdaysMin: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\", \"일\"],\n\t\tmonths: [\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"],\n\t\tmonthsShort: [\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"],\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lt.js",
    "content": "﻿/**\n * Lithuanian translation for bootstrap-datetimepicker\n * Šarūnas Gliebus <ssharunas@yahoo.co.uk>\n */\n\n;(function($){\n    $.fn.datetimepicker.dates['lt'] = {\n        days: [\"Sekmadienis\", \"Pirmadienis\", \"Antradienis\", \"Trečiadienis\", \"Ketvirtadienis\", \"Penktadienis\", \"Šeštadienis\", \"Sekmadienis\"],\n        daysShort: [\"S\", \"Pr\", \"A\", \"T\", \"K\", \"Pn\", \"Š\", \"S\"],\n        daysMin: [\"Sk\", \"Pr\", \"An\", \"Tr\", \"Ke\", \"Pn\", \"Št\", \"Sk\"],\n        months: [\"Sausis\", \"Vasaris\", \"Kovas\", \"Balandis\", \"Gegužė\", \"Birželis\", \"Liepa\", \"Rugpjūtis\", \"Rugsėjis\", \"Spalis\", \"Lapkritis\", \"Gruodis\"],\n        monthsShort: [\"Sau\", \"Vas\", \"Kov\", \"Bal\", \"Geg\", \"Bir\", \"Lie\", \"Rugp\", \"Rugs\", \"Spa\", \"Lap\", \"Gru\"],\n        today: \"Šiandien\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n        weekStart: 1\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.lv.js",
    "content": "/**\n * Latvian translation for bootstrap-datetimepicker\n * Artis Avotins <artis@apit.lv>\n */\n\n;(function($){\n    $.fn.datetimepicker.dates['lv'] = {\n        days: [\"Svētdiena\", \"Pirmdiena\", \"Otrdiena\", \"Trešdiena\", \"Ceturtdiena\", \"Piektdiena\", \"Sestdiena\", \"Svētdiena\"],\n        daysShort: [\"Sv\", \"P\", \"O\", \"T\", \"C\", \"Pk\", \"S\", \"Sv\"],\n        daysMin: [\"Sv\", \"Pr\", \"Ot\", \"Tr\", \"Ce\", \"Pk\", \"St\", \"Sv\"],\n        months: [\"Janvāris\", \"Februāris\", \"Marts\", \"Aprīlis\", \"Maijs\", \"Jūnijs\", \"Jūlijs\", \"Augusts\", \"Septembris\", \"Oktobris\", \"Novembris\", \"Decembris\"],\n        monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jūn\", \"Jūl\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec.\"],\n        today: \"Šodien\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n        weekStart: 1\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ms.js",
    "content": "/**\n * Malay translation for bootstrap-datetimepicker\n * Ateman Faiz <noorulfaiz@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ms'] = {\n\t\tdays: [\"Ahad\", \"Isnin\", \"Selasa\", \"Rabu\", \"Khamis\", \"Jumaat\", \"Sabtu\", \"Ahad\"],\n\t\tdaysShort: [\"Aha\", \"Isn\", \"Sel\", \"Rab\", \"Kha\", \"Jum\", \"Sab\", \"Aha\"],\n\t\tdaysMin: [\"Ah\", \"Is\", \"Se\", \"Ra\", \"Kh\", \"Ju\", \"Sa\", \"Ah\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Mac\", \"April\", \"Mei\", \"Jun\", \"Julai\", \"Ogos\", \"September\", \"Oktober\", \"November\", \"Disember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Ogo\", \"Sep\", \"Okt\", \"Nov\", \"Dis\"],\n\t\ttoday: \"Hari Ini\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nb.js",
    "content": "/**\n * Norwegian (bokmål) translation for bootstrap-datetimepicker\n * Fredrik Sundmyhr <http://github.com/fsundmyhr>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['nb'] = {\n\t\tdays: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\", \"Søndag\"],\n\t\tdaysShort: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\", \"Søn\"],\n\t\tdaysMin: [\"Sø\", \"Ma\", \"Ti\", \"On\", \"To\", \"Fr\", \"Lø\", \"Sø\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n\t\ttoday: \"I Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.nl.js",
    "content": "/**\n * Dutch translation for bootstrap-datetimepicker\n * Reinier Goltstein <mrgoltstein@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['nl'] = {\n\t\tdays: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\", \"Zondag\"],\n\t\tdaysShort: [\"Zo\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\", \"Zo\"],\n\t\tdaysMin: [\"Zo\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\", \"Zo\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Maart\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Augustus\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Vandaag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pl.js",
    "content": "/**\n * Polish translation for bootstrap-datetimepicker\n * Robert <rtpm@gazeta.pl>\n */\n;(function($){\n$.fn.datetimepicker.dates['pl'] = {\n        days: [\"Niedziela\", \"Poniedziałek\", \"Wtorek\", \"Środa\", \"Czwartek\", \"Piątek\", \"Sobota\", \"Niedziela\"],\n        daysShort: [\"Nie\", \"Pn\", \"Wt\", \"Śr\", \"Czw\", \"Pt\", \"So\", \"Nie\"],\n        daysMin: [\"N\", \"Pn\", \"Wt\", \"Śr\", \"Cz\", \"Pt\", \"So\", \"N\"],\n        months: [\"Styczeń\", \"Luty\", \"Marzec\", \"Kwiecień\", \"Maj\", \"Czerwiec\", \"Lipiec\", \"Sierpień\", \"Wrzesień\", \"Październik\", \"Listopad\", \"Grudzień\"],\n        monthsShort: [\"Sty\", \"Lu\", \"Mar\", \"Kw\", \"Maj\", \"Cze\", \"Lip\", \"Sie\", \"Wrz\", \"Pa\", \"Lis\", \"Gru\"],\n        today: \"Dzisiaj\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n        weekStart: 1\n};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt-BR.js",
    "content": "/**\n * Brazilian translation for bootstrap-datetimepicker\n * Cauan Cabral <cauan@radig.com.br>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['pt-BR'] = {\n        format: 'dd/mm/yyyy',\n\t\tdays: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\", \"Domingo\"],\n\t\tdaysShort: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Se\", \"Te\", \"Qu\", \"Qu\", \"Se\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n\t\tmonthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"],\n\t\ttoday: \"Hoje\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.pt.js",
    "content": "/**\n * Portuguese translation for bootstrap-datetimepicker\n * Original code: Cauan Cabral <cauan@radig.com.br>\n * Tiago Melo <tiago.blackcode@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['pt'] = {\n\t\tdays: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\", \"Domingo\"],\n\t\tdaysShort: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\", \"Dom\"],\n\t\tdaysMin: [\"Do\", \"Se\", \"Te\", \"Qu\", \"Qu\", \"Se\", \"Sa\", \"Do\"],\n\t\tmonths: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n\t\tmonthsShort: [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"],\n\t\tsuffix: [],\n\t\tmeridiem: [\"am\",\"pm\"],\n\t\ttoday: \"Hoje\"\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ro.js",
    "content": "/**\n * Romanian translation for bootstrap-datetimepicker\n * Cristian Vasile <cristi.mie@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ro'] = {\n\t\tdays: [\"Duminică\", \"Luni\", \"Marţi\", \"Miercuri\", \"Joi\", \"Vineri\", \"Sâmbătă\", \"Duminică\"],\n\t\tdaysShort: [\"Dum\", \"Lun\", \"Mar\", \"Mie\", \"Joi\", \"Vin\", \"Sâm\", \"Dum\"],\n\t\tdaysMin: [\"Du\", \"Lu\", \"Ma\", \"Mi\", \"Jo\", \"Vi\", \"Sâ\", \"Du\"],\n\t\tmonths: [\"Ianuarie\", \"Februarie\", \"Martie\", \"Aprilie\", \"Mai\", \"Iunie\", \"Iulie\", \"August\", \"Septembrie\", \"Octombrie\", \"Noiembrie\", \"Decembrie\"],\n\t\tmonthsShort: [\"Ian\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Iun\", \"Iul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Astăzi\",\n\t\tsuffix: [],\n\t\tmeridiem: [],\n\t\tweekStart: 1\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.rs-latin.js",
    "content": "/**\n * Serbian latin translation for bootstrap-datetimepicker\n * Bojan Milosavlević <milboj@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['rs'] = {\n\t\tdays: [\"Nedelja\",\"Ponedeljak\", \"Utorak\", \"Sreda\", \"Četvrtak\", \"Petak\", \"Subota\", \"Nedelja\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Uto\", \"Sre\", \"Čet\", \"Pet\", \"Sub\", \"Ned\"],\n\t\tdaysMin: [\"N\", \"Po\", \"U\", \"Sr\", \"Č\", \"Pe\", \"Su\", \"N\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Mart\", \"April\", \"Maj\", \"Jun\", \"Jul\", \"Avgust\", \"Septembar\", \"Oktobar\", \"Novembar\", \"Decembar\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Danas\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.rs.js",
    "content": "/**\n * Serbian cyrillic translation for bootstrap-datetimepicker\n * Bojan Milosavlević <milboj@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['rs'] = {\n\t\tdays: [\"Недеља\",\"Понедељак\", \"Уторак\", \"Среда\", \"Четвртак\", \"Петак\", \"Субота\", \"Недеља\"],\n\t\tdaysShort: [\"Нед\", \"Пон\", \"Уто\", \"Сре\", \"Чет\", \"Пет\", \"Суб\", \"Нед\"],\n\t\tdaysMin: [\"Н\", \"По\", \"У\", \"Ср\", \"Ч\", \"Пе\", \"Су\", \"Н\"],\n\t\tmonths: [\"Јануар\", \"Фебруар\", \"Март\", \"Април\", \"Мај\", \"Јун\", \"Јул\", \"Август\", \"Септембар\", \"Октобар\", \"Новембар\", \"Децембар\"],\n\t\tmonthsShort: [\"Јан\", \"Феб\", \"Мар\", \"Апр\", \"Мај\", \"Јун\", \"Јул\", \"Авг\", \"Сеп\", \"Окт\", \"Нов\", \"Дец\"],\n\t\ttoday: \"Данас\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ru.js",
    "content": "/**\n * Russian translation for bootstrap-datetimepicker\n * Victor Taranenko <darwin@snowdale.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ru'] = {\n\t\tdays: [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\", \"Воскресенье\"],\n\t\tdaysShort: [\"Вск\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\", \"Вск\"],\n\t\tdaysMin: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\", \"Вс\"],\n\t\tmonths: [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"],\n\t\tmonthsShort: [\"Янв\", \"Фев\", \"Мар\", \"Апр\", \"Май\", \"Июн\", \"Июл\", \"Авг\", \"Сен\", \"Окт\", \"Ноя\", \"Дек\"],\n\t\ttoday: \"Сегодня\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sk.js",
    "content": "/**\n * Slovak translation for bootstrap-datetimepicker\n * Marek Lichtner <marek@licht.sk>\n * Fixes by Michal Remiš <michal.remis@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates[\"sk\"] = {\n\t\tdays: [\"Nedeľa\", \"Pondelok\", \"Utorok\", \"Streda\", \"Štvrtok\", \"Piatok\", \"Sobota\", \"Nedeľa\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Uto\", \"Str\", \"Štv\", \"Pia\", \"Sob\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"Ut\", \"St\", \"Št\", \"Pia\", \"So\", \"Ne\"],\n\t\tmonths: [\"Január\", \"Február\", \"Marec\", \"Apríl\", \"Máj\", \"Jún\", \"Júl\", \"August\", \"September\", \"Október\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Dnes\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sl.js",
    "content": "/**\n * Slovene translation for bootstrap-datetimepicker\n * Gregor Rudolf <gregor.rudolf@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['sl'] = {\n\t\tdays: [\"Nedelja\", \"Ponedeljek\", \"Torek\", \"Sreda\", \"Četrtek\", \"Petek\", \"Sobota\", \"Nedelja\"],\n\t\tdaysShort: [\"Ned\", \"Pon\", \"Tor\", \"Sre\", \"Čet\", \"Pet\", \"Sob\", \"Ned\"],\n\t\tdaysMin: [\"Ne\", \"Po\", \"To\", \"Sr\", \"Če\", \"Pe\", \"So\", \"Ne\"],\n\t\tmonths: [\"Januar\", \"Februar\", \"Marec\", \"April\", \"Maj\", \"Junij\", \"Julij\", \"Avgust\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Avg\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"Danes\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sv.js",
    "content": "/**\n * Swedish translation for bootstrap-datetimepicker\n * Patrik Ragnarsson <patrik@starkast.net>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['sv'] = {\n\t\tdays: [\"Söndag\", \"Måndag\", \"Tisdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lördag\", \"Söndag\"],\n\t\tdaysShort: [\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\", \"Sön\"],\n\t\tdaysMin: [\"Sö\", \"Må\", \"Ti\", \"On\", \"To\", \"Fr\", \"Lö\", \"Sö\"],\n\t\tmonths: [\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"],\n\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n\t\ttoday: \"I Dag\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.sw.js",
    "content": "/**\n * Swahili translation for bootstrap-datetimepicker\n * Edwin Mugendi <https://github.com/edwinmugendi>\n * Source: http://scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku\n */\n;(function($){\n    $.fn.datetimepicker.dates['sw'] = {\n        days: [\"Jumapili\", \"Jumatatu\", \"Jumanne\", \"Jumatano\", \"Alhamisi\", \"Ijumaa\", \"Jumamosi\", \"Jumapili\"],\n        daysShort: [\"J2\", \"J3\", \"J4\", \"J5\", \"Alh\", \"Ij\", \"J1\", \"J2\"],\n        daysMin: [\"2\", \"3\", \"4\", \"5\", \"A\", \"I\", \"1\", \"2\"],\n        months: [\"Januari\", \"Februari\", \"Machi\", \"Aprili\", \"Mei\", \"Juni\", \"Julai\", \"Agosti\", \"Septemba\", \"Oktoba\", \"Novemba\", \"Desemba\"],\n        monthsShort: [\"Jan\", \"Feb\", \"Mac\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n        today: \"Leo\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.th.js",
    "content": "/**\n * Thai translation for bootstrap-datetimepicker\n * Suchau Jiraprapot <seroz24@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['th'] = {\n\t\tdays: [\"อาทิตย์\", \"จันทร์\", \"อังคาร\", \"พุธ\", \"พฤหัส\", \"ศุกร์\", \"เสาร์\", \"อาทิตย์\"],\n\t\tdaysShort: [\"อา\", \"จ\", \"อ\", \"พ\", \"พฤ\", \"ศ\", \"ส\", \"อา\"],\n\t\tdaysMin: [\"อา\", \"จ\", \"อ\", \"พ\", \"พฤ\", \"ศ\", \"ส\", \"อา\"],\n\t\tmonths: [\"มกราคม\", \"กุมภาพันธ์\", \"มีนาคม\", \"เมษายน\", \"พฤษภาคม\", \"มิถุนายน\", \"กรกฎาคม\", \"สิงหาคม\", \"กันยายน\", \"ตุลาคม\", \"พฤศจิกายน\", \"ธันวาคม\"],\n\t\tmonthsShort: [\"ม.ค.\", \"ก.พ.\", \"มี.ค.\", \"เม.ย.\", \"พ.ค.\", \"มิ.ย.\", \"ก.ค.\", \"ส.ค.\", \"ก.ย.\", \"ต.ค.\", \"พ.ย.\", \"ธ.ค.\"],\n\t\ttoday: \"วันนี้\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.tr.js",
    "content": "/**\n * Turkish translation for bootstrap-datetimepicker\n * Serkan Algur <kaisercrazy_2@hotmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['tr'] = {\n\t\tdays: [\"Pazar\", \"Pazartesi\", \"Salı\", \"Çarşamba\", \"Perşembe\", \"Cuma\", \"Cumartesi\", \"Pazar\"],\n\t\tdaysShort: [\"Pz\", \"Pzt\", \"Sal\", \"Çrş\", \"Prş\", \"Cu\", \"Cts\", \"Pz\"],\n\t\tdaysMin: [\"Pz\", \"Pzt\", \"Sa\", \"Çr\", \"Pr\", \"Cu\", \"Ct\", \"Pz\"],\n\t\tmonths: [\"Ocak\", \"Şubat\", \"Mart\", \"Nisan\", \"Mayıs\", \"Haziran\", \"Temmuz\", \"Ağustos\", \"Eylül\", \"Ekim\", \"Kasım\", \"Aralık\"],\n\t\tmonthsShort: [\"Oca\", \"Şub\", \"Mar\", \"Nis\", \"May\", \"Haz\", \"Tem\", \"Ağu\", \"Eyl\", \"Eki\", \"Kas\", \"Ara\"],\n\t\ttoday: \"Bugün\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.ua.js",
    "content": "/**\n * Ukrainian translation for bootstrap-datepicker\n * Igor Polynets\n */\n;(function($){\n\t$.fn.datetimepicker.dates['ua'] = {\n\t\tdays: [\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четверг\", \"П'ятниця\", \"Субота\", \"Неділя\"],\n\t\tdaysShort: [\"Нед\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\", \"Нед\"],\n\t\tdaysMin: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\", \"Нд\"],\n\t\tmonths: [\"Cічень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"],\n\t\tmonthsShort: [\"Січ\", \"Лют\", \"Бер\", \"Квт\", \"Трв\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Грд\"],\n\t\ttoday: \"Сьогодні\",\n\t\tweekStart: 1\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.uk.js",
    "content": "/**\n * Ukrainian translation for bootstrap-datetimepicker\n * Andrey Vityuk <andrey [dot] vityuk [at] gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['uk'] = {\n\t\tdays: [\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четвер\", \"П'ятниця\", \"Субота\", \"Неділя\"],\n\t\tdaysShort: [\"Нед\", \"Пнд\", \"Втр\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\", \"Нед\"],\n\t\tdaysMin: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\", \"Нд\"],\n\t\tmonths: [\"Січень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"],\n\t\tmonthsShort: [\"Січ\", \"Лют\", \"Бер\", \"Кві\", \"Тра\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Гру\"],\n\t\ttoday: \"Сьогодні\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js",
    "content": "/**\n * Simplified Chinese translation for bootstrap-datetimepicker\n * Yuan Cheung <advanimal@gmail.com>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['zh-CN'] = {\n\t\t\t\tdays: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\", \"星期日\"],\n\t\t\tdaysShort: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\", \"周日\"],\n\t\t\tdaysMin:  [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"日\"],\n\t\t\tmonths: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\tmonthsShort: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\t\ttoday: \"今日\",\n\t\tsuffix: [],\n\t\tmeridiem: []\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-TW.js",
    "content": "/**\n * Traditional Chinese translation for bootstrap-datetimepicker\n * Rung-Sheng Jang <daniel@i-trend.co.cc>\n */\n;(function($){\n\t$.fn.datetimepicker.dates['zh-TW'] = {\n\tdays: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\", \"星期日\"],\n\t  daysShort: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\", \"周日\"],\n\t\tdaysMin:  [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"日\"],\n\t\tmonths: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\tmonthsShort: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n\t\ttoday: \"今天\",\n    suffix: [],\n\t\tmeridiem: [\"上午\", \"下午\"]\n\t};\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/js/bootstrap-markdown.js",
    "content": "/* ===================================================\n * bootstrap-markdown.js v2.9.0\n * http://github.com/toopay/bootstrap-markdown\n * ===================================================\n * Copyright 2013-2015 Taufan Aditya\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================== */\n\n!function ($) {\n\n  \"use strict\"; // jshint ;_;\n\n  /* MARKDOWN CLASS DEFINITION\n   * ========================== */\n\n  var Markdown = function (element, options) {\n    // @TODO : remove this BC on next major release\n    // @see : https://github.com/toopay/bootstrap-markdown/issues/109\n    var opts = ['autofocus', 'savable', 'hideable', 'width', \n      'height', 'resize', 'iconlibrary', 'language', \n      'footer', 'fullscreen', 'hiddenButtons', 'disabledButtons'];\n    $.each(opts,function(_, opt){\n      if (typeof $(element).data(opt) !== 'undefined') {\n        options = typeof options == 'object' ? options : {}\n        options[opt] = $(element).data(opt)\n      }\n    });\n    // End BC\n\n    // Class Properties\n    this.$ns           = 'bootstrap-markdown';\n    this.$element      = $(element);\n    this.$editable     = {el:null, type:null,attrKeys:[], attrValues:[], content:null};\n    this.$options      = $.extend(true, {}, $.fn.markdown.defaults, options, this.$element.data('options'));\n    this.$oldContent   = null;\n    this.$isPreview    = false;\n    this.$isFullscreen = false;\n    this.$editor       = null;\n    this.$textarea     = null;\n    this.$handler      = [];\n    this.$callback     = [];\n    this.$nextTab      = [];\n\n    this.showEditor();\n  };\n\n  Markdown.prototype = {\n\n    constructor: Markdown\n\n  , __alterButtons: function(name,alter) {\n      var handler = this.$handler, isAll = (name == 'all'),that = this;\n\n      $.each(handler,function(k,v) {\n        var halt = true;\n        if (isAll) {\n          halt = false;\n        } else {\n          halt = v.indexOf(name) < 0;\n        }\n\n        if (halt === false) {\n          alter(that.$editor.find('button[data-handler=\"'+v+'\"]'));\n        }\n      });\n    }\n\n  , __buildButtons: function(buttonsArray, container) {\n      var i,\n          ns = this.$ns,\n          handler = this.$handler,\n          callback = this.$callback;\n\n      for (i=0;i<buttonsArray.length;i++) {\n        // Build each group container\n        var y, btnGroups = buttonsArray[i];\n        for (y=0;y<btnGroups.length;y++) {\n          // Build each button group\n          var z,\n              buttons = btnGroups[y].data,\n              btnGroupContainer = $('<div/>', {\n                                    'class': 'btn-group'\n                                  });\n\n          for (z=0;z<buttons.length;z++) {\n            var button = buttons[z],\n                buttonContainer, buttonIconContainer,\n                buttonHandler = ns+'-'+button.name,\n                buttonIcon = this.__getIcon(button.icon),\n                btnText = button.btnText ? button.btnText : '',\n                btnClass = button.btnClass ? button.btnClass : 'btn',\n                tabIndex = button.tabIndex ? button.tabIndex : '-1',\n                hotkey = typeof button.hotkey !== 'undefined' ? button.hotkey : '',\n                hotkeyCaption = typeof jQuery.hotkeys !== 'undefined' && hotkey !== '' ? ' ('+hotkey+')' : '';\n\n            // Construct the button object\n            buttonContainer = $('<button></button>');\n            buttonContainer.text(' ' + this.__localize(btnText)).addClass('btn-default btn-sm').addClass(btnClass);\n            if(btnClass.match(/btn\\-(primary|success|info|warning|danger|link)/)){\n                buttonContainer.removeClass('btn-default');\n            }\n            buttonContainer.attr({\n                'type': 'button',\n                'title': this.__localize(button.title) + hotkeyCaption,\n                'tabindex': tabIndex,\n                'data-provider': ns,\n                'data-handler': buttonHandler,\n                'data-hotkey': hotkey\n            });\n            if (button.toggle === true){\n              buttonContainer.attr('data-toggle', 'button');\n            }\n            buttonIconContainer = $('<span/>');\n            buttonIconContainer.addClass(buttonIcon);\n            buttonIconContainer.prependTo(buttonContainer);\n\n            // Attach the button object\n            btnGroupContainer.append(buttonContainer);\n\n            // Register handler and callback\n            handler.push(buttonHandler);\n            callback.push(button.callback);\n          }\n\n          // Attach the button group into container dom\n          container.append(btnGroupContainer);\n        }\n      }\n\n      return container;\n    }\n  , __setListener: function() {\n      // Set size and resizable Properties\n      var hasRows = typeof this.$textarea.attr('rows') !== 'undefined',\n          maxRows = this.$textarea.val().split(\"\\n\").length > 5 ? this.$textarea.val().split(\"\\n\").length : '5',\n          rowsVal = hasRows ? this.$textarea.attr('rows') : maxRows;\n\n      this.$textarea.attr('rows',rowsVal);\n      if (this.$options.resize) {\n        this.$textarea.css('resize',this.$options.resize);\n      }\n\n      this.$textarea\n        .on('focus',    $.proxy(this.focus, this))\n        .on('keypress', $.proxy(this.keypress, this))\n        .on('keyup',    $.proxy(this.keyup, this))\n        .on('change',   $.proxy(this.change, this))\n        .on('select',   $.proxy(this.select, this));\n\n      if (this.eventSupported('keydown')) {\n        this.$textarea.on('keydown', $.proxy(this.keydown, this));\n      }\n\n      // Re-attach markdown data\n      this.$textarea.data('markdown',this);\n    }\n\n  , __handle: function(e) {\n      var target = $(e.currentTarget),\n          handler = this.$handler,\n          callback = this.$callback,\n          handlerName = target.attr('data-handler'),\n          callbackIndex = handler.indexOf(handlerName),\n          callbackHandler = callback[callbackIndex];\n\n      // Trigger the focusin\n      $(e.currentTarget).focus();\n\n      callbackHandler(this);\n\n      // Trigger onChange for each button handle\n      this.change(this);\n\n      // Unless it was the save handler,\n      // focusin the textarea\n      if (handlerName.indexOf('cmdSave') < 0) {\n        this.$textarea.focus();\n      }\n\n      e.preventDefault();\n    }\n\n  , __localize: function(string) {\n      var messages = $.fn.markdown.messages,\n          language = this.$options.language;\n      if (\n        typeof messages !== 'undefined' &&\n        typeof messages[language] !== 'undefined' &&\n        typeof messages[language][string] !== 'undefined'\n      ) {\n        return messages[language][string];\n      }\n      return string;\n    }\n\n  , __getIcon: function(src) {\n    return typeof src == 'object' ? src[this.$options.iconlibrary] : src;\n  }\n\n  , setFullscreen: function(mode) {\n    var $editor = this.$editor,\n        $textarea = this.$textarea;\n\n    if (mode === true) {\n      $editor.addClass('md-fullscreen-mode');\n      $('body').addClass('md-nooverflow');\n      this.$options.onFullscreen(this);\n    } else {\n      $editor.removeClass('md-fullscreen-mode');\n      $('body').removeClass('md-nooverflow');\n\n      if (this.$isPreview == true) this.hidePreview().showPreview()\n    }\n\n    this.$isFullscreen = mode;\n    $textarea.focus();\n  }\n\n  , showEditor: function() {\n      var instance = this,\n          textarea,\n          ns = this.$ns,\n          container = this.$element,\n          originalHeigth = container.css('height'),\n          originalWidth = container.css('width'),\n          editable = this.$editable,\n          handler = this.$handler,\n          callback = this.$callback,\n          options = this.$options,\n          editor = $( '<div/>', {\n                      'class': 'md-editor',\n                      click: function() {\n                        instance.focus();\n                      }\n                    });\n\n      // Prepare the editor\n      if (this.$editor === null) {\n        // Create the panel\n        var editorHeader = $('<div/>', {\n                            'class': 'md-header btn-toolbar'\n                            });\n\n        // Merge the main & additional button groups together\n        var allBtnGroups = [];\n        if (options.buttons.length > 0) allBtnGroups = allBtnGroups.concat(options.buttons[0]);\n        if (options.additionalButtons.length > 0) {\n          // iterate the additional button groups\n          $.each(options.additionalButtons[0], function(idx, buttonGroup){\n            \n            // see if the group name of the addional group matches an existing group\n            var matchingGroups = $.grep(allBtnGroups, function(allButtonGroup, allIdx){\n              return allButtonGroup.name === buttonGroup.name;\n            });\n\n            // if it matches add the addional buttons to that group, if not just add it to the all buttons group\n            if(matchingGroups.length > 0) {\n              matchingGroups[0].data = matchingGroups[0].data.concat(buttonGroup.data);\n            } else {              \n              allBtnGroups.push(options.additionalButtons[0][idx]);\n            }\n\n          });\n        } \n\n        // Reduce and/or reorder the button groups\n        if (options.reorderButtonGroups.length > 0) {\n          allBtnGroups = allBtnGroups\n              .filter(function(btnGroup) {\n                return options.reorderButtonGroups.indexOf(btnGroup.name) > -1;\n              })\n              .sort(function(a, b) {\n                if (options.reorderButtonGroups.indexOf(a.name) < options.reorderButtonGroups.indexOf(b.name)) return -1;\n                if (options.reorderButtonGroups.indexOf(a.name) > options.reorderButtonGroups.indexOf(b.name)) return 1;\n                return 0;\n              });\n        }\n\n        // Build the buttons\n        if (allBtnGroups.length > 0) {\n          editorHeader = this.__buildButtons([allBtnGroups], editorHeader);\n        }\n\n        if (options.fullscreen.enable) {\n          editorHeader.append('<div class=\"md-controls\"><a class=\"md-control md-control-fullscreen\" href=\"#\"><span class=\"'+this.__getIcon(options.fullscreen.icons.fullscreenOn)+'\"></span></a></div>').on('click', '.md-control-fullscreen', function(e) {\n              e.preventDefault();\n              instance.setFullscreen(true);\n          });\n        }\n\n        editor.append(editorHeader);\n\n        // Wrap the textarea\n        if (container.is('textarea')) {\n          container.before(editor);\n          textarea = container;\n          textarea.addClass('md-input');\n          editor.append(textarea);\n        } else {\n          var rawContent = (typeof toMarkdown == 'function') ? toMarkdown(container.html()) : container.html(),\n              currentContent = $.trim(rawContent);\n\n          // This is some arbitrary content that could be edited\n          textarea = $('<textarea/>', {\n                       'class': 'md-input',\n                       'val' : currentContent\n                      });\n\n          editor.append(textarea);\n\n          // Save the editable\n          editable.el = container;\n          editable.type = container.prop('tagName').toLowerCase();\n          editable.content = container.html();\n\n          $(container[0].attributes).each(function(){\n            editable.attrKeys.push(this.nodeName);\n            editable.attrValues.push(this.nodeValue);\n          });\n\n          // Set editor to blocked the original container\n          container.replaceWith(editor);\n        }\n\n        var editorFooter = $('<div/>', {\n                           'class': 'md-footer'\n                         }),\n            createFooter = false,\n            footer = '';\n        // Create the footer if savable\n        if (options.savable) {\n          createFooter = true;\n          var saveHandler = 'cmdSave';\n\n          // Register handler and callback\n          handler.push(saveHandler);\n          callback.push(options.onSave);\n\n          editorFooter.append('<button class=\"btn btn-success\" data-provider=\"'\n                              + ns\n                              + '\" data-handler=\"'\n                              + saveHandler\n                              + '\"><i class=\"icon icon-white icon-ok\"></i> '\n                              + this.__localize('Save')\n                              + '</button>');\n\n\n        }\n\n        footer = typeof options.footer === 'function' ? options.footer(this) : options.footer;\n\n        if ($.trim(footer) !== '') {\n          createFooter = true;\n          editorFooter.append(footer);\n        }\n\n        if (createFooter) editor.append(editorFooter);\n\n        // Set width\n        if (options.width && options.width !== 'inherit') {\n          if (jQuery.isNumeric(options.width)) {\n            editor.css('display', 'table');\n            textarea.css('width', options.width + 'px');\n          } else {\n            editor.addClass(options.width);\n          }\n        }\n\n        // Set height\n        if (options.height && options.height !== 'inherit') {\n          if (jQuery.isNumeric(options.height)) {\n            var height = options.height;\n            if (editorHeader) height = Math.max(0, height - editorHeader.outerHeight());\n            if (editorFooter) height = Math.max(0, height - editorFooter.outerHeight());\n            textarea.css('height', height + 'px');\n          } else {\n            editor.addClass(options.height);\n          }\n        }\n\n        // Reference\n        this.$editor     = editor;\n        this.$textarea   = textarea;\n        this.$editable   = editable;\n        this.$oldContent = this.getContent();\n\n        this.__setListener();\n\n        // Set editor attributes, data short-hand API and listener\n        this.$editor.attr('id',(new Date()).getTime());\n        this.$editor.on('click', '[data-provider=\"bootstrap-markdown\"]', $.proxy(this.__handle, this));\n\n        if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {\n          this.$editor.addClass('md-editor-disabled');\n          this.disableButtons('all');\n        }\n\n        if (this.eventSupported('keydown') && typeof jQuery.hotkeys === 'object') {\n          editorHeader.find('[data-provider=\"bootstrap-markdown\"]').each(function() {\n            var $button = $(this),\n                hotkey = $button.attr('data-hotkey');\n            if (hotkey.toLowerCase() !== '') {\n              textarea.bind('keydown', hotkey, function() {\n                $button.trigger('click');\n                return false;\n              });\n            }\n          });\n        }\n\n        if (options.initialstate === 'preview') {\n          this.showPreview();\n        } else if (options.initialstate === 'fullscreen' && options.fullscreen.enable) {\n          this.setFullscreen(true);\n        }\n\n      } else {\n        this.$editor.show();\n      }\n\n      if (options.autofocus) {\n        this.$textarea.focus();\n        this.$editor.addClass('active');\n      }\n\n      if (options.fullscreen.enable && options.fullscreen !== false) {\n        this.$editor.append('<div class=\"md-fullscreen-controls\">'\n                        + '<a href=\"#\" class=\"exit-fullscreen\" title=\"Exit fullscreen\"><span class=\"' + this.__getIcon(options.fullscreen.icons.fullscreenOff) + '\">'\n                        + '</span></a>'\n                        + '</div>');\n        this.$editor.on('click', '.exit-fullscreen', function(e) {\n          e.preventDefault();\n          instance.setFullscreen(false);\n        });\n      }\n\n      // hide hidden buttons from options\n      this.hideButtons(options.hiddenButtons);\n\n      // disable disabled buttons from options\n      this.disableButtons(options.disabledButtons);\n\n      // Trigger the onShow hook\n      options.onShow(this);\n\n      return this;\n    }\n\n  , parseContent: function(val) {\n      var content;\n\n      // parse with supported markdown parser\n      var val = val || this.$textarea.val();\n\n      if (this.$options.parser) {\n        content = this.$options.parser(val);\n      } else if (typeof markdown == 'object') {\n        content = markdown.toHTML(val);\n      } else if (typeof marked == 'function') {\n        content = marked(val);\n      } else {\n        content = val;\n      }\n\n      return content;\n    }\n\n  , showPreview: function() {\n      var options = this.$options,\n          container = this.$textarea,\n          afterContainer = container.next(),\n          replacementContainer = $('<div/>',{'class':'md-preview','data-provider':'markdown-preview'}),\n          content,\n          callbackContent;\n\n      if (this.$isPreview == true) {\n        // Avoid sequenced element creation on missused scenario\n        // @see https://github.com/toopay/bootstrap-markdown/issues/170\n        return this;\n      }\n      \n      // Give flag that tell the editor enter preview mode\n      this.$isPreview = true;\n      // Disable all buttons\n      this.disableButtons('all').enableButtons('cmdPreview');\n\n      // Try to get the content from callback\n      callbackContent = options.onPreview(this);\n      // Set the content based from the callback content if string otherwise parse value from textarea\n      content = typeof callbackContent == 'string' ? callbackContent : this.parseContent();\n\n      // Build preview element\n      replacementContainer.html(content);\n\n      if (afterContainer && afterContainer.attr('class') == 'md-footer') {\n        // If there is footer element, insert the preview container before it\n        replacementContainer.insertBefore(afterContainer);\n      } else {\n        // Otherwise, just append it after textarea\n        container.parent().append(replacementContainer);\n      }\n\n      // Set the preview element dimensions\n      replacementContainer.css({\n        width: container.outerWidth() + 'px',\n        height: container.outerHeight() + 'px'\n      });\n\n      if (this.$options.resize) {\n        replacementContainer.css('resize',this.$options.resize);\n      }\n\n      // Hide the last-active textarea\n      container.hide();\n\n      // Attach the editor instances\n      replacementContainer.data('markdown',this);\n\n      if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {\n        this.$editor.addClass('md-editor-disabled');\n        this.disableButtons('all');\n      }\n\n      return this;\n    }\n\n  , hidePreview: function() {\n      // Give flag that tell the editor quit preview mode\n      this.$isPreview = false;\n\n      // Obtain the preview container\n      var container = this.$editor.find('div[data-provider=\"markdown-preview\"]');\n\n      // Remove the preview container\n      container.remove();\n\n      // Enable all buttons\n      this.enableButtons('all');\n      // Disable configured disabled buttons\n      this.disableButtons(this.$options.disabledButtons);\n\n      // Back to the editor\n      this.$textarea.show();\n      this.__setListener();\n\n      return this;\n    }\n\n  , isDirty: function() {\n      return this.$oldContent != this.getContent();\n    }\n\n  , getContent: function() {\n      return this.$textarea.val();\n    }\n\n  , setContent: function(content) {\n      this.$textarea.val(content);\n\n      return this;\n    }\n\n  , findSelection: function(chunk) {\n    var content = this.getContent(), startChunkPosition;\n\n    if (startChunkPosition = content.indexOf(chunk), startChunkPosition >= 0 && chunk.length > 0) {\n      var oldSelection = this.getSelection(), selection;\n\n      this.setSelection(startChunkPosition,startChunkPosition+chunk.length);\n      selection = this.getSelection();\n\n      this.setSelection(oldSelection.start,oldSelection.end);\n\n      return selection;\n    } else {\n      return null;\n    }\n  }\n\n  , getSelection: function() {\n\n      var e = this.$textarea[0];\n\n      return (\n\n          ('selectionStart' in e && function() {\n              var l = e.selectionEnd - e.selectionStart;\n              return { start: e.selectionStart, end: e.selectionEnd, length: l, text: e.value.substr(e.selectionStart, l) };\n          }) ||\n\n          /* browser not supported */\n          function() {\n            return null;\n          }\n\n      )();\n\n    }\n\n  , setSelection: function(start,end) {\n\n      var e = this.$textarea[0];\n\n      return (\n\n          ('selectionStart' in e && function() {\n              e.selectionStart = start;\n              e.selectionEnd = end;\n              return;\n          }) ||\n\n          /* browser not supported */\n          function() {\n            return null;\n          }\n\n      )();\n\n    }\n\n  , replaceSelection: function(text) {\n\n      var e = this.$textarea[0];\n\n      return (\n\n          ('selectionStart' in e && function() {\n              e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length);\n              // Set cursor to the last replacement end\n              e.selectionStart = e.value.length;\n              return this;\n          }) ||\n\n          /* browser not supported */\n          function() {\n              e.value += text;\n              return jQuery(e);\n          }\n\n      )();\n    }\n\n  , getNextTab: function() {\n      // Shift the nextTab\n      if (this.$nextTab.length === 0) {\n        return null;\n      } else {\n        var nextTab, tab = this.$nextTab.shift();\n\n        if (typeof tab == 'function') {\n          nextTab = tab();\n        } else if (typeof tab == 'object' && tab.length > 0) {\n          nextTab = tab;\n        }\n\n        return nextTab;\n      }\n    }\n\n  , setNextTab: function(start,end) {\n      // Push new selection into nextTab collections\n      if (typeof start == 'string') {\n        var that = this;\n        this.$nextTab.push(function(){\n          return that.findSelection(start);\n        });\n      } else if (typeof start == 'number' && typeof end == 'number') {\n        var oldSelection = this.getSelection();\n\n        this.setSelection(start,end);\n        this.$nextTab.push(this.getSelection());\n\n        this.setSelection(oldSelection.start,oldSelection.end);\n      }\n\n      return;\n    }\n\n  , __parseButtonNameParam: function (names) {\n      return typeof names == 'string' ?\n                      names.split(' ') :\n                      names;\n\n    }\n\n  , enableButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.removeAttr('disabled');\n        });\n      });\n\n      return this;\n    }\n\n  , disableButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.attr('disabled','disabled');\n        });\n      });\n\n      return this;\n    }\n\n  , hideButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.addClass('hidden');\n        });\n      });\n\n      return this;\n    }\n\n  , showButtons: function(name) {\n      var buttons = this.__parseButtonNameParam(name),\n        that = this;\n\n      $.each(buttons, function(i, v) {\n        that.__alterButtons(buttons[i], function (el) {\n          el.removeClass('hidden');\n        });\n      });\n\n      return this;\n    }\n\n  , eventSupported: function(eventName) {\n      var isSupported = eventName in this.$element;\n      if (!isSupported) {\n        this.$element.setAttribute(eventName, 'return;');\n        isSupported = typeof this.$element[eventName] === 'function';\n      }\n      return isSupported;\n    }\n\n  , keyup: function (e) {\n      var blocked = false;\n      switch(e.keyCode) {\n        case 40: // down arrow\n        case 38: // up arrow\n        case 16: // shift\n        case 17: // ctrl\n        case 18: // alt\n          break;\n\n        case 9: // tab\n          var nextTab;\n          if (nextTab = this.getNextTab(),nextTab !== null) {\n            // Get the nextTab if exists\n            var that = this;\n            setTimeout(function(){\n              that.setSelection(nextTab.start,nextTab.end);\n            },500);\n\n            blocked = true;\n          } else {\n            // The next tab memory contains nothing...\n            // check the cursor position to determine tab action\n            var cursor = this.getSelection();\n\n            if (cursor.start == cursor.end && cursor.end == this.getContent().length) {\n              // The cursor already reach the end of the content\n              blocked = false;\n            } else {\n              // Put the cursor to the end\n              this.setSelection(this.getContent().length,this.getContent().length);\n\n              blocked = true;\n            }\n          }\n\n          break;\n\n        case 13: // enter\n          blocked = false;\n          break;\n        case 27: // escape\n          if (this.$isFullscreen) this.setFullscreen(false);\n          blocked = false;\n          break;\n\n        default:\n          blocked = false;\n      }\n\n      if (blocked) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n\n      this.$options.onChange(this);\n    }\n\n  , change: function(e) {\n      this.$options.onChange(this);\n      return this;\n    }\n  , select: function (e) {\n      this.$options.onSelect(this);\n      return this;\n    }\n  , focus: function (e) {\n      var options = this.$options,\n          isHideable = options.hideable,\n          editor = this.$editor;\n\n      editor.addClass('active');\n\n      // Blur other markdown(s)\n      $(document).find('.md-editor').each(function(){\n        if ($(this).attr('id') !== editor.attr('id')) {\n          var attachedMarkdown;\n\n          if (attachedMarkdown = $(this).find('textarea').data('markdown'),\n              attachedMarkdown === null) {\n              attachedMarkdown = $(this).find('div[data-provider=\"markdown-preview\"]').data('markdown');\n          }\n\n          if (attachedMarkdown) {\n            attachedMarkdown.blur();\n          }\n        }\n      });\n\n      // Trigger the onFocus hook\n      options.onFocus(this);\n\n      return this;\n    }\n\n  , blur: function (e) {\n      var options = this.$options,\n          isHideable = options.hideable,\n          editor = this.$editor,\n          editable = this.$editable;\n\n      if (editor.hasClass('active') || this.$element.parent().length === 0) {\n        editor.removeClass('active');\n\n        if (isHideable) {\n          // Check for editable elements\n          if (editable.el !== null) {\n            // Build the original element\n            var oldElement = $('<'+editable.type+'/>'),\n                content = this.getContent(),\n                currentContent = this.parseContent(content);\n\n            $(editable.attrKeys).each(function(k,v) {\n              oldElement.attr(editable.attrKeys[k],editable.attrValues[k]);\n            });\n\n            // Get the editor content\n            oldElement.html(currentContent);\n\n            editor.replaceWith(oldElement);\n          } else {\n            editor.hide();\n          }\n        }\n\n        // Trigger the onBlur hook\n        options.onBlur(this);\n      }\n\n      return this;\n    }\n\n  };\n\n /* MARKDOWN PLUGIN DEFINITION\n  * ========================== */\n\n  var old = $.fn.markdown;\n\n  $.fn.markdown = function (option) {\n    return this.each(function () {\n      var $this = $(this)\n        , data = $this.data('markdown')\n        , options = typeof option == 'object' && option;\n      if (!data) $this.data('markdown', (data = new Markdown(this, options)))\n    })\n  };\n\n  $.fn.markdown.messages = {};\n\n  $.fn.markdown.defaults = {\n    /* Editor Properties */\n    autofocus: false,\n    hideable: false,\n    savable: false,\n    width: 'inherit',\n    height: 'inherit',\n    resize: 'none',\n    iconlibrary: 'glyph',\n    language: 'en',\n    initialstate: 'editor',\n    parser: null,\n\n    /* Buttons Properties */\n    buttons: [\n      [{\n        name: 'groupFont',\n        data: [{\n          name: 'cmdBold',\n          hotkey: 'Ctrl+B',\n          title: 'Bold',\n          icon: { glyph: 'glyphicon glyphicon-bold', fa: 'fa fa-bold', 'fa-3': 'icon-bold' },\n          callback: function(e){\n            // Give/remove ** surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('strong text');\n            } else {\n              chunk = selected.text;\n            }\n\n            // transform selection and set the cursor into chunked text\n            if (content.substr(selected.start-2,2) === '**'\n                && content.substr(selected.end,2) === '**' ) {\n              e.setSelection(selected.start-2,selected.end+2);\n              e.replaceSelection(chunk);\n              cursor = selected.start-2;\n            } else {\n              e.replaceSelection('**'+chunk+'**');\n              cursor = selected.start+2;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },{\n          name: 'cmdItalic',\n          title: 'Italic',\n          hotkey: 'Ctrl+I',\n          icon: { glyph: 'glyphicon glyphicon-italic', fa: 'fa fa-italic', 'fa-3': 'icon-italic' },\n          callback: function(e){\n            // Give/remove * surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('emphasized text');\n            } else {\n              chunk = selected.text;\n            }\n\n            // transform selection and set the cursor into chunked text\n            if (content.substr(selected.start-1,1) === '_'\n                && content.substr(selected.end,1) === '_' ) {\n              e.setSelection(selected.start-1,selected.end+1);\n              e.replaceSelection(chunk);\n              cursor = selected.start-1;\n            } else {\n              e.replaceSelection('_'+chunk+'_');\n              cursor = selected.start+1;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },{\n          name: 'cmdHeading',\n          title: 'Heading',\n          hotkey: 'Ctrl+H',\n          icon: { glyph: 'glyphicon glyphicon-header', fa: 'fa fa-header', 'fa-3': 'icon-font' },\n          callback: function(e){\n            // Append/remove ### surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent(), pointer, prevChar;\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('heading text');\n            } else {\n              chunk = selected.text + '\\n';\n            }\n\n            // transform selection and set the cursor into chunked text\n            if ((pointer = 4, content.substr(selected.start-pointer,pointer) === '### ')\n                || (pointer = 3, content.substr(selected.start-pointer,pointer) === '###')) {\n              e.setSelection(selected.start-pointer,selected.end);\n              e.replaceSelection(chunk);\n              cursor = selected.start-pointer;\n            } else if (selected.start > 0 && (prevChar = content.substr(selected.start-1,1), !!prevChar && prevChar != '\\n')) {\n              e.replaceSelection('\\n\\n### '+chunk);\n              cursor = selected.start+6;\n            } else {\n              // Empty string before element\n              e.replaceSelection('### '+chunk);\n              cursor = selected.start+4;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        }]\n      },{\n        name: 'groupLink',\n        data: [{\n          name: 'cmdUrl',\n          title: 'URL/Link',\n          hotkey: 'Ctrl+L',\n          icon: { glyph: 'glyphicon glyphicon-link', fa: 'fa fa-link', 'fa-3': 'icon-link' },\n          callback: function(e){\n            // Give [] surround the selection and prepend the link\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent(), link;\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('enter link description here');\n            } else {\n              chunk = selected.text;\n            }\n\n            link = prompt(e.__localize('Insert Hyperlink'),'http://');\n\n            if (link !== null && link !== '' && link !== 'http://' && link.substr(0,4) === 'http') {\n              var sanitizedLink = $('<div>'+link+'</div>').text();\n\n              // transform selection and set the cursor into chunked text\n              e.replaceSelection('['+chunk+']('+sanitizedLink+')');\n              cursor = selected.start+1;\n\n              // Set the cursor\n              e.setSelection(cursor,cursor+chunk.length);\n            }\n          }\n        },{\n          name: 'cmdImage',\n          title: 'Image',\n          hotkey: 'Ctrl+G',\n          icon: { glyph: 'glyphicon glyphicon-picture', fa: 'fa fa-picture-o', 'fa-3': 'icon-picture' },\n          callback: function(e){\n            // Give ![] surround the selection and prepend the image link\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent(), link;\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('enter image description here');\n            } else {\n              chunk = selected.text;\n            }\n\n            link = prompt(e.__localize('Insert Image Hyperlink'),'http://');\n\n            if (link !== null && link !== '' && link !== 'http://' && link.substr(0,4) === 'http') {\n              var sanitizedLink = $('<div>'+link+'</div>').text();\n\n              // transform selection and set the cursor into chunked text\n              e.replaceSelection('!['+chunk+']('+sanitizedLink+' \"'+e.__localize('enter image title here')+'\")');\n              cursor = selected.start+2;\n\n              // Set the next tab\n              e.setNextTab(e.__localize('enter image title here'));\n\n              // Set the cursor\n              e.setSelection(cursor,cursor+chunk.length);\n            }\n          }\n        }]\n      },{\n        name: 'groupMisc',\n        data: [{\n          name: 'cmdList',\n          hotkey: 'Ctrl+U',\n          title: 'Unordered List',\n          icon: { glyph: 'glyphicon glyphicon-list', fa: 'fa fa-list', 'fa-3': 'icon-list-ul' },\n          callback: function(e){\n            // Prepend/Give - surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            // transform selection and set the cursor into chunked text\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('list text here');\n\n              e.replaceSelection('- '+chunk);\n              // Set the cursor\n              cursor = selected.start+2;\n            } else {\n              if (selected.text.indexOf('\\n') < 0) {\n                chunk = selected.text;\n\n                e.replaceSelection('- '+chunk);\n\n                // Set the cursor\n                cursor = selected.start+2;\n              } else {\n                var list = [];\n\n                list = selected.text.split('\\n');\n                chunk = list[0];\n\n                $.each(list,function(k,v) {\n                  list[k] = '- '+v;\n                });\n\n                e.replaceSelection('\\n\\n'+list.join('\\n'));\n\n                // Set the cursor\n                cursor = selected.start+4;\n              }\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },\n        {\n          name: 'cmdListO',\n          hotkey: 'Ctrl+O',\n          title: 'Ordered List',\n          icon: { glyph: 'glyphicon glyphicon-th-list', fa: 'fa fa-list-ol', 'fa-3': 'icon-list-ol' },\n          callback: function(e) {\n\n            // Prepend/Give - surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            // transform selection and set the cursor into chunked text\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('list text here');\n              e.replaceSelection('1. '+chunk);\n              // Set the cursor\n              cursor = selected.start+3;\n            } else {\n              if (selected.text.indexOf('\\n') < 0) {\n                chunk = selected.text;\n\n                e.replaceSelection('1. '+chunk);\n\n                // Set the cursor\n                cursor = selected.start+3;\n              } else {\n                var list = [];\n\n                list = selected.text.split('\\n');\n                chunk = list[0];\n\n                $.each(list,function(k,v) {\n                  list[k] = '1. '+v;\n                });\n\n                e.replaceSelection('\\n\\n'+list.join('\\n'));\n\n                // Set the cursor\n                cursor = selected.start+5;\n              }\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },\n        {\n          name: 'cmdCode',\n          hotkey: 'Ctrl+K',\n          title: 'Code',\n          icon: { glyph: 'glyphicon glyphicon-asterisk', fa: 'fa fa-code', 'fa-3': 'icon-code' },\n          callback: function(e) {\n            // Give/remove ** surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('code text here');\n            } else {\n              chunk = selected.text;\n            }\n\n            // transform selection and set the cursor into chunked text\n            if (content.substr(selected.start-4,4) === '```\\n'\n                && content.substr(selected.end,4) === '\\n```') {\n              e.setSelection(selected.start-4, selected.end+4);\n              e.replaceSelection(chunk);\n              cursor = selected.start-4;\n            } else if (content.substr(selected.start-1,1) === '`'\n                && content.substr(selected.end,1) === '`') {\n              e.setSelection(selected.start-1,selected.end+1);\n              e.replaceSelection(chunk);\n              cursor = selected.start-1;\n            } else if (content.indexOf('\\n') > -1) {\n              e.replaceSelection('```\\n'+chunk+'\\n```');\n              cursor = selected.start+4;\n            } else {\n              e.replaceSelection('`'+chunk+'`');\n              cursor = selected.start+1;\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        },\n        {\n          name: 'cmdQuote',\n          hotkey: 'Ctrl+Q',\n          title: 'Quote',\n          icon: { glyph: 'glyphicon glyphicon-comment', fa: 'fa fa-quote-left', 'fa-3': 'icon-quote-left' },\n          callback: function(e) {\n            // Prepend/Give - surround the selection\n            var chunk, cursor, selected = e.getSelection(), content = e.getContent();\n\n            // transform selection and set the cursor into chunked text\n            if (selected.length === 0) {\n              // Give extra word\n              chunk = e.__localize('quote here');\n\n              e.replaceSelection('> '+chunk);\n\n              // Set the cursor\n              cursor = selected.start+2;\n            } else {\n              if (selected.text.indexOf('\\n') < 0) {\n                chunk = selected.text;\n\n                e.replaceSelection('> '+chunk);\n\n                // Set the cursor\n                cursor = selected.start+2;\n              } else {\n                var list = [];\n\n                list = selected.text.split('\\n');\n                chunk = list[0];\n\n                $.each(list,function(k,v) {\n                  list[k] = '> '+v;\n                });\n\n                e.replaceSelection('\\n\\n'+list.join('\\n'));\n\n                // Set the cursor\n                cursor = selected.start+4;\n              }\n            }\n\n            // Set the cursor\n            e.setSelection(cursor,cursor+chunk.length);\n          }\n        }]\n      },{\n        name: 'groupUtil',\n        data: [{\n          name: 'cmdPreview',\n          toggle: true,\n          hotkey: 'Ctrl+P',\n          title: 'Preview',\n          btnText: 'Preview',\n          btnClass: 'btn btn-primary btn-sm',\n          icon: { glyph: 'glyphicon glyphicon-search', fa: 'fa fa-search', 'fa-3': 'icon-search' },\n          callback: function(e){\n            // Check the preview mode and toggle based on this flag\n            var isPreview = e.$isPreview,content;\n\n            if (isPreview === false) {\n              // Give flag that tell the editor enter preview mode\n              e.showPreview();\n            } else {\n              e.hidePreview();\n            }\n          }\n        }]\n      }]\n    ],\n    additionalButtons:[], // Place to hook more buttons by code\n    reorderButtonGroups:[],\n    hiddenButtons:[], // Default hidden buttons\n    disabledButtons:[], // Default disabled buttons\n    footer: '',\n    fullscreen: {\n      enable: true,\n      icons: {\n        fullscreenOn: {\n          fa: 'fa fa-expand',\n          glyph: 'glyphicon glyphicon-fullscreen',\n          'fa-3': 'icon-resize-full'\n        },\n        fullscreenOff: {\n          fa: 'fa fa-compress',\n          glyph: 'glyphicon glyphicon-fullscreen',\n          'fa-3': 'icon-resize-small'\n        }\n      }\n    },\n\n    /* Events hook */\n    onShow: function (e) {},\n    onPreview: function (e) {},\n    onSave: function (e) {},\n    onBlur: function (e) {},\n    onFocus: function (e) {},\n    onChange: function(e) {},\n    onFullscreen: function(e) {},\n    onSelect: function (e) {}\n  };\n\n  $.fn.markdown.Constructor = Markdown;\n\n\n /* MARKDOWN NO CONFLICT\n  * ==================== */\n\n  $.fn.markdown.noConflict = function () {\n    $.fn.markdown = old;\n    return this;\n  };\n\n  /* MARKDOWN GLOBAL FUNCTION & DATA-API\n  * ==================================== */\n  var initMarkdown = function(el) {\n    var $this = el;\n\n    if ($this.data('markdown')) {\n      $this.data('markdown').showEditor();\n      return;\n    }\n\n    $this.markdown()\n  };\n\n  var blurNonFocused = function(e) {\n    var $activeElement = $(document.activeElement);\n\n    // Blur event\n    $(document).find('.md-editor').each(function(){\n      var $this            = $(this),\n          focused          = $activeElement.closest('.md-editor')[0] === this,\n          attachedMarkdown = $this.find('textarea').data('markdown') ||\n                             $this.find('div[data-provider=\"markdown-preview\"]').data('markdown');\n\n      if (attachedMarkdown && !focused) {\n        attachedMarkdown.blur();\n      }\n    })\n  };\n\n  $(document)\n    .on('click.markdown.data-api', '[data-provide=\"markdown-editable\"]', function (e) {\n      initMarkdown($(this));\n      e.preventDefault();\n    })\n    .on('click focusin', function (e) {\n      blurNonFocused(e);\n    })\n    .ready(function(){\n      $('textarea[data-provide=\"markdown\"]').each(function(){\n        initMarkdown($(this));\n      })\n    });\n\n}(window.jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/less/bootstrap-markdown.less",
    "content": "/**\n * Bootstrap-Markdown.less\n *\n * @author Taufan Aditya @taufanaditya\n * @copyright 2013-2015 Taufan Aditya\n */\n\n.md-editor {\n  display: block;\n  border: 1px solid @table-border-color;\n\n  > .md-header, .md-footer {\n    display: block;\n    padding: 6px 4px;\n    background: @panel-default-heading-bg;\n  }\n\n  > .md-header {\n    margin: 0;\n  }\n\n  > .md-preview {\n    background: @panel-bg;\n    border-top: 1px dashed @table-border-color;\n    border-bottom: 1px dashed @table-border-color;\n    min-height: 10px;\n    overflow: auto;\n  }\n\n  > textarea {\n    font-family: @font-family-monospace;\n    font-size: @font-size-base;\n    outline: 0;\n    outline: thin dotted  \\9; /* IE6-9 */\n    margin: 0;\n    display: block;\n    padding: 0;\n    width: 100%;\n    border: 0;\n    border-top: 1px dashed @table-border-color;\n    border-bottom: 1px dashed @table-border-color;\n    border-radius: 0;\n    box-shadow: none;\n    background: @input-bg-disabled;\n    &:focus {\n      box-shadow: none;\n      background: @input-bg;\n    }\n  }\n\n  // Hover state\n  @color: @input-border-focus;\n  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n  &.active {\n    border-color: @color;\n    outline: 0;\n    .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n  }\n\n  .md-controls {\n    float: right;\n    padding: 3px;\n\n    .md-control {\n      right: 5px;\n      color: #bebebe;\n      padding: 3px 3px 3px 10px;\n      &:hover {\n        color: #333;\n      }\n    }\n  }\n\n  // fullscreen mode styles\n  &.md-fullscreen-mode {\n    width: 100%;\n    height: 100%;\n    position: fixed;\n    top: 0;\n    left: 0;\n    z-index: 99999;\n    padding: 60px 30px 15px;\n    background: #fff !important;\n    border: 0 !important;\n\n    .md-footer {\n      display: none;\n    }\n\n    .md-input,\n    .md-preview {\n      margin: 0 auto !important;\n      height: 100% !important;\n      font-size: 20px !important;\n      padding: 20px !important;\n      color: #999;\n      line-height: 1.6em !important;\n      resize: none !important;\n      box-shadow: none !important;\n      background: #fff !important;\n      border: 0 !important;\n    }\n\n    .md-preview {\n      color: #333;\n      overflow: auto;\n    }\n\n    .md-input {\n      &:hover,\n      &:focus {\n        color: #333;\n        background: #fff !important;\n      }\n    }\n\n    .md-header {\n      background: none;\n      text-align: center;\n      position: fixed;\n      width: 100%;\n      top: 20px;\n    }\n\n    .btn-group {\n      float: none;\n    }\n\n    .btn {\n      border: 0;\n      background: none;\n      color: #b3b3b3;\n\n      &:hover,\n      &:focus,\n      &.active,\n      &:active {\n        box-shadow: none;\n        color: #333;\n      }\n    }\n\n    .md-fullscreen-controls {\n      position: absolute;\n      top: 20px;\n      right: 20px;\n      text-align: right;\n      z-index: 1002;\n      display: block;\n      a {\n        color: #b3b3b3;\n        clear: right;\n        margin: 10px;\n        width: 30px;\n        height: 30px;\n        text-align: center;\n\n        &:hover {\n          color: #333;\n          text-decoration: none;\n        }\n      }\n    }\n\n    .md-editor {\n      height: 100% !important;\n      position: relative;\n    }\n  }\n\n  .md-fullscreen-controls {\n    display: none;\n  }\n}\n\n.md-nooverflow {\n  overflow: hidden;\n  position: fixed;\n  width: 100%;    \n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/lib/markdown.js",
    "content": "// Released under MIT license\n// Copyright (c) 2009-2010 Dominic Baggott\n// Copyright (c) 2009-2010 Ash Berlin\n// Copyright (c) 2011 Christoph Dorn <christoph@christophdorn.com> (http://www.christophdorn.com)\n\n(function( expose ) {\n\n/**\n *  class Markdown\n *\n *  Markdown processing in Javascript done right. We have very particular views\n *  on what constitutes 'right' which include:\n *\n *  - produces well-formed HTML (this means that em and strong nesting is\n *    important)\n *\n *  - has an intermediate representation to allow processing of parsed data (We\n *    in fact have two, both as [JsonML]: a markdown tree and an HTML tree).\n *\n *  - is easily extensible to add new dialects without having to rewrite the\n *    entire parsing mechanics\n *\n *  - has a good test suite\n *\n *  This implementation fulfills all of these (except that the test suite could\n *  do with expanding to automatically run all the fixtures from other Markdown\n *  implementations.)\n *\n *  ##### Intermediate Representation\n *\n *  *TODO* Talk about this :) Its JsonML, but document the node names we use.\n *\n *  [JsonML]: http://jsonml.org/ \"JSON Markup Language\"\n **/\nvar Markdown = expose.Markdown = function Markdown(dialect) {\n  switch (typeof dialect) {\n    case \"undefined\":\n      this.dialect = Markdown.dialects.Gruber;\n      break;\n    case \"object\":\n      this.dialect = dialect;\n      break;\n    default:\n      if (dialect in Markdown.dialects) {\n        this.dialect = Markdown.dialects[dialect];\n      }\n      else {\n        throw new Error(\"Unknown Markdown dialect '\" + String(dialect) + \"'\");\n      }\n      break;\n  }\n  this.em_state = [];\n  this.strong_state = [];\n  this.debug_indent = \"\";\n};\n\n/**\n *  parse( markdown, [dialect] ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *\n *  Parse `markdown` and return a markdown document as a Markdown.JsonML tree.\n **/\nexpose.parse = function( source, dialect ) {\n  // dialect will default if undefined\n  var md = new Markdown( dialect );\n  return md.toTree( source );\n};\n\n/**\n *  toHTML( markdown, [dialect]  ) -> String\n *  toHTML( md_tree ) -> String\n *  - markdown (String): markdown string to parse\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Take markdown (either as a string or as a JsonML tree) and run it through\n *  [[toHTMLTree]] then turn it into a well-formated HTML fragment.\n **/\nexpose.toHTML = function toHTML( source , dialect , options ) {\n  var input = expose.toHTMLTree( source , dialect , options );\n\n  return expose.renderJsonML( input );\n};\n\n/**\n *  toHTMLTree( markdown, [dialect] ) -> JsonML\n *  toHTMLTree( md_tree ) -> JsonML\n *  - markdown (String): markdown string to parse\n *  - dialect (String | Dialect): the dialect to use, defaults to gruber\n *  - md_tree (Markdown.JsonML): parsed markdown tree\n *\n *  Turn markdown into HTML, represented as a JsonML tree. If a string is given\n *  to this function, it is first parsed into a markdown tree by calling\n *  [[parse]].\n **/\nexpose.toHTMLTree = function toHTMLTree( input, dialect , options ) {\n  // convert string input to an MD tree\n  if ( typeof input ===\"string\" ) input = this.parse( input, dialect );\n\n  // Now convert the MD tree to an HTML tree\n\n  // remove references from the tree\n  var attrs = extract_attr( input ),\n      refs = {};\n\n  if ( attrs && attrs.references ) {\n    refs = attrs.references;\n  }\n\n  var html = convert_tree_to_html( input, refs , options );\n  merge_text_nodes( html );\n  return html;\n};\n\n// For Spidermonkey based engines\nfunction mk_block_toSource() {\n  return \"Markdown.mk_block( \" +\n          uneval(this.toString()) +\n          \", \" +\n          uneval(this.trailing) +\n          \", \" +\n          uneval(this.lineNumber) +\n          \" )\";\n}\n\n// node\nfunction mk_block_inspect() {\n  var util = require('util');\n  return \"Markdown.mk_block( \" +\n          util.inspect(this.toString()) +\n          \", \" +\n          util.inspect(this.trailing) +\n          \", \" +\n          util.inspect(this.lineNumber) +\n          \" )\";\n\n}\n\nvar mk_block = Markdown.mk_block = function(block, trail, line) {\n  // Be helpful for default case in tests.\n  if ( arguments.length == 1 ) trail = \"\\n\\n\";\n\n  var s = new String(block);\n  s.trailing = trail;\n  // To make it clear its not just a string\n  s.inspect = mk_block_inspect;\n  s.toSource = mk_block_toSource;\n\n  if (line != undefined)\n    s.lineNumber = line;\n\n  return s;\n};\n\nfunction count_lines( str ) {\n  var n = 0, i = -1;\n  while ( ( i = str.indexOf('\\n', i+1) ) !== -1) n++;\n  return n;\n}\n\n// Internal - split source into rough blocks\nMarkdown.prototype.split_blocks = function splitBlocks( input, startLine ) {\n  // [\\s\\S] matches _anything_ (newline or space)\n  var re = /([\\s\\S]+?)($|\\n(?:\\s*\\n|$)+)/g,\n      blocks = [],\n      m;\n\n  var line_no = 1;\n\n  if ( ( m = /^(\\s*\\n)/.exec(input) ) != null ) {\n    // skip (but count) leading blank lines\n    line_no += count_lines( m[0] );\n    re.lastIndex = m[0].length;\n  }\n\n  while ( ( m = re.exec(input) ) !== null ) {\n    blocks.push( mk_block( m[1], m[2], line_no ) );\n    line_no += count_lines( m[0] );\n  }\n\n  return blocks;\n};\n\n/**\n *  Markdown#processBlock( block, next ) -> undefined | [ JsonML, ... ]\n *  - block (String): the block to process\n *  - next (Array): the following blocks\n *\n * Process `block` and return an array of JsonML nodes representing `block`.\n *\n * It does this by asking each block level function in the dialect to process\n * the block until one can. Succesful handling is indicated by returning an\n * array (with zero or more JsonML nodes), failure by a false value.\n *\n * Blocks handlers are responsible for calling [[Markdown#processInline]]\n * themselves as appropriate.\n *\n * If the blocks were split incorrectly or adjacent blocks need collapsing you\n * can adjust `next` in place using shift/splice etc.\n *\n * If any of this default behaviour is not right for the dialect, you can\n * define a `__call__` method on the dialect that will get invoked to handle\n * the block processing.\n */\nMarkdown.prototype.processBlock = function processBlock( block, next ) {\n  var cbs = this.dialect.block,\n      ord = cbs.__order__;\n\n  if ( \"__call__\" in cbs ) {\n    return cbs.__call__.call(this, block, next);\n  }\n\n  for ( var i = 0; i < ord.length; i++ ) {\n    //D:this.debug( \"Testing\", ord[i] );\n    var res = cbs[ ord[i] ].call( this, block, next );\n    if ( res ) {\n      //D:this.debug(\"  matched\");\n      if ( !isArray(res) || ( res.length > 0 && !( isArray(res[0]) ) ) )\n        this.debug(ord[i], \"didn't return a proper array\");\n      //D:this.debug( \"\" );\n      return res;\n    }\n  }\n\n  // Uhoh! no match! Should we throw an error?\n  return [];\n};\n\nMarkdown.prototype.processInline = function processInline( block ) {\n  return this.dialect.inline.__call__.call( this, String( block ) );\n};\n\n/**\n *  Markdown#toTree( source ) -> JsonML\n *  - source (String): markdown source to parse\n *\n *  Parse `source` into a JsonML tree representing the markdown document.\n **/\n// custom_tree means set this.tree to `custom_tree` and restore old value on return\nMarkdown.prototype.toTree = function toTree( source, custom_root ) {\n  var blocks = source instanceof Array ? source : this.split_blocks( source );\n\n  // Make tree a member variable so its easier to mess with in extensions\n  var old_tree = this.tree;\n  try {\n    this.tree = custom_root || this.tree || [ \"markdown\" ];\n\n    blocks:\n    while ( blocks.length ) {\n      var b = this.processBlock( blocks.shift(), blocks );\n\n      // Reference blocks and the like won't return any content\n      if ( !b.length ) continue blocks;\n\n      this.tree.push.apply( this.tree, b );\n    }\n    return this.tree;\n  }\n  finally {\n    if ( custom_root ) {\n      this.tree = old_tree;\n    }\n  }\n};\n\n// Noop by default\nMarkdown.prototype.debug = function () {\n  var args = Array.prototype.slice.call( arguments);\n  args.unshift(this.debug_indent);\n  if (typeof print !== \"undefined\")\n      print.apply( print, args );\n  if (typeof console !== \"undefined\" && typeof console.log !== \"undefined\")\n      console.log.apply( null, args );\n}\n\nMarkdown.prototype.loop_re_over_block = function( re, block, cb ) {\n  // Dont use /g regexps with this\n  var m,\n      b = block.valueOf();\n\n  while ( b.length && (m = re.exec(b) ) != null) {\n    b = b.substr( m[0].length );\n    cb.call(this, m);\n  }\n  return b;\n};\n\n/**\n * Markdown.dialects\n *\n * Namespace of built-in dialects.\n **/\nMarkdown.dialects = {};\n\n/**\n * Markdown.dialects.Gruber\n *\n * The default dialect that follows the rules set out by John Gruber's\n * markdown.pl as closely as possible. Well actually we follow the behaviour of\n * that script which in some places is not exactly what the syntax web page\n * says.\n **/\nMarkdown.dialects.Gruber = {\n  block: {\n    atxHeader: function atxHeader( block, next ) {\n      var m = block.match( /^(#{1,6})\\s*(.*?)\\s*#*\\s*(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var header = [ \"header\", { level: m[ 1 ].length } ];\n      Array.prototype.push.apply(header, this.processInline(m[ 2 ]));\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    setextHeader: function setextHeader( block, next ) {\n      var m = block.match( /^(.*)\\n([-=])\\2\\2+(?:\\n|$)/ );\n\n      if ( !m ) return undefined;\n\n      var level = ( m[ 2 ] === \"=\" ) ? 1 : 2;\n      var header = [ \"header\", { level : level }, m[ 1 ] ];\n\n      if ( m[0].length < block.length )\n        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );\n\n      return [ header ];\n    },\n\n    code: function code( block, next ) {\n      // |    Foo\n      // |bar\n      // should be a code block followed by a paragraph. Fun\n      //\n      // There might also be adjacent code block to merge.\n\n      var ret = [],\n          re = /^(?: {0,3}\\t| {4})(.*)\\n?/,\n          lines;\n\n      // 4 spaces + content\n      if ( !block.match( re ) ) return undefined;\n\n      block_search:\n      do {\n        // Now pull out the rest of the lines\n        var b = this.loop_re_over_block(\n                  re, block.valueOf(), function( m ) { ret.push( m[1] ); } );\n\n        if (b.length) {\n          // Case alluded to in first comment. push it back on as a new block\n          next.unshift( mk_block(b, block.trailing) );\n          break block_search;\n        }\n        else if (next.length) {\n          // Check the next block - it might be code too\n          if ( !next[0].match( re ) ) break block_search;\n\n          // Pull how how many blanks lines follow - minus two to account for .join\n          ret.push ( block.trailing.replace(/[^\\n]/g, '').substring(2) );\n\n          block = next.shift();\n        }\n        else {\n          break block_search;\n        }\n      } while (true);\n\n      return [ [ \"code_block\", ret.join(\"\\n\") ] ];\n    },\n\n    horizRule: function horizRule( block, next ) {\n      // this needs to find any hr in the block to handle abutting blocks\n      var m = block.match( /^(?:([\\s\\S]*?)\\n)?[ \\t]*([-_*])(?:[ \\t]*\\2){2,}[ \\t]*(?:\\n([\\s\\S]*))?$/ );\n\n      if ( !m ) {\n        return undefined;\n      }\n\n      var jsonml = [ [ \"hr\" ] ];\n\n      // if there's a leading abutting block, process it\n      if ( m[ 1 ] ) {\n        jsonml.unshift.apply( jsonml, this.processBlock( m[ 1 ], [] ) );\n      }\n\n      // if there's a trailing abutting block, stick it into next\n      if ( m[ 3 ] ) {\n        next.unshift( mk_block( m[ 3 ] ) );\n      }\n\n      return jsonml;\n    },\n\n    // There are two types of lists. Tight and loose. Tight lists have no whitespace\n    // between the items (and result in text just in the <li>) and loose lists,\n    // which have an empty line between list items, resulting in (one or more)\n    // paragraphs inside the <li>.\n    //\n    // There are all sorts weird edge cases about the original markdown.pl's\n    // handling of lists:\n    //\n    // * Nested lists are supposed to be indented by four chars per level. But\n    //   if they aren't, you can get a nested list by indenting by less than\n    //   four so long as the indent doesn't match an indent of an existing list\n    //   item in the 'nest stack'.\n    //\n    // * The type of the list (bullet or number) is controlled just by the\n    //    first item at the indent. Subsequent changes are ignored unless they\n    //    are for nested lists\n    //\n    lists: (function( ) {\n      // Use a closure to hide a few variables.\n      var any_list = \"[*+-]|\\\\d+\\\\.\",\n          bullet_list = /[*+-]/,\n          number_list = /\\d+\\./,\n          // Capture leading indent as it matters for determining nested lists.\n          is_list_re = new RegExp( \"^( {0,3})(\" + any_list + \")[ \\t]+\" ),\n          indent_re = \"(?: {0,3}\\\\t| {4})\";\n\n      // TODO: Cache this regexp for certain depths.\n      // Create a regexp suitable for matching an li for a given stack depth\n      function regex_for_depth( depth ) {\n\n        return new RegExp(\n          // m[1] = indent, m[2] = list_type\n          \"(?:^(\" + indent_re + \"{0,\" + depth + \"} {0,3})(\" + any_list + \")\\\\s+)|\" +\n          // m[3] = cont\n          \"(^\" + indent_re + \"{0,\" + (depth-1) + \"}[ ]{0,4})\"\n        );\n      }\n      function expand_tab( input ) {\n        return input.replace( / {0,3}\\t/g, \"    \" );\n      }\n\n      // Add inline content `inline` to `li`. inline comes from processInline\n      // so is an array of content\n      function add(li, loose, inline, nl) {\n        if (loose) {\n          li.push( [ \"para\" ].concat(inline) );\n          return;\n        }\n        // Hmmm, should this be any block level element or just paras?\n        var add_to = li[li.length -1] instanceof Array && li[li.length - 1][0] == \"para\"\n                   ? li[li.length -1]\n                   : li;\n\n        // If there is already some content in this list, add the new line in\n        if (nl && li.length > 1) inline.unshift(nl);\n\n        for (var i=0; i < inline.length; i++) {\n          var what = inline[i],\n              is_str = typeof what == \"string\";\n          if (is_str && add_to.length > 1 && typeof add_to[add_to.length-1] == \"string\" ) {\n            add_to[ add_to.length-1 ] += what;\n          }\n          else {\n            add_to.push( what );\n          }\n        }\n      }\n\n      // contained means have an indent greater than the current one. On\n      // *every* line in the block\n      function get_contained_blocks( depth, blocks ) {\n\n        var re = new RegExp( \"^(\" + indent_re + \"{\" + depth + \"}.*?\\\\n?)*$\" ),\n            replace = new RegExp(\"^\" + indent_re + \"{\" + depth + \"}\", \"gm\"),\n            ret = [];\n\n        while ( blocks.length > 0 ) {\n          if ( re.exec( blocks[0] ) ) {\n            var b = blocks.shift(),\n                // Now remove that indent\n                x = b.replace( replace, \"\");\n\n            ret.push( mk_block( x, b.trailing, b.lineNumber ) );\n          }\n          break;\n        }\n        return ret;\n      }\n\n      // passed to stack.forEach to turn list items up the stack into paras\n      function paragraphify(s, i, stack) {\n        var list = s.list;\n        var last_li = list[list.length-1];\n\n        if (last_li[1] instanceof Array && last_li[1][0] == \"para\") {\n          return;\n        }\n        if (i+1 == stack.length) {\n          // Last stack frame\n          // Keep the same array, but replace the contents\n          last_li.push( [\"para\"].concat( last_li.splice(1) ) );\n        }\n        else {\n          var sublist = last_li.pop();\n          last_li.push( [\"para\"].concat( last_li.splice(1) ), sublist );\n        }\n      }\n\n      // The matcher function\n      return function( block, next ) {\n        var m = block.match( is_list_re );\n        if ( !m ) return undefined;\n\n        function make_list( m ) {\n          var list = bullet_list.exec( m[2] )\n                   ? [\"bulletlist\"]\n                   : [\"numberlist\"];\n\n          stack.push( { list: list, indent: m[1] } );\n          return list;\n        }\n\n\n        var stack = [], // Stack of lists for nesting.\n            list = make_list( m ),\n            last_li,\n            loose = false,\n            ret = [ stack[0].list ],\n            i;\n\n        // Loop to search over block looking for inner block elements and loose lists\n        loose_search:\n        while( true ) {\n          // Split into lines preserving new lines at end of line\n          var lines = block.split( /(?=\\n)/ );\n\n          // We have to grab all lines for a li and call processInline on them\n          // once as there are some inline things that can span lines.\n          var li_accumulate = \"\";\n\n          // Loop over the lines in this block looking for tight lists.\n          tight_search:\n          for (var line_no=0; line_no < lines.length; line_no++) {\n            var nl = \"\",\n                l = lines[line_no].replace(/^\\n/, function(n) { nl = n; return \"\"; });\n\n            // TODO: really should cache this\n            var line_re = regex_for_depth( stack.length );\n\n            m = l.match( line_re );\n            //print( \"line:\", uneval(l), \"\\nline match:\", uneval(m) );\n\n            // We have a list item\n            if ( m[1] !== undefined ) {\n              // Process the previous list item, if any\n              if ( li_accumulate.length ) {\n                add( last_li, loose, this.processInline( li_accumulate ), nl );\n                // Loose mode will have been dealt with. Reset it\n                loose = false;\n                li_accumulate = \"\";\n              }\n\n              m[1] = expand_tab( m[1] );\n              var wanted_depth = Math.floor(m[1].length/4)+1;\n              //print( \"want:\", wanted_depth, \"stack:\", stack.length);\n              if ( wanted_depth > stack.length ) {\n                // Deep enough for a nested list outright\n                //print ( \"new nested list\" );\n                list = make_list( m );\n                last_li.push( list );\n                last_li = list[1] = [ \"listitem\" ];\n              }\n              else {\n                // We aren't deep enough to be strictly a new level. This is\n                // where Md.pl goes nuts. If the indent matches a level in the\n                // stack, put it there, else put it one deeper then the\n                // wanted_depth deserves.\n                var found = false;\n                for (i = 0; i < stack.length; i++) {\n                  if ( stack[ i ].indent != m[1] ) continue;\n                  list = stack[ i ].list;\n                  stack.splice( i+1 );\n                  found = true;\n                  break;\n                }\n\n                if (!found) {\n                  //print(\"not found. l:\", uneval(l));\n                  wanted_depth++;\n                  if (wanted_depth <= stack.length) {\n                    stack.splice(wanted_depth);\n                    //print(\"Desired depth now\", wanted_depth, \"stack:\", stack.length);\n                    list = stack[wanted_depth-1].list;\n                    //print(\"list:\", uneval(list) );\n                  }\n                  else {\n                    //print (\"made new stack for messy indent\");\n                    list = make_list(m);\n                    last_li.push(list);\n                  }\n                }\n\n                //print( uneval(list), \"last\", list === stack[stack.length-1].list );\n                last_li = [ \"listitem\" ];\n                list.push(last_li);\n              } // end depth of shenegains\n              nl = \"\";\n            }\n\n            // Add content\n            if (l.length > m[0].length) {\n              li_accumulate += nl + l.substr( m[0].length );\n            }\n          } // tight_search\n\n          if ( li_accumulate.length ) {\n            add( last_li, loose, this.processInline( li_accumulate ), nl );\n            // Loose mode will have been dealt with. Reset it\n            loose = false;\n            li_accumulate = \"\";\n          }\n\n          // Look at the next block - we might have a loose list. Or an extra\n          // paragraph for the current li\n          var contained = get_contained_blocks( stack.length, next );\n\n          // Deal with code blocks or properly nested lists\n          if (contained.length > 0) {\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            last_li.push.apply( last_li, this.toTree( contained, [] ) );\n          }\n\n          var next_block = next[0] && next[0].valueOf() || \"\";\n\n          if ( next_block.match(is_list_re) || next_block.match( /^ / ) ) {\n            block = next.shift();\n\n            // Check for an HR following a list: features/lists/hr_abutting\n            var hr = this.dialect.block.horizRule( block, next );\n\n            if (hr) {\n              ret.push.apply(ret, hr);\n              break;\n            }\n\n            // Make sure all listitems up the stack are paragraphs\n            forEach( stack, paragraphify, this);\n\n            loose = true;\n            continue loose_search;\n          }\n          break;\n        } // loose_search\n\n        return ret;\n      };\n    })(),\n\n    blockquote: function blockquote( block, next ) {\n      if ( !block.match( /^>/m ) )\n        return undefined;\n\n      var jsonml = [];\n\n      // separate out the leading abutting block, if any\n      if ( block[ 0 ] != \">\" ) {\n        var lines = block.split( /\\n/ ),\n            prev = [];\n\n        // keep shifting lines until you find a crotchet\n        while ( lines.length && lines[ 0 ][ 0 ] != \">\" ) {\n            prev.push( lines.shift() );\n        }\n\n        // reassemble!\n        block = lines.join( \"\\n\" );\n        jsonml.push.apply( jsonml, this.processBlock( prev.join( \"\\n\" ), [] ) );\n      }\n\n      // if the next block is also a blockquote merge it in\n      while ( next.length && next[ 0 ][ 0 ] == \">\" ) {\n        var b = next.shift();\n        block = new String(block + block.trailing + b);\n        block.trailing = b.trailing;\n      }\n\n      // Strip off the leading \"> \" and re-process as a block.\n      var input = block.replace( /^> ?/gm, '' ),\n          old_tree = this.tree;\n      jsonml.push( this.toTree( input, [ \"blockquote\" ] ) );\n\n      return jsonml;\n    },\n\n    referenceDefn: function referenceDefn( block, next) {\n      var re = /^\\s*\\[(.*?)\\]:\\s*(\\S+)(?:\\s+(?:(['\"])(.*?)\\3|\\((.*?)\\)))?\\n?/;\n      // interesting matches are [ , ref_id, url, , title, title ]\n\n      if ( !block.match(re) )\n        return undefined;\n\n      // make an attribute node if it doesn't exist\n      if ( !extract_attr( this.tree ) ) {\n        this.tree.splice( 1, 0, {} );\n      }\n\n      var attrs = extract_attr( this.tree );\n\n      // make a references hash if it doesn't exist\n      if ( attrs.references === undefined ) {\n        attrs.references = {};\n      }\n\n      var b = this.loop_re_over_block(re, block, function( m ) {\n\n        if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        var ref = attrs.references[ m[1].toLowerCase() ] = {\n          href: m[2]\n        };\n\n        if (m[4] !== undefined)\n          ref.title = m[4];\n        else if (m[5] !== undefined)\n          ref.title = m[5];\n\n      } );\n\n      if (b.length)\n        next.unshift( mk_block( b, block.trailing ) );\n\n      return [];\n    },\n\n    para: function para( block, next ) {\n      // everything's a para!\n      return [ [\"para\"].concat( this.processInline( block ) ) ];\n    }\n  }\n};\n\nMarkdown.dialects.Gruber.inline = {\n\n    __oneElement__: function oneElement( text, patterns_or_re, previous_nodes ) {\n      var m,\n          res,\n          lastIndex = 0;\n\n      patterns_or_re = patterns_or_re || this.dialect.inline.__patterns__;\n      var re = new RegExp( \"([\\\\s\\\\S]*?)(\" + (patterns_or_re.source || patterns_or_re) + \")\" );\n\n      m = re.exec( text );\n      if (!m) {\n        // Just boring text\n        return [ text.length, text ];\n      }\n      else if ( m[1] ) {\n        // Some un-interesting text matched. Return that first\n        return [ m[1].length, m[1] ];\n      }\n\n      var res;\n      if ( m[2] in this.dialect.inline ) {\n        res = this.dialect.inline[ m[2] ].call(\n                  this,\n                  text.substr( m.index ), m, previous_nodes || [] );\n      }\n      // Default for now to make dev easier. just slurp special and output it.\n      res = res || [ m[2].length, m[2] ];\n      return res;\n    },\n\n    __call__: function inline( text, patterns ) {\n\n      var out = [],\n          res;\n\n      function add(x) {\n        //D:self.debug(\"  adding output\", uneval(x));\n        if (typeof x == \"string\" && typeof out[out.length-1] == \"string\")\n          out[ out.length-1 ] += x;\n        else\n          out.push(x);\n      }\n\n      while ( text.length > 0 ) {\n        res = this.dialect.inline.__oneElement__.call(this, text, patterns, out );\n        text = text.substr( res.shift() );\n        forEach(res, add )\n      }\n\n      return out;\n    },\n\n    // These characters are intersting elsewhere, so have rules for them so that\n    // chunks of plain text blocks don't include them\n    \"]\": function () {},\n    \"}\": function () {},\n\n    \"\\\\\": function escaped( text ) {\n      // [ length of input processed, node/children to add... ]\n      // Only esacape: \\ ` * _ { } [ ] ( ) # * + - . !\n      if ( text.match( /^\\\\[\\\\`\\*_{}\\[\\]()#\\+.!\\-]/ ) )\n        return [ 2, text[1] ];\n      else\n        // Not an esacpe\n        return [ 1, \"\\\\\" ];\n    },\n\n    \"![\": function image( text ) {\n\n      // Unlike images, alt text is plain text only. no other elements are\n      // allowed in there\n\n      // ![Alt text](/path/to/img.jpg \"Optional title\")\n      //      1          2            3       4         <--- captures\n      var m = text.match( /^!\\[(.*?)\\][ \\t]*\\([ \\t]*(\\S*)(?:[ \\t]+([\"'])(.*?)\\3)?[ \\t]*\\)/ );\n\n      if ( m ) {\n        if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' )\n          m[2] = m[2].substring( 1, m[2].length - 1 );\n\n        m[2] = this.dialect.inline.__call__.call( this, m[2], /\\\\/ )[0];\n\n        var attrs = { alt: m[1], href: m[2] || \"\" };\n        if ( m[4] !== undefined)\n          attrs.title = m[4];\n\n        return [ m[0].length, [ \"img\", attrs ] ];\n      }\n\n      // ![Alt text][id]\n      m = text.match( /^!\\[(.*?)\\][ \\t]*\\[(.*?)\\]/ );\n\n      if ( m ) {\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion\n        return [ m[0].length, [ \"img_ref\", { alt: m[1], ref: m[2].toLowerCase(), original: m[0] } ] ];\n      }\n\n      // Just consume the '!['\n      return [ 2, \"![\" ];\n    },\n\n    \"[\": function link( text ) {\n\n      var orig = String(text);\n      // Inline content is possible inside `link text`\n      var res = Markdown.DialectHelpers.inline_until_char.call( this, text.substr(1), ']' );\n\n      // No closing ']' found. Just consume the [\n      if ( !res ) return [ 1, '[' ];\n\n      var consumed = 1 + res[ 0 ],\n          children = res[ 1 ],\n          link,\n          attrs;\n\n      // At this point the first [...] has been parsed. See what follows to find\n      // out which kind of link we are (reference or direct url)\n      text = text.substr( consumed );\n\n      // [link text](/path/to/img.jpg \"Optional title\")\n      //                 1            2       3         <--- captures\n      // This will capture up to the last paren in the block. We then pull\n      // back based on if there a matching ones in the url\n      //    ([here](/url/(test))\n      // The parens have to be balanced\n      var m = text.match( /^\\s*\\([ \\t]*(\\S+)(?:[ \\t]+([\"'])(.*?)\\2)?[ \\t]*\\)/ );\n      if ( m ) {\n        var url = m[1];\n        consumed += m[0].length;\n\n        if ( url && url[0] == '<' && url[url.length-1] == '>' )\n          url = url.substring( 1, url.length - 1 );\n\n        // If there is a title we don't have to worry about parens in the url\n        if ( !m[3] ) {\n          var open_parens = 1; // One open that isn't in the capture\n          for (var len = 0; len < url.length; len++) {\n            switch ( url[len] ) {\n            case '(':\n              open_parens++;\n              break;\n            case ')':\n              if ( --open_parens == 0) {\n                consumed -= url.length - len;\n                url = url.substring(0, len);\n              }\n              break;\n            }\n          }\n        }\n\n        // Process escapes only\n        url = this.dialect.inline.__call__.call( this, url, /\\\\/ )[0];\n\n        attrs = { href: url || \"\" };\n        if ( m[3] !== undefined)\n          attrs.title = m[3];\n\n        link = [ \"link\", attrs ].concat( children );\n        return [ consumed, link ];\n      }\n\n      // [Alt text][id]\n      // [Alt text] [id]\n      m = text.match( /^\\s*\\[(.*?)\\]/ );\n\n      if ( m ) {\n\n        consumed += m[ 0 ].length;\n\n        // [links][] uses links as its reference\n        attrs = { ref: ( m[ 1 ] || String(children) ).toLowerCase(),  original: orig.substr( 0, consumed ) };\n\n        link = [ \"link_ref\", attrs ].concat( children );\n\n        // We can't check if the reference is known here as it likely wont be\n        // found till after. Check it in md tree->hmtl tree conversion.\n        // Store the original so that conversion can revert if the ref isn't found.\n        return [ consumed, link ];\n      }\n\n      // [id]\n      // Only if id is plain (no formatting.)\n      if ( children.length == 1 && typeof children[0] == \"string\" ) {\n\n        attrs = { ref: children[0].toLowerCase(),  original: orig.substr( 0, consumed ) };\n        link = [ \"link_ref\", attrs, children[0] ];\n        return [ consumed, link ];\n      }\n\n      // Just consume the '['\n      return [ 1, \"[\" ];\n    },\n\n\n    \"<\": function autoLink( text ) {\n      var m;\n\n      if ( ( m = text.match( /^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\\.[a-zA-Z]+))>/ ) ) != null ) {\n        if ( m[3] ) {\n          return [ m[0].length, [ \"link\", { href: \"mailto:\" + m[3] }, m[3] ] ];\n\n        }\n        else if ( m[2] == \"mailto\" ) {\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1].substr(\"mailto:\".length ) ] ];\n        }\n        else\n          return [ m[0].length, [ \"link\", { href: m[1] }, m[1] ] ];\n      }\n\n      return [ 1, \"<\" ];\n    },\n\n    \"`\": function inlineCode( text ) {\n      // Inline code block. as many backticks as you like to start it\n      // Always skip over the opening ticks.\n      var m = text.match( /(`+)(([\\s\\S]*?)\\1)/ );\n\n      if ( m && m[2] )\n        return [ m[1].length + m[2].length, [ \"inlinecode\", m[3] ] ];\n      else {\n        // TODO: No matching end code found - warn!\n        return [ 1, \"`\" ];\n      }\n    },\n\n    \"  \\n\": function lineBreak( text ) {\n      return [ 3, [ \"linebreak\" ] ];\n    }\n\n};\n\n// Meta Helper/generator method for em and strong handling\nfunction strong_em( tag, md ) {\n\n  var state_slot = tag + \"_state\",\n      other_slot = tag == \"strong\" ? \"em_state\" : \"strong_state\";\n\n  function CloseTag(len) {\n    this.len_after = len;\n    this.name = \"close_\" + md;\n  }\n\n  return function ( text, orig_match ) {\n\n    if (this[state_slot][0] == md) {\n      // Most recent em is of this type\n      //D:this.debug(\"closing\", md);\n      this[state_slot].shift();\n\n      // \"Consume\" everything to go back to the recrusion in the else-block below\n      return[ text.length, new CloseTag(text.length-md.length) ];\n    }\n    else {\n      // Store a clone of the em/strong states\n      var other = this[other_slot].slice(),\n          state = this[state_slot].slice();\n\n      this[state_slot].unshift(md);\n\n      //D:this.debug_indent += \"  \";\n\n      // Recurse\n      var res = this.processInline( text.substr( md.length ) );\n      //D:this.debug_indent = this.debug_indent.substr(2);\n\n      var last = res[res.length - 1];\n\n      //D:this.debug(\"processInline from\", tag + \": \", uneval( res ) );\n\n      var check = this[state_slot].shift();\n      if (last instanceof CloseTag) {\n        res.pop();\n        // We matched! Huzzah.\n        var consumed = text.length - last.len_after;\n        return [ consumed, [ tag ].concat(res) ];\n      }\n      else {\n        // Restore the state of the other kind. We might have mistakenly closed it.\n        this[other_slot] = other;\n        this[state_slot] = state;\n\n        // We can't reuse the processed result as it could have wrong parsing contexts in it.\n        return [ md.length, md ];\n      }\n    }\n  }; // End returned function\n}\n\nMarkdown.dialects.Gruber.inline[\"**\"] = strong_em(\"strong\", \"**\");\nMarkdown.dialects.Gruber.inline[\"__\"] = strong_em(\"strong\", \"__\");\nMarkdown.dialects.Gruber.inline[\"*\"]  = strong_em(\"em\", \"*\");\nMarkdown.dialects.Gruber.inline[\"_\"]  = strong_em(\"em\", \"_\");\n\n\n// Build default order from insertion order.\nMarkdown.buildBlockOrder = function(d) {\n  var ord = [];\n  for ( var i in d ) {\n    if ( i == \"__order__\" || i == \"__call__\" ) continue;\n    ord.push( i );\n  }\n  d.__order__ = ord;\n};\n\n// Build patterns for inline matcher\nMarkdown.buildInlinePatterns = function(d) {\n  var patterns = [];\n\n  for ( var i in d ) {\n    // __foo__ is reserved and not a pattern\n    if ( i.match( /^__.*__$/) ) continue;\n    var l = i.replace( /([\\\\.*+?|()\\[\\]{}])/g, \"\\\\$1\" )\n             .replace( /\\n/, \"\\\\n\" );\n    patterns.push( i.length == 1 ? l : \"(?:\" + l + \")\" );\n  }\n\n  patterns = patterns.join(\"|\");\n  d.__patterns__ = patterns;\n  //print(\"patterns:\", uneval( patterns ) );\n\n  var fn = d.__call__;\n  d.__call__ = function(text, pattern) {\n    if (pattern != undefined) {\n      return fn.call(this, text, pattern);\n    }\n    else\n    {\n      return fn.call(this, text, patterns);\n    }\n  };\n};\n\nMarkdown.DialectHelpers = {};\nMarkdown.DialectHelpers.inline_until_char = function( text, want ) {\n  var consumed = 0,\n      nodes = [];\n\n  while ( true ) {\n    if ( text[ consumed ] == want ) {\n      // Found the character we were looking for\n      consumed++;\n      return [ consumed, nodes ];\n    }\n\n    if ( consumed >= text.length ) {\n      // No closing char found. Abort.\n      return null;\n    }\n\n    var res = this.dialect.inline.__oneElement__.call(this, text.substr( consumed ) );\n    consumed += res[ 0 ];\n    // Add any returned nodes.\n    nodes.push.apply( nodes, res.slice( 1 ) );\n  }\n}\n\n// Helper function to make sub-classing a dialect easier\nMarkdown.subclassDialect = function( d ) {\n  function Block() {}\n  Block.prototype = d.block;\n  function Inline() {}\n  Inline.prototype = d.inline;\n\n  return { block: new Block(), inline: new Inline() };\n};\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Gruber.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Gruber.inline );\n\nMarkdown.dialects.Maruku = Markdown.subclassDialect( Markdown.dialects.Gruber );\n\nMarkdown.dialects.Maruku.processMetaHash = function processMetaHash( meta_string ) {\n  var meta = split_meta_hash( meta_string ),\n      attr = {};\n\n  for ( var i = 0; i < meta.length; ++i ) {\n    // id: #foo\n    if ( /^#/.test( meta[ i ] ) ) {\n      attr.id = meta[ i ].substring( 1 );\n    }\n    // class: .foo\n    else if ( /^\\./.test( meta[ i ] ) ) {\n      // if class already exists, append the new one\n      if ( attr['class'] ) {\n        attr['class'] = attr['class'] + meta[ i ].replace( /./, \" \" );\n      }\n      else {\n        attr['class'] = meta[ i ].substring( 1 );\n      }\n    }\n    // attribute: foo=bar\n    else if ( /\\=/.test( meta[ i ] ) ) {\n      var s = meta[ i ].split( /\\=/ );\n      attr[ s[ 0 ] ] = s[ 1 ];\n    }\n  }\n\n  return attr;\n}\n\nfunction split_meta_hash( meta_string ) {\n  var meta = meta_string.split( \"\" ),\n      parts = [ \"\" ],\n      in_quotes = false;\n\n  while ( meta.length ) {\n    var letter = meta.shift();\n    switch ( letter ) {\n      case \" \" :\n        // if we're in a quoted section, keep it\n        if ( in_quotes ) {\n          parts[ parts.length - 1 ] += letter;\n        }\n        // otherwise make a new part\n        else {\n          parts.push( \"\" );\n        }\n        break;\n      case \"'\" :\n      case '\"' :\n        // reverse the quotes and move straight on\n        in_quotes = !in_quotes;\n        break;\n      case \"\\\\\" :\n        // shift off the next letter to be used straight away.\n        // it was escaped so we'll keep it whatever it is\n        letter = meta.shift();\n      default :\n        parts[ parts.length - 1 ] += letter;\n        break;\n    }\n  }\n\n  return parts;\n}\n\nMarkdown.dialects.Maruku.block.document_meta = function document_meta( block, next ) {\n  // we're only interested in the first block\n  if ( block.lineNumber > 1 ) return undefined;\n\n  // document_meta blocks consist of one or more lines of `Key: Value\\n`\n  if ( ! block.match( /^(?:\\w+:.*\\n)*\\w+:.*$/ ) ) return undefined;\n\n  // make an attribute node if it doesn't exist\n  if ( !extract_attr( this.tree ) ) {\n    this.tree.splice( 1, 0, {} );\n  }\n\n  var pairs = block.split( /\\n/ );\n  for ( p in pairs ) {\n    var m = pairs[ p ].match( /(\\w+):\\s*(.*)$/ ),\n        key = m[ 1 ].toLowerCase(),\n        value = m[ 2 ];\n\n    this.tree[ 1 ][ key ] = value;\n  }\n\n  // document_meta produces no content!\n  return [];\n};\n\nMarkdown.dialects.Maruku.block.block_meta = function block_meta( block, next ) {\n  // check if the last line of the block is an meta hash\n  var m = block.match( /(^|\\n) {0,3}\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}$/ );\n  if ( !m ) return undefined;\n\n  // process the meta hash\n  var attr = this.dialect.processMetaHash( m[ 2 ] );\n\n  var hash;\n\n  // if we matched ^ then we need to apply meta to the previous block\n  if ( m[ 1 ] === \"\" ) {\n    var node = this.tree[ this.tree.length - 1 ];\n    hash = extract_attr( node );\n\n    // if the node is a string (rather than JsonML), bail\n    if ( typeof node === \"string\" ) return undefined;\n\n    // create the attribute hash if it doesn't exist\n    if ( !hash ) {\n      hash = {};\n      node.splice( 1, 0, hash );\n    }\n\n    // add the attributes in\n    for ( a in attr ) {\n      hash[ a ] = attr[ a ];\n    }\n\n    // return nothing so the meta hash is removed\n    return [];\n  }\n\n  // pull the meta hash off the block and process what's left\n  var b = block.replace( /\\n.*$/, \"\" ),\n      result = this.processBlock( b, [] );\n\n  // get or make the attributes hash\n  hash = extract_attr( result[ 0 ] );\n  if ( !hash ) {\n    hash = {};\n    result[ 0 ].splice( 1, 0, hash );\n  }\n\n  // attach the attributes to the block\n  for ( a in attr ) {\n    hash[ a ] = attr[ a ];\n  }\n\n  return result;\n};\n\nMarkdown.dialects.Maruku.block.definition_list = function definition_list( block, next ) {\n  // one or more terms followed by one or more definitions, in a single block\n  var tight = /^((?:[^\\s:].*\\n)+):\\s+([\\s\\S]+)$/,\n      list = [ \"dl\" ],\n      i;\n\n  // see if we're dealing with a tight or loose block\n  if ( ( m = block.match( tight ) ) ) {\n    // pull subsequent tight DL blocks out of `next`\n    var blocks = [ block ];\n    while ( next.length && tight.exec( next[ 0 ] ) ) {\n      blocks.push( next.shift() );\n    }\n\n    for ( var b = 0; b < blocks.length; ++b ) {\n      var m = blocks[ b ].match( tight ),\n          terms = m[ 1 ].replace( /\\n$/, \"\" ).split( /\\n/ ),\n          defns = m[ 2 ].split( /\\n:\\s+/ );\n\n      // print( uneval( m ) );\n\n      for ( i = 0; i < terms.length; ++i ) {\n        list.push( [ \"dt\", terms[ i ] ] );\n      }\n\n      for ( i = 0; i < defns.length; ++i ) {\n        // run inline processing over the definition\n        list.push( [ \"dd\" ].concat( this.processInline( defns[ i ].replace( /(\\n)\\s+/, \"$1\" ) ) ) );\n      }\n    }\n  }\n  else {\n    return undefined;\n  }\n\n  return [ list ];\n};\n\nMarkdown.dialects.Maruku.inline[ \"{:\" ] = function inline_meta( text, matches, out ) {\n  if ( !out.length ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // get the preceeding element\n  var before = out[ out.length - 1 ];\n\n  if ( typeof before === \"string\" ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // match a meta hash\n  var m = text.match( /^\\{:\\s*((?:\\\\\\}|[^\\}])*)\\s*\\}/ );\n\n  // no match, false alarm\n  if ( !m ) {\n    return [ 2, \"{:\" ];\n  }\n\n  // attach the attributes to the preceeding element\n  var meta = this.dialect.processMetaHash( m[ 1 ] ),\n      attr = extract_attr( before );\n\n  if ( !attr ) {\n    attr = {};\n    before.splice( 1, 0, attr );\n  }\n\n  for ( var k in meta ) {\n    attr[ k ] = meta[ k ];\n  }\n\n  // cut out the string and replace it with nothing\n  return [ m[ 0 ].length, \"\" ];\n};\n\nMarkdown.buildBlockOrder ( Markdown.dialects.Maruku.block );\nMarkdown.buildInlinePatterns( Markdown.dialects.Maruku.inline );\n\nvar isArray = Array.isArray || function(obj) {\n  return Object.prototype.toString.call(obj) == '[object Array]';\n};\n\nvar forEach;\n// Don't mess with Array.prototype. Its not friendly\nif ( Array.prototype.forEach ) {\n  forEach = function( arr, cb, thisp ) {\n    return arr.forEach( cb, thisp );\n  };\n}\nelse {\n  forEach = function(arr, cb, thisp) {\n    for (var i = 0; i < arr.length; i++) {\n      cb.call(thisp || arr, arr[i], i, arr);\n    }\n  }\n}\n\nfunction extract_attr( jsonml ) {\n  return isArray(jsonml)\n      && jsonml.length > 1\n      && typeof jsonml[ 1 ] === \"object\"\n      && !( isArray(jsonml[ 1 ]) )\n      ? jsonml[ 1 ]\n      : undefined;\n}\n\n\n\n/**\n *  renderJsonML( jsonml[, options] ) -> String\n *  - jsonml (Array): JsonML array to render to XML\n *  - options (Object): options\n *\n *  Converts the given JsonML into well-formed XML.\n *\n *  The options currently understood are:\n *\n *  - root (Boolean): wether or not the root node should be included in the\n *    output, or just its children. The default `false` is to not include the\n *    root itself.\n */\nexpose.renderJsonML = function( jsonml, options ) {\n  options = options || {};\n  // include the root element in the rendered output?\n  options.root = options.root || false;\n\n  var content = [];\n\n  if ( options.root ) {\n    content.push( render_tree( jsonml ) );\n  }\n  else {\n    jsonml.shift(); // get rid of the tag\n    if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n      jsonml.shift(); // get rid of the attributes\n    }\n\n    while ( jsonml.length ) {\n      content.push( render_tree( jsonml.shift() ) );\n    }\n  }\n\n  return content.join( \"\\n\\n\" );\n};\n\nfunction escapeHTML( text ) {\n  return text.replace( /&/g, \"&amp;\" )\n             .replace( /</g, \"&lt;\" )\n             .replace( />/g, \"&gt;\" )\n             .replace( /\"/g, \"&quot;\" )\n             .replace( /'/g, \"&#39;\" );\n}\n\nfunction render_tree( jsonml ) {\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return escapeHTML( jsonml );\n  }\n\n  var tag = jsonml.shift(),\n      attributes = {},\n      content = [];\n\n  if ( jsonml.length && typeof jsonml[ 0 ] === \"object\" && !( jsonml[ 0 ] instanceof Array ) ) {\n    attributes = jsonml.shift();\n  }\n\n  while ( jsonml.length ) {\n    content.push( arguments.callee( jsonml.shift() ) );\n  }\n\n  var tag_attrs = \"\";\n  for ( var a in attributes ) {\n    tag_attrs += \" \" + a + '=\"' + escapeHTML( attributes[ a ] ) + '\"';\n  }\n\n  // be careful about adding whitespace here for inline elements\n  if ( tag == \"img\" || tag == \"br\" || tag == \"hr\" ) {\n    return \"<\"+ tag + tag_attrs + \"/>\";\n  }\n  else {\n    return \"<\"+ tag + tag_attrs + \">\" + content.join( \"\" ) + \"</\" + tag + \">\";\n  }\n}\n\nfunction convert_tree_to_html( tree, references, options ) {\n  var i;\n  options = options || {};\n\n  // shallow clone\n  var jsonml = tree.slice( 0 );\n\n  if (typeof options.preprocessTreeNode === \"function\") {\n      jsonml = options.preprocessTreeNode(jsonml, references);\n  }\n\n  // Clone attributes if they exist\n  var attrs = extract_attr( jsonml );\n  if ( attrs ) {\n    jsonml[ 1 ] = {};\n    for ( i in attrs ) {\n      jsonml[ 1 ][ i ] = attrs[ i ];\n    }\n    attrs = jsonml[ 1 ];\n  }\n\n  // basic case\n  if ( typeof jsonml === \"string\" ) {\n    return jsonml;\n  }\n\n  // convert this node\n  switch ( jsonml[ 0 ] ) {\n    case \"header\":\n      jsonml[ 0 ] = \"h\" + jsonml[ 1 ].level;\n      delete jsonml[ 1 ].level;\n      break;\n    case \"bulletlist\":\n      jsonml[ 0 ] = \"ul\";\n      break;\n    case \"numberlist\":\n      jsonml[ 0 ] = \"ol\";\n      break;\n    case \"listitem\":\n      jsonml[ 0 ] = \"li\";\n      break;\n    case \"para\":\n      jsonml[ 0 ] = \"p\";\n      break;\n    case \"markdown\":\n      jsonml[ 0 ] = \"html\";\n      if ( attrs ) delete attrs.references;\n      break;\n    case \"code_block\":\n      jsonml[ 0 ] = \"pre\";\n      i = attrs ? 2 : 1;\n      var code = [ \"code\" ];\n      code.push.apply( code, jsonml.splice( i ) );\n      jsonml[ i ] = code;\n      break;\n    case \"inlinecode\":\n      jsonml[ 0 ] = \"code\";\n      break;\n    case \"img\":\n      jsonml[ 1 ].src = jsonml[ 1 ].href;\n      delete jsonml[ 1 ].href;\n      break;\n    case \"linebreak\":\n      jsonml[ 0 ] = \"br\";\n    break;\n    case \"link\":\n      jsonml[ 0 ] = \"a\";\n      break;\n    case \"link_ref\":\n      jsonml[ 0 ] = \"a\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.href = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n    case \"img_ref\":\n      jsonml[ 0 ] = \"img\";\n\n      // grab this ref and clean up the attribute node\n      var ref = references[ attrs.ref ];\n\n      // if the reference exists, make the link\n      if ( ref ) {\n        delete attrs.ref;\n\n        // add in the href and title, if present\n        attrs.src = ref.href;\n        if ( ref.title ) {\n          attrs.title = ref.title;\n        }\n\n        // get rid of the unneeded original text\n        delete attrs.original;\n      }\n      // the reference doesn't exist, so revert to plain text\n      else {\n        return attrs.original;\n      }\n      break;\n  }\n\n  // convert all the children\n  i = 1;\n\n  // deal with the attribute node, if it exists\n  if ( attrs ) {\n    // if there are keys, skip over it\n    for ( var key in jsonml[ 1 ] ) {\n      i = 2;\n    }\n    // if there aren't, remove it\n    if ( i === 1 ) {\n      jsonml.splice( i, 1 );\n    }\n  }\n\n  for ( ; i < jsonml.length; ++i ) {\n    jsonml[ i ] = arguments.callee( jsonml[ i ], references, options );\n  }\n\n  return jsonml;\n}\n\n\n// merges adjacent text nodes into a single node\nfunction merge_text_nodes( jsonml ) {\n  // skip the tag name and attribute hash\n  var i = extract_attr( jsonml ) ? 2 : 1;\n\n  while ( i < jsonml.length ) {\n    // if it's a string check the next item too\n    if ( typeof jsonml[ i ] === \"string\" ) {\n      if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === \"string\" ) {\n        // merge the second string into the first and remove it\n        jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ];\n      }\n      else {\n        ++i;\n      }\n    }\n    // if it's not a string recurse\n    else {\n      arguments.callee( jsonml[ i ] );\n      ++i;\n    }\n  }\n}\n\n} )( (function() {\n  if ( typeof exports === \"undefined\" ) {\n    window.markdown = {};\n    return window.markdown;\n  }\n  else {\n    return exports;\n  }\n} )() );"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ar.js",
    "content": "/*\n * Arabic translation for bootstrap-markdown\n * George Ajam <george.ejaam@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.nl = {\n    'Bold': \"غامق\",\n    'Italic': \"مائل\",\n    'Heading': \"عنوان\",\n    'URL/Link': \"URL/رابط\",\n    'Image': \"صورة\",\n    'List': \"قائمة\",\n    'Preview': \"استعراض\",\n    'strong text': \"نص غامق\",\n    'emphasized text': \"نص هام\",\n    'heading text': \"العنوان\",\n    'enter link description here': \"ادخل وصف الرابط هنا\",\n    'Insert Hyperlink': \"ادخل الرابط هنا\",\n    'enter image description here': \"ادخل وصف الصورة هنا\",\n    'Insert Image Hyperlink': \"ادخل رابط الصورة هنا\",\n    'enter image title here': \"ادخل عنوان الصورة هنا\",\n    'list text here': \"اكتب النص هنا\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.cs.js",
    "content": "/**\n * Czech translation for bootstrap-markdown\n * Vít Kabele <vit@kabele.me>\n */\n(function ($) {\n  $.fn.markdown.messages.cs = {\n    'Bold': \"Tučně\",\n    'Italic': \"Kurzíva\",\n    'Heading': \"Nadpis\",\n    'URL/Link': \"URL/Odkaz\",\n    'Image': \"Obrázek\",\n    'Unordered List': \"Seznam\",\n    'Ordered List': \"Seřazený seznam\",\n    'Code': \"Úsek kódu\",\n    'Quote': \"Citace\",\n    'Preview': \"Náhled\",\n    'strong text': \"tučný text\",\n    'emphasized text': \"zdůrazněný text\",\n    'heading text': \"text nadpisu\",\n    'enter link description here': \"sem vlož popis odkazu\",\n    'Insert Hyperlink': \"Vložit Hyperlink\",\n    'enter image description here': \"sem vlož popis obrázku\",\n    'Insert Image Hyperlink': \"Vlož adresu obrázku\",\n    'enter image title here': \"sem vlož popis obrázku\",\n    'list text here': \"položka seznamu\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.da.js",
    "content": "/**\n * Danish translation for bootstrap-markdown\n * Dan Storm <storm@catalystcode.net>\n */\n(function ($) {\n  $.fn.markdown.messages.nb = {\n    'Bold': 'Fed',\n    'Italic': 'Kursiv',\n    'Heading': 'Overskrift',\n    'URL/Link': 'URL/Link',\n    'Image': 'Billede',\n    'List': 'Liste',\n    'Preview': 'Forhåndsvisning',\n    'strong text': 'stærk tekst',\n    'emphasized text': 'fremhævet tekst',\n    'heading text': 'overskrift tekst',\n    'enter link description here': 'Skriv link beskrivelse her',\n    'Insert Hyperlink': 'Indsæt link',\n    'enter image description here': 'Indsæt billede beskrivelse her',\n    'Insert Image Hyperlink': 'Indsæt billede link',\n    'enter image title here': 'Indsæt billede titel',\n    'list text here': 'Indsæt liste tekst her',\n    'quote here': 'Indsæt citat her',\n    'code text here': 'Indsæt kode her'\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.de.js",
    "content": "/**\n * German translation for bootstrap-markdown\n * Tobias Nitsche <tobias-nitsche@gmx.net>\n */\n(function ($) {\n  $.fn.markdown.messages.de = {\n    'Bold': \"Fett\",\n    'Italic': \"Kursiv\",\n    'Heading': \"Überschrift\",\n    'URL/Link': \"Link hinzufügen\",\n    'Image': \"Bild hinzufügen\",\n    'Unordered List': \"Unnummerierte Liste\",\n    'Ordered List': \"Nummerierte Liste\",\n    'Code': \"Quelltext\",\n    'Quote': \"Zitat\",\n    'Preview': \"Vorschau\",\n    'strong text': \"Sehr betonter Text\",\n    'emphasized text': \"Betonter Text\",\n    'heading text': \"Überschrift Text\",\n    'enter link description here': \"Linkbeschreibung\",\n    'Insert Hyperlink': \"URL\",\n    'enter image description here': \"Bildbeschreibung\",\n    'Insert Image Hyperlink': \"Bild-URL\",\n    'enter image title here': \"Titel des Bildes\",\n    'list text here': \"Aufzählungs-Text\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.es.js",
    "content": "/**\n * Spanish translation for bootstrap-markdown\n * by Leandro Poblet <leandrodrhouse@gmail.com>\n */\n;(function($){\n  $.fn.markdown.messages['es'] = {\n    'Bold': \"Negrita\",\n    'Italic': \"Itálica\",\n    'Heading': \"Título\",\n    'URL/Link': \"Inserte un link\",\n    'Image': \"Inserte una imagen\",\n    'List': \"Lista de items\",\n    'Preview': \"Previsualizar\",\n    'strong text': \"texto importante\",\n    'emphasized text': \"texto con énfasis\",\n    'heading text': \"texto titular\",\n    'enter link description here': \"descripción del link\",\n    'Insert Hyperlink': \"Inserte un hipervínculo\",\n    'enter image description here': \"descripción de la imagen\",\n    'Insert Image Hyperlink': \"Inserte una imagen con un hipervínculo\",\n    'enter image title here': \"Inserte una imagen con título\",\n    'list text here': \"lista con texto\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.fr.js",
    "content": "/**\n * French translation for bootstrap-markdown\n * Benoît Bourgeois <bierdok@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.fr = {\n    'Bold': \"Gras\",\n    'Italic': \"Italique\",\n    'Heading': \"Titre\",\n    'URL/Link': \"Insérer un lien HTTP\",\n    'Image': \"Insérer une image\",\n    'List': \"Liste à puces\",\n    'Preview': \"Prévisualiser\",\n    'strong text': \"texte important\",\n    'emphasized text': \"texte souligné\",\n    'heading text': \"texte d'entête\",\n    'enter link description here': \"entrez la description du lien ici\",\n    'Insert Hyperlink': \"Insérez le lien hypertexte\",\n    'enter image description here': \"entrez la description de l'image ici\",\n    'Insert Image Hyperlink': \"Insérez le lien hypertexte de l'image\",\n    'enter image title here': \"entrez le titre de l'image ici\",\n    'list text here': \"texte à puce ici\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ja.js",
    "content": "/**\n * Japanese translation for bootstrap-markdown\n * Kenta Murakami <kntmrkm@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages['ja'] = {\n    'Bold': \"太字\",\n    'Italic': \"斜体\",\n    'Heading': \"見出し\",\n    'URL/Link': \"リンク\",\n    'Image': \"画像\",\n    'Unordered List': \"リスト\",\n    'Ordered List': \"数字リスト\",\n    'Code': \"コード\",\n    'Quote': \"引用\",\n    'Preview': \"プレビュー\",\n    'strong text': \"太字\",\n    'emphasized text': \"強調\",\n    'heading text': \"見出し\",\n    'enter link description here': \"リンク説明\",\n    'Insert Hyperlink': \"リンク挿入\",\n    'enter image description here': \"画像説明\",\n    'Insert Image Hyperlink': \"画像挿入\",\n    'enter image title here': \"画像タイトル\",\n    'list text here': \"リスト挿入\",\n    'code text here': \"コード\",\n    'quote here': \"引用挿入\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.kr.js",
    "content": "/**\n + * Korean translation for bootstrap-markdown\n + * WoongBi Kim <ssinss@gmail.com>\n + */\n;(function($){\n  $.fn.markdown.messages['kr'] = {\n    'Bold': \"진하게\",\n    'Italic': \"이탤릭체\",\n    'Heading': \"머리글\",\n    'URL/Link': \"링크주소\",\n    'Image': \"이미지\",\n    'List': \"리스트\",\n    'Preview': \"미리보기\",\n    'strong text': \"강한 강조 텍스트\",\n    'emphasized text': \"강조 텍스트\",\n    'heading text': \"머리글 텍스트\",\n    'enter link description here': \"여기에 링크의 설명을 적으세요\",\n    'Insert Hyperlink': \"하이퍼링크 삽입\",\n    'enter image description here': \"여기세 이미지 설명을 적으세요\",\n    'Insert Image Hyperlink': \"이미지 링크 삽입\",\n    'enter image title here': \"여기에 이미지 제목을 적으세요\",\n    'list text here': \"리스트 텍스트\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.nb.js",
    "content": "/**\n * Norwegian bokmål translation for bootstrap-markdown\n * Tobias Bohwalli <hi@futhr.io>\n */\n(function ($) {\n  $.fn.markdown.messages.nb = {\n    'Bold': 'Fet',\n    'Italic': 'Kursiv',\n    'Heading': 'Overskrift',\n    'URL/Link': 'URL/Lenke',\n    'Image': 'Bilde',\n    'List': 'Liste',\n    'Preview': 'Forhåndsvisning',\n    'strong text': 'sterk tekst',\n    'emphasized text': 'streket tekst',\n    'heading text': 'overskriften tekst',\n    'enter link description here': 'Skriv linken beskrivelse her',\n    'Insert Hyperlink': 'Sett inn lenke',\n    'enter image description here': 'Angi bildebeskrivelse her',\n    'Insert Image Hyperlink': 'Sett inn lenke for bilde',\n    'enter image title here': 'Angi bildetittel her',\n    'list text here': 'liste tekst her'\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.nl.js",
    "content": "/**\n * Dutch translation for bootstrap-markdown\n * Jeroen Thora <jeroenthora@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.nl = {\n    'Bold': \"Vet\",\n    'Italic': \"Cursief\",\n    'Heading': \"Titel\",\n    'URL/Link': \"URL/Link\",\n    'Image': \"Afbeelding\",\n    'List': \"Lijst\",\n    'Preview': \"Voorbeeld\",\n    'strong text': \"vet gedrukte tekst\",\n    'emphasized text': \"schuin gedrukte tekst\",\n    'heading text': \"Titel\",\n    'enter link description here': \"Voer een link beschrijving in\",\n    'Insert Hyperlink': \"Voer een http link in\",\n    'enter image description here': \"Voer een afbeelding beschrijving in\",\n    'Insert Image Hyperlink': \"Voer een afbeelding link in\",\n    'enter image title here': \"Voer de afbeelding titel in\",\n    'list text here': \"lijst item\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.pl.js",
    "content": "/**\n * Polish translation for bootstrap-markdown\n * Marek Kaput\n */\n(function ($) {\n  $.fn.markdown.messages.pl = {\n    'Bold': \"Pogrubienie\",\n    'Italic': \"Kursywa\",\n    'Heading': \"Nagłówek\",\n    'URL/Link': \"Wstaw link\",\n    'Image': \"Wstaw obrazek\",\n    'Unordered List': \"Lista punktowana\",\n    'Ordered List': \"Lista numerowana\",\n    'Code': \"Kod źródłowy\",\n    'Quote': \"Cytat\",\n    'Preview': \"Podgląd\",\n    'strong text': \"pogrubiony tekst\",\n    'emphasized text': \"pochylony tekst\",\n    'heading text': \"nagłówek\",\n    'enter link description here': \"opis linka\",\n    'Insert Hyperlink': \"Wstaw link\",\n    'enter image description here': \"opis obrazka\",\n    'Insert Image Hyperlink': \"Wstaw obrazek\",\n    'enter image title here': \"tytuł obrazka\",\n    'list text here': \"lista\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ru.js",
    "content": "/**\n * Russian translation for bootstrap-markdown\n * by Oleg Vivtash <o@vivtash.net>\n */\n;(function($){\n  $.fn.markdown.messages['ru'] = {\n    'Bold': \"Жирный\",\n    'strong text': \"выделенный текст\",\n    'Italic': \"Курсив\",\n    'emphasized text': \"наклонный текст\",\n    'Heading': \"Заголовок\",\n    'heading text': \"текст заголовка\",\n    'URL/Link': \"Вставьте ссылку\",\n    'Insert Hyperlink': \"Введите гиперссылку\",\n    'enter link description here': \"введите описание ссылки\",\n    'Image': \"Изображение\",\n    'enter image description here': \"Введите описание изображения\",\n    'Insert Image Hyperlink': \"Вставьте ссылку на изображение\",\n    'enter image title here': \"Введите название изображения\",\n    'List': \"Список\",\n    'Unordered List': \"Неупорядоченный список\",\n    'Ordered List': \"Упорядоченный список\",\n    'list text here': \"текст списка\",\n    'Code': \"Код\",\n    'code text here': \"программный код\",\n    'Quote': \"Цитата\",\n    'quote here': \"цитируемый текст\",\n    'Preview': \"Предварительный просмотр\"\n  };\n}(jQuery))\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.sl.js",
    "content": "/**\n * Slovenian translation for bootstrap-markdown\n * Davor Padovan <davor.padovan@gmail.com>\n */\n(function ($) {\n  $.fn.markdown.messages.sl = {\n    'Bold': \"Odebeljeno\",\n    'Italic': \"Poševno\",\n    'Heading': \"Naslov\",\n    'URL/Link': \"Povezava\",\n    'Image': \"Slika\",\n    'Unordered List': \"Neurejen seznam\",\n    'Ordered List': \"Urejen seznam\",\n    'Code': \"Koda\",\n    'Quote': \"Citat\",\n    'Preview': \"Predogled\",\n    'strong text': \"odebeljeno besedilo\",\n    'emphasized text': \"poševno besedilo\",\n    'heading text': \"naslov\",\n    'enter link description here': \"opis povezave\",\n    'Insert Hyperlink': \"Vstavi povezavo\",\n    'enter image description here': \"opis slike\",\n    'Insert Image Hyperlink': \"Vstavi povezavo do slike\",\n    'enter image title here': \"naslov slike\",\n    'list text here': \"seznam\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.sv.js",
    "content": "/**\n * Swedish translation for bootstrap-markdown\n * Tobias Bohwalli <hi@futhr.io>\n */\n(function ($) {\n  $.fn.markdown.messages.sv = {\n    'Bold': 'Fet',\n    'Italic': 'Kursiv',\n    'Heading': 'Rubrik',\n    'URL/Link': 'URL/Länk',\n    'Image': 'Bild',\n    'List': 'Lista',\n    'Preview': 'Förhandsgranska',\n    'strong text': 'fet text',\n    'emphasized text': 'överstruken text',\n    'heading text': 'Rubrik',\n    'enter link description here': 'Ange länk beskrivning här',\n    'Insert Hyperlink': 'Sätt in länk',\n    'enter image description here': 'Ange bild beskrivning här',\n    'Insert Image Hyperlink': 'Sätt in länk för bild',\n    'enter image title here': 'Ange bild rubrik här',\n    'list text here': 'list text'\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.tr.js",
    "content": "/**\n * Turkish translation for bootstrap-markdown\n * Serkan Algur <info@wpadami.com>\n */\n(function ($) {\n  $.fn.markdown.messages.tr = {\n    'Bold': \"Kalın\",\n    'Italic': \"İtalik\",\n    'Heading': \"Başlık\",\n    'URL/Link': \"Link ekle\",\n    'Image': \"Resim ekle\",\n    'List': \"Liste Oluşturun\",\n    'Preview': \"Önizleme\",\n    'strong text': \"kalın yazı\",\n    'emphasized text': \"italik yazı\",\n    'heading text': \"Başlık Yazısı\",\n    'enter link description here': \"Link açıklamasını buraya girin\",\n    'Insert Hyperlink': \"İnternet adresi girin\",\n    'enter image description here': \"resim açıklamasını buraya ekleyin\",\n    'Insert Image Hyperlink': \"Resim linkini ekleyin\",\n    'enter image title here': \"resim başlığını buraya ekleyin\",\n    'list text here': \"liste yazısı\",\n    'Save' : \"Kaydet\",\n    'Ordered List' : \"Numaralı Liste\",\n    'Unordered List' : \"Madde imli liste\",\n    'Quote' : \"Alıntı\",\n    'quote here' : \"alıntıyı buraya ekleyin\",\n    'Code' : \"Kod\",\n    'code text here' : \"kodu buraya ekleyin\"\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.ua.js",
    "content": "/**\n * Ukrainian translation for bootstrap-markdown\n * by Oleg Vivtash <o@vivtash.net>\n */\n;(function($){\n  $.fn.markdown.messages['ua'] = {\n    'Bold': \"Жирний\",\n    'Italic': \"Курсів\",\n    'Heading': \"Заголовок\",\n    'URL/Link': \"Вставте посилання\",\n    'Image': \"Зображення\",\n    'List': \"Список\",\n    'Preview': \"Попередній перегляд\",\n    'strong text': \"виділений текст\",\n    'emphasized text': \"нахилений текст\",\n    'heading text': \"текст заголовку\",\n    'enter link description here': \"введіть опис посилання\",\n    'Insert Hyperlink': \"Введіть гіперпосилання\",\n    'enter image description here': \"Введіть опис зображення\",\n    'Insert Image Hyperlink': \"Вставте посилання на зображення\",\n    'enter image title here': \"Введіть назву зображення\",\n    'list text here': \"текст списку\"\n  };\n}(jQuery))\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/locale/bootstrap-markdown.zh.js",
    "content": "/**\n * Chinese translation for bootstrap-markdown\n * benhaile <denghaier@163.com>\n */\n(function ($) {\n  $.fn.markdown.messages.zh = {\n    'Bold': \"粗体\",\n    'Italic': \"斜体\",\n    'Heading': \"标题\",\n    'URL/Link': \"链接\",\n    'Image': \"图片\",\n    'List': \"列表\",\n    'Unordered List': \"无序列表\",\n    'Ordered List': \"有序列表\",\n    'Code': \"代码\",\n    'Quote': \"引用\",\n    'Preview': \"预览\",\n    'strong text': \"粗体\",\n    'emphasized text': \"强调\",\n    'heading text': \"标题\",\n    'enter link description here': \"输入链接说明\",\n    'Insert Hyperlink': \"URL地址\",\n    'enter image description here': \"输入图片说明\",\n    'Insert Image Hyperlink': \"图片URL地址\",\n    'enter image title here': \"在这里输入图片标题\",\n    'list text here': \"这里是列表文本\",\n    'code text here': \"这里输入代码\",\n    'quote here': \"这里输入引用文本\"\n\n\n  };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-markdown/package.json",
    "content": "{\n  \"name\": \"bootstrap-markdown\",\n  \"filename\": \"js/bootstrap-markdown.js\",\n  \"version\": \"2.9.0\",\n  \"description\": \"A bootstrap plugin for markdown editing\",\n  \"license\" : \"Apache-2.0\",\n  \"homepage\": \"https://github.com/toopay/bootstrap-markdown\",\n  \"keywords\": [\n    \"twitter\",\n    \"bootstrap\",\n    \"markdown\",\n    \"editor\"\n  ],\n  \"maintainers\": [{\n    \"name\": \"Taufan Aditya\",\n    \"web\": \"https://github.com/toopay\"\n  }],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/toopay/bootstrap-markdown.git\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-modal/css/bootstrap-modal-bs3patch.css",
    "content": "/*!\n * Bootstrap Modal\n *\n * Copyright Jordan Schroter\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Boostrap 3 patch for for bootstrap-modal. Include BEFORE bootstrap-modal.css!\n */\n\nbody.modal-open, \n.modal-open .navbar-fixed-top, \n.modal-open .navbar-fixed-bottom {\n  margin-right: 0;\n}\n\n.modal {\n  left: 50%;\n  bottom: auto;\n  right: auto;\n  padding: 0;\n  width: 500px;\n  margin-left: -250px;\n  background-color: #ffffff;\n  border: 1px solid #999999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n}\n\n.modal.container {\n  max-width: none;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-modal/css/bootstrap-modal.css",
    "content": "/*!\n * Bootstrap Modal\n *\n * Copyright Jordan Schroter\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n */\n\n.modal-open {\n\toverflow: hidden;\n}\n\n\n/* add a scroll bar to stop page from jerking around */\n.modal-open.page-overflow .page-container,\n.modal-open.page-overflow .page-container .navbar-fixed-top,\n.modal-open.page-overflow .page-container .navbar-fixed-bottom,\n.modal-open.page-overflow .modal-scrollable {\n\toverflow-y: scroll;\n}\n\n@media (max-width: 979px) {\n\t.modal-open.page-overflow .page-container .navbar-fixed-top,\n\t.modal-open.page-overflow .page-container .navbar-fixed-bottom  {\n\t\toverflow-y: visible;\n\t}\n}\n\n\n.modal-scrollable {\n\tposition: fixed;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\toverflow: auto;\n}\n\n.modal {\n\toutline: none;\n\tposition: absolute;\n\tmargin-top: 0;\n\ttop: 50%;\n\toverflow: visible; /* allow content to popup out (i.e tooltips) */\n}\n\n.modal.fade {\n\ttop: -100%;\n\t-webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\t\n\t   -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\n\t     -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\n\t        transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out;\n}\n\n.modal.fade.in {\n\ttop: 50%;\n}\n\n.modal-body {\n\tmax-height: none;\n\toverflow: visible;\n}\n\n.modal.modal-absolute {\n\tposition: absolute;\n\tz-index: 950;\n}\n\n.modal .loading-mask {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: #fff;\n\tborder-radius: 6px;\n}\n\n.modal-backdrop.modal-absolute{\n\tposition: absolute;\n\tz-index: 940;\n}\n\n.modal-backdrop, \n.modal-backdrop.fade.in{\n\topacity: 0.7;\n\tfilter: alpha(opacity=70);\n\tbackground: #fff;\n}\n\n.modal.container {\n  width: 940px;\n  margin-left: -470px;\n}\n\n/* Modal Overflow */\n\n.modal-overflow.modal {\n\ttop: 1%;\n}\n\n.modal-overflow.modal.fade {\n\ttop: -100%;\n}\n\n.modal-overflow.modal.fade.in {\n\ttop: 1%;\n}\n\n.modal-overflow .modal-body {\n\toverflow: auto;\n\t-webkit-overflow-scrolling: touch;\n}\n\n/* Responsive */\n\n@media (min-width: 1200px) {\n\t.modal.container {\n\t\twidth: 1170px;\n\t\tmargin-left: -585px;\n\t}\n}\n\n@media (max-width: 979px) {\n\t.modal, \n\t.modal.container,\n\t.modal.modal-overflow \t{\n\t\ttop: 1%;\n\t\tright: 1%;\n\t\tleft: 1%;\n\t\tbottom: auto;\n\t\twidth: auto !important;\n\t\theight: auto !important;\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t}\n\t\n\t.modal.fade.in, \n\t.modal.container.fade.in,\n\t.modal.modal-overflow.fade.in {\n\t\ttop: 1%;\n\t\tbottom: auto;\n\t}\n\t\n\t.modal-body,\n\t.modal-overflow .modal-body {\n\t\tposition: static;\n\t\tmargin: 0;\n\t\theight: auto !important;\n\t\tmax-height: none !important;\n\t\toverflow: visible !important;\n\t}\n\t\n\t.modal-footer,\n\t.modal-overflow .modal-footer {\n\t\tposition: static;\n\t}\n}\n\n.loading-spinner {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin: -12px 0 0 -12px;\n}\n\n/*\nAnimate.css - http://daneden.me/animate\nLicensed under the ☺ license (http://licence.visualidiot.com/)\n\nCopyright (c) 2012 Dan Eden*/\n\n.animated {\n\t-webkit-animation-duration: 1s;\n\t   -moz-animation-duration: 1s;\n\t     -o-animation-duration: 1s;\n\t        animation-duration: 1s;\n\t-webkit-animation-fill-mode: both;\n\t   -moz-animation-fill-mode: both;\n\t     -o-animation-fill-mode: both;\n\t        animation-fill-mode: both;\n}\n\n@-webkit-keyframes shake {\n\t0%, 100% {-webkit-transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);}\n}\n\n@-moz-keyframes shake {\n\t0%, 100% {-moz-transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {-moz-transform: translateX(10px);}\n}\n\n@-o-keyframes shake {\n\t0%, 100% {-o-transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {-o-transform: translateX(10px);}\n}\n\n@keyframes shake {\n\t0%, 100% {transform: translateX(0);}\n\t10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);}\n\t20%, 40%, 60%, 80% {transform: translateX(10px);}\n}\n\n.shake {\n\t-webkit-animation-name: shake;\n\t-moz-animation-name: shake;\n\t-o-animation-name: shake;\n\tanimation-name: shake;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-modal/js/bootstrap-modal.js",
    "content": "/* ===========================================================\n * bootstrap-modal.js v2.2.5\n * ===========================================================\n * Copyright 2012 Jordan Schroter\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================== */\n\n\n!function ($) {\n\n\t\"use strict\"; // jshint ;_;\n\n\t/* MODAL CLASS DEFINITION\n\t* ====================== */\n\n\tvar Modal = function (element, options) {\n\t\tthis.init(element, options);\n\t};\n\n\tModal.prototype = {\n\n\t\tconstructor: Modal,\n\n\t\tinit: function (element, options) {\n\t\t\tvar that = this;\n\n\t\t\tthis.options = options;\n\n\t\t\tthis.$element = $(element)\n\t\t\t\t.delegate('[data-dismiss=\"modal\"]', 'click.dismiss.modal', $.proxy(this.hide, this));\n\n\t\t\tthis.options.remote && this.$element.find('.modal-body').load(this.options.remote, function () {\n\t\t\t\tvar e = $.Event('loaded');\n\t\t\t\tthat.$element.trigger(e);\n\t\t\t});\n\n\t\t\tvar manager = typeof this.options.manager === 'function' ?\n\t\t\t\tthis.options.manager.call(this) : this.options.manager;\n\n\t\t\tmanager = manager.appendModal ?\n\t\t\t\tmanager : $(manager).modalmanager().data('modalmanager');\n\n\t\t\tmanager.appendModal(this);\n\t\t},\n\n\t\ttoggle: function () {\n\t\t\treturn this[!this.isShown ? 'show' : 'hide']();\n\t\t},\n\n\t\tshow: function () {\n\t\t\tvar e = $.Event('show');\n\n\t\t\tif (this.isShown) return;\n\n\t\t\tthis.$element.trigger(e);\n\n\t\t\tif (e.isDefaultPrevented()) return;\n\n\t\t\tthis.escape();\n\n\t\t\tthis.tab();\n\n\t\t\tthis.options.loading && this.loading();\n\t\t},\n\n\t\thide: function (e) {\n\t\t\te && e.preventDefault();\n\n\t\t\te = $.Event('hide');\n\n\t\t\tthis.$element.trigger(e);\n\n\t\t\tif (!this.isShown || e.isDefaultPrevented()) return;\n\n\t\t\tthis.isShown = false;\n\n\t\t\tthis.escape();\n\n\t\t\tthis.tab();\n\n\t\t\tthis.isLoading && this.loading();\n\n\t\t\t$(document).off('focusin.modal');\n\n\t\t\tthis.$element\n\t\t\t\t.removeClass('in')\n\t\t\t\t.removeClass('animated')\n\t\t\t\t.removeClass(this.options.attentionAnimation)\n\t\t\t\t.removeClass('modal-overflow')\n\t\t\t\t.attr('aria-hidden', true);\n\n\t\t\t$.support.transition && this.$element.hasClass('fade') ?\n\t\t\t\tthis.hideWithTransition() :\n\t\t\t\tthis.hideModal();\n\t\t},\n\n\t\tlayout: function () {\n\t\t\tvar prop = this.options.height ? 'height' : 'max-height',\n\t\t\t\tvalue = this.options.height || this.options.maxHeight;\n\n\t\t\tif (this.options.width){\n\t\t\t\tthis.$element.css('width', this.options.width);\n\n\t\t\t\tvar that = this;\n\t\t\t\tthis.$element.css('margin-left', function () {\n\t\t\t\t\tif (/%/ig.test(that.options.width)){\n\t\t\t\t\t\treturn -(parseInt(that.options.width) / 2) + '%';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn -($(this).width() / 2) + 'px';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.$element.css('width', '');\n\t\t\t\tthis.$element.css('margin-left', '');\n\t\t\t}\n\n\t\t\tthis.$element.find('.modal-body')\n\t\t\t\t.css('overflow', '')\n\t\t\t\t.css(prop, '');\n\n\t\t\tif (value){\n\t\t\t\tthis.$element.find('.modal-body')\n\t\t\t\t\t.css('overflow', 'auto')\n\t\t\t\t\t.css(prop, value);\n\t\t\t}\n\n\t\t\tvar modalOverflow = $(window).height() - 10 < this.$element.height();\n            \n\t\t\tif (modalOverflow || this.options.modalOverflow) {\n\t\t\t\tthis.$element\n\t\t\t\t\t.css('margin-top', 0)\n\t\t\t\t\t.addClass('modal-overflow');\n\t\t\t} else {\n\t\t\t\tthis.$element\n\t\t\t\t\t.css('margin-top', 0 - this.$element.height() / 2)\n\t\t\t\t\t.removeClass('modal-overflow');\n\t\t\t}\n\t\t},\n\n\t\ttab: function () {\n\t\t\tvar that = this;\n\n\t\t\tif (this.isShown && this.options.consumeTab) {\n\t\t\t\tthis.$element.on('keydown.tabindex.modal', '[data-tabindex]', function (e) {\n\t\t\t    \tif (e.keyCode && e.keyCode == 9){\n\t\t\t\t\t\tvar elements = [],\n\t\t\t\t\t\t\ttabindex = Number($(this).data('tabindex'));\n\n\t\t\t\t\t\tthat.$element.find('[data-tabindex]:enabled:visible:not([readonly])').each(function (ev) {\n\t\t\t\t\t\t\telements.push(Number($(this).data('tabindex')));\n\t\t\t\t\t\t});\n\t\t\t\t\t\telements.sort(function(a,b){return a-b});\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar arrayPos = $.inArray(tabindex, elements);\n\t\t\t\t\t\tif (!e.shiftKey){\n\t\t\t\t\t\t \t\tarrayPos < elements.length-1 ?\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[arrayPos+1]+']').focus() :\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[0]+']').focus();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tarrayPos == 0 ?\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[elements.length-1]+']').focus() :\n\t\t\t\t\t\t\t\t\tthat.$element.find('[data-tabindex='+elements[arrayPos-1]+']').focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else if (!this.isShown) {\n\t\t\t\tthis.$element.off('keydown.tabindex.modal');\n\t\t\t}\n\t\t},\n\n\t\tescape: function () {\n\t\t\tvar that = this;\n\t\t\tif (this.isShown && this.options.keyboard) {\n\t\t\t\tif (!this.$element.attr('tabindex')) this.$element.attr('tabindex', -1);\n\n\t\t\t\tthis.$element.on('keyup.dismiss.modal', function (e) {\n\t\t\t\t\te.which == 27 && that.hide();\n\t\t\t\t});\n\t\t\t} else if (!this.isShown) {\n\t\t\t\tthis.$element.off('keyup.dismiss.modal')\n\t\t\t}\n\t\t},\n\n\t\thideWithTransition: function () {\n\t\t\tvar that = this\n\t\t\t\t, timeout = setTimeout(function () {\n\t\t\t\t\tthat.$element.off($.support.transition.end);\n\t\t\t\t\tthat.hideModal();\n\t\t\t\t}, 500);\n\n\t\t\tthis.$element.one($.support.transition.end, function () {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tthat.hideModal();\n\t\t\t});\n\t\t},\n\n\t\thideModal: function () {\n\t\t\tvar prop = this.options.height ? 'height' : 'max-height';\n\t\t\tvar value = this.options.height || this.options.maxHeight;\n\n\t\t\tif (value){\n\t\t\t\tthis.$element.find('.modal-body')\n\t\t\t\t\t.css('overflow', '')\n\t\t\t\t\t.css(prop, '');\n\t\t\t}\n\n\t\t\tthis.$element\n\t\t\t\t.hide()\n\t\t\t\t.trigger('hidden');\n\t\t},\n\n\t\tremoveLoading: function () {\n\t\t\tthis.$loading.remove();\n\t\t\tthis.$loading = null;\n\t\t\tthis.isLoading = false;\n\t\t},\n\n\t\tloading: function (callback) {\n\t\t\tcallback = callback || function () {};\n\n\t\t\tvar animate = this.$element.hasClass('fade') ? 'fade' : '';\n\n\t\t\tif (!this.isLoading) {\n\t\t\t\tvar doAnimate = $.support.transition && animate;\n\n\t\t\t\tthis.$loading = $('<div class=\"loading-mask ' + animate + '\">')\n\t\t\t\t\t.append(this.options.spinner)\n\t\t\t\t\t.appendTo(this.$element);\n\n\t\t\t\tif (doAnimate) this.$loading[0].offsetWidth; // force reflow\n\n\t\t\t\tthis.$loading.addClass('in');\n\n\t\t\t\tthis.isLoading = true;\n\n\t\t\t\tdoAnimate ?\n\t\t\t\t\tthis.$loading.one($.support.transition.end, callback) :\n\t\t\t\t\tcallback();\n\n\t\t\t} else if (this.isLoading && this.$loading) {\n\t\t\t\tthis.$loading.removeClass('in');\n\n\t\t\t\tvar that = this;\n\t\t\t\t$.support.transition && this.$element.hasClass('fade')?\n\t\t\t\t\tthis.$loading.one($.support.transition.end, function () { that.removeLoading() }) :\n\t\t\t\t\tthat.removeLoading();\n\n\t\t\t} else if (callback) {\n\t\t\t\tcallback(this.isLoading);\n\t\t\t}\n\t\t},\n\n\t\tfocus: function () {\n\t\t\tvar $focusElem = this.$element.find(this.options.focusOn);\n\n\t\t\t$focusElem = $focusElem.length ? $focusElem : this.$element;\n\n\t\t\t$focusElem.focus();\n\t\t},\n\n\t\tattention: function (){\n\t\t\t// NOTE: transitionEnd with keyframes causes odd behaviour\n\n\t\t\tif (this.options.attentionAnimation){\n\t\t\t\tthis.$element\n\t\t\t\t\t.removeClass('animated')\n\t\t\t\t\t.removeClass(this.options.attentionAnimation);\n\n\t\t\t\tvar that = this;\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tthat.$element\n\t\t\t\t\t\t.addClass('animated')\n\t\t\t\t\t\t.addClass(that.options.attentionAnimation);\n\t\t\t\t}, 0);\n\t\t\t}\n\n\n\t\t\tthis.focus();\n\t\t},\n\n\n\t\tdestroy: function () {\n\t\t\tvar e = $.Event('destroy');\n\n\t\t\tthis.$element.trigger(e);\n\n\t\t\tif (e.isDefaultPrevented()) return;\n\n\t\t\tthis.$element\n\t\t\t\t.off('.modal')\n\t\t\t\t.removeData('modal')\n\t\t\t\t.removeClass('in')\n\t\t\t\t.attr('aria-hidden', true);\n\t\t\t\n\t\t\tif (this.$parent !== this.$element.parent()) {\n\t\t\t\tthis.$element.appendTo(this.$parent);\n\t\t\t} else if (!this.$parent.length) {\n\t\t\t\t// modal is not part of the DOM so remove it.\n\t\t\t\tthis.$element.remove();\n\t\t\t\tthis.$element = null;\n\t\t\t}\n\n\t\t\tthis.$element.trigger('destroyed');\n\t\t}\n\t};\n\n\n\t/* MODAL PLUGIN DEFINITION\n\t* ======================= */\n\n\t$.fn.modal = function (option, args) {\n\t\treturn this.each(function () {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('modal'),\n\t\t\t\toptions = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option);\n\n\t\t\tif (!data) $this.data('modal', (data = new Modal(this, options)));\n\t\t\tif (typeof option == 'string') data[option].apply(data, [].concat(args));\n\t\t\telse if (options.show) data.show()\n\t\t})\n\t};\n\n\t$.fn.modal.defaults = {\n\t\tkeyboard: true,\n\t\tbackdrop: true,\n\t\tloading: false,\n\t\tshow: true,\n\t\twidth: null,\n\t\theight: null,\n\t\tmaxHeight: null,\n\t\tmodalOverflow: false,\n\t\tconsumeTab: true,\n\t\tfocusOn: null,\n\t\treplace: false,\n\t\tresize: false,\n\t\tattentionAnimation: 'shake',\n\t\tmanager: 'body',\n\t\tspinner: '<div class=\"loading-spinner\" style=\"width: 200px; margin-left: -100px;\"><div class=\"progress progress-striped active\"><div class=\"bar\" style=\"width: 100%;\"></div></div></div>',\n\t\tbackdropTemplate: '<div class=\"modal-backdrop\" />'\n\t};\n\n\t$.fn.modal.Constructor = Modal;\n\n\n\t/* MODAL DATA-API\n\t* ============== */\n\n\t$(function () {\n\t\t$(document).off('click.modal').on('click.modal.data-api', '[data-toggle=\"modal\"]', function ( e ) {\n\t\t\tvar $this = $(this),\n\t\t\t\thref = $this.attr('href'),\n\t\t\t\t$target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))), //strip for ie7\n\t\t\t\toption = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data());\n\n\t\t\te.preventDefault();\n\t\t\t$target\n\t\t\t\t.modal(option)\n\t\t\t\t.one('hide', function () {\n\t\t\t\t\t$this.focus();\n\t\t\t\t})\n\t\t});\n\t});\n\n}(window.jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-modal/js/bootstrap-modalmanager.js",
    "content": "/* ===========================================================\n * bootstrap-modalmanager.js v2.2.5\n * ===========================================================\n * Copyright 2012 Jordan Schroter.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================== */\n\n!function ($) {\n\n\t\"use strict\"; // jshint ;_;\n\n\t/* MODAL MANAGER CLASS DEFINITION\n\t* ====================== */\n\n\tvar ModalManager = function (element, options) {\n\t\tthis.init(element, options);\n\t};\n\n\tModalManager.prototype = {\n\n\t\tconstructor: ModalManager,\n\n\t\tinit: function (element, options) {\n\t\t\tthis.$element = $(element);\n\t\t\tthis.options = $.extend({}, $.fn.modalmanager.defaults, this.$element.data(), typeof options == 'object' && options);\n\t\t\tthis.stack = [];\n\t\t\tthis.backdropCount = 0;\n\n\t\t\tif (this.options.resize) {\n\t\t\t\tvar resizeTimeout,\n\t\t\t\t\tthat = this;\n\n\t\t\t\t$(window).on('resize.modal', function(){\n\t\t\t\t\tresizeTimeout && clearTimeout(resizeTimeout);\n\t\t\t\t\tresizeTimeout = setTimeout(function(){\n\t\t\t\t\t\tfor (var i = 0; i < that.stack.length; i++){\n\t\t\t\t\t\t\tthat.stack[i].isShown && that.stack[i].layout();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 10);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tcreateModal: function (element, options) {\n\t\t\t$(element).modal($.extend({ manager: this }, options));\n\t\t},\n\n\t\tappendModal: function (modal) {\n\t\t\tthis.stack.push(modal);\n\n\t\t\tvar that = this;\n\n\t\t\tmodal.$element.on('show.modalmanager', targetIsSelf(function (e) {\n\n\t\t\t\tvar showModal = function(){\n\t\t\t\t\tmodal.isShown = true;\n\n\t\t\t\t\tvar transition = $.support.transition && modal.$element.hasClass('fade');\n\n\t\t\t\t\tthat.$element\n\t\t\t\t\t\t.toggleClass('modal-open', that.hasOpenModal())\n\t\t\t\t\t\t.toggleClass('page-overflow', $(window).height() < that.$element.height());\n\n\t\t\t\t\tmodal.$parent = modal.$element.parent();\n\n\t\t\t\t\tmodal.$container = that.createContainer(modal);\n\n\t\t\t\t\tmodal.$element.appendTo(modal.$container);\n\n\t\t\t\t\tthat.backdrop(modal, function () {\n\t\t\t\t\t\tmodal.$element.show();\n\n\t\t\t\t\t\tif (transition) {       \n\t\t\t\t\t\t\t//modal.$element[0].style.display = 'run-in';       \n\t\t\t\t\t\t\tmodal.$element[0].offsetWidth;\n\t\t\t\t\t\t\t//modal.$element.one($.support.transition.end, function () { modal.$element[0].style.display = 'block' });  \n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tmodal.layout();\n\n\t\t\t\t\t\tmodal.$element\n\t\t\t\t\t\t\t.addClass('in')\n\t\t\t\t\t\t\t.attr('aria-hidden', false);\n\n\t\t\t\t\t\tvar complete = function () {\n\t\t\t\t\t\t\tthat.setFocus();\n\t\t\t\t\t\t\tmodal.$element.trigger('shown');\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\ttransition ?\n\t\t\t\t\t\t\tmodal.$element.one($.support.transition.end, complete) :\n\t\t\t\t\t\t\tcomplete();\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tmodal.options.replace ?\n\t\t\t\t\tthat.replace(showModal) :\n\t\t\t\t\tshowModal();\n\t\t\t}));\n\n\t\t\tmodal.$element.on('hidden.modalmanager', targetIsSelf(function (e) {\n\t\t\t\tthat.backdrop(modal);\n\t\t\t\t// handle the case when a modal may have been removed from the dom before this callback executes\n\t\t\t\tif (!modal.$element.parent().length) {\n\t\t\t\t\tthat.destroyModal(modal);\n\t\t\t\t} else if (modal.$backdrop){\n\t\t\t\t\tvar transition = $.support.transition && modal.$element.hasClass('fade');\n\n\t\t\t\t\t// trigger a relayout due to firebox's buggy transition end event \n\t\t\t\t\tif (transition) { modal.$element[0].offsetWidth; }\n\t\t\t\t\t$.support.transition && modal.$element.hasClass('fade') ?\n\t\t\t\t\t\tmodal.$backdrop.one($.support.transition.end, function () { modal.destroy(); }) :\n\t\t\t\t\t\tmodal.destroy();\n\t\t\t\t} else {\n\t\t\t\t\tmodal.destroy();\n\t\t\t\t}\n\n\t\t\t}));\n\n\t\t\tmodal.$element.on('destroyed.modalmanager', targetIsSelf(function (e) {\n\t\t\t\tthat.destroyModal(modal);\n\t\t\t}));\n\t\t},\n\n\t\tgetOpenModals: function () {\n\t\t\tvar openModals = [];\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (this.stack[i].isShown) openModals.push(this.stack[i]);\n\t\t\t}\n\n\t\t\treturn openModals;\n\t\t},\n\n\t\thasOpenModal: function () {\n\t\t\treturn this.getOpenModals().length > 0;\n\t\t},\n\n\t\tsetFocus: function () {\n\t\t\tvar topModal;\n\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (this.stack[i].isShown) topModal = this.stack[i];\n\t\t\t}\n\n\t\t\tif (!topModal) return;\n\n\t\t\ttopModal.focus();\n\t\t},\n\n\t\tdestroyModal: function (modal) {\n\t\t\tmodal.$element.off('.modalmanager');\n\t\t\tif (modal.$backdrop) this.removeBackdrop(modal);\n\t\t\tthis.stack.splice(this.getIndexOfModal(modal), 1);\n\n\t\t\tvar hasOpenModal = this.hasOpenModal();\n\n\t\t\tthis.$element.toggleClass('modal-open', hasOpenModal);\n\n\t\t\tif (!hasOpenModal){\n\t\t\t\tthis.$element.removeClass('page-overflow');\n\t\t\t}\n\n\t\t\tthis.removeContainer(modal);\n\n\t\t\tthis.setFocus();\n\t\t},\n\n\t\tgetModalAt: function (index) {\n\t\t\treturn this.stack[index];\n\t\t},\n\n\t\tgetIndexOfModal: function (modal) {\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (modal === this.stack[i]) return i;\n\t\t\t}\n\t\t},\n\n\t\treplace: function (callback) {\n\t\t\tvar topModal;\n\n\t\t\tfor (var i = 0; i < this.stack.length; i++){\n\t\t\t\tif (this.stack[i].isShown) topModal = this.stack[i];\n\t\t\t}\n\n\t\t\tif (topModal) {\n\t\t\t\tthis.$backdropHandle = topModal.$backdrop;\n\t\t\t\ttopModal.$backdrop = null;\n\n\t\t\t\tcallback && topModal.$element.one('hidden',\n\t\t\t\t\ttargetIsSelf( $.proxy(callback, this) ));\n\n\t\t\t\ttopModal.hide();\n\t\t\t} else if (callback) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t},\n\n\t\tremoveBackdrop: function (modal) {\n\t\t\tmodal.$backdrop.remove();\n\t\t\tmodal.$backdrop = null;\n\t\t},\n\n\t\tcreateBackdrop: function (animate, tmpl) {\n\t\t\tvar $backdrop;\n\n\t\t\tif (!this.$backdropHandle) {\n\t\t\t\t$backdrop = $(tmpl)\n\t\t\t\t\t.addClass(animate)\n\t\t\t\t\t.appendTo(this.$element);\n\t\t\t} else {\n\t\t\t\t$backdrop = this.$backdropHandle;\n\t\t\t\t$backdrop.off('.modalmanager');\n\t\t\t\tthis.$backdropHandle = null;\n\t\t\t\tthis.isLoading && this.removeSpinner();\n\t\t\t}\n\n\t\t\treturn $backdrop;\n\t\t},\n\n\t\tremoveContainer: function (modal) {\n\t\t\tmodal.$container.remove();\n\t\t\tmodal.$container = null;\n\t\t},\n\n\t\tcreateContainer: function (modal) {\n\t\t\tvar $container;\n\n\t\t\t$container = $('<div class=\"modal-scrollable\">')\n\t\t\t\t.css('z-index', getzIndex('modal', this.getOpenModals().length))\n\t\t\t\t.appendTo(this.$element);\n\n\t\t\tif (modal && modal.options.backdrop != 'static') {\n\t\t\t\t$container.on('click.modal', targetIsSelf(function (e) {\n\t\t\t\t\tmodal.hide();\n\t\t\t\t}));\n\t\t\t} else if (modal) {\n\t\t\t\t$container.on('click.modal', targetIsSelf(function (e) {\n\t\t\t\t\tmodal.attention();\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\treturn $container;\n\n\t\t},\n\n\t\tbackdrop: function (modal, callback) {\n\t\t\tvar animate = modal.$element.hasClass('fade') ? 'fade' : '',\n\t\t\t\tshowBackdrop = modal.options.backdrop &&\n\t\t\t\t\tthis.backdropCount < this.options.backdropLimit;\n\n\t\t\tif (modal.isShown && showBackdrop) {\n\t\t\t\tvar doAnimate = $.support.transition && animate && !this.$backdropHandle;\n\n\t\t\t\tmodal.$backdrop = this.createBackdrop(animate, modal.options.backdropTemplate);\n\n\t\t\t\tmodal.$backdrop.css('z-index', getzIndex( 'backdrop', this.getOpenModals().length ));\n\n\t\t\t\tif (doAnimate) modal.$backdrop[0].offsetWidth; // force reflow\n\n\t\t\t\tmodal.$backdrop.addClass('in');\n\n\t\t\t\tthis.backdropCount += 1;\n\n\t\t\t\tdoAnimate ?\n\t\t\t\t\tmodal.$backdrop.one($.support.transition.end, callback) :\n\t\t\t\t\tcallback();\n\n\t\t\t} else if (!modal.isShown && modal.$backdrop) {\n\t\t\t\tmodal.$backdrop.removeClass('in');\n\n\t\t\t\tthis.backdropCount -= 1;\n\n\t\t\t\tvar that = this;\n\n\t\t\t\t$.support.transition && modal.$element.hasClass('fade')?\n\t\t\t\t\tmodal.$backdrop.one($.support.transition.end, function () { that.removeBackdrop(modal) }) :\n\t\t\t\t\tthat.removeBackdrop(modal);\n\n\t\t\t} else if (callback) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t},\n\n\t\tremoveSpinner: function(){\n\t\t\tthis.$spinner && this.$spinner.remove();\n\t\t\tthis.$spinner = null;\n\t\t\tthis.isLoading = false;\n\t\t},\n\n\t\tremoveLoading: function () {\n\t\t\tthis.$backdropHandle && this.$backdropHandle.remove();\n\t\t\tthis.$backdropHandle = null;\n\t\t\tthis.removeSpinner();\n\t\t},\n\n\t\tloading: function (callback) {\n\t\t\tcallback = callback || function () { };\n\n\t\t\tthis.$element\n\t\t\t\t.toggleClass('modal-open', !this.isLoading || this.hasOpenModal())\n\t\t\t\t.toggleClass('page-overflow', $(window).height() < this.$element.height());\n\n\t\t\tif (!this.isLoading) {\n\n\t\t\t\tthis.$backdropHandle = this.createBackdrop('fade', this.options.backdropTemplate);\n\n\t\t\t\tthis.$backdropHandle[0].offsetWidth; // force reflow\n\n\t\t\t\tvar openModals = this.getOpenModals();\n\n\t\t\t\tthis.$backdropHandle\n\t\t\t\t\t.css('z-index', getzIndex('backdrop', openModals.length + 1))\n\t\t\t\t\t.addClass('in');\n\n\t\t\t\tvar $spinner = $(this.options.spinner)\n\t\t\t\t\t.css('z-index', getzIndex('modal', openModals.length + 1))\n\t\t\t\t\t.appendTo(this.$element)\n\t\t\t\t\t.addClass('in');\n\n\t\t\t\tthis.$spinner = $(this.createContainer())\n\t\t\t\t\t.append($spinner)\n\t\t\t\t\t.on('click.modalmanager', $.proxy(this.loading, this));\n\n\t\t\t\tthis.isLoading = true;\n\n\t\t\t\t$.support.transition ?\n\t\t\t\t\tthis.$backdropHandle.one($.support.transition.end, callback) :\n\t\t\t\t\tcallback();\n\n\t\t\t} else if (this.isLoading && this.$backdropHandle) {\n\t\t\t\tthis.$backdropHandle.removeClass('in');\n\n\t\t\t\tvar that = this;\n\t\t\t\t$.support.transition ?\n\t\t\t\t\tthis.$backdropHandle.one($.support.transition.end, function () { that.removeLoading() }) :\n\t\t\t\t\tthat.removeLoading();\n\n\t\t\t} else if (callback) {\n\t\t\t\tcallback(this.isLoading);\n\t\t\t}\n\t\t}\n\t};\n\n\t/* PRIVATE METHODS\n\t* ======================= */\n\n\t// computes and caches the zindexes\n\tvar getzIndex = (function () {\n\t\tvar zIndexFactor,\n\t\t\tbaseIndex = {};\n\n\t\treturn function (type, pos) {\n\n\t\t\tif (typeof zIndexFactor === 'undefined'){\n\t\t\t\tvar $baseModal = $('<div class=\"modal hide\" />').appendTo('body'),\n\t\t\t\t\t$baseBackdrop = $('<div class=\"modal-backdrop hide\" />').appendTo('body');\n\n\t\t\t\tbaseIndex['modal'] = +$baseModal.css('z-index');\n\t\t\t\tbaseIndex['backdrop'] = +$baseBackdrop.css('z-index');\n\t\t\t\tzIndexFactor = baseIndex['modal'] - baseIndex['backdrop'];\n\n\t\t\t\t$baseModal.remove();\n\t\t\t\t$baseBackdrop.remove();\n\t\t\t\t$baseBackdrop = $baseModal = null;\n\t\t\t}\n\n\t\t\treturn baseIndex[type] + (zIndexFactor * pos);\n\n\t\t}\n\t}());\n\n\t// make sure the event target is the modal itself in order to prevent\n\t// other components such as tabsfrom triggering the modal manager.\n\t// if Boostsrap namespaced events, this would not be needed.\n\tfunction targetIsSelf(callback){\n\t\treturn function (e) {\n\t\t\tif (e && this === e.target){\n\t\t\t\treturn callback.apply(this, arguments);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/* MODAL MANAGER PLUGIN DEFINITION\n\t* ======================= */\n\n\t$.fn.modalmanager = function (option, args) {\n\t\treturn this.each(function () {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('modalmanager');\n\n\t\t\tif (!data) $this.data('modalmanager', (data = new ModalManager(this, option)));\n\t\t\tif (typeof option === 'string') data[option].apply(data, [].concat(args))\n\t\t})\n\t};\n\n\t$.fn.modalmanager.defaults = {\n\t\tbackdropLimit: 999,\n\t\tresize: true,\n\t\tspinner: '<div class=\"loading-spinner fade\" style=\"width: 200px; margin-left: -100px;\"><div class=\"progress progress-striped active\"><div class=\"bar\" style=\"width: 100%;\"></div></div></div>',\n\t\tbackdropTemplate: '<div class=\"modal-backdrop\" />'\n\t};\n\n\t$.fn.modalmanager.Constructor = ModalManager\n\n\t// ModalManager handles the modal-open class so we need \n\t// to remove conflicting bootstrap 3 event handlers\n\t$(function () {\n\t\t$(document).off('show.bs.modal').off('hidden.bs.modal');\n\t});\n\n}(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/css/bootstrap-select.css",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\nselect.bs-select-hidden,\nselect.selectpicker {\n  display: none !important;\n}\n.bootstrap-select {\n  width: 220px \\0;\n  /*IE9 and below*/\n}\n.bootstrap-select > .dropdown-toggle {\n  width: 100%;\n  padding-right: 25px;\n  z-index: 1;\n}\n.bootstrap-select > .dropdown-toggle.bs-placeholder,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:active {\n  color: #999;\n}\n.bootstrap-select > select {\n  position: absolute !important;\n  bottom: 0;\n  left: 50%;\n  display: block !important;\n  width: 0.5px !important;\n  height: 100% !important;\n  padding: 0 !important;\n  opacity: 0 !important;\n  border: none;\n}\n.bootstrap-select > select.mobile-device {\n  top: 0;\n  left: 0;\n  display: block !important;\n  width: 100% !important;\n  z-index: 2;\n}\n.has-error .bootstrap-select .dropdown-toggle,\n.error .bootstrap-select .dropdown-toggle {\n  border-color: #b94a48;\n}\n.bootstrap-select.fit-width {\n  width: auto !important;\n}\n.bootstrap-select:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n  width: 220px;\n}\n.bootstrap-select .dropdown-toggle:focus {\n  outline: thin dotted #333333 !important;\n  outline: 5px auto -webkit-focus-ring-color !important;\n  outline-offset: -2px;\n}\n.bootstrap-select.form-control {\n  margin-bottom: 0;\n  padding: 0;\n  border: none;\n}\n.bootstrap-select.form-control:not([class*=\"col-\"]) {\n  width: 100%;\n}\n.bootstrap-select.form-control.input-group-btn {\n  z-index: auto;\n}\n.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.bootstrap-select.btn-group:not(.input-group-btn),\n.bootstrap-select.btn-group[class*=\"col-\"] {\n  float: none;\n  display: inline-block;\n  margin-left: 0;\n}\n.bootstrap-select.btn-group.dropdown-menu-right,\n.bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right,\n.row .bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right {\n  float: right;\n}\n.form-inline .bootstrap-select.btn-group,\n.form-horizontal .bootstrap-select.btn-group,\n.form-group .bootstrap-select.btn-group {\n  margin-bottom: 0;\n}\n.form-group-lg .bootstrap-select.btn-group.form-control,\n.form-group-sm .bootstrap-select.btn-group.form-control {\n  padding: 0;\n}\n.form-inline .bootstrap-select.btn-group .form-control {\n  width: 100%;\n}\n.bootstrap-select.btn-group.disabled,\n.bootstrap-select.btn-group > .disabled {\n  cursor: not-allowed;\n}\n.bootstrap-select.btn-group.disabled:focus,\n.bootstrap-select.btn-group > .disabled:focus {\n  outline: none !important;\n}\n.bootstrap-select.btn-group.bs-container {\n  position: absolute;\n  height: 0 !important;\n  padding: 0 !important;\n}\n.bootstrap-select.btn-group.bs-container .dropdown-menu {\n  z-index: 1060;\n}\n.bootstrap-select.btn-group .dropdown-toggle .filter-option {\n  display: inline-block;\n  overflow: hidden;\n  width: 100%;\n  text-align: left;\n}\n.bootstrap-select.btn-group .dropdown-toggle .caret {\n  position: absolute;\n  top: 50%;\n  right: 12px;\n  margin-top: -2px;\n  vertical-align: middle;\n}\n.bootstrap-select.btn-group[class*=\"col-\"] .dropdown-toggle {\n  width: 100%;\n}\n.bootstrap-select.btn-group .dropdown-menu {\n  min-width: 100%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bootstrap-select.btn-group .dropdown-menu.inner {\n  position: static;\n  float: none;\n  border: 0;\n  padding: 0;\n  margin: 0;\n  border-radius: 0;\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li {\n  position: relative;\n}\n.bootstrap-select.btn-group .dropdown-menu li.active small {\n  color: #fff;\n}\n.bootstrap-select.btn-group .dropdown-menu li.disabled a {\n  cursor: not-allowed;\n}\n.bootstrap-select.btn-group .dropdown-menu li a {\n  cursor: pointer;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a.opt {\n  position: relative;\n  padding-left: 2.25em;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.check-mark {\n  display: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.text {\n  display: inline-block;\n}\n.bootstrap-select.btn-group .dropdown-menu li small {\n  padding-left: 0.5em;\n}\n.bootstrap-select.btn-group .dropdown-menu .notify {\n  position: absolute;\n  bottom: 5px;\n  width: 96%;\n  margin: 0 2%;\n  min-height: 26px;\n  padding: 3px 5px;\n  background: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  pointer-events: none;\n  opacity: 0.9;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bootstrap-select.btn-group .no-results {\n  padding: 3px;\n  background: #f5f5f5;\n  margin: 0 5px;\n  white-space: nowrap;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option {\n  position: static;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret {\n  position: static;\n  top: auto;\n  margin-top: -1px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark {\n  position: absolute;\n  display: inline-block;\n  right: 15px;\n  margin-top: 5px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {\n  margin-right: 34px;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle {\n  z-index: 1061;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:before {\n  content: '';\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid rgba(204, 204, 204, 0.2);\n  position: absolute;\n  bottom: -4px;\n  left: 9px;\n  display: none;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:after {\n  content: '';\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid white;\n  position: absolute;\n  bottom: -4px;\n  left: 10px;\n  display: none;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {\n  bottom: auto;\n  top: -3px;\n  border-top: 7px solid rgba(204, 204, 204, 0.2);\n  border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {\n  bottom: auto;\n  top: -3px;\n  border-top: 6px solid white;\n  border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {\n  right: 12px;\n  left: auto;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {\n  right: 13px;\n  left: auto;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {\n  display: block;\n}\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n  padding: 4px 8px;\n}\n.bs-actionsbox {\n  width: 100%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bs-actionsbox .btn-group button {\n  width: 50%;\n}\n.bs-donebutton {\n  float: left;\n  width: 100%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n.bs-donebutton .btn-group button {\n  width: 100%;\n}\n.bs-searchbox + .bs-actionsbox {\n  padding: 0 8px 4px;\n}\n.bs-searchbox .form-control {\n  margin-bottom: 0;\n  width: 100%;\n  float: none;\n}\n/*# sourceMappingURL=bootstrap-select.css.map */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-ar_AR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n/*!\n * Translated default messages for bootstrap-select.\n * Locale: AR (Arabic)\n * Author: Yasser Lotfy <y_l@alive.com>\n */\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'لم يتم إختيار شئ',\n    noneResultsText: 'لا توجد نتائج مطابقة لـ {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} خيار تم إختياره\" : \"{0} خيارات تمت إختيارها\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'تخطى الحد المسموح ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح ({n} خيارات بحد أقصى)',\n        (numGroup == 1) ? 'تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)'\n      ];\n    },\n    selectAllText: 'إختيار الجميع',\n    deselectAllText: 'إلغاء إختيار الجميع',\n    multipleSeparator: '، '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-bg_BG.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Нищо избрано',\n    noneResultsText: 'Няма резултат за {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} избран елемент\" : \"{0} избрани елемента\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Лимита е достигнат ({n} елемент максимум)' : 'Лимита е достигнат ({n} елемента максимум)',\n        (numGroup == 1) ? 'Груповия лимит е достигнат ({n} елемент максимум)' : 'Груповия лимит е достигнат ({n} елемента максимум)'\n      ];\n    },\n    selectAllText: 'Избери всички',\n    deselectAllText: 'Размаркирай всички',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-cro_CRO.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Odaberite stavku',\n    noneResultsText: 'Nema rezultata pretrage {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} stavka selektirana\" : \"{0} stavke selektirane\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit je postignut ({n} stvar maximalno)' : 'Limit je postignut ({n} stavke maksimalno)',\n        (numGroup == 1) ? 'Grupni limit je postignut ({n} stvar maksimalno)' : 'Grupni limit je postignut ({n} stavke maksimalno)'\n      ];\n    },\n    selectAllText: 'Selektiraj sve',\n    deselectAllText: 'Deselektiraj sve',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-cs_CZ.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nic není vybráno',\n    noneResultsText: 'Žádné výsledky {0}',\n    countSelectedText: 'Označeno {0} z {1}',\n    maxOptionsText: ['Limit překročen ({n} {var} max)', 'Limit skupiny překročen ({n} {var} max)', ['položek', 'položka']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-da_DK.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Intet valgt',\n    noneResultsText: 'Ingen resultater fundet {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} valgt\" : \"{0} valgt\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Begrænsning nået (max {n} valgt)' : 'Begrænsning nået (max {n} valgte)',\n        (numGroup == 1) ? 'Gruppe-begrænsning nået (max {n} valgt)' : 'Gruppe-begrænsning nået (max {n} valgte)'\n      ];\n    },\n    selectAllText: 'Markér alle',\n    deselectAllText: 'Afmarkér alle',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-de_DE.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Bitte wählen...',\n    noneResultsText: 'Keine Ergebnisse für {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} Element ausgewählt\" : \"{0} Elemente ausgewählt\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit erreicht ({n} Element max.)' : 'Limit erreicht ({n} Elemente max.)',\n        (numGroup == 1) ? 'Gruppen-Limit erreicht ({n} Element max.)' : 'Gruppen-Limit erreicht ({n} Elemente max.)'\n      ];\n    },\n    selectAllText: 'Alles auswählen',\n    deselectAllText: 'Nichts auswählen',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nothing selected',\n    noneResultsText: 'No results match {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} item selected\" : \"{0} items selected\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\n        (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\n      ];\n    },\n    selectAllText: 'Select All',\n    deselectAllText: 'Deselect All',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-es_CL.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'No hay selección',\n    noneResultsText: 'No hay resultados {0}',\n    countSelectedText: 'Seleccionados {0} de {1}',\n    maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-eu.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Hautapenik ez',\n    noneResultsText: 'Emaitzarik ez {0}',\n    countSelectedText: '{1}(e)tik {0} hautatuta',\n    maxOptionsText: ['Mugara iritsita ({n} {var} gehienez)', 'Taldearen mugara iritsita ({n} {var} gehienez)', ['elementu', 'elementu']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-fa_IR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n    $.fn.selectpicker.defaults = {\n        noneSelectedText: 'چیزی انتخاب نشده است',\n        noneResultsText: 'هیج مشابهی برای {0} پیدا نشد',\n        countSelectedText: \"{0} از {1} مورد انتخاب شده\",\n        maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'],\n        selectAllText: 'انتخاب همه',\n        deselectAllText: 'انتخاب هیچ کدام',\n        multipleSeparator: ', '\n    };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-fi_FI.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Ei valintoja',\n    noneResultsText: 'Ei hakutuloksia {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} valittu\" : \"{0} valitut\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Valintojen maksimimäärä ({n} saavutettu)' : 'Valintojen maksimimäärä ({n} saavutettu)',\n        (numGroup == 1) ? 'Ryhmän maksimimäärä ({n} saavutettu)' : 'Ryhmän maksimimäärä ({n} saavutettu)'\n      ];\n    },\n    selectAllText: 'Valitse kaikki',\n    deselectAllText: 'Poista kaikki',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-fr_FR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Aucune sélection',\n    noneResultsText: 'Aucun résultat pour {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected > 1) ? \"{0} éléments sélectionnés\" : \"{0} élément sélectionné\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll > 1) ? 'Limite atteinte ({n} éléments max)' : 'Limite atteinte ({n} élément max)',\n        (numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' : 'Limite du groupe atteinte ({n} élément max)'\n      ];\n    },\n    multipleSeparator: ', ',\n    selectAllText: 'Tout Sélectionner',\n    deselectAllText: 'Tout Dé-selectionner',\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-hu_HU.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Válasszon!',\n    noneResultsText: 'Nincs találat {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return '{0} elem kiválasztva';\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        'Legfeljebb {n} elem választható',\n        'A csoportban legfeljebb {n} elem választható'\n      ];\n    },\n    selectAllText: 'Mind',\n    deselectAllText: 'Egyik sem',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-id_ID.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Tidak ada yang dipilih',\n    noneResultsText: 'Tidak ada yang cocok {0}',\n    countSelectedText: '{0} terpilih',\n    maxOptionsText: ['Mencapai batas (maksimum {n})', 'Mencapai batas grup (maksimum {n})'],\n    selectAllText: 'Pilih Semua',\n    deselectAllText: 'Hapus Semua',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-it_IT.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nessuna selezione',\n    noneResultsText: 'Nessun risultato per {0}',\n    countSelectedText: 'Selezionati {0} di {1}',\n    maxOptionsText: ['Limite raggiunto ({n} {var} max)', 'Limite del gruppo raggiunto ({n} {var} max)', ['elementi', 'elemento']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-ko_KR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: '항목을 선택해주세요',\n    noneResultsText: '{0} 검색 결과가 없습니다',\n    countSelectedText: function (numSelected, numTotal) {\n      return \"{0}개를 선택하였습니다\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        '{n}개까지 선택 가능합니다',\n        '해당 그룹은 {n}개까지 선택 가능합니다'\n      ];\n    },\n    selectAllText: '전체선택',\n    deselectAllText: '전체해제',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-lt_LT.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Niekas nepasirinkta',\n    noneResultsText: 'Niekas nesutapo su {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} elementas pasirinktas\" : \"{0} elementai(-ų) pasirinkta\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Pasiekta riba ({n} elementas daugiausiai)' : 'Riba pasiekta ({n} elementai(-ų) daugiausiai)',\n        (numGroup == 1) ? 'Grupės riba pasiekta ({n} elementas daugiausiai)' : 'Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)'\n      ];\n    },\n    selectAllText: 'Pasirinkti visus',\n    deselectAllText: 'Atmesti visus',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-nb_NO.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Ingen valgt',\n    noneResultsText: 'Søket gir ingen treff {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} alternativ valgt\" : \"{0} alternativer valgt\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Grense nådd (maks {n} valg)' : 'Grense nådd (maks {n} valg)',\n        (numGroup == 1) ? 'Grense for grupper nådd (maks {n} grupper)' : 'Grense for grupper nådd (maks {n} grupper)'\n      ];\n    },\n    selectAllText: 'Merk alle',\n    deselectAllText: 'Fjern alle',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-nl_NL.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Niets geselecteerd',\n    noneResultsText: 'Geen resultaten gevonden voor {0}',\n    countSelectedText: '{0} van {1} geselecteerd',\n    maxOptionsText: ['Limiet bereikt ({n} {var} max)', 'Groep limiet bereikt ({n} {var} max)', ['items', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-pl_PL.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nic nie zaznaczono',\n    noneResultsText: 'Brak wyników wyszukiwania {0}',\n    countSelectedText: 'Zaznaczono {0} z {1}',\n    maxOptionsText: ['Osiągnięto limit ({n} {var} max)', 'Limit grupy osiągnięty ({n} {var} max)', ['elementy', 'element']],\n    selectAll: 'Zaznacz wszystkie',\n    deselectAll: 'Odznacz wszystkie',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-pt_BR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nada selecionado',\n    noneResultsText: 'Nada encontrado contendo {0}',\n    countSelectedText: 'Selecionado {0} de {1}',\n    maxOptionsText: ['Limite excedido (máx. {n} {var})', 'Limite do grupo excedido (máx. {n} {var})', ['itens', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-pt_PT.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n$.fn.selectpicker.defaults = {\nnoneSelectedText: 'Nenhum seleccionado',\nnoneResultsText: 'Sem resultados contendo {0}',\ncountSelectedText: 'Selecionado {0} de {1}',\nmaxOptionsText: ['Limite ultrapassado (máx. {n} {var})', 'Limite de seleções ultrapassado (máx. {n} {var})', ['itens', 'item']],\nmultipleSeparator: ', '\n};\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-ro_RO.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nu a fost selectat nimic',\n    noneResultsText: 'Nu exista niciun rezultat {0}',\n    countSelectedText: '{0} din {1} selectat(e)',\n    maxOptionsText: ['Limita a fost atinsa ({n} {var} max)', 'Limita de grup a fost atinsa ({n} {var} max)', ['iteme', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Ничего не выбрано',\n    noneResultsText: 'Совпадений не найдено {0}',\n    countSelectedText: 'Выбрано {0} из {1}',\n    maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['items', 'item']],\n    doneButtonText: 'Закрыть',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-sk_SK.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Vyberte zo zoznamu',\n    noneResultsText: 'Pre výraz {0} neboli nájdené žiadne výsledky',\n    countSelectedText: 'Vybrané {0} z {1}',\n    maxOptionsText: ['Limit prekročený ({n} {var} max)', 'Limit skupiny prekročený ({n} {var} max)', ['položiek', 'položka']],\n    selectAllText: 'Vybrať všetky',\n    deselectAllText: 'Zrušiť výber',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-sl_SI.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Nič izbranega',\n    noneResultsText: 'Ni zadetkov za {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      \"Število izbranih: {0}\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        'Omejitev dosežena (max. izbranih: {n})',\n        'Omejitev skupine dosežena (max. izbranih: {n})'\n      ];\n    },\n    selectAllText: 'Izberi vse',\n    deselectAllText: 'Počisti izbor',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-sv_SE.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Inget valt',\n    noneResultsText: 'Inget sökresultat matchar {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected === 1) ? \"{0} alternativ valt\" : \"{0} alternativ valda\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        'Gräns uppnåd (max {n} alternativ)',\n        'Gräns uppnåd (max {n} gruppalternativ)'\n      ];\n    },\n    selectAllText: 'Markera alla',\n    deselectAllText: 'Avmarkera alla',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-tr_TR.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Hiçbiri seçilmedi',\n    noneResultsText: 'Hiçbir sonuç bulunamadı {0}',\n    countSelectedText: function (numSelected, numTotal) {\n      return (numSelected == 1) ? \"{0} öğe seçildi\" : \"{0} öğe seçildi\";\n    },\n    maxOptionsText: function (numAll, numGroup) {\n      return [\n        (numAll == 1) ? 'Limit aşıldı (maksimum {n} sayıda öğe )' : 'Limit aşıldı (maksimum {n} sayıda öğe)',\n        (numGroup == 1) ? 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' : 'Grup limiti aşıldı (maksimum {n} sayıda öğe)'\n      ];\n    },\n    selectAllText: 'Tümünü Seç',\n    deselectAllText: 'Seçiniz',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-ua_UA.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: 'Нічого не вибрано',\n    noneResultsText: 'Збігів не знайдено {0}',\n    countSelectedText: 'Вибрано {0} із {1}',\n    maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: '没有选中任何项',\n    noneResultsText: '没有找到匹配项',\n    countSelectedText: '选中{1}中的{0}项',\n    maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'],\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_TW.js",
    "content": "/*!\n * Bootstrap-select v1.11.0 (http://silviomoreto.github.io/bootstrap-select)\n *\n * Copyright 2013-2016 bootstrap-select\n * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\n */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([\"jquery\"], function (a0) {\n      return (factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    factory(jQuery);\n  }\n}(this, function (jQuery) {\n\n(function ($) {\n  $.fn.selectpicker.defaults = {\n    noneSelectedText: '沒有選取任何項目',\n    noneResultsText: '沒有找到符合的結果',\n    countSelectedText: '已經選取{0}個項目',\n    maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'],\n    selectAllText: '選取全部',\n    deselectAllText: '全部取消',\n    multipleSeparator: ', '\n  };\n})(jQuery);\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-sweetalert/sweetalert.css",
    "content": "@keyframes showSweetAlert {\n  0% {\n    transform: scale(0.7);\n  }\n  45% {\n    transform: scale(1.05);\n  }\n  80% {\n    transform: scale(0.95);\n  }\n  100% {\n    transform: scale(1);\n  }\n}\n@keyframes hideSweetAlert {\n  0% {\n    transform: scale(1);\n  }\n  100% {\n    transform: scale(0.5);\n  }\n}\n@keyframes slideFromTop {\n  0% {\n    top: 0%;\n  }\n  100% {\n    top: 50%;\n  }\n}\n@keyframes slideToTop {\n  0% {\n    top: 50%;\n  }\n  100% {\n    top: 0%;\n  }\n}\n@keyframes slideFromBottom {\n  0% {\n    top: 70%;\n  }\n  100% {\n    top: 50%;\n  }\n}\n@keyframes slideToBottom {\n  0% {\n    top: 50%;\n  }\n  100% {\n    top: 70%;\n  }\n}\n.showSweetAlert {\n  animation: showSweetAlert 0.3s;\n}\n.showSweetAlert[data-animation=none] {\n  animation: none;\n}\n.showSweetAlert[data-animation=slide-from-top] {\n  animation: slideFromTop 0.3s;\n}\n.showSweetAlert[data-animation=slide-from-bottom] {\n  animation: slideFromBottom 0.3s;\n}\n.hideSweetAlert {\n  animation: hideSweetAlert 0.3s;\n}\n.hideSweetAlert[data-animation=none] {\n  animation: none;\n}\n.hideSweetAlert[data-animation=slide-from-top] {\n  animation: slideToTop 0.3s;\n}\n.hideSweetAlert[data-animation=slide-from-bottom] {\n  animation: slideToBottom 0.3s;\n}\n@keyframes animateSuccessTip {\n  0% {\n    width: 0;\n    left: 1px;\n    top: 19px;\n  }\n  54% {\n    width: 0;\n    left: 1px;\n    top: 19px;\n  }\n  70% {\n    width: 50px;\n    left: -8px;\n    top: 37px;\n  }\n  84% {\n    width: 17px;\n    left: 21px;\n    top: 48px;\n  }\n  100% {\n    width: 25px;\n    left: 14px;\n    top: 45px;\n  }\n}\n@keyframes animateSuccessLong {\n  0% {\n    width: 0;\n    right: 46px;\n    top: 54px;\n  }\n  65% {\n    width: 0;\n    right: 46px;\n    top: 54px;\n  }\n  84% {\n    width: 55px;\n    right: 0px;\n    top: 35px;\n  }\n  100% {\n    width: 47px;\n    right: 8px;\n    top: 38px;\n  }\n}\n@keyframes rotatePlaceholder {\n  0% {\n    transform: rotate(-45deg);\n  }\n  5% {\n    transform: rotate(-45deg);\n  }\n  12% {\n    transform: rotate(-405deg);\n  }\n  100% {\n    transform: rotate(-405deg);\n  }\n}\n.animateSuccessTip {\n  animation: animateSuccessTip 0.75s;\n}\n.animateSuccessLong {\n  animation: animateSuccessLong 0.75s;\n}\n.sa-icon.sa-success.animate::after {\n  animation: rotatePlaceholder 4.25s ease-in;\n}\n@keyframes animateErrorIcon {\n  0% {\n    transform: rotateX(100deg);\n    opacity: 0;\n  }\n  100% {\n    transform: rotateX(0deg);\n    opacity: 1;\n  }\n}\n.animateErrorIcon {\n  animation: animateErrorIcon 0.5s;\n}\n@keyframes animateXMark {\n  0% {\n    transform: scale(0.4);\n    margin-top: 26px;\n    opacity: 0;\n  }\n  50% {\n    transform: scale(0.4);\n    margin-top: 26px;\n    opacity: 0;\n  }\n  80% {\n    transform: scale(1.15);\n    margin-top: -6px;\n  }\n  100% {\n    transform: scale(1);\n    margin-top: 0;\n    opacity: 1;\n  }\n}\n.animateXMark {\n  animation: animateXMark 0.5s;\n}\n@keyframes pulseWarning {\n  0% {\n    border-color: #F8D486;\n  }\n  100% {\n    border-color: #F8BB86;\n  }\n}\n.pulseWarning {\n  animation: pulseWarning 0.75s infinite alternate;\n}\n@keyframes pulseWarningIns {\n  0% {\n    background-color: #F8D486;\n  }\n  100% {\n    background-color: #F8BB86;\n  }\n}\n.pulseWarningIns {\n  animation: pulseWarningIns 0.75s infinite alternate;\n}\n@keyframes rotate-loading {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\nbody.stop-scrolling {\n  height: 100%;\n  overflow: hidden;\n}\n.sweet-overlay {\n  background-color: rgba(0, 0, 0, 0.4);\n  position: fixed;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  display: none;\n  z-index: 10040;\n}\n.sweet-alert {\n  background-color: #ffffff;\n  width: 478px;\n  padding: 17px;\n  border-radius: 5px;\n  text-align: center;\n  position: fixed;\n  left: 50%;\n  top: 50%;\n  margin-left: -256px;\n  margin-top: -200px;\n  overflow: hidden;\n  display: none;\n  z-index: 12000;\n}\n@media all and (max-width: 767px) {\n  .sweet-alert {\n    width: auto;\n    margin-left: 0;\n    margin-right: 0;\n    left: 15px;\n    right: 15px;\n  }\n}\n.sweet-alert .form-group {\n  display: none;\n}\n.sweet-alert .form-group .sa-input-error {\n  display: none;\n}\n.sweet-alert.show-input .form-group {\n  display: block;\n}\n.sweet-alert .sa-confirm-button-container {\n  display: inline-block;\n  position: relative;\n}\n.sweet-alert .la-ball-fall {\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  margin-left: -27px;\n  margin-top: -9px;\n  opacity: 0;\n  visibility: hidden;\n}\n.sweet-alert button[disabled] {\n  opacity: .6;\n  cursor: default;\n}\n.sweet-alert button.confirm[disabled] {\n  color: transparent;\n}\n.sweet-alert button.confirm[disabled] ~ .la-ball-fall {\n  opacity: 1;\n  visibility: visible;\n  transition-delay: 0s;\n}\n.sweet-alert .sa-icon {\n  width: 80px;\n  height: 80px;\n  border: 4px solid gray;\n  border-radius: 50%;\n  margin: 20px auto;\n  position: relative;\n  box-sizing: content-box;\n}\n.sweet-alert .sa-icon.sa-error {\n  border-color: #d43f3a;\n}\n.sweet-alert .sa-icon.sa-error .sa-x-mark {\n  position: relative;\n  display: block;\n}\n.sweet-alert .sa-icon.sa-error .sa-line {\n  position: absolute;\n  height: 5px;\n  width: 47px;\n  background-color: #d9534f;\n  display: block;\n  top: 37px;\n  border-radius: 2px;\n}\n.sweet-alert .sa-icon.sa-error .sa-line.sa-left {\n  transform: rotate(45deg);\n  left: 17px;\n}\n.sweet-alert .sa-icon.sa-error .sa-line.sa-right {\n  transform: rotate(-45deg);\n  right: 16px;\n}\n.sweet-alert .sa-icon.sa-warning {\n  border-color: #eea236;\n}\n.sweet-alert .sa-icon.sa-warning .sa-body {\n  position: absolute;\n  width: 5px;\n  height: 47px;\n  left: 50%;\n  top: 10px;\n  border-radius: 2px;\n  margin-left: -2px;\n  background-color: #f0ad4e;\n}\n.sweet-alert .sa-icon.sa-warning .sa-dot {\n  position: absolute;\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  margin-left: -3px;\n  left: 50%;\n  bottom: 10px;\n  background-color: #f0ad4e;\n}\n.sweet-alert .sa-icon.sa-info {\n  border-color: #46b8da;\n}\n.sweet-alert .sa-icon.sa-info::before {\n  content: \"\";\n  position: absolute;\n  width: 5px;\n  height: 29px;\n  left: 50%;\n  bottom: 17px;\n  border-radius: 2px;\n  margin-left: -2px;\n  background-color: #5bc0de;\n}\n.sweet-alert .sa-icon.sa-info::after {\n  content: \"\";\n  position: absolute;\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  margin-left: -3px;\n  top: 19px;\n  background-color: #5bc0de;\n}\n.sweet-alert .sa-icon.sa-success {\n  border-color: #4cae4c;\n}\n.sweet-alert .sa-icon.sa-success::before,\n.sweet-alert .sa-icon.sa-success::after {\n  content: '';\n  border-radius: 50%;\n  position: absolute;\n  width: 60px;\n  height: 120px;\n  background: #ffffff;\n  transform: rotate(45deg);\n}\n.sweet-alert .sa-icon.sa-success::before {\n  border-radius: 120px 0 0 120px;\n  top: -7px;\n  left: -33px;\n  transform: rotate(-45deg);\n  transform-origin: 60px 60px;\n}\n.sweet-alert .sa-icon.sa-success::after {\n  border-radius: 0 120px 120px 0;\n  top: -11px;\n  left: 30px;\n  transform: rotate(-45deg);\n  transform-origin: 0px 60px;\n}\n.sweet-alert .sa-icon.sa-success .sa-placeholder {\n  width: 80px;\n  height: 80px;\n  border: 4px solid rgba(92, 184, 92, 0.2);\n  border-radius: 50%;\n  box-sizing: content-box;\n  position: absolute;\n  left: -4px;\n  top: -4px;\n  z-index: 2;\n}\n.sweet-alert .sa-icon.sa-success .sa-fix {\n  width: 5px;\n  height: 90px;\n  background-color: #ffffff;\n  position: absolute;\n  left: 28px;\n  top: 8px;\n  z-index: 1;\n  transform: rotate(-45deg);\n}\n.sweet-alert .sa-icon.sa-success .sa-line {\n  height: 5px;\n  background-color: #5cb85c;\n  display: block;\n  border-radius: 2px;\n  position: absolute;\n  z-index: 2;\n}\n.sweet-alert .sa-icon.sa-success .sa-line.sa-tip {\n  width: 25px;\n  left: 14px;\n  top: 46px;\n  transform: rotate(45deg);\n}\n.sweet-alert .sa-icon.sa-success .sa-line.sa-long {\n  width: 47px;\n  right: 8px;\n  top: 38px;\n  transform: rotate(-45deg);\n}\n.sweet-alert .sa-icon.sa-custom {\n  background-size: contain;\n  border-radius: 0;\n  border: none;\n  background-position: center center;\n  background-repeat: no-repeat;\n}\n.sweet-alert .btn-default:focus {\n  border-color: #cccccc;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(204, 204, 204, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(204, 204, 204, 0.6);\n}\n.sweet-alert .btn-success:focus {\n  border-color: #4cae4c;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(76, 174, 76, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(76, 174, 76, 0.6);\n}\n.sweet-alert .btn-info:focus {\n  border-color: #46b8da;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 184, 218, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(70, 184, 218, 0.6);\n}\n.sweet-alert .btn-danger:focus {\n  border-color: #d43f3a;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(212, 63, 58, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(212, 63, 58, 0.6);\n}\n.sweet-alert .btn-warning:focus {\n  border-color: #eea236;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238, 162, 54, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238, 162, 54, 0.6);\n}\n.sweet-alert button::-moz-focus-inner {\n  border: 0;\n}\n/*!\n * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)\n * Copyright 2015 Daniel Cardoso <@DanielCardoso>\n * Licensed under MIT\n */\n.la-ball-fall,\n.la-ball-fall > div {\n  position: relative;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.la-ball-fall {\n  display: block;\n  font-size: 0;\n  color: #fff;\n}\n.la-ball-fall.la-dark {\n  color: #333;\n}\n.la-ball-fall > div {\n  display: inline-block;\n  float: none;\n  background-color: currentColor;\n  border: 0 solid currentColor;\n}\n.la-ball-fall {\n  width: 54px;\n  height: 18px;\n}\n.la-ball-fall > div {\n  width: 10px;\n  height: 10px;\n  margin: 4px;\n  border-radius: 100%;\n  opacity: 0;\n  -webkit-animation: ball-fall 1s ease-in-out infinite;\n  -moz-animation: ball-fall 1s ease-in-out infinite;\n  -o-animation: ball-fall 1s ease-in-out infinite;\n  animation: ball-fall 1s ease-in-out infinite;\n}\n.la-ball-fall > div:nth-child(1) {\n  -webkit-animation-delay: -200ms;\n  -moz-animation-delay: -200ms;\n  -o-animation-delay: -200ms;\n  animation-delay: -200ms;\n}\n.la-ball-fall > div:nth-child(2) {\n  -webkit-animation-delay: -100ms;\n  -moz-animation-delay: -100ms;\n  -o-animation-delay: -100ms;\n  animation-delay: -100ms;\n}\n.la-ball-fall > div:nth-child(3) {\n  -webkit-animation-delay: 0ms;\n  -moz-animation-delay: 0ms;\n  -o-animation-delay: 0ms;\n  animation-delay: 0ms;\n}\n.la-ball-fall.la-sm {\n  width: 26px;\n  height: 8px;\n}\n.la-ball-fall.la-sm > div {\n  width: 4px;\n  height: 4px;\n  margin: 2px;\n}\n.la-ball-fall.la-2x {\n  width: 108px;\n  height: 36px;\n}\n.la-ball-fall.la-2x > div {\n  width: 20px;\n  height: 20px;\n  margin: 8px;\n}\n.la-ball-fall.la-3x {\n  width: 162px;\n  height: 54px;\n}\n.la-ball-fall.la-3x > div {\n  width: 30px;\n  height: 30px;\n  margin: 12px;\n}\n/*\n * Animation\n */\n@-webkit-keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n@-moz-keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -moz-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -moz-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -moz-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -moz-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n@-o-keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -o-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -o-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n@keyframes ball-fall {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(-145%);\n    -moz-transform: translateY(-145%);\n    -o-transform: translateY(-145%);\n    transform: translateY(-145%);\n  }\n  10% {\n    opacity: .5;\n  }\n  20% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    -moz-transform: translateY(0);\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  80% {\n    opacity: 1;\n    -webkit-transform: translateY(0);\n    -moz-transform: translateY(0);\n    -o-transform: translateY(0);\n    transform: translateY(0);\n  }\n  90% {\n    opacity: .5;\n  }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(145%);\n    -moz-transform: translateY(145%);\n    -o-transform: translateY(145%);\n    transform: translateY(145%);\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-sweetalert/sweetalert.js",
    "content": ";(function(window, document, undefined) {\n\"use strict\";\n\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar defaultParams = {\n  title: '',\n  text: '',\n  type: null,\n  allowOutsideClick: false,\n  showConfirmButton: true,\n  showCancelButton: false,\n  closeOnConfirm: true,\n  closeOnCancel: true,\n  confirmButtonText: 'OK',\n  confirmButtonClass: 'btn-primary',\n  cancelButtonText: 'Cancel',\n  cancelButtonClass: 'btn-default',\n  containerClass: '',\n  titleClass: '',\n  textClass: '',\n  imageUrl: null,\n  imageSize: null,\n  timer: null,\n  customClass: '',\n  html: false,\n  animation: true,\n  allowEscapeKey: true,\n  inputType: 'text',\n  inputPlaceholder: '',\n  inputValue: '',\n  showLoaderOnConfirm: false\n};\n\nexports.default = defaultParams;\n\n},{}],2:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.handleCancel = exports.handleConfirm = exports.handleButton = undefined;\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar _handleDom = require('./handle-dom');\n\n/*\n * User clicked on \"Confirm\"/\"OK\" or \"Cancel\"\n */\nvar handleButton = function handleButton(event, params, modal) {\n  var e = event || window.event;\n  var target = e.target || e.srcElement;\n\n  var targetedConfirm = target.className.indexOf('confirm') !== -1;\n  var targetedOverlay = target.className.indexOf('sweet-overlay') !== -1;\n  var modalIsVisible = (0, _handleDom.hasClass)(modal, 'visible');\n  var doneFunctionExists = params.doneFunction && modal.getAttribute('data-has-done-function') === 'true';\n\n  // Since the user can change the background-color of the confirm button programmatically,\n  // we must calculate what the color should be on hover/active\n  var normalColor, hoverColor, activeColor;\n  if (targetedConfirm && params.confirmButtonColor) {\n    normalColor = params.confirmButtonColor;\n    hoverColor = colorLuminance(normalColor, -0.04);\n    activeColor = colorLuminance(normalColor, -0.14);\n  }\n\n  function shouldSetConfirmButtonColor(color) {\n    if (targetedConfirm && params.confirmButtonColor) {\n      target.style.backgroundColor = color;\n    }\n  }\n\n  switch (e.type) {\n    case 'click':\n      var clickedOnModal = modal === target;\n      var clickedOnModalChild = (0, _handleDom.isDescendant)(modal, target);\n\n      // Ignore click outside if allowOutsideClick is false\n      if (!clickedOnModal && !clickedOnModalChild && modalIsVisible && !params.allowOutsideClick) {\n        break;\n      }\n\n      if (targetedConfirm && doneFunctionExists && modalIsVisible) {\n        handleConfirm(modal, params);\n      } else if (doneFunctionExists && modalIsVisible || targetedOverlay) {\n        handleCancel(modal, params);\n      } else if ((0, _handleDom.isDescendant)(modal, target) && target.tagName === 'BUTTON') {\n        sweetAlert.close();\n      }\n      break;\n  }\n};\n\n/*\n *  User clicked on \"Confirm\"/\"OK\"\n */\nvar handleConfirm = function handleConfirm(modal, params) {\n  var callbackValue = true;\n\n  if ((0, _handleDom.hasClass)(modal, 'show-input')) {\n    callbackValue = modal.querySelector('input').value;\n\n    if (!callbackValue) {\n      callbackValue = '';\n    }\n  }\n\n  params.doneFunction(callbackValue);\n\n  if (params.closeOnConfirm) {\n    sweetAlert.close();\n  }\n  // Disable cancel and confirm button if the parameter is true\n  if (params.showLoaderOnConfirm) {\n    sweetAlert.disableButtons();\n  }\n};\n\n/*\n *  User clicked on \"Cancel\"\n */\nvar handleCancel = function handleCancel(modal, params) {\n  // Check if callback function expects a parameter (to track cancel actions)\n  var functionAsStr = String(params.doneFunction).replace(/\\s/g, '');\n  var functionHandlesCancel = functionAsStr.substring(0, 9) === 'function(' && functionAsStr.substring(9, 10) !== ')';\n\n  if (functionHandlesCancel) {\n    params.doneFunction(false);\n  }\n\n  if (params.closeOnCancel) {\n    sweetAlert.close();\n  }\n};\n\nexports.handleButton = handleButton;\nexports.handleConfirm = handleConfirm;\nexports.handleCancel = handleCancel;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar hasClass = function hasClass(elem, className) {\n\tif (elem == null) {\n\t\treturn false;\n\t}\n  return new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');\n};\n\nvar addClass = function addClass(elem, className) {\n  if (!hasClass(elem, className)) {\n    elem.className += ' ' + className;\n  }\n};\n\nvar removeClass = function removeClass(elem, className) {\n\n\tvar newClass = ' ' + ' ';\n\tif (elem != null) {\n\t\tnewClass = ' ' + elem.className.replace(/[\\t\\r\\n]/g, ' ') + ' ';\n\t}\n  \n  \n  if (hasClass(elem, className)) {\n    while (newClass.indexOf(' ' + className + ' ') >= 0) {\n      newClass = newClass.replace(' ' + className + ' ', ' ');\n    }\n    elem.className = newClass.replace(/^\\s+|\\s+$/g, '');\n  }\n};\n\nvar escapeHtml = function escapeHtml(str) {\n  var div = document.createElement('div');\n  div.appendChild(document.createTextNode(str));\n  return div.innerHTML;\n};\n\nvar _show = function _show(elem) {\n  elem.style.opacity = '';\n  elem.style.display = 'block';\n};\n\nvar show = function show(elems) {\n  if (elems && !elems.length) {\n    return _show(elems);\n  }\n  for (var i = 0; i < elems.length; ++i) {\n    _show(elems[i]);\n  }\n};\n\nvar _hide = function _hide(elem) {\n  elem.style.opacity = '';\n  elem.style.display = 'none';\n};\n\nvar hide = function hide(elems) {\n  if (elems && !elems.length) {\n    return _hide(elems);\n  }\n  for (var i = 0; i < elems.length; ++i) {\n    _hide(elems[i]);\n  }\n};\n\nvar isDescendant = function isDescendant(parent, child) {\n  var node = child.parentNode;\n  while (node !== null) {\n    if (node === parent) {\n      return true;\n    }\n    node = node.parentNode;\n  }\n  return false;\n};\n\nvar getTopMargin = function getTopMargin(elem) {\n  elem.style.left = '-9999px';\n  elem.style.display = 'block';\n\n  var height = elem.clientHeight,\n      padding;\n  if (typeof getComputedStyle !== \"undefined\") {\n    // IE 8\n    padding = parseInt(getComputedStyle(elem).getPropertyValue('padding-top'), 10);\n  } else {\n    padding = parseInt(elem.currentStyle.padding);\n  }\n\n  elem.style.left = '';\n  elem.style.display = 'none';\n  return '-' + parseInt((height + padding) / 2) + 'px';\n};\n\nvar fadeIn = function fadeIn(elem, interval) {\n  if (+elem.style.opacity < 1) {\n    interval = interval || 16;\n    elem.style.opacity = 0;\n    elem.style.display = 'block';\n    var last = +new Date();\n    var tick = function tick() {\n      elem.style.opacity = +elem.style.opacity + (new Date() - last) / 100;\n      last = +new Date();\n\n      if (+elem.style.opacity < 1) {\n        setTimeout(tick, interval);\n      }\n    };\n    tick();\n  }\n  elem.style.display = 'block'; //fallback IE8\n};\n\nvar fadeOut = function fadeOut(elem, interval) {\n  interval = interval || 16;\n  elem.style.opacity = 1;\n  var last = +new Date();\n  var tick = function tick() {\n    elem.style.opacity = +elem.style.opacity - (new Date() - last) / 100;\n    last = +new Date();\n\n    if (+elem.style.opacity > 0) {\n      setTimeout(tick, interval);\n    } else {\n      elem.style.display = 'none';\n    }\n  };\n  tick();\n};\n\nvar fireClick = function fireClick(node) {\n  // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/\n  // Then fixed for today's Chrome browser.\n  if (typeof MouseEvent === 'function') {\n    // Up-to-date approach\n    var mevt = new MouseEvent('click', {\n      view: window,\n      bubbles: false,\n      cancelable: true\n    });\n    node.dispatchEvent(mevt);\n  } else if (document.createEvent) {\n    // Fallback\n    var evt = document.createEvent('MouseEvents');\n    evt.initEvent('click', false, false);\n    node.dispatchEvent(evt);\n  } else if (document.createEventObject) {\n    node.fireEvent('onclick');\n  } else if (typeof node.onclick === 'function') {\n    node.onclick();\n  }\n};\n\nvar stopEventPropagation = function stopEventPropagation(e) {\n  // In particular, make sure the space bar doesn't scroll the main window.\n  if (typeof e.stopPropagation === 'function') {\n    e.stopPropagation();\n    e.preventDefault();\n  } else if (window.event && window.event.hasOwnProperty('cancelBubble')) {\n    window.event.cancelBubble = true;\n  }\n};\n\nexports.hasClass = hasClass;\nexports.addClass = addClass;\nexports.removeClass = removeClass;\nexports.escapeHtml = escapeHtml;\nexports._show = _show;\nexports.show = show;\nexports._hide = _hide;\nexports.hide = hide;\nexports.isDescendant = isDescendant;\nexports.getTopMargin = getTopMargin;\nexports.fadeIn = fadeIn;\nexports.fadeOut = fadeOut;\nexports.fireClick = fireClick;\nexports.stopEventPropagation = stopEventPropagation;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _handleDom = require('./handle-dom');\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar handleKeyDown = function handleKeyDown(event, params, modal) {\n  var e = event || window.event;\n  var keyCode = e.keyCode || e.which;\n\n  var $okButton = modal.querySelector('button.confirm');\n  var $cancelButton = modal.querySelector('button.cancel');\n  var $modalButtons = modal.querySelectorAll('button[tabindex]');\n\n  if ([9, 13, 32, 27].indexOf(keyCode) === -1) {\n    // Don't do work on keys we don't care about.\n    return;\n  }\n\n  var $targetElement = e.target || e.srcElement;\n\n  var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.\n  for (var i = 0; i < $modalButtons.length; i++) {\n    if ($targetElement === $modalButtons[i]) {\n      btnIndex = i;\n      break;\n    }\n  }\n\n  if (keyCode === 9) {\n    // TAB\n    if (btnIndex === -1) {\n      // No button focused. Jump to the confirm button.\n      $targetElement = $okButton;\n    } else {\n      // Cycle to the next button\n      if (btnIndex === $modalButtons.length - 1) {\n        $targetElement = $modalButtons[0];\n      } else {\n        $targetElement = $modalButtons[btnIndex + 1];\n      }\n    }\n\n    (0, _handleDom.stopEventPropagation)(e);\n    $targetElement.focus();\n\n    if (params.confirmButtonColor) {\n      (0, _handleSwalDom.setFocusStyle)($targetElement, params.confirmButtonColor);\n    }\n  } else {\n    if (keyCode === 13) {\n      if ($targetElement.tagName === 'INPUT') {\n        $targetElement = $okButton;\n        $okButton.focus();\n      }\n\n      if (btnIndex === -1) {\n        // ENTER/SPACE clicked outside of a button.\n        $targetElement = $okButton;\n      } else {\n        // Do nothing - let the browser handle it.\n        $targetElement = undefined;\n      }\n    } else if (keyCode === 27 && params.allowEscapeKey === true) {\n      $targetElement = $cancelButton;\n      (0, _handleDom.fireClick)($targetElement, e);\n    } else {\n      // Fallback - let the browser handle it.\n      $targetElement = undefined;\n    }\n  }\n};\n\nexports.default = handleKeyDown;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.fixVerticalPosition = exports.resetInputError = exports.resetInput = exports.openModal = exports.getInput = exports.getOverlay = exports.getModal = exports.sweetAlertInitialize = undefined;\n\nvar _handleDom = require('./handle-dom');\n\nvar _defaultParams = require('./default-params');\n\nvar _defaultParams2 = _interopRequireDefault(_defaultParams);\n\nvar _injectedHtml = require('./injected-html');\n\nvar _injectedHtml2 = _interopRequireDefault(_injectedHtml);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar modalClass = '.sweet-alert';\nvar overlayClass = '.sweet-overlay';\n\n/*\n * Add modal + overlay to DOM\n */\n\n\nvar sweetAlertInitialize = function sweetAlertInitialize() {\n  var sweetWrap = document.createElement('div');\n  sweetWrap.innerHTML = _injectedHtml2.default;\n\n  // Append elements to body\n  while (sweetWrap.firstChild) {\n    document.body.appendChild(sweetWrap.firstChild);\n  }\n};\n\n/*\n * Get DOM element of modal\n */\nvar getModal = function getModal() {\n  var $modal = document.querySelector(modalClass);\n\n  if (!$modal) {\n    sweetAlertInitialize();\n    $modal = getModal();\n  }\n\n  return $modal;\n};\n\n/*\n * Get DOM element of input (in modal)\n */\nvar getInput = function getInput() {\n  var $modal = getModal();\n  if ($modal) {\n    return $modal.querySelector('input');\n  }\n};\n\n/*\n * Get DOM element of overlay\n */\nvar getOverlay = function getOverlay() {\n  return document.querySelector(overlayClass);\n};\n\n/*\n * Animation when opening modal\n */\nvar openModal = function openModal(callback) {\n  var $modal = getModal();\n  (0, _handleDom.fadeIn)(getOverlay(), 10);\n  (0, _handleDom.show)($modal);\n  (0, _handleDom.addClass)($modal, 'showSweetAlert');\n  (0, _handleDom.removeClass)($modal, 'hideSweetAlert');\n\n  window.previousActiveElement = document.activeElement;\n  var $okButton = $modal.querySelector('button.confirm');\n  $okButton.focus();\n\n  setTimeout(function () {\n    (0, _handleDom.addClass)($modal, 'visible');\n  }, 500);\n\n  var timer = $modal.getAttribute('data-timer');\n\n  if (timer !== 'null' && timer !== '') {\n    var timerCallback = callback;\n    $modal.timeout = setTimeout(function () {\n      var doneFunctionExists = (timerCallback || null) && $modal.getAttribute('data-has-done-function') === 'true';\n      if (doneFunctionExists) {\n        timerCallback(null);\n      } else {\n        sweetAlert.close();\n      }\n    }, timer);\n  }\n};\n\n/*\n * Reset the styling of the input\n * (for example if errors have been shown)\n */\nvar resetInput = function resetInput() {\n  var $modal = getModal();\n  var $input = getInput();\n\n  (0, _handleDom.removeClass)($modal, 'show-input');\n  $input.value = _defaultParams2.default.inputValue;\n  $input.setAttribute('type', _defaultParams2.default.inputType);\n  $input.setAttribute('placeholder', _defaultParams2.default.inputPlaceholder);\n\n  resetInputError();\n};\n\nvar resetInputError = function resetInputError(event) {\n  // If press enter => ignore\n  if (event && event.keyCode === 13) {\n    return false;\n  }\n\n  var $modal = getModal();\n\n  var $errorIcon = $modal.querySelector('.sa-input-error');\n  (0, _handleDom.removeClass)($errorIcon, 'show');\n\n  var $errorContainer = $modal.querySelector('.form-group');\n  (0, _handleDom.removeClass)($errorContainer, 'has-error');\n};\n\n/*\n * Set \"margin-top\"-property on modal based on its computed height\n */\nvar fixVerticalPosition = function fixVerticalPosition() {\n  var $modal = getModal();\n  $modal.style.marginTop = (0, _handleDom.getTopMargin)(getModal());\n};\n\nexports.sweetAlertInitialize = sweetAlertInitialize;\nexports.getModal = getModal;\nexports.getOverlay = getOverlay;\nexports.getInput = getInput;\nexports.openModal = openModal;\nexports.resetInput = resetInput;\nexports.resetInputError = resetInputError;\nexports.fixVerticalPosition = fixVerticalPosition;\n\n},{\"./default-params\":1,\"./handle-dom\":3,\"./injected-html\":6}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar injectedHTML =\n\n// Dark overlay\n\"<div class=\\\"sweet-overlay\\\" tabIndex=\\\"-1\\\"></div>\" +\n\n// Modal\n\"<div class=\\\"sweet-alert\\\" tabIndex=\\\"-1\\\">\" +\n\n// Error icon\n\"<div class=\\\"sa-icon sa-error\\\">\\n      <span class=\\\"sa-x-mark\\\">\\n        <span class=\\\"sa-line sa-left\\\"></span>\\n        <span class=\\\"sa-line sa-right\\\"></span>\\n      </span>\\n    </div>\" +\n\n// Warning icon\n\"<div class=\\\"sa-icon sa-warning\\\">\\n      <span class=\\\"sa-body\\\"></span>\\n      <span class=\\\"sa-dot\\\"></span>\\n    </div>\" +\n\n// Info icon\n\"<div class=\\\"sa-icon sa-info\\\"></div>\" +\n\n// Success icon\n\"<div class=\\\"sa-icon sa-success\\\">\\n      <span class=\\\"sa-line sa-tip\\\"></span>\\n      <span class=\\\"sa-line sa-long\\\"></span>\\n\\n      <div class=\\\"sa-placeholder\\\"></div>\\n      <div class=\\\"sa-fix\\\"></div>\\n    </div>\" + \"<div class=\\\"sa-icon sa-custom\\\"></div>\" +\n\n// Title, text and input\n\"<h2>Title</h2>\\n    <p class=\\\"lead text-muted\\\">Text</p>\\n    <div class=\\\"form-group\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control\\\" tabIndex=\\\"3\\\" />\\n      <span class=\\\"sa-input-error help-block\\\">\\n        <span class=\\\"glyphicon glyphicon-exclamation-sign\\\"></span> <span class=\\\"sa-help-text\\\">Not valid</span>\\n      </span>\\n    </div>\" +\n\n// Cancel and confirm buttons\n\"<div class=\\\"sa-button-container\\\">\\n      <button class=\\\"cancel btn btn-lg\\\" tabIndex=\\\"2\\\">Cancel</button>\\n      <div class=\\\"sa-confirm-button-container\\\">\\n        <button class=\\\"confirm btn btn-lg\\\" tabIndex=\\\"1\\\">OK</button>\" +\n\n// Loading animation\n\"<div class=\\\"la-ball-fall\\\">\\n          <div></div>\\n          <div></div>\\n          <div></div>\\n        </div>\\n      </div>\\n    </div>\" +\n\n// End of modal\n\"</div>\";\n\nexports.default = injectedHTML;\n\n},{}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _utils = require('./utils');\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar _handleDom = require('./handle-dom');\n\nvar alertTypes = ['error', 'warning', 'info', 'success', 'input', 'prompt'];\n\n/*\n * Set type, text and actions on modal\n */\nvar setParameters = function setParameters(params) {\n  var modal = (0, _handleSwalDom.getModal)();\n\n  var $title = modal.querySelector('h2');\n  var $text = modal.querySelector('p');\n  var $cancelBtn = modal.querySelector('button.cancel');\n  var $confirmBtn = modal.querySelector('button.confirm');\n\n  /*\n   * Title\n   */\n  $title.innerHTML = params.html ? params.title : (0, _handleDom.escapeHtml)(params.title).split('\\n').join('<br>');\n\n  /*\n   * Text\n   */\n  $text.innerHTML = params.html ? params.text : (0, _handleDom.escapeHtml)(params.text || '').split('\\n').join('<br>');\n  if (params.text) (0, _handleDom.show)($text);\n\n  /*\n   * Custom class\n   */\n  if (params.customClass) {\n    (0, _handleDom.addClass)(modal, params.customClass);\n    modal.setAttribute('data-custom-class', params.customClass);\n  } else {\n    // Find previously set classes and remove them\n    var customClass = modal.getAttribute('data-custom-class');\n    (0, _handleDom.removeClass)(modal, customClass);\n    modal.setAttribute('data-custom-class', '');\n  }\n\n  /*\n   * Icon\n   */\n  (0, _handleDom.hide)(modal.querySelectorAll('.sa-icon'));\n\n  if (params.type && !(0, _utils.isIE8)()) {\n    var _ret = function () {\n\n      var validType = false;\n\n      for (var i = 0; i < alertTypes.length; i++) {\n        if (params.type === alertTypes[i]) {\n          validType = true;\n          break;\n        }\n      }\n\n      if (!validType) {\n        logStr('Unknown alert type: ' + params.type);\n        return {\n          v: false\n        };\n      }\n\n      var typesWithIcons = ['success', 'error', 'warning', 'info'];\n      var $icon = void 0;\n\n      if (typesWithIcons.indexOf(params.type) !== -1) {\n        $icon = modal.querySelector('.sa-icon.' + 'sa-' + params.type);\n        (0, _handleDom.show)($icon);\n      }\n\n      var $input = (0, _handleSwalDom.getInput)();\n\n      // Animate icon\n      switch (params.type) {\n\n        case 'success':\n          (0, _handleDom.addClass)($icon, 'animate');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-tip'), 'animateSuccessTip');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-long'), 'animateSuccessLong');\n          break;\n\n        case 'error':\n          (0, _handleDom.addClass)($icon, 'animateErrorIcon');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-x-mark'), 'animateXMark');\n          break;\n\n        case 'warning':\n          (0, _handleDom.addClass)($icon, 'pulseWarning');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-body'), 'pulseWarningIns');\n          (0, _handleDom.addClass)($icon.querySelector('.sa-dot'), 'pulseWarningIns');\n          break;\n\n        case 'input':\n        case 'prompt':\n          $input.setAttribute('type', params.inputType);\n          $input.value = params.inputValue;\n          $input.setAttribute('placeholder', params.inputPlaceholder);\n          (0, _handleDom.addClass)(modal, 'show-input');\n          setTimeout(function () {\n            $input.focus();\n            $input.addEventListener('keyup', swal.resetInputError);\n          }, 400);\n          break;\n      }\n    }();\n\n    if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n  }\n\n  /*\n   * Custom image\n   */\n  if (params.imageUrl) {\n    var $customIcon = modal.querySelector('.sa-icon.sa-custom');\n\n    $customIcon.style.backgroundImage = 'url(' + params.imageUrl + ')';\n    (0, _handleDom.show)($customIcon);\n\n    var _imgWidth = 80;\n    var _imgHeight = 80;\n\n    if (params.imageSize) {\n      var dimensions = params.imageSize.toString().split('x');\n      var imgWidth = dimensions[0];\n      var imgHeight = dimensions[1];\n\n      if (!imgWidth || !imgHeight) {\n        logStr('Parameter imageSize expects value with format WIDTHxHEIGHT, got ' + params.imageSize);\n      } else {\n        _imgWidth = imgWidth;\n        _imgHeight = imgHeight;\n      }\n    }\n\n    $customIcon.setAttribute('style', $customIcon.getAttribute('style') + 'width:' + _imgWidth + 'px; height:' + _imgHeight + 'px');\n  }\n\n  /*\n   * Show cancel button?\n   */\n  modal.setAttribute('data-has-cancel-button', params.showCancelButton);\n  if (params.showCancelButton) {\n    $cancelBtn.style.display = 'inline-block';\n  } else {\n    (0, _handleDom.hide)($cancelBtn);\n  }\n\n  /*\n   * Show confirm button?\n   */\n  modal.setAttribute('data-has-confirm-button', params.showConfirmButton);\n  if (params.showConfirmButton) {\n    $confirmBtn.style.display = 'inline-block';\n  } else {\n    (0, _handleDom.hide)($confirmBtn);\n  }\n\n  /*\n   * Custom text on cancel/confirm buttons\n   */\n  if (params.cancelButtonText) {\n    $cancelBtn.innerHTML = (0, _handleDom.escapeHtml)(params.cancelButtonText);\n  }\n  if (params.confirmButtonText) {\n    $confirmBtn.innerHTML = (0, _handleDom.escapeHtml)(params.confirmButtonText);\n  }\n\n  /*\n   * Reset confirm buttons to default class (Ugly fix)\n   */\n  $confirmBtn.className = 'confirm btn btn-lg';\n\n  /*\n   * Attach selected class to the sweet alert modal\n   */\n  (0, _handleDom.addClass)(modal, params.containerClass);\n\n  /*\n   * Set confirm button to selected class\n   */\n  (0, _handleDom.addClass)($confirmBtn, params.confirmButtonClass);\n\n  /*\n   * Set cancel button to selected class\n   */\n  (0, _handleDom.addClass)($cancelBtn, params.cancelButtonClass);\n\n  /*\n   * Set title to selected class\n   */\n  (0, _handleDom.addClass)($title, params.titleClass);\n\n  /*\n   * Set text to selected class\n   */\n  (0, _handleDom.addClass)($text, params.textClass);\n\n  /*\n   * Allow outside click\n   */\n  modal.setAttribute('data-allow-outside-click', params.allowOutsideClick);\n\n  /*\n   * Callback function\n   */\n  var hasDoneFunction = params.doneFunction ? true : false;\n  modal.setAttribute('data-has-done-function', hasDoneFunction);\n\n  /*\n   * Animation\n   */\n  if (!params.animation) {\n    modal.setAttribute('data-animation', 'none');\n  } else if (typeof params.animation === 'string') {\n    modal.setAttribute('data-animation', params.animation); // Custom animation\n  } else {\n      modal.setAttribute('data-animation', 'pop');\n    }\n\n  /*\n   * Timer\n   */\n  modal.setAttribute('data-timer', params.timer);\n};\n\nexports.default = setParameters;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5,\"./utils\":8}],8:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/*\n * Allow user to pass their own params\n */\nvar extend = function extend(a, b) {\n  for (var key in b) {\n    if (b.hasOwnProperty(key)) {\n      a[key] = b[key];\n    }\n  }\n  return a;\n};\n\n/*\n * Check if the user is using Internet Explorer 8 (for fallbacks)\n */\nvar isIE8 = function isIE8() {\n  return window.attachEvent && !window.addEventListener;\n};\n\n/*\n * IE compatible logging for developers\n */\nvar logStr = function logStr(string) {\n  if (window.console) {\n    // IE...\n    window.console.log('SweetAlert: ' + string);\n  }\n};\n\nexports.extend = extend;\nexports.isIE8 = isIE8;\nexports.logStr = logStr;\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; }; // SweetAlert\n// 2014-2015 (c) - Tristan Edwards\n// github.com/t4t5/sweetalert\n\n/*\n * jQuery-like functions for manipulating the DOM\n */\n\n\n/*\n * Handy utilities\n */\n\n\n/*\n *  Handle sweetAlert's DOM elements\n */\n\n\n// Handle button events and keyboard events\n\n\n// Default values\n\n\nvar _handleDom = require('./modules/handle-dom');\n\nvar _utils = require('./modules/utils');\n\nvar _handleSwalDom = require('./modules/handle-swal-dom');\n\nvar _handleClick = require('./modules/handle-click');\n\nvar _handleKey = require('./modules/handle-key');\n\nvar _handleKey2 = _interopRequireDefault(_handleKey);\n\nvar _defaultParams = require('./modules/default-params');\n\nvar _defaultParams2 = _interopRequireDefault(_defaultParams);\n\nvar _setParams = require('./modules/set-params');\n\nvar _setParams2 = _interopRequireDefault(_setParams);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * (We also use window.previousActiveElement as a global variable)\n */\nvar previousWindowKeyDown;\nvar lastFocusedButton;\n\n/*\n * Global sweetAlert function\n * (this is what the user calls)\n */\nvar sweetAlert, _swal;\n\nexports.default = sweetAlert = _swal = function swal() {\n  var customizations = arguments[0];\n\n  (0, _handleDom.addClass)(document.body, 'stop-scrolling');\n  (0, _handleSwalDom.resetInput)();\n\n  /*\n   * Use argument if defined or default value from params object otherwise.\n   * Supports the case where a default value is boolean true and should be\n   * overridden by a corresponding explicit argument which is boolean false.\n   */\n  function argumentOrDefault(key) {\n    var args = customizations;\n    return args[key] === undefined ? _defaultParams2.default[key] : args[key];\n  }\n\n  if (customizations === undefined) {\n    (0, _utils.logStr)('SweetAlert expects at least 1 attribute!');\n    return false;\n  }\n\n  var params = (0, _utils.extend)({}, _defaultParams2.default);\n\n  switch (typeof customizations === 'undefined' ? 'undefined' : _typeof(customizations)) {\n\n    // Ex: swal(\"Hello\", \"Just testing\", \"info\");\n    case 'string':\n      params.title = customizations;\n      params.text = arguments[1] || '';\n      params.type = arguments[2] || '';\n      break;\n\n    // Ex: swal({ title:\"Hello\", text: \"Just testing\", type: \"info\" });\n    case 'object':\n      if (customizations.title === undefined) {\n        (0, _utils.logStr)('Missing \"title\" argument!');\n        return false;\n      }\n\n      params.title = customizations.title;\n\n      for (var customName in _defaultParams2.default) {\n        params[customName] = argumentOrDefault(customName);\n      }\n\n      // Show \"Confirm\" instead of \"OK\" if cancel button is visible\n      params.confirmButtonText = params.showCancelButton ? 'Confirm' : _defaultParams2.default.confirmButtonText;\n      params.confirmButtonText = argumentOrDefault('confirmButtonText');\n\n      // Callback function when clicking on \"OK\"/\"Cancel\"\n      params.doneFunction = arguments[1] || null;\n\n      break;\n\n    default:\n      (0, _utils.logStr)('Unexpected type of argument! Expected \"string\" or \"object\", got ' + (typeof customizations === 'undefined' ? 'undefined' : _typeof(customizations)));\n      return false;\n\n  }\n\n  (0, _setParams2.default)(params);\n  (0, _handleSwalDom.fixVerticalPosition)();\n  (0, _handleSwalDom.openModal)(arguments[1]);\n\n  // Modal interactions\n  var modal = (0, _handleSwalDom.getModal)();\n\n  /*\n   * Make sure all modal buttons respond to all events\n   */\n  var $buttons = modal.querySelectorAll('button');\n  var buttonEvents = ['onclick'];\n  var onButtonEvent = function onButtonEvent(e) {\n    return (0, _handleClick.handleButton)(e, params, modal);\n  };\n\n  for (var btnIndex = 0; btnIndex < $buttons.length; btnIndex++) {\n    for (var evtIndex = 0; evtIndex < buttonEvents.length; evtIndex++) {\n      var btnEvt = buttonEvents[evtIndex];\n      $buttons[btnIndex][btnEvt] = onButtonEvent;\n    }\n  }\n\n  // Clicking outside the modal dismisses it (if allowed by user)\n  (0, _handleSwalDom.getOverlay)().onclick = onButtonEvent;\n\n  previousWindowKeyDown = window.onkeydown;\n\n  var onKeyEvent = function onKeyEvent(e) {\n    return (0, _handleKey2.default)(e, params, modal);\n  };\n  window.onkeydown = onKeyEvent;\n\n  window.onfocus = function () {\n    // When the user has focused away and focused back from the whole window.\n    setTimeout(function () {\n      // Put in a timeout to jump out of the event sequence.\n      // Calling focus() in the event sequence confuses things.\n      if (lastFocusedButton !== undefined) {\n        lastFocusedButton.focus();\n        lastFocusedButton = undefined;\n      }\n    }, 0);\n  };\n\n  // Show alert with enabled buttons always\n  _swal.enableButtons();\n};\n\n/*\n * Set default params for each popup\n * @param {Object} userParams\n */\n\n\nsweetAlert.setDefaults = _swal.setDefaults = function (userParams) {\n  if (!userParams) {\n    throw new Error('userParams is required');\n  }\n  if ((typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {\n    throw new Error('userParams has to be a object');\n  }\n\n  (0, _utils.extend)(_defaultParams2.default, userParams);\n};\n\n/*\n * Animation when closing modal\n */\nsweetAlert.close = _swal.close = function () {\n  var modal = (0, _handleSwalDom.getModal)();\n\n  (0, _handleDom.fadeOut)((0, _handleSwalDom.getOverlay)(), 5);\n  (0, _handleDom.fadeOut)(modal, 5);\n  (0, _handleDom.removeClass)(modal, 'showSweetAlert');\n  (0, _handleDom.addClass)(modal, 'hideSweetAlert');\n  (0, _handleDom.removeClass)(modal, 'visible');\n\n  /*\n   * Reset icon animations\n   */\n  var $successIcon = modal.querySelector('.sa-icon.sa-success');\n  (0, _handleDom.removeClass)($successIcon, 'animate');\n  (0, _handleDom.removeClass)($successIcon.querySelector('.sa-tip'), 'animateSuccessTip');\n  (0, _handleDom.removeClass)($successIcon.querySelector('.sa-long'), 'animateSuccessLong');\n\n  var $errorIcon = modal.querySelector('.sa-icon.sa-error');\n  (0, _handleDom.removeClass)($errorIcon, 'animateErrorIcon');\n  (0, _handleDom.removeClass)($errorIcon.querySelector('.sa-x-mark'), 'animateXMark');\n\n  var $warningIcon = modal.querySelector('.sa-icon.sa-warning');\n  (0, _handleDom.removeClass)($warningIcon, 'pulseWarning');\n  (0, _handleDom.removeClass)($warningIcon.querySelector('.sa-body'), 'pulseWarningIns');\n  (0, _handleDom.removeClass)($warningIcon.querySelector('.sa-dot'), 'pulseWarningIns');\n\n  // Reset custom class (delay so that UI changes aren't visible)\n  setTimeout(function () {\n    var customClass = modal.getAttribute('data-custom-class');\n    (0, _handleDom.removeClass)(modal, customClass);\n  }, 300);\n\n  // Make page scrollable again\n  (0, _handleDom.removeClass)(document.body, 'stop-scrolling');\n\n  // Reset the page to its previous state\n  window.onkeydown = previousWindowKeyDown;\n  if (window.previousActiveElement) {\n    window.previousActiveElement.focus();\n  }\n  lastFocusedButton = undefined;\n  clearTimeout(modal.timeout);\n\n  return true;\n};\n\n/*\n * Validation of the input field is done by user\n * If something is wrong => call showInputError with errorMessage\n */\nsweetAlert.showInputError = _swal.showInputError = function (errorMessage) {\n  var modal = (0, _handleSwalDom.getModal)();\n\n  var $errorIcon = modal.querySelector('.sa-input-error');\n  (0, _handleDom.addClass)($errorIcon, 'show');\n\n  var $errorContainer = modal.querySelector('.form-group');\n  (0, _handleDom.addClass)($errorContainer, 'has-error');\n\n  $errorContainer.querySelector('.sa-help-text').innerHTML = errorMessage;\n\n  setTimeout(function () {\n    sweetAlert.enableButtons();\n  }, 1);\n\n  modal.querySelector('input').focus();\n};\n\n/*\n * Reset input error DOM elements\n */\nsweetAlert.resetInputError = _swal.resetInputError = function (event) {\n  // If press enter => ignore\n  if (event && event.keyCode === 13) {\n    return false;\n  }\n\n  var $modal = (0, _handleSwalDom.getModal)();\n\n  var $errorIcon = $modal.querySelector('.sa-input-error');\n  (0, _handleDom.removeClass)($errorIcon, 'show');\n\n  var $errorContainer = $modal.querySelector('.form-group');\n  (0, _handleDom.removeClass)($errorContainer, 'has-error');\n};\n\n/*\n * Disable confirm and cancel buttons\n */\nsweetAlert.disableButtons = _swal.disableButtons = function (event) {\n  var modal = (0, _handleSwalDom.getModal)();\n  var $confirmButton = modal.querySelector('button.confirm');\n  var $cancelButton = modal.querySelector('button.cancel');\n  $confirmButton.disabled = true;\n  $cancelButton.disabled = true;\n};\n\n/*\n * Enable confirm and cancel buttons\n */\nsweetAlert.enableButtons = _swal.enableButtons = function (event) {\n  var modal = (0, _handleSwalDom.getModal)();\n  var $confirmButton = modal.querySelector('button.confirm');\n  var $cancelButton = modal.querySelector('button.cancel');\n  $confirmButton.disabled = false;\n  $cancelButton.disabled = false;\n};\n\nif (typeof window !== 'undefined') {\n  // The 'handle-click' module requires\n  // that 'sweetAlert' was set as global.\n  window.sweetAlert = window.swal = sweetAlert;\n} else {\n  (0, _utils.logStr)('SweetAlert is a frontend module!');\n}\n\n},{\"./modules/default-params\":1,\"./modules/handle-click\":2,\"./modules/handle-dom\":3,\"./modules/handle-key\":4,\"./modules/handle-swal-dom\":5,\"./modules/set-params\":7,\"./modules/utils\":8}]},{},[9]);\n\n/*\n * Use SweetAlert with RequireJS\n */\n\nif (typeof define === 'function' && define.amd) {\n  define(function () {\n    return sweetAlert;\n  });\n} else if (typeof module !== 'undefined' && module.exports) {\n  module.exports = sweetAlert;\n}\n\n})(window, document);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-switch/css/bootstrap-switch.css",
    "content": "/* ========================================================================\n * bootstrap-switch - v3.3.2\n * http://www.bootstrap-switch.org\n * ========================================================================\n * Copyright 2012-2013 Mattia Larentis\n *\n * ========================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================================\n */\n\n.bootstrap-switch {\n  display: inline-block;\n  direction: ltr;\n  cursor: pointer;\n  border-radius: 4px;\n  border: 1px solid;\n  border-color: #cccccc;\n  position: relative;\n  text-align: left;\n  overflow: hidden;\n  line-height: 8px;\n  z-index: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.bootstrap-switch .bootstrap-switch-container {\n  display: inline-block;\n  top: 0;\n  border-radius: 4px;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  cursor: pointer;\n  display: inline-block !important;\n  height: 100%;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 20px;\n}\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #428bca;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #5bc0de;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #5cb85c;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #f0ad4e;\n  color: #fff;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #d9534f;\n}\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #000;\n  background: #eeeeee;\n}\n.bootstrap-switch .bootstrap-switch-label {\n  text-align: center;\n  margin-top: -1px;\n  margin-bottom: -1px;\n  z-index: 100;\n  color: #333333;\n  background: #ffffff;\n}\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.bootstrap-switch .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  position: absolute !important;\n  top: 0;\n  left: 0;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  z-index: -1;\n}\n.bootstrap-switch input[type='radio'].form-control,\n.bootstrap-switch input[type='checkbox'].form-control {\n  height: auto;\n}\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  padding: 6px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n}\n.bootstrap-switch.bootstrap-switch-disabled,\n.bootstrap-switch.bootstrap-switch-readonly,\n.bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default !important;\n}\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  -webkit-transition: margin-left 0.5s;\n  transition: margin-left 0.5s;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-focused {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-timepicker/css/bootstrap-timepicker.css",
    "content": "/*!\n * Timepicker Component for Twitter Bootstrap\n *\n * Copyright 2013 Joris de Wit\n *\n * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n.bootstrap-timepicker {\n  position: relative;\n}\n.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu {\n  left: auto;\n  right: 0;\n}\n.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before {\n  left: auto;\n  right: 12px;\n}\n.bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after {\n  left: auto;\n  right: 13px;\n}\n.bootstrap-timepicker .add-on {\n  cursor: pointer;\n}\n.bootstrap-timepicker .add-on i {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n}\n.bootstrap-timepicker-widget.dropdown-menu {\n  padding: 4px;\n}\n.bootstrap-timepicker-widget.dropdown-menu.open {\n  display: inline-block;\n}\n.bootstrap-timepicker-widget.dropdown-menu:before {\n  border-bottom: 7px solid rgba(0, 0, 0, 0.2);\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n}\n.bootstrap-timepicker-widget.dropdown-menu:after {\n  border-bottom: 6px solid #FFFFFF;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n}\n.bootstrap-timepicker-widget.timepicker-orient-left:before {\n  left: 6px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-left:after {\n  left: 7px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-right:before {\n  right: 6px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-right:after {\n  right: 7px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-top:before {\n  top: -7px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-top:after {\n  top: -6px;\n}\n.bootstrap-timepicker-widget.timepicker-orient-bottom:before {\n  bottom: -7px;\n  border-bottom: 0;\n  border-top: 7px solid #999;\n}\n.bootstrap-timepicker-widget.timepicker-orient-bottom:after {\n  bottom: -6px;\n  border-bottom: 0;\n  border-top: 6px solid #ffffff;\n}\n.bootstrap-timepicker-widget a.btn,\n.bootstrap-timepicker-widget input {\n  border-radius: 4px;\n}\n.bootstrap-timepicker-widget table {\n  width: 100%;\n  margin: 0;\n}\n.bootstrap-timepicker-widget table td {\n  text-align: center;\n  height: 30px;\n  margin: 0;\n  padding: 2px;\n}\n.bootstrap-timepicker-widget table td:not(.separator) {\n  min-width: 30px;\n}\n.bootstrap-timepicker-widget table td span {\n  width: 100%;\n}\n.bootstrap-timepicker-widget table td a {\n  border: 1px transparent solid;\n  width: 100%;\n  display: inline-block;\n  margin: 0;\n  padding: 8px 0;\n  outline: 0;\n  color: #333;\n}\n.bootstrap-timepicker-widget table td a:hover {\n  text-decoration: none;\n  background-color: #eee;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border-color: #ddd;\n}\n.bootstrap-timepicker-widget table td a i {\n  margin-top: 2px;\n  font-size: 18px;\n}\n.bootstrap-timepicker-widget table td input {\n  width: 25px;\n  margin: 0;\n  text-align: center;\n}\n.bootstrap-timepicker-widget .modal-content {\n  padding: 4px;\n}\n@media (min-width: 767px) {\n  .bootstrap-timepicker-widget.modal {\n    width: 200px;\n    margin-left: -100px;\n  }\n}\n@media (max-width: 767px) {\n  .bootstrap-timepicker {\n    width: 100%;\n  }\n  .bootstrap-timepicker .dropdown-menu {\n    width: 100%;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-timepicker/js/bootstrap-timepicker.js",
    "content": "/*!\n * Timepicker Component for Twitter Bootstrap\n *\n * Copyright 2013 Joris de Wit\n *\n * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n(function($, window, document, undefined) {\n  'use strict';\n\n  // TIMEPICKER PUBLIC CLASS DEFINITION\n  var Timepicker = function(element, options) {\n    this.widget = '';\n    this.$element = $(element);\n    this.defaultTime = options.defaultTime;\n    this.disableFocus = options.disableFocus;\n    this.disableMousewheel = options.disableMousewheel;\n    this.isOpen = options.isOpen;\n    this.minuteStep = options.minuteStep;\n    this.modalBackdrop = options.modalBackdrop;\n    this.orientation = options.orientation;\n    this.secondStep = options.secondStep;\n    this.showInputs = options.showInputs;\n    this.showMeridian = options.showMeridian;\n    this.showSeconds = options.showSeconds;\n    this.template = options.template;\n    this.appendWidgetTo = options.appendWidgetTo;\n    this.showWidgetOnAddonClick = options.showWidgetOnAddonClick;\n\n    this._init();\n  };\n\n  Timepicker.prototype = {\n\n    constructor: Timepicker,\n    _init: function() {\n      var self = this;\n\n      if (this.showWidgetOnAddonClick && (this.$element.parent().hasClass('input-append') || this.$element.parent().hasClass('input-prepend'))) {\n        this.$element.parent('.input-append, .input-prepend').find('.add-on').on({\n          'click.timepicker': $.proxy(this.showWidget, this)\n        });\n        this.$element.on({\n          'focus.timepicker': $.proxy(this.highlightUnit, this),\n          'click.timepicker': $.proxy(this.highlightUnit, this),\n          'keydown.timepicker': $.proxy(this.elementKeydown, this),\n          'blur.timepicker': $.proxy(this.blurElement, this),\n          'mousewheel.timepicker DOMMouseScroll.timepicker': $.proxy(this.mousewheel, this)\n        });\n      } else {\n        if (this.template) {\n          this.$element.on({\n            'focus.timepicker': $.proxy(this.showWidget, this),\n            'click.timepicker': $.proxy(this.showWidget, this),\n            'blur.timepicker': $.proxy(this.blurElement, this),\n            'mousewheel.timepicker DOMMouseScroll.timepicker': $.proxy(this.mousewheel, this)\n          });\n        } else {\n          this.$element.on({\n            'focus.timepicker': $.proxy(this.highlightUnit, this),\n            'click.timepicker': $.proxy(this.highlightUnit, this),\n            'keydown.timepicker': $.proxy(this.elementKeydown, this),\n            'blur.timepicker': $.proxy(this.blurElement, this),\n            'mousewheel.timepicker DOMMouseScroll.timepicker': $.proxy(this.mousewheel, this)\n          });\n        }\n      }\n\n      if (this.template !== false) {\n        this.$widget = $(this.getTemplate()).on('click', $.proxy(this.widgetClick, this));\n      } else {\n        this.$widget = false;\n      }\n\n      if (this.showInputs && this.$widget !== false) {\n        this.$widget.find('input').each(function() {\n          $(this).on({\n            'click.timepicker': function() { $(this).select(); },\n            'keydown.timepicker': $.proxy(self.widgetKeydown, self),\n            'keyup.timepicker': $.proxy(self.widgetKeyup, self)\n          });\n        });\n      }\n\n      this.setDefaultTime(this.defaultTime);\n    },\n\n    blurElement: function() {\n      this.highlightedUnit = null;\n      this.updateFromElementVal();\n    },\n\n    clear: function() {\n      this.hour = '';\n      this.minute = '';\n      this.second = '';\n      this.meridian = '';\n\n      this.$element.val('');\n    },\n\n    decrementHour: function() {\n      if (this.showMeridian) {\n        if (this.hour === 1) {\n          this.hour = 12;\n        } else if (this.hour === 12) {\n          this.hour--;\n\n          return this.toggleMeridian();\n        } else if (this.hour === 0) {\n          this.hour = 11;\n\n          return this.toggleMeridian();\n        } else {\n          this.hour--;\n        }\n      } else {\n        if (this.hour <= 0) {\n          this.hour = 23;\n        } else {\n          this.hour--;\n        }\n      }\n    },\n\n    decrementMinute: function(step) {\n      var newVal;\n\n      if (step) {\n        newVal = this.minute - step;\n      } else {\n        newVal = this.minute - this.minuteStep;\n      }\n\n      if (newVal < 0) {\n        this.decrementHour();\n        this.minute = newVal + 60;\n      } else {\n        this.minute = newVal;\n      }\n    },\n\n    decrementSecond: function() {\n      var newVal = this.second - this.secondStep;\n\n      if (newVal < 0) {\n        this.decrementMinute(true);\n        this.second = newVal + 60;\n      } else {\n        this.second = newVal;\n      }\n    },\n\n    elementKeydown: function(e) {\n      switch (e.keyCode) {\n      case 9: //tab\n      case 27: // escape\n        this.updateFromElementVal();\n        break;\n      case 37: // left arrow\n        e.preventDefault();\n        this.highlightPrevUnit();\n        break;\n      case 38: // up arrow\n        e.preventDefault();\n        switch (this.highlightedUnit) {\n        case 'hour':\n          this.incrementHour();\n          this.highlightHour();\n          break;\n        case 'minute':\n          this.incrementMinute();\n          this.highlightMinute();\n          break;\n        case 'second':\n          this.incrementSecond();\n          this.highlightSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          this.highlightMeridian();\n          break;\n        }\n        this.update();\n        break;\n      case 39: // right arrow\n        e.preventDefault();\n        this.highlightNextUnit();\n        break;\n      case 40: // down arrow\n        e.preventDefault();\n        switch (this.highlightedUnit) {\n        case 'hour':\n          this.decrementHour();\n          this.highlightHour();\n          break;\n        case 'minute':\n          this.decrementMinute();\n          this.highlightMinute();\n          break;\n        case 'second':\n          this.decrementSecond();\n          this.highlightSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          this.highlightMeridian();\n          break;\n        }\n\n        this.update();\n        break;\n      }\n    },\n\n    getCursorPosition: function() {\n      var input = this.$element.get(0);\n\n      if ('selectionStart' in input) {// Standard-compliant browsers\n\n        return input.selectionStart;\n      } else if (document.selection) {// IE fix\n        input.focus();\n        var sel = document.selection.createRange(),\n          selLen = document.selection.createRange().text.length;\n\n        sel.moveStart('character', - input.value.length);\n\n        return sel.text.length - selLen;\n      }\n    },\n\n    getTemplate: function() {\n      var template,\n        hourTemplate,\n        minuteTemplate,\n        secondTemplate,\n        meridianTemplate,\n        templateContent;\n\n      if (this.showInputs) {\n        hourTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-hour\" maxlength=\"2\"/>';\n        minuteTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-minute\" maxlength=\"2\"/>';\n        secondTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-second\" maxlength=\"2\"/>';\n        meridianTemplate = '<input type=\"text\" class=\"bootstrap-timepicker-meridian\" maxlength=\"2\"/>';\n      } else {\n        hourTemplate = '<span class=\"bootstrap-timepicker-hour\"></span>';\n        minuteTemplate = '<span class=\"bootstrap-timepicker-minute\"></span>';\n        secondTemplate = '<span class=\"bootstrap-timepicker-second\"></span>';\n        meridianTemplate = '<span class=\"bootstrap-timepicker-meridian\"></span>';\n      }\n\n      templateContent = '<table>'+\n         '<tr>'+\n           '<td><a href=\"#\" data-action=\"incrementHour\"><i class=\"fa fa-angle-up\"></i></a></td>'+\n           '<td class=\"separator\">&nbsp;</td>'+\n           '<td><a href=\"#\" data-action=\"incrementMinute\"><i class=\"fa fa-angle-up\"></i></a></td>'+\n           (this.showSeconds ?\n             '<td class=\"separator\">&nbsp;</td>'+\n             '<td><a href=\"#\" data-action=\"incrementSecond\"><i class=\"fa fa-angle-up\"></i></a></td>'\n           : '') +\n           (this.showMeridian ?\n             '<td class=\"separator\">&nbsp;</td>'+\n             '<td class=\"meridian-column\"><a href=\"#\" data-action=\"toggleMeridian\"><i class=\"fa fa-angle-up\"></i></a></td>'\n           : '') +\n         '</tr>'+\n         '<tr>'+\n           '<td>'+ hourTemplate +'</td> '+\n           '<td class=\"separator\">:</td>'+\n           '<td>'+ minuteTemplate +'</td> '+\n           (this.showSeconds ?\n            '<td class=\"separator\">:</td>'+\n            '<td>'+ secondTemplate +'</td>'\n           : '') +\n           (this.showMeridian ?\n            '<td class=\"separator\">&nbsp;</td>'+\n            '<td>'+ meridianTemplate +'</td>'\n           : '') +\n         '</tr>'+\n         '<tr>'+\n           '<td><a href=\"#\" data-action=\"decrementHour\"><i class=\"fa fa-angle-down\"></i></a></td>'+\n           '<td class=\"separator\"></td>'+\n           '<td><a href=\"#\" data-action=\"decrementMinute\"><i class=\"fa fa-angle-down\"></i></a></td>'+\n           (this.showSeconds ?\n            '<td class=\"separator\">&nbsp;</td>'+\n            '<td><a href=\"#\" data-action=\"decrementSecond\"><i class=\"fa fa-angle-down\"></i></a></td>'\n           : '') +\n           (this.showMeridian ?\n            '<td class=\"separator\">&nbsp;</td>'+\n            '<td><a href=\"#\" data-action=\"toggleMeridian\"><i class=\"fa fa-angle-down\"></i></a></td>'\n           : '') +\n         '</tr>'+\n       '</table>';\n\n      switch(this.template) {\n      case 'modal':\n        template = '<div class=\"bootstrap-timepicker-widget modal hide fade in\" data-backdrop=\"'+ (this.modalBackdrop ? 'true' : 'false') +'\">'+\n          '<div class=\"modal-header\">'+\n            '<a href=\"#\" class=\"close\" data-dismiss=\"modal\">×</a>'+\n            '<h3>Pick a Time</h3>'+\n          '</div>'+\n          '<div class=\"modal-content\">'+\n            templateContent +\n          '</div>'+\n          '<div class=\"modal-footer\">'+\n            '<a href=\"#\" class=\"btn btn-primary\" data-dismiss=\"modal\">OK</a>'+\n          '</div>'+\n        '</div>';\n        break;\n      case 'dropdown':\n        template = '<div class=\"bootstrap-timepicker-widget dropdown-menu\">'+ templateContent +'</div>';\n        break;\n      }\n\n      return template;\n    },\n\n    getTime: function() {\n      if (this.hour === '') {\n        return '';\n      }\n\n      return this.hour + ':' + (this.minute.toString().length === 1 ? '0' + this.minute : this.minute) + (this.showSeconds ? ':' + (this.second.toString().length === 1 ? '0' + this.second : this.second) : '') + (this.showMeridian ? ' ' + this.meridian : '');\n    },\n\n    hideWidget: function() {\n      if (this.isOpen === false) {\n        return;\n      }\n\n      this.$element.trigger({\n        'type': 'hide.timepicker',\n        'time': {\n          'value': this.getTime(),\n          'hours': this.hour,\n          'minutes': this.minute,\n          'seconds': this.second,\n          'meridian': this.meridian\n        }\n      });\n\n      if (this.template === 'modal' && this.$widget.modal) {\n        this.$widget.modal('hide');\n      } else {\n        this.$widget.removeClass('open');\n      }\n\n      $(document).off('mousedown.timepicker, touchend.timepicker');\n\n      this.isOpen = false;\n      // show/hide approach taken by datepicker\n      this.$widget.detach();\n    },\n\n    highlightUnit: function() {\n      this.position = this.getCursorPosition();\n      if (this.position >= 0 && this.position <= 2) {\n        this.highlightHour();\n      } else if (this.position >= 3 && this.position <= 5) {\n        this.highlightMinute();\n      } else if (this.position >= 6 && this.position <= 8) {\n        if (this.showSeconds) {\n          this.highlightSecond();\n        } else {\n          this.highlightMeridian();\n        }\n      } else if (this.position >= 9 && this.position <= 11) {\n        this.highlightMeridian();\n      }\n    },\n\n    highlightNextUnit: function() {\n      switch (this.highlightedUnit) {\n      case 'hour':\n        this.highlightMinute();\n        break;\n      case 'minute':\n        if (this.showSeconds) {\n          this.highlightSecond();\n        } else if (this.showMeridian){\n          this.highlightMeridian();\n        } else {\n          this.highlightHour();\n        }\n        break;\n      case 'second':\n        if (this.showMeridian) {\n          this.highlightMeridian();\n        } else {\n          this.highlightHour();\n        }\n        break;\n      case 'meridian':\n        this.highlightHour();\n        break;\n      }\n    },\n\n    highlightPrevUnit: function() {\n      switch (this.highlightedUnit) {\n      case 'hour':\n        if(this.showMeridian){\n          this.highlightMeridian();\n        } else if (this.showSeconds) {\n          this.highlightSecond();\n        } else {\n          this.highlightMinute();\n        }\n        break;\n      case 'minute':\n        this.highlightHour();\n        break;\n      case 'second':\n        this.highlightMinute();\n        break;\n      case 'meridian':\n        if (this.showSeconds) {\n          this.highlightSecond();\n        } else {\n          this.highlightMinute();\n        }\n        break;\n      }\n    },\n\n    highlightHour: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'hour';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tsetTimeout(function() {\n          if (self.hour < 10) {\n            $element.setSelectionRange(0,1);\n          } else {\n            $element.setSelectionRange(0,2);\n          }\n\t\t\t\t}, 0);\n\t\t\t}\n    },\n\n    highlightMinute: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'minute';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tsetTimeout(function() {\n          if (self.hour < 10) {\n            $element.setSelectionRange(2,4);\n          } else {\n            $element.setSelectionRange(3,5);\n          }\n\t\t\t\t}, 0);\n\t\t\t}\n    },\n\n    highlightSecond: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'second';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tsetTimeout(function() {\n          if (self.hour < 10) {\n            $element.setSelectionRange(5,7);\n          } else {\n            $element.setSelectionRange(6,8);\n          }\n\t\t\t\t}, 0);\n\t\t\t}\n    },\n\n    highlightMeridian: function() {\n      var $element = this.$element.get(0),\n          self = this;\n\n      this.highlightedUnit = 'meridian';\n\n\t\t\tif ($element.setSelectionRange) {\n\t\t\t\tif (this.showSeconds) {\n\t\t\t\t\tsetTimeout(function() {\n            if (self.hour < 10) {\n              $element.setSelectionRange(8,10);\n            } else {\n              $element.setSelectionRange(9,11);\n            }\n\t\t\t\t\t}, 0);\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function() {\n            if (self.hour < 10) {\n              $element.setSelectionRange(5,7);\n            } else {\n              $element.setSelectionRange(6,8);\n            }\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t}\n    },\n\n    incrementHour: function() {\n      if (this.showMeridian) {\n        if (this.hour === 11) {\n          this.hour++;\n          return this.toggleMeridian();\n        } else if (this.hour === 12) {\n          this.hour = 0;\n        }\n      }\n      if (this.hour === 23) {\n        this.hour = 0;\n\n        return;\n      }\n      this.hour++;\n    },\n\n    incrementMinute: function(step) {\n      var newVal;\n\n      if (step) {\n        newVal = this.minute + step;\n      } else {\n        newVal = this.minute + this.minuteStep - (this.minute % this.minuteStep);\n      }\n\n      if (newVal > 59) {\n        this.incrementHour();\n        this.minute = newVal - 60;\n      } else {\n        this.minute = newVal;\n      }\n    },\n\n    incrementSecond: function() {\n      var newVal = this.second + this.secondStep - (this.second % this.secondStep);\n\n      if (newVal > 59) {\n        this.incrementMinute(true);\n        this.second = newVal - 60;\n      } else {\n        this.second = newVal;\n      }\n    },\n\n    mousewheel: function(e) {\n      if (this.disableMousewheel) {\n        return;\n      }\n\n      e.preventDefault();\n      e.stopPropagation();\n\n      var delta = e.originalEvent.wheelDelta || -e.originalEvent.detail,\n          scrollTo = null;\n\n      if (e.type === 'mousewheel') {\n        scrollTo = (e.originalEvent.wheelDelta * -1);\n      }\n      else if (e.type === 'DOMMouseScroll') {\n        scrollTo = 40 * e.originalEvent.detail;\n      }\n\n      if (scrollTo) {\n        e.preventDefault();\n        $(this).scrollTop(scrollTo + $(this).scrollTop());\n      }\n\n      switch (this.highlightedUnit) {\n      case 'minute':\n        if (delta > 0) {\n          this.incrementMinute();\n        } else {\n          this.decrementMinute();\n        }\n        this.highlightMinute();\n        break;\n      case 'second':\n        if (delta > 0) {\n          this.incrementSecond();\n        } else {\n          this.decrementSecond();\n        }\n        this.highlightSecond();\n        break;\n      case 'meridian':\n        this.toggleMeridian();\n        this.highlightMeridian();\n        break;\n      default:\n        if (delta > 0) {\n          this.incrementHour();\n        } else {\n          this.decrementHour();\n        }\n        this.highlightHour();\n        break;\n      }\n\n      return false;\n    },\n\n    // This method was adapted from bootstrap-datepicker.\n    place : function() {\n      if (this.isInline) {\n        return;\n      }\n      var widgetWidth = this.$widget.outerWidth(), widgetHeight = this.$widget.outerHeight(), visualPadding = 10, windowWidth =\n        $(window).width(), windowHeight = $(window).height(), scrollTop = $(window).scrollTop();\n\n      var zIndex = parseInt(this.$element.parents().filter(function() {}).first().css('z-index'), 10) + 10;\n      var offset = this.component ? this.component.parent().offset() : this.$element.offset();\n      var height = this.component ? this.component.outerHeight(true) : this.$element.outerHeight(false);\n      var width = this.component ? this.component.outerWidth(true) : this.$element.outerWidth(false);\n      var left = offset.left, top = offset.top;\n\n      this.$widget.removeClass('timepicker-orient-top timepicker-orient-bottom timepicker-orient-right timepicker-orient-left');\n\n      if (this.orientation.x !== 'auto') {\n        this.picker.addClass('datepicker-orient-' + this.orientation.x);\n        if (this.orientation.x === 'right') {\n          left -= widgetWidth - width;\n        }\n      } else{\n        // auto x orientation is best-placement: if it crosses a window edge, fudge it sideways\n        // Default to left\n        this.$widget.addClass('timepicker-orient-left');\n        if (offset.left < 0) {\n          left -= offset.left - visualPadding;\n        } else if (offset.left + widgetWidth > windowWidth) {\n          left = windowWidth - widgetWidth - visualPadding;\n        }\n      }\n      // auto y orientation is best-situation: top or bottom, no fudging, decision based on which shows more of the widget\n      var yorient = this.orientation.y, topOverflow, bottomOverflow;\n      if (yorient === 'auto') {\n        topOverflow = -scrollTop + offset.top - widgetHeight;\n        bottomOverflow = scrollTop + windowHeight - (offset.top + height + widgetHeight);\n        if (Math.max(topOverflow, bottomOverflow) === bottomOverflow) {\n          yorient = 'top';\n        } else {\n          yorient = 'bottom';\n        }\n      }\n      this.$widget.addClass('timepicker-orient-' + yorient);\n      if (yorient === 'top'){\n        top += height;\n      } else{\n        top -= widgetHeight + parseInt(this.$widget.css('padding-top'), 10);\n      }\n\n      this.$widget.css({\n        top : top,\n        left : left,\n        zIndex : zIndex\n      });\n    },\n\n    remove: function() {\n      $('document').off('.timepicker');\n      if (this.$widget) {\n        this.$widget.remove();\n      }\n      delete this.$element.data().timepicker;\n    },\n\n    setDefaultTime: function(defaultTime) {\n      if (!this.$element.val()) {\n        if (defaultTime === 'current') {\n          var dTime = new Date(),\n            hours = dTime.getHours(),\n            minutes = dTime.getMinutes(),\n            seconds = dTime.getSeconds(),\n            meridian = 'AM';\n\n          if (seconds !== 0) {\n            seconds = Math.ceil(dTime.getSeconds() / this.secondStep) * this.secondStep;\n            if (seconds === 60) {\n              minutes += 1;\n              seconds = 0;\n            }\n          }\n\n          if (minutes !== 0) {\n            minutes = Math.ceil(dTime.getMinutes() / this.minuteStep) * this.minuteStep;\n            if (minutes === 60) {\n              hours += 1;\n              minutes = 0;\n            }\n          }\n\n          if (this.showMeridian) {\n            if (hours === 0) {\n              hours = 12;\n            } else if (hours >= 12) {\n              if (hours > 12) {\n                hours = hours - 12;\n              }\n              meridian = 'PM';\n            } else {\n              meridian = 'AM';\n            }\n          }\n\n          this.hour = hours;\n          this.minute = minutes;\n          this.second = seconds;\n          this.meridian = meridian;\n\n          this.update();\n\n        } else if (defaultTime === false) {\n          this.hour = 0;\n          this.minute = 0;\n          this.second = 0;\n          this.meridian = 'AM';\n        } else {\n          this.setTime(defaultTime);\n        }\n      } else {\n        this.updateFromElementVal();\n      }\n    },\n\n    setTime: function(time, ignoreWidget) {\n      if (!time) {\n        this.clear();\n        return;\n      }\n\n      var timeArray,\n          hour,\n          minute,\n          second,\n          meridian;\n\n      if (typeof time === 'object' && time.getMonth){\n        // this is a date object\n        hour    = time.getHours();\n        minute  = time.getMinutes();\n        second  = time.getSeconds();\n\n        if (this.showMeridian){\n          meridian = 'AM';\n          if (hour > 12){\n            meridian = 'PM';\n            hour = hour % 12;\n          }\n\n          if (hour === 12){\n            meridian = 'PM';\n          }\n        }\n      } else {\n        if (time.match(/p/i) !== null) {\n          meridian = 'PM';\n        } else {\n          meridian = 'AM';\n        }\n\n        time = time.replace(/[^0-9\\:]/g, '');\n\n        timeArray = time.split(':');\n\n        hour = timeArray[0] ? timeArray[0].toString() : timeArray.toString();\n        minute = timeArray[1] ? timeArray[1].toString() : '';\n        second = timeArray[2] ? timeArray[2].toString() : '';\n\n        // idiot proofing\n        if (hour.length > 4) {\n          second = hour.substr(4, 2);\n        }\n        if (hour.length > 2) {\n          minute = hour.substr(2, 2);\n          hour = hour.substr(0, 2);\n        }\n        if (minute.length > 2) {\n          second = minute.substr(2, 2);\n          minute = minute.substr(0, 2);\n        }\n        if (second.length > 2) {\n          second = second.substr(2, 2);\n        }\n\n        hour = parseInt(hour, 10);\n        minute = parseInt(minute, 10);\n        second = parseInt(second, 10);\n\n        if (isNaN(hour)) {\n          hour = 0;\n        }\n        if (isNaN(minute)) {\n          minute = 0;\n        }\n        if (isNaN(second)) {\n          second = 0;\n        }\n\n        if (this.showMeridian) {\n          if (hour < 1) {\n            hour = 1;\n          } else if (hour > 12) {\n            hour = 12;\n          }\n        } else {\n          if (hour >= 24) {\n            hour = 23;\n          } else if (hour < 0) {\n            hour = 0;\n          }\n          if (hour < 13 && meridian === 'PM') {\n            hour = hour + 12;\n          }\n        }\n\n        if (minute < 0) {\n          minute = 0;\n        } else if (minute >= 60) {\n          minute = 59;\n        }\n\n        if (this.showSeconds) {\n          if (isNaN(second)) {\n            second = 0;\n          } else if (second < 0) {\n            second = 0;\n          } else if (second >= 60) {\n            second = 59;\n          }\n        }\n      }\n\n      this.hour = hour;\n      this.minute = minute;\n      this.second = second;\n      this.meridian = meridian;\n\n      this.update(ignoreWidget);\n    },\n\n    showWidget: function() {\n      if (this.isOpen) {\n        return;\n      }\n\n      if (this.$element.is(':disabled')) {\n        return;\n      }\n\n      // show/hide approach taken by datepicker\n      this.$widget.appendTo(this.appendWidgetTo);\n      var self = this;\n      $(document).on('mousedown.timepicker, touchend.timepicker', function (e) {\n        // This condition was inspired by bootstrap-datepicker.\n        // The element the timepicker is invoked on is the input but it has a sibling for addon/button.\n        if (!(self.$element.parent().find(e.target).length ||\n            self.$widget.is(e.target) ||\n            self.$widget.find(e.target).length)) {\n          self.hideWidget();\n        }\n      });\n\n      this.$element.trigger({\n        'type': 'show.timepicker',\n        'time': {\n          'value': this.getTime(),\n          'hours': this.hour,\n          'minutes': this.minute,\n          'seconds': this.second,\n          'meridian': this.meridian\n        }\n      });\n\n      this.place();\n      if (this.disableFocus) {\n        this.$element.blur();\n      }\n\n      // widget shouldn't be empty on open\n      if (this.hour === '') {\n        if (this.defaultTime) {\n          this.setDefaultTime(this.defaultTime);\n        } else {\n          this.setTime('0:0:0');\n        }\n      }\n\n      if (this.template === 'modal' && this.$widget.modal) {\n        this.$widget.modal('show').on('hidden', $.proxy(this.hideWidget, this));\n      } else {\n        if (this.isOpen === false) {\n          this.$widget.addClass('open');\n        }\n      }\n\n      this.isOpen = true;\n    },\n\n    toggleMeridian: function() {\n      this.meridian = this.meridian === 'AM' ? 'PM' : 'AM';\n    },\n\n    update: function(ignoreWidget) {\n      this.updateElement();\n      if (!ignoreWidget) {\n        this.updateWidget();\n      }\n\n      this.$element.trigger({\n        'type': 'changeTime.timepicker',\n        'time': {\n          'value': this.getTime(),\n          'hours': this.hour,\n          'minutes': this.minute,\n          'seconds': this.second,\n          'meridian': this.meridian\n        }\n      });\n    },\n\n    updateElement: function() {\n      this.$element.val(this.getTime()).change();\n    },\n\n    updateFromElementVal: function() {\n      this.setTime(this.$element.val());\n    },\n\n    updateWidget: function() {\n      if (this.$widget === false) {\n        return;\n      }\n\n      var hour = this.hour,\n          minute = this.minute.toString().length === 1 ? '0' + this.minute : this.minute,\n          second = this.second.toString().length === 1 ? '0' + this.second : this.second;\n\n      if (this.showInputs) {\n        this.$widget.find('input.bootstrap-timepicker-hour').val(hour);\n        this.$widget.find('input.bootstrap-timepicker-minute').val(minute);\n\n        if (this.showSeconds) {\n          this.$widget.find('input.bootstrap-timepicker-second').val(second);\n        }\n        if (this.showMeridian) {\n          this.$widget.find('input.bootstrap-timepicker-meridian').val(this.meridian);\n        }\n      } else {\n        this.$widget.find('span.bootstrap-timepicker-hour').text(hour);\n        this.$widget.find('span.bootstrap-timepicker-minute').text(minute);\n\n        if (this.showSeconds) {\n          this.$widget.find('span.bootstrap-timepicker-second').text(second);\n        }\n        if (this.showMeridian) {\n          this.$widget.find('span.bootstrap-timepicker-meridian').text(this.meridian);\n        }\n      }\n    },\n\n    updateFromWidgetInputs: function() {\n      if (this.$widget === false) {\n        return;\n      }\n\n      var t = this.$widget.find('input.bootstrap-timepicker-hour').val() + ':' +\n              this.$widget.find('input.bootstrap-timepicker-minute').val() +\n              (this.showSeconds ? ':' + this.$widget.find('input.bootstrap-timepicker-second').val() : '') +\n              (this.showMeridian ? this.$widget.find('input.bootstrap-timepicker-meridian').val() : '')\n      ;\n\n      this.setTime(t, true);\n    },\n\n    widgetClick: function(e) {\n      e.stopPropagation();\n      e.preventDefault();\n\n      var $input = $(e.target),\n          action = $input.closest('a').data('action');\n\n      if (action) {\n        this[action]();\n      }\n      this.update();\n\n      if ($input.is('input')) {\n        $input.get(0).setSelectionRange(0,2);\n      }\n    },\n\n    widgetKeydown: function(e) {\n      var $input = $(e.target),\n          name = $input.attr('class').replace('bootstrap-timepicker-', '');\n\n      switch (e.keyCode) {\n      case 9: //tab\n        if ((this.showMeridian && name === 'meridian') || (this.showSeconds && name === 'second') || (!this.showMeridian && !this.showSeconds && name === 'minute')) {\n          return this.hideWidget();\n        }\n        break;\n      case 27: // escape\n        this.hideWidget();\n        break;\n      case 38: // up arrow\n        e.preventDefault();\n        switch (name) {\n        case 'hour':\n          this.incrementHour();\n          break;\n        case 'minute':\n          this.incrementMinute();\n          break;\n        case 'second':\n          this.incrementSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          break;\n        }\n        this.setTime(this.getTime());\n        $input.get(0).setSelectionRange(0,2);\n        break;\n      case 40: // down arrow\n        e.preventDefault();\n        switch (name) {\n        case 'hour':\n          this.decrementHour();\n          break;\n        case 'minute':\n          this.decrementMinute();\n          break;\n        case 'second':\n          this.decrementSecond();\n          break;\n        case 'meridian':\n          this.toggleMeridian();\n          break;\n        }\n        this.setTime(this.getTime());\n        $input.get(0).setSelectionRange(0,2);\n        break;\n      }\n    },\n\n    widgetKeyup: function(e) {\n      if ((e.keyCode === 65) || (e.keyCode === 77) || (e.keyCode === 80) || (e.keyCode === 46) || (e.keyCode === 8) || (e.keyCode >= 46 && e.keyCode <= 57)) {\n        this.updateFromWidgetInputs();\n      }\n    }\n  };\n\n  //TIMEPICKER PLUGIN DEFINITION\n  $.fn.timepicker = function(option) {\n    var args = Array.apply(null, arguments);\n    args.shift();\n    return this.each(function() {\n      var $this = $(this),\n        data = $this.data('timepicker'),\n        options = typeof option === 'object' && option;\n\n      if (!data) {\n        $this.data('timepicker', (data = new Timepicker(this, $.extend({}, $.fn.timepicker.defaults, options, $(this).data()))));\n      }\n\n      if (typeof option === 'string') {\n        data[option].apply(data, args);\n      }\n    });\n  };\n\n  $.fn.timepicker.defaults = {\n    defaultTime: 'current',\n    disableFocus: false,\n    disableMousewheel: false,\n    isOpen: false,\n    minuteStep: 15,\n    modalBackdrop: false,\n    orientation: { x: 'auto', y: 'auto'},\n    secondStep: 15,\n    showSeconds: false,\n    showInputs: true,\n    showMeridian: true,\n    template: 'dropdown',\n    appendWidgetTo: 'body',\n    showWidgetOnAddonClick: true\n  };\n\n  $.fn.timepicker.Constructor = Timepicker;\n\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.css",
    "content": "ul.wysihtml5-toolbar {\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: block;\n}\n\nul.wysihtml5-toolbar:after {\n\tclear: both;\n\tdisplay: table;\n\tcontent: \"\";\n}\n\nul.wysihtml5-toolbar > li {\n\tfloat: left;\n\tdisplay: list-item;\n\tlist-style: none;\n\tmargin: 0 5px 10px 0;\n}\n\nul.wysihtml5-toolbar a[data-wysihtml5-command=bold] {\n\tfont-weight: bold;\n}\n\nul.wysihtml5-toolbar a[data-wysihtml5-command=italic] {\n\tfont-style: italic;\n}\n\nul.wysihtml5-toolbar a[data-wysihtml5-command=underline] {\n\ttext-decoration: underline;\n}\n\nul.wysihtml5-toolbar a.btn.wysihtml5-command-active {\n\tbackground-image: none;\n\t-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);\n\t-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);\n\tbox-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);\n\tbackground-color: #E6E6E6;\n\tbackground-color: #D9D9D9;\n\toutline: 0;\n}\n\nul.wysihtml5-commands-disabled .dropdown-menu {\n\tdisplay: none !important;\n}\n\nul.wysihtml5-toolbar div.wysihtml5-colors {\n  display:block;\n  width: 50px;\n  height: 20px;\n  margin-top: 2px;\n  margin-left: 5px;\n  position: absolute;\n  pointer-events: none;\n}\n\nul.wysihtml5-toolbar a.wysihtml5-colors-title {\n  padding-left: 70px;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"black\"] {\n  background: black !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"silver\"] {\n  background: silver !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"gray\"] {\n  background: gray !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"maroon\"] {\n  background: maroon !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"red\"] {\n  background: red !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"purple\"] {\n  background: purple !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"green\"] {\n  background: green !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"olive\"] {\n  background: olive !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"navy\"] {\n  background: navy !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"blue\"] {\n  background: blue !important;\n}\n\nul.wysihtml5-toolbar div[data-wysihtml5-command-value=\"orange\"] {\n  background: orange !important;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.js",
    "content": "!function($, wysi) {\n    \"use strict\";\n\n    var tpl = {\n        \"font-styles\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li class='dropdown'>\" +\n              \"<a class='btn default dropdown-toggle\" + size + \"' data-toggle='dropdown' href='#'>\" +\n              \"<i class='icon-font'></i>&nbsp;<span class='current-font'>\" + locale.font_styles.normal + \"</span>&nbsp;<b class='caret'></b>\" +\n              \"</a>\" +\n              \"<ul class='dropdown-menu'>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='div' tabindex='-1'>\" + locale.font_styles.normal + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h1' tabindex='-1'>\" + locale.font_styles.h1 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h2' tabindex='-1'>\" + locale.font_styles.h2 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h3' tabindex='-1'>\" + locale.font_styles.h3 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h4'>\" + locale.font_styles.h4 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h5'>\" + locale.font_styles.h5 + \"</a></li>\" +\n                \"<li><a data-wysihtml5-command='formatBlock' data-wysihtml5-command-value='h6'>\" + locale.font_styles.h6 + \"</a></li>\" +\n              \"</ul>\" +\n            \"</li>\";\n        },\n\n        \"emphasis\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='btn-group'>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='bold' title='CTRL+B' tabindex='-1'>\" + locale.emphasis.bold + \"</a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='italic' title='CTRL+I' tabindex='-1'>\" + locale.emphasis.italic + \"</a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='underline' title='CTRL+U' tabindex='-1'>\" + locale.emphasis.underline + \"</a>\" +\n              \"</div>\" +\n            \"</li>\";\n        },\n\n        \"lists\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='btn-group'>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='insertUnorderedList' title='\" + locale.lists.unordered + \"' tabindex='-1'><i class='fa fa-list'></i></a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='insertOrderedList' title='\" + locale.lists.ordered + \"' tabindex='-1'><i class='fa fa-th-list'></i></a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='Outdent' title='\" + locale.lists.outdent + \"' tabindex='-1'><i class='fa fa-outdent'></i></a>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-command='Indent' title='\" + locale.lists.indent + \"' tabindex='-1'><i class='fa fa-indent'></i></a>\" +\n              \"</div>\" +\n            \"</li>\";\n        },\n\n        \"link\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='bootstrap-wysihtml5-insert-link-modal modal fade'>\" +\n              ($.fn.modalmanager ? \"\" : \"<div class='modal-dialog'>\") +\n              \" <div class='modal-content'>\" +\n                \"<div class='modal-header'>\" +\n                  \"<a class='close' data-dismiss='modal'>&times;</a>\" +\n                  \"<h3>\" + locale.link.insert + \"</h3>\" +\n                \"</div>\" +\n                \"<div class='modal-body'>\" +\n                  \"<input value='http://' class='bootstrap-wysihtml5-insert-link-url form-control input-xlarge'>\" +\n                  \"<label style='margin-top:5px;'> <input type='checkbox' class='bootstrap-wysihtml5-insert-link-target' checked>\" + locale.link.target + \"</label>\" +\n                \"</div>\" +\n                \"<div class='modal-footer'>\" +\n                  \"<a href='#' class='btn default' data-dismiss='modal'>\" + locale.link.cancel + \"</a>\" +\n                  \"<a href='#' class='btn btn-primary' data-dismiss='modal'>\" + locale.link.insert + \"</a>\" +\n                \"</div>\" +\n              \"</div>\" +\n               ($.fn.modalmanager ? \"\" : \"</div>\") +\n              \"</div>\" +\n              \"<a class='btn default\" + size + \"' data-wysihtml5-command='createLink' title='\" + locale.link.insert + \"' tabindex='-1'><i class='fa fa-share'></i></a>\" +\n            \"</li>\";\n        },\n\n        \"image\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='bootstrap-wysihtml5-insert-image-modal modal fade'>\" +\n              ($.fn.modalmanager ? \"\" : \"<div class='modal-dialog'>\") +\n              \" <div class='modal-content'>\" +\n                \"<div class='modal-header'>\" +\n                  \"<a class='close' data-dismiss='modal'>&times;</a>\" +\n                  \"<h3>\" + locale.image.insert + \"</h3>\" +\n                \"</div>\" +\n                \"<div class='modal-body'>\" +\n                  \"<input value='http://' class='bootstrap-wysihtml5-insert-image-url form-control input-xlarge'>\" +\n                \"</div>\" +\n                \"<div class='modal-footer'>\" +\n                  \"<a href='#' class='btn default' data-dismiss='modal'>\" + locale.image.cancel + \"</a>\" +\n                  \"<a href='#' class='btn btn-primary' data-dismiss='modal'>\" + locale.image.insert + \"</a>\" +\n                \"</div>\" +\n              \"</div>\" +\n               ($.fn.modalmanager ? \"\" : \"</div>\") +\n              \"</div>\" +\n              \"<a class='btn default\" + size + \"' data-wysihtml5-command='insertImage' title='\" + locale.image.insert + \"' tabindex='-1'><i class='fa fa-picture-o'></i></a>\" +\n            \"</li>\";\n        },\n\n        \"html\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li>\" +\n              \"<div class='btn-group'>\" +\n                \"<a class='btn default\" + size + \"' data-wysihtml5-action='change_view' title='\" + locale.html.edit + \"' tabindex='-1'><i class='fa fa-pencil'></i></a>\" +\n              \"</div>\" +\n            \"</li>\";\n        },\n\n        \"color\": function(locale, options) {\n            var size = (options && options.size) ? ' btn-'+options.size : '';\n            return \"<li class='dropdown'>\" +\n              \"<a class='btn default dropdown-toggle\" + size + \"' data-toggle='dropdown' href='#' tabindex='-1'>\" +\n                \"<span class='current-color'>\" + locale.colours.black + \"</span>&nbsp;<b class='caret'></b>\" +\n              \"</a>\" +\n              \"<ul class='dropdown-menu'>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='black'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='black'>\" + locale.colours.black + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='silver'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='silver'>\" + locale.colours.silver + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='gray'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='gray'>\" + locale.colours.gray + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='maroon'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='maroon'>\" + locale.colours.maroon + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='red'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='red'>\" + locale.colours.red + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='purple'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='purple'>\" + locale.colours.purple + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='green'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='green'>\" + locale.colours.green + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='olive'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='olive'>\" + locale.colours.olive + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='navy'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='navy'>\" + locale.colours.navy + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='blue'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='blue'>\" + locale.colours.blue + \"</a></li>\" +\n                \"<li><div class='wysihtml5-colors' data-wysihtml5-command-value='orange'></div><a class='wysihtml5-colors-title' data-wysihtml5-command='foreColor' data-wysihtml5-command-value='orange'>\" + locale.colours.orange + \"</a></li>\" +\n              \"</ul>\" +\n            \"</li>\";\n        }\n    };\n\n    var templates = function(key, locale, options) {\n        return tpl[key](locale, options);\n    };\n\n\n    var Wysihtml5 = function(el, options) {\n        this.el = el;\n        var toolbarOpts = options || defaultOptions;\n        for(var t in toolbarOpts.customTemplates) {\n          tpl[t] = toolbarOpts.customTemplates[t];\n        }\n        this.toolbar = this.createToolbar(el, toolbarOpts);\n        this.editor =  this.createEditor(options);\n\n        window.editor = this.editor;\n\n        $('iframe.wysihtml5-sandbox').each(function(i, el){\n            $(el.contentWindow).off('focus.wysihtml5').on({\n                'focus.wysihtml5' : function(){\n                    $('li.dropdown').removeClass('open');\n                }\n            });\n        });\n    };\n\n    Wysihtml5.prototype = {\n\n        constructor: Wysihtml5,\n\n        createEditor: function(options) {\n            options = options || {};\n            \n            // Add the toolbar to a clone of the options object so multiple instances\n            // of the WYISYWG don't break because \"toolbar\" is already defined\n            options = $.extend(true, {}, options);\n            options.toolbar = this.toolbar[0];\n\n            var editor = new wysi.Editor(this.el[0], options);\n\n            if(options && options.events) {\n                for(var eventName in options.events) {\n                    editor.on(eventName, options.events[eventName]);\n                }\n            }\n            return editor;\n        },\n\n        createToolbar: function(el, options) {\n            var self = this;\n            var toolbar = $(\"<ul/>\", {\n                'class' : \"wysihtml5-toolbar\",\n                'style': \"display:none\"\n            });\n            var culture = options.locale || defaultOptions.locale || \"en\";\n            for(var key in defaultOptions) {\n                var value = false;\n\n                if(options[key] !== undefined) {\n                    if(options[key] === true) {\n                        value = true;\n                    }\n                } else {\n                    value = defaultOptions[key];\n                }\n\n                if(value === true) {\n                    toolbar.append(templates(key, locale[culture], options));\n\n                    if(key === \"html\") {\n                        this.initHtml(toolbar);\n                    }\n\n                    if(key === \"link\") {\n                        this.initInsertLink(toolbar);\n                    }\n\n                    if(key === \"image\") {\n                        this.initInsertImage(toolbar);\n                    }\n                }\n            }\n\n            if(options.toolbar) {\n                for(key in options.toolbar) {\n                    toolbar.append(options.toolbar[key]);\n                }\n            }\n\n            toolbar.find(\"a[data-wysihtml5-command='formatBlock']\").click(function(e) {\n                var target = e.target || e.srcElement;\n                var el = $(target);\n                self.toolbar.find('.current-font').text(el.html());\n            });\n\n            toolbar.find(\"a[data-wysihtml5-command='foreColor']\").click(function(e) {\n                var target = e.target || e.srcElement;\n                var el = $(target);\n                self.toolbar.find('.current-color').text(el.html());\n            });\n\n            this.el.before(toolbar);\n\n            return toolbar;\n        },\n\n        initHtml: function(toolbar) {\n            var changeViewSelector = \"a[data-wysihtml5-action='change_view']\";\n            toolbar.find(changeViewSelector).click(function(e) {\n                toolbar.find('a.btn').not(changeViewSelector).toggleClass('disabled');\n            });\n        },\n\n        initInsertImage: function(toolbar) {\n            var self = this;\n            var insertImageModal = toolbar.find('.bootstrap-wysihtml5-insert-image-modal');\n            var urlInput = insertImageModal.find('.bootstrap-wysihtml5-insert-image-url');\n            var insertButton = insertImageModal.find('a.btn-primary');\n            var initialValue = urlInput.val();\n            var caretBookmark;\n\n            var insertImage = function() {\n                var url = urlInput.val();\n                urlInput.val(initialValue);\n                self.editor.currentView.element.focus();\n                if (caretBookmark) {\n                  self.editor.composer.selection.setBookmark(caretBookmark);\n                  caretBookmark = null;\n                }\n                self.editor.composer.commands.exec(\"insertImage\", url);\n            };\n\n            urlInput.keypress(function(e) {\n                if(e.which == 13) {\n                    insertImage();\n                    insertImageModal.modal('hide');\n                }\n            });\n\n            insertButton.click(insertImage);\n\n            insertImageModal.on('shown', function() {\n                urlInput.focus();\n            });\n\n            insertImageModal.on('hide', function() {\n                self.editor.currentView.element.focus();\n            });\n\n            toolbar.find('a[data-wysihtml5-command=insertImage]').click(function() {\n                var activeButton = $(this).hasClass(\"wysihtml5-command-active\");\n\n                if (!activeButton) {\n                    self.editor.currentView.element.focus(false);\n                    caretBookmark = self.editor.composer.selection.getBookmark();\n                    insertImageModal.appendTo('body').modal('show');\n                    insertImageModal.on('click.dismiss.modal', '[data-dismiss=\"modal\"]', function(e) {\n                        e.stopPropagation();\n                    });\n                    return false;\n                }\n                else {\n                    return true;\n                }\n            });\n        },\n\n        initInsertLink: function(toolbar) {\n            var self = this;\n            var insertLinkModal = toolbar.find('.bootstrap-wysihtml5-insert-link-modal');\n            var urlInput = insertLinkModal.find('.bootstrap-wysihtml5-insert-link-url');\n            var targetInput = insertLinkModal.find('.bootstrap-wysihtml5-insert-link-target');\n            var insertButton = insertLinkModal.find('a.btn-primary');\n            var initialValue = urlInput.val();\n            var caretBookmark;\n\n            var insertLink = function() {\n                var url = urlInput.val();\n                urlInput.val(initialValue);\n                self.editor.currentView.element.focus();\n                if (caretBookmark) {\n                  self.editor.composer.selection.setBookmark(caretBookmark);\n                  caretBookmark = null;\n                }\n\n                var newWindow = targetInput.prop(\"checked\");\n                self.editor.composer.commands.exec(\"createLink\", {\n                    'href' : url,\n                    'target' : (newWindow ? '_blank' : '_self'),\n                    'rel' : (newWindow ? 'nofollow' : '')\n                });\n            };\n            var pressedEnter = false;\n\n            urlInput.keypress(function(e) {\n                if(e.which == 13) {\n                    insertLink();\n                    insertLinkModal.modal('hide');\n                }\n            });\n\n            insertButton.click(insertLink);\n\n            insertLinkModal.on('shown', function() {\n                urlInput.focus();\n            });\n\n            insertLinkModal.on('hide', function() {\n                self.editor.currentView.element.focus();\n            });\n\n            toolbar.find('a[data-wysihtml5-command=createLink]').click(function() {\n                var activeButton = $(this).hasClass(\"wysihtml5-command-active\");\n\n                if (!activeButton) {\n                    self.editor.currentView.element.focus(false);\n                    caretBookmark = self.editor.composer.selection.getBookmark();\n                    insertLinkModal.appendTo('body').modal('show');\n                    App.initUniform(); //initialize uniform checkboxes\n                    insertLinkModal.on('click.dismiss.modal', '[data-dismiss=\"modal\"]', function(e) {\n                        e.stopPropagation();\n                    });\n                    return false;\n                }\n                else {\n                    return true;\n                }\n            });\n        }\n    };\n\n    // these define our public api\n    var methods = {\n        resetDefaults: function() {\n            $.fn.wysihtml5.defaultOptions = $.extend(true, {}, $.fn.wysihtml5.defaultOptionsCache);\n        },\n        bypassDefaults: function(options) {\n            return this.each(function () {\n                var $this = $(this);\n                $this.data('wysihtml5', new Wysihtml5($this, options));\n            });\n        },\n        shallowExtend: function (options) {\n            var settings = $.extend({}, $.fn.wysihtml5.defaultOptions, options || {}, $(this).data());\n            var that = this;\n            return methods.bypassDefaults.apply(that, [settings]);\n        },\n        deepExtend: function(options) {\n            var settings = $.extend(true, {}, $.fn.wysihtml5.defaultOptions, options || {});\n            var that = this;\n            return methods.bypassDefaults.apply(that, [settings]);\n        },\n        init: function(options) {\n            var that = this;\n            return methods.shallowExtend.apply(that, [options]);\n        }\n    };\n\n    $.fn.wysihtml5 = function ( method ) {\n        if ( methods[method] ) {\n            return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));\n        } else if ( typeof method === 'object' || ! method ) {\n            return methods.init.apply( this, arguments );\n        } else {\n            $.error( 'Method ' +  method + ' does not exist on jQuery.wysihtml5' );\n        }    \n    };\n\n    $.fn.wysihtml5.Constructor = Wysihtml5;\n\n    var defaultOptions = $.fn.wysihtml5.defaultOptions = {\n        \"font-styles\": true,\n        \"color\": false,\n        \"emphasis\": true,\n        \"lists\": true,\n        \"html\": true,\n        \"link\": true,\n        \"image\": true,\n        events: {},\n        parserRules: {\n            classes: {\n                // (path_to_project/lib/css/wysiwyg-color.css)\n                \"wysiwyg-color-silver\" : 1,\n                \"wysiwyg-color-gray\" : 1,\n                \"wysiwyg-color-white\" : 1,\n                \"wysiwyg-color-maroon\" : 1,\n                \"wysiwyg-color-red\" : 1,\n                \"wysiwyg-color-purple\" : 1,\n                \"wysiwyg-color-fuchsia\" : 1,\n                \"wysiwyg-color-green\" : 1,\n                \"wysiwyg-color-lime\" : 1,\n                \"wysiwyg-color-olive\" : 1,\n                \"wysiwyg-color-yellow\" : 1,\n                \"wysiwyg-color-navy\" : 1,\n                \"wysiwyg-color-blue\" : 1,\n                \"wysiwyg-color-teal\" : 1,\n                \"wysiwyg-color-aqua\" : 1,\n                \"wysiwyg-color-orange\" : 1\n            },\n            tags: {\n                \"b\":  {},\n                \"i\":  {},\n                \"br\": {},\n                \"ol\": {},\n                \"ul\": {},\n                \"li\": {},\n                \"h1\": {},\n                \"h2\": {},\n                \"h3\": {},\n                \"h4\": {},\n                \"h5\": {},\n                \"h6\": {},\n                \"blockquote\": {},\n                \"u\": 1,\n                \"img\": {\n                    \"check_attributes\": {\n                        \"width\": \"numbers\",\n                        \"alt\": \"alt\",\n                        \"src\": \"url\",\n                        \"height\": \"numbers\"\n                    }\n                },\n                \"a\":  {\n                    check_attributes: {\n                        'href': \"url\", // important to avoid XSS\n                        'target': 'alt',\n                        'rel': 'alt'\n                    }\n                },\n                \"span\": 1,\n                \"div\": 1,\n                // to allow save and edit files with code tag hacks\n                \"code\": 1,\n                \"pre\": 1\n            }\n        },\n        stylesheets: [\"wysiwyg-color.css\"], // (path_to_project/lib/css/wysiwyg-color.css)\n        locale: \"en\"\n    };\n\n    if (typeof $.fn.wysihtml5.defaultOptionsCache === 'undefined') {\n        $.fn.wysihtml5.defaultOptionsCache = $.extend(true, {}, $.fn.wysihtml5.defaultOptions);\n    }\n\n    var locale = $.fn.wysihtml5.locale = {\n        en: {\n            font_styles: {\n                normal: \"Normal text\",\n                h1: \"Heading 1\",\n                h2: \"Heading 2\",\n                h3: \"Heading 3\",\n                h4: \"Heading 4\",\n                h5: \"Heading 5\",\n                h6: \"Heading 6\"\n            },\n            emphasis: {\n                bold: \"Bold\",\n                italic: \"Italic\",\n                underline: \"Underline\"\n            },\n            lists: {\n                unordered: \"Unordered list\",\n                ordered: \"Ordered list\",\n                outdent: \"Outdent\",\n                indent: \"Indent\"\n            },\n            link: {\n                insert: \"Insert link\",\n                cancel: \"Cancel\",\n                target: \"Open link in new window\"\n            },\n            image: {\n                insert: \"Insert image\",\n                cancel: \"Cancel\"\n            },\n            html: {\n                edit: \"Edit HTML\"\n            },\n            colours: {\n                black: \"Black\",\n                silver: \"Silver\",\n                gray: \"Grey\",\n                maroon: \"Maroon\",\n                red: \"Red\",\n                purple: \"Purple\",\n                green: \"Green\",\n                olive: \"Olive\",\n                navy: \"Navy\",\n                blue: \"Blue\",\n                orange: \"Orange\"\n            }\n        }\n    };\n\n}(window.jQuery, window.wysihtml5);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ar-AR.js",
    "content": "/**\n * Arabic translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"mo-MD\"] = {\n        font_styles: {\n              normal: \"نص عادي\",\n              h1: \"عنوان رئيسي 1\",\n              h2: \"عنوان رئيسي 2\",\n              h3: \"عنوان رئيسي 3\",\n        },\n        emphasis: {\n              bold: \"عريض\",\n              italic: \"مائل\",\n              underline: \"تحته خط\"\n        },\n        lists: {\n              unordered: \"قائمة منقطة\",\n              ordered: \"قائمة مرقمة\",\n              outdent: \"محاذاه للخارج\",\n              indent: \"محاذاه للداخل\"\n        },\n        link: {\n              insert: \"إضافة رابط\",\n              cancel: \"إلغاء\"\n        },\n        image: {\n              insert: \"إضافة صورة\",\n              cancel: \"إلغاء\"\n        },\n        html: {\n            edit: \"تعديل HTML\"\n        },\n\n        colours: {\n            black: \"أسود\",\n            silver: \"فضي\",\n            gray: \"رمادي\",\n            maroon: \"بني\",\n            red: \"أحمر\",\n            purple: \"بنفسجي\",\n            green: \"أخضر\",\n            olive: \"زيتوني\",\n            navy: \"أزرق قاتم\",\n            blue: \"أزرق نيلي\",\n            orange: \"برتقالي\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.bg-BG.js",
    "content": "/**\n * Bulgarian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"bg-BG\"] = {\n        font_styles: {\n            normal: \"Нормален текст\",\n            h1: \"Заглавие 1\",\n            h2: \"Заглавие 2\",\n            h3: \"Заглавие 3\"\n        },\n        emphasis: {\n            bold: \"Удебелен\",\n            italic: \"Курсив\",\n            underline: \"Подчертан\"\n        },\n        lists: {\n            unordered: \"Неподреден списък\",\n            ordered: \"Подреден списък\",\n            outdent: \"Намали отстояние\",\n            indent: \"Увеличи отстояние\"\n        },\n        link: {\n            insert: \"Вмъкни връзка\",\n            cancel: \"Отмени\"\n        },\n        image: {\n            insert: \"Вмъкни картинка\",\n            cancel: \"Отмени\"\n        },\n        html: {\n            edit: \"Редакртирай HTML\"\n        },\n        colours: {\n            black: \"Черен\",\n            silver: \"Сребърен\",\n            gray: \"Сив\",\n            maroon: \"Коричневый\",\n            red: \"Червен\",\n            purple: \"Виолетов\",\n            green: \"Зелен\",\n            olive: \"Маслинен\",\n            navy: \"Морско син\",\n            blue: \"Син\",\n            orange: \"Оранжев\"\n        }\n    };\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ca-CT.js",
    "content": "/**\n * Catalan translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ca-CT\"] = {\n        font_styles: {\n              normal: \"Text normal\",\n              h1: \"Títol 1\",\n              h2: \"Títol 2\"\n        },\n        emphasis: {\n              bold: \"Negreta\",\n              italic: \"Cursiva\",\n              underline: \"Subratllat\"\n        },\n        lists: {\n              unordered: \"Llista desordenada\",\n              ordered: \"Llista ordenada\",\n              outdent: \"Esborrar tabulació\",\n              indent: \"Afegir tabulació\"\n        },\n        link: {\n              insert: \"Afegir enllaç\",\n              cancel: \"Cancelar\"\n        },\n        image: {\n              insert: \"Afegir imatge\",\n              cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n            black: \"Negre\",\n            silver: \"Plata\",\n            gray: \"Gris\",\n            maroon: \"Marró\",\n            red: \"Vermell\",\n            purple: \"Porpre\",\n            green: \"Verd\",\n            olive: \"Oliva\",\n            navy: \"Blau marí\",\n            blue: \"Blau\",\n            orange: \"Taronja\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.cs-CZ.js",
    "content": "/**\n * Czech translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"cs-CZ\"] = {\n        font_styles: {\n            normal: \"Normální text\",\n            h1: \"Nadpis úrovně 1\",\n            h2: \"Nadpis úrovně 2\",\n            h3: \"Nadpis úrovně 3\"\n        },\n        emphasis: {\n            bold: \"Tučné\",\n            italic: \"Kurzíva\",\n            underline: \"Podtržení\"\n        },\n        lists: {\n            unordered: \"Seznam s odrážkami\",\n            ordered: \"Číslovaný seznam\",\n            outdent: \"Zvětšit odsazení\",\n            indent: \"Zmenšit odsazení\"\n        },\n        link: {\n            insert: \"Vložit odkaz\",\n            cancel: \"Zrušit\"\n        },\n        image: {\n            insert: \"Vložit obrázek\",\n            cancel: \"Zrušit\"\n        },\n        html: {\n            edit: \"Upravit HTML\"\n        },\n        colours: {\n            black: \"Černá\",\n            silver: \"Stříbrná\",\n            gray: \"Šedá\",\n            maroon: \"Vínová\",\n            red: \"Červená\",\n            purple: \"Fialová\",\n            green: \"Zelená\",\n            olive: \"Olivová\",\n            navy: \"Tmavomodrá\",\n            blue: \"Modrá\",\n            orange: \"Oranžová\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.da-DK.js",
    "content": "/**\n* Danish translations\n*/\n(function($){\n    $.fn.wysihtml5.locale[\"da-DK\"] = {\n        font_styles: {\n            normal: \"Normal tekst\",\n            h1: \"Overskrift 1\",\n            h2: \"Overskrift 2\",\n            h3: \"Overskrift 3\"\n        },\n        emphasis: {\n            bold: \"Fed\",\n            italic: \"Kursiv\",\n            underline: \"Understreget\"\n        },\n        lists: {\n            unordered: \"Uordnet liste\",\n            ordered: \"Ordnet liste\",\n            outdent: \"Udryk\",\n            indent: \"Indryk\"\n        },\n        link: {\n            insert: \"Indsæt Link\",\n            cancel: \"Annuler\"\n        },\n        image: {\n            insert: \"Indsæt billede\",\n            cancel: \"Annuler\"\n        },\n        html: {\n            edit: \"Rediger HTML\"\n        },\n        colours: {\n            black: \"Sort\",\n            silver: \"Sølv\",\n            gray: \"Grå\",\n            maroon: \"Mørkerød\",\n            red: \"Rød\",\n            purple: \"Lilla\",\n            green: \"Grøn\",\n            olive: \"Lysegrøn\",\n            navy: \"Mørkeblå\",\n            blue: \"Blå\",\n            orange: \"Orange\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.de-DE.js",
    "content": "/**\n * German translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"de-DE\"] = {\n        font_styles: {\n            normal: \"Normaler Text\",\n            h1: \"Überschrift 1\",\n            h2: \"Überschrift 2\",\n            h3: \"Überschrift 3\"\n        },\n        emphasis: {\n            bold: \"Fett\",\n            italic: \"Kursiv\",\n            underline: \"Unterstrichen\"\n        },\n        lists: {\n            unordered: \"Ungeordnete Liste\",\n            ordered: \"Geordnete Liste\",\n            outdent: \"Einzug verkleinern\",\n            indent: \"Einzug vergrößern\"\n        },\n        link: {\n            insert: \"Link einfügen\",\n            cancel: \"Abbrechen\",\n            target: \"Link in neuen Fenster öffnen\"\n        },\n        image: {\n            insert: \"Bild einfügen\",\n            cancel: \"Abbrechen\"\n        },\n        html: {\n            edit: \"HTML bearbeiten\"\n        },\n        colours: {\n            black: \"Schwarz\",\n            silver: \"Silber\",\n            gray: \"Grau\",\n            maroon: \"Kastanienbraun\",\n            red: \"Rot\",\n            purple: \"Violett\",\n            green: \"Grün\",\n            olive: \"Olivgrün\",\n            navy: \"Marineblau\",\n            blue: \"Blau\",\n            orange: \"Orange\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.el-GR.js",
    "content": "/**\n * Greek translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"el-GR\"] = {\n        font_styles: {\n              normal: \"Απλό κείμενο\",\n              h1: \"Κεφαλίδα 1\",\n              h2: \"Κεφαλίδα 2\",\n        \t  h3: \"Κεφαλίδα 3\"\t\n\t\t},\n        emphasis: {\n              bold: \"B\",\n              italic: \"I\",\n              underline: \"U\"\n        },\n        lists: {\n              unordered: \"Λίστα με κουκκίδες\",\n              ordered: \"Αριθμημένη λίστα\",\n              outdent: \"Μείωση εσοχής\",\n              indent: \"Αύξηση εσοχής\"\n        },\n        link: {\n              insert: \"Εισαγωγή Συνδέσμου\",\n              cancel: \"Άκυρο\"\n        },\n        image: {\n              insert: \"Εισαγωγή Εικόνας\",\n              cancel: \"Άκυρο\"\n        },\n        html: {\n            edit: \"Επεξεργασία HTML\"\n        },\n        colours: {\n            black: \"Μαύρο\",\n            silver: \"Ασημί\",\n            gray: \"Γκρι\",\n            maroon: \"Καφέ\",\n            red: \"Κόκκινο\",\n            purple: \"Μωβ\",\n            green: \"Πράσινο\",\n            olive: \"Λαδί\",\n            navy: \"Βαθύ Μπλε\",\n            blue: \"Μπλε\",\n            orange: \"Πορτοκαλί\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.es-AR.js",
    "content": "/**\n * Spanish Argenina translation for bootstrap-wysihtml5\n */\n\n(function($){\n    $.fn.wysihtml5.locale[\"es-AR\"] = {\n        font_styles: {\n            normal: \"Texto normal\",\n            h1: \"Título 1\",\n            h2: \"Título 2\",\n            h3: \"Título 3\"\n        },\n        emphasis: {\n            bold: \"Negrita\",\n            italic: \"Itálica\",\n            underline: \"Subrayado\"\n        },\n        lists: {\n            ordered: \"Lista ordenada\",\n            unordered: \"Lista desordenada\",\n            indent: \"Agregar sangría\",\n            outdent: \"Eliminar sangría\"\n        },\n        link: {\n            insert: \"Insertar enlace\",\n            cancel: \"Cancelar\"\n        },\n        image: {\n            insert: \"Insertar imágen\",\n            cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n            black: \"Negro\",\n            silver: \"Plata\",\n            gray: \"Gris\",\n            maroon: \"Marrón\",\n            red: \"Rojo\",\n            purple: \"Púrpura\",\n            green: \"Verde\",\n            olive: \"Oliva\",\n            navy: \"Azul Marino\",\n            blue: \"Azul\",\n            orange: \"Naranja\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.es-ES.js",
    "content": "/**\n * Uruguayan spanish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"es-ES\"] = {\n        font_styles: {\n              normal: \"Texto normal\",\n              h1: \"Título 1\",\n              h2: \"Título 2\",\n              h3: \"Título 3\"\n        },\n        emphasis: {\n              bold: \"Negrita\",\n              italic: \"Itálica\",\n              underline: \"Subrayado\"\n        },\n        lists: {\n              unordered: \"Lista desordenada\",\n              ordered: \"Lista ordenada\",\n              outdent: \"Eliminar sangría\",\n              indent: \"Agregar sangría\"\n        },\n        link: {\n              insert: \"Insertar enlace\",\n              cancel: \"Cancelar\"\n        },\n        image: {\n              insert: \"Insertar imágen\",\n              cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n          black: \"Negro\",\n          silver: \"Plata\",\n          gray: \"Gris\",\n          maroon: \"Marrón\",\n          red: \"Rojo\",\n          purple: \"Púrpura\",\n          green: \"Verde\",\n          olive: \"Oliva\",\n          navy: \"Azul Marino\",\n          blue: \"Azul\",\n          orange: \"Naranja\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.fr-FR.js",
    "content": "/**\n * French translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"fr-FR\"] = {\n        font_styles: {\n              normal: \"Texte normal\",\n              h1: \"Titre 1\",\n              h2: \"Titre 2\",\n              h3: \"Titre 3\"\n        },\n        emphasis: {\n              bold: \"Gras\",\n              italic: \"Italique\",\n              underline: \"Souligné\"\n        },\n        lists: {\n              unordered: \"Liste à puces\",\n              ordered: \"Liste numérotée\",\n              outdent: \"Diminuer le retrait\",\n              indent: \"Augmenter le retrait\",\n              indered: \"Augmenter le retrait\"\n        },\n        link: {\n              insert: \"Insérer un lien\",\n              cancel: \"Annuler\"\n        },\n        image: {\n              insert: \"Insérer une image\",\n              cancel: \"Annuler\"\n        },\n        html: {\n            edit: \"Editer en HTML\"\n        },\n        colours: {\n          black: \"Noir\",\n          silver: \"Gris clair\",\n          gray: \"Gris\",\n          maroon: \"Marron\",\n          red: \"Rouge\",\n          purple: \"Pourpre\",\n          green: \"Vert\",\n          olive: \"Olive\",\n          navy: \"Bleu marine\",\n          blue: \"Bleu\",\n          orange: \"Orange\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.hr-HR.js",
    "content": "/**\n * Croatian localisation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"hr-HR\"] = {\n        font_styles: {\n            normal: \"Normalan tekst\",\n            h1: \"Naslov 1\",\n            h2: \"Naslov 2\",\n            h3: \"Naslov 3\"\n        },\n        emphasis: {\n            bold: \"Podebljano\",\n            italic: \"Nakrivljeno\",\n            underline: \"Podcrtano\"\n        },\n        lists: {\n            unordered: \"Nesortirana lista\",\n            ordered: \"Sortirana lista\",\n            outdent: \"Izdubi\",\n            indent: \"Udubi\"\n        },\n        link: {\n            insert: \"Umetni poveznicu\",\n            cancel: \"Otkaži\"\n        },\n        image: {\n            insert: \"Umetni sliku\",\n            cancel: \"Otkaži\"\n        },\n        html: {\n            edit: \"Izmjeni HTML\"\n        },\n        colours: {\n            black: \"Crna\",\n            silver: \"Srebrna\",\n            gray: \"Siva\",\n            maroon: \"Kestenjasta\",\n            red: \"Crvena\",\n            purple: \"Ljubičasta\",\n            green: \"Zelena\",\n            olive: \"Maslinasta\",\n            navy: \"Mornarska\",\n            blue: \"Plava\",\n            orange: \"Narandžasta\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.it-IT.js",
    "content": "/**\n * Italian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"it-IT\"] = {\n        font_styles: {\n              normal: \"Testo normale\",\n              h1: \"Titolo 1\",\n              h2: \"Titolo 2\"\n        },\n        emphasis: {\n              bold: \"Grassetto\",\n              italic: \"Corsivo\",\n              underline: \"Sottolineato\"\n        },\n        lists: {\n              unordered: \"Lista non ordinata\",\n              ordered: \"Lista ordinata\",\n              outdent: \"Elimina rientro\",\n              indent: \"Aggiungi rientro\"\n        },\n        link: {\n              insert: \"Inserisci link\",\n              cancel: \"Annulla\"\n        },\n        image: {\n              insert: \"Inserisci immagine\",\n              cancel: \"Annulla\"\n        },\n        html: {\n            edit: \"Modifica HTML\"\n        },\n        colours: {\n          black: \"Nero\",\n          silver: \"Argento\",\n          gray: \"Grigio\",\n          maroon: \"Marrone\",\n          red: \"Rosso\",\n          purple: \"Viola\",\n          green: \"Verde\",\n          olive: \"Oliva\",\n          navy: \"Blu Marino\",\n          blue: \"Blu\",\n          orange: \"Arancio\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ja-JP.js",
    "content": "/**\n * Japanese translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ja-JP\"] = {\n        font_styles: {\n            normal: \"通常の文字\",\n            h1: \"見出し1\",\n            h2: \"見出し2\",\n            h3: \"見出し3\"\n        },\n        emphasis: {\n            bold: \"太字\",\n            italic: \"斜体\",\n            underline: \"下線\"\n        },\n        lists: {\n            unordered: \"点字リスト\",\n            ordered: \"数字リスト\",\n            outdent: \"左寄せ\",\n            indent: \"右寄せ\"\n        },\n        link: {\n            insert: \"リンクの挿入\",\n            cancel: \"キャンセル\"\n        },\n        image: {\n            insert: \"画像の挿入\",\n            cancel: \"キャンセル\"\n        },\n        html: {\n            edit: \"HTMLを編集\"\n        },\n        colours: {\n            black: \"黒色\",\n            silver: \"シルバー\",\n            gray: \"グレー\",\n            maroon: \"栗色\",\n            red: \"赤色\",\n            purple: \"紫色\",\n            green: \"緑色\",\n            olive: \"オリーブ\",\n            navy: \"ネイビー\",\n            blue: \"青色\",\n            orange: \"オレンジ\"\n        }\n\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ko-KR.js",
    "content": "/**\n * Korean translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ko-KR\"] = {\n        font_styles: {\n            normal: \"일반\",\n            h1: \"헤드라인 1\",\n            h2: \"헤드라인 2\",\n            h3: \"헤드라인 3\"\n        },\n        emphasis: {\n            bold: \"굵게\",\n            italic: \"기울게\",\n            underline: \"밑줄\"\n        },\n        lists: {\n            unordered: \"기호목록\",\n            ordered: \"숫자목록\",\n            outdent: \"내어쓰기\",\n            indent: \"들여쓰기\"\n        },\n        link: {\n            insert: \"링크 삽입\",\n            cancel: \"취소\"\n        },\n        image: {\n            insert: \"이미지 삽입\",\n            cancel: \"취소\"\n        },\n        html: {\n            edit: \"HTML 편집\"\n        },\n        colours: {\n            black: \"검은색\",\n            silver: \"은색\",\n            gray: \"회색\",\n            maroon: \"고동색\",\n            red: \"빨간색\",\n            purple: \"보라색\",\n            green: \"초록색\",\n            olive: \"올리브\",\n            navy: \"네이비\",\n            blue: \"파란색\",\n            orange: \"주황색\"\n        }\n\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.lt-LT.js",
    "content": "/**\n * Lithuanian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"lt-LT\"] = {\n        font_styles: {\n              normal: \"Normalus\",\n              h1: \"Antraštė 1\",\n              h2: \"Antraštė 2\",\n              h3: \"Antraštė 3\"\n        },\n        emphasis: {\n              bold: \"Pastorintas\",\n              italic: \"Kursyvas\",\n              underline: \"Pabrauktas\"\n        },\n        lists: {\n              unordered: \"Suženklintas sąrašas\",\n              ordered: \"Numeruotas sąrašas\",\n              outdent: \"Padidinti įtrauką\",\n              indent: \"Sumažinti įtrauką\"\n        },\n        link: {\n              insert: \"Įterpti nuorodą\",\n              cancel: \"Atšaukti\"\n        },\n        image: {\n              insert: \"Įterpti atvaizdą\",\n              cancel: \"Atšaukti\"\n        },\n        html: {\n            edit: \"Redaguoti HTML\"\n        },\n        colours: {\n            black: \"Juoda\",\n            silver: \"Sidabrinė\",\n            gray: \"Pilka\",\n            maroon: \"Kaštoninė\",\n            red: \"Raudona\",\n            purple: \"Violetinė\",\n            green: \"Žalia\",\n            olive: \"Gelsvai žalia\",\n            navy: \"Tamsiai mėlyna\",\n            blue: \"Mėlyna\",\n            orange: \"Oranžinė\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.mo-MD.js",
    "content": "/**\n * Moldavian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"mo-MD\"] = {\n        font_styles: {\n              normal: \"Normal\",\n              h1: \"Titlu 1\",\n              h2: \"Titlu 2\"\n        },\n        emphasis: {\n              bold: \"Bold\",\n              italic: \"Cursiv\",\n              underline: \"Accentuat\"\n        },\n        lists: {\n              unordered: \"Neordonata\",\n              ordered: \"Ordonata\",\n              outdent: \"Margine\",\n              indent: \"zimțuire\"\n        },\n        link: {\n              insert: \"Indroduce link-ul\",\n              cancel: \"Anula\"\n        },\n        image: {\n              insert: \"Insera imagina\",\n              cancel: \"Anula\"\n        },\n        html: {\n            edit: \"Editare HTML\"\n        },\n\n        colours: {\n            black: \"Negru\",\n            silver: \"Argint\",\n            gray: \"Gri\",\n            maroon: \"Castaniu\",\n            red: \"Roșu\",\n            purple: \"Violet\",\n            green: \"Verde\",\n            olive: \"Oliv\",\n            navy: \"Marin\",\n            blue: \"Albastru\",\n            orange: \"Portocaliu\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.nb-NB.js",
    "content": "/**\n * Norwegian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"nb-NB\"] = {\n        font_styles: {\n              normal: \"Normal tekst\",\n              h1: \"Tittel 1\",\n              h2: \"Tittel 2\",\n              h3: \"Tittel 3\"\n        },\n        emphasis: {\n              bold: \"Fet\",\n              italic: \"Kursiv\",\n              underline: \"Understrekning\"\n        },\n        lists: {\n              unordered: \"Usortert\",\n              ordered: \"Sortert\",\n              outdent: \"Detabuler\",\n              indent: \"Tabuler\",\n              indered: \"Tabuler\"\n        },\n        link: {\n              insert: \"Sett inn lenke\",\n              cancel: \"Avbryt\"\n        },\n        image: {\n              insert: \"Sett inn bilde\",\n              cancel: \"Avbryt\"\n        },\n        html: {\n            edit: \"Rediger HTML\"\n        },\n        colours: {\n          black: \"Svart\",\n          silver: \"Sølv\",\n          gray: \"Grå\",\n          maroon: \"Brun\",\n          red: \"Rød\",\n          purple: \"Lilla\",\n          green: \"Grønn\",\n          olive: \"Oliven\",\n          navy: \"Marineblå\",\n          blue: \"Blå\",\n          orange: \"Oransj\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.nl-NL.js",
    "content": "/**\n * Dutch translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"nl-NL\"] = {\n        font_styles: {\n            normal: \"Normale Tekst\",\n            h1: \"Kop 1\",\n            h2: \"Kop 2\",\n            h3: \"Kop 3\"\n        },\n        emphasis: {\n            bold: \"Vet\",\n            italic: \"Cursief\",\n            underline: \"Onderstrepen\"\n        },\n        lists: {\n            unordered: \"Ongeordende lijst\",\n            ordered: \"Geordende lijst\",\n            outdent: \"Inspringen verkleinen\",\n            indent: \"Inspringen vergroten\"\n        },\n        link: {\n            insert: \"Link invoegen\",\n            cancel: \"Annuleren\"\n        },\n        image: {\n            insert: \"Afbeelding invoegen\",\n            cancel: \"Annuleren\"\n        },\n        html: {\n            edit: \"HTML bewerken\"\n        },\n        colours: {\n            black: \"Zwart\",\n            silver: \"Zilver\",\n            gray: \"Grijs\",\n            maroon: \"Kastanjebruin\",\n            red: \"Rood\",\n            purple: \"Paars\",\n            green: \"Groen\",\n            olive: \"Olijfgroen\",\n            navy: \"Donkerblauw\",\n            blue: \"Blauw\",\n            orange: \"Oranje\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.pl-PL.js",
    "content": "/**\n * Polish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"pl-PL\"] = {\n        font_styles: {\n            normal: \"Tekst podstawowy\",\n            h1: \"Nagłówek 1\",\n            h2: \"Nagłówek 2\",\n            h3: \"Nagłówek 3\"\n        },\n        emphasis: {\n            bold: \"Pogrubienie\",\n            italic: \"Kursywa\",\n            underline: \"Podkreślenie\"\n        },\n        lists: {\n            unordered: \"Lista wypunktowana\",\n            ordered: \"Lista numerowana\",\n            outdent: \"Zwiększ wcięcie\",\n            indent: \"Zmniejsz wcięcie\"\n        },\n        link: {\n            insert: \"Wstaw odnośnik\",\n            cancel: \"Anuluj\"\n        },\n        image: {\n            insert: \"Wstaw obrazek\",\n            cancel: \"Anuluj\"\n        },\n        html: {\n            edit: \"Edycja HTML\"\n        },\n        colours: {\n            black: \"Czarny\",\n            silver: \"Srebrny\",\n            gray: \"Szary\",\n            maroon: \"Kasztanowy\",\n            red: \"Czerwony\",\n            purple: \"Fioletowy\",\n            green: \"Zielony\",\n            olive: \"Oliwkowy\",\n            navy: \"Granatowy\",\n            blue: \"Niebieski\",\n            orange: \"Pomarańczowy\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.pt-BR.js",
    "content": "/**\n * Brazilian portuguese translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"pt-BR\"] = {\n        font_styles: {\n            normal: \"Texto normal\",\n            h1: \"Título 1\",\n            h2: \"Título 2\",\n            h3: \"Título 3\"\n        },\n        emphasis: {\n            bold: \"Negrito\",\n            italic: \"Itálico\",\n            underline: \"Sublinhado\"\n        },\n        lists: {\n            unordered: \"Lista\",\n            ordered: \"Lista numerada\",\n            outdent: \"Remover indentação\",\n            indent: \"Indentar\"\n        },\n        link: {\n            insert: \"Inserir link\",\n            cancel: \"Cancelar\"\n        },\n        image: {\n            insert: \"Inserir imagem\",\n            cancel: \"Cancelar\"\n        },\n        html: {\n            edit: \"Editar HTML\"\n        },\n        colours: {\n            black: \"Preto\",\n            silver: \"Prata\",\n            gray: \"Cinza\",\n            maroon: \"Marrom\",\n            red: \"Vermelho\",\n            purple: \"Roxo\",\n            green: \"Verde\",\n            olive: \"Oliva\",\n            navy: \"Marinho\",\n            blue: \"Azul\",\n            orange: \"Laranja\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ru-RU.js",
    "content": "/**\n * Russian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ru-RU\"] = {\n        font_styles: {\n            normal: \"Обычный текст\",\n            h1: \"Заголовок 1\",\n            h2: \"Заголовок 2\",\n            h3: \"Заголовок 3\"\n        },\n        emphasis: {\n            bold: \"Полужирный\",\n            italic: \"Курсив\",\n            underline: \"Подчёркнутый\"\n        },\n        lists: {\n            unordered: \"Маркированный список\",\n            ordered: \"Нумерованный список\",\n            outdent: \"Уменьшить отступ\",\n            indent: \"Увеличить отступ\"\n        },\n        link: {\n            insert: \"Вставить ссылку\",\n            cancel: \"Отмена\"\n        },\n        image: {\n            insert: \"Вставить изображение\",\n            cancel: \"Отмена\"\n        },\n        html: {\n            edit: \"HTML код\"\n        },\n        colours: {\n            black: \"Чёрный\",\n            silver: \"Серебряный\",\n            gray: \"Серый\",\n            maroon: \"Коричневый\",\n            red: \"Красный\",\n            purple: \"Фиолетовый\",\n            green: \"Зелёный\",\n            olive: \"Оливковый\",\n            navy: \"Тёмно-синий\",\n            blue: \"Синий\",\n            orange: \"Оранжевый\"\n        }\n    };\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.sk-SK.js",
    "content": "/**\n * Slovak translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"sk-SK\"] = {\n        font_styles: {\n            normal: \"Normálny text\",\n            h1: \"Nadpis úrovne 1\",\n            h2: \"Nadpis úrovne 2\",\n            h3: \"Nadpis úrovne 3\"\n        },\n        emphasis: {\n            bold: \"Tučné\",\n            italic: \"Kurzíva\",\n            underline: \"Podčiarknuté\"\n        },\n        lists: {\n            unordered: \"Neusporiadaný zoznam\",\n            ordered: \"Číslovaný zoznam\",\n            outdent: \"Zväčšiť odsadenie\",\n            indent: \"Zmenšiť odsadenie\"\n        },\n        link: {\n            insert: \"Vložiť odkaz\",\n            cancel: \"Zrušiť\"\n        },\n        image: {\n            insert: \"Vložiť obrázok\",\n            cancel: \"Zrušiť\"\n        },\n        html: {\n            edit: \"Editovať HTML\"\n        },\n        colours: {\n            black: \"Čierna\",\n            silver: \"Strieborná\",\n            gray: \"Šedá\",\n            maroon: \"Bordová\",\n            red: \"Červená\",\n            purple: \"Fialová\",\n            green: \"Zelená\",\n            olive: \"Olivová\",\n            navy: \"Tmavomodrá\",\n            blue: \"Modrá\",\n            orange: \"Oranžová\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.sv-SE.js",
    "content": "/**\n * Swedish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"sv-SE\"] = {\n        font_styles: {\n            normal: \"Normal Text\",\n            h1: \"Rubrik 1\",\n            h2: \"Rubrik 2\",\n            h3: \"Rubrik 3\"\n        },\n        emphasis: {\n            bold: \"Fet\",\n            italic: \"Kursiv\",\n            underline: \"Understruken\"\n        },\n        lists: {\n            unordered: \"Osorterad lista\",\n            ordered: \"Sorterad lista\",\n            outdent: \"Minska indrag\",\n            indent: \"Öka indrag\"\n        },\n        link: {\n            insert: \"Lägg till länk\",\n            cancel: \"Avbryt\"\n        },\n        image: {\n            insert: \"Lägg till Bild\",\n            cancel: \"Avbryt\"\n        },\n        html: {\n            edit: \"Redigera HTML\"\n        },\n        colours: {\n            black: \"Svart\",\n            silver: \"Silver\",\n            gray: \"Grå\",\n            maroon: \"Kastaniebrun\",\n            red: \"Röd\",\n            purple: \"Lila\",\n            green: \"Grön\",\n            olive: \"Olivgrön\",\n            navy: \"Marinblå\",\n            blue: \"Blå\",\n            orange: \"Orange\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.tr-TR.js",
    "content": "/**\n * Turkish translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"tr-TR\"] = {\n        font_styles: {\n            normal: \"Normal\",\n            h1: \"Başlık 1\",\n            h2: \"Başlık 2\",\n            h3: \"Başlık 3\"\n        },\n        emphasis: {\n            bold: \"Kalın\",\n            italic: \"İtalik\",\n            underline: \"Altı Çizili\"\n        },\n        lists: {\n            unordered: \"Sırasız Liste\",\n            ordered: \"Sıralı Liste\",\n            outdent: \"Girintiyi Azalt\",\n            indent: \"Girintiyi Arttır\"\n        },\n        link: {\n            insert: \"Ekle\",\n            cancel: \"Vazgeç\"\n        },\n        image: {\n            insert: \"Ekle\",\n            cancel: \"Vazgeç\"\n        },\n        html: {\n            edit: \"HTML Göster\"\n        },\n        colours: {\n            black: \"Siyah\",\n            silver: \"Gümüş\",\n            gray: \"Gri\",\n            maroon: \"Vişne Çürüğü\",\n            red: \"Kırmızı\",\n            purple: \"Pembe\",\n            green: \"Yeşil\",\n            olive: \"Zeytin Yeşili\",\n            navy: \"Lacivert\",\n            blue: \"Mavi\",\n            orange: \"Turuncu\"\n        }\n    };\n}(jQuery));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.ua-UA.js",
    "content": "/**\n * Ukrainian translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"ua-UA\"] = {\n        font_styles: {\n            normal: \"Звичайний текст\",\n            h1: \"Заголовок 1\",\n            h2: \"Заголовок 2\",\n            h3: \"Заголовок 3\"\n        },\n        emphasis: {\n            bold: \"Напівжирний\",\n            italic: \"Курсив\",\n            underline: \"Підкреслений\"\n        },\n        lists: {\n            unordered: \"Маркований список\",\n            ordered: \"Нумерований список\",\n            outdent: \"Зменшити відступ\",\n            indent: \"Збільшити відступ\"\n        },\n        link: {\n            insert: \"Вставити посилання\",\n            cancel: \"Відміна\"\n        },\n        image: {\n            insert: \"Вставити зображення\",\n            cancel: \"Відміна\"\n        },\n        html: {\n            edit: \"HTML код\"\n        },\n        colours: {\n            black: \"Чорний\",\n            silver: \"Срібний\",\n            gray: \"Сірий\",\n            maroon: \"Коричневий\",\n            red: \"Червоний\",\n            purple: \"Фіолетовий\",\n            green: \"Зелений\",\n            olive: \"Оливковий\",\n            navy: \"Темно-синій\",\n            blue: \"Синій\",\n            orange: \"Помаранчевий\"\n        }\n    };\n}(jQuery));\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.zh-CN.js",
    "content": "/**\n * Chinese translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"zh-CN\"] = {\n        font_styles: {\n            normal: \"正文\",\n            h1: \"标题 1\",\n            h2: \"标题 2\",\n            h3: \"标题 3\"\n        },\n        emphasis: {\n            bold: \"粗体\",\n            italic: \"斜体\",\n            underline: \"下划线\"\n        },\n        lists: {\n            unordered: \"项目符号\",\n            ordered: \"编号\",\n            outdent: \"减少缩进\",\n            indent: \"增加缩进\"\n        },\n        link: {\n            insert: \"插入链接\",\n            cancel: \"取消\"\n        },\n        image: {\n            insert: \"插入图片\",\n            cancel: \"取消\"\n        },\n        html: {\n            edit: \"HTML代码\"\n        },\n        colours: {\n            black: \"黑色\",\n            silver: \"银色\",\n            gray: \"灰色\",\n            maroon: \"赤红色\",\n            red: \"红色\",\n            purple: \"紫色\",\n            green: \"绿色\",\n            olive: \"橄榄色\",\n            navy: \"深蓝色\",\n            blue: \"蓝色\",\n            orange: \"橙色\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/locales/bootstrap-wysihtml5.zh-TW.js",
    "content": "/**\n * Chinese Traditional translation for bootstrap-wysihtml5\n */\n(function($){\n    $.fn.wysihtml5.locale[\"zh-TW\"] = {\n        font_styles: {\n            normal: \"內文\",\n            h1: \"標題 1\",\n            h2: \"標題 2\",\n            h3: \"標題 3\"\n        },\n        emphasis: {\n            bold: \"粗體\",\n            italic: \"斜體\",\n            underline: \"底線\"\n        },\n        lists: {\n            unordered: \"項目符號\",\n            ordered: \"編號列表\",\n            outdent: \"減少縮排\",\n            indent: \"增加縮排\"\n        },\n        link: {\n            insert: \"插入超連結\",\n            cancel: \"取消\"\n        },\n        image: {\n            insert: \"插入圖片連結\",\n            cancel: \"取消\"\n        },\n        html: {\n            edit: \"HTML原始碼\"\n        },\n        colours: {\n            black: \"黑色\",\n            silver: \"銀色\",\n            gray: \"灰色\",\n            maroon: \"栗色\",\n            red: \"红色\",\n            purple: \"紫色\",\n            green: \"綠色\",\n            olive: \"橄欖色\",\n            navy: \"深藍色\",\n            blue: \"藍色\",\n            orange: \"橙色\"\n        }\n    };\n}(jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/wysihtml5-0.3.0.js",
    "content": "/**\n * @license wysihtml5 v0.3.0\n * https://github.com/xing/wysihtml5\n *\n * Author: Christopher Blum (https://github.com/tiff)\n *\n * Copyright (C) 2012 XING AG\n * Licensed under the MIT license (MIT)\n *\n */\nvar wysihtml5 = {\n  version: \"0.3.0\",\n  \n  // namespaces\n  commands:   {},\n  dom:        {},\n  quirks:     {},\n  toolbar:    {},\n  lang:       {},\n  selection:  {},\n  views:      {},\n  \n  INVISIBLE_SPACE: \"\\uFEFF\",\n  \n  EMPTY_FUNCTION: function() {},\n  \n  ELEMENT_NODE: 1,\n  TEXT_NODE:    3,\n  \n  BACKSPACE_KEY:  8,\n  ENTER_KEY:      13,\n  ESCAPE_KEY:     27,\n  SPACE_KEY:      32,\n  DELETE_KEY:     46\n};/**\n * @license Rangy, a cross-browser JavaScript range and selection library\n * http://code.google.com/p/rangy/\n *\n * Copyright 2011, Tim Down\n * Licensed under the MIT license.\n * Version: 1.2.2\n * Build date: 13 November 2011\n */\nwindow['rangy'] = (function() {\n\n\n    var OBJECT = \"object\", FUNCTION = \"function\", UNDEFINED = \"undefined\";\n\n    var domRangeProperties = [\"startContainer\", \"startOffset\", \"endContainer\", \"endOffset\", \"collapsed\",\n        \"commonAncestorContainer\", \"START_TO_START\", \"START_TO_END\", \"END_TO_START\", \"END_TO_END\"];\n\n    var domRangeMethods = [\"setStart\", \"setStartBefore\", \"setStartAfter\", \"setEnd\", \"setEndBefore\",\n        \"setEndAfter\", \"collapse\", \"selectNode\", \"selectNodeContents\", \"compareBoundaryPoints\", \"deleteContents\",\n        \"extractContents\", \"cloneContents\", \"insertNode\", \"surroundContents\", \"cloneRange\", \"toString\", \"detach\"];\n\n    var textRangeProperties = [\"boundingHeight\", \"boundingLeft\", \"boundingTop\", \"boundingWidth\", \"htmlText\", \"text\"];\n\n    // Subset of TextRange's full set of methods that we're interested in\n    var textRangeMethods = [\"collapse\", \"compareEndPoints\", \"duplicate\", \"getBookmark\", \"moveToBookmark\",\n        \"moveToElementText\", \"parentElement\", \"pasteHTML\", \"select\", \"setEndPoint\", \"getBoundingClientRect\"];\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Trio of functions taken from Peter Michaux's article:\n    // http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting\n    function isHostMethod(o, p) {\n        var t = typeof o[p];\n        return t == FUNCTION || (!!(t == OBJECT && o[p])) || t == \"unknown\";\n    }\n\n    function isHostObject(o, p) {\n        return !!(typeof o[p] == OBJECT && o[p]);\n    }\n\n    function isHostProperty(o, p) {\n        return typeof o[p] != UNDEFINED;\n    }\n\n    // Creates a convenience function to save verbose repeated calls to tests functions\n    function createMultiplePropertyTest(testFunc) {\n        return function(o, props) {\n            var i = props.length;\n            while (i--) {\n                if (!testFunc(o, props[i])) {\n                    return false;\n                }\n            }\n            return true;\n        };\n    }\n\n    // Next trio of functions are a convenience to save verbose repeated calls to previous two functions\n    var areHostMethods = createMultiplePropertyTest(isHostMethod);\n    var areHostObjects = createMultiplePropertyTest(isHostObject);\n    var areHostProperties = createMultiplePropertyTest(isHostProperty);\n\n    function isTextRange(range) {\n        return range && areHostMethods(range, textRangeMethods) && areHostProperties(range, textRangeProperties);\n    }\n\n    var api = {\n        version: \"1.2.2\",\n        initialized: false,\n        supported: true,\n\n        util: {\n            isHostMethod: isHostMethod,\n            isHostObject: isHostObject,\n            isHostProperty: isHostProperty,\n            areHostMethods: areHostMethods,\n            areHostObjects: areHostObjects,\n            areHostProperties: areHostProperties,\n            isTextRange: isTextRange\n        },\n\n        features: {},\n\n        modules: {},\n        config: {\n            alertOnWarn: false,\n            preferTextRange: false\n        }\n    };\n\n    function fail(reason) {\n        window.alert(\"Rangy not supported in your browser. Reason: \" + reason);\n        api.initialized = true;\n        api.supported = false;\n    }\n\n    api.fail = fail;\n\n    function warn(msg) {\n        var warningMessage = \"Rangy warning: \" + msg;\n        if (api.config.alertOnWarn) {\n            window.alert(warningMessage);\n        } else if (typeof window.console != UNDEFINED && typeof window.console.log != UNDEFINED) {\n            window.console.log(warningMessage);\n        }\n    }\n\n    api.warn = warn;\n\n    if ({}.hasOwnProperty) {\n        api.util.extend = function(o, props) {\n            for (var i in props) {\n                if (props.hasOwnProperty(i)) {\n                    o[i] = props[i];\n                }\n            }\n        };\n    } else {\n        fail(\"hasOwnProperty not supported\");\n    }\n\n    var initListeners = [];\n    var moduleInitializers = [];\n\n    // Initialization\n    function init() {\n        if (api.initialized) {\n            return;\n        }\n        var testRange;\n        var implementsDomRange = false, implementsTextRange = false;\n\n        // First, perform basic feature tests\n\n        if (isHostMethod(document, \"createRange\")) {\n            testRange = document.createRange();\n            if (areHostMethods(testRange, domRangeMethods) && areHostProperties(testRange, domRangeProperties)) {\n                implementsDomRange = true;\n            }\n            testRange.detach();\n        }\n\n        var body = isHostObject(document, \"body\") ? document.body : document.getElementsByTagName(\"body\")[0];\n\n        if (body && isHostMethod(body, \"createTextRange\")) {\n            testRange = body.createTextRange();\n            if (isTextRange(testRange)) {\n                implementsTextRange = true;\n            }\n        }\n\n        if (!implementsDomRange && !implementsTextRange) {\n            fail(\"Neither Range nor TextRange are implemented\");\n        }\n\n        api.initialized = true;\n        api.features = {\n            implementsDomRange: implementsDomRange,\n            implementsTextRange: implementsTextRange\n        };\n\n        // Initialize modules and call init listeners\n        var allListeners = moduleInitializers.concat(initListeners);\n        for (var i = 0, len = allListeners.length; i < len; ++i) {\n            try {\n                allListeners[i](api);\n            } catch (ex) {\n                if (isHostObject(window, \"console\") && isHostMethod(window.console, \"log\")) {\n                    window.console.log(\"Init listener threw an exception. Continuing.\", ex);\n                }\n\n            }\n        }\n    }\n\n    // Allow external scripts to initialize this library in case it's loaded after the document has loaded\n    api.init = init;\n\n    // Execute listener immediately if already initialized\n    api.addInitListener = function(listener) {\n        if (api.initialized) {\n            listener(api);\n        } else {\n            initListeners.push(listener);\n        }\n    };\n\n    var createMissingNativeApiListeners = [];\n\n    api.addCreateMissingNativeApiListener = function(listener) {\n        createMissingNativeApiListeners.push(listener);\n    };\n\n    function createMissingNativeApi(win) {\n        win = win || window;\n        init();\n\n        // Notify listeners\n        for (var i = 0, len = createMissingNativeApiListeners.length; i < len; ++i) {\n            createMissingNativeApiListeners[i](win);\n        }\n    }\n\n    api.createMissingNativeApi = createMissingNativeApi;\n\n    /**\n     * @constructor\n     */\n    function Module(name) {\n        this.name = name;\n        this.initialized = false;\n        this.supported = false;\n    }\n\n    Module.prototype.fail = function(reason) {\n        this.initialized = true;\n        this.supported = false;\n\n        throw new Error(\"Module '\" + this.name + \"' failed to load: \" + reason);\n    };\n\n    Module.prototype.warn = function(msg) {\n        api.warn(\"Module \" + this.name + \": \" + msg);\n    };\n\n    Module.prototype.createError = function(msg) {\n        return new Error(\"Error in Rangy \" + this.name + \" module: \" + msg);\n    };\n\n    api.createModule = function(name, initFunc) {\n        var module = new Module(name);\n        api.modules[name] = module;\n\n        moduleInitializers.push(function(api) {\n            initFunc(api, module);\n            module.initialized = true;\n            module.supported = true;\n        });\n    };\n\n    api.requireModules = function(modules) {\n        for (var i = 0, len = modules.length, module, moduleName; i < len; ++i) {\n            moduleName = modules[i];\n            module = api.modules[moduleName];\n            if (!module || !(module instanceof Module)) {\n                throw new Error(\"Module '\" + moduleName + \"' not found\");\n            }\n            if (!module.supported) {\n                throw new Error(\"Module '\" + moduleName + \"' not supported\");\n            }\n        }\n    };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Wait for document to load before running tests\n\n    var docReady = false;\n\n    var loadHandler = function(e) {\n\n        if (!docReady) {\n            docReady = true;\n            if (!api.initialized) {\n                init();\n            }\n        }\n    };\n\n    // Test whether we have window and document objects that we will need\n    if (typeof window == UNDEFINED) {\n        fail(\"No window found\");\n        return;\n    }\n    if (typeof document == UNDEFINED) {\n        fail(\"No document found\");\n        return;\n    }\n\n    if (isHostMethod(document, \"addEventListener\")) {\n        document.addEventListener(\"DOMContentLoaded\", loadHandler, false);\n    }\n\n    // Add a fallback in case the DOMContentLoaded event isn't supported\n    if (isHostMethod(window, \"addEventListener\")) {\n        window.addEventListener(\"load\", loadHandler, false);\n    } else if (isHostMethod(window, \"attachEvent\")) {\n        window.attachEvent(\"onload\", loadHandler);\n    } else {\n        fail(\"Window does not have required addEventListener or attachEvent method\");\n    }\n\n    return api;\n})();\nrangy.createModule(\"DomUtil\", function(api, module) {\n\n    var UNDEF = \"undefined\";\n    var util = api.util;\n\n    // Perform feature tests\n    if (!util.areHostMethods(document, [\"createDocumentFragment\", \"createElement\", \"createTextNode\"])) {\n        module.fail(\"document missing a Node creation method\");\n    }\n\n    if (!util.isHostMethod(document, \"getElementsByTagName\")) {\n        module.fail(\"document missing getElementsByTagName method\");\n    }\n\n    var el = document.createElement(\"div\");\n    if (!util.areHostMethods(el, [\"insertBefore\", \"appendChild\", \"cloneNode\"] ||\n            !util.areHostObjects(el, [\"previousSibling\", \"nextSibling\", \"childNodes\", \"parentNode\"]))) {\n        module.fail(\"Incomplete Element implementation\");\n    }\n\n    // innerHTML is required for Range's createContextualFragment method\n    if (!util.isHostProperty(el, \"innerHTML\")) {\n        module.fail(\"Element is missing innerHTML property\");\n    }\n\n    var textNode = document.createTextNode(\"test\");\n    if (!util.areHostMethods(textNode, [\"splitText\", \"deleteData\", \"insertData\", \"appendData\", \"cloneNode\"] ||\n            !util.areHostObjects(el, [\"previousSibling\", \"nextSibling\", \"childNodes\", \"parentNode\"]) ||\n            !util.areHostProperties(textNode, [\"data\"]))) {\n        module.fail(\"Incomplete Text Node implementation\");\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Removed use of indexOf because of a bizarre bug in Opera that is thrown in one of the Acid3 tests. I haven't been\n    // able to replicate it outside of the test. The bug is that indexOf returns -1 when called on an Array that\n    // contains just the document as a single element and the value searched for is the document.\n    var arrayContains = /*Array.prototype.indexOf ?\n        function(arr, val) {\n            return arr.indexOf(val) > -1;\n        }:*/\n\n        function(arr, val) {\n            var i = arr.length;\n            while (i--) {\n                if (arr[i] === val) {\n                    return true;\n                }\n            }\n            return false;\n        };\n\n    // Opera 11 puts HTML elements in the null namespace, it seems, and IE 7 has undefined namespaceURI\n    function isHtmlNamespace(node) {\n        var ns;\n        return typeof node.namespaceURI == UNDEF || ((ns = node.namespaceURI) === null || ns == \"http://www.w3.org/1999/xhtml\");\n    }\n\n    function parentElement(node) {\n        var parent = node.parentNode;\n        return (parent.nodeType == 1) ? parent : null;\n    }\n\n    function getNodeIndex(node) {\n        var i = 0;\n        while( (node = node.previousSibling) ) {\n            i++;\n        }\n        return i;\n    }\n\n    function getNodeLength(node) {\n        var childNodes;\n        return isCharacterDataNode(node) ? node.length : ((childNodes = node.childNodes) ? childNodes.length : 0);\n    }\n\n    function getCommonAncestor(node1, node2) {\n        var ancestors = [], n;\n        for (n = node1; n; n = n.parentNode) {\n            ancestors.push(n);\n        }\n\n        for (n = node2; n; n = n.parentNode) {\n            if (arrayContains(ancestors, n)) {\n                return n;\n            }\n        }\n\n        return null;\n    }\n\n    function isAncestorOf(ancestor, descendant, selfIsAncestor) {\n        var n = selfIsAncestor ? descendant : descendant.parentNode;\n        while (n) {\n            if (n === ancestor) {\n                return true;\n            } else {\n                n = n.parentNode;\n            }\n        }\n        return false;\n    }\n\n    function getClosestAncestorIn(node, ancestor, selfIsAncestor) {\n        var p, n = selfIsAncestor ? node : node.parentNode;\n        while (n) {\n            p = n.parentNode;\n            if (p === ancestor) {\n                return n;\n            }\n            n = p;\n        }\n        return null;\n    }\n\n    function isCharacterDataNode(node) {\n        var t = node.nodeType;\n        return t == 3 || t == 4 || t == 8 ; // Text, CDataSection or Comment\n    }\n\n    function insertAfter(node, precedingNode) {\n        var nextNode = precedingNode.nextSibling, parent = precedingNode.parentNode;\n        if (nextNode) {\n            parent.insertBefore(node, nextNode);\n        } else {\n            parent.appendChild(node);\n        }\n        return node;\n    }\n\n    // Note that we cannot use splitText() because it is bugridden in IE 9.\n    function splitDataNode(node, index) {\n        var newNode = node.cloneNode(false);\n        newNode.deleteData(0, index);\n        node.deleteData(index, node.length - index);\n        insertAfter(newNode, node);\n        return newNode;\n    }\n\n    function getDocument(node) {\n        if (node.nodeType == 9) {\n            return node;\n        } else if (typeof node.ownerDocument != UNDEF) {\n            return node.ownerDocument;\n        } else if (typeof node.document != UNDEF) {\n            return node.document;\n        } else if (node.parentNode) {\n            return getDocument(node.parentNode);\n        } else {\n            throw new Error(\"getDocument: no document found for node\");\n        }\n    }\n\n    function getWindow(node) {\n        var doc = getDocument(node);\n        if (typeof doc.defaultView != UNDEF) {\n            return doc.defaultView;\n        } else if (typeof doc.parentWindow != UNDEF) {\n            return doc.parentWindow;\n        } else {\n            throw new Error(\"Cannot get a window object for node\");\n        }\n    }\n\n    function getIframeDocument(iframeEl) {\n        if (typeof iframeEl.contentDocument != UNDEF) {\n            return iframeEl.contentDocument;\n        } else if (typeof iframeEl.contentWindow != UNDEF) {\n            return iframeEl.contentWindow.document;\n        } else {\n            throw new Error(\"getIframeWindow: No Document object found for iframe element\");\n        }\n    }\n\n    function getIframeWindow(iframeEl) {\n        if (typeof iframeEl.contentWindow != UNDEF) {\n            return iframeEl.contentWindow;\n        } else if (typeof iframeEl.contentDocument != UNDEF) {\n            return iframeEl.contentDocument.defaultView;\n        } else {\n            throw new Error(\"getIframeWindow: No Window object found for iframe element\");\n        }\n    }\n\n    function getBody(doc) {\n        return util.isHostObject(doc, \"body\") ? doc.body : doc.getElementsByTagName(\"body\")[0];\n    }\n\n    function getRootContainer(node) {\n        var parent;\n        while ( (parent = node.parentNode) ) {\n            node = parent;\n        }\n        return node;\n    }\n\n    function comparePoints(nodeA, offsetA, nodeB, offsetB) {\n        // See http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Comparing\n        var nodeC, root, childA, childB, n;\n        if (nodeA == nodeB) {\n\n            // Case 1: nodes are the same\n            return offsetA === offsetB ? 0 : (offsetA < offsetB) ? -1 : 1;\n        } else if ( (nodeC = getClosestAncestorIn(nodeB, nodeA, true)) ) {\n\n            // Case 2: node C (container B or an ancestor) is a child node of A\n            return offsetA <= getNodeIndex(nodeC) ? -1 : 1;\n        } else if ( (nodeC = getClosestAncestorIn(nodeA, nodeB, true)) ) {\n\n            // Case 3: node C (container A or an ancestor) is a child node of B\n            return getNodeIndex(nodeC) < offsetB  ? -1 : 1;\n        } else {\n\n            // Case 4: containers are siblings or descendants of siblings\n            root = getCommonAncestor(nodeA, nodeB);\n            childA = (nodeA === root) ? root : getClosestAncestorIn(nodeA, root, true);\n            childB = (nodeB === root) ? root : getClosestAncestorIn(nodeB, root, true);\n\n            if (childA === childB) {\n                // This shouldn't be possible\n\n                throw new Error(\"comparePoints got to case 4 and childA and childB are the same!\");\n            } else {\n                n = root.firstChild;\n                while (n) {\n                    if (n === childA) {\n                        return -1;\n                    } else if (n === childB) {\n                        return 1;\n                    }\n                    n = n.nextSibling;\n                }\n                throw new Error(\"Should not be here!\");\n            }\n        }\n    }\n\n    function fragmentFromNodeChildren(node) {\n        var fragment = getDocument(node).createDocumentFragment(), child;\n        while ( (child = node.firstChild) ) {\n            fragment.appendChild(child);\n        }\n        return fragment;\n    }\n\n    function inspectNode(node) {\n        if (!node) {\n            return \"[No node]\";\n        }\n        if (isCharacterDataNode(node)) {\n            return '\"' + node.data + '\"';\n        } else if (node.nodeType == 1) {\n            var idAttr = node.id ? ' id=\"' + node.id + '\"' : \"\";\n            return \"<\" + node.nodeName + idAttr + \">[\" + node.childNodes.length + \"]\";\n        } else {\n            return node.nodeName;\n        }\n    }\n\n    /**\n     * @constructor\n     */\n    function NodeIterator(root) {\n        this.root = root;\n        this._next = root;\n    }\n\n    NodeIterator.prototype = {\n        _current: null,\n\n        hasNext: function() {\n            return !!this._next;\n        },\n\n        next: function() {\n            var n = this._current = this._next;\n            var child, next;\n            if (this._current) {\n                child = n.firstChild;\n                if (child) {\n                    this._next = child;\n                } else {\n                    next = null;\n                    while ((n !== this.root) && !(next = n.nextSibling)) {\n                        n = n.parentNode;\n                    }\n                    this._next = next;\n                }\n            }\n            return this._current;\n        },\n\n        detach: function() {\n            this._current = this._next = this.root = null;\n        }\n    };\n\n    function createIterator(root) {\n        return new NodeIterator(root);\n    }\n\n    /**\n     * @constructor\n     */\n    function DomPosition(node, offset) {\n        this.node = node;\n        this.offset = offset;\n    }\n\n    DomPosition.prototype = {\n        equals: function(pos) {\n            return this.node === pos.node & this.offset == pos.offset;\n        },\n\n        inspect: function() {\n            return \"[DomPosition(\" + inspectNode(this.node) + \":\" + this.offset + \")]\";\n        }\n    };\n\n    /**\n     * @constructor\n     */\n    function DOMException(codeName) {\n        this.code = this[codeName];\n        this.codeName = codeName;\n        this.message = \"DOMException: \" + this.codeName;\n    }\n\n    DOMException.prototype = {\n        INDEX_SIZE_ERR: 1,\n        HIERARCHY_REQUEST_ERR: 3,\n        WRONG_DOCUMENT_ERR: 4,\n        NO_MODIFICATION_ALLOWED_ERR: 7,\n        NOT_FOUND_ERR: 8,\n        NOT_SUPPORTED_ERR: 9,\n        INVALID_STATE_ERR: 11\n    };\n\n    DOMException.prototype.toString = function() {\n        return this.message;\n    };\n\n    api.dom = {\n        arrayContains: arrayContains,\n        isHtmlNamespace: isHtmlNamespace,\n        parentElement: parentElement,\n        getNodeIndex: getNodeIndex,\n        getNodeLength: getNodeLength,\n        getCommonAncestor: getCommonAncestor,\n        isAncestorOf: isAncestorOf,\n        getClosestAncestorIn: getClosestAncestorIn,\n        isCharacterDataNode: isCharacterDataNode,\n        insertAfter: insertAfter,\n        splitDataNode: splitDataNode,\n        getDocument: getDocument,\n        getWindow: getWindow,\n        getIframeWindow: getIframeWindow,\n        getIframeDocument: getIframeDocument,\n        getBody: getBody,\n        getRootContainer: getRootContainer,\n        comparePoints: comparePoints,\n        inspectNode: inspectNode,\n        fragmentFromNodeChildren: fragmentFromNodeChildren,\n        createIterator: createIterator,\n        DomPosition: DomPosition\n    };\n\n    api.DOMException = DOMException;\n});rangy.createModule(\"DomRange\", function(api, module) {\n    api.requireModules( [\"DomUtil\"] );\n\n\n    var dom = api.dom;\n    var DomPosition = dom.DomPosition;\n    var DOMException = api.DOMException;\n    \n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Utility functions\n\n    function isNonTextPartiallySelected(node, range) {\n        return (node.nodeType != 3) &&\n               (dom.isAncestorOf(node, range.startContainer, true) || dom.isAncestorOf(node, range.endContainer, true));\n    }\n\n    function getRangeDocument(range) {\n        return dom.getDocument(range.startContainer);\n    }\n\n    function dispatchEvent(range, type, args) {\n        var listeners = range._listeners[type];\n        if (listeners) {\n            for (var i = 0, len = listeners.length; i < len; ++i) {\n                listeners[i].call(range, {target: range, args: args});\n            }\n        }\n    }\n\n    function getBoundaryBeforeNode(node) {\n        return new DomPosition(node.parentNode, dom.getNodeIndex(node));\n    }\n\n    function getBoundaryAfterNode(node) {\n        return new DomPosition(node.parentNode, dom.getNodeIndex(node) + 1);\n    }\n\n    function insertNodeAtPosition(node, n, o) {\n        var firstNodeInserted = node.nodeType == 11 ? node.firstChild : node;\n        if (dom.isCharacterDataNode(n)) {\n            if (o == n.length) {\n                dom.insertAfter(node, n);\n            } else {\n                n.parentNode.insertBefore(node, o == 0 ? n : dom.splitDataNode(n, o));\n            }\n        } else if (o >= n.childNodes.length) {\n            n.appendChild(node);\n        } else {\n            n.insertBefore(node, n.childNodes[o]);\n        }\n        return firstNodeInserted;\n    }\n\n    function cloneSubtree(iterator) {\n        var partiallySelected;\n        for (var node, frag = getRangeDocument(iterator.range).createDocumentFragment(), subIterator; node = iterator.next(); ) {\n            partiallySelected = iterator.isPartiallySelectedSubtree();\n\n            node = node.cloneNode(!partiallySelected);\n            if (partiallySelected) {\n                subIterator = iterator.getSubtreeIterator();\n                node.appendChild(cloneSubtree(subIterator));\n                subIterator.detach(true);\n            }\n\n            if (node.nodeType == 10) { // DocumentType\n                throw new DOMException(\"HIERARCHY_REQUEST_ERR\");\n            }\n            frag.appendChild(node);\n        }\n        return frag;\n    }\n\n    function iterateSubtree(rangeIterator, func, iteratorState) {\n        var it, n;\n        iteratorState = iteratorState || { stop: false };\n        for (var node, subRangeIterator; node = rangeIterator.next(); ) {\n            //log.debug(\"iterateSubtree, partially selected: \" + rangeIterator.isPartiallySelectedSubtree(), nodeToString(node));\n            if (rangeIterator.isPartiallySelectedSubtree()) {\n                // The node is partially selected by the Range, so we can use a new RangeIterator on the portion of the\n                // node selected by the Range.\n                if (func(node) === false) {\n                    iteratorState.stop = true;\n                    return;\n                } else {\n                    subRangeIterator = rangeIterator.getSubtreeIterator();\n                    iterateSubtree(subRangeIterator, func, iteratorState);\n                    subRangeIterator.detach(true);\n                    if (iteratorState.stop) {\n                        return;\n                    }\n                }\n            } else {\n                // The whole node is selected, so we can use efficient DOM iteration to iterate over the node and its\n                // descendant\n                it = dom.createIterator(node);\n                while ( (n = it.next()) ) {\n                    if (func(n) === false) {\n                        iteratorState.stop = true;\n                        return;\n                    }\n                }\n            }\n        }\n    }\n\n    function deleteSubtree(iterator) {\n        var subIterator;\n        while (iterator.next()) {\n            if (iterator.isPartiallySelectedSubtree()) {\n                subIterator = iterator.getSubtreeIterator();\n                deleteSubtree(subIterator);\n                subIterator.detach(true);\n            } else {\n                iterator.remove();\n            }\n        }\n    }\n\n    function extractSubtree(iterator) {\n\n        for (var node, frag = getRangeDocument(iterator.range).createDocumentFragment(), subIterator; node = iterator.next(); ) {\n\n\n            if (iterator.isPartiallySelectedSubtree()) {\n                node = node.cloneNode(false);\n                subIterator = iterator.getSubtreeIterator();\n                node.appendChild(extractSubtree(subIterator));\n                subIterator.detach(true);\n            } else {\n                iterator.remove();\n            }\n            if (node.nodeType == 10) { // DocumentType\n                throw new DOMException(\"HIERARCHY_REQUEST_ERR\");\n            }\n            frag.appendChild(node);\n        }\n        return frag;\n    }\n\n    function getNodesInRange(range, nodeTypes, filter) {\n        //log.info(\"getNodesInRange, \" + nodeTypes.join(\",\"));\n        var filterNodeTypes = !!(nodeTypes && nodeTypes.length), regex;\n        var filterExists = !!filter;\n        if (filterNodeTypes) {\n            regex = new RegExp(\"^(\" + nodeTypes.join(\"|\") + \")$\");\n        }\n\n        var nodes = [];\n        iterateSubtree(new RangeIterator(range, false), function(node) {\n            if ((!filterNodeTypes || regex.test(node.nodeType)) && (!filterExists || filter(node))) {\n                nodes.push(node);\n            }\n        });\n        return nodes;\n    }\n\n    function inspect(range) {\n        var name = (typeof range.getName == \"undefined\") ? \"Range\" : range.getName();\n        return \"[\" + name + \"(\" + dom.inspectNode(range.startContainer) + \":\" + range.startOffset + \", \" +\n                dom.inspectNode(range.endContainer) + \":\" + range.endOffset + \")]\";\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // RangeIterator code partially borrows from IERange by Tim Ryan (http://github.com/timcameronryan/IERange)\n\n    /**\n     * @constructor\n     */\n    function RangeIterator(range, clonePartiallySelectedTextNodes) {\n        this.range = range;\n        this.clonePartiallySelectedTextNodes = clonePartiallySelectedTextNodes;\n\n\n\n        if (!range.collapsed) {\n            this.sc = range.startContainer;\n            this.so = range.startOffset;\n            this.ec = range.endContainer;\n            this.eo = range.endOffset;\n            var root = range.commonAncestorContainer;\n\n            if (this.sc === this.ec && dom.isCharacterDataNode(this.sc)) {\n                this.isSingleCharacterDataNode = true;\n                this._first = this._last = this._next = this.sc;\n            } else {\n                this._first = this._next = (this.sc === root && !dom.isCharacterDataNode(this.sc)) ?\n                    this.sc.childNodes[this.so] : dom.getClosestAncestorIn(this.sc, root, true);\n                this._last = (this.ec === root && !dom.isCharacterDataNode(this.ec)) ?\n                    this.ec.childNodes[this.eo - 1] : dom.getClosestAncestorIn(this.ec, root, true);\n            }\n\n        }\n    }\n\n    RangeIterator.prototype = {\n        _current: null,\n        _next: null,\n        _first: null,\n        _last: null,\n        isSingleCharacterDataNode: false,\n\n        reset: function() {\n            this._current = null;\n            this._next = this._first;\n        },\n\n        hasNext: function() {\n            return !!this._next;\n        },\n\n        next: function() {\n            // Move to next node\n            var current = this._current = this._next;\n            if (current) {\n                this._next = (current !== this._last) ? current.nextSibling : null;\n\n                // Check for partially selected text nodes\n                if (dom.isCharacterDataNode(current) && this.clonePartiallySelectedTextNodes) {\n                    if (current === this.ec) {\n\n                        (current = current.cloneNode(true)).deleteData(this.eo, current.length - this.eo);\n                    }\n                    if (this._current === this.sc) {\n\n                        (current = current.cloneNode(true)).deleteData(0, this.so);\n                    }\n                }\n            }\n\n            return current;\n        },\n\n        remove: function() {\n            var current = this._current, start, end;\n\n            if (dom.isCharacterDataNode(current) && (current === this.sc || current === this.ec)) {\n                start = (current === this.sc) ? this.so : 0;\n                end = (current === this.ec) ? this.eo : current.length;\n                if (start != end) {\n                    current.deleteData(start, end - start);\n                }\n            } else {\n                if (current.parentNode) {\n                    current.parentNode.removeChild(current);\n                } else {\n\n                }\n            }\n        },\n\n        // Checks if the current node is partially selected\n        isPartiallySelectedSubtree: function() {\n            var current = this._current;\n            return isNonTextPartiallySelected(current, this.range);\n        },\n\n        getSubtreeIterator: function() {\n            var subRange;\n            if (this.isSingleCharacterDataNode) {\n                subRange = this.range.cloneRange();\n                subRange.collapse();\n            } else {\n                subRange = new Range(getRangeDocument(this.range));\n                var current = this._current;\n                var startContainer = current, startOffset = 0, endContainer = current, endOffset = dom.getNodeLength(current);\n\n                if (dom.isAncestorOf(current, this.sc, true)) {\n                    startContainer = this.sc;\n                    startOffset = this.so;\n                }\n                if (dom.isAncestorOf(current, this.ec, true)) {\n                    endContainer = this.ec;\n                    endOffset = this.eo;\n                }\n\n                updateBoundaries(subRange, startContainer, startOffset, endContainer, endOffset);\n            }\n            return new RangeIterator(subRange, this.clonePartiallySelectedTextNodes);\n        },\n\n        detach: function(detachRange) {\n            if (detachRange) {\n                this.range.detach();\n            }\n            this.range = this._current = this._next = this._first = this._last = this.sc = this.so = this.ec = this.eo = null;\n        }\n    };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Exceptions\n\n    /**\n     * @constructor\n     */\n    function RangeException(codeName) {\n        this.code = this[codeName];\n        this.codeName = codeName;\n        this.message = \"RangeException: \" + this.codeName;\n    }\n\n    RangeException.prototype = {\n        BAD_BOUNDARYPOINTS_ERR: 1,\n        INVALID_NODE_TYPE_ERR: 2\n    };\n\n    RangeException.prototype.toString = function() {\n        return this.message;\n    };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    /**\n     * Currently iterates through all nodes in the range on creation until I think of a decent way to do it\n     * TODO: Look into making this a proper iterator, not requiring preloading everything first\n     * @constructor\n     */\n    function RangeNodeIterator(range, nodeTypes, filter) {\n        this.nodes = getNodesInRange(range, nodeTypes, filter);\n        this._next = this.nodes[0];\n        this._position = 0;\n    }\n\n    RangeNodeIterator.prototype = {\n        _current: null,\n\n        hasNext: function() {\n            return !!this._next;\n        },\n\n        next: function() {\n            this._current = this._next;\n            this._next = this.nodes[ ++this._position ];\n            return this._current;\n        },\n\n        detach: function() {\n            this._current = this._next = this.nodes = null;\n        }\n    };\n\n    var beforeAfterNodeTypes = [1, 3, 4, 5, 7, 8, 10];\n    var rootContainerNodeTypes = [2, 9, 11];\n    var readonlyNodeTypes = [5, 6, 10, 12];\n    var insertableNodeTypes = [1, 3, 4, 5, 7, 8, 10, 11];\n    var surroundNodeTypes = [1, 3, 4, 5, 7, 8];\n\n    function createAncestorFinder(nodeTypes) {\n        return function(node, selfIsAncestor) {\n            var t, n = selfIsAncestor ? node : node.parentNode;\n            while (n) {\n                t = n.nodeType;\n                if (dom.arrayContains(nodeTypes, t)) {\n                    return n;\n                }\n                n = n.parentNode;\n            }\n            return null;\n        };\n    }\n\n    var getRootContainer = dom.getRootContainer;\n    var getDocumentOrFragmentContainer = createAncestorFinder( [9, 11] );\n    var getReadonlyAncestor = createAncestorFinder(readonlyNodeTypes);\n    var getDocTypeNotationEntityAncestor = createAncestorFinder( [6, 10, 12] );\n\n    function assertNoDocTypeNotationEntityAncestor(node, allowSelf) {\n        if (getDocTypeNotationEntityAncestor(node, allowSelf)) {\n            throw new RangeException(\"INVALID_NODE_TYPE_ERR\");\n        }\n    }\n\n    function assertNotDetached(range) {\n        if (!range.startContainer) {\n            throw new DOMException(\"INVALID_STATE_ERR\");\n        }\n    }\n\n    function assertValidNodeType(node, invalidTypes) {\n        if (!dom.arrayContains(invalidTypes, node.nodeType)) {\n            throw new RangeException(\"INVALID_NODE_TYPE_ERR\");\n        }\n    }\n\n    function assertValidOffset(node, offset) {\n        if (offset < 0 || offset > (dom.isCharacterDataNode(node) ? node.length : node.childNodes.length)) {\n            throw new DOMException(\"INDEX_SIZE_ERR\");\n        }\n    }\n\n    function assertSameDocumentOrFragment(node1, node2) {\n        if (getDocumentOrFragmentContainer(node1, true) !== getDocumentOrFragmentContainer(node2, true)) {\n            throw new DOMException(\"WRONG_DOCUMENT_ERR\");\n        }\n    }\n\n    function assertNodeNotReadOnly(node) {\n        if (getReadonlyAncestor(node, true)) {\n            throw new DOMException(\"NO_MODIFICATION_ALLOWED_ERR\");\n        }\n    }\n\n    function assertNode(node, codeName) {\n        if (!node) {\n            throw new DOMException(codeName);\n        }\n    }\n\n    function isOrphan(node) {\n        return !dom.arrayContains(rootContainerNodeTypes, node.nodeType) && !getDocumentOrFragmentContainer(node, true);\n    }\n\n    function isValidOffset(node, offset) {\n        return offset <= (dom.isCharacterDataNode(node) ? node.length : node.childNodes.length);\n    }\n\n    function assertRangeValid(range) {\n        assertNotDetached(range);\n        if (isOrphan(range.startContainer) || isOrphan(range.endContainer) ||\n                !isValidOffset(range.startContainer, range.startOffset) ||\n                !isValidOffset(range.endContainer, range.endOffset)) {\n            throw new Error(\"Range error: Range is no longer valid after DOM mutation (\" + range.inspect() + \")\");\n        }\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Test the browser's innerHTML support to decide how to implement createContextualFragment\n    var styleEl = document.createElement(\"style\");\n    var htmlParsingConforms = false;\n    try {\n        styleEl.innerHTML = \"<b>x</b>\";\n        htmlParsingConforms = (styleEl.firstChild.nodeType == 3); // Opera incorrectly creates an element node\n    } catch (e) {\n        // IE 6 and 7 throw\n    }\n\n    api.features.htmlParsingConforms = htmlParsingConforms;\n\n    var createContextualFragment = htmlParsingConforms ?\n\n        // Implementation as per HTML parsing spec, trusting in the browser's implementation of innerHTML. See\n        // discussion and base code for this implementation at issue 67.\n        // Spec: http://html5.org/specs/dom-parsing.html#extensions-to-the-range-interface\n        // Thanks to Aleks Williams.\n        function(fragmentStr) {\n            // \"Let node the context object's start's node.\"\n            var node = this.startContainer;\n            var doc = dom.getDocument(node);\n\n            // \"If the context object's start's node is null, raise an INVALID_STATE_ERR\n            // exception and abort these steps.\"\n            if (!node) {\n                throw new DOMException(\"INVALID_STATE_ERR\");\n            }\n\n            // \"Let element be as follows, depending on node's interface:\"\n            // Document, Document Fragment: null\n            var el = null;\n\n            // \"Element: node\"\n            if (node.nodeType == 1) {\n                el = node;\n\n            // \"Text, Comment: node's parentElement\"\n            } else if (dom.isCharacterDataNode(node)) {\n                el = dom.parentElement(node);\n            }\n\n            // \"If either element is null or element's ownerDocument is an HTML document\n            // and element's local name is \"html\" and element's namespace is the HTML\n            // namespace\"\n            if (el === null || (\n                el.nodeName == \"HTML\"\n                && dom.isHtmlNamespace(dom.getDocument(el).documentElement)\n                && dom.isHtmlNamespace(el)\n            )) {\n\n            // \"let element be a new Element with \"body\" as its local name and the HTML\n            // namespace as its namespace.\"\"\n                el = doc.createElement(\"body\");\n            } else {\n                el = el.cloneNode(false);\n            }\n\n            // \"If the node's document is an HTML document: Invoke the HTML fragment parsing algorithm.\"\n            // \"If the node's document is an XML document: Invoke the XML fragment parsing algorithm.\"\n            // \"In either case, the algorithm must be invoked with fragment as the input\n            // and element as the context element.\"\n            el.innerHTML = fragmentStr;\n\n            // \"If this raises an exception, then abort these steps. Otherwise, let new\n            // children be the nodes returned.\"\n\n            // \"Let fragment be a new DocumentFragment.\"\n            // \"Append all new children to fragment.\"\n            // \"Return fragment.\"\n            return dom.fragmentFromNodeChildren(el);\n        } :\n\n        // In this case, innerHTML cannot be trusted, so fall back to a simpler, non-conformant implementation that\n        // previous versions of Rangy used (with the exception of using a body element rather than a div)\n        function(fragmentStr) {\n            assertNotDetached(this);\n            var doc = getRangeDocument(this);\n            var el = doc.createElement(\"body\");\n            el.innerHTML = fragmentStr;\n\n            return dom.fragmentFromNodeChildren(el);\n        };\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    var rangeProperties = [\"startContainer\", \"startOffset\", \"endContainer\", \"endOffset\", \"collapsed\",\n        \"commonAncestorContainer\"];\n\n    var s2s = 0, s2e = 1, e2e = 2, e2s = 3;\n    var n_b = 0, n_a = 1, n_b_a = 2, n_i = 3;\n\n    function RangePrototype() {}\n\n    RangePrototype.prototype = {\n        attachListener: function(type, listener) {\n            this._listeners[type].push(listener);\n        },\n\n        compareBoundaryPoints: function(how, range) {\n            assertRangeValid(this);\n            assertSameDocumentOrFragment(this.startContainer, range.startContainer);\n\n            var nodeA, offsetA, nodeB, offsetB;\n            var prefixA = (how == e2s || how == s2s) ? \"start\" : \"end\";\n            var prefixB = (how == s2e || how == s2s) ? \"start\" : \"end\";\n            nodeA = this[prefixA + \"Container\"];\n            offsetA = this[prefixA + \"Offset\"];\n            nodeB = range[prefixB + \"Container\"];\n            offsetB = range[prefixB + \"Offset\"];\n            return dom.comparePoints(nodeA, offsetA, nodeB, offsetB);\n        },\n\n        insertNode: function(node) {\n            assertRangeValid(this);\n            assertValidNodeType(node, insertableNodeTypes);\n            assertNodeNotReadOnly(this.startContainer);\n\n            if (dom.isAncestorOf(node, this.startContainer, true)) {\n                throw new DOMException(\"HIERARCHY_REQUEST_ERR\");\n            }\n\n            // No check for whether the container of the start of the Range is of a type that does not allow\n            // children of the type of node: the browser's DOM implementation should do this for us when we attempt\n            // to add the node\n\n            var firstNodeInserted = insertNodeAtPosition(node, this.startContainer, this.startOffset);\n            this.setStartBefore(firstNodeInserted);\n        },\n\n        cloneContents: function() {\n            assertRangeValid(this);\n\n            var clone, frag;\n            if (this.collapsed) {\n                return getRangeDocument(this).createDocumentFragment();\n            } else {\n                if (this.startContainer === this.endContainer && dom.isCharacterDataNode(this.startContainer)) {\n                    clone = this.startContainer.cloneNode(true);\n                    clone.data = clone.data.slice(this.startOffset, this.endOffset);\n                    frag = getRangeDocument(this).createDocumentFragment();\n                    frag.appendChild(clone);\n                    return frag;\n                } else {\n                    var iterator = new RangeIterator(this, true);\n                    clone = cloneSubtree(iterator);\n                    iterator.detach();\n                }\n                return clone;\n            }\n        },\n\n        canSurroundContents: function() {\n            assertRangeValid(this);\n            assertNodeNotReadOnly(this.startContainer);\n            assertNodeNotReadOnly(this.endContainer);\n\n            // Check if the contents can be surrounded. Specifically, this means whether the range partially selects\n            // no non-text nodes.\n            var iterator = new RangeIterator(this, true);\n            var boundariesInvalid = (iterator._first && (isNonTextPartiallySelected(iterator._first, this)) ||\n                    (iterator._last && isNonTextPartiallySelected(iterator._last, this)));\n            iterator.detach();\n            return !boundariesInvalid;\n        },\n\n        surroundContents: function(node) {\n            assertValidNodeType(node, surroundNodeTypes);\n\n            if (!this.canSurroundContents()) {\n                throw new RangeException(\"BAD_BOUNDARYPOINTS_ERR\");\n            }\n\n            // Extract the contents\n            var content = this.extractContents();\n\n            // Clear the children of the node\n            if (node.hasChildNodes()) {\n                while (node.lastChild) {\n                    node.removeChild(node.lastChild);\n                }\n            }\n\n            // Insert the new node and add the extracted contents\n            insertNodeAtPosition(node, this.startContainer, this.startOffset);\n            node.appendChild(content);\n\n            this.selectNode(node);\n        },\n\n        cloneRange: function() {\n            assertRangeValid(this);\n            var range = new Range(getRangeDocument(this));\n            var i = rangeProperties.length, prop;\n            while (i--) {\n                prop = rangeProperties[i];\n                range[prop] = this[prop];\n            }\n            return range;\n        },\n\n        toString: function() {\n            assertRangeValid(this);\n            var sc = this.startContainer;\n            if (sc === this.endContainer && dom.isCharacterDataNode(sc)) {\n                return (sc.nodeType == 3 || sc.nodeType == 4) ? sc.data.slice(this.startOffset, this.endOffset) : \"\";\n            } else {\n                var textBits = [], iterator = new RangeIterator(this, true);\n\n                iterateSubtree(iterator, function(node) {\n                    // Accept only text or CDATA nodes, not comments\n\n                    if (node.nodeType == 3 || node.nodeType == 4) {\n                        textBits.push(node.data);\n                    }\n                });\n                iterator.detach();\n                return textBits.join(\"\");\n            }\n        },\n\n        // The methods below are all non-standard. The following batch were introduced by Mozilla but have since\n        // been removed from Mozilla.\n\n        compareNode: function(node) {\n            assertRangeValid(this);\n\n            var parent = node.parentNode;\n            var nodeIndex = dom.getNodeIndex(node);\n\n            if (!parent) {\n                throw new DOMException(\"NOT_FOUND_ERR\");\n            }\n\n            var startComparison = this.comparePoint(parent, nodeIndex),\n                endComparison = this.comparePoint(parent, nodeIndex + 1);\n\n            if (startComparison < 0) { // Node starts before\n                return (endComparison > 0) ? n_b_a : n_b;\n            } else {\n                return (endComparison > 0) ? n_a : n_i;\n            }\n        },\n\n        comparePoint: function(node, offset) {\n            assertRangeValid(this);\n            assertNode(node, \"HIERARCHY_REQUEST_ERR\");\n            assertSameDocumentOrFragment(node, this.startContainer);\n\n            if (dom.comparePoints(node, offset, this.startContainer, this.startOffset) < 0) {\n                return -1;\n            } else if (dom.comparePoints(node, offset, this.endContainer, this.endOffset) > 0) {\n                return 1;\n            }\n            return 0;\n        },\n\n        createContextualFragment: createContextualFragment,\n\n        toHtml: function() {\n            assertRangeValid(this);\n            var container = getRangeDocument(this).createElement(\"div\");\n            container.appendChild(this.cloneContents());\n            return container.innerHTML;\n        },\n\n        // touchingIsIntersecting determines whether this method considers a node that borders a range intersects\n        // with it (as in WebKit) or not (as in Gecko pre-1.9, and the default)\n        intersectsNode: function(node, touchingIsIntersecting) {\n            assertRangeValid(this);\n            assertNode(node, \"NOT_FOUND_ERR\");\n            if (dom.getDocument(node) !== getRangeDocument(this)) {\n                return false;\n            }\n\n            var parent = node.parentNode, offset = dom.getNodeIndex(node);\n            assertNode(parent, \"NOT_FOUND_ERR\");\n\n            var startComparison = dom.comparePoints(parent, offset, this.endContainer, this.endOffset),\n                endComparison = dom.comparePoints(parent, offset + 1, this.startContainer, this.startOffset);\n\n            return touchingIsIntersecting ? startComparison <= 0 && endComparison >= 0 : startComparison < 0 && endComparison > 0;\n        },\n\n\n        isPointInRange: function(node, offset) {\n            assertRangeValid(this);\n            assertNode(node, \"HIERARCHY_REQUEST_ERR\");\n            assertSameDocumentOrFragment(node, this.startContainer);\n\n            return (dom.comparePoints(node, offset, this.startContainer, this.startOffset) >= 0) &&\n                   (dom.comparePoints(node, offset, this.endContainer, this.endOffset) <= 0);\n        },\n\n        // The methods below are non-standard and invented by me.\n\n        // Sharing a boundary start-to-end or end-to-start does not count as intersection.\n        intersectsRange: function(range, touchingIsIntersecting) {\n            assertRangeValid(this);\n\n            if (getRangeDocument(range) != getRangeDocument(this)) {\n                throw new DOMException(\"WRONG_DOCUMENT_ERR\");\n            }\n\n            var startComparison = dom.comparePoints(this.startContainer, this.startOffset, range.endContainer, range.endOffset),\n                endComparison = dom.comparePoints(this.endContainer, this.endOffset, range.startContainer, range.startOffset);\n\n            return touchingIsIntersecting ? startComparison <= 0 && endComparison >= 0 : startComparison < 0 && endComparison > 0;\n        },\n\n        intersection: function(range) {\n            if (this.intersectsRange(range)) {\n                var startComparison = dom.comparePoints(this.startContainer, this.startOffset, range.startContainer, range.startOffset),\n                    endComparison = dom.comparePoints(this.endContainer, this.endOffset, range.endContainer, range.endOffset);\n\n                var intersectionRange = this.cloneRange();\n\n                if (startComparison == -1) {\n                    intersectionRange.setStart(range.startContainer, range.startOffset);\n                }\n                if (endComparison == 1) {\n                    intersectionRange.setEnd(range.endContainer, range.endOffset);\n                }\n                return intersectionRange;\n            }\n            return null;\n        },\n\n        union: function(range) {\n            if (this.intersectsRange(range, true)) {\n                var unionRange = this.cloneRange();\n                if (dom.comparePoints(range.startContainer, range.startOffset, this.startContainer, this.startOffset) == -1) {\n                    unionRange.setStart(range.startContainer, range.startOffset);\n                }\n                if (dom.comparePoints(range.endContainer, range.endOffset, this.endContainer, this.endOffset) == 1) {\n                    unionRange.setEnd(range.endContainer, range.endOffset);\n                }\n                return unionRange;\n            } else {\n                throw new RangeException(\"Ranges do not intersect\");\n            }\n        },\n\n        containsNode: function(node, allowPartial) {\n            if (allowPartial) {\n                return this.intersectsNode(node, false);\n            } else {\n                return this.compareNode(node) == n_i;\n            }\n        },\n\n        containsNodeContents: function(node) {\n            return this.comparePoint(node, 0) >= 0 && this.comparePoint(node, dom.getNodeLength(node)) <= 0;\n        },\n\n        containsRange: function(range) {\n            return this.intersection(range).equals(range);\n        },\n\n        containsNodeText: function(node) {\n            var nodeRange = this.cloneRange();\n            nodeRange.selectNode(node);\n            var textNodes = nodeRange.getNodes([3]);\n            if (textNodes.length > 0) {\n                nodeRange.setStart(textNodes[0], 0);\n                var lastTextNode = textNodes.pop();\n                nodeRange.setEnd(lastTextNode, lastTextNode.length);\n                var contains = this.containsRange(nodeRange);\n                nodeRange.detach();\n                return contains;\n            } else {\n                return this.containsNodeContents(node);\n            }\n        },\n\n        createNodeIterator: function(nodeTypes, filter) {\n            assertRangeValid(this);\n            return new RangeNodeIterator(this, nodeTypes, filter);\n        },\n\n        getNodes: function(nodeTypes, filter) {\n            assertRangeValid(this);\n            return getNodesInRange(this, nodeTypes, filter);\n        },\n\n        getDocument: function() {\n            return getRangeDocument(this);\n        },\n\n        collapseBefore: function(node) {\n            assertNotDetached(this);\n\n            this.setEndBefore(node);\n            this.collapse(false);\n        },\n\n        collapseAfter: function(node) {\n            assertNotDetached(this);\n\n            this.setStartAfter(node);\n            this.collapse(true);\n        },\n\n        getName: function() {\n            return \"DomRange\";\n        },\n\n        equals: function(range) {\n            return Range.rangesEqual(this, range);\n        },\n\n        inspect: function() {\n            return inspect(this);\n        }\n    };\n\n    function copyComparisonConstantsToObject(obj) {\n        obj.START_TO_START = s2s;\n        obj.START_TO_END = s2e;\n        obj.END_TO_END = e2e;\n        obj.END_TO_START = e2s;\n\n        obj.NODE_BEFORE = n_b;\n        obj.NODE_AFTER = n_a;\n        obj.NODE_BEFORE_AND_AFTER = n_b_a;\n        obj.NODE_INSIDE = n_i;\n    }\n\n    function copyComparisonConstants(constructor) {\n        copyComparisonConstantsToObject(constructor);\n        copyComparisonConstantsToObject(constructor.prototype);\n    }\n\n    function createRangeContentRemover(remover, boundaryUpdater) {\n        return function() {\n            assertRangeValid(this);\n\n            var sc = this.startContainer, so = this.startOffset, root = this.commonAncestorContainer;\n\n            var iterator = new RangeIterator(this, true);\n\n            // Work out where to position the range after content removal\n            var node, boundary;\n            if (sc !== root) {\n                node = dom.getClosestAncestorIn(sc, root, true);\n                boundary = getBoundaryAfterNode(node);\n                sc = boundary.node;\n                so = boundary.offset;\n            }\n\n            // Check none of the range is read-only\n            iterateSubtree(iterator, assertNodeNotReadOnly);\n\n            iterator.reset();\n\n            // Remove the content\n            var returnValue = remover(iterator);\n            iterator.detach();\n\n            // Move to the new position\n            boundaryUpdater(this, sc, so, sc, so);\n\n            return returnValue;\n        };\n    }\n\n    function createPrototypeRange(constructor, boundaryUpdater, detacher) {\n        function createBeforeAfterNodeSetter(isBefore, isStart) {\n            return function(node) {\n                assertNotDetached(this);\n                assertValidNodeType(node, beforeAfterNodeTypes);\n                assertValidNodeType(getRootContainer(node), rootContainerNodeTypes);\n\n                var boundary = (isBefore ? getBoundaryBeforeNode : getBoundaryAfterNode)(node);\n                (isStart ? setRangeStart : setRangeEnd)(this, boundary.node, boundary.offset);\n            };\n        }\n\n        function setRangeStart(range, node, offset) {\n            var ec = range.endContainer, eo = range.endOffset;\n            if (node !== range.startContainer || offset !== range.startOffset) {\n                // Check the root containers of the range and the new boundary, and also check whether the new boundary\n                // is after the current end. In either case, collapse the range to the new position\n                if (getRootContainer(node) != getRootContainer(ec) || dom.comparePoints(node, offset, ec, eo) == 1) {\n                    ec = node;\n                    eo = offset;\n                }\n                boundaryUpdater(range, node, offset, ec, eo);\n            }\n        }\n\n        function setRangeEnd(range, node, offset) {\n            var sc = range.startContainer, so = range.startOffset;\n            if (node !== range.endContainer || offset !== range.endOffset) {\n                // Check the root containers of the range and the new boundary, and also check whether the new boundary\n                // is after the current end. In either case, collapse the range to the new position\n                if (getRootContainer(node) != getRootContainer(sc) || dom.comparePoints(node, offset, sc, so) == -1) {\n                    sc = node;\n                    so = offset;\n                }\n                boundaryUpdater(range, sc, so, node, offset);\n            }\n        }\n\n        function setRangeStartAndEnd(range, node, offset) {\n            if (node !== range.startContainer || offset !== range.startOffset || node !== range.endContainer || offset !== range.endOffset) {\n                boundaryUpdater(range, node, offset, node, offset);\n            }\n        }\n\n        constructor.prototype = new RangePrototype();\n\n        api.util.extend(constructor.prototype, {\n            setStart: function(node, offset) {\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, true);\n                assertValidOffset(node, offset);\n\n                setRangeStart(this, node, offset);\n            },\n\n            setEnd: function(node, offset) {\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, true);\n                assertValidOffset(node, offset);\n\n                setRangeEnd(this, node, offset);\n            },\n\n            setStartBefore: createBeforeAfterNodeSetter(true, true),\n            setStartAfter: createBeforeAfterNodeSetter(false, true),\n            setEndBefore: createBeforeAfterNodeSetter(true, false),\n            setEndAfter: createBeforeAfterNodeSetter(false, false),\n\n            collapse: function(isStart) {\n                assertRangeValid(this);\n                if (isStart) {\n                    boundaryUpdater(this, this.startContainer, this.startOffset, this.startContainer, this.startOffset);\n                } else {\n                    boundaryUpdater(this, this.endContainer, this.endOffset, this.endContainer, this.endOffset);\n                }\n            },\n\n            selectNodeContents: function(node) {\n                // This doesn't seem well specified: the spec talks only about selecting the node's contents, which\n                // could be taken to mean only its children. However, browsers implement this the same as selectNode for\n                // text nodes, so I shall do likewise\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, true);\n\n                boundaryUpdater(this, node, 0, node, dom.getNodeLength(node));\n            },\n\n            selectNode: function(node) {\n                assertNotDetached(this);\n                assertNoDocTypeNotationEntityAncestor(node, false);\n                assertValidNodeType(node, beforeAfterNodeTypes);\n\n                var start = getBoundaryBeforeNode(node), end = getBoundaryAfterNode(node);\n                boundaryUpdater(this, start.node, start.offset, end.node, end.offset);\n            },\n\n            extractContents: createRangeContentRemover(extractSubtree, boundaryUpdater),\n\n            deleteContents: createRangeContentRemover(deleteSubtree, boundaryUpdater),\n\n            canSurroundContents: function() {\n                assertRangeValid(this);\n                assertNodeNotReadOnly(this.startContainer);\n                assertNodeNotReadOnly(this.endContainer);\n\n                // Check if the contents can be surrounded. Specifically, this means whether the range partially selects\n                // no non-text nodes.\n                var iterator = new RangeIterator(this, true);\n                var boundariesInvalid = (iterator._first && (isNonTextPartiallySelected(iterator._first, this)) ||\n                        (iterator._last && isNonTextPartiallySelected(iterator._last, this)));\n                iterator.detach();\n                return !boundariesInvalid;\n            },\n\n            detach: function() {\n                detacher(this);\n            },\n\n            splitBoundaries: function() {\n                assertRangeValid(this);\n\n\n                var sc = this.startContainer, so = this.startOffset, ec = this.endContainer, eo = this.endOffset;\n                var startEndSame = (sc === ec);\n\n                if (dom.isCharacterDataNode(ec) && eo > 0 && eo < ec.length) {\n                    dom.splitDataNode(ec, eo);\n\n                }\n\n                if (dom.isCharacterDataNode(sc) && so > 0 && so < sc.length) {\n\n                    sc = dom.splitDataNode(sc, so);\n                    if (startEndSame) {\n                        eo -= so;\n                        ec = sc;\n                    } else if (ec == sc.parentNode && eo >= dom.getNodeIndex(sc)) {\n                        eo++;\n                    }\n                    so = 0;\n\n                }\n                boundaryUpdater(this, sc, so, ec, eo);\n            },\n\n            normalizeBoundaries: function() {\n                assertRangeValid(this);\n\n                var sc = this.startContainer, so = this.startOffset, ec = this.endContainer, eo = this.endOffset;\n\n                var mergeForward = function(node) {\n                    var sibling = node.nextSibling;\n                    if (sibling && sibling.nodeType == node.nodeType) {\n                        ec = node;\n                        eo = node.length;\n                        node.appendData(sibling.data);\n                        sibling.parentNode.removeChild(sibling);\n                    }\n                };\n\n                var mergeBackward = function(node) {\n                    var sibling = node.previousSibling;\n                    if (sibling && sibling.nodeType == node.nodeType) {\n                        sc = node;\n                        var nodeLength = node.length;\n                        so = sibling.length;\n                        node.insertData(0, sibling.data);\n                        sibling.parentNode.removeChild(sibling);\n                        if (sc == ec) {\n                            eo += so;\n                            ec = sc;\n                        } else if (ec == node.parentNode) {\n                            var nodeIndex = dom.getNodeIndex(node);\n                            if (eo == nodeIndex) {\n                                ec = node;\n                                eo = nodeLength;\n                            } else if (eo > nodeIndex) {\n                                eo--;\n                            }\n                        }\n                    }\n                };\n\n                var normalizeStart = true;\n\n                if (dom.isCharacterDataNode(ec)) {\n                    if (ec.length == eo) {\n                        mergeForward(ec);\n                    }\n                } else {\n                    if (eo > 0) {\n                        var endNode = ec.childNodes[eo - 1];\n                        if (endNode && dom.isCharacterDataNode(endNode)) {\n                            mergeForward(endNode);\n                        }\n                    }\n                    normalizeStart = !this.collapsed;\n                }\n\n                if (normalizeStart) {\n                    if (dom.isCharacterDataNode(sc)) {\n                        if (so == 0) {\n                            mergeBackward(sc);\n                        }\n                    } else {\n                        if (so < sc.childNodes.length) {\n                            var startNode = sc.childNodes[so];\n                            if (startNode && dom.isCharacterDataNode(startNode)) {\n                                mergeBackward(startNode);\n                            }\n                        }\n                    }\n                } else {\n                    sc = ec;\n                    so = eo;\n                }\n\n                boundaryUpdater(this, sc, so, ec, eo);\n            },\n\n            collapseToPoint: function(node, offset) {\n                assertNotDetached(this);\n\n                assertNoDocTypeNotationEntityAncestor(node, true);\n                assertValidOffset(node, offset);\n\n                setRangeStartAndEnd(this, node, offset);\n            }\n        });\n\n        copyComparisonConstants(constructor);\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    // Updates commonAncestorContainer and collapsed after boundary change\n    function updateCollapsedAndCommonAncestor(range) {\n        range.collapsed = (range.startContainer === range.endContainer && range.startOffset === range.endOffset);\n        range.commonAncestorContainer = range.collapsed ?\n            range.startContainer : dom.getCommonAncestor(range.startContainer, range.endContainer);\n    }\n\n    function updateBoundaries(range, startContainer, startOffset, endContainer, endOffset) {\n        var startMoved = (range.startContainer !== startContainer || range.startOffset !== startOffset);\n        var endMoved = (range.endContainer !== endContainer || range.endOffset !== endOffset);\n\n        range.startContainer = startContainer;\n        range.startOffset = startOffset;\n        range.endContainer = endContainer;\n        range.endOffset = endOffset;\n\n        updateCollapsedAndCommonAncestor(range);\n        dispatchEvent(range, \"boundarychange\", {startMoved: startMoved, endMoved: endMoved});\n    }\n\n    function detach(range) {\n        assertNotDetached(range);\n        range.startContainer = range.startOffset = range.endContainer = range.endOffset = null;\n        range.collapsed = range.commonAncestorContainer = null;\n        dispatchEvent(range, \"detach\", null);\n        range._listeners = null;\n    }\n\n    /**\n     * @constructor\n     */\n    function Range(doc) {\n        this.startContainer = doc;\n        this.startOffset = 0;\n        this.endContainer = doc;\n        this.endOffset = 0;\n        this._listeners = {\n            boundarychange: [],\n            detach: []\n        };\n        updateCollapsedAndCommonAncestor(this);\n    }\n\n    createPrototypeRange(Range, updateBoundaries, detach);\n\n    api.rangePrototype = RangePrototype.prototype;\n\n    Range.rangeProperties = rangeProperties;\n    Range.RangeIterator = RangeIterator;\n    Range.copyComparisonConstants = copyComparisonConstants;\n    Range.createPrototypeRange = createPrototypeRange;\n    Range.inspect = inspect;\n    Range.getRangeDocument = getRangeDocument;\n    Range.rangesEqual = function(r1, r2) {\n        return r1.startContainer === r2.startContainer &&\n               r1.startOffset === r2.startOffset &&\n               r1.endContainer === r2.endContainer &&\n               r1.endOffset === r2.endOffset;\n    };\n\n    api.DomRange = Range;\n    api.RangeException = RangeException;\n});rangy.createModule(\"WrappedRange\", function(api, module) {\n    api.requireModules( [\"DomUtil\", \"DomRange\"] );\n\n    /**\n     * @constructor\n     */\n    var WrappedRange;\n    var dom = api.dom;\n    var DomPosition = dom.DomPosition;\n    var DomRange = api.DomRange;\n\n\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    /*\n    This is a workaround for a bug where IE returns the wrong container element from the TextRange's parentElement()\n    method. For example, in the following (where pipes denote the selection boundaries):\n\n    <ul id=\"ul\"><li id=\"a\">| a </li><li id=\"b\"> b |</li></ul>\n\n    var range = document.selection.createRange();\n    alert(range.parentElement().id); // Should alert \"ul\" but alerts \"b\"\n\n    This method returns the common ancestor node of the following:\n    - the parentElement() of the textRange\n    - the parentElement() of the textRange after calling collapse(true)\n    - the parentElement() of the textRange after calling collapse(false)\n     */\n    function getTextRangeContainerElement(textRange) {\n        var parentEl = textRange.parentElement();\n\n        var range = textRange.duplicate();\n        range.collapse(true);\n        var startEl = range.parentElement();\n        range = textRange.duplicate();\n        range.collapse(false);\n        var endEl = range.parentElement();\n        var startEndContainer = (startEl == endEl) ? startEl : dom.getCommonAncestor(startEl, endEl);\n\n        return startEndContainer == parentEl ? startEndContainer : dom.getCommonAncestor(parentEl, startEndContainer);\n    }\n\n    function textRangeIsCollapsed(textRange) {\n        return textRange.compareEndPoints(\"StartToEnd\", textRange) == 0;\n    }\n\n    // Gets the boundary of a TextRange expressed as a node and an offset within that node. This function started out as\n    // an improved version of code found in Tim Cameron Ryan's IERange (http://code.google.com/p/ierange/) but has\n    // grown, fixing problems with line breaks in preformatted text, adding workaround for IE TextRange bugs, handling\n    // for inputs and images, plus optimizations.\n    function getTextRangeBoundaryPosition(textRange, wholeRangeContainerElement, isStart, isCollapsed) {\n        var workingRange = textRange.duplicate();\n\n        workingRange.collapse(isStart);\n        var containerElement = workingRange.parentElement();\n\n        // Sometimes collapsing a TextRange that's at the start of a text node can move it into the previous node, so\n        // check for that\n        // TODO: Find out when. Workaround for wholeRangeContainerElement may break this\n        if (!dom.isAncestorOf(wholeRangeContainerElement, containerElement, true)) {\n            containerElement = wholeRangeContainerElement;\n\n        }\n\n\n\n        // Deal with nodes that cannot \"contain rich HTML markup\". In practice, this means form inputs, images and\n        // similar. See http://msdn.microsoft.com/en-us/library/aa703950%28VS.85%29.aspx\n        if (!containerElement.canHaveHTML) {\n            return new DomPosition(containerElement.parentNode, dom.getNodeIndex(containerElement));\n        }\n\n        var workingNode = dom.getDocument(containerElement).createElement(\"span\");\n        var comparison, workingComparisonType = isStart ? \"StartToStart\" : \"StartToEnd\";\n        var previousNode, nextNode, boundaryPosition, boundaryNode;\n\n        // Move the working range through the container's children, starting at the end and working backwards, until the\n        // working range reaches or goes past the boundary we're interested in\n        do {\n            containerElement.insertBefore(workingNode, workingNode.previousSibling);\n            workingRange.moveToElementText(workingNode);\n        } while ( (comparison = workingRange.compareEndPoints(workingComparisonType, textRange)) > 0 &&\n                workingNode.previousSibling);\n\n        // We've now reached or gone past the boundary of the text range we're interested in\n        // so have identified the node we want\n        boundaryNode = workingNode.nextSibling;\n\n        if (comparison == -1 && boundaryNode && dom.isCharacterDataNode(boundaryNode)) {\n            // This is a character data node (text, comment, cdata). The working range is collapsed at the start of the\n            // node containing the text range's boundary, so we move the end of the working range to the boundary point\n            // and measure the length of its text to get the boundary's offset within the node.\n            workingRange.setEndPoint(isStart ? \"EndToStart\" : \"EndToEnd\", textRange);\n\n\n            var offset;\n\n            if (/[\\r\\n]/.test(boundaryNode.data)) {\n                /*\n                For the particular case of a boundary within a text node containing line breaks (within a <pre> element,\n                for example), we need a slightly complicated approach to get the boundary's offset in IE. The facts:\n\n                - Each line break is represented as \\r in the text node's data/nodeValue properties\n                - Each line break is represented as \\r\\n in the TextRange's 'text' property\n                - The 'text' property of the TextRange does not contain trailing line breaks\n\n                To get round the problem presented by the final fact above, we can use the fact that TextRange's\n                moveStart() and moveEnd() methods return the actual number of characters moved, which is not necessarily\n                the same as the number of characters it was instructed to move. The simplest approach is to use this to\n                store the characters moved when moving both the start and end of the range to the start of the document\n                body and subtracting the start offset from the end offset (the \"move-negative-gazillion\" method).\n                However, this is extremely slow when the document is large and the range is near the end of it. Clearly\n                doing the mirror image (i.e. moving the range boundaries to the end of the document) has the same\n                problem.\n\n                Another approach that works is to use moveStart() to move the start boundary of the range up to the end\n                boundary one character at a time and incrementing a counter with the value returned by the moveStart()\n                call. However, the check for whether the start boundary has reached the end boundary is expensive, so\n                this method is slow (although unlike \"move-negative-gazillion\" is largely unaffected by the location of\n                the range within the document).\n\n                The method below is a hybrid of the two methods above. It uses the fact that a string containing the\n                TextRange's 'text' property with each \\r\\n converted to a single \\r character cannot be longer than the\n                text of the TextRange, so the start of the range is moved that length initially and then a character at\n                a time to make up for any trailing line breaks not contained in the 'text' property. This has good\n                performance in most situations compared to the previous two methods.\n                */\n                var tempRange = workingRange.duplicate();\n                var rangeLength = tempRange.text.replace(/\\r\\n/g, \"\\r\").length;\n\n                offset = tempRange.moveStart(\"character\", rangeLength);\n                while ( (comparison = tempRange.compareEndPoints(\"StartToEnd\", tempRange)) == -1) {\n                    offset++;\n                    tempRange.moveStart(\"character\", 1);\n                }\n            } else {\n                offset = workingRange.text.length;\n            }\n            boundaryPosition = new DomPosition(boundaryNode, offset);\n        } else {\n\n\n            // If the boundary immediately follows a character data node and this is the end boundary, we should favour\n            // a position within that, and likewise for a start boundary preceding a character data node\n            previousNode = (isCollapsed || !isStart) && workingNode.previousSibling;\n            nextNode = (isCollapsed || isStart) && workingNode.nextSibling;\n\n\n\n            if (nextNode && dom.isCharacterDataNode(nextNode)) {\n                boundaryPosition = new DomPosition(nextNode, 0);\n            } else if (previousNode && dom.isCharacterDataNode(previousNode)) {\n                boundaryPosition = new DomPosition(previousNode, previousNode.length);\n            } else {\n                boundaryPosition = new DomPosition(containerElement, dom.getNodeIndex(workingNode));\n            }\n        }\n\n        // Clean up\n        workingNode.parentNode.removeChild(workingNode);\n\n        return boundaryPosition;\n    }\n\n    // Returns a TextRange representing the boundary of a TextRange expressed as a node and an offset within that node.\n    // This function started out as an optimized version of code found in Tim Cameron Ryan's IERange\n    // (http://code.google.com/p/ierange/)\n    function createBoundaryTextRange(boundaryPosition, isStart) {\n        var boundaryNode, boundaryParent, boundaryOffset = boundaryPosition.offset;\n        var doc = dom.getDocument(boundaryPosition.node);\n        var workingNode, childNodes, workingRange = doc.body.createTextRange();\n        var nodeIsDataNode = dom.isCharacterDataNode(boundaryPosition.node);\n\n        if (nodeIsDataNode) {\n            boundaryNode = boundaryPosition.node;\n            boundaryParent = boundaryNode.parentNode;\n        } else {\n            childNodes = boundaryPosition.node.childNodes;\n            boundaryNode = (boundaryOffset < childNodes.length) ? childNodes[boundaryOffset] : null;\n            boundaryParent = boundaryPosition.node;\n        }\n\n        // Position the range immediately before the node containing the boundary\n        workingNode = doc.createElement(\"span\");\n\n        // Making the working element non-empty element persuades IE to consider the TextRange boundary to be within the\n        // element rather than immediately before or after it, which is what we want\n        workingNode.innerHTML = \"&#feff;\";\n\n        // insertBefore is supposed to work like appendChild if the second parameter is null. However, a bug report\n        // for IERange suggests that it can crash the browser: http://code.google.com/p/ierange/issues/detail?id=12\n        if (boundaryNode) {\n            boundaryParent.insertBefore(workingNode, boundaryNode);\n        } else {\n            boundaryParent.appendChild(workingNode);\n        }\n\n        workingRange.moveToElementText(workingNode);\n        workingRange.collapse(!isStart);\n\n        // Clean up\n        boundaryParent.removeChild(workingNode);\n\n        // Move the working range to the text offset, if required\n        if (nodeIsDataNode) {\n            workingRange[isStart ? \"moveStart\" : \"moveEnd\"](\"character\", boundaryOffset);\n        }\n\n        return workingRange;\n    }\n\n    /*----------------------------------------------------------------------------------------------------------------*/\n\n    if (api.features.implementsDomRange && (!api.features.implementsTextRange || !api.config.preferTextRange)) {\n        // This is a wrapper around the browser's native DOM Range. It has two aims:\n        // - Provide workarounds for specific browser bugs\n        // - provide convenient extensions, which are inherited from Rangy's DomRange\n\n        (function() {\n            var rangeProto;\n            var rangeProperties = DomRange.rangeProperties;\n            var canSetRangeStartAfterEnd;\n\n            function updateRangeProperties(range) {\n                var i = rangeProperties.length, prop;\n                while (i--) {\n                    prop = rangeProperties[i];\n                    range[prop] = range.nativeRange[prop];\n                }\n            }\n\n            function updateNativeRange(range, startContainer, startOffset, endContainer,endOffset) {\n                var startMoved = (range.startContainer !== startContainer || range.startOffset != startOffset);\n                var endMoved = (range.endContainer !== endContainer || range.endOffset != endOffset);\n\n                // Always set both boundaries for the benefit of IE9 (see issue 35)\n                if (startMoved || endMoved) {\n                    range.setEnd(endContainer, endOffset);\n                    range.setStart(startContainer, startOffset);\n                }\n            }\n\n            function detach(range) {\n                range.nativeRange.detach();\n                range.detached = true;\n                var i = rangeProperties.length, prop;\n                while (i--) {\n                    prop = rangeProperties[i];\n                    range[prop] = null;\n                }\n            }\n\n            var createBeforeAfterNodeSetter;\n\n            WrappedRange = function(range) {\n                if (!range) {\n                    throw new Error(\"Range must be specified\");\n                }\n                this.nativeRange = range;\n                updateRangeProperties(this);\n            };\n\n            DomRange.createPrototypeRange(WrappedRange, updateNativeRange, detach);\n\n            rangeProto = WrappedRange.prototype;\n\n            rangeProto.selectNode = function(node) {\n                this.nativeRange.selectNode(node);\n                updateRangeProperties(this);\n            };\n\n            rangeProto.deleteContents = function() {\n                this.nativeRange.deleteContents();\n                updateRangeProperties(this);\n            };\n\n            rangeProto.extractContents = function() {\n                var frag = this.nativeRange.extractContents();\n                updateRangeProperties(this);\n                return frag;\n            };\n\n            rangeProto.cloneContents = function() {\n                return this.nativeRange.cloneContents();\n            };\n\n            // TODO: Until I can find a way to programmatically trigger the Firefox bug (apparently long-standing, still\n            // present in 3.6.8) that throws \"Index or size is negative or greater than the allowed amount\" for\n            // insertNode in some circumstances, all browsers will have to use the Rangy's own implementation of\n            // insertNode, which works but is almost certainly slower than the native implementation.\n/*\n            rangeProto.insertNode = function(node) {\n                this.nativeRange.insertNode(node);\n                updateRangeProperties(this);\n            };\n*/\n\n            rangeProto.surroundContents = function(node) {\n                this.nativeRange.surroundContents(node);\n                updateRangeProperties(this);\n            };\n\n            rangeProto.collapse = function(isStart) {\n                this.nativeRange.collapse(isStart);\n                updateRangeProperties(this);\n            };\n\n            rangeProto.cloneRange = function() {\n                return new WrappedRange(this.nativeRange.cloneRange());\n            };\n\n            rangeProto.refresh = function() {\n                updateRangeProperties(this);\n            };\n\n            rangeProto.toString = function() {\n                return this.nativeRange.toString();\n            };\n\n            // Create test range and node for feature detection\n\n            var testTextNode = document.createTextNode(\"test\");\n            dom.getBody(document).appendChild(testTextNode);\n            var range = document.createRange();\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for Firefox 2 bug that prevents moving the start of a Range to a point after its current end and\n            // correct for it\n\n            range.setStart(testTextNode, 0);\n            range.setEnd(testTextNode, 0);\n\n            try {\n                range.setStart(testTextNode, 1);\n                canSetRangeStartAfterEnd = true;\n\n                rangeProto.setStart = function(node, offset) {\n                    this.nativeRange.setStart(node, offset);\n                    updateRangeProperties(this);\n                };\n\n                rangeProto.setEnd = function(node, offset) {\n                    this.nativeRange.setEnd(node, offset);\n                    updateRangeProperties(this);\n                };\n\n                createBeforeAfterNodeSetter = function(name) {\n                    return function(node) {\n                        this.nativeRange[name](node);\n                        updateRangeProperties(this);\n                    };\n                };\n\n            } catch(ex) {\n\n\n                canSetRangeStartAfterEnd = false;\n\n                rangeProto.setStart = function(node, offset) {\n                    try {\n                        this.nativeRange.setStart(node, offset);\n                    } catch (ex) {\n                        this.nativeRange.setEnd(node, offset);\n                        this.nativeRange.setStart(node, offset);\n                    }\n                    updateRangeProperties(this);\n                };\n\n                rangeProto.setEnd = function(node, offset) {\n                    try {\n                        this.nativeRange.setEnd(node, offset);\n                    } catch (ex) {\n                        this.nativeRange.setStart(node, offset);\n                        this.nativeRange.setEnd(node, offset);\n                    }\n                    updateRangeProperties(this);\n                };\n\n                createBeforeAfterNodeSetter = function(name, oppositeName) {\n                    return function(node) {\n                        try {\n                            this.nativeRange[name](node);\n                        } catch (ex) {\n                            this.nativeRange[oppositeName](node);\n                            this.nativeRange[name](node);\n                        }\n                        updateRangeProperties(this);\n                    };\n                };\n            }\n\n            rangeProto.setStartBefore = createBeforeAfterNodeSetter(\"setStartBefore\", \"setEndBefore\");\n            rangeProto.setStartAfter = createBeforeAfterNodeSetter(\"setStartAfter\", \"setEndAfter\");\n            rangeProto.setEndBefore = createBeforeAfterNodeSetter(\"setEndBefore\", \"setStartBefore\");\n            rangeProto.setEndAfter = createBeforeAfterNodeSetter(\"setEndAfter\", \"setStartAfter\");\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for and correct Firefox 2 behaviour with selectNodeContents on text nodes: it collapses the range to\n            // the 0th character of the text node\n            range.selectNodeContents(testTextNode);\n            if (range.startContainer == testTextNode && range.endContainer == testTextNode &&\n                    range.startOffset == 0 && range.endOffset == testTextNode.length) {\n                rangeProto.selectNodeContents = function(node) {\n                    this.nativeRange.selectNodeContents(node);\n                    updateRangeProperties(this);\n                };\n            } else {\n                rangeProto.selectNodeContents = function(node) {\n                    this.setStart(node, 0);\n                    this.setEnd(node, DomRange.getEndOffset(node));\n                };\n            }\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for WebKit bug that has the beahviour of compareBoundaryPoints round the wrong way for constants\n            // START_TO_END and END_TO_START: https://bugs.webkit.org/show_bug.cgi?id=20738\n\n            range.selectNodeContents(testTextNode);\n            range.setEnd(testTextNode, 3);\n\n            var range2 = document.createRange();\n            range2.selectNodeContents(testTextNode);\n            range2.setEnd(testTextNode, 4);\n            range2.setStart(testTextNode, 2);\n\n            if (range.compareBoundaryPoints(range.START_TO_END, range2) == -1 &\n                    range.compareBoundaryPoints(range.END_TO_START, range2) == 1) {\n                // This is the wrong way round, so correct for it\n\n\n                rangeProto.compareBoundaryPoints = function(type, range) {\n                    range = range.nativeRange || range;\n                    if (type == range.START_TO_END) {\n                        type = range.END_TO_START;\n                    } else if (type == range.END_TO_START) {\n                        type = range.START_TO_END;\n                    }\n                    return this.nativeRange.compareBoundaryPoints(type, range);\n                };\n            } else {\n                rangeProto.compareBoundaryPoints = function(type, range) {\n                    return this.nativeRange.compareBoundaryPoints(type, range.nativeRange || range);\n                };\n            }\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Test for existence of createContextualFragment and delegate to it if it exists\n            if (api.util.isHostMethod(range, \"createContextualFragment\")) {\n                rangeProto.createContextualFragment = function(fragmentStr) {\n                    return this.nativeRange.createContextualFragment(fragmentStr);\n                };\n            }\n\n            /*--------------------------------------------------------------------------------------------------------*/\n\n            // Clean up\n            dom.getBody(document).removeChild(testTextNode);\n            range.detach();\n            range2.detach();\n        })();\n\n        api.createNativeRange = function(doc) {\n            doc = doc || document;\n            return doc.createRange();\n        };\n    } else if (api.features.implementsTextRange) {\n        // This is a wrapper around a TextRange, providing full DOM Range functionality using rangy's DomRange as a\n        // prototype\n\n        WrappedRange = function(textRange) {\n            this.textRange = textRange;\n            this.refresh();\n        };\n\n        WrappedRange.prototype = new DomRange(document);\n\n        WrappedRange.prototype.refresh = function() {\n            var start, end;\n\n            // TextRange's parentElement() method cannot be trusted. getTextRangeContainerElement() works around that.\n            var rangeContainerElement = getTextRangeContainerElement(this.textRange);\n\n            if (textRangeIsCollapsed(this.textRange)) {\n                end = start = getTextRangeBoundaryPosition(this.textRange, rangeContainerElement, true, true);\n            } else {\n\n                start = getTextRangeBoundaryPosition(this.textRange, rangeContainerElement, true, false);\n                end = getTextRangeBoundaryPosition(this.textRange, rangeContainerElement, false, false);\n            }\n\n            this.setStart(start.node, start.offset);\n            this.setEnd(end.node, end.offset);\n        };\n\n        DomRange.copyComparisonConstants(WrappedRange);\n\n        // Add WrappedRange as the Range property of the global object to allow expression like Range.END_TO_END to work\n        var globalObj = (function() { return this; })();\n        if (typeof globalObj.Range == \"undefined\") {\n            globalObj.Range = WrappedRange;\n        }\n\n        api.createNativeRange = function(doc) {\n            doc = doc || document;\n            return doc.body.createTextRange();\n        };\n    }\n\n    if (api.features.implementsTextRange) {\n        WrappedRange.rangeToTextRange = function(range) {\n            if (range.collapsed) {\n                var tr = createBoundaryTextRange(new DomPosition(range.startContainer, range.startOffset), true);\n\n\n\n                return tr;\n\n                //return createBoundaryTextRange(new DomPosition(range.startContainer, range.startOffset), true);\n            } else {\n                var startRange = createBoundaryTextRange(new DomPosition(range.startContainer, range.startOffset), true);\n                var endRange = createBoundaryTextRange(new DomPosition(range.endContainer, range.endOffset), false);\n                var textRange = dom.getDocument(range.startContainer).body.createTextRange();\n                textRange.setEndPoint(\"StartToStart\", startRange);\n                textRange.setEndPoint(\"EndToEnd\", endRange);\n                return textRange;\n            }\n        };\n    }\n\n    WrappedRange.prototype.getName = function() {\n        return \"WrappedRange\";\n    };\n\n    api.WrappedRange = WrappedRange;\n\n    api.createRange = function(doc) {\n        doc = doc || document;\n        return new WrappedRange(api.createNativeRange(doc));\n    };\n\n    api.createRangyRange = function(doc) {\n        doc = doc || document;\n        return new DomRange(doc);\n    };\n\n    api.createIframeRange = function(iframeEl) {\n        return api.createRange(dom.getIframeDocument(iframeEl));\n    };\n\n    api.createIframeRangyRange = function(iframeEl) {\n        return api.createRangyRange(dom.getIframeDocument(iframeEl));\n    };\n\n    api.addCreateMissingNativeApiListener(function(win) {\n        var doc = win.document;\n        if (typeof doc.createRange == \"undefined\") {\n            doc.createRange = function() {\n                return api.createRange(this);\n            };\n        }\n        doc = win = null;\n    });\n});rangy.createModule(\"WrappedSelection\", function(api, module) {\n    // This will create a selection object wrapper that follows the Selection object found in the WHATWG draft DOM Range\n    // spec (http://html5.org/specs/dom-range.html)\n\n    api.requireModules( [\"DomUtil\", \"DomRange\", \"WrappedRange\"] );\n\n    api.config.checkSelectionRanges = true;\n\n    var BOOLEAN = \"boolean\",\n        windowPropertyName = \"_rangySelection\",\n        dom = api.dom,\n        util = api.util,\n        DomRange = api.DomRange,\n        WrappedRange = api.WrappedRange,\n        DOMException = api.DOMException,\n        DomPosition = dom.DomPosition,\n        getSelection,\n        selectionIsCollapsed,\n        CONTROL = \"Control\";\n\n\n\n    function getWinSelection(winParam) {\n        return (winParam || window).getSelection();\n    }\n\n    function getDocSelection(winParam) {\n        return (winParam || window).document.selection;\n    }\n\n    // Test for the Range/TextRange and Selection features required\n    // Test for ability to retrieve selection\n    var implementsWinGetSelection = api.util.isHostMethod(window, \"getSelection\"),\n        implementsDocSelection = api.util.isHostObject(document, \"selection\");\n\n    var useDocumentSelection = implementsDocSelection && (!implementsWinGetSelection || api.config.preferTextRange);\n\n    if (useDocumentSelection) {\n        getSelection = getDocSelection;\n        api.isSelectionValid = function(winParam) {\n            var doc = (winParam || window).document, nativeSel = doc.selection;\n\n            // Check whether the selection TextRange is actually contained within the correct document\n            return (nativeSel.type != \"None\" || dom.getDocument(nativeSel.createRange().parentElement()) == doc);\n        };\n    } else if (implementsWinGetSelection) {\n        getSelection = getWinSelection;\n        api.isSelectionValid = function() {\n            return true;\n        };\n    } else {\n        module.fail(\"Neither document.selection or window.getSelection() detected.\");\n    }\n\n    api.getNativeSelection = getSelection;\n\n    var testSelection = getSelection();\n    var testRange = api.createNativeRange(document);\n    var body = dom.getBody(document);\n\n    // Obtaining a range from a selection\n    var selectionHasAnchorAndFocus = util.areHostObjects(testSelection, [\"anchorNode\", \"focusNode\"] &&\n                                     util.areHostProperties(testSelection, [\"anchorOffset\", \"focusOffset\"]));\n    api.features.selectionHasAnchorAndFocus = selectionHasAnchorAndFocus;\n\n    // Test for existence of native selection extend() method\n    var selectionHasExtend = util.isHostMethod(testSelection, \"extend\");\n    api.features.selectionHasExtend = selectionHasExtend;\n\n    // Test if rangeCount exists\n    var selectionHasRangeCount = (typeof testSelection.rangeCount == \"number\");\n    api.features.selectionHasRangeCount = selectionHasRangeCount;\n\n    var selectionSupportsMultipleRanges = false;\n    var collapsedNonEditableSelectionsSupported = true;\n\n    if (util.areHostMethods(testSelection, [\"addRange\", \"getRangeAt\", \"removeAllRanges\"]) &&\n            typeof testSelection.rangeCount == \"number\" && api.features.implementsDomRange) {\n\n        (function() {\n            var iframe = document.createElement(\"iframe\");\n            body.appendChild(iframe);\n\n            var iframeDoc = dom.getIframeDocument(iframe);\n            iframeDoc.open();\n            iframeDoc.write(\"<html><head></head><body>12</body></html>\");\n            iframeDoc.close();\n\n            var sel = dom.getIframeWindow(iframe).getSelection();\n            var docEl = iframeDoc.documentElement;\n            var iframeBody = docEl.lastChild, textNode = iframeBody.firstChild;\n\n            // Test whether the native selection will allow a collapsed selection within a non-editable element\n            var r1 = iframeDoc.createRange();\n            r1.setStart(textNode, 1);\n            r1.collapse(true);\n            sel.addRange(r1);\n            collapsedNonEditableSelectionsSupported = (sel.rangeCount == 1);\n            sel.removeAllRanges();\n\n            // Test whether the native selection is capable of supporting multiple ranges\n            var r2 = r1.cloneRange();\n            r1.setStart(textNode, 0);\n            r2.setEnd(textNode, 2);\n            sel.addRange(r1);\n            sel.addRange(r2);\n\n            selectionSupportsMultipleRanges = (sel.rangeCount == 2);\n\n            // Clean up\n            r1.detach();\n            r2.detach();\n\n            body.removeChild(iframe);\n        })();\n    }\n\n    api.features.selectionSupportsMultipleRanges = selectionSupportsMultipleRanges;\n    api.features.collapsedNonEditableSelectionsSupported = collapsedNonEditableSelectionsSupported;\n\n    // ControlRanges\n    var implementsControlRange = false, testControlRange;\n\n    if (body && util.isHostMethod(body, \"createControlRange\")) {\n        testControlRange = body.createControlRange();\n        if (util.areHostProperties(testControlRange, [\"item\", \"add\"])) {\n            implementsControlRange = true;\n        }\n    }\n    api.features.implementsControlRange = implementsControlRange;\n\n    // Selection collapsedness\n    if (selectionHasAnchorAndFocus) {\n        selectionIsCollapsed = function(sel) {\n            return sel.anchorNode === sel.focusNode && sel.anchorOffset === sel.focusOffset;\n        };\n    } else {\n        selectionIsCollapsed = function(sel) {\n            return sel.rangeCount ? sel.getRangeAt(sel.rangeCount - 1).collapsed : false;\n        };\n    }\n\n    function updateAnchorAndFocusFromRange(sel, range, backwards) {\n        var anchorPrefix = backwards ? \"end\" : \"start\", focusPrefix = backwards ? \"start\" : \"end\";\n        sel.anchorNode = range[anchorPrefix + \"Container\"];\n        sel.anchorOffset = range[anchorPrefix + \"Offset\"];\n        sel.focusNode = range[focusPrefix + \"Container\"];\n        sel.focusOffset = range[focusPrefix + \"Offset\"];\n    }\n\n    function updateAnchorAndFocusFromNativeSelection(sel) {\n        var nativeSel = sel.nativeSelection;\n        sel.anchorNode = nativeSel.anchorNode;\n        sel.anchorOffset = nativeSel.anchorOffset;\n        sel.focusNode = nativeSel.focusNode;\n        sel.focusOffset = nativeSel.focusOffset;\n    }\n\n    function updateEmptySelection(sel) {\n        sel.anchorNode = sel.focusNode = null;\n        sel.anchorOffset = sel.focusOffset = 0;\n        sel.rangeCount = 0;\n        sel.isCollapsed = true;\n        sel._ranges.length = 0;\n    }\n\n    function getNativeRange(range) {\n        var nativeRange;\n        if (range instanceof DomRange) {\n            nativeRange = range._selectionNativeRange;\n            if (!nativeRange) {\n                nativeRange = api.createNativeRange(dom.getDocument(range.startContainer));\n                nativeRange.setEnd(range.endContainer, range.endOffset);\n                nativeRange.setStart(range.startContainer, range.startOffset);\n                range._selectionNativeRange = nativeRange;\n                range.attachListener(\"detach\", function() {\n\n                    this._selectionNativeRange = null;\n                });\n            }\n        } else if (range instanceof WrappedRange) {\n            nativeRange = range.nativeRange;\n        } else if (api.features.implementsDomRange && (range instanceof dom.getWindow(range.startContainer).Range)) {\n            nativeRange = range;\n        }\n        return nativeRange;\n    }\n\n    function rangeContainsSingleElement(rangeNodes) {\n        if (!rangeNodes.length || rangeNodes[0].nodeType != 1) {\n            return false;\n        }\n        for (var i = 1, len = rangeNodes.length; i < len; ++i) {\n            if (!dom.isAncestorOf(rangeNodes[0], rangeNodes[i])) {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    function getSingleElementFromRange(range) {\n        var nodes = range.getNodes();\n        if (!rangeContainsSingleElement(nodes)) {\n            throw new Error(\"getSingleElementFromRange: range \" + range.inspect() + \" did not consist of a single element\");\n        }\n        return nodes[0];\n    }\n\n    function isTextRange(range) {\n        return !!range && typeof range.text != \"undefined\";\n    }\n\n    function updateFromTextRange(sel, range) {\n        // Create a Range from the selected TextRange\n        var wrappedRange = new WrappedRange(range);\n        sel._ranges = [wrappedRange];\n\n        updateAnchorAndFocusFromRange(sel, wrappedRange, false);\n        sel.rangeCount = 1;\n        sel.isCollapsed = wrappedRange.collapsed;\n    }\n\n    function updateControlSelection(sel) {\n        // Update the wrapped selection based on what's now in the native selection\n        sel._ranges.length = 0;\n        if (sel.docSelection.type == \"None\") {\n            updateEmptySelection(sel);\n        } else {\n            var controlRange = sel.docSelection.createRange();\n            if (isTextRange(controlRange)) {\n                // This case (where the selection type is \"Control\" and calling createRange() on the selection returns\n                // a TextRange) can happen in IE 9. It happens, for example, when all elements in the selected\n                // ControlRange have been removed from the ControlRange and removed from the document.\n                updateFromTextRange(sel, controlRange);\n            } else {\n                sel.rangeCount = controlRange.length;\n                var range, doc = dom.getDocument(controlRange.item(0));\n                for (var i = 0; i < sel.rangeCount; ++i) {\n                    range = api.createRange(doc);\n                    range.selectNode(controlRange.item(i));\n                    sel._ranges.push(range);\n                }\n                sel.isCollapsed = sel.rangeCount == 1 && sel._ranges[0].collapsed;\n                updateAnchorAndFocusFromRange(sel, sel._ranges[sel.rangeCount - 1], false);\n            }\n        }\n    }\n\n    function addRangeToControlSelection(sel, range) {\n        var controlRange = sel.docSelection.createRange();\n        var rangeElement = getSingleElementFromRange(range);\n\n        // Create a new ControlRange containing all the elements in the selected ControlRange plus the element\n        // contained by the supplied range\n        var doc = dom.getDocument(controlRange.item(0));\n        var newControlRange = dom.getBody(doc).createControlRange();\n        for (var i = 0, len = controlRange.length; i < len; ++i) {\n            newControlRange.add(controlRange.item(i));\n        }\n        try {\n            newControlRange.add(rangeElement);\n        } catch (ex) {\n            throw new Error(\"addRange(): Element within the specified Range could not be added to control selection (does it have layout?)\");\n        }\n        newControlRange.select();\n\n        // Update the wrapped selection based on what's now in the native selection\n        updateControlSelection(sel);\n    }\n\n    var getSelectionRangeAt;\n\n    if (util.isHostMethod(testSelection,  \"getRangeAt\")) {\n        getSelectionRangeAt = function(sel, index) {\n            try {\n                return sel.getRangeAt(index);\n            } catch(ex) {\n                return null;\n            }\n        };\n    } else if (selectionHasAnchorAndFocus) {\n        getSelectionRangeAt = function(sel) {\n            var doc = dom.getDocument(sel.anchorNode);\n            var range = api.createRange(doc);\n            range.setStart(sel.anchorNode, sel.anchorOffset);\n            range.setEnd(sel.focusNode, sel.focusOffset);\n\n            // Handle the case when the selection was selected backwards (from the end to the start in the\n            // document)\n            if (range.collapsed !== this.isCollapsed) {\n                range.setStart(sel.focusNode, sel.focusOffset);\n                range.setEnd(sel.anchorNode, sel.anchorOffset);\n            }\n\n            return range;\n        };\n    }\n\n    /**\n     * @constructor\n     */\n    function WrappedSelection(selection, docSelection, win) {\n        this.nativeSelection = selection;\n        this.docSelection = docSelection;\n        this._ranges = [];\n        this.win = win;\n        this.refresh();\n    }\n\n    api.getSelection = function(win) {\n        win = win || window;\n        var sel = win[windowPropertyName];\n        var nativeSel = getSelection(win), docSel = implementsDocSelection ? getDocSelection(win) : null;\n        if (sel) {\n            sel.nativeSelection = nativeSel;\n            sel.docSelection = docSel;\n            sel.refresh(win);\n        } else {\n            sel = new WrappedSelection(nativeSel, docSel, win);\n            win[windowPropertyName] = sel;\n        }\n        return sel;\n    };\n\n    api.getIframeSelection = function(iframeEl) {\n        return api.getSelection(dom.getIframeWindow(iframeEl));\n    };\n\n    var selProto = WrappedSelection.prototype;\n\n    function createControlSelection(sel, ranges) {\n        // Ensure that the selection becomes of type \"Control\"\n        var doc = dom.getDocument(ranges[0].startContainer);\n        var controlRange = dom.getBody(doc).createControlRange();\n        for (var i = 0, el; i < rangeCount; ++i) {\n            el = getSingleElementFromRange(ranges[i]);\n            try {\n                controlRange.add(el);\n            } catch (ex) {\n                throw new Error(\"setRanges(): Element within the one of the specified Ranges could not be added to control selection (does it have layout?)\");\n            }\n        }\n        controlRange.select();\n\n        // Update the wrapped selection based on what's now in the native selection\n        updateControlSelection(sel);\n    }\n\n    // Selecting a range\n    if (!useDocumentSelection && selectionHasAnchorAndFocus && util.areHostMethods(testSelection, [\"removeAllRanges\", \"addRange\"])) {\n        selProto.removeAllRanges = function() {\n            this.nativeSelection.removeAllRanges();\n            updateEmptySelection(this);\n        };\n\n        var addRangeBackwards = function(sel, range) {\n            var doc = DomRange.getRangeDocument(range);\n            var endRange = api.createRange(doc);\n            endRange.collapseToPoint(range.endContainer, range.endOffset);\n            sel.nativeSelection.addRange(getNativeRange(endRange));\n            sel.nativeSelection.extend(range.startContainer, range.startOffset);\n            sel.refresh();\n        };\n\n        if (selectionHasRangeCount) {\n            selProto.addRange = function(range, backwards) {\n                if (implementsControlRange && implementsDocSelection && this.docSelection.type == CONTROL) {\n                    addRangeToControlSelection(this, range);\n                } else {\n                    if (backwards && selectionHasExtend) {\n                        addRangeBackwards(this, range);\n                    } else {\n                        var previousRangeCount;\n                        if (selectionSupportsMultipleRanges) {\n                            previousRangeCount = this.rangeCount;\n                        } else {\n                            this.removeAllRanges();\n                            previousRangeCount = 0;\n                        }\n                        this.nativeSelection.addRange(getNativeRange(range));\n\n                        // Check whether adding the range was successful\n                        this.rangeCount = this.nativeSelection.rangeCount;\n\n                        if (this.rangeCount == previousRangeCount + 1) {\n                            // The range was added successfully\n\n                            // Check whether the range that we added to the selection is reflected in the last range extracted from\n                            // the selection\n                            if (api.config.checkSelectionRanges) {\n                                var nativeRange = getSelectionRangeAt(this.nativeSelection, this.rangeCount - 1);\n                                if (nativeRange && !DomRange.rangesEqual(nativeRange, range)) {\n                                    // Happens in WebKit with, for example, a selection placed at the start of a text node\n                                    range = new WrappedRange(nativeRange);\n                                }\n                            }\n                            this._ranges[this.rangeCount - 1] = range;\n                            updateAnchorAndFocusFromRange(this, range, selectionIsBackwards(this.nativeSelection));\n                            this.isCollapsed = selectionIsCollapsed(this);\n                        } else {\n                            // The range was not added successfully. The simplest thing is to refresh\n                            this.refresh();\n                        }\n                    }\n                }\n            };\n        } else {\n            selProto.addRange = function(range, backwards) {\n                if (backwards && selectionHasExtend) {\n                    addRangeBackwards(this, range);\n                } else {\n                    this.nativeSelection.addRange(getNativeRange(range));\n                    this.refresh();\n                }\n            };\n        }\n\n        selProto.setRanges = function(ranges) {\n            if (implementsControlRange && ranges.length > 1) {\n                createControlSelection(this, ranges);\n            } else {\n                this.removeAllRanges();\n                for (var i = 0, len = ranges.length; i < len; ++i) {\n                    this.addRange(ranges[i]);\n                }\n            }\n        };\n    } else if (util.isHostMethod(testSelection, \"empty\") && util.isHostMethod(testRange, \"select\") &&\n               implementsControlRange && useDocumentSelection) {\n\n        selProto.removeAllRanges = function() {\n            // Added try/catch as fix for issue #21\n            try {\n                this.docSelection.empty();\n\n                // Check for empty() not working (issue #24)\n                if (this.docSelection.type != \"None\") {\n                    // Work around failure to empty a control selection by instead selecting a TextRange and then\n                    // calling empty()\n                    var doc;\n                    if (this.anchorNode) {\n                        doc = dom.getDocument(this.anchorNode);\n                    } else if (this.docSelection.type == CONTROL) {\n                        var controlRange = this.docSelection.createRange();\n                        if (controlRange.length) {\n                            doc = dom.getDocument(controlRange.item(0)).body.createTextRange();\n                        }\n                    }\n                    if (doc) {\n                        var textRange = doc.body.createTextRange();\n                        textRange.select();\n                        this.docSelection.empty();\n                    }\n                }\n            } catch(ex) {}\n            updateEmptySelection(this);\n        };\n\n        selProto.addRange = function(range) {\n            if (this.docSelection.type == CONTROL) {\n                addRangeToControlSelection(this, range);\n            } else {\n                WrappedRange.rangeToTextRange(range).select();\n                this._ranges[0] = range;\n                this.rangeCount = 1;\n                this.isCollapsed = this._ranges[0].collapsed;\n                updateAnchorAndFocusFromRange(this, range, false);\n            }\n        };\n\n        selProto.setRanges = function(ranges) {\n            this.removeAllRanges();\n            var rangeCount = ranges.length;\n            if (rangeCount > 1) {\n                createControlSelection(this, ranges);\n            } else if (rangeCount) {\n                this.addRange(ranges[0]);\n            }\n        };\n    } else {\n        module.fail(\"No means of selecting a Range or TextRange was found\");\n        return false;\n    }\n\n    selProto.getRangeAt = function(index) {\n        if (index < 0 || index >= this.rangeCount) {\n            throw new DOMException(\"INDEX_SIZE_ERR\");\n        } else {\n            return this._ranges[index];\n        }\n    };\n\n    var refreshSelection;\n\n    if (useDocumentSelection) {\n        refreshSelection = function(sel) {\n            var range;\n            if (api.isSelectionValid(sel.win)) {\n                range = sel.docSelection.createRange();\n            } else {\n                range = dom.getBody(sel.win.document).createTextRange();\n                range.collapse(true);\n            }\n\n\n            if (sel.docSelection.type == CONTROL) {\n                updateControlSelection(sel);\n            } else if (isTextRange(range)) {\n                updateFromTextRange(sel, range);\n            } else {\n                updateEmptySelection(sel);\n            }\n        };\n    } else if (util.isHostMethod(testSelection, \"getRangeAt\") && typeof testSelection.rangeCount == \"number\") {\n        refreshSelection = function(sel) {\n            if (implementsControlRange && implementsDocSelection && sel.docSelection.type == CONTROL) {\n                updateControlSelection(sel);\n            } else {\n                sel._ranges.length = sel.rangeCount = sel.nativeSelection.rangeCount;\n                if (sel.rangeCount) {\n                    for (var i = 0, len = sel.rangeCount; i < len; ++i) {\n                        sel._ranges[i] = new api.WrappedRange(sel.nativeSelection.getRangeAt(i));\n                    }\n                    updateAnchorAndFocusFromRange(sel, sel._ranges[sel.rangeCount - 1], selectionIsBackwards(sel.nativeSelection));\n                    sel.isCollapsed = selectionIsCollapsed(sel);\n                } else {\n                    updateEmptySelection(sel);\n                }\n            }\n        };\n    } else if (selectionHasAnchorAndFocus && typeof testSelection.isCollapsed == BOOLEAN && typeof testRange.collapsed == BOOLEAN && api.features.implementsDomRange) {\n        refreshSelection = function(sel) {\n            var range, nativeSel = sel.nativeSelection;\n            if (nativeSel.anchorNode) {\n                range = getSelectionRangeAt(nativeSel, 0);\n                sel._ranges = [range];\n                sel.rangeCount = 1;\n                updateAnchorAndFocusFromNativeSelection(sel);\n                sel.isCollapsed = selectionIsCollapsed(sel);\n            } else {\n                updateEmptySelection(sel);\n            }\n        };\n    } else {\n        module.fail(\"No means of obtaining a Range or TextRange from the user's selection was found\");\n        return false;\n    }\n\n    selProto.refresh = function(checkForChanges) {\n        var oldRanges = checkForChanges ? this._ranges.slice(0) : null;\n        refreshSelection(this);\n        if (checkForChanges) {\n            var i = oldRanges.length;\n            if (i != this._ranges.length) {\n                return false;\n            }\n            while (i--) {\n                if (!DomRange.rangesEqual(oldRanges[i], this._ranges[i])) {\n                    return false;\n                }\n            }\n            return true;\n        }\n    };\n\n    // Removal of a single range\n    var removeRangeManually = function(sel, range) {\n        var ranges = sel.getAllRanges(), removed = false;\n        sel.removeAllRanges();\n        for (var i = 0, len = ranges.length; i < len; ++i) {\n            if (removed || range !== ranges[i]) {\n                sel.addRange(ranges[i]);\n            } else {\n                // According to the draft WHATWG Range spec, the same range may be added to the selection multiple\n                // times. removeRange should only remove the first instance, so the following ensures only the first\n                // instance is removed\n                removed = true;\n            }\n        }\n        if (!sel.rangeCount) {\n            updateEmptySelection(sel);\n        }\n    };\n\n    if (implementsControlRange) {\n        selProto.removeRange = function(range) {\n            if (this.docSelection.type == CONTROL) {\n                var controlRange = this.docSelection.createRange();\n                var rangeElement = getSingleElementFromRange(range);\n\n                // Create a new ControlRange containing all the elements in the selected ControlRange minus the\n                // element contained by the supplied range\n                var doc = dom.getDocument(controlRange.item(0));\n                var newControlRange = dom.getBody(doc).createControlRange();\n                var el, removed = false;\n                for (var i = 0, len = controlRange.length; i < len; ++i) {\n                    el = controlRange.item(i);\n                    if (el !== rangeElement || removed) {\n                        newControlRange.add(controlRange.item(i));\n                    } else {\n                        removed = true;\n                    }\n                }\n                newControlRange.select();\n\n                // Update the wrapped selection based on what's now in the native selection\n                updateControlSelection(this);\n            } else {\n                removeRangeManually(this, range);\n            }\n        };\n    } else {\n        selProto.removeRange = function(range) {\n            removeRangeManually(this, range);\n        };\n    }\n\n    // Detecting if a selection is backwards\n    var selectionIsBackwards;\n    if (!useDocumentSelection && selectionHasAnchorAndFocus && api.features.implementsDomRange) {\n        selectionIsBackwards = function(sel) {\n            var backwards = false;\n            if (sel.anchorNode) {\n                backwards = (dom.comparePoints(sel.anchorNode, sel.anchorOffset, sel.focusNode, sel.focusOffset) == 1);\n            }\n            return backwards;\n        };\n\n        selProto.isBackwards = function() {\n            return selectionIsBackwards(this);\n        };\n    } else {\n        selectionIsBackwards = selProto.isBackwards = function() {\n            return false;\n        };\n    }\n\n    // Selection text\n    // This is conformant to the new WHATWG DOM Range draft spec but differs from WebKit and Mozilla's implementation\n    selProto.toString = function() {\n\n        var rangeTexts = [];\n        for (var i = 0, len = this.rangeCount; i < len; ++i) {\n            rangeTexts[i] = \"\" + this._ranges[i];\n        }\n        return rangeTexts.join(\"\");\n    };\n\n    function assertNodeInSameDocument(sel, node) {\n        if (sel.anchorNode && (dom.getDocument(sel.anchorNode) !== dom.getDocument(node))) {\n            throw new DOMException(\"WRONG_DOCUMENT_ERR\");\n        }\n    }\n\n    // No current browsers conform fully to the HTML 5 draft spec for this method, so Rangy's own method is always used\n    selProto.collapse = function(node, offset) {\n        assertNodeInSameDocument(this, node);\n        var range = api.createRange(dom.getDocument(node));\n        range.collapseToPoint(node, offset);\n        this.removeAllRanges();\n        this.addRange(range);\n        this.isCollapsed = true;\n    };\n\n    selProto.collapseToStart = function() {\n        if (this.rangeCount) {\n            var range = this._ranges[0];\n            this.collapse(range.startContainer, range.startOffset);\n        } else {\n            throw new DOMException(\"INVALID_STATE_ERR\");\n        }\n    };\n\n    selProto.collapseToEnd = function() {\n        if (this.rangeCount) {\n            var range = this._ranges[this.rangeCount - 1];\n            this.collapse(range.endContainer, range.endOffset);\n        } else {\n            throw new DOMException(\"INVALID_STATE_ERR\");\n        }\n    };\n\n    // The HTML 5 spec is very specific on how selectAllChildren should be implemented so the native implementation is\n    // never used by Rangy.\n    selProto.selectAllChildren = function(node) {\n        assertNodeInSameDocument(this, node);\n        var range = api.createRange(dom.getDocument(node));\n        range.selectNodeContents(node);\n        this.removeAllRanges();\n        this.addRange(range);\n    };\n\n    selProto.deleteFromDocument = function() {\n        // Sepcial behaviour required for Control selections\n        if (implementsControlRange && implementsDocSelection && this.docSelection.type == CONTROL) {\n            var controlRange = this.docSelection.createRange();\n            var element;\n            while (controlRange.length) {\n                element = controlRange.item(0);\n                controlRange.remove(element);\n                element.parentNode.removeChild(element);\n            }\n            this.refresh();\n        } else if (this.rangeCount) {\n            var ranges = this.getAllRanges();\n            this.removeAllRanges();\n            for (var i = 0, len = ranges.length; i < len; ++i) {\n                ranges[i].deleteContents();\n            }\n            // The HTML5 spec says nothing about what the selection should contain after calling deleteContents on each\n            // range. Firefox moves the selection to where the final selected range was, so we emulate that\n            this.addRange(ranges[len - 1]);\n        }\n    };\n\n    // The following are non-standard extensions\n    selProto.getAllRanges = function() {\n        return this._ranges.slice(0);\n    };\n\n    selProto.setSingleRange = function(range) {\n        this.setRanges( [range] );\n    };\n\n    selProto.containsNode = function(node, allowPartial) {\n        for (var i = 0, len = this._ranges.length; i < len; ++i) {\n            if (this._ranges[i].containsNode(node, allowPartial)) {\n                return true;\n            }\n        }\n        return false;\n    };\n\n    selProto.toHtml = function() {\n        var html = \"\";\n        if (this.rangeCount) {\n            var container = DomRange.getRangeDocument(this._ranges[0]).createElement(\"div\");\n            for (var i = 0, len = this._ranges.length; i < len; ++i) {\n                container.appendChild(this._ranges[i].cloneContents());\n            }\n            html = container.innerHTML;\n        }\n        return html;\n    };\n\n    function inspect(sel) {\n        var rangeInspects = [];\n        var anchor = new DomPosition(sel.anchorNode, sel.anchorOffset);\n        var focus = new DomPosition(sel.focusNode, sel.focusOffset);\n        var name = (typeof sel.getName == \"function\") ? sel.getName() : \"Selection\";\n\n        if (typeof sel.rangeCount != \"undefined\") {\n            for (var i = 0, len = sel.rangeCount; i < len; ++i) {\n                rangeInspects[i] = DomRange.inspect(sel.getRangeAt(i));\n            }\n        }\n        return \"[\" + name + \"(Ranges: \" + rangeInspects.join(\", \") +\n                \")(anchor: \" + anchor.inspect() + \", focus: \" + focus.inspect() + \"]\";\n\n    }\n\n    selProto.getName = function() {\n        return \"WrappedSelection\";\n    };\n\n    selProto.inspect = function() {\n        return inspect(this);\n    };\n\n    selProto.detach = function() {\n        this.win[windowPropertyName] = null;\n        this.win = this.anchorNode = this.focusNode = null;\n    };\n\n    WrappedSelection.inspect = inspect;\n\n    api.Selection = WrappedSelection;\n\n    api.selectionPrototype = selProto;\n\n    api.addCreateMissingNativeApiListener(function(win) {\n        if (typeof win.getSelection == \"undefined\") {\n            win.getSelection = function() {\n                return api.getSelection(this);\n            };\n        }\n        win = null;\n    });\n});\n/*\n\tBase.js, version 1.1a\n\tCopyright 2006-2010, Dean Edwards\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n\nvar Base = function() {\n\t// dummy\n};\n\nBase.extend = function(_instance, _static) { // subclass\n\tvar extend = Base.prototype.extend;\n\t\n\t// build the prototype\n\tBase._prototyping = true;\n\tvar proto = new this;\n\textend.call(proto, _instance);\n  proto.base = function() {\n    // call this method from any other method to invoke that method's ancestor\n  };\n\tdelete Base._prototyping;\n\t\n\t// create the wrapper for the constructor function\n\t//var constructor = proto.constructor.valueOf(); //-dean\n\tvar constructor = proto.constructor;\n\tvar klass = proto.constructor = function() {\n\t\tif (!Base._prototyping) {\n\t\t\tif (this._constructing || this.constructor == klass) { // instantiation\n\t\t\t\tthis._constructing = true;\n\t\t\t\tconstructor.apply(this, arguments);\n\t\t\t\tdelete this._constructing;\n\t\t\t} else if (arguments[0] != null) { // casting\n\t\t\t\treturn (arguments[0].extend || extend).call(arguments[0], proto);\n\t\t\t}\n\t\t}\n\t};\n\t\n\t// build the class interface\n\tklass.ancestor = this;\n\tklass.extend = this.extend;\n\tklass.forEach = this.forEach;\n\tklass.implement = this.implement;\n\tklass.prototype = proto;\n\tklass.toString = this.toString;\n\tklass.valueOf = function(type) {\n\t\t//return (type == \"object\") ? klass : constructor; //-dean\n\t\treturn (type == \"object\") ? klass : constructor.valueOf();\n\t};\n\textend.call(klass, _static);\n\t// class initialisation\n\tif (typeof klass.init == \"function\") klass.init();\n\treturn klass;\n};\n\nBase.prototype = {\t\n\textend: function(source, value) {\n\t\tif (arguments.length > 1) { // extending with a name/value pair\n\t\t\tvar ancestor = this[source];\n\t\t\tif (ancestor && (typeof value == \"function\") && // overriding a method?\n\t\t\t\t// the valueOf() comparison is to avoid circular references\n\t\t\t\t(!ancestor.valueOf || ancestor.valueOf() != value.valueOf()) &&\n\t\t\t\t/\\bbase\\b/.test(value)) {\n\t\t\t\t// get the underlying method\n\t\t\t\tvar method = value.valueOf();\n\t\t\t\t// override\n\t\t\t\tvalue = function() {\n\t\t\t\t\tvar previous = this.base || Base.prototype.base;\n\t\t\t\t\tthis.base = ancestor;\n\t\t\t\t\tvar returnValue = method.apply(this, arguments);\n\t\t\t\t\tthis.base = previous;\n\t\t\t\t\treturn returnValue;\n\t\t\t\t};\n\t\t\t\t// point to the underlying method\n\t\t\t\tvalue.valueOf = function(type) {\n\t\t\t\t\treturn (type == \"object\") ? value : method;\n\t\t\t\t};\n\t\t\t\tvalue.toString = Base.toString;\n\t\t\t}\n\t\t\tthis[source] = value;\n\t\t} else if (source) { // extending with an object literal\n\t\t\tvar extend = Base.prototype.extend;\n\t\t\t// if this object has a customised extend method then use it\n\t\t\tif (!Base._prototyping && typeof this != \"function\") {\n\t\t\t\textend = this.extend || extend;\n\t\t\t}\n\t\t\tvar proto = {toSource: null};\n\t\t\t// do the \"toString\" and other methods manually\n\t\t\tvar hidden = [\"constructor\", \"toString\", \"valueOf\"];\n\t\t\t// if we are prototyping then include the constructor\n\t\t\tvar i = Base._prototyping ? 0 : 1;\n\t\t\twhile (key = hidden[i++]) {\n\t\t\t\tif (source[key] != proto[key]) {\n\t\t\t\t\textend.call(this, key, source[key]);\n\n\t\t\t\t}\n\t\t\t}\n\t\t\t// copy each of the source object's properties to this object\n\t\t\tfor (var key in source) {\n\t\t\t\tif (!proto[key]) extend.call(this, key, source[key]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n};\n\n// initialise\nBase = Base.extend({\n\tconstructor: function() {\n\t\tthis.extend(arguments[0]);\n\t}\n}, {\n\tancestor: Object,\n\tversion: \"1.1\",\n\t\n\tforEach: function(object, block, context) {\n\t\tfor (var key in object) {\n\t\t\tif (this.prototype[key] === undefined) {\n\t\t\t\tblock.call(context, object[key], key, object);\n\t\t\t}\n\t\t}\n\t},\n\t\t\n\timplement: function() {\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tif (typeof arguments[i] == \"function\") {\n\t\t\t\t// if it's a function, call it\n\t\t\t\targuments[i](this.prototype);\n\t\t\t} else {\n\t\t\t\t// add the interface using the extend method\n\t\t\t\tthis.prototype.extend(arguments[i]);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t},\n\t\n\ttoString: function() {\n\t\treturn String(this.valueOf());\n\t}\n});/**\n * Detect browser support for specific features\n */\nwysihtml5.browser = (function() {\n  var userAgent   = navigator.userAgent,\n      testElement = document.createElement(\"div\"),\n      // Browser sniffing is unfortunately needed since some behaviors are impossible to feature detect\n      isIE        = userAgent.indexOf(\"MSIE\")         !== -1 && userAgent.indexOf(\"Opera\") === -1,\n      isGecko     = userAgent.indexOf(\"Gecko\")        !== -1 && userAgent.indexOf(\"KHTML\") === -1,\n      isWebKit    = userAgent.indexOf(\"AppleWebKit/\") !== -1,\n      isChrome    = userAgent.indexOf(\"Chrome/\")      !== -1,\n      isOpera     = userAgent.indexOf(\"Opera/\")       !== -1;\n  \n  function iosVersion(userAgent) {\n    return ((/ipad|iphone|ipod/.test(userAgent) && userAgent.match(/ os (\\d+).+? like mac os x/)) || [, 0])[1];\n  }\n  \n  return {\n    // Static variable needed, publicly accessible, to be able override it in unit tests\n    USER_AGENT: userAgent,\n    \n    /**\n     * Exclude browsers that are not capable of displaying and handling\n     * contentEditable as desired:\n     *    - iPhone, iPad (tested iOS 4.2.2) and Android (tested 2.2) refuse to make contentEditables focusable\n     *    - IE < 8 create invalid markup and crash randomly from time to time\n     *\n     * @return {Boolean}\n     */\n    supported: function() {\n      var userAgent                   = this.USER_AGENT.toLowerCase(),\n          // Essential for making html elements editable\n          hasContentEditableSupport   = \"contentEditable\" in testElement,\n          // Following methods are needed in order to interact with the contentEditable area\n          hasEditingApiSupport        = document.execCommand && document.queryCommandSupported && document.queryCommandState,\n          // document selector apis are only supported by IE 8+, Safari 4+, Chrome and Firefox 3.5+\n          hasQuerySelectorSupport     = document.querySelector && document.querySelectorAll,\n          // contentEditable is unusable in mobile browsers (tested iOS 4.2.2, Android 2.2, Opera Mobile, WebOS 3.05)\n          isIncompatibleMobileBrowser = (this.isIos() && iosVersion(userAgent) < 5) || userAgent.indexOf(\"opera mobi\") !== -1 || userAgent.indexOf(\"hpwos/\") !== -1;\n      \n      return hasContentEditableSupport\n        && hasEditingApiSupport\n        && hasQuerySelectorSupport\n        && !isIncompatibleMobileBrowser;\n    },\n    \n    isTouchDevice: function() {\n      return this.supportsEvent(\"touchmove\");\n    },\n    \n    isIos: function() {\n      var userAgent = this.USER_AGENT.toLowerCase();\n      return userAgent.indexOf(\"webkit\") !== -1 && userAgent.indexOf(\"mobile\") !== -1;\n    },\n    \n    /**\n     * Whether the browser supports sandboxed iframes\n     * Currently only IE 6+ offers such feature <iframe security=\"restricted\">\n     *\n     * http://msdn.microsoft.com/en-us/library/ms534622(v=vs.85).aspx\n     * http://blogs.msdn.com/b/ie/archive/2008/01/18/using-frames-more-securely.aspx\n     *\n     * HTML5 sandboxed iframes are still buggy and their DOM is not reachable from the outside (except when using postMessage)\n     */\n    supportsSandboxedIframes: function() {\n      return isIE;\n    },\n\n    /**\n     * IE6+7 throw a mixed content warning when the src of an iframe\n     * is empty/unset or about:blank\n     * window.querySelector is implemented as of IE8\n     */\n    throwsMixedContentWarningWhenIframeSrcIsEmpty: function() {\n      return !(\"querySelector\" in document);\n    },\n\n    /**\n     * Whether the caret is correctly displayed in contentEditable elements\n     * Firefox sometimes shows a huge caret in the beginning after focusing\n     */\n    displaysCaretInEmptyContentEditableCorrectly: function() {\n      return !isGecko;\n    },\n\n    /**\n     * Opera and IE are the only browsers who offer the css value\n     * in the original unit, thx to the currentStyle object\n     * All other browsers provide the computed style in px via window.getComputedStyle\n     */\n    hasCurrentStyleProperty: function() {\n      return \"currentStyle\" in testElement;\n    },\n\n    /**\n     * Whether the browser inserts a <br> when pressing enter in a contentEditable element\n     */\n    insertsLineBreaksOnReturn: function() {\n      return isGecko;\n    },\n\n    supportsPlaceholderAttributeOn: function(element) {\n      return \"placeholder\" in element;\n    },\n\n    supportsEvent: function(eventName) {\n      return \"on\" + eventName in testElement || (function() {\n        testElement.setAttribute(\"on\" + eventName, \"return;\");\n        return typeof(testElement[\"on\" + eventName]) === \"function\";\n      })();\n    },\n\n    /**\n     * Opera doesn't correctly fire focus/blur events when clicking in- and outside of iframe\n     */\n    supportsEventsInIframeCorrectly: function() {\n      return !isOpera;\n    },\n\n    /**\n     * Chrome & Safari only fire the ondrop/ondragend/... events when the ondragover event is cancelled\n     * with event.preventDefault\n     * Firefox 3.6 fires those events anyway, but the mozilla doc says that the dragover/dragenter event needs\n     * to be cancelled\n     */\n    firesOnDropOnlyWhenOnDragOverIsCancelled: function() {\n      return isWebKit || isGecko;\n    },\n    \n    /**\n     * Whether the browser supports the event.dataTransfer property in a proper way\n     */\n    supportsDataTransfer: function() {\n      try {\n        // Firefox doesn't support dataTransfer in a safe way, it doesn't strip script code in the html payload (like Chrome does)\n        return isWebKit && (window.Clipboard || window.DataTransfer).prototype.getData;\n      } catch(e) {\n        return false;\n      }\n    },\n\n    /**\n     * Everything below IE9 doesn't know how to treat HTML5 tags\n     *\n     * @param {Object} context The document object on which to check HTML5 support\n     *\n     * @example\n     *    wysihtml5.browser.supportsHTML5Tags(document);\n     */\n    supportsHTML5Tags: function(context) {\n      var element = context.createElement(\"div\"),\n          html5   = \"<article>foo</article>\";\n      element.innerHTML = html5;\n      return element.innerHTML.toLowerCase() === html5;\n    },\n\n    /**\n     * Checks whether a document supports a certain queryCommand\n     * In particular, Opera needs a reference to a document that has a contentEditable in it's dom tree\n     * in oder to report correct results\n     *\n     * @param {Object} doc Document object on which to check for a query command\n     * @param {String} command The query command to check for\n     * @return {Boolean}\n     *\n     * @example\n     *    wysihtml5.browser.supportsCommand(document, \"bold\");\n     */\n    supportsCommand: (function() {\n      // Following commands are supported but contain bugs in some browsers\n      var buggyCommands = {\n        // formatBlock fails with some tags (eg. <blockquote>)\n        \"formatBlock\":          isIE,\n         // When inserting unordered or ordered lists in Firefox, Chrome or Safari, the current selection or line gets\n         // converted into a list (<ul><li>...</li></ul>, <ol><li>...</li></ol>)\n         // IE and Opera act a bit different here as they convert the entire content of the current block element into a list\n        \"insertUnorderedList\":  isIE || isOpera || isWebKit,\n        \"insertOrderedList\":    isIE || isOpera || isWebKit\n      };\n      \n      // Firefox throws errors for queryCommandSupported, so we have to build up our own object of supported commands\n      var supported = {\n        \"insertHTML\": isGecko\n      };\n\n      return function(doc, command) {\n        var isBuggy = buggyCommands[command];\n        if (!isBuggy) {\n          // Firefox throws errors when invoking queryCommandSupported or queryCommandEnabled\n          try {\n            return doc.queryCommandSupported(command);\n          } catch(e1) {}\n\n          try {\n            return doc.queryCommandEnabled(command);\n          } catch(e2) {\n            return !!supported[command];\n          }\n        }\n        return false;\n      };\n    })(),\n\n    /**\n     * IE: URLs starting with:\n     *    www., http://, https://, ftp://, gopher://, mailto:, new:, snews:, telnet:, wasis:, file://,\n     *    nntp://, newsrc:, ldap://, ldaps://, outlook:, mic:// and url:\n     * will automatically be auto-linked when either the user inserts them via copy&paste or presses the\n     * space bar when the caret is directly after such an url.\n     * This behavior cannot easily be avoided in IE < 9 since the logic is hardcoded in the mshtml.dll\n     * (related blog post on msdn\n     * http://blogs.msdn.com/b/ieinternals/archive/2009/09/17/prevent-automatic-hyperlinking-in-contenteditable-html.aspx).\n     */\n    doesAutoLinkingInContentEditable: function() {\n      return isIE;\n    },\n\n    /**\n     * As stated above, IE auto links urls typed into contentEditable elements\n     * Since IE9 it's possible to prevent this behavior\n     */\n    canDisableAutoLinking: function() {\n      return this.supportsCommand(document, \"AutoUrlDetect\");\n    },\n\n    /**\n     * IE leaves an empty paragraph in the contentEditable element after clearing it\n     * Chrome/Safari sometimes an empty <div>\n     */\n    clearsContentEditableCorrectly: function() {\n      return isGecko || isOpera || isWebKit;\n    },\n\n    /**\n     * IE gives wrong results for getAttribute\n     */\n    supportsGetAttributeCorrectly: function() {\n      var td = document.createElement(\"td\");\n      return td.getAttribute(\"rowspan\") != \"1\";\n    },\n\n    /**\n     * When clicking on images in IE, Opera and Firefox, they are selected, which makes it easy to interact with them.\n     * Chrome and Safari both don't support this\n     */\n    canSelectImagesInContentEditable: function() {\n      return isGecko || isIE || isOpera;\n    },\n\n    /**\n     * When the caret is in an empty list (<ul><li>|</li></ul>) which is the first child in an contentEditable container\n     * pressing backspace doesn't remove the entire list as done in other browsers\n     */\n    clearsListsInContentEditableCorrectly: function() {\n      return isGecko || isIE || isWebKit;\n    },\n\n    /**\n     * All browsers except Safari and Chrome automatically scroll the range/caret position into view\n     */\n    autoScrollsToCaret: function() {\n      return !isWebKit;\n    },\n\n    /**\n     * Check whether the browser automatically closes tags that don't need to be opened\n     */\n    autoClosesUnclosedTags: function() {\n      var clonedTestElement = testElement.cloneNode(false),\n          returnValue,\n          innerHTML;\n\n      clonedTestElement.innerHTML = \"<p><div></div>\";\n      innerHTML                   = clonedTestElement.innerHTML.toLowerCase();\n      returnValue                 = innerHTML === \"<p></p><div></div>\" || innerHTML === \"<p><div></div></p>\";\n\n      // Cache result by overwriting current function\n      this.autoClosesUnclosedTags = function() { return returnValue; };\n\n      return returnValue;\n    },\n\n    /**\n     * Whether the browser supports the native document.getElementsByClassName which returns live NodeLists\n     */\n    supportsNativeGetElementsByClassName: function() {\n      return String(document.getElementsByClassName).indexOf(\"[native code]\") !== -1;\n    },\n\n    /**\n     * As of now (19.04.2011) only supported by Firefox 4 and Chrome\n     * See https://developer.mozilla.org/en/DOM/Selection/modify\n     */\n    supportsSelectionModify: function() {\n      return \"getSelection\" in window && \"modify\" in window.getSelection();\n    },\n    \n    /**\n     * Whether the browser supports the classList object for fast className manipulation\n     * See https://developer.mozilla.org/en/DOM/element.classList\n     */\n    supportsClassList: function() {\n      return \"classList\" in testElement;\n    },\n    \n    /**\n     * Opera needs a white space after a <br> in order to position the caret correctly\n     */\n    needsSpaceAfterLineBreak: function() {\n      return isOpera;\n    },\n    \n    /**\n     * Whether the browser supports the speech api on the given element\n     * See http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/\n     *\n     * @example\n     *    var input = document.createElement(\"input\");\n     *    if (wysihtml5.browser.supportsSpeechApiOn(input)) {\n     *      // ...\n     *    }\n     */\n    supportsSpeechApiOn: function(input) {\n      var chromeVersion = userAgent.match(/Chrome\\/(\\d+)/) || [, 0];\n      return chromeVersion[1] >= 11 && (\"onwebkitspeechchange\" in input || \"speech\" in input);\n    },\n    \n    /**\n     * IE9 crashes when setting a getter via Object.defineProperty on XMLHttpRequest or XDomainRequest\n     * See https://connect.microsoft.com/ie/feedback/details/650112\n     * or try the POC http://tifftiff.de/ie9_crash/\n     */\n    crashesWhenDefineProperty: function(property) {\n      return isIE && (property === \"XMLHttpRequest\" || property === \"XDomainRequest\");\n    },\n    \n    /**\n     * IE is the only browser who fires the \"focus\" event not immediately when .focus() is called on an element\n     */\n    doesAsyncFocus: function() {\n      return isIE;\n    },\n    \n    /**\n     * In IE it's impssible for the user and for the selection library to set the caret after an <img> when it's the lastChild in the document\n     */\n    hasProblemsSettingCaretAfterImg: function() {\n      return isIE;\n    },\n    \n    hasUndoInContextMenu: function() {\n      return isGecko || isChrome || isOpera;\n    }\n  };\n})();wysihtml5.lang.array = function(arr) {\n  return {\n    /**\n     * Check whether a given object exists in an array\n     *\n     * @example\n     *    wysihtml5.lang.array([1, 2]).contains(1);\n     *    // => true\n     */\n    contains: function(needle) {\n      if (arr.indexOf) {\n        return arr.indexOf(needle) !== -1;\n      } else {\n        for (var i=0, length=arr.length; i<length; i++) {\n          if (arr[i] === needle) { return true; }\n        }\n        return false;\n      }\n    },\n    \n    /**\n     * Substract one array from another\n     *\n     * @example\n     *    wysihtml5.lang.array([1, 2, 3, 4]).without([3, 4]);\n     *    // => [1, 2]\n     */\n    without: function(arrayToSubstract) {\n      arrayToSubstract = wysihtml5.lang.array(arrayToSubstract);\n      var newArr  = [],\n          i       = 0,\n          length  = arr.length;\n      for (; i<length; i++) {\n        if (!arrayToSubstract.contains(arr[i])) {\n          newArr.push(arr[i]);\n        }\n      }\n      return newArr;\n    },\n    \n    /**\n     * Return a clean native array\n     * \n     * Following will convert a Live NodeList to a proper Array\n     * @example\n     *    var childNodes = wysihtml5.lang.array(document.body.childNodes).get();\n     */\n    get: function() {\n      var i        = 0,\n          length   = arr.length,\n          newArray = [];\n      for (; i<length; i++) {\n        newArray.push(arr[i]);\n      }\n      return newArray;\n    }\n  };\n};wysihtml5.lang.Dispatcher = Base.extend(\n  /** @scope wysihtml5.lang.Dialog.prototype */ {\n  observe: function(eventName, handler) {\n    this.events = this.events || {};\n    this.events[eventName] = this.events[eventName] || [];\n    this.events[eventName].push(handler);\n    return this;\n  },\n\n  on: function() {\n    return this.observe.apply(this, wysihtml5.lang.array(arguments).get());\n  },\n\n  fire: function(eventName, payload) {\n    this.events = this.events || {};\n    var handlers = this.events[eventName] || [],\n        i        = 0;\n    for (; i<handlers.length; i++) {\n      handlers[i].call(this, payload);\n    }\n    return this;\n  },\n\n  stopObserving: function(eventName, handler) {\n    this.events = this.events || {};\n    var i = 0,\n        handlers,\n        newHandlers;\n    if (eventName) {\n      handlers    = this.events[eventName] || [],\n      newHandlers = [];\n      for (; i<handlers.length; i++) {\n        if (handlers[i] !== handler && handler) {\n          newHandlers.push(handlers[i]);\n        }\n      }\n      this.events[eventName] = newHandlers;\n    } else {\n      // Clean up all events\n      this.events = {};\n    }\n    return this;\n  }\n});wysihtml5.lang.object = function(obj) {\n  return {\n    /**\n     * @example\n     *    wysihtml5.lang.object({ foo: 1, bar: 1 }).merge({ bar: 2, baz: 3 }).get();\n     *    // => { foo: 1, bar: 2, baz: 3 }\n     */\n    merge: function(otherObj) {\n      for (var i in otherObj) {\n        obj[i] = otherObj[i];\n      }\n      return this;\n    },\n    \n    get: function() {\n      return obj;\n    },\n    \n    /**\n     * @example\n     *    wysihtml5.lang.object({ foo: 1 }).clone();\n     *    // => { foo: 1 }\n     */\n    clone: function() {\n      var newObj = {},\n          i;\n      for (i in obj) {\n        newObj[i] = obj[i];\n      }\n      return newObj;\n    },\n    \n    /**\n     * @example\n     *    wysihtml5.lang.object([]).isArray();\n     *    // => true\n     */\n    isArray: function() {\n      return Object.prototype.toString.call(obj) === \"[object Array]\";\n    }\n  };\n};(function() {\n  var WHITE_SPACE_START = /^\\s+/,\n      WHITE_SPACE_END   = /\\s+$/;\n  wysihtml5.lang.string = function(str) {\n    str = String(str);\n    return {\n      /**\n       * @example\n       *    wysihtml5.lang.string(\"   foo   \").trim();\n       *    // => \"foo\"\n       */\n      trim: function() {\n        return str.replace(WHITE_SPACE_START, \"\").replace(WHITE_SPACE_END, \"\");\n      },\n      \n      /**\n       * @example\n       *    wysihtml5.lang.string(\"Hello #{name}\").interpolate({ name: \"Christopher\" });\n       *    // => \"Hello Christopher\"\n       */\n      interpolate: function(vars) {\n        for (var i in vars) {\n          str = this.replace(\"#{\" + i + \"}\").by(vars[i]);\n        }\n        return str;\n      },\n      \n      /**\n       * @example\n       *    wysihtml5.lang.string(\"Hello Tom\").replace(\"Tom\").with(\"Hans\");\n       *    // => \"Hello Hans\"\n       */\n      replace: function(search) {\n        return {\n          by: function(replace) {\n            return str.split(search).join(replace);\n          }\n        }\n      }\n    };\n  };\n})();/**\n * Find urls in descendant text nodes of an element and auto-links them\n * Inspired by http://james.padolsey.com/javascript/find-and-replace-text-with-javascript/\n *\n * @param {Element} element Container element in which to search for urls\n *\n * @example\n *    <div id=\"text-container\">Please click here: www.google.com</div>\n *    <script>wysihtml5.dom.autoLink(document.getElementById(\"text-container\"));</script>\n */\n(function(wysihtml5) {\n  var /**\n       * Don't auto-link urls that are contained in the following elements:\n       */\n      IGNORE_URLS_IN        = wysihtml5.lang.array([\"CODE\", \"PRE\", \"A\", \"SCRIPT\", \"HEAD\", \"TITLE\", \"STYLE\"]),\n      /**\n       * revision 1:\n       *    /(\\S+\\.{1}[^\\s\\,\\.\\!]+)/g\n       *\n       * revision 2:\n       *    /(\\b(((https?|ftp):\\/\\/)|(www\\.))[-A-Z0-9+&@#\\/%?=~_|!:,.;\\[\\]]*[-A-Z0-9+&@#\\/%=~_|])/gim\n       *\n       * put this in the beginning if you don't wan't to match within a word\n       *    (^|[\\>\\(\\{\\[\\s\\>])\n       */\n      URL_REG_EXP           = /((https?:\\/\\/|www\\.)[^\\s<]{3,})/gi,\n      TRAILING_CHAR_REG_EXP = /([^\\w\\/\\-](,?))$/i,\n      MAX_DISPLAY_LENGTH    = 100,\n      BRACKETS              = { \")\": \"(\", \"]\": \"[\", \"}\": \"{\" };\n  \n  function autoLink(element) {\n    if (_hasParentThatShouldBeIgnored(element)) {\n      return element;\n    }\n\n    if (element === element.ownerDocument.documentElement) {\n      element = element.ownerDocument.body;\n    }\n\n    return _parseNode(element);\n  }\n  \n  /**\n   * This is basically a rebuild of\n   * the rails auto_link_urls text helper\n   */\n  function _convertUrlsToLinks(str) {\n    return str.replace(URL_REG_EXP, function(match, url) {\n      var punctuation = (url.match(TRAILING_CHAR_REG_EXP) || [])[1] || \"\",\n          opening     = BRACKETS[punctuation];\n      url = url.replace(TRAILING_CHAR_REG_EXP, \"\");\n\n      if (url.split(opening).length > url.split(punctuation).length) {\n        url = url + punctuation;\n        punctuation = \"\";\n      }\n      var realUrl    = url,\n          displayUrl = url;\n      if (url.length > MAX_DISPLAY_LENGTH) {\n        displayUrl = displayUrl.substr(0, MAX_DISPLAY_LENGTH) + \"...\";\n      }\n      // Add http prefix if necessary\n      if (realUrl.substr(0, 4) === \"www.\") {\n        realUrl = \"http://\" + realUrl;\n      }\n      \n      return '<a href=\"' + realUrl + '\">' + displayUrl + '</a>' + punctuation;\n    });\n  }\n  \n  /**\n   * Creates or (if already cached) returns a temp element\n   * for the given document object\n   */\n  function _getTempElement(context) {\n    var tempElement = context._wysihtml5_tempElement;\n    if (!tempElement) {\n      tempElement = context._wysihtml5_tempElement = context.createElement(\"div\");\n    }\n    return tempElement;\n  }\n  \n  /**\n   * Replaces the original text nodes with the newly auto-linked dom tree\n   */\n  function _wrapMatchesInNode(textNode) {\n    var parentNode  = textNode.parentNode,\n        tempElement = _getTempElement(parentNode.ownerDocument);\n    \n    // We need to insert an empty/temporary <span /> to fix IE quirks\n    // Elsewise IE would strip white space in the beginning\n    tempElement.innerHTML = \"<span></span>\" + _convertUrlsToLinks(textNode.data);\n    tempElement.removeChild(tempElement.firstChild);\n    \n    while (tempElement.firstChild) {\n      // inserts tempElement.firstChild before textNode\n      parentNode.insertBefore(tempElement.firstChild, textNode);\n    }\n    parentNode.removeChild(textNode);\n  }\n  \n  function _hasParentThatShouldBeIgnored(node) {\n    var nodeName;\n    while (node.parentNode) {\n      node = node.parentNode;\n      nodeName = node.nodeName;\n      if (IGNORE_URLS_IN.contains(nodeName)) {\n        return true;\n      } else if (nodeName === \"body\") {\n        return false;\n      }\n    }\n    return false;\n  }\n  \n  function _parseNode(element) {\n    if (IGNORE_URLS_IN.contains(element.nodeName)) {\n      return;\n    }\n    \n    if (element.nodeType === wysihtml5.TEXT_NODE && element.data.match(URL_REG_EXP)) {\n      _wrapMatchesInNode(element);\n      return;\n    }\n    \n    var childNodes        = wysihtml5.lang.array(element.childNodes).get(),\n        childNodesLength  = childNodes.length,\n        i                 = 0;\n    \n    for (; i<childNodesLength; i++) {\n      _parseNode(childNodes[i]);\n    }\n    \n    return element;\n  }\n  \n  wysihtml5.dom.autoLink = autoLink;\n  \n  // Reveal url reg exp to the outside\n  wysihtml5.dom.autoLink.URL_REG_EXP = URL_REG_EXP;\n})(wysihtml5);(function(wysihtml5) {\n  var supportsClassList = wysihtml5.browser.supportsClassList(),\n      api               = wysihtml5.dom;\n  \n  api.addClass = function(element, className) {\n    if (supportsClassList) {\n      return element.classList.add(className);\n    }\n    if (api.hasClass(element, className)) {\n      return;\n    }\n    element.className += \" \" + className;\n  };\n  \n  api.removeClass = function(element, className) {\n    if (supportsClassList) {\n      return element.classList.remove(className);\n    }\n    \n    element.className = element.className.replace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \");\n  };\n  \n  api.hasClass = function(element, className) {\n    if (supportsClassList) {\n      return element.classList.contains(className);\n    }\n    \n    var elementClassName = element.className;\n    return (elementClassName.length > 0 && (elementClassName == className || new RegExp(\"(^|\\\\s)\" + className + \"(\\\\s|$)\").test(elementClassName)));\n  };\n})(wysihtml5);\nwysihtml5.dom.contains = (function() {\n  var documentElement = document.documentElement;\n  if (documentElement.contains) {\n    return function(container, element) {\n      if (element.nodeType !== wysihtml5.ELEMENT_NODE) {\n        element = element.parentNode;\n      }\n      return container !== element && container.contains(element);\n    };\n  } else if (documentElement.compareDocumentPosition) {\n    return function(container, element) {\n      // https://developer.mozilla.org/en/DOM/Node.compareDocumentPosition\n      return !!(container.compareDocumentPosition(element) & 16);\n    };\n  }\n})();/**\n * Converts an HTML fragment/element into a unordered/ordered list\n *\n * @param {Element} element The element which should be turned into a list\n * @param {String} listType The list type in which to convert the tree (either \"ul\" or \"ol\")\n * @return {Element} The created list\n *\n * @example\n *    <!-- Assume the following dom: -->\n *    <span id=\"pseudo-list\">\n *      eminem<br>\n *      dr. dre\n *      <div>50 Cent</div>\n *    </span>\n *\n *    <script>\n *      wysihtml5.dom.convertToList(document.getElementById(\"pseudo-list\"), \"ul\");\n *    </script>\n *\n *    <!-- Will result in: -->\n *    <ul>\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ul>\n */\nwysihtml5.dom.convertToList = (function() {\n  function _createListItem(doc, list) {\n    var listItem = doc.createElement(\"li\");\n    list.appendChild(listItem);\n    return listItem;\n  }\n  \n  function _createList(doc, type) {\n    return doc.createElement(type);\n  }\n  \n  function convertToList(element, listType) {\n    if (element.nodeName === \"UL\" || element.nodeName === \"OL\" || element.nodeName === \"MENU\") {\n      // Already a list\n      return element;\n    }\n    \n    var doc               = element.ownerDocument,\n        list              = _createList(doc, listType),\n        lineBreaks        = element.querySelectorAll(\"br\"),\n        lineBreaksLength  = lineBreaks.length,\n        childNodes,\n        childNodesLength,\n        childNode,\n        lineBreak,\n        parentNode,\n        isBlockElement,\n        isLineBreak,\n        currentListItem,\n        i;\n    \n    // First find <br> at the end of inline elements and move them behind them\n    for (i=0; i<lineBreaksLength; i++) {\n      lineBreak = lineBreaks[i];\n      while ((parentNode = lineBreak.parentNode) && parentNode !== element && parentNode.lastChild === lineBreak) {\n        if (wysihtml5.dom.getStyle(\"display\").from(parentNode) === \"block\") {\n          parentNode.removeChild(lineBreak);\n          break;\n        }\n        wysihtml5.dom.insert(lineBreak).after(lineBreak.parentNode);\n      }\n    }\n    \n    childNodes        = wysihtml5.lang.array(element.childNodes).get();\n    childNodesLength  = childNodes.length;\n    \n    for (i=0; i<childNodesLength; i++) {\n      currentListItem   = currentListItem || _createListItem(doc, list);\n      childNode         = childNodes[i];\n      isBlockElement    = wysihtml5.dom.getStyle(\"display\").from(childNode) === \"block\";\n      isLineBreak       = childNode.nodeName === \"BR\";\n      \n      if (isBlockElement) {\n        // Append blockElement to current <li> if empty, otherwise create a new one\n        currentListItem = currentListItem.firstChild ? _createListItem(doc, list) : currentListItem;\n        currentListItem.appendChild(childNode);\n        currentListItem = null;\n        continue;\n      }\n      \n      if (isLineBreak) {\n        // Only create a new list item in the next iteration when the current one has already content\n        currentListItem = currentListItem.firstChild ? null : currentListItem;\n        continue;\n      }\n      \n      currentListItem.appendChild(childNode);\n    }\n    \n    element.parentNode.replaceChild(list, element);\n    return list;\n  }\n  \n  return convertToList;\n})();/**\n * Copy a set of attributes from one element to another\n *\n * @param {Array} attributesToCopy List of attributes which should be copied\n * @return {Object} Returns an object which offers the \"from\" method which can be invoked with the element where to\n *    copy the attributes from., this again returns an object which provides a method named \"to\" which can be invoked \n *    with the element where to copy the attributes to (see example)\n *\n * @example\n *    var textarea    = document.querySelector(\"textarea\"),\n *        div         = document.querySelector(\"div[contenteditable=true]\"),\n *        anotherDiv  = document.querySelector(\"div.preview\");\n *    wysihtml5.dom.copyAttributes([\"spellcheck\", \"value\", \"placeholder\"]).from(textarea).to(div).andTo(anotherDiv);\n *\n */\nwysihtml5.dom.copyAttributes = function(attributesToCopy) {\n  return {\n    from: function(elementToCopyFrom) {\n      return {\n        to: function(elementToCopyTo) {\n          var attribute,\n              i         = 0,\n              length    = attributesToCopy.length;\n          for (; i<length; i++) {\n            attribute = attributesToCopy[i];\n            if (typeof(elementToCopyFrom[attribute]) !== \"undefined\" && elementToCopyFrom[attribute] !== \"\") {\n              elementToCopyTo[attribute] = elementToCopyFrom[attribute];\n            }\n          }\n          return { andTo: arguments.callee };\n        }\n      };\n    }\n  };\n};/**\n * Copy a set of styles from one element to another\n * Please note that this only works properly across browsers when the element from which to copy the styles\n * is in the dom\n *\n * Interesting article on how to copy styles\n *\n * @param {Array} stylesToCopy List of styles which should be copied\n * @return {Object} Returns an object which offers the \"from\" method which can be invoked with the element where to\n *    copy the styles from., this again returns an object which provides a method named \"to\" which can be invoked \n *    with the element where to copy the styles to (see example)\n *\n * @example\n *    var textarea    = document.querySelector(\"textarea\"),\n *        div         = document.querySelector(\"div[contenteditable=true]\"),\n *        anotherDiv  = document.querySelector(\"div.preview\");\n *    wysihtml5.dom.copyStyles([\"overflow-y\", \"width\", \"height\"]).from(textarea).to(div).andTo(anotherDiv);\n *\n */\n(function(dom) {\n  \n  /**\n   * Mozilla, WebKit and Opera recalculate the computed width when box-sizing: boder-box; is set\n   * So if an element has \"width: 200px; -moz-box-sizing: border-box; border: 1px;\" then \n   * its computed css width will be 198px\n   */\n  var BOX_SIZING_PROPERTIES = [\"-webkit-box-sizing\", \"-moz-box-sizing\", \"-ms-box-sizing\", \"box-sizing\"];\n  \n  var shouldIgnoreBoxSizingBorderBox = function(element) {\n    if (hasBoxSizingBorderBox(element)) {\n       return parseInt(dom.getStyle(\"width\").from(element), 10) < element.offsetWidth;\n    }\n    return false;\n  };\n  \n  var hasBoxSizingBorderBox = function(element) {\n    var i       = 0,\n        length  = BOX_SIZING_PROPERTIES.length;\n    for (; i<length; i++) {\n      if (dom.getStyle(BOX_SIZING_PROPERTIES[i]).from(element) === \"border-box\") {\n        return BOX_SIZING_PROPERTIES[i];\n      }\n    }\n  };\n  \n  dom.copyStyles = function(stylesToCopy) {\n    return {\n      from: function(element) {\n        if (shouldIgnoreBoxSizingBorderBox(element)) {\n          stylesToCopy = wysihtml5.lang.array(stylesToCopy).without(BOX_SIZING_PROPERTIES);\n        }\n        \n        var cssText = \"\",\n            length  = stylesToCopy.length,\n            i       = 0,\n            property;\n        for (; i<length; i++) {\n          property = stylesToCopy[i];\n          cssText += property + \":\" + dom.getStyle(property).from(element) + \";\";\n        }\n        \n        return {\n          to: function(element) {\n            dom.setStyles(cssText).on(element);\n            return { andTo: arguments.callee };\n          }\n        };\n      }\n    };\n  };\n})(wysihtml5.dom);/**\n * Event Delegation\n *\n * @example\n *    wysihtml5.dom.delegate(document.body, \"a\", \"click\", function() {\n *      // foo\n *    });\n */\n(function(wysihtml5) {\n  \n  wysihtml5.dom.delegate = function(container, selector, eventName, handler) {\n    return wysihtml5.dom.observe(container, eventName, function(event) {\n      var target    = event.target,\n          match     = wysihtml5.lang.array(container.querySelectorAll(selector));\n      \n      while (target && target !== container) {\n        if (match.contains(target)) {\n          handler.call(target, event);\n          break;\n        }\n        target = target.parentNode;\n      }\n    });\n  };\n  \n})(wysihtml5);/**\n * Returns the given html wrapped in a div element\n *\n * Fixing IE's inability to treat unknown elements (HTML5 section, article, ...) correctly\n * when inserted via innerHTML\n * \n * @param {String} html The html which should be wrapped in a dom element\n * @param {Obejct} [context] Document object of the context the html belongs to\n *\n * @example\n *    wysihtml5.dom.getAsDom(\"<article>foo</article>\");\n */\nwysihtml5.dom.getAsDom = (function() {\n  \n  var _innerHTMLShiv = function(html, context) {\n    var tempElement = context.createElement(\"div\");\n    tempElement.style.display = \"none\";\n    context.body.appendChild(tempElement);\n    // IE throws an exception when trying to insert <frameset></frameset> via innerHTML\n    try { tempElement.innerHTML = html; } catch(e) {}\n    context.body.removeChild(tempElement);\n    return tempElement;\n  };\n  \n  /**\n   * Make sure IE supports HTML5 tags, which is accomplished by simply creating one instance of each element\n   */\n  var _ensureHTML5Compatibility = function(context) {\n    if (context._wysihtml5_supportsHTML5Tags) {\n      return;\n    }\n    for (var i=0, length=HTML5_ELEMENTS.length; i<length; i++) {\n      context.createElement(HTML5_ELEMENTS[i]);\n    }\n    context._wysihtml5_supportsHTML5Tags = true;\n  };\n  \n  \n  /**\n   * List of html5 tags\n   * taken from http://simon.html5.org/html5-elements\n   */\n  var HTML5_ELEMENTS = [\n    \"abbr\", \"article\", \"aside\", \"audio\", \"bdi\", \"canvas\", \"command\", \"datalist\", \"details\", \"figcaption\",\n    \"figure\", \"footer\", \"header\", \"hgroup\", \"keygen\", \"mark\", \"meter\", \"nav\", \"output\", \"progress\",\n    \"rp\", \"rt\", \"ruby\", \"svg\", \"section\", \"source\", \"summary\", \"time\", \"track\", \"video\", \"wbr\"\n  ];\n  \n  return function(html, context) {\n    context = context || document;\n    var tempElement;\n    if (typeof(html) === \"object\" && html.nodeType) {\n      tempElement = context.createElement(\"div\");\n      tempElement.appendChild(html);\n    } else if (wysihtml5.browser.supportsHTML5Tags(context)) {\n      tempElement = context.createElement(\"div\");\n      tempElement.innerHTML = html;\n    } else {\n      _ensureHTML5Compatibility(context);\n      tempElement = _innerHTMLShiv(html, context);\n    }\n    return tempElement;\n  };\n})();/**\n * Walks the dom tree from the given node up until it finds a match\n * Designed for optimal performance.\n *\n * @param {Element} node The from which to check the parent nodes\n * @param {Object} matchingSet Object to match against (possible properties: nodeName, className, classRegExp)\n * @param {Number} [levels] How many parents should the function check up from the current node (defaults to 50)\n * @return {null|Element} Returns the first element that matched the desiredNodeName(s)\n * @example\n *    var listElement = wysihtml5.dom.getParentElement(document.querySelector(\"li\"), { nodeName: [\"MENU\", \"UL\", \"OL\"] });\n *    // ... or ...\n *    var unorderedListElement = wysihtml5.dom.getParentElement(document.querySelector(\"li\"), { nodeName: \"UL\" });\n *    // ... or ...\n *    var coloredElement = wysihtml5.dom.getParentElement(myTextNode, { nodeName: \"SPAN\", className: \"wysiwyg-color-red\", classRegExp: /wysiwyg-color-[a-z]/g });\n */\nwysihtml5.dom.getParentElement = (function() {\n  \n  function _isSameNodeName(nodeName, desiredNodeNames) {\n    if (!desiredNodeNames || !desiredNodeNames.length) {\n      return true;\n    }\n    \n    if (typeof(desiredNodeNames) === \"string\") {\n      return nodeName === desiredNodeNames;\n    } else {\n      return wysihtml5.lang.array(desiredNodeNames).contains(nodeName);\n    }\n  }\n  \n  function _isElement(node) {\n    return node.nodeType === wysihtml5.ELEMENT_NODE;\n  }\n  \n  function _hasClassName(element, className, classRegExp) {\n    var classNames = (element.className || \"\").match(classRegExp) || [];\n    if (!className) {\n      return !!classNames.length;\n    }\n    return classNames[classNames.length - 1] === className;\n  }\n  \n  function _getParentElementWithNodeName(node, nodeName, levels) {\n    while (levels-- && node && node.nodeName !== \"BODY\") {\n      if (_isSameNodeName(node.nodeName, nodeName)) {\n        return node;\n      }\n      node = node.parentNode;\n    }\n    return null;\n  }\n  \n  function _getParentElementWithNodeNameAndClassName(node, nodeName, className, classRegExp, levels) {\n    while (levels-- && node && node.nodeName !== \"BODY\") {\n      if (_isElement(node) &&\n          _isSameNodeName(node.nodeName, nodeName) &&\n          _hasClassName(node, className, classRegExp)) {\n        return node;\n      }\n      node = node.parentNode;\n    }\n    return null;\n  }\n  \n  return function(node, matchingSet, levels) {\n    levels = levels || 50; // Go max 50 nodes upwards from current node\n    if (matchingSet.className || matchingSet.classRegExp) {\n      return _getParentElementWithNodeNameAndClassName(\n        node, matchingSet.nodeName, matchingSet.className, matchingSet.classRegExp, levels\n      );\n    } else {\n      return _getParentElementWithNodeName(\n        node, matchingSet.nodeName, levels\n      );\n    }\n  };\n})();\n/**\n * Get element's style for a specific css property\n *\n * @param {Element} element The element on which to retrieve the style\n * @param {String} property The CSS property to retrieve (\"float\", \"display\", \"text-align\", ...)\n *\n * @example\n *    wysihtml5.dom.getStyle(\"display\").from(document.body);\n *    // => \"block\"\n */\nwysihtml5.dom.getStyle = (function() {\n  var stylePropertyMapping = {\n        \"float\": (\"styleFloat\" in document.createElement(\"div\").style) ? \"styleFloat\" : \"cssFloat\"\n      },\n      REG_EXP_CAMELIZE = /\\-[a-z]/g;\n  \n  function camelize(str) {\n    return str.replace(REG_EXP_CAMELIZE, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  }\n  \n  return function(property) {\n    return {\n      from: function(element) {\n        if (element.nodeType !== wysihtml5.ELEMENT_NODE) {\n          return;\n        }\n        \n        var doc               = element.ownerDocument,\n            camelizedProperty = stylePropertyMapping[property] || camelize(property),\n            style             = element.style,\n            currentStyle      = element.currentStyle,\n            styleValue        = style[camelizedProperty];\n        if (styleValue) {\n          return styleValue;\n        }\n        \n        // currentStyle is no standard and only supported by Opera and IE but it has one important advantage over the standard-compliant\n        // window.getComputedStyle, since it returns css property values in their original unit:\n        // If you set an elements width to \"50%\", window.getComputedStyle will give you it's current width in px while currentStyle\n        // gives you the original \"50%\".\n        // Opera supports both, currentStyle and window.getComputedStyle, that's why checking for currentStyle should have higher prio\n        if (currentStyle) {\n          try {\n                return currentStyle[camelizedProperty];\n          } catch(e) {\n            //ie will occasionally fail for unknown reasons. swallowing exception\n          }\n        }\n\n        var win                 = doc.defaultView || doc.parentWindow,\n            needsOverflowReset  = (property === \"height\" || property === \"width\") && element.nodeName === \"TEXTAREA\",\n            originalOverflow,\n            returnValue;\n\n        if (win.getComputedStyle) {\n          // Chrome and Safari both calculate a wrong width and height for textareas when they have scroll bars\n          // therfore we remove and restore the scrollbar and calculate the value in between\n          if (needsOverflowReset) {\n            originalOverflow = style.overflow;\n            style.overflow = \"hidden\";\n          }\n          returnValue = win.getComputedStyle(element, null).getPropertyValue(property);\n          if (needsOverflowReset) {\n            style.overflow = originalOverflow || \"\";\n          }\n          return returnValue;\n        }\n      }\n    };\n  };\n})();/**\n * High performant way to check whether an element with a specific tag name is in the given document\n * Optimized for being heavily executed\n * Unleashes the power of live node lists\n *\n * @param {Object} doc The document object of the context where to check\n * @param {String} tagName Upper cased tag name\n * @example\n *    wysihtml5.dom.hasElementWithTagName(document, \"IMG\");\n */\nwysihtml5.dom.hasElementWithTagName = (function() {\n  var LIVE_CACHE          = {},\n      DOCUMENT_IDENTIFIER = 1;\n  \n  function _getDocumentIdentifier(doc) {\n    return doc._wysihtml5_identifier || (doc._wysihtml5_identifier = DOCUMENT_IDENTIFIER++);\n  }\n  \n  return function(doc, tagName) {\n    var key         = _getDocumentIdentifier(doc) + \":\" + tagName,\n        cacheEntry  = LIVE_CACHE[key];\n    if (!cacheEntry) {\n      cacheEntry = LIVE_CACHE[key] = doc.getElementsByTagName(tagName);\n    }\n    \n    return cacheEntry.length > 0;\n  };\n})();/**\n * High performant way to check whether an element with a specific class name is in the given document\n * Optimized for being heavily executed\n * Unleashes the power of live node lists\n *\n * @param {Object} doc The document object of the context where to check\n * @param {String} tagName Upper cased tag name\n * @example\n *    wysihtml5.dom.hasElementWithClassName(document, \"foobar\");\n */\n(function(wysihtml5) {\n  var LIVE_CACHE          = {},\n      DOCUMENT_IDENTIFIER = 1;\n\n  function _getDocumentIdentifier(doc) {\n    return doc._wysihtml5_identifier || (doc._wysihtml5_identifier = DOCUMENT_IDENTIFIER++);\n  }\n  \n  wysihtml5.dom.hasElementWithClassName = function(doc, className) {\n    // getElementsByClassName is not supported by IE<9\n    // but is sometimes mocked via library code (which then doesn't return live node lists)\n    if (!wysihtml5.browser.supportsNativeGetElementsByClassName()) {\n      return !!doc.querySelector(\".\" + className);\n    }\n\n    var key         = _getDocumentIdentifier(doc) + \":\" + className,\n        cacheEntry  = LIVE_CACHE[key];\n    if (!cacheEntry) {\n      cacheEntry = LIVE_CACHE[key] = doc.getElementsByClassName(className);\n    }\n\n    return cacheEntry.length > 0;\n  };\n})(wysihtml5);\nwysihtml5.dom.insert = function(elementToInsert) {\n  return {\n    after: function(element) {\n      element.parentNode.insertBefore(elementToInsert, element.nextSibling);\n    },\n    \n    before: function(element) {\n      element.parentNode.insertBefore(elementToInsert, element);\n    },\n    \n    into: function(element) {\n      element.appendChild(elementToInsert);\n    }\n  };\n};wysihtml5.dom.insertCSS = function(rules) {\n  rules = rules.join(\"\\n\");\n  \n  return {\n    into: function(doc) {\n      var head         = doc.head || doc.getElementsByTagName(\"head\")[0],\n          styleElement = doc.createElement(\"style\");\n\n      styleElement.type = \"text/css\";\n\n      if (styleElement.styleSheet) {\n        styleElement.styleSheet.cssText = rules;\n      } else {\n        styleElement.appendChild(doc.createTextNode(rules));\n      }\n\n      if (head) {\n        head.appendChild(styleElement);\n      }\n    }\n  };\n};/**\n * Method to set dom events\n *\n * @example\n *    wysihtml5.dom.observe(iframe.contentWindow.document.body, [\"focus\", \"blur\"], function() { ... });\n */\nwysihtml5.dom.observe = function(element, eventNames, handler) {\n  eventNames = typeof(eventNames) === \"string\" ? [eventNames] : eventNames;\n  \n  var handlerWrapper,\n      eventName,\n      i       = 0,\n      length  = eventNames.length;\n  \n  for (; i<length; i++) {\n    eventName = eventNames[i];\n    if (element.addEventListener) {\n      element.addEventListener(eventName, handler, false);\n    } else {\n      handlerWrapper = function(event) {\n        if (!(\"target\" in event)) {\n          event.target = event.srcElement;\n        }\n        event.preventDefault = event.preventDefault || function() {\n          this.returnValue = false;\n        };\n        event.stopPropagation = event.stopPropagation || function() {\n          this.cancelBubble = true;\n        };\n        handler.call(element, event);\n      };\n      element.attachEvent(\"on\" + eventName, handlerWrapper);\n    }\n  }\n  \n  return {\n    stop: function() {\n      var eventName,\n          i       = 0,\n          length  = eventNames.length;\n      for (; i<length; i++) {\n        eventName = eventNames[i];\n        if (element.removeEventListener) {\n          element.removeEventListener(eventName, handler, false);\n        } else {\n          element.detachEvent(\"on\" + eventName, handlerWrapper);\n        }\n      }\n    }\n  };\n};\n/**\n * HTML Sanitizer\n * Rewrites the HTML based on given rules\n *\n * @param {Element|String} elementOrHtml HTML String to be sanitized OR element whose content should be sanitized\n * @param {Object} [rules] List of rules for rewriting the HTML, if there's no rule for an element it will\n *    be converted to a \"span\". Each rule is a key/value pair where key is the tag to convert, and value the\n *    desired substitution.\n * @param {Object} context Document object in which to parse the html, needed to sandbox the parsing\n *\n * @return {Element|String} Depends on the elementOrHtml parameter. When html then the sanitized html as string elsewise the element.\n *\n * @example\n *    var userHTML = '<div id=\"foo\" onclick=\"alert(1);\"><p><font color=\"red\">foo</font><script>alert(1);</script></p></div>';\n *    wysihtml5.dom.parse(userHTML, {\n *      tags {\n *        p:      \"div\",      // Rename p tags to div tags\n *        font:   \"span\"      // Rename font tags to span tags\n *        div:    true,       // Keep them, also possible (same result when passing: \"div\" or true)\n *        script: undefined   // Remove script elements\n *      }\n *    });\n *    // => <div><div><span>foo bar</span></div></div>\n *\n *    var userHTML = '<table><tbody><tr><td>I'm a table!</td></tr></tbody></table>';\n *    wysihtml5.dom.parse(userHTML);\n *    // => '<span><span><span><span>I'm a table!</span></span></span></span>'\n *\n *    var userHTML = '<div>foobar<br>foobar</div>';\n *    wysihtml5.dom.parse(userHTML, {\n *      tags: {\n *        div: undefined,\n *        br:  true\n *      }\n *    });\n *    // => ''\n *\n *    var userHTML = '<div class=\"red\">foo</div><div class=\"pink\">bar</div>';\n *    wysihtml5.dom.parse(userHTML, {\n *      classes: {\n *        red:    1,\n *        green:  1\n *      },\n *      tags: {\n *        div: {\n *          rename_tag:     \"p\"\n *        }\n *      }\n *    });\n *    // => '<p class=\"red\">foo</p><p>bar</p>'\n */\nwysihtml5.dom.parse = (function() {\n  \n  /**\n   * It's not possible to use a XMLParser/DOMParser as HTML5 is not always well-formed XML\n   * new DOMParser().parseFromString('<img src=\"foo.gif\">') will cause a parseError since the\n   * node isn't closed\n   *\n   * Therefore we've to use the browser's ordinary HTML parser invoked by setting innerHTML.\n   */\n  var NODE_TYPE_MAPPING = {\n        \"1\": _handleElement,\n        \"3\": _handleText\n      },\n      // Rename unknown tags to this\n      DEFAULT_NODE_NAME   = \"span\",\n      WHITE_SPACE_REG_EXP = /\\s+/,\n      defaultRules        = { tags: {}, classes: {} },\n      currentRules        = {};\n  \n  /**\n   * Iterates over all childs of the element, recreates them, appends them into a document fragment\n   * which later replaces the entire body content\n   */\n  function parse(elementOrHtml, rules, context, cleanUp) {\n    wysihtml5.lang.object(currentRules).merge(defaultRules).merge(rules).get();\n    \n    context           = context || elementOrHtml.ownerDocument || document;\n    var fragment      = context.createDocumentFragment(),\n        isString      = typeof(elementOrHtml) === \"string\",\n        element,\n        newNode,\n        firstChild;\n    \n    if (isString) {\n      element = wysihtml5.dom.getAsDom(elementOrHtml, context);\n    } else {\n      element = elementOrHtml;\n    }\n    \n    while (element.firstChild) {\n      firstChild  = element.firstChild;\n      element.removeChild(firstChild);\n      newNode = _convert(firstChild, cleanUp);\n      if (newNode) {\n        fragment.appendChild(newNode);\n      }\n    }\n    \n    // Clear element contents\n    element.innerHTML = \"\";\n    \n    // Insert new DOM tree\n    element.appendChild(fragment);\n    \n    return isString ? wysihtml5.quirks.getCorrectInnerHTML(element) : element;\n  }\n  \n  function _convert(oldNode, cleanUp) {\n    var oldNodeType     = oldNode.nodeType,\n        oldChilds       = oldNode.childNodes,\n        oldChildsLength = oldChilds.length,\n        newNode,\n        method          = NODE_TYPE_MAPPING[oldNodeType],\n        i               = 0;\n    \n    newNode = method && method(oldNode);\n    \n    if (!newNode) {\n      return null;\n    }\n    \n    for (i=0; i<oldChildsLength; i++) {\n      newChild = _convert(oldChilds[i], cleanUp);\n      if (newChild) {\n        newNode.appendChild(newChild);\n      }\n    }\n    \n    // Cleanup senseless <span> elements\n    if (cleanUp &&\n        newNode.childNodes.length <= 1 &&\n        newNode.nodeName.toLowerCase() === DEFAULT_NODE_NAME &&\n        !newNode.attributes.length) {\n      return newNode.firstChild;\n    }\n    \n    return newNode;\n  }\n  \n  function _handleElement(oldNode) {\n    var rule,\n        newNode,\n        endTag,\n        tagRules    = currentRules.tags,\n        nodeName    = oldNode.nodeName.toLowerCase(),\n        scopeName   = oldNode.scopeName;\n    \n    /**\n     * We already parsed that element\n     * ignore it! (yes, this sometimes happens in IE8 when the html is invalid)\n     */\n    if (oldNode._wysihtml5) {\n      return null;\n    }\n    oldNode._wysihtml5 = 1;\n    \n    if (oldNode.className === \"wysihtml5-temp\") {\n      return null;\n    }\n    \n    /**\n     * IE is the only browser who doesn't include the namespace in the\n     * nodeName, that's why we have to prepend it by ourselves\n     * scopeName is a proprietary IE feature\n     * read more here http://msdn.microsoft.com/en-us/library/ms534388(v=vs.85).aspx\n     */\n    if (scopeName && scopeName != \"HTML\") {\n      nodeName = scopeName + \":\" + nodeName;\n    }\n    \n    /**\n     * Repair node\n     * IE is a bit bitchy when it comes to invalid nested markup which includes unclosed tags\n     * A <p> doesn't need to be closed according HTML4-5 spec, we simply replace it with a <div> to preserve its content and layout\n     */\n    if (\"outerHTML\" in oldNode) {\n      if (!wysihtml5.browser.autoClosesUnclosedTags() &&\n          oldNode.nodeName === \"P\" &&\n          oldNode.outerHTML.slice(-4).toLowerCase() !== \"</p>\") {\n        nodeName = \"div\";\n      }\n    }\n    \n    if (nodeName in tagRules) {\n      rule = tagRules[nodeName];\n      if (!rule || rule.remove) {\n        return null;\n      }\n      \n      rule = typeof(rule) === \"string\" ? { rename_tag: rule } : rule;\n    } else if (oldNode.firstChild) {\n      rule = { rename_tag: DEFAULT_NODE_NAME };\n    } else {\n      // Remove empty unknown elements\n      return null;\n    }\n    \n    newNode = oldNode.ownerDocument.createElement(rule.rename_tag || nodeName);\n    _handleAttributes(oldNode, newNode, rule);\n    \n    oldNode = null;\n    return newNode;\n  }\n  \n  function _handleAttributes(oldNode, newNode, rule) {\n    var attributes          = {},                         // fresh new set of attributes to set on newNode\n        setClass            = rule.set_class,             // classes to set\n        addClass            = rule.add_class,             // add classes based on existing attributes\n        setAttributes       = rule.set_attributes,        // attributes to set on the current node\n        checkAttributes     = rule.check_attributes,      // check/convert values of attributes\n        allowedClasses      = currentRules.classes,\n        i                   = 0,\n        classes             = [],\n        newClasses          = [],\n        newUniqueClasses    = [],\n        oldClasses          = [],\n        classesLength,\n        newClassesLength,\n        currentClass,\n        newClass,\n        attributeName,\n        newAttributeValue,\n        method;\n    \n    if (setAttributes) {\n      attributes = wysihtml5.lang.object(setAttributes).clone();\n    }\n    \n    if (checkAttributes) {\n      for (attributeName in checkAttributes) {\n        method = attributeCheckMethods[checkAttributes[attributeName]];\n        if (!method) {\n          continue;\n        }\n        newAttributeValue = method(_getAttribute(oldNode, attributeName));\n        if (typeof(newAttributeValue) === \"string\") {\n          attributes[attributeName] = newAttributeValue;\n        }\n      }\n    }\n    \n    if (setClass) {\n      classes.push(setClass);\n    }\n    \n    if (addClass) {\n      for (attributeName in addClass) {\n        method = addClassMethods[addClass[attributeName]];\n        if (!method) {\n          continue;\n        }\n        newClass = method(_getAttribute(oldNode, attributeName));\n        if (typeof(newClass) === \"string\") {\n          classes.push(newClass);\n        }\n      }\n    }\n    \n    // make sure that wysihtml5 temp class doesn't get stripped out\n    allowedClasses[\"_wysihtml5-temp-placeholder\"] = 1;\n    \n    // add old classes last\n    oldClasses = oldNode.getAttribute(\"class\");\n    if (oldClasses) {\n      classes = classes.concat(oldClasses.split(WHITE_SPACE_REG_EXP));\n    }\n    classesLength = classes.length;\n    for (; i<classesLength; i++) {\n      currentClass = classes[i];\n      if (allowedClasses[currentClass]) {\n        newClasses.push(currentClass);\n      }\n    }\n    \n    // remove duplicate entries and preserve class specificity\n    newClassesLength = newClasses.length;\n    while (newClassesLength--) {\n      currentClass = newClasses[newClassesLength];\n      if (!wysihtml5.lang.array(newUniqueClasses).contains(currentClass)) {\n        newUniqueClasses.unshift(currentClass);\n      }\n    }\n    \n    if (newUniqueClasses.length) {\n      attributes[\"class\"] = newUniqueClasses.join(\" \");\n    }\n    \n    // set attributes on newNode\n    for (attributeName in attributes) {\n      // Setting attributes can cause a js error in IE under certain circumstances\n      // eg. on a <img> under https when it's new attribute value is non-https\n      // TODO: Investigate this further and check for smarter handling\n      try {\n        newNode.setAttribute(attributeName, attributes[attributeName]);\n      } catch(e) {}\n    }\n    \n    // IE8 sometimes loses the width/height attributes when those are set before the \"src\"\n    // so we make sure to set them again\n    if (attributes.src) {\n      if (typeof(attributes.width) !== \"undefined\") {\n        newNode.setAttribute(\"width\", attributes.width);\n      }\n      if (typeof(attributes.height) !== \"undefined\") {\n        newNode.setAttribute(\"height\", attributes.height);\n      }\n    }\n  }\n  \n  /**\n   * IE gives wrong results for hasAttribute/getAttribute, for example:\n   *    var td = document.createElement(\"td\");\n   *    td.getAttribute(\"rowspan\"); // => \"1\" in IE\n   *\n   * Therefore we have to check the element's outerHTML for the attribute\n   */\n  var HAS_GET_ATTRIBUTE_BUG = !wysihtml5.browser.supportsGetAttributeCorrectly();\n  function _getAttribute(node, attributeName) {\n    attributeName = attributeName.toLowerCase();\n    var nodeName = node.nodeName;\n    if (nodeName == \"IMG\" && attributeName == \"src\" && _isLoadedImage(node) === true) {\n      // Get 'src' attribute value via object property since this will always contain the\n      // full absolute url (http://...)\n      // this fixes a very annoying bug in firefox (ver 3.6 & 4) and IE 8 where images copied from the same host\n      // will have relative paths, which the sanitizer strips out (see attributeCheckMethods.url)\n      return node.src;\n    } else if (HAS_GET_ATTRIBUTE_BUG && \"outerHTML\" in node) {\n      // Don't trust getAttribute/hasAttribute in IE 6-8, instead check the element's outerHTML\n      var outerHTML      = node.outerHTML.toLowerCase(),\n          // TODO: This might not work for attributes without value: <input disabled>\n          hasAttribute   = outerHTML.indexOf(\" \" + attributeName +  \"=\") != -1;\n      \n      return hasAttribute ? node.getAttribute(attributeName) : null;\n    } else{\n      return node.getAttribute(attributeName);\n    }\n  }\n  \n  /**\n   * Check whether the given node is a proper loaded image\n   * FIXME: Returns undefined when unknown (Chrome, Safari)\n   */\n  function _isLoadedImage(node) {\n    try {\n      return node.complete && !node.mozMatchesSelector(\":-moz-broken\");\n    } catch(e) {\n      if (node.complete && node.readyState === \"complete\") {\n        return true;\n      }\n    }\n  }\n  \n  function _handleText(oldNode) {\n    return oldNode.ownerDocument.createTextNode(oldNode.data);\n  }\n  \n  \n  // ------------ attribute checks ------------ \\\\\n  var attributeCheckMethods = {\n    url: (function() {\n      var REG_EXP = /^https?:\\/\\//i;\n      return function(attributeValue) {\n        if (!attributeValue || !attributeValue.match(REG_EXP)) {\n          return null;\n        }\n        return attributeValue.replace(REG_EXP, function(match) {\n          return match.toLowerCase();\n        });\n      };\n    })(),\n    \n    alt: (function() {\n      var REG_EXP = /[^ a-z0-9_\\-]/gi;\n      return function(attributeValue) {\n        if (!attributeValue) {\n          return \"\";\n        }\n        return attributeValue.replace(REG_EXP, \"\");\n      };\n    })(),\n    \n    numbers: (function() {\n      var REG_EXP = /\\D/g;\n      return function(attributeValue) {\n        attributeValue = (attributeValue || \"\").replace(REG_EXP, \"\");\n        return attributeValue || null;\n      };\n    })()\n  };\n  \n  // ------------ class converter (converts an html attribute to a class name) ------------ \\\\\n  var addClassMethods = {\n    align_img: (function() {\n      var mapping = {\n        left:   \"wysiwyg-float-left\",\n        right:  \"wysiwyg-float-right\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).toLowerCase()];\n      };\n    })(),\n    \n    align_text: (function() {\n      var mapping = {\n        left:     \"wysiwyg-text-align-left\",\n        right:    \"wysiwyg-text-align-right\",\n        center:   \"wysiwyg-text-align-center\",\n        justify:  \"wysiwyg-text-align-justify\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).toLowerCase()];\n      };\n    })(),\n    \n    clear_br: (function() {\n      var mapping = {\n        left:   \"wysiwyg-clear-left\",\n        right:  \"wysiwyg-clear-right\",\n        both:   \"wysiwyg-clear-both\",\n        all:    \"wysiwyg-clear-both\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).toLowerCase()];\n      };\n    })(),\n    \n    size_font: (function() {\n      var mapping = {\n        \"1\": \"wysiwyg-font-size-xx-small\",\n        \"2\": \"wysiwyg-font-size-small\",\n        \"3\": \"wysiwyg-font-size-medium\",\n        \"4\": \"wysiwyg-font-size-large\",\n        \"5\": \"wysiwyg-font-size-x-large\",\n        \"6\": \"wysiwyg-font-size-xx-large\",\n        \"7\": \"wysiwyg-font-size-xx-large\",\n        \"-\": \"wysiwyg-font-size-smaller\",\n        \"+\": \"wysiwyg-font-size-larger\"\n      };\n      return function(attributeValue) {\n        return mapping[String(attributeValue).charAt(0)];\n      };\n    })()\n  };\n  \n  return parse;\n})();/**\n * Checks for empty text node childs and removes them\n *\n * @param {Element} node The element in which to cleanup\n * @example\n *    wysihtml5.dom.removeEmptyTextNodes(element);\n */\nwysihtml5.dom.removeEmptyTextNodes = function(node) {\n  var childNode,\n      childNodes        = wysihtml5.lang.array(node.childNodes).get(),\n      childNodesLength  = childNodes.length,\n      i                 = 0;\n  for (; i<childNodesLength; i++) {\n    childNode = childNodes[i];\n    if (childNode.nodeType === wysihtml5.TEXT_NODE && childNode.data === \"\") {\n      childNode.parentNode.removeChild(childNode);\n    }\n  }\n};\n/**\n * Renames an element (eg. a <div> to a <p>) and keeps its childs\n *\n * @param {Element} element The list element which should be renamed\n * @param {Element} newNodeName The desired tag name\n *\n * @example\n *    <!-- Assume the following dom: -->\n *    <ul id=\"list\">\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ul>\n *\n *    <script>\n *      wysihtml5.dom.renameElement(document.getElementById(\"list\"), \"ol\");\n *    </script>\n *\n *    <!-- Will result in: -->\n *    <ol>\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ol>\n */\nwysihtml5.dom.renameElement = function(element, newNodeName) {\n  var newElement = element.ownerDocument.createElement(newNodeName),\n      firstChild;\n  while (firstChild = element.firstChild) {\n    newElement.appendChild(firstChild);\n  }\n  wysihtml5.dom.copyAttributes([\"align\", \"className\"]).from(element).to(newElement);\n  element.parentNode.replaceChild(newElement, element);\n  return newElement;\n};/**\n * Takes an element, removes it and replaces it with it's childs\n * \n * @param {Object} node The node which to replace with it's child nodes\n * @example\n *    <div id=\"foo\">\n *      <span>hello</span>\n *    </div>\n *    <script>\n *      // Remove #foo and replace with it's children\n *      wysihtml5.dom.replaceWithChildNodes(document.getElementById(\"foo\"));\n *    </script>\n */\nwysihtml5.dom.replaceWithChildNodes = function(node) {\n  if (!node.parentNode) {\n    return;\n  }\n  \n  if (!node.firstChild) {\n    node.parentNode.removeChild(node);\n    return;\n  }\n  \n  var fragment = node.ownerDocument.createDocumentFragment();\n  while (node.firstChild) {\n    fragment.appendChild(node.firstChild);\n  }\n  node.parentNode.replaceChild(fragment, node);\n  node = fragment = null;\n};\n/**\n * Unwraps an unordered/ordered list\n *\n * @param {Element} element The list element which should be unwrapped\n *\n * @example\n *    <!-- Assume the following dom: -->\n *    <ul id=\"list\">\n *      <li>eminem</li>\n *      <li>dr. dre</li>\n *      <li>50 Cent</li>\n *    </ul>\n *\n *    <script>\n *      wysihtml5.dom.resolveList(document.getElementById(\"list\"));\n *    </script>\n *\n *    <!-- Will result in: -->\n *    eminem<br>\n *    dr. dre<br>\n *    50 Cent<br>\n */\n(function(dom) {\n  function _isBlockElement(node) {\n    return dom.getStyle(\"display\").from(node) === \"block\";\n  }\n  \n  function _isLineBreak(node) {\n    return node.nodeName === \"BR\";\n  }\n  \n  function _appendLineBreak(element) {\n    var lineBreak = element.ownerDocument.createElement(\"br\");\n    element.appendChild(lineBreak);\n  }\n  \n  function resolveList(list) {\n    if (list.nodeName !== \"MENU\" && list.nodeName !== \"UL\" && list.nodeName !== \"OL\") {\n      return;\n    }\n    \n    var doc             = list.ownerDocument,\n        fragment        = doc.createDocumentFragment(),\n        previousSibling = list.previousElementSibling || list.previousSibling,\n        firstChild,\n        lastChild,\n        isLastChild,\n        shouldAppendLineBreak,\n        listItem;\n    \n    if (previousSibling && !_isBlockElement(previousSibling)) {\n      _appendLineBreak(fragment);\n    }\n    \n    while (listItem = list.firstChild) {\n      lastChild = listItem.lastChild;\n      while (firstChild = listItem.firstChild) {\n        isLastChild           = firstChild === lastChild;\n        // This needs to be done before appending it to the fragment, as it otherwise will loose style information\n        shouldAppendLineBreak = isLastChild && !_isBlockElement(firstChild) && !_isLineBreak(firstChild);\n        fragment.appendChild(firstChild);\n        if (shouldAppendLineBreak) {\n          _appendLineBreak(fragment);\n        }\n      }\n      \n      listItem.parentNode.removeChild(listItem);\n    }\n    list.parentNode.replaceChild(fragment, list);\n  }\n  \n  dom.resolveList = resolveList;\n})(wysihtml5.dom);/**\n * Sandbox for executing javascript, parsing css styles and doing dom operations in a secure way\n *\n * Browser Compatibility:\n *  - Secure in MSIE 6+, but only when the user hasn't made changes to his security level \"restricted\"\n *  - Partially secure in other browsers (Firefox, Opera, Safari, Chrome, ...)\n *\n * Please note that this class can't benefit from the HTML5 sandbox attribute for the following reasons:\n *    - sandboxing doesn't work correctly with inlined content (src=\"javascript:'<html>...</html>'\")\n *    - sandboxing of physical documents causes that the dom isn't accessible anymore from the outside (iframe.contentWindow, ...)\n *    - setting the \"allow-same-origin\" flag would fix that, but then still javascript and dom events refuse to fire\n *    - therefore the \"allow-scripts\" flag is needed, which then would deactivate any security, as the js executed inside the iframe\n *      can do anything as if the sandbox attribute wasn't set\n *\n * @param {Function} [readyCallback] Method that gets invoked when the sandbox is ready\n * @param {Object} [config] Optional parameters\n *\n * @example\n *    new wysihtml5.dom.Sandbox(function(sandbox) {\n *      sandbox.getWindow().document.body.innerHTML = '<img src=foo.gif onerror=\"alert(document.cookie)\">';\n *    });\n */\n(function(wysihtml5) {\n  var /**\n       * Default configuration\n       */\n      doc                 = document,\n      /**\n       * Properties to unset/protect on the window object\n       */\n      windowProperties    = [\n        \"parent\", \"top\", \"opener\", \"frameElement\", \"frames\",\n        \"localStorage\", \"globalStorage\", \"sessionStorage\", \"indexedDB\"\n      ],\n      /**\n       * Properties on the window object which are set to an empty function\n       */\n      windowProperties2   = [\n        \"open\", \"close\", \"openDialog\", \"showModalDialog\",\n        \"alert\", \"confirm\", \"prompt\",\n        \"openDatabase\", \"postMessage\",\n        \"XMLHttpRequest\", \"XDomainRequest\"\n      ],\n      /**\n       * Properties to unset/protect on the document object\n       */\n      documentProperties  = [\n        \"referrer\",\n        \"write\", \"open\", \"close\"\n      ];\n  \n  wysihtml5.dom.Sandbox = Base.extend(\n    /** @scope wysihtml5.dom.Sandbox.prototype */ {\n\n    constructor: function(readyCallback, config) {\n      this.callback = readyCallback || wysihtml5.EMPTY_FUNCTION;\n      this.config   = wysihtml5.lang.object({}).merge(config).get();\n      this.iframe   = this._createIframe();\n    },\n    \n    insertInto: function(element) {\n      if (typeof(element) === \"string\") {\n        element = doc.getElementById(element);\n      }\n      \n      element.appendChild(this.iframe);\n    },\n\n    getIframe: function() {\n      return this.iframe;\n    },\n\n    getWindow: function() {\n      this._readyError();\n    },\n\n    getDocument: function() {\n      this._readyError();\n    },\n\n    destroy: function() {\n      var iframe = this.getIframe();\n      iframe.parentNode.removeChild(iframe);\n    },\n\n    _readyError: function() {\n      throw new Error(\"wysihtml5.Sandbox: Sandbox iframe isn't loaded yet\");\n    },\n\n    /**\n     * Creates the sandbox iframe\n     *\n     * Some important notes:\n     *  - We can't use HTML5 sandbox for now:\n     *    setting it causes that the iframe's dom can't be accessed from the outside\n     *    Therefore we need to set the \"allow-same-origin\" flag which enables accessing the iframe's dom\n     *    But then there's another problem, DOM events (focus, blur, change, keypress, ...) aren't fired.\n     *    In order to make this happen we need to set the \"allow-scripts\" flag.\n     *    A combination of allow-scripts and allow-same-origin is almost the same as setting no sandbox attribute at all.\n     *  - Chrome & Safari, doesn't seem to support sandboxing correctly when the iframe's html is inlined (no physical document)\n     *  - IE needs to have the security=\"restricted\" attribute set before the iframe is \n     *    inserted into the dom tree\n     *  - Believe it or not but in IE \"security\" in document.createElement(\"iframe\") is false, even\n     *    though it supports it\n     *  - When an iframe has security=\"restricted\", in IE eval() & execScript() don't work anymore\n     *  - IE doesn't fire the onload event when the content is inlined in the src attribute, therefore we rely\n     *    on the onreadystatechange event\n     */\n    _createIframe: function() {\n      var that   = this,\n          iframe = doc.createElement(\"iframe\");\n      iframe.className = \"wysihtml5-sandbox\";\n      wysihtml5.dom.setAttributes({\n        \"security\":           \"restricted\",\n        \"allowtransparency\":  \"true\",\n        \"frameborder\":        0,\n        \"width\":              0,\n        \"height\":             0,\n        \"marginwidth\":        0,\n        \"marginheight\":       0\n      }).on(iframe);\n\n      // Setting the src like this prevents ssl warnings in IE6\n      if (wysihtml5.browser.throwsMixedContentWarningWhenIframeSrcIsEmpty()) {\n        iframe.src = \"javascript:'<html></html>'\";\n      }\n\n      iframe.onload = function() {\n        iframe.onreadystatechange = iframe.onload = null;\n        that._onLoadIframe(iframe);\n      };\n\n      iframe.onreadystatechange = function() {\n        if (/loaded|complete/.test(iframe.readyState)) {\n          iframe.onreadystatechange = iframe.onload = null;\n          that._onLoadIframe(iframe);\n        }\n      };\n\n      return iframe;\n    },\n\n    /**\n     * Callback for when the iframe has finished loading\n     */\n    _onLoadIframe: function(iframe) {\n      // don't resume when the iframe got unloaded (eg. by removing it from the dom)\n      if (!wysihtml5.dom.contains(doc.documentElement, iframe)) {\n        return;\n      }\n\n      var that           = this,\n          iframeWindow   = iframe.contentWindow,\n          iframeDocument = iframe.contentWindow.document,\n          charset        = doc.characterSet || doc.charset || \"utf-8\",\n          sandboxHtml    = this._getHtml({\n            charset:      charset,\n            stylesheets:  this.config.stylesheets\n          });\n\n      // Create the basic dom tree including proper DOCTYPE and charset\n      iframeDocument.open(\"text/html\", \"replace\");\n      iframeDocument.write(sandboxHtml);\n      iframeDocument.close();\n\n      this.getWindow = function() { return iframe.contentWindow; };\n      this.getDocument = function() { return iframe.contentWindow.document; };\n\n      // Catch js errors and pass them to the parent's onerror event\n      // addEventListener(\"error\") doesn't work properly in some browsers\n      // TODO: apparently this doesn't work in IE9!\n      iframeWindow.onerror = function(errorMessage, fileName, lineNumber) {\n        throw new Error(\"wysihtml5.Sandbox: \" + errorMessage, fileName, lineNumber);\n      };\n\n      if (!wysihtml5.browser.supportsSandboxedIframes()) {\n        // Unset a bunch of sensitive variables\n        // Please note: This isn't hack safe!  \n        // It more or less just takes care of basic attacks and prevents accidental theft of sensitive information\n        // IE is secure though, which is the most important thing, since IE is the only browser, who\n        // takes over scripts & styles into contentEditable elements when copied from external websites\n        // or applications (Microsoft Word, ...)\n        var i, length;\n        for (i=0, length=windowProperties.length; i<length; i++) {\n          this._unset(iframeWindow, windowProperties[i]);\n        }\n        for (i=0, length=windowProperties2.length; i<length; i++) {\n          this._unset(iframeWindow, windowProperties2[i], wysihtml5.EMPTY_FUNCTION);\n        }\n        for (i=0, length=documentProperties.length; i<length; i++) {\n          this._unset(iframeDocument, documentProperties[i]);\n        }\n        // This doesn't work in Safari 5 \n        // See http://stackoverflow.com/questions/992461/is-it-possible-to-override-document-cookie-in-webkit\n        this._unset(iframeDocument, \"cookie\", \"\", true);\n      }\n\n      this.loaded = true;\n\n      // Trigger the callback\n      setTimeout(function() { that.callback(that); }, 0);\n    },\n\n    _getHtml: function(templateVars) {\n      var stylesheets = templateVars.stylesheets,\n          html        = \"\",\n          i           = 0,\n          length;\n      stylesheets = typeof(stylesheets) === \"string\" ? [stylesheets] : stylesheets;\n      if (stylesheets) {\n        length = stylesheets.length;\n        for (; i<length; i++) {\n          html += '<link rel=\"stylesheet\" href=\"' + stylesheets[i] + '\">';\n        }\n      }\n      templateVars.stylesheets = html;\n\n      return wysihtml5.lang.string(\n        '<!DOCTYPE html><html><head>'\n        + '<meta charset=\"#{charset}\">#{stylesheets}</head>'\n        + '<body></body></html>'\n      ).interpolate(templateVars);\n    },\n\n    /**\n     * Method to unset/override existing variables\n     * @example\n     *    // Make cookie unreadable and unwritable\n     *    this._unset(document, \"cookie\", \"\", true);\n     */\n    _unset: function(object, property, value, setter) {\n      try { object[property] = value; } catch(e) {}\n\n      try { object.__defineGetter__(property, function() { return value; }); } catch(e) {}\n      if (setter) {\n        try { object.__defineSetter__(property, function() {}); } catch(e) {}\n      }\n\n      if (!wysihtml5.browser.crashesWhenDefineProperty(property)) {\n        try {\n          var config = {\n            get: function() { return value; }\n          };\n          if (setter) {\n            config.set = function() {};\n          }\n          Object.defineProperty(object, property, config);\n        } catch(e) {}\n      }\n    }\n  });\n})(wysihtml5);\n(function() {\n  var mapping = {\n    \"className\": \"class\"\n  };\n  wysihtml5.dom.setAttributes = function(attributes) {\n    return {\n      on: function(element) {\n        for (var i in attributes) {\n          element.setAttribute(mapping[i] || i, attributes[i]);\n        }\n      }\n    }\n  };\n})();wysihtml5.dom.setStyles = function(styles) {\n  return {\n    on: function(element) {\n      var style = element.style;\n      if (typeof(styles) === \"string\") {\n        style.cssText += \";\" + styles;\n        return;\n      }\n      for (var i in styles) {\n        if (i === \"float\") {\n          style.cssFloat = styles[i];\n          style.styleFloat = styles[i];\n        } else {\n          style[i] = styles[i];\n        }\n      }\n    }\n  };\n};/**\n * Simulate HTML5 placeholder attribute\n *\n * Needed since\n *    - div[contentEditable] elements don't support it\n *    - older browsers (such as IE8 and Firefox 3.6) don't support it at all\n *\n * @param {Object} parent Instance of main wysihtml5.Editor class\n * @param {Element} view Instance of wysihtml5.views.* class\n * @param {String} placeholderText\n *\n * @example\n *    wysihtml.dom.simulatePlaceholder(this, composer, \"Foobar\");\n */\n(function(dom) {\n  dom.simulatePlaceholder = function(editor, view, placeholderText) {\n    var CLASS_NAME = \"placeholder\",\n        unset = function() {\n          if (view.hasPlaceholderSet()) {\n            view.clear();\n          }\n          dom.removeClass(view.element, CLASS_NAME);\n        },\n        set = function() {\n          if (view.isEmpty()) {\n            view.setValue(placeholderText);\n            dom.addClass(view.element, CLASS_NAME);\n          }\n        };\n\n    editor\n      .observe(\"set_placeholder\", set)\n      .observe(\"unset_placeholder\", unset)\n      .observe(\"focus:composer\", unset)\n      .observe(\"paste:composer\", unset)\n      .observe(\"blur:composer\", set);\n\n    set();\n  };\n})(wysihtml5.dom);\n(function(dom) {\n  var documentElement = document.documentElement;\n  if (\"textContent\" in documentElement) {\n    dom.setTextContent = function(element, text) {\n      element.textContent = text;\n    };\n\n    dom.getTextContent = function(element) {\n      return element.textContent;\n    };\n  } else if (\"innerText\" in documentElement) {\n    dom.setTextContent = function(element, text) {\n      element.innerText = text;\n    };\n\n    dom.getTextContent = function(element) {\n      return element.innerText;\n    };\n  } else {\n    dom.setTextContent = function(element, text) {\n      element.nodeValue = text;\n    };\n\n    dom.getTextContent = function(element) {\n      return element.nodeValue;\n    };\n  }\n})(wysihtml5.dom);\n\n/**\n * Fix most common html formatting misbehaviors of browsers implementation when inserting\n * content via copy & paste contentEditable\n *\n * @author Christopher Blum\n */\nwysihtml5.quirks.cleanPastedHTML = (function() {\n  // TODO: We probably need more rules here\n  var defaultRules = {\n    // When pasting underlined links <a> into a contentEditable, IE thinks, it has to insert <u> to keep the styling\n    \"a u\": wysihtml5.dom.replaceWithChildNodes\n  };\n  \n  function cleanPastedHTML(elementOrHtml, rules, context) {\n    rules   = rules || defaultRules;\n    context = context || elementOrHtml.ownerDocument || document;\n    \n    var element,\n        isString = typeof(elementOrHtml) === \"string\",\n        method,\n        matches,\n        matchesLength,\n        i,\n        j = 0;\n    if (isString) {\n      element = wysihtml5.dom.getAsDom(elementOrHtml, context);\n    } else {\n      element = elementOrHtml;\n    }\n    \n    for (i in rules) {\n      matches       = element.querySelectorAll(i);\n      method        = rules[i];\n      matchesLength = matches.length;\n      for (; j<matchesLength; j++) {\n        method(matches[j]);\n      }\n    }\n    \n    matches = elementOrHtml = rules = null;\n    \n    return isString ? element.innerHTML : element;\n  }\n  \n  return cleanPastedHTML;\n})();/**\n * IE and Opera leave an empty paragraph in the contentEditable element after clearing it\n *\n * @param {Object} contentEditableElement The contentEditable element to observe for clearing events\n * @exaple\n *    wysihtml5.quirks.ensureProperClearing(myContentEditableElement);\n */\n(function(wysihtml5) {\n  var dom = wysihtml5.dom;\n  \n  wysihtml5.quirks.ensureProperClearing = (function() {\n    var clearIfNecessary = function(event) {\n      var element = this;\n      setTimeout(function() {\n        var innerHTML = element.innerHTML.toLowerCase();\n        if (innerHTML == \"<p>&nbsp;</p>\" ||\n            innerHTML == \"<p>&nbsp;</p><p>&nbsp;</p>\") {\n          element.innerHTML = \"\";\n        }\n      }, 0);\n    };\n\n    return function(composer) {\n      dom.observe(composer.element, [\"cut\", \"keydown\"], clearIfNecessary);\n    };\n  })();\n\n\n\n  /**\n   * In Opera when the caret is in the first and only item of a list (<ul><li>|</li></ul>) and the list is the first child of the contentEditable element, it's impossible to delete the list by hitting backspace\n   *\n   * @param {Object} contentEditableElement The contentEditable element to observe for clearing events\n   * @exaple\n   *    wysihtml5.quirks.ensureProperClearing(myContentEditableElement);\n   */\n  wysihtml5.quirks.ensureProperClearingOfLists = (function() {\n    var ELEMENTS_THAT_CONTAIN_LI = [\"OL\", \"UL\", \"MENU\"];\n\n    var clearIfNecessary = function(element, contentEditableElement) {\n      if (!contentEditableElement.firstChild || !wysihtml5.lang.array(ELEMENTS_THAT_CONTAIN_LI).contains(contentEditableElement.firstChild.nodeName)) {\n        return;\n      }\n\n      var list = dom.getParentElement(element, { nodeName: ELEMENTS_THAT_CONTAIN_LI });\n      if (!list) {\n        return;\n      }\n\n      var listIsFirstChildOfContentEditable = list == contentEditableElement.firstChild;\n      if (!listIsFirstChildOfContentEditable) {\n        return;\n      }\n\n      var hasOnlyOneListItem = list.childNodes.length <= 1;\n      if (!hasOnlyOneListItem) {\n        return;\n      }\n\n      var onlyListItemIsEmpty = list.firstChild ? list.firstChild.innerHTML === \"\" : true;\n      if (!onlyListItemIsEmpty) {\n        return;\n      }\n\n      list.parentNode.removeChild(list);\n    };\n\n    return function(composer) {\n      dom.observe(composer.element, \"keydown\", function(event) {\n        if (event.keyCode !== wysihtml5.BACKSPACE_KEY) {\n          return;\n        }\n\n        var element = composer.selection.getSelectedNode();\n        clearIfNecessary(element, composer.element);\n      });\n    };\n  })();\n\n})(wysihtml5);\n// See https://bugzilla.mozilla.org/show_bug.cgi?id=664398\n//\n// In Firefox this:\n//      var d = document.createElement(\"div\");\n//      d.innerHTML ='<a href=\"~\"></a>';\n//      d.innerHTML;\n// will result in:\n//      <a href=\"%7E\"></a>\n// which is wrong\n(function(wysihtml5) {\n  var TILDE_ESCAPED = \"%7E\";\n  wysihtml5.quirks.getCorrectInnerHTML = function(element) {\n    var innerHTML = element.innerHTML;\n    if (innerHTML.indexOf(TILDE_ESCAPED) === -1) {\n      return innerHTML;\n    }\n    \n    var elementsWithTilde = element.querySelectorAll(\"[href*='~'], [src*='~']\"),\n        url,\n        urlToSearch,\n        length,\n        i;\n    for (i=0, length=elementsWithTilde.length; i<length; i++) {\n      url         = elementsWithTilde[i].href || elementsWithTilde[i].src;\n      urlToSearch = wysihtml5.lang.string(url).replace(\"~\").by(TILDE_ESCAPED);\n      innerHTML   = wysihtml5.lang.string(innerHTML).replace(urlToSearch).by(url);\n    }\n    return innerHTML;\n  };\n})(wysihtml5);/**\n * Some browsers don't insert line breaks when hitting return in a contentEditable element\n *    - Opera & IE insert new <p> on return\n *    - Chrome & Safari insert new <div> on return\n *    - Firefox inserts <br> on return (yippie!)\n *\n * @param {Element} element\n *\n * @example\n *    wysihtml5.quirks.insertLineBreakOnReturn(element);\n */\n(function(wysihtml5) {\n  var dom                                           = wysihtml5.dom,\n      USE_NATIVE_LINE_BREAK_WHEN_CARET_INSIDE_TAGS  = [\"LI\", \"P\", \"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"],\n      LIST_TAGS                                     = [\"UL\", \"OL\", \"MENU\"];\n  \n  wysihtml5.quirks.insertLineBreakOnReturn = function(composer) {\n    function unwrap(selectedNode) {\n      var parentElement = dom.getParentElement(selectedNode, { nodeName: [\"P\", \"DIV\"] }, 2);\n      if (!parentElement) {\n        return;\n      }\n\n      var invisibleSpace = document.createTextNode(wysihtml5.INVISIBLE_SPACE);\n      dom.insert(invisibleSpace).before(parentElement);\n      dom.replaceWithChildNodes(parentElement);\n      composer.selection.selectNode(invisibleSpace);\n    }\n\n    function keyDown(event) {\n      var keyCode = event.keyCode;\n      if (event.shiftKey || (keyCode !== wysihtml5.ENTER_KEY && keyCode !== wysihtml5.BACKSPACE_KEY)) {\n        return;\n      }\n\n      var element         = event.target,\n          selectedNode    = composer.selection.getSelectedNode(),\n          blockElement    = dom.getParentElement(selectedNode, { nodeName: USE_NATIVE_LINE_BREAK_WHEN_CARET_INSIDE_TAGS }, 4);\n      if (blockElement) {\n        // Some browsers create <p> elements after leaving a list\n        // check after keydown of backspace and return whether a <p> got inserted and unwrap it\n        if (blockElement.nodeName === \"LI\" && (keyCode === wysihtml5.ENTER_KEY || keyCode === wysihtml5.BACKSPACE_KEY)) {\n          setTimeout(function() {\n            var selectedNode = composer.selection.getSelectedNode(),\n                list,\n                div;\n            if (!selectedNode) {\n              return;\n            }\n\n            list = dom.getParentElement(selectedNode, {\n              nodeName: LIST_TAGS\n            }, 2);\n\n            if (list) {\n              return;\n            }\n\n            unwrap(selectedNode);\n          }, 0);\n        } else if (blockElement.nodeName.match(/H[1-6]/) && keyCode === wysihtml5.ENTER_KEY) {\n          setTimeout(function() {\n            unwrap(composer.selection.getSelectedNode());\n          }, 0);\n        } \n        return;\n      }\n\n      if (keyCode === wysihtml5.ENTER_KEY && !wysihtml5.browser.insertsLineBreaksOnReturn()) {\n        composer.commands.exec(\"insertLineBreak\");\n        event.preventDefault();\n      }\n    }\n    \n    // keypress doesn't fire when you hit backspace\n    dom.observe(composer.element.ownerDocument, \"keydown\", keyDown);\n  };\n})(wysihtml5);/**\n * Force rerendering of a given element\n * Needed to fix display misbehaviors of IE\n *\n * @param {Element} element The element object which needs to be rerendered\n * @example\n *    wysihtml5.quirks.redraw(document.body);\n */\n(function(wysihtml5) {\n  var CLASS_NAME = \"wysihtml5-quirks-redraw\";\n  \n  wysihtml5.quirks.redraw = function(element) {\n    wysihtml5.dom.addClass(element, CLASS_NAME);\n    wysihtml5.dom.removeClass(element, CLASS_NAME);\n    \n    // Following hack is needed for firefox to make sure that image resize handles are properly removed\n    try {\n      var doc = element.ownerDocument;\n      doc.execCommand(\"italic\", false, null);\n      doc.execCommand(\"italic\", false, null);\n    } catch(e) {}\n  };\n})(wysihtml5);/**\n * Selection API\n *\n * @example\n *    var selection = new wysihtml5.Selection(editor);\n */\n(function(wysihtml5) {\n  var dom = wysihtml5.dom;\n  \n  function _getCumulativeOffsetTop(element) {\n    var top = 0;\n    if (element.parentNode) {\n      do {\n        top += element.offsetTop || 0;\n        element = element.offsetParent;\n      } while (element);\n    }\n    return top;\n  }\n  \n  wysihtml5.Selection = Base.extend(\n    /** @scope wysihtml5.Selection.prototype */ {\n    constructor: function(editor) {\n      // Make sure that our external range library is initialized\n      window.rangy.init();\n      \n      this.editor   = editor;\n      this.composer = editor.composer;\n      this.doc      = this.composer.doc;\n    },\n    \n    /**\n     * Get the current selection as a bookmark to be able to later restore it\n     *\n     * @return {Object} An object that represents the current selection\n     */\n    getBookmark: function() {\n      var range = this.getRange();\n      return range && range.cloneRange();\n    },\n\n    /**\n     * Restore a selection retrieved via wysihtml5.Selection.prototype.getBookmark\n     *\n     * @param {Object} bookmark An object that represents the current selection\n     */\n    setBookmark: function(bookmark) {\n      if (!bookmark) {\n        return;\n      }\n\n      this.setSelection(bookmark);\n    },\n\n    /**\n     * Set the caret in front of the given node\n     *\n     * @param {Object} node The element or text node where to position the caret in front of\n     * @example\n     *    selection.setBefore(myElement);\n     */\n    setBefore: function(node) {\n      var range = rangy.createRange(this.doc);\n      range.setStartBefore(node);\n      range.setEndBefore(node);\n      return this.setSelection(range);\n    },\n\n    /**\n     * Set the caret after the given node\n     *\n     * @param {Object} node The element or text node where to position the caret in front of\n     * @example\n     *    selection.setBefore(myElement);\n     */\n    setAfter: function(node) {\n      var range = rangy.createRange(this.doc);\n      range.setStartAfter(node);\n      range.setEndAfter(node);\n      return this.setSelection(range);\n    },\n\n    /**\n     * Ability to select/mark nodes\n     *\n     * @param {Element} node The node/element to select\n     * @example\n     *    selection.selectNode(document.getElementById(\"my-image\"));\n     */\n    selectNode: function(node) {\n      var range           = rangy.createRange(this.doc),\n          isElement       = node.nodeType === wysihtml5.ELEMENT_NODE,\n          canHaveHTML     = \"canHaveHTML\" in node ? node.canHaveHTML : (node.nodeName !== \"IMG\"),\n          content         = isElement ? node.innerHTML : node.data,\n          isEmpty         = (content === \"\" || content === wysihtml5.INVISIBLE_SPACE),\n          displayStyle    = dom.getStyle(\"display\").from(node),\n          isBlockElement  = (displayStyle === \"block\" || displayStyle === \"list-item\");\n\n      if (isEmpty && isElement && canHaveHTML) {\n        // Make sure that caret is visible in node by inserting a zero width no breaking space\n        try { node.innerHTML = wysihtml5.INVISIBLE_SPACE; } catch(e) {}\n      }\n\n      if (canHaveHTML) {\n        range.selectNodeContents(node);\n      } else {\n        range.selectNode(node);\n      }\n\n      if (canHaveHTML && isEmpty && isElement) {\n        range.collapse(isBlockElement);\n      } else if (canHaveHTML && isEmpty) {\n        range.setStartAfter(node);\n        range.setEndAfter(node);\n      }\n\n      this.setSelection(range);\n    },\n\n    /**\n     * Get the node which contains the selection\n     *\n     * @param {Boolean} [controlRange] (only IE) Whether it should return the selected ControlRange element when the selection type is a \"ControlRange\"\n     * @return {Object} The node that contains the caret\n     * @example\n     *    var nodeThatContainsCaret = selection.getSelectedNode();\n     */\n    getSelectedNode: function(controlRange) {\n      var selection,\n          range;\n\n      if (controlRange && this.doc.selection && this.doc.selection.type === \"Control\") {\n        range = this.doc.selection.createRange();\n        if (range && range.length) {\n          return range.item(0);\n        }\n      }\n\n      selection = this.getSelection(this.doc);\n      if (selection.focusNode === selection.anchorNode) {\n        return selection.focusNode;\n      } else {\n        range = this.getRange(this.doc);\n        return range ? range.commonAncestorContainer : this.doc.body;\n      }\n    },\n\n    executeAndRestore: function(method, restoreScrollPosition) {\n      var body                  = this.doc.body,\n          oldScrollTop          = restoreScrollPosition && body.scrollTop,\n          oldScrollLeft         = restoreScrollPosition && body.scrollLeft,\n          className             = \"_wysihtml5-temp-placeholder\",\n          placeholderHTML       = '<span class=\"' + className + '\">' + wysihtml5.INVISIBLE_SPACE + '</span>',\n          range                 = this.getRange(this.doc),\n          newRange;\n      \n      // Nothing selected, execute and say goodbye\n      if (!range) {\n        method(body, body);\n        return;\n      }\n      \n      var node = range.createContextualFragment(placeholderHTML);\n      range.insertNode(node);\n      \n      // Make sure that a potential error doesn't cause our placeholder element to be left as a placeholder\n      try {\n        method(range.startContainer, range.endContainer);\n      } catch(e3) {\n        setTimeout(function() { throw e3; }, 0);\n      }\n      \n      caretPlaceholder = this.doc.querySelector(\".\" + className);\n      if (caretPlaceholder) {\n        newRange = rangy.createRange(this.doc);\n        newRange.selectNode(caretPlaceholder);\n        newRange.deleteContents();\n        this.setSelection(newRange);\n      } else {\n        // fallback for when all hell breaks loose\n        body.focus();\n      }\n\n      if (restoreScrollPosition) {\n        body.scrollTop  = oldScrollTop;\n        body.scrollLeft = oldScrollLeft;\n      }\n\n      // Remove it again, just to make sure that the placeholder is definitely out of the dom tree\n      try {\n        caretPlaceholder.parentNode.removeChild(caretPlaceholder);\n      } catch(e4) {}\n    },\n\n    /**\n     * Different approach of preserving the selection (doesn't modify the dom)\n     * Takes all text nodes in the selection and saves the selection position in the first and last one\n     */\n    executeAndRestoreSimple: function(method) {\n      var range = this.getRange(),\n          body  = this.doc.body,\n          newRange,\n          firstNode,\n          lastNode,\n          textNodes,\n          rangeBackup;\n\n      // Nothing selected, execute and say goodbye\n      if (!range) {\n        method(body, body);\n        return;\n      }\n\n      textNodes = range.getNodes([3]);\n      firstNode = textNodes[0] || range.startContainer;\n      lastNode  = textNodes[textNodes.length - 1] || range.endContainer;\n\n      rangeBackup = {\n        collapsed:      range.collapsed,\n        startContainer: firstNode,\n        startOffset:    firstNode === range.startContainer ? range.startOffset : 0,\n        endContainer:   lastNode,\n        endOffset:      lastNode === range.endContainer ? range.endOffset : lastNode.length\n      };\n\n      try {\n        method(range.startContainer, range.endContainer);\n      } catch(e) {\n        setTimeout(function() { throw e; }, 0);\n      }\n\n      newRange = rangy.createRange(this.doc);\n      try { newRange.setStart(rangeBackup.startContainer, rangeBackup.startOffset); } catch(e1) {}\n      try { newRange.setEnd(rangeBackup.endContainer, rangeBackup.endOffset); } catch(e2) {}\n      try { this.setSelection(newRange); } catch(e3) {}\n    },\n\n    /**\n     * Insert html at the caret position and move the cursor after the inserted html\n     *\n     * @param {String} html HTML string to insert\n     * @example\n     *    selection.insertHTML(\"<p>foobar</p>\");\n     */\n    insertHTML: function(html) {\n      var range     = rangy.createRange(this.doc),\n          node      = range.createContextualFragment(html),\n          lastChild = node.lastChild;\n      this.insertNode(node);\n      if (lastChild) {\n        this.setAfter(lastChild);\n      }\n    },\n\n    /**\n     * Insert a node at the caret position and move the cursor behind it\n     *\n     * @param {Object} node HTML string to insert\n     * @example\n     *    selection.insertNode(document.createTextNode(\"foobar\"));\n     */\n    insertNode: function(node) {\n      var range = this.getRange();\n      if (range) {\n        range.insertNode(node);\n      }\n    },\n\n    /**\n     * Wraps current selection with the given node\n     *\n     * @param {Object} node The node to surround the selected elements with\n     */\n    surround: function(node) {\n      var range = this.getRange();\n      if (!range) {\n        return;\n      }\n\n      try {\n        // This only works when the range boundaries are not overlapping other elements\n        range.surroundContents(node);\n        this.selectNode(node);\n      } catch(e) {\n        // fallback\n        node.appendChild(range.extractContents());\n        range.insertNode(node);\n      }\n    },\n\n    /**\n     * Scroll the current caret position into the view\n     * FIXME: This is a bit hacky, there might be a smarter way of doing this\n     *\n     * @example\n     *    selection.scrollIntoView();\n     */\n    scrollIntoView: function() {\n      var doc           = this.doc,\n          hasScrollBars = doc.documentElement.scrollHeight > doc.documentElement.offsetHeight,\n          tempElement   = doc._wysihtml5ScrollIntoViewElement = doc._wysihtml5ScrollIntoViewElement || (function() {\n            var element = doc.createElement(\"span\");\n            // The element needs content in order to be able to calculate it's position properly\n            element.innerHTML = wysihtml5.INVISIBLE_SPACE;\n            return element;\n          })(),\n          offsetTop;\n\n      if (hasScrollBars) {\n        this.insertNode(tempElement);\n        offsetTop = _getCumulativeOffsetTop(tempElement);\n        tempElement.parentNode.removeChild(tempElement);\n        if (offsetTop > doc.body.scrollTop) {\n          doc.body.scrollTop = offsetTop;\n        }\n      }\n    },\n\n    /**\n     * Select line where the caret is in\n     */\n    selectLine: function() {\n      if (wysihtml5.browser.supportsSelectionModify()) {\n        this._selectLine_W3C();\n      } else if (this.doc.selection) {\n        this._selectLine_MSIE();\n      }\n    },\n\n    /**\n     * See https://developer.mozilla.org/en/DOM/Selection/modify\n     */\n    _selectLine_W3C: function() {\n      var win       = this.doc.defaultView,\n          selection = win.getSelection();\n      selection.modify(\"extend\", \"left\", \"lineboundary\");\n      selection.modify(\"extend\", \"right\", \"lineboundary\");\n    },\n\n    _selectLine_MSIE: function() {\n      var range       = this.doc.selection.createRange(),\n          rangeTop    = range.boundingTop,\n          rangeHeight = range.boundingHeight,\n          scrollWidth = this.doc.body.scrollWidth,\n          rangeBottom,\n          rangeEnd,\n          measureNode,\n          i,\n          j;\n\n      if (!range.moveToPoint) {\n        return;\n      }\n\n      if (rangeTop === 0) {\n        // Don't know why, but when the selection ends at the end of a line\n        // range.boundingTop is 0\n        measureNode = this.doc.createElement(\"span\");\n        this.insertNode(measureNode);\n        rangeTop = measureNode.offsetTop;\n        measureNode.parentNode.removeChild(measureNode);\n      }\n\n      rangeTop += 1;\n\n      for (i=-10; i<scrollWidth; i+=2) {\n        try {\n          range.moveToPoint(i, rangeTop);\n          break;\n        } catch(e1) {}\n      }\n\n      // Investigate the following in order to handle multi line selections\n      // rangeBottom = rangeTop + (rangeHeight ? (rangeHeight - 1) : 0);\n      rangeBottom = rangeTop;\n      rangeEnd = this.doc.selection.createRange();\n      for (j=scrollWidth; j>=0; j--) {\n        try {\n          rangeEnd.moveToPoint(j, rangeBottom);\n          break;\n        } catch(e2) {}\n      }\n\n      range.setEndPoint(\"EndToEnd\", rangeEnd);\n      range.select();\n    },\n\n    getText: function() {\n      var selection = this.getSelection();\n      return selection ? selection.toString() : \"\";\n    },\n\n    getNodes: function(nodeType, filter) {\n      var range = this.getRange();\n      if (range) {\n        return range.getNodes([nodeType], filter);\n      } else {\n        return [];\n      }\n    },\n    \n    getRange: function() {\n      var selection = this.getSelection();\n      return selection && selection.rangeCount && selection.getRangeAt(0);\n    },\n\n    getSelection: function() {\n      return rangy.getSelection(this.doc.defaultView || this.doc.parentWindow);\n    },\n\n    setSelection: function(range) {\n      var win       = this.doc.defaultView || this.doc.parentWindow,\n          selection = rangy.getSelection(win);\n      return selection.setSingleRange(range);\n    }\n  });\n  \n})(wysihtml5);\n/**\n * Inspired by the rangy CSS Applier module written by Tim Down and licensed under the MIT license.\n * http://code.google.com/p/rangy/\n *\n * changed in order to be able ...\n *    - to use custom tags\n *    - to detect and replace similar css classes via reg exp\n */\n(function(wysihtml5, rangy) {\n  var defaultTagName = \"span\";\n  \n  var REG_EXP_WHITE_SPACE = /\\s+/g;\n  \n  function hasClass(el, cssClass, regExp) {\n    if (!el.className) {\n      return false;\n    }\n    \n    var matchingClassNames = el.className.match(regExp) || [];\n    return matchingClassNames[matchingClassNames.length - 1] === cssClass;\n  }\n\n  function addClass(el, cssClass, regExp) {\n    if (el.className) {\n      removeClass(el, regExp);\n      el.className += \" \" + cssClass;\n    } else {\n      el.className = cssClass;\n    }\n  }\n\n  function removeClass(el, regExp) {\n    if (el.className) {\n      el.className = el.className.replace(regExp, \"\");\n    }\n  }\n  \n  function hasSameClasses(el1, el2) {\n    return el1.className.replace(REG_EXP_WHITE_SPACE, \" \") == el2.className.replace(REG_EXP_WHITE_SPACE, \" \");\n  }\n\n  function replaceWithOwnChildren(el) {\n    var parent = el.parentNode;\n    while (el.firstChild) {\n      parent.insertBefore(el.firstChild, el);\n    }\n    parent.removeChild(el);\n  }\n\n  function elementsHaveSameNonClassAttributes(el1, el2) {\n    if (el1.attributes.length != el2.attributes.length) {\n      return false;\n    }\n    for (var i = 0, len = el1.attributes.length, attr1, attr2, name; i < len; ++i) {\n      attr1 = el1.attributes[i];\n      name = attr1.name;\n      if (name != \"class\") {\n        attr2 = el2.attributes.getNamedItem(name);\n        if (attr1.specified != attr2.specified) {\n          return false;\n        }\n        if (attr1.specified && attr1.nodeValue !== attr2.nodeValue) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n\n  function isSplitPoint(node, offset) {\n    if (rangy.dom.isCharacterDataNode(node)) {\n      if (offset == 0) {\n        return !!node.previousSibling;\n      } else if (offset == node.length) {\n        return !!node.nextSibling;\n      } else {\n        return true;\n      }\n    }\n\n    return offset > 0 && offset < node.childNodes.length;\n  }\n\n  function splitNodeAt(node, descendantNode, descendantOffset) {\n    var newNode;\n    if (rangy.dom.isCharacterDataNode(descendantNode)) {\n      if (descendantOffset == 0) {\n        descendantOffset = rangy.dom.getNodeIndex(descendantNode);\n        descendantNode = descendantNode.parentNode;\n      } else if (descendantOffset == descendantNode.length) {\n        descendantOffset = rangy.dom.getNodeIndex(descendantNode) + 1;\n        descendantNode = descendantNode.parentNode;\n      } else {\n        newNode = rangy.dom.splitDataNode(descendantNode, descendantOffset);\n      }\n    }\n    if (!newNode) {\n      newNode = descendantNode.cloneNode(false);\n      if (newNode.id) {\n        newNode.removeAttribute(\"id\");\n      }\n      var child;\n      while ((child = descendantNode.childNodes[descendantOffset])) {\n        newNode.appendChild(child);\n      }\n      rangy.dom.insertAfter(newNode, descendantNode);\n    }\n    return (descendantNode == node) ? newNode : splitNodeAt(node, newNode.parentNode, rangy.dom.getNodeIndex(newNode));\n  }\n  \n  function Merge(firstNode) {\n    this.isElementMerge = (firstNode.nodeType == wysihtml5.ELEMENT_NODE);\n    this.firstTextNode = this.isElementMerge ? firstNode.lastChild : firstNode;\n    this.textNodes = [this.firstTextNode];\n  }\n\n  Merge.prototype = {\n    doMerge: function() {\n      var textBits = [], textNode, parent, text;\n      for (var i = 0, len = this.textNodes.length; i < len; ++i) {\n        textNode = this.textNodes[i];\n        parent = textNode.parentNode;\n        textBits[i] = textNode.data;\n        if (i) {\n          parent.removeChild(textNode);\n          if (!parent.hasChildNodes()) {\n            parent.parentNode.removeChild(parent);\n          }\n        }\n      }\n      this.firstTextNode.data = text = textBits.join(\"\");\n      return text;\n    },\n\n    getLength: function() {\n      var i = this.textNodes.length, len = 0;\n      while (i--) {\n        len += this.textNodes[i].length;\n      }\n      return len;\n    },\n\n    toString: function() {\n      var textBits = [];\n      for (var i = 0, len = this.textNodes.length; i < len; ++i) {\n        textBits[i] = \"'\" + this.textNodes[i].data + \"'\";\n      }\n      return \"[Merge(\" + textBits.join(\",\") + \")]\";\n    }\n  };\n\n  function HTMLApplier(tagNames, cssClass, similarClassRegExp, normalize) {\n    this.tagNames = tagNames || [defaultTagName];\n    this.cssClass = cssClass || \"\";\n    this.similarClassRegExp = similarClassRegExp;\n    this.normalize = normalize;\n    this.applyToAnyTagName = false;\n  }\n\n  HTMLApplier.prototype = {\n    getAncestorWithClass: function(node) {\n      var cssClassMatch;\n      while (node) {\n        cssClassMatch = this.cssClass ? hasClass(node, this.cssClass, this.similarClassRegExp) : true;\n        if (node.nodeType == wysihtml5.ELEMENT_NODE && rangy.dom.arrayContains(this.tagNames, node.tagName.toLowerCase()) && cssClassMatch) {\n          return node;\n        }\n        node = node.parentNode;\n      }\n      return false;\n    },\n\n    // Normalizes nodes after applying a CSS class to a Range.\n    postApply: function(textNodes, range) {\n      var firstNode = textNodes[0], lastNode = textNodes[textNodes.length - 1];\n\n      var merges = [], currentMerge;\n\n      var rangeStartNode = firstNode, rangeEndNode = lastNode;\n      var rangeStartOffset = 0, rangeEndOffset = lastNode.length;\n\n      var textNode, precedingTextNode;\n\n      for (var i = 0, len = textNodes.length; i < len; ++i) {\n        textNode = textNodes[i];\n        precedingTextNode = this.getAdjacentMergeableTextNode(textNode.parentNode, false);\n        if (precedingTextNode) {\n          if (!currentMerge) {\n            currentMerge = new Merge(precedingTextNode);\n            merges.push(currentMerge);\n          }\n          currentMerge.textNodes.push(textNode);\n          if (textNode === firstNode) {\n            rangeStartNode = currentMerge.firstTextNode;\n            rangeStartOffset = rangeStartNode.length;\n          }\n          if (textNode === lastNode) {\n            rangeEndNode = currentMerge.firstTextNode;\n            rangeEndOffset = currentMerge.getLength();\n          }\n        } else {\n          currentMerge = null;\n        }\n      }\n\n      // Test whether the first node after the range needs merging\n      var nextTextNode = this.getAdjacentMergeableTextNode(lastNode.parentNode, true);\n      if (nextTextNode) {\n        if (!currentMerge) {\n          currentMerge = new Merge(lastNode);\n          merges.push(currentMerge);\n        }\n        currentMerge.textNodes.push(nextTextNode);\n      }\n\n      // Do the merges\n      if (merges.length) {\n        for (i = 0, len = merges.length; i < len; ++i) {\n          merges[i].doMerge();\n        }\n        // Set the range boundaries\n        range.setStart(rangeStartNode, rangeStartOffset);\n        range.setEnd(rangeEndNode, rangeEndOffset);\n      }\n    },\n    \n    getAdjacentMergeableTextNode: function(node, forward) {\n        var isTextNode = (node.nodeType == wysihtml5.TEXT_NODE);\n        var el = isTextNode ? node.parentNode : node;\n        var adjacentNode;\n        var propName = forward ? \"nextSibling\" : \"previousSibling\";\n        if (isTextNode) {\n          // Can merge if the node's previous/next sibling is a text node\n          adjacentNode = node[propName];\n          if (adjacentNode && adjacentNode.nodeType == wysihtml5.TEXT_NODE) {\n            return adjacentNode;\n          }\n        } else {\n          // Compare element with its sibling\n          adjacentNode = el[propName];\n          if (adjacentNode && this.areElementsMergeable(node, adjacentNode)) {\n            return adjacentNode[forward ? \"firstChild\" : \"lastChild\"];\n          }\n        }\n        return null;\n    },\n    \n    areElementsMergeable: function(el1, el2) {\n      return rangy.dom.arrayContains(this.tagNames, (el1.tagName || \"\").toLowerCase())\n        && rangy.dom.arrayContains(this.tagNames, (el2.tagName || \"\").toLowerCase())\n        && hasSameClasses(el1, el2)\n        && elementsHaveSameNonClassAttributes(el1, el2);\n    },\n\n    createContainer: function(doc) {\n      var el = doc.createElement(this.tagNames[0]);\n      if (this.cssClass) {\n        el.className = this.cssClass;\n      }\n      return el;\n    },\n\n    applyToTextNode: function(textNode) {\n      var parent = textNode.parentNode;\n      if (parent.childNodes.length == 1 && rangy.dom.arrayContains(this.tagNames, parent.tagName.toLowerCase())) {\n        if (this.cssClass) {\n          addClass(parent, this.cssClass, this.similarClassRegExp);\n        }\n      } else {\n        var el = this.createContainer(rangy.dom.getDocument(textNode));\n        textNode.parentNode.insertBefore(el, textNode);\n        el.appendChild(textNode);\n      }\n    },\n\n    isRemovable: function(el) {\n      return rangy.dom.arrayContains(this.tagNames, el.tagName.toLowerCase()) && wysihtml5.lang.string(el.className).trim() == this.cssClass;\n    },\n\n    undoToTextNode: function(textNode, range, ancestorWithClass) {\n      if (!range.containsNode(ancestorWithClass)) {\n        // Split out the portion of the ancestor from which we can remove the CSS class\n        var ancestorRange = range.cloneRange();\n        ancestorRange.selectNode(ancestorWithClass);\n\n        if (ancestorRange.isPointInRange(range.endContainer, range.endOffset) && isSplitPoint(range.endContainer, range.endOffset)) {\n          splitNodeAt(ancestorWithClass, range.endContainer, range.endOffset);\n          range.setEndAfter(ancestorWithClass);\n        }\n        if (ancestorRange.isPointInRange(range.startContainer, range.startOffset) && isSplitPoint(range.startContainer, range.startOffset)) {\n          ancestorWithClass = splitNodeAt(ancestorWithClass, range.startContainer, range.startOffset);\n        }\n      }\n      \n      if (this.similarClassRegExp) {\n        removeClass(ancestorWithClass, this.similarClassRegExp);\n      }\n      if (this.isRemovable(ancestorWithClass)) {\n        replaceWithOwnChildren(ancestorWithClass);\n      }\n    },\n\n    applyToRange: function(range) {\n        var textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n        if (!textNodes.length) {\n          try {\n            var node = this.createContainer(range.endContainer.ownerDocument);\n            range.surroundContents(node);\n            this.selectNode(range, node);\n            return;\n          } catch(e) {}\n        }\n        \n        range.splitBoundaries();\n        textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n        \n        if (textNodes.length) {\n          var textNode;\n\n          for (var i = 0, len = textNodes.length; i < len; ++i) {\n            textNode = textNodes[i];\n            if (!this.getAncestorWithClass(textNode)) {\n              this.applyToTextNode(textNode);\n            }\n          }\n          \n          range.setStart(textNodes[0], 0);\n          textNode = textNodes[textNodes.length - 1];\n          range.setEnd(textNode, textNode.length);\n          \n          if (this.normalize) {\n            this.postApply(textNodes, range);\n          }\n        }\n    },\n\n    undoToRange: function(range) {\n      var textNodes = range.getNodes([wysihtml5.TEXT_NODE]), textNode, ancestorWithClass;\n      if (textNodes.length) {\n        range.splitBoundaries();\n        textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n      } else {\n        var doc = range.endContainer.ownerDocument,\n            node = doc.createTextNode(wysihtml5.INVISIBLE_SPACE);\n        range.insertNode(node);\n        range.selectNode(node);\n        textNodes = [node];\n      }\n      \n      for (var i = 0, len = textNodes.length; i < len; ++i) {\n        textNode = textNodes[i];\n        ancestorWithClass = this.getAncestorWithClass(textNode);\n        if (ancestorWithClass) {\n          this.undoToTextNode(textNode, range, ancestorWithClass);\n        }\n      }\n      \n      if (len == 1) {\n        this.selectNode(range, textNodes[0]);\n      } else {\n        range.setStart(textNodes[0], 0);\n        textNode = textNodes[textNodes.length - 1];\n        range.setEnd(textNode, textNode.length);\n\n        if (this.normalize) {\n          this.postApply(textNodes, range);\n        }\n      }\n    },\n    \n    selectNode: function(range, node) {\n      var isElement       = node.nodeType === wysihtml5.ELEMENT_NODE,\n          canHaveHTML     = \"canHaveHTML\" in node ? node.canHaveHTML : true,\n          content         = isElement ? node.innerHTML : node.data,\n          isEmpty         = (content === \"\" || content === wysihtml5.INVISIBLE_SPACE);\n\n      if (isEmpty && isElement && canHaveHTML) {\n        // Make sure that caret is visible in node by inserting a zero width no breaking space\n        try { node.innerHTML = wysihtml5.INVISIBLE_SPACE; } catch(e) {}\n      }\n      range.selectNodeContents(node);\n      if (isEmpty && isElement) {\n        range.collapse(false);\n      } else if (isEmpty) {\n        range.setStartAfter(node);\n        range.setEndAfter(node);\n      }\n    },\n    \n    getTextSelectedByRange: function(textNode, range) {\n      var textRange = range.cloneRange();\n      textRange.selectNodeContents(textNode);\n\n      var intersectionRange = textRange.intersection(range);\n      var text = intersectionRange ? intersectionRange.toString() : \"\";\n      textRange.detach();\n\n      return text;\n    },\n\n    isAppliedToRange: function(range) {\n      var ancestors = [],\n          ancestor,\n          textNodes = range.getNodes([wysihtml5.TEXT_NODE]);\n      if (!textNodes.length) {\n        ancestor = this.getAncestorWithClass(range.startContainer);\n        return ancestor ? [ancestor] : false;\n      }\n      \n      for (var i = 0, len = textNodes.length, selectedText; i < len; ++i) {\n        selectedText = this.getTextSelectedByRange(textNodes[i], range);\n        ancestor = this.getAncestorWithClass(textNodes[i]);\n        if (selectedText != \"\" && !ancestor) {\n          return false;\n        } else {\n          ancestors.push(ancestor);\n        }\n      }\n      return ancestors;\n    },\n\n    toggleRange: function(range) {\n      if (this.isAppliedToRange(range)) {\n        this.undoToRange(range);\n      } else {\n        this.applyToRange(range);\n      }\n    }\n  };\n\n  wysihtml5.selection.HTMLApplier = HTMLApplier;\n  \n})(wysihtml5, rangy);/**\n * Rich Text Query/Formatting Commands\n * \n * @example\n *    var commands = new wysihtml5.Commands(editor);\n */\nwysihtml5.Commands = Base.extend(\n  /** @scope wysihtml5.Commands.prototype */ {\n  constructor: function(editor) {\n    this.editor   = editor;\n    this.composer = editor.composer;\n    this.doc      = this.composer.doc;\n  },\n  \n  /**\n   * Check whether the browser supports the given command\n   *\n   * @param {String} command The command string which to check (eg. \"bold\", \"italic\", \"insertUnorderedList\")\n   * @example\n   *    commands.supports(\"createLink\");\n   */\n  support: function(command) {\n    return wysihtml5.browser.supportsCommand(this.doc, command);\n  },\n  \n  /**\n   * Check whether the browser supports the given command\n   *\n   * @param {String} command The command string which to execute (eg. \"bold\", \"italic\", \"insertUnorderedList\")\n   * @param {String} [value] The command value parameter, needed for some commands (\"createLink\", \"insertImage\", ...), optional for commands that don't require one (\"bold\", \"underline\", ...)\n   * @example\n   *    commands.exec(\"insertImage\", \"http://a1.twimg.com/profile_images/113868655/schrei_twitter_reasonably_small.jpg\");\n   */\n  exec: function(command, value) {\n    var obj     = wysihtml5.commands[command],\n        args    = wysihtml5.lang.array(arguments).get(),\n        method  = obj && obj.exec,\n        result  = null;\n    \n    this.editor.fire(\"beforecommand:composer\");\n    \n    if (method) {\n      args.unshift(this.composer);\n      result = method.apply(obj, args);\n    } else {\n      try {\n        // try/catch for buggy firefox\n        result = this.doc.execCommand(command, false, value);\n      } catch(e) {}\n    }\n    \n    this.editor.fire(\"aftercommand:composer\");\n    return result;\n  },\n  \n  /**\n   * Check whether the current command is active\n   * If the caret is within a bold text, then calling this with command \"bold\" should return true\n   *\n   * @param {String} command The command string which to check (eg. \"bold\", \"italic\", \"insertUnorderedList\")\n   * @param {String} [commandValue] The command value parameter (eg. for \"insertImage\" the image src)\n   * @return {Boolean} Whether the command is active\n   * @example\n   *    var isCurrentSelectionBold = commands.state(\"bold\");\n   */\n  state: function(command, commandValue) {\n    var obj     = wysihtml5.commands[command],\n        args    = wysihtml5.lang.array(arguments).get(),\n        method  = obj && obj.state;\n    if (method) {\n      args.unshift(this.composer);\n      return method.apply(obj, args);\n    } else {\n      try {\n        // try/catch for buggy firefox\n        return this.doc.queryCommandState(command);\n      } catch(e) {\n        return false;\n      }\n    }\n  },\n  \n  /**\n   * Get the current command's value\n   *\n   * @param {String} command The command string which to check (eg. \"formatBlock\")\n   * @return {String} The command value\n   * @example\n   *    var currentBlockElement = commands.value(\"formatBlock\");\n   */\n  value: function(command) {\n    var obj     = wysihtml5.commands[command],\n        method  = obj && obj.value;\n    if (method) {\n      return method.call(obj, this.composer, command);\n    } else {\n      try {\n        // try/catch for buggy firefox\n        return this.doc.queryCommandValue(command);\n      } catch(e) {\n        return null;\n      }\n    }\n  }\n});\n(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.bold = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"b\");\n    },\n\n    state: function(composer, command, color) {\n      // element.ownerDocument.queryCommandState(\"bold\") results:\n      // firefox: only <b>\n      // chrome:  <b>, <strong>, <h1>, <h2>, ...\n      // ie:      <b>, <strong>\n      // opera:   <b>, <strong>\n      return wysihtml5.commands.formatInline.state(composer, command, \"b\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);\n\n(function(wysihtml5) {\n  var undef,\n      NODE_NAME = \"A\",\n      dom       = wysihtml5.dom;\n  \n  function _removeFormat(composer, anchors) {\n    var length  = anchors.length,\n        i       = 0,\n        anchor,\n        codeElement,\n        textContent;\n    for (; i<length; i++) {\n      anchor      = anchors[i];\n      codeElement = dom.getParentElement(anchor, { nodeName: \"code\" });\n      textContent = dom.getTextContent(anchor);\n\n      // if <a> contains url-like text content, rename it to <code> to prevent re-autolinking\n      // else replace <a> with its childNodes\n      if (textContent.match(dom.autoLink.URL_REG_EXP) && !codeElement) {\n        // <code> element is used to prevent later auto-linking of the content\n        codeElement = dom.renameElement(anchor, \"code\");\n      } else {\n        dom.replaceWithChildNodes(anchor);\n      }\n    }\n  }\n\n  function _format(composer, attributes) {\n    var doc             = composer.doc,\n        tempClass       = \"_wysihtml5-temp-\" + (+new Date()),\n        tempClassRegExp = /non-matching-class/g,\n        i               = 0,\n        length,\n        anchors,\n        anchor,\n        hasElementChild,\n        isEmpty,\n        elementToSetCaretAfter,\n        textContent,\n        whiteSpace,\n        j;\n    wysihtml5.commands.formatInline.exec(composer, undef, NODE_NAME, tempClass, tempClassRegExp);\n    anchors = doc.querySelectorAll(NODE_NAME + \".\" + tempClass);\n    length  = anchors.length;\n    for (; i<length; i++) {\n      anchor = anchors[i];\n      anchor.removeAttribute(\"class\");\n      for (j in attributes) {\n        anchor.setAttribute(j, attributes[j]);\n      }\n    }\n\n    elementToSetCaretAfter = anchor;\n    if (length === 1) {\n      textContent = dom.getTextContent(anchor);\n      hasElementChild = !!anchor.querySelector(\"*\");\n      isEmpty = textContent === \"\" || textContent === wysihtml5.INVISIBLE_SPACE;\n      if (!hasElementChild && isEmpty) {\n        dom.setTextContent(anchor, attributes.text || anchor.href);\n        whiteSpace = doc.createTextNode(\" \");\n        composer.selection.setAfter(anchor);\n        composer.selection.insertNode(whiteSpace);\n        elementToSetCaretAfter = whiteSpace;\n      }\n    }\n    composer.selection.setAfter(elementToSetCaretAfter);\n  }\n  \n  wysihtml5.commands.createLink = {\n    /**\n     * TODO: Use HTMLApplier or formatInline here\n     *\n     * Turns selection into a link\n     * If selection is already a link, it removes the link and wraps it with a <code> element\n     * The <code> element is needed to avoid auto linking\n     * \n     * @example\n     *    // either ...\n     *    wysihtml5.commands.createLink.exec(composer, \"createLink\", \"http://www.google.de\");\n     *    // ... or ...\n     *    wysihtml5.commands.createLink.exec(composer, \"createLink\", { href: \"http://www.google.de\", target: \"_blank\" });\n     */\n    exec: function(composer, command, value) {\n      var anchors = this.state(composer, command);\n      if (anchors) {\n        // Selection contains links\n        composer.selection.executeAndRestore(function() {\n          _removeFormat(composer, anchors);\n        });\n      } else {\n        // Create links\n        value = typeof(value) === \"object\" ? value : { href: value };\n        _format(composer, value);\n      }\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"A\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);/**\n * document.execCommand(\"fontSize\") will create either inline styles (firefox, chrome) or use font tags\n * which we don't want\n * Instead we set a css class\n */\n(function(wysihtml5) {\n  var undef,\n      REG_EXP = /wysiwyg-font-size-[a-z\\-]+/g;\n  \n  wysihtml5.commands.fontSize = {\n    exec: function(composer, command, size) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"span\", \"wysiwyg-font-size-\" + size, REG_EXP);\n    },\n\n    state: function(composer, command, size) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"span\", \"wysiwyg-font-size-\" + size, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);\n/**\n * document.execCommand(\"foreColor\") will create either inline styles (firefox, chrome) or use font tags\n * which we don't want\n * Instead we set a css class\n */\n(function(wysihtml5) {\n  var undef,\n      REG_EXP = /wysiwyg-color-[a-z]+/g;\n  \n  wysihtml5.commands.foreColor = {\n    exec: function(composer, command, color) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"span\", \"wysiwyg-color-\" + color, REG_EXP);\n    },\n\n    state: function(composer, command, color) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"span\", \"wysiwyg-color-\" + color, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      dom                     = wysihtml5.dom,\n      DEFAULT_NODE_NAME       = \"DIV\",\n      // Following elements are grouped\n      // when the caret is within a H1 and the H4 is invoked, the H1 should turn into H4\n      // instead of creating a H4 within a H1 which would result in semantically invalid html\n      BLOCK_ELEMENTS_GROUP    = [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\", \"P\", \"BLOCKQUOTE\", DEFAULT_NODE_NAME];\n  \n  /**\n   * Remove similiar classes (based on classRegExp)\n   * and add the desired class name\n   */\n  function _addClass(element, className, classRegExp) {\n    if (element.className) {\n      _removeClass(element, classRegExp);\n      element.className += \" \" + className;\n    } else {\n      element.className = className;\n    }\n  }\n\n  function _removeClass(element, classRegExp) {\n    element.className = element.className.replace(classRegExp, \"\");\n  }\n\n  /**\n   * Check whether given node is a text node and whether it's empty\n   */\n  function _isBlankTextNode(node) {\n    return node.nodeType === wysihtml5.TEXT_NODE && !wysihtml5.lang.string(node.data).trim();\n  }\n\n  /**\n   * Returns previous sibling node that is not a blank text node\n   */\n  function _getPreviousSiblingThatIsNotBlank(node) {\n    var previousSibling = node.previousSibling;\n    while (previousSibling && _isBlankTextNode(previousSibling)) {\n      previousSibling = previousSibling.previousSibling;\n    }\n    return previousSibling;\n  }\n\n  /**\n   * Returns next sibling node that is not a blank text node\n   */\n  function _getNextSiblingThatIsNotBlank(node) {\n    var nextSibling = node.nextSibling;\n    while (nextSibling && _isBlankTextNode(nextSibling)) {\n      nextSibling = nextSibling.nextSibling;\n    }\n    return nextSibling;\n  }\n\n  /**\n   * Adds line breaks before and after the given node if the previous and next siblings\n   * aren't already causing a visual line break (block element or <br>)\n   */\n  function _addLineBreakBeforeAndAfter(node) {\n    var doc             = node.ownerDocument,\n        nextSibling     = _getNextSiblingThatIsNotBlank(node),\n        previousSibling = _getPreviousSiblingThatIsNotBlank(node);\n\n    if (nextSibling && !_isLineBreakOrBlockElement(nextSibling)) {\n      node.parentNode.insertBefore(doc.createElement(\"br\"), nextSibling);\n    }\n    if (previousSibling && !_isLineBreakOrBlockElement(previousSibling)) {\n      node.parentNode.insertBefore(doc.createElement(\"br\"), node);\n    }\n  }\n\n  /**\n   * Removes line breaks before and after the given node\n   */\n  function _removeLineBreakBeforeAndAfter(node) {\n    var nextSibling     = _getNextSiblingThatIsNotBlank(node),\n        previousSibling = _getPreviousSiblingThatIsNotBlank(node);\n\n    if (nextSibling && _isLineBreak(nextSibling)) {\n      nextSibling.parentNode.removeChild(nextSibling);\n    }\n    if (previousSibling && _isLineBreak(previousSibling)) {\n      previousSibling.parentNode.removeChild(previousSibling);\n    }\n  }\n\n  function _removeLastChildIfLineBreak(node) {\n    var lastChild = node.lastChild;\n    if (lastChild && _isLineBreak(lastChild)) {\n      lastChild.parentNode.removeChild(lastChild);\n    }\n  }\n\n  function _isLineBreak(node) {\n    return node.nodeName === \"BR\";\n  }\n\n  /**\n   * Checks whether the elment causes a visual line break\n   * (<br> or block elements)\n   */\n  function _isLineBreakOrBlockElement(element) {\n    if (_isLineBreak(element)) {\n      return true;\n    }\n\n    if (dom.getStyle(\"display\").from(element) === \"block\") {\n      return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Execute native query command\n   * and if necessary modify the inserted node's className\n   */\n  function _execCommand(doc, command, nodeName, className) {\n    if (className) {\n      var eventListener = dom.observe(doc, \"DOMNodeInserted\", function(event) {\n        var target = event.target,\n            displayStyle;\n        if (target.nodeType !== wysihtml5.ELEMENT_NODE) {\n          return;\n        }\n        displayStyle = dom.getStyle(\"display\").from(target);\n        if (displayStyle.substr(0, 6) !== \"inline\") {\n          // Make sure that only block elements receive the given class\n          target.className += \" \" + className;\n        }\n      });\n    }\n    doc.execCommand(command, false, nodeName);\n    if (eventListener) {\n      eventListener.stop();\n    }\n  }\n\n  function _selectLineAndWrap(composer, element) {\n    composer.selection.selectLine();\n    composer.selection.surround(element);\n    _removeLineBreakBeforeAndAfter(element);\n    _removeLastChildIfLineBreak(element);\n    composer.selection.selectNode(element);\n  }\n\n  function _hasClasses(element) {\n    return !!wysihtml5.lang.string(element.className).trim();\n  }\n  \n  wysihtml5.commands.formatBlock = {\n    exec: function(composer, command, nodeName, className, classRegExp) {\n      var doc          = composer.doc,\n          blockElement = this.state(composer, command, nodeName, className, classRegExp),\n          selectedNode;\n\n      nodeName = typeof(nodeName) === \"string\" ? nodeName.toUpperCase() : nodeName;\n\n      if (blockElement) {\n        composer.selection.executeAndRestoreSimple(function() {\n          if (classRegExp) {\n            _removeClass(blockElement, classRegExp);\n          }\n          var hasClasses = _hasClasses(blockElement);\n          if (!hasClasses && blockElement.nodeName === (nodeName || DEFAULT_NODE_NAME)) {\n            // Insert a line break afterwards and beforewards when there are siblings\n            // that are not of type line break or block element\n            _addLineBreakBeforeAndAfter(blockElement);\n            dom.replaceWithChildNodes(blockElement);\n          } else if (hasClasses) {\n            // Make sure that styling is kept by renaming the element to <div> and copying over the class name\n            dom.renameElement(blockElement, DEFAULT_NODE_NAME);\n          }\n        });\n        return;\n      }\n\n      // Find similiar block element and rename it (<h2 class=\"foo\"></h2>  =>  <h1 class=\"foo\"></h1>)\n      if (nodeName === null || wysihtml5.lang.array(BLOCK_ELEMENTS_GROUP).contains(nodeName)) {\n        selectedNode = composer.selection.getSelectedNode();\n        blockElement = dom.getParentElement(selectedNode, {\n          nodeName: BLOCK_ELEMENTS_GROUP\n        });\n\n        if (blockElement) {\n          composer.selection.executeAndRestoreSimple(function() {\n            // Rename current block element to new block element and add class\n            if (nodeName) {\n              blockElement = dom.renameElement(blockElement, nodeName);\n            }\n            if (className) {\n              _addClass(blockElement, className, classRegExp);\n            }\n          });\n          return;\n        }\n      }\n\n      if (composer.commands.support(command)) {\n        _execCommand(doc, command, nodeName || DEFAULT_NODE_NAME, className);\n        return;\n      }\n\n      blockElement = doc.createElement(nodeName || DEFAULT_NODE_NAME);\n      if (className) {\n        blockElement.className = className;\n      }\n      _selectLineAndWrap(composer, blockElement);\n    },\n\n    state: function(composer, command, nodeName, className, classRegExp) {\n      nodeName = typeof(nodeName) === \"string\" ? nodeName.toUpperCase() : nodeName;\n      var selectedNode = composer.selection.getSelectedNode();\n      return dom.getParentElement(selectedNode, {\n        nodeName:     nodeName,\n        className:    className,\n        classRegExp:  classRegExp\n      });\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);/**\n * formatInline scenarios for tag \"B\" (| = caret, |foo| = selected text)\n *\n *   #1 caret in unformatted text:\n *      abcdefg|\n *   output:\n *      abcdefg<b>|</b>\n *   \n *   #2 unformatted text selected:\n *      abc|deg|h\n *   output:\n *      abc<b>|deg|</b>h\n *   \n *   #3 unformatted text selected across boundaries:\n *      ab|c <span>defg|h</span>\n *   output:\n *      ab<b>|c </b><span><b>defg</b>|h</span>\n *\n *   #4 formatted text entirely selected\n *      <b>|abc|</b>\n *   output:\n *      |abc|\n *\n *   #5 formatted text partially selected\n *      <b>ab|c|</b>\n *   output:\n *      <b>ab</b>|c|\n *\n *   #6 formatted text selected across boundaries\n *      <span>ab|c</span> <b>de|fgh</b>\n *   output:\n *      <span>ab|c</span> de|<b>fgh</b>\n */\n(function(wysihtml5) {\n  var undef,\n      // Treat <b> as <strong> and vice versa\n      ALIAS_MAPPING = {\n        \"strong\": \"b\",\n        \"em\":     \"i\",\n        \"b\":      \"strong\",\n        \"i\":      \"em\"\n      },\n      htmlApplier = {};\n  \n  function _getTagNames(tagName) {\n    var alias = ALIAS_MAPPING[tagName];\n    return alias ? [tagName.toLowerCase(), alias.toLowerCase()] : [tagName.toLowerCase()];\n  }\n  \n  function _getApplier(tagName, className, classRegExp) {\n    var identifier = tagName + \":\" + className;\n    if (!htmlApplier[identifier]) {\n      htmlApplier[identifier] = new wysihtml5.selection.HTMLApplier(_getTagNames(tagName), className, classRegExp, true);\n    }\n    return htmlApplier[identifier];\n  }\n  \n  wysihtml5.commands.formatInline = {\n    exec: function(composer, command, tagName, className, classRegExp) {\n      var range = composer.selection.getRange();\n      if (!range) {\n        return false;\n      }\n      _getApplier(tagName, className, classRegExp).toggleRange(range);\n      composer.selection.setSelection(range);\n    },\n\n    state: function(composer, command, tagName, className, classRegExp) {\n      var doc           = composer.doc,\n          aliasTagName  = ALIAS_MAPPING[tagName] || tagName,\n          range;\n\n      // Check whether the document contains a node with the desired tagName\n      if (!wysihtml5.dom.hasElementWithTagName(doc, tagName) &&\n          !wysihtml5.dom.hasElementWithTagName(doc, aliasTagName)) {\n        return false;\n      }\n\n       // Check whether the document contains a node with the desired className\n      if (className && !wysihtml5.dom.hasElementWithClassName(doc, className)) {\n         return false;\n      }\n\n      range = composer.selection.getRange();\n      if (!range) {\n        return false;\n      }\n\n      return _getApplier(tagName, className, classRegExp).isAppliedToRange(range);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.insertHTML = {\n    exec: function(composer, command, html) {\n      if (composer.commands.support(command)) {\n        composer.doc.execCommand(command, false, html);\n      } else {\n        composer.selection.insertHTML(html);\n      }\n    },\n\n    state: function() {\n      return false;\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var NODE_NAME = \"IMG\";\n  \n  wysihtml5.commands.insertImage = {\n    /**\n     * Inserts an <img>\n     * If selection is already an image link, it removes it\n     * \n     * @example\n     *    // either ...\n     *    wysihtml5.commands.insertImage.exec(composer, \"insertImage\", \"http://www.google.de/logo.jpg\");\n     *    // ... or ...\n     *    wysihtml5.commands.insertImage.exec(composer, \"insertImage\", { src: \"http://www.google.de/logo.jpg\", title: \"foo\" });\n     */\n    exec: function(composer, command, value) {\n      value = typeof(value) === \"object\" ? value : { src: value };\n\n      var doc     = composer.doc,\n          image   = this.state(composer),\n          textNode,\n          i,\n          parent;\n\n      if (image) {\n        // Image already selected, set the caret before it and delete it\n        composer.selection.setBefore(image);\n        parent = image.parentNode;\n        parent.removeChild(image);\n\n        // and it's parent <a> too if it hasn't got any other relevant child nodes\n        wysihtml5.dom.removeEmptyTextNodes(parent);\n        if (parent.nodeName === \"A\" && !parent.firstChild) {\n          composer.selection.setAfter(parent);\n          parent.parentNode.removeChild(parent);\n        }\n\n        // firefox and ie sometimes don't remove the image handles, even though the image got removed\n        wysihtml5.quirks.redraw(composer.element);\n        return;\n      }\n\n      image = doc.createElement(NODE_NAME);\n\n      for (i in value) {\n        image[i] = value[i];\n      }\n\n      composer.selection.insertNode(image);\n      if (wysihtml5.browser.hasProblemsSettingCaretAfterImg()) {\n        textNode = doc.createTextNode(wysihtml5.INVISIBLE_SPACE);\n        composer.selection.insertNode(textNode);\n        composer.selection.setAfter(textNode);\n      } else {\n        composer.selection.setAfter(image);\n      }\n    },\n\n    state: function(composer) {\n      var doc = composer.doc,\n          selectedNode,\n          text,\n          imagesInSelection;\n\n      if (!wysihtml5.dom.hasElementWithTagName(doc, NODE_NAME)) {\n        return false;\n      }\n\n      selectedNode = composer.selection.getSelectedNode();\n      if (!selectedNode) {\n        return false;\n      }\n\n      if (selectedNode.nodeName === NODE_NAME) {\n        // This works perfectly in IE\n        return selectedNode;\n      }\n\n      if (selectedNode.nodeType !== wysihtml5.ELEMENT_NODE) {\n        return false;\n      }\n\n      text = composer.selection.getText();\n      text = wysihtml5.lang.string(text).trim();\n      if (text) {\n        return false;\n      }\n\n      imagesInSelection = composer.selection.getNodes(wysihtml5.ELEMENT_NODE, function(node) {\n        return node.nodeName === \"IMG\";\n      });\n\n      if (imagesInSelection.length !== 1) {\n        return false;\n      }\n\n      return imagesInSelection[0];\n    },\n\n    value: function(composer) {\n      var image = this.state(composer);\n      return image && image.src;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      LINE_BREAK = \"<br>\" + (wysihtml5.browser.needsSpaceAfterLineBreak() ? \" \" : \"\");\n  \n  wysihtml5.commands.insertLineBreak = {\n    exec: function(composer, command) {\n      if (composer.commands.support(command)) {\n        composer.doc.execCommand(command, false, null);\n        if (!wysihtml5.browser.autoScrollsToCaret()) {\n          composer.selection.scrollIntoView();\n        }\n      } else {\n        composer.commands.exec(\"insertHTML\", LINE_BREAK);\n      }\n    },\n\n    state: function() {\n      return false;\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.insertOrderedList = {\n    exec: function(composer, command) {\n      var doc           = composer.doc,\n          selectedNode  = composer.selection.getSelectedNode(),\n          list          = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"OL\" }),\n          otherList     = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"UL\" }),\n          tempClassName =  \"_wysihtml5-temp-\" + new Date().getTime(),\n          isEmpty,\n          tempElement;\n      \n      if (composer.commands.support(command)) {\n        doc.execCommand(command, false, null);\n        return;\n      }\n      \n      if (list) {\n        // Unwrap list\n        // <ol><li>foo</li><li>bar</li></ol>\n        // becomes:\n        // foo<br>bar<br>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.resolveList(list);\n        });\n      } else if (otherList) {\n        // Turn an unordered list into an ordered list\n        // <ul><li>foo</li><li>bar</li></ul>\n        // becomes:\n        // <ol><li>foo</li><li>bar</li></ol>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.renameElement(otherList, \"ol\");\n        });\n      } else {\n        // Create list\n        composer.commands.exec(\"formatBlock\", \"div\", tempClassName);\n        tempElement = doc.querySelector(\".\" + tempClassName);\n        isEmpty = tempElement.innerHTML === \"\" || tempElement.innerHTML === wysihtml5.INVISIBLE_SPACE;\n        composer.selection.executeAndRestoreSimple(function() {\n          list = wysihtml5.dom.convertToList(tempElement, \"ol\");\n        });\n        if (isEmpty) {\n          composer.selection.selectNode(list.querySelector(\"li\"));\n        }\n      }\n    },\n    \n    state: function(composer) {\n      var selectedNode = composer.selection.getSelectedNode();\n      return wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"OL\" });\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.insertUnorderedList = {\n    exec: function(composer, command) {\n      var doc           = composer.doc,\n          selectedNode  = composer.selection.getSelectedNode(),\n          list          = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"UL\" }),\n          otherList     = wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"OL\" }),\n          tempClassName =  \"_wysihtml5-temp-\" + new Date().getTime(),\n          isEmpty,\n          tempElement;\n      \n      if (composer.commands.support(command)) {\n        doc.execCommand(command, false, null);\n        return;\n      }\n      \n      if (list) {\n        // Unwrap list\n        // <ul><li>foo</li><li>bar</li></ul>\n        // becomes:\n        // foo<br>bar<br>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.resolveList(list);\n        });\n      } else if (otherList) {\n        // Turn an ordered list into an unordered list\n        // <ol><li>foo</li><li>bar</li></ol>\n        // becomes:\n        // <ul><li>foo</li><li>bar</li></ul>\n        composer.selection.executeAndRestoreSimple(function() {\n          wysihtml5.dom.renameElement(otherList, \"ul\");\n        });\n      } else {\n        // Create list\n        composer.commands.exec(\"formatBlock\", \"div\", tempClassName);\n        tempElement = doc.querySelector(\".\" + tempClassName);\n        isEmpty = tempElement.innerHTML === \"\" || tempElement.innerHTML === wysihtml5.INVISIBLE_SPACE;\n        composer.selection.executeAndRestoreSimple(function() {\n          list = wysihtml5.dom.convertToList(tempElement, \"ul\");\n        });\n        if (isEmpty) {\n          composer.selection.selectNode(list.querySelector(\"li\"));\n        }\n      }\n    },\n    \n    state: function(composer) {\n      var selectedNode = composer.selection.getSelectedNode();\n      return wysihtml5.dom.getParentElement(selectedNode, { nodeName: \"UL\" });\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  \n  wysihtml5.commands.italic = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"i\");\n    },\n\n    state: function(composer, command, color) {\n      // element.ownerDocument.queryCommandState(\"italic\") results:\n      // firefox: only <i>\n      // chrome:  <i>, <em>, <blockquote>, ...\n      // ie:      <i>, <em>\n      // opera:   only <i>\n      return wysihtml5.commands.formatInline.state(composer, command, \"i\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      CLASS_NAME  = \"wysiwyg-text-align-center\",\n      REG_EXP     = /wysiwyg-text-align-[a-z]+/g;\n  \n  wysihtml5.commands.justifyCenter = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatBlock.exec(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatBlock.state(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      CLASS_NAME  = \"wysiwyg-text-align-left\",\n      REG_EXP     = /wysiwyg-text-align-[a-z]+/g;\n  \n  wysihtml5.commands.justifyLeft = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatBlock.exec(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatBlock.state(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef,\n      CLASS_NAME  = \"wysiwyg-text-align-right\",\n      REG_EXP     = /wysiwyg-text-align-[a-z]+/g;\n  \n  wysihtml5.commands.justifyRight = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatBlock.exec(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatBlock.state(composer, \"formatBlock\", null, CLASS_NAME, REG_EXP);\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);(function(wysihtml5) {\n  var undef;\n  wysihtml5.commands.underline = {\n    exec: function(composer, command) {\n      return wysihtml5.commands.formatInline.exec(composer, command, \"u\");\n    },\n\n    state: function(composer, command) {\n      return wysihtml5.commands.formatInline.state(composer, command, \"u\");\n    },\n\n    value: function() {\n      return undef;\n    }\n  };\n})(wysihtml5);/**\n * Undo Manager for wysihtml5\n * slightly inspired by http://rniwa.com/editing/undomanager.html#the-undomanager-interface\n */\n(function(wysihtml5) {\n  var Z_KEY               = 90,\n      Y_KEY               = 89,\n      BACKSPACE_KEY       = 8,\n      DELETE_KEY          = 46,\n      MAX_HISTORY_ENTRIES = 40,\n      UNDO_HTML           = '<span id=\"_wysihtml5-undo\" class=\"_wysihtml5-temp\">' + wysihtml5.INVISIBLE_SPACE + '</span>',\n      REDO_HTML           = '<span id=\"_wysihtml5-redo\" class=\"_wysihtml5-temp\">' + wysihtml5.INVISIBLE_SPACE + '</span>',\n      dom                 = wysihtml5.dom;\n  \n  function cleanTempElements(doc) {\n    var tempElement;\n    while (tempElement = doc.querySelector(\"._wysihtml5-temp\")) {\n      tempElement.parentNode.removeChild(tempElement);\n    }\n  }\n  \n  wysihtml5.UndoManager = wysihtml5.lang.Dispatcher.extend(\n    /** @scope wysihtml5.UndoManager.prototype */ {\n    constructor: function(editor) {\n      this.editor = editor;\n      this.composer = editor.composer;\n      this.element = this.composer.element;\n      this.history = [this.composer.getValue()];\n      this.position = 1;\n      \n      // Undo manager currently only supported in browsers who have the insertHTML command (not IE)\n      if (this.composer.commands.support(\"insertHTML\")) {\n        this._observe();\n      }\n    },\n    \n    _observe: function() {\n      var that      = this,\n          doc       = this.composer.sandbox.getDocument(),\n          lastKey;\n          \n      // Catch CTRL+Z and CTRL+Y\n      dom.observe(this.element, \"keydown\", function(event) {\n        if (event.altKey || (!event.ctrlKey && !event.metaKey)) {\n          return;\n        }\n        \n        var keyCode = event.keyCode,\n            isUndo = keyCode === Z_KEY && !event.shiftKey,\n            isRedo = (keyCode === Z_KEY && event.shiftKey) || (keyCode === Y_KEY);\n        \n        if (isUndo) {\n          that.undo();\n          event.preventDefault();\n        } else if (isRedo) {\n          that.redo();\n          event.preventDefault();\n        }\n      });\n      \n      // Catch delete and backspace\n      dom.observe(this.element, \"keydown\", function(event) {\n        var keyCode = event.keyCode;\n        if (keyCode === lastKey) {\n          return;\n        }\n        \n        lastKey = keyCode;\n        \n        if (keyCode === BACKSPACE_KEY || keyCode === DELETE_KEY) {\n          that.transact();\n        }\n      });\n      \n      // Now this is very hacky:\n      // These days browsers don't offer a undo/redo event which we could hook into\n      // to be notified when the user hits undo/redo in the contextmenu.\n      // Therefore we simply insert two elements as soon as the contextmenu gets opened.\n      // The last element being inserted will be immediately be removed again by a exexCommand(\"undo\")\n      //  => When the second element appears in the dom tree then we know the user clicked \"redo\" in the context menu\n      //  => When the first element disappears from the dom tree then we know the user clicked \"undo\" in the context menu\n      if (wysihtml5.browser.hasUndoInContextMenu()) {\n        var interval, observed, cleanUp = function() {\n          cleanTempElements(doc);\n          clearInterval(interval);\n        };\n        \n        dom.observe(this.element, \"contextmenu\", function() {\n          cleanUp();\n          that.composer.selection.executeAndRestoreSimple(function() {\n            if (that.element.lastChild) {\n              that.composer.selection.setAfter(that.element.lastChild);\n            }\n\n            // enable undo button in context menu\n            doc.execCommand(\"insertHTML\", false, UNDO_HTML);\n            // enable redo button in context menu\n            doc.execCommand(\"insertHTML\", false, REDO_HTML);\n            doc.execCommand(\"undo\", false, null);\n          });\n\n          interval = setInterval(function() {\n            if (doc.getElementById(\"_wysihtml5-redo\")) {\n              cleanUp();\n              that.redo();\n            } else if (!doc.getElementById(\"_wysihtml5-undo\")) {\n              cleanUp();\n              that.undo();\n            }\n          }, 400);\n\n          if (!observed) {\n            observed = true;\n            dom.observe(document, \"mousedown\", cleanUp);\n            dom.observe(doc, [\"mousedown\", \"paste\", \"cut\", \"copy\"], cleanUp);\n          }\n        });\n      }\n      \n      this.editor\n        .observe(\"newword:composer\", function() {\n          that.transact();\n        })\n        \n        .observe(\"beforecommand:composer\", function() {\n          that.transact();\n        });\n    },\n    \n    transact: function() {\n      var previousHtml  = this.history[this.position - 1],\n          currentHtml   = this.composer.getValue();\n      \n      if (currentHtml == previousHtml) {\n        return;\n      }\n      \n      var length = this.history.length = this.position;\n      if (length > MAX_HISTORY_ENTRIES) {\n        this.history.shift();\n        this.position--;\n      }\n      \n      this.position++;\n      this.history.push(currentHtml);\n    },\n    \n    undo: function() {\n      this.transact();\n      \n      if (this.position <= 1) {\n        return;\n      }\n      \n      this.set(this.history[--this.position - 1]);\n      this.editor.fire(\"undo:composer\");\n    },\n    \n    redo: function() {\n      if (this.position >= this.history.length) {\n        return;\n      }\n      \n      this.set(this.history[++this.position - 1]);\n      this.editor.fire(\"redo:composer\");\n    },\n    \n    set: function(html) {\n      this.composer.setValue(html);\n      this.editor.focus(true);\n    }\n  });\n})(wysihtml5);\n/**\n * TODO: the following methods still need unit test coverage\n */\nwysihtml5.views.View = Base.extend(\n  /** @scope wysihtml5.views.View.prototype */ {\n  constructor: function(parent, textareaElement, config) {\n    this.parent   = parent;\n    this.element  = textareaElement;\n    this.config   = config;\n    \n    this._observeViewChange();\n  },\n  \n  _observeViewChange: function() {\n    var that = this;\n    this.parent.observe(\"beforeload\", function() {\n      that.parent.observe(\"change_view\", function(view) {\n        if (view === that.name) {\n          that.parent.currentView = that;\n          that.show();\n          // Using tiny delay here to make sure that the placeholder is set before focusing\n          setTimeout(function() { that.focus(); }, 0);\n        } else {\n          that.hide();\n        }\n      });\n    });\n  },\n  \n  focus: function() {\n    if (this.element.ownerDocument.querySelector(\":focus\") === this.element) {\n      return;\n    }\n    \n    try { this.element.focus(); } catch(e) {}\n  },\n  \n  hide: function() {\n    this.element.style.display = \"none\";\n  },\n  \n  show: function() {\n    this.element.style.display = \"\";\n  },\n  \n  disable: function() {\n    this.element.setAttribute(\"disabled\", \"disabled\");\n  },\n  \n  enable: function() {\n    this.element.removeAttribute(\"disabled\");\n  }\n});(function(wysihtml5) {\n  var dom       = wysihtml5.dom,\n      browser   = wysihtml5.browser;\n  \n  wysihtml5.views.Composer = wysihtml5.views.View.extend(\n    /** @scope wysihtml5.views.Composer.prototype */ {\n    name: \"composer\",\n\n    // Needed for firefox in order to display a proper caret in an empty contentEditable\n    CARET_HACK: \"<br>\",\n\n    constructor: function(parent, textareaElement, config) {\n      this.base(parent, textareaElement, config);\n      this.textarea = this.parent.textarea;\n      this._initSandbox();\n    },\n\n    clear: function() {\n      this.element.innerHTML = browser.displaysCaretInEmptyContentEditableCorrectly() ? \"\" : this.CARET_HACK;\n    },\n\n    getValue: function(parse) {\n      var value = this.isEmpty() ? \"\" : wysihtml5.quirks.getCorrectInnerHTML(this.element);\n      \n      if (parse) {\n        value = this.parent.parse(value);\n      }\n\n      // Replace all \"zero width no breaking space\" chars\n      // which are used as hacks to enable some functionalities\n      // Also remove all CARET hacks that somehow got left\n      value = wysihtml5.lang.string(value).replace(wysihtml5.INVISIBLE_SPACE).by(\"\");\n\n      return value;\n    },\n\n    setValue: function(html, parse) {\n      if (parse) {\n        html = this.parent.parse(html);\n      }\n      this.element.innerHTML = html;\n    },\n\n    show: function() {\n      this.iframe.style.display = this._displayStyle || \"\";\n\n      // Firefox needs this, otherwise contentEditable becomes uneditable\n      this.disable();\n      this.enable();\n    },\n\n    hide: function() {\n      this._displayStyle = dom.getStyle(\"display\").from(this.iframe);\n      if (this._displayStyle === \"none\") {\n        this._displayStyle = null;\n      }\n      this.iframe.style.display = \"none\";\n    },\n\n    disable: function() {\n      this.element.removeAttribute(\"contentEditable\");\n      this.base();\n    },\n\n    enable: function() {\n      this.element.setAttribute(\"contentEditable\", \"true\");\n      this.base();\n    },\n\n    focus: function(setToEnd) {\n      // IE 8 fires the focus event after .focus()\n      // This is needed by our simulate_placeholder.js to work\n      // therefore we clear it ourselves this time\n      if (wysihtml5.browser.doesAsyncFocus() && this.hasPlaceholderSet()) {\n        this.clear();\n      }\n      \n      this.base();\n      \n      var lastChild = this.element.lastChild;\n      if (setToEnd && lastChild) {\n        if (lastChild.nodeName === \"BR\") {\n          this.selection.setBefore(this.element.lastChild);\n        } else {\n          this.selection.setAfter(this.element.lastChild);\n        }\n      }\n    },\n\n    getTextContent: function() {\n      return dom.getTextContent(this.element);\n    },\n\n    hasPlaceholderSet: function() {\n      return this.getTextContent() == this.textarea.element.getAttribute(\"placeholder\");\n    },\n\n    isEmpty: function() {\n      var innerHTML               = this.element.innerHTML,\n          elementsWithVisualValue = \"blockquote, ul, ol, img, embed, object, table, iframe, svg, video, audio, button, input, select, textarea\";\n      return innerHTML === \"\"              || \n             innerHTML === this.CARET_HACK ||\n             this.hasPlaceholderSet()      ||\n             (this.getTextContent() === \"\" && !this.element.querySelector(elementsWithVisualValue));\n    },\n\n    _initSandbox: function() {\n      var that = this;\n      \n      this.sandbox = new dom.Sandbox(function() {\n        that._create();\n      }, {\n        stylesheets:  this.config.stylesheets\n      });\n      this.iframe  = this.sandbox.getIframe();\n\n      // Create hidden field which tells the server after submit, that the user used an wysiwyg editor\n      var hiddenField = document.createElement(\"input\");\n      hiddenField.type   = \"hidden\";\n      hiddenField.name   = \"_wysihtml5_mode\";\n      hiddenField.value  = 1;\n\n      // Store reference to current wysihtml5 instance on the textarea element\n      var textareaElement = this.textarea.element;\n      dom.insert(this.iframe).after(textareaElement);\n      dom.insert(hiddenField).after(textareaElement);\n    },\n\n    _create: function() {\n      var that = this;\n      \n      this.doc                = this.sandbox.getDocument();\n      this.element            = this.doc.body;\n      this.textarea           = this.parent.textarea;\n      this.element.innerHTML  = this.textarea.getValue(true);\n      this.enable();\n      \n      // Make sure our selection handler is ready\n      this.selection = new wysihtml5.Selection(this.parent);\n      \n      // Make sure commands dispatcher is ready\n      this.commands  = new wysihtml5.Commands(this.parent);\n\n      dom.copyAttributes([\n        \"className\", \"spellcheck\", \"title\", \"lang\", \"dir\", \"accessKey\"\n      ]).from(this.textarea.element).to(this.element);\n      \n      dom.addClass(this.element, this.config.composerClassName);\n\n      // Make the editor look like the original textarea, by syncing styles\n      if (this.config.style) {\n        this.style();\n      }\n\n      this.observe();\n\n      var name = this.config.name;\n      if (name) {\n        dom.addClass(this.element, name);\n        dom.addClass(this.iframe, name);\n      }\n\n      // Simulate html5 placeholder attribute on contentEditable element\n      var placeholderText = typeof(this.config.placeholder) === \"string\"\n        ? this.config.placeholder\n        : this.textarea.element.getAttribute(\"placeholder\");\n      if (placeholderText) {\n        dom.simulatePlaceholder(this.parent, this, placeholderText);\n      }\n      \n      // Make sure that the browser avoids using inline styles whenever possible\n      this.commands.exec(\"styleWithCSS\", false);\n\n      this._initAutoLinking();\n      this._initObjectResizing();\n      this._initUndoManager();\n\n      // Simulate html5 autofocus on contentEditable element\n      if (this.textarea.element.hasAttribute(\"autofocus\") || document.querySelector(\":focus\") == this.textarea.element) {\n        setTimeout(function() { that.focus(); }, 100);\n      }\n\n      wysihtml5.quirks.insertLineBreakOnReturn(this);\n\n      // IE sometimes leaves a single paragraph, which can't be removed by the user\n      if (!browser.clearsContentEditableCorrectly()) {\n        wysihtml5.quirks.ensureProperClearing(this);\n      }\n\n      if (!browser.clearsListsInContentEditableCorrectly()) {\n        wysihtml5.quirks.ensureProperClearingOfLists(this);\n      }\n\n      // Set up a sync that makes sure that textarea and editor have the same content\n      if (this.initSync && this.config.sync) {\n        this.initSync();\n      }\n\n      // Okay hide the textarea, we are ready to go\n      this.textarea.hide();\n\n      // Fire global (before-)load event\n      this.parent.fire(\"beforeload\").fire(\"load\");\n    },\n\n    _initAutoLinking: function() {\n      var that                           = this,\n          supportsDisablingOfAutoLinking = browser.canDisableAutoLinking(),\n          supportsAutoLinking            = browser.doesAutoLinkingInContentEditable();\n      if (supportsDisablingOfAutoLinking) {\n        this.commands.exec(\"autoUrlDetect\", false);\n      }\n\n      if (!this.config.autoLink) {\n        return;\n      }\n\n      // Only do the auto linking by ourselves when the browser doesn't support auto linking\n      // OR when he supports auto linking but we were able to turn it off (IE9+)\n      if (!supportsAutoLinking || (supportsAutoLinking && supportsDisablingOfAutoLinking)) {\n        this.parent.observe(\"newword:composer\", function() {\n          that.selection.executeAndRestore(function(startContainer, endContainer) {\n            dom.autoLink(endContainer.parentNode);\n          });\n        });\n      }\n\n      // Assuming we have the following:\n      //  <a href=\"http://www.google.de\">http://www.google.de</a>\n      // If a user now changes the url in the innerHTML we want to make sure that\n      // it's synchronized with the href attribute (as long as the innerHTML is still a url)\n      var // Use a live NodeList to check whether there are any links in the document\n          links           = this.sandbox.getDocument().getElementsByTagName(\"a\"),\n          // The autoLink helper method reveals a reg exp to detect correct urls\n          urlRegExp       = dom.autoLink.URL_REG_EXP,\n          getTextContent  = function(element) {\n            var textContent = wysihtml5.lang.string(dom.getTextContent(element)).trim();\n            if (textContent.substr(0, 4) === \"www.\") {\n              textContent = \"http://\" + textContent;\n            }\n            return textContent;\n          };\n\n      dom.observe(this.element, \"keydown\", function(event) {\n        if (!links.length) {\n          return;\n        }\n\n        var selectedNode = that.selection.getSelectedNode(event.target.ownerDocument),\n            link         = dom.getParentElement(selectedNode, { nodeName: \"A\" }, 4),\n            textContent;\n\n        if (!link) {\n          return;\n        }\n\n        textContent = getTextContent(link);\n        // keydown is fired before the actual content is changed\n        // therefore we set a timeout to change the href\n        setTimeout(function() {\n          var newTextContent = getTextContent(link);\n          if (newTextContent === textContent) {\n            return;\n          }\n\n          // Only set href when new href looks like a valid url\n          if (newTextContent.match(urlRegExp)) {\n            link.setAttribute(\"href\", newTextContent);\n          }\n        }, 0);\n      });\n    },\n\n    _initObjectResizing: function() {\n      var properties        = [\"width\", \"height\"],\n          propertiesLength  = properties.length,\n          element           = this.element;\n      \n      this.commands.exec(\"enableObjectResizing\", this.config.allowObjectResizing);\n      \n      if (this.config.allowObjectResizing) {\n         // IE sets inline styles after resizing objects\n         // The following lines make sure that the width/height css properties\n         // are copied over to the width/height attributes\n        if (browser.supportsEvent(\"resizeend\")) {\n          dom.observe(element, \"resizeend\", function(event) {\n            var target = event.target || event.srcElement,\n                style  = target.style,\n                i      = 0,\n                property;\n            for(; i<propertiesLength; i++) {\n              property = properties[i];\n              if (style[property]) {\n                target.setAttribute(property, parseInt(style[property], 10));\n                style[property] = \"\";\n              }\n            }\n            // After resizing IE sometimes forgets to remove the old resize handles\n            wysihtml5.quirks.redraw(element);\n          });\n        }\n      } else {\n        if (browser.supportsEvent(\"resizestart\")) {\n          dom.observe(element, \"resizestart\", function(event) { event.preventDefault(); });\n        }\n      }\n    },\n    \n    _initUndoManager: function() {\n      new wysihtml5.UndoManager(this.parent);\n    }\n  });\n})(wysihtml5);(function(wysihtml5) {\n  var dom             = wysihtml5.dom,\n      doc             = document,\n      win             = window,\n      HOST_TEMPLATE   = doc.createElement(\"div\"),\n      /**\n       * Styles to copy from textarea to the composer element\n       */\n      TEXT_FORMATTING = [\n        \"background-color\",\n        \"color\", \"cursor\",\n        \"font-family\", \"font-size\", \"font-style\", \"font-variant\", \"font-weight\",\n        \"line-height\", \"letter-spacing\",\n        \"text-align\", \"text-decoration\", \"text-indent\", \"text-rendering\",\n        \"word-break\", \"word-wrap\", \"word-spacing\"\n      ],\n      /**\n       * Styles to copy from textarea to the iframe\n       */\n      BOX_FORMATTING = [\n        \"background-color\",\n        \"border-collapse\",\n        \"border-bottom-color\", \"border-bottom-style\", \"border-bottom-width\",\n        \"border-left-color\", \"border-left-style\", \"border-left-width\",\n        \"border-right-color\", \"border-right-style\", \"border-right-width\",\n        \"border-top-color\", \"border-top-style\", \"border-top-width\",\n        \"clear\", \"display\", \"float\",\n        \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\",\n        \"outline-color\", \"outline-offset\", \"outline-width\", \"outline-style\",\n        \"padding-left\", \"padding-right\", \"padding-top\", \"padding-bottom\",\n        \"position\", \"top\", \"left\", \"right\", \"bottom\", \"z-index\",\n        \"vertical-align\", \"text-align\",\n        \"-webkit-box-sizing\", \"-moz-box-sizing\", \"-ms-box-sizing\", \"box-sizing\",\n        \"-webkit-box-shadow\", \"-moz-box-shadow\", \"-ms-box-shadow\",\"box-shadow\",\n        \"-webkit-border-top-right-radius\", \"-moz-border-radius-topright\", \"border-top-right-radius\",\n        \"-webkit-border-bottom-right-radius\", \"-moz-border-radius-bottomright\", \"border-bottom-right-radius\",\n        \"-webkit-border-bottom-left-radius\", \"-moz-border-radius-bottomleft\", \"border-bottom-left-radius\",\n        \"-webkit-border-top-left-radius\", \"-moz-border-radius-topleft\", \"border-top-left-radius\",\n        \"width\", \"height\"\n      ],\n      /**\n       * Styles to sync while the window gets resized\n       */\n      RESIZE_STYLE = [\n        \"width\", \"height\",\n        \"top\", \"left\", \"right\", \"bottom\"\n      ],\n      ADDITIONAL_CSS_RULES = [\n        \"html             { height: 100%; }\",\n        \"body             { min-height: 100%; padding: 0; margin: 0; margin-top: -1px; padding-top: 1px; }\",\n        \"._wysihtml5-temp { display: none; }\",\n        wysihtml5.browser.isGecko ?\n          \"body.placeholder { color: graytext !important; }\" : \n          \"body.placeholder { color: #a9a9a9 !important; }\",\n        \"body[disabled]   { background-color: #eee !important; color: #999 !important; cursor: default !important; }\",\n        // Ensure that user see's broken images and can delete them\n        \"img:-moz-broken  { -moz-force-broken-image-icon: 1; height: 24px; width: 24px; }\"\n      ];\n  \n  /**\n   * With \"setActive\" IE offers a smart way of focusing elements without scrolling them into view:\n   * http://msdn.microsoft.com/en-us/library/ms536738(v=vs.85).aspx\n   *\n   * Other browsers need a more hacky way: (pssst don't tell my mama)\n   * In order to prevent the element being scrolled into view when focusing it, we simply\n   * move it out of the scrollable area, focus it, and reset it's position\n   */\n  var focusWithoutScrolling = function(element) {\n    if (element.setActive) {\n      // Following line could cause a js error when the textarea is invisible\n      // See https://github.com/xing/wysihtml5/issues/9\n      try { element.setActive(); } catch(e) {}\n    } else {\n      var elementStyle = element.style,\n          originalScrollTop = doc.documentElement.scrollTop || doc.body.scrollTop,\n          originalScrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft,\n          originalStyles = {\n            position:         elementStyle.position,\n            top:              elementStyle.top,\n            left:             elementStyle.left,\n            WebkitUserSelect: elementStyle.WebkitUserSelect\n          };\n      \n      dom.setStyles({\n        position:         \"absolute\",\n        top:              \"-99999px\",\n        left:             \"-99999px\",\n        // Don't ask why but temporarily setting -webkit-user-select to none makes the whole thing performing smoother\n        WebkitUserSelect: \"none\"\n      }).on(element);\n      \n      element.focus();\n      \n      dom.setStyles(originalStyles).on(element);\n      \n      if (win.scrollTo) {\n        // Some browser extensions unset this method to prevent annoyances\n        // \"Better PopUp Blocker\" for Chrome http://code.google.com/p/betterpopupblocker/source/browse/trunk/blockStart.js#100\n        // Issue: http://code.google.com/p/betterpopupblocker/issues/detail?id=1\n        win.scrollTo(originalScrollLeft, originalScrollTop);\n      }\n    }\n  };\n  \n  \n  wysihtml5.views.Composer.prototype.style = function() {\n    var that                  = this,\n        originalActiveElement = doc.querySelector(\":focus\"),\n        textareaElement       = this.textarea.element,\n        hasPlaceholder        = textareaElement.hasAttribute(\"placeholder\"),\n        originalPlaceholder   = hasPlaceholder && textareaElement.getAttribute(\"placeholder\");\n    this.focusStylesHost      = this.focusStylesHost  || HOST_TEMPLATE.cloneNode(false);\n    this.blurStylesHost       = this.blurStylesHost   || HOST_TEMPLATE.cloneNode(false);\n  \n    // Remove placeholder before copying (as the placeholder has an affect on the computed style)\n    if (hasPlaceholder) {\n      textareaElement.removeAttribute(\"placeholder\");\n    }\n  \n    if (textareaElement === originalActiveElement) {\n      textareaElement.blur();\n    }\n  \n    // --------- iframe styles (has to be set before editor styles, otherwise IE9 sets wrong fontFamily on blurStylesHost) ---------\n    dom.copyStyles(BOX_FORMATTING).from(textareaElement).to(this.iframe).andTo(this.blurStylesHost);\n  \n    // --------- editor styles ---------\n    dom.copyStyles(TEXT_FORMATTING).from(textareaElement).to(this.element).andTo(this.blurStylesHost);\n  \n    // --------- apply standard rules ---------\n    dom.insertCSS(ADDITIONAL_CSS_RULES).into(this.element.ownerDocument);\n  \n    // --------- :focus styles ---------\n    focusWithoutScrolling(textareaElement);\n    dom.copyStyles(BOX_FORMATTING).from(textareaElement).to(this.focusStylesHost);\n    dom.copyStyles(TEXT_FORMATTING).from(textareaElement).to(this.focusStylesHost);\n  \n    // Make sure that we don't change the display style of the iframe when copying styles oblur/onfocus\n    // this is needed for when the change_view event is fired where the iframe is hidden and then\n    // the blur event fires and re-displays it\n    var boxFormattingStyles = wysihtml5.lang.array(BOX_FORMATTING).without([\"display\"]);\n  \n    // --------- restore focus ---------\n    if (originalActiveElement) {\n      originalActiveElement.focus();\n    } else {\n      textareaElement.blur();\n    }\n  \n    // --------- restore placeholder ---------\n    if (hasPlaceholder) {\n      textareaElement.setAttribute(\"placeholder\", originalPlaceholder);\n    }\n  \n    // When copying styles, we only get the computed style which is never returned in percent unit\n    // Therefore we've to recalculate style onresize\n    if (!wysihtml5.browser.hasCurrentStyleProperty()) {\n      var winObserver = dom.observe(win, \"resize\", function() {\n        // Remove event listener if composer doesn't exist anymore\n        if (!dom.contains(document.documentElement, that.iframe)) {\n          winObserver.stop();\n          return;\n        }\n        var originalTextareaDisplayStyle = dom.getStyle(\"display\").from(textareaElement),\n            originalComposerDisplayStyle = dom.getStyle(\"display\").from(that.iframe);\n        textareaElement.style.display = \"\";\n        that.iframe.style.display = \"none\";\n        dom.copyStyles(RESIZE_STYLE)\n          .from(textareaElement)\n          .to(that.iframe)\n          .andTo(that.focusStylesHost)\n          .andTo(that.blurStylesHost);\n        that.iframe.style.display = originalComposerDisplayStyle;\n        textareaElement.style.display = originalTextareaDisplayStyle;\n      });\n    }\n  \n    // --------- Sync focus/blur styles ---------\n    this.parent.observe(\"focus:composer\", function() {\n      dom.copyStyles(boxFormattingStyles) .from(that.focusStylesHost).to(that.iframe);\n      dom.copyStyles(TEXT_FORMATTING)     .from(that.focusStylesHost).to(that.element);\n    });\n\n    this.parent.observe(\"blur:composer\", function() {\n      dom.copyStyles(boxFormattingStyles) .from(that.blurStylesHost).to(that.iframe);\n      dom.copyStyles(TEXT_FORMATTING)     .from(that.blurStylesHost).to(that.element);\n    });\n  \n    return this;\n  };\n})(wysihtml5);/**\n * Taking care of events\n *  - Simulating 'change' event on contentEditable element\n *  - Handling drag & drop logic\n *  - Catch paste events\n *  - Dispatch proprietary newword:composer event\n *  - Keyboard shortcuts\n */\n(function(wysihtml5) {\n  var dom       = wysihtml5.dom,\n      browser   = wysihtml5.browser,\n      /**\n       * Map keyCodes to query commands\n       */\n      shortcuts = {\n        \"66\": \"bold\",     // B\n        \"73\": \"italic\",   // I\n        \"85\": \"underline\" // U\n      };\n  \n  wysihtml5.views.Composer.prototype.observe = function() {\n    var that                = this,\n        state               = this.getValue(),\n        iframe              = this.sandbox.getIframe(),\n        element             = this.element,\n        focusBlurElement    = browser.supportsEventsInIframeCorrectly() ? element : this.sandbox.getWindow(),\n        // Firefox < 3.5 doesn't support the drop event, instead it supports a so called \"dragdrop\" event which behaves almost the same\n        pasteEvents         = browser.supportsEvent(\"drop\") ? [\"drop\", \"paste\"] : [\"dragdrop\", \"paste\"];\n\n    // --------- destroy:composer event ---------\n    dom.observe(iframe, \"DOMNodeRemoved\", function() {\n      clearInterval(domNodeRemovedInterval);\n      that.parent.fire(\"destroy:composer\");\n    });\n\n    // DOMNodeRemoved event is not supported in IE 8\n    var domNodeRemovedInterval = setInterval(function() {\n      if (!dom.contains(document.documentElement, iframe)) {\n        clearInterval(domNodeRemovedInterval);\n        that.parent.fire(\"destroy:composer\");\n      }\n    }, 250);\n\n\n    // --------- Focus & blur logic ---------\n    dom.observe(focusBlurElement, \"focus\", function() {\n      that.parent.fire(\"focus\").fire(\"focus:composer\");\n\n      // Delay storing of state until all focus handler are fired\n      // especially the one which resets the placeholder\n      setTimeout(function() { state = that.getValue(); }, 0);\n    });\n\n    dom.observe(focusBlurElement, \"blur\", function() {\n      if (state !== that.getValue()) {\n        that.parent.fire(\"change\").fire(\"change:composer\");\n      }\n      that.parent.fire(\"blur\").fire(\"blur:composer\");\n    });\n    \n    if (wysihtml5.browser.isIos()) {\n      // When on iPad/iPhone/IPod after clicking outside of editor, the editor loses focus\n      // but the UI still acts as if the editor has focus (blinking caret and onscreen keyboard visible)\n      // We prevent that by focusing a temporary input element which immediately loses focus\n      dom.observe(element, \"blur\", function() {\n        var input = element.ownerDocument.createElement(\"input\"),\n            originalScrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n            originalScrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\n        try {\n          that.selection.insertNode(input);\n        } catch(e) {\n          element.appendChild(input);\n        }\n        input.focus();\n        input.parentNode.removeChild(input);\n        \n        window.scrollTo(originalScrollLeft, originalScrollTop);\n      });\n    }\n\n    // --------- Drag & Drop logic ---------\n    dom.observe(element, \"dragenter\", function() {\n      that.parent.fire(\"unset_placeholder\");\n    });\n\n    if (browser.firesOnDropOnlyWhenOnDragOverIsCancelled()) {\n      dom.observe(element, [\"dragover\", \"dragenter\"], function(event) {\n        event.preventDefault();\n      });\n    }\n\n    dom.observe(element, pasteEvents, function(event) {\n      var dataTransfer = event.dataTransfer,\n          data;\n\n      if (dataTransfer && browser.supportsDataTransfer()) {\n        data = dataTransfer.getData(\"text/html\") || dataTransfer.getData(\"text/plain\");\n      }\n      if (data) {\n        element.focus();\n        that.commands.exec(\"insertHTML\", data);\n        that.parent.fire(\"paste\").fire(\"paste:composer\");\n        event.stopPropagation();\n        event.preventDefault();\n      } else {\n        setTimeout(function() {\n          that.parent.fire(\"paste\").fire(\"paste:composer\");\n        }, 0);\n      }\n    });\n\n    // --------- neword event ---------\n    dom.observe(element, \"keyup\", function(event) {\n      var keyCode = event.keyCode;\n      if (keyCode === wysihtml5.SPACE_KEY || keyCode === wysihtml5.ENTER_KEY) {\n        that.parent.fire(\"newword:composer\");\n      }\n    });\n\n    this.parent.observe(\"paste:composer\", function() {\n      setTimeout(function() { that.parent.fire(\"newword:composer\"); }, 0);\n    });\n\n    // --------- Make sure that images are selected when clicking on them ---------\n    if (!browser.canSelectImagesInContentEditable()) {\n      dom.observe(element, \"mousedown\", function(event) {\n        var target = event.target;\n        if (target.nodeName === \"IMG\") {\n          that.selection.selectNode(target);\n          event.preventDefault();\n        }\n      });\n    }\n    \n    // --------- Shortcut logic ---------\n    dom.observe(element, \"keydown\", function(event) {\n      var keyCode  = event.keyCode,\n          command  = shortcuts[keyCode];\n      if ((event.ctrlKey || event.metaKey) && !event.altKey && command) {\n        that.commands.exec(command);\n        event.preventDefault();\n      }\n    });\n\n    // --------- Make sure that when pressing backspace/delete on selected images deletes the image and it's anchor ---------\n    dom.observe(element, \"keydown\", function(event) {\n      var target  = that.selection.getSelectedNode(true),\n          keyCode = event.keyCode,\n          parent;\n      if (target && target.nodeName === \"IMG\" && (keyCode === wysihtml5.BACKSPACE_KEY || keyCode === wysihtml5.DELETE_KEY)) { // 8 => backspace, 46 => delete\n        parent = target.parentNode;\n        // delete the <img>\n        parent.removeChild(target);\n        // and it's parent <a> too if it hasn't got any other child nodes\n        if (parent.nodeName === \"A\" && !parent.firstChild) {\n          parent.parentNode.removeChild(parent);\n        }\n\n        setTimeout(function() { wysihtml5.quirks.redraw(element); }, 0);\n        event.preventDefault();\n      }\n    });\n\n    // --------- Show url in tooltip when hovering links or images ---------\n    var titlePrefixes = {\n      IMG: \"Image: \",\n      A:   \"Link: \"\n    };\n    \n    dom.observe(element, \"mouseover\", function(event) {\n      var target   = event.target,\n          nodeName = target.nodeName,\n          title;\n      if (nodeName !== \"A\" && nodeName !== \"IMG\") {\n        return;\n      }\n      var hasTitle = target.hasAttribute(\"title\");\n      if(!hasTitle){\n        title = titlePrefixes[nodeName] + (target.getAttribute(\"href\") || target.getAttribute(\"src\"));\n        target.setAttribute(\"title\", title);\n      }\n    });\n  };\n})(wysihtml5);/**\n * Class that takes care that the value of the composer and the textarea is always in sync\n */\n(function(wysihtml5) {\n  var INTERVAL = 400;\n  \n  wysihtml5.views.Synchronizer = Base.extend(\n    /** @scope wysihtml5.views.Synchronizer.prototype */ {\n\n    constructor: function(editor, textarea, composer) {\n      this.editor   = editor;\n      this.textarea = textarea;\n      this.composer = composer;\n\n      this._observe();\n    },\n\n    /**\n     * Sync html from composer to textarea\n     * Takes care of placeholders\n     * @param {Boolean} shouldParseHtml Whether the html should be sanitized before inserting it into the textarea\n     */\n    fromComposerToTextarea: function(shouldParseHtml) {\n      this.textarea.setValue(wysihtml5.lang.string(this.composer.getValue()).trim(), shouldParseHtml);\n    },\n\n    /**\n     * Sync value of textarea to composer\n     * Takes care of placeholders\n     * @param {Boolean} shouldParseHtml Whether the html should be sanitized before inserting it into the composer\n     */\n    fromTextareaToComposer: function(shouldParseHtml) {\n      var textareaValue = this.textarea.getValue();\n      if (textareaValue) {\n        this.composer.setValue(textareaValue, shouldParseHtml);\n      } else {\n        this.composer.clear();\n        this.editor.fire(\"set_placeholder\");\n      }\n    },\n\n    /**\n     * Invoke syncing based on view state\n     * @param {Boolean} shouldParseHtml Whether the html should be sanitized before inserting it into the composer/textarea\n     */\n    sync: function(shouldParseHtml) {\n      if (this.editor.currentView.name === \"textarea\") {\n        this.fromTextareaToComposer(shouldParseHtml);\n      } else {\n        this.fromComposerToTextarea(shouldParseHtml);\n      }\n    },\n\n    /**\n     * Initializes interval-based syncing\n     * also makes sure that on-submit the composer's content is synced with the textarea\n     * immediately when the form gets submitted\n     */\n    _observe: function() {\n      var interval,\n          that          = this,\n          form          = this.textarea.element.form,\n          startInterval = function() {\n            interval = setInterval(function() { that.fromComposerToTextarea(); }, INTERVAL);\n          },\n          stopInterval  = function() {\n            clearInterval(interval);\n            interval = null;\n          };\n\n      startInterval();\n\n      if (form) {\n        // If the textarea is in a form make sure that after onreset and onsubmit the composer\n        // has the correct state\n        wysihtml5.dom.observe(form, \"submit\", function() {\n          that.sync(true);\n        });\n        wysihtml5.dom.observe(form, \"reset\", function() {\n          setTimeout(function() { that.fromTextareaToComposer(); }, 0);\n        });\n      }\n\n      this.editor.observe(\"change_view\", function(view) {\n        if (view === \"composer\" && !interval) {\n          that.fromTextareaToComposer(true);\n          startInterval();\n        } else if (view === \"textarea\") {\n          that.fromComposerToTextarea(true);\n          stopInterval();\n        }\n      });\n\n      this.editor.observe(\"destroy:composer\", stopInterval);\n    }\n  });\n})(wysihtml5);\nwysihtml5.views.Textarea = wysihtml5.views.View.extend(\n  /** @scope wysihtml5.views.Textarea.prototype */ {\n  name: \"textarea\",\n  \n  constructor: function(parent, textareaElement, config) {\n    this.base(parent, textareaElement, config);\n    \n    this._observe();\n  },\n  \n  clear: function() {\n    this.element.value = \"\";\n  },\n  \n  getValue: function(parse) {\n    var value = this.isEmpty() ? \"\" : this.element.value;\n    if (parse) {\n      value = this.parent.parse(value);\n    }\n    return value;\n  },\n  \n  setValue: function(html, parse) {\n    if (parse) {\n      html = this.parent.parse(html);\n    }\n    this.element.value = html;\n  },\n  \n  hasPlaceholderSet: function() {\n    var supportsPlaceholder = wysihtml5.browser.supportsPlaceholderAttributeOn(this.element),\n        placeholderText     = this.element.getAttribute(\"placeholder\") || null,\n        value               = this.element.value,\n        isEmpty             = !value;\n    return (supportsPlaceholder && isEmpty) || (value === placeholderText);\n  },\n  \n  isEmpty: function() {\n    return !wysihtml5.lang.string(this.element.value).trim() || this.hasPlaceholderSet();\n  },\n  \n  _observe: function() {\n    var element = this.element,\n        parent  = this.parent,\n        eventMapping = {\n          focusin:  \"focus\",\n          focusout: \"blur\"\n        },\n        /**\n         * Calling focus() or blur() on an element doesn't synchronously trigger the attached focus/blur events\n         * This is the case for focusin and focusout, so let's use them whenever possible, kkthxbai\n         */\n        events = wysihtml5.browser.supportsEvent(\"focusin\") ? [\"focusin\", \"focusout\", \"change\"] : [\"focus\", \"blur\", \"change\"];\n    \n    parent.observe(\"beforeload\", function() {\n      wysihtml5.dom.observe(element, events, function(event) {\n        var eventName = eventMapping[event.type] || event.type;\n        parent.fire(eventName).fire(eventName + \":textarea\");\n      });\n      \n      wysihtml5.dom.observe(element, [\"paste\", \"drop\"], function() {\n        setTimeout(function() { parent.fire(\"paste\").fire(\"paste:textarea\"); }, 0);\n      });\n    });\n  }\n});/**\n * Toolbar Dialog\n *\n * @param {Element} link The toolbar link which causes the dialog to show up\n * @param {Element} container The dialog container\n *\n * @example\n *    <!-- Toolbar link -->\n *    <a data-wysihtml5-command=\"insertImage\">insert an image</a>\n *\n *    <!-- Dialog -->\n *    <div data-wysihtml5-dialog=\"insertImage\" style=\"display: none;\">\n *      <label>\n *        URL: <input data-wysihtml5-dialog-field=\"src\" value=\"http://\">\n *      </label>\n *      <label>\n *        Alternative text: <input data-wysihtml5-dialog-field=\"alt\" value=\"\">\n *      </label>\n *    </div>\n *\n *    <script>\n *      var dialog = new wysihtml5.toolbar.Dialog(\n *        document.querySelector(\"[data-wysihtml5-command='insertImage']\"),\n *        document.querySelector(\"[data-wysihtml5-dialog='insertImage']\")\n *      );\n *      dialog.observe(\"save\", function(attributes) {\n *        // do something\n *      });\n *    </script>\n */\n(function(wysihtml5) {\n  var dom                     = wysihtml5.dom,\n      CLASS_NAME_OPENED       = \"wysihtml5-command-dialog-opened\",\n      SELECTOR_FORM_ELEMENTS  = \"input, select, textarea\",\n      SELECTOR_FIELDS         = \"[data-wysihtml5-dialog-field]\",\n      ATTRIBUTE_FIELDS        = \"data-wysihtml5-dialog-field\";\n      \n  \n  wysihtml5.toolbar.Dialog = wysihtml5.lang.Dispatcher.extend(\n    /** @scope wysihtml5.toolbar.Dialog.prototype */ {\n    constructor: function(link, container) {\n      this.link       = link;\n      this.container  = container;\n    },\n\n    _observe: function() {\n      if (this._observed) {\n        return;\n      }\n      \n      var that = this,\n          callbackWrapper = function(event) {\n            var attributes = that._serialize();\n            if (attributes == that.elementToChange) {\n              that.fire(\"edit\", attributes);\n            } else {\n              that.fire(\"save\", attributes);\n            }\n            that.hide();\n            event.preventDefault();\n            event.stopPropagation();\n          };\n\n      dom.observe(that.link, \"click\", function(event) {\n        if (dom.hasClass(that.link, CLASS_NAME_OPENED)) {\n          setTimeout(function() { that.hide(); }, 0);\n        }\n      });\n\n      dom.observe(this.container, \"keydown\", function(event) {\n        var keyCode = event.keyCode;\n        if (keyCode === wysihtml5.ENTER_KEY) {\n          callbackWrapper(event);\n        }\n        if (keyCode === wysihtml5.ESCAPE_KEY) {\n          that.hide();\n        }\n      });\n\n      dom.delegate(this.container, \"[data-wysihtml5-dialog-action=save]\", \"click\", callbackWrapper);\n\n      dom.delegate(this.container, \"[data-wysihtml5-dialog-action=cancel]\", \"click\", function(event) {\n        that.fire(\"cancel\");\n        that.hide();\n        event.preventDefault();\n        event.stopPropagation();\n      });\n\n      var formElements  = this.container.querySelectorAll(SELECTOR_FORM_ELEMENTS),\n          i             = 0,\n          length        = formElements.length,\n          _clearInterval = function() { clearInterval(that.interval); };\n      for (; i<length; i++) {\n        dom.observe(formElements[i], \"change\", _clearInterval);\n      }\n\n      this._observed = true;\n    },\n\n    /**\n     * Grabs all fields in the dialog and puts them in key=>value style in an object which\n     * then gets returned\n     */\n    _serialize: function() {\n      var data    = this.elementToChange || {},\n          fields  = this.container.querySelectorAll(SELECTOR_FIELDS),\n          length  = fields.length,\n          i       = 0;\n      for (; i<length; i++) {\n        data[fields[i].getAttribute(ATTRIBUTE_FIELDS)] = fields[i].value;\n      }\n      return data;\n    },\n\n    /**\n     * Takes the attributes of the \"elementToChange\"\n     * and inserts them in their corresponding dialog input fields\n     * \n     * Assume the \"elementToChange\" looks like this:\n     *    <a href=\"http://www.google.com\" target=\"_blank\">foo</a>\n     *\n     * and we have the following dialog:\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"href\" value=\"\">\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"target\" value=\"\">\n     * \n     * after calling _interpolate() the dialog will look like this\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"href\" value=\"http://www.google.com\">\n     *    <input type=\"text\" data-wysihtml5-dialog-field=\"target\" value=\"_blank\">\n     *\n     * Basically it adopted the attribute values into the corresponding input fields\n     *\n     */\n    _interpolate: function(avoidHiddenFields) {\n      var field,\n          fieldName,\n          newValue,\n          focusedElement = document.querySelector(\":focus\"),\n          fields         = this.container.querySelectorAll(SELECTOR_FIELDS),\n          length         = fields.length,\n          i              = 0;\n      for (; i<length; i++) {\n        field = fields[i];\n        \n        // Never change elements where the user is currently typing in\n        if (field === focusedElement) {\n          continue;\n        }\n        \n        // Don't update hidden fields\n        // See https://github.com/xing/wysihtml5/pull/14\n        if (avoidHiddenFields && field.type === \"hidden\") {\n          continue;\n        }\n        \n        fieldName = field.getAttribute(ATTRIBUTE_FIELDS);\n        newValue  = this.elementToChange ? (this.elementToChange[fieldName] || \"\") : field.defaultValue;\n        field.value = newValue;\n      }\n    },\n\n    /**\n     * Show the dialog element\n     */\n    show: function(elementToChange) {\n      var that        = this,\n          firstField  = this.container.querySelector(SELECTOR_FORM_ELEMENTS);\n      this.elementToChange = elementToChange;\n      this._observe();\n      this._interpolate();\n      if (elementToChange) {\n        this.interval = setInterval(function() { that._interpolate(true); }, 500);\n      }\n      dom.addClass(this.link, CLASS_NAME_OPENED);\n      this.container.style.display = \"\";\n      this.fire(\"show\");\n      if (firstField && !elementToChange) {\n        try {\n          firstField.focus();\n        } catch(e) {}\n      }\n    },\n\n    /**\n     * Hide the dialog element\n     */\n    hide: function() {\n      clearInterval(this.interval);\n      this.elementToChange = null;\n      dom.removeClass(this.link, CLASS_NAME_OPENED);\n      this.container.style.display = \"none\";\n      this.fire(\"hide\");\n    }\n  });\n})(wysihtml5);\n/**\n * Converts speech-to-text and inserts this into the editor\n * As of now (2011/03/25) this only is supported in Chrome >= 11\n *\n * Note that it sends the recorded audio to the google speech recognition api:\n * http://stackoverflow.com/questions/4361826/does-chrome-have-buil-in-speech-recognition-for-input-type-text-x-webkit-speec\n *\n * Current HTML5 draft can be found here\n * http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html\n * \n * \"Accessing Google Speech API Chrome 11\"\n * http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/\n */\n(function(wysihtml5) {\n  var dom = wysihtml5.dom;\n  \n  var linkStyles = {\n    position: \"relative\"\n  };\n  \n  var wrapperStyles = {\n    left:     0,\n    margin:   0,\n    opacity:  0,\n    overflow: \"hidden\",\n    padding:  0,\n    position: \"absolute\",\n    top:      0,\n    zIndex:   1\n  };\n  \n  var inputStyles = {\n    cursor:     \"inherit\",\n    fontSize:   \"50px\",\n    height:     \"50px\",\n    marginTop:  \"-25px\",\n    outline:    0,\n    padding:    0,\n    position:   \"absolute\",\n    right:      \"-4px\",\n    top:        \"50%\"\n  };\n  \n  var inputAttributes = {\n    \"x-webkit-speech\": \"\",\n    \"speech\":          \"\"\n  };\n  \n  wysihtml5.toolbar.Speech = function(parent, link) {\n    var input = document.createElement(\"input\");\n    if (!wysihtml5.browser.supportsSpeechApiOn(input)) {\n      link.style.display = \"none\";\n      return;\n    }\n    \n    var wrapper = document.createElement(\"div\");\n    \n    wysihtml5.lang.object(wrapperStyles).merge({\n      width:  link.offsetWidth  + \"px\",\n      height: link.offsetHeight + \"px\"\n    });\n    \n    dom.insert(input).into(wrapper);\n    dom.insert(wrapper).into(link);\n    \n    dom.setStyles(inputStyles).on(input);\n    dom.setAttributes(inputAttributes).on(input)\n    \n    dom.setStyles(wrapperStyles).on(wrapper);\n    dom.setStyles(linkStyles).on(link);\n    \n    var eventName = \"onwebkitspeechchange\" in input ? \"webkitspeechchange\" : \"speechchange\";\n    dom.observe(input, eventName, function() {\n      parent.execCommand(\"insertText\", input.value);\n      input.value = \"\";\n    });\n    \n    dom.observe(input, \"click\", function(event) {\n      if (dom.hasClass(link, \"wysihtml5-command-disabled\")) {\n        event.preventDefault();\n      }\n      \n      event.stopPropagation();\n    });\n  };\n})(wysihtml5);/**\n * Toolbar\n *\n * @param {Object} parent Reference to instance of Editor instance\n * @param {Element} container Reference to the toolbar container element\n *\n * @example\n *    <div id=\"toolbar\">\n *      <a data-wysihtml5-command=\"createLink\">insert link</a>\n *      <a data-wysihtml5-command=\"formatBlock\" data-wysihtml5-command-value=\"h1\">insert h1</a>\n *    </div>\n *\n *    <script>\n *      var toolbar = new wysihtml5.toolbar.Toolbar(editor, document.getElementById(\"toolbar\"));\n *    </script>\n */\n(function(wysihtml5) {\n  var CLASS_NAME_COMMAND_DISABLED   = \"wysihtml5-command-disabled\",\n      CLASS_NAME_COMMANDS_DISABLED  = \"wysihtml5-commands-disabled\",\n      CLASS_NAME_COMMAND_ACTIVE     = \"wysihtml5-command-active\",\n      CLASS_NAME_ACTION_ACTIVE      = \"wysihtml5-action-active\",\n      dom                           = wysihtml5.dom;\n  \n  wysihtml5.toolbar.Toolbar = Base.extend(\n    /** @scope wysihtml5.toolbar.Toolbar.prototype */ {\n    constructor: function(editor, container) {\n      this.editor     = editor;\n      this.container  = typeof(container) === \"string\" ? document.getElementById(container) : container;\n      this.composer   = editor.composer;\n\n      this._getLinks(\"command\");\n      this._getLinks(\"action\");\n\n      this._observe();\n      this.show();\n      \n      var speechInputLinks  = this.container.querySelectorAll(\"[data-wysihtml5-command=insertSpeech]\"),\n          length            = speechInputLinks.length,\n          i                 = 0;\n      for (; i<length; i++) {\n        new wysihtml5.toolbar.Speech(this, speechInputLinks[i]);\n      }\n    },\n\n    _getLinks: function(type) {\n      var links   = this[type + \"Links\"] = wysihtml5.lang.array(this.container.querySelectorAll(\"[data-wysihtml5-\" + type + \"]\")).get(),\n          length  = links.length,\n          i       = 0,\n          mapping = this[type + \"Mapping\"] = {},\n          link,\n          group,\n          name,\n          value,\n          dialog;\n      for (; i<length; i++) {\n        link    = links[i];\n        name    = link.getAttribute(\"data-wysihtml5-\" + type);\n        value   = link.getAttribute(\"data-wysihtml5-\" + type + \"-value\");\n        group   = this.container.querySelector(\"[data-wysihtml5-\" + type + \"-group='\" + name + \"']\");\n        dialog  = this._getDialog(link, name);\n        \n        mapping[name + \":\" + value] = {\n          link:   link,\n          group:  group,\n          name:   name,\n          value:  value,\n          dialog: dialog,\n          state:  false\n        };\n      }\n    },\n\n    _getDialog: function(link, command) {\n      var that          = this,\n          dialogElement = this.container.querySelector(\"[data-wysihtml5-dialog='\" + command + \"']\"),\n          dialog,\n          caretBookmark;\n      \n      if (dialogElement) {\n        dialog = new wysihtml5.toolbar.Dialog(link, dialogElement);\n\n        dialog.observe(\"show\", function() {\n          caretBookmark = that.composer.selection.getBookmark();\n\n          that.editor.fire(\"show:dialog\", { command: command, dialogContainer: dialogElement, commandLink: link });\n        });\n\n        dialog.observe(\"save\", function(attributes) {\n          if (caretBookmark) {\n            that.composer.selection.setBookmark(caretBookmark);\n          }\n          that._execCommand(command, attributes);\n          \n          that.editor.fire(\"save:dialog\", { command: command, dialogContainer: dialogElement, commandLink: link });\n        });\n\n        dialog.observe(\"cancel\", function() {\n          that.editor.focus(false);\n          that.editor.fire(\"cancel:dialog\", { command: command, dialogContainer: dialogElement, commandLink: link });\n        });\n      }\n      return dialog;\n    },\n\n    /**\n     * @example\n     *    var toolbar = new wysihtml5.Toolbar();\n     *    // Insert a <blockquote> element or wrap current selection in <blockquote>\n     *    toolbar.execCommand(\"formatBlock\", \"blockquote\");\n     */\n    execCommand: function(command, commandValue) {\n      if (this.commandsDisabled) {\n        return;\n      }\n\n      var commandObj = this.commandMapping[command + \":\" + commandValue];\n\n      // Show dialog when available\n      if (commandObj && commandObj.dialog && !commandObj.state) {\n        commandObj.dialog.show();\n      } else {\n        this._execCommand(command, commandValue);\n      }\n    },\n\n    _execCommand: function(command, commandValue) {\n      // Make sure that composer is focussed (false => don't move caret to the end)\n      this.editor.focus(false);\n\n      this.composer.commands.exec(command, commandValue);\n      this._updateLinkStates();\n    },\n\n    execAction: function(action) {\n      var editor = this.editor;\n      switch(action) {\n        case \"change_view\":\n          if (editor.currentView === editor.textarea) {\n            editor.fire(\"change_view\", \"composer\");\n          } else {\n            editor.fire(\"change_view\", \"textarea\");\n          }\n          break;\n      }\n    },\n\n    _observe: function() {\n      var that      = this,\n          editor    = this.editor,\n          container = this.container,\n          links     = this.commandLinks.concat(this.actionLinks),\n          length    = links.length,\n          i         = 0;\n      \n      for (; i<length; i++) {\n        // 'javascript:;' and unselectable=on Needed for IE, but done in all browsers to make sure that all get the same css applied\n        // (you know, a:link { ... } doesn't match anchors with missing href attribute)\n        dom.setAttributes({\n          href:         \"javascript:;\",\n          unselectable: \"on\"\n        }).on(links[i]);\n      }\n\n      // Needed for opera\n      dom.delegate(container, \"[data-wysihtml5-command]\", \"mousedown\", function(event) { event.preventDefault(); });\n      \n      dom.delegate(container, \"[data-wysihtml5-command]\", \"click\", function(event) {\n        var link          = this,\n            command       = link.getAttribute(\"data-wysihtml5-command\"),\n            commandValue  = link.getAttribute(\"data-wysihtml5-command-value\");\n        that.execCommand(command, commandValue);\n        event.preventDefault();\n      });\n\n      dom.delegate(container, \"[data-wysihtml5-action]\", \"click\", function(event) {\n        var action = this.getAttribute(\"data-wysihtml5-action\");\n        that.execAction(action);\n        event.preventDefault();\n      });\n\n      editor.observe(\"focus:composer\", function() {\n        that.bookmark = null;\n        clearInterval(that.interval);\n        that.interval = setInterval(function() { that._updateLinkStates(); }, 500);\n      });\n\n      editor.observe(\"blur:composer\", function() {\n        clearInterval(that.interval);\n      });\n\n      editor.observe(\"destroy:composer\", function() {\n        clearInterval(that.interval);\n      });\n\n      editor.observe(\"change_view\", function(currentView) {\n        // Set timeout needed in order to let the blur event fire first\n        setTimeout(function() {\n          that.commandsDisabled = (currentView !== \"composer\");\n          that._updateLinkStates();\n          if (that.commandsDisabled) {\n            dom.addClass(container, CLASS_NAME_COMMANDS_DISABLED);\n          } else {\n            dom.removeClass(container, CLASS_NAME_COMMANDS_DISABLED);\n          }\n        }, 0);\n      });\n    },\n\n    _updateLinkStates: function() {\n      var element           = this.composer.element,\n          commandMapping    = this.commandMapping,\n          actionMapping     = this.actionMapping,\n          i,\n          state,\n          action,\n          command;\n      // every millisecond counts... this is executed quite often\n      for (i in commandMapping) {\n        command = commandMapping[i];\n        if (this.commandsDisabled) {\n          state = false;\n          dom.removeClass(command.link, CLASS_NAME_COMMAND_ACTIVE);\n          if (command.group) {\n            dom.removeClass(command.group, CLASS_NAME_COMMAND_ACTIVE);\n          }\n          if (command.dialog) {\n            command.dialog.hide();\n          }\n        } else {\n          state = this.composer.commands.state(command.name, command.value);\n          if (wysihtml5.lang.object(state).isArray()) {\n            // Grab first and only object/element in state array, otherwise convert state into boolean\n            // to avoid showing a dialog for multiple selected elements which may have different attributes\n            // eg. when two links with different href are selected, the state will be an array consisting of both link elements\n            // but the dialog interface can only update one\n            state = state.length === 1 ? state[0] : true;\n          }\n          dom.removeClass(command.link, CLASS_NAME_COMMAND_DISABLED);\n          if (command.group) {\n            dom.removeClass(command.group, CLASS_NAME_COMMAND_DISABLED);\n          }\n        }\n\n        if (command.state === state) {\n          continue;\n        }\n\n        command.state = state;\n        if (state) {\n          dom.addClass(command.link, CLASS_NAME_COMMAND_ACTIVE);\n          if (command.group) {\n            dom.addClass(command.group, CLASS_NAME_COMMAND_ACTIVE);\n          }\n          if (command.dialog) {\n            if (typeof(state) === \"object\") {\n              command.dialog.show(state);\n            } else {\n              command.dialog.hide();\n            }\n          }\n        } else {\n          dom.removeClass(command.link, CLASS_NAME_COMMAND_ACTIVE);\n          if (command.group) {\n            dom.removeClass(command.group, CLASS_NAME_COMMAND_ACTIVE);\n          }\n          if (command.dialog) {\n            command.dialog.hide();\n          }\n        }\n      }\n      \n      for (i in actionMapping) {\n        action = actionMapping[i];\n        \n        if (action.name === \"change_view\") {\n          action.state = this.editor.currentView === this.editor.textarea;\n          if (action.state) {\n            dom.addClass(action.link, CLASS_NAME_ACTION_ACTIVE);\n          } else {\n            dom.removeClass(action.link, CLASS_NAME_ACTION_ACTIVE);\n          }\n        }\n      }\n    },\n\n    show: function() {\n      this.container.style.display = \"\";\n    },\n\n    hide: function() {\n      this.container.style.display = \"none\";\n    }\n  });\n  \n})(wysihtml5);\n/**\n * WYSIHTML5 Editor\n *\n * @param {Element} textareaElement Reference to the textarea which should be turned into a rich text interface\n * @param {Object} [config] See defaultConfig object below for explanation of each individual config option\n *\n * @events\n *    load\n *    beforeload (for internal use only)\n *    focus\n *    focus:composer\n *    focus:textarea\n *    blur\n *    blur:composer\n *    blur:textarea\n *    change\n *    change:composer\n *    change:textarea\n *    paste\n *    paste:composer\n *    paste:textarea\n *    newword:composer\n *    destroy:composer\n *    undo:composer\n *    redo:composer\n *    beforecommand:composer\n *    aftercommand:composer\n *    change_view\n */\n(function(wysihtml5) {\n  var undef;\n  \n  var defaultConfig = {\n    // Give the editor a name, the name will also be set as class name on the iframe and on the iframe's body \n    name:                 undef,\n    // Whether the editor should look like the textarea (by adopting styles)\n    style:                true,\n    // Id of the toolbar element, pass falsey value if you don't want any toolbar logic\n    toolbar:              undef,\n    // Whether urls, entered by the user should automatically become clickable-links\n    autoLink:             true,\n    // Object which includes parser rules to apply when html gets inserted via copy & paste\n    // See parser_rules/*.js for examples\n    parserRules:          { tags: { br: {}, span: {}, div: {}, p: {} }, classes: {} },\n    // Parser method to use when the user inserts content via copy & paste\n    parser:               wysihtml5.dom.parse,\n    // Class name which should be set on the contentEditable element in the created sandbox iframe, can be styled via the 'stylesheets' option\n    composerClassName:    \"wysihtml5-editor\",\n    // Class name to add to the body when the wysihtml5 editor is supported\n    bodyClassName:        \"wysihtml5-supported\",\n    // Array (or single string) of stylesheet urls to be loaded in the editor's iframe\n    stylesheets:          [],\n    // Placeholder text to use, defaults to the placeholder attribute on the textarea element\n    placeholderText:      undef,\n    // Whether the composer should allow the user to manually resize images, tables etc.\n    allowObjectResizing:  true,\n    // Whether the rich text editor should be rendered on touch devices (wysihtml5 >= 0.3.0 comes with basic support for iOS 5)\n    supportTouchDevices:  true\n  };\n  \n  wysihtml5.Editor = wysihtml5.lang.Dispatcher.extend(\n    /** @scope wysihtml5.Editor.prototype */ {\n    constructor: function(textareaElement, config) {\n      this.textareaElement  = typeof(textareaElement) === \"string\" ? document.getElementById(textareaElement) : textareaElement;\n      this.config           = wysihtml5.lang.object({}).merge(defaultConfig).merge(config).get();\n      this.textarea         = new wysihtml5.views.Textarea(this, this.textareaElement, this.config);\n      this.currentView      = this.textarea;\n      this._isCompatible    = wysihtml5.browser.supported();\n      \n      // Sort out unsupported/unwanted browsers here\n      if (!this._isCompatible || (!this.config.supportTouchDevices && wysihtml5.browser.isTouchDevice())) {\n        var that = this;\n        setTimeout(function() { that.fire(\"beforeload\").fire(\"load\"); }, 0);\n        return;\n      }\n      \n      // Add class name to body, to indicate that the editor is supported\n      wysihtml5.dom.addClass(document.body, this.config.bodyClassName);\n      \n      this.composer = new wysihtml5.views.Composer(this, this.textareaElement, this.config);\n      this.currentView = this.composer;\n      \n      if (typeof(this.config.parser) === \"function\") {\n        this._initParser();\n      }\n      \n      this.observe(\"beforeload\", function() {\n        this.synchronizer = new wysihtml5.views.Synchronizer(this, this.textarea, this.composer);\n        if (this.config.toolbar) {\n          this.toolbar = new wysihtml5.toolbar.Toolbar(this, this.config.toolbar);\n        }\n      });\n      \n      try {\n        console.log(\"Heya! This page is using wysihtml5 for rich text editing. Check out https://github.com/xing/wysihtml5\");\n      } catch(e) {}\n    },\n    \n    isCompatible: function() {\n      return this._isCompatible;\n    },\n\n    clear: function() {\n      this.currentView.clear();\n      return this;\n    },\n\n    getValue: function(parse) {\n      return this.currentView.getValue(parse);\n    },\n\n    setValue: function(html, parse) {\n      if (!html) {\n        return this.clear();\n      }\n      this.currentView.setValue(html, parse);\n      return this;\n    },\n\n    focus: function(setToEnd) {\n      this.currentView.focus(setToEnd);\n      return this;\n    },\n\n    /**\n     * Deactivate editor (make it readonly)\n     */\n    disable: function() {\n      this.currentView.disable();\n      return this;\n    },\n    \n    /**\n     * Activate editor\n     */\n    enable: function() {\n      this.currentView.enable();\n      return this;\n    },\n    \n    isEmpty: function() {\n      return this.currentView.isEmpty();\n    },\n    \n    hasPlaceholderSet: function() {\n      return this.currentView.hasPlaceholderSet();\n    },\n    \n    parse: function(htmlOrElement) {\n      var returnValue = this.config.parser(htmlOrElement, this.config.parserRules, this.composer.sandbox.getDocument(), true);\n      if (typeof(htmlOrElement) === \"object\") {\n        wysihtml5.quirks.redraw(htmlOrElement);\n      }\n      return returnValue;\n    },\n    \n    /**\n     * Prepare html parser logic\n     *  - Observes for paste and drop\n     */\n    _initParser: function() {\n      this.observe(\"paste:composer\", function() {\n        var keepScrollPosition  = true,\n            that                = this;\n        that.composer.selection.executeAndRestore(function() {\n          wysihtml5.quirks.cleanPastedHTML(that.composer.element);\n          that.parse(that.composer.element);\n        }, keepScrollPosition);\n      });\n      \n      this.observe(\"paste:textarea\", function() {\n        var value   = this.textarea.getValue(),\n            newValue;\n        newValue = this.parse(value);\n        this.textarea.setValue(newValue);\n      });\n    }\n  });\n})(wysihtml5);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css",
    "content": "/*used for inbox compose, reply forms*/\n.inbox-editor {\n  padding: 10px;\n  margin: 0 !important;\n}\n\n/*used for inbox reply form, for the message blockquote on reply*/\nblockquote {\n  margin-top: 20px;\n  margin-left: 10px;\n  margin-bottom: 20px;\n  border-left: 1px solid #666 !important;\n  padding-left: 5px;\n  display: block;\n  opacity: 0.7;\n  filter: alpha(opacity=70);\n}\n\n/* used by the wysiwyg*/\n.wysiwyg-color-black {\n  color: black;\n}\n\n.wysiwyg-color-silver {\n  color: silver;\n}\n\n.wysiwyg-color-gray {\n  color: gray;\n}\n\n.wysiwyg-color-white {\n  color: white;\n}\n\n.wysiwyg-color-maroon {\n  color: maroon;\n}\n\n.wysiwyg-color-red {\n  color: red;\n}\n\n.wysiwyg-color-purple {\n  color: purple;\n}\n\n.wysiwyg-color-fuchsia {\n  color: fuchsia;\n}\n\n.wysiwyg-color-green {\n  color: green;\n}\n\n.wysiwyg-color-lime {\n  color: lime;\n}\n\n.wysiwyg-color-olive {\n  color: olive;\n}\n\n.wysiwyg-color-yellow {\n  color: yellow;\n}\n\n.wysiwyg-color-navy {\n  color: navy;\n}\n\n.wysiwyg-color-blue {\n  color: blue;\n}\n\n.wysiwyg-color-teal {\n  color: teal;\n}\n\n.wysiwyg-color-aqua {\n  color: aqua;\n}\n\n.wysiwyg-color-orange {\n  color: orange;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/clockface/css/clockface.css",
    "content": ".clearfix {\n  *zoom: 1;\n}\n.clearfix:before,\n.clearfix:after {\n  display: table;\n  content: \"\";\n  line-height: 0;\n}\n.clearfix:after {\n  clear: both;\n}\n.hide-text {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.input-block-level {\n  display: block;\n  width: 100%;\n  min-height: 30px;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.clockface {\n  width: 160px;\n  padding: 3px;\n  text-align: center;\n  /*\n    .l3 .center span {\n    \tvertical-align: middle;\n\t\tdisplay: inline-block;\n\t\t.ie7-inline-block();  \n\t\tpadding: 0 2px;  \t\n    }\n    */\n\n  /*\n    input {\n    \twidth: 20px;\n    \tmargin: 0;\n    \tvertical-align: top; \n     }\t\n\n    a {\n    \ttext-decoration: none;\n    \tpadding: 0 3px;\n    \tvertical-align: top;\n    \tfont-size: 0.85em;\n    \t.border-radius(3px);\n\n    \t&.am {margin-right: 8px;}\t\n    \t\n    \t&.active,\n    \t&.active:hover {\n    \t\t.buttonBackground(@btnSuccessBackground, spin(@btnSuccessBackground, 20));\n    \t}\n    }\n    */\n\n}\n.clockface > div {\n  clear: both;\n  overflow: auto;\n}\n.clockface .outer,\n.clockface .inner {\n  width: 22px;\n  height: 22px;\n  line-height: 22px;\n  cursor: default;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.clockface .outer.active,\n.clockface .inner.active,\n.clockface .outer.active:hover,\n.clockface .inner.active:hover {\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.clockface .outer:hover,\n.clockface .inner:hover {\n  background-color: #dcdcdc;\n}\n.clockface .outer {\n  color: gray;\n  font-size: 0.8em;\n}\n.clockface .outer.active,\n.clockface .outer.active:hover {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #5bb75b;\n  background-image: -moz-linear-gradient(top, #62c462, #51a351);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));\n  background-image: -webkit-linear-gradient(top, #62c462, #51a351);\n  background-image: -o-linear-gradient(top, #62c462, #51a351);\n  background-image: linear-gradient(to bottom, #62c462, #51a351);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);\n  border-color: #51a351 #51a351 #387038;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #51a351;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.clockface .outer.active:hover,\n.clockface .outer.active:hover:hover,\n.clockface .outer.active:active,\n.clockface .outer.active:hover:active,\n.clockface .outer.active.active,\n.clockface .outer.active:hover.active,\n.clockface .outer.active.disabled,\n.clockface .outer.active:hover.disabled,\n.clockface .outer.active[disabled],\n.clockface .outer.active:hover[disabled] {\n  color: #ffffff;\n  background-color: #51a351;\n  *background-color: #499249;\n}\n.clockface .outer.active:active,\n.clockface .outer.active:hover:active,\n.clockface .outer.active.active,\n.clockface .outer.active:hover.active {\n  background-color: #408140 \\9;\n}\n.clockface .inner.active,\n.clockface .inner.active:hover {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  *background-color: #0044cc;\n  /* Darken IE7 buttons by default so they stand out more given they won't have borders */\n\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.clockface .inner.active:hover,\n.clockface .inner.active:hover:hover,\n.clockface .inner.active:active,\n.clockface .inner.active:hover:active,\n.clockface .inner.active.active,\n.clockface .inner.active:hover.active,\n.clockface .inner.active.disabled,\n.clockface .inner.active:hover.disabled,\n.clockface .inner.active[disabled],\n.clockface .inner.active:hover[disabled] {\n  color: #ffffff;\n  background-color: #0044cc;\n  *background-color: #003bb3;\n}\n.clockface .inner.active:active,\n.clockface .inner.active:hover:active,\n.clockface .inner.active.active,\n.clockface .inner.active:hover.active {\n  background-color: #003399 \\9;\n}\n.clockface .l1 .cell,\n.clockface .l5 .cell {\n  width: 22px;\n  display: inline-block;\n  *display: inline;\n  /* IE7 inline-block hack */\n\n  *zoom: 1;\n}\n.clockface .l1 .outer {\n  margin-bottom: 3px;\n}\n.clockface .l5 .outer {\n  margin-top: 3px;\n}\n.clockface .l2 .outer,\n.clockface .l3 .outer,\n.clockface .l4 .outer,\n.clockface .l2 .inner,\n.clockface .l3 .inner,\n.clockface .l4 .inner {\n  display: inline-block;\n  *display: inline;\n  /* IE7 inline-block hack */\n\n  *zoom: 1;\n  vertical-align: middle;\n}\n.clockface .l2 .left,\n.clockface .l3 .left,\n.clockface .l4 .left {\n  float: left;\n}\n.clockface .l2 .left .outer,\n.clockface .l3 .left .outer,\n.clockface .l4 .left .outer {\n  margin-right: 3px;\n}\n.clockface .l2 .right,\n.clockface .l3 .right,\n.clockface .l4 .right {\n  float: right;\n}\n.clockface .l2 .right .outer,\n.clockface .l3 .right .outer,\n.clockface .l4 .right .outer {\n  margin-left: 3px;\n}\n.clockface .ampm {\n  font-size: 0.8em;\n  text-decoration: none;\n  border-bottom: dashed 1px;\n}\n.clockface .ampm:focus {\n  outline: 0;\n  outline: thin dotted \\9;\n  /* IE6-9 */\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/clockface/js/clockface.js",
    "content": "/**\n* Clockface - v1.0.1\n* Clockface timepicker for Twitter Bootstrap\n*\n* Confusion with noon and midnight: \n* http://en.wikipedia.org/wiki/12-hour_clock\n* Here considered '00:00 am' as midnight and '12:00 pm' as noon.\n*\n* Author: Vitaliy Potapov\n* Project page: http://github.com/vitalets/clockface\n* Copyright (c) 2012 Vitaliy Potapov. Released under MIT License.\n**/\n(function ($) {\n\n    var Clockface = function (element, options) {\n        this.$element = $(element);\n        this.options = $.extend({}, $.fn.clockface.defaults, options, this.$element.data());\n        this.init();  \n     };\n\n    Clockface.prototype = {\n        constructor: Clockface, \n        init: function () {\n          //apply template\n          this.$clockface = $($.fn.clockface.template);\n          this.$clockface.find('.l1 .cell, .left.cell').html('<div class=\"outer\"></div><div class=\"inner\"></div>'); \n          this.$clockface.find('.l5 .cell, .right.cell').html('<div class=\"inner\"></div><div class=\"outer\"></div>'); \n          this.$clockface.hide();\n\n          this.$outer = this.$clockface.find('.outer');\n          this.$inner = this.$clockface.find('.inner');\n          this.$ampm = this.$clockface.find('.ampm');\n\n          //internal vars\n          this.ampm = null;\n          this.hour = null;\n          this.minute = null;\n          \n          //click am/pm \n          this.$ampm.click($.proxy(this.clickAmPm, this));\n\n          //click cell\n          this.$clockface.on('click', '.cell', $.proxy(this.click, this));\n\n          this.parseFormat();\n          this.prepareRegexp();\n\n          //set ampm text\n          this.ampmtext = this.is24 ? {am: '12-23', pm: '0-11'} : {am: 'AM', pm: 'PM'};\n\n          this.isInline = this.$element.is('div');\n          if(this.isInline) {\n            this.$clockface.addClass('clockface-inline').appendTo(this.$element);\n          } else {\n            this.$clockface.addClass('dropdown-menu').appendTo('body');\n            if(this.options.trigger === 'focus') {\n              this.$element.on('focus.clockface', $.proxy(function(e) { this.show(); }, this));\n            }\n\n            // Click outside hide it. Register single handler for all clockface widgets\n            $(document).off('click.clockface').on('click.clockface', $.proxy(function (e) {\n                var $target = $(e.target);\n                //click inside some clockface --> do nothing\n                if ($target.closest('.clockface').length) {\n                  return;\n                }\n                //iterate all open clockface and close all except current\n                $('.clockface-open').each(function(){\n                  if(this === e.target) {\n                    return;\n                  }\n                  $(this).clockface('hide');\n                });\n            }, this));\n          }\n\n          //fill minutes once\n          this.fill('minute');\n        },\n\n        /*\n        Displays widget with specified value\n        */\n        show: function(value) {\n            if(this.$clockface.is(':visible')) {\n              return;\n            }\n            if(!this.isInline) {\n                if(value === undefined) {\n                  value = this.$element.val();\n                }\n                this.$element.addClass('clockface-open');\n                this.$element.on('keydown.clockface', $.proxy(this.keydown, this));\n                this.place();\n                $(window).on('resize.clockface', $.proxy(this.place, this));\n            }\n            this.$clockface.show();\n            this.setTime(value);\n\n            //trigger shown event\n            this.$element.triggerHandler('shown.clockface', this.getTime(true));\n        },\n        /*\n        hides widget\n        */\n        hide: function() {\n            this.$clockface.hide();\n            if(!this.isInline) {\n              this.$element.removeClass('clockface-open');  \n              this.$element.off('keydown.clockface');\n              $(window).off('resize.clockface');\n            }\n\n            //trigger hidden event\n            this.$element.triggerHandler('hidden.clockface', this.getTime(true));            \n        },\n\n        /*\n        toggles show/hide\n        */\n        toggle: function(value) {\n          if(this.$clockface.is(':visible')) {\n            this.hide();\n          } else {\n            this.show(value);\n          }\n        },\n\n         /*\n        Set time of clockface. Am/pm will be set automatically.\n        Value can be Date object or string\n        */\n        setTime: function(value) {\n          var res, hour, minute, ampm = 'am';\n\n          //no new value \n          if(value === undefined) {\n            //if ampm null, it;s first showw, need to render hours ('am' by default)\n            if(this.ampm === null) {\n              this.setAmPm('am');\n            }\n            return;\n          }\n\n          //take value from Date object\n          if(value instanceof Date) {\n            hour = value.getHours();\n            minute = value.getMinutes();\n          }\n\n          //parse value from string\n          if(typeof value === 'string' && value.length) { \n            res = this.parseTime(value);\n\n            //'24' always '0'\n            if(res.hour === 24) {\n              res.hour = 0;\n            }\n\n            hour = res.hour;             \n            minute = res.minute;             \n            ampm = res.ampm;             \n          }\n\n          //try to set ampm automatically\n          if(hour > 11 && hour < 24) {\n            ampm = 'pm';\n            //for 12h format substract 12 from value \n            if(!this.is24 && hour > 12) {\n              hour -= 12;\n            }\n          } else if(hour >= 0 && hour < 11) {\n                //always set am for 24h and for '0' in 12h \n                if(this.is24 || hour === 0) {\n                   ampm = 'am';\n               } \n               //otherwise ampm should be defined in value itself and retrieved when parsing\n          }      \n\n          this.setAmPm(ampm);\n          this.setHour(hour);\n          this.setMinute(minute);\n        },   \n\n        /*\n        Set ampm and re-fill hours\n        */\n        setAmPm: function(value) {\n          if(value === this.ampm) {\n             return;\n          } else {\n             this.ampm = value === 'am' ? 'am' : 'pm';\n          }\n\n          //set link's text\n          this.$ampm.text(this.ampmtext[this.ampm]);\n\n          //re-fill and highlight hour\n          this.fill('hour');\n          this.highlight('hour');\n        },   \n        /*\n        Sets hour value and highlight if possible\n        */\n        setHour: function(value) {\n          value = parseInt(value, 10);\n          value = isNaN(value) ? null : value;\n          if(value < 0 || value > 23) {\n            value = null;\n          }\n\n          if(value === this.hour) {\n            return;\n          } else {\n            this.hour = value;\n          }\n\n          this.highlight('hour');\n        },\n\n        /*\n        Sets minute value and highlight\n        */\n        setMinute: function(value) {\n          value = parseInt(value, 10);\n          value = isNaN(value) ? null : value;\n          if(value < 0 || value > 59) {\n            value = null;\n          }\n\n          if(value === this.minute) {\n            return;\n          } else {\n            this.minute = value;\n          }\n\n          this.highlight('minute');\n        },        \n\n        /*\n        Highlights hour/minute\n        */\n        highlight: function(what) {\n          var index,\n              values = this.getValues(what),\n              value = what === 'minute' ? this.minute : this.hour,\n              $cells = what === 'minute' ? this.$outer : this.$inner;\n\n          $cells.removeClass('active');\n\n          //find index of value and highlight if possible\n          index = $.inArray(value, values);\n          if(index >= 0) {\n            $cells.eq(index).addClass('active');\n          }\n        },\n\n        /*\n        Fill values around\n        */ \n        fill: function(what) {\n          var values = this.getValues(what),\n              $cells = what === 'minute' ? this.$outer : this.$inner,\n              leadZero = what === 'minute';           \n\n          $cells.each(function(i){\n            var v = values[i];\n            if(leadZero && v < 10) {\n              v = '0' + v;\n            }\n            $(this).text(v);\n          });\n        },          \n\n        /*\n        returns values of hours or minutes, depend on ampm and 24/12 format (0-11, 12-23, 00-55, etc)\n        param what: 'hour'/'minute'\n        */\n        getValues: function(what) {\n          var values = [11, 0, 1, 10, 2, 9, 3, 8, 4, 7, 6, 5],\n              result = values.slice();\n\n          //minutes\n          if(what === 'minute') {\n              $.each(values, function(i, v) { result[i] = v*5; });\n          } else {\n            //hours\n            if(!this.is24) {\n              result[1] = 12; //need this to show '12' instead of '00' for 12h am/pm\n            }\n            if(this.is24 && this.ampm === 'pm') {\n              $.each(values, function(i, v) { result[i] = v+12; });\n            }\n          }\n          return result;\n        },\n\n        /*\n        Click cell handler.\n        Stores hour/minute and highlights.\n        On second click deselect value\n        */\n        click: function(e) {\n          var $target = $(e.target),\n              value = $target.hasClass('active') ? null : $target.text();\n          if($target.hasClass('inner')) {\n            this.setHour(value);\n          } else {\n            this.setMinute(value);\n          }\n\n          //update value in input\n          if(!this.isInline) {\n            this.$element.val(this.getTime());\n          }          \n\n          //trigger pick event\n          this.$element.triggerHandler('pick.clockface', this.getTime(true));  \n        },\n\n        /*\n        Click handler on ampm link\n        */\n        clickAmPm: function(e) {\n          e.preventDefault();\n          //toggle am/pm\n          this.setAmPm(this.ampm === 'am' ? 'pm' : 'am');\n\n          //update value in input\n          if(!this.isInline && !this.is24) {\n            this.$element.val(this.getTime());\n          }    \n\n          //trigger pick event\n          this.$element.triggerHandler('pick.clockface', this.getTime(true));                  \n        },\n        \n\n        /*\n        Place widget below input\n        */\n        place: function(){\n          var zIndex = parseInt(this.$element.parents().filter(function() {\n                   return $(this).css('z-index') != 'auto';\n             }).first().css('z-index'), 10)+10,\n             offset = this.$element.offset();\n          this.$clockface.css({\n            top: offset.top + this.$element.outerHeight(),\n            left: offset.left,\n            zIndex: zIndex\n          });\n        },  \n\n        /*\n        keydown handler (for not inline mode)\n        */\n        keydown: function(e) {\n          //tab, escape, enter --> hide\n          if(/^(9|27|13)$/.test(e.which)) {\n            this.hide();\n            return;\n          } \n\n          clearTimeout(this.timer);\n          this.timer = setTimeout($.proxy(function(){\n            this.setTime(this.$element.val());\n          }, this), 500);\n        },  \n\n        /*\n        Parse format from options and set this.is24\n        */\n        parseFormat: function() {\n          var format = this.options.format,\n              hFormat = 'HH',\n              mFormat = 'mm';\n\n          //hour format    \n          $.each(['HH', 'hh', 'H', 'h'], function(i, f){\n            if(format.indexOf(f) !== -1) {\n              hFormat = f;\n              return false;\n            }\n          });\n\n          //minute format\n          $.each(['mm', 'm'], function(i, f){\n            if(format.indexOf(f) !== -1) {\n              mFormat = f;\n              return false;\n            }\n          });          \n\n          //is 24 hour format\n          this.is24 = hFormat.indexOf('H') !== -1; \n\n          this.hFormat = hFormat;\n          this.mFormat = mFormat;\n        },\n\n       \n\n        /*\n        Parse value passed as string or Date object\n        */\n        parseTime: function(value) {\n          var hour = null, \n              minute = null, \n              ampm = 'am', \n              parts = [], digits;\n\n            value = $.trim(value);\n\n            //try parse time from string assuming separator exist\n            if(this.regexpSep) {\n                parts = value.match(this.regexpSep);\n            }\n\n            if(parts && parts.length) {\n              hour = parts[1] ? parseInt(parts[1], 10) : null;\n              minute = parts[2] ? parseInt(parts[2], 10): null;\n              ampm = (!parts[3] || parts[3].toLowerCase() === 'a') ? 'am' : 'pm';\n            } else {\n              //if parse with separator failed, search for 1,4-digit block and process it\n              //use reversed string to start from end (usefull with full dates)\n              //see http://stackoverflow.com/questions/141348/what-is-the-best-way-to-parse-a-time-into-a-date-object-from-user-input-in-javas\n              value = value.split('').reverse().join('').replace(/\\s/g, '');\n              parts = value.match(this.regexpNoSep);\n              if(parts && parts.length) {\n                ampm = (!parts[1] || parts[1].toLowerCase() === 'a') ? 'am' : 'pm';\n                //reverse back\n                digits = parts[2].split('').reverse().join('');\n                //use smart analyzing to detect hours and minutes\n                switch(digits.length) {\n                  case 1:\n                    hour = parseInt(digits, 10); //e.g. '6'\n                  break;\n                  case 2:\n                    hour = parseInt(digits, 10); //e.g. '16'\n                    //if((this.is24 && hour > 24) || (!this.is24 && hour > 12)) { //e.g. 26\n                    if(hour > 24) { //e.g. 26\n                      hour = parseInt(digits[0], 10);\n                      minute = parseInt(digits[1], 10);\n                    }\n                  break;\n                  case 3:\n                    hour = parseInt(digits[0], 10);  //e.g. 105\n                    minute = parseInt(digits[1]+digits[2], 10); \n                    if(minute > 59) { \n                      hour = parseInt(digits[0]+digits[1], 10); //e.g. 195\n                      minute = parseInt(digits[2], 10); \n                      if(hour > 24) {\n                        hour = null;\n                        minute = null;\n                      }\n                    }\n                  break;\n                  case 4:\n                    hour = parseInt(digits[0]+digits[1], 10); //e.g. 2006\n                    minute = parseInt(digits[2]+digits[3], 10);\n                    if(hour > 24) {\n                      hour = null;\n                    }\n                    if(minute > 59) {\n                      minute = null;\n                    }\n                }\n              }\n            }\n\n          return {hour: hour, minute: minute, ampm: ampm};\n        },\n\n        prepareRegexp: function() {\n            //take separator from format\n            var sep = this.options.format.match(/h\\s*([^hm]?)\\s*m/i); //HH-mm, HH:mm\n            if(sep && sep.length) {\n              sep = sep[1];\n            } \n\n            //sep can be null for HH, and '' for HHmm \n            this.separator = sep;\n    \n            //parse from string\n            //use reversed string and regexp to parse 2-digit minutes first\n            //see http://stackoverflow.com/questions/141348/what-is-the-best-way-to-parse-a-time-into-a-date-object-from-user-input-in-javas\n            //this.regexp = new RegExp('(a|p)?\\\\s*((\\\\d\\\\d?)' + sep + ')?(\\\\d\\\\d?)', 'i');\n\n            //regexp, used with separator\n            this.regexpSep = (this.separator && this.separator.length) ? new RegExp('(\\\\d\\\\d?)\\\\s*\\\\' + this.separator + '\\\\s*(\\\\d?\\\\d?)\\\\s*(a|p)?', 'i') : null;\n\n            //second regexp applied if previous has no result or separator is empty (to reversed string)\n            this.regexpNoSep = new RegExp('(a|p)?\\\\s*(\\\\d{1,4})', 'i');\n        },\n\n        /*\n        Returns time as string in specified format\n        */\n        getTime: function(asObject) {\n          if(asObject === true) {\n            return {\n              hour: this.hour,\n              minute: this.minute,\n              ampm: this.ampm\n            };\n          }\n\n          var hour = this.hour !== null ? this.hour + '' : '',\n              minute = this.minute !== null ? this.minute + '' : '',\n              result = this.options.format;\n\n          if(!hour.length && !minute.length) {\n            return '';\n          }   \n\n          if(this.hFormat.length > 1 && hour.length === 1) {\n            hour = '0' + hour;\n          }   \n\n          if(this.mFormat.length > 1 && minute.length === 1) {\n            minute = '0' + minute;\n          }\n\n          //delete separator if no minutes\n          if(!minute.length && this.separator) {\n            result = result.replace(this.separator, '');\n          }\n\n          result = result.replace(this.hFormat, hour).replace(this.mFormat, minute);\n          if(!this.is24) {\n            if(result.indexOf('A') !== -1) {\n               result = result.replace('A', this.ampm.toUpperCase());\n            } else {\n               result = result.replace('a', this.ampm);\n            }\n          }\n\n          return result;\n        },\n\n        /*\n        Removes widget and detach events\n        */\n        destroy: function() {\n          this.hide();\n          this.$clockface.remove();\n          if(!this.isInline && this.options.trigger === 'focus') {\n            this.$element.off('focus.clockface');\n          }          \n        }\n    };\n\n    $.fn.clockface = function ( option ) {\n        var d, args = Array.apply(null, arguments);\n        args.shift();\n\n        //getTime returns string (not jQuery onject)\n        if(option === 'getTime' && this.length && (d = this.eq(0).data('clockface'))) {\n          return d.getTime.apply(d, args);\n        }\n\n        return this.each(function () {\n            var $this = $(this),\n            data = $this.data('clockface'),\n            options = typeof option == 'object' && option;\n            if (!data) {\n                $this.data('clockface', (data = new Clockface(this, options)));\n            }\n            if (typeof option == 'string' && typeof data[option] == 'function') {\n                data[option].apply(data, args);\n            }\n        });\n    };  \n    \n    $.fn.clockface.defaults = {\n        //see http://momentjs.com/docs/#/displaying/format/\n        format: 'H:mm',\n        trigger: 'focus' //focus|manual\n    };\n   \n\n $.fn.clockface.template = ''+\n      '<div class=\"clockface\">' +\n          '<div class=\"l1\">' +\n              '<div class=\"cell\"></div>' +\n              '<div class=\"cell\"></div>' +\n              '<div class=\"cell\"></div>' +\n          '</div>' +\n          '<div class=\"l2\">' +\n                '<div class=\"cell left\"></div>' +\n                '<div class=\"cell right\"></div>' +\n          '</div>'+\n          '<div class=\"l3\">' +\n                '<div class=\"cell left\"></div>' +\n                '<div class=\"cell right\"></div>' +\n                '<div class=\"center\"><a href=\"#\" class=\"ampm\"></a></div>' +\n          '</div>'+\n          '<div class=\"l4\">' +\n                '<div class=\"cell left\"></div>' +\n                '<div class=\"cell right\"></div>' +\n          '</div>'+\n          '<div class=\"l5\">' +\n                '<div class=\"cell\"></div>' +\n                '<div class=\"cell\"></div>' +\n                '<div class=\"cell\"></div>' +\n          '</div>'+\n      '</div>';  \n\n}(window.jQuery));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/counterup/jquery.counterup.js",
    "content": "/*!\n* jquery.counterup.js 1.0\n*\n* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal\n* Released under the GPL v2 License\n*\n* Date: Nov 26, 2013\n*/\n(function( $ ){\n  \"use strict\";\n\n  $.fn.counterUp = function( options ) {\n\n    // Defaults\n    var settings = $.extend({\n        'time': 400,\n        'delay': 10\n    }, options);\n\n    return this.each(function(){\n\n        // Store the object\n        var $this = $(this);\n        var $settings = settings;\n\n        var counterUpper = function() {\n            var divisions = $settings.time / $settings.delay;\n            var num = $this.attr('data-value');\n            var nums = [num];\n            var isComma = /[0-9]+,[0-9]+/.test(num);\n            num = num.replace(/,/g, '');\n            var isInt = /^[0-9]+$/.test(num);\n            var isFloat = /^[0-9]+\\.[0-9]+$/.test(num);\n            var decimalPlaces = isFloat ? (num.split('.')[1] || []).length : 0;\n\n            // Generate list of incremental numbers to display\n            for (var i = divisions; i >= 1; i--) {\n\n                // Preserve as int if input was int\n                var newNum = parseInt(num / divisions * i);\n\n                // Preserve float if input was float\n                if (isFloat) {\n                    newNum = parseFloat(num / divisions * i).toFixed(decimalPlaces);\n                }\n\n                // Preserve commas if input had commas\n                if (isComma) {\n                    while (/(\\d+)(\\d{3})/.test(newNum.toString())) {\n                        newNum = newNum.toString().replace(/(\\d+)(\\d{3})/, '$1'+','+'$2');\n                    }\n                }\n\n                nums.unshift(newNum);\n            }\n\n            $this.data('counterup-nums', nums);\n            $this.text('0');\n\n            // Updates the number until we're done\n            var f = function() {\n                $this.text($this.data('counterup-nums').shift());\n                if ($this.data('counterup-nums').length) {\n                    setTimeout($this.data('counterup-func'), $settings.delay);\n                } else {\n                    delete $this.data('counterup-nums');\n                    $this.data('counterup-nums', null);\n                    $this.data('counterup-func', null);\n                }\n            };\n            $this.data('counterup-func', f);\n\n            // Start the count up\n            setTimeout($this.data('counterup-func'), $settings.delay);\n        };\n\n        // Perform counts when the element gets into view\n        $this.waypoint(counterUpper, { offset: '100%', triggerOnce: true });\n    });\n\n  };\n\n})( jQuery );"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/bootstrap/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v2.3.1\n *\n * Copyright 2012 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world @twitter by @mdo and @fat.\n */\n\n.clearfix {\n  *zoom: 1;\n}\n\n.clearfix:before,\n.clearfix:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.clearfix:after {\n  clear: both;\n}\n\n.hide-text {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.input-block-level {\n  display: block;\n  width: 100%;\n  min-height: 30px;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nnav,\nsection {\n  display: block;\n}\n\naudio,\ncanvas,\nvideo {\n  display: inline-block;\n  *display: inline;\n  *zoom: 1;\n}\n\naudio:not([controls]) {\n  display: none;\n}\n\nhtml {\n  font-size: 100%;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\n\na:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\na:hover,\na:active {\n  outline: 0;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nimg {\n  width: auto\\9;\n  height: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  border: 0;\n  -ms-interpolation-mode: bicubic;\n}\n\n#map_canvas img,\n.google-maps img {\n  max-width: none;\n}\n\nbutton,\ninput,\nselect,\ntextarea {\n  margin: 0;\n  font-size: 100%;\n  vertical-align: middle;\n}\n\nbutton,\ninput {\n  *overflow: visible;\n  line-height: normal;\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\n\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  cursor: pointer;\n  -webkit-appearance: button;\n}\n\nlabel,\nselect,\nbutton,\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  cursor: pointer;\n}\n\ninput[type=\"search\"] {\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n          box-sizing: content-box;\n  -webkit-appearance: textfield;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n  -webkit-appearance: none;\n}\n\ntextarea {\n  overflow: auto;\n  vertical-align: top;\n}\n\n@media print {\n  * {\n    color: #000 !important;\n    text-shadow: none !important;\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  .ir a:after,\n  a[href^=\"javascript:\"]:after,\n  a[href^=\"#\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  @page  {\n    margin: 0.5cm;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n}\n\nbody {\n  margin: 0;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 20px;\n  color: #333333;\n  background-color: #ffffff;\n}\n\na {\n  color: #0088cc;\n  text-decoration: none;\n}\n\na:hover,\na:focus {\n  color: #005580;\n  text-decoration: underline;\n}\n\n.img-rounded {\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.img-polaroid {\n  padding: 4px;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.img-circle {\n  -webkit-border-radius: 500px;\n     -moz-border-radius: 500px;\n          border-radius: 500px;\n}\n\n.row {\n  margin-left: -20px;\n  *zoom: 1;\n}\n\n.row:before,\n.row:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.row:after {\n  clear: both;\n}\n\n[class*=\"span\"] {\n  float: left;\n  min-height: 1px;\n  margin-left: 20px;\n}\n\n.container,\n.navbar-static-top .container,\n.navbar-fixed-top .container,\n.navbar-fixed-bottom .container {\n  width: 940px;\n}\n\n.span12 {\n  width: 940px;\n}\n\n.span11 {\n  width: 860px;\n}\n\n.span10 {\n  width: 780px;\n}\n\n.span9 {\n  width: 700px;\n}\n\n.span8 {\n  width: 620px;\n}\n\n.span7 {\n  width: 540px;\n}\n\n.span6 {\n  width: 460px;\n}\n\n.span5 {\n  width: 380px;\n}\n\n.span4 {\n  width: 300px;\n}\n\n.span3 {\n  width: 220px;\n}\n\n.span2 {\n  width: 140px;\n}\n\n.span1 {\n  width: 60px;\n}\n\n.offset12 {\n  margin-left: 980px;\n}\n\n.offset11 {\n  margin-left: 900px;\n}\n\n.offset10 {\n  margin-left: 820px;\n}\n\n.offset9 {\n  margin-left: 740px;\n}\n\n.offset8 {\n  margin-left: 660px;\n}\n\n.offset7 {\n  margin-left: 580px;\n}\n\n.offset6 {\n  margin-left: 500px;\n}\n\n.offset5 {\n  margin-left: 420px;\n}\n\n.offset4 {\n  margin-left: 340px;\n}\n\n.offset3 {\n  margin-left: 260px;\n}\n\n.offset2 {\n  margin-left: 180px;\n}\n\n.offset1 {\n  margin-left: 100px;\n}\n\n.row-fluid {\n  width: 100%;\n  *zoom: 1;\n}\n\n.row-fluid:before,\n.row-fluid:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.row-fluid:after {\n  clear: both;\n}\n\n.row-fluid [class*=\"span\"] {\n  display: block;\n  float: left;\n  width: 100%;\n  min-height: 30px;\n  margin-left: 2.127659574468085%;\n  *margin-left: 2.074468085106383%;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\n.row-fluid [class*=\"span\"]:first-child {\n  margin-left: 0;\n}\n\n.row-fluid .controls-row [class*=\"span\"] + [class*=\"span\"] {\n  margin-left: 2.127659574468085%;\n}\n\n.row-fluid .span12 {\n  width: 100%;\n  *width: 99.94680851063829%;\n}\n\n.row-fluid .span11 {\n  width: 91.48936170212765%;\n  *width: 91.43617021276594%;\n}\n\n.row-fluid .span10 {\n  width: 82.97872340425532%;\n  *width: 82.92553191489361%;\n}\n\n.row-fluid .span9 {\n  width: 74.46808510638297%;\n  *width: 74.41489361702126%;\n}\n\n.row-fluid .span8 {\n  width: 65.95744680851064%;\n  *width: 65.90425531914893%;\n}\n\n.row-fluid .span7 {\n  width: 57.44680851063829%;\n  *width: 57.39361702127659%;\n}\n\n.row-fluid .span6 {\n  width: 48.93617021276595%;\n  *width: 48.88297872340425%;\n}\n\n.row-fluid .span5 {\n  width: 40.42553191489362%;\n  *width: 40.37234042553192%;\n}\n\n.row-fluid .span4 {\n  width: 31.914893617021278%;\n  *width: 31.861702127659576%;\n}\n\n.row-fluid .span3 {\n  width: 23.404255319148934%;\n  *width: 23.351063829787233%;\n}\n\n.row-fluid .span2 {\n  width: 14.893617021276595%;\n  *width: 14.840425531914894%;\n}\n\n.row-fluid .span1 {\n  width: 6.382978723404255%;\n  *width: 6.329787234042553%;\n}\n\n.row-fluid .offset12 {\n  margin-left: 104.25531914893617%;\n  *margin-left: 104.14893617021275%;\n}\n\n.row-fluid .offset12:first-child {\n  margin-left: 102.12765957446808%;\n  *margin-left: 102.02127659574467%;\n}\n\n.row-fluid .offset11 {\n  margin-left: 95.74468085106382%;\n  *margin-left: 95.6382978723404%;\n}\n\n.row-fluid .offset11:first-child {\n  margin-left: 93.61702127659574%;\n  *margin-left: 93.51063829787232%;\n}\n\n.row-fluid .offset10 {\n  margin-left: 87.23404255319149%;\n  *margin-left: 87.12765957446807%;\n}\n\n.row-fluid .offset10:first-child {\n  margin-left: 85.1063829787234%;\n  *margin-left: 84.99999999999999%;\n}\n\n.row-fluid .offset9 {\n  margin-left: 78.72340425531914%;\n  *margin-left: 78.61702127659572%;\n}\n\n.row-fluid .offset9:first-child {\n  margin-left: 76.59574468085106%;\n  *margin-left: 76.48936170212764%;\n}\n\n.row-fluid .offset8 {\n  margin-left: 70.2127659574468%;\n  *margin-left: 70.10638297872339%;\n}\n\n.row-fluid .offset8:first-child {\n  margin-left: 68.08510638297872%;\n  *margin-left: 67.9787234042553%;\n}\n\n.row-fluid .offset7 {\n  margin-left: 61.70212765957446%;\n  *margin-left: 61.59574468085106%;\n}\n\n.row-fluid .offset7:first-child {\n  margin-left: 59.574468085106375%;\n  *margin-left: 59.46808510638297%;\n}\n\n.row-fluid .offset6 {\n  margin-left: 53.191489361702125%;\n  *margin-left: 53.085106382978715%;\n}\n\n.row-fluid .offset6:first-child {\n  margin-left: 51.063829787234035%;\n  *margin-left: 50.95744680851063%;\n}\n\n.row-fluid .offset5 {\n  margin-left: 44.68085106382979%;\n  *margin-left: 44.57446808510638%;\n}\n\n.row-fluid .offset5:first-child {\n  margin-left: 42.5531914893617%;\n  *margin-left: 42.4468085106383%;\n}\n\n.row-fluid .offset4 {\n  margin-left: 36.170212765957444%;\n  *margin-left: 36.06382978723405%;\n}\n\n.row-fluid .offset4:first-child {\n  margin-left: 34.04255319148936%;\n  *margin-left: 33.93617021276596%;\n}\n\n.row-fluid .offset3 {\n  margin-left: 27.659574468085104%;\n  *margin-left: 27.5531914893617%;\n}\n\n.row-fluid .offset3:first-child {\n  margin-left: 25.53191489361702%;\n  *margin-left: 25.425531914893618%;\n}\n\n.row-fluid .offset2 {\n  margin-left: 19.148936170212764%;\n  *margin-left: 19.04255319148936%;\n}\n\n.row-fluid .offset2:first-child {\n  margin-left: 17.02127659574468%;\n  *margin-left: 16.914893617021278%;\n}\n\n.row-fluid .offset1 {\n  margin-left: 10.638297872340425%;\n  *margin-left: 10.53191489361702%;\n}\n\n.row-fluid .offset1:first-child {\n  margin-left: 8.51063829787234%;\n  *margin-left: 8.404255319148938%;\n}\n\n[class*=\"span\"].hide,\n.row-fluid [class*=\"span\"].hide {\n  display: none;\n}\n\n[class*=\"span\"].pull-right,\n.row-fluid [class*=\"span\"].pull-right {\n  float: right;\n}\n\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  *zoom: 1;\n}\n\n.container:before,\n.container:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.container:after {\n  clear: both;\n}\n\n.container-fluid {\n  padding-right: 20px;\n  padding-left: 20px;\n  *zoom: 1;\n}\n\n.container-fluid:before,\n.container-fluid:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.container-fluid:after {\n  clear: both;\n}\n\np {\n  margin: 0 0 10px;\n}\n\n.lead {\n  margin-bottom: 20px;\n  font-size: 21px;\n  font-weight: 200;\n  line-height: 30px;\n}\n\nsmall {\n  font-size: 85%;\n}\n\nstrong {\n  font-weight: bold;\n}\n\nem {\n  font-style: italic;\n}\n\ncite {\n  font-style: normal;\n}\n\n.muted {\n  color: #999999;\n}\n\na.muted:hover,\na.muted:focus {\n  color: #808080;\n}\n\n.text-warning {\n  color: #c09853;\n}\n\na.text-warning:hover,\na.text-warning:focus {\n  color: #a47e3c;\n}\n\n.text-error {\n  color: #b94a48;\n}\n\na.text-error:hover,\na.text-error:focus {\n  color: #953b39;\n}\n\n.text-info {\n  color: #3a87ad;\n}\n\na.text-info:hover,\na.text-info:focus {\n  color: #2d6987;\n}\n\n.text-success {\n  color: #468847;\n}\n\na.text-success:hover,\na.text-success:focus {\n  color: #356635;\n}\n\n.text-left {\n  text-align: left;\n}\n\n.text-right {\n  text-align: right;\n}\n\n.text-center {\n  text-align: center;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  margin: 10px 0;\n  font-family: inherit;\n  font-weight: bold;\n  line-height: 20px;\n  color: inherit;\n  text-rendering: optimizelegibility;\n}\n\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small {\n  font-weight: normal;\n  line-height: 1;\n  color: #999999;\n}\n\nh1,\nh2,\nh3 {\n  line-height: 40px;\n}\n\nh1 {\n  font-size: 38.5px;\n}\n\nh2 {\n  font-size: 31.5px;\n}\n\nh3 {\n  font-size: 24.5px;\n}\n\nh4 {\n  font-size: 17.5px;\n}\n\nh5 {\n  font-size: 14px;\n}\n\nh6 {\n  font-size: 11.9px;\n}\n\nh1 small {\n  font-size: 24.5px;\n}\n\nh2 small {\n  font-size: 17.5px;\n}\n\nh3 small {\n  font-size: 14px;\n}\n\nh4 small {\n  font-size: 14px;\n}\n\n.page-header {\n  padding-bottom: 9px;\n  margin: 20px 0 30px;\n  border-bottom: 1px solid #eeeeee;\n}\n\nul,\nol {\n  padding: 0;\n  margin: 0 0 10px 25px;\n}\n\nul ul,\nul ol,\nol ol,\nol ul {\n  margin-bottom: 0;\n}\n\nli {\n  line-height: 20px;\n}\n\nul.unstyled,\nol.unstyled {\n  margin-left: 0;\n  list-style: none;\n}\n\nul.inline,\nol.inline {\n  margin-left: 0;\n  list-style: none;\n}\n\nul.inline > li,\nol.inline > li {\n  display: inline-block;\n  *display: inline;\n  padding-right: 5px;\n  padding-left: 5px;\n  *zoom: 1;\n}\n\ndl {\n  margin-bottom: 20px;\n}\n\ndt,\ndd {\n  line-height: 20px;\n}\n\ndt {\n  font-weight: bold;\n}\n\ndd {\n  margin-left: 10px;\n}\n\n.dl-horizontal {\n  *zoom: 1;\n}\n\n.dl-horizontal:before,\n.dl-horizontal:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.dl-horizontal:after {\n  clear: both;\n}\n\n.dl-horizontal dt {\n  float: left;\n  width: 160px;\n  overflow: hidden;\n  clear: left;\n  text-align: right;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.dl-horizontal dd {\n  margin-left: 180px;\n}\n\nhr {\n  margin: 20px 0;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n  border-bottom: 1px solid #ffffff;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #999999;\n}\n\nabbr.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\nblockquote {\n  padding: 0 0 0 15px;\n  margin: 0 0 20px;\n  border-left: 5px solid #eeeeee;\n}\n\nblockquote p {\n  margin-bottom: 0;\n  font-size: 17.5px;\n  font-weight: 300;\n  line-height: 1.25;\n}\n\nblockquote small {\n  display: block;\n  line-height: 20px;\n  color: #999999;\n}\n\nblockquote small:before {\n  content: '\\2014 \\00A0';\n}\n\nblockquote.pull-right {\n  float: right;\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n}\n\nblockquote.pull-right p,\nblockquote.pull-right small {\n  text-align: right;\n}\n\nblockquote.pull-right small:before {\n  content: '';\n}\n\nblockquote.pull-right small:after {\n  content: '\\00A0 \\2014';\n}\n\nq:before,\nq:after,\nblockquote:before,\nblockquote:after {\n  content: \"\";\n}\n\naddress {\n  display: block;\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 20px;\n}\n\ncode,\npre {\n  padding: 0 3px 2px;\n  font-family: Monaco, Menlo, Consolas, \"Courier New\", monospace;\n  font-size: 12px;\n  color: #333333;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\ncode {\n  padding: 2px 4px;\n  color: #d14;\n  white-space: nowrap;\n  background-color: #f7f7f9;\n  border: 1px solid #e1e1e8;\n}\n\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 20px;\n  word-break: break-all;\n  word-wrap: break-word;\n  white-space: pre;\n  white-space: pre-wrap;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\npre.prettyprint {\n  margin-bottom: 20px;\n}\n\npre code {\n  padding: 0;\n  color: inherit;\n  white-space: pre;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\nform {\n  margin: 0 0 20px;\n}\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: 40px;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\n\nlegend small {\n  font-size: 15px;\n  color: #999999;\n}\n\nlabel,\ninput,\nbutton,\nselect,\ntextarea {\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 20px;\n}\n\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n}\n\nlabel {\n  display: block;\n  margin-bottom: 5px;\n}\n\nselect,\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  display: inline-block;\n  height: 20px;\n  padding: 4px 6px;\n  margin-bottom: 10px;\n  font-size: 14px;\n  line-height: 20px;\n  color: #555555;\n  vertical-align: middle;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\ninput,\ntextarea,\n.uneditable-input {\n  width: 206px;\n}\n\ntextarea {\n  height: auto;\n}\n\ntextarea,\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"datetime\"],\ninput[type=\"datetime-local\"],\ninput[type=\"date\"],\ninput[type=\"month\"],\ninput[type=\"time\"],\ninput[type=\"week\"],\ninput[type=\"number\"],\ninput[type=\"email\"],\ninput[type=\"url\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"color\"],\n.uneditable-input {\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;\n     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;\n       -o-transition: border linear 0.2s, box-shadow linear 0.2s;\n          transition: border linear 0.2s, box-shadow linear 0.2s;\n}\n\ntextarea:focus,\ninput[type=\"text\"]:focus,\ninput[type=\"password\"]:focus,\ninput[type=\"datetime\"]:focus,\ninput[type=\"datetime-local\"]:focus,\ninput[type=\"date\"]:focus,\ninput[type=\"month\"]:focus,\ninput[type=\"time\"]:focus,\ninput[type=\"week\"]:focus,\ninput[type=\"number\"]:focus,\ninput[type=\"email\"]:focus,\ninput[type=\"url\"]:focus,\ninput[type=\"search\"]:focus,\ninput[type=\"tel\"]:focus,\ninput[type=\"color\"]:focus,\n.uneditable-input:focus {\n  border-color: rgba(82, 168, 236, 0.8);\n  outline: 0;\n  outline: thin dotted \\9;\n  /* IE6-9 */\n\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  *margin-top: 0;\n  line-height: normal;\n}\n\ninput[type=\"file\"],\ninput[type=\"image\"],\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  width: auto;\n}\n\nselect,\ninput[type=\"file\"] {\n  height: 30px;\n  /* In IE7, the height of the select element cannot be changed by height, only font-size */\n\n  *margin-top: 4px;\n  /* For IE7, add top margin to align select with labels */\n\n  line-height: 30px;\n}\n\nselect {\n  width: 220px;\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n}\n\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\nselect:focus,\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n.uneditable-input,\n.uneditable-textarea {\n  color: #999999;\n  cursor: not-allowed;\n  background-color: #fcfcfc;\n  border-color: #cccccc;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);\n     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);\n}\n\n.uneditable-input {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.uneditable-textarea {\n  width: auto;\n  height: auto;\n}\n\ninput:-moz-placeholder,\ntextarea:-moz-placeholder {\n  color: #999999;\n}\n\ninput:-ms-input-placeholder,\ntextarea:-ms-input-placeholder {\n  color: #999999;\n}\n\ninput::-webkit-input-placeholder,\ntextarea::-webkit-input-placeholder {\n  color: #999999;\n}\n\n.radio,\n.checkbox {\n  min-height: 20px;\n  padding-left: 20px;\n}\n\n.radio input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-left: -20px;\n}\n\n.controls > .radio:first-child,\n.controls > .checkbox:first-child {\n  padding-top: 5px;\n}\n\n.radio.inline,\n.checkbox.inline {\n  display: inline-block;\n  padding-top: 5px;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n\n.radio.inline + .radio.inline,\n.checkbox.inline + .checkbox.inline {\n  margin-left: 10px;\n}\n\n.input-mini {\n  width: 60px;\n}\n\n.input-small {\n  width: 90px;\n}\n\n.input-medium {\n  width: 150px;\n}\n\n.input-large {\n  width: 210px;\n}\n\n.input-xlarge {\n  width: 270px;\n}\n\n.input-xxlarge {\n  width: 530px;\n}\n\ninput[class*=\"span\"],\nselect[class*=\"span\"],\ntextarea[class*=\"span\"],\n.uneditable-input[class*=\"span\"],\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"] {\n  float: none;\n  margin-left: 0;\n}\n\n.input-append input[class*=\"span\"],\n.input-append .uneditable-input[class*=\"span\"],\n.input-prepend input[class*=\"span\"],\n.input-prepend .uneditable-input[class*=\"span\"],\n.row-fluid input[class*=\"span\"],\n.row-fluid select[class*=\"span\"],\n.row-fluid textarea[class*=\"span\"],\n.row-fluid .uneditable-input[class*=\"span\"],\n.row-fluid .input-prepend [class*=\"span\"],\n.row-fluid .input-append [class*=\"span\"] {\n  display: inline-block;\n}\n\ninput,\ntextarea,\n.uneditable-input {\n  margin-left: 0;\n}\n\n.controls-row [class*=\"span\"] + [class*=\"span\"] {\n  margin-left: 20px;\n}\n\ninput.span12,\ntextarea.span12,\n.uneditable-input.span12 {\n  width: 926px;\n}\n\ninput.span11,\ntextarea.span11,\n.uneditable-input.span11 {\n  width: 846px;\n}\n\ninput.span10,\ntextarea.span10,\n.uneditable-input.span10 {\n  width: 766px;\n}\n\ninput.span9,\ntextarea.span9,\n.uneditable-input.span9 {\n  width: 686px;\n}\n\ninput.span8,\ntextarea.span8,\n.uneditable-input.span8 {\n  width: 606px;\n}\n\ninput.span7,\ntextarea.span7,\n.uneditable-input.span7 {\n  width: 526px;\n}\n\ninput.span6,\ntextarea.span6,\n.uneditable-input.span6 {\n  width: 446px;\n}\n\ninput.span5,\ntextarea.span5,\n.uneditable-input.span5 {\n  width: 366px;\n}\n\ninput.span4,\ntextarea.span4,\n.uneditable-input.span4 {\n  width: 286px;\n}\n\ninput.span3,\ntextarea.span3,\n.uneditable-input.span3 {\n  width: 206px;\n}\n\ninput.span2,\ntextarea.span2,\n.uneditable-input.span2 {\n  width: 126px;\n}\n\ninput.span1,\ntextarea.span1,\n.uneditable-input.span1 {\n  width: 46px;\n}\n\n.controls-row {\n  *zoom: 1;\n}\n\n.controls-row:before,\n.controls-row:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.controls-row:after {\n  clear: both;\n}\n\n.controls-row [class*=\"span\"],\n.row-fluid .controls-row [class*=\"span\"] {\n  float: left;\n}\n\n.controls-row .checkbox[class*=\"span\"],\n.controls-row .radio[class*=\"span\"] {\n  padding-top: 5px;\n}\n\ninput[disabled],\nselect[disabled],\ntextarea[disabled],\ninput[readonly],\nselect[readonly],\ntextarea[readonly] {\n  cursor: not-allowed;\n  background-color: #eeeeee;\n}\n\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"][readonly],\ninput[type=\"checkbox\"][readonly] {\n  background-color: transparent;\n}\n\n.control-group.warning .control-label,\n.control-group.warning .help-block,\n.control-group.warning .help-inline {\n  color: #c09853;\n}\n\n.control-group.warning .checkbox,\n.control-group.warning .radio,\n.control-group.warning input,\n.control-group.warning select,\n.control-group.warning textarea {\n  color: #c09853;\n}\n\n.control-group.warning input,\n.control-group.warning select,\n.control-group.warning textarea {\n  border-color: #c09853;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.warning input:focus,\n.control-group.warning select:focus,\n.control-group.warning textarea:focus {\n  border-color: #a47e3c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n}\n\n.control-group.warning .input-prepend .add-on,\n.control-group.warning .input-append .add-on {\n  color: #c09853;\n  background-color: #fcf8e3;\n  border-color: #c09853;\n}\n\n.control-group.error .control-label,\n.control-group.error .help-block,\n.control-group.error .help-inline {\n  color: #b94a48;\n}\n\n.control-group.error .checkbox,\n.control-group.error .radio,\n.control-group.error input,\n.control-group.error select,\n.control-group.error textarea {\n  color: #b94a48;\n}\n\n.control-group.error input,\n.control-group.error select,\n.control-group.error textarea {\n  border-color: #b94a48;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.error input:focus,\n.control-group.error select:focus,\n.control-group.error textarea:focus {\n  border-color: #953b39;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n}\n\n.control-group.error .input-prepend .add-on,\n.control-group.error .input-append .add-on {\n  color: #b94a48;\n  background-color: #f2dede;\n  border-color: #b94a48;\n}\n\n.control-group.success .control-label,\n.control-group.success .help-block,\n.control-group.success .help-inline {\n  color: #468847;\n}\n\n.control-group.success .checkbox,\n.control-group.success .radio,\n.control-group.success input,\n.control-group.success select,\n.control-group.success textarea {\n  color: #468847;\n}\n\n.control-group.success input,\n.control-group.success select,\n.control-group.success textarea {\n  border-color: #468847;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.success input:focus,\n.control-group.success select:focus,\n.control-group.success textarea:focus {\n  border-color: #356635;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n}\n\n.control-group.success .input-prepend .add-on,\n.control-group.success .input-append .add-on {\n  color: #468847;\n  background-color: #dff0d8;\n  border-color: #468847;\n}\n\n.control-group.info .control-label,\n.control-group.info .help-block,\n.control-group.info .help-inline {\n  color: #3a87ad;\n}\n\n.control-group.info .checkbox,\n.control-group.info .radio,\n.control-group.info input,\n.control-group.info select,\n.control-group.info textarea {\n  color: #3a87ad;\n}\n\n.control-group.info input,\n.control-group.info select,\n.control-group.info textarea {\n  border-color: #3a87ad;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.control-group.info input:focus,\n.control-group.info select:focus,\n.control-group.info textarea:focus {\n  border-color: #2d6987;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;\n}\n\n.control-group.info .input-prepend .add-on,\n.control-group.info .input-append .add-on {\n  color: #3a87ad;\n  background-color: #d9edf7;\n  border-color: #3a87ad;\n}\n\ninput:focus:invalid,\ntextarea:focus:invalid,\nselect:focus:invalid {\n  color: #b94a48;\n  border-color: #ee5f5b;\n}\n\ninput:focus:invalid:focus,\ntextarea:focus:invalid:focus,\nselect:focus:invalid:focus {\n  border-color: #e9322d;\n  -webkit-box-shadow: 0 0 6px #f8b9b7;\n     -moz-box-shadow: 0 0 6px #f8b9b7;\n          box-shadow: 0 0 6px #f8b9b7;\n}\n\n.form-actions {\n  padding: 19px 20px 20px;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #e5e5e5;\n  *zoom: 1;\n}\n\n.form-actions:before,\n.form-actions:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.form-actions:after {\n  clear: both;\n}\n\n.help-block,\n.help-inline {\n  color: #595959;\n}\n\n.help-block {\n  display: block;\n  margin-bottom: 10px;\n}\n\n.help-inline {\n  display: inline-block;\n  *display: inline;\n  padding-left: 5px;\n  vertical-align: middle;\n  *zoom: 1;\n}\n\n.input-append,\n.input-prepend {\n  display: inline-block;\n  margin-bottom: 10px;\n  font-size: 0;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n\n.input-append input,\n.input-prepend input,\n.input-append select,\n.input-prepend select,\n.input-append .uneditable-input,\n.input-prepend .uneditable-input,\n.input-append .dropdown-menu,\n.input-prepend .dropdown-menu,\n.input-append .popover,\n.input-prepend .popover {\n  font-size: 14px;\n}\n\n.input-append input,\n.input-prepend input,\n.input-append select,\n.input-prepend select,\n.input-append .uneditable-input,\n.input-prepend .uneditable-input {\n  position: relative;\n  margin-bottom: 0;\n  *margin-left: 0;\n  vertical-align: top;\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-append input:focus,\n.input-prepend input:focus,\n.input-append select:focus,\n.input-prepend select:focus,\n.input-append .uneditable-input:focus,\n.input-prepend .uneditable-input:focus {\n  z-index: 2;\n}\n\n.input-append .add-on,\n.input-prepend .add-on {\n  display: inline-block;\n  width: auto;\n  height: 20px;\n  min-width: 16px;\n  padding: 4px 5px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 20px;\n  text-align: center;\n  text-shadow: 0 1px 0 #ffffff;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n}\n\n.input-append .add-on,\n.input-prepend .add-on,\n.input-append .btn,\n.input-prepend .btn,\n.input-append .btn-group > .dropdown-toggle,\n.input-prepend .btn-group > .dropdown-toggle {\n  vertical-align: top;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.input-append .active,\n.input-prepend .active {\n  background-color: #a9dba9;\n  border-color: #46a546;\n}\n\n.input-prepend .add-on,\n.input-prepend .btn {\n  margin-right: -1px;\n}\n\n.input-prepend .add-on:first-child,\n.input-prepend .btn:first-child {\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.input-append input,\n.input-append select,\n.input-append .uneditable-input {\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.input-append input + .btn-group .btn:last-child,\n.input-append select + .btn-group .btn:last-child,\n.input-append .uneditable-input + .btn-group .btn:last-child {\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-append .add-on,\n.input-append .btn,\n.input-append .btn-group {\n  margin-left: -1px;\n}\n\n.input-append .add-on:last-child,\n.input-append .btn:last-child,\n.input-append .btn-group:last-child > .dropdown-toggle {\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-prepend.input-append input,\n.input-prepend.input-append select,\n.input-prepend.input-append .uneditable-input {\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.input-prepend.input-append input + .btn-group .btn,\n.input-prepend.input-append select + .btn-group .btn,\n.input-prepend.input-append .uneditable-input + .btn-group .btn {\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-prepend.input-append .add-on:first-child,\n.input-prepend.input-append .btn:first-child {\n  margin-right: -1px;\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.input-prepend.input-append .add-on:last-child,\n.input-prepend.input-append .btn:last-child {\n  margin-left: -1px;\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.input-prepend.input-append .btn-group:first-child {\n  margin-left: 0;\n}\n\ninput.search-query {\n  padding-right: 14px;\n  padding-right: 4px \\9;\n  padding-left: 14px;\n  padding-left: 4px \\9;\n  /* IE7-8 doesn't have border-radius, so don't indent the padding */\n\n  margin-bottom: 0;\n  -webkit-border-radius: 15px;\n     -moz-border-radius: 15px;\n          border-radius: 15px;\n}\n\n/* Allow for input prepend/append in search forms */\n\n.form-search .input-append .search-query,\n.form-search .input-prepend .search-query {\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.form-search .input-append .search-query {\n  -webkit-border-radius: 14px 0 0 14px;\n     -moz-border-radius: 14px 0 0 14px;\n          border-radius: 14px 0 0 14px;\n}\n\n.form-search .input-append .btn {\n  -webkit-border-radius: 0 14px 14px 0;\n     -moz-border-radius: 0 14px 14px 0;\n          border-radius: 0 14px 14px 0;\n}\n\n.form-search .input-prepend .search-query {\n  -webkit-border-radius: 0 14px 14px 0;\n     -moz-border-radius: 0 14px 14px 0;\n          border-radius: 0 14px 14px 0;\n}\n\n.form-search .input-prepend .btn {\n  -webkit-border-radius: 14px 0 0 14px;\n     -moz-border-radius: 14px 0 0 14px;\n          border-radius: 14px 0 0 14px;\n}\n\n.form-search input,\n.form-inline input,\n.form-horizontal input,\n.form-search textarea,\n.form-inline textarea,\n.form-horizontal textarea,\n.form-search select,\n.form-inline select,\n.form-horizontal select,\n.form-search .help-inline,\n.form-inline .help-inline,\n.form-horizontal .help-inline,\n.form-search .uneditable-input,\n.form-inline .uneditable-input,\n.form-horizontal .uneditable-input,\n.form-search .input-prepend,\n.form-inline .input-prepend,\n.form-horizontal .input-prepend,\n.form-search .input-append,\n.form-inline .input-append,\n.form-horizontal .input-append {\n  display: inline-block;\n  *display: inline;\n  margin-bottom: 0;\n  vertical-align: middle;\n  *zoom: 1;\n}\n\n.form-search .hide,\n.form-inline .hide,\n.form-horizontal .hide {\n  display: none;\n}\n\n.form-search label,\n.form-inline label,\n.form-search .btn-group,\n.form-inline .btn-group {\n  display: inline-block;\n}\n\n.form-search .input-append,\n.form-inline .input-append,\n.form-search .input-prepend,\n.form-inline .input-prepend {\n  margin-bottom: 0;\n}\n\n.form-search .radio,\n.form-search .checkbox,\n.form-inline .radio,\n.form-inline .checkbox {\n  padding-left: 0;\n  margin-bottom: 0;\n  vertical-align: middle;\n}\n\n.form-search .radio input[type=\"radio\"],\n.form-search .checkbox input[type=\"checkbox\"],\n.form-inline .radio input[type=\"radio\"],\n.form-inline .checkbox input[type=\"checkbox\"] {\n  float: left;\n  margin-right: 3px;\n  margin-left: 0;\n}\n\n.control-group {\n  margin-bottom: 10px;\n}\n\nlegend + .control-group {\n  margin-top: 20px;\n  -webkit-margin-top-collapse: separate;\n}\n\n.form-horizontal .control-group {\n  margin-bottom: 20px;\n  *zoom: 1;\n}\n\n.form-horizontal .control-group:before,\n.form-horizontal .control-group:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.form-horizontal .control-group:after {\n  clear: both;\n}\n\n.form-horizontal .control-label {\n  float: left;\n  width: 160px;\n  padding-top: 5px;\n  text-align: right;\n}\n\n.form-horizontal .controls {\n  *display: inline-block;\n  *padding-left: 20px;\n  margin-left: 180px;\n  *margin-left: 0;\n}\n\n.form-horizontal .controls:first-child {\n  *padding-left: 180px;\n}\n\n.form-horizontal .help-block {\n  margin-bottom: 0;\n}\n\n.form-horizontal input + .help-block,\n.form-horizontal select + .help-block,\n.form-horizontal textarea + .help-block,\n.form-horizontal .uneditable-input + .help-block,\n.form-horizontal .input-prepend + .help-block,\n.form-horizontal .input-append + .help-block {\n  margin-top: 10px;\n}\n\n.form-horizontal .form-actions {\n  padding-left: 180px;\n}\n\ntable {\n  max-width: 100%;\n  background-color: transparent;\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 20px;\n}\n\n.table th,\n.table td {\n  padding: 8px;\n  line-height: 20px;\n  text-align: left;\n  vertical-align: top;\n  border-top: 1px solid #dddddd;\n}\n\n.table th {\n  font-weight: bold;\n}\n\n.table thead th {\n  vertical-align: bottom;\n}\n\n.table caption + thead tr:first-child th,\n.table caption + thead tr:first-child td,\n.table colgroup + thead tr:first-child th,\n.table colgroup + thead tr:first-child td,\n.table thead:first-child tr:first-child th,\n.table thead:first-child tr:first-child td {\n  border-top: 0;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dddddd;\n}\n\n.table .table {\n  background-color: #ffffff;\n}\n\n.table-condensed th,\n.table-condensed td {\n  padding: 4px 5px;\n}\n\n.table-bordered {\n  border: 1px solid #dddddd;\n  border-collapse: separate;\n  *border-collapse: collapse;\n  border-left: 0;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border-left: 1px solid #dddddd;\n}\n\n.table-bordered caption + thead tr:first-child th,\n.table-bordered caption + tbody tr:first-child th,\n.table-bordered caption + tbody tr:first-child td,\n.table-bordered colgroup + thead tr:first-child th,\n.table-bordered colgroup + tbody tr:first-child th,\n.table-bordered colgroup + tbody tr:first-child td,\n.table-bordered thead:first-child tr:first-child th,\n.table-bordered tbody:first-child tr:first-child th,\n.table-bordered tbody:first-child tr:first-child td {\n  border-top: 0;\n}\n\n.table-bordered thead:first-child tr:first-child > th:first-child,\n.table-bordered tbody:first-child tr:first-child > td:first-child,\n.table-bordered tbody:first-child tr:first-child > th:first-child {\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.table-bordered thead:first-child tr:first-child > th:last-child,\n.table-bordered tbody:first-child tr:first-child > td:last-child,\n.table-bordered tbody:first-child tr:first-child > th:last-child {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n}\n\n.table-bordered thead:last-child tr:last-child > th:first-child,\n.table-bordered tbody:last-child tr:last-child > td:first-child,\n.table-bordered tbody:last-child tr:last-child > th:first-child,\n.table-bordered tfoot:last-child tr:last-child > td:first-child,\n.table-bordered tfoot:last-child tr:last-child > th:first-child {\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n}\n\n.table-bordered thead:last-child tr:last-child > th:last-child,\n.table-bordered tbody:last-child tr:last-child > td:last-child,\n.table-bordered tbody:last-child tr:last-child > th:last-child,\n.table-bordered tfoot:last-child tr:last-child > td:last-child,\n.table-bordered tfoot:last-child tr:last-child > th:last-child {\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -moz-border-radius-bottomright: 4px;\n}\n\n.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {\n  -webkit-border-bottom-left-radius: 0;\n          border-bottom-left-radius: 0;\n  -moz-border-radius-bottomleft: 0;\n}\n\n.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {\n  -webkit-border-bottom-right-radius: 0;\n          border-bottom-right-radius: 0;\n  -moz-border-radius-bottomright: 0;\n}\n\n.table-bordered caption + thead tr:first-child th:first-child,\n.table-bordered caption + tbody tr:first-child td:first-child,\n.table-bordered colgroup + thead tr:first-child th:first-child,\n.table-bordered colgroup + tbody tr:first-child td:first-child {\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.table-bordered caption + thead tr:first-child th:last-child,\n.table-bordered caption + tbody tr:first-child td:last-child,\n.table-bordered colgroup + thead tr:first-child th:last-child,\n.table-bordered colgroup + tbody tr:first-child td:last-child {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n}\n\n.table-striped tbody > tr:nth-child(odd) > td,\n.table-striped tbody > tr:nth-child(odd) > th {\n  background-color: #f9f9f9;\n}\n\n.table-hover tbody tr:hover > td,\n.table-hover tbody tr:hover > th {\n  background-color: #f5f5f5;\n}\n\ntable td[class*=\"span\"],\ntable th[class*=\"span\"],\n.row-fluid table td[class*=\"span\"],\n.row-fluid table th[class*=\"span\"] {\n  display: table-cell;\n  float: none;\n  margin-left: 0;\n}\n\n.table td.span1,\n.table th.span1 {\n  float: none;\n  width: 44px;\n  margin-left: 0;\n}\n\n.table td.span2,\n.table th.span2 {\n  float: none;\n  width: 124px;\n  margin-left: 0;\n}\n\n.table td.span3,\n.table th.span3 {\n  float: none;\n  width: 204px;\n  margin-left: 0;\n}\n\n.table td.span4,\n.table th.span4 {\n  float: none;\n  width: 284px;\n  margin-left: 0;\n}\n\n.table td.span5,\n.table th.span5 {\n  float: none;\n  width: 364px;\n  margin-left: 0;\n}\n\n.table td.span6,\n.table th.span6 {\n  float: none;\n  width: 444px;\n  margin-left: 0;\n}\n\n.table td.span7,\n.table th.span7 {\n  float: none;\n  width: 524px;\n  margin-left: 0;\n}\n\n.table td.span8,\n.table th.span8 {\n  float: none;\n  width: 604px;\n  margin-left: 0;\n}\n\n.table td.span9,\n.table th.span9 {\n  float: none;\n  width: 684px;\n  margin-left: 0;\n}\n\n.table td.span10,\n.table th.span10 {\n  float: none;\n  width: 764px;\n  margin-left: 0;\n}\n\n.table td.span11,\n.table th.span11 {\n  float: none;\n  width: 844px;\n  margin-left: 0;\n}\n\n.table td.span12,\n.table th.span12 {\n  float: none;\n  width: 924px;\n  margin-left: 0;\n}\n\n.table tbody tr.success > td {\n  background-color: #dff0d8;\n}\n\n.table tbody tr.error > td {\n  background-color: #f2dede;\n}\n\n.table tbody tr.warning > td {\n  background-color: #fcf8e3;\n}\n\n.table tbody tr.info > td {\n  background-color: #d9edf7;\n}\n\n.table-hover tbody tr.success:hover > td {\n  background-color: #d0e9c6;\n}\n\n.table-hover tbody tr.error:hover > td {\n  background-color: #ebcccc;\n}\n\n.table-hover tbody tr.warning:hover > td {\n  background-color: #faf2cc;\n}\n\n.table-hover tbody tr.info:hover > td {\n  background-color: #c4e3f3;\n}\n\n[class^=\"icon-\"],\n[class*=\" icon-\"] {\n  display: inline-block;\n  width: 14px;\n  height: 14px;\n  margin-top: 1px;\n  *margin-right: .3em;\n  line-height: 14px;\n  vertical-align: text-top;\n  background-image: url(\"../img/glyphicons-halflings.png\");\n  background-position: 14px 14px;\n  background-repeat: no-repeat;\n}\n\n/* White icons with optional class, or on hover/focus/active states of certain elements */\n\n.icon-white,\n.nav-pills > .active > a > [class^=\"icon-\"],\n.nav-pills > .active > a > [class*=\" icon-\"],\n.nav-list > .active > a > [class^=\"icon-\"],\n.nav-list > .active > a > [class*=\" icon-\"],\n.navbar-inverse .nav > .active > a > [class^=\"icon-\"],\n.navbar-inverse .nav > .active > a > [class*=\" icon-\"],\n.dropdown-menu > li > a:hover > [class^=\"icon-\"],\n.dropdown-menu > li > a:focus > [class^=\"icon-\"],\n.dropdown-menu > li > a:hover > [class*=\" icon-\"],\n.dropdown-menu > li > a:focus > [class*=\" icon-\"],\n.dropdown-menu > .active > a > [class^=\"icon-\"],\n.dropdown-menu > .active > a > [class*=\" icon-\"],\n.dropdown-submenu:hover > a > [class^=\"icon-\"],\n.dropdown-submenu:focus > a > [class^=\"icon-\"],\n.dropdown-submenu:hover > a > [class*=\" icon-\"],\n.dropdown-submenu:focus > a > [class*=\" icon-\"] {\n  background-image: url(\"../img/glyphicons-halflings-white.png\");\n}\n\n.icon-glass {\n  background-position: 0      0;\n}\n\n.icon-music {\n  background-position: -24px 0;\n}\n\n.icon-search {\n  background-position: -48px 0;\n}\n\n.icon-envelope {\n  background-position: -72px 0;\n}\n\n.icon-heart {\n  background-position: -96px 0;\n}\n\n.icon-star {\n  background-position: -120px 0;\n}\n\n.icon-star-empty {\n  background-position: -144px 0;\n}\n\n.icon-user {\n  background-position: -168px 0;\n}\n\n.icon-film {\n  background-position: -192px 0;\n}\n\n.icon-th-large {\n  background-position: -216px 0;\n}\n\n.icon-th {\n  background-position: -240px 0;\n}\n\n.icon-th-list {\n  background-position: -264px 0;\n}\n\n.icon-ok {\n  background-position: -288px 0;\n}\n\n.icon-remove {\n  background-position: -312px 0;\n}\n\n.icon-zoom-in {\n  background-position: -336px 0;\n}\n\n.icon-zoom-out {\n  background-position: -360px 0;\n}\n\n.icon-off {\n  background-position: -384px 0;\n}\n\n.icon-signal {\n  background-position: -408px 0;\n}\n\n.icon-cog {\n  background-position: -432px 0;\n}\n\n.icon-trash {\n  background-position: -456px 0;\n}\n\n.icon-home {\n  background-position: 0 -24px;\n}\n\n.icon-file {\n  background-position: -24px -24px;\n}\n\n.icon-time {\n  background-position: -48px -24px;\n}\n\n.icon-road {\n  background-position: -72px -24px;\n}\n\n.icon-download-alt {\n  background-position: -96px -24px;\n}\n\n.icon-download {\n  background-position: -120px -24px;\n}\n\n.icon-upload {\n  background-position: -144px -24px;\n}\n\n.icon-inbox {\n  background-position: -168px -24px;\n}\n\n.icon-play-circle {\n  background-position: -192px -24px;\n}\n\n.icon-repeat {\n  background-position: -216px -24px;\n}\n\n.icon-refresh {\n  background-position: -240px -24px;\n}\n\n.icon-list-alt {\n  background-position: -264px -24px;\n}\n\n.icon-lock {\n  background-position: -287px -24px;\n}\n\n.icon-flag {\n  background-position: -312px -24px;\n}\n\n.icon-headphones {\n  background-position: -336px -24px;\n}\n\n.icon-volume-off {\n  background-position: -360px -24px;\n}\n\n.icon-volume-down {\n  background-position: -384px -24px;\n}\n\n.icon-volume-up {\n  background-position: -408px -24px;\n}\n\n.icon-qrcode {\n  background-position: -432px -24px;\n}\n\n.icon-barcode {\n  background-position: -456px -24px;\n}\n\n.icon-tag {\n  background-position: 0 -48px;\n}\n\n.icon-tags {\n  background-position: -25px -48px;\n}\n\n.icon-book {\n  background-position: -48px -48px;\n}\n\n.icon-bookmark {\n  background-position: -72px -48px;\n}\n\n.icon-print {\n  background-position: -96px -48px;\n}\n\n.icon-camera {\n  background-position: -120px -48px;\n}\n\n.icon-font {\n  background-position: -144px -48px;\n}\n\n.icon-bold {\n  background-position: -167px -48px;\n}\n\n.icon-italic {\n  background-position: -192px -48px;\n}\n\n.icon-text-height {\n  background-position: -216px -48px;\n}\n\n.icon-text-width {\n  background-position: -240px -48px;\n}\n\n.icon-align-left {\n  background-position: -264px -48px;\n}\n\n.icon-align-center {\n  background-position: -288px -48px;\n}\n\n.icon-align-right {\n  background-position: -312px -48px;\n}\n\n.icon-align-justify {\n  background-position: -336px -48px;\n}\n\n.icon-list {\n  background-position: -360px -48px;\n}\n\n.icon-indent-left {\n  background-position: -384px -48px;\n}\n\n.icon-indent-right {\n  background-position: -408px -48px;\n}\n\n.icon-facetime-video {\n  background-position: -432px -48px;\n}\n\n.icon-picture {\n  background-position: -456px -48px;\n}\n\n.icon-pencil {\n  background-position: 0 -72px;\n}\n\n.icon-map-marker {\n  background-position: -24px -72px;\n}\n\n.icon-adjust {\n  background-position: -48px -72px;\n}\n\n.icon-tint {\n  background-position: -72px -72px;\n}\n\n.icon-edit {\n  background-position: -96px -72px;\n}\n\n.icon-share {\n  background-position: -120px -72px;\n}\n\n.icon-check {\n  background-position: -144px -72px;\n}\n\n.icon-move {\n  background-position: -168px -72px;\n}\n\n.icon-step-backward {\n  background-position: -192px -72px;\n}\n\n.icon-fast-backward {\n  background-position: -216px -72px;\n}\n\n.icon-backward {\n  background-position: -240px -72px;\n}\n\n.icon-play {\n  background-position: -264px -72px;\n}\n\n.icon-pause {\n  background-position: -288px -72px;\n}\n\n.icon-stop {\n  background-position: -312px -72px;\n}\n\n.icon-forward {\n  background-position: -336px -72px;\n}\n\n.icon-fast-forward {\n  background-position: -360px -72px;\n}\n\n.icon-step-forward {\n  background-position: -384px -72px;\n}\n\n.icon-eject {\n  background-position: -408px -72px;\n}\n\n.icon-chevron-left {\n  background-position: -432px -72px;\n}\n\n.icon-chevron-right {\n  background-position: -456px -72px;\n}\n\n.icon-plus-sign {\n  background-position: 0 -96px;\n}\n\n.icon-minus-sign {\n  background-position: -24px -96px;\n}\n\n.icon-remove-sign {\n  background-position: -48px -96px;\n}\n\n.icon-ok-sign {\n  background-position: -72px -96px;\n}\n\n.icon-question-sign {\n  background-position: -96px -96px;\n}\n\n.icon-info-sign {\n  background-position: -120px -96px;\n}\n\n.icon-screenshot {\n  background-position: -144px -96px;\n}\n\n.icon-remove-circle {\n  background-position: -168px -96px;\n}\n\n.icon-ok-circle {\n  background-position: -192px -96px;\n}\n\n.icon-ban-circle {\n  background-position: -216px -96px;\n}\n\n.icon-arrow-left {\n  background-position: -240px -96px;\n}\n\n.icon-arrow-right {\n  background-position: -264px -96px;\n}\n\n.icon-arrow-up {\n  background-position: -289px -96px;\n}\n\n.icon-arrow-down {\n  background-position: -312px -96px;\n}\n\n.icon-share-alt {\n  background-position: -336px -96px;\n}\n\n.icon-resize-full {\n  background-position: -360px -96px;\n}\n\n.icon-resize-small {\n  background-position: -384px -96px;\n}\n\n.icon-plus {\n  background-position: -408px -96px;\n}\n\n.icon-minus {\n  background-position: -433px -96px;\n}\n\n.icon-asterisk {\n  background-position: -456px -96px;\n}\n\n.icon-exclamation-sign {\n  background-position: 0 -120px;\n}\n\n.icon-gift {\n  background-position: -24px -120px;\n}\n\n.icon-leaf {\n  background-position: -48px -120px;\n}\n\n.icon-fire {\n  background-position: -72px -120px;\n}\n\n.icon-eye-open {\n  background-position: -96px -120px;\n}\n\n.icon-eye-close {\n  background-position: -120px -120px;\n}\n\n.icon-warning-sign {\n  background-position: -144px -120px;\n}\n\n.icon-plane {\n  background-position: -168px -120px;\n}\n\n.icon-calendar {\n  background-position: -192px -120px;\n}\n\n.icon-random {\n  width: 16px;\n  background-position: -216px -120px;\n}\n\n.icon-comment {\n  background-position: -240px -120px;\n}\n\n.icon-magnet {\n  background-position: -264px -120px;\n}\n\n.icon-chevron-up {\n  background-position: -288px -120px;\n}\n\n.icon-chevron-down {\n  background-position: -313px -119px;\n}\n\n.icon-retweet {\n  background-position: -336px -120px;\n}\n\n.icon-shopping-cart {\n  background-position: -360px -120px;\n}\n\n.icon-folder-close {\n  width: 16px;\n  background-position: -384px -120px;\n}\n\n.icon-folder-open {\n  width: 16px;\n  background-position: -408px -120px;\n}\n\n.icon-resize-vertical {\n  background-position: -432px -119px;\n}\n\n.icon-resize-horizontal {\n  background-position: -456px -118px;\n}\n\n.icon-hdd {\n  background-position: 0 -144px;\n}\n\n.icon-bullhorn {\n  background-position: -24px -144px;\n}\n\n.icon-bell {\n  background-position: -48px -144px;\n}\n\n.icon-certificate {\n  background-position: -72px -144px;\n}\n\n.icon-thumbs-up {\n  background-position: -96px -144px;\n}\n\n.icon-thumbs-down {\n  background-position: -120px -144px;\n}\n\n.icon-hand-right {\n  background-position: -144px -144px;\n}\n\n.icon-hand-left {\n  background-position: -168px -144px;\n}\n\n.icon-hand-up {\n  background-position: -192px -144px;\n}\n\n.icon-hand-down {\n  background-position: -216px -144px;\n}\n\n.icon-circle-arrow-right {\n  background-position: -240px -144px;\n}\n\n.icon-circle-arrow-left {\n  background-position: -264px -144px;\n}\n\n.icon-circle-arrow-up {\n  background-position: -288px -144px;\n}\n\n.icon-circle-arrow-down {\n  background-position: -312px -144px;\n}\n\n.icon-globe {\n  background-position: -336px -144px;\n}\n\n.icon-wrench {\n  background-position: -360px -144px;\n}\n\n.icon-tasks {\n  background-position: -384px -144px;\n}\n\n.icon-filter {\n  background-position: -408px -144px;\n}\n\n.icon-briefcase {\n  background-position: -432px -144px;\n}\n\n.icon-fullscreen {\n  background-position: -456px -144px;\n}\n\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n.dropdown-toggle {\n  *margin-bottom: -3px;\n}\n\n.dropdown-toggle:active,\n.open .dropdown-toggle {\n  outline: 0;\n}\n\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  vertical-align: top;\n  border-top: 4px solid #000000;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n  content: \"\";\n}\n\n.dropdown .caret {\n  margin-top: 8px;\n  margin-left: 2px;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  *border-right-width: 2px;\n  *border-bottom-width: 2px;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n}\n\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n\n.dropdown-menu .divider {\n  *width: 100%;\n  height: 1px;\n  margin: 9px 1px;\n  *margin: -5px 0 5px;\n  overflow: hidden;\n  background-color: #e5e5e5;\n  border-bottom: 1px solid #ffffff;\n}\n\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 20px;\n  color: #333333;\n  white-space: nowrap;\n}\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus,\n.dropdown-submenu:hover > a,\n.dropdown-submenu:focus > a {\n  color: #ffffff;\n  text-decoration: none;\n  background-color: #0081c2;\n  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -o-linear-gradient(top, #0088cc, #0077b3);\n  background-image: linear-gradient(to bottom, #0088cc, #0077b3);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);\n}\n\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #ffffff;\n  text-decoration: none;\n  background-color: #0081c2;\n  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);\n  background-image: -o-linear-gradient(top, #0088cc, #0077b3);\n  background-image: linear-gradient(to bottom, #0088cc, #0077b3);\n  background-repeat: repeat-x;\n  outline: 0;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);\n}\n\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #999999;\n}\n\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  cursor: default;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.open {\n  *z-index: 1000;\n}\n\n.open > .dropdown-menu {\n  display: block;\n}\n\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px solid #000000;\n  content: \"\";\n}\n\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 1px;\n}\n\n.dropdown-submenu {\n  position: relative;\n}\n\n.dropdown-submenu > .dropdown-menu {\n  top: 0;\n  left: 100%;\n  margin-top: -6px;\n  margin-left: -1px;\n  -webkit-border-radius: 0 6px 6px 6px;\n     -moz-border-radius: 0 6px 6px 6px;\n          border-radius: 0 6px 6px 6px;\n}\n\n.dropdown-submenu:hover > .dropdown-menu {\n  display: block;\n}\n\n.dropup .dropdown-submenu > .dropdown-menu {\n  top: auto;\n  bottom: 0;\n  margin-top: 0;\n  margin-bottom: -2px;\n  -webkit-border-radius: 5px 5px 5px 0;\n     -moz-border-radius: 5px 5px 5px 0;\n          border-radius: 5px 5px 5px 0;\n}\n\n.dropdown-submenu > a:after {\n  display: block;\n  float: right;\n  width: 0;\n  height: 0;\n  margin-top: 5px;\n  margin-right: -10px;\n  border-color: transparent;\n  border-left-color: #cccccc;\n  border-style: solid;\n  border-width: 5px 0 5px 5px;\n  content: \" \";\n}\n\n.dropdown-submenu:hover > a:after {\n  border-left-color: #ffffff;\n}\n\n.dropdown-submenu.pull-left {\n  float: none;\n}\n\n.dropdown-submenu.pull-left > .dropdown-menu {\n  left: -100%;\n  margin-left: 10px;\n  -webkit-border-radius: 6px 0 6px 6px;\n     -moz-border-radius: 6px 0 6px 6px;\n          border-radius: 6px 0 6px 6px;\n}\n\n.dropdown .dropdown-menu .nav-header {\n  padding-right: 20px;\n  padding-left: 20px;\n}\n\n.typeahead {\n  z-index: 1051;\n  margin-top: 2px;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, 0.15);\n}\n\n.well-large {\n  padding: 24px;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.well-small {\n  padding: 9px;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n     -moz-transition: opacity 0.15s linear;\n       -o-transition: opacity 0.15s linear;\n          transition: opacity 0.15s linear;\n}\n\n.fade.in {\n  opacity: 1;\n}\n\n.collapse {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition: height 0.35s ease;\n     -moz-transition: height 0.35s ease;\n       -o-transition: height 0.35s ease;\n          transition: height 0.35s ease;\n}\n\n.collapse.in {\n  height: auto;\n}\n\n.close {\n  float: right;\n  font-size: 20px;\n  font-weight: bold;\n  line-height: 20px;\n  color: #000000;\n  text-shadow: 0 1px 0 #ffffff;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n}\n\n.close:hover,\n.close:focus {\n  color: #000000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.4;\n  filter: alpha(opacity=40);\n}\n\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n\n.btn {\n  display: inline-block;\n  *display: inline;\n  padding: 4px 12px;\n  margin-bottom: 0;\n  *margin-left: .3em;\n  font-size: 14px;\n  line-height: 20px;\n  color: #333333;\n  text-align: center;\n  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);\n  vertical-align: middle;\n  cursor: pointer;\n  background-color: #f5f5f5;\n  *background-color: #e6e6e6;\n  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));\n  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);\n  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);\n  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);\n  background-repeat: repeat-x;\n  border: 1px solid #cccccc;\n  *border: 0;\n  border-color: #e6e6e6 #e6e6e6 #bfbfbf;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  border-bottom-color: #b3b3b3;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  *zoom: 1;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn:hover,\n.btn:focus,\n.btn:active,\n.btn.active,\n.btn.disabled,\n.btn[disabled] {\n  color: #333333;\n  background-color: #e6e6e6;\n  *background-color: #d9d9d9;\n}\n\n.btn:active,\n.btn.active {\n  background-color: #cccccc \\9;\n}\n\n.btn:first-child {\n  *margin-left: 0;\n}\n\n.btn:hover,\n.btn:focus {\n  color: #333333;\n  text-decoration: none;\n  background-position: 0 -15px;\n  -webkit-transition: background-position 0.1s linear;\n     -moz-transition: background-position 0.1s linear;\n       -o-transition: background-position 0.1s linear;\n          transition: background-position 0.1s linear;\n}\n\n.btn:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n.btn.active,\n.btn:active {\n  background-image: none;\n  outline: 0;\n  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn.disabled,\n.btn[disabled] {\n  cursor: default;\n  background-image: none;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n     -moz-box-shadow: none;\n          box-shadow: none;\n}\n\n.btn-large {\n  padding: 11px 19px;\n  font-size: 17.5px;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.btn-large [class^=\"icon-\"],\n.btn-large [class*=\" icon-\"] {\n  margin-top: 4px;\n}\n\n.btn-small {\n  padding: 2px 10px;\n  font-size: 11.9px;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.btn-small [class^=\"icon-\"],\n.btn-small [class*=\" icon-\"] {\n  margin-top: 0;\n}\n\n.btn-mini [class^=\"icon-\"],\n.btn-mini [class*=\" icon-\"] {\n  margin-top: -1px;\n}\n\n.btn-mini {\n  padding: 0 6px;\n  font-size: 10.5px;\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n  padding-right: 0;\n  padding-left: 0;\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.btn-primary.active,\n.btn-warning.active,\n.btn-danger.active,\n.btn-success.active,\n.btn-info.active,\n.btn-inverse.active {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.btn-primary {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #006dcc;\n  *background-color: #0044cc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(to bottom, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary:active,\n.btn-primary.active,\n.btn-primary.disabled,\n.btn-primary[disabled] {\n  color: #ffffff;\n  background-color: #0044cc;\n  *background-color: #003bb3;\n}\n\n.btn-primary:active,\n.btn-primary.active {\n  background-color: #003399 \\9;\n}\n\n.btn-warning {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #faa732;\n  *background-color: #f89406;\n  background-image: -moz-linear-gradient(top, #fbb450, #f89406);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));\n  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);\n  background-image: -o-linear-gradient(top, #fbb450, #f89406);\n  background-image: linear-gradient(to bottom, #fbb450, #f89406);\n  background-repeat: repeat-x;\n  border-color: #f89406 #f89406 #ad6704;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning:active,\n.btn-warning.active,\n.btn-warning.disabled,\n.btn-warning[disabled] {\n  color: #ffffff;\n  background-color: #f89406;\n  *background-color: #df8505;\n}\n\n.btn-warning:active,\n.btn-warning.active {\n  background-color: #c67605 \\9;\n}\n\n.btn-danger {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #da4f49;\n  *background-color: #bd362f;\n  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));\n  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);\n  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);\n  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);\n  background-repeat: repeat-x;\n  border-color: #bd362f #bd362f #802420;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger:active,\n.btn-danger.active,\n.btn-danger.disabled,\n.btn-danger[disabled] {\n  color: #ffffff;\n  background-color: #bd362f;\n  *background-color: #a9302a;\n}\n\n.btn-danger:active,\n.btn-danger.active {\n  background-color: #942a25 \\9;\n}\n\n.btn-success {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #5bb75b;\n  *background-color: #51a351;\n  background-image: -moz-linear-gradient(top, #62c462, #51a351);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));\n  background-image: -webkit-linear-gradient(top, #62c462, #51a351);\n  background-image: -o-linear-gradient(top, #62c462, #51a351);\n  background-image: linear-gradient(to bottom, #62c462, #51a351);\n  background-repeat: repeat-x;\n  border-color: #51a351 #51a351 #387038;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-success:hover,\n.btn-success:focus,\n.btn-success:active,\n.btn-success.active,\n.btn-success.disabled,\n.btn-success[disabled] {\n  color: #ffffff;\n  background-color: #51a351;\n  *background-color: #499249;\n}\n\n.btn-success:active,\n.btn-success.active {\n  background-color: #408140 \\9;\n}\n\n.btn-info {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #49afcd;\n  *background-color: #2f96b4;\n  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));\n  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);\n  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);\n  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);\n  background-repeat: repeat-x;\n  border-color: #2f96b4 #2f96b4 #1f6377;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-info:hover,\n.btn-info:focus,\n.btn-info:active,\n.btn-info.active,\n.btn-info.disabled,\n.btn-info[disabled] {\n  color: #ffffff;\n  background-color: #2f96b4;\n  *background-color: #2a85a0;\n}\n\n.btn-info:active,\n.btn-info.active {\n  background-color: #24748c \\9;\n}\n\n.btn-inverse {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #363636;\n  *background-color: #222222;\n  background-image: -moz-linear-gradient(top, #444444, #222222);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));\n  background-image: -webkit-linear-gradient(top, #444444, #222222);\n  background-image: -o-linear-gradient(top, #444444, #222222);\n  background-image: linear-gradient(to bottom, #444444, #222222);\n  background-repeat: repeat-x;\n  border-color: #222222 #222222 #000000;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.btn-inverse:hover,\n.btn-inverse:focus,\n.btn-inverse:active,\n.btn-inverse.active,\n.btn-inverse.disabled,\n.btn-inverse[disabled] {\n  color: #ffffff;\n  background-color: #222222;\n  *background-color: #151515;\n}\n\n.btn-inverse:active,\n.btn-inverse.active {\n  background-color: #080808 \\9;\n}\n\nbutton.btn,\ninput[type=\"submit\"].btn {\n  *padding-top: 3px;\n  *padding-bottom: 3px;\n}\n\nbutton.btn::-moz-focus-inner,\ninput[type=\"submit\"].btn::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\n\nbutton.btn.btn-large,\ninput[type=\"submit\"].btn.btn-large {\n  *padding-top: 7px;\n  *padding-bottom: 7px;\n}\n\nbutton.btn.btn-small,\ninput[type=\"submit\"].btn.btn-small {\n  *padding-top: 3px;\n  *padding-bottom: 3px;\n}\n\nbutton.btn.btn-mini,\ninput[type=\"submit\"].btn.btn-mini {\n  *padding-top: 1px;\n  *padding-bottom: 1px;\n}\n\n.btn-link,\n.btn-link:active,\n.btn-link[disabled] {\n  background-color: transparent;\n  background-image: none;\n  -webkit-box-shadow: none;\n     -moz-box-shadow: none;\n          box-shadow: none;\n}\n\n.btn-link {\n  color: #0088cc;\n  cursor: pointer;\n  border-color: transparent;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.btn-link:hover,\n.btn-link:focus {\n  color: #005580;\n  text-decoration: underline;\n  background-color: transparent;\n}\n\n.btn-link[disabled]:hover,\n.btn-link[disabled]:focus {\n  color: #333333;\n  text-decoration: none;\n}\n\n.btn-group {\n  position: relative;\n  display: inline-block;\n  *display: inline;\n  *margin-left: .3em;\n  font-size: 0;\n  white-space: nowrap;\n  vertical-align: middle;\n  *zoom: 1;\n}\n\n.btn-group:first-child {\n  *margin-left: 0;\n}\n\n.btn-group + .btn-group {\n  margin-left: 5px;\n}\n\n.btn-toolbar {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  font-size: 0;\n}\n\n.btn-toolbar > .btn + .btn,\n.btn-toolbar > .btn-group + .btn,\n.btn-toolbar > .btn + .btn-group {\n  margin-left: 5px;\n}\n\n.btn-group > .btn {\n  position: relative;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.btn-group > .btn + .btn {\n  margin-left: -1px;\n}\n\n.btn-group > .btn,\n.btn-group > .dropdown-menu,\n.btn-group > .popover {\n  font-size: 14px;\n}\n\n.btn-group > .btn-mini {\n  font-size: 10.5px;\n}\n\n.btn-group > .btn-small {\n  font-size: 11.9px;\n}\n\n.btn-group > .btn-large {\n  font-size: 17.5px;\n}\n\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.btn-group > .btn:last-child,\n.btn-group > .dropdown-toggle {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  -moz-border-radius-bottomright: 4px;\n}\n\n.btn-group > .btn.large:first-child {\n  margin-left: 0;\n  -webkit-border-bottom-left-radius: 6px;\n          border-bottom-left-radius: 6px;\n  -webkit-border-top-left-radius: 6px;\n          border-top-left-radius: 6px;\n  -moz-border-radius-bottomleft: 6px;\n  -moz-border-radius-topleft: 6px;\n}\n\n.btn-group > .btn.large:last-child,\n.btn-group > .large.dropdown-toggle {\n  -webkit-border-top-right-radius: 6px;\n          border-top-right-radius: 6px;\n  -webkit-border-bottom-right-radius: 6px;\n          border-bottom-right-radius: 6px;\n  -moz-border-radius-topright: 6px;\n  -moz-border-radius-bottomright: 6px;\n}\n\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active {\n  z-index: 2;\n}\n\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n.btn-group > .btn + .dropdown-toggle {\n  *padding-top: 5px;\n  padding-right: 8px;\n  *padding-bottom: 5px;\n  padding-left: 8px;\n  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn-group > .btn-mini + .dropdown-toggle {\n  *padding-top: 2px;\n  padding-right: 5px;\n  *padding-bottom: 2px;\n  padding-left: 5px;\n}\n\n.btn-group > .btn-small + .dropdown-toggle {\n  *padding-top: 5px;\n  *padding-bottom: 4px;\n}\n\n.btn-group > .btn-large + .dropdown-toggle {\n  *padding-top: 7px;\n  padding-right: 12px;\n  *padding-bottom: 7px;\n  padding-left: 12px;\n}\n\n.btn-group.open .dropdown-toggle {\n  background-image: none;\n  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.btn-group.open .btn.dropdown-toggle {\n  background-color: #e6e6e6;\n}\n\n.btn-group.open .btn-primary.dropdown-toggle {\n  background-color: #0044cc;\n}\n\n.btn-group.open .btn-warning.dropdown-toggle {\n  background-color: #f89406;\n}\n\n.btn-group.open .btn-danger.dropdown-toggle {\n  background-color: #bd362f;\n}\n\n.btn-group.open .btn-success.dropdown-toggle {\n  background-color: #51a351;\n}\n\n.btn-group.open .btn-info.dropdown-toggle {\n  background-color: #2f96b4;\n}\n\n.btn-group.open .btn-inverse.dropdown-toggle {\n  background-color: #222222;\n}\n\n.btn .caret {\n  margin-top: 8px;\n  margin-left: 0;\n}\n\n.btn-large .caret {\n  margin-top: 6px;\n}\n\n.btn-large .caret {\n  border-top-width: 5px;\n  border-right-width: 5px;\n  border-left-width: 5px;\n}\n\n.btn-mini .caret,\n.btn-small .caret {\n  margin-top: 8px;\n}\n\n.dropup .btn-large .caret {\n  border-bottom-width: 5px;\n}\n\n.btn-primary .caret,\n.btn-warning .caret,\n.btn-danger .caret,\n.btn-info .caret,\n.btn-success .caret,\n.btn-inverse .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.btn-group-vertical {\n  display: inline-block;\n  *display: inline;\n  /* IE7 inline-block hack */\n\n  *zoom: 1;\n}\n\n.btn-group-vertical > .btn {\n  display: block;\n  float: none;\n  max-width: 100%;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.btn-group-vertical > .btn + .btn {\n  margin-top: -1px;\n  margin-left: 0;\n}\n\n.btn-group-vertical > .btn:first-child {\n  -webkit-border-radius: 4px 4px 0 0;\n     -moz-border-radius: 4px 4px 0 0;\n          border-radius: 4px 4px 0 0;\n}\n\n.btn-group-vertical > .btn:last-child {\n  -webkit-border-radius: 0 0 4px 4px;\n     -moz-border-radius: 0 0 4px 4px;\n          border-radius: 0 0 4px 4px;\n}\n\n.btn-group-vertical > .btn-large:first-child {\n  -webkit-border-radius: 6px 6px 0 0;\n     -moz-border-radius: 6px 6px 0 0;\n          border-radius: 6px 6px 0 0;\n}\n\n.btn-group-vertical > .btn-large:last-child {\n  -webkit-border-radius: 0 0 6px 6px;\n     -moz-border-radius: 0 0 6px 6px;\n          border-radius: 0 0 6px 6px;\n}\n\n.alert {\n  padding: 8px 35px 8px 14px;\n  margin-bottom: 20px;\n  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n  background-color: #fcf8e3;\n  border: 1px solid #fbeed5;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.alert,\n.alert h4 {\n  color: #c09853;\n}\n\n.alert h4 {\n  margin: 0;\n}\n\n.alert .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  line-height: 20px;\n}\n\n.alert-success {\n  color: #468847;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n\n.alert-success h4 {\n  color: #468847;\n}\n\n.alert-danger,\n.alert-error {\n  color: #b94a48;\n  background-color: #f2dede;\n  border-color: #eed3d7;\n}\n\n.alert-danger h4,\n.alert-error h4 {\n  color: #b94a48;\n}\n\n.alert-info {\n  color: #3a87ad;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n\n.alert-info h4 {\n  color: #3a87ad;\n}\n\n.alert-block {\n  padding-top: 14px;\n  padding-bottom: 14px;\n}\n\n.alert-block > p,\n.alert-block > ul {\n  margin-bottom: 0;\n}\n\n.alert-block p + p {\n  margin-top: 5px;\n}\n\n.nav {\n  margin-bottom: 20px;\n  margin-left: 0;\n  list-style: none;\n}\n\n.nav > li > a {\n  display: block;\n}\n\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n\n.nav > li > a > img {\n  max-width: none;\n}\n\n.nav > .pull-right {\n  float: right;\n}\n\n.nav-header {\n  display: block;\n  padding: 3px 15px;\n  font-size: 11px;\n  font-weight: bold;\n  line-height: 20px;\n  color: #999999;\n  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n  text-transform: uppercase;\n}\n\n.nav li + .nav-header {\n  margin-top: 9px;\n}\n\n.nav-list {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-bottom: 0;\n}\n\n.nav-list > li > a,\n.nav-list .nav-header {\n  margin-right: -15px;\n  margin-left: -15px;\n  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n}\n\n.nav-list > li > a {\n  padding: 3px 15px;\n}\n\n.nav-list > .active > a,\n.nav-list > .active > a:hover,\n.nav-list > .active > a:focus {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n  background-color: #0088cc;\n}\n\n.nav-list [class^=\"icon-\"],\n.nav-list [class*=\" icon-\"] {\n  margin-right: 2px;\n}\n\n.nav-list .divider {\n  *width: 100%;\n  height: 1px;\n  margin: 9px 1px;\n  *margin: -5px 0 5px;\n  overflow: hidden;\n  background-color: #e5e5e5;\n  border-bottom: 1px solid #ffffff;\n}\n\n.nav-tabs,\n.nav-pills {\n  *zoom: 1;\n}\n\n.nav-tabs:before,\n.nav-pills:before,\n.nav-tabs:after,\n.nav-pills:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.nav-tabs:after,\n.nav-pills:after {\n  clear: both;\n}\n\n.nav-tabs > li,\n.nav-pills > li {\n  float: left;\n}\n\n.nav-tabs > li > a,\n.nav-pills > li > a {\n  padding-right: 12px;\n  padding-left: 12px;\n  margin-right: 2px;\n  line-height: 14px;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n\n.nav-tabs > li {\n  margin-bottom: -1px;\n}\n\n.nav-tabs > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  line-height: 20px;\n  border: 1px solid transparent;\n  -webkit-border-radius: 4px 4px 0 0;\n     -moz-border-radius: 4px 4px 0 0;\n          border-radius: 4px 4px 0 0;\n}\n\n.nav-tabs > li > a:hover,\n.nav-tabs > li > a:focus {\n  border-color: #eeeeee #eeeeee #dddddd;\n}\n\n.nav-tabs > .active > a,\n.nav-tabs > .active > a:hover,\n.nav-tabs > .active > a:focus {\n  color: #555555;\n  cursor: default;\n  background-color: #ffffff;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n}\n\n.nav-pills > li > a {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  margin-top: 2px;\n  margin-bottom: 2px;\n  -webkit-border-radius: 5px;\n     -moz-border-radius: 5px;\n          border-radius: 5px;\n}\n\n.nav-pills > .active > a,\n.nav-pills > .active > a:hover,\n.nav-pills > .active > a:focus {\n  color: #ffffff;\n  background-color: #0088cc;\n}\n\n.nav-stacked > li {\n  float: none;\n}\n\n.nav-stacked > li > a {\n  margin-right: 0;\n}\n\n.nav-tabs.nav-stacked {\n  border-bottom: 0;\n}\n\n.nav-tabs.nav-stacked > li > a {\n  border: 1px solid #ddd;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.nav-tabs.nav-stacked > li:first-child > a {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.nav-tabs.nav-stacked > li:last-child > a {\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -moz-border-radius-bottomright: 4px;\n  -moz-border-radius-bottomleft: 4px;\n}\n\n.nav-tabs.nav-stacked > li > a:hover,\n.nav-tabs.nav-stacked > li > a:focus {\n  z-index: 2;\n  border-color: #ddd;\n}\n\n.nav-pills.nav-stacked > li > a {\n  margin-bottom: 3px;\n}\n\n.nav-pills.nav-stacked > li:last-child > a {\n  margin-bottom: 1px;\n}\n\n.nav-tabs .dropdown-menu {\n  -webkit-border-radius: 0 0 6px 6px;\n     -moz-border-radius: 0 0 6px 6px;\n          border-radius: 0 0 6px 6px;\n}\n\n.nav-pills .dropdown-menu {\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.nav .dropdown-toggle .caret {\n  margin-top: 6px;\n  border-top-color: #0088cc;\n  border-bottom-color: #0088cc;\n}\n\n.nav .dropdown-toggle:hover .caret,\n.nav .dropdown-toggle:focus .caret {\n  border-top-color: #005580;\n  border-bottom-color: #005580;\n}\n\n/* move down carets for tabs */\n\n.nav-tabs .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n.nav .active .dropdown-toggle .caret {\n  border-top-color: #fff;\n  border-bottom-color: #fff;\n}\n\n.nav-tabs .active .dropdown-toggle .caret {\n  border-top-color: #555555;\n  border-bottom-color: #555555;\n}\n\n.nav > .dropdown.active > a:hover,\n.nav > .dropdown.active > a:focus {\n  cursor: pointer;\n}\n\n.nav-tabs .open .dropdown-toggle,\n.nav-pills .open .dropdown-toggle,\n.nav > li.dropdown.open.active > a:hover,\n.nav > li.dropdown.open.active > a:focus {\n  color: #ffffff;\n  background-color: #999999;\n  border-color: #999999;\n}\n\n.nav li.dropdown.open .caret,\n.nav li.dropdown.open.active .caret,\n.nav li.dropdown.open a:hover .caret,\n.nav li.dropdown.open a:focus .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.tabs-stacked .open > a:hover,\n.tabs-stacked .open > a:focus {\n  border-color: #999999;\n}\n\n.tabbable {\n  *zoom: 1;\n}\n\n.tabbable:before,\n.tabbable:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.tabbable:after {\n  clear: both;\n}\n\n.tab-content {\n  overflow: auto;\n}\n\n.tabs-below > .nav-tabs,\n.tabs-right > .nav-tabs,\n.tabs-left > .nav-tabs {\n  border-bottom: 0;\n}\n\n.tab-content > .tab-pane,\n.pill-content > .pill-pane {\n  display: none;\n}\n\n.tab-content > .active,\n.pill-content > .active {\n  display: block;\n}\n\n.tabs-below > .nav-tabs {\n  border-top: 1px solid #ddd;\n}\n\n.tabs-below > .nav-tabs > li {\n  margin-top: -1px;\n  margin-bottom: 0;\n}\n\n.tabs-below > .nav-tabs > li > a {\n  -webkit-border-radius: 0 0 4px 4px;\n     -moz-border-radius: 0 0 4px 4px;\n          border-radius: 0 0 4px 4px;\n}\n\n.tabs-below > .nav-tabs > li > a:hover,\n.tabs-below > .nav-tabs > li > a:focus {\n  border-top-color: #ddd;\n  border-bottom-color: transparent;\n}\n\n.tabs-below > .nav-tabs > .active > a,\n.tabs-below > .nav-tabs > .active > a:hover,\n.tabs-below > .nav-tabs > .active > a:focus {\n  border-color: transparent #ddd #ddd #ddd;\n}\n\n.tabs-left > .nav-tabs > li,\n.tabs-right > .nav-tabs > li {\n  float: none;\n}\n\n.tabs-left > .nav-tabs > li > a,\n.tabs-right > .nav-tabs > li > a {\n  min-width: 74px;\n  margin-right: 0;\n  margin-bottom: 3px;\n}\n\n.tabs-left > .nav-tabs {\n  float: left;\n  margin-right: 19px;\n  border-right: 1px solid #ddd;\n}\n\n.tabs-left > .nav-tabs > li > a {\n  margin-right: -1px;\n  -webkit-border-radius: 4px 0 0 4px;\n     -moz-border-radius: 4px 0 0 4px;\n          border-radius: 4px 0 0 4px;\n}\n\n.tabs-left > .nav-tabs > li > a:hover,\n.tabs-left > .nav-tabs > li > a:focus {\n  border-color: #eeeeee #dddddd #eeeeee #eeeeee;\n}\n\n.tabs-left > .nav-tabs .active > a,\n.tabs-left > .nav-tabs .active > a:hover,\n.tabs-left > .nav-tabs .active > a:focus {\n  border-color: #ddd transparent #ddd #ddd;\n  *border-right-color: #ffffff;\n}\n\n.tabs-right > .nav-tabs {\n  float: right;\n  margin-left: 19px;\n  border-left: 1px solid #ddd;\n}\n\n.tabs-right > .nav-tabs > li > a {\n  margin-left: -1px;\n  -webkit-border-radius: 0 4px 4px 0;\n     -moz-border-radius: 0 4px 4px 0;\n          border-radius: 0 4px 4px 0;\n}\n\n.tabs-right > .nav-tabs > li > a:hover,\n.tabs-right > .nav-tabs > li > a:focus {\n  border-color: #eeeeee #eeeeee #eeeeee #dddddd;\n}\n\n.tabs-right > .nav-tabs .active > a,\n.tabs-right > .nav-tabs .active > a:hover,\n.tabs-right > .nav-tabs .active > a:focus {\n  border-color: #ddd #ddd #ddd transparent;\n  *border-left-color: #ffffff;\n}\n\n.nav > .disabled > a {\n  color: #999999;\n}\n\n.nav > .disabled > a:hover,\n.nav > .disabled > a:focus {\n  text-decoration: none;\n  cursor: default;\n  background-color: transparent;\n}\n\n.navbar {\n  *position: relative;\n  *z-index: 2;\n  margin-bottom: 20px;\n  overflow: visible;\n}\n\n.navbar-inner {\n  min-height: 40px;\n  padding-right: 20px;\n  padding-left: 20px;\n  background-color: #fafafa;\n  background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));\n  background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);\n  background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);\n  background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);\n  background-repeat: repeat-x;\n  border: 1px solid #d4d4d4;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);\n  *zoom: 1;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);\n     -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);\n          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);\n}\n\n.navbar-inner:before,\n.navbar-inner:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.navbar-inner:after {\n  clear: both;\n}\n\n.navbar .container {\n  width: auto;\n}\n\n.nav-collapse.collapse {\n  height: auto;\n  overflow: visible;\n}\n\n.navbar .brand {\n  display: block;\n  float: left;\n  padding: 10px 20px 10px;\n  margin-left: -20px;\n  font-size: 20px;\n  font-weight: 200;\n  color: #777777;\n  text-shadow: 0 1px 0 #ffffff;\n}\n\n.navbar .brand:hover,\n.navbar .brand:focus {\n  text-decoration: none;\n}\n\n.navbar-text {\n  margin-bottom: 0;\n  line-height: 40px;\n  color: #777777;\n}\n\n.navbar-link {\n  color: #777777;\n}\n\n.navbar-link:hover,\n.navbar-link:focus {\n  color: #333333;\n}\n\n.navbar .divider-vertical {\n  height: 40px;\n  margin: 0 9px;\n  border-right: 1px solid #ffffff;\n  border-left: 1px solid #f2f2f2;\n}\n\n.navbar .btn,\n.navbar .btn-group {\n  margin-top: 5px;\n}\n\n.navbar .btn-group .btn,\n.navbar .input-prepend .btn,\n.navbar .input-append .btn,\n.navbar .input-prepend .btn-group,\n.navbar .input-append .btn-group {\n  margin-top: 0;\n}\n\n.navbar-form {\n  margin-bottom: 0;\n  *zoom: 1;\n}\n\n.navbar-form:before,\n.navbar-form:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.navbar-form:after {\n  clear: both;\n}\n\n.navbar-form input,\n.navbar-form select,\n.navbar-form .radio,\n.navbar-form .checkbox {\n  margin-top: 5px;\n}\n\n.navbar-form input,\n.navbar-form select,\n.navbar-form .btn {\n  display: inline-block;\n  margin-bottom: 0;\n}\n\n.navbar-form input[type=\"image\"],\n.navbar-form input[type=\"checkbox\"],\n.navbar-form input[type=\"radio\"] {\n  margin-top: 3px;\n}\n\n.navbar-form .input-append,\n.navbar-form .input-prepend {\n  margin-top: 5px;\n  white-space: nowrap;\n}\n\n.navbar-form .input-append input,\n.navbar-form .input-prepend input {\n  margin-top: 0;\n}\n\n.navbar-search {\n  position: relative;\n  float: left;\n  margin-top: 5px;\n  margin-bottom: 0;\n}\n\n.navbar-search .search-query {\n  padding: 4px 14px;\n  margin-bottom: 0;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 13px;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-border-radius: 15px;\n     -moz-border-radius: 15px;\n          border-radius: 15px;\n}\n\n.navbar-static-top {\n  position: static;\n  margin-bottom: 0;\n}\n\n.navbar-static-top .navbar-inner {\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n  margin-bottom: 0;\n}\n\n.navbar-fixed-top .navbar-inner,\n.navbar-static-top .navbar-inner {\n  border-width: 0 0 1px;\n}\n\n.navbar-fixed-bottom .navbar-inner {\n  border-width: 1px 0 0;\n}\n\n.navbar-fixed-top .navbar-inner,\n.navbar-fixed-bottom .navbar-inner {\n  padding-right: 0;\n  padding-left: 0;\n  -webkit-border-radius: 0;\n     -moz-border-radius: 0;\n          border-radius: 0;\n}\n\n.navbar-static-top .container,\n.navbar-fixed-top .container,\n.navbar-fixed-bottom .container {\n  width: 940px;\n}\n\n.navbar-fixed-top {\n  top: 0;\n}\n\n.navbar-fixed-top .navbar-inner,\n.navbar-static-top .navbar-inner {\n  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);\n          box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);\n}\n\n.navbar-fixed-bottom {\n  bottom: 0;\n}\n\n.navbar-fixed-bottom .navbar-inner {\n  -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);\n          box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);\n}\n\n.navbar .nav {\n  position: relative;\n  left: 0;\n  display: block;\n  float: left;\n  margin: 0 10px 0 0;\n}\n\n.navbar .nav.pull-right {\n  float: right;\n  margin-right: 0;\n}\n\n.navbar .nav > li {\n  float: left;\n}\n\n.navbar .nav > li > a {\n  float: none;\n  padding: 10px 15px 10px;\n  color: #777777;\n  text-decoration: none;\n  text-shadow: 0 1px 0 #ffffff;\n}\n\n.navbar .nav .dropdown-toggle .caret {\n  margin-top: 8px;\n}\n\n.navbar .nav > li > a:focus,\n.navbar .nav > li > a:hover {\n  color: #333333;\n  text-decoration: none;\n  background-color: transparent;\n}\n\n.navbar .nav > .active > a,\n.navbar .nav > .active > a:hover,\n.navbar .nav > .active > a:focus {\n  color: #555555;\n  text-decoration: none;\n  background-color: #e5e5e5;\n  -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);\n     -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);\n          box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);\n}\n\n.navbar .btn-navbar {\n  display: none;\n  float: right;\n  padding: 7px 10px;\n  margin-right: 5px;\n  margin-left: 5px;\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #ededed;\n  *background-color: #e5e5e5;\n  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));\n  background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);\n  background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);\n  background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);\n  background-repeat: repeat-x;\n  border-color: #e5e5e5 #e5e5e5 #bfbfbf;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);\n     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);\n}\n\n.navbar .btn-navbar:hover,\n.navbar .btn-navbar:focus,\n.navbar .btn-navbar:active,\n.navbar .btn-navbar.active,\n.navbar .btn-navbar.disabled,\n.navbar .btn-navbar[disabled] {\n  color: #ffffff;\n  background-color: #e5e5e5;\n  *background-color: #d9d9d9;\n}\n\n.navbar .btn-navbar:active,\n.navbar .btn-navbar.active {\n  background-color: #cccccc \\9;\n}\n\n.navbar .btn-navbar .icon-bar {\n  display: block;\n  width: 18px;\n  height: 2px;\n  background-color: #f5f5f5;\n  -webkit-border-radius: 1px;\n     -moz-border-radius: 1px;\n          border-radius: 1px;\n  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);\n     -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);\n          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);\n}\n\n.btn-navbar .icon-bar + .icon-bar {\n  margin-top: 3px;\n}\n\n.navbar .nav > li > .dropdown-menu:before {\n  position: absolute;\n  top: -7px;\n  left: 9px;\n  display: inline-block;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-left: 7px solid transparent;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  content: '';\n}\n\n.navbar .nav > li > .dropdown-menu:after {\n  position: absolute;\n  top: -6px;\n  left: 10px;\n  display: inline-block;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  border-left: 6px solid transparent;\n  content: '';\n}\n\n.navbar-fixed-bottom .nav > li > .dropdown-menu:before {\n  top: auto;\n  bottom: -7px;\n  border-top: 7px solid #ccc;\n  border-bottom: 0;\n  border-top-color: rgba(0, 0, 0, 0.2);\n}\n\n.navbar-fixed-bottom .nav > li > .dropdown-menu:after {\n  top: auto;\n  bottom: -6px;\n  border-top: 6px solid #ffffff;\n  border-bottom: 0;\n}\n\n.navbar .nav li.dropdown > a:hover .caret,\n.navbar .nav li.dropdown > a:focus .caret {\n  border-top-color: #333333;\n  border-bottom-color: #333333;\n}\n\n.navbar .nav li.dropdown.open > .dropdown-toggle,\n.navbar .nav li.dropdown.active > .dropdown-toggle,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle {\n  color: #555555;\n  background-color: #e5e5e5;\n}\n\n.navbar .nav li.dropdown > .dropdown-toggle .caret {\n  border-top-color: #777777;\n  border-bottom-color: #777777;\n}\n\n.navbar .nav li.dropdown.open > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.active > .dropdown-toggle .caret,\n.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {\n  border-top-color: #555555;\n  border-bottom-color: #555555;\n}\n\n.navbar .pull-right > li > .dropdown-menu,\n.navbar .nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n\n.navbar .pull-right > li > .dropdown-menu:before,\n.navbar .nav > li > .dropdown-menu.pull-right:before {\n  right: 12px;\n  left: auto;\n}\n\n.navbar .pull-right > li > .dropdown-menu:after,\n.navbar .nav > li > .dropdown-menu.pull-right:after {\n  right: 13px;\n  left: auto;\n}\n\n.navbar .pull-right > li > .dropdown-menu .dropdown-menu,\n.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {\n  right: 100%;\n  left: auto;\n  margin-right: -1px;\n  margin-left: 0;\n  -webkit-border-radius: 6px 0 6px 6px;\n     -moz-border-radius: 6px 0 6px 6px;\n          border-radius: 6px 0 6px 6px;\n}\n\n.navbar-inverse .navbar-inner {\n  background-color: #1b1b1b;\n  background-image: -moz-linear-gradient(top, #222222, #111111);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));\n  background-image: -webkit-linear-gradient(top, #222222, #111111);\n  background-image: -o-linear-gradient(top, #222222, #111111);\n  background-image: linear-gradient(to bottom, #222222, #111111);\n  background-repeat: repeat-x;\n  border-color: #252525;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);\n}\n\n.navbar-inverse .brand,\n.navbar-inverse .nav > li > a {\n  color: #999999;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n\n.navbar-inverse .brand:hover,\n.navbar-inverse .nav > li > a:hover,\n.navbar-inverse .brand:focus,\n.navbar-inverse .nav > li > a:focus {\n  color: #ffffff;\n}\n\n.navbar-inverse .brand {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-text {\n  color: #999999;\n}\n\n.navbar-inverse .nav > li > a:focus,\n.navbar-inverse .nav > li > a:hover {\n  color: #ffffff;\n  background-color: transparent;\n}\n\n.navbar-inverse .nav .active > a,\n.navbar-inverse .nav .active > a:hover,\n.navbar-inverse .nav .active > a:focus {\n  color: #ffffff;\n  background-color: #111111;\n}\n\n.navbar-inverse .navbar-link {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-link:hover,\n.navbar-inverse .navbar-link:focus {\n  color: #ffffff;\n}\n\n.navbar-inverse .divider-vertical {\n  border-right-color: #222222;\n  border-left-color: #111111;\n}\n\n.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,\n.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,\n.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {\n  color: #ffffff;\n  background-color: #111111;\n}\n\n.navbar-inverse .nav li.dropdown > a:hover .caret,\n.navbar-inverse .nav li.dropdown > a:focus .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {\n  border-top-color: #999999;\n  border-bottom-color: #999999;\n}\n\n.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,\n.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,\n.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.navbar-inverse .navbar-search .search-query {\n  color: #ffffff;\n  background-color: #515151;\n  border-color: #111111;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);\n     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);\n  -webkit-transition: none;\n     -moz-transition: none;\n       -o-transition: none;\n          transition: none;\n}\n\n.navbar-inverse .navbar-search .search-query:-moz-placeholder {\n  color: #cccccc;\n}\n\n.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {\n  color: #cccccc;\n}\n\n.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {\n  color: #cccccc;\n}\n\n.navbar-inverse .navbar-search .search-query:focus,\n.navbar-inverse .navbar-search .search-query.focused {\n  padding: 5px 15px;\n  color: #333333;\n  text-shadow: 0 1px 0 #ffffff;\n  background-color: #ffffff;\n  border: 0;\n  outline: 0;\n  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);\n     -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);\n          box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);\n}\n\n.navbar-inverse .btn-navbar {\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #0e0e0e;\n  *background-color: #040404;\n  background-image: -moz-linear-gradient(top, #151515, #040404);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));\n  background-image: -webkit-linear-gradient(top, #151515, #040404);\n  background-image: -o-linear-gradient(top, #151515, #040404);\n  background-image: linear-gradient(to bottom, #151515, #040404);\n  background-repeat: repeat-x;\n  border-color: #040404 #040404 #000000;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.navbar-inverse .btn-navbar:hover,\n.navbar-inverse .btn-navbar:focus,\n.navbar-inverse .btn-navbar:active,\n.navbar-inverse .btn-navbar.active,\n.navbar-inverse .btn-navbar.disabled,\n.navbar-inverse .btn-navbar[disabled] {\n  color: #ffffff;\n  background-color: #040404;\n  *background-color: #000000;\n}\n\n.navbar-inverse .btn-navbar:active,\n.navbar-inverse .btn-navbar.active {\n  background-color: #000000 \\9;\n}\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin: 0 0 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.breadcrumb > li {\n  display: inline-block;\n  *display: inline;\n  text-shadow: 0 1px 0 #ffffff;\n  *zoom: 1;\n}\n\n.breadcrumb > li > .divider {\n  padding: 0 5px;\n  color: #ccc;\n}\n\n.breadcrumb > .active {\n  color: #999999;\n}\n\n.pagination {\n  margin: 20px 0;\n}\n\n.pagination ul {\n  display: inline-block;\n  *display: inline;\n  margin-bottom: 0;\n  margin-left: 0;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  *zoom: 1;\n  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.pagination ul > li {\n  display: inline;\n}\n\n.pagination ul > li > a,\n.pagination ul > li > span {\n  float: left;\n  padding: 4px 12px;\n  line-height: 20px;\n  text-decoration: none;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-left-width: 0;\n}\n\n.pagination ul > li > a:hover,\n.pagination ul > li > a:focus,\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  background-color: #f5f5f5;\n}\n\n.pagination ul > .active > a,\n.pagination ul > .active > span {\n  color: #999999;\n  cursor: default;\n}\n\n.pagination ul > .disabled > span,\n.pagination ul > .disabled > a,\n.pagination ul > .disabled > a:hover,\n.pagination ul > .disabled > a:focus {\n  color: #999999;\n  cursor: default;\n  background-color: transparent;\n}\n\n.pagination ul > li:first-child > a,\n.pagination ul > li:first-child > span {\n  border-left-width: 1px;\n  -webkit-border-bottom-left-radius: 4px;\n          border-bottom-left-radius: 4px;\n  -webkit-border-top-left-radius: 4px;\n          border-top-left-radius: 4px;\n  -moz-border-radius-bottomleft: 4px;\n  -moz-border-radius-topleft: 4px;\n}\n\n.pagination ul > li:last-child > a,\n.pagination ul > li:last-child > span {\n  -webkit-border-top-right-radius: 4px;\n          border-top-right-radius: 4px;\n  -webkit-border-bottom-right-radius: 4px;\n          border-bottom-right-radius: 4px;\n  -moz-border-radius-topright: 4px;\n  -moz-border-radius-bottomright: 4px;\n}\n\n.pagination-centered {\n  text-align: center;\n}\n\n.pagination-right {\n  text-align: right;\n}\n\n.pagination-large ul > li > a,\n.pagination-large ul > li > span {\n  padding: 11px 19px;\n  font-size: 17.5px;\n}\n\n.pagination-large ul > li:first-child > a,\n.pagination-large ul > li:first-child > span {\n  -webkit-border-bottom-left-radius: 6px;\n          border-bottom-left-radius: 6px;\n  -webkit-border-top-left-radius: 6px;\n          border-top-left-radius: 6px;\n  -moz-border-radius-bottomleft: 6px;\n  -moz-border-radius-topleft: 6px;\n}\n\n.pagination-large ul > li:last-child > a,\n.pagination-large ul > li:last-child > span {\n  -webkit-border-top-right-radius: 6px;\n          border-top-right-radius: 6px;\n  -webkit-border-bottom-right-radius: 6px;\n          border-bottom-right-radius: 6px;\n  -moz-border-radius-topright: 6px;\n  -moz-border-radius-bottomright: 6px;\n}\n\n.pagination-mini ul > li:first-child > a,\n.pagination-small ul > li:first-child > a,\n.pagination-mini ul > li:first-child > span,\n.pagination-small ul > li:first-child > span {\n  -webkit-border-bottom-left-radius: 3px;\n          border-bottom-left-radius: 3px;\n  -webkit-border-top-left-radius: 3px;\n          border-top-left-radius: 3px;\n  -moz-border-radius-bottomleft: 3px;\n  -moz-border-radius-topleft: 3px;\n}\n\n.pagination-mini ul > li:last-child > a,\n.pagination-small ul > li:last-child > a,\n.pagination-mini ul > li:last-child > span,\n.pagination-small ul > li:last-child > span {\n  -webkit-border-top-right-radius: 3px;\n          border-top-right-radius: 3px;\n  -webkit-border-bottom-right-radius: 3px;\n          border-bottom-right-radius: 3px;\n  -moz-border-radius-topright: 3px;\n  -moz-border-radius-bottomright: 3px;\n}\n\n.pagination-small ul > li > a,\n.pagination-small ul > li > span {\n  padding: 2px 10px;\n  font-size: 11.9px;\n}\n\n.pagination-mini ul > li > a,\n.pagination-mini ul > li > span {\n  padding: 0 6px;\n  font-size: 10.5px;\n}\n\n.pager {\n  margin: 20px 0;\n  text-align: center;\n  list-style: none;\n  *zoom: 1;\n}\n\n.pager:before,\n.pager:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.pager:after {\n  clear: both;\n}\n\n.pager li {\n  display: inline;\n}\n\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 15px;\n     -moz-border-radius: 15px;\n          border-radius: 15px;\n}\n\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #999999;\n  cursor: default;\n  background-color: #fff;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop,\n.modal-backdrop.fade.in {\n  opacity: 0.8;\n  filter: alpha(opacity=80);\n}\n\n.modal {\n  position: fixed;\n  top: 10%;\n  left: 50%;\n  z-index: 1050;\n  width: 560px;\n  margin-left: -280px;\n  background-color: #ffffff;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, 0.3);\n  *border: 1px solid #999;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n  outline: none;\n  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);\n     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);\n          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding-box;\n          background-clip: padding-box;\n}\n\n.modal.fade {\n  top: -25%;\n  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;\n     -moz-transition: opacity 0.3s linear, top 0.3s ease-out;\n       -o-transition: opacity 0.3s linear, top 0.3s ease-out;\n          transition: opacity 0.3s linear, top 0.3s ease-out;\n}\n\n.modal.fade.in {\n  top: 10%;\n}\n\n.modal-header {\n  padding: 9px 15px;\n  border-bottom: 1px solid #eee;\n}\n\n.modal-header .close {\n  margin-top: 2px;\n}\n\n.modal-header h3 {\n  margin: 0;\n  line-height: 30px;\n}\n\n.modal-body {\n  position: relative;\n  max-height: 400px;\n  padding: 15px;\n  overflow-y: auto;\n}\n\n.modal-form {\n  margin-bottom: 0;\n}\n\n.modal-footer {\n  padding: 14px 15px 15px;\n  margin-bottom: 0;\n  text-align: right;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  -webkit-border-radius: 0 0 6px 6px;\n     -moz-border-radius: 0 0 6px 6px;\n          border-radius: 0 0 6px 6px;\n  *zoom: 1;\n  -webkit-box-shadow: inset 0 1px 0 #ffffff;\n     -moz-box-shadow: inset 0 1px 0 #ffffff;\n          box-shadow: inset 0 1px 0 #ffffff;\n}\n\n.modal-footer:before,\n.modal-footer:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.modal-footer:after {\n  clear: both;\n}\n\n.modal-footer .btn + .btn {\n  margin-bottom: 0;\n  margin-left: 5px;\n}\n\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1030;\n  display: block;\n  font-size: 11px;\n  line-height: 1.4;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  visibility: visible;\n}\n\n.tooltip.in {\n  opacity: 0.8;\n  filter: alpha(opacity=80);\n}\n\n.tooltip.top {\n  padding: 5px 0;\n  margin-top: -3px;\n}\n\n.tooltip.right {\n  padding: 0 5px;\n  margin-left: 3px;\n}\n\n.tooltip.bottom {\n  padding: 5px 0;\n  margin-top: 3px;\n}\n\n.tooltip.left {\n  padding: 0 5px;\n  margin-left: -3px;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 8px;\n  color: #ffffff;\n  text-align: center;\n  text-decoration: none;\n  background-color: #000000;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-top-color: #000000;\n  border-width: 5px 5px 0;\n}\n\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-right-color: #000000;\n  border-width: 5px 5px 5px 0;\n}\n\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-left-color: #000000;\n  border-width: 5px 0 5px 5px;\n}\n\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-bottom-color: #000000;\n  border-width: 0 5px 5px;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1010;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  text-align: left;\n  white-space: normal;\n  background-color: #ffffff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  -webkit-background-clip: padding-box;\n     -moz-background-clip: padding;\n          background-clip: padding-box;\n}\n\n.popover.top {\n  margin-top: -10px;\n}\n\n.popover.right {\n  margin-left: 10px;\n}\n\n.popover.bottom {\n  margin-top: 10px;\n}\n\n.popover.left {\n  margin-left: -10px;\n}\n\n.popover-title {\n  padding: 8px 14px;\n  margin: 0;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 18px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  -webkit-border-radius: 5px 5px 0 0;\n     -moz-border-radius: 5px 5px 0 0;\n          border-radius: 5px 5px 0 0;\n}\n\n.popover-title:empty {\n  display: none;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n.popover .arrow,\n.popover .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.popover .arrow {\n  border-width: 11px;\n}\n\n.popover .arrow:after {\n  border-width: 10px;\n  content: \"\";\n}\n\n.popover.top .arrow {\n  bottom: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-top-color: #999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  border-bottom-width: 0;\n}\n\n.popover.top .arrow:after {\n  bottom: 1px;\n  margin-left: -10px;\n  border-top-color: #ffffff;\n  border-bottom-width: 0;\n}\n\n.popover.right .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-right-color: #999;\n  border-right-color: rgba(0, 0, 0, 0.25);\n  border-left-width: 0;\n}\n\n.popover.right .arrow:after {\n  bottom: -10px;\n  left: 1px;\n  border-right-color: #ffffff;\n  border-left-width: 0;\n}\n\n.popover.bottom .arrow {\n  top: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-color: #999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  border-top-width: 0;\n}\n\n.popover.bottom .arrow:after {\n  top: 1px;\n  margin-left: -10px;\n  border-bottom-color: #ffffff;\n  border-top-width: 0;\n}\n\n.popover.left .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-left-color: #999;\n  border-left-color: rgba(0, 0, 0, 0.25);\n  border-right-width: 0;\n}\n\n.popover.left .arrow:after {\n  right: 1px;\n  bottom: -10px;\n  border-left-color: #ffffff;\n  border-right-width: 0;\n}\n\n.thumbnails {\n  margin-left: -20px;\n  list-style: none;\n  *zoom: 1;\n}\n\n.thumbnails:before,\n.thumbnails:after {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.thumbnails:after {\n  clear: both;\n}\n\n.row-fluid .thumbnails {\n  margin-left: 0;\n}\n\n.thumbnails > li {\n  float: left;\n  margin-bottom: 20px;\n  margin-left: 20px;\n}\n\n.thumbnail {\n  display: block;\n  padding: 4px;\n  line-height: 20px;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);\n     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);\n          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);\n  -webkit-transition: all 0.2s ease-in-out;\n     -moz-transition: all 0.2s ease-in-out;\n       -o-transition: all 0.2s ease-in-out;\n          transition: all 0.2s ease-in-out;\n}\n\na.thumbnail:hover,\na.thumbnail:focus {\n  border-color: #0088cc;\n  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);\n     -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);\n          box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);\n}\n\n.thumbnail > img {\n  display: block;\n  max-width: 100%;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.thumbnail .caption {\n  padding: 9px;\n  color: #555555;\n}\n\n.media,\n.media-body {\n  overflow: hidden;\n  *overflow: visible;\n  zoom: 1;\n}\n\n.media,\n.media .media {\n  margin-top: 15px;\n}\n\n.media:first-child {\n  margin-top: 0;\n}\n\n.media-object {\n  display: block;\n}\n\n.media-heading {\n  margin: 0 0 5px;\n}\n\n.media > .pull-left {\n  margin-right: 10px;\n}\n\n.media > .pull-right {\n  margin-left: 10px;\n}\n\n.media-list {\n  margin-left: 0;\n  list-style: none;\n}\n\n.label,\n.badge {\n  display: inline-block;\n  padding: 2px 4px;\n  font-size: 11.844px;\n  font-weight: bold;\n  line-height: 14px;\n  color: #ffffff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  white-space: nowrap;\n  vertical-align: baseline;\n  background-color: #999999;\n}\n\n.label {\n  -webkit-border-radius: 3px;\n     -moz-border-radius: 3px;\n          border-radius: 3px;\n}\n\n.badge {\n  padding-right: 9px;\n  padding-left: 9px;\n  -webkit-border-radius: 9px;\n     -moz-border-radius: 9px;\n          border-radius: 9px;\n}\n\n.label:empty,\n.badge:empty {\n  display: none;\n}\n\na.label:hover,\na.label:focus,\na.badge:hover,\na.badge:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n\n.label-important,\n.badge-important {\n  background-color: #b94a48;\n}\n\n.label-important[href],\n.badge-important[href] {\n  background-color: #953b39;\n}\n\n.label-warning,\n.badge-warning {\n  background-color: #f89406;\n}\n\n.label-warning[href],\n.badge-warning[href] {\n  background-color: #c67605;\n}\n\n.label-success,\n.badge-success {\n  background-color: #468847;\n}\n\n.label-success[href],\n.badge-success[href] {\n  background-color: #356635;\n}\n\n.label-info,\n.badge-info {\n  background-color: #3a87ad;\n}\n\n.label-info[href],\n.badge-info[href] {\n  background-color: #2d6987;\n}\n\n.label-inverse,\n.badge-inverse {\n  background-color: #333333;\n}\n\n.label-inverse[href],\n.badge-inverse[href] {\n  background-color: #1a1a1a;\n}\n\n.btn .label,\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.btn-mini .label,\n.btn-mini .badge {\n  top: 0;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-moz-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-ms-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-o-keyframes progress-bar-stripes {\n  from {\n    background-position: 0 0;\n  }\n  to {\n    background-position: 40px 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  height: 20px;\n  margin-bottom: 20px;\n  overflow: hidden;\n  background-color: #f7f7f7;\n  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));\n  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);\n  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);\n  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);\n  background-repeat: repeat-x;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.progress .bar {\n  float: left;\n  width: 0;\n  height: 100%;\n  font-size: 12px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n  background-color: #0e90d2;\n  background-image: -moz-linear-gradient(top, #149bdf, #0480be);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));\n  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);\n  background-image: -o-linear-gradient(top, #149bdf, #0480be);\n  background-image: linear-gradient(to bottom, #149bdf, #0480be);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n  -webkit-transition: width 0.6s ease;\n     -moz-transition: width 0.6s ease;\n       -o-transition: width 0.6s ease;\n          transition: width 0.6s ease;\n}\n\n.progress .bar + .bar {\n  -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n     -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n          box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n}\n\n.progress-striped .bar {\n  background-color: #149bdf;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  -webkit-background-size: 40px 40px;\n     -moz-background-size: 40px 40px;\n       -o-background-size: 40px 40px;\n          background-size: 40px 40px;\n}\n\n.progress.active .bar {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n     -moz-animation: progress-bar-stripes 2s linear infinite;\n      -ms-animation: progress-bar-stripes 2s linear infinite;\n       -o-animation: progress-bar-stripes 2s linear infinite;\n          animation: progress-bar-stripes 2s linear infinite;\n}\n\n.progress-danger .bar,\n.progress .bar-danger {\n  background-color: #dd514c;\n  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));\n  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);\n  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);\n  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);\n}\n\n.progress-danger.progress-striped .bar,\n.progress-striped .bar-danger {\n  background-color: #ee5f5b;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-success .bar,\n.progress .bar-success {\n  background-color: #5eb95e;\n  background-image: -moz-linear-gradient(top, #62c462, #57a957);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));\n  background-image: -webkit-linear-gradient(top, #62c462, #57a957);\n  background-image: -o-linear-gradient(top, #62c462, #57a957);\n  background-image: linear-gradient(to bottom, #62c462, #57a957);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);\n}\n\n.progress-success.progress-striped .bar,\n.progress-striped .bar-success {\n  background-color: #62c462;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-info .bar,\n.progress .bar-info {\n  background-color: #4bb1cf;\n  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));\n  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);\n  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);\n  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);\n}\n\n.progress-info.progress-striped .bar,\n.progress-striped .bar-info {\n  background-color: #5bc0de;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-warning .bar,\n.progress .bar-warning {\n  background-color: #faa732;\n  background-image: -moz-linear-gradient(top, #fbb450, #f89406);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));\n  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);\n  background-image: -o-linear-gradient(top, #fbb450, #f89406);\n  background-image: linear-gradient(to bottom, #fbb450, #f89406);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);\n}\n\n.progress-warning.progress-striped .bar,\n.progress-striped .bar-warning {\n  background-color: #fbb450;\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.accordion {\n  margin-bottom: 20px;\n}\n\n.accordion-group {\n  margin-bottom: 2px;\n  border: 1px solid #e5e5e5;\n  -webkit-border-radius: 4px;\n     -moz-border-radius: 4px;\n          border-radius: 4px;\n}\n\n.accordion-heading {\n  border-bottom: 0;\n}\n\n.accordion-heading .accordion-toggle {\n  display: block;\n  padding: 8px 15px;\n}\n\n.accordion-toggle {\n  cursor: pointer;\n}\n\n.accordion-inner {\n  padding: 9px 15px;\n  border-top: 1px solid #e5e5e5;\n}\n\n.carousel {\n  position: relative;\n  margin-bottom: 20px;\n  line-height: 1;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner > .item {\n  position: relative;\n  display: none;\n  -webkit-transition: 0.6s ease-in-out left;\n     -moz-transition: 0.6s ease-in-out left;\n       -o-transition: 0.6s ease-in-out left;\n          transition: 0.6s ease-in-out left;\n}\n\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  line-height: 1;\n}\n\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n\n.carousel-inner > .active {\n  left: 0;\n}\n\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.carousel-inner > .next {\n  left: 100%;\n}\n\n.carousel-inner > .prev {\n  left: -100%;\n}\n\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n\n.carousel-inner > .active.left {\n  left: -100%;\n}\n\n.carousel-inner > .active.right {\n  left: 100%;\n}\n\n.carousel-control {\n  position: absolute;\n  top: 40%;\n  left: 15px;\n  width: 40px;\n  height: 40px;\n  margin-top: -20px;\n  font-size: 60px;\n  font-weight: 100;\n  line-height: 30px;\n  color: #ffffff;\n  text-align: center;\n  background: #222222;\n  border: 3px solid #ffffff;\n  -webkit-border-radius: 23px;\n     -moz-border-radius: 23px;\n          border-radius: 23px;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.carousel-control.right {\n  right: 15px;\n  left: auto;\n}\n\n.carousel-control:hover,\n.carousel-control:focus {\n  color: #ffffff;\n  text-decoration: none;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n\n.carousel-indicators {\n  position: absolute;\n  top: 15px;\n  right: 15px;\n  z-index: 5;\n  margin: 0;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  display: block;\n  float: left;\n  width: 10px;\n  height: 10px;\n  margin-left: 5px;\n  text-indent: -999px;\n  background-color: #ccc;\n  background-color: rgba(255, 255, 255, 0.25);\n  border-radius: 5px;\n}\n\n.carousel-indicators .active {\n  background-color: #fff;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 15px;\n  background: #333333;\n  background: rgba(0, 0, 0, 0.75);\n}\n\n.carousel-caption h4,\n.carousel-caption p {\n  line-height: 20px;\n  color: #ffffff;\n}\n\n.carousel-caption h4 {\n  margin: 0 0 5px;\n}\n\n.carousel-caption p {\n  margin-bottom: 0;\n}\n\n.hero-unit {\n  padding: 60px;\n  margin-bottom: 30px;\n  font-size: 18px;\n  font-weight: 200;\n  line-height: 30px;\n  color: inherit;\n  background-color: #eeeeee;\n  -webkit-border-radius: 6px;\n     -moz-border-radius: 6px;\n          border-radius: 6px;\n}\n\n.hero-unit h1 {\n  margin-bottom: 0;\n  font-size: 60px;\n  line-height: 1;\n  letter-spacing: -1px;\n  color: inherit;\n}\n\n.hero-unit li {\n  line-height: 30px;\n}\n\n.pull-right {\n  float: right;\n}\n\n.pull-left {\n  float: left;\n}\n\n.hide {\n  display: none;\n}\n\n.show {\n  display: block;\n}\n\n.invisible {\n  visibility: hidden;\n}\n\n.affix {\n  position: fixed;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/css/dropzone.css",
    "content": "#dropzone {\n    background: #ccccc;\n    width: 150px;\n    height: 50px;\n    line-height: 50px;\n    text-align: center;\n    font-weight: bold;\n}\n#dropzone.in {\n    width: 600px;\n    height: 200px;\n    line-height: 200px;\n    font-size: larger;\n}\n#dropzone.hover {\n    background: lawngreen;\n}\n#dropzone.fade {\n    -webkit-transition: all 0.3s ease-out;\n    -moz-transition: all 0.3s ease-out;\n    -ms-transition: all 0.3s ease-out;\n    -o-transition: all 0.3s ease-out;\n    transition: all 0.3s ease-out;\n    opacity: 1;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/dropzone/dist/basic.css",
    "content": "/*\n * The MIT License\n * Copyright (c) 2012 Matias Meno <m@tias.me>\n */\n.dropzone, .dropzone * {\n  box-sizing: border-box; }\n\n.dropzone {\n  position: relative; }\n  .dropzone .dz-preview {\n    position: relative;\n    display: inline-block;\n    width: 120px;\n    margin: 0.5em; }\n    .dropzone .dz-preview .dz-progress {\n      display: block;\n      height: 15px;\n      border: 1px solid #aaa; }\n      .dropzone .dz-preview .dz-progress .dz-upload {\n        display: block;\n        height: 100%;\n        width: 0;\n        background: green; }\n    .dropzone .dz-preview .dz-error-message {\n      color: red;\n      display: none; }\n    .dropzone .dz-preview.dz-error .dz-error-message, .dropzone .dz-preview.dz-error .dz-error-mark {\n      display: block; }\n    .dropzone .dz-preview.dz-success .dz-success-mark {\n      display: block; }\n    .dropzone .dz-preview .dz-error-mark, .dropzone .dz-preview .dz-success-mark {\n      position: absolute;\n      display: none;\n      left: 30px;\n      top: 30px;\n      width: 54px;\n      height: 58px;\n      left: 50%;\n      margin-left: -27px; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/dropzone/dist/dropzone-amd-module.js",
    "content": "// Uses AMD or browser globals to create a jQuery plugin.\n(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n      // AMD. Register as an anonymous module.\n      define(['jquery'], factory);\n  } else {\n      // Browser globals\n      factory(jQuery);\n  }\n} (function (jQuery) {\n    var module = { exports: { } }; // Fake component\n\n\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n  var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n    __slice = [].slice,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  noop = function() {};\n\n  Emitter = (function() {\n    function Emitter() {}\n\n    Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n    Emitter.prototype.on = function(event, fn) {\n      this._callbacks = this._callbacks || {};\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n      this._callbacks[event].push(fn);\n      return this;\n    };\n\n    Emitter.prototype.emit = function() {\n      var args, callback, callbacks, event, _i, _len;\n      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      this._callbacks = this._callbacks || {};\n      callbacks = this._callbacks[event];\n      if (callbacks) {\n        for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n          callback = callbacks[_i];\n          callback.apply(this, args);\n        }\n      }\n      return this;\n    };\n\n    Emitter.prototype.removeListener = Emitter.prototype.off;\n\n    Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n    Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n    Emitter.prototype.off = function(event, fn) {\n      var callback, callbacks, i, _i, _len;\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      }\n      callbacks = this._callbacks[event];\n      if (!callbacks) {\n        return this;\n      }\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      }\n      for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n        callback = callbacks[i];\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n      return this;\n    };\n\n    return Emitter;\n\n  })();\n\n  Dropzone = (function(_super) {\n    var extend, resolveOption;\n\n    __extends(Dropzone, _super);\n\n    Dropzone.prototype.Emitter = Emitter;\n\n\n    /*\n    This is a list of all available events you can register on a dropzone object.\n    \n    You can register an event handler like this:\n    \n        dropzone.on(\"dragEnter\", function() { });\n     */\n\n    Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n    Dropzone.prototype.defaultOptions = {\n      url: null,\n      method: \"post\",\n      withCredentials: false,\n      parallelUploads: 2,\n      uploadMultiple: false,\n      maxFilesize: 256,\n      paramName: \"file\",\n      createImageThumbnails: true,\n      maxThumbnailFilesize: 10,\n      thumbnailWidth: 120,\n      thumbnailHeight: 120,\n      filesizeBase: 1000,\n      maxFiles: null,\n      params: {},\n      clickable: true,\n      ignoreHiddenFiles: true,\n      acceptedFiles: null,\n      acceptedMimeTypes: null,\n      autoProcessQueue: true,\n      autoQueue: true,\n      addRemoveLinks: false,\n      previewsContainer: null,\n      hiddenInputContainer: \"body\",\n      capture: null,\n      renameFilename: null,\n      dictDefaultMessage: \"Drop files here to upload\",\n      dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n      dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n      dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n      dictInvalidFileType: \"You can't upload files of this type.\",\n      dictResponseError: \"Server responded with {{statusCode}} code.\",\n      dictCancelUpload: \"Cancel upload\",\n      dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n      dictRemoveFile: \"Remove file\",\n      dictRemoveFileConfirmation: null,\n      dictMaxFilesExceeded: \"You can not upload any more files.\",\n      accept: function(file, done) {\n        return done();\n      },\n      init: function() {\n        return noop;\n      },\n      forceFallback: false,\n      fallback: function() {\n        var child, messageElement, span, _i, _len, _ref;\n        this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n        _ref = this.element.getElementsByTagName(\"div\");\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          child = _ref[_i];\n          if (/(^| )dz-message($| )/.test(child.className)) {\n            messageElement = child;\n            child.className = \"dz-message\";\n            continue;\n          }\n        }\n        if (!messageElement) {\n          messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n          this.element.appendChild(messageElement);\n        }\n        span = messageElement.getElementsByTagName(\"span\")[0];\n        if (span) {\n          if (span.textContent != null) {\n            span.textContent = this.options.dictFallbackMessage;\n          } else if (span.innerText != null) {\n            span.innerText = this.options.dictFallbackMessage;\n          }\n        }\n        return this.element.appendChild(this.getFallbackForm());\n      },\n      resize: function(file) {\n        var info, srcRatio, trgRatio;\n        info = {\n          srcX: 0,\n          srcY: 0,\n          srcWidth: file.width,\n          srcHeight: file.height\n        };\n        srcRatio = file.width / file.height;\n        info.optWidth = this.options.thumbnailWidth;\n        info.optHeight = this.options.thumbnailHeight;\n        if ((info.optWidth == null) && (info.optHeight == null)) {\n          info.optWidth = info.srcWidth;\n          info.optHeight = info.srcHeight;\n        } else if (info.optWidth == null) {\n          info.optWidth = srcRatio * info.optHeight;\n        } else if (info.optHeight == null) {\n          info.optHeight = (1 / srcRatio) * info.optWidth;\n        }\n        trgRatio = info.optWidth / info.optHeight;\n        if (file.height < info.optHeight || file.width < info.optWidth) {\n          info.trgHeight = info.srcHeight;\n          info.trgWidth = info.srcWidth;\n        } else {\n          if (srcRatio > trgRatio) {\n            info.srcHeight = file.height;\n            info.srcWidth = info.srcHeight * trgRatio;\n          } else {\n            info.srcWidth = file.width;\n            info.srcHeight = info.srcWidth / trgRatio;\n          }\n        }\n        info.srcX = (file.width - info.srcWidth) / 2;\n        info.srcY = (file.height - info.srcHeight) / 2;\n        return info;\n      },\n\n      /*\n      Those functions register themselves to the events on init and handle all\n      the user interface specific stuff. Overwriting them won't break the upload\n      but can break the way it's displayed.\n      You can overwrite them if you don't like the default behavior. If you just\n      want to add an additional event handler, register it on the dropzone object\n      and don't overwrite those options.\n       */\n      drop: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragstart: noop,\n      dragend: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragenter: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragover: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragleave: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      paste: noop,\n      reset: function() {\n        return this.element.classList.remove(\"dz-started\");\n      },\n      addedfile: function(file) {\n        var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n        if (this.element === this.previewsContainer) {\n          this.element.classList.add(\"dz-started\");\n        }\n        if (this.previewsContainer) {\n          file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n          file.previewTemplate = file.previewElement;\n          this.previewsContainer.appendChild(file.previewElement);\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            node.textContent = this._renameFilename(file.name);\n          }\n          _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n            node = _ref1[_j];\n            node.innerHTML = this.filesize(file.size);\n          }\n          if (this.options.addRemoveLinks) {\n            file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n            file.previewElement.appendChild(file._removeLink);\n          }\n          removeFileEvent = (function(_this) {\n            return function(e) {\n              e.preventDefault();\n              e.stopPropagation();\n              if (file.status === Dropzone.UPLOADING) {\n                return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n                  return _this.removeFile(file);\n                });\n              } else {\n                if (_this.options.dictRemoveFileConfirmation) {\n                  return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n                    return _this.removeFile(file);\n                  });\n                } else {\n                  return _this.removeFile(file);\n                }\n              }\n            };\n          })(this);\n          _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n          _results = [];\n          for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n            removeLink = _ref2[_k];\n            _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n          }\n          return _results;\n        }\n      },\n      removedfile: function(file) {\n        var _ref;\n        if (file.previewElement) {\n          if ((_ref = file.previewElement) != null) {\n            _ref.parentNode.removeChild(file.previewElement);\n          }\n        }\n        return this._updateMaxFilesReachedClass();\n      },\n      thumbnail: function(file, dataUrl) {\n        var thumbnailElement, _i, _len, _ref;\n        if (file.previewElement) {\n          file.previewElement.classList.remove(\"dz-file-preview\");\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            thumbnailElement = _ref[_i];\n            thumbnailElement.alt = file.name;\n            thumbnailElement.src = dataUrl;\n          }\n          return setTimeout(((function(_this) {\n            return function() {\n              return file.previewElement.classList.add(\"dz-image-preview\");\n            };\n          })(this)), 1);\n        }\n      },\n      error: function(file, message) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-error\");\n          if (typeof message !== \"String\" && message.error) {\n            message = message.error;\n          }\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            _results.push(node.textContent = message);\n          }\n          return _results;\n        }\n      },\n      errormultiple: noop,\n      processing: function(file) {\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-processing\");\n          if (file._removeLink) {\n            return file._removeLink.textContent = this.options.dictCancelUpload;\n          }\n        }\n      },\n      processingmultiple: noop,\n      uploadprogress: function(file, progress, bytesSent) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            if (node.nodeName === 'PROGRESS') {\n              _results.push(node.value = progress);\n            } else {\n              _results.push(node.style.width = \"\" + progress + \"%\");\n            }\n          }\n          return _results;\n        }\n      },\n      totaluploadprogress: noop,\n      sending: noop,\n      sendingmultiple: noop,\n      success: function(file) {\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-success\");\n        }\n      },\n      successmultiple: noop,\n      canceled: function(file) {\n        return this.emit(\"error\", file, \"Upload canceled.\");\n      },\n      canceledmultiple: noop,\n      complete: function(file) {\n        if (file._removeLink) {\n          file._removeLink.textContent = this.options.dictRemoveFile;\n        }\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-complete\");\n        }\n      },\n      completemultiple: noop,\n      maxfilesexceeded: noop,\n      maxfilesreached: noop,\n      queuecomplete: noop,\n      addedfiles: noop,\n      previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n  <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n  <div class=\\\"dz-details\\\">\\n    <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n    <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n  </div>\\n  <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n  <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n  <div class=\\\"dz-success-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Check</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n      </g>\\n    </svg>\\n  </div>\\n  <div class=\\\"dz-error-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Error</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n          <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n        </g>\\n      </g>\\n    </svg>\\n  </div>\\n</div>\"\n    };\n\n    extend = function() {\n      var key, object, objects, target, val, _i, _len;\n      target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      for (_i = 0, _len = objects.length; _i < _len; _i++) {\n        object = objects[_i];\n        for (key in object) {\n          val = object[key];\n          target[key] = val;\n        }\n      }\n      return target;\n    };\n\n    function Dropzone(element, options) {\n      var elementOptions, fallback, _ref;\n      this.element = element;\n      this.version = Dropzone.version;\n      this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n      this.clickableElements = [];\n      this.listeners = [];\n      this.files = [];\n      if (typeof this.element === \"string\") {\n        this.element = document.querySelector(this.element);\n      }\n      if (!(this.element && (this.element.nodeType != null))) {\n        throw new Error(\"Invalid dropzone element.\");\n      }\n      if (this.element.dropzone) {\n        throw new Error(\"Dropzone already attached.\");\n      }\n      Dropzone.instances.push(this);\n      this.element.dropzone = this;\n      elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n      this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n      if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n        return this.options.fallback.call(this);\n      }\n      if (this.options.url == null) {\n        this.options.url = this.element.getAttribute(\"action\");\n      }\n      if (!this.options.url) {\n        throw new Error(\"No URL provided.\");\n      }\n      if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n        throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n      }\n      if (this.options.acceptedMimeTypes) {\n        this.options.acceptedFiles = this.options.acceptedMimeTypes;\n        delete this.options.acceptedMimeTypes;\n      }\n      this.options.method = this.options.method.toUpperCase();\n      if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n        fallback.parentNode.removeChild(fallback);\n      }\n      if (this.options.previewsContainer !== false) {\n        if (this.options.previewsContainer) {\n          this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n        } else {\n          this.previewsContainer = this.element;\n        }\n      }\n      if (this.options.clickable) {\n        if (this.options.clickable === true) {\n          this.clickableElements = [this.element];\n        } else {\n          this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n        }\n      }\n      this.init();\n    }\n\n    Dropzone.prototype.getAcceptedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getRejectedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (!file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getFilesWithStatus = function(status) {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === status) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getQueuedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    };\n\n    Dropzone.prototype.getUploadingFiles = function() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    };\n\n    Dropzone.prototype.getAddedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.ADDED);\n    };\n\n    Dropzone.prototype.getActiveFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.init = function() {\n      var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n      }\n      if (this.clickableElements.length) {\n        setupHiddenFileInput = (function(_this) {\n          return function() {\n            if (_this.hiddenFileInput) {\n              _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n            }\n            _this.hiddenFileInput = document.createElement(\"input\");\n            _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n            if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n              _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n            }\n            _this.hiddenFileInput.className = \"dz-hidden-input\";\n            if (_this.options.acceptedFiles != null) {\n              _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n            }\n            if (_this.options.capture != null) {\n              _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n            }\n            _this.hiddenFileInput.style.visibility = \"hidden\";\n            _this.hiddenFileInput.style.position = \"absolute\";\n            _this.hiddenFileInput.style.top = \"0\";\n            _this.hiddenFileInput.style.left = \"0\";\n            _this.hiddenFileInput.style.height = \"0\";\n            _this.hiddenFileInput.style.width = \"0\";\n            document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n            return _this.hiddenFileInput.addEventListener(\"change\", function() {\n              var file, files, _i, _len;\n              files = _this.hiddenFileInput.files;\n              if (files.length) {\n                for (_i = 0, _len = files.length; _i < _len; _i++) {\n                  file = files[_i];\n                  _this.addFile(file);\n                }\n              }\n              _this.emit(\"addedfiles\", files);\n              return setupHiddenFileInput();\n            });\n          };\n        })(this);\n        setupHiddenFileInput();\n      }\n      this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n      _ref1 = this.events;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        eventName = _ref1[_i];\n        this.on(eventName, this.options[eventName]);\n      }\n      this.on(\"uploadprogress\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"removedfile\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"canceled\", (function(_this) {\n        return function(file) {\n          return _this.emit(\"complete\", file);\n        };\n      })(this));\n      this.on(\"complete\", (function(_this) {\n        return function(file) {\n          if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n            return setTimeout((function() {\n              return _this.emit(\"queuecomplete\");\n            }), 0);\n          }\n        };\n      })(this));\n      noPropagation = function(e) {\n        e.stopPropagation();\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      };\n      this.listeners = [\n        {\n          element: this.element,\n          events: {\n            \"dragstart\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragstart\", e);\n              };\n            })(this),\n            \"dragenter\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.emit(\"dragenter\", e);\n              };\n            })(this),\n            \"dragover\": (function(_this) {\n              return function(e) {\n                var efct;\n                try {\n                  efct = e.dataTransfer.effectAllowed;\n                } catch (_error) {}\n                e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n                noPropagation(e);\n                return _this.emit(\"dragover\", e);\n              };\n            })(this),\n            \"dragleave\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragleave\", e);\n              };\n            })(this),\n            \"drop\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.drop(e);\n              };\n            })(this),\n            \"dragend\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragend\", e);\n              };\n            })(this)\n          }\n        }\n      ];\n      this.clickableElements.forEach((function(_this) {\n        return function(clickableElement) {\n          return _this.listeners.push({\n            element: clickableElement,\n            events: {\n              \"click\": function(evt) {\n                if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n                  _this.hiddenFileInput.click();\n                }\n                return true;\n              }\n            }\n          });\n        };\n      })(this));\n      this.enable();\n      return this.options.init.call(this);\n    };\n\n    Dropzone.prototype.destroy = function() {\n      var _ref;\n      this.disable();\n      this.removeAllFiles(true);\n      if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    };\n\n    Dropzone.prototype.updateTotalUploadProgress = function() {\n      var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n      totalBytesSent = 0;\n      totalBytes = 0;\n      activeFiles = this.getActiveFiles();\n      if (activeFiles.length) {\n        _ref = this.getActiveFiles();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          totalBytesSent += file.upload.bytesSent;\n          totalBytes += file.upload.total;\n        }\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    };\n\n    Dropzone.prototype._getParamName = function(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n      }\n    };\n\n    Dropzone.prototype._renameFilename = function(name) {\n      if (typeof this.options.renameFilename !== \"function\") {\n        return name;\n      }\n      return this.options.renameFilename(name);\n    };\n\n    Dropzone.prototype.getFallbackForm = function() {\n      var existingFallback, fields, fieldsString, form;\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n      fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n      }\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n      fields = Dropzone.createElement(fieldsString);\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n        form.appendChild(fields);\n      } else {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n      return form != null ? form : fields;\n    };\n\n    Dropzone.prototype.getExistingFallback = function() {\n      var fallback, getFallback, tagName, _i, _len, _ref;\n      getFallback = function(elements) {\n        var el, _i, _len;\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )fallback($| )/.test(el.className)) {\n            return el;\n          }\n        }\n      };\n      _ref = [\"div\", \"form\"];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        tagName = _ref[_i];\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    };\n\n    Dropzone.prototype.setupEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.removeEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.disable = function() {\n      var file, _i, _len, _ref, _results;\n      this.clickableElements.forEach(function(element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        _results.push(this.cancelUpload(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.enable = function() {\n      this.clickableElements.forEach(function(element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    };\n\n    Dropzone.prototype.filesize = function(size) {\n      var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n      selectedSize = 0;\n      selectedUnit = \"b\";\n      if (size > 0) {\n        units = ['TB', 'GB', 'MB', 'KB', 'b'];\n        for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n          unit = units[i];\n          cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n          if (size >= cutoff) {\n            selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n            selectedUnit = unit;\n            break;\n          }\n        }\n        selectedSize = Math.round(10 * selectedSize) / 10;\n      }\n      return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n    };\n\n    Dropzone.prototype._updateMaxFilesReachedClass = function() {\n      if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit('maxfilesreached', this.files);\n        }\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    };\n\n    Dropzone.prototype.drop = function(e) {\n      var files, items;\n      if (!e.dataTransfer) {\n        return;\n      }\n      this.emit(\"drop\", e);\n      files = e.dataTransfer.files;\n      this.emit(\"addedfiles\", files);\n      if (files.length) {\n        items = e.dataTransfer.items;\n        if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n    };\n\n    Dropzone.prototype.paste = function(e) {\n      var items, _ref;\n      if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n        return;\n      }\n      this.emit(\"paste\", e);\n      items = e.clipboardData.items;\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    };\n\n    Dropzone.prototype.handleFiles = function(files) {\n      var file, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        _results.push(this.addFile(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromItems = function(items) {\n      var entry, item, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = items.length; _i < _len; _i++) {\n        item = items[_i];\n        if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n          if (entry.isFile) {\n            _results.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            _results.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            _results.push(void 0);\n          }\n        } else if (item.getAsFile != null) {\n          if ((item.kind == null) || item.kind === \"file\") {\n            _results.push(this.addFile(item.getAsFile()));\n          } else {\n            _results.push(void 0);\n          }\n        } else {\n          _results.push(void 0);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n      var dirReader, errorHandler, readEntries;\n      dirReader = directory.createReader();\n      errorHandler = function(error) {\n        return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n      };\n      readEntries = (function(_this) {\n        return function() {\n          return dirReader.readEntries(function(entries) {\n            var entry, _i, _len;\n            if (entries.length > 0) {\n              for (_i = 0, _len = entries.length; _i < _len; _i++) {\n                entry = entries[_i];\n                if (entry.isFile) {\n                  entry.file(function(file) {\n                    if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n                      return;\n                    }\n                    file.fullPath = \"\" + path + \"/\" + file.name;\n                    return _this.addFile(file);\n                  });\n                } else if (entry.isDirectory) {\n                  _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n                }\n              }\n              readEntries();\n            }\n            return null;\n          }, errorHandler);\n        };\n      })(this);\n      return readEntries();\n    };\n\n    Dropzone.prototype.accept = function(file, done) {\n      if (file.size > this.options.maxFilesize * 1024 * 1024) {\n        return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        return done(this.options.dictInvalidFileType);\n      } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        return this.emit(\"maxfilesexceeded\", file);\n      } else {\n        return this.options.accept.call(this, file, done);\n      }\n    };\n\n    Dropzone.prototype.addFile = function(file) {\n      file.upload = {\n        progress: 0,\n        total: file.size,\n        bytesSent: 0\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n      this._enqueueThumbnail(file);\n      return this.accept(file, (function(_this) {\n        return function(error) {\n          if (error) {\n            file.accepted = false;\n            _this._errorProcessing([file], error);\n          } else {\n            file.accepted = true;\n            if (_this.options.autoQueue) {\n              _this.enqueueFile(file);\n            }\n          }\n          return _this._updateMaxFilesReachedClass();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.enqueueFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        this.enqueueFile(file);\n      }\n      return null;\n    };\n\n    Dropzone.prototype.enqueueFile = function(file) {\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n        if (this.options.autoProcessQueue) {\n          return setTimeout(((function(_this) {\n            return function() {\n              return _this.processQueue();\n            };\n          })(this)), 0);\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    };\n\n    Dropzone.prototype._thumbnailQueue = [];\n\n    Dropzone.prototype._processingThumbnail = false;\n\n    Dropzone.prototype._enqueueThumbnail = function(file) {\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this._processThumbnailQueue();\n          };\n        })(this)), 0);\n      }\n    };\n\n    Dropzone.prototype._processThumbnailQueue = function() {\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n      this._processingThumbnail = true;\n      return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n        return function() {\n          _this._processingThumbnail = false;\n          return _this._processThumbnailQueue();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.removeFile = function(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    };\n\n    Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n      var file, _i, _len, _ref;\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n      _ref = this.files.slice();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n          this.removeFile(file);\n        }\n      }\n      return null;\n    };\n\n    Dropzone.prototype.createThumbnail = function(file, callback) {\n      var fileReader;\n      fileReader = new FileReader;\n      fileReader.onload = (function(_this) {\n        return function() {\n          if (file.type === \"image/svg+xml\") {\n            _this.emit(\"thumbnail\", file, fileReader.result);\n            if (callback != null) {\n              callback();\n            }\n            return;\n          }\n          return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n        };\n      })(this);\n      return fileReader.readAsDataURL(file);\n    };\n\n    Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n      var img;\n      img = document.createElement(\"img\");\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      }\n      img.onload = (function(_this) {\n        return function() {\n          var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n          file.width = img.width;\n          file.height = img.height;\n          resizeInfo = _this.options.resize.call(_this, file);\n          if (resizeInfo.trgWidth == null) {\n            resizeInfo.trgWidth = resizeInfo.optWidth;\n          }\n          if (resizeInfo.trgHeight == null) {\n            resizeInfo.trgHeight = resizeInfo.optHeight;\n          }\n          canvas = document.createElement(\"canvas\");\n          ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n          drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          thumbnail = canvas.toDataURL(\"image/png\");\n          _this.emit(\"thumbnail\", file, thumbnail);\n          if (callback != null) {\n            return callback();\n          }\n        };\n      })(this);\n      if (callback != null) {\n        img.onerror = callback;\n      }\n      return img.src = imageUrl;\n    };\n\n    Dropzone.prototype.processQueue = function() {\n      var i, parallelUploads, processingLength, queuedFiles;\n      parallelUploads = this.options.parallelUploads;\n      processingLength = this.getUploadingFiles().length;\n      i = processingLength;\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n      queuedFiles = this.getQueuedFiles();\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n      if (this.options.uploadMultiple) {\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          }\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    };\n\n    Dropzone.prototype.processFile = function(file) {\n      return this.processFiles([file]);\n    };\n\n    Dropzone.prototype.processFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.processing = true;\n        file.status = Dropzone.UPLOADING;\n        this.emit(\"processing\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n      return this.uploadFiles(files);\n    };\n\n    Dropzone.prototype._getFilesWithXhr = function(xhr) {\n      var file, files;\n      return files = (function() {\n        var _i, _len, _ref, _results;\n        _ref = this.files;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          if (file.xhr === xhr) {\n            _results.push(file);\n          }\n        }\n        return _results;\n      }).call(this);\n    };\n\n    Dropzone.prototype.cancelUpload = function(file) {\n      var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n      if (file.status === Dropzone.UPLOADING) {\n        groupedFiles = this._getFilesWithXhr(file.xhr);\n        for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n          groupedFile = groupedFiles[_i];\n          groupedFile.status = Dropzone.CANCELED;\n        }\n        file.xhr.abort();\n        for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n          groupedFile = groupedFiles[_j];\n          this.emit(\"canceled\", groupedFile);\n        }\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    resolveOption = function() {\n      var args, option;\n      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      if (typeof option === 'function') {\n        return option.apply(this, args);\n      }\n      return option;\n    };\n\n    Dropzone.prototype.uploadFile = function(file) {\n      return this.uploadFiles([file]);\n    };\n\n    Dropzone.prototype.uploadFiles = function(files) {\n      var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n      xhr = new XMLHttpRequest();\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.xhr = xhr;\n      }\n      method = resolveOption(this.options.method, files);\n      url = resolveOption(this.options.url, files);\n      xhr.open(method, url, true);\n      xhr.withCredentials = !!this.options.withCredentials;\n      response = null;\n      handleError = (function(_this) {\n        return function() {\n          var _j, _len1, _results;\n          _results = [];\n          for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n            file = files[_j];\n            _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n          }\n          return _results;\n        };\n      })(this);\n      updateProgress = (function(_this) {\n        return function(e) {\n          var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n          if (e != null) {\n            progress = 100 * e.loaded / e.total;\n            for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n              file = files[_j];\n              file.upload = {\n                progress: progress,\n                total: e.total,\n                bytesSent: e.loaded\n              };\n            }\n          } else {\n            allFilesFinished = true;\n            progress = 100;\n            for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n              file = files[_k];\n              if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n                allFilesFinished = false;\n              }\n              file.upload.progress = progress;\n              file.upload.bytesSent = file.upload.total;\n            }\n            if (allFilesFinished) {\n              return;\n            }\n          }\n          _results = [];\n          for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n            file = files[_l];\n            _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n          }\n          return _results;\n        };\n      })(this);\n      xhr.onload = (function(_this) {\n        return function(e) {\n          var _ref;\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          response = xhr.responseText;\n          if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n            try {\n              response = JSON.parse(response);\n            } catch (_error) {\n              e = _error;\n              response = \"Invalid JSON response from server.\";\n            }\n          }\n          updateProgress();\n          if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n            return handleError();\n          } else {\n            return _this._finished(files, response, e);\n          }\n        };\n      })(this);\n      xhr.onerror = (function(_this) {\n        return function() {\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          return handleError();\n        };\n      })(this);\n      progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n      progressObj.onprogress = updateProgress;\n      headers = {\n        \"Accept\": \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n      if (this.options.headers) {\n        extend(headers, this.options.headers);\n      }\n      for (headerName in headers) {\n        headerValue = headers[headerName];\n        if (headerValue) {\n          xhr.setRequestHeader(headerName, headerValue);\n        }\n      }\n      formData = new FormData();\n      if (this.options.params) {\n        _ref1 = this.options.params;\n        for (key in _ref1) {\n          value = _ref1[key];\n          formData.append(key, value);\n        }\n      }\n      for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n        file = files[_j];\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n      if (this.element.tagName === \"FORM\") {\n        _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n          input = _ref2[_k];\n          inputName = input.getAttribute(\"name\");\n          inputType = input.getAttribute(\"type\");\n          if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n            _ref3 = input.options;\n            for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n              option = _ref3[_l];\n              if (option.selected) {\n                formData.append(inputName, option.value);\n              }\n            }\n          } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n            formData.append(inputName, input.value);\n          }\n        }\n      }\n      for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n        formData.append(this._getParamName(i), files[i], this._renameFilename(files[i].name));\n      }\n      return this.submitRequest(xhr, formData, files);\n    };\n\n    Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n      return xhr.send(formData);\n    };\n\n    Dropzone.prototype._finished = function(files, responseText, e) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.SUCCESS;\n        this.emit(\"success\", file, responseText, e);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.ERROR;\n        this.emit(\"error\", file, message, xhr);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    return Dropzone;\n\n  })(Emitter);\n\n  Dropzone.version = \"4.3.0\";\n\n  Dropzone.options = {};\n\n  Dropzone.optionsForElement = function(element) {\n    if (element.getAttribute(\"id\")) {\n      return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n    } else {\n      return void 0;\n    }\n  };\n\n  Dropzone.instances = [];\n\n  Dropzone.forElement = function(element) {\n    if (typeof element === \"string\") {\n      element = document.querySelector(element);\n    }\n    if ((element != null ? element.dropzone : void 0) == null) {\n      throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n    }\n    return element.dropzone;\n  };\n\n  Dropzone.autoDiscover = true;\n\n  Dropzone.discover = function() {\n    var checkElements, dropzone, dropzones, _i, _len, _results;\n    if (document.querySelectorAll) {\n      dropzones = document.querySelectorAll(\".dropzone\");\n    } else {\n      dropzones = [];\n      checkElements = function(elements) {\n        var el, _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            _results.push(dropzones.push(el));\n          } else {\n            _results.push(void 0);\n          }\n        }\n        return _results;\n      };\n      checkElements(document.getElementsByTagName(\"div\"));\n      checkElements(document.getElementsByTagName(\"form\"));\n    }\n    _results = [];\n    for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n      dropzone = dropzones[_i];\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        _results.push(new Dropzone(dropzone));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  };\n\n  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n  Dropzone.isBrowserSupported = function() {\n    var capableBrowser, regex, _i, _len, _ref;\n    capableBrowser = true;\n    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n      if (!(\"classList\" in document.createElement(\"a\"))) {\n        capableBrowser = false;\n      } else {\n        _ref = Dropzone.blacklistedBrowsers;\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          regex = _ref[_i];\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      }\n    } else {\n      capableBrowser = false;\n    }\n    return capableBrowser;\n  };\n\n  without = function(list, rejectedItem) {\n    var item, _i, _len, _results;\n    _results = [];\n    for (_i = 0, _len = list.length; _i < _len; _i++) {\n      item = list[_i];\n      if (item !== rejectedItem) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  };\n\n  camelize = function(str) {\n    return str.replace(/[\\-_](\\w)/g, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  };\n\n  Dropzone.createElement = function(string) {\n    var div;\n    div = document.createElement(\"div\");\n    div.innerHTML = string;\n    return div.childNodes[0];\n  };\n\n  Dropzone.elementInside = function(element, container) {\n    if (element === container) {\n      return true;\n    }\n    while (element = element.parentNode) {\n      if (element === container) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  Dropzone.getElement = function(el, name) {\n    var element;\n    if (typeof el === \"string\") {\n      element = document.querySelector(el);\n    } else if (el.nodeType != null) {\n      element = el;\n    }\n    if (element == null) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n    }\n    return element;\n  };\n\n  Dropzone.getElements = function(els, name) {\n    var e, el, elements, _i, _j, _len, _len1, _ref;\n    if (els instanceof Array) {\n      elements = [];\n      try {\n        for (_i = 0, _len = els.length; _i < _len; _i++) {\n          el = els[_i];\n          elements.push(this.getElement(el, name));\n        }\n      } catch (_error) {\n        e = _error;\n        elements = null;\n      }\n    } else if (typeof els === \"string\") {\n      elements = [];\n      _ref = document.querySelectorAll(els);\n      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n        el = _ref[_j];\n        elements.push(el);\n      }\n    } else if (els.nodeType != null) {\n      elements = [els];\n    }\n    if (!((elements != null) && elements.length)) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n    }\n    return elements;\n  };\n\n  Dropzone.confirm = function(question, accepted, rejected) {\n    if (window.confirm(question)) {\n      return accepted();\n    } else if (rejected != null) {\n      return rejected();\n    }\n  };\n\n  Dropzone.isValidFile = function(file, acceptedFiles) {\n    var baseMimeType, mimeType, validType, _i, _len;\n    if (!acceptedFiles) {\n      return true;\n    }\n    acceptedFiles = acceptedFiles.split(\",\");\n    mimeType = file.type;\n    baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n    for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n      validType = acceptedFiles[_i];\n      validType = validType.trim();\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n    jQuery.fn.dropzone = function(options) {\n      return this.each(function() {\n        return new Dropzone(this, options);\n      });\n    };\n  }\n\n  if (typeof module !== \"undefined\" && module !== null) {\n    module.exports = Dropzone;\n  } else {\n    window.Dropzone = Dropzone;\n  }\n\n  Dropzone.ADDED = \"added\";\n\n  Dropzone.QUEUED = \"queued\";\n\n  Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n  Dropzone.UPLOADING = \"uploading\";\n\n  Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n  Dropzone.CANCELED = \"canceled\";\n\n  Dropzone.ERROR = \"error\";\n\n  Dropzone.SUCCESS = \"success\";\n\n\n  /*\n  \n  Bugfix for iOS 6 and 7\n  Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n  based on the work of https://github.com/stomita/ios-imagefile-megapixel\n   */\n\n  detectVerticalSquash = function(img) {\n    var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n    iw = img.naturalWidth;\n    ih = img.naturalHeight;\n    canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = ih;\n    ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    data = ctx.getImageData(0, 0, 1, ih).data;\n    sy = 0;\n    ey = ih;\n    py = ih;\n    while (py > sy) {\n      alpha = data[(py - 1) * 4 + 3];\n      if (alpha === 0) {\n        ey = py;\n      } else {\n        sy = py;\n      }\n      py = (ey + sy) >> 1;\n    }\n    ratio = py / ih;\n    if (ratio === 0) {\n      return 1;\n    } else {\n      return ratio;\n    }\n  };\n\n  drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n    var vertSquashRatio;\n    vertSquashRatio = detectVerticalSquash(img);\n    return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n  };\n\n\n  /*\n   * contentloaded.js\n   *\n   * Author: Diego Perini (diego.perini at gmail.com)\n   * Summary: cross-browser wrapper for DOMContentLoaded\n   * Updated: 20101020\n   * License: MIT\n   * Version: 1.2\n   *\n   * URL:\n   * http://javascript.nwbox.com/ContentLoaded/\n   * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n   */\n\n  contentLoaded = function(win, fn) {\n    var add, doc, done, init, poll, pre, rem, root, top;\n    done = false;\n    top = true;\n    doc = win.document;\n    root = doc.documentElement;\n    add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n    rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n    pre = (doc.addEventListener ? \"\" : \"on\");\n    init = function(e) {\n      if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n        return;\n      }\n      (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n      if (!done && (done = true)) {\n        return fn.call(win, e.type || e);\n      }\n    };\n    poll = function() {\n      var e;\n      try {\n        root.doScroll(\"left\");\n      } catch (_error) {\n        e = _error;\n        setTimeout(poll, 50);\n        return;\n      }\n      return init(\"poll\");\n    };\n    if (doc.readyState !== \"complete\") {\n      if (doc.createEventObject && root.doScroll) {\n        try {\n          top = !win.frameElement;\n        } catch (_error) {}\n        if (top) {\n          poll();\n        }\n      }\n      doc[add](pre + \"DOMContentLoaded\", init, false);\n      doc[add](pre + \"readystatechange\", init, false);\n      return win[add](pre + \"load\", init, false);\n    }\n  };\n\n  Dropzone._autoDiscoverFunction = function() {\n    if (Dropzone.autoDiscover) {\n      return Dropzone.discover();\n    }\n  };\n\n  contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n\n    return module.exports;\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/dropzone/dist/dropzone.css",
    "content": "/*\n * The MIT License\n * Copyright (c) 2012 Matias Meno <m@tias.me>\n */\n@-webkit-keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px); } }\n@-moz-keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px); } }\n@keyframes passing-through {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30%, 70% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); }\n  100% {\n    opacity: 0;\n    -webkit-transform: translateY(-40px);\n    -moz-transform: translateY(-40px);\n    -ms-transform: translateY(-40px);\n    -o-transform: translateY(-40px);\n    transform: translateY(-40px); } }\n@-webkit-keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); } }\n@-moz-keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); } }\n@keyframes slide-in {\n  0% {\n    opacity: 0;\n    -webkit-transform: translateY(40px);\n    -moz-transform: translateY(40px);\n    -ms-transform: translateY(40px);\n    -o-transform: translateY(40px);\n    transform: translateY(40px); }\n  30% {\n    opacity: 1;\n    -webkit-transform: translateY(0px);\n    -moz-transform: translateY(0px);\n    -ms-transform: translateY(0px);\n    -o-transform: translateY(0px);\n    transform: translateY(0px); } }\n@-webkit-keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1); }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); } }\n@-moz-keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1); }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); } }\n@keyframes pulse {\n  0% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); }\n  10% {\n    -webkit-transform: scale(1.1);\n    -moz-transform: scale(1.1);\n    -ms-transform: scale(1.1);\n    -o-transform: scale(1.1);\n    transform: scale(1.1); }\n  20% {\n    -webkit-transform: scale(1);\n    -moz-transform: scale(1);\n    -ms-transform: scale(1);\n    -o-transform: scale(1);\n    transform: scale(1); } }\n.dropzone, .dropzone * {\n  box-sizing: border-box; }\n\n.dropzone {\n  min-height: 150px;\n  border: 2px solid rgba(0, 0, 0, 0.3);\n  background: white;\n  padding: 20px 20px; }\n  .dropzone.dz-clickable {\n    cursor: pointer; }\n    .dropzone.dz-clickable * {\n      cursor: default; }\n    .dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {\n      cursor: pointer; }\n  .dropzone.dz-started .dz-message {\n    display: none; }\n  .dropzone.dz-drag-hover {\n    border-style: solid; }\n    .dropzone.dz-drag-hover .dz-message {\n      opacity: 0.5; }\n  .dropzone .dz-message {\n    text-align: center;\n    margin: 2em 0; }\n  .dropzone .dz-preview {\n    position: relative;\n    display: inline-block;\n    vertical-align: top;\n    margin: 16px;\n    min-height: 100px; }\n    .dropzone .dz-preview:hover {\n      z-index: 1000; }\n      .dropzone .dz-preview:hover .dz-details {\n        opacity: 1; }\n    .dropzone .dz-preview.dz-file-preview .dz-image {\n      border-radius: 20px;\n      background: #999;\n      background: linear-gradient(to bottom, #eee, #ddd); }\n    .dropzone .dz-preview.dz-file-preview .dz-details {\n      opacity: 1; }\n    .dropzone .dz-preview.dz-image-preview {\n      background: white; }\n      .dropzone .dz-preview.dz-image-preview .dz-details {\n        -webkit-transition: opacity 0.2s linear;\n        -moz-transition: opacity 0.2s linear;\n        -ms-transition: opacity 0.2s linear;\n        -o-transition: opacity 0.2s linear;\n        transition: opacity 0.2s linear; }\n    .dropzone .dz-preview .dz-remove {\n      font-size: 14px;\n      text-align: center;\n      display: block;\n      cursor: pointer;\n      border: none; }\n      .dropzone .dz-preview .dz-remove:hover {\n        text-decoration: underline; }\n    .dropzone .dz-preview:hover .dz-details {\n      opacity: 1; }\n    .dropzone .dz-preview .dz-details {\n      z-index: 20;\n      position: absolute;\n      top: 0;\n      left: 0;\n      opacity: 0;\n      font-size: 13px;\n      min-width: 100%;\n      max-width: 100%;\n      padding: 2em 1em;\n      text-align: center;\n      color: rgba(0, 0, 0, 0.9);\n      line-height: 150%; }\n      .dropzone .dz-preview .dz-details .dz-size {\n        margin-bottom: 1em;\n        font-size: 16px; }\n      .dropzone .dz-preview .dz-details .dz-filename {\n        white-space: nowrap; }\n        .dropzone .dz-preview .dz-details .dz-filename:hover span {\n          border: 1px solid rgba(200, 200, 200, 0.8);\n          background-color: rgba(255, 255, 255, 0.8); }\n        .dropzone .dz-preview .dz-details .dz-filename:not(:hover) {\n          overflow: hidden;\n          text-overflow: ellipsis; }\n          .dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {\n            border: 1px solid transparent; }\n      .dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {\n        background-color: rgba(255, 255, 255, 0.4);\n        padding: 0 0.4em;\n        border-radius: 3px; }\n    .dropzone .dz-preview:hover .dz-image img {\n      -webkit-transform: scale(1.05, 1.05);\n      -moz-transform: scale(1.05, 1.05);\n      -ms-transform: scale(1.05, 1.05);\n      -o-transform: scale(1.05, 1.05);\n      transform: scale(1.05, 1.05);\n      -webkit-filter: blur(8px);\n      filter: blur(8px); }\n    .dropzone .dz-preview .dz-image {\n      border-radius: 20px;\n      overflow: hidden;\n      width: 120px;\n      height: 120px;\n      position: relative;\n      display: block;\n      z-index: 10; }\n      .dropzone .dz-preview .dz-image img {\n        display: block; }\n    .dropzone .dz-preview.dz-success .dz-success-mark {\n      -webkit-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -moz-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -ms-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -o-animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1);\n      animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }\n    .dropzone .dz-preview.dz-error .dz-error-mark {\n      opacity: 1;\n      -webkit-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -moz-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -ms-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      -o-animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1);\n      animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }\n    .dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {\n      pointer-events: none;\n      opacity: 0;\n      z-index: 500;\n      position: absolute;\n      display: block;\n      top: 50%;\n      left: 50%;\n      margin-left: -27px;\n      margin-top: -27px; }\n      .dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {\n        display: block;\n        width: 54px;\n        height: 54px; }\n    .dropzone .dz-preview.dz-processing .dz-progress {\n      opacity: 1;\n      -webkit-transition: all 0.2s linear;\n      -moz-transition: all 0.2s linear;\n      -ms-transition: all 0.2s linear;\n      -o-transition: all 0.2s linear;\n      transition: all 0.2s linear; }\n    .dropzone .dz-preview.dz-complete .dz-progress {\n      opacity: 0;\n      -webkit-transition: opacity 0.4s ease-in;\n      -moz-transition: opacity 0.4s ease-in;\n      -ms-transition: opacity 0.4s ease-in;\n      -o-transition: opacity 0.4s ease-in;\n      transition: opacity 0.4s ease-in; }\n    .dropzone .dz-preview:not(.dz-processing) .dz-progress {\n      -webkit-animation: pulse 6s ease infinite;\n      -moz-animation: pulse 6s ease infinite;\n      -ms-animation: pulse 6s ease infinite;\n      -o-animation: pulse 6s ease infinite;\n      animation: pulse 6s ease infinite; }\n    .dropzone .dz-preview .dz-progress {\n      opacity: 1;\n      z-index: 1000;\n      pointer-events: none;\n      position: absolute;\n      height: 16px;\n      left: 50%;\n      top: 50%;\n      margin-top: -8px;\n      width: 80px;\n      margin-left: -40px;\n      background: rgba(255, 255, 255, 0.9);\n      -webkit-transform: scale(1);\n      border-radius: 8px;\n      overflow: hidden; }\n      .dropzone .dz-preview .dz-progress .dz-upload {\n        background: #333;\n        background: linear-gradient(to bottom, #666, #444);\n        position: absolute;\n        top: 0;\n        left: 0;\n        bottom: 0;\n        width: 0;\n        -webkit-transition: width 300ms ease-in-out;\n        -moz-transition: width 300ms ease-in-out;\n        -ms-transition: width 300ms ease-in-out;\n        -o-transition: width 300ms ease-in-out;\n        transition: width 300ms ease-in-out; }\n    .dropzone .dz-preview.dz-error .dz-error-message {\n      display: block; }\n    .dropzone .dz-preview.dz-error:hover .dz-error-message {\n      opacity: 1;\n      pointer-events: auto; }\n    .dropzone .dz-preview .dz-error-message {\n      pointer-events: none;\n      z-index: 1000;\n      position: absolute;\n      display: block;\n      display: none;\n      opacity: 0;\n      -webkit-transition: opacity 0.3s ease;\n      -moz-transition: opacity 0.3s ease;\n      -ms-transition: opacity 0.3s ease;\n      -o-transition: opacity 0.3s ease;\n      transition: opacity 0.3s ease;\n      border-radius: 8px;\n      font-size: 13px;\n      top: 130px;\n      left: -10px;\n      width: 140px;\n      background: #be2626;\n      background: linear-gradient(to bottom, #be2626, #a92222);\n      padding: 0.5em 1.2em;\n      color: white; }\n      .dropzone .dz-preview .dz-error-message:after {\n        content: '';\n        position: absolute;\n        top: -6px;\n        left: 64px;\n        width: 0;\n        height: 0;\n        border-left: 6px solid transparent;\n        border-right: 6px solid transparent;\n        border-bottom: 6px solid #be2626; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/dropzone/dist/dropzone.js",
    "content": "\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n  var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n    __slice = [].slice,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  noop = function() {};\n\n  Emitter = (function() {\n    function Emitter() {}\n\n    Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n    Emitter.prototype.on = function(event, fn) {\n      this._callbacks = this._callbacks || {};\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n      this._callbacks[event].push(fn);\n      return this;\n    };\n\n    Emitter.prototype.emit = function() {\n      var args, callback, callbacks, event, _i, _len;\n      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      this._callbacks = this._callbacks || {};\n      callbacks = this._callbacks[event];\n      if (callbacks) {\n        for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n          callback = callbacks[_i];\n          callback.apply(this, args);\n        }\n      }\n      return this;\n    };\n\n    Emitter.prototype.removeListener = Emitter.prototype.off;\n\n    Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n    Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n    Emitter.prototype.off = function(event, fn) {\n      var callback, callbacks, i, _i, _len;\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      }\n      callbacks = this._callbacks[event];\n      if (!callbacks) {\n        return this;\n      }\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      }\n      for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n        callback = callbacks[i];\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n      return this;\n    };\n\n    return Emitter;\n\n  })();\n\n  Dropzone = (function(_super) {\n    var extend, resolveOption;\n\n    __extends(Dropzone, _super);\n\n    Dropzone.prototype.Emitter = Emitter;\n\n\n    /*\n    This is a list of all available events you can register on a dropzone object.\n    \n    You can register an event handler like this:\n    \n        dropzone.on(\"dragEnter\", function() { });\n     */\n\n    Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n    Dropzone.prototype.defaultOptions = {\n      url: null,\n      method: \"post\",\n      withCredentials: false,\n      parallelUploads: 2,\n      uploadMultiple: false,\n      maxFilesize: 256,\n      paramName: \"file\",\n      createImageThumbnails: true,\n      maxThumbnailFilesize: 10,\n      thumbnailWidth: 120,\n      thumbnailHeight: 120,\n      filesizeBase: 1000,\n      maxFiles: null,\n      params: {},\n      clickable: true,\n      ignoreHiddenFiles: true,\n      acceptedFiles: null,\n      acceptedMimeTypes: null,\n      autoProcessQueue: true,\n      autoQueue: true,\n      addRemoveLinks: false,\n      previewsContainer: null,\n      hiddenInputContainer: \"body\",\n      capture: null,\n      renameFilename: null,\n      dictDefaultMessage: \"Drop files here to upload\",\n      dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n      dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n      dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n      dictInvalidFileType: \"You can't upload files of this type.\",\n      dictResponseError: \"Server responded with {{statusCode}} code.\",\n      dictCancelUpload: \"Cancel upload\",\n      dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n      dictRemoveFile: \"Remove file\",\n      dictRemoveFileConfirmation: null,\n      dictMaxFilesExceeded: \"You can not upload any more files.\",\n      accept: function(file, done) {\n        return done();\n      },\n      init: function() {\n        return noop;\n      },\n      forceFallback: false,\n      fallback: function() {\n        var child, messageElement, span, _i, _len, _ref;\n        this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n        _ref = this.element.getElementsByTagName(\"div\");\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          child = _ref[_i];\n          if (/(^| )dz-message($| )/.test(child.className)) {\n            messageElement = child;\n            child.className = \"dz-message\";\n            continue;\n          }\n        }\n        if (!messageElement) {\n          messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n          this.element.appendChild(messageElement);\n        }\n        span = messageElement.getElementsByTagName(\"span\")[0];\n        if (span) {\n          if (span.textContent != null) {\n            span.textContent = this.options.dictFallbackMessage;\n          } else if (span.innerText != null) {\n            span.innerText = this.options.dictFallbackMessage;\n          }\n        }\n        return this.element.appendChild(this.getFallbackForm());\n      },\n      resize: function(file) {\n        var info, srcRatio, trgRatio;\n        info = {\n          srcX: 0,\n          srcY: 0,\n          srcWidth: file.width,\n          srcHeight: file.height\n        };\n        srcRatio = file.width / file.height;\n        info.optWidth = this.options.thumbnailWidth;\n        info.optHeight = this.options.thumbnailHeight;\n        if ((info.optWidth == null) && (info.optHeight == null)) {\n          info.optWidth = info.srcWidth;\n          info.optHeight = info.srcHeight;\n        } else if (info.optWidth == null) {\n          info.optWidth = srcRatio * info.optHeight;\n        } else if (info.optHeight == null) {\n          info.optHeight = (1 / srcRatio) * info.optWidth;\n        }\n        trgRatio = info.optWidth / info.optHeight;\n        if (file.height < info.optHeight || file.width < info.optWidth) {\n          info.trgHeight = info.srcHeight;\n          info.trgWidth = info.srcWidth;\n        } else {\n          if (srcRatio > trgRatio) {\n            info.srcHeight = file.height;\n            info.srcWidth = info.srcHeight * trgRatio;\n          } else {\n            info.srcWidth = file.width;\n            info.srcHeight = info.srcWidth / trgRatio;\n          }\n        }\n        info.srcX = (file.width - info.srcWidth) / 2;\n        info.srcY = (file.height - info.srcHeight) / 2;\n        return info;\n      },\n\n      /*\n      Those functions register themselves to the events on init and handle all\n      the user interface specific stuff. Overwriting them won't break the upload\n      but can break the way it's displayed.\n      You can overwrite them if you don't like the default behavior. If you just\n      want to add an additional event handler, register it on the dropzone object\n      and don't overwrite those options.\n       */\n      drop: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragstart: noop,\n      dragend: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragenter: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragover: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragleave: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      paste: noop,\n      reset: function() {\n        return this.element.classList.remove(\"dz-started\");\n      },\n      addedfile: function(file) {\n        var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n        if (this.element === this.previewsContainer) {\n          this.element.classList.add(\"dz-started\");\n        }\n        if (this.previewsContainer) {\n          file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n          file.previewTemplate = file.previewElement;\n          this.previewsContainer.appendChild(file.previewElement);\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            node.textContent = this._renameFilename(file.name);\n          }\n          _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n            node = _ref1[_j];\n            node.innerHTML = this.filesize(file.size);\n          }\n          if (this.options.addRemoveLinks) {\n            file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n            file.previewElement.appendChild(file._removeLink);\n          }\n          removeFileEvent = (function(_this) {\n            return function(e) {\n              e.preventDefault();\n              e.stopPropagation();\n              if (file.status === Dropzone.UPLOADING) {\n                return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n                  return _this.removeFile(file);\n                });\n              } else {\n                if (_this.options.dictRemoveFileConfirmation) {\n                  return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n                    return _this.removeFile(file);\n                  });\n                } else {\n                  return _this.removeFile(file);\n                }\n              }\n            };\n          })(this);\n          _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n          _results = [];\n          for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n            removeLink = _ref2[_k];\n            _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n          }\n          return _results;\n        }\n      },\n      removedfile: function(file) {\n        var _ref;\n        if (file.previewElement) {\n          if ((_ref = file.previewElement) != null) {\n            _ref.parentNode.removeChild(file.previewElement);\n          }\n        }\n        return this._updateMaxFilesReachedClass();\n      },\n      thumbnail: function(file, dataUrl) {\n        var thumbnailElement, _i, _len, _ref;\n        if (file.previewElement) {\n          file.previewElement.classList.remove(\"dz-file-preview\");\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            thumbnailElement = _ref[_i];\n            thumbnailElement.alt = file.name;\n            thumbnailElement.src = dataUrl;\n          }\n          return setTimeout(((function(_this) {\n            return function() {\n              return file.previewElement.classList.add(\"dz-image-preview\");\n            };\n          })(this)), 1);\n        }\n      },\n      error: function(file, message) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-error\");\n          if (typeof message !== \"String\" && message.error) {\n            message = message.error;\n          }\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            _results.push(node.textContent = message);\n          }\n          return _results;\n        }\n      },\n      errormultiple: noop,\n      processing: function(file) {\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-processing\");\n          if (file._removeLink) {\n            return file._removeLink.textContent = this.options.dictCancelUpload;\n          }\n        }\n      },\n      processingmultiple: noop,\n      uploadprogress: function(file, progress, bytesSent) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            if (node.nodeName === 'PROGRESS') {\n              _results.push(node.value = progress);\n            } else {\n              _results.push(node.style.width = \"\" + progress + \"%\");\n            }\n          }\n          return _results;\n        }\n      },\n      totaluploadprogress: noop,\n      sending: noop,\n      sendingmultiple: noop,\n      success: function(file) {\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-success\");\n        }\n      },\n      successmultiple: noop,\n      canceled: function(file) {\n        return this.emit(\"error\", file, \"Upload canceled.\");\n      },\n      canceledmultiple: noop,\n      complete: function(file) {\n        if (file._removeLink) {\n          file._removeLink.textContent = this.options.dictRemoveFile;\n        }\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-complete\");\n        }\n      },\n      completemultiple: noop,\n      maxfilesexceeded: noop,\n      maxfilesreached: noop,\n      queuecomplete: noop,\n      addedfiles: noop,\n      previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n  <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n  <div class=\\\"dz-details\\\">\\n    <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n    <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n  </div>\\n  <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n  <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n  <div class=\\\"dz-success-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Check</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n      </g>\\n    </svg>\\n  </div>\\n  <div class=\\\"dz-error-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Error</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n          <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n        </g>\\n      </g>\\n    </svg>\\n  </div>\\n</div>\"\n    };\n\n    extend = function() {\n      var key, object, objects, target, val, _i, _len;\n      target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      for (_i = 0, _len = objects.length; _i < _len; _i++) {\n        object = objects[_i];\n        for (key in object) {\n          val = object[key];\n          target[key] = val;\n        }\n      }\n      return target;\n    };\n\n    function Dropzone(element, options) {\n      var elementOptions, fallback, _ref;\n      this.element = element;\n      this.version = Dropzone.version;\n      this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n      this.clickableElements = [];\n      this.listeners = [];\n      this.files = [];\n      if (typeof this.element === \"string\") {\n        this.element = document.querySelector(this.element);\n      }\n      if (!(this.element && (this.element.nodeType != null))) {\n        throw new Error(\"Invalid dropzone element.\");\n      }\n      if (this.element.dropzone) {\n        throw new Error(\"Dropzone already attached.\");\n      }\n      Dropzone.instances.push(this);\n      this.element.dropzone = this;\n      elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n      this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n      if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n        return this.options.fallback.call(this);\n      }\n      if (this.options.url == null) {\n        this.options.url = this.element.getAttribute(\"action\");\n      }\n      if (!this.options.url) {\n        throw new Error(\"No URL provided.\");\n      }\n      if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n        throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n      }\n      if (this.options.acceptedMimeTypes) {\n        this.options.acceptedFiles = this.options.acceptedMimeTypes;\n        delete this.options.acceptedMimeTypes;\n      }\n      this.options.method = this.options.method.toUpperCase();\n      if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n        fallback.parentNode.removeChild(fallback);\n      }\n      if (this.options.previewsContainer !== false) {\n        if (this.options.previewsContainer) {\n          this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n        } else {\n          this.previewsContainer = this.element;\n        }\n      }\n      if (this.options.clickable) {\n        if (this.options.clickable === true) {\n          this.clickableElements = [this.element];\n        } else {\n          this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n        }\n      }\n      this.init();\n    }\n\n    Dropzone.prototype.getAcceptedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getRejectedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (!file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getFilesWithStatus = function(status) {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === status) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getQueuedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    };\n\n    Dropzone.prototype.getUploadingFiles = function() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    };\n\n    Dropzone.prototype.getAddedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.ADDED);\n    };\n\n    Dropzone.prototype.getActiveFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.init = function() {\n      var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n      }\n      if (this.clickableElements.length) {\n        setupHiddenFileInput = (function(_this) {\n          return function() {\n            if (_this.hiddenFileInput) {\n              _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n            }\n            _this.hiddenFileInput = document.createElement(\"input\");\n            _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n            if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n              _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n            }\n            _this.hiddenFileInput.className = \"dz-hidden-input\";\n            if (_this.options.acceptedFiles != null) {\n              _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n            }\n            if (_this.options.capture != null) {\n              _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n            }\n            _this.hiddenFileInput.style.visibility = \"hidden\";\n            _this.hiddenFileInput.style.position = \"absolute\";\n            _this.hiddenFileInput.style.top = \"0\";\n            _this.hiddenFileInput.style.left = \"0\";\n            _this.hiddenFileInput.style.height = \"0\";\n            _this.hiddenFileInput.style.width = \"0\";\n            document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n            return _this.hiddenFileInput.addEventListener(\"change\", function() {\n              var file, files, _i, _len;\n              files = _this.hiddenFileInput.files;\n              if (files.length) {\n                for (_i = 0, _len = files.length; _i < _len; _i++) {\n                  file = files[_i];\n                  _this.addFile(file);\n                }\n              }\n              _this.emit(\"addedfiles\", files);\n              return setupHiddenFileInput();\n            });\n          };\n        })(this);\n        setupHiddenFileInput();\n      }\n      this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n      _ref1 = this.events;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        eventName = _ref1[_i];\n        this.on(eventName, this.options[eventName]);\n      }\n      this.on(\"uploadprogress\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"removedfile\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"canceled\", (function(_this) {\n        return function(file) {\n          return _this.emit(\"complete\", file);\n        };\n      })(this));\n      this.on(\"complete\", (function(_this) {\n        return function(file) {\n          if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n            return setTimeout((function() {\n              return _this.emit(\"queuecomplete\");\n            }), 0);\n          }\n        };\n      })(this));\n      noPropagation = function(e) {\n        e.stopPropagation();\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      };\n      this.listeners = [\n        {\n          element: this.element,\n          events: {\n            \"dragstart\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragstart\", e);\n              };\n            })(this),\n            \"dragenter\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.emit(\"dragenter\", e);\n              };\n            })(this),\n            \"dragover\": (function(_this) {\n              return function(e) {\n                var efct;\n                try {\n                  efct = e.dataTransfer.effectAllowed;\n                } catch (_error) {}\n                e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n                noPropagation(e);\n                return _this.emit(\"dragover\", e);\n              };\n            })(this),\n            \"dragleave\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragleave\", e);\n              };\n            })(this),\n            \"drop\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.drop(e);\n              };\n            })(this),\n            \"dragend\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragend\", e);\n              };\n            })(this)\n          }\n        }\n      ];\n      this.clickableElements.forEach((function(_this) {\n        return function(clickableElement) {\n          return _this.listeners.push({\n            element: clickableElement,\n            events: {\n              \"click\": function(evt) {\n                if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n                  _this.hiddenFileInput.click();\n                }\n                return true;\n              }\n            }\n          });\n        };\n      })(this));\n      this.enable();\n      return this.options.init.call(this);\n    };\n\n    Dropzone.prototype.destroy = function() {\n      var _ref;\n      this.disable();\n      this.removeAllFiles(true);\n      if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    };\n\n    Dropzone.prototype.updateTotalUploadProgress = function() {\n      var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n      totalBytesSent = 0;\n      totalBytes = 0;\n      activeFiles = this.getActiveFiles();\n      if (activeFiles.length) {\n        _ref = this.getActiveFiles();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          totalBytesSent += file.upload.bytesSent;\n          totalBytes += file.upload.total;\n        }\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    };\n\n    Dropzone.prototype._getParamName = function(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n      }\n    };\n\n    Dropzone.prototype._renameFilename = function(name) {\n      if (typeof this.options.renameFilename !== \"function\") {\n        return name;\n      }\n      return this.options.renameFilename(name);\n    };\n\n    Dropzone.prototype.getFallbackForm = function() {\n      var existingFallback, fields, fieldsString, form;\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n      fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n      }\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n      fields = Dropzone.createElement(fieldsString);\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n        form.appendChild(fields);\n      } else {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n      return form != null ? form : fields;\n    };\n\n    Dropzone.prototype.getExistingFallback = function() {\n      var fallback, getFallback, tagName, _i, _len, _ref;\n      getFallback = function(elements) {\n        var el, _i, _len;\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )fallback($| )/.test(el.className)) {\n            return el;\n          }\n        }\n      };\n      _ref = [\"div\", \"form\"];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        tagName = _ref[_i];\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    };\n\n    Dropzone.prototype.setupEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.removeEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.disable = function() {\n      var file, _i, _len, _ref, _results;\n      this.clickableElements.forEach(function(element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        _results.push(this.cancelUpload(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.enable = function() {\n      this.clickableElements.forEach(function(element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    };\n\n    Dropzone.prototype.filesize = function(size) {\n      var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n      selectedSize = 0;\n      selectedUnit = \"b\";\n      if (size > 0) {\n        units = ['TB', 'GB', 'MB', 'KB', 'b'];\n        for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n          unit = units[i];\n          cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n          if (size >= cutoff) {\n            selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n            selectedUnit = unit;\n            break;\n          }\n        }\n        selectedSize = Math.round(10 * selectedSize) / 10;\n      }\n      return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n    };\n\n    Dropzone.prototype._updateMaxFilesReachedClass = function() {\n      if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit('maxfilesreached', this.files);\n        }\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    };\n\n    Dropzone.prototype.drop = function(e) {\n      var files, items;\n      if (!e.dataTransfer) {\n        return;\n      }\n      this.emit(\"drop\", e);\n      files = e.dataTransfer.files;\n      this.emit(\"addedfiles\", files);\n      if (files.length) {\n        items = e.dataTransfer.items;\n        if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n    };\n\n    Dropzone.prototype.paste = function(e) {\n      var items, _ref;\n      if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n        return;\n      }\n      this.emit(\"paste\", e);\n      items = e.clipboardData.items;\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    };\n\n    Dropzone.prototype.handleFiles = function(files) {\n      var file, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        _results.push(this.addFile(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromItems = function(items) {\n      var entry, item, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = items.length; _i < _len; _i++) {\n        item = items[_i];\n        if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n          if (entry.isFile) {\n            _results.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            _results.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            _results.push(void 0);\n          }\n        } else if (item.getAsFile != null) {\n          if ((item.kind == null) || item.kind === \"file\") {\n            _results.push(this.addFile(item.getAsFile()));\n          } else {\n            _results.push(void 0);\n          }\n        } else {\n          _results.push(void 0);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n      var dirReader, errorHandler, readEntries;\n      dirReader = directory.createReader();\n      errorHandler = function(error) {\n        return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n      };\n      readEntries = (function(_this) {\n        return function() {\n          return dirReader.readEntries(function(entries) {\n            var entry, _i, _len;\n            if (entries.length > 0) {\n              for (_i = 0, _len = entries.length; _i < _len; _i++) {\n                entry = entries[_i];\n                if (entry.isFile) {\n                  entry.file(function(file) {\n                    if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n                      return;\n                    }\n                    file.fullPath = \"\" + path + \"/\" + file.name;\n                    return _this.addFile(file);\n                  });\n                } else if (entry.isDirectory) {\n                  _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n                }\n              }\n              readEntries();\n            }\n            return null;\n          }, errorHandler);\n        };\n      })(this);\n      return readEntries();\n    };\n\n    Dropzone.prototype.accept = function(file, done) {\n      if (file.size > this.options.maxFilesize * 1024 * 1024) {\n        return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        return done(this.options.dictInvalidFileType);\n      } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        return this.emit(\"maxfilesexceeded\", file);\n      } else {\n        return this.options.accept.call(this, file, done);\n      }\n    };\n\n    Dropzone.prototype.addFile = function(file) {\n      file.upload = {\n        progress: 0,\n        total: file.size,\n        bytesSent: 0\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n      this._enqueueThumbnail(file);\n      return this.accept(file, (function(_this) {\n        return function(error) {\n          if (error) {\n            file.accepted = false;\n            _this._errorProcessing([file], error);\n          } else {\n            file.accepted = true;\n            if (_this.options.autoQueue) {\n              _this.enqueueFile(file);\n            }\n          }\n          return _this._updateMaxFilesReachedClass();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.enqueueFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        this.enqueueFile(file);\n      }\n      return null;\n    };\n\n    Dropzone.prototype.enqueueFile = function(file) {\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n        if (this.options.autoProcessQueue) {\n          return setTimeout(((function(_this) {\n            return function() {\n              return _this.processQueue();\n            };\n          })(this)), 0);\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    };\n\n    Dropzone.prototype._thumbnailQueue = [];\n\n    Dropzone.prototype._processingThumbnail = false;\n\n    Dropzone.prototype._enqueueThumbnail = function(file) {\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this._processThumbnailQueue();\n          };\n        })(this)), 0);\n      }\n    };\n\n    Dropzone.prototype._processThumbnailQueue = function() {\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n      this._processingThumbnail = true;\n      return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n        return function() {\n          _this._processingThumbnail = false;\n          return _this._processThumbnailQueue();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.removeFile = function(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    };\n\n    Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n      var file, _i, _len, _ref;\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n      _ref = this.files.slice();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n          this.removeFile(file);\n        }\n      }\n      return null;\n    };\n\n    Dropzone.prototype.createThumbnail = function(file, callback) {\n      var fileReader;\n      fileReader = new FileReader;\n      fileReader.onload = (function(_this) {\n        return function() {\n          if (file.type === \"image/svg+xml\") {\n            _this.emit(\"thumbnail\", file, fileReader.result);\n            if (callback != null) {\n              callback();\n            }\n            return;\n          }\n          return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n        };\n      })(this);\n      return fileReader.readAsDataURL(file);\n    };\n\n    Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n      var img;\n      img = document.createElement(\"img\");\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      }\n      img.onload = (function(_this) {\n        return function() {\n          var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n          file.width = img.width;\n          file.height = img.height;\n          resizeInfo = _this.options.resize.call(_this, file);\n          if (resizeInfo.trgWidth == null) {\n            resizeInfo.trgWidth = resizeInfo.optWidth;\n          }\n          if (resizeInfo.trgHeight == null) {\n            resizeInfo.trgHeight = resizeInfo.optHeight;\n          }\n          canvas = document.createElement(\"canvas\");\n          ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n          drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          thumbnail = canvas.toDataURL(\"image/png\");\n          _this.emit(\"thumbnail\", file, thumbnail);\n          if (callback != null) {\n            return callback();\n          }\n        };\n      })(this);\n      if (callback != null) {\n        img.onerror = callback;\n      }\n      return img.src = imageUrl;\n    };\n\n    Dropzone.prototype.processQueue = function() {\n      var i, parallelUploads, processingLength, queuedFiles;\n      parallelUploads = this.options.parallelUploads;\n      processingLength = this.getUploadingFiles().length;\n      i = processingLength;\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n      queuedFiles = this.getQueuedFiles();\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n      if (this.options.uploadMultiple) {\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          }\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    };\n\n    Dropzone.prototype.processFile = function(file) {\n      return this.processFiles([file]);\n    };\n\n    Dropzone.prototype.processFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.processing = true;\n        file.status = Dropzone.UPLOADING;\n        this.emit(\"processing\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n      return this.uploadFiles(files);\n    };\n\n    Dropzone.prototype._getFilesWithXhr = function(xhr) {\n      var file, files;\n      return files = (function() {\n        var _i, _len, _ref, _results;\n        _ref = this.files;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          if (file.xhr === xhr) {\n            _results.push(file);\n          }\n        }\n        return _results;\n      }).call(this);\n    };\n\n    Dropzone.prototype.cancelUpload = function(file) {\n      var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n      if (file.status === Dropzone.UPLOADING) {\n        groupedFiles = this._getFilesWithXhr(file.xhr);\n        for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n          groupedFile = groupedFiles[_i];\n          groupedFile.status = Dropzone.CANCELED;\n        }\n        file.xhr.abort();\n        for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n          groupedFile = groupedFiles[_j];\n          this.emit(\"canceled\", groupedFile);\n        }\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    resolveOption = function() {\n      var args, option;\n      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      if (typeof option === 'function') {\n        return option.apply(this, args);\n      }\n      return option;\n    };\n\n    Dropzone.prototype.uploadFile = function(file) {\n      return this.uploadFiles([file]);\n    };\n\n    Dropzone.prototype.uploadFiles = function(files) {\n      var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n      xhr = new XMLHttpRequest();\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.xhr = xhr;\n      }\n      method = resolveOption(this.options.method, files);\n      url = resolveOption(this.options.url, files);\n      xhr.open(method, url, true);\n      xhr.withCredentials = !!this.options.withCredentials;\n      response = null;\n      handleError = (function(_this) {\n        return function() {\n          var _j, _len1, _results;\n          _results = [];\n          for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n            file = files[_j];\n            _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n          }\n          return _results;\n        };\n      })(this);\n      updateProgress = (function(_this) {\n        return function(e) {\n          var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n          if (e != null) {\n            progress = 100 * e.loaded / e.total;\n            for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n              file = files[_j];\n              file.upload = {\n                progress: progress,\n                total: e.total,\n                bytesSent: e.loaded\n              };\n            }\n          } else {\n            allFilesFinished = true;\n            progress = 100;\n            for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n              file = files[_k];\n              if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n                allFilesFinished = false;\n              }\n              file.upload.progress = progress;\n              file.upload.bytesSent = file.upload.total;\n            }\n            if (allFilesFinished) {\n              return;\n            }\n          }\n          _results = [];\n          for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n            file = files[_l];\n            _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n          }\n          return _results;\n        };\n      })(this);\n      xhr.onload = (function(_this) {\n        return function(e) {\n          var _ref;\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          response = xhr.responseText;\n          if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n            try {\n              response = JSON.parse(response);\n            } catch (_error) {\n              e = _error;\n              response = \"Invalid JSON response from server.\";\n            }\n          }\n          updateProgress();\n          if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n            return handleError();\n          } else {\n            return _this._finished(files, response, e);\n          }\n        };\n      })(this);\n      xhr.onerror = (function(_this) {\n        return function() {\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          return handleError();\n        };\n      })(this);\n      progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n      progressObj.onprogress = updateProgress;\n      headers = {\n        \"Accept\": \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n      if (this.options.headers) {\n        extend(headers, this.options.headers);\n      }\n      for (headerName in headers) {\n        headerValue = headers[headerName];\n        if (headerValue) {\n          xhr.setRequestHeader(headerName, headerValue);\n        }\n      }\n      formData = new FormData();\n      if (this.options.params) {\n        _ref1 = this.options.params;\n        for (key in _ref1) {\n          value = _ref1[key];\n          formData.append(key, value);\n        }\n      }\n      for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n        file = files[_j];\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n      if (this.element.tagName === \"FORM\") {\n        _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n          input = _ref2[_k];\n          inputName = input.getAttribute(\"name\");\n          inputType = input.getAttribute(\"type\");\n          if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n            _ref3 = input.options;\n            for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n              option = _ref3[_l];\n              if (option.selected) {\n                formData.append(inputName, option.value);\n              }\n            }\n          } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n            formData.append(inputName, input.value);\n          }\n        }\n      }\n      for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n        formData.append(this._getParamName(i), files[i], this._renameFilename(files[i].name));\n      }\n      return this.submitRequest(xhr, formData, files);\n    };\n\n    Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n      return xhr.send(formData);\n    };\n\n    Dropzone.prototype._finished = function(files, responseText, e) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.SUCCESS;\n        this.emit(\"success\", file, responseText, e);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.ERROR;\n        this.emit(\"error\", file, message, xhr);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    return Dropzone;\n\n  })(Emitter);\n\n  Dropzone.version = \"4.3.0\";\n\n  Dropzone.options = {};\n\n  Dropzone.optionsForElement = function(element) {\n    if (element.getAttribute(\"id\")) {\n      return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n    } else {\n      return void 0;\n    }\n  };\n\n  Dropzone.instances = [];\n\n  Dropzone.forElement = function(element) {\n    if (typeof element === \"string\") {\n      element = document.querySelector(element);\n    }\n    if ((element != null ? element.dropzone : void 0) == null) {\n      throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n    }\n    return element.dropzone;\n  };\n\n  Dropzone.autoDiscover = true;\n\n  Dropzone.discover = function() {\n    var checkElements, dropzone, dropzones, _i, _len, _results;\n    if (document.querySelectorAll) {\n      dropzones = document.querySelectorAll(\".dropzone\");\n    } else {\n      dropzones = [];\n      checkElements = function(elements) {\n        var el, _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            _results.push(dropzones.push(el));\n          } else {\n            _results.push(void 0);\n          }\n        }\n        return _results;\n      };\n      checkElements(document.getElementsByTagName(\"div\"));\n      checkElements(document.getElementsByTagName(\"form\"));\n    }\n    _results = [];\n    for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n      dropzone = dropzones[_i];\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        _results.push(new Dropzone(dropzone));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  };\n\n  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n  Dropzone.isBrowserSupported = function() {\n    var capableBrowser, regex, _i, _len, _ref;\n    capableBrowser = true;\n    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n      if (!(\"classList\" in document.createElement(\"a\"))) {\n        capableBrowser = false;\n      } else {\n        _ref = Dropzone.blacklistedBrowsers;\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          regex = _ref[_i];\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      }\n    } else {\n      capableBrowser = false;\n    }\n    return capableBrowser;\n  };\n\n  without = function(list, rejectedItem) {\n    var item, _i, _len, _results;\n    _results = [];\n    for (_i = 0, _len = list.length; _i < _len; _i++) {\n      item = list[_i];\n      if (item !== rejectedItem) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  };\n\n  camelize = function(str) {\n    return str.replace(/[\\-_](\\w)/g, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  };\n\n  Dropzone.createElement = function(string) {\n    var div;\n    div = document.createElement(\"div\");\n    div.innerHTML = string;\n    return div.childNodes[0];\n  };\n\n  Dropzone.elementInside = function(element, container) {\n    if (element === container) {\n      return true;\n    }\n    while (element = element.parentNode) {\n      if (element === container) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  Dropzone.getElement = function(el, name) {\n    var element;\n    if (typeof el === \"string\") {\n      element = document.querySelector(el);\n    } else if (el.nodeType != null) {\n      element = el;\n    }\n    if (element == null) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n    }\n    return element;\n  };\n\n  Dropzone.getElements = function(els, name) {\n    var e, el, elements, _i, _j, _len, _len1, _ref;\n    if (els instanceof Array) {\n      elements = [];\n      try {\n        for (_i = 0, _len = els.length; _i < _len; _i++) {\n          el = els[_i];\n          elements.push(this.getElement(el, name));\n        }\n      } catch (_error) {\n        e = _error;\n        elements = null;\n      }\n    } else if (typeof els === \"string\") {\n      elements = [];\n      _ref = document.querySelectorAll(els);\n      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n        el = _ref[_j];\n        elements.push(el);\n      }\n    } else if (els.nodeType != null) {\n      elements = [els];\n    }\n    if (!((elements != null) && elements.length)) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n    }\n    return elements;\n  };\n\n  Dropzone.confirm = function(question, accepted, rejected) {\n    if (window.confirm(question)) {\n      return accepted();\n    } else if (rejected != null) {\n      return rejected();\n    }\n  };\n\n  Dropzone.isValidFile = function(file, acceptedFiles) {\n    var baseMimeType, mimeType, validType, _i, _len;\n    if (!acceptedFiles) {\n      return true;\n    }\n    acceptedFiles = acceptedFiles.split(\",\");\n    mimeType = file.type;\n    baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n    for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n      validType = acceptedFiles[_i];\n      validType = validType.trim();\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n    jQuery.fn.dropzone = function(options) {\n      return this.each(function() {\n        return new Dropzone(this, options);\n      });\n    };\n  }\n\n  if (typeof module !== \"undefined\" && module !== null) {\n    module.exports = Dropzone;\n  } else {\n    window.Dropzone = Dropzone;\n  }\n\n  Dropzone.ADDED = \"added\";\n\n  Dropzone.QUEUED = \"queued\";\n\n  Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n  Dropzone.UPLOADING = \"uploading\";\n\n  Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n  Dropzone.CANCELED = \"canceled\";\n\n  Dropzone.ERROR = \"error\";\n\n  Dropzone.SUCCESS = \"success\";\n\n\n  /*\n  \n  Bugfix for iOS 6 and 7\n  Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n  based on the work of https://github.com/stomita/ios-imagefile-megapixel\n   */\n\n  detectVerticalSquash = function(img) {\n    var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n    iw = img.naturalWidth;\n    ih = img.naturalHeight;\n    canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = ih;\n    ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    data = ctx.getImageData(0, 0, 1, ih).data;\n    sy = 0;\n    ey = ih;\n    py = ih;\n    while (py > sy) {\n      alpha = data[(py - 1) * 4 + 3];\n      if (alpha === 0) {\n        ey = py;\n      } else {\n        sy = py;\n      }\n      py = (ey + sy) >> 1;\n    }\n    ratio = py / ih;\n    if (ratio === 0) {\n      return 1;\n    } else {\n      return ratio;\n    }\n  };\n\n  drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n    var vertSquashRatio;\n    vertSquashRatio = detectVerticalSquash(img);\n    return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n  };\n\n\n  /*\n   * contentloaded.js\n   *\n   * Author: Diego Perini (diego.perini at gmail.com)\n   * Summary: cross-browser wrapper for DOMContentLoaded\n   * Updated: 20101020\n   * License: MIT\n   * Version: 1.2\n   *\n   * URL:\n   * http://javascript.nwbox.com/ContentLoaded/\n   * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n   */\n\n  contentLoaded = function(win, fn) {\n    var add, doc, done, init, poll, pre, rem, root, top;\n    done = false;\n    top = true;\n    doc = win.document;\n    root = doc.documentElement;\n    add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n    rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n    pre = (doc.addEventListener ? \"\" : \"on\");\n    init = function(e) {\n      if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n        return;\n      }\n      (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n      if (!done && (done = true)) {\n        return fn.call(win, e.type || e);\n      }\n    };\n    poll = function() {\n      var e;\n      try {\n        root.doScroll(\"left\");\n      } catch (_error) {\n        e = _error;\n        setTimeout(poll, 50);\n        return;\n      }\n      return init(\"poll\");\n    };\n    if (doc.readyState !== \"complete\") {\n      if (doc.createEventObject && root.doScroll) {\n        try {\n          top = !win.frameElement;\n        } catch (_error) {}\n        if (top) {\n          poll();\n        }\n      }\n      doc[add](pre + \"DOMContentLoaded\", init, false);\n      doc[add](pre + \"readystatechange\", init, false);\n      return win[add](pre + \"load\", init, false);\n    }\n  };\n\n  Dropzone._autoDiscoverFunction = function() {\n    if (Dropzone.autoDiscover) {\n      return Dropzone.discover();\n    }\n  };\n\n  contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/dropzone/dropzone.js",
    "content": "\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n  var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n    __slice = [].slice,\n    __hasProp = {}.hasOwnProperty,\n    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n  noop = function() {};\n\n  Emitter = (function() {\n    function Emitter() {}\n\n    Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n    Emitter.prototype.on = function(event, fn) {\n      this._callbacks = this._callbacks || {};\n      if (!this._callbacks[event]) {\n        this._callbacks[event] = [];\n      }\n      this._callbacks[event].push(fn);\n      return this;\n    };\n\n    Emitter.prototype.emit = function() {\n      var args, callback, callbacks, event, _i, _len;\n      event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      this._callbacks = this._callbacks || {};\n      callbacks = this._callbacks[event];\n      if (callbacks) {\n        for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n          callback = callbacks[_i];\n          callback.apply(this, args);\n        }\n      }\n      return this;\n    };\n\n    Emitter.prototype.removeListener = Emitter.prototype.off;\n\n    Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n    Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n    Emitter.prototype.off = function(event, fn) {\n      var callback, callbacks, i, _i, _len;\n      if (!this._callbacks || arguments.length === 0) {\n        this._callbacks = {};\n        return this;\n      }\n      callbacks = this._callbacks[event];\n      if (!callbacks) {\n        return this;\n      }\n      if (arguments.length === 1) {\n        delete this._callbacks[event];\n        return this;\n      }\n      for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n        callback = callbacks[i];\n        if (callback === fn) {\n          callbacks.splice(i, 1);\n          break;\n        }\n      }\n      return this;\n    };\n\n    return Emitter;\n\n  })();\n\n  Dropzone = (function(_super) {\n    var extend, resolveOption;\n\n    __extends(Dropzone, _super);\n\n    Dropzone.prototype.Emitter = Emitter;\n\n\n    /*\n    This is a list of all available events you can register on a dropzone object.\n    \n    You can register an event handler like this:\n    \n        dropzone.on(\"dragEnter\", function() { });\n     */\n\n    Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n    Dropzone.prototype.defaultOptions = {\n      url: null,\n      method: \"post\",\n      withCredentials: false,\n      parallelUploads: 2,\n      uploadMultiple: false,\n      maxFilesize: 256,\n      paramName: \"file\",\n      createImageThumbnails: true,\n      maxThumbnailFilesize: 10,\n      thumbnailWidth: 120,\n      thumbnailHeight: 120,\n      filesizeBase: 1000,\n      maxFiles: null,\n      filesizeBase: 1000,\n      params: {},\n      clickable: true,\n      ignoreHiddenFiles: true,\n      acceptedFiles: null,\n      acceptedMimeTypes: null,\n      autoProcessQueue: true,\n      autoQueue: true,\n      addRemoveLinks: false,\n      previewsContainer: null,\n      capture: null,\n      dictDefaultMessage: \"Drop files here to upload\",\n      dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n      dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n      dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n      dictInvalidFileType: \"You can't upload files of this type.\",\n      dictResponseError: \"Server responded with {{statusCode}} code.\",\n      dictCancelUpload: \"Cancel upload\",\n      dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n      dictRemoveFile: \"Remove file\",\n      dictRemoveFileConfirmation: null,\n      dictMaxFilesExceeded: \"You can not upload any more files.\",\n      accept: function(file, done) {\n        return done();\n      },\n      init: function() {\n        return noop;\n      },\n      forceFallback: false,\n      fallback: function() {\n        var child, messageElement, span, _i, _len, _ref;\n        this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n        _ref = this.element.getElementsByTagName(\"div\");\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          child = _ref[_i];\n          if (/(^| )dz-message($| )/.test(child.className)) {\n            messageElement = child;\n            child.className = \"dz-message\";\n            continue;\n          }\n        }\n        if (!messageElement) {\n          messageElement = Dropzone.createElement(\"<div class=\\\"dz-message\\\"><span></span></div>\");\n          this.element.appendChild(messageElement);\n        }\n        span = messageElement.getElementsByTagName(\"span\")[0];\n        if (span) {\n          span.textContent = this.options.dictFallbackMessage;\n        }\n        return this.element.appendChild(this.getFallbackForm());\n      },\n      resize: function(file) {\n        var info, srcRatio, trgRatio;\n        info = {\n          srcX: 0,\n          srcY: 0,\n          srcWidth: file.width,\n          srcHeight: file.height\n        };\n        srcRatio = file.width / file.height;\n        info.optWidth = this.options.thumbnailWidth;\n        info.optHeight = this.options.thumbnailHeight;\n        if ((info.optWidth == null) && (info.optHeight == null)) {\n          info.optWidth = info.srcWidth;\n          info.optHeight = info.srcHeight;\n        } else if (info.optWidth == null) {\n          info.optWidth = srcRatio * info.optHeight;\n        } else if (info.optHeight == null) {\n          info.optHeight = (1 / srcRatio) * info.optWidth;\n        }\n        trgRatio = info.optWidth / info.optHeight;\n        if (file.height < info.optHeight || file.width < info.optWidth) {\n          info.trgHeight = info.srcHeight;\n          info.trgWidth = info.srcWidth;\n        } else {\n          if (srcRatio > trgRatio) {\n            info.srcHeight = file.height;\n            info.srcWidth = info.srcHeight * trgRatio;\n          } else {\n            info.srcWidth = file.width;\n            info.srcHeight = info.srcWidth / trgRatio;\n          }\n        }\n        info.srcX = (file.width - info.srcWidth) / 2;\n        info.srcY = (file.height - info.srcHeight) / 2;\n        return info;\n      },\n\n      /*\n      Those functions register themselves to the events on init and handle all\n      the user interface specific stuff. Overwriting them won't break the upload\n      but can break the way it's displayed.\n      You can overwrite them if you don't like the default behavior. If you just\n      want to add an additional event handler, register it on the dropzone object\n      and don't overwrite those options.\n       */\n      drop: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragstart: noop,\n      dragend: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      dragenter: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragover: function(e) {\n        return this.element.classList.add(\"dz-drag-hover\");\n      },\n      dragleave: function(e) {\n        return this.element.classList.remove(\"dz-drag-hover\");\n      },\n      paste: noop,\n      reset: function() {\n        return this.element.classList.remove(\"dz-started\");\n      },\n      addedfile: function(file) {\n        var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n        if (this.element === this.previewsContainer) {\n          this.element.classList.add(\"dz-started\");\n        }\n        if (this.previewsContainer) {\n          file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n          file.previewTemplate = file.previewElement;\n          this.previewsContainer.appendChild(file.previewElement);\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            node.textContent = file.name;\n          }\n          _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n          for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n            node = _ref1[_j];\n            node.innerHTML = this.filesize(file.size);\n          }\n          if (this.options.addRemoveLinks) {\n            file._removeLink = Dropzone.createElement(\"<a class=\\\"dz-remove\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\" + this.options.dictRemoveFile + \"</a>\");\n            file.previewElement.appendChild(file._removeLink);\n          }\n          removeFileEvent = (function(_this) {\n            return function(e) {\n              e.preventDefault();\n              e.stopPropagation();\n              if (file.status === Dropzone.UPLOADING) {\n                return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n                  return _this.removeFile(file);\n                });\n              } else {\n                if (_this.options.dictRemoveFileConfirmation) {\n                  return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n                    return _this.removeFile(file);\n                  });\n                } else {\n                  return _this.removeFile(file);\n                }\n              }\n            };\n          })(this);\n          _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n          _results = [];\n          for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n            removeLink = _ref2[_k];\n            _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n          }\n          return _results;\n        }\n      },\n      removedfile: function(file) {\n        var _ref;\n        if (file.previewElement) {\n          if ((_ref = file.previewElement) != null) {\n            _ref.parentNode.removeChild(file.previewElement);\n          }\n        }\n        return this._updateMaxFilesReachedClass();\n      },\n      thumbnail: function(file, dataUrl) {\n        var thumbnailElement, _i, _len, _ref;\n        if (file.previewElement) {\n          file.previewElement.classList.remove(\"dz-file-preview\");\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            thumbnailElement = _ref[_i];\n            thumbnailElement.alt = file.name;\n            thumbnailElement.src = dataUrl;\n          }\n          return setTimeout(((function(_this) {\n            return function() {\n              return file.previewElement.classList.add(\"dz-image-preview\");\n            };\n          })(this)), 1);\n        }\n      },\n      error: function(file, message) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-error\");\n          if (typeof message !== \"String\" && message.error) {\n            message = message.error;\n          }\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            _results.push(node.textContent = message);\n          }\n          return _results;\n        }\n      },\n      errormultiple: noop,\n      processing: function(file) {\n        if (file.previewElement) {\n          file.previewElement.classList.add(\"dz-processing\");\n          if (file._removeLink) {\n            return file._removeLink.textContent = this.options.dictCancelUpload;\n          }\n        }\n      },\n      processingmultiple: noop,\n      uploadprogress: function(file, progress, bytesSent) {\n        var node, _i, _len, _ref, _results;\n        if (file.previewElement) {\n          _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n          _results = [];\n          for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n            node = _ref[_i];\n            if (node.nodeName === 'PROGRESS') {\n              _results.push(node.value = progress);\n            } else {\n              _results.push(node.style.width = \"\" + progress + \"%\");\n            }\n          }\n          return _results;\n        }\n      },\n      totaluploadprogress: noop,\n      sending: noop,\n      sendingmultiple: noop,\n      success: function(file) {\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-success\");\n        }\n      },\n      successmultiple: noop,\n      canceled: function(file) {\n        return this.emit(\"error\", file, \"Upload canceled.\");\n      },\n      canceledmultiple: noop,\n      complete: function(file) {\n        if (file._removeLink) {\n          file._removeLink.textContent = this.options.dictRemoveFile;\n        }\n        if (file.previewElement) {\n          return file.previewElement.classList.add(\"dz-complete\");\n        }\n      },\n      completemultiple: noop,\n      maxfilesexceeded: noop,\n      maxfilesreached: noop,\n      queuecomplete: noop,\n      previewTemplate: \"<div class=\\\"dz-preview dz-file-preview\\\">\\n  <div class=\\\"dz-image\\\"><img data-dz-thumbnail /></div>\\n  <div class=\\\"dz-details\\\">\\n    <div class=\\\"dz-size\\\"><span data-dz-size></span></div>\\n    <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n  </div>\\n  <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n  <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n  <div class=\\\"dz-success-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Check</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <path d=\\\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" stroke-opacity=\\\"0.198794158\\\" stroke=\\\"#747474\\\" fill-opacity=\\\"0.816519475\\\" fill=\\\"#FFFFFF\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n      </g>\\n    </svg>\\n  </div>\\n  <div class=\\\"dz-error-mark\\\">\\n    <svg width=\\\"54px\\\" height=\\\"54px\\\" viewBox=\\\"0 0 54 54\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" xmlns:sketch=\\\"http://www.bohemiancoding.com/sketch/ns\\\">\\n      <title>Error</title>\\n      <defs></defs>\\n      <g id=\\\"Page-1\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n        <g id=\\\"Check-+-Oval-2\\\" sketch:type=\\\"MSLayerGroup\\\" stroke=\\\"#747474\\\" stroke-opacity=\\\"0.198794158\\\" fill=\\\"#FFFFFF\\\" fill-opacity=\\\"0.816519475\\\">\\n          <path d=\\\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\\\" id=\\\"Oval-2\\\" sketch:type=\\\"MSShapeGroup\\\"></path>\\n        </g>\\n      </g>\\n    </svg>\\n  </div>\\n</div>\"\n    };\n\n    extend = function() {\n      var key, object, objects, target, val, _i, _len;\n      target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      for (_i = 0, _len = objects.length; _i < _len; _i++) {\n        object = objects[_i];\n        for (key in object) {\n          val = object[key];\n          target[key] = val;\n        }\n      }\n      return target;\n    };\n\n    function Dropzone(element, options) {\n      var elementOptions, fallback, _ref;\n      this.element = element;\n      this.version = Dropzone.version;\n      this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n      this.clickableElements = [];\n      this.listeners = [];\n      this.files = [];\n      if (typeof this.element === \"string\") {\n        this.element = document.querySelector(this.element);\n      }\n      if (!(this.element && (this.element.nodeType != null))) {\n        throw new Error(\"Invalid dropzone element.\");\n      }\n      if (this.element.dropzone) {\n        throw new Error(\"Dropzone already attached.\");\n      }\n      Dropzone.instances.push(this);\n      this.element.dropzone = this;\n      elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n      this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n      if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n        return this.options.fallback.call(this);\n      }\n      if (this.options.url == null) {\n        this.options.url = this.element.getAttribute(\"action\");\n      }\n      if (!this.options.url) {\n        throw new Error(\"No URL provided.\");\n      }\n      if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n        throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n      }\n      if (this.options.acceptedMimeTypes) {\n        this.options.acceptedFiles = this.options.acceptedMimeTypes;\n        delete this.options.acceptedMimeTypes;\n      }\n      this.options.method = this.options.method.toUpperCase();\n      if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n        fallback.parentNode.removeChild(fallback);\n      }\n      if (this.options.previewsContainer !== false) {\n        if (this.options.previewsContainer) {\n          this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n        } else {\n          this.previewsContainer = this.element;\n        }\n      }\n      if (this.options.clickable) {\n        if (this.options.clickable === true) {\n          this.clickableElements = [this.element];\n        } else {\n          this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n        }\n      }\n      this.init();\n    }\n\n    Dropzone.prototype.getAcceptedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getRejectedFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (!file.accepted) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getFilesWithStatus = function(status) {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === status) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.getQueuedFiles = function() {\n      return this.getFilesWithStatus(Dropzone.QUEUED);\n    };\n\n    Dropzone.prototype.getUploadingFiles = function() {\n      return this.getFilesWithStatus(Dropzone.UPLOADING);\n    };\n\n    Dropzone.prototype.getActiveFiles = function() {\n      var file, _i, _len, _ref, _results;\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n          _results.push(file);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.init = function() {\n      var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n      if (this.element.tagName === \"form\") {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      }\n      if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n        this.element.appendChild(Dropzone.createElement(\"<div class=\\\"dz-default dz-message\\\"><span>\" + this.options.dictDefaultMessage + \"</span></div>\"));\n      }\n      if (this.clickableElements.length) {\n        setupHiddenFileInput = (function(_this) {\n          return function() {\n            if (_this.hiddenFileInput) {\n              document.body.removeChild(_this.hiddenFileInput);\n            }\n            _this.hiddenFileInput = document.createElement(\"input\");\n            _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n            if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n              _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n            }\n            _this.hiddenFileInput.className = \"dz-hidden-input\";\n            if (_this.options.acceptedFiles != null) {\n              _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n            }\n            if (_this.options.capture != null) {\n              _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n            }\n            _this.hiddenFileInput.style.visibility = \"hidden\";\n            _this.hiddenFileInput.style.position = \"absolute\";\n            _this.hiddenFileInput.style.top = \"0\";\n            _this.hiddenFileInput.style.left = \"0\";\n            _this.hiddenFileInput.style.height = \"0\";\n            _this.hiddenFileInput.style.width = \"0\";\n            document.body.appendChild(_this.hiddenFileInput);\n            return _this.hiddenFileInput.addEventListener(\"change\", function() {\n              var file, files, _i, _len;\n              files = _this.hiddenFileInput.files;\n              if (files.length) {\n                for (_i = 0, _len = files.length; _i < _len; _i++) {\n                  file = files[_i];\n                  _this.addFile(file);\n                }\n              }\n              return setupHiddenFileInput();\n            });\n          };\n        })(this);\n        setupHiddenFileInput();\n      }\n      this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n      _ref1 = this.events;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        eventName = _ref1[_i];\n        this.on(eventName, this.options[eventName]);\n      }\n      this.on(\"uploadprogress\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"removedfile\", (function(_this) {\n        return function() {\n          return _this.updateTotalUploadProgress();\n        };\n      })(this));\n      this.on(\"canceled\", (function(_this) {\n        return function(file) {\n          return _this.emit(\"complete\", file);\n        };\n      })(this));\n      this.on(\"complete\", (function(_this) {\n        return function(file) {\n          if (_this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n            return setTimeout((function() {\n              return _this.emit(\"queuecomplete\");\n            }), 0);\n          }\n        };\n      })(this));\n      noPropagation = function(e) {\n        e.stopPropagation();\n        if (e.preventDefault) {\n          return e.preventDefault();\n        } else {\n          return e.returnValue = false;\n        }\n      };\n      this.listeners = [\n        {\n          element: this.element,\n          events: {\n            \"dragstart\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragstart\", e);\n              };\n            })(this),\n            \"dragenter\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.emit(\"dragenter\", e);\n              };\n            })(this),\n            \"dragover\": (function(_this) {\n              return function(e) {\n                var efct;\n                try {\n                  efct = e.dataTransfer.effectAllowed;\n                } catch (_error) {}\n                e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n                noPropagation(e);\n                return _this.emit(\"dragover\", e);\n              };\n            })(this),\n            \"dragleave\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragleave\", e);\n              };\n            })(this),\n            \"drop\": (function(_this) {\n              return function(e) {\n                noPropagation(e);\n                return _this.drop(e);\n              };\n            })(this),\n            \"dragend\": (function(_this) {\n              return function(e) {\n                return _this.emit(\"dragend\", e);\n              };\n            })(this)\n          }\n        }\n      ];\n      this.clickableElements.forEach((function(_this) {\n        return function(clickableElement) {\n          return _this.listeners.push({\n            element: clickableElement,\n            events: {\n              \"click\": function(evt) {\n                if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n                  return _this.hiddenFileInput.click();\n                }\n              }\n            }\n          });\n        };\n      })(this));\n      this.enable();\n      return this.options.init.call(this);\n    };\n\n    Dropzone.prototype.destroy = function() {\n      var _ref;\n      this.disable();\n      this.removeAllFiles(true);\n      if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n        this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n        this.hiddenFileInput = null;\n      }\n      delete this.element.dropzone;\n      return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n    };\n\n    Dropzone.prototype.updateTotalUploadProgress = function() {\n      var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n      totalBytesSent = 0;\n      totalBytes = 0;\n      activeFiles = this.getActiveFiles();\n      if (activeFiles.length) {\n        _ref = this.getActiveFiles();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          totalBytesSent += file.upload.bytesSent;\n          totalBytes += file.upload.total;\n        }\n        totalUploadProgress = 100 * totalBytesSent / totalBytes;\n      } else {\n        totalUploadProgress = 100;\n      }\n      return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n    };\n\n    Dropzone.prototype._getParamName = function(n) {\n      if (typeof this.options.paramName === \"function\") {\n        return this.options.paramName(n);\n      } else {\n        return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n      }\n    };\n\n    Dropzone.prototype.getFallbackForm = function() {\n      var existingFallback, fields, fieldsString, form;\n      if (existingFallback = this.getExistingFallback()) {\n        return existingFallback;\n      }\n      fieldsString = \"<div class=\\\"dz-fallback\\\">\";\n      if (this.options.dictFallbackText) {\n        fieldsString += \"<p>\" + this.options.dictFallbackText + \"</p>\";\n      }\n      fieldsString += \"<input type=\\\"file\\\" name=\\\"\" + (this._getParamName(0)) + \"\\\" \" + (this.options.uploadMultiple ? 'multiple=\"multiple\"' : void 0) + \" /><input type=\\\"submit\\\" value=\\\"Upload!\\\"></div>\";\n      fields = Dropzone.createElement(fieldsString);\n      if (this.element.tagName !== \"FORM\") {\n        form = Dropzone.createElement(\"<form action=\\\"\" + this.options.url + \"\\\" enctype=\\\"multipart/form-data\\\" method=\\\"\" + this.options.method + \"\\\"></form>\");\n        form.appendChild(fields);\n      } else {\n        this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n        this.element.setAttribute(\"method\", this.options.method);\n      }\n      return form != null ? form : fields;\n    };\n\n    Dropzone.prototype.getExistingFallback = function() {\n      var fallback, getFallback, tagName, _i, _len, _ref;\n      getFallback = function(elements) {\n        var el, _i, _len;\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )fallback($| )/.test(el.className)) {\n            return el;\n          }\n        }\n      };\n      _ref = [\"div\", \"form\"];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        tagName = _ref[_i];\n        if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n          return fallback;\n        }\n      }\n    };\n\n    Dropzone.prototype.setupEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.addEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.removeEventListeners = function() {\n      var elementListeners, event, listener, _i, _len, _ref, _results;\n      _ref = this.listeners;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elementListeners = _ref[_i];\n        _results.push((function() {\n          var _ref1, _results1;\n          _ref1 = elementListeners.events;\n          _results1 = [];\n          for (event in _ref1) {\n            listener = _ref1[event];\n            _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n          }\n          return _results1;\n        })());\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.disable = function() {\n      var file, _i, _len, _ref, _results;\n      this.clickableElements.forEach(function(element) {\n        return element.classList.remove(\"dz-clickable\");\n      });\n      this.removeEventListeners();\n      _ref = this.files;\n      _results = [];\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        _results.push(this.cancelUpload(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype.enable = function() {\n      this.clickableElements.forEach(function(element) {\n        return element.classList.add(\"dz-clickable\");\n      });\n      return this.setupEventListeners();\n    };\n\n    Dropzone.prototype.filesize = function(size) {\n      var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n      units = ['TB', 'GB', 'MB', 'KB', 'b'];\n      selectedSize = selectedUnit = null;\n      for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n        unit = units[i];\n        cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n        if (size >= cutoff) {\n          selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n          selectedUnit = unit;\n          break;\n        }\n      }\n      selectedSize = Math.round(10 * selectedSize) / 10;\n      return \"<strong>\" + selectedSize + \"</strong> \" + selectedUnit;\n    };\n\n    Dropzone.prototype._updateMaxFilesReachedClass = function() {\n      if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        if (this.getAcceptedFiles().length === this.options.maxFiles) {\n          this.emit('maxfilesreached', this.files);\n        }\n        return this.element.classList.add(\"dz-max-files-reached\");\n      } else {\n        return this.element.classList.remove(\"dz-max-files-reached\");\n      }\n    };\n\n    Dropzone.prototype.drop = function(e) {\n      var files, items;\n      if (!e.dataTransfer) {\n        return;\n      }\n      this.emit(\"drop\", e);\n      files = e.dataTransfer.files;\n      if (files.length) {\n        items = e.dataTransfer.items;\n        if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n    };\n\n    Dropzone.prototype.paste = function(e) {\n      var items, _ref;\n      if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n        return;\n      }\n      this.emit(\"paste\", e);\n      items = e.clipboardData.items;\n      if (items.length) {\n        return this._addFilesFromItems(items);\n      }\n    };\n\n    Dropzone.prototype.handleFiles = function(files) {\n      var file, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        _results.push(this.addFile(file));\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromItems = function(items) {\n      var entry, item, _i, _len, _results;\n      _results = [];\n      for (_i = 0, _len = items.length; _i < _len; _i++) {\n        item = items[_i];\n        if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n          if (entry.isFile) {\n            _results.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            _results.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            _results.push(void 0);\n          }\n        } else if (item.getAsFile != null) {\n          if ((item.kind == null) || item.kind === \"file\") {\n            _results.push(this.addFile(item.getAsFile()));\n          } else {\n            _results.push(void 0);\n          }\n        } else {\n          _results.push(void 0);\n        }\n      }\n      return _results;\n    };\n\n    Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n      var dirReader, entriesReader;\n      dirReader = directory.createReader();\n      entriesReader = (function(_this) {\n        return function(entries) {\n          var entry, _i, _len;\n          for (_i = 0, _len = entries.length; _i < _len; _i++) {\n            entry = entries[_i];\n            if (entry.isFile) {\n              entry.file(function(file) {\n                if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n                  return;\n                }\n                file.fullPath = \"\" + path + \"/\" + file.name;\n                return _this.addFile(file);\n              });\n            } else if (entry.isDirectory) {\n              _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n            }\n          }\n        };\n      })(this);\n      return dirReader.readEntries(entriesReader, function(error) {\n        return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n      });\n    };\n\n    Dropzone.prototype.accept = function(file, done) {\n      if (file.size > this.options.maxFilesize * 1024 * 1024) {\n        return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n      } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n        return done(this.options.dictInvalidFileType);\n      } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n        done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n        return this.emit(\"maxfilesexceeded\", file);\n      } else {\n        return this.options.accept.call(this, file, done);\n      }\n    };\n\n    Dropzone.prototype.addFile = function(file) {\n      file.upload = {\n        progress: 0,\n        total: file.size,\n        bytesSent: 0\n      };\n      this.files.push(file);\n      file.status = Dropzone.ADDED;\n      this.emit(\"addedfile\", file);\n      this._enqueueThumbnail(file);\n      return this.accept(file, (function(_this) {\n        return function(error) {\n          if (error) {\n            file.accepted = false;\n            _this._errorProcessing([file], error);\n          } else {\n            file.accepted = true;\n            if (_this.options.autoQueue) {\n              _this.enqueueFile(file);\n            }\n          }\n          return _this._updateMaxFilesReachedClass();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.enqueueFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        this.enqueueFile(file);\n      }\n      return null;\n    };\n\n    Dropzone.prototype.enqueueFile = function(file) {\n      if (file.status === Dropzone.ADDED && file.accepted === true) {\n        file.status = Dropzone.QUEUED;\n        if (this.options.autoProcessQueue) {\n          return setTimeout(((function(_this) {\n            return function() {\n              return _this.processQueue();\n            };\n          })(this)), 0);\n        }\n      } else {\n        throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n      }\n    };\n\n    Dropzone.prototype._thumbnailQueue = [];\n\n    Dropzone.prototype._processingThumbnail = false;\n\n    Dropzone.prototype._enqueueThumbnail = function(file) {\n      if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n        this._thumbnailQueue.push(file);\n        return setTimeout(((function(_this) {\n          return function() {\n            return _this._processThumbnailQueue();\n          };\n        })(this)), 0);\n      }\n    };\n\n    Dropzone.prototype._processThumbnailQueue = function() {\n      if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n        return;\n      }\n      this._processingThumbnail = true;\n      return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n        return function() {\n          _this._processingThumbnail = false;\n          return _this._processThumbnailQueue();\n        };\n      })(this));\n    };\n\n    Dropzone.prototype.removeFile = function(file) {\n      if (file.status === Dropzone.UPLOADING) {\n        this.cancelUpload(file);\n      }\n      this.files = without(this.files, file);\n      this.emit(\"removedfile\", file);\n      if (this.files.length === 0) {\n        return this.emit(\"reset\");\n      }\n    };\n\n    Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n      var file, _i, _len, _ref;\n      if (cancelIfNecessary == null) {\n        cancelIfNecessary = false;\n      }\n      _ref = this.files.slice();\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        file = _ref[_i];\n        if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n          this.removeFile(file);\n        }\n      }\n      return null;\n    };\n\n    Dropzone.prototype.createThumbnail = function(file, callback) {\n      var fileReader;\n      fileReader = new FileReader;\n      fileReader.onload = (function(_this) {\n        return function() {\n          if (file.type === \"image/svg+xml\") {\n            _this.emit(\"thumbnail\", file, fileReader.result);\n            if (callback != null) {\n              callback();\n            }\n            return;\n          }\n          return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n        };\n      })(this);\n      return fileReader.readAsDataURL(file);\n    };\n\n    Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback) {\n      var img;\n      img = document.createElement(\"img\");\n      img.onload = (function(_this) {\n        return function() {\n          var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n          file.width = img.width;\n          file.height = img.height;\n          resizeInfo = _this.options.resize.call(_this, file);\n          if (resizeInfo.trgWidth == null) {\n            resizeInfo.trgWidth = resizeInfo.optWidth;\n          }\n          if (resizeInfo.trgHeight == null) {\n            resizeInfo.trgHeight = resizeInfo.optHeight;\n          }\n          canvas = document.createElement(\"canvas\");\n          ctx = canvas.getContext(\"2d\");\n          canvas.width = resizeInfo.trgWidth;\n          canvas.height = resizeInfo.trgHeight;\n          drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n          thumbnail = canvas.toDataURL(\"image/png\");\n          _this.emit(\"thumbnail\", file, thumbnail);\n          if (callback != null) {\n            return callback();\n          }\n        };\n      })(this);\n      if (callback != null) {\n        img.onerror = callback;\n      }\n      return img.src = imageUrl;\n    };\n\n    Dropzone.prototype.processQueue = function() {\n      var i, parallelUploads, processingLength, queuedFiles;\n      parallelUploads = this.options.parallelUploads;\n      processingLength = this.getUploadingFiles().length;\n      i = processingLength;\n      if (processingLength >= parallelUploads) {\n        return;\n      }\n      queuedFiles = this.getQueuedFiles();\n      if (!(queuedFiles.length > 0)) {\n        return;\n      }\n      if (this.options.uploadMultiple) {\n        return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n      } else {\n        while (i < parallelUploads) {\n          if (!queuedFiles.length) {\n            return;\n          }\n          this.processFile(queuedFiles.shift());\n          i++;\n        }\n      }\n    };\n\n    Dropzone.prototype.processFile = function(file) {\n      return this.processFiles([file]);\n    };\n\n    Dropzone.prototype.processFiles = function(files) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.processing = true;\n        file.status = Dropzone.UPLOADING;\n        this.emit(\"processing\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"processingmultiple\", files);\n      }\n      return this.uploadFiles(files);\n    };\n\n    Dropzone.prototype._getFilesWithXhr = function(xhr) {\n      var file, files;\n      return files = (function() {\n        var _i, _len, _ref, _results;\n        _ref = this.files;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          file = _ref[_i];\n          if (file.xhr === xhr) {\n            _results.push(file);\n          }\n        }\n        return _results;\n      }).call(this);\n    };\n\n    Dropzone.prototype.cancelUpload = function(file) {\n      var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n      if (file.status === Dropzone.UPLOADING) {\n        groupedFiles = this._getFilesWithXhr(file.xhr);\n        for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n          groupedFile = groupedFiles[_i];\n          groupedFile.status = Dropzone.CANCELED;\n        }\n        file.xhr.abort();\n        for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n          groupedFile = groupedFiles[_j];\n          this.emit(\"canceled\", groupedFile);\n        }\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", groupedFiles);\n        }\n      } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n        file.status = Dropzone.CANCELED;\n        this.emit(\"canceled\", file);\n        if (this.options.uploadMultiple) {\n          this.emit(\"canceledmultiple\", [file]);\n        }\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    resolveOption = function() {\n      var args, option;\n      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n      if (typeof option === 'function') {\n        return option.apply(this, args);\n      }\n      return option;\n    };\n\n    Dropzone.prototype.uploadFile = function(file) {\n      return this.uploadFiles([file]);\n    };\n\n    Dropzone.prototype.uploadFiles = function(files) {\n      var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n      xhr = new XMLHttpRequest();\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.xhr = xhr;\n      }\n      method = resolveOption(this.options.method, files);\n      url = resolveOption(this.options.url, files);\n      xhr.open(method, url, true);\n      xhr.withCredentials = !!this.options.withCredentials;\n      response = null;\n      handleError = (function(_this) {\n        return function() {\n          var _j, _len1, _results;\n          _results = [];\n          for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n            file = files[_j];\n            _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n          }\n          return _results;\n        };\n      })(this);\n      updateProgress = (function(_this) {\n        return function(e) {\n          var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n          if (e != null) {\n            progress = 100 * e.loaded / e.total;\n            for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n              file = files[_j];\n              file.upload = {\n                progress: progress,\n                total: e.total,\n                bytesSent: e.loaded\n              };\n            }\n          } else {\n            allFilesFinished = true;\n            progress = 100;\n            for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n              file = files[_k];\n              if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n                allFilesFinished = false;\n              }\n              file.upload.progress = progress;\n              file.upload.bytesSent = file.upload.total;\n            }\n            if (allFilesFinished) {\n              return;\n            }\n          }\n          _results = [];\n          for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n            file = files[_l];\n            _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n          }\n          return _results;\n        };\n      })(this);\n      xhr.onload = (function(_this) {\n        return function(e) {\n          var _ref;\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          if (xhr.readyState !== 4) {\n            return;\n          }\n          response = xhr.responseText;\n          if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n            try {\n              response = JSON.parse(response);\n            } catch (_error) {\n              e = _error;\n              response = \"Invalid JSON response from server.\";\n            }\n          }\n          updateProgress();\n          if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n            return handleError();\n          } else {\n            return _this._finished(files, response, e);\n          }\n        };\n      })(this);\n      xhr.onerror = (function(_this) {\n        return function() {\n          if (files[0].status === Dropzone.CANCELED) {\n            return;\n          }\n          return handleError();\n        };\n      })(this);\n      progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n      progressObj.onprogress = updateProgress;\n      headers = {\n        \"Accept\": \"application/json\",\n        \"Cache-Control\": \"no-cache\",\n        \"X-Requested-With\": \"XMLHttpRequest\"\n      };\n      if (this.options.headers) {\n        extend(headers, this.options.headers);\n      }\n      for (headerName in headers) {\n        headerValue = headers[headerName];\n        xhr.setRequestHeader(headerName, headerValue);\n      }\n      formData = new FormData();\n      if (this.options.params) {\n        _ref1 = this.options.params;\n        for (key in _ref1) {\n          value = _ref1[key];\n          formData.append(key, value);\n        }\n      }\n      for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n        file = files[_j];\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n      if (this.element.tagName === \"FORM\") {\n        _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n        for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n          input = _ref2[_k];\n          inputName = input.getAttribute(\"name\");\n          inputType = input.getAttribute(\"type\");\n          if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n            _ref3 = input.options;\n            for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n              option = _ref3[_l];\n              if (option.selected) {\n                formData.append(inputName, option.value);\n              }\n            }\n          } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n            formData.append(inputName, input.value);\n          }\n        }\n      }\n      for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n        formData.append(this._getParamName(i), files[i], files[i].name);\n      }\n      return xhr.send(formData);\n    };\n\n    Dropzone.prototype._finished = function(files, responseText, e) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.SUCCESS;\n        this.emit(\"success\", file, responseText, e);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"successmultiple\", files, responseText, e);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n      var file, _i, _len;\n      for (_i = 0, _len = files.length; _i < _len; _i++) {\n        file = files[_i];\n        file.status = Dropzone.ERROR;\n        this.emit(\"error\", file, message, xhr);\n        this.emit(\"complete\", file);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"errormultiple\", files, message, xhr);\n        this.emit(\"completemultiple\", files);\n      }\n      if (this.options.autoProcessQueue) {\n        return this.processQueue();\n      }\n    };\n\n    return Dropzone;\n\n  })(Emitter);\n\n  Dropzone.version = \"4.0.1\";\n\n  Dropzone.options = {};\n\n  Dropzone.optionsForElement = function(element) {\n    if (element.getAttribute(\"id\")) {\n      return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n    } else {\n      return void 0;\n    }\n  };\n\n  Dropzone.instances = [];\n\n  Dropzone.forElement = function(element) {\n    if (typeof element === \"string\") {\n      element = document.querySelector(element);\n    }\n    if ((element != null ? element.dropzone : void 0) == null) {\n      throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n    }\n    return element.dropzone;\n  };\n\n  Dropzone.autoDiscover = true;\n\n  Dropzone.discover = function() {\n    var checkElements, dropzone, dropzones, _i, _len, _results;\n    if (document.querySelectorAll) {\n      dropzones = document.querySelectorAll(\".dropzone\");\n    } else {\n      dropzones = [];\n      checkElements = function(elements) {\n        var el, _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = elements.length; _i < _len; _i++) {\n          el = elements[_i];\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            _results.push(dropzones.push(el));\n          } else {\n            _results.push(void 0);\n          }\n        }\n        return _results;\n      };\n      checkElements(document.getElementsByTagName(\"div\"));\n      checkElements(document.getElementsByTagName(\"form\"));\n    }\n    _results = [];\n    for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n      dropzone = dropzones[_i];\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        _results.push(new Dropzone(dropzone));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  };\n\n  Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n  Dropzone.isBrowserSupported = function() {\n    var capableBrowser, regex, _i, _len, _ref;\n    capableBrowser = true;\n    if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n      if (!(\"classList\" in document.createElement(\"a\"))) {\n        capableBrowser = false;\n      } else {\n        _ref = Dropzone.blacklistedBrowsers;\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          regex = _ref[_i];\n          if (regex.test(navigator.userAgent)) {\n            capableBrowser = false;\n            continue;\n          }\n        }\n      }\n    } else {\n      capableBrowser = false;\n    }\n    return capableBrowser;\n  };\n\n  without = function(list, rejectedItem) {\n    var item, _i, _len, _results;\n    _results = [];\n    for (_i = 0, _len = list.length; _i < _len; _i++) {\n      item = list[_i];\n      if (item !== rejectedItem) {\n        _results.push(item);\n      }\n    }\n    return _results;\n  };\n\n  camelize = function(str) {\n    return str.replace(/[\\-_](\\w)/g, function(match) {\n      return match.charAt(1).toUpperCase();\n    });\n  };\n\n  Dropzone.createElement = function(string) {\n    var div;\n    div = document.createElement(\"div\");\n    div.innerHTML = string;\n    return div.childNodes[0];\n  };\n\n  Dropzone.elementInside = function(element, container) {\n    if (element === container) {\n      return true;\n    }\n    while (element = element.parentNode) {\n      if (element === container) {\n        return true;\n      }\n    }\n    return false;\n  };\n\n  Dropzone.getElement = function(el, name) {\n    var element;\n    if (typeof el === \"string\") {\n      element = document.querySelector(el);\n    } else if (el.nodeType != null) {\n      element = el;\n    }\n    if (element == null) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n    }\n    return element;\n  };\n\n  Dropzone.getElements = function(els, name) {\n    var e, el, elements, _i, _j, _len, _len1, _ref;\n    if (els instanceof Array) {\n      elements = [];\n      try {\n        for (_i = 0, _len = els.length; _i < _len; _i++) {\n          el = els[_i];\n          elements.push(this.getElement(el, name));\n        }\n      } catch (_error) {\n        e = _error;\n        elements = null;\n      }\n    } else if (typeof els === \"string\") {\n      elements = [];\n      _ref = document.querySelectorAll(els);\n      for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n        el = _ref[_j];\n        elements.push(el);\n      }\n    } else if (els.nodeType != null) {\n      elements = [els];\n    }\n    if (!((elements != null) && elements.length)) {\n      throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n    }\n    return elements;\n  };\n\n  Dropzone.confirm = function(question, accepted, rejected) {\n    if (window.confirm(question)) {\n      return accepted();\n    } else if (rejected != null) {\n      return rejected();\n    }\n  };\n\n  Dropzone.isValidFile = function(file, acceptedFiles) {\n    var baseMimeType, mimeType, validType, _i, _len;\n    if (!acceptedFiles) {\n      return true;\n    }\n    acceptedFiles = acceptedFiles.split(\",\");\n    mimeType = file.type;\n    baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n    for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n      validType = acceptedFiles[_i];\n      validType = validType.trim();\n      if (validType.charAt(0) === \".\") {\n        if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n          return true;\n        }\n      } else if (/\\/\\*$/.test(validType)) {\n        if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n          return true;\n        }\n      } else {\n        if (mimeType === validType) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n    jQuery.fn.dropzone = function(options) {\n      return this.each(function() {\n        return new Dropzone(this, options);\n      });\n    };\n  }\n\n  if (typeof module !== \"undefined\" && module !== null) {\n    module.exports = Dropzone;\n  } else {\n    window.Dropzone = Dropzone;\n  }\n\n  Dropzone.ADDED = \"added\";\n\n  Dropzone.QUEUED = \"queued\";\n\n  Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n  Dropzone.UPLOADING = \"uploading\";\n\n  Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n  Dropzone.CANCELED = \"canceled\";\n\n  Dropzone.ERROR = \"error\";\n\n  Dropzone.SUCCESS = \"success\";\n\n\n  /*\n  \n  Bugfix for iOS 6 and 7\n  Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n  based on the work of https://github.com/stomita/ios-imagefile-megapixel\n   */\n\n  detectVerticalSquash = function(img) {\n    var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n    iw = img.naturalWidth;\n    ih = img.naturalHeight;\n    canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = ih;\n    ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    data = ctx.getImageData(0, 0, 1, ih).data;\n    sy = 0;\n    ey = ih;\n    py = ih;\n    while (py > sy) {\n      alpha = data[(py - 1) * 4 + 3];\n      if (alpha === 0) {\n        ey = py;\n      } else {\n        sy = py;\n      }\n      py = (ey + sy) >> 1;\n    }\n    ratio = py / ih;\n    if (ratio === 0) {\n      return 1;\n    } else {\n      return ratio;\n    }\n  };\n\n  drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n    var vertSquashRatio;\n    vertSquashRatio = detectVerticalSquash(img);\n    return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n  };\n\n\n  /*\n   * contentloaded.js\n   *\n   * Author: Diego Perini (diego.perini at gmail.com)\n   * Summary: cross-browser wrapper for DOMContentLoaded\n   * Updated: 20101020\n   * License: MIT\n   * Version: 1.2\n   *\n   * URL:\n   * http://javascript.nwbox.com/ContentLoaded/\n   * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n   */\n\n  contentLoaded = function(win, fn) {\n    var add, doc, done, init, poll, pre, rem, root, top;\n    done = false;\n    top = true;\n    doc = win.document;\n    root = doc.documentElement;\n    add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n    rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n    pre = (doc.addEventListener ? \"\" : \"on\");\n    init = function(e) {\n      if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n        return;\n      }\n      (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n      if (!done && (done = true)) {\n        return fn.call(win, e.type || e);\n      }\n    };\n    poll = function() {\n      var e;\n      try {\n        root.doScroll(\"left\");\n      } catch (_error) {\n        e = _error;\n        setTimeout(poll, 50);\n        return;\n      }\n      return init(\"poll\");\n    };\n    if (doc.readyState !== \"complete\") {\n      if (doc.createEventObject && root.doScroll) {\n        try {\n          top = !win.frameElement;\n        } catch (_error) {}\n        if (top) {\n          poll();\n        }\n      }\n      doc[add](pre + \"DOMContentLoaded\", init, false);\n      doc[add](pre + \"readystatechange\", init, false);\n      return win[add](pre + \"load\", init, false);\n    }\n  };\n\n  Dropzone._autoDiscoverFunction = function() {\n    if (Dropzone.autoDiscover) {\n      return Dropzone.discover();\n    }\n  };\n\n  contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/appversionUpload.js",
    "content": "$(function () {\n\t //上传文件\n\t $('#versionupload').fileupload({\n\t        dataType: 'json',\n\t        done: function (e, data) {\n\t         \n\t        \tif (data.result.status != \"200\") {\n\t        \t\talert(\"上传失败!\");\n\t        \t} else {\n\t                $.each(data.result.data, function (index, file) {\n\t                  $(\"#updateUrl\").attr(\"value\", file.urlDB); \n\t                  $(\"#prompt\").html(\"<font color='red'>上传成功</font></br>上传的文件地址:\"+file.url);\n\t              }); \n\t        \t}\n\t        },\n\t        \n\t        progressall: function (e, data) {\n\t\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t\t        $('#progress .bar').css(\n\t\t            'width',\n\t\t            progress + '%'\n\t\t        );\n\t   \t\t},\n\t\t\tdropZone: $('#dropzone')\n\t    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/jquery.fileupload.js",
    "content": "/*\n * jQuery File Upload Plugin 5.31\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/*jslint nomen: true, unparam: true, regexp: true */\n/*global define, window, document, File, Blob, FormData, location */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'jquery.ui.widget'\n        ], factory);\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // The FileReader API is not actually used, but works as feature detection,\n    // as e.g. Safari supports XHR file uploads via the FormData API,\n    // but not non-multipart XHR file uploads:\n    $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader);\n    $.support.xhrFormDataFileUpload = !!window.FormData;\n\n    // The fileupload widget listens for change events on file input fields defined\n    // via fileInput setting and paste or drop events of the given dropZone.\n    // In addition to the default jQuery Widget methods, the fileupload widget\n    // exposes the \"add\" and \"send\" methods, to add or directly send files using\n    // the fileupload API.\n    // By default, files added via file input selection, paste, drag & drop or\n    // \"add\" method are uploaded immediately, but it is possible to override\n    // the \"add\" callback option to queue file uploads.\n    $.widget('blueimp.fileupload', {\n\n        options: {\n            // The drop target element(s), by the default the complete document.\n            // Set to null to disable drag & drop support:\n            dropZone: $(document),\n            // The paste target element(s), by the default the complete document.\n            // Set to null to disable paste support:\n            pasteZone: $(document),\n            // The file input field(s), that are listened to for change events.\n            // If undefined, it is set to the file input fields inside\n            // of the widget element on plugin initialization.\n            // Set to null to disable the change listener.\n            fileInput: undefined,\n            // By default, the file input field is replaced with a clone after\n            // each input field change event. This is required for iframe transport\n            // queues and allows change events to be fired for the same file\n            // selection, but can be disabled by setting the following option to false:\n            replaceFileInput: true,\n            // The parameter name for the file form data (the request argument name).\n            // If undefined or empty, the name property of the file input field is\n            // used, or \"files[]\" if the file input name property is also empty,\n            // can be a string or an array of strings:\n            paramName: undefined,\n            // By default, each file of a selection is uploaded using an individual\n            // request for XHR type uploads. Set to false to upload file\n            // selections in one request each:\n            singleFileUploads: true,\n            // To limit the number of files uploaded with one XHR request,\n            // set the following option to an integer greater than 0:\n            limitMultiFileUploads: undefined,\n            // Set the following option to true to issue all file upload requests\n            // in a sequential order:\n            sequentialUploads: false,\n            // To limit the number of concurrent uploads,\n            // set the following option to an integer greater than 0:\n            limitConcurrentUploads: undefined,\n            // Set the following option to true to force iframe transport uploads:\n            forceIframeTransport: false,\n            // Set the following option to the location of a redirect url on the\n            // origin server, for cross-domain iframe transport uploads:\n            redirect: undefined,\n            // The parameter name for the redirect url, sent as part of the form\n            // data and set to 'redirect' if this option is empty:\n            redirectParamName: undefined,\n            // Set the following option to the location of a postMessage window,\n            // to enable postMessage transport uploads:\n            postMessage: undefined,\n            // By default, XHR file uploads are sent as multipart/form-data.\n            // The iframe transport is always using multipart/form-data.\n            // Set to false to enable non-multipart XHR uploads:\n            multipart: true,\n            // To upload large files in smaller chunks, set the following option\n            // to a preferred maximum chunk size. If set to 0, null or undefined,\n            // or the browser does not support the required Blob API, files will\n            // be uploaded as a whole.\n            maxChunkSize: undefined,\n            // When a non-multipart upload or a chunked multipart upload has been\n            // aborted, this option can be used to resume the upload by setting\n            // it to the size of the already uploaded bytes. This option is most\n            // useful when modifying the options object inside of the \"add\" or\n            // \"send\" callbacks, as the options are cloned for each file upload.\n            uploadedBytes: undefined,\n            // By default, failed (abort or error) file uploads are removed from the\n            // global progress calculation. Set the following option to false to\n            // prevent recalculating the global progress data:\n            recalculateProgress: true,\n            // Interval in milliseconds to calculate and trigger progress events:\n            progressInterval: 100,\n            // Interval in milliseconds to calculate progress bitrate:\n            bitrateInterval: 500,\n            // By default, uploads are started automatically when adding files:\n            autoUpload: true,\n\n            // Error and info messages:\n            messages: {\n                uploadedBytes: 'Uploaded bytes exceed file size'\n            },\n\n            // Translation function, gets the message key to be translated\n            // and an object with context specific data as arguments:\n            i18n: function (message, context) {\n                message = this.messages[message] || message.toString();\n                if (context) {\n                    $.each(context, function (key, value) {\n                        message = message.replace('{' + key + '}', value);\n                    });\n                }\n                return message;\n            },\n\n            // Additional form data to be sent along with the file uploads can be set\n            // using this option, which accepts an array of objects with name and\n            // value properties, a function returning such an array, a FormData\n            // object (for XHR file uploads), or a simple object.\n            // The form of the first fileInput is given as parameter to the function:\n            formData: function (form) {\n                return form.serializeArray();\n            },\n\n            // The add callback is invoked as soon as files are added to the fileupload\n            // widget (via file input selection, drag & drop, paste or add API call).\n            // If the singleFileUploads option is enabled, this callback will be\n            // called once for each file in the selection for XHR file uplaods, else\n            // once for each file selection.\n            // The upload starts when the submit method is invoked on the data parameter.\n            // The data object contains a files property holding the added files\n            // and allows to override plugin options as well as define ajax settings.\n            // Listeners for this callback can also be bound the following way:\n            // .bind('fileuploadadd', func);\n            // data.submit() returns a Promise object and allows to attach additional\n            // handlers using jQuery's Deferred callbacks:\n            // data.submit().done(func).fail(func).always(func);\n            add: function (e, data) {\n                if (data.autoUpload || (data.autoUpload !== false &&\n                        $(this).fileupload('option', 'autoUpload'))) {\n                    data.process().done(function () {\n                        data.submit();\n                    });\n                }\n            },\n\n            // Other callbacks:\n\n            // Callback for the submit event of each file upload:\n            // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n            // Callback for the start of each file upload request:\n            // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n            // Callback for successful uploads:\n            // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n            // Callback for failed (abort or error) uploads:\n            // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n            // Callback for completed (success, abort or error) requests:\n            // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n            // Callback for upload progress events:\n            // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n            // Callback for global upload progress events:\n            // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n            // Callback for uploads start, equivalent to the global ajaxStart event:\n            // start: function (e) {}, // .bind('fileuploadstart', func);\n\n            // Callback for uploads stop, equivalent to the global ajaxStop event:\n            // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n            // Callback for change events of the fileInput(s):\n            // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n            // Callback for paste events to the pasteZone(s):\n            // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n            // Callback for drop events of the dropZone(s):\n            // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n            // Callback for dragover events of the dropZone(s):\n            // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n            // Callback for the start of each chunk upload request:\n            // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n            // Callback for successful chunk uploads:\n            // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n            // Callback for failed (abort or error) chunk uploads:\n            // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n            // Callback for completed (success, abort or error) chunk upload requests:\n            // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n            // The plugin options are used as settings object for the ajax calls.\n            // The following are jQuery ajax settings required for the file uploads:\n            processData: false,\n            contentType: false,\n            cache: false\n        },\n\n        // A list of options that require reinitializing event listeners and/or\n        // special initialization code:\n        _specialOptions: [\n            'fileInput',\n            'dropZone',\n            'pasteZone',\n            'multipart',\n            'forceIframeTransport'\n        ],\n\n        _BitrateTimer: function () {\n            this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n            this.loaded = 0;\n            this.bitrate = 0;\n            this.getBitrate = function (now, loaded, interval) {\n                var timeDiff = now - this.timestamp;\n                if (!this.bitrate || !interval || timeDiff > interval) {\n                    this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n                    this.loaded = loaded;\n                    this.timestamp = now;\n                }\n                return this.bitrate;\n            };\n        },\n\n        _isXHRUpload: function (options) {\n            return !options.forceIframeTransport &&\n                ((!options.multipart && $.support.xhrFileUpload) ||\n                $.support.xhrFormDataFileUpload);\n        },\n\n        _getFormData: function (options) {\n            var formData;\n            if (typeof options.formData === 'function') {\n                return options.formData(options.form);\n            }\n            if ($.isArray(options.formData)) {\n                return options.formData;\n            }\n            if ($.type(options.formData) === 'object') {\n                formData = [];\n                $.each(options.formData, function (name, value) {\n                    formData.push({name: name, value: value});\n                });\n                return formData;\n            }\n            return [];\n        },\n\n        _getTotal: function (files) {\n            var total = 0;\n            $.each(files, function (index, file) {\n                total += file.size || 1;\n            });\n            return total;\n        },\n\n        _initProgressObject: function (obj) {\n            var progress = {\n                loaded: 0,\n                total: 0,\n                bitrate: 0\n            };\n            if (obj._progress) {\n                $.extend(obj._progress, progress);\n            } else {\n                obj._progress = progress;\n            }\n        },\n\n        _initResponseObject: function (obj) {\n            var prop;\n            if (obj._response) {\n                for (prop in obj._response) {\n                    if (obj._response.hasOwnProperty(prop)) {\n                        delete obj._response[prop];\n                    }\n                }\n            } else {\n                obj._response = {};\n            }\n        },\n\n        _onProgress: function (e, data) {\n            if (e.lengthComputable) {\n                var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n                    loaded;\n                if (data._time && data.progressInterval &&\n                        (now - data._time < data.progressInterval) &&\n                        e.loaded !== e.total) {\n                    return;\n                }\n                data._time = now;\n                loaded = Math.floor(\n                    e.loaded / e.total * (data.chunkSize || data._progress.total)\n                ) + (data.uploadedBytes || 0);\n                // Add the difference from the previously loaded state\n                // to the global loaded counter:\n                this._progress.loaded += (loaded - data._progress.loaded);\n                this._progress.bitrate = this._bitrateTimer.getBitrate(\n                    now,\n                    this._progress.loaded,\n                    data.bitrateInterval\n                );\n                data._progress.loaded = data.loaded = loaded;\n                data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n                    now,\n                    loaded,\n                    data.bitrateInterval\n                );\n                // Trigger a custom progress event with a total data property set\n                // to the file size(s) of the current upload and a loaded data\n                // property calculated accordingly:\n                this._trigger('progress', e, data);\n                // Trigger a global progress event for all current file uploads,\n                // including ajax calls queued for sequential file uploads:\n                this._trigger('progressall', e, this._progress);\n            }\n        },\n\n        _initProgressListener: function (options) {\n            var that = this,\n                xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n            // Accesss to the native XHR object is required to add event listeners\n            // for the upload progress event:\n            if (xhr.upload) {\n                $(xhr.upload).bind('progress', function (e) {\n                    var oe = e.originalEvent;\n                    // Make sure the progress event properties get copied over:\n                    e.lengthComputable = oe.lengthComputable;\n                    e.loaded = oe.loaded;\n                    e.total = oe.total;\n                    that._onProgress(e, options);\n                });\n                options.xhr = function () {\n                    return xhr;\n                };\n            }\n        },\n\n        _isInstanceOf: function (type, obj) {\n            // Cross-frame instanceof check\n            return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n        },\n\n        _initXHRData: function (options) {\n            var that = this,\n                formData,\n                file = options.files[0],\n                // Ignore non-multipart setting if not supported:\n                multipart = options.multipart || !$.support.xhrFileUpload,\n                paramName = options.paramName[0];\n            options.headers = options.headers || {};\n            if (options.contentRange) {\n                options.headers['Content-Range'] = options.contentRange;\n            }\n            if (!multipart) {\n                options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n                    encodeURI(file.name) + '\"';\n                options.contentType = file.type;\n                options.data = options.blob || file;\n            } else if ($.support.xhrFormDataFileUpload) {\n                if (options.postMessage) {\n                    // window.postMessage does not allow sending FormData\n                    // objects, so we just add the File/Blob objects to\n                    // the formData array and let the postMessage window\n                    // create the FormData object out of this array:\n                    formData = this._getFormData(options);\n                    if (options.blob) {\n                        formData.push({\n                            name: paramName,\n                            value: options.blob\n                        });\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            formData.push({\n                                name: options.paramName[index] || paramName,\n                                value: file\n                            });\n                        });\n                    }\n                } else {\n                    if (that._isInstanceOf('FormData', options.formData)) {\n                        formData = options.formData;\n                    } else {\n                        formData = new FormData();\n                        $.each(this._getFormData(options), function (index, field) {\n                            formData.append(field.name, field.value);\n                        });\n                    }\n                    if (options.blob) {\n                        options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n                            encodeURI(file.name) + '\"';\n                        formData.append(paramName, options.blob, file.name);\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            // This check allows the tests to run with\n                            // dummy objects:\n                            if (that._isInstanceOf('File', file) ||\n                                    that._isInstanceOf('Blob', file)) {\n                                formData.append(\n                                    options.paramName[index] || paramName,\n                                    file,\n                                    file.name\n                                );\n                            }\n                        });\n                    }\n                }\n                options.data = formData;\n            }\n            // Blob reference is not needed anymore, free memory:\n            options.blob = null;\n        },\n\n        _initIframeSettings: function (options) {\n            // Setting the dataType to iframe enables the iframe transport:\n            options.dataType = 'iframe ' + (options.dataType || '');\n            // The iframe transport accepts a serialized array as form data:\n            options.formData = this._getFormData(options);\n            // Add redirect url to form data on cross-domain uploads:\n            if (options.redirect && $('<a></a>').prop('href', options.url)\n                    .prop('host') !== location.host) {\n                options.formData.push({\n                    name: options.redirectParamName || 'redirect',\n                    value: options.redirect\n                });\n            }\n        },\n\n        _initDataSettings: function (options) {\n            if (this._isXHRUpload(options)) {\n                if (!this._chunkedUpload(options, true)) {\n                    if (!options.data) {\n                        this._initXHRData(options);\n                    }\n                    this._initProgressListener(options);\n                }\n                if (options.postMessage) {\n                    // Setting the dataType to postmessage enables the\n                    // postMessage transport:\n                    options.dataType = 'postmessage ' + (options.dataType || '');\n                }\n            } else {\n                this._initIframeSettings(options);\n            }\n        },\n\n        _getParamName: function (options) {\n            var fileInput = $(options.fileInput),\n                paramName = options.paramName;\n            if (!paramName) {\n                paramName = [];\n                fileInput.each(function () {\n                    var input = $(this),\n                        name = input.prop('name') || 'files[]',\n                        i = (input.prop('files') || [1]).length;\n                    while (i) {\n                        paramName.push(name);\n                        i -= 1;\n                    }\n                });\n                if (!paramName.length) {\n                    paramName = [fileInput.prop('name') || 'files[]'];\n                }\n            } else if (!$.isArray(paramName)) {\n                paramName = [paramName];\n            }\n            return paramName;\n        },\n\n        _initFormSettings: function (options) {\n            // Retrieve missing options from the input field and the\n            // associated form, if available:\n            if (!options.form || !options.form.length) {\n                options.form = $(options.fileInput.prop('form'));\n                // If the given file input doesn't have an associated form,\n                // use the default widget file input's form:\n                if (!options.form.length) {\n                    options.form = $(this.options.fileInput.prop('form'));\n                }\n            }\n            options.paramName = this._getParamName(options);\n            if (!options.url) {\n                options.url = options.form.prop('action') || location.href;\n            }\n            // The HTTP request method must be \"POST\" or \"PUT\":\n            options.type = (options.type || options.form.prop('method') || '')\n                .toUpperCase();\n            if (options.type !== 'POST' && options.type !== 'PUT' &&\n                    options.type !== 'PATCH') {\n                options.type = 'POST';\n            }\n            if (!options.formAcceptCharset) {\n                options.formAcceptCharset = options.form.attr('accept-charset');\n            }\n        },\n\n        _getAJAXSettings: function (data) {\n            var options = $.extend({}, this.options, data);\n            this._initFormSettings(options);\n            this._initDataSettings(options);\n            return options;\n        },\n\n        // jQuery 1.6 doesn't provide .state(),\n        // while jQuery 1.8+ removed .isRejected() and .isResolved():\n        _getDeferredState: function (deferred) {\n            if (deferred.state) {\n                return deferred.state();\n            }\n            if (deferred.isResolved()) {\n                return 'resolved';\n            }\n            if (deferred.isRejected()) {\n                return 'rejected';\n            }\n            return 'pending';\n        },\n\n        // Maps jqXHR callbacks to the equivalent\n        // methods of the given Promise object:\n        _enhancePromise: function (promise) {\n            promise.success = promise.done;\n            promise.error = promise.fail;\n            promise.complete = promise.always;\n            return promise;\n        },\n\n        // Creates and returns a Promise object enhanced with\n        // the jqXHR methods abort, success, error and complete:\n        _getXHRPromise: function (resolveOrReject, context, args) {\n            var dfd = $.Deferred(),\n                promise = dfd.promise();\n            context = context || this.options.context || promise;\n            if (resolveOrReject === true) {\n                dfd.resolveWith(context, args);\n            } else if (resolveOrReject === false) {\n                dfd.rejectWith(context, args);\n            }\n            promise.abort = dfd.promise;\n            return this._enhancePromise(promise);\n        },\n\n        // Adds convenience methods to the data callback argument:\n        _addConvenienceMethods: function (e, data) {\n            var that = this,\n                getPromise = function (data) {\n                    return $.Deferred().resolveWith(that, [data]).promise();\n                };\n            data.process = function (resolveFunc, rejectFunc) {\n                if (resolveFunc || rejectFunc) {\n                    data._processQueue = this._processQueue =\n                        (this._processQueue || getPromise(this))\n                            .pipe(resolveFunc, rejectFunc);\n                }\n                return this._processQueue || getPromise(this);\n            };\n            data.submit = function () {\n                if (this.state() !== 'pending') {\n                    data.jqXHR = this.jqXHR =\n                        (that._trigger('submit', e, this) !== false) &&\n                        that._onSend(e, this);\n                }\n                return this.jqXHR || that._getXHRPromise();\n            };\n            data.abort = function () {\n                if (this.jqXHR) {\n                    return this.jqXHR.abort();\n                }\n                return that._getXHRPromise();\n            };\n            data.state = function () {\n                if (this.jqXHR) {\n                    return that._getDeferredState(this.jqXHR);\n                }\n                if (this._processQueue) {\n                    return that._getDeferredState(this._processQueue);\n                }\n            };\n            data.progress = function () {\n                return this._progress;\n            };\n            data.response = function () {\n                return this._response;\n            };\n        },\n\n        // Parses the Range header from the server response\n        // and returns the uploaded bytes:\n        _getUploadedBytes: function (jqXHR) {\n            var range = jqXHR.getResponseHeader('Range'),\n                parts = range && range.split('-'),\n                upperBytesPos = parts && parts.length > 1 &&\n                    parseInt(parts[1], 10);\n            return upperBytesPos && upperBytesPos + 1;\n        },\n\n        // Uploads a file in multiple, sequential requests\n        // by splitting the file up in multiple blob chunks.\n        // If the second parameter is true, only tests if the file\n        // should be uploaded in chunks, but does not invoke any\n        // upload requests:\n        _chunkedUpload: function (options, testOnly) {\n            var that = this,\n                file = options.files[0],\n                fs = file.size,\n                ub = options.uploadedBytes = options.uploadedBytes || 0,\n                mcs = options.maxChunkSize || fs,\n                slice = file.slice || file.webkitSlice || file.mozSlice,\n                dfd = $.Deferred(),\n                promise = dfd.promise(),\n                jqXHR,\n                upload;\n            if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n                    options.data) {\n                return false;\n            }\n            if (testOnly) {\n                return true;\n            }\n            if (ub >= fs) {\n                file.error = options.i18n('uploadedBytes');\n                return this._getXHRPromise(\n                    false,\n                    options.context,\n                    [null, 'error', file.error]\n                );\n            }\n            // The chunk upload method:\n            upload = function () {\n                // Clone the options object for each chunk upload:\n                var o = $.extend({}, options),\n                    currentLoaded = o._progress.loaded;\n                o.blob = slice.call(\n                    file,\n                    ub,\n                    ub + mcs,\n                    file.type\n                );\n                // Store the current chunk size, as the blob itself\n                // will be dereferenced after data processing:\n                o.chunkSize = o.blob.size;\n                // Expose the chunk bytes position range:\n                o.contentRange = 'bytes ' + ub + '-' +\n                    (ub + o.chunkSize - 1) + '/' + fs;\n                // Process the upload data (the blob and potential form data):\n                that._initXHRData(o);\n                // Add progress listeners for this chunk upload:\n                that._initProgressListener(o);\n                jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n                        that._getXHRPromise(false, o.context))\n                    .done(function (result, textStatus, jqXHR) {\n                        ub = that._getUploadedBytes(jqXHR) ||\n                            (ub + o.chunkSize);\n                        // Create a progress event if no final progress event\n                        // with loaded equaling total has been triggered\n                        // for this chunk:\n                        if (o._progress.loaded === currentLoaded) {\n                            that._onProgress($.Event('progress', {\n                                lengthComputable: true,\n                                loaded: ub - o.uploadedBytes,\n                                total: ub - o.uploadedBytes\n                            }), o);\n                        }\n                        options.uploadedBytes = o.uploadedBytes = ub;\n                        o.result = result;\n                        o.textStatus = textStatus;\n                        o.jqXHR = jqXHR;\n                        that._trigger('chunkdone', null, o);\n                        that._trigger('chunkalways', null, o);\n                        if (ub < fs) {\n                            // File upload not yet complete,\n                            // continue with the next chunk:\n                            upload();\n                        } else {\n                            dfd.resolveWith(\n                                o.context,\n                                [result, textStatus, jqXHR]\n                            );\n                        }\n                    })\n                    .fail(function (jqXHR, textStatus, errorThrown) {\n                        o.jqXHR = jqXHR;\n                        o.textStatus = textStatus;\n                        o.errorThrown = errorThrown;\n                        that._trigger('chunkfail', null, o);\n                        that._trigger('chunkalways', null, o);\n                        dfd.rejectWith(\n                            o.context,\n                            [jqXHR, textStatus, errorThrown]\n                        );\n                    });\n            };\n            this._enhancePromise(promise);\n            promise.abort = function () {\n                return jqXHR.abort();\n            };\n            upload();\n            return promise;\n        },\n\n        _beforeSend: function (e, data) {\n            if (this._active === 0) {\n                // the start callback is triggered when an upload starts\n                // and no other uploads are currently running,\n                // equivalent to the global ajaxStart event:\n                this._trigger('start');\n                // Set timer for global bitrate progress calculation:\n                this._bitrateTimer = new this._BitrateTimer();\n                // Reset the global progress values:\n                this._progress.loaded = this._progress.total = 0;\n                this._progress.bitrate = 0;\n            }\n            // Make sure the container objects for the .response() and\n            // .progress() methods on the data object are available\n            // and reset to their initial state:\n            this._initResponseObject(data);\n            this._initProgressObject(data);\n            data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n            data._progress.total = data.total = this._getTotal(data.files) || 1;\n            data._progress.bitrate = data.bitrate = 0;\n            this._active += 1;\n            // Initialize the global progress values:\n            this._progress.loaded += data.loaded;\n            this._progress.total += data.total;\n        },\n\n        _onDone: function (result, textStatus, jqXHR, options) {\n            var total = options._progress.total,\n                response = options._response;\n            if (options._progress.loaded < total) {\n                // Create a progress event if no final progress event\n                // with loaded equaling total has been triggered:\n                this._onProgress($.Event('progress', {\n                    lengthComputable: true,\n                    loaded: total,\n                    total: total\n                }), options);\n            }\n            response.result = options.result = result;\n            response.textStatus = options.textStatus = textStatus;\n            response.jqXHR = options.jqXHR = jqXHR;\n            this._trigger('done', null, options);\n        },\n\n        _onFail: function (jqXHR, textStatus, errorThrown, options) {\n            var response = options._response;\n            if (options.recalculateProgress) {\n                // Remove the failed (error or abort) file upload from\n                // the global progress calculation:\n                this._progress.loaded -= options._progress.loaded;\n                this._progress.total -= options._progress.total;\n            }\n            response.jqXHR = options.jqXHR = jqXHR;\n            response.textStatus = options.textStatus = textStatus;\n            response.errorThrown = options.errorThrown = errorThrown;\n            this._trigger('fail', null, options);\n        },\n\n        _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n            // jqXHRorResult, textStatus and jqXHRorError are added to the\n            // options object via done and fail callbacks\n            this._trigger('always', null, options);\n        },\n\n        _onSend: function (e, data) {\n            if (!data.submit) {\n                this._addConvenienceMethods(e, data);\n            }\n            var that = this,\n                jqXHR,\n                aborted,\n                slot,\n                pipe,\n                options = that._getAJAXSettings(data),\n                send = function () {\n                    that._sending += 1;\n                    // Set timer for bitrate progress calculation:\n                    options._bitrateTimer = new that._BitrateTimer();\n                    jqXHR = jqXHR || (\n                        ((aborted || that._trigger('send', e, options) === false) &&\n                        that._getXHRPromise(false, options.context, aborted)) ||\n                        that._chunkedUpload(options) || $.ajax(options)\n                    ).done(function (result, textStatus, jqXHR) {\n                        that._onDone(result, textStatus, jqXHR, options);\n                    }).fail(function (jqXHR, textStatus, errorThrown) {\n                        that._onFail(jqXHR, textStatus, errorThrown, options);\n                    }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n                        that._onAlways(\n                            jqXHRorResult,\n                            textStatus,\n                            jqXHRorError,\n                            options\n                        );\n                        that._sending -= 1;\n                        that._active -= 1;\n                        if (options.limitConcurrentUploads &&\n                                options.limitConcurrentUploads > that._sending) {\n                            // Start the next queued upload,\n                            // that has not been aborted:\n                            var nextSlot = that._slots.shift();\n                            while (nextSlot) {\n                                if (that._getDeferredState(nextSlot) === 'pending') {\n                                    nextSlot.resolve();\n                                    break;\n                                }\n                                nextSlot = that._slots.shift();\n                            }\n                        }\n                        if (that._active === 0) {\n                            // The stop callback is triggered when all uploads have\n                            // been completed, equivalent to the global ajaxStop event:\n                            that._trigger('stop');\n                        }\n                    });\n                    return jqXHR;\n                };\n            this._beforeSend(e, options);\n            if (this.options.sequentialUploads ||\n                    (this.options.limitConcurrentUploads &&\n                    this.options.limitConcurrentUploads <= this._sending)) {\n                if (this.options.limitConcurrentUploads > 1) {\n                    slot = $.Deferred();\n                    this._slots.push(slot);\n                    pipe = slot.pipe(send);\n                } else {\n                    pipe = (this._sequence = this._sequence.pipe(send, send));\n                }\n                // Return the piped Promise object, enhanced with an abort method,\n                // which is delegated to the jqXHR object of the current upload,\n                // and jqXHR callbacks mapped to the equivalent Promise methods:\n                pipe.abort = function () {\n                    aborted = [undefined, 'abort', 'abort'];\n                    if (!jqXHR) {\n                        if (slot) {\n                            slot.rejectWith(options.context, aborted);\n                        }\n                        return send();\n                    }\n                    return jqXHR.abort();\n                };\n                return this._enhancePromise(pipe);\n            }\n            return send();\n        },\n\n        _onAdd: function (e, data) {\n            var that = this,\n                result = true,\n                options = $.extend({}, this.options, data),\n                limit = options.limitMultiFileUploads,\n                paramName = this._getParamName(options),\n                paramNameSet,\n                paramNameSlice,\n                fileSet,\n                i;\n            if (!(options.singleFileUploads || limit) ||\n                    !this._isXHRUpload(options)) {\n                fileSet = [data.files];\n                paramNameSet = [paramName];\n            } else if (!options.singleFileUploads && limit) {\n                fileSet = [];\n                paramNameSet = [];\n                for (i = 0; i < data.files.length; i += limit) {\n                    fileSet.push(data.files.slice(i, i + limit));\n                    paramNameSlice = paramName.slice(i, i + limit);\n                    if (!paramNameSlice.length) {\n                        paramNameSlice = paramName;\n                    }\n                    paramNameSet.push(paramNameSlice);\n                }\n            } else {\n                paramNameSet = paramName;\n            }\n            data.originalFiles = data.files;\n            $.each(fileSet || data.files, function (index, element) {\n                var newData = $.extend({}, data);\n                newData.files = fileSet ? element : [element];\n                newData.paramName = paramNameSet[index];\n                that._initResponseObject(newData);\n                that._initProgressObject(newData);\n                that._addConvenienceMethods(e, newData);\n                result = that._trigger('add', e, newData);\n                return result;\n            });\n            return result;\n        },\n\n        _replaceFileInput: function (input) {\n            var inputClone = input.clone(true);\n            $('<form></form>').append(inputClone)[0].reset();\n            // Detaching allows to insert the fileInput on another form\n            // without loosing the file input value:\n            input.after(inputClone).detach();\n            // Avoid memory leaks with the detached file input:\n            $.cleanData(input.unbind('remove'));\n            // Replace the original file input element in the fileInput\n            // elements set with the clone, which has been copied including\n            // event handlers:\n            this.options.fileInput = this.options.fileInput.map(function (i, el) {\n                if (el === input[0]) {\n                    return inputClone[0];\n                }\n                return el;\n            });\n            // If the widget has been initialized on the file input itself,\n            // override this.element with the file input clone:\n            if (input[0] === this.element[0]) {\n                this.element = inputClone;\n            }\n        },\n\n        _handleFileTreeEntry: function (entry, path) {\n            var that = this,\n                dfd = $.Deferred(),\n                errorHandler = function (e) {\n                    if (e && !e.entry) {\n                        e.entry = entry;\n                    }\n                    // Since $.when returns immediately if one\n                    // Deferred is rejected, we use resolve instead.\n                    // This allows valid files and invalid items\n                    // to be returned together in one set:\n                    dfd.resolve([e]);\n                },\n                dirReader;\n            path = path || '';\n            if (entry.isFile) {\n                if (entry._file) {\n                    // Workaround for Chrome bug #149735\n                    entry._file.relativePath = path;\n                    dfd.resolve(entry._file);\n                } else {\n                    entry.file(function (file) {\n                        file.relativePath = path;\n                        dfd.resolve(file);\n                    }, errorHandler);\n                }\n            } else if (entry.isDirectory) {\n                dirReader = entry.createReader();\n                dirReader.readEntries(function (entries) {\n                    that._handleFileTreeEntries(\n                        entries,\n                        path + entry.name + '/'\n                    ).done(function (files) {\n                        dfd.resolve(files);\n                    }).fail(errorHandler);\n                }, errorHandler);\n            } else {\n                // Return an empy list for file system items\n                // other than files or directories:\n                dfd.resolve([]);\n            }\n            return dfd.promise();\n        },\n\n        _handleFileTreeEntries: function (entries, path) {\n            var that = this;\n            return $.when.apply(\n                $,\n                $.map(entries, function (entry) {\n                    return that._handleFileTreeEntry(entry, path);\n                })\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _getDroppedFiles: function (dataTransfer) {\n            dataTransfer = dataTransfer || {};\n            var items = dataTransfer.items;\n            if (items && items.length && (items[0].webkitGetAsEntry ||\n                    items[0].getAsEntry)) {\n                return this._handleFileTreeEntries(\n                    $.map(items, function (item) {\n                        var entry;\n                        if (item.webkitGetAsEntry) {\n                            entry = item.webkitGetAsEntry();\n                            if (entry) {\n                                // Workaround for Chrome bug #149735:\n                                entry._file = item.getAsFile();\n                            }\n                            return entry;\n                        }\n                        return item.getAsEntry();\n                    })\n                );\n            }\n            return $.Deferred().resolve(\n                $.makeArray(dataTransfer.files)\n            ).promise();\n        },\n\n        _getSingleFileInputFiles: function (fileInput) {\n            fileInput = $(fileInput);\n            var entries = fileInput.prop('webkitEntries') ||\n                    fileInput.prop('entries'),\n                files,\n                value;\n            if (entries && entries.length) {\n                return this._handleFileTreeEntries(entries);\n            }\n            files = $.makeArray(fileInput.prop('files'));\n            if (!files.length) {\n                value = fileInput.prop('value');\n                if (!value) {\n                    return $.Deferred().resolve([]).promise();\n                }\n                // If the files property is not available, the browser does not\n                // support the File API and we add a pseudo File object with\n                // the input value as name with path information removed:\n                files = [{name: value.replace(/^.*\\\\/, '')}];\n            } else if (files[0].name === undefined && files[0].fileName) {\n                // File normalization for Safari 4 and Firefox 3:\n                $.each(files, function (index, file) {\n                    file.name = file.fileName;\n                    file.size = file.fileSize;\n                });\n            }\n            return $.Deferred().resolve(files).promise();\n        },\n\n        _getFileInputFiles: function (fileInput) {\n            if (!(fileInput instanceof $) || fileInput.length === 1) {\n                return this._getSingleFileInputFiles(fileInput);\n            }\n            return $.when.apply(\n                $,\n                $.map(fileInput, this._getSingleFileInputFiles)\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _onChange: function (e) {\n            var that = this,\n                data = {\n                    fileInput: $(e.target),\n                    form: $(e.target.form)\n                };\n            this._getFileInputFiles(data.fileInput).always(function (files) {\n                data.files = files;\n                if (that.options.replaceFileInput) {\n                    that._replaceFileInput(data.fileInput);\n                }\n                if (that._trigger('change', e, data) !== false) {\n                    that._onAdd(e, data);\n                }\n            });\n        },\n\n        _onPaste: function (e) {\n            var items = e.originalEvent && e.originalEvent.clipboardData &&\n                    e.originalEvent.clipboardData.items,\n                data = {files: []};\n            if (items && items.length) {\n                $.each(items, function (index, item) {\n                    var file = item.getAsFile && item.getAsFile();\n                    if (file) {\n                        data.files.push(file);\n                    }\n                });\n                if (this._trigger('paste', e, data) === false ||\n                        this._onAdd(e, data) === false) {\n                    return false;\n                }\n            }\n        },\n\n        _onDrop: function (e) {\n            var that = this,\n                dataTransfer = e.dataTransfer = e.originalEvent &&\n                    e.originalEvent.dataTransfer,\n                data = {};\n            if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n                e.preventDefault();\n                this._getDroppedFiles(dataTransfer).always(function (files) {\n                    data.files = files;\n                    if (that._trigger('drop', e, data) !== false) {\n                        that._onAdd(e, data);\n                    }\n                });\n            }\n        },\n\n        _onDragOver: function (e) {\n            var dataTransfer = e.dataTransfer = e.originalEvent &&\n                e.originalEvent.dataTransfer;\n            if (dataTransfer) {\n                if (this._trigger('dragover', e) === false) {\n                    return false;\n                }\n                if ($.inArray('Files', dataTransfer.types) !== -1) {\n                    dataTransfer.dropEffect = 'copy';\n                    e.preventDefault();\n                }\n            }\n        },\n\n        _initEventHandlers: function () {\n            if (this._isXHRUpload(this.options)) {\n                this._on(this.options.dropZone, {\n                    dragover: this._onDragOver,\n                    drop: this._onDrop\n                });\n                this._on(this.options.pasteZone, {\n                    paste: this._onPaste\n                });\n            }\n            this._on(this.options.fileInput, {\n                change: this._onChange\n            });\n        },\n\n        _destroyEventHandlers: function () {\n            this._off(this.options.dropZone, 'dragover drop');\n            this._off(this.options.pasteZone, 'paste');\n            this._off(this.options.fileInput, 'change');\n        },\n\n        _setOption: function (key, value) {\n            var reinit = $.inArray(key, this._specialOptions) !== -1;\n            if (reinit) {\n                this._destroyEventHandlers();\n            }\n            this._super(key, value);\n            if (reinit) {\n                this._initSpecialOptions();\n                this._initEventHandlers();\n            }\n        },\n\n        _initSpecialOptions: function () {\n            var options = this.options;\n            if (options.fileInput === undefined) {\n                options.fileInput = this.element.is('input[type=\"file\"]') ?\n                        this.element : this.element.find('input[type=\"file\"]');\n            } else if (!(options.fileInput instanceof $)) {\n                options.fileInput = $(options.fileInput);\n            }\n            if (!(options.dropZone instanceof $)) {\n                options.dropZone = $(options.dropZone);\n            }\n            if (!(options.pasteZone instanceof $)) {\n                options.pasteZone = $(options.pasteZone);\n            }\n        },\n\n        _getRegExp: function (str) {\n            var parts = str.split('/'),\n                modifiers = parts.pop();\n            parts.shift();\n            return new RegExp(parts.join('/'), modifiers);\n        },\n\n        _isRegExpOption: function (key, value) {\n            return key !== 'url' && $.type(value) === 'string' &&\n                /^\\/.*\\/[igm]{0,3}$/.test(value);\n        },\n\n        _initDataAttributes: function () {\n            var that = this,\n                options = this.options;\n            // Initialize options set via HTML5 data-attributes:\n            $.each(\n                $(this.element[0].cloneNode(false)).data(),\n                function (key, value) {\n                    if (that._isRegExpOption(key, value)) {\n                        value = that._getRegExp(value);\n                    }\n                    options[key] = value;\n                }\n            );\n        },\n\n        _create: function () {\n            this._initDataAttributes();\n            this._initSpecialOptions();\n            this._slots = [];\n            this._sequence = this._getXHRPromise(true);\n            this._sending = this._active = 0;\n            this._initProgressObject(this);\n            this._initEventHandlers();\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the number of active uploads:\n        active: function () {\n            return this._active;\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the widget upload progress.\n        // It returns an object with loaded, total and bitrate properties\n        // for the running uploads:\n        progress: function () {\n            return this._progress;\n        },\n\n        // This method is exposed to the widget API and allows adding files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files property and can contain additional options:\n        // .fileupload('add', {files: filesList});\n        add: function (data) {\n            var that = this;\n            if (!data || this.options.disabled) {\n                return;\n            }\n            if (data.fileInput && !data.files) {\n                this._getFileInputFiles(data.fileInput).always(function (files) {\n                    data.files = files;\n                    that._onAdd(null, data);\n                });\n            } else {\n                data.files = $.makeArray(data.files);\n                this._onAdd(null, data);\n            }\n        },\n\n        // This method is exposed to the widget API and allows sending files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files or fileInput property and can contain additional options:\n        // .fileupload('send', {files: filesList});\n        // The method returns a Promise object for the file upload call.\n        send: function (data) {\n            if (data && !this.options.disabled) {\n                if (data.fileInput && !data.files) {\n                    var that = this,\n                        dfd = $.Deferred(),\n                        promise = dfd.promise(),\n                        jqXHR,\n                        aborted;\n                    promise.abort = function () {\n                        aborted = true;\n                        if (jqXHR) {\n                            return jqXHR.abort();\n                        }\n                        dfd.reject(null, 'abort', 'abort');\n                        return promise;\n                    };\n                    this._getFileInputFiles(data.fileInput).always(\n                        function (files) {\n                            if (aborted) {\n                                return;\n                            }\n                            data.files = files;\n                            jqXHR = that._onSend(null, data).then(\n                                function (result, textStatus, jqXHR) {\n                                    dfd.resolve(result, textStatus, jqXHR);\n                                },\n                                function (jqXHR, textStatus, errorThrown) {\n                                    dfd.reject(jqXHR, textStatus, errorThrown);\n                                }\n                            );\n                        }\n                    );\n                    return this._enhancePromise(promise);\n                }\n                data.files = $.makeArray(data.files);\n                if (data.files.length) {\n                    return this._onSend(null, data);\n                }\n            }\n            return this._getXHRPromise(false, data && data.context);\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/jquery.iframe-transport.js",
    "content": "/*\n * jQuery Iframe Transport Plugin 1.6.1\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/*jslint unparam: true, nomen: true */\n/*global define, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // Helper variable to create unique names for the transport iframes:\n    var counter = 0;\n\n    // The iframe transport accepts three additional options:\n    // options.fileInput: a jQuery collection of file input fields\n    // options.paramName: the parameter name for the file form data,\n    //  overrides the name property of the file input field(s),\n    //  can be a string or an array of strings.\n    // options.formData: an array of objects with name and value properties,\n    //  equivalent to the return data of .serializeArray(), e.g.:\n    //  [{name: 'a', value: 1}, {name: 'b', value: 2}]\n    $.ajaxTransport('iframe', function (options) {\n        if (options.async) {\n            var form,\n                iframe,\n                addParamChar;\n            return {\n                send: function (_, completeCallback) {\n                    form = $('<form style=\"display:none;\"></form>');\n                    form.attr('accept-charset', options.formAcceptCharset);\n                    addParamChar = /\\?/.test(options.url) ? '&' : '?';\n                    // XDomainRequest only supports GET and POST:\n                    if (options.type === 'DELETE') {\n                        options.url = options.url + addParamChar + '_method=DELETE';\n                        options.type = 'POST';\n                    } else if (options.type === 'PUT') {\n                        options.url = options.url + addParamChar + '_method=PUT';\n                        options.type = 'POST';\n                    } else if (options.type === 'PATCH') {\n                        options.url = options.url + addParamChar + '_method=PATCH';\n                        options.type = 'POST';\n                    }\n                    // javascript:false as initial iframe src\n                    // prevents warning popups on HTTPS in IE6.\n                    // IE versions below IE8 cannot set the name property of\n                    // elements that have already been added to the DOM,\n                    // so we set the name along with the iframe HTML markup:\n                    iframe = $(\n                        '<iframe src=\"javascript:false;\" name=\"iframe-transport-' +\n                            (counter += 1) + '\"></iframe>'\n                    ).bind('load', function () {\n                        var fileInputClones,\n                            paramNames = $.isArray(options.paramName) ?\n                                    options.paramName : [options.paramName];\n                        iframe\n                            .unbind('load')\n                            .bind('load', function () {\n                                var response;\n                                // Wrap in a try/catch block to catch exceptions thrown\n                                // when trying to access cross-domain iframe contents:\n                                try {\n                                    response = iframe.contents();\n                                    // Google Chrome and Firefox do not throw an\n                                    // exception when calling iframe.contents() on\n                                    // cross-domain requests, so we unify the response:\n                                    if (!response.length || !response[0].firstChild) {\n                                        throw new Error();\n                                    }\n                                } catch (e) {\n                                    response = undefined;\n                                }\n                                // The complete callback returns the\n                                // iframe content document as response object:\n                                completeCallback(\n                                    200,\n                                    'success',\n                                    {'iframe': response}\n                                );\n                                // Fix for IE endless progress bar activity bug\n                                // (happens on form submits to iframe targets):\n                                $('<iframe src=\"javascript:false;\"></iframe>')\n                                    .appendTo(form);\n                                form.remove();\n                            });\n                        form\n                            .prop('target', iframe.prop('name'))\n                            .prop('action', options.url)\n                            .prop('method', options.type);\n                        if (options.formData) {\n                            $.each(options.formData, function (index, field) {\n                                $('<input type=\"hidden\"/>')\n                                    .prop('name', field.name)\n                                    .val(field.value)\n                                    .appendTo(form);\n                            });\n                        }\n                        if (options.fileInput && options.fileInput.length &&\n                                options.type === 'POST') {\n                            fileInputClones = options.fileInput.clone();\n                            // Insert a clone for each file input field:\n                            options.fileInput.after(function (index) {\n                                return fileInputClones[index];\n                            });\n                            if (options.paramName) {\n                                options.fileInput.each(function (index) {\n                                    $(this).prop(\n                                        'name',\n                                        paramNames[index] || options.paramName\n                                    );\n                                });\n                            }\n                            // Appending the file input fields to the hidden form\n                            // removes them from their original location:\n                            form\n                                .append(options.fileInput)\n                                .prop('enctype', 'multipart/form-data')\n                                // enctype must be set as encoding for IE:\n                                .prop('encoding', 'multipart/form-data');\n                        }\n                        form.submit();\n                        // Insert the file input fields at their original location\n                        // by replacing the clones with the originals:\n                        if (fileInputClones && fileInputClones.length) {\n                            options.fileInput.each(function (index, input) {\n                                var clone = $(fileInputClones[index]);\n                                $(input).prop('name', clone.prop('name'));\n                                clone.replaceWith(input);\n                            });\n                        }\n                    });\n                    form.append(iframe).appendTo(document.body);\n                },\n                abort: function () {\n                    if (iframe) {\n                        // javascript:false as iframe src aborts the request\n                        // and prevents warning popups on HTTPS in IE6.\n                        // concat is used to avoid the \"Script URL\" JSLint error:\n                        iframe\n                            .unbind('load')\n                            .prop('src', 'javascript'.concat(':false;'));\n                    }\n                    if (form) {\n                        form.remove();\n                    }\n                }\n            };\n        }\n    });\n\n    // The iframe transport returns the iframe content document as response.\n    // The following adds converters from iframe to text, json, html, and script:\n    $.ajaxSetup({\n        converters: {\n            'iframe text': function (iframe) {\n                return iframe && $(iframe[0].body).text();\n            },\n            'iframe json': function (iframe) {\n                return iframe && $.parseJSON($(iframe[0].body).text());\n            },\n            'iframe html': function (iframe) {\n                return iframe && $(iframe[0].body).html();\n            },\n            'iframe script': function (iframe) {\n                return iframe && $.globalEval($(iframe[0].body).text());\n            }\n        }\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/myuploadfunction.js",
    "content": "$(function () {\n    $('#fileupload').fileupload({\n        dataType: 'json',\n        \n        done: function (e, data) {\n        \tconsole.log(data);  \n        \t$(\"tr:has(td)\").remove();\n            $.each(data.result.data, function (index, file) {\n            \t\n//                $(\"#uploaded-files\").append(\n//                \t\t$('<tr/>')\n//                \t\t.append($('<td/>').html(\"<img src='\" + file.url + \"' width='80' hight='80'></img>\"))\n//                \t\t.append($('<td/>').text(file.fileSize))\n//                \t\t.append($('<td/>').text(file.fileType))\n//                \t\t.append($('<td/>').html(\"<a href='rest/controller/get/\"+index+\"'>Click</a>\"))\n//                \t\t);\n                \t\t\n                $(\"#lee\").append(\"<a href='\" + file.url + \"'><img src='\" + file.url + \"' width='80' hight='80'></img></a>\");\n                $(\"#lee\").append(\"<a href='\" + file.smallUrl + \"'><img src='\" + file.smallUrl + \"' width='80' hight='80'></img></a>\");\n            }); \n        },\n        \n        progressall: function (e, data) {\n\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t        $('#progress .bar').css(\n\t            'width',\n\t            progress + '%'\n\t        );\n   \t\t},\n   \t\t\n\t\tdropZone: $('#dropzone')\n    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/spPdcAppversionUpload.js",
    "content": "$(function () {\n\t //上传文件\n\t $('#sppdc_versionupload').fileupload({\n\t        dataType: 'json',\n\t        done: function (e, data) {\n\t         \n\t        \tif (data.result.status != \"200\") {\n\t        \t\talert(\"上传失败!\");\n\t        \t} else {\n\t                $.each(data.result.data, function (index, file) {\n\t                  $(\"#updateUrl\").attr(\"value\", file.urlDB); \n\t                  $(\"#prompt\").html(\"<font color='red'>上传成功</font></br>上传的文件地址:\"+file.url);\n\t              }); \n\t        \t}\n\t        },\n\t        \n\t        progressall: function (e, data) {\n\t\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t\t        $('#progress .bar').css(\n\t\t            'width',\n\t\t            progress + '%'\n\t\t        );\n\t   \t\t},\n\t\t\tdropZone: $('#dropzone')\n\t    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/spTransAppversionUpload.js",
    "content": "$(function () {\n\t //上传文件\n\t $('#sptrans_versionupload').fileupload({\n\t        dataType: 'json',\n\t        done: function (e, data) {\n\t         \n\t        \tif (data.result.status != \"200\") {\n\t        \t\talert(\"上传失败!\");\n\t        \t} else {\n\t                $.each(data.result.data, function (index, file) {\n\t                  $(\"#updateUrl\").attr(\"value\", file.urlDB); \n\t                  $(\"#prompt\").html(\"<font color='red'>上传成功</font></br>上传的文件地址:\"+file.url);\n\t              }); \n\t        \t}\n\t        },\n\t        \n\t        progressall: function (e, data) {\n\t\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n\t\t        $('#progress .bar').css(\n\t\t            'width',\n\t\t            progress + '%'\n\t\t        );\n\t   \t\t},\n\t\t\tdropZone: $('#dropzone')\n\t    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/uploader-idcardImageNegative.js",
    "content": "$(function () {\n    $('#idcardImageNegativeUpload').fileupload({\n        dataType: 'json',\n        done: function (e, data) {\n        \tconsole.log(data);  \n        \t\n        \tif (data.result.status != \"200\") {\n        \t\talert(data.result.msg);\n        \t} else {\n                $.each(data.result.data, function (index, file) {\n                  $(\"#idcardImageNegativeContent\").html(\"<a href='\" + file.url + \"' target='_blank'><img src='\" + file.url + \"' width='120'></img></a>\");\n                  $(\"#idcardImageNegative\").attr(\"value\", file.urlDB);\n              }); \n        \t}\n        }//,\n        \n//        progressall: function (e, data) {\n//\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n//\t        $('#progress .bar').css(\n//\t            'width',\n//\t            progress + '%'\n//\t        );\n//   \t\t},\n   \t\t\n//\t\tdropZone: $('#dropzone')\n    });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/uploader-idcardImagePositive.js",
    "content": "$(function () {\n    $('#idcardImagePositiveFileUpload').fileupload({\n        dataType: 'json',\n        done: function (e, data) {\n        \tconsole.log(data);  \n        \t\n        \tif (data.result.status != \"200\") {\n        \t\talert(data.result.msg);\n        \t} else {\n                $.each(data.result.data, function (index, file) {\n                  $(\"#idcardImagePositiveContent\").html(\"<a href='\" + file.url + \"' target='_blank'><img src='\" + file.url + \"' width='120'></img></a>\");\n                  $(\"#idcardImagePositive\").attr(\"value\", file.urlDB);\n              }); \n        \t}\n        },\n        \n        change: function (e, data) {\n        \tvar size = data.files[0].size;\n        \n    \t\tif((size / 1024 / 1024) > 2) {\n\t\t\t\tSweetAlert.error(\"图片大小不能超过2M...\");\n\t\t\t\treturn false;\n\t\t\t}\n   \t\t}\n        \n//        progressall: function (e, data) {\n//\t        var progress = parseInt(data.loaded / data.total * 100, 10);\n//\t        $('#progress .bar').css(\n//\t            'width',\n//\t            progress + '%'\n//\t        );\n//   \t\t},\n   \t\t\n//\t\tdropZone: $('#dropzone')\n    });\n    \n//    $('#idcardImagePositiveFileUpload').on('change', function() {\n//\t\t\n//\t    var filepath = $(this).val();\n//\t\tif(filepath==\"\"){\n//\t\t\treturn false;\n//\t\t}\n//\t\tvar extStart = filepath.lastIndexOf(\".\");\n//\t\tvar ext = filepath.substring(extStart, filepath.length).toUpperCase();\n//\t\tif(ext != \".PNG\" && ext != \".GIF\" && ext != \".JPG\" && ext != \".JPEG\") {\n//\t\t\tSweetAlert.error(\"图片限于png,gif,jpeg,jpg格式...\");\n//\t\t\treturn false;\n//\t\t} \n//\t\t\n//\t\tif(($(\"#upload-file\").get(0).files[0].size / 1024 / 1024) > 2) {\n//\t\t\tSweetAlert.error(\"图片大小不能超过2M...\");\n//\t\t\treturn false;\n//\t\t}\n//    \n//\t\tif(($(\"#idcardImagePositiveFileUpload\").get(0).files[0].size / 1024 / 1024) > 2) {\n//\t\t\tSweetAlert.error(\"图片大小不能超过2M...\");\n//\t\t\treturn false;\n//\t\t}\n//\t});\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/file-uploader/js/vendor/jquery.ui.widget.js",
    "content": "/*\n * jQuery UI Widget 1.10.1+amd\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/jQuery.widget/\n */\n\n(function (factory) {\n    if (typeof define === \"function\" && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\"jquery\"], factory);\n    } else {\n        // Browser globals:\n        factory(jQuery);\n    }\n}(function( $, undefined ) {\n\nvar uuid = 0,\n\tslice = Array.prototype.slice,\n\t_cleanData = $.cleanData;\n$.cleanData = function( elems ) {\n\tfor ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {\n\t\ttry {\n\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t// http://bugs.jquery.com/ticket/8235\n\t\t} catch( e ) {}\n\t}\n\t_cleanData( elems );\n};\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n};\n\n$.widget.extend = function( target ) {\n\tvar input = slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\t// allow multiple hashes to be passed on init\n\t\toptions = !isMethodCall && args.length ?\n\t\t\t$.widget.extend.apply( null, [ options ].concat(args) ) :\n\t\t\toptions;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} )._init();\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t// 1.9 BC for #7810\n\t\t\t// TODO remove dual storage\n\t\t\t.removeData( this.widgetName )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( value === undefined ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( value === undefined ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled ui-state-disabled\", !!value )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOption( \"disabled\", false );\n\t},\n\tdisable: function() {\n\t\treturn this._setOption( \"disabled\", true );\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\t// accept selectors, DOM elements\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^(\\w+)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) + this.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.colorhelpers.js",
    "content": "/* Plugin for jQuery for working with colors.\n * \n * Version 1.1.\n * \n * Inspiration from jQuery color animation plugin by John Resig.\n *\n * Released under the MIT license by Ole Laursen, October 2009.\n *\n * Examples:\n *\n *   $.color.parse(\"#fff\").scale('rgb', 0.25).add('a', -0.5).toString()\n *   var c = $.color.extract($(\"#mydiv\"), 'background-color');\n *   console.log(c.r, c.g, c.b, c.a);\n *   $.color.make(100, 50, 25, 0.4).toString() // returns \"rgba(100,50,25,0.4)\"\n *\n * Note that .scale() and .add() return the same modified object\n * instead of making a new one.\n *\n * V. 1.1: Fix error handling so e.g. parsing an empty string does\n * produce a color rather than just crashing.\n */ \n\n(function($) {\n    $.color = {};\n\n    // construct color object with some convenient chainable helpers\n    $.color.make = function (r, g, b, a) {\n        var o = {};\n        o.r = r || 0;\n        o.g = g || 0;\n        o.b = b || 0;\n        o.a = a != null ? a : 1;\n\n        o.add = function (c, d) {\n            for (var i = 0; i < c.length; ++i)\n                o[c.charAt(i)] += d;\n            return o.normalize();\n        };\n        \n        o.scale = function (c, f) {\n            for (var i = 0; i < c.length; ++i)\n                o[c.charAt(i)] *= f;\n            return o.normalize();\n        };\n        \n        o.toString = function () {\n            if (o.a >= 1.0) {\n                return \"rgb(\"+[o.r, o.g, o.b].join(\",\")+\")\";\n            } else {\n                return \"rgba(\"+[o.r, o.g, o.b, o.a].join(\",\")+\")\";\n            }\n        };\n\n        o.normalize = function () {\n            function clamp(min, value, max) {\n                return value < min ? min: (value > max ? max: value);\n            }\n            \n            o.r = clamp(0, parseInt(o.r), 255);\n            o.g = clamp(0, parseInt(o.g), 255);\n            o.b = clamp(0, parseInt(o.b), 255);\n            o.a = clamp(0, o.a, 1);\n            return o;\n        };\n\n        o.clone = function () {\n            return $.color.make(o.r, o.b, o.g, o.a);\n        };\n\n        return o.normalize();\n    }\n\n    // extract CSS color property from element, going up in the DOM\n    // if it's \"transparent\"\n    $.color.extract = function (elem, css) {\n        var c;\n\n        do {\n            c = elem.css(css).toLowerCase();\n            // keep going until we find an element that has color, or\n            // we hit the body or root (have no parent)\n            if (c != '' && c != 'transparent')\n                break;\n            elem = elem.parent();\n        } while (elem.length && !$.nodeName(elem.get(0), \"body\"));\n\n        // catch Safari's way of signalling transparent\n        if (c == \"rgba(0, 0, 0, 0)\")\n            c = \"transparent\";\n        \n        return $.color.parse(c);\n    }\n    \n    // parse CSS color string (like \"rgb(10, 32, 43)\" or \"#fff\"),\n    // returns color object, if parsing failed, you get black (0, 0,\n    // 0) out\n    $.color.parse = function (str) {\n        var res, m = $.color.make;\n\n        // Look for rgb(num,num,num)\n        if (res = /rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(str))\n            return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10));\n        \n        // Look for rgba(num,num,num,num)\n        if (res = /rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))\n            return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4]));\n            \n        // Look for rgb(num%,num%,num%)\n        if (res = /rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(str))\n            return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55);\n\n        // Look for rgba(num%,num%,num%,num)\n        if (res = /rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))\n            return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55, parseFloat(res[4]));\n        \n        // Look for #a0b1c2\n        if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))\n            return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16));\n\n        // Look for #fff\n        if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))\n            return m(parseInt(res[1]+res[1], 16), parseInt(res[2]+res[2], 16), parseInt(res[3]+res[3], 16));\n\n        // Otherwise, we're most likely dealing with a named color\n        var name = $.trim(str).toLowerCase();\n        if (name == \"transparent\")\n            return m(255, 255, 255, 0);\n        else {\n            // default to black\n            res = lookupColors[name] || [0, 0, 0];\n            return m(res[0], res[1], res[2]);\n        }\n    }\n    \n    var lookupColors = {\n        aqua:[0,255,255],\n        azure:[240,255,255],\n        beige:[245,245,220],\n        black:[0,0,0],\n        blue:[0,0,255],\n        brown:[165,42,42],\n        cyan:[0,255,255],\n        darkblue:[0,0,139],\n        darkcyan:[0,139,139],\n        darkgrey:[169,169,169],\n        darkgreen:[0,100,0],\n        darkkhaki:[189,183,107],\n        darkmagenta:[139,0,139],\n        darkolivegreen:[85,107,47],\n        darkorange:[255,140,0],\n        darkorchid:[153,50,204],\n        darkred:[139,0,0],\n        darksalmon:[233,150,122],\n        darkviolet:[148,0,211],\n        fuchsia:[255,0,255],\n        gold:[255,215,0],\n        green:[0,128,0],\n        indigo:[75,0,130],\n        khaki:[240,230,140],\n        lightblue:[173,216,230],\n        lightcyan:[224,255,255],\n        lightgreen:[144,238,144],\n        lightgrey:[211,211,211],\n        lightpink:[255,182,193],\n        lightyellow:[255,255,224],\n        lime:[0,255,0],\n        magenta:[255,0,255],\n        maroon:[128,0,0],\n        navy:[0,0,128],\n        olive:[128,128,0],\n        orange:[255,165,0],\n        pink:[255,192,203],\n        purple:[128,0,128],\n        violet:[128,0,128],\n        red:[255,0,0],\n        silver:[192,192,192],\n        white:[255,255,255],\n        yellow:[255,255,0]\n    };\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.axislabels.js",
    "content": "/*\nAxis Labels Plugin for flot.\nhttp://github.com/markrcote/flot-axislabels\nOriginal code is Copyright (c) 2010 Xuan Luo.\nOriginal code was released under the GPLv3 license by Xuan Luo, September 2010.\nOriginal code was rereleased under the MIT license by Xuan Luo, April 2012.\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n(function ($) {\n    var options = {\n      axisLabels: {\n        show: true\n      }\n    };\n\n    function canvasSupported() {\n        return !!document.createElement('canvas').getContext;\n    }\n\n    function canvasTextSupported() {\n        if (!canvasSupported()) {\n            return false;\n        }\n        var dummy_canvas = document.createElement('canvas');\n        var context = dummy_canvas.getContext('2d');\n        return typeof context.fillText == 'function';\n    }\n\n    function css3TransitionSupported() {\n        var div = document.createElement('div');\n        return typeof div.style.MozTransition != 'undefined'    // Gecko\n            || typeof div.style.OTransition != 'undefined'      // Opera\n            || typeof div.style.webkitTransition != 'undefined' // WebKit\n            || typeof div.style.transition != 'undefined';\n    }\n\n\n    function AxisLabel(axisName, position, padding, plot, opts) {\n        this.axisName = axisName;\n        this.position = position;\n        this.padding = padding;\n        this.plot = plot;\n        this.opts = opts;\n        this.width = 0;\n        this.height = 0;\n    }\n\n    AxisLabel.prototype.cleanup = function() {\n    };\n\n\n    CanvasAxisLabel.prototype = new AxisLabel();\n    CanvasAxisLabel.prototype.constructor = CanvasAxisLabel;\n    function CanvasAxisLabel(axisName, position, padding, plot, opts) {\n        AxisLabel.prototype.constructor.call(this, axisName, position, padding,\n                                             plot, opts);\n    }\n\n    CanvasAxisLabel.prototype.calculateSize = function() {\n        if (!this.opts.axisLabelFontSizePixels)\n            this.opts.axisLabelFontSizePixels = 14;\n        if (!this.opts.axisLabelFontFamily)\n            this.opts.axisLabelFontFamily = 'sans-serif';\n\n        var textWidth = this.opts.axisLabelFontSizePixels + this.padding;\n        var textHeight = this.opts.axisLabelFontSizePixels + this.padding;\n        if (this.position == 'left' || this.position == 'right') {\n            this.width = this.opts.axisLabelFontSizePixels + this.padding;\n            this.height = 0;\n        } else {\n            this.width = 0;\n            this.height = this.opts.axisLabelFontSizePixels + this.padding;\n        }\n    };\n\n    CanvasAxisLabel.prototype.draw = function(box) {\n        if (!this.opts.axisLabelColour)\n            this.opts.axisLabelColour = 'black';\n        var ctx = this.plot.getCanvas().getContext('2d');\n        ctx.save();\n        ctx.font = this.opts.axisLabelFontSizePixels + 'px ' +\n            this.opts.axisLabelFontFamily;\n        ctx.fillStyle = this.opts.axisLabelColour;\n        var width = ctx.measureText(this.opts.axisLabel).width;\n        var height = this.opts.axisLabelFontSizePixels;\n        var x, y, angle = 0;\n        if (this.position == 'top') {\n            x = box.left + box.width/2 - width/2;\n            y = box.top + height*0.72;\n        } else if (this.position == 'bottom') {\n            x = box.left + box.width/2 - width/2;\n            y = box.top + box.height - height*0.72;\n        } else if (this.position == 'left') {\n            x = box.left + height*0.72;\n            y = box.height/2 + box.top + width/2;\n            angle = -Math.PI/2;\n        } else if (this.position == 'right') {\n            x = box.left + box.width - height*0.72;\n            y = box.height/2 + box.top - width/2;\n            angle = Math.PI/2;\n        }\n        ctx.translate(x, y);\n        ctx.rotate(angle);\n        ctx.fillText(this.opts.axisLabel, 0, 0);\n        ctx.restore();\n    };\n\n\n    HtmlAxisLabel.prototype = new AxisLabel();\n    HtmlAxisLabel.prototype.constructor = HtmlAxisLabel;\n    function HtmlAxisLabel(axisName, position, padding, plot, opts) {\n        AxisLabel.prototype.constructor.call(this, axisName, position,\n                                             padding, plot, opts);\n        this.elem = null;\n    }\n\n    HtmlAxisLabel.prototype.calculateSize = function() {\n        var elem = $('<div class=\"axisLabels\" style=\"position:absolute;\">' +\n                     this.opts.axisLabel + '</div>');\n        this.plot.getPlaceholder().append(elem);\n        // store height and width of label itself, for use in draw()\n        this.labelWidth = elem.outerWidth(true);\n        this.labelHeight = elem.outerHeight(true);\n        elem.remove();\n\n        this.width = this.height = 0;\n        if (this.position == 'left' || this.position == 'right') {\n            this.width = this.labelWidth + this.padding;\n        } else {\n            this.height = this.labelHeight + this.padding;\n        }\n    };\n\n    HtmlAxisLabel.prototype.cleanup = function() {\n        if (this.elem) {\n            this.elem.remove();\n        }\n    };\n\n    HtmlAxisLabel.prototype.draw = function(box) {\n        this.plot.getPlaceholder().find('#' + this.axisName + 'Label').remove();\n        this.elem = $('<div id=\"' + this.axisName +\n                      'Label\" \" class=\"axisLabels\" style=\"position:absolute;\">'\n                      + this.opts.axisLabel + '</div>');\n        this.plot.getPlaceholder().append(this.elem);\n        if (this.position == 'top') {\n            this.elem.css('left', box.left + box.width/2 - this.labelWidth/2 +\n                          'px');\n            this.elem.css('top', box.top + 'px');\n        } else if (this.position == 'bottom') {\n            this.elem.css('left', box.left + box.width/2 - this.labelWidth/2 +\n                          'px');\n            this.elem.css('top', box.top + box.height - this.labelHeight +\n                          'px');\n        } else if (this.position == 'left') {\n            this.elem.css('top', box.top + box.height/2 - this.labelHeight/2 +\n                          'px');\n            this.elem.css('left', box.left + 'px');\n        } else if (this.position == 'right') {\n            this.elem.css('top', box.top + box.height/2 - this.labelHeight/2 +\n                          'px');\n            this.elem.css('left', box.left + box.width - this.labelWidth +\n                          'px');\n        }\n    };\n\n\n    CssTransformAxisLabel.prototype = new HtmlAxisLabel();\n    CssTransformAxisLabel.prototype.constructor = CssTransformAxisLabel;\n    function CssTransformAxisLabel(axisName, position, padding, plot, opts) {\n        HtmlAxisLabel.prototype.constructor.call(this, axisName, position,\n                                                 padding, plot, opts);\n    }\n\n    CssTransformAxisLabel.prototype.calculateSize = function() {\n        HtmlAxisLabel.prototype.calculateSize.call(this);\n        this.width = this.height = 0;\n        if (this.position == 'left' || this.position == 'right') {\n            this.width = this.labelHeight + this.padding;\n        } else {\n            this.height = this.labelHeight + this.padding;\n        }\n    };\n\n    CssTransformAxisLabel.prototype.transforms = function(degrees, x, y) {\n        var stransforms = {\n            '-moz-transform': '',\n            '-webkit-transform': '',\n            '-o-transform': '',\n            '-ms-transform': ''\n        };\n        if (x != 0 || y != 0) {\n            var stdTranslate = ' translate(' + x + 'px, ' + y + 'px)';\n            stransforms['-moz-transform'] += stdTranslate;\n            stransforms['-webkit-transform'] += stdTranslate;\n            stransforms['-o-transform'] += stdTranslate;\n            stransforms['-ms-transform'] += stdTranslate;\n        }\n        if (degrees != 0) {\n            var rotation = degrees / 90;\n            var stdRotate = ' rotate(' + degrees + 'deg)';\n            stransforms['-moz-transform'] += stdRotate;\n            stransforms['-webkit-transform'] += stdRotate;\n            stransforms['-o-transform'] += stdRotate;\n            stransforms['-ms-transform'] += stdRotate;\n        }\n        var s = 'top: 0; left: 0; ';\n        for (var prop in stransforms) {\n            if (stransforms[prop]) {\n                s += prop + ':' + stransforms[prop] + ';';\n            }\n        }\n        s += ';';\n        return s;\n    };\n\n    CssTransformAxisLabel.prototype.calculateOffsets = function(box) {\n        var offsets = { x: 0, y: 0, degrees: 0 };\n        if (this.position == 'bottom') {\n            offsets.x = box.left + box.width/2 - this.labelWidth/2;\n            offsets.y = box.top + box.height - this.labelHeight;\n        } else if (this.position == 'top') {\n            offsets.x = box.left + box.width/2 - this.labelWidth/2;\n            offsets.y = box.top;\n        } else if (this.position == 'left') {\n            offsets.degrees = -90;\n            offsets.x = box.left - this.labelWidth/2 + this.labelHeight/2;\n            offsets.y = box.height/2 + box.top;\n        } else if (this.position == 'right') {\n            offsets.degrees = 90;\n            offsets.x = box.left + box.width - this.labelWidth/2\n                        - this.labelHeight/2;\n            offsets.y = box.height/2 + box.top;\n        }\n        offsets.x = Math.round(offsets.x);\n        offsets.y = Math.round(offsets.y);\n\n        return offsets;\n    };\n\n    CssTransformAxisLabel.prototype.draw = function(box) {\n        this.plot.getPlaceholder().find(\".\" + this.axisName + \"Label\").remove();\n        var offsets = this.calculateOffsets(box);\n        this.elem = $('<div class=\"axisLabels ' + this.axisName +\n                      'Label\" style=\"position:absolute; ' +\n                      this.transforms(offsets.degrees, offsets.x, offsets.y) +\n                      '\">' + this.opts.axisLabel + '</div>');\n        this.plot.getPlaceholder().append(this.elem);\n    };\n\n\n    IeTransformAxisLabel.prototype = new CssTransformAxisLabel();\n    IeTransformAxisLabel.prototype.constructor = IeTransformAxisLabel;\n    function IeTransformAxisLabel(axisName, position, padding, plot, opts) {\n        CssTransformAxisLabel.prototype.constructor.call(this, axisName,\n                                                         position, padding,\n                                                         plot, opts);\n        this.requiresResize = false;\n    }\n\n    IeTransformAxisLabel.prototype.transforms = function(degrees, x, y) {\n        // I didn't feel like learning the crazy Matrix stuff, so this uses\n        // a combination of the rotation transform and CSS positioning.\n        var s = '';\n        if (degrees != 0) {\n            var rotation = degrees/90;\n            while (rotation < 0) {\n                rotation += 4;\n            }\n            s += ' filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=' + rotation + '); ';\n            // see below\n            this.requiresResize = (this.position == 'right');\n        }\n        if (x != 0) {\n            s += 'left: ' + x + 'px; ';\n        }\n        if (y != 0) {\n            s += 'top: ' + y + 'px; ';\n        }\n        return s;\n    };\n\n    IeTransformAxisLabel.prototype.calculateOffsets = function(box) {\n        var offsets = CssTransformAxisLabel.prototype.calculateOffsets.call(\n                          this, box);\n        // adjust some values to take into account differences between\n        // CSS and IE rotations.\n        if (this.position == 'top') {\n            // FIXME: not sure why, but placing this exactly at the top causes\n            // the top axis label to flip to the bottom...\n            offsets.y = box.top + 1;\n        } else if (this.position == 'left') {\n            offsets.x = box.left;\n            offsets.y = box.height/2 + box.top - this.labelWidth/2;\n        } else if (this.position == 'right') {\n            offsets.x = box.left + box.width - this.labelHeight;\n            offsets.y = box.height/2 + box.top - this.labelWidth/2;\n        }\n        return offsets;\n    };\n\n    IeTransformAxisLabel.prototype.draw = function(box) {\n        CssTransformAxisLabel.prototype.draw.call(this, box);\n        if (this.requiresResize) {\n            this.elem = this.plot.getPlaceholder().find(\".\" + this.axisName +\n                                                        \"Label\");\n            // Since we used CSS positioning instead of transforms for\n            // translating the element, and since the positioning is done\n            // before any rotations, we have to reset the width and height\n            // in case the browser wrapped the text (specifically for the\n            // y2axis).\n            this.elem.css('width', this.labelWidth);\n            this.elem.css('height', this.labelHeight);\n        }\n    };\n\n\n    function init(plot) {\n        plot.hooks.processOptions.push(function (plot, options) {\n\n            if (!options.axisLabels.show)\n                return;\n\n            // This is kind of a hack. There are no hooks in Flot between\n            // the creation and measuring of the ticks (setTicks, measureTickLabels\n            // in setupGrid() ) and the drawing of the ticks and plot box\n            // (insertAxisLabels in setupGrid() ).\n            //\n            // Therefore, we use a trick where we run the draw routine twice:\n            // the first time to get the tick measurements, so that we can change\n            // them, and then have it draw it again.\n            var secondPass = false;\n\n            var axisLabels = {};\n            var axisOffsetCounts = { left: 0, right: 0, top: 0, bottom: 0 };\n\n            var defaultPadding = 2;  // padding between axis and tick labels\n            plot.hooks.draw.push(function (plot, ctx) {\n                var hasAxisLabels = false;\n                if (!secondPass) {\n                    // MEASURE AND SET OPTIONS\n                    $.each(plot.getAxes(), function(axisName, axis) {\n                        var opts = axis.options // Flot 0.7\n                            || plot.getOptions()[axisName]; // Flot 0.6\n\n                        // Handle redraws initiated outside of this plug-in.\n                        if (axisName in axisLabels) {\n                            axis.labelHeight = axis.labelHeight -\n                                axisLabels[axisName].height;\n                            axis.labelWidth = axis.labelWidth -\n                                axisLabels[axisName].width;\n                            opts.labelHeight = axis.labelHeight;\n                            opts.labelWidth = axis.labelWidth;\n                            axisLabels[axisName].cleanup();\n                            delete axisLabels[axisName];\n                        }\n\n                        if (!opts || !opts.axisLabel || !axis.show)\n                            return;\n\n                        hasAxisLabels = true;\n                        var renderer = null;\n\n                        if (!opts.axisLabelUseHtml &&\n                            navigator.appName == 'Microsoft Internet Explorer') {\n                            var ua = navigator.userAgent;\n                            var re  = new RegExp(\"MSIE ([0-9]{1,}[\\.0-9]{0,})\");\n                            if (re.exec(ua) != null) {\n                                rv = parseFloat(RegExp.$1);\n                            }\n                            if (rv >= 9 && !opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) {\n                                renderer = CssTransformAxisLabel;\n                            } else if (!opts.axisLabelUseCanvas && !opts.axisLabelUseHtml) {\n                                renderer = IeTransformAxisLabel;\n                            } else if (opts.axisLabelUseCanvas) {\n                                renderer = CanvasAxisLabel;\n                            } else {\n                                renderer = HtmlAxisLabel;\n                            }\n                        } else {\n                            if (opts.axisLabelUseHtml || (!css3TransitionSupported() && !canvasTextSupported()) && !opts.axisLabelUseCanvas) {\n                                renderer = HtmlAxisLabel;\n                            } else if (opts.axisLabelUseCanvas || !css3TransitionSupported()) {\n                                renderer = CanvasAxisLabel;\n                            } else {\n                                renderer = CssTransformAxisLabel;\n                            }\n                        }\n\n                        var padding = opts.axisLabelPadding === undefined ?\n                                      defaultPadding : opts.axisLabelPadding;\n\n                        axisLabels[axisName] = new renderer(axisName,\n                                                            axis.position, padding,\n                                                            plot, opts);\n\n                        // flot interprets axis.labelHeight and .labelWidth as\n                        // the height and width of the tick labels. We increase\n                        // these values to make room for the axis label and\n                        // padding.\n\n                        axisLabels[axisName].calculateSize();\n\n                        // AxisLabel.height and .width are the size of the\n                        // axis label and padding.\n                        // Just set opts here because axis will be sorted out on\n                        // the redraw.\n\n                        opts.labelHeight = axis.labelHeight +\n                            axisLabels[axisName].height;\n                        opts.labelWidth = axis.labelWidth +\n                            axisLabels[axisName].width;\n                    });\n\n                    // If there are axis labels, re-draw with new label widths and\n                    // heights.\n\n                    if (hasAxisLabels) {\n                        secondPass = true;\n                        plot.setupGrid();\n                        plot.draw();\n                    }\n                } else {\n                    secondPass = false;\n                    // DRAW\n                    $.each(plot.getAxes(), function(axisName, axis) {\n                        var opts = axis.options // Flot 0.7\n                            || plot.getOptions()[axisName]; // Flot 0.6\n                        if (!opts || !opts.axisLabel || !axis.show)\n                            return;\n\n                        axisLabels[axisName].draw(axis.box);\n                    });\n                }\n            });\n        });\n    }\n\n\n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'axisLabels',\n        version: '2.0'\n    });\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.canvas.js",
    "content": "/* Flot plugin for drawing all elements of a plot on the canvas.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nFlot normally produces certain elements, like axis labels and the legend, using\nHTML elements. This permits greater interactivity and customization, and often\nlooks better, due to cross-browser canvas text inconsistencies and limitations.\n\nIt can also be desirable to render the plot entirely in canvas, particularly\nif the goal is to save it as an image, or if Flot is being used in a context\nwhere the HTML DOM does not exist, as is the case within Node.js. This plugin\nswitches out Flot's standard drawing operations for canvas-only replacements.\n\nCurrently the plugin supports only axis labels, but it will eventually allow\nevery element of the plot to be rendered directly to canvas.\n\nThe plugin supports these options:\n\n{\n    canvas: boolean\n}\n\nThe \"canvas\" option controls whether full canvas drawing is enabled, making it\npossible to toggle on and off. This is useful when a plot uses HTML text in the\nbrowser, but needs to redraw with canvas text when exporting as an image.\n\n*/\n\n(function($) {\n\n\tvar options = {\n\t\tcanvas: true\n\t};\n\n\tvar render, getTextInfo, addText;\n\n\t// Cache the prototype hasOwnProperty for faster access\n\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\tfunction init(plot, classes) {\n\n\t\tvar Canvas = classes.Canvas;\n\n\t\t// We only want to replace the functions once; the second time around\n\t\t// we would just get our new function back.  This whole replacing of\n\t\t// prototype functions is a disaster, and needs to be changed ASAP.\n\n\t\tif (render == null) {\n\t\t\tgetTextInfo = Canvas.prototype.getTextInfo,\n\t\t\taddText = Canvas.prototype.addText,\n\t\t\trender = Canvas.prototype.render;\n\t\t}\n\n\t\t// Finishes rendering the canvas, including overlaid text\n\n\t\tCanvas.prototype.render = function() {\n\n\t\t\tif (!plot.getOptions().canvas) {\n\t\t\t\treturn render.call(this);\n\t\t\t}\n\n\t\t\tvar context = this.context,\n\t\t\t\tcache = this._textCache;\n\n\t\t\t// For each text layer, render elements marked as active\n\n\t\t\tcontext.save();\n\t\t\tcontext.textBaseline = \"middle\";\n\n\t\t\tfor (var layerKey in cache) {\n\t\t\t\tif (hasOwnProperty.call(cache, layerKey)) {\n\t\t\t\t\tvar layerCache = cache[layerKey];\n\t\t\t\t\tfor (var styleKey in layerCache) {\n\t\t\t\t\t\tif (hasOwnProperty.call(layerCache, styleKey)) {\n\t\t\t\t\t\t\tvar styleCache = layerCache[styleKey],\n\t\t\t\t\t\t\t\tupdateStyles = true;\n\t\t\t\t\t\t\tfor (var key in styleCache) {\n\t\t\t\t\t\t\t\tif (hasOwnProperty.call(styleCache, key)) {\n\n\t\t\t\t\t\t\t\t\tvar info = styleCache[key],\n\t\t\t\t\t\t\t\t\t\tpositions = info.positions,\n\t\t\t\t\t\t\t\t\t\tlines = info.lines;\n\n\t\t\t\t\t\t\t\t\t// Since every element at this level of the cache have the\n\t\t\t\t\t\t\t\t\t// same font and fill styles, we can just change them once\n\t\t\t\t\t\t\t\t\t// using the values from the first element.\n\n\t\t\t\t\t\t\t\t\tif (updateStyles) {\n\t\t\t\t\t\t\t\t\t\tcontext.fillStyle = info.font.color;\n\t\t\t\t\t\t\t\t\t\tcontext.font = info.font.definition;\n\t\t\t\t\t\t\t\t\t\tupdateStyles = false;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tfor (var i = 0, position; position = positions[i]; i++) {\n\t\t\t\t\t\t\t\t\t\tif (position.active) {\n\t\t\t\t\t\t\t\t\t\t\tfor (var j = 0, line; line = position.lines[j]; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontext.fillText(lines[j].text, line[0], line[1]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tpositions.splice(i--, 1);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (positions.length == 0) {\n\t\t\t\t\t\t\t\t\t\tdelete styleCache[key];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontext.restore();\n\t\t};\n\n\t\t// Creates (if necessary) and returns a text info object.\n\t\t//\n\t\t// When the canvas option is set, the object looks like this:\n\t\t//\n\t\t// {\n\t\t//     width: Width of the text's bounding box.\n\t\t//     height: Height of the text's bounding box.\n\t\t//     positions: Array of positions at which this text is drawn.\n\t\t//     lines: [{\n\t\t//         height: Height of this line.\n\t\t//         widths: Width of this line.\n\t\t//         text: Text on this line.\n\t\t//     }],\n\t\t//     font: {\n\t\t//         definition: Canvas font property string.\n\t\t//         color: Color of the text.\n\t\t//     },\n\t\t// }\n\t\t//\n\t\t// The positions array contains objects that look like this:\n\t\t//\n\t\t// {\n\t\t//     active: Flag indicating whether the text should be visible.\n\t\t//     lines: Array of [x, y] coordinates at which to draw the line.\n\t\t//     x: X coordinate at which to draw the text.\n\t\t//     y: Y coordinate at which to draw the text.\n\t\t// }\n\n\t\tCanvas.prototype.getTextInfo = function(layer, text, font, angle, width) {\n\n\t\t\tif (!plot.getOptions().canvas) {\n\t\t\t\treturn getTextInfo.call(this, layer, text, font, angle, width);\n\t\t\t}\n\n\t\t\tvar textStyle, layerCache, styleCache, info;\n\n\t\t\t// Cast the value to a string, in case we were given a number\n\n\t\t\ttext = \"\" + text;\n\n\t\t\t// If the font is a font-spec object, generate a CSS definition\n\n\t\t\tif (typeof font === \"object\") {\n\t\t\t\ttextStyle = font.style + \" \" + font.variant + \" \" + font.weight + \" \" + font.size + \"px \" + font.family;\n\t\t\t} else {\n\t\t\t\ttextStyle = font;\n\t\t\t}\n\n\t\t\t// Retrieve (or create) the cache for the text's layer and styles\n\n\t\t\tlayerCache = this._textCache[layer];\n\n\t\t\tif (layerCache == null) {\n\t\t\t\tlayerCache = this._textCache[layer] = {};\n\t\t\t}\n\n\t\t\tstyleCache = layerCache[textStyle];\n\n\t\t\tif (styleCache == null) {\n\t\t\t\tstyleCache = layerCache[textStyle] = {};\n\t\t\t}\n\n\t\t\tinfo = styleCache[text];\n\n\t\t\tif (info == null) {\n\n\t\t\t\tvar context = this.context;\n\n\t\t\t\t// If the font was provided as CSS, create a div with those\n\t\t\t\t// classes and examine it to generate a canvas font spec.\n\n\t\t\t\tif (typeof font !== \"object\") {\n\n\t\t\t\t\tvar element = $(\"<div>&nbsp;</div>\")\n\t\t\t\t\t\t.css(\"position\", \"absolute\")\n\t\t\t\t\t\t.addClass(typeof font === \"string\" ? font : null)\n\t\t\t\t\t\t.appendTo(this.getTextLayer(layer));\n\n\t\t\t\t\tfont = {\n\t\t\t\t\t\tlineHeight: element.height(),\n\t\t\t\t\t\tstyle: element.css(\"font-style\"),\n\t\t\t\t\t\tvariant: element.css(\"font-variant\"),\n\t\t\t\t\t\tweight: element.css(\"font-weight\"),\n\t\t\t\t\t\tfamily: element.css(\"font-family\"),\n\t\t\t\t\t\tcolor: element.css(\"color\")\n\t\t\t\t\t};\n\n\t\t\t\t\t// Setting line-height to 1, without units, sets it equal\n\t\t\t\t\t// to the font-size, even if the font-size is abstract,\n\t\t\t\t\t// like 'smaller'.  This enables us to read the real size\n\t\t\t\t\t// via the element's height, working around browsers that\n\t\t\t\t\t// return the literal 'smaller' value.\n\n\t\t\t\t\tfont.size = element.css(\"line-height\", 1).height();\n\n\t\t\t\t\telement.remove();\n\t\t\t\t}\n\n\t\t\t\ttextStyle = font.style + \" \" + font.variant + \" \" + font.weight + \" \" + font.size + \"px \" + font.family;\n\n\t\t\t\t// Create a new info object, initializing the dimensions to\n\t\t\t\t// zero so we can count them up line-by-line.\n\n\t\t\t\tinfo = styleCache[text] = {\n\t\t\t\t\twidth: 0,\n\t\t\t\t\theight: 0,\n\t\t\t\t\tpositions: [],\n\t\t\t\t\tlines: [],\n\t\t\t\t\tfont: {\n\t\t\t\t\t\tdefinition: textStyle,\n\t\t\t\t\t\tcolor: font.color\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tcontext.save();\n\t\t\t\tcontext.font = textStyle;\n\n\t\t\t\t// Canvas can't handle multi-line strings; break on various\n\t\t\t\t// newlines, including HTML brs, to build a list of lines.\n\t\t\t\t// Note that we could split directly on regexps, but IE < 9 is\n\t\t\t\t// broken; revisit when we drop IE 7/8 support.\n\n\t\t\t\tvar lines = (text + \"\").replace(/<br ?\\/?>|\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n\n\t\t\t\tfor (var i = 0; i < lines.length; ++i) {\n\n\t\t\t\t\tvar lineText = lines[i],\n\t\t\t\t\t\tmeasured = context.measureText(lineText);\n\n\t\t\t\t\tinfo.width = Math.max(measured.width, info.width);\n\t\t\t\t\tinfo.height += font.lineHeight;\n\n\t\t\t\t\tinfo.lines.push({\n\t\t\t\t\t\ttext: lineText,\n\t\t\t\t\t\twidth: measured.width,\n\t\t\t\t\t\theight: font.lineHeight\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tcontext.restore();\n\t\t\t}\n\n\t\t\treturn info;\n\t\t};\n\n\t\t// Adds a text string to the canvas text overlay.\n\n\t\tCanvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) {\n\n\t\t\tif (!plot.getOptions().canvas) {\n\t\t\t\treturn addText.call(this, layer, x, y, text, font, angle, width, halign, valign);\n\t\t\t}\n\n\t\t\tvar info = this.getTextInfo(layer, text, font, angle, width),\n\t\t\t\tpositions = info.positions,\n\t\t\t\tlines = info.lines;\n\n\t\t\t// Text is drawn with baseline 'middle', which we need to account\n\t\t\t// for by adding half a line's height to the y position.\n\n\t\t\ty += info.height / lines.length / 2;\n\n\t\t\t// Tweak the initial y-position to match vertical alignment\n\n\t\t\tif (valign == \"middle\") {\n\t\t\t\ty = Math.round(y - info.height / 2);\n\t\t\t} else if (valign == \"bottom\") {\n\t\t\t\ty = Math.round(y - info.height);\n\t\t\t} else {\n\t\t\t\ty = Math.round(y);\n\t\t\t}\n\n\t\t\t// FIXME: LEGACY BROWSER FIX\n\t\t\t// AFFECTS: Opera < 12.00\n\n\t\t\t// Offset the y coordinate, since Opera is off pretty\n\t\t\t// consistently compared to the other browsers.\n\n\t\t\tif (!!(window.opera && window.opera.version().split(\".\")[0] < 12)) {\n\t\t\t\ty -= 2;\n\t\t\t}\n\n\t\t\t// Determine whether this text already exists at this position.\n\t\t\t// If so, mark it for inclusion in the next render pass.\n\n\t\t\tfor (var i = 0, position; position = positions[i]; i++) {\n\t\t\t\tif (position.x == x && position.y == y) {\n\t\t\t\t\tposition.active = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the text doesn't exist at this position, create a new entry\n\n\t\t\tposition = {\n\t\t\t\tactive: true,\n\t\t\t\tlines: [],\n\t\t\t\tx: x,\n\t\t\t\ty: y\n\t\t\t};\n\n\t\t\tpositions.push(position);\n\n\t\t\t// Fill in the x & y positions of each line, adjusting them\n\t\t\t// individually for horizontal alignment.\n\n\t\t\tfor (var i = 0, line; line = lines[i]; i++) {\n\t\t\t\tif (halign == \"center\") {\n\t\t\t\t\tposition.lines.push([Math.round(x - line.width / 2), y]);\n\t\t\t\t} else if (halign == \"right\") {\n\t\t\t\t\tposition.lines.push([Math.round(x - line.width), y]);\n\t\t\t\t} else {\n\t\t\t\t\tposition.lines.push([Math.round(x), y]);\n\t\t\t\t}\n\t\t\t\ty += line.height;\n\t\t\t}\n\t\t};\n\t}\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: \"canvas\",\n\t\tversion: \"1.0\"\n\t});\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.crosshair.js",
    "content": "/* Flot plugin for showing crosshairs when the mouse hovers over the plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\n\tcrosshair: {\n\t\tmode: null or \"x\" or \"y\" or \"xy\"\n\t\tcolor: color\n\t\tlineWidth: number\n\t}\n\nSet the mode to one of \"x\", \"y\" or \"xy\". The \"x\" mode enables a vertical\ncrosshair that lets you trace the values on the x axis, \"y\" enables a\nhorizontal crosshair and \"xy\" enables them both. \"color\" is the color of the\ncrosshair (default is \"rgba(170, 0, 0, 0.80)\"), \"lineWidth\" is the width of\nthe drawn lines (default is 1).\n\nThe plugin also adds four public methods:\n\n  - setCrosshair( pos )\n\n    Set the position of the crosshair. Note that this is cleared if the user\n    moves the mouse. \"pos\" is in coordinates of the plot and should be on the\n    form { x: xpos, y: ypos } (you can use x2/x3/... if you're using multiple\n    axes), which is coincidentally the same format as what you get from a\n    \"plothover\" event. If \"pos\" is null, the crosshair is cleared.\n\n  - clearCrosshair()\n\n    Clear the crosshair.\n\n  - lockCrosshair(pos)\n\n    Cause the crosshair to lock to the current location, no longer updating if\n    the user moves the mouse. Optionally supply a position (passed on to\n    setCrosshair()) to move it to.\n\n    Example usage:\n\n\tvar myFlot = $.plot( $(\"#graph\"), ..., { crosshair: { mode: \"x\" } } };\n\t$(\"#graph\").bind( \"plothover\", function ( evt, position, item ) {\n\t\tif ( item ) {\n\t\t\t// Lock the crosshair to the data point being hovered\n\t\t\tmyFlot.lockCrosshair({\n\t\t\t\tx: item.datapoint[ 0 ],\n\t\t\t\ty: item.datapoint[ 1 ]\n\t\t\t});\n\t\t} else {\n\t\t\t// Return normal crosshair operation\n\t\t\tmyFlot.unlockCrosshair();\n\t\t}\n\t});\n\n  - unlockCrosshair()\n\n    Free the crosshair to move again after locking it.\n*/\n\n(function ($) {\n    var options = {\n        crosshair: {\n            mode: null, // one of null, \"x\", \"y\" or \"xy\",\n            color: \"rgba(170, 0, 0, 0.80)\",\n            lineWidth: 1\n        }\n    };\n    \n    function init(plot) {\n        // position of crosshair in pixels\n        var crosshair = { x: -1, y: -1, locked: false };\n\n        plot.setCrosshair = function setCrosshair(pos) {\n            if (!pos)\n                crosshair.x = -1;\n            else {\n                var o = plot.p2c(pos);\n                crosshair.x = Math.max(0, Math.min(o.left, plot.width()));\n                crosshair.y = Math.max(0, Math.min(o.top, plot.height()));\n            }\n            \n            plot.triggerRedrawOverlay();\n        };\n        \n        plot.clearCrosshair = plot.setCrosshair; // passes null for pos\n        \n        plot.lockCrosshair = function lockCrosshair(pos) {\n            if (pos)\n                plot.setCrosshair(pos);\n            crosshair.locked = true;\n        };\n\n        plot.unlockCrosshair = function unlockCrosshair() {\n            crosshair.locked = false;\n        };\n\n        function onMouseOut(e) {\n            if (crosshair.locked)\n                return;\n\n            if (crosshair.x != -1) {\n                crosshair.x = -1;\n                plot.triggerRedrawOverlay();\n            }\n        }\n\n        function onMouseMove(e) {\n            if (crosshair.locked)\n                return;\n                \n            if (plot.getSelection && plot.getSelection()) {\n                crosshair.x = -1; // hide the crosshair while selecting\n                return;\n            }\n                \n            var offset = plot.offset();\n            crosshair.x = Math.max(0, Math.min(e.pageX - offset.left, plot.width()));\n            crosshair.y = Math.max(0, Math.min(e.pageY - offset.top, plot.height()));\n            plot.triggerRedrawOverlay();\n        }\n        \n        plot.hooks.bindEvents.push(function (plot, eventHolder) {\n            if (!plot.getOptions().crosshair.mode)\n                return;\n\n            eventHolder.mouseout(onMouseOut);\n            eventHolder.mousemove(onMouseMove);\n        });\n\n        plot.hooks.drawOverlay.push(function (plot, ctx) {\n            var c = plot.getOptions().crosshair;\n            if (!c.mode)\n                return;\n\n            var plotOffset = plot.getPlotOffset();\n            \n            ctx.save();\n            ctx.translate(plotOffset.left, plotOffset.top);\n\n            if (crosshair.x != -1) {\n                var adj = plot.getOptions().crosshair.lineWidth % 2 ? 0.5 : 0;\n\n                ctx.strokeStyle = c.color;\n                ctx.lineWidth = c.lineWidth;\n                ctx.lineJoin = \"round\";\n\n                ctx.beginPath();\n                if (c.mode.indexOf(\"x\") != -1) {\n                    var drawX = Math.floor(crosshair.x) + adj;\n                    ctx.moveTo(drawX, 0);\n                    ctx.lineTo(drawX, plot.height());\n                }\n                if (c.mode.indexOf(\"y\") != -1) {\n                    var drawY = Math.floor(crosshair.y) + adj;\n                    ctx.moveTo(0, drawY);\n                    ctx.lineTo(plot.width(), drawY);\n                }\n                ctx.stroke();\n            }\n            ctx.restore();\n        });\n\n        plot.hooks.shutdown.push(function (plot, eventHolder) {\n            eventHolder.unbind(\"mouseout\", onMouseOut);\n            eventHolder.unbind(\"mousemove\", onMouseMove);\n        });\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'crosshair',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.errorbars.js",
    "content": "/* Flot plugin for plotting error bars.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nError bars are used to show standard deviation and other statistical\nproperties in a plot.\n\n* Created by Rui Pereira  -  rui (dot) pereira (at) gmail (dot) com\n\nThis plugin allows you to plot error-bars over points. Set \"errorbars\" inside\nthe points series to the axis name over which there will be error values in\nyour data array (*even* if you do not intend to plot them later, by setting\n\"show: null\" on xerr/yerr).\n\nThe plugin supports these options:\n\n\tseries: {\n\t\tpoints: {\n\t\t\terrorbars: \"x\" or \"y\" or \"xy\",\n\t\t\txerr: {\n\t\t\t\tshow: null/false or true,\n\t\t\t\tasymmetric: null/false or true,\n\t\t\t\tupperCap: null or \"-\" or function,\n\t\t\t\tlowerCap: null or \"-\" or function,\n\t\t\t\tcolor: null or color,\n\t\t\t\tradius: null or number\n\t\t\t},\n\t\t\tyerr: { same options as xerr }\n\t\t}\n\t}\n\nEach data point array is expected to be of the type:\n\n\t\"x\"  [ x, y, xerr ]\n\t\"y\"  [ x, y, yerr ]\n\t\"xy\" [ x, y, xerr, yerr ]\n\nWhere xerr becomes xerr_lower,xerr_upper for the asymmetric error case, and\nequivalently for yerr. Eg., a datapoint for the \"xy\" case with symmetric\nerror-bars on X and asymmetric on Y would be:\n\n\t[ x, y, xerr, yerr_lower, yerr_upper ]\n\nBy default no end caps are drawn. Setting upperCap and/or lowerCap to \"-\" will\ndraw a small cap perpendicular to the error bar. They can also be set to a\nuser-defined drawing function, with (ctx, x, y, radius) as parameters, as eg.\n\n\tfunction drawSemiCircle( ctx, x, y, radius ) {\n\t\tctx.beginPath();\n\t\tctx.arc( x, y, radius, 0, Math.PI, false );\n\t\tctx.moveTo( x - radius, y );\n\t\tctx.lineTo( x + radius, y );\n\t\tctx.stroke();\n\t}\n\nColor and radius both default to the same ones of the points series if not\nset. The independent radius parameter on xerr/yerr is useful for the case when\nwe may want to add error-bars to a line, without showing the interconnecting\npoints (with radius: 0), and still showing end caps on the error-bars.\nshadowSize and lineWidth are derived as well from the points series.\n\n*/\n\n(function ($) {\n    var options = {\n        series: {\n            points: {\n                errorbars: null, //should be 'x', 'y' or 'xy'\n                xerr: { err: 'x', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null},\n                yerr: { err: 'y', show: null, asymmetric: null, upperCap: null, lowerCap: null, color: null, radius: null}\n            }\n        }\n    };\n\n    function processRawData(plot, series, data, datapoints){\n        if (!series.points.errorbars)\n            return;\n\n        // x,y values\n        var format = [\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true }\n        ];\n\n        var errors = series.points.errorbars;\n        // error bars - first X then Y\n        if (errors == 'x' || errors == 'xy') {\n            // lower / upper error\n            if (series.points.xerr.asymmetric) {\n                format.push({ x: true, number: true, required: true });\n                format.push({ x: true, number: true, required: true });\n            } else\n                format.push({ x: true, number: true, required: true });\n        }\n        if (errors == 'y' || errors == 'xy') {\n            // lower / upper error\n            if (series.points.yerr.asymmetric) {\n                format.push({ y: true, number: true, required: true });\n                format.push({ y: true, number: true, required: true });\n            } else\n                format.push({ y: true, number: true, required: true });\n        }\n        datapoints.format = format;\n    }\n\n    function parseErrors(series, i){\n\n        var points = series.datapoints.points;\n\n        // read errors from points array\n        var exl = null,\n                exu = null,\n                eyl = null,\n                eyu = null;\n        var xerr = series.points.xerr,\n                yerr = series.points.yerr;\n\n        var eb = series.points.errorbars;\n        // error bars - first X\n        if (eb == 'x' || eb == 'xy') {\n            if (xerr.asymmetric) {\n                exl = points[i + 2];\n                exu = points[i + 3];\n                if (eb == 'xy')\n                    if (yerr.asymmetric){\n                        eyl = points[i + 4];\n                        eyu = points[i + 5];\n                    } else eyl = points[i + 4];\n            } else {\n                exl = points[i + 2];\n                if (eb == 'xy')\n                    if (yerr.asymmetric) {\n                        eyl = points[i + 3];\n                        eyu = points[i + 4];\n                    } else eyl = points[i + 3];\n            }\n        // only Y\n        } else if (eb == 'y')\n            if (yerr.asymmetric) {\n                eyl = points[i + 2];\n                eyu = points[i + 3];\n            } else eyl = points[i + 2];\n\n        // symmetric errors?\n        if (exu == null) exu = exl;\n        if (eyu == null) eyu = eyl;\n\n        var errRanges = [exl, exu, eyl, eyu];\n        // nullify if not showing\n        if (!xerr.show){\n            errRanges[0] = null;\n            errRanges[1] = null;\n        }\n        if (!yerr.show){\n            errRanges[2] = null;\n            errRanges[3] = null;\n        }\n        return errRanges;\n    }\n\n    function drawSeriesErrors(plot, ctx, s){\n\n        var points = s.datapoints.points,\n                ps = s.datapoints.pointsize,\n                ax = [s.xaxis, s.yaxis],\n                radius = s.points.radius,\n                err = [s.points.xerr, s.points.yerr];\n\n        //sanity check, in case some inverted axis hack is applied to flot\n        var invertX = false;\n        if (ax[0].p2c(ax[0].max) < ax[0].p2c(ax[0].min)) {\n            invertX = true;\n            var tmp = err[0].lowerCap;\n            err[0].lowerCap = err[0].upperCap;\n            err[0].upperCap = tmp;\n        }\n\n        var invertY = false;\n        if (ax[1].p2c(ax[1].min) < ax[1].p2c(ax[1].max)) {\n            invertY = true;\n            var tmp = err[1].lowerCap;\n            err[1].lowerCap = err[1].upperCap;\n            err[1].upperCap = tmp;\n        }\n\n        for (var i = 0; i < s.datapoints.points.length; i += ps) {\n\n            //parse\n            var errRanges = parseErrors(s, i);\n\n            //cycle xerr & yerr\n            for (var e = 0; e < err.length; e++){\n\n                var minmax = [ax[e].min, ax[e].max];\n\n                //draw this error?\n                if (errRanges[e * err.length]){\n\n                    //data coordinates\n                    var x = points[i],\n                        y = points[i + 1];\n\n                    //errorbar ranges\n                    var upper = [x, y][e] + errRanges[e * err.length + 1],\n                        lower = [x, y][e] - errRanges[e * err.length];\n\n                    //points outside of the canvas\n                    if (err[e].err == 'x')\n                        if (y > ax[1].max || y < ax[1].min || upper < ax[0].min || lower > ax[0].max)\n                            continue;\n                    if (err[e].err == 'y')\n                        if (x > ax[0].max || x < ax[0].min || upper < ax[1].min || lower > ax[1].max)\n                            continue;\n\n                    // prevent errorbars getting out of the canvas\n                    var drawUpper = true,\n                        drawLower = true;\n\n                    if (upper > minmax[1]) {\n                        drawUpper = false;\n                        upper = minmax[1];\n                    }\n                    if (lower < minmax[0]) {\n                        drawLower = false;\n                        lower = minmax[0];\n                    }\n\n                    //sanity check, in case some inverted axis hack is applied to flot\n                    if ((err[e].err == 'x' && invertX) || (err[e].err == 'y' && invertY)) {\n                        //swap coordinates\n                        var tmp = lower;\n                        lower = upper;\n                        upper = tmp;\n                        tmp = drawLower;\n                        drawLower = drawUpper;\n                        drawUpper = tmp;\n                        tmp = minmax[0];\n                        minmax[0] = minmax[1];\n                        minmax[1] = tmp;\n                    }\n\n                    // convert to pixels\n                    x = ax[0].p2c(x),\n                        y = ax[1].p2c(y),\n                        upper = ax[e].p2c(upper);\n                    lower = ax[e].p2c(lower);\n                    minmax[0] = ax[e].p2c(minmax[0]);\n                    minmax[1] = ax[e].p2c(minmax[1]);\n\n                    //same style as points by default\n                    var lw = err[e].lineWidth ? err[e].lineWidth : s.points.lineWidth,\n                        sw = s.points.shadowSize != null ? s.points.shadowSize : s.shadowSize;\n\n                    //shadow as for points\n                    if (lw > 0 && sw > 0) {\n                        var w = sw / 2;\n                        ctx.lineWidth = w;\n                        ctx.strokeStyle = \"rgba(0,0,0,0.1)\";\n                        drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w + w/2, minmax);\n\n                        ctx.strokeStyle = \"rgba(0,0,0,0.2)\";\n                        drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, w/2, minmax);\n                    }\n\n                    ctx.strokeStyle = err[e].color? err[e].color: s.color;\n                    ctx.lineWidth = lw;\n                    //draw it\n                    drawError(ctx, err[e], x, y, upper, lower, drawUpper, drawLower, radius, 0, minmax);\n                }\n            }\n        }\n    }\n\n    function drawError(ctx,err,x,y,upper,lower,drawUpper,drawLower,radius,offset,minmax){\n\n        //shadow offset\n        y += offset;\n        upper += offset;\n        lower += offset;\n\n        // error bar - avoid plotting over circles\n        if (err.err == 'x'){\n            if (upper > x + radius) drawPath(ctx, [[upper,y],[Math.max(x + radius,minmax[0]),y]]);\n            else drawUpper = false;\n            if (lower < x - radius) drawPath(ctx, [[Math.min(x - radius,minmax[1]),y],[lower,y]] );\n            else drawLower = false;\n        }\n        else {\n            if (upper < y - radius) drawPath(ctx, [[x,upper],[x,Math.min(y - radius,minmax[0])]] );\n            else drawUpper = false;\n            if (lower > y + radius) drawPath(ctx, [[x,Math.max(y + radius,minmax[1])],[x,lower]] );\n            else drawLower = false;\n        }\n\n        //internal radius value in errorbar, allows to plot radius 0 points and still keep proper sized caps\n        //this is a way to get errorbars on lines without visible connecting dots\n        radius = err.radius != null? err.radius: radius;\n\n        // upper cap\n        if (drawUpper) {\n            if (err.upperCap == '-'){\n                if (err.err=='x') drawPath(ctx, [[upper,y - radius],[upper,y + radius]] );\n                else drawPath(ctx, [[x - radius,upper],[x + radius,upper]] );\n            } else if ($.isFunction(err.upperCap)){\n                if (err.err=='x') err.upperCap(ctx, upper, y, radius);\n                else err.upperCap(ctx, x, upper, radius);\n            }\n        }\n        // lower cap\n        if (drawLower) {\n            if (err.lowerCap == '-'){\n                if (err.err=='x') drawPath(ctx, [[lower,y - radius],[lower,y + radius]] );\n                else drawPath(ctx, [[x - radius,lower],[x + radius,lower]] );\n            } else if ($.isFunction(err.lowerCap)){\n                if (err.err=='x') err.lowerCap(ctx, lower, y, radius);\n                else err.lowerCap(ctx, x, lower, radius);\n            }\n        }\n    }\n\n    function drawPath(ctx, pts){\n        ctx.beginPath();\n        ctx.moveTo(pts[0][0], pts[0][1]);\n        for (var p=1; p < pts.length; p++)\n            ctx.lineTo(pts[p][0], pts[p][1]);\n        ctx.stroke();\n    }\n\n    function draw(plot, ctx){\n        var plotOffset = plot.getPlotOffset();\n\n        ctx.save();\n        ctx.translate(plotOffset.left, plotOffset.top);\n        $.each(plot.getData(), function (i, s) {\n            if (s.points.errorbars && (s.points.xerr.show || s.points.yerr.show))\n                drawSeriesErrors(plot, ctx, s);\n        });\n        ctx.restore();\n    }\n\n    function init(plot) {\n        plot.hooks.processRawData.push(processRawData);\n        plot.hooks.draw.push(draw);\n    }\n\n    $.plot.plugins.push({\n                init: init,\n                options: options,\n                name: 'errorbars',\n                version: '1.0'\n            });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.fillbetween.js",
    "content": "/* Flot plugin for computing bottoms for filled line and bar charts.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe case: you've got two series that you want to fill the area between. In Flot\nterms, you need to use one as the fill bottom of the other. You can specify the\nbottom of each data point as the third coordinate manually, or you can use this\nplugin to compute it for you.\n\nIn order to name the other series, you need to give it an id, like this:\n\n\tvar dataset = [\n\t\t{ data: [ ... ], id: \"foo\" } ,         // use default bottom\n\t\t{ data: [ ... ], fillBetween: \"foo\" }, // use first dataset as bottom\n\t];\n\n\t$.plot($(\"#placeholder\"), dataset, { lines: { show: true, fill: true }});\n\nAs a convenience, if the id given is a number that doesn't appear as an id in\nthe series, it is interpreted as the index in the array instead (so fillBetween:\n0 can also mean the first series).\n\nInternally, the plugin modifies the datapoints in each series. For line series,\nextra data points might be inserted through interpolation. Note that at points\nwhere the bottom line is not defined (due to a null point or start/end of line),\nthe current line will show a gap too. The algorithm comes from the\njquery.flot.stack.js plugin, possibly some code could be shared.\n\n*/\n\n(function ( $ ) {\n\n\tvar options = {\n\t\tseries: {\n\t\t\tfillBetween: null\t// or number\n\t\t}\n\t};\n\n\tfunction init( plot ) {\n\n\t\tfunction findBottomSeries( s, allseries ) {\n\n\t\t\tvar i;\n\n\t\t\tfor ( i = 0; i < allseries.length; ++i ) {\n\t\t\t\tif ( allseries[ i ].id === s.fillBetween ) {\n\t\t\t\t\treturn allseries[ i ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( typeof s.fillBetween === \"number\" ) {\n\t\t\t\tif ( s.fillBetween < 0 || s.fillBetween >= allseries.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn allseries[ s.fillBetween ];\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\tfunction computeFillBottoms( plot, s, datapoints ) {\n\n\t\t\tif ( s.fillBetween == null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar other = findBottomSeries( s, plot.getData() );\n\n\t\t\tif ( !other ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar ps = datapoints.pointsize,\n\t\t\t\tpoints = datapoints.points,\n\t\t\t\totherps = other.datapoints.pointsize,\n\t\t\t\totherpoints = other.datapoints.points,\n\t\t\t\tnewpoints = [],\n\t\t\t\tpx, py, intery, qx, qy, bottom,\n\t\t\t\twithlines = s.lines.show,\n\t\t\t\twithbottom = ps > 2 && datapoints.format[2].y,\n\t\t\t\twithsteps = withlines && s.lines.steps,\n\t\t\t\tfromgap = true,\n\t\t\t\ti = 0,\n\t\t\t\tj = 0,\n\t\t\t\tl, m;\n\n\t\t\twhile ( true ) {\n\n\t\t\t\tif ( i >= points.length ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tl = newpoints.length;\n\n\t\t\t\tif ( points[ i ] == null ) {\n\n\t\t\t\t\t// copy gaps\n\n\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t}\n\n\t\t\t\t\ti += ps;\n\n\t\t\t\t} else if ( j >= otherpoints.length ) {\n\n\t\t\t\t\t// for lines, we can't use the rest of the points\n\n\t\t\t\t\tif ( !withlines ) {\n\t\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\ti += ps;\n\n\t\t\t\t} else if ( otherpoints[ j ] == null ) {\n\n\t\t\t\t\t// oops, got a gap\n\n\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\tnewpoints.push( null );\n\t\t\t\t\t}\n\n\t\t\t\t\tfromgap = true;\n\t\t\t\t\tj += otherps;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// cases where we actually got two points\n\n\t\t\t\t\tpx = points[ i ];\n\t\t\t\t\tpy = points[ i + 1 ];\n\t\t\t\t\tqx = otherpoints[ j ];\n\t\t\t\t\tqy = otherpoints[ j + 1 ];\n\t\t\t\t\tbottom = 0;\n\n\t\t\t\t\tif ( px === qx ) {\n\n\t\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//newpoints[ l + 1 ] += qy;\n\t\t\t\t\t\tbottom = qy;\n\n\t\t\t\t\t\ti += ps;\n\t\t\t\t\t\tj += otherps;\n\n\t\t\t\t\t} else if ( px > qx ) {\n\n\t\t\t\t\t\t// we got past point below, might need to\n\t\t\t\t\t\t// insert interpolated extra point\n\n\t\t\t\t\t\tif ( withlines && i > 0 && points[ i - ps ] != null ) {\n\t\t\t\t\t\t\tintery = py + ( points[ i - ps + 1 ] - py ) * ( qx - px ) / ( points[ i - ps ] - px );\n\t\t\t\t\t\t\tnewpoints.push( qx );\n\t\t\t\t\t\t\tnewpoints.push( intery );\n\t\t\t\t\t\t\tfor ( m = 2; m < ps; ++m ) {\n\t\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbottom = qy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tj += otherps;\n\n\t\t\t\t\t} else { // px < qx\n\n\t\t\t\t\t\t// if we come from a gap, we just skip this point\n\n\t\t\t\t\t\tif ( fromgap && withlines ) {\n\t\t\t\t\t\t\ti += ps;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( m = 0; m < ps; ++m ) {\n\t\t\t\t\t\t\tnewpoints.push( points[ i + m ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// we might be able to interpolate a point below,\n\t\t\t\t\t\t// this can give us a better y\n\n\t\t\t\t\t\tif ( withlines && j > 0 && otherpoints[ j - otherps ] != null ) {\n\t\t\t\t\t\t\tbottom = qy + ( otherpoints[ j - otherps + 1 ] - qy ) * ( px - qx ) / ( otherpoints[ j - otherps ] - qx );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//newpoints[l + 1] += bottom;\n\n\t\t\t\t\t\ti += ps;\n\t\t\t\t\t}\n\n\t\t\t\t\tfromgap = false;\n\n\t\t\t\t\tif ( l !== newpoints.length && withbottom ) {\n\t\t\t\t\t\tnewpoints[ l + 2 ] = bottom;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// maintain the line steps invariant\n\n\t\t\t\tif ( withsteps && l !== newpoints.length && l > 0 &&\n\t\t\t\t\tnewpoints[ l ] !== null &&\n\t\t\t\t\tnewpoints[ l ] !== newpoints[ l - ps ] &&\n\t\t\t\t\tnewpoints[ l + 1 ] !== newpoints[ l - ps + 1 ] ) {\n\t\t\t\t\tfor (m = 0; m < ps; ++m) {\n\t\t\t\t\t\tnewpoints[ l + ps + m ] = newpoints[ l + m ];\n\t\t\t\t\t}\n\t\t\t\t\tnewpoints[ l + 1 ] = newpoints[ l - ps + 1 ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdatapoints.points = newpoints;\n\t\t}\n\n\t\tplot.hooks.processDatapoints.push( computeFillBottoms );\n\t}\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: \"fillbetween\",\n\t\tversion: \"1.0\"\n\t});\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.image.js",
    "content": "/* Flot plugin for plotting images.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe data syntax is [ [ image, x1, y1, x2, y2 ], ... ] where (x1, y1) and\n(x2, y2) are where you intend the two opposite corners of the image to end up\nin the plot. Image must be a fully loaded Javascript image (you can make one\nwith new Image()). If the image is not complete, it's skipped when plotting.\n\nThere are two helpers included for retrieving images. The easiest work the way\nthat you put in URLs instead of images in the data, like this:\n\n\t[ \"myimage.png\", 0, 0, 10, 10 ]\n\nThen call $.plot.image.loadData( data, options, callback ) where data and\noptions are the same as you pass in to $.plot. This loads the images, replaces\nthe URLs in the data with the corresponding images and calls \"callback\" when\nall images are loaded (or failed loading). In the callback, you can then call\n$.plot with the data set. See the included example.\n\nA more low-level helper, $.plot.image.load(urls, callback) is also included.\nGiven a list of URLs, it calls callback with an object mapping from URL to\nImage object when all images are loaded or have failed loading.\n\nThe plugin supports these options:\n\n\tseries: {\n\t\timages: {\n\t\t\tshow: boolean\n\t\t\tanchor: \"corner\" or \"center\"\n\t\t\talpha: [ 0, 1 ]\n\t\t}\n\t}\n\nThey can be specified for a specific series:\n\n\t$.plot( $(\"#placeholder\"), [{\n\t\tdata: [ ... ],\n\t\timages: { ... }\n\t])\n\nNote that because the data format is different from usual data points, you\ncan't use images with anything else in a specific data series.\n\nSetting \"anchor\" to \"center\" causes the pixels in the image to be anchored at\nthe corner pixel centers inside of at the pixel corners, effectively letting\nhalf a pixel stick out to each side in the plot.\n\nA possible future direction could be support for tiling for large images (like\nGoogle Maps).\n\n*/\n\n(function ($) {\n    var options = {\n        series: {\n            images: {\n                show: false,\n                alpha: 1,\n                anchor: \"corner\" // or \"center\"\n            }\n        }\n    };\n\n    $.plot.image = {};\n\n    $.plot.image.loadDataImages = function (series, options, callback) {\n        var urls = [], points = [];\n\n        var defaultShow = options.series.images.show;\n        \n        $.each(series, function (i, s) {\n            if (!(defaultShow || s.images.show))\n                return;\n            \n            if (s.data)\n                s = s.data;\n\n            $.each(s, function (i, p) {\n                if (typeof p[0] == \"string\") {\n                    urls.push(p[0]);\n                    points.push(p);\n                }\n            });\n        });\n\n        $.plot.image.load(urls, function (loadedImages) {\n            $.each(points, function (i, p) {\n                var url = p[0];\n                if (loadedImages[url])\n                    p[0] = loadedImages[url];\n            });\n\n            callback();\n        });\n    }\n    \n    $.plot.image.load = function (urls, callback) {\n        var missing = urls.length, loaded = {};\n        if (missing == 0)\n            callback({});\n\n        $.each(urls, function (i, url) {\n            var handler = function () {\n                --missing;\n                \n                loaded[url] = this;\n                \n                if (missing == 0)\n                    callback(loaded);\n            };\n\n            $('<img />').load(handler).error(handler).attr('src', url);\n        });\n    };\n    \n    function drawSeries(plot, ctx, series) {\n        var plotOffset = plot.getPlotOffset();\n        \n        if (!series.images || !series.images.show)\n            return;\n        \n        var points = series.datapoints.points,\n            ps = series.datapoints.pointsize;\n        \n        for (var i = 0; i < points.length; i += ps) {\n            var img = points[i],\n                x1 = points[i + 1], y1 = points[i + 2],\n                x2 = points[i + 3], y2 = points[i + 4],\n                xaxis = series.xaxis, yaxis = series.yaxis,\n                tmp;\n\n            // actually we should check img.complete, but it\n            // appears to be a somewhat unreliable indicator in\n            // IE6 (false even after load event)\n            if (!img || img.width <= 0 || img.height <= 0)\n                continue;\n\n            if (x1 > x2) {\n                tmp = x2;\n                x2 = x1;\n                x1 = tmp;\n            }\n            if (y1 > y2) {\n                tmp = y2;\n                y2 = y1;\n                y1 = tmp;\n            }\n            \n            // if the anchor is at the center of the pixel, expand the \n            // image by 1/2 pixel in each direction\n            if (series.images.anchor == \"center\") {\n                tmp = 0.5 * (x2-x1) / (img.width - 1);\n                x1 -= tmp;\n                x2 += tmp;\n                tmp = 0.5 * (y2-y1) / (img.height - 1);\n                y1 -= tmp;\n                y2 += tmp;\n            }\n            \n            // clip\n            if (x1 == x2 || y1 == y2 ||\n                x1 >= xaxis.max || x2 <= xaxis.min ||\n                y1 >= yaxis.max || y2 <= yaxis.min)\n                continue;\n\n            var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height;\n            if (x1 < xaxis.min) {\n                sx1 += (sx2 - sx1) * (xaxis.min - x1) / (x2 - x1);\n                x1 = xaxis.min;\n            }\n\n            if (x2 > xaxis.max) {\n                sx2 += (sx2 - sx1) * (xaxis.max - x2) / (x2 - x1);\n                x2 = xaxis.max;\n            }\n\n            if (y1 < yaxis.min) {\n                sy2 += (sy1 - sy2) * (yaxis.min - y1) / (y2 - y1);\n                y1 = yaxis.min;\n            }\n\n            if (y2 > yaxis.max) {\n                sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1);\n                y2 = yaxis.max;\n            }\n            \n            x1 = xaxis.p2c(x1);\n            x2 = xaxis.p2c(x2);\n            y1 = yaxis.p2c(y1);\n            y2 = yaxis.p2c(y2);\n            \n            // the transformation may have swapped us\n            if (x1 > x2) {\n                tmp = x2;\n                x2 = x1;\n                x1 = tmp;\n            }\n            if (y1 > y2) {\n                tmp = y2;\n                y2 = y1;\n                y1 = tmp;\n            }\n\n            tmp = ctx.globalAlpha;\n            ctx.globalAlpha *= series.images.alpha;\n            ctx.drawImage(img,\n                          sx1, sy1, sx2 - sx1, sy2 - sy1,\n                          x1 + plotOffset.left, y1 + plotOffset.top,\n                          x2 - x1, y2 - y1);\n            ctx.globalAlpha = tmp;\n        }\n    }\n\n    function processRawData(plot, series, data, datapoints) {\n        if (!series.images.show)\n            return;\n\n        // format is Image, x1, y1, x2, y2 (opposite corners)\n        datapoints.format = [\n            { required: true },\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true },\n            { x: true, number: true, required: true },\n            { y: true, number: true, required: true }\n        ];\n    }\n    \n    function init(plot) {\n        plot.hooks.processRawData.push(processRawData);\n        plot.hooks.drawSeries.push(drawSeries);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'image',\n        version: '1.1'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.navigate.js",
    "content": "/* Flot plugin for adding the ability to pan and zoom the plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe default behaviour is double click and scrollwheel up/down to zoom in, drag\nto pan. The plugin defines plot.zoom({ center }), plot.zoomOut() and\nplot.pan( offset ) so you easily can add custom controls. It also fires\n\"plotpan\" and \"plotzoom\" events, useful for synchronizing plots.\n\nThe plugin supports these options:\n\n\tzoom: {\n\t\tinteractive: false\n\t\ttrigger: \"dblclick\" // or \"click\" for single click\n\t\tamount: 1.5         // 2 = 200% (zoom in), 0.5 = 50% (zoom out)\n\t}\n\n\tpan: {\n\t\tinteractive: false\n\t\tcursor: \"move\"      // CSS mouse cursor value used when dragging, e.g. \"pointer\"\n\t\tframeRate: 20\n\t}\n\n\txaxis, yaxis, x2axis, y2axis: {\n\t\tzoomRange: null  // or [ number, number ] (min range, max range) or false\n\t\tpanRange: null   // or [ number, number ] (min, max) or false\n\t}\n\n\"interactive\" enables the built-in drag/click behaviour. If you enable\ninteractive for pan, then you'll have a basic plot that supports moving\naround; the same for zoom.\n\n\"amount\" specifies the default amount to zoom in (so 1.5 = 150%) relative to\nthe current viewport.\n\n\"cursor\" is a standard CSS mouse cursor string used for visual feedback to the\nuser when dragging.\n\n\"frameRate\" specifies the maximum number of times per second the plot will\nupdate itself while the user is panning around on it (set to null to disable\nintermediate pans, the plot will then not update until the mouse button is\nreleased).\n\n\"zoomRange\" is the interval in which zooming can happen, e.g. with zoomRange:\n[1, 100] the zoom will never scale the axis so that the difference between min\nand max is smaller than 1 or larger than 100. You can set either end to null\nto ignore, e.g. [1, null]. If you set zoomRange to false, zooming on that axis\nwill be disabled.\n\n\"panRange\" confines the panning to stay within a range, e.g. with panRange:\n[-10, 20] panning stops at -10 in one end and at 20 in the other. Either can\nbe null, e.g. [-10, null]. If you set panRange to false, panning on that axis\nwill be disabled.\n\nExample API usage:\n\n\tplot = $.plot(...);\n\n\t// zoom default amount in on the pixel ( 10, 20 )\n\tplot.zoom({ center: { left: 10, top: 20 } });\n\n\t// zoom out again\n\tplot.zoomOut({ center: { left: 10, top: 20 } });\n\n\t// zoom 200% in on the pixel (10, 20)\n\tplot.zoom({ amount: 2, center: { left: 10, top: 20 } });\n\n\t// pan 100 pixels to the left and 20 down\n\tplot.pan({ left: -100, top: 20 })\n\nHere, \"center\" specifies where the center of the zooming should happen. Note\nthat this is defined in pixel space, not the space of the data points (you can\nuse the p2c helpers on the axes in Flot to help you convert between these).\n\n\"amount\" is the amount to zoom the viewport relative to the current range, so\n1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is 70% (zoom out). You\ncan set the default in the options.\n\n*/\n\n// First two dependencies, jquery.event.drag.js and\n// jquery.mousewheel.js, we put them inline here to save people the\n// effort of downloading them.\n\n/*\njquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)\nLicensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt\n*/\n(function(a){function e(h){var k,j=this,l=h.data||{};if(l.elem)j=h.dragTarget=l.elem,h.dragProxy=d.proxy||j,h.cursorOffsetX=l.pageX-l.left,h.cursorOffsetY=l.pageY-l.top,h.offsetX=h.pageX-h.cursorOffsetX,h.offsetY=h.pageY-h.cursorOffsetY;else if(d.dragging||l.which>0&&h.which!=l.which||a(h.target).is(l.not))return;switch(h.type){case\"mousedown\":return a.extend(l,a(j).offset(),{elem:j,target:h.target,pageX:h.pageX,pageY:h.pageY}),b.add(document,\"mousemove mouseup\",e,l),i(j,!1),d.dragging=null,!1;case!d.dragging&&\"mousemove\":if(g(h.pageX-l.pageX)+g(h.pageY-l.pageY)<l.distance)break;h.target=l.target,k=f(h,\"dragstart\",j),k!==!1&&(d.dragging=j,d.proxy=h.dragProxy=a(k||j)[0]);case\"mousemove\":if(d.dragging){if(k=f(h,\"drag\",j),c.drop&&(c.drop.allowed=k!==!1,c.drop.handler(h)),k!==!1)break;h.type=\"mouseup\"}case\"mouseup\":b.remove(document,\"mousemove mouseup\",e),d.dragging&&(c.drop&&c.drop.handler(h),f(h,\"dragend\",j)),i(j,!0),d.dragging=d.proxy=l.elem=!1}return!0}function f(b,c,d){b.type=c;var e=a.event.dispatch.call(d,b);return e===!1?!1:e||b.result}function g(a){return Math.pow(a,2)}function h(){return d.dragging===!1}function i(a,b){a&&(a.unselectable=b?\"off\":\"on\",a.onselectstart=function(){return b},a.style&&(a.style.MozUserSelect=b?\"\":\"none\"))}a.fn.drag=function(a,b,c){return b&&this.bind(\"dragstart\",a),c&&this.bind(\"dragend\",c),a?this.bind(\"drag\",b?b:a):this.trigger(\"drag\")};var b=a.event,c=b.special,d=c.drag={not:\":input\",distance:0,which:1,dragging:!1,setup:function(c){c=a.extend({distance:d.distance,which:d.which,not:d.not},c||{}),c.distance=g(c.distance),b.add(this,\"mousedown\",e,c),this.attachEvent&&this.attachEvent(\"ondragstart\",h)},teardown:function(){b.remove(this,\"mousedown\",e),this===d.dragging&&(d.dragging=d.proxy=!1),i(this,!0),this.detachEvent&&this.detachEvent(\"ondragstart\",h)}};c.dragstart=c.dragend={setup:function(){},teardown:function(){}}})(jQuery);\n\n/* jquery.mousewheel.min.js\n * Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)\n * Licensed under the MIT License (LICENSE.txt).\n * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.\n * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.\n * Thanks to: Seamus Leahy for adding deltaX and deltaY\n *\n * Version: 3.0.6\n *\n * Requires: 1.2.2+\n */\n(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type=\"mousewheel\";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;void 0!==b.axis&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);void 0!==b.wheelDeltaY&&(g=b.wheelDeltaY/120);void 0!==b.wheelDeltaX&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=[\"DOMMouseScroll\",\"mousewheel\"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,!1);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,!1);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind(\"mousewheel\",a):this.trigger(\"mousewheel\")},unmousewheel:function(a){return this.unbind(\"mousewheel\",a)}})})(jQuery);\n\n\n\n\n(function ($) {\n    var options = {\n        xaxis: {\n            zoomRange: null, // or [number, number] (min range, max range)\n            panRange: null // or [number, number] (min, max)\n        },\n        zoom: {\n            interactive: false,\n            trigger: \"dblclick\", // or \"click\" for single click\n            amount: 1.5 // how much to zoom relative to current position, 2 = 200% (zoom in), 0.5 = 50% (zoom out)\n        },\n        pan: {\n            interactive: false,\n            cursor: \"move\",\n            frameRate: 20\n        }\n    };\n\n    function init(plot) {\n        function onZoomClick(e, zoomOut) {\n            var c = plot.offset();\n            c.left = e.pageX - c.left;\n            c.top = e.pageY - c.top;\n            if (zoomOut)\n                plot.zoomOut({ center: c });\n            else\n                plot.zoom({ center: c });\n        }\n\n        function onMouseWheel(e, delta) {\n            e.preventDefault();\n            onZoomClick(e, delta < 0);\n            return false;\n        }\n        \n        var prevCursor = 'default', prevPageX = 0, prevPageY = 0,\n            panTimeout = null;\n\n        function onDragStart(e) {\n            if (e.which != 1)  // only accept left-click\n                return false;\n            var c = plot.getPlaceholder().css('cursor');\n            if (c)\n                prevCursor = c;\n            plot.getPlaceholder().css('cursor', plot.getOptions().pan.cursor);\n            prevPageX = e.pageX;\n            prevPageY = e.pageY;\n        }\n        \n        function onDrag(e) {\n            var frameRate = plot.getOptions().pan.frameRate;\n            if (panTimeout || !frameRate)\n                return;\n\n            panTimeout = setTimeout(function () {\n                plot.pan({ left: prevPageX - e.pageX,\n                           top: prevPageY - e.pageY });\n                prevPageX = e.pageX;\n                prevPageY = e.pageY;\n                                                    \n                panTimeout = null;\n            }, 1 / frameRate * 1000);\n        }\n\n        function onDragEnd(e) {\n            if (panTimeout) {\n                clearTimeout(panTimeout);\n                panTimeout = null;\n            }\n                    \n            plot.getPlaceholder().css('cursor', prevCursor);\n            plot.pan({ left: prevPageX - e.pageX,\n                       top: prevPageY - e.pageY });\n        }\n        \n        function bindEvents(plot, eventHolder) {\n            var o = plot.getOptions();\n            if (o.zoom.interactive) {\n                eventHolder[o.zoom.trigger](onZoomClick);\n                eventHolder.mousewheel(onMouseWheel);\n            }\n\n            if (o.pan.interactive) {\n                eventHolder.bind(\"dragstart\", { distance: 10 }, onDragStart);\n                eventHolder.bind(\"drag\", onDrag);\n                eventHolder.bind(\"dragend\", onDragEnd);\n            }\n        }\n\n        plot.zoomOut = function (args) {\n            if (!args)\n                args = {};\n            \n            if (!args.amount)\n                args.amount = plot.getOptions().zoom.amount;\n\n            args.amount = 1 / args.amount;\n            plot.zoom(args);\n        };\n        \n        plot.zoom = function (args) {\n            if (!args)\n                args = {};\n            \n            var c = args.center,\n                amount = args.amount || plot.getOptions().zoom.amount,\n                w = plot.width(), h = plot.height();\n\n            if (!c)\n                c = { left: w / 2, top: h / 2 };\n                \n            var xf = c.left / w,\n                yf = c.top / h,\n                minmax = {\n                    x: {\n                        min: c.left - xf * w / amount,\n                        max: c.left + (1 - xf) * w / amount\n                    },\n                    y: {\n                        min: c.top - yf * h / amount,\n                        max: c.top + (1 - yf) * h / amount\n                    }\n                };\n\n            $.each(plot.getAxes(), function(_, axis) {\n                var opts = axis.options,\n                    min = minmax[axis.direction].min,\n                    max = minmax[axis.direction].max,\n                    zr = opts.zoomRange,\n                    pr = opts.panRange;\n\n                if (zr === false) // no zooming on this axis\n                    return;\n                    \n                min = axis.c2p(min);\n                max = axis.c2p(max);\n                if (min > max) {\n                    // make sure min < max\n                    var tmp = min;\n                    min = max;\n                    max = tmp;\n                }\n\n                //Check that we are in panRange\n                if (pr) {\n                    if (pr[0] != null && min < pr[0]) {\n                        min = pr[0];\n                    }\n                    if (pr[1] != null && max > pr[1]) {\n                        max = pr[1];\n                    }\n                }\n\n                var range = max - min;\n                if (zr &&\n                    ((zr[0] != null && range < zr[0] && amount >1) ||\n                     (zr[1] != null && range > zr[1] && amount <1)))\n                    return;\n            \n                opts.min = min;\n                opts.max = max;\n            });\n            \n            plot.setupGrid();\n            plot.draw();\n            \n            if (!args.preventEvent)\n                plot.getPlaceholder().trigger(\"plotzoom\", [ plot, args ]);\n        };\n\n        plot.pan = function (args) {\n            var delta = {\n                x: +args.left,\n                y: +args.top\n            };\n\n            if (isNaN(delta.x))\n                delta.x = 0;\n            if (isNaN(delta.y))\n                delta.y = 0;\n\n            $.each(plot.getAxes(), function (_, axis) {\n                var opts = axis.options,\n                    min, max, d = delta[axis.direction];\n\n                min = axis.c2p(axis.p2c(axis.min) + d),\n                max = axis.c2p(axis.p2c(axis.max) + d);\n\n                var pr = opts.panRange;\n                if (pr === false) // no panning on this axis\n                    return;\n                \n                if (pr) {\n                    // check whether we hit the wall\n                    if (pr[0] != null && pr[0] > min) {\n                        d = pr[0] - min;\n                        min += d;\n                        max += d;\n                    }\n                    \n                    if (pr[1] != null && pr[1] < max) {\n                        d = pr[1] - max;\n                        min += d;\n                        max += d;\n                    }\n                }\n                \n                opts.min = min;\n                opts.max = max;\n            });\n            \n            plot.setupGrid();\n            plot.draw();\n            \n            if (!args.preventEvent)\n                plot.getPlaceholder().trigger(\"plotpan\", [ plot, args ]);\n        };\n\n        function shutdown(plot, eventHolder) {\n            eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick);\n            eventHolder.unbind(\"mousewheel\", onMouseWheel);\n            eventHolder.unbind(\"dragstart\", onDragStart);\n            eventHolder.unbind(\"drag\", onDrag);\n            eventHolder.unbind(\"dragend\", onDragEnd);\n            if (panTimeout)\n                clearTimeout(panTimeout);\n        }\n        \n        plot.hooks.bindEvents.push(bindEvents);\n        plot.hooks.shutdown.push(shutdown);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'navigate',\n        version: '1.3'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.pie.js",
    "content": "/* Flot plugin for rendering pie charts.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin assumes that each series has a single data value, and that each\nvalue is a positive integer or zero.  Negative numbers don't make sense for a\npie chart, and have unpredictable results.  The values do NOT need to be\npassed in as percentages; the plugin will calculate the total and per-slice\npercentages internally.\n\n* Created by Brian Medendorp\n\n* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars\n\nThe plugin supports these options:\n\n\tseries: {\n\t\tpie: {\n\t\t\tshow: true/false\n\t\t\tradius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto'\n\t\t\tinnerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect\n\t\t\tstartAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result\n\t\t\ttilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show)\n\t\t\toffset: {\n\t\t\t\ttop: integer value to move the pie up or down\n\t\t\t\tleft: integer value to move the pie left or right, or 'auto'\n\t\t\t},\n\t\t\tstroke: {\n\t\t\t\tcolor: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF')\n\t\t\t\twidth: integer pixel width of the stroke\n\t\t\t},\n\t\t\tlabel: {\n\t\t\t\tshow: true/false, or 'auto'\n\t\t\t\tformatter:  a user-defined function that modifies the text/style of the label text\n\t\t\t\tradius: 0-1 for percentage of fullsize, or a specified pixel length\n\t\t\t\tbackground: {\n\t\t\t\t\tcolor: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000')\n\t\t\t\t\topacity: 0-1\n\t\t\t\t},\n\t\t\t\tthreshold: 0-1 for the percentage value at which to hide labels (if they're too small)\n\t\t\t},\n\t\t\tcombine: {\n\t\t\t\tthreshold: 0-1 for the percentage value at which to combine slices (if they're too small)\n\t\t\t\tcolor: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined\n\t\t\t\tlabel: any text value of what the combined slice should be labeled\n\t\t\t}\n\t\t\thighlight: {\n\t\t\t\topacity: 0-1\n\t\t\t}\n\t\t}\n\t}\n\nMore detail and specific examples can be found in the included HTML file.\n\n*/\n\n(function($) {\n\n\t// Maximum redraw attempts when fitting labels within the plot\n\n\tvar REDRAW_ATTEMPTS = 10;\n\n\t// Factor by which to shrink the pie when fitting labels within the plot\n\n\tvar REDRAW_SHRINK = 0.95;\n\n\tfunction init(plot) {\n\n\t\tvar canvas = null,\n\t\t\ttarget = null,\n\t\t\toptions = null,\n\t\t\tmaxRadius = null,\n\t\t\tcenterLeft = null,\n\t\t\tcenterTop = null,\n\t\t\tprocessed = false,\n\t\t\tctx = null;\n\n\t\t// interactive variables\n\n\t\tvar highlights = [];\n\n\t\t// add hook to determine if pie plugin in enabled, and then perform necessary operations\n\n\t\tplot.hooks.processOptions.push(function(plot, options) {\n\t\t\tif (options.series.pie.show) {\n\n\t\t\t\toptions.grid.show = false;\n\n\t\t\t\t// set labels.show\n\n\t\t\t\tif (options.series.pie.label.show == \"auto\") {\n\t\t\t\t\tif (options.legend.show) {\n\t\t\t\t\t\toptions.series.pie.label.show = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.series.pie.label.show = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// set radius\n\n\t\t\t\tif (options.series.pie.radius == \"auto\") {\n\t\t\t\t\tif (options.series.pie.label.show) {\n\t\t\t\t\t\toptions.series.pie.radius = 3/4;\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.series.pie.radius = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// ensure sane tilt\n\n\t\t\t\tif (options.series.pie.tilt > 1) {\n\t\t\t\t\toptions.series.pie.tilt = 1;\n\t\t\t\t} else if (options.series.pie.tilt < 0) {\n\t\t\t\t\toptions.series.pie.tilt = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.bindEvents.push(function(plot, eventHolder) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tif (options.grid.hoverable) {\n\t\t\t\t\teventHolder.unbind(\"mousemove\").mousemove(onMouseMove);\n\t\t\t\t}\n\t\t\t\tif (options.grid.clickable) {\n\t\t\t\t\teventHolder.unbind(\"click\").click(onClick);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.processDatapoints.push(function(plot, series, data, datapoints) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tprocessDatapoints(plot, series, data, datapoints);\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.drawOverlay.push(function(plot, octx) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tdrawOverlay(plot, octx);\n\t\t\t}\n\t\t});\n\n\t\tplot.hooks.draw.push(function(plot, newCtx) {\n\t\t\tvar options = plot.getOptions();\n\t\t\tif (options.series.pie.show) {\n\t\t\t\tdraw(plot, newCtx);\n\t\t\t}\n\t\t});\n\n\t\tfunction processDatapoints(plot, series, datapoints) {\n\t\t\tif (!processed)\t{\n\t\t\t\tprocessed = true;\n\t\t\t\tcanvas = plot.getCanvas();\n\t\t\t\ttarget = $(canvas).parent();\n\t\t\t\toptions = plot.getOptions();\n\t\t\t\tplot.setData(combine(plot.getData()));\n\t\t\t}\n\t\t}\n\n\t\tfunction combine(data) {\n\n\t\t\tvar total = 0,\n\t\t\t\tcombined = 0,\n\t\t\t\tnumCombined = 0,\n\t\t\t\tcolor = options.series.pie.combine.color,\n\t\t\t\tnewdata = [];\n\n\t\t\t// Fix up the raw data from Flot, ensuring the data is numeric\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\n\t\t\t\tvar value = data[i].data;\n\n\t\t\t\t// If the data is an array, we'll assume that it's a standard\n\t\t\t\t// Flot x-y pair, and are concerned only with the second value.\n\n\t\t\t\t// Note how we use the original array, rather than creating a\n\t\t\t\t// new one; this is more efficient and preserves any extra data\n\t\t\t\t// that the user may have stored in higher indexes.\n\n\t\t\t\tif ($.isArray(value) && value.length == 1) {\n    \t\t\t\tvalue = value[0];\n\t\t\t\t}\n\n\t\t\t\tif ($.isArray(value)) {\n\t\t\t\t\t// Equivalent to $.isNumeric() but compatible with jQuery < 1.7\n\t\t\t\t\tif (!isNaN(parseFloat(value[1])) && isFinite(value[1])) {\n\t\t\t\t\t\tvalue[1] = +value[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue[1] = 0;\n\t\t\t\t\t}\n\t\t\t\t} else if (!isNaN(parseFloat(value)) && isFinite(value)) {\n\t\t\t\t\tvalue = [1, +value];\n\t\t\t\t} else {\n\t\t\t\t\tvalue = [1, 0];\n\t\t\t\t}\n\n\t\t\t\tdata[i].data = [value];\n\t\t\t}\n\n\t\t\t// Sum up all the slices, so we can calculate percentages for each\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\ttotal += data[i].data[0][1];\n\t\t\t}\n\n\t\t\t// Count the number of slices with percentages below the combine\n\t\t\t// threshold; if it turns out to be just one, we won't combine.\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\tvar value = data[i].data[0][1];\n\t\t\t\tif (value / total <= options.series.pie.combine.threshold) {\n\t\t\t\t\tcombined += value;\n\t\t\t\t\tnumCombined++;\n\t\t\t\t\tif (!color) {\n\t\t\t\t\t\tcolor = data[i].color;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < data.length; ++i) {\n\t\t\t\tvar value = data[i].data[0][1];\n\t\t\t\tif (numCombined < 2 || value / total > options.series.pie.combine.threshold) {\n\t\t\t\t\tnewdata.push(\n\t\t\t\t\t\t$.extend(data[i], {     /* extend to allow keeping all other original data values\n\t\t\t\t\t\t                           and using them e.g. in labelFormatter. */\n\t\t\t\t\t\t\tdata: [[1, value]],\n\t\t\t\t\t\t\tcolor: data[i].color,\n\t\t\t\t\t\t\tlabel: data[i].label,\n\t\t\t\t\t\t\tangle: value * Math.PI * 2 / total,\n\t\t\t\t\t\t\tpercent: value / (total / 100)\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (numCombined > 1) {\n\t\t\t\tnewdata.push({\n\t\t\t\t\tdata: [[1, combined]],\n\t\t\t\t\tcolor: color,\n\t\t\t\t\tlabel: options.series.pie.combine.label,\n\t\t\t\t\tangle: combined * Math.PI * 2 / total,\n\t\t\t\t\tpercent: combined / (total / 100)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn newdata;\n\t\t}\n\n\t\tfunction draw(plot, newCtx) {\n\n\t\t\tif (!target) {\n\t\t\t\treturn; // if no series were passed\n\t\t\t}\n\n\t\t\tvar canvasWidth = plot.getPlaceholder().width(),\n\t\t\t\tcanvasHeight = plot.getPlaceholder().height(),\n\t\t\t\tlegendWidth = target.children().filter(\".legend\").children().width() || 0;\n\n\t\t\tctx = newCtx;\n\n\t\t\t// WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE!\n\n\t\t\t// When combining smaller slices into an 'other' slice, we need to\n\t\t\t// add a new series.  Since Flot gives plugins no way to modify the\n\t\t\t// list of series, the pie plugin uses a hack where the first call\n\t\t\t// to processDatapoints results in a call to setData with the new\n\t\t\t// list of series, then subsequent processDatapoints do nothing.\n\n\t\t\t// The plugin-global 'processed' flag is used to control this hack;\n\t\t\t// it starts out false, and is set to true after the first call to\n\t\t\t// processDatapoints.\n\n\t\t\t// Unfortunately this turns future setData calls into no-ops; they\n\t\t\t// call processDatapoints, the flag is true, and nothing happens.\n\n\t\t\t// To fix this we'll set the flag back to false here in draw, when\n\t\t\t// all series have been processed, so the next sequence of calls to\n\t\t\t// processDatapoints once again starts out with a slice-combine.\n\t\t\t// This is really a hack; in 0.9 we need to give plugins a proper\n\t\t\t// way to modify series before any processing begins.\n\n\t\t\tprocessed = false;\n\n\t\t\t// calculate maximum radius and center point\n\n\t\t\tmaxRadius =  Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2;\n\t\t\tcenterTop = canvasHeight / 2 + options.series.pie.offset.top;\n\t\t\tcenterLeft = canvasWidth / 2;\n\n\t\t\tif (options.series.pie.offset.left == \"auto\") {\n\t\t\t\tif (options.legend.position.match(\"w\")) {\n\t\t\t\t\tcenterLeft += legendWidth / 2;\n\t\t\t\t} else {\n\t\t\t\t\tcenterLeft -= legendWidth / 2;\n\t\t\t\t}\n\t\t\t\tif (centerLeft < maxRadius) {\n\t\t\t\t\tcenterLeft = maxRadius;\n\t\t\t\t} else if (centerLeft > canvasWidth - maxRadius) {\n\t\t\t\t\tcenterLeft = canvasWidth - maxRadius;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcenterLeft += options.series.pie.offset.left;\n\t\t\t}\n\n\t\t\tvar slices = plot.getData(),\n\t\t\t\tattempts = 0;\n\n\t\t\t// Keep shrinking the pie's radius until drawPie returns true,\n\t\t\t// indicating that all the labels fit, or we try too many times.\n\n\t\t\tdo {\n\t\t\t\tif (attempts > 0) {\n\t\t\t\t\tmaxRadius *= REDRAW_SHRINK;\n\t\t\t\t}\n\t\t\t\tattempts += 1;\n\t\t\t\tclear();\n\t\t\t\tif (options.series.pie.tilt <= 0.8) {\n\t\t\t\t\tdrawShadow();\n\t\t\t\t}\n\t\t\t} while (!drawPie() && attempts < REDRAW_ATTEMPTS)\n\n\t\t\tif (attempts >= REDRAW_ATTEMPTS) {\n\t\t\t\tclear();\n\t\t\t\ttarget.prepend(\"<div class='error'>Could not draw pie with labels contained inside canvas</div>\");\n\t\t\t}\n\n\t\t\tif (plot.setSeries && plot.insertLegend) {\n\t\t\t\tplot.setSeries(slices);\n\t\t\t\tplot.insertLegend();\n\t\t\t}\n\n\t\t\t// we're actually done at this point, just defining internal functions at this point\n\n\t\t\tfunction clear() {\n\t\t\t\tctx.clearRect(0, 0, canvasWidth, canvasHeight);\n\t\t\t\ttarget.children().filter(\".pieLabel, .pieLabelBackground\").remove();\n\t\t\t}\n\n\t\t\tfunction drawShadow() {\n\n\t\t\t\tvar shadowLeft = options.series.pie.shadow.left;\n\t\t\t\tvar shadowTop = options.series.pie.shadow.top;\n\t\t\t\tvar edge = 10;\n\t\t\t\tvar alpha = options.series.pie.shadow.alpha;\n\t\t\t\tvar radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n\t\t\t\tif (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) {\n\t\t\t\t\treturn;\t// shadow would be outside canvas, so don't draw it\n\t\t\t\t}\n\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(shadowLeft,shadowTop);\n\t\t\t\tctx.globalAlpha = alpha;\n\t\t\t\tctx.fillStyle = \"#000\";\n\n\t\t\t\t// center and rotate to starting position\n\n\t\t\t\tctx.translate(centerLeft,centerTop);\n\t\t\t\tctx.scale(1, options.series.pie.tilt);\n\n\t\t\t\t//radius -= edge;\n\n\t\t\t\tfor (var i = 1; i <= edge; i++) {\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.arc(0, 0, radius, 0, Math.PI * 2, false);\n\t\t\t\t\tctx.fill();\n\t\t\t\t\tradius -= i;\n\t\t\t\t}\n\n\t\t\t\tctx.restore();\n\t\t\t}\n\n\t\t\tfunction drawPie() {\n\n\t\t\t\tvar startAngle = Math.PI * options.series.pie.startAngle;\n\t\t\t\tvar radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n\t\t\t\t// center and rotate to starting position\n\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(centerLeft,centerTop);\n\t\t\t\tctx.scale(1, options.series.pie.tilt);\n\t\t\t\t//ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera\n\n\t\t\t\t// draw slices\n\n\t\t\t\tctx.save();\n\t\t\t\tvar currentAngle = startAngle;\n\t\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\t\t\t\t\tslices[i].startAngle = currentAngle;\n\t\t\t\t\tdrawSlice(slices[i].angle, slices[i].color, true);\n\t\t\t\t}\n\t\t\t\tctx.restore();\n\n\t\t\t\t// draw slice outlines\n\n\t\t\t\tif (options.series.pie.stroke.width > 0) {\n\t\t\t\t\tctx.save();\n\t\t\t\t\tctx.lineWidth = options.series.pie.stroke.width;\n\t\t\t\t\tcurrentAngle = startAngle;\n\t\t\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\t\t\t\t\t\tdrawSlice(slices[i].angle, options.series.pie.stroke.color, false);\n\t\t\t\t\t}\n\t\t\t\t\tctx.restore();\n\t\t\t\t}\n\n\t\t\t\t// draw donut hole\n\n\t\t\t\tdrawDonutHole(ctx);\n\n\t\t\t\tctx.restore();\n\n\t\t\t\t// Draw the labels, returning true if they fit within the plot\n\n\t\t\t\tif (options.series.pie.label.show) {\n\t\t\t\t\treturn drawLabels();\n\t\t\t\t} else return true;\n\n\t\t\t\tfunction drawSlice(angle, color, fill) {\n\n\t\t\t\t\tif (angle <= 0 || isNaN(angle)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fill) {\n\t\t\t\t\t\tctx.fillStyle = color;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.strokeStyle = color;\n\t\t\t\t\t\tctx.lineJoin = \"round\";\n\t\t\t\t\t}\n\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tif (Math.abs(angle - Math.PI * 2) > 0.000000001) {\n\t\t\t\t\t\tctx.moveTo(0, 0); // Center of the pie\n\t\t\t\t\t}\n\n\t\t\t\t\t//ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera\n\t\t\t\t\tctx.arc(0, 0, radius,currentAngle, currentAngle + angle / 2, false);\n\t\t\t\t\tctx.arc(0, 0, radius,currentAngle + angle / 2, currentAngle + angle, false);\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\t//ctx.rotate(angle); // This doesn't work properly in Opera\n\t\t\t\t\tcurrentAngle += angle;\n\n\t\t\t\t\tif (fill) {\n\t\t\t\t\t\tctx.fill();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.stroke();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction drawLabels() {\n\n\t\t\t\t\tvar currentAngle = startAngle;\n\t\t\t\t\tvar radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius;\n\n\t\t\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\t\t\t\t\t\tif (slices[i].percent >= options.series.pie.label.threshold * 100) {\n\t\t\t\t\t\t\tif (!drawLabel(slices[i], currentAngle, i)) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrentAngle += slices[i].angle;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\n\t\t\t\t\tfunction drawLabel(slice, startAngle, index) {\n\n\t\t\t\t\t\tif (slice.data[0][1] == 0) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// format label text\n\n\t\t\t\t\t\tvar lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter;\n\n\t\t\t\t\t\tif (lf) {\n\t\t\t\t\t\t\ttext = lf(slice.label, slice);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttext = slice.label;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (plf) {\n\t\t\t\t\t\t\ttext = plf(text, slice);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar halfAngle = ((startAngle + slice.angle) + startAngle) / 2;\n\t\t\t\t\t\tvar x = centerLeft + Math.round(Math.cos(halfAngle) * radius);\n\t\t\t\t\t\tvar y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt;\n\n\t\t\t\t\t\tvar html = \"<span class='pieLabel' id='pieLabel\" + index + \"' style='position:absolute;top:\" + y + \"px;left:\" + x + \"px;'>\" + text + \"</span>\";\n\t\t\t\t\t\ttarget.append(html);\n\n\t\t\t\t\t\tvar label = target.children(\"#pieLabel\" + index);\n\t\t\t\t\t\tvar labelTop = (y - label.height() / 2);\n\t\t\t\t\t\tvar labelLeft = (x - label.width() / 2);\n\n\t\t\t\t\t\tlabel.css(\"top\", labelTop);\n\t\t\t\t\t\tlabel.css(\"left\", labelLeft);\n\n\t\t\t\t\t\t// check to make sure that the label is not outside the canvas\n\n\t\t\t\t\t\tif (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.series.pie.label.background.opacity != 0) {\n\n\t\t\t\t\t\t\t// put in the transparent background separately to avoid blended labels and label boxes\n\n\t\t\t\t\t\t\tvar c = options.series.pie.label.background.color;\n\n\t\t\t\t\t\t\tif (c == null) {\n\t\t\t\t\t\t\t\tc = slice.color;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar pos = \"top:\" + labelTop + \"px;left:\" + labelLeft + \"px;\";\n\t\t\t\t\t\t\t$(\"<div class='pieLabelBackground' style='position:absolute;width:\" + label.width() + \"px;height:\" + label.height() + \"px;\" + pos + \"background-color:\" + c + \";'></div>\")\n\t\t\t\t\t\t\t\t.css(\"opacity\", options.series.pie.label.background.opacity)\n\t\t\t\t\t\t\t\t.insertBefore(label);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} // end individual label function\n\t\t\t\t} // end drawLabels function\n\t\t\t} // end drawPie function\n\t\t} // end draw function\n\n\t\t// Placed here because it needs to be accessed from multiple locations\n\n\t\tfunction drawDonutHole(layer) {\n\t\t\tif (options.series.pie.innerRadius > 0) {\n\n\t\t\t\t// subtract the center\n\n\t\t\t\tlayer.save();\n\t\t\t\tvar innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius;\n\t\t\t\tlayer.globalCompositeOperation = \"destination-out\"; // this does not work with excanvas, but it will fall back to using the stroke color\n\t\t\t\tlayer.beginPath();\n\t\t\t\tlayer.fillStyle = options.series.pie.stroke.color;\n\t\t\t\tlayer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);\n\t\t\t\tlayer.fill();\n\t\t\t\tlayer.closePath();\n\t\t\t\tlayer.restore();\n\n\t\t\t\t// add inner stroke\n\n\t\t\t\tlayer.save();\n\t\t\t\tlayer.beginPath();\n\t\t\t\tlayer.strokeStyle = options.series.pie.stroke.color;\n\t\t\t\tlayer.arc(0, 0, innerRadius, 0, Math.PI * 2, false);\n\t\t\t\tlayer.stroke();\n\t\t\t\tlayer.closePath();\n\t\t\t\tlayer.restore();\n\n\t\t\t\t// TODO: add extra shadow inside hole (with a mask) if the pie is tilted.\n\t\t\t}\n\t\t}\n\n\t\t//-- Additional Interactive related functions --\n\n\t\tfunction isPointInPoly(poly, pt) {\n\t\t\tfor(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)\n\t\t\t\t((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1]))\n\t\t\t\t&& (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0])\n\t\t\t\t&& (c = !c);\n\t\t\treturn c;\n\t\t}\n\n\t\tfunction findNearbySlice(mouseX, mouseY) {\n\n\t\t\tvar slices = plot.getData(),\n\t\t\t\toptions = plot.getOptions(),\n\t\t\t\tradius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius,\n\t\t\t\tx, y;\n\n\t\t\tfor (var i = 0; i < slices.length; ++i) {\n\n\t\t\t\tvar s = slices[i];\n\n\t\t\t\tif (s.pie.show) {\n\n\t\t\t\t\tctx.save();\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.moveTo(0, 0); // Center of the pie\n\t\t\t\t\t//ctx.scale(1, options.series.pie.tilt);\t// this actually seems to break everything when here.\n\t\t\t\t\tctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false);\n\t\t\t\t\tctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false);\n\t\t\t\t\tctx.closePath();\n\t\t\t\t\tx = mouseX - centerLeft;\n\t\t\t\t\ty = mouseY - centerTop;\n\n\t\t\t\t\tif (ctx.isPointInPath) {\n\t\t\t\t\t\tif (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) {\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tdatapoint: [s.percent, s.data],\n\t\t\t\t\t\t\t\tdataIndex: 0,\n\t\t\t\t\t\t\t\tseries: s,\n\t\t\t\t\t\t\t\tseriesIndex: i\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// excanvas for IE doesn;t support isPointInPath, this is a workaround.\n\n\t\t\t\t\t\tvar p1X = radius * Math.cos(s.startAngle),\n\t\t\t\t\t\t\tp1Y = radius * Math.sin(s.startAngle),\n\t\t\t\t\t\t\tp2X = radius * Math.cos(s.startAngle + s.angle / 4),\n\t\t\t\t\t\t\tp2Y = radius * Math.sin(s.startAngle + s.angle / 4),\n\t\t\t\t\t\t\tp3X = radius * Math.cos(s.startAngle + s.angle / 2),\n\t\t\t\t\t\t\tp3Y = radius * Math.sin(s.startAngle + s.angle / 2),\n\t\t\t\t\t\t\tp4X = radius * Math.cos(s.startAngle + s.angle / 1.5),\n\t\t\t\t\t\t\tp4Y = radius * Math.sin(s.startAngle + s.angle / 1.5),\n\t\t\t\t\t\t\tp5X = radius * Math.cos(s.startAngle + s.angle),\n\t\t\t\t\t\t\tp5Y = radius * Math.sin(s.startAngle + s.angle),\n\t\t\t\t\t\t\tarrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]],\n\t\t\t\t\t\t\tarrPoint = [x, y];\n\n\t\t\t\t\t\t// TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt?\n\n\t\t\t\t\t\tif (isPointInPoly(arrPoly, arrPoint)) {\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tdatapoint: [s.percent, s.data],\n\t\t\t\t\t\t\t\tdataIndex: 0,\n\t\t\t\t\t\t\t\tseries: s,\n\t\t\t\t\t\t\t\tseriesIndex: i\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tctx.restore();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\tfunction onMouseMove(e) {\n\t\t\ttriggerClickHoverEvent(\"plothover\", e);\n\t\t}\n\n\t\tfunction onClick(e) {\n\t\t\ttriggerClickHoverEvent(\"plotclick\", e);\n\t\t}\n\n\t\t// trigger click or hover event (they send the same parameters so we share their code)\n\n\t\tfunction triggerClickHoverEvent(eventname, e) {\n\n\t\t\tvar offset = plot.offset();\n\t\t\tvar canvasX = parseInt(e.pageX - offset.left);\n\t\t\tvar canvasY =  parseInt(e.pageY - offset.top);\n\t\t\tvar item = findNearbySlice(canvasX, canvasY);\n\n\t\t\tif (options.grid.autoHighlight) {\n\n\t\t\t\t// clear auto-highlights\n\n\t\t\t\tfor (var i = 0; i < highlights.length; ++i) {\n\t\t\t\t\tvar h = highlights[i];\n\t\t\t\t\tif (h.auto == eventname && !(item && h.series == item.series)) {\n\t\t\t\t\t\tunhighlight(h.series);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// highlight the slice\n\n\t\t\tif (item) {\n\t\t\t\thighlight(item.series, eventname);\n\t\t\t}\n\n\t\t\t// trigger any hover bind events\n\n\t\t\tvar pos = { pageX: e.pageX, pageY: e.pageY };\n\t\t\ttarget.trigger(eventname, [pos, item]);\n\t\t}\n\n\t\tfunction highlight(s, auto) {\n\t\t\t//if (typeof s == \"number\") {\n\t\t\t//\ts = series[s];\n\t\t\t//}\n\n\t\t\tvar i = indexOfHighlight(s);\n\n\t\t\tif (i == -1) {\n\t\t\t\thighlights.push({ series: s, auto: auto });\n\t\t\t\tplot.triggerRedrawOverlay();\n\t\t\t} else if (!auto) {\n\t\t\t\thighlights[i].auto = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction unhighlight(s) {\n\t\t\tif (s == null) {\n\t\t\t\thighlights = [];\n\t\t\t\tplot.triggerRedrawOverlay();\n\t\t\t}\n\n\t\t\t//if (typeof s == \"number\") {\n\t\t\t//\ts = series[s];\n\t\t\t//}\n\n\t\t\tvar i = indexOfHighlight(s);\n\n\t\t\tif (i != -1) {\n\t\t\t\thighlights.splice(i, 1);\n\t\t\t\tplot.triggerRedrawOverlay();\n\t\t\t}\n\t\t}\n\n\t\tfunction indexOfHighlight(s) {\n\t\t\tfor (var i = 0; i < highlights.length; ++i) {\n\t\t\t\tvar h = highlights[i];\n\t\t\t\tif (h.series == s)\n\t\t\t\t\treturn i;\n\t\t\t}\n\t\t\treturn -1;\n\t\t}\n\n\t\tfunction drawOverlay(plot, octx) {\n\n\t\t\tvar options = plot.getOptions();\n\n\t\t\tvar radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;\n\n\t\t\toctx.save();\n\t\t\toctx.translate(centerLeft, centerTop);\n\t\t\toctx.scale(1, options.series.pie.tilt);\n\n\t\t\tfor (var i = 0; i < highlights.length; ++i) {\n\t\t\t\tdrawHighlight(highlights[i].series);\n\t\t\t}\n\n\t\t\tdrawDonutHole(octx);\n\n\t\t\toctx.restore();\n\n\t\t\tfunction drawHighlight(series) {\n\n\t\t\t\tif (series.angle <= 0 || isNaN(series.angle)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t//octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString();\n\t\t\t\toctx.fillStyle = \"rgba(255, 255, 255, \" + options.series.pie.highlight.opacity + \")\"; // this is temporary until we have access to parseColor\n\t\t\t\toctx.beginPath();\n\t\t\t\tif (Math.abs(series.angle - Math.PI * 2) > 0.000000001) {\n\t\t\t\t\toctx.moveTo(0, 0); // Center of the pie\n\t\t\t\t}\n\t\t\t\toctx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false);\n\t\t\t\toctx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false);\n\t\t\t\toctx.closePath();\n\t\t\t\toctx.fill();\n\t\t\t}\n\t\t}\n\t} // end init (plugin body)\n\n\t// define pie specific options and their default values\n\n\tvar options = {\n\t\tseries: {\n\t\t\tpie: {\n\t\t\t\tshow: false,\n\t\t\t\tradius: \"auto\",\t// actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value)\n\t\t\t\tinnerRadius: 0, /* for donut */\n\t\t\t\tstartAngle: 3/2,\n\t\t\t\ttilt: 1,\n\t\t\t\tshadow: {\n\t\t\t\t\tleft: 5,\t// shadow left offset\n\t\t\t\t\ttop: 15,\t// shadow top offset\n\t\t\t\t\talpha: 0.02\t// shadow alpha\n\t\t\t\t},\n\t\t\t\toffset: {\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: \"auto\"\n\t\t\t\t},\n\t\t\t\tstroke: {\n\t\t\t\t\tcolor: \"#fff\",\n\t\t\t\t\twidth: 1\n\t\t\t\t},\n\t\t\t\tlabel: {\n\t\t\t\t\tshow: \"auto\",\n\t\t\t\t\tformatter: function(label, slice) {\n\t\t\t\t\t\treturn \"<div style='font-size:x-small;text-align:center;padding:2px;color:\" + slice.color + \";'>\" + label + \"<br/>\" + Math.round(slice.percent) + \"%</div>\";\n\t\t\t\t\t},\t// formatter function\n\t\t\t\t\tradius: 1,\t// radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value)\n\t\t\t\t\tbackground: {\n\t\t\t\t\t\tcolor: null,\n\t\t\t\t\t\topacity: 0\n\t\t\t\t\t},\n\t\t\t\t\tthreshold: 0\t// percentage at which to hide the label (i.e. the slice is too narrow)\n\t\t\t\t},\n\t\t\t\tcombine: {\n\t\t\t\t\tthreshold: -1,\t// percentage at which to combine little slices into one larger slice\n\t\t\t\t\tcolor: null,\t// color to give the new slice (auto-generated if null)\n\t\t\t\t\tlabel: \"Other\"\t// label to give the new slice\n\t\t\t\t},\n\t\t\t\thighlight: {\n\t\t\t\t\t//color: \"#fff\",\t\t// will add this functionality once parseColor is available\n\t\t\t\t\topacity: 0.5\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: \"pie\",\n\t\tversion: \"1.1\"\n\t});\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.selection.js",
    "content": "/* Flot plugin for selecting regions of a plot.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\nselection: {\n\tmode: null or \"x\" or \"y\" or \"xy\",\n\tcolor: color,\n\tshape: \"round\" or \"miter\" or \"bevel\",\n\tminSize: number of pixels\n}\n\nSelection support is enabled by setting the mode to one of \"x\", \"y\" or \"xy\".\nIn \"x\" mode, the user will only be able to specify the x range, similarly for\n\"y\" mode. For \"xy\", the selection becomes a rectangle where both ranges can be\nspecified. \"color\" is color of the selection (if you need to change the color\nlater on, you can get to it with plot.getOptions().selection.color). \"shape\"\nis the shape of the corners of the selection.\n\n\"minSize\" is the minimum size a selection can be in pixels. This value can\nbe customized to determine the smallest size a selection can be and still\nhave the selection rectangle be displayed. When customizing this value, the\nfact that it refers to pixels, not axis units must be taken into account.\nThus, for example, if there is a bar graph in time mode with BarWidth set to 1\nminute, setting \"minSize\" to 1 will not make the minimum selection size 1\nminute, but rather 1 pixel. Note also that setting \"minSize\" to 0 will prevent\n\"plotunselected\" events from being fired when the user clicks the mouse without\ndragging.\n\nWhen selection support is enabled, a \"plotselected\" event will be emitted on\nthe DOM element you passed into the plot function. The event handler gets a\nparameter with the ranges selected on the axes, like this:\n\n\tplaceholder.bind( \"plotselected\", function( event, ranges ) {\n\t\talert(\"You selected \" + ranges.xaxis.from + \" to \" + ranges.xaxis.to)\n\t\t// similar for yaxis - with multiple axes, the extra ones are in\n\t\t// x2axis, x3axis, ...\n\t});\n\nThe \"plotselected\" event is only fired when the user has finished making the\nselection. A \"plotselecting\" event is fired during the process with the same\nparameters as the \"plotselected\" event, in case you want to know what's\nhappening while it's happening,\n\nA \"plotunselected\" event with no arguments is emitted when the user clicks the\nmouse to remove the selection. As stated above, setting \"minSize\" to 0 will\ndestroy this behavior.\n\nThe plugin allso adds the following methods to the plot object:\n\n- setSelection( ranges, preventEvent )\n\n  Set the selection rectangle. The passed in ranges is on the same form as\n  returned in the \"plotselected\" event. If the selection mode is \"x\", you\n  should put in either an xaxis range, if the mode is \"y\" you need to put in\n  an yaxis range and both xaxis and yaxis if the selection mode is \"xy\", like\n  this:\n\n\tsetSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } });\n\n  setSelection will trigger the \"plotselected\" event when called. If you don't\n  want that to happen, e.g. if you're inside a \"plotselected\" handler, pass\n  true as the second parameter. If you are using multiple axes, you can\n  specify the ranges on any of those, e.g. as x2axis/x3axis/... instead of\n  xaxis, the plugin picks the first one it sees.\n\n- clearSelection( preventEvent )\n\n  Clear the selection rectangle. Pass in true to avoid getting a\n  \"plotunselected\" event.\n\n- getSelection()\n\n  Returns the current selection in the same format as the \"plotselected\"\n  event. If there's currently no selection, the function returns null.\n\n*/\n\n(function ($) {\n    function init(plot) {\n        var selection = {\n                first: { x: -1, y: -1}, second: { x: -1, y: -1},\n                show: false,\n                active: false\n            };\n\n        // FIXME: The drag handling implemented here should be\n        // abstracted out, there's some similar code from a library in\n        // the navigation plugin, this should be massaged a bit to fit\n        // the Flot cases here better and reused. Doing this would\n        // make this plugin much slimmer.\n        var savedhandlers = {};\n\n        var mouseUpHandler = null;\n        \n        function onMouseMove(e) {\n            if (selection.active) {\n                updateSelection(e);\n                \n                plot.getPlaceholder().trigger(\"plotselecting\", [ getSelection() ]);\n            }\n        }\n\n        function onMouseDown(e) {\n            if (e.which != 1)  // only accept left-click\n                return;\n            \n            // cancel out any text selections\n            document.body.focus();\n\n            // prevent text selection and drag in old-school browsers\n            if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) {\n                savedhandlers.onselectstart = document.onselectstart;\n                document.onselectstart = function () { return false; };\n            }\n            if (document.ondrag !== undefined && savedhandlers.ondrag == null) {\n                savedhandlers.ondrag = document.ondrag;\n                document.ondrag = function () { return false; };\n            }\n\n            setSelectionPos(selection.first, e);\n\n            selection.active = true;\n\n            // this is a bit silly, but we have to use a closure to be\n            // able to whack the same handler again\n            mouseUpHandler = function (e) { onMouseUp(e); };\n            \n            $(document).one(\"mouseup\", mouseUpHandler);\n        }\n\n        function onMouseUp(e) {\n            mouseUpHandler = null;\n            \n            // revert drag stuff for old-school browsers\n            if (document.onselectstart !== undefined)\n                document.onselectstart = savedhandlers.onselectstart;\n            if (document.ondrag !== undefined)\n                document.ondrag = savedhandlers.ondrag;\n\n            // no more dragging\n            selection.active = false;\n            updateSelection(e);\n\n            if (selectionIsSane())\n                triggerSelectedEvent();\n            else {\n                // this counts as a clear\n                plot.getPlaceholder().trigger(\"plotunselected\", [ ]);\n                plot.getPlaceholder().trigger(\"plotselecting\", [ null ]);\n            }\n\n            return false;\n        }\n\n        function getSelection() {\n            if (!selectionIsSane())\n                return null;\n            \n            if (!selection.show) return null;\n\n            var r = {}, c1 = selection.first, c2 = selection.second;\n            $.each(plot.getAxes(), function (name, axis) {\n                if (axis.used) {\n                    var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]); \n                    r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) };\n                }\n            });\n            return r;\n        }\n\n        function triggerSelectedEvent() {\n            var r = getSelection();\n\n            plot.getPlaceholder().trigger(\"plotselected\", [ r ]);\n\n            // backwards-compat stuff, to be removed in future\n            if (r.xaxis && r.yaxis)\n                plot.getPlaceholder().trigger(\"selected\", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]);\n        }\n\n        function clamp(min, value, max) {\n            return value < min ? min: (value > max ? max: value);\n        }\n\n        function setSelectionPos(pos, e) {\n            var o = plot.getOptions();\n            var offset = plot.getPlaceholder().offset();\n            var plotOffset = plot.getPlotOffset();\n            pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width());\n            pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height());\n\n            if (o.selection.mode == \"y\")\n                pos.x = pos == selection.first ? 0 : plot.width();\n\n            if (o.selection.mode == \"x\")\n                pos.y = pos == selection.first ? 0 : plot.height();\n        }\n\n        function updateSelection(pos) {\n            if (pos.pageX == null)\n                return;\n\n            setSelectionPos(selection.second, pos);\n            if (selectionIsSane()) {\n                selection.show = true;\n                plot.triggerRedrawOverlay();\n            }\n            else\n                clearSelection(true);\n        }\n\n        function clearSelection(preventEvent) {\n            if (selection.show) {\n                selection.show = false;\n                plot.triggerRedrawOverlay();\n                if (!preventEvent)\n                    plot.getPlaceholder().trigger(\"plotunselected\", [ ]);\n            }\n        }\n\n        // function taken from markings support in Flot\n        function extractRange(ranges, coord) {\n            var axis, from, to, key, axes = plot.getAxes();\n\n            for (var k in axes) {\n                axis = axes[k];\n                if (axis.direction == coord) {\n                    key = coord + axis.n + \"axis\";\n                    if (!ranges[key] && axis.n == 1)\n                        key = coord + \"axis\"; // support x1axis as xaxis\n                    if (ranges[key]) {\n                        from = ranges[key].from;\n                        to = ranges[key].to;\n                        break;\n                    }\n                }\n            }\n\n            // backwards-compat stuff - to be removed in future\n            if (!ranges[key]) {\n                axis = coord == \"x\" ? plot.getXAxes()[0] : plot.getYAxes()[0];\n                from = ranges[coord + \"1\"];\n                to = ranges[coord + \"2\"];\n            }\n\n            // auto-reverse as an added bonus\n            if (from != null && to != null && from > to) {\n                var tmp = from;\n                from = to;\n                to = tmp;\n            }\n            \n            return { from: from, to: to, axis: axis };\n        }\n        \n        function setSelection(ranges, preventEvent) {\n            var axis, range, o = plot.getOptions();\n\n            if (o.selection.mode == \"y\") {\n                selection.first.x = 0;\n                selection.second.x = plot.width();\n            }\n            else {\n                range = extractRange(ranges, \"x\");\n\n                selection.first.x = range.axis.p2c(range.from);\n                selection.second.x = range.axis.p2c(range.to);\n            }\n\n            if (o.selection.mode == \"x\") {\n                selection.first.y = 0;\n                selection.second.y = plot.height();\n            }\n            else {\n                range = extractRange(ranges, \"y\");\n\n                selection.first.y = range.axis.p2c(range.from);\n                selection.second.y = range.axis.p2c(range.to);\n            }\n\n            selection.show = true;\n            plot.triggerRedrawOverlay();\n            if (!preventEvent && selectionIsSane())\n                triggerSelectedEvent();\n        }\n\n        function selectionIsSane() {\n            var minSize = plot.getOptions().selection.minSize;\n            return Math.abs(selection.second.x - selection.first.x) >= minSize &&\n                Math.abs(selection.second.y - selection.first.y) >= minSize;\n        }\n\n        plot.clearSelection = clearSelection;\n        plot.setSelection = setSelection;\n        plot.getSelection = getSelection;\n\n        plot.hooks.bindEvents.push(function(plot, eventHolder) {\n            var o = plot.getOptions();\n            if (o.selection.mode != null) {\n                eventHolder.mousemove(onMouseMove);\n                eventHolder.mousedown(onMouseDown);\n            }\n        });\n\n\n        plot.hooks.drawOverlay.push(function (plot, ctx) {\n            // draw selection\n            if (selection.show && selectionIsSane()) {\n                var plotOffset = plot.getPlotOffset();\n                var o = plot.getOptions();\n\n                ctx.save();\n                ctx.translate(plotOffset.left, plotOffset.top);\n\n                var c = $.color.parse(o.selection.color);\n\n                ctx.strokeStyle = c.scale('a', 0.8).toString();\n                ctx.lineWidth = 1;\n                ctx.lineJoin = o.selection.shape;\n                ctx.fillStyle = c.scale('a', 0.4).toString();\n\n                var x = Math.min(selection.first.x, selection.second.x) + 0.5,\n                    y = Math.min(selection.first.y, selection.second.y) + 0.5,\n                    w = Math.abs(selection.second.x - selection.first.x) - 1,\n                    h = Math.abs(selection.second.y - selection.first.y) - 1;\n\n                ctx.fillRect(x, y, w, h);\n                ctx.strokeRect(x, y, w, h);\n\n                ctx.restore();\n            }\n        });\n        \n        plot.hooks.shutdown.push(function (plot, eventHolder) {\n            eventHolder.unbind(\"mousemove\", onMouseMove);\n            eventHolder.unbind(\"mousedown\", onMouseDown);\n            \n            if (mouseUpHandler)\n                $(document).unbind(\"mouseup\", mouseUpHandler);\n        });\n\n    }\n\n    $.plot.plugins.push({\n        init: init,\n        options: {\n            selection: {\n                mode: null, // one of null, \"x\", \"y\" or \"xy\"\n                color: \"#e8cfac\",\n                shape: \"round\", // one of \"round\", \"miter\", or \"bevel\"\n                minSize: 5 // minimum number of pixels\n            }\n        },\n        name: 'selection',\n        version: '1.1'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.stack.js",
    "content": "/* Flot plugin for stacking data sets rather than overlyaing them.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin assumes the data is sorted on x (or y if stacking horizontally).\nFor line charts, it is assumed that if a line has an undefined gap (from a\nnull point), then the line above it should have the same gap - insert zeros\ninstead of \"null\" if you want another behaviour. This also holds for the start\nand end of the chart. Note that stacking a mix of positive and negative values\nin most instances doesn't make sense (so it looks weird).\n\nTwo or more series are stacked when their \"stack\" attribute is set to the same\nkey (which can be any number or string or just \"true\"). To specify the default\nstack, you can set the stack option like this:\n\n\tseries: {\n\t\tstack: null/false, true, or a key (number/string)\n\t}\n\nYou can also specify it for a single series, like this:\n\n\t$.plot( $(\"#placeholder\"), [{\n\t\tdata: [ ... ],\n\t\tstack: true\n\t}])\n\nThe stacking order is determined by the order of the data series in the array\n(later series end up on top of the previous).\n\nInternally, the plugin modifies the datapoints in each series, adding an\noffset to the y value. For line series, extra data points are inserted through\ninterpolation. If there's a second y value, it's also adjusted (e.g for bar\ncharts or filled areas).\n\n*/\n\n(function ($) {\n    var options = {\n        series: { stack: null } // or number/string\n    };\n    \n    function init(plot) {\n        function findMatchingSeries(s, allseries) {\n            var res = null;\n            for (var i = 0; i < allseries.length; ++i) {\n                if (s == allseries[i])\n                    break;\n                \n                if (allseries[i].stack == s.stack)\n                    res = allseries[i];\n            }\n            \n            return res;\n        }\n        \n        function stackData(plot, s, datapoints) {\n            if (s.stack == null || s.stack === false)\n                return;\n\n            var other = findMatchingSeries(s, plot.getData());\n            if (!other)\n                return;\n\n            var ps = datapoints.pointsize,\n                points = datapoints.points,\n                otherps = other.datapoints.pointsize,\n                otherpoints = other.datapoints.points,\n                newpoints = [],\n                px, py, intery, qx, qy, bottom,\n                withlines = s.lines.show,\n                horizontal = s.bars.horizontal,\n                withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y),\n                withsteps = withlines && s.lines.steps,\n                fromgap = true,\n                keyOffset = horizontal ? 1 : 0,\n                accumulateOffset = horizontal ? 0 : 1,\n                i = 0, j = 0, l, m;\n\n            while (true) {\n                if (i >= points.length)\n                    break;\n\n                l = newpoints.length;\n\n                if (points[i] == null) {\n                    // copy gaps\n                    for (m = 0; m < ps; ++m)\n                        newpoints.push(points[i + m]);\n                    i += ps;\n                }\n                else if (j >= otherpoints.length) {\n                    // for lines, we can't use the rest of the points\n                    if (!withlines) {\n                        for (m = 0; m < ps; ++m)\n                            newpoints.push(points[i + m]);\n                    }\n                    i += ps;\n                }\n                else if (otherpoints[j] == null) {\n                    // oops, got a gap\n                    for (m = 0; m < ps; ++m)\n                        newpoints.push(null);\n                    fromgap = true;\n                    j += otherps;\n                }\n                else {\n                    // cases where we actually got two points\n                    px = points[i + keyOffset];\n                    py = points[i + accumulateOffset];\n                    qx = otherpoints[j + keyOffset];\n                    qy = otherpoints[j + accumulateOffset];\n                    bottom = 0;\n\n                    if (px == qx) {\n                        for (m = 0; m < ps; ++m)\n                            newpoints.push(points[i + m]);\n\n                        newpoints[l + accumulateOffset] += qy;\n                        bottom = qy;\n                        \n                        i += ps;\n                        j += otherps;\n                    }\n                    else if (px > qx) {\n                        // we got past point below, might need to\n                        // insert interpolated extra point\n                        if (withlines && i > 0 && points[i - ps] != null) {\n                            intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px);\n                            newpoints.push(qx);\n                            newpoints.push(intery + qy);\n                            for (m = 2; m < ps; ++m)\n                                newpoints.push(points[i + m]);\n                            bottom = qy; \n                        }\n\n                        j += otherps;\n                    }\n                    else { // px < qx\n                        if (fromgap && withlines) {\n                            // if we come from a gap, we just skip this point\n                            i += ps;\n                            continue;\n                        }\n                            \n                        for (m = 0; m < ps; ++m)\n                            newpoints.push(points[i + m]);\n                        \n                        // we might be able to interpolate a point below,\n                        // this can give us a better y\n                        if (withlines && j > 0 && otherpoints[j - otherps] != null)\n                            bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx);\n\n                        newpoints[l + accumulateOffset] += bottom;\n                        \n                        i += ps;\n                    }\n\n                    fromgap = false;\n                    \n                    if (l != newpoints.length && withbottom)\n                        newpoints[l + 2] += bottom;\n                }\n\n                // maintain the line steps invariant\n                if (withsteps && l != newpoints.length && l > 0\n                    && newpoints[l] != null\n                    && newpoints[l] != newpoints[l - ps]\n                    && newpoints[l + 1] != newpoints[l - ps + 1]) {\n                    for (m = 0; m < ps; ++m)\n                        newpoints[l + ps + m] = newpoints[l + m];\n                    newpoints[l + 1] = newpoints[l - ps + 1];\n                }\n            }\n\n            datapoints.points = newpoints;\n        }\n        \n        plot.hooks.processDatapoints.push(stackData);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'stack',\n        version: '1.2'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.symbol.js",
    "content": "/* Flot plugin that adds some extra symbols for plotting points.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe symbols are accessed as strings through the standard symbol options:\n\n\tseries: {\n\t\tpoints: {\n\t\t\tsymbol: \"square\" // or \"diamond\", \"triangle\", \"cross\"\n\t\t}\n\t}\n\n*/\n\n(function ($) {\n    function processRawData(plot, series, datapoints) {\n        // we normalize the area of each symbol so it is approximately the\n        // same as a circle of the given radius\n\n        var handlers = {\n            square: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2\n                var size = radius * Math.sqrt(Math.PI) / 2;\n                ctx.rect(x - size, y - size, size + size, size + size);\n            },\n            diamond: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = 2s^2  =>  s = r * sqrt(pi/2)\n                var size = radius * Math.sqrt(Math.PI / 2);\n                ctx.moveTo(x - size, y);\n                ctx.lineTo(x, y - size);\n                ctx.lineTo(x + size, y);\n                ctx.lineTo(x, y + size);\n                ctx.lineTo(x - size, y);\n            },\n            triangle: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = 1/2 * s^2 * sin (pi / 3)  =>  s = r * sqrt(2 * pi / sin(pi / 3))\n                var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));\n                var height = size * Math.sin(Math.PI / 3);\n                ctx.moveTo(x - size/2, y + height/2);\n                ctx.lineTo(x + size/2, y + height/2);\n                if (!shadow) {\n                    ctx.lineTo(x, y - height/2);\n                    ctx.lineTo(x - size/2, y + height/2);\n                }\n            },\n            cross: function (ctx, x, y, radius, shadow) {\n                // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2\n                var size = radius * Math.sqrt(Math.PI) / 2;\n                ctx.moveTo(x - size, y - size);\n                ctx.lineTo(x + size, y + size);\n                ctx.moveTo(x - size, y + size);\n                ctx.lineTo(x + size, y - size);\n            }\n        };\n\n        var s = series.points.symbol;\n        if (handlers[s])\n            series.points.symbol = handlers[s];\n    }\n    \n    function init(plot) {\n        plot.hooks.processDatapoints.push(processRawData);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        name: 'symbols',\n        version: '1.0'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.threshold.js",
    "content": "/* Flot plugin for thresholding data.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nThe plugin supports these options:\n\n\tseries: {\n\t\tthreshold: {\n\t\t\tbelow: number\n\t\t\tcolor: colorspec\n\t\t}\n\t}\n\nIt can also be applied to a single series, like this:\n\n\t$.plot( $(\"#placeholder\"), [{\n\t\tdata: [ ... ],\n\t\tthreshold: { ... }\n\t}])\n\nAn array can be passed for multiple thresholding, like this:\n\n\tthreshold: [{\n\t\tbelow: number1\n\t\tcolor: color1\n\t},{\n\t\tbelow: number2\n\t\tcolor: color2\n\t}]\n\nThese multiple threshold objects can be passed in any order since they are\nsorted by the processing function.\n\nThe data points below \"below\" are drawn with the specified color. This makes\nit easy to mark points below 0, e.g. for budget data.\n\nInternally, the plugin works by splitting the data into two series, above and\nbelow the threshold. The extra series below the threshold will have its label\ncleared and the special \"originSeries\" attribute set to the original series.\nYou may need to check for this in hover events.\n\n*/\n\n(function ($) {\n    var options = {\n        series: { threshold: null } // or { below: number, color: color spec}\n    };\n    \n    function init(plot) {\n        function thresholdData(plot, s, datapoints, below, color) {\n            var ps = datapoints.pointsize, i, x, y, p, prevp,\n                thresholded = $.extend({}, s); // note: shallow copy\n\n            thresholded.datapoints = { points: [], pointsize: ps, format: datapoints.format };\n            thresholded.label = null;\n            thresholded.color = color;\n            thresholded.threshold = null;\n            thresholded.originSeries = s;\n            thresholded.data = [];\n \n            var origpoints = datapoints.points,\n                addCrossingPoints = s.lines.show;\n\n            var threspoints = [];\n            var newpoints = [];\n            var m;\n\n            for (i = 0; i < origpoints.length; i += ps) {\n                x = origpoints[i];\n                y = origpoints[i + 1];\n\n                prevp = p;\n                if (y < below)\n                    p = threspoints;\n                else\n                    p = newpoints;\n\n                if (addCrossingPoints && prevp != p && x != null\n                    && i > 0 && origpoints[i - ps] != null) {\n                    var interx = x + (below - y) * (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]);\n                    prevp.push(interx);\n                    prevp.push(below);\n                    for (m = 2; m < ps; ++m)\n                        prevp.push(origpoints[i + m]);\n                    \n                    p.push(null); // start new segment\n                    p.push(null);\n                    for (m = 2; m < ps; ++m)\n                        p.push(origpoints[i + m]);\n                    p.push(interx);\n                    p.push(below);\n                    for (m = 2; m < ps; ++m)\n                        p.push(origpoints[i + m]);\n                }\n\n                p.push(x);\n                p.push(y);\n                for (m = 2; m < ps; ++m)\n                    p.push(origpoints[i + m]);\n            }\n\n            datapoints.points = newpoints;\n            thresholded.datapoints.points = threspoints;\n            \n            if (thresholded.datapoints.points.length > 0) {\n                var origIndex = $.inArray(s, plot.getData());\n                // Insert newly-generated series right after original one (to prevent it from becoming top-most)\n                plot.getData().splice(origIndex + 1, 0, thresholded);\n            }\n                \n            // FIXME: there are probably some edge cases left in bars\n        }\n        \n        function processThresholds(plot, s, datapoints) {\n            if (!s.threshold)\n                return;\n            \n            if (s.threshold instanceof Array) {\n                s.threshold.sort(function(a, b) {\n                    return a.below - b.below;\n                });\n                \n                $(s.threshold).each(function(i, th) {\n                    thresholdData(plot, s, datapoints, th.below, th.color);\n                });\n            }\n            else {\n                thresholdData(plot, s, datapoints, s.threshold.below, s.threshold.color);\n            }\n        }\n        \n        plot.hooks.processDatapoints.push(processThresholds);\n    }\n    \n    $.plot.plugins.push({\n        init: init,\n        options: options,\n        name: 'threshold',\n        version: '1.2'\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/flot/jquery.flot.time.js",
    "content": "/* Pretty handling of time axes.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\nSet axis.mode to \"time\" to enable. See the section \"Time series data\" in\nAPI.txt for details.\n\n*/\n\n(function($) {\n\n\tvar options = {\n\t\txaxis: {\n\t\t\ttimezone: null,\t\t// \"browser\" for local to the client or timezone for timezone-js\n\t\t\ttimeformat: null,\t// format string to use\n\t\t\ttwelveHourClock: false,\t// 12 or 24 time in time mode\n\t\t\tmonthNames: null\t// list of names of months\n\t\t}\n\t};\n\n\t// round to nearby lower multiple of base\n\n\tfunction floorInBase(n, base) {\n\t\treturn base * Math.floor(n / base);\n\t}\n\n\t// Returns a string with the date d formatted according to fmt.\n\t// A subset of the Open Group's strftime format is supported.\n\n\tfunction formatDate(d, fmt, monthNames, dayNames) {\n\n\t\tif (typeof d.strftime == \"function\") {\n\t\t\treturn d.strftime(fmt);\n\t\t}\n\n\t\tvar leftPad = function(n, pad) {\n\t\t\tn = \"\" + n;\n\t\t\tpad = \"\" + (pad == null ? \"0\" : pad);\n\t\t\treturn n.length == 1 ? pad + n : n;\n\t\t};\n\n\t\tvar r = [];\n\t\tvar escape = false;\n\t\tvar hours = d.getHours();\n\t\tvar isAM = hours < 12;\n\n\t\tif (monthNames == null) {\n\t\t\tmonthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\t\t}\n\n\t\tif (dayNames == null) {\n\t\t\tdayNames = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\t\t}\n\n\t\tvar hours12;\n\n\t\tif (hours > 12) {\n\t\t\thours12 = hours - 12;\n\t\t} else if (hours == 0) {\n\t\t\thours12 = 12;\n\t\t} else {\n\t\t\thours12 = hours;\n\t\t}\n\n\t\tfor (var i = 0; i < fmt.length; ++i) {\n\n\t\t\tvar c = fmt.charAt(i);\n\n\t\t\tif (escape) {\n\t\t\t\tswitch (c) {\n\t\t\t\t\tcase 'a': c = \"\" + dayNames[d.getDay()]; break;\n\t\t\t\t\tcase 'b': c = \"\" + monthNames[d.getMonth()]; break;\n\t\t\t\t\tcase 'd': c = leftPad(d.getDate()); break;\n\t\t\t\t\tcase 'e': c = leftPad(d.getDate(), \" \"); break;\n\t\t\t\t\tcase 'h':\t// For back-compat with 0.7; remove in 1.0\n\t\t\t\t\tcase 'H': c = leftPad(hours); break;\n\t\t\t\t\tcase 'I': c = leftPad(hours12); break;\n\t\t\t\t\tcase 'l': c = leftPad(hours12, \" \"); break;\n\t\t\t\t\tcase 'm': c = leftPad(d.getMonth() + 1); break;\n\t\t\t\t\tcase 'M': c = leftPad(d.getMinutes()); break;\n\t\t\t\t\t// quarters not in Open Group's strftime specification\n\t\t\t\t\tcase 'q':\n\t\t\t\t\t\tc = \"\" + (Math.floor(d.getMonth() / 3) + 1); break;\n\t\t\t\t\tcase 'S': c = leftPad(d.getSeconds()); break;\n\t\t\t\t\tcase 'y': c = leftPad(d.getFullYear() % 100); break;\n\t\t\t\t\tcase 'Y': c = \"\" + d.getFullYear(); break;\n\t\t\t\t\tcase 'p': c = (isAM) ? (\"\" + \"am\") : (\"\" + \"pm\"); break;\n\t\t\t\t\tcase 'P': c = (isAM) ? (\"\" + \"AM\") : (\"\" + \"PM\"); break;\n\t\t\t\t\tcase 'w': c = \"\" + d.getDay(); break;\n\t\t\t\t}\n\t\t\t\tr.push(c);\n\t\t\t\tescape = false;\n\t\t\t} else {\n\t\t\t\tif (c == \"%\") {\n\t\t\t\t\tescape = true;\n\t\t\t\t} else {\n\t\t\t\t\tr.push(c);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn r.join(\"\");\n\t}\n\n\t// To have a consistent view of time-based data independent of which time\n\t// zone the client happens to be in we need a date-like object independent\n\t// of time zones.  This is done through a wrapper that only calls the UTC\n\t// versions of the accessor methods.\n\n\tfunction makeUtcWrapper(d) {\n\n\t\tfunction addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) {\n\t\t\tsourceObj[sourceMethod] = function() {\n\t\t\t\treturn targetObj[targetMethod].apply(targetObj, arguments);\n\t\t\t};\n\t\t};\n\n\t\tvar utc = {\n\t\t\tdate: d\n\t\t};\n\n\t\t// support strftime, if found\n\n\t\tif (d.strftime != undefined) {\n\t\t\taddProxyMethod(utc, \"strftime\", d, \"strftime\");\n\t\t}\n\n\t\taddProxyMethod(utc, \"getTime\", d, \"getTime\");\n\t\taddProxyMethod(utc, \"setTime\", d, \"setTime\");\n\n\t\tvar props = [\"Date\", \"Day\", \"FullYear\", \"Hours\", \"Milliseconds\", \"Minutes\", \"Month\", \"Seconds\"];\n\n\t\tfor (var p = 0; p < props.length; p++) {\n\t\t\taddProxyMethod(utc, \"get\" + props[p], d, \"getUTC\" + props[p]);\n\t\t\taddProxyMethod(utc, \"set\" + props[p], d, \"setUTC\" + props[p]);\n\t\t}\n\n\t\treturn utc;\n\t};\n\n\t// select time zone strategy.  This returns a date-like object tied to the\n\t// desired timezone\n\n\tfunction dateGenerator(ts, opts) {\n\t\tif (opts.timezone == \"browser\") {\n\t\t\treturn new Date(ts);\n\t\t} else if (!opts.timezone || opts.timezone == \"utc\") {\n\t\t\treturn makeUtcWrapper(new Date(ts));\n\t\t} else if (typeof timezoneJS != \"undefined\" && typeof timezoneJS.Date != \"undefined\") {\n\t\t\tvar d = new timezoneJS.Date();\n\t\t\t// timezone-js is fickle, so be sure to set the time zone before\n\t\t\t// setting the time.\n\t\t\td.setTimezone(opts.timezone);\n\t\t\td.setTime(ts);\n\t\t\treturn d;\n\t\t} else {\n\t\t\treturn makeUtcWrapper(new Date(ts));\n\t\t}\n\t}\n\t\n\t// map of app. size of time units in milliseconds\n\n\tvar timeUnitSize = {\n\t\t\"second\": 1000,\n\t\t\"minute\": 60 * 1000,\n\t\t\"hour\": 60 * 60 * 1000,\n\t\t\"day\": 24 * 60 * 60 * 1000,\n\t\t\"month\": 30 * 24 * 60 * 60 * 1000,\n\t\t\"quarter\": 3 * 30 * 24 * 60 * 60 * 1000,\n\t\t\"year\": 365.2425 * 24 * 60 * 60 * 1000\n\t};\n\n\t// the allowed tick sizes, after 1 year we use\n\t// an integer algorithm\n\n\tvar baseSpec = [\n\t\t[1, \"second\"], [2, \"second\"], [5, \"second\"], [10, \"second\"],\n\t\t[30, \"second\"], \n\t\t[1, \"minute\"], [2, \"minute\"], [5, \"minute\"], [10, \"minute\"],\n\t\t[30, \"minute\"], \n\t\t[1, \"hour\"], [2, \"hour\"], [4, \"hour\"],\n\t\t[8, \"hour\"], [12, \"hour\"],\n\t\t[1, \"day\"], [2, \"day\"], [3, \"day\"],\n\t\t[0.25, \"month\"], [0.5, \"month\"], [1, \"month\"],\n\t\t[2, \"month\"]\n\t];\n\n\t// we don't know which variant(s) we'll need yet, but generating both is\n\t// cheap\n\n\tvar specMonths = baseSpec.concat([[3, \"month\"], [6, \"month\"],\n\t\t[1, \"year\"]]);\n\tvar specQuarters = baseSpec.concat([[1, \"quarter\"], [2, \"quarter\"],\n\t\t[1, \"year\"]]);\n\n\tfunction init(plot) {\n\t\tplot.hooks.processOptions.push(function (plot, options) {\n\t\t\t$.each(plot.getAxes(), function(axisName, axis) {\n\n\t\t\t\tvar opts = axis.options;\n\n\t\t\t\tif (opts.mode == \"time\") {\n\t\t\t\t\taxis.tickGenerator = function(axis) {\n\n\t\t\t\t\t\tvar ticks = [];\n\t\t\t\t\t\tvar d = dateGenerator(axis.min, opts);\n\t\t\t\t\t\tvar minSize = 0;\n\n\t\t\t\t\t\t// make quarter use a possibility if quarters are\n\t\t\t\t\t\t// mentioned in either of these options\n\n\t\t\t\t\t\tvar spec = (opts.tickSize && opts.tickSize[1] ===\n\t\t\t\t\t\t\t\"quarter\") ||\n\t\t\t\t\t\t\t(opts.minTickSize && opts.minTickSize[1] ===\n\t\t\t\t\t\t\t\"quarter\") ? specQuarters : specMonths;\n\n\t\t\t\t\t\tif (opts.minTickSize != null) {\n\t\t\t\t\t\t\tif (typeof opts.tickSize == \"number\") {\n\t\t\t\t\t\t\t\tminSize = opts.tickSize;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tminSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (var i = 0; i < spec.length - 1; ++i) {\n\t\t\t\t\t\t\tif (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]]\n\t\t\t\t\t\t\t\t\t\t\t  + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2\n\t\t\t\t\t\t\t\t&& spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar size = spec[i][0];\n\t\t\t\t\t\tvar unit = spec[i][1];\n\n\t\t\t\t\t\t// special-case the possibility of several years\n\n\t\t\t\t\t\tif (unit == \"year\") {\n\n\t\t\t\t\t\t\t// if given a minTickSize in years, just use it,\n\t\t\t\t\t\t\t// ensuring that it's an integer\n\n\t\t\t\t\t\t\tif (opts.minTickSize != null && opts.minTickSize[1] == \"year\") {\n\t\t\t\t\t\t\t\tsize = Math.floor(opts.minTickSize[0]);\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tvar magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10));\n\t\t\t\t\t\t\t\tvar norm = (axis.delta / timeUnitSize.year) / magn;\n\n\t\t\t\t\t\t\t\tif (norm < 1.5) {\n\t\t\t\t\t\t\t\t\tsize = 1;\n\t\t\t\t\t\t\t\t} else if (norm < 3) {\n\t\t\t\t\t\t\t\t\tsize = 2;\n\t\t\t\t\t\t\t\t} else if (norm < 7.5) {\n\t\t\t\t\t\t\t\t\tsize = 5;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsize = 10;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsize *= magn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// minimum size for years is 1\n\n\t\t\t\t\t\t\tif (size < 1) {\n\t\t\t\t\t\t\t\tsize = 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taxis.tickSize = opts.tickSize || [size, unit];\n\t\t\t\t\t\tvar tickSize = axis.tickSize[0];\n\t\t\t\t\t\tunit = axis.tickSize[1];\n\n\t\t\t\t\t\tvar step = tickSize * timeUnitSize[unit];\n\n\t\t\t\t\t\tif (unit == \"second\") {\n\t\t\t\t\t\t\td.setSeconds(floorInBase(d.getSeconds(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"minute\") {\n\t\t\t\t\t\t\td.setMinutes(floorInBase(d.getMinutes(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"hour\") {\n\t\t\t\t\t\t\td.setHours(floorInBase(d.getHours(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"month\") {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), tickSize));\n\t\t\t\t\t\t} else if (unit == \"quarter\") {\n\t\t\t\t\t\t\td.setMonth(3 * floorInBase(d.getMonth() / 3,\n\t\t\t\t\t\t\t\ttickSize));\n\t\t\t\t\t\t} else if (unit == \"year\") {\n\t\t\t\t\t\t\td.setFullYear(floorInBase(d.getFullYear(), tickSize));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// reset smaller components\n\n\t\t\t\t\t\td.setMilliseconds(0);\n\n\t\t\t\t\t\tif (step >= timeUnitSize.minute) {\n\t\t\t\t\t\t\td.setSeconds(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.hour) {\n\t\t\t\t\t\t\td.setMinutes(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.day) {\n\t\t\t\t\t\t\td.setHours(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.day * 4) {\n\t\t\t\t\t\t\td.setDate(1);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.month * 2) {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), 3));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.quarter * 2) {\n\t\t\t\t\t\t\td.setMonth(floorInBase(d.getMonth(), 6));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (step >= timeUnitSize.year) {\n\t\t\t\t\t\t\td.setMonth(0);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar carry = 0;\n\t\t\t\t\t\tvar v = Number.NaN;\n\t\t\t\t\t\tvar prev;\n\n\t\t\t\t\t\tdo {\n\n\t\t\t\t\t\t\tprev = v;\n\t\t\t\t\t\t\tv = d.getTime();\n\t\t\t\t\t\t\tticks.push(v);\n\n\t\t\t\t\t\t\tif (unit == \"month\" || unit == \"quarter\") {\n\t\t\t\t\t\t\t\tif (tickSize < 1) {\n\n\t\t\t\t\t\t\t\t\t// a bit complicated - we'll divide the\n\t\t\t\t\t\t\t\t\t// month/quarter up but we need to take\n\t\t\t\t\t\t\t\t\t// care of fractions so we don't end up in\n\t\t\t\t\t\t\t\t\t// the middle of a day\n\n\t\t\t\t\t\t\t\t\td.setDate(1);\n\t\t\t\t\t\t\t\t\tvar start = d.getTime();\n\t\t\t\t\t\t\t\t\td.setMonth(d.getMonth() +\n\t\t\t\t\t\t\t\t\t\t(unit == \"quarter\" ? 3 : 1));\n\t\t\t\t\t\t\t\t\tvar end = d.getTime();\n\t\t\t\t\t\t\t\t\td.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize);\n\t\t\t\t\t\t\t\t\tcarry = d.getHours();\n\t\t\t\t\t\t\t\t\td.setHours(0);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\td.setMonth(d.getMonth() +\n\t\t\t\t\t\t\t\t\t\ttickSize * (unit == \"quarter\" ? 3 : 1));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (unit == \"year\") {\n\t\t\t\t\t\t\t\td.setFullYear(d.getFullYear() + tickSize);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\td.setTime(v + step);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while (v < axis.max && v != prev);\n\n\t\t\t\t\t\treturn ticks;\n\t\t\t\t\t};\n\n\t\t\t\t\taxis.tickFormatter = function (v, axis) {\n\n\t\t\t\t\t\tvar d = dateGenerator(v, axis.options);\n\n\t\t\t\t\t\t// first check global format\n\n\t\t\t\t\t\tif (opts.timeformat != null) {\n\t\t\t\t\t\t\treturn formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// possibly use quarters if quarters are mentioned in\n\t\t\t\t\t\t// any of these places\n\n\t\t\t\t\t\tvar useQuarters = (axis.options.tickSize &&\n\t\t\t\t\t\t\t\taxis.options.tickSize[1] == \"quarter\") ||\n\t\t\t\t\t\t\t(axis.options.minTickSize &&\n\t\t\t\t\t\t\t\taxis.options.minTickSize[1] == \"quarter\");\n\n\t\t\t\t\t\tvar t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]];\n\t\t\t\t\t\tvar span = axis.max - axis.min;\n\t\t\t\t\t\tvar suffix = (opts.twelveHourClock) ? \" %p\" : \"\";\n\t\t\t\t\t\tvar hourCode = (opts.twelveHourClock) ? \"%I\" : \"%H\";\n\t\t\t\t\t\tvar fmt;\n\n\t\t\t\t\t\tif (t < timeUnitSize.minute) {\n\t\t\t\t\t\t\tfmt = hourCode + \":%M:%S\" + suffix;\n\t\t\t\t\t\t} else if (t < timeUnitSize.day) {\n\t\t\t\t\t\t\tif (span < 2 * timeUnitSize.day) {\n\t\t\t\t\t\t\t\tfmt = hourCode + \":%M\" + suffix;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"%b %d \" + hourCode + \":%M\" + suffix;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (t < timeUnitSize.month) {\n\t\t\t\t\t\t\tfmt = \"%b %d\";\n\t\t\t\t\t\t} else if ((useQuarters && t < timeUnitSize.quarter) ||\n\t\t\t\t\t\t\t(!useQuarters && t < timeUnitSize.year)) {\n\t\t\t\t\t\t\tif (span < timeUnitSize.year) {\n\t\t\t\t\t\t\t\tfmt = \"%b\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"%b %Y\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (useQuarters && t < timeUnitSize.year) {\n\t\t\t\t\t\t\tif (span < timeUnitSize.year) {\n\t\t\t\t\t\t\t\tfmt = \"Q%q\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfmt = \"Q%q %Y\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfmt = \"%Y\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar rt = formatDate(d, fmt, opts.monthNames, opts.dayNames);\n\n\t\t\t\t\t\treturn rt;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t$.plot.plugins.push({\n\t\tinit: init,\n\t\toptions: options,\n\t\tname: 'time',\n\t\tversion: '1.0'\n\t});\n\n\t// Time-axis support used to be in Flot core, which exposed the\n\t// formatDate function on the plot object.  Various plugins depend\n\t// on the function, so we need to re-expose it here.\n\n\t$.plot.formatDate = formatDate;\n\t$.plot.dateGenerator = dateGenerator;\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/font-awesome/css/font-awesome.css",
    "content": "/*!\n *  Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.4.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-genderless:before {\n  content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n  content: \"\\f23c\";\n}\n.fa-opencart:before {\n  content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery-full:before {\n  content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"\\f245\";\n}\n.fa-i-cursor:before {\n  content: \"\\f246\";\n}\n.fa-object-group:before {\n  content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n  content: \"\\f248\";\n}\n.fa-sticky-note:before {\n  content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"\\f24c\";\n}\n.fa-clone:before {\n  content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n  content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"\\f253\";\n}\n.fa-hourglass:before {\n  content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"\\f25b\";\n}\n.fa-trademark:before {\n  content: \"\\f25c\";\n}\n.fa-registered:before {\n  content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n  content: \"\\f25e\";\n}\n.fa-gg:before {\n  content: \"\\f260\";\n}\n.fa-gg-circle:before {\n  content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n  content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\";\n}\n.fa-get-pocket:before {\n  content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"\\f266\";\n}\n.fa-safari:before {\n  content: \"\\f267\";\n}\n.fa-chrome:before {\n  content: \"\\f268\";\n}\n.fa-firefox:before {\n  content: \"\\f269\";\n}\n.fa-opera:before {\n  content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"\\f26c\";\n}\n.fa-contao:before {\n  content: \"\\f26d\";\n}\n.fa-500px:before {\n  content: \"\\f26e\";\n}\n.fa-amazon:before {\n  content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"\\f274\";\n}\n.fa-industry:before {\n  content: \"\\f275\";\n}\n.fa-map-pin:before {\n  content: \"\\f276\";\n}\n.fa-map-signs:before {\n  content: \"\\f277\";\n}\n.fa-map-o:before {\n  content: \"\\f278\";\n}\n.fa-map:before {\n  content: \"\\f279\";\n}\n.fa-commenting:before {\n  content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n  content: \"\\f27b\";\n}\n.fa-houzz:before {\n  content: \"\\f27c\";\n}\n.fa-vimeo:before {\n  content: \"\\f27d\";\n}\n.fa-black-tie:before {\n  content: \"\\f27e\";\n}\n.fa-fonticons:before {\n  content: \"\\f280\";\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/agenda-views.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/background-events.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    businessHours: true, // display business hours\n                    editable: true,\n                    events: [\n                        {\n                            title: 'Business Lunch',\n                            start: '2015-02-03T13:00:00',\n                            constraint: 'businessHours'\n                        },\n                        {\n                            title: 'Meeting',\n                            start: '2015-02-13T11:00:00',\n                            constraint: 'availableForMeeting', // defined below\n                            color: '#257e4a'\n                        },\n                        {\n                            title: 'Conference',\n                            start: '2015-02-18',\n                            end: '2015-02-20'\n                        },\n                        {\n                            title: 'Party',\n                            start: '2015-02-29T20:00:00'\n                        },\n                        // areas where \"Meeting\" must be dropped\n                        {\n                            id: 'availableForMeeting',\n                            start: '2015-02-11T10:00:00',\n                            end: '2015-02-11T16:00:00',\n                            rendering: 'background'\n                        },\n                        {\n                            id: 'availableForMeeting',\n                            start: '2015-02-13T10:00:00',\n                            end: '2015-02-13T16:00:00',\n                            rendering: 'background'\n                        },\n                        // red areas where no events can be dropped\n                        {\n                            start: '2015-02-24',\n                            end: '2015-02-28',\n                            overlap: false,\n                            rendering: 'background',\n                            color: '#ff9f89'\n                        },\n                        {\n                            start: '2015-02-06',\n                            end: '2015-02-08',\n                            overlap: false,\n                            rendering: 'background',\n                            color: '#ff9f89'\n                        }\n                    ]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/basic-views.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,basicWeek,basicDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/default.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/external-dragging.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../lib/jquery-ui.custom.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                /* initialize the external events\n                -----------------------------------------------------------------*/\n                $('#external-events .fc-event').each(function()\n                {\n                    // store data so the calendar knows to render an event upon drop\n                    $(this).data('event',\n                    {\n                        title: $.trim($(this).text()), // use the element's text as the event title\n                        stick: true // maintain when user navigates (see docs on the renderEvent method)\n                    });\n                    // make the event draggable using jQuery UI\n                    $(this).draggable(\n                    {\n                        zIndex: 999,\n                        revert: true, // will cause the event to go back to its\n                        revertDuration: 0 //  original position after the drag\n                    });\n                });\n                /* initialize the calendar\n                -----------------------------------------------------------------*/\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    editable: true,\n                    droppable: true, // this allows things to be dropped onto the calendar\n                    drop: function()\n                    {\n                        // is the \"remove after drop\" checkbox checked?\n                        if ($('#drop-remove').is(':checked'))\n                        {\n                            // if so, remove the element from the \"Draggable Events\" list\n                            $(this).remove();\n                        }\n                    }\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin-top: 40px;\n                text-align: center;\n                font-size: 14px;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n            }\n            \n            #wrap {\n                width: 1100px;\n                margin: 0 auto;\n            }\n            \n            #external-events {\n                float: left;\n                width: 150px;\n                padding: 0 10px;\n                border: 1px solid #ccc;\n                background: #eee;\n                text-align: left;\n            }\n            \n            #external-events h4 {\n                font-size: 16px;\n                margin-top: 0;\n                padding-top: 1em;\n            }\n            \n            #external-events .fc-event {\n                margin: 10px 0;\n                cursor: pointer;\n            }\n            \n            #external-events p {\n                margin: 1.5em 0;\n                font-size: 11px;\n                color: #666;\n            }\n            \n            #external-events p input {\n                margin: 0;\n                vertical-align: middle;\n            }\n            \n            #calendar {\n                float: right;\n                width: 900px;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='wrap'>\n            <div id='external-events'>\n                <h4>Draggable Events</h4>\n                <div class='fc-event'>My Event 1</div>\n                <div class='fc-event'>My Event 2</div>\n                <div class='fc-event'>My Event 3</div>\n                <div class='fc-event'>My Event 4</div>\n                <div class='fc-event'>My Event 5</div>\n                <p>\n                    <input type='checkbox' id='drop-remove' />\n                    <label for='drop-remove'>remove after drop</label>\n                </p>\n            </div>\n            <div id='calendar'></div>\n            <div style='clear:both'></div>\n        </div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/gcal.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script src='../gcal.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    // THIS KEY WON'T WORK IN PRODUCTION!!!\n                    // To make your own Google API key, follow the directions here:\n                    // http://fullcalendar.io/docs/google_calendar/\n                    googleCalendarApiKey: 'AIzaSyDcnW6WejpTOCffshGDDb4neIrXVUA1EAE',\n                    // US Holidays\n                    events: 'usa__en@holiday.calendar.google.com',\n                    eventClick: function(event)\n                    {\n                        // opens events in a popup window\n                        window.open(event.url, 'gcalevent', 'width=700,height=600');\n                        return false;\n                    },\n                    loading: function(bool)\n                    {\n                        $('#loading').toggle(bool);\n                    }\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #loading {\n                display: none;\n                position: absolute;\n                top: 10px;\n                right: 10px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='loading'>loading...</div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/json/events.json",
    "content": "[\n  {\n    \"title\": \"All Day Event\",\n    \"start\": \"2015-02-01\"\n  },\n  {\n    \"title\": \"Long Event\",\n    \"start\": \"2015-02-07\",\n    \"end\": \"2015-02-10\"\n  },\n  {\n    \"id\": \"999\",\n    \"title\": \"Repeating Event\",\n    \"start\": \"2015-02-09T16:00:00-05:00\"\n  },\n  {\n    \"id\": \"999\",\n    \"title\": \"Repeating Event\",\n    \"start\": \"2015-02-16T16:00:00-05:00\"\n  },\n  {\n    \"title\": \"Conference\",\n    \"start\": \"2015-02-11\",\n    \"end\": \"2015-02-13\"\n  },\n  {\n    \"title\": \"Meeting\",\n    \"start\": \"2015-02-12T10:30:00-05:00\",\n    \"end\": \"2015-02-12T12:30:00-05:00\"\n  },\n  {\n    \"title\": \"Lunch\",\n    \"start\": \"2015-02-12T12:00:00-05:00\"\n  },\n  {\n    \"title\": \"Meeting\",\n    \"start\": \"2015-02-12T14:30:00-05:00\"\n  },\n  {\n    \"title\": \"Happy Hour\",\n    \"start\": \"2015-02-12T17:30:00-05:00\"\n  },\n  {\n    \"title\": \"Dinner\",\n    \"start\": \"2015-02-12T20:00:00\"\n  },\n  {\n    \"title\": \"Birthday Party\",\n    \"start\": \"2015-02-13T07:00:00-05:00\"\n  },\n  {\n    \"title\": \"Click for Google\",\n    \"url\": \"http://google.com/\",\n    \"start\": \"2015-02-28\"\n  }\n]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/json.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events:\n                    {\n                        url: 'php/get-events.php',\n                        error: function()\n                        {\n                            $('#script-warning').show();\n                        }\n                    },\n                    loading: function(bool)\n                    {\n                        $('#loading').toggle(bool);\n                    }\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 0;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #script-warning {\n                display: none;\n                background: #eee;\n                border-bottom: 1px solid #ddd;\n                padding: 0 10px;\n                line-height: 40px;\n                text-align: center;\n                font-weight: bold;\n                font-size: 12px;\n                color: red;\n            }\n            \n            #loading {\n                display: none;\n                position: absolute;\n                top: 10px;\n                right: 10px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 40px auto;\n                padding: 0 10px;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='script-warning'> <code>php/get-events.php</code> must be running. </div>\n        <div id='loading'>loading...</div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/languages.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link rel='stylesheet' href='../lib/cupertino/jquery-ui.min.css' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script src='../lang-all.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                var currentLangCode = 'en';\n                // build the language selector's options\n                $.each($.fullCalendar.langs, function(langCode)\n                {\n                    $('#lang-selector').append($('<option/>').attr('value', langCode).prop('selected', langCode == currentLangCode).text(langCode));\n                });\n                // rerender the calendar when the selected option changes\n                $('#lang-selector').on('change', function()\n                {\n                    if (this.value)\n                    {\n                        currentLangCode = this.value;\n                        $('#calendar').fullCalendar('destroy');\n                        renderCalendar();\n                    }\n                });\n\n                function renderCalendar()\n                {\n                    $('#calendar').fullCalendar(\n                    {\n                        header:\n                        {\n                            left: 'prev,next today',\n                            center: 'title',\n                            right: 'month,agendaWeek,agendaDay'\n                        },\n                        defaultDate: '2015-02-12',\n                        lang: currentLangCode,\n                        buttonIcons: false, // show the prev/next text\n                        weekNumbers: true,\n                        editable: true,\n                        eventLimit: true, // allow \"more\" link when too many events\n                        events: [\n                        {\n                            title: 'All Day Event',\n                            start: '2015-02-01'\n                        },\n                        {\n                            title: 'Long Event',\n                            start: '2015-02-07',\n                            end: '2015-02-10'\n                        },\n                        {\n                            id: 999,\n                            title: 'Repeating Event',\n                            start: '2015-02-09T16:00:00'\n                        },\n                        {\n                            id: 999,\n                            title: 'Repeating Event',\n                            start: '2015-02-16T16:00:00'\n                        },\n                        {\n                            title: 'Conference',\n                            start: '2015-02-11',\n                            end: '2015-02-13'\n                        },\n                        {\n                            title: 'Meeting',\n                            start: '2015-02-12T10:30:00',\n                            end: '2015-02-12T12:30:00'\n                        },\n                        {\n                            title: 'Lunch',\n                            start: '2015-02-12T12:00:00'\n                        },\n                        {\n                            title: 'Meeting',\n                            start: '2015-02-12T14:30:00'\n                        },\n                        {\n                            title: 'Happy Hour',\n                            start: '2015-02-12T17:30:00'\n                        },\n                        {\n                            title: 'Dinner',\n                            start: '2015-02-12T20:00:00'\n                        },\n                        {\n                            title: 'Birthday Party',\n                            start: '2015-02-13T07:00:00'\n                        },\n                        {\n                            title: 'Click for Google',\n                            url: 'http://google.com/',\n                            start: '2015-02-28'\n                        }]\n                    });\n                }\n                renderCalendar();\n            });\n        </script>\n        <style>\n            body {\n                margin: 0;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #top {\n                background: #eee;\n                border-bottom: 1px solid #ddd;\n                padding: 0 10px;\n                line-height: 40px;\n                font-size: 12px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 40px auto;\n                padding: 0 10px;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='top'> Language:\n            <select id='lang-selector'></select>\n        </div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/php/get-events.php",
    "content": "<?php\n\n//--------------------------------------------------------------------------------------------------\n// This script reads event data from a JSON file and outputs those events which are within the range\n// supplied by the \"start\" and \"end\" GET parameters.\n//\n// An optional \"timezone\" GET parameter will force all ISO8601 date stings to a given timezone.\n//\n// Requires PHP 5.2.0 or higher.\n//--------------------------------------------------------------------------------------------------\n\n// Require our Event class and datetime utilities\nrequire dirname(__FILE__) . '/utils.php';\n\n// Short-circuit if the client did not give us a date range.\nif (!isset($_GET['start']) || !isset($_GET['end'])) {\n\tdie(\"Please provide a date range.\");\n}\n\n// Parse the start/end parameters.\n// These are assumed to be ISO8601 strings with no time nor timezone, like \"2013-12-29\".\n// Since no timezone will be present, they will parsed as UTC.\n$range_start = parseDateTime($_GET['start']);\n$range_end = parseDateTime($_GET['end']);\n\n// Parse the timezone parameter if it is present.\n$timezone = null;\nif (isset($_GET['timezone'])) {\n\t$timezone = new DateTimeZone($_GET['timezone']);\n}\n\n// Read and parse our events JSON file into an array of event data arrays.\n$json = file_get_contents(dirname(__FILE__) . '/../json/events.json');\n$input_arrays = json_decode($json, true);\n\n// Accumulate an output array of event data arrays.\n$output_arrays = array();\nforeach ($input_arrays as $array) {\n\n\t// Convert the input array into a useful Event object\n\t$event = new Event($array, $timezone);\n\n\t// If the event is in-bounds, add it to the output\n\tif ($event->isWithinDayRange($range_start, $range_end)) {\n\t\t$output_arrays[] = $event->toArray();\n\t}\n}\n\n// Send JSON to the client.\necho json_encode($output_arrays);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/php/get-timezones.php",
    "content": "<?php\n\n//--------------------------------------------------------------------------------------------------\n// This script outputs a JSON array of all timezones (like \"America/Chicago\") that PHP supports.\n//\n// Requires PHP 5.2.0 or higher.\n//--------------------------------------------------------------------------------------------------\n\necho json_encode(DateTimeZone::listIdentifiers());"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/php/utils.php",
    "content": "<?php\n\n//--------------------------------------------------------------------------------------------------\n// Utilities for our event-fetching scripts.\n//\n// Requires PHP 5.2.0 or higher.\n//--------------------------------------------------------------------------------------------------\n\n// PHP will fatal error if we attempt to use the DateTime class without this being set.\ndate_default_timezone_set('UTC');\n\n\nclass Event {\n\n\t// Tests whether the given ISO8601 string has a time-of-day or not\n\tconst ALL_DAY_REGEX = '/^\\d{4}-\\d\\d-\\d\\d$/'; // matches strings like \"2013-12-29\"\n\n\tpublic $title;\n\tpublic $allDay; // a boolean\n\tpublic $start; // a DateTime\n\tpublic $end; // a DateTime, or null\n\tpublic $properties = array(); // an array of other misc properties\n\n\n\t// Constructs an Event object from the given array of key=>values.\n\t// You can optionally force the timezone of the parsed dates.\n\tpublic function __construct($array, $timezone=null) {\n\n\t\t$this->title = $array['title'];\n\n\t\tif (isset($array['allDay'])) {\n\t\t\t// allDay has been explicitly specified\n\t\t\t$this->allDay = (bool)$array['allDay'];\n\t\t}\n\t\telse {\n\t\t\t// Guess allDay based off of ISO8601 date strings\n\t\t\t$this->allDay = preg_match(self::ALL_DAY_REGEX, $array['start']) &&\n\t\t\t\t(!isset($array['end']) || preg_match(self::ALL_DAY_REGEX, $array['end']));\n\t\t}\n\n\t\tif ($this->allDay) {\n\t\t\t// If dates are allDay, we want to parse them in UTC to avoid DST issues.\n\t\t\t$timezone = null;\n\t\t}\n\n\t\t// Parse dates\n\t\t$this->start = parseDateTime($array['start'], $timezone);\n\t\t$this->end = isset($array['end']) ? parseDateTime($array['end'], $timezone) : null;\n\n\t\t// Record misc properties\n\t\tforeach ($array as $name => $value) {\n\t\t\tif (!in_array($name, array('title', 'allDay', 'start', 'end'))) {\n\t\t\t\t$this->properties[$name] = $value;\n\t\t\t}\n\t\t}\n\t}\n\n\n\t// Returns whether the date range of our event intersects with the given all-day range.\n\t// $rangeStart and $rangeEnd are assumed to be dates in UTC with 00:00:00 time.\n\tpublic function isWithinDayRange($rangeStart, $rangeEnd) {\n\n\t\t// Normalize our event's dates for comparison with the all-day range.\n\t\t$eventStart = stripTime($this->start);\n\t\t$eventEnd = isset($this->end) ? stripTime($this->end) : null;\n\n\t\tif (!$eventEnd) {\n\t\t\t// No end time? Only check if the start is within range.\n\t\t\treturn $eventStart < $rangeEnd && $eventStart >= $rangeStart;\n\t\t}\n\t\telse {\n\t\t\t// Check if the two ranges intersect.\n\t\t\treturn $eventStart < $rangeEnd && $eventEnd > $rangeStart;\n\t\t}\n\t}\n\n\n\t// Converts this Event object back to a plain data array, to be used for generating JSON\n\tpublic function toArray() {\n\n\t\t// Start with the misc properties (don't worry, PHP won't affect the original array)\n\t\t$array = $this->properties;\n\n\t\t$array['title'] = $this->title;\n\n\t\t// Figure out the date format. This essentially encodes allDay into the date string.\n\t\tif ($this->allDay) {\n\t\t\t$format = 'Y-m-d'; // output like \"2013-12-29\"\n\t\t}\n\t\telse {\n\t\t\t$format = 'c'; // full ISO8601 output, like \"2013-12-29T09:00:00+08:00\"\n\t\t}\n\n\t\t// Serialize dates into strings\n\t\t$array['start'] = $this->start->format($format);\n\t\tif (isset($this->end)) {\n\t\t\t$array['end'] = $this->end->format($format);\n\t\t}\n\n\t\treturn $array;\n\t}\n\n}\n\n\n// Date Utilities\n//----------------------------------------------------------------------------------------------\n\n\n// Parses a string into a DateTime object, optionally forced into the given timezone.\nfunction parseDateTime($string, $timezone=null) {\n\t$date = new DateTime(\n\t\t$string,\n\t\t$timezone ? $timezone : new DateTimeZone('UTC')\n\t\t\t// Used only when the string is ambiguous.\n\t\t\t// Ignored if string has a timezone offset in it.\n\t);\n\tif ($timezone) {\n\t\t// If our timezone was ignored above, force it.\n\t\t$date->setTimezone($timezone);\n\t}\n\treturn $date;\n}\n\n\n// Takes the year/month/date values of the given DateTime and converts them to a new DateTime,\n// but in UTC.\nfunction stripTime($datetime) {\n\treturn new DateTime($datetime->format('Y-m-d'));\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/selectable.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    selectable: true,\n                    selectHelper: true,\n                    select: function(start, end)\n                    {\n                        var title = prompt('Event Title:');\n                        var eventData;\n                        if (title)\n                        {\n                            eventData = {\n                                title: title,\n                                start: start,\n                                end: end\n                            };\n                            $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true\n                        }\n                        $('#calendar').fullCalendar('unselect');\n                    },\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/theme.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link rel='stylesheet' href='../lib/cupertino/jquery-ui.min.css' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                $('#calendar').fullCalendar(\n                {\n                    theme: true,\n                    header:\n                    {\n                        left: 'prev,next today',\n                        center: 'title',\n                        right: 'month,agendaWeek,agendaDay'\n                    },\n                    defaultDate: '2015-02-12',\n                    editable: true,\n                    eventLimit: true, // allow \"more\" link when too many events\n                    events: [\n                    {\n                        title: 'All Day Event',\n                        start: '2015-02-01'\n                    },\n                    {\n                        title: 'Long Event',\n                        start: '2015-02-07',\n                        end: '2015-02-10'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-09T16:00:00'\n                    },\n                    {\n                        id: 999,\n                        title: 'Repeating Event',\n                        start: '2015-02-16T16:00:00'\n                    },\n                    {\n                        title: 'Conference',\n                        start: '2015-02-11',\n                        end: '2015-02-13'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T10:30:00',\n                        end: '2015-02-12T12:30:00'\n                    },\n                    {\n                        title: 'Lunch',\n                        start: '2015-02-12T12:00:00'\n                    },\n                    {\n                        title: 'Meeting',\n                        start: '2015-02-12T14:30:00'\n                    },\n                    {\n                        title: 'Happy Hour',\n                        start: '2015-02-12T17:30:00'\n                    },\n                    {\n                        title: 'Dinner',\n                        start: '2015-02-12T20:00:00'\n                    },\n                    {\n                        title: 'Birthday Party',\n                        start: '2015-02-13T07:00:00'\n                    },\n                    {\n                        title: 'Click for Google',\n                        url: 'http://google.com/',\n                        start: '2015-02-28'\n                    }]\n                });\n            });\n        </script>\n        <style>\n            body {\n                margin: 40px 10px;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/demos/timezones.html",
    "content": "<!DOCTYPE html>\n<html>\n\n    <head>\n        <meta charset='utf-8' />\n        <link href='../fullcalendar.css' rel='stylesheet' />\n        <link href='../fullcalendar.print.css' rel='stylesheet' media='print' />\n        <script src='../lib/moment.min.js'></script>\n        <script src='../lib/jquery.min.js'></script>\n        <script src='../fullcalendar.min.js'></script>\n        <script>\n            $(document).ready(function()\n            {\n                var currentTimezone = false;\n                // load the list of available timezones\n                $.getJSON('php/get-timezones.php', function(timezones)\n                {\n                    $.each(timezones, function(i, timezone)\n                    {\n                        if (timezone != 'UTC')\n                        { // UTC is already in the list\n                            $('#timezone-selector').append($(\"<option/>\").text(timezone).attr('value', timezone));\n                        }\n                    });\n                });\n                // when the timezone selector changes, rerender the calendar\n                $('#timezone-selector').on('change', function()\n                {\n                    currentTimezone = this.value || false;\n                    $('#calendar').fullCalendar('destroy');\n                    renderCalendar();\n                });\n\n                function renderCalendar()\n                {\n                    $('#calendar').fullCalendar(\n                    {\n                        header:\n                        {\n                            left: 'prev,next today',\n                            center: 'title',\n                            right: 'month,agendaWeek,agendaDay'\n                        },\n                        defaultDate: '2015-02-12',\n                        timezone: currentTimezone,\n                        editable: true,\n                        eventLimit: true, // allow \"more\" link when too many events\n                        events:\n                        {\n                            url: 'php/get-events.php',\n                            error: function()\n                            {\n                                $('#script-warning').show();\n                            }\n                        },\n                        loading: function(bool)\n                        {\n                            $('#loading').toggle(bool);\n                        },\n                        eventRender: function(event, el)\n                        {\n                            // render the timezone offset below the event title\n                            if (event.start.hasZone())\n                            {\n                                el.find('.fc-title').after($('<div class=\"tzo\"/>').text(event.start.format('Z')));\n                            }\n                        }\n                    });\n                }\n                renderCalendar();\n            });\n        </script>\n        <style>\n            body {\n                margin: 0;\n                padding: 0;\n                font-family: \"Lucida Grande\", Helvetica, Arial, Verdana, sans-serif;\n                font-size: 14px;\n            }\n            \n            #top {\n                background: #eee;\n                border-bottom: 1px solid #ddd;\n                padding: 0 10px;\n                line-height: 40px;\n                font-size: 12px;\n            }\n            \n            .left {\n                float: left\n            }\n            \n            .right {\n                float: right\n            }\n            \n            .clear {\n                clear: both\n            }\n            \n            #script-warning,\n            #loading {\n                display: none\n            }\n            \n            #script-warning {\n                font-weight: bold;\n                color: red\n            }\n            \n            #calendar {\n                max-width: 900px;\n                margin: 40px auto;\n                padding: 0 10px;\n            }\n            \n            .tzo {\n                color: #000;\n            }\n        </style>\n    </head>\n\n    <body>\n        <div id='top'>\n            <div class='left'> Timezone:\n                <select id='timezone-selector'>\n                    <option value='' selected>none</option>\n                    <option value='local'>local</option>\n                    <option value='UTC'>UTC</option>\n                </select>\n            </div>\n            <div class='right'>\n                <span id='loading'>loading...</span>\n                <span id='script-warning'><code>php/get-events.php</code> must be running.</span>\n            </div>\n            <div class='clear'></div>\n        </div>\n        <div id='calendar'></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/fullcalendar.css",
    "content": "/*!\n * FullCalendar v2.4.0 Stylesheet\n * Docs & License: http://fullcalendar.io/\n * (c) 2015 Adam Shaw\n */\n\n\n.fc {\n\tdirection: ltr;\n\ttext-align: left;\n}\n\n.fc-rtl {\n\ttext-align: right;\n}\n\nbody .fc { /* extra precedence to overcome jqui */\n\tfont-size: 1em;\n}\n\n\n/* Colors\n--------------------------------------------------------------------------------------------------*/\n\n.fc-unthemed th,\n.fc-unthemed td,\n.fc-unthemed thead,\n.fc-unthemed tbody,\n.fc-unthemed .fc-divider,\n.fc-unthemed .fc-row,\n.fc-unthemed .fc-popover {\n\tborder-color: #ddd;\n}\n\n.fc-unthemed .fc-popover {\n\tbackground-color: #fff;\n}\n\n.fc-unthemed .fc-divider,\n.fc-unthemed .fc-popover .fc-header {\n\tbackground: #eee;\n}\n\n.fc-unthemed .fc-popover .fc-header .fc-close {\n\tcolor: #666;\n}\n\n.fc-unthemed .fc-today {\n\tbackground: #fcf8e3;\n}\n\n.fc-highlight { /* when user is selecting cells */\n\tbackground: #bce8f1;\n\topacity: .3;\n\tfilter: alpha(opacity=30); /* for IE */\n}\n\n.fc-bgevent { /* default look for background events */\n\tbackground: rgb(143, 223, 130);\n\topacity: .3;\n\tfilter: alpha(opacity=30); /* for IE */\n}\n\n.fc-nonbusiness { /* default look for non-business-hours areas */\n\t/* will inherit .fc-bgevent's styles */\n\tbackground: #d7d7d7;\n}\n\n\n/* Icons (inline elements with styled text that mock arrow icons)\n--------------------------------------------------------------------------------------------------*/\n\n.fc-icon {\n\tdisplay: inline-block;\n\twidth: 1em;\n\theight: 1em;\n\tline-height: 1em;\n\tfont-size: 1em;\n\ttext-align: center;\n\toverflow: hidden;\n\tfont-family: \"Courier New\", Courier, monospace;\n\n\t/* don't allow browser text-selection */\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\t}\n\n/*\nAcceptable font-family overrides for individual icons:\n\t\"Arial\", sans-serif\n\t\"Times New Roman\", serif\n\nNOTE: use percentage font sizes or else old IE chokes\n*/\n\n.fc-icon:after {\n\tposition: relative;\n\tmargin: 0 -1em; /* ensures character will be centered, regardless of width */\n}\n\n.fc-icon-left-single-arrow:after {\n\tcontent: \"\\02039\";\n\tfont-weight: bold;\n\tfont-size: 200%;\n\ttop: -7%;\n\tleft: 3%;\n}\n\n.fc-icon-right-single-arrow:after {\n\tcontent: \"\\0203A\";\n\tfont-weight: bold;\n\tfont-size: 200%;\n\ttop: -7%;\n\tleft: -3%;\n}\n\n.fc-icon-left-double-arrow:after {\n\tcontent: \"\\000AB\";\n\tfont-size: 160%;\n\ttop: -7%;\n}\n\n.fc-icon-right-double-arrow:after {\n\tcontent: \"\\000BB\";\n\tfont-size: 160%;\n\ttop: -7%;\n}\n\n.fc-icon-left-triangle:after {\n\tcontent: \"\\25C4\";\n\tfont-size: 125%;\n\ttop: 3%;\n\tleft: -2%;\n}\n\n.fc-icon-right-triangle:after {\n\tcontent: \"\\25BA\";\n\tfont-size: 125%;\n\ttop: 3%;\n\tleft: 2%;\n}\n\n.fc-icon-down-triangle:after {\n\tcontent: \"\\25BC\";\n\tfont-size: 125%;\n\ttop: 2%;\n}\n\n.fc-icon-x:after {\n\tcontent: \"\\000D7\";\n\tfont-size: 200%;\n\ttop: 6%;\n}\n\n\n/* Buttons (styled <button> tags, normalized to work cross-browser)\n--------------------------------------------------------------------------------------------------*/\n\n.fc button {\n\t/* force height to include the border and padding */\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n\tbox-sizing: border-box;\n\n\t/* dimensions */\n\tmargin: 0;\n\theight: 2.1em;\n\tpadding: 0 .6em;\n\n\t/* text & cursor */\n\tfont-size: 1em; /* normalize */\n\twhite-space: nowrap;\n\tcursor: pointer;\n}\n\n/* Firefox has an annoying inner border */\n.fc button::-moz-focus-inner { margin: 0; padding: 0; }\n\t\n.fc-state-default { /* non-theme */\n\tborder: 1px solid;\n}\n\n.fc-state-default.fc-corner-left { /* non-theme */\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n}\n\n.fc-state-default.fc-corner-right { /* non-theme */\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n}\n\n/* icons in buttons */\n\n.fc button .fc-icon { /* non-theme */\n\tposition: relative;\n\ttop: -0.05em; /* seems to be a good adjustment across browsers */\n\tmargin: 0 .2em;\n\tvertical-align: middle;\n}\n\t\n/*\n  button states\n  borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)\n*/\n\n.fc-state-default {\n\tbackground-color: #f5f5f5;\n\tbackground-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);\n\tbackground-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));\n\tbackground-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);\n\tbackground-image: -o-linear-gradient(top, #ffffff, #e6e6e6);\n\tbackground-image: linear-gradient(to bottom, #ffffff, #e6e6e6);\n\tbackground-repeat: repeat-x;\n\tborder-color: #e6e6e6 #e6e6e6 #bfbfbf;\n\tborder-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n\tcolor: #333;\n\ttext-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);\n\tbox-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.fc-state-hover,\n.fc-state-down,\n.fc-state-active,\n.fc-state-disabled {\n\tcolor: #333333;\n\tbackground-color: #e6e6e6;\n}\n\n.fc-state-hover {\n\tcolor: #333333;\n\ttext-decoration: none;\n\tbackground-position: 0 -15px;\n\t-webkit-transition: background-position 0.1s linear;\n\t   -moz-transition: background-position 0.1s linear;\n\t     -o-transition: background-position 0.1s linear;\n\t        transition: background-position 0.1s linear;\n}\n\n.fc-state-down,\n.fc-state-active {\n\tbackground-color: #cccccc;\n\tbackground-image: none;\n\tbox-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n.fc-state-disabled {\n\tcursor: default;\n\tbackground-image: none;\n\topacity: 0.65;\n\tfilter: alpha(opacity=65);\n\tbox-shadow: none;\n}\n\n\n/* Buttons Groups\n--------------------------------------------------------------------------------------------------*/\n\n.fc-button-group {\n\tdisplay: inline-block;\n}\n\n/*\nevery button that is not first in a button group should scootch over one pixel and cover the\nprevious button's border...\n*/\n\n.fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */\n\tfloat: left;\n\tmargin: 0 0 0 -1px;\n}\n\n.fc .fc-button-group > :first-child { /* same */\n\tmargin-left: 0;\n}\n\n\n/* Popover\n--------------------------------------------------------------------------------------------------*/\n\n.fc-popover {\n\tposition: absolute;\n\tbox-shadow: 0 2px 6px rgba(0,0,0,.15);\n}\n\n.fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */\n\tpadding: 2px 4px;\n}\n\n.fc-popover .fc-header .fc-title {\n\tmargin: 0 2px;\n}\n\n.fc-popover .fc-header .fc-close {\n\tcursor: pointer;\n}\n\n.fc-ltr .fc-popover .fc-header .fc-title,\n.fc-rtl .fc-popover .fc-header .fc-close {\n\tfloat: left;\n}\n\n.fc-rtl .fc-popover .fc-header .fc-title,\n.fc-ltr .fc-popover .fc-header .fc-close {\n\tfloat: right;\n}\n\n/* unthemed */\n\n.fc-unthemed .fc-popover {\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n\n.fc-unthemed .fc-popover .fc-header .fc-close {\n\tfont-size: .9em;\n\tmargin-top: 2px;\n}\n\n/* jqui themed */\n\n.fc-popover > .ui-widget-header + .ui-widget-content {\n\tborder-top: 0; /* where they meet, let the header have the border */\n}\n\n\n/* Misc Reusable Components\n--------------------------------------------------------------------------------------------------*/\n\n.fc-divider {\n\tborder-style: solid;\n\tborder-width: 1px;\n}\n\nhr.fc-divider {\n\theight: 0;\n\tmargin: 0;\n\tpadding: 0 0 2px; /* height is unreliable across browsers, so use padding */\n\tborder-width: 1px 0;\n}\n\n.fc-clear {\n\tclear: both;\n}\n\n.fc-bg,\n.fc-bgevent-skeleton,\n.fc-highlight-skeleton,\n.fc-helper-skeleton {\n\t/* these element should always cling to top-left/right corners */\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n.fc-bg {\n\tbottom: 0; /* strech bg to bottom edge */\n}\n\n.fc-bg table {\n\theight: 100%; /* strech bg to bottom edge */\n}\n\n\n/* Tables\n--------------------------------------------------------------------------------------------------*/\n\n.fc table {\n\twidth: 100%;\n\ttable-layout: fixed;\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n\tfont-size: 1em; /* normalize cross-browser */\n}\n\n.fc th {\n\ttext-align: center;\n}\n\n.fc th,\n.fc td {\n\tborder-style: solid;\n\tborder-width: 1px;\n\tpadding: 0;\n\tvertical-align: top;\n}\n\n.fc td.fc-today {\n\tborder-style: double; /* overcome neighboring borders */\n}\n\n\n/* Fake Table Rows\n--------------------------------------------------------------------------------------------------*/\n\n.fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */\n\t/* no visible border by default. but make available if need be (scrollbar width compensation) */\n\tborder-style: solid;\n\tborder-width: 0;\n}\n\n.fc-row table {\n\t/* don't put left/right border on anything within a fake row.\n\t   the outer tbody will worry about this */\n\tborder-left: 0 hidden transparent;\n\tborder-right: 0 hidden transparent;\n\n\t/* no bottom borders on rows */\n\tborder-bottom: 0 hidden transparent; \n}\n\n.fc-row:first-child table {\n\tborder-top: 0 hidden transparent; /* no top border on first row */\n}\n\n\n/* Day Row (used within the header and the DayGrid)\n--------------------------------------------------------------------------------------------------*/\n\n.fc-row {\n\tposition: relative;\n}\n\n.fc-row .fc-bg {\n\tz-index: 1;\n}\n\n/* highlighting cells & background event skeleton */\n\n.fc-row .fc-bgevent-skeleton,\n.fc-row .fc-highlight-skeleton {\n\tbottom: 0; /* stretch skeleton to bottom of row */\n}\n\n.fc-row .fc-bgevent-skeleton table,\n.fc-row .fc-highlight-skeleton table {\n\theight: 100%; /* stretch skeleton to bottom of row */\n}\n\n.fc-row .fc-highlight-skeleton td,\n.fc-row .fc-bgevent-skeleton td {\n\tborder-color: transparent;\n}\n\n.fc-row .fc-bgevent-skeleton {\n\tz-index: 2;\n\n}\n\n.fc-row .fc-highlight-skeleton {\n\tz-index: 3;\n}\n\n/*\nrow content (which contains day/week numbers and events) as well as \"helper\" (which contains\ntemporary rendered events).\n*/\n\n.fc-row .fc-content-skeleton {\n\tposition: relative;\n\tz-index: 4;\n\tpadding-bottom: 2px; /* matches the space above the events */\n}\n\n.fc-row .fc-helper-skeleton {\n\tz-index: 5;\n}\n\n.fc-row .fc-content-skeleton td,\n.fc-row .fc-helper-skeleton td {\n\t/* see-through to the background below */\n\tbackground: none; /* in case <td>s are globally styled */\n\tborder-color: transparent;\n\n\t/* don't put a border between events and/or the day number */\n\tborder-bottom: 0;\n}\n\n.fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */\n.fc-row .fc-helper-skeleton tbody td {\n\t/* don't put a border between event cells */\n\tborder-top: 0;\n}\n\n\n/* Scrolling Container\n--------------------------------------------------------------------------------------------------*/\n\n.fc-scroller { /* this class goes on elements for guaranteed vertical scrollbars */\n\toverflow-y: scroll;\n\toverflow-x: hidden;\n}\n\n.fc-scroller > * { /* we expect an immediate inner element */\n\tposition: relative; /* re-scope all positions */\n\twidth: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */\n\toverflow: hidden; /* don't let negative margins or absolute positioning create further scroll */\n}\n\n\n/* Global Event Styles\n--------------------------------------------------------------------------------------------------*/\n\n.fc-event {\n\tposition: relative; /* for resize handle and other inner positioning */\n\tdisplay: block; /* make the <a> tag block */\n\tfont-size: .85em;\n\tline-height: 1.3;\n\tborder-radius: 3px;\n\tborder: 1px solid #3a87ad; /* default BORDER color */\n\tbackground-color: #3a87ad; /* default BACKGROUND color */\n\tfont-weight: normal; /* undo jqui's ui-widget-header bold */\n}\n\n/* overpower some of bootstrap's and jqui's styles on <a> tags */\n.fc-event,\n.fc-event:hover,\n.ui-widget .fc-event {\n\tcolor: #fff; /* default TEXT color */\n\ttext-decoration: none; /* if <a> has an href */\n}\n\n.fc-event[href],\n.fc-event.fc-draggable {\n\tcursor: pointer; /* give events with links and draggable events a hand mouse pointer */\n}\n\n.fc-not-allowed, /* causes a \"warning\" cursor. applied on body */\n.fc-not-allowed .fc-event { /* to override an event's custom cursor */\n\tcursor: not-allowed;\n}\n\n.fc-event .fc-bg { /* the generic .fc-bg already does position */\n\tz-index: 1;\n\tbackground: #fff;\n\topacity: .25;\n\tfilter: alpha(opacity=25); /* for IE */\n}\n\n.fc-event .fc-content {\n\tposition: relative;\n\tz-index: 2;\n}\n\n.fc-event .fc-resizer {\n\tposition: absolute;\n\tz-index: 3;\n}\n\n\n/* Horizontal Events\n--------------------------------------------------------------------------------------------------*/\n\n/* events that are continuing to/from another week. kill rounded corners and butt up against edge */\n\n.fc-ltr .fc-h-event.fc-not-start,\n.fc-rtl .fc-h-event.fc-not-end {\n\tmargin-left: 0;\n\tborder-left-width: 0;\n\tpadding-left: 1px; /* replace the border with padding */\n\tborder-top-left-radius: 0;\n\tborder-bottom-left-radius: 0;\n}\n\n.fc-ltr .fc-h-event.fc-not-end,\n.fc-rtl .fc-h-event.fc-not-start {\n\tmargin-right: 0;\n\tborder-right-width: 0;\n\tpadding-right: 1px; /* replace the border with padding */\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n/* resizer */\n\n.fc-h-event .fc-resizer { /* positioned it to overcome the event's borders */\n\ttop: -1px;\n\tbottom: -1px;\n\tleft: -1px;\n\tright: -1px;\n\twidth: 5px;\n}\n\n/* left resizer  */\n.fc-ltr .fc-h-event .fc-start-resizer,\n.fc-ltr .fc-h-event .fc-start-resizer:before,\n.fc-ltr .fc-h-event .fc-start-resizer:after,\n.fc-rtl .fc-h-event .fc-end-resizer,\n.fc-rtl .fc-h-event .fc-end-resizer:before,\n.fc-rtl .fc-h-event .fc-end-resizer:after {\n\tright: auto; /* ignore the right and only use the left */\n\tcursor: w-resize;\n}\n\n/* right resizer */\n.fc-ltr .fc-h-event .fc-end-resizer,\n.fc-ltr .fc-h-event .fc-end-resizer:before,\n.fc-ltr .fc-h-event .fc-end-resizer:after,\n.fc-rtl .fc-h-event .fc-start-resizer,\n.fc-rtl .fc-h-event .fc-start-resizer:before,\n.fc-rtl .fc-h-event .fc-start-resizer:after {\n\tleft: auto; /* ignore the left and only use the right */\n\tcursor: e-resize;\n}\n\n\n/* DayGrid events\n----------------------------------------------------------------------------------------------------\nWe use the full \"fc-day-grid-event\" class instead of using descendants because the event won't\nbe a descendant of the grid when it is being dragged.\n*/\n\n.fc-day-grid-event {\n\tmargin: 1px 2px 0; /* spacing between events and edges */\n\tpadding: 0 1px;\n}\n\n\n.fc-day-grid-event .fc-content { /* force events to be one-line tall */\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.fc-day-grid-event .fc-time {\n\tfont-weight: bold;\n}\n\n.fc-day-grid-event .fc-resizer { /* enlarge the default hit area */\n\tleft: -3px;\n\tright: -3px;\n\twidth: 7px;\n}\n\n\n/* Event Limiting\n--------------------------------------------------------------------------------------------------*/\n\n/* \"more\" link that represents hidden events */\n\na.fc-more {\n\tmargin: 1px 3px;\n\tfont-size: .85em;\n\tcursor: pointer;\n\ttext-decoration: none;\n}\n\na.fc-more:hover {\n\ttext-decoration: underline;\n}\n\n.fc-limited { /* rows and cells that are hidden because of a \"more\" link */\n\tdisplay: none;\n}\n\n/* popover that appears when \"more\" link is clicked */\n\n.fc-day-grid .fc-row {\n\tz-index: 1; /* make the \"more\" popover one higher than this */\n}\n\n.fc-more-popover {\n\tz-index: 2;\n\twidth: 220px;\n}\n\n.fc-more-popover .fc-event-container {\n\tpadding: 10px;\n}\n\n/* Toolbar\n--------------------------------------------------------------------------------------------------*/\n\n.fc-toolbar {\n\ttext-align: center;\n\tmargin-bottom: 1em;\n}\n\n.fc-toolbar .fc-left {\n\tfloat: left;\n}\n\n.fc-toolbar .fc-right {\n\tfloat: right;\n}\n\n.fc-toolbar .fc-center {\n\tdisplay: inline-block;\n}\n\n/* the things within each left/right/center section */\n.fc .fc-toolbar > * > * { /* extra precedence to override button border margins */\n\tfloat: left;\n\tmargin-left: .75em;\n}\n\n/* the first thing within each left/center/right section */\n.fc .fc-toolbar > * > :first-child { /* extra precedence to override button border margins */\n\tmargin-left: 0;\n}\n\t\n/* title text */\n\n.fc-toolbar h2 {\n\tmargin: 0;\n}\n\n/* button layering (for border precedence) */\n\n.fc-toolbar button {\n\tposition: relative;\n}\n\n.fc-toolbar .fc-state-hover,\n.fc-toolbar .ui-state-hover {\n\tz-index: 2;\n}\n\t\n.fc-toolbar .fc-state-down {\n\tz-index: 3;\n}\n\n.fc-toolbar .fc-state-active,\n.fc-toolbar .ui-state-active {\n\tz-index: 4;\n}\n\n.fc-toolbar button:focus {\n\tz-index: 5;\n}\n\n\n/* View Structure\n--------------------------------------------------------------------------------------------------*/\n\n/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */\n/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */\n.fc-view-container *,\n.fc-view-container *:before,\n.fc-view-container *:after {\n\t-webkit-box-sizing: content-box;\n\t   -moz-box-sizing: content-box;\n\t        box-sizing: content-box;\n}\n\n.fc-view, /* scope positioning and z-index's for everything within the view */\n.fc-view > table { /* so dragged elements can be above the view's main element */\n\tposition: relative;\n\tz-index: 1;\n}\n\n/* BasicView\n--------------------------------------------------------------------------------------------------*/\n\n/* day row structure */\n\n.fc-basicWeek-view .fc-content-skeleton,\n.fc-basicDay-view .fc-content-skeleton {\n\t/* we are sure there are no day numbers in these views, so... */\n\tpadding-top: 1px; /* add a pixel to make sure there are 2px padding above events */\n\tpadding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */\n}\n\n.fc-basic-view .fc-body .fc-row {\n\tmin-height: 4em; /* ensure that all rows are at least this tall */\n}\n\n/* a \"rigid\" row will take up a constant amount of height because content-skeleton is absolute */\n\n.fc-row.fc-rigid {\n\toverflow: hidden;\n}\n\n.fc-row.fc-rigid .fc-content-skeleton {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n/* week and day number styling */\n\n.fc-basic-view .fc-week-number,\n.fc-basic-view .fc-day-number {\n\tpadding: 0 2px;\n}\n\n.fc-basic-view td.fc-week-number span,\n.fc-basic-view td.fc-day-number {\n\tpadding-top: 2px;\n\tpadding-bottom: 2px;\n}\n\n.fc-basic-view .fc-week-number {\n\ttext-align: center;\n}\n\n.fc-basic-view .fc-week-number span {\n\t/* work around the way we do column resizing and ensure a minimum width */\n\tdisplay: inline-block;\n\tmin-width: 1.25em;\n}\n\n.fc-ltr .fc-basic-view .fc-day-number {\n\ttext-align: right;\n}\n\n.fc-rtl .fc-basic-view .fc-day-number {\n\ttext-align: left;\n}\n\n.fc-day-number.fc-other-month {\n\topacity: 0.3;\n\tfilter: alpha(opacity=30); /* for IE */\n\t/* opacity with small font can sometimes look too faded\n\t   might want to set the 'color' property instead\n\t   making day-numbers bold also fixes the problem */\n}\n\n/* AgendaView all-day area\n--------------------------------------------------------------------------------------------------*/\n\n.fc-agenda-view .fc-day-grid {\n\tposition: relative;\n\tz-index: 2; /* so the \"more..\" popover will be over the time grid */\n}\n\n.fc-agenda-view .fc-day-grid .fc-row {\n\tmin-height: 3em; /* all-day section will never get shorter than this */\n}\n\n.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {\n\tpadding-top: 1px; /* add a pixel to make sure there are 2px padding above events */\n\tpadding-bottom: 1em; /* give space underneath events for clicking/selecting days */\n}\n\n\n/* TimeGrid axis running down the side (for both the all-day area and the slot area)\n--------------------------------------------------------------------------------------------------*/\n\n.fc .fc-axis { /* .fc to overcome default cell styles */\n\tvertical-align: middle;\n\tpadding: 0 4px;\n\twhite-space: nowrap;\n}\n\n.fc-ltr .fc-axis {\n\ttext-align: right;\n}\n\n.fc-rtl .fc-axis {\n\ttext-align: left;\n}\n\n.ui-widget td.fc-axis {\n\tfont-weight: normal; /* overcome jqui theme making it bold */\n}\n\n\n/* TimeGrid Structure\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid-container, /* so scroll container's z-index is below all-day */\n.fc-time-grid { /* so slats/bg/content/etc positions get scoped within here */\n\tposition: relative;\n\tz-index: 1;\n}\n\n.fc-time-grid {\n\tmin-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */\n}\n\n.fc-time-grid table { /* don't put outer borders on slats/bg/content/etc */\n\tborder: 0 hidden transparent;\n}\n\n.fc-time-grid > .fc-bg {\n\tz-index: 1;\n}\n\n.fc-time-grid .fc-slats,\n.fc-time-grid > hr { /* the <hr> AgendaView injects when grid is shorter than scroller */\n\tposition: relative;\n\tz-index: 2;\n}\n\n.fc-time-grid .fc-bgevent-skeleton,\n.fc-time-grid .fc-content-skeleton {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n}\n\n.fc-time-grid .fc-bgevent-skeleton {\n\tz-index: 3;\n}\n\n.fc-time-grid .fc-highlight-skeleton {\n\tz-index: 4;\n}\n\n.fc-time-grid .fc-content-skeleton {\n\tz-index: 5;\n}\n\n.fc-time-grid .fc-helper-skeleton {\n\tz-index: 6;\n}\n\n\n/* TimeGrid Slats (lines that run horizontally)\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid .fc-slats td {\n\theight: 1.5em;\n\tborder-bottom: 0; /* each cell is responsible for its top border */\n}\n\n.fc-time-grid .fc-slats .fc-minor td {\n\tborder-top-style: dotted;\n}\n\n.fc-time-grid .fc-slats .ui-widget-content { /* for jqui theme */\n\tbackground: none; /* see through to fc-bg */\n}\n\n\n/* TimeGrid Highlighting Slots\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid .fc-highlight-container { /* a div within a cell within the fc-highlight-skeleton */\n\tposition: relative; /* scopes the left/right of the fc-highlight to be in the column */\n}\n\n.fc-time-grid .fc-highlight {\n\tposition: absolute;\n\tleft: 0;\n\tright: 0;\n\t/* top and bottom will be in by JS */\n}\n\n\n/* TimeGrid Event Containment\n--------------------------------------------------------------------------------------------------*/\n\n.fc-time-grid .fc-event-container, /* a div within a cell within the fc-content-skeleton */\n.fc-time-grid .fc-bgevent-container { /* a div within a cell within the fc-bgevent-skeleton */\n\tposition: relative;\n}\n\n.fc-ltr .fc-time-grid .fc-event-container { /* space on the sides of events for LTR (default) */\n\tmargin: 0 2.5% 0 2px;\n}\n\n.fc-rtl .fc-time-grid .fc-event-container { /* space on the sides of events for RTL */\n\tmargin: 0 2px 0 2.5%;\n}\n\n.fc-time-grid .fc-event,\n.fc-time-grid .fc-bgevent {\n\tposition: absolute;\n\tz-index: 1; /* scope inner z-index's */\n}\n\n.fc-time-grid .fc-bgevent {\n\t/* background events always span full width */\n\tleft: 0;\n\tright: 0;\n}\n\n\n/* Generic Vertical Event\n--------------------------------------------------------------------------------------------------*/\n\n.fc-v-event.fc-not-start { /* events that are continuing from another day */\n\t/* replace space made by the top border with padding */\n\tborder-top-width: 0;\n\tpadding-top: 1px;\n\n\t/* remove top rounded corners */\n\tborder-top-left-radius: 0;\n\tborder-top-right-radius: 0;\n}\n\n.fc-v-event.fc-not-end {\n\t/* replace space made by the top border with padding */\n\tborder-bottom-width: 0;\n\tpadding-bottom: 1px;\n\n\t/* remove bottom rounded corners */\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n\n/* TimeGrid Event Styling\n----------------------------------------------------------------------------------------------------\nWe use the full \"fc-time-grid-event\" class instead of using descendants because the event won't\nbe a descendant of the grid when it is being dragged.\n*/\n\n.fc-time-grid-event {\n\toverflow: hidden; /* don't let the bg flow over rounded corners */\n}\n\n.fc-time-grid-event .fc-time,\n.fc-time-grid-event .fc-title {\n\tpadding: 0 1px;\n}\n\n.fc-time-grid-event .fc-time {\n\tfont-size: .85em;\n\twhite-space: nowrap;\n}\n\n/* short mode, where time and title are on the same line */\n\n.fc-time-grid-event.fc-short .fc-content {\n\t/* don't wrap to second line (now that contents will be inline) */\n\twhite-space: nowrap;\n}\n\n.fc-time-grid-event.fc-short .fc-time,\n.fc-time-grid-event.fc-short .fc-title {\n\t/* put the time and title on the same line */\n\tdisplay: inline-block;\n\tvertical-align: top;\n}\n\n.fc-time-grid-event.fc-short .fc-time span {\n\tdisplay: none; /* don't display the full time text... */\n}\n\n.fc-time-grid-event.fc-short .fc-time:before {\n\tcontent: attr(data-start); /* ...instead, display only the start time */\n}\n\n.fc-time-grid-event.fc-short .fc-time:after {\n\tcontent: \"\\000A0-\\000A0\"; /* seperate with a dash, wrapped in nbsp's */\n}\n\n.fc-time-grid-event.fc-short .fc-title {\n\tfont-size: .85em; /* make the title text the same size as the time */\n\tpadding: 0; /* undo padding from above */\n}\n\n/* resizer */\n\n.fc-time-grid-event .fc-resizer {\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\theight: 8px;\n\toverflow: hidden;\n\tline-height: 8px;\n\tfont-size: 11px;\n\tfont-family: monospace;\n\ttext-align: center;\n\tcursor: s-resize;\n}\n\n.fc-time-grid-event .fc-resizer:after {\n\tcontent: \"=\";\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/fullcalendar.print.css",
    "content": "/*!\n * FullCalendar v2.4.0 Print Stylesheet\n * Docs & License: http://fullcalendar.io/\n * (c) 2015 Adam Shaw\n */\n\n/*\n * Include this stylesheet on your page to get a more printer-friendly calendar.\n * When including this stylesheet, use the media='print' attribute of the <link> tag.\n * Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css.\n */\n\n.fc {\n\tmax-width: 100% !important;\n}\n\n\n/* Global Event Restyling\n--------------------------------------------------------------------------------------------------*/\n\n.fc-event {\n\tbackground: #fff !important;\n\tcolor: #000 !important;\n\tpage-break-inside: avoid;\n}\n\n.fc-event .fc-resizer {\n\tdisplay: none;\n}\n\n\n/* Table & Day-Row Restyling\n--------------------------------------------------------------------------------------------------*/\n\nth,\ntd,\nhr,\nthead,\ntbody,\n.fc-row {\n\tborder-color: #ccc !important;\n\tbackground: #fff !important;\n}\n\n/* kill the overlaid, absolutely-positioned common components */\n.fc-bg,\n.fc-bgevent-skeleton,\n.fc-highlight-skeleton,\n.fc-helper-skeleton {\n\tdisplay: none;\n}\n\n/* don't force a min-height on rows (for DayGrid) */\n.fc tbody .fc-row {\n\theight: auto !important; /* undo height that JS set in distributeHeight */\n\tmin-height: 0 !important; /* undo the min-height from each view's specific stylesheet */\n}\n\n.fc tbody .fc-row .fc-content-skeleton {\n\tposition: static; /* undo .fc-rigid */\n\tpadding-bottom: 0 !important; /* use a more border-friendly method for this... */\n}\n\n.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { /* only works in newer browsers */\n\tpadding-bottom: 1em; /* ...gives space within the skeleton. also ensures min height in a way */\n}\n\n.fc tbody .fc-row .fc-content-skeleton table {\n\t/* provides a min-height for the row, but only effective for IE, which exaggerates this value,\n\t   making it look more like 3em. for other browers, it will already be this tall */\n\theight: 1em;\n}\n\n\n/* Undo month-view event limiting. Display all events and hide the \"more\" links\n--------------------------------------------------------------------------------------------------*/\n\n.fc-more-cell,\n.fc-more {\n\tdisplay: none !important;\n}\n\n.fc tr.fc-limited {\n\tdisplay: table-row !important;\n}\n\n.fc td.fc-limited {\n\tdisplay: table-cell !important;\n}\n\n.fc-popover {\n\tdisplay: none; /* never display the \"more..\" popover in print mode */\n}\n\n\n/* TimeGrid Restyling\n--------------------------------------------------------------------------------------------------*/\n\n/* undo the min-height 100% trick used to fill the container's height */\n.fc-time-grid {\n\tmin-height: 0 !important;\n}\n\n/* don't display the side axis at all (\"all-day\" and time cells) */\n.fc-agenda-view .fc-axis {\n\tdisplay: none;\n}\n\n/* don't display the horizontal lines */\n.fc-slats,\n.fc-time-grid hr { /* this hr is used when height is underused and needs to be filled */\n\tdisplay: none !important; /* important overrides inline declaration */\n}\n\n/* let the container that holds the events be naturally positioned and create real height */\n.fc-time-grid .fc-content-skeleton {\n\tposition: static;\n}\n\n/* in case there are no events, we still want some height */\n.fc-time-grid .fc-content-skeleton table {\n\theight: 4em;\n}\n\n/* kill the horizontal spacing made by the event container. event margins will be done below */\n.fc-time-grid .fc-event-container {\n\tmargin: 0 !important;\n}\n\n\n/* TimeGrid *Event* Restyling\n--------------------------------------------------------------------------------------------------*/\n\n/* naturally position events, vertically stacking them */\n.fc-time-grid .fc-event {\n\tposition: static !important;\n\tmargin: 3px 2px !important;\n}\n\n/* for events that continue to a future day, give the bottom border back */\n.fc-time-grid .fc-event.fc-not-end {\n\tborder-bottom-width: 1px !important;\n}\n\n/* indicate the event continues via \"...\" text */\n.fc-time-grid .fc-event.fc-not-end:after {\n\tcontent: \"...\";\n}\n\n/* for events that are continuations from previous days, give the top border back */\n.fc-time-grid .fc-event.fc-not-start {\n\tborder-top-width: 1px !important;\n}\n\n/* indicate the event is a continuation via \"...\" text */\n.fc-time-grid .fc-event.fc-not-start:before {\n\tcontent: \"...\";\n}\n\n/* time */\n\n/* undo a previous declaration and let the time text span to a second line */\n.fc-time-grid .fc-event .fc-time {\n\twhite-space: normal !important;\n}\n\n/* hide the the time that is normally displayed... */\n.fc-time-grid .fc-event .fc-time span {\n\tdisplay: none;\n}\n\n/* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */\n.fc-time-grid .fc-event .fc-time:after {\n\tcontent: attr(data-full);\n}\n\n\n/* Vertical Scroller & Containers\n--------------------------------------------------------------------------------------------------*/\n\n/* kill the scrollbars and allow natural height */\n.fc-scroller,\n.fc-day-grid-container,    /* these divs might be assigned height, which we need to cleared */\n.fc-time-grid-container {  /* */\n\toverflow: visible !important;\n\theight: auto !important;\n}\n\n/* kill the horizontal border/padding used to compensate for scrollbars */\n.fc-row {\n\tborder: 0 !important;\n\tmargin: 0 !important;\n}\n\n\n/* Button Controls\n--------------------------------------------------------------------------------------------------*/\n\n.fc-button-group,\n.fc button {\n\tdisplay: none; /* don't display any button-related controls */\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/gcal.js",
    "content": "/*!\n * FullCalendar v2.4.0 Google Calendar Plugin\n * Docs & License: http://fullcalendar.io/\n * (c) 2015 Adam Shaw\n */\n \n(function(factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine([ 'jquery' ], factory);\n\t}\n\telse if (typeof exports === 'object') { // Node/CommonJS\n\t\tmodule.exports = factory(require('jquery'));\n\t}\n\telse {\n\t\tfactory(jQuery);\n\t}\n})(function($) {\n\n\nvar API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';\nvar fc = $.fullCalendar;\nvar applyAll = fc.applyAll;\n\n\nfc.sourceNormalizers.push(function(sourceOptions) {\n\tvar googleCalendarId = sourceOptions.googleCalendarId;\n\tvar url = sourceOptions.url;\n\tvar match;\n\n\t// if the Google Calendar ID hasn't been explicitly defined\n\tif (!googleCalendarId && url) {\n\n\t\t// detect if the ID was specified as a single string.\n\t\t// will match calendars like \"asdf1234@calendar.google.com\" in addition to person email calendars.\n\t\tif (/^[^\\/]+@([^\\/\\.]+\\.)*(google|googlemail|gmail)\\.com$/.test(url)) {\n\t\t\tgoogleCalendarId = url;\n\t\t}\n\t\t// try to scrape it out of a V1 or V3 API feed URL\n\t\telse if (\n\t\t\t(match = /^https:\\/\\/www.googleapis.com\\/calendar\\/v3\\/calendars\\/([^\\/]*)/.exec(url)) ||\n\t\t\t(match = /^https?:\\/\\/www.google.com\\/calendar\\/feeds\\/([^\\/]*)/.exec(url))\n\t\t) {\n\t\t\tgoogleCalendarId = decodeURIComponent(match[1]);\n\t\t}\n\n\t\tif (googleCalendarId) {\n\t\t\tsourceOptions.googleCalendarId = googleCalendarId;\n\t\t}\n\t}\n\n\n\tif (googleCalendarId) { // is this a Google Calendar?\n\n\t\t// make each Google Calendar source uneditable by default\n\t\tif (sourceOptions.editable == null) {\n\t\t\tsourceOptions.editable = false;\n\t\t}\n\n\t\t// We want removeEventSource to work, but it won't know about the googleCalendarId primitive.\n\t\t// Shoehorn it into the url, which will function as the unique primitive. Won't cause side effects.\n\t\t// This hack is obsolete since 2.2.3, but keep it so this plugin file is compatible with old versions.\n\t\tsourceOptions.url = googleCalendarId;\n\t}\n});\n\n\nfc.sourceFetchers.push(function(sourceOptions, start, end, timezone) {\n\tif (sourceOptions.googleCalendarId) {\n\t\treturn transformOptions(sourceOptions, start, end, timezone, this); // `this` is the calendar\n\t}\n});\n\n\nfunction transformOptions(sourceOptions, start, end, timezone, calendar) {\n\tvar url = API_BASE + '/' + encodeURIComponent(sourceOptions.googleCalendarId) + '/events?callback=?'; // jsonp\n\tvar apiKey = sourceOptions.googleCalendarApiKey || calendar.options.googleCalendarApiKey;\n\tvar success = sourceOptions.success;\n\tvar data;\n\tvar timezoneArg; // populated when a specific timezone. escaped to Google's liking\n\n\tfunction reportError(message, apiErrorObjs) {\n\t\tvar errorObjs = apiErrorObjs || [ { message: message } ]; // to be passed into error handlers\n\n\t\t// call error handlers\n\t\t(sourceOptions.googleCalendarError || $.noop).apply(calendar, errorObjs);\n\t\t(calendar.options.googleCalendarError || $.noop).apply(calendar, errorObjs);\n\n\t\t// print error to debug console\n\t\tfc.warn.apply(null, [ message ].concat(apiErrorObjs || []));\n\t}\n\n\tif (!apiKey) {\n\t\treportError(\"Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/\");\n\t\treturn {}; // an empty source to use instead. won't fetch anything.\n\t}\n\n\t// The API expects an ISO8601 datetime with a time and timezone part.\n\t// Since the calendar's timezone offset isn't always known, request the date in UTC and pad it by a day on each\n\t// side, guaranteeing we will receive all events in the desired range, albeit a superset.\n\t// .utc() will set a zone and give it a 00:00:00 time.\n\tif (!start.hasZone()) {\n\t\tstart = start.clone().utc().add(-1, 'day');\n\t}\n\tif (!end.hasZone()) {\n\t\tend = end.clone().utc().add(1, 'day');\n\t}\n\n\t// when sending timezone names to Google, only accepts underscores, not spaces\n\tif (timezone && timezone != 'local') {\n\t\ttimezoneArg = timezone.replace(' ', '_');\n\t}\n\n\tdata = $.extend({}, sourceOptions.data || {}, {\n\t\tkey: apiKey,\n\t\ttimeMin: start.format(),\n\t\ttimeMax: end.format(),\n\t\ttimeZone: timezoneArg,\n\t\tsingleEvents: true,\n\t\tmaxResults: 9999\n\t});\n\n\treturn $.extend({}, sourceOptions, {\n\t\tgoogleCalendarId: null, // prevents source-normalizing from happening again\n\t\turl: url,\n\t\tdata: data,\n\t\tstartParam: false, // `false` omits this parameter. we already included it above\n\t\tendParam: false, // same\n\t\ttimezoneParam: false, // same\n\t\tsuccess: function(data) {\n\t\t\tvar events = [];\n\t\t\tvar successArgs;\n\t\t\tvar successRes;\n\n\t\t\tif (data.error) {\n\t\t\t\treportError('Google Calendar API: ' + data.error.message, data.error.errors);\n\t\t\t}\n\t\t\telse if (data.items) {\n\t\t\t\t$.each(data.items, function(i, entry) {\n\t\t\t\t\tvar url = entry.htmlLink;\n\n\t\t\t\t\t// make the URLs for each event show times in the correct timezone\n\t\t\t\t\tif (timezoneArg) {\n\t\t\t\t\t\turl = injectQsComponent(url, 'ctz=' + timezoneArg);\n\t\t\t\t\t}\n\n\t\t\t\t\tevents.push({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\ttitle: entry.summary,\n\t\t\t\t\t\tstart: entry.start.dateTime || entry.start.date, // try timed. will fall back to all-day\n\t\t\t\t\t\tend: entry.end.dateTime || entry.end.date, // same\n\t\t\t\t\t\turl: url,\n\t\t\t\t\t\tlocation: entry.location,\n\t\t\t\t\t\tdescription: entry.description\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// call the success handler(s) and allow it to return a new events array\n\t\t\t\tsuccessArgs = [ events ].concat(Array.prototype.slice.call(arguments, 1)); // forward other jq args\n\t\t\t\tsuccessRes = applyAll(success, this, successArgs);\n\t\t\t\tif ($.isArray(successRes)) {\n\t\t\t\t\treturn successRes;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn events;\n\t\t}\n\t});\n}\n\n\n// Injects a string like \"arg=value\" into the querystring of a URL\nfunction injectQsComponent(url, component) {\n\t// inject it after the querystring but before the fragment\n\treturn url.replace(/(\\?.*?)?(#|$)/, function(whole, qs, hash) {\n\t\treturn (qs ? qs + '&' : '?') + component + hash;\n\t});\n}\n\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ar-ma.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ar-ma\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-ma\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-ma\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ar-sa.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"};(b.defineLocale||b.lang).call(b,\"ar-sa\",{months:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-sa\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-sa\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ar-tn.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ar-tn\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ar-tn\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-tn\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ar.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},e=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},f={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},g=function(a){return function(b,c,d,g){var h=e(b),i=f[a][e(b)];return 2===h&&(i=i[c?0:1]),i.replace(/%d/i,b)}},h=[\"كانون الثاني يناير\",\"شباط فبراير\",\"آذار مارس\",\"نيسان أبريل\",\"أيار مايو\",\"حزيران يونيو\",\"تموز يوليو\",\"آب أغسطس\",\"أيلول سبتمبر\",\"تشرين الأول أكتوبر\",\"تشرين الثاني نوفمبر\",\"كانون الأول ديسمبر\"];(b.defineLocale||b.lang).call(b,\"ar\",{months:h,monthsShort:h,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:g(\"s\"),m:g(\"m\"),mm:g(\"m\"),h:g(\"h\"),hh:g(\"h\"),d:g(\"d\"),dd:g(\"d\"),M:g(\"M\"),MM:g(\"M\"),y:g(\"y\"),yy:g(\"y\")},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/bg.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"bg\",{months:\"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"неделя_понеделник_вторник_сряда_четвъртък_петък_събота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сря_чет_пет_съб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Днес в] LT\",nextDay:\"[Утре в] LT\",nextWeek:\"dddd [в] LT\",lastDay:\"[Вчера в] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[В изминалата] dddd [в] LT\";case 1:case 2:case 4:case 5:return\"[В изминалия] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"след %s\",past:\"преди %s\",s:\"няколко секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дни\",M:\"месец\",MM:\"%d месеца\",y:\"година\",yy:\"%d години\"},ordinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&20>c?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"bg\",\"bg\",{closeText:\"затвори\",prevText:\"&#x3C;назад\",nextText:\"напред&#x3E;\",nextBigText:\"&#x3E;&#x3E;\",currentText:\"днес\",monthNames:[\"Януари\",\"Февруари\",\"Март\",\"Април\",\"Май\",\"Юни\",\"Юли\",\"Август\",\"Септември\",\"Октомври\",\"Ноември\",\"Декември\"],monthNamesShort:[\"Яну\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Юни\",\"Юли\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дек\"],dayNames:[\"Неделя\",\"Понеделник\",\"Вторник\",\"Сряда\",\"Четвъртък\",\"Петък\",\"Събота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Вто\",\"Сря\",\"Чет\",\"Пет\",\"Съб\"],dayNamesMin:[\"Не\",\"По\",\"Вт\",\"Ср\",\"Че\",\"Пе\",\"Съ\"],weekHeader:\"Wk\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"bg\",{buttonText:{month:\"Месец\",week:\"Седмица\",day:\"Ден\",list:\"График\"},allDayText:\"Цял ден\",eventLimitText:function(a){return\"+още \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ca.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ca\",{months:\"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),monthsShort:\"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.\".split(\"_\"),weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"Dg_Dl_Dt_Dc_Dj_Dv_Ds\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[demà a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"fa %s\",s:\"uns segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},ordinalParse:/\\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?\"r\":2===a?\"n\":3===a?\"r\":4===a?\"t\":\"è\";return(\"w\"===b||\"W\"===b)&&(c=\"a\"),a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ca\",\"ca\",{closeText:\"Tanca\",prevText:\"Anterior\",nextText:\"Següent\",currentText:\"Avui\",monthNames:[\"gener\",\"febrer\",\"març\",\"abril\",\"maig\",\"juny\",\"juliol\",\"agost\",\"setembre\",\"octubre\",\"novembre\",\"desembre\"],monthNamesShort:[\"gen\",\"feb\",\"març\",\"abr\",\"maig\",\"juny\",\"jul\",\"ag\",\"set\",\"oct\",\"nov\",\"des\"],dayNames:[\"diumenge\",\"dilluns\",\"dimarts\",\"dimecres\",\"dijous\",\"divendres\",\"dissabte\"],dayNamesShort:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],dayNamesMin:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],weekHeader:\"Set\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ca\",{buttonText:{month:\"Mes\",week:\"Setmana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Tot el dia\",eventLimitText:\"més\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/cs.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return a>1&&5>a&&1!==~~(a/10)}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekund\":\"pár sekundami\";case\"m\":return b?\"minuta\":e?\"minutu\":\"minutou\";case\"mm\":return b||e?f+(c(a)?\"minuty\":\"minut\"):f+\"minutami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodin\"):f+\"hodinami\";case\"d\":return b||e?\"den\":\"dnem\";case\"dd\":return b||e?f+(c(a)?\"dny\":\"dní\"):f+\"dny\";case\"M\":return b||e?\"měsíc\":\"měsícem\";case\"MM\":return b||e?f+(c(a)?\"měsíce\":\"měsíců\"):f+\"měsíci\";case\"y\":return b||e?\"rok\":\"rokem\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"let\"):f+\"lety\"}}var e=\"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec\".split(\"_\"),f=\"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro\".split(\"_\");(b.defineLocale||b.lang).call(b,\"cs\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_út_st_čt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_út_st_čt_pá_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[zítra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v neděli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve středu v] LT\";case 4:return\"[ve čtvrtek v] LT\";case 5:return\"[v pátek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[včera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou neděli v] LT\";case 1:case 2:return\"[minulé] dddd [v] LT\";case 3:return\"[minulou středu v] LT\";case 4:case 5:return\"[minulý] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"před %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"cs\",\"cs\",{closeText:\"Zavřít\",prevText:\"&#x3C;Dříve\",nextText:\"Později&#x3E;\",currentText:\"Nyní\",monthNames:[\"leden\",\"únor\",\"březen\",\"duben\",\"květen\",\"červen\",\"červenec\",\"srpen\",\"září\",\"říjen\",\"listopad\",\"prosinec\"],monthNamesShort:[\"led\",\"úno\",\"bře\",\"dub\",\"kvě\",\"čer\",\"čvc\",\"srp\",\"zář\",\"říj\",\"lis\",\"pro\"],dayNames:[\"neděle\",\"pondělí\",\"úterý\",\"středa\",\"čtvrtek\",\"pátek\",\"sobota\"],dayNamesShort:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],dayNamesMin:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],weekHeader:\"Týd\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"cs\",{buttonText:{month:\"Měsíc\",week:\"Týden\",day:\"Den\",list:\"Agenda\"},allDayText:\"Celý den\",eventLimitText:function(a){return\"+další: \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/da.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tir_ons_tor_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd [d.] D. MMMM YYYY LT\"},calendar:{sameDay:\"[I dag kl.] LT\",nextDay:\"[I morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[I går kl.] LT\",lastWeek:\"[sidste] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"få sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en måned\",MM:\"%d måneder\",y:\"et år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"da\",\"da\",{closeText:\"Luk\",prevText:\"&#x3C;Forrige\",nextText:\"Næste&#x3E;\",currentText:\"Idag\",monthNames:[\"Januar\",\"Februar\",\"Marts\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Søndag\",\"Mandag\",\"Tirsdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lørdag\"],dayNamesShort:[\"Søn\",\"Man\",\"Tir\",\"Ons\",\"Tor\",\"Fre\",\"Lør\"],dayNamesMin:[\"Sø\",\"Ma\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lø\"],weekHeader:\"Uge\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"da\",{buttonText:{month:\"Måned\",week:\"Uge\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"flere\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/de-at.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de-at\",{months:\"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de-at\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de-at\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/de.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/el.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"el\",{monthsNominativeEl:\"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος\".split(\"_\"),monthsGenitiveEl:\"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου\".split(\"_\"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf(\"MMMM\")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:\"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ\".split(\"_\"),weekdays:\"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο\".split(\"_\"),weekdaysShort:\"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ\".split(\"_\"),weekdaysMin:\"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα\".split(\"_\"),meridiem:function(a,b,c){return a>11?c?\"μμ\":\"ΜΜ\":c?\"πμ\":\"ΠΜ\"},isPM:function(a){return\"μ\"===(a+\"\").toLowerCase()[0]},meridiemParse:/[ΠΜ]\\.?Μ?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendarEl:{sameDay:\"[Σήμερα {}] LT\",nextDay:\"[Αύριο {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[Χθες {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[το προηγούμενο] dddd [{}] LT\";default:return\"[την προηγούμενη] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return\"function\"==typeof c&&(c=c.apply(b)),c.replace(\"{}\",d%12===1?\"στη\":\"στις\")},relativeTime:{future:\"σε %s\",past:\"%s πριν\",s:\"λίγα δευτερόλεπτα\",m:\"ένα λεπτό\",mm:\"%d λεπτά\",h:\"μία ώρα\",hh:\"%d ώρες\",d:\"μία μέρα\",dd:\"%d μέρες\",M:\"ένας μήνας\",MM:\"%d μήνες\",y:\"ένας χρόνος\",yy:\"%d χρόνια\"},ordinalParse:/\\d{1,2}η/,ordinal:\"%dη\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"el\",\"el\",{closeText:\"Κλείσιμο\",prevText:\"Προηγούμενος\",nextText:\"Επόμενος\",currentText:\"Σήμερα\",monthNames:[\"Ιανουάριος\",\"Φεβρουάριος\",\"Μάρτιος\",\"Απρίλιος\",\"Μάιος\",\"Ιούνιος\",\"Ιούλιος\",\"Αύγουστος\",\"Σεπτέμβριος\",\"Οκτώβριος\",\"Νοέμβριος\",\"Δεκέμβριος\"],monthNamesShort:[\"Ιαν\",\"Φεβ\",\"Μαρ\",\"Απρ\",\"Μαι\",\"Ιουν\",\"Ιουλ\",\"Αυγ\",\"Σεπ\",\"Οκτ\",\"Νοε\",\"Δεκ\"],dayNames:[\"Κυριακή\",\"Δευτέρα\",\"Τρίτη\",\"Τετάρτη\",\"Πέμπτη\",\"Παρασκευή\",\"Σάββατο\"],dayNamesShort:[\"Κυρ\",\"Δευ\",\"Τρι\",\"Τετ\",\"Πεμ\",\"Παρ\",\"Σαβ\"],dayNamesMin:[\"Κυ\",\"Δε\",\"Τρ\",\"Τε\",\"Πε\",\"Πα\",\"Σα\"],weekHeader:\"Εβδ\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"el\",{buttonText:{month:\"Μήνας\",week:\"Εβδομάδα\",day:\"Ημέρα\",list:\"Ατζέντα\"},allDayText:\"Ολοήμερο\",eventLimitText:\"περισσότερα\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/en-au.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-au\",\"en-AU\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-au\")});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/en-ca.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"D MMMM, YYYY\",LLL:\"D MMMM, YYYY LT\",LLLL:\"dddd, D MMMM, YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.fullCalendar.lang(\"en-ca\")});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/en-gb.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-gb\",\"en-GB\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-gb\")});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/es.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),d=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");(b.defineLocale||b.lang).call(b,\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"Do_Lu_Ma_Mi_Ju_Vi_Sá\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"es\",\"es\",{closeText:\"Cerrar\",prevText:\"&#x3C;Ant\",nextText:\"Sig&#x3E;\",currentText:\"Hoy\",monthNames:[\"enero\",\"febrero\",\"marzo\",\"abril\",\"mayo\",\"junio\",\"julio\",\"agosto\",\"septiembre\",\"octubre\",\"noviembre\",\"diciembre\"],monthNamesShort:[\"ene\",\"feb\",\"mar\",\"abr\",\"may\",\"jun\",\"jul\",\"ago\",\"sep\",\"oct\",\"nov\",\"dic\"],dayNames:[\"domingo\",\"lunes\",\"martes\",\"miércoles\",\"jueves\",\"viernes\",\"sábado\"],dayNamesShort:[\"dom\",\"lun\",\"mar\",\"mié\",\"jue\",\"vie\",\"sáb\"],dayNamesMin:[\"D\",\"L\",\"M\",\"X\",\"J\",\"V\",\"S\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"es\",{buttonText:{month:\"Mes\",week:\"Semana\",day:\"Día\",list:\"Agenda\"},allDayHtml:\"Todo<br/>el día\",eventLimitText:\"más\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/fa.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"۱\",2:\"۲\",3:\"۳\",4:\"۴\",5:\"۵\",6:\"۶\",7:\"۷\",8:\"۸\",9:\"۹\",0:\"۰\"},d={\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"۰\":\"0\"};(b.defineLocale||b.lang).call(b,\"fa\",{months:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),monthsShort:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),weekdays:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysShort:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysMin:\"ی_د_س_چ_پ_ج_ش\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?\"قبل از ظهر\":\"بعد از ظهر\"},calendar:{sameDay:\"[امروز ساعت] LT\",nextDay:\"[فردا ساعت] LT\",nextWeek:\"dddd [ساعت] LT\",lastDay:\"[دیروز ساعت] LT\",lastWeek:\"dddd [پیش] [ساعت] LT\",sameElse:\"L\"},relativeTime:{future:\"در %s\",past:\"%s پیش\",s:\"چندین ثانیه\",m:\"یک دقیقه\",mm:\"%d دقیقه\",h:\"یک ساعت\",hh:\"%d ساعت\",d:\"یک روز\",dd:\"%d روز\",M:\"یک ماه\",MM:\"%d ماه\",y:\"یک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},ordinalParse:/\\d{1,2}م/,ordinal:\"%dم\",week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"fa\",\"fa\",{closeText:\"بستن\",prevText:\"&#x3C;قبلی\",nextText:\"بعدی&#x3E;\",currentText:\"امروز\",monthNames:[\"ژانویه\",\"فوریه\",\"مارس\",\"آوریل\",\"مه\",\"ژوئن\",\"ژوئیه\",\"اوت\",\"سپتامبر\",\"اکتبر\",\"نوامبر\",\"دسامبر\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"يکشنبه\",\"دوشنبه\",\"سه‌شنبه\",\"چهارشنبه\",\"پنجشنبه\",\"جمعه\",\"شنبه\"],dayNamesShort:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],dayNamesMin:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],weekHeader:\"هف\",dateFormat:\"yy/mm/dd\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fa\",{buttonText:{month:\"ماه\",week:\"هفته\",day:\"روز\",list:\"برنامه\"},allDayText:\"تمام روز\",eventLimitText:function(a){return\"بیش از \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/fi.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,e){var f=\"\";switch(c){case\"s\":return e?\"muutaman sekunnin\":\"muutama sekunti\";case\"m\":return e?\"minuutin\":\"minuutti\";case\"mm\":f=e?\"minuutin\":\"minuuttia\";break;case\"h\":return e?\"tunnin\":\"tunti\";case\"hh\":f=e?\"tunnin\":\"tuntia\";break;case\"d\":return e?\"päivän\":\"päivä\";case\"dd\":f=e?\"päivän\":\"päivää\";break;case\"M\":return e?\"kuukauden\":\"kuukausi\";case\"MM\":f=e?\"kuukauden\":\"kuukautta\";break;case\"y\":return e?\"vuoden\":\"vuosi\";case\"yy\":f=e?\"vuoden\":\"vuotta\"}return f=d(a,e)+\" \"+f}function d(a,b){return 10>a?b?f[a]:e[a]:a}var e=\"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän\".split(\" \"),f=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"neljän\",\"viiden\",\"kuuden\",e[7],e[8],e[9]];(b.defineLocale||b.lang).call(b,\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] LT\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] LT\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] LT\",llll:\"ddd, Do MMM YYYY, [klo] LT\"},calendar:{sameDay:\"[tänään] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s päästä\",past:\"%s sitten\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fi\",\"fi\",{closeText:\"Sulje\",prevText:\"&#xAB;Edellinen\",nextText:\"Seuraava&#xBB;\",currentText:\"Tänään\",monthNames:[\"Tammikuu\",\"Helmikuu\",\"Maaliskuu\",\"Huhtikuu\",\"Toukokuu\",\"Kesäkuu\",\"Heinäkuu\",\"Elokuu\",\"Syyskuu\",\"Lokakuu\",\"Marraskuu\",\"Joulukuu\"],monthNamesShort:[\"Tammi\",\"Helmi\",\"Maalis\",\"Huhti\",\"Touko\",\"Kesä\",\"Heinä\",\"Elo\",\"Syys\",\"Loka\",\"Marras\",\"Joulu\"],dayNamesShort:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],dayNames:[\"Sunnuntai\",\"Maanantai\",\"Tiistai\",\"Keskiviikko\",\"Torstai\",\"Perjantai\",\"Lauantai\"],dayNamesMin:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],weekHeader:\"Vk\",dateFormat:\"d.m.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fi\",{buttonText:{month:\"Kuukausi\",week:\"Viikko\",day:\"Päivä\",list:\"Tapahtumat\"},allDayText:\"Koko päivä\",eventLimitText:\"lisää\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/fr-ca.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"fr-ca\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")}}),a.fullCalendar.datepickerLang(\"fr-ca\",\"fr-CA\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avril\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr-ca\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/fr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"fr\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fr\",\"fr\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avr.\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/he.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"he\",{months:\"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר\".split(\"_\"),monthsShort:\"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳\".split(\"_\"),weekdays:\"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת\".split(\"_\"),weekdaysShort:\"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳\".split(\"_\"),weekdaysMin:\"א_ב_ג_ד_ה_ו_ש\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [ב]MMMM YYYY\",LLL:\"D [ב]MMMM YYYY LT\",LLLL:\"dddd, D [ב]MMMM YYYY LT\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[היום ב־]LT\",nextDay:\"[מחר ב־]LT\",nextWeek:\"dddd [בשעה] LT\",lastDay:\"[אתמול ב־]LT\",lastWeek:\"[ביום] dddd [האחרון בשעה] LT\",sameElse:\"L\"},relativeTime:{future:\"בעוד %s\",past:\"לפני %s\",s:\"מספר שניות\",m:\"דקה\",mm:\"%d דקות\",h:\"שעה\",hh:function(a){return 2===a?\"שעתיים\":a+\" שעות\"},d:\"יום\",dd:function(a){return 2===a?\"יומיים\":a+\" ימים\"},M:\"חודש\",MM:function(a){return 2===a?\"חודשיים\":a+\" חודשים\"},y:\"שנה\",yy:function(a){return 2===a?\"שנתיים\":a%10===0&&10!==a?a+\" שנה\":a+\" שנים\"}}}),a.fullCalendar.datepickerLang(\"he\",\"he\",{closeText:\"סגור\",prevText:\"&#x3C;הקודם\",nextText:\"הבא&#x3E;\",currentText:\"היום\",monthNames:[\"ינואר\",\"פברואר\",\"מרץ\",\"אפריל\",\"מאי\",\"יוני\",\"יולי\",\"אוגוסט\",\"ספטמבר\",\"אוקטובר\",\"נובמבר\",\"דצמבר\"],monthNamesShort:[\"ינו\",\"פבר\",\"מרץ\",\"אפר\",\"מאי\",\"יוני\",\"יולי\",\"אוג\",\"ספט\",\"אוק\",\"נוב\",\"דצמ\"],dayNames:[\"ראשון\",\"שני\",\"שלישי\",\"רביעי\",\"חמישי\",\"שישי\",\"שבת\"],dayNamesShort:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],dayNamesMin:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"he\",{defaultButtonText:{month:\"חודש\",week:\"שבוע\",day:\"יום\",list:\"סדר יום\"},weekNumberTitle:\"שבוע\",allDayText:\"כל היום\",eventLimitText:\"אחר\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/hi.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},d={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};(b.defineLocale||b.lang).call(b,\"hi\",{months:\"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर\".split(\"_\"),monthsShort:\"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.\".split(\"_\"),weekdays:\"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm बजे\",LTS:\"A h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, LT\",LLLL:\"dddd, D MMMM YYYY, LT\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[कल] LT\",nextWeek:\"dddd, LT\",lastDay:\"[कल] LT\",lastWeek:\"[पिछले] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s में\",past:\"%s पहले\",s:\"कुछ ही क्षण\",m:\"एक मिनट\",mm:\"%d मिनट\",h:\"एक घंटा\",hh:\"%d घंटे\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महीने\",MM:\"%d महीने\",y:\"एक वर्ष\",yy:\"%d वर्ष\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return d[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात\"===b?4>a?a:a+12:\"सुबह\"===b?a:\"दोपहर\"===b?a>=10?a:a+12:\"शाम\"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?\"रात\":10>a?\"सुबह\":17>a?\"दोपहर\":20>a?\"शाम\":\"रात\"},week:{dow:0,doy:6}}),a.fullCalendar.datepickerLang(\"hi\",\"hi\",{closeText:\"बंद\",prevText:\"पिछला\",nextText:\"अगला\",currentText:\"आज\",monthNames:[\"जनवरी \",\"फरवरी\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अगस्त \",\"सितम्बर\",\"अक्टूबर\",\"नवम्बर\",\"दिसम्बर\"],monthNamesShort:[\"जन\",\"फर\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अग\",\"सित\",\"अक्ट\",\"नव\",\"दि\"],dayNames:[\"रविवार\",\"सोमवार\",\"मंगलवार\",\"बुधवार\",\"गुरुवार\",\"शुक्रवार\",\"शनिवार\"],dayNamesShort:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],dayNamesMin:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],weekHeader:\"हफ्ता\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hi\",{buttonText:{month:\"महीना\",week:\"सप्ताह\",day:\"दिन\",list:\"कार्यसूची\"},allDayText:\"सभी दिन\",eventLimitText:function(a){return\"+अधिक \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/hr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}(b.defineLocale||b.lang).call(b,\"hr\",{months:\"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\"),monthsShort:\"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:c,mm:c,h:c,hh:c,d:\"dan\",dd:c,M:\"mjesec\",MM:c,y:\"godinu\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hr\",\"hr\",{closeText:\"Zatvori\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Danas\",monthNames:[\"Siječanj\",\"Veljača\",\"Ožujak\",\"Travanj\",\"Svibanj\",\"Lipanj\",\"Srpanj\",\"Kolovoz\",\"Rujan\",\"Listopad\",\"Studeni\",\"Prosinac\"],monthNamesShort:[\"Sij\",\"Velj\",\"Ožu\",\"Tra\",\"Svi\",\"Lip\",\"Srp\",\"Kol\",\"Ruj\",\"Lis\",\"Stu\",\"Pro\"],dayNames:[\"Nedjelja\",\"Ponedjeljak\",\"Utorak\",\"Srijeda\",\"Četvrtak\",\"Petak\",\"Subota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Sri\",\"Čet\",\"Pet\",\"Sub\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"Sr\",\"Če\",\"Pe\",\"Su\"],weekHeader:\"Tje\",dateFormat:\"dd.mm.yy.\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hr\",{buttonText:{month:\"Mjesec\",week:\"Tjedan\",day:\"Dan\",list:\"Raspored\"},allDayText:\"Cijeli dan\",eventLimitText:function(a){return\"+ još \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/hu.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e=a;switch(c){case\"s\":return d||b?\"néhány másodperc\":\"néhány másodperce\";case\"m\":return\"egy\"+(d||b?\" perc\":\" perce\");case\"mm\":return e+(d||b?\" perc\":\" perce\");case\"h\":return\"egy\"+(d||b?\" óra\":\" órája\");case\"hh\":return e+(d||b?\" óra\":\" órája\");case\"d\":return\"egy\"+(d||b?\" nap\":\" napja\");case\"dd\":return e+(d||b?\" nap\":\" napja\");case\"M\":return\"egy\"+(d||b?\" hónap\":\" hónapja\");case\"MM\":return e+(d||b?\" hónap\":\" hónapja\");case\"y\":return\"egy\"+(d||b?\" év\":\" éve\");case\"yy\":return e+(d||b?\" év\":\" éve\")}return\"\"}function d(a){return(a?\"\":\"[múlt] \")+\"[\"+e[this.day()]+\"] LT[-kor]\"}var e=\"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton\".split(\" \");(b.defineLocale||b.lang).call(b,\"hu\",{months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D., LT\",LLLL:\"YYYY. MMMM D., dddd LT\"},meridiemParse:/de|du/i,isPM:function(a){return\"u\"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?\"de\":\"DE\":c===!0?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return d.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return d.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s múlva\",past:\"%s\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hu\",\"hu\",{closeText:\"bezár\",prevText:\"vissza\",nextText:\"előre\",currentText:\"ma\",monthNames:[\"Január\",\"Február\",\"Március\",\"Április\",\"Május\",\"Június\",\"Július\",\"Augusztus\",\"Szeptember\",\"Október\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Már\",\"Ápr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Szep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Vasárnap\",\"Hétfő\",\"Kedd\",\"Szerda\",\"Csütörtök\",\"Péntek\",\"Szombat\"],dayNamesShort:[\"Vas\",\"Hét\",\"Ked\",\"Sze\",\"Csü\",\"Pén\",\"Szo\"],dayNamesMin:[\"V\",\"H\",\"K\",\"Sze\",\"Cs\",\"P\",\"Szo\"],weekHeader:\"Hét\",dateFormat:\"yy.mm.dd.\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"hu\",{buttonText:{month:\"Hónap\",week:\"Hét\",day:\"Nap\",list:\"Napló\"},allDayText:\"Egész nap\",eventLimitText:\"további\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/id.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"LT.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] LT\",LLLL:\"dddd, D MMMM YYYY [pukul] LT\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"siang\"===b?a>=11?a:a+12:\"sore\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"pagi\":15>a?\"siang\":19>a?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"id\",\"id\",{closeText:\"Tutup\",prevText:\"&#x3C;mundur\",nextText:\"maju&#x3E;\",currentText:\"hari ini\",monthNames:[\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"Nopember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mei\",\"Jun\",\"Jul\",\"Agus\",\"Sep\",\"Okt\",\"Nop\",\"Des\"],dayNames:[\"Minggu\",\"Senin\",\"Selasa\",\"Rabu\",\"Kamis\",\"Jumat\",\"Sabtu\"],dayNamesShort:[\"Min\",\"Sen\",\"Sel\",\"Rab\",\"kam\",\"Jum\",\"Sab\"],dayNamesMin:[\"Mg\",\"Sn\",\"Sl\",\"Rb\",\"Km\",\"jm\",\"Sb\"],weekHeader:\"Mg\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"id\",{buttonText:{month:\"Bulan\",week:\"Minggu\",day:\"Hari\",list:\"Agenda\"},allDayHtml:\"Sehari<br/>penuh\",eventLimitText:\"lebih\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/is.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return a%100===11?!0:a%10===1?!1:!0}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"nokkrar sekúndur\":\"nokkrum sekúndum\";case\"m\":return b?\"mínúta\":\"mínútu\";case\"mm\":return c(a)?f+(b||e?\"mínútur\":\"mínútum\"):b?f+\"mínúta\":f+\"mínútu\";case\"hh\":return c(a)?f+(b||e?\"klukkustundir\":\"klukkustundum\"):f+\"klukkustund\";case\"d\":return b?\"dagur\":e?\"dag\":\"degi\";case\"dd\":return c(a)?b?f+\"dagar\":f+(e?\"daga\":\"dögum\"):b?f+\"dagur\":f+(e?\"dag\":\"degi\");case\"M\":return b?\"mánuður\":e?\"mánuð\":\"mánuði\";case\"MM\":return c(a)?b?f+\"mánuðir\":f+(e?\"mánuði\":\"mánuðum\"):b?f+\"mánuður\":f+(e?\"mánuð\":\"mánuði\");case\"y\":return b||e?\"ár\":\"ári\";case\"yy\":return c(a)?f+(b||e?\"ár\":\"árum\"):f+(b||e?\"ár\":\"ári\")}}(b.defineLocale||b.lang).call(b,\"is\",{months:\"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des\".split(\"_\"),weekdays:\"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_mán_þri_mið_fim_fös_lau\".split(\"_\"),weekdaysMin:\"Su_Má_Þr_Mi_Fi_Fö_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd, D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[í dag kl.] LT\",nextDay:\"[á morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[í gær kl.] LT\",lastWeek:\"[síðasta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s síðan\",s:d,m:d,mm:d,h:\"klukkustund\",hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"is\",\"is\",{closeText:\"Loka\",prevText:\"&#x3C; Fyrri\",nextText:\"Næsti &#x3E;\",currentText:\"Í dag\",monthNames:[\"Janúar\",\"Febrúar\",\"Mars\",\"Apríl\",\"Maí\",\"Júní\",\"Júlí\",\"Ágúst\",\"September\",\"Október\",\"Nóvember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maí\",\"Jún\",\"Júl\",\"Ágú\",\"Sep\",\"Okt\",\"Nóv\",\"Des\"],dayNames:[\"Sunnudagur\",\"Mánudagur\",\"Þriðjudagur\",\"Miðvikudagur\",\"Fimmtudagur\",\"Föstudagur\",\"Laugardagur\"],dayNamesShort:[\"Sun\",\"Mán\",\"Þri\",\"Mið\",\"Fim\",\"Fös\",\"Lau\"],dayNamesMin:[\"Su\",\"Má\",\"Þr\",\"Mi\",\"Fi\",\"Fö\",\"La\"],weekHeader:\"Vika\",dateFormat:\"dd.mm.yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"is\",{buttonText:{month:\"Mánuður\",week:\"Vika\",day:\"Dagur\",list:\"Dagskrá\"},allDayHtml:\"Allan<br/>daginn\",eventLimitText:\"meira\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/it.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato\".split(\"_\"),weekdaysShort:\"Dom_Lun_Mar_Mer_Gio_Ven_Sab\".split(\"_\"),weekdaysMin:\"D_L_Ma_Me_G_V_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?\"tra\":\"in\")+\" \"+a},past:\"%s fa\",s:\"alcuni secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"it\",\"it\",{closeText:\"Chiudi\",prevText:\"&#x3C;Prec\",nextText:\"Succ&#x3E;\",currentText:\"Oggi\",monthNames:[\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],monthNamesShort:[\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\"],dayNames:[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"],dayNamesShort:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\"],dayNamesMin:[\"Do\",\"Lu\",\"Ma\",\"Me\",\"Gi\",\"Ve\",\"Sa\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"it\",{buttonText:{month:\"Mese\",week:\"Settimana\",day:\"Giorno\",list:\"Agenda\"},allDayHtml:\"Tutto il<br/>giorno\",eventLimitText:function(a){return\"+altri \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ja.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ja\",{months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),longDateFormat:{LT:\"Ah時m分\",LTS:\"LTs秒\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日LT\",LLLL:\"YYYY年M月D日LT dddd\"},meridiemParse:/午前|午後/i,isPM:function(a){return\"午後\"===a},meridiem:function(a,b,c){return 12>a?\"午前\":\"午後\"},calendar:{sameDay:\"[今日] LT\",nextDay:\"[明日] LT\",nextWeek:\"[来週]dddd LT\",lastDay:\"[昨日] LT\",lastWeek:\"[前週]dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"ja\",\"ja\",{closeText:\"閉じる\",prevText:\"&#x3C;前\",nextText:\"次&#x3E;\",currentText:\"今日\",monthNames:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],monthNamesShort:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],dayNames:[\"日曜日\",\"月曜日\",\"火曜日\",\"水曜日\",\"木曜日\",\"金曜日\",\"土曜日\"],dayNamesShort:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],dayNamesMin:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],weekHeader:\"週\",dateFormat:\"yy/mm/dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"ja\",{buttonText:{month:\"月\",week:\"週\",day:\"日\",list:\"予定リスト\"},allDayText:\"終日\",eventLimitText:function(a){return\"他 \"+a+\" 件\"}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ko.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"ko\",{months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),longDateFormat:{LT:\"A h시 m분\",LTS:\"A h시 m분 s초\",L:\"YYYY.MM.DD\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 LT\",LLLL:\"YYYY년 MMMM D일 dddd LT\"},calendar:{sameDay:\"오늘 LT\",nextDay:\"내일 LT\",nextWeek:\"dddd LT\",lastDay:\"어제 LT\",lastWeek:\"지난주 dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇초\",ss:\"%d초\",m:\"일분\",mm:\"%d분\",h:\"한시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한달\",MM:\"%d달\",y:\"일년\",yy:\"%d년\"},ordinalParse:/\\d{1,2}일/,ordinal:\"%d일\",meridiemParse:/오전|오후/,isPM:function(a){return\"오후\"===a},meridiem:function(a,b,c){return 12>a?\"오전\":\"오후\"}}),a.fullCalendar.datepickerLang(\"ko\",\"ko\",{closeText:\"닫기\",prevText:\"이전달\",nextText:\"다음달\",currentText:\"오늘\",monthNames:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],monthNamesShort:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],dayNames:[\"일요일\",\"월요일\",\"화요일\",\"수요일\",\"목요일\",\"금요일\",\"토요일\"],dayNamesShort:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],dayNamesMin:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],weekHeader:\"Wk\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"년\"}),a.fullCalendar.lang(\"ko\",{buttonText:{month:\"월\",week:\"주\",day:\"일\",list:\"일정목록\"},allDayText:\"종일\",eventLimitText:\"개\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/lt.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){return b?\"kelios sekundės\":d?\"kelių sekundžių\":\"kelias sekundes\"}function d(a,b,c,d){return b?f(c)[0]:d?f(c)[1]:f(c)[2]}function e(a){return a%10===0||a>10&&20>a}function f(a){return i[a].split(\"_\")}function g(a,b,c,g){var h=a+\" \";return 1===a?h+d(a,b,c[0],g):b?h+(e(a)?f(c)[1]:f(c)[0]):g?h+f(c)[1]:h+(e(a)?f(c)[1]:f(c)[2])}function h(a,b){var c=-1===b.indexOf(\"dddd HH:mm\"),d=j[a.day()];return c?d:d.substring(0,d.length-2)+\"į\"}var i={m:\"minutė_minutės_minutę\",mm:\"minutės_minučių_minutes\",h:\"valanda_valandos_valandą\",hh:\"valandos_valandų_valandas\",d:\"diena_dienos_dieną\",dd:\"dienos_dienų_dienas\",M:\"mėnuo_mėnesio_mėnesį\",MM:\"mėnesiai_mėnesių_mėnesius\",y:\"metai_metų_metus\",yy:\"metai_metų_metus\"},j=\"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis\".split(\"_\");(b.defineLocale||b.lang).call(b,\"lt\",{months:\"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio\".split(\"_\"),monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:h,weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_Šeš\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_Š\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], LT [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, LT [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], LT [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, LT [val.]\"},calendar:{sameDay:\"[Šiandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Praėjusį] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prieš %s\",s:c,m:d,mm:g,h:d,hh:g,d:d,dd:g,M:d,MM:g,y:d,yy:g},ordinalParse:/\\d{1,2}-oji/,ordinal:function(a){return a+\"-oji\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lt\",\"lt\",{closeText:\"Uždaryti\",prevText:\"&#x3C;Atgal\",nextText:\"Pirmyn&#x3E;\",currentText:\"Šiandien\",monthNames:[\"Sausis\",\"Vasaris\",\"Kovas\",\"Balandis\",\"Gegužė\",\"Birželis\",\"Liepa\",\"Rugpjūtis\",\"Rugsėjis\",\"Spalis\",\"Lapkritis\",\"Gruodis\"],monthNamesShort:[\"Sau\",\"Vas\",\"Kov\",\"Bal\",\"Geg\",\"Bir\",\"Lie\",\"Rugp\",\"Rugs\",\"Spa\",\"Lap\",\"Gru\"],dayNames:[\"sekmadienis\",\"pirmadienis\",\"antradienis\",\"trečiadienis\",\"ketvirtadienis\",\"penktadienis\",\"šeštadienis\"],dayNamesShort:[\"sek\",\"pir\",\"ant\",\"tre\",\"ket\",\"pen\",\"šeš\"],dayNamesMin:[\"Se\",\"Pr\",\"An\",\"Tr\",\"Ke\",\"Pe\",\"Še\"],weekHeader:\"SAV\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"lt\",{buttonText:{month:\"Mėnuo\",week:\"Savaitė\",day:\"Diena\",list:\"Darbotvarkė\"},allDayText:\"Visą dieną\",eventLimitText:\"daugiau\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/lv.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d=a.split(\"_\");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function d(a,b,d){return a+\" \"+c(e[d],a,b)}var e={mm:\"minūti_minūtes_minūte_minūtes\",hh:\"stundu_stundas_stunda_stundas\",dd:\"dienu_dienas_diena_dienas\",MM:\"mēnesi_mēnešus_mēnesis_mēneši\",yy:\"gadu_gadus_gads_gadi\"};(b.defineLocale||b.lang).call(b,\"lv\",{months:\"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, LT\",LLLL:\"YYYY. [gada] D. MMMM, dddd, LT\"},calendar:{sameDay:\"[Šodien pulksten] LT\",nextDay:\"[Rīt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pagājušā] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"%s vēlāk\",past:\"%s agrāk\",s:\"dažas sekundes\",m:\"minūti\",mm:d,h:\"stundu\",hh:d,d:\"dienu\",dd:d,M:\"mēnesi\",MM:d,y:\"gadu\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lv\",\"lv\",{closeText:\"Aizvērt\",prevText:\"Iepr.\",nextText:\"Nāk.\",currentText:\"Šodien\",monthNames:[\"Janvāris\",\"Februāris\",\"Marts\",\"Aprīlis\",\"Maijs\",\"Jūnijs\",\"Jūlijs\",\"Augusts\",\"Septembris\",\"Oktobris\",\"Novembris\",\"Decembris\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Jūn\",\"Jūl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"svētdiena\",\"pirmdiena\",\"otrdiena\",\"trešdiena\",\"ceturtdiena\",\"piektdiena\",\"sestdiena\"],dayNamesShort:[\"svt\",\"prm\",\"otr\",\"tre\",\"ctr\",\"pkt\",\"sst\"],dayNamesMin:[\"Sv\",\"Pr\",\"Ot\",\"Tr\",\"Ct\",\"Pk\",\"Ss\"],weekHeader:\"Ned.\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"lv\",{buttonText:{month:\"Mēnesis\",week:\"Nedēļa\",day:\"Diena\",list:\"Dienas kārtība\"},allDayText:\"Visu dienu\",eventLimitText:function(a){return\"+vēl \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/nb.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tirs_ons_tors_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"H.mm\",LTS:\"LT.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"for %s siden\",s:\"noen sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en måned\",MM:\"%d måneder\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nb\",\"nb\",{closeText:\"Lukk\",prevText:\"&#xAB;Forrige\",nextText:\"Neste&#xBB;\",currentText:\"I dag\",monthNames:[\"januar\",\"februar\",\"mars\",\"april\",\"mai\",\"juni\",\"juli\",\"august\",\"september\",\"oktober\",\"november\",\"desember\"],monthNamesShort:[\"jan\",\"feb\",\"mar\",\"apr\",\"mai\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"des\"],dayNamesShort:[\"søn\",\"man\",\"tir\",\"ons\",\"tor\",\"fre\",\"lør\"],dayNames:[\"søndag\",\"mandag\",\"tirsdag\",\"onsdag\",\"torsdag\",\"fredag\",\"lørdag\"],dayNamesMin:[\"sø\",\"ma\",\"ti\",\"on\",\"to\",\"fr\",\"lø\"],weekHeader:\"Uke\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nb\",{buttonText:{month:\"Måned\",week:\"Uke\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"til\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/nl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),d=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},ordinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nl\",\"nl\",{closeText:\"Sluiten\",prevText:\"←\",nextText:\"→\",currentText:\"Vandaag\",monthNames:[\"januari\",\"februari\",\"maart\",\"april\",\"mei\",\"juni\",\"juli\",\"augustus\",\"september\",\"oktober\",\"november\",\"december\"],monthNamesShort:[\"jan\",\"feb\",\"mrt\",\"apr\",\"mei\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"dec\"],dayNames:[\"zondag\",\"maandag\",\"dinsdag\",\"woensdag\",\"donderdag\",\"vrijdag\",\"zaterdag\"],dayNamesShort:[\"zon\",\"maa\",\"din\",\"woe\",\"don\",\"vri\",\"zat\"],dayNamesMin:[\"zo\",\"ma\",\"di\",\"wo\",\"do\",\"vr\",\"za\"],weekHeader:\"Wk\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nl\",{buttonText:{month:\"Maand\",week:\"Week\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dag\",eventLimitText:\"extra\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/pl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function d(a,b,d){var e=a+\" \";switch(d){case\"m\":return b?\"minuta\":\"minutę\";case\"mm\":return e+(c(a)?\"minuty\":\"minut\");case\"h\":return b?\"godzina\":\"godzinę\";case\"hh\":return e+(c(a)?\"godziny\":\"godzin\");case\"MM\":return e+(c(a)?\"miesiące\":\"miesięcy\");case\"yy\":return e+(c(a)?\"lata\":\"lat\")}}var e=\"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień\".split(\"_\"),f=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia\".split(\"_\");(b.defineLocale||b.lang).call(b,\"pl\",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota\".split(\"_\"),weekdaysShort:\"nie_pon_wt_śr_czw_pt_sb\".split(\"_\"),weekdaysMin:\"N_Pn_Wt_Śr_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Dziś o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:\"[W] dddd [o] LT\",lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zeszłą niedzielę o] LT\";case 3:return\"[W zeszłą środę o] LT\";case 6:return\"[W zeszłą sobotę o] LT\";default:return\"[W zeszły] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",m:d,mm:d,h:d,hh:d,d:\"1 dzień\",dd:\"%d dni\",M:\"miesiąc\",MM:d,y:\"rok\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pl\",\"pl\",{closeText:\"Zamknij\",prevText:\"&#x3C;Poprzedni\",nextText:\"Następny&#x3E;\",currentText:\"Dziś\",monthNames:[\"Styczeń\",\"Luty\",\"Marzec\",\"Kwiecień\",\"Maj\",\"Czerwiec\",\"Lipiec\",\"Sierpień\",\"Wrzesień\",\"Październik\",\"Listopad\",\"Grudzień\"],monthNamesShort:[\"Sty\",\"Lu\",\"Mar\",\"Kw\",\"Maj\",\"Cze\",\"Lip\",\"Sie\",\"Wrz\",\"Pa\",\"Lis\",\"Gru\"],dayNames:[\"Niedziela\",\"Poniedziałek\",\"Wtorek\",\"Środa\",\"Czwartek\",\"Piątek\",\"Sobota\"],dayNamesShort:[\"Nie\",\"Pn\",\"Wt\",\"Śr\",\"Czw\",\"Pt\",\"So\"],dayNamesMin:[\"N\",\"Pn\",\"Wt\",\"Śr\",\"Cz\",\"Pt\",\"So\"],weekHeader:\"Tydz\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pl\",{buttonText:{month:\"Miesiąc\",week:\"Tydzień\",day:\"Dzień\",list:\"Plan dnia\"},allDayText:\"Cały dzień\",eventLimitText:\"więcej\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/pt-br.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"pt-br\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"%s atrás\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\"}),a.fullCalendar.datepickerLang(\"pt-br\",\"pt-BR\",{closeText:\"Fechar\",prevText:\"&#x3C;Anterior\",nextText:\"Próximo&#x3E;\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt-br\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Compromissos\"},allDayText:\"dia inteiro\",eventLimitText:function(a){return\"mais +\"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/pt.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"pt\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pt\",\"pt\",{closeText:\"Fechar\",prevText:\"Anterior\",nextText:\"Seguinte\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sem\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Todo o dia\",eventLimitText:\"mais\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ro.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d={mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"},e=\" \";return(a%100>=20||a>=100&&a%100===0)&&(e=\" de \"),a+e+d[c]}(b.defineLocale||b.lang).call(b,\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),weekdays:\"duminică_luni_marți_miercuri_joi_vineri_sâmbătă\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_Sâm\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_Sâ\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[mâine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s în urmă\",s:\"câteva secunde\",m:\"un minut\",mm:c,h:\"o oră\",hh:c,d:\"o zi\",dd:c,M:\"o lună\",MM:c,y:\"un an\",yy:c},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ro\",\"ro\",{closeText:\"Închide\",prevText:\"&#xAB; Luna precedentă\",nextText:\"Luna următoare &#xBB;\",currentText:\"Azi\",monthNames:[\"Ianuarie\",\"Februarie\",\"Martie\",\"Aprilie\",\"Mai\",\"Iunie\",\"Iulie\",\"August\",\"Septembrie\",\"Octombrie\",\"Noiembrie\",\"Decembrie\"],monthNamesShort:[\"Ian\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Iun\",\"Iul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Duminică\",\"Luni\",\"Marţi\",\"Miercuri\",\"Joi\",\"Vineri\",\"Sâmbătă\"],dayNamesShort:[\"Dum\",\"Lun\",\"Mar\",\"Mie\",\"Joi\",\"Vin\",\"Sâm\"],dayNamesMin:[\"Du\",\"Lu\",\"Ma\",\"Mi\",\"Jo\",\"Vi\",\"Sâ\"],weekHeader:\"Săpt\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ro\",{buttonText:{prev:\"precedentă\",next:\"următoare\",month:\"Lună\",week:\"Săptămână\",day:\"Zi\",list:\"Agendă\"},allDayText:\"Toată ziua\",eventLimitText:function(a){return\"+alte \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/ru.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:b?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"};return\"m\"===d?b?\"минута\":\"минуту\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),accusative:\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек\".split(\"_\"),accusative:\"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function g(a,b){var c={nominative:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),accusative:\"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу\".split(\"_\")},d=/\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/.test(b)?\"accusative\":\"nominative\";return c[d][a.day()]}(b.defineLocale||b.lang).call(b,\"ru\",{months:e,monthsShort:f,weekdays:g,weekdaysShort:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., LT\",LLLL:\"dddd, D MMMM YYYY г., LT\"},calendar:{sameDay:\"[Сегодня в] LT\",nextDay:\"[Завтра в] LT\",lastDay:\"[Вчера в] LT\",nextWeek:function(){return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В прошлое] dddd [в] LT\";case 1:case 2:case 4:return\"[В прошлый] dddd [в] LT\";case 3:case 5:case 6:return\"[В прошлую] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:d,mm:d,h:\"час\",hh:d,d:\"день\",dd:d,M:\"месяц\",MM:d,y:\"год\",yy:d},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночи\":12>a?\"утра\":17>a?\"дня\":\"вечера\"},ordinalParse:/\\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":return a+\"-й\";case\"D\":return a+\"-го\";case\"w\":case\"W\":return a+\"-я\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ru\",\"ru\",{closeText:\"Закрыть\",prevText:\"&#x3C;Пред\",nextText:\"След&#x3E;\",currentText:\"Сегодня\",monthNames:[\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\"],monthNamesShort:[\"Янв\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Июн\",\"Июл\",\"Авг\",\"Сен\",\"Окт\",\"Ноя\",\"Дек\"],dayNames:[\"воскресенье\",\"понедельник\",\"вторник\",\"среда\",\"четверг\",\"пятница\",\"суббота\"],dayNamesShort:[\"вск\",\"пнд\",\"втр\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Вс\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Нед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ru\",{buttonText:{month:\"Месяц\",week:\"Неделя\",day:\"День\",list:\"Повестка дня\"},allDayText:\"Весь день\",eventLimitText:function(a){return\"+ ещё \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/sk.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a){return a>1&&5>a}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekúnd\":\"pár sekundami\";case\"m\":return b?\"minúta\":e?\"minútu\":\"minútou\";case\"mm\":return b||e?f+(c(a)?\"minúty\":\"minút\"):f+\"minútami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodín\"):f+\"hodinami\";case\"d\":return b||e?\"deň\":\"dňom\";case\"dd\":return b||e?f+(c(a)?\"dni\":\"dní\"):f+\"dňami\";case\"M\":return b||e?\"mesiac\":\"mesiacom\";case\"MM\":return b||e?f+(c(a)?\"mesiace\":\"mesiacov\"):f+\"mesiacmi\";case\"y\":return b||e?\"rok\":\"rokom\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"rokov\"):f+\"rokmi\"}}var e=\"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december\".split(\"_\"),f=\"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"sk\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_št_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_št_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nedeľu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo štvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[včera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulú nedeľu o] LT\";case 1:case 2:return\"[minulý] dddd [o] LT\";case 3:return\"[minulú stredu o] LT\";case 4:case 5:return\"[minulý] dddd [o] LT\";case 6:return\"[minulú sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sk\",\"sk\",{closeText:\"Zavrieť\",prevText:\"&#x3C;Predchádzajúci\",nextText:\"Nasledujúci&#x3E;\",currentText:\"Dnes\",monthNames:[\"január\",\"február\",\"marec\",\"apríl\",\"máj\",\"jún\",\"júl\",\"august\",\"september\",\"október\",\"november\",\"december\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"nedeľa\",\"pondelok\",\"utorok\",\"streda\",\"štvrtok\",\"piatok\",\"sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Str\",\"Štv\",\"Pia\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"St\",\"Št\",\"Pia\",\"So\"],weekHeader:\"Ty\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sk\",{buttonText:{month:\"Mesiac\",week:\"Týždeň\",day:\"Deň\",list:\"Rozvrh\"},allDayText:\"Celý deň\",eventLimitText:function(a){return\"+ďalšie: \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/sl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"ena minuta\":\"eno minuto\";case\"mm\":return d+=1===a?\"minuta\":2===a?\"minuti\":3===a||4===a?\"minute\":\"minut\";case\"h\":return b?\"ena ura\":\"eno uro\";case\"hh\":return d+=1===a?\"ura\":2===a?\"uri\":3===a||4===a?\"ure\":\"ur\";case\"dd\":return d+=1===a?\"dan\":\"dni\";case\"MM\":return d+=1===a?\"mesec\":2===a?\"meseca\":3===a||4===a?\"mesece\":\"mesecev\";case\"yy\":return d+=1===a?\"leto\":2===a?\"leti\":3===a||4===a?\"leta\":\"let\"}}(b.defineLocale||b.lang).call(b,\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),weekdays:\"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._čet._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_če_pe_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[včeraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[prejšnja] dddd [ob] LT\";case 1:case 2:case 4:case 5:return\"[prejšnji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"čez %s\",past:\"%s nazaj\",s:\"nekaj sekund\",m:c,mm:c,h:c,hh:c,d:\"en dan\",dd:c,M:\"en mesec\",MM:c,y:\"eno leto\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sl\",\"sl\",{closeText:\"Zapri\",prevText:\"&#x3C;Prejšnji\",nextText:\"Naslednji&#x3E;\",currentText:\"Trenutni\",monthNames:[\"Januar\",\"Februar\",\"Marec\",\"April\",\"Maj\",\"Junij\",\"Julij\",\"Avgust\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Avg\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Nedelja\",\"Ponedeljek\",\"Torek\",\"Sreda\",\"Četrtek\",\"Petek\",\"Sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Tor\",\"Sre\",\"Čet\",\"Pet\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"To\",\"Sr\",\"Če\",\"Pe\",\"So\"],weekHeader:\"Teden\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sl\",{buttonText:{month:\"Mesec\",week:\"Teden\",day:\"Dan\",list:\"Dnevni red\"},allDayText:\"Ves dan\",eventLimitText:\"več\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/sr-cyrl.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={words:{m:[\"један минут\",\"једне минуте\"],mm:[\"минут\",\"минуте\",\"минута\"],h:[\"један сат\",\"једног сата\"],hh:[\"сат\",\"сата\",\"сати\"],dd:[\"дан\",\"дана\",\"дана\"],MM:[\"месец\",\"месеца\",\"месеци\"],yy:[\"година\",\"године\",\"година\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr-cyrl\",{months:[\"јануар\",\"фебруар\",\"март\",\"април\",\"мај\",\"јун\",\"јул\",\"август\",\"септембар\",\"октобар\",\"новембар\",\"децембар\"],monthsShort:[\"јан.\",\"феб.\",\"мар.\",\"апр.\",\"мај\",\"јун\",\"јул\",\"авг.\",\"сеп.\",\"окт.\",\"нов.\",\"дец.\"],weekdays:[\"недеља\",\"понедељак\",\"уторак\",\"среда\",\"четвртак\",\"петак\",\"субота\"],weekdaysShort:[\"нед.\",\"пон.\",\"уто.\",\"сре.\",\"чет.\",\"пет.\",\"суб.\"],weekdaysMin:[\"не\",\"по\",\"ут\",\"ср\",\"че\",\"пе\",\"су\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[данас у] LT\",nextDay:\"[сутра у] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[у] [недељу] [у] LT\";case 3:return\"[у] [среду] [у] LT\";case 6:return\"[у] [суботу] [у] LT\";case 1:case 2:case 4:case 5:return\"[у] dddd [у] LT\"}},lastDay:\"[јуче у] LT\",lastWeek:function(){var a=[\"[прошле] [недеље] [у] LT\",\"[прошлог] [понедељка] [у] LT\",\"[прошлог] [уторка] [у] LT\",\"[прошле] [среде] [у] LT\",\"[прошлог] [четвртка] [у] LT\",\"[прошлог] [петка] [у] LT\",\"[прошле] [суботе] [у] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"пре %s\",s:\"неколико секунди\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"дан\",dd:c.translate,M:\"месец\",MM:c.translate,y:\"годину\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr-cyrl\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr-cyrl\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/sr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={words:{m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr\",{months:[\"januar\",\"februar\",\"mart\",\"april\",\"maj\",\"jun\",\"jul\",\"avgust\",\"septembar\",\"oktobar\",\"novembar\",\"decembar\"],monthsShort:[\"jan.\",\"feb.\",\"mar.\",\"apr.\",\"maj\",\"jun\",\"jul\",\"avg.\",\"sep.\",\"okt.\",\"nov.\",\"dec.\"],weekdays:[\"nedelja\",\"ponedeljak\",\"utorak\",\"sreda\",\"četvrtak\",\"petak\",\"subota\"],weekdaysShort:[\"ned.\",\"pon.\",\"uto.\",\"sre.\",\"čet.\",\"pet.\",\"sub.\"],weekdaysMin:[\"ne\",\"po\",\"ut\",\"sr\",\"če\",\"pe\",\"su\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedelje] [u] LT\",\"[prošlog] [ponedeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"dan\",dd:c.translate,M:\"mesec\",MM:c.translate,y:\"godinu\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/sv.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Igår] LT\",nextWeek:\"dddd LT\",lastWeek:\"[Förra] dddd[en] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"e\":1===b?\"a\":2===b?\"a\":\"e\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sv\",\"sv\",{closeText:\"Stäng\",prevText:\"&#xAB;Förra\",nextText:\"Nästa&#xBB;\",currentText:\"Idag\",monthNames:[\"Januari\",\"Februari\",\"Mars\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"Augusti\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNamesShort:[\"Sön\",\"Mån\",\"Tis\",\"Ons\",\"Tor\",\"Fre\",\"Lör\"],dayNames:[\"Söndag\",\"Måndag\",\"Tisdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lördag\"],dayNamesMin:[\"Sö\",\"Må\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lö\"],weekHeader:\"Ve\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sv\",{buttonText:{month:\"Månad\",week:\"Vecka\",day:\"Dag\",list:\"Program\"},allDayText:\"Heldag\",eventLimitText:\"till\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/th.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"th\",{months:\"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม\".split(\"_\"),monthsShort:\"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา\".split(\"_\"),weekdays:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์\".split(\"_\"),weekdaysShort:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์\".split(\"_\"),weekdaysMin:\"อา._จ._อ._พ._พฤ._ศ._ส.\".split(\"_\"),longDateFormat:{LT:\"H นาฬิกา m นาที\",LTS:\"LT s วินาที\",L:\"YYYY/MM/DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY เวลา LT\",LLLL:\"วันddddที่ D MMMM YYYY เวลา LT\"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return\"หลังเที่ยง\"===a},meridiem:function(a,b,c){return 12>a?\"ก่อนเที่ยง\":\"หลังเที่ยง\"},calendar:{sameDay:\"[วันนี้ เวลา] LT\",nextDay:\"[พรุ่งนี้ เวลา] LT\",nextWeek:\"dddd[หน้า เวลา] LT\",lastDay:\"[เมื่อวานนี้ เวลา] LT\",lastWeek:\"[วัน]dddd[ที่แล้ว เวลา] LT\",sameElse:\"L\"},relativeTime:{future:\"อีก %s\",past:\"%sที่แล้ว\",s:\"ไม่กี่วินาที\",m:\"1 นาที\",mm:\"%d นาที\",h:\"1 ชั่วโมง\",hh:\"%d ชั่วโมง\",d:\"1 วัน\",dd:\"%d วัน\",M:\"1 เดือน\",MM:\"%d เดือน\",y:\"1 ปี\",yy:\"%d ปี\"}}),a.fullCalendar.datepickerLang(\"th\",\"th\",{closeText:\"ปิด\",prevText:\"&#xAB;&#xA0;ย้อน\",nextText:\"ถัดไป&#xA0;&#xBB;\",currentText:\"วันนี้\",monthNames:[\"มกราคม\",\"กุมภาพันธ์\",\"มีนาคม\",\"เมษายน\",\"พฤษภาคม\",\"มิถุนายน\",\"กรกฎาคม\",\"สิงหาคม\",\"กันยายน\",\"ตุลาคม\",\"พฤศจิกายน\",\"ธันวาคม\"],monthNamesShort:[\"ม.ค.\",\"ก.พ.\",\"มี.ค.\",\"เม.ย.\",\"พ.ค.\",\"มิ.ย.\",\"ก.ค.\",\"ส.ค.\",\"ก.ย.\",\"ต.ค.\",\"พ.ย.\",\"ธ.ค.\"],dayNames:[\"อาทิตย์\",\"จันทร์\",\"อังคาร\",\"พุธ\",\"พฤหัสบดี\",\"ศุกร์\",\"เสาร์\"],dayNamesShort:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],dayNamesMin:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"th\",{buttonText:{month:\"เดือน\",week:\"สัปดาห์\",day:\"วัน\",list:\"แผนงาน\"},allDayText:\"ตลอดวัน\",eventLimitText:\"เพิ่มเติม\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/tr.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){var c={1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'üncü\",4:\"'üncü\",100:\"'üncü\",6:\"'ncı\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'ıncı\",90:\"'ıncı\"};(b.defineLocale||b.lang).call(b,\"tr\",{months:\"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık\".split(\"_\"),monthsShort:\"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_Çar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_Ça_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[yarın saat] LT\",nextWeek:\"[haftaya] dddd [saat] LT\",lastDay:\"[dün] LT\",lastWeek:\"[geçen hafta] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s önce\",s:\"birkaç saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir yıl\",yy:\"%d yıl\"},ordinalParse:/\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+\"'ıncı\";var b=a%10,d=a%100-b,e=a>=100?100:null;return a+(c[b]||c[d]||c[e])},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"tr\",\"tr\",{closeText:\"kapat\",prevText:\"&#x3C;geri\",nextText:\"ileri&#x3e\",currentText:\"bugün\",monthNames:[\"Ocak\",\"Şubat\",\"Mart\",\"Nisan\",\"Mayıs\",\"Haziran\",\"Temmuz\",\"Ağustos\",\"Eylül\",\"Ekim\",\"Kasım\",\"Aralık\"],monthNamesShort:[\"Oca\",\"Şub\",\"Mar\",\"Nis\",\"May\",\"Haz\",\"Tem\",\"Ağu\",\"Eyl\",\"Eki\",\"Kas\",\"Ara\"],dayNames:[\"Pazar\",\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\"],dayNamesShort:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],dayNamesMin:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],weekHeader:\"Hf\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"tr\",{buttonText:{next:\"ileri\",month:\"Ay\",week:\"Hafta\",day:\"Gün\",list:\"Ajanda\"},allDayText:\"Tüm gün\",eventLimitText:\"daha fazla\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/uk.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:\"хвилина_хвилини_хвилин\",hh:\"година_години_годин\",dd:\"день_дні_днів\",MM:\"місяць_місяці_місяців\",yy:\"рік_роки_років\"};return\"m\"===d?b?\"хвилина\":\"хвилину\":\"h\"===d?b?\"година\":\"годину\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень\".split(\"_\"),accusative:\"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня\".split(\"_\")},d=/D[oD]? *MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота\".split(\"_\"),accusative:\"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу\".split(\"_\"),genitive:\"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи\".split(\"_\")},d=/(\\[[ВвУу]\\]) ?dddd/.test(b)?\"accusative\":/\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(b)?\"genitive\":\"nominative\";return c[d][a.day()]}function g(a){return function(){return a+\"о\"+(11===this.hours()?\"б\":\"\")+\"] LT\"}}(b.defineLocale||b.lang).call(b,\"uk\",{months:e,monthsShort:\"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд\".split(\"_\"),weekdays:f,weekdaysShort:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY р.\",LLL:\"D MMMM YYYY р., LT\",LLLL:\"dddd, D MMMM YYYY р., LT\"},calendar:{sameDay:g(\"[Сьогодні \"),nextDay:g(\"[Завтра \"),lastDay:g(\"[Вчора \"),nextWeek:g(\"[У] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return g(\"[Минулої] dddd [\").call(this);case 1:case 2:case 4:return g(\"[Минулого] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"%s тому\",s:\"декілька секунд\",m:d,mm:d,h:\"годину\",hh:d,d:\"день\",dd:d,M:\"місяць\",MM:d,y:\"рік\",yy:d},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночі\":12>a?\"ранку\":17>a?\"дня\":\"вечора\"},ordinalParse:/\\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a+\"-й\";case\"D\":return a+\"-го\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"uk\",\"uk\",{closeText:\"Закрити\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Сьогодні\",monthNames:[\"Січень\",\"Лютий\",\"Березень\",\"Квітень\",\"Травень\",\"Червень\",\"Липень\",\"Серпень\",\"Вересень\",\"Жовтень\",\"Листопад\",\"Грудень\"],monthNamesShort:[\"Січ\",\"Лют\",\"Бер\",\"Кві\",\"Тра\",\"Чер\",\"Лип\",\"Сер\",\"Вер\",\"Жов\",\"Лис\",\"Гру\"],dayNames:[\"неділя\",\"понеділок\",\"вівторок\",\"середа\",\"четвер\",\"п’ятниця\",\"субота\"],dayNamesShort:[\"нед\",\"пнд\",\"вів\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Нд\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Тиж\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"uk\",{buttonText:{month:\"Місяць\",week:\"Тиждень\",day:\"День\",list:\"Порядок денний\"},allDayText:\"Увесь день\",eventLimitText:function(a){return\"+ще \"+a+\"...\"}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/vi.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"vi\",{months:\"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),weekdays:\"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [năm] YYYY\",LLL:\"D MMMM [năm] YYYY LT\",LLLL:\"dddd, D MMMM [năm] YYYY LT\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[Hôm nay lúc] LT\",nextDay:\"[Ngày mai lúc] LT\",nextWeek:\"dddd [tuần tới lúc] LT\",lastDay:\"[Hôm qua lúc] LT\",lastWeek:\"dddd [tuần rồi lúc] LT\",sameElse:\"L\"},relativeTime:{future:\"%s tới\",past:\"%s trước\",s:\"vài giây\",m:\"một phút\",mm:\"%d phút\",h:\"một giờ\",hh:\"%d giờ\",d:\"một ngày\",dd:\"%d ngày\",M:\"một tháng\",MM:\"%d tháng\",y:\"một năm\",yy:\"%d năm\"},ordinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"vi\",\"vi\",{closeText:\"Đóng\",prevText:\"&#x3C;Trước\",nextText:\"Tiếp&#x3E;\",currentText:\"Hôm nay\",monthNames:[\"Tháng Một\",\"Tháng Hai\",\"Tháng Ba\",\"Tháng Tư\",\"Tháng Năm\",\"Tháng Sáu\",\"Tháng Bảy\",\"Tháng Tám\",\"Tháng Chín\",\"Tháng Mười\",\"Tháng Mười Một\",\"Tháng Mười Hai\"],monthNamesShort:[\"Tháng 1\",\"Tháng 2\",\"Tháng 3\",\"Tháng 4\",\"Tháng 5\",\"Tháng 6\",\"Tháng 7\",\"Tháng 8\",\"Tháng 9\",\"Tháng 10\",\"Tháng 11\",\"Tháng 12\"],dayNames:[\"Chủ Nhật\",\"Thứ Hai\",\"Thứ Ba\",\"Thứ Tư\",\"Thứ Năm\",\"Thứ Sáu\",\"Thứ Bảy\"],dayNamesShort:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],dayNamesMin:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],weekHeader:\"Tu\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"vi\",{buttonText:{month:\"Tháng\",week:\"Tuần\",day:\"Ngày\",list:\"Lịch biểu\"},allDayText:\"Cả ngày\",eventLimitText:function(a){return\"+ thêm \"+a}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/zh-cn.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"zh-cn\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah点mm\",LTS:\"Ah点m分s秒\",L:\"YYYY-MM-DD\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY-MM-DD\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"下午\"===b||\"晚上\"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?\"凌晨\":900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:function(){return 0===this.minutes()?\"[今天]Ah[点整]\":\"[今天]LT\"},nextDay:function(){return 0===this.minutes()?\"[明天]Ah[点整]\":\"[明天]LT\"},lastDay:function(){return 0===this.minutes()?\"[昨天]Ah[点整]\":\"[昨天]LT\"},nextWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()-a.unix()>=604800?\"[下]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},lastWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()<a.unix()?\"[上]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},sameElse:\"LL\"},ordinalParse:/\\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"周\";default:return a}},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1分钟\",mm:\"%d分钟\",h:\"1小时\",hh:\"%d小时\",d:\"1天\",dd:\"%d天\",M:\"1个月\",MM:\"%d个月\",y:\"1年\",yy:\"%d年\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"zh-cn\",\"zh-CN\",{closeText:\"关闭\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-cn\",{buttonText:{month:\"月\",week:\"周\",day:\"日\",list:\"日程\"},allDayText:\"全天\",eventLimitText:function(a){return\"另外 \"+a+\" 个\"}})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang/zh-tw.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,\"zh-tw\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah點mm\",LTS:\"Ah點m分s秒\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},ordinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"一分鐘\",mm:\"%d分鐘\",h:\"一小時\",hh:\"%d小時\",d:\"一天\",dd:\"%d天\",M:\"一個月\",MM:\"%d個月\",y:\"一年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"zh-tw\",\"zh-TW\",{closeText:\"關閉\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy/mm/dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-tw\",{buttonText:{month:\"月\",week:\"週\",day:\"天\",list:\"待辦事項\"},allDayText:\"全天\",eventLimitText:\"更多\"})});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/fullcalendar/lang-all.js",
    "content": "!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\",\"moment\"],a):a(jQuery,moment)}(function(a,b){!function(){(b.defineLocale||b.lang).call(b,\"ar-ma\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-ma\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-ma\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"};(b.defineLocale||b.lang).call(b,\"ar-sa\",{months:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar-sa\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-sa\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){(b.defineLocale||b.lang).call(b,\"ar-tn\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ar-tn\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar-tn\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){var c={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},d={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},e=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},f={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},g=function(a){return function(b,c,d,g){var h=e(b),i=f[a][e(b)];return 2===h&&(i=i[c?0:1]),i.replace(/%d/i,b)}},h=[\"كانون الثاني يناير\",\"شباط فبراير\",\"آذار مارس\",\"نيسان أبريل\",\"أيار مايو\",\"حزيران يونيو\",\"تموز يوليو\",\"آب أغسطس\",\"أيلول سبتمبر\",\"تشرين الأول أكتوبر\",\"تشرين الثاني نوفمبر\",\"كانون الأول ديسمبر\"];(b.defineLocale||b.lang).call(b,\"ar\",{months:h,monthsShort:h,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return 12>a?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:g(\"s\"),m:g(\"m\"),mm:g(\"m\"),h:g(\"h\"),hh:g(\"h\"),d:g(\"d\"),dd:g(\"d\"),M:g(\"M\"),MM:g(\"M\"),y:g(\"y\"),yy:g(\"y\")},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"ar\",\"ar\",{closeText:\"إغلاق\",prevText:\"&#x3C;السابق\",nextText:\"التالي&#x3E;\",currentText:\"اليوم\",monthNames:[\"كانون الثاني\",\"شباط\",\"آذار\",\"نيسان\",\"مايو\",\"حزيران\",\"تموز\",\"آب\",\"أيلول\",\"تشرين الأول\",\"تشرين الثاني\",\"كانون الأول\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesShort:[\"الأحد\",\"الاثنين\",\"الثلاثاء\",\"الأربعاء\",\"الخميس\",\"الجمعة\",\"السبت\"],dayNamesMin:[\"ح\",\"ن\",\"ث\",\"ر\",\"خ\",\"ج\",\"س\"],weekHeader:\"أسبوع\",dateFormat:\"dd/mm/yy\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ar\",{buttonText:{month:\"شهر\",week:\"أسبوع\",day:\"يوم\",list:\"أجندة\"},allDayText:\"اليوم كله\",eventLimitText:\"أخرى\"})}(),function(){(b.defineLocale||b.lang).call(b,\"bg\",{months:\"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"неделя_понеделник_вторник_сряда_четвъртък_петък_събота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сря_чет_пет_съб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Днес в] LT\",nextDay:\"[Утре в] LT\",nextWeek:\"dddd [в] LT\",lastDay:\"[Вчера в] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[В изминалата] dddd [в] LT\";case 1:case 2:case 4:case 5:return\"[В изминалия] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"след %s\",past:\"преди %s\",s:\"няколко секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дни\",M:\"месец\",MM:\"%d месеца\",y:\"година\",yy:\"%d години\"},ordinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&20>c?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"bg\",\"bg\",{closeText:\"затвори\",prevText:\"&#x3C;назад\",nextText:\"напред&#x3E;\",nextBigText:\"&#x3E;&#x3E;\",currentText:\"днес\",monthNames:[\"Януари\",\"Февруари\",\"Март\",\"Април\",\"Май\",\"Юни\",\"Юли\",\"Август\",\"Септември\",\"Октомври\",\"Ноември\",\"Декември\"],monthNamesShort:[\"Яну\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Юни\",\"Юли\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дек\"],dayNames:[\"Неделя\",\"Понеделник\",\"Вторник\",\"Сряда\",\"Четвъртък\",\"Петък\",\"Събота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Вто\",\"Сря\",\"Чет\",\"Пет\",\"Съб\"],dayNamesMin:[\"Не\",\"По\",\"Вт\",\"Ср\",\"Че\",\"Пе\",\"Съ\"],weekHeader:\"Wk\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"bg\",{buttonText:{month:\"Месец\",week:\"Седмица\",day:\"Ден\",list:\"График\"},allDayText:\"Цял ден\",eventLimitText:function(a){return\"+още \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"ca\",{months:\"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),monthsShort:\"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.\".split(\"_\"),weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"Dg_Dl_Dt_Dc_Dj_Dv_Ds\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[demà a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"fa %s\",s:\"uns segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},ordinalParse:/\\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?\"r\":2===a?\"n\":3===a?\"r\":4===a?\"t\":\"è\";return(\"w\"===b||\"W\"===b)&&(c=\"a\"),a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"ca\",\"ca\",{closeText:\"Tanca\",prevText:\"Anterior\",nextText:\"Següent\",currentText:\"Avui\",monthNames:[\"gener\",\"febrer\",\"març\",\"abril\",\"maig\",\"juny\",\"juliol\",\"agost\",\"setembre\",\"octubre\",\"novembre\",\"desembre\"],monthNamesShort:[\"gen\",\"feb\",\"març\",\"abr\",\"maig\",\"juny\",\"jul\",\"ag\",\"set\",\"oct\",\"nov\",\"des\"],dayNames:[\"diumenge\",\"dilluns\",\"dimarts\",\"dimecres\",\"dijous\",\"divendres\",\"dissabte\"],dayNamesShort:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],dayNamesMin:[\"dg\",\"dl\",\"dt\",\"dc\",\"dj\",\"dv\",\"ds\"],weekHeader:\"Set\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ca\",{buttonText:{month:\"Mes\",week:\"Setmana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Tot el dia\",eventLimitText:\"més\"})}(),function(){function c(a){return a>1&&5>a&&1!==~~(a/10)}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekund\":\"pár sekundami\";case\"m\":return b?\"minuta\":e?\"minutu\":\"minutou\";case\"mm\":return b||e?f+(c(a)?\"minuty\":\"minut\"):f+\"minutami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodin\"):f+\"hodinami\";case\"d\":return b||e?\"den\":\"dnem\";case\"dd\":return b||e?f+(c(a)?\"dny\":\"dní\"):f+\"dny\";case\"M\":return b||e?\"měsíc\":\"měsícem\";case\"MM\":return b||e?f+(c(a)?\"měsíce\":\"měsíců\"):f+\"měsíci\";case\"y\":return b||e?\"rok\":\"rokem\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"let\"):f+\"lety\"}}var e=\"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec\".split(\"_\"),f=\"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro\".split(\"_\");(b.defineLocale||b.lang).call(b,\"cs\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_út_st_čt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_út_st_čt_pá_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[zítra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v neděli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve středu v] LT\";case 4:return\"[ve čtvrtek v] LT\";case 5:return\"[v pátek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[včera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou neděli v] LT\";case 1:case 2:return\"[minulé] dddd [v] LT\";case 3:return\"[minulou středu v] LT\";case 4:case 5:return\"[minulý] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"před %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"cs\",\"cs\",{closeText:\"Zavřít\",prevText:\"&#x3C;Dříve\",nextText:\"Později&#x3E;\",currentText:\"Nyní\",monthNames:[\"leden\",\"únor\",\"březen\",\"duben\",\"květen\",\"červen\",\"červenec\",\"srpen\",\"září\",\"říjen\",\"listopad\",\"prosinec\"],monthNamesShort:[\"led\",\"úno\",\"bře\",\"dub\",\"kvě\",\"čer\",\"čvc\",\"srp\",\"zář\",\"říj\",\"lis\",\"pro\"],dayNames:[\"neděle\",\"pondělí\",\"úterý\",\"středa\",\"čtvrtek\",\"pátek\",\"sobota\"],dayNamesShort:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],dayNamesMin:[\"ne\",\"po\",\"út\",\"st\",\"čt\",\"pá\",\"so\"],weekHeader:\"Týd\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"cs\",{buttonText:{month:\"Měsíc\",week:\"Týden\",day:\"Den\",list:\"Agenda\"},allDayText:\"Celý den\",eventLimitText:function(a){return\"+další: \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tir_ons_tor_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd [d.] D. MMMM YYYY LT\"},calendar:{sameDay:\"[I dag kl.] LT\",nextDay:\"[I morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[I går kl.] LT\",lastWeek:\"[sidste] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"få sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en måned\",MM:\"%d måneder\",y:\"et år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"da\",\"da\",{closeText:\"Luk\",prevText:\"&#x3C;Forrige\",nextText:\"Næste&#x3E;\",currentText:\"Idag\",monthNames:[\"Januar\",\"Februar\",\"Marts\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Søndag\",\"Mandag\",\"Tirsdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lørdag\"],dayNamesShort:[\"Søn\",\"Man\",\"Tir\",\"Ons\",\"Tor\",\"Fre\",\"Lør\"],dayNamesMin:[\"Sø\",\"Ma\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lø\"],weekHeader:\"Uge\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"da\",{buttonText:{month:\"Måned\",week:\"Uge\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"flere\"})}(),function(){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de-at\",{months:\"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de-at\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de-at\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})}(),function(){function c(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,\"de\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[Heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[Morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[Gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:c,mm:\"%d Minuten\",h:c,hh:\"%d Stunden\",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"de\",\"de\",{closeText:\"Schließen\",prevText:\"&#x3C;Zurück\",nextText:\"Vor&#x3E;\",currentText:\"Heute\",monthNames:[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],dayNames:[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],dayNamesShort:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],dayNamesMin:[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],weekHeader:\"KW\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"de\",{buttonText:{month:\"Monat\",week:\"Woche\",day:\"Tag\",list:\"Terminübersicht\"},allDayText:\"Ganztägig\",eventLimitText:function(a){return\"+ weitere \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"el\",{monthsNominativeEl:\"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος\".split(\"_\"),monthsGenitiveEl:\"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου\".split(\"_\"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf(\"MMMM\")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:\"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ\".split(\"_\"),weekdays:\"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο\".split(\"_\"),weekdaysShort:\"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ\".split(\"_\"),weekdaysMin:\"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα\".split(\"_\"),meridiem:function(a,b,c){return a>11?c?\"μμ\":\"ΜΜ\":c?\"πμ\":\"ΠΜ\"},isPM:function(a){return\"μ\"===(a+\"\").toLowerCase()[0]},meridiemParse:/[ΠΜ]\\.?Μ?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendarEl:{sameDay:\"[Σήμερα {}] LT\",nextDay:\"[Αύριο {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[Χθες {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[το προηγούμενο] dddd [{}] LT\";default:return\"[την προηγούμενη] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return\"function\"==typeof c&&(c=c.apply(b)),c.replace(\"{}\",d%12===1?\"στη\":\"στις\")},relativeTime:{future:\"σε %s\",past:\"%s πριν\",s:\"λίγα δευτερόλεπτα\",m:\"ένα λεπτό\",mm:\"%d λεπτά\",h:\"μία ώρα\",hh:\"%d ώρες\",d:\"μία μέρα\",dd:\"%d μέρες\",M:\"ένας μήνας\",MM:\"%d μήνες\",y:\"ένας χρόνος\",yy:\"%d χρόνια\"},ordinalParse:/\\d{1,2}η/,ordinal:\"%dη\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"el\",\"el\",{closeText:\"Κλείσιμο\",prevText:\"Προηγούμενος\",nextText:\"Επόμενος\",currentText:\"Σήμερα\",monthNames:[\"Ιανουάριος\",\"Φεβρουάριος\",\"Μάρτιος\",\"Απρίλιος\",\"Μάιος\",\"Ιούνιος\",\"Ιούλιος\",\"Αύγουστος\",\"Σεπτέμβριος\",\"Οκτώβριος\",\"Νοέμβριος\",\"Δεκέμβριος\"],monthNamesShort:[\"Ιαν\",\"Φεβ\",\"Μαρ\",\"Απρ\",\"Μαι\",\"Ιουν\",\"Ιουλ\",\"Αυγ\",\"Σεπ\",\"Οκτ\",\"Νοε\",\"Δεκ\"],dayNames:[\"Κυριακή\",\"Δευτέρα\",\"Τρίτη\",\"Τετάρτη\",\"Πέμπτη\",\"Παρασκευή\",\"Σάββατο\"],dayNamesShort:[\"Κυρ\",\"Δευ\",\"Τρι\",\"Τετ\",\"Πεμ\",\"Παρ\",\"Σαβ\"],dayNamesMin:[\"Κυ\",\"Δε\",\"Τρ\",\"Τε\",\"Πε\",\"Πα\",\"Σα\"],weekHeader:\"Εβδ\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"el\",{buttonText:{month:\"Μήνας\",week:\"Εβδομάδα\",day:\"Ημέρα\",list:\"Ατζέντα\"},allDayText:\"Ολοήμερο\",eventLimitText:\"περισσότερα\"})}(),function(){(b.defineLocale||b.lang).call(b,\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-au\",\"en-AU\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-au\")}(),function(){(b.defineLocale||b.lang).call(b,\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"D MMMM, YYYY\",LLL:\"D MMMM, YYYY LT\",LLLL:\"dddd, D MMMM, YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.fullCalendar.lang(\"en-ca\")}(),function(){(b.defineLocale||b.lang).call(b,\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ordinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"en-gb\",\"en-GB\",{closeText:\"Done\",prevText:\"Prev\",nextText:\"Next\",currentText:\"Today\",monthNames:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayNamesShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],dayNamesMin:[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"en-gb\")}(),function(){var c=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),d=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");(b.defineLocale||b.lang).call(b,\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"Do_Lu_Ma_Mi_Ju_Vi_Sá\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"es\",\"es\",{closeText:\"Cerrar\",prevText:\"&#x3C;Ant\",nextText:\"Sig&#x3E;\",currentText:\"Hoy\",monthNames:[\"enero\",\"febrero\",\"marzo\",\"abril\",\"mayo\",\"junio\",\"julio\",\"agosto\",\"septiembre\",\"octubre\",\"noviembre\",\"diciembre\"],monthNamesShort:[\"ene\",\"feb\",\"mar\",\"abr\",\"may\",\"jun\",\"jul\",\"ago\",\"sep\",\"oct\",\"nov\",\"dic\"],dayNames:[\"domingo\",\"lunes\",\"martes\",\"miércoles\",\"jueves\",\"viernes\",\"sábado\"],dayNamesShort:[\"dom\",\"lun\",\"mar\",\"mié\",\"jue\",\"vie\",\"sáb\"],dayNamesMin:[\"D\",\"L\",\"M\",\"X\",\"J\",\"V\",\"S\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"es\",{buttonText:{month:\"Mes\",week:\"Semana\",day:\"Día\",list:\"Agenda\"},allDayHtml:\"Todo<br/>el día\",eventLimitText:\"más\"})}(),function(){var c={1:\"۱\",2:\"۲\",3:\"۳\",4:\"۴\",5:\"۵\",6:\"۶\",7:\"۷\",8:\"۸\",9:\"۹\",0:\"۰\"},d={\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"۰\":\"0\"};(b.defineLocale||b.lang).call(b,\"fa\",{months:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),monthsShort:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),weekdays:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysShort:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysMin:\"ی_د_س_چ_پ_ج_ش\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?\"قبل از ظهر\":\"بعد از ظهر\"},calendar:{sameDay:\"[امروز ساعت] LT\",nextDay:\"[فردا ساعت] LT\",nextWeek:\"dddd [ساعت] LT\",lastDay:\"[دیروز ساعت] LT\",lastWeek:\"dddd [پیش] [ساعت] LT\",sameElse:\"L\"},relativeTime:{future:\"در %s\",past:\"%s پیش\",s:\"چندین ثانیه\",m:\"یک دقیقه\",mm:\"%d دقیقه\",h:\"یک ساعت\",hh:\"%d ساعت\",d:\"یک روز\",dd:\"%d روز\",M:\"یک ماه\",MM:\"%d ماه\",y:\"یک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return d[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]}).replace(/,/g,\"،\")},ordinalParse:/\\d{1,2}م/,ordinal:\"%dم\",week:{dow:6,doy:12}}),a.fullCalendar.datepickerLang(\"fa\",\"fa\",{closeText:\"بستن\",prevText:\"&#x3C;قبلی\",nextText:\"بعدی&#x3E;\",currentText:\"امروز\",monthNames:[\"ژانویه\",\"فوریه\",\"مارس\",\"آوریل\",\"مه\",\"ژوئن\",\"ژوئیه\",\"اوت\",\"سپتامبر\",\"اکتبر\",\"نوامبر\",\"دسامبر\"],monthNamesShort:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"],dayNames:[\"يکشنبه\",\"دوشنبه\",\"سه‌شنبه\",\"چهارشنبه\",\"پنجشنبه\",\"جمعه\",\"شنبه\"],dayNamesShort:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],dayNamesMin:[\"ی\",\"د\",\"س\",\"چ\",\"پ\",\"ج\",\"ش\"],weekHeader:\"هف\",dateFormat:\"yy/mm/dd\",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fa\",{buttonText:{month:\"ماه\",week:\"هفته\",day:\"روز\",list:\"برنامه\"\n},allDayText:\"تمام روز\",eventLimitText:function(a){return\"بیش از \"+a}})}(),function(){function c(a,b,c,e){var f=\"\";switch(c){case\"s\":return e?\"muutaman sekunnin\":\"muutama sekunti\";case\"m\":return e?\"minuutin\":\"minuutti\";case\"mm\":f=e?\"minuutin\":\"minuuttia\";break;case\"h\":return e?\"tunnin\":\"tunti\";case\"hh\":f=e?\"tunnin\":\"tuntia\";break;case\"d\":return e?\"päivän\":\"päivä\";case\"dd\":f=e?\"päivän\":\"päivää\";break;case\"M\":return e?\"kuukauden\":\"kuukausi\";case\"MM\":f=e?\"kuukauden\":\"kuukautta\";break;case\"y\":return e?\"vuoden\":\"vuosi\";case\"yy\":f=e?\"vuoden\":\"vuotta\"}return f=d(a,e)+\" \"+f}function d(a,b){return 10>a?b?f[a]:e[a]:a}var e=\"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän\".split(\" \"),f=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"neljän\",\"viiden\",\"kuuden\",e[7],e[8],e[9]];(b.defineLocale||b.lang).call(b,\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] LT\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] LT\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] LT\",llll:\"ddd, Do MMM YYYY, [klo] LT\"},calendar:{sameDay:\"[tänään] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s päästä\",past:\"%s sitten\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fi\",\"fi\",{closeText:\"Sulje\",prevText:\"&#xAB;Edellinen\",nextText:\"Seuraava&#xBB;\",currentText:\"Tänään\",monthNames:[\"Tammikuu\",\"Helmikuu\",\"Maaliskuu\",\"Huhtikuu\",\"Toukokuu\",\"Kesäkuu\",\"Heinäkuu\",\"Elokuu\",\"Syyskuu\",\"Lokakuu\",\"Marraskuu\",\"Joulukuu\"],monthNamesShort:[\"Tammi\",\"Helmi\",\"Maalis\",\"Huhti\",\"Touko\",\"Kesä\",\"Heinä\",\"Elo\",\"Syys\",\"Loka\",\"Marras\",\"Joulu\"],dayNamesShort:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],dayNames:[\"Sunnuntai\",\"Maanantai\",\"Tiistai\",\"Keskiviikko\",\"Torstai\",\"Perjantai\",\"Lauantai\"],dayNamesMin:[\"Su\",\"Ma\",\"Ti\",\"Ke\",\"To\",\"Pe\",\"La\"],weekHeader:\"Vk\",dateFormat:\"d.m.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fi\",{buttonText:{month:\"Kuukausi\",week:\"Viikko\",day:\"Päivä\",list:\"Tapahtumat\"},allDayText:\"Koko päivä\",eventLimitText:\"lisää\"})}(),function(){(b.defineLocale||b.lang).call(b,\"fr-ca\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")}}),a.fullCalendar.datepickerLang(\"fr-ca\",\"fr-CA\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avril\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr-ca\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})}(),function(){(b.defineLocale||b.lang).call(b,\"fr\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Aujourd'hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},ordinalParse:/\\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?\"er\":\"\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"fr\",\"fr\",{closeText:\"Fermer\",prevText:\"Précédent\",nextText:\"Suivant\",currentText:\"Aujourd'hui\",monthNames:[\"janvier\",\"février\",\"mars\",\"avril\",\"mai\",\"juin\",\"juillet\",\"août\",\"septembre\",\"octobre\",\"novembre\",\"décembre\"],monthNamesShort:[\"janv.\",\"févr.\",\"mars\",\"avr.\",\"mai\",\"juin\",\"juil.\",\"août\",\"sept.\",\"oct.\",\"nov.\",\"déc.\"],dayNames:[\"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\"jeudi\",\"vendredi\",\"samedi\"],dayNamesShort:[\"dim.\",\"lun.\",\"mar.\",\"mer.\",\"jeu.\",\"ven.\",\"sam.\"],dayNamesMin:[\"D\",\"L\",\"M\",\"M\",\"J\",\"V\",\"S\"],weekHeader:\"Sem.\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"fr\",{buttonText:{month:\"Mois\",week:\"Semaine\",day:\"Jour\",list:\"Mon planning\"},allDayHtml:\"Toute la<br/>journée\",eventLimitText:\"en plus\"})}(),function(){(b.defineLocale||b.lang).call(b,\"he\",{months:\"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר\".split(\"_\"),monthsShort:\"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳\".split(\"_\"),weekdays:\"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת\".split(\"_\"),weekdaysShort:\"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳\".split(\"_\"),weekdaysMin:\"א_ב_ג_ד_ה_ו_ש\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [ב]MMMM YYYY\",LLL:\"D [ב]MMMM YYYY LT\",LLLL:\"dddd, D [ב]MMMM YYYY LT\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[היום ב־]LT\",nextDay:\"[מחר ב־]LT\",nextWeek:\"dddd [בשעה] LT\",lastDay:\"[אתמול ב־]LT\",lastWeek:\"[ביום] dddd [האחרון בשעה] LT\",sameElse:\"L\"},relativeTime:{future:\"בעוד %s\",past:\"לפני %s\",s:\"מספר שניות\",m:\"דקה\",mm:\"%d דקות\",h:\"שעה\",hh:function(a){return 2===a?\"שעתיים\":a+\" שעות\"},d:\"יום\",dd:function(a){return 2===a?\"יומיים\":a+\" ימים\"},M:\"חודש\",MM:function(a){return 2===a?\"חודשיים\":a+\" חודשים\"},y:\"שנה\",yy:function(a){return 2===a?\"שנתיים\":a%10===0&&10!==a?a+\" שנה\":a+\" שנים\"}}}),a.fullCalendar.datepickerLang(\"he\",\"he\",{closeText:\"סגור\",prevText:\"&#x3C;הקודם\",nextText:\"הבא&#x3E;\",currentText:\"היום\",monthNames:[\"ינואר\",\"פברואר\",\"מרץ\",\"אפריל\",\"מאי\",\"יוני\",\"יולי\",\"אוגוסט\",\"ספטמבר\",\"אוקטובר\",\"נובמבר\",\"דצמבר\"],monthNamesShort:[\"ינו\",\"פבר\",\"מרץ\",\"אפר\",\"מאי\",\"יוני\",\"יולי\",\"אוג\",\"ספט\",\"אוק\",\"נוב\",\"דצמ\"],dayNames:[\"ראשון\",\"שני\",\"שלישי\",\"רביעי\",\"חמישי\",\"שישי\",\"שבת\"],dayNamesShort:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],dayNamesMin:[\"א'\",\"ב'\",\"ג'\",\"ד'\",\"ה'\",\"ו'\",\"שבת\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"he\",{defaultButtonText:{month:\"חודש\",week:\"שבוע\",day:\"יום\",list:\"סדר יום\"},weekNumberTitle:\"שבוע\",allDayText:\"כל היום\",eventLimitText:\"אחר\"})}(),function(){var c={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},d={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};(b.defineLocale||b.lang).call(b,\"hi\",{months:\"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर\".split(\"_\"),monthsShort:\"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.\".split(\"_\"),weekdays:\"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm बजे\",LTS:\"A h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, LT\",LLLL:\"dddd, D MMMM YYYY, LT\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[कल] LT\",nextWeek:\"dddd, LT\",lastDay:\"[कल] LT\",lastWeek:\"[पिछले] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s में\",past:\"%s पहले\",s:\"कुछ ही क्षण\",m:\"एक मिनट\",mm:\"%d मिनट\",h:\"एक घंटा\",hh:\"%d घंटे\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महीने\",MM:\"%d महीने\",y:\"एक वर्ष\",yy:\"%d वर्ष\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return d[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return c[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात\"===b?4>a?a:a+12:\"सुबह\"===b?a:\"दोपहर\"===b?a>=10?a:a+12:\"शाम\"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?\"रात\":10>a?\"सुबह\":17>a?\"दोपहर\":20>a?\"शाम\":\"रात\"},week:{dow:0,doy:6}}),a.fullCalendar.datepickerLang(\"hi\",\"hi\",{closeText:\"बंद\",prevText:\"पिछला\",nextText:\"अगला\",currentText:\"आज\",monthNames:[\"जनवरी \",\"फरवरी\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अगस्त \",\"सितम्बर\",\"अक्टूबर\",\"नवम्बर\",\"दिसम्बर\"],monthNamesShort:[\"जन\",\"फर\",\"मार्च\",\"अप्रेल\",\"मई\",\"जून\",\"जूलाई\",\"अग\",\"सित\",\"अक्ट\",\"नव\",\"दि\"],dayNames:[\"रविवार\",\"सोमवार\",\"मंगलवार\",\"बुधवार\",\"गुरुवार\",\"शुक्रवार\",\"शनिवार\"],dayNamesShort:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],dayNamesMin:[\"रवि\",\"सोम\",\"मंगल\",\"बुध\",\"गुरु\",\"शुक्र\",\"शनि\"],weekHeader:\"हफ्ता\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hi\",{buttonText:{month:\"महीना\",week:\"सप्ताह\",day:\"दिन\",list:\"कार्यसूची\"},allDayText:\"सभी दिन\",eventLimitText:function(a){return\"+अधिक \"+a}})}(),function(){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}(b.defineLocale||b.lang).call(b,\"hr\",{months:\"sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\"),monthsShort:\"sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:c,mm:c,h:c,hh:c,d:\"dan\",dd:c,M:\"mjesec\",MM:c,y:\"godinu\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hr\",\"hr\",{closeText:\"Zatvori\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Danas\",monthNames:[\"Siječanj\",\"Veljača\",\"Ožujak\",\"Travanj\",\"Svibanj\",\"Lipanj\",\"Srpanj\",\"Kolovoz\",\"Rujan\",\"Listopad\",\"Studeni\",\"Prosinac\"],monthNamesShort:[\"Sij\",\"Velj\",\"Ožu\",\"Tra\",\"Svi\",\"Lip\",\"Srp\",\"Kol\",\"Ruj\",\"Lis\",\"Stu\",\"Pro\"],dayNames:[\"Nedjelja\",\"Ponedjeljak\",\"Utorak\",\"Srijeda\",\"Četvrtak\",\"Petak\",\"Subota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Sri\",\"Čet\",\"Pet\",\"Sub\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"Sr\",\"Če\",\"Pe\",\"Su\"],weekHeader:\"Tje\",dateFormat:\"dd.mm.yy.\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"hr\",{buttonText:{month:\"Mjesec\",week:\"Tjedan\",day:\"Dan\",list:\"Raspored\"},allDayText:\"Cijeli dan\",eventLimitText:function(a){return\"+ još \"+a}})}(),function(){function c(a,b,c,d){var e=a;switch(c){case\"s\":return d||b?\"néhány másodperc\":\"néhány másodperce\";case\"m\":return\"egy\"+(d||b?\" perc\":\" perce\");case\"mm\":return e+(d||b?\" perc\":\" perce\");case\"h\":return\"egy\"+(d||b?\" óra\":\" órája\");case\"hh\":return e+(d||b?\" óra\":\" órája\");case\"d\":return\"egy\"+(d||b?\" nap\":\" napja\");case\"dd\":return e+(d||b?\" nap\":\" napja\");case\"M\":return\"egy\"+(d||b?\" hónap\":\" hónapja\");case\"MM\":return e+(d||b?\" hónap\":\" hónapja\");case\"y\":return\"egy\"+(d||b?\" év\":\" éve\");case\"yy\":return e+(d||b?\" év\":\" éve\")}return\"\"}function d(a){return(a?\"\":\"[múlt] \")+\"[\"+e[this.day()]+\"] LT[-kor]\"}var e=\"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton\".split(\" \");(b.defineLocale||b.lang).call(b,\"hu\",{months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D., LT\",LLLL:\"YYYY. MMMM D., dddd LT\"},meridiemParse:/de|du/i,isPM:function(a){return\"u\"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?\"de\":\"DE\":c===!0?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return d.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return d.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s múlva\",past:\"%s\",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"hu\",\"hu\",{closeText:\"bezár\",prevText:\"vissza\",nextText:\"előre\",currentText:\"ma\",monthNames:[\"Január\",\"Február\",\"Március\",\"Április\",\"Május\",\"Június\",\"Július\",\"Augusztus\",\"Szeptember\",\"Október\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Már\",\"Ápr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Szep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Vasárnap\",\"Hétfő\",\"Kedd\",\"Szerda\",\"Csütörtök\",\"Péntek\",\"Szombat\"],dayNamesShort:[\"Vas\",\"Hét\",\"Ked\",\"Sze\",\"Csü\",\"Pén\",\"Szo\"],dayNamesMin:[\"V\",\"H\",\"K\",\"Sze\",\"Cs\",\"P\",\"Szo\"],weekHeader:\"Hét\",dateFormat:\"yy.mm.dd.\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"hu\",{buttonText:{month:\"Hónap\",week:\"Hét\",day:\"Nap\",list:\"Napló\"},allDayText:\"Egész nap\",eventLimitText:\"további\"})}(),function(){(b.defineLocale||b.lang).call(b,\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"LT.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] LT\",LLLL:\"dddd, D MMMM YYYY [pukul] LT\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"siang\"===b?a>=11?a:a+12:\"sore\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?\"pagi\":15>a?\"siang\":19>a?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"id\",\"id\",{closeText:\"Tutup\",prevText:\"&#x3C;mundur\",nextText:\"maju&#x3E;\",currentText:\"hari ini\",monthNames:[\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"Nopember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mei\",\"Jun\",\"Jul\",\"Agus\",\"Sep\",\"Okt\",\"Nop\",\"Des\"],dayNames:[\"Minggu\",\"Senin\",\"Selasa\",\"Rabu\",\"Kamis\",\"Jumat\",\"Sabtu\"],dayNamesShort:[\"Min\",\"Sen\",\"Sel\",\"Rab\",\"kam\",\"Jum\",\"Sab\"],dayNamesMin:[\"Mg\",\"Sn\",\"Sl\",\"Rb\",\"Km\",\"jm\",\"Sb\"],weekHeader:\"Mg\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"id\",{buttonText:{month:\"Bulan\",week:\"Minggu\",day:\"Hari\",list:\"Agenda\"},allDayHtml:\"Sehari<br/>penuh\",eventLimitText:\"lebih\"})}(),function(){function c(a){return a%100===11?!0:a%10===1?!1:!0}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"nokkrar sekúndur\":\"nokkrum sekúndum\";case\"m\":return b?\"mínúta\":\"mínútu\";case\"mm\":return c(a)?f+(b||e?\"mínútur\":\"mínútum\"):b?f+\"mínúta\":f+\"mínútu\";case\"hh\":return c(a)?f+(b||e?\"klukkustundir\":\"klukkustundum\"):f+\"klukkustund\";case\"d\":return b?\"dagur\":e?\"dag\":\"degi\";case\"dd\":return c(a)?b?f+\"dagar\":f+(e?\"daga\":\"dögum\"):b?f+\"dagur\":f+(e?\"dag\":\"degi\");case\"M\":return b?\"mánuður\":e?\"mánuð\":\"mánuði\";case\"MM\":return c(a)?b?f+\"mánuðir\":f+(e?\"mánuði\":\"mánuðum\"):b?f+\"mánuður\":f+(e?\"mánuð\":\"mánuði\");case\"y\":return b||e?\"ár\":\"ári\";case\"yy\":return c(a)?f+(b||e?\"ár\":\"árum\"):f+(b||e?\"ár\":\"ári\")}}(b.defineLocale||b.lang).call(b,\"is\",{months:\"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des\".split(\"_\"),weekdays:\"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_mán_þri_mið_fim_fös_lau\".split(\"_\"),weekdaysMin:\"Su_Má_Þr_Mi_Fi_Fö_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd, D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[í dag kl.] LT\",nextDay:\"[á morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[í gær kl.] LT\",lastWeek:\"[síðasta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s síðan\",s:d,m:d,mm:d,h:\"klukkustund\",hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"is\",\"is\",{closeText:\"Loka\",prevText:\"&#x3C; Fyrri\",nextText:\"Næsti &#x3E;\",currentText:\"Í dag\",monthNames:[\"Janúar\",\"Febrúar\",\"Mars\",\"Apríl\",\"Maí\",\"Júní\",\"Júlí\",\"Ágúst\",\"September\",\"Október\",\"Nóvember\",\"Desember\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maí\",\"Jún\",\"Júl\",\"Ágú\",\"Sep\",\"Okt\",\"Nóv\",\"Des\"],dayNames:[\"Sunnudagur\",\"Mánudagur\",\"Þriðjudagur\",\"Miðvikudagur\",\"Fimmtudagur\",\"Föstudagur\",\"Laugardagur\"],dayNamesShort:[\"Sun\",\"Mán\",\"Þri\",\"Mið\",\"Fim\",\"Fös\",\"Lau\"],dayNamesMin:[\"Su\",\"Má\",\"Þr\",\"Mi\",\"Fi\",\"Fö\",\"La\"],weekHeader:\"Vika\",dateFormat:\"dd.mm.yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"is\",{buttonText:{month:\"Mánuður\",week:\"Vika\",day:\"Dagur\",list:\"Dagskrá\"},allDayHtml:\"Allan<br/>daginn\",eventLimitText:\"meira\"})}(),function(){(b.defineLocale||b.lang).call(b,\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato\".split(\"_\"),weekdaysShort:\"Dom_Lun_Mar_Mer_Gio_Ven_Sab\".split(\"_\"),weekdaysMin:\"D_L_Ma_Me_G_V_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?\"tra\":\"in\")+\" \"+a},past:\"%s fa\",s:\"alcuni secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"it\",\"it\",{closeText:\"Chiudi\",prevText:\"&#x3C;Prec\",nextText:\"Succ&#x3E;\",currentText:\"Oggi\",monthNames:[\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"],monthNamesShort:[\"Gen\",\"Feb\",\"Mar\",\"Apr\",\"Mag\",\"Giu\",\"Lug\",\"Ago\",\"Set\",\"Ott\",\"Nov\",\"Dic\"],dayNames:[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"],dayNamesShort:[\"Dom\",\"Lun\",\"Mar\",\"Mer\",\"Gio\",\"Ven\",\"Sab\"],dayNamesMin:[\"Do\",\"Lu\",\"Ma\",\"Me\",\"Gi\",\"Ve\",\"Sa\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"it\",{buttonText:{month:\"Mese\",week:\"Settimana\",day:\"Giorno\",list:\"Agenda\"},allDayHtml:\"Tutto il<br/>giorno\",eventLimitText:function(a){return\"+altri \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"ja\",{months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),longDateFormat:{LT:\"Ah時m分\",LTS:\"LTs秒\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日LT\",LLLL:\"YYYY年M月D日LT dddd\"},meridiemParse:/午前|午後/i,isPM:function(a){return\"午後\"===a},meridiem:function(a,b,c){return 12>a?\"午前\":\"午後\"},calendar:{sameDay:\"[今日] LT\",nextDay:\"[明日] LT\",nextWeek:\"[来週]dddd LT\",lastDay:\"[昨日] LT\",lastWeek:\"[前週]dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"ja\",\"ja\",{closeText:\"閉じる\",prevText:\"&#x3C;前\",nextText:\"次&#x3E;\",currentText:\"今日\",monthNames:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],monthNamesShort:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],dayNames:[\"日曜日\",\"月曜日\",\"火曜日\",\"水曜日\",\"木曜日\",\"金曜日\",\"土曜日\"],dayNamesShort:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],dayNamesMin:[\"日\",\"月\",\"火\",\"水\",\"木\",\"金\",\"土\"],weekHeader:\"週\",dateFormat:\"yy/mm/dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"ja\",{buttonText:{month:\"月\",week:\"週\",day:\"日\",list:\"予定リスト\"},allDayText:\"終日\",eventLimitText:function(a){return\"他 \"+a+\" 件\"}})}(),function(){(b.defineLocale||b.lang).call(b,\"ko\",{months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),longDateFormat:{LT:\"A h시 m분\",LTS:\"A h시 m분 s초\",L:\"YYYY.MM.DD\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 LT\",LLLL:\"YYYY년 MMMM D일 dddd LT\"},calendar:{sameDay:\"오늘 LT\",nextDay:\"내일 LT\",nextWeek:\"dddd LT\",lastDay:\"어제 LT\",lastWeek:\"지난주 dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇초\",ss:\"%d초\",m:\"일분\",mm:\"%d분\",h:\"한시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한달\",MM:\"%d달\",y:\"일년\",yy:\"%d년\"},ordinalParse:/\\d{1,2}일/,ordinal:\"%d일\",meridiemParse:/오전|오후/,isPM:function(a){return\"오후\"===a},meridiem:function(a,b,c){return 12>a?\"오전\":\"오후\"}}),a.fullCalendar.datepickerLang(\"ko\",\"ko\",{closeText:\"닫기\",prevText:\"이전달\",nextText:\"다음달\",currentText:\"오늘\",monthNames:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],monthNamesShort:[\"1월\",\"2월\",\"3월\",\"4월\",\"5월\",\"6월\",\"7월\",\"8월\",\"9월\",\"10월\",\"11월\",\"12월\"],dayNames:[\"일요일\",\"월요일\",\"화요일\",\"수요일\",\"목요일\",\"금요일\",\"토요일\"],dayNamesShort:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],dayNamesMin:[\"일\",\"월\",\"화\",\"수\",\"목\",\"금\",\"토\"],weekHeader:\"Wk\",dateFormat:\"yy-mm-dd\",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"년\"}),a.fullCalendar.lang(\"ko\",{buttonText:{month:\"월\",week:\"주\",day:\"일\",list:\"일정목록\"},allDayText:\"종일\",eventLimitText:\"개\"})}(),function(){function c(a,b,c,d){return b?\"kelios sekundės\":d?\"kelių sekundžių\":\"kelias sekundes\"}function d(a,b,c,d){return b?f(c)[0]:d?f(c)[1]:f(c)[2]}function e(a){return a%10===0||a>10&&20>a}function f(a){return i[a].split(\"_\")}function g(a,b,c,g){var h=a+\" \";return 1===a?h+d(a,b,c[0],g):b?h+(e(a)?f(c)[1]:f(c)[0]):g?h+f(c)[1]:h+(e(a)?f(c)[1]:f(c)[2])}function h(a,b){var c=-1===b.indexOf(\"dddd HH:mm\"),d=j[a.day()];return c?d:d.substring(0,d.length-2)+\"į\"}var i={m:\"minutė_minutės_minutę\",mm:\"minutės_minučių_minutes\",h:\"valanda_valandos_valandą\",hh:\"valandos_valandų_valandas\",d:\"diena_dienos_dieną\",dd:\"dienos_dienų_dienas\",M:\"mėnuo_mėnesio_mėnesį\",MM:\"mėnesiai_mėnesių_mėnesius\",y:\"metai_metų_metus\",yy:\"metai_metų_metus\"},j=\"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis\".split(\"_\");(b.defineLocale||b.lang).call(b,\"lt\",{months:\"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio\".split(\"_\"),monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:h,weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_Šeš\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_Š\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], LT [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, LT [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], LT [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, LT [val.]\"},calendar:{sameDay:\"[Šiandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Praėjusį] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prieš %s\",s:c,m:d,mm:g,h:d,hh:g,d:d,dd:g,M:d,MM:g,y:d,yy:g},ordinalParse:/\\d{1,2}-oji/,ordinal:function(a){return a+\"-oji\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lt\",\"lt\",{closeText:\"Uždaryti\",prevText:\"&#x3C;Atgal\",nextText:\"Pirmyn&#x3E;\",currentText:\"Šiandien\",monthNames:[\"Sausis\",\"Vasaris\",\"Kovas\",\"Balandis\",\"Gegužė\",\"Birželis\",\"Liepa\",\"Rugpjūtis\",\"Rugsėjis\",\"Spalis\",\"Lapkritis\",\"Gruodis\"],monthNamesShort:[\"Sau\",\"Vas\",\"Kov\",\"Bal\",\"Geg\",\"Bir\",\"Lie\",\"Rugp\",\"Rugs\",\"Spa\",\"Lap\",\"Gru\"],dayNames:[\"sekmadienis\",\"pirmadienis\",\"antradienis\",\"trečiadienis\",\"ketvirtadienis\",\"penktadienis\",\"šeštadienis\"],dayNamesShort:[\"sek\",\"pir\",\"ant\",\"tre\",\"ket\",\"pen\",\"šeš\"],dayNamesMin:[\"Se\",\"Pr\",\"An\",\"Tr\",\"Ke\",\"Pe\",\"Še\"],weekHeader:\"SAV\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"\"}),a.fullCalendar.lang(\"lt\",{buttonText:{month:\"Mėnuo\",week:\"Savaitė\",day:\"Diena\",list:\"Darbotvarkė\"},allDayText:\"Visą dieną\",eventLimitText:\"daugiau\"})}(),function(){function c(a,b,c){var d=a.split(\"_\");return c?b%10===1&&11!==b?d[2]:d[3]:b%10===1&&11!==b?d[0]:d[1]}function d(a,b,d){return a+\" \"+c(e[d],a,b)}var e={mm:\"minūti_minūtes_minūte_minūtes\",hh:\"stundu_stundas_stunda_stundas\",dd:\"dienu_dienas_diena_dienas\",MM:\"mēnesi_mēnešus_mēnesis_mēneši\",yy:\"gadu_gadus_gads_gadi\"};(b.defineLocale||b.lang).call(b,\"lv\",{months:\"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, LT\",LLLL:\"YYYY. [gada] D. MMMM, dddd, LT\"},calendar:{sameDay:\"[Šodien pulksten] LT\",nextDay:\"[Rīt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pagājušā] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"%s vēlāk\",past:\"%s agrāk\",s:\"dažas sekundes\",m:\"minūti\",mm:d,h:\"stundu\",hh:d,d:\"dienu\",dd:d,M:\"mēnesi\",MM:d,y:\"gadu\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"lv\",\"lv\",{closeText:\"Aizvērt\",prevText:\"Iepr.\",nextText:\"Nāk.\",currentText:\"Šodien\",monthNames:[\"Janvāris\",\"Februāris\",\"Marts\",\"Aprīlis\",\"Maijs\",\"Jūnijs\",\"Jūlijs\",\"Augusts\",\"Septembris\",\"Oktobris\",\"Novembris\",\"Decembris\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Jūn\",\"Jūl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"svētdiena\",\"pirmdiena\",\"otrdiena\",\"trešdiena\",\"ceturtdiena\",\"piektdiena\",\"sestdiena\"],dayNamesShort:[\"svt\",\"prm\",\"otr\",\"tre\",\"ctr\",\"pkt\",\"sst\"],dayNamesMin:[\"Sv\",\"Pr\",\"Ot\",\"Tr\",\"Ct\",\"Pk\",\"Ss\"],weekHeader:\"Ned.\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"lv\",{buttonText:{month:\"Mēnesis\",week:\"Nedēļa\",day:\"Diena\",list:\"Dienas kārtība\"},allDayText:\"Visu dienu\",eventLimitText:function(a){return\"+vēl \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tirs_ons_tors_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"H.mm\",LTS:\"LT.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] LT\",LLLL:\"dddd D. MMMM YYYY [kl.] LT\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"for %s siden\",s:\"noen sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en måned\",MM:\"%d måneder\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nb\",\"nb\",{closeText:\"Lukk\",prevText:\"&#xAB;Forrige\",nextText:\"Neste&#xBB;\",currentText:\"I dag\",monthNames:[\"januar\",\"februar\",\"mars\",\"april\",\"mai\",\"juni\",\"juli\",\"august\",\"september\",\"oktober\",\"november\",\"desember\"],monthNamesShort:[\"jan\",\"feb\",\"mar\",\"apr\",\"mai\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"des\"],dayNamesShort:[\"søn\",\"man\",\"tir\",\"ons\",\"tor\",\"fre\",\"lør\"],dayNames:[\"søndag\",\"mandag\",\"tirsdag\",\"onsdag\",\"torsdag\",\"fredag\",\"lørdag\"],dayNamesMin:[\"sø\",\"ma\",\"ti\",\"on\",\"to\",\"fr\",\"lø\"],weekHeader:\"Uke\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nb\",{buttonText:{month:\"Måned\",week:\"Uke\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dagen\",eventLimitText:\"til\"})}(),function(){var c=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),d=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},ordinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"nl\",\"nl\",{closeText:\"Sluiten\",prevText:\"←\",nextText:\"→\",currentText:\"Vandaag\",monthNames:[\"januari\",\"februari\",\"maart\",\"april\",\"mei\",\"juni\",\"juli\",\"augustus\",\"september\",\"oktober\",\"november\",\"december\"],\nmonthNamesShort:[\"jan\",\"feb\",\"mrt\",\"apr\",\"mei\",\"jun\",\"jul\",\"aug\",\"sep\",\"okt\",\"nov\",\"dec\"],dayNames:[\"zondag\",\"maandag\",\"dinsdag\",\"woensdag\",\"donderdag\",\"vrijdag\",\"zaterdag\"],dayNamesShort:[\"zon\",\"maa\",\"din\",\"woe\",\"don\",\"vri\",\"zat\"],dayNamesMin:[\"zo\",\"ma\",\"di\",\"wo\",\"do\",\"vr\",\"za\"],weekHeader:\"Wk\",dateFormat:\"dd-mm-yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"nl\",{buttonText:{month:\"Maand\",week:\"Week\",day:\"Dag\",list:\"Agenda\"},allDayText:\"Hele dag\",eventLimitText:\"extra\"})}(),function(){function c(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function d(a,b,d){var e=a+\" \";switch(d){case\"m\":return b?\"minuta\":\"minutę\";case\"mm\":return e+(c(a)?\"minuty\":\"minut\");case\"h\":return b?\"godzina\":\"godzinę\";case\"hh\":return e+(c(a)?\"godziny\":\"godzin\");case\"MM\":return e+(c(a)?\"miesiące\":\"miesięcy\");case\"yy\":return e+(c(a)?\"lata\":\"lat\")}}var e=\"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień\".split(\"_\"),f=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia\".split(\"_\");(b.defineLocale||b.lang).call(b,\"pl\",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota\".split(\"_\"),weekdaysShort:\"nie_pon_wt_śr_czw_pt_sb\".split(\"_\"),weekdaysMin:\"N_Pn_Wt_Śr_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[Dziś o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:\"[W] dddd [o] LT\",lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zeszłą niedzielę o] LT\";case 3:return\"[W zeszłą środę o] LT\";case 6:return\"[W zeszłą sobotę o] LT\";default:return\"[W zeszły] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",m:d,mm:d,h:d,hh:d,d:\"1 dzień\",dd:\"%d dni\",M:\"miesiąc\",MM:d,y:\"rok\",yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pl\",\"pl\",{closeText:\"Zamknij\",prevText:\"&#x3C;Poprzedni\",nextText:\"Następny&#x3E;\",currentText:\"Dziś\",monthNames:[\"Styczeń\",\"Luty\",\"Marzec\",\"Kwiecień\",\"Maj\",\"Czerwiec\",\"Lipiec\",\"Sierpień\",\"Wrzesień\",\"Październik\",\"Listopad\",\"Grudzień\"],monthNamesShort:[\"Sty\",\"Lu\",\"Mar\",\"Kw\",\"Maj\",\"Cze\",\"Lip\",\"Sie\",\"Wrz\",\"Pa\",\"Lis\",\"Gru\"],dayNames:[\"Niedziela\",\"Poniedziałek\",\"Wtorek\",\"Środa\",\"Czwartek\",\"Piątek\",\"Sobota\"],dayNamesShort:[\"Nie\",\"Pn\",\"Wt\",\"Śr\",\"Czw\",\"Pt\",\"So\"],dayNamesMin:[\"N\",\"Pn\",\"Wt\",\"Śr\",\"Cz\",\"Pt\",\"So\"],weekHeader:\"Tydz\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pl\",{buttonText:{month:\"Miesiąc\",week:\"Tydzień\",day:\"Dzień\",list:\"Plan dnia\"},allDayText:\"Cały dzień\",eventLimitText:\"więcej\"})}(),function(){(b.defineLocale||b.lang).call(b,\"pt-br\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"%s atrás\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\"}),a.fullCalendar.datepickerLang(\"pt-br\",\"pt-BR\",{closeText:\"Fechar\",prevText:\"&#x3C;Anterior\",nextText:\"Próximo&#x3E;\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sm\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt-br\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Compromissos\"},allDayText:\"dia inteiro\",eventLimitText:function(a){return\"mais +\"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"pt\",{months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"dom_2ª_3ª_4ª_5ª_6ª_sáb\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY LT\",LLLL:\"dddd, D [de] MMMM [de] YYYY LT\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},ordinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"pt\",\"pt\",{closeText:\"Fechar\",prevText:\"Anterior\",nextText:\"Seguinte\",currentText:\"Hoje\",monthNames:[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"],monthNamesShort:[\"Jan\",\"Fev\",\"Mar\",\"Abr\",\"Mai\",\"Jun\",\"Jul\",\"Ago\",\"Set\",\"Out\",\"Nov\",\"Dez\"],dayNames:[\"Domingo\",\"Segunda-feira\",\"Terça-feira\",\"Quarta-feira\",\"Quinta-feira\",\"Sexta-feira\",\"Sábado\"],dayNamesShort:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],dayNamesMin:[\"Dom\",\"Seg\",\"Ter\",\"Qua\",\"Qui\",\"Sex\",\"Sáb\"],weekHeader:\"Sem\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"pt\",{buttonText:{month:\"Mês\",week:\"Semana\",day:\"Dia\",list:\"Agenda\"},allDayText:\"Todo o dia\",eventLimitText:\"mais\"})}(),function(){function c(a,b,c){var d={mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"},e=\" \";return(a%100>=20||a>=100&&a%100===0)&&(e=\" de \"),a+e+d[c]}(b.defineLocale||b.lang).call(b,\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),weekdays:\"duminică_luni_marți_miercuri_joi_vineri_sâmbătă\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_Sâm\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_Sâ\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[mâine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s în urmă\",s:\"câteva secunde\",m:\"un minut\",mm:c,h:\"o oră\",hh:c,d:\"o zi\",dd:c,M:\"o lună\",MM:c,y:\"un an\",yy:c},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ro\",\"ro\",{closeText:\"Închide\",prevText:\"&#xAB; Luna precedentă\",nextText:\"Luna următoare &#xBB;\",currentText:\"Azi\",monthNames:[\"Ianuarie\",\"Februarie\",\"Martie\",\"Aprilie\",\"Mai\",\"Iunie\",\"Iulie\",\"August\",\"Septembrie\",\"Octombrie\",\"Noiembrie\",\"Decembrie\"],monthNamesShort:[\"Ian\",\"Feb\",\"Mar\",\"Apr\",\"Mai\",\"Iun\",\"Iul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayNames:[\"Duminică\",\"Luni\",\"Marţi\",\"Miercuri\",\"Joi\",\"Vineri\",\"Sâmbătă\"],dayNamesShort:[\"Dum\",\"Lun\",\"Mar\",\"Mie\",\"Joi\",\"Vin\",\"Sâm\"],dayNamesMin:[\"Du\",\"Lu\",\"Ma\",\"Mi\",\"Jo\",\"Vi\",\"Sâ\"],weekHeader:\"Săpt\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ro\",{buttonText:{prev:\"precedentă\",next:\"următoare\",month:\"Lună\",week:\"Săptămână\",day:\"Zi\",list:\"Agendă\"},allDayText:\"Toată ziua\",eventLimitText:function(a){return\"+alte \"+a}})}(),function(){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:b?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"};return\"m\"===d?b?\"минута\":\"минуту\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),accusative:\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек\".split(\"_\"),accusative:\"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек\".split(\"_\")},d=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function g(a,b){var c={nominative:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),accusative:\"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу\".split(\"_\")},d=/\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/.test(b)?\"accusative\":\"nominative\";return c[d][a.day()]}(b.defineLocale||b.lang).call(b,\"ru\",{months:e,monthsShort:f,weekdays:g,weekdaysShort:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., LT\",LLLL:\"dddd, D MMMM YYYY г., LT\"},calendar:{sameDay:\"[Сегодня в] LT\",nextDay:\"[Завтра в] LT\",lastDay:\"[Вчера в] LT\",nextWeek:function(){return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В прошлое] dddd [в] LT\";case 1:case 2:case 4:return\"[В прошлый] dddd [в] LT\";case 3:case 5:case 6:return\"[В прошлую] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:d,mm:d,h:\"час\",hh:d,d:\"день\",dd:d,M:\"месяц\",MM:d,y:\"год\",yy:d},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночи\":12>a?\"утра\":17>a?\"дня\":\"вечера\"},ordinalParse:/\\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":return a+\"-й\";case\"D\":return a+\"-го\";case\"w\":case\"W\":return a+\"-я\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"ru\",\"ru\",{closeText:\"Закрыть\",prevText:\"&#x3C;Пред\",nextText:\"След&#x3E;\",currentText:\"Сегодня\",monthNames:[\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\"],monthNamesShort:[\"Янв\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Июн\",\"Июл\",\"Авг\",\"Сен\",\"Окт\",\"Ноя\",\"Дек\"],dayNames:[\"воскресенье\",\"понедельник\",\"вторник\",\"среда\",\"четверг\",\"пятница\",\"суббота\"],dayNamesShort:[\"вск\",\"пнд\",\"втр\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Вс\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Нед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"ru\",{buttonText:{month:\"Месяц\",week:\"Неделя\",day:\"День\",list:\"Повестка дня\"},allDayText:\"Весь день\",eventLimitText:function(a){return\"+ ещё \"+a}})}(),function(){function c(a){return a>1&&5>a}function d(a,b,d,e){var f=a+\" \";switch(d){case\"s\":return b||e?\"pár sekúnd\":\"pár sekundami\";case\"m\":return b?\"minúta\":e?\"minútu\":\"minútou\";case\"mm\":return b||e?f+(c(a)?\"minúty\":\"minút\"):f+\"minútami\";case\"h\":return b?\"hodina\":e?\"hodinu\":\"hodinou\";case\"hh\":return b||e?f+(c(a)?\"hodiny\":\"hodín\"):f+\"hodinami\";case\"d\":return b||e?\"deň\":\"dňom\";case\"dd\":return b||e?f+(c(a)?\"dni\":\"dní\"):f+\"dňami\";case\"M\":return b||e?\"mesiac\":\"mesiacom\";case\"MM\":return b||e?f+(c(a)?\"mesiace\":\"mesiacov\"):f+\"mesiacmi\";case\"y\":return b||e?\"rok\":\"rokom\";case\"yy\":return b||e?f+(c(a)?\"roky\":\"rokov\"):f+\"rokmi\"}}var e=\"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december\".split(\"_\"),f=\"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec\".split(\"_\");(b.defineLocale||b.lang).call(b,\"sk\",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(e,f),weekdays:\"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_št_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_št_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd D. MMMM YYYY LT\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nedeľu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo štvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[včera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulú nedeľu o] LT\";case 1:case 2:return\"[minulý] dddd [o] LT\";case 3:return\"[minulú stredu o] LT\";case 4:case 5:return\"[minulý] dddd [o] LT\";case 6:return\"[minulú sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sk\",\"sk\",{closeText:\"Zavrieť\",prevText:\"&#x3C;Predchádzajúci\",nextText:\"Nasledujúci&#x3E;\",currentText:\"Dnes\",monthNames:[\"január\",\"február\",\"marec\",\"apríl\",\"máj\",\"jún\",\"júl\",\"august\",\"september\",\"október\",\"november\",\"december\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Máj\",\"Jún\",\"Júl\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"nedeľa\",\"pondelok\",\"utorok\",\"streda\",\"štvrtok\",\"piatok\",\"sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Uto\",\"Str\",\"Štv\",\"Pia\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"Ut\",\"St\",\"Št\",\"Pia\",\"So\"],weekHeader:\"Ty\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sk\",{buttonText:{month:\"Mesiac\",week:\"Týždeň\",day:\"Deň\",list:\"Rozvrh\"},allDayText:\"Celý deň\",eventLimitText:function(a){return\"+ďalšie: \"+a}})}(),function(){function c(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"ena minuta\":\"eno minuto\";case\"mm\":return d+=1===a?\"minuta\":2===a?\"minuti\":3===a||4===a?\"minute\":\"minut\";case\"h\":return b?\"ena ura\":\"eno uro\";case\"hh\":return d+=1===a?\"ura\":2===a?\"uri\":3===a||4===a?\"ure\":\"ur\";case\"dd\":return d+=1===a?\"dan\":\"dni\";case\"MM\":return d+=1===a?\"mesec\":2===a?\"meseca\":3===a||4===a?\"mesece\":\"mesecev\";case\"yy\":return d+=1===a?\"leto\":2===a?\"leti\":3===a||4===a?\"leta\":\"let\"}}(b.defineLocale||b.lang).call(b,\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),weekdays:\"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._čet._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_če_pe_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[včeraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[prejšnja] dddd [ob] LT\";case 1:case 2:case 4:case 5:return\"[prejšnji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"čez %s\",past:\"%s nazaj\",s:\"nekaj sekund\",m:c,mm:c,h:c,hh:c,d:\"en dan\",dd:c,M:\"en mesec\",MM:c,y:\"eno leto\",yy:c},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sl\",\"sl\",{closeText:\"Zapri\",prevText:\"&#x3C;Prejšnji\",nextText:\"Naslednji&#x3E;\",currentText:\"Trenutni\",monthNames:[\"Januar\",\"Februar\",\"Marec\",\"April\",\"Maj\",\"Junij\",\"Julij\",\"Avgust\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Avg\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNames:[\"Nedelja\",\"Ponedeljek\",\"Torek\",\"Sreda\",\"Četrtek\",\"Petek\",\"Sobota\"],dayNamesShort:[\"Ned\",\"Pon\",\"Tor\",\"Sre\",\"Čet\",\"Pet\",\"Sob\"],dayNamesMin:[\"Ne\",\"Po\",\"To\",\"Sr\",\"Če\",\"Pe\",\"So\"],weekHeader:\"Teden\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sl\",{buttonText:{month:\"Mesec\",week:\"Teden\",day:\"Dan\",list:\"Dnevni red\"},allDayText:\"Ves dan\",eventLimitText:\"več\"})}(),function(){var c={words:{m:[\"један минут\",\"једне минуте\"],mm:[\"минут\",\"минуте\",\"минута\"],h:[\"један сат\",\"једног сата\"],hh:[\"сат\",\"сата\",\"сати\"],dd:[\"дан\",\"дана\",\"дана\"],MM:[\"месец\",\"месеца\",\"месеци\"],yy:[\"година\",\"године\",\"година\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr-cyrl\",{months:[\"јануар\",\"фебруар\",\"март\",\"април\",\"мај\",\"јун\",\"јул\",\"август\",\"септембар\",\"октобар\",\"новембар\",\"децембар\"],monthsShort:[\"јан.\",\"феб.\",\"мар.\",\"апр.\",\"мај\",\"јун\",\"јул\",\"авг.\",\"сеп.\",\"окт.\",\"нов.\",\"дец.\"],weekdays:[\"недеља\",\"понедељак\",\"уторак\",\"среда\",\"четвртак\",\"петак\",\"субота\"],weekdaysShort:[\"нед.\",\"пон.\",\"уто.\",\"сре.\",\"чет.\",\"пет.\",\"суб.\"],weekdaysMin:[\"не\",\"по\",\"ут\",\"ср\",\"че\",\"пе\",\"су\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[данас у] LT\",nextDay:\"[сутра у] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[у] [недељу] [у] LT\";case 3:return\"[у] [среду] [у] LT\";case 6:return\"[у] [суботу] [у] LT\";case 1:case 2:case 4:case 5:return\"[у] dddd [у] LT\"}},lastDay:\"[јуче у] LT\",lastWeek:function(){var a=[\"[прошле] [недеље] [у] LT\",\"[прошлог] [понедељка] [у] LT\",\"[прошлог] [уторка] [у] LT\",\"[прошле] [среде] [у] LT\",\"[прошлог] [четвртка] [у] LT\",\"[прошлог] [петка] [у] LT\",\"[прошле] [суботе] [у] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"пре %s\",s:\"неколико секунди\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"дан\",dd:c.translate,M:\"месец\",MM:c.translate,y:\"годину\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr-cyrl\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr-cyrl\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})}(),function(){var c={words:{m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+\" \"+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,\"sr\",{months:[\"januar\",\"februar\",\"mart\",\"april\",\"maj\",\"jun\",\"jul\",\"avgust\",\"septembar\",\"oktobar\",\"novembar\",\"decembar\"],monthsShort:[\"jan.\",\"feb.\",\"mar.\",\"apr.\",\"maj\",\"jun\",\"jul\",\"avg.\",\"sep.\",\"okt.\",\"nov.\",\"dec.\"],weekdays:[\"nedelja\",\"ponedeljak\",\"utorak\",\"sreda\",\"četvrtak\",\"petak\",\"subota\"],weekdaysShort:[\"ned.\",\"pon.\",\"uto.\",\"sre.\",\"čet.\",\"pet.\",\"sub.\"],weekdaysMin:[\"ne\",\"po\",\"ut\",\"sr\",\"če\",\"pe\",\"su\"],longDateFormat:{LT:\"H:mm\",LTS:\"LT:ss\",L:\"DD. MM. YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY LT\",LLLL:\"dddd, D. MMMM YYYY LT\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedelje] [u] LT\",\"[prošlog] [ponedeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:\"dan\",dd:c.translate,M:\"mesec\",MM:c.translate,y:\"godinu\",yy:c.translate},ordinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"sr\",\"sr\",{closeText:\"Затвори\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Данас\",monthNames:[\"Јануар\",\"Фебруар\",\"Март\",\"Април\",\"Мај\",\"Јун\",\"Јул\",\"Август\",\"Септембар\",\"Октобар\",\"Новембар\",\"Децембар\"],monthNamesShort:[\"Јан\",\"Феб\",\"Мар\",\"Апр\",\"Мај\",\"Јун\",\"Јул\",\"Авг\",\"Сеп\",\"Окт\",\"Нов\",\"Дец\"],dayNames:[\"Недеља\",\"Понедељак\",\"Уторак\",\"Среда\",\"Четвртак\",\"Петак\",\"Субота\"],dayNamesShort:[\"Нед\",\"Пон\",\"Уто\",\"Сре\",\"Чет\",\"Пет\",\"Суб\"],dayNamesMin:[\"Не\",\"По\",\"Ут\",\"Ср\",\"Че\",\"Пе\",\"Су\"],weekHeader:\"Сед\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sr\",{buttonText:{month:\"Месец\",week:\"Недеља\",day:\"Дан\",list:\"Планер\"},allDayText:\"Цео дан\",eventLimitText:function(a){return\"+ још \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd D MMMM YYYY LT\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Igår] LT\",nextWeek:\"dddd LT\",lastWeek:\"[Förra] dddd[en] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"},ordinalParse:/\\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"e\":1===b?\"a\":2===b?\"a\":\"e\";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"sv\",\"sv\",{closeText:\"Stäng\",prevText:\"&#xAB;Förra\",nextText:\"Nästa&#xBB;\",currentText:\"Idag\",monthNames:[\"Januari\",\"Februari\",\"Mars\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"Augusti\",\"September\",\"Oktober\",\"November\",\"December\"],monthNamesShort:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"Maj\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dec\"],dayNamesShort:[\"Sön\",\"Mån\",\"Tis\",\"Ons\",\"Tor\",\"Fre\",\"Lör\"],dayNames:[\"Söndag\",\"Måndag\",\"Tisdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lördag\"],dayNamesMin:[\"Sö\",\"Må\",\"Ti\",\"On\",\"To\",\"Fr\",\"Lö\"],weekHeader:\"Ve\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"sv\",{buttonText:{month:\"Månad\",week:\"Vecka\",day:\"Dag\",list:\"Program\"},allDayText:\"Heldag\",eventLimitText:\"till\"})}(),function(){(b.defineLocale||b.lang).call(b,\"th\",{months:\"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม\".split(\"_\"),monthsShort:\"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา\".split(\"_\"),weekdays:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์\".split(\"_\"),weekdaysShort:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์\".split(\"_\"),weekdaysMin:\"อา._จ._อ._พ._พฤ._ศ._ส.\".split(\"_\"),longDateFormat:{LT:\"H นาฬิกา m นาที\",LTS:\"LT s วินาที\",L:\"YYYY/MM/DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY เวลา LT\",LLLL:\"วันddddที่ D MMMM YYYY เวลา LT\"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return\"หลังเที่ยง\"===a},meridiem:function(a,b,c){return 12>a?\"ก่อนเที่ยง\":\"หลังเที่ยง\"},calendar:{sameDay:\"[วันนี้ เวลา] LT\",nextDay:\"[พรุ่งนี้ เวลา] LT\",nextWeek:\"dddd[หน้า เวลา] LT\",lastDay:\"[เมื่อวานนี้ เวลา] LT\",lastWeek:\"[วัน]dddd[ที่แล้ว เวลา] LT\",sameElse:\"L\"},relativeTime:{future:\"อีก %s\",past:\"%sที่แล้ว\",s:\"ไม่กี่วินาที\",m:\"1 นาที\",mm:\"%d นาที\",h:\"1 ชั่วโมง\",hh:\"%d ชั่วโมง\",d:\"1 วัน\",dd:\"%d วัน\",M:\"1 เดือน\",MM:\"%d เดือน\",y:\"1 ปี\",yy:\"%d ปี\"}}),a.fullCalendar.datepickerLang(\"th\",\"th\",{closeText:\"ปิด\",prevText:\"&#xAB;&#xA0;ย้อน\",nextText:\"ถัดไป&#xA0;&#xBB;\",currentText:\"วันนี้\",monthNames:[\"มกราคม\",\"กุมภาพันธ์\",\"มีนาคม\",\"เมษายน\",\"พฤษภาคม\",\"มิถุนายน\",\"กรกฎาคม\",\"สิงหาคม\",\"กันยายน\",\"ตุลาคม\",\"พฤศจิกายน\",\"ธันวาคม\"],monthNamesShort:[\"ม.ค.\",\"ก.พ.\",\"มี.ค.\",\"เม.ย.\",\"พ.ค.\",\"มิ.ย.\",\"ก.ค.\",\"ส.ค.\",\"ก.ย.\",\"ต.ค.\",\"พ.ย.\",\"ธ.ค.\"],dayNames:[\"อาทิตย์\",\"จันทร์\",\"อังคาร\",\"พุธ\",\"พฤหัสบดี\",\"ศุกร์\",\"เสาร์\"],dayNamesShort:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],dayNamesMin:[\"อา.\",\"จ.\",\"อ.\",\"พ.\",\"พฤ.\",\"ศ.\",\"ส.\"],weekHeader:\"Wk\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"th\",{buttonText:{month:\"เดือน\",week:\"สัปดาห์\",day:\"วัน\",list:\"แผนงาน\"},allDayText:\"ตลอดวัน\",eventLimitText:\"เพิ่มเติม\"})}(),function(){var c={1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'üncü\",4:\"'üncü\",100:\"'üncü\",6:\"'ncı\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'ıncı\",90:\"'ıncı\"};(b.defineLocale||b.lang).call(b,\"tr\",{months:\"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık\".split(\"_\"),monthsShort:\"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_Çar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_Ça_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY LT\",LLLL:\"dddd, D MMMM YYYY LT\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[yarın saat] LT\",nextWeek:\"[haftaya] dddd [saat] LT\",lastDay:\"[dün] LT\",lastWeek:\"[geçen hafta] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s önce\",s:\"birkaç saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir yıl\",yy:\"%d yıl\"},ordinalParse:/\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+\"'ıncı\";var b=a%10,d=a%100-b,e=a>=100?100:null;return a+(c[b]||c[d]||c[e])},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"tr\",\"tr\",{closeText:\"kapat\",prevText:\"&#x3C;geri\",nextText:\"ileri&#x3e\",currentText:\"bugün\",monthNames:[\"Ocak\",\"Şubat\",\"Mart\",\"Nisan\",\"Mayıs\",\"Haziran\",\"Temmuz\",\"Ağustos\",\"Eylül\",\"Ekim\",\"Kasım\",\"Aralık\"],monthNamesShort:[\"Oca\",\"Şub\",\"Mar\",\"Nis\",\"May\",\"Haz\",\"Tem\",\"Ağu\",\"Eyl\",\"Eki\",\"Kas\",\"Ara\"],dayNames:[\"Pazar\",\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\"],dayNamesShort:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],dayNamesMin:[\"Pz\",\"Pt\",\"Sa\",\"Ça\",\"Pe\",\"Cu\",\"Ct\"],weekHeader:\"Hf\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"tr\",{buttonText:{next:\"ileri\",month:\"Ay\",week:\"Hafta\",day:\"Gün\",list:\"Ajanda\"},allDayText:\"Tüm gün\",eventLimitText:\"daha fazla\"})}(),function(){function c(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:\"хвилина_хвилини_хвилин\",hh:\"година_години_годин\",dd:\"день_дні_днів\",MM:\"місяць_місяці_місяців\",yy:\"рік_роки_років\"};return\"m\"===d?b?\"хвилина\":\"хвилину\":\"h\"===d?b?\"година\":\"годину\":a+\" \"+c(e[d],+a)}function e(a,b){var c={nominative:\"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень\".split(\"_\"),accusative:\"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня\".split(\"_\")},d=/D[oD]? *MMMM?/.test(b)?\"accusative\":\"nominative\";return c[d][a.month()]}function f(a,b){var c={nominative:\"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота\".split(\"_\"),accusative:\"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу\".split(\"_\"),genitive:\"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи\".split(\"_\")},d=/(\\[[ВвУу]\\]) ?dddd/.test(b)?\"accusative\":/\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(b)?\"genitive\":\"nominative\";return c[d][a.day()]}function g(a){return function(){return a+\"о\"+(11===this.hours()?\"б\":\"\")+\"] LT\"}}(b.defineLocale||b.lang).call(b,\"uk\",{months:e,monthsShort:\"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд\".split(\"_\"),weekdays:f,weekdaysShort:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY р.\",LLL:\"D MMMM YYYY р., LT\",LLLL:\"dddd, D MMMM YYYY р., LT\"},calendar:{sameDay:g(\"[Сьогодні \"),nextDay:g(\"[Завтра \"),lastDay:g(\"[Вчора \"),nextWeek:g(\"[У] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return g(\"[Минулої] dddd [\").call(this);case 1:case 2:case 4:return g(\"[Минулого] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"%s тому\",s:\"декілька секунд\",m:d,mm:d,h:\"годину\",hh:d,d:\"день\",dd:d,M:\"місяць\",MM:d,y:\"рік\",yy:d},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?\"ночі\":12>a?\"ранку\":17>a?\"дня\":\"вечора\"},ordinalParse:/\\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a+\"-й\";case\"D\":return a+\"-го\";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang(\"uk\",\"uk\",{closeText:\"Закрити\",prevText:\"&#x3C;\",nextText:\"&#x3E;\",currentText:\"Сьогодні\",monthNames:[\"Січень\",\"Лютий\",\"Березень\",\"Квітень\",\"Травень\",\"Червень\",\"Липень\",\"Серпень\",\"Вересень\",\"Жовтень\",\"Листопад\",\"Грудень\"],monthNamesShort:[\"Січ\",\"Лют\",\"Бер\",\"Кві\",\"Тра\",\"Чер\",\"Лип\",\"Сер\",\"Вер\",\"Жов\",\"Лис\",\"Гру\"],dayNames:[\"неділя\",\"понеділок\",\"вівторок\",\"середа\",\"четвер\",\"п’ятниця\",\"субота\"],dayNamesShort:[\"нед\",\"пнд\",\"вів\",\"срд\",\"чтв\",\"птн\",\"сбт\"],dayNamesMin:[\"Нд\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],weekHeader:\"Тиж\",dateFormat:\"dd.mm.yy\",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"uk\",{buttonText:{month:\"Місяць\",week:\"Тиждень\",day:\"День\",list:\"Порядок денний\"},allDayText:\"Увесь день\",eventLimitText:function(a){return\"+ще \"+a+\"...\"}})}(),function(){(b.defineLocale||b.lang).call(b,\"vi\",{months:\"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),weekdays:\"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"LT:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [năm] YYYY\",LLL:\"D MMMM [năm] YYYY LT\",LLLL:\"dddd, D MMMM [năm] YYYY LT\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY LT\",llll:\"ddd, D MMM YYYY LT\"},calendar:{sameDay:\"[Hôm nay lúc] LT\",nextDay:\"[Ngày mai lúc] LT\",nextWeek:\"dddd [tuần tới lúc] LT\",lastDay:\"[Hôm qua lúc] LT\",lastWeek:\"dddd [tuần rồi lúc] LT\",sameElse:\"L\"},relativeTime:{future:\"%s tới\",past:\"%s trước\",s:\"vài giây\",m:\"một phút\",mm:\"%d phút\",h:\"một giờ\",hh:\"%d giờ\",d:\"một ngày\",dd:\"%d ngày\",M:\"một tháng\",MM:\"%d tháng\",y:\"một năm\",yy:\"%d năm\"},ordinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),\na.fullCalendar.datepickerLang(\"vi\",\"vi\",{closeText:\"Đóng\",prevText:\"&#x3C;Trước\",nextText:\"Tiếp&#x3E;\",currentText:\"Hôm nay\",monthNames:[\"Tháng Một\",\"Tháng Hai\",\"Tháng Ba\",\"Tháng Tư\",\"Tháng Năm\",\"Tháng Sáu\",\"Tháng Bảy\",\"Tháng Tám\",\"Tháng Chín\",\"Tháng Mười\",\"Tháng Mười Một\",\"Tháng Mười Hai\"],monthNamesShort:[\"Tháng 1\",\"Tháng 2\",\"Tháng 3\",\"Tháng 4\",\"Tháng 5\",\"Tháng 6\",\"Tháng 7\",\"Tháng 8\",\"Tháng 9\",\"Tháng 10\",\"Tháng 11\",\"Tháng 12\"],dayNames:[\"Chủ Nhật\",\"Thứ Hai\",\"Thứ Ba\",\"Thứ Tư\",\"Thứ Năm\",\"Thứ Sáu\",\"Thứ Bảy\"],dayNamesShort:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],dayNamesMin:[\"CN\",\"T2\",\"T3\",\"T4\",\"T5\",\"T6\",\"T7\"],weekHeader:\"Tu\",dateFormat:\"dd/mm/yy\",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:\"\"}),a.fullCalendar.lang(\"vi\",{buttonText:{month:\"Tháng\",week:\"Tuần\",day:\"Ngày\",list:\"Lịch biểu\"},allDayText:\"Cả ngày\",eventLimitText:function(a){return\"+ thêm \"+a}})}(),function(){(b.defineLocale||b.lang).call(b,\"zh-cn\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah点mm\",LTS:\"Ah点m分s秒\",L:\"YYYY-MM-DD\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY-MM-DD\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"下午\"===b||\"晚上\"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?\"凌晨\":900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:function(){return 0===this.minutes()?\"[今天]Ah[点整]\":\"[今天]LT\"},nextDay:function(){return 0===this.minutes()?\"[明天]Ah[点整]\":\"[明天]LT\"},lastDay:function(){return 0===this.minutes()?\"[昨天]Ah[点整]\":\"[昨天]LT\"},nextWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()-a.unix()>=604800?\"[下]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},lastWeek:function(){var a,c;return a=b().startOf(\"week\"),c=this.unix()<a.unix()?\"[上]\":\"[本]\",0===this.minutes()?c+\"dddAh点整\":c+\"dddAh点mm\"},sameElse:\"LL\"},ordinalParse:/\\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"周\";default:return a}},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1分钟\",mm:\"%d分钟\",h:\"1小时\",hh:\"%d小时\",d:\"1天\",dd:\"%d天\",M:\"1个月\",MM:\"%d个月\",y:\"1年\",yy:\"%d年\"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang(\"zh-cn\",\"zh-CN\",{closeText:\"关闭\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy-mm-dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-cn\",{buttonText:{month:\"月\",week:\"周\",day:\"日\",list:\"日程\"},allDayText:\"全天\",eventLimitText:function(a){return\"另外 \"+a+\" 个\"}})}(),function(){(b.defineLocale||b.lang).call(b,\"zh-tw\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"Ah點mm\",LTS:\"Ah點m分s秒\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日LT\",LLLL:\"YYYY年MMMD日ddddLT\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日LT\",llll:\"YYYY年MMMD日ddddLT\"},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?\"早上\":1130>d?\"上午\":1230>d?\"中午\":1800>d?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},ordinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"一分鐘\",mm:\"%d分鐘\",h:\"一小時\",hh:\"%d小時\",d:\"一天\",dd:\"%d天\",M:\"一個月\",MM:\"%d個月\",y:\"一年\",yy:\"%d年\"}}),a.fullCalendar.datepickerLang(\"zh-tw\",\"zh-TW\",{closeText:\"關閉\",prevText:\"&#x3C;上月\",nextText:\"下月&#x3E;\",currentText:\"今天\",monthNames:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthNamesShort:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],dayNames:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayNamesShort:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"],dayNamesMin:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"],weekHeader:\"周\",dateFormat:\"yy/mm/dd\",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:\"年\"}),a.fullCalendar.lang(\"zh-tw\",{buttonText:{month:\"月\",week:\"週\",day:\"天\",list:\"待辦事項\"},allDayText:\"全天\",eventLimitText:\"更多\"})}(),(b.locale||b.lang).call(b,\"en\"),a.fullCalendar.lang(\"en\"),a.datepicker&&a.datepicker.setDefaults(a.datepicker.regional[\"\"])});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/holder.js",
    "content": "/*!\n\nHolder - 2.3.2 - client side image placeholders\n(c) 2012-2014 Ivan Malopinsky / http://imsky.co\n\nProvided under the MIT License.\nCommercial use requires attribution.\n\n*/\nvar Holder = Holder || {};\n(function (app, win) {\nvar system_config = {\n\tuse_svg: false,\n\tuse_canvas: false,\n\tuse_fallback: false\n};\nvar instance_config = {};\nvar preempted = false;\ncanvas = document.createElement('canvas');\nvar dpr = 1, bsr = 1;\nvar resizable_images = [];\n\nif (!canvas.getContext) {\n\tsystem_config.use_fallback = true;\n} else {\n\tif (canvas.toDataURL(\"image/png\")\n\t\t.indexOf(\"data:image/png\") < 0) {\n\t\t//Android doesn't support data URI\n\t\tsystem_config.use_fallback = true;\n\t} else {\n\t\tvar ctx = canvas.getContext(\"2d\");\n\t}\n}\n\nif(!!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect){\n\tsystem_config.use_svg = true;\n\tsystem_config.use_canvas = false;\n}\n\nif(!system_config.use_fallback){\n    dpr = window.devicePixelRatio || 1,\n    bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n}\n\nvar ratio = dpr / bsr;\n\nvar settings = {\n\tdomain: \"holder.js\",\n\timages: \"img\",\n\tbgnodes: \".holderjs\",\n\tthemes: {\n\t\t\"gray\": {\n\t\t\tbackground: \"#eee\",\n\t\t\tforeground: \"#aaa\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"social\": {\n\t\t\tbackground: \"#3a5a97\",\n\t\t\tforeground: \"#fff\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"industrial\": {\n\t\t\tbackground: \"#434A52\",\n\t\t\tforeground: \"#C2F200\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"sky\": {\n\t\t\tbackground: \"#0D8FDB\",\n\t\t\tforeground: \"#fff\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"vine\": {\n\t\t\tbackground: \"#39DBAC\",\n\t\t\tforeground: \"#1E292C\",\n\t\t\tsize: 12\n\t\t},\n\t\t\"lava\": {\n\t\t\tbackground: \"#F8591A\",\n\t\t\tforeground: \"#1C2846\",\n\t\t\tsize: 12\n\t\t}\n\t},\n\tstylesheet: \"\"\n};\napp.flags = {\n\tdimensions: {\n\t\tregex: /^(\\d+)x(\\d+)$/,\n\t\toutput: function (val) {\n\t\t\tvar exec = this.regex.exec(val);\n\t\t\treturn {\n\t\t\t\twidth: +exec[1],\n\t\t\t\theight: +exec[2]\n\t\t\t}\n\t\t}\n\t},\n\tfluid: {\n\t\tregex: /^([0-9%]+)x([0-9%]+)$/,\n\t\toutput: function (val) {\n\t\t\tvar exec = this.regex.exec(val);\n\t\t\treturn {\n\t\t\t\twidth: exec[1],\n\t\t\t\theight: exec[2]\n\t\t\t}\n\t\t}\n\t},\n\tcolors: {\n\t\tregex: /#([0-9a-f]{3,})\\:#([0-9a-f]{3,})/i,\n\t\toutput: function (val) {\n\t\t\tvar exec = this.regex.exec(val);\n\t\t\treturn {\n\t\t\t\tsize: settings.themes.gray.size,\n\t\t\t\tforeground: \"#\" + exec[2],\n\t\t\t\tbackground: \"#\" + exec[1]\n\t\t\t}\n\t\t}\n\t},\n\ttext: {\n\t\tregex: /text\\:(.*)/,\n\t\toutput: function (val) {\n\t\t\treturn this.regex.exec(val)[1];\n\t\t}\n\t},\n\tfont: {\n\t\tregex: /font\\:(.*)/,\n\t\toutput: function (val) {\n\t\t\treturn this.regex.exec(val)[1];\n\t\t}\n\t},\n\tauto: {\n\t\tregex: /^auto$/\n\t},\n\ttextmode: {\n\t\tregex: /textmode\\:(.*)/,\n\t\toutput: function(val){\n\t\t\treturn this.regex.exec(val)[1];\n\t\t}\n\t}\n}\n\nfunction text_size(width, height, template) {\n\theight = parseInt(height, 10);\n\twidth = parseInt(width, 10);\n\tvar bigSide = Math.max(height, width)\n\tvar smallSide = Math.min(height, width)\n\tvar scale = 1 / 12;\n\tvar newHeight = Math.min(smallSide * 0.75, 0.75 * bigSide * scale);\n\treturn {\n\t\theight: Math.round(Math.max(template.size, newHeight))\n\t}\n}\n\nvar svg_el = (function(){\n\t//Prevent IE <9 from initializing SVG renderer\n\tif(!window.XMLSerializer) return;\n\tvar serializer = new XMLSerializer();\n\tvar svg_ns = \"http://www.w3.org/2000/svg\"\n\tvar svg = document.createElementNS(svg_ns, \"svg\");\n\t//IE throws an exception if this is set and Chrome requires it to be set\n\tif(svg.webkitMatchesSelector){\n\t\tsvg.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\")\n\t}\n\tvar bg_el = document.createElementNS(svg_ns, \"rect\")\n\tvar text_el = document.createElementNS(svg_ns, \"text\")\n\tvar textnode_el = document.createTextNode(null)\n\ttext_el.setAttribute(\"text-anchor\", \"middle\")\n\ttext_el.appendChild(textnode_el)\n\tsvg.appendChild(bg_el)\n\tsvg.appendChild(text_el)\n\n\treturn function(props){\n\t\tsvg.setAttribute(\"width\",props.width);\n\t\tsvg.setAttribute(\"height\", props.height);\n\t\tbg_el.setAttribute(\"width\", props.width);\n\t\tbg_el.setAttribute(\"height\", props.height);\n\t\tbg_el.setAttribute(\"fill\", props.template.background);\n\t\ttext_el.setAttribute(\"x\", props.width/2)\n\t\ttext_el.setAttribute(\"y\", props.height/2)\n\t\ttextnode_el.nodeValue=props.text\n\t\ttext_el.setAttribute(\"style\", css_properties({\n\t\t\"fill\": props.template.foreground,\n\t\t\"font-weight\": \"bold\",\n\t\t\"font-size\": props.text_height+\"px\",\n\t\t\"font-family\":props.font,\n\t\t\"dominant-baseline\":\"central\"\n\t\t}))\n\t\treturn serializer.serializeToString(svg)\n\t}\n})()\n\nfunction css_properties(props){\n\tvar ret = [];\n\tfor(p in props){\n\t\tif(props.hasOwnProperty(p)){\n\t\t\tret.push(p+\":\"+props[p])\n\t\t}\n\t}\n\treturn ret.join(\";\")\n}\n\nfunction draw_canvas(args) {\n\tvar ctx = args.ctx,\n\t\tdimensions = args.dimensions,\n\t\ttemplate = args.template,\n\t\tratio = args.ratio,\n\t\tholder = args.holder,\n\t\tliteral = holder.textmode == \"literal\",\n\t\texact = holder.textmode == \"exact\";\n\n\tvar ts = text_size(dimensions.width, dimensions.height, template);\n\tvar text_height = ts.height;\n\tvar width = dimensions.width * ratio,\n\t\theight = dimensions.height * ratio;\n\tvar font = template.font ? template.font : \"Arial,Helvetica,sans-serif\";\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tctx.textAlign = \"center\";\n\tctx.textBaseline = \"middle\";\n\tctx.fillStyle = template.background;\n\tctx.fillRect(0, 0, width, height);\n\tctx.fillStyle = template.foreground;\n\tctx.font = \"bold \" + text_height + \"px \" + font;\n\tvar text = template.text ? template.text : (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\tif (literal) {\n\t\tvar dimensions = holder.dimensions;\n\t\ttext = dimensions.width + \"x\" + dimensions.height;\n\t}\n\telse if(exact && holder.exact_dimensions){\n\t\tvar dimensions = holder.exact_dimensions;\n\t\ttext = (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\t}\n\tvar text_width = ctx.measureText(text).width;\n\tif (text_width / width >= 0.75) {\n\t\ttext_height = Math.floor(text_height * 0.75 * (width / text_width));\n\t}\n\t//Resetting font size if necessary\n\tctx.font = \"bold \" + (text_height * ratio) + \"px \" + font;\n\tctx.fillText(text, (width / 2), (height / 2), width);\n\treturn canvas.toDataURL(\"image/png\");\n}\n\nfunction draw_svg(args){\n\tvar dimensions = args.dimensions,\n\t\ttemplate = args.template,\n\t\tholder = args.holder,\n\t\tliteral = holder.textmode == \"literal\",\n\t\texact = holder.textmode == \"exact\";\n\n\tvar ts = text_size(dimensions.width, dimensions.height, template);\n\tvar text_height = ts.height;\n\tvar width = dimensions.width,\n\t\theight = dimensions.height;\n\t\t\n\tvar font = template.font ? template.font : \"Arial,Helvetica,sans-serif\";\n\tvar text = template.text ? template.text : (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\t\n\tif (literal) {\n\t\tvar dimensions = holder.dimensions;\n\t\ttext = dimensions.width + \"x\" + dimensions.height;\n\t}\n\telse if(exact && holder.exact_dimensions){\n\t\tvar dimensions = holder.exact_dimensions;\n\t\ttext = (Math.floor(dimensions.width) + \"x\" + Math.floor(dimensions.height));\n\t}\n\tvar string = svg_el({\n\t\ttext: text, \n\t\twidth:width, \n\t\theight:height, \n\t\ttext_height:text_height, \n\t\tfont:font, \n\t\ttemplate:template\n\t})\n\treturn \"data:image/svg+xml;base64,\"+btoa(unescape(encodeURIComponent(string)));\n}\n\nfunction draw(args) {\n\tif(instance_config.use_canvas && !instance_config.use_svg){\n\t\treturn draw_canvas(args);\n\t}\n\telse{\n\t\treturn draw_svg(args);\n\t}\n}\n\nfunction render(mode, el, holder, src) {\n\tvar dimensions = holder.dimensions,\n\t\ttheme = holder.theme,\n\t\ttext = holder.text ? decodeURIComponent(holder.text) : holder.text;\n\tvar dimensions_caption = dimensions.width + \"x\" + dimensions.height;\n\ttheme = (text ? extend(theme, {\n\t\ttext: text\n\t}) : theme);\n\ttheme = (holder.font ? extend(theme, {\n\t\tfont: holder.font\n\t}) : theme);\n\tel.setAttribute(\"data-src\", src);\n\tholder.theme = theme;\n\tel.holder_data = holder;\n\t\n\tif (mode == \"image\") {\n\t\tel.setAttribute(\"alt\", text ? text : theme.text ? theme.text + \" [\" + dimensions_caption + \"]\" : dimensions_caption);\n\t\tif (instance_config.use_fallback || !holder.auto) {\n\t\t\tel.style.width = dimensions.width + \"px\";\n\t\t\tel.style.height = dimensions.height + \"px\";\n\t\t}\n\t\tif (instance_config.use_fallback) {\n\t\t\tel.style.backgroundColor = theme.background;\n\t\t} else {\n\t\t\tel.setAttribute(\"src\", draw({ctx: ctx, dimensions: dimensions, template: theme, ratio:ratio, holder: holder}));\n\t\t\t\n\t\t\tif(holder.textmode && holder.textmode == \"exact\"){\n\t\t\t\tresizable_images.push(el);\n\t\t\t\tresizable_update(el);\n\t\t\t}\n\t\t\t\n\t\t}\n\t} else if (mode == \"background\") {\n\t\tif (!instance_config.use_fallback) {\n\t\t\tel.style.backgroundImage = \"url(\" + draw({ctx:ctx, dimensions: dimensions, template: theme, ratio: ratio, holder: holder}) + \")\";\n\t\t\tel.style.backgroundSize = dimensions.width + \"px \" + dimensions.height + \"px\";\n\t\t}\n\t} else if (mode == \"fluid\") {\n\t\tel.setAttribute(\"alt\", text ? text : theme.text ? theme.text + \" [\" + dimensions_caption + \"]\" : dimensions_caption);\n\t\tif (dimensions.height.slice(-1) == \"%\") {\n\t\t\tel.style.height = dimensions.height\n\t\t} else if(holder.auto == null || !holder.auto){\n\t\t\tel.style.height = dimensions.height + \"px\"\n\t\t}\n\t\tif (dimensions.width.slice(-1) == \"%\") {\n\t\t\tel.style.width = dimensions.width\n\t\t} else if(holder.auto == null || !holder.auto){\n\t\t\tel.style.width = dimensions.width + \"px\"\n\t\t}\n\t\tif (el.style.display == \"inline\" || el.style.display === \"\" || el.style.display == \"none\") {\n\t\t\tel.style.display = \"block\";\n\t\t}\n\t\t\n\t\tset_initial_dimensions(el)\n\t\t\n\t\tif (instance_config.use_fallback) {\n\t\t\tel.style.backgroundColor = theme.background;\n\t\t} else {\n\t\t\tresizable_images.push(el);\n\t\t\tresizable_update(el);\n\t\t}\n\t}\n}\n\nfunction dimension_check(el, callback) {\n\tvar dimensions = {\n\t\theight: el.clientHeight,\n\t\twidth: el.clientWidth\n\t};\n\tif (!dimensions.height && !dimensions.width) {\n\t\tel.setAttribute(\"data-holder-invisible\", true)\n\t\tcallback.call(this, el)\n\t}\n\telse{\n\t\tel.removeAttribute(\"data-holder-invisible\")\n\t\treturn dimensions;\n\t}\n}\n\nfunction set_initial_dimensions(el){\n\tif(el.holder_data){\n\t\tvar dimensions = dimension_check(el, app.invisible_error_fn( set_initial_dimensions))\n\t\tif(dimensions){\n\t\t\tvar holder = el.holder_data;\n\t\t\tholder.initial_dimensions = dimensions;\n\t\t\tholder.fluid_data = {\n\t\t\t\tfluid_height: holder.dimensions.height.slice(-1) == \"%\",\n\t\t\t\tfluid_width: holder.dimensions.width.slice(-1) == \"%\",\n\t\t\t\tmode: null\n\t\t\t}\n\t\t\tif(holder.fluid_data.fluid_width && !holder.fluid_data.fluid_height){\n\t\t\t\tholder.fluid_data.mode = \"width\"\n\t\t\t\tholder.fluid_data.ratio = holder.initial_dimensions.width / parseFloat(holder.dimensions.height)\n\t\t\t}\n\t\t\telse if(!holder.fluid_data.fluid_width && holder.fluid_data.fluid_height){\n\t\t\t\tholder.fluid_data.mode = \"height\";\n\t\t\t\tholder.fluid_data.ratio = parseFloat(holder.dimensions.width) / holder.initial_dimensions.height\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction resizable_update(element) {\n\tvar images;\n\tif (element.nodeType == null) {\n\t\timages = resizable_images;\n\t} else {\n\t\timages = [element]\n\t}\n\tfor (var i in images) {\n\t\tif (!images.hasOwnProperty(i)) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar el = images[i]\n\t\tif (el.holder_data) {\n\t\t\tvar holder = el.holder_data;\n\t\t\tvar dimensions = dimension_check(el, app.invisible_error_fn( resizable_update))\n\t\t\tif(dimensions){\n\t\t\t\tif(holder.fluid){\n\t\t\t\t\tif(holder.auto){\n\t\t\t\t\t\tswitch(holder.fluid_data.mode){\n\t\t\t\t\t\t\tcase \"width\":\n\t\t\t\t\t\t\t\tdimensions.height = dimensions.width / holder.fluid_data.ratio;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"height\":\n\t\t\t\t\t\t\t\tdimensions.width = dimensions.height * holder.fluid_data.ratio;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tel.setAttribute(\"src\", draw({\n\t\t\t\t\t\tctx: ctx,\n\t\t\t\t\t\tdimensions: dimensions,\n\t\t\t\t\t\ttemplate: holder.theme,\n\t\t\t\t\t\tratio: ratio,\n\t\t\t\t\t\tholder: holder\n\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t\tif(holder.textmode && holder.textmode == \"exact\"){\n\t\t\t\t\tholder.exact_dimensions = dimensions;\n\t\t\t\t\tel.setAttribute(\"src\", draw({\n\t\t\t\t\t\tctx: ctx,\n\t\t\t\t\t\tdimensions: holder.dimensions,\n\t\t\t\t\t\ttemplate: holder.theme,\n\t\t\t\t\t\tratio: ratio,\n\t\t\t\t\t\tholder: holder\n\t\t\t\t\t}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_flags(flags, options) {\n\tvar ret = {\n\t\ttheme: extend(settings.themes.gray, {})\n\t};\n\tvar render = false;\n\tfor (var fl = flags.length, j = 0; j < fl; j++) {\n\t\tvar flag = flags[j];\n\t\tif (app.flags.dimensions.match(flag)) {\n\t\t\trender = true;\n\t\t\tret.dimensions = app.flags.dimensions.output(flag);\n\t\t} else if (app.flags.fluid.match(flag)) {\n\t\t\trender = true;\n\t\t\tret.dimensions = app.flags.fluid.output(flag);\n\t\t\tret.fluid = true;\n\t\t} else if (app.flags.textmode.match(flag)) {\n\t\t\tret.textmode = app.flags.textmode.output(flag)\n\t\t} else if (app.flags.colors.match(flag)) {\n\t\t\tret.theme = app.flags.colors.output(flag);\n\t\t} else if (options.themes[flag]) {\n\t\t\t//If a theme is specified, it will override custom colors\n\t\t\tif(options.themes.hasOwnProperty(flag)){\n\t\t\t\tret.theme = extend(options.themes[flag], {});\n\t\t\t}\n\t\t} else if (app.flags.font.match(flag)) {\n\t\t\tret.font = app.flags.font.output(flag);\n\t\t} else if (app.flags.auto.match(flag)) {\n\t\t\tret.auto = true;\n\t\t} else if (app.flags.text.match(flag)) {\n\t\t\tret.text = app.flags.text.output(flag);\n\t\t}\n\t}\n\treturn render ? ret : false;\n}\n\nfor (var flag in app.flags) {\n\tif (!app.flags.hasOwnProperty(flag)) continue;\n\tapp.flags[flag].match = function (val) {\n\t\treturn val.match(this.regex)\n\t}\n}\n\napp.invisible_error_fn = function(fn){\n\treturn function(el){\n\t\tif(el.hasAttribute(\"data-holder-invisible\")){\n\t\t\tthrow new Error(\"Holder: invisible placeholder\")\n\t\t}\n\t}\n}\n\napp.add_theme = function (name, theme) {\n\tname != null && theme != null && (settings.themes[name] = theme);\n\treturn app;\n};\n\napp.add_image = function (src, el) {\n\tvar node = selector(el);\n\tif (node.length) {\n\t\tfor (var i = 0, l = node.length; i < l; i++) {\n\t\t\tvar img = document.createElement(\"img\")\n\t\t\timg.setAttribute(\"data-src\", src);\n\t\t\tnode[i].appendChild(img);\n\t\t}\n\t}\n\treturn app;\n};\n\napp.run = function (o) {\n\n\tinstance_config = extend({}, system_config)\n\tpreempted = true;\n\n\tvar options = extend(settings, o),\n\t\timages = [],\n\t\timageNodes = [],\n\t\tbgnodes = [];\n\n\tif(options.use_canvas != null && options.use_canvas){\n\t\tinstance_config.use_canvas = true;\n\t\tinstance_config.use_svg = false;\n\t}\n\t\t\t\n\tif (typeof (options.images) == \"string\") {\n\t\timageNodes = selector(options.images);\n\t} else if (window.NodeList && options.images instanceof window.NodeList) {\n\t\timageNodes = options.images;\n\t} else if (window.Node && options.images instanceof window.Node) {\n\t\timageNodes = [options.images];\n\t} else if(window.HTMLCollection && options.images instanceof window.HTMLCollection){\n\t\timageNodes = options.images\n\t}\n\n\tif (typeof (options.bgnodes) == \"string\") {\n\t\tbgnodes = selector(options.bgnodes);\n\t} else if (window.NodeList && options.elements instanceof window.NodeList) {\n\t\tbgnodes = options.bgnodes;\n\t} else if (window.Node && options.bgnodes instanceof window.Node) {\n\t\tbgnodes = [options.bgnodes];\n\t}\n\tfor (i = 0, l = imageNodes.length; i < l; i++) images.push(imageNodes[i]);\n\t\n\tvar holdercss = document.getElementById(\"holderjs-style\");\n\tif (!holdercss) {\n\t\tholdercss = document.createElement(\"style\");\n\t\tholdercss.setAttribute(\"id\", \"holderjs-style\");\n\t\tholdercss.type = \"text/css\";\n\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(holdercss);\n\t}\n\t\n\tif (!options.nocss) {\n\t\tif (holdercss.styleSheet) {\n\t\t\tholdercss.styleSheet.cssText += options.stylesheet;\n\t\t} else {\n\t\t\tif(options.stylesheet.length){\n\t\t\t\tholdercss.appendChild(document.createTextNode(options.stylesheet));\n\t\t\t}\n\t\t}\n\t}\n\t\n\tvar cssregex = new RegExp(options.domain + \"\\/(.*?)\\\"?\\\\)\");\n\tfor (var l = bgnodes.length, i = 0; i < l; i++) {\n\t\tvar src = window.getComputedStyle(bgnodes[i], null)\n\t\t\t.getPropertyValue(\"background-image\");\n\t\tvar flags = src.match(cssregex);\n\t\tvar bgsrc = bgnodes[i].getAttribute(\"data-background-src\");\n\t\tif (flags) {\n\t\t\tvar holder = parse_flags(flags[1].split(\"/\"), options);\n\t\t\tif (holder) {\n\t\t\t\trender(\"background\", bgnodes[i], holder, src);\n\t\t\t}\n\t\t} else if (bgsrc != null) {\n\t\t\tvar holder = parse_flags(bgsrc.substr(bgsrc.lastIndexOf(options.domain) + options.domain.length + 1)\n\t\t\t\t.split(\"/\"), options);\n\t\t\tif (holder) {\n\t\t\t\trender(\"background\", bgnodes[i], holder, src);\n\t\t\t}\n\t\t}\n\t}\n\tfor (l = images.length, i = 0; i < l; i++) {\n\t\tvar attr_data_src, attr_src;\n\t\tattr_src = attr_data_src = src = null;\n\t\ttry {\n\t\t\tattr_src = images[i].getAttribute(\"src\");\n\t\t\tattr_datasrc = images[i].getAttribute(\"data-src\");\n\t\t} catch (e) {}\n\t\tif (attr_datasrc == null && !! attr_src && attr_src.indexOf(options.domain) >= 0) {\n\t\t\tsrc = attr_src;\n\t\t} else if ( !! attr_datasrc && attr_datasrc.indexOf(options.domain) >= 0) {\n\t\t\tsrc = attr_datasrc;\n\t\t}\n\t\tif (src) {\n\t\t\tvar holder = parse_flags(src.substr(src.lastIndexOf(options.domain) + options.domain.length + 1).split(\"/\"), options);\n\t\t\tif (holder) {\n\t\t\t\tif (holder.fluid) {\n\t\t\t\t\trender(\"fluid\", images[i], holder, src)\n\t\t\t\t} else {\n\t\t\t\t\trender(\"image\", images[i], holder, src);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn app;\n};\n\ncontentLoaded(win, function () {\n\tif (window.addEventListener) {\n\t\twindow.addEventListener(\"resize\", resizable_update, false);\n\t\twindow.addEventListener(\"orientationchange\", resizable_update, false);\n\t} else {\n\t\twindow.attachEvent(\"onresize\", resizable_update)\n\t}\n\tpreempted || app.run({});\n\n\tif (typeof window.Turbolinks === \"object\") {\n\t\tdocument.addEventListener(\"page:change\", function() { app.run({}) })\n\t}\n});\nif (typeof define === \"function\" && define.amd) {\n\tdefine([], function () {\n\t\treturn app;\n\t});\n}\n\n//github.com/davidchambers/Base64.js\n(function(){function t(t){this.message=t}var e=\"undefined\"!=typeof exports?exports:this,r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";t.prototype=Error(),t.prototype.name=\"InvalidCharacterError\",e.btoa||(e.btoa=function(e){for(var o,n,a=0,i=r,c=\"\";e.charAt(0|a)||(i=\"=\",a%1);c+=i.charAt(63&o>>8-8*(a%1))){if(n=e.charCodeAt(a+=.75),n>255)throw new t(\"'btoa' failed\");o=o<<8|n}return c}),e.atob||(e.atob=function(e){if(e=e.replace(/=+$/,\"\"),1==e.length%4)throw new t(\"'atob' failed\");for(var o,n,a=0,i=0,c=\"\";n=e.charAt(i++);~n&&(o=a%4?64*o+n:n,a++%4)?c+=String.fromCharCode(255&o>>(6&-2*a)):0)n=r.indexOf(n);return c})})();\n\n//getElementsByClassName polyfill\ndocument.getElementsByClassName||(document.getElementsByClassName=function(e){var t=document,n,r,i,s=[];if(t.querySelectorAll)return t.querySelectorAll(\".\"+e);if(t.evaluate){r=\".//*[contains(concat(' ', @class, ' '), ' \"+e+\" ')]\",n=t.evaluate(r,t,null,0,null);while(i=n.iterateNext())s.push(i)}else{n=t.getElementsByTagName(\"*\"),r=new RegExp(\"(^|\\\\s)\"+e+\"(\\\\s|$)\");for(i=0;i<n.length;i++)r.test(n[i].className)&&s.push(n[i])}return s})\n\n//getComputedStyle polyfill\nwindow.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var n=/(\\-([a-z]){1})/g;return t==\"float\"&&(t=\"styleFloat\"),n.test(t)&&(t=t.replace(n,function(){return arguments[2].toUpperCase()})),e.currentStyle[t]?e.currentStyle[t]:null},this})\n\n//http://javascript.nwbox.com/ContentLoaded by Diego Perini with modifications\nfunction contentLoaded(n,t){var l=\"complete\",s=\"readystatechange\",u=!1,h=u,c=!0,i=n.document,a=i.documentElement,e=i.addEventListener?\"addEventListener\":\"attachEvent\",v=i.addEventListener?\"removeEventListener\":\"detachEvent\",f=i.addEventListener?\"\":\"on\",r=function(e){(e.type!=s||i.readyState==l)&&((e.type==\"load\"?n:i)[v](f+e.type,r,u),!h&&(h=!0)&&t.call(n,null))},o=function(){try{a.doScroll(\"left\")}catch(n){setTimeout(o,50);return}r(\"poll\")};if(i.readyState==l)t.call(n,\"lazy\");else{if(i.createEventObject&&a.doScroll){try{c=!n.frameElement}catch(y){}c&&o()}i[e](f+\"DOMContentLoaded\",r,u),i[e](f+s,r,u),n[e](f+\"load\",r,u)}}\n\n//https://gist.github.com/991057 by Jed Schmidt with modifications\nfunction selector(a,b){var a=a.match(/^(\\W)?(.*)/),b=b||document,c=b[\"getElement\"+(a[1]?\"#\"==a[1]?\"ById\":\"sByClassName\":\"sByTagName\")],d=c.call(b,a[2]),e=[];return null!==d&&(e=d.length||0===d.length?d:[d]),e}\n\n//shallow object property extend\nfunction extend(a,b){\n\tvar c={};\n\tfor(var i in a){\n\t\tif(a.hasOwnProperty(i)){\n\t\t\tc[i]=a[i];\n\t\t}\n\t}\n\tfor(var i in b){\n\t\tif(b.hasOwnProperty(i)){\n\t\t\tc[i]=b[i];\n\t\t}\n\t}\n\treturn c\n}\n\n//hasOwnProperty polyfill\nif (!Object.prototype.hasOwnProperty)\n    /*jshint -W001, -W103 */\n    Object.prototype.hasOwnProperty = function(prop) {\n\t\tvar proto = this.__proto__ || this.constructor.prototype;\n\t\treturn (prop in this) && (!(prop in proto) || proto[prop] !== this[prop]);\n\t}\n    /*jshint +W001, +W103 */\n\n})(Holder, window);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/horizontal-timeline/horizontal-timeline.js",
    "content": "jQuery(document).ready(function($){\n\tvar timelines = $('.cd-horizontal-timeline');\n\tvar eventsMinDistance;\n\n\t(timelines.length > 0) && initTimeline(timelines);\n\n\tfunction initTimeline(timelines) {\n\t\ttimelines.each(function(){\n\t\t\teventsMinDistance = $(this).data('spacing');\n\t\t\tvar timeline = $(this),\n\t\t\t\ttimelineComponents = {};\n\t\t\t//cache timeline components \n\t\t\ttimelineComponents['timelineWrapper'] = timeline.find('.events-wrapper');\n\t\t\ttimelineComponents['eventsWrapper'] = timelineComponents['timelineWrapper'].children('.events');\n\t\t\ttimelineComponents['fillingLine'] = timelineComponents['eventsWrapper'].children('.filling-line');\n\t\t\ttimelineComponents['timelineEvents'] = timelineComponents['eventsWrapper'].find('a');\n\t\t\ttimelineComponents['timelineDates'] = parseDate(timelineComponents['timelineEvents']);\n\t\t\ttimelineComponents['eventsMinLapse'] = minLapse(timelineComponents['timelineDates']);\n\t\t\ttimelineComponents['timelineNavigation'] = timeline.find('.cd-timeline-navigation');\n\t\t\ttimelineComponents['eventsContent'] = timeline.children('.events-content');\n\n\t\t\t//assign a left postion to the single events along the timeline\n\t\t\tsetDatePosition(timelineComponents, eventsMinDistance);\n\t\t\t//assign a width to the timeline\n\t\t\tvar timelineTotWidth = setTimelineWidth(timelineComponents, eventsMinDistance);\n\t\t\t//the timeline has been initialize - show it\n\t\t\ttimeline.addClass('loaded');\n\n\t\t\t//detect click on the next arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.next', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\t//detect click on the prev arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.prev', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\t\t\t//detect click on the a single event - show new event content\n\t\t\ttimelineComponents['eventsWrapper'].on('click', 'a', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttimelineComponents['timelineEvents'].removeClass('selected');\n\t\t\t\t$(this).addClass('selected');\n\t\t\t\tupdateOlderEvents($(this));\n\t\t\t\tupdateFilling($(this), timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\t\tupdateVisibleContent($(this), timelineComponents['eventsContent']);\n\t\t\t});\n\n\t\t\t//on swipe, show next/prev event content\n\t\t\ttimelineComponents['eventsContent'].on('swipeleft', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\ttimelineComponents['eventsContent'].on('swiperight', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\n\t\t\t//keyboard navigation\n\t\t\t$(document).keyup(function(event){\n\t\t\t\tif(event.which=='37' && elementInViewport(timeline.get(0)) ) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t\t} else if( event.which=='39' && elementInViewport(timeline.get(0))) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction updateSlide(timelineComponents, timelineTotWidth, string) {\n\t\t//retrieve translateX value of timelineComponents['eventsWrapper']\n\t\tvar translateValue = getTranslateValue(timelineComponents['eventsWrapper']),\n\t\t\twrapperWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', ''));\n\t\t//translate the timeline to the left('next')/right('prev') \n\t\t(string == 'next') \n\t\t\t? translateTimeline(timelineComponents, translateValue - wrapperWidth + eventsMinDistance, wrapperWidth - timelineTotWidth)\n\t\t\t: translateTimeline(timelineComponents, translateValue + wrapperWidth - eventsMinDistance);\n\t}\n\n\tfunction showNewContent(timelineComponents, timelineTotWidth, string) {\n\t\t//go from one event to the next/previous one\n\t\tvar visibleContent =  timelineComponents['eventsContent'].find('.selected'),\n\t\t\tnewContent = ( string == 'next' ) ? visibleContent.next() : visibleContent.prev();\n\n\t\tif ( newContent.length > 0 ) { //if there's a next/prev event - show it\n\t\t\tvar selectedDate = timelineComponents['eventsWrapper'].find('.selected'),\n\t\t\t\tnewEvent = ( string == 'next' ) ? selectedDate.parent('li').next('li').children('a') : selectedDate.parent('li').prev('li').children('a');\n\t\t\t\n\t\t\tupdateFilling(newEvent, timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\tupdateVisibleContent(newEvent, timelineComponents['eventsContent']);\n\t\t\tnewEvent.addClass('selected');\n\t\t\tselectedDate.removeClass('selected');\n\t\t\tupdateOlderEvents(newEvent);\n\t\t\tupdateTimelinePosition(string, newEvent, timelineComponents);\n\t\t}\n\t}\n\n\tfunction updateTimelinePosition(string, event, timelineComponents) {\n\t\t//translate timeline to the left/right according to the position of the selected event\n\t\tvar eventStyle = window.getComputedStyle(event.get(0), null),\n\t\t\teventLeft = Number(eventStyle.getPropertyValue(\"left\").replace('px', '')),\n\t\t\ttimelineWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')),\n\t\t\ttimelineTotWidth = Number(timelineComponents['eventsWrapper'].css('width').replace('px', ''));\n\t\tvar timelineTranslate = getTranslateValue(timelineComponents['eventsWrapper']);\n\n        if( (string == 'next' && eventLeft > timelineWidth - timelineTranslate) || (string == 'prev' && eventLeft < - timelineTranslate) ) {\n        \ttranslateTimeline(timelineComponents, - eventLeft + timelineWidth/2, timelineWidth - timelineTotWidth);\n        }\n\t}\n\n\tfunction translateTimeline(timelineComponents, value, totWidth) {\n\t\tvar eventsWrapper = timelineComponents['eventsWrapper'].get(0);\n\t\tvalue = (value > 0) ? 0 : value; //only negative translate value\n\t\tvalue = ( !(typeof totWidth === 'undefined') &&  value < totWidth ) ? totWidth : value; //do not translate more than timeline width\n\t\tsetTransformValue(eventsWrapper, 'translateX', value+'px');\n\t\t//update navigation arrows visibility\n\t\t(value == 0 ) ? timelineComponents['timelineNavigation'].find('.prev').addClass('inactive') : timelineComponents['timelineNavigation'].find('.prev').removeClass('inactive');\n\t\t(value == totWidth ) ? timelineComponents['timelineNavigation'].find('.next').addClass('inactive') : timelineComponents['timelineNavigation'].find('.next').removeClass('inactive');\n\t}\n\n\tfunction updateFilling(selectedEvent, filling, totWidth) {\n\t\t//change .filling-line length according to the selected event\n\t\tvar eventStyle = window.getComputedStyle(selectedEvent.get(0), null),\n\t\t\teventLeft = eventStyle.getPropertyValue(\"left\"),\n\t\t\teventWidth = eventStyle.getPropertyValue(\"width\");\n\t\teventLeft = Number(eventLeft.replace('px', '')) + Number(eventWidth.replace('px', ''))/2;\n\t\tvar scaleValue = eventLeft/totWidth;\n\t\tsetTransformValue(filling.get(0), 'scaleX', scaleValue);\n\t}\n\n\tfunction setDatePosition(timelineComponents, min) {\n\t\tfor (i = 0; i < timelineComponents['timelineDates'].length; i++) { \n\t\t    var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),\n\t\t    \tdistanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2;\n\t\t    timelineComponents['timelineEvents'].eq(i).css('left', distanceNorm*min+'px');\n\t\t}\n\t}\n\n\tfunction setTimelineWidth(timelineComponents, width) {\n\t\tvar timeSpan = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][timelineComponents['timelineDates'].length-1]),\n\t\t\ttimeSpanNorm = timeSpan/timelineComponents['eventsMinLapse'],\n\t\t\ttimeSpanNorm = Math.round(timeSpanNorm) + 4,\n\t\t\ttotalWidth = timeSpanNorm*width;\n\t\ttimelineComponents['eventsWrapper'].css('width', totalWidth+'px');\n\t\tupdateFilling(timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents['fillingLine'], totalWidth);\n\t\tupdateTimelinePosition('next', timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents);\n\t\n\t\treturn totalWidth;\n\t}\n\n\tfunction updateVisibleContent(event, eventsContent) {\n\t\tvar eventDate = event.data('date'),\n\t\t\tvisibleContent = eventsContent.find('.selected'),\n\t\t\tselectedContent = eventsContent.find('[data-date=\"'+ eventDate +'\"]'),\n\t\t\tselectedContentHeight = selectedContent.height();\n\n\t\tif (selectedContent.index() > visibleContent.index()) {\n\t\t\tvar classEnetering = 'selected enter-right',\n\t\t\t\tclassLeaving = 'leave-left';\n\t\t} else {\n\t\t\tvar classEnetering = 'selected enter-left',\n\t\t\t\tclassLeaving = 'leave-right';\n\t\t}\n\n\t\tselectedContent.attr('class', classEnetering);\n\t\tvisibleContent.attr('class', classLeaving).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(){\n\t\t\tvisibleContent.removeClass('leave-right leave-left');\n\t\t\tselectedContent.removeClass('enter-left enter-right');\n\t\t});\n\t\teventsContent.css('height', selectedContentHeight+'px');\n\t}\n\n\tfunction updateOlderEvents(event) {\n\t\tevent.parent('li').prevAll('li').children('a').addClass('older-event').end().end().nextAll('li').children('a').removeClass('older-event');\n\t}\n\n\tfunction getTranslateValue(timeline) {\n\t\tvar timelineStyle = window.getComputedStyle(timeline.get(0), null),\n\t\t\ttimelineTranslate = timelineStyle.getPropertyValue(\"-webkit-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-moz-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-ms-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-o-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"transform\");\n\n        if( timelineTranslate.indexOf('(') >=0 ) {\n        \tvar timelineTranslate = timelineTranslate.split('(')[1];\n    \t\ttimelineTranslate = timelineTranslate.split(')')[0];\n    \t\ttimelineTranslate = timelineTranslate.split(',');\n    \t\tvar translateValue = timelineTranslate[4];\n        } else {\n        \tvar translateValue = 0;\n        }\n\n        return Number(translateValue);\n\t}\n\n\tfunction setTransformValue(element, property, value) {\n\t\telement.style[\"-webkit-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-moz-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-ms-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-o-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"transform\"] = property+\"(\"+value+\")\";\n\t}\n\n\t//based on http://stackoverflow.com/questions/542938/how-do-i-get-the-number-of-days-between-two-dates-in-javascript\n\tfunction parseDate(events) {\n\t\tvar dateArrays = [];\n\t\tevents.each(function(){\n\t\t\tvar singleDate = $(this),\n\t\t\t\tdateComp = singleDate.data('date').split('T');\n\t\t\tif( dateComp.length > 1 ) { //both DD/MM/YEAR and time are provided\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = dateComp[1].split(':');\n\t\t\t} else if( dateComp[0].indexOf(':') >=0 ) { //only time is provide\n\t\t\t\tvar dayComp = [\"2000\", \"0\", \"0\"],\n\t\t\t\t\ttimeComp = dateComp[0].split(':');\n\t\t\t} else { //only DD/MM/YEAR\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = [\"0\", \"0\"];\n\t\t\t}\n\t\t\tvar\tnewDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]);\n\t\t\tdateArrays.push(newDate);\n\t\t});\n\t    return dateArrays;\n\t}\n\n\tfunction daydiff(first, second) {\n\t    return Math.round((second-first));\n\t}\n\n\tfunction minLapse(dates) {\n\t\t//determine the minimum distance among events\n\t\tvar dateDistances = [];\n\t\tfor (i = 1; i < dates.length; i++) { \n\t\t    var distance = daydiff(dates[i-1], dates[i]);\n\t\t    dateDistances.push(distance);\n\t\t}\n\t\treturn Math.min.apply(null, dateDistances);\n\t}\n\n\t/*\n\t\tHow to tell if a DOM element is visible in the current viewport?\n\t\thttp://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n\t*/\n\tfunction elementInViewport(el) {\n\t\tvar top = el.offsetTop;\n\t\tvar left = el.offsetLeft;\n\t\tvar width = el.offsetWidth;\n\t\tvar height = el.offsetHeight;\n\n\t\twhile(el.offsetParent) {\n\t\t    el = el.offsetParent;\n\t\t    top += el.offsetTop;\n\t\t    left += el.offsetLeft;\n\t\t}\n\n\t\treturn (\n\t\t    top < (window.pageYOffset + window.innerHeight) &&\n\t\t    left < (window.pageXOffset + window.innerWidth) &&\n\t\t    (top + height) > window.pageYOffset &&\n\t\t    (left + width) > window.pageXOffset\n\t\t);\n\t}\n\n\tfunction checkMQ() {\n\t\t//check if mobile or desktop device\n\t\treturn window.getComputedStyle(document.querySelector('.cd-horizontal-timeline'), '::before').getPropertyValue('content').replace(/'/g, \"\").replace(/\"/g, \"\");\n\t}\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/horizontal-timeline/horozontal-timeline.js",
    "content": "jQuery(document).ready(function($){\n\tvar timelines = $('.cd-horizontal-timeline'),\n\t\teventsMinDistance = 60;\n\n\t(timelines.length > 0) && initTimeline(timelines);\n\n\tfunction initTimeline(timelines) {\n\t\ttimelines.each(function(){\n\t\t\tvar timeline = $(this),\n\t\t\t\ttimelineComponents = {};\n\t\t\t//cache timeline components \n\t\t\ttimelineComponents['timelineWrapper'] = timeline.find('.events-wrapper');\n\t\t\ttimelineComponents['eventsWrapper'] = timelineComponents['timelineWrapper'].children('.events');\n\t\t\ttimelineComponents['fillingLine'] = timelineComponents['eventsWrapper'].children('.filling-line');\n\t\t\ttimelineComponents['timelineEvents'] = timelineComponents['eventsWrapper'].find('a');\n\t\t\ttimelineComponents['timelineDates'] = parseDate(timelineComponents['timelineEvents']);\n\t\t\ttimelineComponents['eventsMinLapse'] = minLapse(timelineComponents['timelineDates']);\n\t\t\ttimelineComponents['timelineNavigation'] = timeline.find('.cd-timeline-navigation');\n\t\t\ttimelineComponents['eventsContent'] = timeline.children('.events-content');\n\n\t\t\t//assign a left postion to the single events along the timeline\n\t\t\tsetDatePosition(timelineComponents, eventsMinDistance);\n\t\t\t//assign a width to the timeline\n\t\t\tvar timelineTotWidth = setTimelineWidth(timelineComponents, eventsMinDistance);\n\t\t\t//the timeline has been initialize - show it\n\t\t\ttimeline.addClass('loaded');\n\n\t\t\t//detect click on the next arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.next', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\t//detect click on the prev arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.prev', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\t\t\t//detect click on the a single event - show new event content\n\t\t\ttimelineComponents['eventsWrapper'].on('click', 'a', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttimelineComponents['timelineEvents'].removeClass('selected');\n\t\t\t\t$(this).addClass('selected');\n\t\t\t\tupdateOlderEvents($(this));\n\t\t\t\tupdateFilling($(this), timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\t\tupdateVisibleContent($(this), timelineComponents['eventsContent']);\n\t\t\t});\n\n\t\t\t//on swipe, show next/prev event content\n\t\t\ttimelineComponents['eventsContent'].on('swipeleft', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\ttimelineComponents['eventsContent'].on('swiperight', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\n\t\t\t//keyboard navigation\n\t\t\t$(document).keyup(function(event){\n\t\t\t\tif(event.which=='37' && elementInViewport(timeline.get(0)) ) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t\t} else if( event.which=='39' && elementInViewport(timeline.get(0))) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction updateSlide(timelineComponents, timelineTotWidth, string) {\n\t\t//retrieve translateX value of timelineComponents['eventsWrapper']\n\t\tvar translateValue = getTranslateValue(timelineComponents['eventsWrapper']),\n\t\t\twrapperWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', ''));\n\t\t//translate the timeline to the left('next')/right('prev') \n\t\t(string == 'next') \n\t\t\t? translateTimeline(timelineComponents, translateValue - wrapperWidth + eventsMinDistance, wrapperWidth - timelineTotWidth)\n\t\t\t: translateTimeline(timelineComponents, translateValue + wrapperWidth - eventsMinDistance);\n\t}\n\n\tfunction showNewContent(timelineComponents, timelineTotWidth, string) {\n\t\t//go from one event to the next/previous one\n\t\tvar visibleContent =  timelineComponents['eventsContent'].find('.selected'),\n\t\t\tnewContent = ( string == 'next' ) ? visibleContent.next() : visibleContent.prev();\n\n\t\tif ( newContent.length > 0 ) { //if there's a next/prev event - show it\n\t\t\tvar selectedDate = timelineComponents['eventsWrapper'].find('.selected'),\n\t\t\t\tnewEvent = ( string == 'next' ) ? selectedDate.parent('li').next('li').children('a') : selectedDate.parent('li').prev('li').children('a');\n\t\t\t\n\t\t\tupdateFilling(newEvent, timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\tupdateVisibleContent(newEvent, timelineComponents['eventsContent']);\n\t\t\tnewEvent.addClass('selected');\n\t\t\tselectedDate.removeClass('selected');\n\t\t\tupdateOlderEvents(newEvent);\n\t\t\tupdateTimelinePosition(string, newEvent, timelineComponents);\n\t\t}\n\t}\n\n\tfunction updateTimelinePosition(string, event, timelineComponents) {\n\t\t//translate timeline to the left/right according to the position of the selected event\n\t\tvar eventStyle = window.getComputedStyle(event.get(0), null),\n\t\t\teventLeft = Number(eventStyle.getPropertyValue(\"left\").replace('px', '')),\n\t\t\ttimelineWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')),\n\t\t\ttimelineTotWidth = Number(timelineComponents['eventsWrapper'].css('width').replace('px', ''));\n\t\tvar timelineTranslate = getTranslateValue(timelineComponents['eventsWrapper']);\n\n        if( (string == 'next' && eventLeft > timelineWidth - timelineTranslate) || (string == 'prev' && eventLeft < - timelineTranslate) ) {\n        \ttranslateTimeline(timelineComponents, - eventLeft + timelineWidth/2, timelineWidth - timelineTotWidth);\n        }\n\t}\n\n\tfunction translateTimeline(timelineComponents, value, totWidth) {\n\t\tvar eventsWrapper = timelineComponents['eventsWrapper'].get(0);\n\t\tvalue = (value > 0) ? 0 : value; //only negative translate value\n\t\tvalue = ( !(typeof totWidth === 'undefined') &&  value < totWidth ) ? totWidth : value; //do not translate more than timeline width\n\t\tsetTransformValue(eventsWrapper, 'translateX', value+'px');\n\t\t//update navigation arrows visibility\n\t\t(value == 0 ) ? timelineComponents['timelineNavigation'].find('.prev').addClass('inactive') : timelineComponents['timelineNavigation'].find('.prev').removeClass('inactive');\n\t\t(value == totWidth ) ? timelineComponents['timelineNavigation'].find('.next').addClass('inactive') : timelineComponents['timelineNavigation'].find('.next').removeClass('inactive');\n\t}\n\n\tfunction updateFilling(selectedEvent, filling, totWidth) {\n\t\t//change .filling-line length according to the selected event\n\t\tvar eventStyle = window.getComputedStyle(selectedEvent.get(0), null),\n\t\t\teventLeft = eventStyle.getPropertyValue(\"left\"),\n\t\t\teventWidth = eventStyle.getPropertyValue(\"width\");\n\t\teventLeft = Number(eventLeft.replace('px', '')) + Number(eventWidth.replace('px', ''))/2;\n\t\tvar scaleValue = eventLeft/totWidth;\n\t\tsetTransformValue(filling.get(0), 'scaleX', scaleValue);\n\t}\n\n\tfunction setDatePosition(timelineComponents, min) {\n\t\tfor (i = 0; i < timelineComponents['timelineDates'].length; i++) { \n\t\t    var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),\n\t\t    \tdistanceNorm = Math.round(distance/timelineComponents['eventsMinLapse']) + 2;\n\t\t    timelineComponents['timelineEvents'].eq(i).css('left', distanceNorm*min+'px');\n\t\t}\n\t}\n\n\tfunction setTimelineWidth(timelineComponents, width) {\n\t\tvar timeSpan = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][timelineComponents['timelineDates'].length-1]),\n\t\t\ttimeSpanNorm = timeSpan/timelineComponents['eventsMinLapse'],\n\t\t\ttimeSpanNorm = Math.round(timeSpanNorm) + 4,\n\t\t\ttotalWidth = timeSpanNorm*width;\n\t\ttimelineComponents['eventsWrapper'].css('width', totalWidth+'px');\n\t\tupdateFilling(timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents['fillingLine'], totalWidth);\n\t\tupdateTimelinePosition('next', timelineComponents['eventsWrapper'].find('a.selected'), timelineComponents);\n\t\n\t\treturn totalWidth;\n\t}\n\n\tfunction updateVisibleContent(event, eventsContent) {\n\t\tvar eventDate = event.data('date'),\n\t\t\tvisibleContent = eventsContent.find('.selected'),\n\t\t\tselectedContent = eventsContent.find('[data-date=\"'+ eventDate +'\"]'),\n\t\t\tselectedContentHeight = selectedContent.height();\n\n\t\tif (selectedContent.index() > visibleContent.index()) {\n\t\t\tvar classEnetering = 'selected enter-right',\n\t\t\t\tclassLeaving = 'leave-left';\n\t\t} else {\n\t\t\tvar classEnetering = 'selected enter-left',\n\t\t\t\tclassLeaving = 'leave-right';\n\t\t}\n\n\t\tselectedContent.attr('class', classEnetering);\n\t\tvisibleContent.attr('class', classLeaving).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(){\n\t\t\tvisibleContent.removeClass('leave-right leave-left');\n\t\t\tselectedContent.removeClass('enter-left enter-right');\n\t\t});\n\t\teventsContent.css('height', selectedContentHeight+'px');\n\t}\n\n\tfunction updateOlderEvents(event) {\n\t\tevent.parent('li').prevAll('li').children('a').addClass('older-event').end().end().nextAll('li').children('a').removeClass('older-event');\n\t}\n\n\tfunction getTranslateValue(timeline) {\n\t\tvar timelineStyle = window.getComputedStyle(timeline.get(0), null),\n\t\t\ttimelineTranslate = timelineStyle.getPropertyValue(\"-webkit-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-moz-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-ms-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-o-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"transform\");\n\n        if( timelineTranslate.indexOf('(') >=0 ) {\n        \tvar timelineTranslate = timelineTranslate.split('(')[1];\n    \t\ttimelineTranslate = timelineTranslate.split(')')[0];\n    \t\ttimelineTranslate = timelineTranslate.split(',');\n    \t\tvar translateValue = timelineTranslate[4];\n        } else {\n        \tvar translateValue = 0;\n        }\n\n        return Number(translateValue);\n\t}\n\n\tfunction setTransformValue(element, property, value) {\n\t\telement.style[\"-webkit-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-moz-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-ms-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-o-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"transform\"] = property+\"(\"+value+\")\";\n\t}\n\n\t//based on http://stackoverflow.com/questions/542938/how-do-i-get-the-number-of-days-between-two-dates-in-javascript\n\tfunction parseDate(events) {\n\t\tvar dateArrays = [];\n\t\tevents.each(function(){\n\t\t\tvar singleDate = $(this),\n\t\t\t\tdateComp = singleDate.data('date').split('T');\n\t\t\tif( dateComp.length > 1 ) { //both DD/MM/YEAR and time are provided\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = dateComp[1].split(':');\n\t\t\t} else if( dateComp[0].indexOf(':') >=0 ) { //only time is provide\n\t\t\t\tvar dayComp = [\"2000\", \"0\", \"0\"],\n\t\t\t\t\ttimeComp = dateComp[0].split(':');\n\t\t\t} else { //only DD/MM/YEAR\n\t\t\t\tvar dayComp = dateComp[0].split('/'),\n\t\t\t\t\ttimeComp = [\"0\", \"0\"];\n\t\t\t}\n\t\t\tvar\tnewDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]);\n\t\t\tdateArrays.push(newDate);\n\t\t});\n\t    return dateArrays;\n\t}\n\n\tfunction daydiff(first, second) {\n\t    return Math.round((second-first));\n\t}\n\n\tfunction minLapse(dates) {\n\t\t//determine the minimum distance among events\n\t\tvar dateDistances = [];\n\t\tfor (i = 1; i < dates.length; i++) { \n\t\t    var distance = daydiff(dates[i-1], dates[i]);\n\t\t    dateDistances.push(distance);\n\t\t}\n\t\treturn Math.min.apply(null, dateDistances);\n\t}\n\n\t/*\n\t\tHow to tell if a DOM element is visible in the current viewport?\n\t\thttp://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n\t*/\n\tfunction elementInViewport(el) {\n\t\tvar top = el.offsetTop;\n\t\tvar left = el.offsetLeft;\n\t\tvar width = el.offsetWidth;\n\t\tvar height = el.offsetHeight;\n\n\t\twhile(el.offsetParent) {\n\t\t    el = el.offsetParent;\n\t\t    top += el.offsetTop;\n\t\t    left += el.offsetLeft;\n\t\t}\n\n\t\treturn (\n\t\t    top < (window.pageYOffset + window.innerHeight) &&\n\t\t    left < (window.pageXOffset + window.innerWidth) &&\n\t\t    (top + height) > window.pageYOffset &&\n\t\t    (left + width) > window.pageXOffset\n\t\t);\n\t}\n\n\tfunction checkMQ() {\n\t\t//check if mobile or desktop device\n\t\treturn window.getComputedStyle(document.querySelector('.cd-horizontal-timeline'), '::before').getPropertyValue('content').replace(/'/g, \"\").replace(/\"/g, \"\");\n\t}\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/CHANGELOG.md",
    "content": "### Version 1.0.2 - March 03, 2014\n\n* Better HiDPI screens support @ddctd143\n\n### Version 2.0.0 RC - January 23, 2014\n\n* Three ways to set an options: global object (`window.icheck`), data attributes (`<input data-checkedClass=\"checked\"`) and direct JavaScript object (`$(input).icheck({ options })`)\n* Huge performance boost (takes less than 1s to customize 1000 inputs)\n* Minimized number of function calls (some slow jQuery functions are replaced with a faster vanilla alternatives without using any dependencies)\n* AMD module definition support (both for jQuery and Zepto)\n* Unblocked native events - iCheck 2.x doesn't stop your newly or past binded events from being processed\n* Pointer events support - full support for phones and tablets that use Windows OS (such as Lumia, HP tablets, desktops with a touch screen, etc)\n* WebOS and Firefox OS support\n* New methods: `$(input).icheck('data')` to get all the options were used for customization (also stores a current states values - `checked`, `disabled` and `indeterminate`), `$('input').icheck('styler')` to get a wrapper div (that's used for customization)\n* Better handling of the `indeterminate` state\n* Ability to set callbacks in three ways: global object, direct JavaScript object or using bind method (`$(input).on(callback)`)\n* Ability to switch off some of the callbacks when you don't need them (global or per input)\n* Inline styles dropped - iCheck won't add any inline styles to the elements until it's highly needed (`cursor` or `area` option)\n* Fast click support - removes a 300ms click delay on mobile devices without any dependencies (iCheck compatible with the `fastclick` plugin), see the `tap` option\n* Ability to ignore customization for the selected inputs using `init` option (if set to `false`) \n* Optimized event bindings - iCheck binds only a few global events for the all inputs (doesn't increase on elements addition), instead of a couple for the each customized element\n* Doesn't store tons of arbitrary data (event in jQuery or Zepto cache), defines customized elements by specific classnames \n* Extra `ins` tag is dropped (less DOM modifications), iCheck wraps each input with a single `div` and doesn't use any extra markup for the any option\n* Optimized reflows and repaints on init and state changes \n* Better options handling - iCheck will never run a single line of JS to process an options that are off or empty \n* Ability to auto customize the ajax loaded inputs without using any extra code (`autoAjax` option, on by default)\n* Auto inits on domready using the specified selector (`autoInit` option) - searches for `.icheck` by default. Classnames can be changed using the `window.classes` object\n* Memory usage optimization - uses only a few amount of memory (works well on low-memory devices)\n* Betters callbacks architecture - these are fired only after changes are applied to the input\n* Ability to set a mirror classes between the inputs and assigned labels using the `hoverLabelClass`, `focusLabelClass`, `activeLabelClass`, `checkedLabelClass`, `disabledLabelClass` and `indeterminateLabelClass` options (`mirror` option should be set to `true` to make this happen)\n* Fixes some issues of the mobile devices\n* Fixes the issues of the wrapper labels, that loose a click ability in some browsers (if no `for` attribute is set)\n* Some other options and improvements\n* Various bug fixes\n\nNote: extended docs and usage examples will be available later.\n\n### Version 1.0.1 - December 19, 2013\n\n* Added Bower support\n* Added to jQuery plugin registry\n\n### Version 1.0.0 - December 18, 2013\n\n* Added ARIA attributes support (for VoiceOver and others) @myfreeweb\n* Added Amazon Kindle support @skinofstars\n* Fixed clickable links inside labels @LeGaS\n* Fixed lines separation between labels and inputs\n* Merged two versions of the plugin (jQuery and Zepto) into one\n* Fixed demo links\n* Fixed callbacks @PepijnSenders\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/bower.json",
    "content": "{\n  \"name\": \"iCheck\",\n  \"version\": \"1.0.2\",\n  \"description\": \"Highly customizable checkboxes and radio buttons (jQuery & Zepto)\",\n  \"keywords\": [\n    \"icheck\",\n    \"checkbox\",\n    \"radio\",\n    \"input\",\n    \"field\",\n    \"form\",\n    \"custom\",\n    \"replacement\",\n    \"accessibility\",\n    \"skins\",\n    \"ui\",\n    \"checked\",\n    \"disabled\",\n    \"indeterminate\"\n  ],\n  \"main\": [\n    \"./icheck.min.js\"\n  ],\n  \"dependencies\": {\n    \"jquery\": \">=1.7\"\n  },\n  \"ignore\": [\n    \".gitignore\",\n    \"CHANGELOG.md\",\n    \"README.md\",\n    \"demo/\"\n  ],\n  \"license\": \"MIT\",\n  \"authors\": [\n    {\n      \"name\": \"Damir Sultanov\",\n      \"email\": \"info@fronteed.com\",\n      \"homepage\": \"http://fronteed.com/\"\n    }\n  ],\n  \"homepage\": \"http://fronteed.com/iCheck/\"\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/demo/css/custom.css",
    "content": "@import url(\"normalize.css\");\n@font-face{font-family:'MontserratRegular';src:url(\"./montserrat-regular.eot\");src:url(\"./montserrat-regular.eot?#iefix\") format('embedded-opentype'),url(\"./montserrat-regular.woff\") format('woff'),url(\"./montserrat-regular.ttf\") format('truetype'),url(\"./montserrat-regular.svg#MontserratRegular\") format('svg');font-style:normal;font-weight:normal}\n@font-face{font-family:'MontserratBold';src:url(\"./montserrat-bold.eot\");src:url(\"./montserrat-bold.eot?#iefix\") format('embedded-opentype'),url(\"./montserrat-bold.woff\") format('woff'),url(\"./montserrat-bold.ttf\") format('truetype'),url(\"./montserrat-bold.svg#MontserratBold\") format('svg');font-style:normal;font-weight:bold}\nhtml,body{height:100%}\nbody{font:14px/20px 'MontserratRegular',Helvetica,Arial,sans-serif;color:#222;background:#ebe7df url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAFZCAIAAAA96mnzAAACKklEQVR4Xn2VUW7kMAxD+QLf/1x7gv71LNwdKTLhZFtggMCwSVEUPdb3159/v0uSrM8HtGRZuoQk1R69J12o9ixJWvSnVyfLdbNw0XAXWe1fIL8BoqmNGiV/cHc9Gq4NXxLKHhteRyLpA28cl0SLdx0BckSWL4gkPlIVTg1nN9Ys3iyWI5AGDA5xOXB5BJaWmOw6KSLeU6+0P50QshQyEL2im/YMIL60dTSZ3RXenlkiJpMj8XPMAl1FtjMRW19NxzOE5VGWPVGrc7aSJgz1Y9ku57mpYSwn1h0ivFOXxoCKMCXiahbbZNIZR+tkphllPsomipCwb4GMkXTmPfVg40Jt2y4RQM/PqX5JTM4iiTN8Zz1XvbIAEEvoEW+3nxTLL3lB7t7J3WwyI7g5OVxKIeFEH4FIGLC9I+XqvSd4AxJM5O6WTPr54RAxLG44FVrEuz+kFdXyLiuX6kLPVLZL2ISlcHNlBIKm5rR8nEi9wJeA6Y8JZlJOyDiin0K5ag+AXHtALBicXasjIUu9h0STBbCMU+89gMnu/J05MU1QWqdbPMRPIZIzDgsi8Olg5t7wHhUg/pv5RUzO+BHDmczHkAfZWxlSYgNI5Ig5XRoc66dW9L45eHDkbkqCO7RLG5cna/HD7YhZnfINkFo8iNyj5kx6pFrxNGRlfhV2e1Zt5DnGU8T7Tud1ivi8jU8/3Zy88pkn6+zdXiJ7AVSFBZA3VcwDfXtt5UUHS38B35hQVuJip4MAAAAASUVORK5CYII=\") repeat-x;*background-image:url(\"ie/header-line.png\")}\na{color:#222;text-decoration:none;border-bottom:1px solid #bbb;}\na:hover{color:#000}\na,.self{-webkit-transition:color .1s;-moz-transition:color .1s;-ms-transition:color .1s;-o-transition:color .1s;transition:color .1s}\n.self{color:#333;border-bottom:1px dotted #aaa;cursor:pointer;}\n.self:hover{color:#000}\nstrong{font-family:'MontserratBold',Helvetica,Arial,sans-serif;font-weight:700}\np{margin:0 0 8px}\nlabel{cursor:pointer}\nh1,h2,h3,h4{margin:0;font:bold 20px/60px 'MontserratBold',Helvetica,Arial,sans-serif}\nh2{height:60px;text-align:center;text-transform:uppercase}\nh4{font-size:18px;line-height:24px}\nul{margin:0;padding:0;list-style:none}\ntable{width:100%;margin-bottom:21px}\nth,td{padding:11px 20px 12px;vertical-align:top;font-weight:normal;text-align:left;border-bottom:2px solid #e7e5e0;}\nthead th,thead td{background:#f3f2ef}\nth{white-space:nowrap}\ntd{width:100%}\n.focus{outline:1px dotted rgba(0,0,0,0.5) !important}\n.clear{position:relative;*zoom:1;}\n.clear:before,.clear:after{content:'';display:table;clear:both}\n.layout{width:930px;margin:0 auto;padding:0 15px}\n.header{padding:115px 0 73px;color:#fff;text-align:center;}\n.header h1,.header strong{letter-spacing:-1px;text-transform:uppercase}\n.header h1{padding-bottom:23px;font-size:22px;line-height:28px}\n.header h3{position:relative;padding:35px 0 17px;font-size:120px;line-height:140px;letter-spacing:-5px;}\n.header h3 span{font-size:30px;line-height:40px;letter-spacing:0;margin-left:-10px;vertical-align:baseline;}\n.header h3:before{content:'';display:inline-block;width:72px;height:64px;margin-right:32px;vertical-align:middle;background:url(\"icheck.png\")}\n.header h3:after{content:'';position:absolute;top:0;left:50%;width:100px;margin-left:-50px;border-top:3px solid #fff}\n.header strong{font:24px/30px 'MontserratRegular',Helvetica,Arial,sans-serif;}\n.header strong a{color:#fff;border-bottom-color:#fff}\n.features{position:relative;font-size:16px;color:#555;background:#fff;}\n.features .self{color:#555;border-bottom-color:#bbb;}\n.features .self:hover{color:#222}\n.features .arrows{top:0}\n.features:hover .arrows .bottom{left:0}\n.features h2{color:#fff;background:#2489c5}\n.features ul{padding:44px 60px 36px}\n.features li{padding:0 0 9px 36px;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABI0lEQVR4XpXSP0vDUBjF4ZtLkIr4EYzduogdXJTWWV2FLMVNoQrdAhlUUFAEcejo1q13svgFBAUdxA/g30kcdQoIIlL9DWcKuZEeeOCl99w3gTSI49h4MoFb/KCJz6KShS/rOh/TbEZZECLBiSQIR1nQQgAnAVr/LZjEnIq76OJbutjRGR26isUB3pDhBikucWoUzVdI1cl05zBk2MI5jvCKIfL5QluzxTS20bY6WENdl0ujTl13Ni3DABtwWEFp1HG6M7Aq9NHBGRbgy7w6HfTzX6GHCyyXPV2dnu9/MIUX+PIMOkRsbq7hHkZmxciDOrZoQRUVPCGCw504RDobR7VoQQ0f2Mejls1IRb/t4R10CcLc6/2igSVcw8gqFnEMOnSVPxQqQaPw2y7fAAAAAElFTkSuQmCC\") 0 1px no-repeat;*background-image:url(\"ie/icon-star.png\");}\n.features li.offset{margin-top:20px}\n.mark{padding:0 2px;color:#777;background:#e7e5e0;}\n.skin-polaris .mark{background:#232830}\n.skin-futurico .mark{background:#25262a}\n.social{height:60px;margin-bottom:60px;padding:0 60px;font-size:16px;color:#555;background:#f5f3ef;}\n.social a{color:#777;border-bottom-color:#ccc;}\n.social a:hover{color:#444}\n.social .left{float:left;padding-top:19px;}\n.social .left li{float:left;padding-right:30px;}\n.social .left li a{position:relative}\n.social .right{float:right;padding-top:20px;}\n.social .right li{float:right;padding-left:10px}\n.social .right.local{padding-top:19px;}\n.social .right.local li{padding-left:30px;font-size:14px}\n.demo-holder{margin-bottom:97px}\n.demo-title{padding-bottom:36px;font-size:26px;letter-spacing:-1px}\n.demo{position:relative;}\n.demo:hover .arrows .top,.demo:hover .arrows .bottom{left:0}\n.demo-list{position:relative;margin-right:360px;padding:33px 57px 17px;color:#555;background:#fff;border:3px solid #ddd8ce;}\n.demo-list ul{float:right;white-space:nowrap;}\n.demo-list ul:first-child{float:left}\n.demo-list ul li{position:relative;padding:0 0 18px 42px}\n.demo-list ul input{position:absolute;top:4px;left:0}\n.demo-list ul .icheckbox_square-blue,.demo-list ul .iradio_square-blue{position:absolute;top:-1px;left:0}\n.demo-list ul span{color:#bbb}\n.demo-methods{padding:21px 360px 0 0;}\n.demo-methods .mark{background:#d3cfc6}\n.demo-methods dt{position:relative;padding:17px 150px 18px 0;font:16px/24px 'MontserratRegular',Helvetica,Arial,sans-serif;color:#444;border-bottom:3px solid #ddd8ce;}\n.demo-methods dt .self{cursor:pointer;}\n.demo-methods dt .self:hover{color:#222}\n.demo-methods dt .code{position:absolute;right:0;bottom:18px;color:#777;}\n.demo-methods dt .code .self:hover{color:#444}\n.demo-methods dd{position:relative;display:none;margin:0;background:#fff;border:3px solid #ddd8ce;border-top:none;}\n.demo-methods dd:before{content:'';position:absolute;top:-13px;left:0;width:0;height:0;border:5px solid transparent;border-bottom-color:#ddd8ce;border-left-color:#ddd8ce}\n.demo-methods dd .markup{margin:0;color:#888;background:#f5f3ef;border:none;}\n.demo-methods dd .markup .comment{color:#aaa}\n.demo-callbacks{position:absolute;top:0;right:0;bottom:0;width:300px;color:#aaa;background:#232323;border:3px solid #ddd8ce;}\n.demo-callbacks h2{color:#fff;background:#6a5a8c}\n.demo-callbacks ul{position:absolute;top:60px;width:100%;bottom:0;overflow:auto;}\n.demo-callbacks ul::-webkit-scrollbar{width:10px;background:none;}\n.demo-callbacks ul::-webkit-scrollbar-track{background:none;border:none;}\n.demo-callbacks ul::-webkit-scrollbar-track-piece:disabled{display:none !important;}\n.demo-callbacks ul::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border:none;}\n.demo-callbacks ul::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3);}\n.demo-callbacks ul li{margin-top:-1px;padding:13px 20px 15px;border-top:1px solid #2e2e2e;}\n.demo-callbacks ul li span{color:#888}\n.skins{position:relative;*zoom:1;}\n.skins h2{position:absolute;top:-38px;right:0;left:0;font-size:24px;text-align:center}\n.arrows{position:absolute;top:3px;left:-60px;width:60px;overflow:hidden;}\n.arrows .top,.arrows .bottom{position:relative;left:60px;width:60px;height:60px;cursor:pointer;-webkit-transition:left .3s,background-color .2s;-moz-transition:left .3s,background-color .2s;-ms-transition:left .3s,background-color .2s;-o-transition:left .3s,background-color .2s;transition:left .3s,background-color .2s}\n.arrows .top{background:#83b3be url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAdklEQVR4Xo3MuwmFQBiE0b0FmAuutnRBsAARLMTYRzvWItiEYLq/s6CYyMwGXzTDcWbG8mhEf/ZjQIV2ZCigjiASMAVJIAVKAQ4FKWBDJVoYpAB/7z8GRaAQgBNQG8dZA28f0BmHBgUCKGh9hhpNKH8BWY8GlF2OH3hCC1zmdAAAAABJRU5ErkJggg==\") 50% no-repeat;*background-image:url(\"ie/arrow-top.png\");}\n.arrows .top:hover{background-color:#6ba4b1}\n.arrows .bottom{background:#e2b78d url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAf0lEQVR4Xo3MzQmEQBCE0TGAvQuOpiQIBiCCgXj2J52NRTAJwev0Vh+WOgjlNHyHguYFM/M6tKLSd2YTmtHHR48S8jtQzAB2430d2bgJvQLsdqRCZwZUPAFLaPjrjYAUMKLgwBtUK4CIhi4BEFGQBohISANEJKQBIqqIFtSqvx/0bXhCCUrgiAAAAABJRU5ErkJggg==\") 50% no-repeat;*background-image:url(\"ie/arrow-bottom.png\");}\n.arrows .bottom:hover{background-color:#dba571}\n@media screen and (max-width:1049px){.arrows,.fork-me{display:none}\n}.skin{position:relative;margin-bottom:40px;}\n.skin:hover .arrows .top,.skin:hover .arrows .bottom{left:0}\n.skin h3{position:relative;z-index:20;float:left;height:60px;padding:0 57px;line-height:58px;background:#fff;border:3px solid #ddd8ce;border-bottom:none;}\n.skin h3:before{content:'';position:absolute;top:100%;left:0;width:100%;height:2px;margin-top:-1px;background:#fff}\n.skin.skin-polaris h3{color:#cacdd1;background:#2c323c;}\n.skin.skin-polaris h3:before{background:#2c323c}\n.skin.skin-futurico h3{color:#c3c3c3;background:#2e3035;}\n.skin.skin-futurico h3:before{background:#2e3035}\n.skin dl{z-index:10;width:100%;margin:0}\n.skin dt{position:relative;top:-53px;right:-3px;float:right;height:47px;margin-right:-3px;padding:0 57px;line-height:47px;border:3px solid #ddd8ce;cursor:pointer;}\n.skin dt:hover{background:#f0ede7;border-bottom:3px solid #ddd8ce}\n.skin dt.selected{height:50px;background:#fff;border-bottom:none;cursor:default;}\n.skin dt.selected:before{content:'';position:absolute;top:100%;left:0;width:100%;height:2px;margin-top:-1px;background:#fff}\n.skin.skin-polaris dt{color:#cacdd1;background:#647083;}\n.skin.skin-polaris dt:hover{background:#4a5361}\n.skin.skin-polaris dt.selected{background:#2c323c;}\n.skin.skin-polaris dt.selected:before{background:#2c323c}\n.skin.skin-futurico dt{color:#c3c3c3;background:#676c77;}\n.skin.skin-futurico dt:hover{background:#4b4e56}\n.skin.skin-futurico dt.selected{background:#2e3035;}\n.skin.skin-futurico dt.selected:before{background:#2e3035}\n.skin dd{position:relative;display:none;float:left;width:100%;margin:-3px -100% 0 0;overflow:hidden;color:#444;background:#fff;border:3px solid #ddd8ce;}\n.skin dd.selected{display:block}\n.skin dd a{color:#444;}\n.skin dd a:hover{color:#111}\n.skin.skin-polaris dd{color:#7a828b;background:#2c323c;}\n.skin.skin-polaris dd a{color:#7a828b;border-bottom-color:#4e596b;}\n.skin.skin-polaris dd a:hover{color:#a2a7ae}\n.skin.skin-futurico dd{color:#888;background:#2e3035;}\n.skin.skin-futurico dd a{color:#888;border-bottom-color:#545861;}\n.skin.skin-futurico dd a:hover{color:#aaa}\n.skin-section{float:left;padding:42px 0 31px 57px;line-height:18px;}\n.skin-section h4{padding-bottom:18px;}\n.skin-polaris .skin-section h4{color:#959ba2}\n.skin-futurico .skin-section h4{color:#a0a0a0}\n.skin-section .list{float:left;padding-right:60px;}\n.skin-section .list li{position:relative;padding-bottom:15px}\n.skin-minimal .skin-section .list li{padding-left:38px}\n.skin-square .skin-section .list li{padding-left:42px}\n.skin-flat .skin-section .list li,.skin-line .skin-section label{padding-left:40px}\n.skin-line .skin-section h4{padding-bottom:24px}\n.skin-line .skin-section .list{padding-right:40px;}\n.skin-line .skin-section .list li{padding-bottom:10px}\n.skin-polaris .skin-section .list li{padding-left:37px}\n.skin-futurico .skin-section .list li{padding-left:36px}\n.icheckbox_minimal,.icheckbox_minimal-red,.icheckbox_minimal-green,.icheckbox_minimal-blue,.icheckbox_minimal-aero,.icheckbox_minimal-grey,.icheckbox_minimal-orange,.icheckbox_minimal-yellow,.icheckbox_minimal-pink,.icheckbox_minimal-purple,.iradio_minimal,.iradio_minimal-red,.iradio_minimal-green,.iradio_minimal-blue,.iradio_minimal-aero,.iradio_minimal-grey,.iradio_minimal-orange,.iradio_minimal-yellow,.iradio_minimal-pink,.iradio_minimal-purple{position:absolute;top:1px;left:0}\n.skin input[type=checkbox],.skin input[type=radio]{position:absolute;top:2px;left:0}\n.icheckbox_square,.icheckbox_square-red,.icheckbox_square-green,.icheckbox_square-blue,.icheckbox_square-aero,.icheckbox_square-grey,.icheckbox_square-orange,.icheckbox_square-yellow,.icheckbox_square-pink,.icheckbox_square-purple,.iradio_square,.iradio_square-red,.iradio_square-green,.iradio_square-blue,.iradio_square-aero,.iradio_square-grey,.iradio_square-orange,.iradio_square-yellow,.iradio_square-pink,.iradio_square-purple{position:absolute;top:-1px;left:0}\n.icheckbox_flat,.icheckbox_flat-red,.icheckbox_flat-green,.icheckbox_flat-blue,.icheckbox_flat-aero,.icheckbox_flat-grey,.icheckbox_flat-orange,.icheckbox_flat-yellow,.icheckbox_flat-pink,.icheckbox_flat-purple,.iradio_flat,.iradio_flat-red,.iradio_flat-green,.iradio_flat-blue,.iradio_flat-aero,.iradio_flat-grey,.iradio_flat-orange,.iradio_flat-yellow,.iradio_flat-pink,.iradio_flat-purple{position:absolute;top:0;left:0}\n.icheckbox_polaris,.iradio_polaris{position:absolute;top:-4px;left:-6px}\n.icheckbox_futurico,.iradio_futurico{position:absolute;top:2px;left:0}\n.skin-states{float:right;padding-right:57px;padding-left:0;}\n.skin-states .state{cursor:default !important}\n.skin-states .list{padding-right:0}\n.skin-minimal .skin-states .list li{padding-left:71px}\n.skin-square .skin-states .list li{padding-left:79px}\n.skin-flat .skin-states .list li{padding-left:75px}\n.skin-line .skin-states .list{padding-right:0}\n.skin-polaris .skin-states .list li{padding-left:69px}\n.skin-futurico .skin-states .list li{padding-left:67px}\n.skin-states .iradio_minimal,.skin-states .iradio_minimal-red,.skin-states .iradio_minimal-green,.skin-states .iradio_minimal-blue,.skin-states .iradio_minimal-aero,.skin-states .iradio_minimal-grey,.skin-states .iradio_minimal-orange,.skin-states .iradio_minimal-yellow,.skin-states .iradio_minimal-pink,.skin-states .iradio_minimal-purple{left:33px}\n.skin-states .iradio_square,.skin-states .iradio_square-red,.skin-states .iradio_square-green,.skin-states .iradio_square-blue,.skin-states .iradio_square-aero,.skin-states .iradio_square-grey,.skin-states .iradio_square-orange,.skin-states .iradio_square-yellow,.skin-states .iradio_square-pink,.skin-states .iradio_square-purple{left:37px}\n.skin-states .iradio_flat,.skin-states .iradio_flat-red,.skin-states .iradio_flat-green,.skin-states .iradio_flat-blue,.skin-states .iradio_flat-aero,.skin-states .iradio_flat-grey,.skin-states .iradio_flat-orange,.skin-states .iradio_flat-yellow,.skin-states .iradio_flat-pink,.skin-states .iradio_flat-purple{left:35px}\n.skin-states .iradio_polaris{left:26px}\n.skin-states .iradio_futurico{left:31px}\n.colors{clear:both;padding:24px 0 9px;}\n.skin-line .colors{padding-top:28px}\n.colors strong{float:left;line-height:20px;margin-right:20px}\n.colors li{position:relative;float:left;width:16px;height:16px;margin:2px 1px 0 0;background:#000;cursor:pointer;filter:alpha(opacity=50);opacity:.5;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-ms-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s;}\n.colors li:hover{filter:alpha(opacity=100);opacity:1}\n.colors li.active{height:20px;margin-top:0;filter:alpha(opacity=75);opacity:.75}\n.colors li.red{background:#d54e21}\n.colors li.green{background:#78a300}\n.colors li.blue{background:#0e76a8}\n.colors li.aero{background:#9cc2cb}\n.colors li.grey{background:#73716e}\n.colors li.orange{background:#f70}\n.colors li.yellow{background:#fc0}\n.colors li.pink{background:#ff66b5}\n.colors li.purple{background:#6a5a8c}\n.skin-square .colors li.red{background:#e56c69}\n.skin-square .colors li.green{background:#1b7e5a}\n.skin-square .colors li.blue{background:#2489c5}\n.skin-square .colors li.aero{background:#9cc2cb}\n.skin-square .colors li.grey{background:#73716e}\n.skin-square .colors li.yellow{background:#fc3}\n.skin-square .colors li.pink{background:#a77a94}\n.skin-square .colors li.purple{background:#6a5a8c}\n.skin-square .colors li.orange{background:#f70}\n.skin-flat .colors li.red{background:#ec7063}\n.skin-flat .colors li.green{background:#1abc9c}\n.skin-flat .colors li.blue{background:#3498db}\n.skin-flat .colors li.grey{background:#95a5a6}\n.skin-flat .colors li.orange{background:#f39c12}\n.skin-flat .colors li.yellow{background:#f1c40f}\n.skin-flat .colors li.pink{background:#af7ac5}\n.skin-flat .colors li.purple{background:#8677a7}\n.skin-line .colors li.yellow{background:#ffc414}\n.skins-info{padding:13px 0 57px;font-size:16px;line-height:22px;text-align:center;}\n.skins-info p{margin-bottom:17px}\n.skins-info .skins-banner{margin:34px 0 3px;}\n.skins-info .skins-banner a{display:block;width:728px;height:90px;margin:0 auto;overflow:hidden;text-indent:100%;white-space:nowrap;background:url(banner.jpg);-webkit-transition:opacity 0.4s ease;-moz-transition:opacity 0.4s ease;-o-transition:opacity 0.4s ease;transition:opacity 0.4s ease;border:none;}\n.skins-info .skins-banner a:hover{opacity:.8;}\n.skin-pre{padding:43px 60px 0}\n.skin-usage{padding:19px 60px 8px;list-style:decimal outside;}\n.skin-usage li{margin-bottom:23px}\n.skin-usage .schemes{margin-bottom:-3px;padding:13px 0 0 20px;color:#888;}\n.skin-usage .schemes ul{float:left;padding-right:60px}\n.skin-usage .schemes li{margin:0;padding-bottom:3px}\n.usage{position:relative;margin-bottom:80px;background:#fff;}\n.usage a{border-bottom-color:#ddd}\n.usage .self{border-bottom-color:#bbb}\n.usage .arrows{top:0}\n.usage:hover .arrows .top,.usage:hover .arrows .bottom{left:0}\n.usage h2{color:#fff;background:#1f7f5c}\n.usage h4{margin:26px 0 10px;}\n.usage h4.indeterminate{margin-top:28px}\n.usage p{margin-bottom:5px;}\n.usage p.offset{margin-top:10px}\n.usage p.callbacks-info{margin-bottom:19px}\n.usage p.methods-info{margin-bottom:10px}\n.usage p.methods-callback{margin-top:10px}\n.usage p.issue-tracker{margin-top:31px}\n.usage .markup{margin:9px 0 16px}\n.usage .usage-inner{font-size:15px;line-height:23px;padding:41px 60px 39px}\n.markup{margin:10px 0 18px;padding:8px 0 9px 17px;font:14px/20px 'MontserratRegular',Helvetica,Arial,sans-serif;color:#777;background:#e7e5e0;border-left:3px solid #d7d5cb;}\n.markup .comment{color:#999;}\n.markup .comment .self{color:#555;}\n.markup .comment .self:hover{color:#333}\n.skin-polaris .markup{background:#232830;border-left-color:#1f232a}\n.skin-futurico .markup{background:#25262a;border-left-color:#202225}\n.skin-polaris .markup .comment,.skin-futurico .markup .comment{color:#555}\n.browsers{margin-bottom:74px;}\n.browsers h2{margin-bottom:29px;font-size:24px}\n.browsers-inner{padding:0 60px;font-size:15px;line-height:23px;}\n.browsers-inner p{margin-bottom:15px}\n.benefits{position:relative;margin-bottom:59px;color:#888;background:#232323;}\n.benefits .arrows{top:0}\n.benefits:hover .arrows .top,.benefits:hover .arrows .bottom{left:0}\n.benefits h2{color:#fff;background:#6a5b8c}\n.benefits a{color:#888;border-bottom-color:#444;}\n.benefits a:hover{color:#aaa}\n.benefits .mark{color:#777;background:#393939}\n.benefits-inner{padding:41px 60px 29px;font-size:15px;line-height:23px;}\n.benefits-inner p{margin-bottom:15px}\n.benefits-inner ul{margin:-10px 0 15px}\n.download{height:63px;text-align:center;}\n.download a{display:block;height:60px;font-size:18px;line-height:58px;color:#fff;border-bottom:0 solid #e24f49;background:#e76b66;-webkit-transition:border-bottom .2s;-moz-transition:border-bottom .2s;-ms-transition:border-bottom .2s;-o-transition:border-bottom .2s;transition:border-bottom .2s;}\n.download a:before{content:'';display:inline-block;width:26px;height:26px;margin-right:12px;background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAACYUlEQVR4Xr3VPWhTURjH4VOt0ES7ZRJbEJpsNsaimx9E0GpRCdgU/NhsRAdNBYcK0RirQcSkIIK2cRBRiragVayDhqBDLVWatFvsIKK2UMEp4KBcf8N/KNdwvcHWAw8c/rzvebk5yU2dZVnmf6wVNdb70Ca+5Rrkx0e8E/ZkyzCoAyuxBZu17/jXQV34jjwCytowjUk90Ywyo5q8errcDoriPgpoRhEj6MQrGHmpbARF1RbUG3Uz6Bae4iBacQNNSKEPRi4pa1JNq3pGcds+qNrXu4B1CKKCWtZqlPAZO/72RDGsRdKWh5ATIdOSpHpjbu6ojBfYBiPdOIQeHJMeZd0wsh1jKDsNakEc97AHo8o3IYCz2I1nGMYuZQHVGPXs1RlxtNgH+TCFtBpvIqua40ghqkGdOIp27VOqMcigX8PTKIKzWXwZDDbAQhDG5o6yx2iAkQY80T4HYxOEpbP/uCOnN+wq1Nlq6x3qrWp3NIcKJvAWV+FVzU804i6uwyNZZY34BaOeyzpjQmfOLR70DSGcwyxOIa7mAZzHQ+QxLHllCdUYnMYZzOqsjeBsPbp8QFZ7Lw7gCt4jhGu4qCEGa5SVVWPUM4Yjbn5HfrTjNYzk8AAZ5CSjbBBG3qjXr0CqX+YAviJpy6cQg9NKIoJBN6+gIGbwA16kMY5eeGDEo2xcNV71TCPo5qM7iX14hJIueB4XkICRhLJ51ZTUsx8n3AwawmGE8QUhRDR4J4yElUUQUm1YvUPOfxPO4khj66KL70W/m+Z6uF3P0YdJBRVlZqkHlbEezQo+YWHJB8mC1Lx+Ayeq7nRIoewwAAAAAElFTkSuQmCC\");*background-image:url(\"ie/icon-options.png\");vertical-align:middle}\n.download a:hover{border-bottom-width:3px}\n.license{color:#444;text-align:center;padding:30px 0 75px}\n.footer{padding-top:28px;height:60px;color:#666;background:#e2dfd8;}\n.footer ul{float:left;}\n.footer ul li{float:left;padding:2px 10px 0 0}\n.footer ul.local li{padding:0 30px 0 0}\n.footer .code{float:right}\n.footer a{color:#444;}\n.footer a:hover{color:#222}\n.footer-inner{width:930px;margin:0 auto;overflow:hidden}\n.fork-me{position:fixed;*position:absolute;top:0;right:0;width:40px;height:40px;overflow:hidden;text-indent:100%;white-space:nowrap;background:#28545b url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnElEQVR4XqVSgQmEMAyszw/gCI7wK7iBblBHcISfxG6gG/gjuIGO0A3ygaYQCCG2HhweF+6aShsAcDcBJBpuvlwFagqGJwUf5EL6kgV2eEe2yIgc9QI73CMPs8AOywI7nHDSzCxYxcnJ6+hrFnQkJrb2nGclP3Fj+vf0IUV1AgCZHiS86lOObxD4qqSD5mtXmAq1e2fB3vqXact3f/JmXumJlVq1AAAAAElFTkSuQmCC\") 50% no-repeat;*background-image:url(\"ie/icon-fork.png\");}\n.fork-me:hover{background-color:#1f7f5c}\n.skin dt,.fork-me{-webkit-transition:background-color .2s;-moz-transition:background-color .2s;-ms-transition:background-color .2s;-o-transition:background-color .2s;transition:background-color .2s}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/demo/css/custom.styl",
    "content": "/* Reset\n----------------------------------- */\n@import url(\"normalize.css\")\n\n\n/* Fonts\n----------------------------------- */\n$font = 'MontserratRegular'\n$fontBold = 'MontserratBold'\n$stack = $font, Helvetica, Arial, sans-serif\n$stackBold = $fontBold, Helvetica, Arial, sans-serif\n\n@font-face\n\tfont-family $font\n\tsrc url('./montserrat-regular.eot')\n\tsrc url('./montserrat-regular.eot?#iefix') format('embedded-opentype'),\n\t    url('./montserrat-regular.woff') format('woff'),\n\t    url('./montserrat-regular.ttf') format('truetype'),\n\t    url('./montserrat-regular.svg#' + $font + '') format('svg')\n\tfont-style normal\n\tfont-weight normal\n\n@font-face\n\tfont-family $fontBold\n\tsrc url('./montserrat-bold.eot')\n\tsrc url('./montserrat-bold.eot?#iefix') format('embedded-opentype'),\n\t    url('./montserrat-bold.woff') format('woff'),\n\t    url('./montserrat-bold.ttf') format('truetype'),\n\t    url('./montserrat-bold.svg#' + $fontBold + '') format('svg')\n\tfont-style normal\n\tfont-weight bold\n\n\n/* Demo\n----------------------------------- */\nhtml\nbody\n\theight 100%\n\nbody\n\tfont 14px/20px $stack\n\tcolor #222\n\tbackground #ebe7df url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAFZCAIAAAA96mnzAAACKklEQVR4Xn2VUW7kMAxD+QLf/1x7gv71LNwdKTLhZFtggMCwSVEUPdb3159/v0uSrM8HtGRZuoQk1R69J12o9ixJWvSnVyfLdbNw0XAXWe1fIL8BoqmNGiV/cHc9Gq4NXxLKHhteRyLpA28cl0SLdx0BckSWL4gkPlIVTg1nN9Ys3iyWI5AGDA5xOXB5BJaWmOw6KSLeU6+0P50QshQyEL2im/YMIL60dTSZ3RXenlkiJpMj8XPMAl1FtjMRW19NxzOE5VGWPVGrc7aSJgz1Y9ku57mpYSwn1h0ivFOXxoCKMCXiahbbZNIZR+tkphllPsomipCwb4GMkXTmPfVg40Jt2y4RQM/PqX5JTM4iiTN8Zz1XvbIAEEvoEW+3nxTLL3lB7t7J3WwyI7g5OVxKIeFEH4FIGLC9I+XqvSd4AxJM5O6WTPr54RAxLG44FVrEuz+kFdXyLiuX6kLPVLZL2ISlcHNlBIKm5rR8nEi9wJeA6Y8JZlJOyDiin0K5ag+AXHtALBicXasjIUu9h0STBbCMU+89gMnu/J05MU1QWqdbPMRPIZIzDgsi8Olg5t7wHhUg/pv5RUzO+BHDmczHkAfZWxlSYgNI5Ig5XRoc66dW9L45eHDkbkqCO7RLG5cna/HD7YhZnfINkFo8iNyj5kx6pFrxNGRlfhV2e1Zt5DnGU8T7Tud1ivi8jU8/3Zy88pkn6+zdXiJ7AVSFBZA3VcwDfXtt5UUHS38B35hQVuJip4MAAAAASUVORK5CYII=\") repeat-x\n\t*background-image url(ie/header-line.png)\n\na\n\tcolor #222\n\ttext-decoration none\n\tborder-bottom 1px solid #bbb\n\n\t&:hover\n\t\tcolor #000\n\na\n.self\n\t-webkit-transition color .1s\n\t-moz-transition color .1s\n\t-ms-transition color .1s\n\t-o-transition color .1s\n\ttransition color .1s\n\n.self\n\tcolor #333\n\tborder-bottom 1px dotted #aaa\n\tcursor pointer\n\n\t&:hover\n\t\tcolor #000\n\nstrong\n\tfont-family $stackBold\n\tfont-weight 700\n\np\n\tmargin 0 0 8px\n\nlabel\n\tcursor pointer\n\nh1\nh2\nh3\nh4\n\tmargin 0\n\tfont bold 20px/60px $stackBold\n\nh2\n\theight 60px\n\ttext-align center\n\ttext-transform uppercase\n\nh4\n\tfont-size 18px\n\tline-height 24px\n\nul\n\tmargin 0\n\tpadding 0\n\tlist-style none\n\ntable\n\twidth 100%\n\tmargin-bottom 21px\n\nth\ntd\n\tpadding 11px 20px 12px\n\tvertical-align top\n\tfont-weight normal\n\ttext-align left\n\tborder-bottom 2px solid #E7E5E0\n\n\tthead &\n\t\tbackground lighten(#E7E5E0, 50%)\n\nth\n\twhite-space nowrap\n\ntd\n\twidth 100%\n\n.focus\n\toutline 1px dotted rgba(0,0,0,.5) !important\n\n.clear\n\tposition relative\n\t*zoom 1\n\n\t&:before\n\t&:after\n\t\tcontent ''\n\t\tdisplay table\n\t\tclear both\n\n.layout\n\twidth 930px\n\tmargin 0 auto\n\tpadding 0 15px\n\n.header\n\tpadding 115px 0 73px\n\tcolor #fff\n\ttext-align center\n\n\th1\n\tstrong\n\t\tletter-spacing -1px\n\t\ttext-transform uppercase\n\n\th1\n\t\tpadding-bottom 23px\n\t\tfont-size 22px\n\t\tline-height 28px\n\n\th3\n\t\tposition relative\n\t\tpadding 35px 0 17px\n\t\tfont-size 120px\n\t\tline-height 140px\n\t\tletter-spacing -5px\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tdisplay inline-block\n\t\t\twidth 72px\n\t\t\theight 64px\n\t\t\tmargin-right 32px\n\t\t\tvertical-align middle\n\t\t\tbackground url(icheck.png)\n\n\t\t&:after\n\t\t\tcontent ''\n\t\t\tposition absolute\n\t\t\ttop 0\n\t\t\tleft 50%\n\t\t\twidth 100px\n\t\t\tmargin-left -50px\n\t\t\tborder-top 3px solid #fff\n\n\tstrong\n\t\tfont 24px/30px $stack\n\n\t\ta\n\t\t\tcolor #fff\n\t\t\tborder-bottom-color #fff\n\n.features\n\tposition relative\n\tfont-size 16px\n\tcolor #555\n\tbackground #fff\n\n\t.self\n\t\tcolor #555\n\t\tborder-bottom-color #bbb\n\n\t\t&:hover\n\t\t\tcolor #222\n\n\t.arrows\n\t\ttop 0\n\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th2\n\t\tcolor #fff\n\t\tbackground #2489c5\n\n\tul\n\t\tpadding 44px 60px 36px\n\n\tli\n\t\tpadding 0 0 9px 36px\n\t\tbackground url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABI0lEQVR4XpXSP0vDUBjF4ZtLkIr4EYzduogdXJTWWV2FLMVNoQrdAhlUUFAEcejo1q13svgFBAUdxA/g30kcdQoIIlL9DWcKuZEeeOCl99w3gTSI49h4MoFb/KCJz6KShS/rOh/TbEZZECLBiSQIR1nQQgAnAVr/LZjEnIq76OJbutjRGR26isUB3pDhBikucWoUzVdI1cl05zBk2MI5jvCKIfL5QluzxTS20bY6WENdl0ujTl13Ni3DABtwWEFp1HG6M7Aq9NHBGRbgy7w6HfTzX6GHCyyXPV2dnu9/MIUX+PIMOkRsbq7hHkZmxciDOrZoQRUVPCGCw504RDobR7VoQQ0f2Mejls1IRb/t4R10CcLc6/2igSVcw8gqFnEMOnSVPxQqQaPw2y7fAAAAAElFTkSuQmCC\") 0 1px no-repeat\n\t\t*background-image url(ie/icon-star.png)\n\n\t\t&.offset\n\t\t\tmargin-top 20px\n\n.mark\n\tpadding 0 2px\n\tcolor lighten(#555, 20%)\n\tbackground lighten(#d7d4cc, 40%)\n\n\t.skin-polaris &\n\t\tbackground darken(#2C323C, 20%)\n\n\t.skin-futurico &\n\t\tbackground darken(#2E3035, 20%)\n\n.social\n\theight 60px\n\tmargin-bottom 60px\n\tpadding 0 60px\n\tfont-size 16px\n\tcolor #555\n\tbackground lighten(#EBE7DF, 50%)\n\n\ta\n\t\tcolor #777\n\t\tborder-bottom-color #ccc\n\n\t\t&:hover\n\t\t\tcolor #444\n\n\t.left\n\t\tfloat left\n\t\tpadding-top 19px\n\n\t\tli\n\t\t\tfloat left\n\t\t\tpadding-right 30px\n\n\t\t\ta\n\t\t\t\tposition relative\n\n\t.right\n\t\tfloat right\n\t\tpadding-top 20px\n\n\t\tli\n\t\t\tfloat right\n\t\t\tpadding-left 10px\n\n\t\t&.local\n\t\t\tpadding-top 19px\n\n\t\t\tli\n\t\t\t\tpadding-left 30px\n\t\t\t\tfont-size 14px\n\n.demo-holder\n\tmargin-bottom 97px\n\n.demo-title\n\tpadding-bottom 36px\n\tfont-size 26px\n\tletter-spacing -1px\n\n.demo\n\tposition relative\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n.demo-list\n\tposition relative\n\tmargin-right 360px\n\tpadding 33px 57px 17px\n\tcolor #555\n\tbackground #fff\n\tborder 3px solid #ddd8ce\n\n\tul\n\t\tfloat right\n\t\twhite-space nowrap\n\n\t\t&:first-child\n\t\t\tfloat left\n\n\t\tli\n\t\t\tposition relative\n\t\t\tpadding 0 0 18px 42px\n\n\t\tinput\n\t\t\tposition absolute\n\t\t\ttop 4px\n\t\t\tleft 0\n\n\t\t.icheckbox_square-blue\n\t\t.iradio_square-blue\n\t\t\tposition absolute\n\t\t\ttop -1px\n\t\t\tleft 0\n\n\t\tspan\n\t\t\tcolor #bbb\n\n.demo-methods\n\tpadding 21px 360px 0 0\n\n\t.mark\n\t\tbackground darken(#e7e5e0, 10%)\n\n\tdt\n\t\tposition relative\n\t\tpadding 17px 150px 18px 0\n\t\tfont 16px/24px $stack\n\t\tcolor #444\n\t\tborder-bottom 3px solid #ddd8ce\n\n\t\t.self\n\t\t\tcursor pointer\n\n\t\t\t&:hover\n\t\t\t\tcolor #222\n\n\t\t.code\n\t\t\tposition absolute\n\t\t\tright 0\n\t\t\tbottom 18px\n\t\t\tcolor #777\n\n\t\t\t.self:hover\n\t\t\t\tcolor #444\n\n\tdd\n\t\tposition relative\n\t\tdisplay none\n\t\tmargin 0\n\t\tbackground #fff\n\t\tborder 3px solid #ddd8ce\n\t\tborder-top none\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tposition absolute\n\t\t\ttop -13px\n\t\t\tleft 0\n\t\t\twidth 0\n\t\t\theight 0\n\t\t\tborder 5px solid transparent\n\t\t\tborder-bottom-color #ddd8ce\n\t\t\tborder-left-color #ddd8ce\n\n\t\t.markup\n\t\t\tmargin 0\n\t\t\tcolor #888\n\t\t\tbackground lighten(#ebe7df, 50%)\n\t\t\tborder none\n\n\t\t\t.comment\n\t\t\t\tcolor #aaa\n\n.demo-callbacks\n\tposition absolute\n\ttop 0\n\tright 0\n\tbottom 0\n\twidth 300px\n\tcolor #aaa\n\tbackground #232323\n\tborder 3px solid #ddd8ce\n\n\th2\n\t\tcolor #fff\n\t\tbackground #6a5a8c\n\n\tul\n\t\tposition absolute\n\t\ttop 60px\n\t\twidth 100%\n\t\tbottom 0\n\t\toverflow auto\n\n\t\tli\n\t\t\tmargin-top -1px\n\t\t\tpadding 13px 20px 15px\n\t\t\tborder-top 1px solid #2e2e2e\n\n\t\t\tspan\n\t\t\t\tcolor #888\n\n.skins\n\tposition relative\n\t*zoom 1\n\n\th2\n\t\tposition absolute\n\t\ttop -38px\n\t\tright 0\n\t\tleft 0\n\t\tfont-size 24px\n\t\ttext-align center\n\n.arrows\n\tposition absolute\n\ttop 3px\n\tleft -60px\n\twidth 60px\n\toverflow hidden\n\n\t.top\n\t.bottom\n\t\tposition relative\n\t\tleft 60px\n\t\twidth 60px\n\t\theight 60px\n\t\tcursor pointer\n\t\t-webkit-transition left .3s, background-color .2s\n\t\t-moz-transition left .3s, background-color .2s\n\t\t-ms-transition left .3s, background-color .2s\n\t\t-o-transition left .3s, background-color .2s\n\t\ttransition left .3s, background-color .2s\n\n\t.top\n\t\tbackground lighten(#5a9aa8, 25%) url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAdklEQVR4Xo3MuwmFQBiE0b0FmAuutnRBsAARLMTYRzvWItiEYLq/s6CYyMwGXzTDcWbG8mhEf/ZjQIV2ZCigjiASMAVJIAVKAQ4FKWBDJVoYpAB/7z8GRaAQgBNQG8dZA28f0BmHBgUCKGh9hhpNKH8BWY8GlF2OH3hCC1zmdAAAAABJRU5ErkJggg==\") 50% no-repeat\n\t\t*background-image url(ie/arrow-top.png)\n\n\t\t&:hover\n\t\t\tbackground-color lighten(#5a9aa8, 10%)\n\n\t.bottom\n\t\tbackground lighten(#dba571, 20%) url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAf0lEQVR4Xo3MzQmEQBCE0TGAvQuOpiQIBiCCgXj2J52NRTAJwev0Vh+WOgjlNHyHguYFM/M6tKLSd2YTmtHHR48S8jtQzAB2430d2bgJvQLsdqRCZwZUPAFLaPjrjYAUMKLgwBtUK4CIhi4BEFGQBohISANEJKQBIqqIFtSqvx/0bXhCCUrgiAAAAABJRU5ErkJggg==\") 50% no-repeat\n\t\t*background-image url(ie/arrow-bottom.png)\n\n\t\t&:hover\n\t\t\tbackground-color #dba571\n\n@media screen and (max-width:1049px)\n\t.arrows\n\t.fork-me\n\t\tdisplay none\n\n.skin\n\tposition relative\n\tmargin-bottom 40px\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th3\n\t\tposition relative\n\t\tz-index 20\n\t\tfloat left\n\t\theight 60px\n\t\tpadding 0 57px\n\t\tline-height 58px\n\t\tbackground #fff\n\t\tborder 3px solid #ddd8ce\n\t\tborder-bottom none\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tposition absolute\n\t\t\ttop 100%\n\t\t\tleft 0\n\t\t\twidth 100%\n\t\t\theight 2px\n\t\t\tmargin-top -1px\n\t\t\tbackground #fff\n\n\t&.skin-polaris h3\n\t\tcolor lighten(#7a828b, 60%)\n\t\tbackground #2c323c\n\n\t\t&:before\n\t\t\tbackground #2c323c\n\n\t&.skin-futurico h3\n\t\tcolor lighten(#888, 50%)\n\t\tbackground #2e3035\n\n\t\t&:before\n\t\t\tbackground #2e3035\n\n\tdl\n\t\tz-index 10\n\t\twidth 100%\n\t\tmargin 0\n\n\tdt\n\t\tposition relative\n\t\ttop -53px\n\t\tright -3px\n\t\tfloat right\n\t\theight 47px\n\t\tmargin-right -3px\n\t\tpadding 0 57px\n\t\tline-height 47px\n\t\tborder 3px solid #ddd8ce\n\t\tcursor pointer\n\n\t\t&:hover\n\t\t\tbackground #f0ede7\n\t\t\tborder-bottom 3px solid #ddd8ce\n\n\t\t&.selected\n\t\t\theight 50px\n\t\t\tbackground #fff\n\t\t\tborder-bottom none\n\t\t\tcursor default\n\n\t\t\t&:before\n\t\t\t\tcontent ''\n\t\t\t\tposition absolute\n\t\t\t\ttop 100%\n\t\t\t\tleft 0\n\t\t\t\twidth 100%\n\t\t\t\theight 2px\n\t\t\t\tmargin-top -1px\n\t\t\t\tbackground #fff\n\n\t&.skin-polaris dt\n\t\tcolor lighten(#7a828b, 60%)\n\t\tbackground lighten(#30363f, 30%)\n\n\t\t&:hover\n\t\t\tbackground lighten(#30363f, 15%)\n\n\t\t&.selected\n\t\t\tbackground #2c323c\n\n\t\t\t&:before\n\t\t\t\tbackground #2c323c\n\n\t&.skin-futurico dt\n\t\tcolor lighten(#888, 50%)\n\t\tbackground lighten(#2e3035, 30%)\n\n\t\t&:hover\n\t\t\tbackground lighten(#2e3035, 15%)\n\n\t\t&.selected\n\t\t\tbackground #2e3035\n\n\t\t\t&:before\n\t\t\t\tbackground #2e3035\n\n\tdd\n\t\tposition relative\n\t\tdisplay none\n\t\tfloat left\n\t\twidth 100%\n\t\tmargin -3px -100% 0 0\n\t\toverflow hidden\n\t\tcolor #444\n\t\tbackground #fff\n\t\tborder 3px solid #ddd8ce\n\n\t\t&.selected\n\t\t\tdisplay block\n\n\t\ta\n\t\t\tcolor #444\n\n\t\t\t&:hover\n\t\t\t\tcolor #111\n\n\t&.skin-polaris dd\n\t\tcolor #7a828b\n\t\tbackground #2c323c\n\n\t\ta\n\t\t\tcolor #7a828b\n\t\t\tborder-bottom-color lighten(#2c323c, 20%)\n\n\t\t\t&:hover\n\t\t\t\tcolor lighten(#7a828b, 30%)\n\n\t&.skin-futurico dd\n\t\tcolor #888\n\t\tbackground #2e3035\n\n\t\ta\n\t\t\tcolor #888\n\t\t\tborder-bottom-color lighten(#2e3035, 20%)\n\n\t\t\t&:hover\n\t\t\t\tcolor #aaa\n\n.skin-section\n\tfloat left\n\tpadding 42px 0 31px 57px\n\tline-height 18px\n\n\th4\n\t\tpadding-bottom 18px\n\n\t\t.skin-polaris &\n\t\t\tcolor lighten(#7a828b, 20%)\n\n\t\t.skin-futurico &\n\t\t\tcolor lighten(#888, 20%)\n\n\t.list\n\t\tfloat left\n\t\tpadding-right 60px\n\n\t\tli\n\t\t\tposition relative\n\t\t\tpadding-bottom 15px\n\n\t.skin-minimal & .list li\n\t\tpadding-left 38px\n\n\t.skin-square & .list li\n\t\tpadding-left 42px\n\n\t.skin-flat & .list li\n\t.skin-line & label\n\t\tpadding-left 40px\n\n\t.skin-line & h4\n\t\tpadding-bottom 24px\n\n\t.skin-line & .list\n\t\tpadding-right 40px\n\n\t\tli\n\t\t\tpadding-bottom 10px\n\n\t.skin-polaris & .list li\n\t\tpadding-left 37px\n\n\t.skin-futurico & .list li\n\t\tpadding-left 36px\n\n.icheckbox_minimal\n.icheckbox_minimal-red\n.icheckbox_minimal-green\n.icheckbox_minimal-blue\n.icheckbox_minimal-aero\n.icheckbox_minimal-grey\n.icheckbox_minimal-orange\n.icheckbox_minimal-yellow\n.icheckbox_minimal-pink\n.icheckbox_minimal-purple\n.iradio_minimal\n.iradio_minimal-red\n.iradio_minimal-green\n.iradio_minimal-blue\n.iradio_minimal-aero\n.iradio_minimal-grey\n.iradio_minimal-orange\n.iradio_minimal-yellow\n.iradio_minimal-pink\n.iradio_minimal-purple\n\tposition absolute\n\ttop 1px\n\tleft 0\n\n.skin input[type=checkbox]\n.skin input[type=radio]\n\tposition absolute\n\ttop 2px\n\tleft 0\n\n.icheckbox_square\n.icheckbox_square-red\n.icheckbox_square-green\n.icheckbox_square-blue\n.icheckbox_square-aero\n.icheckbox_square-grey\n.icheckbox_square-orange\n.icheckbox_square-yellow\n.icheckbox_square-pink\n.icheckbox_square-purple\n.iradio_square\n.iradio_square-red\n.iradio_square-green\n.iradio_square-blue\n.iradio_square-aero\n.iradio_square-grey\n.iradio_square-orange\n.iradio_square-yellow\n.iradio_square-pink\n.iradio_square-purple\n\tposition absolute\n\ttop -1px\n\tleft 0\n\n.icheckbox_flat\n.icheckbox_flat-red\n.icheckbox_flat-green\n.icheckbox_flat-blue\n.icheckbox_flat-aero\n.icheckbox_flat-grey\n.icheckbox_flat-orange\n.icheckbox_flat-yellow\n.icheckbox_flat-pink\n.icheckbox_flat-purple\n.iradio_flat\n.iradio_flat-red\n.iradio_flat-green\n.iradio_flat-blue\n.iradio_flat-aero\n.iradio_flat-grey\n.iradio_flat-orange\n.iradio_flat-yellow\n.iradio_flat-pink\n.iradio_flat-purple\n\tposition absolute\n\ttop 0\n\tleft 0\n\n.icheckbox_polaris\n.iradio_polaris\n\tposition absolute\n\ttop -4px\n\tleft -6px\n\n.icheckbox_futurico\n.iradio_futurico\n\tposition absolute\n\ttop 2px\n\tleft 0\n\n.skin-states\n\tfloat right\n\tpadding-right 57px\n\tpadding-left 0\n\n\t.state\n\t\tcursor default !important\n\n\t.list\n\t\tpadding-right 0\n\n\t.skin-minimal & .list li\n\t\tpadding-left 71px\n\n\t.skin-square & .list li\n\t\tpadding-left 79px\n\n\t.skin-flat & .list li\n\t\tpadding-left 75px\n\n\t.skin-line & .list\n\t\tpadding-right 0\n\n\t.skin-polaris & .list li\n\t\tpadding-left 69px\n\n\t.skin-futurico & .list li\n\t\tpadding-left 67px\n\n\t.iradio_minimal\n\t.iradio_minimal-red\n\t.iradio_minimal-green\n\t.iradio_minimal-blue\n\t.iradio_minimal-aero\n\t.iradio_minimal-grey\n\t.iradio_minimal-orange\n\t.iradio_minimal-yellow\n\t.iradio_minimal-pink\n\t.iradio_minimal-purple\n\t\tleft 33px\n\n\t.iradio_square\n\t.iradio_square-red\n\t.iradio_square-green\n\t.iradio_square-blue\n\t.iradio_square-aero\n\t.iradio_square-grey\n\t.iradio_square-orange\n\t.iradio_square-yellow\n\t.iradio_square-pink\n\t.iradio_square-purple\n\t\tleft 37px\n\n\t.iradio_flat\n\t.iradio_flat-red\n\t.iradio_flat-green\n\t.iradio_flat-blue\n\t.iradio_flat-aero\n\t.iradio_flat-grey\n\t.iradio_flat-orange\n\t.iradio_flat-yellow\n\t.iradio_flat-pink\n\t.iradio_flat-purple\n\t\tleft 35px\n\n\t.iradio_polaris\n\t\tleft 26px\n\n\t.iradio_futurico\n\t\tleft 31px\n\n.colors\n\tclear both\n\tpadding 24px 0 9px\n\n\t.skin-line &\n\t\tpadding-top 28px\n\n\tstrong\n\t\tfloat left\n\t\tline-height 20px\n\t\tmargin-right 20px\n\n\tli\n\t\tposition relative\n\t\tfloat left\n\t\twidth 16px\n\t\theight 16px\n\t\tmargin 2px 1px 0 0\n\t\tbackground #000\n\t\tcursor pointer\n\t\tfilter unquote('alpha(opacity=50)')\n\t\topacity .5\n\t\t-webkit-transition opacity .2s\n\t\t-moz-transition opacity .2s\n\t\t-ms-transition opacity .2s\n\t\t-o-transition opacity .2s\n\t\ttransition opacity .2s\n\n\t\t&:hover\n\t\t\tfilter unquote('alpha(opacity=100)')\n\t\t\topacity 1\n\n\t\t&.active\n\t\t\theight 20px\n\t\t\tmargin-top 0\n\t\t\tfilter unquote('alpha(opacity=75)')\n\t\t\topacity .75\n\n\t\t&.red\n\t\t\tbackground #d54e21\n\n\t\t&.green\n\t\t\tbackground #78a300\n\n\t\t&.blue\n\t\t\tbackground #0e76a8\n\n\t\t&.aero\n\t\t\tbackground #9cc2cb\n\n\t\t&.grey\n\t\t\tbackground #73716e\n\n\t\t&.orange\n\t\t\tbackground #f70\n\n\t\t&.yellow\n\t\t\tbackground #fc0\n\n\t\t&.pink\n\t\t\tbackground #ff66b5\n\n\t\t&.purple\n\t\t\tbackground #6a5a8c\n\n\t\t.skin-square &.red\n\t\t\tbackground #e56c69\n\n\t\t.skin-square &.green\n\t\t\tbackground #1b7e5a\n\n\t\t.skin-square &.blue\n\t\t\tbackground #2489c5\n\n\t\t.skin-square &.aero\n\t\t\tbackground #9cc2cb\n\n\t\t.skin-square &.grey\n\t\t\tbackground #73716e\n\n\t\t.skin-square &.yellow\n\t\t\tbackground #fc3\n\n\t\t.skin-square &.pink\n\t\t\tbackground #a77a94\n\n\t\t.skin-square &.purple\n\t\t\tbackground #6a5a8c\n\n\t\t.skin-square &.orange\n\t\t\tbackground #f70\n\n\t\t.skin-flat &.red\n\t\t\tbackground #ec7063\n\n\t\t.skin-flat &.green\n\t\t\tbackground #1abc9c\n\n\t\t.skin-flat &.blue\n\t\t\tbackground #3498db\n\n\t\t.skin-flat &.grey\n\t\t\tbackground #95a5a6\n\n\t\t.skin-flat &.orange\n\t\t\tbackground #f39c12\n\n\t\t.skin-flat &.yellow\n\t\t\tbackground #f1c40f\n\n\t\t.skin-flat &.pink\n\t\t\tbackground #af7ac5\n\n\t\t.skin-flat &.purple\n\t\t\tbackground #8677a7\n\n\t\t.skin-line &.yellow\n\t\t\tbackground #FFC414\n\n.skins-info\n\tpadding 13px 0 57px\n\tfont-size 16px\n\tline-height 22px\n\ttext-align center\n\n\tp\n\t\tmargin-bottom 17px\n\n.skin-pre\n\tpadding 43px 60px 0\n\n.skin-usage\n\tpadding 19px 60px 8px\n\tlist-style decimal outside\n\n\tli\n\t\tmargin-bottom 23px\n\n\t.schemes\n\t\tmargin-bottom -3px\n\t\tpadding 13px 0 0 20px\n\t\tcolor #888\n\n\t\tul\n\t\t\tfloat left\n\t\t\tpadding-right 60px\n\n\t\tli\n\t\t\tmargin 0\n\t\t\tpadding-bottom 3px\n\n.usage\n\tposition relative\n\tmargin-bottom 80px\n\tbackground #fff\n\n\ta\n\t\tborder-bottom-color #ddd\n\n\t.self\n\t\tborder-bottom-color #bbb\n\n\t.arrows\n\t\ttop 0\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th2\n\t\tcolor #fff\n\t\tbackground #1f7f5c\n\n\th4\n\t\tmargin 26px 0 10px\n\n\t\t&.indeterminate\n\t\t\tmargin-top 28px\n\n\tp\n\t\tmargin-bottom 5px\n\n\t\t&.offset\n\t\t\tmargin-top 10px\n\n\t\t&.callbacks-info\n\t\t\tmargin-bottom 19px\n\n\t\t&.methods-info\n\t\t\tmargin-bottom 10px\n\n\t\t&.methods-callback\n\t\t\tmargin-top 10px\n\n\t\t&.issue-tracker\n\t\t\tmargin-top 31px\n\n\t.markup\n\t\tmargin 9px 0 16px\n\n\t.usage-inner\n\t\tfont-size 15px\n\t\tline-height 23px\n\t\tpadding 41px 60px 39px\n\n.markup\n\tmargin 10px 0 18px\n\tpadding 8px 0 9px 17px\n\tfont 14px/20px $stack\n\tcolor lighten(#555, 20%)\n\tbackground lighten(#d7d4cc, 40%)\n\tborder-left 3px solid darken(#ebeae5, 10%)\n\n\t.comment\n\t\tcolor lighten(#555, 40%)\n\n\t\t.self\n\t\t\tcolor #555\n\n\t\t\t&:hover\n\t\t\t\tcolor #333\n\n\t.skin-polaris &\n\t\tbackground darken(#2C323C, 20%)\n\t\tborder-left-color darken(#2C323C, 30%)\n\n\t.skin-futurico &\n\t\tbackground darken(#2E3035, 20%)\n\t\tborder-left-color darken(#2E3035, 30%)\n\n\t.skin-polaris &\n\t.skin-futurico &\n\n\t\t.comment\n\t\t\tcolor #555\n\n.browsers\n\tmargin-bottom 74px\n\n\th2\n\t\tmargin-bottom 29px\n\t\tfont-size 24px\n\n.browsers-inner\n\tpadding 0 60px\n\tfont-size 15px\n\tline-height 23px\n\n\tp\n\t\tmargin-bottom 15px\n\n.benefits\n\tposition relative\n\tmargin-bottom 59px\n\tcolor #888\n\tbackground #232323\n\n\t.arrows\n\t\ttop 0\n\n\t&:hover .arrows .top\n\t&:hover .arrows .bottom\n\t\tleft 0\n\n\th2\n\t\tcolor #fff\n\t\tbackground #6a5b8c\n\n\ta\n\t\tcolor #888\n\t\tborder-bottom-color #444\n\n\t\t&:hover\n\t\t\tcolor #aaa\n\n\t.mark\n\t\tcolor #777\n\t\tbackground lighten(#232323, 10%)\n\n.benefits-inner\n\tpadding 41px 60px 29px\n\tfont-size 15px\n\tline-height 23px\n\n\tp\n\t\tmargin-bottom 15px\n\n\tul\n\t\tmargin -10px 0 15px\n\n.download\n\theight 63px\n\ttext-align center\n\n\ta\n\t\tdisplay block\n\t\theight 60px\n\t\tfont-size 18px\n\t\tline-height 58px\n\t\tcolor #fff\n\t\tborder-bottom 0 solid darken(#E76B66, 10%)\n\t\tbackground #E76B66\n\t\t-webkit-transition border-bottom .2s\n\t\t-moz-transition border-bottom .2s\n\t\t-ms-transition border-bottom .2s\n\t\t-o-transition border-bottom .2s\n\t\ttransition border-bottom .2s\n\n\t\t&:before\n\t\t\tcontent ''\n\t\t\tdisplay inline-block\n\t\t\twidth 26px\n\t\t\theight 26px\n\t\t\tmargin-right 12px\n\t\t\tbackground url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAACYUlEQVR4Xr3VPWhTURjH4VOt0ES7ZRJbEJpsNsaimx9E0GpRCdgU/NhsRAdNBYcK0RirQcSkIIK2cRBRiragVayDhqBDLVWatFvsIKK2UMEp4KBcf8N/KNdwvcHWAw8c/rzvebk5yU2dZVnmf6wVNdb70Ca+5Rrkx0e8E/ZkyzCoAyuxBZu17/jXQV34jjwCytowjUk90Ywyo5q8errcDoriPgpoRhEj6MQrGHmpbARF1RbUG3Uz6Bae4iBacQNNSKEPRi4pa1JNq3pGcds+qNrXu4B1CKKCWtZqlPAZO/72RDGsRdKWh5ATIdOSpHpjbu6ojBfYBiPdOIQeHJMeZd0wsh1jKDsNakEc97AHo8o3IYCz2I1nGMYuZQHVGPXs1RlxtNgH+TCFtBpvIqua40ghqkGdOIp27VOqMcigX8PTKIKzWXwZDDbAQhDG5o6yx2iAkQY80T4HYxOEpbP/uCOnN+wq1Nlq6x3qrWp3NIcKJvAWV+FVzU804i6uwyNZZY34BaOeyzpjQmfOLR70DSGcwyxOIa7mAZzHQ+QxLHllCdUYnMYZzOqsjeBsPbp8QFZ7Lw7gCt4jhGu4qCEGa5SVVWPUM4Yjbn5HfrTjNYzk8AAZ5CSjbBBG3qjXr0CqX+YAviJpy6cQg9NKIoJBN6+gIGbwA16kMY5eeGDEo2xcNV71TCPo5qM7iX14hJIueB4XkICRhLJ51ZTUsx8n3AwawmGE8QUhRDR4J4yElUUQUm1YvUPOfxPO4khj66KL70W/m+Z6uF3P0YdJBRVlZqkHlbEezQo+YWHJB8mC1Lx+Ayeq7nRIoewwAAAAAElFTkSuQmCC\")\n\t\t\t*background-image url(ie/icon-options.png)\n\t\t\tvertical-align middle\n\n\t\t&:hover\n\t\t\tborder-bottom-width 3px\n\n.license\n\tcolor #444\n\ttext-align center\n\tpadding 30px 0 75px\n\n.footer\n\tpadding-top 28px\n\theight 60px\n\tcolor #666\n\tbackground #e2dfd8\n\n\tul\n\t\tfloat left\n\n\t\tli\n\t\t\tfloat left\n\t\t\tpadding 2px 10px 0 0\n\n\t\t&.local li\n\t\t\tpadding 0 30px 0 0\n\n\t.code\n\t\tfloat right\n\n\ta\n\t\tcolor #444\n\n\t\t&:hover\n\t\t\tcolor #222\n\n.footer-inner\n\twidth 930px\n\tmargin 0 auto\n\toverflow hidden\n\n.fork-me\n\tposition fixed\n\t*position absolute\n\ttop 0\n\tright 0\n\twidth 40px\n\theight 40px\n\toverflow hidden\n\ttext-indent 100%\n\twhite-space nowrap\n\tbackground #28545b url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAnElEQVR4XqVSgQmEMAyszw/gCI7wK7iBblBHcISfxG6gG/gjuIGO0A3ygaYQCCG2HhweF+6aShsAcDcBJBpuvlwFagqGJwUf5EL6kgV2eEe2yIgc9QI73CMPs8AOywI7nHDSzCxYxcnJ6+hrFnQkJrb2nGclP3Fj+vf0IUV1AgCZHiS86lOObxD4qqSD5mtXmAq1e2fB3vqXact3f/JmXumJlVq1AAAAAElFTkSuQmCC\") 50% no-repeat\n\t*background-image url(ie/icon-fork.png)\n\n\t&:hover\n\t\tbackground-color #1f7f5c\n\n.skin dt\n.fork-me\n\t-webkit-transition background-color .2s\n\t-moz-transition background-color .2s\n\t-ms-transition background-color .2s\n\t-o-transition background-color .2s\n\ttransition background-color .2s"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/demo/css/normalize.css",
    "content": "/*! normalize.css v1.1.0 | MIT License | git.io/normalize */\n\n/* ==========================================================================\n   HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n    display: block;\n}\n\n/**\n * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.\n */\n\naudio,\ncanvas,\nvideo {\n    display: inline-block;\n    *display: inline;\n    *zoom: 1;\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n    display: none;\n    height: 0;\n}\n\n/**\n * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.\n * Known issue: no IE 6 support.\n */\n\n[hidden] {\n    display: none;\n}\n\n/* ==========================================================================\n   Base\n   ========================================================================== */\n\n/**\n * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using\n *    `em` units.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n    font-size: 100%; /* 1 */\n    -webkit-text-size-adjust: 100%; /* 2 */\n    -ms-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Address `font-family` inconsistency between `textarea` and other form\n * elements.\n */\n\nhtml,\nbutton,\ninput,\nselect,\ntextarea {\n    font-family: sans-serif;\n}\n\n/**\n * Address margins handled incorrectly in IE 6/7.\n */\n\nbody {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Links\n   ========================================================================== */\n\n/**\n * Address `outline` inconsistency between Chrome and other browsers.\n */\n\na:focus {\n    outline: thin dotted;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n    outline: 0;\n}\n\n/* ==========================================================================\n   Typography\n   ========================================================================== */\n\n/**\n * Address font sizes and margins set differently in IE 6/7.\n * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,\n * and Chrome.\n */\n\nh1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n}\n\nh2 {\n    font-size: 1.5em;\n    margin: 0.83em 0;\n}\n\nh3 {\n    font-size: 1.17em;\n    margin: 1em 0;\n}\n\nh4 {\n    font-size: 1em;\n    margin: 1.33em 0;\n}\n\nh5 {\n    font-size: 0.83em;\n    margin: 1.67em 0;\n}\n\nh6 {\n    font-size: 0.67em;\n    margin: 2.33em 0;\n}\n\n/**\n * Address styling not present in IE 7/8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n    border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.\n */\n\nb,\nstrong {\n    font-weight: bold;\n}\n\nblockquote {\n    margin: 1em 40px;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n    font-style: italic;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n * Known issue: no IE 6/7 normalization.\n */\n\nhr {\n    -moz-box-sizing: content-box;\n    box-sizing: content-box;\n    height: 0;\n}\n\n/**\n * Address styling not present in IE 6/7/8/9.\n */\n\nmark {\n    background: #ff0;\n    color: #000;\n}\n\n/**\n * Address margins set differently in IE 6/7.\n */\n\np,\npre {\n    margin: 1em 0;\n}\n\n/**\n * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.\n */\n\ncode,\nkbd,\npre,\nsamp {\n    font-family: monospace, serif;\n    _font-family: 'courier new', monospace;\n    font-size: 1em;\n}\n\n/**\n * Improve readability of pre-formatted text in all browsers.\n */\n\npre {\n    white-space: pre;\n    white-space: pre-wrap;\n    word-wrap: break-word;\n}\n\n/**\n * Address CSS quotes not supported in IE 6/7.\n */\n\nq {\n    quotes: none;\n}\n\n/**\n * Address `quotes` property not supported in Safari 4.\n */\n\nq:before,\nq:after {\n    content: '';\n    content: none;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n    font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n}\n\nsup {\n    top: -0.5em;\n}\n\nsub {\n    bottom: -0.25em;\n}\n\n/* ==========================================================================\n   Lists\n   ========================================================================== */\n\n/**\n * Address margins set differently in IE 6/7.\n */\n\ndl,\nmenu,\nol,\nul {\n    margin: 1em 0;\n}\n\ndd {\n    margin: 0 0 0 40px;\n}\n\n/**\n * Address paddings set differently in IE 6/7.\n */\n\nmenu,\nol,\nul {\n    padding: 0 0 0 40px;\n}\n\n/**\n * Correct list images handled incorrectly in IE 7.\n */\n\nnav ul,\nnav ol {\n    list-style: none;\n    list-style-image: none;\n}\n\n/* ==========================================================================\n   Embedded content\n   ========================================================================== */\n\n/**\n * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.\n * 2. Improve image quality when scaled in IE 7.\n */\n\nimg {\n    border: 0; /* 1 */\n    -ms-interpolation-mode: bicubic; /* 2 */\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n    overflow: hidden;\n}\n\n/* ==========================================================================\n   Figures\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.\n */\n\nfigure {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Forms\n   ========================================================================== */\n\n/**\n * Correct margin displayed oddly in IE 6/7.\n */\n\nform {\n    margin: 0;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n    border: 1px solid #c0c0c0;\n    margin: 0 2px;\n    padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct color not being inherited in IE 6/7/8/9.\n * 2. Correct text not wrapping in Firefox 3.\n * 3. Correct alignment displayed oddly in IE 6/7.\n */\n\nlegend {\n    border: 0; /* 1 */\n    padding: 0;\n    white-space: normal; /* 2 */\n    *margin-left: -7px; /* 3 */\n}\n\n/**\n * 1. Correct font size not being inherited in all browsers.\n * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,\n *    and Chrome.\n * 3. Improve appearance and consistency in all browsers.\n */\n\nbutton,\ninput,\nselect,\ntextarea {\n    font-size: 100%; /* 1 */\n    margin: 0; /* 2 */\n    vertical-align: baseline; /* 3 */\n    *vertical-align: middle; /* 3 */\n}\n\n/**\n * Address Firefox 3+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\nbutton,\ninput {\n    line-height: normal;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.\n * Correct `select` style inheritance in Firefox 4+ and Opera.\n */\n\nbutton,\nselect {\n    text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n * 4. Remove inner spacing in IE 7 without affecting normal text inputs.\n *    Known issue: inner spacing remains in IE 6.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    -webkit-appearance: button; /* 2 */\n    cursor: pointer; /* 3 */\n    *overflow: visible;  /* 4 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n    cursor: default;\n}\n\n/**\n * 1. Address box sizing set to content-box in IE 8/9.\n * 2. Remove excess padding in IE 8/9.\n * 3. Remove excess padding in IE 7.\n *    Known issue: excess padding remains in IE 6.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n    box-sizing: border-box; /* 1 */\n    padding: 0; /* 2 */\n    *height: 13px; /* 3 */\n    *width: 13px; /* 3 */\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n    -webkit-appearance: textfield; /* 1 */\n    -moz-box-sizing: content-box;\n    -webkit-box-sizing: content-box; /* 2 */\n    box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari 5 and Chrome\n * on OS X.\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\n}\n\n/**\n * Remove inner padding and border in Firefox 3+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n    border: 0;\n    padding: 0;\n}\n\n/**\n * 1. Remove default vertical scrollbar in IE 6/7/8/9.\n * 2. Improve readability and alignment in all browsers.\n */\n\ntextarea {\n    overflow: auto; /* 1 */\n    vertical-align: top; /* 2 */\n}\n\n/* ==========================================================================\n   Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n    border-collapse: collapse;\n    border-spacing: 0;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/demo/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n    <head>\n        <title>Checkboxes and radio buttons customization (jQuery and Zepto) plugin</title>\n        <meta charset=\"utf-8\">\n        <meta content=\"width=device-width\" name=\"viewport\">\n        <link href=\"./css/custom.css?v=1.0.2\" rel=\"stylesheet\">\n        <link href=\"../skins/all.css?v=1.0.2\" rel=\"stylesheet\">\n        <script src=\"./js/jquery.js\"></script>\n        <script src=\"../icheck.js?v=1.0.2\"></script>\n        <script src=\"./js/custom.min.js?v=1.0.2\"></script>\n    </head>\n\n    <body>\n        <div class=\"layout clear\">\n            <div class=\"header\">\n                <h1>super customized checkboxes and radio buttons for jQuery &amp; Zepto</h1>\n                <h3>iCheck\n                    <span>v1.0.2</span>\n                </h3>\n                <strong>@\n                    <a href=\"http://twitter.com/fronteed/\">Fronteed</a>\n                </strong>\n            </div>\n            <div class=\"features\">\n                <div class=\"arrows\">\n                    <div class=\"bottom\" data-to=\"demo\"></div>\n                </div>\n                <h2>Plugin features</h2>\n                <ul>\n                    <li>\n                        <strong>Identical inputs across different browsers and devices</strong> &mdash; both\n                        <span class=\"self\" data-to=\"download\">desktop and mobile</span>\n                    </li>\n                    <li>\n                        <strong>Touch devices support</strong> &mdash; iOS, Android, BlackBerry, Windows Phone, Amazon Kindle </li>\n                    <li>\n                        <strong>Keyboard accessible inputs</strong> &mdash;\n                        <span class=\"mark\">Tab</span>,\n                        <span class=\"mark\">Spacebar</span>,\n                        <span class=\"mark\">Arrow up/down</span> and other shortcuts </li>\n                    <li>\n                        <strong>Screenreader accessible inputs</strong> &mdash;\n                        <a href=\"https://developer.mozilla.org/en-US/docs/Accessibility/ARIA\" target=\"blank\">ARIA</a> attributes for VoiceOver and others </li>\n                    <li>\n                        <strong>Customization freedom</strong> &mdash; use any HTML and CSS to style inputs (try\n                        <span class=\"self\" data-to=\"skins\">6 Retina-ready skins</span>) </li>\n                    <li>\n                        <strong>jQuery and Zepto</strong> JavaScript libraries support from single file </li>\n                    <li>\n                        <strong>Lightweight size</strong> &mdash; 1 kb gzipped </li>\n                    <li class=\"offset\">\n                        <strong class=\"self\" data-to=\"options\">32 options</strong> to customize checkboxes and radio buttons </li>\n                    <li>\n                        <strong class=\"self\" data-to=\"callbacks\">11 callbacks</strong> to handle changes </li>\n                    <li>\n                        <strong class=\"self\" data-to=\"methods\">9 methods</strong> to make changes programmatically </li>\n                    <li> Saves changes to original inputs,\n                        <span class=\"self\" data-to=\"init\">works carefully</span> with any selectors </li>\n                </ul>\n            </div>\n            <div class=\"social clear\">\n                <ul class=\"left\">\n                    <li>\n                        <a href=\"http://github.com/fronteed/iCheck/\">Download latest version</a>\n                    </li>\n                </ul>\n                <ul class=\"right local\">\n                    <li>\n                        <a href=\"http://twitter.com/fronteed/\">Follow @fronteed</a>\n                    </li>\n                    <li>\n                        <a href=\"https://twitter.com/intent/tweet?text=Highly customizable checkboxes and radio buttons&amp;url=http://fronteed.com/iCheck/&amp;via=fronteed&amp;hashtags=jQuery,Zepto\">Share on Twitter</a>\n                    </li>\n                    <li>\n                        <a href=\"https://github.com/fronteed/iCheck\">Star on GitHub</a>\n                    </li>\n                </ul>\n            </div>\n            <div class=\"demo-holder\">\n                <h2 class=\"demo-title\">Demo</h2>\n                <div class=\"demo\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"features\"></div>\n                        <div class=\"bottom\" data-to=\"skins\"></div>\n                    </div>\n                    <div class=\"demo-list clear\">\n                        <ul>\n                            <li>\n                                <input tabindex=\"1\" type=\"checkbox\" id=\"input-1\">\n                                <label for=\"input-1\">Checkbox,\n                                    <span>#input-1</span>\n                                </label>\n                            </li>\n                            <li>\n                                <input tabindex=\"2\" type=\"checkbox\" id=\"input-2\" checked>\n                                <label for=\"input-2\">Checkbox,\n                                    <span>#input-2</span>\n                                </label>\n                            </li>\n                        </ul>\n                        <ul>\n                            <li>\n                                <input tabindex=\"3\" type=\"radio\" id=\"input-3\" name=\"demo-radio\">\n                                <label for=\"input-3\">Radio button,\n                                    <span>#input-3</span>\n                                </label>\n                            </li>\n                            <li>\n                                <input tabindex=\"4\" type=\"radio\" id=\"input-4\" name=\"demo-radio\" checked>\n                                <label for=\"input-4\">Radio button,\n                                    <span>#input-4</span>\n                                </label>\n                            </li>\n                        </ul>\n                        <script>\n                            $(document).ready(function()\n                            {\n                                var callbacks_list = $('.demo-callbacks ul');\n                                $('.demo-list input').on('ifCreated ifClicked ifChanged ifChecked ifUnchecked ifDisabled ifEnabled ifDestroyed', function(event)\n                                {\n                                    callbacks_list.prepend('<li><span>#' + this.id + '</span> is ' + event.type.replace('if', '').toLowerCase() + '</li>');\n                                }).iCheck(\n                                {\n                                    checkboxClass: 'icheckbox_square-blue',\n                                    radioClass: 'iradio_square-blue',\n                                    increaseArea: '20%'\n                                });\n                            });\n                        </script>\n                    </div>\n                    <dl class=\"demo-methods\">\n                        <dt>\n                            <span class=\"self do-check\">Add\n                                <span class=\"mark\">checked</span> state to 1 and 3 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-1, #input-3').iCheck('check');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-uncheck\">Remove\n                                <span class=\"mark\">checked</span> state from 1 and 3 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-1, #input-3').iCheck('uncheck');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-disable\">Add\n                                <span class=\"mark\">disabled</span> state to 2 and 4 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-2, #input-4').iCheck('disable');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-enable\">Remove\n                                <span class=\"mark\">disabled</span> state from 2 and 4 inputs</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('#input-2, #input-4').iCheck('enable');\n</pre> </dd>\n                        <dt>\n                            <span class=\"self do-destroy\">Remove all traces of iCheck</span>\n                            <span class=\"code\">\n                                <span class=\"self\">show code</span>\n                            </span>\n                        </dt>\n                        <dd> <pre class=\"markup\">\n$('input').iCheck('destroy');\n</pre> </dd>\n                    </dl>\n                    <div class=\"demo-callbacks\">\n                        <h2>Callbacks</h2>\n                        <ul></ul>\n                    </div>\n                </div>\n            </div>\n            <div class=\"skins\">\n                <h2>Skins</h2>\n                <div class=\"skin skin-minimal\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"demo\"></div>\n                        <div class=\"bottom\" data-to=\"skin-square\"></div>\n                    </div>\n                    <h3>Minimal skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"5\" type=\"checkbox\" id=\"minimal-checkbox-1\">\n                                        <label for=\"minimal-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"6\" type=\"checkbox\" id=\"minimal-checkbox-2\" checked>\n                                        <label for=\"minimal-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"minimal-checkbox-disabled\" disabled>\n                                        <label for=\"minimal-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"minimal-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"minimal-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"7\" type=\"radio\" id=\"minimal-radio-1\" name=\"minimal-radio\">\n                                        <label for=\"minimal-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"8\" type=\"radio\" id=\"minimal-radio-2\" name=\"minimal-radio\" checked>\n                                        <label for=\"minimal-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"minimal-radio-disabled\" disabled>\n                                        <label for=\"minimal-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"minimal-radio-disabled-checked\" checked disabled>\n                                        <label for=\"minimal-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li class=\"active\" title=\"Black\"></li>\n                                        <li class=\"red\" title=\"Red\"></li>\n                                        <li class=\"green\" title=\"Green\"></li>\n                                        <li class=\"blue\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_minimal\"></div>\n                                        <div class=\"state iradio_minimal\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal hover\"></div>\n                                        <div class=\"state iradio_minimal hover\"></div> Hover </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal checked\"></div>\n                                        <div class=\"state iradio_minimal checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal disabled\"></div>\n                                        <div class=\"state iradio_minimal disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_minimal checked disabled\"></div>\n                                        <div class=\"state iradio_minimal checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-minimal input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_minimal',\n                                        radioClass: 'iradio_minimal',\n                                        increaseArea: '20%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; minimal.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/minimal/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/minimal/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/minimal/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_minimal',\n    radioClass: 'iradio_minimal',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_minimal-red',\n    radioClass: 'iradio_minimal-red',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-square\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-minimal\"></div>\n                        <div class=\"bottom\" data-to=\"skin-flat\"></div>\n                    </div>\n                    <h3>Square skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"9\" type=\"checkbox\" id=\"square-checkbox-1\">\n                                        <label for=\"square-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"10\" type=\"checkbox\" id=\"square-checkbox-2\" checked>\n                                        <label for=\"square-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"square-checkbox-disabled\" disabled>\n                                        <label for=\"square-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"square-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"square-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"11\" type=\"radio\" id=\"square-radio-1\" name=\"square-radio\">\n                                        <label for=\"square-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"12\" type=\"radio\" id=\"square-radio-2\" name=\"square-radio\" checked>\n                                        <label for=\"square-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"square-radio-disabled\" disabled>\n                                        <label for=\"square-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"square-radio-disabled-checked\" checked disabled>\n                                        <label for=\"square-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li title=\"Black\"></li>\n                                        <li class=\"red\" title=\"Red\"></li>\n                                        <li class=\"green active\" title=\"Green\"></li>\n                                        <li class=\"blue\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_square-green\"></div>\n                                        <div class=\"state iradio_square-green\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green hover\"></div>\n                                        <div class=\"state iradio_square-green hover\"></div> Hover </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green checked\"></div>\n                                        <div class=\"state iradio_square-green checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green disabled\"></div>\n                                        <div class=\"state iradio_square-green disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_square-green checked disabled\"></div>\n                                        <div class=\"state iradio_square-green checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-square input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_square-green',\n                                        radioClass: 'iradio_square-green',\n                                        increaseArea: '20%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; square.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/square/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/square/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/square/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_square',\n    radioClass: 'iradio_square',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_square-red',\n    radioClass: 'iradio_square-red',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-flat\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-square\"></div>\n                        <div class=\"bottom\" data-to=\"skin-line\"></div>\n                    </div>\n                    <h3>Flat skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"13\" type=\"checkbox\" id=\"flat-checkbox-1\">\n                                        <label for=\"flat-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"14\" type=\"checkbox\" id=\"flat-checkbox-2\" checked>\n                                        <label for=\"flat-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"flat-checkbox-disabled\" disabled>\n                                        <label for=\"flat-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"flat-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"flat-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"15\" type=\"radio\" id=\"flat-radio-1\" name=\"flat-radio\">\n                                        <label for=\"flat-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"16\" type=\"radio\" id=\"flat-radio-2\" name=\"flat-radio\" checked>\n                                        <label for=\"flat-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"flat-radio-disabled\" disabled>\n                                        <label for=\"flat-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"flat-radio-disabled-checked\" checked disabled>\n                                        <label for=\"flat-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li title=\"Black\"></li>\n                                        <li class=\"red active\" title=\"Red\"></li>\n                                        <li class=\"green\" title=\"Green\"></li>\n                                        <li class=\"blue\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red\"></div>\n                                        <div class=\"state iradio_flat-red\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red checked\"></div>\n                                        <div class=\"state iradio_flat-red checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red disabled\"></div>\n                                        <div class=\"state iradio_flat-red disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_flat-red checked disabled\"></div>\n                                        <div class=\"state iradio_flat-red checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-flat input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_flat-red',\n                                        radioClass: 'iradio_flat-red'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; square.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/flat/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/flat/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/flat/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_flat',\n    radioClass: 'iradio_flat'\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_flat-red',\n    radioClass: 'iradio_flat-red'\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-line\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-flat\"></div>\n                        <div class=\"bottom\" data-to=\"skin-polaris\"></div>\n                    </div>\n                    <h3>Line skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"17\" type=\"checkbox\" id=\"line-checkbox-1\">\n                                        <label for=\"line-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"18\" type=\"checkbox\" id=\"line-checkbox-2\" checked>\n                                        <label for=\"line-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"line-checkbox-disabled\" disabled>\n                                        <label for=\"line-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"line-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"line-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"19\" type=\"radio\" id=\"line-radio-1\" name=\"line-radio\">\n                                        <label for=\"line-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"20\" type=\"radio\" id=\"line-radio-2\" name=\"line-radio\" checked>\n                                        <label for=\"line-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"line-radio-disabled\" disabled>\n                                        <label for=\"line-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"line-radio-disabled-checked\" checked disabled>\n                                        <label for=\"line-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <div class=\"colors clear\">\n                                    <strong>Color schemes</strong>\n                                    <ul>\n                                        <li title=\"Black\"></li>\n                                        <li class=\"red\" title=\"Red\"></li>\n                                        <li class=\"green\" title=\"Green\"></li>\n                                        <li class=\"blue active\" title=\"Blue\"></li>\n                                        <li class=\"aero\" title=\"Aero\"></li>\n                                        <li class=\"grey\" title=\"Grey\"></li>\n                                        <li class=\"orange\" title=\"Orange\"></li>\n                                        <li class=\"yellow\" title=\"Yellow\"></li>\n                                        <li class=\"pink\" title=\"Pink\"></li>\n                                        <li class=\"purple\" title=\"Purple\"></li>\n                                    </ul>\n                                </div>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue\">\n                                            <div class=\"icheck_line-icon\"></div> Normal </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue hover\">\n                                            <div class=\"icheck_line-icon\"></div> Hover </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue checked\">\n                                            <div class=\"icheck_line-icon\"></div> Checked </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue disabled\">\n                                            <div class=\"icheck_line-icon\"></div> Disabled </div>\n                                    </li>\n                                    <li>\n                                        <div class=\"state icheckbox_line-blue checked disabled\">\n                                            <div class=\"icheck_line-icon\"></div> Disabled &amp; checked </div>\n                                    </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-line input').each(function()\n                                    {\n                                        var self = $(this),\n                                            label = self.next(),\n                                            label_text = label.text();\n                                        label.remove();\n                                        self.iCheck(\n                                        {\n                                            checkboxClass: 'icheckbox_line-blue',\n                                            radioClass: 'iradio_line-blue',\n                                            insert: '<div class=\"icheck_line-icon\"></div>' + label_text\n                                        });\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Choose a color scheme, there are 10 different styles available:\n                                    <div class=\"schemes clear\">\n                                        <ul>\n                                            <li>\n                                                <strong>Black</strong> &mdash; line.css</li>\n                                            <li>\n                                                <strong>Red</strong> &mdash; red.css</li>\n                                            <li>\n                                                <strong>Green</strong> &mdash; green.css</li>\n                                            <li>\n                                                <strong>Blue</strong> &mdash; blue.css</li>\n                                            <li>\n                                                <strong>Aero</strong> &mdash; aero.css</li>\n                                        </ul>\n                                        <ul>\n                                            <li>\n                                                <strong>Grey</strong> &mdash; grey.css</li>\n                                            <li>\n                                                <strong>Orange</strong> &mdash; orange.css</li>\n                                            <li>\n                                                <strong>Yellow</strong> &mdash; yellow.css</li>\n                                            <li>\n                                                <strong>Pink</strong> &mdash; pink.css</li>\n                                            <li>\n                                                <strong>Purple</strong> &mdash; purple.css</li>\n                                        </ul>\n                                    </div>\n                                </li>\n                                <li> Copy\n                                    <span class=\"mark\">/skins/line/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/line/color-scheme.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre>\n                                    <p>Example for a\n                                        <strong>Red</strong> color scheme:</p> <pre class=\"markup\">\n&lt;link href=\"your-path/line/red.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes, radio buttons and labels to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;label>Checkbox 1&lt;/label>\n\n&lt;input type=\"checkbox\" checked>\n&lt;label>Checkbox 2&lt;/label>\n\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;label>Radio button 1&lt;/label>\n\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n&lt;label>Radio button 2&lt;/label>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').each(function(){\n    var self = $(this),\n      label = self.next(),\n      label_text = label.text();\n\n    label.remove();\n    self.iCheck({\n      checkboxClass: 'icheckbox_line',\n      radioClass: 'iradio_line',\n      insert: '&lt;div class=\"icheck_line-icon\">&lt;/div>' + label_text\n    });\n  });\n});\n&lt;/script>\n</pre>\n                                    <p>For different from black color schemes use this code (example for\n                                        <strong>Red</strong>):</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').each(function(){\n    var self = $(this),\n      label = self.next(),\n      label_text = label.text();\n\n    label.remove();\n    self.iCheck({\n      checkboxClass: 'icheckbox_line-red',\n      radioClass: 'iradio_line-red',\n      insert: '&lt;div class=\"icheck_line-icon\">&lt;/div>' + label_text\n    });\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-polaris\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-line\"></div>\n                        <div class=\"bottom\" data-to=\"skin-futurico\"></div>\n                    </div>\n                    <h3>Polaris skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"21\" type=\"checkbox\" id=\"polaris-checkbox-1\">\n                                        <label for=\"polaris-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"22\" type=\"checkbox\" id=\"polaris-checkbox-2\" checked>\n                                        <label for=\"polaris-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"polaris-checkbox-disabled\" disabled>\n                                        <label for=\"polaris-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"polaris-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"polaris-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"23\" type=\"radio\" id=\"polaris-radio-1\" name=\"polaris-radio\">\n                                        <label for=\"polaris-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"24\" type=\"radio\" id=\"polaris-radio-2\" name=\"polaris-radio\" checked>\n                                        <label for=\"polaris-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"polaris-radio-disabled\" disabled>\n                                        <label for=\"polaris-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"polaris-radio-disabled-checked\" checked disabled>\n                                        <label for=\"polaris-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_polaris\"></div>\n                                        <div class=\"state iradio_polaris\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris hover\"></div>\n                                        <div class=\"state iradio_polaris hover\"></div> Hover </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris checked\"></div>\n                                        <div class=\"state iradio_polaris checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris disabled\"></div>\n                                        <div class=\"state iradio_polaris disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_polaris checked disabled\"></div>\n                                        <div class=\"state iradio_polaris checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-polaris input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_polaris',\n                                        radioClass: 'iradio_polaris',\n                                        increaseArea: '-10%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Copy\n                                    <span class=\"mark\">/skins/polaris/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/polaris/polaris.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_polaris',\n    radioClass: 'iradio_polaris',\n    increaseArea: '-10%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skin skin-futurico\">\n                    <div class=\"arrows\">\n                        <div class=\"top\" data-to=\"skin-polaris\"></div>\n                        <div class=\"bottom\" data-to=\"usage\"></div>\n                    </div>\n                    <h3>Futurico skin</h3>\n                    <dl class=\"clear\">\n                        <dd class=\"selected\">\n                            <div class=\"skin-section\">\n                                <h4>Live</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"25\" type=\"checkbox\" id=\"futurico-checkbox-1\">\n                                        <label for=\"futurico-checkbox-1\">Checkbox 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"26\" type=\"checkbox\" id=\"futurico-checkbox-2\" checked>\n                                        <label for=\"futurico-checkbox-2\">Checkbox 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"futurico-checkbox-disabled\" disabled>\n                                        <label for=\"futurico-checkbox-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"checkbox\" id=\"futurico-checkbox-disabled-checked\" checked disabled>\n                                        <label for=\"futurico-checkbox-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                                <ul class=\"list\">\n                                    <li>\n                                        <input tabindex=\"27\" type=\"radio\" id=\"futurico-radio-1\" name=\"futurico-radio\">\n                                        <label for=\"futurico-radio-1\">Radio button 1</label>\n                                    </li>\n                                    <li>\n                                        <input tabindex=\"28\" type=\"radio\" id=\"futurico-radio-2\" name=\"futurico-radio\" checked>\n                                        <label for=\"futurico-radio-2\">Radio button 2</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"futurico-radio-disabled\" disabled>\n                                        <label for=\"futurico-radio-disabled\">Disabled</label>\n                                    </li>\n                                    <li>\n                                        <input type=\"radio\" id=\"futurico-radio-disabled-checked\" checked disabled>\n                                        <label for=\"futurico-radio-disabled-checked\">Disabled &amp; checked</label>\n                                    </li>\n                                </ul>\n                            </div>\n                            <div class=\"skin-section skin-states\">\n                                <h4>States</h4>\n                                <ul class=\"list\">\n                                    <li>\n                                        <div class=\"state icheckbox_futurico\"></div>\n                                        <div class=\"state iradio_futurico\"></div> Normal </li>\n                                    <li>\n                                        <div class=\"state icheckbox_futurico checked\"></div>\n                                        <div class=\"state iradio_futurico checked\"></div> Checked </li>\n                                    <li>\n                                        <div class=\"state icheckbox_futurico disabled\"></div>\n                                        <div class=\"state iradio_futurico disabled\"></div> Disabled </li>\n                                    <li>\n                                        <div class=\"state icheckbox_futurico checked disabled\"></div>\n                                        <div class=\"state iradio_futurico checked disabled\"></div> Disabled &amp; checked </li>\n                                </ul>\n                            </div>\n                            <script>\n                                $(document).ready(function()\n                                {\n                                    $('.skin-futurico input').iCheck(\n                                    {\n                                        checkboxClass: 'icheckbox_futurico',\n                                        radioClass: 'iradio_futurico',\n                                        increaseArea: '20%'\n                                    });\n                                });\n                            </script>\n                        </dd>\n                        <dt class=\"selected\">Demo</dt>\n                        <dd>\n                            <div class=\"skin-pre\">\n                                <p> Make sure\n                                    <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                                    <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]) is loaded before the\n                                    <span class=\"mark\">icheck.js</span>. </p>\n                            </div>\n                            <ol class=\"skin-usage\">\n                                <li> Copy\n                                    <span class=\"mark\">/skins/futurico/</span> folder and\n                                    <span class=\"mark\">icheck.js</span> file to your site. </li>\n                                <li>\n                                    <p>Insert before\n                                        <span class=\"mark\">&lt;/head></span> in your HTML (replace\n                                        <span class=\"mark\">your-path</span> and\n                                        <span class=\"mark\">color-scheme</span>):</p> <pre class=\"markup\">\n&lt;link href=\"your-path/futurico/futurico.css\" rel=\"stylesheet\">\n&lt;script src=\"your-path/icheck.js\">&lt;/script>\n</pre> </li>\n                                <li>\n                                    <p>Add some checkboxes and radio buttons to your HTML:</p> <pre class=\"markup\">\n&lt;input type=\"checkbox\">\n&lt;input type=\"checkbox\" checked>\n&lt;input type=\"radio\" name=\"iCheck\">\n&lt;input type=\"radio\" name=\"iCheck\" checked>\n</pre> </li>\n                                <li>\n                                    <p>Add JavaScript to your HTML to launch iCheck plugin:</p> <pre class=\"markup\">\n&lt;script>\n$(document).ready(function(){\n  $('input').iCheck({\n    checkboxClass: 'icheckbox_futurico',\n    radioClass: 'iradio_futurico',\n    increaseArea: '20%' <span class=\"comment\">// optional</span>\n  });\n});\n&lt;/script>\n</pre> </li>\n                                <li>Done.</li>\n                            </ol>\n                        </dd>\n                        <dt>Usage</dt>\n                    </dl>\n                </div>\n                <div class=\"skins-info\">\n                    <p>All skins (except Line) are transparent, you may use them on any background.</p>\n                    <p>\n                        <a href=\"http://designmodo.com/square/?u=718\" target=\"blank\">Square</a>,\n                        <a href=\"http://designmodo.com/flat/?u=718\" target=\"blank\">Flat</a>,\n                        <a href=\"http://designmodo.com/?u=718\" target=\"blank\">Polaris</a> and\n                        <a href=\"http://designmodo.com/futuricopro/?u=718\" target=\"blank\">Futurico</a> skins are based on\n                        <a href=\"http://designmodo.com/shop/?u=718\" target=\"blank\">Designmodo's UI packs</a>.</p>\n                    <p class=\"skins-banner\">\n                        <a href=\"http://designmodo.com/shop/?u=718\" target=\"blank\">Awesome UI packs</a>\n                    </p>\n                </div>\n            </div>\n            <div class=\"usage\">\n                <div class=\"arrows\">\n                    <div class=\"top\" data-to=\"skin-futurico\"></div>\n                    <div class=\"bottom\" data-to=\"comparison\"></div>\n                </div>\n                <h2>Simple usage</h2>\n                <div class=\"usage-inner\">\n                    <p> iCheck plugin works with checkboxes and radio buttons like a constructor.\n                        <br>\n                        <strong>It wraps each input with a div</strong>, which may be customized by you or using one of the\n                        <span class=\"self\" data-to=\"skins\">available skins</span>.\n                        <br>You may also place inside that div some HTML code or text using\n                        <span class=\"mark\">insert</span> option. </p>\n                    <p class=\"offset\">For this HTML:</p> <pre class=\"markup\">\n&lt;label>\n  &lt;input type=\"checkbox\" name=\"quux[1]\" disabled>\n  Foo\n&lt;/label>\n\n&lt;label for=\"baz[1]\">Bar&lt;/label>\n&lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[1]\" checked>\n\n&lt;label for=\"baz[2]\">Bar&lt;/label>\n&lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[2]\">\n</pre>\n                    <p class=\"offset\">With default options you'll get nearly this:</p> <pre class=\"markup\">\n&lt;label>\n  &lt;div class=\"icheckbox disabled\">\n    &lt;input type=\"checkbox\" name=\"quux[1]\" disabled>\n  &lt;/div>\n  Foo\n&lt;/label>\n\n&lt;label for=\"baz[1]\">Bar&lt;/label>\n&lt;div class=\"iradio checked\">\n  &lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[1]\" checked>\n&lt;/div>\n\n&lt;label for=\"baz[2]\">Bar&lt;/label>\n&lt;div class=\"iradio\">\n  &lt;input type=\"radio\" name=\"quux[2]\" id=\"baz[2]\">\n&lt;/div>\n</pre>\n                    <p>\n                        <strong>By default, iCheck doesn't provide any CSS styles for wrapper divs</strong> (if you don't use\n                        <span class=\"self\" data-to=\"skins\">skins</span>).</p>\n                    <h4 class=\"options\">Options</h4>\n                    <p>These options are default:</p> <pre class=\"markup\">\n{\n  <span class=\"comment\">// 'checkbox' or 'radio' to style only checkboxes or radio buttons, both by default</span>\n  handle: '',\n\n  <span class=\"comment\">// base class added to customized checkboxes</span>\n  checkboxClass: 'icheckbox',\n\n  <span class=\"comment\">// base class added to customized radio buttons</span>\n  radioClass: 'iradio',\n\n  <span class=\"comment\">// class added on checked state (input.checked = true)</span>\n  checkedClass: 'checked',\n\n    <span class=\"comment\">// if not empty, used instead of 'checkedClass' option (input type specific)</span>\n    checkedCheckboxClass: '',\n    checkedRadioClass: '',\n\n  <span class=\"comment\">// if not empty, added as class name on unchecked state (input.checked = false)</span>\n  uncheckedClass: '',\n\n    <span class=\"comment\">// if not empty, used instead of 'uncheckedClass' option (input type specific)</span>\n    uncheckedCheckboxClass: '',\n    uncheckedRadioClass: '',\n\n  <span class=\"comment\">// class added on disabled state (input.disabled = true)</span>\n  disabledClass: 'disabled',\n\n    <span class=\"comment\">// if not empty, used instead of 'disabledClass' option (input type specific)</span>\n    disabledCheckboxClass: '',\n    disabledRadioClass: '',\n\n  <span class=\"comment\">// if not empty, added as class name on enabled state (input.disabled = false)</span>\n  enabledClass: '',\n\n    <span class=\"comment\">// if not empty, used instead of 'enabledClass' option (input type specific)</span>\n    enabledCheckboxClass: '',\n    enabledRadioClass: '',\n\n  <span class=\"comment\">// class added on <span class=\"self\" data-to=\"indeterminate\">indeterminate state</span> (input.indeterminate = true)</span>\n  indeterminateClass: 'indeterminate',\n\n    <span class=\"comment\">// if not empty, used instead of 'indeterminateClass' option (input type specific)</span>\n    indeterminateCheckboxClass: '',\n    indeterminateRadioClass: '',\n\n  <span class=\"comment\">// if not empty, added as class name on determinate state (input.indeterminate = false)</span>\n  determinateClass: '',\n\n    <span class=\"comment\">// if not empty, used instead of 'determinateClass' option (input type specific)</span>\n    determinateCheckboxClass: '',\n    determinateRadioClass: '',\n\n  <span class=\"comment\">// class added on hover state (pointer is moved onto input)</span>\n  hoverClass: 'hover',\n\n  <span class=\"comment\">// class added on focus state (input has gained focus)</span>\n  focusClass: 'focus',\n\n  <span class=\"comment\">// class added on active state (mouse button is pressed on input)</span>\n  activeClass: 'active',\n\n  <span class=\"comment\">// adds hoverClass to customized input on label hover and labelHoverClass to label on input hover</span>\n  labelHover: true,\n\n    <span class=\"comment\">// class added to label if labelHover set to true</span>\n    labelHoverClass: 'hover',\n\n  <span class=\"comment\">// increase clickable area by given % (negative number to decrease)</span>\n  increaseArea: '',\n\n  <span class=\"comment\">// true to set 'pointer' CSS cursor over enabled inputs and 'default' over disabled</span>\n  cursor: false,\n\n  <span class=\"comment\">// set true to inherit original input's class name</span>\n  inheritClass: false,\n\n  <span class=\"comment\">// if set to true, input's id is prefixed with 'iCheck-' and attached</span>\n  inheritID: false,\n\n  <span class=\"comment\">// set true to activate ARIA support</span>\n  aria: false,\n\n  <span class=\"comment\">// add HTML code or text inside customized input</span>\n  insert: ''\n}\n</pre>\n                    <p>There's no need to copy and paste all of them, you can just mention the ones you need:</p> <pre class=\"markup\">\n$('input').iCheck({\n  labelHover: false,\n  cursor: true\n});\n</pre>\n                    <p>You can choose any class names and slyle them as you want.</p>\n                    <h4 class=\"init\">Initialize</h4>\n                    <p>Just include\n                        <span class=\"mark\">icheck.js</span> after\n                        <a href=\"http://jquery.com\" target=\"blank\">jQuery v1.7+</a> (or\n                        <a href=\"http://github.com/madrobby/zepto#zepto-modules\" target=\"blank\">Zepto</a> [polyfill, event, data]).</p>\n                    <p>iCheck supports any selectors, but handles only checkboxes and radio buttons:</p> <pre class=\"markup\">\n<span class=\"comment\">// customize all inputs (will search for checkboxes and radio buttons)</span>\n$('input').iCheck();\n\n<span class=\"comment\">// handle inputs only inside $('.block')</span>\n$('.block input').iCheck();\n\n<span class=\"comment\">// handle only checkboxes inside $('.test')</span>\n$('.test input').iCheck({\n  handle: 'checkbox'\n});\n\n<span class=\"comment\">// handle .vote class elements (will search inside the element, if it's not an input)</span>\n$('.vote').iCheck();\n\n<span class=\"comment\">// you can also change options after inputs are customized</span>\n$('input.some').iCheck({\n  <span class=\"comment\">// different options</span>\n});\n</pre>\n                    <h4 class=\"indeterminate\">Indeterminate</h4>\n                    <p>HTML5 allows specifying\n                        <a href=\"http://css-tricks.com/indeterminate-checkboxes/\" target=\"blank\">indeterminate</a> (\"partially\" checked) state for checkboxes. iCheck supports it for both checkboxes and radio buttons.</p>\n                    <p>You can make an input indeterminate through HTML using additional attributes (supported by iCheck). Both do the same job, but\n                        <span class=\"mark\">indeterminate=\"true\"</span> may not work in some browsers (like IE7):</p> <pre class=\"markup\">\n<span class=\"comment\">&lt;!-- indeterminate=\"true\" --></span>\n&lt;input type=\"checkbox\" indeterminate=\"true\">\n&lt;input type=\"radio\" indeterminate=\"true\">\n\n<span class=\"comment\">&lt;!-- determinate=\"false\" --></span>\n&lt;input type=\"checkbox\" determinate=\"false\">\n&lt;input type=\"radio\" determinate=\"false\">\n</pre>\n                    <p>\n                        <span class=\"mark\">indeterminate</span> and\n                        <span class=\"mark\">determinate</span>\n                        <span class=\"self\" data-to=\"methods\">methods</span> can be used to toggle indeterminate state.</p>\n                    <h4 class=\"callbacks\">Callbacks</h4>\n                    <p class=\"callbacks-info\">iCheck provides plenty callbacks, which may be used to handle changes.</p>\n                    <table>\n                        <thead>\n                            <tr>\n                                <th>Callback name</th>\n                                <td>When used</td>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr>\n                                <th>ifClicked</th>\n                                <td>user clicked on a customized input or an assigned label</td>\n                            </tr>\n                            <tr>\n                                <th>ifChanged</th>\n                                <td>input's\n                                    <span class=\"mark\">checked</span>,\n                                    <span class=\"mark\">disabled</span> or\n                                    <span class=\"mark\">indeterminate</span> state is changed</td>\n                            </tr>\n                            <tr>\n                                <th>ifChecked</th>\n                                <td>input's state is changed to\n                                    <span class=\"mark\">checked</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <th>ifUnchecked</th>\n                                <td>\n                                    <span class=\"mark\">checked</span> state is removed</td>\n                            </tr>\n                            <tr>\n                                <th>ifToggled</th>\n                                <td>input's\n                                    <span class=\"mark\">checked</span> state is changed</td>\n                            </tr>\n                            <tr>\n                                <th>ifDisabled</th>\n                                <td>input's state is changed to\n                                    <span class=\"mark\">disabled</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <th>ifEnabled</th>\n                                <td>\n                                    <span class=\"mark\">disabled</span> state is removed</td>\n                            </tr>\n                            <tr>\n                                <th>ifIndeterminate</th>\n                                <td>input's state is changed to\n                                    <span class=\"mark\">indeterminate</span>\n                                </td>\n                            </tr>\n                            <tr>\n                                <th>ifDeterminate</th>\n                                <td>\n                                    <span class=\"mark\">indeterminate</span> state is removed</td>\n                            </tr>\n                            <tr>\n                                <th>ifCreated</th>\n                                <td>input is just customized</td>\n                            </tr>\n                            <tr>\n                                <th>ifDestroyed</th>\n                                <td>customization is just removed</td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <p>Use\n                        <span class=\"mark\">on()</span> method to bind them to inputs:\n                        <p> <pre class=\"markup\">\n$('input').on('ifChecked', function(event){\n  alert(event.type + ' callback');\n});\n</pre>\n                            <p>\n                                <span class=\"mark\">ifCreated</span> callback should be binded before plugin init.</p>\n                            <h4 class=\"methods\">Methods</h4>\n                            <p class=\"methods-info\">These methods can be used to make changes programmatically (any selectors can be used):</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('check');</span> &mdash; change input's state to\n                                <span class=\"mark\">checked</span>\n                            </p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('uncheck');</span> &mdash; remove\n                                <span class=\"mark\">checked</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('toggle');</span> &mdash; toggle\n                                <span class=\"mark\">checked</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('disable');</span> &mdash; change input's state to\n                                <span class=\"mark\">disabled</span>\n                            </p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('enable');</span> &mdash; remove\n                                <span class=\"mark\">disabled</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('indeterminate');</span> &mdash; change input's state to\n                                <span class=\"mark\">indeterminate</span>\n                            </p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('determinate');</span> &mdash; remove\n                                <span class=\"mark\">indeterminate</span> state</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('update');</span> &mdash; apply input changes, which were done outside the plugin</p>\n                            <p>\n                                <span class=\"mark\">$('input').iCheck('destroy');</span> &mdash; remove all traces of iCheck</p>\n                            <p class=\"methods-callback\">You may also specify some function, that will be executed on each method call:</p> <pre class=\"markup\">\n$('input').iCheck('check', function(){\n  alert('Well done, Sir');\n});\n</pre>\n                            <p class=\"issue-tracker\">Feel free to\n                                <a href=\"http://github.com/fronteed/iCheck/\">fork and submit pull-request</a> or\n                                <a href=\"http://github.com/fronteed/iCheck/issues\">submit an issue</a> if you find something not working.</p>\n                </div>\n            </div>\n            <div class=\"benefits comparison\">\n                <div class=\"arrows\">\n                    <div class=\"top\" data-to=\"usage\"></div>\n                    <div class=\"bottom\" data-to=\"download\"></div>\n                </div>\n                <h2>Comparison</h2>\n                <div class=\"benefits-inner\">\n                    <p>iCheck is created to avoid routine of reinventing the wheel when working with checkboxes and radio buttons. It provides an expected identical result for the huge number of browsers, devices and their versions. Callbacks and methods\n                        can be used to easily handle and make changes at customized inputs.</p>\n                    <p>There are some CSS3 ways available to style checkboxes and radio buttons, like\n                        <a href=\"http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/quick-tip-easy-css3-checkboxes-and-radio-buttons/\" target=\"blank\">this one</a>. You have to know about some of the disadvantages of similar methods:</p>\n                    <ul>\n                        <li> &mdash; inputs are keyboard inaccessible, since\n                            <span class=\"mark\">display: none</span> or\n                            <span class=\"mark\">visibility: hidden</span> used to hide them </li>\n                        <li> &mdash; poor browser support </li>\n                        <li> &mdash; multiple bugs on mobile devices </li>\n                        <li> &mdash; tricky, harder to maintain CSS code </li>\n                        <li> &mdash; JavaScript is still needed to fix specific issues </li>\n                    </ul>\n                    <p>While CSS3 method is quite limited solution, iCheck is made to be an everyday replacement covering most of the tasks.</p>\n                </div>\n            </div>\n            <div class=\"browsers\">\n                <h2>Browser support</h2>\n                <div class=\"browsers-inner\">\n                    <p>iCheck is verified to work in Internet Explorer 6+, Firefox 2+, Opera 9+, Google Chrome and Safari browsers. Should also work in many others.</p>\n                    <p>Mobile browsers (like Opera mini, Chrome mobile, Safari mobile, Android browser, Silk and others) are also supported. Tested on iOS (iPad, iPhone, iPod), Android, BlackBerry and Windows Phone devices.</p>\n                </div>\n            </div>\n            <div class=\"download\">\n                <a href=\"http://github.com/fronteed/iCheck/\">Download plugin</a>\n            </div>\n            <div class=\"license\">iCheck plugin is released under the\n                <a href=\"http://en.wikipedia.org/wiki/MIT_License\" target=\"blank\">MIT License</a>. Feel free to use it in personal and commercial projects.</div>\n        </div>\n        <div class=\"footer\">\n            <div class=\"footer-inner clear\">\n                <ul class=\"local\">\n                    <li>\n                        <a href=\"https://github.com/fronteed/iCheck\">Star on Github</a>\n                    </li>\n                    <li>\n                        <a href=\"https://twitter.com/intent/tweet?text=Highly customizable checkboxes and radio buttons&amp;url=http://fronteed.com/iCheck/&amp;via=fronteed&amp;hashtags=jQuery,Zepto\">Share on Twitter</a>\n                    </li>\n                    <li>\n                        <a href=\"http://twitter.com/fronteed/\">Follow @fronteed</a>\n                    </li>\n                </ul>\n                <div class=\"code\"> Created by\n                    <a href=\"http://fronteed.com/\">Damir Sultanov</a>\n                </div>\n            </div>\n        </div>\n        <a href=\"http://github.com/fronteed/iCheck/\" class=\"fork-me\">Fork me on GitHub</a>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/demo/js/custom.js",
    "content": "$(document).ready(function() {\n  var hash = window.location.hash.replace('#', '');\n\n  if (hash && $('.' + hash).length) {\n    var point = $('.' + hash).offset().top - 40;\n\n    if (window.Zepto) {\n      window.scrollTo(0, point);\n    } else {\n      $(window).scrollTop($('.' + hash).offset().top - 40);\n    };\n  };\n\n  $('.skin dt').click(function() {\n    $(this).siblings().removeClass('selected').end().prev('dd').andSelf().addClass('selected');\n  });\n\n  $('.arrows .top, .arrows .bottom, .features .self, .skins-info .self, .usage .self').click(function(event) {\n    var target = $(this).data('to'),\n      target_offset = $('.' + target).offset().top;\n\n    event.preventDefault();\n    window.location.hash = target;\n\n    if (window.Zepto) {\n      window.scrollTo(0, target_offset - 40);\n    } else {\n      $('html, body').stop().animate({scrollTop: target_offset - 40}, 600);\n    };\n  });\n\n  $('.colors li').click(function() {\n    var self = $(this);\n\n    if (!self.hasClass('active')) {\n      self.siblings().removeClass('active');\n\n      var skin = self.closest('.skin'),\n        color = self.attr('class') ? '-' + self.attr('class') : '',\n        checkbox = skin.data('icheckbox'),\n        radio = skin.data('iradio'),\n        checkbox_default = 'icheckbox_minimal',\n        radio_default = 'iradio_minimal';\n\n      if (skin.hasClass('skin-square')) {\n        checkbox_default = 'icheckbox_square', radio_default = 'iradio_square';\n        checkbox == undefined && (checkbox = 'icheckbox_square-green', radio = 'iradio_square-green');\n      };\n\n      if (skin.hasClass('skin-flat')) {\n        checkbox_default = 'icheckbox_flat', radio_default = 'iradio_flat';\n        checkbox == undefined && (checkbox = 'icheckbox_flat-red', radio = 'iradio_flat-red');\n      };\n\n      if (skin.hasClass('skin-line')) {\n        checkbox_default = 'icheckbox_line', radio_default = 'iradio_line';\n        checkbox == undefined && (checkbox = 'icheckbox_line-blue', radio = 'iradio_line-blue');\n      };\n\n      checkbox == undefined && (checkbox = checkbox_default, radio = radio_default);\n\n      skin.find('input, .skin-states .state').each(function() {\n        var element = $(this).hasClass('state') ? $(this) : $(this).parent(),\n          element_class = element.attr('class').replace(checkbox, checkbox_default + color).replace(radio, radio_default + color);\n\n        element.attr('class', element_class);\n      });\n\n      skin.data('icheckbox', checkbox_default + color);\n      skin.data('iradio', radio_default + color);\n      self.addClass('active');\n    };\n  });\n\n  $('.demo-methods dt .self').click(function() {\n    var self = $(this),\n      self_class = self.attr('class').replace('self ', '');\n\n    switch (self_class) {\n      case 'do-check':\n        $('#input-1, #input-3').iCheck('check');\n        break;\n      case 'do-uncheck':\n        $('#input-1, #input-3').iCheck('uncheck');\n        break;\n      case 'do-disable':\n        $('#input-2, #input-4').iCheck('disable');\n        break;\n      case 'do-enable':\n        $('#input-2, #input-4').iCheck('enable');\n        break;\n      case 'do-destroy':\n        $('.demo-list input').iCheck('destroy');\n        break;\n      default:\n        var text = self.hasClass('active') ? 'show code' : 'hide code';\n\n        self.toggleClass('active').text(text);\n\n        if (window.Zepto) {\n          $(this).closest('dt').next().toggle();\n        } else {\n          $(this).closest('dt').next().slideToggle(200);\n        };\n\n        break;\n    };\n  });\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/demo/js/jquery.js",
    "content": "/*!\n * jQuery v1.8.3 jquery.com | jquery.org/license\n */\n(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i=\"data-\"+n.replace(P,\"-$1\").toLowerCase();r=e.getAttribute(i);if(typeof r==\"string\"){try{r=r===\"true\"?!0:r===\"false\"?!1:r===\"null\"?null:+r+\"\"===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t===\"data\"&&v.isEmptyObject(e[t]))continue;if(t!==\"toJSON\")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t==\"string\"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split(\"|\"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n===\"object\"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n===\"input\"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n===\"option\"?t.selected=e.defaultSelected:n===\"input\"||n===\"textarea\"?t.defaultValue=e.defaultValue:n===\"script\"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!=\"undefined\"?e.getElementsByTagName(\"*\"):typeof e.querySelectorAll!=\"undefined\"?e.querySelectorAll(\"*\"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,\"display\")===\"none\"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,\"olddisplay\"),t?(!i[s]&&n.style.display===\"none\"&&(n.style.display=\"\"),n.style.display===\"\"&&Gt(n)&&(i[s]=v._data(n,\"olddisplay\",nn(n.nodeName)))):(r=Dt(n,\"display\"),!i[s]&&r!==\"none\"&&v._data(n,\"olddisplay\",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display===\"none\"||n.style.display===\"\")n.style.display=t?i[s]||\"\":\"none\"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||\"px\"):t}function en(e,t,n,r){var i=n===(r?\"border\":\"content\")?4:t===\"width\"?1:0,s=0;for(;i<4;i+=2)n===\"margin\"&&(s+=v.css(e,n+$t[i],!0)),r?(n===\"content\"&&(s-=parseFloat(Dt(e,\"padding\"+$t[i]))||0),n!==\"margin\"&&(s-=parseFloat(Dt(e,\"border\"+$t[i]+\"Width\"))||0)):(s+=parseFloat(Dt(e,\"padding\"+$t[i]))||0,n!==\"padding\"&&(s+=parseFloat(Dt(e,\"border\"+$t[i]+\"Width\"))||0));return s}function tn(e,t,n){var r=t===\"width\"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,\"boxSizing\")===\"border-box\";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?\"border\":\"content\"),i)+\"px\"}function nn(e){if(Wt[e])return Wt[e];var t=v(\"<\"+e+\">\").appendTo(i.body),n=t.css(\"display\");t.remove();if(n===\"none\"||n===\"\"){Pt=i.body.appendChild(Pt||v.extend(i.createElement(\"iframe\"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(\"<!doctype html><html><body>\"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,\"display\"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+\"[\"+(typeof i==\"object\"?t:\"\")+\"]\",i,n,r)});else if(!n&&v.type(t)===\"object\")for(i in t)fn(e+\"[\"+i+\"]\",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!=\"string\"&&(n=t,t=\"*\");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\\+/.test(r),s&&(r=r.substr(1)||\"*\"),i=e[r]=e[r]||[],i[s?\"unshift\":\"push\"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u==\"string\"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o[\"*\"]&&(u=kn(e,n,r,i,\"*\",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]===\"*\")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader(\"content-type\"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+\" \"+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!==\"*\"){if(u!==\"*\"&&u!==i){n=a[u+\" \"+i]||a[\"* \"+i];if(!n)for(r in a){s=r.split(\" \");if(s[1]===i){n=a[u+\" \"+s[0]]||a[\"* \"+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e[\"throws\"])t=n(t);else try{t=n(t)}catch(l){return{state:\"parsererror\",error:n?l:\"No conversion from \"+u+\" to \"+i}}}u=i}return{state:\"success\",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject(\"Microsoft.XMLHTTP\")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn[\"*\"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&\"expand\"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,\"fx\"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,\"fx\").length||l.empty.fire()})})),e.nodeType===1&&(\"height\"in t||\"width\"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,\"display\")===\"inline\"&&v.css(e,\"float\")===\"none\"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)===\"inline\"?p.display=\"inline-block\":p.zoom=1)),n.overflow&&(p.overflow=\"hidden\",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s===\"toggle\";if(s===(g?\"hide\":\"show\"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,\"fxshow\")||v._data(e,\"fxshow\",{}),\"hidden\"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,\"fxshow\",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i===\"width\"||i===\"height\"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r[\"margin\"+n]=r[\"padding\"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source,g=/\\S/,y=/\\s+/,b=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,w=/^(?:[^#<]*(<[\\w\\W]+>)[^>]*$|#([\\w\\-]*)$)/,E=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,S=/^[\\],:{}\\s]*$/,x=/(?:^|:|,)(?:\\s*\\[)+/g,T=/\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g,N=/\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/g,C=/^-ms-/,k=/-([\\da-z])/gi,L=function(e,t){return(t+\"\").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener(\"DOMContentLoaded\",A,!1),v.ready()):i.readyState===\"complete\"&&(i.detachEvent(\"onreadystatechange\",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e==\"string\"){e.charAt(0)===\"<\"&&e.charAt(e.length-1)===\">\"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:\"\",jquery:\"1.8.3\",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t===\"find\"?r.selector=this.selector+(this.selector?\" \":\"\")+n:t&&(r.selector=this.selector+\".\"+t+\"(\"+n+\")\"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),\"slice\",l.call(arguments).join(\",\"))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u==\"boolean\"&&(l=u,u=arguments[1]||{},a=2),typeof u!=\"object\"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger(\"ready\").off(\"ready\")},isFunction:function(e){return v.type(e)===\"function\"},isArray:Array.isArray||function(e){return v.type(e)===\"array\"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||\"object\"},isPlainObject:function(e){if(!e||v.type(e)!==\"object\"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,\"constructor\")&&!p.call(e.constructor.prototype,\"isPrototypeOf\"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!=\"string\"?null:(typeof t==\"boolean\"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!=\"string\")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,\"@\").replace(N,\"]\").replace(x,\"\")))return(new Function(\"return \"+t))();v.error(\"Invalid JSON: \"+t)},parseXML:function(n){var r,i;if(!n||typeof n!=\"string\")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,\"text/xml\")):(r=new ActiveXObject(\"Microsoft.XMLDOM\"),r.async=\"false\",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName(\"parsererror\").length)&&v.error(\"Invalid XML: \"+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,\"ms-\").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call(\"\\ufeff\\u00a0\")?function(e){return e==null?\"\":d.call(e)}:function(e){return e==null?\"\":(e+\"\").replace(b,\"\")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n===\"string\"||n===\"function\"||n===\"regexp\"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r==\"number\")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a==\"number\"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n==\"string\"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r==\"object\"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState===\"complete\")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener(\"DOMContentLoaded\",A,!1),e.addEventListener(\"load\",v.ready,!1);else{i.attachEvent(\"onreadystatechange\",A),e.attachEvent(\"onload\",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll(\"left\")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each(\"Boolean Number String Function Array Date RegExp Object\".split(\" \"),function(e,t){O[\"[object \"+t+\"]\"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e==\"string\"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i===\"function\"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!==\"string\"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[[\"resolve\",\"done\",v.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",v.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",v.Callbacks(\"memory\")]],n=\"pending\",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+\"With\"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+\"With\"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement(\"div\");p.setAttribute(\"className\",\"t\"),p.innerHTML=\"  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\",n=p.getElementsByTagName(\"*\"),r=p.getElementsByTagName(\"a\")[0];if(!n||!r||!n.length)return{};s=i.createElement(\"select\"),o=s.appendChild(i.createElement(\"option\")),u=p.getElementsByTagName(\"input\")[0],r.style.cssText=\"top:1px;float:left;opacity:.5\",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName(\"tbody\").length,htmlSerialize:!!p.getElementsByTagName(\"link\").length,style:/top/.test(r.getAttribute(\"style\")),hrefNormalized:r.getAttribute(\"href\")===\"/a\",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value===\"on\",optSelected:o.selected,getSetAttribute:p.className!==\"t\",enctype:!!i.createElement(\"form\").enctype,html5Clone:i.createElement(\"nav\").cloneNode(!0).outerHTML!==\"<:nav></:nav>\",boxModel:i.compatMode===\"CSS1Compat\",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent(\"onclick\",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent(\"onclick\"),p.detachEvent(\"onclick\",h)),u=i.createElement(\"input\"),u.value=\"t\",u.setAttribute(\"type\",\"radio\"),t.radioValue=u.value===\"t\",u.setAttribute(\"checked\",\"checked\"),u.setAttribute(\"name\",\"t\"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f=\"on\"+l,c=f in p,c||(p.setAttribute(f,\"return;\"),c=typeof p[f]==\"function\"),t[l+\"Bubbles\"]=c;return v(function(){var n,r,s,o,u=\"padding:0;margin:0;border:0;display:block;overflow:hidden;\",a=i.getElementsByTagName(\"body\")[0];if(!a)return;n=i.createElement(\"div\"),n.style.cssText=\"visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px\",a.insertBefore(n,a.firstChild),r=i.createElement(\"div\"),n.appendChild(r),r.innerHTML=\"<table><tr><td></td><td>t</td></tr></table>\",s=r.getElementsByTagName(\"td\"),s[0].style.cssText=\"padding:0;margin:0;border:0;display:none\",c=s[0].offsetHeight===0,s[0].style.display=\"\",s[1].style.display=\"none\",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML=\"\",r.style.cssText=\"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!==\"1%\",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:\"4px\"}).width===\"4px\",o=i.createElement(\"div\"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width=\"0\",r.style.width=\"1px\",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!=\"undefined\"&&(r.innerHTML=\"\",r.style.cssText=u+\"width:1px;padding:1px;display:inline;zoom:1\",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display=\"block\",r.style.overflow=\"visible\",r.innerHTML=\"<div></div>\",r.firstChild.style.width=\"5px\",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:\"jQuery\"+(v.fn.jquery+Math.random()).replace(/\\D/g,\"\"),noData:{embed:!0,object:\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n==\"string\",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n==\"object\"||typeof n==\"function\")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(\" \")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute(\"classid\")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,\"parsedAttrs\")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf(\"data-\")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,\"parsedAttrs\",!0)}}return l}return typeof e==\"object\"?this.each(function(){v.data(this,e)}):(r=e.split(\".\",2),r[1]=r[1]?\".\"+r[1]:\"\",i=r[1]+\"!\",v.access(this,function(n){if(n===t)return l=this.triggerHandler(\"getData\"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler(\"setData\"+i,r),v.data(this,e,n),t.triggerHandler(\"changeData\"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i===\"inprogress\"&&(i=n.shift(),r--),i&&(t===\"fx\"&&n.unshift(\"inprogress\"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks(\"once memory\").add(function(){v.removeData(e,t+\"queue\",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!=\"string\"&&(n=e,e=\"fx\",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e===\"fx\"&&t[0]!==\"inprogress\"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||\"fx\",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!=\"string\"&&(n=e,e=t),e=e||\"fx\";while(u--)r=v._data(o[u],e+\"queueHooks\"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\\t\\r\\n]/g,R=/\\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e==\"string\"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=\" \"+i.className+\" \";for(o=0,u=t.length;o<u;o++)s.indexOf(\" \"+t[o]+\" \")<0&&(s+=t[o]+\" \");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e==\"string\"||e===t){n=(e||\"\").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(\" \"+i.className+\" \").replace(q,\" \");for(s=0,o=n.length;s<o;s++)while(r.indexOf(\" \"+n[s]+\" \")>=0)r=r.replace(\" \"+n[s]+\" \",\" \");i.className=e?v.trim(r):\"\"}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t==\"boolean\";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n===\"string\"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?\"addClass\":\"removeClass\"](i)}else if(n===\"undefined\"||n===\"boolean\")this.className&&v._data(this,\"__className__\",this.className),this.className=this.className||e===!1?\"\":v._data(this,\"__className__\")||\"\"})},hasClass:function(e){var t=\" \"+e+\" \",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(\" \"+this[n].className+\" \").replace(q,\" \").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&\"get\"in n&&(r=n.get(s,\"value\"))!==t?r:(r=s.value,typeof r==\"string\"?r.replace(R,\"\"):r==null?\"\":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s=\"\":typeof s==\"number\"?s+=\"\":v.isArray(s)&&(s=v.map(s,function(e){return e==null?\"\":e+\"\"})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!(\"set\"in n)||n.set(this,s,\"value\")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type===\"select-one\"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute(\"disabled\")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,\"optgroup\"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find(\"option\").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute==\"undefined\")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&\"set\"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+\"\"),r)}return o&&\"get\"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,\"\"),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error(\"type property can't be changed\");else if(!v.support.radioValue&&t===\"radio\"&&v.nodeName(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,\"button\")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,\"button\"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:\"tabIndex\",readonly:\"readOnly\",\"for\":\"htmlFor\",\"class\":\"className\",maxlength:\"maxLength\",cellspacing:\"cellSpacing\",cellpadding:\"cellPadding\",rowspan:\"rowSpan\",colspan:\"colSpan\",usemap:\"useMap\",frameborder:\"frameBorder\",contenteditable:\"contentEditable\"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&\"set\"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&\"get\"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode(\"tabindex\");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!=\"boolean\"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!==\"\":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+\"\"}},v.each([\"width\",\"height\"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n===\"\")return e.setAttribute(t,\"auto\"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===\"\"&&(t=\"false\"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each([\"href\",\"src\",\"width\",\"height\"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+\"\"}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype=\"encoding\"),v.support.checkOn||v.each([\"radio\",\"checkbox\"],function(){v.valHooks[this]={get:function(e){return e.getAttribute(\"value\")===null?\"on\":e.value}}}),v.each([\"radio\",\"checkbox\"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\\.]*|)(?:\\.(.+)|)$/,K=/(?:^|\\s)hover(\\.\\S+|)\\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,\"mouseenter$1 mouseleave$1\")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v==\"undefined\"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(\" \");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||\"\").split(\".\").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(\".\")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent(\"on\"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||\"\")).split(\" \");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp(\"(^|\\\\.)\"+f.split(\".\").sort().join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r===\"**\"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,\"events\",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf(\"!\")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(\".\")>=0&&(b=y.split(\".\"),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n==\"object\"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join(\".\"),n.namespace_re=n.namespace?new RegExp(\"(^|\\\\.)\"+b.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,h=y.indexOf(\":\")<0?\"on\"+y:\"\";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,\"events\")||{})[n.type]&&v._data(l,\"handle\"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!==\"click\"||!v.nodeName(s,\"a\"))&&v.acceptData(s)&&h&&s[y]&&(y!==\"focus\"&&y!==\"blur\"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,\"events\")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!==\"click\"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!==\"click\"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:\"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\"char charCode key keyCode\".split(\" \"),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:\"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:\"focusin\"},blur:{delegateType:\"focusout\"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r=\"on\"+t;e.detachEvent&&(typeof e[r]==\"undefined\"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,\"form\"))return!1;v.event.add(this,\"click._submit keypress._submit\",function(e){var n=e.target,r=v.nodeName(n,\"input\")||v.nodeName(n,\"button\")?n.form:t;r&&!v._data(r,\"_submit_attached\")&&(v.event.add(r,\"submit._submit\",function(e){e._submit_bubble=!0}),v._data(r,\"_submit_attached\",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate(\"submit\",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,\"form\"))return!1;v.event.remove(this,\"._submit\")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type===\"checkbox\"||this.type===\"radio\")v.event.add(this,\"propertychange._change\",function(e){e.originalEvent.propertyName===\"checked\"&&(this._just_changed=!0)}),v.event.add(this,\"click._change\",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate(\"change\",this,e,!0)});return!1}v.event.add(this,\"beforeactivate._change\",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,\"_change_attached\")&&(v.event.add(t,\"change._change\",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate(\"change\",this.parentNode,e,!0)}),v._data(t,\"_change_attached\",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!==\"radio\"&&t.type!==\"checkbox\")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,\"._change\"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e==\"object\"){typeof n!=\"string\"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n==\"string\"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+\".\"+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e==\"object\"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n==\"function\")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||\"**\",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,\"**\"):this.off(t,e||\"**\",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,\"lastToggle\"+e.guid)||0)%r;return v._data(this,\"lastToggle\"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu\".split(\" \"),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!=\"string\")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,\"$1\"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n===\"input\"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n===\"input\"||n===\"button\")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+\" \"];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j,\" \");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir===\"parentNode\",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+\" \"+o+\" \",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a==\"string\"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||\"*\",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[\" \"],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join(\"\").replace(j,\"$1\"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(\"\"))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w=\"0\",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG(\"*\",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type===\"ID\"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,\"\"),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,\"\"),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join(\"\");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p=\"undefined\",d=(\"sizcache\"+Math.random()).replace(\".\",\"\"),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+\" \"]=r},e)},k=C(),L=C(),A=C(),O=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",M=\"(?:\\\\\\\\.|[-\\\\w]|[^\\\\x00-\\\\xa0])+\",_=M.replace(\"w\",\"w#\"),D=\"([*^$|!~]?=)\",P=\"\\\\[\"+O+\"*(\"+M+\")\"+O+\"*(?:\"+D+O+\"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\"+_+\")|)|)\"+O+\"*\\\\]\",H=\":(\"+M+\")(?:\\\\((?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\2|([^()[\\\\]]*|(?:(?:\"+P+\")|[^:]|\\\\\\\\.)*|.*))\\\\)|)\",B=\":(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+O+\"*((?:-\\\\d)?\\\\d*)\"+O+\"*\\\\)|)(?=[^-]|$)\",j=new RegExp(\"^\"+O+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+O+\"+$\",\"g\"),F=new RegExp(\"^\"+O+\"*,\"+O+\"*\"),I=new RegExp(\"^\"+O+\"*([\\\\x20\\\\t\\\\r\\\\n\\\\f>+~])\"+O+\"*\"),q=new RegExp(H),R=/^(?:#([\\w\\-]+)|(\\w+)|\\.([\\w\\-]+))$/,U=/^:not/,z=/[\\x20\\t\\r\\n\\f]*[+~]/,W=/:not\\($/,X=/h\\d/i,V=/input|select|textarea|button/i,$=/\\\\(?!\\\\)/g,J={ID:new RegExp(\"^#(\"+M+\")\"),CLASS:new RegExp(\"^\\\\.(\"+M+\")\"),NAME:new RegExp(\"^\\\\[name=['\\\"]?(\"+M+\")['\\\"]?\\\\]\"),TAG:new RegExp(\"^(\"+M.replace(\"w\",\"w*\")+\")\"),ATTR:new RegExp(\"^\"+P),PSEUDO:new RegExp(\"^\"+H),POS:new RegExp(B,\"i\"),CHILD:new RegExp(\"^:(only|nth|first|last)-child(?:\\\\(\"+O+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+O+\"*(?:([+-]|)\"+O+\"*(\\\\d+)|))\"+O+\"*\\\\)|)\",\"i\"),needsContext:new RegExp(\"^\"+O+\"*[>+~]|\"+B,\"i\")},K=function(e){var t=g.createElement(\"div\");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),G=K(function(e){return e.innerHTML=\"<a href='#'></a>\",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute(\"href\")===\"#\"}),Y=K(function(e){e.innerHTML=\"<select></select>\";var t=typeof e.lastChild.getAttribute(\"multiple\");return t!==\"boolean\"&&t!==\"string\"}),Z=K(function(e){return e.innerHTML=\"<div class='hidden e'></div><div class='hidden'></div>\",!e.getElementsByClassName||!e.getElementsByClassName(\"e\").length?!1:(e.lastChild.className=\"e\",e.getElementsByClassName(\"e\").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML=\"<a name='\"+d+\"'></a><div name='\"+d+\"'></div>\",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n=\"\",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent==\"string\")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!==\"HTML\":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]==\"boolean\"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute(\"href\",2)},type:function(e){return e.getAttribute(\"type\")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode(\"id\").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e===\"*\"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,\"\"),e[3]=(e[4]||e[5]||\"\").replace($,\"\"),e[2]===\"~=\"&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]===\"nth\"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]===\"even\"||e[2]===\"odd\")),e[4]=+(e[6]+e[7]||e[2]===\"odd\")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(\")\",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,\"\"),function(t){return t.getAttribute(\"id\")===e}}:function(e){return e=e.replace($,\"\"),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode(\"id\");return n&&n.value===e}},TAG:function(e){return e===\"*\"?function(){return!0}:(e=e.replace($,\"\").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+\" \"];return t||(t=new RegExp(\"(^|\"+O+\")\"+e+\"(\"+O+\"|$)\"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute(\"class\")||\"\")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t===\"!=\":t?(s+=\"\",t===\"=\"?s===n:t===\"!=\"?s!==n:t===\"^=\"?n&&s.indexOf(n)===0:t===\"*=\"?n&&s.indexOf(n)>-1:t===\"$=\"?n&&s.substr(s.length-n.length)===n:t===\"~=\"?(\" \"+s+\" \").indexOf(n)>-1:t===\"|=\"?s===n||s.substr(0,n.length+1)===n+\"-\":!1):!0}},CHILD:function(e,t,n,r){return e===\"nth\"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case\"only\":case\"first\":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e===\"first\")return!0;n=t;case\"last\":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error(\"unsupported pseudo: \"+e);return r[d]?r(t):r.length>1?(n=[e,e,\"\",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,\"$1\"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t===\"input\"&&!!e.checked||t===\"option\"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>\"@\"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()===\"input\"&&(t=e.type)===\"text\"&&((n=e.getAttribute(\"type\"))==null||n.toLowerCase()===t)},radio:rt(\"radio\"),checkbox:rt(\"checkbox\"),file:rt(\"file\"),password:rt(\"password\"),image:rt(\"image\"),submit:it(\"submit\"),reset:it(\"reset\"),button:function(e){var t=e.nodeName.toLowerCase();return t===\"input\"&&e.type===\"button\"||t===\"button\"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+\" \"];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\\\/g,r=/\\=[\\x20\\t\\r\\n\\f]*([^'\"\\]]*)[\\x20\\t\\r\\n\\f]*\\]/g,i=[\":focus\"],s=[\":active\"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML=\"<select><option selected=''></option></select>\",e.querySelectorAll(\"[selected]\").length||i.push(\"\\\\[\"+O+\"*(?:checked|disabled|ismap|multiple|readonly|selected|value)\"),e.querySelectorAll(\":checked\").length||i.push(\":checked\")}),K(function(e){e.innerHTML=\"<p test=''></p>\",e.querySelectorAll(\"[test^='']\").length&&i.push(\"[*^$]=\"+O+\"*(?:\\\"\\\"|'')\"),e.innerHTML=\"<input type='hidden'/>\",e.querySelectorAll(\":enabled\").length||i.push(\":enabled\",\":disabled\")}),i=new RegExp(i.join(\"|\")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!==\"object\"){a=ut(e),(l=r.getAttribute(\"id\"))?c=l.replace(n,\"\\\\$&\"):r.setAttribute(\"id\",c),c=\"[id='\"+c+\"'] \",f=a.length;while(f--)a[f]=c+a[f].join(\"\");h=z.test(e)&&r.parentNode||r,p=a.join(\",\")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute(\"id\")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,\"div\");try{u.call(t,\"[test!='']:sizzle\"),s.push(\"!=\",H)}catch(n){}}),s=new RegExp(s.join(\"|\")),nt.matchesSelector=function(t,n){n=n.replace(r,\"='$1']\");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[\":\"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\\[\\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!=\"string\")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack(\"\",\"find\",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),\"not\",e)},filter:function(e){return this.pushStack(ft(this,e,!0),\"filter\",e)},is:function(e){return!!e&&(typeof e==\"string\"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!=\"string\"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,\"closest\",e)},index:function(e){return e?typeof e==\"string\"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e==\"string\"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,\"parentNode\")},parentsUntil:function(e,t,n){return v.dir(e,\"parentNode\",n)},next:function(e){return at(e,\"nextSibling\")},prev:function(e){return at(e,\"previousSibling\")},nextAll:function(e){return v.dir(e,\"nextSibling\")},prevAll:function(e){return v.dir(e,\"previousSibling\")},nextUntil:function(e,t,n){return v.dir(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return v.dir(e,\"previousSibling\",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,\"iframe\")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r==\"string\"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(\",\"))}}),v.extend({filter:function(e,t,n){return n&&(e=\":not(\"+e+\")\"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct=\"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",ht=/ jQuery\\d+=\"(?:null|\\d+)\"/g,pt=/^\\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,vt=/<([\\w:]+)/,mt=/<tbody/i,gt=/<|&#?\\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp(\"<(?:\"+ct+\")[\\\\s/>]\",\"i\"),Et=/^(?:checkbox|radio)$/,St=/checked\\s*(?:[^=]|=\\s*.checked.)/i,xt=/\\/(java|ecma)script/i,Tt=/^\\s*<!(?:\\[CDATA\\[|\\-\\-)|[\\]\\-]{2}>\\s*$/g,Nt={option:[1,\"<select multiple='multiple'>\",\"</select>\"],legend:[1,\"<fieldset>\",\"</fieldset>\"],thead:[1,\"<table>\",\"</table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],col:[2,\"<table><tbody></tbody><colgroup>\",\"</colgroup></table>\"],area:[1,\"<map>\",\"</map>\"],_default:[0,\"\",\"\"]},Ct=lt(i),kt=Ct.appendChild(i.createElement(\"div\"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,\"X<div>\",\"</div>\"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,\"body\")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),\"before\",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),\"after\",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName(\"*\")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName(\"*\"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,\"\"):t;if(typeof e==\"string\"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=e.replace(dt,\"<$1></$2>\");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName(\"*\")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),\"replaceWith\",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!=\"string\"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f==\"string\"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,\"tr\");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],\"table\")?Lt(this[a],\"tbody\"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:\"GET\",dataType:\"script\",async:!1,global:!1,\"throws\":!0}):v.error(\"no ajax\"):v.globalEval((t.text||t.textContent||t.innerHTML||\"\").replace(Tt,\"\")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a==\"string\"&&a.length<512&&n===i&&a.charAt(0)===\"<\"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test(\"<\"+e.nodeName+\">\")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment==\"undefined\")t=i;for(s=0;(u=e[s])!=null;s++){typeof u==\"number\"&&(u+=\"\");if(!u)continue;if(typeof u==\"string\")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement(\"div\"),y.appendChild(c),u=u.replace(dt,\"<$1></$2>\"),a=(vt.exec(u)||[\"\",\"\"])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a===\"table\"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===\"<table>\"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],\"tbody\")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,\"input\")?_t(u):typeof u.getElementsByTagName!=\"undefined\"&&v.grep(u.getElementsByTagName(\"input\"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,\"script\")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!=\"undefined\"&&(g=v.grep(v.merge([],u.getElementsByTagName(\"script\")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \\/]([\\w.]+)/.exec(e)||/(webkit)[ \\/]([\\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(e)||/(msie) ([\\w.]+)/.exec(e)||e.indexOf(\"compatible\")<0&&/(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(e)||[];return{browser:t[1]||\"\",version:t[2]||\"0\"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\\([^)]*\\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp(\"^(\"+m+\")(.*)$\",\"i\"),Ut=new RegExp(\"^(\"+m+\")(?!px)[a-z%]+$\",\"i\"),zt=new RegExp(\"^([-+])=(\"+m+\")\",\"i\"),Wt={BODY:\"block\"},Xt={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Vt={letterSpacing:0,fontWeight:400},$t=[\"Top\",\"Right\",\"Bottom\",\"Left\"],Jt=[\"Webkit\",\"O\",\"Moz\",\"ms\"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e==\"boolean\";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,\"opacity\");return n===\"\"?\"1\":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{\"float\":v.support.cssFloat?\"cssFloat\":\"styleFloat\"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&\"get\"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o===\"string\"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o=\"number\");if(r==null||o===\"number\"&&isNaN(r))return;o===\"number\"&&!v.cssNumber[a]&&(r+=\"px\");if(!u||!(\"set\"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&\"get\"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s===\"normal\"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===\"\"&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t===\"fontSize\"?\"1em\":i,i=s.pixelLeft+\"px\",s.left=n,r&&(e.runtimeStyle.left=r)),i===\"\"?\"auto\":i}),v.each([\"height\",\"width\"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,\"display\"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,\"boxSizing\")===\"border-box\"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||\"\")?.01*parseFloat(RegExp.$1)+\"\":t?\"1\":\"\"},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?\"alpha(opacity=\"+t*100+\")\":\"\",s=r&&r.filter||n.filter||\"\";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,\"\"))===\"\"&&n.removeAttribute){n.removeAttribute(\"filter\");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+\" \"+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:\"inline-block\"},function(){if(t)return Dt(e,\"marginRight\")})}}),!v.support.pixelPosition&&v.fn.position&&v.each([\"top\",\"left\"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+\"px\":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,\"display\"))===\"none\"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:\"\",padding:\"\",border:\"Width\"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n==\"string\"?n.split(\" \"):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\\[\\]$/,on=/\\r?\\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,\"\\r\\n\")}}):{name:t.name,value:n.replace(on,\"\\r\\n\")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?\"\":t,i[i.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join(\"&\").replace(rn,\"+\")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg,dn=/^(?:about|app|app\\-storage|.+\\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\\/\\//,gn=/\\?/,yn=/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\\w\\+\\.\\-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=[\"*/\"]+[\"*\"];try{cn=s.href}catch(Nn){cn=i.createElement(\"a\"),cn.href=\"\",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!=\"string\"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(\" \");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n==\"object\"&&(s=\"POST\"),v.ajax({url:e,type:s,dataType:\"html\",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v(\"<div>\").append(e.replace(yn,\"\")).find(i):e)}),this},v.each(\"ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend\".split(\" \"),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each([\"get\",\"post\"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,\"script\")},getJSON:function(e,t,n){return v.get(e,t,n,\"json\")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:\"GET\",contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",processData:!0,async:!0,accepts:{xml:\"application/xml, text/xml\",html:\"text/html\",text:\"text/plain\",json:\"application/json, text/javascript\",\"*\":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\"},converters:{\"* text\":e.String,\"text html\":!0,\"text json\":v.parseJSON,\"text xml\":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||\"\",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader(\"Last-Modified\"),S&&(v.lastModified[r]=S),S=x.getResponseHeader(\"Etag\"),S&&(v.etag[r]=S)),e===304?(T=\"notmodified\",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T=\"error\",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+\"\",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger(\"ajax\"+(l?\"Success\":\"Error\"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger(\"ajaxComplete\",[x,c]),--v.active||v.event.trigger(\"ajaxStop\"))}typeof e==\"object\"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks(\"once memory\"),g=c.statusCode||{},b={},w={},E=0,S=\"canceled\",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+\"\").replace(hn,\"\").replace(mn,ln[1]+\"//\"),c.dataTypes=v.trim(c.dataType||\"*\").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]===\"http:\"?80:443))==(ln[3]||(ln[1]===\"http:\"?80:443)))),c.data&&c.processData&&typeof c.data!=\"string\"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger(\"ajaxStart\");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?\"&\":\"?\")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,\"$1_=\"+N);c.url=C+(C===c.url?(gn.test(c.url)?\"&\":\"?\")+\"_=\"+N:\"\")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader(\"Content-Type\",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader(\"If-Modified-Since\",v.lastModified[r]),v.etag[r]&&x.setRequestHeader(\"If-None-Match\",v.etag[r])),x.setRequestHeader(\"Accept\",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!==\"*\"?\", \"+Tn+\"; q=0.01\":\"\"):c.accepts[\"*\"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S=\"abort\";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,\"No Transport\");else{x.readyState=1,f&&p.trigger(\"ajaxSend\",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort(\"timeout\")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\\?/,Dn=/(=)\\?(?=&|$)|\\?\\?/,Pn=v.now();v.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Mn.pop()||v.expando+\"_\"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter(\"json jsonp\",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a==\"string\"&&!(n.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Dn.test(a);if(n.dataTypes[0]===\"jsonp\"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,\"$1\"+s):h?n.data=a.replace(Dn,\"$1\"+s):l&&(n.url+=(_n.test(f)?\"&\":\"?\")+n.jsonp+\"=\"+s),n.converters[\"script json\"]=function(){return u||v.error(s+\" was not called\"),u[0]},n.dataTypes[0]=\"json\",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),\"script\"}),v.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/javascript|ecmascript/},converters:{\"text script\":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter(\"script\",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\",e.global=!1)}),v.ajaxTransport(\"script\",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName(\"head\")[0]||i.documentElement;return{send:function(s,o){n=i.createElement(\"script\"),n.async=\"async\",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,\"success\")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&\"withCredentials\"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i[\"X-Requested-With\"]&&(i[\"X-Requested-With\"]=\"XMLHttpRequest\");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=\"\"}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp(\"^(?:([-+])=|)(\"+m+\")([a-z%]*)$\",\"i\"),Wn=/queueHooks$/,Xn=[Gn],Vn={\"*\":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?\"\":\"px\");if(r!==\"px\"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||\".5\",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=[\"*\"]):e=e.split(\" \");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||\"swing\",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?\"\":\"px\")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,\"\"),!t||t===\"auto\"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each([\"toggle\",\"show\",\"hide\"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r==\"boolean\"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!=\"string\"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||\"fx\",[]),this.each(function(){var t=!0,n=e!=null&&e+\"queueHooks\",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn(\"show\"),slideUp:Zn(\"hide\"),slideToggle:Zn(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e==\"object\"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration==\"number\"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue=\"fx\";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!=\"undefined\"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,\"marginTop\"))||0,n+=parseFloat(v.css(e,\"marginLeft\"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,\"position\");r===\"static\"&&(e.style.position=\"relative\");var i=v(e),s=i.offset(),o=v.css(e,\"top\"),u=v.css(e,\"left\"),a=(r===\"absolute\"||r===\"fixed\")&&v.inArray(\"auto\",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),\"using\"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,\"marginTop\"))||0,n.left-=parseFloat(v.css(e,\"marginLeft\"))||0,r.top+=parseFloat(v.css(t[0],\"borderTopWidth\"))||0,r.left+=parseFloat(v.css(t[0],\"borderLeftWidth\"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,\"position\")===\"static\")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:\"height\",Width:\"width\"},function(e,n){v.each({padding:\"inner\"+e,content:n,\"\":\"outer\"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!=\"boolean\"),u=r||(i===!0||s===!0?\"margin\":\"border\");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement[\"client\"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body[\"scroll\"+e],s[\"scroll\"+e],n.body[\"offset\"+e],s[\"offset\"+e],s[\"client\"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define==\"function\"&&define.amd&&define.amd.jQuery&&define(\"jquery\",[],function(){return v})})(window);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/demo/js/zepto.js",
    "content": "/*!\n * Zepto v1.0 zeptojs.com | MIT licensed\n * Modules: zepto, polyfill, event, data, stack\n */\nvar Zepto=function(){function h(a){return null==a?String(a):G[S.call(a)]||\"object\"}function m(a){return\"function\"==h(a)}function p(a){return null!=a&&a==a.window}function s(a){return null!=a&&a.nodeType==a.DOCUMENT_NODE}function q(a){return\"object\"==h(a)}function k(a){return q(a)&&!p(a)&&a.__proto__==Object.prototype}function t(a){return a instanceof Array}function l(a){return\"number\"==typeof a.length}function j(a){return a.replace(/::/g,\"/\").replace(/([A-Z]+)([A-Z][a-z])/g,\"$1_$2\").replace(/([a-z\\d])([A-Z])/g,\n\"$1_$2\").replace(/_/g,\"-\").toLowerCase()}function r(a){return a in H?H[a]:H[a]=RegExp(\"(^|\\\\s)\"+a+\"(\\\\s|$)\")}function A(a){return\"children\"in a?B.call(a.children):c.map(a.childNodes,function(a){if(1==a.nodeType)return a})}function C(a,b,d){for(g in b)d&&(k(b[g])||t(b[g]))?(k(b[g])&&!k(a[g])&&(a[g]={}),t(b[g])&&!t(a[g])&&(a[g]=[]),C(a[g],b[g],d)):b[g]!==f&&(a[g]=b[g])}function y(a,b){return b===f?c(a):c(a).filter(b)}function x(a,b,d,c){return m(b)?b.call(a,d,c):b}function z(a,b){var d=a.className,\nc=d&&d.baseVal!==f;if(b===f)return c?d.baseVal:d;c?d.baseVal=b:a.className=b}function E(a){var b;try{return a?\"true\"==a||(\"false\"==a?!1:\"null\"==a?null:!isNaN(b=Number(a))?b:/^[\\[\\{]/.test(a)?c.parseJSON(a):a):a}catch(d){return a}}function e(a,b){b(a);for(var d in a.childNodes)e(a.childNodes[d],b)}var f,g,c,u,w=[],B=w.slice,D=w.filter,v=window.document,I={},H={},J=v.defaultView.getComputedStyle,M={\"column-count\":1,columns:1,\"font-weight\":1,\"line-height\":1,opacity:1,\"z-index\":1,zoom:1},N=/^\\s*<(\\w+|!)[^>]*>/,\nT=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,O=/^(?:body|html)$/i,U=\"val css html text data width height offset\".split(\" \"),K=v.createElement(\"table\"),P=v.createElement(\"tr\"),Q={tr:v.createElement(\"tbody\"),tbody:K,thead:K,tfoot:K,td:P,th:P,\"*\":v.createElement(\"div\")},V=/complete|loaded|interactive/,W=/^\\.([\\w-]+)$/,X=/^#([\\w-]*)$/,Y=/^[\\w-]+$/,G={},S=G.toString,n={},L,F,R=v.createElement(\"div\");n.matches=function(a,b){if(!a||1!==a.nodeType)return!1;var d=a.webkitMatchesSelector||\na.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(d)return d.call(a,b);var c;c=a.parentNode;(d=!c)&&(c=R).appendChild(a);c=~n.qsa(c,b).indexOf(a);d&&R.removeChild(a);return c};L=function(a){return a.replace(/-+(.)?/g,function(a,d){return d?d.toUpperCase():\"\"})};F=function(a){return D.call(a,function(b,d){return a.indexOf(b)==d})};n.fragment=function(a,b,d){a.replace&&(a=a.replace(T,\"<$1></$2>\"));b===f&&(b=N.test(a)&&RegExp.$1);b in Q||(b=\"*\");var e,g=Q[b];g.innerHTML=\"\"+a;a=c.each(B.call(g.childNodes),\nfunction(){g.removeChild(this)});k(d)&&(e=c(a),c.each(d,function(a,b){if(-1<U.indexOf(a))e[a](b);else e.attr(a,b)}));return a};n.Z=function(a,b){a=a||[];a.__proto__=c.fn;a.selector=b||\"\";return a};n.isZ=function(a){return a instanceof n.Z};n.init=function(a,b){if(a){if(m(a))return c(v).ready(a);if(n.isZ(a))return a;var d;if(t(a))d=D.call(a,function(a){return null!=a});else if(q(a))d=[k(a)?c.extend({},a):a],a=null;else if(N.test(a))d=n.fragment(a.trim(),RegExp.$1,b),a=null;else{if(b!==f)return c(b).find(a);\nd=n.qsa(v,a)}return n.Z(d,a)}return n.Z()};c=function(a,b){return n.init(a,b)};c.extend=function(a){var b,d=B.call(arguments,1);\"boolean\"==typeof a&&(b=a,a=d.shift());d.forEach(function(d){C(a,d,b)});return a};n.qsa=function(a,b){var d;return s(a)&&X.test(b)?(d=a.getElementById(RegExp.$1))?[d]:[]:1!==a.nodeType&&9!==a.nodeType?[]:B.call(W.test(b)?a.getElementsByClassName(RegExp.$1):Y.test(b)?a.getElementsByTagName(b):a.querySelectorAll(b))};c.contains=function(a,b){return a!==b&&a.contains(b)};c.type=\nh;c.isFunction=m;c.isWindow=p;c.isArray=t;c.isPlainObject=k;c.isEmptyObject=function(a){for(var b in a)return!1;return!0};c.inArray=function(a,b,d){return w.indexOf.call(b,a,d)};c.camelCase=L;c.trim=function(a){return a.trim()};c.uuid=0;c.support={};c.expr={};c.map=function(a,b){var d,e=[],f;if(l(a))for(f=0;f<a.length;f++)d=b(a[f],f),null!=d&&e.push(d);else for(f in a)d=b(a[f],f),null!=d&&e.push(d);return 0<e.length?c.fn.concat.apply([],e):e};c.each=function(a,b){var d;if(l(a))for(d=0;d<a.length&&\n!1!==b.call(a[d],d,a[d]);d++);else for(d in a)if(!1===b.call(a[d],d,a[d]))break;return a};c.grep=function(a,b){return D.call(a,b)};window.JSON&&(c.parseJSON=JSON.parse);c.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){G[\"[object \"+b+\"]\"]=b.toLowerCase()});c.fn={forEach:w.forEach,reduce:w.reduce,push:w.push,sort:w.sort,indexOf:w.indexOf,concat:w.concat,map:function(a){return c(c.map(this,function(b,d){return a.call(b,d,b)}))},slice:function(){return c(B.apply(this,\narguments))},ready:function(a){V.test(v.readyState)?a(c):v.addEventListener(\"DOMContentLoaded\",function(){a(c)},!1);return this},get:function(a){return a===f?B.call(this):this[0<=a?a:a+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(a){w.every.call(this,function(b,d){return!1!==a.call(b,d,b)});return this},filter:function(a){return m(a)?this.not(this.not(a)):\nc(D.call(this,function(b){return n.matches(b,a)}))},add:function(a,b){return c(F(this.concat(c(a,b))))},is:function(a){return 0<this.length&&n.matches(this[0],a)},not:function(a){var b=[];if(m(a)&&a.call!==f)this.each(function(d){a.call(this,d)||b.push(this)});else{var d=\"string\"==typeof a?this.filter(a):l(a)&&m(a.item)?B.call(a):c(a);this.forEach(function(a){0>d.indexOf(a)&&b.push(a)})}return c(b)},has:function(a){return this.filter(function(){return q(a)?c.contains(this,a):c(this).find(a).size()})},\neq:function(a){return-1===a?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!q(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!q(a)?a:c(a)},find:function(a){var b=this;return\"object\"==typeof a?c(a).filter(function(){var a=this;return w.some.call(b,function(b){return c.contains(b,a)})}):1==this.length?c(n.qsa(this[0],a)):this.map(function(){return n.qsa(this,a)})},closest:function(a,b){var d=this[0],e=!1;for(\"object\"==typeof a&&(e=c(a));d&&!(e?0<=e.indexOf(d):\nn.matches(d,a));)d=d!==b&&!s(d)&&d.parentNode;return c(d)},parents:function(a){for(var b=[],d=this;0<d.length;)d=c.map(d,function(a){if((a=a.parentNode)&&!s(a)&&0>b.indexOf(a))return b.push(a),a});return y(b,a)},parent:function(a){return y(F(this.pluck(\"parentNode\")),a)},children:function(a){return y(this.map(function(){return A(this)}),a)},contents:function(){return this.map(function(){return B.call(this.childNodes)})},siblings:function(a){return y(this.map(function(a,d){return D.call(A(d.parentNode),\nfunction(a){return a!==d})}),a)},empty:function(){return this.each(function(){this.innerHTML=\"\"})},pluck:function(a){return c.map(this,function(b){return b[a]})},show:function(){return this.each(function(){\"none\"==this.style.display&&(this.style.display=null);if(\"none\"==J(this,\"\").getPropertyValue(\"display\")){var a=this.style,b=this.nodeName,d,c;I[b]||(d=v.createElement(b),v.body.appendChild(d),c=J(d,\"\").getPropertyValue(\"display\"),d.parentNode.removeChild(d),\"none\"==c&&(c=\"block\"),I[b]=c);a.display=\nI[b]}})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var b=m(a);if(this[0]&&!b)var d=c(a).get(0),e=d.parentNode||1<this.length;return this.each(function(f){c(this).wrapAll(b?a.call(this,f):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){c(this[0]).before(a=c(a));for(var b;(b=a.children()).length;)a=b.first();c(a).append(this)}return this},wrapInner:function(a){var b=m(a);return this.each(function(d){var e=c(this),f=e.contents();d=b?a.call(this,d):a;f.length?f.wrapAll(d):\ne.append(d)})},unwrap:function(){this.parent().each(function(){c(this).replaceWith(c(this).children())});return this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css(\"display\",\"none\")},toggle:function(a){return this.each(function(){var b=c(this);(a===f?\"none\"==b.css(\"display\"):a)?b.show():b.hide()})},prev:function(a){return c(this.pluck(\"previousElementSibling\")).filter(a||\"*\")},next:function(a){return c(this.pluck(\"nextElementSibling\")).filter(a||\n\"*\")},html:function(a){return a===f?0<this.length?this[0].innerHTML:null:this.each(function(b){var d=this.innerHTML;c(this).empty().append(x(this,a,b,d))})},text:function(a){return a===f?0<this.length?this[0].textContent:null:this.each(function(){this.textContent=a})},attr:function(a,b){var d;return\"string\"==typeof a&&b===f?0==this.length||1!==this[0].nodeType?f:\"value\"==a&&\"INPUT\"==this[0].nodeName?this.val():!(d=this[0].getAttribute(a))&&a in this[0]?this[0][a]:d:this.each(function(d){if(1===this.nodeType)if(q(a))for(g in a){d=\ng;var c=a[g];null==c?this.removeAttribute(d):this.setAttribute(d,c)}else d=x(this,b,d,this.getAttribute(a)),null==d?this.removeAttribute(a):this.setAttribute(a,d)})},removeAttr:function(a){return this.each(function(){1===this.nodeType&&this.removeAttribute(a)})},prop:function(a,b){return b===f?this[0]&&this[0][a]:this.each(function(d){this[a]=x(this,b,d,this[a])})},data:function(a,b){var d=this.attr(\"data-\"+j(a),b);return null!==d?E(d):f},val:function(a){return a===f?this[0]&&(this[0].multiple?c(this[0]).find(\"option\").filter(function(){return this.selected}).pluck(\"value\"):\nthis[0].value):this.each(function(b){this.value=x(this,a,b,this.value)})},offset:function(a){if(a)return this.each(function(b){var e=c(this);b=x(this,a,b,e.offset());var f=e.offsetParent().offset();b={top:b.top-f.top,left:b.left-f.left};\"static\"==e.css(\"position\")&&(b.position=\"relative\");e.css(b)});if(0==this.length)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(a,\nb){if(2>arguments.length&&\"string\"==typeof a)return this[0]&&(this[0].style[L(a)]||J(this[0],\"\").getPropertyValue(a));var d=\"\";if(\"string\"==h(a))!b&&0!==b?this.each(function(){this.style.removeProperty(j(a))}):d=j(a)+\":\"+(\"number\"==typeof b&&!M[j(a)]?b+\"px\":b);else for(g in a)!a[g]&&0!==a[g]?this.each(function(){this.style.removeProperty(j(g))}):d+=j(g)+\":\"+(\"number\"==typeof a[g]&&!M[j(g)]?a[g]+\"px\":a[g])+\";\";return this.each(function(){this.style.cssText+=\";\"+d})},index:function(a){return a?this.indexOf(c(a)[0]):\nthis.parent().children().indexOf(this[0])},hasClass:function(a){return w.some.call(this,function(a){return this.test(z(a))},r(a))},addClass:function(a){return this.each(function(b){u=[];var d=z(this);x(this,a,b,d).split(/\\s+/g).forEach(function(a){c(this).hasClass(a)||u.push(a)},this);u.length&&z(this,d+(d?\" \":\"\")+u.join(\" \"))})},removeClass:function(a){return this.each(function(b){if(a===f)return z(this,\"\");u=z(this);x(this,a,b,u).split(/\\s+/g).forEach(function(a){u=u.replace(r(a),\" \")});z(this,\nu.trim())})},toggleClass:function(a,b){return this.each(function(d){var e=c(this);x(this,a,d,z(this)).split(/\\s+/g).forEach(function(a){(b===f?!e.hasClass(a):b)?e.addClass(a):e.removeClass(a)})})},scrollTop:function(){if(this.length)return\"scrollTop\"in this[0]?this[0].scrollTop:this[0].scrollY},position:function(){if(this.length){var a=this[0],b=this.offsetParent(),d=this.offset(),e=O.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c(a).css(\"margin-top\"))||0;d.left-=parseFloat(c(a).css(\"margin-left\"))||\n0;e.top+=parseFloat(c(b[0]).css(\"border-top-width\"))||0;e.left+=parseFloat(c(b[0]).css(\"border-left-width\"))||0;return{top:d.top-e.top,left:d.left-e.left}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||v.body;a&&!O.test(a.nodeName)&&\"static\"==c(a).css(\"position\");)a=a.offsetParent;return a})}};c.fn.detach=c.fn.remove;[\"width\",\"height\"].forEach(function(a){c.fn[a]=function(b){var d,e=this[0],g=a.replace(/./,function(a){return a[0].toUpperCase()});return b===f?p(e)?\ne[\"inner\"+g]:s(e)?e.documentElement[\"offset\"+g]:(d=this.offset())&&d[a]:this.each(function(d){e=c(this);e.css(a,x(this,b,d,e[a]()))})}});[\"after\",\"prepend\",\"before\",\"append\"].forEach(function(a,b){var d=b%2;c.fn[a]=function(){var a,f=c.map(arguments,function(b){a=h(b);return\"object\"==a||\"array\"==a||null==b?b:n.fragment(b)}),g,u=1<this.length;return 1>f.length?this:this.each(function(a,h){g=d?h:h.parentNode;h=0==b?h.nextSibling:1==b?h.firstChild:2==b?h:null;f.forEach(function(a){if(u)a=a.cloneNode(!0);\nelse if(!g)return c(a).remove();e(g.insertBefore(a,h),function(a){null!=a.nodeName&&(\"SCRIPT\"===a.nodeName.toUpperCase()&&(!a.type||\"text/javascript\"===a.type)&&!a.src)&&window.eval.call(window,a.innerHTML)})})})};c.fn[d?a+\"To\":\"insert\"+(b?\"Before\":\"After\")]=function(b){c(b)[a](this);return this}});n.Z.prototype=c.fn;n.uniq=F;n.deserializeValue=E;c.zepto=n;return c}();window.Zepto=Zepto;\"$\"in window||(window.$=Zepto);\n(function(h){String.prototype.trim===h&&(String.prototype.trim=function(){return this.replace(/^\\s+|\\s+$/g,\"\")});Array.prototype.reduce===h&&(Array.prototype.reduce=function(m){if(void 0===this||null===this)throw new TypeError;var p=Object(this),s=p.length>>>0,q=0,k;if(\"function\"!=typeof m)throw new TypeError;if(0==s&&1==arguments.length)throw new TypeError;if(2<=arguments.length)k=arguments[1];else{do{if(q in p){k=p[q++];break}if(++q>=s)throw new TypeError;}while(1)}for(;q<s;)q in p&&(k=m.call(h,\nk,p[q],q,p)),q++;return k})})();\n(function(h){function m(e){return e._zid||(e._zid=r++)}function p(e,f,g,c){f=s(f);if(f.ns)var h=RegExp(\"(?:^| )\"+f.ns.replace(\" \",\" .* ?\")+\"(?: |$)\");return(j[m(e)]||[]).filter(function(e){return e&&(!f.e||e.e==f.e)&&(!f.ns||h.test(e.ns))&&(!g||m(e.fn)===m(g))&&(!c||e.sel==c)})}function s(e){e=(\"\"+e).split(\".\");return{e:e[0],ns:e.slice(1).sort().join(\" \")}}function q(e,f,g){\"string\"!=h.type(e)?h.each(e,g):e.split(/\\s/).forEach(function(e){g(e,f)})}function k(e,f,g,c,u,l){var k=m(e),r=j[k]||(j[k]=\n[]);q(f,g,function(f,g){var j=s(f);j.fn=g;j.sel=c;j.e in C&&(g=function(e){var c=e.relatedTarget;if(!c||c!==this&&!h.contains(this,c))return j.fn.apply(this,arguments)});j.del=u&&u(g,f);var k=j.del||g;j.proxy=function(c){var f=k.apply(e,[c].concat(c.data));!1===f&&(c.preventDefault(),c.stopPropagation());return f};j.i=r.length;r.push(j);e.addEventListener(C[j.e]||j.e,j.proxy,j.del&&(\"focus\"==j.e||\"blur\"==j.e)||!!l)})}function t(e,f,g,c,h){var l=m(e);q(f||\"\",g,function(f,g){p(e,f,g,c).forEach(function(c){delete j[l][c.i];\ne.removeEventListener(C[c.e]||c.e,c.proxy,c.del&&(\"focus\"==c.e||\"blur\"==c.e)||!!h)})})}function l(e){var f,g={originalEvent:e};for(f in e)!z.test(f)&&void 0!==e[f]&&(g[f]=e[f]);h.each(E,function(c,f){g[c]=function(){this[f]=y;return e[c].apply(e,arguments)};g[f]=x});return g}var j={},r=1,A={},C={mouseenter:\"mouseover\",mouseleave:\"mouseout\"};A.click=A.mousedown=A.mouseup=A.mousemove=\"MouseEvents\";h.event={add:k,remove:t};h.proxy=function(e,f){if(h.isFunction(e)){var g=function(){return e.apply(f,arguments)};\ng._zid=m(e);return g}if(\"string\"==typeof f)return h.proxy(e[f],e);throw new TypeError(\"expected function\");};h.fn.bind=function(e,f){return this.each(function(){k(this,e,f)})};h.fn.unbind=function(e,f){return this.each(function(){t(this,e,f)})};h.fn.one=function(e,f){return this.each(function(g,c){k(this,e,f,null,function(e,f){return function(){var g=e.apply(c,arguments);t(c,f,e);return g}})})};var y=function(){return!0},x=function(){return!1},z=/^([A-Z]|layer[XY]$)/,E={preventDefault:\"isDefaultPrevented\",\nstopImmediatePropagation:\"isImmediatePropagationStopped\",stopPropagation:\"isPropagationStopped\"};h.fn.delegate=function(e,f,g){return this.each(function(c,j){k(j,f,g,e,function(c){return function(f){var g,k=h(f.target).closest(e,j).get(0);if(k)return g=h.extend(l(f),{currentTarget:k,liveFired:j}),c.apply(k,[g].concat([].slice.call(arguments,1)))}})})};h.fn.undelegate=function(e,f,g){return this.each(function(){t(this,f,g,e)})};h.fn.live=function(e,f){h(document.body).delegate(this.selector,e,f);return this};\nh.fn.die=function(e,f){h(document.body).undelegate(this.selector,e,f);return this};h.fn.on=function(e,f,g){return!f||h.isFunction(f)?this.bind(e,f||g):this.delegate(f,e,g)};h.fn.off=function(e,f,g){return!f||h.isFunction(f)?this.unbind(e,f||g):this.undelegate(f,e,g)};h.fn.trigger=function(e,f){if(\"string\"==typeof e||h.isPlainObject(e))e=h.Event(e);var g=e;if(!(\"defaultPrevented\"in g)){g.defaultPrevented=!1;var c=g.preventDefault;g.preventDefault=function(){this.defaultPrevented=!0;c.call(this)}}e.data=\nf;return this.each(function(){\"dispatchEvent\"in this&&this.dispatchEvent(e)})};h.fn.triggerHandler=function(e,f){var g,c;this.each(function(j,k){g=l(\"string\"==typeof e?h.Event(e):e);g.data=f;g.target=k;h.each(p(k,e.type||e),function(e,f){c=f.proxy(g);if(g.isImmediatePropagationStopped())return!1})});return c};\"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error\".split(\" \").forEach(function(e){h.fn[e]=\nfunction(f){return f?this.bind(e,f):this.trigger(e)}});[\"focus\",\"blur\"].forEach(function(e){h.fn[e]=function(f){f?this.bind(e,f):this.each(function(){try{this[e]()}catch(f){}});return this}});h.Event=function(e,f){\"string\"!=typeof e&&(f=e,e=f.type);var g=document.createEvent(A[e]||\"Events\"),c=!0;if(f)for(var h in f)\"bubbles\"==h?c=!!f[h]:g[h]=f[h];g.initEvent(e,c,!0,null,null,null,null,null,null,null,null,null,null,null,null);g.isDefaultPrevented=function(){return this.defaultPrevented};return g}})(Zepto);\n(function(h){function m(l,j){var r=l[t],r=r&&s[r];if(void 0===j)return r||p(l);if(r){if(j in r)return r[j];var m=k(j);if(m in r)return r[m]}return q.call(h(l),j)}function p(l,j,m){var q=l[t]||(l[t]=++h.uuid),p;if(!(p=s[q])){p=s;var y={};h.each(l.attributes,function(j,l){0==l.name.indexOf(\"data-\")&&(y[k(l.name.replace(\"data-\",\"\"))]=h.zepto.deserializeValue(l.value))});p=p[q]=y}l=p;void 0!==j&&(l[k(j)]=m);return l}var s={},q=h.fn.data,k=h.camelCase,t=h.expando=\"Zepto\"+ +new Date;h.fn.data=function(l,\nj){return void 0===j?h.isPlainObject(l)?this.each(function(j,k){h.each(l,function(h,j){p(k,h,j)})}):0==this.length?void 0:m(this[0],l):this.each(function(){p(this,l,j)})};h.fn.removeData=function(l){\"string\"==typeof l&&(l=l.split(/\\s+/));return this.each(function(){var j=this[t],m=j&&s[j];m&&h.each(l,function(){delete m[k(this)]})})}})(Zepto);(function(a){a.fn.end=function(){return this.prevObject||a()};a.fn.andSelf=function(){return this.add(this.prevObject||a())};\"filter add not eq first last find closest parents parent children siblings\".split(\" \").forEach(function(b){var c=a.fn[b];a.fn[b]=function(){var a=c.apply(this,arguments);a.prevObject=this;return a}})})(Zepto);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/icheck.jquery.json",
    "content": "{\n  \"name\": \"icheck\",\n  \"version\": \"1.0.2\",\n  \"title\": \"iCheck\",\n  \"author\": {\n    \"name\": \"Damir Sultanov\",\n    \"email\": \"info@fronteed.com\",\n    \"homepage\": \"http://fronteed.com/\"\n  },\n  \"licenses\": [\n    {\n      \"type\": \"MIT\",\n      \"url\": \"http://en.wikipedia.org/wiki/MIT_License\"\n    }\n  ],\n  \"dependencies\": {\n    \"jquery\": \">=1.7\"\n  },\n  \"description\": \"Highly customizable checkboxes and radio buttons (jQuery and Zepto). Features: identical inputs across different browsers and devices (both desktop and mobile), touch devices support (iOS, Android, BlackBerry, Windows Phone, Amazon Kindle), keyboard accessible inputs (Tab, Spacebar, Arrow up/down and other shortcuts), screenreader accessible inputs — (ARIA attributes for VoiceOver and others), customization freedom (use any HTML and CSS to style inputs or try 6 Retina-ready skins), lightweight size (1 kb gzipped). Provides 32 options to customize checkboxes and radio buttons, 11 callbacks to handle changes, 9 methods to make changes programmatically. Saves changes to original inputs, works carefully with any selectors.\",\n  \"keywords\": [\n    \"checkbox\",\n    \"radio\",\n    \"input\",\n    \"field\",\n    \"form\",\n    \"desktop\",\n    \"mobile\",\n    \"custom\",\n    \"replacement\",\n    \"accessibility\",\n    \"skins\",\n    \"ui\",\n    \"checked\",\n    \"disabled\",\n    \"indeterminate\",\n    \"css3\",\n    \"html5\",\n    \"tiny\",\n    \"lightweight\",\n    \"jquery\",\n    \"zepto\"\n  ],\n  \"homepage\": \"http://fronteed.com/iCheck/\",\n  \"docs\": \"https://github.com/fronteed/iCheck\",\n  \"demo\": \"http://fronteed.com/iCheck/\",\n  \"download\": \"http://fronteed.com/iCheck/\",\n  \"bugs\": \"https://github.com/fronteed/iCheck/issues/\"\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/icheck.js",
    "content": "/*!\n * iCheck v1.0.2, http://git.io/arlzeA\n * ===================================\n * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization\n *\n * (c) 2013 Damir Sultanov, http://fronteed.com\n * MIT Licensed\n */\n\n(function($) {\n\n  // Cached vars\n  var _iCheck = 'iCheck',\n    _iCheckHelper = _iCheck + '-helper',\n    _checkbox = 'checkbox',\n    _radio = 'radio',\n    _checked = 'checked',\n    _unchecked = 'un' + _checked,\n    _disabled = 'disabled',\n    _determinate = 'determinate',\n    _indeterminate = 'in' + _determinate,\n    _update = 'update',\n    _type = 'type',\n    _click = 'click',\n    _touch = 'touchbegin.i touchend.i',\n    _add = 'addClass',\n    _remove = 'removeClass',\n    _callback = 'trigger',\n    _label = 'label',\n    _cursor = 'cursor',\n    _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);\n\n  // Plugin init\n  $.fn[_iCheck] = function(options, fire) {\n\n    // Walker\n    var handle = 'input[type=\"' + _checkbox + '\"], input[type=\"' + _radio + '\"]',\n      stack = $(),\n      walker = function(object) {\n        object.each(function() {\n          var self = $(this);\n\n          if (self.is(handle)) {\n            stack = stack.add(self);\n          } else {\n            stack = stack.add(self.find(handle));\n          }\n        });\n      };\n\n    // Check if we should operate with some method\n    if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {\n\n      // Normalize method's name\n      options = options.toLowerCase();\n\n      // Find checkboxes and radio buttons\n      walker(this);\n\n      return stack.each(function() {\n        var self = $(this);\n\n        if (options == 'destroy') {\n          tidy(self, 'ifDestroyed');\n        } else {\n          operate(self, true, options);\n        }\n\n        // Fire method's callback\n        if ($.isFunction(fire)) {\n          fire();\n        }\n      });\n\n    // Customization\n    } else if (typeof options == 'object' || !options) {\n\n      // Check if any options were passed\n      var settings = $.extend({\n          checkedClass: _checked,\n          disabledClass: _disabled,\n          indeterminateClass: _indeterminate,\n          labelHover: true\n        }, options),\n\n        selector = settings.handle,\n        hoverClass = settings.hoverClass || 'hover',\n        focusClass = settings.focusClass || 'focus',\n        activeClass = settings.activeClass || 'active',\n        labelHover = !!settings.labelHover,\n        labelHoverClass = settings.labelHoverClass || 'hover',\n\n        // Setup clickable area\n        area = ('' + settings.increaseArea).replace('%', '') | 0;\n\n      // Selector limit\n      if (selector == _checkbox || selector == _radio) {\n        handle = 'input[type=\"' + selector + '\"]';\n      }\n\n      // Clickable area limit\n      if (area < -50) {\n        area = -50;\n      }\n\n      // Walk around the selector\n      walker(this);\n\n      return stack.each(function() {\n        var self = $(this);\n\n        // If already customized\n        tidy(self);\n\n        var node = this,\n          id = node.id,\n\n          // Layer styles\n          offset = -area + '%',\n          size = 100 + (area * 2) + '%',\n          layer = {\n            position: 'absolute',\n            top: offset,\n            left: offset,\n            display: 'block',\n            width: size,\n            height: size,\n            margin: 0,\n            padding: 0,\n            background: '#fff',\n            border: 0,\n            opacity: 0\n          },\n\n          // Choose how to hide input\n          hide = _mobile ? {\n            position: 'absolute',\n            visibility: 'hidden'\n          } : area ? layer : {\n            position: 'absolute',\n            opacity: 0\n          },\n\n          // Get proper class\n          className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,\n\n          // Find assigned labels\n          label = $(_label + '[for=\"' + id + '\"]').add(self.closest(_label)),\n\n          // Check ARIA option\n          aria = !!settings.aria,\n\n          // Set ARIA placeholder\n          ariaID = _iCheck + '-' + Math.random().toString(36).substr(2,6),\n\n          // Parent & helper\n          parent = '<div class=\"' + className + '\" ' + (aria ? 'role=\"' + node[_type] + '\" ' : ''),\n          helper;\n\n        // Set ARIA \"labelledby\"\n        if (aria) {\n          label.each(function() {\n            parent += 'aria-labelledby=\"';\n\n            if (this.id) {\n              parent += this.id;\n            } else {\n              this.id = ariaID;\n              parent += ariaID;\n            }\n\n            parent += '\"';\n          });\n        }\n\n        // Wrap input\n        parent = self.wrap(parent + '/>')[_callback]('ifCreated').parent().append(settings.insert);\n\n        // Layer addition\n        helper = $('<ins class=\"' + _iCheckHelper + '\"/>').css(layer).appendTo(parent);\n\n        // Finalize customization\n        self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);\n        !!settings.inheritClass && parent[_add](node.className || '');\n        !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);\n        parent.css('position') == 'static' && parent.css('position', 'relative');\n        operate(self, true, _update);\n\n        // Label events\n        if (label.length) {\n          label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {\n            var type = event[_type],\n              item = $(this);\n\n            // Do nothing if input is disabled\n            if (!node[_disabled]) {\n\n              // Click\n              if (type == _click) {\n                if ($(event.target).is('a')) {\n                  return;\n                }\n                operate(self, false, true);\n\n              // Hover state\n              } else if (labelHover) {\n\n                // mouseout|touchend\n                if (/ut|nd/.test(type)) {\n                  parent[_remove](hoverClass);\n                  item[_remove](labelHoverClass);\n                } else {\n                  parent[_add](hoverClass);\n                  item[_add](labelHoverClass);\n                }\n              }\n\n              if (_mobile) {\n                event.stopPropagation();\n              } else {\n                return false;\n              }\n            }\n          });\n        }\n\n        // Input events\n        self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {\n          var type = event[_type],\n            key = event.keyCode;\n\n          // Click\n          if (type == _click) {\n            return false;\n\n          // Keydown\n          } else if (type == 'keydown' && key == 32) {\n            if (!(node[_type] == _radio && node[_checked])) {\n              if (node[_checked]) {\n                off(self, _checked);\n              } else {\n                on(self, _checked);\n              }\n            }\n\n            return false;\n\n          // Keyup\n          } else if (type == 'keyup' && node[_type] == _radio) {\n            !node[_checked] && on(self, _checked);\n\n          // Focus/blur\n          } else if (/us|ur/.test(type)) {\n            parent[type == 'blur' ? _remove : _add](focusClass);\n          }\n        });\n\n        // Helper events\n        helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {\n          var type = event[_type],\n\n            // mousedown|mouseup\n            toggle = /wn|up/.test(type) ? activeClass : hoverClass;\n\n          // Do nothing if input is disabled\n          if (!node[_disabled]) {\n\n            // Click\n            if (type == _click) {\n              operate(self, false, true);\n\n            // Active and hover states\n            } else {\n\n              // State is on\n              if (/wn|er|in/.test(type)) {\n\n                // mousedown|mouseover|touchbegin\n                parent[_add](toggle);\n\n              // State is off\n              } else {\n                parent[_remove](toggle + ' ' + activeClass);\n              }\n\n              // Label hover\n              if (label.length && labelHover && toggle == hoverClass) {\n\n                // mouseout|touchend\n                label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);\n              }\n            }\n\n            if (_mobile) {\n              event.stopPropagation();\n            } else {\n              return false;\n            }\n          }\n        });\n      });\n    } else {\n      return this;\n    }\n  };\n\n  // Do something with inputs\n  function operate(input, direct, method) {\n    var node = input[0],\n      state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,\n      active = method == _update ? {\n        checked: node[_checked],\n        disabled: node[_disabled],\n        indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'\n      } : node[state];\n\n    // Check, disable or indeterminate\n    if (/^(ch|di|in)/.test(method) && !active) {\n      on(input, state);\n\n    // Uncheck, enable or determinate\n    } else if (/^(un|en|de)/.test(method) && active) {\n      off(input, state);\n\n    // Update\n    } else if (method == _update) {\n\n      // Handle states\n      for (var each in active) {\n        if (active[each]) {\n          on(input, each, true);\n        } else {\n          off(input, each, true);\n        }\n      }\n\n    } else if (!direct || method == 'toggle') {\n\n      // Helper or label was clicked\n      if (!direct) {\n        input[_callback]('ifClicked');\n      }\n\n      // Toggle checked state\n      if (active) {\n        if (node[_type] !== _radio) {\n          off(input, state);\n        }\n      } else {\n        on(input, state);\n      }\n    }\n  }\n\n  // Add checked, disabled or indeterminate state\n  function on(input, state, keep) {\n    var node = input[0],\n      parent = input.parent(),\n      checked = state == _checked,\n      indeterminate = state == _indeterminate,\n      disabled = state == _disabled,\n      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n      regular = option(input, callback + capitalize(node[_type])),\n      specific = option(input, state + capitalize(node[_type]));\n\n    // Prevent unnecessary actions\n    if (node[state] !== true) {\n\n      // Toggle assigned radio buttons\n      if (!keep && state == _checked && node[_type] == _radio && node.name) {\n        var form = input.closest('form'),\n          inputs = 'input[name=\"' + node.name + '\"]';\n\n        inputs = form.length ? form.find(inputs) : $(inputs);\n\n        inputs.each(function() {\n          if (this !== node && $(this).data(_iCheck)) {\n            off($(this), state);\n          }\n        });\n      }\n\n      // Indeterminate state\n      if (indeterminate) {\n\n        // Add indeterminate state\n        node[state] = true;\n\n        // Remove checked state\n        if (node[_checked]) {\n          off(input, _checked, 'force');\n        }\n\n      // Checked or disabled state\n      } else {\n\n        // Add checked or disabled state\n        if (!keep) {\n          node[state] = true;\n        }\n\n        // Remove indeterminate state\n        if (checked && node[_indeterminate]) {\n          off(input, _indeterminate, false);\n        }\n      }\n\n      // Trigger callbacks\n      callbacks(input, checked, state, keep);\n    }\n\n    // Add proper cursor\n    if (node[_disabled] && !!option(input, _cursor, true)) {\n      parent.find('.' + _iCheckHelper).css(_cursor, 'default');\n    }\n\n    // Add state class\n    parent[_add](specific || option(input, state) || '');\n\n    // Set ARIA attribute\n    if (!!parent.attr('role') && !indeterminate) {\n      parent.attr('aria-' + (disabled ? _disabled : _checked), 'true');\n    }\n\n    // Remove regular state class\n    parent[_remove](regular || option(input, callback) || '');\n  }\n\n  // Remove checked, disabled or indeterminate state\n  function off(input, state, keep) {\n    var node = input[0],\n      parent = input.parent(),\n      checked = state == _checked,\n      indeterminate = state == _indeterminate,\n      disabled = state == _disabled,\n      callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n      regular = option(input, callback + capitalize(node[_type])),\n      specific = option(input, state + capitalize(node[_type]));\n\n    // Prevent unnecessary actions\n    if (node[state] !== false) {\n\n      // Toggle state\n      if (indeterminate || !keep || keep == 'force') {\n        node[state] = false;\n      }\n\n      // Trigger callbacks\n      callbacks(input, checked, callback, keep);\n    }\n\n    // Add proper cursor\n    if (!node[_disabled] && !!option(input, _cursor, true)) {\n      parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');\n    }\n\n    // Remove state class\n    parent[_remove](specific || option(input, state) || '');\n\n    // Set ARIA attribute\n    if (!!parent.attr('role') && !indeterminate) {\n      parent.attr('aria-' + (disabled ? _disabled : _checked), 'false');\n    }\n\n    // Add regular state class\n    parent[_add](regular || option(input, callback) || '');\n  }\n\n  // Remove all traces\n  function tidy(input, callback) {\n    if (input.data(_iCheck)) {\n\n      // Remove everything except input\n      input.parent().html(input.attr('style', input.data(_iCheck).s || ''));\n\n      // Callback\n      if (callback) {\n        input[_callback](callback);\n      }\n\n      // Unbind events\n      input.off('.i').unwrap();\n      $(_label + '[for=\"' + input[0].id + '\"]').add(input.closest(_label)).off('.i');\n    }\n  }\n\n  // Get some option\n  function option(input, state, regular) {\n    if (input.data(_iCheck)) {\n      return input.data(_iCheck).o[state + (regular ? '' : 'Class')];\n    }\n  }\n\n  // Capitalize some string\n  function capitalize(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n  }\n\n  // Executable handlers\n  function callbacks(input, checked, callback, keep) {\n    if (!keep) {\n      if (checked) {\n        input[_callback]('ifToggled');\n      }\n\n      input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));\n    }\n  }\n})(window.jQuery || window.Zepto);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/all.css",
    "content": "/* iCheck plugin skins\n----------------------------------- */\n@import url(\"minimal/_all.css\");\n/*\n@import url(\"minimal/minimal.css\");\n@import url(\"minimal/red.css\");\n@import url(\"minimal/green.css\");\n@import url(\"minimal/blue.css\");\n@import url(\"minimal/aero.css\");\n@import url(\"minimal/grey.css\");\n@import url(\"minimal/orange.css\");\n@import url(\"minimal/yellow.css\");\n@import url(\"minimal/pink.css\");\n@import url(\"minimal/purple.css\");\n*/\n\n@import url(\"square/_all.css\");\n/*\n@import url(\"square/square.css\");\n@import url(\"square/red.css\");\n@import url(\"square/green.css\");\n@import url(\"square/blue.css\");\n@import url(\"square/aero.css\");\n@import url(\"square/grey.css\");\n@import url(\"square/orange.css\");\n@import url(\"square/yellow.css\");\n@import url(\"square/pink.css\");\n@import url(\"square/purple.css\");\n*/\n\n@import url(\"flat/_all.css\");\n/*\n@import url(\"flat/flat.css\");\n@import url(\"flat/red.css\");\n@import url(\"flat/green.css\");\n@import url(\"flat/blue.css\");\n@import url(\"flat/aero.css\");\n@import url(\"flat/grey.css\");\n@import url(\"flat/orange.css\");\n@import url(\"flat/yellow.css\");\n@import url(\"flat/pink.css\");\n@import url(\"flat/purple.css\");\n*/\n\n@import url(\"line/_all.css\");\n/*\n@import url(\"line/line.css\");\n@import url(\"line/red.css\");\n@import url(\"line/green.css\");\n@import url(\"line/blue.css\");\n@import url(\"line/aero.css\");\n@import url(\"line/grey.css\");\n@import url(\"line/orange.css\");\n@import url(\"line/yellow.css\");\n@import url(\"line/pink.css\");\n@import url(\"line/purple.css\");\n*/\n\n@import url(\"polaris/polaris.css\");\n\n@import url(\"futurico/futurico.css\");"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/_all.css",
    "content": "/* iCheck plugin Flat skin\n----------------------------------- */\n.icheckbox_flat,\n.iradio_flat {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(flat.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat {\n    background-position: 0 0;\n}\n    .icheckbox_flat.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat {\n    background-position: -88px 0;\n}\n    .iradio_flat.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat,\n    .iradio_flat {\n        background-image: url(flat@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* red */\n.icheckbox_flat-red,\n.iradio_flat-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-red {\n    background-position: 0 0;\n}\n    .icheckbox_flat-red.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-red.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-red.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-red {\n    background-position: -88px 0;\n}\n    .iradio_flat-red.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-red.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-red.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-red,\n    .iradio_flat-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* green */\n.icheckbox_flat-green,\n.iradio_flat-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-green {\n    background-position: 0 0;\n}\n    .icheckbox_flat-green.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-green.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-green.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-green {\n    background-position: -88px 0;\n}\n    .iradio_flat-green.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-green.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-green.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-green,\n    .iradio_flat-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* blue */\n.icheckbox_flat-blue,\n.iradio_flat-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-blue {\n    background-position: 0 0;\n}\n    .icheckbox_flat-blue.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-blue.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-blue.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-blue {\n    background-position: -88px 0;\n}\n    .iradio_flat-blue.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-blue.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-blue.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-blue,\n    .iradio_flat-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* aero */\n.icheckbox_flat-aero,\n.iradio_flat-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-aero {\n    background-position: 0 0;\n}\n    .icheckbox_flat-aero.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-aero.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-aero.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-aero {\n    background-position: -88px 0;\n}\n    .iradio_flat-aero.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-aero.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-aero.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-aero,\n    .iradio_flat-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* grey */\n.icheckbox_flat-grey,\n.iradio_flat-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-grey {\n    background-position: 0 0;\n}\n    .icheckbox_flat-grey.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-grey.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-grey.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-grey {\n    background-position: -88px 0;\n}\n    .iradio_flat-grey.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-grey.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-grey.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-grey,\n    .iradio_flat-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* orange */\n.icheckbox_flat-orange,\n.iradio_flat-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-orange {\n    background-position: 0 0;\n}\n    .icheckbox_flat-orange.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-orange.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-orange.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-orange {\n    background-position: -88px 0;\n}\n    .iradio_flat-orange.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-orange.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-orange.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-orange,\n    .iradio_flat-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* yellow */\n.icheckbox_flat-yellow,\n.iradio_flat-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_flat-yellow.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-yellow.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-yellow.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-yellow {\n    background-position: -88px 0;\n}\n    .iradio_flat-yellow.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-yellow.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-yellow.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-yellow,\n    .iradio_flat-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* pink */\n.icheckbox_flat-pink,\n.iradio_flat-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-pink {\n    background-position: 0 0;\n}\n    .icheckbox_flat-pink.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-pink.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-pink.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-pink {\n    background-position: -88px 0;\n}\n    .iradio_flat-pink.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-pink.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-pink.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-pink,\n    .iradio_flat-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* purple */\n.icheckbox_flat-purple,\n.iradio_flat-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-purple {\n    background-position: 0 0;\n}\n    .icheckbox_flat-purple.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-purple.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-purple.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-purple {\n    background-position: -88px 0;\n}\n    .iradio_flat-purple.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-purple.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-purple.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-purple,\n    .iradio_flat-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/aero.css",
    "content": "/* iCheck plugin Flat skin, aero\n----------------------------------- */\n.icheckbox_flat-aero,\n.iradio_flat-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-aero {\n    background-position: 0 0;\n}\n    .icheckbox_flat-aero.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-aero.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-aero.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-aero {\n    background-position: -88px 0;\n}\n    .iradio_flat-aero.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-aero.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-aero.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-aero,\n    .iradio_flat-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/blue.css",
    "content": "/* iCheck plugin Flat skin, blue\n----------------------------------- */\n.icheckbox_flat-blue,\n.iradio_flat-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-blue {\n    background-position: 0 0;\n}\n    .icheckbox_flat-blue.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-blue.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-blue.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-blue {\n    background-position: -88px 0;\n}\n    .iradio_flat-blue.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-blue.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-blue.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-blue,\n    .iradio_flat-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/flat.css",
    "content": "/* iCheck plugin flat skin, black\n----------------------------------- */\n.icheckbox_flat,\n.iradio_flat {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(flat.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat {\n    background-position: 0 0;\n}\n    .icheckbox_flat.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat {\n    background-position: -88px 0;\n}\n    .iradio_flat.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat,\n    .iradio_flat {\n        background-image: url(flat@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/green.css",
    "content": "/* iCheck plugin Flat skin, green\n----------------------------------- */\n.icheckbox_flat-green,\n.iradio_flat-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-green {\n    background-position: 0 0;\n}\n    .icheckbox_flat-green.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-green.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-green.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-green {\n    background-position: -88px 0;\n}\n    .iradio_flat-green.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-green.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-green.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-green,\n    .iradio_flat-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/grey.css",
    "content": "/* iCheck plugin Flat skin, grey\n----------------------------------- */\n.icheckbox_flat-grey,\n.iradio_flat-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-grey {\n    background-position: 0 0;\n}\n    .icheckbox_flat-grey.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-grey.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-grey.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-grey {\n    background-position: -88px 0;\n}\n    .iradio_flat-grey.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-grey.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-grey.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-grey,\n    .iradio_flat-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/orange.css",
    "content": "/* iCheck plugin Flat skin, orange\n----------------------------------- */\n.icheckbox_flat-orange,\n.iradio_flat-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-orange {\n    background-position: 0 0;\n}\n    .icheckbox_flat-orange.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-orange.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-orange.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-orange {\n    background-position: -88px 0;\n}\n    .iradio_flat-orange.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-orange.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-orange.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-orange,\n    .iradio_flat-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/pink.css",
    "content": "/* iCheck plugin Flat skin, pink\n----------------------------------- */\n.icheckbox_flat-pink,\n.iradio_flat-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-pink {\n    background-position: 0 0;\n}\n    .icheckbox_flat-pink.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-pink.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-pink.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-pink {\n    background-position: -88px 0;\n}\n    .iradio_flat-pink.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-pink.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-pink.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-pink,\n    .iradio_flat-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/purple.css",
    "content": "/* iCheck plugin Flat skin, purple\n----------------------------------- */\n.icheckbox_flat-purple,\n.iradio_flat-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-purple {\n    background-position: 0 0;\n}\n    .icheckbox_flat-purple.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-purple.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-purple.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-purple {\n    background-position: -88px 0;\n}\n    .iradio_flat-purple.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-purple.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-purple.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-purple,\n    .iradio_flat-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/red.css",
    "content": "/* iCheck plugin Flat skin, red\n----------------------------------- */\n.icheckbox_flat-red,\n.iradio_flat-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-red {\n    background-position: 0 0;\n}\n    .icheckbox_flat-red.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-red.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-red.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-red {\n    background-position: -88px 0;\n}\n    .iradio_flat-red.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-red.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-red.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-red,\n    .iradio_flat-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/flat/yellow.css",
    "content": "/* iCheck plugin Flat skin, yellow\n----------------------------------- */\n.icheckbox_flat-yellow,\n.iradio_flat-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_flat-yellow.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-yellow.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-yellow.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-yellow {\n    background-position: -88px 0;\n}\n    .iradio_flat-yellow.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-yellow.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-yellow.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_flat-yellow,\n    .iradio_flat-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/futurico/futurico.css",
    "content": "/* iCheck plugin Futurico skin\n----------------------------------- */\n.icheckbox_futurico,\n.iradio_futurico {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 16px;\n    height: 17px;\n    background: url(futurico.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_futurico {\n    background-position: 0 0;\n}\n    .icheckbox_futurico.checked {\n        background-position: -18px 0;\n    }\n    .icheckbox_futurico.disabled {\n        background-position: -36px 0;\n        cursor: default;\n    }\n    .icheckbox_futurico.checked.disabled {\n        background-position: -54px 0;\n    }\n\n.iradio_futurico {\n    background-position: -72px 0;\n}\n    .iradio_futurico.checked {\n        background-position: -90px 0;\n    }\n    .iradio_futurico.disabled {\n        background-position: -108px 0;\n        cursor: default;\n    }\n    .iradio_futurico.checked.disabled {\n        background-position: -126px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_futurico,\n    .iradio_futurico {\n        background-image: url(futurico@2x.png);\n        -webkit-background-size: 144px 19px;\n        background-size: 144px 19px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/_all.css",
    "content": "/* iCheck plugin Line skin\n----------------------------------- */\n.icheckbox_line,\n.iradio_line {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #000;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line.hover,\n    .icheckbox_line.checked.hover,\n    .iradio_line.hover {\n        background: #444;\n    }\n    .icheckbox_line.checked,\n    .iradio_line.checked {\n        background: #000;\n    }\n        .icheckbox_line.checked .icheck_line-icon,\n        .iradio_line.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line.disabled,\n    .iradio_line.disabled {\n        background: #ccc;\n        cursor: default;\n    }\n        .icheckbox_line.disabled .icheck_line-icon,\n        .iradio_line.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line.checked.disabled,\n    .iradio_line.checked.disabled {\n        background: #ccc;\n    }\n        .icheckbox_line.checked.disabled .icheck_line-icon,\n        .iradio_line.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* red */\n.icheckbox_line-red,\n.iradio_line-red {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #e56c69;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-red.hover,\n    .icheckbox_line-red.checked.hover,\n    .iradio_line-red.hover {\n        background: #E98582;\n    }\n    .icheckbox_line-red.checked,\n    .iradio_line-red.checked {\n        background: #e56c69;\n    }\n        .icheckbox_line-red.checked .icheck_line-icon,\n        .iradio_line-red.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-red.disabled,\n    .iradio_line-red.disabled {\n        background: #F7D3D2;\n        cursor: default;\n    }\n        .icheckbox_line-red.disabled .icheck_line-icon,\n        .iradio_line-red.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-red.checked.disabled,\n    .iradio_line-red.checked.disabled {\n        background: #F7D3D2;\n    }\n        .icheckbox_line-red.checked.disabled .icheck_line-icon,\n        .iradio_line-red.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* green */\n.icheckbox_line-green,\n.iradio_line-green {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #1b7e5a;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-green.hover,\n    .icheckbox_line-green.checked.hover,\n    .iradio_line-green.hover {\n        background: #24AA7A;\n    }\n    .icheckbox_line-green.checked,\n    .iradio_line-green.checked {\n        background: #1b7e5a;\n    }\n        .icheckbox_line-green.checked .icheck_line-icon,\n        .iradio_line-green.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-green.disabled,\n    .iradio_line-green.disabled {\n        background: #89E6C4;\n        cursor: default;\n    }\n        .icheckbox_line-green.disabled .icheck_line-icon,\n        .iradio_line-green.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-green.checked.disabled,\n    .iradio_line-green.checked.disabled {\n        background: #89E6C4;\n    }\n        .icheckbox_line-green.checked.disabled .icheck_line-icon,\n        .iradio_line-green.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* blue */\n.icheckbox_line-blue,\n.iradio_line-blue {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #2489c5;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-blue.hover,\n    .icheckbox_line-blue.checked.hover,\n    .iradio_line-blue.hover {\n        background: #3DA0DB;\n    }\n    .icheckbox_line-blue.checked,\n    .iradio_line-blue.checked {\n        background: #2489c5;\n    }\n        .icheckbox_line-blue.checked .icheck_line-icon,\n        .iradio_line-blue.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-blue.disabled,\n    .iradio_line-blue.disabled {\n        background: #ADD7F0;\n        cursor: default;\n    }\n        .icheckbox_line-blue.disabled .icheck_line-icon,\n        .iradio_line-blue.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-blue.checked.disabled,\n    .iradio_line-blue.checked.disabled {\n        background: #ADD7F0;\n    }\n        .icheckbox_line-blue.checked.disabled .icheck_line-icon,\n        .iradio_line-blue.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* aero */\n.icheckbox_line-aero,\n.iradio_line-aero {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #9cc2cb;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-aero.hover,\n    .icheckbox_line-aero.checked.hover,\n    .iradio_line-aero.hover {\n        background: #B5D1D8;\n    }\n    .icheckbox_line-aero.checked,\n    .iradio_line-aero.checked {\n        background: #9cc2cb;\n    }\n        .icheckbox_line-aero.checked .icheck_line-icon,\n        .iradio_line-aero.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-aero.disabled,\n    .iradio_line-aero.disabled {\n        background: #D2E4E8;\n        cursor: default;\n    }\n        .icheckbox_line-aero.disabled .icheck_line-icon,\n        .iradio_line-aero.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-aero.checked.disabled,\n    .iradio_line-aero.checked.disabled {\n        background: #D2E4E8;\n    }\n        .icheckbox_line-aero.checked.disabled .icheck_line-icon,\n        .iradio_line-aero.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* grey */\n.icheckbox_line-grey,\n.iradio_line-grey {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #73716e;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-grey.hover,\n    .icheckbox_line-grey.checked.hover,\n    .iradio_line-grey.hover {\n        background: #8B8986;\n    }\n    .icheckbox_line-grey.checked,\n    .iradio_line-grey.checked {\n        background: #73716e;\n    }\n        .icheckbox_line-grey.checked .icheck_line-icon,\n        .iradio_line-grey.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-grey.disabled,\n    .iradio_line-grey.disabled {\n        background: #D5D4D3;\n        cursor: default;\n    }\n        .icheckbox_line-grey.disabled .icheck_line-icon,\n        .iradio_line-grey.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-grey.checked.disabled,\n    .iradio_line-grey.checked.disabled {\n        background: #D5D4D3;\n    }\n        .icheckbox_line-grey.checked.disabled .icheck_line-icon,\n        .iradio_line-grey.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* orange */\n.icheckbox_line-orange,\n.iradio_line-orange {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #f70;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-orange.hover,\n    .icheckbox_line-orange.checked.hover,\n    .iradio_line-orange.hover {\n        background: #FF9233;\n    }\n    .icheckbox_line-orange.checked,\n    .iradio_line-orange.checked {\n        background: #f70;\n    }\n        .icheckbox_line-orange.checked .icheck_line-icon,\n        .iradio_line-orange.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-orange.disabled,\n    .iradio_line-orange.disabled {\n        background: #FFD6B3;\n        cursor: default;\n    }\n        .icheckbox_line-orange.disabled .icheck_line-icon,\n        .iradio_line-orange.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-orange.checked.disabled,\n    .iradio_line-orange.checked.disabled {\n        background: #FFD6B3;\n    }\n        .icheckbox_line-orange.checked.disabled .icheck_line-icon,\n        .iradio_line-orange.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* yellow */\n.icheckbox_line-yellow,\n.iradio_line-yellow {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #FFC414;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-yellow.hover,\n    .icheckbox_line-yellow.checked.hover,\n    .iradio_line-yellow.hover {\n        background: #FFD34F;\n    }\n    .icheckbox_line-yellow.checked,\n    .iradio_line-yellow.checked {\n        background: #FFC414;\n    }\n        .icheckbox_line-yellow.checked .icheck_line-icon,\n        .iradio_line-yellow.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-yellow.disabled,\n    .iradio_line-yellow.disabled {\n        background: #FFE495;\n        cursor: default;\n    }\n        .icheckbox_line-yellow.disabled .icheck_line-icon,\n        .iradio_line-yellow.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-yellow.checked.disabled,\n    .iradio_line-yellow.checked.disabled {\n        background: #FFE495;\n    }\n        .icheckbox_line-yellow.checked.disabled .icheck_line-icon,\n        .iradio_line-yellow.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* pink */\n.icheckbox_line-pink,\n.iradio_line-pink {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #a77a94;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-pink.hover,\n    .icheckbox_line-pink.checked.hover,\n    .iradio_line-pink.hover {\n        background: #B995A9;\n    }\n    .icheckbox_line-pink.checked,\n    .iradio_line-pink.checked {\n        background: #a77a94;\n    }\n        .icheckbox_line-pink.checked .icheck_line-icon,\n        .iradio_line-pink.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-pink.disabled,\n    .iradio_line-pink.disabled {\n        background: #E0D0DA;\n        cursor: default;\n    }\n        .icheckbox_line-pink.disabled .icheck_line-icon,\n        .iradio_line-pink.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-pink.checked.disabled,\n    .iradio_line-pink.checked.disabled {\n        background: #E0D0DA;\n    }\n        .icheckbox_line-pink.checked.disabled .icheck_line-icon,\n        .iradio_line-pink.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* purple */\n.icheckbox_line-purple,\n.iradio_line-purple {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #6a5a8c;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-purple.hover,\n    .icheckbox_line-purple.checked.hover,\n    .iradio_line-purple.hover {\n        background: #8677A7;\n    }\n    .icheckbox_line-purple.checked,\n    .iradio_line-purple.checked {\n        background: #6a5a8c;\n    }\n        .icheckbox_line-purple.checked .icheck_line-icon,\n        .iradio_line-purple.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-purple.disabled,\n    .iradio_line-purple.disabled {\n        background: #D2CCDE;\n        cursor: default;\n    }\n        .icheckbox_line-purple.disabled .icheck_line-icon,\n        .iradio_line-purple.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-purple.checked.disabled,\n    .iradio_line-purple.checked.disabled {\n        background: #D2CCDE;\n    }\n        .icheckbox_line-purple.checked.disabled .icheck_line-icon,\n        .iradio_line-purple.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/aero.css",
    "content": "/* iCheck plugin Line skin, aero\n----------------------------------- */\n.icheckbox_line-aero,\n.iradio_line-aero {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #9cc2cb;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-aero.hover,\n    .icheckbox_line-aero.checked.hover,\n    .iradio_line-aero.hover {\n        background: #B5D1D8;\n    }\n    .icheckbox_line-aero.checked,\n    .iradio_line-aero.checked {\n        background: #9cc2cb;\n    }\n        .icheckbox_line-aero.checked .icheck_line-icon,\n        .iradio_line-aero.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-aero.disabled,\n    .iradio_line-aero.disabled {\n        background: #D2E4E8;\n        cursor: default;\n    }\n        .icheckbox_line-aero.disabled .icheck_line-icon,\n        .iradio_line-aero.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-aero.checked.disabled,\n    .iradio_line-aero.checked.disabled {\n        background: #D2E4E8;\n    }\n        .icheckbox_line-aero.checked.disabled .icheck_line-icon,\n        .iradio_line-aero.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/blue.css",
    "content": "/* iCheck plugin Line skin, blue\n----------------------------------- */\n.icheckbox_line-blue,\n.iradio_line-blue {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #2489c5;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-blue.hover,\n    .icheckbox_line-blue.checked.hover,\n    .iradio_line-blue.hover {\n        background: #3DA0DB;\n    }\n    .icheckbox_line-blue.checked,\n    .iradio_line-blue.checked {\n        background: #2489c5;\n    }\n        .icheckbox_line-blue.checked .icheck_line-icon,\n        .iradio_line-blue.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-blue.disabled,\n    .iradio_line-blue.disabled {\n        background: #ADD7F0;\n        cursor: default;\n    }\n        .icheckbox_line-blue.disabled .icheck_line-icon,\n        .iradio_line-blue.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-blue.checked.disabled,\n    .iradio_line-blue.checked.disabled {\n        background: #ADD7F0;\n    }\n        .icheckbox_line-blue.checked.disabled .icheck_line-icon,\n        .iradio_line-blue.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/green.css",
    "content": "/* iCheck plugin Line skin, green\n----------------------------------- */\n.icheckbox_line-green,\n.iradio_line-green {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #1b7e5a;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-green.hover,\n    .icheckbox_line-green.checked.hover,\n    .iradio_line-green.hover {\n        background: #24AA7A;\n    }\n    .icheckbox_line-green.checked,\n    .iradio_line-green.checked {\n        background: #1b7e5a;\n    }\n        .icheckbox_line-green.checked .icheck_line-icon,\n        .iradio_line-green.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-green.disabled,\n    .iradio_line-green.disabled {\n        background: #89E6C4;\n        cursor: default;\n    }\n        .icheckbox_line-green.disabled .icheck_line-icon,\n        .iradio_line-green.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-green.checked.disabled,\n    .iradio_line-green.checked.disabled {\n        background: #89E6C4;\n    }\n        .icheckbox_line-green.checked.disabled .icheck_line-icon,\n        .iradio_line-green.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/grey.css",
    "content": "/* iCheck plugin Line skin, grey\n----------------------------------- */\n.icheckbox_line-grey,\n.iradio_line-grey {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #73716e;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-grey.hover,\n    .icheckbox_line-grey.checked.hover,\n    .iradio_line-grey.hover {\n        background: #8B8986;\n    }\n    .icheckbox_line-grey.checked,\n    .iradio_line-grey.checked {\n        background: #73716e;\n    }\n        .icheckbox_line-grey.checked .icheck_line-icon,\n        .iradio_line-grey.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-grey.disabled,\n    .iradio_line-grey.disabled {\n        background: #D5D4D3;\n        cursor: default;\n    }\n        .icheckbox_line-grey.disabled .icheck_line-icon,\n        .iradio_line-grey.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-grey.checked.disabled,\n    .iradio_line-grey.checked.disabled {\n        background: #D5D4D3;\n    }\n        .icheckbox_line-grey.checked.disabled .icheck_line-icon,\n        .iradio_line-grey.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/line.css",
    "content": "/* iCheck plugin Line skin, black\n----------------------------------- */\n.icheckbox_line,\n.iradio_line {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #000;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line.hover,\n    .icheckbox_line.checked.hover,\n    .iradio_line.hover {\n        background: #444;\n    }\n    .icheckbox_line.checked,\n    .iradio_line.checked {\n        background: #000;\n    }\n        .icheckbox_line.checked .icheck_line-icon,\n        .iradio_line.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line.disabled,\n    .iradio_line.disabled {\n        background: #ccc;\n        cursor: default;\n    }\n        .icheckbox_line.disabled .icheck_line-icon,\n        .iradio_line.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line.checked.disabled,\n    .iradio_line.checked.disabled {\n        background: #ccc;\n    }\n        .icheckbox_line.checked.disabled .icheck_line-icon,\n        .iradio_line.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/orange.css",
    "content": "/* iCheck plugin Line skin, orange\n----------------------------------- */\n.icheckbox_line-orange,\n.iradio_line-orange {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #f70;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-orange.hover,\n    .icheckbox_line-orange.checked.hover,\n    .iradio_line-orange.hover {\n        background: #FF9233;\n    }\n    .icheckbox_line-orange.checked,\n    .iradio_line-orange.checked {\n        background: #f70;\n    }\n        .icheckbox_line-orange.checked .icheck_line-icon,\n        .iradio_line-orange.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-orange.disabled,\n    .iradio_line-orange.disabled {\n        background: #FFD6B3;\n        cursor: default;\n    }\n        .icheckbox_line-orange.disabled .icheck_line-icon,\n        .iradio_line-orange.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-orange.checked.disabled,\n    .iradio_line-orange.checked.disabled {\n        background: #FFD6B3;\n    }\n        .icheckbox_line-orange.checked.disabled .icheck_line-icon,\n        .iradio_line-orange.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/pink.css",
    "content": "/* iCheck plugin Line skin, pink\n----------------------------------- */\n.icheckbox_line-pink,\n.iradio_line-pink {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #a77a94;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-pink.hover,\n    .icheckbox_line-pink.checked.hover,\n    .iradio_line-pink.hover {\n        background: #B995A9;\n    }\n    .icheckbox_line-pink.checked,\n    .iradio_line-pink.checked {\n        background: #a77a94;\n    }\n        .icheckbox_line-pink.checked .icheck_line-icon,\n        .iradio_line-pink.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-pink.disabled,\n    .iradio_line-pink.disabled {\n        background: #E0D0DA;\n        cursor: default;\n    }\n        .icheckbox_line-pink.disabled .icheck_line-icon,\n        .iradio_line-pink.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-pink.checked.disabled,\n    .iradio_line-pink.checked.disabled {\n        background: #E0D0DA;\n    }\n        .icheckbox_line-pink.checked.disabled .icheck_line-icon,\n        .iradio_line-pink.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/purple.css",
    "content": "/* iCheck plugin Line skin, purple\n----------------------------------- */\n.icheckbox_line-purple,\n.iradio_line-purple {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #6a5a8c;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-purple.hover,\n    .icheckbox_line-purple.checked.hover,\n    .iradio_line-purple.hover {\n        background: #8677A7;\n    }\n    .icheckbox_line-purple.checked,\n    .iradio_line-purple.checked {\n        background: #6a5a8c;\n    }\n        .icheckbox_line-purple.checked .icheck_line-icon,\n        .iradio_line-purple.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-purple.disabled,\n    .iradio_line-purple.disabled {\n        background: #D2CCDE;\n        cursor: default;\n    }\n        .icheckbox_line-purple.disabled .icheck_line-icon,\n        .iradio_line-purple.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-purple.checked.disabled,\n    .iradio_line-purple.checked.disabled {\n        background: #D2CCDE;\n    }\n        .icheckbox_line-purple.checked.disabled .icheck_line-icon,\n        .iradio_line-purple.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/red.css",
    "content": "/* iCheck plugin Line skin, red\n----------------------------------- */\n.icheckbox_line-red,\n.iradio_line-red {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #e56c69;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-red.hover,\n    .icheckbox_line-red.checked.hover,\n    .iradio_line-red.hover {\n        background: #E98582;\n    }\n    .icheckbox_line-red.checked,\n    .iradio_line-red.checked {\n        background: #e56c69;\n    }\n        .icheckbox_line-red.checked .icheck_line-icon,\n        .iradio_line-red.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-red.disabled,\n    .iradio_line-red.disabled {\n        background: #F7D3D2;\n        cursor: default;\n    }\n        .icheckbox_line-red.disabled .icheck_line-icon,\n        .iradio_line-red.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-red.checked.disabled,\n    .iradio_line-red.checked.disabled {\n        background: #F7D3D2;\n    }\n        .icheckbox_line-red.checked.disabled .icheck_line-icon,\n        .iradio_line-red.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/line/yellow.css",
    "content": "/* iCheck plugin Line skin, yellow\n----------------------------------- */\n.icheckbox_line-yellow,\n.iradio_line-yellow {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #FFC414;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-yellow.hover,\n    .icheckbox_line-yellow.checked.hover,\n    .iradio_line-yellow.hover {\n        background: #FFD34F;\n    }\n    .icheckbox_line-yellow.checked,\n    .iradio_line-yellow.checked {\n        background: #FFC414;\n    }\n        .icheckbox_line-yellow.checked .icheck_line-icon,\n        .iradio_line-yellow.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-yellow.disabled,\n    .iradio_line-yellow.disabled {\n        background: #FFE495;\n        cursor: default;\n    }\n        .icheckbox_line-yellow.disabled .icheck_line-icon,\n        .iradio_line-yellow.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-yellow.checked.disabled,\n    .iradio_line-yellow.checked.disabled {\n        background: #FFE495;\n    }\n        .icheckbox_line-yellow.checked.disabled .icheck_line-icon,\n        .iradio_line-yellow.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/_all.css",
    "content": "/* iCheck plugin Minimal skin\n----------------------------------- */\n.icheckbox_minimal,\n.iradio_minimal {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(minimal.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal {\n    background-position: 0 0;\n}\n    .icheckbox_minimal.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal {\n    background-position: -100px 0;\n}\n    .iradio_minimal.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal,\n    .iradio_minimal {\n        background-image: url(minimal@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* red */\n.icheckbox_minimal-red,\n.iradio_minimal-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-red {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-red.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-red.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-red.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-red.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-red {\n    background-position: -100px 0;\n}\n    .iradio_minimal-red.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-red.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-red.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-red.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-red,\n    .iradio_minimal-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* green */\n.icheckbox_minimal-green,\n.iradio_minimal-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-green {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-green.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-green.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-green.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-green.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-green {\n    background-position: -100px 0;\n}\n    .iradio_minimal-green.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-green.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-green.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-green.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-green,\n    .iradio_minimal-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* blue */\n.icheckbox_minimal-blue,\n.iradio_minimal-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-blue {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-blue.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-blue.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-blue.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-blue.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-blue {\n    background-position: -100px 0;\n}\n    .iradio_minimal-blue.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-blue.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-blue.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-blue.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-blue,\n    .iradio_minimal-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* aero */\n.icheckbox_minimal-aero,\n.iradio_minimal-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-aero {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-aero.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-aero.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-aero.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-aero.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-aero {\n    background-position: -100px 0;\n}\n    .iradio_minimal-aero.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-aero.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-aero.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-aero.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-aero,\n    .iradio_minimal-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* grey */\n.icheckbox_minimal-grey,\n.iradio_minimal-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-grey {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-grey.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-grey.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-grey.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-grey.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-grey {\n    background-position: -100px 0;\n}\n    .iradio_minimal-grey.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-grey.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-grey.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-grey.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-grey,\n    .iradio_minimal-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* orange */\n.icheckbox_minimal-orange,\n.iradio_minimal-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-orange {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-orange.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-orange.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-orange.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-orange.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-orange {\n    background-position: -100px 0;\n}\n    .iradio_minimal-orange.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-orange.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-orange.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-orange.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-orange,\n    .iradio_minimal-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* yellow */\n.icheckbox_minimal-yellow,\n.iradio_minimal-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-yellow.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-yellow.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-yellow.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-yellow.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-yellow {\n    background-position: -100px 0;\n}\n    .iradio_minimal-yellow.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-yellow.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-yellow.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-yellow.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-yellow,\n    .iradio_minimal-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* pink */\n.icheckbox_minimal-pink,\n.iradio_minimal-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-pink {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-pink.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-pink.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-pink.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-pink.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-pink {\n    background-position: -100px 0;\n}\n    .iradio_minimal-pink.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-pink.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-pink.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-pink.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-pink,\n    .iradio_minimal-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* purple */\n.icheckbox_minimal-purple,\n.iradio_minimal-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-purple {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-purple.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-purple.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-purple.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-purple.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-purple {\n    background-position: -100px 0;\n}\n    .iradio_minimal-purple.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-purple.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-purple.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-purple.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-purple,\n    .iradio_minimal-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/aero.css",
    "content": "/* iCheck plugin Minimal skin, aero\n----------------------------------- */\n.icheckbox_minimal-aero,\n.iradio_minimal-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-aero {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-aero.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-aero.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-aero.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-aero.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-aero {\n    background-position: -100px 0;\n}\n    .iradio_minimal-aero.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-aero.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-aero.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-aero.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-aero,\n    .iradio_minimal-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/blue.css",
    "content": "/* iCheck plugin Minimal skin, blue\n----------------------------------- */\n.icheckbox_minimal-blue,\n.iradio_minimal-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-blue {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-blue.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-blue.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-blue.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-blue.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-blue {\n    background-position: -100px 0;\n}\n    .iradio_minimal-blue.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-blue.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-blue.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-blue.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-blue,\n    .iradio_minimal-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/green.css",
    "content": "/* iCheck plugin Minimal skin, green\n----------------------------------- */\n.icheckbox_minimal-green,\n.iradio_minimal-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-green {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-green.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-green.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-green.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-green.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-green {\n    background-position: -100px 0;\n}\n    .iradio_minimal-green.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-green.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-green.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-green.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-green,\n    .iradio_minimal-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/grey.css",
    "content": "/* iCheck plugin Minimal skin, grey\n----------------------------------- */\n.icheckbox_minimal-grey,\n.iradio_minimal-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-grey {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-grey.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-grey.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-grey.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-grey.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-grey {\n    background-position: -100px 0;\n}\n    .iradio_minimal-grey.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-grey.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-grey.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-grey.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-grey,\n    .iradio_minimal-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/minimal.css",
    "content": "/* iCheck plugin Minimal skin, black\n----------------------------------- */\n.icheckbox_minimal,\n.iradio_minimal {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(minimal.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal {\n    background-position: 0 0;\n}\n    .icheckbox_minimal.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal {\n    background-position: -100px 0;\n}\n    .iradio_minimal.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal,\n    .iradio_minimal {\n        background-image: url(minimal@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/orange.css",
    "content": "/* iCheck plugin Minimal skin, orange\n----------------------------------- */\n.icheckbox_minimal-orange,\n.iradio_minimal-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-orange {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-orange.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-orange.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-orange.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-orange.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-orange {\n    background-position: -100px 0;\n}\n    .iradio_minimal-orange.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-orange.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-orange.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-orange.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-orange,\n    .iradio_minimal-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/pink.css",
    "content": "/* iCheck plugin Minimal skin, pink\n----------------------------------- */\n.icheckbox_minimal-pink,\n.iradio_minimal-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-pink {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-pink.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-pink.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-pink.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-pink.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-pink {\n    background-position: -100px 0;\n}\n    .iradio_minimal-pink.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-pink.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-pink.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-pink.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-pink,\n    .iradio_minimal-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/purple.css",
    "content": "/* iCheck plugin Minimal skin, purple\n----------------------------------- */\n.icheckbox_minimal-purple,\n.iradio_minimal-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-purple {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-purple.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-purple.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-purple.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-purple.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-purple {\n    background-position: -100px 0;\n}\n    .iradio_minimal-purple.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-purple.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-purple.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-purple.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-purple,\n    .iradio_minimal-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/red.css",
    "content": "/* iCheck plugin Minimal skin, red\n----------------------------------- */\n.icheckbox_minimal-red,\n.iradio_minimal-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-red {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-red.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-red.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-red.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-red.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-red {\n    background-position: -100px 0;\n}\n    .iradio_minimal-red.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-red.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-red.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-red.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-red,\n    .iradio_minimal-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/minimal/yellow.css",
    "content": "/* iCheck plugin Minimal skin, yellow\n----------------------------------- */\n.icheckbox_minimal-yellow,\n.iradio_minimal-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-yellow.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-yellow.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-yellow.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-yellow.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-yellow {\n    background-position: -100px 0;\n}\n    .iradio_minimal-yellow.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-yellow.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-yellow.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-yellow.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_minimal-yellow,\n    .iradio_minimal-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/polaris/polaris.css",
    "content": "/* iCheck plugin Polaris skin\n----------------------------------- */\n.icheckbox_polaris,\n.iradio_polaris {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 29px;\n    height: 29px;\n    background: url(polaris.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_polaris {\n    background-position: 0 0;\n}\n    .icheckbox_polaris.hover {\n        background-position: -31px 0;\n    }\n    .icheckbox_polaris.checked {\n        background-position: -62px 0;\n    }\n    .icheckbox_polaris.disabled {\n        background-position: -93px 0;\n        cursor: default;\n    }\n    .icheckbox_polaris.checked.disabled {\n        background-position: -124px 0;\n    }\n\n.iradio_polaris {\n    background-position: -155px 0;\n}\n    .iradio_polaris.hover {\n        background-position: -186px 0;\n    }\n    .iradio_polaris.checked {\n        background-position: -217px 0;\n    }\n    .iradio_polaris.disabled {\n        background-position: -248px 0;\n        cursor: default;\n    }\n    .iradio_polaris.checked.disabled {\n        background-position: -279px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_polaris,\n    .iradio_polaris {\n        background-image: url(polaris@2x.png);\n        -webkit-background-size: 310px 31px;\n        background-size: 310px 31px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/_all.css",
    "content": "/* iCheck plugin Square skin\n----------------------------------- */\n.icheckbox_square,\n.iradio_square {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(square.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square {\n    background-position: 0 0;\n}\n    .icheckbox_square.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square {\n    background-position: -120px 0;\n}\n    .iradio_square.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square,\n    .iradio_square {\n        background-image: url(square@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* red */\n.icheckbox_square-red,\n.iradio_square-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-red {\n    background-position: 0 0;\n}\n    .icheckbox_square-red.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-red.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-red.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-red.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-red {\n    background-position: -120px 0;\n}\n    .iradio_square-red.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-red.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-red.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-red.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-red,\n    .iradio_square-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* green */\n.icheckbox_square-green,\n.iradio_square-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-green {\n    background-position: 0 0;\n}\n    .icheckbox_square-green.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-green.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-green.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-green.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-green {\n    background-position: -120px 0;\n}\n    .iradio_square-green.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-green.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-green.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-green.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-green,\n    .iradio_square-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* blue */\n.icheckbox_square-blue,\n.iradio_square-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-blue {\n    background-position: 0 0;\n}\n    .icheckbox_square-blue.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-blue.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-blue.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-blue.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-blue {\n    background-position: -120px 0;\n}\n    .iradio_square-blue.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-blue.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-blue.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-blue.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-blue,\n    .iradio_square-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* aero */\n.icheckbox_square-aero,\n.iradio_square-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-aero {\n    background-position: 0 0;\n}\n    .icheckbox_square-aero.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-aero.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-aero.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-aero.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-aero {\n    background-position: -120px 0;\n}\n    .iradio_square-aero.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-aero.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-aero.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-aero.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-aero,\n    .iradio_square-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* grey */\n.icheckbox_square-grey,\n.iradio_square-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-grey {\n    background-position: 0 0;\n}\n    .icheckbox_square-grey.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-grey.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-grey.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-grey.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-grey {\n    background-position: -120px 0;\n}\n    .iradio_square-grey.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-grey.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-grey.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-grey.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-grey,\n    .iradio_square-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* orange */\n.icheckbox_square-orange,\n.iradio_square-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-orange {\n    background-position: 0 0;\n}\n    .icheckbox_square-orange.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-orange.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-orange.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-orange.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-orange {\n    background-position: -120px 0;\n}\n    .iradio_square-orange.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-orange.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-orange.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-orange.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-orange,\n    .iradio_square-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* yellow */\n.icheckbox_square-yellow,\n.iradio_square-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_square-yellow.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-yellow.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-yellow.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-yellow.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-yellow {\n    background-position: -120px 0;\n}\n    .iradio_square-yellow.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-yellow.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-yellow.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-yellow.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-yellow,\n    .iradio_square-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* pink */\n.icheckbox_square-pink,\n.iradio_square-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-pink {\n    background-position: 0 0;\n}\n    .icheckbox_square-pink.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-pink.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-pink.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-pink.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-pink {\n    background-position: -120px 0;\n}\n    .iradio_square-pink.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-pink.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-pink.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-pink.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-pink,\n    .iradio_square-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* purple */\n.icheckbox_square-purple,\n.iradio_square-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-purple {\n    background-position: 0 0;\n}\n    .icheckbox_square-purple.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-purple.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-purple.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-purple.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-purple {\n    background-position: -120px 0;\n}\n    .iradio_square-purple.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-purple.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-purple.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-purple.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-purple,\n    .iradio_square-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/aero.css",
    "content": "/* iCheck plugin Square skin, aero\n----------------------------------- */\n.icheckbox_square-aero,\n.iradio_square-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-aero {\n    background-position: 0 0;\n}\n    .icheckbox_square-aero.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-aero.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-aero.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-aero.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-aero {\n    background-position: -120px 0;\n}\n    .iradio_square-aero.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-aero.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-aero.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-aero.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-aero,\n    .iradio_square-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/blue.css",
    "content": "/* iCheck plugin Square skin, blue\n----------------------------------- */\n.icheckbox_square-blue,\n.iradio_square-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-blue {\n    background-position: 0 0;\n}\n    .icheckbox_square-blue.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-blue.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-blue.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-blue.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-blue {\n    background-position: -120px 0;\n}\n    .iradio_square-blue.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-blue.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-blue.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-blue.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-blue,\n    .iradio_square-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/green.css",
    "content": "/* iCheck plugin Square skin, green\n----------------------------------- */\n.icheckbox_square-green,\n.iradio_square-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-green {\n    background-position: 0 0;\n}\n    .icheckbox_square-green.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-green.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-green.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-green.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-green {\n    background-position: -120px 0;\n}\n    .iradio_square-green.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-green.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-green.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-green.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-green,\n    .iradio_square-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/grey.css",
    "content": "/* iCheck plugin Square skin, grey\n----------------------------------- */\n.icheckbox_square-grey,\n.iradio_square-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-grey {\n    background-position: 0 0;\n}\n    .icheckbox_square-grey.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-grey.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-grey.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-grey.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-grey {\n    background-position: -120px 0;\n}\n    .iradio_square-grey.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-grey.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-grey.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-grey.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-grey,\n    .iradio_square-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/orange.css",
    "content": "/* iCheck plugin Square skin, orange\n----------------------------------- */\n.icheckbox_square-orange,\n.iradio_square-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-orange {\n    background-position: 0 0;\n}\n    .icheckbox_square-orange.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-orange.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-orange.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-orange.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-orange {\n    background-position: -120px 0;\n}\n    .iradio_square-orange.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-orange.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-orange.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-orange.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-orange,\n    .iradio_square-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/pink.css",
    "content": "/* iCheck plugin Square skin, pink\n----------------------------------- */\n.icheckbox_square-pink,\n.iradio_square-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-pink {\n    background-position: 0 0;\n}\n    .icheckbox_square-pink.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-pink.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-pink.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-pink.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-pink {\n    background-position: -120px 0;\n}\n    .iradio_square-pink.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-pink.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-pink.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-pink.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-pink,\n    .iradio_square-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/purple.css",
    "content": "/* iCheck plugin Square skin, purple\n----------------------------------- */\n.icheckbox_square-purple,\n.iradio_square-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-purple {\n    background-position: 0 0;\n}\n    .icheckbox_square-purple.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-purple.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-purple.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-purple.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-purple {\n    background-position: -120px 0;\n}\n    .iradio_square-purple.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-purple.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-purple.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-purple.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-purple,\n    .iradio_square-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/red.css",
    "content": "/* iCheck plugin Square skin, red\n----------------------------------- */\n.icheckbox_square-red,\n.iradio_square-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-red {\n    background-position: 0 0;\n}\n    .icheckbox_square-red.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-red.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-red.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-red.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-red {\n    background-position: -120px 0;\n}\n    .iradio_square-red.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-red.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-red.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-red.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-red,\n    .iradio_square-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/square.css",
    "content": "/* iCheck plugin Square skin, black\n----------------------------------- */\n.icheckbox_square,\n.iradio_square {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(square.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square {\n    background-position: 0 0;\n}\n    .icheckbox_square.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square {\n    background-position: -120px 0;\n}\n    .iradio_square.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square,\n    .iradio_square {\n        background-image: url(square@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/icheck/skins/square/yellow.css",
    "content": "/* iCheck plugin Square skin, yellow\n----------------------------------- */\n.icheckbox_square-yellow,\n.iradio_square-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_square-yellow.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-yellow.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-yellow.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-yellow.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-yellow {\n    background-position: -120px 0;\n}\n    .iradio_square-yellow.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-yellow.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-yellow.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-yellow.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* HiDPI support */\n@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {\n    .icheckbox_square-yellow,\n    .iradio_square-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/YUI/cropbox-min.js",
    "content": "\"use strict\";YUI.add(\"crop-box\",function(t){t.cropbox=t.Base.create(\"crop-box\",t.Base,[],{initializer:function(t){this.options=t,this.state={},this.render()},render:function(){return this.imageBox=t.one(this.options.imageBox),this.thumbBox=this.imageBox.one(this.options.thumbBox),this.spinner=this.imageBox.one(this.options.spinner),this.initObject(),this},initObject:function(){var e=this;this.spinner.show(),this.image=new Image,this.image.onload=function(){e.spinner.hide(),e.setBackground(),e.imageBox.on(\"mousedown\",e.imgMouseDown,e),e.imageBox.on(\"mousemove\",e.imgMouseMove,e),e.mouseup=t.one(\"body\").on(\"mouseup\",e.imgMouseUp,e),t.UA.gecko>0?e.imageBox.on(\"DOMMouseScroll\",e.zoomImage,e):e.imageBox.on(\"mousewheel\",e.zoomImage,e)},this.image.src=this.options.imgSrc},setBackground:function(){this.ratio||(this.ratio=1);var t=parseInt(this.image.width)*this.ratio,e=parseInt(this.image.height)*this.ratio,i=(this.imageBox.get(\"clientWidth\")-t)/2,o=(this.imageBox.get(\"clientHeight\")-e)/2;this.imageBox.setAttribute(\"style\",\"background-image: url(\"+this.image.src+\"); background-size: \"+t+\"px \"+e+\"px; background-position: \"+i+\"px \"+o+\"px; background-repeat: no-repeat\")},imgMouseDown:function(t){t.stopImmediatePropagation(),this.state.dragable=!0,this.state.mouseX=t.clientX,this.state.mouseY=t.clientY},imgMouseMove:function(t){if(t.stopImmediatePropagation(),this.state.dragable){var e=t.clientX-this.state.mouseX,i=t.clientY-this.state.mouseY,o=this.imageBox.getStyle(\"backgroundPosition\").split(\" \"),s=e+parseInt(o[0]),a=i+parseInt(o[1]);this.imageBox.setStyle(\"backgroundPosition\",s+\"px \"+a+\"px\"),this.state.mouseX=t.clientX,this.state.mouseY=t.clientY}},imgMouseUp:function(t){t.stopImmediatePropagation(),this.state.dragable=!1},zoomImage:function(t){this.ratio*=t.wheelDelta>0?1.1:.9,this.setBackground()},getDataURL:function(){var t=this.thumbBox.get(\"clientWidth\"),e=this.thumbBox.get(\"clientHeight\"),i=document.createElement(\"canvas\"),o=this.imageBox.getStyle(\"backgroundPosition\").split(\" \"),s=this.imageBox.getStyle(\"backgroundSize\").split(\" \"),a=parseInt(o[0])-this.imageBox.get(\"clientWidth\")/2+t/2,n=parseInt(o[1])-this.imageBox.get(\"clientHeight\")/2+e/2,g=parseInt(s[0]),h=parseInt(s[1]),r=parseInt(this.image.height),m=parseInt(this.image.width);i.width=t,i.height=e;var u=i.getContext(\"2d\");u.drawImage(this.image,0,0,m,r,a,n,g,h);var c=i.toDataURL(\"image/png\");return c},getBlob:function(){for(var t=this.getDataURL(),e=t.replace(\"data:image/png;base64,\",\"\"),i=atob(e),o=[],s=0;s<i.length;s++)o.push(i.charCodeAt(s));return new Blob([new Uint8Array(o)],{type:\"image/png\"})},zoomIn:function(){this.ratio*=1.1,this.setBackground()},zoomOut:function(){this.ratio*=.9,this.setBackground()},destructor:function(){this.mouseup&&this.mouseup.detach()}})},\"1.0\",{requires:[\"node\",\"base\"]});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/YUI/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n'use strict';\nYUI.add('crop-box', function (Y) {\n    Y.cropbox = Y.Base.create('crop-box', Y.Base, [],\n        {\n            initializer: function (options)\n            {\n                this.options = options;\n                this.state = {};\n                this.render();\n            },\n            render: function ()\n            {\n                var self = this;\n                this.imageBox = Y.one(this.options.imageBox);\n                this.thumbBox = this.imageBox.one(this.options.thumbBox);\n                this.spinner = this.imageBox.one(this.options.spinner);\n\n                this.initObject();\n                return this;\n            },\n            initObject: function()\n            {\n                var self = this;\n                this.spinner.show();\n\n                this.image = new Image();\n                this.image.onload = function() {\n                    self.spinner.hide();\n                    self.setBackground();\n\n                    //event handler\n                    self.imageBox.on('mousedown', self.imgMouseDown, self);\n                    self.imageBox.on('mousemove', self.imgMouseMove, self);\n                    self.mouseup = Y.one('body').on('mouseup', self.imgMouseUp, self);\n\n                    Y.UA.gecko > 0?\n                        self.imageBox.on('DOMMouseScroll', self.zoomImage, self):\n                        self.imageBox.on('mousewheel', self.zoomImage, self);\n                };\n                this.image.src = this.options.imgSrc;\n            },\n            setBackground: function()\n            {\n                if(!this.ratio) this.ratio = 1;\n\n                var w =  parseInt(this.image.width)*this.ratio;\n                var h =  parseInt(this.image.height)*this.ratio;\n\n                var pw = (this.imageBox.get('clientWidth') - w) / 2;\n                var ph = (this.imageBox.get('clientHeight') - h) / 2;\n\n                this.imageBox.setAttribute('style',\n                    'background-image: url(' + this.image.src + '); ' +\n                    'background-size: ' + w +'px ' + h + 'px; ' +\n                    'background-position: ' + pw + 'px ' + ph + 'px; ' +\n                    'background-repeat: no-repeat');\n            },\n            imgMouseDown: function(e)\n            {\n                e.stopImmediatePropagation();\n                this.state.dragable = true;\n                this.state.mouseX = e.clientX;\n                this.state.mouseY = e.clientY;\n            },\n            imgMouseMove: function(e)\n            {\n                e.stopImmediatePropagation();\n                if (this.state.dragable)\n                {\n                    var x = e.clientX - this.state.mouseX;\n                    var y = e.clientY - this.state.mouseY;\n\n                    var bg = this.imageBox.getStyle('backgroundPosition').split(' ');\n\n                    var bgX = x + parseInt(bg[0]);\n                    var bgY = y + parseInt(bg[1]);\n\n                    this.imageBox.setStyle('backgroundPosition', bgX +'px ' + bgY + 'px');\n\n                    this.state.mouseX = e.clientX;\n                    this.state.mouseY = e.clientY;\n                }\n            },\n            imgMouseUp: function(e)\n            {\n                e.stopImmediatePropagation();\n                this.state.dragable = false;\n            },\n            zoomImage: function(e)\n            {\n                e.wheelDelta > 0? this.ratio*=1.1 : this.ratio*=0.9;\n                this.setBackground();\n            },\n            getDataURL: function ()\n            {\n                var self = this,\n                    width = this.thumbBox.get('clientWidth'),\n                    height = this.thumbBox.get('clientHeight'),\n                    canvas = document.createElement(\"canvas\"),\n                    dim = this.imageBox.getStyle('backgroundPosition').split(' '),\n                    size = this.imageBox.getStyle('backgroundSize').split(' '),\n                    dx = parseInt(dim[0]) - this.imageBox.get('clientWidth')/2 + width/2,\n                    dy = parseInt(dim[1]) - this.imageBox.get('clientHeight')/2 + height/2,\n                    dw = parseInt(size[0]),\n                    dh = parseInt(size[1]),\n                    sh = parseInt(this.image.height),\n                    sw = parseInt(this.image.width);\n\n                canvas.width = width;\n                canvas.height = height;\n                var context = canvas.getContext(\"2d\");\n                context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n                var imageData = canvas.toDataURL('image/png');\n\n                return imageData;\n            },\n            getBlob: function()\n            {\n                var imageData = this.getDataURL();\n                var b64 = imageData.replace('data:image/png;base64,','');\n                var binary = atob(b64);\n                var array = [];\n                for (var i = 0; i < binary.length; i++) {\n                    array.push(binary.charCodeAt(i));\n                }\n                return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n            },\n            zoomIn: function ()\n            {\n                this.ratio*=1.1;\n                this.setBackground();\n            },\n            zoomOut: function ()\n            {\n                this.ratio*=0.9;\n                this.setBackground();\n            },\n            destructor: function ()\n            {\n                if (this.mouseup) this.mouseup.detach()\n            }\n        });\n}, '1.0',\n{\n    requires: [ 'node', 'base' ]\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/YUI/example/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<script src=\"http://yui.yahooapis.com/3.17.2/build/yui/yui-min.js\"></script>\n<script src=\"../cropbox.js\"></script>\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n<script type=\"text/javascript\">\n    YUI().use('node', 'crop-box', function(Y){\n        var options =\n        {\n            imageBox: '.imageBox',\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = new Y.cropbox(options);\n        Y.one('#file').on('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = new Y.cropbox(options);\n            }\n            reader.readAsDataURL(this.get('files')._nodes[0]);\n            this.get('files')._nodes = [];\n        })\n        Y.one('#btnCrop').on('click', function(){\n            var img = cropper.getDataURL()\n            Y.one('.cropped').append('<img src=\"'+img+'\">');\n        })\n        Y.one('#btnZoomIn').on('click', function(){\n            cropper.zoomIn();\n        })\n        Y.one('#btnZoomOut').on('click', function(){\n            cropper.zoomOut();\n        })\n    })\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/YUI/example/style.css",
    "content": ".imageBox\n{\n    position: relative;\n    height: 400px;\n    width: 400px;\n    border:1px solid #aaa;\n    background: #fff;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    cursor:move;\n}\n\n.imageBox .thumbBox\n{\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 200px;\n    height: 200px;\n    margin-top: -100px;\n    margin-left: -100px;\n    box-sizing: border-box;\n    border: 1px solid rgb(102, 102, 102);\n    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n    background: none repeat scroll 0% 0% transparent;\n}\n\n.imageBox .spinner\n{\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    text-align: center;\n    line-height: 400px;\n    background: rgba(0,0,0,0.7);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/css/htmleaf-demo.css",
    "content": "@font-face {\n\tfont-family: 'icomoon';\n\tsrc:url('../fonts/icomoon.eot?rretjt');\n\tsrc:url('../fonts/icomoon.eot?#iefixrretjt') format('embedded-opentype'),\n\t\turl('../fonts/icomoon.woff?rretjt') format('woff'),\n\t\turl('../fonts/icomoon.ttf?rretjt') format('truetype'),\n\t\turl('../fonts/icomoon.svg?rretjt#icomoon') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n[class^=\"icon-\"], [class*=\" icon-\"] {\n\tfont-family: 'icomoon';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t/* Better Font Rendering =========== */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nbody, html { font-size: 100%; \tpadding: 0; margin: 0;}\n\n/* Reset */\n*,\n*:after,\n*:before {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n\n/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */\n.clearfix:before,\n.clearfix:after {\n\tcontent: \" \";\n\tdisplay: table;\n}\n\n.clearfix:after {\n\tclear: both;\n}\n\nbody{\n\tfont-weight: 500;\n\tfont-size: 1.05em;\n\tfont-family: \"Microsoft YaHei\",\"Segoe UI\", \"Lucida Grande\", Helvetica, Arial,sans-serif;\n}\na{ color: rgba(255, 255, 255, 0.6);outline: none;text-decoration: none;-webkit-transition: 0.2s;transition: 0.2s;}\na:hover,a:focus{color:#74777b;text-decoration: none;}\n.htmleaf-container{\n\tmargin: 0 auto;\n}\n\n.bgcolor-1 { background: #f0efee; }\n.bgcolor-2 { background: #f9f9f9; }\n.bgcolor-3 { background: #e8e8e8; }/*light grey*/\n.bgcolor-4 { background: #2f3238; color: #fff; }/*Dark grey*/\n.bgcolor-5 { background: #df6659; color: #521e18; }/*pink1*/\n.bgcolor-6 { background: #2fa8ec; }/*sky blue*/\n.bgcolor-7 { background: #d0d6d6; }/*White tea*/\n.bgcolor-8 { background: #3d4444; color: #fff; }/*Dark grey2*/\n.bgcolor-9 { background: #ef3f52; color: #fff;}/*pink2*/\n.bgcolor-10{ background: #64448f; color: #fff;}/*Violet*/\n.bgcolor-11{ background: #3755ad; color: #fff;}/*dark blue*/\n.bgcolor-12{ background: #3498DB; color: #fff;}/*light blue*/\n.bgcolor-20{ background: #494A5F;color: #D5D6E2;}\n/* Header */\n.htmleaf-header{\n\tpadding: 1em 190px 1em;\n\tletter-spacing: -1px;\n\ttext-align: center;\n\tbackground: #66677c;\n}\n.htmleaf-header h1 {\n\tcolor: #D5D6E2;\n\tfont-weight: 600;\n\tfont-size: 2em;\n\tline-height: 1;\n\tmargin-bottom: 0;\n}\n.htmleaf-header h1 span {\n\tdisplay: block;\n\tfont-size: 60%;\n\tfont-weight: 400;\n\tpadding: 0.8em 0 0.5em 0;\n\tcolor: #c3c8cd;\n}\n/*nav*/\n.htmleaf-demo a{color: #fff;text-decoration: none;}\n.htmleaf-demo{width: 100%;padding-bottom: 1.2em;}\n.htmleaf-demo a{display: inline-block;margin: 0.5em;padding: 0.6em 1em;border: 3px solid #fff;font-weight: 700;}\n.htmleaf-demo a:hover{opacity: 0.6;}\n.htmleaf-demo a.current{background:#1d7db1;color: #fff; }\n/* Top Navigation Style */\n.htmleaf-links {\n\tposition: relative;\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n\tfont-size: 1.5em;\n\ttext-align: center;\n}\n\n.htmleaf-links::after {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 50%;\n\tmargin-left: -1px;\n\twidth: 2px;\n\theight: 100%;\n\tbackground: #dbdbdb;\n\tcontent: '';\n\t-webkit-transform: rotate3d(0,0,1,22.5deg);\n\ttransform: rotate3d(0,0,1,22.5deg);\n}\n\n.htmleaf-icon {\n\tdisplay: inline-block;\n\tmargin: 0.5em;\n\tpadding: 0em 0;\n\twidth: 1.5em;\n\ttext-decoration: none;\n}\n\n.htmleaf-icon span {\n\tdisplay: none;\n}\n\n.htmleaf-icon:before {\n\tmargin: 0 5px;\n\ttext-transform: none;\n\tfont-weight: normal;\n\tfont-style: normal;\n\tfont-variant: normal;\n\tfont-family: 'icomoon';\n\tline-height: 1;\n\tspeak: none;\n\t-webkit-font-smoothing: antialiased;\n}\n/* footer */\n.htmleaf-footer{width: 100%;padding-top: 10px;}\n.htmleaf-small{font-size: 0.8em;}\n.center{text-align: center;}\n/****/\n.related {\n\twidth: 100%;\n\tcolor: #fff;\n\tbackground: #494A5F;\n\ttext-align: center;\n\tfont-size: 1.25em;\n\tpadding: 0.5em 0;\n\toverflow: hidden;\n}\n\n.related > a {\n\tvertical-align: top;\n\twidth: calc(100% - 20px);\n\tmax-width: 340px;\n\tdisplay: inline-block;\n\ttext-align: center;\n\tmargin: 20px 10px;\n\tpadding: 25px;\n\tfont-family: \"Microsoft YaHei\",\"宋体\",\"Segoe UI\", \"Lucida Grande\", Helvetica, Arial,sans-serif, FreeSans, Arimo;\n}\n.related a {\n\tdisplay: inline-block;\n\ttext-align: left;\n\tmargin: 20px auto;\n\tpadding: 10px 20px;\n\topacity: 0.8;\n\t-webkit-transition: opacity 0.3s;\n\ttransition: opacity 0.3s;\n\t-webkit-backface-visibility: hidden;\n}\n\n.related a:hover,\n.related a:active {\n\topacity: 1;\n}\n\n.related a img {\n\tmax-width: 100%;\n\topacity: 0.8;\n\tborder-radius: 4px;\n}\n.related a:hover img,\n.related a:active img {\n\topacity: 1;\n}\n.related h3{font-family: \"Microsoft YaHei\", sans-serif;font-size: 1.2em}\n.related a h3 {\n\tfont-size: 0.85em;\n\tfont-weight: 300;\n\tmargin-top: 0.15em;\n\tcolor: #fff;\n}\n/* icomoon */\n.icon-htmleaf-home-outline:before {\n\tcontent: \"\\e5000\";\n}\n\n.icon-htmleaf-arrow-forward-outline:before {\n\tcontent: \"\\e5001\";\n}\n\n@media screen and (max-width: 1024px) {\n\t.htmleaf-header {\n\t\tpadding: 2em 10% 2em;\n\t}\n\t.htmleaf-header h1 {\n        font-size:1.4em;\n    }\n    .htmleaf-links{font-size: 1.4em}\n}\n\n@media screen and (max-width: 960px) {\n\t.htmleaf-header {\n\t\tpadding: 2em 10% 2em;\n\t}\n\t.htmleaf-header h1 {\n        font-size:1.2em;\n    }\n    .htmleaf-links{font-size: 1.2em}\n    .related h3{font-size: 1em;}\n\t.related a h3 {\n\t\tfont-size: 0.8em;\n\t}\n}\n\n@media screen and (max-width: 766px) {\n\t.htmleaf-header h1 {\n        font-size:1.3em;\n    }\n    .htmleaf-links{font-size: 1.3em}\n}\n\n@media screen and (max-width: 640px) {\n\t.htmleaf-header {\n\t\tpadding: 2em 10% 2em;\n\t}\n\t.htmleaf-header h1 {\n        font-size:1em;\n    }\n    .htmleaf-links{font-size: 1em}\n    .related h3{font-size: 0.8em;}\n\t.related a h3 {\n\t\tfont-size: 0.6em;\n\t}\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/css/normalize.css",
    "content": "article, aside, details, figcaption, figure, footer, header, hgroup,\n\tmain, nav, section, summary {\n\tdisplay: block;\n}\n\naudio, canvas, video {\n\tdisplay: inline-block;\n}\n\naudio:not ([controls] ){\n\tdisplay: none;\n\theight: 0;\n}\n\n[hidden] {\n\tdisplay: none;\n}\n\nhtml {\n\tfont-family: sans-serif;\n\t-ms-text-size-adjust: 100%;\n\t-webkit-text-size-adjust: 100%;\n}\n\nbody {\n\tmargin: 0;\n}\n\na:focus {\n\toutline: thin dotted;\n}\n\na:active, a:hover {\n\toutline: 0;\n}\n\nh1 {\n\tfont-size: 2em;\n\tmargin: 0.67em 0;\n}\n\nabbr[title] {\n\tborder-bottom: 1px dotted;\n}\n\nb, strong {\n\tfont-weight: bold;\n}\n\ndfn {\n\tfont-style: italic;\n}\n\nhr {\n\t-moz-box-sizing: content-box;\n\tbox-sizing: content-box;\n\theight: 0;\n}\n\nmark {\n\tbackground: #ff0;\n\tcolor: #000;\n}\n\ncode, kbd, pre, samp {\n\tfont-family: monospace, serif;\n\tfont-size: 1em;\n}\n\npre {\n\twhite-space: pre-wrap;\n}\n\nq {\n\tquotes: \"\\201C\" \"\\201D\" \"\\2018\" \"\\2019\";\n}\n\nsmall {\n\tfont-size: 80%;\n}\n\nsub, sup {\n\tfont-size: 75%;\n\tline-height: 0;\n\tposition: relative;\n\tvertical-align: baseline;\n}\n\nsup {\n\ttop: -0.5em;\n}\n\nsub {\n\tbottom: -0.25em;\n}\n\nimg {\n\tborder: 0;\n}\n\nsvg:not (:root ){\n\toverflow: hidden;\n}\n\nfigure {\n\tmargin: 0;\n}\n\nfieldset {\n\tborder: 1px solid #c0c0c0;\n\tmargin: 0 2px;\n\tpadding: 0.35em 0.625em 0.75em;\n}\n\nlegend {\n\tborder: 0;\n\tpadding: 0;\n}\n\nbutton, input, select, textarea {\n\tfont-family: inherit;\n\tfont-size: 100%;\n\tmargin: 0;\n}\n\nbutton, input {\n\tline-height: normal;\n}\n\nbutton, select {\n\ttext-transform: none;\n}\n\nbutton, html input[type=\"button\"], input[type=\"reset\"], input[type=\"submit\"]\n\t{\n\t-webkit-appearance: button;\n\tcursor: pointer;\n}\n\nbutton[disabled], html input[disabled] {\n\tcursor: default;\n}\n\ninput[type=\"checkbox\"], input[type=\"radio\"] {\n\tbox-sizing: border-box;\n\tpadding: 0;\n}\n\ninput[type=\"search\"] {\n\t-webkit-appearance: textfield;\n\t-moz-box-sizing: content-box;\n\t-webkit-box-sizing: content-box;\n\tbox-sizing: content-box;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button, input[type=\"search\"]::-webkit-search-decoration\n\t{\n\t-webkit-appearance: none;\n}\n\nbutton::-moz-focus-inner, input::-moz-focus-inner {\n\tborder: 0;\n\tpadding: 0;\n}\n\ntextarea {\n\toverflow: auto;\n\tvertical-align: top;\n}\n\ntable {\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/css/style.css",
    "content": "@charset \"utf-8\";\n.container {\n\twidth: 400px;\n/* \tmargin: 40px auto 0 auto; */\n\tmargin-top: 10px;\n\tmargin-left: 10px;\n\tposition: relative;\n\tfont-family: 微软雅黑;\n\tfont-size: 12px;\n}\n.container p {\n\tline-height: 12px;\n\tline-height: 0px;\n\theight: 0px;\n\tmargin: 10px;\n\tcolor: #bbb\n}\n.action {\n\twidth: 400px;\n\theight: 30px;\n\tmargin: 25px 0;\n}\n.cropped {\n\tposition: absolute;\n\tright: -230px;\n\ttop: 0;\n\twidth: 200px;\n\tborder: 1px #ddd solid;\n\theight: 460px;\n\tpadding: 4px;\n\tbox-shadow: 0px 0px 12px #ddd;\n\ttext-align: center;\n}\n.imageBox {\n\tposition: relative;\n\theight: 400px;\n\twidth: 400px;\n\tborder: 1px solid #aaa;\n\tbackground: #fff;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n\tcursor: move;\n\tbox-shadow: 4px 4px 12px #B0B0B0; \n}\n.imageBox .thumbBox {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\twidth: 200px;\n\theight: 200px;\n\tmargin-top: -100px;\n\tmargin-left: -100px;\n\tbox-sizing: border-box;\n\tborder: 1px solid rgb(102, 102, 102);\n\tbox-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n\tbackground: none repeat scroll 0% 0% transparent;\n}\n.imageBox .spinner {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbottom: 0;\n\tright: 0;\n\ttext-align: center;\n\tline-height: 400px;\n\tbackground: rgba(0,0,0,0.7);\n}\n.Btnsty_peyton{ float: right;\n   width: 66px;\n  display: inline-block;\n  margin-bottom: 10px;\n  height: 57px;\n  line-height: 57px;\n  font-size: 20px;\n  color: #FFFFFF;\n  margin:0px 2px;\n  background-color: #f38e81;\n  border-radius: 3px;\n  text-decoration: none;\n  cursor: pointer;\n  box-shadow: 0px 0px 5px #B0B0B0;\n  border: 0px #fff solid;}\n/*选择文件上传*/\n.new-contentarea {\n\twidth: 165px;\n\toverflow:hidden;\n\tmargin: 0 auto;\n\tposition:relative;float:left;\n}\n.new-contentarea label {\n\twidth:100%;\n\theight:100%;\n\tdisplay:block;\n}\n.new-contentarea input[type=file] {\n\twidth:188px;\n\theight:60px;\n\tbackground:#333;\n\tmargin: 0 auto;\n\tposition:absolute;\n\tright:50%;\n\tmargin-right:-94px;\n\ttop:0;\n\tright/*\\**/:0px\\9;\n\tmargin-right/*\\**/:0px\\9;\n\twidth/*\\**/:10px\\9;\n\topacity:0;\n\tfilter:alpha(opacity=0);\n\tz-index:2;\n}\na.upload-img{\n\twidth:165px;\n\tdisplay: inline-block;\n\tmargin-bottom: 10px;\n\theight:57px;\n\tline-height: 57px;\n\tfont-size: 20px;\n\tcolor: #FFFFFF;\n\tbackground-color: #f38e81;\n\tborder-radius: 3px;\n\ttext-decoration:none;\n\tcursor:pointer;\n\tborder: 0px #fff solid;\n\tbox-shadow: 0px 0px 5px #B0B0B0;\n}\na.upload-img:hover{\n\tbackground-color: #ec7e70;\n}\n\n.tc{text-align:center;}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"> \n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<title>jQuery轻量级拖动剪裁头像图片插件|DEMO_jQuery之家-自由分享jQuery、html5、css3的插件库</title>\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/normalize.css\" />\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"css/htmleaf-demo.css\">\n\t<link rel=\"stylesheet\" href=\"css/style.css\" type=\"text/css\" />\n</head>\n<body>\n\t<div class=\"htmleaf-container\">\n\t\t<header class=\"htmleaf-header\">\n\t\t\t<h1>jQuery轻量级拖动剪裁头像图片插件 <span>A jQuery plugin designed to provide gallery view for images</span></h1>\n\t\t\t<div class=\"htmleaf-links\">\n\t\t\t\t<a class=\"htmleaf-icon icon-htmleaf-home-outline\" href=\"http://www.htmleaf.com/\" title=\"jQuery之家\" target=\"_blank\"><span> jQuery之家</span></a>\n\t\t\t\t<a class=\"htmleaf-icon icon-htmleaf-arrow-forward-outline\" href=\"http://www.htmleaf.com/jQuery/Image-Effects/201612034236.html\" title=\"返回下载页\" target=\"_blank\"><span> 返回下载页</span></a>\n\t\t\t</div>\n\t\t</header>\n\t\t<div class=\"container\">\n\t\t  <div class=\"imageBox\">\n\t\t    <div class=\"thumbBox\"></div>\n\t\t    <div class=\"spinner\" style=\"display: none\">Loading...</div>\n\t\t  </div>\n\t\t  <div class=\"action\"> \n\t\t    <div class=\"new-contentarea tc\"> \n\t\t    \t<a href=\"javascript:void(0)\" class=\"upload-img\">\n\t\t      \t\t<label for=\"upload-file\">上传图像</label>\n\t\t      </a>\n\t\t      <input type=\"file\" class=\"\" name=\"upload-file\" id=\"upload-file\" />\n\t\t    </div>\n\t\t    <input type=\"button\" id=\"btnCrop\"  class=\"Btnsty_peyton\" value=\"裁切\">\n\t\t    <input type=\"button\" id=\"btnZoomIn\" class=\"Btnsty_peyton\" value=\"+\"  >\n\t\t    <input type=\"button\" id=\"btnZoomOut\" class=\"Btnsty_peyton\" value=\"-\" >\n\t\t  </div>\n\t\t  <div class=\"cropped\"></div>\n\t\t</div>\n\t\t<div class=\"related\">\n\t\t    <h3>如果你喜欢这个插件，那么你可能也喜欢:</h3>\n\t\t    <a href=\"http://www.htmleaf.com/jQuery/Image-Effects/201608063830.html\">\n\t\t\t  <img src=\"related/1.jpg\" width=\"300\" alt=\"支持移动手机的响应式图片剪裁jQuery插件\"/>\n\t\t\t  <h3>支持移动手机的响应式图片剪裁jQuery插件</h3>\n\t\t\t</a>\n\t\t\t<a href=\"http://www.htmleaf.com/jQuery/Image-Effects/201510292721.html\">\n\t\t\t  <img src=\"related/2.jpg\" width=\"300\" alt=\"支持移动设备触摸手势的jQuery图片裁剪插件\"/>\n\t\t\t  <h3>支持移动设备触摸手势的jQuery图片裁剪插件</h3>\n\t\t\t</a>\n\n\t\t</div>\n\t</div>\n\t\n\t<script src=\"http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js\" type=\"text/javascript\"></script>\n\t<script>window.jQuery || document.write('<script src=\"js/jquery-1.11.0.min.js\"><\\/script>')</script>\n\t<script type=\"text/javascript\" src=\"js/cropbox.js\"></script>\n\t<script type=\"text/javascript\">\n\t$(window).load(function() {\n\t\tvar options =\n\t\t{\n\t\t\tthumbBox: '.thumbBox',\n\t\t\tspinner: '.spinner',\n\t\t\timgSrc: 'img/avatar.jpg'\n\t\t}\n\t\tvar cropper = $('.imageBox').cropbox(options);\n\t\t$('#upload-file').on('change', function(){\n\t\t\tvar reader = new FileReader();\n\t\t\treader.onload = function(e) {\n\t\t\t\toptions.imgSrc = e.target.result;\n\t\t\t\tcropper = $('.imageBox').cropbox(options);\n\t\t\t}\n\t\t\treader.readAsDataURL(this.files[0]);\n\t\t\tthis.files = [];\n\t\t})\n\t\t$('#btnCrop').on('click', function(){\n\t\t\tvar img = cropper.getDataURL();\n\t\t\t$('.cropped').html('');\n\t\t\t$('.cropped').append('<img src=\"'+img+'\" align=\"absmiddle\" style=\"width:64px;margin-top:4px;border-radius:64px;box-shadow:0px 0px 12px #7E7E7E;\" ><p>64px*64px</p>');\n\t\t\t$('.cropped').append('<img src=\"'+img+'\" align=\"absmiddle\" style=\"width:128px;margin-top:4px;border-radius:128px;box-shadow:0px 0px 12px #7E7E7E;\"><p>128px*128px</p>');\n\t\t\t$('.cropped').append('<img src=\"'+img+'\" align=\"absmiddle\" style=\"width:180px;margin-top:4px;border-radius:180px;box-shadow:0px 0px 12px #7E7E7E;\"><p>180px*180px</p>');\n\t\t})\n\t\t$('#btnZoomIn').on('click', function(){\n\t\t\tcropper.zoomIn();\n\t\t})\n\t\t$('#btnZoomOut').on('click', function(){\n\t\t\tcropper.zoomOut();\n\t\t})\n\t});\n\t</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/javascript/cropbox-min.js",
    "content": "\"use strict\";var cropbox=function(e){var t=document.querySelector(e.imageBox),n={state:{},ratio:1,options:e,imageBox:t,thumbBox:t.querySelector(e.thumbBox),spinner:t.querySelector(e.spinner),image:new Image,getDataURL:function(){var e=this.thumbBox.clientWidth,n=this.thumbBox.clientHeight,a=document.createElement(\"canvas\"),i=t.style.backgroundPosition.split(\" \"),o=t.style.backgroundSize.split(\" \"),r=parseInt(i[0])-t.clientWidth/2+e/2,s=parseInt(i[1])-t.clientHeight/2+n/2,c=parseInt(o[0]),u=parseInt(o[1]),d=parseInt(this.image.height),l=parseInt(this.image.width);a.width=e,a.height=n;var g=a.getContext(\"2d\");g.drawImage(this.image,0,0,l,d,r,s,c,u);var m=a.toDataURL(\"image/png\");return m},getBlob:function(){for(var e=this.getDataURL(),t=e.replace(\"data:image/png;base64,\",\"\"),n=atob(t),a=[],i=0;i<n.length;i++)a.push(n.charCodeAt(i));return new Blob([new Uint8Array(a)],{type:\"image/png\"})},zoomIn:function(){this.ratio*=1.1,r()},zoomOut:function(){this.ratio*=.9,r()}},a=function(e,t,n){e.attachEvent?e.attachEvent(\"on\"+t,n):e.addEventListener&&e.addEventListener(t,n)},i=function(e,t,n){e.detachEvent?e.detachEvent(\"on\"+t,n):e.removeEventListener&&e.removeEventListener(t,render)},o=function(e){window.event?e.cancelBubble=!0:e.stopImmediatePropagation()},r=function(){var e=parseInt(n.image.width)*n.ratio,a=parseInt(n.image.height)*n.ratio,i=(t.clientWidth-e)/2,o=(t.clientHeight-a)/2;t.setAttribute(\"style\",\"background-image: url(\"+n.image.src+\"); background-size: \"+e+\"px \"+a+\"px; background-position: \"+i+\"px \"+o+\"px; background-repeat: no-repeat\")},s=function(e){o(e),n.state.dragable=!0,n.state.mouseX=e.clientX,n.state.mouseY=e.clientY},c=function(e){if(o(e),n.state.dragable){var a=e.clientX-n.state.mouseX,i=e.clientY-n.state.mouseY,r=t.style.backgroundPosition.split(\" \"),s=a+parseInt(r[0]),c=i+parseInt(r[1]);t.style.backgroundPosition=s+\"px \"+c+\"px\",n.state.mouseX=e.clientX,n.state.mouseY=e.clientY}},u=function(e){o(e),n.state.dragable=!1},d=function(e){var t=window.event||e,a=t.detail?-120*t.detail:t.wheelDelta;n.ratio*=a>-120?1.1:.9,r()};return n.spinner.style.display=\"block\",n.image.onload=function(){n.spinner.style.display=\"none\",r(),a(t,\"mousedown\",s),a(t,\"mousemove\",c),a(document.body,\"mouseup\",u);var e=/Firefox/i.test(navigator.userAgent)?\"DOMMouseScroll\":\"mousewheel\";a(t,e,d)},n.image.src=e.imgSrc,a(t,\"DOMNodeRemoved\",function(){i(document.body,\"DOMNodeRemoved\",u)}),n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/javascript/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n'use strict';\nvar cropbox = function(options){\n    var el = document.querySelector(options.imageBox),\n    obj =\n    {\n        state : {},\n        ratio : 1,\n        options : options,\n        imageBox : el,\n        thumbBox : el.querySelector(options.thumbBox),\n        spinner : el.querySelector(options.spinner),\n        image : new Image(),\n        getDataURL: function ()\n        {\n            var width = this.thumbBox.clientWidth,\n                height = this.thumbBox.clientHeight,\n                canvas = document.createElement(\"canvas\"),\n                dim = el.style.backgroundPosition.split(' '),\n                size = el.style.backgroundSize.split(' '),\n                dx = parseInt(dim[0]) - el.clientWidth/2 + width/2,\n                dy = parseInt(dim[1]) - el.clientHeight/2 + height/2,\n                dw = parseInt(size[0]),\n                dh = parseInt(size[1]),\n                sh = parseInt(this.image.height),\n                sw = parseInt(this.image.width);\n\n            canvas.width = width;\n            canvas.height = height;\n            var context = canvas.getContext(\"2d\");\n            context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n            var imageData = canvas.toDataURL('image/png');\n            return imageData;\n        },\n        getBlob: function()\n        {\n            var imageData = this.getDataURL();\n            var b64 = imageData.replace('data:image/png;base64,','');\n            var binary = atob(b64);\n            var array = [];\n            for (var i = 0; i < binary.length; i++) {\n                array.push(binary.charCodeAt(i));\n            }\n            return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n        },\n        zoomIn: function ()\n        {\n            this.ratio*=1.1;\n            setBackground();\n        },\n        zoomOut: function ()\n        {\n            this.ratio*=0.9;\n            setBackground();\n        }\n    },\n    attachEvent = function(node, event, cb)\n    {\n        if (node.attachEvent)\n            node.attachEvent('on'+event, cb);\n        else if (node.addEventListener)\n            node.addEventListener(event, cb);\n    },\n    detachEvent = function(node, event, cb)\n    {\n        if(node.detachEvent) {\n            node.detachEvent('on'+event, cb);\n        }\n        else if(node.removeEventListener) {\n            node.removeEventListener(event, render);\n        }\n    },\n    stopEvent = function (e) {\n        if(window.event) e.cancelBubble = true;\n        else e.stopImmediatePropagation();\n    },\n    setBackground = function()\n    {\n        var w =  parseInt(obj.image.width)*obj.ratio;\n        var h =  parseInt(obj.image.height)*obj.ratio;\n\n        var pw = (el.clientWidth - w) / 2;\n        var ph = (el.clientHeight - h) / 2;\n\n        el.setAttribute('style',\n                'background-image: url(' + obj.image.src + '); ' +\n                'background-size: ' + w +'px ' + h + 'px; ' +\n                'background-position: ' + pw + 'px ' + ph + 'px; ' +\n                'background-repeat: no-repeat');\n    },\n    imgMouseDown = function(e)\n    {\n        stopEvent(e);\n\n        obj.state.dragable = true;\n        obj.state.mouseX = e.clientX;\n        obj.state.mouseY = e.clientY;\n    },\n    imgMouseMove = function(e)\n    {\n        stopEvent(e);\n\n        if (obj.state.dragable)\n        {\n            var x = e.clientX - obj.state.mouseX;\n            var y = e.clientY - obj.state.mouseY;\n\n            var bg = el.style.backgroundPosition.split(' ');\n\n            var bgX = x + parseInt(bg[0]);\n            var bgY = y + parseInt(bg[1]);\n\n            el.style.backgroundPosition = bgX +'px ' + bgY + 'px';\n\n            obj.state.mouseX = e.clientX;\n            obj.state.mouseY = e.clientY;\n        }\n    },\n    imgMouseUp = function(e)\n    {\n        stopEvent(e);\n        obj.state.dragable = false;\n    },\n    zoomImage = function(e)\n    {\n        var evt=window.event || e;\n        var delta=evt.detail? evt.detail*(-120) : evt.wheelDelta;\n        delta > -120 ? obj.ratio*=1.1 : obj.ratio*=0.9;\n        setBackground();\n    }\n\n    obj.spinner.style.display = 'block';\n    obj.image.onload = function() {\n        obj.spinner.style.display = 'none';\n        setBackground();\n\n        attachEvent(el, 'mousedown', imgMouseDown);\n        attachEvent(el, 'mousemove', imgMouseMove);\n        attachEvent(document.body, 'mouseup', imgMouseUp);\n        var mousewheel = (/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel';\n        attachEvent(el, mousewheel, zoomImage);\n    };\n    obj.image.src = options.imgSrc;\n    attachEvent(el, 'DOMNodeRemoved', function(){detachEvent(document.body, 'DOMNodeRemoved', imgMouseUp)});\n\n    return obj;\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/javascript/example/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<script src=\"../cropbox.js\"></script>\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n<script type=\"text/javascript\">\n    window.onload = function() {\n        var options =\n        {\n            imageBox: '.imageBox',\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = new cropbox(options);\n        document.querySelector('#file').addEventListener('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = new cropbox(options);\n            }\n            reader.readAsDataURL(this.files[0]);\n            this.files = [];\n        })\n        document.querySelector('#btnCrop').addEventListener('click', function(){\n            var img = cropper.getDataURL();\n            document.querySelector('.cropped').innerHTML += '<img src=\"'+img+'\">';\n        })\n        document.querySelector('#btnZoomIn').addEventListener('click', function(){\n            cropper.zoomIn();\n        })\n        document.querySelector('#btnZoomOut').addEventListener('click', function(){\n            cropper.zoomOut();\n        })\n    };\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/javascript/example/style.css",
    "content": ".imageBox\n{\n    position: relative;\n    height: 400px;\n    width: 400px;\n    border:1px solid #aaa;\n    background: #fff;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    cursor:move;\n}\n\n.imageBox .thumbBox\n{\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 200px;\n    height: 200px;\n    margin-top: -100px;\n    margin-left: -100px;\n    box-sizing: border-box;\n    border: 1px solid rgb(102, 102, 102);\n    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n    background: none repeat scroll 0% 0% transparent;\n}\n\n.imageBox .spinner\n{\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    text-align: center;\n    line-height: 400px;\n    background: rgba(0,0,0,0.7);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/jquery/cropbox-min.js",
    "content": "\"use strict\";!function(t){\"function\"==typeof define&&define.amd?define([\"jquery\"],t):t(jQuery)}(function(t){var e=function(e,n){var n=n||t(e.imageBox),i={state:{},ratio:1,options:e,imageBox:n,thumbBox:n.find(e.thumbBox),spinner:n.find(e.spinner),image:new Image,getDataURL:function(){var t=this.thumbBox.width(),e=this.thumbBox.height(),i=document.createElement(\"canvas\"),a=n.css(\"background-position\").split(\" \"),o=n.css(\"background-size\").split(\" \"),s=parseInt(a[0])-n.width()/2+t/2,r=parseInt(a[1])-n.height()/2+e/2,u=parseInt(o[0]),g=parseInt(o[1]),c=parseInt(this.image.height),m=parseInt(this.image.width);i.width=t,i.height=e;var p=i.getContext(\"2d\");p.drawImage(this.image,0,0,m,c,s,r,u,g);var d=i.toDataURL(\"image/png\");return d},getBlob:function(){for(var t=this.getDataURL(),e=t.replace(\"data:image/png;base64,\",\"\"),n=atob(e),i=[],a=0;a<n.length;a++)i.push(n.charCodeAt(a));return new Blob([new Uint8Array(i)],{type:\"image/png\"})},zoomIn:function(){this.ratio*=1.1,a()},zoomOut:function(){this.ratio*=.9,a()}},a=function(){var t=parseInt(i.image.width)*i.ratio,e=parseInt(i.image.height)*i.ratio,a=(n.width()-t)/2,o=(n.height()-e)/2;n.css({\"background-image\":\"url(\"+i.image.src+\")\",\"background-size\":t+\"px \"+e+\"px\",\"background-position\":a+\"px \"+o+\"px\",\"background-repeat\":\"no-repeat\"})},o=function(t){t.stopImmediatePropagation(),i.state.dragable=!0,i.state.mouseX=t.clientX,i.state.mouseY=t.clientY},s=function(t){if(t.stopImmediatePropagation(),i.state.dragable){var e=t.clientX-i.state.mouseX,a=t.clientY-i.state.mouseY,o=n.css(\"background-position\").split(\" \"),s=e+parseInt(o[0]),r=a+parseInt(o[1]);n.css(\"background-position\",s+\"px \"+r+\"px\"),i.state.mouseX=t.clientX,i.state.mouseY=t.clientY}},r=function(t){t.stopImmediatePropagation(),i.state.dragable=!1},u=function(t){i.ratio*=t.originalEvent.wheelDelta>0||t.originalEvent.detail<0?1.1:.9,a()};return i.spinner.show(),i.image.onload=function(){i.spinner.hide(),a(),n.bind(\"mousedown\",o),n.bind(\"mousemove\",s),t(window).bind(\"mouseup\",r),n.bind(\"mousewheel DOMMouseScroll\",u)},i.image.src=e.imgSrc,n.on(\"remove\",function(){t(window).unbind(\"mouseup\",r)}),i};jQuery.fn.cropbox=function(t){return new e(t,this)}});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/jquery/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n\n\"use strict\";\n(function (factory) {\n    if (typeof define === 'function' && define.amd) {\n        define(['jquery'], factory);\n    } else {\n        factory(jQuery);\n    }\n}(function ($) {\n    var cropbox = function(options, el){\n        var el = el || $(options.imageBox),\n            obj =\n            {\n                state : {},\n                ratio : 1,\n                options : options,\n                imageBox : el,\n                thumbBox : el.find(options.thumbBox),\n                spinner : el.find(options.spinner),\n                image : new Image(),\n                getDataURL: function ()\n                {\n                    var width = this.thumbBox.width(),\n                        height = this.thumbBox.height(),\n                        canvas = document.createElement(\"canvas\"),\n                        dim = el.css('background-position').split(' '),\n                        size = el.css('background-size').split(' '),\n                        dx = parseInt(dim[0]) - el.width()/2 + width/2,\n                        dy = parseInt(dim[1]) - el.height()/2 + height/2,\n                        dw = parseInt(size[0]),\n                        dh = parseInt(size[1]),\n                        sh = parseInt(this.image.height),\n                        sw = parseInt(this.image.width);\n\n                    canvas.width = width;\n                    canvas.height = height;\n                    var context = canvas.getContext(\"2d\");\n                    context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n                    var imageData = canvas.toDataURL('image/png');\n                    return imageData;\n                },\n                getBlob: function()\n                {\n                    var imageData = this.getDataURL();\n                    var b64 = imageData.replace('data:image/png;base64,','');\n                    var binary = atob(b64);\n                    var array = [];\n                    for (var i = 0; i < binary.length; i++) {\n                        array.push(binary.charCodeAt(i));\n                    }\n                    return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n                },\n                zoomIn: function ()\n                {\n                    this.ratio*=1.1;\n                    setBackground();\n                },\n                zoomOut: function ()\n                {\n                    this.ratio*=0.9;\n                    setBackground();\n                }\n            },\n            setBackground = function()\n            {\n                var w =  parseInt(obj.image.width)*obj.ratio;\n                var h =  parseInt(obj.image.height)*obj.ratio;\n\n                var pw = (el.width() - w) / 2;\n                var ph = (el.height() - h) / 2;\n\n                el.css({\n                    'background-image': 'url(' + obj.image.src + ')',\n                    'background-size': w +'px ' + h + 'px',\n                    'background-position': pw + 'px ' + ph + 'px',\n                    'background-repeat': 'no-repeat'});\n            },\n            imgMouseDown = function(e)\n            {\n                e.stopImmediatePropagation();\n\n                obj.state.dragable = true;\n                obj.state.mouseX = e.clientX;\n                obj.state.mouseY = e.clientY;\n            },\n            imgMouseMove = function(e)\n            {\n                e.stopImmediatePropagation();\n\n                if (obj.state.dragable)\n                {\n                    var x = e.clientX - obj.state.mouseX;\n                    var y = e.clientY - obj.state.mouseY;\n\n                    var bg = el.css('background-position').split(' ');\n\n                    var bgX = x + parseInt(bg[0]);\n                    var bgY = y + parseInt(bg[1]);\n\n                    el.css('background-position', bgX +'px ' + bgY + 'px');\n\n                    obj.state.mouseX = e.clientX;\n                    obj.state.mouseY = e.clientY;\n                }\n            },\n            imgMouseUp = function(e)\n            {\n                e.stopImmediatePropagation();\n                obj.state.dragable = false;\n            },\n            zoomImage = function(e)\n            {\n                e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0 ? obj.ratio*=1.1 : obj.ratio*=0.9;\n                setBackground();\n            }\n\n        obj.spinner.show();\n        obj.image.onload = function() {\n            obj.spinner.hide();\n            setBackground();\n\n            el.bind('mousedown', imgMouseDown);\n            el.bind('mousemove', imgMouseMove);\n            $(window).bind('mouseup', imgMouseUp);\n            el.bind('mousewheel DOMMouseScroll', zoomImage);\n        };\n        obj.image.src = options.imgSrc;\n        el.on('remove', function(){$(window).unbind('mouseup', imgMouseUp)});\n\n        return obj;\n    };\n\n    jQuery.fn.cropbox = function(options){\n        return new cropbox(options, this);\n    };\n}));\n\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/jquery/example/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<script src=\"http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js\" type=\"text/javascript\"></script>\n<script src=\"../cropbox.js\"></script>\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n<script type=\"text/javascript\">\n    $(window).load(function() {\n        var options =\n        {\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = $('.imageBox').cropbox(options);\n        $('#file').on('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = $('.imageBox').cropbox(options);\n            }\n            reader.readAsDataURL(this.files[0]);\n            this.files = [];\n        })\n        $('#btnCrop').on('click', function(){\n            var img = cropper.getDataURL();\n            $('.cropped').append('<img src=\"'+img+'\">');\n        })\n        $('#btnZoomIn').on('click', function(){\n            cropper.zoomIn();\n        })\n        $('#btnZoomOut').on('click', function(){\n            cropper.zoomOut();\n        })\n    });\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/jquery/example/module.html",
    "content": "<!DOCTYPE html>\n<html>\n<head lang=\"en\">\n    <meta charset=\"UTF-8\">\n    <title>Crop Box</title>\n    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\" />\n    <style>\n        .container\n        {\n            position: absolute;\n            top: 10%; left: 10%; right: 0; bottom: 0;\n        }\n        .action\n        {\n            width: 400px;\n            height: 30px;\n            margin: 10px 0;\n        }\n        .cropped>img\n        {\n            margin-right: 10px;\n        }\n    </style>\n</head>\n<body>\n\n<div class=\"container\">\n    <div class=\"imageBox\">\n        <div class=\"thumbBox\"></div>\n        <div class=\"spinner\" style=\"display: none\">Loading...</div>\n    </div>\n    <div class=\"action\">\n        <input type=\"file\" id=\"file\" style=\"float:left; width: 250px\">\n        <input type=\"button\" id=\"btnCrop\" value=\"Crop\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomIn\" value=\"+\" style=\"float: right\">\n        <input type=\"button\" id=\"btnZoomOut\" value=\"-\" style=\"float: right\">\n    </div>\n    <div class=\"cropped\">\n\n    </div>\n</div>\n\n<script src=\"../require.js\"></script>\n<script>\n    require.config({\n        baseUrl: \"../\",\n        paths: {\n            jquery: 'jquery-1.11.1.min',\n            cropbox: 'cropbox'\n        }\n    });\n    require( [\"jquery\", \"cropbox\"], function($) {\n        var options =\n        {\n            thumbBox: '.thumbBox',\n            spinner: '.spinner',\n            imgSrc: 'avatar.png'\n        }\n        var cropper = $('.imageBox').cropbox(options);\n        $('#file').on('change', function(){\n            var reader = new FileReader();\n            reader.onload = function(e) {\n                options.imgSrc = e.target.result;\n                cropper = $('.imageBox').cropbox(options);\n            }\n            reader.readAsDataURL(this.files[0]);\n            this.files = [];\n        })\n        $('#btnCrop').on('click', function(){\n            var img = cropper.getDataURL();\n            $('.cropped').append('<img src=\"'+img+'\">');\n        })\n        $('#btnZoomIn').on('click', function(){\n            cropper.zoomIn();\n        })\n        $('#btnZoomOut').on('click', function(){\n            cropper.zoomOut();\n        })\n        }\n    );\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/jquery/example/style.css",
    "content": ".imageBox\n{\n    position: relative;\n    height: 400px;\n    width: 400px;\n    border:1px solid #aaa;\n    background: #fff;\n    overflow: hidden;\n    background-repeat: no-repeat;\n    cursor:move;\n}\n\n.imageBox .thumbBox\n{\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 200px;\n    height: 200px;\n    margin-top: -100px;\n    margin-left: -100px;\n    box-sizing: border-box;\n    border: 1px solid rgb(102, 102, 102);\n    box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5);\n    background: none repeat scroll 0% 0% transparent;\n}\n\n.imageBox .spinner\n{\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    text-align: center;\n    line-height: 400px;\n    background: rgba(0,0,0,0.7);\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/jquery/require.js",
    "content": "/*\n RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.\n Available via the MIT or new BSD license.\n see: http://github.com/jrburke/requirejs for details\n */\nvar requirejs,require,define;\n(function(ba){function G(b){return\"[object Function]\"===K.call(b)}function H(b){return\"[object Array]\"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function m(b,c){return t(b,c)&&b[c]}function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&\"object\"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof\n    RegExp)?(b[g]||(b[g]={}),U(b[g],c,d,e)):b[g]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split(\".\"),function(b){c=c[b]});return c}function C(b,c,d,e){c=Error(c+\"\\nhttp://requirejs.org/docs/errors.html#\"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split(\"/\"),h=j.map,n=h&&h[\"*\"];if(a){a=a.split(\"/\");l=a.length-1;j.nodeIdCompat&&\nQ.test(a[l])&&(a[l]=a[l].replace(Q,\"\"));\".\"===a[0].charAt(0)&&k&&(l=k.slice(0,k.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],\".\"===d)l.splice(c,1),c-=1;else if(\"..\"===d&&!(0===c||1==c&&\"..\"===l[2]||\"..\"===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join(\"/\")}if(b&&h&&(k||n)){l=a.split(\"/\");c=l.length;a:for(;0<c;c-=1){e=l.slice(0,c).join(\"/\");if(k)for(d=k.length;0<d;d-=1)if(b=m(h,k.slice(0,d).join(\"/\")))if(b=m(b,e)){f=b;g=c;break a}!i&&(n&&m(n,e))&&(i=m(n,e),p=c)}!f&&i&&(f=i,g=p);f&&(l.splice(0,\n    g,f),a=l.join(\"/\"))}return(f=m(j.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName(\"script\"),function(k){if(k.getAttribute(\"data-requiremodule\")===a&&k.getAttribute(\"data-requirecontext\")===i.contextName)return k.parentNode.removeChild(k),!0})}function e(a){var k=m(j.paths,a);if(k&&H(k)&&1<k.length)return k.shift(),i.require.undef(a),i.makeRequire(null,{skipMap:!0})([a]),!0}function n(a){var k,c=a?a.indexOf(\"!\"):-1;-1<c&&(k=a.substring(0,c),a=a.substring(c+1,a.length));return[k,a]}function p(a,\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 k,b,f){var l,d,e=null,g=k?k.name:null,j=a,p=!0,h=\"\";a||(p=!1,a=\"_@r\"+(K+=1));a=n(a);e=a[0];a=a[1];e&&(e=c(e,g,f),d=m(r,e));a&&(e?h=d&&d.normalize?d.normalize(a,function(a){return c(a,g,f)}):-1===a.indexOf(\"!\")?c(a,g,f):a:(h=c(a,g,f),a=n(h),e=a[0],h=a[1],b=!0,l=i.nameToUrl(h)));b=e&&!d&&!b?\"_unnormalized\"+(O+=1):\"\";return{prefix:e,name:h,parentMap:k,unnormalized:!!b,url:l,originalName:j,isDefine:p,id:(e?e+\"!\"+h:h)+b}}function s(a){var k=a.id,b=m(h,k);b||(b=h[k]=new i.Module(a));return b}function q(a,\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       k,b){var f=a.id,c=m(h,f);if(t(r,f)&&(!c||c.defineEmitComplete))\"defined\"===k&&b(r[f]);else if(c=s(a),c.error&&\"error\"===k)b(c.error);else c.on(k,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=m(h,b))b.error=a,b.events.error&&(f=!0,b.emit(\"error\",a))}),!f)g.onError(a)}function x(){R.length&&(ha.apply(A,[A.length,0].concat(R)),R=[])}function y(a){delete h[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit(\"error\",a.error):(b[f]=!0,v(a.depMaps,function(f,\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d){var e=f.id,g=m(h,e);g&&(!a.depMatched[d]&&!c[e])&&(m(b,e)?(a.defineDep(d,r[e]),a.check()):F(g,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*j.waitSeconds)&&i.startTime+a<(new Date).getTime(),f=[],l=[],g=!1,h=!0;if(!W){W=!0;B(V,function(a){var i=a.map,j=i.id;if(a.enabled&&(i.isDefine||l.push(a),!a.error))if(!a.inited&&c)e(j)?g=b=!0:(f.push(j),d(j));else if(!a.inited&&(a.fetched&&i.isDefine)&&(g=!0,!i.prefix))return h=!1});if(c&&f.length)return a=C(\"timeout\",\"Load timeout for modules: \"+f,null,\n    f),a.contextName=i.contextName,w(a);h&&v(l,function(a){F(a,{},{})});if((!c||b)&&g)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(r,a[0])||s(p(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!Y?a.detachEvent(\"onreadystatechange\",b):a.removeEventListener(\"load\",b,!1);b=i.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener(\"error\",b,!1);return{node:a,id:a&&a.getAttribute(\"data-requiremodule\")}}function J(){var a;\n    for(x();A.length;){a=A.shift();if(null===a[0])return w(C(\"mismatch\",\"Mismatched anonymous define() module: \"+a[a.length-1]));E(a)}}var W,Z,i,L,X,j={waitSeconds:7,baseUrl:\"./\",paths:{},bundles:{},pkgs:{},shim:{},config:{}},h={},V={},$={},A=[],r={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?\n    a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m(j.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=m($,a.id)||{};this.map=a;this.shim=m(j.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on(\"error\",c);else this.events.error&&(c=u(this,function(a){this.emit(\"error\",a)}));this.depMaps=a&&a.slice(0);this.errback=\n    c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=\n    this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit(\"error\",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&\n    (f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?\"define\":\"require\",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit(\"defined\",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=\n    this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,\"defined\",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||\"\"),f=p(a.prefix+\"!\"+e,this.map.parentMap),q(f,\"defined\",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f);\n    if(this.events.error)d.on(\"error\",u(this,function(a){this.emit(\"error\",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+\"_unnormalized\")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C(\"fromtexteval\",\n        \"fromText eval for \"+b+\" failed: \"+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if(\"string\"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,\"defined\",u(this,function(a){this.defineDep(b,\n    a);this.check()}));this.errback&&q(a,\"error\",u(this,this.errback))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});\"error\"===a&&delete this.events[a]}};i={config:j,contextName:b,registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,\n    nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&\"/\"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+=\"/\");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,\n        a=\"string\"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+\"/\"+(a.main||\"main\").replace(ia,\"\").replace(Q,\"\")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n,q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=\n        !0);if(\"string\"===typeof c){if(G(d))return w(C(\"requireargs\",\"Invalid require call\"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C(\"notloaded\",'Module name \"'+n+'\" has not been loaded yet for context: '+b+(a?\"\":\". Use require([])\"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf(\".\"),k=b.split(\"/\")[0];if(-1!==\n        e&&(!(\".\"===k||\"..\"===k)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(r,p(b,a,!1,!0).id)},specified:function(b){b=p(b,a,!1,!0).id;return t(r,b)||t(h,b)}});a||(j.undef=function(b){x();var c=p(b,a,!0),e=m(h,b);d(b);delete r[b];delete S[c.url];delete $[b];T(A,function(a,c){a[0]===b&&A.splice(c,1)});e&&(e.events.defined&&($[b]=e.events),y(b))});return j},enable:function(a){m(h,a.id)&&s(a).enable()},completeLoad:function(a){var b,\n        c,d=m(j.shim,a)||{},g=d.exports;for(x();A.length;){c=A.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}c=m(h,a);if(!b&&!t(r,a)&&c&&!c.inited){if(j.enforceDefine&&(!g||!da(g)))return e(a)?void 0:w(C(\"nodefine\",\"No define call for \"+a,null,[a]));E([a,d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,e,h;(d=m(j.pkgs,a))&&(a=d);if(d=m(aa,a))return i.nameToUrl(d,b,c);if(g.jsExtRegExp.test(a))d=a+(b||\"\");else{d=j.paths;a=a.split(\"/\");for(e=a.length;0<e;e-=1)if(h=a.slice(0,\n        e).join(\"/\"),h=m(d,h)){H(h)&&(h=h[0]);a.splice(0,e,h);break}d=a.join(\"/\");d+=b||(/^data\\:|\\?/.test(d)||c?\"\":\".js\");d=(\"/\"===d.charAt(0)||d.match(/^[\\w\\+\\.\\-]+:/)?\"\":j.baseUrl)+d}return j.urlArgs?d+((-1===d.indexOf(\"?\")?\"?\":\"&\")+j.urlArgs):d},load:function(a,b){g.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if(\"load\"===a.type||ja.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),i.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!e(b.id))return w(C(\"scripterror\",\n            \"Script error for: \"+b.id,a,[b.id]))}};i.require=i.makeRequire();return i}var g,x,y,D,I,E,N,J,s,O,ka=/(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg,la=/[^.]\\s*require\\s*\\(\\s*[\"']([^'\"\\s]+)[\"']\\s*\\)/g,Q=/\\.js$/,ia=/^\\.\\//;x=Object.prototype;var K=x.toString,fa=x.hasOwnProperty,ha=Array.prototype.splice,z=!!(\"undefined\"!==typeof window&&\"undefined\"!==typeof navigator&&window.document),ea=!z&&\"undefined\"!==typeof importScripts,ja=z&&\"PLAYSTATION 3\"===navigator.platform?/^complete$/:/^(complete|loaded)$/,\n    Y=\"undefined\"!==typeof opera&&\"[object Opera]\"===opera.toString(),F={},q={},R=[],M=!1;if(\"undefined\"===typeof define){if(\"undefined\"!==typeof requirejs){if(G(requirejs))return;q=requirejs;requirejs=void 0}\"undefined\"!==typeof require&&!G(require)&&(q=require,require=void 0);g=requirejs=function(b,c,d,e){var n,p=\"_\";!H(b)&&\"string\"!==typeof b&&(n=b,H(c)?(b=c,c=d,d=e):b=[]);n&&n.context&&(p=n.context);(e=m(F,p))||(e=F[p]=g.s.newContext(p));n&&e.configure(n);return e.require(b,c,d)};g.config=function(b){return g(b)};\n    g.nextTick=\"undefined\"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=g);g.version=\"2.1.15\";g.jsExtRegExp=/^\\/|:|\\?|\\.js$/;g.isBrowser=z;x=g.s={contexts:F,newContext:ga};g({});v([\"toUrl\",\"undef\",\"defined\",\"specified\"],function(b){g[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName(\"head\")[0],D=document.getElementsByTagName(\"base\")[0]))y=x.head=D.parentNode;g.onError=ca;g.createNode=function(b){var c=\n        b.xhtml?document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"html:script\"):document.createElement(\"script\");c.type=b.scriptType||\"text/javascript\";c.charset=\"utf-8\";c.async=!0;return c};g.load=function(b,c,d){var e=b&&b.config||{};if(z)return e=g.createNode(e,c,d),e.setAttribute(\"data-requirecontext\",b.contextName),e.setAttribute(\"data-requiremodule\",c),e.attachEvent&&!(e.attachEvent.toString&&0>e.attachEvent.toString().indexOf(\"[native code\"))&&!Y?(M=!0,e.attachEvent(\"onreadystatechange\",b.onScriptLoad)):\n        (e.addEventListener(\"load\",b.onScriptLoad,!1),e.addEventListener(\"error\",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C(\"importscripts\",\"importScripts failed for \"+c+\" at \"+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName(\"script\"),function(b){y||(y=b.parentNode);if(I=b.getAttribute(\"data-main\"))return s=I,q.baseUrl||(E=s.split(\"/\"),s=E.pop(),O=E.length?E.join(\"/\")+\"/\":\"./\",q.baseUrl=\n        O),s=s.replace(Q,\"\"),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;\"string\"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,\"\").replace(la,function(b,d){c.push(d)}),c=(1===d.length?[\"require\"]:[\"require\",\"exports\",\"module\"]).concat(c)));if(M){if(!(e=J))N&&\"interactive\"===N.readyState||T(document.getElementsByTagName(\"script\"),function(b){if(\"interactive\"===b.readyState)return N=b}),e=N;e&&(b||\n        (b=e.getAttribute(\"data-requiremodule\")),g=F[e.getAttribute(\"data-requirecontext\")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/image-cropbox/js/cropbox.js",
    "content": "/**\n * Created by ezgoing on 14/9/2014.\n */\n\n\"use strict\";\n(function (factory) {\n    if (typeof define === 'function' && define.amd) {\n        define(['jquery'], factory);\n    } else {\n        factory(jQuery);\n    }\n}(function ($) {\n    var cropbox = function(options, el){\n        var el = el || $(options.imageBox),\n            obj =\n            {\n                state : {},\n                ratio : 1,\n                options : options,\n                imageBox : el,\n                thumbBox : el.find(options.thumbBox),\n                spinner : el.find(options.spinner),\n                image : new Image(),\n                getDataURL: function ()\n                {\n                    var width = this.thumbBox.width(),\n                        height = this.thumbBox.height(),\n                        canvas = document.createElement(\"canvas\"),\n                        dim = el.css('background-position').split(' '),\n                        size = el.css('background-size').split(' '),\n                        dx = parseInt(dim[0]) - el.width()/2 + width/2,\n                        dy = parseInt(dim[1]) - el.height()/2 + height/2,\n                        dw = parseInt(size[0]),\n                        dh = parseInt(size[1]),\n                        sh = parseInt(this.image.height),\n                        sw = parseInt(this.image.width);\n\n                    canvas.width = width;\n                    canvas.height = height;\n                    var context = canvas.getContext(\"2d\");\n                    context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);\n                    var imageData = canvas.toDataURL('image/png');\n                    return imageData;\n                },\n                getBlob: function()\n                {\n                    var imageData = this.getDataURL();\n                    var b64 = imageData.replace('data:image/png;base64,','');\n                    var binary = atob(b64);\n                    var array = [];\n                    for (var i = 0; i < binary.length; i++) {\n                        array.push(binary.charCodeAt(i));\n                    }\n                    return  new Blob([new Uint8Array(array)], {type: 'image/png'});\n                },\n                zoomIn: function ()\n                {\n                    this.ratio*=1.1;\n                    setBackground();\n                },\n                zoomOut: function ()\n                {\n                    this.ratio*=0.9;\n                    setBackground();\n                }\n            },\n            setBackground = function() {\n                var w =  parseInt(obj.image.width)*obj.ratio;\n                var h =  parseInt(obj.image.height)*obj.ratio;\n\n                var pw = (el.width() - w) / 2;\n                var ph = (el.height() - h) / 2;\n\n                el.css({\n                    'background-image': 'url(' + obj.image.src + ')',\n                    'background-size': w +'px ' + h + 'px',\n                    'background-position': pw + 'px ' + ph + 'px',\n                    'background-repeat': 'no-repeat'});\n            },\n            imgMouseDown = function(e) {\n                e.stopImmediatePropagation();\n\n                obj.state.dragable = true;\n                obj.state.mouseX = e.clientX;\n                obj.state.mouseY = e.clientY;\n            },\n            imgMouseMove = function(e) {\n                e.stopImmediatePropagation();\n\n                if (obj.state.dragable)\n                {\n                    var x = e.clientX - obj.state.mouseX;\n                    var y = e.clientY - obj.state.mouseY;\n\n                    var bg = el.css('background-position').split(' ');\n\n                    var bgX = x + parseInt(bg[0]);\n                    var bgY = y + parseInt(bg[1]);\n\n                    el.css('background-position', bgX +'px ' + bgY + 'px');\n\n                    obj.state.mouseX = e.clientX;\n                    obj.state.mouseY = e.clientY;\n                }\n            },\n            imgMouseUp = function(e) {\n                e.stopImmediatePropagation();\n                obj.state.dragable = false;\n            },\n            zoomImage = function(e) {\n                e.originalEvent.wheelDelta > 0 || e.originalEvent.detail < 0 ? obj.ratio*=1.1 : obj.ratio*=0.9;\n                setBackground();\n            }\n\n        obj.spinner.show();\n        obj.image.onload = function() {\n            obj.spinner.hide();\n            setBackground();\n\n            el.bind('mousedown', imgMouseDown);\n            el.bind('mousemove', imgMouseMove);\n            $(\"#userFaceContainer\").bind('mouseup', imgMouseUp);\n            el.bind('mousewheel DOMMouseScroll', zoomImage);\n        };\n        obj.image.src = options.imgSrc;\n        el.on('remove', function(){$(window).unbind('mouseup', imgMouseUp)});\n\n        return obj;\n    };\n\n    jQuery.fn.cropbox = function(options){\n        return new cropbox(options, this);\n    };\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-easypiechart/angular.easypiechart.js",
    "content": "/**!\n * easyPieChart\n * Lightweight plugin to render simple, animated and retina optimized pie charts\n *\n * @license \n * @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de)\n * @version 2.1.5\n **/\n\n(function(root, factory) {\n    if(typeof exports === 'object') {\n        module.exports = factory(require('angular'));\n    }\n    else if(typeof define === 'function' && define.amd) {\n        define(['angular'], factory);\n    }\n    else {\n        factory(root.angular);\n    }\n}(this, function(angular) {\n\n(function (angular) {\n\n\t'use strict';\n\n\treturn angular.module('easypiechart', [])\n\n\t\t.directive('easypiechart', [function() {\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\trequire: '?ngModel',\n\t\t\t\tscope: {\n\t\t\t\t\tpercent: '=',\n\t\t\t\t\toptions: '='\n\t\t\t\t},\n\t\t\t\tlink: function (scope, element, attrs) {\n\n\t\t\t\t\tscope.percent = scope.percent || 0;\n\n\t\t\t\t\t/**\n\t\t\t\t\t * default easy pie chart options\n\t\t\t\t\t * @type {Object}\n\t\t\t\t\t */\n\t\t\t\t\tvar options = {\n\t\t\t\t\t\tbarColor: '#ef1e25',\n\t\t\t\t\t\ttrackColor: '#f9f9f9',\n\t\t\t\t\t\tscaleColor: '#dfe0e0',\n\t\t\t\t\t\tscaleLength: 5,\n\t\t\t\t\t\tlineCap: 'round',\n\t\t\t\t\t\tlineWidth: 3,\n\t\t\t\t\t\tsize: 110,\n\t\t\t\t\t\trotate: 0,\n\t\t\t\t\t\tanimate: {\n\t\t\t\t\t\t\tduration: 1000,\n\t\t\t\t\t\t\tenabled: true\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tscope.options = angular.extend(options, scope.options);\n\n\t\t\t\t\tvar pieChart = new EasyPieChart(element[0], options);\n\n\t\t\t\t\tscope.$watch('percent', function(newVal, oldVal) {\n\t\t\t\t\t\tpieChart.update(newVal);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t}]);\n\n})(angular);\n/**\n * Renderer to render the chart on a canvas object\n * @param {DOMElement} el      DOM element to host the canvas (root of the plugin)\n * @param {object}     options options object of the plugin\n */\nvar CanvasRenderer = function(el, options) {\n\tvar cachedBackground;\n\tvar canvas = document.createElement('canvas');\n\n\tel.appendChild(canvas);\n\n\tif (typeof(G_vmlCanvasManager) !== 'undefined') {\n\t\tG_vmlCanvasManager.initElement(canvas);\n\t}\n\n\tvar ctx = canvas.getContext('2d');\n\n\tcanvas.width = canvas.height = options.size;\n\n\t// canvas on retina devices\n\tvar scaleBy = 1;\n\tif (window.devicePixelRatio > 1) {\n\t\tscaleBy = window.devicePixelRatio;\n\t\tcanvas.style.width = canvas.style.height = [options.size, 'px'].join('');\n\t\tcanvas.width = canvas.height = options.size * scaleBy;\n\t\tctx.scale(scaleBy, scaleBy);\n\t}\n\n\t// move 0,0 coordinates to the center\n\tctx.translate(options.size / 2, options.size / 2);\n\n\t// rotate canvas -90deg\n\tctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI);\n\n\tvar radius = (options.size - options.lineWidth) / 2;\n\tif (options.scaleColor && options.scaleLength) {\n\t\tradius -= options.scaleLength + 2; // 2 is the distance between scale and bar\n\t}\n\n\t// IE polyfill for Date\n\tDate.now = Date.now || function() {\n\t\treturn +(new Date());\n\t};\n\n\t/**\n\t * Draw a circle around the center of the canvas\n\t * @param {strong} color     Valid CSS color string\n\t * @param {number} lineWidth Width of the line in px\n\t * @param {number} percent   Percentage to draw (float between -1 and 1)\n\t */\n\tvar drawCircle = function(color, lineWidth, percent) {\n\t\tpercent = Math.min(Math.max(-1, percent || 0), 1);\n\t\tvar isNegative = percent <= 0 ? true : false;\n\n\t\tctx.beginPath();\n\t\tctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, isNegative);\n\n\t\tctx.strokeStyle = color;\n\t\tctx.lineWidth = lineWidth;\n\n\t\tctx.stroke();\n\t};\n\n\t/**\n\t * Draw the scale of the chart\n\t */\n\tvar drawScale = function() {\n\t\tvar offset;\n\t\tvar length;\n\n\t\tctx.lineWidth = 1;\n\t\tctx.fillStyle = options.scaleColor;\n\n\t\tctx.save();\n\t\tfor (var i = 24; i > 0; --i) {\n\t\t\tif (i % 6 === 0) {\n\t\t\t\tlength = options.scaleLength;\n\t\t\t\toffset = 0;\n\t\t\t} else {\n\t\t\t\tlength = options.scaleLength * 0.6;\n\t\t\t\toffset = options.scaleLength - length;\n\t\t\t}\n\t\t\tctx.fillRect(-options.size/2 + offset, 0, length, 1);\n\t\t\tctx.rotate(Math.PI / 12);\n\t\t}\n\t\tctx.restore();\n\t};\n\n\t/**\n\t * Request animation frame wrapper with polyfill\n\t * @return {function} Request animation frame method or timeout fallback\n\t */\n\tvar reqAnimationFrame = (function() {\n\t\treturn  window.requestAnimationFrame ||\n\t\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\t\tfunction(callback) {\n\t\t\t\t\twindow.setTimeout(callback, 1000 / 60);\n\t\t\t\t};\n\t}());\n\n\t/**\n\t * Draw the background of the plugin including the scale and the track\n\t */\n\tvar drawBackground = function() {\n\t\tif(options.scaleColor) drawScale();\n\t\tif(options.trackColor) drawCircle(options.trackColor, options.lineWidth, 1);\n\t};\n\n  /**\n    * Canvas accessor\n   */\n  this.getCanvas = function() {\n    return canvas;\n  };\n  \n  /**\n    * Canvas 2D context 'ctx' accessor\n   */\n  this.getCtx = function() {\n    return ctx;\n  };\n\n\t/**\n\t * Clear the complete canvas\n\t */\n\tthis.clear = function() {\n\t\tctx.clearRect(options.size / -2, options.size / -2, options.size, options.size);\n\t};\n\n\t/**\n\t * Draw the complete chart\n\t * @param {number} percent Percent shown by the chart between -100 and 100\n\t */\n\tthis.draw = function(percent) {\n\t\t// do we need to render a background\n\t\tif (!!options.scaleColor || !!options.trackColor) {\n\t\t\t// getImageData and putImageData are supported\n\t\t\tif (ctx.getImageData && ctx.putImageData) {\n\t\t\t\tif (!cachedBackground) {\n\t\t\t\t\tdrawBackground();\n\t\t\t\t\tcachedBackground = ctx.getImageData(0, 0, options.size * scaleBy, options.size * scaleBy);\n\t\t\t\t} else {\n\t\t\t\t\tctx.putImageData(cachedBackground, 0, 0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.clear();\n\t\t\t\tdrawBackground();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.clear();\n\t\t}\n\n\t\tctx.lineCap = options.lineCap;\n\n\t\t// if barcolor is a function execute it and pass the percent as a value\n\t\tvar color;\n\t\tif (typeof(options.barColor) === 'function') {\n\t\t\tcolor = options.barColor(percent);\n\t\t} else {\n\t\t\tcolor = options.barColor;\n\t\t}\n\n\t\t// draw bar\n\t\tdrawCircle(color, options.lineWidth, percent / 100);\n\t}.bind(this);\n\n\t/**\n\t * Animate from some percent to some other percentage\n\t * @param {number} from Starting percentage\n\t * @param {number} to   Final percentage\n\t */\n\tthis.animate = function(from, to) {\n\t\tvar startTime = Date.now();\n\t\toptions.onStart(from, to);\n\t\tvar animation = function() {\n\t\t\tvar process = Math.min(Date.now() - startTime, options.animate.duration);\n\t\t\tvar currentValue = options.easing(this, process, from, to - from, options.animate.duration);\n\t\t\tthis.draw(currentValue);\n\t\t\toptions.onStep(from, to, currentValue);\n\t\t\tif (process >= options.animate.duration) {\n\t\t\t\toptions.onStop(from, to);\n\t\t\t} else {\n\t\t\t\treqAnimationFrame(animation);\n\t\t\t}\n\t\t}.bind(this);\n\n\t\treqAnimationFrame(animation);\n\t}.bind(this);\n};\n\nvar EasyPieChart = function(el, opts) {\n\tvar defaultOptions = {\n\t\tbarColor: '#ef1e25',\n\t\ttrackColor: '#f9f9f9',\n\t\tscaleColor: '#dfe0e0',\n\t\tscaleLength: 5,\n\t\tlineCap: 'round',\n\t\tlineWidth: 3,\n\t\tsize: 110,\n\t\trotate: 0,\n\t\tanimate: {\n\t\t\tduration: 1000,\n\t\t\tenabled: true\n\t\t},\n\t\teasing: function (x, t, b, c, d) { // more can be found here: http://gsgd.co.uk/sandbox/jquery/easing/\n\t\t\tt = t / (d/2);\n\t\t\tif (t < 1) {\n\t\t\t\treturn c / 2 * t * t + b;\n\t\t\t}\n\t\t\treturn -c/2 * ((--t)*(t-2) - 1) + b;\n\t\t},\n\t\tonStart: function(from, to) {\n\t\t\treturn;\n\t\t},\n\t\tonStep: function(from, to, currentValue) {\n\t\t\treturn;\n\t\t},\n\t\tonStop: function(from, to) {\n\t\t\treturn;\n\t\t}\n\t};\n\n\t// detect present renderer\n\tif (typeof(CanvasRenderer) !== 'undefined') {\n\t\tdefaultOptions.renderer = CanvasRenderer;\n\t} else if (typeof(SVGRenderer) !== 'undefined') {\n\t\tdefaultOptions.renderer = SVGRenderer;\n\t} else {\n\t\tthrow new Error('Please load either the SVG- or the CanvasRenderer');\n\t}\n\n\tvar options = {};\n\tvar currentValue = 0;\n\n\t/**\n\t * Initialize the plugin by creating the options object and initialize rendering\n\t */\n\tvar init = function() {\n\t\tthis.el = el;\n\t\tthis.options = options;\n\n\t\t// merge user options into default options\n\t\tfor (var i in defaultOptions) {\n\t\t\tif (defaultOptions.hasOwnProperty(i)) {\n\t\t\t\toptions[i] = opts && typeof(opts[i]) !== 'undefined' ? opts[i] : defaultOptions[i];\n\t\t\t\tif (typeof(options[i]) === 'function') {\n\t\t\t\t\toptions[i] = options[i].bind(this);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// check for jQuery easing\n\t\tif (typeof(options.easing) === 'string' && typeof(jQuery) !== 'undefined' && jQuery.isFunction(jQuery.easing[options.easing])) {\n\t\t\toptions.easing = jQuery.easing[options.easing];\n\t\t} else {\n\t\t\toptions.easing = defaultOptions.easing;\n\t\t}\n\n\t\t// process earlier animate option to avoid bc breaks\n\t\tif (typeof(options.animate) === 'number') {\n\t\t\toptions.animate = {\n\t\t\t\tduration: options.animate,\n\t\t\t\tenabled: true\n\t\t\t};\n\t\t}\n\n\t\tif (typeof(options.animate) === 'boolean' && !options.animate) {\n\t\t\toptions.animate = {\n\t\t\t\tduration: 1000,\n\t\t\t\tenabled: options.animate\n\t\t\t};\n\t\t}\n\n\t\t// create renderer\n\t\tthis.renderer = new options.renderer(el, options);\n\n\t\t// initial draw\n\t\tthis.renderer.draw(currentValue);\n\n\t\t// initial update\n\t\tif (el.dataset && el.dataset.percent) {\n\t\t\tthis.update(parseFloat(el.dataset.percent));\n\t\t} else if (el.getAttribute && el.getAttribute('data-percent')) {\n\t\t\tthis.update(parseFloat(el.getAttribute('data-percent')));\n\t\t}\n\t}.bind(this);\n\n\t/**\n\t * Update the value of the chart\n\t * @param  {number} newValue Number between 0 and 100\n\t * @return {object}          Instance of the plugin for method chaining\n\t */\n\tthis.update = function(newValue) {\n\t\tnewValue = parseFloat(newValue);\n\t\tif (options.animate.enabled) {\n\t\t\tthis.renderer.animate(currentValue, newValue);\n\t\t} else {\n\t\t\tthis.renderer.draw(newValue);\n\t\t}\n\t\tcurrentValue = newValue;\n\t\treturn this;\n\t}.bind(this);\n\n\t/**\n\t * Disable animation\n\t * @return {object} Instance of the plugin for method chaining\n\t */\n\tthis.disableAnimation = function() {\n\t\toptions.animate.enabled = false;\n\t\treturn this;\n\t};\n\n\t/**\n\t * Enable animation\n\t * @return {object} Instance of the plugin for method chaining\n\t */\n\tthis.enableAnimation = function() {\n\t\toptions.animate.enabled = true;\n\t\treturn this;\n\t};\n\n\tinit();\n};\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/README.md",
    "content": "# jQuery File Upload Plugin\n\n## Demo\n[Demo File Upload](https://blueimp.github.io/jQuery-File-Upload/)\n\n## Description\nFile Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery.  \nSupports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.\n\n## Setup\n* [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)\n* [How to use only the basic plugin (minimal setup guide).](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)\n\n## Features\n* **Multiple file upload:**  \n  Allows to select multiple files at once and upload them simultaneously.\n* **Drag & Drop support:**  \n  Allows to upload files by dragging them from your desktop or filemanager and dropping them on your browser window.\n* **Upload progress bar:**  \n  Shows a progress bar indicating the upload progress for individual files and for all uploads combined.\n* **Cancelable uploads:**  \n  Individual file uploads can be canceled to stop the upload progress.\n* **Resumable uploads:**  \n  Aborted uploads can be resumed with browsers supporting the Blob API.\n* **Chunked uploads:**  \n  Large files can be uploaded in smaller chunks with browsers supporting the Blob API.\n* **Client-side image resizing:**  \n  Images can be automatically resized on client-side with browsers supporting the required JS APIs.\n* **Preview images, audio and video:**  \n  A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.\n* **No browser plugins (e.g. Adobe Flash) required:**  \n  The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.\n* **Graceful fallback for legacy browsers:**  \n  Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.\n* **HTML file upload form fallback:**  \n  Allows progressive enhancement by using a standard HTML file upload form as widget element.\n* **Cross-site file uploads:**  \n  Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.\n* **Multiple plugin instances:**  \n  Allows to use multiple plugin instances on the same webpage.\n* **Customizable and extensible:**  \n  Provides an API to set individual options and define callBack methods for various upload events.\n* **Multipart and file contents stream uploads:**  \n  Files can be uploaded as standard \"multipart/form-data\" or file contents stream (HTTP PUT file upload).\n* **Compatible with any server-side application platform:**  \n  Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.\n\n## Requirements\n\n### Mandatory requirements\n* [jQuery](https://jquery.com/) v. 1.6+\n* [jQuery UI widget factory](https://api.jqueryui.com/jQuery.widget/) v. 1.9+ (included)\n* [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) (included)\n\nThe jQuery UI widget factory is a requirement for the basic File Upload plugin, but very lightweight without any other dependencies from the jQuery UI suite.\n\nThe jQuery Iframe Transport is required for [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).\n\n### Optional requirements\n* [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates) v. 2.5.4+\n* [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image) v. 1.13.0+\n* [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 2.1.1+\n* [blueimp Gallery](https://github.com/blueimp/Gallery) v. 2.15.1+\n* [Bootstrap](http://getbootstrap.com/) v. 3.2.0+\n* [Glyphicons](http://glyphicons.com/)\n\nThe JavaScript Templates engine is used to render the selected and uploaded files for the Basic Plus UI and jQuery UI versions.\n\nThe JavaScript Load Image library and JavaScript Canvas to Blob polyfill are required for the image previews and resizing functionality.\n\nThe blueimp Gallery is used to display the uploaded images in a lightbox.\n\nThe user interface of all versions except the jQuery UI version is built with [Bootstrap](http://getbootstrap.com/) and icons from [Glyphicons](http://glyphicons.com/).\n\n### Cross-domain requirements\n[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) using the [Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) require a redirect back to the origin server to retrieve the upload results. The [example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js) makes use of [result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html) as a static redirect page for the origin server.\n\nThe repository also includes the [jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js), which enables limited cross-domain AJAX requests in Microsoft Internet Explorer 8 and 9 (IE 10 supports cross-domain XHR requests).  \nThe XDomainRequest object allows GET and POST requests only and doesn't support file uploads. It is used on the [Demo](https://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files from the cross-domain demo file upload service.\n\n## Browsers\n\n### Desktop browsers\nThe File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:\n\n* Google Chrome\n* Apple Safari 4.0+\n* Mozilla Firefox 3.0+\n* Opera 11.0+\n* Microsoft Internet Explorer 6.0+\n\n### Mobile browsers\nThe File Upload plugin has been tested with and supports the following mobile browsers:\n\n* Apple Safari on iOS 6.0+\n* Google Chrome on iOS 6.0+\n* Google Chrome on Android 4.0+\n* Default Browser on Android 2.3+\n* Opera Mobile 12.0+\n\n### Supported features\nFor a detailed overview of the features supported by each browser version, please have a look at the [Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).\n\n## Contributing\n**Bug fixes** and **new features** can be proposed using [pull requests](https://github.com/blueimp/jQuery-File-Upload/pulls).\nPlease read the [contribution guidelines](https://github.com/blueimp/jQuery-File-Upload/blob/master/CONTRIBUTING.md) before submitting a pull request.\n\n## Support\nThis project is actively maintained, but there is no official support channel.  \nIf you have a question that another developer might help you with, please post to [Stack Overflow](http://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload) and tag your question with `blueimp jquery file upload`.\n\n## License\nReleased under the [MIT license](http://www.opensource.org/licenses/MIT).\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/cors/postmessage.html",
    "content": "<!DOCTYPE HTML>\n<!--\n/*\n * jQuery File Upload Plugin postMessage API\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n-->\n<html lang=\"en\">\n\n    <head>\n        <meta charset=\"utf-8\">\n        <title>jQuery File Upload Plugin postMessage API</title>\n        <script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js\"></script>\n    </head>\n\n    <body>\n        <script>\n            /*jslint unparam: true, regexp: true */\n            /*global $, Blob, FormData, location */\n            'use strict';\n            var origin = /^http:\\/\\/example.org/,\n                target = new RegExp('^(http(s)?:)?\\\\/\\\\/' + location.host + '\\\\/');\n            $(window).on('message', function(e)\n            {\n                e = e.originalEvent;\n                var s = e.data,\n                    xhr = $.ajaxSettings.xhr(),\n                    f;\n                if (!origin.test(e.origin))\n                {\n                    throw new Error('Origin \"' + e.origin + '\" does not match ' + origin);\n                }\n                if (!target.test(e.data.url))\n                {\n                    throw new Error('Target \"' + e.data.url + '\" does not match ' + target);\n                }\n                $(xhr.upload).on('progress', function(ev)\n                {\n                    ev = ev.originalEvent;\n                    e.source.postMessage(\n                    {\n                        id: s.id,\n                        type: ev.type,\n                        timeStamp: ev.timeStamp,\n                        lengthComputable: ev.lengthComputable,\n                        loaded: ev.loaded,\n                        total: ev.total\n                    }, e.origin);\n                });\n                s.xhr = function()\n                {\n                    return xhr;\n                };\n                if (!(s.data instanceof Blob))\n                {\n                    f = new FormData();\n                    $.each(s.data, function(i, v)\n                    {\n                        f.append(v.name, v.value);\n                    });\n                    s.data = f;\n                }\n                $.ajax(s).always(function(result, statusText, jqXHR)\n                {\n                    if (!jqXHR.done)\n                    {\n                        jqXHR = result;\n                        result = null;\n                    }\n                    e.source.postMessage(\n                    {\n                        id: s.id,\n                        status: jqXHR.status,\n                        statusText: statusText,\n                        result: result,\n                        headers: jqXHR.getAllResponseHeaders()\n                    }, e.origin);\n                });\n            });\n        </script>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/cors/result.html",
    "content": "<!DOCTYPE HTML>\n<!--\n/*\n * jQuery Iframe Transport Plugin Redirect Page\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n-->\n<html lang=\"en\">\n\n    <head>\n        <meta charset=\"utf-8\">\n        <title>jQuery Iframe Transport Plugin Redirect Page</title>\n    </head>\n\n    <body>\n        <script>\n            document.body.innerText = document.body.textContent = decodeURIComponent(window.location.search.slice(1));\n        </script>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/css/demo-ie8.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Demo CSS Fixes for IE<9\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.navigation {\n  list-style: none;\n  padding: 0;\n  margin: 1em 0;\n}\n.navigation li {\n  display: inline;\n  margin-right: 10px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/css/demo.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Demo CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\nbody {\n  max-width: 750px;\n  margin: 0 auto;\n  padding: 1em;\n  font-family: \"Lucida Grande\", \"Lucida Sans Unicode\", Arial, sans-serif;\n  font-size: 1em;\n  line-height: 1.4em;\n  background: #222;\n  color: #fff;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\na {\n  color: orange;\n  text-decoration: none;\n}\nimg {\n  border: 0;\n  vertical-align: middle;\n}\nh1 {\n  line-height: 1em;\n}\nblockquote {\n  padding: 0 0 0 15px;\n  margin: 0 0 20px;\n  border-left: 5px solid #eee;\n}\ntable {\n  width: 100%;\n  margin: 10px 0;\n}\n\n.fileupload-progress {\n\tmargin: 10px 0;\n}\n.fileupload-progress .progress-extended {\n\tmargin-top: 5px;\n}\n.error {\n  color: red;\n}\n\n@media (min-width: 481px) {\n  .navigation {\n    list-style: none;\n    padding: 0;\n  }\n  .navigation li {\n    display: inline-block;\n  }\n  .navigation li:not(:first-child):before {\n    content: \"| \";\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/css/jquery.fileupload-noscript.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Plugin NoScript CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileinput-button input {\n  position: static;\n  opacity: 1;\n  filter: none;\n  font-size: inherit;\n  direction: inherit;\n}\n.fileinput-button span {\n  display: none;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/css/jquery.fileupload-ui-noscript.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload UI Plugin NoScript CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileinput-button i,\n.fileupload-buttonbar .delete,\n.fileupload-buttonbar .toggle {\n  display: none;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/css/jquery.fileupload-ui.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload UI Plugin CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileupload-buttonbar .btn,\n.fileupload-buttonbar .toggle {\n  margin-bottom: 5px;\n}\n.progress-animated .progress-bar,\n.progress-animated .bar {\n  background: url(\"../img/progressbar.gif\") !important;\n  filter: none;\n}\n.fileupload-process {\n  float: right;\n  display: none;\n}\n.fileupload-processing .fileupload-process,\n.files .processing .preview {\n  display: block;\n  width: 32px;\n  height: 32px;\n  background: url(\"../img/loading.gif\") center no-repeat;\n  background-size: contain;\n}\n.files audio,\n.files video {\n  max-width: 300px;\n}\n\n@media (max-width: 767px) {\n  .fileupload-buttonbar .toggle,\n  .files .toggle,\n  .files .btn span {\n    display: none;\n  }\n  .files .name {\n    width: 80px;\n    word-wrap: break-word;\n  }\n  .files audio,\n  .files video {\n    max-width: 80px;\n  }\n  .files img,\n  .files canvas {\n    max-width: 100%;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/css/jquery.fileupload.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Plugin CSS\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n.fileinput-button {\n  position: relative;\n  overflow: hidden;\n  display: inline-block;\n}\n.fileinput-button input {\n  position: absolute;\n  top: 0;\n  right: 0;\n  margin: 0;\n  opacity: 0;\n  -ms-filter: 'alpha(opacity=0)';\n  font-size: 200px;\n  direction: ltr;\n  cursor: pointer;\n}\n\n/* Fixes for IE < 8 */\n@media screen\\9 {\n  .fileinput-button input {\n    filter: alpha(opacity=0);\n    font-size: 100%;\n    height: 100%;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/css/style.css",
    "content": "@charset \"UTF-8\";\n/*\n * jQuery File Upload Plugin CSS Example\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\nbody {\n  padding-top: 60px;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/app.js",
    "content": "/*\n * jQuery File Upload Plugin Angular JS Example\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global window, angular */\n\n(function () {\n    'use strict';\n\n    var isOnGitHub = window.location.hostname === 'blueimp.github.io',\n        url = isOnGitHub ? '//jquery-file-upload.appspot.com/' : 'server/php/';\n\n    angular.module('demo', [\n        'blueimp.fileupload'\n    ])\n        .config([\n            '$httpProvider', 'fileUploadProvider',\n            function ($httpProvider, fileUploadProvider) {\n                delete $httpProvider.defaults.headers.common['X-Requested-With'];\n                fileUploadProvider.defaults.redirect = window.location.href.replace(\n                    /\\/[^\\/]*$/,\n                    '/cors/result.html?%s'\n                );\n                if (isOnGitHub) {\n                    // Demo settings:\n                    angular.extend(fileUploadProvider.defaults, {\n                        // Enable image resizing, except for Android and Opera,\n                        // which actually support image resizing, but fail to\n                        // send Blob objects via XHR requests:\n                        disableImageResize: /Android(?!.*Chrome)|Opera/\n                            .test(window.navigator.userAgent),\n                        maxFileSize: 999000,\n                        acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i\n                    });\n                }\n            }\n        ])\n\n        .controller('DemoFileUploadController', [\n            '$scope', '$http', '$filter', '$window',\n            function ($scope, $http) {\n                $scope.options = {\n                    url: url\n                };\n                if (!isOnGitHub) {\n                    $scope.loadingFiles = true;\n                    $http.get(url)\n                        .then(\n                            function (response) {\n                                $scope.loadingFiles = false;\n                                $scope.queue = response.data.files || [];\n                            },\n                            function () {\n                                $scope.loadingFiles = false;\n                            }\n                        );\n                }\n            }\n        ])\n\n        .controller('FileDestroyController', [\n            '$scope', '$http',\n            function ($scope, $http) {\n                var file = $scope.file,\n                    state;\n                if (file.url) {\n                    file.$state = function () {\n                        return state;\n                    };\n                    file.$destroy = function () {\n                        state = 'pending';\n                        return $http({\n                            url: file.deleteUrl,\n                            method: file.deleteType\n                        }).then(\n                            function () {\n                                state = 'resolved';\n                                $scope.clear(file);\n                            },\n                            function () {\n                                state = 'rejected';\n                            }\n                        );\n                    };\n                } else if (!file.$cancel && !file._index) {\n                    file.$cancel = function () {\n                        $scope.clear(file);\n                    };\n                }\n            }\n        ]);\n\n}());\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/cors/jquery.postmessage-transport.js",
    "content": "/*\n * jQuery postMessage Transport Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    var counter = 0,\n        names = [\n            'accepts',\n            'cache',\n            'contents',\n            'contentType',\n            'crossDomain',\n            'data',\n            'dataType',\n            'headers',\n            'ifModified',\n            'mimeType',\n            'password',\n            'processData',\n            'timeout',\n            'traditional',\n            'type',\n            'url',\n            'username'\n        ],\n        convert = function (p) {\n            return p;\n        };\n\n    $.ajaxSetup({\n        converters: {\n            'postmessage text': convert,\n            'postmessage json': convert,\n            'postmessage html': convert\n        }\n    });\n\n    $.ajaxTransport('postmessage', function (options) {\n        if (options.postMessage && window.postMessage) {\n            var iframe,\n                loc = $('<a>').prop('href', options.postMessage)[0],\n                target = loc.protocol + '//' + loc.host,\n                xhrUpload = options.xhr().upload;\n            return {\n                send: function (_, completeCallback) {\n                    counter += 1;\n                    var message = {\n                            id: 'postmessage-transport-' + counter\n                        },\n                        eventName = 'message.' + message.id;\n                    iframe = $(\n                        '<iframe style=\"display:none;\" src=\"' +\n                            options.postMessage + '\" name=\"' +\n                            message.id + '\"></iframe>'\n                    ).bind('load', function () {\n                        $.each(names, function (i, name) {\n                            message[name] = options[name];\n                        });\n                        message.dataType = message.dataType.replace('postmessage ', '');\n                        $(window).bind(eventName, function (e) {\n                            e = e.originalEvent;\n                            var data = e.data,\n                                ev;\n                            if (e.origin === target && data.id === message.id) {\n                                if (data.type === 'progress') {\n                                    ev = document.createEvent('Event');\n                                    ev.initEvent(data.type, false, true);\n                                    $.extend(ev, data);\n                                    xhrUpload.dispatchEvent(ev);\n                                } else {\n                                    completeCallback(\n                                        data.status,\n                                        data.statusText,\n                                        {postmessage: data.result},\n                                        data.headers\n                                    );\n                                    iframe.remove();\n                                    $(window).unbind(eventName);\n                                }\n                            }\n                        });\n                        iframe[0].contentWindow.postMessage(\n                            message,\n                            target\n                        );\n                    }).appendTo(document.body);\n                },\n                abort: function () {\n                    if (iframe) {\n                        iframe.remove();\n                    }\n                }\n            };\n        }\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/cors/jquery.xdr-transport.js",
    "content": "/*\n * jQuery XDomainRequest Transport Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n *\n * Based on Julian Aubourg's ajaxHooks xdr.js:\n * https://github.com/jaubourg/ajaxHooks/\n */\n\n/* global define, require, window, XDomainRequest */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n    if (window.XDomainRequest && !$.support.cors) {\n        $.ajaxTransport(function (s) {\n            if (s.crossDomain && s.async) {\n                if (s.timeout) {\n                    s.xdrTimeout = s.timeout;\n                    delete s.timeout;\n                }\n                var xdr;\n                return {\n                    send: function (headers, completeCallback) {\n                        var addParamChar = /\\?/.test(s.url) ? '&' : '?';\n                        function callback(status, statusText, responses, responseHeaders) {\n                            xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;\n                            xdr = null;\n                            completeCallback(status, statusText, responses, responseHeaders);\n                        }\n                        xdr = new XDomainRequest();\n                        // XDomainRequest only supports GET and POST:\n                        if (s.type === 'DELETE') {\n                            s.url = s.url + addParamChar + '_method=DELETE';\n                            s.type = 'POST';\n                        } else if (s.type === 'PUT') {\n                            s.url = s.url + addParamChar + '_method=PUT';\n                            s.type = 'POST';\n                        } else if (s.type === 'PATCH') {\n                            s.url = s.url + addParamChar + '_method=PATCH';\n                            s.type = 'POST';\n                        }\n                        xdr.open(s.type, s.url);\n                        xdr.onload = function () {\n                            callback(\n                                200,\n                                'OK',\n                                {text: xdr.responseText},\n                                'Content-Type: ' + xdr.contentType\n                            );\n                        };\n                        xdr.onerror = function () {\n                            callback(404, 'Not Found');\n                        };\n                        if (s.xdrTimeout) {\n                            xdr.ontimeout = function () {\n                                callback(0, 'timeout');\n                            };\n                            xdr.timeout = s.xdrTimeout;\n                        }\n                        xdr.send((s.hasContent && s.data) || null);\n                    },\n                    abort: function () {\n                        if (xdr) {\n                            xdr.onerror = $.noop();\n                            xdr.abort();\n                        }\n                    }\n                };\n            }\n        });\n    }\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-angular.js",
    "content": "/*\n * jQuery File Upload AngularJS Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, angular */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'angular',\n            './jquery.fileupload-image',\n            './jquery.fileupload-audio',\n            './jquery.fileupload-video',\n            './jquery.fileupload-validate'\n        ], factory);\n    } else {\n        factory();\n    }\n}(function () {\n    'use strict';\n\n    angular.module('blueimp.fileupload', [])\n\n        // The fileUpload service provides configuration options\n        // for the fileUpload directive and default handlers for\n        // File Upload events:\n        .provider('fileUpload', function () {\n            var scopeEvalAsync = function (expression) {\n                    var scope = angular.element(this)\n                            .fileupload('option', 'scope');\n                    // Schedule a new $digest cycle if not already inside of one\n                    // and evaluate the given expression:\n                    scope.$evalAsync(expression);\n                },\n                addFileMethods = function (scope, data) {\n                    var files = data.files,\n                        file = files[0];\n                    angular.forEach(files, function (file, index) {\n                        file._index = index;\n                        file.$state = function () {\n                            return data.state();\n                        };\n                        file.$processing = function () {\n                            return data.processing();\n                        };\n                        file.$progress = function () {\n                            return data.progress();\n                        };\n                        file.$response = function () {\n                            return data.response();\n                        };\n                    });\n                    file.$submit = function () {\n                        if (!file.error) {\n                            return data.submit();\n                        }\n                    };\n                    file.$cancel = function () {\n                        return data.abort();\n                    };\n                },\n                $config;\n            $config = this.defaults = {\n                handleResponse: function (e, data) {\n                    var files = data.result && data.result.files;\n                    if (files) {\n                        data.scope.replace(data.files, files);\n                    } else if (data.errorThrown ||\n                            data.textStatus === 'error') {\n                        data.files[0].error = data.errorThrown ||\n                            data.textStatus;\n                    }\n                },\n                add: function (e, data) {\n                    if (e.isDefaultPrevented()) {\n                        return false;\n                    }\n                    var scope = data.scope,\n                        filesCopy = [];\n                    angular.forEach(data.files, function (file) {\n                        filesCopy.push(file);\n                    });\n                    scope.$parent.$applyAsync(function () {\n                        addFileMethods(scope, data);\n                        var method = scope.option('prependFiles') ?\n                                'unshift' : 'push';\n                        Array.prototype[method].apply(scope.queue, data.files);\n                    });\n                    data.process(function () {\n                        return scope.process(data);\n                    }).always(function () {\n                        scope.$parent.$applyAsync(function () {\n                            addFileMethods(scope, data);\n                            scope.replace(filesCopy, data.files);\n                        });\n                    }).then(function () {\n                        if ((scope.option('autoUpload') ||\n                                data.autoUpload) &&\n                                data.autoUpload !== false) {\n                            data.submit();\n                        }\n                    });\n                },\n                done: function (e, data) {\n                    if (e.isDefaultPrevented()) {\n                        return false;\n                    }\n                    var that = this;\n                    data.scope.$apply(function () {\n                        data.handleResponse.call(that, e, data);\n                    });\n                },\n                fail: function (e, data) {\n                    if (e.isDefaultPrevented()) {\n                        return false;\n                    }\n                    var that = this,\n                        scope = data.scope;\n                    if (data.errorThrown === 'abort') {\n                        scope.clear(data.files);\n                        return;\n                    }\n                    scope.$apply(function () {\n                        data.handleResponse.call(that, e, data);\n                    });\n                },\n                stop: scopeEvalAsync,\n                processstart: scopeEvalAsync,\n                processstop: scopeEvalAsync,\n                getNumberOfFiles: function () {\n                    var scope = this.scope;\n                    return scope.queue.length - scope.processing();\n                },\n                dataType: 'json',\n                autoUpload: false\n            };\n            this.$get = [\n                function () {\n                    return {\n                        defaults: $config\n                    };\n                }\n            ];\n        })\n\n        // Format byte numbers to readable presentations:\n        .provider('formatFileSizeFilter', function () {\n            var $config = {\n                // Byte units following the IEC format\n                // http://en.wikipedia.org/wiki/Kilobyte\n                units: [\n                    {size: 1000000000, suffix: ' GB'},\n                    {size: 1000000, suffix: ' MB'},\n                    {size: 1000, suffix: ' KB'}\n                ]\n            };\n            this.defaults = $config;\n            this.$get = function () {\n                return function (bytes) {\n                    if (!angular.isNumber(bytes)) {\n                        return '';\n                    }\n                    var unit = true,\n                        i = 0,\n                        prefix,\n                        suffix;\n                    while (unit) {\n                        unit = $config.units[i];\n                        prefix = unit.prefix || '';\n                        suffix = unit.suffix || '';\n                        if (i === $config.units.length - 1 || bytes >= unit.size) {\n                            return prefix + (bytes / unit.size).toFixed(2) + suffix;\n                        }\n                        i += 1;\n                    }\n                };\n            };\n        })\n\n        // The FileUploadController initializes the fileupload widget and\n        // provides scope methods to control the File Upload functionality:\n        .controller('FileUploadController', [\n            '$scope', '$element', '$attrs', '$window', 'fileUpload',\n            function ($scope, $element, $attrs, $window, fileUpload) {\n                var uploadMethods = {\n                    progress: function () {\n                        return $element.fileupload('progress');\n                    },\n                    active: function () {\n                        return $element.fileupload('active');\n                    },\n                    option: function (option, data) {\n                        if (arguments.length === 1) {\n                            return $element.fileupload('option', option);\n                        }\n                        $element.fileupload('option', option, data);\n                    },\n                    add: function (data) {\n                        return $element.fileupload('add', data);\n                    },\n                    send: function (data) {\n                        return $element.fileupload('send', data);\n                    },\n                    process: function (data) {\n                        return $element.fileupload('process', data);\n                    },\n                    processing: function (data) {\n                        return $element.fileupload('processing', data);\n                    }\n                };\n                $scope.disabled = !$window.jQuery.support.fileInput;\n                $scope.queue = $scope.queue || [];\n                $scope.clear = function (files) {\n                    var queue = this.queue,\n                        i = queue.length,\n                        file = files,\n                        length = 1;\n                    if (angular.isArray(files)) {\n                        file = files[0];\n                        length = files.length;\n                    }\n                    while (i) {\n                        i -= 1;\n                        if (queue[i] === file) {\n                            return queue.splice(i, length);\n                        }\n                    }\n                };\n                $scope.replace = function (oldFiles, newFiles) {\n                    var queue = this.queue,\n                        file = oldFiles[0],\n                        i,\n                        j;\n                    for (i = 0; i < queue.length; i += 1) {\n                        if (queue[i] === file) {\n                            for (j = 0; j < newFiles.length; j += 1) {\n                                queue[i + j] = newFiles[j];\n                            }\n                            return;\n                        }\n                    }\n                };\n                $scope.applyOnQueue = function (method) {\n                    var list = this.queue.slice(0),\n                        i,\n                        file;\n                    for (i = 0; i < list.length; i += 1) {\n                        file = list[i];\n                        if (file[method]) {\n                            file[method]();\n                        }\n                    }\n                };\n                $scope.submit = function () {\n                    this.applyOnQueue('$submit');\n                };\n                $scope.cancel = function () {\n                    this.applyOnQueue('$cancel');\n                };\n                // Add upload methods to the scope:\n                angular.extend($scope, uploadMethods);\n                // The fileupload widget will initialize with\n                // the options provided via \"data-\"-parameters,\n                // as well as those given via options object:\n                $element.fileupload(angular.extend(\n                    {scope: $scope},\n                    fileUpload.defaults\n                )).on('fileuploadadd', function (e, data) {\n                    data.scope = $scope;\n                }).on('fileuploadfail', function (e, data) {\n                    if (data.errorThrown === 'abort') {\n                        return;\n                    }\n                    if (data.dataType &&\n                            data.dataType.indexOf('json') === data.dataType.length - 4) {\n                        try {\n                            data.result = angular.fromJson(data.jqXHR.responseText);\n                        } catch (ignore) {}\n                    }\n                }).on([\n                    'fileuploadadd',\n                    'fileuploadsubmit',\n                    'fileuploadsend',\n                    'fileuploaddone',\n                    'fileuploadfail',\n                    'fileuploadalways',\n                    'fileuploadprogress',\n                    'fileuploadprogressall',\n                    'fileuploadstart',\n                    'fileuploadstop',\n                    'fileuploadchange',\n                    'fileuploadpaste',\n                    'fileuploaddrop',\n                    'fileuploaddragover',\n                    'fileuploadchunksend',\n                    'fileuploadchunkdone',\n                    'fileuploadchunkfail',\n                    'fileuploadchunkalways',\n                    'fileuploadprocessstart',\n                    'fileuploadprocess',\n                    'fileuploadprocessdone',\n                    'fileuploadprocessfail',\n                    'fileuploadprocessalways',\n                    'fileuploadprocessstop'\n                ].join(' '), function (e, data) {\n                    $scope.$parent.$applyAsync(function () {\n                        if ($scope.$emit(e.type, data).defaultPrevented) {\n                            e.preventDefault();\n                        }\n                    });\n                }).on('remove', function () {\n                    // Remove upload methods from the scope,\n                    // when the widget is removed:\n                    var method;\n                    for (method in uploadMethods) {\n                        if (uploadMethods.hasOwnProperty(method)) {\n                            delete $scope[method];\n                        }\n                    }\n                });\n                // Observe option changes:\n                $scope.$watch(\n                    $attrs.fileUpload,\n                    function (newOptions) {\n                        if (newOptions) {\n                            $element.fileupload('option', newOptions);\n                        }\n                    }\n                );\n            }\n        ])\n\n        // Provide File Upload progress feedback:\n        .controller('FileUploadProgressController', [\n            '$scope', '$attrs', '$parse',\n            function ($scope, $attrs, $parse) {\n                var fn = $parse($attrs.fileUploadProgress),\n                    update = function () {\n                        var progress = fn($scope);\n                        if (!progress || !progress.total) {\n                            return;\n                        }\n                        $scope.num = Math.floor(\n                            progress.loaded / progress.total * 100\n                        );\n                    };\n                update();\n                $scope.$watch(\n                    $attrs.fileUploadProgress + '.loaded',\n                    function (newValue, oldValue) {\n                        if (newValue !== oldValue) {\n                            update();\n                        }\n                    }\n                );\n            }\n        ])\n\n        // Display File Upload previews:\n        .controller('FileUploadPreviewController', [\n            '$scope', '$element', '$attrs',\n            function ($scope, $element, $attrs) {\n                $scope.$watch(\n                    $attrs.fileUploadPreview + '.preview',\n                    function (preview) {\n                        $element.empty();\n                        if (preview) {\n                            $element.append(preview);\n                        }\n                    }\n                );\n            }\n        ])\n\n        .directive('fileUpload', function () {\n            return {\n                controller: 'FileUploadController',\n                scope: true\n            };\n        })\n\n        .directive('fileUploadProgress', function () {\n            return {\n                controller: 'FileUploadProgressController',\n                scope: true\n            };\n        })\n\n        .directive('fileUploadPreview', function () {\n            return {\n                controller: 'FileUploadPreviewController'\n            };\n        })\n\n        // Enhance the HTML5 download attribute to\n        // allow drag&drop of files to the desktop:\n        .directive('download', function () {\n            return function (scope, elm) {\n                elm.on('dragstart', function (e) {\n                    try {\n                        e.originalEvent.dataTransfer.setData(\n                            'DownloadURL',\n                            [\n                                'application/octet-stream',\n                                elm.prop('download'),\n                                elm.prop('href')\n                            ].join(':')\n                        );\n                    } catch (ignore) {}\n                });\n            };\n        });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-audio.js",
    "content": "/*\n * jQuery File Upload Audio Preview Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'load-image',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('load-image')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.loadImage\n        );\n    }\n}(function ($, loadImage) {\n    'use strict';\n\n    // Prepend to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.unshift(\n        {\n            action: 'loadAudio',\n            // Use the action as prefix for the \"@\" options:\n            prefix: true,\n            fileTypes: '@',\n            maxFileSize: '@',\n            disabled: '@disableAudioPreview'\n        },\n        {\n            action: 'setAudio',\n            name: '@audioPreviewName',\n            disabled: '@disableAudioPreview'\n        }\n    );\n\n    // The File Upload Audio Preview plugin extends the fileupload widget\n    // with audio preview functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The regular expression for the types of audio files to load,\n            // matched against the file type:\n            loadAudioFileTypes: /^audio\\/.*$/\n        },\n\n        _audioElement: document.createElement('audio'),\n\n        processActions: {\n\n            // Loads the audio file given via data.files and data.index\n            // as audio element if the browser supports playing it.\n            // Accepts the options fileTypes (regular expression)\n            // and maxFileSize (integer) to limit the files to load:\n            loadAudio: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var file = data.files[data.index],\n                    url,\n                    audio;\n                if (this._audioElement.canPlayType &&\n                        this._audioElement.canPlayType(file.type) &&\n                        ($.type(options.maxFileSize) !== 'number' ||\n                            file.size <= options.maxFileSize) &&\n                        (!options.fileTypes ||\n                            options.fileTypes.test(file.type))) {\n                    url = loadImage.createObjectURL(file);\n                    if (url) {\n                        audio = this._audioElement.cloneNode(false);\n                        audio.src = url;\n                        audio.controls = true;\n                        data.audio = audio;\n                        return data;\n                    }\n                }\n                return data;\n            },\n\n            // Sets the audio element as a property of the file object:\n            setAudio: function (data, options) {\n                if (data.audio && !options.disabled) {\n                    data.files[data.index][options.name || 'preview'] = data.audio;\n                }\n                return data;\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-image.js",
    "content": "/*\n * jQuery File Upload Image Preview & Resize Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, Blob */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'load-image',\n            'load-image-meta',\n            'load-image-exif',\n            'load-image-ios',\n            'canvas-to-blob',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('load-image')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.loadImage\n        );\n    }\n}(function ($, loadImage) {\n    'use strict';\n\n    // Prepend to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.unshift(\n        {\n            action: 'loadImageMetaData',\n            disableImageHead: '@',\n            disableExif: '@',\n            disableExifThumbnail: '@',\n            disableExifSub: '@',\n            disableExifGps: '@',\n            disabled: '@disableImageMetaDataLoad'\n        },\n        {\n            action: 'loadImage',\n            // Use the action as prefix for the \"@\" options:\n            prefix: true,\n            fileTypes: '@',\n            maxFileSize: '@',\n            noRevoke: '@',\n            disabled: '@disableImageLoad'\n        },\n        {\n            action: 'resizeImage',\n            // Use \"image\" as prefix for the \"@\" options:\n            prefix: 'image',\n            maxWidth: '@',\n            maxHeight: '@',\n            minWidth: '@',\n            minHeight: '@',\n            crop: '@',\n            orientation: '@',\n            forceResize: '@',\n            disabled: '@disableImageResize'\n        },\n        {\n            action: 'saveImage',\n            quality: '@imageQuality',\n            type: '@imageType',\n            disabled: '@disableImageResize'\n        },\n        {\n            action: 'saveImageMetaData',\n            disabled: '@disableImageMetaDataSave'\n        },\n        {\n            action: 'resizeImage',\n            // Use \"preview\" as prefix for the \"@\" options:\n            prefix: 'preview',\n            maxWidth: '@',\n            maxHeight: '@',\n            minWidth: '@',\n            minHeight: '@',\n            crop: '@',\n            orientation: '@',\n            thumbnail: '@',\n            canvas: '@',\n            disabled: '@disableImagePreview'\n        },\n        {\n            action: 'setImage',\n            name: '@imagePreviewName',\n            disabled: '@disableImagePreview'\n        },\n        {\n            action: 'deleteImageReferences',\n            disabled: '@disableImageReferencesDeletion'\n        }\n    );\n\n    // The File Upload Resize plugin extends the fileupload widget\n    // with image resize functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The regular expression for the types of images to load:\n            // matched against the file type:\n            loadImageFileTypes: /^image\\/(gif|jpeg|png|svg\\+xml)$/,\n            // The maximum file size of images to load:\n            loadImageMaxFileSize: 10000000, // 10MB\n            // The maximum width of resized images:\n            imageMaxWidth: 1920,\n            // The maximum height of resized images:\n            imageMaxHeight: 1080,\n            // Defines the image orientation (1-8) or takes the orientation\n            // value from Exif data if set to true:\n            imageOrientation: false,\n            // Define if resized images should be cropped or only scaled:\n            imageCrop: false,\n            // Disable the resize image functionality by default:\n            disableImageResize: true,\n            // The maximum width of the preview images:\n            previewMaxWidth: 80,\n            // The maximum height of the preview images:\n            previewMaxHeight: 80,\n            // Defines the preview orientation (1-8) or takes the orientation\n            // value from Exif data if set to true:\n            previewOrientation: true,\n            // Create the preview using the Exif data thumbnail:\n            previewThumbnail: true,\n            // Define if preview images should be cropped or only scaled:\n            previewCrop: false,\n            // Define if preview images should be resized as canvas elements:\n            previewCanvas: true\n        },\n\n        processActions: {\n\n            // Loads the image given via data.files and data.index\n            // as img element, if the browser supports the File API.\n            // Accepts the options fileTypes (regular expression)\n            // and maxFileSize (integer) to limit the files to load:\n            loadImage: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var that = this,\n                    file = data.files[data.index],\n                    dfd = $.Deferred();\n                if (($.type(options.maxFileSize) === 'number' &&\n                            file.size > options.maxFileSize) ||\n                        (options.fileTypes &&\n                            !options.fileTypes.test(file.type)) ||\n                        !loadImage(\n                            file,\n                            function (img) {\n                                if (img.src) {\n                                    data.img = img;\n                                }\n                                dfd.resolveWith(that, [data]);\n                            },\n                            options\n                        )) {\n                    return data;\n                }\n                return dfd.promise();\n            },\n\n            // Resizes the image given as data.canvas or data.img\n            // and updates data.canvas or data.img with the resized image.\n            // Also stores the resized image as preview property.\n            // Accepts the options maxWidth, maxHeight, minWidth,\n            // minHeight, canvas and crop:\n            resizeImage: function (data, options) {\n                if (options.disabled || !(data.canvas || data.img)) {\n                    return data;\n                }\n                options = $.extend({canvas: true}, options);\n                var that = this,\n                    dfd = $.Deferred(),\n                    img = (options.canvas && data.canvas) || data.img,\n                    resolve = function (newImg) {\n                        if (newImg && (newImg.width !== img.width ||\n                                newImg.height !== img.height ||\n                                options.forceResize)) {\n                            data[newImg.getContext ? 'canvas' : 'img'] = newImg;\n                        }\n                        data.preview = newImg;\n                        dfd.resolveWith(that, [data]);\n                    },\n                    thumbnail;\n                if (data.exif) {\n                    if (options.orientation === true) {\n                        options.orientation = data.exif.get('Orientation');\n                    }\n                    if (options.thumbnail) {\n                        thumbnail = data.exif.get('Thumbnail');\n                        if (thumbnail) {\n                            loadImage(thumbnail, resolve, options);\n                            return dfd.promise();\n                        }\n                    }\n                    // Prevent orienting the same image twice:\n                    if (data.orientation) {\n                        delete options.orientation;\n                    } else {\n                        data.orientation = options.orientation;\n                    }\n                }\n                if (img) {\n                    resolve(loadImage.scale(img, options));\n                    return dfd.promise();\n                }\n                return data;\n            },\n\n            // Saves the processed image given as data.canvas\n            // inplace at data.index of data.files:\n            saveImage: function (data, options) {\n                if (!data.canvas || options.disabled) {\n                    return data;\n                }\n                var that = this,\n                    file = data.files[data.index],\n                    dfd = $.Deferred();\n                if (data.canvas.toBlob) {\n                    data.canvas.toBlob(\n                        function (blob) {\n                            if (!blob.name) {\n                                if (file.type === blob.type) {\n                                    blob.name = file.name;\n                                } else if (file.name) {\n                                    blob.name = file.name.replace(\n                                        /\\.\\w+$/,\n                                        '.' + blob.type.substr(6)\n                                    );\n                                }\n                            }\n                            // Don't restore invalid meta data:\n                            if (file.type !== blob.type) {\n                                delete data.imageHead;\n                            }\n                            // Store the created blob at the position\n                            // of the original file in the files list:\n                            data.files[data.index] = blob;\n                            dfd.resolveWith(that, [data]);\n                        },\n                        options.type || file.type,\n                        options.quality\n                    );\n                } else {\n                    return data;\n                }\n                return dfd.promise();\n            },\n\n            loadImageMetaData: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var that = this,\n                    dfd = $.Deferred();\n                loadImage.parseMetaData(data.files[data.index], function (result) {\n                    $.extend(data, result);\n                    dfd.resolveWith(that, [data]);\n                }, options);\n                return dfd.promise();\n            },\n\n            saveImageMetaData: function (data, options) {\n                if (!(data.imageHead && data.canvas &&\n                        data.canvas.toBlob && !options.disabled)) {\n                    return data;\n                }\n                var file = data.files[data.index],\n                    blob = new Blob([\n                        data.imageHead,\n                        // Resized images always have a head size of 20 bytes,\n                        // including the JPEG marker and a minimal JFIF header:\n                        this._blobSlice.call(file, 20)\n                    ], {type: file.type});\n                blob.name = file.name;\n                data.files[data.index] = blob;\n                return data;\n            },\n\n            // Sets the resized version of the image as a property of the\n            // file object, must be called after \"saveImage\":\n            setImage: function (data, options) {\n                if (data.preview && !options.disabled) {\n                    data.files[data.index][options.name || 'preview'] = data.preview;\n                }\n                return data;\n            },\n\n            deleteImageReferences: function (data, options) {\n                if (!options.disabled) {\n                    delete data.img;\n                    delete data.canvas;\n                    delete data.preview;\n                    delete data.imageHead;\n                }\n                return data;\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-jquery-ui.js",
    "content": "/*\n * jQuery File Upload jQuery UI Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery', './jquery.fileupload-ui'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            processdone: function (e, data) {\n                data.context.find('.start').button('enable');\n            },\n            progress: function (e, data) {\n                if (data.context) {\n                    data.context.find('.progress').progressbar(\n                        'option',\n                        'value',\n                        parseInt(data.loaded / data.total * 100, 10)\n                    );\n                }\n            },\n            progressall: function (e, data) {\n                var $this = $(this);\n                $this.find('.fileupload-progress')\n                    .find('.progress').progressbar(\n                        'option',\n                        'value',\n                        parseInt(data.loaded / data.total * 100, 10)\n                    ).end()\n                    .find('.progress-extended').each(function () {\n                        $(this).html(\n                            ($this.data('blueimp-fileupload') ||\n                                    $this.data('fileupload'))\n                                ._renderExtendedProgress(data)\n                        );\n                    });\n            }\n        },\n\n        _renderUpload: function (func, files) {\n            var node = this._super(func, files),\n                showIconText = $(window).width() > 480;\n            node.find('.progress').empty().progressbar();\n            node.find('.start').button({\n                icons: {primary: 'ui-icon-circle-arrow-e'},\n                text: showIconText\n            });\n            node.find('.cancel').button({\n                icons: {primary: 'ui-icon-cancel'},\n                text: showIconText\n            });\n            if (node.hasClass('fade')) {\n                node.hide();\n            }\n            return node;\n        },\n\n        _renderDownload: function (func, files) {\n            var node = this._super(func, files),\n                showIconText = $(window).width() > 480;\n            node.find('.delete').button({\n                icons: {primary: 'ui-icon-trash'},\n                text: showIconText\n            });\n            if (node.hasClass('fade')) {\n                node.hide();\n            }\n            return node;\n        },\n\n        _startHandler: function (e) {\n            $(e.currentTarget).button('disable');\n            this._super(e);\n        },\n\n        _transition: function (node) {\n            var deferred = $.Deferred();\n            if (node.hasClass('fade')) {\n                node.fadeToggle(\n                    this.options.transitionDuration,\n                    this.options.transitionEasing,\n                    function () {\n                        deferred.resolveWith(node);\n                    }\n                );\n            } else {\n                deferred.resolveWith(node);\n            }\n            return deferred;\n        },\n\n        _create: function () {\n            this._super();\n            this.element\n                .find('.fileupload-buttonbar')\n                .find('.fileinput-button').each(function () {\n                    var input = $(this).find('input:file').detach();\n                    $(this)\n                        .button({icons: {primary: 'ui-icon-plusthick'}})\n                        .append(input);\n                })\n                .end().find('.start')\n                .button({icons: {primary: 'ui-icon-circle-arrow-e'}})\n                .end().find('.cancel')\n                .button({icons: {primary: 'ui-icon-cancel'}})\n                .end().find('.delete')\n                .button({icons: {primary: 'ui-icon-trash'}})\n                .end().find('.progress').progressbar();\n        },\n\n        _destroy: function () {\n            this.element\n                .find('.fileupload-buttonbar')\n                .find('.fileinput-button').each(function () {\n                    var input = $(this).find('input:file').detach();\n                    $(this)\n                        .button('destroy')\n                        .append(input);\n                })\n                .end().find('.start')\n                .button('destroy')\n                .end().find('.cancel')\n                .button('destroy')\n                .end().find('.delete')\n                .button('destroy')\n                .end().find('.progress').progressbar('destroy');\n            this._super();\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-process.js",
    "content": "/*\n * jQuery File Upload Processing Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            './jquery.fileupload'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery\n        );\n    }\n}(function ($) {\n    'use strict';\n\n    var originalAdd = $.blueimp.fileupload.prototype.options.add;\n\n    // The File Upload Processing plugin extends the fileupload widget\n    // with file processing functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The list of processing actions:\n            processQueue: [\n                /*\n                {\n                    action: 'log',\n                    type: 'debug'\n                }\n                */\n            ],\n            add: function (e, data) {\n                var $this = $(this);\n                data.process(function () {\n                    return $this.fileupload('process', data);\n                });\n                originalAdd.call(this, e, data);\n            }\n        },\n\n        processActions: {\n            /*\n            log: function (data, options) {\n                console[options.type](\n                    'Processing \"' + data.files[data.index].name + '\"'\n                );\n            }\n            */\n        },\n\n        _processFile: function (data, originalData) {\n            var that = this,\n                dfd = $.Deferred().resolveWith(that, [data]),\n                chain = dfd.promise();\n            this._trigger('process', null, data);\n            $.each(data.processQueue, function (i, settings) {\n                var func = function (data) {\n                    if (originalData.errorThrown) {\n                        return $.Deferred()\n                                .rejectWith(that, [originalData]).promise();\n                    }\n                    return that.processActions[settings.action].call(\n                        that,\n                        data,\n                        settings\n                    );\n                };\n                chain = chain.pipe(func, settings.always && func);\n            });\n            chain\n                .done(function () {\n                    that._trigger('processdone', null, data);\n                    that._trigger('processalways', null, data);\n                })\n                .fail(function () {\n                    that._trigger('processfail', null, data);\n                    that._trigger('processalways', null, data);\n                });\n            return chain;\n        },\n\n        // Replaces the settings of each processQueue item that\n        // are strings starting with an \"@\", using the remaining\n        // substring as key for the option map,\n        // e.g. \"@autoUpload\" is replaced with options.autoUpload:\n        _transformProcessQueue: function (options) {\n            var processQueue = [];\n            $.each(options.processQueue, function () {\n                var settings = {},\n                    action = this.action,\n                    prefix = this.prefix === true ? action : this.prefix;\n                $.each(this, function (key, value) {\n                    if ($.type(value) === 'string' &&\n                            value.charAt(0) === '@') {\n                        settings[key] = options[\n                            value.slice(1) || (prefix ? prefix +\n                                key.charAt(0).toUpperCase() + key.slice(1) : key)\n                        ];\n                    } else {\n                        settings[key] = value;\n                    }\n\n                });\n                processQueue.push(settings);\n            });\n            options.processQueue = processQueue;\n        },\n\n        // Returns the number of files currently in the processsing queue:\n        processing: function () {\n            return this._processing;\n        },\n\n        // Processes the files given as files property of the data parameter,\n        // returns a Promise object that allows to bind callbacks:\n        process: function (data) {\n            var that = this,\n                options = $.extend({}, this.options, data);\n            if (options.processQueue && options.processQueue.length) {\n                this._transformProcessQueue(options);\n                if (this._processing === 0) {\n                    this._trigger('processstart');\n                }\n                $.each(data.files, function (index) {\n                    var opts = index ? $.extend({}, options) : options,\n                        func = function () {\n                            if (data.errorThrown) {\n                                return $.Deferred()\n                                        .rejectWith(that, [data]).promise();\n                            }\n                            return that._processFile(opts, data);\n                        };\n                    opts.index = index;\n                    that._processing += 1;\n                    that._processingQueue = that._processingQueue.pipe(func, func)\n                        .always(function () {\n                            that._processing -= 1;\n                            if (that._processing === 0) {\n                                that._trigger('processstop');\n                            }\n                        });\n                });\n            }\n            return this._processingQueue;\n        },\n\n        _create: function () {\n            this._super();\n            this._processing = 0;\n            this._processingQueue = $.Deferred().resolveWith(this)\n                .promise();\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-ui.js",
    "content": "/*\n * jQuery File Upload User Interface Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'tmpl',\n            './jquery.fileupload-image',\n            './jquery.fileupload-audio',\n            './jquery.fileupload-video',\n            './jquery.fileupload-validate'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('tmpl')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.tmpl\n        );\n    }\n}(function ($, tmpl) {\n    'use strict';\n\n    $.blueimp.fileupload.prototype._specialOptions.push(\n        'filesContainer',\n        'uploadTemplateId',\n        'downloadTemplateId'\n    );\n\n    // The UI version extends the file upload widget\n    // and adds complete user interface interaction:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // By default, files added to the widget are uploaded as soon\n            // as the user clicks on the start buttons. To enable automatic\n            // uploads, set the following option to true:\n            autoUpload: false,\n            // The ID of the upload template:\n            uploadTemplateId: 'template-upload',\n            // The ID of the download template:\n            downloadTemplateId: 'template-download',\n            // The container for the list of files. If undefined, it is set to\n            // an element with class \"files\" inside of the widget element:\n            filesContainer: undefined,\n            // By default, files are appended to the files container.\n            // Set the following option to true, to prepend files instead:\n            prependFiles: false,\n            // The expected data type of the upload response, sets the dataType\n            // option of the $.ajax upload requests:\n            dataType: 'json',\n\n            // Error and info messages:\n            messages: {\n                unknownError: 'Unknown error'\n            },\n\n            // Function returning the current number of files,\n            // used by the maxNumberOfFiles validation:\n            getNumberOfFiles: function () {\n                return this.filesContainer.children()\n                    .not('.processing').length;\n            },\n\n            // Callback to retrieve the list of files from the server response:\n            getFilesFromResponse: function (data) {\n                if (data.result && $.isArray(data.result.files)) {\n                    return data.result.files;\n                }\n                return [];\n            },\n\n            // The add callback is invoked as soon as files are added to the fileupload\n            // widget (via file input selection, drag & drop or add API call).\n            // See the basic file upload widget for more information:\n            add: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var $this = $(this),\n                    that = $this.data('blueimp-fileupload') ||\n                        $this.data('fileupload'),\n                    options = that.options;\n                data.context = that._renderUpload(data.files)\n                    .data('data', data)\n                    .addClass('processing');\n                options.filesContainer[\n                    options.prependFiles ? 'prepend' : 'append'\n                ](data.context);\n                that._forceReflow(data.context);\n                that._transition(data.context);\n                data.process(function () {\n                    return $this.fileupload('process', data);\n                }).always(function () {\n                    data.context.each(function (index) {\n                        $(this).find('.size').text(\n                            that._formatFileSize(data.files[index].size)\n                        );\n                    }).removeClass('processing');\n                    that._renderPreviews(data);\n                }).done(function () {\n                    data.context.find('.start').prop('disabled', false);\n                    if ((that._trigger('added', e, data) !== false) &&\n                            (options.autoUpload || data.autoUpload) &&\n                            data.autoUpload !== false) {\n                        data.submit();\n                    }\n                }).fail(function () {\n                    if (data.files.error) {\n                        data.context.each(function (index) {\n                            var error = data.files[index].error;\n                            if (error) {\n                                $(this).find('.error').text(error);\n                            }\n                        });\n                    }\n                });\n            },\n            // Callback for the start of each file upload request:\n            send: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload');\n                if (data.context && data.dataType &&\n                        data.dataType.substr(0, 6) === 'iframe') {\n                    // Iframe Transport does not support progress events.\n                    // In lack of an indeterminate progress bar, we set\n                    // the progress to 100%, showing the full animated bar:\n                    data.context\n                        .find('.progress').addClass(\n                            !$.support.transition && 'progress-animated'\n                        )\n                        .attr('aria-valuenow', 100)\n                        .children().first().css(\n                            'width',\n                            '100%'\n                        );\n                }\n                return that._trigger('sent', e, data);\n            },\n            // Callback for successful uploads:\n            done: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    getFilesFromResponse = data.getFilesFromResponse ||\n                        that.options.getFilesFromResponse,\n                    files = getFilesFromResponse(data),\n                    template,\n                    deferred;\n                if (data.context) {\n                    data.context.each(function (index) {\n                        var file = files[index] ||\n                                {error: 'Empty file upload result'};\n                        deferred = that._addFinishedDeferreds();\n                        that._transition($(this)).done(\n                            function () {\n                                var node = $(this);\n                                template = that._renderDownload([file])\n                                    .replaceAll(node);\n                                that._forceReflow(template);\n                                that._transition(template).done(\n                                    function () {\n                                        data.context = $(this);\n                                        that._trigger('completed', e, data);\n                                        that._trigger('finished', e, data);\n                                        deferred.resolve();\n                                    }\n                                );\n                            }\n                        );\n                    });\n                } else {\n                    template = that._renderDownload(files)[\n                        that.options.prependFiles ? 'prependTo' : 'appendTo'\n                    ](that.options.filesContainer);\n                    that._forceReflow(template);\n                    deferred = that._addFinishedDeferreds();\n                    that._transition(template).done(\n                        function () {\n                            data.context = $(this);\n                            that._trigger('completed', e, data);\n                            that._trigger('finished', e, data);\n                            deferred.resolve();\n                        }\n                    );\n                }\n            },\n            // Callback for failed (abort or error) uploads:\n            fail: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    template,\n                    deferred;\n                if (data.context) {\n                    data.context.each(function (index) {\n                        if (data.errorThrown !== 'abort') {\n                            var file = data.files[index];\n                            file.error = file.error || data.errorThrown ||\n                                data.i18n('unknownError');\n                            deferred = that._addFinishedDeferreds();\n                            that._transition($(this)).done(\n                                function () {\n                                    var node = $(this);\n                                    template = that._renderDownload([file])\n                                        .replaceAll(node);\n                                    that._forceReflow(template);\n                                    that._transition(template).done(\n                                        function () {\n                                            data.context = $(this);\n                                            that._trigger('failed', e, data);\n                                            that._trigger('finished', e, data);\n                                            deferred.resolve();\n                                        }\n                                    );\n                                }\n                            );\n                        } else {\n                            deferred = that._addFinishedDeferreds();\n                            that._transition($(this)).done(\n                                function () {\n                                    $(this).remove();\n                                    that._trigger('failed', e, data);\n                                    that._trigger('finished', e, data);\n                                    deferred.resolve();\n                                }\n                            );\n                        }\n                    });\n                } else if (data.errorThrown !== 'abort') {\n                    data.context = that._renderUpload(data.files)[\n                        that.options.prependFiles ? 'prependTo' : 'appendTo'\n                    ](that.options.filesContainer)\n                        .data('data', data);\n                    that._forceReflow(data.context);\n                    deferred = that._addFinishedDeferreds();\n                    that._transition(data.context).done(\n                        function () {\n                            data.context = $(this);\n                            that._trigger('failed', e, data);\n                            that._trigger('finished', e, data);\n                            deferred.resolve();\n                        }\n                    );\n                } else {\n                    that._trigger('failed', e, data);\n                    that._trigger('finished', e, data);\n                    that._addFinishedDeferreds().resolve();\n                }\n            },\n            // Callback for upload progress events:\n            progress: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var progress = Math.floor(data.loaded / data.total * 100);\n                if (data.context) {\n                    data.context.each(function () {\n                        $(this).find('.progress')\n                            .attr('aria-valuenow', progress)\n                            .children().first().css(\n                                'width',\n                                progress + '%'\n                            );\n                    });\n                }\n            },\n            // Callback for global upload progress events:\n            progressall: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var $this = $(this),\n                    progress = Math.floor(data.loaded / data.total * 100),\n                    globalProgressNode = $this.find('.fileupload-progress'),\n                    extendedProgressNode = globalProgressNode\n                        .find('.progress-extended');\n                if (extendedProgressNode.length) {\n                    extendedProgressNode.html(\n                        ($this.data('blueimp-fileupload') || $this.data('fileupload'))\n                            ._renderExtendedProgress(data)\n                    );\n                }\n                globalProgressNode\n                    .find('.progress')\n                    .attr('aria-valuenow', progress)\n                    .children().first().css(\n                        'width',\n                        progress + '%'\n                    );\n            },\n            // Callback for uploads start, equivalent to the global ajaxStart event:\n            start: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload');\n                that._resetFinishedDeferreds();\n                that._transition($(this).find('.fileupload-progress')).done(\n                    function () {\n                        that._trigger('started', e);\n                    }\n                );\n            },\n            // Callback for uploads stop, equivalent to the global ajaxStop event:\n            stop: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    deferred = that._addFinishedDeferreds();\n                $.when.apply($, that._getFinishedDeferreds())\n                    .done(function () {\n                        that._trigger('stopped', e);\n                    });\n                that._transition($(this).find('.fileupload-progress')).done(\n                    function () {\n                        $(this).find('.progress')\n                            .attr('aria-valuenow', '0')\n                            .children().first().css('width', '0%');\n                        $(this).find('.progress-extended').html('&nbsp;');\n                        deferred.resolve();\n                    }\n                );\n            },\n            processstart: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                $(this).addClass('fileupload-processing');\n            },\n            processstop: function (e) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                $(this).removeClass('fileupload-processing');\n            },\n            // Callback for file deletion:\n            destroy: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                var that = $(this).data('blueimp-fileupload') ||\n                        $(this).data('fileupload'),\n                    removeNode = function () {\n                        that._transition(data.context).done(\n                            function () {\n                                $(this).remove();\n                                that._trigger('destroyed', e, data);\n                            }\n                        );\n                    };\n                if (data.url) {\n                    data.dataType = data.dataType || that.options.dataType;\n                    $.ajax(data).done(removeNode).fail(function () {\n                        that._trigger('destroyfailed', e, data);\n                    });\n                } else {\n                    removeNode();\n                }\n            }\n        },\n\n        _resetFinishedDeferreds: function () {\n            this._finishedUploads = [];\n        },\n\n        _addFinishedDeferreds: function (deferred) {\n            if (!deferred) {\n                deferred = $.Deferred();\n            }\n            this._finishedUploads.push(deferred);\n            return deferred;\n        },\n\n        _getFinishedDeferreds: function () {\n            return this._finishedUploads;\n        },\n\n        // Link handler, that allows to download files\n        // by drag & drop of the links to the desktop:\n        _enableDragToDesktop: function () {\n            var link = $(this),\n                url = link.prop('href'),\n                name = link.prop('download'),\n                type = 'application/octet-stream';\n            link.bind('dragstart', function (e) {\n                try {\n                    e.originalEvent.dataTransfer.setData(\n                        'DownloadURL',\n                        [type, name, url].join(':')\n                    );\n                } catch (ignore) {}\n            });\n        },\n\n        _formatFileSize: function (bytes) {\n            if (typeof bytes !== 'number') {\n                return '';\n            }\n            if (bytes >= 1000000000) {\n                return (bytes / 1000000000).toFixed(2) + ' GB';\n            }\n            if (bytes >= 1000000) {\n                return (bytes / 1000000).toFixed(2) + ' MB';\n            }\n            return (bytes / 1000).toFixed(2) + ' KB';\n        },\n\n        _formatBitrate: function (bits) {\n            if (typeof bits !== 'number') {\n                return '';\n            }\n            if (bits >= 1000000000) {\n                return (bits / 1000000000).toFixed(2) + ' Gbit/s';\n            }\n            if (bits >= 1000000) {\n                return (bits / 1000000).toFixed(2) + ' Mbit/s';\n            }\n            if (bits >= 1000) {\n                return (bits / 1000).toFixed(2) + ' kbit/s';\n            }\n            return bits.toFixed(2) + ' bit/s';\n        },\n\n        _formatTime: function (seconds) {\n            var date = new Date(seconds * 1000),\n                days = Math.floor(seconds / 86400);\n            days = days ? days + 'd ' : '';\n            return days +\n                ('0' + date.getUTCHours()).slice(-2) + ':' +\n                ('0' + date.getUTCMinutes()).slice(-2) + ':' +\n                ('0' + date.getUTCSeconds()).slice(-2);\n        },\n\n        _formatPercentage: function (floatValue) {\n            return (floatValue * 100).toFixed(2) + ' %';\n        },\n\n        _renderExtendedProgress: function (data) {\n            return this._formatBitrate(data.bitrate) + ' | ' +\n                this._formatTime(\n                    (data.total - data.loaded) * 8 / data.bitrate\n                ) + ' | ' +\n                this._formatPercentage(\n                    data.loaded / data.total\n                ) + ' | ' +\n                this._formatFileSize(data.loaded) + ' / ' +\n                this._formatFileSize(data.total);\n        },\n\n        _renderTemplate: function (func, files) {\n            if (!func) {\n                return $();\n            }\n            var result = func({\n                files: files,\n                formatFileSize: this._formatFileSize,\n                options: this.options\n            });\n            if (result instanceof $) {\n                return result;\n            }\n            return $(this.options.templatesContainer).html(result).children();\n        },\n\n        _renderPreviews: function (data) {\n            data.context.find('.preview').each(function (index, elm) {\n                $(elm).append(data.files[index].preview);\n            });\n        },\n\n        _renderUpload: function (files) {\n            return this._renderTemplate(\n                this.options.uploadTemplate,\n                files\n            );\n        },\n\n        _renderDownload: function (files) {\n            return this._renderTemplate(\n                this.options.downloadTemplate,\n                files\n            ).find('a[download]').each(this._enableDragToDesktop).end();\n        },\n\n        _startHandler: function (e) {\n            e.preventDefault();\n            var button = $(e.currentTarget),\n                template = button.closest('.template-upload'),\n                data = template.data('data');\n            button.prop('disabled', true);\n            if (data && data.submit) {\n                data.submit();\n            }\n        },\n\n        _cancelHandler: function (e) {\n            e.preventDefault();\n            var template = $(e.currentTarget)\n                    .closest('.template-upload,.template-download'),\n                data = template.data('data') || {};\n            data.context = data.context || template;\n            if (data.abort) {\n                data.abort();\n            } else {\n                data.errorThrown = 'abort';\n                this._trigger('fail', e, data);\n            }\n        },\n\n        _deleteHandler: function (e) {\n            e.preventDefault();\n            var button = $(e.currentTarget);\n            this._trigger('destroy', e, $.extend({\n                context: button.closest('.template-download'),\n                type: 'DELETE'\n            }, button.data()));\n        },\n\n        _forceReflow: function (node) {\n            return $.support.transition && node.length &&\n                node[0].offsetWidth;\n        },\n\n        _transition: function (node) {\n            var dfd = $.Deferred();\n            if ($.support.transition && node.hasClass('fade') && node.is(':visible')) {\n                node.bind(\n                    $.support.transition.end,\n                    function (e) {\n                        // Make sure we don't respond to other transitions events\n                        // in the container element, e.g. from button elements:\n                        if (e.target === node[0]) {\n                            node.unbind($.support.transition.end);\n                            dfd.resolveWith(node);\n                        }\n                    }\n                ).toggleClass('in');\n            } else {\n                node.toggleClass('in');\n                dfd.resolveWith(node);\n            }\n            return dfd;\n        },\n\n        _initButtonBarEventHandlers: function () {\n            var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),\n                filesList = this.options.filesContainer;\n            this._on(fileUploadButtonBar.find('.start'), {\n                click: function (e) {\n                    e.preventDefault();\n                    filesList.find('.start').click();\n                }\n            });\n            this._on(fileUploadButtonBar.find('.cancel'), {\n                click: function (e) {\n                    e.preventDefault();\n                    filesList.find('.cancel').click();\n                }\n            });\n            this._on(fileUploadButtonBar.find('.delete'), {\n                click: function (e) {\n                    e.preventDefault();\n                    filesList.find('.toggle:checked')\n                        .closest('.template-download')\n                        .find('.delete').click();\n                    fileUploadButtonBar.find('.toggle')\n                        .prop('checked', false);\n                }\n            });\n            this._on(fileUploadButtonBar.find('.toggle'), {\n                change: function (e) {\n                    filesList.find('.toggle').prop(\n                        'checked',\n                        $(e.currentTarget).is(':checked')\n                    );\n                }\n            });\n        },\n\n        _destroyButtonBarEventHandlers: function () {\n            this._off(\n                this.element.find('.fileupload-buttonbar')\n                    .find('.start, .cancel, .delete'),\n                'click'\n            );\n            this._off(\n                this.element.find('.fileupload-buttonbar .toggle'),\n                'change.'\n            );\n        },\n\n        _initEventHandlers: function () {\n            this._super();\n            this._on(this.options.filesContainer, {\n                'click .start': this._startHandler,\n                'click .cancel': this._cancelHandler,\n                'click .delete': this._deleteHandler\n            });\n            this._initButtonBarEventHandlers();\n        },\n\n        _destroyEventHandlers: function () {\n            this._destroyButtonBarEventHandlers();\n            this._off(this.options.filesContainer, 'click');\n            this._super();\n        },\n\n        _enableFileInputButton: function () {\n            this.element.find('.fileinput-button input')\n                .prop('disabled', false)\n                .parent().removeClass('disabled');\n        },\n\n        _disableFileInputButton: function () {\n            this.element.find('.fileinput-button input')\n                .prop('disabled', true)\n                .parent().addClass('disabled');\n        },\n\n        _initTemplates: function () {\n            var options = this.options;\n            options.templatesContainer = this.document[0].createElement(\n                options.filesContainer.prop('nodeName')\n            );\n            if (tmpl) {\n                if (options.uploadTemplateId) {\n                    options.uploadTemplate = tmpl(options.uploadTemplateId);\n                }\n                if (options.downloadTemplateId) {\n                    options.downloadTemplate = tmpl(options.downloadTemplateId);\n                }\n            }\n        },\n\n        _initFilesContainer: function () {\n            var options = this.options;\n            if (options.filesContainer === undefined) {\n                options.filesContainer = this.element.find('.files');\n            } else if (!(options.filesContainer instanceof $)) {\n                options.filesContainer = $(options.filesContainer);\n            }\n        },\n\n        _initSpecialOptions: function () {\n            this._super();\n            this._initFilesContainer();\n            this._initTemplates();\n        },\n\n        _create: function () {\n            this._super();\n            this._resetFinishedDeferreds();\n            if (!$.support.fileInput) {\n                this._disableFileInputButton();\n            }\n        },\n\n        enable: function () {\n            var wasDisabled = false;\n            if (this.options.disabled) {\n                wasDisabled = true;\n            }\n            this._super();\n            if (wasDisabled) {\n                this.element.find('input, button').prop('disabled', false);\n                this._enableFileInputButton();\n            }\n        },\n\n        disable: function () {\n            if (!this.options.disabled) {\n                this.element.find('input, button').prop('disabled', true);\n                this._disableFileInputButton();\n            }\n            this._super();\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-validate.js",
    "content": "/*\n * jQuery File Upload Validation Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define, require, window */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery\n        );\n    }\n}(function ($) {\n    'use strict';\n\n    // Append to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.push(\n        {\n            action: 'validate',\n            // Always trigger this action,\n            // even if the previous action was rejected:\n            always: true,\n            // Options taken from the global options map:\n            acceptFileTypes: '@',\n            maxFileSize: '@',\n            minFileSize: '@',\n            maxNumberOfFiles: '@',\n            disabled: '@disableValidation'\n        }\n    );\n\n    // The File Upload Validation plugin extends the fileupload widget\n    // with file validation functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            /*\n            // The regular expression for allowed file types, matches\n            // against either file type or file name:\n            acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i,\n            // The maximum allowed file size in bytes:\n            maxFileSize: 10000000, // 10 MB\n            // The minimum allowed file size in bytes:\n            minFileSize: undefined, // No minimal file size\n            // The limit of files to be uploaded:\n            maxNumberOfFiles: 10,\n            */\n\n            // Function returning the current number of files,\n            // has to be overriden for maxNumberOfFiles validation:\n            getNumberOfFiles: $.noop,\n\n            // Error and info messages:\n            messages: {\n                maxNumberOfFiles: 'Maximum number of files exceeded',\n                acceptFileTypes: 'File type not allowed',\n                maxFileSize: 'File is too large',\n                minFileSize: 'File is too small'\n            }\n        },\n\n        processActions: {\n\n            validate: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var dfd = $.Deferred(),\n                    settings = this.options,\n                    file = data.files[data.index],\n                    fileSize;\n                if (options.minFileSize || options.maxFileSize) {\n                    fileSize = file.size;\n                }\n                if ($.type(options.maxNumberOfFiles) === 'number' &&\n                        (settings.getNumberOfFiles() || 0) + data.files.length >\n                            options.maxNumberOfFiles) {\n                    file.error = settings.i18n('maxNumberOfFiles');\n                } else if (options.acceptFileTypes &&\n                        !(options.acceptFileTypes.test(file.type) ||\n                        options.acceptFileTypes.test(file.name))) {\n                    file.error = settings.i18n('acceptFileTypes');\n                } else if (fileSize > options.maxFileSize) {\n                    file.error = settings.i18n('maxFileSize');\n                } else if ($.type(fileSize) === 'number' &&\n                        fileSize < options.minFileSize) {\n                    file.error = settings.i18n('minFileSize');\n                } else {\n                    delete file.error;\n                }\n                if (file.error || data.files.error) {\n                    data.files.error = true;\n                    dfd.rejectWith(this, [data]);\n                } else {\n                    dfd.resolveWith(this, [data]);\n                }\n                return dfd.promise();\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload-video.js",
    "content": "/*\n * jQuery File Upload Video Preview Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'load-image',\n            './jquery.fileupload-process'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('load-image')\n        );\n    } else {\n        // Browser globals:\n        factory(\n            window.jQuery,\n            window.loadImage\n        );\n    }\n}(function ($, loadImage) {\n    'use strict';\n\n    // Prepend to the default processQueue:\n    $.blueimp.fileupload.prototype.options.processQueue.unshift(\n        {\n            action: 'loadVideo',\n            // Use the action as prefix for the \"@\" options:\n            prefix: true,\n            fileTypes: '@',\n            maxFileSize: '@',\n            disabled: '@disableVideoPreview'\n        },\n        {\n            action: 'setVideo',\n            name: '@videoPreviewName',\n            disabled: '@disableVideoPreview'\n        }\n    );\n\n    // The File Upload Video Preview plugin extends the fileupload widget\n    // with video preview functionality:\n    $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n\n        options: {\n            // The regular expression for the types of video files to load,\n            // matched against the file type:\n            loadVideoFileTypes: /^video\\/.*$/\n        },\n\n        _videoElement: document.createElement('video'),\n\n        processActions: {\n\n            // Loads the video file given via data.files and data.index\n            // as video element if the browser supports playing it.\n            // Accepts the options fileTypes (regular expression)\n            // and maxFileSize (integer) to limit the files to load:\n            loadVideo: function (data, options) {\n                if (options.disabled) {\n                    return data;\n                }\n                var file = data.files[data.index],\n                    url,\n                    video;\n                if (this._videoElement.canPlayType &&\n                        this._videoElement.canPlayType(file.type) &&\n                        ($.type(options.maxFileSize) !== 'number' ||\n                            file.size <= options.maxFileSize) &&\n                        (!options.fileTypes ||\n                            options.fileTypes.test(file.type))) {\n                    url = loadImage.createObjectURL(file);\n                    if (url) {\n                        video = this._videoElement.cloneNode(false);\n                        video.src = url;\n                        video.controls = true;\n                        data.video = video;\n                        return data;\n                    }\n                }\n                return data;\n            },\n\n            // Sets the video element as a property of the file object:\n            setVideo: function (data, options) {\n                if (data.video && !options.disabled) {\n                    data.files[data.index][options.name || 'preview'] = data.video;\n                }\n                return data;\n            }\n\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.fileupload.js",
    "content": "/*\n * jQuery File Upload Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document, location, Blob, FormData */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define([\n            'jquery',\n            'jquery.ui.widget'\n        ], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(\n            require('jquery'),\n            require('./vendor/jquery.ui.widget')\n        );\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // Detect file input support, based on\n    // http://viljamis.com/blog/2012/file-upload-support-on-mobile/\n    $.support.fileInput = !(new RegExp(\n        // Handle devices which give false positives for the feature detection:\n        '(Android (1\\\\.[0156]|2\\\\.[01]))' +\n            '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\n            '|(w(eb)?OSBrowser)|(webOS)' +\n            '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))'\n    ).test(window.navigator.userAgent) ||\n        // Feature detection for all other devices:\n        $('<input type=\"file\">').prop('disabled'));\n\n    // The FileReader API is not actually used, but works as feature detection,\n    // as some Safari versions (5?) support XHR file uploads via the FormData API,\n    // but not non-multipart XHR file uploads.\n    // window.XMLHttpRequestUpload is not available on IE10, so we check for\n    // window.ProgressEvent instead to detect XHR2 file upload capability:\n    $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\n    $.support.xhrFormDataFileUpload = !!window.FormData;\n\n    // Detect support for Blob slicing (required for chunked uploads):\n    $.support.blobSlice = window.Blob && (Blob.prototype.slice ||\n        Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n\n    // Helper function to create drag handlers for dragover/dragenter/dragleave:\n    function getDragHandler(type) {\n        var isDragOver = type === 'dragover';\n        return function (e) {\n            e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n            var dataTransfer = e.dataTransfer;\n            if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&\n                    this._trigger(\n                        type,\n                        $.Event(type, {delegatedEvent: e})\n                    ) !== false) {\n                e.preventDefault();\n                if (isDragOver) {\n                    dataTransfer.dropEffect = 'copy';\n                }\n            }\n        };\n    }\n\n    // The fileupload widget listens for change events on file input fields defined\n    // via fileInput setting and paste or drop events of the given dropZone.\n    // In addition to the default jQuery Widget methods, the fileupload widget\n    // exposes the \"add\" and \"send\" methods, to add or directly send files using\n    // the fileupload API.\n    // By default, files added via file input selection, paste, drag & drop or\n    // \"add\" method are uploaded immediately, but it is possible to override\n    // the \"add\" callback option to queue file uploads.\n    $.widget('blueimp.fileupload', {\n\n        options: {\n            // The drop target element(s), by the default the complete document.\n            // Set to null to disable drag & drop support:\n            dropZone: $(document),\n            // The paste target element(s), by the default undefined.\n            // Set to a DOM node or jQuery object to enable file pasting:\n            pasteZone: undefined,\n            // The file input field(s), that are listened to for change events.\n            // If undefined, it is set to the file input fields inside\n            // of the widget element on plugin initialization.\n            // Set to null to disable the change listener.\n            fileInput: undefined,\n            // By default, the file input field is replaced with a clone after\n            // each input field change event. This is required for iframe transport\n            // queues and allows change events to be fired for the same file\n            // selection, but can be disabled by setting the following option to false:\n            replaceFileInput: true,\n            // The parameter name for the file form data (the request argument name).\n            // If undefined or empty, the name property of the file input field is\n            // used, or \"files[]\" if the file input name property is also empty,\n            // can be a string or an array of strings:\n            paramName: undefined,\n            // By default, each file of a selection is uploaded using an individual\n            // request for XHR type uploads. Set to false to upload file\n            // selections in one request each:\n            singleFileUploads: true,\n            // To limit the number of files uploaded with one XHR request,\n            // set the following option to an integer greater than 0:\n            limitMultiFileUploads: undefined,\n            // The following option limits the number of files uploaded with one\n            // XHR request to keep the request size under or equal to the defined\n            // limit in bytes:\n            limitMultiFileUploadSize: undefined,\n            // Multipart file uploads add a number of bytes to each uploaded file,\n            // therefore the following option adds an overhead for each file used\n            // in the limitMultiFileUploadSize configuration:\n            limitMultiFileUploadSizeOverhead: 512,\n            // Set the following option to true to issue all file upload requests\n            // in a sequential order:\n            sequentialUploads: false,\n            // To limit the number of concurrent uploads,\n            // set the following option to an integer greater than 0:\n            limitConcurrentUploads: undefined,\n            // Set the following option to true to force iframe transport uploads:\n            forceIframeTransport: false,\n            // Set the following option to the location of a redirect url on the\n            // origin server, for cross-domain iframe transport uploads:\n            redirect: undefined,\n            // The parameter name for the redirect url, sent as part of the form\n            // data and set to 'redirect' if this option is empty:\n            redirectParamName: undefined,\n            // Set the following option to the location of a postMessage window,\n            // to enable postMessage transport uploads:\n            postMessage: undefined,\n            // By default, XHR file uploads are sent as multipart/form-data.\n            // The iframe transport is always using multipart/form-data.\n            // Set to false to enable non-multipart XHR uploads:\n            multipart: true,\n            // To upload large files in smaller chunks, set the following option\n            // to a preferred maximum chunk size. If set to 0, null or undefined,\n            // or the browser does not support the required Blob API, files will\n            // be uploaded as a whole.\n            maxChunkSize: undefined,\n            // When a non-multipart upload or a chunked multipart upload has been\n            // aborted, this option can be used to resume the upload by setting\n            // it to the size of the already uploaded bytes. This option is most\n            // useful when modifying the options object inside of the \"add\" or\n            // \"send\" callbacks, as the options are cloned for each file upload.\n            uploadedBytes: undefined,\n            // By default, failed (abort or error) file uploads are removed from the\n            // global progress calculation. Set the following option to false to\n            // prevent recalculating the global progress data:\n            recalculateProgress: true,\n            // Interval in milliseconds to calculate and trigger progress events:\n            progressInterval: 100,\n            // Interval in milliseconds to calculate progress bitrate:\n            bitrateInterval: 500,\n            // By default, uploads are started automatically when adding files:\n            autoUpload: true,\n\n            // Error and info messages:\n            messages: {\n                uploadedBytes: 'Uploaded bytes exceed file size'\n            },\n\n            // Translation function, gets the message key to be translated\n            // and an object with context specific data as arguments:\n            i18n: function (message, context) {\n                message = this.messages[message] || message.toString();\n                if (context) {\n                    $.each(context, function (key, value) {\n                        message = message.replace('{' + key + '}', value);\n                    });\n                }\n                return message;\n            },\n\n            // Additional form data to be sent along with the file uploads can be set\n            // using this option, which accepts an array of objects with name and\n            // value properties, a function returning such an array, a FormData\n            // object (for XHR file uploads), or a simple object.\n            // The form of the first fileInput is given as parameter to the function:\n            formData: function (form) {\n                return form.serializeArray();\n            },\n\n            // The add callback is invoked as soon as files are added to the fileupload\n            // widget (via file input selection, drag & drop, paste or add API call).\n            // If the singleFileUploads option is enabled, this callback will be\n            // called once for each file in the selection for XHR file uploads, else\n            // once for each file selection.\n            //\n            // The upload starts when the submit method is invoked on the data parameter.\n            // The data object contains a files property holding the added files\n            // and allows you to override plugin options as well as define ajax settings.\n            //\n            // Listeners for this callback can also be bound the following way:\n            // .bind('fileuploadadd', func);\n            //\n            // data.submit() returns a Promise object and allows to attach additional\n            // handlers using jQuery's Deferred callbacks:\n            // data.submit().done(func).fail(func).always(func);\n            add: function (e, data) {\n                if (e.isDefaultPrevented()) {\n                    return false;\n                }\n                if (data.autoUpload || (data.autoUpload !== false &&\n                        $(this).fileupload('option', 'autoUpload'))) {\n                    data.process().done(function () {\n                        data.submit();\n                    });\n                }\n            },\n\n            // Other callbacks:\n\n            // Callback for the submit event of each file upload:\n            // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n            // Callback for the start of each file upload request:\n            // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n            // Callback for successful uploads:\n            // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n            // Callback for failed (abort or error) uploads:\n            // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n            // Callback for completed (success, abort or error) requests:\n            // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n            // Callback for upload progress events:\n            // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n            // Callback for global upload progress events:\n            // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n            // Callback for uploads start, equivalent to the global ajaxStart event:\n            // start: function (e) {}, // .bind('fileuploadstart', func);\n\n            // Callback for uploads stop, equivalent to the global ajaxStop event:\n            // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n            // Callback for change events of the fileInput(s):\n            // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n            // Callback for paste events to the pasteZone(s):\n            // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n            // Callback for drop events of the dropZone(s):\n            // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n            // Callback for dragover events of the dropZone(s):\n            // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n            // Callback for the start of each chunk upload request:\n            // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n            // Callback for successful chunk uploads:\n            // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n            // Callback for failed (abort or error) chunk uploads:\n            // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n            // Callback for completed (success, abort or error) chunk upload requests:\n            // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n            // The plugin options are used as settings object for the ajax calls.\n            // The following are jQuery ajax settings required for the file uploads:\n            processData: false,\n            contentType: false,\n            cache: false,\n            timeout: 0\n        },\n\n        // A list of options that require reinitializing event listeners and/or\n        // special initialization code:\n        _specialOptions: [\n            'fileInput',\n            'dropZone',\n            'pasteZone',\n            'multipart',\n            'forceIframeTransport'\n        ],\n\n        _blobSlice: $.support.blobSlice && function () {\n            var slice = this.slice || this.webkitSlice || this.mozSlice;\n            return slice.apply(this, arguments);\n        },\n\n        _BitrateTimer: function () {\n            this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n            this.loaded = 0;\n            this.bitrate = 0;\n            this.getBitrate = function (now, loaded, interval) {\n                var timeDiff = now - this.timestamp;\n                if (!this.bitrate || !interval || timeDiff > interval) {\n                    this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n                    this.loaded = loaded;\n                    this.timestamp = now;\n                }\n                return this.bitrate;\n            };\n        },\n\n        _isXHRUpload: function (options) {\n            return !options.forceIframeTransport &&\n                ((!options.multipart && $.support.xhrFileUpload) ||\n                $.support.xhrFormDataFileUpload);\n        },\n\n        _getFormData: function (options) {\n            var formData;\n            if ($.type(options.formData) === 'function') {\n                return options.formData(options.form);\n            }\n            if ($.isArray(options.formData)) {\n                return options.formData;\n            }\n            if ($.type(options.formData) === 'object') {\n                formData = [];\n                $.each(options.formData, function (name, value) {\n                    formData.push({name: name, value: value});\n                });\n                return formData;\n            }\n            return [];\n        },\n\n        _getTotal: function (files) {\n            var total = 0;\n            $.each(files, function (index, file) {\n                total += file.size || 1;\n            });\n            return total;\n        },\n\n        _initProgressObject: function (obj) {\n            var progress = {\n                loaded: 0,\n                total: 0,\n                bitrate: 0\n            };\n            if (obj._progress) {\n                $.extend(obj._progress, progress);\n            } else {\n                obj._progress = progress;\n            }\n        },\n\n        _initResponseObject: function (obj) {\n            var prop;\n            if (obj._response) {\n                for (prop in obj._response) {\n                    if (obj._response.hasOwnProperty(prop)) {\n                        delete obj._response[prop];\n                    }\n                }\n            } else {\n                obj._response = {};\n            }\n        },\n\n        _onProgress: function (e, data) {\n            if (e.lengthComputable) {\n                var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n                    loaded;\n                if (data._time && data.progressInterval &&\n                        (now - data._time < data.progressInterval) &&\n                        e.loaded !== e.total) {\n                    return;\n                }\n                data._time = now;\n                loaded = Math.floor(\n                    e.loaded / e.total * (data.chunkSize || data._progress.total)\n                ) + (data.uploadedBytes || 0);\n                // Add the difference from the previously loaded state\n                // to the global loaded counter:\n                this._progress.loaded += (loaded - data._progress.loaded);\n                this._progress.bitrate = this._bitrateTimer.getBitrate(\n                    now,\n                    this._progress.loaded,\n                    data.bitrateInterval\n                );\n                data._progress.loaded = data.loaded = loaded;\n                data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n                    now,\n                    loaded,\n                    data.bitrateInterval\n                );\n                // Trigger a custom progress event with a total data property set\n                // to the file size(s) of the current upload and a loaded data\n                // property calculated accordingly:\n                this._trigger(\n                    'progress',\n                    $.Event('progress', {delegatedEvent: e}),\n                    data\n                );\n                // Trigger a global progress event for all current file uploads,\n                // including ajax calls queued for sequential file uploads:\n                this._trigger(\n                    'progressall',\n                    $.Event('progressall', {delegatedEvent: e}),\n                    this._progress\n                );\n            }\n        },\n\n        _initProgressListener: function (options) {\n            var that = this,\n                xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n            // Accesss to the native XHR object is required to add event listeners\n            // for the upload progress event:\n            if (xhr.upload) {\n                $(xhr.upload).bind('progress', function (e) {\n                    var oe = e.originalEvent;\n                    // Make sure the progress event properties get copied over:\n                    e.lengthComputable = oe.lengthComputable;\n                    e.loaded = oe.loaded;\n                    e.total = oe.total;\n                    that._onProgress(e, options);\n                });\n                options.xhr = function () {\n                    return xhr;\n                };\n            }\n        },\n\n        _isInstanceOf: function (type, obj) {\n            // Cross-frame instanceof check\n            return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n        },\n\n        _initXHRData: function (options) {\n            var that = this,\n                formData,\n                file = options.files[0],\n                // Ignore non-multipart setting if not supported:\n                multipart = options.multipart || !$.support.xhrFileUpload,\n                paramName = $.type(options.paramName) === 'array' ?\n                    options.paramName[0] : options.paramName;\n            options.headers = $.extend({}, options.headers);\n            if (options.contentRange) {\n                options.headers['Content-Range'] = options.contentRange;\n            }\n            if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\n                options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n                    encodeURI(file.name) + '\"';\n            }\n            if (!multipart) {\n                options.contentType = file.type || 'application/octet-stream';\n                options.data = options.blob || file;\n            } else if ($.support.xhrFormDataFileUpload) {\n                if (options.postMessage) {\n                    // window.postMessage does not allow sending FormData\n                    // objects, so we just add the File/Blob objects to\n                    // the formData array and let the postMessage window\n                    // create the FormData object out of this array:\n                    formData = this._getFormData(options);\n                    if (options.blob) {\n                        formData.push({\n                            name: paramName,\n                            value: options.blob\n                        });\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            formData.push({\n                                name: ($.type(options.paramName) === 'array' &&\n                                    options.paramName[index]) || paramName,\n                                value: file\n                            });\n                        });\n                    }\n                } else {\n                    if (that._isInstanceOf('FormData', options.formData)) {\n                        formData = options.formData;\n                    } else {\n                        formData = new FormData();\n                        $.each(this._getFormData(options), function (index, field) {\n                            formData.append(field.name, field.value);\n                        });\n                    }\n                    if (options.blob) {\n                        formData.append(paramName, options.blob, file.name);\n                    } else {\n                        $.each(options.files, function (index, file) {\n                            // This check allows the tests to run with\n                            // dummy objects:\n                            if (that._isInstanceOf('File', file) ||\n                                    that._isInstanceOf('Blob', file)) {\n                                formData.append(\n                                    ($.type(options.paramName) === 'array' &&\n                                        options.paramName[index]) || paramName,\n                                    file,\n                                    file.uploadName || file.name\n                                );\n                            }\n                        });\n                    }\n                }\n                options.data = formData;\n            }\n            // Blob reference is not needed anymore, free memory:\n            options.blob = null;\n        },\n\n        _initIframeSettings: function (options) {\n            var targetHost = $('<a></a>').prop('href', options.url).prop('host');\n            // Setting the dataType to iframe enables the iframe transport:\n            options.dataType = 'iframe ' + (options.dataType || '');\n            // The iframe transport accepts a serialized array as form data:\n            options.formData = this._getFormData(options);\n            // Add redirect url to form data on cross-domain uploads:\n            if (options.redirect && targetHost && targetHost !== location.host) {\n                options.formData.push({\n                    name: options.redirectParamName || 'redirect',\n                    value: options.redirect\n                });\n            }\n        },\n\n        _initDataSettings: function (options) {\n            if (this._isXHRUpload(options)) {\n                if (!this._chunkedUpload(options, true)) {\n                    if (!options.data) {\n                        this._initXHRData(options);\n                    }\n                    this._initProgressListener(options);\n                }\n                if (options.postMessage) {\n                    // Setting the dataType to postmessage enables the\n                    // postMessage transport:\n                    options.dataType = 'postmessage ' + (options.dataType || '');\n                }\n            } else {\n                this._initIframeSettings(options);\n            }\n        },\n\n        _getParamName: function (options) {\n            var fileInput = $(options.fileInput),\n                paramName = options.paramName;\n            if (!paramName) {\n                paramName = [];\n                fileInput.each(function () {\n                    var input = $(this),\n                        name = input.prop('name') || 'files[]',\n                        i = (input.prop('files') || [1]).length;\n                    while (i) {\n                        paramName.push(name);\n                        i -= 1;\n                    }\n                });\n                if (!paramName.length) {\n                    paramName = [fileInput.prop('name') || 'files[]'];\n                }\n            } else if (!$.isArray(paramName)) {\n                paramName = [paramName];\n            }\n            return paramName;\n        },\n\n        _initFormSettings: function (options) {\n            // Retrieve missing options from the input field and the\n            // associated form, if available:\n            if (!options.form || !options.form.length) {\n                options.form = $(options.fileInput.prop('form'));\n                // If the given file input doesn't have an associated form,\n                // use the default widget file input's form:\n                if (!options.form.length) {\n                    options.form = $(this.options.fileInput.prop('form'));\n                }\n            }\n            options.paramName = this._getParamName(options);\n            if (!options.url) {\n                options.url = options.form.prop('action') || location.href;\n            }\n            // The HTTP request method must be \"POST\" or \"PUT\":\n            options.type = (options.type ||\n                ($.type(options.form.prop('method')) === 'string' &&\n                    options.form.prop('method')) || ''\n                ).toUpperCase();\n            if (options.type !== 'POST' && options.type !== 'PUT' &&\n                    options.type !== 'PATCH') {\n                options.type = 'POST';\n            }\n            if (!options.formAcceptCharset) {\n                options.formAcceptCharset = options.form.attr('accept-charset');\n            }\n        },\n\n        _getAJAXSettings: function (data) {\n            var options = $.extend({}, this.options, data);\n            this._initFormSettings(options);\n            this._initDataSettings(options);\n            return options;\n        },\n\n        // jQuery 1.6 doesn't provide .state(),\n        // while jQuery 1.8+ removed .isRejected() and .isResolved():\n        _getDeferredState: function (deferred) {\n            if (deferred.state) {\n                return deferred.state();\n            }\n            if (deferred.isResolved()) {\n                return 'resolved';\n            }\n            if (deferred.isRejected()) {\n                return 'rejected';\n            }\n            return 'pending';\n        },\n\n        // Maps jqXHR callbacks to the equivalent\n        // methods of the given Promise object:\n        _enhancePromise: function (promise) {\n            promise.success = promise.done;\n            promise.error = promise.fail;\n            promise.complete = promise.always;\n            return promise;\n        },\n\n        // Creates and returns a Promise object enhanced with\n        // the jqXHR methods abort, success, error and complete:\n        _getXHRPromise: function (resolveOrReject, context, args) {\n            var dfd = $.Deferred(),\n                promise = dfd.promise();\n            context = context || this.options.context || promise;\n            if (resolveOrReject === true) {\n                dfd.resolveWith(context, args);\n            } else if (resolveOrReject === false) {\n                dfd.rejectWith(context, args);\n            }\n            promise.abort = dfd.promise;\n            return this._enhancePromise(promise);\n        },\n\n        // Adds convenience methods to the data callback argument:\n        _addConvenienceMethods: function (e, data) {\n            var that = this,\n                getPromise = function (args) {\n                    return $.Deferred().resolveWith(that, args).promise();\n                };\n            data.process = function (resolveFunc, rejectFunc) {\n                if (resolveFunc || rejectFunc) {\n                    data._processQueue = this._processQueue =\n                        (this._processQueue || getPromise([this])).pipe(\n                            function () {\n                                if (data.errorThrown) {\n                                    return $.Deferred()\n                                        .rejectWith(that, [data]).promise();\n                                }\n                                return getPromise(arguments);\n                            }\n                        ).pipe(resolveFunc, rejectFunc);\n                }\n                return this._processQueue || getPromise([this]);\n            };\n            data.submit = function () {\n                if (this.state() !== 'pending') {\n                    data.jqXHR = this.jqXHR =\n                        (that._trigger(\n                            'submit',\n                            $.Event('submit', {delegatedEvent: e}),\n                            this\n                        ) !== false) && that._onSend(e, this);\n                }\n                return this.jqXHR || that._getXHRPromise();\n            };\n            data.abort = function () {\n                if (this.jqXHR) {\n                    return this.jqXHR.abort();\n                }\n                this.errorThrown = 'abort';\n                that._trigger('fail', null, this);\n                return that._getXHRPromise(false);\n            };\n            data.state = function () {\n                if (this.jqXHR) {\n                    return that._getDeferredState(this.jqXHR);\n                }\n                if (this._processQueue) {\n                    return that._getDeferredState(this._processQueue);\n                }\n            };\n            data.processing = function () {\n                return !this.jqXHR && this._processQueue && that\n                    ._getDeferredState(this._processQueue) === 'pending';\n            };\n            data.progress = function () {\n                return this._progress;\n            };\n            data.response = function () {\n                return this._response;\n            };\n        },\n\n        // Parses the Range header from the server response\n        // and returns the uploaded bytes:\n        _getUploadedBytes: function (jqXHR) {\n            var range = jqXHR.getResponseHeader('Range'),\n                parts = range && range.split('-'),\n                upperBytesPos = parts && parts.length > 1 &&\n                    parseInt(parts[1], 10);\n            return upperBytesPos && upperBytesPos + 1;\n        },\n\n        // Uploads a file in multiple, sequential requests\n        // by splitting the file up in multiple blob chunks.\n        // If the second parameter is true, only tests if the file\n        // should be uploaded in chunks, but does not invoke any\n        // upload requests:\n        _chunkedUpload: function (options, testOnly) {\n            options.uploadedBytes = options.uploadedBytes || 0;\n            var that = this,\n                file = options.files[0],\n                fs = file.size,\n                ub = options.uploadedBytes,\n                mcs = options.maxChunkSize || fs,\n                slice = this._blobSlice,\n                dfd = $.Deferred(),\n                promise = dfd.promise(),\n                jqXHR,\n                upload;\n            if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n                    options.data) {\n                return false;\n            }\n            if (testOnly) {\n                return true;\n            }\n            if (ub >= fs) {\n                file.error = options.i18n('uploadedBytes');\n                return this._getXHRPromise(\n                    false,\n                    options.context,\n                    [null, 'error', file.error]\n                );\n            }\n            // The chunk upload method:\n            upload = function () {\n                // Clone the options object for each chunk upload:\n                var o = $.extend({}, options),\n                    currentLoaded = o._progress.loaded;\n                o.blob = slice.call(\n                    file,\n                    ub,\n                    ub + mcs,\n                    file.type\n                );\n                // Store the current chunk size, as the blob itself\n                // will be dereferenced after data processing:\n                o.chunkSize = o.blob.size;\n                // Expose the chunk bytes position range:\n                o.contentRange = 'bytes ' + ub + '-' +\n                    (ub + o.chunkSize - 1) + '/' + fs;\n                // Process the upload data (the blob and potential form data):\n                that._initXHRData(o);\n                // Add progress listeners for this chunk upload:\n                that._initProgressListener(o);\n                jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n                        that._getXHRPromise(false, o.context))\n                    .done(function (result, textStatus, jqXHR) {\n                        ub = that._getUploadedBytes(jqXHR) ||\n                            (ub + o.chunkSize);\n                        // Create a progress event if no final progress event\n                        // with loaded equaling total has been triggered\n                        // for this chunk:\n                        if (currentLoaded + o.chunkSize - o._progress.loaded) {\n                            that._onProgress($.Event('progress', {\n                                lengthComputable: true,\n                                loaded: ub - o.uploadedBytes,\n                                total: ub - o.uploadedBytes\n                            }), o);\n                        }\n                        options.uploadedBytes = o.uploadedBytes = ub;\n                        o.result = result;\n                        o.textStatus = textStatus;\n                        o.jqXHR = jqXHR;\n                        that._trigger('chunkdone', null, o);\n                        that._trigger('chunkalways', null, o);\n                        if (ub < fs) {\n                            // File upload not yet complete,\n                            // continue with the next chunk:\n                            upload();\n                        } else {\n                            dfd.resolveWith(\n                                o.context,\n                                [result, textStatus, jqXHR]\n                            );\n                        }\n                    })\n                    .fail(function (jqXHR, textStatus, errorThrown) {\n                        o.jqXHR = jqXHR;\n                        o.textStatus = textStatus;\n                        o.errorThrown = errorThrown;\n                        that._trigger('chunkfail', null, o);\n                        that._trigger('chunkalways', null, o);\n                        dfd.rejectWith(\n                            o.context,\n                            [jqXHR, textStatus, errorThrown]\n                        );\n                    });\n            };\n            this._enhancePromise(promise);\n            promise.abort = function () {\n                return jqXHR.abort();\n            };\n            upload();\n            return promise;\n        },\n\n        _beforeSend: function (e, data) {\n            if (this._active === 0) {\n                // the start callback is triggered when an upload starts\n                // and no other uploads are currently running,\n                // equivalent to the global ajaxStart event:\n                this._trigger('start');\n                // Set timer for global bitrate progress calculation:\n                this._bitrateTimer = new this._BitrateTimer();\n                // Reset the global progress values:\n                this._progress.loaded = this._progress.total = 0;\n                this._progress.bitrate = 0;\n            }\n            // Make sure the container objects for the .response() and\n            // .progress() methods on the data object are available\n            // and reset to their initial state:\n            this._initResponseObject(data);\n            this._initProgressObject(data);\n            data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n            data._progress.total = data.total = this._getTotal(data.files) || 1;\n            data._progress.bitrate = data.bitrate = 0;\n            this._active += 1;\n            // Initialize the global progress values:\n            this._progress.loaded += data.loaded;\n            this._progress.total += data.total;\n        },\n\n        _onDone: function (result, textStatus, jqXHR, options) {\n            var total = options._progress.total,\n                response = options._response;\n            if (options._progress.loaded < total) {\n                // Create a progress event if no final progress event\n                // with loaded equaling total has been triggered:\n                this._onProgress($.Event('progress', {\n                    lengthComputable: true,\n                    loaded: total,\n                    total: total\n                }), options);\n            }\n            response.result = options.result = result;\n            response.textStatus = options.textStatus = textStatus;\n            response.jqXHR = options.jqXHR = jqXHR;\n            this._trigger('done', null, options);\n        },\n\n        _onFail: function (jqXHR, textStatus, errorThrown, options) {\n            var response = options._response;\n            if (options.recalculateProgress) {\n                // Remove the failed (error or abort) file upload from\n                // the global progress calculation:\n                this._progress.loaded -= options._progress.loaded;\n                this._progress.total -= options._progress.total;\n            }\n            response.jqXHR = options.jqXHR = jqXHR;\n            response.textStatus = options.textStatus = textStatus;\n            response.errorThrown = options.errorThrown = errorThrown;\n            this._trigger('fail', null, options);\n        },\n\n        _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n            // jqXHRorResult, textStatus and jqXHRorError are added to the\n            // options object via done and fail callbacks\n            this._trigger('always', null, options);\n        },\n\n        _onSend: function (e, data) {\n            if (!data.submit) {\n                this._addConvenienceMethods(e, data);\n            }\n            var that = this,\n                jqXHR,\n                aborted,\n                slot,\n                pipe,\n                options = that._getAJAXSettings(data),\n                send = function () {\n                    that._sending += 1;\n                    // Set timer for bitrate progress calculation:\n                    options._bitrateTimer = new that._BitrateTimer();\n                    jqXHR = jqXHR || (\n                        ((aborted || that._trigger(\n                            'send',\n                            $.Event('send', {delegatedEvent: e}),\n                            options\n                        ) === false) &&\n                        that._getXHRPromise(false, options.context, aborted)) ||\n                        that._chunkedUpload(options) || $.ajax(options)\n                    ).done(function (result, textStatus, jqXHR) {\n                        that._onDone(result, textStatus, jqXHR, options);\n                    }).fail(function (jqXHR, textStatus, errorThrown) {\n                        that._onFail(jqXHR, textStatus, errorThrown, options);\n                    }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n                        that._onAlways(\n                            jqXHRorResult,\n                            textStatus,\n                            jqXHRorError,\n                            options\n                        );\n                        that._sending -= 1;\n                        that._active -= 1;\n                        if (options.limitConcurrentUploads &&\n                                options.limitConcurrentUploads > that._sending) {\n                            // Start the next queued upload,\n                            // that has not been aborted:\n                            var nextSlot = that._slots.shift();\n                            while (nextSlot) {\n                                if (that._getDeferredState(nextSlot) === 'pending') {\n                                    nextSlot.resolve();\n                                    break;\n                                }\n                                nextSlot = that._slots.shift();\n                            }\n                        }\n                        if (that._active === 0) {\n                            // The stop callback is triggered when all uploads have\n                            // been completed, equivalent to the global ajaxStop event:\n                            that._trigger('stop');\n                        }\n                    });\n                    return jqXHR;\n                };\n            this._beforeSend(e, options);\n            if (this.options.sequentialUploads ||\n                    (this.options.limitConcurrentUploads &&\n                    this.options.limitConcurrentUploads <= this._sending)) {\n                if (this.options.limitConcurrentUploads > 1) {\n                    slot = $.Deferred();\n                    this._slots.push(slot);\n                    pipe = slot.pipe(send);\n                } else {\n                    this._sequence = this._sequence.pipe(send, send);\n                    pipe = this._sequence;\n                }\n                // Return the piped Promise object, enhanced with an abort method,\n                // which is delegated to the jqXHR object of the current upload,\n                // and jqXHR callbacks mapped to the equivalent Promise methods:\n                pipe.abort = function () {\n                    aborted = [undefined, 'abort', 'abort'];\n                    if (!jqXHR) {\n                        if (slot) {\n                            slot.rejectWith(options.context, aborted);\n                        }\n                        return send();\n                    }\n                    return jqXHR.abort();\n                };\n                return this._enhancePromise(pipe);\n            }\n            return send();\n        },\n\n        _onAdd: function (e, data) {\n            var that = this,\n                result = true,\n                options = $.extend({}, this.options, data),\n                files = data.files,\n                filesLength = files.length,\n                limit = options.limitMultiFileUploads,\n                limitSize = options.limitMultiFileUploadSize,\n                overhead = options.limitMultiFileUploadSizeOverhead,\n                batchSize = 0,\n                paramName = this._getParamName(options),\n                paramNameSet,\n                paramNameSlice,\n                fileSet,\n                i,\n                j = 0;\n            if (!filesLength) {\n                return false;\n            }\n            if (limitSize && files[0].size === undefined) {\n                limitSize = undefined;\n            }\n            if (!(options.singleFileUploads || limit || limitSize) ||\n                    !this._isXHRUpload(options)) {\n                fileSet = [files];\n                paramNameSet = [paramName];\n            } else if (!(options.singleFileUploads || limitSize) && limit) {\n                fileSet = [];\n                paramNameSet = [];\n                for (i = 0; i < filesLength; i += limit) {\n                    fileSet.push(files.slice(i, i + limit));\n                    paramNameSlice = paramName.slice(i, i + limit);\n                    if (!paramNameSlice.length) {\n                        paramNameSlice = paramName;\n                    }\n                    paramNameSet.push(paramNameSlice);\n                }\n            } else if (!options.singleFileUploads && limitSize) {\n                fileSet = [];\n                paramNameSet = [];\n                for (i = 0; i < filesLength; i = i + 1) {\n                    batchSize += files[i].size + overhead;\n                    if (i + 1 === filesLength ||\n                            ((batchSize + files[i + 1].size + overhead) > limitSize) ||\n                            (limit && i + 1 - j >= limit)) {\n                        fileSet.push(files.slice(j, i + 1));\n                        paramNameSlice = paramName.slice(j, i + 1);\n                        if (!paramNameSlice.length) {\n                            paramNameSlice = paramName;\n                        }\n                        paramNameSet.push(paramNameSlice);\n                        j = i + 1;\n                        batchSize = 0;\n                    }\n                }\n            } else {\n                paramNameSet = paramName;\n            }\n            data.originalFiles = files;\n            $.each(fileSet || files, function (index, element) {\n                var newData = $.extend({}, data);\n                newData.files = fileSet ? element : [element];\n                newData.paramName = paramNameSet[index];\n                that._initResponseObject(newData);\n                that._initProgressObject(newData);\n                that._addConvenienceMethods(e, newData);\n                result = that._trigger(\n                    'add',\n                    $.Event('add', {delegatedEvent: e}),\n                    newData\n                );\n                return result;\n            });\n            return result;\n        },\n\n        _replaceFileInput: function (data) {\n            var input = data.fileInput,\n                inputClone = input.clone(true),\n                restoreFocus = input.is(document.activeElement);\n            // Add a reference for the new cloned file input to the data argument:\n            data.fileInputClone = inputClone;\n            $('<form></form>').append(inputClone)[0].reset();\n            // Detaching allows to insert the fileInput on another form\n            // without loosing the file input value:\n            input.after(inputClone).detach();\n            // If the fileInput had focus before it was detached,\n            // restore focus to the inputClone.\n            if (restoreFocus) {\n                inputClone.focus();\n            }\n            // Avoid memory leaks with the detached file input:\n            $.cleanData(input.unbind('remove'));\n            // Replace the original file input element in the fileInput\n            // elements set with the clone, which has been copied including\n            // event handlers:\n            this.options.fileInput = this.options.fileInput.map(function (i, el) {\n                if (el === input[0]) {\n                    return inputClone[0];\n                }\n                return el;\n            });\n            // If the widget has been initialized on the file input itself,\n            // override this.element with the file input clone:\n            if (input[0] === this.element[0]) {\n                this.element = inputClone;\n            }\n        },\n\n        _handleFileTreeEntry: function (entry, path) {\n            var that = this,\n                dfd = $.Deferred(),\n                errorHandler = function (e) {\n                    if (e && !e.entry) {\n                        e.entry = entry;\n                    }\n                    // Since $.when returns immediately if one\n                    // Deferred is rejected, we use resolve instead.\n                    // This allows valid files and invalid items\n                    // to be returned together in one set:\n                    dfd.resolve([e]);\n                },\n                successHandler = function (entries) {\n                    that._handleFileTreeEntries(\n                        entries,\n                        path + entry.name + '/'\n                    ).done(function (files) {\n                        dfd.resolve(files);\n                    }).fail(errorHandler);\n                },\n                readEntries = function () {\n                    dirReader.readEntries(function (results) {\n                        if (!results.length) {\n                            successHandler(entries);\n                        } else {\n                            entries = entries.concat(results);\n                            readEntries();\n                        }\n                    }, errorHandler);\n                },\n                dirReader, entries = [];\n            path = path || '';\n            if (entry.isFile) {\n                if (entry._file) {\n                    // Workaround for Chrome bug #149735\n                    entry._file.relativePath = path;\n                    dfd.resolve(entry._file);\n                } else {\n                    entry.file(function (file) {\n                        file.relativePath = path;\n                        dfd.resolve(file);\n                    }, errorHandler);\n                }\n            } else if (entry.isDirectory) {\n                dirReader = entry.createReader();\n                readEntries();\n            } else {\n                // Return an empy list for file system items\n                // other than files or directories:\n                dfd.resolve([]);\n            }\n            return dfd.promise();\n        },\n\n        _handleFileTreeEntries: function (entries, path) {\n            var that = this;\n            return $.when.apply(\n                $,\n                $.map(entries, function (entry) {\n                    return that._handleFileTreeEntry(entry, path);\n                })\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _getDroppedFiles: function (dataTransfer) {\n            dataTransfer = dataTransfer || {};\n            var items = dataTransfer.items;\n            if (items && items.length && (items[0].webkitGetAsEntry ||\n                    items[0].getAsEntry)) {\n                return this._handleFileTreeEntries(\n                    $.map(items, function (item) {\n                        var entry;\n                        if (item.webkitGetAsEntry) {\n                            entry = item.webkitGetAsEntry();\n                            if (entry) {\n                                // Workaround for Chrome bug #149735:\n                                entry._file = item.getAsFile();\n                            }\n                            return entry;\n                        }\n                        return item.getAsEntry();\n                    })\n                );\n            }\n            return $.Deferred().resolve(\n                $.makeArray(dataTransfer.files)\n            ).promise();\n        },\n\n        _getSingleFileInputFiles: function (fileInput) {\n            fileInput = $(fileInput);\n            var entries = fileInput.prop('webkitEntries') ||\n                    fileInput.prop('entries'),\n                files,\n                value;\n            if (entries && entries.length) {\n                return this._handleFileTreeEntries(entries);\n            }\n            files = $.makeArray(fileInput.prop('files'));\n            if (!files.length) {\n                value = fileInput.prop('value');\n                if (!value) {\n                    return $.Deferred().resolve([]).promise();\n                }\n                // If the files property is not available, the browser does not\n                // support the File API and we add a pseudo File object with\n                // the input value as name with path information removed:\n                files = [{name: value.replace(/^.*\\\\/, '')}];\n            } else if (files[0].name === undefined && files[0].fileName) {\n                // File normalization for Safari 4 and Firefox 3:\n                $.each(files, function (index, file) {\n                    file.name = file.fileName;\n                    file.size = file.fileSize;\n                });\n            }\n            return $.Deferred().resolve(files).promise();\n        },\n\n        _getFileInputFiles: function (fileInput) {\n            if (!(fileInput instanceof $) || fileInput.length === 1) {\n                return this._getSingleFileInputFiles(fileInput);\n            }\n            return $.when.apply(\n                $,\n                $.map(fileInput, this._getSingleFileInputFiles)\n            ).pipe(function () {\n                return Array.prototype.concat.apply(\n                    [],\n                    arguments\n                );\n            });\n        },\n\n        _onChange: function (e) {\n            var that = this,\n                data = {\n                    fileInput: $(e.target),\n                    form: $(e.target.form)\n                };\n            this._getFileInputFiles(data.fileInput).always(function (files) {\n                data.files = files;\n                if (that.options.replaceFileInput) {\n                    that._replaceFileInput(data);\n                }\n                if (that._trigger(\n                        'change',\n                        $.Event('change', {delegatedEvent: e}),\n                        data\n                    ) !== false) {\n                    that._onAdd(e, data);\n                }\n            });\n        },\n\n        _onPaste: function (e) {\n            var items = e.originalEvent && e.originalEvent.clipboardData &&\n                    e.originalEvent.clipboardData.items,\n                data = {files: []};\n            if (items && items.length) {\n                $.each(items, function (index, item) {\n                    var file = item.getAsFile && item.getAsFile();\n                    if (file) {\n                        data.files.push(file);\n                    }\n                });\n                if (this._trigger(\n                        'paste',\n                        $.Event('paste', {delegatedEvent: e}),\n                        data\n                    ) !== false) {\n                    this._onAdd(e, data);\n                }\n            }\n        },\n\n        _onDrop: function (e) {\n            e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n            var that = this,\n                dataTransfer = e.dataTransfer,\n                data = {};\n            if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n                e.preventDefault();\n                this._getDroppedFiles(dataTransfer).always(function (files) {\n                    data.files = files;\n                    if (that._trigger(\n                            'drop',\n                            $.Event('drop', {delegatedEvent: e}),\n                            data\n                        ) !== false) {\n                        that._onAdd(e, data);\n                    }\n                });\n            }\n        },\n\n        _onDragOver: getDragHandler('dragover'),\n\n        _onDragEnter: getDragHandler('dragenter'),\n\n        _onDragLeave: getDragHandler('dragleave'),\n\n        _initEventHandlers: function () {\n            if (this._isXHRUpload(this.options)) {\n                this._on(this.options.dropZone, {\n                    dragover: this._onDragOver,\n                    drop: this._onDrop,\n                    // event.preventDefault() on dragenter is required for IE10+:\n                    dragenter: this._onDragEnter,\n                    // dragleave is not required, but added for completeness:\n                    dragleave: this._onDragLeave\n                });\n                this._on(this.options.pasteZone, {\n                    paste: this._onPaste\n                });\n            }\n            if ($.support.fileInput) {\n                this._on(this.options.fileInput, {\n                    change: this._onChange\n                });\n            }\n        },\n\n        _destroyEventHandlers: function () {\n            this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\n            this._off(this.options.pasteZone, 'paste');\n            this._off(this.options.fileInput, 'change');\n        },\n\n        _setOption: function (key, value) {\n            var reinit = $.inArray(key, this._specialOptions) !== -1;\n            if (reinit) {\n                this._destroyEventHandlers();\n            }\n            this._super(key, value);\n            if (reinit) {\n                this._initSpecialOptions();\n                this._initEventHandlers();\n            }\n        },\n\n        _initSpecialOptions: function () {\n            var options = this.options;\n            if (options.fileInput === undefined) {\n                options.fileInput = this.element.is('input[type=\"file\"]') ?\n                        this.element : this.element.find('input[type=\"file\"]');\n            } else if (!(options.fileInput instanceof $)) {\n                options.fileInput = $(options.fileInput);\n            }\n            if (!(options.dropZone instanceof $)) {\n                options.dropZone = $(options.dropZone);\n            }\n            if (!(options.pasteZone instanceof $)) {\n                options.pasteZone = $(options.pasteZone);\n            }\n        },\n\n        _getRegExp: function (str) {\n            var parts = str.split('/'),\n                modifiers = parts.pop();\n            parts.shift();\n            return new RegExp(parts.join('/'), modifiers);\n        },\n\n        _isRegExpOption: function (key, value) {\n            return key !== 'url' && $.type(value) === 'string' &&\n                /^\\/.*\\/[igm]{0,3}$/.test(value);\n        },\n\n        _initDataAttributes: function () {\n            var that = this,\n                options = this.options,\n                data = this.element.data();\n            // Initialize options set via HTML5 data-attributes:\n            $.each(\n                this.element[0].attributes,\n                function (index, attr) {\n                    var key = attr.name.toLowerCase(),\n                        value;\n                    if (/^data-/.test(key)) {\n                        // Convert hyphen-ated key to camelCase:\n                        key = key.slice(5).replace(/-[a-z]/g, function (str) {\n                            return str.charAt(1).toUpperCase();\n                        });\n                        value = data[key];\n                        if (that._isRegExpOption(key, value)) {\n                            value = that._getRegExp(value);\n                        }\n                        options[key] = value;\n                    }\n                }\n            );\n        },\n\n        _create: function () {\n            this._initDataAttributes();\n            this._initSpecialOptions();\n            this._slots = [];\n            this._sequence = this._getXHRPromise(true);\n            this._sending = this._active = 0;\n            this._initProgressObject(this);\n            this._initEventHandlers();\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the number of active uploads:\n        active: function () {\n            return this._active;\n        },\n\n        // This method is exposed to the widget API and allows to query\n        // the widget upload progress.\n        // It returns an object with loaded, total and bitrate properties\n        // for the running uploads:\n        progress: function () {\n            return this._progress;\n        },\n\n        // This method is exposed to the widget API and allows adding files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files property and can contain additional options:\n        // .fileupload('add', {files: filesList});\n        add: function (data) {\n            var that = this;\n            if (!data || this.options.disabled) {\n                return;\n            }\n            if (data.fileInput && !data.files) {\n                this._getFileInputFiles(data.fileInput).always(function (files) {\n                    data.files = files;\n                    that._onAdd(null, data);\n                });\n            } else {\n                data.files = $.makeArray(data.files);\n                this._onAdd(null, data);\n            }\n        },\n\n        // This method is exposed to the widget API and allows sending files\n        // using the fileupload API. The data parameter accepts an object which\n        // must have a files or fileInput property and can contain additional options:\n        // .fileupload('send', {files: filesList});\n        // The method returns a Promise object for the file upload call.\n        send: function (data) {\n            if (data && !this.options.disabled) {\n                if (data.fileInput && !data.files) {\n                    var that = this,\n                        dfd = $.Deferred(),\n                        promise = dfd.promise(),\n                        jqXHR,\n                        aborted;\n                    promise.abort = function () {\n                        aborted = true;\n                        if (jqXHR) {\n                            return jqXHR.abort();\n                        }\n                        dfd.reject(null, 'abort', 'abort');\n                        return promise;\n                    };\n                    this._getFileInputFiles(data.fileInput).always(\n                        function (files) {\n                            if (aborted) {\n                                return;\n                            }\n                            if (!files.length) {\n                                dfd.reject();\n                                return;\n                            }\n                            data.files = files;\n                            jqXHR = that._onSend(null, data);\n                            jqXHR.then(\n                                function (result, textStatus, jqXHR) {\n                                    dfd.resolve(result, textStatus, jqXHR);\n                                },\n                                function (jqXHR, textStatus, errorThrown) {\n                                    dfd.reject(jqXHR, textStatus, errorThrown);\n                                }\n                            );\n                        }\n                    );\n                    return this._enhancePromise(promise);\n                }\n                data.files = $.makeArray(data.files);\n                if (data.files.length) {\n                    return this._onSend(null, data);\n                }\n            }\n            return this._getXHRPromise(false, data && data.context);\n        }\n\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/jquery.iframe-transport.js",
    "content": "/*\n * jQuery Iframe Transport Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define, require, window, document */\n\n(function (factory) {\n    'use strict';\n    if (typeof define === 'function' && define.amd) {\n        // Register as an anonymous AMD module:\n        define(['jquery'], factory);\n    } else if (typeof exports === 'object') {\n        // Node/CommonJS:\n        factory(require('jquery'));\n    } else {\n        // Browser globals:\n        factory(window.jQuery);\n    }\n}(function ($) {\n    'use strict';\n\n    // Helper variable to create unique names for the transport iframes:\n    var counter = 0;\n\n    // The iframe transport accepts four additional options:\n    // options.fileInput: a jQuery collection of file input fields\n    // options.paramName: the parameter name for the file form data,\n    //  overrides the name property of the file input field(s),\n    //  can be a string or an array of strings.\n    // options.formData: an array of objects with name and value properties,\n    //  equivalent to the return data of .serializeArray(), e.g.:\n    //  [{name: 'a', value: 1}, {name: 'b', value: 2}]\n    // options.initialIframeSrc: the URL of the initial iframe src,\n    //  by default set to \"javascript:false;\"\n    $.ajaxTransport('iframe', function (options) {\n        if (options.async) {\n            // javascript:false as initial iframe src\n            // prevents warning popups on HTTPS in IE6:\n            /*jshint scripturl: true */\n            var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',\n            /*jshint scripturl: false */\n                form,\n                iframe,\n                addParamChar;\n            return {\n                send: function (_, completeCallback) {\n                    form = $('<form style=\"display:none;\"></form>');\n                    form.attr('accept-charset', options.formAcceptCharset);\n                    addParamChar = /\\?/.test(options.url) ? '&' : '?';\n                    // XDomainRequest only supports GET and POST:\n                    if (options.type === 'DELETE') {\n                        options.url = options.url + addParamChar + '_method=DELETE';\n                        options.type = 'POST';\n                    } else if (options.type === 'PUT') {\n                        options.url = options.url + addParamChar + '_method=PUT';\n                        options.type = 'POST';\n                    } else if (options.type === 'PATCH') {\n                        options.url = options.url + addParamChar + '_method=PATCH';\n                        options.type = 'POST';\n                    }\n                    // IE versions below IE8 cannot set the name property of\n                    // elements that have already been added to the DOM,\n                    // so we set the name along with the iframe HTML markup:\n                    counter += 1;\n                    iframe = $(\n                        '<iframe src=\"' + initialIframeSrc +\n                            '\" name=\"iframe-transport-' + counter + '\"></iframe>'\n                    ).bind('load', function () {\n                        var fileInputClones,\n                            paramNames = $.isArray(options.paramName) ?\n                                    options.paramName : [options.paramName];\n                        iframe\n                            .unbind('load')\n                            .bind('load', function () {\n                                var response;\n                                // Wrap in a try/catch block to catch exceptions thrown\n                                // when trying to access cross-domain iframe contents:\n                                try {\n                                    response = iframe.contents();\n                                    // Google Chrome and Firefox do not throw an\n                                    // exception when calling iframe.contents() on\n                                    // cross-domain requests, so we unify the response:\n                                    if (!response.length || !response[0].firstChild) {\n                                        throw new Error();\n                                    }\n                                } catch (e) {\n                                    response = undefined;\n                                }\n                                // The complete callback returns the\n                                // iframe content document as response object:\n                                completeCallback(\n                                    200,\n                                    'success',\n                                    {'iframe': response}\n                                );\n                                // Fix for IE endless progress bar activity bug\n                                // (happens on form submits to iframe targets):\n                                $('<iframe src=\"' + initialIframeSrc + '\"></iframe>')\n                                    .appendTo(form);\n                                window.setTimeout(function () {\n                                    // Removing the form in a setTimeout call\n                                    // allows Chrome's developer tools to display\n                                    // the response result\n                                    form.remove();\n                                }, 0);\n                            });\n                        form\n                            .prop('target', iframe.prop('name'))\n                            .prop('action', options.url)\n                            .prop('method', options.type);\n                        if (options.formData) {\n                            $.each(options.formData, function (index, field) {\n                                $('<input type=\"hidden\"/>')\n                                    .prop('name', field.name)\n                                    .val(field.value)\n                                    .appendTo(form);\n                            });\n                        }\n                        if (options.fileInput && options.fileInput.length &&\n                                options.type === 'POST') {\n                            fileInputClones = options.fileInput.clone();\n                            // Insert a clone for each file input field:\n                            options.fileInput.after(function (index) {\n                                return fileInputClones[index];\n                            });\n                            if (options.paramName) {\n                                options.fileInput.each(function (index) {\n                                    $(this).prop(\n                                        'name',\n                                        paramNames[index] || options.paramName\n                                    );\n                                });\n                            }\n                            // Appending the file input fields to the hidden form\n                            // removes them from their original location:\n                            form\n                                .append(options.fileInput)\n                                .prop('enctype', 'multipart/form-data')\n                                // enctype must be set as encoding for IE:\n                                .prop('encoding', 'multipart/form-data');\n                            // Remove the HTML5 form attribute from the input(s):\n                            options.fileInput.removeAttr('form');\n                        }\n                        form.submit();\n                        // Insert the file input fields at their original location\n                        // by replacing the clones with the originals:\n                        if (fileInputClones && fileInputClones.length) {\n                            options.fileInput.each(function (index, input) {\n                                var clone = $(fileInputClones[index]);\n                                // Restore the original name and form properties:\n                                $(input)\n                                    .prop('name', clone.prop('name'))\n                                    .attr('form', clone.attr('form'));\n                                clone.replaceWith(input);\n                            });\n                        }\n                    });\n                    form.append(iframe).appendTo(document.body);\n                },\n                abort: function () {\n                    if (iframe) {\n                        // javascript:false as iframe src aborts the request\n                        // and prevents warning popups on HTTPS in IE6.\n                        // concat is used to avoid the \"Script URL\" JSLint error:\n                        iframe\n                            .unbind('load')\n                            .prop('src', initialIframeSrc);\n                    }\n                    if (form) {\n                        form.remove();\n                    }\n                }\n            };\n        }\n    });\n\n    // The iframe transport returns the iframe content document as response.\n    // The following adds converters from iframe to text, json, html, xml\n    // and script.\n    // Please note that the Content-Type for JSON responses has to be text/plain\n    // or text/html, if the browser doesn't include application/json in the\n    // Accept header, else IE will show a download dialog.\n    // The Content-Type for XML responses on the other hand has to be always\n    // application/xml or text/xml, so IE properly parses the XML response.\n    // See also\n    // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\n    $.ajaxSetup({\n        converters: {\n            'iframe text': function (iframe) {\n                return iframe && $(iframe[0].body).text();\n            },\n            'iframe json': function (iframe) {\n                return iframe && $.parseJSON($(iframe[0].body).text());\n            },\n            'iframe html': function (iframe) {\n                return iframe && $(iframe[0].body).html();\n            },\n            'iframe xml': function (iframe) {\n                var xmlDoc = iframe && iframe[0];\n                return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\n                        $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\n                            $(xmlDoc.body).html());\n            },\n            'iframe script': function (iframe) {\n                return iframe && $.globalEval($(iframe[0].body).text());\n            }\n        }\n    });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/main.js",
    "content": "/*\n * jQuery File Upload Plugin JS Example\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global $, window */\n\n$(function () {\n    'use strict';\n\n    // Initialize the jQuery File Upload widget:\n    $('#fileupload').fileupload({\n        // Uncomment the following to send cross-domain cookies:\n        //xhrFields: {withCredentials: true},\n        url: 'server/php/'\n    });\n\n    // Enable iframe cross-domain access via redirect option:\n    $('#fileupload').fileupload(\n        'option',\n        'redirect',\n        window.location.href.replace(\n            /\\/[^\\/]*$/,\n            '/cors/result.html?%s'\n        )\n    );\n\n    if (window.location.hostname === 'blueimp.github.io') {\n        // Demo settings:\n        $('#fileupload').fileupload('option', {\n            url: '//jquery-file-upload.appspot.com/',\n            // Enable image resizing, except for Android and Opera,\n            // which actually support image resizing, but fail to\n            // send Blob objects via XHR requests:\n            disableImageResize: /Android(?!.*Chrome)|Opera/\n                .test(window.navigator.userAgent),\n            maxFileSize: 999000,\n            acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i\n        });\n        // Upload server status check for browsers with CORS support:\n        if ($.support.cors) {\n            $.ajax({\n                url: '//jquery-file-upload.appspot.com/',\n                type: 'HEAD'\n            }).fail(function () {\n                $('<div class=\"alert alert-danger\"/>')\n                    .text('Upload server currently unavailable - ' +\n                            new Date())\n                    .appendTo('#fileupload');\n            });\n        }\n    } else {\n        // Load existing files:\n        $('#fileupload').addClass('fileupload-processing');\n        $.ajax({\n            // Uncomment the following to send cross-domain cookies:\n            //xhrFields: {withCredentials: true},\n            url: $('#fileupload').fileupload('option', 'url'),\n            dataType: 'json',\n            context: $('#fileupload')[0]\n        }).always(function () {\n            $(this).removeClass('fileupload-processing');\n        }).done(function (result) {\n            $(this).fileupload('option', 'done')\n                .call(this, $.Event('done'), {result: result});\n        });\n    }\n\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-file-upload/js/vendor/jquery.ui.widget.js",
    "content": "/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28\n* http://jqueryui.com\n* Includes: widget.js\n* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */\n\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \"jquery\" ], factory );\n\n\t} else if ( typeof exports === \"object\" ) {\n\n\t\t// Node/CommonJS\n\t\tfactory( require( \"jquery\" ) );\n\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n/*!\n * jQuery UI Widget 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/jQuery.widget/\n */\n\n\nvar widget_uuid = 0,\n\twidget_slice = Array.prototype.slice;\n\n$.cleanData = (function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; (elem = elems[i]) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n})( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widget_slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = widget_slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\treturnValue = instance;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat(args) );\n\t\t\t}\n\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"<div>\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widget_uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled\", !!value );\n\n\t\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\t\tif ( value ) {\n\t\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions({ disabled: false });\n\t},\n\tdisable: function() {\n\t\treturn this._setOptions({ disabled: true });\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\nvar widget = $.widget;\n\n\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-multi-select/css/multi-select.css",
    "content": ".ms-container{\n  background: transparent url('../img/switch.png') no-repeat 50% 50%;\n  width: 370px;\n}\n\n.ms-container:after{\n  content: \".\";\n  display: block;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  clear: both;\n  min-height: 0;\n  visibility: hidden;\n}\n\n.ms-container .ms-selectable, .ms-container .ms-selection{\n  background: #fff;\n  color: #555555;\n  float: left;\n  width: 45%;\n}\n.ms-container .ms-selection{\n  float: right;\n}\n\n.ms-container .ms-list{\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;\n  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;\n  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;\n  -o-transition: border linear 0.2s, box-shadow linear 0.2s;\n  transition: border linear 0.2s, box-shadow linear 0.2s;\n  border: 1px solid #ccc;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  border-radius: 3px;\n  position: relative;\n  height: 200px;\n  padding: 0;\n  overflow-y: auto;\n}\n\n.ms-container .ms-list.ms-focus{\n  border-color: rgba(82, 168, 236, 0.8);\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);\n  outline: 0;\n  outline: thin dotted \\9;\n}\n\n.ms-container ul{\n  margin: 0;\n  list-style-type: none;\n  padding: 0;\n}\n\n.ms-container .ms-optgroup-container{\n  width: 100%;\n}\n\n.ms-container .ms-optgroup-label{\n  margin: 0;\n  padding: 5px 0px 0px 5px;\n  cursor: pointer;\n  color: #999;\n}\n\n.ms-container .ms-selectable li.ms-elem-selectable,\n.ms-container .ms-selection li.ms-elem-selection{\n  border-bottom: 1px #eee solid;\n  padding: 2px 10px;\n  color: #555;\n  font-size: 14px;\n}\n\n.ms-container .ms-selectable li.ms-hover,\n.ms-container .ms-selection li.ms-hover{\n  cursor: pointer;\n  color: #fff;\n  text-decoration: none;\n  background-color: #08c;\n}\n\n.ms-container .ms-selectable li.disabled,\n.ms-container .ms-selection li.disabled{\n  background-color: #eee;\n  color: #aaa;\n  cursor: text;\n}\n\n.multi-select {\n  right: auto !important;\n  left: -9999px !important;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-multi-select/js/jquery.multi-select.js",
    "content": "/*\n* MultiSelect v0.9.11\n* Copyright (c) 2012 Louis Cuny\n*\n* This program is free software. It comes without any warranty, to\n* the extent permitted by applicable law. You can redistribute it\n* and/or modify it under the terms of the Do What The Fuck You Want\n* To Public License, Version 2, as published by Sam Hocevar. See\n* http://sam.zoy.org/wtfpl/COPYING for more details.\n*/\n\n!function ($) {\n\n  \"use strict\";\n\n\n /* MULTISELECT CLASS DEFINITION\n  * ====================== */\n\n  var MultiSelect = function (element, options) {\n    this.options = options;\n    this.$element = $(element);\n    this.$container = $('<div/>', { 'class': \"ms-container\" });\n    this.$selectableContainer = $('<div/>', { 'class': 'ms-selectable' });\n    this.$selectionContainer = $('<div/>', { 'class': 'ms-selection' });\n    this.$selectableUl = $('<ul/>', { 'class': \"ms-list\", 'tabindex' : '-1' });\n    this.$selectionUl = $('<ul/>', { 'class': \"ms-list\", 'tabindex' : '-1' });\n    this.scrollTo = 0;\n    this.elemsSelector = 'li:visible:not(.ms-optgroup-label,.ms-optgroup-container,.'+options.disabledClass+')';\n  };\n\n  MultiSelect.prototype = {\n    constructor: MultiSelect,\n\n    init: function(){\n      var that = this,\n          ms = this.$element;\n\n      if (ms.next('.ms-container').length === 0){\n        ms.css({ position: 'absolute', left: '-9999px' });\n        ms.attr('id', ms.attr('id') ? ms.attr('id') : Math.ceil(Math.random()*1000)+'multiselect');\n        this.$container.attr('id', 'ms-'+ms.attr('id'));\n        this.$container.addClass(that.options.cssClass);\n        ms.find('option').each(function(){\n          that.generateLisFromOption(this);\n        });\n\n        this.$selectionUl.find('.ms-optgroup-label').hide();\n\n        if (that.options.selectableHeader){\n          that.$selectableContainer.append(that.options.selectableHeader);\n        }\n        that.$selectableContainer.append(that.$selectableUl);\n        if (that.options.selectableFooter){\n          that.$selectableContainer.append(that.options.selectableFooter);\n        }\n\n        if (that.options.selectionHeader){\n          that.$selectionContainer.append(that.options.selectionHeader);\n        }\n        that.$selectionContainer.append(that.$selectionUl);\n        if (that.options.selectionFooter){\n          that.$selectionContainer.append(that.options.selectionFooter);\n        }\n\n        that.$container.append(that.$selectableContainer);\n        that.$container.append(that.$selectionContainer);\n        ms.after(that.$container);\n\n        that.activeMouse(that.$selectableUl);\n        that.activeKeyboard(that.$selectableUl);\n\n        var action = that.options.dblClick ? 'dblclick' : 'click';\n\n        that.$selectableUl.on(action, '.ms-elem-selectable', function(){\n          that.select($(this).data('ms-value'));\n        });\n        that.$selectionUl.on(action, '.ms-elem-selection', function(){\n          that.deselect($(this).data('ms-value'));\n        });\n\n        that.activeMouse(that.$selectionUl);\n        that.activeKeyboard(that.$selectionUl);\n\n        ms.on('focus', function(){\n          that.$selectableUl.focus();\n        })\n      }\n\n      var selectedValues = ms.find('option:selected').map(function(){ return $(this).val(); }).get();\n      that.select(selectedValues, 'init');\n\n      if (typeof that.options.afterInit === 'function') {\n        that.options.afterInit.call(this, this.$container);\n      }\n    },\n\n    'generateLisFromOption' : function(option, index, $container){\n      var that = this,\n          ms = that.$element,\n          attributes = \"\",\n          $option = $(option);\n\n      for (var cpt = 0; cpt < option.attributes.length; cpt++){\n        var attr = option.attributes[cpt];\n\n        if(attr.name !== 'value' && attr.name !== 'disabled'){\n          attributes += attr.name+'=\"'+attr.value+'\" ';\n        }\n      }\n      var selectableLi = $('<li '+attributes+'><span>'+that.escapeHTML($option.text())+'</span></li>'),\n          selectedLi = selectableLi.clone(),\n          value = $option.val(),\n          elementId = that.sanitize(value);\n\n      selectableLi\n        .data('ms-value', value)\n        .addClass('ms-elem-selectable')\n        .attr('id', elementId+'-selectable');\n\n      selectedLi\n        .data('ms-value', value)\n        .addClass('ms-elem-selection')\n        .attr('id', elementId+'-selection')\n        .hide();\n\n      if ($option.prop('disabled') || ms.prop('disabled')){\n        selectedLi.addClass(that.options.disabledClass);\n        selectableLi.addClass(that.options.disabledClass);\n      }\n\n      var $optgroup = $option.parent('optgroup');\n\n      if ($optgroup.length > 0){\n        var optgroupLabel = $optgroup.attr('label'),\n            optgroupId = that.sanitize(optgroupLabel),\n            $selectableOptgroup = that.$selectableUl.find('#optgroup-selectable-'+optgroupId),\n            $selectionOptgroup = that.$selectionUl.find('#optgroup-selection-'+optgroupId);\n\n        if ($selectableOptgroup.length === 0){\n          var optgroupContainerTpl = '<li class=\"ms-optgroup-container\"></li>',\n              optgroupTpl = '<ul class=\"ms-optgroup\"><li class=\"ms-optgroup-label\"><span>'+optgroupLabel+'</span></li></ul>';\n\n          $selectableOptgroup = $(optgroupContainerTpl);\n          $selectionOptgroup = $(optgroupContainerTpl);\n          $selectableOptgroup.attr('id', 'optgroup-selectable-'+optgroupId);\n          $selectionOptgroup.attr('id', 'optgroup-selection-'+optgroupId);\n          $selectableOptgroup.append($(optgroupTpl));\n          $selectionOptgroup.append($(optgroupTpl));\n          if (that.options.selectableOptgroup){\n            $selectableOptgroup.find('.ms-optgroup-label').on('click', function(){\n              var values = $optgroup.children(':not(:selected, :disabled)').map(function(){ return $(this).val() }).get();\n              that.select(values);\n            });\n            $selectionOptgroup.find('.ms-optgroup-label').on('click', function(){\n              var values = $optgroup.children(':selected:not(:disabled)').map(function(){ return $(this).val() }).get();\n              that.deselect(values);\n            });\n          }\n          that.$selectableUl.append($selectableOptgroup);\n          that.$selectionUl.append($selectionOptgroup);\n        }\n        index = index == undefined ? $selectableOptgroup.find('ul').children().length : index + 1;\n        selectableLi.insertAt(index, $selectableOptgroup.children());\n        selectedLi.insertAt(index, $selectionOptgroup.children());\n      } else {\n        index = index == undefined ? that.$selectableUl.children().length : index;\n\n        selectableLi.insertAt(index, that.$selectableUl);\n        selectedLi.insertAt(index, that.$selectionUl);\n      }\n    },\n\n    'addOption' : function(options){\n      var that = this;\n\n      if (options.value) options = [options];\n      $.each(options, function(index, option){\n        if (option.value && that.$element.find(\"option[value='\"+option.value+\"']\").length === 0){\n          var $option = $('<option value=\"'+option.value+'\">'+option.text+'</option>'),\n              index = parseInt((typeof option.index === 'undefined' ? that.$element.children().length : option.index)),\n              $container = option.nested == undefined ? that.$element : $(\"optgroup[label='\"+option.nested+\"']\")\n\n          $option.insertAt(index, $container);\n          that.generateLisFromOption($option.get(0), index, option.nested);\n        }\n      })\n    },\n\n    'escapeHTML' : function(text){\n      return $(\"<div>\").text(text).html();\n    },\n\n    'activeKeyboard' : function($list){\n      var that = this;\n\n      $list.on('focus', function(){\n        $(this).addClass('ms-focus');\n      })\n      .on('blur', function(){\n        $(this).removeClass('ms-focus');\n      })\n      .on('keydown', function(e){\n        switch (e.which) {\n          case 40:\n          case 38:\n            e.preventDefault();\n            e.stopPropagation();\n            that.moveHighlight($(this), (e.which === 38) ? -1 : 1);\n            return;\n          case 37:\n          case 39:\n            e.preventDefault();\n            e.stopPropagation();\n            that.switchList($list);\n            return;\n          case 9:\n            if(that.$element.is('[tabindex]')){\n              e.preventDefault();\n              var tabindex = parseInt(that.$element.attr('tabindex'), 10);\n              tabindex = (e.shiftKey) ? tabindex-1 : tabindex+1;\n              $('[tabindex=\"'+(tabindex)+'\"]').focus();\n              return;\n            }else{\n              if(e.shiftKey){\n                that.$element.trigger('focus');\n              }\n            }\n        }\n        if($.inArray(e.which, that.options.keySelect) > -1){\n          e.preventDefault();\n          e.stopPropagation();\n          that.selectHighlighted($list);\n          return;\n        }\n      });\n    },\n\n    'moveHighlight': function($list, direction){\n      var $elems = $list.find(this.elemsSelector),\n          $currElem = $elems.filter('.ms-hover'),\n          $nextElem = null,\n          elemHeight = $elems.first().outerHeight(),\n          containerHeight = $list.height(),\n          containerSelector = '#'+this.$container.prop('id');\n\n      $elems.removeClass('ms-hover');\n      if (direction === 1){ // DOWN\n\n        $nextElem = $currElem.nextAll(this.elemsSelector).first();\n        if ($nextElem.length === 0){\n          var $optgroupUl = $currElem.parent();\n\n          if ($optgroupUl.hasClass('ms-optgroup')){\n            var $optgroupLi = $optgroupUl.parent(),\n                $nextOptgroupLi = $optgroupLi.next(':visible');\n\n            if ($nextOptgroupLi.length > 0){\n              $nextElem = $nextOptgroupLi.find(this.elemsSelector).first();\n            } else {\n              $nextElem = $elems.first();\n            }\n          } else {\n            $nextElem = $elems.first();\n          }\n        }\n      } else if (direction === -1){ // UP\n\n        $nextElem = $currElem.prevAll(this.elemsSelector).first();\n        if ($nextElem.length === 0){\n          var $optgroupUl = $currElem.parent();\n\n          if ($optgroupUl.hasClass('ms-optgroup')){\n            var $optgroupLi = $optgroupUl.parent(),\n                $prevOptgroupLi = $optgroupLi.prev(':visible');\n\n            if ($prevOptgroupLi.length > 0){\n              $nextElem = $prevOptgroupLi.find(this.elemsSelector).last();\n            } else {\n              $nextElem = $elems.last();\n            }\n          } else {\n            $nextElem = $elems.last();\n          }\n        }\n      }\n      if ($nextElem.length > 0){\n        $nextElem.addClass('ms-hover');\n        var scrollTo = $list.scrollTop() + $nextElem.position().top - \n                       containerHeight / 2 + elemHeight / 2;\n\n        $list.scrollTop(scrollTo);\n      }\n    },\n\n    'selectHighlighted' : function($list){\n      var $elems = $list.find(this.elemsSelector),\n          $highlightedElem = $elems.filter('.ms-hover').first();\n\n      if ($highlightedElem.length > 0){\n        if ($list.parent().hasClass('ms-selectable')){\n          this.select($highlightedElem.data('ms-value'));\n        } else {\n          this.deselect($highlightedElem.data('ms-value'));\n        }\n        $elems.removeClass('ms-hover');\n      }\n    },\n\n    'switchList' : function($list){\n      $list.blur();\n      this.$container.find(this.elemsSelector).removeClass('ms-hover');\n      if ($list.parent().hasClass('ms-selectable')){\n        this.$selectionUl.focus();\n      } else {\n        this.$selectableUl.focus();\n      }\n    },\n\n    'activeMouse' : function($list){\n      var that = this;\n\n      $('body').on('mouseenter', that.elemsSelector, function(){\n        $(this).parents('.ms-container').find(that.elemsSelector).removeClass('ms-hover');\n        $(this).addClass('ms-hover');\n      });\n\n      $('body').on('mouseleave', that.elemsSelector, function () {\n          $(this).parents('.ms-container').find(that.elemsSelector).removeClass('ms-hover');;\n      });\n    },\n\n    'refresh' : function() {\n      this.destroy();\n      this.$element.multiSelect(this.options);\n    },\n\n    'destroy' : function(){\n      $(\"#ms-\"+this.$element.attr(\"id\")).remove();\n      this.$element.css('position', '').css('left', '')\n      this.$element.removeData('multiselect');\n    },\n\n    'select' : function(value, method){\n      if (typeof value === 'string'){ value = [value]; }\n\n      var that = this,\n          ms = this.$element,\n          msIds = $.map(value, function(val){ return(that.sanitize(val)); }),\n          selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable').filter(':not(.'+that.options.disabledClass+')'),\n          selections = this.$selectionUl.find('#' + msIds.join('-selection, #') + '-selection').filter(':not(.'+that.options.disabledClass+')'),\n          options = ms.find('option:not(:disabled)').filter(function(){ return($.inArray(this.value, value) > -1); });\n\n      if (method === 'init'){\n        selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable'),\n        selections = this.$selectionUl.find('#' + msIds.join('-selection, #') + '-selection');\n      }\n\n      if (selectables.length > 0){\n        selectables.addClass('ms-selected').hide();\n        selections.addClass('ms-selected').show();\n\n        options.prop('selected', true);\n\n        that.$container.find(that.elemsSelector).removeClass('ms-hover');\n\n        var selectableOptgroups = that.$selectableUl.children('.ms-optgroup-container');\n        if (selectableOptgroups.length > 0){\n          selectableOptgroups.each(function(){\n            var selectablesLi = $(this).find('.ms-elem-selectable');\n            if (selectablesLi.length === selectablesLi.filter('.ms-selected').length){\n              $(this).find('.ms-optgroup-label').hide();\n            }\n          });\n\n          var selectionOptgroups = that.$selectionUl.children('.ms-optgroup-container');\n          selectionOptgroups.each(function(){\n            var selectionsLi = $(this).find('.ms-elem-selection');\n            if (selectionsLi.filter('.ms-selected').length > 0){\n              $(this).find('.ms-optgroup-label').show();\n            }\n          });\n        } else {\n          if (that.options.keepOrder && method !== 'init'){\n            var selectionLiLast = that.$selectionUl.find('.ms-selected');\n            if((selectionLiLast.length > 1) && (selectionLiLast.last().get(0) != selections.get(0))) {\n              selections.insertAfter(selectionLiLast.last());\n            }\n          }\n        }\n        if (method !== 'init'){\n          ms.trigger('change');\n          if (typeof that.options.afterSelect === 'function') {\n            that.options.afterSelect.call(this, value);\n          }\n        }\n      }\n    },\n\n    'deselect' : function(value){\n      if (typeof value === 'string'){ value = [value]; }\n\n      var that = this,\n          ms = this.$element,\n          msIds = $.map(value, function(val){ return(that.sanitize(val)); }),\n          selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable'),\n          selections = this.$selectionUl.find('#' + msIds.join('-selection, #')+'-selection').filter('.ms-selected').filter(':not(.'+that.options.disabledClass+')'),\n          options = ms.find('option').filter(function(){ return($.inArray(this.value, value) > -1); });\n\n      if (selections.length > 0){\n        selectables.removeClass('ms-selected').show();\n        selections.removeClass('ms-selected').hide();\n        options.prop('selected', false);\n\n        that.$container.find(that.elemsSelector).removeClass('ms-hover');\n\n        var selectableOptgroups = that.$selectableUl.children('.ms-optgroup-container');\n        if (selectableOptgroups.length > 0){\n          selectableOptgroups.each(function(){\n            var selectablesLi = $(this).find('.ms-elem-selectable');\n            if (selectablesLi.filter(':not(.ms-selected)').length > 0){\n              $(this).find('.ms-optgroup-label').show();\n            }\n          });\n\n          var selectionOptgroups = that.$selectionUl.children('.ms-optgroup-container');\n          selectionOptgroups.each(function(){\n            var selectionsLi = $(this).find('.ms-elem-selection');\n            if (selectionsLi.filter('.ms-selected').length === 0){\n              $(this).find('.ms-optgroup-label').hide();\n            }\n          });\n        }\n        ms.trigger('change');\n        if (typeof that.options.afterDeselect === 'function') {\n          that.options.afterDeselect.call(this, value);\n        }\n      }\n    },\n\n    'select_all' : function(){\n      var ms = this.$element,\n          values = ms.val();\n\n      ms.find('option:not(\":disabled\")').prop('selected', true);\n      this.$selectableUl.find('.ms-elem-selectable').filter(':not(.'+this.options.disabledClass+')').addClass('ms-selected').hide();\n      this.$selectionUl.find('.ms-optgroup-label').show();\n      this.$selectableUl.find('.ms-optgroup-label').hide();\n      this.$selectionUl.find('.ms-elem-selection').filter(':not(.'+this.options.disabledClass+')').addClass('ms-selected').show();\n      this.$selectionUl.focus();\n      ms.trigger('change');\n      if (typeof this.options.afterSelect === 'function') {\n        var selectedValues = $.grep(ms.val(), function(item){\n          return $.inArray(item, values) < 0;\n        });\n        this.options.afterSelect.call(this, selectedValues);\n      }\n    },\n\n    'deselect_all' : function(){\n      var ms = this.$element,\n          values = ms.val();\n\n      ms.find('option').prop('selected', false);\n      this.$selectableUl.find('.ms-elem-selectable').removeClass('ms-selected').show();\n      this.$selectionUl.find('.ms-optgroup-label').hide();\n      this.$selectableUl.find('.ms-optgroup-label').show();\n      this.$selectionUl.find('.ms-elem-selection').removeClass('ms-selected').hide();\n      this.$selectableUl.focus();\n      ms.trigger('change');\n      if (typeof this.options.afterDeselect === 'function') {\n        this.options.afterDeselect.call(this, values);\n      }\n    },\n\n    sanitize: function(value){\n      var hash = 0, i, character;\n      if (value.length == 0) return hash;\n      var ls = 0;\n      for (i = 0, ls = value.length; i < ls; i++) {\n        character  = value.charCodeAt(i);\n        hash  = ((hash<<5)-hash)+character;\n        hash |= 0; // Convert to 32bit integer\n      }\n      return hash;\n    }\n  };\n\n  /* MULTISELECT PLUGIN DEFINITION\n   * ======================= */\n\n  $.fn.multiSelect = function () {\n    var option = arguments[0],\n        args = arguments;\n\n    return this.each(function () {\n      var $this = $(this),\n          data = $this.data('multiselect'),\n          options = $.extend({}, $.fn.multiSelect.defaults, $this.data(), typeof option === 'object' && option);\n\n      if (!data){ $this.data('multiselect', (data = new MultiSelect(this, options))); }\n\n      if (typeof option === 'string'){\n        data[option](args[1]);\n      } else {\n        data.init();\n      }\n    });\n  };\n\n  $.fn.multiSelect.defaults = {\n    keySelect: [32],\n    selectableOptgroup: false,\n    disabledClass : 'disabled',\n    dblClick : false,\n    keepOrder: false,\n    cssClass: ''\n  };\n\n  $.fn.multiSelect.Constructor = MultiSelect;\n\n  $.fn.insertAt = function(index, $parent) {\n    return this.each(function() {\n      if (index === 0) {\n        $parent.prepend(this);\n      } else {\n        $parent.children().eq(index - 1).after(this);\n      }\n    });\n}\n\n}(window.jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-qrcode/bower.json",
    "content": "{\n  \"name\": \"jquery-qrcode\",\n  \"version\": \"1.0.0\",\n  \"homepage\": \"http://www.d-project.com/\",\n  \"authors\": [\n    \"jeromeetienne\"\n  ],\n  \"description\": \"It allow you to easily add qrcode to your webpages. It is standalone, less than 4k after minify+gzip, no image download\",\n  \"main\": \"jquery.qrcode.min.js\",\n  \"keywords\": [\n    \"QR\",\n    \"jQuery\",\n    \"standalone\"\n  ],\n  \"license\": \"MIT\",\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\",\n    \"tests\"\n  ],\n  \"dependencies\": {\n    \"jquery\": \"~1.9\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-qrcode/examples/basic.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<title>basic example</title>\n</head>\n<body>\n<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js\"></script>\n\n<!--<script type=\"text/javascript\" src=\"../jquery.qrcode.min.js\"></script>\n--><script type=\"text/javascript\" src=\"../src/jquery.qrcode.js\"></script>\n<script type=\"text/javascript\" src=\"../src/qrcode.js\"></script>\n\n<p>Render in table</p>\n<div id=\"qrcodeTable\"></div>\n<p>Render in canvas</p>\n<div id=\"qrcodeCanvas\"></div>\n<script>\n\t//jQuery('#qrcode').qrcode(\"this plugin is great\");\n\tjQuery('#qrcodeTable').qrcode({\n\t\trender\t: \"table\",\n\t\ttext\t: \"http://jetienne.com\"\n\t});\t\n\tjQuery('#qrcodeCanvas').qrcode({\n\t\ttext\t: \"http://jetienne.com\"\n\t});\t\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-qrcode/examples/demo.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<title>Demo page</title>\n\n</head>\n<body>\n<p>\n\tTODO make a nice looking pure client qrcode generator\n\teven allow download of the image\n</p>\n\n<div id=\"output\"></div>\n\n<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"../jquery.qrcode.min.js\"></script>\n<script>\njQuery(function(){\n\tjQuery('#output').qrcode(\"http://jetienne.com\");\n})\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-qrcode/index.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <title></title>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n  <meta name=\"generator\" content=\"pandoc\" />\n  <meta name=\"date\" content=\"\" />\n</head>\n<body>\n<div id=\"jquery.qrcode.js\"\n><h1\n  >jquery.qrcode.js</h1\n  ><p\n  ><a href='http://jeromeetienne.github.com/jquery-qrcode'>jquery.qrcode.js</a> is <em\n    >jquery plugin for a pure browser qrcode generation</em\n    >. It allow you to easily add qrcode to your webpages. It is standalone, less than 4k after minify+gzip, no image download. It doesnt rely on external services which go on and off, or add latency while loading. It is based on a <a href='http://www.d-project.com/qrcode/index.html'>library</a> which build qrcode in various language. <a href='http://jeromeetienne.github.com/jquery-qrcode'>jquery.qrcode.js</a> wraps it to make it easy to include in your own code.</p\n  ><p\n  >Show, dont tell, here is a <a href='examples/basic.html'>example</a></p\n  ><div id=\"how-to-use-it\"\n  ><h2\n    >How to Use It</h2\n    ><p\n    >Let me walk you thru it. First include it in your webpage with the usual script tag</p\n    ><pre\n    ><code\n      >&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.qrcode.min.js&quot;&gt;&lt;/script&gt;\n</code\n      ></pre\n    ><p\n    >Then create a DOM element which gonna contains the generated qrcode image. Lets say a div</p\n    ><pre\n    ><code\n      >&lt;div id=&quot;qrcode&quot;&gt;&lt;/div&gt;\n</code\n      ></pre\n    ><p\n    >Then you add the <em\n      >qrcode</em\n      > in this container by</p\n    ><pre\n    ><code\n      >jquery('#qrcode').qrcode(&quot;this plugin is great&quot;);\n</code\n      ></pre\n    ><p\n    >This is it. see it <a href='examples/basic.html'>live</a>.</p\n    ></div\n  ><div id=\"conclusion\"\n  ><h2\n    >Conclusion</h2\n    ><p\n    ><a href='http://jeromeetienne.github.com/jquery-qrcode'>jquery.qrcode.js</a> is available on github <a href='https://github.com/jeromeetienne/jquery-qrcode'>here</a> under <a href='https://github.com/jeromeetienne/jquery-qrcode/blob/master/MIT-LICENSE.txt'>MIT license</a>. If you hit bugs, fill issues on github. Feel free to fork, modify and have fun with it :)</p\n    ></div\n  ></div\n>\n<style>\nbody {\n    margin: auto;\n    padding-right: 1em;\n    padding-left: 1em;\n    max-width: 44em; \n    border-left: 1px solid #eee;\n    border-right: 1px solid #eee;\n    font-family\t\t: Verdana, sans-serif;\n    font-size\t\t: 100%;\n    line-height\t\t: 140%;\n    color\t\t: #eee; \n    background-color\t: #22252a;\n}\npre {\n    border\t\t: 1px dotted gray;\n    background-color\t: #444a50;\n    color\t\t: #1111111;\n    padding\t\t: 0.5em;\n}\ncode {\n\tfont-family\t: monospace;\n}\na { \n\ttext-decoration\t: none;\n\tcolor\t\t: lightSteelBlue; \n}\na:hover {\n\ttext-decoration\t: underline;\n}\nh1, h2, h3, h4, h5 { font-family: verdana;\n                     font-weight: bold;\n                     border-bottom: 1px dotted #eee;\n                     color: lightSteelBlue; }\nh1 {\n\tcolor\t\t: #cd5;\n        font-size\t: 130%;\n}\nh1:nth-child(1) {\n\tfont-size\t: 300%;\n\ttext-align\t: center;\n\theight\t\t: 1em;\n}\nh2 {\n        font-size\t: 110%;\n}\n\nh3 {\n        font-size\t: 95%;\n}\n\nh4 {\n        font-size\t: 90%;\n        font-style\t: italic;\n}\n\nh5 {\n        font-size\t: 90%;\n        font-style\t: italic;\n}\n\nh1.title {\n        font-size\t: 200%;\n        font-weight\t: bold;\n        padding-top\t: 0.2em;\n        padding-bottom\t: 0.2em;\n        text-align\t: left;\n        border\t\t: none;\n}\n\ndt code {\n        font-weight\t: bold;\n}\ndd p {\n        margin-top\t: 0;\n}\nimg {\n/*\tborder-color\t: white;\n\tborder-style\t: solid;\n*/}\n\n#footer {\n        padding-top\t: 1em;\n        font-size\t: 70%;\n        color\t\t: gray;\n        text-align\t: center;\n}\n\n</style>\n<!-- follow me on twitter -->\n<a href=\"http://www.twitter.com/jerome_etienne\">\n\t<img style=\"position: absolute; bottom: 10px; right: 10px; border: 0;\" src=\"https://twitter-badges.s3.amazonaws.com/follow_me-c.png\" alt=\"Follow jerome_etienne on Twitter\"/>\n</a>\n<!-- github ribbon -->\n<a href=\"https://github.com/jeromeetienne/jquery-qrcode\"><img style=\"position: absolute; top: 0; left: 0; border: 0;\" src=\"https://assets0.github.com/img/ce742187c818c67d98af16f96ed21c00160c234a?repo=&url=http%3A%2F%2Fs3.amazonaws.com%2Fgithub%2Fribbons%2Fforkme_left_gray_6d6d6d.png&path=\" alt=\"Fork me on GitHub\"></a>\n<!-- twitter share + facebook like -->\n<div style=\"position: absolute; top: 10px; right: 10px; border: 0;\">\n\t\n\t<a href=\"http://twitter.com/share\" class=\"twitter-share-button\" data-count=\"none\" data-via=\"jerome_etienne\">Tweet</a><script type=\"text/javascript\" src=\"https://platform.twitter.com/widgets.js\"></script>\n</div>\n</body>\n</html>\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-qrcode/src/jquery.qrcode.js",
    "content": "(function( $ ){\n\t$.fn.qrcode = function(options) {\n\t\t// if options is string, \n\t\tif( typeof options === 'string' ){\n\t\t\toptions\t= { text: options };\n\t\t}\n\n\t\t// set default values\n\t\t// typeNumber < 1 for automatic calculation\n\t\toptions\t= $.extend( {}, {\n\t\t\trender\t\t: \"canvas\",\n\t\t\twidth\t\t: 256,\n\t\t\theight\t\t: 256,\n\t\t\ttypeNumber\t: -1,\n\t\t\tcorrectLevel\t: QRErrorCorrectLevel.H,\n                        background      : \"#ffffff\",\n                        foreground      : \"#000000\"\n\t\t}, options);\n\n\t\tvar createCanvas\t= function(){\n\t\t\t// create the qrcode itself\n\t\t\tvar qrcode\t= new QRCode(options.typeNumber, options.correctLevel);\n\t\t\tqrcode.addData(options.text);\n\t\t\tqrcode.make();\n\n\t\t\t// create canvas element\n\t\t\tvar canvas\t= document.createElement('canvas');\n\t\t\tcanvas.width\t= options.width;\n\t\t\tcanvas.height\t= options.height;\n\t\t\tvar ctx\t\t= canvas.getContext('2d');\n\n\t\t\t// compute tileW/tileH based on options.width/options.height\n\t\t\tvar tileW\t= options.width  / qrcode.getModuleCount();\n\t\t\tvar tileH\t= options.height / qrcode.getModuleCount();\n\n\t\t\t// draw in the canvas\n\t\t\tfor( var row = 0; row < qrcode.getModuleCount(); row++ ){\n\t\t\t\tfor( var col = 0; col < qrcode.getModuleCount(); col++ ){\n\t\t\t\t\tctx.fillStyle = qrcode.isDark(row, col) ? options.foreground : options.background;\n\t\t\t\t\tvar w = (Math.ceil((col+1)*tileW) - Math.floor(col*tileW));\n\t\t\t\t\tvar h = (Math.ceil((row+1)*tileW) - Math.floor(row*tileW));\n\t\t\t\t\tctx.fillRect(Math.round(col*tileW),Math.round(row*tileH), w, h);  \n\t\t\t\t}\t\n\t\t\t}\n\t\t\t// return just built canvas\n\t\t\treturn canvas;\n\t\t}\n\n\t\t// from Jon-Carlos Rivera (https://github.com/imbcmdth)\n\t\tvar createTable\t= function(){\n\t\t\t// create the qrcode itself\n\t\t\tvar qrcode\t= new QRCode(options.typeNumber, options.correctLevel);\n\t\t\tqrcode.addData(options.text);\n\t\t\tqrcode.make();\n\t\t\t\n\t\t\t// create table element\n\t\t\tvar $table\t= $('<table></table>')\n\t\t\t\t.css(\"width\", options.width+\"px\")\n\t\t\t\t.css(\"height\", options.height+\"px\")\n\t\t\t\t.css(\"border\", \"0px\")\n\t\t\t\t.css(\"border-collapse\", \"collapse\")\n\t\t\t\t.css('background-color', options.background);\n\t\t  \n\t\t\t// compute tileS percentage\n\t\t\tvar tileW\t= options.width / qrcode.getModuleCount();\n\t\t\tvar tileH\t= options.height / qrcode.getModuleCount();\n\n\t\t\t// draw in the table\n\t\t\tfor(var row = 0; row < qrcode.getModuleCount(); row++ ){\n\t\t\t\tvar $row = $('<tr></tr>').css('height', tileH+\"px\").appendTo($table);\n\t\t\t\t\n\t\t\t\tfor(var col = 0; col < qrcode.getModuleCount(); col++ ){\n\t\t\t\t\t$('<td></td>')\n\t\t\t\t\t\t.css('width', tileW+\"px\")\n\t\t\t\t\t\t.css('background-color', qrcode.isDark(row, col) ? options.foreground : options.background)\n\t\t\t\t\t\t.appendTo($row);\n\t\t\t\t}\t\n\t\t\t}\n\t\t\t// return just built canvas\n\t\t\treturn $table;\n\t\t}\n  \n\n\t\treturn this.each(function(){\n\t\t\tvar element\t= options.render == \"canvas\" ? createCanvas() : createTable();\n\t\t\t$(element).appendTo(this);\n\t\t});\n\t};\n})( jQuery );\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-qrcode/src/qrcode.js",
    "content": "//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n//   http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of \n// DENSO WAVE INCORPORATED\n//   http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\n//---------------------------------------------------------------------\n// QR8bitByte\n//---------------------------------------------------------------------\n\nfunction QR8bitByte(data) {\n\tthis.mode = QRMode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\n//---------------------------------------------------------------------\n// QRCode\n//---------------------------------------------------------------------\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = new Array();\n}\n\nQRCode.prototype = {\n\t\n\taddData : function(data) {\n\t\tvar newData = new QR8bitByte(data);\n\t\tthis.dataList.push(newData);\n\t\tthis.dataCache = null;\n\t},\n\t\n\tisDark : function(row, col) {\n\t\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\t\tthrow new Error(row + \",\" + col);\n\t\t}\n\t\treturn this.modules[row][col];\n\t},\n\n\tgetModuleCount : function() {\n\t\treturn this.moduleCount;\n\t},\n\t\n\tmake : function() {\n\t\t// Calculate automatically typeNumber if provided is < 1\n\t\tif (this.typeNumber < 1 ){\n\t\t\tvar typeNumber = 1;\n\t\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\t\tvar rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\t\tvar buffer = new QRBitBuffer();\n\t\t\t\tvar totalDataCount = 0;\n\t\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\t\tvar data = this.dataList[i];\n\t\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\t\tbuffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\t\tdata.write(buffer);\n\t\t\t\t}\n\t\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.typeNumber = typeNumber;\n\t\t}\n\t\tthis.makeImpl(false, this.getBestMaskPattern() );\n\t},\n\t\n\tmakeImpl : function(test, maskPattern) {\n\t\t\n\t\tthis.moduleCount = this.typeNumber * 4 + 17;\n\t\tthis.modules = new Array(this.moduleCount);\n\t\t\n\t\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\t\n\t\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\t\n\t\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t\t}\n\t\t}\n\t\n\t\tthis.setupPositionProbePattern(0, 0);\n\t\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\t\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\t\tthis.setupPositionAdjustPattern();\n\t\tthis.setupTimingPattern();\n\t\tthis.setupTypeInfo(test, maskPattern);\n\t\t\n\t\tif (this.typeNumber >= 7) {\n\t\t\tthis.setupTypeNumber(test);\n\t\t}\n\t\n\t\tif (this.dataCache == null) {\n\t\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t\t}\n\t\n\t\tthis.mapData(this.dataCache, maskPattern);\n\t},\n\n\tsetupPositionProbePattern : function(row, col)  {\n\t\t\n\t\tfor (var r = -1; r <= 7; r++) {\n\t\t\t\n\t\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\t\n\t\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\t\n\t\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\t\n\t\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t}\n\t\t\t}\t\t\n\t\t}\t\t\n\t},\n\t\n\tgetBestMaskPattern : function() {\n\t\n\t\tvar minLostPoint = 0;\n\t\tvar pattern = 0;\n\t\n\t\tfor (var i = 0; i < 8; i++) {\n\t\t\t\n\t\t\tthis.makeImpl(true, i);\n\t\n\t\t\tvar lostPoint = QRUtil.getLostPoint(this);\n\t\n\t\t\tif (i == 0 || minLostPoint >  lostPoint) {\n\t\t\t\tminLostPoint = lostPoint;\n\t\t\t\tpattern = i;\n\t\t\t}\n\t\t}\n\t\n\t\treturn pattern;\n\t},\n\t\n\tcreateMovieClip : function(target_mc, instance_name, depth) {\n\t\n\t\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\t\tvar cs = 1;\n\t\n\t\tthis.make();\n\n\t\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\t\n\t\t\tvar y = row * cs;\n\t\t\t\n\t\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\t\n\t\t\t\tvar x = col * cs;\n\t\t\t\tvar dark = this.modules[row][col];\n\t\t\t\n\t\t\t\tif (dark) {\n\t\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\t\tqr_mc.endFill();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn qr_mc;\n\t},\n\n\tsetupTimingPattern : function() {\n\t\t\n\t\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\t\tif (this.modules[r][6] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.modules[r][6] = (r % 2 == 0);\n\t\t}\n\t\n\t\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\t\tif (this.modules[6][c] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.modules[6][c] = (c % 2 == 0);\n\t\t}\n\t},\n\t\n\tsetupPositionAdjustPattern : function() {\n\t\n\t\tvar pos = QRUtil.getPatternPosition(this.typeNumber);\n\t\t\n\t\tfor (var i = 0; i < pos.length; i++) {\n\t\t\n\t\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\t\n\t\t\t\tvar row = pos[i];\n\t\t\t\tvar col = pos[j];\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\t\n\t\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\t\n\t\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2 \n\t\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t\n\tsetupTypeNumber : function(test) {\n\t\n\t\tvar bits = QRUtil.getBCHTypeNumber(this.typeNumber);\n\t\n\t\tfor (var i = 0; i < 18; i++) {\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t\t}\n\t\n\t\tfor (var i = 0; i < 18; i++) {\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t\t}\n\t},\n\t\n\tsetupTypeInfo : function(test, maskPattern) {\n\t\n\t\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\t\tvar bits = QRUtil.getBCHTypeInfo(data);\n\t\n\t\t// vertical\t\t\n\t\tfor (var i = 0; i < 15; i++) {\n\t\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\n\t\t\tif (i < 6) {\n\t\t\t\tthis.modules[i][8] = mod;\n\t\t\t} else if (i < 8) {\n\t\t\t\tthis.modules[i + 1][8] = mod;\n\t\t\t} else {\n\t\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t\t}\n\t\t}\n\t\n\t\t// horizontal\n\t\tfor (var i = 0; i < 15; i++) {\n\t\n\t\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\t\n\t\t\tif (i < 8) {\n\t\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t\t} else if (i < 9) {\n\t\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t\t} else {\n\t\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t\t}\n\t\t}\n\t\n\t\t// fixed module\n\t\tthis.modules[this.moduleCount - 8][8] = (!test);\n\t\n\t},\n\t\n\tmapData : function(data, maskPattern) {\n\t\t\n\t\tvar inc = -1;\n\t\tvar row = this.moduleCount - 1;\n\t\tvar bitIndex = 7;\n\t\tvar byteIndex = 0;\n\t\t\n\t\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\t\n\t\t\tif (col == 6) col--;\n\t\n\t\t\twhile (true) {\n\t\n\t\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\t\n\t\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar dark = false;\n\t\n\t\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar mask = QRUtil.getMask(maskPattern, row, col - c);\n\t\n\t\t\t\t\t\tif (mask) {\n\t\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\t\tbitIndex--;\n\t\n\t\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\trow += inc;\n\t\n\t\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\t\trow -= inc;\n\t\t\t\t\tinc = -inc;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new QRBitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+  totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n}\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n            var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n\n}\n\n//---------------------------------------------------------------------\n// QRMode\n//---------------------------------------------------------------------\n\nvar QRMode = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n\n//---------------------------------------------------------------------\n// QRErrorCorrectLevel\n//---------------------------------------------------------------------\n \nvar QRErrorCorrectLevel = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n//---------------------------------------------------------------------\n// QRMaskPattern\n//---------------------------------------------------------------------\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\n//---------------------------------------------------------------------\n// QRUtil\n//---------------------------------------------------------------------\n \nvar QRUtil = {\n\n    PATTERN_POSITION_TABLE : [\n\t    [],\n\t    [6, 18],\n\t    [6, 22],\n\t    [6, 26],\n\t    [6, 30],\n\t    [6, 34],\n\t    [6, 22, 38],\n\t    [6, 24, 42],\n\t    [6, 26, 46],\n\t    [6, 28, 50],\n\t    [6, 30, 54],\t\t\n\t    [6, 32, 58],\n\t    [6, 34, 62],\n\t    [6, 26, 46, 66],\n\t    [6, 26, 48, 70],\n\t    [6, 26, 50, 74],\n\t    [6, 30, 54, 78],\n\t    [6, 30, 56, 82],\n\t    [6, 30, 58, 86],\n\t    [6, 34, 62, 90],\n\t    [6, 28, 50, 72, 94],\n\t    [6, 26, 50, 74, 98],\n\t    [6, 30, 54, 78, 102],\n\t    [6, 28, 54, 80, 106],\n\t    [6, 32, 58, 84, 110],\n\t    [6, 30, 58, 86, 114],\n\t    [6, 34, 62, 90, 118],\n\t    [6, 26, 50, 74, 98, 122],\n\t    [6, 30, 54, 78, 102, 126],\n\t    [6, 26, 52, 78, 104, 130],\n\t    [6, 30, 56, 82, 108, 134],\n\t    [6, 34, 60, 86, 112, 138],\n\t    [6, 30, 58, 86, 114, 142],\n\t    [6, 34, 62, 90, 118, 146],\n\t    [6, 30, 54, 78, 102, 126, 150],\n\t    [6, 24, 50, 76, 102, 128, 154],\n\t    [6, 28, 54, 80, 106, 132, 158],\n\t    [6, 32, 58, 84, 110, 136, 162],\n\t    [6, 26, 54, 82, 110, 138, 166],\n\t    [6, 30, 58, 86, 114, 142, 170]\n    ],\n\n    G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n    G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n    G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n    getBCHTypeInfo : function(data) {\n\t    var d = data << 10;\n\t    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t    d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t    }\n\t    return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n    },\n\n    getBCHTypeNumber : function(data) {\n\t    var d = data << 12;\n\t    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t    d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t    }\n\t    return (data << 12) | d;\n    },\n\n    getBCHDigit : function(data) {\n\n\t    var digit = 0;\n\n\t    while (data != 0) {\n\t\t    digit++;\n\t\t    data >>>= 1;\n\t    }\n\n\t    return digit;\n    },\n\n    getPatternPosition : function(typeNumber) {\n\t    return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n    },\n\n    getMask : function(maskPattern, i, j) {\n\t    \n\t    switch (maskPattern) {\n\t\t    \n\t    case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t    case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t    case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t    case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t    case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t    case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t    case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t    case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t    default :\n\t\t    throw new Error(\"bad maskPattern:\" + maskPattern);\n\t    }\n    },\n\n    getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t    var a = new QRPolynomial([1], 0);\n\n\t    for (var i = 0; i < errorCorrectLength; i++) {\n\t\t    a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0) );\n\t    }\n\n\t    return a;\n    },\n\n    getLengthInBits : function(mode, type) {\n\n\t    if (1 <= type && type < 10) {\n\n\t\t    // 1 - 9\n\n\t\t    switch(mode) {\n\t\t    case QRMode.MODE_NUMBER \t: return 10;\n\t\t    case QRMode.MODE_ALPHA_NUM \t: return 9;\n\t\t    case QRMode.MODE_8BIT_BYTE\t: return 8;\n\t\t    case QRMode.MODE_KANJI  \t: return 8;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else if (type < 27) {\n\n\t\t    // 10 - 26\n\n\t\t    switch(mode) {\n\t\t    case QRMode.MODE_NUMBER \t: return 12;\n\t\t    case QRMode.MODE_ALPHA_NUM \t: return 11;\n\t\t    case QRMode.MODE_8BIT_BYTE\t: return 16;\n\t\t    case QRMode.MODE_KANJI  \t: return 10;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else if (type < 41) {\n\n\t\t    // 27 - 40\n\n\t\t    switch(mode) {\n\t\t    case QRMode.MODE_NUMBER \t: return 14;\n\t\t    case QRMode.MODE_ALPHA_NUM\t: return 13;\n\t\t    case QRMode.MODE_8BIT_BYTE\t: return 16;\n\t\t    case QRMode.MODE_KANJI  \t: return 12;\n\t\t    default :\n\t\t\t    throw new Error(\"mode:\" + mode);\n\t\t    }\n\n\t    } else {\n\t\t    throw new Error(\"type:\" + type);\n\t    }\n    },\n\n    getLostPoint : function(qrCode) {\n\t    \n\t    var moduleCount = qrCode.getModuleCount();\n\t    \n\t    var lostPoint = 0;\n\t    \n\t    // LEVEL1\n\t    \n\t    for (var row = 0; row < moduleCount; row++) {\n\n\t\t    for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t    var sameCount = 0;\n\t\t\t    var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t    if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t    continue;\n\t\t\t\t    }\n\n\t\t\t\t    for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t    if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t    continue;\n\t\t\t\t\t    }\n\n\t\t\t\t\t    if (r == 0 && c == 0) {\n\t\t\t\t\t\t    continue;\n\t\t\t\t\t    }\n\n\t\t\t\t\t    if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t    sameCount++;\n\t\t\t\t\t    }\n\t\t\t\t    }\n\t\t\t    }\n\n\t\t\t    if (sameCount > 5) {\n\t\t\t\t    lostPoint += (3 + sameCount - 5);\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL2\n\n\t    for (var row = 0; row < moduleCount - 1; row++) {\n\t\t    for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t    var count = 0;\n\t\t\t    if (qrCode.isDark(row,     col    ) ) count++;\n\t\t\t    if (qrCode.isDark(row + 1, col    ) ) count++;\n\t\t\t    if (qrCode.isDark(row,     col + 1) ) count++;\n\t\t\t    if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t    if (count == 0 || count == 4) {\n\t\t\t\t    lostPoint += 3;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL3\n\n\t    for (var row = 0; row < moduleCount; row++) {\n\t\t    for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t    if (qrCode.isDark(row, col)\n\t\t\t\t\t    && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 2)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 3)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 4)\n\t\t\t\t\t    && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t    &&  qrCode.isDark(row, col + 6) ) {\n\t\t\t\t    lostPoint += 40;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    for (var col = 0; col < moduleCount; col++) {\n\t\t    for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t    if (qrCode.isDark(row, col)\n\t\t\t\t\t    && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 2, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 3, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 4, col)\n\t\t\t\t\t    && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t    &&  qrCode.isDark(row + 6, col) ) {\n\t\t\t\t    lostPoint += 40;\n\t\t\t    }\n\t\t    }\n\t    }\n\n\t    // LEVEL4\n\t    \n\t    var darkCount = 0;\n\n\t    for (var col = 0; col < moduleCount; col++) {\n\t\t    for (var row = 0; row < moduleCount; row++) {\n\t\t\t    if (qrCode.isDark(row, col) ) {\n\t\t\t\t    darkCount++;\n\t\t\t    }\n\t\t    }\n\t    }\n\t    \n\t    var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t    lostPoint += ratio * 10;\n\n\t    return lostPoint;\t\t\n    }\n\n};\n\n\n//---------------------------------------------------------------------\n// QRMath\n//---------------------------------------------------------------------\n\nvar QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\n//---------------------------------------------------------------------\n// QRPolynomial\n//---------------------------------------------------------------------\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i) ) + QRMath.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = QRMath.glog(this.get(0) ) - QRMath.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= QRMath.gexp(QRMath.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\n//---------------------------------------------------------------------\n// QRRSBlock\n//---------------------------------------------------------------------\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount  = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount  = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase QRErrorCorrectLevel.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase QRErrorCorrectLevel.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase QRErrorCorrectLevel.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase QRErrorCorrectLevel.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\n//---------------------------------------------------------------------\n// QRBitBuffer\n//---------------------------------------------------------------------\n\nfunction QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-slimscroll/slimScroll.jquery.json",
    "content": "{\n  \"name\"        : \"slimScroll\",\n  \"version\"     : \"1.3.2\",\n  \"title\"       : \"jQuery slimScroll scrollbar\",\n  \"description\" : \"slimScroll is a small jQuery plugin that transforms any div into a scrollable area. slimScroll doesn't occupy any visual space as it only appears on a user initiated mouse-over.\",\n  \"keywords\"    : [\"scrollbar\", \"scroll\", \"slimscroll\", \"scrollable\", \"scrolling\", \"scroller\", \"ui\"],\n  \"demo\"        : \"http://rocha.la/jQuery-slimScroll/\",\n  \"homepage\"    : \"http://rocha.la/jQuery-slimScroll/\",\n  \"download\"    : \"http://rocha.la/jQuery-slimScroll/\",\n\n  \"author\" : {\n    \"name\"  : \"Piotr Rochala\",\n    \"url\"   : \"http://rocha.la/\"\n  },\n\n  \"dependencies\" : {\n    \"jquery\" : \">= 1.7\"\n  },\n\n  \"licenses\" : [\n    {\n      \"type\": \"MIT\",\n      \"url\": \"http://www.opensource.org/licenses/mit-license.php\"\n    },\n    {\n      \"type\": \"GPL\",\n      \"url\": \"http://www.opensource.org/licenses/gpl-license.php\"\n    }\n  ]\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ar.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: AR (Arabic; العربية)\n */\n$.extend($.validator.messages, {\n\trequired: \"هذا الحقل إلزامي\",\n\tremote: \"يرجى تصحيح هذا الحقل للمتابعة\",\n\temail: \"رجاء إدخال عنوان بريد إلكتروني صحيح\",\n\turl: \"رجاء إدخال عنوان موقع إلكتروني صحيح\",\n\tdate: \"رجاء إدخال تاريخ صحيح\",\n\tdateISO: \"رجاء إدخال تاريخ صحيح (ISO)\",\n\tnumber: \"رجاء إدخال عدد بطريقة صحيحة\",\n\tdigits: \"رجاء إدخال أرقام فقط\",\n\tcreditcard: \"رجاء إدخال رقم بطاقة ائتمان صحيح\",\n\tequalTo: \"رجاء إدخال نفس القيمة\",\n\textension: \"رجاء إدخال ملف بامتداد موافق عليه\",\n\tmaxlength: $.validator.format(\"الحد الأقصى لعدد الحروف هو {0}\"),\n\tminlength: $.validator.format(\"الحد الأدنى لعدد الحروف هو {0}\"),\n\trangelength: $.validator.format(\"عدد الحروف يجب أن يكون بين {0} و {1}\"),\n\trange: $.validator.format(\"رجاء إدخال عدد قيمته بين {0} و {1}\"),\n\tmax: $.validator.format(\"رجاء إدخال عدد أقل من أو يساوي (0}\"),\n\tmin: $.validator.format(\"رجاء إدخال عدد أكبر من أو يساوي (0}\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_bg.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: BG (Bulgarian; български език)\n */\n$.extend($.validator.messages, {\n\trequired: \"Полето е задължително.\",\n\tremote: \"Моля, въведете правилната стойност.\",\n\temail: \"Моля, въведете валиден email.\",\n\turl: \"Моля, въведете валидно URL.\",\n\tdate: \"Моля, въведете валидна дата.\",\n\tdateISO: \"Моля, въведете валидна дата (ISO).\",\n\tnumber: \"Моля, въведете валиден номер.\",\n\tdigits: \"Моля, въведете само цифри.\",\n\tcreditcard: \"Моля, въведете валиден номер на кредитна карта.\",\n\tequalTo: \"Моля, въведете същата стойност отново.\",\n\textension: \"Моля, въведете стойност с валидно разширение.\",\n\tmaxlength: $.validator.format(\"Моля, въведете повече от {0} символа.\"),\n\tminlength: $.validator.format(\"Моля, въведете поне {0} символа.\"),\n\trangelength: $.validator.format(\"Моля, въведете стойност с дължина между {0} и {1} символа.\"),\n\trange: $.validator.format(\"Моля, въведете стойност между {0} и {1}.\"),\n\tmax: $.validator.format(\"Моля, въведете стойност по-малка или равна на {0}.\"),\n\tmin: $.validator.format(\"Моля, въведете стойност по-голяма или равна на {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_bn_BD.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: bn_BD (Bengali, Bangladesh)\n */\n$.extend($.validator.messages, {\n\trequired: \"এই তথ্যটি আবশ্যক।\",\n\tremote: \"এই তথ্যটি ঠিক করুন।\",\n\temail: \"অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।\",\n\turl: \"অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।\",\n\tdate: \"তারিখ সঠিক নয়।\",\n\tdateISO: \"অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।\",\n\tnumber: \"অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।\",\n\tdigits: \"এখানে শুধু সংখ্যা ব্যবহার করা যাবে।\",\n\tcreditcard: \"অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।\",\n\tequalTo: \"একই মান আবার লিখুন।\",\n\textension: \"সঠিক ধরনের ফাইল আপলোড করুন।\",\n\tmaxlength: $.validator.format(\"{0}টির বেশি অক্ষর লেখা যাবে না।\"),\n\tminlength: $.validator.format(\"{0}টির কম অক্ষর লেখা যাবে না।\"),\n\trangelength: $.validator.format(\"{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।\"),\n\trange: $.validator.format(\"{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।\"),\n\tmax: $.validator.format(\"অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।\"),\n\tmin: $.validator.format(\"অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ca.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: CA (Catalan; català)\n */\n$.extend($.validator.messages, {\n\trequired: \"Aquest camp és obligatori.\",\n\tremote: \"Si us plau, omple aquest camp.\",\n\temail: \"Si us plau, escriu una adreça de correu-e vàlida\",\n\turl: \"Si us plau, escriu una URL vàlida.\",\n\tdate: \"Si us plau, escriu una data vàlida.\",\n\tdateISO: \"Si us plau, escriu una data (ISO) vàlida.\",\n\tnumber: \"Si us plau, escriu un número enter vàlid.\",\n\tdigits: \"Si us plau, escriu només dígits.\",\n\tcreditcard: \"Si us plau, escriu un número de tarjeta vàlid.\",\n\tequalTo: \"Si us plau, escriu el mateix valor de nou.\",\n\textension: \"Si us plau, escriu un valor amb una extensió acceptada.\",\n\tmaxlength: $.validator.format(\"Si us plau, no escriguis més de {0} caracters.\"),\n\tminlength: $.validator.format(\"Si us plau, no escriguis menys de {0} caracters.\"),\n\trangelength: $.validator.format(\"Si us plau, escriu un valor entre {0} i {1} caracters.\"),\n\trange: $.validator.format(\"Si us plau, escriu un valor entre {0} i {1}.\"),\n\tmax: $.validator.format(\"Si us plau, escriu un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Si us plau, escriu un valor major o igual a {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_cs.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: CS (Czech; čeština, český jazyk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Tento údaj je povinný.\",\n\tremote: \"Prosím, opravte tento údaj.\",\n\temail: \"Prosím, zadejte platný e-mail.\",\n\turl: \"Prosím, zadejte platné URL.\",\n\tdate: \"Prosím, zadejte platné datum.\",\n\tdateISO: \"Prosím, zadejte platné datum (ISO).\",\n\tnumber: \"Prosím, zadejte číslo.\",\n\tdigits: \"Prosím, zadávejte pouze číslice.\",\n\tcreditcard: \"Prosím, zadejte číslo kreditní karty.\",\n\tequalTo: \"Prosím, zadejte znovu stejnou hodnotu.\",\n\textension: \"Prosím, zadejte soubor se správnou příponou.\",\n\tmaxlength: $.validator.format(\"Prosím, zadejte nejvíce {0} znaků.\"),\n\tminlength: $.validator.format(\"Prosím, zadejte nejméně {0} znaků.\"),\n\trangelength: $.validator.format(\"Prosím, zadejte od {0} do {1} znaků.\"),\n\trange: $.validator.format(\"Prosím, zadejte hodnotu od {0} do {1}.\"),\n\tmax: $.validator.format(\"Prosím, zadejte hodnotu menší nebo rovnu {0}.\"),\n\tmin: $.validator.format(\"Prosím, zadejte hodnotu větší nebo rovnu {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_da.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: DA (Danish; dansk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dette felt er påkrævet.\",\n\tmaxlength: $.validator.format(\"Indtast højst {0} tegn.\"),\n\tminlength: $.validator.format(\"Indtast mindst {0} tegn.\"),\n\trangelength: $.validator.format(\"Indtast mindst {0} og højst {1} tegn.\"),\n\temail: \"Indtast en gyldig email-adresse.\",\n\turl: \"Indtast en gyldig URL.\",\n\tdate: \"Indtast en gyldig dato.\",\n\tnumber: \"Indtast et tal.\",\n\tdigits: \"Indtast kun cifre.\",\n\tequalTo: \"Indtast den samme værdi igen.\",\n\trange: $.validator.format(\"Angiv en værdi mellem {0} og {1}.\"),\n\tmax: $.validator.format(\"Angiv en værdi der højst er {0}.\"),\n\tmin: $.validator.format(\"Angiv en værdi der mindst er {0}.\"),\n\tcreditcard: \"Indtast et gyldigt kreditkortnummer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_de.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: DE (German, Deutsch)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dieses Feld ist ein Pflichtfeld.\",\n\tmaxlength: $.validator.format(\"Geben Sie bitte maximal {0} Zeichen ein.\"),\n\tminlength: $.validator.format(\"Geben Sie bitte mindestens {0} Zeichen ein.\"),\n\trangelength: $.validator.format(\"Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein.\"),\n\temail: \"Geben Sie bitte eine gültige E-Mail Adresse ein.\",\n\turl: \"Geben Sie bitte eine gültige URL ein.\",\n\tdate: \"Bitte geben Sie ein gültiges Datum ein.\",\n\tnumber: \"Geben Sie bitte eine Nummer ein.\",\n\tdigits: \"Geben Sie bitte nur Ziffern ein.\",\n\tequalTo: \"Bitte denselben Wert wiederholen.\",\n\trange: $.validator.format(\"Geben Sie bitte einen Wert zwischen {0} und {1} ein.\"),\n\tmax: $.validator.format(\"Geben Sie bitte einen Wert kleiner oder gleich {0} ein.\"),\n\tmin: $.validator.format(\"Geben Sie bitte einen Wert größer oder gleich {0} ein.\"),\n\tcreditcard: \"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_el.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: EL (Greek; ελληνικά)\n */\n$.extend($.validator.messages, {\n\trequired: \"Αυτό το πεδίο είναι υποχρεωτικό.\",\n\tremote: \"Παρακαλώ διορθώστε αυτό το πεδίο.\",\n\temail: \"Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.\",\n\turl: \"Παρακαλώ εισάγετε ένα έγκυρο URL.\",\n\tdate: \"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.\",\n\tdateISO: \"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).\",\n\tnumber: \"Παρακαλώ εισάγετε έναν έγκυρο αριθμό.\",\n\tdigits: \"Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.\",\n\tcreditcard: \"Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.\",\n\tequalTo: \"Παρακαλώ εισάγετε την ίδια τιμή ξανά.\",\n\textension: \"Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.\",\n\tmaxlength: $.validator.format(\"Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες.\"),\n\tminlength: $.validator.format(\"Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες.\"),\n\trangelength: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων.\"),\n\trange: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}.\"),\n\tmax: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}.\"),\n\tmin: $.validator.format(\"Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_es.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, rellena este campo.\",\n\temail: \"Por favor, escribe una dirección de correo válida.\",\n\turl: \"Por favor, escribe una URL válida.\",\n\tdate: \"Por favor, escribe una fecha válida.\",\n\tdateISO: \"Por favor, escribe una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escribe un número válido.\",\n\tdigits: \"Por favor, escribe sólo dígitos.\",\n\tcreditcard: \"Por favor, escribe un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escribe el mismo valor de nuevo.\",\n\textension: \"Por favor, escribe un valor con una extensión aceptada.\",\n\tmaxlength: $.validator.format(\"Por favor, no escribas más de {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, no escribas menos de {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, escribe un valor entre {0} y {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, escribe un valor entre {0} y {1}.\"),\n\tmax: $.validator.format(\"Por favor, escribe un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, escribe un valor mayor o igual a {0}.\"),\n\tnifES: \"Por favor, escribe un NIF válido.\",\n\tnieES: \"Por favor, escribe un NIE válido.\",\n\tcifES: \"Por favor, escribe un CIF válido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_es_AR.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n * Region: AR (Argentina)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, completá este campo.\",\n\temail: \"Por favor, escribí una dirección de correo válida.\",\n\turl: \"Por favor, escribí una URL válida.\",\n\tdate: \"Por favor, escribí una fecha válida.\",\n\tdateISO: \"Por favor, escribí una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escribí un número entero válido.\",\n\tdigits: \"Por favor, escribí sólo dígitos.\",\n\tcreditcard: \"Por favor, escribí un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escribí el mismo valor de nuevo.\",\n\textension: \"Por favor, escribí un valor con una extensión aceptada.\",\n\tmaxlength: $.validator.format(\"Por favor, no escribas más de {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, no escribas menos de {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, escribí un valor entre {0} y {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, escribí un valor entre {0} y {1}.\"),\n\tmax: $.validator.format(\"Por favor, escribí un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, escribí un valor mayor o igual a {0}.\"),\n\tnifES: \"Por favor, escribí un NIF válido.\",\n\tnieES: \"Por favor, escribí un NIE válido.\",\n\tcifES: \"Por favor, escribí un CIF válido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_es_PE.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ES (Spanish; Español)\n * Region: PE (Perú)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo es obligatorio.\",\n\tremote: \"Por favor, llene este campo.\",\n\temail: \"Por favor, escriba un correo electrónico válido.\",\n\turl: \"Por favor, escriba una URL válida.\",\n\tdate: \"Por favor, escriba una fecha válida.\",\n\tdateISO: \"Por favor, escriba una fecha (ISO) válida.\",\n\tnumber: \"Por favor, escriba un número válido.\",\n\tdigits: \"Por favor, escriba sólo dígitos.\",\n\tcreditcard: \"Por favor, escriba un número de tarjeta válido.\",\n\tequalTo: \"Por favor, escriba el mismo valor de nuevo.\",\n\textension: \"Por favor, escriba un valor con una extensión permitida.\",\n\tmaxlength: $.validator.format(\"Por favor, no escriba más de {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, no escriba menos de {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, escriba un valor entre {0} y {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, escriba un valor entre {0} y {1}.\"),\n\tmax: $.validator.format(\"Por favor, escriba un valor menor o igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, escriba un valor mayor o igual a {0}.\"),\n\tnifES: \"Por favor, escriba un NIF válido.\",\n\tnieES: \"Por favor, escriba un NIE válido.\",\n\tcifES: \"Por favor, escriba un CIF válido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_et.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ET (Estonian; eesti, eesti keel)\n */\n$.extend($.validator.messages, {\n\trequired: \"See väli peab olema täidetud.\",\n\tmaxlength: $.validator.format(\"Palun sisestage vähem kui {0} tähemärki.\"),\n\tminlength: $.validator.format(\"Palun sisestage vähemalt {0} tähemärki.\"),\n\trangelength: $.validator.format(\"Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki.\"),\n\temail: \"Palun sisestage korrektne e-maili aadress.\",\n\turl: \"Palun sisestage korrektne URL.\",\n\tdate: \"Palun sisestage korrektne kuupäev.\",\n\tdateISO: \"Palun sisestage korrektne kuupäev (YYYY-MM-DD).\",\n\tnumber: \"Palun sisestage korrektne number.\",\n\tdigits: \"Palun sisestage ainult numbreid.\",\n\tequalTo: \"Palun sisestage sama väärtus uuesti.\",\n\trange: $.validator.format(\"Palun sisestage väärtus vahemikus {0} kuni {1}.\"),\n\tmax: $.validator.format(\"Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}.\"),\n\tmin: $.validator.format(\"Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}.\"),\n\tcreditcard: \"Palun sisestage korrektne krediitkaardi number.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_eu.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: EU (Basque; euskara, euskera)\n */\n$.extend($.validator.messages, {\n\trequired: \"Eremu hau beharrezkoa da.\",\n\tremote: \"Mesedez, bete eremu hau.\",\n\temail: \"Mesedez, idatzi baliozko posta helbide bat.\",\n\turl: \"Mesedez, idatzi baliozko URL bat.\",\n\tdate: \"Mesedez, idatzi baliozko data bat.\",\n\tdateISO: \"Mesedez, idatzi baliozko (ISO) data bat.\",\n\tnumber: \"Mesedez, idatzi baliozko zenbaki oso bat.\",\n\tdigits: \"Mesedez, idatzi digituak soilik.\",\n\tcreditcard: \"Mesedez, idatzi baliozko txartel zenbaki bat.\",\n\tequalTo: \"Mesedez, idatzi berdina berriro ere.\",\n\textension: \"Mesedez, idatzi onartutako luzapena duen balio bat.\",\n\tmaxlength: $.validator.format(\"Mesedez, ez idatzi {0} karaktere baino gehiago.\"),\n\tminlength: $.validator.format(\"Mesedez, ez idatzi {0} karaktere baino gutxiago.\"),\n\trangelength: $.validator.format(\"Mesedez, idatzi {0} eta {1} karaktere arteko balio bat.\"),\n\trange: $.validator.format(\"Mesedez, idatzi {0} eta {1} arteko balio bat.\"),\n\tmax: $.validator.format(\"Mesedez, idatzi {0} edo txikiagoa den balio bat.\"),\n\tmin: $.validator.format(\"Mesedez, idatzi {0} edo handiagoa den balio bat.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_fa.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FA (Persian; فارسی)\n */\n$.extend($.validator.messages, {\n\trequired: \"تکمیل این فیلد اجباری است.\",\n\tremote: \"لطفا این فیلد را تصحیح کنید.\",\n\temail: \".لطفا یک ایمیل صحیح وارد کنید\",\n\turl: \"لطفا آدرس صحیح وارد کنید.\",\n\tdate: \"لطفا یک تاریخ صحیح وارد کنید\",\n\tdateFA: \"لطفا یک تاریخ صحیح وارد کنید\",\n\tdateISO: \"لطفا تاریخ صحیح وارد کنید (ISO).\",\n\tnumber: \"لطفا عدد صحیح وارد کنید.\",\n\tdigits: \"لطفا تنها رقم وارد کنید\",\n\tcreditcard: \"لطفا کریدیت کارت صحیح وارد کنید.\",\n\tequalTo: \"لطفا مقدار برابری وارد کنید\",\n\textension: \"لطفا مقداری وارد کنید که \",\n\tmaxlength: $.validator.format(\"لطفا بیشتر از {0} حرف وارد نکنید.\"),\n\tminlength: $.validator.format(\"لطفا کمتر از {0} حرف وارد نکنید.\"),\n\trangelength: $.validator.format(\"لطفا مقداری بین {0} تا {1} حرف وارد کنید.\"),\n\trange: $.validator.format(\"لطفا مقداری بین {0} تا {1} حرف وارد کنید.\"),\n\tmax: $.validator.format(\"لطفا مقداری کمتر از {0} حرف وارد کنید.\"),\n\tmin: $.validator.format(\"لطفا مقداری بیشتر از {0} حرف وارد کنید.\"),\n\tminWords: $.validator.format(\"لطفا حداقل {0} کلمه وارد کنید.\"),\n\tmaxWords: $.validator.format(\"لطفا حداکثر {0} کلمه وارد کنید.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_fi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FI (Finnish; suomi, suomen kieli)\n */\n$.extend($.validator.messages, {\n\trequired: \"T&auml;m&auml; kentt&auml; on pakollinen.\",\n\temail: \"Sy&ouml;t&auml; oikea s&auml;hk&ouml;postiosoite.\",\n\turl: \"Sy&ouml;t&auml; oikea URL-osoite.\",\n\tdate: \"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml;.\",\n\tdateISO: \"Sy&ouml;t&auml; oikea p&auml;iv&auml;m&auml;&auml;r&auml; muodossa VVVV-KK-PP.\",\n\tnumber: \"Sy&ouml;t&auml; luku.\",\n\tcreditcard: \"Sy&ouml;t&auml; voimassa oleva luottokorttinumero.\",\n\tdigits: \"Sy&ouml;t&auml; pelk&auml;st&auml;&auml;n numeroita.\",\n\tequalTo: \"Sy&ouml;t&auml; sama arvo uudestaan.\",\n\tmaxlength: $.validator.format(\"Voit sy&ouml;tt&auml;&auml; enint&auml;&auml;n {0} merkki&auml;.\"),\n\tminlength: $.validator.format(\"V&auml;hint&auml;&auml;n {0} merkki&auml;.\"),\n\trangelength: $.validator.format(\"Sy&ouml;t&auml; v&auml;hint&auml;&auml;n {0} ja enint&auml;&auml;n {1} merkki&auml;.\"),\n\trange: $.validator.format(\"Sy&ouml;t&auml; arvo v&auml;lilt&auml; {0}&ndash;{1}.\"),\n\tmax: $.validator.format(\"Sy&ouml;t&auml; arvo, joka on enint&auml;&auml;n {0}.\"),\n\tmin: $.validator.format(\"Sy&ouml;t&auml; arvo, joka on v&auml;hint&auml;&auml;n {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_fr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: FR (French; français)\n */\n$.extend($.validator.messages, {\n\trequired: \"Ce champ est obligatoire.\",\n\tremote: \"Veuillez corriger ce champ.\",\n\temail: \"Veuillez fournir une adresse électronique valide.\",\n\turl: \"Veuillez fournir une adresse URL valide.\",\n\tdate: \"Veuillez fournir une date valide.\",\n\tdateISO: \"Veuillez fournir une date valide (ISO).\",\n\tnumber: \"Veuillez fournir un numéro valide.\",\n\tdigits: \"Veuillez fournir seulement des chiffres.\",\n\tcreditcard: \"Veuillez fournir un numéro de carte de crédit valide.\",\n\tequalTo: \"Veuillez fournir encore la même valeur.\",\n\textension: \"Veuillez fournir une valeur avec une extension valide.\",\n\tmaxlength: $.validator.format(\"Veuillez fournir au plus {0} caractères.\"),\n\tminlength: $.validator.format(\"Veuillez fournir au moins {0} caractères.\"),\n\trangelength: $.validator.format(\"Veuillez fournir une valeur qui contient entre {0} et {1} caractères.\"),\n\trange: $.validator.format(\"Veuillez fournir une valeur entre {0} et {1}.\"),\n\tmax: $.validator.format(\"Veuillez fournir une valeur inférieure ou égale à {0}.\"),\n\tmin: $.validator.format(\"Veuillez fournir une valeur supérieure ou égale à {0}.\"),\n\tmaxWords: $.validator.format(\"Veuillez fournir au plus {0} mots.\"),\n\tminWords: $.validator.format(\"Veuillez fournir au moins {0} mots.\"),\n\trangeWords: $.validator.format(\"Veuillez fournir entre {0} et {1} mots.\"),\n\tletterswithbasicpunc: \"Veuillez fournir seulement des lettres et des signes de ponctuation.\",\n\talphanumeric: \"Veuillez fournir seulement des lettres, nombres, espaces et soulignages.\",\n\tlettersonly: \"Veuillez fournir seulement des lettres.\",\n\tnowhitespace: \"Veuillez ne pas inscrire d'espaces blancs.\",\n\tziprange: \"Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.\",\n\tinteger: \"Veuillez fournir un nombre non décimal qui est positif ou négatif.\",\n\tvinUS: \"Veuillez fournir un numéro d'identification du véhicule (VIN).\",\n\tdateITA: \"Veuillez fournir une date valide.\",\n\ttime: \"Veuillez fournir une heure valide entre 00:00 et 23:59.\",\n\tphoneUS: \"Veuillez fournir un numéro de téléphone valide.\",\n\tphoneUK: \"Veuillez fournir un numéro de téléphone valide.\",\n\tmobileUK: \"Veuillez fournir un numéro de téléphone mobile valide.\",\n\tstrippedminlength: $.validator.format(\"Veuillez fournir au moins {0} caractères.\"),\n\temail2: \"Veuillez fournir une adresse électronique valide.\",\n\turl2: \"Veuillez fournir une adresse URL valide.\",\n\tcreditcardtypes: \"Veuillez fournir un numéro de carte de crédit valide.\",\n\tipv4: \"Veuillez fournir une adresse IP v4 valide.\",\n\tipv6: \"Veuillez fournir une adresse IP v6 valide.\",\n\trequire_from_group: \"Veuillez fournir au moins {0} de ces champs.\",\n\tnifES: \"Veuillez fournir un numéro NIF valide.\",\n\tnieES: \"Veuillez fournir un numéro NIE valide.\",\n\tcifES: \"Veuillez fournir un numéro CIF valide.\",\n\tpostalCodeCA: \"Veuillez fournir un code postal valide.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ge.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/**\n * @author  @tatocaster <kutaliatato@gmail.com>\n * Translated default messages for the jQuery validation plugin.\n * Locale: GE (Georgian; ქართული)\n */\n$.extend($.validator.messages, {\n\trequired: \"ეს ველი სავალდებულოა\",\n\tremote: \"გთხოვთ შეასწოროთ.\",\n\temail: \"გთხოვთ შეიყვანოთ სწორი ფორმატით.\",\n\turl: \"გთხოვთ შეიყვანოთ სწორი ფორმატით.\",\n\tdate: \"გთხოვთ შეიყვანოთ სწორი თარიღი.\",\n\tdateISO: \"გთხოვთ შეიყვანოთ სწორი ფორმატით ( ISO ).\",\n\tnumber: \"გთხოვთ შეიყვანოთ რიცხვი.\",\n\tdigits: \"დაშვებულია მხოლოდ ციფრები.\",\n\tcreditcard: \"გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.\",\n\tequalTo: \"გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.\",\n\tmaxlength: $.validator.format( \"გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი.\" ),\n\tminlength: $.validator.format( \"შეიყვანეთ მინიმუმ {0} სიმბოლო.\" ),\n\trangelength: $.validator.format( \"გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები.\" ),\n\trange: $.validator.format( \"შეიყვანეთ {0} -სა {1} -ს შორის.\" ),\n\tmax: $.validator.format( \"გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს.\" ),\n\tmin: $.validator.format( \"გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს.\" )\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_gl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: GL (Galician; Galego)\n */\n(function($) {\n\t$.extend($.validator.messages, {\n\t\trequired: \"Este campo é obrigatorio.\",\n\t\tremote: \"Por favor, cubre este campo.\",\n\t\temail: \"Por favor, escribe unha dirección de correo válida.\",\n\t\turl: \"Por favor, escribe unha URL válida.\",\n\t\tdate: \"Por favor, escribe unha data válida.\",\n\t\tdateISO: \"Por favor, escribe unha data (ISO) válida.\",\n\t\tnumber: \"Por favor, escribe un número válido.\",\n\t\tdigits: \"Por favor, escribe só díxitos.\",\n\t\tcreditcard: \"Por favor, escribe un número de tarxeta válido.\",\n\t\tequalTo: \"Por favor, escribe o mesmo valor de novo.\",\n\t\textension: \"Por favor, escribe un valor cunha extensión aceptada.\",\n\t\tmaxlength: $.validator.format(\"Por favor, non escribas máis de {0} caracteres.\"),\n\t\tminlength: $.validator.format(\"Por favor, non escribas menos de {0} caracteres.\"),\n\t\trangelength: $.validator.format(\"Por favor, escribe un valor entre {0} e {1} caracteres.\"),\n\t\trange: $.validator.format(\"Por favor, escribe un valor entre {0} e {1}.\"),\n\t\tmax: $.validator.format(\"Por favor, escribe un valor menor ou igual a {0}.\"),\n\t\tmin: $.validator.format(\"Por favor, escribe un valor maior ou igual a {0}.\"),\n\t\tnifES: \"Por favor, escribe un NIF válido.\",\n\t\tnieES: \"Por favor, escribe un NIE válido.\",\n\t\tcifES: \"Por favor, escribe un CIF válido.\"\n\t});\n}(jQuery));\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_he.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HE (Hebrew; עברית)\n */\n$.extend($.validator.messages, {\n\trequired: \"השדה הזה הינו שדה חובה\",\n\tremote: \"נא לתקן שדה זה\",\n\temail: \"נא למלא כתובת דוא\\\"ל חוקית\",\n\turl: \"נא למלא כתובת אינטרנט חוקית\",\n\tdate: \"נא למלא תאריך חוקי\",\n\tdateISO: \"נא למלא תאריך חוקי (ISO)\",\n\tnumber: \"נא למלא מספר\",\n\tdigits: \"נא למלא רק מספרים\",\n\tcreditcard: \"נא למלא מספר כרטיס אשראי חוקי\",\n\tequalTo: \"נא למלא את אותו ערך שוב\",\n\textension: \"נא למלא ערך עם סיומת חוקית\",\n\tmaxlength: $.validator.format(\".נא לא למלא יותר מ- {0} תווים\"),\n\tminlength: $.validator.format(\"נא למלא לפחות {0} תווים\"),\n\trangelength: $.validator.format(\"נא למלא ערך בין {0} ל- {1} תווים\"),\n\trange: $.validator.format(\"נא למלא ערך בין {0} ל- {1}\"),\n\tmax: $.validator.format(\"נא למלא ערך קטן או שווה ל- {0}\"),\n\tmin: $.validator.format(\"נא למלא ערך גדול או שווה ל- {0}\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_hr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HR (Croatia; hrvatski jezik)\n */\n$.extend($.validator.messages, {\n\trequired: \"Ovo polje je obavezno.\",\n\tremote: \"Ovo polje treba popraviti.\",\n\temail: \"Unesite ispravnu e-mail adresu.\",\n\turl: \"Unesite ispravan URL.\",\n\tdate: \"Unesite ispravan datum.\",\n\tdateISO: \"Unesite ispravan datum (ISO).\",\n\tnumber: \"Unesite ispravan broj.\",\n\tdigits: \"Unesite samo brojeve.\",\n\tcreditcard: \"Unesite ispravan broj kreditne kartice.\",\n\tequalTo: \"Unesite ponovo istu vrijednost.\",\n\textension: \"Unesite vrijednost sa ispravnom ekstenzijom.\",\n\tmaxlength: $.validator.format(\"Maksimalni broj znakova je {0} .\"),\n\tminlength: $.validator.format(\"Minimalni broj znakova je {0} .\"),\n\trangelength: $.validator.format(\"Unesite vrijednost između {0} i {1} znakova.\"),\n\trange: $.validator.format(\"Unesite vrijednost između {0} i {1}.\"),\n\tmax: $.validator.format(\"Unesite vrijednost manju ili jednaku {0}.\"),\n\tmin: $.validator.format(\"Unesite vrijednost veću ili jednaku {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_hu.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HU (Hungarian; Magyar)\n */\n$.extend($.validator.messages, {\n\trequired: \"Kötelező megadni.\",\n\tmaxlength: $.validator.format(\"Legfeljebb {0} karakter hosszú legyen.\"),\n\tminlength: $.validator.format(\"Legalább {0} karakter hosszú legyen.\"),\n\trangelength: $.validator.format(\"Legalább {0} és legfeljebb {1} karakter hosszú legyen.\"),\n\temail: \"Érvényes e-mail címnek kell lennie.\",\n\turl: \"Érvényes URL-nek kell lennie.\",\n\tdate: \"Dátumnak kell lennie.\",\n\tnumber: \"Számnak kell lennie.\",\n\tdigits: \"Csak számjegyek lehetnek.\",\n\tequalTo: \"Meg kell egyeznie a két értéknek.\",\n\trange: $.validator.format(\"{0} és {1} közé kell esnie.\"),\n\tmax: $.validator.format(\"Nem lehet nagyobb, mint {0}.\"),\n\tmin: $.validator.format(\"Nem lehet kisebb, mint {0}.\"),\n\tcreditcard: \"Érvényes hitelkártyaszámnak kell lennie.\",\n\tremote: \"Kérem javítsa ki ezt a mezőt.\",\n\tdateISO: \"Kérem írjon be egy érvényes dátumot (ISO).\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_hy_AM.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: HY_AM (Armenian; հայերեն լեզու)\n */\n$.extend($.validator.messages, {\n\trequired: \"Պարտադիր լրացման դաշտ\",\n\tremote: \"Ներմուծեք ճիշտ արժեքը\",\n\temail: \"Ներմուծեք վավեր էլեկտրոնային փոստի հասցե\",\n\turl: \"Ներմուծեք վավեր URL\",\n\tdate: \"Ներմուծեք վավեր ամսաթիվ\",\n\tdateISO: \"Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։\",\n\tnumber: \"Ներմուծեք թիվ\",\n\tdigits: \"Ներմուծեք միայն թվեր\",\n\tcreditcard: \"Ներմուծեք ճիշտ բանկային քարտի համար\",\n\tequalTo: \"Ներմուծեք միևնուն արժեքը ևս մեկ անգամ\",\n\textension: \"Ընտրեք ճիշտ ընդլանումով ֆայլ\",\n\tmaxlength: $.validator.format(\"Ներմուծեք ոչ ավել քան {0} նիշ\"),\n\tminlength: $.validator.format(\"Ներմուծեք ոչ պակաս քան {0} նիշ\"),\n\trangelength: $.validator.format(\"Ներմուծեք {0}֊ից {1} երկարությամբ արժեք\"),\n\trange: $.validator.format(\"Ներմուծեք թիվ {0}֊ից {1} միջակայքում\"),\n\tmax: $.validator.format(\"Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին\"),\n\tmin: $.validator.format(\"Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_id.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ID (Indonesia; Indonesian)\n */\n$.extend($.validator.messages, {\n\trequired: \"Kolom ini diperlukan.\",\n\tremote: \"Harap benarkan kolom ini.\",\n\temail: \"Silakan masukkan format email yang benar.\",\n\turl: \"Silakan masukkan format URL yang benar.\",\n\tdate: \"Silakan masukkan format tanggal yang benar.\",\n\tdateISO: \"Silakan masukkan format tanggal(ISO) yang benar.\",\n\tnumber: \"Silakan masukkan angka yang benar.\",\n\tdigits: \"Harap masukan angka saja.\",\n\tcreditcard: \"Harap masukkan format kartu kredit yang benar.\",\n\tequalTo: \"Harap masukkan nilai yg sama dengan sebelumnya.\",\n\tmaxlength: $.validator.format(\"Input dibatasi hanya {0} karakter.\"),\n\tminlength: $.validator.format(\"Input tidak kurang dari {0} karakter.\"),\n\trangelength: $.validator.format(\"Panjang karakter yg diizinkan antara {0} dan {1} karakter.\"),\n\trange: $.validator.format(\"Harap masukkan nilai antara {0} dan {1}.\"),\n\tmax: $.validator.format(\"Harap masukkan nilai lebih kecil atau sama dengan {0}.\"),\n\tmin: $.validator.format(\"Harap masukkan nilai lebih besar atau sama dengan {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_is.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: IS (Icelandic; íslenska)\n */\n$.extend($.validator.messages, {\n\trequired: \"Þessi reitur er nauðsynlegur.\",\n\tremote: \"Lagaðu þennan reit.\",\n\tmaxlength: $.validator.format(\"Sláðu inn mest {0} stafi.\"),\n\tminlength: $.validator.format(\"Sláðu inn minnst {0} stafi.\"),\n\trangelength: $.validator.format(\"Sláðu inn minnst {0} og mest {1} stafi.\"),\n\temail: \"Sláðu inn gilt netfang.\",\n\turl: \"Sláðu inn gilda vefslóð.\",\n\tdate: \"Sláðu inn gilda dagsetningu.\",\n\tnumber: \"Sláðu inn tölu.\",\n\tdigits: \"Sláðu inn tölustafi eingöngu.\",\n\tequalTo: \"Sláðu sama gildi inn aftur.\",\n\trange: $.validator.format(\"Sláðu inn gildi milli {0} og {1}.\"),\n\tmax: $.validator.format(\"Sláðu inn gildi sem er minna en eða jafnt og {0}.\"),\n\tmin: $.validator.format(\"Sláðu inn gildi sem er stærra en eða jafnt og {0}.\"),\n\tcreditcard: \"Sláðu inn gilt greiðslukortanúmer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_it.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: IT (Italian; Italiano)\n */\n$.extend($.validator.messages, {\n\trequired: \"Campo obbligatorio\",\n\tremote: \"Controlla questo campo\",\n\temail: \"Inserisci un indirizzo email valido\",\n\turl: \"Inserisci un indirizzo web valido\",\n\tdate: \"Inserisci una data valida\",\n\tdateISO: \"Inserisci una data valida (ISO)\",\n\tnumber: \"Inserisci un numero valido\",\n\tdigits: \"Inserisci solo numeri\",\n\tcreditcard: \"Inserisci un numero di carta di credito valido\",\n\tequalTo: \"Il valore non corrisponde\",\n\textension: \"Inserisci un valore con un&apos;estensione valida\",\n\tmaxlength: $.validator.format(\"Non inserire pi&ugrave; di {0} caratteri\"),\n\tminlength: $.validator.format(\"Inserisci almeno {0} caratteri\"),\n\trangelength: $.validator.format(\"Inserisci un valore compreso tra {0} e {1} caratteri\"),\n\trange: $.validator.format(\"Inserisci un valore compreso tra {0} e {1}\"),\n\tmax: $.validator.format(\"Inserisci un valore minore o uguale a {0}\"),\n\tmin: $.validator.format(\"Inserisci un valore maggiore o uguale a {0}\"),\n\tnifES: \"Inserisci un NIF valido\",\n\tnieES: \"Inserisci un NIE valido\",\n\tcifES: \"Inserisci un CIF valido\",\n\tcurrency: \"Inserisci una valuta valida\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ja.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: JA (Japanese; 日本語)\n */\n$.extend($.validator.messages, {\n\trequired: \"このフィールドは必須です。\",\n\tremote: \"このフィールドを修正してください。\",\n\temail: \"有効なEメールアドレスを入力してください。\",\n\turl: \"有効なURLを入力してください。\",\n\tdate: \"有効な日付を入力してください。\",\n\tdateISO: \"有効な日付（ISO）を入力してください。\",\n\tnumber: \"有効な数字を入力してください。\",\n\tdigits: \"数字のみを入力してください。\",\n\tcreditcard: \"有効なクレジットカード番号を入力してください。\",\n\tequalTo: \"同じ値をもう一度入力してください。\",\n\textension: \"有効な拡張子を含む値を入力してください。\",\n\tmaxlength: $.validator.format(\"{0} 文字以内で入力してください。\"),\n\tminlength: $.validator.format(\"{0} 文字以上で入力してください。\"),\n\trangelength: $.validator.format(\"{0} 文字から {1} 文字までの値を入力してください。\"),\n\trange: $.validator.format(\"{0} から {1} までの値を入力してください。\"),\n\tmax: $.validator.format(\"{0} 以下の値を入力してください。\"),\n\tmin: $.validator.format(\"{0} 以上の値を入力してください。\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ka.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KA (Georgian; ქართული)\n */\n$.extend($.validator.messages, {\n\trequired: \"ამ ველის შევსება აუცილებელია.\",\n\tremote: \"გთხოვთ მიუთითოთ სწორი მნიშვნელობა.\",\n\temail: \"გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.\",\n\turl: \"გთხოვთ მიუთითოთ კორექტული URL.\",\n\tdate: \"გთხოვთ მიუთითოთ კორექტული თარიღი.\",\n\tdateISO: \"გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.\",\n\tnumber: \"გთხოვთ მიუთითოთ ციფრი.\",\n\tdigits: \"გთხოვთ მიუთითოთ მხოლოდ ციფრები.\",\n\tcreditcard: \"გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.\",\n\tequalTo: \"გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.\",\n\textension: \"გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.\",\n\tmaxlength: $.validator.format(\"დასაშვებია არაუმეტეს {0} სიმბოლო.\"),\n\tminlength: $.validator.format(\"აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო.\"),\n\trangelength: $.validator.format(\"ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე.\"),\n\trange: $.validator.format(\"გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე.\"),\n\tmax: $.validator.format(\"გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს.\"),\n\tmin: $.validator.format(\"გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_kk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KK (Kazakh; қазақ тілі)\n */\n$.extend($.validator.messages, {\n\trequired: \"Бұл өрісті міндетті түрде толтырыңыз.\",\n\tremote: \"Дұрыс мағына енгізуіңізді сұраймыз.\",\n\temail: \"Нақты электронды поштаңызды енгізуіңізді сұраймыз.\",\n\turl: \"Нақты URL-ды енгізуіңізді сұраймыз.\",\n\tdate: \"Нақты URL-ды енгізуіңізді сұраймыз.\",\n\tdateISO: \"Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.\",\n\tnumber: \"Күнді енгізуіңізді сұраймыз.\",\n\tdigits: \"Тек қана сандарды енгізуіңізді сұраймыз.\",\n\tcreditcard: \"Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.\",\n\tequalTo: \"Осы мәнді қайта енгізуіңізді сұраймыз.\",\n\textension: \"Файлдың кеңейтуін дұрыс таңдаңыз.\",\n\tmaxlength: $.validator.format(\"Ұзындығы {0} символдан көр болмасын.\"),\n\tminlength: $.validator.format(\"Ұзындығы {0} символдан аз болмасын.\"),\n\trangelength: $.validator.format(\"Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз.\"),\n\trange: $.validator.format(\"Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз.\"),\n\tmax: $.validator.format(\"{0} аз немесе тең санын енгізуіңіді сұраймыз.\"),\n\tmin: $.validator.format(\"{0} көп немесе тең санын енгізуіңізді сұраймыз.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ko.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: KO (Korean; 한국어)\n */\n$.extend($.validator.messages, {\n\trequired: \"필수 항목입니다.\",\n\tremote: \"항목을 수정하세요.\",\n\temail: \"유효하지 않은 E-Mail주소입니다.\",\n\turl: \"유효하지 않은 URL입니다.\",\n\tdate: \"올바른 날짜를 입력하세요.\",\n\tdateISO: \"올바른 날짜(ISO)를 입력하세요.\",\n\tnumber: \"유효한 숫자가 아닙니다.\",\n\tdigits: \"숫자만 입력 가능합니다.\",\n\tcreditcard: \"신용카드 번호가 바르지 않습니다.\",\n\tequalTo: \"같은 값을 다시 입력하세요.\",\n\textension: \"올바른 확장자가 아닙니다.\",\n\tmaxlength: $.validator.format(\"{0}자를 넘을 수 없습니다. \"),\n\tminlength: $.validator.format(\"{0}자 이상 입력하세요.\"),\n\trangelength: $.validator.format(\"문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요.\"),\n\trange: $.validator.format(\"{0} 에서 {1} 사이의 값을 입력하세요.\"),\n\tmax: $.validator.format(\"{0} 이하의 값을 입력하세요.\"),\n\tmin: $.validator.format(\"{0} 이상의 값을 입력하세요.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_lt.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: LT (Lithuanian; lietuvių kalba)\n */\n$.extend($.validator.messages, {\n\trequired: \"Šis laukas yra privalomas.\",\n\tremote: \"Prašau pataisyti šį lauką.\",\n\temail: \"Prašau įvesti teisingą elektroninio pašto adresą.\",\n\turl: \"Prašau įvesti teisingą URL.\",\n\tdate: \"Prašau įvesti teisingą datą.\",\n\tdateISO: \"Prašau įvesti teisingą datą (ISO).\",\n\tnumber: \"Prašau įvesti teisingą skaičių.\",\n\tdigits: \"Prašau naudoti tik skaitmenis.\",\n\tcreditcard: \"Prašau įvesti teisingą kreditinės kortelės numerį.\",\n\tequalTo: \"Prašau įvestį tą pačią reikšmę dar kartą.\",\n\textension: \"Prašau įvesti reikšmę su teisingu plėtiniu.\",\n\tmaxlength: $.validator.format(\"Prašau įvesti ne daugiau kaip {0} simbolių.\"),\n\tminlength: $.validator.format(\"Prašau įvesti bent {0} simbolius.\"),\n\trangelength: $.validator.format(\"Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių.\"),\n\trange: $.validator.format(\"Prašau įvesti reikšmę intervale nuo {0} iki {1}.\"),\n\tmax: $.validator.format(\"Prašau įvesti reikšmę mažesnę arba lygią {0}.\"),\n\tmin: $.validator.format(\"Prašau įvesti reikšmę didesnę arba lygią {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_lv.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: LV (Latvian; latviešu valoda)\n */\n$.extend($.validator.messages, {\n\trequired: \"Šis lauks ir obligāts.\",\n\tremote: \"Lūdzu, pārbaudiet šo lauku.\",\n\temail: \"Lūdzu, ievadiet derīgu e-pasta adresi.\",\n\turl: \"Lūdzu, ievadiet derīgu URL adresi.\",\n\tdate: \"Lūdzu, ievadiet derīgu datumu.\",\n\tdateISO: \"Lūdzu, ievadiet derīgu datumu (ISO).\",\n\tnumber: \"Lūdzu, ievadiet derīgu numuru.\",\n\tdigits: \"Lūdzu, ievadiet tikai ciparus.\",\n\tcreditcard: \"Lūdzu, ievadiet derīgu kredītkartes numuru.\",\n\tequalTo: \"Lūdzu, ievadiet to pašu vēlreiz.\",\n\textension: \"Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.\",\n\tmaxlength: $.validator.format(\"Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes.\"),\n\tminlength: $.validator.format(\"Lūdzu, ievadiet vismaz {0} rakstzīmes.\"),\n\trangelength: $.validator.format(\"Lūdzu ievadiet {0} līdz {1} rakstzīmes.\"),\n\trange: $.validator.format(\"Lūdzu, ievadiet skaitli no {0} līdz {1}.\"),\n\tmax: $.validator.format(\"Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}.\"),\n\tmin: $.validator.format(\"Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_my.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: MY (Malay; Melayu)\n */\n$.extend($.validator.messages, {\n\trequired: \"Medan ini diperlukan.\",\n\tremote: \"Sila betulkan medan ini.\",\n\temail: \"Sila masukkan alamat emel yang betul.\",\n\turl: \"Sila masukkan URL yang betul.\",\n\tdate: \"Sila masukkan tarikh yang betul.\",\n\tdateISO: \"Sila masukkan tarikh(ISO) yang betul.\",\n\tnumber: \"Sila masukkan nombor yang betul.\",\n\tdigits: \"Sila masukkan nilai digit sahaja.\",\n\tcreditcard: \"Sila masukkan nombor kredit kad yang betul.\",\n\tequalTo: \"Sila masukkan nilai yang sama semula.\",\n\textension: \"Sila masukkan nilai yang telah diterima.\",\n\tmaxlength: $.validator.format(\"Sila masukkan nilai tidak lebih dari {0} aksara.\"),\n\tminlength: $.validator.format(\"Sila masukkan nilai sekurang-kurangnya {0} aksara.\"),\n\trangelength: $.validator.format(\"Sila masukkan panjang nilai antara {0} dan {1} aksara.\"),\n\trange: $.validator.format(\"Sila masukkan nilai antara {0} dan {1} aksara.\"),\n\tmax: $.validator.format(\"Sila masukkan nilai yang kurang atau sama dengan {0}.\"),\n\tmin: $.validator.format(\"Sila masukkan nilai yang lebih atau sama dengan {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_nl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: NL (Dutch; Nederlands, Vlaams)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dit is een verplicht veld.\",\n\tremote: \"Controleer dit veld.\",\n\temail: \"Vul hier een geldig e-mailadres in.\",\n\turl: \"Vul hier een geldige URL in.\",\n\tdate: \"Vul hier een geldige datum in.\",\n\tdateISO: \"Vul hier een geldige datum in (ISO-formaat).\",\n\tnumber: \"Vul hier een geldig getal in.\",\n\tdigits: \"Vul hier alleen getallen in.\",\n\tcreditcard: \"Vul hier een geldig creditcardnummer in.\",\n\tequalTo: \"Vul hier dezelfde waarde in.\",\n\textension: \"Vul hier een waarde in met een geldige extensie.\",\n\tmaxlength: $.validator.format(\"Vul hier maximaal {0} tekens in.\"),\n\tminlength: $.validator.format(\"Vul hier minimaal {0} tekens in.\"),\n\trangelength: $.validator.format(\"Vul hier een waarde in van minimaal {0} en maximaal {1} tekens.\"),\n\trange: $.validator.format(\"Vul hier een waarde in van minimaal {0} en maximaal {1}.\"),\n\tmax: $.validator.format(\"Vul hier een waarde in kleiner dan of gelijk aan {0}.\"),\n\tmin: $.validator.format(\"Vul hier een waarde in groter dan of gelijk aan {0}.\"),\n\n\t// for validations in additional-methods.js\n\tiban: \"Vul hier een geldig IBAN in.\",\n\tdateNL: \"Vul hier een geldige datum in.\",\n\tphoneNL: \"Vul hier een geldig Nederlands telefoonnummer in.\",\n\tmobileNL: \"Vul hier een geldig Nederlands mobiel telefoonnummer in.\",\n\tpostalcodeNL: \"Vul hier een geldige postcode in.\",\n\tbankaccountNL: \"Vul hier een geldig bankrekeningnummer in.\",\n\tgiroaccountNL: \"Vul hier een geldig gironummer in.\",\n\tbankorgiroaccountNL: \"Vul hier een geldig bank- of gironummer in.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_no.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: NO (Norwegian; Norsk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Dette feltet er obligatorisk.\",\n\tmaxlength: $.validator.format(\"Maksimalt {0} tegn.\"),\n\tminlength: $.validator.format(\"Minimum {0} tegn.\"),\n\trangelength: $.validator.format(\"Angi minimum {0} og maksimum {1} tegn.\"),\n\temail: \"Oppgi en gyldig epostadresse.\",\n\turl: \"Angi en gyldig URL.\",\n\tdate: \"Angi en gyldig dato.\",\n\tdateISO: \"Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).\",\n\tdateSE: \"Angi en gyldig dato.\",\n\tnumber: \"Angi et gyldig nummer.\",\n\tnumberSE: \"Angi et gyldig nummer.\",\n\tdigits: \"Skriv kun tall.\",\n\tequalTo: \"Skriv samme verdi igjen.\",\n\trange: $.validator.format(\"Angi en verdi mellom {0} og {1}.\"),\n\tmax: $.validator.format(\"Angi en verdi som er mindre eller lik {0}.\"),\n\tmin: $.validator.format(\"Angi en verdi som er st&oslash;rre eller lik {0}.\"),\n\tcreditcard: \"Angi et gyldig kredittkortnummer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_pl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PL (Polish; język polski, polszczyzna)\n */\n$.extend($.validator.messages, {\n\trequired: \"To pole jest wymagane.\",\n\tremote: \"Proszę o wypełnienie tego pola.\",\n\temail: \"Proszę o podanie prawidłowego adresu email.\",\n\turl: \"Proszę o podanie prawidłowego URL.\",\n\tdate: \"Proszę o podanie prawidłowej daty.\",\n\tdateISO: \"Proszę o podanie prawidłowej daty (ISO).\",\n\tnumber: \"Proszę o podanie prawidłowej liczby.\",\n\tdigits: \"Proszę o podanie samych cyfr.\",\n\tcreditcard: \"Proszę o podanie prawidłowej karty kredytowej.\",\n\tequalTo: \"Proszę o podanie tej samej wartości ponownie.\",\n\textension: \"Proszę o podanie wartości z prawidłowym rozszerzeniem.\",\n\tmaxlength: $.validator.format(\"Proszę o podanie nie więcej niż {0} znaków.\"),\n\tminlength: $.validator.format(\"Proszę o podanie przynajmniej {0} znaków.\"),\n\trangelength: $.validator.format(\"Proszę o podanie wartości o długości od {0} do {1} znaków.\"),\n\trange: $.validator.format(\"Proszę o podanie wartości z przedziału od {0} do {1}.\"),\n\tmax: $.validator.format(\"Proszę o podanie wartości mniejszej bądź równej {0}.\"),\n\tmin: $.validator.format(\"Proszę o podanie wartości większej bądź równej {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_pt_BR.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PT (Portuguese; português)\n * Region: BR (Brazil)\n */\n$.extend($.validator.messages, {\n\trequired: \"Este campo &eacute; requerido.\",\n\tremote: \"Por favor, corrija este campo.\",\n\temail: \"Por favor, forne&ccedil;a um endere&ccedil;o de email v&aacute;lido.\",\n\turl: \"Por favor, forne&ccedil;a uma URL v&aacute;lida.\",\n\tdate: \"Por favor, forne&ccedil;a uma data v&aacute;lida.\",\n\tdateISO: \"Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).\",\n\tnumber: \"Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.\",\n\tdigits: \"Por favor, forne&ccedil;a somente d&iacute;gitos.\",\n\tcreditcard: \"Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.\",\n\tequalTo: \"Por favor, forne&ccedil;a o mesmo valor novamente.\",\n\textension: \"Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.\",\n\tmaxlength: $.validator.format(\"Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, forne&ccedil;a ao menos {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento.\"),\n\trange: $.validator.format(\"Por favor, forne&ccedil;a um valor entre {0} e {1}.\"),\n\tmax: $.validator.format(\"Por favor, forne&ccedil;a um valor menor ou igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, forne&ccedil;a um valor maior ou igual a {0}.\"),\n\tnifES: \"Por favor, forne&ccedil;a um NIF v&aacute;lido.\",\n\tnieES: \"Por favor, forne&ccedil;a um NIE v&aacute;lido.\",\n\tcifEE: \"Por favor, forne&ccedil;a um CIF v&aacute;lido.\",\n\tpostalcodeBR: \"Por favor, forne&ccedil;a um CEP v&aacute;lido.\",\n\tcpfBR: \"Por favor, forne&ccedil;a um CPF v&aacute;lido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_pt_PT.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: PT (Portuguese; português)\n * Region: PT (Portugal)\n */\n$.extend($.validator.messages, {\n\trequired: \"Campo de preenchimento obrigat&oacute;rio.\",\n\tremote: \"Por favor, corrija este campo.\",\n\temail: \"Por favor, introduza um endere&ccedil;o eletr&oacute;nico v&aacute;lido.\",\n\turl: \"Por favor, introduza um URL v&aacute;lido.\",\n\tdate: \"Por favor, introduza uma data v&aacute;lida.\",\n\tdateISO: \"Por favor, introduza uma data v&aacute;lida (ISO).\",\n\tnumber: \"Por favor, introduza um n&uacute;mero v&aacute;lido.\",\n\tdigits: \"Por favor, introduza apenas d&iacute;gitos.\",\n\tcreditcard: \"Por favor, introduza um n&uacute;mero de cart&atilde;o de cr&eacute;dito v&aacute;lido.\",\n\tequalTo: \"Por favor, introduza de novo o mesmo valor.\",\n\textension: \"Por favor, introduza um ficheiro com uma extens&atilde;o v&aacute;lida.\",\n\tmaxlength: $.validator.format(\"Por favor, n&atilde;o introduza mais do que {0} caracteres.\"),\n\tminlength: $.validator.format(\"Por favor, introduza pelo menos {0} caracteres.\"),\n\trangelength: $.validator.format(\"Por favor, introduza entre {0} e {1} caracteres.\"),\n\trange: $.validator.format(\"Por favor, introduza um valor entre {0} e {1}.\"),\n\tmax: $.validator.format(\"Por favor, introduza um valor menor ou igual a {0}.\"),\n\tmin: $.validator.format(\"Por favor, introduza um valor maior ou igual a {0}.\"),\n\tnifES: \"Por favor, introduza um NIF v&aacute;lido.\",\n\tnieES: \"Por favor, introduza um NIE v&aacute;lido.\",\n\tcifES: \"Por favor, introduza um CIF v&aacute;lido.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ro.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: RO (Romanian, limba română)\n */\n$.extend($.validator.messages, {\n\trequired: \"Acest câmp este obligatoriu.\",\n\tremote: \"Te rugăm să completezi acest câmp.\",\n\temail: \"Te rugăm să introduci o adresă de email validă\",\n\turl: \"Te rugăm sa introduci o adresă URL validă.\",\n\tdate: \"Te rugăm să introduci o dată corectă.\",\n\tdateISO: \"Te rugăm să introduci o dată (ISO) corectă.\",\n\tnumber: \"Te rugăm să introduci un număr întreg valid.\",\n\tdigits: \"Te rugăm să introduci doar cifre.\",\n\tcreditcard: \"Te rugăm să introduci un numar de carte de credit valid.\",\n\tequalTo: \"Te rugăm să reintroduci valoarea.\",\n\textension: \"Te rugăm să introduci o valoare cu o extensie validă.\",\n\tmaxlength: $.validator.format(\"Te rugăm să nu introduci mai mult de {0} caractere.\"),\n\tminlength: $.validator.format(\"Te rugăm să introduci cel puțin {0} caractere.\"),\n\trangelength: $.validator.format(\"Te rugăm să introduci o valoare între {0} și {1} caractere.\"),\n\trange: $.validator.format(\"Te rugăm să introduci o valoare între {0} și {1}.\"),\n\tmax: $.validator.format(\"Te rugăm să introduci o valoare egal sau mai mică decât {0}.\"),\n\tmin: $.validator.format(\"Te rugăm să introduci o valoare egal sau mai mare decât {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_ru.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: RU (Russian; русский язык)\n */\n$.extend($.validator.messages, {\n\trequired: \"Это поле необходимо заполнить.\",\n\tremote: \"Пожалуйста, введите правильное значение.\",\n\temail: \"Пожалуйста, введите корректный адрес электронной почты.\",\n\turl: \"Пожалуйста, введите корректный URL.\",\n\tdate: \"Пожалуйста, введите корректную дату.\",\n\tdateISO: \"Пожалуйста, введите корректную дату в формате ISO.\",\n\tnumber: \"Пожалуйста, введите число.\",\n\tdigits: \"Пожалуйста, вводите только цифры.\",\n\tcreditcard: \"Пожалуйста, введите правильный номер кредитной карты.\",\n\tequalTo: \"Пожалуйста, введите такое же значение ещё раз.\",\n\textension: \"Пожалуйста, выберите файл с правильным расширением.\",\n\tmaxlength: $.validator.format(\"Пожалуйста, введите не больше {0} символов.\"),\n\tminlength: $.validator.format(\"Пожалуйста, введите не меньше {0} символов.\"),\n\trangelength: $.validator.format(\"Пожалуйста, введите значение длиной от {0} до {1} символов.\"),\n\trange: $.validator.format(\"Пожалуйста, введите число от {0} до {1}.\"),\n\tmax: $.validator.format(\"Пожалуйста, введите число, меньшее или равное {0}.\"),\n\tmin: $.validator.format(\"Пожалуйста, введите число, большее или равное {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_si.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SI (Slovenian)\n */\n$.extend($.validator.messages, {\n\trequired: \"To polje je obvezno.\",\n\tremote: \"Vpis v tem polju ni v pravi obliki.\",\n\temail: \"Prosimo, vnesite pravi email naslov.\",\n\turl: \"Prosimo, vnesite pravi URL.\",\n\tdate: \"Prosimo, vnesite pravi datum.\",\n\tdateISO: \"Prosimo, vnesite pravi datum (ISO).\",\n\tnumber: \"Prosimo, vnesite pravo številko.\",\n\tdigits: \"Prosimo, vnesite samo številke.\",\n\tcreditcard: \"Prosimo, vnesite pravo številko kreditne kartice.\",\n\tequalTo: \"Prosimo, ponovno vnesite enako vsebino.\",\n\textension: \"Prosimo, vnesite vsebino z pravo končnico.\",\n\tmaxlength: $.validator.format(\"Prosimo, da ne vnašate več kot {0} znakov.\"),\n\tminlength: $.validator.format(\"Prosimo, vnesite vsaj {0} znakov.\"),\n\trangelength: $.validator.format(\"Prosimo, vnesite od {0} do {1} znakov.\"),\n\trange: $.validator.format(\"Prosimo, vnesite vrednost med {0} in {1}.\"),\n\tmax: $.validator.format(\"Prosimo, vnesite vrednost manjšo ali enako {0}.\"),\n\tmin: $.validator.format(\"Prosimo, vnesite vrednost večjo ali enako {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_sk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SK (Slovak; slovenčina, slovenský jazyk)\n */\n$.extend($.validator.messages, {\n\trequired: \"Povinné zadať.\",\n\tmaxlength: $.validator.format(\"Maximálne {0} znakov.\"),\n\tminlength: $.validator.format(\"Minimálne {0} znakov.\"),\n\trangelength: $.validator.format(\"Minimálne {0} a Maximálne {1} znakov.\"),\n\temail: \"E-mailová adresa musí byť platná.\",\n\turl: \"URL musí byť platný.\",\n\tdate: \"Musí byť dátum.\",\n\tnumber: \"Musí byť číslo.\",\n\tdigits: \"Môže obsahovať iba číslice.\",\n\tequalTo: \"Dva hodnoty sa musia rovnať.\",\n\trange: $.validator.format(\"Musí byť medzi {0} a {1}.\"),\n\tmax: $.validator.format(\"Nemôže byť viac ako{0}.\"),\n\tmin: $.validator.format(\"Nemôže byť menej ako{0}.\"),\n\tcreditcard: \"Číslo platobnej karty musí byť platné.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_sl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Language: SL (Slovenian; slovenski jezik)\n */\n$.extend($.validator.messages, {\n\trequired: \"To polje je obvezno.\",\n\tremote: \"Prosimo popravite to polje.\",\n\temail: \"Prosimo vnesite veljaven email naslov.\",\n\turl: \"Prosimo vnesite veljaven URL naslov.\",\n\tdate: \"Prosimo vnesite veljaven datum.\",\n\tdateISO: \"Prosimo vnesite veljaven ISO datum.\",\n\tnumber: \"Prosimo vnesite veljavno število.\",\n\tdigits: \"Prosimo vnesite samo števila.\",\n\tcreditcard: \"Prosimo vnesite veljavno številko kreditne kartice.\",\n\tequalTo: \"Prosimo ponovno vnesite vrednost.\",\n\textension: \"Prosimo vnesite vrednost z veljavno končnico.\",\n\tmaxlength: $.validator.format(\"Prosimo vnesite največ {0} znakov.\"),\n\tminlength: $.validator.format(\"Prosimo vnesite najmanj {0} znakov.\"),\n\trangelength: $.validator.format(\"Prosimo vnesite najmanj {0} in največ {1} znakov.\"),\n\trange: $.validator.format(\"Prosimo vnesite vrednost med {0} in {1}.\"),\n\tmax: $.validator.format(\"Prosimo vnesite vrednost manjše ali enako {0}.\"),\n\tmin: $.validator.format(\"Prosimo vnesite vrednost večje ali enako {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_sr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SR (Serbian; српски језик)\n */\n$.extend($.validator.messages, {\n\trequired: \"Поље је обавезно.\",\n\tremote: \"Средите ово поље.\",\n\temail: \"Унесите исправну и-мејл адресу.\",\n\turl: \"Унесите исправан URL.\",\n\tdate: \"Унесите исправан датум.\",\n\tdateISO: \"Унесите исправан датум (ISO).\",\n\tnumber: \"Унесите исправан број.\",\n\tdigits: \"Унесите само цифе.\",\n\tcreditcard: \"Унесите исправан број кредитне картице.\",\n\tequalTo: \"Унесите исту вредност поново.\",\n\textension: \"Унесите вредност са одговарајућом екстензијом.\",\n\tmaxlength: $.validator.format(\"Унесите мање од {0} карактера.\"),\n\tminlength: $.validator.format(\"Унесите барем {0} карактера.\"),\n\trangelength: $.validator.format(\"Унесите вредност дугачку између {0} и {1} карактера.\"),\n\trange: $.validator.format(\"Унесите вредност између {0} и {1}.\"),\n\tmax: $.validator.format(\"Унесите вредност мању или једнаку {0}.\"),\n\tmin: $.validator.format(\"Унесите вредност већу или једнаку {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_sr_lat.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica)\n */\n$.extend($.validator.messages, {\n\trequired: \"Polje je obavezno.\",\n\tremote: \"Sredite ovo polje.\",\n\temail: \"Unesite ispravnu e-mail adresu\",\n\turl: \"Unesite ispravan URL.\",\n\tdate: \"Unesite ispravan datum.\",\n\tdateISO: \"Unesite ispravan datum (ISO).\",\n\tnumber: \"Unesite ispravan broj.\",\n\tdigits: \"Unesite samo cifre.\",\n\tcreditcard: \"Unesite ispravan broj kreditne kartice.\",\n\tequalTo: \"Unesite istu vrednost ponovo.\",\n\textension: \"Unesite vrednost sa odgovarajućom ekstenzijom.\",\n\tmaxlength: $.validator.format(\"Unesite manje od {0} karaktera.\"),\n\tminlength: $.validator.format(\"Unesite barem {0} karaktera.\"),\n\trangelength: $.validator.format(\"Unesite vrednost dugačku između {0} i {1} karaktera.\"),\n\trange: $.validator.format(\"Unesite vrednost između {0} i {1}.\"),\n\tmax: $.validator.format(\"Unesite vrednost manju ili jednaku {0}.\"),\n\tmin: $.validator.format(\"Unesite vrednost veću ili jednaku {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_sv.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: SV (Swedish; Svenska)\n */\n$.extend($.validator.messages, {\n\trequired: \"Detta f&auml;lt &auml;r obligatoriskt.\",\n\tmaxlength: $.validator.format(\"Du f&aring;r ange h&ouml;gst {0} tecken.\"),\n\tminlength: $.validator.format(\"Du m&aring;ste ange minst {0} tecken.\"),\n\trangelength: $.validator.format(\"Ange minst {0} och max {1} tecken.\"),\n\temail: \"Ange en korrekt e-postadress.\",\n\turl: \"Ange en korrekt URL.\",\n\tdate: \"Ange ett korrekt datum.\",\n\tdateISO: \"Ange ett korrekt datum (&Aring;&Aring;&Aring;&Aring;-MM-DD).\",\n\tnumber: \"Ange ett korrekt nummer.\",\n\tdigits: \"Ange endast siffror.\",\n\tequalTo: \"Ange samma v&auml;rde igen.\",\n\trange: $.validator.format(\"Ange ett v&auml;rde mellan {0} och {1}.\"),\n\tmax: $.validator.format(\"Ange ett v&auml;rde som &auml;r mindre eller lika med {0}.\"),\n\tmin: $.validator.format(\"Ange ett v&auml;rde som &auml;r st&ouml;rre eller lika med {0}.\"),\n\tcreditcard: \"Ange ett korrekt kreditkortsnummer.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_th.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TH (Thai; ไทย)\n */\n$.extend($.validator.messages, {\n\trequired: \"โปรดระบุ\",\n\tremote: \"โปรดแก้ไขให้ถูกต้อง\",\n\temail: \"โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง\",\n\turl: \"โปรดระบุ URL ที่ถูกต้อง\",\n\tdate: \"โปรดระบุวันที่ ที่ถูกต้อง\",\n\tdateISO: \"โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).\",\n\tnumber: \"โปรดระบุทศนิยมที่ถูกต้อง\",\n\tdigits: \"โปรดระบุจำนวนเต็มที่ถูกต้อง\",\n\tcreditcard: \"โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง\",\n\tequalTo: \"โปรดระบุค่าเดิมอีกครั้ง\",\n\textension: \"โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง\",\n\tmaxlength: $.validator.format(\"โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ\"),\n\tminlength: $.validator.format(\"โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ\"),\n\trangelength: $.validator.format(\"โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ\"),\n\trange: $.validator.format(\"โปรดระบุค่าระหว่าง {0} และ {1}\"),\n\tmax: $.validator.format(\"โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}\"),\n\tmin: $.validator.format(\"โปรดระบุค่ามากกว่าหรือเท่ากับ {0}\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_tj.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TJ (Tajikistan; Забони тоҷикӣ)\n */\n$.extend($.validator.messages, {\n\trequired: \"Ворид кардани ин филд маҷбури аст.\",\n\tremote: \"Илтимос, маълумоти саҳеҳ ворид кунед.\",\n\temail: \"Илтимос, почтаи электронии саҳеҳ ворид кунед.\",\n\turl: \"Илтимос, URL адреси саҳеҳ ворид кунед.\",\n\tdate: \"Илтимос, таърихи саҳеҳ ворид кунед.\",\n\tdateISO: \"Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.\",\n\tnumber: \"Илтимос, рақамҳои саҳеҳ ворид кунед.\",\n\tdigits: \"Илтимос, танҳо рақам ворид кунед.\",\n\tcreditcard: \"Илтимос, кредит карди саҳеҳ ворид кунед.\",\n\tequalTo: \"Илтимос, миқдори баробар ворид кунед.\",\n\textension: \"Илтимос, қофияи файлро дуруст интихоб кунед\",\n\tmaxlength: $.validator.format(\"Илтимос, бештар аз {0} рамз ворид накунед.\"),\n\tminlength: $.validator.format(\"Илтимос, камтар аз {0} рамз ворид накунед.\"),\n\trangelength: $.validator.format(\"Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед.\"),\n\trange: $.validator.format(\"Илтимос, аз {0} то {1} рақам зиёд ворид кунед.\"),\n\tmax: $.validator.format(\"Илтимос, бештар аз {0} рақам ворид накунед.\"),\n\tmin: $.validator.format(\"Илтимос, камтар аз {0} рақам ворид накунед.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_tr.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: TR (Turkish; Türkçe)\n */\n$.extend($.validator.messages, {\n\trequired: \"Bu alanın doldurulması zorunludur.\",\n\tremote: \"Lütfen bu alanı düzeltin.\",\n\temail: \"Lütfen geçerli bir e-posta adresi giriniz.\",\n\turl: \"Lütfen geçerli bir web adresi (URL) giriniz.\",\n\tdate: \"Lütfen geçerli bir tarih giriniz.\",\n\tdateISO: \"Lütfen geçerli bir tarih giriniz(ISO formatında)\",\n\tnumber: \"Lütfen geçerli bir sayı giriniz.\",\n\tdigits: \"Lütfen sadece sayısal karakterler giriniz.\",\n\tcreditcard: \"Lütfen geçerli bir kredi kartı giriniz.\",\n\tequalTo: \"Lütfen aynı değeri tekrar giriniz.\",\n\textension: \"Lütfen geçerli uzantıya sahip bir değer giriniz.\",\n\tmaxlength: $.validator.format(\"Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz.\"),\n\tminlength: $.validator.format(\"Lütfen en az {0} karakter uzunluğunda bir değer giriniz.\"),\n\trangelength: $.validator.format(\"Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz.\"),\n\trange: $.validator.format(\"Lütfen {0} ile {1} arasında bir değer giriniz.\"),\n\tmax: $.validator.format(\"Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz.\"),\n\tmin: $.validator.format(\"Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz.\"),\n\trequire_from_group: \"Lütfen bu alanların en az {0} tanesini doldurunuz.\"\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_uk.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: UK (Ukrainian; українська мова)\n */\n$.extend($.validator.messages, {\n\trequired: \"Це поле необхідно заповнити.\",\n\tremote: \"Будь ласка, введіть правильне значення.\",\n\temail: \"Будь ласка, введіть коректну адресу електронної пошти.\",\n\turl: \"Будь ласка, введіть коректний URL.\",\n\tdate: \"Будь ласка, введіть коректну дату.\",\n\tdateISO: \"Будь ласка, введіть коректну дату у форматі ISO.\",\n\tnumber: \"Будь ласка, введіть число.\",\n\tdigits: \"Вводите потрібно лише цифри.\",\n\tcreditcard: \"Будь ласка, введіть правильний номер кредитної карти.\",\n\tequalTo: \"Будь ласка, введіть таке ж значення ще раз.\",\n\textension: \"Будь ласка, виберіть файл з правильним розширенням.\",\n\tmaxlength: $.validator.format(\"Будь ласка, введіть не більше {0} символів.\"),\n\tminlength: $.validator.format(\"Будь ласка, введіть не менше {0} символів.\"),\n\trangelength: $.validator.format(\"Будь ласка, введіть значення довжиною від {0} до {1} символів.\"),\n\trange: $.validator.format(\"Будь ласка, введіть число від {0} до {1}.\"),\n\tmax: $.validator.format(\"Будь ласка, введіть число, менше або рівно {0}.\"),\n\tmin: $.validator.format(\"Будь ласка, введіть число, більше або рівно {0}.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_vi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: VI (Vietnamese; Tiếng Việt)\n */\n$.extend($.validator.messages, {\n\trequired: \"Hãy nhập.\",\n\tremote: \"Hãy sửa cho đúng.\",\n\temail: \"Hãy nhập email.\",\n\turl: \"Hãy nhập URL.\",\n\tdate: \"Hãy nhập ngày.\",\n\tdateISO: \"Hãy nhập ngày (ISO).\",\n\tnumber: \"Hãy nhập số.\",\n\tdigits: \"Hãy nhập chữ số.\",\n\tcreditcard: \"Hãy nhập số thẻ tín dụng.\",\n\tequalTo: \"Hãy nhập thêm lần nữa.\",\n\textension: \"Phần mở rộng không đúng.\",\n\tmaxlength: $.validator.format(\"Hãy nhập từ {0} kí tự trở xuống.\"),\n\tminlength: $.validator.format(\"Hãy nhập từ {0} kí tự trở lên.\"),\n\trangelength: $.validator.format(\"Hãy nhập từ {0} đến {1} kí tự.\"),\n\trange: $.validator.format(\"Hãy nhập từ {0} đến {1}.\"),\n\tmax: $.validator.format(\"Hãy nhập từ {0} trở xuống.\"),\n\tmin: $.validator.format(\"Hãy nhập từ {1} trở lên.\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_zh.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)\n */\n$.extend($.validator.messages, {\n\trequired: \"这是必填字段\",\n\tremote: \"请修正此字段\",\n\temail: \"请输入有效的电子邮件地址\",\n\turl: \"请输入有效的网址\",\n\tdate: \"请输入有效的日期\",\n\tdateISO: \"请输入有效的日期 (YYYY-MM-DD)\",\n\tnumber: \"请输入有效的数字\",\n\tdigits: \"只能输入数字\",\n\tcreditcard: \"请输入有效的信用卡号码\",\n\tequalTo: \"你的输入不相同\",\n\textension: \"请输入有效的后缀\",\n\tmaxlength: $.validator.format(\"最多可以输入 {0} 个字符\"),\n\tminlength: $.validator.format(\"最少要输入 {0} 个字符\"),\n\trangelength: $.validator.format(\"请输入长度在 {0} 到 {1} 之间的字符串\"),\n\trange: $.validator.format(\"请输入范围在 {0} 到 {1} 之间的数值\"),\n\tmax: $.validator.format(\"请输入不大于 {0} 的数值\"),\n\tmin: $.validator.format(\"请输入不小于 {0} 的数值\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/messages_zh_TW.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Translated default messages for the jQuery validation plugin.\n * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語)\n * Region: TW (Taiwan)\n */\n$.extend($.validator.messages, {\n\trequired: \"必須填寫\",\n\tremote: \"請修正此欄位\",\n\temail: \"請輸入有效的電子郵件\",\n\turl: \"請輸入有效的網址\",\n\tdate: \"請輸入有效的日期\",\n\tdateISO: \"請輸入有效的日期 (YYYY-MM-DD)\",\n\tnumber: \"請輸入正確的數值\",\n\tdigits: \"只可輸入數字\",\n\tcreditcard: \"請輸入有效的信用卡號碼\",\n\tequalTo: \"請重複輸入一次\",\n\textension: \"請輸入有效的後綴\",\n\tmaxlength: $.validator.format(\"最多 {0} 個字\"),\n\tminlength: $.validator.format(\"最少 {0} 個字\"),\n\trangelength: $.validator.format(\"請輸入長度為 {0} 至 {1} 之間的字串\"),\n\trange: $.validator.format(\"請輸入 {0} 至 {1} 之間的數值\"),\n\tmax: $.validator.format(\"請輸入不大於 {0} 的數值\"),\n\tmin: $.validator.format(\"請輸入不小於 {0} 的數值\")\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/methods_de.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: DE\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?\\.\\d\\d?\\.\\d\\d\\d?\\d?$/.test(value);\n\t},\n\tnumber: function(value, element) {\n\t\treturn this.optional(element) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/methods_es_CL.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: ES_CL\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?\\-\\d\\d?\\-\\d\\d\\d?\\d?$/.test(value);\n\t},\n\tnumber: function(value, element) {\n\t\treturn this.optional(element) || /^-?(?:\\d+|\\d{1,3}(?:\\.\\d{3})+)(?:,\\d+)?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/methods_fi.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: FI\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d{1,2}\\.\\d{1,2}\\.\\d{4}$/.test(value);\n\t},\n\tnumber: function(value, element) {\n\t\treturn this.optional(element) || /^-?(?:\\d+)(?:,\\d+)?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/methods_nl.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: NL\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?[\\.\\/\\-]\\d\\d?[\\.\\/\\-]\\d\\d\\d?\\d?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery-validation/js/localization/methods_pt.js",
    "content": "(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\", \"../jquery.validate\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n/*\n * Localized default methods for the jQuery validation plugin.\n * Locale: PT_BR\n */\n$.extend($.validator.methods, {\n\tdate: function(value, element) {\n\t\treturn this.optional(element) || /^\\d\\d?\\/\\d\\d?\\/\\d\\d\\d?\\d?$/.test(value);\n\t}\n});\n\n}));"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery.easing.js",
    "content": "/*\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\n *\n * Uses the built in easing capabilities added In jQuery 1.1\n * to offer multiple easing options\n *\n * TERMS OF USE - jQuery Easing\n * \n * Open source under the BSD License. \n * \n * Copyright В© 2008 George McGinley Smith\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification, \n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice, this list of \n * conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list \n * of conditions and the following disclaimer in the documentation and/or other materials \n * provided with the distribution.\n * \n * Neither the name of the author nor the names of contributors may be used to endorse \n * or promote products derived from this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n * OF THE POSSIBILITY OF SUCH DAMAGE. \n *\n*/\n\n// t: current time, b: begInnIng value, c: change In value, d: duration\njQuery.easing['jswing'] = jQuery.easing['swing'];\n\njQuery.extend( jQuery.easing,\n{\n\tdef: 'easeOutQuad',\n\tswing: function (x, t, b, c, d) {\n\t\t//alert(jQuery.easing.default);\n\t\treturn jQuery.easing[jQuery.easing.def](x, t, b, c, d);\n\t},\n\teaseInQuad: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t + b;\n\t},\n\teaseOutQuad: function (x, t, b, c, d) {\n\t\treturn -c *(t/=d)*(t-2) + b;\n\t},\n\teaseInOutQuad: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t + b;\n\t\treturn -c/2 * ((--t)*(t-2) - 1) + b;\n\t},\n\teaseInCubic: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t*t + b;\n\t},\n\teaseOutCubic: function (x, t, b, c, d) {\n\t\treturn c*((t=t/d-1)*t*t + 1) + b;\n\t},\n\teaseInOutCubic: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t + b;\n\t\treturn c/2*((t-=2)*t*t + 2) + b;\n\t},\n\teaseInQuart: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t*t*t + b;\n\t},\n\teaseOutQuart: function (x, t, b, c, d) {\n\t\treturn -c * ((t=t/d-1)*t*t*t - 1) + b;\n\t},\n\teaseInOutQuart: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t + b;\n\t\treturn -c/2 * ((t-=2)*t*t*t - 2) + b;\n\t},\n\teaseInQuint: function (x, t, b, c, d) {\n\t\treturn c*(t/=d)*t*t*t*t + b;\n\t},\n\teaseOutQuint: function (x, t, b, c, d) {\n\t\treturn c*((t=t/d-1)*t*t*t*t + 1) + b;\n\t},\n\teaseInOutQuint: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;\n\t\treturn c/2*((t-=2)*t*t*t*t + 2) + b;\n\t},\n\teaseInSine: function (x, t, b, c, d) {\n\t\treturn -c * Math.cos(t/d * (Math.PI/2)) + c + b;\n\t},\n\teaseOutSine: function (x, t, b, c, d) {\n\t\treturn c * Math.sin(t/d * (Math.PI/2)) + b;\n\t},\n\teaseInOutSine: function (x, t, b, c, d) {\n\t\treturn -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;\n\t},\n\teaseInExpo: function (x, t, b, c, d) {\n\t\treturn (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;\n\t},\n\teaseOutExpo: function (x, t, b, c, d) {\n\t\treturn (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\n\t},\n\teaseInOutExpo: function (x, t, b, c, d) {\n\t\tif (t==0) return b;\n\t\tif (t==d) return b+c;\n\t\tif ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;\n\t\treturn c/2 * (-Math.pow(2, -10 * --t) + 2) + b;\n\t},\n\teaseInCirc: function (x, t, b, c, d) {\n\t\treturn -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;\n\t},\n\teaseOutCirc: function (x, t, b, c, d) {\n\t\treturn c * Math.sqrt(1 - (t=t/d-1)*t) + b;\n\t},\n\teaseInOutCirc: function (x, t, b, c, d) {\n\t\tif ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;\n\t\treturn c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;\n\t},\n\teaseInElastic: function (x, t, b, c, d) {\n\t\tvar s=1.70158;var p=0;var a=c;\n\t\tif (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\n\t\treturn -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\n\t},\n\teaseOutElastic: function (x, t, b, c, d) {\n\t\tvar s=1.70158;var p=0;var a=c;\n\t\tif (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\n\t\treturn a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;\n\t},\n\teaseInOutElastic: function (x, t, b, c, d) {\n\t\tvar s=1.70158;var p=0;var a=c;\n\t\tif (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);\n\t\tif (a < Math.abs(c)) { a=c; var s=p/4; }\n\t\telse var s = p/(2*Math.PI) * Math.asin (c/a);\n\t\tif (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;\n\t\treturn a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;\n\t},\n\teaseInBack: function (x, t, b, c, d, s) {\n\t\tif (s == undefined) s = 1.70158;\n\t\treturn c*(t/=d)*t*((s+1)*t - s) + b;\n\t},\n\teaseOutBack: function (x, t, b, c, d, s) {\n\t\tif (s == undefined) s = 1.70158;\n\t\treturn c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;\n\t},\n\teaseInOutBack: function (x, t, b, c, d, s) {\n\t\tif (s == undefined) s = 1.70158; \n\t\tif ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;\n\t\treturn c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;\n\t},\n\teaseInBounce: function (x, t, b, c, d) {\n\t\treturn c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;\n\t},\n\teaseOutBounce: function (x, t, b, c, d) {\n\t\tif ((t/=d) < (1/2.75)) {\n\t\t\treturn c*(7.5625*t*t) + b;\n\t\t} else if (t < (2/2.75)) {\n\t\t\treturn c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;\n\t\t} else if (t < (2.5/2.75)) {\n\t\t\treturn c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;\n\t\t} else {\n\t\t\treturn c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;\n\t\t}\n\t},\n\teaseInOutBounce: function (x, t, b, c, d) {\n\t\tif (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;\n\t\treturn jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;\n\t}\n});\n\n/*\n *\n * TERMS OF USE - EASING EQUATIONS\n * \n * Open source under the BSD License. \n * \n * Copyright В© 2001 Robert Penner\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without modification, \n * are permitted provided that the following conditions are met:\n * \n * Redistributions of source code must retain the above copyright notice, this list of \n * conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice, this list \n * of conditions and the following disclaimer in the documentation and/or other materials \n * provided with the distribution.\n * \n * Neither the name of the author nor the names of contributors may be used to endorse \n * or promote products derived from this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY \n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED \n * OF THE POSSIBILITY OF SUCH DAMAGE. \n *\n */"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery.form.js",
    "content": "/*!\n * jQuery Form Plugin\n * version: 3.51.0-2014.06.20\n * Requires jQuery v1.5 or later\n * Copyright (c) 2014 M. Alsup\n * Examples and documentation at: http://malsup.com/jquery/form/\n * Project repository: https://github.com/malsup/form\n * Dual licensed under the MIT and GPL licenses.\n * https://github.com/malsup/form#copyright-and-license\n */\n/*global ActiveXObject */\n\n// AMD support\n(function (factory) {\n    \"use strict\";\n    if (typeof define === 'function' && define.amd) {\n        // using AMD; register as anon module\n        define(['jquery'], factory);\n    } else {\n        // no AMD; invoke directly\n        factory( (typeof(jQuery) != 'undefined') ? jQuery : window.Zepto );\n    }\n}\n\n(function($) {\n\"use strict\";\n\n/*\n    Usage Note:\n    -----------\n    Do not use both ajaxSubmit and ajaxForm on the same form.  These\n    functions are mutually exclusive.  Use ajaxSubmit if you want\n    to bind your own submit handler to the form.  For example,\n\n    $(document).ready(function() {\n        $('#myForm').on('submit', function(e) {\n            e.preventDefault(); // <-- important\n            $(this).ajaxSubmit({\n                target: '#output'\n            });\n        });\n    });\n\n    Use ajaxForm when you want the plugin to manage all the event binding\n    for you.  For example,\n\n    $(document).ready(function() {\n        $('#myForm').ajaxForm({\n            target: '#output'\n        });\n    });\n\n    You can also use ajaxForm with delegation (requires jQuery v1.7+), so the\n    form does not have to exist when you invoke ajaxForm:\n\n    $('#myForm').ajaxForm({\n        delegation: true,\n        target: '#output'\n    });\n\n    When using ajaxForm, the ajaxSubmit function will be invoked for you\n    at the appropriate time.\n*/\n\n/**\n * Feature detection\n */\nvar feature = {};\nfeature.fileapi = $(\"<input type='file'/>\").get(0).files !== undefined;\nfeature.formdata = window.FormData !== undefined;\n\nvar hasProp = !!$.fn.prop;\n\n// attr2 uses prop when it can but checks the return type for\n// an expected string.  this accounts for the case where a form \n// contains inputs with names like \"action\" or \"method\"; in those\n// cases \"prop\" returns the element\n$.fn.attr2 = function() {\n    if ( ! hasProp ) {\n        return this.attr.apply(this, arguments);\n    }\n    var val = this.prop.apply(this, arguments);\n    if ( ( val && val.jquery ) || typeof val === 'string' ) {\n        return val;\n    }\n    return this.attr.apply(this, arguments);\n};\n\n/**\n * ajaxSubmit() provides a mechanism for immediately submitting\n * an HTML form using AJAX.\n */\n$.fn.ajaxSubmit = function(options) {\n    /*jshint scripturl:true */\n\n    // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)\n    if (!this.length) {\n        log('ajaxSubmit: skipping submit process - no element selected');\n        return this;\n    }\n\n    var method, action, url, $form = this;\n\n    if (typeof options == 'function') {\n        options = { success: options };\n    }\n    else if ( options === undefined ) {\n        options = {};\n    }\n\n    method = options.type || this.attr2('method');\n    action = options.url  || this.attr2('action');\n\n    url = (typeof action === 'string') ? $.trim(action) : '';\n    url = url || window.location.href || '';\n    if (url) {\n        // clean url (don't include hash vaue)\n        url = (url.match(/^([^#]+)/)||[])[1];\n    }\n\n    options = $.extend(true, {\n        url:  url,\n        success: $.ajaxSettings.success,\n        type: method || $.ajaxSettings.type,\n        iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'\n    }, options);\n\n    // hook for manipulating the form data before it is extracted;\n    // convenient for use with rich editors like tinyMCE or FCKEditor\n    var veto = {};\n    this.trigger('form-pre-serialize', [this, options, veto]);\n    if (veto.veto) {\n        log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');\n        return this;\n    }\n\n    // provide opportunity to alter form data before it is serialized\n    if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {\n        log('ajaxSubmit: submit aborted via beforeSerialize callback');\n        return this;\n    }\n\n    var traditional = options.traditional;\n    if ( traditional === undefined ) {\n        traditional = $.ajaxSettings.traditional;\n    }\n\n    var elements = [];\n    var qx, a = this.formToArray(options.semantic, elements);\n    if (options.data) {\n        options.extraData = options.data;\n        qx = $.param(options.data, traditional);\n    }\n\n    // give pre-submit callback an opportunity to abort the submit\n    if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {\n        log('ajaxSubmit: submit aborted via beforeSubmit callback');\n        return this;\n    }\n\n    // fire vetoable 'validate' event\n    this.trigger('form-submit-validate', [a, this, options, veto]);\n    if (veto.veto) {\n        log('ajaxSubmit: submit vetoed via form-submit-validate trigger');\n        return this;\n    }\n\n    var q = $.param(a, traditional);\n    if (qx) {\n        q = ( q ? (q + '&' + qx) : qx );\n    }\n    if (options.type.toUpperCase() == 'GET') {\n        options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;\n        options.data = null;  // data is null for 'get'\n    }\n    else {\n        options.data = q; // data is the query string for 'post'\n    }\n\n    var callbacks = [];\n    if (options.resetForm) {\n        callbacks.push(function() { $form.resetForm(); });\n    }\n    if (options.clearForm) {\n        callbacks.push(function() { $form.clearForm(options.includeHidden); });\n    }\n\n    // perform a load on the target only if dataType is not provided\n    if (!options.dataType && options.target) {\n        var oldSuccess = options.success || function(){};\n        callbacks.push(function(data) {\n            var fn = options.replaceTarget ? 'replaceWith' : 'html';\n            $(options.target)[fn](data).each(oldSuccess, arguments);\n        });\n    }\n    else if (options.success) {\n        callbacks.push(options.success);\n    }\n\n    options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg\n        var context = options.context || this ;    // jQuery 1.4+ supports scope context\n        for (var i=0, max=callbacks.length; i < max; i++) {\n            callbacks[i].apply(context, [data, status, xhr || $form, $form]);\n        }\n    };\n\n    if (options.error) {\n        var oldError = options.error;\n        options.error = function(xhr, status, error) {\n            var context = options.context || this;\n            oldError.apply(context, [xhr, status, error, $form]);\n        };\n    }\n\n     if (options.complete) {\n        var oldComplete = options.complete;\n        options.complete = function(xhr, status) {\n            var context = options.context || this;\n            oldComplete.apply(context, [xhr, status, $form]);\n        };\n    }\n\n    // are there files to upload?\n\n    // [value] (issue #113), also see comment:\n    // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219\n    var fileInputs = $('input[type=file]:enabled', this).filter(function() { return $(this).val() !== ''; });\n\n    var hasFileInputs = fileInputs.length > 0;\n    var mp = 'multipart/form-data';\n    var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);\n\n    var fileAPI = feature.fileapi && feature.formdata;\n    log(\"fileAPI :\" + fileAPI);\n    var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI;\n\n    var jqxhr;\n\n    // options.iframe allows user to force iframe mode\n    // 06-NOV-09: now defaulting to iframe mode if file input is detected\n    if (options.iframe !== false && (options.iframe || shouldUseFrame)) {\n        // hack to fix Safari hang (thanks to Tim Molendijk for this)\n        // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d\n        if (options.closeKeepAlive) {\n            $.get(options.closeKeepAlive, function() {\n                jqxhr = fileUploadIframe(a);\n            });\n        }\n        else {\n            jqxhr = fileUploadIframe(a);\n        }\n    }\n    else if ((hasFileInputs || multipart) && fileAPI) {\n        jqxhr = fileUploadXhr(a);\n    }\n    else {\n        jqxhr = $.ajax(options);\n    }\n\n    $form.removeData('jqxhr').data('jqxhr', jqxhr);\n\n    // clear element array\n    for (var k=0; k < elements.length; k++) {\n        elements[k] = null;\n    }\n\n    // fire 'notify' event\n    this.trigger('form-submit-notify', [this, options]);\n    return this;\n\n    // utility fn for deep serialization\n    function deepSerialize(extraData){\n        var serialized = $.param(extraData, options.traditional).split('&');\n        var len = serialized.length;\n        var result = [];\n        var i, part;\n        for (i=0; i < len; i++) {\n            // #252; undo param space replacement\n            serialized[i] = serialized[i].replace(/\\+/g,' ');\n            part = serialized[i].split('=');\n            // #278; use array instead of object storage, favoring array serializations\n            result.push([decodeURIComponent(part[0]), decodeURIComponent(part[1])]);\n        }\n        return result;\n    }\n\n     // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz)\n    function fileUploadXhr(a) {\n        var formdata = new FormData();\n\n        for (var i=0; i < a.length; i++) {\n            formdata.append(a[i].name, a[i].value);\n        }\n\n        if (options.extraData) {\n            var serializedData = deepSerialize(options.extraData);\n            for (i=0; i < serializedData.length; i++) {\n                if (serializedData[i]) {\n                    formdata.append(serializedData[i][0], serializedData[i][1]);\n                }\n            }\n        }\n\n        options.data = null;\n\n        var s = $.extend(true, {}, $.ajaxSettings, options, {\n            contentType: false,\n            processData: false,\n            cache: false,\n            type: method || 'POST'\n        });\n\n        if (options.uploadProgress) {\n            // workaround because jqXHR does not expose upload property\n            s.xhr = function() {\n                var xhr = $.ajaxSettings.xhr();\n                if (xhr.upload) {\n                    xhr.upload.addEventListener('progress', function(event) {\n                        var percent = 0;\n                        var position = event.loaded || event.position; /*event.position is deprecated*/\n                        var total = event.total;\n                        if (event.lengthComputable) {\n                            percent = Math.ceil(position / total * 100);\n                        }\n                        options.uploadProgress(event, position, total, percent);\n                    }, false);\n                }\n                return xhr;\n            };\n        }\n\n        s.data = null;\n        var beforeSend = s.beforeSend;\n        s.beforeSend = function(xhr, o) {\n            //Send FormData() provided by user\n            if (options.formData) {\n                o.data = options.formData;\n            }\n            else {\n                o.data = formdata;\n            }\n            if(beforeSend) {\n                beforeSend.call(this, xhr, o);\n            }\n        };\n        return $.ajax(s);\n    }\n\n    // private function for handling file uploads (hat tip to YAHOO!)\n    function fileUploadIframe(a) {\n        var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;\n        var deferred = $.Deferred();\n\n        // #341\n        deferred.abort = function(status) {\n            xhr.abort(status);\n        };\n\n        if (a) {\n            // ensure that every serialized input is still enabled\n            for (i=0; i < elements.length; i++) {\n                el = $(elements[i]);\n                if ( hasProp ) {\n                    el.prop('disabled', false);\n                }\n                else {\n                    el.removeAttr('disabled');\n                }\n            }\n        }\n\n        s = $.extend(true, {}, $.ajaxSettings, options);\n        s.context = s.context || s;\n        id = 'jqFormIO' + (new Date().getTime());\n        if (s.iframeTarget) {\n            $io = $(s.iframeTarget);\n            n = $io.attr2('name');\n            if (!n) {\n                $io.attr2('name', id);\n            }\n            else {\n                id = n;\n            }\n        }\n        else {\n            $io = $('<iframe name=\"' + id + '\" src=\"'+ s.iframeSrc +'\" />');\n            $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });\n        }\n        io = $io[0];\n\n\n        xhr = { // mock object\n            aborted: 0,\n            responseText: null,\n            responseXML: null,\n            status: 0,\n            statusText: 'n/a',\n            getAllResponseHeaders: function() {},\n            getResponseHeader: function() {},\n            setRequestHeader: function() {},\n            abort: function(status) {\n                var e = (status === 'timeout' ? 'timeout' : 'aborted');\n                log('aborting upload... ' + e);\n                this.aborted = 1;\n\n                try { // #214, #257\n                    if (io.contentWindow.document.execCommand) {\n                        io.contentWindow.document.execCommand('Stop');\n                    }\n                }\n                catch(ignore) {}\n\n                $io.attr('src', s.iframeSrc); // abort op in progress\n                xhr.error = e;\n                if (s.error) {\n                    s.error.call(s.context, xhr, e, status);\n                }\n                if (g) {\n                    $.event.trigger(\"ajaxError\", [xhr, s, e]);\n                }\n                if (s.complete) {\n                    s.complete.call(s.context, xhr, e);\n                }\n            }\n        };\n\n        g = s.global;\n        // trigger ajax global events so that activity/block indicators work like normal\n        if (g && 0 === $.active++) {\n            $.event.trigger(\"ajaxStart\");\n        }\n        if (g) {\n            $.event.trigger(\"ajaxSend\", [xhr, s]);\n        }\n\n        if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {\n            if (s.global) {\n                $.active--;\n            }\n            deferred.reject();\n            return deferred;\n        }\n        if (xhr.aborted) {\n            deferred.reject();\n            return deferred;\n        }\n\n        // add submitting element to data if we know it\n        sub = form.clk;\n        if (sub) {\n            n = sub.name;\n            if (n && !sub.disabled) {\n                s.extraData = s.extraData || {};\n                s.extraData[n] = sub.value;\n                if (sub.type == \"image\") {\n                    s.extraData[n+'.x'] = form.clk_x;\n                    s.extraData[n+'.y'] = form.clk_y;\n                }\n            }\n        }\n\n        var CLIENT_TIMEOUT_ABORT = 1;\n        var SERVER_ABORT = 2;\n                \n        function getDoc(frame) {\n            /* it looks like contentWindow or contentDocument do not\n             * carry the protocol property in ie8, when running under ssl\n             * frame.document is the only valid response document, since\n             * the protocol is know but not on the other two objects. strange?\n             * \"Same origin policy\" http://en.wikipedia.org/wiki/Same_origin_policy\n             */\n            \n            var doc = null;\n            \n            // IE8 cascading access check\n            try {\n                if (frame.contentWindow) {\n                    doc = frame.contentWindow.document;\n                }\n            } catch(err) {\n                // IE8 access denied under ssl & missing protocol\n                log('cannot get iframe.contentWindow document: ' + err);\n            }\n\n            if (doc) { // successful getting content\n                return doc;\n            }\n\n            try { // simply checking may throw in ie8 under ssl or mismatched protocol\n                doc = frame.contentDocument ? frame.contentDocument : frame.document;\n            } catch(err) {\n                // last attempt\n                log('cannot get iframe.contentDocument: ' + err);\n                doc = frame.document;\n            }\n            return doc;\n        }\n\n        // Rails CSRF hack (thanks to Yvan Barthelemy)\n        var csrf_token = $('meta[name=csrf-token]').attr('content');\n        var csrf_param = $('meta[name=csrf-param]').attr('content');\n        if (csrf_param && csrf_token) {\n            s.extraData = s.extraData || {};\n            s.extraData[csrf_param] = csrf_token;\n        }\n\n        // take a breath so that pending repaints get some cpu time before the upload starts\n        function doSubmit() {\n            // make sure form attrs are set\n            var t = $form.attr2('target'), \n                a = $form.attr2('action'), \n                mp = 'multipart/form-data',\n                et = $form.attr('enctype') || $form.attr('encoding') || mp;\n\n            // update form attrs in IE friendly way\n            form.setAttribute('target',id);\n            if (!method || /post/i.test(method) ) {\n                form.setAttribute('method', 'POST');\n            }\n            if (a != s.url) {\n                form.setAttribute('action', s.url);\n            }\n\n            // ie borks in some cases when setting encoding\n            if (! s.skipEncodingOverride && (!method || /post/i.test(method))) {\n                $form.attr({\n                    encoding: 'multipart/form-data',\n                    enctype:  'multipart/form-data'\n                });\n            }\n\n            // support timout\n            if (s.timeout) {\n                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);\n            }\n\n            // look for server aborts\n            function checkState() {\n                try {\n                    var state = getDoc(io).readyState;\n                    log('state = ' + state);\n                    if (state && state.toLowerCase() == 'uninitialized') {\n                        setTimeout(checkState,50);\n                    }\n                }\n                catch(e) {\n                    log('Server abort: ' , e, ' (', e.name, ')');\n                    cb(SERVER_ABORT);\n                    if (timeoutHandle) {\n                        clearTimeout(timeoutHandle);\n                    }\n                    timeoutHandle = undefined;\n                }\n            }\n\n            // add \"extra\" data to form if provided in options\n            var extraInputs = [];\n            try {\n                if (s.extraData) {\n                    for (var n in s.extraData) {\n                        if (s.extraData.hasOwnProperty(n)) {\n                           // if using the $.param format that allows for multiple values with the same name\n                           if($.isPlainObject(s.extraData[n]) && s.extraData[n].hasOwnProperty('name') && s.extraData[n].hasOwnProperty('value')) {\n                               extraInputs.push(\n                               $('<input type=\"hidden\" name=\"'+s.extraData[n].name+'\">').val(s.extraData[n].value)\n                                   .appendTo(form)[0]);\n                           } else {\n                               extraInputs.push(\n                               $('<input type=\"hidden\" name=\"'+n+'\">').val(s.extraData[n])\n                                   .appendTo(form)[0]);\n                           }\n                        }\n                    }\n                }\n\n                if (!s.iframeTarget) {\n                    // add iframe to doc and submit the form\n                    $io.appendTo('body');\n                }\n                if (io.attachEvent) {\n                    io.attachEvent('onload', cb);\n                }\n                else {\n                    io.addEventListener('load', cb, false);\n                }\n                setTimeout(checkState,15);\n\n                try {\n                    form.submit();\n                } catch(err) {\n                    // just in case form has element with name/id of 'submit'\n                    var submitFn = document.createElement('form').submit;\n                    submitFn.apply(form);\n                }\n            }\n            finally {\n                // reset attrs and remove \"extra\" input elements\n                form.setAttribute('action',a);\n                form.setAttribute('enctype', et); // #380\n                if(t) {\n                    form.setAttribute('target', t);\n                } else {\n                    $form.removeAttr('target');\n                }\n                $(extraInputs).remove();\n            }\n        }\n\n        if (s.forceSync) {\n            doSubmit();\n        }\n        else {\n            setTimeout(doSubmit, 10); // this lets dom updates render\n        }\n\n        var data, doc, domCheckCount = 50, callbackProcessed;\n\n        function cb(e) {\n            if (xhr.aborted || callbackProcessed) {\n                return;\n            }\n            \n            doc = getDoc(io);\n            if(!doc) {\n                log('cannot access response document');\n                e = SERVER_ABORT;\n            }\n            if (e === CLIENT_TIMEOUT_ABORT && xhr) {\n                xhr.abort('timeout');\n                deferred.reject(xhr, 'timeout');\n                return;\n            }\n            else if (e == SERVER_ABORT && xhr) {\n                xhr.abort('server abort');\n                deferred.reject(xhr, 'error', 'server abort');\n                return;\n            }\n\n            if (!doc || doc.location.href == s.iframeSrc) {\n                // response not received yet\n                if (!timedOut) {\n                    return;\n                }\n            }\n            if (io.detachEvent) {\n                io.detachEvent('onload', cb);\n            }\n            else {\n                io.removeEventListener('load', cb, false);\n            }\n\n            var status = 'success', errMsg;\n            try {\n                if (timedOut) {\n                    throw 'timeout';\n                }\n\n                var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);\n                log('isXml='+isXml);\n                if (!isXml && window.opera && (doc.body === null || !doc.body.innerHTML)) {\n                    if (--domCheckCount) {\n                        // in some browsers (Opera) the iframe DOM is not always traversable when\n                        // the onload callback fires, so we loop a bit to accommodate\n                        log('requeing onLoad callback, DOM not available');\n                        setTimeout(cb, 250);\n                        return;\n                    }\n                    // let this fall through because server response could be an empty document\n                    //log('Could not access iframe DOM after mutiple tries.');\n                    //throw 'DOMException: not available';\n                }\n\n                //log('response detected');\n                var docRoot = doc.body ? doc.body : doc.documentElement;\n                xhr.responseText = docRoot ? docRoot.innerHTML : null;\n                xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;\n                if (isXml) {\n                    s.dataType = 'xml';\n                }\n                xhr.getResponseHeader = function(header){\n                    var headers = {'content-type': s.dataType};\n                    return headers[header.toLowerCase()];\n                };\n                // support for XHR 'status' & 'statusText' emulation :\n                if (docRoot) {\n                    xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;\n                    xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;\n                }\n\n                var dt = (s.dataType || '').toLowerCase();\n                var scr = /(json|script|text)/.test(dt);\n                if (scr || s.textarea) {\n                    // see if user embedded response in textarea\n                    var ta = doc.getElementsByTagName('textarea')[0];\n                    if (ta) {\n                        xhr.responseText = ta.value;\n                        // support for XHR 'status' & 'statusText' emulation :\n                        xhr.status = Number( ta.getAttribute('status') ) || xhr.status;\n                        xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;\n                    }\n                    else if (scr) {\n                        // account for browsers injecting pre around json response\n                        var pre = doc.getElementsByTagName('pre')[0];\n                        var b = doc.getElementsByTagName('body')[0];\n                        if (pre) {\n                            xhr.responseText = pre.textContent ? pre.textContent : pre.innerText;\n                        }\n                        else if (b) {\n                            xhr.responseText = b.textContent ? b.textContent : b.innerText;\n                        }\n                    }\n                }\n                else if (dt == 'xml' && !xhr.responseXML && xhr.responseText) {\n                    xhr.responseXML = toXml(xhr.responseText);\n                }\n\n                try {\n                    data = httpData(xhr, dt, s);\n                }\n                catch (err) {\n                    status = 'parsererror';\n                    xhr.error = errMsg = (err || status);\n                }\n            }\n            catch (err) {\n                log('error caught: ',err);\n                status = 'error';\n                xhr.error = errMsg = (err || status);\n            }\n\n            if (xhr.aborted) {\n                log('upload aborted');\n                status = null;\n            }\n\n            if (xhr.status) { // we've set xhr.status\n                status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';\n            }\n\n            // ordering of these callbacks/triggers is odd, but that's how $.ajax does it\n            if (status === 'success') {\n                if (s.success) {\n                    s.success.call(s.context, data, 'success', xhr);\n                }\n                deferred.resolve(xhr.responseText, 'success', xhr);\n                if (g) {\n                    $.event.trigger(\"ajaxSuccess\", [xhr, s]);\n                }\n            }\n            else if (status) {\n                if (errMsg === undefined) {\n                    errMsg = xhr.statusText;\n                }\n                if (s.error) {\n                    s.error.call(s.context, xhr, status, errMsg);\n                }\n                deferred.reject(xhr, 'error', errMsg);\n                if (g) {\n                    $.event.trigger(\"ajaxError\", [xhr, s, errMsg]);\n                }\n            }\n\n            if (g) {\n                $.event.trigger(\"ajaxComplete\", [xhr, s]);\n            }\n\n            if (g && ! --$.active) {\n                $.event.trigger(\"ajaxStop\");\n            }\n\n            if (s.complete) {\n                s.complete.call(s.context, xhr, status);\n            }\n\n            callbackProcessed = true;\n            if (s.timeout) {\n                clearTimeout(timeoutHandle);\n            }\n\n            // clean up\n            setTimeout(function() {\n                if (!s.iframeTarget) {\n                    $io.remove();\n                }\n                else { //adding else to clean up existing iframe response.\n                    $io.attr('src', s.iframeSrc);\n                }\n                xhr.responseXML = null;\n            }, 100);\n        }\n\n        var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)\n            if (window.ActiveXObject) {\n                doc = new ActiveXObject('Microsoft.XMLDOM');\n                doc.async = 'false';\n                doc.loadXML(s);\n            }\n            else {\n                doc = (new DOMParser()).parseFromString(s, 'text/xml');\n            }\n            return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;\n        };\n        var parseJSON = $.parseJSON || function(s) {\n            /*jslint evil:true */\n            return window['eval']('(' + s + ')');\n        };\n\n        var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4\n\n            var ct = xhr.getResponseHeader('content-type') || '',\n                xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,\n                data = xml ? xhr.responseXML : xhr.responseText;\n\n            if (xml && data.documentElement.nodeName === 'parsererror') {\n                if ($.error) {\n                    $.error('parsererror');\n                }\n            }\n            if (s && s.dataFilter) {\n                data = s.dataFilter(data, type);\n            }\n            if (typeof data === 'string') {\n                if (type === 'json' || !type && ct.indexOf('json') >= 0) {\n                    data = parseJSON(data);\n                } else if (type === \"script\" || !type && ct.indexOf(\"javascript\") >= 0) {\n                    $.globalEval(data);\n                }\n            }\n            return data;\n        };\n\n        return deferred;\n    }\n};\n\n/**\n * ajaxForm() provides a mechanism for fully automating form submission.\n *\n * The advantages of using this method instead of ajaxSubmit() are:\n *\n * 1: This method will include coordinates for <input type=\"image\" /> elements (if the element\n *    is used to submit the form).\n * 2. This method will include the submit element's name/value data (for the element that was\n *    used to submit the form).\n * 3. This method binds the submit() method to the form for you.\n *\n * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely\n * passes the options argument along after properly binding events for submit elements and\n * the form itself.\n */\n$.fn.ajaxForm = function(options) {\n    options = options || {};\n    options.delegation = options.delegation && $.isFunction($.fn.on);\n\n    // in jQuery 1.3+ we can fix mistakes with the ready state\n    if (!options.delegation && this.length === 0) {\n        var o = { s: this.selector, c: this.context };\n        if (!$.isReady && o.s) {\n            log('DOM not ready, queuing ajaxForm');\n            $(function() {\n                $(o.s,o.c).ajaxForm(options);\n            });\n            return this;\n        }\n        // is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()\n        log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));\n        return this;\n    }\n\n    if ( options.delegation ) {\n        $(document)\n            .off('submit.form-plugin', this.selector, doAjaxSubmit)\n            .off('click.form-plugin', this.selector, captureSubmittingElement)\n            .on('submit.form-plugin', this.selector, options, doAjaxSubmit)\n            .on('click.form-plugin', this.selector, options, captureSubmittingElement);\n        return this;\n    }\n\n    return this.ajaxFormUnbind()\n        .bind('submit.form-plugin', options, doAjaxSubmit)\n        .bind('click.form-plugin', options, captureSubmittingElement);\n};\n\n// private event handlers\nfunction doAjaxSubmit(e) {\n    /*jshint validthis:true */\n    var options = e.data;\n    if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed\n        e.preventDefault();\n        $(e.target).ajaxSubmit(options); // #365\n    }\n}\n\nfunction captureSubmittingElement(e) {\n    /*jshint validthis:true */\n    var target = e.target;\n    var $el = $(target);\n    if (!($el.is(\"[type=submit],[type=image]\"))) {\n        // is this a child element of the submit el?  (ex: a span within a button)\n        var t = $el.closest('[type=submit]');\n        if (t.length === 0) {\n            return;\n        }\n        target = t[0];\n    }\n    var form = this;\n    form.clk = target;\n    if (target.type == 'image') {\n        if (e.offsetX !== undefined) {\n            form.clk_x = e.offsetX;\n            form.clk_y = e.offsetY;\n        } else if (typeof $.fn.offset == 'function') {\n            var offset = $el.offset();\n            form.clk_x = e.pageX - offset.left;\n            form.clk_y = e.pageY - offset.top;\n        } else {\n            form.clk_x = e.pageX - target.offsetLeft;\n            form.clk_y = e.pageY - target.offsetTop;\n        }\n    }\n    // clear form vars\n    setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);\n}\n\n\n// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm\n$.fn.ajaxFormUnbind = function() {\n    return this.unbind('submit.form-plugin click.form-plugin');\n};\n\n/**\n * formToArray() gathers form element data into an array of objects that can\n * be passed to any of the following ajax functions: $.get, $.post, or load.\n * Each object in the array has both a 'name' and 'value' property.  An example of\n * an array for a simple login form might be:\n *\n * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]\n *\n * It is this array that is passed to pre-submit callback functions provided to the\n * ajaxSubmit() and ajaxForm() methods.\n */\n$.fn.formToArray = function(semantic, elements) {\n    var a = [];\n    if (this.length === 0) {\n        return a;\n    }\n\n    var form = this[0];\n    var formId = this.attr('id');\n    var els = semantic ? form.getElementsByTagName('*') : form.elements;\n    var els2;\n\n    if (els && !/MSIE [678]/.test(navigator.userAgent)) { // #390\n        els = $(els).get();  // convert to standard array\n    }\n\n    // #386; account for inputs outside the form which use the 'form' attribute\n    if ( formId ) {\n        els2 = $(':input[form=\"' + formId + '\"]').get(); // hat tip @thet\n        if ( els2.length ) {\n            els = (els || []).concat(els2);\n        }\n    }\n\n    if (!els || !els.length) {\n        return a;\n    }\n\n    var i,j,n,v,el,max,jmax;\n    for(i=0, max=els.length; i < max; i++) {\n        el = els[i];\n        n = el.name;\n        if (!n || el.disabled) {\n            continue;\n        }\n\n        if (semantic && form.clk && el.type == \"image\") {\n            // handle image inputs on the fly when semantic == true\n            if(form.clk == el) {\n                a.push({name: n, value: $(el).val(), type: el.type });\n                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});\n            }\n            continue;\n        }\n\n        v = $.fieldValue(el, true);\n        if (v && v.constructor == Array) {\n            if (elements) {\n                elements.push(el);\n            }\n            for(j=0, jmax=v.length; j < jmax; j++) {\n                a.push({name: n, value: v[j]});\n            }\n        }\n        else if (feature.fileapi && el.type == 'file') {\n            if (elements) {\n                elements.push(el);\n            }\n            var files = el.files;\n            if (files.length) {\n                for (j=0; j < files.length; j++) {\n                    a.push({name: n, value: files[j], type: el.type});\n                }\n            }\n            else {\n                // #180\n                a.push({ name: n, value: '', type: el.type });\n            }\n        }\n        else if (v !== null && typeof v != 'undefined') {\n            if (elements) {\n                elements.push(el);\n            }\n            a.push({name: n, value: v, type: el.type, required: el.required});\n        }\n    }\n\n    if (!semantic && form.clk) {\n        // input type=='image' are not found in elements array! handle it here\n        var $input = $(form.clk), input = $input[0];\n        n = input.name;\n        if (n && !input.disabled && input.type == 'image') {\n            a.push({name: n, value: $input.val()});\n            a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});\n        }\n    }\n    return a;\n};\n\n/**\n * Serializes form data into a 'submittable' string. This method will return a string\n * in the format: name1=value1&amp;name2=value2\n */\n$.fn.formSerialize = function(semantic) {\n    //hand off to jQuery.param for proper encoding\n    return $.param(this.formToArray(semantic));\n};\n\n/**\n * Serializes all field elements in the jQuery object into a query string.\n * This method will return a string in the format: name1=value1&amp;name2=value2\n */\n$.fn.fieldSerialize = function(successful) {\n    var a = [];\n    this.each(function() {\n        var n = this.name;\n        if (!n) {\n            return;\n        }\n        var v = $.fieldValue(this, successful);\n        if (v && v.constructor == Array) {\n            for (var i=0,max=v.length; i < max; i++) {\n                a.push({name: n, value: v[i]});\n            }\n        }\n        else if (v !== null && typeof v != 'undefined') {\n            a.push({name: this.name, value: v});\n        }\n    });\n    //hand off to jQuery.param for proper encoding\n    return $.param(a);\n};\n\n/**\n * Returns the value(s) of the element in the matched set.  For example, consider the following form:\n *\n *  <form><fieldset>\n *      <input name=\"A\" type=\"text\" />\n *      <input name=\"A\" type=\"text\" />\n *      <input name=\"B\" type=\"checkbox\" value=\"B1\" />\n *      <input name=\"B\" type=\"checkbox\" value=\"B2\"/>\n *      <input name=\"C\" type=\"radio\" value=\"C1\" />\n *      <input name=\"C\" type=\"radio\" value=\"C2\" />\n *  </fieldset></form>\n *\n *  var v = $('input[type=text]').fieldValue();\n *  // if no values are entered into the text inputs\n *  v == ['','']\n *  // if values entered into the text inputs are 'foo' and 'bar'\n *  v == ['foo','bar']\n *\n *  var v = $('input[type=checkbox]').fieldValue();\n *  // if neither checkbox is checked\n *  v === undefined\n *  // if both checkboxes are checked\n *  v == ['B1', 'B2']\n *\n *  var v = $('input[type=radio]').fieldValue();\n *  // if neither radio is checked\n *  v === undefined\n *  // if first radio is checked\n *  v == ['C1']\n *\n * The successful argument controls whether or not the field element must be 'successful'\n * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).\n * The default value of the successful argument is true.  If this value is false the value(s)\n * for each element is returned.\n *\n * Note: This method *always* returns an array.  If no valid value can be determined the\n *    array will be empty, otherwise it will contain one or more values.\n */\n$.fn.fieldValue = function(successful) {\n    for (var val=[], i=0, max=this.length; i < max; i++) {\n        var el = this[i];\n        var v = $.fieldValue(el, successful);\n        if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {\n            continue;\n        }\n        if (v.constructor == Array) {\n            $.merge(val, v);\n        }\n        else {\n            val.push(v);\n        }\n    }\n    return val;\n};\n\n/**\n * Returns the value of the field element.\n */\n$.fieldValue = function(el, successful) {\n    var n = el.name, t = el.type, tag = el.tagName.toLowerCase();\n    if (successful === undefined) {\n        successful = true;\n    }\n\n    if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||\n        (t == 'checkbox' || t == 'radio') && !el.checked ||\n        (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||\n        tag == 'select' && el.selectedIndex == -1)) {\n            return null;\n    }\n\n    if (tag == 'select') {\n        var index = el.selectedIndex;\n        if (index < 0) {\n            return null;\n        }\n        var a = [], ops = el.options;\n        var one = (t == 'select-one');\n        var max = (one ? index+1 : ops.length);\n        for(var i=(one ? index : 0); i < max; i++) {\n            var op = ops[i];\n            if (op.selected) {\n                var v = op.value;\n                if (!v) { // extra pain for IE...\n                    v = (op.attributes && op.attributes.value && !(op.attributes.value.specified)) ? op.text : op.value;\n                }\n                if (one) {\n                    return v;\n                }\n                a.push(v);\n            }\n        }\n        return a;\n    }\n    return $(el).val();\n};\n\n/**\n * Clears the form data.  Takes the following actions on the form's input fields:\n *  - input text fields will have their 'value' property set to the empty string\n *  - select elements will have their 'selectedIndex' property set to -1\n *  - checkbox and radio inputs will have their 'checked' property set to false\n *  - inputs of type submit, button, reset, and hidden will *not* be effected\n *  - button elements will *not* be effected\n */\n$.fn.clearForm = function(includeHidden) {\n    return this.each(function() {\n        $('input,select,textarea', this).clearFields(includeHidden);\n    });\n};\n\n/**\n * Clears the selected form elements.\n */\n$.fn.clearFields = $.fn.clearInputs = function(includeHidden) {\n    var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list\n    return this.each(function() {\n        var t = this.type, tag = this.tagName.toLowerCase();\n        if (re.test(t) || tag == 'textarea') {\n            this.value = '';\n        }\n        else if (t == 'checkbox' || t == 'radio') {\n            this.checked = false;\n        }\n        else if (tag == 'select') {\n            this.selectedIndex = -1;\n        }\n        else if (t == \"file\") {\n            if (/MSIE/.test(navigator.userAgent)) {\n                $(this).replaceWith($(this).clone(true));\n            } else {\n                $(this).val('');\n            }\n        }\n        else if (includeHidden) {\n            // includeHidden can be the value true, or it can be a selector string\n            // indicating a special test; for example:\n            //  $('#myForm').clearForm('.special:hidden')\n            // the above would clean hidden inputs that have the class of 'special'\n            if ( (includeHidden === true && /hidden/.test(t)) ||\n                 (typeof includeHidden == 'string' && $(this).is(includeHidden)) ) {\n                this.value = '';\n            }\n        }\n    });\n};\n\n/**\n * Resets the form data.  Causes all form elements to be reset to their original value.\n */\n$.fn.resetForm = function() {\n    return this.each(function() {\n        // guard against an input with the name of 'reset'\n        // note that IE reports the reset function as an 'object'\n        if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {\n            this.reset();\n        }\n    });\n};\n\n/**\n * Enables or disables any matching elements.\n */\n$.fn.enable = function(b) {\n    if (b === undefined) {\n        b = true;\n    }\n    return this.each(function() {\n        this.disabled = !b;\n    });\n};\n\n/**\n * Checks/unchecks any matching checkboxes or radio buttons and\n * selects/deselects and matching option elements.\n */\n$.fn.selected = function(select) {\n    if (select === undefined) {\n        select = true;\n    }\n    return this.each(function() {\n        var t = this.type;\n        if (t == 'checkbox' || t == 'radio') {\n            this.checked = select;\n        }\n        else if (this.tagName.toLowerCase() == 'option') {\n            var $sel = $(this).parent('select');\n            if (select && $sel[0] && $sel[0].type == 'select-one') {\n                // deselect all other options\n                $sel.find('option').selected(false);\n            }\n            this.selected = select;\n        }\n    });\n};\n\n// expose debug var\n$.fn.ajaxSubmit.debug = false;\n\n// helper fn for console logging\nfunction log() {\n    if (!$.fn.ajaxSubmit.debug) {\n        return;\n    }\n    var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');\n    if (window.console && window.console.log) {\n        window.console.log(msg);\n    }\n    else if (window.opera && window.opera.postError) {\n        window.opera.postError(msg);\n    }\n}\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery.mockjax.js",
    "content": "/*!\n * MockJax - jQuery Plugin to Mock Ajax requests\n *\n * Version:  1.5.0pre\n * Released:\n * Home:   http://github.com/appendto/jquery-mockjax\n * Author:   Jonathan Sharp (http://jdsharp.com)\n * License:  MIT,GPL\n *\n * Copyright (c) 2011 appendTo LLC.\n * Dual licensed under the MIT or GPL licenses.\n * http://appendto.com/open-source-licenses\n */\n(function($) {\n\tvar _ajax = $.ajax,\n\t\tmockHandlers = [],\n\t\tCALLBACK_REGEX = /=\\?(&|$)/, \n\t\tjsc = (new Date()).getTime();\n\n\t\n\t// Parse the given XML string. \n\tfunction parseXML(xml) {\n\t\tif ( window['DOMParser'] == undefined && window.ActiveXObject ) {\n\t\t\tDOMParser = function() { };\n\t\t\tDOMParser.prototype.parseFromString = function( xmlString ) {\n\t\t\t\tvar doc = new ActiveXObject('Microsoft.XMLDOM');\n\t\t\t\tdoc.async = 'false';\n\t\t\t\tdoc.loadXML( xmlString );\n\t\t\t\treturn doc;\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tvar xmlDoc \t= ( new DOMParser() ).parseFromString( xml, 'text/xml' );\n\t\t\tif ( $.isXMLDoc( xmlDoc ) ) {\n\t\t\t\tvar err = $('parsererror', xmlDoc);\n\t\t\t\tif ( err.length == 1 ) {\n\t\t\t\t\tthrow('Error: ' + $(xmlDoc).text() );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow('Unable to parse XML');\n\t\t\t}\n\t\t} catch( e ) {\n\t\t\tvar msg = ( e.name == undefined ? e : e.name + ': ' + e.message );\n\t\t\t$(document).trigger('xmlParseError', [ msg ]);\n\t\t\treturn undefined;\n\t\t}\n\t\treturn xmlDoc;\n\t}\n\n\t// Trigger a jQuery event\n\tfunction trigger(s, type, args) {\n\t\t(s.context ? jQuery(s.context) : jQuery.event).trigger(type, args);\n\t}\n\n\t// Check if the data field on the mock handler and the request match. This \n\t// can be used to restrict a mock handler to being used only when a certain\n\t// set of data is passed to it.\n\tfunction isMockDataEqual( mock, live ) {\n\t\tvar identical = false;\n\t\t// Test for situations where the data is a querystring (not an object)\n\t\tif (typeof live === 'string') {\n\t\t\t// Querystring may be a regex\n\t\t\treturn $.isFunction( mock.test ) ? mock.test(live) : mock == live;\n\t\t}\n\t\t$.each(mock, function(k, v) {\n\t\t\tif ( live[k] === undefined ) {\n\t\t\t\tidentical = false;\n\t\t\t\treturn identical;\n\t\t\t} else {\n\t\t\t\tidentical = true;\n\t\t\t\tif ( typeof live[k] == 'object' ) {\n\t\t\t\t\treturn isMockDataEqual(mock[k], live[k]);\n\t\t\t\t} else {\n\t\t\t\t\tif ( $.isFunction( mock[k].test ) ) {\n\t\t\t\t\t\tidentical = mock[k].test(live[k]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tidentical = ( mock[k] == live[k] );\n\t\t\t\t\t}\n\t\t\t\t\treturn identical;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn identical;\n\t}\n\n\t// Check the given handler should mock the given request\n\tfunction getMockForRequest( handler, requestSettings ) {\n\t\t// If the mock was registered with a function, let the function decide if we\n\t\t// want to mock this request\n\t\tif ( $.isFunction(handler) ) {\n\t\t\treturn handler( requestSettings );\n\t\t}\n\n\t\t// Inspect the URL of the request and check if the mock handler's url\n\t\t// matches the url for this ajax request\n\t\tif ( $.isFunction(handler.url.test) ) {\n\t\t\t// The user provided a regex for the url, test it\n\t\t\tif ( !handler.url.test( requestSettings.url ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t} else {\n\t\t\t// Look for a simple wildcard '*' or a direct URL match\n\t\t\tvar star = handler.url.indexOf('*');\n\t\t\tif (handler.url !== requestSettings.url && star === -1 || \n\t\t\t\t\t!new RegExp(handler.url.replace(/[-[\\]{}()+?.,\\\\^$|#\\s]/g, \"\\\\$&\").replace('*', '.+')).test(requestSettings.url)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\t// Inspect the data submitted in the request (either POST body or GET query string)\n\t\tif ( handler.data && requestSettings.data ) {\n\t\t\tif ( !isMockDataEqual(handler.data, requestSettings.data) ) {\n\t\t\t\t// They're not identical, do not mock this request\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t// Inspect the request type\n\t\tif ( handler && handler.type && \n\t\t\t\t handler.type.toLowerCase() != requestSettings.type.toLowerCase() ) {\n\t\t\t// The request type doesn't match (GET vs. POST)\n\t\t\treturn null;\n\t\t}\n\n\t\treturn handler;\n\t}\n\n\t// If logging is enabled, log the mock to the console\n\tfunction logMock( mockHandler, requestSettings ) {\n\t\tvar c = $.extend({}, $.mockjaxSettings, mockHandler);\n\t\tif ( c.log && $.isFunction(c.log) ) {\n\t\t\tc.log('MOCK ' + requestSettings.type.toUpperCase() + ': ' + requestSettings.url, $.extend({}, requestSettings));\n\t\t}\n\t}\n\n\t// Process the xhr objects send operation\n\tfunction _xhrSend(mockHandler, requestSettings, origSettings) {\n\n\t\t// This is a substitute for < 1.4 which lacks $.proxy\n\t\tvar process = (function(that) {\n\t\t\treturn function() {\n\t\t\t\treturn (function() {\n\t\t\t\t\t// The request has returned\n\t\t\t\t\tthis.status \t\t= mockHandler.status;\n\t\t\t\t\tthis.statusText\t\t= mockHandler.statusText;\n\t\t\t\t\tthis.readyState \t= 4;\n\n\t\t\t\t\t// We have an executable function, call it to give\n\t\t\t\t\t// the mock handler a chance to update it's data\n\t\t\t\t\tif ( $.isFunction(mockHandler.response) ) {\n\t\t\t\t\t\tmockHandler.response(origSettings);\n\t\t\t\t\t}\n\t\t\t\t\t// Copy over our mock to our xhr object before passing control back to\n\t\t\t\t\t// jQuery's onreadystatechange callback\n\t\t\t\t\tif ( requestSettings.dataType == 'json' && ( typeof mockHandler.responseText == 'object' ) ) {\n\t\t\t\t\t\tthis.responseText = JSON.stringify(mockHandler.responseText);\n\t\t\t\t\t} else if ( requestSettings.dataType == 'xml' ) {\n\t\t\t\t\t\tif ( typeof mockHandler.responseXML == 'string' ) {\n\t\t\t\t\t\t\tthis.responseXML = parseXML(mockHandler.responseXML);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.responseXML = mockHandler.responseXML;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.responseText = mockHandler.responseText;\n\t\t\t\t\t}\n\t\t\t\t\tif( typeof mockHandler.status == 'number' || typeof mockHandler.status == 'string' ) {\n\t\t\t\t\t\tthis.status = mockHandler.status;\n\t\t\t\t\t}\n\t\t\t\t\tif( typeof mockHandler.statusText === \"string\") {\n\t\t\t\t\t\tthis.statusText = mockHandler.statusText;\n\t\t\t\t\t}\n\t\t\t\t\t// jQuery < 1.4 doesn't have onreadystate change for xhr\n\t\t\t\t\tif ( $.isFunction(this.onreadystatechange) ) {\n\t\t\t\t\t\tif( mockHandler.isTimeout) {\n\t\t\t\t\t\t\tthis.status = -1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.onreadystatechange( mockHandler.isTimeout ? 'timeout' : undefined );\n\t\t\t\t\t} else if ( mockHandler.isTimeout ) {\n\t\t\t\t\t\t// Fix for 1.3.2 timeout to keep success from firing.\n\t\t\t\t\t\tthis.status = -1;\n\t\t\t\t\t}\n\t\t\t\t}).apply(that);\n\t\t\t};\n\t\t})(this);\n\n\t\tif ( mockHandler.proxy ) {\n\t\t\t// We're proxying this request and loading in an external file instead\n\t\t\t_ajax({\n\t\t\t\tglobal: false,\n\t\t\t\turl: mockHandler.proxy,\n\t\t\t\ttype: mockHandler.proxyType,\n\t\t\t\tdata: mockHandler.data,\n\t\t\t\tdataType: requestSettings.dataType === \"script\" ? \"text/plain\" : requestSettings.dataType,\n\t\t\t\tcomplete: function(xhr, txt) {\n\t\t\t\t\tmockHandler.responseXML = xhr.responseXML;\n\t\t\t\t\tmockHandler.responseText = xhr.responseText;\n\t\t\t\t\tmockHandler.status = xhr.status;\n\t\t\t\t\tmockHandler.statusText = xhr.statusText;\n\t\t\t\t\tthis.responseTimer = setTimeout(process, mockHandler.responseTime || 0);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// type == 'POST' || 'GET' || 'DELETE'\n\t\t\tif ( requestSettings.async === false ) {\n\t\t\t\t// TODO: Blocking delay\n\t\t\t\tprocess();\n\t\t\t} else {\n\t\t\t\tthis.responseTimer = setTimeout(process, mockHandler.responseTime || 50);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Construct a mocked XHR Object\n\tfunction xhr(mockHandler, requestSettings, origSettings, origHandler) {\n\t\t// Extend with our default mockjax settings\n\t\tmockHandler = $.extend({}, $.mockjaxSettings, mockHandler);\n\n\t\tif (typeof mockHandler.headers === 'undefined') {\n\t\t\tmockHandler.headers = {};\n\t\t}\n\t\tif ( mockHandler.contentType ) {\n\t\t\tmockHandler.headers['content-type'] = mockHandler.contentType;\n\t\t}\n\n\t\treturn {\n\t\t\tstatus: mockHandler.status,\n\t\t\tstatusText: mockHandler.statusText,\n\t\t\treadyState: 1,\n\t\t\topen: function() { },\n\t\t\tsend: function() {\n\t\t\t\torigHandler.fired = true;\n\t\t\t\t_xhrSend.call(this, mockHandler, requestSettings, origSettings);\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tclearTimeout(this.responseTimer);\n\t\t\t},\n\t\t\tsetRequestHeader: function(header, value) {\n\t\t\t\tmockHandler.headers[header] = value;\n\t\t\t},\n\t\t\tgetResponseHeader: function(header) {\n\t\t\t\t// 'Last-modified', 'Etag', 'content-type' are all checked by jQuery\n\t\t\t\tif ( mockHandler.headers && mockHandler.headers[header] ) {\n\t\t\t\t\t// Return arbitrary headers\n\t\t\t\t\treturn mockHandler.headers[header];\n\t\t\t\t} else if ( header.toLowerCase() == 'last-modified' ) {\n\t\t\t\t\treturn mockHandler.lastModified || (new Date()).toString();\n\t\t\t\t} else if ( header.toLowerCase() == 'etag' ) {\n\t\t\t\t\treturn mockHandler.etag || '';\n\t\t\t\t} else if ( header.toLowerCase() == 'content-type' ) {\n\t\t\t\t\treturn mockHandler.contentType || 'text/plain';\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\tvar headers = '';\n\t\t\t\t$.each(mockHandler.headers, function(k, v) {\n\t\t\t\t\theaders += k + ': ' + v + \"\\n\";\n\t\t\t\t});\n\t\t\t\treturn headers;\n\t\t\t}\n\t\t};\n\t}\n\n\t// Process a JSONP mock request.\n\tfunction processJsonpMock( requestSettings, mockHandler, origSettings ) {\n\t\t// Handle JSONP Parameter Callbacks, we need to replicate some of the jQuery core here\n\t\t// because there isn't an easy hook for the cross domain script tag of jsonp\n\n\t\tprocessJsonpUrl( requestSettings );\n\n\t\trequestSettings.dataType = \"json\";\n\t\tif(requestSettings.data && CALLBACK_REGEX.test(requestSettings.data) || CALLBACK_REGEX.test(requestSettings.url)) {\n\t\t\tcreateJsonpCallback(requestSettings, mockHandler);\n\n\t\t\t// We need to make sure\n\t\t\t// that a JSONP style response is executed properly\n\n\t\t\tvar rurl = /^(\\w+:)?\\/\\/([^\\/?#]+)/,\n\t\t\t\tparts = rurl.exec( requestSettings.url ),\n\t\t\t\tremote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host);\n\n\t\t\trequestSettings.dataType = \"script\";\n\t\t\tif(requestSettings.type.toUpperCase() === \"GET\" && remote ) {\n\t\t\t\tvar newMockReturn = processJsonpRequest( requestSettings, mockHandler, origSettings );\n\n\t\t\t\t// Check if we are supposed to return a Deferred back to the mock call, or just \n\t\t\t\t// signal success\n\t\t\t\tif(newMockReturn) {\n\t\t\t\t\treturn newMockReturn;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t// Append the required callback parameter to the end of the request URL, for a JSONP request\n\tfunction processJsonpUrl( requestSettings ) {\n\t\tif ( requestSettings.type.toUpperCase() === \"GET\" ) {\n\t\t\tif ( !CALLBACK_REGEX.test( requestSettings.url ) ) {\n\t\t\t\trequestSettings.url += (/\\?/.test( requestSettings.url ) ? \"&\" : \"?\") + \n\t\t\t\t\t(requestSettings.jsonp || \"callback\") + \"=?\";\n\t\t\t}\n\t\t} else if ( !requestSettings.data || !CALLBACK_REGEX.test(requestSettings.data) ) {\n\t\t\trequestSettings.data = (requestSettings.data ? requestSettings.data + \"&\" : \"\") + (requestSettings.jsonp || \"callback\") + \"=?\";\n\t\t}\n\t}\n\t\n\t// Process a JSONP request by evaluating the mocked response text\n\tfunction processJsonpRequest( requestSettings, mockHandler, origSettings ) {\n\t\t// Synthesize the mock request for adding a script tag\n\t\tvar callbackContext = origSettings && origSettings.context || requestSettings,\n\t\t\tnewMock = null;\n\n\n\t\t// If the response handler on the moock is a function, call it\n\t\tif ( mockHandler.response && $.isFunction(mockHandler.response) ) {\n\t\t\tmockHandler.response(origSettings);\n\t\t} else {\n\n\t\t\t// Evaluate the responseText javascript in a global context\n\t\t\tif( typeof mockHandler.responseText === 'object' ) {\n\t\t\t\t$.globalEval( '(' + JSON.stringify( mockHandler.responseText ) + ')');\n\t\t\t} else {\n\t\t\t\t$.globalEval( '(' + mockHandler.responseText + ')');\n\t\t\t}\n\t\t}\n\n\t\t// Successful response\n\t\tjsonpSuccess( requestSettings, mockHandler );\n\t\tjsonpComplete( requestSettings, mockHandler );\n\n\t\t// If we are running under jQuery 1.5+, return a deferred object\n\t\tif(jQuery.Deferred){\n\t\t\tnewMock = new jQuery.Deferred();\n\t\t\tif(typeof mockHandler.responseText == \"object\"){\n\t\t\t\tnewMock.resolve( mockHandler.responseText );\n\t\t\t}\n\t\t\telse{\n\t\t\t\tnewMock.resolve( jQuery.parseJSON( mockHandler.responseText ) );\n\t\t\t}\n\t\t}\n\t\treturn newMock;\n\t}\n\n\n\t// Create the required JSONP callback function for the request\n\tfunction createJsonpCallback( requestSettings, mockHandler ) {\n\t\tjsonp = requestSettings.jsonpCallback || (\"jsonp\" + jsc++);\n\n\t\t// Replace the =? sequence both in the query string and the data\n\t\tif ( requestSettings.data ) {\n\t\t\trequestSettings.data = (requestSettings.data + \"\").replace(CALLBACK_REGEX, \"=\" + jsonp + \"$1\");\n\t\t}\n\n\t\trequestSettings.url = requestSettings.url.replace(CALLBACK_REGEX, \"=\" + jsonp + \"$1\");\n\n\n\t\t// Handle JSONP-style loading\n\t\twindow[ jsonp ] = window[ jsonp ] || function( tmp ) {\n\t\t\tdata = tmp;\n\t\t\tjsonpSuccess( requestSettings, mockHandler );\n\t\t\tjsonpComplete( requestSettings, mockHandler );\n\t\t\t// Garbage collect\n\t\t\twindow[ jsonp ] = undefined;\n\n\t\t\ttry {\n\t\t\t\tdelete window[ jsonp ];\n\t\t\t} catch(e) {}\n\n\t\t\tif ( head ) {\n\t\t\t\thead.removeChild( script );\n\t\t\t}\n\t\t};\n\t}\n\n\t// The JSONP request was successful\n\tfunction jsonpSuccess(requestSettings, mockHandler) {\n\t\t// If a local callback was specified, fire it and pass it the data\n\t\tif ( requestSettings.success ) {\n\t\t\trequestSettings.success.call( callbackContext, ( mockHandler.response ? mockHandler.response.toString() : mockHandler.responseText || ''), status, {} );\n\t\t}\n\n\t\t// Fire the global callback\n\t\tif ( requestSettings.global ) {\n\t\t\ttrigger(requestSettings, \"ajaxSuccess\", [{}, requestSettings] );\n\t\t}\n\t}\n\n\t// The JSONP request was completed\n\tfunction jsonpComplete(requestSettings, mockHandler) {\n\t\t// Process result\n\t\tif ( requestSettings.complete ) {\n\t\t\trequestSettings.complete.call( callbackContext, {} , status );\n\t\t}\n\n\t\t// The request was completed\n\t\tif ( requestSettings.global ) {\n\t\t\ttrigger( \"ajaxComplete\", [{}, requestSettings] );\n\t\t}\n\n\t\t// Handle the global AJAX counter\n\t\tif ( requestSettings.global && ! --jQuery.active ) {\n\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t}\n\t}\n\n\n\t// The core $.ajax replacement.  \n\tfunction handleAjax( url, origSettings ) {\n\t\tvar mockRequest, requestSettings, mockHandler;\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\torigSettings = url;\n\t\t\turl = undefined;\n\t\t} else {\n\t\t\t// work around to support 1.5 signature\n\t\t\torigSettings.url = url;\n\t\t}\n\t\t\n\t\t// Extend the original settings for the request\n\t\trequestSettings = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings);\n\n\t\t// Iterate over our mock handlers (in registration order) until we find\n\t\t// one that is willing to intercept the request\n\t\tfor(var k = 0; k < mockHandlers.length; k++) {\n\t\t\tif ( !mockHandlers[k] ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tmockHandler = getMockForRequest( mockHandlers[k], requestSettings );\n\t\t\tif(!mockHandler) {\n\t\t\t\t// No valid mock found for this request\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Handle console logging\n\t\t\tlogMock( mockHandler, requestSettings );\n\n\n\t\t\tif ( requestSettings.dataType === \"jsonp\" ) {\n\t\t\t\tif ((mockRequest = processJsonpMock( requestSettings, mockHandler, origSettings ))) {\n\t\t\t\t\t// This mock will handle the JSONP request\n\t\t\t\t\treturn mockRequest;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\t// Removed to fix #54 - keep the mocking data object intact\n\t\t\t//mockHandler.data = requestSettings.data;\n\n\t\t\tmockHandler.cache = requestSettings.cache;\n\t\t\tmockHandler.timeout = requestSettings.timeout;\n\t\t\tmockHandler.global = requestSettings.global;\n\n\t\t\t(function(mockHandler, requestSettings, origSettings, origHandler) {\n\t\t\t\tmockRequest = _ajax.call($, $.extend(true, {}, origSettings, {\n\t\t\t\t\t// Mock the XHR object\n\t\t\t\t\txhr: function() { return xhr( mockHandler, requestSettings, origSettings, origHandler ) }\n\t\t\t\t}));\n\t\t\t})(mockHandler, requestSettings, origSettings, mockHandlers[k]);\n\n\t\t\treturn mockRequest;\n\t\t}\n\n\t\t// We don't have a mock request, trigger a normal request\n\t\treturn _ajax.apply($, [origSettings]);\n\t}\n\n\n\t// Public\n\n\t$.extend({\n\t\tajax: handleAjax\n\t});\n\n\t$.mockjaxSettings = {\n\t\t//url:        null,\n\t\t//type:       'GET',\n\t\tlog:          function(msg) {\n\t\t\t\t\t\t\t\t\t\twindow['console'] && window.console.log && window.console.log(msg);\n\t\t\t\t\t  \t\t\t},\n\t\tstatus:       200,\n\t\tstatusText:   \"OK\",\n\t\tresponseTime: 500,\n\t\tisTimeout:    false,\n\t\tcontentType:  'text/plain',\n\t\tresponse:     '',\n\t\tresponseText: '',\n\t\tresponseXML:  '',\n\t\tproxy:        '',\n\t\tproxyType:    'GET',\n\n\t\tlastModified: null,\n\t\tetag:         '',\n\t\theaders: {\n\t\t\tetag: 'IJF@H#@923uf8023hFO@I#H#',\n\t\t\t'content-type' : 'text/plain'\n\t\t}\n\t};\n\n\t$.mockjax = function(settings) {\n\t\tvar i = mockHandlers.length;\n\t\tmockHandlers[i] = settings;\n\t\treturn i;\n\t};\n\t$.mockjaxClear = function(i) {\n\t\tif ( arguments.length == 1 ) {\n\t\t\tmockHandlers[i] = null;\n\t\t} else {\n\t\t\tmockHandlers = [];\n\t\t}\n\t};\n\t$.mockjax.handler = function(i) {\n\t  if ( arguments.length == 1 ) {\n\t\t\treturn mockHandlers[i];\n\t\t}\n\t};\n})(jQuery);"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jquery.parallax.js",
    "content": "/*\nPlugin: jQuery Parallax\nVersion 1.1.3\nAuthor: Ian Lunn\nTwitter: @IanLunn\nAuthor URL: http://www.ianlunn.co.uk/\nPlugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/\n\nDual licensed under the MIT and GPL licenses:\nhttp://www.opensource.org/licenses/mit-license.php\nhttp://www.gnu.org/licenses/gpl.html\n*/\n\n(function( $ ){\n\tvar $window = $(window);\n\tvar windowHeight = $window.height();\n\n\t$window.resize(function () {\n\t\twindowHeight = $window.height();\n\t});\n\n\t$.fn.parallax = function(xpos, speedFactor, outerHeight) {\n\t\tvar $this = $(this);\n\t\tvar getHeight;\n\t\tvar firstTop;\n\t\tvar paddingTop = 0;\n\t\t\n\t\t//get the starting position of each element to have parallax applied to it\t\t\n\t\t$this.each(function(){\n\t\t    firstTop = $this.offset().top;\n\t\t});\n\n\t\tif (outerHeight) {\n\t\t\tgetHeight = function(jqo) {\n\t\t\t\treturn jqo.outerHeight(true);\n\t\t\t};\n\t\t} else {\n\t\t\tgetHeight = function(jqo) {\n\t\t\t\treturn jqo.height();\n\t\t\t};\n\t\t}\n\t\t\t\n\t\t// setup defaults if arguments aren't specified\n\t\tif (arguments.length < 1 || xpos === null) xpos = \"50%\";\n\t\tif (arguments.length < 2 || speedFactor === null) speedFactor = 0.1;\n\t\tif (arguments.length < 3 || outerHeight === null) outerHeight = true;\n\t\t\n\t\t// function to be called whenever the window is scrolled or resized\n\t\tfunction update(){\n\t\t\tvar pos = $window.scrollTop();\t\t\t\t\n\n\t\t\t$this.each(function(){\n\t\t\t\tvar $element = $(this);\n\t\t\t\tvar top = $element.offset().top;\n\t\t\t\tvar height = getHeight($element);\n\n\t\t\t\t// Check if totally above or totally below viewport\n\t\t\t\tif (top + height < pos || top > pos + windowHeight) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t$this.css('backgroundPosition', xpos + \" \" + Math.round((firstTop - pos) * speedFactor) + \"px\");\n\t\t\t});\n\t\t}\t\t\n\n\t\t$window.bind('scroll', update).resize(update);\n\t\tupdate();\n\t};\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/data/jquery.vmap.sampledata.js",
    "content": "var sample_data = {\"af\":\"16.63\",\"al\":\"11.58\",\"dz\":\"158.97\",\"ao\":\"85.81\",\"ag\":\"1.1\",\"ar\":\"351.02\",\"am\":\"8.83\",\"au\":\"1219.72\",\"at\":\"366.26\",\"az\":\"52.17\",\"bs\":\"7.54\",\"bh\":\"21.73\",\"bd\":\"105.4\",\"bb\":\"3.96\",\"by\":\"52.89\",\"be\":\"461.33\",\"bz\":\"1.43\",\"bj\":\"6.49\",\"bt\":\"1.4\",\"bo\":\"19.18\",\"ba\":\"16.2\",\"bw\":\"12.5\",\"br\":\"2023.53\",\"bn\":\"11.96\",\"bg\":\"44.84\",\"bf\":\"8.67\",\"bi\":\"1.47\",\"kh\":\"11.36\",\"cm\":\"21.88\",\"ca\":\"1563.66\",\"cv\":\"1.57\",\"cf\":\"2.11\",\"td\":\"7.59\",\"cl\":\"199.18\",\"cn\":\"5745.13\",\"co\":\"283.11\",\"km\":\"0.56\",\"cd\":\"12.6\",\"cg\":\"11.88\",\"cr\":\"35.02\",\"ci\":\"22.38\",\"hr\":\"59.92\",\"cy\":\"22.75\",\"cz\":\"195.23\",\"dk\":\"304.56\",\"dj\":\"1.14\",\"dm\":\"0.38\",\"do\":\"50.87\",\"ec\":\"61.49\",\"eg\":\"216.83\",\"sv\":\"21.8\",\"gq\":\"14.55\",\"er\":\"2.25\",\"ee\":\"19.22\",\"et\":\"30.94\",\"fj\":\"3.15\",\"fi\":\"231.98\",\"fr\":\"2555.44\",\"ga\":\"12.56\",\"gm\":\"1.04\",\"ge\":\"11.23\",\"de\":\"3305.9\",\"gh\":\"18.06\",\"gr\":\"305.01\",\"gd\":\"0.65\",\"gt\":\"40.77\",\"gn\":\"4.34\",\"gw\":\"0.83\",\"gy\":\"2.2\",\"ht\":\"6.5\",\"hn\":\"15.34\",\"hk\":\"226.49\",\"hu\":\"132.28\",\"is\":\"12.77\",\"in\":\"1430.02\",\"id\":\"695.06\",\"ir\":\"337.9\",\"iq\":\"84.14\",\"ie\":\"204.14\",\"il\":\"201.25\",\"it\":\"2036.69\",\"jm\":\"13.74\",\"jp\":\"5390.9\",\"jo\":\"27.13\",\"kz\":\"129.76\",\"ke\":\"32.42\",\"ki\":\"0.15\",\"kr\":\"986.26\",\"undefined\":\"5.73\",\"kw\":\"117.32\",\"kg\":\"4.44\",\"la\":\"6.34\",\"lv\":\"23.39\",\"lb\":\"39.15\",\"ls\":\"1.8\",\"lr\":\"0.98\",\"ly\":\"77.91\",\"lt\":\"35.73\",\"lu\":\"52.43\",\"mk\":\"9.58\",\"mg\":\"8.33\",\"mw\":\"5.04\",\"my\":\"218.95\",\"mv\":\"1.43\",\"ml\":\"9.08\",\"mt\":\"7.8\",\"mr\":\"3.49\",\"mu\":\"9.43\",\"mx\":\"1004.04\",\"md\":\"5.36\",\"mn\":\"5.81\",\"me\":\"3.88\",\"ma\":\"91.7\",\"mz\":\"10.21\",\"mm\":\"35.65\",\"na\":\"11.45\",\"np\":\"15.11\",\"nl\":\"770.31\",\"nz\":\"138\",\"ni\":\"6.38\",\"ne\":\"5.6\",\"ng\":\"206.66\",\"no\":\"413.51\",\"om\":\"53.78\",\"pk\":\"174.79\",\"pa\":\"27.2\",\"pg\":\"8.81\",\"py\":\"17.17\",\"pe\":\"153.55\",\"ph\":\"189.06\",\"pl\":\"438.88\",\"pt\":\"223.7\",\"qa\":\"126.52\",\"ro\":\"158.39\",\"ru\":\"1476.91\",\"rw\":\"5.69\",\"ws\":\"0.55\",\"st\":\"0.19\",\"sa\":\"434.44\",\"sn\":\"12.66\",\"rs\":\"38.92\",\"sc\":\"0.92\",\"sl\":\"1.9\",\"sg\":\"217.38\",\"sk\":\"86.26\",\"si\":\"46.44\",\"sb\":\"0.67\",\"za\":\"354.41\",\"es\":\"1374.78\",\"lk\":\"48.24\",\"kn\":\"0.56\",\"lc\":\"1\",\"vc\":\"0.58\",\"sd\":\"65.93\",\"sr\":\"3.3\",\"sz\":\"3.17\",\"se\":\"444.59\",\"ch\":\"522.44\",\"sy\":\"59.63\",\"tw\":\"426.98\",\"tj\":\"5.58\",\"tz\":\"22.43\",\"th\":\"312.61\",\"tl\":\"0.62\",\"tg\":\"3.07\",\"to\":\"0.3\",\"tt\":\"21.2\",\"tn\":\"43.86\",\"tr\":\"729.05\",\"tm\":0,\"ug\":\"17.12\",\"ua\":\"136.56\",\"ae\":\"239.65\",\"gb\":\"2258.57\",\"us\":\"14624.18\",\"uy\":\"40.71\",\"uz\":\"37.72\",\"vu\":\"0.72\",\"ve\":\"285.21\",\"vn\":\"101.99\",\"ye\":\"30.02\",\"zm\":\"15.69\",\"zw\":\"5.57\"};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/jquery.vmap.js",
    "content": "/*!\n * jQVMap Version 1.0\n *\n * http://jqvmap.com\n *\n * Copyright 2012, Peter Schmalfeldt <manifestinteractive@gmail.com>\n * Copyright 2011-2012, Kirill Lebedev\n * Licensed under the MIT license.\n *\n * Fork Me @ https://github.com/manifestinteractive/jqvmap\n */\n(function ($) {\n\n  var apiParams = {\n    colors: 1,\n    values: 1,\n    backgroundColor: 1,\n    scaleColors: 1,\n    normalizeFunction: 1,\n    enableZoom: 1,\n    showTooltip: 1,\n    borderColor: 1,\n    borderWidth: 1,\n    borderOpacity: 1,\n    selectedRegions: 1,\n    multiSelectRegion: 1\n  };\n\n  var apiEvents = {\n    onLabelShow: 'labelShow',\n    onRegionOver: 'regionMouseOver',\n    onRegionOut: 'regionMouseOut',\n    onRegionClick: 'regionClick',\n    onRegionSelect: 'regionSelect',\n    onRegionDeselect: 'regionDeselect'\n  };\n\n  $.fn.vectorMap = function (options) {\n\n    var defaultParams = {\n      map: 'world_en',\n      backgroundColor: '#a5bfdd',\n      color: '#f4f3f0',\n      hoverColor: '#c9dfaf',\n      selectedColor: '#c9dfaf',\n      scaleColors: ['#b6d6ff', '#005ace'],\n      normalizeFunction: 'linear',\n      enableZoom: true,\n      showTooltip: true,\n      borderColor: '#818181',\n      borderWidth: 1,\n      borderOpacity: 0.25,\n      selectedRegions: null,\n      multiSelectRegion: false\n    }, map = this.data('mapObject');\n\n    if (options === 'addMap') {\n      WorldMap.maps[arguments[1]] = arguments[2];\n    } else if (options === 'set' && apiParams[arguments[1]]) {\n      map['set' + arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1)].apply(map, Array.prototype.slice.call(arguments, 2));\n    } else if (typeof options === 'string' &&\n               typeof map[options] === 'function') {\n      return map[options].apply(map, Array.prototype.slice.call(arguments, 1));\n    } else {\n      $.extend(defaultParams, options);\n      defaultParams.container = this;\n      this.css({ position: 'relative', overflow: 'hidden' });\n\n      map = new WorldMap(defaultParams);\n\n      this.data('mapObject', map);\n\n      for (var e in apiEvents) {\n        if (defaultParams[e]) {\n          this.bind(apiEvents[e] + '.jqvmap', defaultParams[e]);\n        }\n      }\n    }\n  };\n\n  var VectorCanvas = function (width, height, params) {\n    this.mode = window.SVGAngle ? 'svg' : 'vml';\n    this.params = params;\n\n    if (this.mode == 'svg') {\n      this.createSvgNode = function (nodeName) {\n        return document.createElementNS(this.svgns, nodeName);\n      };\n    } else {\n      try {\n        if (!document.namespaces.rvml) {\n          document.namespaces.add(\"rvml\", \"urn:schemas-microsoft-com:vml\");\n        }\n        this.createVmlNode = function (tagName) {\n          return document.createElement('<rvml:' + tagName + ' class=\"rvml\">');\n        };\n      } catch (e) {\n        this.createVmlNode = function (tagName) {\n          return document.createElement('<' + tagName + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">');\n        };\n      }\n\n      document.createStyleSheet().addRule(\".rvml\", \"behavior:url(#default#VML)\");\n    }\n\n    if (this.mode == 'svg') {\n      this.canvas = this.createSvgNode('svg');\n    } else {\n      this.canvas = this.createVmlNode('group');\n      this.canvas.style.position = 'absolute';\n    }\n\n    this.setSize(width, height);\n  };\n\n  VectorCanvas.prototype = {\n    svgns: \"http://www.w3.org/2000/svg\",\n    mode: 'svg',\n    width: 0,\n    height: 0,\n    canvas: null,\n\n    setSize: function (width, height) {\n      if (this.mode == 'svg') {\n        this.canvas.setAttribute('width', width);\n        this.canvas.setAttribute('height', height);\n      } else {\n        this.canvas.style.width = width + \"px\";\n        this.canvas.style.height = height + \"px\";\n        this.canvas.coordsize = width + ' ' + height;\n        this.canvas.coordorigin = \"0 0\";\n        if (this.rootGroup) {\n          var pathes = this.rootGroup.getElementsByTagName('shape');\n          for (var i = 0, l = pathes.length; i < l; i++) {\n            pathes[i].coordsize = width + ' ' + height;\n            pathes[i].style.width = width + 'px';\n            pathes[i].style.height = height + 'px';\n          }\n          this.rootGroup.coordsize = width + ' ' + height;\n          this.rootGroup.style.width = width + 'px';\n          this.rootGroup.style.height = height + 'px';\n        }\n      }\n      this.width = width;\n      this.height = height;\n    },\n\n    createPath: function (config) {\n      var node;\n      if (this.mode == 'svg') {\n        node = this.createSvgNode('path');\n        node.setAttribute('d', config.path);\n\n        if (this.params.borderColor !== null) {\n          node.setAttribute('stroke', this.params.borderColor);\n        }\n        if (this.params.borderWidth > 0) {\n          node.setAttribute('stroke-width', this.params.borderWidth);\n          node.setAttribute('stroke-linecap', 'round');\n          node.setAttribute('stroke-linejoin', 'round');\n        }\n        if (this.params.borderOpacity > 0) {\n          node.setAttribute('stroke-opacity', this.params.borderOpacity);\n        }\n\n        node.setFill = function (color) {\n          this.setAttribute(\"fill\", color);\n          if (this.getAttribute(\"original\") === null) {\n            this.setAttribute(\"original\", color);\n          }\n        };\n\n        node.getFill = function (color) {\n          return this.getAttribute(\"fill\");\n        };\n\n        node.getOriginalFill = function () {\n          return this.getAttribute(\"original\");\n        };\n\n        node.setOpacity = function (opacity) {\n          this.setAttribute('fill-opacity', opacity);\n        };\n      } else {\n        node = this.createVmlNode('shape');\n        node.coordorigin = \"0 0\";\n        node.coordsize = this.width + ' ' + this.height;\n        node.style.width = this.width + 'px';\n        node.style.height = this.height + 'px';\n        node.fillcolor = WorldMap.defaultFillColor;\n        node.stroked = false;\n        node.path = VectorCanvas.pathSvgToVml(config.path);\n\n        var scale = this.createVmlNode('skew');\n        scale.on = true;\n        scale.matrix = '0.01,0,0,0.01,0,0';\n        scale.offset = '0,0';\n\n        node.appendChild(scale);\n\n        var fill = this.createVmlNode('fill');\n        node.appendChild(fill);\n\n        node.setFill = function (color) {\n          this.getElementsByTagName('fill')[0].color = color;\n          if (this.getAttribute(\"original\") === null) {\n            this.setAttribute(\"original\", color);\n          }\n        };\n\n        node.getFill = function (color) {\n          return this.getElementsByTagName('fill')[0].color;\n        };\n        node.getOriginalFill = function () {\n          return this.getAttribute(\"original\");\n        };\n        node.setOpacity = function (opacity) {\n          this.getElementsByTagName('fill')[0].opacity = parseInt(opacity * 100, 10) + '%';\n        };\n      }\n      return node;\n    },\n\n    createGroup: function (isRoot) {\n      var node;\n      if (this.mode == 'svg') {\n        node = this.createSvgNode('g');\n      } else {\n        node = this.createVmlNode('group');\n        node.style.width = this.width + 'px';\n        node.style.height = this.height + 'px';\n        node.style.left = '0px';\n        node.style.top = '0px';\n        node.coordorigin = \"0 0\";\n        node.coordsize = this.width + ' ' + this.height;\n      }\n\n      if (isRoot) {\n        this.rootGroup = node;\n      }\n      return node;\n    },\n\n    applyTransformParams: function (scale, transX, transY) {\n      if (this.mode == 'svg') {\n        this.rootGroup.setAttribute('transform', 'scale(' + scale + ') translate(' + transX + ', ' + transY + ')');\n      } else {\n        this.rootGroup.coordorigin = (this.width - transX) + ',' + (this.height - transY);\n        this.rootGroup.coordsize = this.width / scale + ',' + this.height / scale;\n      }\n    }\n  };\n\n  VectorCanvas.pathSvgToVml = function (path) {\n    var result = '';\n    var cx = 0, cy = 0, ctrlx, ctrly;\n\n    return path.replace(/([MmLlHhVvCcSs])((?:-?(?:\\d+)?(?:\\.\\d+)?,?\\s?)+)/g, function (segment, letter, coords, index) {\n      coords = coords.replace(/(\\d)-/g, '$1,-').replace(/\\s+/g, ',').split(',');\n      if (!coords[0]) {\n        coords.shift();\n      }\n\n      for (var i = 0, l = coords.length; i < l; i++) {\n        coords[i] = Math.round(100 * coords[i]);\n      }\n\n      switch (letter) {\n      case 'm':\n        cx += coords[0];\n        cy += coords[1];\n        return 't' + coords.join(',');\n        break;\n\n      case 'M':\n        cx = coords[0];\n        cy = coords[1];\n        return 'm' + coords.join(',');\n        break;\n\n      case 'l':\n        cx += coords[0];\n        cy += coords[1];\n        return 'r' + coords.join(',');\n        break;\n\n      case 'L':\n        cx = coords[0];\n        cy = coords[1];\n        return 'l' + coords.join(',');\n        break;\n\n      case 'h':\n        cx += coords[0];\n        return 'r' + coords[0] + ',0';\n        break;\n\n      case 'H':\n        cx = coords[0];\n        return 'l' + cx + ',' + cy;\n        break;\n\n      case 'v':\n        cy += coords[0];\n        return 'r0,' + coords[0];\n        break;\n\n      case 'V':\n        cy = coords[0];\n        return 'l' + cx + ',' + cy;\n        break;\n\n      case 'c':\n        ctrlx = cx + coords[coords.length - 4];\n        ctrly = cy + coords[coords.length - 3];\n        cx += coords[coords.length - 2];\n        cy += coords[coords.length - 1];\n        return 'v' + coords.join(',');\n        break;\n\n      case 'C':\n        ctrlx = coords[coords.length - 4];\n        ctrly = coords[coords.length - 3];\n        cx = coords[coords.length - 2];\n        cy = coords[coords.length - 1];\n        return 'c' + coords.join(',');\n        break;\n\n      case 's':\n        coords.unshift(cy - ctrly);\n        coords.unshift(cx - ctrlx);\n        ctrlx = cx + coords[coords.length - 4];\n        ctrly = cy + coords[coords.length - 3];\n        cx += coords[coords.length - 2];\n        cy += coords[coords.length - 1];\n        return 'v' + coords.join(',');\n        break;\n\n      case 'S':\n        coords.unshift(cy + cy - ctrly);\n        coords.unshift(cx + cx - ctrlx);\n        ctrlx = coords[coords.length - 4];\n        ctrly = coords[coords.length - 3];\n        cx = coords[coords.length - 2];\n        cy = coords[coords.length - 1];\n        return 'c' + coords.join(',');\n        break;\n\n      default:\n        return false;\n        break;\n      }\n\n      return '';\n\n    }).replace(/z/g, '');\n  };\n\n  var WorldMap = function (params) {\n    params = params || {};\n    var map = this;\n    var mapData = WorldMap.maps[params.map];\n\n    this.selectedRegions = [];\n    this.multiSelectRegion = params.multiSelectRegion;\n\n    this.container = params.container;\n\n    this.defaultWidth = mapData.width;\n    this.defaultHeight = mapData.height;\n\n    this.color = params.color;\n    this.selectedColor = params.selectedColor;\n    this.hoverColor = params.hoverColor;\n    this.hoverOpacity = params.hoverOpacity;\n    this.setBackgroundColor(params.backgroundColor);\n\n    this.width = params.container.width();\n    this.height = params.container.height();\n\n    this.resize();\n\n    jQuery(window).resize(function () {\n      map.width = params.container.width();\n      map.height = params.container.height();\n      map.resize();\n      map.canvas.setSize(map.width, map.height);\n      map.applyTransform();\n    });\n\n    this.canvas = new VectorCanvas(this.width, this.height, params);\n    params.container.append(this.canvas.canvas);\n\n    this.makeDraggable();\n\n    this.rootGroup = this.canvas.createGroup(true);\n\n    this.index = WorldMap.mapIndex;\n    this.label = jQuery('<div/>').addClass('jqvmap-label').appendTo(jQuery('body'));\n\n    if (params.enableZoom) {\n      jQuery('<div/>').addClass('jqvmap-zoomin').text('+').appendTo(params.container);\n      jQuery('<div/>').addClass('jqvmap-zoomout').html('&#x2212;').appendTo(params.container);\n    }\n\n    map.countries = [];\n\n    for (var key in mapData.pathes) {\n      var path = this.canvas.createPath({\n        path: mapData.pathes[key].path\n      });\n\n      path.setFill(this.color);\n      path.id = map.getCountryId(key);\n      map.countries[key] = path;\n\n      if (this.canvas.mode == 'svg') {\n        path.setAttribute('class', 'jvectormap-region');\n      } else {\n        jQuery(path).addClass('jvectormap-region');\n      }\n\n      jQuery(this.rootGroup).append(path);\n    }\n\n    jQuery(params.container).delegate(this.canvas.mode == 'svg' ? 'path' : 'shape', 'mouseover mouseout', function (e) {\n      var path = e.target,\n      code = e.target.id.split('_').pop(),\n      labelShowEvent = $.Event('labelShow.jqvmap'),\n      regionMouseOverEvent = $.Event('regionMouseOver.jqvmap');\n\n      if (e.type == 'mouseover') {\n        jQuery(params.container).trigger(regionMouseOverEvent, [code, mapData.pathes[code].name]);\n        if (!regionMouseOverEvent.isDefaultPrevented()) {\n          map.highlight(code, path);\n        }\n        if (params.showTooltip) {\n          map.label.text(mapData.pathes[code].name);\n          jQuery(params.container).trigger(labelShowEvent, [map.label, code]);\n\n          if (!labelShowEvent.isDefaultPrevented()) {\n            map.label.show();\n            map.labelWidth = map.label.width();\n            map.labelHeight = map.label.height();\n          }\n        }\n      } else {\n        map.unhighlight(code, path);\n\n        map.label.hide();\n        jQuery(params.container).trigger('regionMouseOut.jqvmap', [code, mapData.pathes[code].name]);\n      }\n    });\n\n    jQuery(params.container).delegate(this.canvas.mode == 'svg' ? 'path' : 'shape', 'click', function (e) {\n      if (!params.multiSelectRegion) {\n        for (var key in mapData.pathes) {\n          map.countries[key].currentFillColor = map.countries[key].getOriginalFill();\n          map.countries[key].setFill(map.countries[key].getOriginalFill());\n        }\n      }\n\n      var path = e.target;\n      var code = e.target.id.split('_').pop();\n\n      jQuery(params.container).trigger('regionClick.jqvmap', [code, mapData.pathes[code].name]);\n\n      if (map.selectedRegions.indexOf(code) !== -1) {\n        map.deselect(code, path);\n      } else {\n        map.select(code, path);\n      }\n\n      //console.log(selectedRegions);\n\n    });\n\n    if (params.showTooltip) {\n      params.container.mousemove(function (e) {\n        if (map.label.is(':visible')) {\n          map.label.css({\n            left: e.pageX - 15 - map.labelWidth,\n            top: e.pageY - 15 - map.labelHeight\n          });\n        }\n      });\n    }\n\n    this.setColors(params.colors);\n\n    this.canvas.canvas.appendChild(this.rootGroup);\n\n    this.applyTransform();\n\n    this.colorScale = new ColorScale(params.scaleColors, params.normalizeFunction, params.valueMin, params.valueMax);\n\n    if (params.values) {\n      this.values = params.values;\n      this.setValues(params.values);\n    }\n\n    if (params.selectedRegions) {\n      if (params.selectedRegions instanceof Array) {\n        for(var k in params.selectedRegions) {\n          this.select(params.selectedRegions[k].toLowerCase());\n        }\n      } else {\n        this.select(params.selectedRegions.toLowerCase());\n      }\n    }\n\n    this.bindZoomButtons();\n\n    WorldMap.mapIndex++;\n  };\n\n  WorldMap.prototype = {\n    transX: 0,\n    transY: 0,\n    scale: 1,\n    baseTransX: 0,\n    baseTransY: 0,\n    baseScale: 1,\n    width: 0,\n    height: 0,\n    countries: {},\n    countriesColors: {},\n    countriesData: {},\n    zoomStep: 1.4,\n    zoomMaxStep: 4,\n    zoomCurStep: 1,\n\n    setColors: function (key, color) {\n      if (typeof key == 'string') {\n        this.countries[key].setFill(color);\n        this.countries[key].setAttribute(\"original\", color);\n      } else {\n        var colors = key;\n\n        for (var code in colors) {\n          if (this.countries[code]) {\n            this.countries[code].setFill(colors[code]);\n            this.countries[code].setAttribute(\"original\", colors[code]);\n          }\n        }\n      }\n    },\n\n    setValues: function (values) {\n      var max = 0,\n      min = Number.MAX_VALUE,\n      val;\n\n      for (var cc in values) {\n        val = parseFloat(values[cc]);\n        if (val > max) {\n          max = values[cc];\n        }\n        if (val && val < min) {\n          min = val;\n        }\n      }\n\n      this.colorScale.setMin(min);\n      this.colorScale.setMax(max);\n\n      var colors = {};\n      for (cc in values) {\n        val = parseFloat(values[cc]);\n        if (val) {\n          colors[cc] = this.colorScale.getColor(val);\n        } else {\n          colors[cc] = this.color;\n        }\n      }\n      this.setColors(colors);\n      this.values = values;\n    },\n\n    setBackgroundColor: function (backgroundColor) {\n      this.container.css('background-color', backgroundColor);\n    },\n\n    setScaleColors: function (colors) {\n      this.colorScale.setColors(colors);\n\n      if (this.values) {\n        this.setValues(this.values);\n      }\n    },\n\n    setNormalizeFunction: function (f) {\n      this.colorScale.setNormalizeFunction(f);\n\n      if (this.values) {\n        this.setValues(this.values);\n      }\n    },\n\n    highlight: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      if (this.hoverOpacity) {\n        path.setOpacity(this.hoverOpacity);\n      } else if (this.hoverColor) {\n        path.currentFillColor = path.getFill() + '';\n        path.setFill(this.hoverColor);\n      }\n    },\n\n    unhighlight: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      path.setOpacity(1);\n      if (path.currentFillColor) {\n        path.setFill(path.currentFillColor);\n      }\n    },\n\n    select: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      if(this.selectedRegions.indexOf(cc) < 0) {\n        if (this.multiSelectRegion) {\n          this.selectedRegions.push(cc);\n        } else {\n          this.selectedRegions = [cc];\n        }\n        // MUST BE after the change of selectedRegions\n        // Otherwise, we might loop\n        $(this.container).trigger('regionSelect.jqvmap', [cc]);\n        if (this.selectedColor) {\n          path.currentFillColor = this.selectedColor;\n          path.setFill(this.selectedColor);\n        }\n      }\n    },\n\n    deselect: function (cc, path) {\n      path = path || $('#' + this.getCountryId(cc))[0];\n      if(this.selectedRegions.indexOf(cc) >= 0) {\n        this.selectedRegions.splice(this.selectedRegions.indexOf(cc), 1);\n        // MUST BE after the change of selectedRegions\n        // Otherwise, we might loop\n        $(this.container).trigger('regionDeselect.jqvmap', [cc]);\n        path.currentFillColor = path.getOriginalFill();\n        path.setFill(path.getOriginalFill());\n      }\n    },\n\n    isSelected: function(cc) {\n      return this.selectedRegions.indexOf(cc) >= 0;\n    },\n\n    resize: function () {\n      var curBaseScale = this.baseScale;\n      if (this.width / this.height > this.defaultWidth / this.defaultHeight) {\n        this.baseScale = this.height / this.defaultHeight;\n        this.baseTransX = Math.abs(this.width - this.defaultWidth * this.baseScale) / (2 * this.baseScale);\n      } else {\n        this.baseScale = this.width / this.defaultWidth;\n        this.baseTransY = Math.abs(this.height - this.defaultHeight * this.baseScale) / (2 * this.baseScale);\n      }\n      this.scale *= this.baseScale / curBaseScale;\n      this.transX *= this.baseScale / curBaseScale;\n      this.transY *= this.baseScale / curBaseScale;\n    },\n\n    reset: function () {\n      this.countryTitle.reset();\n      for (var key in this.countries) {\n        this.countries[key].setFill(WorldMap.defaultColor);\n      }\n      this.scale = this.baseScale;\n      this.transX = this.baseTransX;\n      this.transY = this.baseTransY;\n      this.applyTransform();\n    },\n\n    applyTransform: function () {\n      var maxTransX, maxTransY, minTransX, minTransY;\n      if (this.defaultWidth * this.scale <= this.width) {\n        maxTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n        minTransX = (this.width - this.defaultWidth * this.scale) / (2 * this.scale);\n      } else {\n        maxTransX = 0;\n        minTransX = (this.width - this.defaultWidth * this.scale) / this.scale;\n      }\n\n      if (this.defaultHeight * this.scale <= this.height) {\n        maxTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n        minTransY = (this.height - this.defaultHeight * this.scale) / (2 * this.scale);\n      } else {\n        maxTransY = 0;\n        minTransY = (this.height - this.defaultHeight * this.scale) / this.scale;\n      }\n\n      if (this.transY > maxTransY) {\n        this.transY = maxTransY;\n      }\n      else if (this.transY < minTransY) {\n        this.transY = minTransY;\n      }\n      if (this.transX > maxTransX) {\n        this.transX = maxTransX;\n      }\n      else if (this.transX < minTransX) {\n        this.transX = minTransX;\n      }\n\n      this.canvas.applyTransformParams(this.scale, this.transX, this.transY);\n    },\n\n    makeDraggable: function () {\n      var mouseDown = false;\n      var oldPageX, oldPageY;\n      var self = this;\n\n      self.isMoving = false;\n      self.isMovingTimeout = false;\n\n      this.container.mousemove(function (e) {\n\n        if (mouseDown) {\n          var curTransX = self.transX;\n          var curTransY = self.transY;\n\n          self.transX -= (oldPageX - e.pageX) / self.scale;\n          self.transY -= (oldPageY - e.pageY) / self.scale;\n\n          self.applyTransform();\n\n          oldPageX = e.pageX;\n          oldPageY = e.pageY;\n\n          self.isMoving = true;\n          if (self.isMovingTimeout) {\n            clearTimeout(self.isMovingTimeout);\n          }\n        }\n\n        return false;\n\n      }).mousedown(function (e) {\n\n        mouseDown = true;\n        oldPageX = e.pageX;\n        oldPageY = e.pageY;\n\n        return false;\n\n      }).mouseup(function () {\n\n        mouseDown = false;\n\n        self.isMovingTimeout = setTimeout(function () {\n          self.isMoving = false;\n        }, 100);\n\n        return false;\n\n      });\n    },\n\n    bindZoomButtons: function () {\n      var map = this;\n      var sliderDelta = (jQuery('#zoom').innerHeight() - 6 * 2 - 15 * 2 - 3 * 2 - 7 - 6) / (this.zoomMaxStep - this.zoomCurStep);\n\n      this.container.find('.jqvmap-zoomin').click(function () {\n        if (map.zoomCurStep < map.zoomMaxStep) {\n          var curTransX = map.transX;\n          var curTransY = map.transY;\n          var curScale = map.scale;\n\n          map.transX -= (map.width / map.scale - map.width / (map.scale * map.zoomStep)) / 2;\n          map.transY -= (map.height / map.scale - map.height / (map.scale * map.zoomStep)) / 2;\n          map.setScale(map.scale * map.zoomStep);\n          map.zoomCurStep++;\n\n          jQuery('#zoomSlider').css('top', parseInt(jQuery('#zoomSlider').css('top'), 10) - sliderDelta);\n        }\n      });\n\n      this.container.find('.jqvmap-zoomout').click(function () {\n        if (map.zoomCurStep > 1) {\n          var curTransX = map.transX;\n          var curTransY = map.transY;\n          var curScale = map.scale;\n\n          map.transX += (map.width / (map.scale / map.zoomStep) - map.width / map.scale) / 2;\n          map.transY += (map.height / (map.scale / map.zoomStep) - map.height / map.scale) / 2;\n          map.setScale(map.scale / map.zoomStep);\n          map.zoomCurStep--;\n\n          jQuery('#zoomSlider').css('top', parseInt(jQuery('#zoomSlider').css('top'), 10) + sliderDelta);\n        }\n      });\n    },\n\n    setScale: function (scale) {\n      this.scale = scale;\n      this.applyTransform();\n    },\n\n    getCountryId: function (cc) {\n      return 'jqvmap' + this.index + '_' + cc;\n    }\n  };\n\n  WorldMap.xlink = \"http://www.w3.org/1999/xlink\";\n  WorldMap.mapIndex = 1;\n  WorldMap.maps = {};\n\n  var ColorScale = function (colors, normalizeFunction, minValue, maxValue) {\n    if (colors) {\n      this.setColors(colors);\n    }\n    if (normalizeFunction) {\n      this.setNormalizeFunction(normalizeFunction);\n    }\n    if (minValue) {\n      this.setMin(minValue);\n    }\n    if (minValue) {\n      this.setMax(maxValue);\n    }\n  };\n\n  ColorScale.prototype = {\n    colors: [],\n\n    setMin: function (min) {\n      this.clearMinValue = min;\n\n      if (typeof this.normalize === 'function') {\n        this.minValue = this.normalize(min);\n      } else {\n        this.minValue = min;\n      }\n    },\n\n    setMax: function (max) {\n      this.clearMaxValue = max;\n      if (typeof this.normalize === 'function') {\n        this.maxValue = this.normalize(max);\n      } else {\n        this.maxValue = max;\n      }\n    },\n\n    setColors: function (colors) {\n      for (var i = 0; i < colors.length; i++) {\n        colors[i] = ColorScale.rgbToArray(colors[i]);\n      }\n      this.colors = colors;\n    },\n\n    setNormalizeFunction: function (f) {\n      if (f === 'polynomial') {\n        this.normalize = function (value) {\n          return Math.pow(value, 0.2);\n        };\n      }\n      else if (f === 'linear') {\n        delete this.normalize;\n      } else {\n        this.normalize = f;\n      }\n      this.setMin(this.clearMinValue);\n      this.setMax(this.clearMaxValue);\n    },\n\n    getColor: function (value) {\n      if (typeof this.normalize === 'function') {\n        value = this.normalize(value);\n      }\n\n      var lengthes = [];\n      var fullLength = 0;\n      var l;\n\n      for (var i = 0; i < this.colors.length - 1; i++) {\n        l = this.vectorLength(this.vectorSubtract(this.colors[i + 1], this.colors[i]));\n        lengthes.push(l);\n        fullLength += l;\n      }\n\n      var c = (this.maxValue - this.minValue) / fullLength;\n\n      for (i = 0; i < lengthes.length; i++) {\n        lengthes[i] *= c;\n      }\n\n      i = 0;\n      value -= this.minValue;\n\n      while (value - lengthes[i] >= 0) {\n        value -= lengthes[i];\n        i++;\n      }\n\n      var color;\n      if (i == this.colors.length - 1) {\n        color = this.vectorToNum(this.colors[i]).toString(16);\n      } else {\n        color = (this.vectorToNum(this.vectorAdd(this.colors[i], this.vectorMult(this.vectorSubtract(this.colors[i + 1], this.colors[i]), (value) / (lengthes[i]))))).toString(16);\n      }\n\n      while (color.length < 6) {\n        color = '0' + color;\n      }\n      return '#' + color;\n    },\n\n    vectorToNum: function (vector) {\n      var num = 0;\n      for (var i = 0; i < vector.length; i++) {\n        num += Math.round(vector[i]) * Math.pow(256, vector.length - i - 1);\n      }\n      return num;\n    },\n\n    vectorSubtract: function (vector1, vector2) {\n      var vector = [];\n      for (var i = 0; i < vector1.length; i++) {\n        vector[i] = vector1[i] - vector2[i];\n      }\n      return vector;\n    },\n\n    vectorAdd: function (vector1, vector2) {\n      var vector = [];\n      for (var i = 0; i < vector1.length; i++) {\n        vector[i] = vector1[i] + vector2[i];\n      }\n      return vector;\n    },\n\n    vectorMult: function (vector, num) {\n      var result = [];\n      for (var i = 0; i < vector.length; i++) {\n        result[i] = vector[i] * num;\n      }\n      return result;\n    },\n\n    vectorLength: function (vector) {\n      var result = 0;\n      for (var i = 0; i < vector.length; i++) {\n        result += vector[i] * vector[i];\n      }\n      return Math.sqrt(result);\n    }\n  };\n\n  ColorScale.arrayToRgb = function (ar) {\n    var rgb = '#';\n    var d;\n    for (var i = 0; i < ar.length; i++) {\n      d = ar[i].toString(16);\n      rgb += d.length == 1 ? '0' + d : d;\n    }\n    return rgb;\n  };\n\n  ColorScale.rgbToArray = function (rgb) {\n    rgb = rgb.substr(1);\n    return [parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16)];\n  };\n\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/jquery.vmap.packed.js",
    "content": "/*!\n * jQVMap Version 1.0 \n *\n * http://jqvmap.com\n *\n * Copyright 2012, Peter Schmalfeldt <manifestinteractive@gmail.com>\n * Copyright 2011-2012, Kirill Lebedev\n * Licensed under the MIT license.\n *\n * Fork Me @ https://github.com/manifestinteractive/jqvmap\n */\n eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c])}}return p}('(b($){a 3g={x:1,O:1,1P:1,2G:1,1M:1,2U:1,24:1,2m:1,2t:1,2u:1,26:1};a 2V={4u:\\'3D\\',4t:\\'3r\\',4w:\\'4d\\',4A:\\'4e\\'};$.4r.4z=b(2A){a 1K={8:\\'4p\\',1P:\\'#54\\',A:\\'#4V\\',1X:\\'#3q\\',2f:\\'#3q\\',2G:[\\'#4T\\',\\'#52\\'],1M:\\'45\\',2U:1U,24:1U,2m:\\'#50\\',2t:1,2u:0.25,26:1S},8;j(2A===\\'4I\\'){11.3b[1G[1]]=1G[2]}B j(2A===\\'3f\\'&&3g[1G[1]]){5.2X(\\'2W\\')[\\'3f\\'+1G[1].4G(0).4F()+1G[1].23(1)].4K(5.2X(\\'2W\\'),4P.2s.4M.4L(1G,2))}B{$.4O(1K,2A);1K.D=5;5.1A({3C:\\'4J\\',4E:\\'4Q\\'});8=2H 11(1K);5.2X(\\'2W\\',8);J(a e 1z 2V){j(1K[e]){5.4Z(2V[e]+\\'.17\\',1K[e])}}}};a 1W=b(n,p,k){5.19=3F.53?\\'13\\':\\'3d\\';5.k=k;j(5.19==\\'13\\'){5.2x=b(3w){u 1D.4Y(5.3A,3w)}}B{4X{j(!1D.3x.1H){1D.3x.4S(\"1H\",\"3B:3H-3i-3u:3d\")}5.1t=b(2p){u 1D.3y(\\'<1H:\\'+2p+\\' 2E=\"1H\">\\')}}4U(e){5.1t=b(2p){u 1D.3y(\\'<\\'+2p+\\' 4W=\"3B:3H-3i.3u:3d\" 2E=\"1H\">\\')}}1D.4n().4o(\".1H\",\"4m:4q(#3z#4j)\")}j(5.19==\\'13\\'){5.E=5.2x(\\'13\\')}B{5.E=5.1t(\\'3h\\');5.E.X.3C=\\'4l\\'}5.3e(n,p)};1W.2s={3A:\"3Y://42.41.40/4C/13\",19:\\'13\\',n:0,p:0,E:1S,3e:b(n,p){j(5.19==\\'13\\'){5.E.T(\\'n\\',n);5.E.T(\\'p\\',p)}B{5.E.X.n=n+\"1b\";5.E.X.p=p+\"1b\";5.E.1I=n+\\' \\'+p;5.E.2l=\"0 0\";j(5.Z){a 12=5.Z.2q(\\'2a\\');J(a i=0,l=12.w;i<l;i++){12[i].1I=n+\\' \\'+p;12[i].X.n=n+\\'1b\\';12[i].X.p=p+\\'1b\\'}5.Z.1I=n+\\' \\'+p;5.Z.X.n=n+\\'1b\\';5.Z.X.p=p+\\'1b\\'}}5.n=n;5.p=p},3E:b(3c){a q;j(5.19==\\'13\\'){q=5.2x(\\'y\\');q.T(\\'d\\',3c.y);j(5.k.2m!==1S){q.T(\\'1T\\',5.k.2m)}j(5.k.2t>0){q.T(\\'1T-n\\',5.k.2t);q.T(\\'1T-4B\\',\\'2v\\');q.T(\\'1T-4x\\',\\'2v\\')}j(5.k.2u>0){q.T(\\'1T-1r\\',5.k.2u)}q.18=b(A){5.T(\"1f\",A);j(5.33(\"21\")===1S){5.T(\"21\",A)}};q.2Q=b(A){u 5.33(\"1f\")};q.2M=b(){u 5.33(\"21\")};q.27=b(1r){5.T(\\'1f-1r\\',1r)}}B{q=5.1t(\\'2a\\');q.2l=\"0 0\";q.1I=5.n+\\' \\'+5.p;q.X.n=5.n+\\'1b\\';q.X.p=5.p+\\'1b\\';q.4v=11.4R;q.5s=1v;q.y=1W.3n(3c.y);a o=5.1t(\\'5C\\');o.5D=1U;o.5E=\\'0.3G,0,0,0.3G,0,0\\';o.5G=\\'0,0\\';q.2I(o);a 1f=5.1t(\\'1f\\');q.2I(1f);q.18=b(A){5.2q(\\'1f\\')[0].A=A};q.2Q=b(A){u 5.2q(\\'1f\\')[0].A};q.27=b(1r){5.2q(\\'1f\\')[0].1r=1B(1r*3o,10)+\\'%\\'}}u q},3t:b(3p){a q;j(5.19==\\'13\\'){q=5.2x(\\'g\\')}B{q=5.1t(\\'3h\\');q.X.n=5.n+\\'1b\\';q.X.p=5.p+\\'1b\\';q.X.4c=\\'3j\\';q.X.1E=\\'3j\\';q.2l=\"0 0\";q.1I=5.n+\\' \\'+5.p}j(3p){5.Z=q}u q},3U:b(o,K,N){j(5.19==\\'13\\'){5.Z.T(\\'5y\\',\\'o(\\'+o+\\') 5A(\\'+K+\\', \\'+N+\\')\\')}B{5.Z.2l=(5.n-K)+\\',\\'+(5.p-N);5.Z.1I=5.n/o+\\',\\'+5.p/o}}};1W.3n=b(y){a 1w=\\'\\';a G=0,I=0,1x,1u;u y.28(/([5x])((?:-?(?:\\\\d+)?(?:\\\\.\\\\d+)?,?\\\\s?)+)/g,b(5F,3k,9,2J){9=9.28(/(\\\\d)-/g,\\'$1,-\\').28(/\\\\s+/g,\\',\\').2S(\\',\\');j(!9[0]){9.5v()}J(a i=0,l=9.w;i<l;i++){9[i]=1y.2v(3o*9[i])}5w(3k){14\\'m\\':G+=9[0];I+=9[1];u\\'t\\'+9.1n(\\',\\');W;14\\'M\\':G=9[0];I=9[1];u\\'m\\'+9.1n(\\',\\');W;14\\'l\\':G+=9[0];I+=9[1];u\\'r\\'+9.1n(\\',\\');W;14\\'L\\':G=9[0];I=9[1];u\\'l\\'+9.1n(\\',\\');W;14\\'h\\':G+=9[0];u\\'r\\'+9[0]+\\',0\\';W;14\\'H\\':G=9[0];u\\'l\\'+G+\\',\\'+I;W;14\\'v\\':I+=9[0];u\\'5t,\\'+9[0];W;14\\'V\\':I=9[0];u\\'l\\'+G+\\',\\'+I;W;14\\'c\\':1x=G+9[9.w-4];1u=I+9[9.w-3];G+=9[9.w-2];I+=9[9.w-1];u\\'v\\'+9.1n(\\',\\');W;14\\'C\\':1x=9[9.w-4];1u=9[9.w-3];G=9[9.w-2];I=9[9.w-1];u\\'c\\'+9.1n(\\',\\');W;14\\'s\\':9.2k(I-1u);9.2k(G-1x);1x=G+9[9.w-4];1u=I+9[9.w-3];G+=9[9.w-2];I+=9[9.w-1];u\\'v\\'+9.1n(\\',\\');W;14\\'S\\':9.2k(I+I-1u);9.2k(G+G-1x);1x=9[9.w-4];1u=9[9.w-3];G=9[9.w-2];I=9[9.w-1];u\\'c\\'+9.1n(\\',\\');W;3z:u 1v;W}u\\'\\'}).28(/z/g,\\'\\')};a 11=b(k){k=k||{};a 8=5;a 1a=11.3b[k.8];5.D=k.D;5.1m=1a.n;5.1l=1a.p;5.A=k.A;5.1X=k.1X;5.49(k.1P);5.n=k.D.n();5.p=k.D.p();5.2g();F(3F).2g(b(){8.n=k.D.n();8.p=k.D.p();8.2g();8.E.3e(8.n,8.p);8.1O()});5.E=2H 1W(5.n,5.p,k);k.D.3I(5.E.E);5.3V();5.Z=5.E.3t(1U);5.2J=11.34;5.1c=F(\\'<2D/>\\').2K(\\'17-1c\\').2F(F(\\'57\\'));j(k.2U){F(\\'<2D/>\\').2K(\\'17-46\\').3Z(\\'+\\').2F(k.D);F(\\'<2D/>\\').2K(\\'17-48\\').5h(\\'&#5o;\\').2F(k.D)}8.U=[];J(a P 1z 1a.12){a y=5.E.3E({y:1a.12[P].y});y.18(5.A);y.2N=\\'17\\'+8.2J+\\'2T\\'+P;8.U[P]=y;F(5.Z).3I(y);y.T(\\'2E\\',\\'17-5r\\');j(k.26!==1S){j(P.3v()==k.26.3v()){y.18(k.2f)}}}F(k.D).4f(5.E.19==\\'13\\'?\\'y\\':\\'2a\\',\\'3s 5i\\',b(e){a y=e.2d,R=e.2d.2N.2S(\\'2T\\').3J(),2R=$.3l(\\'3D.17\\'),2P=$.3l(\\'3r.17\\');j(e.5j==\\'3s\\'){F(k.D).2i(2P,[R,1a.12[R].2e]);j(!2P.4h()){j(k.3m){y.27(k.3m)}B j(k.1X){y.22=y.2Q()+\\'\\';y.18(k.1X)}}j(k.24){8.1c.3Z(1a.12[R].2e);F(k.D).2i(2R,[8.1c,R]);j(!2R.4h()){8.1c.5l();8.4i=8.1c.n();8.4b=8.1c.p()}}}B{y.27(1);j(y.22){y.18(y.22)}8.1c.5k();F(k.D).2i(\\'4d.17\\',[R,1a.12[R].2e])}});F(k.D).4f(5.E.19==\\'13\\'?\\'y\\':\\'2a\\',\\'38\\',b(e){J(a P 1z 1a.12){8.U[P].22=8.U[P].2M();8.U[P].18(8.U[P].2M())}a y=e.2d;a R=e.2d.2N.2S(\\'2T\\').3J();F(k.D).2i(\\'4e.17\\',[R,1a.12[R].2e]);y.22=k.2f;y.18(k.2f)});j(k.24){k.D.3Q(b(e){j(8.1c.5m(\\':5n\\')){8.1c.1A({4c:e.2b-15-8.4i,1E:e.2C-15-8.4b})}})}5.1F(k.x);5.E.E.2I(5.Z);5.1O();5.1J=2H 1N(k.2G,k.1M,k.5q,k.5p);j(k.O){5.O=k.O;5.2j(k.O)}5.3X();11.34++};11.2s={K:0,N:0,o:1,32:0,31:0,Y:1,n:0,p:0,U:{},5g:{},59:{},1q:1.4,37:4,1C:1,1F:b(P,A){j(2y P==\\'58\\'){5.U[P].18(A);5.U[P].T(\"21\",A)}B{a x=P;J(a R 1z x){j(5.U[R]){5.U[R].18(x[R]);5.U[R].T(\"21\",x[R])}}}},2j:b(O){a 1o=0,1j=56.5a,1d;J(a 1i 1z O){1d=4g(O[1i]);j(1d>1o){1o=O[1i]}j(1d&&1d<1j){1j=1d}}5.1J.2w(1j);5.1J.2z(1o);a x={};J(1i 1z O){1d=4g(O[1i]);j(1d){x[1i]=5.1J.3N(1d)}B{x[1i]=5.A}}5.1F(x);5.O=O},49:b(1P){5.D.1A(\\'5b-A\\',1P)},5f:b(x){5.1J.1F(x);j(5.O){5.2j(5.O)}},2r:b(f){5.1J.2r(f);j(5.O){5.2j(5.O)}},2g:b(){a 2c=5.Y;j(5.n/5.p>5.1m/5.1l){5.Y=5.p/5.1l;5.32=1y.3S(5.n-5.1m*5.Y)/(2*5.Y)}B{5.Y=5.n/5.1m;5.31=1y.3S(5.p-5.1l*5.Y)/(2*5.Y)}5.o*=5.Y/2c;5.K*=5.Y/2c;5.N*=5.Y/2c},3T:b(){5.5e.3T();J(a P 1z 5.U){5.U[P].18(11.5d)}5.o=5.Y;5.K=5.32;5.N=5.31;5.1O()},1O:b(){a 1R,20,1Z,1Y;j(5.1m*5.o<=5.n){1R=(5.n-5.1m*5.o)/(2*5.o);1Z=(5.n-5.1m*5.o)/(2*5.o)}B{1R=0;1Z=(5.n-5.1m*5.o)/5.o}j(5.1l*5.o<=5.p){20=(5.p-5.1l*5.o)/(2*5.o);1Y=(5.p-5.1l*5.o)/(2*5.o)}B{20=0;1Y=(5.p-5.1l*5.o)/5.o}j(5.N>20){5.N=20}B j(5.N<1Y){5.N=1Y}j(5.K>1R){5.K=1R}B j(5.K<1Z){5.K=1Z}5.E.3U(5.o,5.K,5.N)},3V:b(){a 2B=1v;a 29,2h;a 1k=5;5.D.3Q(b(e){j(2B){a 39=1k.K;a 3a=1k.N;1k.K-=(29-e.2b)/1k.o;1k.N-=(2h-e.2C)/1k.o;1k.1O();29=e.2b;2h=e.2C}u 1v}).5c(b(e){2B=1U;29=e.2b;2h=e.2C;u 1v}).5u(b(){2B=1v;u 1v})},3X:b(){a 8=5;a 36=(F(\\'#5B\\').5z()-6*2-15*2-3*2-7-6)/(5.37-5.1C);5.D.47(\\'.17-46\\').38(b(){j(8.1C<8.37){a 39=8.K;a 3a=8.N;a 44=8.o;8.K-=(8.n/8.o-8.n/ (8.o * 8.1q)) /2;8.N-=(8.p/8.o-8.p/ (8.o * 8.1q)) /2;8.35(8.o*8.1q);8.1C++;F(\\'#2o\\').1A(\\'1E\\',1B(F(\\'#2o\\').1A(\\'1E\\'),10)-36)}});5.D.47(\\'.17-48\\').38(b(){j(8.1C>1){a 39=8.K;a 3a=8.N;a 44=8.o;8.K+=(8.n/(8.o/ 8.1q) - 8.n/8.o)/2;8.N+=(8.p/(8.o/ 8.1q) - 8.p/8.o)/2;8.35(8.o/8.1q);8.1C--;F(\\'#2o\\').1A(\\'1E\\',1B(F(\\'#2o\\').1A(\\'1E\\'),10)+36)}})},35:b(o){5.o=o;5.1O()},55:b(1i){u F(\\'#\\'+1i)[0]}};11.43=\"3Y://42.41.40/4s/43\";11.34=1;11.3b={};a 1N=b(x,1M,1p,1V){j(x){5.1F(x)}j(1M){5.2r(1M)}j(1p){5.2w(1p)}j(1p){5.2z(1V)}};1N.2s={x:[],2w:b(1j){5.3W=1j;j(2y 5.1e===\\'b\\'){5.1p=5.1e(1j)}B{5.1p=1j}},2z:b(1o){5.3O=1o;j(2y 5.1e===\\'b\\'){5.1V=5.1e(1o)}B{5.1V=1o}},1F:b(x){J(a i=0;i<x.w;i++){x[i]=1N.3M(x[i])}5.x=x},2r:b(f){j(f===\\'4y\\'){5.1e=b(1g){u 1y.3L(1g,0.2)}}B j(f===\\'45\\'){4k 5.1e}B{5.1e=f}5.2w(5.3W);5.2z(5.3O)},3N:b(1g){j(2y 5.1e===\\'b\\'){1g=5.1e(1g)}a 1s=[];a 30=0;a l;J(a i=0;i<5.x.w-1;i++){l=5.3R(5.2L(5.x[i+1],5.x[i]));1s.4D(l);30+=l}a c=(5.1V-5.1p)/30;J(i=0;i<1s.w;i++){1s[i]*=c}i=0;1g-=5.1p;3K(1g-1s[i]>=0){1g-=1s[i];i++}a A;j(i==5.x.w-1){A=5.2Z(5.x[i]).2Y(16)}B{A=(5.2Z(5.3P(5.x[i],5.4a(5.2L(5.x[i+1],5.x[i]),(1g)/(1s[i]))))).2Y(16)}3K(A.w<6){A=\\'0\\'+A}u\\'#\\'+A},2Z:b(Q){a 1Q=0;J(a i=0;i<Q.w;i++){1Q+=1y.2v(Q[i])*1y.3L(51,Q.w-i-1)}u 1Q},2L:b(1L,2n){a Q=[];J(a i=0;i<1L.w;i++){Q[i]=1L[i]-2n[i]}u Q},3P:b(1L,2n){a Q=[];J(a i=0;i<1L.w;i++){Q[i]=1L[i]+2n[i]}u Q},4a:b(Q,1Q){a 1w=[];J(a i=0;i<Q.w;i++){1w[i]=Q[i]*1Q}u 1w},3R:b(Q){a 1w=0;J(a i=0;i<Q.w;i++){1w+=Q[i]*Q[i]}u 1y.4N(1w)}};1N.4H=b(2O){a 1h=\\'#\\';a d;J(a i=0;i<2O.w;i++){d=2O[i].2Y(16);1h+=d.w==1?\\'0\\'+d:d}u 1h};1N.3M=b(1h){1h=1h.23(1);u[1B(1h.23(0,2),16),1B(1h.23(2,2),16),1B(1h.23(4,2),16)]}})(F);',62,353,'|||||this|||map|coords|var|function||||||||if|params|||width|scale|height|node||||return||length|colors|path||color|else||container|canvas|jQuery|cx||cy|for|transX|||transY|values|key|vector|code||setAttribute|countries||break|style|baseScale|rootGroup||WorldMap|pathes|svg|case|||jqvmap|setFill|mode|mapData|px|label|val|normalize|fill|value|rgb|cc|min|self|defaultHeight|defaultWidth|join|max|minValue|zoomStep|opacity|lengthes|createVmlNode|ctrly|false|result|ctrlx|Math|in|css|parseInt|zoomCurStep|document|top|setColors|arguments|rvml|coordsize|colorScale|defaultParams|vector1|normalizeFunction|ColorScale|applyTransform|backgroundColor|num|maxTransX|null|stroke|true|maxValue|VectorCanvas|hoverColor|minTransY|minTransX|maxTransY|original|currentFillColor|substr|showTooltip||selectedRegion|setOpacity|replace|oldPageX|shape|pageX|curBaseScale|target|name|selectedColor|resize|oldPageY|trigger|setValues|unshift|coordorigin|borderColor|vector2|zoomSlider|tagName|getElementsByTagName|setNormalizeFunction|prototype|borderWidth|borderOpacity|round|setMin|createSvgNode|typeof|setMax|options|mouseDown|pageY|div|class|appendTo|scaleColors|new|appendChild|index|addClass|vectorSubtract|getOriginalFill|id|ar|regionMouseOverEvent|getFill|labelShowEvent|split|_|enableZoom|apiEvents|mapObject|data|toString|vectorToNum|fullLength|baseTransY|baseTransX|getAttribute|mapIndex|setScale|sliderDelta|zoomMaxStep|click|curTransX|curTransY|maps|config|vml|setSize|set|apiParams|group|microsoft|0px|letter|Event|hoverOpacity|pathSvgToVml|100|isRoot|c9dfaf|regionMouseOver|mouseover|createGroup|com|toLowerCase|nodeName|namespaces|createElement|default|svgns|urn|position|labelShow|createPath|window|01|schemas|append|pop|while|pow|rgbToArray|getColor|clearMaxValue|vectorAdd|mousemove|vectorLength|abs|reset|applyTransformParams|makeDraggable|clearMinValue|bindZoomButtons|http|text|org|w3|www|xlink|curScale|linear|zoomin|find|zoomout|setBackgroundColor|vectorMult|labelHeight|left|regionMouseOut|regionClick|delegate|parseFloat|isDefaultPrevented|labelWidth|VML|delete|absolute|behavior|createStyleSheet|addRule|world_en|url|fn|1999|onRegionOver|onLabelShow|fillcolor|onRegionOut|linejoin|polynomial|vectorMap|onRegionClick|linecap|2000|push|overflow|toUpperCase|charAt|arrayToRgb|addMap|relative|apply|call|slice|sqrt|extend|Array|hidden|defaultFillColor|add|b6d6ff|catch|f4f3f0|xmlns|try|createElementNS|bind|818181|256|005ace|SVGAngle|a5bfdd|getCountryPath|Number|body|string|countriesData|MAX_VALUE|background|mousedown|defaultColor|countryTitle|setScaleColors|countriesColors|html|mouseout|type|hide|show|is|visible|x2212|valueMax|valueMin|region|stroked|r0|mouseup|shift|switch|MmLlHhVvCcSs|transform|innerHeight|translate|zoom|skew|on|matrix|segment|offset'.split('|'),0,{}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/jqvmap.css",
    "content": "/*!\n * jQVMap Version 1.0 \n *\n * http://jqvmap.com\n *\n * Copyright 2012, Peter Schmalfeldt <manifestinteractive@gmail.com>\n * Licensed under the MIT license.\n *\n * Fork Me @ https://github.com/manifestinteractive/jqvmap\n */\n.jqvmap-label\n{\n\tposition: absolute;\n\tdisplay: none;\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n\tbackground: #292929;\n\tcolor: white;\n\tfont-family: sans-serif, Verdana;\n\tfont-size: smaller;\n\tpadding: 3px;\n}\n.jqvmap-zoomin, .jqvmap-zoomout\n{\n\tposition: absolute;\n\tleft: 10px;\n\t-webkit-border-radius: 3px;\n\t-moz-border-radius: 3px;\n\tborder-radius: 3px;\n\tbackground: #000000;\n\tpadding: 3px;\n\tcolor: white;\n\twidth: 10px;\n\theight: 10px;\n\tcursor: pointer;\n\tline-height: 10px;\n\ttext-align: center;\n}\n.jqvmap-zoomin\n{\n\ttop: 10px;\n}\n.jqvmap-zoomout\n{\n\ttop: 30px;\n}\n.jqvmap-region\n{\n  cursor: pointer;\n}\n.jqvmap-ajax_response\n{\n  width: 100%;\n  height: 500px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.europe.js",
    "content": "/** Add Europe Map Data Points */\njQuery.fn.vectorMap('addMap', 'europe_en', {\"width\":680,\"height\":520,\"pathes\":{\"gl\":{\"path\":\"M13.47,93.57C12.35,92.52 12.34,90 10.44,89.14 10.62,88.14 13.84,87.66 11.35,86.39 10.05,87.17 9.25,86.92 8.71,87.58 6.27,88.12 8.6,85.09 6.17,85.17 5.23,84.47 10.33,84.75 9.98,83.14 11.32,83.4 14.67,82.04 12.37,81.03 11.23,81.19 6.54,82.06 10.06,81.32 13.04,80.64 9.92,76.6 8.71,79.05 9.24,77.06 11.03,78.05 12.88,77.78 14.68,74.59 9.38,77.17 8.23,75.54 7.26,73.61 12.43,77.09 11.48,74.6c2.44,-0.76 -0.97,1.23 1.21,1.43 1,0.07 3.06,0.24 1.26,-0.8C15.39,74.51 14.27,73.05 14.04,72.76 16.26,70.08 9.73,69.39 11.65,72.54 9.43,70.77 7.4,69.72 5.62,68.37 4.84,67.27 3.62,65.14 5.75,64.54 6.27,63.17 3.83,63.23 6.08,62.64 8.52,60.62 3.8,58.38 3.79,56.87 4.78,56.07 3.39,53.57 4.92,55.82c2,1.48 -1.5,0.05 -0.41,1.67 0.7,1.18 4.94,4.58 4.09,1.22C7.96,57.37 6.11,57.21 8.09,56.47 5.75,56.14 4.83,52.58 8.11,53.61c1.58,0.65 2.17,-1 2.13,-1.24 1.86,-0.56 0.99,-3.89 0.14,-5.02 -2.29,-0.92 1.59,-2.34 -1.23,-2.91 0.6,-3.73 4.98,-2.29 7.51,-3.37 2.78,-1.33 -1.33,-1.73 -1.69,-3.06 -3.07,-1.99 2.8,-0.5 3.28,-2.76 2.87,0.22 -2.67,-2.82 -1.49,-3.84 1.34,0.59 4.57,3.1 4.27,-0.2C20.58,29.48 17.09,31.14 17.33,29.6c1.78,1.02 0.79,-3.69 2.33,-1.12 1.76,1.21 4.05,-0.81 1.11,-1.21 -0.72,-0.16 1.96,-1.91 2.18,-0.31 2.04,0.89 2.39,3.26 4.86,3.29 1.12,-1.58 -2.89,-2.38 -0.16,-2.31 1.35,-1.83 -5.03,-0.94 -1.14,-2.29 1.39,-1.55 1.81,4.29 2.64,1.36 -0.57,-1.39 -0.41,-4.67 1.53,-2.59 0.16,2.02 -2.74,3.73 -1.03,6.23 2.7,1.13 0.11,-4.85 3.69,-4.25 2.74,-0.7 0.37,-3.01 -1.39,-3.16 0.93,-1.59 -0.48,-0.52 -0.91,-1.1 -1.26,0.42 -2.63,-0.27 -1.15,-1.19 -0.81,-1.9 -3.85,0.74 -5.54,0.53 -3.44,0.64 1.14,-2.76 2.36,-3.3 2.28,-0.77 4.66,2.97 6.55,0.04C34.81,17.14 33.04,17.79 32.17,17.97 30.61,18.81 30.38,17.32 30.54,16.77 29.14,17.79 26.4,16.27 29.42,16.34 29.89,14.12 31.85,14.39 33.58,13.44c0.27,-2.21 -3.96,0.03 -1.92,-1.94 2.34,1.37 5.29,0.49 7.37,1.6 0.49,1.25 2.93,3.07 2.07,0.58C40.16,10.86 37.07,10.79 34.89,10.94 32.01,10.71 38.39,8.92 36.45,6.69 35.49,6.8 33.31,6.65 34.75,5.53c1.74,0.57 3.45,1.31 2.13,3.63 0.97,-0.77 3.6,0.14 4.92,-0.01C42.62,6.51 37.36,8.29 39.31,5.97 39.94,4.69 35.39,5.71 36.07,3.41c2.18,-0.52 6.21,0.1 8.48,1.64 1.78,-0.72 2.84,-0.23 4.07,0.55 1.73,-0.23 3.46,0.06 2.78,2.25C52.75,9.86 54.51,8.35 52.72,6.73 52.71,4.07 54.56,10.07 55.78,8.98 56.01,5.87 52.57,4.02 49.87,3.57 48.45,2.66 43.96,4.29 45.02,2.48 44.96,1.07 43.75,0.16 45.71,1.28 47.56,3.52 50.55,-0.47 53.01,0.78 55.13,-0.05 52.02,4.62 54.57,4.07 55.09,3.62 56.43,7.62 57.26,5.53 57.36,3.28 54.5,4.61 54.71,2.93 54.66,0.68 56.28,0.89 57.93,0.78 59.1,1.36 57.92,5.72 60.98,5.64 61.74,4.33 57.63,0.17 61.09,2.11 61.53,3.09 65.18,3.43 63.42,2.17 61.88,1.53 60.02,-0.12 62.69,1.24c1.18,0.74 1.27,-0.27 2.37,-0.09 0.49,-0.8 2.06,-0.17 3.01,-0.37 45.89,0 91.78,0 137.67,0 0.61,1.21 1.15,3.04 -0.24,1.09 -2.48,-0.7 1.23,2.94 1.58,3.94 1.63,2.86 -1.86,0.67 -3.36,1.88 1.28,-1.72 -2.26,-4.24 -1.57,-1.36 0.03,2.25 1.64,3.73 3.68,2.39 1.03,0.77 -1.42,2.8 -1.62,3.53 -3.09,0.12 0.02,1.62 1.04,2.22 0.66,2.09 4.04,0.64 2.3,3.22 -1.05,1.95 -3.92,1.82 -3.21,-0.86 0.14,-3.28 -4.67,-1.36 -4.04,-5.02 -2.02,-0.71 -0.18,3.84 -2.96,2.48 -0.73,0.74 0.41,1.75 -1.42,1.32 -2.61,0.54 1.71,4.84 -0.38,4.25 -1.39,0.66 -1.21,4.72 0.33,2.08 -0.04,-1.13 1.18,-4.09 2.39,-2.05 0.43,1.69 3.14,3.16 0.34,3.59 0.86,3.33 -3.29,2.48 -4.22,0.42 -0.56,1.42 -4.92,2.25 -4.96,-1.01 -1.09,-1.09 -0.61,-6.28 0.38,-2.79 -0.38,2.15 4.88,3.94 3.74,1.34 -3.75,0.99 -2.13,-7.24 -6.06,-4.79 -0.93,1.3 -1.66,1.94 -1.57,-0.09 0.87,-1.48 -0.65,-6.36 -1.62,-2.76 -0.29,1.71 1.87,5.7 -1.38,4.23 -1.61,0.79 -3.43,1.95 -3.68,-0.56 -1.68,-1 0.16,-4.48 -2.68,-3.04 -0.67,1.11 2.68,6.25 0.02,3.71 -0.94,-1.89 -3.02,-1.6 -4.56,-0.77 1.83,0.09 2.37,0.85 0.57,2.18 0.59,2.05 2.81,-2.2 3.66,0.12 1.38,0.4 3.13,-0.11 3.81,2.17 2.43,3.24 -2.95,0.83 -4.01,1.04 -0.05,-1.82 -4.79,-3.3 -3.23,-1.13 1.49,0.95 1.71,0.82 0.15,1.51 -1.1,2.37 1.53,3.48 2.9,1.87 3.12,-1.53 5.02,4.79 1.15,3.53 -2.62,-0.97 -1.48,2.05 -3.89,2.7 -0.43,2.18 2.56,-0.04 2.88,-0.79 2.47,-0.74 2.4,2.46 3.26,3.28 -2.41,2.08 2.06,1.61 0.72,3.86 0.87,0.94 2.37,2.01 0.05,2.28 -2.05,0.35 -0.86,2.02 0.59,1.45 -1.67,-0.11 -1.69,1.85 -1.36,2.27 -1.73,0.52 -2.08,4.37 -0.55,3.78 -0.25,-2.23 4.33,-2.23 2.08,-0.24 -2.82,-0.46 -0.7,2.99 -3.43,2.2 2.08,0.81 0.22,1 -1.03,1.19 -1.32,0.16 3.49,1.1 1.39,1.26 -1.9,0.07 -0.29,1.99 -2.31,1.42 1.18,0.54 1.34,1.84 1.35,2.8 -2.18,2.04 -4.44,-0.74 -2.18,-2.64 1.63,-0.69 0.76,-4.19 -0.17,-2.1 -0.64,2.71 -4.66,4.66 -4.98,0.68 -0.13,-3.43 1.98,-6.57 2.12,-10.01 -0.26,-1.47 -2.38,-1.12 -1.92,-3.26 0.2,-2.67 -2.43,-4.09 -3.97,-4.66 0.54,-2.82 0.04,-5.39 -1.15,-7.72 0.49,-2.96 -3.2,-2.36 -2.3,0.29 0.39,1.99 2.16,3.98 1.82,5.79 -0.98,-1.18 -4.72,-2.37 -4.53,0.09 1.53,0.74 4.96,0.32 3.23,3.09 -0.36,0.92 2.65,-0.97 2.92,1.14 1.39,1.16 4.2,3.13 1.09,4.33 -2.3,0.81 -7.78,0.76 -7.23,-2.79 1.56,-1.72 -2.19,-2.27 -1.32,0.16 -1.72,-2.55 -3.53,-0.09 -1.9,1.66 -2.13,2.01 -4.41,0.62 -6.81,0.57 -2.19,2.71 4.76,1.16 2.08,3.05 0.58,1.9 4.08,1.91 5.81,2.83 1.96,1.43 -0.47,2.15 -1.35,0.46 -1.82,-1.08 -3.45,2.21 -4.74,-0.62 -0.64,-2.28 -4.68,1.1 -2.47,0.81 1.98,0.42 2.27,5.38 5.07,2.98 1.84,-3.35 3.57,2.14 6.26,0.44 1.29,-0.17 2.13,-0.02 0.67,0.65 1.09,1.24 2.33,0.17 2.6,1.96 1.19,2.8 4.25,5.41 6.32,6.4 -0.65,1.36 -3.26,-1.74 -3.14,1.07 -0.24,-1.71 -1.8,-0.78 -1.41,0.45 -1.2,-0.78 -1.84,-2.07 -1.82,0.08 -0.39,2.77 -2.92,-1.74 -2.76,-0.46 0.55,1.51 -0.55,2.28 -0.85,0.45 -2.38,-1.66 -2.14,3.66 -3.7,0.79 -1.88,-0.98 -0.85,3.28 -2.38,0.99 -2,-0.69 -1.48,2.95 -3.73,1.98 -1.43,0.57 -1.73,-1.87 -2.48,0.33 -1.28,0.15 -2.02,-1.77 -3.67,-0.49 -1.51,-0.59 -3.89,-0.69 -5.18,-1.79 -1.83,0.4 -3.94,-2.71 -4.99,0.05 -1.52,0.2 0.6,-5.44 -2.51,-2.84 -0.5,1.46 -2.44,2.79 -1.46,0.41 -0.04,-2.08 -3.47,-2.35 -1.81,-0.01 -0.33,2.95 -2.47,-1.46 -3.31,-2.22 2.66,-0.66 -1.9,-3.4 0.58,-4.85 0.98,-1.25 -0.43,-3.9 -1.29,-1.57 -2.2,1.2 0.59,4.8 -2.3,3.1 0.07,1.58 0.73,2.33 -0.49,2.37 -0.31,3.19 -2.4,-0.77 -3.7,1.08 -1.26,-0.57 -3.86,-0.58 -3.24,0.73 -1.86,1.54 -5.17,-0.4 -5.06,3.18 -2.02,-0.95 -3.43,1.13 -4.24,1.49 -0.67,-0.74 -1.24,2.48 -2,1.23 2.12,-2.45 -2.15,-1.8 -1.8,0.58 -2.16,1.39 -3.92,0.18 -2.08,-1.7 -1.67,0.05 -3.09,2.47 -2.5,-0.4 -0.88,-2.96 -1.92,-0.22 -2,1.13 -1.96,-0.26 -4.27,2.16 -3.76,-0.97 -0.78,-1.12 -2.93,1.49 -3.4,-0.02 1.83,-0.91 0.7,-3.4 -0.63,-1.07 -0.78,1.04 -1.78,1.59 -1.04,-0.05 -2.35,-3.54 3.85,-1.66 4.59,-3.73 -0.17,-1.96 -2.75,-5.32 -4.26,-2.64 1.79,0.66 -1.44,2.8 -2.07,2.43 -1.51,-3.02 -4.63,-0.57 -2.13,1.56 0.17,1.83 -2.38,1.81 -1.85,-0.14 -1.36,-2.38 -2.64,3.42 -2.69,-0.09 0.92,-1.47 0.05,-4.47 -1.39,-1.81 0.69,-2.4 -1.59,-1.67 -2.42,-0.69 -1.63,-2.6 -2.81,-0.08 -1.32,1.39 -0.12,2.09 -5.82,3.27 -3.43,0.33 -0.7,-1.39 -2.14,-1.09 -2.9,-2.54 -1.31,0.12 -1.87,1.12 -2.63,1.96 -0.18,2.43 -0.75,4.74 -2.05,6.98 -0.56,-1.99 -3.06,-1.81 -4.45,-3.2 -2.37,1.32 0.55,4.85 0.85,5.51 -2.93,-1.09 -0.49,5.23 -3.18,2.66C53.03,69.44 53.8,64.37 51.35,66.72c-0.01,1.25 1.67,5.14 1.03,4.67 -0.53,-2.51 -2.88,0.37 -2.61,-2.21 -1.56,-2.63 -4.32,1.46 -2.75,2.77 0.01,1.17 -1.56,2.39 -0.5,0.42 0.86,-3.51 -4.59,-2.97 -3.27,0.28 1.49,1.65 -0.07,2.95 -1.09,0.84 -1.55,-1.63 -4.28,0.31 -4.69,-2.84 -1.38,-1.87 -1.94,1.56 -0.77,2.26 -0.06,1.31 -0.47,2.49 -0.74,0.56 -1.54,-2.22 -1.58,2.78 -0.86,3.53 1.64,2.36 -5.86,1.67 -2.64,3.82 2.3,1.03 -2.22,1.12 -2.82,0.61 -1.74,0.43 1.87,2.58 -0.75,1.83C27.52,82.87 27.84,78.97 25.72,81.05c-0.33,1.79 3.97,2.08 0.81,3.67C24.18,85.6 27.77,81.48 24.7,81.96c-1.65,-0.58 -3.25,0.94 -2.07,2.52 -0.13,-1.56 -3.34,-2.97 -2.3,-0.65 0.92,1 3.65,4.19 0.68,3.11 -0.39,-1.36 -2.18,-3.54 -2.55,-1.53 -2.1,0.36 1.98,3.44 0.79,3.95 -0.52,-1.87 -2.86,-1.68 -1.64,0.35 -0.16,0.51 -2.67,-2.78 -2.9,-4.29 -1.64,-2.64 -1.84,0.81 -1.4,1.86 -0.78,1.52 2.24,0.79 1.57,2.42 -1.75,-0.73 -3.2,1.28 -0.75,1.28 -0.16,0.78 0.34,2.28 -0.65,2.59z M34.12,18.3c-1.05,0.6 -2.47,3.81 -0.57,3.47 1.95,-0.22 4.06,-4.82 0.57,-3.47z m-22.97,56.17c-2.31,-0.35 -0.79,-1.58 0,0z M2.14,66.59c-1.38,-1.11 -0.95,-1.35 0.46,-0.36 -0.18,-0.08 -0.27,0.6 -0.46,0.36z m168.23,-6.32c-0.28,-1.85 2.85,0.02 0.03,0l-0.03,0z M7.85,51.96c-0.57,-0.92 1.55,0.27 0,0z m1.18,-1.63C7.41,50.26 7.17,48.77 8.95,49.87 10,50.07 10.77,49.96 9.03,50.33z M184.09,37.53c-0.77,-1.48 -1.43,-4.23 -2.73,-6.24 -2.01,-2.67 1.21,-6.02 3.05,-2.64 0.95,1.04 0.93,3.38 1.44,4.42 -4.98,-0.16 0.39,3.51 -1.76,4.46z M23.01,25.35c-1.12,-0.81 -0.79,-3.25 0.17,-0.92 0.17,0.37 -0.49,0.58 -0.17,0.92z M209.99,8.88c0.65,-1.41 0.2,-3.29 -1.61,-3.21 -0.07,-1.5 -1.95,-5.46 0.62,-4.89 1.44,0 2.88,0 4.31,0 1.06,2.38 -1.6,4.58 -1.58,7.24 -0.32,0.7 -1.06,0.8 -1.74,0.86z M44.32,3.05c-1.74,-0.98 -6.31,0.12 -6.14,-2.09 1.47,1.81 3.05,0.95 2.25,-0.17 2.2,-0.52 2.82,0.46 3.89,2.27z\",\"name\":\"Greenland\"},\"is\":{\"path\":\"m151.61,141.44c-2.42,-0.05 -4.73,-1.12 -5.95,-3.36 -0.71,-2.06 -4.34,-1.68 -3.81,-4.38 0.8,-0.95 3.4,-0.95 1.03,-1.6 -1.69,0.92 -0.37,-1.61 -2.18,-0.86 -0.88,-0.03 -1.32,-2.12 -2.96,-2.05 -1.43,-1.13 -6,-1.27 -4.53,-3.48 1.4,1.45 5.16,1.15 5.29,-1.63 0.95,-0.08 4.39,1.14 2.46,-0.91 -1.28,-0.31 -3.16,-1.27 -0.58,-1.35 2.41,0.51 2.39,-2.69 -0.02,-1.57 -1.25,0.39 -2.36,1.06 -1.66,-0.43 -0.34,-1.62 1.57,-4.11 -1.54,-3.94 -1.49,-1.7 -3.83,-2.36 -5.98,-2.91 1.9,-1.43 2.13,2 4.45,0.36 0.58,-0.11 0.84,1.82 1.93,0.36 1.45,0.02 2.12,1.75 4.12,1.85 1.57,1.88 4.72,-0.08 2.56,-1.73 -1.13,0.23 -4.71,-0.08 -2.41,-1.51 1.13,0.1 5.66,-0.35 3.94,-1.58 -2.53,-0.05 -1.4,-0.83 -0.29,-1.63 0.84,-2.83 -2.64,-1.96 -3.34,-1.81 -1.47,-0.72 -2,-0.85 -1.64,-2.44 2.52,0.42 0.64,-2.75 -0.27,-3.56 -0.04,-0.34 1.76,2 1.91,-0.11 -0.65,-3.43 1.88,0.34 1.11,2 -0.95,4.21 5.86,2.44 3.19,-0.73 -1.94,-1.31 0.11,-2.67 -1.13,-4.2 1.13,0.42 1.67,1.6 2.04,1.18 1.98,0.31 -0.01,2.5 1.33,3.37 0.86,1.89 -0.77,4.19 1.64,5.57 -1.28,0.64 -3.87,-0.52 -2.63,1.99 -0.4,1.18 -1.92,2.25 -0.42,2.93 -1.31,1.46 -1.09,4.59 1.22,2.7 0.49,-1.4 2.89,-6.12 2.22,-2.37 2.69,2.22 4.53,-3.04 4.48,-5.25 2.58,0.03 -0.68,6.63 3.51,5.53 -0.01,-0.74 0.05,-5.1 1.81,-2.72 1.08,-2.01 3.5,-0.36 1.83,1.62 2.1,1.36 -0.53,3.45 0.95,5.46 2.69,-0.06 0.02,-7.39 2.92,-6.07 -0.32,2.52 1.49,4.92 3.27,1.85 1.68,-2.37 1.62,3.33 3.69,1.28 1.71,-0.8 1.1,-6.38 3.47,-3.02 -0.81,1.5 1.32,1.54 -0.24,3.29 -0.5,2.17 2.82,1.16 2.36,3.29 2.02,0.52 2.1,1.62 0.19,2.57 -2.6,1.53 3.45,1.86 0.49,3.25 -0.74,0.55 -3.68,1.15 -1.27,1.34 1.72,-0.23 4.34,-1.28 4.35,1.54 -0.04,2.17 -4.93,1.21 -2.47,3.09 1.83,0.33 2.75,2.38 0.41,2.2 -1.18,-0.56 -1.74,-0.63 -0.71,0.56 -0.6,-0.3 -3.92,0.12 -2.06,0.55 2.71,0.87 -0.55,1.36 -1.7,1.52 -1.06,0.04 -2.49,1.02 -2.87,2.69 -1.35,-0.83 -1.72,1.98 -2.29,-0.35 -0.72,-2.57 -2.1,-0.68 -2.71,0.31 -2.09,-0.1 -4.17,0.18 -5.78,1.63 -1.89,0.57 -3.52,-3.04 -3.52,0.21 -2.4,-1.75 -5.62,-1.53 -6.88,1.4l-0.35,0.08 0,0z m24.31,-7.94c-1.58,1.64 1.17,1.65 0.84,-0.23 -0.28,0.08 -0.56,0.15 -0.84,0.23z M147.49,99.76c-2.33,0.02 -1.42,1.38 0.2,1.79 0.14,-0.38 0.69,-1.97 -0.2,-1.79z m33.62,15.99c1.19,-0.59 1.6,-0.17 0,0z m-44.05,-9.09c-1.62,-0.01 -0.68,-1.6 0.37,-0.74 1.34,-0.47 -0.84,-4.6 0.49,-2.48 -0.6,1.82 2.54,3.42 -0.86,3.22z m-1.42,-1.5c-1.66,0.2 -1.5,-3.06 -0.29,-0.86 -0.05,0.3 1.22,0.95 0.29,0.86z m4.48,-1.49c-0.86,-0.96 -0.83,-1.57 0,0z\",\"name\":\"Iceland\"},\"pt\":{\"path\":\"m126.31,476.79c-3.11,-0.89 -5.74,-4.21 -9.28,-3.12 -1.78,0.38 1.76,-2.58 1.47,-3.95 0.39,-1.92 1.56,-3.11 1.18,-4.56 -0.46,-1.65 0.47,-3.6 1.4,-5.27 -0.61,-1.65 3.07,-0.14 2.33,-1.74 -1.59,-1.17 -2.48,-2.71 -4.71,-1.61 -1.89,-0.04 -2.12,-3.1 -2.67,-4.46 0.27,-2.21 3.57,-4.27 2.21,-6.5 2.42,0.37 3.47,-2.17 4.77,-3.81 0.98,-1.71 1.87,-3.43 3.16,-4.47 -0.79,-1.76 1.02,-5.31 3.28,-5.87 1.59,-1.26 -0.95,-2.63 0.8,-4.09 0.23,-2.53 -1.05,-5.19 -0.11,-7.75 2.54,0.06 0.15,-1.87 0.17,-2.24 1.59,-1.44 4.74,-3.3 6.49,-1.31 -3.35,1.53 -0.16,3.98 2.09,3.19 1.85,-0.17 3.87,2.53 6.45,0.97 1.56,-0.13 6.26,-0.07 4.22,3.05 0.22,1.77 4.81,2.08 1.88,3.98 -2.66,0.33 -4.02,2.88 -6.33,3.35 -0.97,1.66 1.09,4.53 -0.81,6.49 -1.07,1.01 0.55,2.39 -1.62,2.77 -2.6,1.54 1.62,6.06 -2.82,6.49 -1.74,-0.37 -5.6,-2.08 -3.57,1.31 1.07,1.89 -0.41,4.57 2.03,6.2 1.92,2.91 -3.81,2.81 -3.68,5.95 -1.09,1.6 0.5,5.45 2.67,5.41 -1.19,1.2 -4.31,1 -5,3.34 -3.07,2.07 -0.28,7.22 -4.25,7.62 -0.55,0.29 -1.11,0.63 -1.75,0.65z\",\"name\":\"Portugal\"},\"ma\":{\"path\":\"m114.26,519.26c5.38,-1.06 11.75,-0.39 15.9,-4.63 5.26,-4.88 8.22,-11.54 11.83,-17.6 2.3,-1.64 3.11,0.89 3.7,2.43 3.25,0.06 3.27,5.03 6.51,6.18 2.01,2.4 5.02,1.6 7.69,1.35 1.26,1.84 3.78,-0.68 5.41,1.5 1.48,1.09 4.97,-1.46 5.09,1.72 1.76,1.07 3.75,0.97 5.94,1.12 1.21,2.49 5.27,4 3.5,6.77 1.55,1.82 -0.97,1 -2.11,1.18 -21.15,0 -42.31,0 -63.46,0z\",\"name\":\"Morocco\"},\"es\":{\"path\":\"m170.08,507.95c-0.69,-0.45 0.64,-1.19 0,0z m-23.1,-9.15c-1.89,-0.27 -1.23,-3.36 0.81,-2.76 -1.01,0.61 -0.28,2.16 -0.81,2.76z m-1.53,-5.41c-1.92,-1.84 -4.81,-3.55 -4.78,-6.5 1.74,-1.65 -3.05,-2.72 0.06,-3.62 1.8,0.08 1.95,-2.62 0.29,-1.71 -1.68,1.92 -1.49,-3.2 -3.57,-3.37 -1.21,-2.54 -5.06,-1.7 -6.26,-3.7 0.08,-2.72 1.22,-5.37 3.58,-6.95 1.91,0.46 5.66,-3.3 1.98,-3.27 -1.9,-2.17 -1.67,-5.74 1.14,-6.99 3.7,-0.95 1.1,-4.57 -0.28,-6.35 0.58,-1.68 0.45,-3.01 -0.84,-4.53 2.46,2.34 7.45,0.07 6.4,-3.43 -2.26,-2.56 3.15,-2.71 1.97,-5.34 1.81,-1.67 0.28,-5.41 1.17,-6.21 1.77,-2.14 4.99,-2.46 6.88,-4.55 1.92,-2.79 -4.07,-2.45 -2.2,-4.91 0.43,-3.16 -4.07,-2.3 -5.69,-3.2 -1.8,2.37 -3.89,-1.02 -6.23,-0.51 -0.28,-1.34 -3.49,1.05 -2.42,-0.88 2.82,-1.19 -0.75,-4.5 -2.73,-2.96 -2.11,1.45 -3.86,-0.78 -1.34,-1.64 0.94,0.28 2.32,-1.98 0.72,-1.58 2.23,-1.63 -2.16,-0.92 -0.24,-2.66 2.41,-1.99 0.28,-4.66 -2.06,-3.75 -2.26,-1.66 -0.12,-3.23 1.07,-4.13 3.66,0.29 6.76,-2.08 9.92,-3.51 1.78,-2.19 1.34,2.22 3.29,-0.21 3.33,-0.27 2.62,6.64 6.6,4.09 2.47,1.16 5.51,0.94 8.02,1.44 1.9,-1.24 3.14,2.45 5.32,2.3 2.35,0.57 4.3,2.34 6.75,2.93 2.65,1.41 5.29,-0 7.84,-0 2.13,0.65 4.69,5.39 6.5,1.98 2.5,1.32 5.04,3.91 8.46,3.08 1.39,-0.01 3.8,0.79 4.14,1.8 -1.87,1.22 0.06,2.67 1.22,2.4 1.66,1.57 5.29,1.19 5.34,4 1.46,0.54 4.43,-0.57 4.33,1.92 1.41,-0.29 3.73,0.98 4.54,0.5 1.54,0.01 3.53,0.67 3.72,-1.35 1.63,1.02 3.94,2.12 5.05,3.3 -0.62,2.48 1.62,2.94 3.4,2.37 1.23,1.43 2.74,2.23 4.47,1.42 1.62,0.92 3.85,2.1 4.94,-0.04 1.38,-0.43 5.47,1.31 2.5,2.25 -0.52,2.49 0.35,5.62 -3.02,6.24 -3.95,0.65 -6.55,3.99 -10.24,4.85 -4,0.26 -8.86,0.24 -11.41,3.91 0.64,1.13 2.06,1.75 -0.08,1.82 -2.98,1.35 -3.8,5 -6.55,6.72 -2.04,2.09 -4.6,4.27 -5.09,7.29 -0.14,3.13 0.72,6.8 3.86,8.19 -0.28,2.13 -4.94,1.61 -6.14,3.93 -1.51,0.81 -1.84,2.35 -3.08,3.65 0.22,1.68 -4.27,3.01 -1.46,5.03 -0.94,1.1 -4.96,-1.49 -6.88,0.41 -2.79,1.13 -4.55,3.71 -5.69,6.37 -2.11,3.74 -4.63,-2.34 -7.31,0.69 -2.28,0.2 -4.7,-1.72 -7.4,-1.1 -2.51,-0.92 -5.12,-1.75 -7.89,-1.82 -2.99,0.03 -4.54,3.25 -7.74,1.83 -3.45,-0.48 -3.73,3.46 -6.83,4.06z M229.67,469.73c-3.03,-0.94 2.34,-1.17 0,0z m-3.28,-1.86c-1.31,-1.98 3.63,-2.8 0.96,-0.55 -0.28,0.23 -0.58,0.51 -0.96,0.55z m8.15,-0.95c-0.99,-1.19 -3.24,-1.21 -2.69,-3.07 -1.57,-0.61 -4.43,-0.57 -1.44,-1.83 1.82,-0.69 5.61,-3.6 5.15,-0.13 1.01,1.13 4.03,0.64 1.76,2.77 -0.83,0.87 -1.8,1.58 -2.78,2.26z m11.67,-5.53c-0.43,-1.32 -5.6,-1.9 -2.47,-2.15 1.42,0.04 2.4,0.66 2.47,2.15z\",\"name\":\"Spain\"},\"tn\":{\"path\":\"m284.9,519.26c-2.21,-1.12 0.73,-3.64 -0.95,-5.51 -1.46,-3.16 2.15,-6.93 -0.12,-9.45 -0.67,-0.73 2.93,-1.29 1.98,-2.95 2.23,-0.03 1.46,-2.58 3.74,-2.85 2.52,-1.83 5.41,-3.02 8.35,-3.78 1.3,0.18 -1.34,3.29 1.51,2.64 0.71,-1.15 1.1,-2.15 2.08,-1.26 -0.76,0.27 1.03,1.6 0.03,2.09 1.72,0.55 2.13,5.46 4.03,3.7 1.46,-0.73 4.4,-5.15 5.37,-2.71 -0.9,2.37 -2.28,5.07 -4.51,6.35 -3.22,1.82 -2.27,6.37 0.87,7.67 1.26,0.82 1.66,2.08 3.04,2.36 -0.15,1.99 1.01,4.41 -1.79,3.68 -7.88,0 -15.77,-0.01 -23.63,0.01z\",\"name\":\"Tunisia\"},\"dz\":{\"path\":\"m181.84,519.26c-2.16,-1 0.09,-2.29 0.05,-3.03 -0.8,-1.48 -5.28,-4.37 -1.47,-3.7 2.83,-0.51 5.98,-1.33 7.84,-3.67 1.17,-2.46 3.66,-2.95 5.89,-2.07 1.44,-0.79 2.77,-2.77 3.38,-0.29 3.67,1.9 4.38,-3.05 7.15,-3.91 3.27,-1.17 6.41,-3.1 10.01,-2.8 3.04,0.05 6.13,0.57 9.13,-0.19 2.74,1.56 5.53,-0.24 7.63,-1.26 2.46,0.75 5.2,0.79 7.75,-0.34 2.83,-0.67 5.62,0.67 8.61,0.23 3.35,0.17 5.17,6.05 8.94,3.1 1.43,-2.77 7.09,0.3 7.33,-3.88 2.03,-1.62 1.87,1.59 2.96,1.23 1.79,0.05 6.14,2.99 6.01,-0.61 2.5,-2 5.17,3.33 8.12,2.16 1.57,-1.13 4.46,-0.6 5.35,-0.15 -1.62,-0.02 -2.54,1.2 -1.93,2.18 -1.87,0.63 -3.58,2.5 -1.04,3.3 0.38,2.87 -2.09,5.94 -0.27,8.63 -0.06,1.4 0.31,4.98 -0.86,5.05 -33.52,0 -67.05,0 -100.57,0z\",\"name\":\"Algeria\"},\"be\":{\"path\":\"m265.32,343.64c-0.99,-1.16 -1.81,-2.49 -3.73,-3.37 -2.08,-0.35 -0.28,-1.85 -1.25,-2.79 1.47,-1.88 -0.53,-2.73 -1.47,-0.87 -1.28,2.32 -4.46,0.99 -3.2,-0.74 -0.78,-0.74 1.11,-3.63 -1.62,-3.19 -2.17,0.83 -2.23,-1.41 -2.67,-2.1 -3.94,1.05 -1.51,-5.53 -5.39,-3.71 -2.36,1.07 -3.02,-4.27 -0.45,-4.53 1.73,-0.62 4.14,-3.17 4.52,-0.63 2.42,-0.22 3.66,2.56 5.83,0.13 1.3,-0.02 1.88,1.91 1.96,-0.36 0.89,-2.95 2.67,0.31 4.45,-0.43 0.58,-0.7 1.45,3.34 3.54,2.07 2.55,0.01 1.99,1.94 1.4,3.06 -1.22,1.97 -0.15,4.06 2.13,3.5 1.5,1.19 1.36,3.16 2.63,4.39 -1.48,2.22 -4.2,1.28 -5.1,4.2 -1.39,2.28 2.74,5.98 -1.59,5.37z\",\"name\":\"Belgium\"},\"it\":{\"path\":\"m350.4,500.36c-1.75,-1.38 -4.77,0.56 -6.21,-2.11 -0.98,-3.12 -4.25,-2.35 -6.74,-3.12 -2.11,-1.47 -4.61,-1.93 -6.58,-3.76 -2.2,-1.23 -6.25,0.31 -6.1,-3.66 0.15,-1.98 2.31,-4.17 3.5,-1.8 2.52,0.49 3.53,-4.85 5.24,-0.9 2.01,0.26 4.02,2.27 5.97,0.45 2.63,-0.1 5.81,0.01 7.46,-2.47 1.45,0.01 4.12,1.89 4.36,-0.76 1.1,1.6 3.69,-2.6 2.02,0.26 -1.4,3.25 -4.08,7.31 -3.12,10.66 1.21,0.69 0.93,2.35 2.17,3.37 -1.93,0.14 -1.88,2.41 -1.97,3.84z m7.22,-15.37c-2.78,-0.14 -2.87,-3.99 -0.28,-4.55 1.37,-2.08 -1.36,-4.79 2.17,-5.13 3.25,-2.22 -1.35,-4.63 -1.21,-7.46 -1.16,-2.63 -2.56,-4.66 -3.09,-7.45 -1.59,-2.98 -4.91,-0.29 -6.78,-2.73 -1.65,-0.84 -0.12,-5.17 -3.33,-5.63 -1.56,-0.37 -4.03,2.8 -2.57,0.22 0.06,-2.91 -3.33,-1.3 -4.25,-2.37 -0.69,-2.23 -3.26,-6.17 -5.36,-4.2 -1.73,-2.18 -4.5,1.85 -5.25,-1.44 -2.69,-0.65 -4.1,-2.62 -6.18,-4.28 -0.73,-3.32 -5.19,-3.11 -5.74,-6.57 -1.05,-1.9 -5.27,-0.02 -4.05,-2.26 -1.1,-2.38 -3.86,-3.39 -4.73,-5.46 -3.13,0.51 0.07,-2.73 -1.71,-4.47 -2.14,-2.56 -1.2,-6.42 -3.6,-8.63 -2.19,-1.12 -4.5,-0.88 -6.03,-3.28 -2.22,-0.9 -4.82,-2.51 -7.33,-1.86 -1.74,1.89 -3.46,3.3 -4.61,5.48 -1.55,2.14 -5.91,2.59 -3.27,-0.76 1.07,-4.25 -4.16,-0.46 -5.52,-3.08 -2.08,-1.9 -1.08,-4.02 0.62,-5.53 0.76,-2.12 -4.77,-3.84 -2.88,-4.68 2.55,0.23 5.53,-3.6 2.83,-5.28 -0.93,-1.94 -2.92,-4.5 0.7,-3.9 2.4,0.04 4.29,-1.2 6.65,-0.24 1.85,-1.05 2.45,-2.98 2.51,-4.87 1.03,-0.35 2.29,-2.18 1.57,0.13 -0.67,2.56 4.99,2.17 2.47,4.45 0.19,0.08 2.08,0.32 2.23,1.7 1.41,1.01 2.54,-1.65 0.98,-2.25 0.53,-2.02 3.41,-3.57 2.37,-5.9 0.68,2.09 2.82,3.69 4.41,1.42 0.81,0.91 2.52,3.75 3.07,0.97 -0.97,-1.55 1.29,-1.81 -0.84,-2.7 -0.29,-2.99 3.05,2.3 3.43,-1.02 -1.77,-2.29 0.88,-4.07 2.84,-1.92 2.41,1.34 1.9,-4.15 4.64,-2.65 2.33,0.51 5.21,-2.28 6.13,0.74 1.38,2.34 4.22,3.29 6.93,3.47 1.41,0.44 5.26,-0.07 4.99,0.93 -2.13,0.92 -2.35,3.92 0.43,3.72 -1.26,1.22 -1.47,2.53 -0.57,3.56 0.79,3.16 -4.05,-1.16 -3.93,2.42 -2.22,1.73 -5.54,2.13 -7.33,4.03 -0.52,1.97 1.06,2.99 1.39,4.46 3.61,0.71 -1.06,2.87 -0.87,4.28 0.35,2.85 0.62,6.32 3.48,7.85 2.75,2.1 5.47,4.43 8.75,5.58 2.03,1.86 2.11,4.88 3.12,7.29 0.93,3.7 3.47,6.75 6.72,8.67 2.2,2.52 5.18,4.19 8.71,3.54 1.79,0.5 5.88,-2.59 5.92,0.29 -0.8,1.53 -3.65,2.89 -1.29,4.86 4.13,2.94 10.13,1.81 13.75,5.65 1.89,1.55 5.85,0.5 6.34,3.52 1.71,1.18 6.04,2.73 4.13,5.37 0.4,1.63 -0.95,3.55 -2.34,1.36 -0.96,-2.97 -3.23,-5.68 -6.54,-4.48 -2.32,-1.32 -6.05,-2.69 -6.78,1.09 -1.28,2.2 -1.32,4.97 -2.42,7.17 0.64,2.84 4.59,1.65 5.83,3.73 1.59,0.26 0.35,2.98 1.81,3.8 -0.21,3.1 -5.83,1.6 -5.88,5 0.28,1.92 0.81,4.68 -1.72,5.06 -1.23,1.65 -1.39,4.64 -3.63,5.25z m-35.56,-71.98c1.98,1.43 0.5,-2.39 0,0z m-33.54,62.41c-0.72,-1.6 -3.1,-3.35 -3.37,-5.68 1.54,-2 1.07,-4.81 2.16,-7.03 -3.26,0.28 0.82,-2.8 -0.89,-4.55 -0.02,-1.96 -1.35,-4.24 -2.94,-4.22 0.19,-1.55 0.4,-3.39 2.06,-1.78 3.1,0.15 5.25,-2.55 7.52,-4.29 0.91,-0.84 5.63,1.48 2.53,2.55 -0.36,1.47 2.3,1.33 1.41,2.66 3.07,1.36 0.3,4.08 -0.53,6.16 1.23,2.67 0.22,5.65 0.3,8.76 -0.33,1.29 -0.37,5.73 -2.35,3.37 -1.49,-1.18 -4.61,-1.6 -3.46,1.11 -0.38,1.17 -0.94,2.88 -2.43,2.94z\",\"name\":\"Italy\"},\"by\":{\"path\":\"m402.72,308.87c0.99,-3.18 0.27,-7 -3.79,-7.04 -0.71,-2.3 3.14,-4.07 4.34,-6.18 -0.26,-5.15 -3.83,-9.19 -5.74,-13.77 2.18,-0.83 4.01,-0.87 5.95,-0.9 0.86,-1.84 2.51,-1.83 3.98,-0.84 -1.05,-1.12 -2.37,-3.07 0.28,-3.17 1.9,0.02 -0.71,-2.58 2.17,-2.24 -1.28,2.76 4.76,1.14 2.24,-1.38 -2.85,-0.47 0.33,-3.89 -1.4,-5.76 0.96,-1.56 2.7,-3.08 2.72,-4.65 2.53,0.76 4.43,-4.49 0.94,-3.47 -1.1,-1.17 0.25,-4.78 1.91,-6.11 2.45,0.48 4.37,-0.43 4.51,-3.22 0.17,-2.25 2.08,-1.78 3.18,-1.85 2.02,-2.32 2.15,2.85 3.69,0.14 1.75,-1.51 3.73,-0.83 3.53,1.45 2.17,2.99 3.24,-2.73 5.87,-2.54 1.93,0.2 3.24,2.17 5.04,1.95 0.25,2.02 -0.47,3.85 1.8,5.15 0.82,1.65 -1.87,4.51 1.47,4.95 2.1,-0.08 0.99,1.32 1.56,1.96 1.72,2.18 3.98,3.94 6.71,3.73 0,1.84 0.71,4.69 2.92,2.85 2.09,-1.22 3.09,0.78 3.28,1.76 2.02,-0.38 3.13,1.46 1.26,2.31 -0.06,3.07 -3.04,4.09 -5.35,2.65 -3.54,0.27 -2.85,5.57 0.51,5.52 0.97,2.55 1.33,5.72 3.91,7.42 -2.66,1.35 -6.88,2 -6.85,5.76 -1.23,2.53 1.43,5.57 1.33,7.2 -1.16,-1.33 -5.51,-3.73 -5.13,-0.77 -2.24,-2.52 -3.75,4.16 -4.59,0.03 -1.77,-2.65 -4.04,1.4 -4.28,1.56 -1.22,-2.58 -2.82,1.6 -3.58,-0.67 -1.01,0.66 -2.93,1.68 -4.34,1.01 -1.39,0.16 -1.96,2.41 -2.67,0.56 -2.3,-2.34 -5.69,0.72 -8.43,-0.73 -2.87,-0.21 -5.7,0.69 -8.51,0.87 -1.69,1.51 -4.3,1.17 -5.72,2.79 -0.82,1.63 -1.2,4.18 -3.37,2.88 -0.54,-0.03 -1.11,0.27 -1.34,0.78z\",\"name\":\"Belarus\"},\"pl\":{\"path\":\"m378.8,342.69c0.85,-2.71 -2.77,-1.44 -3.2,-3.81 -2.16,-0.74 -2.68,4.74 -4.1,1.6 -1.34,-0.42 -0.38,-2.05 -2.3,-2.3 -1.38,-1.23 -0.72,-3.2 -2.99,-2.63 -1.39,-1.14 -3.17,-0.83 -4.08,-0.27 -2.65,-1 1.12,-2.8 -1.66,-3.95 -1.04,2.08 -3.71,0.51 -5.13,-0.34 -2.56,-1.21 -1.29,2 -1.13,2.64 -1.27,1.67 -2.44,1.3 -2.92,-0.65 -1.25,-0.75 -2.67,-1.29 -0.72,-2.16 1.16,-2.1 -2.17,-2.93 -3.11,-1.63 -1.5,-2.25 -5.49,-1.16 -6.45,-4 -1.21,-1.39 -2.59,1.06 -1.9,-1.41 0.23,-2.18 -0.48,-4.58 -2.34,-5.49 -1.37,-2.65 0.61,-5.37 -0.78,-8.1 -2.17,-1.37 0.53,-5.96 -3.41,-5.97 -3.09,-2.11 2.9,-5.25 0.3,-8.13 -0.64,-1.64 -2.11,-4.93 -1.01,-5.69 2.39,-0.86 4.49,-2.6 7.02,-3.34 1.88,-0.91 4.34,-1.13 5.97,-2.18 0.73,-2.97 3.72,-4.13 6.19,-5.25 2.44,-1.51 5.22,-3.64 8.26,-2.74 0.34,2.92 2.37,6.29 5.83,5.11 2.32,-0.46 3.66,-2.87 6.19,-1.88 5.94,0.22 12.06,0.04 17.77,-1.75 2.19,-1.89 4.37,-0.56 6.59,0.69 0.91,5.68 5.67,10 6.52,15.73 -0.74,2.77 -4.55,3.76 -4.71,6.89 0.95,2.08 5.51,0.97 4.43,4.48 -0.75,3.1 1.11,5.48 1.99,8.14 0.77,2 4.89,2.48 3.07,4.57 1.18,1.35 3.03,3.77 0.15,4.64 -2.63,0.49 -3.02,4.28 -4.54,6.17 -0.82,2.29 -3.04,4.17 -2.56,6.78 1.11,1.72 -0.12,4.53 2.39,4.91 -2.96,0.2 -5.66,-0.81 -7.88,-2.64 -2.12,-1.23 -4.34,-0.31 -6.37,0.12 -1.06,0.6 -0.02,2.66 -2.03,1.15 -2.7,-1.27 -4.67,0.77 -6.02,2.87 -0.44,-0.92 -1.49,0.48 -1.34,-0.18z\",\"name\":\"Poland\"},\"jo\":{\"path\":\"m566.3,519.26c-0.01,-4.69 -2.26,-8.97 -3.12,-13.51 1.51,-3.32 4.45,-0.15 6.76,0.1 3.02,0.33 6.94,0.22 8.51,-2.87 4.44,-5.57 8.37,-11.53 12.83,-17.08 1.86,2.51 3.76,5 5.38,7.68 -2.06,2.03 2.19,4.71 3.12,1.72 0.91,2.72 -2.48,4.53 -4.03,6.38 -4,3.47 -8.47,6.39 -12.72,9.51 -2.44,0.61 -3.15,3.3 -0.46,3.9 2.58,1.36 5.17,2.72 7.71,4.17 -7.99,0 -15.99,-0 -23.98,0z\",\"name\":\"Jordan\"},\"gr\":{\"path\":\"m449.88,508.26c-1.41,-0.44 -0.91,-2.43 -2.98,-2.05 -2.92,-1.02 -4.66,0.87 -7.49,-0.12 -2.89,2.86 -3.34,-3.03 -1.84,-3.28 2.13,1.48 4.85,0.78 6.99,2.27 2.66,-1.89 5.67,-2.41 8.68,-1.61 1.64,-0.07 3.7,-0.37 4.57,-0.83 -1.03,2.5 2.95,2.63 3.64,0.39 1.59,-1.01 2.86,-0.15 1.23,1.36 -4.14,0.67 -8.27,1.86 -12.04,3.72l-0.39,0.1 -0.37,0.03 0,0z m-26.29,-13.55c-0.61,-2.64 -1.46,-5.84 -4.37,-6.76 -3.02,-0.62 -1.68,2.8 -1.92,4.11 -2.48,0.25 -0.03,-2.58 -2.33,-3.13 -1.56,-1.69 2.11,-3.33 -0.42,-5.29 -1.75,-1.46 -3.48,-2.23 -4.88,-3.8 -1.71,-0.32 1.67,-2.18 0.95,-3.89 1.31,0.41 3.43,-0.58 4.2,-2.4 2.31,-0.03 5.27,1.8 8.03,2.01 1.1,0.72 3.08,0.98 3.24,1.46 1.77,0.36 1.5,3.47 4.29,3.78 1.97,0.86 -3.33,1.22 -3.75,-0.39 -3.29,-1.87 -3.6,3.04 -0.88,3.97 1.42,2.4 3.54,4.49 2.98,7.25 0.93,1.21 1.93,2.16 0.11,0.68 -1.13,-1.37 -3.59,-4.36 -5,-1.33 -0.38,1.2 -0.28,2.48 -0.25,3.72z m12.62,-17.67c-0.61,-1.76 -3.37,-2.18 -4.61,-3.83 -1.54,-1.35 -1.12,2.07 -3.22,1.63 -1.32,1.11 -3.33,0.37 -1.06,-0.31 2.53,-1.38 -0.23,-3.22 -1.98,-2.17 -2.19,0.64 -2.76,-3.59 -4.29,-0.5 0.28,-1.81 -1.78,-2.98 -1.95,-0.63 -1.85,0.67 -5.66,-0.17 -7.42,2.31 -1.43,-1.51 -2.69,-1.73 -3.58,0.32 -0.06,-3.13 -3.02,-4.71 -4.64,-5.97 -0.05,-3.03 -3.45,-4.15 -5.3,-5.69 0.58,-2.13 -4.66,-2.22 -1.22,-2.7 1.45,0.13 1.31,-1.81 1.97,-2.79 -2.74,-2.59 4.57,-2.51 2.29,-5.81 0.57,-2.27 3.93,-4.04 1.77,-6.57 2.29,-1.19 5.68,-0.59 7.21,-3.12 0.92,-4.2 5.51,-0.91 7.7,-3.66 0.88,-0.81 0.03,-3.12 2.26,-2.13 2.68,-1.49 5.94,-1.98 8.75,-3.4 1.35,-1.69 4.25,-2.43 5.72,-0.71 1.88,0.93 3.48,-0.95 5.39,0.66 2.83,0.48 5.06,-1.99 7.75,-2.56 2.63,-1.48 -0.92,-3.81 -0.19,-4.93 2.53,-0.82 6.54,2.78 3.07,4.45 -2.66,1.03 1.16,6.08 -1.92,6.2 -2.59,-1.16 -5.58,1.42 -8.08,-0.62 -2.31,-0.06 -3.98,4.61 -5.94,1.87 -2.75,-0.21 -2.93,5.39 -5.82,3.29 -2.56,0.13 -2.19,2.87 -0.61,3.88 1.51,1.31 -0.02,1.67 -0.46,3.12 -2.01,-0.91 -2.94,1.12 -4.72,-0.3 -3.05,1.25 -3.01,-2.2 -1.76,-3.97 -0.09,-0.54 -2.81,1.81 -3.44,2.49 -1.02,1.92 0.18,3.87 -0.21,6.03 1.55,1.98 3.8,3.4 4.84,5.84 0.92,0.8 4.25,2.4 3.42,2.64 -2.14,-2.19 -4.85,-0.02 -3.78,2.46 1.31,0.13 3.2,1.7 0.6,2.21 -1.13,0.04 -4.23,2.36 -2.68,2.49 2.62,-1.25 4.96,1.17 7.41,0.98 0.52,2.36 2.91,0.77 3.98,2.53 2.06,0.36 4.93,0.25 3.64,2.95 0.1,1.33 1.96,3.02 1.13,4.05z m-32.41,-12.35c-2.66,1.97 2.35,4.76 3.65,1.72 0.88,-3.08 -2.48,0.37 -3.25,-1.63l-0.4,-0.09 0,0z m1.2,12.17c-2.12,0.67 -3.94,-2.49 -2.24,-3.05 -0.52,2.11 1.79,2.11 2.24,3.05z m35.21,-4.75c-1.33,-0.45 -3.15,-2.25 -0.48,-1.45 1.91,-0.84 2.27,1.01 0.48,1.45z m-3.1,-3.76c-1.98,-1.68 -5.22,0.85 -5.86,-2.11 -1.43,-1.48 -5.05,-2.2 -5.77,-2.78 2.78,-2.67 4.14,2.1 7.15,1.68 1.66,0.78 3.06,-0.62 3.9,1.22 0.4,0.59 0.43,1.32 0.58,1.99z m-10.1,-17.81c-3.53,-1.73 2.32,0.07 0,0z m3.59,-1.57c-2.32,-1.62 -0.44,-1.62 0.45,0.12l-0.11,0.22 -0.34,-0.34z\",\"name\":\"Greece\"},\"tm\":{\"path\":\"m679.06,344.59c-1.21,-0.72 -0.78,-2.05 -2.51,-2.48 -0.91,-2.53 -0.44,-5.74 -2.11,-7.9 1.43,2.3 3.65,0.44 4.81,-0.09 -0.04,3.47 0.02,6.95 -0.03,10.42l-0.16,0.04z m-9.11,-14.43c-1.83,0.29 -2,-1.85 -2.97,-2.07 -2.67,-0.77 0.57,-4.63 0.48,-6.52 1.65,-3.13 3.89,-6.16 6.88,-8.09 1.36,-0.18 5.09,-1.73 4.9,0.43 0,2.65 0,5.3 0,7.95 -2.35,-1.52 -3.83,-5.43 -6.79,-5.11 -2.41,2.22 -6.24,4.38 -5.17,8.26 -0.05,1.27 0.71,3.09 1.95,2.4 0.34,0.89 0.41,1.85 0.72,2.75z m9.29,-40.46c-2.98,-4.77 -6.29,-9.32 -9.41,-14 0.44,-3.11 3.69,-4.89 4.74,-7.82 1.56,-2.45 3.21,-4.85 4.68,-7.37 0,9.73 0,19.46 0,29.19z\",\"name\":\"Turkmenistan\"},\"kz\":{\"path\":\"m665.18,326.25c-2.97,-1.86 -1.2,-5.67 -2.65,-8.21 0.53,-3.17 -3.51,-2.8 -4.88,-0.83 -1.79,-1.67 -2.48,2.95 -4.91,0.84 -1.43,-2.21 -3.22,-0.68 -4.76,0.52 -0.4,-3.09 -3.28,-5.18 -6.16,-5.75 -2.02,-1.36 -4.24,-5.19 -6.86,-2.37 -2.9,1.87 -4.15,-4.1 -0.51,-3.35 1.06,-1.32 1.8,-1.79 3.42,-0.84 1.53,-0.78 2.76,-2.24 4.06,-3.11 -1.44,-2.18 -5.78,0.43 -7.07,-2.22 0.12,-1.34 3.47,-2.2 0.83,-3.45 -1.26,-2.14 2.16,-2.43 1.45,-4.52 2.51,-0.62 4.01,-2.7 6.42,-3.67 1.55,-0.68 5.82,-1.56 4.27,-3.73 -2.44,0.42 -5.53,1.2 -4.64,-2.51 0.27,-3.12 -0.67,-6.7 -3.34,-8.56 -1.46,-0.11 0.78,-3.59 -1.86,-3.15 -1.5,-2.77 -4.84,0.02 -6.51,0.7 0.1,2.2 -0.93,4.69 -3.45,3.61 -2.4,0.56 -6.57,-0.38 -7.49,3.29 -0,2.58 -2.65,3.31 -2.68,6 -1.27,1.57 -1.07,5.37 -3.43,5.36 -2.12,-0.08 -2.2,2.62 -2.46,3.63 -1.26,0.74 -5.86,0.39 -4.64,-0.82 3.5,0.56 3.47,-4.4 0.06,-4.32 -3.14,-1.51 -5.73,-4.02 -8.93,-5.36 -2.47,-0.32 -4.25,2.11 -6.54,2.07 -0.12,1.28 0.37,2.59 -1.35,1.17 -1.8,-0.93 0.01,-2.79 -2.21,-3.3 0,-2.52 -4.2,-0.23 -5.74,-0.66 -0.96,-2.72 -0.8,-5.85 -0.41,-8.82 0.73,-3.23 -4.34,-1.07 -3.74,-4.61 -1.48,-2.21 -1.17,-5.16 0.32,-7.28 -2.58,-1.5 -1.53,-6.73 1.82,-4.04 2.29,0.54 4.78,3.98 7.13,1.98 1.97,-1.65 2.09,-5.06 -0.41,-5.79 -0.5,-2.08 -4.31,-2.93 -1.9,-4.7 0.1,-1.7 1.79,-4.1 2.05,-4.93 -2.7,-0.86 -1.25,-3.39 0.39,-3.59 0.3,-2.73 3.83,-4.97 2.24,-7.88 -1.16,-1.26 2.12,-0.49 0.87,-2.37 -0.73,-0.82 1.71,-0.82 1.99,-1.86 2.14,-0.45 -1.05,2.08 1.69,2.02 1.48,-0.55 1.41,-1.96 2.93,-1.7 0.29,-1.63 -1.06,-3.26 1.01,-4 0.5,-1.63 0.88,-2.2 1.87,-0.46 3.2,2.4 4.8,-3.1 7.46,-3.43 1.62,1.55 3.73,2.04 5.43,0.37 1.27,1.42 3.01,1.43 4.62,1.61 -0.26,2.56 4.05,4.44 3.68,0.87 -0.11,-2.04 -2.23,-3.06 -3.52,-3.49 2.49,-1.89 5.28,1.44 8.06,-0.13 2.65,1.71 2.89,-3.09 2.88,-4.82 -0.94,-1.46 1.32,-2.87 0.36,-4.29 1.64,0.4 1.75,-1.1 1.34,-1.85 1.08,-2.25 2.79,-1.39 4.44,-0.52 1,-0.8 1.78,-2.46 2.98,-2.01 -1.89,-1.21 -2.16,-3.64 0.61,-3.9 -0.26,-1.23 0.14,-1.29 1.28,-1.45 1.06,-0.94 2.07,2.58 4.01,1.26 1.98,1.74 4.96,-3.12 5.37,-1.36 0.29,1.89 3.37,-0.99 2.39,-2.55 -0.11,-1.94 -1.41,-4.21 1.46,-3.17 2.91,-0.36 4.26,-3.79 5.34,-6.17 1.47,-2.93 -2.47,-4.1 -2.09,-6.64 -1.36,-2.25 -4.48,-0.11 -5.91,0.2 -2.22,-2.09 -4.58,3.81 -4.91,0.16 -1.29,-0.68 -2.71,2.23 -3.65,0.73 1.29,-1.47 1.19,-4.25 2.39,-6.18 1.51,-3.13 -2.02,-3.28 -3.58,-4.22 -3.1,0.97 0.81,-3.99 -1.61,-4.03 1.01,-2.42 4.84,-2.6 5.47,-5.2 -0.01,-2.9 -4.66,-1.68 -5.74,0.02 -1.13,1.71 -4.5,-0.24 -1.75,-0.92 2.16,-2.49 -2.77,-3.66 -2.05,-1.2 -2.33,3.55 -0.85,-4.14 -3.83,-1.64 1.26,-0.48 -0.31,-3.76 1.92,-2.68 1.3,1.04 0.21,-2.26 2.14,-1.3 2.74,-0.21 -1.15,-2.68 1.49,-3.26 1.26,2.1 3.9,-0.29 1.53,-1.19 0.54,-2.35 2.7,-4.74 3.28,-7.51 1.48,-0.31 3.12,-1.58 1.37,-2.69 1.12,-2.77 3.18,-4.87 5.44,-6.15 -0.1,-1.8 -3.04,-1.6 -1.06,-3.51 0.73,-2.38 2.55,-3.81 3.48,-6.49 2.08,-2.53 2.36,-5.49 3.47,-8.34 0.29,-1.69 3.72,-3.96 0.35,-4.97 -1.01,-0.43 2.31,-2.04 0.29,-3.41 -1.75,-1.68 3.22,-0.78 0.65,-2.37 -1.73,-0.49 3.06,-0.82 1.8,-2.5 2.25,-1.54 6.79,-0.26 5.35,-4.64 -0.2,-2.91 3.08,-0.72 4.32,0.28 1.69,1.75 4.12,-0.2 4.78,2.52 1.5,0.9 1.01,3.62 3.74,3.35 2.67,0.01 -0.81,-3.38 2.11,-2.14 1.93,-0.51 -0.97,-4.41 1.41,-3.27 0,52.65 0,105.3 0,157.95 -2.28,4.16 -5.07,8.03 -7.49,12.09 -2.11,1.94 -4.29,5.26 -1.49,7.58 3.01,4.53 6.37,8.91 8.98,13.65 0.02,6.62 -0.04,13.29 0.04,19.87 -3.05,0.34 -6.58,0.54 -8.5,3.49 -2.48,2.8 -4.81,5.91 -5.35,9.73 -0.09,0.46 -0.18,0.92 -0.25,1.38z\",\"name\":\"Kazakhstan\"},\"fi\":{\"path\":\"m382.62,208.07c0.7,-3.07 -2.78,1.32 -3.86,-1.32 0.05,-0.96 1.56,-3.75 -0.71,-2.21 -1.13,1.69 -1.33,-1.45 -2.92,-0.68 -0.94,0.89 -2.97,-0.9 -3.55,-0.42 -0.14,-2.36 -1.97,-0.15 -2.25,-0.03 -0.63,-1.67 -0.91,-3.6 -2.08,-5.17 1.86,-0.74 1.72,-4.06 0.26,-5.25 -0.34,-1.47 3.17,-0.38 1.07,-2.02 -1.2,-2.15 -2.78,-4.06 -3.52,-6.25 0.62,-2.08 -0.63,-3.97 -1.49,-4.42 0.49,-1.2 -0.5,-2.29 -0.95,-2.29 0.13,-1.71 3.82,-4.59 2.52,-5.52 -3.07,-0.18 0.32,-3.17 1.17,-0.45 1.02,-1.23 3.05,-2.66 2.12,-4.84 0.01,-1.7 0.15,-2.94 1.36,-1.21 0.12,-2.42 1.26,-4.91 3.64,-5.85 -0.72,-2.45 1.54,-4.8 2.24,-7.01 -0.27,-2.84 0.9,-5.24 3.71,-6.24 1.6,-1.13 1.77,-3.36 -0.51,-2.84 -0.44,-2.27 -0.12,-5.32 -2.74,-6.02 -2.3,1.99 -2.43,-3.68 -4.97,-1.88 -1.75,-2.03 -4.37,-4.52 -3.48,-7.48 1.52,-3.03 -0.83,-5.16 -2.34,-7.18 -0.2,-1.46 0.87,-4.46 -1.6,-3.74 -0.01,-2.39 -0.15,-4.83 -1.27,-7.01 -2.48,-1.84 -4.57,-4.14 -8.05,-4.18 -1.93,-1.7 -6.43,-2.88 -5.46,-6.12 -0.41,-2.16 1.14,-3.53 2.73,-1.48 2.59,1.31 1.85,6.17 5.39,5.44 2.27,0.35 4.34,-0.45 4.98,-2.51 2.4,-0.26 6.27,3.96 5.78,-0.87 -0.39,-2.02 3.32,-1.43 1.97,-3.98 -1.32,-3.02 -2.11,-7.03 -0.35,-9.99 -0.31,-2.74 4.21,-0.11 4.22,-3.35 1.47,-1.91 3.36,2.08 5.49,1.78 2.95,0.9 3.14,3.84 1.7,6.03 1.41,1.64 0.21,2.38 -0.46,3.84 1.14,0.8 2.75,1.02 1.72,2.87 -0.47,3.13 2.02,6.77 5.45,6.28 1.67,2.35 6.13,3.59 3.92,7.14 -0.75,2.27 -1.97,4.85 -0.96,7.21 3.59,3.29 6.5,7.25 9.05,11.36 0.06,1.49 -2.83,0.38 -0.84,2.06 -0.22,2.17 0.21,4.77 1.29,6.07 -1.26,3.74 5.08,3.34 3.58,6.82 0.48,3.1 6.13,1.5 4.41,5.52 -0.25,1.99 -2.95,4.48 0.53,5.03 2.93,1.69 6.43,2.67 8.87,5.07 1.06,2.48 -0.3,5.24 -0.57,7.75 -2.26,6.49 -4.21,13.14 -7.27,19.3 -1.55,2.69 -3.59,5.26 -4.3,8.32 -1.76,0.21 -3.5,-1.24 -4.38,1.19 1.52,0.77 -3.01,1.75 -1.49,-0.16 -0.76,-2.31 -1.99,0.16 -1.56,1.47 -1.82,-2.09 -4.5,1.44 -1.45,2.01 0.62,2.53 -3.67,-2.15 -3.14,-0.28 0.89,2.06 -2.52,3.25 -2.85,3.52 -2.72,0.33 -4.14,2.39 -6.64,3.79l-0.57,0.27 -0.58,0.1 0,0z\",\"name\":\"Finland\"},\"de\":{\"path\":\"m302.45,372.15c0.39,-0.91 1.99,-2.77 0.16,-1.49 -1.57,0.93 -2.11,-2.91 -4.19,-2.08 -2.04,1.85 -3.44,-2.27 -6.01,-1.15 -2.15,0.46 -2.02,-2.87 -4.5,-1.23 -1.72,0.52 0.38,3.76 -1.44,1.73 -1.84,0.2 -4.84,0.84 -5.69,-0.07 -0.64,-1 1.16,-4.13 0.65,-5.99 1.9,-2.36 0.91,-6.25 3.86,-7.87 2.56,-1.63 0.59,-4.12 -1.86,-3.67 -2.56,0.2 -2.84,-3.15 -5.48,-1.32 -1.23,0.08 -2.11,-2.54 -3.28,-1.12 -0.17,-2.33 -4.09,-3.23 -1.38,-5.35 1.81,-3.01 -5.32,-3.18 -1.88,-6.63 1.67,-1.33 2.21,-2.89 0.22,-4.22 1.95,-2 -1.2,-0.75 -1.34,-2.77 1.01,-1.22 0.18,-2.51 -0.16,-3.21 1.78,-1.86 2.88,-5.05 1.22,-7.64 -2.19,-2.06 0.71,-2.52 2.29,-1.67 2.39,0.34 3.33,-2.08 3.64,-3.33 2.38,-1.19 2.15,-5.11 -0.59,-5.64 -0.03,-1.55 3.42,0.08 2.83,-2.66 0.31,-2.54 1.52,-4.9 2.38,-7.37 -0.34,-0.18 -3.53,0.96 -2.22,-1.41 0.9,-2.9 4.25,-1.28 6.2,-2.15 0.16,2.03 2.57,6.54 4.4,3.34 0.14,-1.85 -1,-6.59 2.18,-4.76 1.27,0.28 4.88,-0.75 2.09,-1.66 -3.15,0.44 1.18,-4.81 -1.98,-5.31 4.2,-1.72 -2.92,-4.5 -0.43,-6.3 2.37,1.37 6.56,0.38 7.64,2.55 -0.45,0.53 1.55,0.68 -0.04,1.71 -1.46,1.22 0.47,2.21 1.51,1.23 -1.09,2.31 1.04,2.07 1.81,0.68 1.67,1.18 3.81,1.56 5.14,0.49 0.21,1.77 -4.56,3.93 -2.04,5 1.38,0.2 3.65,-1.17 3.27,1.31 2.66,-0.01 2.46,-4.21 4.91,-4.12 1.43,1.57 3,-1.39 3.56,-2.49 0.61,-2.1 3.54,-0.7 4.16,-0.17 0.88,1.8 2.57,3.83 4.93,3.32 -0.95,4 4.51,3.57 4.6,6.93 3.14,3.28 -3.49,6.24 0.16,9.19 2.04,0.76 2.91,2.01 2.23,4.17 0.93,1.99 2.9,4.81 0.48,6.79 1.68,1.23 1.03,4.11 3.18,4.83 0.68,1.92 0.82,5.65 -0.66,6.5 -0.87,-1.78 -4.46,-3.53 -3.95,-0.41 1.16,0.88 -2.8,1.08 -3.3,2.22 -2.5,0.18 -3.71,2.69 -5.8,3.41 -0.73,-0.12 -0.57,1.65 -2.06,0.72 -2.78,-0.99 -2.28,4.11 -4.17,1.96 -3.51,0.44 1.56,4.5 2.19,5.46 -2.26,2.79 1.42,6 3.88,7.15 1.53,1.88 3.04,3.44 5.43,4.44 2.44,1.22 2.24,4.86 -1.02,3.8 -0.57,1.52 -0.37,3.53 -2.79,3.73 -3.29,0.46 -2.9,3.65 -1.01,5.5 0.76,1.93 -3,3.3 -3.36,1.75 -0.45,-0 -3.6,-1.29 -2.93,0.98 -3.48,-0.65 -5.56,1.87 -8.47,2.95 -1.59,-0.45 -2.06,-3.03 -4.27,-1.95 -2.85,-1.05 -0.37,3.13 -2.89,3.37z m-6.7,-79.27c-0.21,2.06 4.44,6.44 3.78,2.2 -1.59,0.14 -2.26,-2.95 -3.66,-2.25L295.75,292.88z m29,76.43c-1.59,-1.17 -0.3,-3.24 0.69,-1.13 -0.04,0.43 -0.23,0.99 -0.69,1.13z m-0.01,-83.07c-2.42,-0.16 -2.07,-4.22 0.32,-2.83 -1.17,-1.29 -0.5,-0.74 0.89,-0.58 -1.82,1.06 2.32,2.92 -0.86,3.34l-0.35,0.07 0,0z\",\"name\":\"Germany\"},\"se\":{\"path\":\"m323.06,272.38c-2.85,0.68 -1.5,-2.92 -0.88,-3.47 -1.34,-1.73 -2.37,-3.77 -4.04,-5.01 0.79,-1.22 -1.53,-2.8 1.01,-1.48 2.77,0.18 -2.19,-2.84 0.98,-2.65 2.38,-2.15 -2.21,-3.59 -2.38,-5.5 -2.18,-0.93 -1.38,-4.24 -3.57,-5.03 -0.5,-2.35 -1.05,-4.69 -2.37,-6.57 0.36,-2.06 3.34,-6.36 -0.08,-6.96 -1.38,2.23 -3.39,1.39 -2.89,-1.18 0.66,-1.66 -0.9,-5.32 -0.3,-5.55 1.22,1.95 2.5,1.63 3.29,-0.5 0.91,-2.52 -0.9,-5.03 -0.38,-7.57 2.08,-1.14 -0.02,-3.96 3.05,-4 2.39,-1.51 1.37,-4.54 1.71,-6.85 0.8,-2.58 -4.53,-6.31 0,-6.91 1.04,-0.81 1.22,-3.31 1.37,-4.79 -1.12,-2.38 -6.01,-2.81 -4.1,-6.25 1.84,-3.74 -1.45,-6.92 -1.02,-10.47 0.52,-2.44 0.53,-5.73 -0.14,-7.32 0.64,-2.96 1.19,-6.43 4.34,-7.91 2.35,-0.49 6.23,1.31 6.51,-2.71 0.96,-3.43 -4.73,-4.28 -1.85,-7.71 0.9,-2.93 3.32,-5.66 2.42,-8.87 0.15,-1.92 0.67,-3.87 -0.11,-5.73 -1.01,-2.32 3.73,-0.74 3.99,-3.33 -0.13,-2.25 -0.54,-4.21 1.52,-5.81 2.69,-2.56 2.7,-6.48 0.46,-8.94 2.93,-1.39 1.66,-4.89 3.52,-7.09 1.35,-0.88 5.1,1.96 4.84,-1.65 -0.51,-1.95 -1.78,-6.23 1.75,-4.92 2.24,0.45 5.5,2.66 7.12,-0.07 1.29,-1.53 -2.75,-1.44 -0.66,-3.53 0.95,-1.42 0.76,-3.57 -0.83,-4.28 3.02,-0.52 2.64,2.5 5.35,3.5 2.17,2.8 6.24,2.01 8.45,4.17 1.81,1.26 3.78,2.76 3.22,5.22 1.03,1.27 -0.68,4.42 1.98,4.24 -0.85,2.83 1.11,4.63 2.62,6.51 0.04,2.86 -1.49,6.25 1.05,8.57 1.6,1.29 3.31,4.27 -0.1,3.45 -1.76,0.14 -2.91,-0.92 -2.17,1.42 -0.95,1.6 -5.22,-2.83 -4.14,0.58 0.84,1.65 -2.05,2.45 -1.57,1.13 -2.06,-0.65 -0.53,1.54 0.66,1.49 -0.6,0.2 -1.52,0.57 -0.3,1.82 -1.49,0.26 -4.7,1.58 -1.68,2.64 2.32,2.25 -3.2,4.64 -1.02,7.19 1.54,0.9 4.4,2.82 1.64,4.33 -1.68,2.21 -0.66,5.89 -3.12,7.17 -0.94,1.59 -3.16,2.96 -4.81,3.45 -0.21,1.34 -1.22,2.8 -1.35,4.54 -1.77,-1.72 -2.61,0.56 -2.76,1.85 -1.12,0.81 -2.56,2.13 0.01,2.01 -0.44,1.31 -4.33,0.73 -2.47,3.43 -0.06,0.73 -0.49,2.94 -1.88,1.95 -2.76,-0.24 -2.07,3.37 0.06,3.69 -0.77,1.95 -1.46,4.89 0.24,6.81 -3.74,-1.85 -2.36,2.41 -0.94,3.91 0.18,1.27 -3.07,0.5 -0.73,1.44 0.84,1.85 1.12,4.66 1.43,6.67 -0.32,2.79 5.02,-0.22 4.86,2.53 0.7,1.96 4.04,1.71 4.48,1.82 -3.19,-0.43 -0.28,3.53 1.17,3.32 1.13,1.08 3.55,2.93 0.69,3.17 -0.96,1.32 -2.08,3.54 -3.42,3.71 1.54,1.27 -2.79,1.25 -1.63,-0.68 0.49,-2.21 -4.13,-4.8 -3.64,-1.69 1.43,0.51 0.2,2.21 2.13,2.69 -1.79,0.21 -3.94,-2.79 -5.52,-0.41 -0.59,-1.15 -2.36,-1.3 -1.99,0.35 -2.53,-0.76 -3.68,2.49 -1.03,1.96 1.95,-0.49 4.14,0.17 6.05,0.67 -0.71,2.97 4.28,-1.28 2.88,1.93 -0.14,2.13 -0.95,4.88 -3.12,4.77 0.18,1.44 -0.14,1.56 -2.15,1.24 -1.48,-0.93 -5.69,1.16 -2.24,1.59 0.93,-0.93 4.88,0.08 2.51,0.95 -1.3,-0.74 -2.65,-1.15 -1.6,0.7 1.1,0.49 3.58,1.85 1.37,2.42 -0.48,1.93 2.49,4.34 -0.83,3.78 -1.22,1.55 3.46,2.55 0.79,3.59 -0.59,1.57 1.8,1.83 -0.1,3.07 -0.36,1.71 1.22,3.68 -0.24,4.3 0.8,1.29 0.72,4.62 -0.49,4.51 -0.92,1.99 -0.01,8.09 -3.9,5.74 -0.75,-0.04 -1.2,1.04 -1.28,-0.03 -1.81,1.13 -4.91,0.3 -5.24,2.54 -3.47,0.86 -2.77,5.15 -1.48,7.22 -1.25,2.12 -3.78,-0.71 -5.21,1.44 -0.58,0.2 -1.19,0.28 -1.8,0.28z m21.76,-13.69c-0.6,-1.64 -0.03,-5.51 0.58,-5.62 -0.47,1.84 -0.07,3.79 -0.58,5.62z m11.16,-10.28c-1.47,-2.04 -0.57,-3.97 -1.15,-6.17 0.13,-1.54 3.5,-5.82 3.93,-3.32 -1.59,1.67 -1.23,4.3 -0.42,5.29 -0.56,1.58 -2.33,2.58 -2.36,4.21z m-6.04,-22.62c-0.58,-0.9 -1.01,-2.64 0.37,-3.19 0.51,-2.57 3.62,1.5 0.73,1.06 -0.71,0.44 -0.93,1.57 -1.1,2.14z m3.41,-4.74c-1.71,-0.56 1.15,-0.98 0,0z\",\"name\":\"Sweden\"},\"no\":{\"path\":\"m283.92,239.69c-2.05,0.82 -1.04,-2.38 -3.04,-0.45 -2.25,0.63 -2.45,-1.19 -0.48,-1.71 1.16,-1.98 -1.94,-1.69 -2.54,-0.89 -1.88,-1.69 -4.73,-3.13 -5.46,-5.54 0.16,-1.17 0.04,-2.84 1.26,-1.53 2.45,-0.31 0.5,-3.28 2.63,-3.15 -0.92,-1.74 3.6,-1.24 2.16,-3.19 -1.49,-0.01 -3.77,0.75 -1.5,-1.08 1.07,-1.87 -4.03,-2.48 -3.95,0.31 -0.43,1.99 -1.31,-1.27 0.03,-1.59 -0.59,-1.71 3.37,0.46 2.3,-1.73 2.11,-0.09 3.7,-3.31 0.62,-1.92 -2.12,1.06 -0.9,-1.62 0.69,-0.69 -1.77,-1.8 3.78,-2.21 0.57,-3.6 -0.56,-4.05 -3.61,3.53 -2.9,-0.4 -0.09,-1.07 2.45,-2.14 0.56,-2.38 1.23,-1.75 0.14,-1.45 -1.12,-1.67 -0.48,-2.03 3.39,-0.54 1.29,-2.62 -1.57,-0.11 -2.3,1.01 -2.92,1.83 0.23,-1.47 -0.96,-1.1 0.71,-1.97 1.17,-0.81 3,-0.92 0.68,-1.9 -1.68,1.41 -3.48,-0.55 -1.63,-1.27 2.35,2.15 4.25,-2.5 6.35,0.43 1.83,1.86 1.2,0.18 2.05,-1.15 2.54,-0.3 -0.18,4.44 3.17,3.6 2.08,-1.21 -0.36,-4.05 -1.72,-4.82 -1.87,-1.19 -2.86,1.17 -4.77,-0.24 -1.71,-0.32 -5.74,2.24 -5.21,-1.12 1.24,-0.84 -1.48,-1.91 1.02,-1.63 0.93,-0.21 -1.41,2 0.86,1.55 1.15,0.42 4.11,-2.74 2.32,-2.56 -1.17,0.24 -3.58,0.07 -2.04,-0.78 0.01,-1.15 -2.86,-0.72 -1.37,-2.6 1.92,-1.21 1.67,-2.06 2.44,-3.76 1.13,0.7 1.55,1.95 2.59,0.89 1.71,1.83 3.67,-1.21 0.78,-1.26 -1.72,-1.7 2.02,-2.98 1.47,-0.81 -0.08,1.94 2.1,2.28 1.49,0.15 -1.54,-0.73 -0.39,-3.26 1.26,-2.04 -0.9,2.54 1.99,2.46 3.2,1.29 -0.57,-1.07 -3.07,-0.84 -2.76,-2.61 -1.93,-0.78 -0.88,-1.18 0.63,-1.75 -0.31,2.53 1.54,0.84 1.46,0.89 0.76,2.66 4.97,0.16 2.35,-0.64 -1.68,1.13 0.97,-2.47 -1.62,-1.35 -1.33,0.1 -1.92,0.19 -0.62,-0.55 0.77,-1.45 -3.3,-3.11 -0.25,-2.56 1.36,2.34 4.5,0.23 4.77,-0.42 0.76,1.21 1.99,4.78 3.9,2.5 -0.19,-1.38 -1.61,-1.13 -0.15,-1.91 -0.52,-0.88 -3.96,-0.82 -1.31,-0.98 2.56,1.07 3.94,-2.68 1.6,-3.22 -2.38,3 -0.29,-2.57 1.23,-0.79 -1.13,2.54 3.47,1.05 2.52,-0.37 0.79,-1.1 1.41,-2.4 1.63,-0.68 1.42,0.16 -1.15,3.34 1.22,2.27 1.23,1.9 3.05,-0.32 1.25,-1.45 2.02,0.81 5.84,0.23 4.08,-2.68 2.55,-0.11 3.44,-2.71 1.89,-3.48 2.7,-0.44 1.04,-4.25 -0.61,-2.47 -0.94,0.99 -4.98,3.53 -3.32,4.59 1.36,-0.14 -3.55,4.36 -3.84,1.11 1.8,-0.4 1.59,-2.97 -0.14,-1.47 -1.54,1.59 -1.58,-0.15 0.05,-0.55 1.29,-0.12 3.11,-2.23 0.74,-1.96 0.49,-1.84 0.69,-1.57 2.55,-2.66 -0.01,-1.8 3.87,-1.75 1.44,-3.46 1.6,-3.11 2.62,3.25 4.94,0.36 -0.07,-0.91 1.83,-2.92 -0.44,-2.32 -1.97,0.37 0.51,-3.35 0.91,-3.77 2.46,-0.4 5.23,-2.14 6.04,-4.52 -0.69,-1.41 -1.97,0.46 -0.84,-1.25 0.83,-2.9 -4.58,-0.06 -1.84,-2.23 2.88,-0.42 -1.2,-4.08 2.2,-4.17 1.93,2.26 1.6,-1.88 -0.02,-2.41 1.79,-0.55 2.5,-1.55 4.25,-0.42 0.51,-2.76 -3.45,-2.33 -4.43,-3.58 -0.26,-3.01 2.59,-3.12 4.58,-3.67 0.29,-0.78 -0.81,-3.13 0.47,-2.48 2.46,0.65 2.45,-2.36 2.11,-3.23 1.27,-0.62 3.06,1.08 2.81,-1.49 0.06,-2.75 -4.88,2.23 -2.7,-0.53 -0.33,-1.84 3.17,-2.65 3.79,-1 0.44,2.38 2.69,0.96 0.74,-0.53 -0.37,-0.19 2.89,-3.12 0.16,-2.12 -1.52,1.62 -2.69,-1.67 -0.67,-0.49 2.18,0.6 1.78,-2.26 0.1,-2.63 1.64,-0.99 1.76,-1.25 3.09,0.31 2.65,0.05 -0.04,3.53 -1.13,3.83 -0.13,2.43 3.49,4.78 1.03,6.94 -1.52,2.38 -4.26,5.02 -2.96,8.1 -1.03,2.23 -5.62,0.34 -3.97,3.87 1.08,2.24 -0.41,4.62 0.29,6.91 -0.21,2.4 -1.5,4.65 -2.48,6.84 -1.89,2.33 -0.64,4.78 1.42,6.24 1.36,2.71 -1.06,4.75 -3.56,3.4 -3.47,0.13 -6.05,3.54 -6.55,6.75 -0.09,2.61 -2.39,4.76 -0.87,7.58 1.7,0.33 -0.26,3.51 0.65,5.09 0.93,2.11 2.11,4.27 1.04,6.66 -1.85,3.6 1.33,5.61 3.87,7.28 0.34,1.26 -0.49,2.52 -0.69,3.78 -4.37,0.5 -1.64,4.45 -0.68,6.73 -0.19,2.39 0.87,5.69 -1.37,7.29 -2.33,-0.08 -2.37,2.05 -2.44,3.42 -2.81,2.64 1.45,6.5 -0.89,9.33 -0.63,-0.51 -0.86,-4.28 -3.41,-3.07 -1.98,0.66 -1.1,-2.02 -2.18,-2.85 0.06,-1.66 0.25,-4.8 -1.34,-6.05 -1.51,0.96 0.6,3.37 -1.47,1.82 -1.6,1.08 1.29,3.05 0.43,4.75 1.82,1.57 -1.36,1.57 -0.61,3.28 -0.57,0.33 -1.78,3.28 -2.33,0.68 -1.69,-2.25 -3.03,0.06 -1.93,1.1 -2.37,0.2 -1.22,2.58 -3.27,2.72 0.26,1.74 0.63,2.15 -0.66,0.4 -0.55,-0.29 -0.31,3.24 -1.72,3.89 -1.13,1.13 -2.53,1.14 -2.96,2.81 -1.25,-1.4 -1.53,-2.14 -2.1,0.08 -0.58,1.07 -1.97,0.9 -2.97,1.19z m1.79,-42.62c-2.02,0.59 -1.81,3.69 -1.92,5.35 2.29,1.58 5.16,-1.56 2.82,-2.47 -2.51,1.62 -0.41,-2.26 1.2,-2.22 -0.69,-0.24 -1.35,-0.63 -2.1,-0.66z m-8.26,-3.48c1.26,1.05 1.96,-0.59 3.75,0.18 2.86,-0.7 0.32,-3.31 -1.23,-1.63 -0.54,1.11 -4.66,-2.16 -3.53,0.83 -0.64,0.74 0.98,1.54 1.01,0.63z m-1.56,-1.31c1.64,-1.54 -2.29,-0.9 0,0l0,0z m-3.39,20.54c-1.15,-1.48 -0.79,-2.31 1.27,-2.09 -0.5,0.65 -0.76,1.45 -1.27,2.09z m20.58,-43.12c1.89,-0.99 1.05,0.09 0,0z m18.74,-19.12c-0.11,-1.35 1.21,-2.72 0.71,-0.65l-0.24,0.29 -0.47,0.36 0,0z m7.46,-19.18c-1.61,-0.55 0.1,-1.14 0,0l0,0z m3.95,-10.61c-1.42,-0.85 2.16,-3.22 0.98,-0.56 -0.23,0.31 -0.59,0.56 -0.98,0.56z m8.03,-3.21c-0.35,-1.4 -4.22,-5.53 -0.69,-3.55 1.98,-0.66 -2.87,-2.41 0.24,-2.21 2.34,-1.07 1.29,3.96 3.81,2.24 0.12,-1.58 -1.95,-2.83 0.76,-2.09 1.98,-2.01 2.51,5.82 -0.36,3.01 -2.2,-1.1 -3.01,1.06 -3.76,2.6z m-5.57,-1.57c-2.14,-0.36 2.05,-0.11 0,0z m-7.93,-1.09c-0.6,-2.04 2.47,-0.64 0,0z m7.12,-4.13c0.59,-2.37 4.58,-1.01 4.01,-4.46 0.66,-1.69 0.95,3.05 2.77,1.99 1.53,1.25 -2.5,3.06 -1.7,0.6 -1.05,-1.01 -2.27,1.66 -3.77,0.7 -0.56,0.22 -0.96,0.7 -1.3,1.17z m7.58,-0.78c-1.19,-2.28 3.86,-0.43 2.34,-2.88 -3.7,-0.04 1.43,-1.56 0.6,-2.56 -2.52,-1.2 0.41,-2.37 1.15,-2.81 0.41,-3.22 -2.85,-1.84 -4.06,-0.47 -1.59,-2.04 2.26,-2.36 2.32,-4.57 0.14,1.33 0.46,2.85 1.65,2.42 0.8,1.52 3.32,1.84 3.24,-0.37 1.68,1.68 2.77,1.67 2.31,-0.48 0.79,-1.17 0.35,-2.79 1.61,-3.02 -0.4,-0.66 -1.42,-3.92 0.2,-3.31 0.95,2.39 -0.14,5.28 -0.89,7.26 2.94,1.88 1.55,-3.57 4.12,-3.05 0.22,-1.76 -3.3,-2.79 -1.17,-4.59 1.11,2.64 2.9,-1.39 2.9,-1.08 0.95,0.44 4.33,3.19 2.86,0.58 0.52,-1.54 -0.4,-5.86 -2.92,-3.36 -3.05,-0.22 1.04,-4.05 2.23,-1.43 1.8,-0.47 3.36,-0.55 3.65,1.78 1.6,2.82 3.68,-1.17 2.1,-1.52 0.07,-0.51 -0.69,-2.47 -0.41,-3.71 -0.86,-0.45 -2.21,1.67 -1.86,-0.59 0.28,-1.23 2.77,-3.11 1.94,-0.75 0.94,1.47 4.41,-0.15 2,-1.03 0.6,-1.49 3.48,0.04 1.97,-2.16 -0.79,-0.71 -2.04,-3.95 0.25,-3.13 1.93,-0.42 3.84,0.45 2.02,2.21 -1.75,1.98 -0.56,3.61 -0.42,5.65 -2.28,2.68 3.1,3.87 2.24,0.45 -0.18,-2.74 0.93,-5.32 1.76,-8.05 1.89,-3.05 -1.06,3.6 0.33,2.81 1.3,-1.62 0.64,3.35 2.9,1.4 2.12,-1.22 -1.68,-4.46 1.77,-4.91 0.72,-1.47 -2.34,-1.18 -0.57,-2.18 -0.51,-2.17 4.79,-1.62 2.39,1.11 -1.65,1.09 -1.95,4.14 -0.56,3.08 -0.4,2.24 2.84,0.85 3.62,0.4 -0.89,-1.13 -1.79,-4.79 0.32,-4.87 0.09,2.52 4.6,3.29 3.84,0.25 1.3,0.25 1.81,0.78 0.68,1.44 0.12,2.4 2.78,-0.68 3.9,1.46 2.08,1.26 -1.72,0.74 -1.03,2.68 -0.51,3.31 -7.08,0.08 -6.25,3.51 1.53,-0.19 4.57,0.06 4.67,1.27 -0.73,2.54 2.28,1.63 2.62,2.01 1.41,2.24 -3.5,3.67 -1.9,6.17 0.12,3.04 -1.51,0.49 -0.35,-1.03 0.73,-2.35 -0.61,-5.22 -3.22,-5.51 -2.52,-0.23 -4.95,-4.8 -6.83,-0.86 -0.98,2.59 -3.07,-0.98 -3.73,2.03 -1.82,2.85 -1.43,6.39 -0.81,9.47 1.12,1.85 1.17,3.38 -0.82,4.1 -0.7,1.31 0.29,4.41 -1.67,2.5 -2.14,-1.69 -5.02,-0.86 -5.85,1.4 -2.54,0.85 -4.72,0.04 -5.34,-2.66 -0.99,-2.14 -5.91,-6.2 -6.14,-1.61 0.57,2.13 -0.39,0.96 -1.13,1.23 -0.7,0.99 -4.96,0.92 -2.14,2.3 2.85,1.94 -1.88,4.5 0.34,5.92 1.59,3.24 -4.12,0.39 -5.68,0.21 -2.06,-1.04 -3.15,2.55 -4.42,0.38 -1.01,-0.36 -2.16,1.19 -2.67,1.07z m-9.01,-1c0.11,-2.56 2.91,0.13 0,0z m-1.13,-1.28c-0.8,-1.29 3.49,-1.49 0.69,-0.52l-0.34,0.34 -0.36,0.18 0,0z m4.3,-0.48c-1.71,-0.47 -0.9,-2.93 0.17,-2.2 -0,0.74 -0.11,1.47 -0.17,2.2z m4.79,-4.64c0.18,-0.78 1.29,-1.07 0,0z m7.64,-3.83c-2.24,0.29 -1.11,-3.47 -0.22,-0.75 0.06,0.35 1.74,0.98 0.22,0.75z m2.2,-0.62c-2.38,-0.91 -2.84,-5.4 0.1,-4.68 0.37,1.54 -0.1,3.12 -0.1,4.68z m-1.72,-6.1c-4,-0.97 3.45,-2.52 1.03,-0.52 -0.42,0.05 -0.59,0.56 -1.03,0.52z m5.27,-4.48c-0.27,-0.28 0.7,-0.67 0,0z m42.25,-2.91c-1.73,0.39 -2.88,-3.16 -0.45,-1.74 1.34,-0.78 2.3,1.96 0.45,1.74z m-35.9,-2.93c0.17,-2 2.33,-0.17 0,0z m1.12,-1.12c1.6,0.69 0.37,-2.16 2.16,-2.14 -0.43,0.5 -1.9,3.93 -2.16,2.14z m20.87,-4.79c0.68,-1.68 0.54,-0.43 0,0z m-9.67,-2.21c-2.58,-0.52 -0.4,-3.09 0.65,-0.8 -0.07,0.3 -0.24,0.8 -0.65,0.8z M319.32,12.08c-0.3,-1.14 -1.45,-2.77 -2.39,-2.03 -1.57,-1.66 3.97,-2.79 -0.11,-4.02 -1.19,0.78 -1.7,1.41 -2.54,-0.32 -1.8,0.29 -3.52,-4 -2,-4.15 0.28,2.4 2.41,-1.85 3.57,0.39 1.62,1.46 1.99,-0.61 1.81,-1.03 1.1,0 2.2,0 3.3,0 -1.65,1.5 0.79,4.98 -1.45,5.97 1.81,0.96 -0.87,3.73 0.84,4.72 -0.27,0.27 -0.64,0.46 -1.03,0.47z M334.56,1.41c-0.71,-0.78 1.26,-0.59 0,0z\",\"name\":\"Norway\"},\"ua\":{\"path\":\"m458.88,376.43c-1.65,0.13 -4.78,-1.76 -1.5,-2.12 1.11,-0.94 -0.88,-2.9 1.02,-4.06 0.62,-1.77 2.75,-4.95 1.17,-6.55 -2.35,-0.6 0.77,-4.92 0.58,-1.37 1.22,0.09 1.33,-0.46 2.29,-1.4 1.42,1.03 2.11,1.68 2.01,-0.49 0.8,-0.31 0.98,2.31 1.91,0.48 2.09,-0.77 2.07,-2.38 0.02,-2.62 0.48,-3.05 -2.01,-4.08 -4.34,-4.76 -1.03,-1.35 0.14,-4.1 -2.32,-4.58 -0.19,2.48 -3.85,-0.68 -2.94,-2.62 0.58,-1.57 -1.58,-5.77 -2.62,-3.02 -1.32,-0.9 -3.45,-3.78 -4.76,-1.05 -0.61,-1.26 -0.31,-1.31 -2.39,-0.85 -1.59,-0.19 -3.7,-2.91 -5.96,-1.05 -1.9,1.41 -4.52,1.99 -6.34,2.49 -0.3,1.21 -2.98,2.87 -3.26,4.06 0.69,2.88 -3.92,2.94 -5.88,3.36 -1.91,1.06 -2.85,5.5 -5.12,2.22 -2.55,-1.4 -4.85,1.16 -7.45,0.17 -2.78,0.68 -6.22,-1.81 -7.42,1.27 -1.7,-1.79 -4.36,-1.99 -6.08,-3.8 -1.69,-1.99 1.67,-4.76 1.1,-7.32 0.71,-2.08 3.89,1.72 3.03,-0.71 -0.43,-1.86 -2.14,-2.21 -2.09,-4.41 -1.6,-2.52 1.02,-5.01 1.85,-7.4 1.48,-2.09 2.06,-5.46 4.76,-6.09 3,-1.14 0.85,-4.79 0.14,-5.51 2.5,-2.1 -3.76,-3.23 -3.93,-5.84 -0.3,-1.41 -1.88,-4.75 0.96,-3.25 2.78,-0.65 2.08,-4.77 5.31,-4.83 2.44,-2.13 5.65,-1.09 8.41,-2.29 2.86,0.12 5.82,0.8 8.71,-0.13 1.44,0.02 2.96,3.43 4.46,0.67 0.48,-0.61 1.02,3.11 2.27,0.92 -0.68,-2.01 1.68,-0.28 2.33,-1.83 1.72,1.64 3.14,-2.06 4.36,1.19 0.98,-0.83 1.53,-5.36 3.12,-2.13 0.91,1.83 2.9,1.59 3.18,-0.37 1.11,-0.89 4.84,0.77 2.92,-1.35 2.22,-0.55 3.94,4.29 5.74,0.82 -0.53,-2.27 -3.24,-4.21 -1.65,-7.03 0.3,-2.91 3.55,-3.36 5.73,-4.62 2.8,0.98 5.55,-1.1 4.6,-3.99 2.15,-0.59 4.74,-0.01 5.62,-2.79 1.28,-1.72 2.08,2.03 2.83,-0.54 3.15,-1.7 3.09,3.74 6.17,3.78 2.69,0.81 -2.77,1.83 -0.06,3.34 0.97,1.1 0.27,1.92 1.66,2.64 0.13,1.93 0.76,2.76 1.8,0.93 1.75,0.21 3.63,-0.42 4.86,-1.04 1.22,1.6 2.86,1.33 3.58,3.44 0.66,2.12 2.97,6.38 5.86,3.86 0.95,-2.66 2.98,0.62 4.61,-0.26 2.96,0.38 3.76,-3.58 5.99,-4.66 2.15,1.36 3.87,3.07 6.32,3.78 2.39,1.73 1.46,-2.06 1.83,-2.22 2.04,0.83 3.63,-0.35 5.65,0.78 1.64,-1.06 3.29,-0.67 5.4,-0.98 -0.34,2.96 3.78,0.35 3.93,-0.21 -1.54,1.79 2.89,1.91 1.36,4.34 -0.91,1.71 -3.3,4.32 0.42,4.36 1.34,-0.17 -2.51,1.76 -0.87,3.22 0.73,1.16 4.31,0.82 2.94,3.4 -1.12,2.14 2.56,-1.79 1.05,1.32 0.04,1.92 1.74,4.67 -1.56,4.6 -2.59,0.04 -5.57,1.58 -4.88,4.34 -1.93,1.59 -3.46,4.3 -2.04,6.74 1.21,-0.9 1.4,3.27 -0.48,2.33 -2.61,-0.17 -4.34,2.86 -4.47,4.25 -3.32,-0.37 -1.93,5.58 -4.94,3.83 -1.97,0.68 -1.55,3.31 -3.9,2.83 -2.31,2.16 -4.28,4.87 -4.46,8.16 0.05,2.37 -1.89,1.63 -2.69,0.94 -1.43,2.66 1.92,4.83 3.49,6.52 1.72,1.52 4.3,4.21 6.67,2.42 1.12,-1.05 0.41,-2.57 2.09,-1.56 1.41,-0.15 1,-2.82 3.17,-2.37 1.15,-0 0.13,2.98 0.5,4.21 -1.72,0.79 -3.13,2.24 -5.41,1.17 -2.72,0.19 -1.51,3.05 -3.33,4.45 -1.46,1.36 -5.27,2.16 -5.39,5.34 -0.65,2.52 -2.91,5.33 -5.63,3.62 -2.92,-0.52 2.13,-0.53 -0.45,-1.77 -0.6,-1.76 -0.24,-6.9 -3.31,-5.63 -2.51,0.74 -5.09,-2.4 -7.49,-0.19 -0.84,-1.11 2.17,-2.44 2.5,-3.9 1.15,-2.11 4.76,-3.17 5,-5.4 -1.21,-0.47 -1.1,-4.45 -2.98,-2.14 -0.01,2.53 -3.55,-2.55 -3,-0.06 -1.18,1.35 -4.02,3.26 -6.29,3.26 -0.55,-2.41 -5.82,0.8 -2.84,-2.01 -2.07,-2.11 3.13,-0.37 2.51,-2.12 0.43,-0.87 2.54,-3.83 0.04,-2.33 -1.67,2.49 -5.64,0.74 -4.34,-2.2 -3.44,-0.71 0.17,4.67 -3.05,4.35 -0.95,0.4 -1.24,-2.89 -2.18,-0.81 1.19,3.1 -5.65,1.69 -4.31,5.43 -0.19,2.64 -0.71,6.16 -2.65,8.5 -1.92,0.15 -2.28,-0.37 -1.97,1.56 1.06,2.6 -1.47,1.65 -1.44,-0.04 -3.03,0.54 1.86,5.97 -1.63,4.84 -1.69,1.04 -2.76,2.58 -4.85,3.23 -0.33,0.68 0.22,1.06 -0.9,0.94z m8.84,-3.13c-1.24,-0.5 0.31,-1.59 0,0z M480,354.71c-2.02,-0.24 1.4,-0.94 0,0z\",\"name\":\"Ukraine\"},\"il\":{\"path\":\"m564.91,519.32c-2.79,-0.13 -5.59,-0.02 -8.39,-0.06 1.03,-3 0.55,-6.35 0.36,-9.47 -0.77,-1.89 -0.08,-3.97 0.69,-5.38 -2.21,-3.68 3.62,-1.36 3.34,-4.63 0.16,-2.5 0.5,0.45 0.78,1.3 0.41,1.74 0.97,3.45 0.64,5.26 0.64,4.15 2.85,8.05 2.93,12.32 -0.33,0.17 0.28,0.88 -0.36,0.66z\",\"name\":\"Israel\"},\"sa\":{\"path\":\"m593.15,519.31c-2.83,-0.62 -5.1,-2.77 -7.77,-3.86 -1.58,-0.98 -5.22,-1.86 -2.02,-3.26 5.2,-3.81 10.77,-7.23 15.26,-11.9 1.43,-2.99 4.63,-3.12 7.49,-3.98 3.73,-1.26 7.76,-1.54 11.57,-0.41 3.34,1.04 6.79,1.79 10.32,1.49 3.1,-0.23 6.16,0.27 9.07,1.36 7.05,2.14 14.23,3.86 21.25,6.06 3.22,1.22 7.13,2.8 10.33,0.7 3.47,-1.54 7.12,-2.66 10.59,-4.19 0,5.98 0,11.96 0,17.94 -28.52,0 -57.04,0 -85.55,0l-0.54,0.05z\",\"name\":\"Saudi Arabia\"},\"iq\":{\"path\":\"m665.09,505.54c-3.93,-0.14 -7.37,-2.41 -11.2,-3.08 -6.98,-1.9 -13.93,-3.92 -20.88,-5.88 -4.51,-0.55 -9.21,0.46 -13.56,-1.25 -4.06,-1.23 -8.45,-1.67 -12.53,-0.27 -2.28,0.01 -6.14,3.28 -6.23,-0.28 -1.25,-1.52 -3.9,2.58 -3.26,-0.38 2.09,0.09 -1.51,-3.02 -1.67,-4.04 -1.32,-2.57 -5.49,-5.02 -2.13,-7.49 4.5,-5.84 9.16,-11.56 13.6,-17.45 2.04,-3.07 2.39,-7.4 0.02,-10.4 -1.41,-3.28 0.38,-7.66 -2.62,-10.31 -3.09,-2.29 -2.71,-6.73 0.85,-8.16 2.5,-2.92 2.33,-7.04 4.39,-10.19 0.66,-2.04 0.93,-3.47 3.19,-3.89 2.1,-2.75 5.72,-0.13 8.03,-2.44 0.9,-1.04 2.2,-3.85 2.95,-0.99 0.24,2.01 2.47,2.98 2.75,0.39 0.38,-1.99 1.84,-3.41 3.5,-1.73 2.25,0.16 -1.13,2.67 1.73,2.71 2.42,-0.18 1.65,4.3 5.21,2.73 1.14,1.18 1.93,5.76 4.16,3.01 2.6,0.76 5.25,0.47 7.14,-1.59 0.61,0.22 -3.19,2.13 -1.4,3.83 1.09,1.94 5.9,4.19 1.79,5.59 0.41,2.25 -2.38,5.11 0.78,6.65 -2.86,-0.58 -2.74,5.86 0.16,4.24 -0.52,2.48 -0.45,5.39 2.6,5.52 0.99,0.71 1.98,1.43 2.96,2.14 0.34,-1.31 1.06,-1.78 0.88,-0.17 1.65,-0.62 3.99,0.32 4.03,2.59 0.12,1.35 0.91,3.75 2.75,1.76 3.33,-1.46 6.61,1.38 9.97,1.03 2.56,-1.77 4.83,0.86 6.18,2.91 0,13.19 0,26.38 0,39.57 -4.3,1.87 -8.8,3.32 -13.06,5.23 -0.36,0.05 -0.72,0.08 -1.09,0.08z\",\"name\":\"Iraq\"},\"az\":{\"path\":\"m625.84,392.01c-2.29,-1.74 -6.12,-1.39 -7.67,-4.17 -2.87,-0.9 2.82,-3.1 1.5,0.21 -0.29,2.16 0.66,-0.38 1.38,-0.86 1.98,0.67 2.99,-0.38 4.14,-1.97 0.78,0.36 1.17,3.12 3.09,2.25 0.41,1.86 5.4,3.6 1.25,3.88 -1.24,0.15 -2.44,0.52 -3.69,0.66z m9.25,-4.53c-1.22,-1.31 -1.37,-1.74 -0.58,-3.22 -0.7,-1.79 -4.05,0.28 -2.18,-2.45 -0.71,-3.07 -3.86,1.6 -5.74,-0.73 -1.12,-1.04 -4.8,-0.64 -2.24,-1.72 1.66,-3.91 -3.46,-4.05 -5.96,-4.45 -3.06,-0.54 1.31,-0.13 -0.04,-1.79 -1.74,-0.11 0.76,-3.32 -2.15,-2.78 -1.13,-2.07 -3.77,1.24 -3.43,-1.3 -3.83,0.78 -1.14,-4.07 1.25,-3.79 1.55,-0.11 2.45,2.19 4.64,1.11 1.17,-0.47 1.66,-2.32 3.53,-1.24 4.04,0.44 2.81,-5.63 -0.82,-5.09 -1.19,-0.23 -4.57,-0.92 -2.6,-1.97 -1.03,-3.22 2.59,-2.79 4.29,-1.55 1.8,0.76 4.71,-0.66 4.29,1.94 2.3,1.27 5.96,-0.02 6.83,-2.57 -0.51,-2.81 0.78,-5.44 1.5,-8.17 0.77,-1.87 3.93,1.21 5.57,1.75 2.04,2.28 4.63,3.86 7.4,4.84 2.72,2.9 5,-2.29 8.05,-0.66 2.42,0.7 -1.69,0.86 -2.16,1.8 -1.58,1 -0.94,2.98 -2.64,4.05 -0.87,2.65 2.35,4.7 1.48,7.28 0.01,2.24 2,3.06 1.53,5.18 2.05,2.31 -2.94,0.21 -1.67,3.07 0.41,2.71 2.06,5.63 2.66,7.96 -1.4,1.58 -3.89,-2.8 -4.72,-0.12 -0.51,-2.33 -5.01,-0.05 -2.24,-2.75 1.89,-2.25 -0.89,-2.79 -2.14,-3.4 -0.39,-1.7 3.13,-2.19 0.43,-2.98 -2.55,-2.17 -6.8,-1.82 -7.18,2.01 -1.56,2.2 -2.45,4.87 -3.2,7.25 -1.02,1.28 -1.42,2.9 -1.76,4.47z\",\"name\":\"Azerbaijan\"},\"ir\":{\"path\":\"m679.21,458.81c-1.85,-0.64 -2.96,-4.67 -5.07,-2.4 -2.51,1.13 -4.99,-0.69 -7.5,-0.94 -1.54,-1.25 -4.65,1.4 -4.88,0.3 -0.35,-2 -1.76,-5.08 -4.31,-4.59 -0.55,-2.48 -2.8,0.93 -4,-1.28 -1.15,-1.36 -3.82,-0.5 -2.7,-3.18 1.2,-2.24 -1.18,-2.93 -1.92,-2.92 -0.76,-2.14 0.85,-1.8 1.93,-2.95 -0.87,-1.54 -2.25,-2.23 -1.18,-3.98 1.41,-1.22 -0.93,-2.74 1.62,-3.12 2.22,-2.84 -3.32,-4.02 -3.44,-6.68 1.23,-0.62 3.69,-3.96 0.62,-3.5 -2.16,1.88 -4.6,2.34 -7.4,1.61 -2.13,2.68 -1.52,-4.01 -4.35,-3.02 -2.59,1.12 -1.74,-3.71 -4.6,-2.9 0.47,-2.81 -2.6,-2.62 -3.34,-4.74 -3.51,-0.37 -2.73,-5.88 -6.79,-4.9 -2.43,-0.23 0.88,-4.74 -1.15,-6.42 -2.63,1.81 -2.65,-3.09 -4,-4.32 -2.26,0.51 -1.17,-4.01 -3.82,-4.01 -1.08,-1.34 3.43,-0.98 2.24,-3.41 -0.62,-1.73 -1.46,-4.27 1.42,-2.93 2.06,1.49 5.14,2.91 7.63,3.88 2.25,1.24 5.18,-0.04 7.5,-0.74 2.07,-1.71 5.07,-2.61 4.75,-5.97 2.3,-2.33 1.71,-5.53 3.7,-8.09 0.98,-2.61 2.58,-5.68 5.71,-3.44 1.82,0.32 -1.95,3.66 1.08,3.95 4.06,-0.35 -2.73,4.32 1.52,4.83 1.27,-1.49 2.59,2.44 3.8,0.15 1.45,1.58 3.99,1.1 4.87,0.71 1.82,2.85 3.68,6.92 7.62,6.9 3.17,0.36 5.34,-2.56 8.13,-3.02 2.01,0.9 4.99,2.01 6.34,2.88 -0.02,22.74 0.03,45.49 -0.03,68.23z\",\"name\":\"Iran\"},\"ge\":{\"path\":\"m581.92,380.27c-2.26,-0.5 1.41,-3.83 -0.72,-5.4 -1.82,-2.3 -4.05,-4.17 -5.45,-6.77 -1.72,-2.18 -4.46,-0.36 -5.95,-2.58 -2.48,-1.15 -5.99,1.77 -7.69,-0.38 -1.24,-0.61 -3.4,-1.34 -1.11,-2.52 2.92,-1.18 5.31,-0.74 8.31,-1.17 2.62,-0.64 4.81,0.81 7.27,-1.05 1.64,-1.03 2.03,-2.53 4.37,-2.32 3.09,-1.55 5.23,0.93 8.34,0.23 1.97,-0.34 3.8,-1.06 3.76,1.37 3.33,1.16 4.09,-3.43 6.09,-4.97 1.82,1.19 3.56,0.44 3.29,-1.84 2.38,1.1 4.89,0.94 6.98,-0.29 0.1,2.19 0.6,4.52 3.44,3.9 1.82,0.87 6.7,-2.08 4.44,1.62 -1.04,4.09 6.18,1.33 6.51,4.88 -0.55,2.71 -3.63,-0.63 -4.78,1.93 -2.42,2.07 -3.95,-2.25 -6.59,-0.28 -2.88,0.84 -1.75,4.15 -4.11,5.26 -2.15,1.64 -6.02,2.97 -7.99,5.72 -1.4,1.55 -3.24,0.61 -4.57,1.11 -0.32,-2.7 -4.41,-0.39 -5.08,-2.59 -2.74,0.39 -1.4,4.41 -4.46,3.55 -2.08,-0.04 -2.63,2.5 -4.3,2.58z\",\"name\":\"Georgia\"},\"sy\":{\"path\":\"m570.98,505.1c-2.37,-0.06 -4.22,-2.23 -6.66,-1.9 -1.76,1.54 -0.95,-3.61 -2.17,-4.66 0.26,-2.1 3.06,-4.25 2.48,-6.23 -2.86,0.37 -0.12,-3.18 1.61,-2.81 1.41,-1.1 -2.08,-2 0.23,-3.24 2.46,-1.85 0.82,-6.41 -2.32,-5.73 1.74,-2.54 -3.41,-1.48 -4.52,-0.5 -2.16,-1.45 -1.71,-4.59 -2.2,-6.89 -0.72,-2.13 -3.63,-2.2 -2.69,-4.95 -1.91,-3.07 4.61,0.44 2.96,-3.37 1.96,-1.34 -0.54,-4.12 2.56,-4.37 1.92,-1.95 -2.9,-3.08 -1.96,-5.67 -0.17,-2.68 3.53,-1.88 4.07,-0.24 2.8,-1.4 6.26,-2.87 7.96,-6.08 1.77,-3.87 6.01,-0.57 8.96,-1.32 4.89,-1.98 9.3,-5.28 12.15,-9.78 2.06,-3.09 5.52,-4.42 8.88,-5.51 3.15,-0.62 4.71,-4.01 6.68,-5.54 2.16,2.06 -0.35,4.49 -0.71,6.75 -0.34,2.94 -3.64,3.54 -4.67,5.93 -0.77,2.72 0.96,5.34 2.92,7.06 1.91,2.86 0.25,6.61 2.05,9.52 1.43,2.7 2.07,6.08 0.11,8.71 -2.41,4.04 -5.84,7.35 -8.54,11.19 -6.92,8.84 -13.8,17.72 -20.31,26.87 -1.64,2.62 -4.19,2.66 -6.86,2.76z\",\"name\":\"Syrian Arab Republic\"},\"tr\":{\"path\":\"m494.91,482.2c-2.64,-0.83 -6.61,0.7 -6.69,-3.38 -0.28,-2.26 -4.06,-2.7 -3.32,0.14 -2.13,0.72 -2.01,-4.36 -4.24,-2.06 -1.1,1.64 -1.71,4.09 -2.75,1.3 -0.06,-0.7 3.87,-0.84 1.58,-2.85 -2.66,-0.75 -4.9,2.05 -7.56,2.3 -3.22,0.12 2.63,-2.09 -0.16,-3.58 -1.02,-1.26 -2.59,-1.78 -3.85,-0.25 0.8,-2.14 -2.11,-2.59 -0.3,-4.42 0.7,-2.91 -3.46,-4.14 -4.72,-3.08 -0.35,-2.13 -2.41,-1.66 -2.94,-0.12 -0.96,-0.52 -4.49,-1.13 -1.65,-1.67 1.95,-1.12 -0.35,-1.93 -0.64,-2.3 -0.1,-2.91 1.76,1.21 2.44,2.3 1.21,0.53 0.61,-1.54 2.32,-0.91 2.14,0.31 3.08,-4.19 0.9,-2.3 -2.98,0.71 -3.35,-2.88 -0.63,-3.63 1.42,-2.31 -2.41,-1.49 -2.02,-3.47 -1.48,-1.26 -3.08,-1.7 -1.12,-3.61 1.88,-4.06 -3.41,-1.44 -4.89,-0.21 -3.22,2.13 -1.41,-2.71 -2.53,-4.43 0.27,-1.5 2.4,-1.02 1.65,-3 1.08,-2.79 3.49,-3.54 5.85,-4.95 1.33,-0.2 3.18,2.13 5.06,0.5 2.19,-0.32 0.53,-4.12 2.21,-2.66 -1.01,2.78 3.65,-0.5 5.07,-0.34 1.73,-0.22 7.01,-0.13 5.15,-2.97 -1.48,-0.21 -3.18,0.39 -0.99,-0.95 1.96,-1.62 4.19,-2.4 6.66,-2.8 2.77,-0.54 1.2,-2.91 -0.89,-1.86 -1.93,1.45 -3.4,0.81 -4.38,0.32 -3.58,0.35 -2.31,-4.79 0.81,-3.52 2.71,0.01 5.57,-0.39 7.64,-2.28 2.46,-0.32 5.31,1.16 7.39,-0.69 2.9,-0.41 1.41,-4.52 4.23,-5.54 2.71,-2.98 4.61,-6.84 8.39,-8.68 2.29,-1.78 4.29,-3.83 7.39,-4.02 3.16,-0.7 6.47,-1.22 9.26,-2.97 -0.18,-2.01 2.92,-3.03 2.12,-0.46 1.09,2.77 5.37,3.22 7.04,0.72 1.14,-1.37 -0.27,2.45 1.16,0.14 2.04,-1.94 2.88,3.79 5.57,2.83 1.27,-1.86 4.62,-3.78 5.67,-1.09 1.67,-0.99 4.1,0.27 5.52,-0.17 -0.07,-1.45 1.44,-1.93 0.76,-0.72 3.48,0.31 7.66,-0.08 9.71,-3.32 2.34,-1.18 4.33,-4.18 7.15,-3.36 2.71,-0.07 6.67,-0.67 7.5,-3.83 1.38,-2.88 4.81,-4.34 5.49,-7.63 0.34,-3.02 3.69,-0.01 3.89,-2.79 0.79,-1.71 6.06,-0.8 5.2,-2.54 -0.27,-1.98 1.64,-2.11 0.91,-0.61 1.97,-1.13 4.24,-0.33 5.11,0.95 0.95,1.76 2.34,-1.7 3.43,0.93 2.07,0.94 4.5,1.8 3.64,4.81 0.12,2.83 2.56,6.38 5.64,4.35 1.45,-1.61 6.05,-1.12 6.12,-0.28 -2.87,1.25 2.28,4.65 -1.45,5.76 -2.31,0.86 -1.86,1.74 0.02,2.55 2.07,1.41 1.16,4.02 3.6,4.69 1.23,1.57 1.59,5.71 3.8,4.2 0.43,2.37 -1.79,7.52 2.74,6.05 2.64,-0.44 0.94,3.97 3.94,4.02 3.58,1.02 -1.74,2.3 -1.12,4.76 -1.2,0.98 -0.5,-3.85 -3.12,-2.67 -1.98,1.2 -2.57,4.14 -5.61,3.29 -2.88,-0.31 -4.84,1.72 -7.02,2.7 -0.69,1.88 -0.86,5.21 -2.91,2.44 -2.75,-0.22 -2.61,4.46 -5.58,4.92 -2.98,1.72 -6.75,1.93 -9.15,4.66 -2.61,2.66 -4.36,6.14 -7.61,8.16 -2.25,1.32 -4.52,3.36 -7.26,3.28 -3.54,-1.52 -7.49,-0.78 -9.08,3.03 -1.68,2.28 -5.43,4.75 -7.39,2.82 -3.82,-1.14 -4.64,3.62 -2.75,6 0.73,1.14 2.5,1.57 0.17,2.12 -3,0.1 0.83,3.76 -2.09,4.07 1.59,1.89 -1.39,2.48 -1.35,0.31 -1.32,-1.73 -3.85,-3.07 -1.43,-5.18 3.46,-2.09 -0.87,-8.48 -3.12,-4.45 -0.21,1.09 -4.52,4.06 -1.07,3.29 -0.14,0.32 -3.7,3.62 -5.39,1.57 -3.14,-1.5 -6.7,0.91 -7.75,3.93 -2.31,1.12 0.64,5.77 -2.52,4.44 -0.89,2.68 -3.25,3.27 -5.84,4.06 -1.96,1.06 -3.83,3.65 -6.37,2.47 -2.84,-1.55 -5.07,-4.65 -8.7,-4.14 -2.94,-0.38 -6,-0.94 -8.9,-0.06 -3.48,-0.29 -3.26,3.57 -2.85,5.62 -0.19,1.75 1.15,3.5 -1.34,2.67 -2.13,0.36 -2.94,2.88 -4.85,3.38z m-22.48,-0.92c1.54,-1.56 1.67,0.46 0,0z m4.91,-2.51c-0.79,-0.93 0.97,-1.15 0,0z m-7.81,-0.87c-2.21,-0.79 -0.04,-1.14 0.54,-0.39 -0.12,0.2 -0.29,0.4 -0.54,0.39z m-17.07,-35.78c-2.05,-1.66 3.84,-4.8 1.02,-1.64 -0.17,0.27 -1.7,3.54 -1.02,1.64z m-2.5,-4.63c-2.27,-0.95 2.99,-3.59 0.8,-5.77 -1.18,-2.59 4.67,-3.55 1.64,-6.24 -1.25,-1.27 -3.7,-1.75 -1.56,-3.41 0.31,-2.43 2.93,-0.92 3.7,-3.21 1.99,-1.8 4.08,2.49 6.12,-0.22 3,-2.82 1.8,3.03 4.59,3.75 2.54,1.72 5.71,1.31 8.59,1.46 1.59,1.71 -1.83,5.17 -3.31,2.87 -1.59,0.83 -4.21,-0.49 -5.46,2.07 -2.23,0.06 -4.36,0.17 -4.68,3.06 -0.43,2.55 -2.87,5.66 -5.23,3.75 -1.9,0.1 -3.3,1.78 -5.2,1.9z\",\"name\":\"Turkey\"},\"am\":{\"path\":\"m631.96,389.85c-1.96,-0.78 -2.5,-4.05 -4.9,-3.4 0,-2.98 -2.99,-2.85 -3.89,-0.42 -0.72,0.59 -2.05,-1 -2.73,0.47 -1.44,-4.24 -3.82,2.15 -6.08,-0.34 -2.43,-1.36 -5.05,-0.13 -7.33,0.88 -1.6,1.02 -2.24,-1.35 -3.25,-2.19 -0.22,-2.63 -0.35,-6.8 -3.95,-6.8 -1.56,-1.33 3.34,-2.22 3.67,-4.1 2.01,-1.81 4.84,-2.17 7,-3.75 -1.93,-0.72 2.92,-0.35 0.29,0.72 0.12,2.73 3.55,-1.6 5.25,0.33 2.07,0.17 -1.51,3.12 1.09,4.06 1.57,1.97 7.78,-0.09 6.04,3.56 -1.81,0.88 -2.21,2.81 0.36,2.27 2.62,0.26 4.73,3.06 7.3,0.67 1.25,-0.38 -1.56,2.52 0.95,2.4 1.37,0.14 2.22,0.32 0.58,1.07 -0.16,1.55 3.78,3 0.58,4.04l-0.53,0.37 -0.44,0.16 0,0z\",\"name\":\"Armenia\"},\"cy\":{\"path\":\"m527.35,491.44c-2,0.03 -5.42,-2.87 -2.34,-3.85 0.27,-2.84 4.77,-0.45 3.78,-3.88 -1.1,-2.02 2.82,-0.4 4.03,-1.67 3.21,-1.08 5.34,-3.84 7.9,-5.9 -1.85,1.69 -5.66,5.67 -1.55,7.09 -1.16,0.96 -4.02,1.69 -3.88,3.92 -1.79,0.94 -4.14,2.55 -4.75,3.95 -1.18,-1.33 -2.1,0.23 -3.19,0.34z\",\"name\":\"Cyprus\"},\"ie\":{\"path\":\"m160.13,300.45c-1.94,-0.73 -5.41,-0.29 -5.93,-1.1 2.68,-0.96 1.02,-3.47 -1.27,-2.29 -2.17,-0.03 4.61,-0.27 1.86,-1.87 -1.29,0.35 -5.82,0.84 -4.6,-0.88 0.33,-2.41 5.15,0.07 4.57,-2.91 -1.5,-0.99 -3.62,0.6 -3.81,-1.26 1.2,-0.91 6.26,2.54 3.91,-0.67 0.38,-1.38 3.44,-1.82 5,-1.34 1.1,0.96 5.65,0.21 3.16,-0.84 -0.11,-2.83 -2.54,-0.03 -3.01,-0.47 -0.23,-0.23 -3.43,-0.5 -1.1,-1.34 2.22,-1.01 0.54,-4 2.82,-3.42 2.56,1.02 3.91,-3.17 0.52,-2.46 -1.68,0.14 -2.56,-0.23 -2,-1.83 -0.18,-2.01 -5.12,-1.21 -3.94,-2.82 2.15,0.5 2.19,-2.65 4.57,-1.69 2.67,-0.16 1.13,-2.7 -0.21,-3.26 0.29,-1.31 0.02,-3.18 -0.75,-3.28 2.65,-0.82 4.91,0.87 5.93,2.56 1.46,-1.86 3.2,1.45 5.23,1.05 -1.45,-1.4 -1.04,-3.03 1.32,-2.78 1.21,-0.78 -0.05,1.72 1.32,2.45 1.11,1.84 4.55,5.05 6.16,2.17 -0.49,-1.92 2.26,-1.77 1.43,0.13 0.94,1.15 1.06,2.27 0.8,3.26 0.63,1.48 4.47,-0.64 2.75,0.86 -2.34,0.42 -0.05,3.2 -0.77,4.83 0.46,1.62 -0.08,2.98 -1.28,2.32 1.02,2.41 1.46,5.54 -0.48,7.61 -1.25,2.01 -3.34,4.38 -4.14,6.02 -2.56,-0.85 -5.09,-0.34 -7.67,-1.06 -1.16,0.41 -0.62,2.52 -2.3,1.42 -1.5,0.14 -2.91,2.49 -3.4,0.19 -2.29,-1.05 -1.04,2.27 -2.69,2.29 -0.11,0.95 -1.6,-1.12 -2.01,0.4z m13.73,-33.46c2.33,-2.06 -0.9,-1.95 -2,-2.14 -1.29,-0.53 -2.55,-1.96 -0.25,-1.08 1.89,0.69 2.47,-1.66 2.15,-3.1 -1.16,-1.71 7.03,-1.16 4.23,1.31 -0.31,1.85 2.66,-0.08 1.09,1.63 -0.53,1.73 -5.09,0.69 -2.83,2.72 -0.77,0.31 -1.61,0.36 -2.38,0.64z m6.45,-5.05c0.02,-0.88 0.61,0.23 0,0z\",\"name\":\"Ireland\"},\"gb\":{\"path\":\"m182.64,325.46c0.06,-1.95 -4.47,-2.09 -0.74,-2.3 2.67,-0.61 3.94,-3.31 6.49,-4.14 2.12,-0.77 1.4,-4.5 3.94,-3.31 1.45,-3.67 5.43,-1.45 8.06,-0.26 2.91,0.6 2.6,-3.72 5.07,-4.06 1.35,-0.1 4.35,-3.93 1.42,-2.57 -1.86,1.99 -5.05,0.84 -6.82,2.84 -2.27,-0.51 -2.72,-5.62 -5.77,-3.31 0.24,-2.37 -1.53,-4.27 -3.69,-2.44 -0.87,0.75 -2.94,0.79 -1.58,-0.17 0.16,-1.27 -3.6,-0.88 -1.52,-2.98 1.52,-0.74 3.44,0.29 4.82,-1.36 2.13,0.95 4.49,-1.92 5.83,-3.38 1.68,-2.26 0.05,-8.36 -3.37,-5.58 -1.46,1.33 -0.19,-1.41 0.97,-0.91 1.28,-1.84 2.91,-2.79 5,-2.8 1.2,0.32 4.62,-0.54 5.23,2.01 0.71,1.84 0.61,0.28 0.62,-0.81 -0.49,-1.45 0.01,-1.88 0.83,-1.63 -1.44,-2.21 1.58,-2.99 1.67,-4.6 -1.45,-0.49 -1.63,-2.14 0.09,-1.51 0.69,-1.16 0.79,-2.38 1.37,-3.56 -0.63,-2.27 -3.62,2.01 -2.38,-1.12 -0.36,-1.35 -2.39,0.41 -1.46,-1.51 -2.08,-2.31 0.12,-6.19 3.07,-5.98 2.74,-1.73 -0.83,-1.86 -2.08,-2.37 -0.92,0.48 -3.28,2.29 -4.42,1.19 -1.32,1.2 -1.79,-3.4 -3.43,-0.83 0.32,2.13 0.14,1.46 -0.76,0.01 -1.33,-0.68 -2.66,-1.39 -1.32,-3.18 1.13,-2.26 5.13,-4.6 2.33,-7.17 0.52,-2.42 1.47,-4.31 0.99,-6.83 -1.19,-2.25 -5.91,3.7 -3.96,0.19 -1.17,-1.95 1,-2.29 1.54,-3.39 -1.93,-1.31 3.92,-1.92 1.97,-3.06 1.93,-2.14 -1.4,-1.12 -1.91,0.17 -2.64,0.37 -2.78,2.95 -5.17,3.25 1.64,-1.88 1.56,-3.32 4.36,-3.1 0.45,-1.67 -5.98,-1.25 -1.81,-1.19 1.82,-0.7 -1.08,-3.69 1.83,-2.58 2.2,1.18 2.55,-1.86 1.62,-2.28 3.21,-0.32 0.94,-5 -0.12,-6.67 -1.49,-3.19 1.62,1.59 1.66,-1.31 -0.16,-0.99 3.11,1.17 2.06,-1.21 -1.02,-1.19 -0.29,-1.17 0.73,-0.82 0.07,-1.49 0.01,-1.71 1.64,-1.31 1.56,-1.15 -0.74,-2.21 0.86,-3.26 -0.88,-3.08 1.49,-0.59 1.87,-0.27 0.74,0.04 0.92,2.92 2,0.79 2.21,-0.9 6.43,0.18 7.86,0.3 -1.51,1.12 -1.16,3.83 -3.76,4.28 -1.25,1.24 -5.25,2.21 -4.45,4.19 2.02,-0.77 1.46,0.73 0.51,0.2 -2.65,-1.31 -3.91,3.83 -0.65,3.27 1.6,-1 4.76,-1.27 6.96,-0.43 2.15,0.77 9,0.4 6.36,4.13 -2.17,1.32 -1.95,4.3 -3.79,5.88 -1.36,2.24 -3.73,4.99 -6.67,3.85 -2.54,0.88 -0.66,2.52 1.1,1.38 0.78,-0.5 3.15,3.35 0.84,1.99 -2.07,-0.28 -3.16,1.31 -5.18,1.63 -0.02,2.53 4.56,1.95 5.82,1.47 2.3,1.2 3.8,3.55 4.55,5.85 2,2.23 0.13,5.79 1.35,8.49 -0.45,3.02 1.26,4.86 3.81,6.01 1.66,1.49 2.34,4.19 3.57,5.37 -2.57,1.95 1.1,5.12 0.44,6.31 -2.04,-0.08 1.34,3.78 1.3,5.11 0.78,2.24 -5.08,2.32 -2.09,4.71 1.56,2.69 3.3,0.05 4.83,-1 2.51,1.1 6.37,1.79 6.61,5.25 -0.28,2.6 -1.71,7.67 -4.87,6.84 -2.14,0.29 1.39,3.23 -1.35,2.01 -1.64,-1.62 -4.38,2.64 -1.7,1.39 1.98,0.5 -1.21,2.23 -2.35,1.41 -3.04,0.03 -0.52,3.18 1.11,2.57 2.13,-1.55 -0.82,1.67 1.85,1 1.37,0.01 4.16,-1.13 2.4,1.04 0.18,1.94 -3.04,1.77 -3.79,3.01 -3.03,-0.26 -5.14,2.46 -7.81,0.22 -2.14,-0.87 -5.12,1.06 -5.71,-1.04 -0.97,0.35 -1.61,-1.39 -2.37,0.11 -0.34,-1.96 -3.3,-2.15 -1.9,0.13 -1.76,0.29 -4.97,-1.2 -5.38,0.98 -2.03,-0.7 -3.26,-0.69 -4.99,-2.14 -2.67,-1.4 -6.68,-1.13 -6.68,2.71 -0.68,3.61 -3.23,0.34 -4.72,-0.57 -1.81,-0.09 -4.28,-1.13 -5.91,0.19 -1.52,-0.34 -2.18,1.47 -2.78,2.5z m18.76,-70.13c1.65,1.54 3.03,-0.19 0.57,-0.92 -0.47,-0.23 -0.39,0.68 -0.57,0.92z m-3.12,31.93c0.55,0.53 0.27,0.88 0,0z m-1.17,-10.07c0.02,-1.53 3.39,-4.02 1.66,-1.22 -0.39,0.58 -0.96,1.08 -1.66,1.22z m-10.63,-1.73c-1.59,-0.31 -2.08,-2.29 -3.03,-0.36 -1.91,-0.73 1.49,-2.2 -1,-2.29 0.13,-2.31 -2.8,-4.88 -3.79,-2.04 0.08,3.32 -3.97,-0.09 -4.6,-1.78 -1.85,-2.46 4.1,-0.54 2.7,-3.31 3.07,0.55 2.59,-4.32 5.36,-2.92 1.06,-1.19 2,-1.61 3.15,-1.03 2.23,-0.98 4.88,1.21 3.52,3.35 -0.19,2.26 3.15,1.24 0.87,3.27 -2.06,1.44 -0.04,2.03 1.25,1.47 1.84,1.95 -0.91,4.87 -2.77,3.75 -0.28,0.8 -0.67,1.84 -1.67,1.88z m10.61,-7.92c-1.67,-0.09 0.88,-0.41 0,0z m-4.29,-6.97c1.08,-0.83 2.3,-4.85 2.33,-3.8 -0.86,1.14 -0.52,3.62 -2.33,3.8z m2.73,-6.13c0.35,-1.24 0.97,-0.17 0,0l0,0z m-3.97,-25.03c-1.05,-1.04 1.79,-1.33 0,0z m1.85,-1.48c-0.51,-1.01 -1.32,-1.32 -0.4,-1.6 -1.54,-1.3 0.12,-2.32 1.22,-0.9 1.22,-0.53 0.35,-2.59 1.9,-1.78 0.84,-0.86 3.02,-1.98 1.27,-0.28 -1.41,1.61 -1.17,5.41 -3.42,2.95 -0.74,0.32 -0.1,1.35 -0.58,1.61z m38.33,-20.76c-1.93,-1.65 4.17,-0.89 0.99,-0.51l-0.47,0.12 -0.53,0.39 0,0z\",\"name\":\"United Kingdom\"},\"ch\":{\"path\":\"m292.05,389.98c-1.12,-2.03 -1.49,-3.96 -4.14,-4.68 0.24,-1.27 0.28,-4.19 -2.02,-2.48 -2.76,1.07 -0.98,6.19 -4.8,5.6 -1.34,-2.05 -4.35,2.18 -5.85,-0.49 -0.66,-1.9 -1.54,-2.82 -1.22,-5.23 -0.26,-1.58 -4.49,-1.34 -5.35,0.35 0,0.96 -0.92,3.04 -1.36,2.14 2.08,-0.65 -0.4,-3.99 1.78,-5.21 1.94,-0.57 2.18,-1.6 2.3,-3.5 2.42,-0.82 3.23,-3.53 5.4,-5.02 0.92,-1.36 3.51,-0.53 3.7,-1.93 2.51,-0.36 5.31,-0.33 7.48,-0.01 1.57,-0.63 0.5,-2.03 0.36,-2.23 1.31,-1.57 1.36,1.33 2.5,0.98 1.1,0.96 4.91,-0.68 5.97,2.04 0.36,1.7 -2.95,6.33 1.28,6.08 1.9,0.87 4.09,3.47 5.78,0.3 -0.28,1.18 -0.17,4.33 -0.42,4.42 -1.87,-2.39 -4.17,0.79 -2.27,2.33 0.4,3.64 -0.7,-1.85 -2.69,-0.06 -1.62,2.46 -2.25,-1.46 -3.43,-1.76 -2.43,0.76 -0.07,4.33 -2.78,4.97 -1.02,0.89 -0.72,2.33 -0.22,3.4z M275.63,370.8c0.49,-1.83 2.92,0.14 0.45,0.04l-0.53,0.11 0.08,-0.14 0,0z\",\"name\":\"Switzerland\"},\"at\":{\"path\":\"m338.89,381.72c-2.92,-0.37 -5.68,-0.8 -8.68,-1.29 -3.41,-0.44 -7.47,0 -10.13,-2.59 -0.49,-1.79 -2.01,-0.99 -0.74,-2.9 -1.54,-1.34 -4.15,1.63 -6.36,0.74 -2.58,-0.56 -3.71,1.14 -4.67,3.02 -0.77,-1.61 -4.07,-0.58 -3.15,-2.45 -2.02,-1.72 -4.43,3.34 -5.34,-0.45 -2.71,0.05 -3.32,-2.5 -1.76,-4.48 -0.11,-1.92 0.65,-1.26 2.03,-1.24 0.77,2.34 2.91,4.54 4.57,1.3 -0.46,-2.13 1.09,-1.56 2.51,-1.62 1.01,3.44 4.52,1.32 6.34,0.3 1.07,-2.1 5.55,-0.39 5.96,-2.32 1.02,0.88 3.01,0.37 3.69,0.59 0.18,3.89 5.07,0.73 2.69,-1.53 -0.2,-1.43 -1.39,-3.39 -2.11,-5.03 1.93,-1.47 5.36,-2.58 5.54,-5.05 1.88,0.9 2.55,-1.98 3.13,-1.73 2,1.9 4.33,0.91 6.33,0.45 0.7,-1.97 2.92,-2.39 2.31,-5.03 1.96,0.92 4.91,0.17 6.97,1.75 1.9,2.39 4.37,-0.77 6.11,0.38 1.43,-0.03 2.77,1.31 1.21,2.94 -0.45,2.79 3.86,4.35 2.35,7.1 1.97,3.48 -4.51,0.08 -4.56,2.79 1.63,1.11 3.27,1.96 0.42,2.95 -0.98,1.81 1.97,4.01 -0.88,5.49 -1.01,1.14 -3.1,1.64 -2.24,3.63 -2.75,-0.79 -4.87,2.27 -7.7,0.89 -1.89,0.31 -2.39,2.61 -3.87,3.38z\",\"name\":\"Austria\"},\"cz\":{\"path\":\"m335.18,355.05c-3.65,-0.41 -4.96,-4.57 -8.41,-5.66 -1.31,-1.75 -2.19,-2.91 -4.32,-3.66 -1.8,-1.56 -2.64,-3.53 -1.6,-5.57 -0.16,-1.57 -4.02,-3.53 -3.2,-4.17 1.42,3.2 2.44,-2.24 4.26,-2.25 1.35,1.3 3.09,-0.63 3.77,-1.12 1.58,-1.86 4.18,-2.74 6.59,-3.91 1.63,-0.69 3.11,-2.35 4.59,-0.56 2.65,1.13 2.61,-4.69 4.17,-1.06 1.38,1.66 3.64,0.69 5.11,2.36 0.67,1.75 5.33,-1.17 2.84,1.24 -1.67,2.06 2.09,2.81 2.61,4.74 2.09,1.86 2.12,-0.93 3.96,-1.42 0.43,-1.39 -1.9,-2.7 0.65,-1.55 1.23,1.3 3.29,0.96 4.4,0.53 -3.27,0.95 2.17,5.16 3.09,2.65 2.93,0.44 4.53,2.63 6.07,4.63 -2.15,1.71 -4.92,3.04 -5,6.15 -1.22,2.56 -3.35,3.75 -6.24,3.67 -1.85,1 -3.16,2.67 -5.05,0.79 -2.11,1.83 -4.69,0.96 -6.9,-0.42 -1.92,-1.1 -4.07,-0.45 -5.85,-0.93 -0.34,2.31 -2.03,3.48 -2.87,5.34 -1.07,-1.47 -1.28,0.34 -2.66,0.17z m-0.68,-28.45c-2.43,-2.03 2.32,0.24 0,0z\",\"name\":\"Czech Republic\"},\"sk\":{\"path\":\"m364.44,362.94c-2.39,-2.37 -6.56,-2.63 -7.73,-6.02 -0.46,-2.43 0.4,-6.56 3.64,-6.16 3.23,0.29 4.91,-3 5.9,-5.48 0.17,-1.96 3.95,-5.08 5.19,-3.02 2.43,1.82 3.49,-4.97 4.66,-0.89 1.56,0.35 1.91,0.85 1.91,2.52 2.64,1.02 3.89,-1.84 5.57,-3.22 1.58,-0.07 4.26,1.88 5.1,-0.34 0.99,-1.59 4.74,-1.57 6.47,-0.13 1.28,2.35 6.24,0.73 4.22,4.32 -1.5,2.17 -0.53,7.67 -4.43,6.22 -0.53,-3.18 -3.88,-1.31 -5.83,-0.46 -2.77,-2.02 -4.98,0.68 -5.07,3.51 -1.08,0.67 -2.09,-0.14 -2.29,1.79 -1.29,1.17 -3.96,-2.16 -4.46,1.1 -0.72,2.43 -5.78,-0.07 -5.66,3.66 1.11,2.54 -4.04,1.94 -5.84,2.51 -0.44,0.04 -0.88,0.07 -1.32,0.1z\",\"name\":\"Slovakia\"},\"hu\":{\"path\":\"m369.77,387.01c-2.75,-0.58 -5.39,-1.37 -7.78,-2.73 -2.27,-2.63 -5.77,-3.91 -7.5,-7.04 -1.21,-1.85 -2.06,-2.65 0.1,-3.74 1.43,-1.97 -1.64,-4.55 1.32,-5.48 2.04,-1.7 -3.3,-3.48 -0.09,-2.71 2.81,1.04 3.86,-1.91 3.11,-3.93 1.93,-1.05 3.43,2.43 5.44,2.58 3.24,-0.18 6.53,-0.68 9.48,-2.09 -2.94,-1.84 0.68,-3.88 2.85,-2.99 1.75,-0.27 1.26,-4.31 3.33,-2 2.26,0.8 3.01,-1.99 4.8,-2.5 0.41,-2.48 1.52,-4.92 4.25,-3.08 1.93,-0.18 4.28,-2.95 5.05,0.14 2.1,1.7 4.8,-1.81 6.38,0.84 2.12,-0.07 1.45,3.23 3.34,1.35 3.46,3.21 -4.18,3.49 -4.55,6.38 0.35,2.87 -2.65,4.72 -2.5,7.52 0.37,3.17 -2.46,5.43 -2.51,8.54 0.01,3.02 -4.16,0.17 -4.1,3.12 -3.14,1.57 -7.09,0.21 -9.73,1.82 -1.24,2.36 -3.12,1.16 -4.53,3 -2.57,0.36 -3.31,3.42 -6.16,3.01z\",\"name\":\"Hungary\"},\"lt\":{\"path\":\"m397.76,280.99c-1.28,-1.32 -1.63,-4.58 -4.11,-3.7 -1.13,-2.07 -4.01,-0.28 -3.26,-3.14 1.62,-3.48 -2.4,-7.19 -5.64,-5.13 -2.28,0.26 -5.13,-1.48 -6.05,-2.17 -0.51,-2.23 -1.53,-3.51 -2.2,-5.4 -1.37,-2.68 1.24,-5.63 3.5,-7 1.88,-1.44 4.85,-0.65 6.6,-1.37 0.56,-1.26 2.33,2.09 2.82,-0.31 2.06,-0.86 4.97,0.1 6.62,-0.3 1.76,-0.28 3.35,-0.61 3.78,-2.83 1.19,2.4 3.3,3.12 5.7,2.26 2.79,0.52 4.16,3.86 7.04,4.08 1.64,1.42 -0.82,5.15 2.39,4.69 0.41,1.84 -3.75,0.79 -2.82,3.52 -2.05,1.6 -2.93,3.79 -1.88,6.23 -0.12,2.13 -0.68,3.69 -2.75,4.26 -0.43,1.13 -0.04,1.82 -1.97,2.11 -0.51,1.51 -1.38,2.09 -2.67,3.35 -1.72,-1.32 -3.41,0.53 -5.09,0.87z m13.27,-5.67c-0.11,-1.17 -1.77,-2.09 0.31,-1.22 0.43,0.34 0.36,1.19 -0.31,1.22z\",\"name\":\"Lithuania\"},\"lv\":{\"path\":\"m375.49,257.31c-1.25,-2.79 -1.57,-6.54 -0.19,-9.24 2.63,-2.07 -0.8,-6.67 2.34,-8.6 1.69,0.07 4.11,-4.27 4.4,-1.32 2.44,1.48 4.79,3.19 5.76,5.78 2.55,1.96 6.17,0.07 7.13,-2.71 1.39,-2.75 -1.14,-5.3 -1.86,-7.82 1.34,-1.86 3.66,-3.57 5.64,-3.47 0.08,-0.9 1.63,1.08 2.69,0.67 1.72,0.06 3.13,2.25 4.97,3.22 2.21,0.36 3.53,-2.11 5.72,-1.12 1.76,-0.72 2.78,1.38 4.4,2.33 -0.55,1.5 -1.61,1.77 0.06,2.4 -0.17,1.1 -0.46,3.72 1.44,2.57 1.53,2.66 6.04,5.32 2.65,8.5 -1.42,1.56 -0.49,4.51 -3.48,3.69 -2.28,0.64 -3.94,4.9 -6.51,1.93 -2.03,-2.26 -5.06,-3.95 -7.91,-2.78 -1.1,-1.49 -3.6,-4.26 -4.46,-0.94 -1.47,1.77 -5.35,0.57 -7.87,1.17 -1.87,0.26 -2.16,0.89 -3.44,-0.06 -2.37,1.98 -6.1,0.17 -8.37,2.54 -1.6,0.14 -2,4.17 -3.11,3.25z\",\"name\":\"Latvia\"},\"md\":{\"path\":\"m454.92,374.42c-0.33,-2.09 -1.86,-4.78 -2.23,-7.4 0.38,-3.56 0.07,-7.47 -2.96,-9.91 -3.2,-3.43 -7.96,-5.44 -9.93,-9.93 -0.24,-2.34 -6.31,-3.34 -2.39,-4.03 2.67,0.33 3.73,-3.48 6.57,-2.14 1.32,0.97 1.83,2.54 3.78,1.18 -0.02,0.82 2.42,2.73 2.56,0.37 1.33,-1.44 3.96,3.6 4.43,1.55 1.2,-1.55 0.65,3.03 1.22,3.93 0.07,2.32 4.57,4.13 4.42,2.59 -0.43,1.81 0.64,4.31 3.01,4.64 2.61,-0.41 1.35,4.32 2.84,4.34 -0.24,1.12 -3.35,-2.1 -2.5,0.78 -1.04,0.18 -2.3,-2.64 -2.02,-0.03 -1.22,0.21 -2.31,-1.71 -3.62,0.36 -1.34,1.85 1.39,3.73 0.77,5.48 -0.5,2.25 -2.95,4.34 -2.23,7.32 -0.82,-0.46 -1.48,0.35 -1.72,0.91z\",\"name\":\"Moldova\"},\"ro\":{\"path\":\"m414.71,404.53c-2.94,-0.37 2.3,-2.82 -0.89,-3.86 -1.36,-0.38 -6.12,-1.72 -3.63,-3.39 3.62,-1.4 -2.29,-3.42 -3.82,-3.63 -1.25,0.73 1.78,4.33 -1.06,3.46 -0.47,-2.42 -4.24,0.23 -4.49,-2.27 -1.54,0.07 -1.87,0.1 -0.31,-0.74 0.46,-1.41 -2.15,-1.17 -0.71,-2.27 0.07,-4.02 -6.25,-1.24 -6.86,-4.86 0.56,-2.93 -2.25,-4.23 -4.45,-5.46 -1.23,-1.35 3.36,-1.23 3.59,-2.71 4.37,0.45 2.54,-4.6 4.68,-6.55 1.28,-2.95 0.7,-6.3 2.76,-8.97 0.62,-2.75 1.58,-5.21 4.69,-5.79 2.24,-1.25 2.4,-5.8 5.34,-3.67 2.44,-0.6 4.8,0.38 7.17,-0.21 2.51,-1.94 3.7,1.15 5.91,1.18 2.03,-1.31 2.68,-4.39 5.67,-3.96 2.31,-0.28 4.86,-1.95 4.49,-4.32 1.75,-2.97 4.98,-1.01 6.29,1.29 1.93,4.74 7.06,6.72 10.28,10.39 2.93,2.37 2.34,6.09 2.36,9.35 0.53,2.52 1.69,4.86 1.92,7.13 1.82,1.67 4.12,3.74 6.83,2.36 1.37,-1.24 4.51,-5.35 6.51,-2.84 1.18,1.97 2.1,5.63 -1.2,6.33 -1.85,1.04 -1.42,-3.67 -3.88,-1.61 -1.51,1.92 1.84,2.51 -0.11,4.51 -0.61,2.57 2.04,-0.86 0.82,1.98 -2.28,2.63 -0.38,5.59 -0.04,8.5 -1.15,2.51 -5.2,-0 -6.02,-1.11 -1.09,1.46 -1.67,-0.92 -3.54,0.54 -1.82,0.49 -3.31,-1.46 -5.44,0.01 -3.08,1.35 -6.52,2.81 -8.17,5.95 -1.31,3.55 -4.97,3.29 -8.01,2.77 -2.75,-0.48 -4.92,1.71 -7.44,1.75 -2.74,-0.25 -5.83,-1.37 -8.31,0.42l-0.52,0.24 -0.43,0.06 0,0z\",\"name\":\"Romania\"},\"bg\":{\"path\":\"m419.98,434.43c-0.77,-1.6 0.33,-5.03 -1.67,-6.74 -1.14,-2.34 -7.05,-2.04 -4.41,-5.19 -0.49,-1.45 -2.46,-4.37 -1,-5.23 2.16,0.54 4.75,-3.78 2.92,-5.59 -2.57,-1.55 -5.66,-2.78 -5.98,-6.24 -0.97,-2.47 2.74,-1.99 1.69,-4.32 2.08,-0.06 3.2,1.11 1.22,2.59 -0.15,3.28 3.83,0.6 5.65,0.71 2.58,-0.64 5.13,0.94 7.65,0.08 2.61,-1.18 5.46,-2.28 8.27,-1.01 3.32,0.37 5.6,-2.51 6.93,-5.13 2.16,-2.35 5.29,-3.61 8.27,-4.56 1.69,0.75 3.92,0.92 5.2,0.32 0.77,1.61 2.46,-1.39 3.17,1.07 1.58,2.18 6.09,-1.71 5.26,2.45 0.21,2.63 -4.48,0.38 -4.02,3.94 -1.88,1.85 1.39,5.32 -0.17,7.14 -1.24,1.25 -1.7,3.03 -2.93,4.26 0.82,1.66 4.27,-0.37 3.64,2.02 1.44,0.86 3.71,1.89 1.23,2.18 -1.9,3.08 -4.18,-1.08 -6.49,0.5 -1.52,1.95 -4.37,1.58 -4.82,4.55 -1.37,1.04 -4.43,1.49 -2.91,4.13 3.08,3.26 -3.78,2.7 -5.13,4.68 -1.95,0.62 -4.22,-2.41 -5.93,-0.29 -2.04,-2.63 -5.18,-1.43 -7.46,0.15 -2.06,2.52 -5.54,1.17 -7.76,3.47l-0.43,0.06 0,0z\",\"name\":\"Bulgaria\"},\"al\":{\"path\":\"m396.5,458.88c-2.16,0.08 -0.81,-2.55 -2.74,-3.41 -0.91,-2.13 -5.81,-2.06 -5.48,-3.81 2.36,-1.04 -1.62,-3.19 -0.48,-4.99 0.36,-1.26 2.66,-2.2 0.57,-3.3 1.39,-2.49 -3.57,-5.96 0.77,-6.52 2.37,-0.03 -1.92,-0.89 -0.55,-2.51 -0.14,-2.15 -3.24,-0.23 -2.21,-2.9 -1.48,-2.28 0.07,-4.41 1.36,-6.71 1.01,3.42 4.23,-2.13 4.66,1.78 1.21,1.69 4.6,1.07 3.88,4.25 -0.33,2.87 -0.02,5.6 0.51,8.19 0.21,1.77 2.38,5.51 4.15,4.74 1.69,-0.32 2.5,4.45 0.05,5.02 -0.86,1.75 -0.27,5.37 -3.24,5.56 -2.01,1.26 1.3,2.75 -0.81,3.98l-0.23,0.5 -0.19,0.12 0,0z\",\"name\":\"Albania\"},\"ee\":{\"path\":\"m378.18,234.33c-0.29,-1.42 0.77,-0.85 0,0z m29.34,-1.46c-2.55,-0.18 -3.15,-3.15 -5.39,-3.23 -0.21,-1.76 -1.21,1.44 -2.27,-0.65 -2.12,-1.63 -4.52,1.21 -6.27,2.48 -1.26,-0.67 1.67,-5.98 -1.81,-5.74 -1.1,1.92 -1.82,2.36 -3.83,1.3 -0.08,-2.54 -3.43,-2.95 -2.01,-5.67 0.96,-2.03 -3.8,-2.6 -0.62,-3.95 1.35,-0.61 4.23,-0.97 2.3,-2.67 2.82,-0.9 4.5,-2.4 7.47,-2.41 1.66,-0.56 1.5,-2.75 3.42,-1.67 0.91,-1.72 4.64,0.07 6.63,-0.66 2.13,-0.1 4.26,0.22 6.03,-1.29 -1.43,2.67 -1.02,5.84 -2.24,8.62 2.11,2.2 1.2,5.64 3.15,7.83 0.24,0.52 1.89,2.24 1.35,2.38 -0.73,0.83 -0.81,2.27 -1.35,2.68 1.66,2.85 -2.28,0.25 -2.89,1.26 -0.29,0.68 -0.83,1.4 -1.65,1.38z m-28.89,-1.28c-1.29,-0.43 -2.59,-1.4 -0.92,-2.29 -0.22,-0.67 0.59,-1.5 0.99,-0.78 -0.53,-2.4 4.69,-3.37 4.19,-1.27 0.07,2.48 -3,2.5 -4.26,4.33z m1.02,-7.14c-0.54,-0.34 -0.96,-2.14 -1.01,-2.27 0.8,-1.29 0.79,-1.32 2,-0.55 1.89,-0.4 1.35,1.06 -0.17,0.69 0.83,0.84 0.55,2.1 -0.81,2.14z\",\"name\":\"Estonia\"},\"lb\":{\"path\":\"m557.2,501.39c0.58,-2.8 0.32,-5.88 1.17,-8.53 -0.92,-2.02 1.77,-3.87 0.09,-5.88 -0.28,-2.6 2.65,-3.83 2.23,-6.01 1.03,-0.93 3.35,-2.1 2.42,0.09 1.64,0.57 3.96,0.89 3.49,3.25 -1.11,1.34 -2.61,3.51 -1.84,4.51 -2.48,0.69 -2.89,3.8 -1.53,5.08 -0.04,2.15 -2.43,3.34 -3.12,4.26 0.57,1.87 -1.28,3.1 -2.91,3.25z\",\"name\":\"Lebanon\"},\"ad\":{\"path\":\"m225.99,427.08c-4.4,2.06 -0.81,-5.33 0.49,-0.98l-0.2,0.53 -0.29,0.45z\",\"name\":\"Andorra\"},\"sm\":{\"path\":\"m321.66,413.68c0.71,-2.83 1.59,1.21 0,0z\",\"name\":\"San Marino\"},\"mc\":{\"path\":\"m273.92,416.64c-2.8,-1.65 2.23,-1.64 0.39,-0.13l-0.39,0.13 0,0z\",\"name\":\"Monaco\"},\"lu\":{\"path\":\"m268.7,344.38c-1.34,-0.37 0.48,-2.79 -0.9,-3.99 -1.47,-1.94 2.76,-5.38 1.98,-1.49 0.37,1.78 4.79,2.33 1.84,4.09 -0.47,1.66 -1.49,1.22 -2.93,1.39z\",\"name\":\"Luxembourg\"},\"fr\":{\"path\":\"m292.72,444.55c-0.12,-2 -3.86,-0.94 -2.75,-2.99 -2.34,-0.62 -0.11,-2.51 0.75,-3.57 0.35,-0.55 -3.76,1.07 -1.24,-0.63 0.32,-1.34 -2.6,-2.05 -0.51,-3.01 -0.25,-1.14 -1.13,-1.51 -0.02,-1.71 -0.89,-2.66 3.14,-1.71 3.48,-3.51 1.94,0.96 2.98,-0.2 2.33,-2.11 1.79,-2.18 -0.99,3.51 1.02,4.43 1.2,3.29 -2.09,6.35 -1.33,9.73 -0.95,0.89 -1.15,2.64 -1.75,3.36z m-58.87,-15.16c-2.27,-2.01 -5.59,-0.28 -7.2,-2.87 1.48,-2.11 -2.14,-2.13 -2.92,-2.19 -1.78,-1.34 -3.82,-2.36 -5.67,-3.53 -1.54,0.58 -1.53,2.27 -3.51,1.46 -1.54,0.07 -2.66,-0.59 -3.93,-0.35 -0.8,-2.33 -2.93,-1.69 -4.53,-2.09 -1.06,-2 -2.81,-3.32 -5.06,-3.18 -1.57,-1.15 -1.33,-1.7 -1.45,-3.5 -1.23,-0.24 -3.44,-0.96 -1.02,-1.55 3.04,-3.75 2.96,-8.84 4.5,-13.21 0.85,-1.4 2.99,0.68 2.08,-1.85 -1.2,-1.06 -2.14,-0.84 -1.15,-2.81 1.1,-1.59 0.63,-5.99 2.35,-6.1 1.89,1.55 0.82,3.87 1.88,5.79 -0.05,2.01 2.7,3.12 1.93,0.38 -2.25,-2.11 -0.08,-5.11 -2.23,-7.23 -1.52,-1.07 -0.74,-1.21 -0.52,-2.39 -2.12,-1.87 0.87,-2.79 -0.3,-5.08 -0.91,-0.78 2.06,-4.15 0.31,-2.92 -1.7,1.58 -2.8,-0.99 -4.34,-1.54 -1.66,-0.48 -1.34,-4.04 -3.07,-5.27 1.45,-1.37 2.03,-3.5 -0.17,-4.21 -1.28,-1.38 -1.85,-1.7 -0.64,-3.42 1.28,-3.05 -5.85,-0.88 -2.14,-2.3 -0.4,-2.26 -4.49,0.28 -3.4,-2.31 -0.36,-2.67 -3.56,0.62 -4,-1.74 -2.28,-0.09 -2.42,-4.2 -4.81,-1.84 -1.78,1.57 -0.33,-2.39 -2.37,-2.56 1.59,0.62 3.87,-0.51 1.92,-2.13 1.84,1.1 2.88,-0.7 0.65,-1.01 0.13,0.05 1.59,-2.28 -0.46,-1.5 -1.34,1.45 -4.19,-0.07 -1.73,-1.25 1.3,-0.76 2.79,-0.81 2.95,-0 1.4,-0.85 2.87,-0.97 3.66,0.09 0.65,-1.02 3.21,1.35 3.19,-1.26 2.43,-1.62 2.22,2.03 2.47,2.06 1.69,-2.75 1.86,2.19 3.17,3.11 1.26,-0.74 3.83,-3.16 3.73,-0.14 1.62,2.63 2.82,-1.65 4.78,0.11 0.83,-0.47 4.32,1.06 3.36,-0.07 -1.65,-1.65 -2.42,-4.02 -1.35,-6.19 0.76,-2.4 -2.42,-4.6 -1.19,-7.04 1.21,1.81 5.2,-0.98 3.31,2.03 -0.19,2.43 1.93,3.76 3.68,2.84 2.59,0.56 5.12,3.56 7.68,1.11 2.16,-0.17 1.32,-1.39 0.53,-2.64 1.54,-3 5.41,-2.03 8.05,-3.16 1.81,-0.67 4.58,-1.88 5.31,-3.4 -1.75,-1.03 0.04,-4.18 -0.3,-6.15 0.44,-3.1 4.2,-2.36 6.44,-2.8 0.98,0.77 1.49,6.24 4.58,4.17 1.46,-0.35 0.7,4.82 3.67,3.62 -0.14,3.07 3.12,1.53 4.18,2.82 -0.64,1.44 -0.56,1.83 -0.25,2.78 -0.88,2.67 3.93,2.4 4.83,0.49 0.88,1.69 -1.1,3.55 1.66,3.61 2.55,0.29 2.49,4.49 5.21,3.37 2.65,1.52 6.43,-0.33 7.5,3.53 0.45,0.9 2.96,3.41 2.01,0.96 0.54,-1.16 0.79,1.42 0.5,1.49 1.47,-0.3 3.92,-1.81 4.53,0.32 1.92,0.28 7.08,0.84 3.22,2.94 -2.39,2.02 -1.66,5.55 -3.51,7.88 -0.4,2.45 -0.29,5.21 -1.25,7.67 -1.85,0.33 -4.65,-1.22 -4.94,2.33 0.2,1.24 -1.59,3.49 -3.64,4.12 -0.97,0.48 0.4,3.01 -1.75,3.44 -3.21,1.4 -0.53,4.69 -2.87,6.5 1.14,2.08 4.46,-0.29 3.63,-2.44 2.64,-1.79 4.27,0.65 3.32,3.02 0.97,1.33 2.7,2.42 0.16,3.24 -1.7,2.56 4.01,4.8 1.9,7.11 -0.78,1.84 -6.17,0.54 -3.47,3.57 1.68,1.38 4.39,3.16 1.43,4.85 -1.24,3.13 2.12,7 5.6,6.15 2.64,-0.69 -0.62,4.28 -2,4.64 -1.17,-0.72 -4.03,-3.03 -4.38,0.05 0.55,1.28 1.71,2.84 -0.72,3.26 -2.25,0.54 -0.87,3.61 -3.15,2.9 -1.62,1.27 -2.66,0.82 -4.12,0.04 -1.35,1.82 -1.33,-1.1 -3.38,-0.87 -2.84,0.75 -0.64,-3.44 -1.53,-2.84 -0.63,0.89 -3.09,1.3 -1.09,0.56 1.49,-2.74 -3.49,-2.8 -2.54,-0.31 -2.24,0.5 -1.46,-2.79 -1.57,-3.36 -1.08,1.05 -1.96,2.65 -0.52,3.91 -1.04,-0.28 -1.31,-2.83 -3.36,-2.08 -2.5,-1.7 -5.52,-1.71 -6.96,1.2 -2.68,0.79 -5.03,2.02 -5.69,4.77 0.13,1.89 -0.47,3.75 0.65,5.49 -1.42,-0.84 -3.32,-0.38 -4.33,0.88z\",\"name\":\"France\"},\"li\":{\"path\":\"m296.51,373.48c1.45,1.4 -0.83,3.11 -0.11,0.58 0.04,-0.19 0.08,-0.38 0.11,-0.58z\",\"name\":\"Liechtenstein\"},\"nl\":{\"path\":\"m269.04,328.72c-2.4,0.87 -0.84,-4.47 0.3,-2.01 0.8,0.23 0,1.75 -0.3,2.01z m-0.07,-3.78c0.6,-3.32 -5.02,-1.6 -5.27,-4.51 -0.12,-2.74 -3.14,1.24 -2.06,-1.29 -0.99,-0.79 -2.22,1.2 -3.22,-0.45 -0.9,0.27 -1.14,2.68 -1.08,0.81 0.68,-2.17 -1.32,-2.87 -3.53,-3.17 2.34,0.11 2.58,-2.07 3,-3.35 2.89,-2.17 4.59,-5.57 4.61,-9.18 -0.19,-3.29 4.06,-0.89 5.3,-3.43 1.14,-2.76 4.56,-2.87 7.04,-3.65 2.21,-0.91 4.28,0.51 5.07,2.25 2.56,1.19 -1.21,4.26 -0.45,6.54 -1.09,0.31 -2.87,-0.17 -2.83,1.81 -1.46,0.58 -1.58,0.91 0.09,0.93 3.35,-0.05 2.57,4.59 -0.38,4.58 -2.35,0.19 2.62,1.25 -0.12,2.19 -2.05,1.07 -3.43,-1.35 -5.33,0.59 -1.38,2.19 2.97,4.39 0.94,6.8 -0.8,0.77 -1.72,1.2 -0.27,1.66 -0.44,0.36 -0.82,1.02 -1.51,0.87z m-14.99,-3c-0.33,-1.2 -5.07,-0.99 -2.8,-1.87 1.14,1.13 2.85,1.22 3.93,0.81 -0.06,0.56 -0.57,1.04 -1.13,1.06z m0.03,-2.7c-1.37,-0.05 -4.02,-1.94 -1,-1.43 0.49,-0.33 2.23,1.73 1,1.43z\",\"name\":\"Netherlands\"},\"ba\":{\"path\":\"m376.75,425.9c-1.98,-1.6 -4.83,-1.93 -6.41,-4.05 -1.67,0.65 -0.52,0.38 -0.54,-0.48 -1.09,-2.31 -4.84,-2.74 -4.68,-5.7 -3.06,-0.33 -4.09,-3.71 -6.36,-5.29 -1.63,-1.9 -4.06,-2.19 -3.82,-4.87 -1.04,-2.44 -3.06,-3.46 -4.21,-5.63 -0.7,-2.04 0.84,-4.87 2.73,-2.36 1.15,1.84 2.68,1.49 3.04,-0.59 0.75,-2.51 2.6,0.54 3.87,-1.57 1.61,1.11 3.76,0.32 5.58,0.98 1.67,0.69 2.8,0.63 3.98,-0.64 1.28,0.32 2.43,1.79 1.94,-0.33 2.34,0.41 3.8,0.76 5.26,2.77 1.51,0.59 4.58,-2.46 3.33,0.9 -1.48,2.62 -1.55,6.27 2.2,6.4 -0.16,1.48 3,1.5 0.7,2.04 -2.41,-1.63 -1.77,2 -0.04,2.77 1.22,1.2 1.32,2.1 -0.54,1.97 -0.8,1.43 -2.82,1.15 -3.55,0.9 0.15,1.26 1.77,2.85 -0.32,2.67 -1.22,1.98 -1.74,4.24 -3.03,5.92 0.2,1.48 1.25,2.79 0.88,4.2z\",\"name\":\"Bosnia and Herzegovina\"},\"si\":{\"path\":\"m332.96,393.93c-2.25,0.07 3.69,-1.78 0.33,-3.25 -2.05,-0.05 -1.39,-3.19 -2.18,-3.5 2.21,-1.77 -0.2,-2.6 -1.36,-3.11 1.58,-3.35 4.85,-1.64 7.7,-1.58 3.3,1.9 3.73,-4.65 7.02,-2.86 2.43,0.1 4.45,-1.78 6.8,-1.33 -0.07,-1.25 0.26,-3.28 1.79,-1.82 0.58,1.34 2.29,2.96 -0.11,2.97 0.07,3.17 -6.44,2.43 -4.97,6.04 0.89,1.87 0.62,3.86 -1.85,3.13 -2.37,0.85 1.33,6.35 -2.15,4.17 -1.76,0.02 -2.78,0.57 -3.81,-1.48 -1.83,-1 -1.59,2.92 -3.88,1.76 -1.41,-0.46 -2.2,0.65 -3.34,0.85z\",\"name\":\"Slovenia\"},\"mk\":{\"path\":\"m403.18,443.19c-1.28,-0.84 -1.77,-0.72 -3.14,-0.4 -2.27,-2.33 -2.73,-5.58 -2.85,-8.64 -1.26,-2.44 2.39,-0.6 1.33,-3.13 0.23,-2.42 3.43,-3.85 5.06,-1.8 1.38,1.18 -1.35,-3.28 1.33,-2.73 2.83,0.6 4.67,-2.89 7.49,-1.79 1.51,2.18 4.77,1.95 5.79,4.72 1.29,2.63 0.37,4.95 -1.12,7.01 -1.05,2.69 -5.33,0.11 -7.05,2.7 -0.97,2.88 -4.09,3.39 -6.84,4.04z\",\"name\":\"Macedonia\"},\"hr\":{\"path\":\"m375.93,426.49c-1.17,-0.64 -1.03,-0.77 0,0z m-5.08,-2.9c-0.73,0.27 -1.25,-2.08 0,0z m-2.28,-1.81c-3.23,-1.04 -5.06,-4.7 -8.53,-5.08 -1.74,-1.23 -4.13,-1.36 -6.19,-0.38 -0.54,-3.7 -5.51,-3.9 -7.37,-6.92 -1.68,-2.86 2.16,-0.38 2.91,-1.43 -1.18,-2.05 -5.06,-2.05 -5.62,-5.05 0.07,-2.45 -0.12,-5.23 -2.77,-6.41 -1.46,-3.02 -5.35,-1.33 -4.75,1.8 -0.1,1.22 -1.81,1.15 -1.78,3.18 -0.42,-0.02 -2.43,-3.25 -2.8,-4.77 0.5,-1.41 -1.33,-2.59 0.97,-1.85 1.93,-0.05 3.32,-1.26 5.49,-0.87 1.75,-0.28 1.19,-2.99 2.55,-0.54 1.83,1.65 2.98,0.1 5.14,0.7 1.63,-0.59 0.6,-2.35 1.05,-3.41 -2.13,-1.84 3.84,-0.57 2.93,-3.42 -1.1,-1.62 -1.88,-3.53 0.82,-4.04 1.16,-1.26 3.54,-0.9 3.14,-3.3 3.59,0.79 6.21,3.61 8.62,6.19 2.91,-0.18 5.33,2.55 8.31,1.69 2.32,0.95 5.06,-5.2 5.33,-0.4 0.15,1.9 1.2,2.64 1.4,4.46 1.55,0.76 2.24,0.37 1.04,2.01 -0.17,1.69 1.08,1.86 -0.44,2.99 -1.42,0.96 -2.53,-3.66 -4.34,-2.06 -2.98,-1.4 -5.14,1.63 -8.13,0.38 -2.22,0.17 -4.52,-1.28 -6.44,-0.34 -1.8,-0.84 -3.54,0.72 -3.99,2.64 -1.51,-1.59 -4.97,-3.78 -5.35,0.02 -1.16,3.92 2.99,5.58 4.38,8.58 -0.13,1.41 -1.05,2.05 0.83,2.59 2.9,1.5 4.8,4.21 6.98,6.53 2.65,1.59 3.98,4.49 6.78,6.28l-0.16,0.23 0,0z\",\"name\":\"Croatia\"},\"dk\":{\"path\":\"m311.37,281.37c-1.81,-0.13 -3.63,-2.95 -0.99,-2.75 0.71,0.89 2.21,0.72 1.2,1.27 0.93,0.68 0.95,1.07 -0.21,1.48z m2.12,-1.04c1.35,-0.18 -0.34,1.13 0,0z m0.84,-0.24c-0.07,-1 -2.35,-2.59 0.16,-1.62 2.08,0.28 -0.51,1.71 -0.16,1.62z m-17.99,-0.84c-2.31,-0.88 -6.15,-0.22 -4.5,-3.71 0.81,-2.84 -1.69,-4.3 -3.84,-4.7 -1.19,-2.12 0.77,-2.92 1.79,-2.7 1.1,-1.9 -0.71,-4.04 -1.69,-4.68 0.35,-1.37 0.2,-5.41 0.68,-4.97 1.59,3.78 6.34,-5.25 4.96,-0.56 0.24,2.86 4.45,-0.07 2.01,-1.61 0.04,-2.03 -0.06,-3.57 2.27,-2.05 0.18,-1.79 3.93,-0.45 2.6,-2.4 -2.36,-1.07 -4.97,1.4 -7.44,0.51 -0.9,0.41 -2.06,0.6 -1.03,-0.46 2.89,0.74 6.43,-0.56 7.07,-3.76 0.42,-1.7 4.2,-3.59 3.75,-0.9 2.01,1.66 -0.21,4.73 -1.55,6.01 0.4,0.87 0.32,2.52 0.39,3.1 -1.16,1.34 2.36,4.31 4.12,3.09 1.32,1.67 -1.85,5.56 -2.69,2.65 -3.21,0.21 -0.77,4.74 -2.69,6.35 -0.74,1.02 -5.24,-0.82 -2.77,1.37 1.61,1.85 3.89,1.32 5.37,0.39 1.04,1.32 2.66,0.54 1.88,1.61 2.2,1.44 0.71,6.32 -1.89,3.8 -0.99,-0.9 -2.97,-2.42 -3.55,-4.38 -0.8,-2.14 -4.39,1.02 -3.28,1.06 2.19,-0.86 -0.04,1.87 1.38,2.68 -1.87,1.01 -1.25,3.06 -0.58,3.35 -0.3,0.27 -0.55,0.59 -0.78,0.92z m18.96,-2.29c-1.92,-0.02 -1.04,-3.7 -3.92,-2.81 -3.51,-0.09 0.22,-3.64 -2.76,-5.02 -1.79,-1.21 3.2,0.15 3.13,-2.28 0.04,-2.46 4.91,0.23 1.92,1.9 1.06,2.45 3.33,-0.76 2,-2.36 -0.51,-1.34 -2.25,-2.02 0.21,-1.96 2.33,-0.37 1.21,1.23 1.29,2.13 2.22,2.03 -1.98,3.78 -1.88,4.86 2.05,0.87 2.04,2.76 -0.28,2.66 -0.97,0.83 0.11,2.08 0.29,2.88z m-25.23,-19.54c-1.89,-1.51 1.09,-5.6 1.21,-4.99 -1.52,1.21 -1.11,3.3 -1.21,4.99z\",\"name\":\"Denmark\"},\"ru\":{\"path\":\"m558.98,364.3c-2.56,-0.91 -4.97,-2.14 -7.36,-3.43 -2.39,-1.15 -4.94,-2.06 -7.59,-2.35 -2.81,2.28 -5.5,-0.94 -8.06,-1.85 -1.23,0.3 0.78,2.15 -1.52,1.8 -2.42,-0.25 -3.69,-3.69 -6.4,-2.82 -1.31,0.16 -4.41,0.18 -1.55,-0.66 1.64,-0.7 0.81,-3.34 -0.75,-1.74 0.37,-1.63 2.93,0.94 3.87,-1 1.25,-0.31 2.74,-1.24 3.63,-1.06 1.16,-2.32 -3.44,-3.39 -1.08,-5.92 0.57,-0.81 -0.94,-4.08 0.12,-2.72 0.39,2.37 2.24,1.11 1.25,-0.78 -1.26,-3.41 3.86,0.53 3.04,-2.81 -1.97,-1.81 -4.99,-1.7 -7.55,-2.54 -2.06,-0.94 2.06,-1.24 1.86,-3.16 2.06,1.7 4.87,-1.76 1.32,-1.4 -0.21,-1.02 3.11,-2.69 3.56,-4.64 3.16,0.27 3.03,-5.1 -0.28,-4.48 -2.62,0.21 -2.08,3.91 -4.95,4.14 -2.31,1.85 -0.59,-0.97 -1.26,-1.15 -2.27,0.02 -1.28,-3.82 0.48,-4.34 1.4,-2.13 0.73,-5.08 4.3,-4.68 2.91,0.1 4.24,-2.66 2.99,-5.05 -0.44,-0.81 1.31,-4.54 -0.5,-3.12 -0.89,0.38 -1.08,-3.79 -3.06,-2.28 -2.61,-1.85 3.34,-2.5 1.03,-4.59 -1.03,0.14 -4.3,0.91 -2.02,-0.74 1.96,-2.14 1.02,-4.53 -0.68,-6.4 1.16,-2.59 -2.93,-0.35 -3.64,0.61 0.41,-2.95 -3.61,-0.32 -4.74,-2.01 -1.3,0.69 -2.17,2.73 -3.44,0.57 -1.62,0.46 -2.9,0.42 -4.52,-0.03 -1.18,0.97 0.35,3.57 -1.91,1.94 -2.66,-0.03 -3.84,-4.48 -6.19,-3.24 -2.12,0.99 -3.16,6.03 -6.01,3.79 -0.55,1.88 -3.23,-1.75 -4.12,0.93 -2.26,2.15 -4.17,-0.6 -4.14,-2.64 -1.31,-0.74 -1.67,-2.47 -1.76,-3.17 -1.84,0.68 -2.55,-1.54 -3.04,-1.81 -1.53,1.29 -5.9,2.64 -6.27,0.53 -0.46,-1.43 -3.35,-2.71 -0.58,-3.43 0.87,-2.91 -3.85,-2.55 -4.29,-5.27 -1.34,-1.28 -2.82,-2.7 -4.07,-0.62 -2.6,-1.29 -3.34,1.16 -4.86,2.57 -2.29,-0.64 -4.88,0.47 -3.99,3.28 -1.64,3.09 -5.33,-1.16 -5.28,-3.38 0.29,-1.54 -1.99,-0.85 -0.93,-2.73 -1.04,-1.23 -5.06,-2.53 -2.44,-4.58 2.85,1.31 6.86,-0.11 6.98,-3.34 2.36,-1.51 -0.16,-3.89 -1.6,-4.2 -0.58,-2.91 -4.71,-0.88 -5.61,-1.07 0.65,-2.69 -1.62,-3.41 -3.71,-3.4 -2.11,-1.16 -3.32,-2.8 -3.81,-4.83 -2.42,0.17 -3.41,-1.67 -2.18,-3.83 -0.02,-1.71 -2.9,-2.44 -1.99,-4.84 -0.01,-1.79 -0.45,-2.87 -2.15,-2.08 -2.12,-2.07 -5.85,-2.66 -7.51,0.31 -0.95,2.92 -2.17,-0.33 -1.92,-1.55 -1.94,-2.34 -4.43,2.65 -5.64,-0.22 -1.71,0.04 -3.09,1.26 -3.28,-1.31 -0.9,-2.65 -2.85,-5.01 -4.71,-6.53 -1.83,-1.02 1.04,-5.27 -2.45,-5.76 -1.67,-0.51 -0.04,-2.71 -2.19,-1.57 0.05,-1.42 0.26,-2.99 1.68,-3.72 -0.54,-0.99 -1.34,-2.16 -1.45,-2.96 -2.84,-0.69 -1.01,-4.26 -2.77,-5.86 -2.08,-2.24 0.85,-4.53 0.39,-6.92 -1.01,-2.41 3.22,-2.6 0.55,-4.16 -0.83,-1.3 -2.35,-4.31 0.18,-2.28 1.51,-0.56 0.02,-3.79 2.55,-2.16 2.03,-0.4 0.55,-4.34 3.6,-3.39 1.61,0.41 6.06,0.64 4.72,-1.87 -2.47,0.38 -3.46,-3.31 -5.66,-1.7 -1.73,1.59 -3.35,0.22 -4.28,-0.75 -2.83,1.04 -0.5,-5.97 -3.43,-3.33 -0.79,1.95 -3.72,3.09 -1.67,0.48 4.94,-7.07 7.08,-15.55 9.98,-23.55 0.44,-3.03 2.51,-7.51 -0.31,-9.8 -2.38,-1.89 -5.29,-2.93 -7.96,-4.32 -3.88,-1.06 2.38,-6.07 -1.12,-8.02 -2.45,-0.36 -4.96,-1.94 -3.33,-4.47 -1.48,-1.21 -6.02,-2.28 -3.05,-4.86 0.42,-0.7 -3.23,-0.64 -2.08,-2.79 0.39,-2.06 -0.85,-2.94 1.09,-3.89 -0.82,-2.4 -2.73,-4.51 -4.14,-6.68 -1.51,-2.32 -3.78,-4.06 -5.41,-6.21 -0.98,-3.34 2.21,-6.3 1.62,-9.59 -0.91,-2.31 -3.95,-2.73 -4.86,-5.04 -3.1,0.98 -6.11,-2.82 -4.58,-5.63 1.26,-2.13 -3.52,-2.39 -0.66,-3.49 1.51,-2.49 0.64,-5.59 3.12,-7.72 -0.6,-2.56 3.46,0.62 3.16,-2.41 -2.11,-2.17 1.85,-1.54 2.99,-1.35 2.03,1.63 4.11,1.29 6.52,0.08 0.37,0.23 -0.76,2.57 1.13,2.81 -1.22,0.77 -1.32,4.65 0.4,2.88 0.2,-1.73 1.36,-3.42 1.9,-5.04 3.21,0.08 6.07,-1.95 9.29,-1.34 2.75,0.76 5.58,1.26 8.28,2.2 2.14,0.82 4.03,2.32 6.18,3.01 2,-1.35 5.54,1.61 7.21,-0.07 2.23,0.7 3.31,3.46 5.54,1.69 1.16,1.01 0.65,2.43 2.18,2.82 1.01,2.1 3.8,2.21 3.29,5.21 -0.09,3.44 0.15,7.2 -2.11,10.07 -2.26,3.09 -6,5.79 -10.02,4.97 -2.84,-0.74 -5.34,0.99 -8.08,1.16 -2.01,0.97 -5.49,-2.15 -6.54,-0.13 -1.33,0.97 -2.24,-0.89 -2.89,-1.46 -1,2.57 -7.21,1.52 -6.06,-1.62 -0.53,-0.64 -4.07,0.19 -5.44,0.48 -1.33,1.22 -0,2.41 1.25,1.32 2.16,-0.38 0.62,2.19 3.06,2.74 1.23,1.53 6.57,0.25 5.42,2.51 -1.91,3.1 2.22,0.91 3.81,1.72 2.09,0.58 5.78,2.19 4.56,4.13 2.75,1.59 0.23,3.96 -0.48,5.25 2.3,-0.18 4.43,1.99 4.35,4.27 2,-0.84 0.78,1.8 1.68,2.47 0.1,3.23 4.49,3.53 6.69,2.22 2.28,0.22 3.06,3.83 6.02,2.68 3.14,0.7 6.51,-0.4 7.17,-3.81 0.24,-2.71 -4.02,-6.69 -5.49,-3.3 -2.65,0.34 -5.44,-2.93 -6.7,-4.13 2.45,-0.62 0.68,-2.65 0.87,-3.74 2.98,-0.53 5.18,2.7 8.25,1.24 2.42,-0.59 5.57,1.81 7.6,-0.26 0.47,-1.42 5.9,0.3 3.69,-2.76 -1.12,-2.61 -3.65,-4.39 -6.37,-5.3 -3.26,-1.55 -1.48,-4.68 -0.67,-7 0.13,-2.98 3,-4.72 3.48,-7.44 -0.29,-1.95 -0.01,-6.22 2.42,-3.58 1.94,-2.25 5.82,-1.29 7.83,0.68 1.2,2.1 3.32,0.53 1.22,-1.06 -2.48,-1.87 -1.81,-4.87 -2.24,-7.47 -1.88,-1.57 -2.53,-5.38 -5.87,-5.07 -3.66,0.72 -1.05,-5.18 -3.4,-6.67 -1.19,-0.92 0.46,-3.75 -1.48,-3.55 -1.01,-2.39 -5.64,-2.94 -6.17,-3.55 2.64,0.97 4.98,-0.76 6.95,-2.52 2.55,-2.21 4.69,1.32 7.17,1.82 2.66,0.14 2.98,2.58 0.58,3.55 -1.44,1.01 -3.37,2.5 -1.86,4.15 -2.05,2.82 1.45,5.04 4.18,4.46 2.24,0.66 3.9,4.74 5.89,0.83 -0.45,2.74 1.7,0.82 1.6,-0.76 0.67,-1.92 4.97,-2.44 2.12,-4.7 -0.88,-2.08 -0.93,-5.08 -2.83,-6.29 1.51,-0.41 1.74,-3.36 4.33,-3.14 0.74,-1.52 -4.26,-0.47 -1.65,-2.01 1.38,-2.03 1.95,-4.13 2.25,-6.48 -0.71,-3 2.32,-4.04 2.61,-6.78 0.79,-1.07 0.87,-3.3 2.02,-0.85 0.37,3.39 3.79,-1.54 1.28,-2.71 -2.87,-0.55 -1.44,-3.38 -0.47,-5.41 0.59,0.58 1.75,-1.54 1.49,0.66 0.07,2.26 4.9,2.03 2.07,4.51 -3.06,1.89 2.52,2.73 3.16,0.29 0.8,-0.58 2.28,-0.85 1.45,-2.12 2.18,1.11 3.08,-1.11 1.14,-2.24 -0.63,-3.15 1.27,-6.2 4.04,-7.12 3.15,-0.33 1.76,-4.5 2.46,-6.7 2.68,1.91 1.44,-1.23 0.17,-1.57 -0.24,-1.73 3.07,-1.64 3.49,-0.99 -0.52,3.68 4.93,5.45 5.98,1.6 -0.74,-2.19 -4.02,-2.52 -1.51,-4.94 1.37,-2.71 -0.97,-5.14 -3.64,-5.47 -2.06,-0.69 -6.98,-0.83 -4,-3.86 -2.84,-2.24 1.77,-2.66 3.14,-4.1 2.67,-3.27 6.84,-5.01 10.97,-5.41 2.08,0.66 3.04,-0.42 5.04,-0.78 3.26,-0.69 5.53,-2.7 8.88,-1.89 1.83,0.09 3.72,-0.92 5.18,-0.23 3.3,-0.51 -0.59,-3.78 0.31,-4.05 7.13,0.01 14.26,-0.01 21.38,0.01 2.09,0.14 -2,3.01 0.93,2.93 1.33,0.5 2.97,0.39 1.78,1.28 0.04,1.2 -0.09,5.95 -1.36,3.75 0.88,-1.97 -1.47,-3.03 -1.4,-0.65 -0.13,1.49 -3.77,0.21 -3.69,2.55 -3.37,1.5 0.23,4.73 2.72,4.05 3.82,-0.71 6.21,-3.84 8.09,-6.94 1.84,-0.32 4.98,-2.24 2.66,-4.31C557.34,3.94 555.66,1.55 558.62,2.18c40.17,0 80.35,0 120.52,0 0,32.42 0,64.83 0,97.25 -2.09,0.36 -2.95,2.3 -1.54,3.74 -2.44,-1.53 -2.16,1.82 -2.17,2.03 -1.83,-0.06 -0.41,-2.79 -2.86,-3.06 -0.55,-1.54 -1.56,-2.65 -3.54,-1.77 -1.52,-1.23 -4.42,-2.86 -6,-3.08 -2.3,1.54 0.4,6.71 -3.71,5.55 -1.63,0.21 -3.74,1.9 -3.4,2.86 -1.22,-0.25 -2.92,1.14 -1.43,2.07 -2.82,1.19 1.7,2.9 -0.94,4.55 -2.72,2.09 2.48,0.44 1.29,3.06 -2.53,0.4 -0.3,2.61 -2.09,4 -0.4,3.26 -2.41,5.93 -3.86,8.82 0.28,0.79 -3.1,0.12 -1.27,1.6 -1.02,2.01 -3.11,4.53 -0.2,6.39 -2.52,0.22 -3.43,3.38 -5,5.17 -0.91,1.5 1.12,2.54 -1.32,2.93 -1.23,2.37 -2.15,5.27 -3.97,7.32 1.46,1.7 -3.54,1.33 -2.2,4 0.89,0.84 -2.06,0.35 -2,1.51 -2.16,-0.19 -3.58,4.12 -1.57,4.8 2.75,-1.67 -0.46,5.07 2.92,2.57 1.47,-1.64 1.11,3.68 3.89,2.06 1.15,-1.3 4.64,-3.43 5.55,-1.97 -0.97,2.34 -5.83,2.91 -5.32,5.59 1.65,1.51 -1.67,5.32 2.05,4.87 0.58,1.25 3.67,-0.2 3.17,2.56 -0.46,2.07 -2.09,3.57 -1.96,5.92 -2.28,1.79 1.99,3.07 3.27,1.27 1.22,3.88 3.54,-2.53 5.73,-0.07 1.71,0.15 3.48,-3.04 4.82,-0.75 0.7,2.54 3.93,4.85 1.33,7.39 -0.96,2.05 -3.49,5.21 -5.83,2.98 -2.18,1.39 0.8,4.71 -0.35,6.74 -1.64,-3.35 -4.19,2.67 -7,1.13 -1.58,0.37 -1.77,-1.65 -2.62,-1.81 -0.7,0.72 -4.76,0.36 -3.34,1.66 -0.36,0.87 -3.77,2.22 -1.73,4.23 -0.31,2.89 -2.88,-1.51 -4.31,1.09 -1.46,1.61 -3.55,2.49 -3.46,4.75 -0.41,1.43 -0.54,3.48 -0.05,5.34 -0.27,1.74 -0.64,1.81 -2.46,1.7 -2.35,1.24 -5.67,-2 -7.94,0.36 -1.02,1.19 0.11,2.72 -2.11,2.54 -1.91,-2.74 -5.13,1.42 -6.94,-1.53 -3.68,-1.24 -4.83,6.16 -8.08,2.91 -0.68,-0.31 -3.05,-3.22 -2.23,-1.07 0.44,2 -3.21,4.32 -1.91,5.59 -1.58,-0.54 -1.24,3.52 -1.64,0.7 -1.39,-2.07 -3.9,0.94 -5.63,0.87 0.37,1.37 0.82,0.9 -0.34,1.77 -0.21,2.03 1.56,4.11 -0.43,6.09 -0.26,2.82 -3.85,3.15 -3.39,6.04 1.82,1.79 -0.1,4.43 -1.07,6.43 -3.76,0.87 1.99,2.12 2.03,4.1 0.89,1.78 3.76,2.19 1.71,4.57 -2.3,2.9 -5.15,-1.81 -7.83,-2.01 -3.78,-1.12 -4.32,3.77 -2.19,5.82 -2.31,2.78 -0.33,6.19 0.38,9.1 0.77,1.86 4.43,0.77 3.16,3.54 -0.62,2.49 -0.11,4.99 0.21,7.43 1.17,3.44 5.88,-1.22 6.9,2.2 0.63,0.39 -1.33,1.3 0.64,1.71 0.61,2 4.71,2.89 4.1,0.07 2.42,-0.19 4.16,-3.38 6.65,-1.26 2.61,1.3 4.67,3.68 7.51,4.49 2.44,-0.41 2.29,3.63 -0.15,2.17 -3.16,1.33 0.69,4.72 2.95,3.33 2.69,-1.74 4.67,2.16 2.98,3.28 -1.53,-1.48 -3.23,1.37 -1.51,2.46 -1.66,0.09 -1.17,4.59 -3.15,5.57 -2.16,-0.57 -0.01,3.21 -2.03,1.18 -1.51,-0.51 -1.63,0.74 -2.82,1.17 0.46,1.78 3.76,-0.82 2.44,1.78 0.45,1.46 -0.73,2.48 0.5,3.94 -0.91,1.42 1.06,4.29 -0.87,5.01 0.89,2.05 -1.39,4.46 -0.11,6.57 1.6,2.36 2.84,-1.08 4.63,0.84 2.19,0.61 6.36,2.5 5.42,5.48 1.51,1.9 3.6,2.8 3.89,5.79 1.08,1.98 3.28,1.24 4.3,3.24 2.25,0.68 4.45,1.39 6.37,2.79 1.16,1.48 3.78,2.23 4.69,2.86 -0.38,2.65 -2.37,5.25 -1.49,7.93 0.05,2.46 -6.1,4.34 -5.15,1.14 -2.52,-0.74 -5.24,-0.5 -7.55,-1.88 -1.49,0.54 -3.24,0.69 -4.5,0.55 -1.71,1.13 -6.19,1.11 -5.4,-1.84 -0.88,-3.94 -4.63,1.38 -6.95,-0.97 -1.81,-1.22 -2.73,1 -2.64,2.13 -3.4,-2.47 -4.1,3.12 -6.37,4.33 -1.56,1.14 -0.42,-3.07 -2.75,-1.69 -2.4,0.37 -5.28,1.01 -7,-0.66 -2.78,0.67 -5.63,0.98 -8.42,1.61 1.94,1.66 -2.76,2.56 -3.79,2.43 -2.67,-0.72 -5.06,0.99 -7.69,0.02 -2.34,1.37 -6.27,0.31 -6.05,4.11l-0.04,0.01 0,0z m57.81,-33.85c-0.89,-1.57 0.49,-2.17 0,0z m-241.23,-51.26c-1.5,-0.26 -4.88,0.4 -5.3,-0.46 2.59,-1.58 -0.9,-5.56 2.71,-5.44 2.09,-0.97 5.31,1.36 6.88,-1.15 -0.17,-1.75 -1.39,-4.59 1.04,-3 2.58,1.66 5.83,-0.05 8.09,1.03 2.4,1.17 -0.19,4.14 1.51,6.12 -0.91,2.05 -4.72,1.7 -6.85,2.38 -2.67,0.39 -5.38,0.53 -8.08,0.53z m245.17,-54.27c-0.96,-0.5 -1.79,-4.14 -0.7,-1.7 0.41,0.34 1.1,1.13 0.7,1.7z m15.47,-62.08c-0.5,-1.68 1.86,0.26 0,0z M392.43,81.96c-1.18,-1.24 -0.52,-3.74 1,-1.58 0.97,0.64 4.51,-0.85 3.11,1.22 -1.28,-0.1 -4.06,-2.2 -4.11,0.36z m69.72,-22.48c-3.13,-0.37 -5.18,-4.96 -3.51,-7.6 1.49,-0.95 5.9,-1.19 6.08,0.31 -0.75,2.23 0.93,5.01 -1.2,6.83 -0.37,0.32 -0.88,0.46 -1.36,0.46z m1.2,-32.66c0.64,-1.98 -0.94,-1.7 -1.81,-2.37 0.83,-0.97 3.57,-1.76 1.01,-2.23 -1.29,0.52 -2.78,0.7 -3.28,0.14 -1.2,0.89 -3.04,-4.18 -2.96,-0.9 1.94,3.97 -3.66,-2.01 -2.98,1.25 2.3,2.87 -2.86,2.37 -3.53,0.29 -1.84,-1.41 -2.9,-5.04 0.07,-4.98 -0.36,-1.21 -1.52,-2.86 -0.18,-4.45 -3.01,0.94 -0.61,-2.79 -2.49,-3.65 -1.26,2.21 -4.03,0.25 -1.58,-1.13 2.3,-1.91 -4.09,-1.91 -1.43,-4.6 0.66,-1.81 2.03,-2.29 3.79,-2.01 1.73,-0.33 3.25,0.66 4.85,0.17 2.53,-1.3 -3.03,3.08 0.48,2.2 3.11,-1.44 -1.22,5.41 2.65,3.83 2.34,0.52 1.33,4.72 3.21,4.64 2.81,0.65 4.59,3.49 7.55,3.98 2.95,1.5 6.52,1.02 9.42,1.43 -0.95,0.85 -5.31,2.46 -4.34,3.45 -1.86,0.24 -4.2,1.89 -2.01,3.36 -1.56,0.82 -3.63,-0.42 -4.9,1.06 -0.87,-0.61 -1.05,-0.3 -1.52,0.53z m23.35,-5.93c-1.68,-0.42 -4.33,-0.5 -2.76,-2.36 -1.89,0.07 -1.65,-3.14 0.36,-1.62 2.48,0.8 5.12,0.27 7.63,0.6 2.21,1.62 -2.46,4.83 -3.16,1.83 -0.45,0.12 -0.96,1.84 -2.07,1.55z\",\"name\":\"Russian Federation\"},\"mt\":{\"path\":\"m343.65,509.08c-1.52,-0.23 -1.75,-0.24 0,0z m1.95,2.72c-1.32,-0.63 -1.5,-0.7 0,0z\",\"name\":\"Malta\"},\"me\":{\"path\":\"m385.29,433.13c-1.98,-1.45 -3.12,-5.3 -6.16,-4.27 -0.68,-0.6 -0.46,-1.87 -1.44,-2.17 0.16,-1.66 0.06,-3.3 -0.89,-4.86 1.96,-1.05 1.28,-4.74 3.12,-5.09 1.81,3.01 2.14,-1.15 0.71,-2.43 2.24,-0.2 3.4,-2.11 5.57,-0.36 3.49,0.56 2.95,4.72 6.22,5.9 -2.5,0.45 -0.84,6.17 -3.72,4.67 0.19,-3.37 -2.81,0.5 -2.99,1.87 -0.8,1.83 -2.3,3.26 -0.46,4.87 0.08,0.47 0.4,1.59 0.03,1.87z\",\"name\":\"Montenegro\"},\"rs\":{\"path\":\"m397.48,431.57c-0.16,-2.49 -1.05,-5.46 -3.99,-5.18 -0.83,-1.86 -3.16,-3.89 -0.74,-5.1 2.42,-2.35 -3,-3.15 -2.73,-5.8 -1.28,-2.34 -5.16,-1.7 -5.47,-5.07 -0.61,-1.48 -2.43,-2.36 0.08,-2.14 2.37,-1.69 -1.79,-3.25 -2.79,-4.49 -3.49,-0.35 0.76,-4.99 -0.07,-7.08 -1.54,-0.41 -2.38,-0.6 -2.22,-2.53 -0.29,-0.9 3.52,-0.03 1.84,-1.89 -1.99,-0.46 -4.18,-1.03 -2.61,-2.61 0.5,-1.92 -2.64,0.29 -1.69,-2.2 -0.12,-1.58 -1.93,-2.81 0.65,-3.27 2.64,-1.35 4.3,-3.64 7.52,-3.04 2.34,-0.11 4.56,2.67 6.11,3.82 1,0.92 0.22,4.94 3.24,4.94 1.65,0.3 5.5,0.5 3.47,2.78 1.27,1.27 0.97,1.07 -0.4,2.22 0.32,1.47 3.21,0.4 3.09,2.01 1.78,0.14 4.21,-0.13 4.93,1.74 2.85,0.45 1.17,-3.79 1.99,-3.56 1.66,0.7 3.37,1 1.04,1.99 -1.64,2.21 4.19,3.86 0.86,5.71 -2.2,2.75 0.34,6.72 2.98,8.19 2.92,0.51 3.82,2.98 1.52,5.06 -0.82,0.05 -2.7,-0.25 -2.65,1.85 -1.23,2.37 3.66,5.04 -0.48,5.54 -2.42,1.11 -4.61,2.18 -7.35,2.39 -1.32,2.74 -6.31,0.55 -6.16,5.74z\",\"name\":\"Serbia\"}}});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.germany.js",
    "content": "/** Add Germany Map Data Points */\njQuery.fn.vectorMap('addMap', 'germany_en', {\"width\":592,\"height\":801,\"pathes\":{\"th\":{\"path\":\"m312.19,352.19c-2.73,0.22 -2.22,4.11 -3.64,5.97 -1.01,2.7 -4.71,2.26 -7.13,2.91 -2.52,0.84 -2.65,-2.93 -5,-3.11 -2.02,-1.67 -5.36,0.2 -4.98,2.55 -0.62,4.82 -6.22,6.91 -9.72,9.65 -2.98,3.28 -7.8,2.07 -11.1,4.73 -2.55,1.59 -5.81,3.14 -7.87,5.03 0.64,3.74 1.96,8.43 6.44,8.84 3.41,0.33 2.07,4.91 5.71,5.17 2.12,1.11 4.61,1.57 6.04,3.67 2.61,-0.18 1.95,2.83 0.13,3.41 -0.75,1.55 1.21,2.98 -0.06,4.88 -2.65,1.33 -1.59,-4.91 -4.58,-2.96 -2.15,1.14 2.24,4.28 1.18,6.62 -0.73,2.87 3.35,2.38 3.93,4.97 0.22,2.4 -1.82,4.2 -4.4,4.04 -1.89,0.05 -3.04,-2.14 -5.19,-1.69 -2.29,-1.13 -3.6,1.4 -2.29,3.19 0.92,3.27 2.06,6.86 1.64,10.24 -1.04,2.07 -1.35,6.09 -4.56,5.07 -2.5,-0.54 -3.05,2.78 -2.17,4.43 0.33,2.11 -1.94,1.58 -0.64,3.71 0.2,3.37 -2.96,5.74 -4.05,8.57 -1.46,3 3.1,3.73 4.61,2.61 -1.8,-1.67 -0.95,-4.04 1.83,-4.18 2.21,-0.46 5.52,-0.43 5.9,2.47 2.29,2.61 -2.68,2.96 -1.96,5.59 0.5,1.86 -0.79,8.31 0.95,7 1.72,-3.38 5.8,-2.18 8.88,-2.88 2.69,0.85 3.11,5.24 6.43,5.5 3.89,0.66 4.77,4.88 6.09,7.93 -0.55,3.14 2.45,3.82 4.54,1.98 0.31,5.02 5.89,6.45 10.06,7.19 -0.2,3.63 -1.27,7.43 0.53,10.84 2.35,0.1 5.18,2.71 7.07,1.85 0.03,-1.3 -1.32,-4.82 1.27,-4.26 2.07,-0.06 5.3,2.5 6.66,0.25 0.29,-2.71 -3.43,-1.58 -4.54,-3.52 -1.94,-1.64 -5.47,-2.54 -4.67,-5.79 -0.91,-3.55 3.89,-3.37 6.02,-4.77 2.87,-1.54 6.27,-0.65 9.38,-0.79 1.61,1.84 2.4,4.9 5.49,4.49 2.33,1.02 3.21,-1.38 4.71,-2.1 2.52,-0.39 4.79,2.85 4.64,5.17 -2.32,0.34 -2,2.87 -0.04,3.79 1.25,1.09 4.62,-1.62 5.78,-2.97 1.07,-2.95 1.98,-5.92 0.84,-9.01 0.33,-2.69 -1.49,-4.1 -2.06,-6.05 -0.35,-1.26 0.15,-3.52 1.89,-2.72 2.51,-0.54 3.16,-3.11 5.03,-4.31 2.41,-0.31 6.41,-0.25 6.75,2.81 -1.09,1.47 -1.71,2.75 -1.31,4.94 2.04,1.91 4.67,0.65 4.88,4.5 0.54,1.96 3.79,3.19 4.05,0.56 1.06,-1.74 3.34,-0.66 4.25,0.63 6.13,-1.07 12.67,-0.94 18.25,-3.97 -1.68,-0.65 -2.19,-2.46 -0.38,-3.31 1.4,-0.73 5.24,-2.7 2.32,-4.13 -1.1,-2.24 -4.24,-0.26 -4.55,-3.08 -1.3,-2.44 2.29,-4.28 3.11,-6.33 2.98,-0.71 2.97,-4.68 5.91,-5.31 1.95,1.54 1.58,4.54 1.16,6.72 1.66,-0.64 6.6,0.71 6.33,-0.74 -3.05,-0.17 -0.61,-3 1.2,-3.1 2.57,-1.22 5.33,-2.23 7.87,-3.14 1.72,-1.51 4.46,-4.54 0.25,-4.48 -1.74,-1.64 -3.31,-4.12 -3.69,-6.5 0.38,-2.82 0.28,-5.87 1.72,-8.41 0.89,2.58 5.82,0.77 5.81,-1.09 0.71,-1.83 4.18,-2.99 5.41,-0.97 2.56,-0.68 0.59,-4.69 3.44,-5.44 3.25,-1.87 7.85,-0.32 10.53,-2.97 -2.57,-1.55 -0.79,-6.34 -4.47,-6.16 -2.74,-0.84 -6.28,-2.6 -5.42,-6.03 0.8,-2.88 -3.5,-2.46 -5.15,-3.47 -2.87,-0.81 -6.3,-2.89 -8.61,0.02 -2.54,2.1 0.01,3.58 1.21,5.21 -0.17,3.21 -2.39,6.03 -3.68,8.9 -1.08,1.71 -2.42,1.35 -2.66,-0.64 -2.24,-4.02 -1.09,1.94 -3.66,-0.66 -2.71,-1.39 -5.95,-1.32 -8.59,0.19 -0.02,-4.6 -5.04,-6.77 -8.31,-9 -2.72,-0.06 -5.6,1.79 -8.33,0.1 -2.65,-0.52 -5.05,-1.27 -4.7,-4.45 -2.02,-1.11 -5.86,-2.21 -7.53,-1.16 -1.29,1.98 -3.84,1.06 -5.84,1.31 -1.81,-1.01 -2.04,-3.39 -2.5,-5.41 3.14,0.3 2.23,-3.59 0.51,-4.83 -1.37,-2.03 -4.15,0.89 -5.53,-1.6 -1.69,-0.96 1.02,-5.32 2.36,-2.94 1.62,-1.63 2.76,-3.73 4,-5.66 -0.78,-1.58 -4.12,-2.02 -3.47,-4.09 -2.15,-0.17 -2.01,-2.77 -1.75,-4.31 -4.91,-2.77 -10.54,-0.91 -15.84,-1.69 -2.69,-0.42 -5.41,-2.8 -8.03,-1.28 -1.99,0.45 -4.28,-1.52 -3.68,-3.5 0.86,-2.86 -0.76,-4.88 -2.35,-7.1 -1.55,-2.64 -4.98,-6.28 -2.16,-9.19 -2.47,-3.43 -7.17,-3.03 -10.89,-3.21 -0.41,0.09 -0.82,0.18 -1.23,0.27z m95.09,106.63c0.36,0.47 0.77,-0.65 0,0z\",\"name\":\"ThÃ¼ringen\"},\"sh\":{\"path\":\"m173.41,0.78c-1.96,2.02 -2.32,5.26 -3.72,7.72 0.61,-2.46 2.87,-3.44 4.94,-4.31 1.37,-2.31 1.87,-2.9 -1.22,-3.41z m-4.63,9.69c-1.37,3.14 -2.78,7.11 -2.63,10.16 1.42,-1.81 3.12,-2.33 4.66,-0.67 1.41,1.35 2.9,1.87 4.52,0.27 2.61,-1.53 -0.74,-0.41 -1.92,-1.16 -2.06,-1.81 -4.59,-3.55 -3.89,-6.71 -0.29,-0.68 0.25,-4.89 -0.73,-1.88z m16.78,8.5c-1.27,2.96 0.71,4.89 2.59,6.89 3.39,3 2.55,7.98 4.79,11.67 0.62,3.55 5.38,3.23 6.46,6.57 3.09,5.18 8.01,9.55 9.53,15.49 -0.32,3.65 -4.55,4.93 -6.72,7.41 -1.75,1.07 -3.73,2 -5.62,0.78 -2.44,0.59 -7.26,-0.45 -7.37,2.95 0.9,2.44 -1.97,3.88 -3.95,4.18 -1.94,-2.13 -2.52,-1.01 -2.77,1.45 -0.87,2.9 3.21,3.7 4.93,4.64 1.92,-3.3 6.38,-1.94 9.56,-2.06 2.21,2.21 1.18,5.9 0.57,8.61 -1.14,2.05 -2.44,4.23 -0.74,6.43 0.5,2.36 2.45,2.12 4.01,1.08 3.24,-0.45 3.19,4.26 4.78,6.16 2.07,2.16 -0.11,6.53 -3.11,5.16 -1.14,-1.75 -5.79,-1.46 -5.26,0.73 2.63,2.93 2.85,7.1 5.04,10.2 1.56,1.12 3.1,3.53 5.09,1.5 1.43,0.34 0.36,3.67 3.4,2.47 5.03,0.4 10.67,-0.76 14.8,2.92 4.21,3.5 4.64,9.55 8.23,13.45 3.79,1.81 5.25,6.01 5.59,9.84 1.82,3.22 5.7,4.78 8.7,6.74 2.98,1.76 2.45,-2.04 3.3,-3.87 0.32,-3.07 2.7,-3.68 2.95,-0.51 1.97,4.21 4.12,0.09 5.74,-1.98 1.13,-1.81 1.09,-3.61 3.84,-2.85 2.75,1.63 4.73,-1.94 6.94,-3.16 -0.04,-2.48 1.02,-3.47 3.73,-4.47 1.51,-1.18 4,-1.93 4.95,0.16 -0.92,3.02 -1.41,6.74 1.26,9.04 1.1,1.47 -0.59,3.76 -1.58,5.02 -3.72,1.55 -2.94,7.3 0.6,8.57 3.05,0.71 1.81,2.28 4.18,4.34 1.9,2.3 3.7,4.33 6.71,5.17 4.24,1.47 7.8,5.01 12.4,5.13 1.57,-2.96 0.71,-7.47 3.24,-9.94 1.76,-0.99 3.85,1.15 5.23,-1.34 4.78,-3.66 7.65,-9.11 11.5,-13.72 0.07,-2.89 2.79,-4.69 1.09,-7.69 -1.21,-2.36 -3.12,-1.39 -5.13,-1.38 -2.37,-1.11 -4.33,-3.37 -5.88,-5.25 0.57,-2.78 0.94,-5.55 -0.72,-8.01 -1.68,-4.33 3.4,-6.71 6.26,-8.75 2.76,0.39 4.62,-1.55 2.8,-4.28 -2.57,0.04 -0.18,-3.45 -2.47,-3.84 -2.6,1.03 -5.44,-0.16 -6.16,-2.94 -1.95,-2.52 -0.1,-5.31 2.05,-6.91 1.09,-2.74 3.32,0.44 5.2,-0.9 2.94,-4.13 6.93,-7.19 11.06,-10.05 2.63,-1.56 0.21,-5.06 0.5,-7.57 -0.21,-3.63 -1.2,-7.39 -0.01,-10.84 0.18,-2.96 -5.24,-0.47 -7.49,-1.07 -5.13,1.62 -7.3,9.04 -13.4,8.34 -3.13,0.69 -4.64,-2.86 -6.1,-4.84 -4.97,-2.87 -10.19,-5.54 -15.47,-7.76 -2.99,-1.52 -6.08,0.55 -8.5,2.13 -0.97,2.39 -2.38,4.59 -2.88,7.13 -1.56,-1.44 -3.01,-3.67 -0.84,-5.3 1.62,-1.77 -1.68,-4.84 0.9,-6.58 0.02,-1.27 -2.39,-3.21 -3.97,-2.94 -4.31,0.8 -8.65,1.68 -12.59,3.47 -2.43,1.23 -4.15,-0.86 -4.81,-2.94 1.24,-1.68 2.97,0.32 4.34,-1.22 3.92,-1.6 8.22,-4.79 7.48,-9.56 -0.08,-4.17 0.91,-8.43 -1.14,-12.32 -1.21,-3.12 -1.73,-8.59 -5.28,-9.18 -0.59,1.71 -1.3,5.52 -3.94,3.91 -3.94,-2.44 -5.62,-7.87 -10.62,-8.75 -2.4,-0.95 -5.92,-1.49 -2.94,-4.34 -2.83,-1.32 -4.46,2.91 -6.75,4.06 -1.81,0.77 -3.7,1.77 -5.55,1.1 -2.17,-0.1 -2.78,3.34 -5.32,2.53 -2.44,-0.17 -5.39,0.15 -5.47,-3.04 1.26,-2.25 -1.79,-2.35 -3.37,-3.29 -2.69,-1.82 -6.3,0.87 -8.88,-1.52 -3,-2.97 -8.01,-2.63 -12.09,-2.77 -2.73,-0.05 -5.94,1.35 -8.19,-0.63 -2.53,-0.79 -2.34,1.14 -3.28,2.91z M165.38,30.69c0.26,2.81 0.4,-8.09 0.17,-2.47 -0.06,0.82 -0.12,1.65 -0.17,2.47z m13.5,1.44c-2.38,0.11 -5.93,-0.19 -6.48,2.95 -0.84,2.31 2.84,2.19 4.01,3.33 2.08,0.12 5.59,1.6 6.02,-1.46 1.83,-2.49 -0.07,-5.86 -3.55,-4.82z m-11.97,6.41c-1.92,2.44 0.88,5.14 2.25,6.97 3.61,0.13 0.82,-1.45 -0.03,-3.16 -0.91,-0.75 -0.95,-5.89 -2.22,-3.81z M181.53,44c-3.16,2.07 3.2,-1.05 4.68,-0.94 3.57,-2.86 -4.04,0.86 -4.68,0.94z m-1.31,6.22c-3.19,-0.54 3.33,2.8 0.63,-0.13 -0.17,-0.12 -0.42,0.08 -0.63,0.13z m8.44,2.63c-1.5,0.95 -5.02,0.69 -5.3,2.69 0.04,2.05 2.12,3.65 4.01,2.44 0.45,-0.74 3.48,-5.42 1.28,-5.13z m142.28,2.25c-2.22,2.09 -3.42,5.93 -2.84,8.5 1.81,-1.93 6.45,-1.17 5.53,2.13 0.75,2.01 5.23,1.5 7.53,1.68 3.9,0.79 4.95,-0.34 2.64,-3.56 -1.78,-3.59 -4.09,-7.7 -8.61,-7.85 -1.38,-0.32 -3.03,-0.37 -4.25,-0.9z m-134.34,2.94c-1.42,2.56 1.08,4.09 3.5,3.69 1.95,-0.37 3.87,-2.9 3.63,-4.91 -2.37,-0.51 -4.91,-1.04 -6.76,0.98l-0.36,0.24z M140.06,88.88c-0.28,2.81 2.92,0.39 0,0z m48.13,13.38c-1.61,1.32 0.69,2.85 0.06,-0.03l-0.06,0.03z\",\"name\":\"Schleswig-Holstein\"},\"st\":{\"path\":\"m367.5,207.72c-2.53,0.49 -2.68,6.11 -5.69,3.88 -1.54,-0.27 -2,4.74 -0.62,6.28 -1.83,0.03 -4.69,1.23 -5.84,3.45 -2.16,1.75 -5.06,2.95 -7.73,3.81 -1.55,-0.32 -3.98,0.25 -4.38,-1.66 -3.96,-2.32 -9.18,-1.22 -13.69,-1.78 -0.82,1.11 0.07,3.08 -1.73,3.89 -1.82,3.69 -6.1,1.61 -9.28,2.54 -2.64,-0.11 -4.45,1.7 -3.62,4.38 -0.45,3.07 1.59,5.83 2.38,8.76 4.58,2.95 6.91,8.32 9.22,13.03 -1.02,4.14 2.73,7.03 5,9.88 -2.35,-0.75 -6.67,0.93 -4.41,3.78 2.13,2.7 4,5.66 7.03,7.25 2.19,1.61 0.12,4.97 -2.22,4.59 -1.88,2.15 -0.66,5.73 1.52,7.3 1.12,1.37 4.12,3.9 1.64,5.39 -1.82,-0.07 -4.08,1.44 -3.31,3.44 0.85,1.22 3.42,-0.32 2.88,2 0.05,3.3 -3.89,4.53 -5.42,6.71 -0.9,2.3 0.67,6.76 -2.83,4.48 -2.5,-0.5 -4.36,0.86 -6.64,1.31 -3.5,0.14 -7.17,-0.75 -10.56,0.56 0.56,2.46 -2.44,4.29 -4.71,3.94 -2.29,1.2 4.79,4.03 4.2,5.21 -3.3,0.45 -2.03,3.05 0.01,3.98 1.13,2.32 -0.87,4.55 -2.86,5.36 -2.94,1.53 -1.17,5.3 -1.3,7.86 2.06,2.6 4.65,5.37 5.72,8.78 -0.64,2.04 0.85,6.26 3.56,4.75 3.65,0.5 8.21,-0.2 10.69,3.16 4.64,-2.48 0.38,1.08 -0.35,3.49 0.67,3.87 3.9,7.06 5.79,10.42 0.02,2.22 -1.14,5.56 1.78,6.09 2.2,-1.04 4.22,-0.48 6.44,0.45 5.84,2.46 12.54,-0.89 18.17,2.38 2.32,0.62 -0.45,4.34 2.28,4.54 1.79,0.31 -0.33,2.19 2.35,3 1.69,0.92 2.02,2.61 0.5,3.94 -1.45,1.35 -2.21,4.99 -4.56,4.59 -2.63,-0.91 0.09,3.99 2.28,1.66 2.83,0.66 5.62,4.8 3.25,7.41 -2.57,1.08 1.05,5.18 3.56,3.71 1.96,-0.79 2.91,-2.94 5.65,-1.43 2.6,0.08 6.05,0.91 5.78,4.15 1.33,1.52 4.58,2.03 6.72,2.37 2.49,-0.44 5.14,-1.91 7.2,0.43 2.77,1.74 6.17,3.82 6.94,7.21 2.79,-1.13 5.73,-0.73 8.41,0.53 1.23,-2 2.73,-1.49 3.69,0.66 0.59,3.07 2,-0.72 2.48,-1.83 0.83,-2.27 3.92,-5.75 0.2,-7.01 -1.99,-2.12 2.54,-4.35 -0.47,-5.52 -3.54,-1.32 0.06,-3.71 -3.77,-3.68 -1.13,-1.82 -0.14,-5.31 -0.45,-7.77 0.09,-3.62 -2.36,-6.17 -3.27,-9.5 -2.24,-2.8 3.78,-1.95 2.18,-4.77 -0.27,-3.83 -1.97,-7.24 -2.66,-10.91 1.12,-2.57 2.7,-5.07 2.75,-7.88 2.68,-2.78 6.09,-4.94 9.75,-6.06 4.81,0.08 9.58,-1.34 13.94,-3.25 0.29,-3.17 3.92,1.99 5.64,-1.8 0.58,-1.59 1.27,-4.54 3.8,-3.39 2.22,1.16 4.46,1.71 7.03,1.3 4.79,-0.31 9.85,0.27 14.45,-1.01 2.63,-2.16 7.03,-3.34 7.55,-7.13 -2.51,-3.21 -2.57,-7.84 -4.05,-11.66 -1.56,-2.32 0.46,-2.56 1.11,-3.49 -1.21,-1.69 -2.84,1.88 -4.93,0.87 -3.35,0.33 -4.21,-4.14 -7.34,-4.73 -1.95,-1.81 -4.21,-0.39 -6.46,-1.61 -1.95,-1.37 -5.09,-1.98 -5.86,-4.32 -2.25,-0.71 -4.5,-3.34 -6.75,-2.88 0.04,3.1 -4.02,3.62 -6.31,2.65 -6.29,-1.76 -13.04,-4.4 -16.59,-10.25 -1.82,-2.88 -4.27,-5.73 -5.88,-8.53 1.69,-2.65 1.92,-5.52 1.61,-8.56 0.08,-3.49 1.94,-6.54 3.57,-9.44 -0.44,-3.76 -2.35,-8 0.31,-11.34 1.69,-3.42 -2.77,-5.17 -4.84,-4.84 -0.77,1.84 -4.03,2.12 -4.73,-0.07 -3.16,-2.02 -0.66,-5.45 -0.28,-8.33 0.25,-2.72 1.68,-3.75 3.82,-4.6 0.52,-2.45 0.69,-5 -1.29,-6.86 -2,-2.13 -0.72,-5.29 -0.24,-7.76 2.19,-2.1 2.75,-4.3 1.28,-7.4 -0.37,-2.87 -3.52,-1.27 -5.2,-0.49 -2.2,0.23 -1.98,-4.35 -5.66,-2.08 -3.04,0.71 -6,0.64 -8.83,-0.79 -2.04,-1.1 -6.47,-1.05 -6.16,-4.18 0.48,-0.96 2.72,-2.17 0.45,-2.84 -2.36,-0.92 -4.97,-4.41 -7.35,-1.78 -2.26,0.12 -3.78,-2.34 -5.44,-3.56 -1.33,-1.14 2.25,-2.99 -0.03,-2.78z m-35.72,88.19c-0.1,0.03 0.04,0.06 0,0z\",\"name\":\"Sachsen-Anhalt\"},\"sn\":{\"path\":\"m438.91,347.22c-0.71,1.7 -1.23,3.74 -3.22,4.5 -2.58,1.63 -3.52,-1.1 -5.94,1.53 -4.3,1.22 -8.55,2.77 -13.09,2.53 -3.01,1.74 -7.34,3.17 -8.45,6.62 0.03,3.26 -3.77,5.91 -1.75,9.19 1.33,3.2 1.78,6.8 2.19,10.31 -4.06,0.29 -2.18,3.87 -0.74,6.17 2.24,3.72 1.36,8.42 1.53,12.58 2.6,-0.28 2.73,2.06 3.18,3.2 1.51,2.44 3.44,1.13 5.41,0.39 3.7,1.5 8.18,1.88 11.41,4.16 0.74,1.94 -0.81,4.85 2,5.77 1.72,1.99 6.37,0.62 6.03,4.01 -0.35,2.66 3.75,3.98 1.22,5.97 -3.58,1.98 -8.34,0.37 -11.41,3.34 -0.07,2.05 -0.66,4.73 -3.19,4.69 -0.84,-2.38 -4.84,-0.74 -3.91,1.56 -2.16,0.55 -4.73,2.38 -6.75,1.41 -0.26,3.26 -1.99,6.93 0.66,9.67 0.13,3.51 6.2,1.64 4.46,5.11 -1.54,2.13 -3.26,4.42 -6.11,4.51 -2.19,1.15 -4.93,1.82 -6.85,3.17 1.14,0.4 3.92,-0.58 2.97,1.81 -1.3,0.56 -2.71,1.18 -4.15,1.04 -1.87,-0.95 -6.83,1.68 -5.71,-1.56 0.5,-1.28 0.39,-7.08 -1.74,-3.97 -0.56,2.99 -4.53,3.58 -5.56,6.44 -1.97,1.1 -1.24,4.78 1.19,3.64 1.33,1.03 5.21,3.22 2.79,5.13 -0.59,1.68 -5.69,2.39 -2.69,4 2.14,0.67 3.79,2.61 5.05,4.37 -0.72,2.68 -0.54,4.28 2.54,4.44 2.89,0.5 5.02,2.48 7.96,1.72 3.8,-1.14 4.85,3.42 6.85,5.61 1.23,2.16 4.76,5.08 2.59,7.58 -0.49,1.72 3.93,3.14 3.09,0.38 -2.48,-2.46 -0.08,-6.44 1.28,-8.97 2.86,-4.57 6.53,-8.74 9.94,-12.84 4.56,-2.02 9.99,-0.84 14.06,-4.03 2.14,-0.66 4.2,-3.73 6.38,-3.05 2.63,1.52 5.07,3.45 7.78,4.83 2.07,-1.12 5.11,-3.24 4.13,-5.91 0.2,-2.04 -0.2,-5.69 2.84,-5.24 2.59,-0.29 5.2,-0.72 7.63,0.55 2.91,-0.54 1.72,-4.96 3.88,-6.45 2.35,-2.97 5.63,-5.26 8.68,-7.26 2.67,-0.81 5.51,3.8 7.01,0.39 1.65,-1.64 3.72,-4.3 2.58,-6.74 3.93,-2.17 7.47,-5.47 12.25,-5.22 2.33,-0.49 4.94,-0.78 7,0.62 2.41,-0.15 5.15,-2.09 4.01,-4.81 -1.95,-3.53 3.27,-1.43 5.18,-3.05 2.77,-1.08 6.09,-1.25 7.96,-3.69 5.86,-2.9 11.49,-6.39 17.78,-8.32 1.88,-3.11 -0.76,-3.48 -3.2,-3.83 -2.51,-0.45 -4.28,-2.72 -5.9,-4.48 1.17,-2.33 1.01,-5.72 3,-7.44 2.01,-0.54 2.32,2.64 4.53,2.3 2.11,1.26 6.52,1.34 7.5,-0.58 -0.17,-3.74 3.64,0.67 5,1.7 3.7,2.16 4.3,6.67 5.45,10.42 1.49,2.62 -2.09,6.06 2.42,6.33 2.67,0.89 5.37,2.57 8.28,1.87 0.47,-3.78 1.26,-7.7 4.06,-10.39 2.84,-3.18 3.04,-7.91 3.71,-11.62 2.05,-4.17 1.85,-9.14 2.71,-13.74 0.26,-3.07 0.84,-6.1 1.99,-8.91 0.22,-5.15 -3.62,-9.39 -5.25,-14.09 -0.63,-2.47 0.48,-5.37 -1.69,-7.4 -2.96,-2 -6.81,-2.81 -10.16,-4.16 -2.63,0.45 -5.28,-0.92 -5.64,-3.77 -0.41,-2.32 0.72,-4.39 -0.77,-0.54 -0.78,2.23 -4.07,1.99 -5.91,1.44 -0.89,-2.72 -3.76,-2.22 -5.89,-1.05 -2.43,0.03 -4.2,1.93 -3.78,3.04 -2.98,-1.35 -5.85,1.55 -8.48,2.42 -3.55,-1.67 -7.51,-1.35 -11.28,-1.56 -3.58,3.73 -3.22,9.41 -5.54,13.67 -1.24,3.16 -4.34,3.42 -7.26,3.89 -3.26,1.02 -6.88,-0.1 -9.67,2.35 -1.59,0.79 -4,-0.13 -5.49,-0.56 -4.01,0.9 -8.8,0.36 -12.18,-2.44 -2.57,-1.34 -4.55,-3.47 -6.76,-5.28 -2.23,1.37 -5.63,2.37 -6.56,4.87 -0.02,1.86 -4.09,1.87 -5.44,1.29 -1.42,-2.13 -2.64,-3.94 -1.26,-6.61 0.56,-3.54 0.3,-7.09 -1.63,-10.2 -0.72,-1.89 -2.32,-5.98 -4.72,-4.31 -2.79,1.33 -2.48,-5.48 -5.68,-3.53 -5.59,0.15 -11.31,0.77 -16.84,0.31 -1.25,-0.57 -2.44,-1.63 -3.94,-1.22z\",\"name\":\"Sachsen\"},\"sl\":{\"path\":\"m63.72,553.88c-2.9,2.18 -6.1,2.82 -9.5,4.44 -3.47,4.51 -10,4.1 -15.06,5.38 -4.6,0.18 -8.97,-1.26 -13.22,-2.78 -2.47,1.73 -0.51,5.04 -0.84,7.5 1.8,0.96 4.08,-1.32 5.97,0.4 2.44,1.62 5.28,3.2 6.78,5.81 -3.49,0.44 0.05,4.79 -0.09,6.94 1.05,3.41 4.13,4.95 6.56,7.16 1.79,1.94 0.3,5.34 3.04,6.13 2.43,1.92 -2.53,4.66 1.39,5.86 2.37,0.12 6.25,2.27 7.13,-1.09 -0.35,-2.25 -3.03,-3.71 0.38,-4.78 4.42,0.26 10.1,1.27 11.81,5.94 0.51,1.58 -0.22,5.5 1.56,5.84 2.33,-0.7 1.95,-7.32 3.65,-3.1 1.02,1.94 2.67,2.87 4.44,1.6 2.61,-0.08 5.35,0.47 7.44,1.84 0.63,-1.3 5.37,-2.76 3.56,-3.91 -1.62,-2.52 -4.36,-5.17 -3.81,-8.41 1.42,-2.72 5.03,-3.05 6.69,-5.31 0.32,-2.19 -0.19,-4.41 0.63,-6.91 -2.49,1.08 -4.55,-2.01 -6.84,-2.72 1.25,-2.57 -1.08,-3.33 -2.41,-4.88 -1.38,-2.57 3.05,-1.81 2.04,-4.46 0.15,-3.03 0.9,-7.08 -0.66,-9.48C81.13,563.37 78.01,559.23 75,558.25c-1.82,-1.1 -4.05,-5.12 -6.16,-3.76 -1.8,1.27 -2.93,1.15 -3.06,-0.42 -0.68,-0.01 -1.4,-0.33 -2.06,-0.19z\",\"name\":\"Saarland\"},\"rp\":{\"path\":\"m124.22,422c-3.08,1.37 -2.76,4.11 -2.15,6.91 -0.74,2.27 -2.92,4.57 -5.35,5.28 1.82,2.98 -1.68,6.02 -4.55,6.28 -3.87,1.42 -8.15,2.76 -11.74,4.31 -2.53,-1.67 -5.28,-0.25 -4.24,2.84 0.38,2.78 -1.77,4.53 -4.33,4.8 -2.21,0.9 -4.57,1.03 -6.93,0.89 0.24,-3.01 0.16,-2.77 -0.66,-0.16 -2.61,2.5 -6.78,2.21 -10.16,3.14 -1.7,1.36 -3.59,4.13 -6.33,3.09 -1.84,0.93 -1.47,5.36 -2.5,7.61 -0.31,2 -3.88,3.46 -5.32,1.71 -2.49,-2.13 -5.07,1.92 -3.92,4.39 -1.32,2.14 3.87,6.32 1.33,6.03 -2.57,-0.38 -4.98,1.47 -7.53,-0.25 -1.87,-0.86 -4.14,-1.17 -5.28,-3.06 -3.07,1.11 -6.64,2.41 -9.75,2.06 -1.18,-2.88 -5.27,-3.74 -3.13,0.21 0.06,1.85 3.77,4.69 0.04,3.72 -2.34,1.34 -4.33,-0.2 -6.47,-0.11 -0.71,2.72 -2.48,4.43 -4.99,5.59 -1.73,1.37 -5.12,2.04 -4.14,4.93 1.73,3.46 -1.97,4.26 -2.68,6.98 -1.38,4.14 -2.64,8.53 -0.77,12.73 1.47,5.09 3.95,10.18 7.71,13.93 3.19,1.73 6.27,3.8 8.6,6.49 1.94,2.68 4.29,-1.39 6.06,0.93 1.74,1.25 1.47,4.34 1.36,6.37 -1,5.55 -4.71,9.97 -7.61,14.63 -1.1,1.62 -3.21,1.58 -3.81,3.7 1.32,3.4 5.62,2.86 8.44,4.25 6.02,0.99 12.25,-0.27 17.78,-2.55 1.84,-1.13 2.94,-3.18 5.35,-3.48 2.7,-0.62 4.85,-2.4 7.33,-3.4 2.47,-0.56 3.3,1.96 4.66,0.63 1.69,-1.87 4.4,2.01 6.06,3.12 2.19,1.85 4.96,3.22 7.6,4.23 2.08,-1.3 3.07,-1.77 3.74,1 0.63,3.7 0.2,7.6 -0.21,11.34 -3.62,0.15 -1.02,2.73 0.84,3.34 -0.88,3.1 1.79,3.86 4.18,5.17 2.7,-0.99 3.7,-0.04 2.19,2.5 -0.63,2.28 0.81,4.56 -1.1,6.61 -1.8,1.77 -5.4,2.25 -6.16,5.03 0.5,2.47 2.45,5.22 3.88,6.72 0.53,-2.07 4.25,-1.3 6.09,-2.06 2.18,0.88 4.73,2.02 3.59,4.81 0.57,4.16 4.15,6.47 7.58,8.3 4.06,2.82 9.28,1.81 13.75,1.03 5.57,0.87 11.49,1.89 16.04,5.46 1.5,1.92 4.34,2.91 6.75,3.03 1.44,0.1 3.88,-0.46 4.75,1.03 2.73,-1.42 4.25,-4.04 4.38,-7.03 0.97,-3.35 4.62,-5.13 4.47,-8.92 0.59,-3.28 2.22,-6.72 1.35,-9.86 0.74,-2.94 4.48,-3.42 5.84,-6.03 2.45,-0.61 0.47,-2.16 -0.81,-2.44 -2.02,-2.71 2.93,-3.58 2.9,-6.17 0.3,-2.2 -0.42,-4.5 0.69,-6.55 -1.31,-0.77 -4.55,0.38 -4.34,-2.22 1.3,-2.38 -0.67,-5.57 -0.94,-8.16 -1.05,-1.55 -0.56,-3.22 -0.06,-4.81 -2.06,-3.14 -3.58,-6.56 -4.31,-10.28 -0,-3.21 3.88,-3.16 5.84,-4.38 1.83,-1.95 0.9,-4.67 -1.26,-6.04 -2.48,-3.08 -4.3,-6.94 -4.99,-10.83 0.78,-1.71 1.4,-3.41 0.25,-5.25 -0.12,-3.38 -3.6,-5.04 -5.13,-7.75 -2.86,-3.27 -7.52,-1.08 -10.66,0.56 -4.69,1.79 -9.52,4.51 -14.68,3.47 -2.44,-2.49 -4.42,-5.7 -6.29,-8.66 -2.19,-2.94 2.65,-2.19 3.79,-4.33 1.44,-3.52 5.56,-1 5.95,-3.31 1.05,-2.62 -4.12,-2.88 -2.51,-5.79 1.38,-2.83 4.79,-3.85 7.44,-4.63 1.92,2.63 5.73,-0.22 2.09,-1.81 -1.3,-2.26 2.57,-3.89 4.23,-2.24 3.08,0.46 1.96,-3.71 0.96,-5.33 -1.37,-3.08 -3.17,-5.78 -6.33,-7.23 -3.79,-0.63 -1.12,-3.37 -0.49,-6.08 0.24,-1.88 -1.87,-3.91 -0.43,-6.13 1.19,-2.18 3.39,-6.07 6.28,-3.97 1.67,3.39 3.78,0.05 4.16,-2.21 1.81,-2.05 -0.69,-2.3 -1.07,-3.97 -0.17,-2.37 -1.93,-5.43 0.13,-7.42 -0.88,-3.78 -6.22,1.19 -5.36,-1.83 1.28,-4.22 -5.99,-5.38 -4.53,-9.85 1.32,-2 0.84,-5.3 -1.94,-5.86 -1.78,-2.03 -5.71,-1.54 -6.82,-3.48 -0.21,-1.96 2.71,-4.06 -0.25,-4.94C125.29,422.08 124.64,421.87 124.22,422z\",\"name\":\"Rheinland-Pfalz\"},\"nw\":{\"path\":\"m177.25,263.34c-2.1,-1.63 -5.7,-1.31 -6.06,1.91 0.19,3.63 -4.48,4.11 -7,3.66 -1.11,-1.64 -4.06,-2.21 -2.35,0.66 0.52,3.14 4.56,4.05 6.57,6.26 1.92,1.46 2.52,4.49 2.62,6.8 0.18,2.64 0.19,5.1 -0.9,7.58 -1.32,1.99 0.48,3.83 2.46,3.92 3.25,0.58 0.3,2.71 -0.78,3.97 -1.55,0.88 -3.89,0.86 -4.75,2.84 1.66,2.95 -2.56,1.58 -4.29,1.1 -2.41,-0.95 -5.38,-1.98 -7.02,0.74 -2.16,1.92 -4.56,3.57 -7.26,4.5 -1.87,2.2 -2.96,-0.94 -5.46,-0.31 -2.18,0.39 -2.63,4.37 -4.84,2.75 -2.6,-0.41 -3.41,-2.28 -4.46,-4.35 -2.31,-1 2.21,-2.81 3.55,-2.98 3.51,0.2 5.07,-3.48 2.41,-5.69 -1.71,-1 -4.92,-1.05 -5.1,-3.81 -0.4,-2.56 2.07,-4.87 2.81,-7.19 0.91,-0.72 -1.83,-2.26 -0.5,-3.69 3.14,-1.64 1.45,-5.72 -1.26,-6.8 -2.05,-1.15 -4.05,1.71 -6.33,0.21 -2.51,-1.72 -6.07,-2.59 -6.27,-6.18 -0.22,-2.85 -2.57,-3.65 -4.96,-4.34 -1.35,-0.64 -3.78,3.65 -1.27,3.96 1.72,1.12 -0.74,4.19 -1.92,5.19 -4.58,2.06 -9.39,4.71 -12.83,8.28 -0.91,2.09 -3.91,0.71 -4.63,3.16 -3.68,0.16 -7.44,-1.07 -11.03,-0.19 -1.13,2.36 -3.53,1.5 -5.41,2.92 -3.3,2.56 -8.23,3.82 -10.15,7.67 -0.16,4.41 -5.85,3.29 -8.27,5.42 -1.07,1.95 -3.97,5.3 -0.36,6.02 2.12,2 6.43,3.97 4.59,7.5 -2.07,2.76 -4.18,5.76 -7.59,6.94 -1.43,-2.65 -3.58,-2.35 -5.97,-1.09 -2.93,0.68 -5.59,2.43 -8.37,3.24 -1.83,0.92 -6.4,-1.52 -6.2,0.14 1.25,2.44 1.32,5.11 -1.64,2.71 -2.84,-2.65 -6.23,-5.14 -10.34,-4.5 -2.26,1.13 -4.86,1.79 -7.57,1.91 -2.94,-0.3 -6.47,1.11 -7.66,3.97 0.91,4.49 1.78,9.09 3.5,13.31 3.65,0.48 3.87,3.28 3.59,6.38 -0.03,2.95 4.03,4.36 4.95,7.23 3.16,3.93 2.85,9.32 1.32,13.83 -1.07,2.64 2.37,5.59 -1.15,7.3 -2.71,3.53 -6.04,6.82 -8.16,10.71 -0.6,1.66 -1.81,5.57 0.42,6.15 1.79,-1.07 4.45,-3.48 6.03,-0.89 -1.83,0.74 -3.77,2.52 -4.63,4.79 -4.06,2.72 -7.88,5.86 -12.82,6.75 -2.54,0.57 -4.87,1.7 -3.17,4.63 0.65,3.73 2.86,3.68 5.9,3.34 1.73,-0.12 4.7,0.11 2.92,2.43 -1.62,2.73 0.97,3.7 3.18,4.3 2.89,0.68 -1.54,3.27 0.66,4.81 0.17,1.78 -1.03,5.56 -2.97,3.06 -2.7,0.41 -2.86,4.47 -3.11,6.49 1.25,3.17 3.86,4.98 6.86,6.32 1.73,2.64 2.03,6.34 4.88,8.31 -3.91,1.75 5.55,0.78 2.22,4.39 0.29,3.25 -5.37,3.94 -3.38,7.37 0.76,1.42 1.86,4.52 3.66,2.67 3.25,-0.44 6.22,1.26 7.36,4.35 2.36,2.77 -0.08,6.31 -0.45,9.15 2.56,4.82 -0.8,-1.03 2.06,-1.07 2.71,-1.06 3.44,4.11 6.19,2.53 2.75,0.37 5.82,-2.69 8.02,-1.5 1.92,2.23 5.39,3.01 8.14,3.37 3.72,-0.21 2.3,-1.41 1.51,-3.82 0.04,-2.95 -1.16,-6.55 2.63,-7.5 2,-1.69 3.89,3.12 6.16,0.31 1.15,-2.86 1.77,-6.3 2.41,-9.46 2.7,1.12 5.4,-0.08 6.75,-2.56 3.27,-1.13 7.52,-0.86 10.35,-2.91 0.37,-1.12 0.98,-4.32 2.62,-2.66 -0.82,3.1 2.33,2.44 4.39,1.84 2.3,-0.53 5.31,-1.22 4.81,-4.28 -0.51,-2.22 0.4,-5.33 3.3,-4.47 2.78,1.45 5.46,-1.31 8.27,-1.76 3.1,-1.68 7.91,-1.4 9.45,-5.05 -0.47,-2.98 -4.28,-3.7 0.44,-3.18 2.74,-1.08 5.31,-3.89 4.08,-6.99 -1.04,-2.52 1.87,-4.26 3.71,-5.24 2.21,0.36 5.37,2.16 3.03,4.28 -1.84,2.46 1.06,2.47 2.69,2.94 2.57,1.6 7.18,2.77 6.12,6.74 -0.22,1.83 -1.49,3.93 0.54,5.35 1.58,1.78 4.44,3.29 3.47,6.09 1.92,-1.91 4.28,0.75 5.25,0.78 1.15,-1.97 2.94,-4.17 0.84,-6.13 -1.97,-2.33 -1.27,-4.35 1.26,-5.9 2.67,-2.21 4.81,-5.42 7.75,-7.15 2.53,-0.53 5,4.12 6.81,1 1.81,-2.99 4.43,-5.63 4.94,-9.19 1.73,-1.11 2.77,-3.4 4.66,-4.63 0.39,-1.91 -1.57,-4.12 -1.75,-6.25 0.73,-3.23 4.88,-3.7 7.64,-2.9 1.98,0.85 4.51,0.77 5.94,-0.93 1.31,-3.2 3.81,-6.24 2.52,-9.88 -0.64,-1.84 0.53,-6.24 -2.48,-5.85 -2.48,0.46 -4.55,3.29 -7.13,2.53 -1.37,-1.68 -3.72,-3.65 -1.3,-5.48 2.34,-4.53 6.76,-7.46 11.73,-8.41 3.83,-1.47 7.94,-1.54 11.98,-1.11 1.92,-2.78 -0.9,-3.85 -1.9,-6.19 -1.82,-1.61 -1.41,-4.36 1.19,-4.68 3.14,-1.44 7.01,-2.83 10,-0.32 2.4,1.63 -0.27,3.86 1.25,5.59 1.92,0.62 4.04,0.65 4.63,-1.66 3.98,-3.61 9.19,-6.08 11.4,-11.26 1.23,-2.28 4.7,-5.14 4.82,-6.65 -1.68,0.55 -4.34,-0.05 -3.2,-2.36 0.05,-5.23 2.13,-10.09 3.74,-14.92 1,-2.69 -2.16,-5.66 -4.66,-4.72 -3.16,2.83 -0.64,-2.27 -0.81,-4.06 -0.05,-2.72 -2.54,-1.8 -3.99,-2.62 -2.61,-2.3 -7.4,-3.71 -6.62,-8.03 0.39,-2.34 -1.28,-5.79 0.83,-7.47 -2.23,-1.73 -1.62,-3.85 -2.5,-6.03 -2.65,-0.77 -5.5,-0.87 -7.39,-3.23 -1.18,-0.94 -5.31,-5.84 -2.07,-3.89 2.92,3.3 5.04,-1.41 4.58,-3.56 -1.6,-1.73 -4.39,-1.61 -6.02,-2.94 -1.48,-2.41 1.21,-4.72 1.94,-6.91 1.84,-2.01 5.4,-1.29 6.16,-4.38 1.42,-2.09 2.16,-4.3 0.81,-6.53 1.2,-2.26 2.95,-5.17 -0.91,-5.56 -3.17,-1.51 -3.6,3.21 -5.58,4.74 -1.93,2.12 -2.98,5.59 -6.39,5.38 -3.28,0.88 -6.88,0.85 -10.18,0.44 -3.79,-0.66 -2.03,-5.2 -2.58,-7.89 -0.63,-2.02 1.28,-4.76 -1.4,-5.81 -1.68,-1.96 -4.73,1.64 -6.71,2.05z m32.09,14.69c-0.04,0.06 0.1,0.03 0,0z\",\"name\":\"Nordrhein-Westfalen\"},\"ni\":{\"path\":\"m186.44,120.91c-5.6,0.51 -6.88,7.11 -8.44,11.54 -1.55,4.84 -4.41,10.19 -1.33,15.08 0.62,2.76 4.51,0.93 6.62,1.66 3.74,-0.55 1.44,3.37 1.28,5.34 -0.09,2.27 2.07,5.17 -0.81,6.68 -0.57,2.01 -4.6,1.89 -4.47,0.01 0.2,-1.62 -2.19,-2.79 -1,-4.38 -2.39,-2.05 -5.8,-0.88 -8.29,-2.92 -3.19,-0.55 -3.1,-6.58 -7,-4.9 -3.25,1.5 -2.87,5.42 -3.31,8.39 1.73,1.09 4.31,-1.81 5,0.84 0.65,4.51 -0.3,10.35 -4.66,12.69 -2.05,0.33 -4.01,-0.7 -4.44,-2.75 -1.01,-1.99 -2.84,-4.1 -4.91,-2.06 -2.51,-1.99 -2.84,-5.26 -2.69,-8.25 1.7,2.41 4.86,0.82 6.63,-0.53 1,-2.85 -1.94,-5.58 -2.55,-8.38 -0.35,-2.68 -2.75,-3.1 -4.67,-3.53 -0.88,-2.07 -1.59,-4.78 -0.56,-6.72 -5.56,-1.98 -11.61,-0.89 -17.16,0.47 -4.67,-1.16 -9.01,2.41 -13.75,2.56 -2.64,-2.27 -6.36,-1.45 -9.63,-2 -6.44,-0.16 -11.29,4.48 -15.23,9 -2.96,1.82 0.86,2.65 1.75,4.06 2.29,2.26 -1.66,3.67 -2.74,5.44 -1.44,-2.96 -5.14,-3.8 -4.27,0.54 -0.65,3.9 -0.71,8.05 -1.52,11.83 -1.87,1.87 0.95,4.14 2.97,3.58 5.28,0.29 10.96,-0.24 15.72,2.42 -2.08,0.69 -5.45,-0.97 -5.28,2.53 -1.3,3.55 -0.88,7.6 -1.89,11.2 -1.02,2.31 -3.53,5.58 -0.77,7.39 -1.04,4.96 1.43,10.17 -1.09,14.86 -1.44,6.42 -8.35,10.37 -8.34,17.29 -0.73,5.37 -0.65,11.06 -2.02,16.22 -1.54,2.43 -4.12,-1.19 -6.18,-0.78 -4.31,-0.59 -8.85,-1.62 -13.15,-0.5 -3.28,1.5 -0.59,5.19 -1.65,7.89 0.05,2.71 -1.96,5.6 -1.13,7.99 3.96,3.35 9.48,3.72 14.25,5.18 1.32,-0.55 1.98,-4.64 3.66,-2.59 1.6,4.04 5.43,7.78 4.44,12.38 -1.84,2.71 -4.41,6.49 -1.89,9.57 1.86,2.89 3.08,-1.11 5.12,-1.16 3.32,-0.74 7.21,1.07 10.28,0.08 0.77,-2.08 3.82,-0.65 4.33,-3.02 3.95,-3.24 8.34,-6.11 13.06,-8 3.49,-2.99 -0.93,-3.55 0.23,-6.31 0.69,-1.71 1.95,-4.41 4.07,-2.55 2.19,0.59 4.44,1.49 4.69,4.05 0.24,3.46 3.25,4.66 5.87,6.2 2.49,1.33 5.1,-2.32 7.3,0.36 2.1,0.86 2.8,3.79 2.88,5.66 -2.14,1.36 -2.99,3.7 -0.25,5 -2.47,1.24 -2.71,4.41 -4.06,6.59 -0.13,3.3 3.86,2.19 5.28,4.24 1.61,1.34 2.29,6.23 -0.56,6.24 -2.12,1.03 -7.72,1.03 -4.44,4.18 0.32,1.52 3.77,3.35 4.41,1.19 1.64,-2.26 4.29,-2.15 6.63,-1.31 1.36,-0.07 3.99,-1.2 5.52,-2.37 2.72,-1.18 4.39,-5.59 7.79,-3.97 1.75,0 5.6,2.6 5.94,0.72 0.62,-2.2 3.26,-3.09 5.19,-3.63 2.15,-1.43 1.31,-2.65 -0.91,-2.81 -3.46,-2.11 -0.12,-6.05 -0.14,-8.9 -0.15,-3.52 0.05,-8 -3.58,-9.88 -2.14,-2.11 -6.14,-3.08 -5.9,-6.7 -1.51,-2.43 0.6,-3.29 2.77,-2.04 1.45,1.42 4.2,1.38 5.98,0.03 1.26,-1.81 0.54,-4.61 3.46,-5.43 2.32,-1.11 5.18,2.05 7.68,-1.07 2.13,-2.24 4.04,-0.2 5.66,1.43 0.57,2.57 -0.21,5.4 0.22,8.09 -0.93,3.21 1.85,4.85 4.75,4.17 3.21,-0.08 7.22,0.09 9.7,-1.99 2.54,-2.97 4.51,-6.31 6.89,-9.36 2.02,0.69 5.86,0.77 5.97,3.44 -1.73,2.35 -1.52,4.54 -0.97,7.06 -1.39,2.86 -2.39,6.91 -6.2,7.13 -2.4,1.05 -3.91,4.28 -3.71,6.63 1.97,1.04 4.71,1.6 6.53,3.33 0.07,1.63 -1.12,5.59 -2.84,6.05 -3.41,-0.73 1.6,2.55 2.84,3.1 2.26,0.15 6.09,0.95 5.15,4.09 -0.68,1.53 3.99,3.73 1.27,4.76 -0.76,2.74 -0.13,6 0.12,8.84 1.43,2.32 4.36,3.6 6.57,5.25 3.31,-0.99 4.48,3.42 3.35,5.85 0.3,0.17 2.48,-0.22 3.34,0.68 2.41,1.16 3.09,3.45 2.56,5.97 -2.13,4.96 -3.82,10.38 -3.75,15.72 2.51,0.18 4.77,-1.21 7.34,-1.06 0.61,1.51 -0.65,3.85 2.25,3.24 3.59,-0.55 6.83,1.47 9.03,4.14 1.86,0.23 1.58,3.6 -0.22,2.84 -1.35,2.17 -4.02,2.06 -5.22,4.59 1.78,2.73 3.46,5.34 3.51,8.74 1.02,2.35 -1.28,3.79 -3.38,3.42 -2.32,0.54 -3.56,5.32 -0.53,5.96 3.22,1.18 6.33,2.54 9.36,4.13 4.29,-2.82 0.47,-2.05 -1.06,-3.89 -2.77,-2.53 1.66,-4.59 3.28,-6.24 2.15,-2.54 5.98,-1.9 8.84,-2.34 2.08,1.35 1.61,5.72 4.21,2.64 3.91,-2.4 7.72,-5.21 12.48,-5.45 3.97,-2.72 8.84,-4.93 11.78,-8.85 1.12,-1.78 0.33,-3.88 2.39,-5.63 3.16,-1.67 6.79,0.6 8.47,3.25 2.88,-0.58 7.14,-0.26 7.76,-3.87 -0.05,-2.88 3.65,-4.47 1.75,-6.24 -1.57,-2.46 -0.32,-5.67 -2.8,-7.78 -1.09,-2.4 -4.13,-3.43 -3.79,-6.44 -0.16,-2.66 -0.99,-6.17 2.11,-7.49 1.53,-0.76 3.52,-2.56 1.95,-4.3 -2.69,0.07 -2.43,-3.84 -0.41,-4.53 -1.85,-1.14 -5.14,-4 -4.75,-5.49 2.09,-0.39 4.95,0.22 5.97,-2.13 -0.9,-2.87 3.5,-2.65 5.41,-2.71 2.87,-0.48 6.16,1.13 8.63,-0.98 1.86,-0.84 5.77,1.14 5.58,-1.56 -0.39,-2.88 1.81,-4.27 3.9,-5.7 0.91,-0.47 3.07,-3.7 1.17,-3.53 -3.44,0 -2.76,-5.19 0.13,-5.66 3.82,-0.08 0.19,-3.6 -1.09,-4.81 -2.24,-1.37 -1.88,-4.21 -1.94,-6.38 0.35,-2.73 4.31,-1.12 3.91,-4.03 -1.37,-1.84 -4.07,-2.33 -5.04,-4.76 -1.41,-2.15 -5.08,-4.85 -2.74,-7.55 3.42,-1.12 3.06,-1.7 0.77,-4.08 -1.69,-1.79 -1.55,-4.29 -1.69,-6.46 -2.28,-4.45 -4.68,-9.22 -8.86,-12.09 -1.05,-3.33 -3.02,-6.48 -2.57,-9.99 -0.32,-2.09 0.44,-4.42 2.92,-4.26 2.85,-1.12 6.27,-0.08 8.93,-1.09 1.55,-1.38 2.76,-2.68 2.6,-4.79 1.69,-2.11 5.13,-0.16 7.46,-0.64 2.96,0.35 7.54,-0.38 8.88,2.86 3.56,1.21 6.67,-1.39 9.63,-2.75 1.37,-1.79 3.07,-3.85 5.5,-3.97 -1.07,-2.07 -0.03,-4.66 0.75,-6.72 2.37,0.04 3.51,1.16 4.74,-2.15 -3.03,-0.57 -6.18,-1.13 -7.93,-4.01 -2.99,-1.28 -5.04,3.32 -7.81,2.09 -1.68,-2.2 -4.97,-3.78 -4.59,-6.94 -1.58,-2.26 -4.54,-2.52 -6.84,-3.72 3.01,-0.21 2.65,-3.1 -0.2,-2.77 -6.07,-2.31 -7.72,-9.29 -10.33,-14.6 -2.42,-1.1 -4.9,-1.16 -5.92,1.34 -1.84,1.96 -4.18,1.97 -6.29,0.43 -2.67,-1.78 -3.79,-6.4 -7.79,-5.36 -2.51,-0.77 -4.24,2.4 -6.66,0.76 -4.42,-0.95 -7.78,-4.07 -12.05,-5.47 -1.87,-1.32 -3.8,-1.77 -5.52,0.17 -0.27,2.44 -2.51,2.71 -4.5,2.22 -3.65,-0.29 -5.04,-4.84 -7.84,-6.5 -1.55,0.25 -1.89,4.05 -4.47,4.49 -2.08,0.15 -3.58,-2.52 -5.1,-3.8 -1.02,-1.09 -2.8,3.74 -4.07,0.89 -2.45,-1.59 -2.98,-4.24 -4.53,-6.41 -0.49,-1.9 1.56,-6.03 -2.15,-5.31 -4.45,-0.29 -7.84,-3.81 -11.28,-6.28 -1.97,-2.7 -0.94,-6.7 -3.64,-9.09 -3.37,-1.87 -5.18,-5.18 -6.46,-8.69 -1.64,-4.08 -4.33,-8.01 -8.9,-9 -3.99,-0.41 -8.13,-0.36 -12.15,-0.37 -3.37,0.14 1.11,4.61 0.44,4.78 -2.24,-0.97 -4.59,-0.85 -6.63,0.19 -3.12,0.32 -6.61,0.16 -9.54,-0.98 -2.08,-1.54 -4.86,-2.91 -5.69,-5.53l-0.44,0.03z m-49.34,8.94c-0.03,1.09 0.83,-0.73 0,0z m-9.69,0.88c-1.79,0.64 -2,2.84 -0.28,0.69 1.15,0.39 7.48,0.12 5.09,-0.5 -1.6,-0.1 -3.21,-0.36 -4.81,-0.19z m18.53,1.06c0.45,3.21 0.81,1.46 0,0z m-31.41,1c-2.03,0.59 -1.28,4.28 0.3,1.19 1.64,-1.6 4.48,-0.97 6.64,-1.09 -2.3,-0.17 -4.65,-0.31 -6.94,-0.09z M108.19,134.75c-2.3,1.14 5.75,0.85 0.38,-0.03 -0.12,0.04 -0.27,-0.05 -0.38,0.03z m-12.13,0.84c-3.52,0.44 -2.54,2.25 0.41,1.38 2.85,-0.48 5.82,-0.48 8.59,-1.28 -2.97,-0.23 -6.02,-0.18 -9,-0.09z m-32.28,11.06c-1.1,1.27 2.99,3.13 2.5,3.16 1.33,-1.35 0.17,-2.16 3.86,-2.62 3.23,0.07 0.14,-2.1 -1.3,-2.1 -1.69,0.52 -3.38,1.04 -5.06,1.56z M174.25,186.75c0.36,2.67 4.51,2.84 6.35,4.51 3.41,1.6 7.66,0.4 10.79,2.95 3.11,1.84 7.08,3.66 10.49,1.79 1.4,0.19 3.63,2.7 2.89,3.67 -2.99,0.4 -0.11,3.94 -0.78,6.22 0.86,2.85 -2.01,3.95 -3.7,5.61 -3.46,-0.92 -6.93,-3.62 -10.57,-2.86 -2.23,0.9 -3.13,-2.21 -2.65,-3.92 -0.64,-2.4 -4,-3.06 -3.74,-5.78 -0.67,-2.42 -1.42,-4.7 -4.2,-4.81 -3.28,-1.01 -7.24,-4.77 -5.34,-8.44 0.16,0.35 0.31,0.71 0.47,1.06z\",\"name\":\"Niedersachsen\"},\"mv\":{\"path\":\"m468.38,35.5c-3.45,0.91 -7.31,1.41 -8.93,5.06 -0.26,1.49 -3.68,7.61 -2.06,6.34 1.83,-1.19 3.02,-3.21 2.21,-5.18 0.53,-1.31 3.04,-4.63 4,-2.16 0.98,2.93 -2.17,4.94 -1.91,7.78 2.5,-1.15 4.75,-3.34 7.37,-1.07 2.42,1.29 5.16,2.48 7.7,0.7 1.54,0.46 0.47,5.05 0.71,7.19 0.58,3.31 -4.03,1.68 -5.65,1 -1.59,-1.22 -4.83,-1.69 -5.19,-3.75 1.7,-4.11 -3.26,-1.94 -5.53,-2.31 -2.04,0.6 -6.23,0.55 -4.31,3.72 1.26,1.16 4.35,-0.42 5.38,2.04 2.76,1.44 -0.43,4.39 -2.54,4.37 -2.75,-0.56 -4.74,4.2 -0.71,3.48 2.64,0.57 6.65,0.82 2.18,2.56 -1.86,1.21 -4.55,1.66 -6,3.25 -1.1,2.82 0.47,5.48 1.28,8.13 5.01,1.69 10.02,3.38 15.03,5.06 2.12,-0.23 1.09,-3.14 0.16,-2.97 -0.76,1.88 -3.98,1.99 -3.25,-0.63 2.8,-3.12 5.65,-6.81 9.31,-9 3.6,-0.24 7.24,-1.3 10.81,-1.09 1.21,1.32 2.75,4.02 0.25,4.94 -1.68,2.68 3.83,-2.34 2.14,-4.14 -1.15,-2.6 -3.19,-5.78 -6.42,-4.67 -2.75,-1.52 -4.42,-5.28 -3.91,-8.38 1.26,-2.37 3.94,-3.83 5.78,-5.54 1.61,-2.97 -1.68,-6.36 -4.75,-5.02 -3.75,0.66 -8.71,3.63 -11.63,-0.19 -1.83,-1.92 -3.2,-6.71 0.31,-7.56 2.78,-1.63 0.58,-2.73 -1.84,-1.94z m-11.72,12.09c-0.08,-0.04 -0.09,0.18 0,0z m-4.56,2.28c1.4,-3.26 1.29,-4.92 0.11,-0.61l-0.09,0.49 -0.02,0.12z M457,55.72c-1,0.46 -3.54,5.14 -1.38,3.6 1.48,-0.87 6.21,-2.64 2.44,-3.69 -0.36,-0.17 -0.71,0.02 -1.06,0.09z m-41.09,7c-0.25,1.57 -4.9,6.97 -0.87,4.76 3.72,-1.22 7.4,-2.58 10.67,-4.69 2.93,-0.95 5.29,-0.58 1.12,-0.91 -3,-0.7 -6.71,0.09 -8.98,-2.44 -0.65,1.09 -1.29,2.19 -1.94,3.28z m31.25,-1.97c0.11,0.78 4.7,-2.13 0,0z m-5.81,0.66c-3.54,0.47 -7.66,0.41 -10.88,0.66 0.67,2.11 2.68,1.92 4.62,1.67 3.01,-0.17 6.3,-0.07 8.66,-2.29 -0.79,-0.19 -1.6,-0.03 -2.41,-0.03z m1.56,3.03c-2.88,1.13 -1.21,5.18 -4.19,6.34 -3.6,2.14 -6.72,-2.29 -10.47,-2.06 -3.01,-0.89 -5.76,1.74 -8.35,3.01 -2.71,2.18 -6.52,4.43 -7.27,7.96 0.18,1.51 4.13,0.67 2.84,2.66 -2.29,1.22 -5.24,-0.3 -6.59,-2.13 -0.64,-1.13 1.18,-6.54 -0.53,-3.19 -3.22,4.08 -9.79,4.87 -11.29,10.52 -1.07,2.64 -1.85,5.58 -5.3,3.89 -4.59,-1.7 -8.52,1.77 -12.84,2.72 -3.31,0.47 -6.17,-1.62 -9.5,-0.72 -2.97,1.63 -5.73,4.31 -8.33,6.62 -1.96,2.01 -2.68,5.33 -0.14,1.47 1.06,-1.2 2.41,-4.78 4.19,-3.41 2.37,2.62 -1.24,5.31 -2.34,7.63 -1.89,1.4 -5.07,1.98 -4.85,5.06 -0.11,3.13 -0.5,6.25 -2.62,8.72 -1.16,-0.88 -3.68,-1.23 -3.47,-3.09 -1.92,-1.17 -4.21,-1.95 -5.89,0 -2.35,1.65 -4.97,-1.81 -3.77,-4.13 -1.91,-1.96 -3.3,-5.2 -6.59,-3.87 -5.1,-0.35 -9.02,3.11 -13.04,5.78 1.53,2.15 0.81,6.74 -2.56,5.38 -2.64,1.41 -7.07,3.37 -6.72,7.09 1.31,2.5 2.06,5.12 1.15,7.92 0.24,2.24 3.08,3.96 4.95,5.27 1.49,-0.13 2.88,-0.94 4.38,0.28 1.77,1.48 2.91,4.8 1.54,6.72 -1.07,2.51 -1.74,5.18 -3.94,7.19 -3.45,4.41 -6.57,9.53 -11.63,12.13 -2.85,-1.67 -4.12,1.25 -4.21,3.8 -1.04,3.05 -1.35,4.72 2.28,3.81 4.38,-1.22 5.62,3.97 8.63,5.73 2.06,1.71 4.79,0.13 5.56,-2.03 1.66,-2.26 4.66,-0.28 6.53,0.28 2.66,5.4 4.35,13.11 11.13,14.56 1.97,-0.26 2.54,2.31 1.09,3.34 1.98,0.75 4.2,1.46 5.28,3.41 2.92,0.33 5.86,0.78 7.88,-1.84 2.53,-1.04 4.17,0.11 6.2,0.92 3.41,1.17 3.57,-3.72 2.91,-5.91 -1.19,-2.85 2.75,-4.04 4.19,-5.91 2.26,-0.57 6.06,-0.68 6.92,2.18 2.22,-0.82 7.58,-0.29 4.18,-3.52 1.89,-0.52 5.64,-0.7 8.01,-2.08 1.84,-1.16 5.37,-2.23 4.75,-4.82 0.89,-1.93 2.17,-4.64 4.7,-3.27 2.88,0.17 5.85,-1.68 8.79,-1.42 2.69,2.85 6.38,3.54 9.59,5.47 2.1,1.42 2.54,5.89 5.86,4.62 1.42,-1.54 4.52,-1.23 6.97,-0.84 2.64,0.11 5.42,0.12 6.99,2.65 1.76,1.23 2.9,3.74 4.81,4.36 3.51,-2.08 7.9,-1.79 11.85,-1.57 1.87,0.92 -0.02,2.26 -1.2,2.88 2.73,2.02 3.96,-3.02 6.01,-4.14 1.85,-2.5 5.05,-5.4 8.21,-4.51 0.4,1.63 2.6,4.73 2.69,1.53 -0.18,-4.03 4.85,-6.14 8.16,-4.72 0.92,1.02 1.13,4.66 2.78,2.25 1.94,-2.52 5.64,-4.66 5.83,-7.92 -0.98,-3.87 1.53,-7.87 4.55,-10.15 2.94,-2.19 5.03,-6.55 9.2,-6.14 3.13,-1.46 0.88,-2.47 0.94,-4.94 -0.47,-2.01 1.66,-5.18 3.04,-2.12 2.09,2.5 4.8,4.66 5.08,8.15 0.55,3.39 3.31,3.78 6.08,2.65 2.41,-0.3 6.44,1.78 7.55,-1.21 2.62,0.79 6.91,-0.99 8.25,2.06 1.49,6.11 -3.45,10.78 -7.19,14.78 -1.98,3.1 3.33,1.46 5.03,1.98 3.6,0.68 6.06,-2.53 6.41,-5.79 1,-1.79 6.72,-1.16 5.01,-3.95 -1.75,-4.35 -2.83,-9 -3.99,-13.46 -2.18,-2.83 -4,-6.6 -2.87,-10.22 -0.22,-5.43 -3.03,-10.29 -3.44,-15.72 -0.42,-2.28 -2.57,-2.04 -3.28,-0.22 -1.81,2.36 -5.39,1.17 -7.84,0.59 -3.37,-1.38 -7.23,-1.87 -9.74,-4.72 -2.44,-2.52 -7.36,-2.95 -8.1,-6.78 1.68,-2.2 3.24,-5.36 5.94,-6.13 0.44,-2.04 -2.63,-3.55 -3.67,-5.18 -2.27,-2.24 -3.02,-5.61 -4.55,-8.32 0.21,-2.8 0.27,-5.88 -2.37,-7.5 -1.78,-3.54 -4.86,-2.15 -7.78,-0.99 -2.53,1.08 -5.51,1.39 -7.79,2.9 0.14,1.21 2.98,3.43 0.56,3.84 -3.2,0.18 -3.78,-3.49 -4.59,-5.69 -0.99,-1.26 -3.18,1.08 -3.03,-1.66 3.36,-2.44 -2.45,-0.94 -3.09,-2.5 -1.56,-2.33 -1.97,-5.95 -5.39,-6.49 -2.15,-2.65 -4.68,-0.2 -6.44,-0.76 -2.83,-2.27 -3.42,-6.13 -4.17,-9.38 1.49,-2.52 -2.16,-5.5 -3.62,-7.17 -1.75,-0.48 -3.25,0.75 -4.88,1.21z m52.69,22.19c-3.16,0.36 -1.48,4.22 0.37,5.25 1.73,2.04 0.07,5.76 2.48,7.75 1.23,2.84 2.71,4.73 5.49,2.07 1.56,-1.43 -2.24,-3.39 -0.78,-5.26 2.84,0.22 4.58,0.55 1.09,-0.38 -3.78,-1.63 -6.46,-4.91 -7.63,-8.84 -0.21,-0.29 -0.58,-0.78 -1.03,-0.59z M508.81,98.25c2.29,2.13 4.59,4.76 3.68,8.19 1.29,3.82 -2.55,2.56 -4.59,1.72 -1.01,-1.74 -1.1,-5.02 -3.97,-3.22 -1.8,2.49 2.15,3.83 2.07,6.36 1.37,2.89 -1.67,5.12 -4.12,5.88 -2.51,0.31 -1.55,2.32 0.67,2.35 4.16,0.13 7.86,-2 11.53,-3.58 2.18,-0.69 5.82,0.22 7.3,-1.22 1.43,-3.32 1.05,-6.01 -2.4,-7.65 -4.01,-3.08 -7.07,-7.49 -11.49,-9.99 0.44,0.39 0.88,0.77 1.31,1.16z m-153.22,8.91c-2.07,0.65 -6.19,2.56 -3.84,5.09 3.14,1.72 4.9,-0.57 5.38,-3.56 0.63,-1.6 0.03,-1.86 -1.53,-1.53z\",\"name\":\"Mecklenburg-Vorpommern\"},\"he\":{\"path\":\"m231.91,351.28c-2.52,4.22 -6.22,7.61 -8.38,12.09 -3.47,2.99 -7.81,5.31 -10.28,9.09 -2.28,0.4 -5.74,0.13 -5.5,-3 2,-3.26 -3.47,-5.21 -5.91,-3.76 -1.41,0.82 -5.95,0.93 -4.65,3.28 0.64,2.39 3.13,3.23 3.37,5.4 0.17,2.42 -1.34,4.44 -3.94,3.29 -5.15,-0.39 -10.41,1.05 -14.95,3.35 -3.17,1.4 -4.72,4.59 -6.61,7.28 0.84,1.05 2.01,4.06 3.59,2.09 2.37,-0.9 6.57,-4.19 7.88,-0.28 0.22,4.19 2.13,8.77 -0.72,12.51 -0.71,2.75 -2.31,4.62 -5.22,4.99 -3.14,-0.43 -7.52,-2.41 -9.63,1.09 0.39,2.15 1.85,4.24 2.13,6.19 -1,1.73 -3.4,2.91 -4,4.63 3.11,2.85 -2.97,-1.27 -1.76,3.31 -1.97,2.72 -3.4,6.11 -5.96,8.25 -2.51,0.68 -5.22,-4.25 -7.23,-1.05 -2.7,2.64 -5.41,5.28 -8.11,7.92 0.49,2.48 3.93,4.74 1.63,7.26 -0.76,2.71 -4.3,4.36 -2.78,7.49 -0.8,2.92 2.77,3.49 2.12,5.75 -1.13,1.85 -1.06,5.6 -3.44,5.9 -1.97,0.22 -2.63,-1.53 -4.06,-2.13 -2.8,1.41 -5.48,6.02 -2.56,8.66 -0.49,2.46 -3.67,5.82 0.27,6.82 3.67,1.53 5.25,5.3 6.61,8.75 0.92,2.04 1.08,4.85 -1.7,5.37 -1.07,-0.93 -5.7,-1.33 -3.5,1.11 2.47,0.99 0.89,3.49 -1,3.99 -2.32,-1.08 -4.25,-1.29 -6.55,0.33 -2.11,0.73 -3.8,3.88 -1.08,4.86 2.02,1.08 1.39,4.09 0.28,5.59 -2.84,-2.01 -4.64,0.94 -6.72,2.5 -3.14,0.7 -2.62,2.78 -0.67,4.69 1.7,1.7 2.49,4.75 4.7,5.72 7.32,0.54 13.26,-4.85 20.19,-5.97 3.41,-0.25 5.55,2.38 7.21,4.9 2.7,2.09 3.72,5.69 3.75,8.95 -2.21,2.91 0.93,6.19 1.75,9.06 1.22,3.02 5.3,4.54 4.69,8.16 -0.83,2.19 -2.69,3.5 -5.03,3.69 -3.67,1.29 -0.58,5.33 -0.19,7.78 1.19,1.23 1.73,4.58 3.56,3.47 2.87,-0.09 4.72,3.15 6.02,5.29 0.45,2.46 3.64,2.83 4.61,0.44 0.84,-1.91 -0.18,-4.52 -1.35,-5.64 -0.49,-3.07 3.89,-2.29 5.74,-3.3 2.12,-0.86 2.95,1.54 1.33,2.77 -0.13,1.19 0.36,6.2 2.44,7.44 3.73,1.71 7.96,2.48 12.06,2.41 0.3,2.37 -0.95,4.21 -3.22,5.14 -2.12,0.41 -4.13,4.05 -2.97,5.83 3.16,0.98 4.62,-3.02 6.97,-4.37 2.62,-1.23 -1.27,-2.95 1.23,-4.7 1.83,-3.04 5.68,-3.23 8.67,-4.31 2.07,1.28 4.67,2.3 1.65,-0.28 -2.77,-0.69 1.28,-2 0.17,-4.09 -1.83,-2.61 0.09,-5.95 0,-8.84 0.67,-3.72 4.45,-6.62 2.87,-10.6 0.27,-3.23 -3.17,-2.82 -4.5,-5.35 -1.88,-1.31 -2.94,-3.09 -2.59,-5.43 1.25,-0.49 -0.57,-3.68 -0.1,-5.19 -0.37,-2.39 0.26,-5.26 -1.15,-7.31 2.19,-0.29 2.3,-4.03 0.75,-4.91 -3.55,0.11 -2.06,-3.18 -1.51,-5.43 1.26,-3.72 6.02,-2.87 8.99,-4.29 3.44,-0.94 6.85,-2.48 10.38,-0.98 2.53,1.03 6.93,-0.17 7.36,3.51 0.22,3.77 3.72,2.22 6.1,1.81 3.18,-0.12 0.4,-3.63 0.68,-5.44 -0.84,-3.13 -0.37,-6.51 1.38,-9.24 2.02,0.57 4.63,1.89 6.47,0.94 0.86,-2.28 1.78,-5.61 4.88,-5.28 3,-1.1 4.77,-5.15 2.22,-7.63 2.46,-1.43 0.46,-5.9 4.2,-5.65 2.35,-1.65 4.24,2.19 6.72,0.64 3.67,-2.12 7.61,-4.88 9.17,-8.99 0.87,-4.15 -0.43,-8.59 0.34,-12.69 1.59,-1.67 2.87,-3.11 0.88,-5.25 -1.95,-0.3 -4.67,-0.51 -5.91,1.03 2.68,1.72 0.06,4.83 -2.4,3.41 -3.4,0.47 -3.73,-2.19 -3.1,-4.85 1.64,-2.54 4.97,-5.54 3.53,-8.77 -2.61,-1.88 3.02,-1.21 0.62,-3.76 -0.39,-2.4 1.7,-5.24 4.25,-4.19 2.32,-0.16 2.52,-3.78 3.13,-5.59 -0.42,-3.72 -1.44,-7.39 -2.41,-10.94 0.58,-3.37 4.7,-2.07 6.91,-1.42 1.33,1.43 3.54,1.27 4.93,0.14 1.65,-2.01 -0.8,-4 -2.88,-4.28 -0.73,-2.4 -0.28,-5.7 -2.15,-8.05 -1.81,-2.17 3.2,-3.84 4.13,-1.92 0.85,2.09 2.04,3.15 0.8,0.19 -0.79,-1.77 1.55,-2.57 1.81,-3.75 -2.16,-0.34 -3.1,-3.03 -5.47,-3.13 -2.41,-1.32 -5.66,-1.92 -5.69,-5.28 -2.73,-1.26 -6.43,-1.62 -7.14,-5.14 -0.93,-2.28 -2.35,-5.29 -0.96,-7.39 -0.41,-3.77 -4.2,-2.41 -6.91,-2.04 -2.44,0.91 -4.65,3.07 -6.27,5.16 0.26,3.75 3.81,-0.17 4,2.53 0.6,2.43 -1.31,3.7 -3.35,4.44 -2.57,-2.31 -6.46,-3.25 -9.7,-4.62 -2.11,-0.64 -2.73,-3.33 -1.64,-5.16 0.52,-2.33 2.7,-3.11 4.88,-2.75 1.13,-2.01 -0.13,-5.09 -0.97,-7.03 -0.84,-1.85 -3.71,-4.21 -0.9,-5.87 1.12,-2.04 3.33,-1.71 4.5,-3.66 2.57,-0.35 -1.93,-2.01 -2.09,-3.38 -2.42,-2.04 -5.4,-1.51 -8.28,-1.84 -2.56,-0.15 0.13,-3.78 -1.82,-2.9 -0.65,0.13 -1.3,0.26 -1.96,0.4z m48.47,53.75c-0.2,0.03 0.16,0.35 0,0z\",\"name\":\"Hessen\"},\"hh\":{\"path\":\"m273.31,139.16c-1.5,1.09 -0.93,4.3 -3.67,5.06 -1.61,1.47 -3.71,3.26 -5.89,1.85 -2.33,-0.78 -1.81,2.21 -3.43,3.24 -1.3,1.52 -3.26,5.5 -5.37,2.78 -1.64,-2.73 -2.78,-2.89 -3.11,0.48 -1.95,3.52 3.88,1.56 2.16,5.63 -0.89,2.25 0.93,3.48 1.47,5.56 1.11,1.96 3.5,5.01 5.03,1.63 1.82,-0.66 3.1,2.78 4.87,3.63 1.74,1.19 3.59,-1.92 4.1,-3.57 1.25,-2.32 3.61,0.86 4.66,2.15 1.9,2.2 3.93,4.76 7.21,3.97 1.13,-0.62 1.01,-2.97 2.91,-3.07 2.93,-1.45 -2.65,-3.59 -2.97,-5.78 -1.42,-2.02 -5.31,-2.65 -5.35,-5.94 -0.83,-2.64 0.75,-4.88 3,-6.12 2.02,-2.17 0.93,-4.31 -0.94,-5.97 0.01,-2.33 -0.49,-4.73 0.53,-6.88 -1.59,-1.66 -3.52,1.07 -5.22,1.34z\",\"name\":\"Hamburg\"},\"hb\":{\"path\":\"m177.13,149.91c-1.02,1.81 2,3.93 2.44,6 0.78,1.49 -1.36,2.66 0.47,3.7 0.36,2.05 1.77,2.73 3.27,0.5 2.31,-1.97 -1.15,-5.18 0.62,-7.7 1.79,-3.68 -3.69,-1.91 -5.73,-2.54 -0.36,-0.05 -0.71,0.02 -1.07,0.05z m-2.34,39.47c1.3,3.24 5.12,3.63 7.78,4.94 1.52,2.61 1.31,5.93 3.86,7.69 2.1,1.22 1.38,3.71 2.04,5.46 1.64,0.31 3.99,-0.68 5.77,0.73 2.5,0.16 5.45,3.63 7.38,0.87 2.63,-1.56 0.74,-5.04 0.98,-7.51 -2.78,-1.97 1.76,-2.01 0.87,-3.11 -1.26,-2.73 -3.93,0.26 -6.25,-0.86 -4.35,-0.36 -7.69,-4.63 -12.29,-4.36 -3.91,0.3 -6.92,-2.67 -10.15,-3.86z\",\"name\":\"Bremen\"},\"bb\":{\"path\":\"m499.25,149.81c-0.84,1.88 -0.81,4.34 1.28,5.34 -1.74,2.06 -3.79,3.29 -6.37,3.46 -3.18,2.74 -6.61,5.55 -9.05,8.91 -1.36,2.25 -1.54,4.68 -0.87,7.16 -2.28,3.16 -4.83,6.45 -8.06,8.63 -2.41,-0.12 -1.19,-4.5 -3.97,-3.53 -3,-0.61 -5.44,2.28 -5,5.15 -0.4,2.7 -4.01,1.19 -3.97,-1.02 -0.57,-1.97 -3.52,0.03 -4.56,0.75 -2.74,2.49 -4.73,6.13 -7.88,8 -1.99,-0.23 -3.86,-2.04 -1.25,-3.16 1.45,-1.47 -4.76,-0.14 -6.18,-0.46 -2.13,-0.19 -5.04,3.22 -6.6,0.49 -2.73,-2.51 -5.01,-6.52 -9.27,-5.91 -2.13,0.04 -5.13,-1.3 -6.45,0.69 -2.87,1.21 -4.79,-0.3 -6.25,-2.72 -1.52,-3.98 -6.92,-3.25 -9.48,-6.32 -1.8,-2.15 -4.65,0.11 -6.93,0.1 -2.38,1.26 -5.39,-1.14 -6.32,2.55 0.99,3.09 -2.96,4.01 -4.77,5.61 -2.15,1.15 -6.11,1.77 -7.27,2.46 2,2.09 -1.36,2.73 -2.94,2.85 -3.43,2.16 -3.88,-1.29 -6.73,-1.81 -3.03,-0.86 -4.57,2.1 -6.63,3.69 0.64,2.72 1.23,7.08 -1.72,8.53 -1.68,-0.03 -3.77,-0.05 -4.75,-1.47 -3.21,-0.91 -4.58,3.15 -7.53,2.47 -2.88,-1 -5.03,0.48 -2.09,2.67 1.36,1.69 3.08,4 5.08,1.55 1.94,-1.5 5.34,-2.28 6.7,0.42 1.5,2.04 4.32,1.65 6.53,2.39 1.23,-1.43 4.73,-0.25 2.95,1.62 -1.67,1.72 2.21,2.59 2.91,3.81 1.43,1.12 2.93,-2.01 4.58,-0.33 1.76,1.64 5.48,1.89 6.03,4.47 0.12,1.23 -2.72,2.23 -0.94,3.16 4.27,1.68 8.68,4.08 13.38,2.66 2.5,1.2 6.82,-4.08 4.61,0.18 -0.35,3.68 2.96,0.6 4.61,0.47 3.29,0.55 2.92,4.31 3.72,6.78 0.37,2.84 -3.59,3.22 -2.84,6.46 -1.66,3.81 3.69,5.99 2.3,9.81 0.77,2.86 -2.32,3.27 -3.45,4.66 -0.54,2.65 -2.13,5.71 -1.65,8.26 0.83,2.24 4.39,3.7 4.36,0.28 2.12,1.42 6.84,0.74 6.61,4.02 1.02,3.09 -2.67,5.39 -1.23,8.53 0.24,2.83 1.88,6.06 -0.69,8.26 -2.05,3.4 -2.35,7.41 -1.88,11.28 -2.17,2.79 -1.48,5.22 1.03,7.44 3.11,5.22 7.1,10.36 13.17,12.16 3.29,1.01 7.58,3.94 10.7,1.22 -0.29,-3.23 3.4,-2.12 4.94,-0.75 2.81,1.03 3.99,2.78 6.11,4.39 2.08,1.33 4.66,2.82 7.04,1.98 3.14,1.39 6,3.2 8.16,5.88 3.11,1.39 3.63,-2.03 5.78,-1.38 1.85,0.64 2.36,3.88 -0.16,3.41 1.53,4.44 1.98,9.42 4.53,13.28 -0.28,4.36 -5.19,5.81 -8.13,8.16 1.38,4.17 2.89,2.17 5.54,3.45 2.71,1.73 3.05,5.69 4.55,8.42 0.92,3.28 0.16,6.97 -0.56,10.28 1.12,1.84 2.33,3.34 4.61,2.31 0.97,-1.14 2.38,-3.45 4.49,-4.31 2.22,-1.43 4.58,-3.03 6.29,-0.12 4.07,3.53 9.06,7.27 14.8,6.16 2.09,-1.58 2.79,0.71 5.58,0.52 2.7,-0.23 5.1,-3 8.17,-1.96 3.29,-1.1 7.81,-0.26 9.47,-3.95 2.24,-4.34 2.1,-9.97 5.65,-13.77 1.52,-0.92 3.97,-0 5.84,-0.31 2.67,-0.5 5.34,2.24 7.62,0.72 1.65,-1.85 4.86,-1.52 6.32,-2.54 1.7,-2.16 5.35,-2.05 7.75,-3.38 2.31,-0.33 2.58,2.04 4.09,2.56 2.19,0.22 4.28,-0.47 4.14,-3.06 1.18,-2.26 3.58,-0.39 3.55,-4.22 -0.1,-2.81 -0.47,-5.99 -3.36,-7.26 -3.75,-2.16 -4.56,-6.65 -6.42,-10.21 -2.9,-0.63 -3.35,-5.09 -0.55,-6.35 3.76,-2.93 5.89,-7.61 5.36,-12.4 -0.5,-2.47 -0,-3.76 1.5,-6 1.18,-2.51 -0.13,-5.99 -3.13,-5.94 -2.3,-1.74 -2.72,-5.61 -0.53,-7.63 -0.28,-2.81 1.52,-6.55 -1.09,-8.56 -2.6,-1.24 -6.3,-0.29 -7.81,-3.19 -1.11,-3.05 -1.39,-6.47 -2.42,-9.42 -1.68,-2.31 -0.63,-6.4 2.17,-7.48 1.98,-2.33 3.3,-5.1 2.57,-8.22 0.38,-2.83 -0.31,-5.28 -2.51,-7.19 -3.54,-2.79 -8.55,-3.73 -11.34,-7.59 -2.56,-5.3 -8.11,-8.18 -12.88,-11.28 -2.02,-1.42 -4.87,-0.97 -6.69,-2.38 -2.03,-2.63 3.01,-4.81 1.15,-7.48 -0.64,-2.66 -2.69,-6.39 0.67,-8.11 3.25,-1.9 6.37,-3.89 8.77,-6.91 3.06,-2.56 2.89,-6.96 3.39,-10.59 -1.83,-1.72 -1.71,-4.98 -0.47,-6.84 1.2,-1.67 4.41,-4.79 3.03,-6.69 -2.15,0.19 -2.35,-3.69 -2.22,-5.41 -2.44,1.01 -5.3,1.53 -5.5,4.63 -1.15,2.4 -3.02,3.91 -5.78,3.72 -2.22,-0.47 -6.15,0.62 -7.41,-0.9 0.47,-4.6 5.82,-6.58 7.23,-10.78 0.81,-2.01 1.54,-5.13 -0.2,-6.73 -3.16,-0.57 -5.69,-0.28 -7.87,1.03 -3.28,0.28 -6.64,-0.73 -9.75,0.5 -4.23,-1.06 -2.75,-6.98 -5.95,-9.24 -1.05,-1.15 -2.07,-2.54 -3.15,-3.54z M484.13,240.25c2.62,1.78 3.22,5.59 5.07,8.15 1.73,3.05 5.13,4.94 5.9,8.6 -0.13,3.15 2.96,3.88 5.31,4.97 3.02,1.16 1.5,3.96 0.62,6.15 -2.11,1.18 -0.3,2.41 -1.81,3.94 -3.37,1.44 -6.8,-1.31 -10.22,-1.72 -2.61,0.29 -4.02,-2.66 -5.44,-2.59 -3.39,0.13 0.93,5.86 -3.25,4.2 -2.15,-1.56 -3.93,-2.85 -6.03,-2.56 -2.2,-2.21 -6.14,-1.55 -8.26,0.46 3.07,1.05 -3.31,1.77 -4.27,0.08 -2.48,-1.03 -0.87,-2.57 0.43,-3.73 -0.55,-1.26 -1.2,-3.36 0.31,-4.63 3.03,-2.14 1.73,-3.7 -0.71,-3.56 0.04,-2.5 -0.02,-5.34 0.62,-7.66 1.31,-1.47 2.88,-1.58 4.41,-0.5 1.08,0.35 -1.33,-2.46 0.8,-3.32 1.36,-1.61 4.71,-0.61 6.85,-0.8 2.24,1.02 3.85,-0.76 4.63,-2.66 1.77,2.37 2.44,0.08 3.29,-1.66 0.36,-0.52 1.13,-1.47 1.74,-1.16z\",\"name\":\"Brandenburg\"},\"be\":{\"path\":\"m483.38,241.69c-1,1.58 -1.61,5.27 -4.03,2.88 -0.91,2.64 -3.81,2.59 -6.06,2.05 -1.91,-0.31 -7.28,0.09 -4.84,2.79 1.38,2.14 -2.25,1.68 -3.34,0.78 -3.18,-0.15 -1.8,4.36 -2.36,6.45 -0.09,0.87 5.17,1.04 2.51,3.18 -1.16,1.75 -4.04,3.69 -1.89,5.83 0.53,1.82 -3.82,2.76 -0.54,3.7 2.29,1.61 3.52,-2 6.07,-2.2 2.07,-0.34 5.08,-0.28 6.25,1.69 2.29,-3.28 5.18,4.71 6.09,1.16 -1.15,-2.62 1.9,-3.14 3.66,-3.85 0.63,3.56 5.17,2.88 7.8,4.18 1.96,0.26 4.94,2.32 6.26,0.28 -2.5,-1.19 2.5,-2.95 2,-5.26 1.05,-2.66 -3.24,-2.9 -4.77,-4.37 -2.69,-0.38 -1.4,-4.38 -3.15,-6.05 -1.61,-3.03 -4.93,-4.88 -5.94,-8.38 -1.14,-0.99 -1.96,-6.07 -3.71,-4.88z\",\"name\":\"Berlin\"},\"by\":{\"path\":\"m273.66,464.44c-1.31,1.91 -3.76,2.78 -3.5,5.34 -1.83,4.59 -6.12,7.95 -10.5,9.94 -2.67,1.02 -4.62,-2.49 -7.15,-0.61 -1.54,0.74 -0.64,3.49 -2.13,4.58 2.4,3.04 -0.04,7.53 -3.44,8.47 -3.38,-0.45 -3.01,4.07 -4.66,5.5 -2.16,0.47 -4.23,-0.33 -6.28,-0.91 -2.54,3.91 -0.46,8.53 0,12.63 -0.53,2.87 -4.66,1.74 -6.9,2.55 -3.16,0.27 -1.64,-5.68 -4.98,-5.22 -4.19,-0.72 -8.41,-2.46 -12.49,-0.42 -2.97,1.16 -6.84,1.23 -9.32,2.99 -0.59,1.48 -2.41,4.44 -0.69,5.28 3.02,-0.37 2.55,4.03 2.28,5.63 -2.37,0.86 0.17,4.18 -0.45,6.12 0.28,2.66 -0.27,5.78 1.89,7.78 -3.88,-0.85 0.14,3.73 1.52,4.58 0.84,1.94 3.96,0.92 3.59,3.64 1.27,2.88 0.6,5.62 -0.78,8.31 -2.26,2.93 -2.47,7.6 -2.42,11.23 1.24,2.27 4.6,0.89 6.75,1.12 2.16,0.04 4.75,-2.13 4.73,-4.03 -0.34,-2.04 2.18,-5.23 4.72,-3.63 1.87,0.74 5.34,1.32 4.23,-1.45 1.6,-1.24 -0.63,-7.5 -0.96,-4.79 0.79,2.49 -3.31,2.3 -3.52,0.13 -0.83,-1.56 -3.4,-4.82 -1.19,-6.09 3.07,-0.15 6.37,-1.05 9.34,-0.19 0.41,-2.46 4.94,-2.22 3.88,0.41 0.59,1.49 3.45,3.68 4.43,1.04 1.16,-1.1 4.96,-5.66 4.94,-1.88 -0.59,2.44 0.18,5.72 -1.59,7.45 0.33,2.92 3.79,0.57 5.16,-0.39 2.48,-0.32 5.61,-3.48 7.29,-0.3 2.99,3.39 2.07,8.94 5.01,12.52 2.18,0.31 2.43,3.58 2.41,5.6 0.45,1.81 -0.72,3.89 -0.34,5.16 2.77,0.82 6.24,0.65 7.69,-2.25 -0.15,-1.12 -1.91,-2.61 0.74,-3.68 2.83,-1.31 3.76,2.79 4.2,4.84 -1.95,1.56 1.87,3.4 1.31,5.57 0.26,2.1 4.02,5.65 0.6,6.68 -2.91,-0.9 -2.81,3.3 -1.87,5.04 0.96,2.51 3.11,4.68 1.16,7.27 0.44,2.52 -1.72,6.37 1.65,7.44 1.89,1.55 4.82,1.6 5.41,4.43 1.71,2.58 1.5,5.88 2.31,8.79 -2.03,1.94 3.23,2.14 4.31,3.59 2.13,2.06 5.86,2.95 6.29,6.28 3.84,2.87 1.91,8.3 2.08,12.46 0.25,2.64 -0.94,5.5 -2.07,7.44 -0.04,3.1 4.34,2.42 3.61,6.41 2.49,1.05 0.06,3.97 -1.86,4.33 -1.61,1.16 -4.23,0.12 -2.18,-1.56 2.29,-3.25 -3.46,-0.68 -4.81,-0.69 -2.23,0.84 -5.79,-3.18 -5.97,0.9 -0.14,3 3.91,4.63 3.42,7.93 0.53,2.67 0.99,5.81 0.27,8.32 -1.49,1.89 -3.93,-0.58 -5.06,1.19 0.32,2.29 -3.52,3.66 -4.94,5.41 -3.13,1.93 -4.28,-3.47 -7.13,-0.01 -2.35,0.12 -0.74,3.36 -2.58,4.82 -1.74,2.44 -2.43,5.75 -0.16,8.06 1.31,2.7 4.08,4.51 3.75,7.78 0.56,4.38 1.13,8.84 2.71,12.9 2.91,1.82 1.6,5.52 2,8.41 0.45,2.66 -1.86,4.17 -1.66,6.72 0.19,1.55 -3.47,0.81 -1.84,3.13 2.61,1.07 0.38,3.66 0.87,5.81 0.2,2.47 -0.14,5.78 2.07,7.38 0.5,2.56 -3.74,2.92 -1.81,6.18 1.02,3.01 3.86,6.55 1.16,9.46 -1.18,1.16 -3.19,0.63 -3.38,2.95 -1.52,3.81 -0.35,-4.27 -2.92,-3.81 -1.88,-0.93 -3.51,0.34 -4.08,2.09 -3.48,0.28 -7.46,-0.44 -10.66,0.7 -2.62,1.93 -4.17,6.22 -7.96,5.49 -1.72,0.26 -2.84,-2.34 -4.53,-0.51 -3.88,1.61 -1.7,3.37 1.37,4.04 3.22,2.32 4.79,-0.35 6.38,-2.97 2.19,-2.61 6.67,0.35 5.03,3.47 -1.46,1.59 3.12,2.56 4.5,2.46 2.2,0.75 5.22,-2.54 5.71,-2.37 -1.26,2.65 0.2,5.16 1.79,7.23 3.74,-0.93 5.96,3.27 7.63,5.97 -1.64,1.92 -2.48,3.42 -1,5.94 0.03,1.72 5.17,0.51 4.35,-1.56 0.81,-1.86 3.6,-1.1 5.09,-0.53 2.05,2.24 -1.68,3.98 -1.81,6.26 -0.21,1.48 -3.48,5.59 -1.04,5.45 5.9,-0.28 10.64,-4.27 13.65,-9.1 1.68,-2.49 4.2,-4.8 5.23,-7.51 -0.27,-1.73 0.37,-4.61 -1.96,-4.47 -1.78,-2.98 -0.76,-6.77 -1.03,-10.06 0.59,-1.59 4.6,-2.06 3.97,0.09 -1.67,2.23 -0.39,3.45 2.34,3.77 2.31,0.63 4.34,0.47 4.81,-2.09 1.65,-2.51 5.13,-0.08 7.59,-0.22 0.5,2.03 3.14,2.52 5.19,3.38 2.99,1.48 5.86,-2.19 8.72,-1.09 3.48,2.5 -1.05,3.09 -0.97,5.59 2.55,0.29 4.83,1.11 6.25,3.38 2.96,1.58 0.77,3.77 1.16,5.09 4.01,0.78 8.16,-0.05 11.5,-2.41 2.24,-1.08 5.28,-2.46 7.66,-1.16 -0.63,2.06 -2.84,4.65 1.39,2.92 0.99,-2.2 2.51,-4.2 4.63,-5.64 2.78,-1.69 3.97,-4.98 6.66,-6.66 2.2,2.25 6,0.82 8.75,0.25 1.72,-1.5 -0.11,-4.24 1.75,-6 1.27,-3.31 5.21,-1.69 7.87,-2.01 3.14,-0.06 6.26,-0.02 9.34,0.6 1.3,-3.59 5.97,-3.64 9.18,-3.87 2.61,1.43 5.36,-1.54 7.57,0.5 2.56,0.03 5.94,1.12 8.03,-0.19 -0.56,-3.08 -2.75,-5.66 -1.81,-8.97 1.68,-1.6 3.23,-4.06 5.5,-4.97 2.05,1.73 -0.97,3.82 0.9,5.81 0.74,1.55 6.18,-3.23 5.07,-0.41 2.78,1.55 7.13,-0.47 8.4,3.24 1.5,2.9 4.05,3.71 6.55,1.34 2.39,-0.55 1.97,-4.34 4.92,-3.93 3.45,-1.43 7.22,-0.35 10.38,1.04 0.63,2.57 4.26,5.4 1.53,7.59 -1.91,3.64 3.48,5.29 5.61,7.15 2.86,2.07 5.93,3.86 9.26,5.04 1.6,-1.29 3.65,-3.83 2,-5.66 -1.98,-1.39 0.16,-4.42 -0.13,-6.41 0.81,-2.05 3.05,-3.55 3.5,-5.53 -1.37,-2.88 -2.02,-7.29 -5.72,-7.94 -0.69,2.59 -4.42,1.51 -6.31,1.34 -1.86,-0.73 -2.16,-2.62 -0.73,-4.04 1.53,-3.69 4.03,-7.15 5.39,-10.77 -2.14,-3.41 -3.7,-7.7 -6.59,-10.34 -2.88,0.4 -3.64,-2.11 -3.9,-4.41 -1.24,-4.49 -8.32,-5.42 -8.04,-10.73 0.04,-2.8 4.04,-3.87 5.63,-5.89 1.81,-1.22 1.17,-3.89 2.78,-4.97 2.57,-0.91 6.07,0.24 7.47,-2.89 1.29,-1.84 2.29,-3.74 4.7,-4.4 2.08,-2 5.15,-0.22 7.17,-2.39 2.7,-1.73 6.58,0.63 8.88,-2.3 3.06,-1.95 5.85,-4.79 7.85,-7.65 0.43,-2.52 2.26,-5.13 0.38,-7.38 0.45,-3.1 3.3,-6.59 0.44,-9.38 -0.61,-1.41 4.07,-1.2 4.41,-3.5 -0.1,-4.04 4.08,-0.04 6.17,0.11 3.24,1.6 5.97,4.3 9.52,5.26 3.15,-4.15 7.21,-9.07 5.25,-14.64 0.5,-2.8 -3.41,-5.03 -1.06,-7.39 1.18,-2.53 1.51,-5.28 -0.56,-7.48 -1.75,-2.45 -3.35,-5.1 -5.19,-7.42 -2,1.56 -5.42,0.69 -5.99,-1.97 -0.86,-2.58 -2.84,-4.62 -4.76,-6.5 -2.32,-0.51 -5.25,-0.27 -4.06,2.66 -1.49,2 -4.02,-1.61 -5.78,-2.26 -3.51,-1.84 -1.34,-7.26 -4.67,-9.54 -1.77,-2.1 -3.92,-4.14 -6.4,-5.23 -2.11,1.09 -4.33,0.73 -6.1,-0.79 -2.35,-0.65 -1.29,-3.34 -2.28,-4.52 -5.62,-4.34 -8.22,-11.7 -13.85,-16.05 -0.96,-0.66 -5.12,-1.7 -4.56,-0.67 1,2.66 -3.26,0.86 -4.59,0.92 -2.67,0.16 -4.59,-1.69 -5.1,-4.2 0.33,-2.99 -3.95,-3.91 -5.58,-5.98 -1.3,-1.16 -4.06,-3.42 -2.45,-4.96 0.01,-2.41 0.31,-4 -2.29,-4.05 -2.07,-0.53 -1.46,-1.98 -2.8,-3.5 -2.08,-3.55 -3.13,-7.39 -3.48,-11.47 -1,-2.47 -5.61,-0.9 -6.56,-3.96 -1.46,-1.68 -3.4,-4.99 -0.08,-5.91 3.24,-0.92 2.39,-4.05 3.21,-6.53 0.88,-3.28 4.17,-5.56 3.4,-9.15 -1.69,-2.78 -3.02,-7.24 -7.16,-6.34 -2.89,-1.46 -5.43,-3.31 -7.5,-5.81 -4.37,0.47 -3.42,-1.95 -5.22,-4.41 -1.08,-0.95 -3.08,-0.2 -3.19,-2.3 -0.69,-1.94 -0.29,-3.97 0.91,-5.48 -1.13,-3.44 -4.24,-5.4 -7.25,-6.96 -2.59,-1.3 0.21,-3.74 1.9,-4.17 -1.15,-4.86 -6.38,-5.68 -10.5,-6.63 -1.66,-1.44 1.51,-4.7 -1.45,-5.85 -1.47,-2.96 -3.98,-0.6 -6.15,-0.03 -4.99,1.83 -10.54,1.94 -15.74,2.63 -0.77,-0.67 -2.77,-2.61 -3.03,-0.5 -0.96,2.08 -4.29,1.95 -5.15,-0.33 -1.46,-1.7 -1.05,-3.98 -3.62,-3.71 -2.87,-0.72 -2.28,-4.47 -1.51,-6.47 2.3,-1.83 -2.65,-2.89 -4.3,-2.43 -1.7,1.3 -2.92,3.72 -5.37,4.41 -1.61,-1.19 -1.85,2.9 -0.04,2.88 0.66,3.05 1.58,6.38 1.39,9.48 -1.36,2.21 -0.38,7.05 -3.72,7.01 -1.95,0.12 -2.86,4.45 -5,1.12 -2.19,-1.15 -2.98,-4.4 -0.24,-5.3 -0.32,-1.92 -3.58,-5.33 -4.44,-2.09 -2.92,1.68 -7.59,1.16 -8.96,-2.28 -0.97,-2.98 -4.83,-0.87 -7.1,-1.48 -2.57,0.83 -5.91,1.76 -7.83,3.43 -0.82,2.98 1.43,4.47 3.69,5.77 1.52,2.24 6.27,1.22 5.55,4.87 -1.22,3.47 -5.4,0.77 -7.88,0.59 -0.91,0.73 1.13,4.84 -1.63,4.69 -2.37,-0.99 -5.13,-1.74 -7.34,-2.66 -1.81,-3.33 -1.13,-7.07 -0.75,-10.66 -3.86,-0.79 -8.92,-2.08 -9.69,-6.56 -1.65,1.27 -4.99,0.71 -4.64,-1.87 -0.45,-2.76 -1.64,-5.72 -3.61,-7.69 -2.74,-0.99 -5.53,-1.93 -6.83,-4.79 -1.25,-3.09 -5.32,-0.4 -7.74,-0.8z m46.75,26.38c-0.1,0.03 0.04,0.06 0,0z\",\"name\":\"Bayern\"},\"bw\":{\"path\":\"m233,542.31c-1,3.03 -3.8,0.55 -6.25,1.41 -1.85,0.3 -6.11,-0.67 -4.1,2.56 0.5,1.4 3.45,5.79 2.97,1.91 0.74,-2.88 3.54,0.29 3.5,2.12 -0.05,2.12 0.13,4.28 -0.67,5.91 -2.21,2.88 -6.93,-2.7 -8.36,1.34 0.26,1.89 -0.96,3.78 -2.66,5.38 -2.87,1.47 -6.48,1.36 -9.56,0.91 -0.14,1.71 -1.09,2.75 0.88,3.56 2.16,2.43 -1.84,4.61 -2.82,1.5 -2.24,-0.41 -4.9,0.87 -7.01,1.83 -1.86,1.31 -3.21,3.14 -1.07,4.79 -2.58,2.03 -4.76,4.93 -7.53,6.53 -2.28,0.77 -4.85,-1.67 -3.07,-3.7 0.44,-3.45 3.31,-3.76 5.49,-5.64 2.15,-2.77 -2.95,-1.33 -4.33,-2.33 -3.36,-0.68 -8.66,-1.27 -8.78,-5.66 -0.37,-2.27 -2.39,-6.18 0.16,-6.35 -1.56,0.22 -6.19,0.51 -5.66,2.03 1.02,1.01 1.63,3.91 1.34,5.81 -0.91,2.56 -4.61,4.01 -6.17,1.22 -1.23,-2.27 -2.8,-5.47 -5.58,-5.87 -1.35,0.5 -2.27,2.96 -1.13,4.34 0.64,2.82 1.72,5.99 1.41,8.75 -1.19,1.47 2.13,0.8 2.94,1.09 2.56,1.28 -0.68,4.01 0.44,6.03 0.58,2.78 -1.68,4.86 -3.44,6.5 -0.2,1.61 2.95,0.95 2.5,3.03 -0.5,1.7 -2.89,2.29 -3.8,3.97 -1.51,1 -4.09,2.21 -3,4.19 -0,4.19 -1.63,8.4 -2.57,12.44 -1.88,2.38 -4.07,4.74 -4.06,8 -0.94,3.32 -4.33,5.15 -7.25,6.25 -3.09,4.3 -5.58,9.02 -6.75,14.19 -2.02,2.94 -5.4,5.15 -8.91,5.69 -0.21,2.82 -1.4,5.14 -3.56,6.99 -1.36,2.17 -3.49,3.53 -5.66,4.61 -1.15,2.67 -3.64,5.13 -2.5,8.22 0.36,2.98 -0.28,5.69 -1.97,8.15 -1.95,4.34 -4.99,8.87 -3.01,13.76 0.98,2.33 -1.6,3.46 -3.29,4.06 -1.58,3.35 -1.03,7.85 -3.97,10.71 -3.45,3.81 -5.74,8.63 -5.57,13.85 -1.32,3.83 3.9,5.48 3.32,9.25 -1.3,3.08 -3.94,5.46 -4.57,8.93 -0.87,1.91 1.04,3.96 -0.54,5.81 -1.06,2.51 -2.87,5.19 -1.04,7.86 1.18,2.15 -0.92,4.15 -2.35,5.35 -0.31,3.89 3.1,6.22 5,9.16 2.34,1.03 6.63,0.35 6.5,3.84 -1.16,1.4 -4.38,2.08 -0.94,3.62 2.67,0.19 5.38,-1.24 7.85,-2.15 1.44,-1.71 2.81,-3.83 5.44,-3.09 2.67,-0.79 2.95,2.96 5.54,2.9 3.15,1.3 6.81,1.64 9.99,0.41 0.13,-3.3 4.53,-3.63 6.59,-5.48 2.38,-1.41 5.39,0.37 7.78,0.98 0.79,1.29 -0,3.08 2.19,3.78 3.61,0.25 7.37,1.32 10.72,-0.47 -3.18,-2.2 -0.41,-3.55 1.74,-5.09 1.44,-1.37 5.34,0.59 4.6,2.72 0.03,1.73 2.81,-2.43 2.91,-3.66 0.99,-2.17 -2.08,-3.31 -3.78,-2.38 -2.21,0.79 -3.16,2.58 -5.97,3.13 -1.88,-0.81 -4.32,-2.21 -5.31,-4.16 0.59,-3.61 2.99,-6.72 5.06,-9.63 1.63,-2.24 5.73,-0.38 6.44,-3.38 2.06,-2.35 5.55,0.44 4.49,3.47 2.07,0.67 0.21,-4.19 4.06,-1.25 1.57,1.2 4.32,3.45 2.25,5.23 0.1,2.76 1.41,4.58 4.22,5.01 1.74,-2.24 3.46,-0.92 5.76,1.59 2.1,2.97 5.8,0.78 7.96,-0.93 3.82,-2.7 8.65,-0.24 12.27,1.62 3.55,2.04 4.43,-1.99 2.13,-4.27 -0.59,-2.2 -2.12,-3.67 -4.12,-4.07 -2.4,-1.85 -6.01,-3.5 -6.96,-6.5 0.3,-2.1 3.03,-1.62 3.78,-0.16 3.5,2.46 7.48,4.47 10.66,7.31 -0.21,3.96 4.69,5.62 7.5,7.39 1.67,0.53 3.72,-1.14 5.59,-0.11 2.75,0.87 6.81,1.33 7.03,4.97 0.46,3.2 4.49,4.9 6.69,2.27 1.24,-1.5 4.61,-2.56 5.4,-0.7 4.17,1.33 6.15,-3.91 8.97,-5.72 3.32,-0.45 7.13,0.12 10.19,-0.66 1,-2.57 4.28,-2.37 6.22,-1.28 0.84,2.31 0.58,2.71 2.56,1.13 2.97,-0.39 2.03,-4.58 0.76,-6.39 -1.17,-2.02 -2,-5.8 -0.79,-7.3 3.32,-0.17 0.06,-2.21 -0,-3.93 -0.63,-3.04 -0.86,-6.31 0,-9.32 -2.23,-0.74 -2.32,-4.76 0.44,-4.66 -0.41,-2.68 2.08,-4.21 1.66,-6.88 -0.15,-2.82 0.59,-6.09 -1.94,-7.94 -2.26,-5.15 -1.96,-11.11 -3.49,-16.32 -1.93,-2.69 -4.53,-5.55 -4.67,-9 0.46,-2.92 3.93,-5.48 2.72,-8.47 0.1,-0.35 4.87,-3.47 6.42,-2.05 2,3.2 4.93,-0.95 6.82,-2.36 0.33,-1.38 1,-2.91 3.14,-2.96 3.03,1.76 2.98,-2.24 2.69,-4.25 -0.32,-3.5 -1.14,-6.78 -3.64,-9.37 -0.98,-1.42 0.15,-4.75 1.23,-5.16 3.02,1.48 6.11,1.47 9.25,0.41 2.37,-0.94 3.55,1.55 1.82,3.19 0.08,1.06 5.19,-1.87 2.3,-2.88 -0.25,-2.1 -0.85,-4.44 -3.47,-3.91 -1,-3.13 0.42,-4.65 1.54,-7.33 0.09,-4.38 1.32,-9.19 -0.13,-13.38 -2.03,-1.38 -1.82,-4.46 -4.4,-5.39 -2.47,-2.1 -5.26,-3.59 -8.29,-4.72 -0.45,-2.63 0.5,-4.11 -0.61,-6.97 -0.35,-3.23 -2.39,-5.85 -5.43,-6.81 -1.8,-1.05 -4.02,-2.25 -3.05,-4.75 -0.53,-2.57 0.99,-5.27 0.62,-7.5 -1.67,-2.84 -3.08,-6.33 -1.5,-9.56 2.72,0.17 4.05,-1.19 2,-3.69 -1.12,-2.08 -1.1,-4.65 -2.84,-6.37 -0.05,-1.52 1.05,-2.79 -0.28,-4.24 -1.33,-3.13 -3.46,0.38 -1.36,0.89 -1.36,2.26 -3.18,4.9 -6.23,4.2 -1.84,0.68 -5.99,-0.78 -4,-3.06 0.32,-2.43 0.8,-5.95 -0.91,-7.66 -1.91,-0.49 -2.69,-3.58 -3.13,-5.51 -1.12,-3.07 -1.07,-6.84 -4.03,-8.84 -3.37,0.71 -6.2,2.77 -9.34,3.81 -2.15,-0.26 -3.2,-3.12 -1.25,-4.19 -0.15,-1.71 1.98,-8.34 -1.11,-4.8 -1.56,1.02 -3.09,4.67 -5.17,2.44 -1.38,-0.64 -3.13,-1.84 -2.32,-3.58 -0.34,-0.5 -0.91,-0.09 -1.41,-0.13z m-57.69,212.03c0.26,4.67 5.28,-0.76 0,0z\",\"name\":\"Baden-WÃ¼rttemberg\"}}});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.russia.js",
    "content": "/** Add Russia Map Data Points */\njQuery.fn.vectorMap('addMap','russia_en',{\"width\":959,\"height\":593,\"pathes\":{\"da\":{\"path\":\"m34.939,403.74,2.6516,1.2627,3.6618,0.50507,1.7678-2.0203,2.1466,2.0203,2.3991-1.6415,0.25254-1.7678,1.6415-2.1466,3.0305,0.50508,3.7881-2.9042-0.50508-1.894-4.7982-0.50508,0.75762-3.1567-1.0102-0.63134,0.63135-2.2728-3.1567-2.7779,1.5152-0.50508,3.9143,0.88388,0-1.389-1.0102-1.2627,8.3338-0.25254,4.9245,5.4296,1.2627,1.894-0.37881,2.2728-5.3033-0.3788,0.50508,2.5254,1.5152,3.0304-1.0102,3.5355-2.3991,2.7779-1.2627,0.25254,4.5457,0.75761-5.5558,2.1466-0.50508,2.0203-0.75762,0.50508-3.0305,0.50507-0.25254,4.7982-1.2627,0.88388-1.1364,13.132-9.0914-0.12627-3.6618-2.2728-1.389-0.88388,0-11.617-3.283-5.9346,0.37881-2.9042,1.2627-0.37881z\",\"name\":\"Republic of Dagestan\"},\"sa\":{\"path\":\"M671.25,126.75l-1.44,1.06-1.25,1.63s1.44,0.87,2.16,0.87c0.71,0,2.69-1.97,2.69-1.97l-2.16-1.59zm18.47,12.09c-0.18-0.01-0.4,0.02-0.63,0.07-1.78,0.35-4.81,1.93-4.81,1.93s-1.41,1.1-2.12,1.1c-0.72,0-2.35-0.38-2.35-0.38-0.71,0-2.5,1.25-2.5,1.25l-1.4,1.78s-1.1-0.51-1.1,0.38-0.35,1.96,0.72,2.5c1.07,0.53,1.61,1.06,2.5,1.06s3.22-0.72,3.22-0.72l1.97-0.87,1.97,1.06s0.51-0.9,1.4-1.44c0.9-0.53,3.4-2.31,3.75-3.03,0.36-0.71,0.72-3.22,0.72-3.22s-0.11-1.36-1.34-1.47zm-19.81,7.1c-0.15,0.01-0.29,0.05-0.44,0.09-1.25,0.36-2.85,0.19-3.56,0.19-0.72,0-0.91,0.19-0.91,0.19s-0.88,1.58-1.59,1.93c-0.72,0.36-1.99,0.74-3.07,0.57-1.07-0.18-3.75-1.25-3.75-1.25s-1.93-0.02-1.93,1.59,3.03,3.41,3.03,3.41l1.06,1.4s-2.51,0.73-3.41,0.38c-0.89-0.36-2.65-2.16-2.65-2.16l-3.22-0.72s-2.88,0.2-2.88,1.1c0,0.89-0.68,2.67-0.68,3.56s-0.9,3.04,0.53,3.94c1.43,0.89,1.79,3.03,1.97,3.75,0.17,0.71,0.7,1.77,2.84,2.31,2.14,0.53,4.29,0.53,5,1.06,0.71,0.54,1.77,1.07,2.84,0.53,1.08-0.53,1.82-2.65,1.82-2.65l2.12-1.97s1.61-1.44,2.5-2.16c0.89-0.71,2.7-0.54,4.13-1.44,1.42-0.89,2.31-3.75,2.31-3.75v-5l-0.38-4.43s-0.68-0.58-1.68-0.47zm106.25,5.62c-0.45,0.09-0.75,4.1-0.75,4.1l-7.32,1.65-3.28,0.63-4.53-6.06-7.84-0.13-0.38,0.87-5.68,1.66-1.76,2.13-6.06,6.31v2.78l-2.15,1.91-3.29,5.03-4.93-2.38-3.41-0.37-1.75,2h-4.56l-3.41,1.78-1.75-1.53,4.28-2.91-2.28-1.62-3.03-0.13-8.84,4.03,1.9,5.44-0.87,4.78-2.66,2.91-1.65-2.13,3.03-7.47-1.75-0.37-2.66,4.03-3.03,2.03-1-0.75,1-3.16,2.28-0.74,2.91-2.66-7.1,1.75-9.22,5.31-6.68,0.25,3.65,3.66-3.65,3.4-0.5,3.03,0.37,1.16,3.91-1.78-1,4.03,4.81,2.91-0.91,2.9-2-1.37-3.68,1,1.28,3.41,2.4-0.26-1.03,2.66-3.9-0.5-4.28-1.66-3.53,0.26-2.41,3.15-0.63,4.06h-6.46l-1.76-1.53-2.4-2-0.5,4.41,0.87,0.87-0.12,1.41,1.65,0.87-0.9,2.54,1.66,6.18-3.29-1.4-1,1.15-9.87-5.31v-4.94l-2.25,0.13-1.78,2.41-2-3.41,3.65-0.63-0.5-2.9-4.43-1.66,0.75-0.87,0.12-2.53-5.28-4.04-5.31-2.53-1,3.66-7.35,0.65-2.37-1.65-4.19,2.15v2.13l4.19,4.69-10.94,5.31-10.28-1.16,0.44-4.4-12.07,0.19-3.96,3.78h-2.85l-1.09,1.09,2.66,2.87h-2.13l-2.91-2.06,1.19-2.09-0.87-1.38-1.54-1.78,0.07,2.28-1.5,1.07-3.85-1.32s-2.9,3.53-2.84,3.78c0.06,0.26,2.66,3.29,2.66,3.29l-1.41,3.34,1.59,2.09,0.19,2.78,7.38,5.82-0.32,5.47,2.53,1.9,1.63,2.53-2.53,2.72-4.41,3.03-0.69,2.63-4.81,2.78,0.25,6.12-2.25,1.1-2.97-1.28-5.65,4.75-4.44,0.09,0.06,1.97,5.38,6.59,1.78,20.1-6.35,1.97,4.19,3.4-1.78,4.19v1.25l7.16,8.84-4.57,6.69,0.97,1.6-2.4,1.87,0.09,2.25,5.63,0.34,0.71,0.72,9.1,0.19,3.31,3.31-0.53,1.6-3.31,0.34,0.19,3.94,4.03-1.06,5.06,6.59-0.53,5.53,3.84,5.19-1.97,3.4,0.53,2.13,7.69,6.53v4.37l-3.75,6.44,0.28,10.78,3.85,4.13,3.37-3.94,3.75,0.09,1.88-1.34,2.68-0.62,2.41-2.07,3.56,3.85,0.38,2.31,4-5.06,0.09-4.13,5.38-2.75-0.29-6.25,2.32-4.12,3.84-1.5,4.91,1.06,6.15,4.91,0.57,3.84,1.31,0.87,4.03-1.4,2.5-2.06,2.69,1.06,0.87,4.47,3.13,4.56,2.15,1.78v3.03l2.32,1.35,0.71,4.71,3.94,0.19,0.97,1.35,1.53,4.09,8.38-0.25,3.31-1.97,5.53,1.16,3.56,1.97,11-0.72,5.54,3.75,2.21,0.53,5.19-2.6h2.6l3.03,2.26,2.78-0.19,3.22-3.94,5.68-0.06,2.5-1.97h7.88l0.19-3.75,10.68-5.09,0.82-3.04-4.28-4.12,2.31-1.69,0.62-4.03-1.34-1.69-2.41,0.38-2.03-1.44,2.75-4.03-2.84-1.6,0.25-1.87,1.53-1.97-1.44-1.44-3.47-1.15-0.53-1.6,3.38-1.43-1.88-0.91-0.19-5.25-0.87-0.62-0.19-1.88,2.78-1.25-1.62-1.25v-2.94l5.47-1.97,3.12,0.16,0.25-1.78,6.53,0.09v-2.75l-1.25-1.53,1.16-1.25,3.47-0.62,3.31-2.22,1.34-6,5-0.44,0.1-2.06s-5.29-4.9-5.47-5.25c-0.18-0.36-0.88-3.94-0.88-3.94l-3.56-2.59v-5.97l2.94-7.16-1.69-9.19,0.78-3.12,13.5,0.72,0.25-5.28,5.19-1.16,3.47,1.87,0.81-2.31-2.41-3.69,1.69-0.62,0.19-2.75-7.16-8.5,0.1-4.37-3.13-1.5-0.09-4.04-1.78-1.15,1.09-2.13,3.81-0.47,1.35-1.78,4.28,0.38,0.09-2.44-3.37-1.5,0.15-3.31,5.47-0.53v-3.57l5.63,0.44,5.62-8.03,0.44-2.5-6.06-6.06-0.19-1.88,2.31-3.4-0.97-1.79-3.31,0.19-1.5-2.34,4.72-1.41-0.09-1.53-2.07-0.97-0.25-1.34,2.13-3.75,5.72-1.97-0.78-3.56,5.15,0.68-0.62-5.43,1.34,0.28,0.19-3.59-2.69-0.63-2.94-4.53-7.59-0.28-4.19-1.88,0.72-3.47h-3.12l-0.19-1.62,8.12-10.44,1.07-7.84s-9.81-5.72-10.25-5.63zm-135.1,8.56c-0.12,0.03-0.23,0.08-0.34,0.19-0.89,0.9-1.07,1.79-0.53,2.5,0.53,0.72,1.06,1.63,1.78,2.35,0.71,0.71,2.31,1.25,2.31,1.25s0.71-1.1,0.53-1.82c-0.18-0.71-1.97-2.84-1.97-2.84s-0.94-1.78-1.78-1.63zm28.94,7.35l-2.31,0.34s-1.07,0.91-1.25,1.63c-0.18,0.71-0.9,1.24,0,1.78,0.89,0.53,3.75,1.25,3.75,1.25s1.6-0.02,1.78,0.87c0.18,0.9,0.18,1.8,0,2.69s-0.53,1.78-0.53,1.78l0.72,0.72,1.93-0.53s0.74-0.72,1.82-0.72h2.65s1.44-0.53,1.97-1.25c0.54-0.71,1.97-1.25,1.97-1.25h2.69s1.41-0.52,0.87-1.59c-0.53-1.07-1.76-1.62-2.65-2.16-0.9-0.53-3.22-2.31-3.22-2.31h-2.5l-3.6,0.34-2.84,0.38-1.25-1.97zm-17,10.15c-0.12,0-0.22,0.01-0.31,0.04-0.72,0.17-1.44,1.4-1.44,1.4s0.37,1.78,2.16,1.78c1.78,0,2.3,0.55,2.65-0.34,0.36-0.89-0.87-2.31-0.87-2.31s-1.37-0.55-2.19-0.57z\",\"name\":\"Sakha Republic\"},\"so\":{\"path\":\"m45.583,387.43-2.2728,2.6516-4.1669-2.6516-2.0203,1.1364-0.37881,5.8084-1.1364,1.389-2.2728-0.12627-5.9346-2.6516-3.0305-3.283,0.12627-4.9245,4.672,0.75761,0.37881-0.88388,2.5254-0.12627,3.283,1.5152,4.0406-1.894s-0.12627-3.5355,0.75761-2.7779c0.88388,0.75762,1.389,1.2627,1.389,1.2627l0.25254,3.5355z\",\"name\":\"Republic of North Ossetia–Alania\"},\"kb\":{\"path\":\"m20.982,375.86c0.26786,0.35715,2.5893,4.7322,2.5893,4.7322l0.98214,3.9286,4.6429,1.1607,2.8571-1.0714,3.2143,1.5179,4.375-1.875,0.26786-3.125-5.9821-2.3214-1.875-5.0893-2.2321-1.1607-4.375,0.71429z\",\"name\":\"Kabardino-Balkar Republic\"},\"kc\":{\"path\":\"m13.482,361.39,2.2321,8.4821,5.0893,6.25,4.375-2.6786,5.3571-0.89286,0.08929-3.3928,3.75-1.0714-6.6964-7.2321-2.2321,2.4107-2.8571,0.26786-1.6071-4.5536,0.44643-2.1429z\",\"name\":\"Karachay–Cherkess Republic\"},\"st\":{\"path\":\"m33.929,367.73-3.4821,0.98215,0.17857,3.75,1.5179,1.25,1.7857,4.6428,6.5179,3.0357,1.3393,1.3393,0.08929,3.0357,3.8393,1.7857,1.6071,2.5893,3.2143,0.625,0.71429-1.4286-2.8571-3.125,1.5179-0.53572,3.5714,0.80357,0.17857-1.1607-0.98214-1.3393,7.7679-0.0893,1.6964-1.5179,0.26786-3.5714-5.2679-7.5-0.17857-9.4643-3.4821-6.0714-4.9107-0.98214-1.5179-2.7679-5.0893-5.7143-0.98214-0.625-1.5179,1.3393-2.7679-2.0536-1.4286,0.80357-0.80357,1.0714-0.08929,1.6071,0.35714,1.3393,0.35714,1.1607-0.71429,1.6071-0.98214,1.4286-1.9643,2.2322-1.875,1.0714-0.71428,0.98214-0.98214,2.3214z\",\"name\":\"Stavropol Krai\"},\"ks\":{\"path\":\"m21.607,356.48-0.08929,2.0536,0.98214,3.8393,0.35714,0.80357,2.2321,0.0893,3.75-4.5536,1.4286-1.9643,1.9643-1.0714,2.6786-4.0178-0.26786-3.3929,0.17857-1.6964,0.89286-1.5179,1.3393,0,1.7857,1.5179,1.3393,0,2.5893-3.0357,0.08929-1.9643-0.89286-0.98214-2.2321-1.3393,0.17857-2.9464,2.8571-3.125,0.08929-1.4286-2.7679-2.9464-3.75-0.71428-0.80357-0.89286,1.6071-1.25,0.17857-2.4107-2.1429-1.6072-2.5893-0.80357-1.6071-1.6964-1.25-0.98214-0.89286-0.0893-1.3393,2.2322-0.625,0.98214,1.0714,1.4286-0.35714,1.5179-0.80357,0.625-2.7679-0.26786-0.89286-0.89286-1.9643,0.0893-1.875,0.71429-3.0357,1.7857-1.6964,0-1.3393-1.4286-1.6071-0.625-1.1607-1.4286,0-2.6786-2.2321-0.26786-1.25,0.625-0.35714,2.9464-0.089286,13.214,0.71429,5.8929,0.98214,3.6607-0.089286,2.3214-0.625,2.7679-0.089286,2.4107,0.17857,2.0536,1.5179,0.89285,0.71429,0.625,1.6071,1.5179,0.89286,1.0714,0.89286,0.89286l7.947-4.27-0.804-1.25-0.357-1.43-5.089,2.68h-1.875l-1.25-1.875,0.35714-3.5714,6.25-1.4286,2.7679-2.3214,0.71429-2.5893-1.3393-0.80357-1.9643,0.44642-1.1607-1.5178-0.71429-2.6786-1.3393-1.7857-0.17857-1.25,0.08929-1.1607,1.3393-0.80357,1.3393,0.625,1.0714,1.3393,1.0714,1.9643,1.3393,1.7857,2.3214,1.3393,1.6964,0.89285s0.625,0.26786,0.71429,0.625c0.08929,0.35715,0.89286,2.6786,0.89286,2.6786v4.0178l-0.08929,1.3393-1.0714,1.0714-1.875,1.5178-1.6071,1.4286z\",\"name\":\"Krasnodar Krai\"},\"ro\":{\"path\":\"m37.5,323.45,2.0536,0.98214,1.4286-0.17857,0.625-0.89286-0.44643-1.1607-1.25-0.89286-1.9643-1.3393-0.89286-1.1607-0.35714-0.71428,1.0714-1.4286l2.231-1.08,1.6071-0.26786,1.0714,0.35714,1.4286,1.3393,1.5179,0.35714,1.6964-0.89286,0.89286,0.44643,1.072,1.06,1.339,1.79,0.268,1.33,1.607-0.08,1.3393-0.80358,1.6964-0.0893,1.3393-0.0893,0.35714-1.5178,0.53571-1.4286,1.25-1.6071,1.3393-1.0714,1.6964,1.0714,0.71429,0.35714,0.89286-1.875,0.44643-0.71428,2.6786-0.26786,1.875-1.6964,2.3214-0.17857,2.0536,1.1607,2.1429,1.25,0.98214,0.53571,3.9286,0.0893h2.2321l1.5179-0.98215h1.3393l0.71429,0.625,0.26786,1.6964-0.08929,1.9643v1.875l-0.08929,1.0714-0.981,1.34-1.25,0.98214-1.25,0.71429-0.80357,0.35714-0.35714,1.25-0.44643,1.6072-0.08929,1.4286-0.44643,1.1607-0.625,1.4286-1.4286,1.5179-1.6964,0.53571h-3.125l-1.608-0.36-1.518,0.53-0.625,1.97-0.982,0.62-0.80357,0.53572,0.17857,0.89285,1.3393,1.4286,0.71429,1.4286-1.1607,1.4286-1.3393,0.89285-0.80357,1.7857-0.08929,0.80357,0.98214,0.53571,1.1607,1.1607,0.625,1.0714,0.80357,0.80357,0.71429,1.3393v1.0714l-0.71429,0.80357,0.53572,0.625,1.4286,0.35715,0.625-0.53572,0.71429-0.0893,0.35714,0.98214v1.4286l-1.3393,1.3393-2.1429,1.0714-2.0536,1.1607-3.3929,0.0893-0.80357,0.80357-1.3393,0.80357-1.696,0.46-1.429-0.71-1.696-0.71-0.893-0.9-0.178-2.23-0.179-1.52-1.696-2.14-1.1607-0.80357-0.17857-1.25-0.80357-0.89286-1.7857-0.0893h-2.7679l-2.8571-0.0893-1.3393-0.17857-1.6071-1.7857-0.98214-0.71429v-0.89286l1.3393-1.5178v-1.5179l-0.625-1.25-1.875-1.4286-0.71429-0.625,0.26786-2.2322,2.7679-3.2143,0.08928-1.6071-1.9643-2.2322-1.3393-0.89285-2.411-0.55-1.0714-0.35714-0.08929-0.71429,1.0714-1.0714,0.26786-1.1607z\",\"name\":\"Rostov Oblast\"},\"kk\":{\"path\":\"m44.554,348.71,0.98214,1.6071,1.1607,1.0714,1.1607,1.6964,0.80357,1.1607,1.1607,0.71429,2.5893,0.44643,1.3393,0.625,0.98214,1.6071s0.98214,1.7857,1.25,2.2321c0.26786,0.44643,0.98214,2.4107,0.98214,2.4107l0.17857,4.9107v3.2143l0.89286,2.2321,3.3036,4.1964,1.25,2.0536-0.17857,2.5893-1.4286,1.875,0.89286,1.3393,4.375,4.7321,0.53571,1.25,0.35714,0.98215,0.89286,0.53571,1.4286,0.0893,1.6071-0.26786,1.7857-0.53572,2.2321-0.89285,2.3214-0.26786,0.713-0.71,0.625-2.15-0.268-1.16-2.232-1.34-0.982-0.71,0.08928-1.3393,1.0714-0.625,1.7857,0.0893,1.4286-1.25-0.53572-0.71428-0.71428-2.0536-0.268-1.7-0.179-1.16h1.0714l1.6964,1.25,1.7857,0.80357,2.6786-0.17857h0.89286l0.53571-1.1607-0.17857-2.4107-0.08929-3.8393v-6.3393-0.98214l-0.08929-2.2321,2.9464-2.8572,0.17857-1.3393-1.4286-0.625v-3.2143l-1.0714-1.1607-1.1607-0.35715-2.5-0.17857-0.625-1.4286-0.17857-0.80357-1.25,0.26786-0.625,1.0714h-1.3393l-1.25-0.0893-1.071-0.98-0.804-0.71-2.321-0.27-0.98214,0.35715-0.71429,0.80357-0.71429,0.35714-0.26786,1.1607-0.35714,0.80357,0.35714,0.625,1.0714,0.35714,1.0714-0.44643,0.89286,0.35714,0.08929,0.98215-0.44643,1.5178-5,3.125-3.3929,0.26786-2.3214,1.3393-1.5179,0.53571-3.8393-1.7857-0.53571-0.35715-0.08929-3.3928-0.71429-1.4286-2.3214-2.2322-0.625-1.25-1.9643-0.80357h-3.5714z\",\"name\":\"Republic of Kalmykia\"},\"as\":{\"path\":\"m86.873,350.94,1.6415-1.389,1.1364-0.63135,1.7678,1.2627,2.0203,0.63135,2.2728,0.50508,0.88388,1.0102,2.1466,0.88388,0.75761,1.1364,0.63134,1.1364,0,1.389,0,0.88389-1.5152,0.3788-1.1364,1.389-0.12627,1.0102,0.63134,1.389,1.0102,1.1364-0.37881,2.1466-0.75762,1.0102-1.7678,0.88389-0.25254,1.1364,0.50508,0.88388,1.7678,1.1364,2.2728,1.5152,1.389,1.6415,0.63134,1.0102,0,1.5152-1.0102,1.1364-0.25254,2.0203-1.0102,1.0102,0,2.2728,0,2.7779-0.75761,0.3788-1.7678-0.3788-1.894-0.75762-0.63134,0.37881-0.37881,2.1466,1.6415,2.1466,1.1364,1.2627,0.88388,1.0102,0.50508,0.63134,0.12627,1.2627-3.9143,0.25253-3.0305,0.63135-2.1466,0-1.894-1.2627-2.0203-1.5152-5.4296,0-1.0102-0.37881-1.1364-1.1364,0.37881-2.9042-0.88388-1.0102-2.2728-1.6415,0-1.6415,1.0102-0.3788,1.5152,0,1.389-1.0102-0.63134-1.389-0.75761-4.0406,0.63134-0.3788,1.2627,0.75761,2.9042,1.389,2.0203-0.25254,1.2627-0.12627,0.50508-1.6415-0.25254-5.4296,0.12627-5.0508-0.25254-4.2931,2.1466-2.2728,1.0102-1.1364,0.12627-1.389-1.2627-0.50508-0.25254-2.1466z\",\"name\":\"Astrakhan Oblast\"},\"ad\":{\"path\":\"m21.786,356.21,2.4107-1.4286,2.5-2.6786,0.35714-2.1428-0.26786-3.9286-1.0714-2.7679-2.9464-0.98214l-2.412-1.78-2.232-3.75-1.5179-1.1607-1.3393,0.71428-0.17857,2.1429,1.6071,1.875,0.80357,2.5893,1.1607,1.6964,1.6071-0.35714,1.5179,0.44643-0.44643,2.9464-2.9464,2.3214-3.394,0.71-2.8571,0.35715-0.17857,3.8393,1.0714,1.7857h1.7857l5.3571-2.9464,0.35714,1.7857z\",\"name\":\"Republic of Adygea\"},\"vl\":{\"path\":\"m85.893,313.18,1.5179-0.98214,1.875-0.0893,1.1607-1.0714,1.1607-1.6072,0-1.25,1.1607-0.98214,1.9643,1.25,2.5,1.9643,3.3036,2.1428,3.9286,1.5179,1.4286,1.5179,0.625,2.1428,0.44643,1.4286,2.8571,0.35714,0.44643,1.4286,2.5893,0.80357,1.7857,1.7857,1.6964,1.6964,0.17857,2.2322-1.5179,1.25-1.6071,2.2321-1.4286,1.3393-0.26786,1.25,0.89286,2.2321,2.9464,1.875,1.6964,1.875,1.7857,1.1607,1.25,3.3036,1.0714,1.875,0.0893,1.25-0.71428,0.53572-1.3393,0.44643-0.71429,0.53571-2.8571,0.26786-4.6429-0.0893-1.6964,0.26786-0.71429,1.6071,0,2.8572-0.17857,1.1607-1.6964,1.25-1.3393,0.98214-4.0178-0.0893-1.0714-0.0893-1.3393-3.0357-1.4286-1.0714-1.875-1.0714-1.0714-0.625l-2.256-0.46-2.054-1.25-1.071-0.18-1.1607,0.625-0.98214,0.71429-1.25,0.26785-2.1429-0.0893-0.89286-1.1607-0.35714-1.25-1.4286,0.26786-0.89286,1.1607h-1.25l-1.875-0.71428-1.25-0.80357-1.3393-0.35715-1.4286,0.17858-1.4286,1.25h-0.89286l-1.4286-2.5-1.25-1.4286-1.0714-0.71428,0.448-1.44,0.893-1.52,1.607-1.43,0.179-0.89-1.6964-2.1429-0.44643-1.0714,1.4286-0.80358,0.625-1.875,0.625-0.53571,1.25-0.35714,1.6071,0.0893h3.0357l1.7857-0.625,1.9643-2.5893,0.89286-4.0179,0.625-1.4286,2.8571-2.0536,1.1607-1.6964,0.35714-3.3036v-2.2322z\",\"name\":\"Volgograd Oblast\"},\"vn\":{\"path\":\"m70.089,310.77,0-6.0714,0.08929-1.1607,3.75-3.2143,2.5-3.6607,1.3393-1.4286,0.35714-1.875,2.4107-0.71428,0.35714-2.5893,0.625-1.7857,1.0714-0.35714,0.625-2.0536,1.3393-1.7857,1.1607-1.0714,0.98214-0.53571,0.89286,1.1607,0.44643,0,0.71429-1.0714,0.53571-0.71428,1.1607-0.17857,0.89286,0.89285,1.25,1.1607,1.4286,1.4286,1.1607,1.5179,0.80357,0.89285-0.26786,2.1429,0,1.6071,1.875,1.0714,2.3214,1.3393,0.80357,1.3393-0.0893,1.7857-0.89285,1.5178-0.44643,0.98215,1.5179,1.25,1.875,1.7857,1.9643,2.2321,1.3393,1.6964,1.1607,1.9643-0.26786,2.3214,0,2.0536-2.1429,1.0714-0.71428,0.17857-4.2857-1.875-2.6786-1.7857-2.1429-1.4286-1.6964-1.1607-0.53571-0.17857-0.71429,0.80357-0.44643,1.25-1.4286,1.9643-1.6964,0.44643-2.8571,0.80357-3.5714,1.1607-3.2143,0.0893-2.5-0.17857-2.3214-1.25-2.3214-1.0714z\",\"name\":\"Voronezh Oblast\"},\"bl\":{\"path\":\"m63.304,272.29-5.4464,3.3036,0.08928,2.6786,1.6964,1.875,0.08929,3.125,0.44643,1.6964,2.8571,1.6071,2.8571,0.44643l1.608,2.23-2.5,3.3036-0.35714,2.1429,1.0714,1.6071,2.3214,1.5179,0.17857,2.9464,1.1607,1.5179,0.71428,0.89285,4.7321-4.375,3.75-5.4464,2.0536-0.89285,0.80357-4.1072,1.0714-0.89285,0.53571-1.3393-2.5-2.8571-3.5714-4.1071-2.7679-0.26786-2.9464-1.1607-2.6786-1.6964-2.5893-1.6072-1.9643-1.6071z\",\"name\":\"Belgorod Oblast\"},\"ky\":{\"path\":\"m63.482,271.84,0-4.6429l-0.357-1.61-1.786-1.97-0.714-1.07,1.3393-1.0714,3.75-1.3393,2.7679-1.3393,2.6786,0.0893,0.53571,1.0714,1.25-0.0893,1.7857-1.1607h0.80357l0.98214,0.44643,1.4286,1.6071,0.53571,0.80357,0.08929,1.6964,1.0714,0.89286,1.0714,0.71428h0.89286l1.0714,1.25,0.17857,3.2143v2.4107l-0.89286,0.98214v1.5179,1.1607l1.0714,1.25,1.1607,0.98214,0.89286,0.17857,1.5179,0.53571,1.0714,1.6072,1.6071,1.5178-0.71429,1.1607-0.80357,0.89286-0.89286-0.80358-1.9643,1.25-1.4286,1.1607-0.53571,0.80357-3.4821-4.1071-2.2321-2.3214-0.98214-0.53572-3.3036-0.625-2.8571-1.5178-3.6607-2.1429-2.4107-1.9643z\",\"name\":\"Kursk Oblast\"},\"or\":{\"path\":\"m74.732,258.27,1.0714-1.875,2.2321-0.26786,0.89286-1.6071,0.89286-0.53572,1.9643,0.89286,1.6964-0.0893,1.6071-0.71429,1.0714-1.5179,0.89286-0.53571,0.98214,0.17857,1.3393,0.98214,1.9643,0.89286,1.1607,0.89286,0.35714,0.89285,0.71429,1.3393,0.17857,2.0536,0,3.6607,0.98214,1.7857,1.4286,1.875,0.80357,1.25,0.71429,1.7857-0.26786,1.5179-3.9286,1.875-1.9643,0.98214-1.0714,2.1429-1.875,1.0714-1.875,1.0714-2.4107-0.89286-1.9643-1.6071-0.44643-1.6964,0.44643-1.9643,0.44643-0.89285,0.08928-4.4643-0.89286-1.6964-1.7857-0.53571-1.7857-1.4286-0.08929-1.6072-1.3393-1.5178-1.6071-1.6964z\",\"name\":\"Oryol Oblast\"},\"lp\":{\"path\":\"m86.875,278.45,1.5179,1.875,1.0714,0.89286,1.1607,0.71428,1.1607,1.0714,2.5,2.2321,1.25,1.5179,0.625,1.4286-0.44643,2.5893,0.53572,0.625,2.5,1.3393,1.875,1.7857,1.0714-0.17857,1.0714-0.625,0.44643-0.80357,0.0893-5.8036,0.35714-0.71428,1.4286-0.80357,2.3214-0.17857,2.0536-1.1607,1.3393-0.44643,0.17857-1.6964,0.625-1.3393,1.25-1.5179-0.80357-1.1607-2.6786-0.98215-0.53571-0.53571-0.17858-0.71429,1.0714-1.3393,0-1.6071-2.1428-0.35715-1.0714,0.44643-1.6072,0.80357-0.98214,0.89286-1.1607,0.625-1.4286,0.0893-1.3393-1.5179-1.6964-1.6964-0.80357-0.98214-2.4107,0.89285-3.125,1.6964-1.1607,1.6072-1.6071,1.4286z\",\"name\":\"Lipetsk Oblast\"},\"tl\":{\"path\":\"m93.482,256.3,3.2143-2.0536,0.98214-0.17857,1.6071,0.80357,0.98215-0.80357,0.71428-1.0714,3.125,0,1.6072,0.625,2.0536,0.35714,1.4286,0.80358,2.4107,0.35714,1.4286,0.71428,0.53572,1.0714,0.98214,1.0714,1.25,1.4286,0.71429,1.6072-0.35715,1.6964-0.98214,1.1607-0.71428,1.6964-1.3393,1.9643-1.6964,2.0536-1.0714,1.875-0.71428,0.98215-0.53572,0.35714-1.7857,0-2.5,0.89286-1.5179,1.0714-1.3393,0.26785-2.0536-1.3393-2.0536-2.5893-0.26786-2.0536-0.53571-1.4286-1.6071-2.5l-1.413-2.14-0.179-2.23z\",\"name\":\"Tula Oblast\"},\"bn\":{\"path\":\"m67.679,258.62,0.26786-1.7857,2.3214-1.5179,0.44643-1.1607,0-1.4286-1.6071-1.9643-1.7857-2.1429-1.6964-1.9643-2.3214-1.875-1.5179-0.89286-1.6964-0.26786-0.89286-1.1607,0.17857-2.3214,1.3393-1.6071,3.125-2.1429,2.6786-1.875,0.89286-1.7857,0.98214-0.71428,1.6964,0.26786,0.625,1.25,0.625,1.5178,1.0714,2.2322,1.1607,0.80357,5.8929,0.26785,2.1429-0.35714,1.4286,0.53572,3.125,0.89285,2.3214,0,0.71429,1.9643,0,2.2321-0.17857,1.1607-0.98214,1.5178-0.71429,0.53572-0.26786,1.4286,0.26786,1.5179,0,1.25-0.80357,1.4286-1.4286,1.5178-1.7857,0.71429-1.6964,0.17857-1.7857-0.71428-1.4286,0.71428-0.26786,0.89286-2.4107,0.80357-1.0714,1.4286-1.3393,1.25-1.4286,0.17857-1.4286-0.71428z\",\"name\":\"Bryansk Oblast\"},\"kj\":{\"path\":\"m89.196,239.61,1.6071-1.25,1.6071-1.3393l1.161-0.27,1.429,0.63,0.80357,1.4286,1.0714,1.25,1.7857,0.80357,1.7857,0.35715,3.125,0.0893,1.875-0.0893,1.6071-1.0714,2.4107-0.0893,1.4286,0.44643,0.98214,2.0536,0.26786,1.4286,1.25,0.625,1.6071,0.98215,0.98214,0.80357,0.53572,1.25-0.53572,2.0536-1.0714,1.7857-1.4286,1.9643-1.1607,1.25-0.89286,0.44643-3.75-1.25-2.6786-1.0714-2.6786,0.0893-1.875,0.44642-1.0714,1.25-1.5179-0.44642-1.0714,0.0893-1.0714,0.80357-2.0536,1.0714-0.89286-0.89286-1.0714-0.80357-1.9643-1.25-1.5179-0.89285-0.89286-0.44643v-1.0714-2.4107l-0.08929-0.625,1.1607-1.6964,1.0714-1.875v-1.7857l-0.26786-1.6071z\",\"name\":\"Kaluga Oblast\"},\"sm\":{\"path\":\"M79.375,237.55,80,235.95,80.179,234.52,79.732,233l-0.08928-1.4286,1.5179-1.3393,0.71429-1.6071,0.08929-3.125,0.35714-1.875,2.4107-2.5,2.5-1.9643,1.875-1.7857s1.875-1.3393,2.2321-1.5179c0.35714-0.17857,2.5-1.5178,2.5-1.5178l2.5,0.0893,3.0357,3.4822,1.875,3.4821,2.5,3.6607,1.4286,0.89286,2.7679,0.53571h2.0536l0.80357,0.71429,1.1607,1.875,1.1607,1.3393,1.25,1.6071,1.0714,1.4286,0.17857,1.3393-0.98214,1.25-1.875,0.89285-1.875,0.53572-0.89286,1.25-0.44643,0.89285-1.875,0.44643-1.7857,0.625-1.6072,0.35715h-3.0357l-3.75-0.80358-1.7857-1.7857-1.4286-1.3393-1.1607-0.26785-1.1607,0.71428-2.2321,1.5179-1.1607,0.44643-1.7857-0.44643-4.1071-0.98214-2.4107-0.35715z\",\"name\":\"Smolensk Oblast\"},\"mc\":{\"path\":\"m116.07,234.16,3.5714,0.26785,2.3214-0.89285,1.4286-0.44643,0.53571,0.625,0.0893,1.7857,0,1.1607-0.17857,1.3393,1.5178,0.89286,2.9464,0.44643,1.7857,0.89285,2.0536,0.89286,2.7678,0.89286,1.7857,0.26786,1.25,0.53571,0.26786,1.6071-0.0893,1.5179-0.44643,1.6964-1.5179,0.625-2.1428,1.1607-1.6072,1.3393-0.0893,1.25-0.625,1.7857-1.1607,1.5179-0.35714,1.6071,0.17857,1.6072,0.0893,0.89285,1.1607,1.0714,1.0714,0.625,1.1607-1.0714,0.625,0.44643,0,1.5179-0.0893,3.2143-0.44643,1.1607-1.3393-0.44643-1.875-0.17857-1.6072,0.17857-0.80357,0.89286-2.0536,0.0893-1.6071-0.35714-1.25-0.71429-1.0714-1.1607-1.6071-0.625-1.6964,0-0.44643,0.80357-0.17857,1.1607-1.0714,0.53571-1.4286,0.0893-0.80357-0.80358-0.17858-0.625,1.1607-2.4107,0.26786-1.9643-0.53572-1.6964-1.1607-1.5179-1.1607-1.5179-1.0714-0.89286,0.625-1.25,2.5-2.9464,1.1607-2.6786-0.71429-1.7857-1.6071-1.6071-1.6071-0.98215-0.53572-0.35714-0.625-1.875-0.80357-1.25-0.80357-0.80357,0.625-1.5179,2.5893-1.3393z\",\"name\":\"Moscow Oblast\"},\"rz\":{\"path\":\"m114.55,265.59-1.9643,2.6786-2.1429,3.125-0.625,2.7679-0.80357,1.7857,0.17857,0.80357,1.6964,0.71429,1.9643,1.3393,0.44643,1.5179-0.26786,0.89286,1.4286,1.1607,1.9643,0,1.1607,0.71429,0.0893,1.875,0.44643,1.1607,1.25,0.44643,1.5179-0.625,1.9643,0,1.5179,0.98214,0.625,1.7857,1.0714,1.1607,2.6786-0.17857,3.125,0,2.9464-2.0536,3.0357-2.9464,1.5179-2.2321,1.0714-1.7857-0.98214-2.2321-0.53572-3.125-2.0536-2.0536-1.25-1.6964-0.44643-2.8571-0.53571-1.6072-0.35715-0.98214-2.1428-0.35714-3.4822,0.26786-0.625,0.80357-2.1428-0.17857-1.875-0.71429-1.875-1.0714-1.9643-0.89286-1.0714,0.35715-0.80357,1.4286-1.4286,0.89286-1.6071-0.44643z\",\"name\":\"Ryazan Oblast\"},\"tb\":{\"path\":\"m112.77,279.43-1.6964,2.1429-0.35714,1.7857-0.80358,0.89286-2.6786,0.98214-1.875,0.44643-1.5178,0.71429-0.71429,1.4286,0,2.1429,0.26786,2.3214-0.71429,1.875-1.5179,0.53571-0.44642,1.4286-0.44643,1.6964-0.625,1.1607,0.08928,0.625,2.3214,2.1429,2.2321,2.1429,1.6072,2.2321,1.4286,2.0536,0.98214,0,2.1429,0,1.9643-1.25,2.5-1.25,1.6964-1.0714,4.0179-0.26785,1.0714-0.98215v-3.6607c0-0.35714,0.0893-2.3214,0.0893-2.3214l1.5179-1.1607s0.71429-0.71429,0.80357-1.0714c0.0893-0.35714-0.26785-4.6429-0.26785-4.6429l1.4286-1.0714-0.80357-2.1428-1.7857-1.4286-2.3214,0.26786-0.89285,0.625-1.1607-0.80357-0.89286-1.3393v-1.3393l-1.875-0.80357h-1.3393l-0.89286-1.0714-0.26786-1.3393z\",\"name\":\"Tambov Oblast\"},\"kn\":{\"path\":\"m44.107,152.55,0,2.2322,0.53571,2.5,2.0536,5.1786,1.4286,3.4821,1.9643,3.6607,2.5,1.0714,3.75-0.44642,1.9643-1.3393,0.625-1.7857-0.44643-4.2857-0.89286-2.8571-1.5179-1.6071-2.4107-0.53572-0.98214-0.71428,0-3.0357-0.80357-1.4286-1.6964-1.6071-1.6071-0.26786-0.35714,1.25-0.625,1.3393-0.625,0.89285-1.4286-0.35714z\",\"name\":\"Kaliningrad Oblast\"},\"ps\":{\"path\":\"m95.268,213.98,0.35714-2.1428-0.26786-2.1429-1.4286-1.875-1.3393-1.4286-0.08929-1.6964,0.98214-0.71429,0.17857-1.6964-0.89286-0.98215-1.25-1.875,0-4.1964,1.5179-0.89285,3.75-2.2322,0.80357-2.4107,0.53572-1.7857,1.875-1.25,2.4107-0.0893,1.3393-1.6071,0.98214-1.6964s1.25-0.625,1.6072-0.80357c0.35714-0.17857,2.8571-0.71429,2.8571-0.71429l1.5179-0.0893,1.0714,0.53571-0.625,1.5179-0.71428,0.89285-0.17857,0.98215,1.6071,0.26785,1.25-1.7857,0.98214-2.0536,1.1607-1.5179,1.6071-0.71428h1.6071l1.5179-1.5179,1.1607-0.625h1.4286l0.98214,0.98214,0.625,1.5179,0.98214,1.6071-0.26786,1.6964-0.89285,0.98214-0.35715,1.3393-0.80357,1.6071-0.17857,1.1607h-1.4286-0.80357l-0.71429-0.53572-0.80357,0.53572-0.625,0.80357-0.53571,1.5178-0.53572,2.1429-0.0893,2.5-0.35715,1.875-1.1607,1.25-1.3393,0.98214h-1.7857l-1.5179,1.3393-0.53571,1.7857-1.3393,0.53572-0.44643,1.0714-0.17857,1.4286-1.7857,0.89286-1.7857,0.80357-0.625,1.6964,0.625,1.5178,0.625,0.625-0.26785,1.4286s-0.0893,0.44643-0.44643,0.80358c-0.35714,0.35714-1.1607,1.3393-1.1607,1.3393l-1.4286,0.80357-2.3214,0.89286-1.0714,0.0893-1.1607-0.89286-0.89286-0.89286z\",\"name\":\"Pskov Oblast\"},\"no\":{\"path\":\"m123.12,188.27,1.5179,1.25,2.1428,0.35714,2.1429,0.17857,1.25,1.1607,2.5,0.53571,2.3214-0.0893,1.0714-0.89286,0.44643,0.625,0.0893,1.7857,2.1429-0.53571,2.3214,0.0893,0.80357,0.80358,0.17857,2.5,0.17857,2.5,0.53572,1.0714,1.3393,0.17858,1.3393,0.44642,0.26785,2.1429,0.71429,1.6964,0.98214,0.80357,0.44643,2.9464,0.0893,2.2321,0.89285,1.4286-0.53571,0.98215-0.71429,0.53571,0,1.6071,0.17858,1.5179,1.4286,1.3393,0.625,0.53571,0.0893,1.9643,0,1.9643-0.17857,1.3393-1.25,0.53571-0.71428-0.26785-0.625-0.80358-0.71429-0.80357-0.17857-1.1607-0.98214-0.80357-0.80358-0.625-2.0536,0-1.5178-0.53572-0.53572-0.35714-1.5178-0.53571-0.71429-0.26786,0-0.44643s-0.26786-1.25-0.26786-1.6964c0-0.44643-0.0893-2.0536-0.0893-2.0536l-0.625-0.98214h-1.7857l-0.89285-0.44643-0.44643-0.98214-0.98215-0.625-0.53571,0.625-0.89286,1.0714-1.6964,1.4286h-2.1428c-0.35715,0-1.5179,0.0893-1.5179,0.0893l-0.71429-1.0714-1.0714-0.71428-2.3214-0.17857-2.6786-0.0893-1.5179-0.44643-1.3393-0.98214-2.3214-0.44643h-2.1428l-0.89286-1.1607-1.25-1.0714-0.53571-0.71429-1.1607-0.71428,0.98214-2.7679,0.71429-0.44643,1.1607-1.5179,1.0714-1.0714,2.0536-0.625,2.5-1.9643,0.625-1.9643,0.0893-3.5714,0.98214-2.5893,1.0714-1.25,1.1607,0.26786z\",\"name\":\"Novgorod Oblast\"},\"tr\":{\"path\":\"m98.661,216.66,3.2143-0.625,2.2321-1.6072,1.3393-1.6071,0.17857-1.4286-0.80357-1.4286-0.26786-1.3393,0.35714-0.89286,1.4286-0.89285,1.6964-0.625,1.1607,0.44643,1.5179,1.5178,1.0714,0.98215,0.98215,0.53571,1.6964,0.17857,2.4107,0.35714,1.3393,0.98215,1.3393,0.26785,3.2143,0.44643,1.5178,0,1.25,0.71429,0.80358,0.71428,1.875,0.35715,1.7857-0.17857,1.875-1.6072,1.25-1.25,0.71429,0.44643,0.625,0.80357,1.4286,0.44643,1.4286,0.17857,0.53571,1.5179,0.17857,2.4107,0.35715,0.80358,1.1607,0.71428,1.4286,0.80357,1.0714,0.26786,1.875,0.35714,0.98214,0.26786,1.25,1.0714,0.44643,1.3393,0.98214,1.0714,0.80358,0.53572,1.7857-0.35715,1.3393,0.0893,1.25,0.71429,1.6071,0.89285,0,1.5179-0.625,1.6964-1.25,1.6071-1.6071,0.44643-1.25,0.98214-1.5179,1.3393-0.89286,1.0714-0.44643,0.71428-0.26785,1.5179-0.44643,1.0714-1.25,1.4286-0.53572,1.4286-0.35714,2.0536-2.0536,1.9643-2.0536,1.3393-1.0714,0.17858-0.53571-0.71429-0.26786-1.7857-1.6964-0.71429-3.8393-0.89286-3.8393-1.6071-3.0357-0.80357-1.5178-1.0714-0.0893-3.0357-0.35714-1.6964-3.3036,0.80357-3.4822,0.26786-1.3393-0.89286-3.4821-4.4643-1.5179-2.0536-3.3036-0.625-2.7679-0.53571-1.4286-1.7857z\",\"name\":\"Tver Oblast\"},\"vm\":{\"path\":\"m137.41,247.73,1.6072,1.7857,2.0536,1.25,1.1607,1.0714,1.3393,0.35714,0.80357,0.89286,0.0893,1.5178-0.89285,1.7857-0.35715,1.0714,1.25,0.625,1.7857,0.26785,1.0714,1.1607,0.17857,1.9643,0.98214,1.875,1.0714,1.25,1.3393,1.25,1.3393,1.3393,1.3393,1.1607,1.7857,1.875,0.89286,1.3393-0.17857,0.98214-0.89286,0.71429l-0.18,0.98,0.53571,0.71429,0.44643,0.71428,0.0893,1.6072-1.7857,0.53571-2.2321-0.0893-1.1607-1.0714-4.4643-0.0893h-5.1786l-1.7857,0.53571-0.71429-1.6964-1.6964-1.9643-1.6071-2.6786-0.80357-4.1964-0.0893-4.1071-0.17857-2.0536-0.44643-0.44643-0.71428,0.44643-1.1607,0.26785-1.4286-1.25-0.26786-2.5893,0.71429-2.0536,1.1607-2.0536,0.44643-1.7857,1.3393-1.0714z\",\"name\":\"Vladimir Oblast\"},\"pz\":{\"path\":\"m127.05,289.96,1.6964,1.7857,2.0536,1.5179,1.25,0.98214,1.6964,0.625,1.25,1.875,0.71429,1.6071,0.26785,1.9643,0.98215,0.98214,1.0714,1.0714,2.6786,0.17857,1.6964,0.0893,0.625,2.1429,0.89286,1.7857,1.6964,0.71429,2.1429,0.26785,1.4286,1.0714,0.625,1.0714-1.5179,0.89286-0.89286,0.98214,0.0893,4.1071-0.26786,3.4822-2.7679,1.25-1.0714-0.0893-0.89286,1.6071-1.9643,0.98215-1.1607-1.7857-0.98214-0.98214-5.9822-0.0893-1.1607-1.875-0.89286-0.89285-3.125-0.71429-0.98214-1.6071-1.25-1.6964-2.1429-0.71429-2.4107-1.3393-1.6071-1.0714-2.5,0.0893-0.71429-1.875,0.26786-2.5,1.1607-0.89285,3.8393-0.80357,0.89285-2.4107,0-3.4821,1.3393-1.6964,1.3393-1.6071-0.26786-2.5893,0-1.9643,1.1607-0.89286z\",\"name\":\"Penza Oblast\"},\"sr\":{\"path\":\"m107.23,308.27-0.17857,3.0357-0.26786,1.25-2.2321,1.1607,1.4286,1.6964,1.0714,3.2143,2.2321,0.71429,0.98215,0.80357,0.89285,1.0714,1.7857,0.625,2.5893,2.5,0.89286,1.0714,0,1.875-1.5179,2.0536-2.4107,2.8571-0.44643,1.25,0.44643,1.6964,0.71429,0.89286,2.1428,1.1607,4.0179,3.9286,1.7857,4.5536,1.25,1.4286,1.25,1.3393,0.26786,1.9643-0.71428,2.5-0.53572,2.4107,0.26786,1.7857,0.89286,1.0714,1.6071,0.44643,1.6964,0,1.6964-1.1607,1.25-1.0714,0.44642-2.6786,0.0893-1.875,2.2321-0.625,3.3036,1.25,1.6964,0.35714,1.6072,0,1.3393-1.5179,0.44643-0.53571,1.6071,0.35714,1.3393,1.0714,1.5178,0.89286,4.6429,0,1.1607-1.1607,1.3393,0.17857,0.89286,0.80358,1.6071-0.53572,0-1.7857-0.89286-1.9643-0.35714-1.3393-0.17857-3.9286-0.0893-2.0536-0.71428-1.25,0.0893-2.8571-0.35714-1.6071,0-2.5-0.80357-1.3393-1.1607-1.6071-2.5-1.0714-1.6072-2.0536-2.5893-0.0893-1.0714-0.35714-1.7857-1.6964-0.625-1.25-0.44642-0.89286-1.7857-2.4107-5.625-0.26786-0.53571-0.17857-1.9643-2.5893-3.125-0.89286-2.2321-2.9464-6.1607-3.3036-2.3214,0-1.0714-1.6964,0.44643-2.5-0.80357-0.35714-3.8393,2.1428-1.5179,0.35715z\",\"name\":\"Saratov Oblast\"},\"mr\":{\"path\":\"m127.59,290.05,1.875,2.1429,2.6786,1.7857,1.7857,1.1607,1.7857,2.7679,0.44642,2.4107,2.0536,2.1429,2.5893,0.0893,1.6071,0.26786,0.89286,2.2321,0.71429,1.4286,2.0536,0.89286,1.7857,0.35714,1.25,0.625,0.53572,0.80358,5.8928,0.17857,2.6786-3.5714,0.35715-0.53572,0.71428-1.3393,0.0893-2.1429-0.0893-1.9643-1.7857-0.98215-0.35714-2.5-0.0893-0.80357-1.6964,0,0,0.17857-0.80357,0.89286-1.3393,0.80357-5.2678,0-2.5893-2.3214,0.17857-3.5714-1.1607-1.0714-0.17857-0.80358,1.0714-1.0714,0-1.6072-2.5893-0.53571-1.7857-0.0893-0.80357-1.25-0.71429-1.6964-1.25,1.1607-2.1429,2.3214-2.4107,1.5178-1.5179,0.98215-2.9464,0.26785z\",\"name\":\"Republic of Mordovia\"},\"cu\":{\"path\":\"m159.11,299.07,1.3393-0.89286,2.9464,0.44643,1.3393,0.44643,1.0714-1.3393,0.26786-1.7857,2.2321-1.1607,2.2321-2.2322,3.125,0.0893,2.6786,0,1.25,1.5179,0.35715,2.9464-0.17857,1.5179,0.35714,1.25,0.71428,1.1607-0.0893,0.71428-1.3393,0.625-4.1071-0.0893-1.3393,0.53571-0.80357,0.80357,0,0.89286,1.1607,0.71428-0.17857,0.89286-1.3393,1.1607-1.7857,1.25-2.1429,0.98214-1.3393,0.44643-1.3393-1.3393-2.5-0.44643-0.98215-0.625-0.98214-1.3393-0.80357-0.80357,0.80357-3.5714z\",\"name\":\"Chuvash Republic\"},\"ul\":{\"path\":\"m158.57,305.32-1.875,2.6786-0.98215,1.4286-4.8214-0.26785-0.80358,0.26785-1.7857,1.4286-0.80357,1.1607,0,2.3214,0,2.5893,0,1.6964-1.7857,1.4286-1.0714,0.26786-0.89286,0-1.25,1.25-1.25,1.0714-0.625,0.26786,0.89286,1.9643,1.6071,1.6071,2.3214,0.44643,1.5178,0.17857,1.25,1.6072,1.5179,0.80357,2.1429,0.17857,0.89286-0.625,0.0893-1.875,0.17857-1.6964,1.0714-1.6964,0.35714-1.3393,1.3393-0.26786,0.80357,0.53571,1.3393,0.625,1.875-0.17857,1.3393-0.98214,1.0714,0.17857,1.6964,1.4286,2.0536,1.875,1.5179,1.6072,0.80357,1.4286,2.3214,0.17857,1.1607-1.5179,2.8572-2.0536,2.0536-1.1607,0.26785-2.3214,0-3.5714-1.875-1.1607-3.6607-0.0893-2.0536-1.4286-0.98214-1.1607-2.5-0.26785-0.98215-1.5179-3.0357-1.5179-0.80357-1.5179-0.625-2.0536z\",\"name\":\"Ulyanovsk Oblast\"},\"ss\":{\"path\":\"m150.98,329.96,1.3393,2.1428,0.71428,2.8572,0.44643,2.8571,0,2.1429,0.625,2.3214-0.0893,2.8571,0.35714,2.4107,0.53571,2.1429,0.625,1.9643,0.71429,0.98214,5.8929,0.0893,3.0357-1.6071,1.25-1.9643,1.9643-0.35715,1.6964-0.0893,2.1429-1.4286,1.4286-0.89286,1.25-0.17857,1.6072,0.625,1.7857-0.17857,0.80357-1.875,1.0714-2.3214,4.375-2.5893,1.7857-1.4286,1.1607-2.0536-0.625-1.5179-0.80357-1.7857-0.35715-2.5-1.1607-1.25-0.71429-2.4107-3.6607-0.26785-2.3214-1.6964-1.4286-0.80357-3.5714,2.3214-1.9643,2.2322-2.4107,0.0893-0.98214-0.98214-2.2321-2.4107-2.4107-1.875-1.0714-1.0714-0.89285,0.26785-1.6072,0.71429-1.6964-0.0893-1.5178-0.80357-1.0714,0-0.625,0.98215-0.53572,1.0714-0.80357,1.5179-0.17857,1.3393,0,0.98214-0.0893,0.71429z\",\"name\":\"Samara Oblast\"},\"ob\":{\"path\":\"m155.89,352.82,0.53571,1.4286,0.71429,1.6071-1.0714,1.6072,1.0714,1.4286,3.0357,0.17857,1.9643-0.35714,2.5,0,0.17857,2.3214-0.89286,2.6786,0.35714,1.0714,3.5714,1.6071,2.1429,1.4286,0.17857,3.5714,0,4.1071,0,1.4286-1.25,0.89286,0,1.9643,0,0.71428,0.71429,1.0714,1.0714,0.89286,1.7857-2.5,0-1.4286,0.89286-0.89286,1.4286,0,1.0714,2.3214-0.17858,1.4286-0.71428,1.25-0.35714,1.4286l0.36,1.43,1.25,0.89286,2.3214,1.25,1.7857,0.89286h1.9643,2.5l1.4286-1.0714,1.6071,0.17857,1.9643,1.0714,0.89285,1.6071,0.35715,1.7857,1.0714,1.25h1.7857l0.89286-0.89285h1.25l1.6071,0.53571,1.25,1.4286,0.53571,2.6786-0.17857,3.5714,1.7857,1.6072,1.4286,0.89285,1.0714,1.6072,1.0714,0.53571,1.6071-0.71429,1.4286-0.17857,1.6071,1.4286v1.25l1.9643,1.7857,1.25,0.71428,2.1429,0.35715h2.6786l1.4286-0.17857,1.25-0.89286,1.25-1.0714,0.89286-0.89286-0.17858-1.25-2.3214-3.2143-1.0714-1.25v-3.75l-0.71429-2.1429-0.17857-2.1429,1.0714-2.3214,1.9643-1.4286-1.4286-1.7857-3.0357-2.8571-1.9643,0.35714-1.4286-0.17857-0.89286-1.25h-2.3214l-1.4286,1.25-1.0714,1.25-0.53572,1.0714h-2.5l-1.0714-2.5-3.2143-0.17858-2.8572-0.35714-0.89285-2.5-1.08,0.33-1.79,0.89h-1.4286l-0.17857-1.0714,1.4286-1.7857,2.5-2.5-0.53-1.78-0.71-0.36v-0.89286l2.5-1.9643,0.35715-1.0714v-2.1429h-1.7857l-2.1429,0.71429-1.6071,0.17857-1.4286-1.9643-0.53571-2.3214,1.25-1.7857,1.0714-0.89286v-1.6071l-0.35714-2.3214,1.0714-0.89285,0.17857-3.0357-1.25-1.9643-1.7857-1.7857-0.17857-1.6071,1.0714-2.8571,1.6072-2.5,0.89285-1.7857-0.53571-1.25-2.1429-1.6071-1.4286-2.1429-1.25-1.4286-1.6071,1.7857-1.4286,1.4286-4.1072,2.5-1.4286,1.9643-0.35714,1.9643-0.53571,0.35714-1.9643,0.17857-2.1429-0.35714-1.9643,0.53571-1.9643,1.4286-2.8571,0.53572-1.0714,0.71428-1.4286,1.7857-2.1429,1.25h-2.5z\",\"name\":\"Orenburg Oblast\"},\"nn\":{\"path\":\"m156.25,271.57,4.2857-0.53571,2.5-1.4286,3.5714-0.71428,2.6786-1.0714,1.25-0.17857,2.3214,1.25,1.7857,1.0714,2.6786-0.17857,1.4286,0,2.6786-1.0714,1.25,0.17857,1.4286,1.9643,1.0714,2.1429,2.5,0.17857,2.5,1.7857,1.0714,1.25,0.89286,2.5,1.25,1.4286-0.17858,1.6071-1.25,0.89286-1.7857,0.17857-0.71429,0.89286-1.6071,0-0.71428-0.89286-1.7857-1.0714-1.6071,0.71429,0,1.6071-1.25,1.4286-1.25,0.53572-2.1429-0.89286-2.1429-1.6071-3.0357-0.89286-1.7857,0-1.0714,0.89286-0.71429,1.7857,0,2.8571-0.17857,2.8572,0.53571,1.0714-1.0714,1.4286-2.3214,1.4286-1.4286,0.89285,0,1.4286-0.35715,0.89285-0.89285,0.71429-2.8572-0.35714-1.0714-0.17858-0.89285,0-0.71429,0.53572-0.38692,0.34215-0.69448-0.12626-0.44194-0.50508-0.50508-3.0936-1.5784-0.12627-1.5784,1.4521-2.2097,0.44194-3.9775-0.25253-2.0834-2.0203,0.1894-3.3461-1.2627-1.389-0.0631-0.75761,1.0102-1.4521-0.0631-1.0733-3.7249-0.63135-1.1996-0.75761-1.0733-2.7148,1.1364-2.336-1.1996-3.3461,2.0203-0.50507,3.283-0.12627,5.9978,0.12627,1.2627,0.88388,2.0203,0.1894,2.0203-0.75761,0.12627-1.5152-0.94702-1.4521,0.63135-1.0733z\",\"name\":\"Nizhny Novgorod Oblast\"},\"ml\":{\"path\":\"m181.51,286.29,2.2728,2.336,2.4622,2.0834,2.7779,1.1364,2.9673,0.0631,2.4622,2.0834,1.5784,1.6415,0.44194,1.3258,0.63134,0.94702-0.3788,1.6415-0.56821,1.1364-0.0631,1.8309-1.5152,1.389-0.88388,0.56821-1.4521-0.12627-1.1996-1.5152-1.1996-0.44194-1.389-0.82075-1.7046-0.12627-0.50508,0.88389-1.7046,0.88388-2.5885,0.12627-1.9572-0.82075-1.1364-0.69448-0.88388-3.0305-0.37881-4.7351-1.1996-1.4521-4.0406-0.0631-1.3258-0.1894-0.63134-1.0733,0-2.0834,0.0631-3.0936,0.37881-1.8309,1.0102-1.0733,0.82075-0.63134,2.5885,0.3788,2.2728,0.88389,2.9673,1.7678z\",\"name\":\"Mari El Republic\"},\"ta\":{\"path\":\"m160.93,308.14,0.0631,1.1364,0.44194,1.0733,0.88389,1.0102,1.5152,0.63134,1.8309,1.4521,1.5152,0.75762,1.389,0.44194,1.4521,1.0733,1.389,1.0102,2.4622,0.44194,1.4521,0.0631,1.7046,0.88388,0.12627,2.2097-0.37881,2.9042,0.44195,1.4521,2.0834,1.1996,1.0733,0.75761,2.9042,0.18941,0.82075,0.69448,0.56821,1.7046,1.3258,2.1466,0.63134,2.5885,0.88389,1.7678,1.6415,1.894,1.389,2.2728,1.6415,1.1364,0.88388,0.88388,1.1996,0.0631,2.9042-1.8309,2.9042-2.7148,0.44194-0.63135,0-1.894-1.0102-1.0102-0.0631-0.88388,1.8309-0.25254,1.2627,0.31567,0.75762,0.56822,1.3258,0.3788,1.6415-0.31567,1.1996-0.69448,2.9042-0.12627,1.5152-0.37881,0-0.94701-0.37881-1.2627-1.1996-1.5784-0.63134-1.2627-1.5152-0.44194-0.88389-1.2627s1.2627-1.0102,1.5784-1.1364c0.31567-0.12627,2.2728-0.75762,2.2728-0.75762l0.0631-1.4521s-1.1364-0.18941-1.389-0.50508c-0.25254-0.31567-0.69448-0.94702-0.69448-0.94702l2.0203-1.3258,2.0203-1.389,0.12626-1.1364-0.69447-0.82075h-1.5152l-0.69448,0.0631-1.1364,1.3258-0.56821,0.69448h-1.894l-0.12627,0.88388-0.12627,1.3258-0.82075,1.1364-1.5152-0.12627-0.75761-1.4521-1.1364-0.94702-0.82075,1.0102-1.7678-0.31567-0.56821-2.2728-1.4521-0.88388-0.63135-1.2627,0.12627-1.3258-1.1364-1.3258,0.0631-2.6516,0.12627-3.0936,0.63135-0.94702-0.25254-1.0102-0.69448-1.0733-0.56821-0.56821-1.0102,0.44194-0.88388,0.37881-1.0102-0.12627-1.0733-0.88389-0.88388-0.82074-1.8309-0.69448-1.4521-0.44195-0.94702,0.94702-1.8309,0.75762-1.8309,0.1894-1.6415-0.31567-1.9572-1.0733-1.389,0.50508h-2.7148l-2.0834,0.0631-1.389,1.1364-0.0631,0.88389,0.69448,0.50507,0.12627,0.82075-0.82075,1.0733-1.5152,1.2627-2.6516,1.0733-1.5784,0.69448-1.1364-0.75762-2.0834-0.82075z\",\"name\":\"Republic of Tatarstan\"},\"iv\":{\"path\":\"m144.26,252.7,2.0203-1.1364s0.94702-0.50507,1.1996-0.50507c0.25254,0,2.5885,0.31567,2.5885,0.31567l2.7148,1.1364,2.3991,1.1364,1.2627,1.1996s1.4521,1.0102,1.7046,1.1996c0.25254,0.18941,1.4521,1.2627,1.4521,1.2627l1.7046,0.63135,1.1364-0.88388h0.88388l0.50508,0.82074,0.1894,1.1996,1.0102,0.75762,1.5152,0.82074,1.0102,0.63135,0.44194,1.0102-0.69448,1.0733-0.12626,0.88388,0.75761,0.37881,0.88388-0.56821,1.389,0.63134,0.69448,0.94702,0.25254,1.2627-0.25254,0.50508-1.894,0.69448-2.9673,0.82075-3.0936,0.50507-2.3991,1.5152-3.4724,0.50508-0.94702-0.12627-1.7678-2.3991-3.5987-3.4724-2.7148-3.3461-0.82075-2.7779-0.88388-1.0102-2.1466-0.44195-0.69448-0.56821,0.50507-1.4521,0.56821-1.3258z\",\"name\":\"Ivanovo Oblast\"},\"yr\":{\"path\":\"m154.11,228.33,1.7678,1.5784,1.9572,0.50507,1.7678,0.50508,1.3258,1.6415,1.9572,1.5784,1.5784,0.0631,1.0733-0.69448,0.82075,0.31568,0.3788,1.4521,0.12627,3.4093-0.0631,2.6516,0.25254,1.5152,0.88388,1.0102,0.56821,0.94702-0.37881,1.0733-1.7046,1.1364-2.7148,1.3258-3.283,2.2097-1.6415,1.0733-3.3461,0.88388-2.4622-0.1894-2.1466-0.63135-2.6516-0.69448-2.1466,0.63135-1.8309,1.0733-1.7046-0.88388-1.4521-1.0102-1.894-1.1364-1.1364-1.1996-0.25254-1.3258,0.56821-1.4521,2.0203-0.88388,2.2097-1.1996,1.6415-2.7779,1.0102-2.9673,1.1996-1.2627,0.75762-2.4622,1.6415-1.8309,1.9572-1.8309,2.7148-1.5152z\",\"name\":\"Yaroslavl Oblast\"},\"kt\":{\"path\":\"m168.7,245,1.389,0.12627,1.2627-0.75762,1.5152-1.389,1.894-0.75762,1.894,1.1364,1.894,1.5152,2.5254,0.12627,0.63135-0.75761,0.75761,0.50507,1.2627,2.1466,2.2728,2.2728,1.5152,1.5152,1.1364,1.894,0.3788,2.2728,1.2627,1.7678,1.5152,1.6415,2.5254,1.389,1.7678,1.5152,1.7678,1.894,2.0203,0.88388,1.894,0.12627,2.0203-2.0203,1.6415-0.3788,0.63135,1.894,1.1364,1.0102-0.12627,1.6415-1.6415,1.5152-0.12627,1.894-0.3788,2.5254s-1.7678,0.75761-2.3991,0.75761c-0.63134,0-6.3134-0.12626-6.3134-0.12626l-3.1567,0.12626-1.1364,1.1364-1.2627,0.50507-2.0203-0.75761-1.5152-0.75762-2.0203-0.3788-1.0102-1.5152-0.88388-1.6415-0.75762-0.63135-1.1364-0.12627-0.88388,0.50508-2.1466,0.75762-3.283-0.25254-1.7678-0.50508-2.0203-1.2627-0.50508-0.50508,0.25254-0.63134v-1.1364l-1.389-1.2627-0.88389-0.50508-0.63134,0.37881-0.38556,0.10695-0.53571-0.35714,0.0893-0.89286,0.71429-0.625,0.0893-0.98214-0.89285-0.71429-1.7857-1.0714-0.98214-0.98215-0.26786-0.98214-0.71428-0.89286h-0.98215l-0.89285,0.625-0.625,0.0893-1.25-0.71429-1.4286-0.80357-1.3393-1.25-1.7857-1.3393-0.69-0.57,1.07-0.71,2.05-0.54,2.3214-0.71428,2.8571-2.0536,3.3036-1.6964z\",\"name\":\"Kostroma Oblast\"},\"le\":{\"path\":\"m123.49,177.57,1.7678-1.6415,1.5152,0,2.2728-1.894,2.5254-0.50507,2.2728,0.63134,2.9042,2.1466,2.7779,1.5152,0.75761,2.5254,0.12627,1.389,1.0102,1.1364,1.1364-0.37881,0.75761-2.0203-0.12627-2.3991-0.88388-1.6415-0.88388-1.894,0.12626-2.0203,1.1364-1.2627-0.25254-1.894-0.75762-1.0102,0-0.37881,1.2627-0.25254,3.283,0.25254,3.5355,1.2627,2.2728,0.12627,1.894,0.12627,1.2627,1.1364,0.63135,1.2627,0,1.7678-0.37881,1.6415-0.25254,2.1466-0.63134,1.7678-2.1466,1.2627-0.75761,1.0102-1.0102,1.894-1.0102,1.1364-1.7678,1.1364-0.63135,1.2627,0.25254,1.1364,1.389,0.75762,2.1466,0.25253,1.0102,0.88389,0.25254,1.6415,1.0102,0.75762,2.1466,0.12627,1.1364-0.50508,3.4093-0.25254,1.7678-0.63134,2.0203-0.25254,1.5152,0.75761,1.0102,1.6415,1.1364-1.2627,1.389-1.7678,0.75762,0.88388,0.50507,2.0203,0.63135,2.2728,2.1466,0.50507,1.2627,0.75762,1.1364,1.0102,0.12626,1.2627,0.12627,1.6415-0.12627,1.7678-1.2627,0.75761-2.2728-0.25254-1.389-0.88388-1.389-0.25254-0.75761,0.88388-1.5152,1.0102-3.0305,0-1.5152,0.3788-2.7779,3.0305-1.0102,1.389-0.37881,2.1466-1.6415,1.0102-1.1364,0.12627-0.3788,1.2627-1.2627,0.63134-0.63135-1.0102-1.1364-1.1364-2.2728-0.12627-0.75761,0-1.1364-3.0305,0-2.9042-1.0102-1.5152-0.88389-1.894-0.12627-1.6415-2.2728-0.88388-0.88388-0.63135s-0.37881-1.0102-0.37881-1.5152c0-0.50507-0.25254-3.4093-0.25254-3.4093l-0.75761-1.1364-2.3991-0.25254-1.389,0.75761-0.75762-0.50507-0.12627-1.2627-0.63134-0.88389-1.0102,0.63135-2.1466,0.3788-2.7779-0.88388-1.5152-0.88388-3.283-0.37881-1.2627-0.88388-1.0102-0.75762,0.63135-1.2627,0.88388-2.1466,0.88388-1.389,0.12627-1.2627z\",\"name\":\"Leningrad Oblast\"},\"ki\":{\"path\":\"m207.59,265.33,1.2627-0.88388,0.12627-2.0203,0-2.0203-1.0102-1.389-0.12627-1.6415,1.5152-0.37881,3.9143,0.25254,2.5254-0.88388,2.6516-1.1364,0.63134-1.389,1.1364-0.63134,2.7779,0.25254,1.389,1.7678,0.12627,2.7779-0.63134,3.0305-1.0102,1.389-0.75761,2.7779-1.894,0.75762-2.0203,0.12626-1.6415,1.7678-0.63134,1.6415-1.0102,0.63134-0.75761,0.88389,0.75761,1.389,1.6415,0.88388,1.0102,1.389-1.6415,1.894,0.12626,1.894,1.1364,0.88389,1.2627,0.50507,0.88388-1.389,0.88388-1.894,2.7779,0,3.1567,0.3788,4.2932,1.2627,1.7678,2.2728,2.1466-0.12627,2.1466-1.6415,1.6415,0.37881,1.2627,1.0102,0.75762,1.894s1.0102,1.5152,1.389,1.7678c0.3788,0.25254,2.5254,1.894,2.5254,1.894l0.25254,1.5152-0.88389,2.0203-2.0203,1.1364-3.5355,0.25253-1.2627,0.63135-1.2627,1.5152-0.25254,1.389,1.0102,1.389,0.12627,1.1364-1.5152,1.1364-0.75762,1.389-0.12627,2.1466-1.2627,1.0102-2.7779,0.12627-1.1364-1.2627-1.0102-2.5254-2.0203-0.12627-1.389-0.3788v-1.894l-2.0203-1.1364-3.1567,0.75761-1.7678,1.389s-1.2627,1.0102-1.2627,1.5152c0,0.50508-0.3788,2.2728-0.50507,2.7779-0.12627,0.50508-1.6415,1.5152-1.6415,1.5152l-2.5254,1.1364-1.894-0.50507-1.2627-1.389-1.5152,0.25253s-0.75761,0.50508-1.0102,1.389c-0.25254,0.88389-0.12627,2.7779-0.12627,2.7779l0.12627,1.894-2.0203,0.63135-3.4093,0.3788-0.25254,1.1364v1.389l-0.3788,1.389-1.7678,0.88389h-0.63135l-0.63134-1.5152-0.50508-0.37881,0.12627-2.5254,0.25254-2.5254,0.50508-1.5152-0.88389-1.6415-0.25254-1.2627,0.75762-2.9042,0.63134-2.5254-1.0102-1.5152-1.6415-2.5254-2.1466-1.5152-0.88388-0.63134-3.9144-0.12627-1.7678-1.2627-1.6415-1.5152-1.6415-1.5152-0.50507-0.50508,0.50507-1.0102,1.2627-1.6415,0.25254-1.0102,1.1364-0.75761,1.5152,0.50507,1.894,1.389,1.389-0.75761,2.1466-0.63135,1.389-1.2627v-1.5152l-1.2627-1.894-0.63135-1.5152s-0.78918-1.1049-0.85231-1.2627c-0.0631-0.15784,0.56821-0.69448,0.56821-0.69448l0.97858-0.63135,0.75762-0.75761s2.2728-0.0316,2.8095-0.0316c0.53664,0,3.1567,0.0631,3.8828,0.0631,0.72605,0,3.7881-0.44194,3.7881-0.44194l1.4521-0.59978s0.12626-1.5784,0.15783-1.7993c0.0316-0.22097,0.47351-2.4938,0.47351-2.4938l2.0203-2.3991z\",\"name\":\"Kirov Oblast\"},\"bs\":{\"path\":\"m211.5,329.86,2.3991-1.6415,2.5254-1.6415,1.5152-0.25254,1.894,2.6516,2.2728,2.2728,2.9042,0,2.6516,2.5254,1.7678,2.5254,1.1364,1.7678,1.7678,0,1.2627,2.1466,2.6517,2.3991,2.2728,1.6415,2.0203,1.7678,1.2627,1.1364,0.88389,1.389-0.37881,1.1364-1.6415,0.63134-0.88388,1.2627,0.25254,1.389,1.389,0.63135-0.63135,1.2627-1.5152,0.50508-1.2627-0.75762-2.3991,0.37881,0,1.0102-1.5152-0.25254-0.50508-0.88388-1.5152-1.0102-4.5457,0-1.1364-0.37881,0-1.2627,1.7678-1.2627,0.12627-1.389-1.0102-0.88389-1.6415-1.1364-2.5254,0.25254-1.0102,2.1466-1.7678,2.6516-0.88388,2.0203,0.50508,3.0305,1.894,1.0102,2.0203-0.75761,1.6415,0.75761,1.0102,2.0203,2.5254,0.12627,2.0203,0.75761,2.7779,0,1.7678-0.50508,1.5152,1.1364-0.63135,1.389-1.894,1.5152-1.2627,1.1364-1.0102,1.389-1.2627,0-1.2627-0.63134-2.1466-0.75762-1.6415-0.3788-1.6415,1.2627-0.3788,1.5152-0.63135,1.389-2.3991,2.6516-1.6415,2.3991-3.9143,3.6618-1.894,1.5152-0.25254,2.0203-0.63134,1.5152-2.9042-0.25254-1.6415,1.7678-1.2627,1.389-0.50507,0.63135-2.0203,0-1.1364-2.0203-0.50508-0.63134-5.4296-0.63135-1.389-2.1466-2.7779,0.88388-1.2627-0.12627,0-0.50507,3.4093-4.4194,0-1.6415-0.88389-0.63134,0-1.1364,1.7678-1.1364,1.0102-1.389,0-2.0203-0.25253-0.50508-1.894-0.12627-2.2728,1.2627-1.7678-1.1364-1.1364-2.3991,1.2627-2.3991,1.0102-1.894-0.25254-2.5254,0-0.75761,0.88389-1.5152,0-3.1567-2.5254-2.9042-0.12627-2.0203,1.0102-2.6516,2.0203-4.1669,2.9042-2.1466,3.9143-3.1567,1.0102-2.1466-0.88389-1.389-0.12627-0.12627,0-0.75761,1.389-0.25254,2.3991,0.75762,1.389,0.12626,1.7678-0.63134,2.6516-0.25254,1.7678-0.12627,0.88388-0.63134,0-1.7678z\",\"name\":\"Republic of Bashkortostan\"},\"cl\":{\"path\":\"m242.18,347.66,1.7678-0.88388,2.7779,0.50507,2.3991,2.1466,2.3991,1.7678,3.0305,1.894,2.9042,0,1.5152,1.6415,1.6415,2.3991,0.75761,1.894-0.63135,3.1567,0,2.7779-0.88388,1.389-1.7678,0.63135-1.6415,1.1364-0.75762,1.2627-2.0203,0.63135-1.894,1.5152,0,1.1364,1.5152,1.5152,2.0203,2.0203,1.1364,2.3991-0.37881,2.7779-0.75762,1.7678-2.3991-0.63135-2.6516-0.50507-3.283-0.37881-2.0203-0.50508-1.5152-1.7678-2.0203-1.7678-1.1364-1.1364-1.1364,0.50508-1.5152,1.1364-0.88388,1.0102,0,1.894,1.6415,1.2627-0.37881,0.75761-2.2728,0.63135v1.0102c0,0.50508,0.75761,2.0203,0.75761,2.0203l2.0203,1.7678,0.12627,1.894-1.5152,0.63134-1.5152-1.5152-1.389-1.2627-2.2728-0.63134-3.283,0.12627-1.5152,0.25253-0.63134,1.2627,1.0102,1.389-0.37881,1.894-1.0102,1.6415-4.5457,0.25254-1.6415-0.88389-1.6415-0.63134,0.50507-2.0203,1.6415-0.88388-0.75761-1.7678-2.0203-2.3991-1.6415-1.0102-1.894,0.12627-1.389-0.63135,0.63134-2.7779,1.7678-2.6516,4.4194-4.1669,3.7881-4.672,1.2627-2.9042,1.389-0.88389,2.5254,0.25254,2.0203,1.0102h2.0203l1.894-2.2728,2.2728-1.894,0.50508-1.389-1.5152-1.2627-2.1466,0.50507h-3.0304l-2.7779-0.88388h-1.5152l-0.88388-1.894-1.389-0.50507-1.7678,0.63134-1.0102-0.37881-0.88389-0.63134-0.63134-1.894-0.12627-1.6415,3.6618-5.6821,0.75762-0.63135,1.7678,0.37881,1.7678,0.88388,0.63134,1.1364-0.3788,0.75762-1.2627,1.1364v1.1364l-0.12627,0.12627,0.75761,0.63135,2.6516,0.12627h2.2728l1.5152,1.0102,1.2627,1.1364,1.1364-0.63135,0.50507-0.75761,2.0203,0.12627,1.7678,0.37881,1.1364-1.2627-0.37881-1.0102-0.75761-0.88388,0.25253-1.5152,1.5152-1.0102,0.63135-1.1364z\",\"name\":\"Chelyabinsk Oblast\"},\"ud\":{\"path\":\"m231.7,302.33-0.12627,1.389-2.0203,2.7779-1.5152,1.389,0.12626,1.389-1.6415,1.0102-1.1364,1.5152-1.5152,2.3991-0.50508,1.894-0.50508,3.1567-2.0203,1.0102-2.2728,0.12627-0.63135,1.1364-0.37881,3.0304-0.12627,1.389-3.0304,2.0203-2.2728,1.389-1.0102,0-1.2627-1.5152-1.7678-0.75762-0.63134-1.2627,1.389-1.1364,2.0203-0.75761,0.50508-1.1364-0.37881-0.50508-1.5152-0.88388,0.25254-0.88389,2.7779-1.7678,1.0102-1.1364-0.50507-1.0102-0.75762-0.63134-2.0203,0.63134-1.1364,1.389-1.5152,0.63135-1.0102,0.25253-0.3788,1.5152-0.63135,0.75762-0.88388,0.25254-0.75762-1.0102-1.389-1.2627-0.75761,0.37881-1.2627,0.37881-0.88388-0.88389-0.63135-1.1364-1.0102-1.0102-0.63135-1.0102,0-1.1364,1.6415-0.88389,1.1364-1.1364,0.25254-2.0203,0.25254-1.0102,3.1567-0.50507,1.6415-0.50508,0.37881-4.4194s0-1.2627,0.63135-1.5152c0.63134-0.25253,1.2627-0.3788,1.2627-0.3788l1.2627,0.63134s1.6415,1.894,2.3991,1.389c0.75761-0.50507,1.894-0.88388,1.894-0.88388s2.3991-1.0102,2.2728-1.6415c-0.12627-0.63134,0.25254-1.6415,0.25254-1.6415l0.3788-1.389,2.1466-2.2728,1.2627-0.75761,2.2728-0.50508,1.6415,0.37881,0.88388,1.1364v0.75761l0.25254,0.63135,1.0102,0.12627,1.6415,0.3788,0.63135,0.50508,0.63134,1.6415,0.75762,0.75761z\",\"name\":\"Udmurt Republic\"},\"pe\":{\"path\":\"M242.06,274.03l-2.28,1.16,0.5,1.5-0.5,3.53,0.5,1.28,1.41,2.41,2.25,1.62,0.65,1.66-1.4,2.12-2.41,1.03-2.87,0.63-1.66,0.87-1.13,1.54,0.5,1.24,0.63,1.38-0.13,1.03-1.9,1.63-0.38,2.4-0.87,1.6-0.13-0.19-1,0.12-1.28,2.5-2,2.29-0.15,1.53-0.88,0.87-2,2.03-1.91,3.41-0.62,3.9-1.28,0.88-2.25,0.38-1.28,0.78-0.63,4.9,2.53,2.66,2.13,2.28,2.53,0.25,2.28,1.5,3.41,4.94,1,0.37,1.28-0.12,1.12-1.25,0.88-1.28,1.03-1.75,1.25-1.66,1.28,0.88,1.5,1.28h2.41l2.03-0.91,0.5-1.75,0.25-1.91,0.87-0.75,0.88-1,0.78-0.5,2.5,2.75h3.69l0.87-1,0.5-1.5,0.25-1.65,0.88-1.25,4.69-0.38,2.15-0.78,0.63-1.5-0.63-0.62-0.12-1.41,1.12-1.38,0.75-1.03v-1.37l-0.5-0.88-0.62-1.03,0.25-1.75,1-1.53,2.03-1.5,3.15-0.5,1.88-1.91,2.28-1.62,2.28-1.66,2.28-1.65,0.88-0.75,0.5-1.25,1-1.78s0.9-1.12,1.53-1.75c0.63-0.64,1.62-1.91,1.62-1.91l1.16-1.37,0.25-1.66-2.41-0.38-2.65-0.75-2.66-1.65-2.75-1.38-2.66-1.28-2.53,0.66-3.15,0.12-3.66-0.9-2.9-1.63-1.63,0.85-0.41-0.22-1.9-1.25-1.38-2.03-1.12-1.13-2.28-0.78-0.13-1.63-1.12-1.28-1.41-1.5-1.91-0.5-2.62-0.25-2.41-0.78z\",\"name\":\"Perm Krai\"},\"sv\":{\"path\":\"m286.13,291.72,1.7678-1.1364,1.1364,1.389,0.88388,2.3991,2.6516,1.5152,2.9042,2.1466,1.2627,2.3991,2.2728,2.7779,0.12627,1.7678,0.63135,2.0203,0.75761,1.5152-0.63134,1.7678-1.894,1.894-0.63135,1.7678-0.25253,4.7982,0.3788,2.7779,0.63135,1.0102-1.0102,2.9042-1.5152,1.7678-0.37881,2.3991,2.0203,1.2627,2.3991,2.0203,0.75761,2.0203,0.12627,2.6516-0.63134,1.6415,0,2.9042,0.75761,2.3991-0.25254,1.894s-0.88388,0.88388-0.88388,1.389c0,0.50508-0.50508,2.7779-0.50508,2.7779l-1.2627,1.2627-2.0203,0.12627-1.1364,0.88388h-3.0304l-1.5152-0.88388-2.1466,0.25254-1.389,1.1364-0.88388,1.389-0.25254,2.9042-0.75761,1.1364-1.1364,1.0102-1.7678,0.50508-3.0305,0.25254-2.0203,0.25254-1.0102,0.88388-1.894-0.37881-1.389-1.1364-1.894-1.894-2.5254-1.6415-1.5152-0.63135-2.2728,0.37881-1.894,0.3788-1.389-0.12626-1.6415-1.389-1.894-2.2728h-2.2728c-0.50508,0-1.6415-0.75761-1.6415-0.75761l-4.672-3.1567-1.6415-1.7678-2.9042-0.3788-1.389,0.12627-0.88389,0.12627-1.2627-1.2627-3.9143-3.283-3.1567-3.0305-0.50507-1.389,2.0203-2.9042,1.389-2.7779,0.75762-0.25253,1.6415,1.1364,1.1364,0.75761h2.7779l1.5152-1.389,0.50507-1.7678,0.12627-1.7678,2.5254-1.7678,1.7678,2.0203,1.2627,0.63134h2.3991l1.6415-1.1364,0.75761-2.0203,0.50508-1.894,3.7881-0.75762,2.5254-0.3788,1.389-1.2627v-1.0102l-0.88388-1.389,1.7678-2.1466,0.25254-1.1364v-1.389l-1.0102-1.6415,1.0102-2.5254,2.1466-1.6415,3.283-0.88388,1.1364-0.75762,8.0812-6.1872,0.88388-1.6415,1.6415-2.7779,2.1466-2.5254z\",\"name\":\"Sverdlovsk Oblast\"},\"ku\":{\"path\":\"m255.69,383.01,2.3991,1.894,3.283,0.88388,4.2932,1.2627,3.1567,0.75762,4.1669-0.50508,2.5254,0.25254,2.9042,1.0102,3.5355,1.1364,3.5355,0.88388,3.283,1.0102,3.4093-0.12627,2.3991-1.2627,3.6618,0,1.0102-1.5152,0-1.894-1.5152-2.1466-1.389-2.7779s-1.5152-0.12627-2.1466-0.37881c-0.63135-0.25254-2.2728-1.6415-2.2728-1.6415l-0.75761-3.1567-1.389-1.7678-2.6516-1.2627-1.5152-1.6415-1.2627-2.2728-1.6415-1.5152-1.389-1.2627-1.0102-1.389,0.50508-2.3991,1.389-1.2627,1.1364-1.894-2.5254,0.37881-3.0305,0.12627-1.389,0.50507-0.75762,0.50508-1.2627-0.37881-2.0203-1.0102-1.7678-1.7678-2.0203-1.389-1.7678-0.75761h-1.2627l-3.0305,0.63134-1.7678-0.12627v1.1364l0.63135,0.88388-0.50508,2.2728v2.2728l-0.25253,2.1466-0.88389,1.1364-2.5254,1.1364-1.389,1.1364-1.5152,1.2627-1.7678,0.88388-0.50507,1.2627,0.63134,1.1364,1.894,1.894,1.389,1.389,0.63134,1.7678v1.894l-0.50507,1.7678z\",\"name\":\"Kurgan Oblast\"},\"ko\":{\"path\":\"m224.63,259.27,2.1466-0.63134,0.63134-0.88388,1.894,0.12627,1.6415,1.894,2.1466,0.25254,2.1466-0.50508,1.5152-1.894,0.50508-1.5152-0.63135-0.88389,0.63135-1.5152,2.1466-1.2627,4.5457-1.894,2.6516-1.1364,0.25254-1.5152-0.50508-2.5254-2.1466-0.88389-3.283,0.12627-2.3991,1.6415-2.3991-0.75761s-0.50508-1.0102-1.2627-1.0102-1.5152-0.25253-1.5152-0.25253l0.50507-3.0305,1.7678-0.37881,1.389-1.5152,0.50508-1.894,2.1466-0.50508,2.2728,0.12627,0.63135-1.7678-0.63135-0.63134-0.63134-2.1466,0.63134-1.389,4.5457-2.0203v-1.2627l-1.0102-2.5254-0.63135-1.6415-1.6415-1.7678-0.63134-1.1364,0.25254-1.6415,1.2627-0.63134,1.7678,0.75761,1.5152,2.1466,1.6415,1.5152,2.2728,1.894,2.6516,1.2627,1.7678,1.1364,0.50508,1.7678,1.5152,1.5152,3.1567,0.3788,1.894,1.2627,2.9042,0.50507,0.88388,1.2627h2.0203l1.0102-0.63134-0.25254-1.5152-0.75761-1.5152,0.50507-1.0102,0.88389-1.5152s0.25253-1.1364-0.12627-1.6415c-0.37881-0.50508-1.1364-1.1364-1.1364-1.1364v-0.88388l2.7779-3.283,3.1567-2.1466,1.894-2.0203,1.0102-0.88388,2.3991,0.63134,3.4093,0.12627,2.5254,0.75762,4.2932,0.50507,2.1466,0.63135,3.283,0.12627,2.3991-0.50508,1.5152,0.12627,0.12627,1.894,1.2627,1.0102,2.1466,2.1466,5.3033,4.672,7.4499,4.672,6.4397,3.7881,5.177,3.0305,5.5558,3.283,2.7779,1.894,2.2728,0.25254h3.283l2.1466-1.0102,2.5254-2.3991,1.6415-1.2627,2.7779,0.25253,2.3991-0.12626,2.0203-0.63135,1.5152-0.88388,1.6415-0.37881,3.1567,0.12627,1.6415,0.25254-0.50508,1.5152-0.88388,1.1364-1.1364,0.63134-0.50508,1.894,1.2627,1.7678,1.2627,1.389,0.12627,1.894-1.1364,1.389-0.88388,0.25254-0.75762,1.389-2.0203,0.25254-2.3991-0.12627-2.1466,0.88388-2.5254,1.389-1.389,1.1364-3.0305-0.12627-2.1466-0.50507h-3.1567-2.0203l-1.0102,0.3788-1.389,1.5152-0.75762,0.88389-2.1466,1.6415-1.5152,0.50508h-2.3991l-2.3991-0.25254-1.5152,0.50508-2.9042,2.0203-2.2728,1.2627-1.5152,1.0102-1.5152,0.3788-1.2627-0.12626-1.2627-1.0102-0.12626-1.894-0.63135-1.389-1.6415,0.88388-1.5152,1.389-1.0102,1.2627-0.88388,0.50508-1.2627,0.50507-0.75762,0.37881-0.12627,1.7678-0.3788,1.7678-0.63135,1.389-0.88388,1.1364-1.0102,1.6415-1.894,1.6415-1.6415,1.389-1.2627,0.75762-2.7779,3.283-1.894,2.6516-1.1364,3.0305-0.50507,1.6415-1.5152,1.6415-2.0203,0.88388-1.5152,0.63134-1.7678,1.0102h-2.2728l-3.1567-1.0102-3.1567-1.6415-4.4194-2.1466-0.75761-0.3788-2.5254,0.50507h-3.283l-3.0305-0.88388-2.9042-1.389-1.0102,0.25254-1.6415-0.12627-1.5152-1.2627-2.2728-2.3991-1.894-0.88388-0.63135-1.5152-2.2728-3.0305-5.8084-1.1364-1.389-0.63134-1.7678,0.63134-0.75761,0.75762v0.75761l0.37881,0.88389v1.6415,1.0102l-0.50508,0.3788-1.389-0.63134-0.88388-0.37881-1.1364,0.25254-1.5152,0.88388-1.5152,0.50508-1.1364-0.25254-0.88389-1.389-0.88388-0.63135-2.2728-0.88388-6.0609-1.1364-1.2627,0.25254-1.1364,1.1364-0.63135,1.5152-1.1364,0.37881-1.6415-1.389v-1.1364l1.0102-1.389,0.50507-0.75761-0.50507-1.0102-1.1364-1.0102-1.1364-1.0102-0.3788-0.75761,1.5152-1.2627,1.1364-2.5254,1.6415-1.0102,1.6415-0.3788,1.894-1.2627,0.88388-2.3991,1.2627-1.2627z\",\"name\":\"Komi Republic\"},\"mu\":{\"path\":\"m217.31,136.92,1.1364-1.5152,1.5152-0.75761,2.9042,0,4.2932,0.12626,2.1466-0.50507,2.5254-1.6415,0.88388-2.0203,0.12627-3.5355,1.5152-3.4093,1.0102-1.0102,4.7982,0,2.3991-0.63134,1.0102-1.2627,1.7678-0.12627,2.3991,1.0102,3.0305,1.894,2.2728,1.894,2.6516,0,2.2728-0.25253,0.25254,2.3991,1.894,0.3788,1.7678,1.0102,0,2.2728,0,1.7678-1.0102,0.63134-1.5152-0.3788-0.75761-1.1364-0.25254-0.63134-0.88388,1.0102-0.25254,0.63135,0.50508,1.1364,1.1364,0.88388,0.50507,0.75762-0.3788,1.0102-1.0102,0.63134,0,0.75762,1.1364,1.2627,0.88388,1.5152,0.88388,1.7678,2.0203,2.1466,0.75761,1.7678,0,1.7678,0,1.1364-0.50507,1.1364-0.25254,2.0203-0.12627,5.5558,0,5.5558-0.75762,1.389-0.25253,1.894,0.63134,0.88389,0.63135,1.0102-0.12627,4.0406,0,3.5355-0.63135,1.389-1.7678,1.1364-0.88389,0.88388,0,1.0102-0.25254,0.88389-1.1364,0.88388-2.7779,0.75761-3.6618,0.12627-3.1567,0.50508-1.6415,0.37881-2.5254-0.50508-2.0203-0.75761-1.894-1.389-1.894-2.2728-1.7678-2.2728-1.1364-1.894-0.63135-2.2728-0.3788-2.3991-1.2627-2.6516-1.1364-2.0203-0.3788-1.6415-0.37881-3.9143,0-1.7678,0-1.389-0.88388-0.88389-0.12627-2.9042,0-2.1466,0.75761-1.5152,0.12627-1.1364,0-1.5152-0.88388,0-0.63135,0.88388-0.88388,1.389-0.75762,1.894-0.25253,0.63135-3.5355,0-2.6516-0.25254-0.75761-1.5152,1.389-2.0203,1.1364-0.75761,0.25254-1.0102-1.7678-2.2728-1.5152-1.7678-1.2627-2.7779-1.2627-1.2627z\",\"name\":\"Murmansk Oblast\"},\"kl\":{\"path\":\"M216.94,136.91l-2.28,1.53,0.12,1.62-1,2.28-1.9,2.04-1.88,0.87-4.31-0.13-0.88,1-2.28,2.16h-2.91l-2.4,0.38-0.13,4.03-0.62,1.9-2.91,0.38-1.87,0.25,0.12,1.4,0.88,1.5-1.78,1.29-1.25,0.5-3.41-0.91-1.66,1.16-0.37,2.9-0.13,4.16-1.25,2.28-2.65,1.62-3.41,1.16-8.72-0.12-3.53-0.91-5.19-0.75-4.28-0.75,0.88,1.87-0.13,1.54,0.07,0.53-0.94,5.65-2.53,1.5-2.03,3.32-2.91,1.87-0.13,1.66,2.66,1.25,1.91,0.75,1,2.4,2.9,0.25,5.07-0.75,1.65-0.9,2.25,0.53,1.78,1.37,1.38-1.62,1.12-0.78,1.78,4.69,1.5,0.62,2.91,1.53,0.06,0.69-0.12,2.69,0.06,1.78-1.63,1.53,1,1.12,2.29,0.5,1.75-0.62,2.53-1,0.62-0.5,1.91,1.5,1,1.9,1.03,1.88,3.16,0.25,3.28-3.03,0.75-1.5,1.25-1.38,2.4-1.28,2.03-1.75,0.5-1.15-0.37-1.25-1.91-0.63-1-1.03,0.13-1.63,1.37-2.4,1.78-1.91,1.66-1.87,1.25-2.16,1.38,0.25,1.78,1.53h1.9l0.88-0.53,0.12-2,1.5-2.03,0.25-1.75-0.25-3.16-0.5-1.53,0.63-1.78,1.4-0.87,1.38-0.63,3.03-2.53,0.5-1.13,0.53-1.28h1.38l3.4-0.62,2.16-1,1.5-1.28v-1.88-3.4l0.25-2.54,1.03-0.87v-1.16l-0.12-2-0.78-1.15-2-0.38-1.41-0.37-0.63-0.88v-0.75l0.63-1.15,1.28-1,0.75-0.63-0.38-1.03-1.65-2.37-1.88-2.29-1.4-2.15-1.75-2.53z\",\"name\":\"Republic of Karelia\"},\"vo\":{\"path\":\"m185.36,208.76c0.12627,2.5254-1.389,5.0508-1.389,5.0508l-1.5152,1.894s-0.3788,1.0102-0.3788,1.7678c0,0.75762,0.12626,1.389,0.12626,1.389s0.63135,1.389,1.894,2.1466c1.2627,0.75761,2.0203,2.7779,2.0203,2.7779l1.0102,1.894,1.5152,1.2627,1.2627,1.0102,1.1364,1.894,1.2627,0.37881,3.1567,0.50508,1.5152,2.2728,1.0102,1.894,1.7678,0.63135,0.25254,0.63135,1.0102,2.2728,1.2627,0.75761,2.6516,0.25254,1.5152,0.12627,0.50507,2.7779,1.2627,2.0203,2.7779,1.389,1.389,0.12627,1.0102-0.63134,1.389,0.12627,1.0102,0.50507,0.75761,1.0102-0.63134,1.5152-0.75762,1.389,0.25254,0.75762,1.2627,1.1364,0.75761,0.50508,1.0102,0.50507,0.3788,0.63135v1.0102l-1.5152,1.5152-2.0203,0.63135-2.0203,0.75761-4.2931-0.25254-1.2627,0.88389,0.25253,1.1364,0.88389,1.2627v2.6516,1.1364l-1.0102,1.1364-0.75761-0.63134-1.1364-1.0102-0.37881-1.5152-1.0102-0.12626-1.6415,1.0102-1.0102,1.0102h-1.7678l-3.0305-1.5152-2.1466-2.1466-2.0203-1.1364-1.894-1.6415-2.0203-2.7779v-1.894l-1.894-2.7779-2.5254-2.2728-1.5152-2.0203-1.2627-1.7678-0.63135,0.75761-1.6415,0.12627-1.6415-0.25254-2.2728-1.894-0.88388-0.50508-1.2627,0.63135-2.7779,1.7678-0.63135,0.37881-1.2627,0.12627-0.88388-0.50508-0.50508-1.2627-0.63134-1.894,0.25254-4.0406-0.50508-2.5254-0.50508-1.2627-1.2627,0.12627-1.2627,0.37881-0.88388-0.25254-1.389-1.2627-1.6415-1.7678-4.0406-1.0102-1.2627-1.1364-0.50508-1.0102,0.63135-2.0203-0.50508-0.88388-1.0102-0.75761-1.1364-0.63135-1.894-0.37881-0.25254-0.12627,0.50508-2.7779-0.50508-1.6415-0.63134-1.2627-0.88388-0.88389-0.37881-0.50507-0.12627-1.0102-0.25254-1.5152,0.63135-0.88388,0.75761-0.88388,1.389-0.25254h1.6415l0.88388,1.2627,1.0102,0.88388,1.1364-0.50507,0.25253-1.1364,1.2627-0.25254,1.1364-0.63135,0.75761-1.1364,0.12627-1.5152,3.283-3.6618,1.2627-0.88388h1.7678l2.0203-0.37881,1.389-0.75762,0.88388-0.63134h1.1364l1.5152,0.88388h1.2627l0.88389,0.75762,0.50507,0.88388,1.389,0.63134h1.1364l1.389-0.3788,1.5152-0.50508,1.1364-0.37881,0.63135-0.25253,0.88388,0.12627,1.0102,0.88388,1.2627,1.6415,0.50507,1.2627z\",\"name\":\"Vologda Oblast\"},\"ar\":{\"path\":\"M391.06,151.03l-3.56,1.06-2.16,0.91-3.56,0.19-1.59,0.87s-1.26-1.07-1.97-1.25c-0.72-0.18-0.91,1.1-0.91,1.1l-1.78,2.65-2.69,1.63-3.03,0.87-2.31,1.78s-2.15,0.37-3.22,0.72c-1.07,0.36-2.5,0.19-2.5,0.19l-1.59,0.72,1.06,1.78-2.16,1.25,0.38,0.72,1.25,1.44,1.78,1.59,1.78,1.78,0.91,1.63,1.4-0.72,0.91-1.97,2.16-0.72,1.25-0.53,1.93-0.19,0.91-1.59h1.97l1.25,0.87,1.59-1.25,1.1-1.25,2.65-0.15,0.72-0.57,3.41,0.72,1.78-1.06,0.34-1.44,2.69-0.34s1.07-0.01,2.5-1.44l0.72,1.06,2.84-0.68s1.98-0.19,2.69-0.19,3.03-0.38,3.03-0.38h2.31l2.35,1.25,1.78,0.91,1.25-0.72,0.72-0.87,4.28,1.06,1.97-1.44,3.22,0.19,4.09-0.72,1.25-1.59,1.97-2.88s-1.26-0.89-1.97-1.25-2.69-1.44-2.69-1.44l-3.22,0.57-4.43,1.59-4.32-0.91-2.5-0.15-3.18-0.72-1.63-0.91-1.59-1.78-1.44,0.72-1.97,1.06-2.5-0.15-3.22-0.91-2.5-0.72zm-35.53,14.47l-2.5,0.53-1.78,1.63-2.5-0.38s-1.44-1.06-1.44-0.34v1.78l0.72,1.59-2.12,1.25-2.88,1.1-1.06,1.25h-2.16l-0.72-1.1-1.59-0.87-2.69,2.12-0.15,3.03,1.93,2.69,1.44,2.16s1.26,2.14,0.91,3.03c-0.36,0.89-4.28,2.5-4.28,2.5l1.06,2.5,1.25,1.59v1.97l2.31,0.53,2.88,1.97,2.12,2.31,1.97,0.38s1.06-1.07,1.06-1.78c0-0.72-0.15-4.48-0.15-5.38,0-0.89,1.59-8.37,1.59-8.37l0.34-1.44,4.13-2.69s0.88-1.07,2.31-1.97c1.43-0.89,4.66-3.03,4.66-3.03l1.78-1.4s0.71-1.64,0-1.82c-0.72-0.17-1.62-0.53-2.16-1.25-0.53-0.71-3.03-2.65-3.03-2.65l-1.25-1.44zm-132.28,14.34l-0.63,0.63-2.28,0.25-0.87-0.13-1.78,0.91v1.38l-0.63,1.65-1.15,0.75-0.13,1.38,0.91,0.78,0.87,0.87-0.12,1.25-1.25,1.28-1.66,1.5-1.65,0.13-1.38-1-0.62-1.53-1.41-2-1.25-1.03-2.03,0.53h-1l-2.41-1.66-1,0.38-1.66,2.15-1.37,2-1.66,1.78-1.25,2.66,0.38,1,1,1.28,1.78,0.25,0.12,1-0.12,1-2.78,2.41-2.16,0.87-1.87,3.03-2.53,2.53-2.91,0.5-1.13,0.13-0.5,0.91-0.28,1.87-0.87,2.16-1.75,2.03-0.13,1.87,1.25,2.79,1.5,1.28,2.04,3.53,3.78,4.15,1.28,0.75,3.15,0.38,0.38,0.65,1.37,1.38,1.66,2.53,1.38,0.5,0.5,1.66,0.9,1.5,3.28,0.5,1.63,0.25,0.78,1.4,0.37,2.13,0.75,1.15,2.41,0.88,1.5,0.75,1.28-0.5,1.13-0.25,1.37,0.75,0.91,1.66-1.03,1.25-0.13,1.53,0.66,1,1.25,0.75,1,1.03,1.03,0.62,0.75-0.37,1.25-0.25,1.41,0.5,1,1.37,0.5,0.91,0.24,2,0.26,1.03h0.65l0.88-0.16,0.87-0.5,0.63-0.37h1.03l0.75,0.75,0.62,0.91,0.88,0.25,1.4,0.25,1.88-0.5,1.41-0.5,1.37-1.79v-0.87l-0.37-0.66-0.26-0.5,0.26-1,0.5-0.5,2.78-1.28,2.4-1,1.66-1.12,1.87-0.78,0.5-0.75,0.13-1.38-0.75-1.53-1.13-0.87-2.15-0.13h-1.5l-1.53,0.5-1,0.75h-1.28l-0.63-0.12-1-1.13-1.53-0.37-0.75-0.38,0.25-1.53v-1.13l1.66-0.5,0.74-0.78,0.76-0.87,0.62-1.63,0.53-0.37,1.5-0.53,1.78,0.25,1-0.5-0.12-1.38-0.5-0.87-0.5-1.66,0.25-0.88,0.87-0.62,1-0.53,1.41-0.63,1.37-0.75,0.38-0.75v-0.5l-0.88-1.9-0.75-1.41-0.9-1.62-1-0.75-0.63-1.28,0.38-1.88,0.62-0.5h1.28l0.88,0.38,1,0.87,1.41,2.16,2.65,2.37,1,0.91s1.65,0.49,2.28,0.75c0.63,0.25,1.38,1,1.38,1l0.5,0.62,0.37,1.03,0.53,1,1,0.63,1.38,0.37h1.41l1.12,0.53,0.88,0.88,2.03,0.5h1.37l0.28,0.88,1,0.53,1,0.25,0.88-0.54,0.78-0.74-0.13-1.26-1.03-1.03,0.38-0.87,0.78-1,0.37-1.53-0.25-1-1.15-0.75-0.13-1.28,0.91-0.88,3.15-3.28,1.88-1.12,1.91-1.79,0.25-1.25-0.63-0.5-1.65-0.9-1.63-1-2.16-0.25-1.25,0.62h-1.4l-1.5-1.12-1.03-1.78-0.75-1.75-1.5-3.16-1.41-2.28-0.75-1.41-0.88-2.25-0.12-1.15-2.41,0.25-0.75-0.63-1.53-1.12s0.25-0.5,0.88-0.5,1.02-0.41,1.53-0.66c0.5-0.25,0.25-0.87,0.25-0.87s-0.37-1-0.88-1.76c-0.5-0.75-0.77-0.77-1.28-1.15-0.5-0.38-0.75-1.75-0.75-1.75l-1.25-0.41-2.03-0.5-1.66,0.13-1.5,0.53-1.9,0.12-0.88-0.65-1.62-1-2.03-0.13h-2.78-2.53l-1.63,0.75-0.91,0.75-0.37,1.66-1.13,1.37-1.12,2.04-1.28,0.87h-2.41c-0.63,0-1.75-1-1.75-1l-1.03-1c-0.51-0.51,0-2.03,0-2.03s0.13-1.53,0-2.16-1.5-1-1.5-1l-2.03-0.87s1.65-0.78,2.16-1.16c0.5-0.38,0.37-1,0.37-1v-2.28c0-0.63-0.25-2-0.25-2l-0.75-1.91zm110.16,1l-0.19,1.1,0.53,1.78,1.44,0.72,0.53-0.72v-1.63l-0.38-1.25h-1.93zm-28.22,6.19l-2.35,0.78-1.4,2.07-2.88,1.43-0.25,1.07,1.78,1.43,2.13,0.97,3.22-0.44,3.5-0.9,0.25-1.6-0.78-1.96-1.1-1.88-2.12-0.97z\",\"name\":\"Arkhangelsk Oblast\"},\"tu\":{\"path\":\"m299.02,389.7,2.0536,0.80357,2.1428,1.1607,1.6072,1.3393,1.6071,1.5179,1.7857,0.71428,2.3214,0.17858,0.89286-1.0714,1.6071-1.875,0.53572-2.3214,0.625-2.1429,2.2321-1.7857,1.875-0.44643,1.25-2.5,1.6964-1.0714,2.9464,0.26786,1.6071-1.6072s0.625-2.3214,0.53571-2.6786c-0.0893-0.35714-0.80357-2.5893-0.80357-2.5893l-0.89285-1.875-0.625-3.3036-0.71429-2.2322v-1.7857l1.5179-1.9643,2.2321-2.5,1.4286-1.4286,3.125-0.26786,0.35714,1.4286-0.89285,1.6071-1.6964,1.6964-0.17857,1.25,2.5,0.35714,4.0178,0.35714,1.9643,1.6072,3.0357,1.7857,1.5179-1.25,2.9464-0.17857,2.1429,1.4286,3.3928,1.0714s2.5-0.98214,2.9464-1.1607c0.44643-0.17857,3.5714-0.44642,3.5714-0.44642l0.89286-0.98215-0.53572-1.0714-1.6964-1.25-2.9464-2.2321-1.0714-1.4286s-1.6964-0.44643-2.3214-0.44643-2.6786-0.80357-2.6786-0.80357l-0.17857-2.6786-0.26786-2.4107-1.3393-1.3393-0.44642-2.2321-0.53572-3.5714-0.35714-0.89286-2.4107-2.7679-1.1607-0.71428s-2.6786-0.26786-2.9464-0.26786h-5.0893l-0.98215-0.26786s-0.625-1.5178-0.625-1.875c0-0.35714-0.98214-1.5178-0.98214-1.5178l-1.875-0.35715-1.25,1.25-2.4107,1.875-2.1429,0.89286h-3.0357l-4.6428,0.0893-2.9464,0.26785s-1.4286,0.53572-1.7857,0.625c-0.35714,0.0893-4.375,0.0893-4.375,0.0893l-3.0357-0.0893-1.4286,0.35715-0.89286,1.5178-0.53571,2.3214-0.89286,1.3393-2.3214,0.71428-1.6071,0.53572-1.5179,0.35714-1.7857-0.17857-1.3393-0.625-1.4286,0.17857c-0.35714,0.17857-1.6964,1.0714-1.6964,1.0714l-1.1607,2.1429-0.35715,2.4107-1.6071,2.3214-2.1429,2.5893-0.98214,1.5179,0.26786,1.25,0.71428,1.3393,1.5179,1.25,1.25,1.6071,1.6964,1.875,1.0714,1.6964s3.0357,0.98214,3.0357,1.5179c0,0.53571,1.6964,2.9464,1.6964,2.9464l0.625,1.875,1.6071,1.4286,1.875,0.71428,1.0714,0.80357,1.4286,2.3214,1.0714,1.4286v1.6072z\",\"name\":\"Tyumen Oblast\"},\"ne\":{\"path\":\"m260.27,198.54,1.6071-0.89286,1.4286-1.1607,2.0536-1.0714,1.1607-1.25,0.625-3.3929,1.1607-1.6071s1.4286-0.80358,2.4107-1.0714c0.98215-0.26786,2.3214-0.26786,2.6786-0.26786,0.35714,0,1.5178-0.98214,2.0536-1.5179,0.53571-0.53571,3.0357-2.5,3.0357-2.5l0.71429-1.0714v-2.2321l1.25-1.9643s0.89285,0.17857,0.98214,0.625c0.0893,0.44642,0.26786,1.5178,0.625,1.6964,0.35714,0.17858,1.875,1.4286,1.875,1.4286l1.6964,1.1607,0.98214,0.89286-0.0893,1.3393-0.625,1.4286-0.44643,1.7857v1.6964l-0.26786,1.0714-0.44643,0.80357-0.26786,1.25-1.25,0.71428-1.3393-0.625-1.25-0.98214-0.625-0.80357-2.3214-0.53572h-3.0357c-0.44643,0-2.1429,1.1607-2.1429,1.1607l-0.80357,1.4286,0.17857,1.0714s0.53571,0.89286,0.625,1.25c0.0893,0.35714-0.71429,1.1607-0.71429,1.1607l-0.89285,1.6072s-0.26786,1.1607-0.0893,1.4286c0.17857,0.26785,0.625,0.80357,1.1607,1.25,0.53572,0.44643,1.875,1.5178,2.1429,1.6964,0.26786,0.17857,1.875,0.89285,1.875,0.89285s2.3214,0.17857,2.8571,0.17857c0.53572,0,1.9643-0.26785,1.9643-0.26785s1.5179-0.98215,1.875-1.1607c0.35714-0.17857,1.9643-1.1607,1.9643-1.1607s1.0714-0.44643,1.4286-0.35714c0.35714,0.0893,1.3393,0.98214,1.3393,0.98214l2.3214,0.17857s0.35714-0.44643,0.71429-0.80357c0.35714-0.35714,0.53571-0.71429,0.98214-0.35714,0.44643,0.35714,1.875,1.3393,1.875,1.3393l1.7857,0.44643h5.0893l2.5893,0.0893s0.80357,0.80357,1.25,0.89285c0.44642,0.0893,3.3928,0.53572,3.3928,0.53572l1.5179,1.4286,0.71429,1.9643,1.1607,0.17858,0.71429-1.5179,0.89285-1.0714,1.875-0.17857,0.89286,0.53571,2.1429,0.17857,2.5893,0.44643-0.44643,0.80357-0.98214,0.80358-1.6964,0.625-0.80357,0.98214-0.71428,0.98214-1.6964,0.71429-0.26786,1.0714,1.3393,0.98214,1.25,0.53571,0.625,2.0536,0.71428,0.35715,1.6964-0.80357s1.3393-0.89286,1.6071-0.89286c0.26786,0,3.3036,0.53571,3.3036,0.53571l2.6786,1.3393,1.5178,1.3393,1.4286,0.89286,4.4643,0.17857,0.71429,0.71429,1.5178-0.26786,2.5893-0.35714,1.7857-1.3393,0.625-1.7857s0.53572,0.625,0.53572,1.1607c0,0.53572-1.6964,2.7679-1.6964,2.7679l-0.71429,1.7857v1.0714l-1.1607,1.1607-0.89286,0.625-0.44643,0.98214,0.44643,0.80357h1.4286l0.80357-1.6071,0.17858-0.53572,1.5178-0.0893,1.5179,1.25,2.3214,0.35714,1.1607-0.89286,1.3393-1.1607,0.53571-0.89286-0.71428-1.0714-0.35715-1.4286,1.5179-1.1607,0.71429-1.875-0.53572-1.6964-1.25-0.80357-0.71428-3.3929-0.26786-3.125s-0.26786-0.89286,0.0893-1.25c0.35714-0.35714,2.2321-1.6964,2.2321-1.6964l1.3393,0.17857,1.1607,1.4286,1.0714,1.9643,0.35714,2.1429-0.89286,3.3036,0.89286,1.0714,2.8571,2.4107,2.7679,2.8572,3.3929,2.5893,2.1428,3.3036,1.6964,3.3929,0.80357,1.875,0.17858,1.6071-1.0714,1.1607-0.98215,2.0536-0.98214,1.5179h-2.5c-0.44643,0-3.6607-0.17858-3.6607-0.17858l-2.1429,0.98215-2.7679,0.71428h-3.0357l-1.7857-0.17857-2.4107,1.875-3.0357,2.4107-1.6072,0.53571-2.7678-0.0893-2.0536-0.53571-4.2857-2.4107-23.036-13.929-7.6786-6.875-1.25-1.1607v-1.3393l-0.98214-0.625-2.4107,0.625-5.0893-0.44642-5.625-0.98215-5.1786-0.80357-3.125-0.26786-4.1071-2.3214-2.0536-0.44643-1.7857,0.625-1.7857-0.26786-1.5179-1.7857-4.2857-8.4822-0.98215-2.4107z\",\"name\":\"Nenets Autonomous Okrug\"},\"om\":{\"path\":\"m358.39,368.89,0.71428,2.5-1.25,1.6071-1.25,1.9643,0.53572,1.6071,0.71428,1.9643-1.25,1.9643s-1.0714,1.25-1.0714,2.1429c0,0.89286,0.17857,3.0357,0.17857,3.0357l1.7857,1.6072,0.35714,2.3214-0.53571,3.3929-1.9643,0.89286-1.25,1.6071,0.71429,2.3214-0.35715,1.9643-3.9286,0.17857s-1.4286-0.89286-2.3214-1.0714c-0.89285-0.17857-3.3928,2.8571-3.3928,2.8571l-2.5,2.1429-0.89286,4.2857,0.53571,0.89286,1.9643,2.1429,0.35714,2.6786-1.6071,2.6786-1.0714,1.7857-0.17857,3.0357-2.5,2.1429s-2.3214,1.0714-3.0357,1.0714h-4.8214l-1.6072-0.71428c-2.1428,1.4286-3.75,0-3.75,0l-1.6071-0.71429-1.9643-0.35714h-1.0714l0.35714-1.7857,1.7857-1.0714,0.71429-1.4286-2.3214-1.25-2.1429-2.3214-1.9643,0.89285-0.89286-0.71428v-3.75l-1.4286-0.89286-2.8571,0.35714-2.8572-0.89285-0.89285-0.53572-0.17857-2.1428,2.1428-2.6786,0.71429-2.3214,0.35714-2.6786v-4.1071l0.71429-2.1429,1.4286-3.9286,1.6071-2.5,2.3214-0.53571,1.0714-1.25,1.0714-1.7857,1.6071-0.89285h2.6786l1.6071-1.4286,0.89286-3.9286-1.4286-3.2143-0.71429-3.0357-1.25-3.3928,0.35715-1.6072,4.4643-4.6428,1.0714-0.89286h2.6786l0.17857,1.6071-1.25,1.6072-1.7857,1.25-0.17857,1.4286,1.4286,0.35714,3.2143,0.35714,2.3214,0.17857,2.1429,1.4286,1.9643,1.4286,1.0714,0.35714,1.0714-0.71429,1.9643-0.35714,2.3214,0.35714,3.5714,1.6072h2.5l2.1428-1.0714h2.1429z\",\"name\":\"Omsk Oblast\"},\"ht\":{\"path\":\"m329.64,260.32,0,3.75-0.53572,3.2143-1.6071,2.3214-2.3214,2.3214-0.89286,1.25,1.9643,1.9643,1.7857,2.3214,5,1.9643,4.8214,0.17857,3.5714,1.4286,2.3214,2.6786,0,1.4286-2.1429,1.7857,1.4286,1.4286,2.3214,2.8572,1.9643,1.0714,2.1428-1.0714,1.7857-0.89286s1.6071,0.71429,1.9643,0c0.35715-0.71429,0.89286-2.1429,0.89286-2.1429l1.6071,2.1429,1.4286,2.8571,1.9643,1.6072s0.35714,2.1428,0.35714,2.8571v4.6429l1.9643,3.3928s0.35714,0.17857,0.71429,0.89286c0.35714,0.71429,0,2.1429,0,2.1429l1.0714,1.25,2.5,0.53571,3.75,0.71429,1.4286,0.89285s2.8571,2.1429,3.5714,2.6786c0.71429,0.53571,1.25,1.6071,2.1429,1.9643,0.89286,0.35714,3.5714,0.53572,3.5714,0.53572l2.8571,0.35714,0.89286,1.0714s0.35714,1.6071,0.71428,2.6786c0.35715,1.0714,1.4286,1.7857,1.4286,1.7857l3.0357,0.17857,1.7857,0.53572,0.35715,1.9643,0.35714,1.4286,1.0714,2.5c1.9643,0.17857,2.5,0.17857,3.5714,0.17857s3.3928,1.0714,3.3928,1.0714l1.9643,0.71428,2.8571,0.35714,2.8572-1.0714,3.2143-1.9643,3.0357,0.53571,1.9643,2.6786s0.35714,1.7857,1.0714,2.1428c0.71429,0.35715,2.8571,0.53572,2.8571,0.53572l2.3214,1.6071,0.71429,2.3214,1.9643,0.71428,2.6786-0.89285,1.9643,1.6071,1.0714,3.0357v2.3214l-0.35714,1.6072-0.53572,1.9643,3.0357,1.9643,2.5,1.7857,0.35714,2.3214v1.0714l-3.75,1.7857-2.6786,0.53572-3.2143,0.17857-3,0.15-1.61-1.07-1.7857-0.71428-2.3214,0.35714-2.3214,1.6071-2.6786,1.0714-2.1429-1.9643s-2.8571-0.35714-3.5714-0.35714c-0.71429,0-2.3214-1.7857-2.3214-1.7857l-0.89286-1.25-3.9286,0.17857h-3.5714l-1.6071-2.5s-1.25-0.89286-2.1429-0.89286c-0.89286,0-4.4643-1.25-4.4643-1.25l-2.5-2.3214h-1.25c-0.71428,0-2.3214,1.25-2.3214,1.25l-2.5,2.1429-1.7857,2.6786-2.8571,2.5-1.6071,3.3929-4.4643,1.6071-3.5714,0.89286-0.35714,2.1429-0.71429,2.1428-2.6786,1.25h-2.8571l-5.8929-5.5357-3.9286-0.89286-1.0714-1.4286-0.53571-4.1071-1.0714-1.25-1.0714-5.3572-0.53571-1.7857-3.5714-3.2143h-5.5357l-3.0357-0.35714-1.9643-2.8571-1.6071-0.53572-4.4643,3.0357-3.3929,0.71428h-5.1786l-5,0.71429-4.2857,0.53571h-3.5714l-1.4286-0.17857-0.53571-2.8571-0.35714-3.2143,0.89285-3.2143-0.89285-3.2143-2.3214-2.1428-1.0714-0.89286-1.0714-1.0714,1.25-2.6786,1.4286-2.3214-0.17857-2.1429-0.71429-3.2143,0.71429-5.5357,1.4286-1.7857,1.4286-2.1429-0.71428-2.3214-1.0714-3.5714-1.9643-2.6786-2.3214-3.3928-3.3928-2.1429-1.7857-1.9643-1.0714-2.6786,3.3929-2.1429,1.6071-2.6786,2.3214-4.8214,2.1429-2.6786,2.5-1.9643,3.5714-3.3929,1.6071-1.7857,1.7857-3.3929-0.17858-1.7857,0.89286-1.0714,2.1429-1.0714,1.4286-1.9643,1.6071-1.0714,1.25,0.17857,0.89286,2.3214,0.35714,1.0714,1.4286,0.35714,2.5-0.71428,3.0357-1.6071,1.4286-1.25,1.25-1.0714,2.5-0.53572z\",\"name\":\"Khanty–Mansi Autonomous Okrug\"},\"ya\":{\"path\":\"m366.25,234.25,1.4286,2.6786,1.6071,1.7857,1.6072,2.6786,1.0714,3.0357,0.89286,2.8572,3.0357,0.17857,1.7857-1.6072,1.4286-1.25-0.53571-3.2143s-0.89286-1.4286-0.53572-2.3214c0.35715-0.89286,1.7857-2.5,1.7857-2.5v-2.3214l-2.1429-1.6071-1.25-2.5s0.71429-1.6071,1.4286-1.9643c0.71429-0.35714,3.75-2.3214,3.75-2.3214s1.6071-3.75,1.9643-4.4643c0.35714-0.71429,0.35714-4.8214,0.35714-4.8214l0.89286-1.4286,7.5-2.1429,4.8214-3.5714,5.7143-6.0714,3.2143-2.1429,2.1428-0.71429,1.7857,2.3214,3.3928,0.35714,1.7857,1.25,1.0714,2.6786,0.17857,1.7857-0.89286,3.75-2.1429,2.6786-2.3214,2.8571-3.0357,1.6072-1.25,1.0714-0.35714,1.9643,1.0714,2.1429,0.17857,2.8571-0.89286,2.8571-2.1429,2.6786-1.7857,3.2143-2.6786,4.4643-1.25,3.5714-0.89286,2.1429-0.17857,2.5,0.35714,2.6786,0.71429,2.3214-0.71429,1.4286-3.0357,2.1429-1.0714,3.2143-0.89286,3.2143h-3.2143l-2.3214,1.25-2.1429,3.3929-3.5714,0.53571-2.3214,1.25-1.4286,1.4286h-3.5714l-1.4286-1.0714-1.0714-2.6786-0.71429,0.53572v1.6071l-1.9643-1.4286-0.71428-1.9643-1.0714,0.71429-0.17857,1.9643,1.7857,2.1428,2.5,2.1429,2.5,1.25,3.2143,1.0714,2.1429,1.25,2.1428-0.89286,3.5714-1.7857,3.0357-0.71429,3.75-1.0714,2.3214-3.0357,3.2143-2.6786,3.3929-1.6072,2.1428-1.7857-0.17857-2.1429-0.89286-2.3214-0.17857-1.7857,2.1429-2.1429,4.2857-0.89285h3.3929l1.4286,1.4286,1.25,3.0357v2.8571,3.0357l-1.6071,1.4286-1.25,2.5,0.17857,3.5714,1.7857,1.25,3.2143,0.71428,2.1429,2.8572,1.9643,3.2143,0.53572-0.71428-0.53572-4.1072-2.5-3.2143-3.75-1.0714v-2.8571l2.3214-3.0357s1.7857-0.35714,1.9643-1.0714c0.17857-0.71428,0.17857-3.5714,0.17857-3.5714l-0.89286-3.9286-2.6786-2.6786-2.6786-3.2143-0.89286-1.4286h-2.1428s-0.53572,1.25-1.4286,1.25c-0.89285,0-2.6786-1.25-2.6786-1.25l-1.6071-1.0714-0.53571-2.5,1.4286-3.75,2.3214-3.2143,2.1428-2.6786,3.0357-1.25,0.17857-4.4643-0.17857-3.0357v-3.0357l0.17857-2.3214,1.7857-2.3214,1.4286-1.4286,2.1429-0.35715,3.2143-0.53571,2.3214-2.5,1.7857-1.0714,1.25,2.1429-1.9643,2.3214-0.89285,1.4286-1.0714,4.4643-1.25,2.5,1.25,1.7857,2.6786,2.1429h2.8571l1.4286,2.1428,2.3214,2.5,1.7857,0.35715-1.4286-2.1429v-2.5s-1.25-1.25-1.9643-1.6071c-0.71429-0.35715-3.5714-2.8572-3.5714-2.8572l-1.25-3.5714-0.17857-1.4286s1.9643-0.71428,2.6786-0.71428c0.71429,0,3.2143,0.89285,3.2143,0.89285l0.89285,1.7857,1.6072,0.17857,1.25-0.71429-0.35715-1.9643,0.17858-1.9643,1.4286-0.35714,1.6071,0.71429,1.7857,1.4286,1.25,1.0714,0.89286,1.7857-0.35714,1.7857-2.3214,2.5-3.0357,1.25,1.0714,1.4286,2.6786,2.1428,0.35714,2.8572,0.17857,3.3928-0.71429,2.6786-2.5,1.4286-2.6786,1.4286-3.5714,1.7857-2.1428,2.1429,0.35714,2.6786,1.4286,2.5,1.25,2.5,1.6071,1.0714h3.3929,2.5l1.7857,1.6071,0.53571,3.0357,0.17857,3.3928v2.8572l-1.9643,3.2143-1.7857,2.5h-2.6786l-0.71429,0.53572,0.53572,1.9643,0.71428,1.7857-0.53571,2.5-0.89286,1.25,2.3214,3.3928,0.53572,1.7857,0.35714,1.7857-1.25,1.7857-1.0714,1.25,0.89286,2.1428-0.17857,2.5-1.6072,1.6072,1.6072,1.7857,2.1428,1.9643,1.6072,1.4286-0.17858,3.3928-1.4286,2.3214-0.17857,2.6786,2.3214,2.1429,4.6429,0.89286,0.89285,1.4286-1.4286,2.1429-0.53571,3.3928-0.89286,2.3214-2.6786,1.4286s-0.89286,0.53572-1.6071,1.0714c-0.71429,0.53572-1.7857,2.8572-1.7857,2.8572l1.9643,1.7857,0.17857,2.3214-1.4286,2.1429-1.25,2.5-2.6786,2.3214-2.8572,2.8572-0.89285-1.7857-1.6072-2.1428-1.7857-1.0714-1.9643,0.71428-1.9643-0.71428-0.71429-1.6072-1.25-1.25-2.5-0.89285-2.1428-0.89286-0.71429-1.6071-0.89286-1.7857-1.4286-1.4286-2.8571-0.17857-2.5,1.4286-2.5,1.0714-2.6786,0.17857-4.1072-1.6071-3.5714-0.35714-2.1429-0.17858-0.89286-1.9643-1.0714-2.3214v-1.4286l-3.3928-0.71429-2.3214-0.53571-0.89286-2.5-0.71429-2.3214s1.4286-0.17857-1.0714-0.35714-5.5357-1.0714-5.5357-1.0714l-1.4286-0.53572-3.2143-2.5-2.5-1.6071-2.8572-1.0714-3.2143-1.25-1.25-0.89285-0.17857-2.1429-2.8572-3.9286,0.17857-6.7857-1.25-1.7857-2.3214-2.8571-1.0714-2.1429-0.53572-0.53572-1.0714,1.25-0.53571,0.71429h-1.4286l-2.6786,0.89286-1.25,0.35714-1.6072-0.35714-2.1428-2.3214-1.7857-1.6071,0.53572-0.89286,1.4286-1.6071-0.35714-1.7857-2.5-2.3214-3.0357-1.4286-4.2857,0.35714-3.0357-1.25-2.6786-0.89285-3.3929-4.2857,2.3214-2.5,2.5-3.75,0.17857-5.3571,0.35715-1.4286,3.75-1.0714,2.6786-2.5,1.4286-1.4286h3.75,3.3929l3.9286,0.53571,1.7857-1.25,3.5714-1.6071,3.3929-0.53571,2.5-1.25,2.3214-1.25,0.35714-2.8572-2.1429-2.3214-0.71428-1.25,0.53571-1.6071,2.3214-1.4286,0.35714-1.25,1.92-2.87z\",\"name\":\"Yamalo-Nenets Autonomous Okrug\"},\"kr\":{\"path\":\"M501.66,122.41c-0.45,0.04-1,0.37-1,0.37-0.9,0.72-1.25,0.77-0.94,1.13,0.31,0.35,0.19,0.55,0.9,0.78,0.72,0.22,0.91,0.49,1.44,0,0.54-0.49,0.77-1.24,0.41-1.69s-0.37-0.64-0.81-0.59zm11.56,0.65c-0.22,0.02-0.44,0.11-0.6,0.38-0.31,0.53-0.49,1.57-0.62,1.84s-0.2,0.74-0.78,0.88c-0.58,0.13-1.39,0.54-1.75,0.09s-1.03-1.51-1.25-1.69-1.04-0.74-1.13-0.03c-0.09,0.72,0.19,1.51,0.19,1.91s-0.18,0.99-0.4,1.12c-0.23,0.14-1.06,0.25-1.29,0.56-0.22,0.32-0.62,0.49-0.62,1.16s-0.27,1.67-0.31,1.94c-0.05,0.27-0.32,0.26-0.63,0.75s-1.09,1.87-1.09,1.87,0.89,0.62,1.15,0.85c0.27,0.22,0.42,0.77,0.38,1-0.05,0.22-0.13,1.05-0.53,1.19-0.4,0.13-1.43,0-1.78-0.13-0.36-0.13-1.01-0.48-1.5-0.44-0.49,0.05-1.01,0.23-1.19,0.63s-0.71,0.38-0.13,1.18c0.58,0.81,0.87,1.53,1,1.76,0.14,0.22,0.29,1.51,0.07,1.87-0.23,0.36-1,1.13-1.22,1.53-0.23,0.4-0.44,0.71-0.22,1.16,0.22,0.44,0.66,0.8,1.15,0.94,0.5,0.13,3.66,0.71,3.66,0.71s0.28-0.36,0.81-0.71c0.54-0.36,1.36-0.77,1.85-0.41s0.52,0.8,0.65,1.25c0.14,0.45,0.41,2.02,0.5,2.37,0.09,0.36,0.49,0.58,0.94,1.16s1.59,1.37,2.22,1.59c0.63,0.23,1.05,0.55,1.72,0.6,0.67,0.04,2.85,0.82,2.94,1.09s0.31,1,0.31,1,0.54,0.52,0.81,0.56c0.27,0.05,2.22,0.19,2.22,0.19,1.38-0.76,2.23-0.8,2.5-0.94,0.27-0.13,0.84-0.03,1.37-1.06,0.54-1.03,0.76-1.35,0.63-2.06-0.13-0.72-0.34-0.93-0.87-1.6-0.54-0.66-1.5-1.24-1.1-1.56,0.4-0.31,1.56-0.8,1.88-1.15,0.31-0.36,0.54-1.32,0.4-2.35-0.13-1.02-0.15-2.5-0.47-2.9-0.31-0.41-0.73-0.92-1.4-1.19s-1.23-0.67-1.81-0.53c-0.59,0.13-1.92,0.25-2.19,0.03s-0.62-0.83-0.85-1.5c-0.22-0.67-0.5-1.13-0.5-1.53s1.16-3.63,1.16-3.63,0.71-0.29,0.84-0.56c0.14-0.27,0.36-0.76,0.22-1.66-0.13-0.89-0.39-1.55-1.28-2.09s-2.09-1.72-2.09-1.72v-0.97c0-0.35-0.15-1.73-0.28-2-0.14-0.27-0.48-0.72-0.97-0.72-0.25,0-0.5-0.05-0.72-0.03zm17.72,22.91c-0.13,0.02-0.25,0.07-0.35,0.19-0.4,0.44-0.72,1.12-0.9,1.34s-0.51,0.09-0.91,0-0.89-0.43-1.16-0.03c-0.26,0.4-0.67,0.74-0.71,1.19-0.05,0.44,0.09,1.75,0.09,2.46,0,0.72,0.09,1.8,0,2.6s-0.2,1.3-0.78,1.66c-0.58,0.35-0.91,0.4-1.31,0.93-0.41,0.54-1.13,1.25-1.13,1.88,0,0.62,0.06,1.45-0.66,2.03-0.71,0.58-1.14,0.56-0.96,1.4,0.17,0.85,0.22,0.93,0.84,1.38s2.79,0.63,3.28,0.5,1.26-0.77,1.66-1.22,1.61-0.99,2.28-1.12c0.67-0.14,1.17-0.08,2.16-0.13,0.98-0.04,1.54-0.39,2.03-0.65,0.49-0.27,0.54-0.54,1.43-0.54,0.9,0,1.74,0,2.1-0.31,0.35-0.31,1.35-1.19,1.62-1.5s0.88-1.05,0.97-1.5,0.18-1.3,0-1.75,0.15-1.15-1.19-1.28-1.57,0.07-1.84-0.38c-0.27-0.44-1.03-0.88-1.03-1.37s0.08-1.02-0.19-1.37c-0.27-0.36-0.79-0.81-1.28-0.72s-1.31,0.58-1.53,0.62c-0.22,0.05-0.71-0.09-0.85-0.4-0.13-0.32-0.21-1.11-0.21-1.91s-0.25-1.63-0.25-1.63c-0.34-0.13-0.83-0.43-1.22-0.37zm5.22,20.03c-0.62,0.05-1.16,0.75-1.16,0.75s-1.62,1.95-2.16,2.84c-0.53,0.9-0.86,1.08-1.93,1.25-1.08,0.18-1.82,1.63-1.82,1.63s-0.51,1.23-0.68,2.12c-0.18,0.9-1.25,3.07-1.25,3.07v1.93l0.87,1.63s1.6,1.05,1.78,2.12c0.18,1.08-2.12-0.68-2.12-0.68s-2.14-0.73-3.03-0.91c-0.9-0.18-1.64,0.01-3.07,0.19-1.42,0.18-1.25,0.34-1.25,0.34l0.72,1.63s1.61,1.4,1.25,2.65c-0.35,1.25-1.4-0.53-1.4-0.53l-1.97-0.87s-1.98,0.16-2.88,0.87c-0.89,0.72-1.25,0.91-1.97,0.91-0.71,0-1.59-0.71-2.12-1.78-0.54-1.08-0.91-0.91-1.63-1.44-0.71-0.54-3.2,0-4.09,0s-2.32,1.79-3.75,1.97-1.78,0.53-1.78,0.53l0.34,2.12-1.97,1.1-2.12,0.53-2.16,0.53c-0.71,0.18-2.12-0.19-2.12-0.19l-1.97-0.34-1.44,0.87-0.53,0.57-2.84,0.15-2.16,0.91s-2.49,2.13-4.09,2.31c-1.61,0.18-0.19,0.53-0.19,0.53s1.06,0.91,1.06,1.63c0,0.71-0.7,0.87-0.87,1.4-0.18,0.54-1.45-0.33-2.35-0.68-0.89-0.36-1.25,0-1.25,0s0.2,1.04,0.38,1.93c0.18,0.9,1.06,1.28,1.06,2.35s-0.19,2.12-0.19,2.12,0.53,2.69,0.53,3.41v2.69c0,0.89-0.87,1.59-0.87,1.59s-1.25,0.72-3.03,0.72c-1.79,0-0.91-0.72-0.91-0.72l0.72-0.91-0.53-1.4-1.97-0.38-2.31,1.25-1.78-0.53h-3.22-3.94c-1.43,0-1.95-1.07-2.84-1.25-0.9-0.18-2.88-0.34-2.88-0.34s-2.14-0.02-3.03,0.34-1.97,1.06-1.97,1.06v3.07,3.03s-1.6,0.69-1.78,1.4c-0.18,0.72,0.01,2.68,0.19,3.75,0.18,1.08,1.05,0.72,2.12,1.25,1.07,0.54,2.16,1.25,2.16,1.25l0.53,0.57,0.34,1.78s0.57,1.94,0.57,2.65c0,0.72,1.25,1.97,1.25,1.97s0.68,1.63,0.68,2.35c0,0.71-0.51,1.22-0.87,1.93-0.36,0.72-0.73,1.61-0.91,2.5-0.18,0.9,0,2.16,0,2.16l0.38,2.84s-0.2,2.88-0.38,3.6c-0.18,0.71-0.89,1.42-1.78,1.78s-1.25,2.12-1.25,2.12,0.01,2.7,0.19,3.6c0.18,0.89,0.88,1.42,1.59,1.78,0.72,0.36,1.25,1.78,1.25,1.78l-0.87,1.78-1.78-0.34-1.44-1.78-0.91-1.82v-2.5s-0.54-1.76-1.97-2.65c-1.42-0.9,0.19-1.63,0.19-1.63s1.08-1.25,1.44-1.97c0.36-0.71,1.06-1.78,1.06-1.78s1.8-1.6,2.16-2.5c0.35-0.89-0.38-1.4-0.38-1.4l-1.06,0.68-1.78,1.82-1.78-0.91s0.69-1.25,0.87-1.78c0.18-0.54,0.54-1.79,0.72-2.5,0.18-0.72,0.35-1.6,1.06-2.31,0.72-0.72,2.35-0.19,2.35-0.19l1.25-1.25v-1.63l-1.1-1.59s-1.4-0.17-3.9-0.34c-2.5-0.18-0.72-1.25-0.72-1.25l-0.72-1.82s-0.72-1.76-1.44-2.12c-0.71-0.36-1.94-3.04-2.65-3.75-0.72-0.72-1.1-1.44-1.82-2.16-0.71-0.71-2.11-1.78-3.18-2.5-1.08-0.71-1.97-1.4-1.97-1.4l-1.63,0.34s-1.05,1.07-0.15,2.5c0.89,1.43,1.06,1.44,1.06,1.44l1.25-0.28,0.97,0.18,1.22,0.5,1.15,1.07,1.06,0.71,0.91,1.07,0.53,0.9,0.1,0.94-0.6,1.63-1.68,1.84-1.29,0.81-1.93,0.88,0.81,1.15s2.04,1.71,2.22,1.85c0.18,0.13,0.69,0.9,0.69,0.9l0.31,2.85,0.09,2.59s-0.33,2.1-0.37,2.28c-0.05,0.18-0.63,0.88-0.63,0.88l-7.09,3.97-1.44,0.9-1.25,0.94-0.66,0.81s0.3,2.37,0.35,2.6c0.04,0.22,0.64,1.18,0.69,1.4,0.04,0.23,1.28,2.69,1.28,2.69s1.15,1.2,1.46,1.69c0.32,0.49,2.16,0.31,2.16,0.31h3.44c0.4,0,1.34,0.5,1.34,0.5s1.3,0.98,1.35,1.16c0.04,0.17,0.37,1.31,0.37,1.31l0.38,3.34s0.09,3.42,0.09,3.69-0.5,1.56-0.5,1.56l-0.34,1.22c-0.04-0.01-0.07-0.03-0.1-0.06l-1.15,2.06-1.82,1.69-1.68,0.28-1.6,0.28,0.16,1.41s1,1.98,1,2.34-0.01,1.68-0.19,2.13c-0.18,0.44-0.81,1.68-0.81,1.68l0.47,1.19,1.15,1.69,0.88,2.41,0.47,1.68-1.16,1.97-1,1.63,0.72,1.93s0.08,1.53-0.09,1.97c-0.18,0.45-1.07,1.16-1.07,1.16l-0.43,1.19s4.1,3.63,5,4.53c0.89,0.89,0.15,1.52,0.15,2.06s-0.72,2.5-0.72,2.5l-1.25,2.22,0.1,1.87s1.54,1.46,1.72,1.82c0.17,0.35,1.68,0.78,2.22,0.87,0.53,0.09,2.78,0.38,2.78,0.38l1.25,1.31-0.19,0.81-1.16,1.63-0.72,3.28s-0.8,2.07-1.15,2.34c-0.36,0.27-1.44,1.16-1.44,1.16l-2.22,1.15-1.72,2.41,0.38,0.97,1.34,1,0.25,1.78-0.81,1.78-1.25,2.78-1.5,1.41-2.31,2.34-1.72,1.6-1.5,2.25s-0.9,2.92-0.81,4c0.08,1.07,0.96,0.72,0.96,0.72s1.62,1.07,2.16,1.34,1.51,0.99,1.78,1.34c0.27,0.36,1,1.24,1,1.69v1.53l-0.81,0.88-1.25,0.81-3.41,1.25-1.69,0.34-2.4-0.25s-1,0.43-0.91,0.78c0.09,0.36,0.72,1.63,0.72,1.63s0.45,1.24,0.63,1.69c0.17,0.44,0.27,0.88,0.72,1.06,0.44,0.18,0.09,2.97,0.09,2.97s-0.89,2.3-1.16,2.75c-0.27,0.44-0.46,1.25-0.37,1.87,0.09,0.63,0.72,1,0.72,1s1.7,0.69,2.06,0.78,2.94,1.1,2.94,1.1,3.13,0.72,3.84,0.72,2.58,0.06,3.56,0.15,2.5,1,2.5,1,1,0.87,1.53,1.41c0.54,0.53,0.25,4.64,0.25,5s2.88,0.19,3.5,0.28c0.63,0.09,2.32,0.81,2.32,0.81s0.43,1.33,0.43,1.69-0.43,1.88-0.43,1.88l-1.78,0.9-3.47,1.5-0.57,1.06s-1.13,4.74-1.4,5.19,0.53,1.88,0.53,1.88l1.5,0.62,2.25,1.06s3.47,2.25,4.09,2.79c0.63,0.53-0.09,0.96-0.09,0.96l-0.97,1.82-5.44,4.72-0.72,1.96-0.18,1.5s-0.44,3.58-0.44,3.94,0.34,1.53,0.34,1.53,1.81,1.15,2.25,1.5c0.45,0.36,1.88,1,1.88,1l0.72,1.41s0.79,1.54,1.06,2.34c0.27,0.81-0.72,0.97-0.72,0.97l-3.56,2.94-1.97,0.91s-1.35,1.33-1.44,1.87,0.81,0.97,0.81,0.97l0.97,1.44,1,1.34s1.95,0.73,2.75,0.91c0.81,0.17,1.63-0.57,1.63-0.57s1.42-1.95,2.4-2.22c0.99-0.26,0.53,0.46,1.07,0.72,0.53,0.27,1.96,0.61,2.59,0.88s2.22,1.34,2.22,1.34l0.81,2.06,1.78,7.41,0.82,2.5-1.26,4.13s0.1,2.05,0.19,2.4c0.09,0.36,0.8,1.24,1.07,1.6,0.26,0.35,0.43,2.15,0.43,2.15l-0.97,1.35-2.4,1.5-1.1,1.78s-2.3,3.32-2.65,3.59c-0.36,0.27-2.06,1.14-2.6,1.41-0.53,0.27-2.06,1.44-2.06,1.44s0.27,1.06,0.63,1.15c0.35,0.09,0.53,2.16,0.53,2.16l0.81,1.06,1.88-0.44,3.21,0.78,2.5,0.91s1.25,0.88,1.79,1.06c0.53,0.18,3.4-0.44,3.4-0.44s5.87-2.32,6.31-2.59c0.45-0.27,1.72-1.06,1.72-1.06s2.5-1.89,3.03-2.25c0.54-0.36,3.74-2.14,4.1-2.41,0.35-0.27,1.44-1.78,1.44-1.78l0.9-2.12s0.16-1.99,0.25-2.44,0.53-1.5,0.53-1.5l0.72-1.25,2.16-0.19,3.12,0.44,2.32,0.19s3.57,0.1,4.37-0.35c0.8-0.44,0.45-0.72,0.63-1.34,0.17-0.63-0.27-0.9-0.63-1.35-0.36-0.44-1-1.33-1.53-1.78-0.54-0.44-1.25-1.15-1.25-1.15s-2.31-4.22-2.31-4.75c0-0.54,0.81-1.15,2.15-1.69s3.91-0.97,3.91-0.97l2.06-1.19-0.09-2.65,0.47-1.78s1.16-2.8,1.25-3.07c0.09-0.26,1.51-2.93,1.68-3.56,0.18-0.62,0.62-1.79,1.07-2.59,0.44-0.81,1.62-1.68,2.15-2.03,0.54-0.36,1.68-1.91,2.13-2.44,0.44-0.54,1.09-2.22,1.09-2.22l-0.19-4.09s-2.13-2.42-2.4-3.22c-0.27-0.81,0.07-1.43,0.34-1.78,0.27-0.36,1.61-1.88,1.97-2.5,0.36-0.63,0.81-2.53,0.81-2.97,0-0.45,0.98-1.5,1.88-2.13,0.89-0.62,2.83-0.18,3.28,0s1.09,0.81,1.72,1.35c0.62,0.53,3.28,0.68,3.28,0.68s1.07-1.42,1.25-1.87,0.98-1.77,1.25-2.22,1.53-1.07,2.25-1.16c0.71-0.09,1.69,0.63,1.69,0.63s0.97,1.78,1.15,2.31c0.18,0.54,1.18,1.61,1.53,1.97,0.36,0.36,1.26,1.8,1.35,2.16,0.09,0.35,1.06,0.33,2.22,0.15s0.09-1.4,0.09-1.4v-2.16s-0.62-2.16-0.62-2.78c0-0.63,0.71-1.78,0.71-1.78s2.5-0.8,3.03-1.06c0.54-0.27-0.08-1.17,0.1-1.97,0.18-0.81,1.33-1.7,1.69-1.88,0.35-0.18,2.96-0.61,3.4-0.87,0.45-0.27,1.41-1.25,1.41-1.25l0.62-2.69,0.28-2.88s-0.02-0.11-0.03-0.12c0.09-0.06,0.32-0.22,0.32-0.22l1.31,0.19s0.6-0.58,1.31-0.94c0.72-0.36,0.79,0.03,0.97,0.03s0.68,1.11,0.81,1.47c0.14,0.36,0.36,1.26,0.41,1.53,0.04,0.27,1.38,0.68,1.56,0.72s1.55,0.47,1.81,0.56c0.27,0.09,1.66,1.08,1.97,1.44,0.32,0.36,1.04,0.45,2.38,0.94s1.53-0.28,1.53-0.28l0.65-0.63s0.23-1.4,0.32-1.94c0.09-0.53,0.72-0.87,0.72-0.87s1.51-1.22,1.87-1.63c0.36-0.4,0.5-0.87,0.5-0.87s0.34-2.99,0.16-3.13c-0.18-0.13-1.38-0.71-1.78-0.84-0.41-0.13-1.6-1.46-2-2.13-0.41-0.66,0.3-1.16,0.43-1.43,0.14-0.27,1.41-1.06,1.63-1.28,0.22-0.23,1.06-0.78,1.59-1,0.54-0.23,0.27-2.9,0.22-3.35-0.04-0.44-0.7-0.44-1.81-0.62-1.12-0.18-1.97-0.85-1.97-0.85s-1.52-1.52-2.19-2.28-0.22-2.76-0.22-3.03,0.17-4.1,0.13-4.9c-0.05-0.81,0.54-1.63,0.72-1.85s2.37-0.49,2.59-0.53,1.9-0.99,2.35-1.34c0.44-0.36,0.59-1.19,0.59-1.19s-0.37-1.3-0.5-1.75c-0.14-0.45,0.72-1.65,1.03-1.88,0.31-0.22,1.91-1.37,1.91-1.37s1.07-6.86,1.25-7.13c0.17-0.26-0.32-1.59-0.32-1.59s-1.19-3.62-1.28-3.84c-0.09-0.23-0.68-1.65-0.5-2.32s1.27-1.02,1.41-1.25c0.13-0.22,0.07-0.97-0.16-1.15-0.22-0.18-1.03-1.16-1.03-1.16s0.58-3.41,0.63-3.81c0.04-0.4,0.28-1.69,0.28-1.69l1.22-0.84s3.79-0.07,4.06-0.07,2.03-0.79,2.44-1.06c0.4-0.27,0.13-1.66,0-1.84-0.14-0.18-1.19-1.94-1.19-1.94h-2.28l-2.5,0.06-2.1-0.43-1.03-0.41s-2.49-0.25-2.72-0.25c-0.22,0-1.5-0.16-1.5-0.16l-0.65-0.25s-0.13-1.6-0.13-1.87,0.48-0.55,1.07-0.91c0.58-0.35,0.93-0.94,0.93-0.94s-0.17-0.98-0.43-1.34c-0.27-0.36-0.1-0.97-0.1-0.97s2.29-2.76,2.38-2.93c0.09-0.18,0.62-1.04,0.62-1.04s0.89-1.56,1.06-2.18c0.18-0.63-0.59-1.16-0.59-1.16s-3.42-4.04-3.78-4.44-1.14-1.64-1.31-1.9c-0.18-0.27-0.91-1.24-1-1.69s0.31-1.41,0.31-1.41l1.09-3.47-0.56-1.06s-1.07-0.96-1.16-1.09c-0.09-0.14-1-0.75-1-0.75s-0.63-0.55-0.5-0.91c0.14-0.36,1.36-0.56,1.63-0.56s2.31-0.69,2.31-0.69,1.39-0.56,1.56-0.78c0.18-0.22-0.03-1.16-0.03-1.16s-1.56-17.7-1.56-18.06-0.65-1.56-0.78-1.78c-0.14-0.22-2.19-2.34-2.19-2.34l-0.72-5.16h0.06s1.85,0.06,2.47,0.06c0.63,0,0.97-0.84,0.97-0.84l2.5-2.06,1.53-1.38s0.57-0.52,0.88-0.56c0.31-0.05,1.26,0.58,1.44,0.62,0.17,0.05,1.47,0.6,1.47,0.6s0.99-0.52,1.43-0.66c0.45-0.13,0.75-0.62,0.75-0.62l-0.31-5.94,4.16-2.16s0.93-1.1,0.93-1.28,0.57-1.87,0.57-1.87l4.47-3.1s1.78-2.23,2.18-2.5-0.03-0.62-0.03-0.62l-1.25-1.85s-1.07-1.29-1.78-1.47c-0.71-0.17-0.91-1.09-0.91-1.09l0.29-5-0.6-0.47-2.84-2.31-3.41-2.69-0.72-1.97-0.34-1.4-1.06-1.78,0.15-0.91,1.25-2.69-1.4-1.4-1.63-1.97-0.72,1.59s-1.43-0.53-2.5-0.53-1.06,1.44-1.06,1.44-1.95,0.71-2.84,1.25c-0.9,0.53-1.25,1.78-1.25,1.78s-1.45,1.25-2.16,1.25-2.14,0.01-3.03,0.19c-0.89,0.17-1.43,1.41-1.97,2.12-0.54,0.72-1.44,2.33-2.16,2.69-0.71,0.36-0.71,0.34-1.78,0.34s-0.16-0.7,0.38-2.31c0.53-1.61,1.95-1.79,2.31-2.5s0.72-1.78,0.72-1.78l2.5-0.91s0.54-3.02,1.44-3.37c0.89-0.36,3.75-0.53,3.75-0.53s1.22-1.63,1.4-2.35c0.18-0.71,1.44-1.58,1.97-2.65,0.54-1.08,0.72-1.79,0.72-2.5,0-0.72,0.91-1.82,0.91-1.82l2.5-2.12s1.58-1.6,1.93-2.31c0.36-0.72,2.16-1.97,2.16-1.97l2.16-1.97,2.31-2.5s0.19-1.44,0.19-2.16c0-0.71-0.72-1.78-0.72-1.78s-1.26-0.9-1.97-1.44c-0.72-0.53-1.78-0.7-1.78-1.59s0.16-0.72,0.34-1.44c0.18-0.71,0.72,0,0.72,0l1.44,1.1,0.15-1.25-0.15-2.35-0.53-1.97-2.69-0.68-1.78-1.1h-2.16c-0.71,0-0.52-0.69-0.87-1.4-0.36-0.72-0.37-1.62-0.91-2.69s-2.31-0.19-2.31-0.19l-1.78,0.91c-0.72,0.35-0.73,0.52-1.44,1.06-0.72,0.54-1.61-0.37-3.22-0.91-1.61-0.53-1.77,0.02-2.84,0.38-1.08,0.36,0.17,0.88,0.53,1.59,0.35,0.72,0,1.44,0,1.44l-2.35-0.19s-1.06-0.35-1.78-1.25c-0.71-0.89,0.19-1.06,0.19-1.06s1.25-1.43,1.25-2.5-0.72-1.25-0.72-1.25h-2.69c-1.25,0-1.96-0.17-3.03-0.34-1.07-0.18-1.25-0.37-1.97-1.44-0.71-1.07,0.57-0.53,0.57-0.53l1.4-1.25,1.25-0.72,2.69,0.34s0.9,0.56,1.97,0.38,0.19-0.72,0.19-0.72l-1.63-1.06s-1.77,0.34-2.84,0.34-2.16-0.72-2.16-0.72l-1.97-0.87s-1.41-1.45-2.12-1.63c-0.09-0.02-0.2-0.04-0.28-0.03zm-45.94,3.34c-0.85,0.32-1.23-0.03-1.5,0.82-0.27,0.84-0.34,0.96,0.16,1.18,0.49,0.23,0.87,0.53,1.4,0.44,0.54-0.09,1.24-0.47,1.06-1.09-0.17-0.63-1.12-1.35-1.12-1.35zm20.84,3.82c-0.33,0-0.47,0.12-0.94,0.56-0.62,0.58-1.62,1.37-1.71,1.9-0.09,0.54,0.12,0.96-0.19,1.54s-1.55,1.81-2,2.12-2.51,0.16-2.6,0.47c-0.08,0.31-0.37,0.52,0.04,0.87,0.4,0.36,2.91,0.63,3.72,0.54,0.8-0.09,3.3-0.3,3.74-0.35,0.45-0.04,0.71,0.28,0.66-0.43-0.04-0.72-0.72-1.36-0.4-1.85,0.31-0.49,0.6-0.65,0.78-0.97,0.17-0.31,0.49-1.06,0.31-1.47-0.18-0.4-0.72-0.95-0.72-1.53s-0.28-1.37-0.28-1.37c-0.18-0.01-0.3-0.04-0.41-0.03zm-45.53,6.62c-0.49,0-2.1,0.86-2.19,1.13-0.09,0.26-0.56,0.38,0.07,0.97,0.62,0.58,0.39,0.88,1.15,0.84,0.76-0.05,1.55-0.67,2.22-0.63,0.67,0.05,1,0.79,1.31,0.79,0.32,0,0.62-0.23,0.66-0.72s-0.42-0.89-0.59-1.07c-0.18-0.17-0.54-0.18-0.54-0.18-0.31-0.45-1.6-1.13-2.09-1.13zm-2.06,6.25c-0.54,0.18-1.01,0.45-1.5,0.63-0.49,0.17-0.81,0.17-1.13,0.43-0.31,0.27-0.72,0.46-0.72,0.82,0,0.35,0.15,0.5,0.6,0.81s0.52,0.62,1.19,0.62,1.89-0.5,2.03-0.81c0.13-0.31,0.48-0.94,0.53-1.25,0.04-0.31-1-1.25-1-1.25zm-51.31,9.13l-2.35,2.12-0.34,1.78,1.97,0.38,1.25,0.87h2.5l1.25-0.87v-1.78l-1.63-2.16-2.65-0.34zm59.09,4.4c-0.49,0.14-1.47,0.59-1.25,1.03,0.22,0.45,0.5,0.8,0.91,0.75,0.4-0.04,0.74-0.01,0.87-0.5,0.14-0.49-0.22-1.25-0.22-1.25l-0.31-0.03zm97.34,1.78c-0.09,0.01-0.18,0.07-0.28,0.22-0.38,0.6-0.53,1.69-0.4,2.1,0.12,0.41-0.42,0.87,0.12,1.31s0.62,1.22,1.53,1.25c0.92,0.03,1.9,0.47,2.63-0.06,0.72-0.54,1.43-1.69,1.65-2.19,0.22-0.51,0.32-1.22,0.07-1.53-0.26-0.32-0.62-0.81-1.13-0.88-0.5-0.06-1.19,0.16-1.19,0.16-1.07,0.31-0.99,0.66-1.78,0.31-0.59-0.26-0.92-0.72-1.22-0.69zm-135.37,0.22l-1.97,0.19-1.44,1.44,0.53,1.06,1.63-0.91,1.44,0.57,0.34,1.59,1.25,0.34,0.72-0.87-0.53-1.06-1.97-2.35zm27.09,1.13c-0.49,0.01-1.04,0.1-0.9,0.5,0.17,0.53,1.09,0.75,2.03,0.75s2.97,0.08,3.06,0.44c0.09,0.35,0.68,1.56,0.91,1.65,0.22,0.09,0.92,0.13,0.97-0.41,0.04-0.53-0.44-1.13-0.76-1.4-0.31-0.27-2.09-1.25-2.09-1.25-0.45-0.09-2.24-0.28-2.78-0.28-0.13,0-0.27-0.01-0.44,0zm10.31,1.12c-0.71,0.23-0.93,0.25-0.93,0.88,0,0.62-0.1,1.06,0.43,1.15,0.54,0.09,0.85,0.33,1.26,0.07,0.4-0.27,0.59-0.91,0.37-1.22s-1.13-0.88-1.13-0.88zm-44.71,1.16l-1.44,1.25,0.72,0.87,1.78-1.06-1.06-1.06zm6.4,2.31v1.78l2.35-0.53v-1.25h-2.35zm133.35,1.5c-1.05,0.29-1.25,0.28-2.07,0.6-0.82,0.31-1.49,0.24-1.87,0.74-0.38,0.51-0.44,0.28-0.66,1.29s-0.69,0.99,0.1,1.31c0.79,0.31,1.39,0.29,2.31-0.41,0.91-0.69,1.71-1.09,2.19-1.65,0.47-0.57,0.84-1.19,0.84-1.35s-0.84-0.53-0.84-0.53zm-122.41,0.5c-0.4,0.63-0.65,1.16-0.87,1.56-0.23,0.41-0.68,0.77-1.13,1.66s-0.81,1.32-0.81,2.03c0,0.72,0.24,1.18,0.68,1.41,0.45,0.22,0.34,0.5,0.57,0.5,0.22,0,0.82,0.09,1.31,0s1.03-0.19,1.03-0.5v-1.88c0-0.53-0.31-3.37-0.31-3.59s-0.47-1.19-0.47-1.19zm-16.47,0.69l-1.06,0.87v1.25l1.44,0.57,0.87-1.25-1.25-1.44z\",\"name\":\"Krasnoyarsk Krai\"},\"tm\":{\"path\":\"m424.64,359.43,1.25,3.2143,1.25,2.3214s-0.53571,2.3214-0.71428,3.0357c-0.17857,0.71429-1.6071,3.0357-1.6071,3.0357s0.53571,1.25,1.6071,1.9643c1.0714,0.71429,5.8929,1.7857,5.8929,1.7857l5.3571,0.17857s3.75,0.89285,4.1071,1.6071c0.35714,0.71429,0.89286,1.0714,0.89286,2.1429,0,1.0714,0.35714,4.2857,0.35714,4.2857s1.25,0.35714,2.6786,0.35714,3.0357,0.35715,3.0357,0.35715,0.35714,2.1428,0.35714,2.6786c0,0.53571-0.89286,1.7857-1.9643,1.7857s-3.75,1.6072-3.75,1.6072-1.25,2.6786-1.25,3.75-0.89285,3.5714-0.53571,4.2857c0.35714,0.71429,4.4643,1.7857,5.1786,2.1429,0.71429,0.35714,3.2143,2.6786,3.2143,2.6786s-0.71429,1.6071-1.6072,2.6786c-0.89285,1.0714-4.1071,3.0357-5.3571,4.6429-1.25,1.6071-0.35714,2.8571-0.35714,2.8571l-0.71429,1.6071-3.2143,0.53572-3.2143,0.35714-1.4286-1.6071-1.9643-0.17857-4.66-0.57h-2.3214l-1.25,1.0714s-2.1429,1.0714-3.2143,1.25c-1.0714,0.17857-5.3571,1.25-6.0714,1.25-0.71428,0-6.4286,0.71429-6.4286,0.71429l-3.3928,1.4286h-2.3214l-0.35715-1.9643,0.71429-2.1429-0.35714-2.3214,1.7857-2.3214-0.53571-1.4286s-1.0714-0.17858-1.9643,0.53571c-0.89286,0.71429-4.4643,1.0714-4.4643,1.0714l-4.2857-0.17857-1.9643-2.3214-0.89286-3.0357s-1.25-1.0714-2.6786-0.71428c-1.4286,0.35714-1.6072,1.25-2.6786,1.25s-2.5,0-3.0357-0.89286c-0.53571-0.89286-0.89285-3.0357-0.89285-3.0357l-0.9-2.33s-1.6071-0.89286-2.5-1.6071c-0.89286-0.71429-3.2143-2.3214-3.2143-2.3214l-5.1786-2.3214-4.2857-1.9643-4.6429-1.7857-2.6786-1.0714-1.7857-2.5v-3.0357l1.6072-2.8572,0.35714-1.7857-0.53571-2.3214,1.25-3.0357,0.71428-3.3929,1.9643-1.0714,3.3928-2.8571s0-2.1429,0.71429-2.3214c0.71429-0.17857,5.7143-1.6071,5.7143-1.6071l1.9643-1.7857,1.25-2.6786,2.5-1.6071,1.6071-3.2143s1.0714-1.0714,1.7857-1.7857c0.71428-0.71429,2.1428-1.4286,2.1428-1.4286l1.9643-0.35715,2.1429,1.7857,2.1428,1.0714,2.5,0.35714,2.8572,1.4286,1.0714,1.6071,3.0357,0.89286h3.3929l2.1428,0.35714,1.25,1.6072,2.6786,0.71428,2.3214,0.71429,2.1429,1.7857,1.25-0.89286,1.7857-0.53571,2.1428-1.4286,2.1429-0.17857,1.6071,0.71428,1.7857,0.89286z\",\"name\":\"Tomsk Oblast\"},\"nv\":{\"path\":\"m341.43,421.57,4.1071,0.71429l4.4643-0.17858c1.25-0.17857,2.1429-0.71428,2.1429-0.71428l-2.14,3.4h-3.0357l-0.89285,2.1428s1.0714,1.9643,1.7857,2.5c0.71429,0.53572,2.6786,3.0357,2.6786,3.0357l0.53572,2.1428,2.3214,0.35715h1.4286s2.6786,0.35714,3.3928,0.35714c0.71429,0,0.89286,0,1.9643-0.35714,1.0714-0.35715,3.2143-0.71429,4.6429-0.71429h3.5714s2.6786,0.17857,3.5714-0.35714c0.89286-0.53572,0.89286-1.0714,2.3214-1.25,1.4286-0.17857,3.0357-0.17857,3.9286-0.17857,0.89286,0,1.9643-0.17857,1.9643-0.17857s0,1.6071,0.89286,2.1428c0.89285,0.53572,4.1071,2.6786,4.1071,2.6786l0.71428,0.71429c0.17858,0.71429-0.17857,2.5-0.17857,3.2143,0,0.71428-1.0714,0.71428-0.17857,1.6071,0.89286,0.89286,1.9643,1.4286,1.9643,1.4286l2.3214-1.9643,2.3214-2.3214s2.1429-0.53572,2.8572-0.53572c0.71428,0,3.0357,0,3.75-0.17857,0.71428-0.17857,1.4286-0.71429,2.6786-0.17857,1.25,0.53571,2.3214,0.71428,3.3929,0.71428,1.0714,0,3.5714-1.25,3.5714-1.25s1.7857-2.1428,1.9643-2.8571c0.21-0.7-0.33-4.45-0.33-4.45v-3.75c0-0.71429,0.71428-2.3214,1.25-2.6786,0.53571-0.35714,1.7857-0.89285,1.7857-1.7857,0-0.89286-0.89286-1.6071-0.89286-1.6071s-0.89285-0.53572-0.89285-1.4286c0-0.89286,0.35714-3.2143-0.53572-3.0357-0.89285,0.17857-4.1071,1.7857-4.1071,1.7857s0,0.17857-1.4286,0.17857-2.5,0-2.6786-0.71429c-0.17857-0.71428,0.35714-5,0.35714-5l0.53571-2.6786,0.17858-2.1429-2.8572,1.4286s-1.6071,0.53572-2.5,0.71429c-0.9,0.18-4.47-0.71-4.47-0.71l-2.1429-0.71428-1.4286-2.1429-1.4286-2.8571s-2.5,0.53571-3.2143,0.71428c-0.71428,0.17858-1.9643,0.53572-1.9643,0.53572l-2.3214-1.25-1.0714-3.3929v-1.25l-3.0357-1.7857s-1.9643-1.6072-2.6786-2.1429c-0.71428-0.53571-3.3928-1.7857-3.3928-1.7857s-3.3929-1.25-4.1072-1.6072c-0.71428-0.35714-1.9643-1.25-2.6786-1.6071-0.71428-0.35714-3.9286-1.4286-3.9286-1.4286l-1.9643,0.17857s-0.35715,1.0714-0.53572,1.9643c-0.17857,0.89285-1.0714,2.3214-1.0714,2.3214l-1.4286,1.0714-0.89286,1.6072,0.17858,2.1428-0.71429,1.4286h-3.2143l-2.5-0.35714-2.1428,0.89286-2.1429,2.3214-1.4286,1.9643-0.71429,2.6786,0.71429,1.9643,1.7857,2.6786v1.7857l-2.1428,3.5714z\",\"name\":\"Novosibirsk Oblast\"},\"al\":{\"path\":\"m351.25,435.14,1.7857,5,1.7857,5.1786,1.6071,6.7857,0.89286,8.5714,0.35714,8.2143,0.35714,2.8571,2.3214-0.53571,1.7857-0.53572,0.89285-0.53571,0.17857-1.9643,1.25-1.6071,1.25-0.35714,1.7857,0.53571,0.89286,1.9643,0.89285,2.8571,2.3214,2.8571,1.9643,1.6071,4.6428,0,3.3929-0.35714,2.5-0.89286,2.3214,0,3.3929,1.4286,1.0714,1.9643,2.3214,0.53572,2.3214-0.53572-0.17857-1.4286-1.6071-1.0714-1.0714-0.89286,0.35714-1.6071,0.71429-0.35714,2.5-0.35714,4.4643-0.71429,3.75-0.17857,2.6786-0.71429,2.3214-1.9643,1.0714-1.9643s0.53572-0.71428,1.25-0.71428c0.71429,0,3.3929-0.17858,3.3929-0.17858l1.9643-0.17857,1.0714-1.7857s0.53572-2.1429,1.25-2.5c0.71429-0.35714,0.89286-2.3214,0.89286-2.3214l0.71429-2.1429-0.35715-1.0714-0.71428-1.0714,0.71428-0.89286,1.25-0.53571-0.17857-1.0714-1.4286-1.6072-1.0714-1.0714c-0.17857-0.71429-0.89286-2.8572-0.89286-2.8572l-1.7857-1.7857-0.17857-0.89286-0.53572-2.1429-1.6071-1.4286-2.5-1.9643-1.74-1.79s-1.6072,1.0714-2.3214,1.4286c-0.71429,0.35715-1.7857,0.71429-1.7857,0.71429l-2.5,0.17857-2.5-0.35714-3.0357-0.17857-4.8214,0.71428-2.5,1.6072-1.6071,1.7857-1.0714,0.71429-0.89286,0.35714-1.4286-1.25-0.35714-0.89286,0.35714-0.89286,0.17857-1.7857-0.17857-1.4286-2.3214-1.6071-1.9643-1.25-1.0714-1.25-0.17857-0.89286-1.9643-0.17857-4.2857,0.17857-1.25,1.25-2.1429,0.53571-3.75-0.53571-4.2857,0.17857-2.6786,1.25h-2.5l-3.3929-0.17857z\",\"name\":\"Altai Krai\"},\"km\":{\"path\":\"m442.14,414.79-0.71428,2.3214,0.89286,1.6072,2.5,1.4286,1.7857,1.6071,1.25,2.5,0.17857,0.89286s-0.89286,1.4286-1.6071,2.1429c-0.71429,0.71428-4.2857,2.3214-4.2857,2.3214l-1.7857,1.7857-1.7857,1.7857v1.6072l1.0714,1.7857,0.17858,1.7857-1.9643,2.5s-1.25,1.0714-1.0714,1.7857c0.17857,0.71428,1.0714,1.4286,1.7857,1.6071,0.71428,0.17857,2.8571,0.89286,2.8571,0.89286l-0.71429,1.4286-1.25,1.7857-0.53571,1.6072-1.7857,0.71428-1.4286,1.6072,0.71429,1.25,1.25,1.25-0.89286,2.5-1.25,1.6071,0.53572,1.25,1.7857,1.7857-0.35714,1.6072-1.6072,1.9643-2.5,2.1429h-1.9643l-0.71429-1.7857-1.9643-1.25-2.6786-0.35714-1.4286,1.0714-2.1428-1.4286-0.71429-2.3214-1.0714-0.71429,0.17857-2.5-0.53571-2.5,0.89286-1.9643,0.71428-1.6071-2.1428-2.6786-1.6072-2.6786-1.25-1.4286-0.71428-2.3214-0.89286-1.7857-2.3214-2.1429-1.7857-1.6071-0.71429-1.25v-1.7857l-0.35714-4.6428,0.17857-2.5,0.71429-2.3214,1.25-1.4286,0.71428-1.25-1.4286-1.9643v-0.89286l-0.35714-2.5,1.6071-0.35714,4.4643-0.53571,2.5-0.89286,3.0357-0.89286,1.0714-0.35714,0.71428-0.89286h1.6072,1.9643,2.5l1.7857,0.35715,1.4286,0.35714,0.89286,0.89286,1.9643,0.53571,1.6071-0.17857,2.5-0.71429z\",\"name\":\"Kemerovo Oblast\"},\"lt\":{\"path\":\"m392.32,478.89-0.44643,2.1428s-0.17857,1.875,0,2.5893c0.17857,0.71429,1.1607,2.3214,1.1607,2.3214l3.3036,0.89286s0.98215,1.1607,1.0714,1.6071c0.0893,0.44643,0.0893,3.3036,0.0893,3.3036s0.17857,0.89286,0.53571,1.6071c0.35715,0.71429,1.25,1.875,1.7857,2.2322,0.53571,0.35714,1.6071,1.25,2.4107,1.3393,0.80357,0.0893,3.125,0.0893,3.5714,0.0893,0.44643,0,4.0179,0.0893,4.0179,0.0893s1.0714,0.53572,1.6071,0.89286c0.53571,0.35714,1.4286,1.25,1.7857,1.875,0.35715,0.625,1.5179,1.6964,2.0536,1.9643,0.53571,0.26785,1.1607,0.80357,1.7857,1.1607,0.625,0.35714,1.6964,0.71429,2.4107,0.80357,0.71429,0.0893,2.9464-0.44643,3.3929-0.71428,0.44643-0.26786,2.3214-0.89286,3.4821-0.89286s4.7322-0.35714,5-0.44643c0.26786-0.0893,3.5714-1.3393,4.1964-1.3393s1.4286-0.89285,1.6071-1.25c0.17858-0.35714,0.625-1.9643,0.17858-2.7678-0.44643-0.80357-0.80358-1.0714-1.4286-1.4286-0.625-0.35715-1.4286-1.25-1.25-1.7857,0.17858-0.53571,1.9643-1.1607,2.4107-1.1607,0.44643,0,2.5,1.0714,2.5,0.26785,0-0.80357-1.6964-2.2321-1.6964-2.2321s-0.98214-1.3393-1.25-1.7857c-0.26786-0.44643-1.875-1.9643-1.875-1.9643s-2.2321-2.7679-2.0536-4.1071c0.17857-1.3393-0.0893-3.3929-0.0893-3.3929s-0.625-1.3393-0.71428-1.6964c-0.0893-0.35714-1.3393-0.17857-1.3393-0.17857l-1.5179,1.5179s-1.4286-0.26786-1.5178-0.80357c-0.0893-0.53572-0.71429-2.5893-0.71429-2.5893s-0.35714-1.7857-0.44643-2.1429c-0.0893-0.35714-0.17857-1.9643-0.17857-1.9643l1.6964-1.3393,2.8571-1.3393,0.35715-1.1607-1.3393-1.6071-0.80357-0.625-2.1429-0.53571-1.9643,0.98214s-1.0714-0.625-1.4286-0.80357c-0.35714-0.17857-1.0714-0.89286-1.0714-0.89286l-0.89286-1.7857s0-1.0714-0.71429-0.89286c-0.71428,0.17857-0.89285,0.71428-0.89285,0.71428s-1.1607,1.1607-1.1607,1.5179c0,0.35714-0.625,1.4286-0.625,1.4286l-0.98214,1.0714s-1.6071,0.44643-1.9643,0.44643h-3.0357c-0.35714,0-1.1607,0.71429-1.5179,1.0714-0.35714,0.35714-1.1607,1.9643-1.1607,1.9643l-1.5179,1.0714-0.98214,0.625-2.3214,0.71429h-2.3214l-4.1071,0.71428-4.1071,0.625-1.0714,0.625-0.0893,0.98215s0.0893,0.89285,0.53572,0.98214c0.44642,0.0893,1.6071,0.80357,1.6071,0.80357l0.44643,0.89286-0.0893,0.89286-1.875,0.625z\",\"name\":\"Altai Republic\"},\"tv\":{\"path\":\"m431.96,477.02,0.26786-1.6964s0.89286-0.625,1.6071-0.625c0.71429,0,1.6964,0.71428,2.4107,0.89286,0.71428,0.17857,2.7678,0.71428,3.0357,0.71428,0.26786,0,1.0714-0.80357,1.3393-1.25,0.26785-0.44643,1.9643-2.6786,1.9643-2.6786s0-1.25,0.625-1.6071c0.625-0.35715,1.875-0.35715,2.3214-0.35715,0.44643,0,1.6071-0.17857,2.3214,0.26786,0.71429,0.44643,1.1607,3.0357,1.1607,3.0357s0.89286,0.89285,1.1607,0.89285c0.26786,0,2.1429-0.80357,2.1429-0.80357s1.4286,0.17857,1.7857,0.44643c0.35714,0.26786,3.0357,0.89286,3.0357,0.89286s1.6964,1.6071,2.2322,1.6071c0.53571,0,1.6964,0.26786,2.6786-0.0893,0.98214-0.35714,2.8571-0.80357,3.3929-1.25,0.53571-0.44642,5.5357-1.9643,5.9821-2.5,0.44643-0.53571,7.0536-5.9821,7.0536-5.9821l2.1429-2.8571s-0.17857-1.875-0.17857-2.9464,1.0714-2.3214,1.4286-2.5893c0.35714-0.26785,2.8571,0.0893,3.3036,0.17858,0.44643,0.0893,4.375,0.89285,4.7321,0.80357,0.35714-0.0893,4.2857-0.44643,4.2857-0.44643l2.4107-2.2321s1.5179-0.35715,2.4107,0.0893c0.89286,0.44643,3.6607,2.5,4.1964,2.7679,0.53572,0.26786,3.75,2.3214,3.75,2.3214l1.6072,1.5178s1.25,0.71429,1.7857,0.44643c0.53571-0.26785,2.3214-0.89285,2.3214-0.89285l1.6071,0.53571,0.35714,1.25s0.53572,0.89286,0.53572,1.25-0.89286,1.6071-0.89286,1.6071-0.71428,0.53572-0.80357,1.1607c-0.0893,0.625-0.26786,4.1071-0.26786,4.1071s-0.0893,2.3214-0.0893,2.7679c0,0.44643-0.71429,2.1428-0.71429,2.1428l-1.4286,2.4107s-1.5179,1.3393-1.875,1.875c-0.35714,0.53571-2.2321,1.3393-2.4107,1.6964-0.17858,0.35714-0.71429,1.875-0.71429,1.875s-0.71429,1.875-0.71429,2.4107c0,0.53572-0.0893,3.3929-0.0893,3.9286,0,0.53572,0.53571,2.5,1.0714,3.2143,0.53571,0.71428,1.25,1.6071,1.25,2.0536,0,0.44643-0.80357,2.3214-1.1607,2.7679-0.35714,0.44643-4.8214,4.1964-4.8214,4.1964l-2.0536,1.25-2.1428,0.17857s-1.7857-0.98215-2.1429-0.89286c-0.35714,0.0893-2.3214,0.17857-2.6786,0.17857-0.35715,0-1.7857-0.89286-1.7857-0.89286s-1.6964-0.35714-2.1428-0.625c-0.44643-0.26785-1.7857-1.1607-1.7857-1.1607s-2.7679-0.26786-3.2143-0.26786c-0.44643,0-2.8572-0.17857-3.2143-0.53571l-2.0536-2.0536s-0.71429-1.4286-0.80357-1.9643c-0.0893-0.53571-0.17857-2.5-0.17857-2.5s-0.80358-0.80357-1.3393-1.25c-0.53571-0.44643-2.1429-0.89286-2.9464-0.89286-0.80357,0-3.9286,0.17858-3.9286,0.17858s-1.9643,0.53571-2.2321,0.625c-0.26786,0.0893-1.25,0.71428-1.875,0.80357-0.625,0.0893-2.0536,0.0893-1.9643-0.80357,0.0893-0.89286,1.25-1.6964,1.3393-2.0536,0.0893-0.35714-0.0893-1.0714-0.71429-1.3393-0.625-0.26786-2.1429-0.17857-3.0357,0.0893-0.89286,0.26786-2.3214,0.80358-2.8572,0.89286-0.53571,0.0893-3.3928,0.71429-3.3928,0.71429s-2.1429,0.89285-2.6786,1.0714c-0.53572,0.17857-3.8393,1.1607-3.8393,1.1607l-3.0357,1.5179-2.4107,1.1607-2.5893-0.26786-2.1429-0.98214-1.5179-0.71428-1.25-1.25c0-0.44643,0.35714-0.98215,0.35714-0.98215l2.4107-0.44643,1.7857,0.53572s1.25-0.35714,0.17857-1.0714c-1.0714-0.71429-4.4643-5.0893-4.4643-5.0893l-1.48-2.44s-1.0714-1.4286-1.0714-1.7857v-2.5893z\",\"name\":\"Tuva Republic\"},\"hk\":{\"path\":\"m440.27,432.11c0.53572,0.35715,1.9643,1.875,1.9643,1.875l1.3393,1.6072s0.26785,0.625,1.1607,0.80357c0.89286,0.17857,2.0536,0.17857,2.0536,0.17857s0.35714-0.35714,0.80357-0.80357,0.625-0.98214,0.98215-1.25c0.35714-0.26786,0.89285-0.89286,1.3393-0.80357,0.44643,0.0893,0.71429,0.26785,1.3393,0.71428,0.625,0.44643,1.3393,1.25,2.2321,1.25,0.89286,0,2.5,0.80357,2.5,0.80357s0.44643,1.875,0.625,2.3214c0.17857,0.44643,0.53571,2.9464,0.53571,2.9464s0.35715,1.5179,0.71429,2.4107c0.35714,0.89285,0.98214,2.0536,1.0714,2.4107,0.0893,0.35714-0.0893,3.125-0.17857,3.3929-0.0893,0.26785-0.80357,1.875-0.89286,2.2321-0.0893,0.35714,0,2.5893,0,2.5893l1.5179,1.5179,0.625,1.875s-1.25,1.4286-1.4286,1.6964c-0.17858,0.26786-2.2322,1.3393-2.5893,1.875-0.35714,0.53571-1.4286,3.0357-1.4286,3.0357s-1.6071,1.9643-2.1429,2.2322c-0.53571,0.26785-2.8571,1.0714-3.125,1.5178-0.26786,0.44643-1.6964,1.6964-1.6964,1.6964l-2.7678,0.0893s-1.3393,0.17857-1.6072,0.625c-0.26785,0.44643-0.53571,1.4286-1.0714,1.875-0.53571,0.44643-1.0714,1.25-1.1607,1.6071-0.0893,0.35714-0.89286,1.0714-0.89286,1.0714s0.0893,0.71429-1.0714,0.625c-1.1607-0.0893-2.9464-0.35714-2.9464-0.35714l-1.7857-1.1607-1.6071,0.44643-0.625,0.80357-0.26786,0.89286-2.5,1.0714s-0.625,0.89286-1.1607,0.35714c-0.53572-0.53571-1.25-2.3214-1.25-2.3214l-0.625-2.5893v-1.5179s0.17857-1.0714,0.53571-1.25c0.35714-0.17857,2.5-1.6071,2.5-1.6071s1.3393-0.98215,1.6964-1.0714c0.35714-0.0893,2.1429-0.44643,2.1429-0.44643l1.9643-1.0714,1.5179-2.0536,1.3393-1.0714-0.44643-1.6071s-1.25-1.25-1.4286-1.6071c-0.17858-0.35715-0.44643-1.25-0.44643-1.25l1.6071-2.2322,0.0893-1.875s-1.0714-1.1607-1.1607-1.5178c-0.0893-0.35715-0.0893-1.25-0.0893-1.25l2.5893-1.5179,1.0714-1.875,1.1607-1.9643,0.53572-1.6964-3.5714-1.1607s-0.89286-1.25-0.71429-1.7857c0.17858-0.53572,1.7857-2.4107,1.7857-2.4107s0.89286-1.875,0.89286-2.3214c0-0.44642-1.0714-2.8571-1.0714-2.8571s0-0.71428,0.26785-1.1607c0.26786-0.44643,1.25-0.98215,1.25-0.98215z\",\"name\":\"Republic of Khakassia\"},\"ir\":{\"path\":\"M569.41,325.78c-0.12,0.03-0.22,0.12-0.22,0.34,0,0.45,0.53,1.54,0.53,1.54l0.37,1.06s-0.26,0.88-0.62,1.06-1.78,0.63-1.78,0.63l-2.69,0.09s-1.61,0.26-1.88,0.44c-0.26,0.18-0.9,0.73-0.9,1.09s-0.44,1.96-0.53,2.31c-0.09,0.36-0.16,1.97-0.16,1.97s0.18,0.78,0.63,1.41c0.44,0.62,0.43,1.81,0.43,1.81l-1.25,1.16s0.26,1.67,0.35,2.03,1,3.4,1,3.4l0.43,2.5s-0.28,1.42-0.28,1.69-0.96,4.57-0.96,4.57-0.09,0.98-0.54,1.24c-0.44,0.27-2.06,1.88-2.06,1.88s-0.19,0.99-0.19,1.34c0,0.36,0.37,1.06,0.19,1.5-0.18,0.45-1.97,1.72-1.97,1.72l-2.59,0.72-1.31,0.88-0.29,3.84-0.09,2.22v1.81c0,0.36,0.27,1.34,0.72,1.78,0.45,0.45,2.16,1.97,2.16,1.97l2.21,0.53,1.16,0.78,0.1,2.25s-0.37,1.33-0.82,1.5c-0.44,0.18-2.75,1.82-2.75,1.82l-0.53,1.15,0.97,1.16,1.97,1.59s0.78,0.1,0.87,0.72c0.09,0.63-0.15,2.6-0.15,2.6l-0.47,1.43-1.25,1.07-1.41,1.43-0.19,1.6-1.24,0.81-2.79-0.28-1.59-1.35-1.78-0.68-2.25-0.63s-0.45-0.74-0.63-1.19c-0.17-0.44-0.34-1.68-0.34-1.68l-1.25-0.72-1.87,1-1.26,0.09-0.18,1.69-0.35,2.41-0.53,1.53-0.9,0.97-1.6,0.53s-1.89,0.28-2.25,0.37c-0.35,0.09-1.34,1.41-1.34,1.41s-0.53,0.8-0.44,1.15c0.09,0.36,0.19,1.25,0.19,1.25l-1.16,0.91-2.06,0.81s-0.44,0.9-0.44,1.25c0,0.36,0.16,1.97,0.16,1.97l0.37,1.5,0.1,1.63s0.7,0.7,0.43,1.06c-0.26,0.36-2.78,0.62-2.78,0.62l-1.93-2.78-1-1.5-1.07-2.34-1.06-0.69h-1.72l-1.59,1.69s-0.89,0.81-1.16,1.44c-0.27,0.62,0.01,1.78-1.15,1.78s-3.22-0.38-3.22-0.38l-1.25-1.15-1.97-0.44-1.34-0.19s-0.62,0.64-0.97,0.91c-0.36,0.27-1.35,1.25-1.35,1.25v0.62l-0.72,1.88-1.15,2.22-0.81,0.9-0.29,1.35,0.63,1.68s0.45,0.9,0.81,1.25c0.36,0.36,0.63,0.35,0.72,0.97,0.09,0.63,0.19,2.6,0.19,2.6l-0.38,2.4-0.97,1.88s-1.88,1.79-2.15,2.06-2.13,1.61-2.13,1.97-1.62,4.19-1.62,4.19l-1.25,2.25s-0.69,2.11-0.78,2.56-0.63,3.59-0.63,3.59-0.09,1.33-0.62,1.6c-0.54,0.26-3.69,0.81-3.69,0.81s-2.12,1.07-2.56,1.34c-0.45,0.27-0.72,0.63-0.72,0.63s-0.19,0.52-0.1,0.87c0.09,0.36,1.16,2.25,1.16,2.25l1.44,2.66,1.06,0.56,0.97,1.06,1.09,1.69v0.81l1.25-0.43s0.9-0.91,1.25-1c0.36-0.09,1.78,0.28,1.78,0.28l1.44,0.87s1.43,0.91,1.78,1c0.36,0.09,2.03,1.41,2.03,1.41l4.32,2.87s0.34,0.82,1.06,0.82c0.71,0,2.41-0.38,2.41-0.38l1.78-0.34,1.06,1.15,0.28,1.16,0.28,1.53,2.56-0.81,2.44-2.41s2.14-2.16,3.13-2.34c0.98-0.18,2.12,1.19,2.12,1.19s0.72,1.58,1.25,2.03c0.54,0.44,2.43,2.32,2.78,2.59,0.36,0.27,3.03,1.53,3.03,1.53l2.22,2.66c0.45,0.53,2.52,3.22,2.97,3.22s2.84,0.18,3.38,0.09c0.53-0.09,1.96,0.63,2.5,1.25,0.53,0.63,1.78,2.69,1.78,2.69s1.27,1.69,1.62,1.78c0.36,0.09,1.16,1.88,1.16,1.88s0.89,1.62,1.25,1.53,2.31-0.63,2.31-0.63,0.73,0.15,0.91,0.69c0.18,0.53,0.87,2.59,0.87,2.59s1.18,0.62,1.53,0.53c0.36-0.09,1.88-1.25,1.88-1.25s1.77-0.26,2.12-0.43c0.36-0.18,1.44-0.82,0.82-1.44-0.05-0.04-0.11-0.06-0.16-0.09,0.05-0.01,0.34-0.07,0.34-0.07l1.69-0.62,8.75-2.88s1-1.76,1-2.03,0.63-2.06,0.63-2.06l0.06-2.06,0.81-0.82,1.78-0.96,2.25-0.82,1.16-1.68,1.06-0.82,5.44-2.59,1.62-1.31,0.82-1.1,0.62-2.5,1.94-1.15s1.27-0.9,1.62-1.35c0.36-0.44,0.35-0.97,0.35-0.97l-0.63-0.81-1.25-1.25-0.34-0.81s0.18-0.96,0.62-1.41c0.45-0.44,0.71-0.63,1.07-0.72,0.35-0.09,1.25,0.35,1.25,0.35l1,1.09,0.87-0.47,0.63-1.78s0.81-2.14,0.9-2.5,0.25-1.69,0.25-1.69-0.25-3.05-0.25-3.5v-2.5s0.44-4.01,0.53-4.37,0.35-2.13,0.35-2.13l-0.1-1.87s-0.44-1.17-0.62-1.44-0.16-0.81-0.16-0.81,0.63-1.05,0.72-1.41c0.09-0.35-0.37-0.81-0.37-0.81s-0.54-0.71-0.72-1.06c-0.18-0.36-0.88,0.15-0.88,0.15l-1.44,0.91s-0.79,1.26-1.15,1.53-0.44,1.31-0.44,1.31l-0.28,4.38-0.81,1.34-1.53-0.09c-0.34-0.63-0.73-1.32-0.79-1.6-0.08-0.44-0.43-2.67-0.34-3.65s0.97-4.38,0.97-4.38l1.25-1.25s0.09-1.52-0.53-2.06c-0.63-0.53-1.87-1.07-2.41-1.34-0.53-0.27-1.72-1.35-1.72-1.97,0-0.63,0.92-1.77,1.19-2.13,0.27-0.35,3.93-1.51,4.28-1.78,0.36-0.27,3.57-2.15,3.57-2.15l3.65-1.07,2.78,0.25,2.13-0.34,1.34-2.5,2.88-0.81s1.87,1.25,2.4,1.25c0.54,0,2.22-0.72,2.22-0.72s1.07,0.64,1.25,1,1.63,1.34,1.63,1.34l1.93-0.37s1.35-0.44,2.07-0.35c0.71,0.09,1.7,0.98,2.06,1.07s2.75-0.72,2.75-0.72l1.09-1.5,2.5-1.16s1.35-1.08,1.35-1.53,0.15-3.22,0.15-3.22,1.25-0.61,1.88-0.97c0.62-0.35,2.15-0.18,2.15-0.18s0.17-1.34,0.35-1.79c0.18-0.44,1.33-1.34,1.78-1.43s2.44,0.37,2.44,0.37l1.15,0.97-1.34,1.44-0.72,1.15,0.72,0.72s2.31-0.45,2.94-0.72c0.62-0.26,2.24-0.44,2.78-0.53,0.53-0.09,2.84-1.15,2.84-1.15s0.91-1.08,0.91-1.44-0.2-1.71-0.38-2.16c-0.18-0.44-2.21-1.14-2.65-1.59-0.45-0.45-0.54-2.58-0.72-2.94s-0.9-1.9-0.63-2.44c0.27-0.53,1.06-1.78,1.06-1.78l-0.62-2.5s-0.01-2.48,0.34-2.84c0.36-0.36,2.07-1,2.07-1l2.93,0.81s0.9,1.15,1.35,1.06c0.44-0.09,2.15-0.53,2.15-0.53l0.25-3.56-0.87-1.16s-1.27-1.42-1.63-1.68c-0.35-0.27-1.25-1.25-1.25-1.25l-1.68-2.97-0.25-2.6-0.72-1.68-2.25-0.54-1.78,0.97-3.13,1.53-1.97,0.44-0.72-0.72-0.78-2.84-1-1.59-2.75-2.35-2.34-1.68-2.66-0.91-2.78-0.06s-2.49,0.8-2.84,1.15c-0.36,0.36-1.45,1.52-1.72,1.88-0.27,0.35-0.88,2.5-0.88,2.5l-0.28,2.12v2.5s-0.17,1.36-0.43,1.72c-0.27,0.36-3.94,2.03-3.94,2.03l-1.16,1.72-0.19,2.66-0.97,2.25-2.15,2.22s-0.6,0.63-0.69,0.09-0.62-2.22-0.62-2.22l-2.16-2.34s-0.44-1.23-1.06-0.78c-0.63,0.44-1.63,1.31-1.63,1.31l-3.28,1s-0.89,0.43-1.25,0.87c-0.36,0.45-2.97,0.72-2.97,0.72l-2.03,0.28-2.16,2.5s-0.62,1.26-1.24,0.82c-0.63-0.45-2.22-2.35-2.22-2.35l-0.82-1.59-0.53-2.94,0.16-5.56-0.06-2.56,1.5-2.6,1.87-3.03s0.44-1.61,0.44-2.06-0.53-3.03-0.53-3.03l-2.03-2.25-4.94-3.66s-0.63-0.71-0.63-1.25c0-0.53,0.1-2.31,0.1-2.31l1.15-1.97s0.63-0.35,0-1.06c-0.62-0.72-3.18-4.57-3.18-4.57l0.15-5.34s0.02-0.65-0.34-1.09c-0.36-0.45-2.59-3.28-2.59-3.28l-1.54-1.88s-0.24-0.62-0.68-0.62c-0.45,0-2.16,0.68-2.16,0.68s-1.17,0.82-1.44,0.29c-0.27-0.54-0.25-2.6-0.25-2.6s-0.29-1.16,0.16-1.25,1.62-0.44,1.62-0.44h1.5l0.29-1.43-1.79-1.97-1.53-1.35-1.4-0.06s-0.14-0.03-0.25,0z\",\"name\":\"Irkutsk Oblast\"},\"br\":{\"path\":\"m513.39,476.39s1.6072,0.98214,2.3214,1.1607c0.71429,0.17857,2.8572,1.25,3.3929,1.3393,0.53571,0.0893,1.7857,0.71428,2.5,0.98214,0.71429,0.26786,1.875,0.98214,2.5893,1.3393,0.71428,0.35714,2.2321,0.53571,3.2143,0.625,0.98214,0.0893,2.8571,0.89285,3.4821,1.0714,0.625,0.17858,2.1429,1.0714,2.9464,1.1607,0.80357,0.0893,1.5179,0,2.7679,0.625s2.7679,1.3393,3.125,1.5179c0.35714,0.17857,0.71429,0.26785,0.80357,0.98214,0.0893,0.71428,0,2.6786,0.0893,3.0357,0.0893,0.35715,0.26785,1.6964,0.625,2.0536,0.35714,0.35715,1.6071,1.9643,2.5893,2.5893,0.98215,0.625,1.4286,1.6964,1.9643,2.1429,0.53571,0.44643,2.3214,1.875,2.8571,1.9643,0.53572,0.0893,2.3214,0.625,2.7679,0.625,0.44643,0,5.0893,0.44643,5.0893,0.44643s1.7857-0.80357,2.7679-1.25c0.98214-0.44643,4.0179-1.25,4.4643-1.5179,0.44643-0.26785,1.5178-0.98214,2.6786-1.0714,1.1607-0.0893,4.1964-0.0893,5.0893-0.0893,0.89286,0,4.1072,0.0893,4.1072,0.0893s2.3214-0.0893,3.125,0.44642c0.80357,0.53572,1.6071,1.6072,1.9643,2.1429,0.35715,0.53572,0.625,1.4286,1.0714,1.6071,0.44643,0.17858,1.4286,0.35715,1.875,0.35715,0.44643,0,2.1429-0.26786,2.5-0.35715,0.35714-0.0893,2.2321-0.44642,2.2321-0.44642l0.0893-2.6786s-0.0893-1.7857,0.53571-2.0536c0.625-0.26785,4.4643-1.5178,4.8214-1.6964,0.35715-0.17857,1.25-1.6071,1.25-1.6071s-2.5-0.625-3.3036-0.625c-0.80357,0-1.25-1.4286-1.25-1.4286l1.0714-1.5179,0.17857-1.9643,0.98214-1.0714,0.80358-1.3393s-0.625-0.98214-0.80358-1.3393c-0.17857-0.35715-0.0893-1.4286-0.0893-1.4286l2.2321-1.1607,3.125-0.35714,2.4107-1.1607,3.4821-2.4107,1.7857-0.625s1.4286,0.0893,1.875,0.26786c0.44643,0.17857,2.4107,0.53571,2.5893,0.17857,0.17857-0.35714,1.6071-1.9643,2.0536-2.3214,0.44643-0.35714,2.6786-2.1429,2.6786-2.1429l1.4286-1.1607s0.98215-1.25,1.4286-1.5179c0.44643-0.26786,1.875-1.0714,2.4107-1.0714,0.53571,0,0.98214,0,1.3393-0.26785,0.35715-0.26786,1.1607-1.25,1.3393-1.6072,0.17857-0.35714,1.0714-0.80357,1.6071-0.89285,0.53572-0.0893,5-1.3393,5-1.3393l2.6786-1.5179s1.875-1.5178,2.0536-1.875c0.17857-0.35714,1.6071-2.8571,1.6071-2.8571l0.98214-1.875s-0.26786-1.4286-0.71428-1.7857c-0.44643-0.35715-2.1429-1.6072-2.1429-1.6072l-2.5-1.25s-1.25-0.80357-1.1607-1.6071c0.0893-0.80357,7.5-5.625,7.5-5.625s0.98215-1.6964,1.0714-2.0536c0.0893-0.35714,0.89286-1.9643,1.25-2.3214,0.35715-0.35714,2.5-2.0536,2.5-2.0536s1.4286-0.625,1.875-0.71429c0.44643-0.0893,3.5714-1.5178,3.5714-1.5178l1.25-0.98215s0.44643-2.0536,0.44643-2.5893c0-0.53572-0.80357-3.8393-0.80357-3.8393s-1.0714-0.53571-1.4286-0.89285c-0.35715-0.35715-1.25-0.80358-2.1429-0.80358-0.89286,0-2.6786,0-3.125-0.625-0.44643-0.625-1.3393-1.25-1.6964-1.875-0.35714-0.625-1.1607-1.7857-1.25-2.2321-0.0893-0.44643-0.80357-2.4107-0.98214-2.7679-0.17857-0.35714-1.0714-2.3214-1.0714-2.3214l-2.0536-3.5714-1.0714-2.7679,0.26786-2.0536,1.0714-0.625,0.80357-1.25,1.4286-1.875,0.625-0.98214-2.3214-1.25s-1.875,0.44642-2.2321,0.71428c-0.35715,0.26786-0.98215,1.3393-0.98215,1.3393s0.35715,0.625,0,0.80357c-0.35714,0.17857-2.3214,0.44643-2.3214,0.44643l-1.25,0.89285-0.71429,1.9643v1.6071l-0.98214,0.98215-2.0536,1.0714-1.3393,0.98215-1.1607,1.3393s-1.6964,0.0893-2.0536,0.0893c-0.35714,0-2.0536-0.625-2.0536-0.625l-2.6786,0.17857-2.3214-0.0893-1.9643-1.4286-1.4286,0.26786-2.0536-0.35714s-0.80357-0.71429-1.1607-0.71429c-0.35714,0-2.1429,0.625-2.1429,0.625l-1.5178,1.3393-0.98215,1.0714-2.6786,0.26785-1.9643-0.0893-2.3214,0.44643-2.2322,1.1607-3.3928,1.7857-2.3214,0.98215-1.3393,0.89285-0.89285,1.1607s-0.0893,0.35714,0.0893,0.71428c0.17857,0.35715,0.98214,1.4286,0.98214,1.4286l1.6072,0.80357,0.98214,0.89285,0.83,0.91,0.0893,1.1607-1.6071,2.1428-0.35714,2.2322-0.35715,1.875v2.6786l0.80358,1.6071,1.1607,1.4286s0.26786-0.44643,0.71429-0.80357c0.44642-0.35714,1.1607-2.3214,1.1607-2.3214v-2.0536l0.0893-2.0536,0.98214-1.875,1.6964-1.25,1.1607-0.17857,0.89286,1.1607s-0.0893,1.25-0.26786,1.6964c-0.17857,0.44643-0.53571,0.98214-0.35714,1.3393,0.17857,0.35714,0.89286,1.4286,0.89286,1.4286l-0.17858,2.7678s-0.35714,2.3214-0.35714,2.6786c0,0.35714-0.26786,2.5893-0.26786,3.0357v2.5893c0,0.89285,0,1.5178,0.0893,2.1428s0.0893,1.6964-0.0893,2.1429c-0.17857,0.44643-0.44642,1.25-0.71428,1.9643-0.26786,0.71428-0.35714,1.25-0.44643,1.9643-0.0893,0.71429-1.0714,1.6964-1.0714,1.6964s-0.71428,0.26786-0.98214-0.625-1.6071-0.98214-1.6071-0.98214-0.71429,0.44642-1.0714,0.98214c-0.35715,0.53571-0.89286,1.25-0.35715,1.6964,0.53572,0.44643,1.5179,1.6071,1.5179,1.6071s0.625,0.35714,0.26786,1.1607c-0.35714,0.80358-1.1607,1.0714-1.6964,1.4286-0.53571,0.35714-1.5179,0.89285-1.6964,1.25-0.17857,0.35714-0.71428,1.4286-0.71428,1.7857,0,0.35714-0.44643,2.0536-0.44643,2.0536l-1.3393,0.98214-1.875,1.3393s-2.2321,0.71429-2.6786,0.98214c-0.44643,0.26786-2.5,1.4286-2.8571,1.7857-0.35715,0.35714-0.53572,1.25-1.4286,1.6071-0.89286,0.35714-3.125,1.3393-3.125,1.3393l-0.98215,0.26785s-0.35714,0.80357-0.35714,1.1607c0,0.35714-0.26786,2.2321-0.26786,2.7678,0,0.53572-0.26785,0.98215-0.625,1.6964-0.35714,0.71429-0.98214,1.6964-1.6071,1.7857-0.625,0.0893-2.7679,0.71428-3.2143,0.89285-0.44642,0.17858-2.5,0.89286-3.0357,0.98215-0.53571,0.0893-2.8571,1.0714-2.8571,1.0714l-0.71429,0.80357-1.5179,1.1607-2.0536,0.71429-1.4286,0.80357-1.6964-1.0714-0.35714-0.98214-0.44643-1.25s-0.35714-0.35715-1.25-0.26786c-0.89286,0.0893-2.0536,0.44643-2.0536,0.44643s-1.3393-1.4286-1.6071-1.875c-0.26786-0.44643-1.875-3.125-1.875-3.125l-1.54-1.99-1.34-1.61s-1.1607-0.71429-1.6964-0.71429c-0.53571,0-2.6786-0.17857-3.0357-0.17857-0.35715,0-1.6072-0.89285-1.7857-1.1607-0.17857-0.26786-3.4821-4.2857-3.4821-4.2857l-1.875-0.89285-2.8571-1.9643-1.9643-2.2321-1.0714-1.6964-0.89286-0.625s-0.89285-0.26786-1.25,0.0893c-0.35714,0.35714-0.80357,0.53571-1.3393,0.89285-0.53572,0.35715-1.875,1.4286-1.875,1.4286l-1.3393,1.25-1.9643,1.1607-1.4286,0.89286s-0.89286,1.0714-0.98215,1.6071c-0.0893,0.53571-0.26785,1.1607-0.26785,2.0536,0,0.89286-0.35715,3.3036-0.35715,3.3036z\",\"name\":\"Buryat Republic\"},\"zb\":{\"path\":\"m588.41,500.07s1.1364,1.1364,1.6415,1.5152c0.50508,0.3788,1.6415,1.6415,2.2728,1.894,0.63134,0.25254,2.6516,1.6415,2.6516,1.6415s2.9042,1.0102,3.4093,1.0102h5.5558c1.1364,0,3.283,0.75762,3.283,0.75762s0.88388,0.63134,2.0203-0.25254c1.1364-0.88389,2.3991-1.6415,2.3991-1.6415s0.75762,0.25254,1.6415,0.63135c0.88388,0.3788,1.5152,1.2627,2.1466,1.2627,0.63135,0,3.4093-1.7678,3.4093-1.7678s2.6516-2.2728,3.1567-2.7779c0.50507-0.50508,2.5254-0.88388,3.5355-1.2627,1.0102-0.37881,5.4296-0.50508,5.4296-0.50508s1.894-1.2627,2.2728-1.894c0.37881-0.63135,1.7678-3.4093,1.894-3.9143,0.12627-0.50508,2.7779-2.3991,3.4093-2.9042,0.63135-0.50508,4.9245-2.5254,5.177-3.0305,0.25253-0.50508,2.0203-1.5152,2.0203-1.5152l3.1567,1.2627,2.9042,1.2627s2.2728,0.25254,2.9042,0.25254c0.63135,0,2.2728-0.50508,2.7779-0.88388,0.50508-0.37881,3.1567-1.7678,3.1567-1.7678s3.283,0.25254,3.7881,0.50508c0.50508,0.25253,1.7678,0.88388,2.3991,1.1364,0.63135,0.25254,3.9144,1.389,3.9144,1.389s3.6618,0.3788,4.4194,0.25254c0.75762-0.12627,2.5254-1.7678,2.7779-2.3991,0.25254-0.63134,0.75762-2.3991,1.6415-2.9042,0.88388-0.50507,4.2932-1.5152,4.2932-1.5152s1.389-0.12627,1.5152-1.6415c0.12627-1.5152,0.37881-2.9042-0.25254-3.5355-0.63135-0.63134-1.389-0.88388-1.7678-1.7678-0.3788-0.88389,0.88389-8.9651,0.88389-8.9651l1.6415-3.7881,1.2627-4.2932s1.389-2.2728,1.2627-2.9042c-0.12627-0.63134-0.37881-3.9143-0.37881-3.9143l-1-2.41s-1.1364-0.88388-1.5152-1.389c-0.37881-0.50507-1.0102-0.37881-1.5152-1.0102-0.50508-0.63135-1.7678-1.1364-1.7678-1.7678,0-0.63134-0.25254-1.5152,0.37881-2.0203,0.63134-0.50508,3.0305-3.0305,3.7881-3.4093,0.75761-0.37881,4.5457-2.5254,4.9245-3.0305,0.37881-0.50507,1.389-1.6415,1.7678-2.1466,0.37881-0.50508,0.88388-0.50508,0.63135-1.6415-0.25254-1.1364-2.6516-3.5355-2.6516-3.5355s-0.63135-0.88389-1.5152-0.88389c-0.88389,0-3.1567-0.3788-3.1567-1.0102,0-0.63134-0.37881-1.2627-0.12627-2.0203,0.25254-0.75762,2.0203-2.2728,2.2728-2.9042,0.25254-0.63135,0.37881-1.894,0.37881-1.894l-2.3991-1.6415-2.6516,0.12627s-0.25254-0.25253-0.25254-0.88388c0-0.63134,0.63135-2.7779,0.88388-3.283,0.25254-0.50507,0.50508-1.5152,0.63135-2.1466,0.12627-0.63134-0.25254-1.7678-0.75761-2.3991-0.50508-0.63135-1.5152-1.389-1.5152-1.389s-1.1364-0.50508-1.6415,0.12627c-0.50508,0.63134-1.1364,1.5152-1.1364,1.5152s-1.1364,0.12627-1.6415-0.25254c-0.50508-0.37881-0.88388-4.1669-0.88388-4.1669s-0.88389-1.2627-1.6415-1.389c-0.75762-0.12627-1.6415-0.12627-2.1466,0.50508-0.50507,0.63134-1.0102,1.0102-1.7678,1.5152-0.75762,0.50508-1.2627,1.1364-1.894,0.75762-0.63134-0.37881-1.389-0.75762-1.2627-1.389,0.12627-0.63135,0.75761-1.6415,0.88388-2.1466,0.12627-0.50507-1.7678-2.1466-1.7678-2.1466l-3.283-0.12627-1.1364-1.1364c-0.12627-0.75761,0.25254-2.5254,0.25254-2.5254l-1.389-1.5152-2.7779-4.0406-1.2627-1.894-3.1567-0.3788-1.1364-2.0203-0.25254-2.9042-1.2627-0.3788h-1.2627l-1.6415,0.63134-1.6415-1.0102-3.0304-0.63135-1.894,0.75762-0.37881,1.0102-0.12627,1.894,0.37881,1.894-0.25254,1.5152-0.50507,2.0203,0.75761,2.0203,0.50508,1.389,1.7678,1.5152,0.88389,0.88388,0.25254,1.894s-0.25254,1.0102-0.75762,1.389c-0.50507,0.37881-3.0305,1.2627-3.0305,1.2627s-2.3991,0.63134-2.9042,0.75761c-0.50508,0.12627-3.4093,0.75762-3.4093,0.75762l-1.389,1.5152-0.25254,1.6415,0.75762,2.5254,1.7678,3.283,1.6415,3.7881,0.75762,2.9042,2.0203,2.2728,1.2627,1.1364,2.1466,0.25254,2.2728,0.50507,1.7678,1.389,0.50507,1.6415,0.12627,1.894v2.3991l-1.894,1.6415-3.0305,1.2627-2.5254,1.2627-2.1466,2.0203-1.0102,1.7678-0.75761,2.1466-2.6516,1.6415-1.894,1.389-2.0203,1.5152-0.88388,0.88388v0.75762l0.88388,0.88388c0.50508,0.12627,2.1466,1.2627,2.1466,1.2627l1.894,1.0102s0.75762,0.88389,0.88389,1.389c0.12627,0.50508,0,1.5152-0.12627,2.1466-0.12627,0.63134-2.0203,3.6618-2.0203,3.6618l-1.894,1.6415-3.6618,2.0203-3.1567,0.63135-2.1466,1.0102s-0.75761,0.37881-1.1364,1.0102c-0.3788,0.63135-1.6415,1.2627-1.6415,1.2627l-2.2728,0.50507-1.0102,0.88388s-1.2627,0.88389-1.6415,1.389c-0.37881,0.50508-3.5355,2.9042-3.5355,2.9042l-0.88389,1.389s-0.75761,1.1364-1.389,1.2627c-0.63134,0.12627-2.2728,0.12627-2.2728,0.12627l-2.3991-0.88388-1.6415,1.389s-1.6415,0.37881-2.1466,0.88388c-0.50508,0.50508-2.7779,1.7678-2.7779,1.7678l-2.3991,0.63134s-1.894-0.25253-2.5254,0.12627c-0.63134,0.37881-1.2627,1.5152-1.2627,1.5152l0.63135,1.5152,0.25254,0.88388-0.88389,1.894s-1.0102,0.75762-1.0102,1.2627-0.88388,2.0203-0.88388,2.0203-0.50508,0.88388,0.25253,1.389c0.75762,0.50507,2.5254,0.88388,2.5254,0.88388s1.389-0.12627,1.5152,0.50508c0.12627,0.63134-1.1364,1.6415-1.1364,1.6415l-2.6516,0.75762-2.0203,1.2627-0.88389,1.6415z\",\"name\":\"Zabaykalsky Krai\"},\"am\":{\"path\":\"m662.32,397.46,4.6429-0.17857,2.3214-0.17858,3.5714-1.7857,2.6786,0.35714,3.5714,1.0714,2.1429,1.0714,2.6786,0.53571,4.4643-0.53571,3.0357,0,2.3214,0.53571,2.8571,2.1429,2.1429,0.89286,2.8571,0.35714,2.3214-1.7857,2.3214-0.71429,1.9643,0,2.1429,1.4286,2.1429,0.71429,2.5-0.71429,1.7857-1.9643,1.7857-1.25,4.1072,0,2.5-1.4286,2.1428-0.89286,3.75,0,1.4286,0,1.25-0.71429,0.53571-2.5,1.6071-1.0714,4.2857-2.3214,2.3214-0.89286,3.5714-1.9643,2.8572-1.4286,5-0.89286,3.0357,0,1.6071,1.4286l-0.37,3.2s-1.25,1.6071-1.9643,2.6786c-0.71429,1.0714-1.6072,2.6786-1.9643,3.3929-0.35714,0.71429-1.25,2.1429-1.25,2.1429s-0.53571,2.8571-0.71429,3.5714c-0.17857,0.71428-1.0714,2.8571-1.0714,2.8571s-1.25,1.7857-1.0714,2.5c0.17857,0.71428,1.25,1.25,1.25,1.25l0.89285,0.71428,3.2143-0.71428s1.7857-0.17857,2.6786-0.17857c0.89286,0,2.5,0.89285,2.5,0.89285l0.53572,1.9643,0.89285,2.6786s0.17857,0.53572,1.6072,0.53572,2.6786-1.4286,2.6786-1.4286l0.17857-2.3214s1.0714-0.89286,1.9643-0.89286c0.89286,0,2.5-0.53572,2.5-0.53572l1.25-2.1428,0.35715-2.5,1.9643-1.7857,2.3214,0.17857c0.71,0.19,3.03-1.6,3.03-1.6l1.4286-1.4286s0.89285-1.0714,1.9643-0.35714c1.0714,0.71428,2.3214,2.5,2.3214,2.5v2.8571l0.53572,1.6071,1.9643,1.7857s1.6071,0.71428,1.25,1.6071c-0.35714,0.89286-2.8571,1.9643-3.5714,1.9643-0.71428,0-3.5714,0.89285-3.5714,0.89285l-1.6071,0.17857-1.96,0.89s-0.71429,0.17857-0.17858,1.0714c0.53572,0.89286,1.9643,1.7857,1.9643,1.7857l1.25,0.89286,0.35714,1.9643-3.2143,2.3214-1.6072,3.0357-0.17857,2.1429-1.6071,2.3214-2.6786,0.89285-1.6071,1.4286,1.9643,1.9643,0.35714,1.7857-2.3214,2.3214-1.25,3.5714,1.6071,2.8571s3.5714,1.4286,4.2857,1.6072c0.71429,0.17857,4.8214,0.71428,4.8214,0.71428s1.4286,0.71429,1.9643,1.25c0.53571,0.53572,0.71428,3.2143,0.71428,3.2143l0.35715,2.5s0,0.53571,0.71428,1.0714c0.71429,0.53571,0,3.5714,0,3.5714l-0.71428,2.8571-0.53572,1.7857-1.25,1.7857-3.2143,0.35714-4.1072-0.17857-2.8571-1.4286-1.77-0.53-3.04,1.07h-3.3929-2.5l-3.2143,0.89286s-2.6786-0.35714-3.5714-0.53572c-0.89286-0.17857-3.5714-2.1428-3.5714-2.1428l-3.22-2.67-1.07-2.15-1.43-2.14-1.7857-1.0714-1.0714-1.9643s0-1.0714-0.71428-1.6072c-0.71429-0.53571-2.6786-0.71428-2.6786-0.71428l-0.89286-1.25-1.7857-2.8571-1.9643-2.5s-1.25-1.4286-1.9643-1.6072c-0.72-0.18-1.79-0.36-2.15-1.43-0.35715-1.0714-2.3214-2.6786-2.3214-2.6786l-2.8572-1.4286-2.6786-1.4286-3.0357-0.17857-2.6786-0.17858s-0.71429,0.89286-1.6072,1.0714c-0.89285,0.17857-4.4643-0.35714-4.4643-0.35714l-3.5714-1.25-2.3214,0.35714-1.9643,0.89286-1.6072,1.4286-3.75,0.71429s-3.2143,0.71428-3.3928,0c-0.17858-0.71429-2.8572-4.1072-2.8572-4.1072l-1.7857-1.4286h-1.6071l-1.0714-1.0714v-2.1428l2.1428-2.1429,0.17858-1.4286-0.89286-1.4286-1.25-0.89286-2.1429-0.17857s-0.71428,1.0714-0.71428,0,0.71428-3.3929,0.71428-3.3929l0.89286-2.3214-0.35714-1.9643-1.25-1.7857-1.7857-0.71428-1.25,0.71428-1.25,0.71429-1.25-0.17857s-0.35714-0.71429-0.35714-1.4286c0-0.71429-1.25-2.6786-1.25-2.6786l-0.71429-0.71428-1.7857-0.17857-0.89286,0.89285-1.4286,0.89286-2.5,0.53572s-0.35714-0.35715-0.17857-1.0714c0.17857-0.71429,0.71428-2.5,0.71428-2.5l-1.25-1.4286-0.51-0.52-1.79-0.18h-2.1429l-0.35714-1.0714v-2.1429z\",\"name\":\"Amur Oblast\"},\"ch\":{\"path\":\"M876.72,53.094c-0.34,0-0.66,0.094-0.66,0.094l-1.78,2.124-4.47,1.969s-6.05,2.853-7.12,3.031c-1.07,0.179-1.44,1.969-1.44,1.969s0.37,2.514,0.19,3.407c-0.18,0.892-1.44,1.406-1.44,1.406s-2.32,1.428-2.5,2.5c-0.18,1.071,0.91,2.156,0.91,2.156s2.66,0.906,3.37,0.906c0.72,0,2.85-0.375,3.56-0.375,0.72,0-0.34,1.625-0.34,1.625l-0.91,1.782-2.31-0.907-3.03-0.719s-2.14,0.554-3.03,0.376c-0.89-0.179-2.31-1.438-2.31-1.438l-2.69,0.531-2.88,0.375h-1.06s-0.53,2.656-1.25,2.656c-0.71,0-2.12,1.782-2.12,1.782l-3.41,0.187-2.84,2.875s-2.86,2.496-3.75,3.032c-0.9,0.535-1.61,0.531-2.5,0.531-0.9,0-2.5,1.062-2.5,1.062l-4.85,3.219-5.15,1.062-3.07,0.907s-1.04,2.861-1.93,3.219c-0.9,0.357-2.88,1.968-2.88,1.968l-3.22,1.938-2.12,1.966-2.16,3.03-1.25,1.97-1.06,2.5v3.22s-0.91,0.72-1.63,0.72c-0.71,0-2.84,1.25-2.84,1.25s-0.9,2.51-1.44,3.41c-0.53,0.89-2.85,1.76-3.56,2.12s0.34,1.25,0.34,1.25l2.35,0.53,0.53,2.16,2.69,0.53h2.65,3.75s1.44,1.07,1.97,1.78c0.54,0.72,1.63,1.78,1.63,1.78l-1.82,2.5-2.5,1.1-2.31-0.72s-1.6,1.25-2.31,1.25c-0.72,0-2.16,1.59-2.16,1.59s-1.42-0.71-2.31-1.25c-0.89-0.53-1.96,0-3.03,0s-1.26,1.26-1.44,1.97-0.87,2.84-0.87,2.84-1.09,1.79-1.63,2.5c-0.53,0.72-2.66,2.69-3.37,3.22-0.72,0.54-1.81,0.54-4.13,0.72s-1.07,1.26-1.25,2.16c-0.18,0.89-1.06,3.03-1.06,3.03s-2.15,1.24-2.69,2.31c-0.53,1.07-0.53,2.67-0.53,3.56,0,0.9,0.53,1.82,0.53,1.82h1.06l0.19-0.72,0.19-1.97,0.72-1.06,0.72,0.53,3.9,1.59,5,3.41,0.38,0.87-0.38,5.19-1.06,2.84-4.09,4.47-2.88,3.94-0.34,2.5,1.25,0.19h1.59s-0.17,1.42-0.53,2.31,0.34,1.59,0.34,1.59l2.88,1.25,3.75,0.38,4.62-0.19,2.69,3.41,2.16,1.78h4.47c1.25,0,1.06,2.5,1.06,2.5l1.06,1.59,3.94-0.34s5.36-1.44,6.25-1.44,3.2-0.53,3.56-1.25c0.36-0.71,2.69-1.59,2.69-1.59l1.97-0.91h3.75s2.66-1.24,3.37-1.59c0.72-0.36,0.74-1.98,1.1-2.69,0.35-0.71,0.87-3.03,0.87-3.03l1.25-2.5h1.63l1.78-1.06,1.06-1.63,1.44-0.34,2.31-1.44,1.06-1.25s0.91-0.89,1.63-1.78c0.71-0.89,0.87-1.6,1.4-2.31,0.54-0.72,2.51-1.44,3.22-1.97,0.72-0.54,2.15-2.14,2.5-3.03,0.36-0.9,1.63,0,1.63,0l4.09,0.68s3.22-1.04,5.72-1.93c2.5-0.9,1.08,1.06,0.91,1.78-0.18,0.71,0,3.2,0,4.09s0.88,3.22,1.78,4.47c0.89,1.25,3.9-1.44,3.9-1.44s3.05-1.78,3.94-2.5c0.89-0.71,3.94,0,3.94,0h6.06v-2.84c0-0.72,1.43-3.23,1.97-4.13,0.54-0.89,1.25-3.56,1.25-3.56l0.72-2.5-0.19-4.81s1.79-1.97,3.22-1.97,2.69,1.59,2.69,1.59l4.28,0.91,1.44-0.53s-0.19-3.22-0.19-3.94c0-0.71-0.19-2.84-0.19-2.84l-0.53-3.22s-0.54-2.51-0.72-3.41c-0.18-0.89-0.87-2.12-0.87-2.12l-2.5-1.63,1.25-0.87,4.09-0.38s1.96-2.66,2.5-3.37c0.54-0.72,2.84-2.35,2.84-2.35v-2.5s-1.04-2.13-1.93-3.03c-0.9-0.89-2.35,0.18-3.07,0.53-0.71,0.36-3.03-0.34-3.03-0.34s-1.41-0.88-2.12-0.34c-0.72,0.53-1.63,1.06-1.63,1.06l-1.4-1.06-1.97,1.78-1.44-0.72s-2.84-1.79-4.09-1.25c-1.25,0.53-1.97-0.72-1.97-0.72h-2.5s-0.56,1.25-1.1,1.97c-0.53,0.71-3.03,0.87-3.03,0.87l-2.84,0.91-2.69,3.75-2.69,0.53,1.25-2.5,0.19-1.59-3.03-0.38s2.13-0.88,2.84-1.06c0.72-0.18,3.41-1.06,3.41-1.06l1.97-0.91,0.34-1.59s1.78-3.41,1.78-4.13c0-0.71-0.68-3.22-0.68-3.22l-0.91-2.31s-2.5-4.63-3.22-5.34c-0.71-0.72-1.05-1.78-2.12-1.78-1.08,0-3.07,0.68-3.07,0.68l-1.4,0.91-1.25-1.06s-2.17-1.98-3.6-2.159c-1.42-0.178,0.38-0.719,0.38-0.719l0.87-1.593s-0.16-1.973,0.38-2.688c0.53-0.714,1.97,1.25,1.97,1.25s2.67,1.438,3.56,1.438,1.78,0.531,1.78,0.531,3.41-0.371,4.13-0.906c0.71-0.536,0.68-2.313,0.68-2.313l0.19-2.687,0.72-1.25,1.25-1.782s0.36-1.964,1.25-2.5c0.89-0.535,1.79,0,2.69,0,0.89,0,2.31,1.626,2.31,1.626l1.59,0.718,2.5-1.437s1.28-2.139,1.82-3.031c0.53-0.893,2.84-1.782,2.84-1.782l2.84-2.156,1.44-3.219s2.14-1.973,2.5-2.687c0.36-0.715-0.34-1.782-1.59-1.782h-1.78l-1.82-1.062-1.93-0.188-3.07-1.781-3.18-0.187h-3.75c-0.9,0,0-0.875,0-0.875l2.5-1.625,0.68-2.5-1.06-1.25-2.5-0.532,1.78-1.25,0.53-1.25-2.31-0.531v-2.5s-0.35-1.785-0.53-2.5c-0.09-0.357-0.45-0.437-0.78-0.437zm-77.19,16.062c-0.22-0.01-0.48,0.081-0.78,0.282-1.61,1.071-3.94,2.312-3.94,2.312-1.07,0.357-1.79,1.42-1.97,2.312-0.17,0.893-0.53,2.88-0.53,3.594,0,0.715,0.2,2.496,1.1,3.032,0.89,0.535,3.03,1.598,3.03,2.312s-0.56,2.321,0.15,2.5c0.72,0.179,1.44-0.522,1.97-1.594,0.54-1.071,0.36-3.419,0.72-4.312s1.45-2.491,1.63-3.563c0.17-1.071-0.19-5.187-0.19-5.187s-0.24-1.644-1.19-1.688z\",\"name\":\"Chukotka Autonomous Okrug\"},\"ha\":{\"path\":\"m779.82,276.93c0.53572-0.71428,1.4286-1.4286,1.9643-2.3214,0.53571-0.89285,1.7857-2.5,1.7857-2.5s1.7857-0.17857,4.1072,0.17858c2.3214,0.35714,4.4643,1.4286,5.7143,2.1428,1.25,0.71429,2.6786,1.25,3.0357,2.3214,0.35714,1.0714,1.6071,2.1429,1.6071,3.3929s-1.4286,3.5714-1.4286,4.2857c0,0.71429-0.17857,2.5,0.71428,3.3929,0.89286,0.89286,0.71429,1.6071,1.7857,1.4286,1.0714-0.17857,3.9286-1.0714,5-1.25,1.0714-0.17857,3.3929,0,5,0.53572,1.6071,0.53571,2.8571,0.89285,3.2143,1.6071,0.35715,0.71428,1.0714,1.4286,0.89286,2.5-0.17857,1.0714-2.5,2.8571-2.5,2.8571l0.17857,1.4286,0.89286,1.6072s1.6071,0.71428-0.35714,0.89285c-1.9643,0.17857-3.0357-0.71428-3.0357-0.71428s0.17857-0.17857,0-1.0714c-0.17857-0.89286-0.71428-1.7857-1.7857-1.4286-1.0714,0.35714-2.3214,1.9643-3.0357,2.5-0.71428,0.53571-2.8571,3.0357-2.8571,3.0357s-1.9643,0.71429-2.8571,1.7857c-0.89286,1.0714-4.1071,4.6428-4.1071,4.6428s-0.17858,1.25-1.0714,2.5c-0.89286,1.25-2.3214,2.3214-2.5,3.5714-0.17857,1.25,0,4.1071,0,4.1071s1.4286,1.0714,1.6071,2.3214c0.17857,1.25-0.89286,1.9643-1.25,2.8572-0.35714,0.89285-1.4286,0.53571-1.4286,1.7857s0.17857,5.7143,0.17857,5.7143l-0.35714,4.8214-0.35715,4.1072s-1.0714,1.9643-1.25,3.2143c-0.17857,1.25-0.35714,2.6786-0.35714,3.3929,0,0.71429-0.17857,3.0357-0.17857,3.75,0,0.71429-0.71429,1.9643-0.89286,2.6786-0.17857,0.71429-1.0714,1.25-0.17857,1.9643,0.89286,0.71428,1.9643,1.9643,1.9643,1.9643l-1.7857,3.3929-0.17857,1.9643-1.7857,3.3928-1.25,3.75-0.35715,4.1072-0.71428,1.6071-3.2143,4.1071,0.35715,2.6786s2.1428,1.0714,2.8571,1.0714c0.71428,0,3.3929,0.53572,4.4643-0.17857s2.5-1.4286,3.2143-1.7857c0.71429-0.35715,1.6071-0.89286,2.8571,0.35714s2.5,4.4643,2.5,4.4643,0.17857,1.4286,1.4286,1.0714c1.25-0.35714,1.9643-2.1428,1.9643-2.1428l-1.0714-2.1429,0.53572-2.6786-0.53572-1.7857-1.6071-2.5s-1.7857-1.4286-2.5-1.4286c-0.71429,0-3.75,1.4286-3.75,1.4286s-1.9643,2.3214-1.6071,1.4286c0.35714-0.89285,1.9643-3.3928,1.9643-3.3928l1.6071-0.35715,1.25-1.7857s0.89286-0.71429,1.9643-0.71429,3.2143-1.25,3.2143-1.25,1.25-2.6786,1.0714-0.89285c-0.12,1.78-1.72,4.28-1.72,4.28l1.0714,2.1429,1.9643,2.1429,0.53572,1.7857-0.17857,2.6786,2.3214,1.4286v1.6072,2.8571l1.7857-0.71429c0.71429-0.71428,2.1429-4.2857,2.1429-4.2857l0.89285-3.2143v-2.1428s-1.6071-1.7857-0.89285-1.9643c0.71428-0.17857,4.6428-2.1429,4.6428-2.1429s2.1429-0.53571,3.0357-0.53571c0.89286,0,4.1071,0.17857,4.8214,0.35714,0.71428,0.17857,4.4643,1.6071,4.4643,1.6071s4.4643,1.25,5.1786,1.25c0.71429,0,1.9643,1.7857,1.9643,1.7857s-0.89286,1.9643,0.53571,2.8571c1.4286,0.89286,4.8214,3.0357,4.8214,3.0357l3.75,2.1428s1.4286,3.3929,1.4286,4.2857c0,0.89285-0.17857,4.6428-0.17857,5.7143,0,1.0714,0,5,0.53572,5.7143,0.53571,0.71428,1.0714,2.3214,2.1428,3.2143,1.0714,0.89286,3.2143,4.2857,3.2143,4.2857l2.5,1.25,3.0357,6.9643s1.4286,1.4286,1.6072,2.3214c0.17857,0.89286,1.6071,3.0357,1.7857,3.75,0.17857,0.71429,1.6071,5,1.7857,5.7143,0.17857,0.71428-0.53572,8.5714-0.53572,8.5714l0.53572,3.3928s0,1.25-0.89286,1.9643c-0.89286,0.71429-3.5714,1.6071-3.5714,1.6071l-1.4286,0.17857-1.4286-1.7857-0.53572-2.6786-3.0357-3.0357s-1.9643-1.25-2.6786-0.71428c-0.71429,0.53571-2.3214,1.9643-2.3214,1.9643s-0.89286,1.7857-1.25,2.5c-0.35714,0.71429-1.4286,1.25-0.89286,2.3214,0.53572,1.0714,1.9643,2.6786,1.9643,2.6786s0.35714-0.71428,2.1428-0.53571c1.79,0.18,2.14,2.68,2.14,2.68l-0.89286,3.2143s-1.9643,1.25-2.6786,1.6071c-0.71428,0.35714-2.8571,1.25-1.7857,2.1429,1.0714,0.89285,2.3214,1.25,2.3214,1.25s0.71428,1.25,0,1.9643c-0.71429,0.71429-2.3214,2.1429-2.3214,2.1429s-1.7857,0.35714-3.0357,1.25-3.2143,1.4286-4.2857,1.6071c-1.0714,0.17857-2.8571,1.25-4.1071,0s-2.1429-0.89285-2.5,0.17857c-0.35715,1.0714-1.6072,0.89286-1.7857,1.9643-0.17857,1.0714,0,2.8571,0.35715,3.5714,0.35714,0.71428,0,3.0357,0,3.0357s-2.3214,1.9643-2.5,1.25c-0.17858-0.71428,0.17857-2.3214-0.35715-3.2143-0.53571-0.89286-2.3214-2.5-2.3214-2.5s-2.8571-1.4286-1.7857-2.3214c1.0714-0.89286,2.8571-2.6786,3.2143-3.2143,0.35714-0.53571,0.35714-3.0357,0.35714-3.0357s-2.1429-0.89286-2.6786-1.7857c-0.53572-0.89285-1.0714-3.3928-1.0714-4.1071,0-0.71428-0.71429-3.3929,0.17857-3.75,0.89286-0.35714,2.8571-1.9643,2.8571-1.9643l0.53572-1.9643s-0.53572-0.35714-2.1429-0.35714c-1.6071,0-2.5-0.17857-3.9286,0.89285s-1.4286,1.0714-2.5,2.5-2.1429,2.6786-3.2143,3.2143c-1.0714,0.53571-2.6786,0.71429-2.6786,0.71429s-4.1071-0.71429-4.2857-1.4286c-0.17857-0.71428-1.6072-1.9643-2.5-1.9643-0.89286,0-2.1429,0.35714-3.2143,0.89286-1.06,0.55-1.95,0.73-2.84,0.73-0.89286,0-4.2857,1.0714-4.2857,1.0714s-2.1428,1.7857-3.2143,1.7857c-1.0714,0-2.1014,0.40945-2.28-0.66198-0.17857-1.0714-1.0823-3.4216-1.0823-3.4216l-1.5332-4.3507s-2.6677-0.69261-3.7392-0.87119c-1.0714-0.17857-3.8221-0.85138-3.8221-0.85138l-2.4892-1.1525s-2.1249-2.2078-1.7678-2.9221c0.35714-0.71428,1.7028-4.0044,2.4171-4.5401,0.71428-0.53572,1.2608-1.4069,1.2608-1.4069l-1.25-2.3214s-1.7965-1.2085-0.90368-1.7442c0.89286-0.53571,3.7608-2.0058,3.7608-2.0058l2.0906-4.0892,1.5025-3.2341,3.5498-2.6767-0.89285-1.9643-2.4171-1.7118-0.11357-1.6288,2.5306-1.1237,4.1071-0.71428,2.6786-0.89286,1.0714-1.25-0.53571-1.6071-1.986-1.47-1.0083-2.5108-0.0631-2.4477-1.47-2.0058-1.7226-0.67282-2.2583,1.7442s-1.6703,1.0823-2.3846,1.4394c-0.73,0.34-2.87,0.19-2.87,0.19l-2.3214,1.25-0.44008,2.5-0.80992,2.3214-2.5,1.0714-2.1429,0.53571-0.53571,2.4585-1.4809,1.4286-2.3431-0.17857-0.99746-2.4585-1.0714-2.5s-1.2608-0.51404-1.9751-0.69262c-0.71428-0.17857-4.4534,0.51405-4.4534,0.51405l-1.7857-0.17857-1.7857-1.25,1.9643-5.5357,0.89286-4.1072s1.25-2.3214,1.9643-3.0357c0.71428-0.71429,3.0357-5,3.0357-5l0.35714-2.6786s-0.53571-1.25-1.6071-1.6072c-1.0714-0.35714-5.3571,0.17858-5.3571,0.17858l-2.6786,0.53571s-3.3424,2.5325-4.0567,1.8182c-0.71428-0.71429-1.1219-3.9611-1.1219-3.9611s-3.0376-1.6288-3.0376-2.5217c0-0.89286,1.9662-1.5855,1.9662-1.5855s0.53571-1.0714,0.71428-2.1429c0.17857-1.0714-0.20024-2.8138-0.20024-2.8138l-2.6281-0.77741s-1.4069-0.89472-2.1212-1.0733c-0.71428-0.17857,1.1996-2.2998,1.1996-2.2998l0.89286-1.6072-0.35714-1.0714s-2.2493-0.54655-2.2493-1.2608c0-0.71429,1.6505-3.3604,1.6505-3.3604l-1.5873-1.6703-2.5415-0.82971-0.80806-1.618s0.69262-0.73594,1.5855-1.0931c0.89286-0.35714,1.0498-0.61866,1.0498-0.61866l-1.3852-0.89286v-2.4062c0-0.71429-0.074-2.3304-0.074-2.3304s-1.2718-1.1078-1.4502-2.345c-0.1894-1.3131,2.6371-1.7532,2.6371-1.7532l-0.93619-0.82972-0.49238-1.4917,0.2417-2.1339,2.7525-0.86037,2.9094-0.89285,2.4477,0.1371,0.70345-1.8922,3.2034,0.21106,2.9203,0.0108s0.35715-1.7749,0.35715-2.4892c0-0.71428-1.8705-1.618-1.4286-2.2691,0.40112-0.59101,1.5657-0.89285,2.4585-1.0714,0.89286-0.17858,3.9286-0.71429,4.1072-1.4286,0.17857-0.71428,2.5829-6.1562,2.5829-6.1562s0.96683-1.0083,1.6811-1.1869c0.71429-0.17857,3.9286-0.93432,3.9286-0.93432l-1.764-2.794-3.0051-2.8246-1.6378-4.8539-2.3214-2.1428-1.4286-1.7857v-5.3571l3.0357-6.7857-1.0714-3.2143-0.72512-5.8585,0.81889-2.85s3.5498,0.11543,4.264,0.29401c0.71428,0.17857,7.7634,0.22004,7.7634,0.22004s0.95599-4.0152,1.3131-4.7295c0.35714-0.71428,1.3871-0.826,2.28-1.0046,0.89286-0.17857,3.3495-0.62051,3.3495-0.62051l2.5433,1.1562,1.6071-1.0714z\",\"name\":\"Khabarovsk Krai\"},\"eu\":{\"path\":\"m781.96,462.82c0.98214,1.875,1.1607,1.875,1.875,2.5893l2.6786,2.6786s0.80357,1.1607,1.0714,1.7857c0.26786,0.625-0.0893,1.6964,0.625,1.9643,0.71429,0.26785,2.3214,0.53571,2.7679,0.625,0.44643,0.0893,1.4286,1.0714,2.3214,1.1607,0.89285,0.0893,1.6071,0.0893,2.1428-0.35714,0.53572-0.44643,1.0714-1.25,1.6964-1.7857,0.625-0.53571,2.5893-1.4286,3.125-1.6964,0.53572-0.26785,1.875-0.625,2.3214-1.0714,0.44643-0.44643,1.1607-0.98215,1.1607-2.0536s0.26785-2.7678,0.71428-3.125c0.44643-0.35714,2.9464-1.9643,3.5714-2.5,0.625-0.53571,1.6964-2.2321,2.1429-2.8571,0.44643-0.625,1.875-2.6786,2.2321-3.2143,0.35714-0.53572,2.1429-2.0536,2.1429-2.0536l2.0536-2.3214,0.98214-1.0714,2.6786-1.875,0.71429-0.80357,0.17857-1.1607,0.0893-0.35714-1.5179-0.17857-1.875-0.0893-1.6964,0.44643-1.6964,1.1607-1.3393,1.25-0.80358,1.0714-1.25,1.6072-1.4286,0.98214-1.7857,0.625s-1.25,0.17857-1.7857,0c-0.53571-0.17857-2.1428-0.71429-2.1428-0.71429l-1.4286-0.625-0.80358-0.98214-0.89285-0.625s-0.80357-0.26786-1.1607-0.17857c-0.35714,0.0893-1.7857,0.625-1.7857,0.625l-2.0536,0.71429-2.4107,0.17857s-1.0714,0.44643-1.7857,0.625c-0.71429,0.17857-2.4107,0.80357-2.4107,0.80357l-1.4286,0.89285-1.875,0.26786-0.80357,0.17857-0.35714,0.98215-0.0893,1.4286s-0.44643,1.1607-0.44643,1.5178c0,0.35715-0.53571,1.875-0.53571,1.875l-0.53571,1.1607-0.71429,1.4286z\",\"name\":\"Jewish Autonomous Oblast\"},\"pr\":{\"path\":\"m822.68,473.71c0,0.53571,0.53571,1.25,0.53571,1.25l1.4286,1.4286s0.35715,1.0714,0.44643,1.4286c0.0893,0.35714-0.625,2.0536-0.625,2.0536l-1.1607,2.7679s-0.0893,2.2321,0,2.5893c0.0893,0.35715,0.625,1.0714,0.89285,1.5179,0.26786,0.44643,0.80358,1.1607,0.80358,1.5179,0,0.35714-0.80358,1.9643-0.80358,1.9643v1.9643c0,0.44643-0.44642,1.9643-0.44642,1.9643s-0.17858,0.0893-0.17858,1.0714v2.7679c0,0.71429-0.26785,3.0357-0.35714,3.3929-0.0893,0.35714-1.9643,0.53571-2.3214,0.53571-0.35714,0-1.3393-0.98214-1.3393-0.98214s-0.98215-1.6071-1.1607-2.0536c-0.17857-0.44643-1.3393-1.5179-1.3393-1.875,0-0.35715-0.26786-1.6072-0.89286-1.7857-0.625-0.17857-1.5179,0.26786-1.5179,0.26786s-0.53571,0.89286-0.625,1.25c-0.0893,0.35714,0,0.98214-0.0893,1.4286-0.0893,0.44643-0.71429,2.5-0.71429,2.5s-0.625,0.625-1.1607,0.89286c-0.53572,0.26786-2.2322,1.0714-2.2322,1.6071,0,0.53572,1.0714,0.71429,2.1429,2.0536,1.0714,1.3393,3.125,4.6429,3.125,4.6429l2.5,4.2857,1.4286,4.9107s0.44643,1.6071,0.625,2.1429c0.17857,0.53571,0.89286,1.1607,0.98215,1.9643,0.0893,0.80357,0.53571,2.5-0.35715,2.8571-0.89285,0.35715-4.0178,1.0714-4.0178,1.0714l-0.71429,0.625,1.1607,0.71429s0.625,0.44643,1.0714,0.53571c0.44643,0.0893,0.53572,1.4286,0.98215,1.4286,0.44642,0,1.875-0.35714,2.4107-0.71428,0.53571-0.35714,1.3393-0.625,2.1429-0.625,0.80357,0,1.4286-0.44643,1.4286-1.0714,0-0.625-0.625-3.3929-0.625-3.8393,0-0.44642,1.5179-2.5893,1.5179-2.5893v-2.1429c0-0.35714-0.17858-1.4286,0.35714-1.5179,0.53571-0.0893,2.9464-0.71428,2.9464-0.71428s0-1.1607,1.0714-0.26786c1.0714,0.89286,1.5178,2.9464,1.5178,2.9464s1.875,0.35714,2.2322,0.17857c0.35714-0.17857,0.98214-0.625,1.5178-0.98214,0.53572-0.35714,2.5893-0.53572,3.3929-0.53572,0.80357,0,2.1429-0.44642,2.1429-0.44642l-0.26786-1.1607s2.0536-1.25,2.5-1.5179c0.44643-0.26785,2.2321-1.1607,2.8571-1.7857s1.5179-1.4286,1.9643-2.4107c0.44643-0.98215,1.3393-3.125,1.5179-3.4822,0.17857-0.35714,1.1607-2.5,1.4286-3.2143,0.26785-0.71429,0.89285-2.3214,1.3393-3.125,0.44643-0.80357,1.5179-2.8572,1.5179-2.8572s-0.0893-2.3214-0.0893-2.8571c0-0.53571-0.26785-1.875-0.625-2.8571-0.35714-0.98214-0.53571-1.1607-0.44642-2.1429,0.0893-0.98214,0.98214-1.6071,1.6071-2.0536,0.625-0.44643,1.0714-1.4286,1.0714-1.9643,0-0.53571-1.25-2.9464-1.25-2.9464s0.0893-1.1607,0.35714-1.6964c0.26786-0.53572,1.5179-1.7857,1.5179-1.7857l0.17857-2.9464s0.80357-2.2321,0.80357-2.6786c0-0.44643,0.26786-3.9286,0.26786-3.9286l0.89285-2.1429s0.26786-3.3928,0.26786-3.9286c0-0.53571-0.53571-5-0.53571-5.5357,0-0.53572-0.17857-4.1071-0.17857-4.7321s-0.71429-2.1429-0.71429-2.5893c0-0.44643,0.0893-2.1429,0.26786-2.5893,0.17857-0.44643,0.98214-1.9643,0.98214-1.9643s-0.0893-2.0536-0.0893-2.5893c0-0.53571,0.17858-1.6964-0.44642-1.7857s-2.3214,0.80357-2.3214,0.80357l-1.7857,0.71429-1.5178,0.17857-0.71429-0.44643-1.0714-1.4286s-0.26786-1.4286-0.26786-1.7857c0-0.35714-0.53571-1.1607-0.53571-1.1607l-1.25-1.3393-1.3393-1.3393-1.4286-0.71429-1.0714,0.17857s-0.98214,0.17858-1.0714,0.53572c-0.0893,0.35714-0.53572,0.44643-0.80358,0.80357-0.26785,0.35714-1.1607,1.3393-1.1607,1.3393l-0.53571,1.0714-0.44643,1.0714-0.80357,0.80357-0.17858,0.71429,0.35715,0.80357,0.89285,0.98214s0,0.71429,0.53572,0.80358c0.53571,0.0893,1.0714,0.0893,1.0714,0.0893h1.3393l1.25,0.625,0.71429,0.80357,0.0893,1.3393-0.26785,1.4286-0.44643,1.25-0.53572,0.71429-1.5178,0.89285-1.7857,0.89286-0.89285,0.89286,0.26785,0.80357,1.9643,0.80357,0.80357,0.98214-0.0893,0.71429-0.80357,1.0714-1.0714,1.0714-1.875,0.89286-1.7857,0.98214-3.64,1.44-1.6964,0.44643-1.9643,0.26786-0.89286-0.44643-1.25-0.71429s-0.53571-0.26786-0.89285,0c-0.35715,0.26786-0.625,0.98214-0.625,0.98214l-1.5179,1.0714-0.53571,1.6964,0.0893,1.3393s0.35714,0.71428,0.44643,1.1607c0.08,0.44,0.08,1.33,0.08,1.33l-0.0893,1.6071-0.98214,1.0714z\",\"name\":\"Primorsky Krai\"},\"ma\":{\"path\":\"m829.64,182.46s1.0714,0.71428,2.1429,1.25c1.0714,0.53571,3.0357,2.1429,3.2143,2.8571,0.17857,0.71429,0.17857,2.3214,1.0714,2.8571,0.89286,0.53572,3.5714,1.0714,3.5714,1.0714l1.9643,0.89286,1.0714,1.7857,3.0357,1.6072s0.71429,1.0714,0.17857,1.9643c-0.53571,0.89286,0,2.6786,0,2.6786l2.5-0.35714,2.8572,0.35714,1.6071,2.3214,1.9643,2.6786,2.1429,1.0714,1.9643,2.1429,1.0714,1.9643,0.17857,2.5s-0.35715,2.5,0,3.2143c0.35714,0.71429,1.0714,3.75,1.0714,3.75l1.0714,1.7857s0.53572,1.0714,0.53572,1.7857c0,0.71428-0.89286,2.1429-0.89286,2.1429l0.17857,1.7857-1.9643-0.53571-0.35715-1.9643s0.35715-0.71429-0.53571-0.35714c-0.89286,0.35714-1.7857,1.4286-1.7857,1.4286s-0.35715,0.89286-1.0714-0.53572c-0.71429-1.4286-1.7857-1.9643-1.7857-1.9643s-1.6071-0.71429-1.6071-1.9643-1.7857-2.3214-1.7857-2.3214l-1.6072-1.4286s-0.35714,1.7857-0.35714,2.5c0,0.71429,1.4286,1.4286-0.35714,1.4286s-4.1072,0.71429-4.1072,0.71429l-0.89285,1.0714-0.35715,2.6786-1.25,1.25-2.6786,2.8571-0.35714,2.3214-1.0714,1.9643,0.53572,2.3214,1.4286,1.4286s0.53571,0.71428,0.53571,1.4286v2.6786l0.17857,1.6071,1.6072,1.4286,0.17857,4.4643v4.4643l0.17857,3.0357,1.7857,2.6786,1.0714,3.0357,0.35714,0.89285,1.9643,0.35715,1.0714-1.25,1.9643-1.0714s1.6072-0.17857,2.3214-0.17857c0.71429,0,1.6072,0.89285,1.6072,0.89285l0.17857,0.89286-1.7857,1.4286-1.7857,0.71429v1.0714l-0.71429,0.89285-1.7857,0.89286-1.25,0.53571-0.53572,0.71429-0.17857,2.6786v2.3214l-0.89285,0.71429-1.7857-0.89286-0.71428,1.4286-0.53572,2.5-1.0714,1.25-3.2143,0.71429-1.25-0.17858-0.53572-1.6071,2.5-1.6071,1.25-1.9643s1.9643-1.7857,0.53572-1.7857-2.6786,1.0714-2.6786,1.0714l-0.89286,1.25-0.89286,0.53571s-0.89286,0.35714-1.7857-0.17857c-0.89286-0.53571-2.3214-0.71429-2.3214-0.71429s-1.25,0.89286-1.25,1.4286c0,0.53571,0.35714,1.4286-0.53572,1.4286-0.89285,0-3.2143,0.17857-3.2143,0.17857l-2.5,1.6071-2.5,0.89286-1.0714,2.1429,0.35714,1.7857,0.53572,1.9643,0.35714,0.89285,1.6071,1.0714s0.17857,0.89286-1.7857,0.89286h-4.4643l-1.0714,2.1429-1.0714,1.25-2.5,0.35714-2.1429-2.8571-2.6786-1.25s-1.9643-0.71429-2.6786-0.71429c-0.71429,0-3.3929,0.17857-3.3929,0.17857l-2.1429,0.89286-1.7857,0.17857-1.25-0.89286-1.0714-1.7857-0.17857-2.3214,1.25-1.9643,0.17857-2.5-2.5-3.9286-2.3214-1.4286-2.3214-1.25-2.6786-0.71428-2.6786-0.71429-2.1429,0.71429-1.0714,1.4286-1.0714,1.9643-0.89285,1.25h-1.25l-1.25-1.9643-0.17857-0.89286,1.25-0.71429,0.35714-1.4286v-1.25l-1.25-1.25-5.7143-6.7857s-0.35714-1.0714-0.35714-1.7857v-3.2143l-1.78-0.88-0.89286-0.35714-0.17857-3.0357-0.53572-1.4286-1.0714-0.35714-0.35714-1.25,1.6071-1.4286,2.1429-0.17857,1.0714-0.53572,1.0714-1.0714,2.1429-0.17857,1.9643,0.17857,0.53572-1.0714-1.25-1.9643-1.4286-1.25-0.35714-2.1429s1.25-0.53571,1.9643-0.53571c0.71428,0,3.5714-1.0714,3.5714-1.0714l-0.17858-2.6786s0.53572-0.35714,1.25-0.35714c0.71429,0,3.9286,0.35714,3.9286,0.35714l2.1428-1.7857,4.1072-6.4286-0.17858-3.0357-1.4286-1.4286-2.6786-2.8572s-1.25-0.89285-1.4286-1.6071c-0.17857-0.71428-0.35714-1.7857-0.35714-1.7857l2.1428-2.3214,0.17858-1.6071-1.25-1.25-2.5,0.17857-0.71429-0.53572-1.0714-1.0714v-0.71429l3.06-0.86,1.25-1.0714-0.53572-1.4286-1.25-0.89285-0.17857-1.6072,2.1429-3.0357,3.75-1.25,2.1428-1.25-1.25-2.5s0.17858-0.35714,0.89286-0.35714c0.71429,0,3.3929,0.71428,3.3929,0.71428l1.0714-0.17857-0.53572-3.5714v-1.6071l1.4286-0.53572,0.2-2.66-0.17858-0.53571h2.5l1.6072,0.53571,0.53571,1.9643,1.0714,1.0714s0.53571,0.53571,1.25,0.53571,3.75-0.71428,3.75-0.71428l3.5714-0.71429,2.3214-0.35714,2.6786-1.0714,2.3214-1.4286,2.3214-0.89286,1.9643-0.17857,2.8571-0.35714,2.5-1.6072z\",\"name\":\"Magadan Oblast\"},\"sh\":{\"path\":\"M943.16,321.59c-0.45,0.19-0.81,0.37-1.19,0.94s-0.31,1.53-0.5,1.85c-0.19,0.31-1.53,1.12-1.53,1.12-0.51,0.51-0.87,1.06-2,1.25-1.14,0.19-2.59-0.23-2.85,0.66-0.25,0.88,0.06,2.12,0.69,2.25,0.63,0.12,1.53,0.44,2.1,0.25,0.56-0.19,1.56-1.25,1.56-1.25s0.62,0.3,1,0.93c0.38,0.64,0.97,1.78,0.97,2.03,0,0.26,0.19,1.06-0.07,1.57-0.25,0.5-0.81,2.78-0.56,3.03s1.24,0.9,1.94,0.9c0.69,0,1.09,0.17,1.78-0.78,0.69-0.94,0.93-1.74,1.25-2.56s0.78-1.9,1.09-2.16c0.32-0.25,0.48-1.02-0.22-1.65-0.69-0.63-0.93-1.75-1-2.06-0.06-0.32-0.56-1.09-0.24-1.53,0.31-0.45,1.12-1.31,1-1.69-0.13-0.38-1.38-1.09-1.82-1.47s-0.96-1.82-1.4-1.63zm2.15,20.44s-0.43,0.15-0.69,0.85c-0.25,0.69-0.5,1.74-0.31,2.31s0.56,1.4,0.81,1.78c0.26,0.38,0.75,1.31,0.88,1.62,0.13,0.32,0.53,0.72,1.03,0.91,0.51,0.19,1.12,0.07,1.25-0.44,0.13-0.5,0.19-1.4,0.19-2.03s-0.19-2.15-0.19-2.53,0.07-0.87-0.31-1.31-2.66-1.16-2.66-1.16zm2.53,9.22c-0.56,0.19-1.9,0.5-2.15,0.69-0.26,0.19-0.63,0.52-0.5,1.03,0.12,0.5-0.2,1.24,0.5,1.69,0.69,0.44,2.15,0.96,2.53,1.09s0.55,0.44,1.19,0.13c0.63-0.32,1.09-0.59,1.03-1.41-0.07-0.82-0.59-1.62-0.78-1.88-0.19-0.25-1.5-1.34-1.5-1.34h-0.32zm-117,4.5l-1.87,1.25s0.5,1.12,0,1.12h-1.78s-1.26,0.78-0.5,1.29c0.76,0.5,2.4,0.87,3.03,1,0.63,0.12,1.52,0.65,2.16,1.15,0.63,0.51,1.49,0.87,1.74,1.63,0.26,0.76,0.63,2.28,0.63,2.28l0.91,1.62-0.54,2.16-1.74,0.13s-0.91-1.14-1.41-0.13c-0.51,1.01-0.5,1.77-0.5,2.41,0,0.63,0.27,1.24,0.91,1.37,0.63,0.13,1.48,0.4,2.74,1.41,1.27,1.01,2.03,2.9,2.29,3.53,0.25,0.63,0.24,2.65,0.5,3.41,0.25,0.75,1.4,2.02,2.03,2.53,0.63,0.5,2.03,2.52,2.28,3.03,0.25,0.5,1.25,2.4,1.5,2.9,0.25,0.51,1.78,1.75,1.78,1.75s1.24,1.15,2,1.66,3.8,1.37,4.56,1.37,3.03,0.66,3.28,1.16c0.26,0.51,2.78,5.66,2.78,5.66l5.57,8.34s2.52,2.15,3.15,2.66c0.64,0.5,2.4,3.9,2.91,4.65,0.51,0.76,2.12,4.44,2.5,4.94,0.38,0.51,3.69,5.06,3.69,5.06s2.77,1.88,3.4,2c0.64,0.13,3.41,1.91,3.41,1.91s2.65,2.9,2.78,3.41c0.13,0.5,0.75,3.53,0.75,3.53l2.16,3.4,3.15,2.66,2.5,5.19,0.53,2.25s0,2.15,0.5,2.53c0.51,0.38,5.29,4.06,5.29,4.06l1.65,0.88,1.78,0.25v-2.54s-0.9-1.65-1.15-2.15c-0.26-0.51-0.88-3.03-0.88-3.03s-0.5-0.74-0.5-1.63c0-0.88,0.75-2.4,0.75-2.4s1.53-0.25,2.16-0.25,1.24-0.12,2.25-0.63c1.01-0.5,2.41-0.37,2.41-0.37l2.28,2,1.37,0.78s0.5-1.4,0.5-2.03c0-0.64,0.01-1.53-0.62-2.41-0.64-0.88-1.63-1.88-1.63-1.88l-2.03-1.65s-0.99-1.38-1.75-1.25-1.15,0.24-1.41,0.75c-0.25,0.5,1.52,2.66,0,2.28-1.51-0.38-2.4-0.9-2.78-1.41-0.38-0.5-1.62-1.87-1.62-1.87s-2.4-1.28-3.03-1.53c-0.64-0.26-2.4-0.88-3.04-0.88-0.63,0-4.06-1.15-4.06-1.15l-2.12-2.38-2.41-6.31s-1.12-1.65-1.25-2.41-1.03-3.15-1.16-3.65c-0.12-0.51-0.37-2.28-0.62-2.78-0.25-0.51-1-2.29-1-2.29l-0.53-3.28,1.78-1.62s2.77-1.03,3.41-1.03c0.63,0,5.06-0.13,5.06-0.13l2.4,0.63s2,0.25,2.5,0.25c0.51,0,1.03,0.51,1.16-0.5s-1.53-2-1.53-2l-3.53-0.53-3.66-1.26-2.4-1.78-18.57-15.25-1.5-1.28-1.78-0.12s-0.87,0.13-1.25-0.63-0.4-1.27-1.15-1.9c-0.76-0.64-2.5-1.88-2.5-1.88s-1.52-0.25-2.66-0.5-3.66-1.4-3.66-1.4l-0.4-2.79-1.38-1.25-0.62-1.28,1.25-1.62-0.25-1.91-2.53-2.12-3.54-0.79s-2.4-0.99-2.65-1.5c-0.25-0.5,0.12-2.15,0.12-2.15s-0.62-1.12-1.12-1.5c-0.51-0.38-4.28-1.91-4.28-1.91l-2.91-1.9-1.03-2.63s0.01-1.91-0.63-1.91c-0.63,0-2.78-0.87-2.78-0.87zm119.16,7.94c-0.88,0.25-1.53,0.4-1.72,0.97-0.19,0.56,0.06,1.24,0.31,1.43,0.26,0.19,0.84,0.69,1.47,0.57,0.63-0.13,1.56-0.19,1.82-0.57,0.25-0.38-1.13-1.46-1.32-1.78-0.19-0.31-0.56-0.62-0.56-0.62zm1.75,4.06c-0.51,0.25-1.19,0.56-1.37,1.06-0.19,0.51,0.36,1.37,1,1.75,0.63,0.38,1.05,0.63,1.56,0.06,0.5-0.56,1.09-1.62,1.03-1.93-0.06-0.32-2.22-0.94-2.22-0.94zm0.19,6.97c-0.18,0.01-0.34,0.06-0.5,0.16-0.63,0.37-0.82,1.18-0.82,1.56s0.88,3.09,0.88,3.47-0.87,2.4-1,2.9c-0.13,0.51-0.01,1.33,0.62,2.6,0,0,1.13-0.25,1.38-0.25s1.72-0.94,1.84-1.19c0.13-0.25,0.44-2.28,0.44-2.91s-0.06-2.02-0.12-2.47c-0.07-0.44-0.63-1.4-0.63-1.78s-0.31-1.43-0.69-1.69c-0.28-0.18-0.87-0.44-1.4-0.4zm-4.41,14.53s-1.28,0.03-1.53,0.16c-0.25,0.12-0.69,0.49-0.81,0.75-0.13,0.25-0.57-0.07,0.06,0.62,0.63,0.7,1.02,1.38,1.66,1.38,0.63,0,2.06,0.65,2.31,0.65s1.03-0.21,1.22-0.47c0.19-0.25,0.75-0.49,0.31-1.18-0.44-0.7-0.97-1.06-1.22-1.19s-2-0.72-2-0.72zm1.81,6.47c-0.19,0.31-1.37,1.18-1.43,1.44-0.07,0.25-0.32,0.74-0.38,1.25-0.06,0.5-0.31,1.77-0.31,2.09s-0.53,1.59-0.78,2.16c-0.26,0.56-0.5,1.49-0.44,2.12s-0.07,1.09,0.19,1.66c0.25,0.57,0.24,1.18,0.56,1.37s-0.04,1.29,1.09,0.6c1.14-0.7,1.63-1.34,1.82-1.79,0.19-0.44,0.53-2.09,0.72-2.34,0.18-0.25,0.56-1.43,0.68-1.81,0.13-0.38,0.63-1.9,0.63-2.22s0.06-1.59-0.25-2.22c-0.32-0.63-1.19-1.31-1.19-1.31l-0.91-1zm-4.9,15.4c-0.26,0.07-0.97,0.19-1.28,0.44-0.32,0.26-0.63,0.56-0.69,0.75s-0.5,0.94-0.5,1.19,0.06,1.15,0,1.41c-0.06,0.25,0,0.56-0.56,0.81-0.57,0.25-1.22,0.43-1.6,0.56s-0.81,0.44-1.06,0.69-0.94,0.72-0.94,0.72-0.53,0.18-0.53,0.5c0,0.31,0.41,0.99,0.53,1.25,0.13,0.25,0.75,1.22,0.75,1.22l-0.18,0.75s-1.04,0.74-1.1,1.06c-0.06,0.31-0.12,1.59-0.12,1.97s0.06,1.74,0.06,2c0,0.25,0.19,1.84,0.19,2.09s0.15,1.34,0.28,1.97c0.12,0.63,0.12,1.06,0.43,1.44,0.32,0.38,0.56,1.03,0.88,1.22s0.5,0.68,0.88,0.62c0.37-0.06,1.71-1.03,1.71-1.03s0.63-0.62,0.75-1.06c0.13-0.44,0.44-2.16,0.44-2.16s0.19-1.37,0.13-1.69c-0.07-0.31-0.69-0.65-0.75-1.22-0.07-0.56-0.07-0.8,0-1.68,0.06-0.89,0.87-2.09,1.06-2.35,0.19-0.25,0.84-1.18,0.97-1.93,0.12-0.76-0.07-1.84,0.19-2.16,0.25-0.32,0.8-0.75,1.06-1.06,0.25-0.32,1.06-1.65,1.18-2.03,0.13-0.38,0.13-1.4,0.13-1.91s-0.31-1.37-0.56-1.56c-0.26-0.19-1.75-0.82-1.75-0.82zm-8.35,23.69c-0.31-0.01-0.62,0-0.75,0.03-0.25,0.07-0.56,0-0.81,0.32-0.25,0.31-0.78,0.71-1.22,0.84s-0.87,0-0.93,0.31c-0.07,0.32-0.26,0.87-0.26,1.13,0,0.25,0.06,0.74,0.32,1,0.25,0.25,0.62,0.21,0.75,0.78,0.12,0.57,0.19,1.18,0.12,1.44-0.06,0.25-0.31,1.12-0.37,1.43-0.07,0.32-0.19,0.4-0.38,1.03-0.19,0.64-0.31,1.38-0.31,1.76v1.15c0,0.38-0.06,1.19,0.13,1.44,0.18,0.25,0.62,0.56,0.87,0.81s1.47,0.47,1.72,0.47,0.5-0.28,0.75-0.66,0.56-0.99,0.56-1.56-0.12-2.96-0.06-3.28,1.12-0.84,1.19-1.41c0.06-0.56,0.03-1.74,0.09-2,0.06-0.25,0.31-1.15,0.31-1.15s0.75-0.44,0.88-0.81c0.12-0.38,0.25-1.13,0.25-1.5,0-0.38-0.19-1.54-0.19-1.54h-1.84c-0.19,0-0.5-0.02-0.82-0.03zm7.85,1.88c-0.57,1.01-0.72,0.99-0.78,1.75-0.07,0.76-0.88,1.53-0.88,1.53s-0.31,0.31-0.44,0.62c-0.12,0.32-0.69,0.81-0.06,1s1.72,0.19,1.97,0.07c0.25-0.13,0.75-0.69,1-0.82,0.25-0.12,0.44-0.49,0.44-1.37,0-0.89-0.19-1.9-0.31-2.16-0.13-0.25-0.94-0.62-0.94-0.62z\",\"name\":\"Sakhalin Oblast\"},\"ka\":{\"path\":\"M888.56,146.75l-1.65,0.84c-0.26,0.13-1.25,0.88-1.25,0.88l-0.13,1,0.13,2.78,0.25,1.16-0.88,2.43-1.72,4.69-0.93,1.56-0.44,1.41-0.06,1.81s-0.22,1.03-0.47,1.22c-0.26,0.19-0.82,0.13-0.82,0.13h-1.81-2.59l-1.6-0.19-1.68-0.31s-0.53,0.25-0.85,0.25c-0.31,0-0.68,0.56-1,0.75-0.31,0.19-1.37,0.74-1.56,1-0.19,0.25-1.28,0.78-1.59,0.9-0.32,0.13-1.38,1-1.63,1.19s-0.78,0.56-1.22,0.63c-0.44,0.06-0.94-0.32-0.94-0.32s-0.62-0.99-0.74-1.25c-0.13-0.25-0.97-1.72-0.97-1.72s-0.07-1.31-0.13-1.62c-0.06-0.32-0.06-1.47-0.12-1.72-0.07-0.25-0.13-1.06-0.13-1.06s0.25-1.22,0.31-1.66c0.07-0.44,0.38-0.75,0.38-0.75s0-0.56-0.19-0.87c-0.19-0.32-0.81,0.06-0.81,0.06l-1.75,0.44-1.97,0.81-1.66,0.5-1.18,0.19-2.04-0.25s-1.62-0.38-1.87-0.57-1.03-0.12-1.03-0.12l-0.63,0.56-0.87,1.16-0.63,0.81-0.84,0.88s-1.31,0.74-1.56,0.87c-0.26,0.13-0.94,0.59-0.94,0.59l-1.22,1.32-1.44,2.28s-2.27,2.28-2.59,2.47-1.18,0.87-1.44,1.12c-0.25,0.25-1.34,0.38-1.72,0.44s-0.74,0.62-1,0.94c-0.25,0.31-1.15,1.28-1.15,1.28l-0.81,0.56s-0.75-0.31-1.13-0.31-0.44,0.31-0.44,0.31l-0.97,1.91-1,2.18s-0.5,1.59-0.5,1.91,0.63,0.44,0.88,0.63c0.25,0.18,1.65,0.8,2.03,1.06,0.38,0.25,1,0.84,1.31,1.15,0.32,0.32,1.41,1.32,1.41,1.32s-0.13,0.43-0.06,0.68c0.06,0.26,0.37,1.15,0.68,1.66,0.32,0.51,0.94,0.81,0.94,0.81s4.09,1.16,4.35,1.28c0.25,0.13,1.09,1.32,1.09,1.32l0.37,0.68s1.13,0.85,1.44,1.04c0.32,0.18,1.22,0.31,1.22,0.31l0.62,0.62,0.44,1.19s-0.31,1.59-0.37,1.97c-0.07,0.38-0.07,0.99,0,1.37,0.06,0.38,1.12-0.06,1.12-0.06s1.4-0.31,1.97-0.25,1.56,0.25,1.56,0.25,1.22,0.4,1.35,0.66c0.12,0.25,0.75,1.18,0.75,1.18l1.15,1.5,1.25,1.72,1.85,1.32,2,1.65,1,1.31s0.84-0.99,1.03-1.31c0.19-0.31,0-0.74,0-1.19,0-0.44-0.37-0.71-0.75-0.96-0.38-0.26-0.97-1.19-1.35-1.63-0.37-0.44-0.56-0.84-0.56-0.84s-0.81-1.06-1.06-1.31c-0.25-0.26-1.09-0.94-1.34-1.19-0.26-0.26-1.25-1.34-1.69-1.97s0-0.75,0-1.06c0-0.32,0.87-1.04,0.87-1.04s0.94-1.3,1.19-1.62,0.44-1.21,0.5-1.59,0.47-1.31,0.85-1.5c0.37-0.19,1.18-0.38,1.68-0.44,0.51-0.06,1.84,0.5,1.97,0.81,0.13,0.32-0.62,0.69-0.75,0.94-0.12,0.25,0,1.59-0.06,2.16-0.06,0.56,0.12,1.71,0.12,2.28,0,0.56,0.75,1.37,0.75,1.37s1.13,1.4,1.44,1.72c0.32,0.32,1.28,0.93,1.59,1.19,0.32,0.25,1.57,1.65,1.57,1.65l3.34,2.32,0.97,0.59s0.75,1.25,0.81,1.69c0.07,0.44,0.44,0.93,0.44,0.93s1.03,0.22,1.34,0.47c0.32,0.26,0.63,1.31,0.63,1.69s-0.12,1.03-0.44,1.47c-0.31,0.44-1.21,0.93-1.53,1.25s-0.69,0.75-0.69,0.75-0.06,5.68-0.06,6.25,0.75,1.78,1,2.16,1.21,2.14,1.72,2.9c0.5,0.76,0.69,1.12,0.69,1.44s0.25,1.66,0.25,1.66,0.56,10.46,0.62,11.09,0.59,1.03,0.78,1.41,0.75,0.93,1,1.18c0.26,0.26,0.75,0.84,0.88,1.16,0.12,0.32,0.97,1.62,0.97,1.62s0.74,2.78,0.87,3.54c0.13,0.75,0.13,1.72,0.13,1.72s1.31,3.96,1.31,4.4v1.47s-0.81,1.75-1.13,2.13c-0.31,0.37-0.06,1.77-0.06,2.09,0,0.31-1.34,2.46-1.84,2.84-0.51,0.38-1.31,1-1.44,1.38s0.25,1.03,0.25,1.03l1.81,0.87,2.28,0.94s1.09,2.15,1.47,2.66c0.38,0.5,0.56,1.59,0.56,1.9,0,0.32,0.32,3.47,0.44,4.16,0.13,0.69,0.38,1.65,0.56,2.09,0.19,0.45,1.79,1.5,1.79,1.5s2.21,3.94,2.34,4.25c0.13,0.32,0.81,1.69,1.06,2,0.08,0.1,0.29,0.25,0.53,0.41,0.62,0.78,3.07,1.94,3.07,1.94l0.93,0.62s4.63,4.25,4.69,4.5c0.06,0.26,2.78,2.32,2.78,2.32s2.34,0.84,2.6,1.03c0.25,0.19,1.68,0.75,1.68,0.75l14.91,10.22,2.03,1.21,3.03,0.94s1.19,1.59,1.44,1.72,3.15,1.19,3.59,1.19c0.45,0,1.47,1,1.47,1s2.59,2.78,2.97,3.03,2.56,1.91,2.56,1.91,2.09,1.18,2.47,1.18,2.85-0.5,2.85-0.5l0.68-0.62v-2.03s-0.06-1.69-0.06-1.88,0-1.21-0.25-1.53-0.81-0.88-0.81-0.88,0.18-1.52,0.44-1.96c0.25-0.45,0.43-0.69,0.43-1.07s-0.31-1.15-0.56-1.4c-0.25-0.26-0.5-1.19-0.5-1.19s-0.06-2.34-0.31-2.66c-0.25-0.31-1.09-0.99-1.28-1.62s-0.5-1.03-0.63-1.41c-0.12-0.38-1.37-1.62-1.62-2.06-0.26-0.44-1.53-1.59-1.72-1.84-0.19-0.26-0.31-1.28-0.5-2.1s-1.02-0.75-1.78-0.75-1.12-0.06-1.38-0.25c-0.25-0.19,0.5-0.43,0.75-0.56,0.26-0.13,1.09-0.9,1.28-1.22,0.19-0.31,0.5-1.37,0.5-1.37l0.69-4.22,1.91-1.6c0.38-0.31,0.25-0.93-0.19-1.31s-1.09-0.25-1.41-0.31c-0.31-0.06-0.8-0.84-1.31-1.16-0.5-0.31-0.84-0.81-1.28-1s-1.24-0.31-2.06-0.56-1.4-1.03-1.91-1.47c-0.5-0.44-0.44-1-0.5-1.25s-0.06-1.96-0.06-2.84v-1.22s-0.97-2.78-0.97-3.1c0-0.31,0.03-1.05,0.16-1.43,0.12-0.38,0.49-0.69,0.75-0.94,0.25-0.25,1.43-0.78,1.43-0.78l1.47-0.88s0.38-1.71,0.38-2.59-0.5-2.25-0.63-2.56c-0.12-0.32-1.34-0.72-1.34-0.72s-1.5-1.19-1.94-1.19-2.46-0.56-2.9-0.69c-0.45-0.12-1.6-0.78-1.85-0.9-0.25-0.13-1.71-1.25-2.09-1.56-0.38-0.32-1.25-1.1-1.5-1.41-0.26-0.32-0.75-1.44-0.88-1.75-0.12-0.32-0.84-1.66-0.84-1.66s0-0.55-0.13-1.12c-0.12-0.57-0.18-1.65-0.18-2.41s1.02-0.62,1.28-0.62c0.25,0,1.68-0.25,2-0.32,0.31-0.06,1.03-0.74,1.22-1,0.19-0.25,0.37-1.77,0.31-2.09s-0.65-0.81-1.22-1-0.94-0.78-1.12-0.84c-0.19-0.07-2.16-0.88-2.16-0.88s-2.06-0.69-2.5-0.75-0.59,0.44-0.84,0.63c-0.26,0.19-0.5,0.37-1.32,0.37s-1.22-0.44-1.22-0.44l-0.87-1.18s-1.18,0.06-1.81,0.06c-0.64,0-0.91-0.59-1.16-0.91-0.25-0.31-1.06-0.56-1.06-0.56s-0.47-0.19-0.69-0.28c0-0.06,0.19-3.44,0.13-3.69-0.07-0.25-0.66-1.21-0.91-1.47-0.25-0.25-1.37-0.44-1.94-0.44s-1.4,0.6-1.84,0.85-1.06,0.75-1.31,0.94c-0.26,0.19-0.13,1.12-0.13,1.68,0,0.57-0.34,1.03-0.72,1.35-0.38,0.31-0.68,0.25-1.31,0.25s-1.12-0.19-1.63-0.31c-0.5-0.13-0.77-0.56-1.03-0.82-0.25-0.25-1.06-0.96-1.37-1.47-0.32-0.5-0.19-1.05-0.25-1.62-0.07-0.57-0.84-1.65-1.1-2.16-0.25-0.5-1.24-2.34-1.37-2.59s-0.56-1.28-1-1.91-0.9-1.99-1.28-2.62-0.74-1.09-1.5-2.1-0.78-0.56-1.35-0.68c-0.56-0.13-0.99-0.78-1.5-1.35-0.5-0.57-0.84-0.93-1.15-1.75-0.32-0.82-0.37-0.83-0.94-2.15-0.57-1.33-0.07-1.09,0.19-1.66,0.25-0.57,1.06-0.62,1.06-0.62l0.47-0.88s-0.38-1.59-0.31-2.09c0.06-0.51,0.36-0.56,1.06-0.75,0.69-0.19,1.56,0.75,1.94,0.75s1.59-0.5,1.9-0.82c0.32-0.31,0.32-1.08,0.32-1.71,0-0.64-0.62-1-1.13-1.13s-0.94-0.56-0.94-1.06c0-0.51,0.25-1.21,0.25-1.91,0-0.69,0-0.74-0.06-1.25-0.06-0.5-0.12-0.53-0.25-0.91-0.13-0.37,0.06-1.18,0.19-1.68,0.12-0.51,0.56-0.44,0.94-0.38,0.37,0.07,1.24,0.69,1.62,0.94s0.65,0.62,0.84,1,1,1.09,1.63,1.16c0.63,0.06,1.15-0.38,1.15-0.38s-0.09-0.52-0.34-1.09-0.81-1.44-1-1.81c-0.19-0.38-0.5-1.22-0.75-1.6s-0.44-0.5-0.44-0.75,0.69-2.09,0.69-2.41v-3.78c0-0.82,0.19-1.4,0.38-1.72,0.19-0.31,0.87-1.24,1.25-2.06s0.84-1.15,1.09-1.9c0.25-0.76,0.87-1.4,1.44-2.16s0.77-1,1.15-1.12c0.38-0.13,2.91,0.06,3.29,0.06,0.37,0,1.96-0.44,2.65-0.56,0.7-0.13,2.71-0.31,3.41-0.57,0.69-0.25,0.25-0.59,0.18-0.84-0.06-0.25-1.27-0.94-1.65-1.06-0.38-0.13-1.12-0.69-1.38-0.94-0.25-0.25-0.5-1.16-0.5-1.16s-0.59-2.96-0.65-3.28c-0.07-0.31-0.75-1.56-0.75-1.56s-0.13-5.18-0.13-5.63c0-0.44-0.68-2.02-1.37-2.34-0.7-0.32-0.91-0.99-0.91-1.5s0-0.96-0.12-1.59c-0.13-0.64-0.75-1.37-1-1.88-0.26-0.5,0.12-0.78,0.12-1.22s-0.12-1.18-0.5-1.5c-0.38-0.31-0.68-0.49-0.94-0.75-0.25-0.25-0.46-0.9-0.46-1.53s0.28-1,0.34-1.31c0.06-0.32,0.06-1.09-0.06-1.53-0.13-0.44-0.35-1.06-0.41-1.31-0.06-0.26-0.37-1.22-0.37-1.22s-0.5-0.44-0.69-0.44-0.94-0.19-0.94-0.19l-1.78-0.31s-1.69-0.44-1.81-0.69c-0.13-0.25-1.04-0.69-1.04-0.69l-1.56-0.59zm7.25,70.22c-0.88,0.44-1.12,0.43-1.06,1s0.37,1.09,0.63,1.47c0.25,0.38,0.44,0.93,0,1.44-0.45,0.5-1.45,0.52-1.19,1.15,0.25,0.63,0.49,1.06,0.75,1.31,0.25,0.26,0.81,0.9,0.94,1.41,0.12,0.51-0.01,1.06,0.31,1.56,0.31,0.51,0.31,0.69,0.69,0.69,0.37,0,0.59,0.32,0.65-0.5s-0.06-0.95,0-2.84c0.06-1.9,0-2.84,0.06-3.41,0.07-0.57,0.26-1.37,0-1.75-0.25-0.38-1.28-0.9-1.4-1.22-0.13-0.31-0.38-0.31-0.38-0.31zm58.91,12.47c-1.07,0.71-1.16,0.62-1.16,1.15,0,0.54-0.18,0.9,0.53,0.72,0.72-0.18,0.91-0.18,1-0.62,0.09-0.45-0.37-1.25-0.37-1.25zm-10.97,4.53c-0.63,0.45-1.08,0.2-0.81,1.09,0.27,0.9,0.44,1.16,1.15,1.25,0.72,0.09,0.73,0.1,2.07,0.1s2.31,0.06,3.03,0.06c0.71,0,0.99,0.36,1.43,0,0.45-0.36,0.63-0.07,0.54-0.78-0.09-0.72-1.24-0.9-2.22-0.81-0.98,0.08-1.52,0.34-3.13-0.19-1.6-0.54-2.06-0.72-2.06-0.72z\",\"name\":\"Kamchatka Krai\"},\"in\":{\"path\":\"m33.393,395.68,0.08929,5.2679,17.946-8.5714-1.3393-1.25-2.9464-1.25-1.5179-1.9643-2.4107,2.4107-4.1071-2.6786-1.875,1.0714,0.08929,5.8929-1.5179,1.0714z\",\"name\":\"Republic of Ingushetia\"},\"cc\":{\"path\":\"m33.482,401.04,1.0714,2.5,3.125,1.6964,3.4821,0.44642,2.1429-1.9643,2.1429,1.7857,2.5-1.5178-0.08929-1.6072,1.875-2.1428,2.8571,0.44642,3.8393-2.8571-0.625-1.9643-4.4643-0.53572,0.44643-2.7679z\",\"name\":\"Chechen Republic\"}}});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.usa.js",
    "content": "/** Add USA Map Data Points */\njQuery.fn.vectorMap('addMap', 'usa_en', {\"width\":959,\"height\":593,\"pathes\":{\"hi\":{\"path\":\"m244.66,512.25c-2.48,3.8 2.23,4.04 4.74,5.38 3.06,0.16 3.51,-4.28 2.66,-6.56 -2.72,-0.77 -5.01,-0.19 -7.41,1.19z m-9.31,3.97c-4.02,5.11 3.64,0.48 0.63,-0.09l-0.5,0.07 -0.14,0.02z m39.69,7.97c-0.62,2.09 1.91,6.73 4.39,6.2 2.41,-1.46 3.73,1.73 6.48,0.56 1.23,-1.48 -3.77,-3.2 -3.7,-6.08 -0.95,-3.8 -3.28,-3.2 -5.96,-1.28 -0.41,0.2 -0.81,0.4 -1.22,0.6z m19.94,10.03c3.58,0.95 7.91,2.99 11.25,0.47 -1.05,-1.63 -5.06,-0.59 -7.1,-0.86 -1.44,0.01 -3.54,-1.63 -4.15,0.39z m12.13,4.38c2.33,2.45 3.64,6.83 7.24,7.4 2.36,-0.69 6.84,-0.66 7.32,-3.43 -2.09,-2.51 -5.77,-3.35 -8.88,-4.29 -2.53,-1.2 -4.11,-3.25 -5.68,0.33z m-7.06,1c-0.29,3.69 5.55,3.98 3.67,0.55 -0.27,-1.25 -3.83,-1.74 -3.67,-0.55z m23.66,14.69c0.27,2.45 3.18,3.93 0.47,6.15 -0.65,2.42 -5.54,2.87 -2.52,5.53 2.36,1.46 2.01,4.85 2.92,7.14 -0.72,2.69 -1.43,6.78 1.72,8.06 2.8,2.95 4.5,-1.93 6.19,-3.68 1.27,-1.69 3.85,-4.1 5.94,-2.59 3.04,-0.81 6.3,-2.42 7.78,-5.22 -2.79,-1.31 -4.88,-3.19 -5.57,-6.29 -2.4,-5.33 -8.95,-6.26 -13.58,-8.98 -1.29,-0.52 -2.26,-1.62 -3.34,-0.11z\",\"name\":\"Hawaii\"},\"ak\":{\"path\":\"m107.84,436.56c-2.27,0.55 -4.87,0.32 -6.84,-0.34 -2.41,1.22 -5.63,4.03 -8.25,1.88 -3.1,0.93 -3.51,3.84 -5.22,5.97 -1.82,2.52 -4.21,3.65 -7.31,3.14 -2.5,-0.94 -5.49,-1.15 -7.5,0.98 2.03,4.34 6.39,8.13 5.82,13.23 -1.85,2.94 6.31,2.99 2.68,5.02 0.15,2.8 3.07,5.68 2.91,7.88 -2.35,2.21 -5.24,-0.38 -7.71,-1.06 -3.24,-0.64 -2.73,-3.35 -0.82,-5.22 -1.57,-1.51 -7.35,-1.81 -6.51,1.12 -2.01,0.04 -3.81,-1.66 -6.27,-0.77 -3.72,-0.44 -5.97,0.65 -2.94,4.05 3.68,1.45 1.06,4.72 1.17,7.57 0.76,2.63 3.66,4.89 6.67,4.17 3.2,-0.06 5.87,3.59 9.21,1.65 2.16,-1.3 5.33,-0.99 4.79,1.89 -2.53,2.07 -1.36,6.13 -2.78,8.75 -1.96,1.88 -4.53,1.59 -6.59,0.16 -1.52,1.37 -4.7,3.68 -6.28,2.22 0.72,-3.71 -4.77,-3.63 -5.51,-0.61 -1.21,3.97 -6.27,4.46 -8.31,7.63 -0.7,2.42 -1.55,6.7 1.74,6.3 1.26,1.11 -1.2,4.8 -2.77,5.52 1.62,2.19 2.65,4.59 2.72,7.34 1.71,1.55 6.35,1.98 7.5,-0.16 2.45,-0.95 1.79,4.1 2.08,5.97 2.47,2.95 -4.02,1.28 -1.61,4.56 -0.85,2.93 -1.76,5.02 2,2.72 2.76,-0.47 5.11,-0.69 5.66,2.09 2.59,-3.91 2.26,2.78 3.25,4.66 0.59,-0.75 1.3,-5.69 3.94,-3.06 -0.17,4.52 5.33,-0.45 5.78,-0.04 0.54,2.92 -1.63,4.24 -2.86,6.41 -1.51,2.24 -2.07,5.63 -4.21,7.17 -3.87,-0.42 -3.37,4.1 -5.5,5.02 -2.65,-0.72 -5.73,0.71 -8.44,1.41 -1.35,2.41 -3.61,4.2 -5.78,1.81 -2.56,0.05 -5.63,0.68 -7.63,2.33 -2.48,2.43 -6.32,3.11 -9.66,2.29 -2.78,-1.91 -7.11,3.41 -3.11,2.31 2.5,-1.91 4.66,0.64 7.25,0.63 2.21,-1.15 4.17,-2.75 6.84,-2.06 2.32,-3.35 5.1,-0.32 7.92,-1.16 2.31,-0.39 7.01,-3.91 5.26,0.66 0.09,-2.91 3.42,-2.73 5.54,-2.04 4.21,0.96 0.29,-3.16 2.08,-3.43 3.47,-2.05 7.52,-2.41 11.2,-3.72 5.48,-3.19 11.62,-5.7 16.21,-10.1 4.27,-2.97 -2.78,-3.48 -1.21,-6.32 1.68,-2.43 4.58,-3.81 7.47,-4.5 1.5,-3.07 3.53,-6.11 5.88,-8.52 2.49,-1.32 4.83,-3.39 7.83,-2.32 2.67,0.71 3.74,5.32 -0.52,3.66 -1.27,-1.88 -5.56,-0.09 -5.25,2.41 -0.21,2.44 -2.56,4.22 -3.06,6.66 4.79,0.85 0.24,3.54 -1.38,3.8 1.67,1.91 5.66,0.6 7.57,-1.14 1.25,-1.85 3.43,-3.8 5.41,-4.22 1.81,2.8 5.1,-1.16 5.74,2.72 0.71,2.78 6.02,-4.86 3.34,-3.1 -3.03,3.11 -3.78,2.86 -1.94,-1.24 1.43,-4.85 -1.76,6.17 -1.45,0.81 -0.81,-3.19 -0.93,-6.03 3.05,-6.4 2.7,-0.86 5.37,-0.87 5.79,2.52 0.42,3.48 3.8,2.84 5.95,4.76 2.41,2.2 4.76,1.95 7.8,1.78 4.34,-0.47 8.01,4.04 12.28,3.17 2.49,-0.42 5.1,-5.2 4.29,-0.23 -2.26,2.83 -0.02,4.12 2.5,5.41 3.13,1.35 5.87,3.14 7.94,5.85 1.31,3.02 6.05,0.28 6.18,2.43 -3.83,1.25 -1.23,3.54 0.21,5.47 1.81,1.95 0.33,5.72 3.64,5.82 1.14,1.28 3.49,7.44 4.01,5.38 -0.35,-2.32 -0.7,-7.86 1.61,-3.76 0.37,1.42 1.04,8.7 2.07,4.74 1.07,-4.88 3.18,0.18 2.22,2.93 3.33,1.69 -1.23,3.33 0.69,4.88 0.69,-3.24 1.31,-0.36 2.16,1.56 1.05,1 1.54,3.94 3.13,3.72 -1.68,-1.72 -2.94,-6.23 0.4,-3 2.42,2.79 4.05,2.12 2.74,-1.66 -2.65,-2.66 0.28,-4.96 2.58,-2.29 3.12,-0.05 2.84,5.21 5.28,4.53 3.31,-3.17 1.5,-7.87 0.69,-11.7 -3.3,-1.55 -7.04,-2.54 -10.22,-4.06 -1.5,-5.33 -6.29,-8.69 -8.4,-13.77 -0.44,-3.33 -4.71,-2.62 -5.75,-5.23 -2.32,-1.72 -2.7,-4.4 -4.56,-6.35 -1.65,-1.53 -5.22,0.95 -5.51,2.94 0.59,3.09 -3.23,3.04 -5.06,4.72 0.05,-4.27 -4.3,-6.15 -6.7,-9.1 -1.33,-1.99 -1.32,-5.36 -4.45,-2.34 -2.37,0.24 -6.38,-0.31 -5.34,-3.62 0.1,-27.7 0.2,-55.4 0.31,-83.09 -2.75,-1.88 -5.88,-4.17 -9.15,-4.4 -2.52,1.72 -5.07,1.09 -7.39,-0.62 -2.72,0.23 -5.12,-0.65 -7.7,-2.89 -3.08,-2.74 -8.58,0.17 -10.98,-3.65 1.13,-3.56 -3.22,-4.83 -5,-2.09 -2.09,0.26 -0.65,-4.31 -3.64,-4.93 -2.57,-2.85 -4.01,-1.28 -5.86,1.21z M36.38,480.63c-0.67,3.11 4.27,1.31 4.72,4.66 0.24,3.82 5.37,3.9 2.34,-0.08 -0.1,-3.22 -3.92,-1.83 -5.06,-4.43 -0.76,-2.02 -0.9,-1.86 -2,-0.16z m-17.16,23.16c2.57,4.06 1.45,1.37 0.13,-1.28 -0.36,0.01 0,1 -0.13,1.28z m21.84,14.81c1.27,1.79 4.99,5.58 6.22,2.03 2.26,-3.3 -3.27,-2.89 -5.23,-3.68 -1.83,-0.9 -0.88,0.54 -0.99,1.65z m91.72,18.78c0.06,3.21 2.81,-1.98 0,0z m-31.47,14.69c-3.2,2.91 -7.24,4.67 -10.56,7.38 0.22,2.75 0.99,7.64 4.67,5.15 2.5,-1.44 4.98,-2.9 7.45,-4.37 -1.84,-3.31 -0.81,-3.15 -4.55,-3.48 -4.15,0.09 1.06,-3.73 2.64,-1.62 3.74,-1.04 3.95,-2.36 1.5,-3.66 0.7,-1.08 -1,0.61 -1.16,0.59z M55.75,570.75c1.42,2.83 3.53,-1.99 0,0z m-35.78,0.34c0.53,2.46 -4.04,4.84 1.05,3.59 4.2,0.47 3.46,-4.35 0.01,-3.84 -0.35,0.08 -0.7,0.16 -1.06,0.24z m62.19,0.69c1.57,2.91 1.31,-2.03 0,0z M58.63,573.13c3.23,0.49 0.99,-3.05 0,0z m-49,0.09c-4.84,2.56 -0.44,1.81 2.29,0.58 2.89,0.16 5.05,-0.48 0.84,-1.46 -1.04,0.29 -2.08,0.58 -3.13,0.88z m7.25,1.38c1.28,0.21 -2.23,-0.59 0,0z\",\"name\":\"Alaska\"},\"fl\":{\"path\":\"m748.38,439.94c1.69,2.92 1.5,6.12 1.16,9.34 -4.12,0.54 -2.15,-4.69 -5.56,-3.99 -6.18,-0.07 -12.34,1.13 -18.54,1.19 -10.09,0.29 -20.37,2.14 -30.33,0.64 -2.57,-1.57 -2.84,-6.15 -6.5,-5.33 -9.12,-0.12 -18.18,1.79 -27.26,2.55 -5.82,0.63 -11.62,1.37 -17.43,2.12 -1.42,3.25 2.6,4.37 4.06,6.34 0.8,2.28 -1.56,8.42 2.19,7.1 4.11,-1.2 8.08,-2.93 12.48,-2.72 3.34,-0.82 6.63,-0.73 9.89,0.45 4.09,0.8 7.77,3.09 11.41,4.98 1.77,1.94 5.5,1.87 5.97,5 -0.14,3.27 4.32,-0.94 6.5,0.53 3.19,-0.8 5.24,-3.68 7.69,-5.5 4.86,1.69 0.62,-2.9 3.27,-3.97 3.13,-0.83 6.62,-1.39 9.35,0.79 3.04,0.57 5.43,2 6.57,4.99 3.68,0.02 2.88,4.13 5.48,5.3 2.96,0.49 2.98,4.52 6.3,4.3 2.91,0.36 5.45,1.15 5.84,4.45 2.05,2.11 3.92,4.26 3.09,7.41 0.18,3.68 0.12,7.33 -1.44,10.75 0.39,3.68 1.37,7.94 3.28,10.78 2.25,-3.46 0.17,-3.87 -1.74,-6.03 2.19,-1.76 4.86,-0.22 7.3,0.16 0.82,3.15 -2.16,5.6 -3.48,8.19 -3.3,2.21 1.65,4.09 2.73,6.3 3.11,3.34 4.35,7.94 7.53,11.26 0.78,2.29 2.51,7.47 4.63,3.09 2.54,-0.24 3.88,3.44 5.28,5.41 -0.02,2.26 1.93,7.04 3.59,6.44 2.88,-0.8 6.04,0.65 8.28,2.59 2.56,3.3 4.58,6.98 4.56,11.27 1.37,2.73 4.55,0.44 5.81,-1.14 3.74,0.45 7.26,-1.25 9.22,-4.47 -1.01,-2.36 -0.57,-4.83 -0.32,-7.17 -0.04,-2.18 4.33,-3.19 2.25,-6.51 -0.98,-6.33 -0.19,-12.96 -1.87,-19.25 -2.46,-6.93 -7.54,-12.74 -10.4,-19.56 -1.51,-2.41 -4.24,-3.92 -4.62,-7.04 -0.94,-2.28 -2.67,-4.95 -0.07,-6.71 -0.39,-3.56 -4.86,-5.42 -6.84,-8.41 -5.38,-5.57 -8.29,-12.94 -12.35,-19.44 -2.15,-5.53 -4.29,-11.07 -5.91,-16.78 -3.43,0.07 -7.3,-1.03 -10.46,-0.35l-0.34,0.37 -0.26,0.29z m52.91,109.22c-1.9,4.58 0.72,0.38 0.66,-1.91 -0.22,0.64 -0.44,1.27 -0.66,1.91z m-4.69,9.91c2.56,-1.97 3.68,-6.84 1.04,-1.68 -0.35,0.56 -0.69,1.12 -1.04,1.68z m-2.25,2.22c1.46,-1.22 2.04,-2.07 0.18,-0.18l-0.18,0.18z m-5.72,4.16c-5.23,3.69 4.03,-2.14 0.33,-0.19l-0.33,0.19z m-10.72,3.22c-3.41,3.16 5.71,-0.32 4.1,-0.81 -1.8,-0.56 -2.56,-0.71 -4.1,0.81z m-4.59,3.16c0.08,0.16 0.4,-0.3 0,0z\",\"name\":\"Florida\"},\"nh\":{\"path\":\"m862.56,94c-1.4,-0.41 -3.87,-0.72 -3.05,3 0.22,3.63 -0.73,7.84 2.23,10.59 0.33,2.78 0.08,5.36 -2.17,7.29 -0.19,2.83 -5.98,2.58 -3.35,5.32 1.16,7.35 -0.56,15.03 -0.62,22.51 1.2,1.95 0.98,4.39 0.76,6.75 -1.07,3.79 4.84,-0.05 6.89,0.06 3.93,-1.29 8.46,-1.74 12.04,-3.54 0.77,-3.1 4.37,-2.75 5.94,-4.96 2.59,-3.52 -3.01,-2.73 -2,-6.59 -3.83,0.01 -4.27,-2.46 -4.66,-5.62 -3.84,-11.98 -7.32,-24.45 -11.49,-36.1 -0.18,0.43 -0.35,0.85 -0.53,1.28z\",\"name\":\"New Hampshire\"},\"mi\":{\"path\":\"M697.86,177.24L694.63,168.99L692.36,159.94L689.94,156.71L687.35,154.93L685.74,156.06L681.86,157.84L679.92,162.85L677.17,166.57L676.04,167.21L674.58,166.57C674.58,166.57 671.99,165.11 672.16,164.47C672.32,163.82 672.64,159.45 672.64,159.45L676.04,158.16L676.84,154.77L677.49,152.18L679.92,150.56L679.59,140.54L677.98,138.28L676.68,137.47L675.87,135.37L676.68,134.56L678.3,134.88L678.46,133.27L676.04,131L674.74,128.42L672.16,128.42L667.63,126.96L662.13,123.57L659.38,123.57L658.74,124.21L657.77,123.73L654.7,121.46L651.79,123.24L648.88,125.51L649.2,129.06L650.17,129.39L652.27,129.87L652.76,130.68L650.17,131.49L647.58,131.81L646.13,133.59L645.81,135.69L646.13,137.31L646.45,142.8L642.9,144.9L642.25,144.74L642.25,140.54L643.54,138.12L644.19,135.69L643.38,134.88L641.44,135.69L640.47,139.89L637.72,141.02L635.94,142.96L635.78,143.93L636.43,144.74L635.78,147.33L633.52,147.81L633.52,148.95L634.33,151.37L633.2,157.51L631.58,161.56L632.23,166.24L632.71,167.38L631.9,169.8L631.58,170.61L631.26,173.36L634.81,179.34L637.72,185.8L639.18,190.65L638.37,195.34L637.4,201.32L634.97,206.5L634.65,209.25L631.39,212.33L635.8,212.17L657.22,209.91L664.5,208.92L664.59,210.58L671.45,209.37L681.74,207.87L685.6,207.41L685.74,206.82L685.9,205.37L688,201.65L690,199.91L689.78,194.86L691.37,193.26L692.46,192.92L692.69,189.36L694.22,186.33L695.27,186.94L695.44,187.58L696.24,187.74L698.18,186.77L697.86,177.24z M581.62,82.06L583.45,80L585.62,79.2L590.99,75.31L593.28,74.74L593.74,75.2L588.59,80.34L585.28,82.29L583.22,83.2L581.62,82.06z M667.79,114.19L668.44,116.69L671.67,116.85L672.97,115.64C672.97,115.64 672.89,114.19 672.56,114.03C672.24,113.86 670.95,112.17 670.95,112.17L668.76,112.41L667.15,112.57L666.82,113.7L667.79,114.19z M567.49,111.21L568.21,110.63L570.96,109.82L574.51,107.56L574.51,106.59L575.16,105.94L581.14,104.97L583.57,103.03L587.93,100.93L588.09,99.64L590.03,96.73L591.81,95.92L593.1,94.14L595.37,91.88L599.73,89.46L604.42,88.97L605.55,90.1L605.23,91.07L601.51,92.04L600.06,95.11L597.79,95.92L597.31,98.35L594.88,101.58L594.56,104.17L595.37,104.65L596.34,103.52L599.89,100.61L601.19,101.9L603.45,101.9L606.68,102.87L608.14,104L609.59,107.08L612.34,109.82L616.22,109.66L617.68,108.69L619.29,109.99L620.91,110.47L622.2,109.66L623.33,109.66L624.95,108.69L628.99,105.14L632.39,104L639.02,103.68L643.54,101.74L646.13,100.45L647.58,100.61L647.58,106.27L648.07,106.59L650.98,107.4L652.92,106.91L659.06,105.3L660.19,104.17L661.65,104.65L661.65,111.6L664.88,114.67L666.17,115.32L667.47,116.29L666.17,116.61L665.37,116.29L661.65,115.81L659.55,116.45L657.28,116.29L654.05,117.75L652.27,117.75L646.45,116.45L641.28,116.61L639.34,119.2L632.39,119.85L629.96,120.66L628.83,123.73L627.54,124.86L627.05,124.7L625.6,123.08L621.07,125.51L620.42,125.51L619.29,123.89L618.48,124.05L616.54,128.42L615.57,132.46L612.39,139.46L611.22,138.42L609.85,137.39L607.9,127.1L604.36,125.73L602.31,123.45L590.19,120.7L587.33,119.67L579.1,117.5L571.21,116.36L567.49,111.21z\",\"name\":\"Michigan\"},\"vt\":{\"path\":\"m833.16,106.59c0.19,6 4.65,11.21 3.72,17.28 -2.48,4.23 4.52,7.29 2.22,11.58 0.9,1.59 4.66,1.96 4.06,5.25 1.08,4.21 2.86,8.34 1.84,12.76 3.35,-0.51 7.06,-1.17 10.13,-1.97 -0.21,-2.13 1.51,-5.75 -0.53,-7.81 0.2,-7.64 1.01,-15.26 1.13,-22.91 -3.25,-2.41 0.32,-3.79 2.12,-5.18 1.96,-2.28 3.9,-5.07 2.6,-8.1 -2.62,-1.63 -1.02,-5.94 -2.39,-7.22 -8.3,2.1 -16.59,4.21 -24.89,6.31z\",\"name\":\"Vermont\"},\"me\":{\"path\":\"m889.88,40.22c-2.16,1.31 -3.69,2.74 -4.84,4.69 -2.29,0.6 -4.99,-1.37 -4.88,-3.94 -2.97,-0.82 -3.33,3.68 -4.37,5.71 -1.09,4.29 -3.27,8.39 -3.97,12.69 -0.06,3.04 1,6.63 -1.35,9.09 0.08,2.92 -0.75,6.18 2,8.16 -1.37,5.7 -6.23,10.36 -5.41,16.56 -4.27,-2.21 -1.74,2.47 -1.09,4.73 3.51,11.08 7.19,22.16 10.25,33.35 0.21,3.01 5.81,1.35 4.53,5.7 2.9,2 2.06,-3.92 2.66,-5.87 -1.01,-3.29 2.7,-4.63 0.66,-7.62 0.94,-1.05 2.92,-5.9 4.61,-3.46 2.03,1.03 5.28,-1.89 6.74,-3.19 -0.98,-4.02 4.21,-1.75 4.73,-5.32 -1.11,-2.61 0.74,-5.45 -0.57,-7.44 -2.42,-1.59 3.53,-4.63 3.31,-0.78 2.27,0.48 2.15,2.8 3.66,3.93 1.94,-2.82 -2.15,-3.81 0.35,-6.03 2.43,-0.81 3.1,-3.96 6,-3.31 -0.17,1.46 1.03,3.34 2.26,1.38 2.94,-2.9 5.24,-7.08 9.37,-8.34 1.17,-2.61 3.34,-5.74 0.71,-8.24 -0.55,-1.64 -3.68,-4.84 -4.15,-2.58 -0.75,2.6 -4.66,-0.65 -4.92,-2.22 0.1,-2.8 0.29,-7.17 -3.8,-5.81 -3.96,1.36 -3.64,-3.04 -4.69,-5.61C905.22,58.3 902.75,50.15 900.28,42c-2.86,-1.25 -5.71,-2.92 -8.81,-3.38 -0.53,0.53 -1.06,1.06 -1.59,1.59z m20.47,61c-2.81,1.7 1.87,5.16 1.13,1.22 1.48,-0.9 0.13,-2.4 -1.13,-1.22z m-7.81,7.81c3.16,6.67 2.63,-3.59 0,0z\",\"name\":\"Maine\"},\"ri\":{\"path\":\"m871,164.28c1.15,4.66 2.29,9.31 3.44,13.97 2.56,-0.49 4.66,-2.29 5.84,-4.56 4.17,0.76 4,-2.64 1.51,-4.97 -1.79,-1.94 -3.16,-5.31 -5.74,-5.92 -1.68,0.49 -3.37,0.99 -5.05,1.48z\",\"name\":\"Rhode Island\"},\"ny\":{\"path\":\"m825.56,108.66c-2.7,1.12 -5.45,1.68 -8.33,1.43 -5.07,0.72 -10.17,2.73 -12.92,7.31 -2.84,3.43 -4.89,7.49 -7.18,11.2 -1.65,2.36 -5.82,3.73 -5.55,6.84 -0.17,3.56 5.77,0.73 4.43,4.38 -2.69,2.3 0.8,4.23 0.56,6.59 0.5,3.47 -4.26,1.99 -5.36,4 -1.62,2.71 -3.35,6.62 -7.22,6.05 -3.04,-0.43 -5.35,2.05 -7.98,2.63 -2.5,-0.75 -4.7,-2.05 -7.59,-1.31 -5.31,0.21 -10.62,1.98 -15.23,4.53 -0.29,1.77 0.61,6.25 3.17,6.14 1.55,2.48 2.09,4.96 -0.63,6.72 -1.51,1.76 -1.8,4.25 -4.16,5.3 -1.93,1.14 -2.68,3.51 -4.8,4.54 0.33,3.07 -0.22,7.29 4.08,5.12 22.14,-4.26 44.26,-8.68 66.23,-13.74 0.98,3.85 5.67,1.32 6.44,4 0.64,2.93 1.36,7.4 5.33,6.88 3.14,1.9 6.9,3.68 10.69,4.22 2.71,0.47 7.18,1.43 6.44,5.06 -0.33,1.97 -1.62,7.56 1.97,5.93 5.3,-1.65 10.96,-2.84 15.06,-6.85 3.23,-2.49 6.76,-4.64 9.35,-7.86 -2.99,-2.44 -4.65,0.46 -6.81,2.42 -2.91,1.56 -6.01,3.51 -9.16,4.32 -2.6,-0.63 -4.83,-0.86 -6.18,2.07 -1.03,2.04 -4.86,2.98 -3.98,-0.15 4.26,-1.87 -2.17,-3.97 -0.33,-6.21 1.19,-3.13 0.56,-6.87 0.42,-10.21 -1.43,-7.38 -3.69,-14.76 -2.54,-22.36 -0.08,-4.46 1.55,-8.97 -0.51,-13.21 -1.22,-2.56 -0.47,-6.83 -4.05,-7.34 -2.99,-0.66 0.75,-4.31 -1.57,-6.2 -1.7,-2.43 -3.17,-4.91 -1.54,-7.81 0.38,-5.77 -3.83,-10.57 -3.55,-16.35 -2.32,0.65 -4.65,1.29 -6.97,1.94z\",\"name\":\"New York\"},\"pa\":{\"path\":\"m798.88,181.63c-17.5,3.38 -34.87,7.42 -52.47,10.28 -0.61,-2 0.48,-8.42 -2.41,-4.31 -2.18,2.73 -5.48,3.74 -8.09,5.97 1.52,9.75 2.63,19.57 5.44,29.05 1.14,6.09 2.27,12.17 3.41,18.26 8.85,-1.42 17.79,-2.25 26.51,-4.41 16.39,-3.45 33.03,-6.46 49.33,-9.87 2.48,-3.07 8.03,-1.69 8.97,-6.19 0.64,-2.36 4.86,-3.99 4.33,-5.9 -2.3,-1.89 -5.94,-2.77 -6.39,-6.13 -3.14,1.09 -4.42,-3.94 -3.12,-5.32 3.86,-1.1 -0.49,-3.68 0.55,-5.96 2.52,-1.88 1.12,-5.15 2.81,-7.07 3.87,-2.7 -2.98,-1.1 -3.72,-3.99 -1.35,-2.18 -0.28,-7.24 -4.16,-5.92 -2.34,-1.13 -3.87,-3.75 -7.09,-1.7 -4.64,1.07 -9.28,2.15 -13.92,3.22z\",\"name\":\"Pennsylvania\"},\"nj\":{\"path\":\"m827.84,191.34c1.03,2.99 -1.82,4.8 -2.06,7.47 2.86,1.63 0.49,4.87 -0.92,5.73 -0.41,3.86 4.01,1.68 4.16,5.14 1.37,2.19 4.72,3.02 6.26,4.94 -0.15,2.61 -3.85,3.5 -4.69,6.06 -0.26,3.07 -4.09,3.19 -4.18,5.96 -0.99,2.38 -0.74,5.09 1.7,6.47 2.85,2.76 6.86,3.99 10.73,4.38 0.48,1.55 -1.84,7.18 1.1,3.59 1.5,-2.42 0.59,-5.95 3.11,-8.01 2.5,-4.08 5.03,-8.84 4.88,-13.61 -1.35,-4.07 0.8,-9.01 -1.81,-12.82 -1.1,1.32 -6.17,1.23 -4.13,-0.8 2.39,-1.39 3.37,-3.62 2.39,-6.31 0.21,-2.31 1.58,-5.42 -1.69,-6.19 -4.35,-1.15 -8.82,-2.13 -12.88,-4.26 -0.66,0.75 -1.31,1.5 -1.97,2.25z\",\"name\":\"New Jersey\"},\"de\":{\"path\":\"m824.88,225.34c-3.72,0.25 -3.47,3.52 -1.91,6.13 3.35,6.89 3.86,14.58 6.03,21.81 3.45,0.11 6.81,-0.49 10.16,-1.25 -1.2,-2.17 -0.68,-6.38 -3.32,-6.38 -2.9,-1.2 -4.17,-3.69 -4.9,-6.58 -0.91,-3.11 -3.62,-4.96 -5.48,-7.35 -1.85,-1.82 0.94,-5.5 -0.26,-6.47l-0.33,0.09z\",\"name\":\"Delaware\"},\"md\":{\"path\":\"m813.59,229.19c-17.31,3.18 -34.53,6.83 -51.78,10.28 0.74,3.02 1.31,6.08 1.78,9.16 2.14,-1.9 3.29,-5.35 6.59,-5.34 2.14,-1.85 2.67,-5.25 5.77,-3.55 3.46,0.18 5.43,-5.35 9.01,-3.85 2.63,1.63 5.66,2.79 7.34,5.59 4.19,0.11 3.68,3.73 5.74,4.96 2.73,1.11 5.02,1.18 6.38,-0.53 4.29,1.38 2.24,3.74 1.44,6.9 0.09,2.97 -3.7,4.92 -1.66,7.97 3.1,1.31 6.4,1.2 9.63,1.4 2.17,1.58 6.83,1.03 3.79,-2.1 0.41,-2.74 -3.08,-3.35 -3.32,-6.04 -1.7,-2.67 -1.42,-5.47 -0.36,-8.32 1.68,-2.42 -2.83,-3.82 -0.4,-5.41 1.25,-1.53 0.43,-4.16 2.98,-4.7 1.62,-3.02 5.1,-1.45 2.35,1.02 -2.54,2.98 -0.81,4.5 0.57,6.3 1.41,3.55 -0.68,5.07 -1.53,7.31 -0.22,-0.81 3.62,-1.01 3.22,1.79 -3.15,1.64 -1.45,6.12 1.09,7.31 2.98,0.99 5.58,-1.8 6.98,2.14 1.5,3.75 4.92,0.81 7.41,-0.02 2.74,-1.21 3.47,-4.93 2.78,-7.7 -1.13,-1.58 -4.82,0.92 -7.13,0.4 -3.86,1.26 -4.9,-1.25 -5.28,-4.64 -1.68,-5.97 -2.14,-12.33 -5.16,-17.9 -0.04,-4.32 -2.71,-4.2 -6.07,-2.91 -0.73,0.16 -1.45,0.31 -2.18,0.47z m10.94,32.59c1.32,0.99 0.59,4.97 2.06,4.63 -0.48,-1.31 -0.36,-4.99 -2.06,-4.63z\",\"name\":\"Maryland\"},\"va\":{\"path\":\"m792.88,242.88c-0.16,1.46 0.24,5.89 -2.4,4.29 -2.58,-0.67 -6.42,-3.2 -8.23,-2.73 0.7,3.72 -1.46,6.77 -2.99,9.94 -3.05,1.14 -2.29,5.83 -5.84,5.58 -1.62,1.74 -1.47,5.31 -2.45,7.73 -3.09,1.14 -5.37,-0.48 -7.28,-1.75 0.11,6.5 -3.72,11.95 -5.91,17.84 -1.69,1.73 1.19,3.8 -0.74,5.77 -1.35,3.56 -3.79,2.72 -6.19,4.19 -2.72,1.1 -4.9,0.5 -5.4,4.61 -2.07,1.14 -4.83,2.63 -6.91,0.47 -2.38,1.51 -5.02,3.21 -7.81,1.6 -2.69,-0.01 -3.9,-6.55 -6.07,-2.94 -3.27,4.09 -7.89,7.48 -10.21,12.09 0.43,3.25 -4.46,3.32 -6.42,5.15 -4.27,1.95 3.62,-0.11 5.16,-0.07 5.56,-0.79 11.14,-1.37 16.76,-1.36 1.95,-2.65 4.98,-1.81 7.77,-1.65 7.86,-0.32 15.65,-2.12 23.48,-2.99 12.85,-1.4 25.44,-4.27 38.04,-7.05 11.65,-2.52 23.3,-5.03 34.96,-7.55 -1.64,-2.66 -2.75,-6.67 -6.42,-4.14 -1.99,2.03 -6.61,-1.82 -2.7,-2.48 2.65,-1.62 -1.75,-4.07 -1.8,-5.97 -2.73,-0.62 -2.88,-5.12 0.54,-3.6 -0.17,-1.37 -1.24,-3.62 -1.62,-5.68 1.47,-3.51 -0.84,-4.97 -3.72,-5.16 0.31,-3.42 -2.9,-2.93 -5.22,-3.97 -3.33,0.21 -7.06,-0.25 -9.91,-1.66 -1.22,-2.41 -0.91,-5.12 1.25,-6.88 1.39,-2.83 -0.28,-5.7 -3.3,-6.27 -2.65,-0.83 -6.97,-0.29 -5.73,-4.3 -0.83,-0.3 -2.05,-1.06 -2.69,-1.06z m39.16,21.59c0.44,4.71 -3.15,8.7 -2.62,13.48 -0.34,4.11 2.64,5.72 3.48,0.92 1.71,-3.04 -0.23,-6.47 0.8,-9.73 0.4,-2.53 3.66,-3.88 3.52,-6.73 -1.73,0.69 -3.46,1.38 -5.19,2.06z\",\"name\":\"Virginia\"},\"wv\":{\"path\":\"m739.75,223.25c-1.6,2.23 1.3,5.02 0.25,7.75 -0.18,4.04 -0.63,8.11 -0.84,12.13 -1.94,3.58 -4.43,7.35 -8.16,9.13 -3.15,-1.33 -3.92,3.25 -5.76,4.98 -1.56,2.28 2.64,4.93 -0.3,6.69 -2.57,3.58 -2.6,-4.8 -4.46,-0.71 -1.32,2.59 0.02,6.02 -1.35,8.33 -1.82,1.54 -0.53,5.19 -4.16,4.81 -2.23,0.13 -1.45,6.19 1,6.81 2.24,1.47 2.49,4.74 5.5,5.92 1.92,1.96 2.28,5.18 5.39,6.05 1.64,2.19 3.07,4.96 6.25,4.88 2.63,0.5 4.77,-3.86 7.22,-1.35 1.49,0.81 3.93,-0.57 4.58,-1.83 0.43,-4.57 3.42,-2.71 6.03,-4.39 2.39,-0.94 4.82,-0.98 5.62,-4.44 -1.26,-2.59 0.3,-5 1.56,-7.64 2.23,-4.81 4.72,-9.61 4.67,-15.05 2.65,-2.31 3.72,3.56 7.05,1.41 1.64,-1.77 1.12,-5.67 2.6,-7.59 3.47,0.39 2.97,-3.96 5.76,-5.21 2.29,-3.11 3.52,-6.8 3.06,-10.7 1.06,-1.29 5.1,1.62 7.23,2.15 3.3,3.35 4.34,-1.98 2.85,-4.05 -2,-2.28 -5.12,-3.7 -7.62,-4.75 -3.31,0.98 -5.44,5.47 -9.38,3.97 -1.86,-0.23 -2.38,3.98 -4.86,3.88 -2.89,0.71 -3.79,4.38 -6.03,6.22 -1.1,-0.06 -0.99,-4.82 -1.62,-6.64 -0.01,-3.93 -1.77,-5.3 -5.48,-3.82 -4.21,0.6 -8.41,1.23 -12.61,1.91 -1.17,-6.45 -2.29,-12.92 -3.44,-19.38l-0.35,0.35 -0.18,0.18z\",\"name\":\"West Virginia\"},\"oh\":{\"path\":\"m729.5,197.78c-4.85,2.06 -7.38,6.9 -11.47,9.97 -4.08,0.86 -8.09,1.75 -11.72,3.88 -3.41,1.61 -4.39,-4.09 -7.67,-2.63 -3.13,1.35 -5.49,-1.1 -8.11,-2.41 -8.6,1.15 -17.15,2.64 -25.66,4.38 1.45,17.83 4.12,35.53 5.87,53.33 -0.69,3.82 4.06,2.26 6.23,1.48 2.74,0.41 4.83,2.16 5.48,4.94 1.26,2.48 5.82,-0.87 6.96,2.54 2.19,1.53 4.46,-2.33 7.03,-0.58 2.52,0.04 5.62,1.51 6.84,-1.56 1.49,-0.55 5.37,-3.85 5.41,-0.71 0.38,2.53 3.82,3.57 5.77,4.7 3.53,0.63 2.32,-3.91 4.21,-5.51 -0.11,-2.74 0.21,-5.73 1.39,-8.13 2.53,-2.81 3.8,4.53 4.98,0.39 -2.02,-2.27 -0.99,-5.41 0.93,-7.41 1.07,-4.06 4.05,-2.41 6.5,-4.39 2.93,-3.16 6.59,-6.57 5.97,-11.27 0.44,-4.71 1.18,-9.75 -0.53,-14.23 1.47,-2.48 2.58,-4.29 0.96,-7.33 -2.04,-7.53 -2.56,-15.37 -3.93,-23.04 -1.81,1.2 -3.63,2.4 -5.44,3.59z\",\"name\":\"Ohio\"},\"in\":{\"path\":\"m658.66,210.31c-9.12,0.93 -18.35,1.98 -27.41,2.68 -2.6,0.39 -4.21,5.08 -6.89,2.98 -3.83,-2.84 -2.64,1.83 -2.41,4.45 1.1,14.81 2.73,29.61 3.44,44.42 -0.76,3.69 -1.39,7.89 1.36,10.91 0.1,2.99 1.4,6.28 -1.14,8.65 -1.83,2.73 -2.55,6.09 -5.02,8.42 0.09,2.08 -2.02,8.2 1.63,5.16 3.49,-0.6 7.25,-1.53 10.69,-1.34 2.36,4.08 2.67,-0.62 5.26,-1.29 2.03,-2.62 4.78,2.05 5.34,1.04 -1.26,-3.41 3.05,-3.77 5.1,-5.22 1.09,0.63 6.05,3.38 5.3,-0.64 -0.46,-2.47 2.02,-4.71 3.65,-6.34 3.11,-1.39 4.33,-3.9 4.16,-7.23 1.83,-1 4.93,-1.01 6.97,-2.47 4.23,-1.03 0.26,-3.48 1.22,-5.92 -0.83,-12.56 -2.8,-25.13 -4.08,-37.69 -0.85,-6.99 -1.44,-14.01 -2.14,-21.02 -1.68,0.16 -3.35,0.31 -5.03,0.47z\",\"name\":\"Indiana\"},\"il\":{\"path\":\"m569.75,200.44c-0.29,2.58 4.2,1.83 3.73,5.07 2.07,2.09 5.71,4.21 4.38,7.77 -0.31,3.04 -2.61,5.44 -3.08,8.4 -2.38,2.71 -6.06,2.98 -9.31,3.94 -1.61,2.47 -1.05,4.91 1.28,6.47 0.63,3.25 -1.08,5.07 -2.74,7.38 1.41,3.63 -2.39,2.86 -3.56,5.02 1.08,3.12 -2.11,3.8 -2.53,6.64 0.19,3.95 1.33,8.21 3.28,11.58 3.68,3.96 7.38,7.9 12.21,10.47 -0.61,2.88 -0.64,6.7 3.43,5.71 2.05,0 6.18,0.38 6.26,2.68 -0.19,4.39 -3.6,8.24 -3.28,12.53 1.6,3.83 5.33,6.26 8.59,8.42 3.37,-0.29 5.36,1.27 5.9,4.6 1.01,2.64 3.84,4.73 1.73,7.67 0.55,1.74 2.58,7.7 4.31,4.05 1.21,-2.98 5.41,-4.78 8.07,-2.46 3.1,2.46 5.94,0.47 3.13,-2.8 -0.98,-3.39 2.61,-4.96 5.37,-5.33 1.01,-1.55 -1.6,-4.46 1.4,-5.97 1.8,-3.97 -0.56,-9.39 3.32,-12.49 1.43,-2.97 3.23,-5.97 4.4,-8.97 0.13,-3 -0.7,-5.7 -2.34,-8.16 -0.45,-4.59 1.31,-9.09 0.02,-13.65 -1.16,-15 -2.22,-30.05 -3.67,-45.01 -1.02,-3.1 -1.61,-6.46 -4.04,-8.77 -2.27,-1.83 -0.51,-5.93 -1.97,-7.32 -14.76,0.83 -29.52,1.67 -44.28,2.5z\",\"name\":\"Illinois\"},\"ct\":{\"path\":\"m865.78,165.41c-6.91,1.54 -13.81,3.08 -20.72,4.63 2.17,6.2 2.74,12.83 2.44,19.34 -2.62,4.3 2.61,2.38 3.97,-0.21 2.09,-1.89 4.19,-3.71 5.99,-5.88 2.06,1.35 4.78,-1.86 7.44,-1.46 2.98,-0.68 5.69,-2.24 8.56,-3.26 -1.15,-4.67 -2.29,-9.33 -3.44,-14 -1.42,0.28 -2.83,0.56 -4.25,0.84z\",\"name\":\"Connecticut\"},\"wi\":{\"path\":\"m559.53,104.97c-4.06,2.75 -8.71,4.92 -13.53,5.84 -2.88,-1.08 -5.54,-1.12 -5.57,2.68 -0.48,3.34 0.51,7.03 -0.47,10.17 -2.02,3.26 -6.91,4.03 -7.36,8.38 -2.63,2.78 2.21,3.06 2.23,5.53 1.79,2.9 -2.13,4.74 -1.33,7.65 0.29,2.93 -0.4,6.49 1.14,8.93 1.33,3.48 5.88,0.21 6.64,3.93 1.56,2.26 5.47,1.03 6.19,4.78 2.15,5.1 9.7,4.85 11.21,10.39 0.68,3.38 0.35,7.34 1.94,10.32 3.26,1.05 1.94,4.34 0.25,6.21 -0.79,3.96 2.53,8.34 6.75,8.25 2.28,1.6 4.86,1.65 7.83,1.19 13.03,-0.77 26.07,-1.53 39.1,-2.3 -0.02,-4.45 -1.98,-8.61 -1.86,-13.13 -1.7,-2.04 -0.86,-4.17 -0.04,-6.39 0.32,-2.84 3.07,-4.93 1.51,-7.87 -1.05,-2.94 -0.88,-6.21 1.73,-8.27 -0.2,-2.83 -0.5,-5.03 -0.16,-7.93 -1.14,-4.2 2.64,-7.5 3.69,-11.36 0.92,-1.13 3.15,-8.34 0.73,-4.93 -2.65,3.81 -4.99,8.01 -8.18,11.29 -0.86,2.06 -3.21,4.55 -5.21,4.5 -2.57,-1.26 0.28,-4.49 0.9,-6.41 0.47,-2.94 3.2,-4.25 4.09,-6.85 -3.31,-1.29 -2.77,-5.03 -3.54,-7.92 0.02,-3.09 -1.23,-5.08 -4.29,-5.57 -2.14,-3.67 -7.04,-2.78 -10.59,-4.12 -7.13,-1.87 -14.21,-4.39 -21.67,-4.99 -2.48,-0.54 -2.84,-5.51 -5.51,-4.73 -1.71,-1.54 -3.85,-0.7 -5.82,0.13 -2.8,-1.32 0.68,-4.59 1.5,-6.38 2.18,-1.34 -1.53,-2.14 -2.31,-1z\",\"name\":\"Wisconsin\"},\"nc\":{\"path\":\"m830.06,295.97c-18.3,3.8 -36.53,8 -54.86,11.65 -12.74,1.51 -25.38,4.07 -38.18,4.94 -3.32,-0.82 -1.17,3.72 -2.5,5.53 -2.62,1.34 -3.49,4.59 -5.03,6.38 -3.24,-1.36 -5.07,1.46 -6.34,3.97 -1.09,-0.57 -2.96,0.03 -3.41,-1.41 -2.02,1.96 -4.37,3.73 -4.31,6.81 -3.66,1.1 -6.31,3.82 -9.28,5.96 -2.64,0.94 -5.76,2.16 -7.4,4.35 0.73,4.06 -2.98,3.3 -5.1,5.29 -1.98,4.69 2.74,2.66 5.58,2.5 6.41,-1.19 13.32,-0.49 19.18,-3.73 5.04,-1.9 9.41,-5.9 15.06,-5.67 6.5,-0.64 13.15,-0.6 19.62,-0.69 2.99,0.53 3.36,4.79 5.58,5.01 5.37,-0.81 10.87,-1.67 16.25,-1.79 5.38,1.36 9.61,5.45 14.52,7.93 3.59,2.64 6.93,5.66 10.43,8.44 3.15,-0.86 6.32,-1.58 9.59,-1.72 1.06,-4.55 2.04,-9.29 5.39,-12.78 4.2,-4.27 9.23,-8.29 15.33,-9.29 2.91,1.95 3.69,-2.9 5.27,-4.53 2.72,-5 -2.44,3.91 -2.46,-1.22 -3.87,0.7 -5.43,-0.26 -3.29,-4 2.77,-4.25 -2.73,-2.51 -2.12,-6.02 -1.42,-3.76 2.84,2.19 5.06,0.81 2.81,0.12 5.1,-1.87 5.59,-4.6 0.45,-2.9 4.59,-2.7 3.28,-6.48 -4.02,-2.43 4.25,-0.66 0.4,-3.93 -3.52,-3.44 -5.24,-8.33 -7.23,-12.76 -1.54,0.35 -3.08,0.71 -4.63,1.06z m17.13,23.72c1.55,2.61 -4.64,4.26 -0.52,2.69 1.38,-1.92 0.21,-5.22 0.24,-7.62 -0.74,-2.05 0.37,4.57 0.28,4.94z\",\"name\":\"North Carolina\"},\"dc\":{\"path\":\"m803.44,248.16c2.67,3.43 3.85,-1.02 0.55,-0.75l-0.29,0.4 -0.25,0.35z\",\"name\":\"District of Columbia\"},\"ma\":{\"path\":\"m877.59,144.41c-1.04,3.1 -4.01,3.5 -6.79,4.13 -8.62,2.32 -17.17,4.6 -25.96,6.12 -0.11,4.77 -1.17,9.59 -0.03,14.31 10.66,-2.6 21.54,-4.29 32,-7.44 3.57,2.81 6.01,6.73 8.28,10.59 2.13,-0.78 0.01,-5.15 3.77,-5.38 2.93,-3.28 1.83,4.78 3.17,2.62 2.13,-3.09 6.1,-3.9 9.41,-5.21 -0.11,-3.41 -2.21,-8.55 -6.38,-7.53 1.64,-0.1 4.89,0.87 4.91,3.82 0.85,2.24 -2.55,3.71 -4.35,4.24 -3.37,0.51 -4.99,-1.76 -6.32,-4.47 -1.38,-2.05 -3.58,-6.56 -6.3,-3.6 -1.89,-1.72 -3.13,-4.04 -1.33,-6.3 2.3,-2.34 1.23,-6.2 -1.28,-7.16 -0.93,0.41 -1.86,0.82 -2.79,1.24z M902.25,172.69c-1.6,2.76 3.05,-2.44 0.08,-0.32l-0.08,0.32z m-11.28,1.28c1.59,0.78 6.09,-2.26 1.78,-2.03 -0.59,0.68 -1.19,1.35 -1.78,2.03z\",\"name\":\"Massachusetts\"},\"tn\":{\"path\":\"m730.41,314.34c-8.87,-0.11 -17.76,1.5 -26.57,2.73 -10.24,2.86 -20.99,2.66 -31.48,4.02 -16.34,1.45 -32.65,3.29 -48.96,4.95 -4.57,-1.71 -0.43,5.74 -5.06,4.14 -6.97,0.06 -13.87,1.23 -20.84,0.71 -0.95,4.26 -1.37,9.04 -3.6,12.76 -3.45,1.82 -4.01,5.81 -4.43,9.33 -3.1,1.1 -4.68,2.61 -2.53,5.59 -1.75,3.9 -0.58,5.24 3.51,3.98 33.91,-3.26 67.83,-6.53 101.74,-9.79 -0.23,-2.54 0.72,-5.31 3.53,-5.69 3.11,-0.4 0.99,-5.41 4.88,-5.81 2.77,-2.02 6.49,-2.19 8.62,-5.18 1.76,-2.26 6.31,-1.64 5.78,-5.38 1.19,-1.77 3.1,-3.84 5.03,-4.85 1.04,-0.39 0.28,1.78 1.72,1.19 2.38,0.56 2.2,-4.36 5.22,-3.86 3.3,1.27 2.68,-2.92 4.96,-4.18 2.05,-0.94 3.81,-6.68 0.92,-6.59 -0.81,0.64 -1.63,1.27 -2.44,1.91z\",\"name\":\"Tennessee\"},\"ar\":{\"path\":\"m509.47,335.31c1.73,4.9 1.5,10.02 1.53,15.12 2.15,12.21 1.13,24.64 1.47,36.97 0.02,3.71 0.04,7.42 0.06,11.13 2.06,3.2 5.05,-1.45 7.69,1.47 1.53,1.76 -0.88,7.54 2.97,6.49 17.61,-0.36 35.23,-0.72 52.84,-1.08 1.97,-2.6 0.41,-5.9 -1.28,-8.22 3.3,-1.61 -1.59,-3.96 0.84,-6.53 0.75,-2.77 0.62,-6.34 3.78,-7.69 -1.88,-3.07 2.08,-5.24 3.19,-7.88 3.77,-0.38 1.58,-3.3 2.64,-5.42 1.12,-2.67 2.56,-5.28 4.85,-6.58 1.2,-4.12 0.21,-2.67 -1.53,-5.61 -2.76,-3.32 1.95,-3.96 2.36,-6.84 -0.05,-1.94 3.31,-6.69 1.22,-6.75 -2.65,0.85 -5.34,-0.18 -8.02,-0.33 -0.09,-3.38 4.4,-3.88 4.22,-7.3 0.58,-3.87 -3.58,-3.68 -6.34,-3.26 -24.17,0.77 -48.34,1.54 -72.5,2.31z\",\"name\":\"Arkansas\"},\"mo\":{\"path\":\"m490.44,245.63c-2.39,-0.46 -0.19,4.05 0.07,5.6 2.45,3.32 4.51,7.86 8.55,9.22 2.81,-0.24 3.61,2.67 2.79,4.84 -3.22,1.64 -1.72,5.03 0.19,7.07 0.9,2.55 4.61,3.05 4.89,5.61 2.1,12.97 1.12,26.14 1.51,39.22 0,5.72 0.08,11.44 0.72,17.13 24.99,-0.94 49.98,-1.8 74.97,-2.51 3.02,-1.12 4.35,1.72 5.31,3.98 0.52,3.48 -2.86,4.46 -4.14,6.86 2.37,0.64 5.57,0.65 8.21,-0.08 1.46,-3.59 1.87,-7.45 2.38,-11.22 0.84,-2.83 5.27,-2.89 4.61,-6.03 1.37,-2.94 0.14,-4.6 -2.22,-4.28 -2.15,-1.81 -2.84,-5.03 -2.86,-7.6 1.45,-2.84 -2.08,-5.07 -2.44,-7.89 -0.66,-3.24 -5.34,-0.87 -6.89,-3.66 -2.64,-2.34 -6.24,-3.94 -6.91,-7.76 -0.94,-3.21 1.52,-6.47 2.17,-9.64 2.2,-3.53 -1.34,-4.7 -4.33,-4.5 -2.66,0.39 -5.34,-1.15 -4.81,-4.1 0.86,-4.07 -4.71,-4.05 -6.43,-6.93 -2.7,-3.4 -6.72,-6.05 -7.25,-10.67 -1.1,-3.16 -2.12,-6.86 -0.62,-10.06 -2.3,-1.34 -2.28,-5.77 -5.37,-4.89 -20.69,0.77 -41.38,1.53 -62.06,2.3z\",\"name\":\"Missouri\"},\"ga\":{\"path\":\"m672.78,356c-0.74,7.06 4.28,12.69 5.29,19.4 1.36,6.57 3.44,12.96 5.03,19.44 0.94,4.88 2.17,9.95 5.53,13.75 -0.85,3.5 3.37,3.17 2.59,6.44 -1.89,4.45 -3.57,9.65 -0.84,14.13 0.05,2.63 0.94,5.4 -0.38,7.88 2.95,0.94 1.45,4.01 3.07,6.01 1.35,2.67 3.68,4.75 6.83,4 12.35,-0.01 24.69,-1.31 37.03,-1.92 3.32,-0.58 6.67,-0.74 10.04,-0.59 -0.78,4.24 3.04,4.15 2.09,-0.09 -0.9,-2.14 -2.94,-6.23 0.59,-6.62 3.2,0.5 6.42,0.91 9.66,1.02 -0.84,-3.8 -0.8,-7.57 0.5,-11.27 0.2,-3.54 2.62,-6.73 2.21,-10.21 -0.72,-2.93 3.26,-5.26 2.85,-8.05 -2.19,1.37 -5.29,-0.71 -5.34,-3.19 -0.56,-3.12 -2.71,-5.83 -6.03,-6.06 -1.33,-3.9 -2.62,-8.17 -4.99,-11.43 -3.12,-1.07 -6.13,-2.99 -7.17,-6.29 -2.06,-2.33 -5.23,-3.21 -6.66,-6.16 -2.08,-2.2 -5.24,-2.83 -7.66,-4.19 -0.76,-2.53 -3.21,-4.09 -3.94,-6.67 -1.36,-2.63 -2.97,-4.65 -6.15,-3.77 -2.33,-1.57 -7.15,-3.38 -5.31,-6.97 2.02,-2.01 3.76,-4.11 -0.8,-3.11 -12.68,1.51 -25.37,3.01 -38.05,4.52z\",\"name\":\"Georgia\"},\"sc\":{\"path\":\"m737.03,343.19c-4.26,0.4 -8.64,0.43 -12.24,3.07 -3.2,1.75 -6.48,3.19 -9.88,4.49 2.21,3.31 -4.28,2.74 -2.34,6.44 2.27,2.24 5.2,4.13 8.5,3.28 2.53,3.15 3.83,6.94 6.53,9.88 0.91,2.76 5.13,2.06 6.85,4.46 2.18,1.38 2.96,4.25 5.62,5.01 2.99,1.95 3.36,6.38 7.26,7.24 3.61,0.62 3.77,4.77 5.34,7.38 0.38,3.35 2.02,4.84 4.79,5.96 3.36,1.79 1.76,7.23 5.67,8.16 3.63,-1.38 5.8,-4.63 8.38,-7.34 -2.35,-3.93 0.29,-3.32 3.01,-4.44 1.95,-2.4 5.02,-3.3 6.25,-6.28 2.17,-2 3.86,-4.52 5.4,-6.9 2.81,-0.17 3.42,-3.58 4.92,-5.03 -0.28,-4.13 1.3,-7.89 3.12,-11.47 1.03,-2.11 7.03,-4.5 3.47,-6.34 -5.97,-5.35 -12.78,-9.5 -19.71,-13.47 -4.45,-2.68 -9.74,-0.07 -14.57,-0.06 -2.57,-0.23 -6.63,2.48 -7.32,-1.28 -1.66,-4.5 -6.93,-2.82 -10.63,-2.96 -2.8,0.07 -5.61,0.14 -8.41,0.21z\",\"name\":\"South Carolina\"},\"ky\":{\"path\":\"m675,267.5c-2.76,-0.77 -6,1.11 -3.38,3.78 1.52,3.15 -3.12,4.12 -5.19,5.27 -2.94,0.53 -4.71,1.29 -4.3,4.82 -1.15,2.66 -5.3,3.24 -6.32,6.32 -2.16,1.4 0.74,6.22 -2.84,5.92 -3.06,0.61 -4.36,-2.79 -7.09,0.11 -2.26,0.51 -1.1,6.98 -3.85,3.1 -2.27,-2.54 -5.57,0.14 -6.16,2.81 -1.91,1.07 -3.4,-3.73 -6.02,-1.91 -3.32,0.61 -7.48,0.47 -9.92,2.91 0.08,2.65 -3.39,3.78 -1.7,6.05 2.34,2.66 -2.23,2.68 -3.86,3.3 -3.57,1.35 -0.68,4.35 -0.76,6.72 0.33,3.45 -3.76,1.44 -5.49,0.72 -2.5,-2.29 -6.26,-0.38 -7.13,2.53 2.86,2.28 -0.04,4.76 0.41,7.66 -3.47,2.04 -3.19,2.73 0.94,2.35 5.84,0.01 11.64,-0.95 17.5,-0.76 -0.7,-3.74 0.98,-4.99 4.56,-4.19 24.33,-3.01 48.82,-4.7 73.16,-7.43 4.3,-0.7 8.2,-2.38 11.75,-4.88 3.3,-0.8 4.04,-2.71 5.12,-5.35 3.46,-4.09 7.13,-8.06 10.79,-12 -3.27,-1.24 -3.03,-5.51 -6.21,-6.95 -2.6,-1.25 -2.07,-4.66 -5.16,-5.36 -2.38,-2.64 0.8,-7.28 -3.02,-8.87 -3.02,-0.01 -2.37,-4.65 -4.57,-3.51 -2.95,0.61 -3.67,4.78 -7.02,3.29 -2.69,-0.23 -5.51,-1.19 -7.82,0.71 -3,0.83 -3.99,-3.61 -7.44,-2.06 -3.51,0.82 -2.17,-5.19 -5.65,-5.26C677.17,266.43 676.21,267.17 675,267.5z\",\"name\":\"Kentucky\"},\"al\":{\"path\":\"m628.53,359.63c-0.2,14.37 0.12,28.75 -0.54,43.12 -0.04,9.01 -0.88,18.1 -0.07,27.07 1.55,10 2.94,20.01 3.85,30.09 3.07,1.09 3.69,-1.92 4.4,-4.18 -0.3,-3.89 4.27,-3.02 4.89,-0.04 0.72,2.06 4.08,5.27 0.77,6.65 -0.15,0.92 6.17,-0.9 5.88,-2.89 -0.44,-3.01 0.64,-6.86 -2.87,-8.19 -2.29,-0.88 -3.03,-5.59 -0.32,-5.67 14.08,-1.86 28.21,-3.59 42.35,-4.8 2.7,1.07 6.76,-0.25 2.97,-2.5 -1.8,-2 0.95,-5.03 -0.27,-7.65 -0.31,-3.1 -2.63,-5.9 -1.31,-9.15 0.01,-2.92 2.49,-5.36 1.93,-8.3 -3.52,-0.45 -1.34,-5.11 -4.26,-6.7 -3.48,-5.82 -3.36,-13.04 -5.96,-19.21 -2.02,-8.09 -3.34,-16.41 -7.25,-23.88 -0.51,-2.39 -1.08,-4.85 -0.72,-7.31 -14.49,1.18 -28.98,2.35 -43.47,3.53z\",\"name\":\"Alabama\"},\"la\":{\"path\":\"m521.09,407.28c0.1,7.53 -0.24,15.32 1.67,22.61 2.08,2.49 2.82,5.51 3.15,8.67 1.87,2.78 5.27,4.95 4.59,8.72 1.61,2.18 -0.21,5.69 0.08,8.38 0.42,2.64 -4.36,4.89 -2.01,7.12 1.07,2.26 -0.92,5.31 -0.53,7.95 0.38,3.22 -2.37,5.7 -1.55,8.93 5.18,-2.4 10.98,-0.86 16.47,-1.09 5.72,1.7 11.56,4.87 17.56,4.26 2.93,-2.25 5.94,0.36 8.98,0.93 1.08,-3.4 -4.22,-0.81 -5.8,-2.2 -1.91,-0.36 -2.89,-2.3 -1.17,-3.4 2.08,-1.1 4.08,-1.09 5.66,0.04 2.15,-1.39 5.6,-0.24 6.26,2.38 -0.33,3.62 3.42,1.7 5.28,3.15 3.83,1.5 -1.41,4.07 0.83,5.37 2.88,0.97 5.73,2.94 8.62,3.29 3.51,-0.05 2.81,-4.53 6.47,-4.17 1.83,-2.9 4.44,-0.25 4.39,2.31 1.53,1.64 4,-3.68 1.98,-3.66 0.22,-3.37 2.17,-3.21 4.31,-5.41 1.59,0.95 0.91,2.82 1.41,4.16 3.33,0.39 7.44,1.09 9.34,4.06 2.79,0.08 5.17,1.1 5.56,-2.56 -2.68,-0.27 -4.15,-3.88 -7.35,-3.19 -2.31,0.06 -6.3,-1.62 -6.15,-3.77 1.62,-3.62 2.23,-1.74 2.03,-4.38 2.88,1.09 5.69,-2.27 3.22,-4.47 0.46,-4.62 -3.73,-0.15 -3.34,2.19 -1.36,1.21 -6.35,-0.96 -4.6,-3.27 1.71,-1.84 4.2,-4.5 2.19,-6.95 -0.13,-3.26 -2.69,-5.21 -4.47,-7.38 0.52,-2.7 2.26,-7.35 -2.36,-5.46 -10.43,1.28 -20.97,0.69 -31.45,1.12 -1.61,-3.72 -0.02,-7.76 0.16,-11.59 2.66,-4.86 5.46,-9.65 8.25,-14.44 -2.04,-2.82 3.52,-4.45 -0.74,-6.48 -0.53,-2.15 -1.29,-4.65 -2.32,-6.83 -0.08,-3.1 0.9,-7.3 -3.62,-5.79 -17,0.28 -34,0.57 -51,0.85z\",\"name\":\"Louisiana\"},\"ms\":{\"path\":\"m591.03,363.5c-1.45,1.74 -4.03,3.15 -4.63,6.03 -1.4,2.22 1.43,5.74 -2.69,6.07 -1.48,1.97 -4.77,4.42 -3.4,7.17 -1.36,1.83 -3.59,3.95 -3.48,7.01 -2.16,2.66 1.55,5.28 -0.27,7.12 -0.45,1.84 2.25,4.42 1.35,7.03 -1.92,2.71 -1.63,6.55 -0.61,9.53 1.6,2.4 0.78,5.54 3.73,6.94 -0.95,2.53 -1.41,3.75 -1.87,6.31 -2.55,4.96 -6.07,9.62 -7.89,14.84 0.01,2.98 -1.44,6.14 -0.14,8.97 11.4,-0.36 22.87,0.25 34.19,-1.5 2.75,2.21 -2.19,6.39 1.33,8.15 2.82,1.62 2.28,5.18 3.89,7.63 2.07,-1.86 2.51,-6.19 5.82,-4.07 3.21,-0.67 6.85,-3.02 9.89,-0.64 3.62,0.73 6.01,-0.27 4.42,-4.26 -0.81,-10.1 -2.99,-20.07 -3.84,-30.15 0.14,-21.99 1.48,-43.98 0.64,-65.97 -12.15,1.26 -24.29,2.52 -36.44,3.78z\",\"name\":\"Mississippi\"},\"ia\":{\"path\":\"m476.25,181.16c-3.42,-0.05 -2.16,5.68 0.72,6.29 0.54,2.07 -0.75,5.06 -1.41,7.35 -2.13,2.82 -0.93,5.45 1.04,7.92 1.22,4.34 2.24,8.85 4.05,13.06 0.6,3.22 1.29,6.38 3.41,9 0.02,3.49 1.27,6.69 2.3,9.91 -0.04,3.54 0.03,7.05 2.08,10.09 22.2,-1.02 44.44,-1.75 66.66,-2.63 0.77,1.43 3.25,7.11 4.37,4.25 -0.96,-2.5 1.19,-4.52 3.57,-4.72 -0.88,-2.62 1.19,-4.59 2.5,-6.28 1.27,-2.92 -1.39,-4.02 -2.41,-6.31 0.69,-2.9 1.79,-5.3 5.13,-5.46 2.88,-0.83 6.57,-1.81 6.65,-5.41 1.76,-3.04 3.73,-8.01 -0.26,-10.18 -2.74,-1.06 -1.75,-5.27 -5.21,-5.14 -0.64,-1.97 -0.85,-4.76 -4.19,-4.21 -2.75,-0.8 -4.55,-3.47 -5.37,-6 -1.36,-2.89 2.01,-4.72 1.65,-7.28 -3.82,-0.4 -1.19,-6.5 -5.03,-5.47 -26.75,0.41 -53.5,0.81 -80.25,1.22z\",\"name\":\"Iowa\"},\"mn\":{\"path\":\"m497.03,53.84c-0.69,2.52 0.93,7.42 -1.31,8.34 -9.65,-0.01 -19.29,-0.02 -28.94,-0.03 1.16,2.87 2.18,5.76 0.97,8.81 0.05,5.74 -0.79,11.86 2.51,16.95 2.04,3.78 0.64,8.47 1.5,12.6 0.82,6.84 1.76,13.67 3.55,20.32 0.05,3.83 0.88,7.8 0.03,11.53 -1.57,1.74 -4.91,3.29 -2.22,5.78 1.89,1.83 5.05,2.94 4.58,6.1 0.28,11.9 0.25,23.83 0.42,35.75 26.72,-0.38 53.44,-0.75 80.16,-1.13 -0.15,-3.62 -0.46,-7.93 -4.36,-9.47 -3.02,-1.66 -6.24,-3.1 -7.63,-6.5 -0.72,-3.61 -5.32,-1.16 -6.05,-4.61 -1.56,-2.09 -5.29,-0.37 -6.57,-3.78 -1.66,-2.1 -0.52,-5.5 -1.1,-8.1 -1.34,-2.93 1.65,-4.99 1.47,-7.54 -0.2,-3.22 -5.36,-3.85 -2.24,-7.43 0.41,-4.47 5.39,-5.33 7.61,-8.59 0.24,-3.87 -0.73,-8.14 0.52,-11.77 1.76,-3.14 5.17,-5.1 8.28,-6.26 1.92,-2.08 3.66,-4.57 6.13,-5.81 2.54,-4.97 6.04,-9.99 11.81,-11.4 4.55,-1.98 9.12,-3.92 13.6,-6.04 0.73,-3.15 -3.7,-0.18 -5.06,0.03 -0.82,-3.87 -4.2,-3.09 -7.28,-2.87 -2.25,-0.87 -5.34,2.83 -6,-0.66 -1.13,-3.5 -4.51,0.72 -5.88,2.13 -2.33,1.63 -6.22,1.16 -8.06,-0.56 0.94,-3.05 -4.61,-0.39 -4.53,-3.96 -0.16,-2.3 -3.48,1.3 -5.77,-1.2 -3.04,-0.91 -5.5,-3.22 -8.29,-4.38 -2.49,0.4 -5.86,-2.38 -6.7,1.5 -1.17,0.79 -7.15,1.83 -5.93,-1.54 -2.99,0.03 -6.03,-0.05 -7.53,-1.75 -2.6,0.59 -5.72,-0.41 -5.9,-3.43 -0.88,-3.28 -1.44,-6.61 -1.88,-9.98 -1.23,-0.6 -2.54,-1.02 -3.91,-1.06z\",\"name\":\"Minnesota\"},\"ok\":{\"path\":\"m363.31,330.03c17.51,1.12 35.04,1.73 52.56,2.47 -1.37,13.62 -2.89,27.23 -2.83,40.93 -0.92,3.93 3.48,5.78 6.14,7.66 0.56,-5.56 2.96,1.46 4.25,-1.31 0.93,-1.5 5.57,1.68 3.39,4.42 1.59,0.66 4.76,0.51 6.73,1.82 2.79,-0.99 5.16,3.32 7.03,1.26 1.82,-1.93 5.59,-0.31 6.5,2.02 2.44,0.79 1.71,5.84 4.76,3.05 1.39,-1.65 6.25,-1.17 6.69,1.21 1.28,1.5 5.69,3.72 7.39,1.92 0.33,-2.75 3.38,-5.95 4.59,-1.83 3.59,0.38 6.96,2 10.46,3 2.28,-1.86 2.44,-4.68 6.53,-3.41 2.53,1.92 3.8,-1.41 6.31,-1.16 0.85,2.42 5.2,2.41 6.19,-0.5 3.2,-0.2 3.66,3.71 6.55,4.35 1.86,0.4 6.31,3.63 5.36,0.18 -0.32,-12.27 0.1,-24.59 -0.7,-36.82 -1.15,-6.03 -1.01,-12.18 -1.43,-18.25 -1.32,-5.29 -2.05,-10.73 -2.07,-16.18 -20.01,0.66 -40.04,-0.04 -60.06,-0.22 -27.85,-1.32 -55.73,-2.3 -83.53,-4.56 -0.27,3.31 -0.54,6.63 -0.81,9.94z\",\"name\":\"Oklahoma\"},\"tx\":{\"path\":\"m359.47,330.97c2.34,-0.11 -0.86,-1.81 0,0z m0.72,18.31c-1.64,20.84 -2.52,41.75 -4.68,62.55 -0.51,4.33 -0.99,8.66 -1.51,12.98 -17.84,-0.87 -35.67,-1.93 -53.42,-3.89 -4.16,-0.41 -8.32,-0.76 -12.48,-1.11 -0.67,3.74 2.27,3.68 4.04,6.12 2.26,1.83 1.13,6.03 4.65,6.5 3.52,0.48 2.9,4.6 5.45,6.34 3.38,3.15 5.5,7.91 10.27,9.06 1.91,1.27 4,3.22 4.53,5.46 0.69,3.96 4.53,7.02 3.47,11.33 -0.88,5.15 2.22,9.63 5.93,12.88 2.18,2.95 5.14,4.76 8.63,5.78 1.88,1.95 3.01,3.88 5.72,4.88 2.59,0.18 5.38,4.34 7.35,1.18 2.59,-3.14 5.48,-6.41 6.05,-10.55 1.26,-2.82 3.58,-4.32 6.5,-5.06 2.72,-1.59 5.32,-2.13 7.47,0.62 4.91,0.57 10.2,0.53 14.79,2.22 2.83,1.43 2.56,4.53 5.17,6.33 1.73,2.05 4.83,3.37 5.81,5.82 1.37,2.07 2.66,4.26 2.69,7.03 1.62,4.34 4.17,8.51 5.31,12.94 -0.24,2.77 4.65,2.49 4.95,5.51 2.24,4.08 4.37,9.17 9.21,10.49 3.28,2 0.03,5.04 0.91,7.5 3.28,0.87 -0.01,4.68 0.94,6.67 2.53,1.36 4.37,3.2 4.22,6.44 0.39,3.34 2.13,6.83 5.69,7.54 3.01,1.93 6.69,2.13 9.87,3.4 2.28,1.79 5.15,4.09 8.16,2.83 3.46,0.46 6.77,1.29 9.37,3.75 1.43,2.54 6.51,-0.91 4.31,-2.89 -2.04,-3.39 -1.3,-7.79 -2.83,-11.46 -0.63,-3.07 -2.39,-5.95 -0.99,-9.1 1.17,-4.9 2.87,-9.76 4.04,-14.71 -3.37,-1.01 -2.07,-5.47 1.21,-4.71 3.99,0.42 3.65,-6.43 7.81,-6.05 5.25,-1.56 9.07,-6 14.16,-8.05 6.91,-2.81 13.62,-6.46 18.72,-12.05 2.58,-2.98 7.09,-3.95 8.69,-7.75 5,-2.22 9.8,-4.93 15.22,-6 -0.97,-2.64 0.52,-4.86 1.32,-7.22 0.39,-2.99 0.19,-6.07 1.18,-8.94 -3.15,-2.27 0.38,-4.91 1.38,-7.41 -0.2,-2.8 1.42,-6.25 0.09,-8.66 0.3,-2.93 -1.49,-5.14 -3.35,-7.29 -2.46,-2.64 -1.11,-6.91 -3.87,-9.52 -2.53,-4.57 -1.59,-10.19 -2.25,-15.22 0.02,-5 0.19,-10 -0.5,-14.97 -2.63,-2.31 -5.52,2.33 -7.52,-1.37 -3.1,-2.07 -7.66,-2.1 -9.73,-5.68 -2.31,-2.48 -3.82,2.84 -7.18,0.96 -1.91,-2.73 -3.59,0.03 -5.98,0.18 -2.27,-1.15 -6.07,-1.48 -6.09,1.76 -2.76,2.37 -5.95,-0.93 -8.94,-1.28 -3,1.38 -5.23,-3.83 -6.3,-1.87 -0.15,2.66 -2.52,5.1 -5.13,3.34 -3.23,-0.15 -4.91,-2.49 -6.57,-3.89 -2.95,-1.74 -4.3,2.32 -6.94,0.88 -1.48,-1.39 -1.87,-3.6 -3.92,-5.65 -3.06,-2.83 -5.03,3.17 -7.13,0.23 -2.05,-2.11 -5.57,-0.83 -7.94,-2.69 -3.56,0.59 -5.54,-0.24 -4.13,-4.11 -1.89,-1.85 -2.28,1.21 -4.77,-0.14 -0.59,-0.41 -3.45,1.78 -5,-1.11 -1.9,-1.9 -5.13,-3.22 -4.18,-6.45 0.03,-10.58 0.25,-21.15 1.66,-31.65 0.3,-2.99 0.6,-5.98 0.89,-8.98 -17.65,-0.63 -35.3,-1.27 -52.94,-2.22 -0.52,6.07 -1.04,12.15 -1.56,18.22z M466.53,518.63c-5.2,7.17 2.93,-3.27 0,0z\",\"name\":\"Texas\"},\"nm\":{\"path\":\"m242.72,428.78c4.82,0.63 9.65,1.25 14.47,1.88 0.43,-3.33 0.85,-6.67 1.28,-10 9.7,0.89 19.4,1.86 29.09,2.78 -0.9,-3.14 -1.39,-5.98 2.84,-4.5 18.29,1.28 36.48,3.79 54.81,4.49 2.45,-0.6 7.66,2.13 7.99,-1.01 3.06,-22.93 3.75,-46.09 5.59,-69.14 0.54,-7.79 1.39,-15.56 2.02,-23.34 3.21,0.65 1.17,-4.81 2.07,-6.86 1.79,-4.38 -2.87,-3.37 -5.73,-3.85 -32.35,-3.3 -64.71,-6.59 -97.06,-9.89 -5.79,39.81 -11.58,79.63 -17.38,119.44z\",\"name\":\"New Mexico\"},\"ks\":{\"path\":\"m380.53,320.34c25.06,1.17 50.11,2.71 75.19,3.35 17.22,0.07 34.44,0.63 51.66,0.18 -0.25,-12.69 0.23,-25.42 -0.47,-38.08 -0.61,-2.83 -0.17,-6.27 -1.38,-8.74 -3.04,-2.03 -6.02,-5.19 -6.68,-8.77 -0.43,-2.51 4.3,-4.59 1.29,-6.64 -3.02,0.54 -4.05,-3.34 -7.17,-2.43 -36.21,-0.82 -72.43,-1.33 -108.63,-2.5 -1.27,21.21 -2.54,42.42 -3.81,63.63z\",\"name\":\"Kansas\"},\"ne\":{\"path\":\"m353.38,230.59c10.76,0.96 21.27,2.72 32.03,3.66 -0.37,7.11 -0.71,14.23 -1.06,21.34 36.49,1.29 73,1.84 109.5,2.56 -0.31,-1.17 -3.13,-4.05 -4.03,-6.15 -1.99,-2.11 -0.36,-5.13 -2.45,-7.34 -2.42,-3.19 -1.66,-7.14 -2.2,-10.79 -1.66,-2.86 -1.45,-6.25 -2.29,-9.26 -2.94,-2.85 -2.34,-7.01 -3.95,-10.49 -1.13,-3.1 -2.18,-6.19 -2.62,-9.47 -3.51,1.32 -2.89,-3.07 -4.85,-4.29 -2.4,-1.68 -5.57,-1.85 -7.72,-3.93 -3.79,0.07 -7.65,1.04 -11.13,1.94 -2.52,-2.2 -6.03,-3.13 -7.91,-6.06 -13.61,0.96 -27.23,-0.49 -40.83,-1.11 -15.5,-1.05 -31.02,-1.79 -46.51,-2.86 -1.67,14.08 -2.83,28.17 -4,42.25z\",\"name\":\"Nebraska\"},\"sd\":{\"path\":\"m357.44,187.41c25.68,1.58 51.37,3.15 77.06,4.26 3.58,-0.01 7.34,-0.51 10.81,-0.23 1.8,2.9 5.24,3.85 7.69,6 3.55,-1.45 7.52,-1.89 11.25,-1.91 2.45,2.67 7.26,2.29 9.15,5.33 1.32,4.76 3.27,1.86 0.18,-1.15 -1.53,-2.17 1.46,-4.6 1.56,-6.99 1.2,-2.87 1.38,-5.28 -1.58,-6.75 -0.5,-2.04 -0.73,-6.65 2.41,-5.84 2.62,-0.28 0.39,-5.28 1.06,-7.5 -0.32,-9.7 0.19,-19.47 -0.64,-29.13 -0.24,-3.58 -6.26,-4.19 -5.42,-8.4 1.09,-1.22 5.81,-4.38 2.75,-5.4 -27.23,-0.89 -54.5,-1.01 -81.67,-3.15 -9.79,-0.62 -19.57,-1.24 -29.36,-1.86 -1.75,20.91 -3.5,41.81 -5.25,62.72z\",\"name\":\"South Dakota\"},\"nd\":{\"path\":\"m362.88,123.72c26.46,1.49 52.89,3.7 79.4,3.91 10.84,0.26 21.67,0.52 32.51,0.78 0.01,-5.53 -1.38,-10.82 -2.5,-16.17 -1.27,-7.42 -2.05,-14.89 -2.13,-22.42 -2.61,-4.16 -4.11,-9 -3.48,-13.94 -0.44,-3.25 0.67,-6.57 0.3,-9.7 -0.15,-4.01 -2.83,-4.61 -6.31,-4.12 -25.15,-0.47 -50.33,-1.05 -75.41,-3.06 -5.17,-0.49 -10.33,-0.98 -15.5,-1.47 -2.29,22.06 -4.58,44.13 -6.88,66.19z\",\"name\":\"North Dakota\"},\"wy\":{\"path\":\"m240.16,217.84c37.4,4.49 74.29,8.23 111.69,12.72 2.5,-29.2 5.5,-57.65 8,-86.84 -35.26,-4.45 -70.52,-8.9 -105.78,-13.34 -4.64,29.16 -9.27,58.31 -13.91,87.47z\",\"name\":\"Wyoming\"},\"mt\":{\"path\":\"m192.59,52.19c0.84,2.76 3.25,5.4 3.2,8.23 -1.5,2.79 -1,5.49 0.52,8.15 3.4,0.39 4.18,3.44 5.26,6.16 1.43,3.34 2.55,6.88 5.37,9.34 0.88,2.21 5.27,1.18 4.34,4.72 -2.23,6.21 -5.45,12.23 -7.06,18.56 0.02,3.34 3.4,5.25 5.73,2.22 1.61,-2.43 5.63,-3.04 4.69,0.97 -0.5,5.3 1.81,10.35 2.59,15.53 1.9,2 5.27,3.44 5.68,6.31 -0.71,1.91 -0.39,8.78 2.32,5.14 1.85,-1.89 4.93,-0.29 6.85,0.86 3.28,-1.63 7.26,-1.21 10.34,0.69 3.69,0.41 1.52,-5 5.95,-4.08 2.71,-0.42 2.01,6.69 3.21,4.1 0.56,-3.26 1.09,-6.54 1.68,-9.8 35.57,4.49 71.15,8.96 106.72,13.44 2.9,-28.44 5.79,-56.88 8.69,-85.31 -28.84,-2.29 -57.55,-5.91 -86.19,-9.99 -26.71,-4.12 -53.36,-8.71 -79.73,-14.68 -3.05,-0.61 -6.99,-2.59 -6.53,2.19 -1.21,5.75 -2.42,11.51 -3.62,17.26z\",\"name\":\"Montana\"},\"co\":{\"path\":\"m260.17,308.53c39.89,4.09 79.51,8.26 119.39,11.91 1.61,-28.46 3.23,-56.92 4.84,-85.38 -37.47,-4.17 -74.94,-8.33 -112.41,-12.5 -4.03,28.98 -7.8,56.99 -11.83,85.97z\",\"name\":\"Colorado\"},\"id\":{\"path\":\"m169.84,91.72c0.52,3.07 2.27,5.25 4.94,6.78 0.4,3.02 -0.61,5.46 -3.03,7.31 -2.3,2.7 -4.38,5.97 -6.09,8.83 0.39,2.93 -2.57,3.54 -4.23,4.8 -1.77,2.31 -4.28,4.3 -3.93,7.5 -0.64,2.43 4.69,0.57 4.09,4.34 -5.19,11.17 -6.78,23.51 -10.13,35.32 -0.79,3.16 -1.22,4.91 -2.01,8.08 56.92,12.84 62.26,13.45 93.58,19.41 2.75,-17.6 5.5,-35.21 8.25,-52.81 -2.66,-0.84 -0.58,-6.52 -4.23,-4.97 -1.24,1.7 -1.62,4.95 -5.17,3.47 -3.11,-1.99 -6.81,-1.34 -10.13,-0.56 -2.53,-1.76 -5.91,-2.01 -7.69,0.88 -1.75,-0.05 -3.29,-3.39 -2.79,-5.36 1.91,-3.98 -2.85,-5.89 -5.05,-8.27 -0.98,-5.88 -3.48,-11.64 -2.5,-17.69 -1.86,-0.01 -4.25,2.69 -6.47,3.63 -2.21,0.18 -4.52,-3.09 -4.1,-5.31 1.19,-5.37 4.07,-10.37 5.88,-15.6 1.95,-2.64 1.12,-5.57 -2.41,-5.62 -1.55,-3.37 -4.92,-5.66 -5.61,-9.53 -1.31,-2.63 -1.42,-6.47 -5.06,-6.76 -0.99,-1.85 -3.18,-4.47 -1.91,-6.73 2.09,-2.98 -0.34,-5.7 -1.53,-8.5 -2.13,-3.05 0.55,-6.68 0.67,-10.01 0.9,-4.35 1.8,-8.69 2.69,-13.04 -4.18,-0.78 -8.35,-1.56 -12.53,-2.34 -4.5,20.92 -9,41.83 -13.5,62.75z\",\"name\":\"Idaho\"},\"ut\":{\"path\":\"m176.34,297.78c27.57,3.92 55.15,7.83 82.72,11.75 4.04,-29.08 8.08,-58.17 12.13,-87.25 -10.83,-1.14 -21.65,-2.33 -32.47,-3.59 1.43,-7.93 2.82,-15.85 3.84,-23.84 -15.27,-2.85 -30.54,-5.71 -45.81,-8.56 -6.8,37.17 -13.6,74.33 -20.41,111.5z\",\"name\":\"Utah\"},\"az\":{\"path\":\"m173.19,314.66c-2.49,-0.06 -3.05,4.43 -6.38,2.94 -0.74,-2.87 -3.59,-2.82 -5.59,-4.22 -3.74,0.74 -2.37,4.58 -2.68,7.41 -0.52,5.04 -0.42,10.21 -0.89,15.22 -2.19,2.33 -2.44,5.78 -0.24,8.19 2.32,2.62 0.58,7.52 4.09,9.09 0.98,3.59 -2.89,4.83 -5.41,6.09 -3.29,2.46 -3.28,6.86 -3.88,10.47 -1.25,2.44 -4.81,2.39 -4.92,4.97 0.47,2.18 6.18,0.38 3.42,4.54 -0.65,2.75 -3.14,3.45 -5.62,3.78 -3.6,1.45 -2.69,4.7 0.77,5.44 14.69,7.84 28.52,17.13 43.01,25.32 5.79,3.19 11.27,7.21 17.27,9.88 11.71,2.83 23.75,3.45 35.68,4.87 5.71,-39.38 11.42,-78.75 17.13,-118.13 -27.58,-3.93 -55.17,-7.85 -82.75,-11.78 -1,5.31 -2,10.63 -3,15.94z\",\"name\":\"Arizona\"},\"nv\":{\"path\":\"m84.84,232.41c22.96,34.61 45.92,69.23 68.88,103.84 3.66,2.65 3.19,-3.47 3.27,-5.71 0.37,-5.43 0.36,-11.24 1.08,-16.44 2.05,-2.03 4.26,-2 6.08,-0.39 2.62,-0.16 3.86,5.9 6.03,1.27 2.74,-0.82 2.66,-3.64 3.13,-6.41 7.5,-40.87 15,-81.75 22.51,-122.62 -30.72,-6.81 -61.44,-13.63 -92.16,-20.44 -6.27,22.3 -12.54,44.6 -18.81,66.91z\",\"name\":\"Nevada\"},\"or\":{\"path\":\"M67.16,62.81C64.24,70.42 62.73,78.57 58.5,85.63c-2.86,8.53 -5.96,16.93 -10.17,24.89 -3.06,6.61 -8,12.31 -11.32,18.7 -1.03,6.5 -0.64,13.05 -0.36,19.6 37.23,8.7 74.46,16.69 111.69,25.39 3.45,-13.15 6.51,-25.75 10.19,-38.81 1.2,-2.48 3.15,-6.06 -1.1,-5.42 -2.58,-1.78 -0.23,-4.45 -0.38,-6.91 2.3,-2.82 4.36,-5.82 7.47,-7.75 1.75,-5.08 5.43,-9.19 9.03,-13.06 1.66,-3.48 -2.46,-3.92 -3.39,-6.47 -0.25,-3.79 -3.56,-4.26 -6.62,-4.99 -7.63,-2.2 -15.38,-4.2 -23.21,-5.54 -4.9,0.03 -9.79,0.06 -14.69,0.09 -0.95,-2.84 -4.67,1.86 -7.11,0.5 -2.61,0.82 -4.42,-2.63 -6.57,-1.28 -2.61,-0.06 -5.23,0.11 -7.15,-1.87 -3.09,-1.53 -6.33,-1.81 -9.5,-3.1 -1.87,3.03 -5.69,1.22 -8.53,1.31 -1.65,-1.64 -5.79,-3.02 -6.03,-4.81 1.1,-2.44 0.78,-5.93 0.53,-8.59 -0.42,-3.92 -4.72,-2.63 -6.25,-4.49C74.59,58.67 69.45,62.45 67.16,62.81z\",\"name\":\"Oregon\"},\"wa\":{\"path\":\"m101.38,8.72c0.05,2.75 2.93,5.39 3.25,8.16 -1.92,2.33 -1.78,5.19 -1.32,7.71 -1.81,2.64 1.63,4.82 0.67,7.42 -3.6,1.52 -2.43,-3.7 -4.86,-4.99 -3.34,-2.24 1.47,-3.87 1.17,-5.42 -2.5,-1.11 -2.24,3.88 -3.69,4.17C92.33,26.39 88.86,23.04 84.76,22.57 79.82,20.66 75.28,17.69 72.25,13.25c-3.13,-0.98 -1.96,4.97 -3.25,6.95 -0.63,2.8 2.59,5.06 1.41,8.21 0.52,3.86 -1.29,7.55 0.18,11.29 -1.06,2.88 4.75,5.54 2.94,6.39 -3.45,-1.05 -6.2,3.2 -2.25,4.34 1.57,0.97 -0.61,6.32 -3.3,5.43 -1.83,2.15 1.28,6.86 4.14,4.17 3.77,-1.55 2.75,3.51 5.83,3.13 2.81,-0.24 4.26,3.31 4.54,5.61 0.04,2.48 -0.15,6.02 -0.26,7.78 2.63,1.76 5.01,4.26 8.46,3.62 3.2,0.66 4.7,-3.26 7.97,-0.5 3.01,0.48 6.37,1.55 8.79,3.66 3.03,0.92 6.02,-1.78 8.19,1.05 3.44,1.3 6.67,0.03 9.84,-1.4 0.99,1.78 4.42,1.32 7,1.3 5.35,-0.19 10.68,-0.16 15.82,1.55 6.99,1.44 13.78,3.45 20.65,5.4 4.47,-20.85 8.94,-41.71 13.41,-62.56 -19.81,-3.93 -39.37,-9.21 -58.73,-14.66 -7.27,-1.53 -14.4,-3.52 -21.46,-5.87L101.75,8.45 101.38,8.72z M95.5,15.16C94.05,13.72 92.15,14.26 94.72,17.63 94.39,13.84 99.19,18.11 98.98,14.18 98.24,12.75 96.05,14.08 95.5,15.16z m2.31,1.91c-3.13,3.04 1.36,2.18 0.16,-0.25l-0.16,0.25z\",\"name\":\"Washington\"},\"ca\":{\"path\":\"m35.06,153.94c-0.1,4.04 0.4,8.21 -1.99,11.75 -1.86,3.68 -2.55,8.24 -6.48,10.38 -1.19,2.11 -3.49,3.38 -3.59,6.45 -1.94,3.49 2.49,5.65 2.91,8.98 1.54,3.39 2.34,6.94 1.63,10.65 0,2.92 -2.79,5.01 -2.24,8.14 0.05,2.97 -2.24,5.87 0.04,8.54 2.58,5 6.38,9.93 6.71,15.69 -0.54,2.77 -0.99,5.37 1.81,7.17 1.6,1.95 4.49,3.66 2.79,6.46 -1.73,3.87 -1.14,8.04 -1.09,12.16 1.68,2.67 2.83,6.76 6.66,6.53 1.48,2.33 0.97,4.84 -0.22,7.13 -2.5,1.53 -4.36,2.73 -3.66,6.08 0.27,3.49 4.27,5.34 4.36,9.01 1.46,6.2 4.13,11.92 7.59,17.25 0.71,2.57 2.16,4.34 2.9,6.41 -0.24,3.33 -1.93,6.49 -2.41,9.87 -1.66,2.61 1.19,5.52 3.99,5.12 4.03,0.15 7.27,3.31 11.01,4.04 3,-0.55 4.74,2.9 6.07,5.11 1.54,2.71 2.37,6 5.76,6.88 2.51,1.14 6.19,0.05 7.17,3.45 2.41,2.72 -2.39,5.05 1.41,5.17 2.73,1.87 5.56,-1.74 7.56,-0.74 2.13,2.06 4.05,4.2 4.93,7.05 4.3,4.9 1.44,11.77 2.79,17.52 14.73,1.94 29.44,4.72 44.27,5.38 2.78,1.19 6.19,-4.43 2.84,-4.65 -3.13,0.64 -2.83,-4.02 -1.36,-4.66 3.15,-0.88 4.92,-3.83 4.65,-7.04 0.47,-3.98 3.27,-7.43 7.22,-8.4 3.43,-2.04 -0.33,-3.58 -0.79,-5.79 -0.23,-3.65 -1.95,-6.81 -3.62,-9.89 2.02,-3.66 -2.22,-3.32 -3.16,-6.24 -22.6,-34.1 -45.2,-68.19 -67.81,-102.29 6.27,-22.44 12.54,-44.88 18.81,-67.31 -22.04,-5.16 -44.08,-10.31 -66.13,-15.47 -0.45,1.38 -0.9,2.75 -1.34,4.13z m24.13,184.72c-0.27,3.05 7.99,3.06 4.7,2.07 -1.63,-0.35 -3.17,-2.46 -4.7,-2.07z m-5.16,0.38c0.33,3.71 5.81,0.51 1.31,-0.04 -0.44,0.01 -0.88,0.02 -1.31,0.04z M79.69,357.5c-0.2,1.58 4.42,6 3.16,2.37C82.22,358.91 80.8,357.6 79.69,357.5z M77.75,369.13c-0.14,1.55 3.2,3.89 1.32,1.26C78.6,369.72 77.39,366.55 77.75,369.13z\",\"name\":\"California\"}}});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/jqvmap/maps/jquery.vmap.world.js",
    "content": "/** Add World Map Data Points */\njQuery.fn.vectorMap('addMap', 'world_en', {\"width\":950,\"height\":550,\"pathes\":{\"id\":{\"path\":\"M781.68,324.4l-2.31,8.68l-12.53,4.23l-3.75-4.4l-1.82,0.5l3.4,13.12l5.09,0.57l6.79,2.57v2.57l3.11-0.57l4.53-6.27v-5.13l2.55-5.13l2.83,0.57l-3.4-7.13l-0.52-4.59L781.68,324.4L781.68,324.4M722.48,317.57l-0.28,2.28l6.79,11.41h1.98l14.15,23.67l5.66,0.57l2.83-8.27l-4.53-2.85l-0.85-4.56L722.48,317.57L722.48,317.57M789.53,349.11l2.26,2.77l-1.47,4.16v0.79h3.34l1.18-10.4l1.08,0.3l1.96,9.5l1.87,0.5l1.77-4.06l-1.77-6.14l-1.47-2.67l4.62-3.37l-1.08-1.49l-4.42,2.87h-1.18l-2.16-3.17l0.69-1.39l3.64-1.78l5.5,1.68l1.67-0.1l4.13-3.86l-1.67-1.68l-3.83,2.97h-2.46l-3.73-1.78l-2.65,0.1l-2.95,4.75l-1.87,8.22L789.53,349.11L789.53,349.11M814.19,330.5l-1.87,4.55l2.95,3.86h0.98l1.28-2.57l0.69-0.89l-1.28-1.39l-1.87-0.69L814.19,330.5L814.19,330.5M819.99,345.45l-4.03,0.89l-1.18,1.29l0.98,1.68l2.65-0.99l1.67-0.99l2.46,1.98l1.08-0.89l-1.96-2.38L819.99,345.45L819.99,345.45M753.17,358.32l-2.75,1.88l0.59,1.58l8.75,1.98l4.42,0.79l1.87,1.98l5.01,0.4l2.36,1.98l2.16-0.5l1.97-1.78l-3.64-1.68l-3.14-2.67l-8.16-1.98L753.17,358.32L753.17,358.32M781.77,366.93l-2.16,1.19l1.28,1.39l3.14-1.19L781.77,366.93L781.77,366.93M785.5,366.04l0.39,1.88l2.26,0.59l0.88-1.09l-0.98-1.49L785.5,366.04L785.5,366.04M790.91,370.99l-2.75,0.4l2.46,2.08h1.96L790.91,370.99L790.91,370.99M791.69,367.72l-0.59,1.19l4.42,0.69l3.44-1.98l-1.96-0.59l-3.14,0.89l-1.18-0.99L791.69,367.72L791.69,367.72M831.93,339.34l-4.17,0.47l-2.68,1.96l1.11,2.24l4.54,0.84v0.84l-2.87,2.33l1.39,4.85l1.39,0.09l1.2-4.76h2.22l0.93,4.66l10.83,8.96l0.28,7l3.7,4.01l1.67-0.09l0.37-24.72l-6.29-4.38l-5.93,4.01l-2.13,1.31l-3.52-2.24l-0.09-7.09L831.93,339.34L831.93,339.34z\",\"name\":\"Indonesia\"},\"pg\":{\"path\":\"M852.76,348.29l-0.37,24.44l3.52-0.19l4.63-5.41l3.89,0.19l2.5,2.24l0.83,6.9l7.96,4.2l2.04-0.75v-2.52l-6.39-5.32l-3.15-7.28l2.5-1.21l-1.85-4.01l-3.7-0.09l-0.93-4.29l-9.81-6.62L852.76,348.29L852.76,348.29M880.48,349l-0.88,1.25l4.81,4.26l0.66,2.5l1.31-0.15l0.15-2.57l-1.46-1.32L880.48,349L880.48,349M882.89,355.03l-0.95,0.22l-0.58,2.57l-1.82,1.18l-5.47,0.96l0.22,2.06l5.76-0.29l3.65-2.28l-0.22-3.97L882.89,355.03L882.89,355.03M889.38,359.51l1.24,3.45l2.19,2.13l0.66-0.59l-0.22-2.28l-2.48-3.01L889.38,359.51L889.38,359.51z\",\"name\":\"Papua New Guinea\"},\"mx\":{\"path\":\"M137.49,225.43l4.83,15.21l-2.25,1.26l0.25,3.02l4.25,3.27v6.05l5.25,5.04l-2.25-14.86l-3-9.83l0.75-6.8l2.5,0.25l1,2.27l-1,5.79l13,25.44v9.07l10.5,12.34l11.5,5.29l4.75-2.77l6.75,5.54l4-4.03l-1.75-4.54l5.75-1.76l1.75,1.01l1.75-1.76h2.75l5-8.82l-2.5-2.27l-9.75,2.27l-2.25,6.55l-5.75,1.01l-6.75-2.77l-3-9.57l2.27-12.07l-4.64-2.89l-2.21-11.59l-1.85-0.79l-3.38,3.43l-3.88-2.07l-1.52-7.73l-15.37-1.61l-7.94-5.97L137.49,225.43L137.49,225.43z\",\"name\":\"Mexico\"},\"ee\":{\"path\":\"M517.77,143.66l-5.6-0.2l-3.55,2.17l-0.05,1.61l2.3,2.17l7.15,1.21L517.77,143.66L517.77,143.66M506.76,147.64l-1.55-0.05l-0.9,0.91l0.65,0.96l1.55,0.1l0.8-1.16L506.76,147.64L506.76,147.64z\",\"name\":\"Estonia\"},\"dz\":{\"path\":\"M473.88,227.49l-4.08-1.37l-16.98,3.19l-3.7,2.81l2.26,11.67l-6.75,0.27l-4.06,6.53l-9.67,2.32l0.03,4.75l31.85,24.35l5.43,0.46l18.11-14.15l-1.81-2.28l-3.4-0.46l-2.04-3.42v-14.15l-1.36-1.37l0.23-3.65l-3.62-3.65l-0.45-3.88l1.58-1.14l-0.68-4.11L473.88,227.49L473.88,227.49z\",\"name\":\"Algeria\"},\"ma\":{\"path\":\"M448.29,232.28h-11.55l-2.26,5.02l-5.21,2.51l-4.3,11.64l-8.38,5.02l-11.77,19.39l11.55-0.23l0.45-5.7h2.94v-7.76h10.19l0.23-10.04l9.74-2.28l4.08-6.62l6.34-0.23L448.29,232.28L448.29,232.28z\",\"name\":\"Morocco\"},\"mr\":{\"path\":\"M404.9,276.66l2.18,2.85l-0.45,12.32l3.17-2.28l2.26-0.46l3.17,1.14l3.62,5.02l3.4-2.28l16.53-0.23l-4.08-27.61l4.38-0.02l-8.16-6.25l0.01,4.06l-10.33,0.01l-0.05,7.75l-2.97-0.01l-0.38,5.72L404.9,276.66L404.9,276.66z\",\"name\":\"Mauritania\"},\"sn\":{\"path\":\"M412.03,289.84L410.12,290.31L406.18,293.18L405.28,294.78L405,296.37L406.43,297.40L411.28,297.34L414.40,296.5L414.75,298.03L414.46,300.06L414.53,300.09L406.78,300.21L408.03,303.21L408.71,301.37L418,302.15L418.06,302.21L419.03,302.25L422,302.37L422.12,300.62L418.53,296.31L414.53,290.87L412.03,289.84z\",\"name\":\"Senegal\"},\"gm\":{\"path\":\"M406.89,298.34l-0.13,1.11l6.92-0.1l0.35-1.03l-0.15-1.04l-1.99,0.81L406.89,298.34L406.89,298.34z\",\"name\":\"Gambia\"},\"gw\":{\"path\":\"M408.6,304.53l1.4,2.77l3.93-3.38l0.04-1.04l-4.63-0.67L408.6,304.53L408.6,304.53z\",\"name\":\"Guinea-Bissau\"},\"gn\":{\"path\":\"M410.42,307.94l3.04,4.68l3.96-3.44l4.06-0.18l3.38,4.49l2.87,1.89l1.08-2.1l0.96-0.54l-0.07-4.62l-1.91-5.48l-5.86,0.65l-7.25-0.58l-0.04,1.86L410.42,307.94L410.42,307.94z\",\"name\":\"Guinea\"},\"sl\":{\"path\":\"M413.93,313.13l5.65,5.46l4.03-4.89l-2.52-3.95l-3.47,0.35L413.93,313.13L413.93,313.13z\",\"name\":\"Sierra Leone\"},\"lr\":{\"path\":\"M420.17,319.19l10.98,7.34l-0.26-5.56l-3.32-3.91l-3.24-2.87L420.17,319.19L420.17,319.19z\",\"name\":\"Liberia\"},\"ci\":{\"path\":\"M432.07,326.75l4.28-3.03l5.32-0.93l5.43,1.17l-2.77-4.19l-0.81-2.56l0.81-7.57l-4.85,0.23l-2.2-2.1l-4.62,0.12l-2.2,0.35l0.23,5.12l-1.16,0.47l-1.39,2.56l3.58,4.19L432.07,326.75L432.07,326.75z\",\"name\":\"Cote d'Ivoire\"},\"ml\":{\"path\":\"M419.46,295.84l3.08-2.11l17.12-0.1l-3.96-27.54l4.52-0.13l21.87,16.69l2.94,0.42l-1.11,9.28l-13.75,1.25l-10.61,7.92l-1.93,5.42l-7.37,0.31l-1.88-5.41l-5.65,0.4l0.22-1.77L419.46,295.84L419.46,295.84z\",\"name\":\"Mali\"},\"bf\":{\"path\":\"M450.59,294.28l3.64-0.29l5.97,8.44l-5.54,4.18l-4.01-1.03l-5.39,0.07l-0.87,3.16l-4.52,0.22l-1.24-1.69l1.6-5.14L450.59,294.28L450.59,294.28z\",\"name\":\"Burkina Faso\"},\"ne\":{\"path\":\"M460.89,302l2.55-0.06l2.3-3.45l3.86-0.69l4.11,2.51l8.77,0.25l6.78-2.76l2.55-2.19l0.19-2.88l4.73-4.77l1.25-10.53l-3.11-6.52l-7.96-1.94l-18.42,14.36l-2.61-0.25l-1.12,9.97l-9.4,0.94L460.89,302L460.89,302z\",\"name\":\"Niger\"},\"gh\":{\"path\":\"M444.34,317.05l1.12,2.63l2.92,4.58l1.62-0.06l4.42-2.51l-0.31-14.29l-3.42-1l-4.79,0.13L444.34,317.05L444.34,317.05z\",\"name\":\"Ghana\"},\"tg\":{\"path\":\"M455.22,321.25l2.68-1.57l-0.06-10.35l-1.74-2.82l-1.12,0.94L455.22,321.25L455.22,321.25z\",\"name\":\"Togo\"},\"bj\":{\"path\":\"M458.71,319.49h2.12l0.12-6.02l2.68-3.89l-0.12-6.77l-2.43-0.06l-4.17,3.26l1.74,3.32L458.71,319.49L458.71,319.49z\",\"name\":\"Benin\"},\"ng\":{\"path\":\"M461.57,319.37l3.92,0.19l4.73,5.27l2.3,0.63l1.8-0.88l2.74-0.38l0.93-3.82l3.73-2.45l4.04-0.19l7.4-13.61l-0.12-3.07l-3.42-2.63l-6.84,3.01l-9.15-0.13l-4.36-2.76l-3.11,0.69l-1.62,2.82l-0.12,7.96l-2.61,3.7L461.57,319.37L461.57,319.37z\",\"name\":\"Nigeria\"},\"tn\":{\"path\":\"M474.91,227.33l5.53-2.23l1.82,1.18l0.07,1.44l-0.85,1.11l0.13,1.97l0.85,0.46v3.54l-0.98,1.64l0.13,1.05l3.71,1.31l-2.99,4.65l-1.17-0.07l-0.2,3.74l-1.3,0.2l-1.11-0.98l0.26-3.8l-3.64-3.54l-0.46-3.08l1.76-1.38L474.91,227.33L474.91,227.33z\",\"name\":\"Tunisia\"},\"ly\":{\"path\":\"M480.05,248.03l1.56-0.26l0.46-3.6h0.78l3.19-5.24l7.87,2.29l2.15,3.34l7.74,3.54l4.03-1.7l-0.39-1.7l-1.76-1.7l0.2-1.18l2.86-2.42h5.66l2.15,2.88l4.55,0.66l0.59,36.89l-3.38-0.13l-20.42-10.62l-2.21,1.25l-8.39-2.1l-2.28-3.01l-3.32-0.46l-1.69-3.01L480.05,248.03L480.05,248.03z\",\"name\":\"Libya\"},\"eg\":{\"path\":\"M521.93,243.06l2.67,0.07l5.2,1.44l2.47,0.07l3.06-2.56h1.43l2.6,1.44h3.29l0.59-0.04l2.08,5.98l0.59,1.93l0.55,2.89l-0.98,0.72l-1.69-0.85l-1.95-6.36l-1.76-0.13l-0.13,2.16l1.17,3.74l9.37,11.6l0.2,4.98l-2.73,3.15L522.32,273L521.93,243.06L521.93,243.06z\",\"name\":\"Egypt\"},\"td\":{\"path\":\"M492.79,296l0.13-2.95l4.74-4.61l1.27-11.32l-3.16-6.04l2.21-1.13l21.4,11.15l-0.13,10.94l-3.77,3.21v5.64l2.47,4.78h-4.36l-7.22,7.14l-0.19,2.16l-5.33-0.07l-0.07,0.98l-3.04-0.4l-2.08-3.93l-1.56-0.77l0.2-1.2l1.96-1.5v-7.02l-2.71-0.42l-3.27-2.43L492.79,296L492.79,296L492.79,296z\",\"name\":\"Chad\"},\"sd\":{\"path\":\"M520.15,292.43l0.18-11.83l2.46,0.07l-0.28-6.57l25.8,0.23l3.69-3.72l7.96,12.73l-4.36,5.14v7.85l-6.86,14.75l-2.36,1.04l0.75,4.11h2.94l3.99,5.79l-3.2,0.41l-0.82,1.49l-0.08,2.15l-9.6-0.17l-0.98-1.49l-6.71-0.38l-12.32-12.68l1.23-0.74l0.33-2.98l-2.95-1.74l-2.69-5.31l0.15-4.94L520.15,292.43L520.15,292.43z\",\"name\":\"Sudan\"},\"cm\":{\"path\":\"M477.82,324.28l3.22,2.96l-0.23,4.58l17.66-0.41l1.44-1.62l-5.06-5.45l-0.75-1.97l3.22-6.03l-2.19-4l-1.84-0.99v-2.03l2.13-1.39l0.12-6.32l-1.69-0.19l-0.03,3.32l-7.42,13.85l-4.54,0.23l-3.11,2.14L477.82,324.28L477.82,324.28z\",\"name\":\"Cameroon\"},\"er\":{\"path\":\"M556.71,294.7l-0.25-5.89l3.96-4.62l1.07,0.82l1.95,6.52l9.36,6.97l-1.7,2.09l-6.85-5.89H556.71L556.71,294.7z\",\"name\":\"Eritrea\"},\"dj\":{\"path\":\"M571.48,301.54l-0.57,3.36l3.96-0.06l0.06-4.94l-1.45-0.89L571.48,301.54L571.48,301.54z\",\"name\":\"Djibouti\"},\"et\":{\"path\":\"M549.49,311.76l7.28-16.2l7.23,0.04l6.41,5.57l-0.45,4.59h4.97l0.51,2.76l8.04,4.81l4.96,0.25l-9.43,10.13l-12.95,3.99h-3.21l-5.72-4.88l-2.26-0.95l-4.38-6.45l-2.89,0.04l-0.34-2.96L549.49,311.76L549.49,311.76z\",\"name\":\"Ethiopia\"},\"so\":{\"path\":\"M575.74,305.04l4.08,2.78l1.21-0.06l10.13-3.48l1.15,3.71l-0.81,3.13l-2.19,1.74l-5.47-0.35l-7.83-4.81L575.74,305.04L575.74,305.04M591.97,304.05l4.37-1.68l1.55,0.93l-0.17,3.88l-4.03,11.48l-21.81,23.36l-2.53-1.74l-0.17-9.86l3.28-3.77l6.96-2.15l10.21-10.78l2.67-2.38l0.75-3.48L591.97,304.05L591.97,304.05z\",\"name\":\"Somalia\"},\"ye\":{\"path\":\"M599.62,299.65l2.13,2.38l2.88-1.74l1.04-0.35l-1.32-1.28l-2.53,0.75L599.62,299.65L599.62,299.65M571.99,289.23l1.44,4.28v4.18l3.46,3.14l24.38-9.93l0.23-2.73l-3.91-7.02l-9.81,3.13l-5.63,5.54l-6.53-3.86L571.99,289.23L571.99,289.23z\",\"name\":\"Yemen\"},\"cf\":{\"path\":\"M495.66,324.05l4.66,5.04l1.84-2.38l2.93,0.12l0.63-2.32l2.88-1.8l5.98,4.12l3.45-3.42l13.39,0.59L519,311.18l1.67-1.04l0.23-2.26l-2.82-1.33h-4.14l-6.67,6.61l-0.23,2.72l-5.29-0.17l-0.17,1.16l-3.45-0.35l-3.11,5.91L495.66,324.05L495.66,324.05z\",\"name\":\"Central African Republic\"},\"st\":{\"path\":\"M470.74,337.15l1.15-0.58l0.86,0.7l-0.86,1.33l-1.04-0.41L470.74,337.15L470.74,337.15M473.05,333.5l1.73-0.29l0.58,1.1l-0.86,0.93l-0.86-0.12L473.05,333.5L473.05,333.5z\",\"name\":\"Sao Tome and Principe\"},\"gq\":{\"path\":\"M476.84,327.41l-0.46,1.97l1.38,0.75l1.32-0.99l-0.46-2.03L476.84,327.41L476.84,327.41M480.99,332.69l-0.06,1.39l4.54,0.23l-0.06-1.57L480.99,332.69L480.99,332.69z\",\"name\":\"Equatorial Guinea\"},\"ga\":{\"path\":\"M486.39,332.63l-0.12,2.49l-5.64-0.12l-3.45,6.67l8.11,8.87l2.01-1.68l-0.06-1.74l-1.38-0.64v-1.22l3.11-1.97l2.76,2.09l3.05,0.06l-0.06-10.49l-4.83-0.23l-0.06-2.2L486.39,332.63L486.39,332.63z\",\"name\":\"Gabon\"},\"cg\":{\"path\":\"M491,332.52l-0.06,1.45l4.78,0.12l0.17,12.41l-4.37-0.12l-2.53-1.97l-1.96,1.1l-0.09,0.55l1.01,0.49l0.29,2.55l-2.7,2.32l0.58,1.22l2.99-2.32h1.44l0.46,1.39l1.9,0.81l6.1-5.16l-0.12-3.77l1.27-3.07l3.91-2.9l1.05-9.81l-2.78,0.01l-3.22,4.41L491,332.52L491,332.52z\",\"name\":\"Congo\"},\"ao\":{\"path\":\"M486.55,353.23l1.74,2.26l2.25-2.13l-0.66-2.21l-0.56-0.04L486.55,353.23L486.55,353.23M488.62,356.71l3.41,12.73l-0.08,4.02l-4.99,5.36l-0.75,8.71l19.2,0.17l6.24,2.26l5.15-0.67l-3-3.76l0.01-10.74l5.9-0.25v-4.19l-4.79-0.2l-0.96-9.92l-2.02,0.03l-1.09-0.98l-1.19,0.06l-1.58,3.06H502l-1.41-1.42l0.42-2.01l-1.66-2.43L488.62,356.71L488.62,356.71z\",\"name\":\"Angola\"},\"cd\":{\"path\":\"M489.38,355.71l10.31-0.18l2.09,2.97l-0.08,2.19l0.77,0.7h5.12l1.47-2.89h2.09l0.85,0.86l2.87-0.08l0.85,10.08l4.96,0.16v0.78l13.33,6.01l0.62,1.17h2.79l-0.31-4.22l-5.04-2.42l0.31-3.2l2.17-5.08l4.96-0.16l-4.26-14.14l0.08-6.01l6.74-10.54l0.08-1.48l-1.01-0.55l0.04-2.86l-1.23-0.11l-1.24-1.58l-20.35-0.92l-3.73,3.63l-6.11-4.02l-2.15,1.32l-1.56,13.13l-3.86,2.98l-1.16,2.64l0.21,3.91l-6.96,5.69l-1.85-0.84l0.25,1.09L489.38,355.71L489.38,355.71z\",\"name\":\"Congo\"},\"rw\":{\"path\":\"M537.82,339.9l2.81,2.59l-0.12,2.77l-4.36,0.09v-3.06L537.82,339.9L537.82,339.9z\",\"name\":\"Rwanda\"},\"bi\":{\"path\":\"M536.21,346.21l4.27-0.09l-1.11,3.74l-1.08,0.94h-1.32l-0.94-2.53L536.21,346.21L536.21,346.21z\",\"name\":\"Burundi\"},\"ug\":{\"path\":\"M538.3,339.09l3.03,2.84l1.9-1.21l5.14-0.84l0.88,0.09l0.33-1.95l2.9-6.1l-2.44-5.08l-7.91,0.05l-0.05,2.09l1.06,1.02l-0.16,2.09L538.3,339.09L538.3,339.09z\",\"name\":\"Uganda\"},\"ke\":{\"path\":\"M550.83,326.52l2.66,5.19l-3.19,6.69l-0.42,2.03l15.93,9.85l4.94-7.76l-2.5-2.03l-0.05-10.22l3.13-3.42l-4.99,1.66l-3.77,0.05l-5.9-4.98l-1.86-0.8l-3.45,0.32l-0.61,1.02L550.83,326.52L550.83,326.52z\",\"name\":\"Kenya\"},\"tz\":{\"path\":\"M550.57,371.42l17.47-2.14l-3.93-7.6l-0.21-7.28l1.27-3.48l-16.62-10.44l-5.21,0.86l-1.81,1.34l-0.16,3.05l-1.17,4.23l-1.22,1.45l-1.75,0.16l3.35,11.61l5.47,2.57l3.77,0.11L550.57,371.42L550.57,371.42z\",\"name\":\"Tanzania\"},\"zm\":{\"path\":\"M514.55,384.7l3.17,4.4l4.91,0.3l1.74,0.96l5.14,0.06l4.43-6.21l12.38-5.54l1.08-4.88l-1.44-6.99l-6.46-3.68l-4.31,0.3l-2.15,4.76l0.06,2.17l5.08,2.47l0.3,5.37l-4.37,0.24l-1.08-1.81l-12.14-5.18l-0.36,3.98l-5.74,0.18L514.55,384.7L514.55,384.7z\",\"name\":\"Zambia\"},\"mw\":{\"path\":\"M547.16,379.4l3.11,3.25l-0.06,4.16l0.6,1.75l4.13-4.46l-0.48-5.67l-2.21-1.69l-1.97-9.95l-3.41-0.12l1.55,7.17L547.16,379.4L547.16,379.4z\",\"name\":\"Malawi\"},\"mz\":{\"path\":\"M541.17,413.28l2.69,2.23l6.34-3.86l1.02-5.73v-9.46l10.17-8.32l1.74,0.06l6.16-5.91l-0.96-12.18L552,372.17l0.48,3.68l2.81,2.17l0.66,6.63l-5.5,5.37l-1.32-3.01l0.24-3.98l-3.17-3.44l-7.78,3.62l7.24,3.68l0.24,10.73l-4.79,7.11L541.17,413.28L541.17,413.28z\",\"name\":\"Mozambique\"},\"zw\":{\"path\":\"M524.66,392.3l8.97,10.13l6.88,1.75l4.61-7.23l-0.36-9.58l-7.48-3.86l-2.81,1.27l-4.19,6.39l-5.8-0.06L524.66,392.3L524.66,392.3z\",\"name\":\"Zimbabwe\"},\"na\":{\"path\":\"M496.55,421.96l3.35,0.24l1.97,1.99l4.67,0.06l1.14-13.26v-8.68l2.99-0.6l1.14-9.1l7.6-0.24l2.69-2.23l-4.55-0.18l-6.16,0.84l-6.64-2.41h-18.66l0.48,5.3l6.22,9.16l-1.08,4.7l0.06,2.47L496.55,421.96L496.55,421.96z\",\"name\":\"Namibia\"},\"bw\":{\"path\":\"M508.51,411.23l2.15,0.66l-0.3,6.15l2.21,0.3l5.08-4.58l6.1,0.66l1.62-4.1l7.72-7.05l-9.27-10.67l-0.12-1.75l-1.02-0.3l-2.81,2.59l-7.3,0.18l-1.02,9.1l-2.87,0.66L508.51,411.23L508.51,411.23z\",\"name\":\"Botswana\"},\"sz\":{\"path\":\"M540.87,414l-2.51,0.42l-1.08,2.95l1.92,1.75h2.33l1.97-2.83L540.87,414L540.87,414z\",\"name\":\"Swaziland\"},\"ls\":{\"path\":\"M527.41,425.39l3.05-2.35l1.44,0.06l1.74,2.17l-0.18,2.17l-2.93,1.08v0.84l-3.23-0.18l-0.78-2.35L527.41,425.39L527.41,425.39z\",\"name\":\"Lesotho\"},\"za\":{\"path\":\"M534.16,403.63l-7.9,7.3l-1.88,4.51l-6.26-0.78l-5.21,4.63l-3.46-0.34l0.28-6.4l-1.23-0.43l-0.86,13.09l-6.14-0.06l-1.85-2.18l-2.71-0.03l2.47,7.09l4.41,4.17l-3.15,3.67l2.04,4.6l4.72,1.8l3.76-3.2l10.77,0.06l0.77-0.96l4.78-0.84l16.17-16.1l-0.06-5.07l-1.73,2.24h-2.59l-3.15-2.64l1.6-3.98l2.75-0.56l-0.25-8.18L534.16,403.63L534.16,403.63z M530.37,422.13l1.51-0.06l2.45,2.66l-0.07,3.08l-2.87,1.45l-0.18,1.02l-4.38,0.05l-1.37-3.3l1.25-2.42L530.37,422.13L530.37,422.13z\",\"name\":\"South Africa\"},\"gl\":{\"path\":\"M321.13,50.07l-1.36,2.17l2.45,2.45l-1.09,2.45l3.54,4.62l4.35-1.36l5.71-0.54l6.53,7.07l4.35,11.69l-3.53,7.34l4.89-0.82l2.72,1.63l0.27,3.54l-5.98,0.27l3.26,3.26l4.08,0.82l-8.97,11.96l-1.09,7.34l1.9,5.98l-1.36,3.54l2.45,7.61l4.62,5.17l1.36-0.27l2.99-0.82l0.27,4.35l1.9,2.72l3.53-0.27l2.72-10.06l8.16-10.06l12.24-4.89l7.61-9.52l3.53,1.63h7.34l5.98-5.98l7.34-2.99l0.82-4.62l-4.62-4.08l-4.08-1.36l-2.18-5.71l5.17-2.99l8.16,4.35l2.72-2.99l-4.35-2.45l9.25-12.51l-1.63-5.44l-4.35-0.27l1.63-4.89l5.44-2.45l11.15-9.79l-3.26-3.53l-12.51,1.09l-6.53,6.53l3.81-8.43l-4.35-1.09l-2.45,4.35l-3.53-2.99l-9.79,1.09l2.72-4.35l16.04-0.54l-4.08-5.44l-17.4-3.26l-7.07,1.09l0.27,3.54l-7.34-2.45l0.27-2.45l-5.17,1.09l-1.09,2.72l5.44,1.9l-5.71,4.08l-4.08-4.62l-5.71-1.63l-0.82,4.35h-5.71l-2.18-4.62l-8.97-1.36l-4.89,2.45l-0.27,3.26l-6.25-0.82l-3.81,1.63l0.27,3.81v1.9l-7.07,1.36l-3.26-2.17l-2.18,3.53l3.26,3.54l6.8-0.82l0.54,2.18l-5.17,2.45L321.13,50.07L321.13,50.07M342.89,92.49l1.63,2.45l-0.82,2.99h-1.63l-2.18-2.45l0.54-1.9L342.89,92.49L342.89,92.49M410.87,85.69l4.62,1.36l-0.27,3.81l-4.89-2.45l-1.09-1.36L410.87,85.69L410.87,85.69z\",\"name\":\"Greenland\"},\"au\":{\"path\":\"M761.17,427.98l-0.35,25.38l-3.9,2.86l-0.35,2.5l5.32,3.57l13.13-2.5h6.74l2.48-3.58l14.9-2.86l10.64,3.22l-0.71,4.29l1.42,4.29l8.16-1.43l0.35,2.14l-5.32,3.93l1.77,1.43l3.9-1.43l-1.06,11.8l7.45,5.72l4.26-1.43l2.13,2.14l12.42-1.79l11.71-18.95l4.26-1.07l8.51-15.73l2.13-13.58l-5.32-6.79l2.13-1.43l-4.26-13.23l-4.61-3.22l0.71-17.87l-4.26-3.22l-1.06-10.01h-2.13l-7.1,23.59l-3.9,0.36l-8.87-8.94l4.97-13.23l-9.22-1.79l-10.29,2.86l-2.84,8.22l-4.61,1.07l-0.35-5.72l-18.8,11.44l0.35,4.29l-2.84,3.93h-7.1l-15.26,6.43L761.17,427.98L761.17,427.98M825.74,496.26l-1.77,7.15l0.35,5l5.32-0.36l6.03-9.29L825.74,496.26L825.74,496.26z\",\"name\":\"Australia\"},\"nz\":{\"path\":\"M913.02,481.96l1.06,11.8l-1.42,5.36l-5.32,3.93l0.35,4.65v5l1.42,1.79l14.55-12.51v-2.86h-3.55l-4.97-16.8L913.02,481.96L913.02,481.96M902.38,507.7l2.84,5.36l-7.81,7.51l-0.71,3.93l-5.32,0.71l-8.87,8.22l-8.16-3.93l-0.71-2.86l14.9-6.43L902.38,507.7L902.38,507.7z\",\"name\":\"New Zealand\"},\"nc\":{\"path\":\"M906.64,420.47l-0.35,1.79l4.61,6.43l2.48,1.07l0.35-2.5L906.64,420.47L906.64,420.47z\",\"name\":\"New Caledonia\"},\"my\":{\"path\":\"M764.14,332.92l3.02,3.49l11.58-4.01l2.29-8.84l5.16-0.37l4.72-3.42l-6.12-4.46l-1.4-2.45l-3.02,5.57l1.11,3.2l-1.84,2.67l-3.47-0.89l-8.41,6.17l0.22,3.57L764.14,332.92L764.14,332.92M732.71,315.45l2.01,4.51l0.45,5.86l2.69,4.17l6.49,3.94l2.46,0.23l-0.45-4.06l-2.13-5.18l-3.12-6.63l-0.26,1.16l-3.76-0.17l-2.7-3.88L732.71,315.45L732.71,315.45z\",\"name\":\"Malaysia\"},\"bn\":{\"path\":\"M779.77,319.25l-2.88,3.49l2.36,0.74l1.33-1.86L779.77,319.25L779.77,319.25z\",\"name\":\"Brunei Darussalam\"},\"tl\":{\"path\":\"M806.14,368.42l-5.11,4.26l0.49,1.09l2.16-0.4l2.55-2.38l5.01-0.69l-0.98-1.68L806.14,368.42L806.14,368.42z\",\"name\":\"Timor-Leste\"},\"sb\":{\"path\":\"M895.43,364.65l0.15,2.28l1.39,1.32l1.31-0.81l-1.17-2.43L895.43,364.65L895.43,364.65M897.18,370.31l-1.17,1.25l1.24,2.28l1.46,0.44l-0.07-1.54L897.18,370.31L897.18,370.31M900.03,368.99l1.02,2.5l1.97,2.35l1.09-1.76l-1.46-2.5L900.03,368.99L900.03,368.99M905.14,372.74l0.58,3.09l1.39,1.91l1.17-2.42L905.14,372.74L905.14,372.74M906.74,379.65l-0.51,0.88l1.68,2.21l1.17,0.07l-0.73-2.87L906.74,379.65L906.74,379.65M903.02,384.05l-1.75,0.81l1.53,2.13l1.31-0.74L903.02,384.05L903.02,384.05z\",\"name\":\"Solomon Islands\"},\"vu\":{\"path\":\"M920.87,397.22l-1.24,1.66l0.52,1.87l0.62,0.42l1.13-1.46L920.87,397.22L920.87,397.22M921.49,402.31l0.1,1.35l1.34,0.42l0.93-0.52l-0.93-1.46L921.49,402.31L921.49,402.31M923.45,414.37l-0.62,0.94l0.93,1.04l1.55-0.52L923.45,414.37L923.45,414.37z\",\"name\":\"Vanuatu\"},\"fj\":{\"path\":\"M948.62,412.29l-1.24,1.66l-0.1,1.87l1.44,1.46L948.62,412.29L948.62,412.29z\",\"name\":\"Fiji\"},\"ph\":{\"path\":\"M789.37,297.53l-0.86,1.64l-0.48,2.02l-4.78,6.07l0.29,1.25l2.01-0.29l6.21-6.94L789.37,297.53L789.37,297.53M797.11,295.22l-0.1,5.01l1.82,1.83l0.67,3.56l1.82,0.39l0.86-2.22l-1.43-1.06l-0.38-6.26L797.11,295.22L797.11,295.22M802.28,297.15l-0.1,4.43l1.05,1.73l1.82-2.12l-0.48-3.85L802.28,297.15L802.28,297.15M803.42,293.29l1.82,2.41l0.86,2.31h1.63l-0.29-3.95l-1.82-1.25L803.42,293.29L803.42,293.29M806.96,302.35l0.38,2.89l-3.35,2.7l-2.77,0.29l-2.96,3.18l0.1,1.45l2.77-0.87l1.91-1.25l1.63,4.14l2.87,2.02l1.15-0.39l1.05-1.25l-2.29-2.31l1.34-1.06l1.53,1.25l1.05-1.73l-1.05-2.12l-0.19-4.72L806.96,302.35L806.96,302.35M791.38,272.97l-2.58,1.83l-0.29,5.78l4.02,7.8l1.34,1.06l1.72-1.16l2.96,0.48l0.57,2.6l2.2,0.19l1.05-1.44l-1.34-1.83l-1.63-1.54l-3.44-0.38l-1.82-2.99l2.1-3.18l0.19-2.79l-1.43-3.56L791.38,272.97L791.38,272.97M792.72,290.21l0.76,2.7l1.34,0.87l0.96-1.25l-1.53-2.12L792.72,290.21L792.72,290.21z\",\"name\":\"Philippines\"},\"cn\":{\"path\":\"M759.83,270.17l-2.39,0.67l-1.72,2.12l1.43,2.79l2.1,0.19l2.39-2.12l0.57-2.79L759.83,270.17L759.83,270.17M670.4,170.07l-3.46,8.7l-4.77-0.25l-5.03,11.01l4.27,5.44l-8.8,12.15l-4.52-0.76l-3.02,3.8l0.75,2.28l3.52,0.25l1.76,4.05l3.52,0.76l10.81,13.93v7.09l5.28,3.29l5.78-1.01l7.29,4.3l8.8,2.53l4.27-0.51l4.78-0.51l10.05-6.58l3.27,0.51l1.25,2.97l2.77,0.83l3.77,5.57l-2.51,5.57l1.51,3.8l4.27,1.52l0.75,4.56l5.03,0.51l0.75-2.28l7.29-3.8l4.52,0.25l5.28,5.82l3.52-1.52l2.26,0.25l1.01,2.79l1.76,0.25l2.51-3.54l10.05-3.8l9.05-10.89l3.02-10.38l-0.25-6.84l-3.77-0.76l2.26-2.53l-0.5-4.05l-9.55-9.62v-4.81l2.76-3.54l2.76-1.27l0.25-2.79h-7.04l-1.26,3.8l-3.27-0.76l-4.02-4.3l2.51-6.58l3.52-3.8l3.27,0.25l-0.5,5.82l1.76,1.52l4.27-4.3l1.51-0.25l-0.5-3.29l4.02-4.81l3.02,0.25l1.76-5.57l2.06-1.09l0.21-3.47l-2-2.1l-0.17-5.48l3.85-0.25l-0.25-14.13l-2.7,1.62l-1.01,3.62l-4.51-0.01l-13.07-7.35l-9.44-11.38l-9.58-0.1l-2.44,2.12l3.1,7.1l-1.08,6.66l-3.86,1.6l-2.17-0.17l-0.16,6.59l2.26,0.51l4.02-1.77l5.28,2.53v2.53l-3.77,0.25l-3.02,6.58l-2.76,0.25l-9.8,12.91l-10.3,4.56l-7.04,0.51l-4.77-3.29l-6.79,3.55l-7.29-2.28l-1.76-4.81l-12.31-0.76l-6.53-10.63h-2.76l-2.22-4.93L670.4,170.07z\",\"name\":\"China\"},\"tw\":{\"path\":\"M787.46,248.31l-3.54,2.7l-0.19,5.2l3.06,3.56l0.76-0.67L787.46,248.31L787.46,248.31z\",\"name\":\"Taiwan\"},\"jp\":{\"path\":\"M803.23,216.42l-1.63,1.64l0.67,2.31l1.43,0.1l0.96,5.01l1.15,1.25l2.01-1.83l0.86-3.28l-2.49-3.56L803.23,216.42L803.23,216.42M812.03,213.15l-2.77,2.6l-0.1,2.99l0.67,0.87l3.73-3.18l-0.29-3.18L812.03,213.15L812.03,213.15M808.2,206.98l-4.88,5.59l0.86,1.35l2.39,0.29l4.49-3.47l3.16-0.58l2.87,3.37l2.2-0.77l0.86-3.28l4.11-0.1l4.02-4.82l-2.1-8l-0.96-4.24l2.1-1.73l-4.78-7.22l-1.24,0.1l-2.58,2.89v2.41l1.15,1.35l0.38,6.36l-2.96,3.66l-1.72-1.06l-1.34,2.99l-0.29,2.79l1.05,1.64l-0.67,1.25l-2.2-1.83h-1.53l-1.34,0.77L808.2,206.98L808.2,206.98M816.43,163.44l-1.53,1.35l0.77,2.89l1.34,1.35l-0.1,4.43l-1.72,0.67l-1.34,2.99l3.92,5.39l2.58-0.87l0.48-1.35l-2.77-2.5l1.72-2.22l1.82,0.29l1.43,1.54l0.1-3.18l3.92-3.18l2.2-0.58l-1.82-3.08l-0.86-1.35l-1.43,0.96l-1.24,1.54l-2.68-0.58l-2.77-1.83L816.43,163.44L816.43,163.44z\",\"name\":\"Japan\"},\"ru\":{\"path\":\"M506.61,151.72l-1.5-0.15l-2.7,3.23v1.51l0.9,0.35l1.75,0.05l2.9-2.37l0.4-0.81L506.61,151.72L506.61,151.72M830.86,160.45l-2.68,3.76l0.19,1.83l1.34-0.58l3.15-3.95L830.86,160.45L830.86,160.45M834.4,154.96l-0.96,2.6l0.1,1.73l1.63-1.06l1.53-3.08V154L834.4,154.96L834.4,154.96M840.04,132.03l-1.24,1.54l0.1,2.41l1.15-0.1l1.91-3.37L840.04,132.03L840.04,132.03M837.75,137.91v4.24l1.34,0.48l0.96-1.54v-3.27L837.75,137.91L837.75,137.91M798.64,122.59l-0.09,6.17l7.74,11.95l2.77,10.4l4.88,9.25l1.91,0.67l1.63-1.35l0.76-2.22l-6.98-7.61l0.19-3.95l1.53-0.67l0.38-2.31l-13.67-19.36L798.64,122.59L798.64,122.59M852.57,103.42l-1.91,0.19l1.15,1.64l2.39,1.64l0.67-0.77L852.57,103.42L852.57,103.42M856.29,104.58l0.29,1.64l2.96,0.87l0.29-1.16L856.29,104.58L856.29,104.58M547.82,38.79l1.72,0.69l-1.21,2.08v2.95l-2.58,1.56H543l-1.55-1.91l0.17-2.08l1.21-1.56h2.41L547.82,38.79L547.82,38.79M554.36,36.88v2.08l1.72,1.39l2.41-0.17l2.07-1.91v-1.39h-1.89l-1.55,0.52l-1.21-1.39L554.36,36.88L554.36,36.88M564.18,37.06l1.21,2.6l2.41,0.17l1.72-0.69l-0.86-2.43l-2.24-0.52L564.18,37.06L564.18,37.06M573.99,33.59l-1.89-0.35l-1.72,1.74l0.86,1.56l0.52,2.43l2.24-1.73l0.52-1.91L573.99,33.59L573.99,33.59M584.49,51.98l-0.52,2.43l-3.96,3.47l-8.44,1.91l-6.89,11.45l-1.21,3.3l6.89,1.74l1.03-4.16l2.07-6.42l5.34-2.78l4.48-3.47l3.27-1.39h1.72v-4.68L584.49,51.98L584.49,51.98M562.28,77.31l4.65,0.52l1.55,5.38l3.96,4.16l-1.38,2.78h-2.41l-2.24-2.6l-4.99-0.17l-2.07-2.78v-1.91l3.1-0.87L562.28,77.31L562.28,77.31M634.95,18.15l-2.24-1.39h-2.58l-0.52,1.56l-2.75,1.56l-2.07,0.69l-0.34,2.08l4.82,0.35L634.95,18.15L634.95,18.15M640.28,18.67l-1.21,2.6l-2.41-0.17l-3.79,2.78l-1.03,3.47h2.41l1.38-2.26l3.27,2.43l3.1-1.39l2.24-1.91l-0.86-2.95l-1.21-2.08L640.28,18.67L640.28,18.67M645.28,20.58l1.21,4.86l1.89,4.51l2.07-3.64l3.96-0.87v-2.6l-2.58-1.91L645.28,20.58L645.28,20.58M739.76,12.8l2.69,2.26l1.91-0.79l0.56-3.17L741,8.39l-2.58,1.7l-6.28,0.57v2.83l-6.62,0.11v4.63l7.74,5.76l2.02-1.47l-0.45-4.07l4.94-1.24l-1.01-1.92l-1.79-1.81L739.76,12.8L739.76,12.8M746.94,10.09l1.79,3.39l6.96-0.79l1.91-2.49l-0.45-2.15l-1.91-0.79l-1.79,1.36l-5.16,1.13L746.94,10.09L746.94,10.09M746.49,23.31l-3.48-0.9L741,24.56l-0.9,2.94l4.71-0.45l3.59-1.81L746.49,23.31L746.49,23.31M836.68,3.76l-2.92-0.9L830.4,4.1l-1.68,2.49l2.13,2.83l5.61-2.49l1.12-1.24L836.68,3.76L836.68,3.76M817.97,72.93l1.76,6.08l3.52,1.01l3.52-5.57l-2.01-3.8l0.75-3.29h5.28l-1.26,2.53l0.5,9.12l-7.54,18.74l0.75,4.05l-0.25,6.84l14.07,20.51l2.76,0.76l0.25-16.71l2.76-2.53l-3.02-6.58l2.51-2.79l-5.53-7.34l-3.02,0.25l-1-12.15l7.79-2.03l0.5-3.55l4.02-1.01l2.26,2.03l2.76-11.14l4.77-8.1l3.77-2.03l3.27,0.25v-3.8l-5.28-1.01l-7.29-6.08l3.52-4.05l-3.02-6.84l2.51-2.53l3.02,4.05l7.54,2.79l8.29,0.76l1.01-3.54l-4.27-4.3l4.77-6.58l-10.81-3.8l-2.76,5.57l-3.52-4.56l-19.85-6.84l-18.85,3.29l-2.76,1.52v1.52l4.02,2.03l-0.5,4.81l-7.29-3.04l-16.08,6.33l-2.76-5.82h-11.06l-5.03,5.32l-17.84-4.05l-16.33,3.29l-2.01,5.06l2.51,0.76l-0.25,3.8l-15.83,1.77l1.01,5.06l-14.58-2.53l3.52-6.58l-14.83-0.76l1.26,6.84l-4.77,2.28l-4.02-3.8l-16.33,2.79l-6.28,5.82l-0.25,3.54l-4.02,0.25l-0.5-4.05l12.82-11.14v-7.6l-8.29-2.28l-10.81,3.54l-4.52-4.56h-2.01l-2.51,5.06l2.01,2.28l-14.33,7.85l-12.31,9.37l-7.54,10.38v4.3l8.04,3.29l-4.02,3.04l-8.54-3.04l-3.52,3.04l-5.28-6.08l-1.01,2.28l5.78,18.23l1.51,0.51l4.02-2.03l2.01,1.52v3.29l-3.77-1.52l-2.26,1.77l1.51,3.29l-1.26,8.61l-7.79,0.76l-0.5-2.79l4.52-2.79l1.01-7.6l-5.03-6.58l-1.76-11.39l-8.04-1.27l-0.75,4.05l1.51,2.03l-3.27,2.79l1.26,7.6l4.77,2.03l1.01,5.57l-4.78-3.04l-12.31-2.28l-1.51,4.05l-9.8,3.54l-1.51-2.53l-12.82,7.09l-0.25,4.81l-5.03,0.76l1.51-3.54v-3.54l-5.03-1.77l-3.27,1.27l2.76,5.32l2.01,3.54v2.79l-3.77-0.76l-0.75-0.76l-3.77,4.05l2.01,3.54l-8.54-0.25l2.76,3.55l-0.75,1.52h-4.52l-3.27-2.28l-0.75-6.33l-5.28-2.03v-2.53l11.06,2.28l6.03,0.51l2.51-3.8l-2.26-4.05l-16.08-6.33l-5.55,1.38l-1.9,1.63l0.59,3.75l2.36,0.41l-0.55,5.9l7.28,17.1l-5.26,8.34l-0.36,1.88l2.67,1.88l-2.41,1.59l-1.6,0.03l0.3,7.35l2.21,3.13l0.03,3.04l2.83,0.26l4.33,1.65l4.58,6.3l0.05,1.66l-1.49,2.55l3.42-0.19l3.33,0.96l4.5,6.37l11.08,1.01l-0.48,7.58l-3.82,3.27l0.79,1.28l-3.77,4.05l-1,3.8l2.26,3.29l7.29,2.53l3.02-1.77l19.35,7.34l0.75-2.03l-4.02-3.8v-4.81l-2.51-0.76l0.5-4.05l4.02-4.81l-7.21-5.4l0.5-7.51l7.71-5.07l9.05,0.51l1.51,2.79l9.3,0.51l6.79-3.8l-3.52-3.8l0.75-7.09l17.59-8.61l13.53,6.1l4.52-4.05l13.32,12.66l10.05-1.01l3.52,3.54l9.55,1.01l6.28-8.61l8.04,3.55l4.27,0.76l4.27-3.8l-3.77-2.53l3.27-5.06l9.3,3.04l2.01,4.05l4.02,0.25l2.51-1.77l6.79-0.25l0.75,1.77l7.79,0.51l5.28-5.57l10.81,1.27l3.27-1.27l1-6.08l-3.27-7.34l3.27-2.79h10.3l9.8,11.65l12.56,7.09h3.77l0.5-3.04l4.52-2.79l0.5,16.46l-4.02,0.25v4.05l2.26,2.79l-0.42,3.62l1.67,0.69l1.01-2.53l1.51,0.51l1,1.01l4.52-1.01l4.52-13.17l0.5-16.46l-5.78-13.17l-7.29-8.86l-3.52,0.51v2.79l-8.54-3.29l3.27-7.09l2.76-18.74l11.56-3.54l5.53-3.54h6.03L805.86,96l1.51,2.53l5.28-5.57l3.02,0.25l-0.5-3.29l-4.78-1.01l3.27-11.9L817.97,72.93L817.97,72.93z\",\"name\":\"Russian Federation\"},\"us\":{\"path\":\"M69.17,53.35l3.46,6.47l2.22-0.5v-2.24L69.17,53.35L69.17,53.35M49.66,110.26l-0.17,3.01l2.16-0.5v-1.34L49.66,110.26L49.66,110.26M46.34,111.6l-4.32,2.18l0.67,2.34l1.66-1.34l3.32-1.51L46.34,111.6L46.34,111.6M28.39,114.44l-2.99-0.67l-0.5,1.34l0.33,2.51L28.39,114.44L28.39,114.44M22.07,114.28l-2.83-1.17l-1,1.84l1.83,1.84L22.07,114.28L22.07,114.28M12.27,111.6l-1.33-1.84l-1.33,0.5v2.51l1.5,1L12.27,111.6L12.27,111.6M1.47,99.71l1.66,1.17l-0.5,1.34H1.47V99.71L1.47,99.71M10,248.7l-0.14,2.33l2.04,1.37l1.22-1.09L10,248.7L10,248.7M15.29,252.13l-1.9,1.37l1.63,2.05l1.9-1.64L15.29,252.13L15.29,252.13M19.1,255.41l-1.63,2.19l0.54,1.37l2.31-1.09L19.1,255.41L19.1,255.41M21.81,259.65l-0.95,5.47l0.95,2.05l3.12-0.96l1.63-2.74l-3.4-3.15L21.81,259.65L21.81,259.65M271.05,281.06l-2.64-0.89l-2.12,1.33l1.06,1.24l3.61,0.53L271.05,281.06L271.05,281.06M93.11,44.89l-8.39,1.99l1.73,9.45l9.13,2.49l0.49,1.99L82.5,65.04l-7.65,12.68l2.71,13.43L82,94.13l3.46-3.23l0.99,1.99l-4.2,4.97l-16.29,7.46l-10.37,2.49l-0.25,3.73l23.94-6.96l9.87-2.74l9.13-11.19l10.12-6.71l-5.18,8.7l5.68,0.75l9.63-4.23l1.73,6.96l6.66,1.49l6.91,6.71l0.49,4.97l-0.99,1.24l1.23,4.72h1.73l0.25-7.96h1.97l0.49,19.64l4.94-4.23l-3.46-20.39h-5.18l-5.68-7.21l27.89-47.25l-27.64-21.63l-30.85,5.97l-1.23,9.45l6.66,3.98l-2.47,6.47L93.11,44.89L93.11,44.89M148.76,158.34l-1,4.02l-3.49-2.26h-1.74l-1,4.27l-12.21,27.36l3.24,23.84l3.99,2.01l0.75,6.53h8.22l7.97,6.02l15.69,1.51l1.74,8.03l2.49,1.76l3.49-3.51l2.74,1.25l2.49,11.54l4.23,2.76l3.49-6.53l10.71-7.78l6.97,3.26l5.98,0.5l0.25-3.76l12.45,0.25l2.49,2.76l0.5,6.27l-1.49,3.51l1.74,6.02h3.74l3.74-5.77l-1.49-2.76l-1.49-6.02l2.24-6.78l10.21-8.78l7.72-2.26l-1-7.28l10.71-11.55l10.71-1.76L272.8,199l10.46-6.02v-8.03l-1-0.5l-3.74,1.25l-0.5,4.92l-12.43,0.15l-9.74,6.47l-15.29,5l-2.44-2.99l6.94-10.5l-3.43-3.27l-2.33-4.44l-4.83-3.88l-5.25-0.44l-9.92-6.77L148.76,158.34L148.76,158.34z\",\"name\":\"United States of America\"},\"mu\":{\"path\":\"M613.01,398.99l-1.52,1.99l0.3,2.15l3.2-2.61L613.01,398.99L613.01,398.99z\",\"name\":\"Mauritius\"},\"re\":{\"path\":\"M607.38,402.37l-2.28,0.15l-0.15,1.99l1.52,0.31l2.28-1.07L607.38,402.37L607.38,402.37z\",\"name\":\"Reunion\"},\"mg\":{\"path\":\"M592.3,372.92l-2.13,5.06l-3.65,6.44l-6.39,0.46l-2.74,3.22l0.46,9.82l-3.96,4.6l0.46,7.82l3.35,3.83l3.96-0.46l3.96-2.92l-0.91-4.6l9.13-15.8l-1.83-1.99l1.83-3.83l1.98,0.61l0.61-1.53l-1.83-7.82l-1.07-3.22L592.3,372.92L592.3,372.92z\",\"name\":\"Madagascar\"},\"km\":{\"path\":\"M577.69,371.23l0.46,1.53l1.98,0.31l0.76-1.99L577.69,371.23L577.69,371.23M580.58,374.3l0.76,1.69h1.22l0.61-2.15L580.58,374.3L580.58,374.3z\",\"name\":\"Comoros\"},\"sc\":{\"path\":\"M602.35,358.34l-0.61,1.23l1.67,1.38l1.22-1.38L602.35,358.34L602.35,358.34M610.88,349.14l-1.83,1.23l1.37,2.15h1.83L610.88,349.14L610.88,349.14M611.64,354.51l-1.22,1.38l0.91,1.38l1.67,0.31l0.15-2.92L611.64,354.51L611.64,354.51z\",\"name\":\"Seychelles\"},\"mv\":{\"path\":\"M656.4,320.76l0.3,2.61l1.67,0.61l0.3-2.3L656.4,320.76L656.4,320.76M658.53,326.28l-0.15,3.22l1.22,0.61l1.07-2.15L658.53,326.28L658.53,326.28M658.84,332.57l-1.07,1.07l1.22,1.07l1.52-1.07L658.84,332.57L658.84,332.57z\",\"name\":\"Maldives\"},\"pt\":{\"path\":\"M372.64,217.02l-1.36,1.37l2.44,1.37l0.27-1.91L372.64,217.02L372.64,217.02M379.97,216.2l-1.63,1.09l1.36,1.09l2.17-0.55L379.97,216.2L379.97,216.2M381.05,220.03l-0.81,2.19l1.08,1.37l1.36-1.09L381.05,220.03L381.05,220.03M387.56,224.4l-0.54,1.37l0.81,0.82l2.17-1.37L387.56,224.4L387.56,224.4M408.18,236.42l-1.08,1.37l1.08,1.37l1.63-0.82L408.18,236.42L408.18,236.42M430.93,211.24l-0.62,8.65l-1.77,1.6l0.18,0.98l1.24,2.05l-0.8,2.5l1.33,0.45l3.1-0.36l-0.18-2.5l2.03-11.59l-0.44-1.6L430.93,211.24L430.93,211.24z\",\"name\":\"Portugal\"},\"es\":{\"path\":\"M415.62,253.73l-1.75,1.01l0.81,0.82L415.62,253.73L415.62,253.73M409.54,253.92l-2.17,0.55l1.08,1.64h1.63L409.54,253.92L409.54,253.92M404.38,252.28l-1.36,1.37l1.9,1.64l1.08-2.46L404.38,252.28L404.38,252.28M448.36,205h-12.74l-2.57-1.16l-1.24,0.09l-1.5,3.12l0.53,3.21l4.87,0.45l0.62,2.05l-2.12,11.95l0.09,2.14l3.45,1.87l3.98,0.27l7.96-1.96l3.89-4.9l0.09-4.99l6.9-6.24l0.35-2.76l-6.28-0.09L448.36,205L448.36,205M461.1,217.21l-1.59,0.54l0.35,1.43h2.3l0.97-1.07L461.1,217.21L461.1,217.21z\",\"name\":\"Spain\"},\"cv\":{\"path\":\"M387.56,290.54l-1.9,1.09l1.36,1.09l1.63-0.82L387.56,290.54L387.56,290.54M392.23,292.74l-1.24,1.1l0.88,1.63l2.12-0.95L392.23,292.74L392.23,292.74M389.52,295.83l-1.59,0.95l1.71,2.29l1.35-0.71L389.52,295.83L389.52,295.83z\",\"name\":\"Cape Verde\"},\"pf\":{\"path\":\"M27.25,402.68l-1.9-0.14l-0.14,1.78l1.49,0.96l1.77-1.09L27.25,402.68L27.25,402.68M33.77,404.6l-2.72,1.78l2.04,2.46l1.77-0.41l0.95-1.23L33.77,404.6L33.77,404.6z\",\"name\":\"French Polynesia\"},\"kn\":{\"path\":\"M276.6,283.37l-1.5,0.62l0.53,1.33l1.76-1.15l-0.35-0.36L276.6,283.37L276.6,283.37z\",\"name\":\"Saint Kitts and Nevis\"},\"ag\":{\"path\":\"M279.07,284.88l-0.88,1.87l1.06,1.42l1.32-1.15L279.07,284.88L279.07,284.88z\",\"name\":\"Antigua and Barbuda\"},\"dm\":{\"path\":\"M282.07,290.03l-1.06,0.98l0.79,1.6l1.5-0.44L282.07,290.03L282.07,290.03z\",\"name\":\"Dominica\"},\"lc\":{\"path\":\"M281.98,294.03l-0.71,1.51l1.15,1.24l1.5-0.8L281.98,294.03L281.98,294.03z\",\"name\":\"Saint Lucia\"},\"bb\":{\"path\":\"M282.07,297.85l-1.23,0.89l0.97,1.78l1.59-0.89L282.07,297.85L282.07,297.85z\",\"name\":\"Barbados\"},\"gd\":{\"path\":\"M280.57,301.31l-1.15,1.15l0.44,0.71h1.41l0.44-1.16L280.57,301.31L280.57,301.31z\",\"name\":\"Grenada\"},\"tt\":{\"path\":\"M282.24,304.78l-1.06,0.98l-1.15,0.18v1.42l2.12,1.95l0.88-1.42l0.53-1.6l-0.18-1.33L282.24,304.78L282.24,304.78z\",\"name\":\"Trinidad and Tobago\"},\"do\":{\"path\":\"M263.11,280.44l-5.29-3.46l-2.5-0.85l-0.84,6l0.88,1.69l1.15-1.33l3.35-0.89l2.91,0.62L263.11,280.44L263.11,280.44z\",\"name\":\"Dominican Republic\"},\"ht\":{\"path\":\"M250.86,275.38l3.44,0.36l-0.41,4.22l-0.34,2.22l-4.01-0.22l-0.71,1.07l-1.23-0.09l-0.44-2.31l4.23-0.35l-0.26-2.4l-1.94-0.8L250.86,275.38L250.86,275.38z\",\"name\":\"Haiti\"},\"fk\":{\"path\":\"M307.95,508.18l-2.63-0.29l-2.62,1.76l1.9,2.06L307.95,508.18L307.95,508.18M310.57,506.86l-0.87,2.79l-2.48,2.2l0.15,0.73l4.23-1.62l1.75-2.2L310.57,506.86L310.57,506.86z\",\"name\":\"Falkland Islands\"},\"is\":{\"path\":\"M406.36,117.31l-1.96-1.11l-2.64,1.67l-2.27,2.1l0.06,1.17l2.94,0.37l-0.18,2.1l-1.04,1.05l0.25,0.68l2.94,0.19v3.4l4.23,0.74l2.51,1.42l2.82,0.12l4.84-2.41l3.74-4.94l0.06-3.34l-2.27-1.92l-1.9-1.61l-0.86,0.62l-1.29,1.67l-1.47-0.19l-1.47-1.61l-1.9,0.18l-2.76,2.29l-1.66,1.79l-0.92-0.8l-0.06-1.98l0.92-0.62L406.36,117.31L406.36,117.31z\",\"name\":\"Iceland\"},\"no\":{\"path\":\"M488.26,53.96l-1.65-1.66l-3.66,1.78h-6.72L475.17,58l3.77,3.33l1.65-0.24l2.36-4.04l2,1.43l-1.42,2.85l-0.71,4.16l1.65,2.61l3.54-5.94l4.6-5.59l-1.77-1.54L488.26,53.96L488.26,53.96M490.26,46.83l-2.95,2.73l1.77,2.73h3.18l1.3,1.78l3.89,2.02l4.48-2.61l3.07-2.61l-1.06-2.14l-3.07-1.78l-2.24,2.02l-1.53-1.9l-1.18,0.12l-1.53,3.33l-2.24-2.26l-0.24-1.54L490.26,46.83L490.26,46.83M496.98,59.07l-2.36,2.14l-2,1.54l0.94,1.66l1.89,0.59l3.07-1.43l1.42-1.78l-1.3-2.14L496.98,59.07L496.98,59.07M515.46,102.14l2.02-1.48L517.3,99l-1.28-0.74l0.18-2.03h1.1v-1.11l-4.77-1.29l-7.15,0.74l-0.73,3.14L503,97.16l-1.1-1.85l-3.49,0.18L498.04,99l-1.65,0.74l-0.92-1.85l-7.34,5.91l1.47,1.66l-2.75,1.29l-6.24,12.38l-2.2,1.48l0.18,1.11l2.2,1.11l-0.55,2.4l-3.67-0.19l-1.1-1.29l-2.38,2.77l-1.47,1.11l-0.37,2.59l-1.28,0.74l-3.3,0.74l-1.65,5.18l1.1,8.5l1.28,3.88l1.47,1.48l3.3-0.18l4.77-4.62l1.83-3.14l0.55,4.62l3.12-5.54l0.18-15.53l2.54-1.6l0.76-8.57l7.7-11.09l3.67-1.29l1.65-2.03l5.5,1.29l2.75,1.66l0.92-4.62l4.59-2.77L515.46,102.14L515.46,102.14z\",\"name\":\"Norway\"},\"lk\":{\"path\":\"M680.54,308.05l0.25,2.72l0.25,1.98l-1.47,0.25l0.74,4.45l2.21,1.24l3.43-1.98l-0.98-4.69l0.25-1.73l-3.19-2.96L680.54,308.05L680.54,308.05z\",\"name\":\"Sri Lanka\"},\"cu\":{\"path\":\"M220.85,266.92v1.27l5.32,0.1l2.51-1.46l0.39,1.07l5.22,1.27l4.64,4.19l-1.06,1.46l0.19,1.66l3.87,0.97l3.87-1.75l1.74-1.75l-2.51-1.27l-12.95-7.6l-4.54-0.49L220.85,266.92L220.85,266.92z\",\"name\":\"Cuba\"},\"bs\":{\"path\":\"M239.61,259.13l-1.26-0.39l-0.1,2.43l1.55,1.56l1.06-1.56L239.61,259.13L239.61,259.13M242.12,262.93l-1.74,0.97l1.64,2.34l0.87-1.17L242.12,262.93L242.12,262.93M247.73,264.68l-1.84-0.1l0.19,1.17l1.35,1.95l1.16-1.27L247.73,264.68L247.73,264.68M246.86,262.35l-3-1.27l-0.58-3.02l1.16-0.49l1.16,2.34l1.16,0.88L246.86,262.35L246.86,262.35M243.96,256.21l-1.55-0.39l-0.29-1.95l-1.64-0.58l1.06-1.07l1.93,0.68l1.45,0.88L243.96,256.21L243.96,256.21z\",\"name\":\"Bahamas\"},\"jm\":{\"path\":\"M238.93,279.59l-3.48,0.88v0.97l2.03,1.17h2.13l1.35-1.56L238.93,279.59L238.93,279.59z\",\"name\":\"Jamaica\"},\"ec\":{\"path\":\"M230.2,335.85l-4.73,2.94l-0.34,4.36l-0.95,1.43l2.98,2.86l-1.29,1.41l0.3,3.6l5.33,1.27l8.07-9.55l-0.02-3.33l-3.87-0.25L230.2,335.85L230.2,335.85z\",\"name\":\"Ecuador\"},\"ca\":{\"path\":\"M203.73,35.89l0.22,4.02l-7.98,8.27l2,6.7l5.76-1.56l3.33-4.92l8.42-3.13l6.87-0.45l-5.32-5.81l-2.66,2.01l-2-0.67l-1.11-2.46l-2.44-2.46L203.73,35.89L203.73,35.89M214.15,24.05l-1.77,3.13l8.65,3.13l3.1-4.69l1.33,3.13h2.22l4.21-4.69l-5.1-1.34l-2-1.56l-2.66,2.68L214.15,24.05L214.15,24.05M229.23,30.31l-6.87,2.9v2.23l8.87,3.35l-2,2.23l1.33,2.9l5.54-2.46h4.66l2.22,3.57l3.77-3.8l-0.89-3.58l-3.1,1.12l-0.44-4.47l1.55-2.68h-1.55l-2.44,1.56l-1.11,0.89l0.67,3.13l-1.77,1.34l-2.66-0.22l-0.67-4.02L229.23,30.31L229.23,30.31M238.32,23.38l-0.67,2.23l4.21,2.01l3.1-1.79l-0.22-1.34L238.32,23.38L238.32,23.38M241.64,19.58l-3.1,1.12l0.22,1.56l6.87-0.45l-0.22-1.56L241.64,19.58L241.64,19.58M256.5,23.38l-0.44,1.56l-1.11,1.56v2.23l4.21-0.67l4.43,3.8h1.55v-3.8l-4.43-4.92L256.5,23.38L256.5,23.38M267.81,27.85l1.77,2.01l-1.55,2.68l1.11,2.9l4.88-2.68v-2.01l-2.88-3.35L267.81,27.85L267.81,27.85M274.24,22.71l0.22,3.57h5.99l1.55,1.34l-0.22,1.56l-5.32,0.67l3.77,5.14l5.1,0.89l7.09-3.13l-10.2-15.42l-3.1,2.01l0.22,2.68l-3.55-1.34L274.24,22.71L274.24,22.71M222.58,47.96l-8.42,2.23l-4.88,4.25l0.44,4.69l8.87,2.68l-2,4.47l-6.43-4.02l-1.77,3.35l4.21,2.9l-0.22,4.69l6.43,1.79l7.76-0.45l1.33-2.46l5.76,6.48l3.99-1.34l0.67-4.47l2.88,2.01l0.44-4.47l-3.55-2.23l0.22-14.07l-3.1-2.46L231.89,56L222.58,47.96L222.58,47.96M249.63,57.79l-2.88-1.34l-1.55,2.01l3.1,4.92l0.22,4.69l6.65-4.02v-5.81l2.44-2.46l-2.44-1.79h-3.99L249.63,57.79L249.63,57.79M263.82,55.78l-4.66,3.8l1.11,4.69h2.88l1.33-2.46l2,2.01l2-0.22l5.32-4.47L263.82,55.78L263.82,55.78M263.37,48.4l-1.11,2.23l4.88,1.79l1.33-2.01L263.37,48.4L263.37,48.4M260.49,39.91l-4.88,0.67l-2.88,2.68l5.32,0.22l-1.55,4.02l1.11,1.79l1.55-0.22l3.77-6.03L260.49,39.91L260.49,39.91M268.92,38.35l-2.66,0.89l0.44,3.57l4.43,2.9l0.22,2.23l-1.33,1.34l0.67,4.47l17.07,5.58l4.66,1.56l4.66-4.02l-5.54-4.47l-5.1,1.34l-7.09-0.67l-2.66-2.68l-0.67-7.37l-4.43-2.23L268.92,38.35L268.92,38.35M282.88,61.59L278,61.14l-5.76,2.23l-3.1,4.24l0.89,11.62l9.53,0.45l9.09,4.47l6.43,7.37l4.88-0.22l-1.33,6.92l-4.43,7.37l-4.88,2.23l-3.55-0.67l-1.77-1.56l-2.66,3.57l1.11,3.57l3.77,0.22l4.66-2.23l3.99,10.28l9.98,6.48l6.87-8.71l-5.76-9.38l3.33-3.8l4.66,7.82l8.42-7.37l-1.55-3.35l-5.76,1.79l-3.99-10.95l3.77-6.25l-7.54-8.04l-4.21,2.9l-3.99-8.71l-8.42,1.12l-2.22-10.5l-6.87,4.69l-0.67,5.81h-3.77l0.44-5.14L282.88,61.59L282.88,61.59M292.86,65.61l-1.77,1.79l1.55,2.46l7.32,0.89l-4.66-4.92L292.86,65.61L292.86,65.61M285.77,40.36v2.01l-4.88,1.12l1.33,2.23l5.54,2.23l6.21,0.67l4.43,3.13l4.43-2.46l-3.1-3.13h3.99l2.44-2.68l5.99-0.89v-1.34l-3.33-2.23l0.44-2.46l9.31,1.56l13.75-5.36l-5.1-1.56l1.33-1.79h10.64l1.77-1.79l-21.51-7.6l-5.1-1.79l-5.54,4.02l-6.21-5.14l-3.33-0.22l-0.67,4.25l-4.21-3.8l-4.88,1.56l0.89,2.46l7.32,1.56l-0.44,3.57l3.99,2.46l9.76-2.46l0.22,3.35l-7.98,3.8l-4.88-3.8l-4.43,0.45l4.43,6.26l-2.22,1.12l-3.33-2.9l-2.44,1.56l2.22,4.24h3.77l-0.89,4.02l-3.1-0.45l-3.99-4.25L285.77,40.36L285.77,40.36M266.01,101.85l-4.23,5.32l-0.26,5.86l3.7-2.13h4.49l3.17,2.93l2.91-2.4L266.01,101.85L266.01,101.85M317.52,171.05l-10.57,10.12l1.06,2.4l12.94,4.79l1.85-3.19l-1.06-5.32l-4.23,0.53l-2.38-2.66l3.96-3.99L317.52,171.05L317.52,171.05M158.22,48.66l1.99,3.01l1,4.02l4.98,1.25l3.49-3.76l2.99,1.51l8.47,0.75l5.98-2.51l1,8.28h3.49V57.7l3.49,0.25l8.72,10.29l5.73,3.51l-2.99,4.77l1.25,1.25L219,80.03l0.25,5.02l2.99,0.5l0.75-7.53l4.73-1.25l3.49,5.27l7.47,3.51l3.74,0.75l2.49-3.01l0.25-4.77l4.48-2.76l1.49,4.02l-3.99,7.03l0.5,3.51l2.24-3.51l4.48-4.02l0.25-5.27l-2.49-4.02l0.75-3.26l5.98-3.01l2.74,2.01l0.5,17.57l4.23-3.76l2.49,1.51l-3.49,6.02l4.48,1l6.48-10.04l5.48,5.77l-2.24,10.29l-5.48,3.01l-5.23-2.51l-9.46,2.01l1,3.26l-2.49,4.02l-7.72,1.76l-8.72,6.78l-7.72,10.29l-1,3.26l5.23,2.01l1.99,5.02l7.22,7.28l11.46,5.02l-2.49,11.54l-0.25,3.26l2.99,2.01l3.99-5.27l0.5-10.04l6.23-0.25l2.99-5.77l0.5-8.78l7.97-15.56l9.96,3.51l5.23,7.28l-2.24,7.28l3.99,2.26l9.71-6.53l2.74,17.82l8.97,10.79l0.25,5.52l-9.96,2.51l-4.73,5.02l-9.96-2.26l-4.98-0.25l-8.72,6.78l5.23-1.25l6.48-1.25l1.25,1.51l-1.74,5.52l0.25,5.02l2.99,2.01l2.99-0.75l1.5-2.26h1.99l-3.24,6.02l-6.23,0.25l-2.74,4.02h-3.49l-1-3.01l4.98-5.02l-5.98,2.01l-0.27-8.53l-1.72-1l-5.23,2.26l-0.5,4.27h-11.96l-10.21,7.03l-13.7,4.52l-1.49-2.01l6.9-10.3l-3.92-3.77l-2.49-4.78l-5.07-3.87l-5.44-0.45l-9.75-6.83l-70.71-11.62l-1.17-4.79l-6.48-6.02v-5.02l1-4.52l-0.5-2.51l-2.49-2.51l-0.5-4.02l6.48-4.52l-3.99-21.58l-5.48-0.25l-4.98-6.53L158.22,48.66L158.22,48.66M133.83,128.41l-1.7,3.26l0.59,2.31l1.11,0.69l-0.26,0.94l-1.19,0.34l0.34,3.43l1.28,1.29l1.02-1.11l-1.28-3.34l0.76-2.66l1.87-2.49l-1.36-2.31L133.83,128.41L133.83,128.41M139.45,147.95l-1.53,0.6l2.81,3.26l0.68,3.86l2.81,3l2.38-0.43v-3.94l-2.89-1.8L139.45,147.95L139.45,147.95z\",\"name\":\"Canada\"},\"gt\":{\"path\":\"M194.88,291.52l5.93,4.34l5.98-7.43l-1.02-1.54l-2.04-0.07v-4.35l-1.53-0.93l-4.63,1.38l1.77,4.08L194.88,291.52L194.88,291.52z\",\"name\":\"Guatemala\"},\"hn\":{\"path\":\"M207.55,288.78l9.24-0.35l2.74,3.26l-1.71-0.39l-3.29,0.14l-4.3,4.04l-1.84,4.09l-1.21-0.64l-0.01-4.48l-2.66-1.78L207.55,288.78L207.55,288.78z\",\"name\":\"Honduras\"},\"sv\":{\"path\":\"M201.65,296.27l4.7,2.34l-0.07-3.71l-2.41-1.47L201.65,296.27L201.65,296.27z\",\"name\":\"El Salvador\"},\"ni\":{\"path\":\"M217.74,292.11l2.19,0.44l0.07,4.49l-2.55,7.28l-6.87-0.68l-1.53-3.51l2.04-4.26l3.87-3.6L217.74,292.11L217.74,292.11z\",\"name\":\"Nicaragua\"},\"cr\":{\"path\":\"M217.38,304.98l1.39,2.72l1.13,1.5l-1.52,4.51l-2.9-2.04l-4.74-4.34v-2.87L217.38,304.98L217.38,304.98z\",\"name\":\"Costa Rica\"},\"pa\":{\"path\":\"M220.59,309.61l-1.46,4.56l4.82,1.25l2.99,0.59l0.51-3.53l3.21-1.62l2.85,1.47l1.12,1.79l1.36-0.16l1.07-3.25l-3.56-1.47l-2.7-1.47l-2.7,1.84l-3.21,1.62l-3.28-1.32L220.59,309.61L220.59,309.61z\",\"name\":\"Panama\"},\"co\":{\"path\":\"M253.73,299.78l-2.06-0.21l-13.62,11.23l-1.44,3.95l-1.86,0.21l0.83,8.73l-4.75,11.65l5.16,4.37l6.61,0.42l4.54,6.66l6.6,0.21l-0.21,4.99H256l2.68-9.15l-2.48-3.12l0.62-5.82l5.16-0.42l-0.62-13.52l-11.56-3.74l-2.68-7.28L253.73,299.78L253.73,299.78z\",\"name\":\"Colombia\"},\"ve\":{\"path\":\"M250.46,305.92l0.44,2.59l3.25,1.03l0.74-4.77l3.43-3.55l3.43,4.02l7.89,2.15l6.68-1.4l4.55,5.61l3.43,2.15l-3.76,5.73l1.26,4.34l-2.15,2.66l-2.23,1.87l-4.83-2.43l-1.11,1.12v3.46l3.53,1.68l-2.6,2.81l-2.6,2.81l-3.43-0.28l-3.45-3.79l-0.73-14.26l-11.78-4.02l-2.14-6.27L250.46,305.92L250.46,305.92z\",\"name\":\"Venezuela\"},\"gy\":{\"path\":\"M285.05,314.13l7.22,6.54l-2.87,3.32l-0.23,1.97l3.77,3.89l-0.09,3.74l-6.56,2.5l-3.93-5.31l0.84-6.38l-1.68-4.75L285.05,314.13L285.05,314.13z\",\"name\":\"Guyana\"},\"sr\":{\"path\":\"M293.13,321.14l2.04,1.87l3.16-1.96l2.88,0.09l-0.37,1.12l-1.21,2.52l-0.19,6.27l-5.75,2.34l0.28-4.02l-3.71-3.46l0.19-1.78L293.13,321.14L293.13,321.14z\",\"name\":\"Suriname\"},\"gf\":{\"path\":\"M302.13,321.8l5.85,3.65l-3.06,6.08l-1.11,1.4l-3.25-1.87l0.09-6.55L302.13,321.8L302.13,321.8z\",\"name\":\"French Guiana\"},\"pe\":{\"path\":\"M225.03,349.52l-1.94,1.96l0.13,3.13l16.94,30.88l17.59,11.34l2.72-4.56l0.65-10.03l-1.42-6.25l-4.79-8.08l-2.85,0.91l-1.29,1.43l-5.69-6.52l1.42-7.69l6.6-4.3l-0.52-4.04l-6.72-0.26l-3.49-5.86l-1.94-0.65l0.13,3.52l-8.66,10.29l-6.47-1.56L225.03,349.52L225.03,349.52z\",\"name\":\"Peru\"},\"bo\":{\"path\":\"M258.71,372.79l8.23-3.59l2.72,0.26l1.81,7.56l12.54,4.17l2.07,6.39l5.17,0.65l2.2,5.47l-1.55,4.95l-8.41,0.65l-3.1,7.95l-6.6-0.13l-2.07-0.39l-3.81,3.7l-1.88-0.18l-6.47-14.99l1.79-2.68l0.63-10.6l-1.6-6.31L258.71,372.79L258.71,372.79z\",\"name\":\"Bolivia\"},\"py\":{\"path\":\"M291.76,399.51l2.2,2.4l-0.26,5.08l6.34-0.39l4.79,6.13l-0.39,5.47l-3.1,4.69l-6.34,0.26l-0.26-2.61l1.81-4.3l-6.21-3.91h-5.17l-3.88-4.17l2.82-8.06L291.76,399.51L291.76,399.51z\",\"name\":\"Paraguay\"},\"uy\":{\"path\":\"M300.36,431.93l-2.05,2.19l0.85,11.78l6.44,1.87l8.19-8.21L300.36,431.93L300.36,431.93z\",\"name\":\"Uruguay\"},\"ar\":{\"path\":\"M305.47,418.2l1.94,1.82l-7.37,10.95l-2.59,2.87l0.9,12.51l5.69,6.91l-4.78,8.34l-3.62,1.56h-4.14l1.16,6.51l-6.47,2.22l1.55,5.47l-3.88,12.38l4.79,3.91l-2.59,6.38l-4.4,6.91l2.33,4.82l-5.69,0.91l-4.66-5.73l-0.78-17.85l-7.24-30.32l2.19-10.6l-4.66-13.55l3.1-17.59l2.85-3.39l-0.7-2.57l3.66-3.34l8.16,0.56l4.56,4.87l5.27,0.09l5.4,3.3l-1.59,3.72l0.38,3.76l7.65-0.36L305.47,418.2L305.47,418.2M288.92,518.79l0.26,5.73l4.4-0.39l3.75-2.48l-6.34-1.3L288.92,518.79L288.92,518.79z\",\"name\":\"Argentina\"},\"cl\":{\"path\":\"M285.04,514.1l-4.27,9.38l7.37,0.78l0.13-6.25L285.04,514.1L285.04,514.1M283.59,512.63l-3.21,3.55l-0.39,4.17l-6.21-3.52l-6.6-9.51l-1.94-3.39l2.72-3.52l-0.26-4.43l-3.1-1.3l-2.46-1.82l0.52-2.48l3.23-0.91l0.65-14.33l-5.04-2.87l-3.29-74.59l0.85-1.48l6.44,14.85l2.06,0.04l0.67,2.37l-2.74,3.32l-3.15,17.87l4.48,13.76l-2.07,10.42l7.3,30.64l0.77,17.92l5.23,6.05L283.59,512.63L283.59,512.63M262.28,475.14l-1.29,1.95l0.65,3.39l1.29,0.13l0.65-4.3L262.28,475.14L262.28,475.14z\",\"name\":\"Chile\"},\"br\":{\"path\":\"M314.24,438.85l6.25-12.02l0.23-10.1l11.66-7.52h6.53l5.13-8.69l0.93-16.68l-2.1-4.46l12.36-11.28l0.47-12.45l-16.79-8.22l-20.28-6.34l-9.56-0.94l2.57-5.4l-0.7-8.22l-2.09-0.69l-3.09,6.14l-1.62,2.03l-4.16-1.84l-13.99,4.93l-4.66-5.87l0.75-6.13l-4.4,4.48l-4.86-2.62l-0.49,0.69l0.01,2.13l4.19,2.25l-6.29,6.63l-3.97-0.04l-4.02-4.09l-4.55,0.14l-0.56,4.86l2.61,3.17l-3.08,9.87l-3.6,0.28l-5.73,3.62l-1.4,7.11l4.97,5.32l0.91-1.03l3.49-0.94l2.98,5.02l8.53-3.66l3.31,0.19l2.28,8.07l12.17,3.86l2.1,6.44l5.18,0.62l2.47,6.15l-1.67,5.47l2.18,2.86l-0.32,4.26l5.84-0.55l5.35,6.76l-0.42,4.75l3.17,2.68l-7.6,11.51L314.24,438.85L314.24,438.85z\",\"name\":\"Brazil\"},\"bz\":{\"path\":\"M204.56,282.4l-0.05,3.65h0.84l2.86-5.34h-1.94L204.56,282.4L204.56,282.4z\",\"name\":\"Belize\"},\"mn\":{\"path\":\"M673.8,170.17l5.82-7.72l6.99,3.23l4.75,1.27l5.82-5.34l-3.95-2.91l2.6-3.67l7.76,2.74l2.69,4.41l4.86,0.13l2.54-1.89l5.23-0.21l1.14,1.94l8.69,0.44l5.5-5.61l7.61,0.8l-0.44,7.64l3.33,0.76l4.09-1.86l4.33,2.14l-0.1,1.08l-3.14,0.09l-3.27,6.86l-2.54,0.25l-9.88,12.91l-10.09,4.45l-6.31,0.49l-5.24-3.38l-6.7,3.58l-6.6-2.05l-1.87-4.79l-12.5-0.88l-6.4-10.85l-3.11-0.2L673.8,170.17L673.8,170.17z\",\"name\":\"Mongolia\"},\"kp\":{\"path\":\"M778.28,194.27l1.84,0.77l0.56,6.44l3.65,0.21l3.44-4.03l-1.19-1.06l0.14-4.32l3.16-3.82l-1.61-2.9l1.05-1.2l0.58-3l-1.83-0.83l-1.56,0.79l-1.93,5.86l-3.12-0.27l-3.61,4.26L778.28,194.27L778.28,194.27z\",\"name\":\"North Korea\"},\"kr\":{\"path\":\"M788.34,198.2l6.18,5.04l1.05,4.88l-0.21,2.62l-3.02,3.4l-2.6,0.14l-2.95-6.37l-1.12-3.04l1.19-0.92l-0.28-1.27l-1.47-0.66L788.34,198.2L788.34,198.2z\",\"name\":\"South Korea\"},\"kz\":{\"path\":\"M576.69,188.62l4.1-1.75l4.58-0.16l0.32,7h-2.68l-2.05,3.34l2.68,4.45l3.95,2.23l0.36,2.55l1.45-0.48l1.34-1.59l2.21,0.48l1.11,2.23h2.84v-2.86l-1.74-5.09l-0.79-4.13l5.05-2.23l6.79,1.11l4.26,4.29l9.63-0.95l5.37,7.63l6.31,0.32l1.74-2.86l2.21-0.48l0.32-3.18l3.31-0.16l1.74,2.07l1.74-4.13l14.99,2.07l2.52-3.34l-4.26-5.25l5.68-12.4l4.58,0.32l3.16-7.63l-6.31-0.64l-3.63-3.5l-10,1.16l-12.88-12.45l-4.54,4.03l-13.77-6.25l-16.89,8.27l-0.47,5.88l3.95,4.61l-7.7,4.35l-9.99-0.22l-2.09-3.07l-7.83-0.43l-7.42,4.77l-0.16,6.52L576.69,188.62L576.69,188.62z\",\"name\":\"Kazakhstan\"},\"tm\":{\"path\":\"M593.85,207.59l-0.62,2.63h-4.15v3.56l4.46,2.94l-1.38,4.03v1.86l1.85,0.31l2.46-3.25l5.54-1.24l11.84,4.49l0.15,3.25l6.61,0.62l7.38-7.75l-0.92-2.48l-4.92-1.08l-13.84-8.99l-0.62-3.25h-5.23l-2.31,4.34h-2.31L593.85,207.59L593.85,207.59z\",\"name\":\"Turkmenistan\"},\"uz\":{\"path\":\"M628.92,219.06l3.08,0.16v-5.27l-2.92-1.7l4.92-6.2h2l2,2.33l5.23-2.01l-7.23-2.48l-0.28-1.5l-1.72,0.42l-1.69,2.94l-7.29-0.24l-5.35-7.57l-9.4,0.93l-4.48-4.44l-6.2-1.05l-4.5,1.83l2.61,8.68l0.03,2.92l1.9,0.04l2.33-4.44l6.2,0.08l0.92,3.41l13.29,8.82l5.14,1.18L628.92,219.06L628.92,219.06z\",\"name\":\"Uzbekistan\"},\"tj\":{\"path\":\"M630.19,211.84l4.11-5.1h1.55l0.54,1.14l-1.9,1.38v1.14l1.25,0.9l6.01,0.36l1.96-0.84l0.89,0.18l0.6,1.92l3.57,0.36l1.79,3.78l-0.54,1.14l-0.71,0.06l-0.71-1.44l-1.55-0.12l-2.68,0.36l-0.18,2.52l-2.68-0.18l0.12-3.18l-1.96-1.92l-2.98,2.46l0.06,1.62l-2.62,0.9h-1.55l0.12-5.58L630.19,211.84L630.19,211.84z\",\"name\":\"Tajikistan\"},\"kg\":{\"path\":\"M636.81,199.21l-0.31,2.53l0.25,1.56l8.7,2.92l-7.64,3.08l-0.87-0.72l-1.65,1.06l0.08,0.58l0.88,0.4l5.36,0.14l2.72-0.82l3.49-4.4l4.37,0.76l5.27-7.3l-14.1-1.92l-1.95,4.73l-2.46-2.64L636.81,199.21L636.81,199.21z\",\"name\":\"Kyrgyz Republic\"},\"af\":{\"path\":\"M614.12,227.05l1.59,12.46l3.96,0.87l0.37,2.24l-2.84,2.37l5.29,4.27l10.28-3.7l0.82-4.38l6.47-4.04l2.48-9.36l1.85-1.99l-1.92-3.34l6.26-3.87l-0.8-1.12l-2.89,0.18l-0.26,2.66l-3.88-0.04l-0.07-3.55l-1.25-1.49l-2.1,1.91l0.06,1.75l-3.17,1.2l-5.85-0.37l-7.6,7.96L614.12,227.05L614.12,227.05z\",\"name\":\"Afghanistan\"},\"pk\":{\"path\":\"M623.13,249.84l2.6,3.86l-0.25,1.99l-3.46,1.37l-0.25,3.24h3.96l1.36-1.12h7.54l6.8,5.98l0.87-2.87h5.07l0.12-3.61l-5.19-4.98l1.11-2.74l5.32-0.37l7.17-14.95l-3.96-3.11l-1.48-5.23l9.64-0.87l-5.69-8.1l-3.03-0.82l-1.24,1.5l-0.93,0.07l-5.69,3.61l1.86,3.12l-2.1,2.24l-2.6,9.59l-6.43,4.11l-0.87,4.49L623.13,249.84L623.13,249.84z\",\"name\":\"Pakistan\"},\"in\":{\"path\":\"M670.98,313.01l4.58-2.24l2.72-9.84l-0.12-12.08l15.58-16.82v-3.99l3.21-1.25l-0.12-4.61l-3.46-6.73l1.98-3.61l4.33,3.99l5.56,0.25v2.24l-1.73,1.87l0.37,1l2.97,0.12l0.62,3.36h0.87l2.23-3.99l1.11-10.46l3.71-2.62l0.12-3.61l-1.48-2.87l-2.35-0.12l-9.2,6.08l0.58,3.91l-6.46-0.02l-2.28-2.79l-1.24,0.16l0.42,3.88l-13.97-1l-8.66-3.86l-0.46-4.75l-5.77-3.58l-0.07-7.37l-3.96-4.53l-9.1,0.87l0.99,3.96l4.46,3.61l-7.71,15.78l-5.16,0.39l-0.85,1.9l5.08,4.7l-0.25,4.75l-5.19-0.08l-0.56,2.36l4.31-0.19l0.12,1.87l-3.09,1.62l1.98,3.74l3.83,1.25l2.35-1.74l1.11-3.11l1.36-0.62l1.61,1.62l-0.49,3.99l-1.11,1.87l0.25,3.24L670.98,313.01L670.98,313.01z\",\"name\":\"India\"},\"np\":{\"path\":\"M671.19,242.56l0.46,4.27l8.08,3.66l12.95,0.96l-0.49-3.13l-8.65-2.38l-7.34-4.37L671.19,242.56L671.19,242.56z\",\"name\":\"Nepal\"},\"bt\":{\"path\":\"M695.4,248.08l1.55,2.12l5.24,0.04l-0.53-2.9L695.4,248.08L695.4,248.08z\",\"name\":\"Bhutan\"},\"bd\":{\"path\":\"M695.57,253.11l-1.31,2.37l3.4,6.46l0.1,5.04l0.62,1.35l3.99,0.07l2.26-2.17l1.64,0.99l0.33,3.07l1.31-0.82l0.08-3.92l-1.1-0.13l-0.69-3.33l-2.78-0.1l-0.69-1.85l1.7-2.27l0.03-1.12h-4.94L695.57,253.11L695.57,253.11z\",\"name\":\"Bangladesh\"},\"mm\":{\"path\":\"M729.44,303.65l-2.77-4.44l2.01-2.82l-1.9-3.49l-1.79-0.34l-0.34-5.86l-2.68-5.19l-0.78,1.24l-1.79,3.04l-2.24,0.34l-1.12-1.47l-0.56-3.95l-1.68-3.16l-6.84-6.45l1.68-1.11l0.31-4.67l2.5-4.2l1.08-10.45l3.62-2.47l0.12-3.81l2.17,0.72l3.42,4.95l-2.54,5.44l1.71,4.27l4.23,1.66l0.77,4.65l5.68,0.88l-1.57,2.71l-7.16,2.82l-0.78,4.62l5.26,6.76l0.22,3.61l-1.23,1.24l0.11,1.13l3.92,5.75l0.11,5.97L729.44,303.65L729.44,303.65z\",\"name\":\"Myanmar\"},\"th\":{\"path\":\"M730.03,270.47l3.24,4.17v5.07l1.12,0.56l5.15-2.48l1.01,0.34l6.15,7.1l-0.22,4.85l-2.01-0.34l-1.79-1.13l-1.34,0.11l-2.35,3.94l0.45,2.14l1.9,1.01l-0.11,2.37l-1.34,0.68l-4.59-3.16v-2.82l-1.9-0.11l-0.78,1.24l-0.4,12.62l2.97,5.42l5.26,5.07l-0.22,1.47l-2.8-0.11l-2.57-3.83h-2.69l-3.36-2.71l-1.01-2.82l1.45-2.37l0.5-2.14l1.58-2.8l-0.07-6.44l-3.86-5.58l-0.16-0.68l1.25-1.26l-0.29-4.43l-5.14-6.51l0.6-3.75L730.03,270.47L730.03,270.47z\",\"name\":\"Thailand\"},\"kh\":{\"path\":\"M740.48,299.47l4.09,4.37l7.61-5.64l0.67-8.9l-3.93,2.71l-2.04-1.14l-2.77-0.37l-1.55-1.09l-0.75,0.04l-2.03,3.33l0.33,1.54l2.06,1.15l-0.25,3.13L740.48,299.47L740.48,299.47z\",\"name\":\"Cambodia\"},\"la\":{\"path\":\"M735.47,262.93l-2.42,1.23l-2.01,5.86l3.36,4.28l-0.56,4.73l0.56,0.23l5.59-2.71l7.5,8.38l-0.18,5.28l1.63,0.88l4.03-3.27l-0.33-2.59l-11.63-11.05l0.11-1.69l1.45-1.01l-1.01-2.82l-4.81-0.79L735.47,262.93L735.47,262.93z\",\"name\":\"Lao People's Democratic Republic\"},\"vn\":{\"path\":\"M745.06,304.45l1.19,1.87l0.22,2.14l3.13,0.34l3.8-5.07l3.58-1.01l1.9-5.18l-0.89-8.34l-3.69-5.07l-3.89-3.11l-4.95-8.5l3.55-5.94l-5.08-5.83l-4.07-0.18l-3.66,1.97l1.09,4.71l4.88,0.86l1.31,3.63l-1.72,1.12l0.11,0.9l11.45,11.2l0.45,3.29l-0.69,10.4L745.06,304.45L745.06,304.45z\",\"name\":\"Vietnam\"},\"ge\":{\"path\":\"M555.46,204.16l3.27,4.27l4.08,1.88l2.51-0.01l4.31-1.17l1.08-1.69l-12.75-4.77L555.46,204.16L555.46,204.16z\",\"name\":\"Georgia\"},\"am\":{\"path\":\"M569.72,209.89l4.8,6.26l-1.41,1.65l-3.4-0.59l-4.22-3.78l0.23-2.48L569.72,209.89L569.72,209.89z\",\"name\":\"Armenia\"},\"az\":{\"path\":\"M571.41,207.72l-1.01,1.72l4.71,6.18l1.64-0.53l2.7,2.83l1.17-4.96l2.93,0.47l-0.12-1.42l-4.82-4.22l-0.92,2.48L571.41,207.72L571.41,207.72z\",\"name\":\"Azerbaijan\"},\"ir\":{\"path\":\"M569.65,217.95l-1.22,1.27l0.12,2.01l1.52,2.13l5.39,5.9l-0.82,2.36h-0.94l-0.47,2.36l3.05,3.9l2.81,0.24l5.63,7.79l3.16,0.24l2.46,1.77l0.12,3.54l9.73,5.67h3.63l2.23-1.89l2.81-0.12l1.64,3.78l10.51,1.46l0.31-3.86l3.48-1.26l0.16-1.38l-2.77-3.78l-6.17-4.96l3.24-2.95l-0.23-1.3l-4.06-0.63l-1.72-13.7l-0.2-3.15l-11.01-4.21l-4.88,1.1l-2.73,3.35l-2.42-0.16l-0.7,0.59l-5.39-0.35l-6.8-4.96l-2.53-2.77l-1.16,0.28l-2.09,2.39L569.65,217.95L569.65,217.95z\",\"name\":\"Iran\"},\"tr\":{\"path\":\"M558.7,209.19l-2.23,2.36l-8.2-0.24l-4.92-2.95l-4.8-0.12l-5.51,3.9l-5.16,0.24l-0.47,2.95h-5.86l-2.34,2.13v1.18l1.41,1.18v1.3l-0.59,1.54l0.59,1.3l1.88-0.94l1.88,2.01l-0.47,1.42l-0.7,0.95l1.05,1.18l5.16,1.06l3.63-1.54v-2.24l1.76,0.35l4.22,2.48l4.57-0.71l1.99-1.89l1.29,0.47v2.13h1.76l1.52-2.95l13.36-1.42l5.83-0.71l-1.54-2.02l-0.03-2.73l1.17-1.4l-4.26-3.42l0.23-2.95h-2.34L558.7,209.19L558.7,209.19M523.02,209.7l-0.16,3.55l3.1-0.95l1.42-0.95l-0.42-1.54l-1.47-1.17L523.02,209.7L523.02,209.7z\",\"name\":\"Turkey\"},\"om\":{\"path\":\"M598.38,280.84l7.39-4.26l1.31-6.25l-1.62-0.93l0.67-6.7l1.41-0.82l1.51,2.37l8.99,4.7v2.61l-10.89,16.03l-5.01,0.17L598.38,280.84L598.38,280.84z\",\"name\":\"Oman\"},\"ae\":{\"path\":\"M594.01,264.94l0.87,3.48l9.86,0.87l0.69-7.14l1.9-1.04l0.52-2.61l-3.11,0.87l-3.46,5.23L594.01,264.94L594.01,264.94z\",\"name\":\"United Arab Emirates\"},\"qa\":{\"path\":\"M592.63,259.02l-0.52,4.01l1.54,1.17l1.4-0.13l0.52-5.05l-1.21-0.87L592.63,259.02L592.63,259.02z\",\"name\":\"Qatar\"},\"kw\":{\"path\":\"M583.29,247.17l-2.25-1.22l-1.56,1.57l0.17,3.14l3.63,1.39L583.29,247.17L583.29,247.17z\",\"name\":\"Kuwait\"},\"sa\":{\"path\":\"M584,253.24l7.01,9.77l2.26,1.8l1.01,4.38l10.79,0.85l1.22,0.64l-1.21,5.4l-7.09,4.18l-10.37,3.14l-5.53,5.4l-6.57-3.83l-3.98,3.48L566,279.4l-3.8-1.74l-1.38-2.09v-4.53l-13.83-16.72l-0.52-2.96h3.98l4.84-4.18l0.17-2.09l-1.38-1.39l2.77-2.26l5.88,0.35l10.03,8.36l5.92-0.27l0.38,1.46L584,253.24L584,253.24z\",\"name\":\"Saudi Arabia\"},\"sy\":{\"path\":\"M546.67,229.13l-0.35,2.54l2.82,1.18l-0.12,7.04l2.82-0.06l2.82-2.13l1.06-0.18l6.4-5.09l1.29-7.39l-12.79,1.3l-1.35,2.96L546.67,229.13L546.67,229.13z\",\"name\":\"Syrian Arab Republic\"},\"iq\":{\"path\":\"M564.31,225.03l-1.56,7.71l-6.46,5.38l0.41,2.54l6.31,0.43l10.05,8.18l5.62-0.16l0.15-1.89l2.06-2.21l2.88,1.63l0.38-0.36l-5.57-7.41l-2.64-0.16l-3.51-4.51l0.7-3.32l1.07-0.14l0.37-1.47l-4.78-5.03L564.31,225.03L564.31,225.03z\",\"name\":\"Iraq\"},\"jo\":{\"path\":\"M548.9,240.78l-2.46,8.58l-0.11,1.31h3.87l4.33-3.82l0.11-1.45l-1.77-1.81l3.17-2.63l-0.46-2.44l-0.87,0.2l-2.64,1.89L548.9,240.78L548.9,240.78z\",\"name\":\"Jordan\"},\"lb\":{\"path\":\"M546.2,232.44l0.06,1.95l-0.82,2.96l2.82,0.24l0.18-4.2L546.2,232.44L546.2,232.44z\",\"name\":\"Lebanon\"},\"il\":{\"path\":\"M545.32,238.06l-1.58,5.03l2.05,6.03l2.35-8.81v-1.89L545.32,238.06L545.32,238.06z\",\"name\":\"Israel\"},\"cy\":{\"path\":\"M543.21,229.84l1.23,0.89l-3.81,3.61l-1.82-0.06l-1.35-0.95l0.18-1.77l2.76-0.18L543.21,229.84L543.21,229.84z\",\"name\":\"Cyprus\"},\"gb\":{\"path\":\"M446.12,149.08l-1.83,2.77l0.73,1.11h4.22v1.85l-1.1,1.48l0.73,3.88l2.38,4.62l1.83,4.25l2.93,1.11l1.28,2.22l-0.18,2.03l-1.83,1.11l-0.18,0.92l1.28,0.74l-1.1,1.48l-2.57,1.11l-4.95-0.55l-7.71,3.51l-2.57-1.29l7.34-4.25l-0.92-0.55l-3.85-0.37l2.38-3.51l0.37-2.96l3.12-0.37l-0.55-5.73l-3.67-0.18l-1.1-1.29l0.18-4.25l-2.2,0.18l2.2-7.39l4.04-2.96L446.12,149.08L446.12,149.08M438.42,161.47l-3.3,0.37l-0.18,2.96l2.2,1.48l2.38-0.55l0.92-1.66L438.42,161.47L438.42,161.47z\",\"name\":\"United Kingdom\"},\"ie\":{\"path\":\"M439.51,166.55l-0.91,6l-8.07,2.96h-2.57l-1.83-1.29v-1.11l4.04-2.59l-1.1-2.22l0.18-3.14l3.49,0.18l1.6-3.76l-0.21,3.34l2.71,2.15L439.51,166.55L439.51,166.55z\",\"name\":\"Ireland\"},\"se\":{\"path\":\"M497.72,104.58l1.96,1.81h3.67l2.02,3.88l0.55,6.65l-4.95,3.51v3.51l-3.49,4.81l-2.02,0.18l-2.75,4.62l0.18,4.44l4.77,3.51l-0.37,2.03l-1.83,2.77l-2.75,2.4l0.18,7.95l-4.22,1.48l-1.47,3.14h-2.02l-1.1-5.54l-4.59-7.04l3.77-6.31l0.26-15.59l2.6-1.43l0.63-8.92l7.41-10.61L497.72,104.58L497.72,104.58M498.49,150.17l-2.11,1.67l1.06,2.45l1.87-1.82L498.49,150.17L498.49,150.17z\",\"name\":\"Sweden\"},\"fi\":{\"path\":\"M506.79,116.94l2.07,0.91l1.28,2.4l-1.28,1.66l-6.42,7.02l-1.1,3.7l1.47,5.36l4.95,3.7l6.6-3.14l5.32-0.74l4.95-7.95l-3.67-8.69l-3.49-8.32l0.55-5.36l-2.2-0.37l-0.57-3.91l-2.96-4.83l-3.28,2.27l-1.29,5.27l-3.48-2.09l-4.84-1.18l-1.08,1.26l1.86,1.68l3.39-0.06l2.73,4.41L506.79,116.94L506.79,116.94z\",\"name\":\"Finland\"},\"lv\":{\"path\":\"M518.07,151.37l-6.85-1.11l0.15,3.83l6.35,3.88l2.6-0.76l-0.15-2.92L518.07,151.37L518.07,151.37z\",\"name\":\"Latvia\"},\"lt\":{\"path\":\"M510.81,154.7l-2.15-0.05l-2.95,2.82h-2.5l0.15,3.53l-1.5,2.77l5.4,0.05l1.55-0.2l1.55,1.87l3.55-0.15l3.4-4.33l-0.2-2.57L510.81,154.7L510.81,154.7z\",\"name\":\"Lithuania\"},\"by\":{\"path\":\"M510.66,166.29l1.5,2.47l-0.6,1.97l0.1,1.56l0.55,1.87l3.1-1.76l3.85,0.1l2.7,1.11h6.85l2-4.79l1.2-1.81v-1.21l-4.3-6.05l-3.8-1.51l-3.1-0.35l-2.7,0.86l0.1,2.72l-3.75,4.74L510.66,166.29L510.66,166.29z\",\"name\":\"Belarus\"},\"pl\":{\"path\":\"M511.46,174.76l0.85,1.56l0.2,1.66l-0.7,1.61l-1.6,3.08l-1.35,0.61l-1.75-0.76l-1.05,0.05l-2.55,0.96l-2.9-0.86l-4.7-3.33l-4.6-2.47l-1.85-2.82l-0.35-6.65l3.6-3.13l4.7-1.56l1.75-0.2l-0.7,1.41l0.45,0.55l7.91,0.15l1.7-0.05l2.8,4.29l-0.7,1.76l0.3,2.07L511.46,174.76L511.46,174.76z\",\"name\":\"Poland\"},\"it\":{\"path\":\"M477.56,213.38l-2.65,1.34l0.35,5.17l2.12,0.36l1.59-1.52v-4.9L477.56,213.38L477.56,213.38M472.27,196.98l-0.62,1.57l0.17,1.71l2.39,2.79l3.76-0.13l8.3,9.64l5.18,1.5l3.06,2.89l0.73,6.59l1.64-0.96l1.42-3.59l-0.35-2.58l2.43-0.22l0.35-1.46l-6.85-3.28l-6.5-6.39l-2.59-3.82l-0.63-3.63l3.31-0.79l-0.85-2.39l-2.03-1.71l-1.75-0.08l-2.44,0.67l-2.3,3.22l-1.39,0.92l-2.15-1.32L472.27,196.98L472.27,196.98M492.44,223.02l-1.45-0.78l-4.95,0.78l0.17,1.34l4.45,2.24l0.67,0.73l1.17,0.17L492.44,223.02L492.44,223.02z\",\"name\":\"Italy\"},\"fr\":{\"path\":\"M477.83,206.96l-1.95,1.96l-0.18,1.78l1.59,0.98l0.62-0.09l0.35-2.59L477.83,206.96L477.83,206.96M460.4,178.7l-2.21,0.54l-4.42,4.81l-1.33,0.09l-1.77-1.25l-1.15,0.27l-0.88,2.76l-6.46,0.18l0.18,1.43l4.42,2.94l5.13,4.1l-0.09,4.9l-2.74,4.81l5.93,2.85l6.02,0.18l1.86-2.14l3.8,0.09l1.06,0.98l3.8-0.27l1.95-2.5l-2.48-2.94l-0.18-1.87l0.53-2.05l-1.24-1.78l-2.12,0.62l-0.27-1.6l4.69-5.17v-3.12l-3.1-1.78l-1.59-0.27L460.4,178.7L460.4,178.7z\",\"name\":\"France\"},\"nl\":{\"path\":\"M470.09,168.27l-4.53,2.23l0.96,0.87l0.1,2.23l-0.96-0.19l-1.06-1.65l-2.53,4.01l3.89,0.81l1.45,1.53l0.77,0.02l0.51-3.46l2.45-1.03L470.09,168.27L470.09,168.27z\",\"name\":\"Netherlands\"},\"be\":{\"path\":\"M461.61,176.52l-0.64,1.6l6.88,4.54l1.98,0.47l0.07-2.15l-1.73-1.94h-1.06l-1.45-1.65L461.61,176.52L461.61,176.52z\",\"name\":\"Belgium\"},\"de\":{\"path\":\"M471.14,167.88l3.57-0.58v-2.52l2.99-0.49l1.64,1.65l1.73,0.19l2.7-1.17l2.41,0.68l2.12,1.84l0.29,6.89l2.12,2.82l-2.79,0.39l-4.63,2.91l0.39,0.97l4.14,3.88l-0.29,1.94l-3.85,1.94l-3.57,0.1l-0.87,1.84h-1.83l-0.87-1.94l-3.18-0.78l-0.1-3.2l-2.7-1.84l0.29-2.33l-1.83-2.52l0.48-3.3l2.5-1.17L471.14,167.88L471.14,167.88z\",\"name\":\"Germany\"},\"dk\":{\"path\":\"M476.77,151.5l-4.15,4.59l-0.15,2.99l1.89,4.93l2.96-0.56l-0.37-4.03l2.04-2.28l-0.04-1.79l-1.44-3.73L476.77,151.5L476.77,151.5M481.44,159.64l-0.93-0.04l-1.22,1.12l0.15,1.75l2.89,0.08l0.15-1.98L481.44,159.64L481.44,159.64z\",\"name\":\"Denmark\"},\"ch\":{\"path\":\"M472.91,189.38l-4.36,4.64l0.09,0.47l1.79-0.56l1.61,2.24l2.72-0.96l1.88,1.46l0.77-0.44l2.32-3.64l-0.59-0.56l-2.29-0.06l-1.11-2.27L472.91,189.38L472.91,189.38z\",\"name\":\"Switzerland\"},\"cz\":{\"path\":\"M488.43,184.87h2.97h1.46l2.37,1.69l4.39-3.65l-4.26-3.04l-4.22-2.04l-2.89,0.52l-3.92,2.52L488.43,184.87L488.43,184.87z\",\"name\":\"Czech Republic\"},\"sk\":{\"path\":\"M495.84,187.13l0.69,0.61l0.09,1.04l7.63-0.17l5.64-2.43l-0.09-2.47l-1.08,0.48l-1.55-0.83l-0.95-0.04l-2.5,1l-3.4-0.82L495.84,187.13L495.84,187.13z\",\"name\":\"Slovakia\"},\"at\":{\"path\":\"M480.63,190.12l-0.65,1.35l0.56,0.96l2.33-0.48h1.98l2.15,1.82l4.57-0.83l3.36-2l0.86-1.35l-0.13-1.74l-3.02-2.26l-4.05,0.04l-0.34,2.3l-4.26,2.08L480.63,190.12L480.63,190.12z\",\"name\":\"Austria\"},\"hu\":{\"path\":\"M496.74,189.6l-1.16,1.82l0.09,2.78l1.85,0.95l5.69,0.17l7.93-6.68l0.04-1.48l-0.86-0.43l-5.73,2.6L496.74,189.6L496.74,189.6z\",\"name\":\"Hungary\"},\"si\":{\"path\":\"M494.8,191.99l-2.54,1.52l-4.74,1.04l0.95,2.74l3.32,0.04l3.06-2.56L494.8,191.99L494.8,191.99z\",\"name\":\"Slovenia\"},\"hr\":{\"path\":\"M495.62,195.16l-3.53,2.91h-3.58l-0.43,2.52l1.64,0.43l0.82-1.22l1.29,1.13l1.03,3.6l7.07,3.3l0.7-0.8l-7.17-7.4l0.73-1.35l6.81-0.26l0.69-2.17l-4.44,0.13L495.62,195.16L495.62,195.16z\",\"name\":\"Croatia\"},\"ba\":{\"path\":\"M494.8,198.94l-0.37,0.61l6.71,6.92l2.46-3.62l-0.09-1.43l-2.15-2.61L494.8,198.94L494.8,198.94z\",\"name\":\"Bosnia and Herzegovina\"},\"mt\":{\"path\":\"M492.61,230.47l-1.67,0.34l0.06,1.85l1.5,0.5l0.67-0.56L492.61,230.47L492.61,230.47z\",\"name\":\"Malta\"},\"ua\":{\"path\":\"M515.57,173.15l-2.9,1.63l0.72,3.08l-2.68,5.65l0.02,2.49l1.26,0.8l8.08,0.4l2.26-1.87l2.42,0.81l3.47,4.63l-2.54,4.56l3.02,0.88l3.95-4.55l2.26,0.41l2.1,1.46l-1.85,2.44l2.5,3.9h2.66l1.37-2.6l2.82-0.57l0.08-2.11l-5.24-0.81l0.16-2.27h5.08l5.48-4.39l2.42-2.11l0.4-6.66l-10.8-0.97l-4.43-6.25l-3.06-1.05l-3.71,0.16l-1.67,4.13l-7.6,0.1l-2.47-1.14L515.57,173.15L515.57,173.15z\",\"name\":\"Ukraine\"},\"md\":{\"path\":\"M520.75,187.71l3.1,4.77l-0.26,2.7l1.11,0.05l2.63-4.45l-3.16-3.92l-1.79-0.74L520.75,187.71L520.75,187.71z\",\"name\":\"Moldova\"},\"ro\":{\"path\":\"M512.18,187.6l-0.26,1.48l-5.79,4.82l4.84,7.1l3.1,2.17h5.58l1.84-1.54l2.47-0.32l1.84,1.11l3.26-3.71l-0.63-1.86l-3.31-0.85l-2.26-0.11l0.11-3.18l-3-4.72L512.18,187.6L512.18,187.6z\",\"name\":\"Romania\"},\"rs\":{\"path\":\"M505.55,194.54l-2.05,1.54h-1l-0.68,2.12l2.42,2.81l0.16,2.23l-3,4.24l0.42,1.27l1.74,0.32l1.37-1.86l0.74-0.05l1.26,1.22l3.84-1.17l-0.32-5.46L505.55,194.54L505.55,194.54z\",\"name\":\"Serbia\"},\"bg\":{\"path\":\"M511.44,202.39l0.16,4.98l1.68,3.5l6.31,0.11l2.84-2.01l2.79-1.11l-0.68-3.18l0.63-1.7l-1.42-0.74l-1.95,0.16l-1.53,1.54l-6.42,0.05L511.44,202.39L511.44,202.39z\",\"name\":\"Bulgaria\"},\"al\":{\"path\":\"M504.02,209.76v4.61l1.32,2.49l0.95-0.11l1.63-2.97l-0.95-1.33l-0.37-3.29l-1.26-1.17L504.02,209.76L504.02,209.76z\",\"name\":\"Albania\"},\"mk\":{\"path\":\"M510.92,208.01l-3.37,1.11l0.16,2.86l0.79,1.01l4-1.86L510.92,208.01L510.92,208.01z\",\"name\":\"Macedonia\"},\"gr\":{\"path\":\"M506.71,217.6l-0.11,1.33l4.63,2.33l2.21,0.85l-1.16,1.22l-2.58,0.26l-0.37,1.17l0.89,2.01l2.89,1.54l1.26,0.11l0.16-3.45l1.89-2.28l-5.16-6.1l0.68-2.07l1.21-0.05l1.84,1.48l1.16-0.58l0.37-2.07l5.42,0.05l0.21-3.18l-2.26,1.59l-6.63-0.16l-4.31,2.23L506.71,217.6L506.71,217.6M516.76,230.59l1.63,0.05l0.68,1.01h2.37l1.58-0.58l0.53,0.64l-1.05,1.38l-4.63,0.16l-0.84-1.11l-0.89-0.53L516.76,230.59L516.76,230.59z\",\"name\":\"Greece\"}}});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/samples/europe.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Europe Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.europe.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'europe_en',\n                    enableZoom: false,\n                    showTooltip: false\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 680px; height: 520px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/samples/germany.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Germany Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.germany.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'germany_en',\n                    onRegionClick: function(element, code, region)\n                    {\n                        var message = 'You clicked \"' + region + '\" which has the code: ' + code.toUpperCase();\n                        alert(message);\n                    }\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 400px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/samples/multi.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Europe Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.europe.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'europe_en',\n                    enableZoom: true,\n                    showTooltip: true,\n                    multiSelectRegion: true,\n                    //selectedRegion: ['ES','FR'],\n                    selectedRegion: 'FR'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 680px; height: 520px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/samples/russia.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - Russia Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.russia.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/data/jquery.vmap.sampledata.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'russia_en',\n                    backgroundColor: '#333333',\n                    color: '#ffffff',\n                    hoverOpacity: 0.7,\n                    selectedColor: '#999999',\n                    enableZoom: true,\n                    showTooltip: true,\n                    values: sample_data,\n                    scaleColors: ['#C8EEFF', '#006491'],\n                    normalizeFunction: 'polynomial'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 600px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/samples/usa.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - USA Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.usa.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'usa_en',\n                    enableZoom: true,\n                    showTooltip: true,\n                    selectedRegion: 'MO'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 600px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/jqvmap/samples/world.html",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n\n    <head>\n        <title>JQVMap - World Map</title>\n        <link href=\"../jqvmap/jqvmap.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n        <script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/jquery.vmap.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/maps/jquery.vmap.world.js\" type=\"text/javascript\"></script>\n        <script src=\"../jqvmap/data/jquery.vmap.sampledata.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            jQuery(document).ready(function()\n            {\n                jQuery('#vmap').vectorMap(\n                {\n                    map: 'world_en',\n                    backgroundColor: '#333333',\n                    color: '#ffffff',\n                    hoverOpacity: 0.7,\n                    selectedColor: '#666666',\n                    enableZoom: true,\n                    showTooltip: true,\n                    values: sample_data,\n                    scaleColors: ['#C8EEFF', '#006491'],\n                    normalizeFunction: 'polynomial'\n                });\n            });\n        </script>\n    </head>\n\n    <body>\n        <div id=\"vmap\" style=\"width: 600px; height: 400px;\"></div>\n    </body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/livecss.js",
    "content": "/*\n * Live CSS will monitor <link> tags on the page and poll the server for changes to the CSS. This enables you\n * to refresh styles without disrupting the state of the view, and the page updates itself without you\n * having to switch from your editor to the browser and hit refresh.\n *\n * Usage:\n * livecss.watchAll() - starts polling all <link> tags in the current page for changes.\n *\n * If you want more fine grained control over which CSS is being autoreloaded:\n * livecss.watch(linkElement) - start watching a single <link> element for changes.\n * livecss.unwatchAll()\n * livecss.unwatch(linkElement)\n *\n * For convenience, livecss will call watchAll() right away if the page has \"startlivecss=true\" in the URL's\n * query string.\n */\nvar livecss = {\n  // How often to poll for changes to the CSS.\n  pollFrequency: 1000,\n  outstandingRequests: {}, // stylesheet url => boolean\n  filesLastModified: {}, // stylesheet url => last modified timestamp\n  watchTimers: {}, // stylesheet url => timer ID\n\n  /*\n   * Begins polling all link elements on the current page for changes.\n   */\n  watchAll: function() {\n    this.unwatchAll();\n    var timerId = setInterval(this.proxy(function() {\n      var linkElements = document.getElementsByTagName(\"link\");\n      var validMediaTypes = [\"screen\", \"handheld\", \"all\", \"\"];\n      for (var i = 0; i < linkElements.length; i++) {\n        var media = (linkElements[i].getAttribute(\"media\") || \"\").toLowerCase();\n        if (linkElements[i].getAttribute(\"rel\") == \"stylesheet\"\n            && livecss.indexOf(validMediaTypes, media) >= 0\n            && this.isLocalLink(linkElements[i])) {\n          this.refreshLinkElement(linkElements[i]);\n        }\n      }\n    }), this.pollFrequency);\n    this.watchTimers[\"all\"] = timerId;\n  },\n\n  watch: function(linkElement) {\n    var url = linkElement.getAttribute(\"href\");\n    this.unwatch(url);\n    this.watchTimers[url] = setInterval(this.proxy(function() {\n      var linkElement = this.linkElementWithHref(url);\n      this.refreshLinkElement(linkElement);\n    }), this.pollFrequency);\n  },\n\n  unwatchAll: function() {\n    for (var url in this.watchTimers)\n      this.unwatch(url);\n  },\n\n  unwatch: function(url) {\n    if (this.watchTimers[url] != null) {\n      clearInterval(this.watchTimers[url]);\n      delete this.watchTimers[url];\n      delete this.outstandingRequests[url];\n    }\n  },\n\n  linkElementWithHref: function(url) {\n    var linkElements = document.getElementsByTagName(\"link\");\n    for (var i = 0; i < linkElements.length; i++)\n      if (linkElements[i].href == url)\n        return linkElements[i]\n  },\n\n  /*\n   * Replaces a link element with a new one for the given URL. This has to wait for the new <link> to fully\n   * load, because simply changing the href on an existing <link> causes the page to flicker.\n   */\n  replaceLinkElement: function(linkElement, stylesheetUrl) {\n    var parent = linkElement.parentNode;\n    var sibling = linkElement.nextSibling;\n    var url = this.addCacheBust(linkElement.href);\n\n    var newLinkElement = document.createElement(\"link\");\n    newLinkElement.href = url;\n    newLinkElement.setAttribute(\"rel\", \"stylesheet\");\n\n    if (sibling)\n      parent.insertBefore(newLinkElement, sibling);\n    else\n      parent.appendChild(newLinkElement);\n\n    // We're polling to check whether the CSS is loaded, because firefox doesn't support an onload event\n    // for <link> elements.\n    var loadingTimer = setInterval(this.proxy(function() {\n      if (!this.isCssElementLoaded(newLinkElement)) return;\n      if (typeof(console) != \"undefined\")\n        console.log(\"CSS refreshed:\", this.removeCacheBust(url));\n      clearInterval(loadingTimer);\n      delete this.outstandingRequests[this.removeCacheBust(url)];\n      parent.removeChild(linkElement);\n    }), 100);\n  },\n\n  /*\n   * Refreshes the provided linkElement if it's changed. We issue a HEAD request for the CSS. If its\n   * last-modified header is changed, we remove and re-add the <link> element to the DOM which trigger a\n   * re-render from the browser. This uses a cache-bust querystring parameter to ensure we always bust through\n   * the browser's cache.\n   */\n  refreshLinkElement: function(linkElement) {\n    var url = this.removeCacheBust(linkElement.getAttribute(\"href\"));\n    if (this.outstandingRequests[url]) return;\n    var request = new XMLHttpRequest();\n    this.outstandingRequests[url] = request;\n    var cacheBustUrl = this.addCacheBust(url);\n\n    request.onreadystatechange = this.proxy(function(event) {\n      if (request.readyState != 4) return;\n      delete this.outstandingRequests[url];\n      if (request.status != 200 && request.status != 304) return;\n      var lastModified = Date.parse(request.getResponseHeader(\"Last-Modified\"));\n      if (!this.filesLastModified[url] || this.filesLastModified[url] < lastModified) {\n        this.filesLastModified[url] = lastModified;\n        this.replaceLinkElement(linkElement, cacheBustUrl);\n      }\n    });\n    request.open(\"HEAD\", cacheBustUrl);\n    request.send(null);\n  },\n\n  isCssElementLoaded: function(cssElement) {\n    // cssElement.sheet.cssRules will throw an error in firefox when the css file is not yet loaded.\n    try { return (cssElement.sheet && cssElement.sheet.cssRules.length > 0); } catch(error) { }\n    return false;\n  },\n\n  /* returns true for local urls such as: '/screen.css', 'http://mydomain.com/screen.css', 'css/screen.css'\n  */\n  isLocalLink: function(linkElement) {\n  \t//On all tested browsers, this javascript property returns a normalized URL\n\tvar url = linkElement.href;\n    var regexp = new RegExp(\"^\\/|^\" +\n      document.location.protocol + \"//\" + document.location.host);\n    return (url.search(regexp) == 0);\n  },\n\n  /*\n   * Adds and removes a \"cache_bust\" querystring parameter to the given URLs. This is so we always bust\n   * through the browser's cache when checking for updated CSS.\n   */\n  addCacheBust: function(url) { return this.removeCacheBust(url) + \"?cache_bust=\" + (new Date()).getTime(); },\n  removeCacheBust: function(url) { return url.replace(/\\?cache_bust=[^&]+/, \"\"); },\n\n  /* A utility method to bind the value of \"this\". Equivalent to jQuery's proxy() function. */\n  proxy: function(fn) {\n    var self = this;\n    return function() { return fn.apply(self, []); };\n  },\n\n  /* Unfortunately IE7 doesn't have this built-in. */\n  indexOf: function(array, item) {\n    for (var i = 0; i < array.length; i++) { if (array[i] == item) return i; }\n    return -1;\n  },\n\n  /* A utility function for abstracting the difference between event listening in IE and other browsers. */\n  addEventListener: function(object, event, fn) {\n    object.attachEvent ? object.attachEvent(\"on\" + event, fn) : object.addEventListener(event, fn, false);\n  }\n};\n\nif (window.location.search.toString().indexOf(\"startlivecss=true\") >= 0)\n  livecss.addEventListener(window, \"load\", function() { livecss.watchAll(); });"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/_template.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\"> </head>\n\n<body>\n    <h1>Title</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Insert code here:\n// it'll get eval()-ed and prettyprinted.\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/area-as-line.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Area charts behaving like line charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Area instead of Morris.Line\nMorris.Area({\n  element: 'graph',\n  behaveLikeLine: true,\n  data: [\n    {x: '2011 Q1', y: 3, z: 3},\n    {x: '2011 Q2', y: 2, z: 1},\n    {x: '2011 Q3', y: 2, z: 4},\n    {x: '2011 Q4', y: 3, z: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z'],\n  labels: ['Y', 'Z']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/area.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Area charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Area instead of Morris.Line\nMorris.Area({\n  element: 'graph',\n  data: [\n    {x: '2010 Q4', y: 3, z: 7},\n    {x: '2011 Q1', y: 3, z: 4},\n    {x: '2011 Q2', y: null, z: 1},\n    {x: '2011 Q3', y: 2, z: 5},\n    {x: '2011 Q4', y: 8, z: 2},\n    {x: '2012 Q1', y: 4, z: 4}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z'],\n  labels: ['Y', 'Z']\n}).on('click', function(i, row){\n  console.log(i, row);\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/bar-colors.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Bar charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  data: [\n    {x: '2011 Q1', y: 0},\n    {x: '2011 Q2', y: 1},\n    {x: '2011 Q3', y: 2},\n    {x: '2011 Q4', y: 3},\n    {x: '2012 Q1', y: 4},\n    {x: '2012 Q2', y: 5},\n    {x: '2012 Q3', y: 6},\n    {x: '2012 Q4', y: 7},\n    {x: '2013 Q1', y: 8}\n  ],\n  xkey: 'x',\n  ykeys: ['y'],\n  labels: ['Y'],\n  barColors: function (row, series, type) {\n    if (type === 'bar') {\n      var red = Math.ceil(255 * row.y / this.ymax);\n      return 'rgb(' + red + ',0,0)';\n    }\n    else {\n      return '#000';\n    }\n  }\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/bar-no-axes.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Bar charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  axes: false,\n  data: [\n    {x: '2011 Q1', y: 3, z: 2, a: 3},\n    {x: '2011 Q2', y: 2, z: null, a: 1},\n    {x: '2011 Q3', y: 0, z: 2, a: 4},\n    {x: '2011 Q4', y: 2, z: 4, a: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z', 'a'],\n  labels: ['Y', 'Z', 'A']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/bar.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Bar charts</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  data: [\n    {x: '2011 Q1', y: 3, z: 2, a: 3},\n    {x: '2011 Q2', y: 2, z: null, a: 1},\n    {x: '2011 Q3', y: 0, z: 2, a: 4},\n    {x: '2011 Q4', y: 2, z: 4, a: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z', 'a'],\n  labels: ['Y', 'Z', 'A']\n}).on('click', function(i, row){\n  console.log(i, row);\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/days.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates YYYY-MM-DD</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/decimal-custom-hover.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Decimal Data</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar decimal_data = [];\nfor (var x = 0; x <= 360; x += 10) {\n  decimal_data.push({\n    x: x,\n    y: 1.5 + 1.5 * Math.sin(Math.PI * x / 180).toFixed(4)\n  });\n}\nwindow.m = Morris.Line({\n  element: 'graph',\n  data: decimal_data,\n  xkey: 'x',\n  ykeys: ['y'],\n  labels: ['sin(x)'],\n  parseTime: false,\n  hoverCallback: function (index, options, default_content, row) {\n    return default_content.replace(\"sin(x)\", \"1.5 + 1.5 sin(\" + row.x + \")\");\n  },\n  xLabelMargin: 10,\n  integerYLabels: true\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/diagonal-xlabels-bar.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Displaying X Labels Diagonally (Bar Chart)</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Bar({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  xLabelAngle: 60\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/diagonal-xlabels.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Displaying X Labels Diagonally</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-30\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  xLabelAngle: 60\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/donut-colors.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\">\n    <style>\n        body {\n            background: #ccc;\n        }\n    </style>\n</head>\n\n<body>\n    <h1>Donut Chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nMorris.Donut({\n  element: 'graph',\n  data: [\n    {value: 70, label: 'foo'},\n    {value: 15, label: 'bar'},\n    {value: 10, label: 'baz'},\n    {value: 5, label: 'A really really long label'}\n  ],\n  backgroundColor: '#ccc',\n  labelColor: '#060',\n  colors: [\n    '#0BA462',\n    '#39B580',\n    '#67C69D',\n    '#95D7BB'\n  ],\n  formatter: function (x) { return x + \"%\"}\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/donut-formatter.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Donut Chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nMorris.Donut({\n  element: 'graph',\n  data: [\n    {value: 70, label: 'foo', formatted: 'at least 70%' },\n    {value: 15, label: 'bar', formatted: 'approx. 15%' },\n    {value: 10, label: 'baz', formatted: 'approx. 10%' },\n    {value: 5, label: 'A really really long label', formatted: 'at most 5%' }\n  ],\n  formatter: function (x, data) { return data.formatted; }\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/donut.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Donut Chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nMorris.Donut({\n  element: 'graph',\n  data: [\n    {value: 70, label: 'foo'},\n    {value: 15, label: 'bar'},\n    {value: 10, label: 'baz'},\n    {value: 5, label: 'A really really long label'}\n  ],\n  formatter: function (x) { return x + \"%\"}\n}).on('click', function(i, row){\n  console.log(i, row);\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/dst.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Daylight-savings time</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// This crosses a DST boundary in the UK.\nMorris.Area({\n  element: 'graph',\n  data: [\n    {x: '2013-03-30 22:00:00', y: 3, z: 3},\n    {x: '2013-03-31 00:00:00', y: 2, z: 0},\n    {x: '2013-03-31 02:00:00', y: 0, z: 2},\n    {x: '2013-03-31 04:00:00', y: 4, z: 4}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z'],\n  labels: ['Y', 'Z']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/events.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Time Events</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar week_data = [\n  {\"period\": \"2011 W27\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011 W26\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011 W25\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2011 W24\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2011 W23\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2011 W22\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2011 W21\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2011 W20\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2011 W19\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2011 W18\", \"licensed\": 3215, \"sorned\": 622},\n  {\"period\": \"2011 W17\", \"licensed\": 3148, \"sorned\": 632},\n  {\"period\": \"2011 W16\", \"licensed\": 3155, \"sorned\": 681},\n  {\"period\": \"2011 W15\", \"licensed\": 3190, \"sorned\": 667},\n  {\"period\": \"2011 W14\", \"licensed\": 3226, \"sorned\": 620},\n  {\"period\": \"2011 W13\", \"licensed\": 3245, \"sorned\": null},\n  {\"period\": \"2011 W12\", \"licensed\": 3289, \"sorned\": null},\n  {\"period\": \"2011 W11\", \"licensed\": 3263, \"sorned\": null},\n  {\"period\": \"2011 W10\", \"licensed\": 3189, \"sorned\": null},\n  {\"period\": \"2011 W09\", \"licensed\": 3079, \"sorned\": null},\n  {\"period\": \"2011 W08\", \"licensed\": 3085, \"sorned\": null},\n  {\"period\": \"2011 W07\", \"licensed\": 3055, \"sorned\": null},\n  {\"period\": \"2011 W06\", \"licensed\": 3063, \"sorned\": null},\n  {\"period\": \"2011 W05\", \"licensed\": 2943, \"sorned\": null},\n  {\"period\": \"2011 W04\", \"licensed\": 2806, \"sorned\": null},\n  {\"period\": \"2011 W03\", \"licensed\": 2674, \"sorned\": null},\n  {\"period\": \"2011 W02\", \"licensed\": 1702, \"sorned\": null},\n  {\"period\": \"2011 W01\", \"licensed\": 1732, \"sorned\": null}\n];\nMorris.Line({\n  element: 'graph',\n  data: week_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  events: [\n    '2011-04',\n    '2011-08'\n  ]\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/goals.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Value Goals</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar decimal_data = [];\nfor (var x = 0; x <= 360; x += 10) {\n  decimal_data.push({\n    x: x,\n    y: Math.sin(Math.PI * x / 180).toFixed(4)\n  });\n}\nwindow.m = Morris.Line({\n  element: 'graph',\n  data: decimal_data,\n  xkey: 'x',\n  ykeys: ['y'],\n  labels: ['sin(x)'],\n  parseTime: false,\n  goals: [-1, 0, 1]\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/lib/example.css",
    "content": "body {\n  width: 800px;\n  margin: 0 auto;\n}\n#graph {\n  width: 800px;\n  height: 250px;\n  margin: 20px auto 0 auto;\n}\npre {\n  height: 250px;\n  overflow: auto;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/lib/example.js",
    "content": "$(function () {\n  eval($('#code').text());\n  prettyPrint();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/months-no-smooth.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates with YYYY-MM</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar month_data = [\n  {\"period\": \"2012-10\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011-08\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011-03\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2010-08\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2010-05\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2010-03\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2010-01\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2009-12\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2009-10\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2009-09\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: month_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  smooth: false\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/negative.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Negative values</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar neg_data = [\n  {\"period\": \"2011-08-12\", \"a\": 100},\n  {\"period\": \"2011-03-03\", \"a\": 75},\n  {\"period\": \"2010-08-08\", \"a\": 50},\n  {\"period\": \"2010-05-10\", \"a\": 25},\n  {\"period\": \"2010-03-14\", \"a\": 0},\n  {\"period\": \"2010-01-10\", \"a\": -25},\n  {\"period\": \"2009-12-10\", \"a\": -50},\n  {\"period\": \"2009-10-07\", \"a\": -75},\n  {\"period\": \"2009-09-25\", \"a\": -100}\n];\nMorris.Line({\n  element: 'graph',\n  data: neg_data,\n  xkey: 'period',\n  ykeys: ['a'],\n  labels: ['Series A'],\n  units: '%'\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/no-grid.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates YYYY-MM-DD</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  grid: false,\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/non-continuous.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Non-continuous data</h1>\n    <p>Null series values will break the line when rendering, missing values will be skipped</p>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407},\n  {\"period\": \"2012-09-30\", \"sorned\": 0},\n  {\"period\": \"2012-09-29\", \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": null},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"other\": 1000},\n  {\"period\": \"2012-09-17\", \"sorned\": 0},\n  {\"period\": \"2012-09-16\", \"sorned\": 0},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned', 'other'],\n  labels: ['Licensed', 'SORN', 'Other'],\n  /* custom label formatting with `xLabelFormat` */\n  xLabelFormat: function(d) { return (d.getMonth()+1)+'/'+d.getDate()+'/'+d.getFullYear(); },\n  /* setting `xLabels` is recommended when using xLabelFormat */\n  xLabels: 'day'\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/non-date.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Non-date Arbitrary X-axis</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar day_data = [\n  {\"elapsed\": \"I\", \"value\": 34},\n  {\"elapsed\": \"II\", \"value\": 24},\n  {\"elapsed\": \"III\", \"value\": 3},\n  {\"elapsed\": \"IV\", \"value\": 12},\n  {\"elapsed\": \"V\", \"value\": 13},\n  {\"elapsed\": \"VI\", \"value\": 22},\n  {\"elapsed\": \"VII\", \"value\": 5},\n  {\"elapsed\": \"VIII\", \"value\": 26},\n  {\"elapsed\": \"IX\", \"value\": 12},\n  {\"elapsed\": \"X\", \"value\": 19}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'elapsed',\n  ykeys: ['value'],\n  labels: ['value'],\n  parseTime: false\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/quarters.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates with Quarters</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_e_type */\nvar quarter_data = [\n  {\"period\": \"2011 Q3\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011 Q2\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011 Q1\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2010 Q4\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2010 Q3\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2010 Q2\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2010 Q1\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2009 Q4\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2009 Q3\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2009 Q2\", \"licensed\": 3215, \"sorned\": 622},\n  {\"period\": \"2009 Q1\", \"licensed\": 3148, \"sorned\": 632},\n  {\"period\": \"2008 Q4\", \"licensed\": 3155, \"sorned\": 681},\n  {\"period\": \"2008 Q3\", \"licensed\": 3190, \"sorned\": 667},\n  {\"period\": \"2007 Q4\", \"licensed\": 3226, \"sorned\": 620},\n  {\"period\": \"2006 Q4\", \"licensed\": 3245, \"sorned\": null},\n  {\"period\": \"2005 Q4\", \"licensed\": 3289, \"sorned\": null},\n  {\"period\": \"2004 Q4\", \"licensed\": 3263, \"sorned\": null},\n  {\"period\": \"2003 Q4\", \"licensed\": 3189, \"sorned\": null},\n  {\"period\": \"2002 Q4\", \"licensed\": 3079, \"sorned\": null},\n  {\"period\": \"2001 Q4\", \"licensed\": 3085, \"sorned\": null},\n  {\"period\": \"2000 Q4\", \"licensed\": 3055, \"sorned\": null},\n  {\"period\": \"1999 Q4\", \"licensed\": 3063, \"sorned\": null},\n  {\"period\": \"1998 Q4\", \"licensed\": 2943, \"sorned\": null},\n  {\"period\": \"1997 Q4\", \"licensed\": 2806, \"sorned\": null},\n  {\"period\": \"1996 Q4\", \"licensed\": 2674, \"sorned\": null},\n  {\"period\": \"1995 Q4\", \"licensed\": 1702, \"sorned\": null},\n  {\"period\": \"1994 Q4\", \"licensed\": 1732, \"sorned\": null}\n];\nMorris.Line({\n  element: 'graph',\n  data: quarter_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/resize.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\">\n    <style>\n        body {\n            width: 100%;\n        }\n        \n        #graph {\n            width: 100%;\n        }\n    </style>\n</head>\n\n<body>\n    <h1>Formatting Dates YYYY-MM-DD</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar day_data = [\n  {\"period\": \"2012-10-01\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2012-09-30\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2012-09-29\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2012-09-20\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2012-09-19\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2012-09-18\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2012-09-17\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2012-09-16\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2012-09-15\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2012-09-10\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: day_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  resize: true\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/stacked_bars.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Stacked Bars chart</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n// Use Morris.Bar\nMorris.Bar({\n  element: 'graph',\n  data: [\n    {x: '2011 Q1', y: 3, z: 2, a: 3},\n    {x: '2011 Q2', y: 2, z: null, a: 1},\n    {x: '2011 Q3', y: 0, z: 2, a: 4},\n    {x: '2011 Q4', y: 2, z: 4, a: 3}\n  ],\n  xkey: 'x',\n  ykeys: ['y', 'z', 'a'],\n  labels: ['Y', 'Z', 'A'],\n  stacked: true\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/timestamps.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Timestamps</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar timestamp_data = [\n  {\"period\": 1349046000000, \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": 1313103600000, \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": 1299110400000, \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": 1281222000000, \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": 1273446000000, \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": 1268524800000, \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": 1263081600000, \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": 1260403200000, \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": 1254870000000, \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": 1253833200000, \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: timestamp_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN'],\n  dateFormat: function (x) { return new Date(x).toDateString(); }\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/updating.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Updating data</h1>\n    <div id=\"graph\"></div>\n    <div id=\"reloadStatus\"> <pre id=\"code\" class=\"prettyprint linenums\">\n\nvar nReloads = 0;\nfunction data(offset) {\n  var ret = [];\n  for (var x = 0; x <= 360; x += 10) {\n    var v = (offset + x) % 360;\n    ret.push({\n      x: x,\n      y: Math.sin(Math.PI * v / 180).toFixed(4),\n      z: Math.cos(Math.PI * v / 180).toFixed(4)\n    });\n  }\n  return ret;\n}\nvar graph = Morris.Line({\n    element: 'graph',\n    data: data(0),\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['sin()', 'cos()'],\n    parseTime: false,\n    ymin: -1.0,\n    ymax: 1.0,\n    hideHover: true\n});\nfunction update() {\n  nReloads++;\n  graph.setData(data(5 * nReloads));\n  $('#reloadStatus').text(nReloads + ' reloads');\n}\nsetInterval(update, 100);\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/weeks.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates With Weeks</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\nvar week_data = [\n  {\"period\": \"2011 W27\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011 W26\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2011 W25\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2011 W24\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2011 W23\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2011 W22\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2011 W21\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2011 W20\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2011 W19\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2011 W18\", \"licensed\": 3215, \"sorned\": 622},\n  {\"period\": \"2011 W17\", \"licensed\": 3148, \"sorned\": 632},\n  {\"period\": \"2011 W16\", \"licensed\": 3155, \"sorned\": 681},\n  {\"period\": \"2011 W15\", \"licensed\": 3190, \"sorned\": 667},\n  {\"period\": \"2011 W14\", \"licensed\": 3226, \"sorned\": 620},\n  {\"period\": \"2011 W13\", \"licensed\": 3245, \"sorned\": null},\n  {\"period\": \"2011 W12\", \"licensed\": 3289, \"sorned\": null},\n  {\"period\": \"2011 W11\", \"licensed\": 3263, \"sorned\": null},\n  {\"period\": \"2011 W10\", \"licensed\": 3189, \"sorned\": null},\n  {\"period\": \"2011 W09\", \"licensed\": 3079, \"sorned\": null},\n  {\"period\": \"2011 W08\", \"licensed\": 3085, \"sorned\": null},\n  {\"period\": \"2011 W07\", \"licensed\": 3055, \"sorned\": null},\n  {\"period\": \"2011 W06\", \"licensed\": 3063, \"sorned\": null},\n  {\"period\": \"2011 W05\", \"licensed\": 2943, \"sorned\": null},\n  {\"period\": \"2011 W04\", \"licensed\": 2806, \"sorned\": null},\n  {\"period\": \"2011 W03\", \"licensed\": 2674, \"sorned\": null},\n  {\"period\": \"2011 W02\", \"licensed\": 1702, \"sorned\": null},\n  {\"period\": \"2011 W01\", \"licensed\": 1732, \"sorned\": null}\n];\nMorris.Line({\n  element: 'graph',\n  data: week_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/examples/years.html",
    "content": "<!doctype html>\n\n<head>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js\"></script>\n    <script src=\"../morris.js\"></script>\n    <script src=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.js\"></script>\n    <script src=\"lib/example.js\"></script>\n    <link rel=\"stylesheet\" href=\"lib/example.css\">\n    <link rel=\"stylesheet\" href=\"http://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.min.css\">\n    <link rel=\"stylesheet\" href=\"../morris.css\"> </head>\n\n<body>\n    <h1>Formatting Dates YYYY</h1>\n    <div id=\"graph\"></div> <pre id=\"code\" class=\"prettyprint linenums\">\n/* data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type */\nvar year_data = [\n  {\"period\": \"2012\", \"licensed\": 3407, \"sorned\": 660},\n  {\"period\": \"2011\", \"licensed\": 3351, \"sorned\": 629},\n  {\"period\": \"2010\", \"licensed\": 3269, \"sorned\": 618},\n  {\"period\": \"2009\", \"licensed\": 3246, \"sorned\": 661},\n  {\"period\": \"2008\", \"licensed\": 3257, \"sorned\": 667},\n  {\"period\": \"2007\", \"licensed\": 3248, \"sorned\": 627},\n  {\"period\": \"2006\", \"licensed\": 3171, \"sorned\": 660},\n  {\"period\": \"2005\", \"licensed\": 3171, \"sorned\": 676},\n  {\"period\": \"2004\", \"licensed\": 3201, \"sorned\": 656},\n  {\"period\": \"2003\", \"licensed\": 3215, \"sorned\": 622}\n];\nMorris.Line({\n  element: 'graph',\n  data: year_data,\n  xkey: 'period',\n  ykeys: ['licensed', 'sorned'],\n  labels: ['Licensed', 'SORN']\n});\n</pre> </body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/less/morris.core.less",
    "content": ".morris-hover {\n  position: absolute;\n  z-index: 1000;\n\n  &.morris-default-style {\n    border-radius: 10px;\n    padding: 6px;\n    color: #666;\n    background: rgba(255, 255, 255, 0.8);\n    border: solid 2px rgba(230, 230, 230, 0.8);\n\n    font-family: sans-serif;\n    font-size: 12px;\n    text-align: center;\n\n    .morris-hover-row-label {\n      font-weight: bold;\n      margin: 0.25em 0;\n    }\n\n    .morris-hover-point {\n      white-space: nowrap;\n      margin: 0.1em 0;\n    }\n  }\n\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/lib/morris.area.coffee",
    "content": "class Morris.Area extends Morris.Line\n  # Initialise\n  #\n  areaDefaults = \n    fillOpacity: 'auto'\n    behaveLikeLine: false\n\n  constructor: (options) ->\n    return new Morris.Area(options) unless (@ instanceof Morris.Area)\n    areaOptions = $.extend {}, areaDefaults, options\n\n    @cumulative = not areaOptions.behaveLikeLine\n\n    if areaOptions.fillOpacity is 'auto'\n      areaOptions.fillOpacity = if areaOptions.behaveLikeLine then .8 else 1\n\n    super(areaOptions)\n\n  # calculate series data point coordinates\n  #\n  # @private\n  calcPoints: ->\n    for row in @data\n      row._x = @transX(row.x)\n      total = 0\n      row._y = for y in row.y\n        if @options.behaveLikeLine\n          @transY(y)\n        else\n          total += (y || 0)\n          @transY(total)\n      row._ymax = Math.max row._y...\n\n  # draw the data series\n  #\n  # @private\n  drawSeries: ->\n    @seriesPoints = []\n    if @options.behaveLikeLine\n      range = [0..@options.ykeys.length-1]\n    else\n      range = [@options.ykeys.length-1..0]\n\n    for i in range\n      @_drawFillFor i\n      @_drawLineFor i\n      @_drawPointFor i\n\n  _drawFillFor: (index) ->\n    path = @paths[index]\n    if path isnt null\n      path = path + \"L#{@transX(@xmax)},#{@bottom}L#{@transX(@xmin)},#{@bottom}Z\"\n      @drawFilledPath path, @fillForSeries(index)\n\n  fillForSeries: (i) ->\n    color = Raphael.rgb2hsl @colorFor(@data[i], i, 'line')\n    Raphael.hsl(\n      color.h,\n      if @options.behaveLikeLine then color.s * 0.9 else color.s * 0.75,\n      Math.min(0.98, if @options.behaveLikeLine then color.l * 1.2 else color.l * 1.25))\n\n  drawFilledPath: (path, fill) ->\n    @raphael.path(path)\n      .attr('fill', fill)\n      .attr('fill-opacity', @options.fillOpacity)\n      .attr('stroke', 'none')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/lib/morris.bar.coffee",
    "content": "class Morris.Bar extends Morris.Grid\n  constructor: (options) ->\n    return new Morris.Bar(options) unless (@ instanceof Morris.Bar)\n    super($.extend {}, options, parseTime: false)\n\n  init: ->\n    @cumulative = @options.stacked\n\n    if @options.hideHover isnt 'always'\n      @hover = new Morris.Hover(parent: @el)\n      @on('hovermove', @onHoverMove)\n      @on('hoverout', @onHoverOut)\n      @on('gridclick', @onGridClick)\n\n  # Default configuration\n  #\n  defaults:\n    barSizeRatio: 0.75\n    barGap: 3\n    barColors: [\n      '#0b62a4'\n      '#7a92a3'\n      '#4da74d'\n      '#afd8f8'\n      '#edc240'\n      '#cb4b4b'\n      '#9440ed'\n    ],\n    barOpacity: 1.0\n    barRadius: [0, 0, 0, 0]\n    xLabelMargin: 50\n\n  # Do any size-related calculations\n  #\n  # @private\n  calc: ->\n    @calcBars()\n    if @options.hideHover is false\n      @hover.update(@hoverContentForRow(@data.length - 1)...)\n\n  # calculate series data bars coordinates and sizes\n  #\n  # @private\n  calcBars: ->\n    for row, idx in @data\n      row._x = @left + @width * (idx + 0.5) / @data.length\n      row._y = for y in row.y\n        if y? then @transY(y) else null\n\n  # Draws the bar chart.\n  #\n  draw: ->\n    @drawXAxis() if @options.axes in [true, 'both', 'x']\n    @drawSeries()\n\n  # draw the x-axis labels\n  #\n  # @private\n  drawXAxis: ->\n    # draw x axis labels\n    ypos = @bottom + (@options.xAxisLabelTopPadding || @options.padding / 2)\n    prevLabelMargin = null\n    prevAngleMargin = null\n    for i in [0...@data.length]\n      row = @data[@data.length - 1 - i]\n      label = @drawXAxisLabel(row._x, ypos, row.label)\n      textBox = label.getBBox()\n      label.transform(\"r#{-@options.xLabelAngle}\")\n      labelBox = label.getBBox()\n      label.transform(\"t0,#{labelBox.height / 2}...\")\n      if @options.xLabelAngle != 0\n        offset = -0.5 * textBox.width *\n          Math.cos(@options.xLabelAngle * Math.PI / 180.0)\n        label.transform(\"t#{offset},0...\")\n      # try to avoid overlaps\n      if (not prevLabelMargin? or\n          prevLabelMargin >= labelBox.x + labelBox.width or\n          prevAngleMargin? and prevAngleMargin >= labelBox.x) and\n         labelBox.x >= 0 and (labelBox.x + labelBox.width) < @el.width()\n        if @options.xLabelAngle != 0\n          margin = 1.25 * @options.gridTextSize /\n            Math.sin(@options.xLabelAngle * Math.PI / 180.0)\n          prevAngleMargin = labelBox.x - margin\n        prevLabelMargin = labelBox.x - @options.xLabelMargin\n      else\n        label.remove()\n\n  # draw the data series\n  #\n  # @private\n  drawSeries: ->\n    groupWidth = @width / @options.data.length\n    numBars = if @options.stacked then 1 else @options.ykeys.length\n    barWidth = (groupWidth * @options.barSizeRatio - @options.barGap * (numBars - 1)) / numBars\n    barWidth = Math.min(barWidth, @options.barSize) if @options.barSize\n    spaceLeft = groupWidth - barWidth * numBars - @options.barGap * (numBars - 1)\n    leftPadding = spaceLeft / 2\n    zeroPos = if @ymin <= 0 and @ymax >= 0 then @transY(0) else null\n    @bars = for row, idx in @data\n      lastTop = 0\n      for ypos, sidx in row._y\n        if ypos != null\n          if zeroPos\n            top = Math.min(ypos, zeroPos)\n            bottom = Math.max(ypos, zeroPos)\n          else\n            top = ypos\n            bottom = @bottom\n\n          left = @left + idx * groupWidth + leftPadding\n          left += sidx * (barWidth + @options.barGap) unless @options.stacked\n          size = bottom - top\n\n          if @options.verticalGridCondition and @options.verticalGridCondition(row.x)\n            @drawBar(@left + idx * groupWidth, @top, groupWidth, Math.abs(@top - @bottom), @options.verticalGridColor, @options.verticalGridOpacity, @options.barRadius)\n\n          top -= lastTop if @options.stacked\n          @drawBar(left, top, barWidth, size, @colorFor(row, sidx, 'bar'),\n              @options.barOpacity, @options.barRadius)\n\n          lastTop += size\n        else\n          null\n\n  # @private\n  #\n  # @param row  [Object] row data\n  # @param sidx [Number] series index\n  # @param type [String] \"bar\", \"hover\" or \"label\"\n  colorFor: (row, sidx, type) ->\n    if typeof @options.barColors is 'function'\n      r = { x: row.x, y: row.y[sidx], label: row.label }\n      s = { index: sidx, key: @options.ykeys[sidx], label: @options.labels[sidx] }\n      @options.barColors.call(@, r, s, type)\n    else\n      @options.barColors[sidx % @options.barColors.length]\n\n  # hit test - returns the index of the row at the given x-coordinate\n  #\n  hitTest: (x) ->\n    return null if @data.length == 0\n    x = Math.max(Math.min(x, @right), @left)\n    Math.min(@data.length - 1,\n      Math.floor((x - @left) / (@width / @data.length)))\n\n  # click on grid event handler\n  #\n  # @private\n  onGridClick: (x, y) =>\n    index = @hitTest(x)\n    @fire 'click', index, @data[index].src, x, y\n\n  # hover movement event handler\n  #\n  # @private\n  onHoverMove: (x, y) =>\n    index = @hitTest(x)\n    @hover.update(@hoverContentForRow(index)...)\n\n  # hover out event handler\n  #\n  # @private\n  onHoverOut: =>\n    if @options.hideHover isnt false\n      @hover.hide()\n\n  # hover content for a point\n  #\n  # @private\n  hoverContentForRow: (index) ->\n    row = @data[index]\n    content = \"<div class='morris-hover-row-label'>#{row.label}</div>\"\n    for y, j in row.y\n      content += \"\"\"\n        <div class='morris-hover-point' style='color: #{@colorFor(row, j, 'label')}'>\n          #{@options.labels[j]}:\n          #{@yLabelFormat(y)}\n        </div>\n      \"\"\"\n    if typeof @options.hoverCallback is 'function'\n      content = @options.hoverCallback(index, @options, content, row.src)\n    x = @left + (index + 0.5) * @width / @data.length\n    [content, x]\n\n  drawXAxisLabel: (xPos, yPos, text) ->\n    label = @raphael.text(xPos, yPos, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .attr('fill', @options.gridTextColor)\n\n  drawBar: (xPos, yPos, width, height, barColor, opacity, radiusArray) ->\n    maxRadius = Math.max(radiusArray...)\n    if maxRadius == 0 or maxRadius > height\n      path = @raphael.rect(xPos, yPos, width, height)\n    else\n      path = @raphael.path @roundedRect(xPos, yPos, width, height, radiusArray)\n    path\n      .attr('fill', barColor)\n      .attr('fill-opacity', opacity)\n      .attr('stroke', 'none')\n\n  roundedRect: (x, y, w, h, r = [0,0,0,0]) ->\n    [ \"M\", x, r[0] + y, \"Q\", x, y, x + r[0], y,\n      \"L\", x + w - r[1], y, \"Q\", x + w, y, x + w, y + r[1],\n      \"L\", x + w, y + h - r[2], \"Q\", x + w, y + h, x + w - r[2], y + h,\n      \"L\", x + r[3], y + h, \"Q\", x, y + h, x, y + h - r[3], \"Z\" ]\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/lib/morris.coffee",
    "content": "Morris = window.Morris = {}\n\n$ = jQuery\n\n# Very simple event-emitter class.\n#\n# @private\nclass Morris.EventEmitter\n  on: (name, handler) ->\n    unless @handlers?\n      @handlers = {}\n    unless @handlers[name]?\n      @handlers[name] = []\n    @handlers[name].push(handler)\n    @\n\n  fire: (name, args...) ->\n    if @handlers? and @handlers[name]?\n      for handler in @handlers[name]\n        handler(args...)\n\n# Make long numbers prettier by inserting commas.\n#\n# @example\n#   Morris.commas(1234567) -> '1,234,567'\nMorris.commas = (num) ->\n  if num?\n    ret = if num < 0 then \"-\" else \"\"\n    absnum = Math.abs(num)\n    intnum = Math.floor(absnum).toFixed(0)\n    ret += intnum.replace(/(?=(?:\\d{3})+$)(?!^)/g, ',')\n    strabsnum = absnum.toString()\n    if strabsnum.length > intnum.length\n      ret += strabsnum.slice(intnum.length)\n    ret\n  else\n    '-'\n\n# Zero-pad numbers to two characters wide.\n#\n# @example\n#   Morris.pad2(1) -> '01'\nMorris.pad2 = (number) -> (if number < 10 then '0' else '') + number\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/lib/morris.donut.coffee",
    "content": "# Donut charts.\n#\n# @example\n#   Morris.Donut({\n#     el: $('#donut-container'),\n#     data: [\n#       { label: 'yin',  value: 50 },\n#       { label: 'yang', value: 50 }\n#     ]\n#   });\nclass Morris.Donut extends Morris.EventEmitter\n  defaults:\n    colors: [\n      '#0B62A4'\n      '#3980B5'\n      '#679DC6'\n      '#95BBD7'\n      '#B0CCE1'\n      '#095791'\n      '#095085'\n      '#083E67'\n      '#052C48'\n      '#042135'\n    ],\n    backgroundColor: '#FFFFFF', \n    labelColor: '#000000',\n    formatter: Morris.commas\n    resize: false\n\n  # Create and render a donut chart.\n  #\n  constructor: (options) ->\n    return new Morris.Donut(options) unless (@ instanceof Morris.Donut)\n    @options = $.extend {}, @defaults, options\n\n    if typeof options.element is 'string'\n      @el = $ document.getElementById(options.element)\n    else\n      @el = $ options.element\n\n    if @el == null || @el.length == 0\n      throw new Error(\"Graph placeholder not found.\")\n\n    # bail if there's no data\n    if options.data is undefined or options.data.length is 0\n      return\n\n    @raphael = new Raphael(@el[0])\n\n    if @options.resize\n      $(window).bind 'resize', (evt) =>\n        if @timeoutId?\n          window.clearTimeout @timeoutId\n        @timeoutId = window.setTimeout @resizeHandler, 100\n\n    @setData options.data\n\n  # Clear and redraw the chart.\n  redraw: ->\n    @raphael.clear()\n\n    cx = @el.width() / 2\n    cy = @el.height() / 2\n    w = (Math.min(cx, cy) - 10) / 3\n\n    total = 0\n    total += value for value in @values\n\n    min = 5 / (2 * w)\n    C = 1.9999 * Math.PI - min * @data.length\n\n    last = 0\n    idx = 0\n    @segments = []\n    for value, i in @values\n      next = last + min + C * (value / total)\n      seg = new Morris.DonutSegment(\n        cx, cy, w*2, w, last, next,\n        @data[i].color || @options.colors[idx % @options.colors.length],\n        @options.backgroundColor, idx, @raphael)\n      seg.render()\n      @segments.push seg\n      seg.on 'hover', @select\n      seg.on 'click', @click\n      last = next\n      idx += 1\n\n    @text1 = @drawEmptyDonutLabel(cx, cy - 10, @options.labelColor, 15, 800)\n    @text2 = @drawEmptyDonutLabel(cx, cy + 10, @options.labelColor, 14)\n\n    max_value = Math.max @values...\n    idx = 0\n    for value in @values\n      if value == max_value\n        @select idx\n        break\n      idx += 1\n\n  setData: (data) ->\n    @data = data\n    @values = (parseFloat(row.value) for row in @data)\n    @redraw()\n\n  # @private\n  click: (idx) =>\n    @fire 'click', idx, @data[idx]\n\n  # Select the segment at the given index.\n  select: (idx) =>\n    s.deselect() for s in @segments\n    segment = @segments[idx]\n    segment.select()\n    row = @data[idx]\n    @setLabels(row.label, @options.formatter(row.value, row))\n\n\n\n  # @private\n  setLabels: (label1, label2) ->\n    inner = (Math.min(@el.width() / 2, @el.height() / 2) - 10) * 2 / 3\n    maxWidth = 1.8 * inner\n    maxHeightTop = inner / 2\n    maxHeightBottom = inner / 3\n    @text1.attr(text: label1, transform: '')\n    text1bbox = @text1.getBBox()\n    text1scale = Math.min(maxWidth / text1bbox.width, maxHeightTop / text1bbox.height)\n    @text1.attr(transform: \"S#{text1scale},#{text1scale},#{text1bbox.x + text1bbox.width / 2},#{text1bbox.y + text1bbox.height}\")\n    @text2.attr(text: label2, transform: '')\n    text2bbox = @text2.getBBox()\n    text2scale = Math.min(maxWidth / text2bbox.width, maxHeightBottom / text2bbox.height)\n    @text2.attr(transform: \"S#{text2scale},#{text2scale},#{text2bbox.x + text2bbox.width / 2},#{text2bbox.y}\")\n\n  drawEmptyDonutLabel: (xPos, yPos, color, fontSize, fontWeight) ->\n    text = @raphael.text(xPos, yPos, '')\n      .attr('font-size', fontSize)\n      .attr('fill', color)\n    text.attr('font-weight', fontWeight) if fontWeight?\n    return text\n\n  resizeHandler: =>\n    @timeoutId = null\n    @raphael.setSize @el.width(), @el.height()\n    @redraw()\n\n\n# A segment within a donut chart.\n#\n# @private\nclass Morris.DonutSegment extends Morris.EventEmitter\n  constructor: (@cx, @cy, @inner, @outer, p0, p1, @color, @backgroundColor, @index, @raphael) ->\n    @sin_p0 = Math.sin(p0)\n    @cos_p0 = Math.cos(p0)\n    @sin_p1 = Math.sin(p1)\n    @cos_p1 = Math.cos(p1)\n    @is_long = if (p1 - p0) > Math.PI then 1 else 0\n    @path = @calcSegment(@inner + 3, @inner + @outer - 5)\n    @selectedPath = @calcSegment(@inner + 3, @inner + @outer)\n    @hilight = @calcArc(@inner)\n\n  calcArcPoints: (r) ->\n    return [\n      @cx + r * @sin_p0,\n      @cy + r * @cos_p0,\n      @cx + r * @sin_p1,\n      @cy + r * @cos_p1]\n\n  calcSegment: (r1, r2) ->\n    [ix0, iy0, ix1, iy1] = @calcArcPoints(r1)\n    [ox0, oy0, ox1, oy1] = @calcArcPoints(r2)\n    return (\n      \"M#{ix0},#{iy0}\" +\n      \"A#{r1},#{r1},0,#{@is_long},0,#{ix1},#{iy1}\" +\n      \"L#{ox1},#{oy1}\" +\n      \"A#{r2},#{r2},0,#{@is_long},1,#{ox0},#{oy0}\" +\n      \"Z\")\n\n  calcArc: (r) ->\n    [ix0, iy0, ix1, iy1] = @calcArcPoints(r)\n    return (\n      \"M#{ix0},#{iy0}\" +\n      \"A#{r},#{r},0,#{@is_long},0,#{ix1},#{iy1}\")\n\n  render: ->\n    @arc = @drawDonutArc(@hilight, @color)\n    @seg = @drawDonutSegment(\n      @path, \n      @color, \n      @backgroundColor, \n      => @fire('hover', @index),\n      => @fire('click', @index)\n    )\n\n  drawDonutArc: (path, color) ->\n    @raphael.path(path)\n      .attr(stroke: color, 'stroke-width': 2, opacity: 0)\n\n  drawDonutSegment: (path, fillColor, strokeColor, hoverFunction, clickFunction) ->\n    @raphael.path(path)\n      .attr(fill: fillColor, stroke: strokeColor, 'stroke-width': 3)\n      .hover(hoverFunction)\n      .click(clickFunction)\n\n  select: =>\n    unless @selected\n      @seg.animate(path: @selectedPath, 150, '<>')\n      @arc.animate(opacity: 1, 150, '<>')\n      @selected = true\n\n  deselect: =>\n    if @selected\n      @seg.animate(path: @path, 150, '<>')\n      @arc.animate(opacity: 0, 150, '<>')\n      @selected = false\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/lib/morris.grid.coffee",
    "content": "class Morris.Grid extends Morris.EventEmitter\n  # A generic pair of axes for line/area/bar charts.\n  #\n  # Draws grid lines and axis labels.\n  #\n  constructor: (options) ->\n    # find the container to draw the graph in\n    if typeof options.element is 'string'\n      @el = $ document.getElementById(options.element)\n    else\n      @el = $ options.element\n    if not @el? or @el.length == 0\n      throw new Error(\"Graph container element not found\")\n\n    if @el.css('position') == 'static'\n      @el.css('position', 'relative')\n\n    @options = $.extend {}, @gridDefaults, (@defaults || {}), options\n\n    # backwards compatibility for units -> postUnits\n    if typeof @options.units is 'string'\n      @options.postUnits = options.units\n\n    # the raphael drawing instance\n    @raphael = new Raphael(@el[0])\n\n    # some redraw stuff\n    @elementWidth = null\n    @elementHeight = null\n    @dirty = false\n\n    # range selection\n    @selectFrom = null\n\n    # more stuff\n    @init() if @init\n\n    # load data\n    @setData @options.data\n\n    # hover\n    @el.bind 'mousemove', (evt) =>\n      offset = @el.offset()\n      x = evt.pageX - offset.left\n      if @selectFrom\n        left = @data[@hitTest(Math.min(x, @selectFrom))]._x\n        right = @data[@hitTest(Math.max(x, @selectFrom))]._x\n        width = right - left\n        @selectionRect.attr({ x: left, width: width })\n      else\n        @fire 'hovermove', x, evt.pageY - offset.top\n\n    @el.bind 'mouseleave', (evt) =>\n      if @selectFrom\n        @selectionRect.hide()\n        @selectFrom = null\n      @fire 'hoverout'\n\n    @el.bind 'touchstart touchmove touchend', (evt) =>\n      touch = evt.originalEvent.touches[0] or evt.originalEvent.changedTouches[0]\n      offset = @el.offset()\n      @fire 'hovermove', touch.pageX - offset.left, touch.pageY - offset.top\n\n    @el.bind 'click', (evt) =>\n      offset = @el.offset()\n      @fire 'gridclick', evt.pageX - offset.left, evt.pageY - offset.top\n\n    if @options.rangeSelect\n      @selectionRect = @raphael.rect(0, 0, 0, @el.innerHeight())\n        .attr({ fill: @options.rangeSelectColor, stroke: false })\n        .toBack()\n        .hide()\n\n      @el.bind 'mousedown', (evt) =>\n        offset = @el.offset()\n        @startRange evt.pageX - offset.left\n\n      @el.bind 'mouseup', (evt) =>\n        offset = @el.offset()\n        @endRange evt.pageX - offset.left\n        @fire 'hovermove', evt.pageX - offset.left, evt.pageY - offset.top\n\n    if @options.resize\n      $(window).bind 'resize', (evt) =>\n        if @timeoutId?\n          window.clearTimeout @timeoutId\n        @timeoutId = window.setTimeout @resizeHandler, 100\n\n    # Disable tap highlight on iOS.\n    @el.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)')\n\n    @postInit() if @postInit\n\n  # Default options\n  #\n  gridDefaults:\n    dateFormat: null\n    axes: true\n    grid: true\n    gridLineColor: '#aaa'\n    gridStrokeWidth: 0.5\n    gridTextColor: '#888'\n    gridTextSize: 12\n    gridTextFamily: 'sans-serif'\n    gridTextWeight: 'normal'\n    hideHover: false\n    yLabelFormat: null\n    xLabelAngle: 0\n    numLines: 5\n    padding: 25\n    parseTime: true\n    postUnits: ''\n    preUnits: ''\n    ymax: 'auto'\n    ymin: 'auto 0'\n    goals: []\n    goalStrokeWidth: 1.0\n    goalLineColors: [\n      '#666633'\n      '#999966'\n      '#cc6666'\n      '#663333'\n    ]\n    events: []\n    eventStrokeWidth: 1.0\n    eventLineColors: [\n      '#005a04'\n      '#ccffbb'\n      '#3a5f0b'\n      '#005502'\n    ]\n    rangeSelect: null\n    rangeSelectColor: '#eef'\n    resize: false\n\n  # Update the data series and redraw the chart.\n  #\n  setData: (data, redraw = true) ->\n    @options.data = data\n\n    if !data? or data.length == 0\n      @data = []\n      @raphael.clear()\n      @hover.hide() if @hover?\n      return\n\n    ymax = if @cumulative then 0 else null\n    ymin = if @cumulative then 0 else null\n\n    if @options.goals.length > 0\n      minGoal = Math.min @options.goals...\n      maxGoal = Math.max @options.goals...\n      ymin = if ymin? then Math.min(ymin, minGoal) else minGoal\n      ymax = if ymax? then Math.max(ymax, maxGoal) else maxGoal\n\n    @data = for row, index in data\n      ret = {src: row}\n\n      ret.label = row[@options.xkey]\n      if @options.parseTime\n        ret.x = Morris.parseDate(ret.label)\n        if @options.dateFormat\n          ret.label = @options.dateFormat ret.x\n        else if typeof ret.label is 'number'\n          ret.label = new Date(ret.label).toString()\n      else\n        ret.x = index\n        if @options.xLabelFormat\n          ret.label = @options.xLabelFormat ret\n      total = 0\n      ret.y = for ykey, idx in @options.ykeys\n        yval = row[ykey]\n        yval = parseFloat(yval) if typeof yval is 'string'\n        yval = null if yval? and typeof yval isnt 'number'\n        if yval?\n          if @cumulative\n            total += yval\n          else\n            if ymax?\n              ymax = Math.max(yval, ymax)\n              ymin = Math.min(yval, ymin)\n            else\n              ymax = ymin = yval\n        if @cumulative and total?\n          ymax = Math.max(total, ymax)\n          ymin = Math.min(total, ymin)\n        yval\n      ret\n\n    if @options.parseTime\n      @data = @data.sort (a, b) -> (a.x > b.x) - (b.x > a.x)\n\n    # calculate horizontal range of the graph\n    @xmin = @data[0].x\n    @xmax = @data[@data.length - 1].x\n\n    @events = []\n    if @options.events.length > 0\n      if @options.parseTime\n        @events = (Morris.parseDate(e) for e in @options.events)\n      else\n        @events = @options.events\n      @xmax = Math.max(@xmax, Math.max(@events...))\n      @xmin = Math.min(@xmin, Math.min(@events...))\n\n    if @xmin is @xmax\n      @xmin -= 1\n      @xmax += 1\n\n    @ymin = @yboundary('min', ymin)\n    @ymax = @yboundary('max', ymax)\n\n    if @ymin is @ymax\n      @ymin -= 1 if ymin\n      @ymax += 1\n\n    if @options.axes in [true, 'both', 'y'] or @options.grid is true\n      if (@options.ymax == @gridDefaults.ymax and\n          @options.ymin == @gridDefaults.ymin)\n        # calculate 'magic' grid placement\n        @grid = @autoGridLines(@ymin, @ymax, @options.numLines)\n        @ymin = Math.min(@ymin, @grid[0])\n        @ymax = Math.max(@ymax, @grid[@grid.length - 1])\n      else\n        step = (@ymax - @ymin) / (@options.numLines - 1)\n        @grid = (y for y in [@ymin..@ymax] by step)\n\n    @dirty = true\n    @redraw() if redraw\n\n  yboundary: (boundaryType, currentValue) ->\n    boundaryOption = @options[\"y#{boundaryType}\"]\n    if typeof boundaryOption is 'string'\n      if boundaryOption[0..3] is 'auto'\n        if boundaryOption.length > 5\n          suggestedValue = parseInt(boundaryOption[5..], 10)\n          return suggestedValue unless currentValue?\n          Math[boundaryType](currentValue, suggestedValue)\n        else\n          if currentValue? then currentValue else 0\n      else\n        parseInt(boundaryOption, 10)\n    else\n      boundaryOption\n\n  autoGridLines: (ymin, ymax, nlines) ->\n    span = ymax - ymin\n    ymag = Math.floor(Math.log(span) / Math.log(10))\n    unit = Math.pow(10, ymag)\n\n    # calculate initial grid min and max values\n    gmin = Math.floor(ymin / unit) * unit\n    gmax = Math.ceil(ymax / unit) * unit\n    step = (gmax - gmin) / (nlines - 1)\n    if unit == 1 and step > 1 and Math.ceil(step) != step\n      step = Math.ceil(step)\n      gmax = gmin + step * (nlines - 1)\n\n    # ensure zero is plotted where the range includes zero\n    if gmin < 0 and gmax > 0\n      gmin = Math.floor(ymin / step) * step\n      gmax = Math.ceil(ymax / step) * step\n\n    # special case for decimal numbers\n    if step < 1\n      smag = Math.floor(Math.log(step) / Math.log(10))\n      grid = for y in [gmin..gmax] by step\n        parseFloat(y.toFixed(1 - smag))\n    else\n      grid = (y for y in [gmin..gmax] by step)\n    grid\n\n  _calc: ->\n    w = @el.width()\n    h = @el.height()\n\n    if @elementWidth != w or @elementHeight != h or @dirty\n      @elementWidth = w\n      @elementHeight = h\n      @dirty = false\n      # recalculate grid dimensions\n      @left = @options.padding\n      @right = @elementWidth - @options.padding\n      @top = @options.padding\n      @bottom = @elementHeight - @options.padding\n      if @options.axes in [true, 'both', 'y']\n        yLabelWidths = for gridLine in @grid\n          @measureText(@yAxisFormat(gridLine)).width\n        @left += Math.max(yLabelWidths...)\n      if @options.axes in [true, 'both', 'x']\n        bottomOffsets = for i in [0...@data.length]\n          @measureText(@data[i].text, -@options.xLabelAngle).height\n        @bottom -= Math.max(bottomOffsets...)\n      @width = Math.max(1, @right - @left)\n      @height = Math.max(1, @bottom - @top)\n      @dx = @width / (@xmax - @xmin)\n      @dy = @height / (@ymax - @ymin)\n      @calc() if @calc\n\n  # Quick translation helpers\n  #\n  transY: (y) -> @bottom - (y - @ymin) * @dy\n  transX: (x) ->\n    if @data.length == 1\n      (@left + @right) / 2\n    else\n      @left + (x - @xmin) * @dx\n\n  # Draw it!\n  #\n  # If you need to re-size your charts, call this method after changing the\n  # size of the container element.\n  redraw: ->\n    @raphael.clear()\n    @_calc()\n    @drawGrid()\n    @drawGoals()\n    @drawEvents()\n    @draw() if @draw\n\n  # @private\n  #\n  measureText: (text, angle = 0) ->\n    tt = @raphael.text(100, 100, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .rotate(angle)\n    ret = tt.getBBox()\n    tt.remove()\n    ret\n\n  # @private\n  #\n  yAxisFormat: (label) -> @yLabelFormat(label)\n\n  # @private\n  #\n  yLabelFormat: (label) ->\n    if typeof @options.yLabelFormat is 'function'\n      @options.yLabelFormat(label)\n    else\n      \"#{@options.preUnits}#{Morris.commas(label)}#{@options.postUnits}\"\n\n  # draw y axis labels, horizontal lines\n  #\n  drawGrid: ->\n    return if @options.grid is false and @options.axes not in [true, 'both', 'y']\n    for lineY in @grid\n      y = @transY(lineY)\n      if @options.axes in [true, 'both', 'y']\n        @drawYAxisLabel(@left - @options.padding / 2, y, @yAxisFormat(lineY))\n      if @options.grid\n        @drawGridLine(\"M#{@left},#{y}H#{@left + @width}\")\n\n  # draw goals horizontal lines\n  #\n  drawGoals: ->\n    for goal, i in @options.goals\n      color = @options.goalLineColors[i % @options.goalLineColors.length]\n      @drawGoal(goal, color)\n\n  # draw events vertical lines\n  drawEvents: ->\n    for event, i in @events\n      color = @options.eventLineColors[i % @options.eventLineColors.length]\n      @drawEvent(event, color)\n\n  drawGoal: (goal, color) ->\n    @raphael.path(\"M#{@left},#{@transY(goal)}H#{@right}\")\n      .attr('stroke', color)\n      .attr('stroke-width', @options.goalStrokeWidth)\n\n  drawEvent: (event, color) ->\n    @raphael.path(\"M#{@transX(event)},#{@bottom}V#{@top}\")\n      .attr('stroke', color)\n      .attr('stroke-width', @options.eventStrokeWidth)\n\n  drawYAxisLabel: (xPos, yPos, text) ->\n    @raphael.text(xPos, yPos, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .attr('fill', @options.gridTextColor)\n      .attr('text-anchor', 'end')\n\n  drawGridLine: (path) ->\n    @raphael.path(path)\n      .attr('stroke', @options.gridLineColor)\n      .attr('stroke-width', @options.gridStrokeWidth)\n\n  # Range selection\n  #\n  startRange: (x) ->\n    @hover.hide()\n    @selectFrom = x\n    @selectionRect.attr({ x: x, width: 0 }).show()\n\n  endRange: (x) ->\n    if @selectFrom\n      start = Math.min(@selectFrom, x)\n      end = Math.max(@selectFrom, x)\n      @options.rangeSelect.call @el,\n        start: @data[@hitTest(start)].x\n        end: @data[@hitTest(end)].x\n      @selectFrom = null\n\n  resizeHandler: =>\n    @timeoutId = null\n    @raphael.setSize @el.width(), @el.height()\n    @redraw()\n\n# Parse a date into a javascript timestamp\n#\n#\nMorris.parseDate = (date) ->\n  if typeof date is 'number'\n    return date\n  m = date.match /^(\\d+) Q(\\d)$/\n  n = date.match /^(\\d+)-(\\d+)$/\n  o = date.match /^(\\d+)-(\\d+)-(\\d+)$/\n  p = date.match /^(\\d+) W(\\d+)$/\n  q = date.match /^(\\d+)-(\\d+)-(\\d+)[ T](\\d+):(\\d+)(Z|([+-])(\\d\\d):?(\\d\\d))?$/\n  r = date.match /^(\\d+)-(\\d+)-(\\d+)[ T](\\d+):(\\d+):(\\d+(\\.\\d+)?)(Z|([+-])(\\d\\d):?(\\d\\d))?$/\n  if m\n    new Date(\n      parseInt(m[1], 10),\n      parseInt(m[2], 10) * 3 - 1,\n      1).getTime()\n  else if n\n    new Date(\n      parseInt(n[1], 10),\n      parseInt(n[2], 10) - 1,\n      1).getTime()\n  else if o\n    new Date(\n      parseInt(o[1], 10),\n      parseInt(o[2], 10) - 1,\n      parseInt(o[3], 10)).getTime()\n  else if p\n    # calculate number of weeks in year given\n    ret = new Date(parseInt(p[1], 10), 0, 1);\n    # first thursday in year (ISO 8601 standard)\n    if ret.getDay() isnt 4\n      ret.setMonth(0, 1 + ((4 - ret.getDay()) + 7) % 7);\n    # add weeks\n    ret.getTime() + parseInt(p[2], 10) * 604800000\n  else if q\n    if not q[6]\n      # no timezone info, use local\n      new Date(\n        parseInt(q[1], 10),\n        parseInt(q[2], 10) - 1,\n        parseInt(q[3], 10),\n        parseInt(q[4], 10),\n        parseInt(q[5], 10)).getTime()\n    else\n      # timezone info supplied, use UTC\n      offsetmins = 0\n      if q[6] != 'Z'\n        offsetmins = parseInt(q[8], 10) * 60 + parseInt(q[9], 10)\n        offsetmins = 0 - offsetmins if q[7] == '+'\n      Date.UTC(\n        parseInt(q[1], 10),\n        parseInt(q[2], 10) - 1,\n        parseInt(q[3], 10),\n        parseInt(q[4], 10),\n        parseInt(q[5], 10) + offsetmins)\n  else if r\n    secs = parseFloat(r[6])\n    isecs = Math.floor(secs)\n    msecs = Math.round((secs - isecs) * 1000)\n    if not r[8]\n      # no timezone info, use local\n      new Date(\n        parseInt(r[1], 10),\n        parseInt(r[2], 10) - 1,\n        parseInt(r[3], 10),\n        parseInt(r[4], 10),\n        parseInt(r[5], 10),\n        isecs,\n        msecs).getTime()\n    else\n      # timezone info supplied, use UTC\n      offsetmins = 0\n      if r[8] != 'Z'\n        offsetmins = parseInt(r[10], 10) * 60 + parseInt(r[11], 10)\n        offsetmins = 0 - offsetmins if r[9] == '+'\n      Date.UTC(\n        parseInt(r[1], 10),\n        parseInt(r[2], 10) - 1,\n        parseInt(r[3], 10),\n        parseInt(r[4], 10),\n        parseInt(r[5], 10) + offsetmins,\n        isecs,\n        msecs)\n  else\n    new Date(parseInt(date, 10), 0, 1).getTime()\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/lib/morris.hover.coffee",
    "content": "class Morris.Hover\n  # Displays contextual information in a floating HTML div.\n\n  @defaults:\n    class: 'morris-hover morris-default-style'\n\n  constructor: (options = {}) ->\n    @options = $.extend {}, Morris.Hover.defaults, options\n    @el = $ \"<div class='#{@options.class}'></div>\"\n    @el.hide()\n    @options.parent.append(@el)\n\n  update: (html, x, y) ->\n    if not html\n      @hide()\n    else\n      @html(html)\n      @show()\n      @moveTo(x, y)\n\n  html: (content) ->\n    @el.html(content)\n\n  moveTo: (x, y) ->\n    parentWidth  = @options.parent.innerWidth()\n    parentHeight = @options.parent.innerHeight()\n    hoverWidth   = @el.outerWidth()\n    hoverHeight  = @el.outerHeight()\n    left = Math.min(Math.max(0, x - hoverWidth / 2), parentWidth - hoverWidth)\n    if y?\n      top = y - hoverHeight - 10\n      if top < 0\n        top = y + 10\n        if top + hoverHeight > parentHeight\n          top = parentHeight / 2 - hoverHeight / 2\n    else\n      top = parentHeight / 2 - hoverHeight / 2\n    @el.css(left: left + \"px\", top: parseInt(top) + \"px\")\n\n  show: ->\n    @el.show()\n\n  hide: ->\n    @el.hide()\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/lib/morris.line.coffee",
    "content": "class Morris.Line extends Morris.Grid\n  # Initialise the graph.\n  #\n  constructor: (options) ->\n    return new Morris.Line(options) unless (@ instanceof Morris.Line)\n    super(options)\n\n  init: ->\n    # Some instance variables for later\n    if @options.hideHover isnt 'always'\n      @hover = new Morris.Hover(parent: @el)\n      @on('hovermove', @onHoverMove)\n      @on('hoverout', @onHoverOut)\n      @on('gridclick', @onGridClick)\n\n  # Default configuration\n  #\n  defaults:\n    lineWidth: 3\n    pointSize: 4\n    lineColors: [\n      '#0b62a4'\n      '#7A92A3'\n      '#4da74d'\n      '#afd8f8'\n      '#edc240'\n      '#cb4b4b'\n      '#9440ed'\n    ]\n    pointStrokeWidths: [1]\n    pointStrokeColors: ['#ffffff']\n    pointFillColors: []\n    smooth: true\n    xLabels: 'auto'\n    xLabelFormat: null\n    xLabelMargin: 24\n    hideHover: false\n\n  # Do any size-related calculations\n  #\n  # @private\n  calc: ->\n    @calcPoints()\n    @generatePaths()\n\n  # calculate series data point coordinates\n  #\n  # @private\n  calcPoints: ->\n    for row in @data\n      row._x = @transX(row.x)\n      row._y = for y in row.y\n        if y? then @transY(y) else y\n      row._ymax = Math.min [@bottom].concat(y for y in row._y when y?)...\n\n  # hit test - returns the index of the row at the given x-coordinate\n  #\n  hitTest: (x) ->\n    return null if @data.length == 0\n    # TODO better search algo\n    for r, index in @data.slice(1)\n      break if x < (r._x + @data[index]._x) / 2\n    index\n\n  # click on grid event handler\n  #\n  # @private\n  onGridClick: (x, y) =>\n    index = @hitTest(x)\n    @fire 'click', index, @data[index].src, x, y\n\n  # hover movement event handler\n  #\n  # @private\n  onHoverMove: (x, y) =>\n    index = @hitTest(x)\n    @displayHoverForRow(index)\n\n  # hover out event handler\n  #\n  # @private\n  onHoverOut: =>\n    if @options.hideHover isnt false\n      @displayHoverForRow(null)\n\n  # display a hover popup over the given row\n  #\n  # @private\n  displayHoverForRow: (index) ->\n    if index?\n      @hover.update(@hoverContentForRow(index)...)\n      @hilight(index)\n    else\n      @hover.hide()\n      @hilight()\n\n  # hover content for a point\n  #\n  # @private\n  hoverContentForRow: (index) ->\n    row = @data[index]\n    content = \"<div class='morris-hover-row-label'>#{row.label}</div>\"\n    for y, j in row.y\n      content += \"\"\"\n        <div class='morris-hover-point' style='color: #{@colorFor(row, j, 'label')}'>\n          #{@options.labels[j]}:\n          #{@yLabelFormat(y)}\n        </div>\n      \"\"\"\n    if typeof @options.hoverCallback is 'function'\n      content = @options.hoverCallback(index, @options, content, row.src)\n    [content, row._x, row._ymax]\n\n\n  # generate paths for series lines\n  #\n  # @private\n  generatePaths: ->\n    @paths = for i in [0...@options.ykeys.length]\n      smooth = if typeof @options.smooth is \"boolean\" then @options.smooth else @options.ykeys[i] in @options.smooth\n      coords = ({x: r._x, y: r._y[i]} for r in @data when r._y[i] isnt undefined)\n\n      if coords.length > 1\n        Morris.Line.createPath coords, smooth, @bottom\n      else\n        null\n\n  # Draws the line chart.\n  #\n  draw: ->\n    @drawXAxis() if @options.axes in [true, 'both', 'x']\n    @drawSeries()\n    if @options.hideHover is false\n      @displayHoverForRow(@data.length - 1)\n\n  # draw the x-axis labels\n  #\n  # @private\n  drawXAxis: ->\n    # draw x axis labels\n    ypos = @bottom + @options.padding / 2\n    prevLabelMargin = null\n    prevAngleMargin = null\n    drawLabel = (labelText, xpos) =>\n      label = @drawXAxisLabel(@transX(xpos), ypos, labelText)\n      textBox = label.getBBox()\n      label.transform(\"r#{-@options.xLabelAngle}\")\n      labelBox = label.getBBox()\n      label.transform(\"t0,#{labelBox.height / 2}...\")\n      if @options.xLabelAngle != 0\n        offset = -0.5 * textBox.width *\n          Math.cos(@options.xLabelAngle * Math.PI / 180.0)\n        label.transform(\"t#{offset},0...\")\n      # try to avoid overlaps\n      labelBox = label.getBBox()\n      if (not prevLabelMargin? or\n          prevLabelMargin >= labelBox.x + labelBox.width or\n          prevAngleMargin? and prevAngleMargin >= labelBox.x) and\n         labelBox.x >= 0 and (labelBox.x + labelBox.width) < @el.width()\n        if @options.xLabelAngle != 0\n          margin = 1.25 * @options.gridTextSize /\n            Math.sin(@options.xLabelAngle * Math.PI / 180.0)\n          prevAngleMargin = labelBox.x - margin\n        prevLabelMargin = labelBox.x - @options.xLabelMargin\n      else\n        label.remove()\n    if @options.parseTime\n      if @data.length == 1 and @options.xLabels == 'auto'\n        # where there's only one value in the series, we can't make a\n        # sensible guess for an x labelling scheme, so just use the original\n        # column label\n        labels = [[@data[0].label, @data[0].x]]\n      else\n        labels = Morris.labelSeries(@xmin, @xmax, @width, @options.xLabels, @options.xLabelFormat)\n    else\n      labels = ([row.label, row.x] for row in @data)\n    labels.reverse()\n    for l in labels\n      drawLabel(l[0], l[1])\n\n  # draw the data series\n  #\n  # @private\n  drawSeries: ->\n    @seriesPoints = []\n    for i in [@options.ykeys.length-1..0]\n      @_drawLineFor i\n    for i in [@options.ykeys.length-1..0]\n      @_drawPointFor i\n\n  _drawPointFor: (index) ->\n    @seriesPoints[index] = []\n    for row in @data\n      circle = null\n      if row._y[index]?\n        circle = @drawLinePoint(row._x, row._y[index], @colorFor(row, index, 'point'), index)\n      @seriesPoints[index].push(circle)\n\n  _drawLineFor: (index) ->\n    path = @paths[index]\n    if path isnt null\n      @drawLinePath path, @colorFor(null, index, 'line'), index\n\n  # create a path for a data series\n  #\n  # @private\n  @createPath: (coords, smooth, bottom) ->\n    path = \"\"\n    grads = Morris.Line.gradients(coords) if smooth\n\n    prevCoord = {y: null}\n    for coord, i in coords\n      if coord.y?\n        if prevCoord.y?\n          if smooth\n            g = grads[i]\n            lg = grads[i - 1]\n            ix = (coord.x - prevCoord.x) / 4\n            x1 = prevCoord.x + ix\n            y1 = Math.min(bottom, prevCoord.y + ix * lg)\n            x2 = coord.x - ix\n            y2 = Math.min(bottom, coord.y - ix * g)\n            path += \"C#{x1},#{y1},#{x2},#{y2},#{coord.x},#{coord.y}\"\n          else\n            path += \"L#{coord.x},#{coord.y}\"\n        else\n          if not smooth or grads[i]?\n            path += \"M#{coord.x},#{coord.y}\"\n      prevCoord = coord\n    return path\n\n  # calculate a gradient at each point for a series of points\n  #\n  # @private\n  @gradients: (coords) ->\n    grad = (a, b) -> (a.y - b.y) / (a.x - b.x)\n    for coord, i in coords\n      if coord.y?\n        nextCoord = coords[i + 1] or {y: null}\n        prevCoord = coords[i - 1] or {y: null}\n        if prevCoord.y? and nextCoord.y?\n          grad(prevCoord, nextCoord)\n        else if prevCoord.y?\n          grad(prevCoord, coord)\n        else if nextCoord.y?\n          grad(coord, nextCoord)\n        else\n          null\n      else\n        null\n\n  # @private\n  hilight: (index) =>\n    if @prevHilight isnt null and @prevHilight isnt index\n      for i in [0..@seriesPoints.length-1]\n        if @seriesPoints[i][@prevHilight]\n          @seriesPoints[i][@prevHilight].animate @pointShrinkSeries(i)\n    if index isnt null and @prevHilight isnt index\n      for i in [0..@seriesPoints.length-1]\n        if @seriesPoints[i][index]\n          @seriesPoints[i][index].animate @pointGrowSeries(i)\n    @prevHilight = index\n\n  colorFor: (row, sidx, type) ->\n    if typeof @options.lineColors is 'function'\n      @options.lineColors.call(@, row, sidx, type)\n    else if type is 'point'\n      @options.pointFillColors[sidx % @options.pointFillColors.length] || @options.lineColors[sidx % @options.lineColors.length]\n    else\n      @options.lineColors[sidx % @options.lineColors.length]\n\n  drawXAxisLabel: (xPos, yPos, text) ->\n    @raphael.text(xPos, yPos, text)\n      .attr('font-size', @options.gridTextSize)\n      .attr('font-family', @options.gridTextFamily)\n      .attr('font-weight', @options.gridTextWeight)\n      .attr('fill', @options.gridTextColor)\n\n  drawLinePath: (path, lineColor, lineIndex) ->\n    @raphael.path(path)\n      .attr('stroke', lineColor)\n      .attr('stroke-width', @lineWidthForSeries(lineIndex))\n\n  drawLinePoint: (xPos, yPos, pointColor, lineIndex) ->\n    @raphael.circle(xPos, yPos, @pointSizeForSeries(lineIndex))\n      .attr('fill', pointColor)\n      .attr('stroke-width', @pointStrokeWidthForSeries(lineIndex))\n      .attr('stroke', @pointStrokeColorForSeries(lineIndex))\n\n  # @private\n  pointStrokeWidthForSeries: (index) ->\n    @options.pointStrokeWidths[index % @options.pointStrokeWidths.length]\n\n  # @private\n  pointStrokeColorForSeries: (index) ->\n    @options.pointStrokeColors[index % @options.pointStrokeColors.length]\n\n  # @private\n  lineWidthForSeries: (index) ->\n    if (@options.lineWidth instanceof Array)\n      @options.lineWidth[index % @options.lineWidth.length]\n    else\n      @options.lineWidth\n\n  # @private\n  pointSizeForSeries: (index) ->\n    if (@options.pointSize instanceof Array)\n      @options.pointSize[index % @options.pointSize.length]\n    else\n      @options.pointSize\n\n  # @private\n  pointGrowSeries: (index) ->\n    Raphael.animation r: @pointSizeForSeries(index) + 3, 25, 'linear'\n\n  # @private\n  pointShrinkSeries: (index) ->\n    Raphael.animation r: @pointSizeForSeries(index), 25, 'linear'\n\n# generate a series of label, timestamp pairs for x-axis labels\n#\n# @private\nMorris.labelSeries = (dmin, dmax, pxwidth, specName, xLabelFormat) ->\n  ddensity = 200 * (dmax - dmin) / pxwidth # seconds per `margin` pixels\n  d0 = new Date(dmin)\n  spec = Morris.LABEL_SPECS[specName]\n  # if the spec doesn't exist, search for the closest one in the list\n  if spec is undefined\n    for name in Morris.AUTO_LABEL_ORDER\n      s = Morris.LABEL_SPECS[name]\n      if ddensity >= s.span\n        spec = s\n        break\n  # if we run out of options, use second-intervals\n  if spec is undefined\n    spec = Morris.LABEL_SPECS[\"second\"]\n  # check if there's a user-defined formatting function\n  if xLabelFormat\n    spec = $.extend({}, spec, {fmt: xLabelFormat})\n  # calculate labels\n  d = spec.start(d0)\n  ret = []\n  while  (t = d.getTime()) <= dmax\n    if t >= dmin\n      ret.push [spec.fmt(d), t]\n    spec.incr(d)\n  return ret\n\n# @private\nminutesSpecHelper = (interval) ->\n  span: interval * 60 * 1000\n  start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours())\n  fmt: (d) -> \"#{Morris.pad2(d.getHours())}:#{Morris.pad2(d.getMinutes())}\"\n  incr: (d) -> d.setUTCMinutes(d.getUTCMinutes() + interval)\n\n# @private\nsecondsSpecHelper = (interval) ->\n  span: interval * 1000\n  start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes())\n  fmt: (d) -> \"#{Morris.pad2(d.getHours())}:#{Morris.pad2(d.getMinutes())}:#{Morris.pad2(d.getSeconds())}\"\n  incr: (d) -> d.setUTCSeconds(d.getUTCSeconds() + interval)\n\nMorris.LABEL_SPECS =\n  \"decade\":\n    span: 172800000000 # 10 * 365 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear() - d.getFullYear() % 10, 0, 1)\n    fmt: (d) -> \"#{d.getFullYear()}\"\n    incr: (d) -> d.setFullYear(d.getFullYear() + 10)\n  \"year\":\n    span: 17280000000 # 365 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), 0, 1)\n    fmt: (d) -> \"#{d.getFullYear()}\"\n    incr: (d) -> d.setFullYear(d.getFullYear() + 1)\n  \"month\":\n    span: 2419200000 # 28 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), d.getMonth(), 1)\n    fmt: (d) -> \"#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}\"\n    incr: (d) -> d.setMonth(d.getMonth() + 1)\n  \"week\":\n    span: 604800000 # 7 * 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate())\n    fmt: (d) -> \"#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}-#{Morris.pad2(d.getDate())}\"\n    incr: (d) -> d.setDate(d.getDate() + 7)\n  \"day\":\n    span: 86400000 # 24 * 60 * 60 * 1000\n    start: (d) -> new Date(d.getFullYear(), d.getMonth(), d.getDate())\n    fmt: (d) -> \"#{d.getFullYear()}-#{Morris.pad2(d.getMonth() + 1)}-#{Morris.pad2(d.getDate())}\"\n    incr: (d) -> d.setDate(d.getDate() + 1)\n  \"hour\": minutesSpecHelper(60)\n  \"30min\": minutesSpecHelper(30)\n  \"15min\": minutesSpecHelper(15)\n  \"10min\": minutesSpecHelper(10)\n  \"5min\": minutesSpecHelper(5)\n  \"minute\": minutesSpecHelper(1)\n  \"30sec\": secondsSpecHelper(30)\n  \"15sec\": secondsSpecHelper(15)\n  \"10sec\": secondsSpecHelper(10)\n  \"5sec\": secondsSpecHelper(5)\n  \"second\": secondsSpecHelper(1)\n\nMorris.AUTO_LABEL_ORDER = [\n  \"decade\", \"year\", \"month\", \"week\", \"day\", \"hour\",\n  \"30min\", \"15min\", \"10min\", \"5min\", \"minute\",\n  \"30sec\", \"15sec\", \"10sec\", \"5sec\", \"second\"\n]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/morris.css",
    "content": ".morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}\n.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/raphael-min.js",
    "content": "// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.2 - JavaScript Vector Library                          │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)    │ \\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com)              │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n!function(a){var b,c,d=\"0.4.2\",e=\"hasOwnProperty\",f=/[\\.\\/]/,g=\"*\",h=function(){},i=function(a,b){return a-b},j={n:{}},k=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=k.listeners(a),j=0,l=[],m={},n=[],o=b;b=a,c=0;for(var p=0,q=h.length;q>p;p++)\"zIndex\"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],\"zIndex\"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k._events=j,k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){if(a=String(a),\"function\"!=typeof b)return function(){};for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,d=d.hasOwnProperty(c[e])&&d[c[e]]||(d[c[e]]={n:{}});for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.f=function(a){var b=[].slice.call(arguments,1);return function(){k.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp(\"(?:\\\\.|\\\\/|^)\"+a+\"(?:\\\\.|\\\\/|$)\").test(b):b},k.nts=function(){return b.split(f)},k.off=k.unbind=function(a,b){if(!a)return void(k._events=j={n:{}});var c,d,h,i,l,m,n,o=a.split(f),p=[j];for(i=0,l=o.length;l>i;i++)for(m=0;m<p.length;m+=h.length-2){if(h=[m,1],c=p[m].n,o[i]!=g)c[o[i]]&&h.push(c[o[i]]);else for(d in c)c[e](d)&&h.push(c[d]);p.splice.apply(p,h)}for(i=0,l=p.length;l>i;i++)for(c=p[i];c.n;){if(b){if(c.f){for(m=0,n=c.f.length;n>m;m++)if(c.f[m]==b){c.f.splice(m,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var q=c.n[d].f;for(m=0,n=q.length;n>m;m++)if(q[m]==b){q.splice(m,1);break}!q.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){return k.unbind(a,c),b.apply(this,arguments)};return k.on(a,c)},k.version=d,k.toString=function(){return\"You are running Eve \"+d},\"undefined\"!=typeof module&&module.exports?module.exports=k:\"undefined\"!=typeof define?define(\"eve\",[],function(){return k}):a.eve=k}(window||this),function(a,b){\"function\"==typeof define&&define.amd?define([\"eve\"],function(c){return b(a,c)}):b(a,a.eve)}(this,function(a,b){function c(a){if(c.is(a,\"function\"))return u?a():b.on(\"raphael.DOMload\",a);if(c.is(a,V))return c._engine.create[D](c,a.splice(0,3+c.is(a[0],T))).add(a);var d=Array.prototype.slice.call(arguments,0);if(c.is(d[d.length-1],\"function\")){var e=d.pop();return u?e.call(c._engine.create[D](c,d)):b.on(\"raphael.DOMload\",function(){e.call(c._engine.create[D](c,d))})}return c._engine.create[D](c,arguments)}function d(a){if(\"function\"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=d(a[c]));return b}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function f(a,b,c){function d(){var f=Array.prototype.slice.call(arguments,0),g=f.join(\"␀\"),h=d.cache=d.cache||{},i=d.count=d.count||[];return h[z](g)?(e(i,g),c?c(h[g]):h[g]):(i.length>=1e3&&delete h[i.shift()],i.push(g),h[g]=a[D](b,f),c?c(h[g]):h[g])}return d}function g(){return this.hex}function h(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function i(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function j(a,b,c,d,e,f,g,h,j){null==j&&(j=1),j=j>1?1:0>j?0:j;for(var k=j/2,l=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;l>p;p++){var q=k*m[p]+k,r=i(q,a,c,e,g),s=i(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return k*o}function k(a,b,c,d,e,f,g,h,i){if(!(0>i||j(a,b,c,d,e,f,g,h)<i)){var k,l=1,m=l/2,n=l-m,o=.01;for(k=j(a,b,c,d,e,f,g,h,n);Q(k-i)>o;)m/=2,n+=(i>k?1:-1)*m,k=j(a,b,c,d,e,f,g,h,n);return n}}function l(a,b,c,d,e,f,g,h){if(!(O(a,c)<P(e,g)||P(a,c)>O(e,g)||O(b,d)<P(f,h)||P(b,d)>O(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+O(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+O(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+O(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+O(f,h).toFixed(2)))return{x:l,y:m}}}}function m(a,b,d){var e=c.bezierBBox(a),f=c.bezierBBox(b);if(!c.isBBoxIntersect(e,f))return d?0:[];for(var g=j.apply(0,a),h=j.apply(0,b),i=O(~~(g/5),1),k=O(~~(h/5),1),m=[],n=[],o={},p=d?0:[],q=0;i+1>q;q++){var r=c.findDotsAtSegment.apply(c,a.concat(q/i));m.push({x:r.x,y:r.y,t:q/i})}for(q=0;k+1>q;q++)r=c.findDotsAtSegment.apply(c,b.concat(q/k)),n.push({x:r.x,y:r.y,t:q/k});for(q=0;i>q;q++)for(var s=0;k>s;s++){var t=m[q],u=m[q+1],v=n[s],w=n[s+1],x=Q(u.x-t.x)<.001?\"y\":\"x\",y=Q(w.x-v.x)<.001?\"y\":\"x\",z=l(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(o[z.x.toFixed(4)]==z.y.toFixed(4))continue;o[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+Q((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+Q((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1.001>=A&&B>=0&&1.001>=B&&(d?p++:p.push({x:z.x,y:z.y,t1:P(A,1),t2:P(B,1)}))}}return p}function n(a,b,d){a=c._path2curve(a),b=c._path2curve(b);for(var e,f,g,h,i,j,k,l,n,o,p=d?0:[],q=0,r=a.length;r>q;q++){var s=a[q];if(\"M\"==s[0])e=i=s[1],f=j=s[2];else{\"C\"==s[0]?(n=[e,f].concat(s.slice(1)),e=n[6],f=n[7]):(n=[e,f,e,f,i,j,i,j],e=i,f=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if(\"M\"==v[0])g=k=v[1],h=l=v[2];else{\"C\"==v[0]?(o=[g,h].concat(v.slice(1)),g=o[6],h=o[7]):(o=[g,h,g,h,k,l,k,l],g=k,h=l);var w=m(n,o,d);if(d)p+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=q,w[x].segment2=t,w[x].bez1=n,w[x].bez2=o;p=p.concat(w)}}}}}return p}function o(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function p(){return this.x+H+this.y+H+this.width+\" × \"+this.height}function q(a,b,c,d,e,f){function g(a){return((l*a+k)*a+j)*a}function h(a,b){var c=i(a,b);return((o*c+n)*c+m)*c}function i(a,b){var c,d,e,f,h,i;for(e=a,i=0;8>i;i++){if(f=g(e)-a,Q(f)<b)return e;if(h=(3*l*e+2*k)*e+j,Q(h)<1e-6)break;e-=f/h}if(c=0,d=1,e=a,c>e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),Q(f-a)<b)return e;a>f?c=e:d=e,e=(d-c)/2+c}return e}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function r(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[z](e)&&(d[_(e)]=a[e],c.push(_(e)));c.sort(lb)}this.anim=d,this.top=c[c.length-1],this.percents=c}function s(a,d,e,f,g,h){e=_(e);var i,j,k,l,m,n,p=a.ms,r={},s={},t={};if(f)for(v=0,x=ic.length;x>v;v++){var u=ic[v];if(u.el.id==d.id&&u.anim==a){u.percent!=e?(ic.splice(v,1),k=1):j=u,d.attr(u.totalOrigin);break}}else f=+s;for(var v=0,x=a.percents.length;x>v;v++){if(a.percents[v]==e||a.percents[v]>f*a.top){e=a.percents[v],m=a.percents[v-1]||0,p=p/a.top*(e-m),l=a.percents[v+1],i=a.anim[e];break}f&&d.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=f,j.start=new Date-j.ms*f;else{for(var y in i)if(i[z](y)&&(db[z](y)||d.paper.customAttributes[z](y)))switch(r[y]=d.attr(y),null==r[y]&&(r[y]=cb[y]),s[y]=i[y],db[y]){case T:t[y]=(s[y]-r[y])/p;break;case\"colour\":r[y]=c.getRGB(r[y]);var A=c.getRGB(s[y]);t[y]={r:(A.r-r[y].r)/p,g:(A.g-r[y].g)/p,b:(A.b-r[y].b)/p};break;case\"path\":var B=Kb(r[y],s[y]),C=B[1];for(r[y]=B[0],t[y]=[],v=0,x=r[y].length;x>v;v++){t[y][v]=[0];for(var D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(C[v][D]-r[y][v][D])/p}break;case\"transform\":var G=d._,H=Pb(G[y],s[y]);if(H)for(r[y]=H.from,s[y]=H.to,t[y]=[],t[y].real=!0,v=0,x=r[y].length;x>v;v++)for(t[y][v]=[r[y][v][0]],D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(s[y][v][D]-r[y][v][D])/p;else{var K=d.matrix||new o,L={_:{transform:G.transform},getBBox:function(){return d.getBBox(1)}};r[y]=[K.a,K.b,K.c,K.d,K.e,K.f],Nb(L,s[y]),s[y]=L._.transform,t[y]=[(L.matrix.a-K.a)/p,(L.matrix.b-K.b)/p,(L.matrix.c-K.c)/p,(L.matrix.d-K.d)/p,(L.matrix.e-K.e)/p,(L.matrix.f-K.f)/p]}break;case\"csv\":var M=I(i[y])[J](w),N=I(r[y])[J](w);if(\"clip-rect\"==y)for(r[y]=N,t[y]=[],v=N.length;v--;)t[y][v]=(M[v]-r[y][v])/p;s[y]=M;break;default:for(M=[][E](i[y]),N=[][E](r[y]),t[y]=[],v=d.paper.customAttributes[y].length;v--;)t[y][v]=((M[v]||0)-(N[v]||0))/p}var O=i.easing,P=c.easing_formulas[O];if(!P)if(P=I(O).match(Z),P&&5==P.length){var Q=P;P=function(a){return q(a,+Q[1],+Q[2],+Q[3],+Q[4],p)}}else P=nb;if(n=i.start||a.start||+new Date,u={anim:a,percent:e,timestamp:n,start:n+(a.del||0),status:0,initstatus:f||0,stop:!1,ms:p,easing:P,from:r,diff:t,to:s,el:d,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:d.attr(),totalOrigin:g},ic.push(u),f&&!j&&!k&&(u.stop=!0,u.start=new Date-p*f,1==ic.length))return kc();k&&(u.start=new Date-u.ms*f),1==ic.length&&jc(kc)}b(\"raphael.anim.start.\"+d.id,d,a)}}function t(a){for(var b=0;b<ic.length;b++)ic[b].el.paper==a&&ic.splice(b--,1)}c.version=\"2.1.2\",c.eve=b;var u,v,w=/[, ]+/,x={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},y=/\\{(\\d+)\\}/g,z=\"hasOwnProperty\",A={doc:document,win:a},B={was:Object.prototype[z].call(A.win,\"Raphael\"),is:A.win.Raphael},C=function(){this.ca=this.customAttributes={}},D=\"apply\",E=\"concat\",F=\"ontouchstart\"in A.win||A.win.DocumentTouch&&A.doc instanceof DocumentTouch,G=\"\",H=\" \",I=String,J=\"split\",K=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\"[J](H),L={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},M=I.prototype.toLowerCase,N=Math,O=N.max,P=N.min,Q=N.abs,R=N.pow,S=N.PI,T=\"number\",U=\"string\",V=\"array\",W=Object.prototype.toString,X=(c._ISURL=/^url\\(['\"]?([^\\)]+?)['\"]?\\)$/i,/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i),Y={NaN:1,Infinity:1,\"-Infinity\":1},Z=/^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,$=N.round,_=parseFloat,ab=parseInt,bb=I.prototype.toUpperCase,cb=c._availableAttrs={\"arrow-end\":\"none\",\"arrow-start\":\"none\",blur:0,\"clip-rect\":\"0 0 1e9 1e9\",cursor:\"default\",cx:0,cy:0,fill:\"#fff\",\"fill-opacity\":1,font:'10px \"Arial\"',\"font-family\":'\"Arial\"',\"font-size\":\"10\",\"font-style\":\"normal\",\"font-weight\":400,gradient:0,height:0,href:\"http://raphaeljs.com/\",\"letter-spacing\":0,opacity:1,path:\"M0,0\",r:0,rx:0,ry:0,src:\"\",stroke:\"#000\",\"stroke-dasharray\":\"\",\"stroke-linecap\":\"butt\",\"stroke-linejoin\":\"butt\",\"stroke-miterlimit\":0,\"stroke-opacity\":1,\"stroke-width\":1,target:\"_blank\",\"text-anchor\":\"middle\",title:\"Raphael\",transform:\"\",width:0,x:0,y:0},db=c._availableAnimAttrs={blur:T,\"clip-rect\":\"csv\",cx:T,cy:T,fill:\"colour\",\"fill-opacity\":T,\"font-size\":T,height:T,opacity:T,path:\"path\",r:T,rx:T,ry:T,stroke:\"colour\",\"stroke-opacity\":T,\"stroke-width\":T,transform:\"transform\",width:T,x:T,y:T},eb=/[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/,fb={hs:1,rg:1},gb=/,?([achlmqrstvxz]),?/gi,hb=/([achlmrqstvz])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/gi,ib=/([rstm])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/gi,jb=/(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/gi,kb=(c._radial_gradient=/^r(?:\\(([^,]+?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*([^\\)]+?)\\))?/,{}),lb=function(a,b){return _(a)-_(b)},mb=function(){},nb=function(a){return a},ob=c._rectPath=function(a,b,c,d,e){return e?[[\"M\",a+e,b],[\"l\",c-2*e,0],[\"a\",e,e,0,0,1,e,e],[\"l\",0,d-2*e],[\"a\",e,e,0,0,1,-e,e],[\"l\",2*e-c,0],[\"a\",e,e,0,0,1,-e,-e],[\"l\",0,2*e-d],[\"a\",e,e,0,0,1,e,-e],[\"z\"]]:[[\"M\",a,b],[\"l\",c,0],[\"l\",0,d],[\"l\",-c,0],[\"z\"]]},pb=function(a,b,c,d){return null==d&&(d=c),[[\"M\",a,b],[\"m\",0,-d],[\"a\",c,d,0,1,1,0,2*d],[\"a\",c,d,0,1,1,0,-2*d],[\"z\"]]},qb=c._getPath={path:function(a){return a.attr(\"path\")},circle:function(a){var b=a.attrs;return pb(b.cx,b.cy,b.r)},ellipse:function(a){var b=a.attrs;return pb(b.cx,b.cy,b.rx,b.ry)},rect:function(a){var b=a.attrs;return ob(b.x,b.y,b.width,b.height,b.r)},image:function(a){var b=a.attrs;return ob(b.x,b.y,b.width,b.height)},text:function(a){var b=a._getBBox();return ob(b.x,b.y,b.width,b.height)},set:function(a){var b=a._getBBox();return ob(b.x,b.y,b.width,b.height)}},rb=c.mapPath=function(a,b){if(!b)return a;var c,d,e,f,g,h,i;for(a=Kb(a),e=0,g=a.length;g>e;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(c._g=A,c.type=A.win.SVGAngle||A.doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\",\"1.1\")?\"SVG\":\"VML\",\"VML\"==c.type){var sb,tb=A.doc.createElement(\"div\");if(tb.innerHTML='<v:shape adj=\"1\"/>',sb=tb.firstChild,sb.style.behavior=\"url(#default#VML)\",!sb||\"object\"!=typeof sb.adj)return c.type=G;tb=null}c.svg=!(c.vml=\"VML\"==c.type),c._Paper=C,c.fn=v=C.prototype=c.prototype,c._id=0,c._oid=0,c.is=function(a,b){return b=M.call(b),\"finite\"==b?!Y[z](+a):\"array\"==b?a instanceof Array:\"null\"==b&&null===a||b==typeof a&&null!==a||\"object\"==b&&a===Object(a)||\"array\"==b&&Array.isArray&&Array.isArray(a)||W.call(a).slice(8,-1).toLowerCase()==b},c.angle=function(a,b,d,e,f,g){if(null==f){var h=a-d,i=b-e;return h||i?(180+180*N.atan2(-i,-h)/S+360)%360:0}return c.angle(a,b,f,g)-c.angle(d,e,f,g)},c.rad=function(a){return a%360*S/180},c.deg=function(a){return 180*a/S%360},c.snapTo=function(a,b,d){if(d=c.is(d,\"finite\")?d:10,c.is(a,V)){for(var e=a.length;e--;)if(Q(a[e]-b)<=d)return a[e]}else{a=+a;var f=b%a;if(d>f)return b-f;if(f>a-d)return b-f+a}return b};c.createUUID=function(a,b){return function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=16*N.random()|0,c=\"x\"==a?b:3&b|8;return c.toString(16)});c.setWindow=function(a){b(\"raphael.setWindow\",c,A.win,a),A.win=a,A.doc=A.win.document,c._engine.initWin&&c._engine.initWin(A.win)};var ub=function(a){if(c.vml){var b,d=/^\\s+|\\s+$/g;try{var e=new ActiveXObject(\"htmlfile\");e.write(\"<body>\"),e.close(),b=e.body}catch(g){b=createPopup().document.body}var h=b.createTextRange();ub=f(function(a){try{b.style.color=I(a).replace(d,G);var c=h.queryCommandValue(\"ForeColor\");return c=(255&c)<<16|65280&c|(16711680&c)>>>16,\"#\"+(\"000000\"+c.toString(16)).slice(-6)}catch(e){return\"none\"}})}else{var i=A.doc.createElement(\"i\");i.title=\"Raphaël Colour Picker\",i.style.display=\"none\",A.doc.body.appendChild(i),ub=f(function(a){return i.style.color=a,A.doc.defaultView.getComputedStyle(i,G).getPropertyValue(\"color\")})}return ub(a)},vb=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},wb=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},xb=function(){return this.hex},yb=function(a,b,d){if(null==b&&c.is(a,\"object\")&&\"r\"in a&&\"g\"in a&&\"b\"in a&&(d=a.b,b=a.g,a=a.r),null==b&&c.is(a,U)){var e=c.getRGB(a);a=e.r,b=e.g,d=e.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},zb=function(a,b,d,e){a*=255,b*=255,d*=255;var f={r:a,g:b,b:d,hex:c.rgb(a,b,d),toString:xb};return c.is(e,\"finite\")&&(f.opacity=e),f};c.color=function(a){var b;return c.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"b\"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):c.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"l\"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(c.is(a,\"string\")&&(a=c.getRGB(a)),c.is(a,\"object\")&&\"r\"in a&&\"g\"in a&&\"b\"in a?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:\"none\"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=xb,a},c.hsb2rgb=function(a,b,c,d){this.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"b\"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Q(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.hsl2rgb=function(a,b,c,d){this.is(a,\"object\")&&\"h\"in a&&\"s\"in a&&\"l\"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-Q(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.rgb2hsb=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=O(a,b,c),g=f-P(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:vb}},c.rgb2hsl=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=O(a,b,c),h=P(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:wb}},c._path2string=function(){return this.join(\",\").replace(gb,\"$1\")};c._preload=function(a,b){var c=A.doc.createElement(\"img\");c.style.cssText=\"position:absolute;left:-9999em;top:-9999em\",c.onload=function(){b.call(this),this.onload=null,A.doc.body.removeChild(this)},c.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(c),c.src=a};c.getRGB=f(function(a){if(!a||(a=I(a)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:g};if(\"none\"==a)return{r:-1,g:-1,b:-1,hex:\"none\",toString:g};!(fb[z](a.toLowerCase().substring(0,2))||\"#\"==a.charAt())&&(a=ub(a));var b,d,e,f,h,i,j=a.match(X);return j?(j[2]&&(e=ab(j[2].substring(5),16),d=ab(j[2].substring(3,5),16),b=ab(j[2].substring(1,3),16)),j[3]&&(e=ab((h=j[3].charAt(3))+h,16),d=ab((h=j[3].charAt(2))+h,16),b=ab((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),\"rgba\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100)),j[5]?(i=j[5][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),(\"deg\"==i[0].slice(-3)||\"°\"==i[0].slice(-1))&&(b/=360),\"hsba\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100),c.hsb2rgb(b,d,e,f)):j[6]?(i=j[6][J](eb),b=_(i[0]),\"%\"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),\"%\"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),\"%\"==i[2].slice(-1)&&(e*=2.55),(\"deg\"==i[0].slice(-3)||\"°\"==i[0].slice(-1))&&(b/=360),\"hsla\"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&\"%\"==i[3].slice(-1)&&(f/=100),c.hsl2rgb(b,d,e,f)):(j={r:b,g:d,b:e,toString:g},j.hex=\"#\"+(16777216|e|d<<8|b<<16).toString(16).slice(1),c.is(f,\"finite\")&&(j.opacity=f),j)):{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:g}},c),c.hsb=f(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=f(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=f(function(a,b,c){return\"#\"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),c.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},c.getColor.reset=function(){delete this.start},c.parsePathString=function(a){if(!a)return null;var b=Ab(a);if(b.arr)return Cb(b.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];return c.is(a,V)&&c.is(a[0],V)&&(e=Cb(a)),e.length||I(a).replace(hb,function(a,b,c){var f=[],g=b.toLowerCase();if(c.replace(jb,function(a,b){b&&f.push(+b)}),\"m\"==g&&f.length>2&&(e.push([b][E](f.splice(0,2))),g=\"l\",b=\"m\"==b?\"l\":\"L\"),\"r\"==g)e.push([b][E](f));else for(;f.length>=d[g]&&(e.push([b][E](f.splice(0,d[g]))),d[g]););}),e.toString=c._path2string,b.arr=Cb(e),e},c.parseTransformString=f(function(a){if(!a)return null;var b=[];return c.is(a,V)&&c.is(a[0],V)&&(b=Cb(a)),b.length||I(a).replace(ib,function(a,c,d){{var e=[];M.call(c)}d.replace(jb,function(a,b){b&&e.push(+b)}),b.push([c][E](e))}),b.toString=c._path2string,b});var Ab=function(a){var b=Ab.ps=Ab.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[z](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};c.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/S;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},c.bezierBBox=function(a,b,d,e,f,g,h,i){c.is(a,\"array\")||(a=[a,b,d,e,f,g,h,i]);var j=Jb.apply(null,a);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},c.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},c.isBBoxIntersect=function(a,b){var d=c.isPointInsideBBox;return d(b,a.x,a.y)||d(b,a.x2,a.y)||d(b,a.x,a.y2)||d(b,a.x2,a.y2)||d(a,b.x,b.y)||d(a,b.x2,b.y)||d(a,b.x,b.y2)||d(a,b.x2,b.y2)||(a.x<b.x2&&a.x>b.x||b.x<a.x2&&b.x>a.x)&&(a.y<b.y2&&a.y>b.y||b.y<a.y2&&b.y>a.y)},c.pathIntersection=function(a,b){return n(a,b)},c.pathIntersectionNumber=function(a,b){return n(a,b,1)},c.isPointInsidePath=function(a,b,d){var e=c.pathBBox(a);return c.isPointInsideBBox(e,b,d)&&n(a,[[\"M\",b,d],[\"H\",e.x2+10]],1)%2==1},c._removedFactory=function(a){return function(){b(\"raphael.log\",null,\"Raphaël: you are calling to method “\"+a+\"” of removed object\",a)}};var Bb=c.pathBBox=function(a){var b=Ab(a);if(b.bbox)return d(b.bbox);if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Kb(a);for(var c,e=0,f=0,g=[],h=[],i=0,j=a.length;j>i;i++)if(c=a[i],\"M\"==c[0])e=c[1],f=c[2],g.push(e),h.push(f);else{var k=Jb(e,f,c[1],c[2],c[3],c[4],c[5],c[6]);g=g[E](k.min.x,k.max.x),h=h[E](k.min.y,k.max.y),e=c[5],f=c[6]}var l=P[D](0,g),m=P[D](0,h),n=O[D](0,g),o=O[D](0,h),p=n-l,q=o-m,r={x:l,y:m,x2:n,y2:o,width:p,height:q,cx:l+p/2,cy:m+q/2};return b.bbox=d(r),r},Cb=function(a){var b=d(a);return b.toString=c._path2string,b},Db=c._pathToRelative=function(a){var b=Ab(a);if(b.rel)return Cb(b.rel);c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a));var d=[],e=0,f=0,g=0,h=0,i=0;\"M\"==a[0][0]&&(e=a[0][1],f=a[0][2],g=e,h=f,i++,d.push([\"M\",e,f]));for(var j=i,k=a.length;k>j;j++){var l=d[j]=[],m=a[j];if(m[0]!=M.call(m[0]))switch(l[0]=M.call(m[0]),l[0]){case\"a\":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case\"v\":l[1]=+(m[1]-f).toFixed(3);break;case\"m\":g=m[1],h=m[2];default:for(var n=1,o=m.length;o>n;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}else{l=d[j]=[],\"m\"==m[0]&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;q>p;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case\"z\":e=g,f=h;break;case\"h\":e+=+d[j][r-1];break;case\"v\":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}return d.toString=c._path2string,b.rel=Cb(d),d},Eb=c._pathToAbsolute=function(a){var b=Ab(a);if(b.abs)return Cb(b.abs);if(c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a)),!a||!a.length)return[[\"M\",0,0]];var d=[],e=0,f=0,g=0,i=0,j=0;\"M\"==a[0][0]&&(e=+a[0][1],f=+a[0][2],g=e,i=f,j++,d[0]=[\"M\",e,f]);for(var k,l,m=3==a.length&&\"M\"==a[0][0]&&\"R\"==a[1][0].toUpperCase()&&\"Z\"==a[2][0].toUpperCase(),n=j,o=a.length;o>n;n++){if(d.push(k=[]),l=a[n],l[0]!=bb.call(l[0]))switch(k[0]=bb.call(l[0]),k[0]){case\"A\":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case\"V\":k[1]=+l[1]+f;break;case\"H\":k[1]=+l[1]+e;break;case\"R\":for(var p=[e,f][E](l.slice(1)),q=2,r=p.length;r>q;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[E](h(p,m));break;case\"M\":g=+l[1]+e,i=+l[2]+f;default:for(q=1,r=l.length;r>q;q++)k[q]=+l[q]+(q%2?e:f)}else if(\"R\"==l[0])p=[e,f][E](l.slice(1)),d.pop(),d=d[E](h(p,m)),k=[\"R\"][E](l.slice(-2));else for(var s=0,t=l.length;t>s;s++)k[s]=l[s];switch(k[0]){case\"Z\":e=g,f=i;break;case\"H\":e=k[1];break;case\"V\":f=k[1];break;case\"M\":g=k[k.length-2],i=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}return d.toString=c._path2string,b.abs=Cb(d),d},Fb=function(a,b,c,d){return[a,b,c,d,c,d]},Gb=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Hb=function(a,b,c,d,e,g,h,i,j,k){var l,m=120*S/180,n=S/180*(+e||0),o=[],p=f(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(a,b,-n),a=l.x,b=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(S/180*e),N.sin(S/180*e),(a-i)/2),r=(b-j)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=N.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(g==h?-1:1)*N.sqrt(Q((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+i)/2,x=v*-d*q/c+(b+j)/2,y=N.asin(((b-x)/d).toFixed(9)),z=N.asin(((j-x)/d).toFixed(9));y=w>a?S-y:y,z=w>i?S-z:z,0>y&&(y=2*S+y),0>z&&(z=2*S+z),h&&y>z&&(y-=2*S),!h&&z>y&&(z-=2*S)}var A=z-y;if(Q(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+c*N.cos(z),j=x+d*N.sin(z),o=Hb(i,j,c,d,e,0,h,C,D,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),K=N.tan(A/4),L=4/3*c*K,M=4/3*d*K,O=[a,b],P=[a+L*G,b-M*F],R=[i+L*I,j-M*H],T=[i,j];if(P[0]=2*O[0]-P[0],P[1]=2*O[1]-P[1],k)return[P,R,T][E](o);o=[P,R,T][E](o).join()[J](\",\");for(var U=[],V=0,W=o.length;W>V;V++)U[V]=V%2?p(o[V-1],o[V],n).y:p(o[V],o[V+1],n).x;return U},Ib=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:R(j,3)*a+3*R(j,2)*i*c+3*j*i*i*e+R(i,3)*g,y:R(j,3)*b+3*R(j,2)*i*d+3*j*i*i*f+R(i,3)*h}},Jb=f(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return Q(m)>\"1e12\"&&(m=.5),Q(n)>\"1e12\"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,Q(m)>\"1e12\"&&(m=.5),Q(n)>\"1e12\"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:P[D](0,p),y:P[D](0,o)},max:{x:O[D](0,p),y:O[D](0,o)}}}),Kb=c._path2curve=f(function(a,b){var c=!b&&Ab(a);if(!b&&c.curve)return Cb(c.curve);for(var d=Eb(a),e=b&&Eb(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b,c){var d,e,f={T:1,Q:1};if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in f)&&(b.qx=b.qy=null),a[0]){case\"M\":b.X=a[1],b.Y=a[2];break;case\"A\":a=[\"C\"][E](Hb[D](0,[b.x,b.y][E](a.slice(1))));break;case\"S\":\"C\"==c||\"S\"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=[\"C\",d,e][E](a.slice(1));break;case\"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=[\"C\"][E](Gb(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case\"Q\":b.qx=a[1],b.qy=a[2],a=[\"C\"][E](Gb(b.x,b.y,a[1],a[2],a[3],a[4]));break;case\"L\":a=[\"C\"][E](Fb(b.x,b.y,a[1],a[2]));break;case\"H\":a=[\"C\"][E](Fb(b.x,b.y,a[1],b.y));break;case\"V\":a=[\"C\"][E](Fb(b.x,b.y,b.x,a[1]));break;case\"Z\":a=[\"C\"][E](Fb(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)a.splice(b++,0,[\"C\"][E](c.splice(0,6)));a.splice(b,1),l=O(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&\"M\"==a[g][0]&&\"M\"!=b[g][0]&&(b.splice(g,0,[\"M\",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],l=O(d.length,e&&e.length||0))},k=0,l=O(d.length,e&&e.length||0);l>k;k++){d[k]=h(d[k],f),i(d,k),e&&(e[k]=h(e[k],g)),e&&i(e,k),j(d,e,f,g,k),j(e,d,g,f,k);var m=d[k],n=e&&e[k],o=m.length,p=e&&n.length;f.x=m[o-2],f.y=m[o-1],f.bx=_(m[o-4])||f.x,f.by=_(m[o-3])||f.y,g.bx=e&&(_(n[p-4])||g.x),g.by=e&&(_(n[p-3])||g.y),g.x=e&&n[p-2],g.y=e&&n[p-1]}return e||(c.curve=Cb(d)),e?[d,e]:d},null,Cb),Lb=(c._parseDots=f(function(a){for(var b=[],d=0,e=a.length;e>d;d++){var f={},g=a[d].match(/^([^:]*):?([\\d\\.]*)/);if(f.color=c.getRGB(g[1]),f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+\"%\"),b.push(f)}for(d=1,e=b.length-1;e>d;d++)if(!b[d].offset){for(var h=_(b[d-1].offset||0),i=0,j=d+1;e>j;j++)if(b[j].offset){i=b[j].offset;break}i||(i=100,j=e),i=_(i);for(var k=(i-h)/(j-d+1);j>d;d++)h+=k,b[d].offset=h+\"%\"}return b}),c._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Mb=(c._tofront=function(a,b){b.top!==a&&(Lb(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},c._toback=function(a,b){b.bottom!==a&&(Lb(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},c._insertafter=function(a,b,c){Lb(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},c._insertbefore=function(a,b,c){Lb(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},c.toMatrix=function(a,b){var c=Bb(a),d={_:{transform:G},getBBox:function(){return c}};return Nb(d,b),d.matrix}),Nb=(c.transformPath=function(a,b){return rb(a,Mb(a,b))},c._extractTransform=function(a,b){if(null==b)return a._.transform;b=I(b).replace(/\\.{3}|\\u2026/g,a._.transform||G);var d=c.parseTransformString(b),e=0,f=0,g=0,h=1,i=1,j=a._,k=new o;if(j.transform=d||[],d)for(var l=0,m=d.length;m>l;l++){var n,p,q,r,s,t=d[l],u=t.length,v=I(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;\"t\"==v&&3==u?w?(n=x.x(0,0),p=x.y(0,0),q=x.x(t[1],t[2]),r=x.y(t[1],t[2]),k.translate(q-n,r-p)):k.translate(t[1],t[2]):\"r\"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),e+=t[1]):4==u&&(w?(q=x.x(t[2],t[3]),r=x.y(t[2],t[3]),k.rotate(t[1],q,r)):k.rotate(t[1],t[2],t[3]),e+=t[1]):\"s\"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(q=x.x(t[3],t[4]),r=x.y(t[3],t[4]),k.scale(t[1],t[2],q,r)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):\"m\"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,1==h&&1==i&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1}),Ob=function(a){var b=a[0];switch(b.toLowerCase()){case\"t\":return[b,0,0];case\"m\":return[b,1,0,0,1,0,0];case\"r\":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case\"s\":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Pb=c._equaliseTransform=function(a,b){b=I(b).replace(/\\.{3}|\\u2026/g,a),a=c.parseTransformString(a)||[],b=c.parseTransformString(b)||[];for(var d,e,f,g,h=O(a.length,b.length),i=[],j=[],k=0;h>k;k++){if(f=a[k]||Ob(b[k]),g=b[k]||Ob(f),f[0]!=g[0]||\"r\"==f[0].toLowerCase()&&(f[2]!=g[2]||f[3]!=g[3])||\"s\"==f[0].toLowerCase()&&(f[3]!=g[3]||f[4]!=g[4]))return;for(i[k]=[],j[k]=[],d=0,e=O(f.length,g.length);e>d;d++)d in f&&(i[k][d]=f[d]),d in g&&(j[k][d]=g[d])\n}return{from:i,to:j}};c._getContainer=function(a,b,d,e){var f;return f=null!=e||c.is(a,\"object\")?a:A.doc.getElementById(a),null!=f?f.tagName?null==b?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:b,height:d}:{container:1,x:a,y:b,width:d,height:e}:void 0},c.pathToRelative=Db,c._engine={},c.path2curve=Kb,c.matrix=function(a,b,c,d,e,f){return new o(a,b,c,d,e,f)},function(a){function b(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var c=N.sqrt(b(a));a[0]&&(a[0]/=c),a[1]&&(a[1]/=c)}a.add=function(a,b,c,d,e,f){var g,h,i,j,k=[[],[],[]],l=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],m=[[a,c,e],[b,d,f],[0,0,1]];for(a&&a instanceof o&&(m=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),g=0;3>g;g++)for(h=0;3>h;h++){for(j=0,i=0;3>i;i++)j+=l[g][i]*m[i][h];k[g][h]=j}this.a=k[0][0],this.b=k[1][0],this.c=k[0][1],this.d=k[1][1],this.e=k[0][2],this.f=k[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new o(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,d){a=c.rad(a),b=b||0,d=d||0;var e=+N.cos(a).toFixed(9),f=+N.sin(a).toFixed(9);this.add(e,f,-f,e,b,d),this.add(1,0,0,1,-b,-d)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[I.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return c.svg?\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return\"progid:DXImageTransform.Microsoft.Matrix(M11=\"+this.get(0)+\", M12=\"+this.get(2)+\", M21=\"+this.get(1)+\", M22=\"+this.get(3)+\", Dx=\"+this.get(4)+\", Dy=\"+this.get(5)+\", sizingmethod='auto expand')\"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];a.scalex=N.sqrt(b(e[0])),d(e[0]),a.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*a.shear,e[1][1]-e[0][1]*a.shear],a.scaley=N.sqrt(b(e[1])),d(e[1]),a.shear/=a.scaley;var f=-e[0][1],g=e[1][1];return 0>g?(a.rotate=c.deg(N.acos(g)),0>f&&(a.rotate=360-a.rotate)):a.rotate=c.deg(N.asin(f)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[J]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?\"t\"+[b.dx,b.dy]:G)+(1!=b.scalex||1!=b.scaley?\"s\"+[b.scalex,b.scaley,0,0]:G)+(b.rotate?\"r\"+[b.rotate,0,0]:G)):\"m\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(o.prototype);var Qb=navigator.userAgent.match(/Version\\/(.*?)\\s/)||navigator.userAgent.match(/Chrome\\/(\\d+)/);v.safari=\"Apple Computer, Inc.\"==navigator.vendor&&(Qb&&Qb[1]<4||\"iP\"==navigator.platform.slice(0,2))||\"Google Inc.\"==navigator.vendor&&Qb&&Qb[1]<8?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:\"none\"});setTimeout(function(){a.remove()})}:mb;for(var Rb=function(){this.returnValue=!1},Sb=function(){return this.originalEvent.preventDefault()},Tb=function(){this.cancelBubble=!0},Ub=function(){return this.originalEvent.stopPropagation()},Vb=function(a){var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,c=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:a.clientX+c,y:a.clientY+b}},Wb=function(){return A.doc.addEventListener?function(a,b,c,d){var e=function(a){var b=Vb(a);return c.call(d,a,b.x,b.y)};if(a.addEventListener(b,e,!1),F&&L[b]){var f=function(b){for(var e=Vb(b),f=b,g=0,h=b.targetTouches&&b.targetTouches.length;h>g;g++)if(b.targetTouches[g].target==a){b=b.targetTouches[g],b.originalEvent=f,b.preventDefault=Sb,b.stopPropagation=Ub;break}return c.call(d,b,e.x,e.y)};a.addEventListener(L[b],f,!1)}return function(){return a.removeEventListener(b,e,!1),F&&L[b]&&a.removeEventListener(L[b],e,!1),!0}}:A.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||A.win.event;var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,e=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Rb,a.stopPropagation=a.stopPropagation||Tb,c.call(d,a,f,g)};a.attachEvent(\"on\"+b,e);var f=function(){return a.detachEvent(\"on\"+b,e),!0};return f}:void 0}(),Xb=[],Yb=function(a){for(var c,d=a.clientX,e=a.clientY,f=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,g=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,h=Xb.length;h--;){if(c=Xb[h],F&&a.touches){for(var i,j=a.touches.length;j--;)if(i=a.touches[j],i.identifier==c.el._drag.id){d=i.clientX,e=i.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var k,l=c.el.node,m=l.nextSibling,n=l.parentNode,o=l.style.display;A.win.opera&&n.removeChild(l),l.style.display=\"none\",k=c.el.paper.getElementByPoint(d,e),l.style.display=o,A.win.opera&&(m?n.insertBefore(l,m):n.appendChild(l)),k&&b(\"raphael.drag.over.\"+c.el.id,c.el,k),d+=g,e+=f,b(\"raphael.drag.move.\"+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},Zb=function(a){c.unmousemove(Yb).unmouseup(Zb);for(var d,e=Xb.length;e--;)d=Xb[e],d.el._drag={},b(\"raphael.drag.end.\"+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,a);Xb=[]},$b=c.el={},_b=K.length;_b--;)!function(a){c[a]=$b[a]=function(b,d){return c.is(b,\"function\")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Wb(this.shape||this.node||A.doc,a,b,d||this)})),this},c[\"un\"+a]=$b[\"un\"+a]=function(b){for(var d=this.events||[],e=d.length;e--;)d[e].name!=a||!c.is(b,\"undefined\")&&d[e].f!=b||(d[e].unbind(),d.splice(e,1),!d.length&&delete this.events);return this}}(K[_b]);$b.data=function(a,d){var e=kb[this.id]=kb[this.id]||{};if(0==arguments.length)return e;if(1==arguments.length){if(c.is(a,\"object\")){for(var f in a)a[z](f)&&this.data(f,a[f]);return this}return b(\"raphael.data.get.\"+this.id,this,e[a],a),e[a]}return e[a]=d,b(\"raphael.data.set.\"+this.id,this,d,a),this},$b.removeData=function(a){return null==a?kb[this.id]={}:kb[this.id]&&delete kb[this.id][a],this},$b.getData=function(){return d(kb[this.id]||{})},$b.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},$b.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var ac=[];$b.drag=function(a,d,e,f,g,h){function i(i){(i.originalEvent||i).preventDefault();var j=i.clientX,k=i.clientY,l=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,m=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=i.identifier,F&&i.touches)for(var n,o=i.touches.length;o--;)if(n=i.touches[o],this._drag.id=n.identifier,n.identifier==this._drag.id){j=n.clientX,k=n.clientY;break}this._drag.x=j+m,this._drag.y=k+l,!Xb.length&&c.mousemove(Yb).mouseup(Zb),Xb.push({el:this,move_scope:f,start_scope:g,end_scope:h}),d&&b.on(\"raphael.drag.start.\"+this.id,d),a&&b.on(\"raphael.drag.move.\"+this.id,a),e&&b.on(\"raphael.drag.end.\"+this.id,e),b(\"raphael.drag.start.\"+this.id,g||f||this,i.clientX+m,i.clientY+l,i)}return this._drag={},ac.push({el:this,start:i}),this.mousedown(i),this},$b.onDragOver=function(a){a?b.on(\"raphael.drag.over.\"+this.id,a):b.unbind(\"raphael.drag.over.\"+this.id)},$b.undrag=function(){for(var a=ac.length;a--;)ac[a].el==this&&(this.unmousedown(ac[a].start),ac.splice(a,1),b.unbind(\"raphael.drag.*.\"+this.id));!ac.length&&c.unmousemove(Yb).unmouseup(Zb),Xb=[]},v.circle=function(a,b,d){var e=c._engine.circle(this,a||0,b||0,d||0);return this.__set__&&this.__set__.push(e),e},v.rect=function(a,b,d,e,f){var g=c._engine.rect(this,a||0,b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.ellipse=function(a,b,d,e){var f=c._engine.ellipse(this,a||0,b||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},v.path=function(a){a&&!c.is(a,U)&&!c.is(a[0],V)&&(a+=G);var b=c._engine.path(c.format[D](c,arguments),this);return this.__set__&&this.__set__.push(b),b},v.image=function(a,b,d,e,f){var g=c._engine.image(this,a||\"about:blank\",b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.text=function(a,b,d){var e=c._engine.text(this,a||0,b||0,I(d));return this.__set__&&this.__set__.push(e),e},v.set=function(a){!c.is(a,\"array\")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new mc(a);return this.__set__&&this.__set__.push(b),b.paper=this,b.type=\"set\",b},v.setStart=function(a){this.__set__=a||this.set()},v.setFinish=function(){var a=this.__set__;return delete this.__set__,a},v.setSize=function(a,b){return c._engine.setSize.call(this,a,b)},v.setViewBox=function(a,b,d,e,f){return c._engine.setViewBox.call(this,a,b,d,e,f)},v.top=v.bottom=null,v.raphael=c;var bc=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(A.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(A.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};v.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=A.doc.elementFromPoint(a,b);if(A.win.opera&&\"svg\"==e.tagName){var f=bc(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},v.getElementsByBBox=function(a){var b=this.set();return this.forEach(function(d){c.isBBoxIntersect(d.getBBox(),a)&&b.push(d)}),b},v.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},v.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},v.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},$b.isPointInside=function(a,b){var d=this.realPath=qb[this.type](this);return this.attr(\"transform\")&&this.attr(\"transform\").length&&(d=c.transformPath(d,this.attr(\"transform\"))),c.isPointInsidePath(d,a,b)},$b.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=qb[this.type](this),b.bboxwt=Bb(this.realPath),b.bboxwt.toString=p,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=qb[this.type](this)),b.bbox=Bb(rb(this.realPath,this.matrix)),b.bbox.toString=p,b.dirty=b.dirtyT=0),b.bbox)},$b.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},$b.glow=function(a){if(\"text\"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr(\"stroke-width\")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||\"#000\"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||qb[this.type](this);f=this.matrix?rb(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:\"none\",\"stroke-linejoin\":\"round\",\"stroke-linecap\":\"round\",\"stroke-width\":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cc=function(a,b,d,e,f,g,h,i,l){return null==l?j(a,b,d,e,f,g,h,i):c.findDotsAtSegment(a,b,d,e,f,g,h,i,k(a,b,d,e,f,g,h,i,l))},dc=function(a,b){return function(d,e,f){d=Kb(d);for(var g,h,i,j,k,l=\"\",m={},n=0,o=0,p=d.length;p>o;o++){if(i=d[o],\"M\"==i[0])g=+i[1],h=+i[2];else{if(j=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6]),n+j>e){if(b&&!m.start){if(k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),l+=[\"C\"+k.start.x,k.start.y,k.m.x,k.m.y,k.x,k.y],f)return l;m.start=l,l=[\"M\"+k.x,k.y+\"C\"+k.n.x,k.n.y,k.end.x,k.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!a&&!b)return k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),{x:k.x,y:k.y,alpha:k.alpha}}n+=j,g=+i[5],h=+i[6]}l+=i.shift()+i}return m.end=l,k=a?n:b?m:c.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),k.alpha&&(k={x:k.x,y:k.y,alpha:k.alpha}),k}},ec=dc(1),fc=dc(),gc=dc(0,1);c.getTotalLength=ec,c.getPointAtLength=fc,c.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return gc(a,b).end;var d=gc(a,c,1);return b?gc(d,b).end:d},$b.getTotalLength=function(){var a=this.getPath();if(a)return this.node.getTotalLength?this.node.getTotalLength():ec(a)},$b.getPointAtLength=function(a){var b=this.getPath();if(b)return fc(b,a)},$b.getPath=function(){var a,b=c._getPath[this.type];if(\"text\"!=this.type&&\"set\"!=this.type)return b&&(a=b(this)),a},$b.getSubpath=function(a,b){var d=this.getPath();if(d)return c.getSubpath(d,a,b)};var hc=c.easing_formulas={linear:function(a){return a},\"<\":function(a){return R(a,1.7)},\">\":function(a){return R(a,.48)},\"<>\":function(a){var b=.48-a/1.04,c=N.sqrt(.1734+b*b),d=c-b,e=R(Q(d),1/3)*(0>d?-1:1),f=-c-b,g=R(Q(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:R(2,-10*a)*N.sin(2*(a-.075)*S/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};hc.easeIn=hc[\"ease-in\"]=hc[\"<\"],hc.easeOut=hc[\"ease-out\"]=hc[\">\"],hc.easeInOut=hc[\"ease-in-out\"]=hc[\"<>\"],hc[\"back-in\"]=hc.backIn,hc[\"back-out\"]=hc.backOut;var ic=[],jc=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},kc=function(){for(var a=+new Date,d=0;d<ic.length;d++){var e=ic[d];if(!e.el.removed&&!e.paused){var f,g,h=a-e.start,i=e.ms,j=e.easing,k=e.from,l=e.diff,m=e.to,n=(e.t,e.el),o={},p={};if(e.initstatus?(h=(e.initstatus*e.anim.top-e.prev)/(e.percent-e.prev)*i,e.status=e.initstatus,delete e.initstatus,e.stop&&ic.splice(d--,1)):e.status=(e.prev+(e.percent-e.prev)*(h/i))/e.anim.top,!(0>h))if(i>h){var q=j(h/i);for(var r in k)if(k[z](r)){switch(db[r]){case T:f=+k[r]+q*i*l[r];break;case\"colour\":f=\"rgb(\"+[lc($(k[r].r+q*i*l[r].r)),lc($(k[r].g+q*i*l[r].g)),lc($(k[r].b+q*i*l[r].b))].join(\",\")+\")\";break;case\"path\":f=[];for(var t=0,u=k[r].length;u>t;t++){f[t]=[k[r][t][0]];for(var v=1,w=k[r][t].length;w>v;v++)f[t][v]=+k[r][t][v]+q*i*l[r][t][v];f[t]=f[t].join(H)}f=f.join(H);break;case\"transform\":if(l[r].real)for(f=[],t=0,u=k[r].length;u>t;t++)for(f[t]=[k[r][t][0]],v=1,w=k[r][t].length;w>v;v++)f[t][v]=k[r][t][v]+q*i*l[r][t][v];else{var x=function(a){return+k[r][a]+q*i*l[r][a]};f=[[\"m\",x(0),x(1),x(2),x(3),x(4),x(5)]]}break;case\"csv\":if(\"clip-rect\"==r)for(f=[],t=4;t--;)f[t]=+k[r][t]+q*i*l[r][t];break;default:var y=[][E](k[r]);for(f=[],t=n.paper.customAttributes[r].length;t--;)f[t]=+y[t]+q*i*l[r][t]}o[r]=f}n.attr(o),function(a,c,d){setTimeout(function(){b(\"raphael.anim.frame.\"+a,c,d)})}(n.id,n,e.anim)}else{if(function(a,d,e){setTimeout(function(){b(\"raphael.anim.frame.\"+d.id,d,e),b(\"raphael.anim.finish.\"+d.id,d,e),c.is(a,\"function\")&&a.call(d)})}(e.callback,n,e.anim),n.attr(m),ic.splice(d--,1),e.repeat>1&&!e.next){for(g in m)m[z](g)&&(p[g]=e.totalOrigin[g]);e.el.attr(p),s(e.anim,e.el,e.anim.percents[0],null,e.totalOrigin,e.repeat-1)}e.next&&!e.stop&&s(e.anim,e.el,e.next,null,e.totalOrigin,e.repeat)}}}c.svg&&n&&n.paper&&n.paper.safari(),ic.length&&jc(kc)},lc=function(a){return a>255?255:0>a?0:a};$b.animateWith=function(a,b,d,e,f,g){var h=this;if(h.removed)return g&&g.call(h),h;var i=d instanceof r?d:c.animation(d,e,f,g);s(i,h,i.percents[0],null,h.attr());for(var j=0,k=ic.length;k>j;j++)if(ic[j].anim==b&&ic[j].el==a){ic[k-1].start=ic[j].start;break}return h},$b.onAnimation=function(a){return a?b.on(\"raphael.anim.frame.\"+this.id,a):b.unbind(\"raphael.anim.frame.\"+this.id),this},r.prototype.delay=function(a){var b=new r(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},r.prototype.repeat=function(a){var b=new r(this.anim,this.ms);return b.del=this.del,b.times=N.floor(O(a,0))||1,b},c.animation=function(a,b,d,e){if(a instanceof r)return a;(c.is(d,\"function\")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[z](g)&&_(g)!=g&&_(g)+\"%\"!=g&&(f=!0,h[g]=a[g]);return f?(d&&(h.easing=d),e&&(h.callback=e),new r({100:h},b)):new r(a,b)},$b.animate=function(a,b,d,e){var f=this;if(f.removed)return e&&e.call(f),f;var g=a instanceof r?a:c.animation(a,b,d,e);return s(g,f,g.percents[0],null,f.attr()),f},$b.setTime=function(a,b){return a&&null!=b&&this.status(a,P(b,a.ms)/a.ms),this},$b.status=function(a,b){var c,d,e=[],f=0;if(null!=b)return s(a,this,-1,P(b,1)),this;for(c=ic.length;c>f;f++)if(d=ic[f],d.el.id==this.id&&(!a||d.anim==a)){if(a)return d.status;e.push({anim:d.anim,status:d.status})}return a?0:e},$b.pause=function(a){for(var c=0;c<ic.length;c++)ic[c].el.id!=this.id||a&&ic[c].anim!=a||b(\"raphael.anim.pause.\"+this.id,this,ic[c].anim)!==!1&&(ic[c].paused=!0);return this},$b.resume=function(a){for(var c=0;c<ic.length;c++)if(ic[c].el.id==this.id&&(!a||ic[c].anim==a)){var d=ic[c];b(\"raphael.anim.resume.\"+this.id,this,d.anim)!==!1&&(delete d.paused,this.status(d.anim,d.status))}return this},$b.stop=function(a){for(var c=0;c<ic.length;c++)ic[c].el.id!=this.id||a&&ic[c].anim!=a||b(\"raphael.anim.stop.\"+this.id,this,ic[c].anim)!==!1&&ic.splice(c--,1);return this},b.on(\"raphael.remove\",t),b.on(\"raphael.clear\",t),$b.toString=function(){return\"Raphaël’s object\"};var mc=function(a){if(this.items=[],this.length=0,this.type=\"set\",a)for(var b=0,c=a.length;c>b;b++)!a[b]||a[b].constructor!=$b.constructor&&a[b].constructor!=mc||(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},nc=mc.prototype;nc.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],!a||a.constructor!=$b.constructor&&a.constructor!=mc||(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},nc.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},nc.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var oc in $b)$b[z](oc)&&(nc[oc]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][D](c,b)})}}(oc));return nc.attr=function(a,b){if(a&&c.is(a,V)&&c.is(a[0],\"object\"))for(var d=0,e=a.length;e>d;d++)this.items[d].attr(a[d]);else for(var f=0,g=this.items.length;g>f;f++)this.items[f].attr(a,b);return this},nc.clear=function(){for(;this.length;)this.pop()},nc.splice=function(a,b){a=0>a?O(this.length+a,0):a,b=O(0,P(this.length-a,b));var c,d=[],e=[],f=[];for(c=2;c<arguments.length;c++)f.push(arguments[c]);for(c=0;b>c;c++)e.push(this[a+c]);for(;c<this.length-a;c++)d.push(this[a+c]);var g=f.length;for(c=0;c<g+d.length;c++)this.items[a+c]=this[a+c]=g>c?f[c]:d[c-g];for(c=this.items.length=this.length-=b-g;this[c];)delete this[c++];return new mc(e)},nc.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},nc.animate=function(a,b,d,e){(c.is(d,\"function\")||!d)&&(e=d||null);var f,g,h=this.items.length,i=h,j=this;if(!h)return this;e&&(g=function(){!--h&&e.call(j)}),d=c.is(d,U)?d:g;var k=c.animation(a,b,d,g);for(f=this.items[--i].animate(k);i--;)this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(f,k,k),this.items[i]&&!this.items[i].removed||h--;return this},nc.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},nc.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=P[D](0,a),b=P[D](0,b),c=O[D](0,c),d=O[D](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},nc.clone=function(a){a=this.paper.set();for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},nc.toString=function(){return\"Raphaël‘s set\"},nc.glow=function(a){var b=this.paper.set();return this.forEach(function(c){var d=c.glow(a);null!=d&&d.forEach(function(a){b.push(a)})}),b},nc.isPointInside=function(a,b){var c=!1;return this.forEach(function(d){return d.isPointInside(a,b)?(c=!0,!1):void 0}),c},c.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face[\"font-family\"];for(var d in a.face)a.face[z](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face[\"units-per-em\"]=ab(a.face[\"units-per-em\"],10);for(var e in a.glyphs)if(a.glyphs[z](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&\"M\"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:\"L\",c:\"C\",x:\"z\",t:\"m\",r:\"l\",v:\"c\"}[a]||\"M\"})+\"z\"},f.k)for(var g in f.k)f[z](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},v.getFont=function(a,b,d,e){if(e=e||\"normal\",d=d||\"normal\",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,c.fonts){var f=c.fonts[a];if(!f){var g=new RegExp(\"(^|\\\\s)\"+a.replace(/[^\\w\\d\\s+!~.:_-]/g,G)+\"(\\\\s|$)\",\"i\");for(var h in c.fonts)if(c.fonts[z](h)&&g.test(h)){f=c.fonts[h];break}}var i;if(f)for(var j=0,k=f.length;k>j&&(i=f[j],i.face[\"font-weight\"]!=b||i.face[\"font-style\"]!=d&&i.face[\"font-style\"]||i.face[\"font-stretch\"]!=e);j++);return i}},v.print=function(a,b,d,e,f,g,h,i){g=g||\"middle\",h=O(P(h||0,1),-1),i=O(P(i||1,3),1);var j,k=I(d)[J](G),l=0,m=0,n=G;if(c.is(e,\"string\")&&(e=this.getFont(e)),e){j=(f||16)/e.face[\"units-per-em\"];for(var o=e.face.bbox[J](w),p=+o[0],q=o[3]-o[1],r=0,s=+o[1]+(\"baseline\"==g?q+ +e.face.descent:q/2),t=0,u=k.length;u>t;t++){if(\"\\n\"==k[t])l=0,x=0,m=0,r+=q*i;else{var v=m&&e.glyphs[k[t-1]]||{},x=e.glyphs[k[t]];l+=m?(v.w||e.w)+(v.k&&v.k[k[t]]||0)+e.w*h:0,m=1}x&&x.d&&(n+=c.transformPath(x.d,[\"t\",l*j,r*j,\"s\",j,j,p,s,\"t\",(a-p)/j,(b-s)/j]))}}return this.path(n).attr({fill:\"#000\",stroke:\"none\"})},v.add=function(a){if(c.is(a,\"array\"))for(var b,d=this.set(),e=0,f=a.length;f>e;e++)b=a[e]||{},x[z](b.type)&&d.push(this[b.type]().attr(b));return d},c.format=function(a,b){var d=c.is(b,V)?[0][E](b):arguments;return a&&c.is(a,U)&&d.length-1&&(a=a.replace(y,function(a,b){return null==d[++b]?G:d[b]})),a||G},c.fullfill=function(){var a=/\\{([^\\}]+)\\}/g,b=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),\"function\"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+\"\"};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),c.ninja=function(){return B.was?A.win.Raphael=B.is:delete Raphael,c},c.st=nc,function(a,b,d){function e(){/in/.test(a.readyState)?setTimeout(e,9):c.eve(\"raphael.DOMload\")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,d=function(){a.removeEventListener(b,d,!1),a.readyState=\"complete\"},!1),a.readyState=\"loading\"),e()}(document,\"DOMContentLoaded\"),b.on(\"raphael.DOMload\",function(){u=!0}),function(){if(c.svg){var a=\"hasOwnProperty\",b=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=c.eve,l=\"\",m=\" \",n=\"http://www.w3.org/1999/xlink\",o={block:\"M5,0 0,2.5 5,5z\",classic:\"M5,0 0,2.5 5,5 3.5,3 3.5,2z\",diamond:\"M2.5,0 5,2.5 2.5,5 0,2.5z\",open:\"M6,1 1,3.5 6,6\",oval:\"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z\"},p={};c.toString=function(){return\"Your browser supports SVG.\\nYou are running Raphaël \"+this.version};var q=function(d,e){if(e){\"string\"==typeof d&&(d=q(d));for(var f in e)e[a](f)&&(\"xlink:\"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),b(e[f])):d.setAttribute(f,b(e[f])))}else d=c._g.doc.createElementNS(\"http://www.w3.org/2000/svg\",d),d.style&&(d.style.webkitTapHighlightColor=\"rgba(0,0,0,0)\");return d},r=function(a,e){var j=\"linear\",k=a.id+e,m=.5,n=.5,o=a.node,p=a.paper,r=o.style,s=c._g.doc.getElementById(k);if(!s){if(e=b(e).replace(c._radial_gradient,function(a,b,c){if(j=\"radial\",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\\s*\\-\\s*/),\"linear\"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(c.rad(t)),f.sin(c.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=c._parseDots(e);if(!w)return null;if(k=k.replace(/[\\(\\)\\s,\\xb0#]/g,\"_\"),a.gradient&&k!=a.gradient.id&&(p.defs.removeChild(a.gradient),delete a.gradient),!a.gradient){s=q(j+\"Gradient\",{id:k}),a.gradient=s,q(s,\"radial\"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:a.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q(\"stop\",{offset:w[x].offset?w[x].offset:x?\"100%\":\"0%\",\"stop-color\":w[x].color||\"#fff\"}))}}return q(o,{fill:\"url(#\"+k+\")\",opacity:1,\"fill-opacity\":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+\" translate(\"+b.x+\",\"+b.y+\")\"})},t=function(d,e,f){if(\"path\"==d.type){for(var g,h,i,j,k,m=b(e).toLowerCase().split(\"-\"),n=d.paper,r=f?\"end\":\"start\",s=d.node,t=d.attrs,u=t[\"stroke-width\"],v=m.length,w=\"classic\",x=3,y=3,z=5;v--;)switch(m[v]){case\"block\":case\"classic\":case\"oval\":case\"diamond\":case\"open\":case\"none\":w=m[v];break;case\"wide\":y=5;break;case\"narrow\":y=2;break;case\"long\":x=5;break;case\"short\":x=2}if(\"open\"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:\"none\",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:\"none\"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},\"none\"!=w){var A=\"raphael-marker-\"+w,B=\"raphael-marker-\"+r+w+x+y;c._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q(\"path\"),{\"stroke-linecap\":\"round\",d:o[w],id:A})),p[A]=1);var C,D=c._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName(\"use\")[0]):(D=q(q(\"marker\"),{id:B,markerHeight:y,markerWidth:x,orient:\"auto\",refX:j,refY:y/2}),C=q(q(\"use\"),{\"xlink:href\":\"#\"+A,transform:(f?\"rotate(180 \"+x/2+\" \"+y/2+\") \":l)+\"scale(\"+x/z+\",\"+y/z+\")\",\"stroke-width\":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*(\"diamond\"!=w&&\"oval\"!=w);f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-E*u):(g=E*u,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k[\"marker-\"+r]=\"url(#\"+B+\")\",(h||g)&&(k.d=c.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+\"Path\"]=A,d._.arrows[r+\"Marker\"]=B,d._.arrows[r+\"dx\"]=E,d._.arrows[r+\"Type\"]=w,d._.arrows[r+\"String\"]=e}else f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-g):(g=0,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+\"Path\"]&&q(s,{d:c.getSubpath(t.path,g,h)}),delete d._.arrows[r+\"Path\"],delete d._.arrows[r+\"Marker\"],delete d._.arrows[r+\"dx\"],delete d._.arrows[r+\"Type\"],delete d._.arrows[r+\"String\"];for(k in p)if(p[a](k)&&!p[k]){var F=c._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={\"\":[0],none:[0],\"-\":[3,1],\".\":[1,1],\"-.\":[3,1,1,1],\"-..\":[3,1,1,1,1,1],\". \":[1,3],\"- \":[4,3],\"--\":[8,3],\"- .\":[4,3,1,3],\"--.\":[8,3,1,3],\"--..\":[8,3,1,3,1,3]},v=function(a,c,d){if(c=u[b(c).toLowerCase()]){for(var e=a.attrs[\"stroke-width\"]||\"1\",f={round:e,square:e,butt:0}[a.attrs[\"stroke-linecap\"]||d[\"stroke-linecap\"]]||0,g=[],h=c.length;h--;)g[h]=c[h]*e+(h%2?1:-1)*f;q(a.node,{\"stroke-dasharray\":g.join(\",\")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility=\"hidden\";for(var o in f)if(f[a](o)){if(!c._availableAttrs[a](o))continue;var p=f[o];switch(k[o]=p,o){case\"blur\":d.blur(p);break;case\"title\":var u=i.getElementsByTagName(\"title\");if(u.length&&(u=u[0]))u.firstChild.nodeValue=p;else{u=q(\"title\");var w=c._g.doc.createTextNode(p);u.appendChild(w),i.appendChild(u)}break;case\"href\":case\"target\":var x=i.parentNode;if(\"a\"!=x.tagName.toLowerCase()){var z=q(\"a\");x.insertBefore(z,i),z.appendChild(i),x=z}\"target\"==o?x.setAttributeNS(n,\"show\",\"blank\"==p?\"new\":p):x.setAttributeNS(n,o,p);break;case\"cursor\":i.style.cursor=p;break;case\"transform\":d.transform(p);break;case\"arrow-start\":t(d,p);break;case\"arrow-end\":t(d,p,1);break;case\"clip-rect\":var A=b(p).split(j);if(4==A.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var B=q(\"clipPath\"),C=q(\"rect\");B.id=c.createUUID(),q(C,{x:A[0],y:A[1],width:A[2],height:A[3]}),B.appendChild(C),d.paper.defs.appendChild(B),q(i,{\"clip-path\":\"url(#\"+B.id+\")\"}),d.clip=C}if(!p){var D=i.getAttribute(\"clip-path\");if(D){var E=c._g.doc.getElementById(D.replace(/(^url\\(#|\\)$)/g,l));E&&E.parentNode.removeChild(E),q(i,{\"clip-path\":l}),delete d.clip}}break;case\"path\":\"path\"==d.type&&(q(i,{d:p?k.path=c._pathToAbsolute(p):\"M0,0\"}),d._.dirty=1,d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case\"width\":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o=\"x\",p=k.x;case\"x\":k.fx&&(p=-k.x-(k.width||0));case\"rx\":if(\"rx\"==o&&\"rect\"==d.type)break;case\"cx\":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case\"height\":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o=\"y\",p=k.y;case\"y\":k.fy&&(p=-k.y-(k.height||0));case\"ry\":if(\"ry\"==o&&\"rect\"==d.type)break;case\"cy\":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case\"r\":\"rect\"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case\"src\":\"image\"==d.type&&i.setAttributeNS(n,\"href\",p);break;case\"stroke-width\":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),d.paper._vbSize&&(p*=d.paper._vbSize),i.setAttribute(o,p),k[\"stroke-dasharray\"]&&v(d,k[\"stroke-dasharray\"],f),d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1));break;case\"stroke-dasharray\":v(d,p,f);break;case\"fill\":var F=b(p).match(c._ISURL);if(F){B=q(\"pattern\");var G=q(\"image\");B.id=c.createUUID(),q(B,{x:0,y:0,patternUnits:\"userSpaceOnUse\",height:1,width:1}),q(G,{x:0,y:0,\"xlink:href\":F[1]}),B.appendChild(G),function(a){c._preload(F[1],function(){var b=this.offsetWidth,c=this.offsetHeight;q(a,{width:b,height:c}),q(G,{width:b,height:c}),d.paper.safari()})}(B),d.paper.defs.appendChild(B),q(i,{fill:\"url(#\"+B.id+\")\"}),d.pattern=B,d.pattern&&s(d);break}var H=c.getRGB(p);if(H.error){if((\"circle\"==d.type||\"ellipse\"==d.type||\"r\"!=b(p).charAt())&&r(d,p)){if(\"opacity\"in k||\"fill-opacity\"in k){var I=c._g.doc.getElementById(i.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,l));if(I){var J=I.getElementsByTagName(\"stop\");q(J[J.length-1],{\"stop-opacity\":(\"opacity\"in k?k.opacity:1)*(\"fill-opacity\"in k?k[\"fill-opacity\"]:1)})}}k.gradient=p,k.fill=\"none\";break}}else delete f.gradient,delete k.gradient,!c.is(k.opacity,\"undefined\")&&c.is(f.opacity,\"undefined\")&&q(i,{opacity:k.opacity}),!c.is(k[\"fill-opacity\"],\"undefined\")&&c.is(f[\"fill-opacity\"],\"undefined\")&&q(i,{\"fill-opacity\":k[\"fill-opacity\"]});H[a](\"opacity\")&&q(i,{\"fill-opacity\":H.opacity>1?H.opacity/100:H.opacity});case\"stroke\":H=c.getRGB(p),i.setAttribute(o,H.hex),\"stroke\"==o&&H[a](\"opacity\")&&q(i,{\"stroke-opacity\":H.opacity>1?H.opacity/100:H.opacity}),\"stroke\"==o&&d._.arrows&&(\"startString\"in d._.arrows&&t(d,d._.arrows.startString),\"endString\"in d._.arrows&&t(d,d._.arrows.endString,1));break;case\"gradient\":(\"circle\"==d.type||\"ellipse\"==d.type||\"r\"!=b(p).charAt())&&r(d,p);break;case\"opacity\":k.gradient&&!k[a](\"stroke-opacity\")&&q(i,{\"stroke-opacity\":p>1?p/100:p});case\"fill-opacity\":if(k.gradient){I=c._g.doc.getElementById(i.getAttribute(\"fill\").replace(/^url\\(#|\\)$/g,l)),I&&(J=I.getElementsByTagName(\"stop\"),q(J[J.length-1],{\"stop-opacity\":p}));break}default:\"font-size\"==o&&(p=e(p,10)+\"px\");var K=o.replace(/(\\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[K]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if(\"text\"==d.type&&(f[a](\"text\")||f[a](\"font\")||f[a](\"font-size\")||f[a](\"x\")||f[a](\"y\"))){var g=d.attrs,h=d.node,i=h.firstChild?e(c._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue(\"font-size\"),10):10;\nif(f[a](\"text\")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=b(f.text).split(\"\\n\"),m=[],n=0,o=k.length;o>n;n++)j=q(\"tspan\"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(c._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName(\"tspan\"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&c.is(r,\"finite\")&&q(m[0],{dy:r})}},z=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.matrix=c.matrix(),this.realPath=null,this.paper=b,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},A=c.el;z.prototype=A,A.constructor=z,c._engine.path=function(a,b){var c=q(\"path\");b.canvas&&b.canvas.appendChild(c);var d=new z(c,b);return d.type=\"path\",w(d,{fill:\"none\",stroke:\"#000\",path:a}),d},A.rotate=function(a,c,e){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([[\"r\",a,c,e]])),this},A.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([[\"s\",a,c,e,f]])),this},A.translate=function(a,c){return this.removed?this:(a=b(a).split(j),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this.transform(this._.transform.concat([[\"t\",a,c]])),this)},A.transform=function(b){var d=this._;if(null==b)return d.transform;if(c._extractTransform(this,b),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[a](\"stroke-width\")?this.attrs[\"stroke-width\"]:1;this.attr({\"stroke-width\":e})}return this},A.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display=\"none\"),this},A.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=\"\"),this},A.remove=function(){if(!this.removed&&this.node.parentNode){var a=this.paper;a.__set__&&a.__set__.exclude(this),k.unbind(\"raphael.*.*.\"+this.id),this.gradient&&a.defs.removeChild(this.gradient),c._tear(this,a),\"a\"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.removeChild(this.node.parentNode):this.node.parentNode.removeChild(this.node);for(var b in this)this[b]=\"function\"==typeof this[b]?c._removedFactory(b):null;this.removed=!0}},A._getBBox=function(){if(\"none\"==this.node.style.display){this.show();var a=!0}var b={};try{b=this.node.getBBox()}catch(c){}finally{b=b||{}}return a&&this.hide(),b},A.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&\"none\"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,\"string\")){if(\"fill\"==b&&\"none\"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if(\"transform\"==b)return this._.transform;for(var g=b.split(j),h={},i=0,l=g.length;l>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],\"function\")?this.paper.customAttributes[b].def:c._availableAttrs[b];return l-1?h:h[g[0]]}if(null==d&&c.is(b,\"array\")){for(h={},i=0,l=b.length;l>i;i++)h[b[i]]=this.attr(b[i]);return h}if(null!=d){var m={};m[b]=d}else null!=b&&c.is(b,\"object\")&&(m=b);for(var n in m)k(\"raphael.attr.\"+n+\".\"+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[a](n)&&m[a](n)&&c.is(this.paper.customAttributes[n],\"function\")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[a](p)&&(m[p]=o[p])}return w(this,m),this},A.toFront=function(){if(this.removed)return this;\"a\"==this.node.parentNode.tagName.toLowerCase()?this.node.parentNode.parentNode.appendChild(this.node.parentNode):this.node.parentNode.appendChild(this.node);var a=this.paper;return a.top!=this&&c._tofront(this,a),this},A.toBack=function(){if(this.removed)return this;var a=this.node.parentNode;\"a\"==a.tagName.toLowerCase()?a.parentNode.insertBefore(this.node.parentNode,this.node.parentNode.parentNode.firstChild):a.firstChild!=this.node&&a.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper);this.paper;return this},A.insertAfter=function(a){if(this.removed)return this;var b=a.node||a[a.length-1].node;return b.nextSibling?b.parentNode.insertBefore(this.node,b.nextSibling):b.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this},A.insertBefore=function(a){if(this.removed)return this;var b=a.node||a[0].node;return b.parentNode.insertBefore(this.node,b),c._insertbefore(this,a,this.paper),this},A.blur=function(a){var b=this;if(0!==+a){var d=q(\"filter\"),e=q(\"feGaussianBlur\");b.attrs.blur=a,d.id=c.createUUID(),q(e,{stdDeviation:+a||1.5}),d.appendChild(e),b.paper.defs.appendChild(d),b._blur=d,q(b.node,{filter:\"url(#\"+d.id+\")\"})}else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute(\"filter\");return b},c._engine.circle=function(a,b,c,d){var e=q(\"circle\");a.canvas&&a.canvas.appendChild(e);var f=new z(e,a);return f.attrs={cx:b,cy:c,r:d,fill:\"none\",stroke:\"#000\"},f.type=\"circle\",q(e,f.attrs),f},c._engine.rect=function(a,b,c,d,e,f){var g=q(\"rect\");a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:b,y:c,width:d,height:e,r:f||0,rx:f||0,ry:f||0,fill:\"none\",stroke:\"#000\"},h.type=\"rect\",q(g,h.attrs),h},c._engine.ellipse=function(a,b,c,d,e){var f=q(\"ellipse\");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:\"none\",stroke:\"#000\"},g.type=\"ellipse\",q(f,g.attrs),g},c._engine.image=function(a,b,c,d,e,f){var g=q(\"image\");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:\"none\"}),g.setAttributeNS(n,\"href\",b),a.canvas&&a.canvas.appendChild(g);var h=new z(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type=\"image\",h},c._engine.text=function(a,b,d,e){var f=q(\"text\");a.canvas&&a.canvas.appendChild(f);var g=new z(f,a);return g.attrs={x:b,y:d,\"text-anchor\":\"middle\",text:e,font:c._availableAttrs.font,stroke:\"none\",fill:\"#000\"},g.type=\"text\",w(g,g.attrs),g},c._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute(\"width\",this.width),this.canvas.setAttribute(\"height\",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a&&a.container,d=a.x,e=a.y,f=a.width,g=a.height;if(!b)throw new Error(\"SVG container not found.\");var h,i=q(\"svg\"),j=\"overflow:hidden;\";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:\"http://www.w3.org/2000/svg\"}),1==b?(i.style.cssText=j+\"position:absolute;left:\"+d+\"px;top:\"+e+\"px\",c._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+\"position:relative\",b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i)),b=new c._Paper,b.width=f,b.height=g,b.canvas=i,b.clear(),b._left=b._top=0,h&&(b.renderfix=function(){}),b.renderfix(),b},c._engine.setViewBox=function(a,b,c,d,e){k(\"raphael.setViewBox\",this,this._viewBox,[a,b,c,d,e]);var f,h,i=g(c/this.width,d/this.height),j=this.top,l=e?\"xMidYMid meet\":\"xMinYMin\";for(null==a?(this._vbSize&&(i=1),delete this._vbSize,f=\"0 0 \"+this.width+m+this.height):(this._vbSize=i,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:l});i&&j;)h=\"stroke-width\"in j.attrs?j.attrs[\"stroke-width\"]:1,j.attr({\"stroke-width\":h}),j._.dirty=1,j._.dirtyT=1,j=j.prev;return this._viewBox=[a,b,c,d,!!e],this},c.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+\"px\"),f&&(this._top=(this._top+f)%1,c.top=this._top+\"px\"))},c.prototype.clear=function(){c.eve(\"raphael.clear\",this);for(var a=this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null,(this.desc=q(\"desc\")).appendChild(c._g.doc.createTextNode(\"Created with Raphaël \"+c.version)),a.appendChild(this.desc),a.appendChild(this.defs=q(\"defs\"))},c.prototype.remove=function(){k(\"raphael.remove\",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null};var B=c.st;for(var C in A)A[a](C)&&!B[a](C)&&(B[C]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(C))}}(),function(){if(c.vml){var a=\"hasOwnProperty\",b=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j=\"fill\",k=/[, ]+/,l=c.eve,m=\" progid:DXImageTransform.Microsoft\",n=\" \",o=\"\",p={M:\"m\",L:\"l\",C:\"c\",Z:\"x\",m:\"t\",l:\"r\",c:\"v\",z:\"x\"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\\S+Blur\\([^\\)]+\\)/g,s=/-?[^,\\s-]+/g,t=\"position:absolute;left:0;top:0;width:1px;height:1px\",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(a){var d=/[ahqstv]/gi,e=c._pathToAbsolute;if(b(a).match(d)&&(e=c._path2curve),d=/[clmz]/g,e==c._pathToAbsolute&&!b(a).match(d)){var g=b(a).replace(q,function(a,b,c){var d=[],e=\"m\"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p[\"m\"==b?\"l\":\"L\"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(a);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),\"z\"==i&&(i=\"x\");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?\",\":o);g.push(i)}return g.join(n)},y=function(a,b,d){var e=c.matrix();return e.rotate(-a,.5,.5),{dx:e.x(b,d),dy:e.y(b,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p=\"\",q=u/b,r=u/c;if(m.visibility=\"hidden\",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+=\"x\"),0>c&&(p+=\" y\")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility=\"visible\"}};c.toString=function(){return\"Your browser doesn’t support SVG. Falling down to VML.\\nYou are running Raphaël \"+this.version};var A=function(a,c,d){for(var e=b(c).toLowerCase().split(\"-\"),f=d?\"end\":\"start\",g=e.length,h=\"classic\",i=\"medium\",j=\"medium\";g--;)switch(e[g]){case\"block\":case\"classic\":case\"oval\":case\"diamond\":case\"open\":case\"none\":h=e[g];break;case\"wide\":case\"narrow\":j=e[g];break;case\"long\":case\"short\":i=e[g]}var k=a.node.getElementsByTagName(\"stroke\")[0];k[f+\"arrow\"]=h,k[f+\"arrowlength\"]=i,k[f+\"arrowwidth\"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[a](t)&&(m[t]=i[t]);if(q&&(m.path=c._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),\"blur\"in i&&e.blur(i.blur),(i.path&&\"path\"==e.type||q)&&(l.path=x(~b(m.path).toLowerCase().indexOf(\"r\")?c._pathToAbsolute(m.path):m.path),\"image\"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),\"transform\"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=c.format(\"ar{0},{1},{2},{3},{4},{1},{4},{1}x\",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u)),e._.dirty=1}if(\"clip-rect\"in i){var G=b(i[\"clip-rect\"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||c._g.doc.createElement(\"div\"),I=H.style;I.clip=c.format(\"rect({1}px {2}px {3}px {0}px)\",G),l.clipRect||(I.position=\"absolute\",I.top=0,I.left=0,I.width=e.paper.width+\"px\",I.height=e.paper.height+\"px\",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i[\"clip-rect\"]||l.clipRect&&(l.clipRect.style.clip=\"auto\")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i[\"font-family\"]&&(J.fontFamily='\"'+i[\"font-family\"].split(\",\")[0].replace(/^['\"]+|['\"]+$/g,o)+'\"'),i[\"font-size\"]&&(J.fontSize=i[\"font-size\"]),i[\"font-weight\"]&&(J.fontWeight=i[\"font-weight\"]),i[\"font-style\"]&&(J.fontStyle=i[\"font-style\"])}if(\"arrow-start\"in i&&A(s,i[\"arrow-start\"]),\"arrow-end\"in i&&A(s,i[\"arrow-end\"],1),null!=i.opacity||null!=i[\"stroke-width\"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i[\"stroke-width\"]||null!=i[\"stroke-opacity\"]||null!=i[\"fill-opacity\"]||null!=i[\"stroke-dasharray\"]||null!=i[\"stroke-miterlimit\"]||null!=i[\"stroke-linejoin\"]||null!=i[\"stroke-linecap\"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),\"image\"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||\"none\"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=b(i.fill).match(c._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type=\"tile\";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],c._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=c.getRGB(i.fill).hex,K.src=o,K.type=\"solid\",c.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||\"r\"!=b(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill=\"none\",m.gradient=i.fill,K.rotate=!1)}if(\"fill-opacity\"in i||\"opacity\"in i){var O=((+m[\"fill-opacity\"]+1||2)-1)*((+m.opacity+1||2)-1)*((+c.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color=\"none\")}l.appendChild(K);var P=l.getElementsByTagName(\"stroke\")&&l.getElementsByTagName(\"stroke\")[0],Q=!1;!P&&(Q=P=F(\"stroke\")),(i.stroke&&\"none\"!=i.stroke||i[\"stroke-width\"]||null!=i[\"stroke-opacity\"]||i[\"stroke-dasharray\"]||i[\"stroke-miterlimit\"]||i[\"stroke-linejoin\"]||i[\"stroke-linecap\"])&&(P.on=!0),(\"none\"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i[\"stroke-width\"])&&(P.on=!1);var R=c.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m[\"stroke-opacity\"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i[\"stroke-width\"])||1);if(O=h(g(O,0),1),null==i[\"stroke-width\"]&&(S=m[\"stroke-width\"]),i[\"stroke-width\"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i[\"stroke-linejoin\"]&&(P.joinstyle=i[\"stroke-linejoin\"]||\"miter\"),P.miterlimit=i[\"stroke-miterlimit\"]||8,i[\"stroke-linecap\"]&&(P.endcap=\"butt\"==i[\"stroke-linecap\"]?\"flat\":\"square\"==i[\"stroke-linecap\"]?\"square\":\"round\"),\"stroke-dasharray\"in i){var T={\"-\":\"shortdash\",\".\":\"shortdot\",\"-.\":\"shortdashdot\",\"-..\":\"shortdashdotdot\",\". \":\"dot\",\"- \":\"dash\",\"--\":\"longdash\",\"- .\":\"dashdot\",\"--.\":\"longdashdot\",\"--..\":\"longdashdotdot\"};P.dashstyle=T[a](i[\"stroke-dasharray\"])?T[i[\"stroke-dasharray\"]]:o}Q&&l.appendChild(P)}if(\"text\"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\\d+(?:\\.\\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m[\"font-family\"]&&(p.fontFamily=m[\"font-family\"]),m[\"font-weight\"]&&(p.fontWeight=m[\"font-weight\"]),m[\"font-style\"]&&(p.fontStyle=m[\"font-style\"]),W=d(m[\"font-size\"]||W&&W[0])||10,p.fontSize=W*V+\"px\",s.textpath.string&&(U.innerHTML=b(s.textpath.string).replace(/</g,\"&#60;\").replace(/&/g,\"&#38;\").replace(/\\n/g,\"<br>\"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,(\"x\"in i||\"y\"in i)&&(s.path.v=c.format(\"m{0},{1}l{2},{1}\",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=[\"x\",\"y\",\"text\",\"font\",\"font-family\",\"font-weight\",\"font-style\",\"font-size\"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m[\"text-anchor\"]){case\"start\":s.textpath.style[\"v-text-align\"]=\"left\",s.bbx=s.W/2;break;case\"end\":s.textpath.style[\"v-text-align\"]=\"right\",s.bbx=-s.W/2;break;default:s.textpath.style[\"v-text-align\"]=\"center\",s.bbx=0}s.textpath.style[\"v-text-kern\"]=!0}},C=function(a,f,g){a.attrs=a.attrs||{};var h=(a.attrs,Math.pow),i=\"linear\",j=\".5 .5\";if(a.attrs.gradient=f,f=b(f).replace(c._radial_gradient,function(a,b,c){return i=\"radial\",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\\s*\\-\\s*/),\"linear\"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=c._parseDots(f);if(!l)return null;if(a=a.shape||a.node,l.length){a.removeChild(g),g.on=!0,g.method=\"none\",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():\"0% \"+g.color,\"radial\"==i?(g.type=\"gradientTitle\",g.focus=\"100%\",g.focussize=\"0 0\",g.focusposition=j,g.angle=0):(g.type=\"gradient\",g.angle=(270-k)%360),a.appendChild(g)}return 1},D=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=b,this.matrix=c.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},E=c.el;D.prototype=E,E.constructor=D,E.transform=function(a){if(null==a)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?\"s\"+[e.scale,e.scale]+\"-1-1t\"+[e.dx,e.dy]:o;e&&(d=a=b(a).replace(/\\.{3}|\\u2026/g,this._.transform||o)),c._extractTransform(this,f+a);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~b(this.attrs.fill).indexOf(\"-\"),l=!b(this.attrs.fill).indexOf(\"url(\");if(h.translate(1,1),l||k||\"image\"==this.type)if(i.matrix=\"1 0 0 1\",i.offset=\"0 0\",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=b(h),i.offset=h.offset();return d&&(this._.transform=d),this},E.rotate=function(a,c,e){if(this.removed)return this;if(null!=a){if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([[\"r\",a,c,e]])),this}},E.translate=function(a,c){return this.removed?this:(a=b(a).split(k),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=c),this.transform(this._.transform.concat([[\"t\",a,c]])),this)},E.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([[\"s\",a,c,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display=\"none\"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),c.eve.unbind(\"raphael.*.*.\"+this.id),c._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null;this.removed=!0}},E.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&\"none\"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,\"string\")){if(b==j&&\"none\"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=b.split(k),h={},i=0,m=g.length;m>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],\"function\")?this.paper.customAttributes[b].def:c._availableAttrs[b];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&c.is(b,\"array\")){for(h={},i=0,m=b.length;m>i;i++)h[b[i]]=this.attr(b[i]);return h}var n;null!=d&&(n={},n[b]=d),null==d&&c.is(b,\"object\")&&(n=b);for(var o in n)l(\"raphael.attr.\"+o+\".\"+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[a](o)&&n[a](o)&&c.is(this.paper.customAttributes[o],\"function\")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[a](q)&&(n[q]=p[q])}n.text&&\"text\"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&c._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper)),this)},E.insertAfter=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[a.length-1]),a.node.nextSibling?a.node.parentNode.insertBefore(this.node,a.node.nextSibling):a.node.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this)},E.insertBefore=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[0]),a.node.parentNode.insertBefore(this.node,a.node),c._insertbefore(this,a,this.paper),this)},E.blur=function(a){var b=this.node.runtimeStyle,d=b.filter;return d=d.replace(r,o),0!==+a?(this.attrs.blur=a,b.filter=d+n+m+\".Blur(pixelradius=\"+(+a||1.5)+\")\",b.margin=c.format(\"-{0}px 0 0 -{0}px\",f(+a||1.5))):(b.filter=d,b.margin=0,delete this.attrs.blur),this},c._engine.path=function(a,b){var c=F(\"shape\");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:\"none\",stroke:\"#000\"};a&&(e.path=a),d.type=\"path\",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F(\"skew\");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},c._engine.rect=function(a,b,d,e,f,g){var h=c._rectPath(b,d,e,f,g),i=a.path(h),j=i.attrs;return i.X=j.x=b,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type=\"rect\",i},c._engine.ellipse=function(a,b,c,d,e){{var f=a.path();f.attrs}return f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type=\"ellipse\",B(f,{cx:b,cy:c,rx:d,ry:e}),f},c._engine.circle=function(a,b,c,d){{var e=a.path();e.attrs}return e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type=\"circle\",B(e,{cx:b,cy:c,r:d}),e},c._engine.image=function(a,b,d,e,f,g){var h=c._rectPath(d,e,f,g),i=a.path(h).attr({stroke:\"none\"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=b,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type=\"image\",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=b,m.type=\"tile\",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},c._engine.text=function(a,d,e,g){var h=F(\"shape\"),i=F(\"path\"),j=F(\"textpath\");d=d||0,e=e||0,g=g||\"\",i.v=c.format(\"m{0},{1}l{2},{1}\",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=b(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin=\"0 0\";var k=new D(h,a),l={fill:\"#000\",stroke:\"none\",font:c._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type=\"text\",k.attrs.text=b(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),a.canvas.appendChild(h);var m=F(\"skew\");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},c._engine.setSize=function(a,b){var d=this.canvas.style;return this.width=a,this.height=b,a==+a&&(a+=\"px\"),b==+b&&(b+=\"px\"),d.width=a,d.height=b,d.clip=\"rect(0 \"+a+\" \"+b+\" 0)\",this._viewBox&&c._engine.setViewBox.apply(this,this._viewBox),this},c._engine.setViewBox=function(a,b,d,e,f){c.eve(\"raphael.setViewBox\",this,this._viewBox,[a,b,d,e,f]);var h,i,j=this.width,k=this.height,l=1/g(d/j,e/k);return f&&(h=k/e,i=j/d,j>d*h&&(a-=(j-d*h)/2/h),k>e*i&&(b-=(k-e*i)/2/i)),this._viewBox=[a,b,d,e,!!f],this._viewBoxShift={dx:-a,dy:-b,scale:l},this.forEach(function(a){a.transform(\"...\")}),this};var F;c._engine.initWin=function(a){var b=a.document;b.createStyleSheet().addRule(\".rvml\",\"behavior:url(#default#VML)\");try{!b.namespaces.rvml&&b.namespaces.add(\"rvml\",\"urn:schemas-microsoft-com:vml\"),F=function(a){return b.createElement(\"<rvml:\"+a+' class=\"rvml\">')}}catch(c){F=function(a){return b.createElement(\"<\"+a+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"rvml\">')}}},c._engine.initWin(c._g.win),c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a.container,d=a.height,e=a.width,f=a.x,g=a.y;if(!b)throw new Error(\"VML container not found.\");var h=new c._Paper,i=h.canvas=c._g.doc.createElement(\"div\"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+=\"px\"),d==+d&&(d+=\"px\"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin=\"0 0\",h.span=c._g.doc.createElement(\"span\"),h.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;\",i.appendChild(h.span),j.cssText=c.format(\"top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden\",e,d),1==b?(c._g.doc.body.appendChild(i),j.left=f+\"px\",j.top=g+\"px\",j.position=\"absolute\"):b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i),h.renderfix=function(){},h},c.prototype.clear=function(){c.eve(\"raphael.clear\",this),this.canvas.innerHTML=o,this.span=c._g.doc.createElement(\"span\"),this.span.style.cssText=\"position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;\",this.canvas.appendChild(this.span),this.bottom=this.top=null},c.prototype.remove=function(){c.eve(\"raphael.remove\",this),this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]=\"function\"==typeof this[a]?c._removedFactory(a):null;return!0};var G=c.st;for(var H in E)E[a](H)&&!G[a](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}}(),B.was?A.win.Raphael=c:Raphael=c,c});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/area/area_spec.coffee",
    "content": "describe 'Morris.Area', ->\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      lineColors: [ '#0b62a4', '#7a92a3']\n      gridLineColor: '#aaa'\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['Y']\n\n    it 'should contain a line path for each line', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should contain a path with stroke-width 0 for each line', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should contain 5 grid lines', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#aaaaaa']\").size().should.equal 5\n\n    it 'should contain 9 text elements', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 9\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['Y']\n      lineColors: [ '#0b62a4', '#7a92a3']\n      lineWidth: 3\n      pointWidths: [5]\n      pointStrokeColors: ['#ffffff']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n\n    it 'should not be cumulative if behaveLikeLine', ->\n      chart = Morris.Area $.extend {}, defaults, behaveLikeLine: true\n      chart.cumulative.should.equal false\n\n    it 'should have a line with transparent fill if behaveLikeLine', ->\n      chart = Morris.Area $.extend {}, defaults, behaveLikeLine: true\n      $('#graph').find(\"path[fill-opacity='0.8']\").size().should.equal 1\n\n    it 'should not have a line with transparent fill', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[fill-opacity='0.8']\").size().should.equal 0\n\n    it 'should have a line with the fill of a modified line color', ->\n      chart = Morris.Area $.extend {}, defaults\n      $('#graph').find(\"path[fill='#0b62a4']\").size().should.equal 0\n      $('#graph').find(\"path[fill='#7a92a3']\").size().should.equal 0\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/bar/bar_spec.coffee",
    "content": "describe 'Morris.Bar', ->\n  describe 'when using vertical grid', ->\n    defaults =\n      element: 'graph'\n      data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n      barColors: [ '#0b62a4', '#7a92a3']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n      verticalGridCondition: (index) -> index % 2\n      verticalGridColor: '#888888'\n      verticalGridOpacity: '0.2'\n\n    describe 'svg structure', ->\n      it 'should contain extra rectangles for vertical grid', ->\n        $('#graph').css('height', '250px').css('width', '800px')\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect\").size().should.equal 6\n\n    describe 'svg attributes', ->\n      it 'should have to bars with verticalGrid.color', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect[fill='#{defaults.verticalGridColor}']\").size().should.equal 2\n      it 'should have to bars with verticalGrid.color', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect[fill-opacity='#{defaults.verticalGridOpacity}']\").size().should.equal 2\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n\n    it 'should contain a rect for each bar', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"rect\").size().should.equal 4\n\n    it 'should contain 5 grid lines', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"path\").size().should.equal 5\n\n    it 'should contain 7 text elements', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 7\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n      barColors: [ '#0b62a4', '#7a92a3']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n\n    it 'should have a bar with the first default color', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"rect[fill='#0b62a4']\").size().should.equal 2\n\n    it 'should have a bar with no stroke', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"rect[stroke='none']\").size().should.equal 4\n\n    it 'should have text with configured fill color', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"text[fill='#888888']\").size().should.equal 7\n\n    it 'should have text with configured font size', ->\n      chart = Morris.Bar $.extend {}, defaults\n      $('#graph').find(\"text[font-size='12px']\").size().should.equal 7\n\n  describe 'when setting bar radius', ->\n    describe 'svg structure', ->\n      defaults =\n        element: 'graph'\n        data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n        xkey: 'x'\n        ykeys: ['y', 'z']\n        labels: ['Y', 'Z']\n        barRadius: [5, 5, 0, 0]\n\n      it 'should contain a path for each bar', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"path\").size().should.equal 9\n\n      it 'should use rects if radius is too big', ->\n        delete defaults.barStyle\n        chart = Morris.Bar $.extend {}, defaults,\n            barRadius: [300, 300, 0, 0]\n        $('#graph').find(\"rect\").size().should.equal 4\n\n  describe 'barSize option', ->\n    describe 'svg attributes', ->\n      defaults =\n        element: 'graph'\n        barSize: 20\n        data: [\n          {x: '2011 Q1', y: 3, z: 2, a: 3}\n          {x: '2011 Q2', y: 2, z: null, a: 1}\n          {x: '2011 Q3', y: 0, z: 2, a: 4}\n          {x: '2011 Q4', y: 2, z: 4, a: 3}\n        ],\n        xkey: 'x'\n        ykeys: ['y', 'z', 'a']\n        labels: ['Y', 'Z', 'A']\n\n      it 'should calc the width if too narrow for barSize', ->\n        $('#graph').width('200px')\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect\").filter((i) ->\n          parseFloat($(@).attr('width'), 10) < 10\n        ).size().should.equal 11\n\n      it 'should set width to @options.barSize if possible', ->\n        chart = Morris.Bar $.extend {}, defaults\n        $('#graph').find(\"rect[width='#{defaults.barSize}']\").size().should.equal 11\n\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/bar/colours.coffee",
    "content": "describe 'Morris.Bar#colorFor', ->\n\n  defaults =\n    element: 'graph'\n    data: [{x: 'foo', y: 2, z: 3}, {x: 'bar', y: 4, z: 6}]\n    xkey: 'x'\n    ykeys: ['y', 'z']\n    labels: ['Y', 'Z']\n\n  it 'should fetch colours from an array', ->\n    chart = Morris.Bar $.extend {}, defaults, barColors: ['#f00', '#0f0', '#00f']\n    chart.colorFor(chart.data[0], 0, 'bar').should.equal '#f00'\n    chart.colorFor(chart.data[0], 0, 'hover').should.equal '#f00'\n    chart.colorFor(chart.data[0], 1, 'bar').should.equal '#0f0'\n    chart.colorFor(chart.data[0], 1, 'hover').should.equal '#0f0'\n    chart.colorFor(chart.data[0], 2, 'bar').should.equal '#00f'\n    chart.colorFor(chart.data[0], 2, 'hover').should.equal '#00f'\n    chart.colorFor(chart.data[0], 3, 'bar').should.equal '#f00'\n    chart.colorFor(chart.data[0], 4, 'hover').should.equal '#0f0'\n\n  it 'should defer to a callback', ->\n    stub = sinon.stub().returns '#f00'\n    chart = Morris.Bar $.extend {}, defaults, barColors: stub\n    stub.reset()\n\n    chart.colorFor(chart.data[0], 0, 'bar')\n    stub.should.have.been.calledWith(\n      {x:0, y:2, label:'foo'},\n      {index:0, key:'y', label:'Y'},\n      'bar')\n\n    chart.colorFor(chart.data[0], 1, 'hover')\n    stub.should.have.been.calledWith(\n      {x:0, y:3, label:'foo'},\n      {index:1, key:'z', label:'Z'},\n      'hover')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/commas_spec.coffee",
    "content": "describe '#commas', ->\n\n  it 'should insert commas into long numbers', ->\n    # zero\n    Morris.commas(0).should.equal(\"0\")\n\n    # positive integers\n    Morris.commas(1).should.equal(\"1\")\n    Morris.commas(12).should.equal(\"12\")\n    Morris.commas(123).should.equal(\"123\")\n    Morris.commas(1234).should.equal(\"1,234\")\n    Morris.commas(12345).should.equal(\"12,345\")\n    Morris.commas(123456).should.equal(\"123,456\")\n    Morris.commas(1234567).should.equal(\"1,234,567\")\n\n    # negative integers\n    Morris.commas(-1).should.equal(\"-1\")\n    Morris.commas(-12).should.equal(\"-12\")\n    Morris.commas(-123).should.equal(\"-123\")\n    Morris.commas(-1234).should.equal(\"-1,234\")\n    Morris.commas(-12345).should.equal(\"-12,345\")\n    Morris.commas(-123456).should.equal(\"-123,456\")\n    Morris.commas(-1234567).should.equal(\"-1,234,567\")\n\n    # positive decimals\n    Morris.commas(1.2).should.equal(\"1.2\")\n    Morris.commas(12.34).should.equal(\"12.34\")\n    Morris.commas(123.456).should.equal(\"123.456\")\n    Morris.commas(1234.56).should.equal(\"1,234.56\")\n\n    # negative decimals\n    Morris.commas(-1.2).should.equal(\"-1.2\")\n    Morris.commas(-12.34).should.equal(\"-12.34\")\n    Morris.commas(-123.456).should.equal(\"-123.456\")\n    Morris.commas(-1234.56).should.equal(\"-1,234.56\")\n\n    # null\n    Morris.commas(null).should.equal('-')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/donut/donut_spec.coffee",
    "content": "describe 'Morris.Donut', ->\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [ {label: 'Jam', value: 25 },\n        {label: 'Frosted', value: 40 },\n        {label: 'Custard', value: 25 },\n        {label: 'Sugar', value: 10 } ]\n      formatter: (y) -> \"#{y}%\"\n\n    it 'should contain 2 paths for each segment', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path\").size().should.equal 8\n\n    it 'should contain 2 text elements for the label', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 2\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [ {label: 'Jam', value: 25 },\n        {label: 'Frosted', value: 40 },\n        {label: 'Custard', value: 25 },\n        {label: 'Sugar', value: 10 } ]\n      formatter: (y) -> \"#{y}%\"\n      colors: [ '#0B62A4', '#3980B5', '#679DC6', '#95BBD7']\n\n    it 'should have a label with font size 15', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text[font-size='15px']\").size().should.equal 1\n\n    it 'should have a label with font size 14', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text[font-size='14px']\").size().should.equal 1\n\n    it 'should have a label with font-weight 800', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"text[font-weight='800']\").size().should.equal 1\n\n    it 'should have 1 paths with fill of first color', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[fill='#0b62a4']\").size().should.equal 1\n\n    it 'should have 1 paths with stroke of first color', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should have a path with white stroke', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#ffffff']\").size().should.equal 4\n\n    it 'should have a path with stroke-width 3', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke-width='3']\").size().should.equal 4\n\n    it 'should have a path with stroke-width 2', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke-width='2']\").size().should.equal 4\n\n  describe 'setData', ->\n    defaults =\n      element: 'graph'\n      data: [ {label: 'One', value: 25 }, {label: \"Two\", value: 30} ]\n      colors: ['#ff0000', '#00ff00', '#0000ff']\n\n    it 'should update the chart', ->\n      chart = Morris.Donut $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0000ff']\").size().should.equal 0\n      chart.setData [\n        { label: 'One', value: 25 }\n        { label: 'Two', value: 30 }\n        { label: 'Three', value: 35 }\n      ]\n      $('#graph').find(\"path[stroke='#0000ff']\").size().should.equal 1\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/grid/auto_grid_lines_spec.coffee",
    "content": "describe 'Morris.Grid#autoGridLines', ->\n\n  beforeEach ->\n    @subject = Morris.Grid.prototype.autoGridLines\n\n  it 'should draw at fixed intervals', ->\n    @subject(0, 4, 5).should.deep.equal [0, 1, 2, 3, 4]\n    @subject(0, 400, 5).should.deep.equal [0, 100, 200, 300, 400]\n\n  it 'should pick intervals that show significant numbers', ->\n    @subject(102, 499, 5).should.deep.equal [100, 200, 300, 400, 500]\n\n  it 'should draw zero when it falls within [ymin..ymax]', ->\n    @subject(-100, 300, 5).should.deep.equal [-100, 0, 100, 200, 300]\n    @subject(-50, 350, 5).should.deep.equal [-125, 0, 125, 250, 375]\n    @subject(-400, 400, 5).should.deep.equal [-400, -200, 0, 200, 400]\n    @subject(100, 500, 5).should.deep.equal [100, 200, 300, 400, 500]\n    @subject(-500, -100, 5).should.deep.equal [-500, -400, -300, -200, -100]\n\n  it 'should generate decimal labels to 2 significant figures', ->\n    @subject(0, 1, 5).should.deep.equal [0, 0.25, 0.5, 0.75, 1]\n    @subject(0.1, 0.5, 5).should.deep.equal [0.1, 0.2, 0.3, 0.4, 0.5]\n\n  it 'should use integer intervals for intervals larger than 1', ->\n    @subject(0, 9, 5).should.deep.equal [0, 3, 6, 9, 12]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/grid/set_data_spec.coffee",
    "content": "describe 'Morris.Grid#setData', ->\n\n  it 'should not alter user-supplied data', ->\n    my_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    expected_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    Morris.Line\n      element: 'graph'\n      data: my_data\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n    my_data.should.deep.equal expected_data\n\n  describe 'ymin/ymax', ->\n    beforeEach ->\n      @defaults =\n        element: 'graph'\n        xkey: 'x'\n        ykeys: ['y', 'z']\n        labels: ['y', 'z']\n\n    it 'should use a user-specified minimum and maximum value', ->\n      line = Morris.Line $.extend @defaults,\n        data: [{x: 1, y: 1}]\n        ymin: 10\n        ymax: 20\n      line.ymin.should.equal 10\n      line.ymax.should.equal 20\n\n    describe 'auto', ->\n\n      it 'should automatically calculate the minimum and maximum value', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}]\n          ymin: 'auto'\n          ymax: 'auto'\n        line.ymin.should.equal 10\n        line.ymax.should.equal 15\n\n      it 'should automatically calculate the minimum and maximum value given no y data', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}]\n          ymin: 'auto'\n          ymax: 'auto'\n        line.ymin.should.equal 0\n        line.ymax.should.equal 1\n\n    describe 'auto [n]', ->\n\n      it 'should automatically calculate the minimum and maximum value', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}]\n          ymin: 'auto 11'\n          ymax: 'auto 13'\n        line.ymin.should.equal 10\n        line.ymax.should.equal 15\n\n      it 'should automatically calculate the minimum and maximum value given no data', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}]\n          ymin: 'auto 11'\n          ymax: 'auto 13'\n        line.ymin.should.equal 11\n        line.ymax.should.equal 13\n\n      it 'should use a user-specified minimum and maximum value', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1, y: 10}, {x: 2, y: 15}, {x: 3, y: null}, {x: 4}]\n          ymin: 'auto 5'\n          ymax: 'auto 20'\n        line.ymin.should.equal 5\n        line.ymax.should.equal 20\n\n      it 'should use a user-specified minimum and maximum value given no data', ->\n        line = Morris.Line $.extend @defaults,\n          data: [{x: 1}, {x: 2}, {x: 3}, {x: 4}]\n          ymin: 'auto 5'\n          ymax: 'auto 20'\n        line.ymin.should.equal 5\n        line.ymax.should.equal 20\n\n  describe 'xmin/xmax', ->\n\n    it 'should calculate the horizontal range', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [{x: 2, y: 2}, {x: 1, y: 1}, {x: 4, y: 4}, {x: 3, y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.xmin.should == 1\n      line.xmax.should == 4\n\n    it \"should pad the range if there's only one data point\", ->\n      line = Morris.Line\n        element: 'graph'\n        data: [{x: 2, y: 2}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.xmin.should == 1\n      line.xmax.should == 3\n\n  describe 'sorting', ->\n\n    it 'should sort data when parseTime is true', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [\n          {x: '2012 Q1', y: 2},\n          {x: '2012 Q3', y: 1},\n          {x: '2012 Q4', y: 4},\n          {x: '2012 Q2', y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.data.map((row) -> row.label).should.deep.equal ['2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4']\n\n    it 'should not sort data when parseTime is false', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [{x: 1, y: 2}, {x: 4, y: 1}, {x: 3, y: 4}, {x: 2, y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n        parseTime: false\n      line.data.map((row) -> row.label).should.deep.equal [1, 4, 3, 2]\n\n  describe 'timestamp data', ->\n\n    it 'should generate default labels for timestamp x-values', ->\n      d = [\n        new Date 2012, 0, 1\n        new Date 2012, 0, 2\n        new Date 2012, 0, 3\n        new Date 2012, 0, 4\n      ]\n      line = Morris.Line\n        element: 'graph'\n        data: [\n          {x: d[0].getTime(), y: 2},\n          {x: d[1].getTime(), y: 1},\n          {x: d[2].getTime(), y: 4},\n          {x: d[3].getTime(), y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n      line.data.map((row) -> row.label).should.deep.equal d.map((t) -> t.toString())\n\n    it 'should use a user-supplied formatter for labels', ->\n      line = Morris.Line\n        element: 'graph'\n        data: [\n          {x: new Date(2012, 0, 1).getTime(), y: 2},\n          {x: new Date(2012, 0, 2).getTime(), y: 1},\n          {x: new Date(2012, 0, 3).getTime(), y: 4},\n          {x: new Date(2012, 0, 4).getTime(), y: 3}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['y']\n        dateFormat: (ts) ->\n          date = new Date(ts)\n          \"#{date.getFullYear()}-#{date.getMonth()+1}-#{date.getDate()}\"\n      line.data.map((row) -> row.label).should.deep.equal ['2012-1-1', '2012-1-2', '2012-1-3', '2012-1-4']\n\n  it 'should parse y-values in strings', ->\n    line = Morris.Line\n      element: 'graph'\n      data: [{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.ymin.should == 12\n    line.ymax.should == 16\n    line.data.map((row) -> row.y).should.deep.equal [[13.5], [12], [16], [14]]\n\n  it 'should clear the chart when empty data is supplied', ->\n    line = Morris.Line\n      element: 'graph',\n      data: [{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.data.length.should.equal 4\n    line.setData([])\n    line.data.length.should.equal 0\n    line.setData([{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}])\n    line.data.length.should.equal 4\n\n  it 'should be able to add data if the chart is initialised with empty data', ->\n    line = Morris.Line\n      element: 'graph',\n      data: []\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.data.length.should.equal 0\n    line.setData([{x: 2, y: '12'}, {x: 1, y: '13.5'}, {x: 4, y: '14'}, {x: 3, y: '16'}])\n    line.data.length.should.equal 4\n\n  it 'should automatically choose significant numbers for y-labels', ->\n    line = Morris.Line\n      element: 'graph',\n      data: [{x: 1, y: 0}, {x: 2, y: 3600}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['y']\n    line.grid.should == [0, 1000, 2000, 3000, 4000]\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/grid/y_label_format_spec.coffee",
    "content": "describe 'Morris.Grid#yLabelFormat', ->\n\n  it 'should use custom formatter for y labels', ->\n    formatter = (label) ->\n      flabel = parseFloat(label) / 1000\n      \"#{flabel.toFixed(1)}k\"\n    line = Morris.Line\n      element: 'graph'\n      data: [{x: 1, y: 1500}, {x: 2, y: 2500}]\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n      preUnits: \"$\"\n      yLabelFormat: formatter\n    line.yLabelFormat(1500).should.equal \"1.5k\"\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/hover_spec.coffee",
    "content": "describe \"Morris.Hover\", ->\n\n  describe \"with dummy content\", ->\n\n    beforeEach ->\n      parent = $('<div style=\"width:200px;height:180px\"></div>')\n        .appendTo($('#test'))\n      @hover = new Morris.Hover(parent:  parent)\n      @element = $('#test .morris-hover')\n\n    it \"should initialise a hidden, empty popup\", ->\n      @element.should.exist\n      @element.should.be.hidden\n      @element.should.be.empty\n\n    describe \"#show\", ->\n      it \"should show the popup\", ->\n        @hover.show()\n        @element.should.be.visible\n\n    describe \"#hide\", ->\n      it \"should hide the popup\", ->\n        @hover.show()\n        @hover.hide()\n        @element.should.be.hidden\n\n    describe \"#html\", ->\n      it \"should replace the contents of the element\", ->\n        @hover.html('<div>Foobarbaz</div>')\n        @element.should.have.html('<div>Foobarbaz</div>')\n\n    describe \"#moveTo\", ->\n      beforeEach ->\n        @hover.html('<div style=\"width:84px;height:84px\"></div>')\n\n      it \"should place the popup directly above the given point\", ->\n        @hover.moveTo(100, 150)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '40px')\n\n      it \"should place the popup below the given point if it does not fit above\", ->\n        @hover.moveTo(100, 50)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '60px')\n\n      it \"should center the popup vertically if it will not fit above or below\", ->\n        @hover.moveTo(100, 100)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '40px')\n\n      it \"should center the popup vertically if no y value is supplied\", ->\n        @hover.moveTo(100)\n        @element.should.have.css('left', '50px')\n        @element.should.have.css('top', '40px')\n\n  describe \"#update\", ->\n    it \"should update content, show and reposition the popup\", ->\n      hover = new Morris.Hover(parent: $('#test'))\n      html = \"<div style='width:84px;height:84px'>Hello, Everyone!</div>\"\n      hover.update(html, 150, 200)\n      el = $('#test .morris-hover')\n      el.should.have.css('left', '100px')\n      el.should.have.css('top', '90px')\n      el.should.have.text('Hello, Everyone!')\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/label_series_spec.coffee",
    "content": "describe '#labelSeries', ->\n\n  it 'should generate decade intervals', ->\n    Morris.labelSeries(\n      new Date(1952, 0, 1).getTime(),\n      new Date(2012, 0, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"1960\", new Date(1960, 0, 1).getTime()],\n      [\"1970\", new Date(1970, 0, 1).getTime()],\n      [\"1980\", new Date(1980, 0, 1).getTime()],\n      [\"1990\", new Date(1990, 0, 1).getTime()],\n      [\"2000\", new Date(2000, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(1952, 3, 1).getTime(),\n      new Date(2012, 3, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"1960\", new Date(1960, 0, 1).getTime()],\n      [\"1970\", new Date(1970, 0, 1).getTime()],\n      [\"1980\", new Date(1980, 0, 1).getTime()],\n      [\"1990\", new Date(1990, 0, 1).getTime()],\n      [\"2000\", new Date(2000, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()]\n    ])\n\n  it 'should generate year intervals', ->\n    Morris.labelSeries(\n      new Date(2007, 0, 1).getTime(),\n      new Date(2012, 0, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2007\", new Date(2007, 0, 1).getTime()],\n      [\"2008\", new Date(2008, 0, 1).getTime()],\n      [\"2009\", new Date(2009, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()],\n      [\"2011\", new Date(2011, 0, 1).getTime()],\n      [\"2012\", new Date(2012, 0, 1).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(2007, 3, 1).getTime(),\n      new Date(2012, 3, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2008\", new Date(2008, 0, 1).getTime()],\n      [\"2009\", new Date(2009, 0, 1).getTime()],\n      [\"2010\", new Date(2010, 0, 1).getTime()],\n      [\"2011\", new Date(2011, 0, 1).getTime()],\n      [\"2012\", new Date(2012, 0, 1).getTime()]\n    ])\n\n  it 'should generate month intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 5, 1).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2012-01\", new Date(2012, 0, 1).getTime()],\n      [\"2012-02\", new Date(2012, 1, 1).getTime()],\n      [\"2012-03\", new Date(2012, 2, 1).getTime()],\n      [\"2012-04\", new Date(2012, 3, 1).getTime()],\n      [\"2012-05\", new Date(2012, 4, 1).getTime()],\n      [\"2012-06\", new Date(2012, 5, 1).getTime()]\n    ])\n\n  it 'should generate week intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 1, 10).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2012-01-01\", new Date(2012, 0, 1).getTime()],\n      [\"2012-01-08\", new Date(2012, 0, 8).getTime()],\n      [\"2012-01-15\", new Date(2012, 0, 15).getTime()],\n      [\"2012-01-22\", new Date(2012, 0, 22).getTime()],\n      [\"2012-01-29\", new Date(2012, 0, 29).getTime()],\n      [\"2012-02-05\", new Date(2012, 1, 5).getTime()]\n    ])\n    \n  it 'should generate day intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 0, 6).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"2012-01-01\", new Date(2012, 0, 1).getTime()],\n      [\"2012-01-02\", new Date(2012, 0, 2).getTime()],\n      [\"2012-01-03\", new Date(2012, 0, 3).getTime()],\n      [\"2012-01-04\", new Date(2012, 0, 4).getTime()],\n      [\"2012-01-05\", new Date(2012, 0, 5).getTime()],\n      [\"2012-01-06\", new Date(2012, 0, 6).getTime()]\n    ])\n\n  it 'should generate hour intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1, 0).getTime(),\n      new Date(2012, 0, 1, 5).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 0, 1, 0).getTime()],\n      [\"01:00\", new Date(2012, 0, 1, 1).getTime()],\n      [\"02:00\", new Date(2012, 0, 1, 2).getTime()],\n      [\"03:00\", new Date(2012, 0, 1, 3).getTime()],\n      [\"04:00\", new Date(2012, 0, 1, 4).getTime()],\n      [\"05:00\", new Date(2012, 0, 1, 5).getTime()]\n    ])\n\n  it 'should generate half-hour intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1, 0, 0).getTime(),\n      new Date(2012, 0, 1, 2, 30).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 0, 1, 0, 0).getTime()],\n      [\"00:30\", new Date(2012, 0, 1, 0, 30).getTime()],\n      [\"01:00\", new Date(2012, 0, 1, 1, 0).getTime()],\n      [\"01:30\", new Date(2012, 0, 1, 1, 30).getTime()],\n      [\"02:00\", new Date(2012, 0, 1, 2, 0).getTime()],\n      [\"02:30\", new Date(2012, 0, 1, 2, 30).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(2012, 4, 12, 0, 0).getTime(),\n      new Date(2012, 4, 12, 2, 30).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 4, 12, 0, 0).getTime()],\n      [\"00:30\", new Date(2012, 4, 12, 0, 30).getTime()],\n      [\"01:00\", new Date(2012, 4, 12, 1, 0).getTime()],\n      [\"01:30\", new Date(2012, 4, 12, 1, 30).getTime()],\n      [\"02:00\", new Date(2012, 4, 12, 2, 0).getTime()],\n      [\"02:30\", new Date(2012, 4, 12, 2, 30).getTime()]\n    ])\n\n  it 'should generate fifteen-minute intervals', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1, 0, 0).getTime(),\n      new Date(2012, 0, 1, 1, 15).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 0, 1, 0, 0).getTime()],\n      [\"00:15\", new Date(2012, 0, 1, 0, 15).getTime()],\n      [\"00:30\", new Date(2012, 0, 1, 0, 30).getTime()],\n      [\"00:45\", new Date(2012, 0, 1, 0, 45).getTime()],\n      [\"01:00\", new Date(2012, 0, 1, 1, 0).getTime()],\n      [\"01:15\", new Date(2012, 0, 1, 1, 15).getTime()]\n    ])\n    Morris.labelSeries(\n      new Date(2012, 4, 12, 0, 0).getTime(),\n      new Date(2012, 4, 12, 1, 15).getTime(),\n      1000\n    ).should.deep.equal([\n      [\"00:00\", new Date(2012, 4, 12, 0, 0).getTime()],\n      [\"00:15\", new Date(2012, 4, 12, 0, 15).getTime()],\n      [\"00:30\", new Date(2012, 4, 12, 0, 30).getTime()],\n      [\"00:45\", new Date(2012, 4, 12, 0, 45).getTime()],\n      [\"01:00\", new Date(2012, 4, 12, 1, 0).getTime()],\n      [\"01:15\", new Date(2012, 4, 12, 1, 15).getTime()]\n    ])\n\n  it 'should override automatic intervals', ->\n    Morris.labelSeries(\n      new Date(2011, 11, 12).getTime(),\n      new Date(2012, 0, 12).getTime(),\n      1000,\n      \"year\"\n    ).should.deep.equal([\n      [\"2012\", new Date(2012, 0, 1).getTime()]\n    ])\n\n  it 'should apply custom formatters', ->\n    Morris.labelSeries(\n      new Date(2012, 0, 1).getTime(),\n      new Date(2012, 0, 6).getTime(),\n      1000,\n      \"day\",\n      (d) -> \"#{d.getMonth()+1}/#{d.getDate()}/#{d.getFullYear()}\"\n    ).should.deep.equal([\n      [\"1/1/2012\", new Date(2012, 0, 1).getTime()],\n      [\"1/2/2012\", new Date(2012, 0, 2).getTime()],\n      [\"1/3/2012\", new Date(2012, 0, 3).getTime()],\n      [\"1/4/2012\", new Date(2012, 0, 4).getTime()],\n      [\"1/5/2012\", new Date(2012, 0, 5).getTime()],\n      [\"1/6/2012\", new Date(2012, 0, 6).getTime()]\n    ])\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/line/line_spec.coffee",
    "content": "describe 'Morris.Line', ->\n\n  it 'should raise an error when the placeholder element is not found', ->\n    my_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    fn = ->\n      Morris.Line(\n        element: \"thisplacedoesnotexist\"\n        data: my_data\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n      )\n    fn.should.throw(/Graph container element not found/)\n\n  it 'should make point styles customizable', ->\n    my_data = [{x: 1, y: 1}, {x: 2, y: 2}]\n    red = '#ff0000'\n    blue = '#0000ff'\n    chart = Morris.Line\n      element: 'graph'\n      data: my_data\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n      pointStrokeColors: [red, blue]\n      pointStrokeWidths: [1, 2]\n      pointFillColors: [null, red]\n    chart.pointStrokeWidthForSeries(0).should.equal 1\n    chart.pointStrokeColorForSeries(0).should.equal red\n    chart.pointStrokeWidthForSeries(1).should.equal 2\n    chart.pointStrokeColorForSeries(1).should.equal blue\n    chart.colorFor(chart.data[0], 0, 'point').should.equal chart.colorFor(chart.data[0], 0, 'line')\n    chart.colorFor(chart.data[1], 1, 'point').should.equal red\n\n  describe 'generating column labels', ->\n\n    it 'should use user-supplied x value strings by default', ->\n      chart = Morris.Line\n        element: 'graph'\n        data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n      chart.data.map((x) -> x.label).should == ['2012 Q1', '2012 Q2']\n\n    it 'should use a default format for timestamp x-values', ->\n      d1 = new Date(2012, 0, 1)\n      d2 = new Date(2012, 0, 2)\n      chart = Morris.Line\n        element: 'graph'\n        data: [{x: d1.getTime(), y: 1}, {x: d2.getTime(), y: 1}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n      chart.data.map((x) -> x.label).should == [d2.toString(), d1.toString()]\n\n    it 'should use user-defined formatters', ->\n      d = new Date(2012, 0, 1)\n      chart = Morris.Line\n        element: 'graph'\n        data: [{x: d.getTime(), y: 1}, {x: '2012-01-02', y: 1}]\n        xkey: 'x'\n        ykeys: ['y']\n        labels: ['dontcare']\n        dateFormat: (d) ->\n          x = new Date(d)\n          \"#{x.getYear()}/#{x.getMonth()+1}/#{x.getDay()}\"\n      chart.data.map((x) -> x.label).should == ['2012/1/1', '2012/1/2']\n\n  describe 'rendering lines', ->\n    beforeEach ->\n      @defaults =\n        element: 'graph'\n        data: [{x:0, y:1, z:0}, {x:1, y:0, z:1}, {x:2, y:1, z:0}, {x:3, y:0, z:1}, {x:4, y:1, z:0}]\n        xkey: 'x'\n        ykeys: ['y', 'z']\n        labels: ['y', 'z']\n        lineColors: ['#abcdef', '#fedcba']\n        smooth: true\n\n    shouldHavePath = (regex, color = '#abcdef') ->\n      # Matches an SVG path element within the rendered chart.\n      #\n      # Sneakily uses line colors to differentiate between paths within\n      # the chart.\n      $('#graph').find(\"path[stroke='#{color}']\").attr('d').should.match regex\n\n    it 'should generate smooth lines when options.smooth is true', ->\n      Morris.Line @defaults\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(C[\\d\\.]+(,[\\d\\.]+){5}){4}/\n\n    it 'should generate jagged lines when options.smooth is false', ->\n      Morris.Line $.extend(@defaults, smooth: false)\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(L[\\d\\.]+,[\\d\\.]+){4}/\n\n    it 'should generate smooth/jagged lines according to the value for each series when options.smooth is an array', ->\n      Morris.Line $.extend(@defaults, smooth: ['y'])\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(C[\\d\\.]+(,[\\d\\.]+){5}){4}/, '#abcdef'\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(L[\\d\\.]+,[\\d\\.]+){4}/, '#fedcba'\n\n    it 'should ignore undefined values', ->\n      @defaults.data[2].y = undefined\n      Morris.Line @defaults\n      shouldHavePath /M[\\d\\.]+,[\\d\\.]+(C[\\d\\.]+(,[\\d\\.]+){5}){3}/\n\n    it 'should break the line at null values', ->\n      @defaults.data[2].y = null\n      Morris.Line @defaults\n      shouldHavePath /(M[\\d\\.]+,[\\d\\.]+C[\\d\\.]+(,[\\d\\.]+){5}){2}/\n\n    it 'should make line width customizable', ->\n      chart = Morris.Line $.extend(@defaults, lineWidth: [1, 2])\n      chart.lineWidthForSeries(0).should.equal 1\n      chart.lineWidthForSeries(1).should.equal 2\n\n  describe '#createPath', ->\n\n    it 'should generate a smooth line', ->\n      testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: 10}]\n      path = Morris.Line.createPath(testData, true, 20)\n      path.should.equal 'M0,10C2.5,7.5,7.5,0,10,0C12.5,0,17.5,7.5,20,10'\n\n    it 'should generate a jagged line', ->\n      testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: 10}]\n      path = Morris.Line.createPath(testData, false, 20)\n      path.should.equal 'M0,10L10,0L20,10'\n\n    it 'should prevent paths from descending below the bottom of the chart', ->\n      testData = [{x: 0, y: 20}, {x: 10, y: 30}, {x: 20, y: 10}]\n      path = Morris.Line.createPath(testData, true, 30)\n      path.should.equal 'M0,20C2.5,22.5,7.5,30,10,30C12.5,28.75,17.5,15,20,10'\n\n    it 'should break the line at null values', ->\n      testData = [{x: 0, y: 10}, {x: 10, y: 0}, {x: 20, y: null}, {x: 30, y: 10}, {x: 40, y: 0}]\n      path = Morris.Line.createPath(testData, true, 20)\n      path.should.equal 'M0,10C2.5,7.5,7.5,2.5,10,0M30,10C32.5,7.5,37.5,2.5,40,0'\n\n    it 'should ignore leading and trailing null values', ->\n      testData = [{x: 0, y: null}, {x: 10, y: 10}, {x: 20, y: 0}, {x: 30, y: 10}, {x: 40, y: null}]\n      path = Morris.Line.createPath(testData, true, 20)\n      path.should.equal 'M10,10C12.5,7.5,17.5,0,20,0C22.5,0,27.5,7.5,30,10'\n\n  describe 'svg structure', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      lineColors: [ '#0b62a4', '#7a92a3']\n      xkey: 'x'\n      ykeys: ['y']\n      labels: ['dontcare']\n\n    it 'should contain a path that represents the line', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#0b62a4']\").size().should.equal 1\n\n    it 'should contain a circle for each data point', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle\").size().should.equal 2\n\n    it 'should contain 5 grid lines', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"path[stroke='#aaaaaa']\").size().should.equal 5\n\n    it 'should contain 9 text elements', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"text\").size().should.equal 9\n\n  describe 'svg attributes', ->\n    defaults =\n      element: 'graph'\n      data: [{x: '2012 Q1', y: 1}, {x: '2012 Q2', y: 1}]\n      xkey: 'x'\n      ykeys: ['y', 'z']\n      labels: ['Y', 'Z']\n      lineColors: [ '#0b62a4', '#7a92a3']\n      lineWidth: 3\n      pointStrokeWidths: [5]\n      pointStrokeColors: ['#ffffff']\n      gridLineColor: '#aaa'\n      gridStrokeWidth: 0.5\n      gridTextColor: '#888'\n      gridTextSize: 12\n      pointSize: [5]\n\n    it 'should have circles with configured fill color', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[fill='#0b62a4']\").size().should.equal 2\n\n    it 'should have circles with configured stroke width', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[stroke-width='5']\").size().should.equal 2\n\n    it 'should have circles with configured stroke color', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[stroke='#ffffff']\").size().should.equal 2\n\n    it 'should have line with configured line width', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"path[stroke-width='3']\").size().should.equal 1\n\n    it 'should have text with configured font size', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"text[font-size='12px']\").size().should.equal 9\n\n    it 'should have text with configured font size', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"text[fill='#888888']\").size().should.equal 9\n\n    it 'should have circle with configured size', ->\n      chart = Morris.Line $.extend {}, defaults\n      $('#graph').find(\"circle[r='5']\").size().should.equal 2\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/pad_spec.coffee",
    "content": "describe '#pad', ->\n\n  it 'should pad numbers', ->\n    Morris.pad2(0).should.equal(\"00\")\n    Morris.pad2(1).should.equal(\"01\")\n    Morris.pad2(2).should.equal(\"02\")\n    Morris.pad2(3).should.equal(\"03\")\n    Morris.pad2(4).should.equal(\"04\")\n    Morris.pad2(5).should.equal(\"05\")\n    Morris.pad2(6).should.equal(\"06\")\n    Morris.pad2(7).should.equal(\"07\")\n    Morris.pad2(8).should.equal(\"08\")\n    Morris.pad2(9).should.equal(\"09\")\n    Morris.pad2(10).should.equal(\"10\")\n    Morris.pad2(12).should.equal(\"12\")\n    Morris.pad2(34).should.equal(\"34\")\n    Morris.pad2(123).should.equal(\"123\")"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/lib/parse_time_spec.coffee",
    "content": "describe '#parseTime', ->\n\n  it 'should parse years', ->\n    Morris.parseDate('2012').should.equal(new Date(2012, 0, 1).getTime())\n\n  it 'should parse quarters', ->\n    Morris.parseDate('2012 Q1').should.equal(new Date(2012, 2, 1).getTime())\n\n  it 'should parse months', ->\n    Morris.parseDate('2012-09').should.equal(new Date(2012, 8, 1).getTime())\n    Morris.parseDate('2012-10').should.equal(new Date(2012, 9, 1).getTime())\n\n  it 'should parse dates', ->\n    Morris.parseDate('2012-09-15').should.equal(new Date(2012, 8, 15).getTime())\n    Morris.parseDate('2012-10-15').should.equal(new Date(2012, 9, 15).getTime())\n\n  it 'should parse times', ->\n    Morris.parseDate(\"2012-10-15 12:34\").should.equal(new Date(2012, 9, 15, 12, 34).getTime())\n    Morris.parseDate(\"2012-10-15T12:34\").should.equal(new Date(2012, 9, 15, 12, 34).getTime())\n    Morris.parseDate(\"2012-10-15 12:34:55\").should.equal(new Date(2012, 9, 15, 12, 34, 55).getTime())\n    Morris.parseDate(\"2012-10-15T12:34:55\").should.equal(new Date(2012, 9, 15, 12, 34, 55).getTime())\n\n  it 'should parse times with timezones', ->\n    Morris.parseDate(\"2012-10-15T12:34+0100\").should.equal(Date.UTC(2012, 9, 15, 11, 34))\n    Morris.parseDate(\"2012-10-15T12:34+02:00\").should.equal(Date.UTC(2012, 9, 15, 10, 34))\n    Morris.parseDate(\"2012-10-15T12:34-0100\").should.equal(Date.UTC(2012, 9, 15, 13, 34))\n    Morris.parseDate(\"2012-10-15T12:34-02:00\").should.equal(Date.UTC(2012, 9, 15, 14, 34))\n    Morris.parseDate(\"2012-10-15T12:34:55Z\").should.equal(Date.UTC(2012, 9, 15, 12, 34, 55))\n    Morris.parseDate(\"2012-10-15T12:34:55+0600\").should.equal(Date.UTC(2012, 9, 15, 6, 34, 55))\n    Morris.parseDate(\"2012-10-15T12:34:55+04:00\").should.equal(Date.UTC(2012, 9, 15, 8, 34, 55))\n    Morris.parseDate(\"2012-10-15T12:34:55-0600\").should.equal(Date.UTC(2012, 9, 15, 18, 34, 55))\n\n  it 'should pass-through timestamps', ->\n    Morris.parseDate(new Date(2012, 9, 15, 12, 34, 55, 123).getTime())\n      .should.equal(new Date(2012, 9, 15, 12, 34, 55, 123).getTime())"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/specs.html",
    "content": "<!doctype html>\n\n<head>\n    <meta charset=\"utf-8\">\n    <title>morris.js tests</title>\n    <link rel=\"stylesheet\" href=\"../bower_components/mocha/mocha.css\" type=\"text/css\" media=\"screen\" />\n    <link rel=\"stylesheet\" href=\"../morris.css\" type=\"text/css\" media=\"screen\" />\n    <!-- jQuery packaging changed for 2.1.0, so try to load both paths, one will work. -->\n    <script src=\"../bower_components/jquery/dist/jquery.js\"></script>\n    <script src=\"../bower_components/jquery/jquery.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/raphael/raphael-min.js\"></script>\n</head>\n\n<body>\n    <div id=\"mocha\"></div>\n    <script type=\"text/javascript\" src=\"../bower_components/mocha/mocha.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/chai/chai.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/chai-jquery/chai-jquery.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/sinon/index.js\"></script>\n    <script type=\"text/javascript\" src=\"../bower_components/sinon-chai/lib/sinon-chai.js\"></script>\n    <script>\n        mocha.setup('bdd');\n        should = chai.should();\n    </script>\n    <script type=\"text/javascript\" src=\"../morris.js\"></script>\n    <script type=\"text/javascript\" src=\"../build/spec.js\"></script>\n    <div id=\"test\" style=\"width: 400px; height: 200px;\"></div>\n    <script>\n        if (navigator.userAgent.indexOf('PhantomJS') < 0)\n        {\n            mocha.run();\n        }\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/support/placeholder.coffee",
    "content": "beforeEach ->\n  placeholder = $('<div id=\"graph\" style=\"width: 600px; height: 400px\"></div>')\n  $('#test').append(placeholder)\n\nafterEach ->\n  $('#test').empty()\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/viz/examples.js",
    "content": "var webpage = require(\"webpage\"),\n    fs = require(\"fs\");\n\nvar html_path = fs.absolute(\"test.html\");\nvar examples = [];\n\nfunction run_example(example_index) {\n  if (example_index >= examples.length) {\n    phantom.exit(0);\n    return;\n  }\n\n  var example = examples[example_index];\n  var snapshot_index = 0;\n  var page = webpage.create();\n\n  page.viewportSize = { width: 500, height: 300 };\n  page.clipRect = { width: 500, height: 300 };\n  page.onAlert = function (msg) {\n    var e = JSON.parse(msg);\n    if (e.fn == \"snapshot\") {\n      page.render(\"output/\" + example.name + snapshot_index + \".png\");\n      snapshot_index += 1;\n    } else if (e.fn == \"mousemove\") {\n      page.sendEvent(\"mousemove\", e.x, e.y);\n    }\n  };\n\n  page.open(html_path, function (status) {\n    if (status == \"fail\") {\n      console.log(\"Failed to load test page: \" + example.name);\n      phantom.exit(1);\n    } else {\n      page.evaluate(example.runner);\n    }\n    page.close();\n    run_example(example_index + 1);\n  });\n}\n\nexports.def = function (name, runner) {\n  examples.push({ name: name, runner: runner });\n};\n\nexports.run = function () {\n  if (fs.isDirectory(\"output\")) {\n    fs.list(\"output\").forEach(function (path) {\n      if (path != \".\" && path != \"..\") {\n        fs.remove(\"output/\" + path);\n      }\n    });\n  } else {\n    fs.makeDirectory(\"output\");\n  }\n  run_example(0);\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/viz/run.sh",
    "content": "#!/bin/sh\n\n# visual_specs.js creates output in output/XXX.png\nphantomjs visual_specs.js\n\n# clear out old diffs\nmkdir -p diff\nrm -f diff/*\n\n# generate diffs\nPASS=1\nfor i in exemplary/*.png\ndo\n  FN=`basename $i`\n  perceptualdiff $i output/$FN -output diff/$FN\n  if [ $? -eq 0 ]\n  then\n    echo \"OK:   $FN\"\n  else\n    echo \"FAIL: $FN\"\n    PASS=0\n  fi\ndone\n\n# pass / fail\nif [ $PASS -eq 1 ]\nthen\n  echo \"Success.\"\nelse\n  echo \"Failed.\"\n  exit 1\nfi\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/viz/test.html",
    "content": "<!doctype html>\n\n<head>\n    <!-- jQuery packaging changed for 2.1.0, so try to load both paths, one will work. -->\n    <script src=\"../../bower_components/jquery/dist/jquery.js\"></script>\n    <script src=\"../../bower_components/jquery/jquery.js\"></script>\n    <script src=\"../../bower_components/raphael/raphael-min.js\"></script>\n    <script src=\"../../morris.js\"></script>\n    <link rel=\"stylesheet\" href=\"../../morris.css\">\n    <style>\n        body {\n            padding: 0;\n            margin: 0;\n            background-color: white;\n        }\n        \n        #chart {\n            width: 500px;\n            height: 300px;\n        }\n    </style>\n    <script>\n        function bridge(e)\n        {\n            window.alert(JSON.stringify(e));\n        }\n        window.snapshot = function()\n        {\n            bridge(\n            {\n                fn: \"snapshot\"\n            });\n        };\n        window.mousemove = function(x, y)\n        {\n            bridge(\n            {\n                fn: \"mousemove\",\n                x: x,\n                y: y\n            });\n        };\n    </script>\n</head>\n\n<body>\n    <div id=\"chart\"></div>\n</body>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/morris/spec/viz/visual_specs.js",
    "content": "var examples = require('./examples');\n\nexamples.def('line', function () {\n  Morris.Line({\n    element: 'chart',\n    data: [\n      { x: 0, y: 10, z: 30 }, { x: 1, y: 20, z: 20 },\n      { x: 2, y: 30, z: 10 }, { x: 3, y: 30, z: 10 },\n      { x: 4, y: 20, z: 20 }, { x: 5, y: 10, z: 30 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z'],\n    parseTime: false\n  });\n  window.snapshot();\n});\n\nexamples.def('area', function () {\n  Morris.Area({\n    element: 'chart',\n    data: [\n      { x: 0, y: 1, z: 1 }, { x: 1, y: 2, z: 1 },\n      { x: 2, y: 3, z: 1 }, { x: 3, y: 3, z: 1 },\n      { x: 4, y: 2, z: 1 }, { x: 5, y: 1, z: 1 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z'],\n    parseTime: false\n  });\n  window.snapshot();\n});\n\nexamples.def('bar', function () {\n  Morris.Bar({\n    element: 'chart',\n    data: [\n      { x: 0, y: 1, z: 3 }, { x: 1, y: 2, z: 2 },\n      { x: 2, y: 3, z: 1 }, { x: 3, y: 3, z: 1 },\n      { x: 4, y: 2, z: 2 }, { x: 5, y: 1, z: 3 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z']\n  });\n  window.snapshot();\n});\n\nexamples.def('stacked_bar', function () {\n  Morris.Bar({\n    element: 'chart',\n    data: [\n      { x: 0, y: 1, z: 1 }, { x: 1, y: 2, z: 1 },\n      { x: 2, y: 3, z: 1 }, { x: 3, y: 3, z: 1 },\n      { x: 4, y: 2, z: 1 }, { x: 5, y: 1, z: 1 }\n    ],\n    xkey: 'x',\n    ykeys: ['y', 'z'],\n    labels: ['y', 'z'],\n    stacked: true\n  });\n  window.snapshot();\n});\n\nexamples.run();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/css/select2.css",
    "content": ".select2-container {\n  box-sizing: border-box;\n  display: inline-block;\n  margin: 0;\n  position: relative;\n  vertical-align: middle; }\n  .select2-container .select2-selection--single {\n    box-sizing: border-box;\n    cursor: pointer;\n    display: block;\n    height: 28px;\n    user-select: none;\n    -webkit-user-select: none; }\n    .select2-container .select2-selection--single .select2-selection__rendered {\n      display: block;\n      padding-left: 8px;\n      padding-right: 20px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap; }\n    .select2-container .select2-selection--single .select2-selection__clear {\n      position: relative; }\n  .select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n    padding-right: 8px;\n    padding-left: 20px; }\n  .select2-container .select2-selection--multiple {\n    box-sizing: border-box;\n    cursor: pointer;\n    display: block;\n    min-height: 32px;\n    user-select: none;\n    -webkit-user-select: none; }\n    .select2-container .select2-selection--multiple .select2-selection__rendered {\n      display: inline-block;\n      overflow: hidden;\n      padding-left: 8px;\n      text-overflow: ellipsis;\n      white-space: nowrap; }\n  .select2-container .select2-search--inline {\n    float: left; }\n    .select2-container .select2-search--inline .select2-search__field {\n      box-sizing: border-box;\n      border: none;\n      font-size: 100%;\n      margin-top: 5px;\n      padding: 0; }\n      .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\n        -webkit-appearance: none; }\n\n.select2-dropdown {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  box-sizing: border-box;\n  display: block;\n  position: absolute;\n  left: -100000px;\n  width: 100%;\n  z-index: 1051; }\n\n.select2-results {\n  display: block; }\n\n.select2-results__options {\n  list-style: none;\n  margin: 0;\n  padding: 0; }\n\n.select2-results__option {\n  padding: 6px;\n  user-select: none;\n  -webkit-user-select: none; }\n  .select2-results__option[aria-selected] {\n    cursor: pointer; }\n\n.select2-container--open .select2-dropdown {\n  left: 0; }\n\n.select2-container--open .select2-dropdown--above {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--open .select2-dropdown--below {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-search--dropdown {\n  display: block;\n  padding: 4px; }\n  .select2-search--dropdown .select2-search__field {\n    padding: 4px;\n    width: 100%;\n    box-sizing: border-box; }\n    .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\n      -webkit-appearance: none; }\n  .select2-search--dropdown.select2-search--hide {\n    display: none; }\n\n.select2-close-mask {\n  border: 0;\n  margin: 0;\n  padding: 0;\n  display: block;\n  position: fixed;\n  left: 0;\n  top: 0;\n  min-height: 100%;\n  min-width: 100%;\n  height: auto;\n  width: auto;\n  opacity: 0;\n  z-index: 99;\n  background-color: #fff;\n  filter: alpha(opacity=0); }\n\n.select2-hidden-accessible {\n  border: 0 !important;\n  clip: rect(0 0 0 0) !important;\n  height: 1px !important;\n  margin: -1px !important;\n  overflow: hidden !important;\n  padding: 0 !important;\n  position: absolute !important;\n  width: 1px !important; }\n\n.select2-container--default .select2-selection--single {\n  background-color: #fff;\n  border: 1px solid #aaa;\n  border-radius: 4px; }\n  .select2-container--default .select2-selection--single .select2-selection__rendered {\n    color: #444;\n    line-height: 28px; }\n  .select2-container--default .select2-selection--single .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold; }\n  .select2-container--default .select2-selection--single .select2-selection__placeholder {\n    color: #999; }\n  .select2-container--default .select2-selection--single .select2-selection__arrow {\n    height: 26px;\n    position: absolute;\n    top: 1px;\n    right: 1px;\n    width: 20px; }\n    .select2-container--default .select2-selection--single .select2-selection__arrow b {\n      border-color: #888 transparent transparent transparent;\n      border-style: solid;\n      border-width: 5px 4px 0 4px;\n      height: 0;\n      left: 50%;\n      margin-left: -4px;\n      margin-top: -2px;\n      position: absolute;\n      top: 50%;\n      width: 0; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\n  float: left; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\n  left: 1px;\n  right: auto; }\n\n.select2-container--default.select2-container--disabled .select2-selection--single {\n  background-color: #eee;\n  cursor: default; }\n  .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\n    display: none; }\n\n.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\n  border-color: transparent transparent #888 transparent;\n  border-width: 0 4px 5px 4px; }\n\n.select2-container--default .select2-selection--multiple {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  cursor: text; }\n  .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n    box-sizing: border-box;\n    list-style: none;\n    margin: 0;\n    padding: 0 5px;\n    width: 100%; }\n    .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n      list-style: none; }\n  .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\n    color: #999;\n    margin-top: 5px;\n    float: left; }\n  .select2-container--default .select2-selection--multiple .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold;\n    margin-top: 5px;\n    margin-right: 10px; }\n  .select2-container--default .select2-selection--multiple .select2-selection__choice {\n    background-color: #e4e4e4;\n    border: 1px solid #aaa;\n    border-radius: 4px;\n    cursor: default;\n    float: left;\n    margin-right: 5px;\n    margin-top: 5px;\n    padding: 0 5px; }\n  .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n    color: #999;\n    cursor: pointer;\n    display: inline-block;\n    font-weight: bold;\n    margin-right: 2px; }\n    .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n      color: #333; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-search--inline {\n  float: right; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  margin-left: 5px;\n  margin-right: auto; }\n\n.select2-container--default[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\n  margin-left: 2px;\n  margin-right: auto; }\n\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border: solid black 1px;\n  outline: 0; }\n\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\n  background-color: #eee;\n  cursor: default; }\n\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\n  display: none; }\n\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--default .select2-search--dropdown .select2-search__field {\n  border: 1px solid #aaa; }\n\n.select2-container--default .select2-search--inline .select2-search__field {\n  background: transparent;\n  border: none;\n  outline: 0;\n  box-shadow: none;\n  -webkit-appearance: textfield; }\n\n.select2-container--default .select2-results > .select2-results__options {\n  max-height: 200px;\n  overflow-y: auto; }\n\n.select2-container--default .select2-results__option[role=group] {\n  padding: 0; }\n\n.select2-container--default .select2-results__option[aria-disabled=true] {\n  color: #999; }\n\n.select2-container--default .select2-results__option[aria-selected=true] {\n  background-color: #ddd; }\n\n.select2-container--default .select2-results__option .select2-results__option {\n  padding-left: 1em; }\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\n    padding-left: 0; }\n  .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\n    margin-left: -1em;\n    padding-left: 2em; }\n    .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n      margin-left: -2em;\n      padding-left: 3em; }\n      .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n        margin-left: -3em;\n        padding-left: 4em; }\n        .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n          margin-left: -4em;\n          padding-left: 5em; }\n          .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n            margin-left: -5em;\n            padding-left: 6em; }\n\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n  background-color: #5897fb;\n  color: white; }\n\n.select2-container--default .select2-results__group {\n  cursor: default;\n  display: block;\n  padding: 6px; }\n\n.select2-container--classic .select2-selection--single {\n  background-color: #f7f7f7;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  outline: 0;\n  background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);\n  background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);\n  background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\n  .select2-container--classic .select2-selection--single:focus {\n    border: 1px solid #5897fb; }\n  .select2-container--classic .select2-selection--single .select2-selection__rendered {\n    color: #444;\n    line-height: 28px; }\n  .select2-container--classic .select2-selection--single .select2-selection__clear {\n    cursor: pointer;\n    float: right;\n    font-weight: bold;\n    margin-right: 10px; }\n  .select2-container--classic .select2-selection--single .select2-selection__placeholder {\n    color: #999; }\n  .select2-container--classic .select2-selection--single .select2-selection__arrow {\n    background-color: #ddd;\n    border: none;\n    border-left: 1px solid #aaa;\n    border-top-right-radius: 4px;\n    border-bottom-right-radius: 4px;\n    height: 26px;\n    position: absolute;\n    top: 1px;\n    right: 1px;\n    width: 20px;\n    background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\n    background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\n    background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }\n    .select2-container--classic .select2-selection--single .select2-selection__arrow b {\n      border-color: #888 transparent transparent transparent;\n      border-style: solid;\n      border-width: 5px 4px 0 4px;\n      height: 0;\n      left: 50%;\n      margin-left: -4px;\n      margin-top: -2px;\n      position: absolute;\n      top: 50%;\n      width: 0; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__clear {\n  float: left; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--single .select2-selection__arrow {\n  border: none;\n  border-right: 1px solid #aaa;\n  border-radius: 0;\n  border-top-left-radius: 4px;\n  border-bottom-left-radius: 4px;\n  left: 1px;\n  right: auto; }\n\n.select2-container--classic.select2-container--open .select2-selection--single {\n  border: 1px solid #5897fb; }\n  .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {\n    background: transparent;\n    border: none; }\n    .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {\n      border-color: transparent transparent #888 transparent;\n      border-width: 0 4px 5px 4px; }\n\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);\n  background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);\n  background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\n\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n  background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);\n  background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);\n  background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }\n\n.select2-container--classic .select2-selection--multiple {\n  background-color: white;\n  border: 1px solid #aaa;\n  border-radius: 4px;\n  cursor: text;\n  outline: 0; }\n  .select2-container--classic .select2-selection--multiple:focus {\n    border: 1px solid #5897fb; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__rendered {\n    list-style: none;\n    margin: 0;\n    padding: 0 5px; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__clear {\n    display: none; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice {\n    background-color: #e4e4e4;\n    border: 1px solid #aaa;\n    border-radius: 4px;\n    cursor: default;\n    float: left;\n    margin-right: 5px;\n    margin-top: 5px;\n    padding: 0 5px; }\n  .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {\n    color: #888;\n    cursor: pointer;\n    display: inline-block;\n    font-weight: bold;\n    margin-right: 2px; }\n    .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {\n      color: #555; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  float: right; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice {\n  margin-left: 5px;\n  margin-right: auto; }\n\n.select2-container--classic[dir=\"rtl\"] .select2-selection--multiple .select2-selection__choice__remove {\n  margin-left: 2px;\n  margin-right: auto; }\n\n.select2-container--classic.select2-container--open .select2-selection--multiple {\n  border: 1px solid #5897fb; }\n\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {\n  border-top: none;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0; }\n\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {\n  border-bottom: none;\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0; }\n\n.select2-container--classic .select2-search--dropdown .select2-search__field {\n  border: 1px solid #aaa;\n  outline: 0; }\n\n.select2-container--classic .select2-search--inline .select2-search__field {\n  outline: 0;\n  box-shadow: none; }\n\n.select2-container--classic .select2-dropdown {\n  background-color: white;\n  border: 1px solid transparent; }\n\n.select2-container--classic .select2-dropdown--above {\n  border-bottom: none; }\n\n.select2-container--classic .select2-dropdown--below {\n  border-top: none; }\n\n.select2-container--classic .select2-results > .select2-results__options {\n  max-height: 200px;\n  overflow-y: auto; }\n\n.select2-container--classic .select2-results__option[role=group] {\n  padding: 0; }\n\n.select2-container--classic .select2-results__option[aria-disabled=true] {\n  color: grey; }\n\n.select2-container--classic .select2-results__option--highlighted[aria-selected] {\n  background-color: #3875d7;\n  color: white; }\n\n.select2-container--classic .select2-results__group {\n  cursor: default;\n  display: block;\n  padding: 6px; }\n\n.select2-container--classic.select2-container--open .select2-dropdown {\n  border-color: #5897fb; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/ar.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ar\",[],function(){return{errorLoading:function(){return\"لا يمكن تحميل النتائج\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"الرجاء حذف \"+t+\" عناصر\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"الرجاء إضافة \"+t+\" عناصر\";return n},loadingMore:function(){return\"جاري تحميل نتائج إضافية...\"},maximumSelected:function(e){var t=\"تستطيع إختيار \"+e.maximum+\" بنود فقط\";return t},noResults:function(){return\"لم يتم العثور على أي نتائج\"},searching:function(){return\"جاري البحث…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/az.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/az\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+\" simvol silin\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+\" simvol daxil edin\"},loadingMore:function(){return\"Daha çox nəticə yüklənir…\"},maximumSelected:function(e){return\"Sadəcə \"+e.maximum+\" element seçə bilərsiniz\"},noResults:function(){return\"Nəticə tapılmadı\"},searching:function(){return\"Axtarılır…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/bg.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/bg\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Моля въведете с \"+t+\" по-малко символ\";return t>1&&(n+=\"a\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Моля въведете още \"+t+\" символ\";return t>1&&(n+=\"a\"),n},loadingMore:function(){return\"Зареждат се още…\"},maximumSelected:function(e){var t=\"Можете да направите до \"+e.maximum+\" \";return e.maximum>1?t+=\"избора\":t+=\"избор\",t},noResults:function(){return\"Няма намерени съвпадения\"},searching:function(){return\"Търсене…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/ca.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ca\",[],function(){return{errorLoading:function(){return\"La càrrega ha fallat\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Si us plau, elimina \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Si us plau, introdueix \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},loadingMore:function(){return\"Carregant més resultats…\"},maximumSelected:function(e){var t=\"Només es pot seleccionar \"+e.maximum+\" element\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No s'han trobat resultats\"},searching:function(){return\"Cercant…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/cs.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/cs\",[],function(){function e(e,t){switch(e){case 2:return t?\"dva\":\"dvě\";case 3:return\"tři\";case 4:return\"čtyři\"}return\"\"}return{errorLoading:function(){return\"Výsledky nemohly být načteny.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím zadejte o jeden znak méně\":n<=4?\"Prosím zadejte o \"+e(n,!0)+\" znaky méně\":\"Prosím zadejte o \"+n+\" znaků méně\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím zadejte ještě jeden znak\":n<=4?\"Prosím zadejte ještě další \"+e(n,!0)+\" znaky\":\"Prosím zadejte ještě dalších \"+n+\" znaků\"},loadingMore:function(){return\"Načítají se další výsledky…\"},maximumSelected:function(t){var n=t.maximum;return n==1?\"Můžete zvolit jen jednu položku\":n<=4?\"Můžete zvolit maximálně \"+e(n,!1)+\" položky\":\"Můžete zvolit maximálně \"+n+\" položek\"},noResults:function(){return\"Nenalezeny žádné položky\"},searching:function(){return\"Vyhledávání…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/da.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/da\",[],function(){return{errorLoading:function(){return\"Resultaterne kunne ikke indlæses.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Angiv venligst \"+t+\" tegn mindre\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Angiv venligst \"+t+\" tegn mere\";return n},loadingMore:function(){return\"Indlæser flere resultater…\"},maximumSelected:function(e){var t=\"Du kan kun vælge \"+e.maximum+\" emne\";return e.maximum!=1&&(t+=\"r\"),t},noResults:function(){return\"Ingen resultater fundet\"},searching:function(){return\"Søger…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/de.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/de\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Bitte \"+t+\" Zeichen weniger eingeben\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Bitte \"+t+\" Zeichen mehr eingeben\"},loadingMore:function(){return\"Lade mehr Ergebnisse…\"},maximumSelected:function(e){var t=\"Sie können nur \"+e.maximum+\" Eintr\";return e.maximum===1?t+=\"ag\":t+=\"äge\",t+=\" auswählen\",t},noResults:function(){return\"Keine Übereinstimmungen gefunden\"},searching:function(){return\"Suche…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/el.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/el\",[],function(){return{errorLoading:function(){return\"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Παρακαλώ διαγράψτε \"+t+\" χαρακτήρ\";return t==1&&(n+=\"α\"),t!=1&&(n+=\"ες\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Παρακαλώ συμπληρώστε \"+t+\" ή περισσότερους χαρακτήρες\";return n},loadingMore:function(){return\"Φόρτωση περισσότερων αποτελεσμάτων…\"},maximumSelected:function(e){var t=\"Μπορείτε να επιλέξετε μόνο \"+e.maximum+\" επιλογ\";return e.maximum==1&&(t+=\"ή\"),e.maximum!=1&&(t+=\"ές\"),t},noResults:function(){return\"Δεν βρέθηκαν αποτελέσματα\"},searching:function(){return\"Αναζήτηση…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/en.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/en\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Please delete \"+t+\" character\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Please enter \"+t+\" or more characters\";return n},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/es.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/es\",[],function(){return{errorLoading:function(){return\"La carga falló\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor, elimine \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Por favor, introduzca \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},loadingMore:function(){return\"Cargando más resultados…\"},maximumSelected:function(e){var t=\"Sólo puede seleccionar \"+e.maximum+\" elemento\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No se encontraron resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/et.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/et\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" vähem\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" rohkem\",n},loadingMore:function(){return\"Laen tulemusi…\"},maximumSelected:function(e){var t=\"Saad vaid \"+e.maximum+\" tulemus\";return e.maximum==1?t+=\"e\":t+=\"t\",t+=\" valida\",t},noResults:function(){return\"Tulemused puuduvad\"},searching:function(){return\"Otsin…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/eu.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/eu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gutxiago\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gehiago\",n},loadingMore:function(){return\"Emaitza gehiago kargatzen…\"},maximumSelected:function(e){return e.maximum===1?\"Elementu bakarra hauta dezakezu\":e.maximum+\" elementu hauta ditzakezu soilik\"},noResults:function(){return\"Ez da bat datorrenik aurkitu\"},searching:function(){return\"Bilatzen…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/fa.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fa\",[],function(){return{errorLoading:function(){return\"امکان بارگذاری نتایج وجود ندارد.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"لطفاً \"+t+\" کاراکتر را حذف نمایید\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"لطفاً تعداد \"+t+\" کاراکتر یا بیشتر وارد نمایید\";return n},loadingMore:function(){return\"در حال بارگذاری نتایج بیشتر...\"},maximumSelected:function(e){var t=\"شما تنها می‌توانید \"+e.maximum+\" آیتم را انتخاب نمایید\";return t},noResults:function(){return\"هیچ نتیجه‌ای یافت نشد\"},searching:function(){return\"در حال جستجو...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/fi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fi\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Ole hyvä ja anna \"+t+\" merkkiä vähemmän\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Ole hyvä ja anna \"+t+\" merkkiä lisää\"},loadingMore:function(){return\"Ladataan lisää tuloksia…\"},maximumSelected:function(e){return\"Voit valita ainoastaan \"+e.maximum+\" kpl\"},noResults:function(){return\"Ei tuloksia\"},searching:function(){}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/fr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fr\",[],function(){return{errorLoading:function(){return\"Les résultats ne peuvent pas être chargés.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Supprimez \"+t+\" caractère\";return t!==1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Saisissez \"+t+\" caractère\";return t!==1&&(n+=\"s\"),n},loadingMore:function(){return\"Chargement de résultats supplémentaires…\"},maximumSelected:function(e){var t=\"Vous pouvez seulement sélectionner \"+e.maximum+\" élément\";return e.maximum!==1&&(t+=\"s\"),t},noResults:function(){return\"Aucun résultat trouvé\"},searching:function(){return\"Recherche en cours…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/gl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/gl\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Elimine \";return t===1?n+=\"un carácter\":n+=t+\" caracteres\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Engada \";return t===1?n+=\"un carácter\":n+=t+\" caracteres\",n},loadingMore:function(){return\"Cargando máis resultados…\"},maximumSelected:function(e){var t=\"Só pode \";return e.maximum===1?t+=\"un elemento\":t+=e.maximum+\" elementos\",t},noResults:function(){return\"Non se atoparon resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/he.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/he\",[],function(){return{errorLoading:function(){return\"שגיאה בטעינת התוצאות\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"נא למחוק \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"נא להכניס \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n+=\" או יותר\",n},loadingMore:function(){return\"טוען תוצאות נוספות…\"},maximumSelected:function(e){var t=\"באפשרותך לבחור עד \";return e.maximum===1?t+=\"פריט אחד\":t+=e.maximum+\" פריטים\",t},noResults:function(){return\"לא נמצאו תוצאות\"},searching:function(){return\"מחפש…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/hi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hi\",[],function(){return{errorLoading:function(){return\"परिणामों को लोड नहीं किया जा सका।\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" अक्षर को हटा दें\";return t>1&&(n=t+\" अक्षरों को हटा दें \"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"कृपया \"+t+\" या अधिक अक्षर दर्ज करें\";return n},loadingMore:function(){return\"अधिक परिणाम लोड हो रहे है...\"},maximumSelected:function(e){var t=\"आप केवल \"+e.maximum+\" आइटम का चयन कर सकते हैं\";return t},noResults:function(){return\"कोई परिणाम नहीं मिला\"},searching:function(){return\"खोज रहा है...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/hr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hr\",[],function(){function e(e){var t=\" \"+e+\" znak\";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+=\"a\"):t+=\"ova\",t}return{errorLoading:function(){return\"Preuzimanje nije uspjelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Unesite \"+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return\"Unesite još \"+e(n)},loadingMore:function(){return\"Učitavanje rezultata…\"},maximumSelected:function(e){return\"Maksimalan broj odabranih stavki je \"+e.maximum},noResults:function(){return\"Nema rezultata\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/hu.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Túl hosszú. \"+t+\" karakterrel több, mint kellene.\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Túl rövid. Még \"+t+\" karakter hiányzik.\"},loadingMore:function(){return\"Töltés…\"},maximumSelected:function(e){return\"Csak \"+e.maximum+\" elemet lehet kiválasztani.\"},noResults:function(){return\"Nincs találat.\"},searching:function(){return\"Keresés…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/id.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/id\",[],function(){return{errorLoading:function(){return\"Data tidak boleh diambil.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Hapuskan \"+t+\" huruf\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Masukkan \"+t+\" huruf lagi\"},loadingMore:function(){return\"Mengambil data…\"},maximumSelected:function(e){return\"Anda hanya dapat memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tidak ada data yang sesuai\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/is.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/is\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vinsamlegast styttið texta um \"+t+\" staf\";return t<=1?n:n+\"i\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vinsamlegast skrifið \"+t+\" staf\";return t>1&&(n+=\"i\"),n+=\" í viðbót\",n},loadingMore:function(){return\"Sæki fleiri niðurstöður…\"},maximumSelected:function(e){return\"Þú getur aðeins valið \"+e.maximum+\" atriði\"},noResults:function(){return\"Ekkert fannst\"},searching:function(){return\"Leita…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/it.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/it\",[],function(){return{errorLoading:function(){return\"I risultati non possono essere caricati.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Per favore cancella \"+t+\" caratter\";return t!==1?n+=\"i\":n+=\"e\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Per favore inserisci \"+t+\" o più caratteri\";return n},loadingMore:function(){return\"Caricando più risultati…\"},maximumSelected:function(e){var t=\"Puoi selezionare solo \"+e.maximum+\" element\";return e.maximum!==1?t+=\"i\":t+=\"o\",t},noResults:function(){return\"Nessun risultato trovato\"},searching:function(){return\"Sto cercando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/ja.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ja\",[],function(){return{errorLoading:function(){return\"結果が読み込まれませんでした\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" 文字を削除してください\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"少なくとも \"+t+\" 文字を入力してください\";return n},loadingMore:function(){return\"読み込み中…\"},maximumSelected:function(e){var t=e.maximum+\" 件しか選択できません\";return t},noResults:function(){return\"対象が見つかりません\"},searching:function(){return\"検索しています…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/km.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/km\",[],function(){return{errorLoading:function(){return\"មិនអាចទាញយកទិន្នន័យ\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"សូមលុបចេញ  \"+t+\" អក្សរ\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"សូមបញ្ចូល\"+t+\" អក្សរ រឺ ច្រើនជាងនេះ\";return n},loadingMore:function(){return\"កំពុងទាញយកទិន្នន័យបន្ថែម...\"},maximumSelected:function(e){var t=\"អ្នកអាចជ្រើសរើសបានតែ \"+e.maximum+\" ជម្រើសប៉ុណ្ណោះ\";return t},noResults:function(){return\"មិនមានលទ្ធផល\"},searching:function(){return\"កំពុងស្វែងរក...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/ko.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ko\",[],function(){return{errorLoading:function(){return\"결과를 불러올 수 없습니다.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"너무 깁니다. \"+t+\" 글자 지워주세요.\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"너무 짧습니다. \"+t+\" 글자 더 입력해주세요.\";return n},loadingMore:function(){return\"불러오는 중…\"},maximumSelected:function(e){var t=\"최대 \"+e.maximum+\"개까지만 선택 가능합니다.\";return t},noResults:function(){return\"결과가 없습니다.\"},searching:function(){return\"검색 중…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/lt.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/lt\",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Pašalinkite \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Įrašykite dar \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},loadingMore:function(){return\"Kraunama daugiau rezultatų…\"},maximumSelected:function(t){var n=\"Jūs galite pasirinkti tik \"+t.maximum+\" element\";return n+=e(t.maximum,\"ą\",\"us\",\"ų\"),n},noResults:function(){return\"Atitikmenų nerasta\"},searching:function(){return\"Ieškoma…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/lv.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/lv\",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Lūdzu ievadiet par  \"+n;return r+=\" simbol\"+e(n,\"iem\",\"u\",\"iem\"),r+\" mazāk\"},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Lūdzu ievadiet vēl \"+n;return r+=\" simbol\"+e(n,\"us\",\"u\",\"us\"),r},loadingMore:function(){return\"Datu ielāde…\"},maximumSelected:function(t){var n=\"Jūs varat izvēlēties ne vairāk kā \"+t.maximum;return n+=\" element\"+e(t.maximum,\"us\",\"u\",\"us\"),n},noResults:function(){return\"Sakritību nav\"},searching:function(){return\"Meklēšana…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/mk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/mk\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Ве молиме внесете \"+e.maximum+\" помалку карактер\";return e.maximum!==1&&(n+=\"и\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Ве молиме внесете уште \"+e.maximum+\" карактер\";return e.maximum!==1&&(n+=\"и\"),n},loadingMore:function(){return\"Вчитување резултати…\"},maximumSelected:function(e){var t=\"Можете да изберете само \"+e.maximum+\" ставк\";return e.maximum===1?t+=\"а\":t+=\"и\",t},noResults:function(){return\"Нема пронајдено совпаѓања\"},searching:function(){return\"Пребарување…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/ms.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ms\",[],function(){return{errorLoading:function(){return\"Keputusan tidak berjaya dimuatkan.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Sila hapuskan \"+t+\" aksara\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Sila masukkan \"+t+\" atau lebih aksara\"},loadingMore:function(){return\"Sedang memuatkan keputusan…\"},maximumSelected:function(e){return\"Anda hanya boleh memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tiada padanan yang ditemui\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/nb.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/nb\",[],function(){return{errorLoading:function(){return\"Kunne ikke hente resultater.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Vennligst fjern \"+t+\" tegn\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vennligst skriv inn \";return t>1?n+=\" flere tegn\":n+=\" tegn til\",n},loadingMore:function(){return\"Laster flere resultater…\"},maximumSelected:function(e){return\"Du kan velge maks \"+e.maximum+\" elementer\"},noResults:function(){return\"Ingen treff\"},searching:function(){return\"Søker…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/nl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/nl\",[],function(){return{errorLoading:function(){return\"De resultaten konden niet worden geladen.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Gelieve \"+t+\" karakters te verwijderen\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Gelieve \"+t+\" of meer karakters in te voeren\";return n},loadingMore:function(){return\"Meer resultaten laden…\"},maximumSelected:function(e){var t=e.maximum==1?\"kan\":\"kunnen\",n=\"Er \"+t+\" maar \"+e.maximum+\" item\";return e.maximum!=1&&(n+=\"s\"),n+=\" worden geselecteerd\",n},noResults:function(){return\"Geen resultaten gevonden…\"},searching:function(){return\"Zoeken…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/pl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pl\",[],function(){var e=[\"znak\",\"znaki\",\"znaków\"],t=[\"element\",\"elementy\",\"elementów\"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return\"Nie można załadować wyników.\"},inputTooLong:function(t){var r=t.input.length-t.maximum;return\"Usuń \"+r+\" \"+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return\"Podaj przynajmniej \"+r+\" \"+n(r,e)},loadingMore:function(){return\"Trwa ładowanie…\"},maximumSelected:function(e){return\"Możesz zaznaczyć tylko \"+e.maximum+\" \"+n(e.maximum,t)},noResults:function(){return\"Brak wyników\"},searching:function(){return\"Trwa wyszukiwanie…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/pt-BR.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pt-BR\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Apague \"+t+\" caracter\";return t!=1&&(n+=\"es\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Digite \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"Carregando mais resultados…\"},maximumSelected:function(e){var t=\"Você só pode selecionar \"+e.maximum+\" ite\";return e.maximum==1?t+=\"m\":t+=\"ns\",t},noResults:function(){return\"Nenhum resultado encontrado\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/pt.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pt\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor apague \"+t+\" \";return n+=t!=1?\"caracteres\":\"carácter\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Introduza \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"A carregar mais resultados…\"},maximumSelected:function(e){var t=\"Apenas pode seleccionar \"+e.maximum+\" \";return t+=e.maximum!=1?\"itens\":\"item\",t},noResults:function(){return\"Sem resultados\"},searching:function(){return\"A procurar…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/ro.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ro\",[],function(){return{errorLoading:function(){return\"Rezultatele nu au putut fi incărcate.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vă rugăm să ștergeți\"+t+\" caracter\";return t!==1&&(n+=\"e\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vă rugăm să introduceți \"+t+\"sau mai multe caractere\";return n},loadingMore:function(){return\"Se încarcă mai multe rezultate…\"},maximumSelected:function(e){var t=\"Aveți voie să selectați cel mult \"+e.maximum;return t+=\" element\",e.maximum!==1&&(t+=\"e\"),t},noResults:function(){return\"Nu au fost găsite rezultate\"},searching:function(){return\"Căutare…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/ru.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ru\",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return\"Невозможно загрузить результаты\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Пожалуйста, введите на \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r+=\" меньше\",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Пожалуйста, введите еще хотя бы \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r},loadingMore:function(){return\"Загрузка данных…\"},maximumSelected:function(t){var n=\"Вы можете выбрать не более \"+t.maximum+\" элемент\";return n+=e(t.maximum,\"\",\"a\",\"ов\"),n},noResults:function(){return\"Совпадений не найдено\"},searching:function(){return\"Поиск…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/sk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sk\",[],function(){var e={2:function(e){return e?\"dva\":\"dve\"},3:function(){return\"tri\"},4:function(){return\"štyri\"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím, zadajte o jeden znak menej\":n>=2&&n<=4?\"Prosím, zadajte o \"+e[n](!0)+\" znaky menej\":\"Prosím, zadajte o \"+n+\" znakov menej\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím, zadajte ešte jeden znak\":n<=4?\"Prosím, zadajte ešte ďalšie \"+e[n](!0)+\" znaky\":\"Prosím, zadajte ešte ďalších \"+n+\" znakov\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(t){return t.maximum==1?\"Môžete zvoliť len jednu položku\":t.maximum>=2&&t.maximum<=4?\"Môžete zvoliť najviac \"+e[t.maximum](!1)+\" položky\":\"Môžete zvoliť najviac \"+t.maximum+\" položiek\"},noResults:function(){return\"Nenašli sa žiadne položky\"},searching:function(){return\"Vyhľadávanie…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/sr-Cyrl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sr-Cyrl\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return\"Преузимање није успело.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Обришите \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Укуцајте бар још \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},loadingMore:function(){return\"Преузимање још резултата…\"},maximumSelected:function(t){var n=\"Можете изабрати само \"+t.maximum+\" ставк\";return n+=e(t.maximum,\"у\",\"е\",\"и\"),n},noResults:function(){return\"Ништа није пронађено\"},searching:function(){return\"Претрага…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/sr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sr\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return\"Preuzimanje nije uspelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Obrišite \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Ukucajte bar još \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(t){var n=\"Možete izabrati samo \"+t.maximum+\" stavk\";return n+=e(t.maximum,\"u\",\"e\",\"i\"),n},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/sv.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sv\",[],function(){return{errorLoading:function(){return\"Resultat kunde inte laddas.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vänligen sudda ut \"+t+\" tecken\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vänligen skriv in \"+t+\" eller fler tecken\";return n},loadingMore:function(){return\"Laddar fler resultat…\"},maximumSelected:function(e){var t=\"Du kan max välja \"+e.maximum+\" element\";return t},noResults:function(){return\"Inga träffar\"},searching:function(){return\"Söker…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/th.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/th\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"โปรดลบออก \"+t+\" ตัวอักษร\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"โปรดพิมพ์เพิ่มอีก \"+t+\" ตัวอักษร\";return n},loadingMore:function(){return\"กำลังค้นข้อมูลเพิ่ม…\"},maximumSelected:function(e){var t=\"คุณสามารถเลือกได้ไม่เกิน \"+e.maximum+\" รายการ\";return t},noResults:function(){return\"ไม่พบข้อมูล\"},searching:function(){return\"กำลังค้นข้อมูล…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/tr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/tr\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" karakter daha girmelisiniz\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"En az \"+t+\" karakter daha girmelisiniz\";return n},loadingMore:function(){return\"Daha fazla…\"},maximumSelected:function(e){var t=\"Sadece \"+e.maximum+\" seçim yapabilirsiniz\";return t},noResults:function(){return\"Sonuç bulunamadı\"},searching:function(){return\"Aranıyor…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/uk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/uk\",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return\"Неможливо завантажити результати\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Будь ласка, видаліть \"+n+\" \"+e(t.maximum,\"літеру\",\"літери\",\"літер\")},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Будь ласка, введіть \"+t+\" або більше літер\"},loadingMore:function(){return\"Завантаження інших результатів…\"},maximumSelected:function(t){return\"Ви можете вибрати лише \"+t.maximum+\" \"+e(t.maximum,\"пункт\",\"пункти\",\"пунктів\")},noResults:function(){return\"Нічого не знайдено\"},searching:function(){return\"Пошук…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/vi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/vi\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vui lòng nhập ít hơn \"+t+\" ký tự\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vui lòng nhập nhiều hơn \"+t+' ký tự\"';return n},loadingMore:function(){return\"Đang lấy thêm kết quả…\"},maximumSelected:function(e){var t=\"Chỉ có thể chọn được \"+e.maximum+\" lựa chọn\";return t},noResults:function(){return\"Không tìm thấy kết quả\"},searching:function(){return\"Đang tìm…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/zh-CN.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/zh-CN\",[],function(){return{errorLoading:function(){return\"无法载入结果。\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"请删除\"+t+\"个字符\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"请再输入至少\"+t+\"个字符\";return n},loadingMore:function(){return\"载入更多结果…\"},maximumSelected:function(e){var t=\"最多只能选择\"+e.maximum+\"个项目\";return t},noResults:function(){return\"未找到结果\"},searching:function(){return\"搜索中…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/js/i18n/zh-TW.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/zh-TW\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"請刪掉\"+t+\"個字元\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"請再輸入\"+t+\"個字元\";return n},loadingMore:function(){return\"載入中…\"},maximumSelected:function(e){var t=\"你只能選擇最多\"+e.maximum+\"項\";return t},noResults:function(){return\"沒有找到相符的項目\"},searching:function(){return\"搜尋中…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/select2/sass/select2-bootstrap.min.scss",
    "content": "/*! Select2 Bootstrap Theme v0.1.0-beta.4 | MIT License | github.com/select2/select2-bootstrap-theme */\n\n//\n// Variables\n// --------------------------------------------------\n\n@import \"../../../../../sass/global/variables\";\n\n// Bootstrap defaults not available as pre-defined variables\n// These should not be overridden.\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L127\n\n$form-control-default-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);\n\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/mixins/_forms.scss#L43\n$form-control-focus-box-shadow: $form-control-default-box-shadow, 0 0 8px rgba($input-border-focus, 0.6);\n\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L128\n$form-control-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n\n// Custom variables\n// -------------------------\n\n$dropdown-arrow-color: $input-color-placeholder !default;\n$dropdown-box-shadow: 0 6px 12px rgba(0,0,0,.175) !default;\n$clear-selection-color: $dropdown-arrow-color !default;\n\n//\n// Mixins\n// --------------------------------------------------\n\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L115\n@mixin bootstrap-input-defaults {\n    @include box-shadow($form-control-default-box-shadow);\n    background-color: $input-bg;\n    border: 1px solid $input-border;\n    border-radius: $input-border-radius;\n    color: $input-color;\n    font-family: $font-family-base;\n    font-size: $font-size-base;\n}\n\n// @see http://getbootstrap.com/css/#forms-control-validation\n// @see https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_forms.scss#L388\n@mixin validation-state-focus($color) {\n    $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($color, 20%);\n\n    .select2-dropdown,\n    .select2-selection {\n        border-color: $color;\n    }\n\n    .select2-container--focus .select2-selection,\n    .select2-container--open .select2-selection {\n        @include box-shadow($shadow);\n        border-color: darken($color, 10%);\n    }\n\n    &.select2-drop-active {\n        border-color: darken($color, 10%);\n\n        &.select2-drop.select2-drop-above {\n            border-top-color: darken($color, 10%);\n        }\n    }\n}\n\n// dropdown arrow when dropdown is open\n@mixin dropdown-arrow {\n        .select2-selection--single {\n        /**\n         * Make the dropdown arrow point up while the dropdown is visible.\n         */\n\n        .select2-selection__arrow b {\n            border-color: transparent transparent $dropdown-arrow-color transparent;\n            border-width: 0 $caret-width-large $caret-width-large $caret-width-large;\n        }\n    }\n}\n\n\n\n\n\n.select2-container--bootstrap {\n    display: block;\n\n\n\n\n\n    /*------------------------------------*\\\n            #COMMON STYLES\n    \\*------------------------------------*/\n\n    .select2-selection {\n        @include bootstrap-input-defaults;\n        outline: 0;\n    }\n\n    /**\n     * Search field in the Select2 dropdown.\n     */\n\n    .select2-search--dropdown {\n        .select2-search__field {\n            @include bootstrap-input-defaults;\n        }\n    }\n\n    /**\n     * No outline for all search fields - in the dropdown\n     * and inline in multi Select2s.\n     */\n\n    .select2-search__field {\n        outline: 0;\n\n        &::-webkit-input-placeholder {\n            color: $input-color-placeholder;\n        }\n\n        /* Firefox 18- */\n        &:-moz-placeholder {\n            color: $input-color-placeholder;\n        }\n\n        /**\n         * Firefox 19+\n         *\n         * @see http://stackoverflow.com/questions/24236240/color-for-styled-placeholder-text-is-muted-in-firefox\n         */\n        &::-moz-placeholder {\n            color: $input-color-placeholder;\n            opacity: 1;\n        }\n\n        &:-ms-input-placeholder {\n            color: $input-color-placeholder;\n        }\n    }\n\n    /**\n     * Adjust Select2's choices hover and selected styles to match\n     * Bootstrap 3's default dropdown styles.\n     *\n     * @see http://getbootstrap.com/components/#dropdowns\n     */\n\n    .select2-results__option {\n\n        &[role=group] {\n            padding: 0;\n        }\n\n        /**\n         * Disabled results.\n         *\n         * @see https://select2.github.io/examples.html#disabled-results\n         */\n\n        &[aria-disabled=true] {\n            color: $dropdown-link-disabled-color;\n            cursor: $cursor-disabled;\n        }\n\n        /**\n         * Hover state.\n         */\n\n        &[aria-selected=true] {\n            background-color: $dropdown-link-hover-bg;\n            color: $dropdown-link-hover-color;\n        }\n\n        /**\n         * Selected state.\n         */\n\n        &--highlighted[aria-selected] {\n            background-color: $dropdown-link-active-bg;\n            color: $dropdown-link-active-color;\n        }\n\n        .select2-results__option {\n            padding: $padding-base-vertical $padding-base-horizontal;\n\n            .select2-results__group {\n                padding-left: 0;\n            }\n\n            .select2-results__option {\n                margin-left: -$padding-base-horizontal;\n                padding-left: $padding-base-horizontal*2;\n\n                .select2-results__option {\n                    margin-left: -$padding-base-horizontal*2;\n                    padding-left: $padding-base-horizontal*3;\n\n                    .select2-results__option {\n                        margin-left: -$padding-base-horizontal*3;\n                        padding-left: $padding-base-horizontal*4;\n\n                        .select2-results__option {\n                            margin-left: -$padding-base-horizontal*4;\n                            padding-left: $padding-base-horizontal*5;\n\n                            .select2-results__option {\n                                margin-left: -$padding-base-horizontal*5;\n                                padding-left: $padding-base-horizontal*6;\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    .select2-results__group {\n        color: $dropdown-header-color;\n        display: block;\n        padding: $padding-base-vertical $padding-base-horizontal;\n        font-size: $font-size-small;\n        line-height: $line-height-base;\n        white-space: nowrap;\n    }\n\n    &.select2-container--focus,\n    &.select2-container--open {\n        .select2-selection {\n            @include box-shadow($form-control-focus-box-shadow);\n            @include transition($form-control-transition);\n            border-color: $input-border-focus;\n        }\n    }\n\n    &.select2-container--open {\n        /**\n         * Make the dropdown arrow point up while the dropdown is visible.\n         */\n\n        .select2-selection .select2-selection__arrow b {\n            border-color: transparent transparent $dropdown-arrow-color transparent;\n            border-width: 0 $caret-width-base $caret-width-base $caret-width-base;\n        }\n\n        /**\n         * Handle border radii of the container when the dropdown is showing.\n         */\n\n        &.select2-container--below {\n            .select2-selection {\n                @include border-bottom-radius(0);\n                border-bottom-color: transparent;\n            }\n        }\n\n        &.select2-container--above {\n            .select2-selection {\n                @include border-top-radius(0);\n                border-top-color: transparent;\n            }\n        }\n    }\n\n    /**\n     * Clear the selection.\n     */\n\n    .select2-selection__clear {\n        color: $clear-selection-color;\n        cursor: pointer;\n        float: right;\n        font-weight: bold;\n        margin-right: 10px;\n\n        &:hover {\n            color: #333;\n        }\n    }\n\n    /**\n     * Address disabled Select2 styles.\n     *\n     * @see https://select2.github.io/examples.html#disabled\n     * @see http://getbootstrap.com/css/#forms-control-disabled\n     */\n\n    &.select2-container--disabled {\n\n        .select2-selection {\n            border-color: $input-border;\n            @include box-shadow(none);\n        }\n\n        .select2-selection,\n        .select2-search__field {\n            cursor: $cursor-disabled;\n        }\n\n        .select2-selection,\n        .select2-selection--multiple .select2-selection__choice {\n            background-color: $input-bg-disabled;\n        }\n\n        .select2-selection__clear,\n        .select2-selection--multiple .select2-selection__choice__remove {\n            display: none;\n        }\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n            #DROPDOWN\n    \\*------------------------------------*/\n\n    /**\n     * Dropdown border color and box-shadow.\n     */\n\n    .select2-dropdown {\n        @include box-shadow($dropdown-box-shadow);\n        border-color: $input-border-focus;\n        overflow-x: hidden;\n        margin-top: -1px;\n        &--above {\n            margin-top: 1px;\n        }\n    }\n\n    /**\n     * Limit the dropdown height.\n     */\n\n    .select2-results > .select2-results__options {\n        max-height: 200px;\n        overflow-y: auto;\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n            #SINGLE SELECT2\n    \\*------------------------------------*/\n\n    .select2-selection--single {\n        height: $input-height-base;\n        line-height: $line-height-base;\n        padding: $padding-base-vertical $padding-base-horizontal + $caret-width-base*3 $padding-base-vertical $padding-base-horizontal;\n\n        /**\n         * Adjust the single Select2's dropdown arrow button appearance.\n         */\n\n        .select2-selection__arrow {\n            position: absolute;\n            bottom: 0;\n            right: $padding-base-horizontal;\n            top: 0;\n            width: $caret-width-base;\n\n            b {\n                border-color: $dropdown-arrow-color transparent transparent transparent;\n                border-style: solid;\n                border-width: $caret-width-base $caret-width-base 0 $caret-width-base;\n                height: 0;\n                left: 0;\n                margin-left: -$caret-width-base;\n                margin-top: -$caret-width-base/2;\n                position: absolute;\n                top: 50%;\n                width: 0;\n            }\n        }\n\n        .select2-selection__rendered {\n            color: $input-color;\n            padding: 0;\n        }\n\n        .select2-selection__placeholder {\n            color: $input-color-placeholder;\n        }\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n        #MULTIPLE SELECT2\n    \\*------------------------------------*/\n\n    .select2-selection--multiple {\n        min-height: $input-height-base;\n\n        .select2-selection__rendered {\n            box-sizing: border-box;\n            display: block;\n            line-height: $line-height-base;\n            list-style: none;\n            margin: 0;\n            overflow: hidden;\n            padding: 0;\n            width: 100%;\n            text-overflow: ellipsis;\n            white-space: nowrap;\n        }\n\n        .select2-selection__placeholder {\n            color: $input-color-placeholder;\n            float: left;\n            margin-top: 5px;\n        }\n\n        /**\n         * Make Multi Select2's choices match Bootstrap 3's default button styles.\n         */\n\n        .select2-selection__choice {\n            color: $input-color;\n            background: $btn-default-bg;\n            border: 1px solid $btn-default-border;\n            border-radius: 4px;\n            cursor: default;\n            float: left;\n            margin: ($padding-base-vertical - 1) 0 0 $padding-base-horizontal/2;\n            padding: 0 $padding-base-vertical;\n        }\n\n        /**\n         * Minus 2px borders.\n         */\n\n        .select2-search--inline {\n            .select2-search__field {\n                background: transparent;\n                padding: 0 $padding-base-horizontal;\n                height: $input-height-base - 2;\n                line-height: $line-height-base;\n                margin-top: 0;\n                min-width: 5em;\n            }\n        }\n\n        .select2-selection__choice__remove {\n            color: #999;\n            cursor: pointer;\n            display: inline-block;\n            font-weight: bold;\n            margin-right: $padding-base-vertical / 2;\n\n            &:hover {\n                color: #333;\n            }\n        }\n\n        /**\n         * Clear the selection.\n         */\n\n        .select2-selection__clear {\n            margin-top: $padding-base-vertical;\n        }\n    }\n\n\n\n\n\n    /**\n     * Address Bootstrap control sizing classes\n     *\n     * 1. Reset Bootstrap defaults.\n     * 2. Adjust the dropdown arrow button icon position.\n     *\n     * @see http://getbootstrap.com/css/#forms-control-sizes\n     */\n\n    /* 1 */\n    &.input-sm,\n    &.input-lg {\n        border-radius: 0;\n        font-size: 12px;\n        height: auto;\n        line-height: 1;\n        padding: 0;\n    }\n\n    &.input-sm,\n    .input-group-sm &,\n    .form-group-sm & {\n        .select2-selection--single {\n            border-radius: $border-radius-small;\n            font-size: $font-size-small;\n            height: $input-height-small;\n            line-height: $line-height-small;\n            padding: $padding-small-vertical $padding-small-horizontal + $caret-width-base*3 $padding-small-vertical $padding-small-horizontal;\n\n            /* 2 */\n            .select2-selection__arrow b {\n                margin-left: -$padding-small-vertical;\n            }\n        }\n\n        .select2-selection--multiple {\n            min-height: $input-height-small;\n\n            .select2-selection__choice {\n                font-size: $font-size-small;\n                line-height: $line-height-small;\n                margin: ($padding-small-vertical - 1) 0 0 $padding-small-horizontal/2;\n                padding: 0 $padding-small-vertical;\n            }\n\n            .select2-search--inline .select2-search__field {\n                padding: 0 $padding-small-horizontal;\n                font-size: $font-size-small;\n                height: $input-height-small - 2;\n                line-height: $line-height-small;\n            }\n\n            .select2-selection__clear {\n                margin-top: $padding-small-vertical;\n            }\n        }\n    }\n\n    &.input-lg,\n    .input-group-lg &,\n    .form-group-lg & {\n        .select2-selection--single {\n            border-radius: $border-radius-large;\n            font-size: $font-size-large;\n            height: $input-height-large;\n            line-height: $line-height-large;\n            padding: $padding-large-vertical $padding-large-horizontal + $caret-width-large*3 $padding-large-vertical $padding-large-horizontal;\n\n            /* 1 */\n            .select2-selection__arrow {\n                width: $caret-width-large;\n\n                b {\n                    border-width: $caret-width-large $caret-width-large 0 $caret-width-large;\n                    margin-left: -$caret-width-large;\n                    margin-left: -$padding-large-vertical;\n                    margin-top: -$caret-width-large/2;\n                }\n            }\n        }\n\n        .select2-selection--multiple {\n            min-height: $input-height-large;\n\n            .select2-selection__choice {\n                font-size: $font-size-large;\n                line-height: $line-height-large;\n                border-radius: 4px;\n                margin: ($padding-large-vertical - 1) 0 0 $padding-large-horizontal/2;\n                padding: 0 $padding-large-vertical;\n            }\n\n            .select2-search--inline .select2-search__field {\n                padding: 0 $padding-large-horizontal;\n                font-size: $font-size-large;\n                height: $input-height-large - 2;\n                line-height: $line-height-large;\n            }\n\n            .select2-selection__clear {\n                margin-top: $padding-large-vertical;\n            }\n        }\n    }\n\n    &.input-lg.select2-container--open {\n        @include dropdown-arrow;\n    }\n\n    .input-group-lg & {\n        &.select2-container--open {\n            @include dropdown-arrow;\n        }\n    }\n\n\n\n\n\n    /*------------------------------------*\\\n        #RTL SUPPORT\n    \\*------------------------------------*/\n\n    &[dir=\"rtl\"] {\n\n        /**\n         * Single Select2\n         *\n         * 1. Makes sure that .select2-selection__placeholder is positioned\n         *    correctly.\n         */\n\n        .select2-selection--single {\n            padding-left: $padding-base-horizontal + $caret-width-base*3;\n            padding-right: $padding-base-horizontal;\n            .select2-selection__rendered {\n                padding-right: 0;\n                padding-left: 0;\n                text-align: right; /* 1 */\n            }\n\n            .select2-selection__clear {\n                float: left;\n            }\n\n            .select2-selection__arrow {\n                left: $padding-base-horizontal;\n                right: auto;\n\n                b {\n                    margin-left: 0;\n                }\n            }\n        }\n\n        /**\n         * Multiple Select2\n         */\n\n        .select2-selection--multiple {\n            .select2-selection__choice,\n            .select2-selection__placeholder {\n                float: right;\n            }\n\n            .select2-selection__choice {\n                margin-left: 0;\n                margin-right: $padding-base-horizontal/2;\n            }\n\n            .select2-selection__choice__remove {\n                margin-left: 2px;\n                margin-right: auto;\n            }\n        }\n    }\n}\n\n\n\n\n\n/*------------------------------------*\\\n    #ADDITIONAL GOODIES\n\\*------------------------------------*/\n\n/**\n * Address Bootstrap's validation states\n *\n * If a Select2 widget parent has one of Bootstrap's validation state modifier\n * classes, adjust Select2's border colors and focus states accordingly.\n * You may apply said classes to the Select2 dropdown (body > .select2-container)\n * via JavaScript match Bootstraps' to make its styles match.\n *\n * @see http://getbootstrap.com/css/#forms-control-validation\n */\n\n.has-warning {\n    @include validation-state-focus($state-warning-text);\n}\n\n.has-error {\n    @include validation-state-focus($state-danger-text);\n}\n\n.has-success {\n    @include validation-state-focus($state-success-text);\n}\n\n/**\n * Select2 widgets in Bootstrap Input Groups\n *\n * When Select2 widgets are combined with other elements using Bootstraps\n * \"Input Group\" component, we don't want specific edges of the Select2\n * container to have a border-radius.\n *\n * Use .select2-bootstrap-prepend and .select2-bootstrap-append on\n * a Bootstrap 3 .input-group to let the contained Select2 widget know which\n * edges should not be rounded as they are directly followed by another element.\n *\n * @see http://getbootstrap.com/components/#input-groups\n */\n\n/**\n * Mimick Bootstraps .input-group .form-control styles.\n *\n * @see https://github.com/twbs/bootstrap/blob/master/less/input-groups.less\n */\n\n.input-group .select2-container--bootstrap {\n    display: table;\n    table-layout: fixed;\n    position: relative;\n    z-index: 2;\n    float: left;\n    width: 100%;\n    margin-bottom: 0;\n}\n\n.input-group.select2-bootstrap-prepend .select2-container--bootstrap {\n    .select2-selection {\n        @include border-left-radius(0);\n    }\n}\n\n.input-group.select2-bootstrap-append .select2-container--bootstrap {\n    .select2-selection {\n        @include border-right-radius(0);\n    }\n}\n\n/**\n * Adjust alignment of Bootstrap buttons in Bootstrap Input Groups to address\n * Multi Select2's height which - depending on how many elements have been selected -\n * may grow taller than its initial size.\n *\n * @see http://getbootstrap.com/components/#input-groups\n */\n\n.select2-bootstrap-append,\n.select2-bootstrap-prepend {\n    .select2-container--bootstrap,\n    .input-group-btn,\n    .input-group-btn .btn {\n        vertical-align: top;\n    }\n}\n\n/**\n * Temporary fix for https://github.com/select2/select2-bootstrap-theme/issues/9\n *\n * Provides `!important` for certain properties of the class applied to the\n * original `<select>` element to hide it.\n *\n * @see https://github.com/select2/select2/pull/3301\n * @see https://github.com/fk/select2/commit/31830c7b32cb3d8e1b12d5b434dee40a6e753ada\n */\n\n.form-control.select2-hidden-accessible {\n    position: absolute !important;\n    width: 1px !important;\n}\n\n/**\n * Display override for inline forms\n*/\n\n.form-inline .select2-container--bootstrap {\n    display: inline-block;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/.gitignore",
    "content": "*.DS_Store\nnode_modules\nbower_components\n.sass-cache\nnpm-debug.log\n.idea\n.vscode"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Carlos - 安正超\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/README.md",
    "content": "[Share.js](http://overtrue.me/share.js/)\n===\n\n一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等社交网站。\n\n![qq20151127-1 2x](https://cloud.githubusercontent.com/assets/1472352/11433126/05f8b0e0-94f4-11e5-9fca-74dc9d1b633f.png)\n\n\n[DEMO](http://overtrue.me/share.js/)\n\n或者直接浏览我的博客 http://overtrue.me 或者 http://laravel.so 内容页查看效果。\n\n<p align=\"center\">\n  <br>\n  <b>创造不息，交付不止</b>\n  <br>\n  <a href=\"https://www.yousails.com\">\n    <img src=\"https://yousails.com/banners/brand.png\" width=350>\n  </a>\n</p>\n\n# 安装\n\n有3种安装方式：\n\n1. 使用 [npm](https://npmjs.com)\n\n    ```shell\n    npm install social-share.js\n    ```\n2. 使用 [bower](https://bower.io)\n\n    ```shell\n    bower install social-share.js\n    ```\n\n3. 使用 [cdnjs](https://cdnjs.com/libraries/social-share.js)，引入 `share.min.css` 与 `share.min.js` 两个链接就好。 (感谢 [@mdluo](https://github.com/mdluo))\n\n4. 手动下载或者 git clone 本项目。\n\n# 使用\n\n\nHTML:\n\n```html\n<div class=\"social-share\"></div>\n\n<!--  css & js -->\n<link rel=\"stylesheet\" href=\"dist/css/share.min.css\">\n<script src=\"dist/js/share.min.js\"></script>\n\n// 当你使用类名为 `social-share` 时不需要手动初始化\n```\n\n## 自定义配置\n\n所有配置**可选**， 通常默认就满足需求：\n\n可用的配置有：\n\n```js\n\nurl                 : '', // 网址，默认使用 window.location.href\nsource              : '', // 来源（QQ空间会用到）, 默认读取head标签：<meta name=\"site\" content=\"http://overtrue\" />\ntitle               : '', // 标题，默认读取 document.title 或者 <meta name=\"title\" content=\"share.js\" />\ndescription         : '', // 描述, 默认读取head标签：<meta name=\"description\" content=\"PHP弱类型的实现原理分析\" />\nimage               : '', // 图片, 默认取网页中第一个img标签\nsites               : ['qzone', 'qq', 'weibo','wechat', 'douban'], // 启用的站点\ndisabled            : ['google', 'facebook', 'twitter'], // 禁用的站点\nwechatQrcodeTitle   : '微信扫一扫：分享', // 微信二维码提示文字\nwechatQrcodeHelper  : '<p>微信里点“发现”，扫一下</p><p>二维码便可将本文分享至朋友圈。</p>'\n```\n\n以上选项均可通过标签 `data-xxx` 来设置：\n\n> 驼峰转为中横线，如`wechatQrcodeHelper` 的data标签为`data-wechat-qrcode-helper`\n\n##### 禁用 google、twitter、facebook 并设置分享的描述\n\n```html\n<div class=\"share-component\" data-disabled=\"google,twitter,facebook\" data-description=\"Share.js - 一键分享到微博，QQ空间，腾讯微博，人人，豆瓣\"></div>\n```\n\n##### 设置微信二维码标题\n\n```html\n<div class=\"social-share\" data-wechat-qrcode-title=\"请打开微信扫一扫\"></div>\n```\n\n##### 针对特定站点使用不同的属性（title, url, description,image...）\n\n```html\n<div class=\"social-share\" data-weibo-title=\"这个标题只有的分享到微博时有用，其它标题为全局标题\" data-qq-title=\"分享到QQ时用此标题\"></div>\n```\n\n### 你也可以自定义图标\n\n使用: `data-initialized=\"true\"` 标签或者 `initialized` 配置项来禁用自动生成icon功能。\n\n```html\n<div class=\"social-share\" data-initialized=\"true\">\n    <a href=\"#\" class=\"social-share-icon icon-weibo\"></a>\n    <a href=\"#\" class=\"social-share-icon icon-qq\"></a>\n    <a href=\"#\" class=\"social-share-icon icon-qzone\"></a>\n</div>\n```\n以上a标题会自动加上分享链接（`a` 标签必须带 `icon-NAME` 属性，不然分享链接不会自动加上）。\n\n### 如果你想在分享icon列表中内置一些元素，比如放一个收藏按钮在分享按钮的后面：\n\n```html\n<div class=\"social-share\">\n    <a href=\"javascript:;\" class=\"social-share-icon icon-heart\"></a>\n</div>\n```\n这样并没有实现，因为结果是所有的分享按钮都创建在了收藏按钮的后面了，这时候你就可以用 `data-mode=\"prepend\"` 来确定分享按钮创建的方式。\n\n```html\n<div class=\"social-share\" data-mode=\"prepend\">\n    <a href=\"javascript:;\" class=\"social-share-icon icon-heart\"></a>\n</div>\n```\n\n这样，所有的分享图标就会创建在容器的内容前面，反之可以用 `append` 创建在容器内容后面，当然这是默认的，也不需要这么做。\n\n### 指定移动设备上显示的图标\n\n```html\n<div class=\"share-component\" data-mobile-sites=\"weibo,qq,qzone,tencent\"></div>\n```\n当在手机上打开该页面的时候就只会显示这4个图标了。\n\n欢迎贡献代码及提建议！\n\n# 引用\n\n本项目中二维码生成部分用到了开源组件：[lrsjng/jquery-qrcode](https://github.com/lrsjng/jquery-qrcode) (MIT License)\n\n# License\n\n MIT\n\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/bower.json",
    "content": "{\n  \"name\": \"social-share.js\",\n  \"description\": \"create social share buttons on your site.\",\n  \"main\": \"src/js/jquery.share.js\",\n  \"authors\": [\n    \"overtrue\"\n  ],\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"sns\",\n    \"share\",\n    \"weibo\",\n    \"qq\",\n    \"douban\",\n    \"qzone\",\n    \"linkedin\",\n    \"facebook\",\n    \"google\"\n  ],\n  \"homepage\": \"https://github.com/overtrue/share.js\",\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\",\n    \"tests\",\n    \"demo\"\n  ]\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/demo/test-jquery.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>test</title>\n  <meta name=\"site\" content=\"content site\">\n  <meta name=\"Site\" content=\"content Site\">\n  <meta name=\"title\" content=\"content title\">\n  <meta name=\"Title\" content=\"content Title\">\n  <link rel=\"stylesheet\" href=\"../dist/css/share.min.css\">\n\n  <style>\n  .row{padding: 20px 0 0 20px}\n  .row-pad{padding: 20px 0 0 60px}\n  </style>\n</head>\n<body>\n  <div class=\"row-pad\">\n    <h1>test</h1>\n  </div>\n\n  <ol>\n    <li class=\"row\">\n      <div class=\"social-share\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"share-component\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-initialized=\"true\">\n        <a href=\"#\" class=\"social-share-icon icon-weibo\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qq\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qzone\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-mode=\"prepend\">\n        <a href=\"javascript:\" class=\"social-share-icon icon-heart\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-1\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-2\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-3\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-4\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n  </ol>\n\n<script src=\"http://apps.bdimg.com/libs/jquery/1.8.2/jquery.js\"></script>\n<script src=\"../dist/js/jquery.share.min.js\"></script>\n<script>\n$('#share-1').share();\n$('#share-2').share({sites: ['qzone', 'qq', 'weibo','wechat']});\n$('#share-3').share();\n$('#share-4').share();\n</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/demo/test-no-jquery.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>test</title>\n  <meta name=\"site\" content=\"content site\">\n  <meta name=\"Site\" content=\"content Site\">\n  <meta name=\"title\" content=\"content title\">\n  <meta name=\"Title\" content=\"content Title\">\n  <link rel=\"stylesheet\" href=\"../dist/css/share.min.css\">\n\n  <style>\n  .row{padding: 20px 0 0 20px}\n  .row-pad{padding: 20px 0 0 60px}\n  </style>\n</head>\n<body>\n  <div class=\"row-pad\">\n    <h1>test</h1>\n  </div>\n\n  <ol>\n    <li class=\"row\">\n      <div class=\"social-share\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"share-component\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\"></div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-initialized=\"true\">\n        <a href=\"#\" class=\"social-share-icon icon-weibo\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qq\"></a>\n        <a href=\"#\" class=\"social-share-icon icon-qzone\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div class=\"social-share\" data-mode=\"prepend\">\n        <a href=\"javascript:\" class=\"social-share-icon icon-heart\"></a>\n      </div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-1\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-2\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-3\" data-sites=\"weibo,qq,qzone,tencent\"></div>\n    </li>\n    <li class=\"row\">\n      <div id=\"share-4\" data-disabled=\"wechat , facebook, twitter, google\"></div>\n    </li>\n  </ol>\n\n<script src=\"../src/js/social-share.js\"></script>\n<script src=\"../src/js/qrcode.js\"></script>\n<script>\nsocialShare('#share-1');\nsocialShare('#share-2', {sites: ['qzone', 'qq', 'weibo','wechat']});\nsocialShare('#share-3');\nsocialShare('#share-4');\n</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/gulpfile.js",
    "content": "var basePaths = {\n  src: 'src/',\n  dest: 'dist/',\n  bower: 'bower_components/'\n};\nvar paths = {\n  scripts: {\n    src: basePaths.src + 'js/',\n    dest: basePaths.dest + 'js/'\n  },\n  styles: {\n    src: basePaths.src + 'css/',\n    dest: basePaths.dest + 'css/'\n  },\n  fonts: {\n    src: basePaths.src + 'fonts/',\n    dest: basePaths.dest + 'fonts/'\n  }\n};\n\nvar appFiles = {\n  styles: [paths.styles.src + '**/*.scss'],\n  jqueryShare: [paths.scripts.src + 'jquery.qrcode.min.js', paths.scripts.src + 'jquery.share.js'],\n  socialShare: [paths.scripts.src + 'qrcode.js', paths.scripts.src + 'social-share.js'],\n  fonts: [paths.fonts.src + '**/*']\n};\n\nvar vendorFiles = {\n  styles: [],\n  scripts: [],\n  fonts: []\n};\n\n/*\n  Let the magic begin\n*/\n\nvar gulp = require('gulp');\n\nvar es = require('event-stream');\nvar gutil = require('gulp-util');\nvar concat = require('gulp-concat');\nvar del = require('del');\n\nvar plugins = require(\"gulp-load-plugins\")({\n  pattern: ['gulp-*', 'gulp.*'],\n  replaceString: /\\bgulp[\\-.]/\n});\n\n// Allows gulp --dev to be run for a more verbose output\nvar isProduction = true;\nvar sassStyle = 'compressed';\nvar sourceMap = false;\n\nif(gutil.env.dev === true) {\n  sassStyle = 'expanded';\n  sourceMap = true;\n  isProduction = false;\n}\n\nvar changeEvent = function(evt) {\n  gutil.log('File', gutil.colors.cyan(evt.path.replace(new RegExp('/.*(?=/' + basePaths.src + ')/'), '')), 'was', gutil.colors.magenta(evt.type));\n};\n\nvar clean = function(path, cb) {\n  // You can use multiple globbing patterns as you would with `gulp.src`\n  del([path], {force:true}, cb);\n};\n\ngulp.task('css', function(){\n  // app css\n  return plugins.rubySass(vendorFiles.styles.concat(appFiles.styles), {\n      style: sassStyle, sourcemap: sourceMap, precision: 2\n    })\n    // .pipe(plugins.concat('style.min.css'))\n    .pipe(plugins.autoprefixer({\n      browsers: ['last 2 versions'],\n      cascade: false\n    }))\n    // .pipe(isProduction ? plugins.cssmin() : gutil.noop())\n    .pipe(plugins.size())\n    .on('error', function(err){\n      new gutil.PluginError('CSS', err, {showStack: true});\n    })\n    .pipe(plugins.notify())\n    .pipe(plugins.rename({suffix: '.min'}))\n    .pipe(gulp.dest(paths.styles.dest));\n});\n\ngulp.task('jquery.share.js', function () {\n  return gulp.src(appFiles.jqueryShare)\n    .pipe(concat('jquery.share.js'))\n    .pipe(isProduction ? plugins.uglify() : gutil.noop())\n    .pipe(plugins.size())\n    .pipe(plugins.notify())\n    .pipe(plugins.rename({suffix: '.min'}))\n    .pipe(gulp.dest(paths.scripts.dest));\n});\n\ngulp.task('share.js', function () {\n  return gulp.src(appFiles.socialShare)\n    .pipe(concat('social-share.js'))\n    .pipe(isProduction ? plugins.uglify() : gutil.noop())\n    .pipe(plugins.size())\n    .pipe(plugins.notify())\n    .pipe(plugins.rename({suffix: '.min'}))\n    .pipe(gulp.dest(paths.scripts.dest));\n});\n\ngulp.task('fonts', function(){\n  return gulp.src(appFiles.fonts)\n    .pipe(gulp.dest(paths.fonts.dest));\n});\n\n\ngulp.task('watch', ['css', 'jquery.share.js', 'share.js', 'fonts'], function () {\n  gulp.watch(appFiles.styles, ['css']).on('change', function (evt) {\n    changeEvent(evt);\n  });\n\n  gulp.watch(paths.scripts.src + '*.js', ['jquery.share.js', 'share.js']).on('change', function (evt) {\n    changeEvent(evt);\n  });\n});\n\ngulp.task('default', ['css', 'jquery.share.js', 'share.js', 'fonts']);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/package.json",
    "content": "{\n  \"name\": \"social-share.js\",\n  \"description\": \"create social share buttons on your site.\",\n  \"version\": \"1.0.16\",\n  \"main\": \"dist/js/share.min.js\",\n  \"dependencies\": {},\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/overtrue/share.js.git\"\n  },\n  \"keywords\": [\n    \"sns\",\n    \"share\",\n    \"weibo\",\n    \"qq\",\n    \"douban\",\n    \"qzone\",\n    \"linkedin\",\n    \"facebook\",\n    \"google\"\n  ],\n  \"author\": \"overtrue\",\n  \"license\": \"MIT\",\n  \"bugs\": {\n    \"url\": \"https://github.com/overtrue/share.js/issues\"\n  },\n  \"homepage\": \"https://github.com/overtrue/share.js#readme\",\n  \"devDependencies\": {\n    \"event-stream\": \"*\",\n    \"del\": \"*\",\n    \"gulp\": \"*\",\n    \"gulp-autoprefixer\": \"*\",\n    \"gulp-combine-media-queries\": \"*\",\n    \"gulp-concat\": \"*\",\n    \"gulp-cssmin\": \"*\",\n    \"gulp-load-plugins\": \"*\",\n    \"gulp-rename\": \"*\",\n    \"gulp-ruby-sass\": \"*\",\n    \"gulp-size\": \"*\",\n    \"gulp-uglify\": \"*\",\n    \"gulp-util\": \"*\",\n    \"gulp-notify\": \"*\",\n    \"gulp-imagemin\": \"*\",\n    \"gulp-livereload\": \"*\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/src/css/share.scss",
    "content": "\n@font-face {font-family: \"socialshare\";\n  src: url('../fonts/iconfont.eot'); /* IE9*/\n  src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */\n  url('../fonts/iconfont.woff') format('woff'), /* chrome, firefox */\n  url('../fonts/iconfont.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/\n  url('../fonts/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */\n}\n\n.social-share {\n  font-family:\"socialshare\" !important;\n  font-size:16px;\n  font-style:normal;\n  -webkit-font-smoothing: antialiased;\n  -webkit-text-stroke-width: 0.2px;\n  -moz-osx-font-smoothing: grayscale;\n   * {\n    font-family:\"socialshare\" !important;\n  }\n  .icon-tencent:before { content: \"\\f07a\"; }\n  .icon-qq:before { content: \"\\f11a\"; }\n  .icon-weibo:before { content: \"\\f12a\"; }\n  .icon-wechat:before { content: \"\\f09a\"; }\n  .icon-douban:before { content: \"\\f10a\"; }\n  .icon-heart:before { content: \"\\f20a\"; }\n  .icon-like:before { content: \"\\f00a\"; }\n  .icon-qzone:before { content: \"\\f08a\"; }\n  .icon-linkedin:before { content: \"\\f01a\"; }\n  .icon-diandian:before { content: \"\\f05a\"; }\n  .icon-facebook:before { content: \"\\f03a\"; }\n  .icon-google:before { content: \"\\f04a\"; }\n  .icon-twitter:before { content: \"\\f06a\"; }\n\n  a {\n    position:relative;\n    text-decoration:none;\n    margin: 4px;\n    display:inline-block;\n    outline: none;\n  }\n\n  .social-share-icon {\n    position:relative;\n    display:inline-block;\n    width: 32px;\n    height: 32px;\n    font-size: 20px;\n    border-radius: 50%;\n    line-height: 32px;\n    border:1px solid #666;\n    color: #666;\n    text-align: center;\n    vertical-align: middle;\n    transition: background 0.6s ease-out 0s;\n\n    &:hover{\n      background: #666;\n      color: #fff;\n    }\n  }\n\n  .icon-weibo{\n    color:#ff763b;border-color:#ff763b;\n    &:hover{\n      background:#ff763b;\n    }\n  }\n  .icon-tencent{\n    color:#56b6e7;border-color:#56b6e7;\n    &:hover{\n      background:#56b6e7;\n    }\n  }\n  .icon-qq{\n    color:#56b6e7;border-color:#56b6e7;\n    &:hover{\n      background:#56b6e7;\n    }\n  }\n  .icon-qzone{\n    color:#FDBE3D;border-color:#FDBE3D;\n    &:hover{\n      background:#FDBE3D;\n    }\n  }\n  .icon-douban{\n    color:#33b045;border-color:#33b045;\n    &:hover{\n      background:#33b045;\n    }\n  }\n  .icon-linkedin{\n    color:#0077B5;border-color:#0077B5;\n    &:hover{\n      background:#0077B5;\n    }\n  }\n  .icon-facebook {\n    color:#44619D;border-color:#44619D;\n    &:hover{\n      background:#44619D;\n    }\n  }\n  .icon-google {\n    color:#db4437;border-color:#db4437;\n    &:hover{\n      background:#db4437;\n    }\n  }\n  .icon-twitter {\n    color:#55acee;border-color:#55acee;\n    &:hover{\n      background:#55acee;\n    }\n  }\n  .icon-diandian {color:#307DCA; border-color:#307DCA;\n\n    &:hover{\n      background:#307DCA;\n    }\n  }\n  .icon-wechat{\n    position:relative;color:#7bc549;border-color:#7bc549;\n    &:hover{\n      background:#7bc549;\n    }\n  }\n  .icon-wechat .wechat-qrcode{display: none;border: 1px solid #eee;position:absolute;z-index:9;top:-205px;left:-84px;width:200px;height:192px;color:#666;font-size:12px;text-align:center;background-color:#fff;box-shadow:0 2px 10px #aaa;transition:all 200ms;-webkit-tansition:all 350ms;-moz-transition:all 350ms; }\n  .icon-wechat .wechat-qrcode.bottom {\n    top:40px;\n    left:-84px;\n    &:after {\n      display:none;\n    }\n  }\n  .icon-wechat .wechat-qrcode h4{font-weight:normal;height:26px;line-height:26px;font-size:12px; background-color:#f3f3f3; margin:0;padding:0;color: #777; }\n  .icon-wechat .wechat-qrcode .qrcode{width:105px; margin:10px auto;}\n  .icon-wechat .wechat-qrcode .qrcode table{margin:0!important;}\n  .icon-wechat .wechat-qrcode .help p{font-weight:normal;line-height:16px;padding:0;margin:0;}\n  .icon-wechat .wechat-qrcode:after{content:'';position:absolute;left:50%;margin-left:-6px;bottom:-13px;width:0;height:0;border-width:8px 6px 6px 6px;border-style:solid;border-color:#fff transparent transparent transparent}\n  .icon-wechat:hover .wechat-qrcode{display: block;}\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/src/js/jquery.share.js",
    "content": "/**\n * Share.js\n *\n * @author  overtrue <i@overtrue.me>\n * @license MIT\n *\n * @example\n * <pre>\n * $('.share-components').share();\n *\n * // or\n *\n * $('.share-bar').share({\n *     sites: ['qzone', 'qq', 'weibo','wechat'],\n *     // ...\n * });\n * </pre>\n */\n;(function($){\n    /**\n     * Initialize a share bar.\n     *\n     * @param {Object}        $options globals (optional).\n     *\n     * @return {Void}\n     */\n    $.fn.share = function ($options) {\n        var $head = $(document.head);\n\n        var $defaults = {\n            url: location.href,\n            site_url: location.origin,\n            source: $head.find('[name=site], [name=Site]').attr('content') || document.title,\n            title: $head.find('[name=title], [name=Title]').attr('content') || document.title,\n            description: $head.find('[name=description], [name=Description]').attr('content') || '',\n            image: $('img:first').prop('src') || '',\n            imageSelector: undefined,\n\n            weiboKey: '',\n\n            wechatQrcodeTitle: '微信扫一扫：分享',\n            wechatQrcodeHelper: '<p>微信里点“发现”，扫一下二维码</p><p>便可将本文分享至朋友圈。</p>',\n            wechatQrcodeSize: 100,\n\n            mobileSites: [],\n            sites: ['weibo','qq','wechat','tencent','douban','qzone','linkedin','diandian','facebook','twitter','google'],\n            disabled: [],\n            initialized: false\n        };\n\n        var $globals = $.extend({}, $defaults, $options);\n\n        var $templates = {\n            qzone       : 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}',\n            qq          : 'http://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}',\n            tencent     : 'http://share.v.t.qq.com/index.php?c=share&a=index&title={{TITLE}}&url={{URL}}&pic={{IMAGE}}',\n            weibo       : 'http://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}',\n            wechat      : 'javascript:;',\n            douban      : 'http://shuo.douban.com/!service/share?href={{URL}}&name={{TITLE}}&text={{DESCRIPTION}}&image={{IMAGE}}&starid=0&aid=0&style=11',\n            diandian    : 'http://www.diandian.com/share?lo={{URL}}&ti={{TITLE}}&type=link',\n            linkedin    : 'http://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin',\n            facebook    : 'https://www.facebook.com/sharer/sharer.php?u={{URL}}&title={{TITLE}}&description={{DESCRIPTION}}&caption={{SUBHEAD}}&link={{URL}}&picture={{IMAGE}}',\n            twitter     : 'https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{SITE_URL}}',\n            google      : 'https://plus.google.com/share?url={{URL}}'\n        };\n\n        var $ariaLabels = {\n            qzone: \"QQ空间\",\n            qq: \"QQ\",\n            tencent: \"腾讯微博\",\n            weibo: \"微博\",\n            wechat: \"微信\",\n            douban: \"豆瓣\",\n            diandian: \"点点\",\n            linkedin: \"LinkedIn\",\n            facebook: \"Facebook\",\n            twitter: \"Twitter\",\n            google: \"Google\"\n        };\n\n        this.each(function() {\n            if ($(this).data('initialized')) {\n                return true;\n            }\n\n            var $data      = $.extend({}, $globals, $(this).data());\n            if ($data.imageSelector) {\n                $data.image = $($data.imageSelector).map(function() {\n                    return $(this).prop('src');\n                }).get().join('||');\n            }\n            var $container = $(this).addClass('share-component social-share');\n\n            createIcons($container, $data);\n            createWechat($container, $data);\n\n            $(this).data('initialized', true);\n        });\n\n        /**\n         * Create site icons\n         *\n         * @param {Object|String} $container\n         * @param {Object}        $data\n         */\n        function createIcons ($container, $data) {\n            var $sites = getSites($data);\n\n            $data.mode == 'prepend' ? $sites.reverse() : $sites\n\n            if (!$sites.length) {return;}\n\n            $.each($sites, function (i, $name) {\n                var $url  = makeUrl($name, $data);\n                var $link = $data.initialized ? $container.find('.icon-'+$name) : $('<a class=\"social-share-icon icon-'+$name+'\"></a>');\n\n                if (!$link.length) {\n                    return true;\n                }\n                $link.prop('aria-label', \"分享到 \"+$ariaLabels[$name]);\n\n                $link.prop('href', $url);\n\n                if ($name === 'wechat') {\n                    $link.prop('tabindex', -1);\n                } else {\n                    $link.prop('target', '_blank');\n                }\n\n                if (!$data.initialized) {\n                    $data.mode == 'prepend' ? $container.prepend($link) : $container.append($link);\n                }\n            });\n        }\n\n        /**\n         * Create the wechat icon and QRCode.\n         *\n         * @param {Object|String} $container\n         * @param {Object}        $data\n         */\n        function createWechat ($container, $data) {\n            var $wechat = $container.find('a.icon-wechat');\n\n            if (!$wechat.length) {return;}\n\n            $wechat.append('<div class=\"wechat-qrcode\"><h4>'+$data.wechatQrcodeTitle+'</h4><div class=\"qrcode\"></div><div class=\"help\">'+$data.wechatQrcodeHelper+'</div></div>');\n\n            $wechat.find('.qrcode').qrcode({render: 'image', size: $data.wechatQrcodeSize, text: $data.url});\n\n            if ($wechat.offset().top < 100) {\n                $wechat.find('.wechat-qrcode').addClass('bottom');\n            }\n        }\n\n        /**\n         * Get available site lists.\n         *\n         * @param {Array} $data\n         *\n         * @return {Array}\n         */\n        function getSites ($data) {\n            if ($data['mobileSites'].length === 0 && $data['sites'].length) {\n                $data['mobileSites'] = $data['sites'];\n            };\n\n            var $sites = (isMobileScreen() ? $data['mobileSites'] : ($data['sites'].length ? $data['sites']: [])).slice(0);\n            var $disabled = $data['disabled'];\n\n            if (typeof $sites == 'string') { $sites = $sites.split(/\\s*,\\s*/); }\n            if (typeof $disabled == 'string') { $disabled = $disabled.split(/\\s*,\\s*/); }\n\n            if (runningInWeChat()) {\n                $disabled.push('wechat');\n            }\n            // Remove elements\n            $disabled.length && $.each($disabled, function (i, el) {\n                var removeItemIndex = $.inArray(el, $sites);\n                if (removeItemIndex !== -1) {\n                    $sites.splice(removeItemIndex, 1);\n                }\n            });\n\n            return $sites;\n        }\n\n        /**\n         * Build the url of icon.\n         *\n         * @param {String} $name\n         * @param {Object} $data\n         *\n         * @return {String}\n         */\n        function makeUrl ($name, $data) {\n            var $template = $templates[$name];\n            $data['summary'] = $data['description'];\n\n            for (var $key in $data) {\n                if ($data.hasOwnProperty($key)) {\n                    var $camelCaseKey = $name + $key.replace(/^[a-z]/, function($str){\n                        return $str.toUpperCase();\n                    });\n\n                    var $value = encodeURIComponent($data[$camelCaseKey] === undefined ? $data[$key] : $data[$camelCaseKey]);\n                    $template = $template.replace(new RegExp('{{'+$key.toUpperCase()+'}}', 'g'), $value);\n                }\n            }\n\n            return $template;\n        }\n\n        /**\n         * Detect wechat browser.\n         *\n         * @return {Boolean}\n         */\n        function runningInWeChat() {\n            return /MicroMessenger/i.test(navigator.userAgent);\n        }\n\n        /**\n         * Mobile screen width.\n         *\n         * @return {boolean}\n         */\n        function isMobileScreen () {\n            return $(window).width() <= 768;\n        }\n    };\n\n    // Domready after initialization\n    $(function () {\n        $('.share-component,.social-share').share();\n    });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/src/js/qrcode.js",
    "content": "/**\n * @fileoverview\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n * \n * @author davidshimjs\n * @see <a href=\"http://www.d-project.com/\" target=\"_blank\">http://www.d-project.com/</a>\n * @see <a href=\"http://jeromeetienne.github.com/jquery-qrcode/\" target=\"_blank\">http://jeromeetienne.github.com/jquery-qrcode/</a>\n */\nvar QRCode;\n\n(function () {\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t//   http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of \n\t// DENSO WAVE INCORPORATED\n\t//   http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\tfunction QR8bitByte(data) {\n\t\tthis.mode = QRMode.MODE_8BIT_BYTE;\n\t\tthis.data = data;\n\t\tthis.parsedData = [];\n\n\t\t// Added to support UTF-8 Characters\n\t\tfor (var i = 0, l = this.data.length; i < l; i++) {\n\t\t\tvar byteArray = [];\n\t\t\tvar code = this.data.charCodeAt(i);\n\n\t\t\tif (code > 0x10000) {\n\t\t\t\tbyteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n\t\t\t\tbyteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[3] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x800) {\n\t\t\t\tbyteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[2] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x80) {\n\t\t\t\tbyteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n\t\t\t\tbyteArray[1] = 0x80 | (code & 0x3F);\n\t\t\t} else {\n\t\t\t\tbyteArray[0] = code;\n\t\t\t}\n\n\t\t\tthis.parsedData.push(byteArray);\n\t\t}\n\n\t\tthis.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n\t\tif (this.parsedData.length != this.data.length) {\n\t\t\tthis.parsedData.unshift(191);\n\t\t\tthis.parsedData.unshift(187);\n\t\t\tthis.parsedData.unshift(239);\n\t\t}\n\t}\n\n\tQR8bitByte.prototype = {\n\t\tgetLength: function (buffer) {\n\t\t\treturn this.parsedData.length;\n\t\t},\n\t\twrite: function (buffer) {\n\t\t\tfor (var i = 0, l = this.parsedData.length; i < l; i++) {\n\t\t\t\tbuffer.put(this.parsedData[i], 8);\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n\t\tthis.typeNumber = typeNumber;\n\t\tthis.errorCorrectLevel = errorCorrectLevel;\n\t\tthis.modules = null;\n\t\tthis.moduleCount = 0;\n\t\tthis.dataCache = null;\n\t\tthis.dataList = [];\n\t}\n\n\tQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\n\treturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row<this.moduleCount;row++){this.modules[row]=new Array(this.moduleCount);for(var col=0;col<this.moduleCount;col++){this.modules[row][col]=null;}}\n\tthis.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(test,maskPattern);if(this.typeNumber>=7){this.setupTypeNumber(test);}\n\tif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\n\tthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\n\treturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row<this.modules.length;row++){var y=row*cs;for(var col=0;col<this.modules[row].length;col++){var x=col*cs;var dark=this.modules[row][col];if(dark){qr_mc.beginFill(0,100);qr_mc.moveTo(x,y);qr_mc.lineTo(x+cs,y);qr_mc.lineTo(x+cs,y+cs);qr_mc.lineTo(x,y+cs);qr_mc.endFill();}}}\n\treturn qr_mc;},setupTimingPattern:function(){for(var r=8;r<this.moduleCount-8;r++){if(this.modules[r][6]!=null){continue;}\n\tthis.modules[r][6]=(r%2==0);}\n\tfor(var c=8;c<this.moduleCount-8;c++){if(this.modules[6][c]!=null){continue;}\n\tthis.modules[6][c]=(c%2==0);}},setupPositionAdjustPattern:function(){var pos=QRUtil.getPatternPosition(this.typeNumber);for(var i=0;i<pos.length;i++){for(var j=0;j<pos.length;j++){var row=pos[i];var col=pos[j];if(this.modules[row][col]!=null){continue;}\n\tfor(var r=-2;r<=2;r++){for(var c=-2;c<=2;c++){if(r==-2||r==2||c==-2||c==2||(r==0&&c==0)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}}}},setupTypeNumber:function(test){var bits=QRUtil.getBCHTypeNumber(this.typeNumber);for(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\n\tfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\n\tfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\n\tthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex<data.length){dark=(((data[byteIndex]>>>bitIndex)&1)==1);}\n\tvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\n\tthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\n\trow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;i<dataList.length;i++){var data=dataList[i];buffer.put(data.mode,4);buffer.put(data.getLength(),QRUtil.getLengthInBits(data.mode,typeNumber));data.write(buffer);}\n\tvar totalDataCount=0;for(var i=0;i<rsBlocks.length;i++){totalDataCount+=rsBlocks[i].dataCount;}\n\tif(buffer.getLengthInBits()>totalDataCount*8){throw new Error(\"code length overflow. (\"\n\t+buffer.getLengthInBits()\n\t+\">\"\n\t+totalDataCount*8\n\t+\")\");}\n\tif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\n\twhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\n\twhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD1,8);}\n\treturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r<rsBlocks.length;r++){var dcCount=rsBlocks[r].dataCount;var ecCount=rsBlocks[r].totalCount-dcCount;maxDcCount=Math.max(maxDcCount,dcCount);maxEcCount=Math.max(maxEcCount,ecCount);dcdata[r]=new Array(dcCount);for(var i=0;i<dcdata[r].length;i++){dcdata[r][i]=0xff&buffer.buffer[i+offset];}\n\toffset+=dcCount;var rsPoly=QRUtil.getErrorCorrectPolynomial(ecCount);var rawPoly=new QRPolynomial(dcdata[r],rsPoly.getLength()-1);var modPoly=rawPoly.mod(rsPoly);ecdata[r]=new Array(rsPoly.getLength()-1);for(var i=0;i<ecdata[r].length;i++){var modIndex=i+modPoly.getLength()-ecdata[r].length;ecdata[r][i]=(modIndex>=0)?modPoly.get(modIndex):0;}}\n\tvar totalCodeCount=0;for(var i=0;i<rsBlocks.length;i++){totalCodeCount+=rsBlocks[i].totalCount;}\n\tvar data=new Array(totalCodeCount);var index=0;for(var i=0;i<maxDcCount;i++){for(var r=0;r<rsBlocks.length;r++){if(i<dcdata[r].length){data[index++]=dcdata[r][i];}}}\n\tfor(var i=0;i<maxEcCount;i++){for(var r=0;r<rsBlocks.length;r++){if(i<ecdata[r].length){data[index++]=ecdata[r][i];}}}\n\treturn data;};var QRMode={MODE_NUMBER:1<<0,MODE_ALPHA_NUM:1<<1,MODE_8BIT_BYTE:1<<2,MODE_KANJI:1<<3};var QRErrorCorrectLevel={L:1,M:0,Q:3,H:2};var QRMaskPattern={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var QRUtil={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:(1<<10)|(1<<8)|(1<<5)|(1<<4)|(1<<2)|(1<<1)|(1<<0),G18:(1<<12)|(1<<11)|(1<<10)|(1<<9)|(1<<8)|(1<<5)|(1<<2)|(1<<0),G15_MASK:(1<<14)|(1<<12)|(1<<10)|(1<<4)|(1<<1),getBCHTypeInfo:function(data){var d=data<<10;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)>=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\n\treturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\n\treturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\n\treturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i<errorCorrectLength;i++){a=a.multiply(new QRPolynomial([1,QRMath.gexp(i)],0));}\n\treturn a;},getLengthInBits:function(mode,type){if(1<=type&&type<10){switch(mode){case QRMode.MODE_NUMBER:return 10;case QRMode.MODE_ALPHA_NUM:return 9;case QRMode.MODE_8BIT_BYTE:return 8;case QRMode.MODE_KANJI:return 8;default:throw new Error(\"mode:\"+mode);}}else if(type<27){switch(mode){case QRMode.MODE_NUMBER:return 12;case QRMode.MODE_ALPHA_NUM:return 11;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 10;default:throw new Error(\"mode:\"+mode);}}else if(type<41){switch(mode){case QRMode.MODE_NUMBER:return 14;case QRMode.MODE_ALPHA_NUM:return 13;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 12;default:throw new Error(\"mode:\"+mode);}}else{throw new Error(\"type:\"+type);}},getLostPoint:function(qrCode){var moduleCount=qrCode.getModuleCount();var lostPoint=0;for(var row=0;row<moduleCount;row++){for(var col=0;col<moduleCount;col++){var sameCount=0;var dark=qrCode.isDark(row,col);for(var r=-1;r<=1;r++){if(row+r<0||moduleCount<=row+r){continue;}\n\tfor(var c=-1;c<=1;c++){if(col+c<0||moduleCount<=col+c){continue;}\n\tif(r==0&&c==0){continue;}\n\tif(dark==qrCode.isDark(row+r,col+c)){sameCount++;}}}\n\tif(sameCount>5){lostPoint+=(3+sameCount-5);}}}\n\tfor(var row=0;row<moduleCount-1;row++){for(var col=0;col<moduleCount-1;col++){var count=0;if(qrCode.isDark(row,col))count++;if(qrCode.isDark(row+1,col))count++;if(qrCode.isDark(row,col+1))count++;if(qrCode.isDark(row+1,col+1))count++;if(count==0||count==4){lostPoint+=3;}}}\n\tfor(var row=0;row<moduleCount;row++){for(var col=0;col<moduleCount-6;col++){if(qrCode.isDark(row,col)&&!qrCode.isDark(row,col+1)&&qrCode.isDark(row,col+2)&&qrCode.isDark(row,col+3)&&qrCode.isDark(row,col+4)&&!qrCode.isDark(row,col+5)&&qrCode.isDark(row,col+6)){lostPoint+=40;}}}\n\tfor(var col=0;col<moduleCount;col++){for(var row=0;row<moduleCount-6;row++){if(qrCode.isDark(row,col)&&!qrCode.isDark(row+1,col)&&qrCode.isDark(row+2,col)&&qrCode.isDark(row+3,col)&&qrCode.isDark(row+4,col)&&!qrCode.isDark(row+5,col)&&qrCode.isDark(row+6,col)){lostPoint+=40;}}}\n\tvar darkCount=0;for(var col=0;col<moduleCount;col++){for(var row=0;row<moduleCount;row++){if(qrCode.isDark(row,col)){darkCount++;}}}\n\tvar ratio=Math.abs(100*darkCount/moduleCount/moduleCount-50)/5;lostPoint+=ratio*10;return lostPoint;}};var QRMath={glog:function(n){if(n<1){throw new Error(\"glog(\"+n+\")\");}\n\treturn QRMath.LOG_TABLE[n];},gexp:function(n){while(n<0){n+=255;}\n\twhile(n>=256){n-=255;}\n\treturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<<i;}\n\tfor(var i=8;i<256;i++){QRMath.EXP_TABLE[i]=QRMath.EXP_TABLE[i-4]^QRMath.EXP_TABLE[i-5]^QRMath.EXP_TABLE[i-6]^QRMath.EXP_TABLE[i-8];}\n\tfor(var i=0;i<255;i++){QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]]=i;}\n\tfunction QRPolynomial(num,shift){if(num.length==undefined){throw new Error(num.length+\"/\"+shift);}\n\tvar offset=0;while(offset<num.length&&num[offset]==0){offset++;}\n\tthis.num=new Array(num.length-offset+shift);for(var i=0;i<num.length-offset;i++){this.num[i]=num[i+offset];}}\n\tQRPolynomial.prototype={get:function(index){return this.num[index];},getLength:function(){return this.num.length;},multiply:function(e){var num=new Array(this.getLength()+e.getLength()-1);for(var i=0;i<this.getLength();i++){for(var j=0;j<e.getLength();j++){num[i+j]^=QRMath.gexp(QRMath.glog(this.get(i))+QRMath.glog(e.get(j)));}}\n\treturn new QRPolynomial(num,0);},mod:function(e){if(this.getLength()-e.getLength()<0){return this;}\n\tvar ratio=QRMath.glog(this.get(0))-QRMath.glog(e.get(0));var num=new Array(this.getLength());for(var i=0;i<this.getLength();i++){num[i]=this.get(i);}\n\tfor(var i=0;i<e.getLength();i++){num[i]^=QRMath.gexp(QRMath.glog(e.get(i))+ratio);}\n\treturn new QRPolynomial(num,0).mod(e);}};function QRRSBlock(totalCount,dataCount){this.totalCount=totalCount;this.dataCount=dataCount;}\n\tQRRSBlock.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];QRRSBlock.getRSBlocks=function(typeNumber,errorCorrectLevel){var rsBlock=QRRSBlock.getRsBlockTable(typeNumber,errorCorrectLevel);if(rsBlock==undefined){throw new Error(\"bad rs block @ typeNumber:\"+typeNumber+\"/errorCorrectLevel:\"+errorCorrectLevel);}\n\tvar length=rsBlock.length/3;var list=[];for(var i=0;i<length;i++){var count=rsBlock[i*3+0];var totalCount=rsBlock[i*3+1];var dataCount=rsBlock[i*3+2];for(var j=0;j<count;j++){list.push(new QRRSBlock(totalCount,dataCount));}}\n\treturn list;};QRRSBlock.getRsBlockTable=function(typeNumber,errorCorrectLevel){switch(errorCorrectLevel){case QRErrorCorrectLevel.L:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+0];case QRErrorCorrectLevel.M:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+1];case QRErrorCorrectLevel.Q:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+2];case QRErrorCorrectLevel.H:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+3];default:return undefined;}};function QRBitBuffer(){this.buffer=[];this.length=0;}\n\tQRBitBuffer.prototype={get:function(index){var bufIndex=Math.floor(index/8);return((this.buffer[bufIndex]>>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i<length;i++){this.putBit(((num>>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\n\tif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\n\tthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\t\n\tfunction _isSupportCanvas() {\n\t\treturn typeof CanvasRenderingContext2D != \"undefined\";\n\t}\n\t\n\t// android 2.x doesn't support Data-URI spec\n\tfunction _getAndroid() {\n\t\tvar android = false;\n\t\tvar sAgent = navigator.userAgent;\n\t\t\n\t\tif (/android/i.test(sAgent)) { // android\n\t\t\tandroid = true;\n\t\t\tvar aMat = sAgent.toString().match(/android ([0-9]\\.[0-9])/i);\n\t\t\t\n\t\t\tif (aMat && aMat[1]) {\n\t\t\t\tandroid = parseFloat(aMat[1]);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn android;\n\t}\n\t\n\tvar svgDrawer = (function() {\n\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\n\t\tDrawing.prototype.draw = function (oQRCode) {\n\t\t\tvar _htOption = this._htOption;\n\t\t\tvar _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\n\t\t\tthis.clear();\n\n\t\t\tfunction makeSVG(tag, attrs) {\n\t\t\t\tvar el = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\t\t\t\tfor (var k in attrs)\n\t\t\t\t\tif (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tvar svg = makeSVG(\"svg\" , {'viewBox': '0 0 ' + String(nCount) + \" \" + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});\n\t\t\tsvg.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n\t\t\t_el.appendChild(svg);\n\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorLight, \"width\": \"100%\", \"height\": \"100%\"}));\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorDark, \"width\": \"1\", \"height\": \"1\", \"id\": \"template\"}));\n\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tif (oQRCode.isDark(row, col)) {\n\t\t\t\t\t\tvar child = makeSVG(\"use\", {\"x\": String(col), \"y\": String(row)});\n\t\t\t\t\t\tchild.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", \"#template\")\n\t\t\t\t\t\tsvg.appendChild(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tDrawing.prototype.clear = function () {\n\t\t\twhile (this._el.hasChildNodes())\n\t\t\t\tthis._el.removeChild(this._el.lastChild);\n\t\t};\n\t\treturn Drawing;\n\t})();\n\n\tvar useSVG = document.documentElement.tagName.toLowerCase() === \"svg\";\n\n\t// Drawing in DOM by using Table tag\n\tvar Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode\n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n            var _htOption = this._htOption;\n            var _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\t\t\tvar aHTML = ['<table style=\"border:0;border-collapse:collapse;\">'];\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\taHTML.push('<tr>');\n\t\t\t\t\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\taHTML.push('<td style=\"border:0;border-collapse:collapse;padding:0;margin:0;width:' + nWidth + 'px;height:' + nHeight + 'px;background-color:' + (oQRCode.isDark(row, col) ? _htOption.colorDark : _htOption.colorLight) + ';\"></td>');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\taHTML.push('</tr>');\n\t\t\t}\n\t\t\t\n\t\t\taHTML.push('</table>');\n\t\t\t_el.innerHTML = aHTML.join('');\n\t\t\t\n\t\t\t// Fix the margin values as real size.\n\t\t\tvar elTable = _el.childNodes[0];\n\t\t\tvar nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;\n\t\t\tvar nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;\n\t\t\t\n\t\t\tif (nLeftMarginTable > 0 && nTopMarginTable > 0) {\n\t\t\t\telTable.style.margin = nTopMarginTable + \"px \" + nLeftMarginTable + \"px\";\t\n\t\t\t}\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._el.innerHTML = '';\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})() : (function () { // Drawing in Canvas\n\t\tfunction _onMakeImage() {\n\t\t\tthis._elImage.src = this._elCanvas.toDataURL(\"image/png\");\n\t\t\tthis._elImage.style.display = \"block\";\n\t\t\tthis._elCanvas.style.display = \"none\";\t\t\t\n\t\t}\n\t\t\n\t\t// Android 2.1 bug workaround\n\t\t// http://code.google.com/p/android/issues/detail?id=5141\n\t\tif (this._android && this._android <= 2.1) {\n\t    \tvar factor = 1 / window.devicePixelRatio;\n\t        var drawImage = CanvasRenderingContext2D.prototype.drawImage; \n\t    \tCanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {\n\t    \t\tif ((\"nodeName\" in image) && /img/i.test(image.nodeName)) {\n\t\t        \tfor (var i = arguments.length - 1; i >= 1; i--) {\n\t\t            \targuments[i] = arguments[i] * factor;\n\t\t        \t}\n\t    \t\t} else if (typeof dw == \"undefined\") {\n\t    \t\t\targuments[1] *= factor;\n\t    \t\t\targuments[2] *= factor;\n\t    \t\t\targuments[3] *= factor;\n\t    \t\t\targuments[4] *= factor;\n\t    \t\t}\n\t    \t\t\n\t        \tdrawImage.apply(this, arguments); \n\t    \t};\n\t\t}\n\t\t\n\t\t/**\n\t\t * Check whether the user's browser supports Data URI or not\n\t\t * \n\t\t * @private\n\t\t * @param {Function} fSuccess Occurs if it supports Data URI\n\t\t * @param {Function} fFail Occurs if it doesn't support Data URI\n\t\t */\n\t\tfunction _safeSetDataURI(fSuccess, fFail) {\n            var self = this;\n            self._fFail = fFail;\n            self._fSuccess = fSuccess;\n\n            // Check it just once\n            if (self._bSupportDataURI === null) {\n                var el = document.createElement(\"img\");\n                var fOnError = function() {\n                    self._bSupportDataURI = false;\n\n                    if (self._fFail) {\n                        self._fFail.call(self);\n                    }\n                };\n                var fOnSuccess = function() {\n                    self._bSupportDataURI = true;\n\n                    if (self._fSuccess) {\n                        self._fSuccess.call(self);\n                    }\n                };\n\n                el.onabort = fOnError;\n                el.onerror = fOnError;\n                el.onload = fOnSuccess;\n                el.src = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\"; // the Image contains 1px data.\n                return;\n            } else if (self._bSupportDataURI === true && self._fSuccess) {\n                self._fSuccess.call(self);\n            } else if (self._bSupportDataURI === false && self._fFail) {\n                self._fFail.call(self);\n            }\n\t\t};\n\t\t\n\t\t/**\n\t\t * Drawing QRCode by using canvas\n\t\t * \n\t\t * @constructor\n\t\t * @param {HTMLElement} el\n\t\t * @param {Object} htOption QRCode Options \n\t\t */\n\t\tvar Drawing = function (el, htOption) {\n    \t\tthis._bIsPainted = false;\n    \t\tthis._android = _getAndroid();\n\t\t\n\t\t\tthis._htOption = htOption;\n\t\t\tthis._elCanvas = document.createElement(\"canvas\");\n\t\t\tthis._elCanvas.width = htOption.width;\n\t\t\tthis._elCanvas.height = htOption.height;\n\t\t\tel.appendChild(this._elCanvas);\n\t\t\tthis._el = el;\n\t\t\tthis._oContext = this._elCanvas.getContext(\"2d\");\n\t\t\tthis._bIsPainted = false;\n\t\t\tthis._elImage = document.createElement(\"img\");\n\t\t\tthis._elImage.alt = \"Scan me!\";\n\t\t\tthis._elImage.style.display = \"none\";\n\t\t\tthis._el.appendChild(this._elImage);\n\t\t\tthis._bSupportDataURI = null;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode \n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n            var _elImage = this._elImage;\n            var _oContext = this._oContext;\n            var _htOption = this._htOption;\n            \n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = _htOption.width / nCount;\n\t\t\tvar nHeight = _htOption.height / nCount;\n\t\t\tvar nRoundedWidth = Math.round(nWidth);\n\t\t\tvar nRoundedHeight = Math.round(nHeight);\n\n\t\t\t_elImage.style.display = \"none\";\n\t\t\tthis.clear();\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tvar bIsDark = oQRCode.isDark(row, col);\n\t\t\t\t\tvar nLeft = col * nWidth;\n\t\t\t\t\tvar nTop = row * nHeight;\n\t\t\t\t\t_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\n\t\t\t\t\t_oContext.lineWidth = 1;\n\t\t\t\t\t_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\t\t\t\t\t\n\t\t\t\t\t_oContext.fillRect(nLeft, nTop, nWidth, nHeight);\n\t\t\t\t\t\n\t\t\t\t\t// 안티 앨리어싱 방지 처리\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.floor(nLeft) + 0.5,\n\t\t\t\t\t\tMath.floor(nTop) + 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t\t\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.ceil(nLeft) - 0.5,\n\t\t\t\t\t\tMath.ceil(nTop) - 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis._bIsPainted = true;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Make the image from Canvas if the browser supports Data URI.\n\t\t */\n\t\tDrawing.prototype.makeImage = function () {\n\t\t\tif (this._bIsPainted) {\n\t\t\t\t_safeSetDataURI.call(this, _onMakeImage);\n\t\t\t}\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Return whether the QRCode is painted or not\n\t\t * \n\t\t * @return {Boolean}\n\t\t */\n\t\tDrawing.prototype.isPainted = function () {\n\t\t\treturn this._bIsPainted;\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);\n\t\t\tthis._bIsPainted = false;\n\t\t};\n\t\t\n\t\t/**\n\t\t * @private\n\t\t * @param {Number} nNumber\n\t\t */\n\t\tDrawing.prototype.round = function (nNumber) {\n\t\t\tif (!nNumber) {\n\t\t\t\treturn nNumber;\n\t\t\t}\n\t\t\t\n\t\t\treturn Math.floor(nNumber * 1000) / 1000;\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})();\n\t\n\t/**\n\t * Get the type by string length\n\t * \n\t * @private\n\t * @param {String} sText\n\t * @param {Number} nCorrectLevel\n\t * @return {Number} type\n\t */\n\tfunction _getTypeNumber(sText, nCorrectLevel) {\t\t\t\n\t\tvar nType = 1;\n\t\tvar length = _getUTF8Length(sText);\n\t\t\n\t\tfor (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n\t\t\tvar nLimit = 0;\n\t\t\t\n\t\t\tswitch (nCorrectLevel) {\n\t\t\t\tcase QRErrorCorrectLevel.L :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][0];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.M :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.Q :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][2];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.H :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][3];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tif (length <= nLimit) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tnType++;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (nType > QRCodeLimitLength.length) {\n\t\t\tthrow new Error(\"Too long data\");\n\t\t}\n\t\t\n\t\treturn nType;\n\t}\n\n\tfunction _getUTF8Length(sText) {\n\t\tvar replacedText = encodeURI(sText).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n\t\treturn replacedText.length + (replacedText.length != sText ? 3 : 0);\n\t}\n\t\n\t/**\n\t * @class QRCode\n\t * @constructor\n\t * @example \n\t * new QRCode(document.getElementById(\"test\"), \"http://jindo.dev.naver.com/collie\");\n\t *\n\t * @example\n\t * var oQRCode = new QRCode(\"test\", {\n\t *    text : \"http://naver.com\",\n\t *    width : 128,\n\t *    height : 128\n\t * });\n\t * \n\t * oQRCode.clear(); // Clear the QRCode.\n\t * oQRCode.makeCode(\"http://map.naver.com\"); // Re-create the QRCode.\n\t *\n\t * @param {HTMLElement|String} el target element or 'id' attribute of element.\n\t * @param {Object|String} vOption\n\t * @param {String} vOption.text QRCode link data\n\t * @param {Number} [vOption.width=256]\n\t * @param {Number} [vOption.height=256]\n\t * @param {String} [vOption.colorDark=\"#000000\"]\n\t * @param {String} [vOption.colorLight=\"#ffffff\"]\n\t * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H] \n\t */\n\tQRCode = function (el, vOption) {\n\t\tthis._htOption = {\n\t\t\twidth : 256, \n\t\t\theight : 256,\n\t\t\ttypeNumber : 4,\n\t\t\tcolorDark : \"#000000\",\n\t\t\tcolorLight : \"#ffffff\",\n\t\t\tcorrectLevel : QRErrorCorrectLevel.H\n\t\t};\n\t\t\n\t\tif (typeof vOption === 'string') {\n\t\t\tvOption\t= {\n\t\t\t\ttext : vOption\n\t\t\t};\n\t\t}\n\t\t\n\t\t// Overwrites options\n\t\tif (vOption) {\n\t\t\tfor (var i in vOption) {\n\t\t\t\tthis._htOption[i] = vOption[i];\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (typeof el == \"string\") {\n\t\t\tel = document.getElementById(el);\n\t\t}\n\n\t\tif (this._htOption.useSVG) {\n\t\t\tDrawing = svgDrawer;\n\t\t}\n\t\t\n\t\tthis._android = _getAndroid();\n\t\tthis._el = el;\n\t\tthis._oQRCode = null;\n\t\tthis._oDrawing = new Drawing(this._el, this._htOption);\n\t\t\n\t\tif (this._htOption.text) {\n\t\t\tthis.makeCode(this._htOption.text);\t\n\t\t}\n\t};\n\t\n\t/**\n\t * Make the QRCode\n\t * \n\t * @param {String} sText link data\n\t */\n\tQRCode.prototype.makeCode = function (sText) {\n\t\tthis._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\n\t\tthis._oQRCode.addData(sText);\n\t\tthis._oQRCode.make();\n\t\tthis._el.title = sText;\n\t\tthis._oDrawing.draw(this._oQRCode);\t\t\t\n\t\tthis.makeImage();\n\t};\n\t\n\t/**\n\t * Make the Image from Canvas element\n\t * - It occurs automatically\n\t * - Android below 3 doesn't support Data-URI spec.\n\t * \n\t * @private\n\t */\n\tQRCode.prototype.makeImage = function () {\n\t\tif (typeof this._oDrawing.makeImage == \"function\" && (!this._android || this._android >= 3)) {\n\t\t\tthis._oDrawing.makeImage();\n\t\t}\n\t};\n\t\n\t/**\n\t * Clear the QRCode\n\t */\n\tQRCode.prototype.clear = function () {\n\t\tthis._oDrawing.clear();\n\t};\n\t\n\t/**\n\t * @name QRCode.CorrectLevel\n\t */\n\tQRCode.CorrectLevel = QRErrorCorrectLevel;\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/shareJS/src/js/social-share.js",
    "content": "/**\n * social-share.js\n *\n * @author  52cik <fe.52cik@gmail.com>\n * @license MIT\n *\n * @example\n * <pre>\n * socialShare('.share-components');\n *\n * // or\n *\n * socialShare('.share-bar', {\n *     sites: ['qzone', 'qq', 'weibo','wechat'],\n *     // ...\n * });\n * </pre>\n */\n;(function (window, document, undefined) {\n\n    // Initialize a variables.\n\n    var Array$indexOf = Array.prototype.indexOf;\n    var Object$assign = Object.assign;\n\n    var runningInWeChat = /MicroMessenger/i.test(navigator.userAgent);\n    var isMobileScreen = document.documentElement.clientWidth <= 768;\n\n    var image = (document.images[0] || 0).src || '';\n    var site = getMetaContentByName('site') || getMetaContentByName('Site') || document.title;\n    var title = getMetaContentByName('title') || getMetaContentByName('Title') || document.title;\n    var description = getMetaContentByName('description') || getMetaContentByName('Description') || '';\n\n    var defaults = {\n        url: location.href,\n        origin: location.origin,\n        source: site,\n        title: title,\n        description: description,\n        image: image,\n        imageSelector: undefined,\n\n        weiboKey: '',\n\n        wechatQrcodeTitle: '微信扫一扫：分享',\n        wechatQrcodeHelper: '<p>微信“扫一扫”二维码</p><p>便可将本课程分享至朋友圈。</p>',\n        wechatQrcodeSize: 100,\n\n        sites: ['weibo', 'qq', 'wechat', 'tencent', 'douban', 'qzone', 'linkedin', 'diandian', 'facebook', 'twitter', 'google'],\n        mobileSites: [],\n        disabled: [],\n        initialized: false\n    };\n\n    var templates = {\n        qzone: 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITLE}}&desc={{DESCRIPTION}}&summary={{SUMMARY}}&site={{SOURCE}}',\n        qq: 'http://connect.qq.com/widget/shareqq/index.html?url={{URL}}&title={{TITLE}}&source={{SOURCE}}&desc={{DESCRIPTION}}&pics={{IMAGE}}',\n        tencent: 'http://share.v.t.qq.com/index.php?c=share&a=index&title={{TITLE}}&url={{URL}}&pic={{IMAGE}}',\n        weibo: 'http://service.weibo.com/share/share.php?url={{URL}}&title={{TITLE}}&pic={{IMAGE}}&appkey={{WEIBOKEY}}',\n        wechat: 'javascript:',\n        douban: 'http://shuo.douban.com/!service/share?href={{URL}}&name={{TITLE}}&text={{DESCRIPTION}}&image={{IMAGE}}&starid=0&aid=0&style=11',\n        diandian: 'http://www.diandian.com/share?lo={{URL}}&ti={{TITLE}}&type=link',\n        linkedin: 'http://www.linkedin.com/shareArticle?mini=true&ro=true&title={{TITLE}}&url={{URL}}&summary={{SUMMARY}}&source={{SOURCE}}&armin=armin',\n        facebook: 'https://www.facebook.com/sharer/sharer.php?u={{URL}}',\n        twitter: 'https://twitter.com/intent/tweet?text={{TITLE}}&url={{URL}}&via={{ORIGIN}}',\n        google: 'https://plus.google.com/share?url={{URL}}'\n    };\n\n\n    /**\n     * Expose API to the global\n     *\n     * @param  {String|Element} elem\n     * @param  {Object} options\n     */\n    window.socialShare = function (elem, options) {\n        elem = typeof elem === 'string' ? querySelectorAlls(elem) : elem;\n\n        if (elem.length === undefined) {\n            elem = [elem];\n        }\n\n        each(elem, function (el) {\n            if (!el.initialized) {\n                share(el, options);\n            }\n        });\n    };\n\n    // Domready after initialization\n    alReady(function () {\n        socialShare('.social-share, .share-component');\n    });\n\n\n    /**\n     * Initialize a share bar.\n     *\n     * @param {Object}        $options globals (optional).\n     *\n     * @return {Void}\n     */\n    function share(elem, options) {\n        var data = mixin({}, defaults, options || {}, dataset(elem));\n\n        if (data.imageSelector) {\n            data.image = querySelectorAlls(data.imageSelector).map(function(item) {\n                return item.src;\n            }).join('||');\n        }\n\n        addClass(elem, 'share-component social-share');\n        createIcons(elem, data);\n        createWechat(elem, data);\n\n        elem.initialized = true;\n    }\n\n\n    /**\n     * Create site icons\n     *\n     * @param {Element} elem\n     * @param {Object} data\n     */\n    function createIcons(elem, data) {\n        var sites = getSites(data);\n        var isPrepend = data.mode == 'prepend';\n\n        each(isPrepend ? sites.reverse() : sites, function (name) {\n            var url = makeUrl(name, data);\n            var link = data.initialized ? getElementsByClassName(elem, 'icon-' + name) : createElementByString('<a class=\"social-share-icon icon-' + name + '\"></a>');\n\n            if (!link.length) {\n                return true;\n            }\n\n            link[0].href = url;\n\n            if (name === 'wechat') {\n                link[0].tabindex = -1;\n            } else {\n                link[0].target = '_blank';\n            }\n\n            if (!data.initialized) {\n                isPrepend ? elem.insertBefore(link[0], elem.firstChild) : elem.appendChild(link[0]);\n            }\n        });\n    }\n\n\n    /**\n     * Create the wechat icon and QRCode.\n     *\n     * @param {Element} elem\n     * @param {Object} data\n     */\n    function createWechat (elem, data) {\n        var wechat = getElementsByClassName(elem, 'icon-wechat', 'a');\n\n        if (wechat.length === 0) {\n            return false;\n        }\n\n        var elems = createElementByString('<div class=\"wechat-qrcode\"><h4>' + data.wechatQrcodeTitle + '</h4><div class=\"qrcode\"></div><div class=\"help\">' + data.wechatQrcodeHelper + '</div></div>');\n        var qrcode = getElementsByClassName(elems[0], 'qrcode', 'div');\n\n        wechat[0].appendChild(elems[0]);\n        new QRCode(qrcode[0], {text: data.url, width: data.wechatQrcodeSize, height: data.wechatQrcodeSize});\n    }\n\n\n    /**\n     * Get available site lists.\n     *\n     * @param {Object} data\n     *\n     * @returns {Array}\n     */\n    function getSites(data) {\n        if (!data['mobileSites'].length) {\n            data['mobileSites'] = data['sites'];\n        }\n\n        var sites = (isMobileScreen ? data['mobileSites'] : data['sites']).slice(0);\n        var disabled = data['disabled'];\n\n        if (typeof sites == 'string') {\n            sites = sites.split(/\\s*,\\s*/);\n        }\n        if (typeof disabled == 'string') {\n            disabled = disabled.split(/\\s*,\\s*/);\n        }\n\n        if (runningInWeChat) {\n            disabled.push('wechat');\n        }\n\n        // Remove elements\n        disabled.length && each(disabled, function (it) {\n            sites.splice(inArray(it, sites), 1);\n        });\n\n        return sites;\n    }\n\n\n    /**\n     * Build the url of icon.\n     *\n     * @param {String} name\n     * @param {Object} data\n     *\n     * @returns {String}\n     */\n    function makeUrl(name, data) {\n        data['summary'] = data['description'];\n\n        return templates[name].replace(/\\{\\{(\\w)(\\w*)\\}\\}/g, function (m, fix, key) {\n            var nameKey = name + fix + key.toLowerCase();\n            key = (fix + key).toLowerCase();\n\n            return encodeURIComponent((data[nameKey] === undefined ? data[key] : data[nameKey]) || '');\n        });\n    }\n\n\n    /**\n     * Supports querySelectorAll, jQuery, Zepto and simple selector.\n     *\n     * @param str\n     *\n     * @returns {*}\n     */\n    function querySelectorAlls(str) {\n        return (document.querySelectorAll || window.jQuery || window.Zepto || selector).call(document, str);\n    }\n\n\n    /**\n     * Simple selector.\n     *\n     * @param {String} str #ID or .CLASS\n     *\n     * @returns {Array}\n     */\n    function selector(str) {\n        var elems = [];\n\n        each(str.split(/\\s*,\\s*/), function(s) {\n            var m = s.match(/([#.])(\\w+)/);\n            if (m === null) {\n                throw Error('Supports only simple single #ID or .CLASS selector.');\n            }\n\n            if (m[1]) {\n                var elem = document.getElementById(m[2]);\n\n                if (elem) {\n                    elems.push(elem);\n                }\n            }\n\n            elems = elems.concat(getElementsByClassName(str));\n        });\n\n        return elems;\n    }\n\n\n    /**\n     * Add the classNames for element.\n     *\n     * @param {Element} elem\n     * @param {String} value\n     */\n    function addClass(elem, value) {\n        if (value && typeof value === \"string\") {\n            var classNames = (elem.className + ' ' + value).split(/\\s+/);\n            var setClass = ' ';\n\n            each(classNames, function (className) {\n                if (setClass.indexOf(' ' + className + ' ') < 0) {\n                    setClass += className + ' ';\n                }\n            });\n\n            elem.className = setClass.slice(1, -1);\n        }\n    }\n\n\n    /**\n     * Get meta element content value\n     *\n     * @param {String} name\n     *\n     * @returns {String|*}\n     */\n    function getMetaContentByName(name) {\n        return (document.getElementsByName(name)[0] || 0).content;\n    }\n\n\n    /**\n     * Get elements By className for IE8-\n     *\n     * @param {Element} elem element\n     * @param {String} name className\n     * @param {String} tag tagName\n     *\n     * @returns {HTMLCollection|Array}\n     */\n    function getElementsByClassName(elem, name, tag) {\n        if (elem.getElementsByClassName) {\n            return elem.getElementsByClassName(name);\n        }\n\n        var elements = [];\n        var elems = elem.getElementsByTagName(tag || '*');\n        name = ' ' + name + ' ';\n\n        each(elems, function (elem) {\n            if ((' ' + (elem.className || '') + ' ').indexOf(name) >= 0) {\n                elements.push(elem);\n            }\n        });\n\n        return elements;\n    }\n\n\n    /**\n     * Create element by string.\n     *\n     * @param {String} str\n     *\n     * @returns {NodeList}\n     */\n    function createElementByString(str) {\n        var div = document.createElement('div');\n        div.innerHTML = str;\n\n        return div.childNodes;\n    }\n\n\n    /**\n     * Merge objects.\n     *\n     * @returns {Object}\n     */\n    function mixin() {\n        var args = arguments;\n\n        if (Object$assign) {\n            return Object$assign.apply(null, args);\n        }\n\n        var target = {};\n\n        each(args, function (it) {\n            each(it, function (v, k) {\n                target[k] = v;\n            });\n        });\n\n        return args[0] = target;\n    }\n\n\n    /**\n     * Get dataset object.\n     *\n     * @param {Element} elem\n     *\n     * @returns {Object}\n     */\n    function dataset(elem) {\n        if (elem.dataset) {\n            return JSON.parse(JSON.stringify(elem.dataset));\n        }\n\n        var target = {};\n\n        if (elem.hasAttributes()) {\n            each(elem.attributes, function (attr) {\n                var name = attr.name;\n                if (name.indexOf('data-') !== 0) {\n                    return true;\n                }\n\n                name = name.replace(/^data-/i, '')\n                    .replace(/-(\\w)/g, function (all, letter) {\n                        return letter.toUpperCase();\n                    });\n\n                target[name] = attr.value;\n            });\n\n            return target;\n        }\n\n        return {};\n    }\n\n\n    /**\n     * found element in the array.\n     *\n     * @param {Array|Object} elem\n     * @param {Array} arr\n     * @param {Number} i\n     *\n     * @returns {Number}\n     */\n    function inArray(elem, arr, i) {\n        var len;\n\n        if (arr) {\n            if (Array$indexOf) {\n                return Array$indexOf.call(arr, elem, i);\n            }\n\n            len = arr.length;\n            i = i ? i < 0 ? Math.max(0, len + i) : i : 0;\n\n            for (; i < len; i++) {\n                // Skip accessing in sparse arrays\n                if (i in arr && arr[i] === elem) {\n                    return i;\n                }\n            }\n        }\n\n        return -1;\n    }\n\n\n    /**\n     * Simple each.\n     *\n     * @param {Array|Object} obj\n     * @param {Function} callback\n     *\n     * @returns {*}\n     */\n    function each(obj, callback) {\n        var length = obj.length;\n\n        if (length === undefined) {\n            for (var name in obj) {\n                if (obj.hasOwnProperty(name)) {\n                    if (callback.call(obj[name], obj[name], name) === false) {\n                        break;\n                    }\n                }\n            }\n        } else {\n            for (var i = 0; i < length; i++) {\n                if (callback.call(obj[i], obj[i], i) === false) {\n                    break;\n                }\n            }\n        }\n    }\n\n\n    /**\n     * Dom ready.\n     *\n     * @param {Function} fn\n     *\n     * @link https://github.com/jed/alReady.js\n     */\n    function alReady ( fn ) {\n        var add = 'addEventListener';\n        var pre = document[ add ] ? '' : 'on';\n\n        ~document.readyState.indexOf( 'm' ) ? fn() :\n            'load DOMContentLoaded readystatechange'.replace( /\\w+/g, function( type, i ) {\n                ( i ? document : window )\n                    [ pre ? 'attachEvent' : add ]\n                (\n                    pre + type,\n                    function(){ if ( fn ) if ( i < 6 || ~document.readyState.indexOf( 'm' ) ) fn(), fn = 0 },\n                    !1\n                )\n            })\n    }\n})(window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/simple-line-icons/icons-lte-ie7.js",
    "content": "/* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */\n\nwindow.onload = function() {\n\tfunction addIcon(el, entity) {\n\t\tvar html = el.innerHTML;\n\t\tel.innerHTML = '<span style=\"font-family: \\'Simple-Line-Icons\\'\">' + entity + '</span>' + html;\n\t}\n\tvar icons = {\n\t\t\t'icon-user-unfollow' : '&#xe000;',\n\t\t\t'icon-user-friends' : '&#xe001;',\n\t\t\t'icon-user-following' : '&#xe002;',\n\t\t\t'icon-user-follow' : '&#xe003;',\n\t\t\t'icon-trophy' : '&#xe004;',\n\t\t\t'icon-speedometer' : '&#xe005;',\n\t\t\t'icon-social-youtube' : '&#xe006;',\n\t\t\t'icon-social-twitter' : '&#xe007;',\n\t\t\t'icon-social-tumblr' : '&#xe008;',\n\t\t\t'icon-social-facebook' : '&#xe009;',\n\t\t\t'icon-social-dropbox' : '&#xe00a;',\n\t\t\t'icon-social-dribbble' : '&#xe00b;',\n\t\t\t'icon-shield' : '&#xe00c;',\n\t\t\t'icon-screen-tablet' : '&#xe00d;',\n\t\t\t'icon-screen-smartphone' : '&#xe00e;',\n\t\t\t'icon-screen-desktop' : '&#xe00f;',\n\t\t\t'icon-plane' : '&#xe010;',\n\t\t\t'icon-notebook' : '&#xe011;',\n\t\t\t'icon-moustache' : '&#xe012;',\n\t\t\t'icon-mouse' : '&#xe013;',\n\t\t\t'icon-magnet' : '&#xe014;',\n\t\t\t'icon-magic-wand' : '&#xe015;',\n\t\t\t'icon-hourglass' : '&#xe016;',\n\t\t\t'icon-graduation' : '&#xe017;',\n\t\t\t'icon-ghost' : '&#xe018;',\n\t\t\t'icon-game-controller' : '&#xe019;',\n\t\t\t'icon-fire' : '&#xe01a;',\n\t\t\t'icon-eyeglasses' : '&#xe01b;',\n\t\t\t'icon-envelope-open' : '&#xe01c;',\n\t\t\t'icon-envelope-letter' : '&#xe01d;',\n\t\t\t'icon-energy' : '&#xe01e;',\n\t\t\t'icon-emoticon-smile' : '&#xe01f;',\n\t\t\t'icon-disc' : '&#xe020;',\n\t\t\t'icon-cursor-move' : '&#xe021;',\n\t\t\t'icon-crop' : '&#xe022;',\n\t\t\t'icon-credit-card' : '&#xe023;',\n\t\t\t'icon-chemistry' : '&#xe024;',\n\t\t\t'icon-bell' : '&#xe025;',\n\t\t\t'icon-badge' : '&#xe026;',\n\t\t\t'icon-anchor' : '&#xe027;',\n\t\t\t'icon-action-redo' : '&#xe028;',\n\t\t\t'icon-action-undo' : '&#xe029;',\n\t\t\t'icon-bag' : '&#xe02a;',\n\t\t\t'icon-basket' : '&#xe02b;',\n\t\t\t'icon-basket-loaded' : '&#xe02c;',\n\t\t\t'icon-book-open' : '&#xe02d;',\n\t\t\t'icon-briefcase' : '&#xe02e;',\n\t\t\t'icon-bubbles' : '&#xe02f;',\n\t\t\t'icon-calculator' : '&#xe030;',\n\t\t\t'icon-call-end' : '&#xe031;',\n\t\t\t'icon-call-in' : '&#xe032;',\n\t\t\t'icon-call-out' : '&#xe033;',\n\t\t\t'icon-compass' : '&#xe034;',\n\t\t\t'icon-cup' : '&#xe035;',\n\t\t\t'icon-diamond' : '&#xe036;',\n\t\t\t'icon-direction' : '&#xe037;',\n\t\t\t'icon-directions' : '&#xe038;',\n\t\t\t'icon-docs' : '&#xe039;',\n\t\t\t'icon-drawer' : '&#xe03a;',\n\t\t\t'icon-drop' : '&#xe03b;',\n\t\t\t'icon-earphones' : '&#xe03c;',\n\t\t\t'icon-earphones-alt' : '&#xe03d;',\n\t\t\t'icon-feed' : '&#xe03e;',\n\t\t\t'icon-film' : '&#xe03f;',\n\t\t\t'icon-folder-alt' : '&#xe040;',\n\t\t\t'icon-frame' : '&#xe041;',\n\t\t\t'icon-globe' : '&#xe042;',\n\t\t\t'icon-globe-alt' : '&#xe043;',\n\t\t\t'icon-handbag' : '&#xe044;',\n\t\t\t'icon-layers' : '&#xe045;',\n\t\t\t'icon-map' : '&#xe046;',\n\t\t\t'icon-picture' : '&#xe047;',\n\t\t\t'icon-pin' : '&#xe048;',\n\t\t\t'icon-playlist' : '&#xe049;',\n\t\t\t'icon-present' : '&#xe04a;',\n\t\t\t'icon-printer' : '&#xe04b;',\n\t\t\t'icon-puzzle' : '&#xe04c;',\n\t\t\t'icon-speech' : '&#xe04d;',\n\t\t\t'icon-vector' : '&#xe04e;',\n\t\t\t'icon-wallet' : '&#xe04f;',\n\t\t\t'icon-arrow-down' : '&#xe050;',\n\t\t\t'icon-arrow-left' : '&#xe051;',\n\t\t\t'icon-arrow-right' : '&#xe052;',\n\t\t\t'icon-arrow-up' : '&#xe053;',\n\t\t\t'icon-bar-chart' : '&#xe054;',\n\t\t\t'icon-bulb' : '&#xe055;',\n\t\t\t'icon-calendar' : '&#xe056;',\n\t\t\t'icon-control-end' : '&#xe057;',\n\t\t\t'icon-control-forward' : '&#xe058;',\n\t\t\t'icon-control-pause' : '&#xe059;',\n\t\t\t'icon-control-play' : '&#xe05a;',\n\t\t\t'icon-control-rewind' : '&#xe05b;',\n\t\t\t'icon-control-start' : '&#xe05c;',\n\t\t\t'icon-cursor' : '&#xe05d;',\n\t\t\t'icon-dislike' : '&#xe05e;',\n\t\t\t'icon-equalizer' : '&#xe05f;',\n\t\t\t'icon-graph' : '&#xe060;',\n\t\t\t'icon-grid' : '&#xe061;',\n\t\t\t'icon-home' : '&#xe062;',\n\t\t\t'icon-like' : '&#xe063;',\n\t\t\t'icon-list' : '&#xe064;',\n\t\t\t'icon-login' : '&#xe065;',\n\t\t\t'icon-logout' : '&#xe066;',\n\t\t\t'icon-loop' : '&#xe067;',\n\t\t\t'icon-microphone' : '&#xe068;',\n\t\t\t'icon-music-tone' : '&#xe069;',\n\t\t\t'icon-music-tone-alt' : '&#xe06a;',\n\t\t\t'icon-note' : '&#xe06b;',\n\t\t\t'icon-pencil' : '&#xe06c;',\n\t\t\t'icon-pie-chart' : '&#xe06d;',\n\t\t\t'icon-question' : '&#xe06e;',\n\t\t\t'icon-rocket' : '&#xe06f;',\n\t\t\t'icon-share' : '&#xe070;',\n\t\t\t'icon-share-alt' : '&#xe071;',\n\t\t\t'icon-shuffle' : '&#xe072;',\n\t\t\t'icon-size-actual' : '&#xe073;',\n\t\t\t'icon-size-fullscreen' : '&#xe074;',\n\t\t\t'icon-support' : '&#xe075;',\n\t\t\t'icon-tag' : '&#xe076;',\n\t\t\t'icon-trash' : '&#xe077;',\n\t\t\t'icon-umbrella' : '&#xe078;',\n\t\t\t'icon-wrench' : '&#xe079;',\n\t\t\t'icon-ban' : '&#xe07a;',\n\t\t\t'icon-bubble' : '&#xe07b;',\n\t\t\t'icon-camcorder' : '&#xe07c;',\n\t\t\t'icon-camera' : '&#xe07d;',\n\t\t\t'icon-check' : '&#xe07e;',\n\t\t\t'icon-clock' : '&#xe07f;',\n\t\t\t'icon-close' : '&#xe080;',\n\t\t\t'icon-cloud-download' : '&#xe081;',\n\t\t\t'icon-cloud-upload' : '&#xe082;',\n\t\t\t'icon-doc' : '&#xe083;',\n\t\t\t'icon-envelope' : '&#xe084;',\n\t\t\t'icon-eye' : '&#xe085;',\n\t\t\t'icon-flag' : '&#xe086;',\n\t\t\t'icon-folder' : '&#xe087;',\n\t\t\t'icon-heart' : '&#xe088;',\n\t\t\t'icon-info' : '&#xe089;',\n\t\t\t'icon-key' : '&#xe08a;',\n\t\t\t'icon-link' : '&#xe08b;',\n\t\t\t'icon-lock' : '&#xe08c;',\n\t\t\t'icon-lock-open' : '&#xe08d;',\n\t\t\t'icon-magnifier' : '&#xe08e;',\n\t\t\t'icon-magnifier-add' : '&#xe08f;',\n\t\t\t'icon-magnifier-remove' : '&#xe090;',\n\t\t\t'icon-paper-clip' : '&#xe091;',\n\t\t\t'icon-paper-plane' : '&#xe092;',\n\t\t\t'icon-plus' : '&#xe093;',\n\t\t\t'icon-pointer' : '&#xe094;',\n\t\t\t'icon-power' : '&#xe095;',\n\t\t\t'icon-refresh' : '&#xe096;',\n\t\t\t'icon-reload' : '&#xe097;',\n\t\t\t'icon-settings' : '&#xe098;',\n\t\t\t'icon-star' : '&#xe099;',\n\t\t\t'icon-symbol-female' : '&#xe09a;',\n\t\t\t'icon-symbol-male' : '&#xe09b;',\n\t\t\t'icon-target' : '&#xe09c;',\n\t\t\t'icon-user-female' : '&#xe09d;',\n\t\t\t'icon-user-male' : '&#xe09e;',\n\t\t\t'icon-volume-1' : '&#xe09f;',\n\t\t\t'icon-volume-2' : '&#xe0a0;',\n\t\t\t'icon-volume-off' : '&#xe0a1;'\n\t\t},\n\t\tels = document.getElementsByTagName('*'),\n\t\ti, attr, c, el;\n\tfor (i = 0; ; i += 1) {\n\t\tel = els[i];\n\t\tif(!el) {\n\t\t\tbreak;\n\t\t}\n\t\tattr = el.getAttribute('data-icon');\n\t\tif (attr) {\n\t\t\taddIcon(el, attr);\n\t\t}\n\t\tc = el.className;\n\t\tc = c.match(/icon-[^\\s'\"]+/);\n\t\tif (c && icons[c[0]]) {\n\t\t\taddIcon(el, icons[c[0]]);\n\t\t}\n\t}\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/simple-line-icons/simple-line-icons.css",
    "content": "/* http://graphicburger.com/simple-line-icons-webfont/ */\n@font-face {\n\tfont-family: 'Simple-Line-Icons';\n\n\tsrc:url('fonts/Simple-Line-Icons.eot');\n\tsrc:url('fonts/Simple-Line-Icons.eot?#iefix') format('embedded-opentype'),\n\t\turl('fonts/Simple-Line-Icons.woff') format('woff'),\n\t\turl('fonts/Simple-Line-Icons.ttf') format('truetype'),\n\t\turl('fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n@media screen and (-webkit-min-device-pixel-ratio:0) {\n\t@font-face {\n\t\tfont-family: 'Simple-Line-Icons';\n\t\tsrc: url('fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg');\n\t}\n}\n\n/* Use the following CSS code if you want to use data attributes for inserting your icons */\n[data-icon]:before {\n\tfont-family: 'Simple-Line-Icons';\n\tcontent: attr(data-icon);\n\tspeak: none;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n/* Use the following CSS code if you want to have a class per icon */\n/*\nInstead of a list of all class selectors,\nyou can use the generic selector below, but it's slower:\n[class*=\"icon-\"] {\n*/\n.icon-user-female, .icon-user-follow, .icon-user-following, .icon-user-unfollow, .icon-trophy, .icon-screen-smartphone, .icon-screen-desktop, .icon-plane, .icon-notebook, .icon-moustache, .icon-mouse, .icon-magnet, .icon-energy, .icon-emoticon-smile, .icon-disc, .icon-cursor-move, .icon-crop, .icon-credit-card, .icon-chemistry, .icon-user, .icon-speedometer, .icon-social-youtube, .icon-social-twitter, .icon-social-tumblr, .icon-social-facebook, .icon-social-dropbox, .icon-social-dribbble, .icon-shield, .icon-screen-tablet, .icon-magic-wand, .icon-hourglass, .icon-graduation, .icon-ghost, .icon-game-controller, .icon-fire, .icon-eyeglasses, .icon-envelope-open, .icon-envelope-letter, .icon-bell, .icon-badge, .icon-anchor, .icon-wallet, .icon-vector, .icon-speech, .icon-puzzle, .icon-printer, .icon-present, .icon-playlist, .icon-pin, .icon-picture, .icon-map, .icon-layers, .icon-handbag, .icon-globe-alt, .icon-globe, .icon-frame, .icon-folder-alt, .icon-film, .icon-feed, .icon-earphones-alt, .icon-earphones, .icon-drop, .icon-drawer, .icon-docs, .icon-directions, .icon-direction, .icon-diamond, .icon-cup, .icon-compass, .icon-call-out, .icon-call-in, .icon-call-end, .icon-calculator, .icon-bubbles, .icon-briefcase, .icon-book-open, .icon-basket-loaded, .icon-basket, .icon-bag, .icon-action-undo, .icon-action-redo, .icon-wrench, .icon-umbrella, .icon-trash, .icon-tag, .icon-support, .icon-size-fullscreen, .icon-size-actual, .icon-shuffle, .icon-share-alt, .icon-share, .icon-rocket, .icon-question, .icon-pie-chart, .icon-pencil, .icon-note, .icon-music-tone-alt, .icon-music-tone, .icon-microphone, .icon-loop, .icon-logout, .icon-login, .icon-list, .icon-like, .icon-home, .icon-grid, .icon-graph, .icon-equalizer, .icon-dislike, .icon-cursor, .icon-control-start, .icon-control-rewind, .icon-control-play, .icon-control-pause, .icon-control-forward, .icon-control-end, .icon-calendar, .icon-bulb, .icon-bar-chart, .icon-arrow-up, .icon-arrow-right, .icon-arrow-left, .icon-arrow-down, .icon-ban, .icon-bubble, .icon-camcorder, .icon-camera, .icon-check, .icon-clock, .icon-close, .icon-cloud-download, .icon-cloud-upload, .icon-doc, .icon-envelope, .icon-eye, .icon-flag, .icon-folder, .icon-heart, .icon-info, .icon-key, .icon-link, .icon-lock, .icon-lock-open, .icon-magnifier, .icon-magnifier-add, .icon-magnifier-remove, .icon-paper-clip, .icon-paper-plane, .icon-plus, .icon-pointer, .icon-power, .icon-refresh, .icon-reload, .icon-settings, .icon-star, .icon-symbol-female, .icon-symbol-male, .icon-target, .icon-volume-1, .icon-volume-2, .icon-volume-off, .icon-users {\n\tfont-family: 'Simple-Line-Icons';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\t-webkit-font-smoothing: antialiased;\n}\n.icon-user-female:before {\n\tcontent: \"\\e000\";\n}\n.icon-user-follow:before {\n\tcontent: \"\\e002\";\n}\n.icon-user-following:before {\n\tcontent: \"\\e003\";\n}\n.icon-user-unfollow:before {\n\tcontent: \"\\e004\";\n}\n.icon-trophy:before {\n\tcontent: \"\\e006\";\n}\n.icon-screen-smartphone:before {\n\tcontent: \"\\e010\";\n}\n.icon-screen-desktop:before {\n\tcontent: \"\\e011\";\n}\n.icon-plane:before {\n\tcontent: \"\\e012\";\n}\n.icon-notebook:before {\n\tcontent: \"\\e013\";\n}\n.icon-moustache:before {\n\tcontent: \"\\e014\";\n}\n.icon-mouse:before {\n\tcontent: \"\\e015\";\n}\n.icon-magnet:before {\n\tcontent: \"\\e016\";\n}\n.icon-energy:before {\n\tcontent: \"\\e020\";\n}\n.icon-emoticon-smile:before {\n\tcontent: \"\\e021\";\n}\n.icon-disc:before {\n\tcontent: \"\\e022\";\n}\n.icon-cursor-move:before {\n\tcontent: \"\\e023\";\n}\n.icon-crop:before {\n\tcontent: \"\\e024\";\n}\n.icon-credit-card:before {\n\tcontent: \"\\e025\";\n}\n.icon-chemistry:before {\n\tcontent: \"\\e026\";\n}\n.icon-user:before {\n\tcontent: \"\\e005\";\n}\n.icon-speedometer:before {\n\tcontent: \"\\e007\";\n}\n.icon-social-youtube:before {\n\tcontent: \"\\e008\";\n}\n.icon-social-twitter:before {\n\tcontent: \"\\e009\";\n}\n.icon-social-tumblr:before {\n\tcontent: \"\\e00a\";\n}\n.icon-social-facebook:before {\n\tcontent: \"\\e00b\";\n}\n.icon-social-dropbox:before {\n\tcontent: \"\\e00c\";\n}\n.icon-social-dribbble:before {\n\tcontent: \"\\e00d\";\n}\n.icon-shield:before {\n\tcontent: \"\\e00e\";\n}\n.icon-screen-tablet:before {\n\tcontent: \"\\e00f\";\n}\n.icon-magic-wand:before {\n\tcontent: \"\\e017\";\n}\n.icon-hourglass:before {\n\tcontent: \"\\e018\";\n}\n.icon-graduation:before {\n\tcontent: \"\\e019\";\n}\n.icon-ghost:before {\n\tcontent: \"\\e01a\";\n}\n.icon-game-controller:before {\n\tcontent: \"\\e01b\";\n}\n.icon-fire:before {\n\tcontent: \"\\e01c\";\n}\n.icon-eyeglasses:before {\n\tcontent: \"\\e01d\";\n}\n.icon-envelope-open:before {\n\tcontent: \"\\e01e\";\n}\n.icon-envelope-letter:before {\n\tcontent: \"\\e01f\";\n}\n.icon-bell:before {\n\tcontent: \"\\e027\";\n}\n.icon-badge:before {\n\tcontent: \"\\e028\";\n}\n.icon-anchor:before {\n\tcontent: \"\\e029\";\n}\n.icon-wallet:before {\n\tcontent: \"\\e02a\";\n}\n.icon-vector:before {\n\tcontent: \"\\e02b\";\n}\n.icon-speech:before {\n\tcontent: \"\\e02c\";\n}\n.icon-puzzle:before {\n\tcontent: \"\\e02d\";\n}\n.icon-printer:before {\n\tcontent: \"\\e02e\";\n}\n.icon-present:before {\n\tcontent: \"\\e02f\";\n}\n.icon-playlist:before {\n\tcontent: \"\\e030\";\n}\n.icon-pin:before {\n\tcontent: \"\\e031\";\n}\n.icon-picture:before {\n\tcontent: \"\\e032\";\n}\n.icon-map:before {\n\tcontent: \"\\e033\";\n}\n.icon-layers:before {\n\tcontent: \"\\e034\";\n}\n.icon-handbag:before {\n\tcontent: \"\\e035\";\n}\n.icon-globe-alt:before {\n\tcontent: \"\\e036\";\n}\n.icon-globe:before {\n\tcontent: \"\\e037\";\n}\n.icon-frame:before {\n\tcontent: \"\\e038\";\n}\n.icon-folder-alt:before {\n\tcontent: \"\\e039\";\n}\n.icon-film:before {\n\tcontent: \"\\e03a\";\n}\n.icon-feed:before {\n\tcontent: \"\\e03b\";\n}\n.icon-earphones-alt:before {\n\tcontent: \"\\e03c\";\n}\n.icon-earphones:before {\n\tcontent: \"\\e03d\";\n}\n.icon-drop:before {\n\tcontent: \"\\e03e\";\n}\n.icon-drawer:before {\n\tcontent: \"\\e03f\";\n}\n.icon-docs:before {\n\tcontent: \"\\e040\";\n}\n.icon-directions:before {\n\tcontent: \"\\e041\";\n}\n.icon-direction:before {\n\tcontent: \"\\e042\";\n}\n.icon-diamond:before {\n\tcontent: \"\\e043\";\n}\n.icon-cup:before {\n\tcontent: \"\\e044\";\n}\n.icon-compass:before {\n\tcontent: \"\\e045\";\n}\n.icon-call-out:before {\n\tcontent: \"\\e046\";\n}\n.icon-call-in:before {\n\tcontent: \"\\e047\";\n}\n.icon-call-end:before {\n\tcontent: \"\\e048\";\n}\n.icon-calculator:before {\n\tcontent: \"\\e049\";\n}\n.icon-bubbles:before {\n\tcontent: \"\\e04a\";\n}\n.icon-briefcase:before {\n\tcontent: \"\\e04b\";\n}\n.icon-book-open:before {\n\tcontent: \"\\e04c\";\n}\n.icon-basket-loaded:before {\n\tcontent: \"\\e04d\";\n}\n.icon-basket:before {\n\tcontent: \"\\e04e\";\n}\n.icon-bag:before {\n\tcontent: \"\\e04f\";\n}\n.icon-action-undo:before {\n\tcontent: \"\\e050\";\n}\n.icon-action-redo:before {\n\tcontent: \"\\e051\";\n}\n.icon-wrench:before {\n\tcontent: \"\\e052\";\n}\n.icon-umbrella:before {\n\tcontent: \"\\e053\";\n}\n.icon-trash:before {\n\tcontent: \"\\e054\";\n}\n.icon-tag:before {\n\tcontent: \"\\e055\";\n}\n.icon-support:before {\n\tcontent: \"\\e056\";\n}\n.icon-size-fullscreen:before {\n\tcontent: \"\\e057\";\n}\n.icon-size-actual:before {\n\tcontent: \"\\e058\";\n}\n.icon-shuffle:before {\n\tcontent: \"\\e059\";\n}\n.icon-share-alt:before {\n\tcontent: \"\\e05a\";\n}\n.icon-share:before {\n\tcontent: \"\\e05b\";\n}\n.icon-rocket:before {\n\tcontent: \"\\e05c\";\n}\n.icon-question:before {\n\tcontent: \"\\e05d\";\n}\n.icon-pie-chart:before {\n\tcontent: \"\\e05e\";\n}\n.icon-pencil:before {\n\tcontent: \"\\e05f\";\n}\n.icon-note:before {\n\tcontent: \"\\e060\";\n}\n.icon-music-tone-alt:before {\n\tcontent: \"\\e061\";\n}\n.icon-music-tone:before {\n\tcontent: \"\\e062\";\n}\n.icon-microphone:before {\n\tcontent: \"\\e063\";\n}\n.icon-loop:before {\n\tcontent: \"\\e064\";\n}\n.icon-logout:before {\n\tcontent: \"\\e065\";\n}\n.icon-login:before {\n\tcontent: \"\\e066\";\n}\n.icon-list:before {\n\tcontent: \"\\e067\";\n}\n.icon-like:before {\n\tcontent: \"\\e068\";\n}\n.icon-home:before {\n\tcontent: \"\\e069\";\n}\n.icon-grid:before {\n\tcontent: \"\\e06a\";\n}\n.icon-graph:before {\n\tcontent: \"\\e06b\";\n}\n.icon-equalizer:before {\n\tcontent: \"\\e06c\";\n}\n.icon-dislike:before {\n\tcontent: \"\\e06d\";\n}\n.icon-cursor:before {\n\tcontent: \"\\e06e\";\n}\n.icon-control-start:before {\n\tcontent: \"\\e06f\";\n}\n.icon-control-rewind:before {\n\tcontent: \"\\e070\";\n}\n.icon-control-play:before {\n\tcontent: \"\\e071\";\n}\n.icon-control-pause:before {\n\tcontent: \"\\e072\";\n}\n.icon-control-forward:before {\n\tcontent: \"\\e073\";\n}\n.icon-control-end:before {\n\tcontent: \"\\e074\";\n}\n.icon-calendar:before {\n\tcontent: \"\\e075\";\n}\n.icon-bulb:before {\n\tcontent: \"\\e076\";\n}\n.icon-bar-chart:before {\n\tcontent: \"\\e077\";\n}\n.icon-arrow-up:before {\n\tcontent: \"\\e078\";\n}\n.icon-arrow-right:before {\n\tcontent: \"\\e079\";\n}\n.icon-arrow-left:before {\n\tcontent: \"\\e07a\";\n}\n.icon-arrow-down:before {\n\tcontent: \"\\e07b\";\n}\n.icon-ban:before {\n\tcontent: \"\\e07c\";\n}\n.icon-bubble:before {\n\tcontent: \"\\e07d\";\n}\n.icon-camcorder:before {\n\tcontent: \"\\e07e\";\n}\n.icon-camera:before {\n\tcontent: \"\\e07f\";\n}\n.icon-check:before {\n\tcontent: \"\\e080\";\n}\n.icon-clock:before {\n\tcontent: \"\\e081\";\n}\n.icon-close:before {\n\tcontent: \"\\e082\";\n}\n.icon-cloud-download:before {\n\tcontent: \"\\e083\";\n}\n.icon-cloud-upload:before {\n\tcontent: \"\\e084\";\n}\n.icon-doc:before {\n\tcontent: \"\\e085\";\n}\n.icon-envelope:before {\n\tcontent: \"\\e086\";\n}\n.icon-eye:before {\n\tcontent: \"\\e087\";\n}\n.icon-flag:before {\n\tcontent: \"\\e088\";\n}\n.icon-folder:before {\n\tcontent: \"\\e089\";\n}\n.icon-heart:before {\n\tcontent: \"\\e08a\";\n}\n.icon-info:before {\n\tcontent: \"\\e08b\";\n}\n.icon-key:before {\n\tcontent: \"\\e08c\";\n}\n.icon-link:before {\n\tcontent: \"\\e08d\";\n}\n.icon-lock:before {\n\tcontent: \"\\e08e\";\n}\n.icon-lock-open:before {\n\tcontent: \"\\e08f\";\n}\n.icon-magnifier:before {\n\tcontent: \"\\e090\";\n}\n.icon-magnifier-add:before {\n\tcontent: \"\\e091\";\n}\n.icon-magnifier-remove:before {\n\tcontent: \"\\e092\";\n}\n.icon-paper-clip:before {\n\tcontent: \"\\e093\";\n}\n.icon-paper-plane:before {\n\tcontent: \"\\e094\";\n}\n.icon-plus:before {\n\tcontent: \"\\e095\";\n}\n.icon-pointer:before {\n\tcontent: \"\\e096\";\n}\n.icon-power:before {\n\tcontent: \"\\e097\";\n}\n.icon-refresh:before {\n\tcontent: \"\\e098\";\n}\n.icon-reload:before {\n\tcontent: \"\\e099\";\n}\n.icon-settings:before {\n\tcontent: \"\\e09a\";\n}\n.icon-star:before {\n\tcontent: \"\\e09b\";\n}\n.icon-symbol-female:before {\n\tcontent: \"\\e09c\";\n}\n.icon-symbol-male:before {\n\tcontent: \"\\e09d\";\n}\n.icon-target:before {\n\tcontent: \"\\e09e\";\n}\n.icon-volume-1:before {\n\tcontent: \"\\e09f\";\n}\n.icon-volume-2:before {\n\tcontent: \"\\e0a0\";\n}\n.icon-volume-off:before {\n\tcontent: \"\\e0a1\";\n}\n.icon-users:before {\n\tcontent: \"\\e001\";\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/.gitignore",
    "content": "/.editorconfig\n/.jscsrc\n/.jshintignore\n/.jshintrc\n/.npmignore\n/.travis.yml\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/Gruntfile.js",
    "content": "module.exports = function (grunt) {\n  'use strict';\n\n  /**\n   * read optional JSON from filepath\n   * @param {String} filepath\n   * @return {Object}\n   */\n  var readOptionalJSON = function (filepath) {\n    var data = {};\n    try {\n      data = grunt.file.readJSON(filepath);\n      // The concatenated file won't pass onevar\n      // But our modules can\n      delete data.onever;\n    } catch (e) { }\n    return data;\n  };\n\n  var customLaunchers = {\n    /*\n    'SL_IE8': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '8.0',\n      platform: 'windows XP'\n    },\n    'SL_IE9': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '9.0',\n      platform: 'windows 7'\n    },\n    */\n    'SL_IE10': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '10.0',\n      platform: 'windows 8'\n    },\n    'SL_IE11': {\n      base: 'SauceLabs',\n      browserName: 'internet explorer',\n      version: '11.0',\n      platform: 'windows 8.1'\n    },\n    /*\n    'SL_EDGE': {\n      base: 'SauceLabs',\n      browserName: 'microsoftedge',\n      version: '20',\n      platform: 'windows 10'\n    },\n    */\n    'SL_CHROME': {\n      base: 'SauceLabs',\n      browserName: 'chrome',\n      version: '43',\n      platform: 'windows 8'\n    },\n    'SL_FIREFOX': {\n      base: 'SauceLabs',\n      browserName: 'firefox',\n      version: '38',\n      platform: 'windows 8'\n    },\n    'SL_SAFARI': {\n      base: 'SauceLabs',\n      browserName: 'safari',\n      version: '8.0',\n      platform: 'OS X 10.10'\n    }\n  };\n\n  grunt.initConfig({\n    // package File\n    pkg: grunt.file.readJSON('package.json'),\n\n    // bulid source(grunt-build.js).\n    build: {\n      all: {\n        baseUrl: 'src/js',        // base url\n        startFile: 'intro.js',    // intro part\n        endFile: 'outro.js',      // outro part\n        outFile: 'dist/summernote.js' // out file\n      }\n    },\n\n    // for javascript convention.\n    jshint: {\n      all: {\n        src: [\n          'src/**/*.js',\n          'plugin/**/*.js',\n          'lang/**/*.js',\n          'Gruntfile.js',\n          'test/**/*.js',\n          '!test/coverage/**/*.js',\n          'build/*.js'\n        ],\n        options: {\n          jshintrc: true\n        }\n      },\n      dist: {\n        src: 'dist/summernote.js',\n        options: readOptionalJSON('.jshintrc')\n      }\n    },\n\n    jscs: {\n      src: ['*.js', 'src/**/*.js', 'test/**/*.js', 'plugin/**/*.js'],\n      gruntfile: 'Gruntfile.js',\n      build: 'build'\n    },\n\n    // uglify: minify javascript\n    uglify: {\n      options: {\n        banner: '/*! Summernote v<%=pkg.version%> | (c) 2013-2015 Alan Hong and other contributors | MIT license */\\n'\n      },\n      all: {\n        files: [\n          { 'dist/summernote.min.js': ['dist/summernote.js'] },\n          {\n            expand: true,\n            cwd: 'dist/lang',\n            src: '**/*.js',\n            dest: 'dist/lang',\n            ext: '.min.js'\n          },\n          {\n            expand: true,\n            cwd: 'dist/plugin',\n            src: '**/*.js',\n            dest: 'dist/plugin',\n            ext: '.min.js'\n          }\n        ]\n      }\n    },\n\n    // recess: minify stylesheets\n    recess: {\n      dist: {\n        options: { compile: true, compress: true },\n        files: [\n          {\n            'dist/summernote.css': ['src/less/summernote.less']\n          },\n          {\n            expand: true,\n            cwd: 'dist/plugin',\n            src: '**/*.css',\n            dest: 'dist/plugin',\n            ext: '.min.css'\n          }\n        ]\n      }\n    },\n\n    // compress: summernote-{{version}}-dist.zip\n    compress: {\n      main: {\n        options: {\n          archive: function () {\n            return 'dist/summernote-{{version}}-dist.zip'.replace(\n              '{{version}}',\n              grunt.config('pkg.version')\n            );\n          }\n        },\n        files: [{\n          expand: true,\n          src: [\n            'dist/*.js',\n            'dist/*.css',\n            'dist/font/*'\n          ]\n        }, {\n          src: ['plugin/**/*.js', 'plugin/**/*.css', 'lang/**/*.js'],\n          dest: 'dist/'\n        }]\n      }\n    },\n\n    // connect configuration.\n    connect: {\n      all: {\n        options: {\n          port: 3000\n        }\n      }\n    },\n\n    // watch source code change\n    watch: {\n      all: {\n        files: ['src/less/*.less', 'src/js/**/*.js', 'test/unit/**/*.js'],\n        tasks: ['recess', 'lint'],\n        options: {\n          livereload: true\n        }\n      }\n    },\n\n    // Meteor commands to test and publish package\n    exec: {\n      'meteor-test': {\n        command: 'meteor/runtests.sh'\n      },\n      'meteor-publish': {\n        command: 'meteor/publish.sh'\n      }\n    },\n\n    karma: {\n      options: {\n        configFile: './test/karma.conf.js'\n      },\n      all: {\n        // Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS, IE\n        browsers: ['PhantomJS'],\n        reporters: ['progress']\n      },\n      dist: {\n        singleRun: true,\n        browsers: ['PhantomJS']\n      },\n      travis: {\n        singleRun: true,\n        browsers: ['PhantomJS'],\n        reporters: ['progress', 'coverage']\n      },\n      saucelabs: {\n        reporters: ['saucelabs'],\n        sauceLabs: {\n          testName: '[Travis] unit tests for summernote',\n          startConnect: false,\n          tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER,\n          build: process.env.TRAVIS_BUILD_NUMBER,\n          tags: [process.env.TRAVIS_BRANCH, process.env.TRAVIS_PULL_REQUEST]\n        },\n        captureTimeout: 120000,\n        customLaunchers: customLaunchers,\n        browsers: Object.keys(customLaunchers),\n        singleRun: true\n      }\n    },\n\n    coveralls: {\n      options: {\n        force: false\n      },\n      travis: {\n        src: 'test/coverage/**/lcov.info'\n      }\n    },\n    clean: {\n      dist: ['dist/**/*']\n    },\n    copy: {\n      dist: {\n        files: [\n          { src: 'lang/*', dest: 'dist/' },\n          { src: 'plugin/**/*', dest: 'dist/' },\n          { expand: true, cwd: 'src/icons/dist/font/', src: ['**', '!*.html'], dest: 'dist/font/' },\n          { src: 'src/icons/dist/summernote.css', dest: 'src/icons/dist/summernote.less' }\n        ]\n      }\n    },\n    webfont: {\n      icons: {\n        src: 'src/icons/*.svg',\n        dest: 'src/icons/dist/font',\n        destCss: 'src/icons/dist/',\n        options: {\n          font: 'summernote',\n          template: 'src/icons/templates/summernote.css'\n        }\n      }\n    }\n  });\n\n  // load all tasks from the grunt plugins used in this file\n  require('load-grunt-tasks')(grunt);\n\n  // load all grunts/*.js\n  grunt.loadTasks('grunts');\n\n  // server: run server for development\n  grunt.registerTask('server', ['connect', 'watch']);\n\n  // lint\n  grunt.registerTask('lint', ['jshint', 'jscs']);\n\n  // test: unit test on test folder\n  grunt.registerTask('test', ['lint', 'karma:all']);\n\n  // test: unit test on travis\n  grunt.registerTask('test-travis', ['lint', 'karma:travis']);\n\n  // test: saucelabs test\n  grunt.registerTask('saucelabs-test', ['karma:saucelabs']);\n\n  // dist: make dist files\n  grunt.registerTask('dist', [\n    'clean:dist',\n    'build', 'webfont', 'lint', 'karma:dist',\n    'copy:dist', 'uglify', 'recess', 'compress'\n  ]);\n\n  // default: server\n  grunt.registerTask('default', ['server']);\n\n  // Meteor tasks\n  grunt.registerTask('meteor-test', 'exec:meteor-test');\n  grunt.registerTask('meteor-publish', 'exec:meteor-publish');\n  grunt.registerTask('meteor', ['meteor-test', 'meteor-publish']);\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015~ Summernote Team (https://github.com/orgs/summernote/people)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/MAINTAIN.md",
    "content": "## Publish new version\n\n### 1. `develop` to `master`\n\nSend pull request `develop` to `master` on github repository and merge it.\nhttps://github.com/summernote/summernote/compare/master...develop\n\n### 2. Build dist files\n\nBuild dist files and push to master\n```bash\n# change branch\ngit checkout master\n# fetch all changes\ngit pull\n# build dist files and binary(.zip) for release post\ngrunt dist\n# Push new dist files to remote repository.\ngit commit -a -m \"Update dist files\"\ngit push origin\n```\n\n### 3. Release new version\nPost release note with new tag version on github\n\nhttps://github.com/summernote/summernote/releases/new\n\n### 4. Publish\n\nPublish on npm\n```bash\nnpm publish\n```\n\nPublish on meteor\n```bash\nmeteor/publish.sh\n```\n\n### 05. Update summernote.github.io\nUpdate summernote version in _config.yml.\n\n### 06. Update connector\n - [summernote-rails](https://github.com/summernote/summernote-rails/blob/master/MAINTAIN.md)\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/bower.json",
    "content": "{\n  \"name\": \"summernote\",\n  \"homepage\": \"http://summernote.org\",\n  \"license\": \"MIT\",\n  \"main\": [\n    \"./dist/summernote.js\",\n    \"./dist/summernote.css\"\n  ],\n  \"ignore\": [\n    \"**/.*\",\n    \"Gruntfile.js\",\n    \"MAINTAIN.md\",\n    \"grunts\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\"\n  ],\n  \"dependencies\": {\n    \"jquery\": \">= 1.9.0\",\n    \"bootstrap\": \">= 3.0.1\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/composer.json",
    "content": "{\n    \"name\": \"summernote/summernote\",\n    \"description\": \"Super Simple WYSIWYG Editor on Bootstrap(3.0 and 2.x).\",\n    \"type\": \"library\",\n    \"keywords\": [\n        \"wysiwyg\"\n    ],\n    \"homepage\": \"http://summernote.org/\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Alan\",\n            \"email\": \"susukang98@gmail.com\",\n            \"role\": \"lead\"\n        }\n    ],\n    \"support\": {\n        \"issues\": \"https://github.com/summernote/summernote/issues\"\n    }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/dist/lang/summernote-zh-CN.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-CN': {\n      font: {\n        bold: '粗体',\n        italic: '斜体',\n        underline: '下划线',\n        clear: '清除格式',\n        height: '行高',\n        name: '字体',\n        strikethrough: '删除线',\n        subscript: '下标',\n        superscript: '上标',\n        size: '字号'\n      },\n      image: {\n        image: '图片',\n        insert: '插入图片',\n        resizeFull: '缩放至 100%',\n        resizeHalf: '缩放至 50%',\n        resizeQuarter: '缩放至 25%',\n        floatLeft: '靠左浮动',\n        floatRight: '靠右浮动',\n        floatNone: '取消浮动',\n        shapeRounded: '形状: 圆角',\n        shapeCircle: '形状: 圆',\n        shapeThumbnail: '形状: 缩略图',\n        shapeNone: '形状: 无',\n        dragImageHere: '将图片拖拽至此处',\n        selectFromFiles: '从本地上传',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '图片地址',\n        remove: '移除图片'\n      },\n      video: {\n        video: '视频',\n        videoLink: '视频链接',\n        insert: '插入视频',\n        url: '视频地址',\n        providers: '(优酷, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '链接',\n        insert: '插入链接',\n        unlink: '去除链接',\n        edit: '编辑链接',\n        textToDisplay: '显示文本',\n        url: '链接地址',\n        openInNewWindow: '在新窗口打开'\n      },\n      table: {\n        table: '表格'\n      },\n      hr: {\n        insert: '水平线'\n      },\n      style: {\n        style: '样式',\n        p: '普通',\n        blockquote: '引用',\n        pre: '代码',\n        h1: '标题 1',\n        h2: '标题 2',\n        h3: '标题 3',\n        h4: '标题 4',\n        h5: '标题 5',\n        h6: '标题 6'\n      },\n      lists: {\n        unordered: '无序列表',\n        ordered: '有序列表'\n      },\n      options: {\n        help: '帮助',\n        fullscreen: '全屏',\n        codeview: '源代码'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '减少缩进',\n        indent: '增加缩进',\n        left: '左对齐',\n        center: '居中对齐',\n        right: '右对齐',\n        justify: '两端对齐'\n      },\n      color: {\n        recent: '最近使用',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重置',\n        resetToDefault: '默认'\n      },\n      shortcut: {\n        shortcuts: '快捷键',\n        close: '关闭',\n        textFormatting: '文本格式',\n        action: '动作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文档样式',\n        extraKeys: '额外按键'\n      },\n      history: {\n        undo: '撤销',\n        redo: '重做'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/dist/plugin/databasic/summernote-ext-databasic.css",
    "content": ".ext-databasic {\n\tposition: relative;\n\tdisplay: block;\n\tmin-height: 50px;\n\tbackground-color: cyan;\n\ttext-align: center;\n\tpadding: 20px;\n\tborder: 1px solid white;\n\tborder-radius: 10px;\n}\n\n.ext-databasic p {\n\tcolor: white;\n\tfont-size: 1.2em;\n\tmargin: 0;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/dist/plugin/databasic/summernote-ext-databasic.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // pull in some summernote core functions\n  var ui = $.summernote.ui;\n  var dom = $.summernote.dom;\n\n  // define the popover plugin\n  var DataBasicPlugin = function (context) {\n    var self = this;\n    var options = context.options;\n    var lang = options.langInfo;\n    \n    self.icon = '<i class=\"fa fa-object-group\"/>';\n\n    // add context menu button for dialog\n    context.memo('button.databasic', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.insert,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    // add popover edit button\n    context.memo('button.databasicDialog', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.edit,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    //  add popover size buttons\n    context.memo('button.databasicSize100', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: lang.image.resizeFull,\n        click: context.createInvokeHandler('editor.resize', '1')\n      }).render();\n    });\n    context.memo('button.databasicSize50', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: lang.image.resizeHalf,\n        click: context.createInvokeHandler('editor.resize', '0.5')\n      }).render();\n    });\n    context.memo('button.databasicSize25', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: lang.image.resizeQuarter,\n        click: context.createInvokeHandler('editor.resize', '0.25')\n      }).render();\n    });\n\n    self.events = {\n      'summernote.init': function (we, e) {\n        // update existing containers\n        $('data.ext-databasic', e.editable).each(function () { self.setContent($(this)); });\n        // TODO: make this an undo snapshot...\n      },\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hidePopover();\n      }\n    };\n\n    self.initialize = function () {\n      // create dialog markup\n      var $container = options.dialogsInBody ? $(document.body) : context.layoutInfo.editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.databasic.testLabel + '</label>' +\n          '<input class=\"ext-databasic-test form-control\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary ext-databasic-save\">' + lang.databasic.insert + '</button>';\n\n      self.$dialog = ui.dialog({\n        title: lang.databasic.name,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n      \n      // create popover\n      self.$popover = ui.popover({\n        className: 'ext-databasic-popover'\n      }).render().appendTo('body');\n      var $content = self.$popover.find('.popover-content');\n      \n      context.invoke('buttons.build', $content, options.popover.databasic);\n    };\n\n    self.destroy = function () {\n      self.$popover.remove();\n      self.$popover = null;\n      self.$dialog.remove();\n      self.$dialog = null;\n    };\n    \n    self.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        self.hidePopover();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      var visible = false;\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          var pos = dom.posFromPlaceholder($data[0]);\n          \n          self.$popover.css({\n            display: 'block',\n            left: pos.left,\n            top: pos.top\n          });\n          \n          // save editor target to let size buttons resize the container\n          context.invoke('editor.saveTarget', $data[0]);\n\n          visible = true;\n        }\n\n      }\n      \n      // hide if not visible\n      if (!visible) {\n        self.hidePopover();\n      }\n\n    };\n\n    self.hidePopover = function () {\n      self.$popover.hide();\n    };\n\n    // define plugin dialog\n    self.getInfo = function () {\n      var rng = context.invoke('editor.createRange');\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          // Get the first node on range(for edit).\n          return {\n            node: $data,\n            test: $data.attr('data-test')\n          };\n        }\n      }\n      \n      return {};\n    };\n\n    self.setContent = function ($node) {\n      $node.html('<p contenteditable=\"false\">' + self.icon + ' ' + lang.databasic.name + ': ' +\n        $node.attr('data-test') + '</p>');\n    };\n\n    self.updateNode = function (info) {\n      self.setContent(info.node\n        .attr('data-test', info.test));\n    };\n\n    self.createNode = function (info) {\n      var $node = $('<data class=\"ext-databasic\"></data>');\n\n      if ($node) {\n        // save node to info structure\n        info.node = $node;\n        // insert node into editor dom\n        context.invoke('editor.insertNode', $node[0]);\n      }\n\n      return $node;\n    };\n    \n    self.showDialog = function () {\n      var info = self.getInfo();\n      var newNode = !info.node;\n      context.invoke('editor.saveRange');\n      \n      self\n        .openDialog(info)\n        .then(function (dialogInfo) {\n          // [workaround] hide dialog before restore range for IE range focus\n          ui.hideDialog(self.$dialog);\n          context.invoke('editor.restoreRange');\n          \n          // insert a new node\n          if (newNode)\n          {\n            self.createNode(info);\n          }\n          \n          // update info with dialog info\n          $.extend(info, dialogInfo);\n          \n          self.updateNode(info);\n        })\n        .fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n\n    };\n    \n    self.openDialog = function (info) {\n      return $.Deferred(function (deferred) {\n        var $inpTest = self.$dialog.find('.ext-databasic-test');\n        var $saveBtn = self.$dialog.find('.ext-databasic-save');\n        var onKeyup = function (event) {\n            if (event.keyCode === 13)\n            {\n              $saveBtn.trigger('click');\n            }\n          };\n        \n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $inpTest.val(info.test).on('input', function () {\n            ui.toggleBtn($saveBtn, $inpTest.val());\n          }).trigger('focus').on('keyup', onKeyup);\n\n          $saveBtn\n            .text(info.node ? lang.databasic.edit : lang.databasic.insert)\n            .click(function (event) {\n              event.preventDefault();\n\n              deferred.resolve({ test: $inpTest.val() });\n            });\n          \n          // init save button\n          ui.toggleBtn($saveBtn, $inpTest.val());\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $inpTest.off('input keyup');\n          $saveBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  // Extends summernote\n  $.extend(true, $.summernote, {\n    plugins: {\n      databasic: DataBasicPlugin\n    },\n    \n    options: {\n      popover: {\n        databasic: [\n          ['databasic', ['databasicDialog', 'databasicSize100', 'databasicSize50', 'databasicSize25']]\n        ]\n      }\n    },\n    \n    // add localization texts\n    lang: {\n      'en-US': {\n        databasic: {\n          name: 'Basic Data Container',\n          insert: 'insert basic data container',\n          edit: 'edit basic data container',\n          testLabel: 'test input'\n        }\n      }\n    }\n    \n  });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/dist/plugin/hello/summernote-ext-hello.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // Extends plugins for adding hello.\n  //  - plugin is external module for customizing.\n  $.extend($.summernote.plugins, {\n    /**\n     * @param {Object} context - context object has status of editor.\n     */\n    'hello': function (context) {\n      var self = this;\n\n      // ui has renders to build ui elements.\n      //  - you can create a button with `ui.button`\n      var ui = $.summernote.ui;\n\n      // add hello button\n      context.memo('button.hello', function () {\n        // create button\n        var button = ui.button({\n          contents: '<i class=\"fa fa-child\"/> Hello',\n          tooltip: 'hello',\n          click: function () {\n            self.$panel.show();\n            self.$panel.hide(500);\n            // invoke insertText method with 'hello' on editor module.\n            context.invoke('editor.insertText', 'hello');\n          }\n        });\n\n        // create jQuery object from button instance.\n        var $hello = button.render();\n        return $hello;\n      });\n\n      // This events will be attached when editor is initialized.\n      this.events = {\n        // This will be called after modules are initialized.\n        'summernote.init': function (we, e) {\n          console.log('summernote initialized', we, e);\n        },\n        // This will be called when user releases a key on editable.\n        'summernote.keyup': function (we, e) {\n          console.log('summernote keyup', we, e);\n        }\n      };\n\n      // This method will be called when editor is initialized by $('..').summernote();\n      // You can create elements for plugin\n      this.initialize = function () {\n        this.$panel = $('<div class=\"hello-panel\"/>').css({\n          position: 'absolute',\n          width: 100,\n          height: 100,\n          left: '50%',\n          top: '50%',\n          background: 'red'\n        }).hide();\n\n        this.$panel.appendTo('body');\n      };\n\n      // This methods will be called when editor is destroyed by $('..').summernote('destroy');\n      // You should remove elements on `initialize`.\n      this.destroy = function () {\n        this.$panel.remove();\n        this.$panel = null;\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/dist/plugin/specialchars/summernote-ext-specialchars.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  $.extend($.summernote.plugins, {\n    'specialchars': function (context) {\n      var self = this;\n      var ui = $.summernote.ui;\n\n      var $editor = context.layoutInfo.editor;\n      var options = context.options;\n      var lang = options.langInfo;\n\n      var KEY = {\n        UP: 38,\n        DOWN: 40,\n        LEFT: 37,\n        RIGHT: 39,\n        ENTER: 13\n      };\n      var COLUMN_LENGTH = 15;\n      var COLUMN_WIDTH = 35;\n\n      var currentColumn, currentRow, totalColumn, totalRow = 0;\n\n      // special characters data set\n      var specialCharDataSet = [\n        '&quot;', '&amp;', '&lt;', '&gt;', '&iexcl;', '&cent;',\n        '&pound;', '&curren;', '&yen;', '&brvbar;', '&sect;',\n        '&uml;', '&copy;', '&ordf;', '&laquo;', '&not;',\n        '&reg;', '&macr;', '&deg;', '&plusmn;', '&sup2;',\n        '&sup3;', '&acute;', '&micro;', '&para;', '&middot;',\n        '&cedil;', '&sup1;', '&ordm;', '&raquo;', '&frac14;',\n        '&frac12;', '&frac34;', '&iquest;', '&times;', '&divide;',\n        '&fnof;', '&circ;', '&tilde;', '&ndash;', '&mdash;',\n        '&lsquo;', '&rsquo;', '&sbquo;', '&ldquo;', '&rdquo;',\n        '&bdquo;', '&dagger;', '&Dagger;', '&bull;', '&hellip;',\n        '&permil;', '&prime;', '&Prime;', '&lsaquo;', '&rsaquo;',\n        '&oline;', '&frasl;', '&euro;', '&image;', '&weierp;',\n        '&real;', '&trade;', '&alefsym;', '&larr;', '&uarr;',\n        '&rarr;', '&darr;', '&harr;', '&crarr;', '&lArr;',\n        '&uArr;', '&rArr;', '&dArr;', '&hArr;', '&forall;',\n        '&part;', '&exist;', '&empty;', '&nabla;', '&isin;',\n        '&notin;', '&ni;', '&prod;', '&sum;', '&minus;',\n        '&lowast;', '&radic;', '&prop;', '&infin;', '&ang;',\n        '&and;', '&or;', '&cap;', '&cup;', '&int;',\n        '&there4;', '&sim;', '&cong;', '&asymp;', '&ne;',\n        '&equiv;', '&le;', '&ge;', '&sub;', '&sup;',\n        '&nsub;', '&sube;', '&supe;', '&oplus;', '&otimes;',\n        '&perp;', '&sdot;', '&lceil;', '&rceil;', '&lfloor;',\n        '&rfloor;', '&loz;', '&spades;', '&clubs;', '&hearts;',\n        '&diams;'\n      ];\n\n      context.memo('button.specialCharacter', function () {\n        return ui.button({\n          contents: '<i class=\"fa fa-font fa-flip-vertical\">',\n          tooltip: lang.specialChar.specialChar,\n          click: function () {\n            self.show();\n          }\n        }).render();\n      });\n\n      /**\n       * Make Special Characters Table\n       *\n       * @member plugin.specialChar\n       * @private\n       * @return {jQuery}\n       */\n      this.makeSpecialCharSetTable = function () {\n        var $table = $('<table/>');\n        $.each(specialCharDataSet, function (idx, text) {\n          var $td = $('<td/>').addClass('note-specialchar-node');\n          var $tr = (idx % COLUMN_LENGTH === 0) ? $('<tr/>') : $table.find('tr').last();\n\n          var $button = ui.button({\n            callback: function ($node) {\n              $node.html(text);\n              $node.attr('title', text);\n              $node.attr('data-value', encodeURIComponent(text));\n              $node.css({\n                width: COLUMN_WIDTH,\n                'margin-right': '2px',\n                'margin-bottom': '2px'\n              });\n            }\n          }).render();\n\n          $td.append($button);\n\n          $tr.append($td);\n          if (idx % COLUMN_LENGTH === 0) {\n            $table.append($tr);\n          }\n        });\n\n        totalRow = $table.find('tr').length;\n        totalColumn = COLUMN_LENGTH;\n\n        return $table;\n      };\n\n      this.initialize = function () {\n        var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n        var body = '<div class=\"form-group row-fluid\">' + this.makeSpecialCharSetTable()[0].outerHTML + '</div>';\n\n        this.$dialog = ui.dialog({\n          title: lang.specialChar.select,\n          body: body\n        }).render().appendTo($container);\n      };\n\n      this.show = function () {\n        var text = context.invoke('editor.getSelectedText');\n        context.invoke('editor.saveRange');\n        this.showSpecialCharDialog(text).then(function (selectChar) {\n          context.invoke('editor.restoreRange');\n\n          // build node\n          var $node = $('<span></span>').html(selectChar)[0];\n\n          if ($node) {\n            // insert video node\n            context.invoke('editor.insertNode', $node);\n          }\n        }).fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n      };\n\n      /**\n       * show image dialog\n       *\n       * @param {jQuery} $dialog\n       * @return {Promise}\n       */\n      this.showSpecialCharDialog = function (text) {\n        return $.Deferred(function (deferred) {\n          var $specialCharDialog = self.$dialog;\n          var $specialCharNode = $specialCharDialog.find('.note-specialchar-node');\n          var $selectedNode = null;\n          var ARROW_KEYS = [KEY.UP, KEY.DOWN, KEY.LEFT, KEY.RIGHT];\n          var ENTER_KEY = KEY.ENTER;\n\n          function addActiveClass($target) {\n            if (!$target) {\n              return;\n            }\n            $target.find('button').addClass('active');\n            $selectedNode = $target;\n          }\n\n          function removeActiveClass($target) {\n            $target.find('button').removeClass('active');\n            $selectedNode = null;\n          }\n\n          // find next node\n          function findNextNode(row, column) {\n            var findNode = null;\n            $.each($specialCharNode, function (idx, $node) {\n              var findRow = Math.ceil((idx + 1) / COLUMN_LENGTH);\n              var findColumn = ((idx + 1) % COLUMN_LENGTH === 0) ? COLUMN_LENGTH : (idx + 1) % COLUMN_LENGTH;\n              if (findRow === row && findColumn === column) {\n                findNode = $node;\n                return false;\n              }\n            });\n            return $(findNode);\n          }\n\n          function arrowKeyHandler(keyCode) {\n            // left, right, up, down key\n            var $nextNode;\n            var lastRowColumnLength = $specialCharNode.length % totalColumn;\n\n            if (KEY.LEFT === keyCode) {\n\n              if (currentColumn > 1) {\n                currentColumn = currentColumn - 1;\n              } else if (currentRow === 1 && currentColumn === 1) {\n                currentColumn = lastRowColumnLength;\n                currentRow = totalRow;\n              } else {\n                currentColumn = totalColumn;\n                currentRow = currentRow - 1;\n              }\n\n            } else if (KEY.RIGHT === keyCode) {\n\n              if (currentRow === totalRow && lastRowColumnLength === currentColumn) {\n                currentColumn = 1;\n                currentRow = 1;\n              } else if (currentColumn < totalColumn) {\n                currentColumn = currentColumn + 1;\n              } else {\n                currentColumn = 1;\n                currentRow = currentRow + 1;\n              }\n\n            } else if (KEY.UP === keyCode) {\n              if (currentRow === 1 && lastRowColumnLength < currentColumn) {\n                currentRow = totalRow - 1;\n              } else {\n                currentRow = currentRow - 1;\n              }\n            } else if (KEY.DOWN === keyCode) {\n              currentRow = currentRow + 1;\n            }\n\n            if (currentRow === totalRow && currentColumn > lastRowColumnLength) {\n              currentRow = 1;\n            } else if (currentRow > totalRow) {\n              currentRow = 1;\n            } else if (currentRow < 1) {\n              currentRow = totalRow;\n            }\n\n            $nextNode = findNextNode(currentRow, currentColumn);\n\n            if ($nextNode) {\n              removeActiveClass($selectedNode);\n              addActiveClass($nextNode);\n            }\n          }\n\n          function enterKeyHandler() {\n            if (!$selectedNode) {\n              return;\n            }\n\n            deferred.resolve(decodeURIComponent($selectedNode.find('button').attr('data-value')));\n            $specialCharDialog.modal('hide');\n          }\n\n          function keyDownEventHandler(event) {\n            event.preventDefault();\n            var keyCode = event.keyCode;\n            if (keyCode === undefined || keyCode === null) {\n              return;\n            }\n            // check arrowKeys match\n            if (ARROW_KEYS.indexOf(keyCode) > -1) {\n              if ($selectedNode === null) {\n                addActiveClass($specialCharNode.eq(0));\n                currentColumn = 1;\n                currentRow = 1;\n                return;\n              }\n              arrowKeyHandler(keyCode);\n            } else if (keyCode === ENTER_KEY) {\n              enterKeyHandler();\n            }\n            return false;\n          }\n\n          // remove class\n          removeActiveClass($specialCharNode);\n\n          // find selected node\n          if (text) {\n            for (var i = 0; i < $specialCharNode.length; i++) {\n              var $checkNode = $($specialCharNode[i]);\n              if ($checkNode.text() === text) {\n                addActiveClass($checkNode);\n                currentRow = Math.ceil((i + 1) / COLUMN_LENGTH);\n                currentColumn = (i + 1) % COLUMN_LENGTH;\n              }\n            }\n          }\n\n          ui.onDialogShown(self.$dialog, function () {\n\n            $(document).on('keydown', keyDownEventHandler);\n\n            self.$dialog.find('button').tooltip();\n\n            $specialCharNode.on('click', function (event) {\n              event.preventDefault();\n              deferred.resolve(decodeURIComponent($(event.currentTarget).find('button').attr('data-value')));\n              ui.hideDialog(self.$dialog);\n            });\n\n          });\n\n          ui.onDialogHidden(self.$dialog, function () {\n            $specialCharNode.off('click');\n\n            self.$dialog.find('button').tooltip('destroy');\n\n            $(document).off('keydown', keyDownEventHandler);\n\n            if (deferred.state() === 'pending') {\n              deferred.reject();\n            }\n          });\n\n          ui.showDialog(self.$dialog);\n        });\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/dist/summernote.css",
    "content": "@font-face{font-family:\"summernote\";font-style:normal;font-weight:normal;src:url(\"font/summernote.eot?ad8d7e2d177d2473aecd9b35d16211fb\");src:url(\"font/summernote.eot?#iefix\") format(\"embedded-opentype\"),url(\"font/summernote.woff?ad8d7e2d177d2473aecd9b35d16211fb\") format(\"woff\"),url(\"font/summernote.ttf?ad8d7e2d177d2473aecd9b35d16211fb\") format(\"truetype\")}[class^=\"note-icon-\"]:before,[class*=\" note-icon-\"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before{content:\"\\f101\"}.note-icon-align-indent:before{content:\"\\f102\"}.note-icon-align-justify:before{content:\"\\f103\"}.note-icon-align-left:before{content:\"\\f104\"}.note-icon-align-outdent:before{content:\"\\f105\"}.note-icon-align-right:before{content:\"\\f106\"}.note-icon-align:before{content:\"\\f107\"}.note-icon-arrows-alt:before{content:\"\\f108\"}.note-icon-bold:before{content:\"\\f109\"}.note-icon-caret:before{content:\"\\f10a\"}.note-icon-chain-broken:before{content:\"\\f10b\"}.note-icon-circle:before{content:\"\\f10c\"}.note-icon-close:before{content:\"\\f10d\"}.note-icon-code:before{content:\"\\f10e\"}.note-icon-eraser:before{content:\"\\f10f\"}.note-icon-font:before{content:\"\\f110\"}.note-icon-frame:before{content:\"\\f111\"}.note-icon-italic:before{content:\"\\f112\"}.note-icon-link:before{content:\"\\f113\"}.note-icon-magic:before{content:\"\\f114\"}.note-icon-menu-check:before{content:\"\\f115\"}.note-icon-minus:before{content:\"\\f116\"}.note-icon-orderedlist:before{content:\"\\f117\"}.note-icon-pencil:before{content:\"\\f118\"}.note-icon-picture:before{content:\"\\f119\"}.note-icon-question:before{content:\"\\f11a\"}.note-icon-redo:before{content:\"\\f11b\"}.note-icon-special-character:before{content:\"\\f11c\"}.note-icon-square:before{content:\"\\f11d\"}.note-icon-strikethrough:before{content:\"\\f11e\"}.note-icon-subscript:before{content:\"\\f11f\"}.note-icon-summernote:before{content:\"\\f120\"}.note-icon-superscript:before{content:\"\\f121\"}.note-icon-table:before{content:\"\\f122\"}.note-icon-text-height:before{content:\"\\f123\"}.note-icon-trash:before{content:\"\\f124\"}.note-icon-underline:before{content:\"\\f125\"}.note-icon-undo:before{content:\"\\f126\"}.note-icon-unorderedlist:before{content:\"\\f127\"}.note-icon-video:before{content:\"\\f128\"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:white;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:bold;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable=\"false\"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%!important}.note-editor.note-frame.fullscreen .note-editable{background-color:white}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:8px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px!important}.note-popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover-content .note-style h1,.panel-heading.note-toolbar .note-style h1,.note-popover .popover-content .note-style h2,.panel-heading.note-toolbar .note-style h2,.note-popover .popover-content .note-style h3,.panel-heading.note-toolbar .note-style h3,.note-popover .popover-content .note-style h4,.panel-heading.note-toolbar .note-style h4,.note-popover .popover-content .note-style h5,.panel-heading.note-toolbar .note-style h5,.note-popover .popover-content .note-style h6,.panel-heading.note-toolbar .note-style h6,.note-popover .popover-content .note-style blockquote,.panel-heading.note-toolbar .note-style blockquote{margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:340px}.note-popover .popover-content .note-color .dropdown-menu .btn-group,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group{margin:0}.note-popover .popover-content .note-color .dropdown-menu .btn-group:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:black;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:white;border:1px solid black}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:white;background-color:black;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block!important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:white;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/dist/summernote.js",
    "content": "/**\n * Super simple wysiwyg editor v0.8.2\n * http://summernote.org/\n *\n * summernote.js\n * Copyright 2013-2016 Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license./\n *\n * Date: 2016-08-07T05:11Z\n */\n(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  'use strict';\n\n  /**\n   * @class core.func\n   *\n   * func utils (for high-order func's arg)\n   *\n   * @singleton\n   * @alternateClassName func\n   */\n  var func = (function () {\n    var eq = function (itemA) {\n      return function (itemB) {\n        return itemA === itemB;\n      };\n    };\n\n    var eq2 = function (itemA, itemB) {\n      return itemA === itemB;\n    };\n\n    var peq2 = function (propName) {\n      return function (itemA, itemB) {\n        return itemA[propName] === itemB[propName];\n      };\n    };\n\n    var ok = function () {\n      return true;\n    };\n\n    var fail = function () {\n      return false;\n    };\n\n    var not = function (f) {\n      return function () {\n        return !f.apply(f, arguments);\n      };\n    };\n\n    var and = function (fA, fB) {\n      return function (item) {\n        return fA(item) && fB(item);\n      };\n    };\n\n    var self = function (a) {\n      return a;\n    };\n\n    var invoke = function (obj, method) {\n      return function () {\n        return obj[method].apply(obj, arguments);\n      };\n    };\n\n    var idCounter = 0;\n\n    /**\n     * generate a globally-unique id\n     *\n     * @param {String} [prefix]\n     */\n    var uniqueId = function (prefix) {\n      var id = ++idCounter + '';\n      return prefix ? prefix + id : id;\n    };\n\n    /**\n     * returns bnd (bounds) from rect\n     *\n     * - IE Compatibility Issue: http://goo.gl/sRLOAo\n     * - Scroll Issue: http://goo.gl/sNjUc\n     *\n     * @param {Rect} rect\n     * @return {Object} bounds\n     * @return {Number} bounds.top\n     * @return {Number} bounds.left\n     * @return {Number} bounds.width\n     * @return {Number} bounds.height\n     */\n    var rect2bnd = function (rect) {\n      var $document = $(document);\n      return {\n        top: rect.top + $document.scrollTop(),\n        left: rect.left + $document.scrollLeft(),\n        width: rect.right - rect.left,\n        height: rect.bottom - rect.top\n      };\n    };\n\n    /**\n     * returns a copy of the object where the keys have become the values and the values the keys.\n     * @param {Object} obj\n     * @return {Object}\n     */\n    var invertObject = function (obj) {\n      var inverted = {};\n      for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n          inverted[obj[key]] = key;\n        }\n      }\n      return inverted;\n    };\n\n    /**\n     * @param {String} namespace\n     * @param {String} [prefix]\n     * @return {String}\n     */\n    var namespaceToCamel = function (namespace, prefix) {\n      prefix = prefix || '';\n      return prefix + namespace.split('.').map(function (name) {\n        return name.substring(0, 1).toUpperCase() + name.substring(1);\n      }).join('');\n    };\n\n    /**\n     * Returns a function, that, as long as it continues to be invoked, will not\n     * be triggered. The function will be called after it stops being called for\n     * N milliseconds. If `immediate` is passed, trigger the function on the\n     * leading edge, instead of the trailing.\n     * @param {Function} func\n     * @param {Number} wait\n     * @param {Boolean} immediate\n     * @return {Function}\n     */\n    var debounce = function (func, wait, immediate) {\n      var timeout;\n      return function () {\n        var context = this, args = arguments;\n        var later = function () {\n          timeout = null;\n          if (!immediate) {\n            func.apply(context, args);\n          }\n        };\n        var callNow = immediate && !timeout;\n        clearTimeout(timeout);\n        timeout = setTimeout(later, wait);\n        if (callNow) {\n          func.apply(context, args);\n        }\n      };\n    };\n\n    return {\n      eq: eq,\n      eq2: eq2,\n      peq2: peq2,\n      ok: ok,\n      fail: fail,\n      self: self,\n      not: not,\n      and: and,\n      invoke: invoke,\n      uniqueId: uniqueId,\n      rect2bnd: rect2bnd,\n      invertObject: invertObject,\n      namespaceToCamel: namespaceToCamel,\n      debounce: debounce\n    };\n  })();\n\n  /**\n   * @class core.list\n   *\n   * list utils\n   *\n   * @singleton\n   * @alternateClassName list\n   */\n  var list = (function () {\n    /**\n     * returns the first item of an array.\n     *\n     * @param {Array} array\n     */\n    var head = function (array) {\n      return array[0];\n    };\n\n    /**\n     * returns the last item of an array.\n     *\n     * @param {Array} array\n     */\n    var last = function (array) {\n      return array[array.length - 1];\n    };\n\n    /**\n     * returns everything but the last entry of the array.\n     *\n     * @param {Array} array\n     */\n    var initial = function (array) {\n      return array.slice(0, array.length - 1);\n    };\n\n    /**\n     * returns the rest of the items in an array.\n     *\n     * @param {Array} array\n     */\n    var tail = function (array) {\n      return array.slice(1);\n    };\n\n    /**\n     * returns item of array\n     */\n    var find = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        var item = array[idx];\n        if (pred(item)) {\n          return item;\n        }\n      }\n    };\n\n    /**\n     * returns true if all of the values in the array pass the predicate truth test.\n     */\n    var all = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!pred(array[idx])) {\n          return false;\n        }\n      }\n      return true;\n    };\n\n    /**\n     * returns index of item\n     */\n    var indexOf = function (array, item) {\n      return $.inArray(item, array);\n    };\n\n    /**\n     * returns true if the value is present in the list.\n     */\n    var contains = function (array, item) {\n      return indexOf(array, item) !== -1;\n    };\n\n    /**\n     * get sum from a list\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - iterator\n     */\n    var sum = function (array, fn) {\n      fn = fn || func.self;\n      return array.reduce(function (memo, v) {\n        return memo + fn(v);\n      }, 0);\n    };\n  \n    /**\n     * returns a copy of the collection with array type.\n     * @param {Collection} collection - collection eg) node.childNodes, ...\n     */\n    var from = function (collection) {\n      var result = [], idx = -1, length = collection.length;\n      while (++idx < length) {\n        result[idx] = collection[idx];\n      }\n      return result;\n    };\n\n    /**\n     * returns whether list is empty or not\n     */\n    var isEmpty = function (array) {\n      return !array || !array.length;\n    };\n  \n    /**\n     * cluster elements by predicate function.\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     * @param {Array[]}\n     */\n    var clusterBy = function (array, fn) {\n      if (!array.length) { return []; }\n      var aTail = tail(array);\n      return aTail.reduce(function (memo, v) {\n        var aLast = last(memo);\n        if (fn(last(aLast), v)) {\n          aLast[aLast.length] = v;\n        } else {\n          memo[memo.length] = [v];\n        }\n        return memo;\n      }, [[head(array)]]);\n    };\n  \n    /**\n     * returns a copy of the array with all false values removed\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     */\n    var compact = function (array) {\n      var aResult = [];\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (array[idx]) { aResult.push(array[idx]); }\n      }\n      return aResult;\n    };\n\n    /**\n     * produces a duplicate-free version of the array\n     *\n     * @param {Array} array\n     */\n    var unique = function (array) {\n      var results = [];\n\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!contains(results, array[idx])) {\n          results.push(array[idx]);\n        }\n      }\n\n      return results;\n    };\n\n    /**\n     * returns next item.\n     * @param {Array} array\n     */\n    var next = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx + 1];\n    };\n\n    /**\n     * returns prev item.\n     * @param {Array} array\n     */\n    var prev = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx - 1];\n    };\n\n    return { head: head, last: last, initial: initial, tail: tail,\n             prev: prev, next: next, find: find, contains: contains,\n             all: all, sum: sum, from: from, isEmpty: isEmpty,\n             clusterBy: clusterBy, compact: compact, unique: unique };\n  })();\n\n  var isSupportAmd = typeof define === 'function' && define.amd;\n\n  /**\n   * returns whether font is installed or not.\n   *\n   * @param {String} fontName\n   * @return {Boolean}\n   */\n  var isFontInstalled = function (fontName) {\n    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n    var $tester = $('<div>').css({\n      position: 'absolute',\n      left: '-9999px',\n      top: '-9999px',\n      fontSize: '200px'\n    }).text('mmmmmmmmmwwwwwww').appendTo(document.body);\n\n    var originalWidth = $tester.css('fontFamily', testFontName).width();\n    var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();\n\n    $tester.remove();\n\n    return originalWidth !== width;\n  };\n\n  var userAgent = navigator.userAgent;\n  var isMSIE = /MSIE|Trident/i.test(userAgent);\n  var browserVersion;\n  if (isMSIE) {\n    var matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n    matches = /Trident\\/.*rv:([0-9]{1,}[\\.0-9]{0,})/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n  }\n\n  var isEdge = /Edge\\/\\d+/.test(userAgent);\n\n  var hasCodeMirror = !!window.CodeMirror;\n  if (!hasCodeMirror && isSupportAmd && typeof require !== 'undefined') {\n    if (typeof require.resolve !== 'undefined') {\n      try {\n        // If CodeMirror can't be resolved, `require.resolve` will throw an\n        // exception and `hasCodeMirror` won't be set to `true`.\n        require.resolve('codemirror');\n        hasCodeMirror = true;\n      } catch (e) {\n        // Do nothing.\n      }\n    } else if (typeof eval('require').specified !== 'undefined') {\n      hasCodeMirror = eval('require').specified('codemirror');\n    }\n  }\n\n  /**\n   * @class core.agent\n   *\n   * Object which check platform and agent\n   *\n   * @singleton\n   * @alternateClassName agent\n   */\n  var agent = {\n    isMac: navigator.appVersion.indexOf('Mac') > -1,\n    isMSIE: isMSIE,\n    isEdge: isEdge,\n    isFF: !isEdge && /firefox/i.test(userAgent),\n    isPhantom: /PhantomJS/i.test(userAgent),\n    isWebkit: !isEdge && /webkit/i.test(userAgent),\n    isChrome: !isEdge && /chrome/i.test(userAgent),\n    isSafari: !isEdge && /safari/i.test(userAgent),\n    browserVersion: browserVersion,\n    jqueryVersion: parseFloat($.fn.jquery),\n    isSupportAmd: isSupportAmd,\n    hasCodeMirror: hasCodeMirror,\n    isFontInstalled: isFontInstalled,\n    isW3CRangeSupport: !!document.createRange\n  };\n\n\n  var NBSP_CHAR = String.fromCharCode(160);\n  var ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n  /**\n   * @class core.dom\n   *\n   * Dom functions\n   *\n   * @singleton\n   * @alternateClassName dom\n   */\n  var dom = (function () {\n    /**\n     * @method isEditable\n     *\n     * returns whether node is `note-editable` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEditable = function (node) {\n      return node && $(node).hasClass('note-editable');\n    };\n\n    /**\n     * @method isControlSizing\n     *\n     * returns whether node is `note-control-sizing` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isControlSizing = function (node) {\n      return node && $(node).hasClass('note-control-sizing');\n    };\n\n    /**\n     * @method makePredByNodeName\n     *\n     * returns predicate which judge whether nodeName is same\n     *\n     * @param {String} nodeName\n     * @return {Function}\n     */\n    var makePredByNodeName = function (nodeName) {\n      nodeName = nodeName.toUpperCase();\n      return function (node) {\n        return node && node.nodeName.toUpperCase() === nodeName;\n      };\n    };\n\n    /**\n     * @method isText\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is text(3)\n     */\n    var isText = function (node) {\n      return node && node.nodeType === 3;\n    };\n\n    /**\n     * @method isElement\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is element(1)\n     */\n    var isElement = function (node) {\n      return node && node.nodeType === 1;\n    };\n\n    /**\n     * ex) br, col, embed, hr, img, input, ...\n     * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n     */\n    var isVoid = function (node) {\n      return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPara = function (node) {\n      if (isEditable(node)) {\n        return false;\n      }\n\n      // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n      return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHeading = function (node) {\n      return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPre = makePredByNodeName('PRE');\n\n    var isLi = makePredByNodeName('LI');\n\n    var isPurePara = function (node) {\n      return isPara(node) && !isLi(node);\n    };\n\n    var isTable = makePredByNodeName('TABLE');\n\n    var isData = makePredByNodeName('DATA');\n\n    var isInline = function (node) {\n      return !isBodyContainer(node) &&\n             !isList(node) &&\n             !isHr(node) &&\n             !isPara(node) &&\n             !isTable(node) &&\n             !isBlockquote(node) &&\n             !isData(node);\n    };\n\n    var isList = function (node) {\n      return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHr = makePredByNodeName('HR');\n\n    var isCell = function (node) {\n      return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n    };\n\n    var isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\n    var isBodyContainer = function (node) {\n      return isCell(node) || isBlockquote(node) || isEditable(node);\n    };\n\n    var isAnchor = makePredByNodeName('A');\n\n    var isParaInline = function (node) {\n      return isInline(node) && !!ancestor(node, isPara);\n    };\n\n    var isBodyInline = function (node) {\n      return isInline(node) && !ancestor(node, isPara);\n    };\n\n    var isBody = makePredByNodeName('BODY');\n\n    /**\n     * returns whether nodeB is closest sibling of nodeA\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     * @return {Boolean}\n     */\n    var isClosestSibling = function (nodeA, nodeB) {\n      return nodeA.nextSibling === nodeB ||\n             nodeA.previousSibling === nodeB;\n    };\n\n    /**\n     * returns array of closest siblings with node\n     *\n     * @param {Node} node\n     * @param {function} [pred] - predicate function\n     * @return {Node[]}\n     */\n    var withClosestSiblings = function (node, pred) {\n      pred = pred || func.ok;\n\n      var siblings = [];\n      if (node.previousSibling && pred(node.previousSibling)) {\n        siblings.push(node.previousSibling);\n      }\n      siblings.push(node);\n      if (node.nextSibling && pred(node.nextSibling)) {\n        siblings.push(node.nextSibling);\n      }\n      return siblings;\n    };\n\n    /**\n     * blank HTML for cursor position\n     * - [workaround] old IE only works with &nbsp;\n     * - [workaround] IE11 and other browser works with bogus br\n     */\n    var blankHTML = agent.isMSIE && agent.browserVersion < 11 ? '&nbsp;' : '<br>';\n\n    /**\n     * @method nodeLength\n     *\n     * returns #text's text size or element's childNodes size\n     *\n     * @param {Node} node\n     */\n    var nodeLength = function (node) {\n      if (isText(node)) {\n        return node.nodeValue.length;\n      }\n      \n      if (node) {\n        return node.childNodes.length;\n      }\n      \n      return 0;\n      \n    };\n\n    /**\n     * returns whether node is empty or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEmpty = function (node) {\n      var len = nodeLength(node);\n\n      if (len === 0) {\n        return true;\n      } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n        // ex) <p><br></p>, <span><br></span>\n        return true;\n      } else if (list.all(node.childNodes, isText) && node.innerHTML === '') {\n        // ex) <p></p>, <span></span>\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * padding blankHTML if node is empty (for cursor position)\n     */\n    var paddingBlankHTML = function (node) {\n      if (!isVoid(node) && !nodeLength(node)) {\n        node.innerHTML = blankHTML;\n      }\n    };\n\n    /**\n     * find nearest ancestor predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var ancestor = function (node, pred) {\n      while (node) {\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * find nearest ancestor only single child blood line and predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var singleChildAncestor = function (node, pred) {\n      node = node.parentNode;\n\n      while (node) {\n        if (nodeLength(node) !== 1) { break; }\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * returns new array of ancestor nodes (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listAncestor = function (node, pred) {\n      pred = pred || func.fail;\n\n      var ancestors = [];\n      ancestor(node, function (el) {\n        if (!isEditable(el)) {\n          ancestors.push(el);\n        }\n\n        return pred(el);\n      });\n      return ancestors;\n    };\n\n    /**\n     * find farthest ancestor predicate hit\n     */\n    var lastAncestor = function (node, pred) {\n      var ancestors = listAncestor(node);\n      return list.last(ancestors.filter(pred));\n    };\n\n    /**\n     * returns common ancestor node between two nodes.\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     */\n    var commonAncestor = function (nodeA, nodeB) {\n      var ancestors = listAncestor(nodeA);\n      for (var n = nodeB; n; n = n.parentNode) {\n        if ($.inArray(n, ancestors) > -1) { return n; }\n      }\n      return null; // difference document area\n    };\n\n    /**\n     * listing all previous siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listPrev = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.previousSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing next siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listNext = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.nextSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing descendant nodes\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listDescendant = function (node, pred) {\n      var descendants = [];\n      pred = pred || func.ok;\n\n      // start DFS(depth first search) with node\n      (function fnWalk(current) {\n        if (node !== current && pred(current)) {\n          descendants.push(current);\n        }\n        for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {\n          fnWalk(current.childNodes[idx]);\n        }\n      })(node);\n\n      return descendants;\n    };\n\n    /**\n     * wrap node with new tag.\n     *\n     * @param {Node} node\n     * @param {Node} tagName of wrapper\n     * @return {Node} - wrapper\n     */\n    var wrap = function (node, wrapperName) {\n      var parent = node.parentNode;\n      var wrapper = $('<' + wrapperName + '>')[0];\n\n      parent.insertBefore(wrapper, node);\n      wrapper.appendChild(node);\n\n      return wrapper;\n    };\n\n    /**\n     * insert node after preceding\n     *\n     * @param {Node} node\n     * @param {Node} preceding - predicate function\n     */\n    var insertAfter = function (node, preceding) {\n      var next = preceding.nextSibling, parent = preceding.parentNode;\n      if (next) {\n        parent.insertBefore(node, next);\n      } else {\n        parent.appendChild(node);\n      }\n      return node;\n    };\n\n    /**\n     * append elements.\n     *\n     * @param {Node} node\n     * @param {Collection} aChild\n     */\n    var appendChildNodes = function (node, aChild) {\n      $.each(aChild, function (idx, child) {\n        node.appendChild(child);\n      });\n      return node;\n    };\n\n    /**\n     * returns whether boundaryPoint is left edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isLeftEdgePoint = function (point) {\n      return point.offset === 0;\n    };\n\n    /**\n     * returns whether boundaryPoint is right edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isRightEdgePoint = function (point) {\n      return point.offset === nodeLength(point.node);\n    };\n\n    /**\n     * returns whether boundaryPoint is edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isEdgePoint = function (point) {\n      return isLeftEdgePoint(point) || isRightEdgePoint(point);\n    };\n\n    /**\n     * returns whether node is left edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgeOf = function (node, ancestor) {\n      while (node && node !== ancestor) {\n        if (position(node) !== 0) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether node is right edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgeOf = function (node, ancestor) {\n      if (!ancestor) {\n        return false;\n      }\n      while (node && node !== ancestor) {\n        if (position(node) !== nodeLength(node.parentNode) - 1) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether point is left edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgePointOf = function (point, ancestor) {\n      return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns whether point is right edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgePointOf = function (point, ancestor) {\n      return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns offset from parent.\n     *\n     * @param {Node} node\n     */\n    var position = function (node) {\n      var offset = 0;\n      while ((node = node.previousSibling)) {\n        offset += 1;\n      }\n      return offset;\n    };\n\n    var hasChildren = function (node) {\n      return !!(node && node.childNodes && node.childNodes.length);\n    };\n\n    /**\n     * returns previous boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var prevPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (point.offset === 0) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node);\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset - 1];\n        offset = nodeLength(node);\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? 0 : point.offset - 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns next boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var nextPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (nodeLength(point.node) === point.offset) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node) + 1;\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset];\n        offset = 0;\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns whether pointA and pointB is same or not.\n     *\n     * @param {BoundaryPoint} pointA\n     * @param {BoundaryPoint} pointB\n     * @return {Boolean}\n     */\n    var isSamePoint = function (pointA, pointB) {\n      return pointA.node === pointB.node && pointA.offset === pointB.offset;\n    };\n\n    /**\n     * returns whether point is visible (can set cursor) or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isVisiblePoint = function (point) {\n      if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n        return true;\n      }\n\n      var leftNode = point.node.childNodes[point.offset - 1];\n      var rightNode = point.node.childNodes[point.offset];\n      if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * @method prevPointUtil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var prevPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = prevPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * @method nextPointUntil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var nextPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = nextPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * returns whether point has character or not.\n     *\n     * @param {Point} point\n     * @return {Boolean}\n     */\n    var isCharPoint = function (point) {\n      if (!isText(point.node)) {\n        return false;\n      }\n\n      var ch = point.node.nodeValue.charAt(point.offset - 1);\n      return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n    };\n\n    /**\n     * @method walkPoint\n     *\n     * @param {BoundaryPoint} startPoint\n     * @param {BoundaryPoint} endPoint\n     * @param {Function} handler\n     * @param {Boolean} isSkipInnerOffset\n     */\n    var walkPoint = function (startPoint, endPoint, handler, isSkipInnerOffset) {\n      var point = startPoint;\n\n      while (point) {\n        handler(point);\n\n        if (isSamePoint(point, endPoint)) {\n          break;\n        }\n\n        var isSkipOffset = isSkipInnerOffset &&\n                           startPoint.node !== point.node &&\n                           endPoint.node !== point.node;\n        point = nextPoint(point, isSkipOffset);\n      }\n    };\n\n    /**\n     * @method makeOffsetPath\n     *\n     * return offsetPath(array of offset) from ancestor\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {Node} node\n     */\n    var makeOffsetPath = function (ancestor, node) {\n      var ancestors = listAncestor(node, func.eq(ancestor));\n      return ancestors.map(position).reverse();\n    };\n\n    /**\n     * @method fromOffsetPath\n     *\n     * return element from offsetPath(array of offset)\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {array} offsets - offsetPath\n     */\n    var fromOffsetPath = function (ancestor, offsets) {\n      var current = ancestor;\n      for (var i = 0, len = offsets.length; i < len; i++) {\n        if (current.childNodes.length <= offsets[i]) {\n          current = current.childNodes[current.childNodes.length - 1];\n        } else {\n          current = current.childNodes[offsets[i]];\n        }\n      }\n      return current;\n    };\n\n    /**\n     * @method splitNode\n     *\n     * split element or #text\n     *\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitNode = function (point, options) {\n      var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n      var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n\n      // edge case\n      if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n        if (isLeftEdgePoint(point)) {\n          return point.node;\n        } else if (isRightEdgePoint(point)) {\n          return point.node.nextSibling;\n        }\n      }\n\n      // split #text\n      if (isText(point.node)) {\n        return point.node.splitText(point.offset);\n      } else {\n        var childNode = point.node.childNodes[point.offset];\n        var clone = insertAfter(point.node.cloneNode(false), point.node);\n        appendChildNodes(clone, listNext(childNode));\n\n        if (!isSkipPaddingBlankHTML) {\n          paddingBlankHTML(point.node);\n          paddingBlankHTML(clone);\n        }\n\n        return clone;\n      }\n    };\n\n    /**\n     * @method splitTree\n     *\n     * split tree by point\n     *\n     * @param {Node} root - split root\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitTree = function (root, point, options) {\n      // ex) [#text, <span>, <p>]\n      var ancestors = listAncestor(point.node, func.eq(root));\n\n      if (!ancestors.length) {\n        return null;\n      } else if (ancestors.length === 1) {\n        return splitNode(point, options);\n      }\n\n      return ancestors.reduce(function (node, parent) {\n        if (node === point.node) {\n          node = splitNode(point, options);\n        }\n\n        return splitNode({\n          node: parent,\n          offset: node ? dom.position(node) : nodeLength(parent)\n        }, options);\n      });\n    };\n\n    /**\n     * split point\n     *\n     * @param {Point} point\n     * @param {Boolean} isInline\n     * @return {Object}\n     */\n    var splitPoint = function (point, isInline) {\n      // find splitRoot, container\n      //  - inline: splitRoot is a child of paragraph\n      //  - block: splitRoot is a child of bodyContainer\n      var pred = isInline ? isPara : isBodyContainer;\n      var ancestors = listAncestor(point.node, pred);\n      var topAncestor = list.last(ancestors) || point.node;\n\n      var splitRoot, container;\n      if (pred(topAncestor)) {\n        splitRoot = ancestors[ancestors.length - 2];\n        container = topAncestor;\n      } else {\n        splitRoot = topAncestor;\n        container = splitRoot.parentNode;\n      }\n\n      // if splitRoot is exists, split with splitTree\n      var pivot = splitRoot && splitTree(splitRoot, point, {\n        isSkipPaddingBlankHTML: isInline,\n        isNotSplitEdgePoint: isInline\n      });\n\n      // if container is point.node, find pivot with point.offset\n      if (!pivot && container === point.node) {\n        pivot = point.node.childNodes[point.offset];\n      }\n\n      return {\n        rightNode: pivot,\n        container: container\n      };\n    };\n\n    var create = function (nodeName) {\n      return document.createElement(nodeName);\n    };\n\n    var createText = function (text) {\n      return document.createTextNode(text);\n    };\n\n    /**\n     * @method remove\n     *\n     * remove node, (isRemoveChild: remove child or not)\n     *\n     * @param {Node} node\n     * @param {Boolean} isRemoveChild\n     */\n    var remove = function (node, isRemoveChild) {\n      if (!node || !node.parentNode) { return; }\n      if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n      var parent = node.parentNode;\n      if (!isRemoveChild) {\n        var nodes = [];\n        var i, len;\n        for (i = 0, len = node.childNodes.length; i < len; i++) {\n          nodes.push(node.childNodes[i]);\n        }\n\n        for (i = 0, len = nodes.length; i < len; i++) {\n          parent.insertBefore(nodes[i], node);\n        }\n      }\n\n      parent.removeChild(node);\n    };\n\n    /**\n     * @method removeWhile\n     *\n     * @param {Node} node\n     * @param {Function} pred\n     */\n    var removeWhile = function (node, pred) {\n      while (node) {\n        if (isEditable(node) || !pred(node)) {\n          break;\n        }\n\n        var parent = node.parentNode;\n        remove(node);\n        node = parent;\n      }\n    };\n\n    /**\n     * @method replace\n     *\n     * replace node with provided nodeName\n     *\n     * @param {Node} node\n     * @param {String} nodeName\n     * @return {Node} - new node\n     */\n    var replace = function (node, nodeName) {\n      if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n        return node;\n      }\n\n      var newNode = create(nodeName);\n\n      if (node.style.cssText) {\n        newNode.style.cssText = node.style.cssText;\n      }\n\n      appendChildNodes(newNode, list.from(node.childNodes));\n      insertAfter(newNode, node);\n      remove(node);\n\n      return newNode;\n    };\n\n    var isTextarea = makePredByNodeName('TEXTAREA');\n\n    /**\n     * @param {jQuery} $node\n     * @param {Boolean} [stripLinebreaks] - default: false\n     */\n    var value = function ($node, stripLinebreaks) {\n      var val = isTextarea($node[0]) ? $node.val() : $node.html();\n      if (stripLinebreaks) {\n        return val.replace(/[\\n\\r]/g, '');\n      }\n      return val;\n    };\n\n    /**\n     * @method html\n     *\n     * get the HTML contents of node\n     *\n     * @param {jQuery} $node\n     * @param {Boolean} [isNewlineOnBlock]\n     */\n    var html = function ($node, isNewlineOnBlock) {\n      var markup = value($node);\n\n      if (isNewlineOnBlock) {\n        var regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n        markup = markup.replace(regexTag, function (match, endSlash, name) {\n          name = name.toUpperCase();\n          var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n                                       !!endSlash;\n          var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n          return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n        });\n        markup = $.trim(markup);\n      }\n\n      return markup;\n    };\n\n    var posFromPlaceholder = function (placeholder) {\n      var $placeholder = $(placeholder);\n      var pos = $placeholder.offset();\n      var height = $placeholder.outerHeight(true); // include margin\n\n      return {\n        left: pos.left,\n        top: pos.top + height\n      };\n    };\n\n    var attachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.on(key, events[key]);\n      });\n    };\n\n    var detachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.off(key, events[key]);\n      });\n    };\n\n    return {\n      /** @property {String} NBSP_CHAR */\n      NBSP_CHAR: NBSP_CHAR,\n      /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n      ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,\n      /** @property {String} blank */\n      blank: blankHTML,\n      /** @property {String} emptyPara */\n      emptyPara: '<p>' + blankHTML + '</p>',\n      makePredByNodeName: makePredByNodeName,\n      isEditable: isEditable,\n      isControlSizing: isControlSizing,\n      isText: isText,\n      isElement: isElement,\n      isVoid: isVoid,\n      isPara: isPara,\n      isPurePara: isPurePara,\n      isHeading: isHeading,\n      isInline: isInline,\n      isBlock: func.not(isInline),\n      isBodyInline: isBodyInline,\n      isBody: isBody,\n      isParaInline: isParaInline,\n      isPre: isPre,\n      isList: isList,\n      isTable: isTable,\n      isData: isData,\n      isCell: isCell,\n      isBlockquote: isBlockquote,\n      isBodyContainer: isBodyContainer,\n      isAnchor: isAnchor,\n      isDiv: makePredByNodeName('DIV'),\n      isLi: isLi,\n      isBR: makePredByNodeName('BR'),\n      isSpan: makePredByNodeName('SPAN'),\n      isB: makePredByNodeName('B'),\n      isU: makePredByNodeName('U'),\n      isS: makePredByNodeName('S'),\n      isI: makePredByNodeName('I'),\n      isImg: makePredByNodeName('IMG'),\n      isTextarea: isTextarea,\n      isEmpty: isEmpty,\n      isEmptyAnchor: func.and(isAnchor, isEmpty),\n      isClosestSibling: isClosestSibling,\n      withClosestSiblings: withClosestSiblings,\n      nodeLength: nodeLength,\n      isLeftEdgePoint: isLeftEdgePoint,\n      isRightEdgePoint: isRightEdgePoint,\n      isEdgePoint: isEdgePoint,\n      isLeftEdgeOf: isLeftEdgeOf,\n      isRightEdgeOf: isRightEdgeOf,\n      isLeftEdgePointOf: isLeftEdgePointOf,\n      isRightEdgePointOf: isRightEdgePointOf,\n      prevPoint: prevPoint,\n      nextPoint: nextPoint,\n      isSamePoint: isSamePoint,\n      isVisiblePoint: isVisiblePoint,\n      prevPointUntil: prevPointUntil,\n      nextPointUntil: nextPointUntil,\n      isCharPoint: isCharPoint,\n      walkPoint: walkPoint,\n      ancestor: ancestor,\n      singleChildAncestor: singleChildAncestor,\n      listAncestor: listAncestor,\n      lastAncestor: lastAncestor,\n      listNext: listNext,\n      listPrev: listPrev,\n      listDescendant: listDescendant,\n      commonAncestor: commonAncestor,\n      wrap: wrap,\n      insertAfter: insertAfter,\n      appendChildNodes: appendChildNodes,\n      position: position,\n      hasChildren: hasChildren,\n      makeOffsetPath: makeOffsetPath,\n      fromOffsetPath: fromOffsetPath,\n      splitTree: splitTree,\n      splitPoint: splitPoint,\n      create: create,\n      createText: createText,\n      remove: remove,\n      removeWhile: removeWhile,\n      replace: replace,\n      html: html,\n      value: value,\n      posFromPlaceholder: posFromPlaceholder,\n      attachEvents: attachEvents,\n      detachEvents: detachEvents\n    };\n  })();\n\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   * @return {Context}\n   */\n  var Context = function ($note, options) {\n    var self = this;\n\n    var ui = $.summernote.ui;\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = options;\n\n    /**\n     * create layout and initialize modules and other resources\n     */\n    this.initialize = function () {\n      this.layoutInfo = ui.createLayout($note, options);\n      this._initialize();\n      $note.hide();\n      return this;\n    };\n\n    /**\n     * destroy modules and other resources and remove layout\n     */\n    this.destroy = function () {\n      this._destroy();\n      $note.removeData('summernote');\n      ui.removeLayout($note, this.layoutInfo);\n    };\n\n    /**\n     * destory modules and other resources and initialize it again\n     */\n    this.reset = function () {\n      var disabled = self.isDisabled();\n      this.code(dom.emptyPara);\n      this._destroy();\n      this._initialize();\n\n      if (disabled) {\n        self.disable();\n      }\n    };\n\n    this._initialize = function () {\n      // add optional buttons\n      var buttons = $.extend({}, this.options.buttons);\n      Object.keys(buttons).forEach(function (key) {\n        self.memo('button.' + key, buttons[key]);\n      });\n\n      var modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n      // add and initialize modules\n      Object.keys(modules).forEach(function (key) {\n        self.module(key, modules[key], true);\n      });\n\n      Object.keys(this.modules).forEach(function (key) {\n        self.initializeModule(key);\n      });\n    };\n\n    this._destroy = function () {\n      // destroy modules with reversed order\n      Object.keys(this.modules).reverse().forEach(function (key) {\n        self.removeModule(key);\n      });\n\n      Object.keys(this.memos).forEach(function (key) {\n        self.removeMemo(key);\n      });\n    };\n\n    this.code = function (html) {\n      var isActivated = this.invoke('codeview.isActivated');\n\n      if (html === undefined) {\n        this.invoke('codeview.sync');\n        return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n      } else {\n        if (isActivated) {\n          this.layoutInfo.codable.val(html);\n        } else {\n          this.layoutInfo.editable.html(html);\n        }\n        $note.val(html);\n        this.triggerEvent('change', html);\n      }\n    };\n\n    this.isDisabled = function () {\n      return this.layoutInfo.editable.attr('contenteditable') === 'false';\n    };\n\n    this.enable = function () {\n      this.layoutInfo.editable.attr('contenteditable', true);\n      this.invoke('toolbar.activate', true);\n    };\n\n    this.disable = function () {\n      // close codeview if codeview is opend\n      if (this.invoke('codeview.isActivated')) {\n        this.invoke('codeview.deactivate');\n      }\n      this.layoutInfo.editable.attr('contenteditable', false);\n      this.invoke('toolbar.deactivate', true);\n    };\n\n    this.triggerEvent = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n      if (callback) {\n        callback.apply($note[0], args);\n      }\n      $note.trigger('summernote.' + namespace, args);\n    };\n\n    this.initializeModule = function (key) {\n      var module = this.modules[key];\n      module.shouldInitialize = module.shouldInitialize || func.ok;\n      if (!module.shouldInitialize()) {\n        return;\n      }\n\n      // initialize module\n      if (module.initialize) {\n        module.initialize();\n      }\n\n      // attach events\n      if (module.events) {\n        dom.attachEvents($note, module.events);\n      }\n    };\n\n    this.module = function (key, ModuleClass, withoutIntialize) {\n      if (arguments.length === 1) {\n        return this.modules[key];\n      }\n\n      this.modules[key] = new ModuleClass(this);\n\n      if (!withoutIntialize) {\n        this.initializeModule(key);\n      }\n    };\n\n    this.removeModule = function (key) {\n      var module = this.modules[key];\n      if (module.shouldInitialize()) {\n        if (module.events) {\n          dom.detachEvents($note, module.events);\n        }\n\n        if (module.destroy) {\n          module.destroy();\n        }\n      }\n\n      delete this.modules[key];\n    };\n\n    this.memo = function (key, obj) {\n      if (arguments.length === 1) {\n        return this.memos[key];\n      }\n      this.memos[key] = obj;\n    };\n\n    this.removeMemo = function (key) {\n      if (this.memos[key] && this.memos[key].destroy) {\n        this.memos[key].destroy();\n      }\n\n      delete this.memos[key];\n    };\n\n    this.createInvokeHandler = function (namespace, value) {\n      return function (event) {\n        event.preventDefault();\n        self.invoke(namespace, value || $(event.target).closest('[data-value]').data('value'));\n      };\n    };\n\n    this.invoke = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var splits = namespace.split('.');\n      var hasSeparator = splits.length > 1;\n      var moduleName = hasSeparator && list.head(splits);\n      var methodName = hasSeparator ? list.last(splits) : list.head(splits);\n\n      var module = this.modules[moduleName || 'editor'];\n      if (!moduleName && this[methodName]) {\n        return this[methodName].apply(this, args);\n      } else if (module && module[methodName] && module.shouldInitialize()) {\n        return module[methodName].apply(module, args);\n      }\n    };\n\n    return this.initialize();\n  };\n\n  $.fn.extend({\n    /**\n     * Summernote API\n     *\n     * @param {Object|String}\n     * @return {this}\n     */\n    summernote: function () {\n      var type = $.type(list.head(arguments));\n      var isExternalAPICalled = type === 'string';\n      var hasInitOptions = type === 'object';\n\n      var options = hasInitOptions ? list.head(arguments) : {};\n\n      options = $.extend({}, $.summernote.options, options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n\n      this.each(function (idx, note) {\n        var $note = $(note);\n        if (!$note.data('summernote')) {\n          var context = new Context($note, options);\n          $note.data('summernote', context);\n          $note.data('summernote').triggerEvent('init', context.layoutInfo);\n        }\n      });\n\n      var $note = this.first();\n      if ($note.length) {\n        var context = $note.data('summernote');\n        if (isExternalAPICalled) {\n          return context.invoke.apply(context, list.from(arguments));\n        } else if (options.focus) {\n          context.invoke('editor.focus');\n        }\n      }\n\n      return this;\n    }\n  });\n\n\n  var Renderer = function (markup, children, options, callback) {\n    this.render = function ($parent) {\n      var $node = $(markup);\n\n      if (options && options.contents) {\n        $node.html(options.contents);\n      }\n\n      if (options && options.className) {\n        $node.addClass(options.className);\n      }\n\n      if (options && options.data) {\n        $.each(options.data, function (k, v) {\n          $node.attr('data-' + k, v);\n        });\n      }\n\n      if (options && options.click) {\n        $node.on('click', options.click);\n      }\n\n      if (children) {\n        var $container = $node.find('.note-children-container');\n        children.forEach(function (child) {\n          child.render($container.length ? $container : $node);\n        });\n      }\n\n      if (callback) {\n        callback($node, options);\n      }\n\n      if (options && options.callback) {\n        options.callback($node);\n      }\n\n      if ($parent) {\n        $parent.append($node);\n      }\n\n      return $node;\n    };\n  };\n\n  var renderer = {\n    create: function (markup, callback) {\n      return function () {\n        var children = $.isArray(arguments[0]) ? arguments[0] : [];\n        var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n        if (options && options.children) {\n          children = options.children;\n        }\n        return new Renderer(markup, children, options, callback);\n      };\n    }\n  };\n\n  var editor = renderer.create('<div class=\"note-editor note-frame panel panel-default\"/>');\n  var toolbar = renderer.create('<div class=\"note-toolbar panel-heading\"/>');\n  var editingArea = renderer.create('<div class=\"note-editing-area\"/>');\n  var codable = renderer.create('<textarea class=\"note-codable\"/>');\n  var editable = renderer.create('<div class=\"note-editable panel-body\" contentEditable=\"true\"/>');\n  var statusbar = renderer.create([\n    '<div class=\"note-statusbar\">',\n    '  <div class=\"note-resizebar\">',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '  </div>',\n    '</div>'\n  ].join(''));\n\n  var airEditor = renderer.create('<div class=\"note-editor\"/>');\n  var airEditable = renderer.create('<div class=\"note-editable\" contentEditable=\"true\"/>');\n\n  var buttonGroup = renderer.create('<div class=\"note-btn-group btn-group\">');\n  var button = renderer.create('<button type=\"button\" class=\"note-btn btn btn-default btn-sm\" tabindex=\"-1\">', function ($node, options) {\n    if (options && options.tooltip) {\n      $node.attr({\n        title: options.tooltip\n      }).tooltip({\n        container: 'body',\n        trigger: 'hover',\n        placement: 'bottom'\n      });\n    }\n  });\n\n  var dropdown = renderer.create('<div class=\"dropdown-menu\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + content + '</a></li>';\n    }).join('') : options.items;\n\n    $node.html(markup);\n  });\n\n  var dropdownCheck = renderer.create('<div class=\"dropdown-menu note-check\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + icon(options.checkClassName) + ' ' + content + '</a></li>';\n    }).join('') : options.items;\n    $node.html(markup);\n  });\n\n  var palette = renderer.create('<div class=\"note-color-palette\"/>', function ($node, options) {\n    var contents = [];\n    for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n      var eventName = options.eventName;\n      var colors = options.colors[row];\n      var buttons = [];\n      for (var col = 0, colSize = colors.length; col < colSize; col++) {\n        var color = colors[col];\n        buttons.push([\n          '<button type=\"button\" class=\"note-color-btn\"',\n          'style=\"background-color:', color, '\" ',\n          'data-event=\"', eventName, '\" ',\n          'data-value=\"', color, '\" ',\n          'title=\"', color, '\" ',\n          'data-toggle=\"button\" tabindex=\"-1\"></button>'\n        ].join(''));\n      }\n      contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n    }\n    $node.html(contents.join(''));\n\n    $node.find('.note-color-btn').tooltip({\n      container: 'body',\n      trigger: 'hover',\n      placement: 'bottom'\n    });\n  });\n\n  var dialog = renderer.create('<div class=\"modal\" aria-hidden=\"false\" tabindex=\"-1\"/>', function ($node, options) {\n    if (options.fade) {\n      $node.addClass('fade');\n    }\n    $node.html([\n      '<div class=\"modal-dialog\">',\n      '  <div class=\"modal-content\">',\n      (options.title ?\n      '    <div class=\"modal-header\">' +\n      '      <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button>' +\n      '      <h4 class=\"modal-title\">' + options.title + '</h4>' +\n      '    </div>' : ''\n      ),\n      '    <div class=\"modal-body\">' + options.body + '</div>',\n      (options.footer ?\n      '    <div class=\"modal-footer\">' + options.footer + '</div>' : ''\n      ),\n      '  </div>',\n      '</div>'\n    ].join(''));\n  });\n\n  var popover = renderer.create([\n    '<div class=\"note-popover popover in\">',\n    '  <div class=\"arrow\"/>',\n    '  <div class=\"popover-content note-children-container\"/>',\n    '</div>'\n  ].join(''), function ($node, options) {\n    var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n\n    $node.addClass(direction);\n\n    if (options.hideArrow) {\n      $node.find('.arrow').hide();\n    }\n  });\n\n  var icon = function (iconClassName, tagName) {\n    tagName = tagName || 'i';\n    return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n  };\n\n  var ui = {\n    editor: editor,\n    toolbar: toolbar,\n    editingArea: editingArea,\n    codable: codable,\n    editable: editable,\n    statusbar: statusbar,\n    airEditor: airEditor,\n    airEditable: airEditable,\n    buttonGroup: buttonGroup,\n    button: button,\n    dropdown: dropdown,\n    dropdownCheck: dropdownCheck,\n    palette: palette,\n    dialog: dialog,\n    popover: popover,\n    icon: icon,\n\n    toggleBtn: function ($btn, isEnable) {\n      $btn.toggleClass('disabled', !isEnable);\n      $btn.attr('disabled', !isEnable);\n    },\n\n    toggleBtnActive: function ($btn, isActive) {\n      $btn.toggleClass('active', isActive);\n    },\n\n    onDialogShown: function ($dialog, handler) {\n      $dialog.one('shown.bs.modal', handler);\n    },\n\n    onDialogHidden: function ($dialog, handler) {\n      $dialog.one('hidden.bs.modal', handler);\n    },\n\n    showDialog: function ($dialog) {\n      $dialog.modal('show');\n    },\n\n    hideDialog: function ($dialog) {\n      $dialog.modal('hide');\n    },\n\n    createLayout: function ($note, options) {\n      var $editor = (options.airMode ? ui.airEditor([\n        ui.editingArea([\n          ui.airEditable()\n        ])\n      ]) : ui.editor([\n        ui.toolbar(),\n        ui.editingArea([\n          ui.codable(),\n          ui.editable()\n        ]),\n        ui.statusbar()\n      ])).render();\n\n      $editor.insertAfter($note);\n\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editingArea: $editor.find('.note-editing-area'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable'),\n        statusbar: $editor.find('.note-statusbar')\n      };\n    },\n\n    removeLayout: function ($note, layoutInfo) {\n      $note.html(layoutInfo.editable.html());\n      layoutInfo.editor.remove();\n      $note.show();\n    }\n  };\n\n  $.summernote = $.summernote || {\n    lang: {}\n  };\n\n  $.extend($.summernote.lang, {\n    'en-US': {\n      font: {\n        bold: 'Bold',\n        italic: 'Italic',\n        underline: 'Underline',\n        clear: 'Remove Font Style',\n        height: 'Line Height',\n        name: 'Font Family',\n        strikethrough: 'Strikethrough',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Font Size'\n      },\n      image: {\n        image: 'Picture',\n        insert: 'Insert Image',\n        resizeFull: 'Resize Full',\n        resizeHalf: 'Resize Half',\n        resizeQuarter: 'Resize Quarter',\n        floatLeft: 'Float Left',\n        floatRight: 'Float Right',\n        floatNone: 'Float None',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Drag image or text here',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Select from files',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Image URL',\n        remove: 'Remove Image'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Insert Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Insert Link',\n        unlink: 'Unlink',\n        edit: 'Edit',\n        textToDisplay: 'Text to display',\n        url: 'To what URL should this link go?',\n        openInNewWindow: 'Open in new window'\n      },\n      table: {\n        table: 'Table'\n      },\n      hr: {\n        insert: 'Insert Horizontal Rule'\n      },\n      style: {\n        style: 'Style',\n        normal: 'Normal',\n        blockquote: 'Quote',\n        pre: 'Code',\n        h1: 'Header 1',\n        h2: 'Header 2',\n        h3: 'Header 3',\n        h4: 'Header 4',\n        h5: 'Header 5',\n        h6: 'Header 6'\n      },\n      lists: {\n        unordered: 'Unordered list',\n        ordered: 'Ordered list'\n      },\n      options: {\n        help: 'Help',\n        fullscreen: 'Full Screen',\n        codeview: 'Code View'\n      },\n      paragraph: {\n        paragraph: 'Paragraph',\n        outdent: 'Outdent',\n        indent: 'Indent',\n        left: 'Align left',\n        center: 'Align center',\n        right: 'Align right',\n        justify: 'Justify full'\n      },\n      color: {\n        recent: 'Recent Color',\n        more: 'More Color',\n        background: 'Background Color',\n        foreground: 'Foreground Color',\n        transparent: 'Transparent',\n        setTransparent: 'Set transparent',\n        reset: 'Reset',\n        resetToDefault: 'Reset to default'\n      },\n      shortcut: {\n        shortcuts: 'Keyboard shortcuts',\n        close: 'Close',\n        textFormatting: 'Text formatting',\n        action: 'Action',\n        paragraphFormatting: 'Paragraph formatting',\n        documentStyle: 'Document Style',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Undo',\n        redo: 'Redo'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n\n\n  /**\n   * @class core.key\n   *\n   * Object for keycodes.\n   *\n   * @singleton\n   * @alternateClassName key\n   */\n  var key = (function () {\n    var keyMap = {\n      'BACKSPACE': 8,\n      'TAB': 9,\n      'ENTER': 13,\n      'SPACE': 32,\n\n      // Arrow\n      'LEFT': 37,\n      'UP': 38,\n      'RIGHT': 39,\n      'DOWN': 40,\n\n      // Number: 0-9\n      'NUM0': 48,\n      'NUM1': 49,\n      'NUM2': 50,\n      'NUM3': 51,\n      'NUM4': 52,\n      'NUM5': 53,\n      'NUM6': 54,\n      'NUM7': 55,\n      'NUM8': 56,\n\n      // Alphabet: a-z\n      'B': 66,\n      'E': 69,\n      'I': 73,\n      'J': 74,\n      'K': 75,\n      'L': 76,\n      'R': 82,\n      'S': 83,\n      'U': 85,\n      'V': 86,\n      'Y': 89,\n      'Z': 90,\n\n      'SLASH': 191,\n      'LEFTBRACKET': 219,\n      'BACKSLASH': 220,\n      'RIGHTBRACKET': 221\n    };\n\n    return {\n      /**\n       * @method isEdit\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isEdit: function (keyCode) {\n        return list.contains([\n          keyMap.BACKSPACE,\n          keyMap.TAB,\n          keyMap.ENTER,\n          keyMap.SPACE\n        ], keyCode);\n      },\n      /**\n       * @method isMove\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isMove: function (keyCode) {\n        return list.contains([\n          keyMap.LEFT,\n          keyMap.UP,\n          keyMap.RIGHT,\n          keyMap.DOWN\n        ], keyCode);\n      },\n      /**\n       * @property {Object} nameFromCode\n       * @property {String} nameFromCode.8 \"BACKSPACE\"\n       */\n      nameFromCode: func.invertObject(keyMap),\n      code: keyMap\n    };\n  })();\n\n  var range = (function () {\n\n    /**\n     * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n     *\n     * @param {TextRange} textRange\n     * @param {Boolean} isStart\n     * @return {BoundaryPoint}\n     *\n     * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n     */\n    var textRangeToPoint = function (textRange, isStart) {\n      var container = textRange.parentElement(), offset;\n  \n      var tester = document.body.createTextRange(), prevContainer;\n      var childNodes = list.from(container.childNodes);\n      for (offset = 0; offset < childNodes.length; offset++) {\n        if (dom.isText(childNodes[offset])) {\n          continue;\n        }\n        tester.moveToElementText(childNodes[offset]);\n        if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n          break;\n        }\n        prevContainer = childNodes[offset];\n      }\n  \n      if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n        var textRangeStart = document.body.createTextRange(), curTextNode = null;\n        textRangeStart.moveToElementText(prevContainer || container);\n        textRangeStart.collapse(!prevContainer);\n        curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n  \n        var pointTester = textRange.duplicate();\n        pointTester.setEndPoint('StartToStart', textRangeStart);\n        var textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n  \n        while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        /* jshint ignore:start */\n        var dummy = curTextNode.nodeValue; // enforce IE to re-reference curTextNode, hack\n        /* jshint ignore:end */\n  \n        if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n            textCount === curTextNode.nodeValue.length) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        container = curTextNode;\n        offset = textCount;\n      }\n  \n      return {\n        cont: container,\n        offset: offset\n      };\n    };\n    \n    /**\n     * return TextRange from boundary point (inspired by google closure-library)\n     * @param {BoundaryPoint} point\n     * @return {TextRange}\n     */\n    var pointToTextRange = function (point) {\n      var textRangeInfo = function (container, offset) {\n        var node, isCollapseToStart;\n  \n        if (dom.isText(container)) {\n          var prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n          var prevContainer = list.last(prevTextNodes).previousSibling;\n          node =  prevContainer || container.parentNode;\n          offset += list.sum(list.tail(prevTextNodes), dom.nodeLength);\n          isCollapseToStart = !prevContainer;\n        } else {\n          node = container.childNodes[offset] || container;\n          if (dom.isText(node)) {\n            return textRangeInfo(node, 0);\n          }\n  \n          offset = 0;\n          isCollapseToStart = false;\n        }\n  \n        return {\n          node: node,\n          collapseToStart: isCollapseToStart,\n          offset: offset\n        };\n      };\n  \n      var textRange = document.body.createTextRange();\n      var info = textRangeInfo(point.node, point.offset);\n  \n      textRange.moveToElementText(info.node);\n      textRange.collapse(info.collapseToStart);\n      textRange.moveStart('character', info.offset);\n      return textRange;\n    };\n    \n    /**\n     * Wrapped Range\n     *\n     * @constructor\n     * @param {Node} sc - start container\n     * @param {Number} so - start offset\n     * @param {Node} ec - end container\n     * @param {Number} eo - end offset\n     */\n    var WrappedRange = function (sc, so, ec, eo) {\n      this.sc = sc;\n      this.so = so;\n      this.ec = ec;\n      this.eo = eo;\n  \n      // nativeRange: get nativeRange from sc, so, ec, eo\n      var nativeRange = function () {\n        if (agent.isW3CRangeSupport) {\n          var w3cRange = document.createRange();\n          w3cRange.setStart(sc, so);\n          w3cRange.setEnd(ec, eo);\n\n          return w3cRange;\n        } else {\n          var textRange = pointToTextRange({\n            node: sc,\n            offset: so\n          });\n\n          textRange.setEndPoint('EndToEnd', pointToTextRange({\n            node: ec,\n            offset: eo\n          }));\n\n          return textRange;\n        }\n      };\n\n      this.getPoints = function () {\n        return {\n          sc: sc,\n          so: so,\n          ec: ec,\n          eo: eo\n        };\n      };\n\n      this.getStartPoint = function () {\n        return {\n          node: sc,\n          offset: so\n        };\n      };\n\n      this.getEndPoint = function () {\n        return {\n          node: ec,\n          offset: eo\n        };\n      };\n\n      /**\n       * select update visible range\n       */\n      this.select = function () {\n        var nativeRng = nativeRange();\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (selection.rangeCount > 0) {\n            selection.removeAllRanges();\n          }\n          selection.addRange(nativeRng);\n        } else {\n          nativeRng.select();\n        }\n        \n        return this;\n      };\n\n      /**\n       * Moves the scrollbar to start container(sc) of current range\n       *\n       * @return {WrappedRange}\n       */\n      this.scrollIntoView = function (container) {\n        var height = $(container).height();\n        if (container.scrollTop + height < this.sc.offsetTop) {\n          container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n        }\n\n        return this;\n      };\n\n      /**\n       * @return {WrappedRange}\n       */\n      this.normalize = function () {\n\n        /**\n         * @param {BoundaryPoint} point\n         * @param {Boolean} isLeftToRight\n         * @return {BoundaryPoint}\n         */\n        var getVisiblePoint = function (point, isLeftToRight) {\n          if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||\n              (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n            return point;\n          }\n\n          // point on block's edge\n          var block = dom.ancestor(point.node, dom.isBlock);\n          if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n              ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\n\n            // returns point already on visible point\n            if (dom.isVisiblePoint(point)) {\n              return point;\n            }\n            // reverse direction \n            isLeftToRight = !isLeftToRight;\n          }\n\n          var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) :\n                                          dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n          return nextPoint || point;\n        };\n\n        var endPoint = getVisiblePoint(this.getEndPoint(), false);\n        var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n\n      /**\n       * returns matched nodes on range\n       *\n       * @param {Function} [pred] - predicate function\n       * @param {Object} [options]\n       * @param {Boolean} [options.includeAncestor]\n       * @param {Boolean} [options.fullyContains]\n       * @return {Node[]}\n       */\n      this.nodes = function (pred, options) {\n        pred = pred || func.ok;\n\n        var includeAncestor = options && options.includeAncestor;\n        var fullyContains = options && options.fullyContains;\n\n        // TODO compare points and sort\n        var startPoint = this.getStartPoint();\n        var endPoint = this.getEndPoint();\n\n        var nodes = [];\n        var leftEdgeNodes = [];\n\n        dom.walkPoint(startPoint, endPoint, function (point) {\n          if (dom.isEditable(point.node)) {\n            return;\n          }\n\n          var node;\n          if (fullyContains) {\n            if (dom.isLeftEdgePoint(point)) {\n              leftEdgeNodes.push(point.node);\n            }\n            if (dom.isRightEdgePoint(point) && list.contains(leftEdgeNodes, point.node)) {\n              node = point.node;\n            }\n          } else if (includeAncestor) {\n            node = dom.ancestor(point.node, pred);\n          } else {\n            node = point.node;\n          }\n\n          if (node && pred(node)) {\n            nodes.push(node);\n          }\n        }, true);\n\n        return list.unique(nodes);\n      };\n\n      /**\n       * returns commonAncestor of range\n       * @return {Element} - commonAncestor\n       */\n      this.commonAncestor = function () {\n        return dom.commonAncestor(sc, ec);\n      };\n\n      /**\n       * returns expanded range by pred\n       *\n       * @param {Function} pred - predicate function\n       * @return {WrappedRange}\n       */\n      this.expand = function (pred) {\n        var startAncestor = dom.ancestor(sc, pred);\n        var endAncestor = dom.ancestor(ec, pred);\n\n        if (!startAncestor && !endAncestor) {\n          return new WrappedRange(sc, so, ec, eo);\n        }\n\n        var boundaryPoints = this.getPoints();\n\n        if (startAncestor) {\n          boundaryPoints.sc = startAncestor;\n          boundaryPoints.so = 0;\n        }\n\n        if (endAncestor) {\n          boundaryPoints.ec = endAncestor;\n          boundaryPoints.eo = dom.nodeLength(endAncestor);\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * @param {Boolean} isCollapseToStart\n       * @return {WrappedRange}\n       */\n      this.collapse = function (isCollapseToStart) {\n        if (isCollapseToStart) {\n          return new WrappedRange(sc, so, sc, so);\n        } else {\n          return new WrappedRange(ec, eo, ec, eo);\n        }\n      };\n\n      /**\n       * splitText on range\n       */\n      this.splitText = function () {\n        var isSameContainer = sc === ec;\n        var boundaryPoints = this.getPoints();\n\n        if (dom.isText(ec) && !dom.isEdgePoint(this.getEndPoint())) {\n          ec.splitText(eo);\n        }\n\n        if (dom.isText(sc) && !dom.isEdgePoint(this.getStartPoint())) {\n          boundaryPoints.sc = sc.splitText(so);\n          boundaryPoints.so = 0;\n\n          if (isSameContainer) {\n            boundaryPoints.ec = boundaryPoints.sc;\n            boundaryPoints.eo = eo - so;\n          }\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * delete contents on range\n       * @return {WrappedRange}\n       */\n      this.deleteContents = function () {\n        if (this.isCollapsed()) {\n          return this;\n        }\n\n        var rng = this.splitText();\n        var nodes = rng.nodes(null, {\n          fullyContains: true\n        });\n\n        // find new cursor point\n        var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {\n          return !list.contains(nodes, point.node);\n        });\n\n        var emptyParents = [];\n        $.each(nodes, function (idx, node) {\n          // find empty parents\n          var parent = node.parentNode;\n          if (point.node !== parent && dom.nodeLength(parent) === 1) {\n            emptyParents.push(parent);\n          }\n          dom.remove(node, false);\n        });\n\n        // remove empty parents\n        $.each(emptyParents, function (idx, node) {\n          dom.remove(node, false);\n        });\n\n        return new WrappedRange(\n          point.node,\n          point.offset,\n          point.node,\n          point.offset\n        ).normalize();\n      };\n      \n      /**\n       * makeIsOn: return isOn(pred) function\n       */\n      var makeIsOn = function (pred) {\n        return function () {\n          var ancestor = dom.ancestor(sc, pred);\n          return !!ancestor && (ancestor === dom.ancestor(ec, pred));\n        };\n      };\n  \n      // isOnEditable: judge whether range is on editable or not\n      this.isOnEditable = makeIsOn(dom.isEditable);\n      // isOnList: judge whether range is on list node or not\n      this.isOnList = makeIsOn(dom.isList);\n      // isOnAnchor: judge whether range is on anchor node or not\n      this.isOnAnchor = makeIsOn(dom.isAnchor);\n      // isOnCell: judge whether range is on cell node or not\n      this.isOnCell = makeIsOn(dom.isCell);\n      // isOnData: judge whether range is on data node or not\n      this.isOnData = makeIsOn(dom.isData);\n\n      /**\n       * @param {Function} pred\n       * @return {Boolean}\n       */\n      this.isLeftEdgeOf = function (pred) {\n        if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n          return false;\n        }\n\n        var node = dom.ancestor(this.sc, pred);\n        return node && dom.isLeftEdgeOf(this.sc, node);\n      };\n\n      /**\n       * returns whether range was collapsed or not\n       */\n      this.isCollapsed = function () {\n        return sc === ec && so === eo;\n      };\n\n      /**\n       * wrap inline nodes which children of body with paragraph\n       *\n       * @return {WrappedRange}\n       */\n      this.wrapBodyInlineWithPara = function () {\n        if (dom.isBodyContainer(sc) && dom.isEmpty(sc)) {\n          sc.innerHTML = dom.emptyPara;\n          return new WrappedRange(sc.firstChild, 0, sc.firstChild, 0);\n        }\n\n        /**\n         * [workaround] firefox often create range on not visible point. so normalize here.\n         *  - firefox: |<p>text</p>|\n         *  - chrome: <p>|text|</p>\n         */\n        var rng = this.normalize();\n        if (dom.isParaInline(sc) || dom.isPara(sc)) {\n          return rng;\n        }\n\n        // find inline top ancestor\n        var topAncestor;\n        if (dom.isInline(rng.sc)) {\n          var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n          topAncestor = list.last(ancestors);\n          if (!dom.isInline(topAncestor)) {\n            topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n          }\n        } else {\n          topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n        }\n\n        // siblings not in paragraph\n        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n        // wrap with paragraph\n        if (inlineSiblings.length) {\n          var para = dom.wrap(list.head(inlineSiblings), 'p');\n          dom.appendChildNodes(para, list.tail(inlineSiblings));\n        }\n\n        return this.normalize();\n      };\n\n      /**\n       * insert node at current cursor\n       *\n       * @param {Node} node\n       * @return {Node}\n       */\n      this.insertNode = function (node) {\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n        var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n        if (info.rightNode) {\n          info.rightNode.parentNode.insertBefore(node, info.rightNode);\n        } else {\n          info.container.appendChild(node);\n        }\n\n        return node;\n      };\n\n      /**\n       * insert html at current cursor\n       */\n      this.pasteHTML = function (markup) {\n        var contentsContainer = $('<div></div>').html(markup)[0];\n        var childNodes = list.from(contentsContainer.childNodes);\n\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n\n        return childNodes.reverse().map(function (childNode) {\n          return rng.insertNode(childNode);\n        }).reverse();\n      };\n  \n      /**\n       * returns text in range\n       *\n       * @return {String}\n       */\n      this.toString = function () {\n        var nativeRng = nativeRange();\n        return agent.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n      };\n\n      /**\n       * returns range for word before cursor\n       *\n       * @param {Boolean} [findAfter] - find after cursor, default: false\n       * @return {WrappedRange}\n       */\n      this.getWordRange = function (findAfter) {\n        var endPoint = this.getEndPoint();\n\n        if (!dom.isCharPoint(endPoint)) {\n          return this;\n        }\n\n        var startPoint = dom.prevPointUntil(endPoint, function (point) {\n          return !dom.isCharPoint(point);\n        });\n\n        if (findAfter) {\n          endPoint = dom.nextPointUntil(endPoint, function (point) {\n            return !dom.isCharPoint(point);\n          });\n        }\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n  \n      /**\n       * create offsetPath bookmark\n       *\n       * @param {Node} editable\n       */\n      this.bookmark = function (editable) {\n        return {\n          s: {\n            path: dom.makeOffsetPath(editable, sc),\n            offset: so\n          },\n          e: {\n            path: dom.makeOffsetPath(editable, ec),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * create offsetPath bookmark base on paragraph\n       *\n       * @param {Node[]} paras\n       */\n      this.paraBookmark = function (paras) {\n        return {\n          s: {\n            path: list.tail(dom.makeOffsetPath(list.head(paras), sc)),\n            offset: so\n          },\n          e: {\n            path: list.tail(dom.makeOffsetPath(list.last(paras), ec)),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * getClientRects\n       * @return {Rect[]}\n       */\n      this.getClientRects = function () {\n        var nativeRng = nativeRange();\n        return nativeRng.getClientRects();\n      };\n    };\n\n  /**\n   * @class core.range\n   *\n   * Data structure\n   *  * BoundaryPoint: a point of dom tree\n   *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n   *\n   * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n   *\n   * @singleton\n   * @alternateClassName range\n   */\n    return {\n      /**\n       * create Range Object From arguments or Browser Selection\n       *\n       * @param {Node} sc - start container\n       * @param {Number} so - start offset\n       * @param {Node} ec - end container\n       * @param {Number} eo - end offset\n       * @return {WrappedRange}\n       */\n      create: function (sc, so, ec, eo) {\n        if (arguments.length === 4) {\n          return new WrappedRange(sc, so, ec, eo);\n        } else if (arguments.length === 2) { //collapsed\n          ec = sc;\n          eo = so;\n          return new WrappedRange(sc, so, ec, eo);\n        } else {\n          var wrappedRange = this.createFromSelection();\n          if (!wrappedRange && arguments.length === 1) {\n            wrappedRange = this.createFromNode(arguments[0]);\n            return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n          }\n          return wrappedRange;\n        }\n      },\n\n      createFromSelection: function () {\n        var sc, so, ec, eo;\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (!selection || selection.rangeCount === 0) {\n            return null;\n          } else if (dom.isBody(selection.anchorNode)) {\n            // Firefox: returns entire body as range on initialization.\n            // We won't never need it.\n            return null;\n          }\n\n          var nativeRng = selection.getRangeAt(0);\n          sc = nativeRng.startContainer;\n          so = nativeRng.startOffset;\n          ec = nativeRng.endContainer;\n          eo = nativeRng.endOffset;\n        } else { // IE8: TextRange\n          var textRange = document.selection.createRange();\n          var textRangeEnd = textRange.duplicate();\n          textRangeEnd.collapse(false);\n          var textRangeStart = textRange;\n          textRangeStart.collapse(true);\n\n          var startPoint = textRangeToPoint(textRangeStart, true),\n          endPoint = textRangeToPoint(textRangeEnd, false);\n\n          // same visible point case: range was collapsed.\n          if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n              dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n              endPoint.node.nextSibling === startPoint.node) {\n            startPoint = endPoint;\n          }\n\n          sc = startPoint.cont;\n          so = startPoint.offset;\n          ec = endPoint.cont;\n          eo = endPoint.offset;\n        }\n\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from node\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNode: function (node) {\n        var sc = node;\n        var so = 0;\n        var ec = node;\n        var eo = dom.nodeLength(ec);\n\n        // browsers can't target a picture or void node\n        if (dom.isVoid(sc)) {\n          so = dom.listPrev(sc).length - 1;\n          sc = sc.parentNode;\n        }\n        if (dom.isBR(ec)) {\n          eo = dom.listPrev(ec).length - 1;\n          ec = ec.parentNode;\n        } else if (dom.isVoid(ec)) {\n          eo = dom.listPrev(ec).length;\n          ec = ec.parentNode;\n        }\n\n        return this.create(sc, so, ec, eo);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeBefore: function (node) {\n        return this.createFromNode(node).collapse(true);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeAfter: function (node) {\n        return this.createFromNode(node).collapse();\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from bookmark\n       *\n       * @param {Node} editable\n       * @param {Object} bookmark\n       * @return {WrappedRange}\n       */\n      createFromBookmark: function (editable, bookmark) {\n        var sc = dom.fromOffsetPath(editable, bookmark.s.path);\n        var so = bookmark.s.offset;\n        var ec = dom.fromOffsetPath(editable, bookmark.e.path);\n        var eo = bookmark.e.offset;\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       *\n       * create WrappedRange from paraBookmark\n       *\n       * @param {Object} bookmark\n       * @param {Node[]} paras\n       * @return {WrappedRange}\n       */\n      createFromParaBookmark: function (bookmark, paras) {\n        var so = bookmark.s.offset;\n        var eo = bookmark.e.offset;\n        var sc = dom.fromOffsetPath(list.head(paras), bookmark.s.path);\n        var ec = dom.fromOffsetPath(list.last(paras), bookmark.e.path);\n\n        return new WrappedRange(sc, so, ec, eo);\n      }\n    };\n  })();\n\n  /**\n   * @class core.async\n   *\n   * Async functions which returns `Promise`\n   *\n   * @singleton\n   * @alternateClassName async\n   */\n  var async = (function () {\n    /**\n     * @method readFileAsDataURL\n     *\n     * read contents of file as representing URL\n     *\n     * @param {File} file\n     * @return {Promise} - then: dataUrl\n     */\n    var readFileAsDataURL = function (file) {\n      return $.Deferred(function (deferred) {\n        $.extend(new FileReader(), {\n          onload: function (e) {\n            var dataURL = e.target.result;\n            deferred.resolve(dataURL);\n          },\n          onerror: function () {\n            deferred.reject(this);\n          }\n        }).readAsDataURL(file);\n      }).promise();\n    };\n  \n    /**\n     * @method createImage\n     *\n     * create `<image>` from url string\n     *\n     * @param {String} url\n     * @return {Promise} - then: $image\n     */\n    var createImage = function (url) {\n      return $.Deferred(function (deferred) {\n        var $img = $('<img>');\n\n        $img.one('load', function () {\n          $img.off('error abort');\n          deferred.resolve($img);\n        }).one('error abort', function () {\n          $img.off('load').detach();\n          deferred.reject($img);\n        }).css({\n          display: 'none'\n        }).appendTo(document.body).attr('src', url);\n      }).promise();\n    };\n\n    return {\n      readFileAsDataURL: readFileAsDataURL,\n      createImage: createImage\n    };\n  })();\n\n  /**\n   * @class editing.History\n   *\n   * Editor History\n   *\n   */\n  var History = function ($editable) {\n    var stack = [], stackOffset = -1;\n    var editable = $editable[0];\n\n    var makeSnapshot = function () {\n      var rng = range.create(editable);\n      var emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};\n\n      return {\n        contents: $editable.html(),\n        bookmark: (rng ? rng.bookmark(editable) : emptyBookmark)\n      };\n    };\n\n    var applySnapshot = function (snapshot) {\n      if (snapshot.contents !== null) {\n        $editable.html(snapshot.contents);\n      }\n      if (snapshot.bookmark !== null) {\n        range.createFromBookmark(editable, snapshot.bookmark).select();\n      }\n    };\n\n    /**\n    * @method rewind\n    * Rewinds the history stack back to the first snapshot taken.\n    * Leaves the stack intact, so that \"Redo\" can still be used.\n    */\n    this.rewind = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      // Return to the first available snapshot.\n      stackOffset = 0;\n\n      // Apply that snapshot.\n      applySnapshot(stack[stackOffset]);\n    };\n\n    /**\n    * @method reset\n    * Resets the history stack completely; reverting to an empty editor.\n    */\n    this.reset = function () {\n      // Clear the stack.\n      stack = [];\n\n      // Restore stackOffset to its original value.\n      stackOffset = -1;\n\n      // Clear the editable area.\n      $editable.html('');\n\n      // Record our first snapshot (of nothing).\n      this.recordUndo();\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      if (0 < stackOffset) {\n        stackOffset--;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      if (stack.length - 1 > stackOffset) {\n        stackOffset++;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * recorded undo\n     */\n    this.recordUndo = function () {\n      stackOffset++;\n\n      // Wash out stack after stackOffset\n      if (stack.length > stackOffset) {\n        stack = stack.slice(0, stackOffset);\n      }\n\n      // Create new snapshot and push it to the end\n      stack.push(makeSnapshot());\n    };\n  };\n\n  /**\n   * @class editing.Style\n   *\n   * Style\n   *\n   */\n  var Style = function () {\n    /**\n     * @method jQueryCSS\n     *\n     * [workaround] for old jQuery\n     * passing an array of style properties to .css()\n     * will result in an object of property-value pairs.\n     * (compability with version < 1.9)\n     *\n     * @private\n     * @param  {jQuery} $obj\n     * @param  {Array} propertyNames - An array of one or more CSS properties.\n     * @return {Object}\n     */\n    var jQueryCSS = function ($obj, propertyNames) {\n      if (agent.jqueryVersion < 1.9) {\n        var result = {};\n        $.each(propertyNames, function (idx, propertyName) {\n          result[propertyName] = $obj.css(propertyName);\n        });\n        return result;\n      }\n      return $obj.css.call($obj, propertyNames);\n    };\n\n    /**\n     * returns style object from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.fromNode = function ($node) {\n      var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n      var styleInfo = jQueryCSS($node, properties) || {};\n      styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\n      return styleInfo;\n    };\n\n    /**\n     * paragraph level style\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} styleInfo\n     */\n    this.stylePara = function (rng, styleInfo) {\n      $.each(rng.nodes(dom.isPara, {\n        includeAncestor: true\n      }), function (idx, para) {\n        $(para).css(styleInfo);\n      });\n    };\n\n    /**\n     * insert and returns styleNodes on range.\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} [options] - options for styleNodes\n     * @param {String} [options.nodeName] - default: `SPAN`\n     * @param {Boolean} [options.expandClosestSibling] - default: `false`\n     * @param {Boolean} [options.onlyPartialContains] - default: `false`\n     * @return {Node[]}\n     */\n    this.styleNodes = function (rng, options) {\n      rng = rng.splitText();\n\n      var nodeName = options && options.nodeName || 'SPAN';\n      var expandClosestSibling = !!(options && options.expandClosestSibling);\n      var onlyPartialContains = !!(options && options.onlyPartialContains);\n\n      if (rng.isCollapsed()) {\n        return [rng.insertNode(dom.create(nodeName))];\n      }\n\n      var pred = dom.makePredByNodeName(nodeName);\n      var nodes = rng.nodes(dom.isText, {\n        fullyContains: true\n      }).map(function (text) {\n        return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n      });\n\n      if (expandClosestSibling) {\n        if (onlyPartialContains) {\n          var nodesInRange = rng.nodes();\n          // compose with partial contains predication\n          pred = func.and(pred, function (node) {\n            return list.contains(nodesInRange, node);\n          });\n        }\n\n        return nodes.map(function (node) {\n          var siblings = dom.withClosestSiblings(node, pred);\n          var head = list.head(siblings);\n          var tails = list.tail(siblings);\n          $.each(tails, function (idx, elem) {\n            dom.appendChildNodes(head, elem.childNodes);\n            dom.remove(elem);\n          });\n          return list.head(siblings);\n        });\n      } else {\n        return nodes;\n      }\n    };\n\n    /**\n     * get current style on cursor\n     *\n     * @param {WrappedRange} rng\n     * @return {Object} - object contains style properties.\n     */\n    this.current = function (rng) {\n      var $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n      var styleInfo = this.fromNode($cont);\n\n      // document.queryCommandState for toggle state\n      // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n      try {\n        styleInfo = $.extend(styleInfo, {\n          'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n          'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n          'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n          'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n          'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n          'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal'\n        });\n      } catch (e) {}\n\n      // list-style-type to list-style(unordered, ordered)\n      if (!rng.isOnList()) {\n        styleInfo['list-style'] = 'none';\n      } else {\n        var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n        var isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;\n        styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n      }\n\n      var para = dom.ancestor(rng.sc, dom.isPara);\n      if (para && para.style['line-height']) {\n        styleInfo['line-height'] = para.style.lineHeight;\n      } else {\n        var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n        styleInfo['line-height'] = lineHeight.toFixed(1);\n      }\n\n      styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n      styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n      styleInfo.range = rng;\n\n      return styleInfo;\n    };\n  };\n\n\n  /**\n   * @class editing.Bullet\n   *\n   * @alternateClassName Bullet\n   */\n  var Bullet = function () {\n    var self = this;\n\n    /**\n     * toggle ordered list\n     */\n    this.insertOrderedList = function (editable) {\n      this.toggleList('OL', editable);\n    };\n\n    /**\n     * toggle unordered list\n     */\n    this.insertUnorderedList = function (editable) {\n      this.toggleList('UL', editable);\n    };\n\n    /**\n     * indent\n     */\n    this.indent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.wrapList(paras, head.parentNode.nodeName);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              return (parseInt(val, 10) || 0) + 25;\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * outdent\n     */\n    this.outdent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.releaseList([paras]);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              val = (parseInt(val, 10) || 0);\n              return val > 25 ? val - 25 : '';\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * toggle list\n     *\n     * @param {String} listName - OL or UL\n     */\n    this.toggleList = function (listName, editable) {\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var bookmark = rng.paraBookmark(paras);\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      // paragraph to list\n      if (list.find(paras, dom.isPurePara)) {\n        var wrappedParas = [];\n        $.each(clustereds, function (idx, paras) {\n          wrappedParas = wrappedParas.concat(self.wrapList(paras, listName));\n        });\n        paras = wrappedParas;\n      // list to paragraph or change list style\n      } else {\n        var diffLists = rng.nodes(dom.isList, {\n          includeAncestor: true\n        }).filter(function (listNode) {\n          return !$.nodeName(listNode, listName);\n        });\n\n        if (diffLists.length) {\n          $.each(diffLists, function (idx, listNode) {\n            dom.replace(listNode, listName);\n          });\n        } else {\n          paras = this.releaseList(clustereds, true);\n        }\n      }\n\n      range.createFromParaBookmark(bookmark, paras).select();\n    };\n\n    /**\n     * @param {Node[]} paras\n     * @param {String} listName\n     * @return {Node[]}\n     */\n    this.wrapList = function (paras, listName) {\n      var head = list.head(paras);\n      var last = list.last(paras);\n\n      var prevList = dom.isList(head.previousSibling) && head.previousSibling;\n      var nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n      var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n      // P to LI\n      paras = paras.map(function (para) {\n        return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n      });\n\n      // append to list(<ul>, <ol>)\n      dom.appendChildNodes(listNode, paras);\n\n      if (nextList) {\n        dom.appendChildNodes(listNode, list.from(nextList.childNodes));\n        dom.remove(nextList);\n      }\n\n      return paras;\n    };\n\n    /**\n     * @method releaseList\n     *\n     * @param {Array[]} clustereds\n     * @param {Boolean} isEscapseToBody\n     * @return {Node[]}\n     */\n    this.releaseList = function (clustereds, isEscapseToBody) {\n      var releasedParas = [];\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        var last = list.last(paras);\n\n        var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) :\n                                         head.parentNode;\n        var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n          node: last.parentNode,\n          offset: dom.position(last) + 1\n        }, {\n          isSkipPaddingBlankHTML: true\n        }) : null;\n\n        var middleList = dom.splitTree(headList, {\n          node: head.parentNode,\n          offset: dom.position(head)\n        }, {\n          isSkipPaddingBlankHTML: true\n        });\n\n        paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) :\n                                  list.from(middleList.childNodes).filter(dom.isLi);\n\n        // LI to P\n        if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n          paras = paras.map(function (para) {\n            return dom.replace(para, 'P');\n          });\n        }\n\n        $.each(list.from(paras).reverse(), function (idx, para) {\n          dom.insertAfter(para, headList);\n        });\n\n        // remove empty lists\n        var rootLists = list.compact([headList, middleList, lastList]);\n        $.each(rootLists, function (idx, rootList) {\n          var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n          $.each(listNodes.reverse(), function (idx, listNode) {\n            if (!dom.nodeLength(listNode)) {\n              dom.remove(listNode, true);\n            }\n          });\n        });\n\n        releasedParas = releasedParas.concat(paras);\n      });\n\n      return releasedParas;\n    };\n  };\n\n\n  /**\n   * @class editing.Typing\n   *\n   * Typing\n   *\n   */\n  var Typing = function () {\n\n    // a Bullet instance to toggle lists off\n    var bullet = new Bullet();\n\n    /**\n     * insert tab\n     *\n     * @param {WrappedRange} rng\n     * @param {Number} tabsize\n     */\n    this.insertTab = function (rng, tabsize) {\n      var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n      rng = rng.deleteContents();\n      rng.insertNode(tab, true);\n\n      rng = range.create(tab, tabsize);\n      rng.select();\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = function (editable) {\n      var rng = range.create(editable);\n\n      // deleteContents on range.\n      rng = rng.deleteContents();\n\n      // Wrap range if it needs to be wrapped by paragraph\n      rng = rng.wrapBodyInlineWithPara();\n\n      // finding paragraph\n      var splitRoot = dom.ancestor(rng.sc, dom.isPara);\n\n      var nextPara;\n      // on paragraph: split paragraph\n      if (splitRoot) {\n        // if it is an empty line with li\n        if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {\n          // toogle UL/OL and escape\n          bullet.toggleList(splitRoot.parentNode.nodeName);\n          return;\n        // if it is an empty line with para on blockquote\n        } else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {\n          // escape blockquote\n          dom.insertAfter(splitRoot, splitRoot.parentNode);\n          nextPara = splitRoot;\n        // if new line has content (not a line break)\n        } else {\n          nextPara = dom.splitTree(splitRoot, rng.getStartPoint());\n\n          var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n          emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n\n          $.each(emptyAnchors, function (idx, anchor) {\n            dom.remove(anchor);\n          });\n\n          // replace empty heading or pre with P tag\n          if ((dom.isHeading(nextPara) || dom.isPre(nextPara)) && dom.isEmpty(nextPara)) {\n            nextPara = dom.replace(nextPara, 'p');\n          }\n        }\n      // no paragraph: insert empty paragraph\n      } else {\n        var next = rng.sc.childNodes[rng.so];\n        nextPara = $(dom.emptyPara)[0];\n        if (next) {\n          rng.sc.insertBefore(nextPara, next);\n        } else {\n          rng.sc.appendChild(nextPara);\n        }\n      }\n\n      range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n    };\n  };\n\n  /**\n   * @class editing.Table\n   *\n   * Table\n   *\n   */\n  var Table = function () {\n    /**\n     * handle tab key\n     *\n     * @param {WrappedRange} rng\n     * @param {Boolean} isShift\n     */\n    this.tab = function (rng, isShift) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var table = dom.ancestor(cell, dom.isTable);\n      var cells = dom.listDescendant(table, dom.isCell);\n\n      var nextCell = list[isShift ? 'prev' : 'next'](cells, cell);\n      if (nextCell) {\n        range.create(nextCell, 0).select();\n      }\n    };\n\n    /**\n     * create empty table element\n     *\n     * @param {Number} rowCount\n     * @param {Number} colCount\n     * @return {Node}\n     */\n    this.createTable = function (colCount, rowCount, options) {\n      var tds = [], tdHTML;\n      for (var idxCol = 0; idxCol < colCount; idxCol++) {\n        tds.push('<td>' + dom.blank + '</td>');\n      }\n      tdHTML = tds.join('');\n\n      var trs = [], trHTML;\n      for (var idxRow = 0; idxRow < rowCount; idxRow++) {\n        trs.push('<tr>' + tdHTML + '</tr>');\n      }\n      trHTML = trs.join('');\n      var $table = $('<table>' + trHTML + '</table>');\n      if (options && options.tableClassName) {\n        $table.addClass(options.tableClassName);\n      }\n\n      return $table[0];\n    };\n  };\n\n\n  var KEY_BOGUS = 'bogus';\n\n  /**\n   * @class Editor\n   */\n  var Editor = function (context) {\n    var self = this;\n\n    var $note = context.layoutInfo.note;\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var editable = $editable[0];\n    var lastRange = null;\n\n    var style = new Style();\n    var table = new Table();\n    var typing = new Typing();\n    var bullet = new Bullet();\n    var history = new History($editable);\n\n    this.initialize = function () {\n      // bind custom events\n      $editable.on('keydown', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          context.triggerEvent('enter', event);\n        }\n        context.triggerEvent('keydown', event);\n\n        if (!event.isDefaultPrevented()) {\n          if (options.shortcuts) {\n            self.handleKeyMap(event);\n          } else {\n            self.preventDefaultEditableShortCuts(event);\n          }\n        }\n      }).on('keyup', function (event) {\n        context.triggerEvent('keyup', event);\n      }).on('focus', function (event) {\n        context.triggerEvent('focus', event);\n      }).on('blur', function (event) {\n        context.triggerEvent('blur', event);\n      }).on('mousedown', function (event) {\n        context.triggerEvent('mousedown', event);\n      }).on('mouseup', function (event) {\n        context.triggerEvent('mouseup', event);\n      }).on('scroll', function (event) {\n        context.triggerEvent('scroll', event);\n      }).on('paste', function (event) {\n        context.triggerEvent('paste', event);\n      });\n\n      // init content before set event\n      $editable.html(dom.html($note) || dom.emptyPara);\n\n      // [workaround] IE doesn't have input events for contentEditable\n      // - see: https://goo.gl/4bfIvA\n      var changeEventName = agent.isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n      $editable.on(changeEventName, func.debounce(function () {\n        context.triggerEvent('change', $editable.html());\n      }, 250));\n\n      $editor.on('focusin', function (event) {\n        context.triggerEvent('focusin', event);\n      }).on('focusout', function (event) {\n        context.triggerEvent('focusout', event);\n      });\n\n      if (!options.airMode) {\n        if (options.width) {\n          $editor.outerWidth(options.width);\n        }\n        if (options.height) {\n          $editable.outerHeight(options.height);\n        }\n        if (options.maxHeight) {\n          $editable.css('max-height', options.maxHeight);\n        }\n        if (options.minHeight) {\n          $editable.css('min-height', options.minHeight);\n        }\n      }\n\n      history.recordUndo();\n    };\n\n    this.destroy = function () {\n      $editable.off();\n    };\n\n    this.handleKeyMap = function (event) {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      var keys = [];\n\n      if (event.metaKey) { keys.push('CMD'); }\n      if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); }\n      if (event.shiftKey) { keys.push('SHIFT'); }\n\n      var keyName = key.nameFromCode[event.keyCode];\n      if (keyName) {\n        keys.push(keyName);\n      }\n\n      var eventName = keyMap[keys.join('+')];\n      if (eventName) {\n        event.preventDefault();\n        context.invoke(eventName);\n      } else if (key.isEdit(event.keyCode)) {\n        this.afterCommand();\n      }\n    };\n\n    this.preventDefaultEditableShortCuts = function (event) {\n      // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n      if ((event.ctrlKey || event.metaKey) &&\n        list.contains([66, 73, 85], event.keyCode)) {\n        event.preventDefault();\n      }\n    };\n\n    /**\n     * create range\n     * @return {WrappedRange}\n     */\n    this.createRange = function () {\n      this.focus();\n      return range.create(editable);\n    };\n\n    /**\n     * saveRange\n     *\n     * save current range\n     *\n     * @param {Boolean} [thenCollapse=false]\n     */\n    this.saveRange = function (thenCollapse) {\n      lastRange = this.createRange();\n      if (thenCollapse) {\n        lastRange.collapse().select();\n      }\n    };\n\n    /**\n     * restoreRange\n     *\n     * restore lately range\n     */\n    this.restoreRange = function () {\n      if (lastRange) {\n        lastRange.select();\n        this.focus();\n      }\n    };\n\n    this.saveTarget = function (node) {\n      $editable.data('target', node);\n    };\n\n    this.clearTarget = function () {\n      $editable.removeData('target');\n    };\n\n    this.restoreTarget = function () {\n      return $editable.data('target');\n    };\n\n    /**\n     * currentStyle\n     *\n     * current style\n     * @return {Object|Boolean} unfocus\n     */\n    this.currentStyle = function () {\n      var rng = range.create();\n      if (rng) {\n        rng = rng.normalize();\n      }\n      return rng ? style.current(rng) : style.fromNode($editable);\n    };\n\n    /**\n     * style from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.styleFromNode = function ($node) {\n      return style.fromNode($node);\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.undo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.undo', lang.help.undo);\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.redo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.redo', lang.help.redo);\n\n    /**\n     * before command\n     */\n    var beforeCommand = this.beforeCommand = function () {\n      context.triggerEvent('before.command', $editable.html());\n      // keep focus on editable before command execution\n      self.focus();\n    };\n\n    /**\n     * after command\n     * @param {Boolean} isPreventTrigger\n     */\n    var afterCommand = this.afterCommand = function (isPreventTrigger) {\n      history.recordUndo();\n      if (!isPreventTrigger) {\n        context.triggerEvent('change', $editable.html());\n      }\n    };\n\n    /* jshint ignore:start */\n    // native commands(with execCommand), generate function for execCommand\n    var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',\n                    'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',\n                    'formatBlock', 'removeFormat',\n                    'backColor', 'foreColor', 'fontName'];\n\n    for (var idx = 0, len = commands.length; idx < len; idx ++) {\n      this[commands[idx]] = (function (sCmd) {\n        return function (value) {\n          beforeCommand();\n          document.execCommand(sCmd, false, value);\n          afterCommand(true);\n        };\n      })(commands[idx]);\n      context.memo('help.' + commands[idx], lang.help[commands[idx]]);\n    }\n    /* jshint ignore:end */\n\n    /**\n     * handle tab key\n     */\n    this.tab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng);\n      } else {\n        beforeCommand();\n        typing.insertTab(rng, options.tabSize);\n        afterCommand();\n      }\n    };\n    context.memo('help.tab', lang.help.tab);\n\n    /**\n     * handle shift+tab key\n     */\n    this.untab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng, true);\n      }\n    };\n    context.memo('help.untab', lang.help.untab);\n\n    /**\n     * run given function between beforeCommand and afterCommand\n     */\n    this.wrapCommand = function (fn) {\n      return function () {\n        beforeCommand();\n        fn.apply(self, arguments);\n        afterCommand();\n      };\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = this.wrapCommand(function () {\n      typing.insertParagraph(editable);\n    });\n    context.memo('help.insertParagraph', lang.help.insertParagraph);\n\n    this.insertOrderedList = this.wrapCommand(function () {\n      bullet.insertOrderedList(editable);\n    });\n    context.memo('help.insertOrderedList', lang.help.insertOrderedList);\n\n    this.insertUnorderedList = this.wrapCommand(function () {\n      bullet.insertUnorderedList(editable);\n    });\n    context.memo('help.insertUnorderedList', lang.help.insertUnorderedList);\n\n    this.indent = this.wrapCommand(function () {\n      bullet.indent(editable);\n    });\n    context.memo('help.indent', lang.help.indent);\n\n    this.outdent = this.wrapCommand(function () {\n      bullet.outdent(editable);\n    });\n    context.memo('help.outdent', lang.help.outdent);\n\n    /**\n     * insert image\n     *\n     * @param {String} src\n     * @param {String|Function} param\n     * @return {Promise}\n     */\n    this.insertImage = function (src, param) {\n      return async.createImage(src, param).then(function ($image) {\n        beforeCommand();\n\n        if (typeof param === 'function') {\n          param($image);\n        } else {\n          if (typeof param === 'string') {\n            $image.attr('data-filename', param);\n          }\n          $image.css('width', Math.min($editable.width(), $image.width()));\n        }\n\n        $image.show();\n        range.create(editable).insertNode($image[0]);\n        range.createFromNodeAfter($image[0]).select();\n        afterCommand();\n      }).fail(function (e) {\n        context.triggerEvent('image.upload.error', e);\n      });\n    };\n\n    /**\n     * insertImages\n     * @param {File[]} files\n     */\n    this.insertImages = function (files) {\n      $.each(files, function (idx, file) {\n        var filename = file.name;\n        if (options.maximumImageFileSize && options.maximumImageFileSize < file.size) {\n          context.triggerEvent('image.upload.error', lang.image.maximumFileSizeError);\n        } else {\n          async.readFileAsDataURL(file).then(function (dataURL) {\n            return self.insertImage(dataURL, filename);\n          }).fail(function () {\n            context.triggerEvent('image.upload.error');\n          });\n        }\n      });\n    };\n\n    /**\n     * insertImagesOrCallback\n     * @param {File[]} files\n     */\n    this.insertImagesOrCallback = function (files) {\n      var callbacks = options.callbacks;\n\n      // If onImageUpload options setted\n      if (callbacks.onImageUpload) {\n        context.triggerEvent('image.upload', files);\n      // else insert Image as dataURL\n      } else {\n        this.insertImages(files);\n      }\n    };\n\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n    this.insertNode = this.wrapCommand(function (node) {\n      var rng = this.createRange();\n      rng.insertNode(node);\n      range.createFromNodeAfter(node).select();\n    });\n\n    /**\n     * insert text\n     * @param {String} text\n     */\n    this.insertText = this.wrapCommand(function (text) {\n      var rng = this.createRange();\n      var textNode = rng.insertNode(dom.createText(text));\n      range.create(textNode, dom.nodeLength(textNode)).select();\n    });\n\n    /**\n     * return selected plain text\n     * @return {String} text\n     */\n    this.getSelectedText = function () {\n      var rng = this.createRange();\n\n      // if range on anchor, expand range with anchor\n      if (rng.isOnAnchor()) {\n        rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n      }\n\n      return rng.toString();\n    };\n\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n    this.pasteHTML = this.wrapCommand(function (markup) {\n      var contents = this.createRange().pasteHTML(markup);\n      range.createFromNodeAfter(list.last(contents)).select();\n    });\n\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n    this.formatBlock = this.wrapCommand(function (tagName) {\n      // [workaround] for MSIE, IE need `<`\n      tagName = agent.isMSIE ? '<' + tagName + '>' : tagName;\n      document.execCommand('FormatBlock', false, tagName);\n    });\n\n    this.formatPara = function () {\n      this.formatBlock('P');\n    };\n    context.memo('help.formatPara', lang.help.formatPara);\n\n    /* jshint ignore:start */\n    for (var idx = 1; idx <= 6; idx ++) {\n      this['formatH' + idx] = function (idx) {\n        return function () {\n          this.formatBlock('H' + idx);\n        };\n      }(idx);\n      context.memo('help.formatH'+idx, lang.help['formatH' + idx]);\n    };\n    /* jshint ignore:end */\n\n    /**\n     * fontSize\n     *\n     * @param {String} value - px\n     */\n    this.fontSize = function (value) {\n      var rng = this.createRange();\n\n      if (rng && rng.isCollapsed()) {\n        var spans = style.styleNodes(rng);\n        var firstSpan = list.head(spans);\n\n        $(spans).css({\n          'font-size': value + 'px'\n        });\n\n        // [workaround] added styled bogus span for style\n        //  - also bogus character needed for cursor position\n        if (firstSpan && !dom.nodeLength(firstSpan)) {\n          firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n          range.createFromNodeAfter(firstSpan.firstChild).select();\n          $editable.data(KEY_BOGUS, firstSpan);\n        }\n      } else {\n        beforeCommand();\n        $(style.styleNodes(rng)).css({\n          'font-size': value + 'px'\n        });\n        afterCommand();\n      }\n    };\n\n    /**\n     * insert horizontal rule\n     */\n    this.insertHorizontalRule = this.wrapCommand(function () {\n      var hrNode = this.createRange().insertNode(dom.create('HR'));\n      if (hrNode.nextSibling) {\n        range.create(hrNode.nextSibling, 0).normalize().select();\n      }\n    });\n    context.memo('help.insertHorizontalRule', lang.help.insertHorizontalRule);\n\n    /**\n     * remove bogus node and character\n     */\n    this.removeBogus = function () {\n      var bogusNode = $editable.data(KEY_BOGUS);\n      if (!bogusNode) {\n        return;\n      }\n\n      var textNode = list.find(list.from(bogusNode.childNodes), dom.isText);\n\n      var bogusCharIdx = textNode.nodeValue.indexOf(dom.ZERO_WIDTH_NBSP_CHAR);\n      if (bogusCharIdx !== -1) {\n        textNode.deleteData(bogusCharIdx, 1);\n      }\n\n      if (dom.isEmpty(bogusNode)) {\n        dom.remove(bogusNode);\n      }\n\n      $editable.removeData(KEY_BOGUS);\n    };\n\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n    this.lineHeight = this.wrapCommand(function (value) {\n      style.stylePara(this.createRange(), {\n        lineHeight: value\n      });\n    });\n\n    /**\n     * unlink\n     *\n     * @type command\n     */\n    this.unlink = function () {\n      var rng = this.createRange();\n      if (rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        rng = range.createFromNode(anchor);\n        rng.select();\n\n        beforeCommand();\n        document.execCommand('unlink');\n        afterCommand();\n      }\n    };\n\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n    this.createLink = this.wrapCommand(function (linkInfo) {\n      var linkUrl = linkInfo.url;\n      var linkText = linkInfo.text;\n      var isNewWindow = linkInfo.isNewWindow;\n      var rng = linkInfo.range || this.createRange();\n      var isTextChanged = rng.toString() !== linkText;\n\n      // handle spaced urls from input\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (options.onCreateLink) {\n        linkUrl = options.onCreateLink(linkUrl);\n      }\n\n      var anchors = [];\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        var anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      $.each(anchors, function (idx, anchor) {\n        // if url doesn't match an URL schema, set http:// as default\n        linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?/.test(linkUrl) ?\n          linkUrl : 'http://' + linkUrl;\n\n        $(anchor).attr('href', linkUrl);\n        if (isNewWindow) {\n          $(anchor).attr('target', '_blank');\n        } else {\n          $(anchor).removeAttr('target');\n        }\n      });\n\n      var startRange = range.createFromNodeBefore(list.head(anchors));\n      var startPoint = startRange.getStartPoint();\n      var endRange = range.createFromNodeAfter(list.last(anchors));\n      var endPoint = endRange.getEndPoint();\n\n      range.create(\n        startPoint.node,\n        startPoint.offset,\n        endPoint.node,\n        endPoint.offset\n      ).select();\n    });\n\n    /**\n     * returns link info\n     *\n     * @return {Object}\n     * @return {WrappedRange} return.range\n     * @return {String} return.text\n     * @return {Boolean} [return.isNewWindow=true]\n     * @return {String} [return.url=\"\"]\n     */\n    this.getLinkInfo = function () {\n      var rng = this.createRange().expand(dom.isAnchor);\n\n      // Get the first anchor on range(for edit).\n      var $anchor = $(list.head(rng.nodes(dom.isAnchor)));\n\n      return {\n        range: rng,\n        text: rng.toString(),\n        isNewWindow: $anchor.length ? $anchor.attr('target') === '_blank' : false,\n        url: $anchor.length ? $anchor.attr('href') : ''\n      };\n    };\n\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n    this.color = this.wrapCommand(function (colorInfo) {\n      var foreColor = colorInfo.foreColor;\n      var backColor = colorInfo.backColor;\n\n      if (foreColor) { document.execCommand('foreColor', false, foreColor); }\n      if (backColor) { document.execCommand('backColor', false, backColor); }\n    });\n\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n    this.insertTable = this.wrapCommand(function (dim) {\n      var dimension = dim.split('x');\n\n      var rng = this.createRange().deleteContents();\n      rng.insertNode(table.createTable(dimension[0], dimension[1], options));\n    });\n\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n    this.floatMe = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css('float', value);\n    });\n\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n    this.resize = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css({\n        width: value * 100 + '%',\n        height: ''\n      });\n    });\n\n    /**\n     * @param {Position} pos\n     * @param {jQuery} $target - target element\n     * @param {Boolean} [bKeepRatio] - keep ratio\n     */\n    this.resizeTo = function (pos, $target, bKeepRatio) {\n      var imageSize;\n      if (bKeepRatio) {\n        var newRatio = pos.y / pos.x;\n        var ratio = $target.data('ratio');\n        imageSize = {\n          width: ratio > newRatio ? pos.x : pos.y / ratio,\n          height: ratio > newRatio ? pos.x * ratio : pos.y\n        };\n      } else {\n        imageSize = {\n          width: pos.x,\n          height: pos.y\n        };\n      }\n\n      $target.css(imageSize);\n    };\n\n    /**\n     * remove media object\n     */\n    this.removeMedia = this.wrapCommand(function () {\n      var $target = $(this.restoreTarget()).detach();\n      context.triggerEvent('media.delete', $target, $editable);\n    });\n\n    /**\n     * returns whether editable area has focus or not.\n     */\n    this.hasFocus = function () {\n      return $editable.is(':focus');\n    };\n\n    /**\n     * set focus\n     */\n    this.focus = function () {\n      // [workaround] Screen will move when page is scolled in IE.\n      //  - do focus when not focused\n      if (!this.hasFocus()) {\n        $editable.focus();\n      }\n    };\n\n    /**\n     * returns whether contents is empty or not.\n     * @return {Boolean}\n     */\n    this.isEmpty = function () {\n      return dom.isEmpty($editable[0]) || dom.emptyPara === $editable.html();\n    };\n\n    /**\n     * Removes all contents and restores the editable instance to an _emptyPara_.\n     */\n    this.empty = function () {\n      context.invoke('code', dom.emptyPara);\n    };\n  };\n\n  var Clipboard = function (context) {\n    var self = this;\n\n    var $editable = context.layoutInfo.editable;\n\n    this.events = {\n      'summernote.keydown': function (we, e) {\n        if (self.needKeydownHook()) {\n          if ((e.ctrlKey || e.metaKey) && e.keyCode === key.code.V) {\n            context.invoke('editor.saveRange');\n            self.$paste.focus();\n\n            setTimeout(function () {\n              self.pasteByHook();\n            }, 0);\n          }\n        }\n      }\n    };\n\n    this.needKeydownHook = function () {\n      return (agent.isMSIE && agent.browserVersion > 10) || agent.isFF;\n    };\n\n    this.initialize = function () {\n      // [workaround] getting image from clipboard\n      //  - IE11 and Firefox: CTRL+v hook\n      //  - Webkit: event.clipboardData\n      if (this.needKeydownHook()) {\n        this.$paste = $('<div tabindex=\"-1\" />').attr('contenteditable', true).css({\n          position: 'absolute',\n          left: -100000,\n          opacity: 0\n        });\n        $editable.before(this.$paste);\n\n        this.$paste.on('paste', function (event) {\n          context.triggerEvent('paste', event);\n        });\n      } else {\n        $editable.on('paste', this.pasteByEvent);\n      }\n    };\n\n    this.destroy = function () {\n      if (this.needKeydownHook()) {\n        this.$paste.remove();\n        this.$paste = null;\n      }\n    };\n\n    this.pasteByHook = function () {\n      var node = this.$paste[0].firstChild;\n\n      if (dom.isImg(node)) {\n        var dataURI = node.src;\n        var decodedData = atob(dataURI.split(',')[1]);\n        var array = new Uint8Array(decodedData.length);\n        for (var i = 0; i < decodedData.length; i++) {\n          array[i] = decodedData.charCodeAt(i);\n        }\n\n        var blob = new Blob([array], { type: 'image/png' });\n        blob.name = 'clipboard.png';\n\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n        context.invoke('editor.insertImagesOrCallback', [blob]);\n      } else {\n        var pasteContent = $('<div />').html(this.$paste.html()).html();\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n\n        if (pasteContent) {\n          context.invoke('editor.pasteHTML', pasteContent);\n        }\n      }\n\n      this.$paste.empty();\n    };\n\n    /**\n     * paste by clipboard event\n     *\n     * @param {Event} event\n     */\n    this.pasteByEvent = function (event) {\n      var clipboardData = event.originalEvent.clipboardData;\n      if (clipboardData && clipboardData.items && clipboardData.items.length) {\n        var item = list.head(clipboardData.items);\n        if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n          context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n        }\n        context.invoke('editor.afterCommand');\n      }\n    };\n  };\n\n  var Dropzone = function (context) {\n    var $document = $(document);\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n    var documentEventHandlers = {};\n\n    var $dropzone = $([\n      '<div class=\"note-dropzone\">',\n      '  <div class=\"note-dropzone-message\"/>',\n      '</div>'\n    ].join('')).prependTo($editor);\n\n    var detachDocumentEvent = function () {\n      Object.keys(documentEventHandlers).forEach(function (key) {\n        $document.off(key.substr(2).toLowerCase(), documentEventHandlers[key]);\n      });\n      documentEventHandlers = {};\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.initialize = function () {\n      if (options.disableDragAndDrop) {\n        // prevent default drop event\n        documentEventHandlers.onDrop = function (e) {\n          e.preventDefault();\n        };\n        $document.on('drop', documentEventHandlers.onDrop);\n      } else {\n        this.attachDragAndDropEvent();\n      }\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.attachDragAndDropEvent = function () {\n      var collection = $(),\n          $dropzoneMessage = $dropzone.find('.note-dropzone-message');\n\n      documentEventHandlers.onDragenter = function (e) {\n        var isCodeview = context.invoke('codeview.isActivated');\n        var hasEditorSize = $editor.width() > 0 && $editor.height() > 0;\n        if (!isCodeview && !collection.length && hasEditorSize) {\n          $editor.addClass('dragover');\n          $dropzone.width($editor.width());\n          $dropzone.height($editor.height());\n          $dropzoneMessage.text(lang.image.dragImageHere);\n        }\n        collection = collection.add(e.target);\n      };\n\n      documentEventHandlers.onDragleave = function (e) {\n        collection = collection.not(e.target);\n        if (!collection.length) {\n          $editor.removeClass('dragover');\n        }\n      };\n\n      documentEventHandlers.onDrop = function () {\n        collection = $();\n        $editor.removeClass('dragover');\n      };\n\n      // show dropzone on dragenter when dragging a object to document\n      // -but only if the editor is visible, i.e. has a positive width and height\n      $document.on('dragenter', documentEventHandlers.onDragenter)\n        .on('dragleave', documentEventHandlers.onDragleave)\n        .on('drop', documentEventHandlers.onDrop);\n\n      // change dropzone's message on hover.\n      $dropzone.on('dragenter', function () {\n        $dropzone.addClass('hover');\n        $dropzoneMessage.text(lang.image.dropImage);\n      }).on('dragleave', function () {\n        $dropzone.removeClass('hover');\n        $dropzoneMessage.text(lang.image.dragImageHere);\n      });\n\n      // attach dropImage\n      $dropzone.on('drop', function (event) {\n        var dataTransfer = event.originalEvent.dataTransfer;\n\n        if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n          event.preventDefault();\n          $editable.focus();\n          context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n        } else {\n          $.each(dataTransfer.types, function (idx, type) {\n            var content = dataTransfer.getData(type);\n\n            if (type.toLowerCase().indexOf('text') > -1) {\n              context.invoke('editor.pasteHTML', content);\n            } else {\n              $(content).each(function () {\n                context.invoke('editor.insertNode', this);\n              });\n            }\n          });\n        }\n      }).on('dragover', false); // prevent default dragover event\n    };\n\n    this.destroy = function () {\n      detachDocumentEvent();\n    };\n  };\n\n\n  var CodeMirror;\n  if (agent.hasCodeMirror) {\n    if (agent.isSupportAmd) {\n      require(['codemirror'], function (cm) {\n        CodeMirror = cm;\n      });\n    } else {\n      CodeMirror = window.CodeMirror;\n    }\n  }\n\n  /**\n   * @class Codeview\n   */\n  var Codeview = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n    var options = context.options;\n\n    this.sync = function () {\n      var isCodeview = this.isActivated();\n      if (isCodeview && agent.hasCodeMirror) {\n        $codable.data('cmEditor').save();\n      }\n    };\n\n    /**\n     * @return {Boolean}\n     */\n    this.isActivated = function () {\n      return $editor.hasClass('codeview');\n    };\n\n    /**\n     * toggle codeview\n     */\n    this.toggle = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n      context.triggerEvent('codeview.toggled');\n    };\n\n    /**\n     * activate code view\n     */\n    this.activate = function () {\n      $codable.val(dom.html($editable, options.prettifyHtml));\n      $codable.height($editable.height());\n\n      context.invoke('toolbar.updateCodeview', true);\n      $editor.addClass('codeview');\n      $codable.focus();\n\n      // activate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = CodeMirror.fromTextArea($codable[0], options.codemirror);\n\n        // CodeMirror TernServer\n        if (options.codemirror.tern) {\n          var server = new CodeMirror.TernServer(options.codemirror.tern);\n          cmEditor.ternServer = server;\n          cmEditor.on('cursorActivity', function (cm) {\n            server.updateArgHints(cm);\n          });\n        }\n\n        // CodeMirror hasn't Padding.\n        cmEditor.setSize(null, $editable.outerHeight());\n        $codable.data('cmEditor', cmEditor);\n      }\n    };\n\n    /**\n     * deactivate code view\n     */\n    this.deactivate = function () {\n      // deactivate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = $codable.data('cmEditor');\n        $codable.val(cmEditor.getValue());\n        cmEditor.toTextArea();\n      }\n\n      var value = dom.value($codable, options.prettifyHtml) || dom.emptyPara;\n      var isChange = $editable.html() !== value;\n\n      $editable.html(value);\n      $editable.height(options.height ? $codable.height() : 'auto');\n      $editor.removeClass('codeview');\n\n      if (isChange) {\n        context.triggerEvent('change', $editable.html(), $editable);\n      }\n\n      $editable.focus();\n\n      context.invoke('toolbar.updateCodeview', false);\n    };\n\n    this.destroy = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      }\n    };\n  };\n\n  var EDITABLE_PADDING = 24;\n\n  var Statusbar = function (context) {\n    var $document = $(document);\n    var $statusbar = context.layoutInfo.statusbar;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n\n    this.initialize = function () {\n      if (options.airMode || options.disableResizeEditor) {\n        return;\n      }\n\n      $statusbar.on('mousedown', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        var editableTop = $editable.offset().top - $document.scrollTop();\n\n        $document.on('mousemove', function (event) {\n          var height = event.clientY - (editableTop + EDITABLE_PADDING);\n\n          height = (options.minheight > 0) ? Math.max(height, options.minheight) : height;\n          height = (options.maxHeight > 0) ? Math.min(height, options.maxHeight) : height;\n\n          $editable.height(height);\n        }).one('mouseup', function () {\n          $document.off('mousemove');\n        });\n      });\n    };\n\n    this.destroy = function () {\n      $statusbar.off();\n      $statusbar.remove();\n    };\n  };\n\n  var Fullscreen = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $toolbar = context.layoutInfo.toolbar;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n\n    var $window = $(window);\n    var $scrollbar = $('html, body');\n\n    /**\n     * toggle fullscreen\n     */\n    this.toggle = function () {\n      var resize = function (size) {\n        $editable.css('height', size.h);\n        $codable.css('height', size.h);\n        if ($codable.data('cmeditor')) {\n          $codable.data('cmeditor').setsize(null, size.h);\n        }\n      };\n\n      $editor.toggleClass('fullscreen');\n      if (this.isFullscreen()) {\n        $editable.data('orgHeight', $editable.css('height'));\n\n        $window.on('resize', function () {\n          resize({\n            h: $window.height() - $toolbar.outerHeight()\n          });\n        }).trigger('resize');\n\n        $scrollbar.css('overflow', 'hidden');\n      } else {\n        $window.off('resize');\n        resize({\n          h: $editable.data('orgHeight')\n        });\n        $scrollbar.css('overflow', 'visible');\n      }\n\n      context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n    };\n\n    this.isFullscreen = function () {\n      return $editor.hasClass('fullscreen');\n    };\n  };\n\n  var Handle = function (context) {\n    var self = this;\n\n    var $document = $(document);\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.mousedown': function (we, e) {\n        if (self.update(e.target)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function () {\n        self.update();\n      }\n    };\n\n    this.initialize = function () {\n      this.$handle = $([\n        '<div class=\"note-handle\">',\n        '<div class=\"note-control-selection\">',\n        '<div class=\"note-control-selection-bg\"></div>',\n        '<div class=\"note-control-holder note-control-nw\"></div>',\n        '<div class=\"note-control-holder note-control-ne\"></div>',\n        '<div class=\"note-control-holder note-control-sw\"></div>',\n        '<div class=\"',\n        (options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),\n        ' note-control-se\"></div>',\n        (options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>'),\n        '</div>',\n        '</div>'\n      ].join('')).prependTo($editingArea);\n\n      this.$handle.on('mousedown', function (event) {\n        if (dom.isControlSizing(event.target)) {\n          event.preventDefault();\n          event.stopPropagation();\n\n          var $target = self.$handle.find('.note-control-selection').data('target'),\n              posStart = $target.offset(),\n              scrollTop = $document.scrollTop();\n\n          $document.on('mousemove', function (event) {\n            context.invoke('editor.resizeTo', {\n              x: event.clientX - posStart.left,\n              y: event.clientY - (posStart.top - scrollTop)\n            }, $target, !event.shiftKey);\n\n            self.update($target[0]);\n          }).one('mouseup', function (e) {\n            e.preventDefault();\n            $document.off('mousemove');\n            context.invoke('editor.afterCommand');\n          });\n\n          if (!$target.data('ratio')) { // original ratio.\n            $target.data('ratio', $target.height() / $target.width());\n          }\n        }\n      });\n    };\n\n    this.destroy = function () {\n      this.$handle.remove();\n    };\n\n    this.update = function (target) {\n      var isImage = dom.isImg(target);\n      var $selection = this.$handle.find('.note-control-selection');\n\n      context.invoke('imagePopover.update', target);\n\n      if (isImage) {\n        var $image = $(target);\n        var pos = $image.position();\n\n        // include margin\n        var imageSize = {\n          w: $image.outerWidth(true),\n          h: $image.outerHeight(true)\n        };\n\n        $selection.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top,\n          width: imageSize.w,\n          height: imageSize.h\n        }).data('target', $image); // save current image element.\n\n        var sizingText = imageSize.w + 'x' + imageSize.h;\n        $selection.find('.note-control-selection-info').text(sizingText);\n        context.invoke('editor.saveTarget', target);\n      } else {\n        this.hide();\n      }\n\n      return isImage;\n    };\n\n    /**\n     * hide\n     *\n     * @param {jQuery} $handle\n     */\n    this.hide = function () {\n      context.invoke('editor.clearTarget');\n      this.$handle.children().hide();\n    };\n  };\n\n  var AutoLink = function (context) {\n    var self = this;\n    var defaultScheme = 'http://';\n    var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      }\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n    };\n\n    this.destroy = function () {\n      this.lastWordRange = null;\n    };\n\n    this.replace = function () {\n      if (!this.lastWordRange) {\n        return;\n      }\n\n      var keyword = this.lastWordRange.toString();\n      var match = keyword.match(linkPattern);\n\n      if (match && (match[1] || match[2])) {\n        var link = match[1] ? keyword : defaultScheme + keyword;\n        var node = $('<a />').html(keyword).attr('href', link)[0];\n\n        this.lastWordRange.insertNode(node);\n        this.lastWordRange = null;\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.handleKeydown = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        this.lastWordRange = wordRange;\n      }\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        this.replace();\n      }\n    };\n  };\n\n  /**\n   * textarea auto sync.\n   */\n  var AutoSync = function (context) {\n    var $note = context.layoutInfo.note;\n\n    this.events = {\n      'summernote.change': function () {\n        $note.val(context.invoke('code'));\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return dom.isTextarea($note[0]);\n    };\n  };\n\n  var Placeholder = function (context) {\n    var self = this;\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.init summernote.change': function () {\n        self.update();\n      },\n      'summernote.codeview.toggled': function () {\n        self.update();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !!options.placeholder;\n    };\n\n    this.initialize = function () {\n      this.$placeholder = $('<div class=\"note-placeholder\">');\n      this.$placeholder.on('click', function () {\n        context.invoke('focus');\n      }).text(options.placeholder).prependTo($editingArea);\n    };\n\n    this.destroy = function () {\n      this.$placeholder.remove();\n    };\n\n    this.update = function () {\n      var isShow = !context.invoke('codeview.isActivated') && context.invoke('editor.isEmpty');\n      this.$placeholder.toggle(isShow);\n    };\n  };\n\n  var Buttons = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var invertedKeyMap = func.invertObject(options.keyMap[agent.isMac ? 'mac' : 'pc']);\n\n    var representShortcut = this.representShortcut = function (editorMethod) {\n      var shortcut = invertedKeyMap[editorMethod];\n      if (!options.shortcuts || !shortcut) {\n        return '';\n      }\n      \n      if (agent.isMac) {\n        shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n      }\n\n      shortcut = shortcut.replace('BACKSLASH', '\\\\')\n                         .replace('SLASH', '/')\n                         .replace('LEFTBRACKET', '[')\n                         .replace('RIGHTBRACKET', ']');\n\n      return ' (' + shortcut + ')';\n    };\n\n    this.initialize = function () {\n      this.addToolbarButtons();\n      this.addImagePopoverButtons();\n      this.addLinkPopoverButtons();\n      this.fontInstalledMap = {};\n    };\n\n    this.destroy = function () {\n      delete this.fontInstalledMap;\n    };\n\n    this.isFontInstalled = function (name) {\n      if (!self.fontInstalledMap.hasOwnProperty(name)) {\n        self.fontInstalledMap[name] = agent.isFontInstalled(name) ||\n          list.contains(options.fontNamesIgnoreCheck, name);\n      }\n\n      return self.fontInstalledMap[name];\n    };\n\n    this.addToolbarButtons = function () {\n      context.memo('button.style', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.magic) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.style.style,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'dropdown-style',\n            items: context.options.styleTags,\n            template: function (item) {\n\n              if (typeof item === 'string') {\n                item = { tag: item, title: (lang.style.hasOwnProperty(item) ? lang.style[item] : item) };\n              }\n\n              var tag = item.tag;\n              var title = item.title;\n              var style = item.style ? ' style=\"' + item.style + '\" ' : '';\n              var className = item.className ? ' class=\"' + item.className + '\"' : '';\n\n              return '<' + tag + style + className + '>' + title + '</' + tag +  '>';\n            },\n            click: context.createInvokeHandler('editor.formatBlock')\n          })\n        ]).render();\n      });\n\n      context.memo('button.bold', function () {\n        return ui.button({\n          className: 'note-btn-bold',\n          contents: ui.icon(options.icons.bold),\n          tooltip: lang.font.bold + representShortcut('bold'),\n          click: context.createInvokeHandler('editor.bold')\n        }).render();\n      });\n\n      context.memo('button.italic', function () {\n        return ui.button({\n          className: 'note-btn-italic',\n          contents: ui.icon(options.icons.italic),\n          tooltip: lang.font.italic + representShortcut('italic'),\n          click: context.createInvokeHandler('editor.italic')\n        }).render();\n      });\n\n      context.memo('button.underline', function () {\n        return ui.button({\n          className: 'note-btn-underline',\n          contents: ui.icon(options.icons.underline),\n          tooltip: lang.font.underline + representShortcut('underline'),\n          click: context.createInvokeHandler('editor.underline')\n        }).render();\n      });\n\n      context.memo('button.clear', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.eraser),\n          tooltip: lang.font.clear + representShortcut('removeFormat'),\n          click: context.createInvokeHandler('editor.removeFormat')\n        }).render();\n      });\n\n      context.memo('button.strikethrough', function () {\n        return ui.button({\n          className: 'note-btn-strikethrough',\n          contents: ui.icon(options.icons.strikethrough),\n          tooltip: lang.font.strikethrough + representShortcut('strikethrough'),\n          click: context.createInvokeHandler('editor.strikethrough')\n        }).render();\n      });\n\n      context.memo('button.superscript', function () {\n        return ui.button({\n          className: 'note-btn-superscript',\n          contents: ui.icon(options.icons.superscript),\n          tooltip: lang.font.superscript,\n          click: context.createInvokeHandler('editor.superscript')\n        }).render();\n      });\n\n      context.memo('button.subscript', function () {\n        return ui.button({\n          className: 'note-btn-subscript',\n          contents: ui.icon(options.icons.subscript),\n          tooltip: lang.font.subscript,\n          click: context.createInvokeHandler('editor.subscript')\n        }).render();\n      });\n\n      context.memo('button.fontname', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontname\"/> ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.name,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontname',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontNames.filter(self.isFontInstalled),\n            template: function (item) {\n              return '<span style=\"font-family:' + item + '\">' + item + '</span>';\n            },\n            click: context.createInvokeHandler('editor.fontName')\n          })\n        ]).render();\n      });\n\n      context.memo('button.fontsize', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontsize\"/>' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.size,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontsize',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontSizes,\n            click: context.createInvokeHandler('editor.fontSize')\n          })\n        ]).render();\n      });\n\n      context.memo('button.color', function () {\n        return ui.buttonGroup({\n          className: 'note-color',\n          children: [\n            ui.button({\n              className: 'note-current-color-button',\n              contents: ui.icon(options.icons.font + ' note-recent-color'),\n              tooltip: lang.color.recent,\n              click: function (e) {\n                var $button = $(e.currentTarget);\n                context.invoke('editor.color', {\n                  backColor: $button.attr('data-backColor'),\n                  foreColor: $button.attr('data-foreColor')\n                });\n              },\n              callback: function ($button) {\n                var $recentColor = $button.find('.note-recent-color');\n                $recentColor.css('background-color', '#FFFF00');\n                $button.attr('data-backColor', '#FFFF00');\n              }\n            }),\n            ui.button({\n              className: 'dropdown-toggle',\n              contents: ui.icon(options.icons.caret, 'span'),\n              tooltip: lang.color.more,\n              data: {\n                toggle: 'dropdown'\n              }\n            }),\n            ui.dropdown({\n              items: [\n                '<li>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.background + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"backColor\" data-value=\"inherit\">',\n                lang.color.transparent,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n                '</div>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.foreground + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"removeFormat\" data-value=\"foreColor\">',\n                lang.color.resetToDefault,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n                '</div>',\n                '</li>'\n              ].join(''),\n              callback: function ($dropdown) {\n                $dropdown.find('.note-holder').each(function () {\n                  var $holder = $(this);\n                  $holder.append(ui.palette({\n                    colors: options.colors,\n                    eventName: $holder.data('event')\n                  }).render());\n                });\n              },\n              click: function (event) {\n                var $button = $(event.target);\n                var eventName = $button.data('event');\n                var value = $button.data('value');\n\n                if (eventName && value) {\n                  var key = eventName === 'backColor' ? 'background-color' : 'color';\n                  var $color = $button.closest('.note-color').find('.note-recent-color');\n                  var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n                  $color.css(key, value);\n                  $currentButton.attr('data-' + eventName, value);\n                  context.invoke('editor.' + eventName, value);\n                }\n              }\n            })\n          ]\n        }).render();\n      });\n\n      context.memo('button.ul',  function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unorderedlist),\n          tooltip: lang.lists.unordered + representShortcut('insertUnorderedList'),\n          click: context.createInvokeHandler('editor.insertUnorderedList')\n        }).render();\n      });\n\n      context.memo('button.ol', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.orderedlist),\n          tooltip: lang.lists.ordered + representShortcut('insertOrderedList'),\n          click:  context.createInvokeHandler('editor.insertOrderedList')\n        }).render();\n      });\n\n      var justifyLeft = ui.button({\n        contents: ui.icon(options.icons.alignLeft),\n        tooltip: lang.paragraph.left + representShortcut('justifyLeft'),\n        click: context.createInvokeHandler('editor.justifyLeft')\n      });\n\n      var justifyCenter = ui.button({\n        contents: ui.icon(options.icons.alignCenter),\n        tooltip: lang.paragraph.center + representShortcut('justifyCenter'),\n        click: context.createInvokeHandler('editor.justifyCenter')\n      });\n\n      var justifyRight = ui.button({\n        contents: ui.icon(options.icons.alignRight),\n        tooltip: lang.paragraph.right + representShortcut('justifyRight'),\n        click: context.createInvokeHandler('editor.justifyRight')\n      });\n\n      var justifyFull = ui.button({\n        contents: ui.icon(options.icons.alignJustify),\n        tooltip: lang.paragraph.justify + representShortcut('justifyFull'),\n        click: context.createInvokeHandler('editor.justifyFull')\n      });\n\n      var outdent = ui.button({\n        contents: ui.icon(options.icons.outdent),\n        tooltip: lang.paragraph.outdent + representShortcut('outdent'),\n        click: context.createInvokeHandler('editor.outdent')\n      });\n\n      var indent = ui.button({\n        contents: ui.icon(options.icons.indent),\n        tooltip: lang.paragraph.indent + representShortcut('indent'),\n        click: context.createInvokeHandler('editor.indent')\n      });\n\n      context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n      context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n      context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n      context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n      context.memo('button.outdent', func.invoke(outdent, 'render'));\n      context.memo('button.indent', func.invoke(indent, 'render'));\n\n      context.memo('button.paragraph', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.alignLeft) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.paragraph.paragraph,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown([\n            ui.buttonGroup({\n              className: 'note-align',\n              children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n            }),\n            ui.buttonGroup({\n              className: 'note-list',\n              children: [outdent, indent]\n            })\n          ])\n        ]).render();\n      });\n\n      context.memo('button.height', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.textHeight) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.height,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            items: options.lineHeights,\n            checkClassName: options.icons.menuCheck,\n            className: 'dropdown-line-height',\n            click: context.createInvokeHandler('editor.lineHeight')\n          })\n        ]).render();\n      });\n\n      context.memo('button.table', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.table) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.table.table,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'note-table',\n            items: [\n              '<div class=\"note-dimension-picker\">',\n              '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n              '  <div class=\"note-dimension-picker-highlighted\"/>',\n              '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n              '</div>',\n              '<div class=\"note-dimension-display\">1 x 1</div>'\n            ].join('')\n          })\n        ], {\n          callback: function ($node) {\n            var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n            $catcher.css({\n              width: options.insertTableMaxSize.col + 'em',\n              height: options.insertTableMaxSize.row + 'em'\n            }).mousedown(context.createInvokeHandler('editor.insertTable'))\n              .on('mousemove', self.tableMoveHandler);\n          }\n        }).render();\n      });\n\n      context.memo('button.link', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.link + representShortcut('linkDialog.show'),\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.picture', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.picture),\n          tooltip: lang.image.image,\n          click: context.createInvokeHandler('imageDialog.show')\n        }).render();\n      });\n\n      context.memo('button.video', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.video),\n          tooltip: lang.video.video,\n          click: context.createInvokeHandler('videoDialog.show')\n        }).render();\n      });\n\n      context.memo('button.hr', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.minus),\n          tooltip: lang.hr.insert + representShortcut('insertHorizontalRule'),\n          click: context.createInvokeHandler('editor.insertHorizontalRule')\n        }).render();\n      });\n\n      context.memo('button.fullscreen', function () {\n        return ui.button({\n          className: 'btn-fullscreen',\n          contents: ui.icon(options.icons.arrowsAlt),\n          tooltip: lang.options.fullscreen,\n          click: context.createInvokeHandler('fullscreen.toggle')\n        }).render();\n      });\n\n      context.memo('button.codeview', function () {\n        return ui.button({\n          className: 'btn-codeview',\n          contents: ui.icon(options.icons.code),\n          tooltip: lang.options.codeview,\n          click: context.createInvokeHandler('codeview.toggle')\n        }).render();\n      });\n\n      context.memo('button.redo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.redo),\n          tooltip: lang.history.redo + representShortcut('redo'),\n          click: context.createInvokeHandler('editor.redo')\n        }).render();\n      });\n\n      context.memo('button.undo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.undo),\n          tooltip: lang.history.undo + representShortcut('undo'),\n          click: context.createInvokeHandler('editor.undo')\n        }).render();\n      });\n\n      context.memo('button.help', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.question),\n          tooltip: lang.options.help,\n          click: context.createInvokeHandler('helpDialog.show')\n        }).render();\n      });\n    };\n\n    /**\n     * image : [\n     *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n     *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],\n     *   ['remove', ['removeMedia']]\n     * ],\n     */\n    this.addImagePopoverButtons = function () {\n      // Image Size Buttons\n      context.memo('button.imageSize100', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">100%</span>',\n          tooltip: lang.image.resizeFull,\n          click: context.createInvokeHandler('editor.resize', '1')\n        }).render();\n      });\n      context.memo('button.imageSize50', function () {\n        return  ui.button({\n          contents: '<span class=\"note-fontsize-10\">50%</span>',\n          tooltip: lang.image.resizeHalf,\n          click: context.createInvokeHandler('editor.resize', '0.5')\n        }).render();\n      });\n      context.memo('button.imageSize25', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">25%</span>',\n          tooltip: lang.image.resizeQuarter,\n          click: context.createInvokeHandler('editor.resize', '0.25')\n        }).render();\n      });\n\n      // Float Buttons\n      context.memo('button.floatLeft', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignLeft),\n          tooltip: lang.image.floatLeft,\n          click: context.createInvokeHandler('editor.floatMe', 'left')\n        }).render();\n      });\n\n      context.memo('button.floatRight', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignRight),\n          tooltip: lang.image.floatRight,\n          click: context.createInvokeHandler('editor.floatMe', 'right')\n        }).render();\n      });\n\n      context.memo('button.floatNone', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignJustify),\n          tooltip: lang.image.floatNone,\n          click: context.createInvokeHandler('editor.floatMe', 'none')\n        }).render();\n      });\n\n      // Remove Buttons\n      context.memo('button.removeMedia', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.trash),\n          tooltip: lang.image.remove,\n          click: context.createInvokeHandler('editor.removeMedia')\n        }).render();\n      });\n    };\n\n    this.addLinkPopoverButtons = function () {\n      context.memo('button.linkDialogShow', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.edit,\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.unlink', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unlink),\n          tooltip: lang.link.unlink,\n          click: context.createInvokeHandler('editor.unlink')\n        }).render();\n      });\n    };\n\n    this.build = function ($container, groups) {\n      for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n        var group = groups[groupIdx];\n        var groupName = group[0];\n        var buttons = group[1];\n\n        var $group = ui.buttonGroup({\n          className: 'note-' + groupName\n        }).render();\n\n        for (var idx = 0, len = buttons.length; idx < len; idx++) {\n          var button = context.memo('button.' + buttons[idx]);\n          if (button) {\n            $group.append(typeof button === 'function' ? button(context) : button);\n          }\n        }\n        $group.appendTo($container);\n      }\n    };\n\n    this.updateCurrentStyle = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      this.updateBtnStates({\n        '.note-btn-bold': function () {\n          return styleInfo['font-bold'] === 'bold';\n        },\n        '.note-btn-italic': function () {\n          return styleInfo['font-italic'] === 'italic';\n        },\n        '.note-btn-underline': function () {\n          return styleInfo['font-underline'] === 'underline';\n        },\n        '.note-btn-subscript': function () {\n          return styleInfo['font-subscript'] === 'subscript';\n        },\n        '.note-btn-superscript': function () {\n          return styleInfo['font-superscript'] === 'superscript';\n        },\n        '.note-btn-strikethrough': function () {\n          return styleInfo['font-strikethrough'] === 'strikethrough';\n        }\n      });\n\n      if (styleInfo['font-family']) {\n        var fontNames = styleInfo['font-family'].split(',').map(function (name) {\n          return name.replace(/[\\'\\\"]/g, '')\n            .replace(/\\s+$/, '')\n            .replace(/^\\s+/, '');\n        });\n        var fontName = list.find(fontNames, self.isFontInstalled);\n\n        $toolbar.find('.dropdown-fontname li a').each(function () {\n          // always compare string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontName + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontname').text(fontName);\n      }\n\n      if (styleInfo['font-size']) {\n        var fontSize = styleInfo['font-size'];\n        $toolbar.find('.dropdown-fontsize li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontSize + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontsize').text(fontSize);\n      }\n\n      if (styleInfo['line-height']) {\n        var lineHeight = styleInfo['line-height'];\n        $toolbar.find('.dropdown-line-height li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (lineHeight + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n      }\n    };\n\n    this.updateBtnStates = function (infos) {\n      $.each(infos, function (selector, pred) {\n        ui.toggleBtnActive($toolbar.find(selector), pred());\n      });\n    };\n\n    this.tableMoveHandler = function (event) {\n      var PX_PER_EM = 18;\n      var $picker = $(event.target.parentNode); // target is mousecatcher\n      var $dimensionDisplay = $picker.next();\n      var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n      var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n      var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n      var posOffset;\n      // HTML5 with jQuery - e.offsetX is undefined in Firefox\n      if (event.offsetX === undefined) {\n        var posCatcher = $(event.target).offset();\n        posOffset = {\n          x: event.pageX - posCatcher.left,\n          y: event.pageY - posCatcher.top\n        };\n      } else {\n        posOffset = {\n          x: event.offsetX,\n          y: event.offsetY\n        };\n      }\n\n      var dim = {\n        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n        r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n      };\n\n      $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n      $catcher.data('value', dim.c + 'x' + dim.r);\n\n      if (3 < dim.c && dim.c < options.insertTableMaxSize.col) {\n        $unhighlighted.css({ width: dim.c + 1 + 'em'});\n      }\n\n      if (3 < dim.r && dim.r < options.insertTableMaxSize.row) {\n        $unhighlighted.css({ height: dim.r + 1 + 'em'});\n      }\n\n      $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n    };\n  };\n\n  var Toolbar = function (context) {\n    var ui = $.summernote.ui;\n\n    var $note = context.layoutInfo.note;\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !options.airMode;\n    };\n\n    this.initialize = function () {\n      options.toolbar = options.toolbar || [];\n\n      if (!options.toolbar.length) {\n        $toolbar.hide();\n      } else {\n        context.invoke('buttons.build', $toolbar, options.toolbar);\n      }\n\n      if (options.toolbarContainer) {\n        $toolbar.appendTo(options.toolbarContainer);\n      }\n\n      $note.on('summernote.keyup summernote.mouseup summernote.change', function () {\n        context.invoke('buttons.updateCurrentStyle');\n      });\n\n      context.invoke('buttons.updateCurrentStyle');\n    };\n\n    this.destroy = function () {\n      $toolbar.children().remove();\n    };\n\n    this.updateFullscreen = function (isFullscreen) {\n      ui.toggleBtnActive($toolbar.find('.btn-fullscreen'), isFullscreen);\n    };\n\n    this.updateCodeview = function (isCodeview) {\n      ui.toggleBtnActive($toolbar.find('.btn-codeview'), isCodeview);\n      if (isCodeview) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n    };\n\n    this.activate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, true);\n    };\n\n    this.deactivate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, false);\n    };\n  };\n\n  var LinkDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group\">' +\n                   '<label>' + lang.link.textToDisplay + '</label>' +\n                   '<input class=\"note-link-text form-control\" type=\"text\" />' +\n                 '</div>' +\n                 '<div class=\"form-group\">' +\n                   '<label>' + lang.link.url + '</label>' +\n                   '<input class=\"note-link-url form-control\" type=\"text\" value=\"http://\" />' +\n                 '</div>' +\n                 (!options.disableLinkTarget ?\n                   '<div class=\"checkbox\">' +\n                     '<label>' + '<input type=\"checkbox\" checked> ' + lang.link.openInNewWindow + '</label>' +\n                   '</div>' : ''\n                 );\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-link-btn disabled\" disabled>' + lang.link.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        className: 'link-dialog',\n        title: lang.link.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    /**\n     * toggle update button\n     */\n    this.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {\n      ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n    };\n\n    /**\n     * Show link dialog and set event handlers on dialog controls.\n     *\n     * @param {Object} linkInfo\n     * @return {Promise}\n     */\n    this.showLinkDialog = function (linkInfo) {\n      return $.Deferred(function (deferred) {\n        var $linkText = self.$dialog.find('.note-link-text'),\n        $linkUrl = self.$dialog.find('.note-link-url'),\n        $linkBtn = self.$dialog.find('.note-link-btn'),\n        $openInNewWindow = self.$dialog.find('input[type=checkbox]');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // if no url was given, copy text to url\n          if (!linkInfo.url) {\n            linkInfo.url = linkInfo.text;\n          }\n\n          $linkText.val(linkInfo.text);\n\n          var handleLinkTextUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // if linktext was modified by keyup,\n            // stop cloning text from linkUrl\n            linkInfo.text = $linkText.val();\n          };\n\n          $linkText.on('input', handleLinkTextUpdate).on('paste', function () {\n            setTimeout(handleLinkTextUpdate, 0);\n          });\n\n          var handleLinkUrlUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // display same link on `Text to display` input\n            // when create a new link\n            if (!linkInfo.text) {\n              $linkText.val($linkUrl.val());\n            }\n          };\n\n          $linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {\n            setTimeout(handleLinkUrlUpdate, 0);\n          }).val(linkInfo.url).trigger('focus');\n\n          self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          self.bindEnterKey($linkUrl, $linkBtn);\n          self.bindEnterKey($linkText, $linkBtn);\n\n          $openInNewWindow.prop('checked', linkInfo.isNewWindow);\n\n          $linkBtn.one('click', function (event) {\n            event.preventDefault();\n\n            deferred.resolve({\n              range: linkInfo.range,\n              url: $linkUrl.val(),\n              text: $linkText.val(),\n              isNewWindow: $openInNewWindow.is(':checked')\n            });\n            self.$dialog.modal('hide');\n          });\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          // detach events\n          $linkText.off('input paste keypress');\n          $linkUrl.off('input paste keypress');\n          $linkBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    /**\n     * @param {Object} layoutInfo\n     */\n    this.show = function () {\n      var linkInfo = context.invoke('editor.getLinkInfo');\n\n      context.invoke('editor.saveRange');\n      this.showLinkDialog(linkInfo).then(function (linkInfo) {\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.createLink', linkInfo);\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n    context.memo('help.linkDialog.show', options.langInfo.help['linkDialog.show']);\n  };\n\n  var LinkPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.link);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-link-popover',\n        callback: function ($node) {\n          var $content = $node.find('.popover-content');\n          $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n        }\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.link);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        this.hide();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      if (rng.isCollapsed() && rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        var href = $(anchor).attr('href');\n        this.$popover.find('a').attr('href', href).html(href);\n\n        var pos = dom.posFromPlaceholder(anchor);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  var ImageDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var imageLimitation = '';\n      if (options.maximumImageFileSize) {\n        var unit = Math.floor(Math.log(options.maximumImageFileSize) / Math.log(1024));\n        var readableSize = (options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +\n                           ' ' + ' KMGTP'[unit] + 'B';\n        imageLimitation = '<small>' + lang.image.maximumFileSize + ' : ' + readableSize + '</small>';\n      }\n\n      var body = '<div class=\"form-group note-group-select-from-files\">' +\n                   '<label>' + lang.image.selectFromFiles + '</label>' +\n                   '<input class=\"note-image-input form-control\" type=\"file\" name=\"files\" accept=\"image/jpg, image/jpeg, image/png, image/gif\" multiple=\"multiple\" />' +\n                   imageLimitation +\n                 '</div>' +\n                 '<div class=\"form-group note-group-image-url\" style=\"overflow:auto;\">' +\n                   '<label>' + lang.image.url + '</label>' +\n                   '<input class=\"note-image-url form-control col-md-12\" type=\"text\" />' +\n                 '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-image-btn disabled\" disabled>' + lang.image.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.image.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showImageDialog().then(function (data) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        if (typeof data === 'string') { // image url\n          context.invoke('editor.insertImage', data);\n        } else { // array of files\n          context.invoke('editor.insertImagesOrCallback', data);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showImageDialog = function () {\n      return $.Deferred(function (deferred) {\n        var $imageInput = self.$dialog.find('.note-image-input'),\n            $imageUrl = self.$dialog.find('.note-image-url'),\n            $imageBtn = self.$dialog.find('.note-image-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // Cloning imageInput to clear element.\n          $imageInput.replaceWith($imageInput.clone()\n            .on('change', function () {\n              deferred.resolve(this.files || this.value);\n            })\n            .val('')\n          );\n\n          $imageBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($imageUrl.val());\n          });\n\n          $imageUrl.on('keyup paste', function () {\n            var url = $imageUrl.val();\n            ui.toggleBtn($imageBtn, url);\n          }).val('').trigger('focus');\n          self.bindEnterKey($imageUrl, $imageBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $imageInput.off('change');\n          $imageUrl.off('keyup paste keypress');\n          $imageBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  var ImagePopover = function (context) {\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.image);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-image-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.image);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function (target) {\n      if (dom.isImg(target)) {\n        var pos = dom.posFromPlaceholder(target);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  var VideoDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.video.url + ' <small class=\"text-muted\">' + lang.video.providers + '</small></label>' +\n          '<input class=\"note-video-url form-control span12\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-video-btn disabled\" disabled>' + lang.video.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.video.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.createVideoNode = function (url) {\n      // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n      var ytRegExp = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n      var ytMatch = url.match(ytRegExp);\n\n      var igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n      var igMatch = url.match(igRegExp);\n\n      var vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n      var vMatch = url.match(vRegExp);\n\n      var vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*([0-9]{6,11})[?]?.*/;\n      var vimMatch = url.match(vimRegExp);\n\n      var dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n      var dmMatch = url.match(dmRegExp);\n\n      var youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n      var youkuMatch = url.match(youkuRegExp);\n\n      var mp4RegExp = /^.+.(mp4|m4v)$/;\n      var mp4Match = url.match(mp4RegExp);\n\n      var oggRegExp = /^.+.(ogg|ogv)$/;\n      var oggMatch = url.match(oggRegExp);\n\n      var webmRegExp = /^.+.(webm)$/;\n      var webmMatch = url.match(webmRegExp);\n\n      var $video;\n      if (ytMatch && ytMatch[1].length === 11) {\n        var youtubeId = ytMatch[1];\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.youtube.com/embed/' + youtubeId)\n            .attr('width', '640').attr('height', '360');\n      } else if (igMatch && igMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')\n            .attr('width', '612').attr('height', '710')\n            .attr('scrolling', 'no')\n            .attr('allowtransparency', 'true');\n      } else if (vMatch && vMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', vMatch[0] + '/embed/simple')\n            .attr('width', '600').attr('height', '600')\n            .attr('class', 'vine-embed');\n      } else if (vimMatch && vimMatch[3].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('src', '//player.vimeo.com/video/' + vimMatch[3])\n            .attr('width', '640').attr('height', '360');\n      } else if (dmMatch && dmMatch[2].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])\n            .attr('width', '640').attr('height', '360');\n      } else if (youkuMatch && youkuMatch[1].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('height', '498')\n            .attr('width', '510')\n            .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n      } else if (mp4Match || oggMatch || webmMatch) {\n        $video = $('<video controls>')\n            .attr('src', url)\n            .attr('width', '640').attr('height', '360');\n      } else {\n        // this is not a known video link. Now what, Cat? Now what?\n        return false;\n      }\n\n      $video.addClass('note-video-clip');\n\n      return $video[0];\n    };\n\n    this.show = function () {\n      var text = context.invoke('editor.getSelectedText');\n      context.invoke('editor.saveRange');\n      this.showVideoDialog(text).then(function (url) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        // build node\n        var $node = self.createVideoNode(url);\n\n        if ($node) {\n          // insert video node\n          context.invoke('editor.insertNode', $node);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showVideoDialog = function (text) {\n      return $.Deferred(function (deferred) {\n        var $videoUrl = self.$dialog.find('.note-video-url'),\n            $videoBtn = self.$dialog.find('.note-video-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $videoUrl.val(text).on('input', function () {\n            ui.toggleBtn($videoBtn, $videoUrl.val());\n          }).trigger('focus');\n\n          $videoBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($videoUrl.val());\n          });\n\n          self.bindEnterKey($videoUrl, $videoBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $videoUrl.off('input');\n          $videoBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  var HelpDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.createShortCutList = function () {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      return Object.keys(keyMap).map(function (key) {\n        var command = keyMap[key];\n        var $row = $('<div><div class=\"help-list-item\"/></div>');\n        $row.append($('<label><kbd>' + key + '</kdb></label>').css({\n          'width': 180,\n          'margin-right': 10\n        })).append($('<span/>').html(context.memo('help.' + command) || command));\n        return $row.html();\n      }).join('');\n    };\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = [\n        '<p class=\"text-center\">',\n        '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote 0.8.2</a> · ',\n        '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ',\n        '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>',\n        '</p>'\n      ].join('');\n\n      this.$dialog = ui.dialog({\n        title: lang.options.help,\n        fade: options.dialogsFade,\n        body: this.createShortCutList(),\n        footer: body,\n        callback: function ($node) {\n          $node.find('.modal-body').css({\n            'max-height': 300,\n            'overflow': 'scroll'\n          });\n        }\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    /**\n     * show help dialog\n     *\n     * @return {Promise}\n     */\n    this.showHelpDialog = function () {\n      return $.Deferred(function (deferred) {\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n          deferred.resolve();\n        });\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showHelpDialog().then(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n  };\n\n  var AirPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    var AIR_MODE_POPOVER_X_OFFSET = 20;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.change summernote.dialog.shown': function () {\n        self.hide();\n      },\n      'summernote.focusout': function (we, e) {\n        // [workaround] Firefox doesn't support relatedTarget on focusout\n        //  - Ignore hide action on focus out in FF.\n        if (agent.isFF) {\n          return;\n        }\n\n        if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(self.$popover[0]))) {\n          self.hide();\n        }\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return options.airMode && !list.isEmpty(options.popover.air);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-air-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.air);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      if (styleInfo.range && !styleInfo.range.isCollapsed()) {\n        var rect = list.last(styleInfo.range.getClientRects());\n        if (rect) {\n          var bnd = func.rect2bnd(rect);\n          this.$popover.css({\n            display: 'block',\n            left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,\n            top: bnd.top + bnd.height\n          });\n        }\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  var HintPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var POPOVER_DIST = 5;\n    var hint = context.options.hint || [];\n    var direction = context.options.hintDirection || 'bottom';\n    var hints = $.isArray(hint) ? hint : [hint];\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return hints.length > 0;\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n      this.$popover = ui.popover({\n        className: 'note-hint-popover',\n        hideArrow: true,\n        direction: ''\n      }).render().appendTo('body');\n\n      this.$popover.hide();\n\n      this.$content = this.$popover.find('.popover-content');\n\n      this.$content.on('click', '.note-hint-item', function () {\n        self.$content.find('.active').removeClass('active');\n        $(this).addClass('active');\n        self.replace();\n      });\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.selectItem = function ($item) {\n      this.$content.find('.active').removeClass('active');\n      $item.addClass('active');\n\n      this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);\n    };\n\n    this.moveDown = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $next = $current.next();\n\n      if ($next.length) {\n        this.selectItem($next);\n      } else {\n        var $nextGroup = $current.parent().next();\n\n        if (!$nextGroup.length) {\n          $nextGroup = this.$content.find('.note-hint-group').first();\n        }\n\n        this.selectItem($nextGroup.find('.note-hint-item').first());\n      }\n    };\n\n    this.moveUp = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $prev = $current.prev();\n\n      if ($prev.length) {\n        this.selectItem($prev);\n      } else {\n        var $prevGroup = $current.parent().prev();\n\n        if (!$prevGroup.length) {\n          $prevGroup = this.$content.find('.note-hint-group').last();\n        }\n\n        this.selectItem($prevGroup.find('.note-hint-item').last());\n      }\n    };\n\n    this.replace = function () {\n      var $item = this.$content.find('.note-hint-item.active');\n\n      if ($item.length) {\n        var node = this.nodeFromItem($item);\n        this.lastWordRange.insertNode(node);\n        range.createFromNode(node).collapse().select();\n\n        this.lastWordRange = null;\n        this.hide();\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.nodeFromItem = function ($item) {\n      var hint = hints[$item.data('index')];\n      var item = $item.data('item');\n      var node = hint.content ? hint.content(item) : item;\n      if (typeof node === 'string') {\n        node = dom.createText(node);\n      }\n      return node;\n    };\n\n    this.createItemTemplates = function (hintIdx, items) {\n      var hint = hints[hintIdx];\n      return items.map(function (item, idx) {\n        var $item = $('<div class=\"note-hint-item\"/>');\n        $item.append(hint.template ? hint.template(item) : item + '');\n        $item.data({\n          'index': hintIdx,\n          'item': item\n        });\n\n        if (hintIdx === 0 && idx === 0) {\n          $item.addClass('active');\n        }\n        return $item;\n      });\n    };\n\n    this.handleKeydown = function (e) {\n      if (!this.$popover.is(':visible')) {\n        return;\n      }\n\n      if (e.keyCode === key.code.ENTER) {\n        e.preventDefault();\n        this.replace();\n      } else if (e.keyCode === key.code.UP) {\n        e.preventDefault();\n        this.moveUp();\n      } else if (e.keyCode === key.code.DOWN) {\n        e.preventDefault();\n        this.moveDown();\n      }\n    };\n\n    this.searchKeyword = function (index, keyword, callback) {\n      var hint = hints[index];\n      if (hint && hint.match.test(keyword) && hint.search) {\n        var matches = hint.match.exec(keyword);\n        hint.search(matches[1], callback);\n      } else {\n        callback();\n      }\n    };\n\n    this.createGroup = function (idx, keyword) {\n      var $group = $('<div class=\"note-hint-group note-hint-group-' + idx + '\"/>');\n      this.searchKeyword(idx, keyword, function (items) {\n        items = items || [];\n        if (items.length) {\n          $group.html(self.createItemTemplates(idx, items));\n          self.show();\n        }\n      });\n\n      return $group;\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {\n        if (e.keyCode === key.code.ENTER) {\n          if (this.$popover.is(':visible')) {\n            return;\n          }\n        }\n      } else {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        var keyword = wordRange.toString();\n        if (hints.length && keyword) {\n          this.$content.empty();\n\n          var bnd = func.rect2bnd(list.last(wordRange.getClientRects()));\n          if (bnd) {\n\n            this.$popover.hide();\n\n            this.lastWordRange = wordRange;\n\n            hints.forEach(function (hint, idx) {\n              if (hint.match.test(keyword)) {\n                self.createGroup(idx, keyword).appendTo(self.$content);\n              }\n            });\n\n            // set position for popover after group is created\n            if (direction === 'top') {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n              });\n            } else {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top + bnd.height + POPOVER_DIST\n              });\n            }\n\n          }\n        } else {\n          this.hide();\n        }\n      }\n    };\n\n    this.show = function () {\n      this.$popover.show();\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n\n  $.summernote = $.extend($.summernote, {\n    version: '0.8.2',\n    ui: ui,\n    dom: dom,\n\n    plugins: {},\n\n    options: {\n      modules: {\n        'editor': Editor,\n        'clipboard': Clipboard,\n        'dropzone': Dropzone,\n        'codeview': Codeview,\n        'statusbar': Statusbar,\n        'fullscreen': Fullscreen,\n        'handle': Handle,\n        // FIXME: HintPopover must be front of autolink\n        //  - Script error about range when Enter key is pressed on hint popover\n        'hintPopover': HintPopover,\n        'autoLink': AutoLink,\n        'autoSync': AutoSync,\n        'placeholder': Placeholder,\n        'buttons': Buttons,\n        'toolbar': Toolbar,\n        'linkDialog': LinkDialog,\n        'linkPopover': LinkPopover,\n        'imageDialog': ImageDialog,\n        'imagePopover': ImagePopover,\n        'videoDialog': VideoDialog,\n        'helpDialog': HelpDialog,\n        'airPopover': AirPopover\n      },\n\n      buttons: {},\n      \n      lang: 'en-US',\n\n      // toolbar\n      toolbar: [\n        ['style', ['style']],\n        ['font', ['bold', 'underline', 'clear']],\n        ['fontname', ['fontname']],\n        ['color', ['color']],\n        ['para', ['ul', 'ol', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture', 'video']],\n        ['view', ['fullscreen', 'codeview', 'help']]\n      ],\n\n      // popover\n      popover: {\n        image: [\n          ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n          ['float', ['floatLeft', 'floatRight', 'floatNone']],\n          ['remove', ['removeMedia']]\n        ],\n        link: [\n          ['link', ['linkDialogShow', 'unlink']]\n        ],\n        air: [\n          ['color', ['color']],\n          ['font', ['bold', 'underline', 'clear']],\n          ['para', ['ul', 'paragraph']],\n          ['table', ['table']],\n          ['insert', ['link', 'picture']]\n        ]\n      },\n\n      // air mode: inline editor\n      airMode: false,\n\n      width: null,\n      height: null,\n\n      focus: false,\n      tabSize: 4,\n      styleWithSpan: true,\n      shortcuts: true,\n      textareaAutoSync: true,\n      direction: null,\n\n      styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n      fontNames: [\n        'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',\n        'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',\n        'Tahoma', 'Times New Roman', 'Verdana'\n      ],\n\n      fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n\n      // pallete colors(n x n)\n      colors: [\n        ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],\n        ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],\n        ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],\n        ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],\n        ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],\n        ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],\n        ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],\n        ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']\n      ],\n\n      lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n\n      tableClassName: 'table table-bordered',\n\n      insertTableMaxSize: {\n        col: 10,\n        row: 10\n      },\n\n      dialogsInBody: false,\n      dialogsFade: false,\n\n      maximumImageFileSize: null,\n\n      callbacks: {\n        onInit: null,\n        onFocus: null,\n        onBlur: null,\n        onEnter: null,\n        onKeyup: null,\n        onKeydown: null,\n        onImageUpload: null,\n        onImageUploadError: null\n      },\n\n      codemirror: {\n        mode: 'text/html',\n        htmlMode: true,\n        lineNumbers: true\n      },\n\n      keyMap: {\n        pc: {\n          'ENTER': 'insertParagraph',\n          'CTRL+Z': 'undo',\n          'CTRL+Y': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CTRL+B': 'bold',\n          'CTRL+I': 'italic',\n          'CTRL+U': 'underline',\n          'CTRL+SHIFT+S': 'strikethrough',\n          'CTRL+BACKSLASH': 'removeFormat',\n          'CTRL+SHIFT+L': 'justifyLeft',\n          'CTRL+SHIFT+E': 'justifyCenter',\n          'CTRL+SHIFT+R': 'justifyRight',\n          'CTRL+SHIFT+J': 'justifyFull',\n          'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n          'CTRL+SHIFT+NUM8': 'insertOrderedList',\n          'CTRL+LEFTBRACKET': 'outdent',\n          'CTRL+RIGHTBRACKET': 'indent',\n          'CTRL+NUM0': 'formatPara',\n          'CTRL+NUM1': 'formatH1',\n          'CTRL+NUM2': 'formatH2',\n          'CTRL+NUM3': 'formatH3',\n          'CTRL+NUM4': 'formatH4',\n          'CTRL+NUM5': 'formatH5',\n          'CTRL+NUM6': 'formatH6',\n          'CTRL+ENTER': 'insertHorizontalRule',\n          'CTRL+K': 'linkDialog.show'\n        },\n\n        mac: {\n          'ENTER': 'insertParagraph',\n          'CMD+Z': 'undo',\n          'CMD+SHIFT+Z': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CMD+B': 'bold',\n          'CMD+I': 'italic',\n          'CMD+U': 'underline',\n          'CMD+SHIFT+S': 'strikethrough',\n          'CMD+BACKSLASH': 'removeFormat',\n          'CMD+SHIFT+L': 'justifyLeft',\n          'CMD+SHIFT+E': 'justifyCenter',\n          'CMD+SHIFT+R': 'justifyRight',\n          'CMD+SHIFT+J': 'justifyFull',\n          'CMD+SHIFT+NUM7': 'insertUnorderedList',\n          'CMD+SHIFT+NUM8': 'insertOrderedList',\n          'CMD+LEFTBRACKET': 'outdent',\n          'CMD+RIGHTBRACKET': 'indent',\n          'CMD+NUM0': 'formatPara',\n          'CMD+NUM1': 'formatH1',\n          'CMD+NUM2': 'formatH2',\n          'CMD+NUM3': 'formatH3',\n          'CMD+NUM4': 'formatH4',\n          'CMD+NUM5': 'formatH5',\n          'CMD+NUM6': 'formatH6',\n          'CMD+ENTER': 'insertHorizontalRule',\n          'CMD+K': 'linkDialog.show'\n        }\n      },\n      icons: {\n        'align': 'note-icon-align',\n        'alignCenter': 'note-icon-align-center',\n        'alignJustify': 'note-icon-align-justify',\n        'alignLeft': 'note-icon-align-left',\n        'alignRight': 'note-icon-align-right',\n        'indent': 'note-icon-align-indent',\n        'outdent': 'note-icon-align-outdent',\n        'arrowsAlt': 'note-icon-arrows-alt',\n        'bold': 'note-icon-bold',\n        'caret': 'note-icon-caret',\n        'circle': 'note-icon-circle',\n        'close': 'note-icon-close',\n        'code': 'note-icon-code',\n        'eraser': 'note-icon-eraser',\n        'font': 'note-icon-font',\n        'frame': 'note-icon-frame',\n        'italic': 'note-icon-italic',\n        'link': 'note-icon-link',\n        'unlink': 'note-icon-chain-broken',\n        'magic': 'note-icon-magic',\n        'menuCheck': 'note-icon-check',\n        'minus': 'note-icon-minus',\n        'orderedlist': 'note-icon-orderedlist',\n        'pencil': 'note-icon-pencil',\n        'picture': 'note-icon-picture',\n        'question': 'note-icon-question',\n        'redo': 'note-icon-redo',\n        'square': 'note-icon-square',\n        'strikethrough': 'note-icon-strikethrough',\n        'subscript': 'note-icon-subscript',\n        'superscript': 'note-icon-superscript',\n        'table': 'note-icon-table',\n        'textHeight': 'note-icon-text-height',\n        'trash': 'note-icon-trash',\n        'underline': 'note-icon-underline',\n        'undo': 'note-icon-undo',\n        'unorderedlist': 'note-icon-unorderedlist',\n        'video': 'note-icon-video'\n      }\n    }\n  });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/airmode.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote airmode</title>\n\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/3.3.5/js/bootstrap.min.js\"></script> \n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 300,\n        tabsize: 2,\n        airMode: true\n      });\n    });\n  </script>\n</head>\n<body>\n<div class=\"summernote\">\n<p>In <a href=\"http://en.wikipedia.org/wiki/Computer_science\" title=\"Computer science\">computer science</a>, <b>functional programming</b> is a <a href=\"http://en.wikipedia.org/wiki/Programming_paradigm\" title=\"Programming paradigm\">programming paradigm</a>, a style of building the structure and elements of computer programs, that treats <a href=\"http://en.wikipedia.org/wiki/Computation\" title=\"Computation\">computation</a> as the evaluation of <a href=\"http://en.wikipedia.org/wiki/Function_(mathematics)\" title=\"Function (mathematics)\">mathematical functions</a> and avoids <a href=\"http://en.wikipedia.org/wiki/Program_state\" title=\"Program state\" class=\"mw-redirect\">state</a> and <a href=\"http://en.wikipedia.org/wiki/Immutable_object\" title=\"Immutable object\">mutable</a> data. Functional programming emphasizes <a href=\"http://en.wikipedia.org/wiki/Function_(computer_science)\" title=\"Function (computer science)\" class=\"mw-redirect\">functions</a> that produce results that depend only on their inputs and not on the program state—i.e. <a href=\"http://en.wikipedia.org/wiki/Pure_function\" title=\"Pure function\">pure</a> <a href=\"http://en.wikipedia.org/wiki/Function_(mathematics)\" title=\"Function (mathematics)\">mathematical functions</a>. It is a <a href=\"http://en.wikipedia.org/wiki/Declarative_programming\" title=\"Declarative programming\">declarative programming</a> paradigm, which means programming is done with <a href=\"http://en.wikipedia.org/wiki/Expression_(computer_science)\" title=\"Expression (computer science)\">expressions</a>. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function <i>f</i> twice with the same value for an argument <i>x</i> will produce the same result <i>f(x)</i> both times. Eliminating <a href=\"http://en.wikipedia.org/wiki/Side_effect_(computer_science)\" title=\"Side effect (computer science)\">side effects</a>, i.e. changes in state that do not depend on the function inputs, can make it much easier to understand and predict the behavior of a program, which is one of the key motivations for the development of functional programming.</p>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/bs3fa4.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n  <title>summernote - bs3fa4</title>\n\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 300,\n        tabsize: 2\n      });\n    });\n  </script>\n</head>\n<body>\n<div class=\"container\">\n  <h4>Lately library\n    <span class=\"label label-info\">Bootstrap v3.3.5</span>\n  </h4>\n  <div class=\"summernote\"></div>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/codemirror.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote - codemirror</title>\n\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n  <!-- include codemirror (codemirror.css, codemirror.js, xml.js, formatting.js)-->\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/codemirror.min.css\" />\n  <link rel=\"stylesheet\" href=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/theme/blackboard.min.css\">\n  <link rel=\"stylesheet\" href=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/theme/monokai.min.css\">\n  <script type=\"text/javascript\" src=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/codemirror.js\"></script>\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/mode/xml/xml.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        codemirror: {\n          mode: 'text/html',\n          htmlMode: true,\n          lineNumbers: true,\n          theme: 'monokai'\n        }\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/external-api.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\">\n    <title>summernote - external-api</title>\n    <!-- include jquery -->\n    <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n    <!-- include libs stylesheets -->\n    <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n    <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n    <!-- include summernote -->\n    <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n    <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n    <style>\n      .container {\n        position: absolute;\n        left: 10%;\n        right: 10%;\n        top: 10%;\n        bottom: 10%;\n      }\n\n      .custom-toolbar {\n        padding: 5px;\n      }\n  \n      h1 {\n        text-align: center;\n      }\n    </style>\n\n    <script type=\"text/javascript\">\n      var $summernote;\n      $(document).ready(function () {\n        $summernote = $('.summernote');\n      \n        // init summernote\n        $summernote.summernote({\n          height: 300,\n          toolbar: false\n        });\n      \n        $(\"button\").popover({\n          trigger: 'hover'\n        });\n      });\n      \n      function command() {\n        $summernote.summernote(arguments[0], arguments[1]);\n      }\n    </script>\n  </head>\n  <body>\n    <div class=\"container\">\n      <h1>External API Sample</h1>\n      <div class=\"custom-toolbar\">\n        <div class=\"btn-group\" role=\"group\" aria-label=\"...\">\n          <button type=\"button\" class=\"btn btn-default\" data-container=\"body\" data-trigger=\"hover\" data-placement=\"left\" data-content=\"Sample Content\" title=\"Sample Button\" onclick=\"command('justifyLeft')\">Left </button>\n          <button type=\"button\" class=\"btn btn-default\" onclick=\"command('justifyCenter')\">Middle</button>\n          <button type=\"button\" class=\"btn btn-default\" onclick=\"command('justifyRight')\">Right</button>\n        </div>\n\n        <div class=\"btn-group\" role=\"group\" aria-label=\"...\">\n          <button type=\"button\" class=\"btn btn-default\" data-container=\"body\" data-trigger=\"hover\" data-placement=\"bottom\" data-content=\"Apply bold style to selected text\" title=\"Bold (CTRL+B)\" onclick=\"command('bold')\"><i class=\"fa fa-bold\"></i> Bold </button>\n          <button type=\"button\" class=\"btn btn-default\" title=\"Italic (CTRL+I)\" onclick=\"command('italic')\"><i class=\"fa fa-italic\"></i> Italic </button>\n          <button type=\"button\" class=\"btn btn-default\" title=\"Underline (CTRL+U)\" onclick=\"command('underline')\"><i class=\"fa fa-underline\"></i> Underline </button>\n          <button type=\"button\" class=\"btn btn-default\" title=\"Remove Font Style (CTRL+\\)\" onclick=\"command('removeFormat')\" style=\"color:red;\"><i class=\"fa fa-eraser\"></i> Remove Format </button>\n        </div>\n      </div>\n      <div class=\"summernote\">Hello World</div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/get-button.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>How to get a button in toolbar</title>\n  <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n\n  <!-- include libraries BS2 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\"/>\n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <style>\n    .container {\n      position: absolute;\n      left: 10%;\n      right: 10%;\n      top: 10%;\n      bottom: 10%;\n    }\n\n    .custom-toolbar {\n      padding: 5px;\n    }\n\n    h1 {\n      text-align: center;\n    }\n  </style>\n\n  <script type=\"text/javascript\">\n    // referer to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random\n    function getRandomInt(min, max) {\n      return Math.floor(Math.random() * (max - min)) + min;\n    }\n    $(document).ready(function() {\n      $('.summernote')\n          .on('summernote.change', function() {\n            var $buttons = [\n              $(this).summernote(\"toolbar.get\", \"ol\"),\n              $(this).summernote(\"toolbar.get\", \"bold\"),\n              $(this).summernote(\"toolbar.get\", \"italic\")\n            ];\n              \n            for(var i = 0; i < $buttons.length; i++) {\n              var r = getRandomInt(0, 255);\n              var g = getRandomInt(0, 255);\n              var b = getRandomInt(0, 255);\n\n              $buttons[i].css('background-color', 'rgb(' + r + ',' + g + ',' + b + ')');\n            }\n\n          })\n          .summernote({ height : 300 });\n\n    });\n  </script>\n</head>\n<body>\n<div class=\"container\">\n  <h1>How to get a button in toolbar</h1>\n  <div class=\"summernote\">\n    <h1>Button is in a toolbar.</h1>\n\n    <h3>When change event occurs, some buttons will change background color.</h3>\n\n  </div>\n</div>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/hint-emoji.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <script type=\"text/javascript\" src=\"../lang/summernote-ko-KR.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function () {\n      var self = this;\n\n      // load github's emoji list\n      $.ajax({\n        url: 'https://api.github.com/emojis'\n      }).then(function (data) {\n        var emojis = Object.keys(data);\n        var emojiUrls = data;\n\n        $('.summernote').summernote({\n          height: 300,\n          hintDirection: 'top',\n          hint: [{\n            search: function (keyword, callback) {\n              callback($.grep(emojis, function (item) {\n                return item.indexOf(keyword)  === 0;\n              }));\n            },\n            match: /\\B:([\\-+\\w]+)$/,\n            template: function (item) {\n              var content = emojiUrls[item];\n              return '<img src=\"' + content + '\" width=\"20\" /> :' + item + ':';\n            },\n            content: function (item) {\n              var url = emojiUrls[item];\n              if (url) {\n                return $('<img />').attr('src', url).css('width', 20)[0];\n              }\n              return '';\n            }\n          }]\n        });\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\">Type text start with \":\". For example, :smile or :+1:.</textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/hint-userdefine.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js\"></script> \n\n  <!-- include libs stylesheets -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n  <script src=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script src=\"https://www.google.com/jsapi\" type=\"text/javascript\"></script>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').summernote({\n        height: 200,\n        hint: {\n          match: /#(\\w{2,})$/,\n          search: function(keyword, callback) {\n            $.ajax({\n              url: 'https://api.github.com/search/repositories?q=' + keyword + '&order=asc'\n            }).then(function (data) {\n              callback(data.items);\n            });\n          },\n          content: function(item) {\n            return '[' + item.full_name + '] ' + item.description;\n          },\n          template: function(item) {\n            return '[<strong>' + item.full_name + '</strong>] ' + item.description;\n          }\n        }\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\">type #su</textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/jquery-custom-event.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>jquery old</title>\n  <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n\n  <!-- include libraries BS2 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\"/>\n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <style>\n    .container {\n      position: absolute;\n      left: 10%;\n      right: 10%;\n      top: 10%;\n      bottom: 10%;\n    }\n\n    .custom-toolbar {\n      padding: 5px;\n    }\n\n    h1 {\n      text-align: center;\n    }\n  </style>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').on('summernote.init', function() {\n        console.log('summernote initialize!')\n      }).on('summernote.change', function() {\n        console.log(' changed content ')\n      }).on('summernote.keyup', function(event) {\n        console.log('you can use keyboard event', event);\n      }).on('summernote.enter', function(event) {\n        console.log('check enter key ');\n      }).summernote({ height : 300 });\n\n    });\n  </script>\n</head>\n<body>\n<div class=\"container\">\n  <h1>jQuery Custom Event Sample</h1>\n  <div class=\"summernote\">\n    <article class=\"markdown-body js-file js-task-list-container is-task-list-enabled\" data-task-list-update-url=\"https://gist.github.com/easylogic/95d2dbe03ce500bd0ae1/file/gistfile1.md\">\n\n      <h1>\n        <a name=\"user-content-how-to-set-custom-event\" class=\"anchor\" href=\"#how-to-set-custom-event\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>How to set custom event</h1>\n\n      <h2>\n        <a name=\"user-content-current-style-1\" class=\"anchor\" href=\"#current-style-1\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>current style</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).summernote({\n  <span class=\"pl-en\">onfocus</span> : <span class=\"pl-st\">function</span>(<span class=\"pl-vpf\">e</span>) {\n    <span class=\"pl-c\">// to do something</span>\n  }\n});</pre></div>\n\n      <h2>\n        <a name=\"user-content-jquery-plugin-style\" class=\"anchor\" href=\"#jquery-plugin-style\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>jquery style</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.focus<span class=\"pl-pds\">\"</span></span>, <span class=\"pl-st\">function</span>(<span class=\"pl-vpf\">e</span>) {\n  <span class=\"pl-c\">// to do something</span>\n});</pre></div>\n\n      <h1>\n        <a name=\"user-content-event-list\" class=\"anchor\" href=\"#event-list\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>Event List</h1>\n\n      <h2>\n        <a name=\"user-content-oninit\" class=\"anchor\" href=\"#oninit\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>oninit</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.init<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onfocus\" class=\"anchor\" href=\"#onfocus\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onfocus</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.focus<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onenter\" class=\"anchor\" href=\"#onenter\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onenter</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.enter<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onblur\" class=\"anchor\" href=\"#onblur\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onblur</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.blur<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onkeyup\" class=\"anchor\" href=\"#onkeyup\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onkeyup</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.keyup<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onkeydown\" class=\"anchor\" href=\"#onkeydown\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onkeydown</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.keydown<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n      <h2>\n        <a name=\"user-content-onchange\" class=\"anchor\" href=\"#onchange\" rel=\"noreferrer\"><span class=\"octicon octicon-link\"></span></a>onChange</h2>\n\n      <div class=\"highlight highlight-javascript\"><pre>$(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>.summernote<span class=\"pl-pds\">\"</span></span>).on(<span class=\"pl-s1\"><span class=\"pl-pds\">\"</span>summernote.change<span class=\"pl-pds\">\"</span></span>, ...);</pre></div>\n\n    </article>\n\n\n  </div>\n</div>\n\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/jquery18lt.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>jquery old</title>\n  <script src=\"http://code.jquery.com/jquery-1.8.3.js\"></script>\n\n  <!-- include libraries BS2 -->\n  <link href=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.no-icons.min.css\" rel=\"stylesheet\"> \n  <script src=\"//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js\"></script> \n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({height: 200});\n    });\n  </script>\n</head>\n<body>\n<div class=\"summernote\"></div>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/lang.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <script type=\"text/javascript\" src=\"../lang/summernote-ko-KR.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        lang: 'ko-KR'\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/nativestyle.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        styleWithSpan: false\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/ondialog-multitab.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script>\n    $(function () {\n      $('#dropper').on('shown.bs.modal', function() {\n        $('.dropping').summernote({ height: 300, focus: true });\n      }).on('hidden.bs.modal', function () {\n        $('.dropping').destroy();\n      });\n\n      $('.nav.nav-tabs a').click(function (e) {\n        e.preventDefault()\n          $(this).tab('show')\n      })\n    });\n  </script>\n</head>\n<body>\n<button class=\"btn btn-primary btn-lg\" data-toggle=\"modal\" data-target=\"#dropper\">Show Dialog</button>\n<div id=\"dropper\" class=\"modal fade\" tabindex=\"-1\" data-backdrop=\"static\" role=\"dialog\" aria-hidden=\"true\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-body\">\n        <div role=\"tabpanel\">\n          <!-- Nav tabs -->\n          <ul class=\"nav nav-tabs\" role=\"tablist\">\n            <li role=\"presentation\" class=\"active\"><a href=\"#tab1\" aria-controls=\"tab1\" role=\"tab\" data-toggle=\"tab\">Tab 1</a></li>\n            <li role=\"presentation\"><a href=\"#tab2\" aria-controls=\"tab2\" role=\"tab\" data-toggle=\"tab\">Tab 2</a></li>\n          </ul>\n          <!-- Tab panes -->\n          <div class=\"tab-content\">\n            <div role=\"tabpanel\" class=\"tab-pane active\" id=\"tab1\">\n              <div class=\"dropping\">text...</div>\n            </div>\n            <div role=\"tabpanel\" class=\"tab-pane\" id=\"tab2\">\n              <div class=\"dropping\">text...</div>\n            </div>\n          </div>\n        </div>          \n      </div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-default pull-left\">\n          <span class=\"fa fa-paperclip\"></span>\n          Attach Digital Assets\n        </button>\n        <div class=\"btn-group\">\n          <button type=\"button\" class=\"btn btn-default opacity75\" class=\"close\" data-dismiss=\"modal\">\n            &times; Cancel\n          </button>\n          <button type=\"button\" class=\"btn btn-warning\" href=\"javascript:postDrop()\">\n            Post Status Update\n            <span class=\"fa fa-bullhorn\"></span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</div> \n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/ondialog.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script>\n    $(function () {\n      $('#dropper').on('shown.bs.modal', function() {\n        $('#dropping').summernote({ height: 300, focus: true });\n      }).on('hidden.bs.modal', function () {\n        $('#dropping').destroy();\n      });\n    });\n  </script>\n</head>\n<body>\n<button class=\"btn btn-primary btn-lg\" data-toggle=\"modal\" data-target=\"#dropper\">Show Dialog</button>\n<div id=\"dropper\" class=\"modal fade\" tabindex=\"-1\" data-backdrop=\"static\" role=\"dialog\" aria-hidden=\"true\">\n  <div class=\"modal-dialog\">\n    <div class=\"modal-content\">\n      <div class=\"modal-body\">\n        <div id=\"dropping\">text...</div>\n      </div>\n      <div class=\"modal-footer\">\n        <button type=\"button\" class=\"btn btn-default pull-left\">\n          <span class=\"fa fa-paperclip\"></span>\n          Attach Digital Assets\n        </button>\n        <div class=\"btn-group\">\n          <button type=\"button\" class=\"btn btn-default opacity75\" class=\"close\" data-dismiss=\"modal\">\n            &times; Cancel\n          </button>\n          <button type=\"button\" class=\"btn btn-warning\" href=\"javascript:postDrop()\">\n            Post Status Update\n            <span class=\"fa fa-bullhorn\"></span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</div> \n</body>\n</html>\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/plugin-hello.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n  <script type=\"text/javascript\" src=\"../lang/summernote-ko-KR.js\"></script>\n  <script type=\"text/javascript\" src=\"../plugin/hello/summernote-ext-hello.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        toolbar: [\n  \t\t    ['style', ['bold', 'italic', 'underline', 'clear']],\n  \t\t    ['insert', ['hello']]\n  \t\t  ]\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\">Seasons coming up</textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/rtl.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(document).ready(function() {\n      $('.summernote').summernote({\n        height: 200,\n        tabsize: 2,\n        direction: 'rtl'\n      });\n    });\n  </script>\n</head>\n<body>\n<textarea class=\"summernote\"><p>Seasons <b>coming up</b></p></textarea>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/examples/textarea.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /> \n  <title>summernote</title>\n  <!-- include jquery -->\n  <script src=\"//code.jquery.com/jquery-1.11.3.min.js\"></script> \n\n  <!-- include libraries BS3 -->\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css\" />\n  <script type=\"text/javascript\" src=\"//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js\"></script>\n\n  <!-- include summernote -->\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <script type=\"text/javascript\" src=\"../dist/summernote.js\"></script>\n\n  <script type=\"text/javascript\">\n    $(function() {\n      $('.summernote').summernote({\n        height: 200\n      });\n\n      $('form').on('submit', function (e) {\n        e.preventDefault();\n        alert($('.summernote').summernote('code'));\n        alert($('.summernote').val());\n      });\n    });\n  </script>\n</head>\n<body>\n<form action=\"#\" novalidate>\n  <div class=\"form-group\">\n    <label for=\"input\">Text</label>\n    <input type=\"text\" class=\"form-input\" id=\"input\" value=\"Title\">\n  </div>\n  <div class=\"form-group\">\n    <label for=\"contents\">Contents</label>\n    <textarea name=\"text\" class=\"summernote\" id=\"contents\" title=\"Contents\"></textarea>\n  </div>\n  <button type=\"submit\" class=\"btn btn-default\">submit</button>\n</form>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/grunts/grunt-build.js",
    "content": "module.exports = function (grunt) {\n  'use strict';\n\n  var requirejs = require('requirejs');\n  var path = require('path');\n\n  var rDefineStart = /define\\([^{]*?{/;\n  var rDefineEndWithReturn = /\\s*return\\s+[^\\}]+(\\}\\);[^\\w\\}]*)$/;\n  var rDefineEnd = /\\}\\);[^}\\w]*$/;\n\n  grunt.registerMultiTask('build', 'concatenate source: summernote.js', function () {\n    var self = this;\n\n    var done = this.async();\n    requirejs.optimize({\n      name: 'summernote/summernote',\n      baseUrl: this.data.baseUrl,\n      /**\n       * Handle final output from the optimizer\n       */\n      out: function (compiled) {\n        // 01. Embed version\n        var version = grunt.config('pkg.version');\n        compiled = compiled.replace(/@VERSION/g, version);\n\n        // 02.  Embed Date\n        var date = (new Date()).toISOString().replace(/:\\d+\\.\\d+Z$/, 'Z');\n        compiled = compiled.replace(/@DATE/g, date);\n\n        grunt.file.write(self.data.outFile, compiled);\n      },\n      optimize: 'none',\n      wrap: {\n        startFile: path.join(this.data.baseUrl, this.data.startFile),\n        endFile: path.join(this.data.baseUrl, this.data.endFile)\n      },\n      findNestedDependencies: true,\n      skipSemiColonInsertion: true,\n      /**\n       * Strip all definitions generated by requirejs\n       *\n       * @param {String} name\n       * @param {String} path\n       * @param {String} contents The contents to be written (including their AMD wrappers)\n       */\n      onBuildWrite: function (name, path, contents) {\n        contents = contents.replace(rDefineStart, '');\n\n        if (rDefineEndWithReturn.test(contents)) {\n          contents = contents.replace(rDefineEndWithReturn, '');\n        } else {\n          contents = contents.replace(rDefineEnd, '');\n        }\n        return contents;\n      },\n      excludeShallow: ['jquery', 'codemirror', 'app'],\n      include: ['summernote/bs3/settings'],\n      paths: {\n        jquery: 'empty:',\n        codemirror: 'empty:'\n      },\n      packages: [{\n        name: 'summernote',\n        location: './'\n      }]\n    }, function () {\n      done();\n    }, function (err) {\n      done(err);\n    });\n  });\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/ie8.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n  <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\">\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <title>summernote</title>\n</head>\n<body>\n<div class=\"container\">\n  <h4>Summernote\n    <span class=\"label label-info\">Bootstrap v3.3.5</span>\n  </h4>\n\n  <div class=\"summernote\"><p>Hello World</p></div>\n</div>\n<script type=\"text/javascript\" src=\"//cdnjs.cloudflare.com/ajax/libs/es5-shim/4.3.1/es5-shim.js\"></script>\n<script id=\"start\" data-main=\"src/js/app\" data-editor-type=\"bs3\" data-browser=\"ie8\" src=\"//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n   <link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css\" />\n   <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n   <title>summernote</title>\n</head>\n<body>\n  <div class=\"container\">\n    <h4> <i class=\"note-icon-summernote\"></i> Summernote\n      <span class=\"label label-info\">Bootstrap v3.3.5</span>\n      <span class=\"label label-success\">with Summernote Icons</span>\n    </h4>\n    <div class=\"summernote\"><p>Hello World</p></div>\n  </div>\n  <script data-main=\"src/js/app\" data-editor-type=\"bs3\" src=\"//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/issue_template.md",
    "content": "#### steps to reproduce\n1.\n2.\n3.\n\n#### browser version and os version\nWhat is your browser and OS?\n\n#### screenshot of issue\nadd screenshots which shows your issue(if needed).\nYou can make [gif from Recordit](http://www.recordit.co/).\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-ar-AR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ar-AR': {\n      font: {\n        bold: 'عريض',\n        italic: 'مائل',\n        underline: 'تحته خط',\n        clear: 'مسح التنسيق',\n        height: 'إرتفاع السطر',\n        name: 'الخط',\n        strikethrough: 'فى وسطه خط',\n        size: 'الحجم'\n      },\n      image: {\n        image: 'صورة',\n        insert: 'إضافة صورة',\n        resizeFull: 'الحجم بالكامل',\n        resizeHalf: 'تصغير للنصف',\n        resizeQuarter: 'تصغير للربع',\n        floatLeft: 'تطيير لليسار',\n        floatRight: 'تطيير لليمين',\n        floatNone: 'ثابته',\n        dragImageHere: 'إدرج الصورة هنا',\n        selectFromFiles: 'حدد ملف',\n        url: 'رابط الصورة',\n        remove: 'حذف الصورة'\n      },\n      video: {\n        video: 'فيديو',\n        videoLink: 'رابط الفيديو',\n        insert: 'إدراج الفيديو',\n        url: 'رابط الفيديو',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'رابط رابط',\n        insert: 'إدراج',\n        unlink: 'حذف الرابط',\n        edit: 'تعديل',\n        textToDisplay: 'النص',\n        url: 'مسار الرابط',\n        openInNewWindow: 'فتح في نافذة جديدة'\n      },\n      table: {\n        table: 'جدول'\n      },\n      hr: {\n        insert: 'إدراج خط أفقي'\n      },\n      style: {\n        style: 'تنسيق',\n        p: 'عادي',\n        blockquote: 'إقتباس',\n        pre: 'شفيرة',\n        h1: 'عنوان رئيسي 1',\n        h2: 'عنوان رئيسي 2',\n        h3: 'عنوان رئيسي 3',\n        h4: 'عنوان رئيسي 4',\n        h5: 'عنوان رئيسي 5',\n        h6: 'عنوان رئيسي 6'\n      },\n      lists: {\n        unordered: 'قائمة مُنقطة',\n        ordered: 'قائمة مُرقمة'\n      },\n      options: {\n        help: 'مساعدة',\n        fullscreen: 'حجم الشاشة بالكامل',\n        codeview: 'شفيرة المصدر'\n      },\n      paragraph: {\n        paragraph: 'فقرة',\n        outdent: 'محاذاة للخارج',\n        indent: 'محاذاة للداخل',\n        left: 'محاذاة لليسار',\n        center: 'توسيط',\n        right: 'محاذاة لليمين',\n        justify: 'ملئ السطر'\n      },\n      color: {\n        recent: 'تم إستخدامه',\n        more: 'المزيد',\n        background: 'لون الخلفية',\n        foreground: 'لون النص',\n        transparent: 'شفاف',\n        setTransparent: 'بدون خلفية',\n        reset: 'إعادة الضبط',\n        resetToDefault: 'إعادة الضبط'\n      },\n      shortcut: {\n        shortcuts: 'إختصارات',\n        close: 'غلق',\n        textFormatting: 'تنسيق النص',\n        action: 'Action',\n        paragraphFormatting: 'تنسيق الفقرة',\n        documentStyle: 'تنسيق المستند'\n      },\n      history: {\n        undo: 'تراجع',\n        redo: 'إعادة'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-bg-BG.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'bg-BG': {\n      font: {\n        bold: 'Удебелен',\n        italic: 'Наклонен',\n        underline: 'Подчертан',\n        clear: 'Изчисти стиловете',\n        height: 'Височина',\n        name: 'Шрифт',\n        strikethrough: 'Задраскано',\n        subscript: 'Долен индекс',\n        superscript: 'Горен индекс',\n        size: 'Размер на шрифта'\n      },\n      image: {\n        image: 'Изображение',\n        insert: 'Постави картинка',\n        resizeFull: 'Цял размер',\n        resizeHalf: 'Размер на 50%',\n        resizeQuarter: 'Размер на 25%',\n        floatLeft: 'Подравни в ляво',\n        floatRight: 'Подравни в дясно',\n        floatNone: 'Без подравняване',\n        dragImageHere: 'Пуснете изображението тук',\n        selectFromFiles: 'Изберете файл',\n        url: 'URL адрес на изображение',\n        remove: 'Премахни изображение'\n      },\n      link: {\n        link: 'Връзка',\n        insert: 'Добави връзка',\n        unlink: 'Премахни връзка',\n        edit: 'Промени',\n        textToDisplay: 'Текст за показване',\n        url: 'URL адрес',\n        openInNewWindow: 'Отвори в нов прозорец'\n      },\n      table: {\n        table: 'Таблица'\n      },\n      hr: {\n        insert: 'Добави хоризонтална линия'\n      },\n      style: {\n        style: 'Стил',\n        p: 'Нормален',\n        blockquote: 'Цитат',\n        pre: 'Код',\n        h1: 'Заглавие 1',\n        h2: 'Заглавие 2',\n        h3: 'Заглавие 3',\n        h4: 'Заглавие 4',\n        h5: 'Заглавие 5',\n        h6: 'Заглавие 6'\n      },\n      lists: {\n        unordered: 'Символен списък',\n        ordered: 'Цифров списък'\n      },\n      options: {\n        help: 'Помощ',\n        fullscreen: 'На цял екран',\n        codeview: 'Преглед на код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Намаляване на отстъпа',\n        indent: 'Абзац',\n        left: 'Подравняване в ляво',\n        center: 'Център',\n        right: 'Подравняване в дясно',\n        justify: 'Разтягане по ширина'\n      },\n      color: {\n        recent: 'Последния избран цвят',\n        more: 'Още цветове',\n        background: 'Цвят на фона',\n        foreground: 'Цвят на шрифта',\n        transparent: 'Прозрачен',\n        setTransparent: 'Направете прозрачен',\n        reset: 'Възстанови',\n        resetToDefault: 'Възстанови оригиналните'\n      },\n      shortcut: {\n        shortcuts: 'Клавишни комбинации',\n        close: 'Затвори',\n        textFormatting: 'Форматиране на текста',\n        action: 'Действие',\n        paragraphFormatting: 'Форматиране на параграф',\n        documentStyle: 'Стил на документа'\n      },\n      history: {\n        undo: 'Назад',\n        redo: 'Напред'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-ca-ES.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ca-ES': {\n      font: {\n        bold: 'Negreta',\n        italic: 'Cursiva',\n        underline: 'Subratllat',\n        clear: 'Treure estil de lletra',\n        height: 'Alçada de línia',\n        name: 'Font',\n        strikethrough: 'Ratllat',\n        subscript: 'Subíndex',\n        superscript: 'Superíndex',\n        size: 'Mida de lletra'\n      },\n      image: {\n        image: 'Imatge',\n        insert: 'Inserir imatge',\n        resizeFull: 'Redimensionar a mida completa',\n        resizeHalf: 'Redimensionar a la meitat',\n        resizeQuarter: 'Redimensionar a un quart',\n        floatLeft: 'Alinear a l\\'esquerra',\n        floatRight: 'Alinear a la dreta',\n        floatNone: 'No alinear',\n        shapeRounded: 'Forma: Arrodonit',\n        shapeCircle: 'Forma: Cercle',\n        shapeThumbnail: 'Forma: Marc',\n        shapeNone: 'Forma: Cap',\n        dragImageHere: 'Arrossegueu una imatge o text aquí',\n        dropImage: 'Deixa anar aquí una imatge o un text',\n        selectFromFiles: 'Seleccioneu des dels arxius',\n        maximumFileSize: 'Mida màxima de l\\'arxiu',\n        maximumFileSizeError: 'La mida màxima de l\\'arxiu s\\'ha superat.',\n        url: 'URL de la imatge',\n        remove: 'Eliminar imatge'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Enllaç del vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL del vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Enllaç',\n        insert: 'Inserir enllaç',\n        unlink: 'Treure enllaç',\n        edit: 'Editar',\n        textToDisplay: 'Text per mostrar',\n        url: 'Cap a quina URL porta l\\'enllaç?',\n        openInNewWindow: 'Obrir en una finestra nova'\n      },\n      table: {\n        table: 'Taula'\n      },\n      hr: {\n        insert: 'Inserir línia horitzontal'\n      },\n      style: {\n        style: 'Estil',\n        p: 'p',\n        blockquote: 'Cita',\n        pre: 'Codi',\n        h1: 'Títol 1',\n        h2: 'Títol 2',\n        h3: 'Títol 3',\n        h4: 'Títol 4',\n        h5: 'Títol 5',\n        h6: 'Títol 6'\n      },\n      lists: {\n        unordered: 'Llista desendreçada',\n        ordered: 'Llista endreçada'\n      },\n      options: {\n        help: 'Ajut',\n        fullscreen: 'Pantalla sencera',\n        codeview: 'Veure codi font'\n      },\n      paragraph: {\n        paragraph: 'Paràgraf',\n        outdent: 'Menys tabulació',\n        indent: 'Més tabulació',\n        left: 'Alinear a l\\'esquerra',\n        center: 'Alinear al mig',\n        right: 'Alinear a la dreta',\n        justify: 'Justificar'\n      },\n      color: {\n        recent: 'Últim color',\n        more: 'Més colors',\n        background: 'Color de fons',\n        foreground: 'Color de lletra',\n        transparent: 'Transparent',\n        setTransparent: 'Establir transparent',\n        reset: 'Restablir',\n        resetToDefault: 'Restablir per defecte'\n      },\n      shortcut: {\n        shortcuts: 'Dreceres de teclat',\n        close: 'Tancar',\n        textFormatting: 'Format de text',\n        action: 'Acció',\n        paragraphFormatting: 'Format de paràgraf',\n        documentStyle: 'Estil del document',\n        extraKeys: 'Tecles adicionals'\n      },\n      help : {\n        'insertParagraph': 'Inserir paràgraf',\n        'undo': 'Desfer l\\'última acció',\n        'redo': 'Refer l\\'última acció',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulació',\n        'bold': 'Establir estil negreta',\n        'italic': 'Establir estil cursiva',\n        'underline': 'Establir estil subratllat',\n        'strikethrough': 'Establir estil ratllat',\n        'removeFormat': 'Netejar estil',\n        'justifyLeft': 'Alinear a l\\'esquerra',\n        'justifyCenter': 'Alinear al centre',\n        'justifyRight': 'Alinear a la dreta',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Inserir llista desendreçada',\n        'insertOrderedList': 'Inserir llista endreçada',\n        'outdent': 'Reduïr tabulació del paràgraf',\n        'indent': 'Augmentar tabulació del paràgraf',\n        'formatPara': 'Canviar l\\'estil del bloc com a un paràgraf (etiqueta P)',\n        'formatH1': 'Canviar l\\'estil del bloc com a un H1',\n        'formatH2': 'Canviar l\\'estil del bloc com a un H2',\n        'formatH3': 'Canviar l\\'estil del bloc com a un H3',\n        'formatH4': 'Canviar l\\'estil del bloc com a un H4',\n        'formatH5': 'Canviar l\\'estil del bloc com a un H5',\n        'formatH6': 'Canviar l\\'estil del bloc com a un H6',\n        'insertHorizontalRule': 'Inserir una línia horitzontal',\n        'linkDialog.show': 'Mostrar panel d\\'enllaços'\n      },\n      history: {\n        undo: 'Desfer',\n        redo: 'Refer'\n      },\n      specialChar: {\n        specialChar: 'CARÀCTERS ESPECIALS',\n        select: 'Selecciona caràcters especials'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-cs-CZ.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'cs-CZ': {\n      font: {\n        bold: 'Tučné',\n        italic: 'Kurzíva',\n        underline: 'Podtržené',\n        clear: 'Odstranit styl písma',\n        height: 'Výška řádku',\n        strikethrough: 'Přeškrtnuté',\n        size: 'Velikost písma'\n      },\n      image: {\n        image: 'Obrázek',\n        insert: 'Vložit obrázek',\n        resizeFull: 'Původní velikost',\n        resizeHalf: 'Poloviční velikost',\n        resizeQuarter: 'Čtvrteční velikost',\n        floatLeft: 'Umístit doleva',\n        floatRight: 'Umístit doprava',\n        floatNone: 'Neobtékat textem',\n        dragImageHere: 'Přetáhnout sem obrázek',\n        selectFromFiles: 'Vybrat soubor',\n        url: 'URL obrázku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Odkaz videa',\n        insert: 'Vložit video',\n        url: 'URL videa?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion nebo Youku)'\n      },\n      link: {\n        link: 'Odkaz',\n        insert: 'Vytvořit odkaz',\n        unlink: 'Zrušit odkaz',\n        edit: 'Upravit',\n        textToDisplay: 'Zobrazovaný text',\n        url: 'Na jaké URL má tento odkaz vést?',\n        openInNewWindow: 'Otevřít v novém okně'\n      },\n      table: {\n        table: 'Tabulka'\n      },\n      hr: {\n        insert: 'Vložit vodorovnou čáru'\n      },\n      style: {\n        style: 'Styl',\n        p: 'Normální',\n        blockquote: 'Citace',\n        pre: 'Kód',\n        h1: 'Nadpis 1',\n        h2: 'Nadpis 2',\n        h3: 'Nadpis 3',\n        h4: 'Nadpis 4',\n        h5: 'Nadpis 5',\n        h6: 'Nadpis 6'\n      },\n      lists: {\n        unordered: 'Odrážkový seznam',\n        ordered: 'Číselný seznam'\n      },\n      options: {\n        help: 'Nápověda',\n        fullscreen: 'Celá obrazovka',\n        codeview: 'HTML kód'\n      },\n      paragraph: {\n        paragraph: 'Odstavec',\n        outdent: 'Zvětšit odsazení',\n        indent: 'Zmenšit odsazení',\n        left: 'Zarovnat doleva',\n        center: 'Zarovnat na střed',\n        right: 'Zarovnat doprava',\n        justify: 'Zarovnat oboustranně'\n      },\n      color: {\n        recent: 'Aktuální barva',\n        more: 'Další barvy',\n        background: 'Barva pozadí',\n        foreground: 'Barva písma',\n        transparent: 'Průhlednost',\n        setTransparent: 'Nastavit průhlednost',\n        reset: 'Obnovit',\n        resetToDefault: 'Obnovit výchozí'\n      },\n      shortcut: {\n        shortcuts: 'Klávesové zkratky',\n        close: 'Zavřít',\n        textFormatting: 'Formátování textu',\n        action: 'Akce',\n        paragraphFormatting: 'Formátování odstavce',\n        documentStyle: 'Styl dokumentu'\n      },\n      history: {\n        undo: 'Krok vzad',\n        redo: 'Krok vpřed'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-da-DK.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'da-DK': {\n      font: {\n        bold: 'Fed',\n        italic: 'Kursiv',\n        underline: 'Understreget',\n        clear: 'Fjern formatering',\n        height: 'Højde',\n        name: 'Skrifttype',\n        strikethrough: 'Gennemstreget',\n        subscript: 'Sænket skrift',\n        superscript: 'Hævet skrift',\n        size: 'Skriftstørrelse'\n      },\n      image: {\n        image: 'Billede',\n        insert: 'Indsæt billede',\n        resizeFull: 'Original størrelse',\n        resizeHalf: 'Halv størrelse',\n        resizeQuarter: 'Kvart størrelse',\n        floatLeft: 'Venstrestillet',\n        floatRight: 'Højrestillet',\n        floatNone: 'Fjern formatering',\n        shapeRounded: 'Form: Runde kanter',\n        shapeCircle: 'Form: Cirkel',\n        shapeThumbnail: 'Form: Miniature',\n        shapeNone: 'Form: Ingen',\n        dragImageHere: 'Træk billede hertil',\n        dropImage: 'Slip billede',\n        selectFromFiles: 'Vælg billed-fil',\n        maximumFileSize: 'Maks fil størrelse',\n        maximumFileSizeError: 'Filen er større end maks tilladte fil størrelse!',\n        url: 'Billede URL',\n        remove: 'Fjern billede'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Indsæt Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Indsæt link',\n        unlink: 'Fjern link',\n        edit: 'Rediger',\n        textToDisplay: 'Visningstekst',\n        url: 'Hvor skal linket pege hen?',\n        openInNewWindow: 'Åbn i nyt vindue'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Indsæt horisontal linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Kode',\n        h1: 'Overskrift 1',\n        h2: 'Overskrift 2',\n        h3: 'Overskrift 3',\n        h4: 'Overskrift 4',\n        h5: 'Overskrift 5',\n        h6: 'Overskrift 6'\n      },\n      lists: {\n        unordered: 'Punktopstillet liste',\n        ordered: 'Nummereret liste'\n      },\n      options: {\n        help: 'Hjælp',\n        fullscreen: 'Fuld skærm',\n        codeview: 'HTML-Visning'\n      },\n      paragraph: {\n        paragraph: 'Afsnit',\n        outdent: 'Formindsk indryk',\n        indent: 'Forøg indryk',\n        left: 'Venstrestillet',\n        center: 'Centreret',\n        right: 'Højrestillet',\n        justify: 'Blokjuster'\n      },\n      color: {\n        recent: 'Nyligt valgt farve',\n        more: 'Flere farver',\n        background: 'Baggrund',\n        foreground: 'Forgrund',\n        transparent: 'Transparent',\n        setTransparent: 'Sæt transparent',\n        reset: 'Nulstil',\n        resetToDefault: 'Gendan standardindstillinger'\n      },\n      shortcut: {\n        shortcuts: 'Genveje',\n        close: 'Luk',\n        textFormatting: 'Tekstformatering',\n        action: 'Handling',\n        paragraphFormatting: 'Afsnitsformatering',\n        documentStyle: 'Dokumentstil'\n      },\n      history: {\n        undo: 'Fortryd',\n        redo: 'Annuller fortryd'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-de-DE.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'de-DE': {\n      font: {\n        bold: 'Fett',\n        italic: 'Kursiv',\n        underline: 'Unterstreichen',\n        clear: 'Zurücksetzen',\n        height: 'Zeilenhöhe',\n        strikethrough: 'Durchgestrichen',\n        size: 'Schriftgröße'\n      },\n      image: {\n        image: 'Grafik',\n        insert: 'Grafik einfügen',\n        resizeFull: 'Originalgröße',\n        resizeHalf: 'Größe 1/2',\n        resizeQuarter: 'Größe 1/4',\n        floatLeft: 'Linksbündig',\n        floatRight: 'Rechtsbündig',\n        floatNone: 'Kein Textfluss',\n        shapeRounded: 'Rahmen: Abgerundet',\n        shapeCircle: 'Rahmen: Kreisförmig',\n        shapeThumbnail: 'Rahmen: Thumbnail',\n        shapeNone: 'Kein Rahmen',\n        dragImageHere: 'Ziehen Sie ein Bild mit der Maus hierher',\n        selectFromFiles: 'Wählen Sie eine Datei aus',\n        maximumFileSize: 'Maximale Dateigröße',\n        maximumFileSizeError: 'Maximale Dateigröße überschritten',\n        url: 'Grafik URL',\n        remove: 'Grafik entfernen'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Video einfügen',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion oder Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Link einfügen',\n        unlink: 'Link entfernen',\n        edit: 'Editieren',\n        textToDisplay: 'Anzeigetext',\n        url: 'Ziel des Links?',\n        openInNewWindow: 'In einem neuen Fenster öffnen'\n      },\n      table: {\n        table: 'Tabelle'\n      },\n      hr: {\n        insert: 'Eine horizontale Linie einfügen'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Zitat',\n        pre: 'Quellcode',\n        h1: 'Überschrift 1',\n        h2: 'Überschrift 2',\n        h3: 'Überschrift 3',\n        h4: 'Überschrift 4',\n        h5: 'Überschrift 5',\n        h6: 'Überschrift 6'\n      },\n      lists: {\n        unordered: 'Aufzählung',\n        ordered: 'Nummerierung'\n      },\n      options: {\n        help: 'Hilfe',\n        fullscreen: 'Vollbild',\n        codeview: 'HTML-Code anzeigen'\n      },\n      paragraph: {\n        paragraph: 'Absatz',\n        outdent: 'Einzug vergrößern',\n        indent: 'Einzug verkleinern',\n        left: 'Links ausrichten',\n        center: 'Zentriert ausrichten',\n        right: 'Rechts ausrichten',\n        justify: 'Blocksatz'\n      },\n      color: {\n        recent: 'Letzte Farbe',\n        more: 'Mehr Farben',\n        background: 'Hintergrundfarbe',\n        foreground: 'Schriftfarbe',\n        transparent: 'Transparenz',\n        setTransparent: 'Transparenz setzen',\n        reset: 'Zurücksetzen',\n        resetToDefault: 'Auf Standard zurücksetzen'\n      },\n      shortcut: {\n        shortcuts: 'Tastenkürzel',\n        close: 'Schließen',\n        textFormatting: 'Textformatierung',\n        action: 'Aktion',\n        paragraphFormatting: 'Absatzformatierung',\n        documentStyle: 'Dokumentenstil'\n      },\n      history: {\n        undo: 'Rückgängig',\n        redo: 'Wiederholen'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-es-ES.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'es-ES': {\n      font: {\n        bold: 'Negrita',\n        italic: 'Cursiva',\n        underline: 'Subrayado',\n        clear: 'Quitar estilo de fuente',\n        height: 'Altura de línea',\n        name: 'Fuente',\n        strikethrough: 'Tachado',\n        superscript: 'Superíndice',\n        subscript: 'Subíndice',\n        size: 'Tamaño de la fuente'\n      },\n      image: {\n        image: 'Imagen',\n        insert: 'Insertar imagen',\n        resizeFull: 'Redimensionar a tamaño completo',\n        resizeHalf: 'Redimensionar a la mitad',\n        resizeQuarter: 'Redimensionar a un cuarto',\n        floatLeft: 'Flotar a la izquierda',\n        floatRight: 'Flotar a la derecha',\n        floatNone: 'No flotar',\n        shapeRounded: 'Forma: Redondeado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Marco',\n        shapeNone: 'Forma: Ninguna',\n        dragImageHere: 'Arrastrar una imagen o texto aquí',\n        dropImage: 'Suelta la imagen o texto',\n        selectFromFiles: 'Seleccionar desde los archivos',\n        maximumFileSize: 'Tamaño máximo del archivo',\n        maximumFileSizeError: 'Has superado el tamaño máximo del archivo.',\n        url: 'URL de la imagen',\n        remove: 'Eliminar imagen'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link del vídeo',\n        insert: 'Insertar vídeo',\n        url: '¿URL del vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Insertar link',\n        unlink: 'Quitar link',\n        edit: 'Editar',\n        textToDisplay: 'Texto para mostrar',\n        url: '¿Hacia que URL lleva el link?',\n        openInNewWindow: 'Abrir en una nueva ventana'\n      },\n      table: {\n        table: 'Tabla'\n      },\n      hr: {\n        insert: 'Insertar línea horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'p',\n        blockquote: 'Cita',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista desordenada',\n        ordered: 'Lista ordenada'\n      },\n      options: {\n        help: 'Ayuda',\n        fullscreen: 'Pantalla completa',\n        codeview: 'Ver código fuente'\n      },\n      paragraph: {\n        paragraph: 'Párrafo',\n        outdent: 'Menos tabulación',\n        indent: 'Más tabulación',\n        left: 'Alinear a la izquierda',\n        center: 'Alinear al centro',\n        right: 'Alinear a la derecha',\n        justify: 'Justificar'\n      },\n      color: {\n        recent: 'Último color',\n        more: 'Más colores',\n        background: 'Color de fondo',\n        foreground: 'Color de fuente',\n        transparent: 'Transparente',\n        setTransparent: 'Establecer transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar por defecto'\n      },\n      shortcut: {\n        shortcuts: 'Atajos de teclado',\n        close: 'Cerrar',\n        textFormatting: 'Formato de texto',\n        action: 'Acción',\n        paragraphFormatting: 'Formato de párrafo',\n        documentStyle: 'Estilo de documento',\n        extraKeys: 'Teclas adicionales'\n      },\n      help : {\n        'insertParagraph': 'Insertar párrafo',\n        'undo': 'Deshacer última acción',\n        'redo': 'Rehacer última acción',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulación',\n        'bold': 'Establecer estilo negrita',\n        'italic': 'Establecer estilo cursiva',\n        'underline': 'Establecer estilo subrayado',\n        'strikethrough': 'Establecer estilo tachado',\n        'removeFormat': 'Limpiar estilo',\n        'justifyLeft': 'Alinear a la izquierda',\n        'justifyCenter': 'Alinear al centro',\n        'justifyRight': 'Alinear a la derecha',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Insertar lista desordenada',\n        'insertOrderedList': 'Insertar lista ordenada',\n        'outdent': 'Reducir tabulación del párrafo',\n        'indent': 'Aumentar tabulación del párrafo',\n        'formatPara': 'Cambiar estilo del bloque a párrafo (etiqueta P)',\n        'formatH1': 'Cambiar estilo del bloque a H1',\n        'formatH2': 'Cambiar estilo del bloque a H2',\n        'formatH3': 'Cambiar estilo del bloque a H3',\n        'formatH4': 'Cambiar estilo del bloque a H4',\n        'formatH5': 'Cambiar estilo del bloque a H5',\n        'formatH6': 'Cambiar estilo del bloque a H6',\n        'insertHorizontalRule': 'Insertar línea horizontal',\n        'linkDialog.show': 'Mostrar panel enlaces'\n      },\n      history: {\n        undo: 'Deshacer',\n        redo: 'Rehacer'\n      },\n      specialChar: {\n        specialChar: 'CARACTERES ESPECIALES',\n        select: 'Selecciona Caracteres especiales'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-es-EU.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'es-EU': {\n      font: {\n        bold: 'Lodia',\n        italic: 'Etzana',\n        underline: 'Azpimarratua',\n        clear: 'Estiloa kendu',\n        height: 'Lerro altuera',\n        name: 'Tipografia',\n        strikethrough: 'Marratua',\n        size: 'Letren neurria'\n      },\n      image: {\n        image: 'Irudia',\n        insert: 'Irudi bat txertatu',\n        resizeFull: 'Jatorrizko neurrira aldatu',\n        resizeHalf: 'Neurria erdira aldatu',\n        resizeQuarter: 'Neurria laurdenera aldatu',\n        floatLeft: 'Ezkerrean kokatu',\n        floatRight: 'Eskuinean kokatu',\n        floatNone: 'Kokapenik ez ezarri',\n        dragImageHere: 'Irudi bat ezarri hemen',\n        selectFromFiles: 'Zure fitxategi bat aukeratu',\n        url: 'Irudiaren URL helbidea'\n      },\n      video: {\n        video: 'Bideoa',\n        videoLink: 'Bideorako esteka',\n        insert: 'Bideo berri bat txertatu',\n        url: 'Bideoaren URL helbidea',\n        providers: '(YouTube, Vimeo, Vine, Instagram edo DailyMotion)'\n      },\n      link: {\n        link: 'Esteka',\n        insert: 'Esteka bat txertatu',\n        unlink: 'Esteka ezabatu',\n        edit: 'Editatu',\n        textToDisplay: 'Estekaren testua',\n        url: 'Estekaren URL helbidea',\n        openInNewWindow: 'Leiho berri batean ireki'\n      },\n      table: {\n        table: 'Taula' //Tabla\n      },\n      hr: {\n        insert: 'Marra horizontala txertatu' //Insertar línea horizontal\n      },\n      style: {\n        style: 'Estiloa',\n        p: 'p',\n        blockquote: 'Aipamena',\n        pre: 'Kodea',\n        h1: '1. izenburua',\n        h2: '2. izenburua',\n        h3: '3. izenburua',\n        h4: '4. izenburua',\n        h5: '5. izenburua',\n        h6: '6. izenburua'\n      },\n      lists: {\n        unordered: 'Ordenatu gabeko zerrenda',\n        ordered: 'Zerrenda ordenatua'\n      },\n      options: {\n        help: 'Laguntza',\n        fullscreen: 'Pantaila osoa',\n        codeview: 'Kodea ikusi'\n      },\n      paragraph: {\n        paragraph: 'Paragrafoa',\n        outdent: 'Koska txikiagoa',\n        indent: 'Koska handiagoa',\n        left: 'Ezkerrean kokatu',\n        center: 'Erdian kokatu',\n        right: 'Eskuinean kokatu',\n        justify: 'Justifikatu'\n      },\n      color: {\n        recent: 'Azken kolorea',\n        more: 'Kolore gehiago',\n        background: 'Atzeko planoa',\n        foreground: 'Aurreko planoa',\n        transparent: 'Gardena',\n        setTransparent: 'Gardendu',\n        reset: 'Lehengoratu',\n        resetToDefault: 'Berrezarri lehenetsia'\n      },\n      shortcut: {\n        shortcuts: 'Lasterbideak',\n        close: 'Itxi',\n        textFormatting: 'Testuaren formatua',\n        action: 'Ekintza',\n        paragraphFormatting: 'Paragrafoaren formatua',\n        documentStyle: 'Dokumentuaren estiloa'\n      },\n      history: {\n        undo: 'Desegin',\n        redo: 'Berregin'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-fa-IR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'fa-IR': {\n      font: {\n        bold: 'درشت',\n        italic: 'خمیده',\n        underline: 'میان خط',\n        clear: 'پاک کردن فرمت فونت',\n        height: 'فاصله ی خطی',\n        name: 'اسم فونت',\n        strikethrough: 'Strike',\n        size: 'اندازه ی فونت'\n      },\n      image: {\n        image: 'تصویر',\n        insert: 'وارد کردن تصویر',\n        resizeFull: 'تغییر به اندازه ی کامل',\n        resizeHalf: 'تغییر به اندازه نصف',\n        resizeQuarter: 'تغییر به اندازه یک چهارم',\n        floatLeft: 'چسباندن به چپ',\n        floatRight: 'چسباندن به راست',\n        floatNone: 'بدون چسبندگی',\n        dragImageHere: 'یک تصویر را اینجا بکشید',\n        selectFromFiles: 'فایل ها را انتخاب کنید',\n        url: 'آدرس تصویر',\n        remove: 'حذف تصویر'\n      },\n      video: {\n        video: 'ویدیو',\n        videoLink: 'لینک ویدیو',\n        insert: 'افزودن ویدیو',\n        url: 'آدرس ویدیو ؟',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion یا Youku)'\n      },\n      link: {\n        link: 'لینک',\n        insert: 'اضافه کردن لینک',\n        unlink: 'حذف لینک',\n        edit: 'ویرایش',\n        textToDisplay: 'متن جهت نمایش',\n        url: 'این لینک به چه آدرسی باید برود ؟',\n        openInNewWindow: 'در یک پنجره ی جدید باز شود'\n      },\n      table: {\n        table: 'جدول'\n      },\n      hr: {\n        insert: 'افزودن خط افقی'\n      },\n      style: {\n        style: 'استیل',\n        p: 'نرمال',\n        blockquote: 'نقل قول',\n        pre: 'کد',\n        h1: 'سرتیتر 1',\n        h2: 'سرتیتر 2',\n        h3: 'سرتیتر 3',\n        h4: 'سرتیتر 4',\n        h5: 'سرتیتر 5',\n        h6: 'سرتیتر 6'\n      },\n      lists: {\n        unordered: 'لیست غیر ترتیبی',\n        ordered: 'لیست ترتیبی'\n      },\n      options: {\n        help: 'راهنما',\n        fullscreen: 'نمایش تمام صفحه',\n        codeview: 'مشاهده ی کد'\n      },\n      paragraph: {\n        paragraph: 'پاراگراف',\n        outdent: 'کاهش تو رفتگی',\n        indent: 'افزایش تو رفتگی',\n        left: 'چپ چین',\n        center: 'میان چین',\n        right: 'راست چین',\n        justify: 'بلوک چین'\n      },\n      color: {\n        recent: 'رنگ اخیرا استفاده شده',\n        more: 'رنگ بیشتر',\n        background: 'رنگ پس زمینه',\n        foreground: 'رنگ متن',\n        transparent: 'بی رنگ',\n        setTransparent: 'تنظیم حالت بی رنگ',\n        reset: 'بازنشاندن',\n        resetToDefault: 'حالت پیش فرض'\n      },\n      shortcut: {\n        shortcuts: 'دکمه های میان بر',\n        close: 'بستن',\n        textFormatting: 'فرمت متن',\n        action: 'عملیات',\n        paragraphFormatting: 'فرمت پاراگراف',\n        documentStyle: 'استیل سند'\n      },\n      history: {\n        undo: 'واچیدن',\n        redo: 'بازچیدن'\n      }\n    }\n  });\n})(jQuery);\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-fi-FI.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'fi-FI': {\n      font: {\n        bold: 'Lihavoitu',\n        italic: 'Kursiivi',\n        underline: 'Alleviivaa',\n        clear: 'Tyhjennä muotoilu',\n        height: 'Riviväli',\n        name: 'Kirjasintyyppi',\n        strikethrough: 'Yliviivaus',\n        size: 'Kirjasinkoko'\n      },\n      image: {\n        image: 'Kuva',\n        insert: 'Lisää kuva',\n        resizeFull: 'Koko leveys',\n        resizeHalf: 'Puolikas leveys',\n        resizeQuarter: 'Neljäsosa leveys',\n        floatLeft: 'Sijoita vasemmalle',\n        floatRight: 'Sijoita oikealle',\n        floatNone: 'Ei sijoitusta',\n        dragImageHere: 'Vedä kuva tähän',\n        selectFromFiles: 'Valitse tiedostoista',\n        url: 'URL-osoitteen mukaan',\n        remove: 'Poista kuva'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Linkki videoon',\n        insert: 'Lisää video',\n        url: 'Videon URL-osoite?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion tai Youku)'\n      },\n      link: {\n        link: 'Linkki',\n        insert: 'Lisää linkki',\n        unlink: 'Poista linkki',\n        edit: 'Muokkaa',\n        textToDisplay: 'Näytettävä teksti',\n        url: 'Linkin URL-osoite?',\n        openInNewWindow: 'Avaa uudessa ikkunassa'\n      },\n      table: {\n        table: 'Taulukko'\n      },\n      hr: {\n        insert: 'Lisää vaakaviiva'\n      },\n      style: {\n        style: 'Tyyli',\n        p: 'Normaali',\n        blockquote: 'Lainaus',\n        pre: 'Koodi',\n        h1: 'Otsikko 1',\n        h2: 'Otsikko 2',\n        h3: 'Otsikko 3',\n        h4: 'Otsikko 4',\n        h5: 'Otsikko 5',\n        h6: 'Otsikko 6'\n      },\n      lists: {\n        unordered: 'Luettelomerkitty luettelo',\n        ordered: 'Numeroitu luettelo'\n      },\n      options: {\n        help: 'Ohje',\n        fullscreen: 'Koko näyttö',\n        codeview: 'HTML-näkymä'\n      },\n      paragraph: {\n        paragraph: 'Kappale',\n        outdent: 'Pienennä sisennystä',\n        indent: 'Suurenna sisennystä',\n        left: 'Tasaus vasemmalle',\n        center: 'Keskitä',\n        right: 'Tasaus oikealle',\n        justify: 'Tasaa'\n      },\n      color: {\n        recent: 'Viimeisin väri',\n        more: 'Lisää värejä',\n        background: 'Taustaväri',\n        foreground: 'Tekstin väri',\n        transparent: 'Läpinäkyvä',\n        setTransparent: 'Aseta läpinäkyväksi',\n        reset: 'Palauta',\n        resetToDefault: 'Palauta oletusarvoksi'\n      },\n      shortcut: {\n        shortcuts: 'Pikanäppäimet',\n        close: 'Sulje',\n        textFormatting: 'Tekstin muotoilu',\n        action: 'Toiminto',\n        paragraphFormatting: 'Kappaleen muotoilu',\n        documentStyle: 'Asiakirjan tyyli'\n      },\n      history: {\n        undo: 'Kumoa',\n        redo: 'Toista'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-fr-FR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'fr-FR': {\n      font: {\n        bold: 'Gras',\n        italic: 'Italique',\n        underline: 'Souligné',\n        clear: 'Effacer la mise en forme',\n        height: 'Interligne',\n        name: 'Famille de police',\n        strikethrough: 'Barré',\n        superscript: 'Exposant',\n        subscript: 'Indice',\n        size: 'Taille de police'\n      },\n      image: {\n        image: 'Image',\n        insert: 'Insérer une image',\n        resizeFull: 'Taille originale',\n        resizeHalf: 'Redimensionner à 50 %',\n        resizeQuarter: 'Redimensionner à 25 %',\n        floatLeft: 'Aligné à gauche',\n        floatRight: 'Aligné à droite',\n        floatNone: 'Pas d\\'alignement',\n        shapeRounded: 'Forme: Rectangle arrondie',\n        shapeCircle: 'Forme: Cercle',\n        shapeThumbnail: 'Forme: Vignette',\n        shapeNone: 'Forme: Aucune',\n        dragImageHere: 'Faites glisser une image ou un texte dans ce cadre',\n        dropImage: 'Lachez l\\'image ou le texte',\n        selectFromFiles: 'Choisir un fichier',\n        maximumFileSize: 'Taille de fichier maximale',\n        maximumFileSizeError: 'Taille maximale du fichier dépassée',\n        url: 'URL de l\\'image',\n        remove: 'Supprimer l\\'image'\n      },\n      video: {\n        video: 'Vidéo',\n        videoLink: 'Lien vidéo',\n        insert: 'Insérer une vidéo',\n        url: 'URL de la vidéo',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Lien',\n        insert: 'Insérer un lien',\n        unlink: 'Supprimer un lien',\n        edit: 'Modifier',\n        textToDisplay: 'Texte à afficher',\n        url: 'URL du lien',\n        openInNewWindow: 'Ouvrir dans une nouvelle fenêtre'\n      },\n      table: {\n        table: 'Tableau'\n      },\n      hr: {\n        insert: 'Insérer une ligne horizontale'\n      },\n      style: {\n        style: 'Style',\n        p: 'p',\n        blockquote: 'Citation',\n        pre: 'Code source',\n        h1: 'Titre 1',\n        h2: 'Titre 2',\n        h3: 'Titre 3',\n        h4: 'Titre 4',\n        h5: 'Titre 5',\n        h6: 'Titre 6'\n      },\n      lists: {\n        unordered: 'Liste à puces',\n        ordered: 'Liste numérotée'\n      },\n      options: {\n        help: 'Aide',\n        fullscreen: 'Plein écran',\n        codeview: 'Afficher le code HTML'\n      },\n      paragraph: {\n        paragraph: 'Paragraphe',\n        outdent: 'Diminuer le retrait',\n        indent: 'Augmenter le retrait',\n        left: 'Aligner à gauche',\n        center: 'Centrer',\n        right: 'Aligner à droite',\n        justify: 'Justifier'\n      },\n      color: {\n        recent: 'Dernière couleur sélectionnée',\n        more: 'Plus de couleurs',\n        background: 'Couleur de fond',\n        foreground: 'Couleur de police',\n        transparent: 'Transparent',\n        setTransparent: 'Définir la transparence',\n        reset: 'Restaurer',\n        resetToDefault: 'Restaurer la couleur par défaut'\n      },\n      shortcut: {\n        shortcuts: 'Raccourcis',\n        close: 'Fermer',\n        textFormatting: 'Mise en forme du texte',\n        action: 'Action',\n        paragraphFormatting: 'Mise en forme des paragraphes',\n        documentStyle: 'Style du document',\n        extraKeys: 'Touches supplémentaires'\n      },\n      history: {\n        undo: 'Annuler la dernière action',\n        redo: 'Restaurer la dernière action annulée'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-gl-ES.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'gl-ES': {\n      font: {\n        bold: 'Negrita',\n        italic: 'Cursiva',\n        underline: 'Subliñado',\n        clear: 'Quitar estilo de fonte',\n        height: 'Altura de liña',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        superscript: 'Superíndice',\n        subscript: 'Subíndice',\n        size: 'Tamaño da fonte'\n      },\n      image: {\n        image: 'Imaxe',\n        insert: 'Inserir imaxe',\n        resizeFull: 'Redimensionar a tamaño completo',\n        resizeHalf: 'Redimensionar á metade',\n        resizeQuarter: 'Redimensionar a un cuarto',\n        floatLeft: 'Flotar á esquerda',\n        floatRight: 'Flotar á dereita',\n        floatNone: 'Non flotar',\n        shapeRounded: 'Forma: Redondeado',\n        shapeCircle: 'Forma: Círculo',\n        shapeThumbnail: 'Forma: Marco',\n        shapeNone: 'Forma: Ningunha',\n        dragImageHere: 'Arrastrar unha imaxe ou texto aquí',\n        dropImage: 'Solta a imaxe ou texto',\n        selectFromFiles: 'Seleccionar desde os arquivos',\n        maximumFileSize: 'Tamaño máximo do arquivo',\n        maximumFileSizeError: 'Superaches o tamaño máximo do arquivo.',\n        url: 'URL da imaxe',\n        remove: 'Eliminar imaxe'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Ligazón do vídeo',\n        insert: 'Insertar vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, o Youku)'\n      },\n      link: {\n        link: 'Ligazón',\n        insert: 'Inserir Ligazón',\n        unlink: 'Quitar Ligazón',\n        edit: 'Editar',\n        textToDisplay: 'Texto para amosar',\n        url: 'Cara a que URL leva a ligazón?',\n        openInNewWindow: 'Abrir nunha nova xanela'\n      },\n      table: {\n        table: 'Táboa'\n      },\n      hr: {\n        insert: 'Inserir liña horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        normal: 'Normal',\n        blockquote: 'Cita',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista desordenada',\n        ordered: 'Lista ordenada'\n      },\n      options: {\n        help: 'Axuda',\n        fullscreen: 'Pantalla completa',\n        codeview: 'Ver código fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menos tabulación',\n        indent: 'Máis tabulación',\n        left: 'Aliñar á esquerda',\n        center: 'Aliñar ao centro',\n        right: 'Aliñar á dereita',\n        justify: 'Xustificar'\n      },\n      color: {\n        recent: 'Última cor',\n        more: 'Máis cores',\n        background: 'Cor de fondo',\n        foreground: 'Cor de fuente',\n        transparent: 'Transparente',\n        setTransparent: 'Establecer transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar por defecto'\n      },\n      shortcut: {\n        shortcuts: 'Atallos de teclado',\n        close: 'Pechar',\n        textFormatting: 'Formato de texto',\n        action: 'Acción',\n        paragraphFormatting: 'Formato de parágrafo',\n        documentStyle: 'Estilo de documento',\n        extraKeys: 'Teclas adicionais'\n      },\n      help : {\n        'insertParagraph': 'Inserir parágrafo',\n        'undo': 'Desfacer última acción',\n        'redo': 'Refacer última acción',\n        'tab': 'Tabular',\n        'untab': 'Eliminar tabulación',\n        'bold': 'Establecer estilo negrita',\n        'italic': 'Establecer estilo cursiva',\n        'underline': 'Establecer estilo subliñado',\n        'strikethrough': 'Establecer estilo riscado',\n        'removeFormat': 'Limpar estilo',\n        'justifyLeft': 'Aliñar á esquerda',\n        'justifyCenter': 'Aliñar ao centro',\n        'justifyRight': 'Aliñar á dereita',\n        'justifyFull': 'Xustificar',\n        'insertUnorderedList': 'Inserir lista desordenada',\n        'insertOrderedList': 'Inserir lista ordenada',\n        'outdent': 'Reducir tabulación do parágrafo',\n        'indent': 'Aumentar tabulación do parágrafo',\n        'formatPara': 'Mudar estilo do bloque a parágrafo (etiqueta P)',\n        'formatH1': 'Mudar estilo do bloque a H1',\n        'formatH2': 'Mudar estilo do bloque a H2',\n        'formatH3': 'Mudar estilo do bloque a H3',\n        'formatH4': 'Mudar estilo do bloque a H4',\n        'formatH5': 'Mudar estilo do bloque a H5',\n        'formatH6': 'Mudar estilo do bloque a H6',\n        'insertHorizontalRule': 'Inserir liña horizontal',\n        'linkDialog.show': 'Amosar panel ligazóns'\n      },\n      history: {\n        undo: 'Desfacer',\n        redo: 'Refacer'\n      },\n      specialChar: {\n        specialChar: 'CARACTERES ESPECIAIS',\n        select: 'Selecciona Caracteres especiais'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-he-IL.js",
    "content": "﻿(function ($) {\n  $.extend($.summernote.lang, {\n    'he-IL': {\n      font: {\n        bold: 'מודגש',\n        italic: 'נטוי',\n        underline: 'קו תחתון',\n        clear: 'נקה עיצוב',\n        height: 'גובה',\n        name: 'גופן',\n        strikethrough: 'קו חוצה',\n        subscript: 'כתב תחתי',\n        superscript: 'כתב עילי',\n        size: 'גודל גופן'\n      },\n      image: {\n        image: 'תמונה',\n        insert: 'הוסף תמונה',\n        resizeFull: 'גודל מלא',\n        resizeHalf: 'להקטין לחצי',\n        resizeQuarter: 'להקטין לרבע',\n        floatLeft: 'יישור לשמאל',\n        floatRight: 'יישור לימין',\n        floatNone: 'ישר',\n        dragImageHere: 'גרור תמונה לכאן',\n        selectFromFiles: 'בחר מתוך קבצים',\n        url: 'נתיב לתמונה',\n        remove: 'הסר תמונה'\n      },\n      video: {\n        video: 'סרטון',\n        videoLink: 'קישור לסרטון',\n        insert: 'הוסף סרטון',\n        url: 'קישור לסרטון',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion או Youku)'\n      },\n      link: {\n        link: 'קישור',\n        insert: 'הוסף קישור',\n        unlink: 'הסר קישור',\n        edit: 'ערוך',\n        textToDisplay: 'טקסט להציג',\n        url: 'קישור',\n        openInNewWindow: 'פתח בחלון חדש'\n      },\n      table: {\n        table: 'טבלה'\n      },\n      hr: {\n        insert: 'הוסף קו'\n      },\n      style: {\n        style: 'עיצוב',\n        p: 'טקסט רגיל',\n        blockquote: 'ציטוט',\n        pre: 'קוד',\n        h1: 'כותרת 1',\n        h2: 'כותרת 2',\n        h3: 'כותרת 3',\n        h4: 'כותרת 4',\n        h5: 'כותרת 5',\n        h6: 'כותרת 6'\n      },\n      lists: {\n        unordered: 'רשימת תבליטים',\n        ordered: 'רשימה ממוספרת'\n      },\n      options: {\n        help: 'עזרה',\n        fullscreen: 'מסך מלא',\n        codeview: 'תצוגת קוד'\n      },\n      paragraph: {\n        paragraph: 'פסקה',\n        outdent: 'הקטן כניסה',\n        indent: 'הגדל כניסה',\n        left: 'יישור לשמאל',\n        center: 'יישור למרכז',\n        right: 'יישור לימין',\n        justify: 'מיושר'\n      },\n      color: {\n        recent: 'צבע טקסט אחרון',\n        more: 'עוד צבעים',\n        background: 'צבע רקע',\n        foreground: 'צבע טקסט',\n        transparent: 'שקוף',\n        setTransparent: 'קבע כשקוף',\n        reset: 'איפוס',\n        resetToDefault: 'אפס לברירת מחדל'\n      },\n      shortcut: {\n        shortcuts: 'קיצורי מקלדת',\n        close: 'סגור',\n        textFormatting: 'עיצוב הטקסט',\n        action: 'פעולה',\n        paragraphFormatting: 'סגנונות פסקה',\n        documentStyle: 'עיצוב המסמך',\n        extraKeys: 'קיצורים נוספים'\n      },\n      history: {\n        undo: 'בטל פעולה',\n        redo: 'בצע שוב'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-hr-HR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'hr-HR': {\n      font: {\n        bold: 'Podebljano',\n        italic: 'Kurziv',\n        underline: 'Podvučeno',\n        clear: 'Ukloni stilove fonta',\n        height: 'Visina linije',\n        strikethrough: 'Precrtano',\n        size: 'Veličina fonta'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Ubaci sliku',\n        resizeFull: 'Puna veličina',\n        resizeHalf: 'Umanji na 50%',\n        resizeQuarter: 'Umanji na 25%',\n        floatLeft: 'Poravnaj lijevo',\n        floatRight: 'Poravnaj desno',\n        floatNone: 'Bez poravnanja',\n        dragImageHere: 'Povuci sliku ovdje',\n        selectFromFiles: 'Izaberi iz datoteke',\n        url: 'Adresa slike',\n        remove: 'Ukloni sliku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Veza na video',\n        insert: 'Ubaci video',\n        url: 'URL video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'\n      },\n      link: {\n        link: 'Veza',\n        insert: 'Ubaci vezu',\n        unlink: 'Ukloni vezu',\n        edit: 'Uredi',\n        textToDisplay: 'Tekst za prikaz',\n        url: 'Internet adresa',\n        openInNewWindow: 'Otvori u novom prozoru'\n      },\n      table: {\n        table: 'Tablica'\n      },\n      hr: {\n        insert: 'Ubaci horizontalnu liniju'\n      },\n      style: {\n        style: 'Stil',\n        p: 'pni',\n        blockquote: 'Citat',\n        pre: 'Kôd',\n        h1: 'Naslov 1',\n        h2: 'Naslov 2',\n        h3: 'Naslov 3',\n        h4: 'Naslov 4',\n        h5: 'Naslov 5',\n        h6: 'Naslov 6'\n      },\n      lists: {\n        unordered: 'Obična lista',\n        ordered: 'Numerirana lista'\n      },\n      options: {\n        help: 'Pomoć',\n        fullscreen: 'Preko cijelog ekrana',\n        codeview: 'Izvorni kôd'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Smanji uvlačenje',\n        indent: 'Povećaj uvlačenje',\n        left: 'Poravnaj lijevo',\n        center: 'Centrirano',\n        right: 'Poravnaj desno',\n        justify: 'Poravnaj obostrano'\n      },\n      color: {\n        recent: 'Posljednja boja',\n        more: 'Više boja',\n        background: 'Boja pozadine',\n        foreground: 'Boja teksta',\n        transparent: 'Prozirna',\n        setTransparent: 'Prozirna',\n        reset: 'Poništi',\n        resetToDefault: 'Podrazumijevana'\n      },\n      shortcut: {\n        shortcuts: 'Prečice s tipkovnice',\n        close: 'Zatvori',\n        textFormatting: 'Formatiranje teksta',\n        action: 'Akcija',\n        paragraphFormatting: 'Formatiranje paragrafa',\n        documentStyle: 'Stil dokumenta',\n        extraKeys: 'Dodatne kombinacije'\n      },\n      history: {\n        undo: 'Poništi',\n        redo: 'Ponovi'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-hu-HU.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'hu-HU': {\n      font: {\n        bold: 'Félkövér',\n        italic: 'Dőlt',\n        underline: 'Aláhúzott',\n        clear: 'Formázás törlése',\n        height: 'Sorköz',\n        name: 'Betűtípus',\n        strikethrough: 'Áthúzott',\n        size: 'Betűméret'\n      },\n      image: {\n        image: 'Kép',\n        insert: 'Kép beszúrása',\n        resizeFull: 'Átméretezés teljes méretre',\n        resizeHalf: 'Átméretezés felére',\n        resizeQuarter: 'Átméretezés negyedére',\n        floatLeft: 'Igazítás balra',\n        floatRight: 'Igazítás jobbra',\n        floatNone: 'Igazítás törlése',\n        dragImageHere: 'Ide húzhat képet vagy szöveget',\n        dropImage: 'Engedje el a képet vagy szöveget',\n        selectFromFiles: 'Fájlok kiválasztása',\n        url: 'Kép URL címe',\n        remove: 'Kép törlése'\n      },\n      video: {\n        video: 'Videó',\n        videoLink: 'Videó hivatkozás',\n        insert: 'Videó beszúrása',\n        url: 'Videó URL címe',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion vagy Youku)'\n      },\n      link: {\n        link: 'Hivatkozás',\n        insert: 'Hivatkozás beszúrása',\n        unlink: 'Hivatkozás megszüntetése',\n        edit: 'Szerkesztés',\n        textToDisplay: 'Megjelenítendő szöveg',\n        url: 'Milyen URL címre hivatkozzon?',\n        openInNewWindow: 'Megnyitás új ablakban'\n      },\n      table: {\n        table: 'Táblázat'\n      },\n      hr: {\n        insert: 'Elválasztó vonal beszúrása'\n      },\n      style: {\n        style: 'Stílus',\n        p: 'Normál',\n        blockquote: 'Idézet',\n        pre: 'Kód',\n        h1: 'Fejléc 1',\n        h2: 'Fejléc 2',\n        h3: 'Fejléc 3',\n        h4: 'Fejléc 4',\n        h5: 'Fejléc 5',\n        h6: 'Fejléc 6'\n      },\n      lists: {\n        unordered: 'Listajeles lista',\n        ordered: 'Számozott lista'\n      },\n      options: {\n        help: 'Súgó',\n        fullscreen: 'Teljes képernyő',\n        codeview: 'Kód nézet'\n      },\n      paragraph: {\n        paragraph: 'Bekezdés',\n        outdent: 'Behúzás csökkentése',\n        indent: 'Behúzás növelése',\n        left: 'Igazítás balra',\n        center: 'Igazítás középre',\n        right: 'Igazítás jobbra',\n        justify: 'Sorkizárt'\n      },\n      color: {\n        recent: 'Jelenlegi szín',\n        more: 'További színek',\n        background: 'Háttérszín',\n        foreground: 'Betűszín',\n        transparent: 'Átlátszó',\n        setTransparent: 'Átlászóság beállítása',\n        reset: 'Visszaállítás',\n        resetToDefault: 'Alaphelyzetbe állítás'\n      },\n      shortcut: {\n        shortcuts: 'Gyorsbillentyű',\n        close: 'Bezárás',\n        textFormatting: 'Szöveg formázása',\n        action: 'Művelet',\n        paragraphFormatting: 'Bekezdés formázása',\n        documentStyle: 'Dokumentumstílus'\n      },\n      help: {\n        'insertParagraph': 'Új bekezdés',\n        'undo': 'Visszavonás',\n        'redo': 'Újra',\n        'tab': 'Behúzás növelése',\n        'untab': 'Behúzás csökkentése',\n        'bold': 'Félkövérre állítás',\n        'italic': 'Dőltre állítás',\n        'underline': 'Aláhúzás',\n        'strikethrough': 'Áthúzás',\n        'removeFormat': 'Formázás törlése',\n        'justifyLeft': 'Balra igazítás',\n        'justifyCenter': 'Középre igazítás',\n        'justifyRight': 'Jobbra igazítás',\n        'justifyFull': 'Sorkizárt',\n        'insertUnorderedList': 'Számozatlan lista be/ki',\n        'insertOrderedList': 'Számozott lista be/ki',\n        'outdent': 'Jelenlegi bekezdés behúzásának megszüntetése',\n        'indent': 'Jelenlegi bekezdés behúzása',\n        'formatPara': 'Blokk formázása bekezdésként (P tag)',\n        'formatH1': 'Blokk formázása, mint Fejléc 1',\n        'formatH2': 'Blokk formázása, mint Fejléc 2',\n        'formatH3': 'Blokk formázása, mint Fejléc 3',\n        'formatH4': 'Blokk formázása, mint Fejléc 4',\n        'formatH5': 'Blokk formázása, mint Fejléc 5',\n        'formatH6': 'Blokk formázása, mint Fejléc 6',\n        'insertHorizontalRule': 'Vízszintes vonal beszúrása',\n        'linkDialog.show': 'Link párbeszédablak megjelenítése'\n      },\n      history: {\n        undo: 'Visszavonás',\n        redo: 'Újra'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-id-ID.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'id-ID': {\n      font: {\n        bold: 'Tebal',\n        italic: 'Miring',\n        underline: 'Garis bawah',\n        clear: 'Bersihkan gaya',\n        height: 'Jarak baris',\n        strikethrough: 'Coret',\n        size: 'Ukuran font'\n      },\n      image: {\n        image: 'Gambar',\n        insert: 'Sisipkan gambar',\n        resizeFull: 'Ukuran penuh',\n        resizeHalf: 'Ukuran 50%',\n        resizeQuarter: 'Ukuran 25%',\n        floatLeft: 'Rata kiri',\n        floatRight: 'Rata kanan',\n        floatNone: 'Tidak ada perataan',\n        dragImageHere: 'Tarik gambar pada area ini',\n        selectFromFiles: 'Pilih gambar dari berkas',\n        url: 'URL gambar',\n        remove: 'Hapus Gambar'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link video',\n        insert: 'Sisipkan video',\n        url: 'Tautan video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion atau Youku)'\n      },\n      link: {\n        link: 'Tautan',\n        insert: 'Tambah tautan',\n        unlink: 'Hapus tautan',\n        edit: 'Edit',\n        textToDisplay: 'Tampilan teks',\n        url: 'Tautan tujuan',\n        openInNewWindow: 'Buka di jendela baru'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Masukkan garis horizontal'\n      },\n      style: {\n        style: 'Gaya',\n        p: 'p',\n        blockquote: 'Kutipan',\n        pre: 'Kode',\n        h1: 'Heading 1',\n        h2: 'Heading 2',\n        h3: 'Heading 3',\n        h4: 'Heading 4',\n        h5: 'Heading 5',\n        h6: 'Heading 6'\n      },\n      lists: {\n        unordered: 'Pencacahan',\n        ordered: 'Penomoran'\n      },\n      options: {\n        help: 'Bantuan',\n        fullscreen: 'Layar penuh',\n        codeview: 'Kode HTML'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Outdent',\n        indent: 'Indent',\n        left: 'Rata kiri',\n        center: 'Rata tengah',\n        right: 'Rata kanan',\n        justify: 'Rata kanan kiri'\n      },\n      color: {\n        recent: 'Warna sekarang',\n        more: 'Selengkapnya',\n        background: 'Warna latar',\n        foreground: 'Warna font',\n        transparent: 'Transparan',\n        setTransparent: 'Atur transparansi',\n        reset: 'Atur ulang',\n        resetToDefault: 'Kembalikan kesemula'\n      },\n      shortcut: {\n        shortcuts: 'Jalan pintas',\n        close: 'Keluar',\n        textFormatting: 'Format teks',\n        action: 'Aksi',\n        paragraphFormatting: 'Format paragraf',\n        documentStyle: 'Gaya dokumen'\n      },\n      history: {\n        undo: 'Kembali',\n        redo: 'Ulang'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-it-IT.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'it-IT': {\n      font: {\n        bold: 'Testo in grassetto',\n        italic: 'Testo in corsivo',\n        underline: 'Testo sottolineato',\n        clear: 'Elimina la formattazione del testo',\n        height: 'Altezza della linea di testo',\n        name: 'Famiglia Font',\n        strikethrough: 'Testo barrato',\n        size: 'Dimensione del carattere'\n      },\n      image: {\n        image: 'Immagine',\n        insert: 'Inserisci Immagine',\n        resizeFull: 'Dimensioni originali',\n        resizeHalf: 'Ridimensiona al 50%',\n        resizeQuarter: 'Ridimensiona al 25%',\n        floatLeft: 'Posiziona a sinistra',\n        floatRight: 'Posiziona a destra',\n        floatNone: 'Nessun posizionamento',\n        dragImageHere: 'Trascina qui un\\'immagine',\n        selectFromFiles: 'Scegli dai Documenti',\n        url: 'URL dell\\'immagine',\n        remove: 'Rimuovi immagine'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Collegamento ad un Video',\n        insert: 'Inserisci Video',\n        url: 'URL del Video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion o Youku)'\n      },\n      link: {\n        link: 'Collegamento',\n        insert: 'Inserisci Collegamento',\n        unlink: 'Elimina collegamento',\n        edit: 'Modifica collegamento',\n        textToDisplay: 'Testo del collegamento',\n        url: 'URL del collegamento',\n        openInNewWindow: 'Apri in una nuova finestra'\n      },\n      table: {\n        table: 'Tabella'\n      },\n      hr: {\n        insert: 'Inserisce una linea di separazione'\n      },\n      style: {\n        style: 'Stili',\n        p: 'pe',\n        blockquote: 'Citazione',\n        pre: 'Codice',\n        h1: 'Titolo 1',\n        h2: 'Titolo 2',\n        h3: 'Titolo 3',\n        h4: 'Titolo 4',\n        h5: 'Titolo 5',\n        h6: 'Titolo 6'\n      },\n      lists: {\n        unordered: 'Elenco non ordinato',\n        ordered: 'Elenco ordinato'\n      },\n      options: {\n        help: 'Aiuto',\n        fullscreen: 'Modalità a tutto schermo',\n        codeview: 'Visualizza codice'\n      },\n      paragraph: {\n        paragraph: 'Paragrafo',\n        outdent: 'Diminuisce il livello di rientro',\n        indent: 'Aumenta il livello di rientro',\n        left: 'Allinea a sinistra',\n        center: 'Centra',\n        right: 'Allinea a destra',\n        justify: 'Giustifica (allinea a destra e sinistra)'\n      },\n      color: {\n        recent: 'Ultimo colore utilizzato',\n        more: 'Altri colori',\n        background: 'Colore di sfondo',\n        foreground: 'Colore',\n        transparent: 'Trasparente',\n        setTransparent: 'Trasparente',\n        reset: 'Reimposta',\n        resetToDefault: 'Reimposta i colori'\n      },\n      shortcut: {\n        shortcuts: 'Scorciatoie da tastiera',\n        close: 'Chiudi',\n        textFormatting: 'Formattazione testo',\n        action: 'Azioni',\n        paragraphFormatting: 'Formattazione paragrafo',\n        documentStyle: 'Stili'\n      },\n      history: {\n        undo: 'Annulla',\n        redo: 'Ripristina'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-ja-JP.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ja-JP': {\n      font: {\n        bold: '太字',\n        italic: '斜体',\n        underline: '下線',\n        clear: 'クリア',\n        height: '文字高',\n        name: 'フォント',\n        strikethrough: '取り消し線',\n        size: '大きさ'\n      },\n      image: {\n        image: '画像',\n        insert: '画像挿入',\n        resizeFull: '最大化',\n        resizeHalf: '1/2',\n        resizeQuarter: '1/4',\n        floatLeft: '左寄せ',\n        floatRight: '右寄せ',\n        floatNone: '寄せ解除',\n        dragImageHere: 'ここに画像をドラッグしてください',\n        selectFromFiles: '画像ファイルを選ぶ',\n        url: 'URLから画像を挿入する',\n        remove: '画像を削除する'\n      },\n      video: {\n        video: '動画',\n        videoLink: '動画リンク',\n        insert: '動画挿入',\n        url: '動画のURL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku)'\n      },\n      link: {\n        link: 'リンク',\n        insert: 'リンク挿入',\n        unlink: 'リンク解除',\n        edit: '編集',\n        textToDisplay: 'リンク文字列',\n        url: 'URLを入力してください',\n        openInNewWindow: '新しいウィンドウで開く'\n      },\n      table: {\n        table: 'テーブル'\n      },\n      hr: {\n        insert: '水平線の挿入'\n      },\n      style: {\n        style: 'スタイル',\n        p: '標準',\n        blockquote: '引用',\n        pre: 'コード',\n        h1: '見出し1',\n        h2: '見出し2',\n        h3: '見出し3',\n        h4: '見出し4',\n        h5: '見出し5',\n        h6: '見出し6'\n      },\n      lists: {\n        unordered: '通常リスト',\n        ordered: '番号リスト'\n      },\n      options: {\n        help: 'ヘルプ',\n        fullscreen: 'フルスクリーン',\n        codeview: 'コード表示'\n      },\n      paragraph: {\n        paragraph: '文章',\n        outdent: '字上げ',\n        indent: '字下げ',\n        left: '左寄せ',\n        center: '中央寄せ',\n        right: '右寄せ',\n        justify: '均等割付'\n      },\n      color: {\n        recent: '現在の色',\n        more: 'もっと見る',\n        background: '背景色',\n        foreground: '文字色',\n        transparent: '透過率',\n        setTransparent: '透過率を設定',\n        reset: '標準',\n        resetToDefault: '標準に戻す'\n      },\n      shortcut: {\n        shortcuts: 'ショートカット',\n        close: '閉じる',\n        textFormatting: '文字フォーマット',\n        action: 'アクション',\n        paragraphFormatting: '文章フォーマット',\n        documentStyle: 'ドキュメント形式'\n      },\n      history: {\n        undo: '元に戻す',\n        redo: 'やり直す'\n      },\n      help: {\n        'insertParagraph': '改行挿入',\n        'undo': '一旦、行った操作を戻す',\n        'redo': '最後のコマンドをやり直す',\n        'tab': 'Tab',\n        'untab': 'タブ戻し',\n        'bold': '太文字',\n        'italic': '斜体',\n        'underline': '下線',\n        'strikethrough': '取り消し線',\n        'removeFormat': '装飾を戻す',\n        'justifyLeft': '左寄せ',\n        'justifyCenter': '真ん中寄せ',\n        'justifyRight': '右寄せ',\n        'justifyFull': 'すべてを整列',\n        'insertUnorderedList': '行頭に●を挿入',\n        'insertOrderedList': '行頭に番号を挿入',\n        'outdent': '字下げを戻す（アウトデント）',\n        'indent': '字下げする（インデント）',\n        'formatPara': '段落(P tag)指定',\n        'formatH1': 'H1指定',\n        'formatH2': 'H2指定',\n        'formatH3': 'H3指定',\n        'formatH4': 'H4指定',\n        'formatH5': 'H5指定',\n        'formatH6': 'H6指定',\n        'insertHorizontalRule': '&lt;hr /&gt;を挿入',\n        'linkDialog.show': 'リンク挿入'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-ko-KR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ko-KR': {\n      font: {\n        bold: '굵게',\n        italic: '기울임꼴',\n        underline: '밑줄',\n        clear: '글자 효과 없애기',\n        height: '줄간격',\n        name: '글꼴',\n        superscript: '위 첨자',\n        subscript: '아래 첨자',\n        strikethrough: '취소선',\n        size: '글자 크기'\n      },\n      image: {\n        image: '사진',\n        insert: '사진 추가',\n        resizeFull: '100% 크기로 변경',\n        resizeHalf: '50% 크기로 변경',\n        resizeQuarter: '25% 크기로 변경',\n        floatLeft: '왼쪽 정렬',\n        floatRight: '오른쪽 정렬',\n        floatNone: '정렬하지 않음',\n        shapeRounded: '스타일: 둥근 모서리',\n        shapeCircle: '스타일: 원형',\n        shapeThumbnail: '스타일: 액자',\n        shapeNone: '스타일: 없음',\n        dragImageHere: '텍스트 혹은 사진을 이곳으로 끌어오세요',\n        dropImage: '텍스트 혹은 사진을 내려놓으세요',\n        selectFromFiles: '파일 선택',\n        url: '사진 URL',\n        remove: '사진 삭제'\n      },\n      video: {\n        video: '동영상',\n        videoLink: '동영상 링크',\n        insert: '동영상 추가',\n        url: '동영상 URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion, Youku 사용 가능)'\n      },\n      link: {\n        link: '링크',\n        insert: '링크 추가',\n        unlink: '링크 삭제',\n        edit: '수정',\n        textToDisplay: '링크에 표시할 내용',\n        url: '이동할 URL',\n        openInNewWindow: '새창으로 열기'\n      },\n      table: {\n        table: '테이블'\n      },\n      hr: {\n        insert: '구분선 추가'\n      },\n      style: {\n        style: '스타일',\n        p: '본문',\n        blockquote: '인용구',\n        pre: '코드',\n        h1: '제목 1',\n        h2: '제목 2',\n        h3: '제목 3',\n        h4: '제목 4',\n        h5: '제목 5',\n        h6: '제목 6'\n      },\n      lists: {\n        unordered: '글머리 기호',\n        ordered: '번호 매기기'\n      },\n      options: {\n        help: '도움말',\n        fullscreen: '전체 화면',\n        codeview: '코드 보기'\n      },\n      paragraph: {\n        paragraph: '문단 정렬',\n        outdent: '내어쓰기',\n        indent: '들여쓰기',\n        left: '왼쪽 정렬',\n        center: '가운데 정렬',\n        right: '오른쪽 정렬',\n        justify: '양쪽 정렬'\n      },\n      color: {\n        recent: '마지막으로 사용한 색',\n        more: '다른 색 선택',\n        background: '배경색',\n        foreground: '글자색',\n        transparent: '투명',\n        setTransparent: '투명',\n        reset: '취소',\n        resetToDefault: '기본 값으로 변경'\n      },\n      shortcut: {\n        shortcuts: '키보드 단축키',\n        close: '닫기',\n        textFormatting: '글자 스타일 적용',\n        action: '기능',\n        paragraphFormatting: '문단 스타일 적용',\n        documentStyle: '문서 스타일 적용'\n      },\n      history: {\n        undo: '실행 취소',\n        redo: '다시 실행'\n      },\n      specialChar: {\n        specialChar: '특수문자',\n        select: '특수문자를 선택하세요'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-lt-LT.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'lt-LT': {\n      font: {\n        bold: 'Paryškintas',\n        italic: 'Kursyvas',\n        underline: 'Pabrėžtas',\n        clear: 'Be formatavimo',\n        height: 'Eilutės aukštis',\n        name: 'Šrifto pavadinimas',\n        strikethrough: 'Perbrauktas',\n        superscript: 'Viršutinis',\n        subscript: 'Indeksas',\n        size: 'Šrifto dydis'\n      },\n      image: {\n        image: 'Paveikslėlis',\n        insert: 'Įterpti paveikslėlį',\n        resizeFull: 'Pilnas dydis',\n        resizeHalf: 'Sumažinti dydį 50%',\n        resizeQuarter: 'Sumažinti dydį 25%',\n        floatLeft: 'Kairinis lygiavimas',\n        floatRight: 'Dešininis lygiavimas',\n        floatNone: 'Jokio lygiavimo',\n        shapeRounded: 'Forma: apvalūs kraštai',\n        shapeCircle: 'Forma: apskritimas',\n        shapeThumbnail: 'Forma: miniatiūra',\n        shapeNone: 'Forma: jokia',\n        dragImageHere: 'Vilkite paveikslėlį čia',\n        selectFromFiles: 'Pasirinkite failą',\n        maximumFileSize: 'Maskimalus failo dydis',\n        maximumFileSizeError: 'Maskimalus failo dydis viršytas!',\n        url: 'Paveikslėlio URL adresas',\n        remove: 'Ištrinti paveikslėlį'\n      },\n      link: {\n        link: 'Nuoroda',\n        insert: 'Įterpti nuorodą',\n        unlink: 'Pašalinti nuorodą',\n        edit: 'Redaguoti',\n        textToDisplay: 'Rodomas tekstas',\n        url: 'Koks URL adresas yra susietas?',\n        openInNewWindow: 'Atidaryti naujame lange'\n      },\n      table: {\n        table: 'Lentelė'\n      },\n      hr: {\n        insert: 'Įterpti horizontalią liniją'\n      },\n      style: {\n        style: 'Stilius',\n        p: 'pus',\n        blockquote: 'Citata',\n        pre: 'Kodas',\n        h1: 'Antraštė 1',\n        h2: 'Antraštė 2',\n        h3: 'Antraštė 3',\n        h4: 'Antraštė 4',\n        h5: 'Antraštė 5',\n        h6: 'Antraštė 6'\n      },\n      lists: {\n        unordered: 'Suženklintasis sąrašas',\n        ordered: 'Sunumeruotas sąrašas'\n      },\n      options: {\n        help: 'Pagalba',\n        fullscreen: 'Viso ekrano režimas',\n        codeview: 'HTML kodo peržiūra'\n      },\n      paragraph: {\n        paragraph: 'Pastraipa',\n        outdent: 'Sumažinti įtrauką',\n        indent: 'Padidinti įtrauką',\n        left: 'Kairinė lygiuotė',\n        center: 'Centrinė lygiuotė',\n        right: 'Dešininė lygiuotė',\n        justify: 'Abipusis išlyginimas'\n      },\n      color: {\n        recent: 'Paskutinė naudota spalva',\n        more: 'Daugiau spalvų',\n        background: 'Fono spalva',\n        foreground: 'Šrifto spalva',\n        transparent: 'Permatoma',\n        setTransparent: 'Nustatyti skaidrumo intensyvumą',\n        reset: 'Atkurti',\n        resetToDefault: 'Atstatyti numatytąją spalvą'\n      },\n      shortcut: {\n        shortcuts: 'Spartieji klavišai',\n        close: 'Uždaryti',\n        textFormatting: 'Teksto formatavimas',\n        action: 'Veiksmas',\n        paragraphFormatting: 'Pastraipos formatavimas',\n        documentStyle: 'Dokumento stilius',\n        extraKeys: 'Papildomi klavišų deriniai'\n      },\n      history: {\n        undo: 'Anuliuoti veiksmą',\n        redo: 'Perdaryti veiksmą'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-lt-LV.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'lv-LV': {\n      font: {\n        bold: 'Treknraksts',\n        italic: 'Kursīvs',\n        underline: 'Pasvītrots',\n        clear: 'Noņemt formatējumu',\n        height: 'Līnijas augstums',\n        name: 'Fonts',\n        strikethrough: 'Nosvītrots',\n        superscript: 'Augšraksts',\n        subscript: 'Apakšraksts',\n        size: 'Fonta lielums'\n      },\n      image: {\n        image: 'Attēls',\n        insert: 'Ievietot attēlu',\n        resizeFull: 'Pilns izmērts',\n        resizeHalf: 'Samazināt 50%',\n        resizeQuarter: 'Samazināt 25%',\n        floatLeft: 'Līdzināt pa kreisi',\n        floatRight: 'Līdzināt pa labi',\n        floatNone: 'Nelīdzināt',\n        shapeRounded: 'Forma: apaļām malām',\n        shapeCircle: 'Forma: aplis',\n        shapeThumbnail: 'Forma: rāmītis',\n        shapeNone: 'Forma: orģināla',\n        dragImageHere: 'Ievēlciet attēlu šeit',\n        selectFromFiles: 'Izvēlēties failu',\n        maximumFileSize: 'Maksimālais faila izmērs',\n        maximumFileSizeError: 'Faila izmērs pārāk liels!',\n        url: 'Attēla URL',\n        remove: 'Dzēst attēlu'\n      },\n      link: {\n        link: 'Saite',\n        insert: 'Ievietot saiti',\n        unlink: 'Noņemt saiti',\n        edit: 'Rediģēt',\n        textToDisplay: 'Saites saturs',\n        url: 'Koks URL adresas yra susietas?',\n        openInNewWindow: 'Atvērt jaunā logā'\n      },\n      table: {\n        table: 'Tabula'\n      },\n      hr: {\n        insert: 'Ievietot līniju'\n      },\n      style: {\n        style: 'Stils',\n        p: 'Parasts',\n        blockquote: 'Citāts',\n        pre: 'Kods',\n        h1: 'Virsraksts h1',\n        h2: 'Virsraksts h2',\n        h3: 'Virsraksts h3',\n        h4: 'Virsraksts h4',\n        h5: 'Virsraksts h5',\n        h6: 'Virsraksts h6'\n      },\n      lists: {\n        unordered: 'Nenumurēts saraksts',\n        ordered: 'Numurēts saraksts'\n      },\n      options: {\n        help: 'Palīdzība',\n        fullscreen: 'Pa visu ekrānu',\n        codeview: 'HTML kods'\n      },\n      paragraph: {\n        paragraph: 'Paragrāfs',\n        outdent: 'Samazināt atkāpi',\n        indent: 'Palielināt atkāpi',\n        left: 'Līdzināt pa kreisi',\n        center: 'Centrēt',\n        right: 'Līdzināt pa labi',\n        justify: 'Līdzināt gar abām malām'\n      },\n      color: {\n        recent: 'Nesen izmantotās',\n        more: 'Citas krāsas',\n        background: 'Fona krāsa',\n        foreground: 'Fonta krāsa',\n        transparent: 'Caurspīdīgs',\n        setTransparent: 'Iestatīt caurspīdīgumu',\n        reset: 'Atjaunot',\n        resetToDefault: 'Atjaunot noklusējumu'\n      },\n      shortcut: {\n        shortcuts: 'Saīsnes',\n        close: 'Aizvērt',\n        textFormatting: 'Teksta formatēšana',\n        action: 'Darbība',\n        paragraphFormatting: 'Paragrāfa formatēšana',\n        documentStyle: 'Dokumenta stils',\n        extraKeys: 'Citas taustiņu kombinācijas'\n      },\n      history: {\n        undo: 'Atsauks (undo)',\n        redo: 'Atkārtot (redo)'\n      },\n      help: {\n        insertParagraph: 'Ievietot Paragrāfu',\n        undo: 'Atcelt iepriekšējo darbību',\n        redo: 'Atkārtot atcelto darbību',\n        tab: 'Atkāpe',\n        untab: 'Samazināt atkāpi',\n        bold: 'Pārvērst tekstu treknrakstā',\n        italic: 'Pārvērst tekstu slīprakstā (kursīvā)',\n        underline: 'Pasvītrot tekstu',\n        strikethrough: 'Nosvītrot tekstu',\n        removeFormat: 'Notīrīt stilu no teksta',\n        justifyLeft: 'Līdzīnāt saturu pa kreisi',\n        justifyCenter: 'Centrēt saturu',\n        justifyRight: 'Līdzīnāt saturu pa labi',\n        justifyFull: 'Izlīdzināt saturu gar abām malām',\n        insertUnorderedList: 'Ievietot nenumurētu sarakstu',\n        insertOrderedList: 'Ievietot numurētu sarakstu',\n        outdent: 'Samazināt/noņemt atkāpi paragrāfam',\n        indent: 'Uzlikt atkāpi paragrāfam',\n        formatPara: 'Mainīt bloka tipu uz (p) Paragrāfu',\n        formatH1: 'Mainīt bloka tipu uz virsrakstu H1',\n        formatH2: 'Mainīt bloka tipu uz virsrakstu H2',\n        formatH3: 'Mainīt bloka tipu uz virsrakstu H3',\n        formatH4: 'Mainīt bloka tipu uz virsrakstu H4',\n        formatH5: 'Mainīt bloka tipu uz virsrakstu H5',\n        formatH6: 'Mainīt bloka tipu uz virsrakstu H6',\n        insertHorizontalRule: 'Ievietot horizontālu līniju',\n        'linkDialog.show': 'Parādīt saites logu'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-nb-NO.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'nb-NO': {\n      font: {\n        bold: 'Fet',\n        italic: 'Kursiv',\n        underline: 'Understrek',\n        clear: 'Fjern formatering',\n        height: 'Linjehøyde',\n        name: 'Skrifttype',\n        strikethrough: 'Gjennomstrek',\n        size: 'Skriftstørrelse'\n      },\n      image: {\n        image: 'Bilde',\n        insert: 'Sett inn bilde',\n        resizeFull: 'Sett full størrelse',\n        resizeHalf: 'Sett halv størrelse',\n        resizeQuarter: 'Sett kvart størrelse',\n        floatLeft: 'Flyt til venstre',\n        floatRight: 'Flyt til høyre',\n        floatNone: 'Fjern flyt',\n        dragImageHere: 'Dra et bilde hit',\n        selectFromFiles: 'Velg fra filer',\n        url: 'Bilde-URL',\n        remove: 'Fjern bilde'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Videolenke',\n        insert: 'Sett inn video',\n        url: 'Video-URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Lenke',\n        insert: 'Sett inn lenke',\n        unlink: 'Fjern lenke',\n        edit: 'Rediger',\n        textToDisplay: 'Visningstekst',\n        url: 'Til hvilken URL skal denne lenken peke?',\n        openInNewWindow: 'Åpne i nytt vindu'\n      },\n      table: {\n        table: 'Tabell'\n      },\n      hr: {\n        insert: 'Sett inn horisontal linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Sitat',\n        pre: 'Kode',\n        h1: 'Overskrift 1',\n        h2: 'Overskrift 2',\n        h3: 'Overskrift 3',\n        h4: 'Overskrift 4',\n        h5: 'Overskrift 5',\n        h6: 'Overskrift 6'\n      },\n      lists: {\n        unordered: 'Punktliste',\n        ordered: 'Nummerert liste'\n      },\n      options: {\n        help: 'Hjelp',\n        fullscreen: 'Fullskjerm',\n        codeview: 'HTML-visning'\n      },\n      paragraph: {\n        paragraph: 'Avsnitt',\n        outdent: 'Tilbakerykk',\n        indent: 'Innrykk',\n        left: 'Venstrejustert',\n        center: 'Midtstilt',\n        right: 'Høyrejustert',\n        justify: 'Blokkjustert'\n      },\n      color: {\n        recent: 'Nylig valgt farge',\n        more: 'Flere farger',\n        background: 'Bakgrunnsfarge',\n        foreground: 'Skriftfarge',\n        transparent: 'Gjennomsiktig',\n        setTransparent: 'Sett gjennomsiktig',\n        reset: 'Nullstill',\n        resetToDefault: 'Nullstill til standard'\n      },\n      shortcut: {\n        shortcuts: 'Hurtigtaster',\n        close: 'Lukk',\n        textFormatting: 'Tekstformatering',\n        action: 'Handling',\n        paragraphFormatting: 'Avsnittsformatering',\n        documentStyle: 'Dokumentstil'\n      },\n      history: {\n        undo: 'Angre',\n        redo: 'Gjør om'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-nl-NL.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'nl-NL': {\n      font: {\n        bold: 'Vet',\n        italic: 'Cursief',\n        underline: 'Onderstrepen',\n        clear: 'Stijl verwijderen',\n        height: 'Regelhoogte',\n        name: 'Lettertype',\n        strikethrough: 'Doorhalen',\n        size: 'Tekstgrootte'\n      },\n      image: {\n        image: 'Afbeelding',\n        insert: 'Afbeelding invoegen',\n        resizeFull: 'Volledige breedte',\n        resizeHalf: 'Halve breedte',\n        resizeQuarter: 'Kwart breedte',\n        floatLeft: 'Links uitlijnen',\n        floatRight: 'Rechts uitlijnen',\n        floatNone: 'Geen uitlijning',\n        dragImageHere: 'Sleep hier een afbeelding naar toe',\n        selectFromFiles: 'Selecteer een bestand',\n        url: 'URL van de afbeelding',\n        remove: 'Verwijder afbeelding'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video link',\n        insert: 'Video invoegen',\n        url: 'URL van de video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion of Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Link invoegen',\n        unlink: 'Link verwijderen',\n        edit: 'Wijzigen',\n        textToDisplay: 'Tekst van link',\n        url: 'Naar welke URL moet deze link verwijzen?',\n        openInNewWindow: 'Open in nieuw venster'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Horizontale lijn invoegen'\n      },\n      style: {\n        style: 'Stijl',\n        p: 'Normaal',\n        blockquote: 'Quote',\n        pre: 'Code',\n        h1: 'Kop 1',\n        h2: 'Kop 2',\n        h3: 'Kop 3',\n        h4: 'Kop 4',\n        h5: 'Kop 5',\n        h6: 'Kop 6'\n      },\n      lists: {\n        unordered: 'Ongeordende lijst',\n        ordered: 'Geordende lijst'\n      },\n      options: {\n        help: 'Help',\n        fullscreen: 'Volledig scherm',\n        codeview: 'Bekijk Code'\n      },\n      paragraph: {\n        paragraph: 'Paragraaf',\n        outdent: 'Inspringen verkleinen',\n        indent: 'Inspringen vergroten',\n        left: 'Links uitlijnen',\n        center: 'Centreren',\n        right: 'Rechts uitlijnen',\n        justify: 'Uitvullen'\n      },\n      color: {\n        recent: 'Recente kleur',\n        more: 'Meer kleuren',\n        background: 'Achtergrond kleur',\n        foreground: 'Tekst kleur',\n        transparent: 'Transparant',\n        setTransparent: 'Transparant',\n        reset: 'Standaard',\n        resetToDefault: 'Standaard kleur'\n      },\n      shortcut: {\n        shortcuts: 'Toetsencombinaties',\n        close: 'sluiten',\n        textFormatting: 'Tekststijlen',\n        action: 'Acties',\n        paragraphFormatting: 'Paragraafstijlen',\n        documentStyle: 'Documentstijlen'\n      },\n      history: {\n        undo: 'Ongedaan maken',\n        redo: 'Opnieuw doorvoeren'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-pl-PL.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'pl-PL': {\n      font: {\n        bold: 'Pogrubienie',\n        italic: 'Pochylenie',\n        underline: 'Podkreślenie',\n        clear: 'Usuń formatowanie',\n        height: 'Interlinia',\n        name: 'Czcionka',\n        strikethrough: 'Przekreślenie',\n        size: 'Rozmiar'\n      },\n      image: {\n        image: 'Grafika',\n        insert: 'Wstaw grafikę',\n        resizeFull: 'Zmień rozmiar na 100%',\n        resizeHalf: 'Zmień rozmiar na 50%',\n        resizeQuarter: 'Zmień rozmiar na 25%',\n        floatLeft: 'Po lewej',\n        floatRight: 'Po prawej',\n        floatNone: 'Równo z tekstem',\n        shapeRounded: 'Kształt: zaokrąglone',\n        shapeCircle: 'Kształt: okrąg',\n        shapeThumbnail: 'Kształt: miniatura',\n        shapeNone: 'Kształt: brak',\n        dragImageHere: 'Przeciągnij grafikę lub tekst tutaj',\n        dropImage: 'Przeciągnij grafikę lub tekst',\n        selectFromFiles: 'Wybierz z dysku',\n        maximumFileSize: 'Limit wielkości pliku',\n        maximumFileSizeError: 'Przekroczono limit wielkości pliku.',\n        url: 'Adres URL grafiki',\n        remove: 'Usuń grafikę'\n      },\n      video: {\n        video: 'Wideo',\n        videoLink: 'Adres wideo',\n        insert: 'Wstaw wideo',\n        url: 'Adres wideo',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion lub Youku)'\n      },\n      link: {\n        link: 'Odnośnik',\n        insert: 'Wstaw odnośnik',\n        unlink: 'Usuń odnośnik',\n        edit: 'Edytuj',\n        textToDisplay: 'Tekst do wyświetlenia',\n        url: 'Na jaki adres URL powinien przenosić ten odnośnik?',\n        openInNewWindow: 'Otwórz w nowym oknie'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Wstaw poziomą linię'\n      },\n      style: {\n        style: 'Style',\n        p: 'pny',\n        blockquote: 'Cytat',\n        pre: 'Kod',\n        h1: 'Nagłówek 1',\n        h2: 'Nagłówek 2',\n        h3: 'Nagłówek 3',\n        h4: 'Nagłówek 4',\n        h5: 'Nagłówek 5',\n        h6: 'Nagłówek 6'\n      },\n      lists: {\n        unordered: 'Lista wypunktowana',\n        ordered: 'Lista numerowana'\n      },\n      options: {\n        help: 'Pomoc',\n        fullscreen: 'Pełny ekran',\n        codeview: 'Źródło'\n      },\n      paragraph: {\n        paragraph: 'Akapit',\n        outdent: 'Zmniejsz wcięcie',\n        indent: 'Zwiększ wcięcie',\n        left: 'Wyrównaj do lewej',\n        center: 'Wyrównaj do środka',\n        right: 'Wyrównaj do prawej',\n        justify: 'Wyrównaj do lewej i prawej'\n      },\n      color: {\n        recent: 'Ostani kolor',\n        more: 'Więcej kolorów',\n        background: 'Tło',\n        foreground: 'Czcionka',\n        transparent: 'Przeźroczysty',\n        setTransparent: 'Przeźroczyste',\n        reset: 'Reset',\n        resetToDefault: 'Domyślne'\n      },\n      shortcut: {\n        shortcuts: 'Skróty klawiaturowe',\n        close: 'Zamknij',\n        textFormatting: 'Formatowanie tekstu',\n        action: 'Akcja',\n        paragraphFormatting: 'Formatowanie akapitu',\n        documentStyle: 'Styl dokumentu',\n        extraKeys: 'Dodatkowe klawisze'\n      },\n      history: {\n        undo: 'Cofnij',\n        redo: 'Ponów'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-pt-BR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'pt-BR': {\n      font: {\n        bold: 'Negrito',\n        italic: 'Itálico',\n        underline: 'Sublinhado',\n        clear: 'Remover estilo da fonte',\n        height: 'Altura da linha',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        size: 'Tamanho da fonte'\n      },\n      image: {\n        image: 'Imagem',\n        insert: 'Inserir imagem',\n        resizeFull: 'Redimensionar Completamente',\n        resizeHalf: 'Redimensionar pela Metade',\n        resizeQuarter: 'Redimensionar um Quarto',\n        floatLeft: 'Flutuar para Esquerda',\n        floatRight: 'Flutuar para Direira',\n        floatNone: 'Não Flutuar',\n        dragImageHere: 'Arraste uma imagem para cá',\n        selectFromFiles: 'Selecione a partir dos arquivos',\n        url: 'URL da imagem'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link para vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserir link',\n        unlink: 'Remover link',\n        edit: 'Editar',\n        textToDisplay: 'Texto para exibir',\n        url: 'Para qual URL esse link leva?',\n        openInNewWindow: 'Abrir em uma nova janela'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Inserir linha horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        normal: 'Normal',\n        blockquote: 'Citação',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista com marcadores',\n        ordered: 'Lista numerada'\n      },\n      options: {\n        help: 'Ajuda',\n        fullscreen: 'Tela cheia',\n        codeview: 'Ver código-fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menor tabulação',\n        indent: 'Maior tabulação',\n        left: 'Alinhar à esquerda',\n        center: 'Alinhar ao centro',\n        right: 'Alinha à direita',\n        justify: 'Justificado'\n      },\n      color: {\n        recent: 'Cor recente',\n        more: 'Mais cores',\n        background: 'Fundo',\n        foreground: 'Fonte',\n        transparent: 'Transparente',\n        setTransparent: 'Fundo transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar padrão'\n      },\n      shortcut: {\n        shortcuts: 'Atalhos do teclado',\n        close: 'Fechar',\n        textFormatting: 'Formatação de texto',\n        action: 'Ação',\n        paragraphFormatting: 'Formatação de parágrafo',\n        documentStyle: 'Estilo de documento'\n      },\n      history: {\n        undo: 'Desfazer',\n        redo: 'Refazer'\n      },\n      help: {\n        'insertParagraph': 'Inserir Parágrafo',\n        'undo': 'Desfazer o último comando',\n        'redo': 'Refazer o último comando',\n        'tab': 'Tab',\n        'untab': 'Desfazer tab',\n        'bold': 'Colocar em negrito',\n        'italic': 'Colocar em itálico',\n        'underline': 'Sublinhado',\n        'strikethrough': 'Tachado',\n        'removeFormat': 'Remover estilo',\n        'justifyLeft': 'Alinhar à esquerda',\n        'justifyCenter': 'Centralizar',\n        'justifyRight': 'Alinhar à esquerda',\n        'justifyFull': 'Justificar',\n        'insertUnorderedList': 'Lista não ordenada',\n        'insertOrderedList': 'Lista ordenada',\n        'outdent': 'Recuar parágrafo atual',\n        'indent': 'Avançar parágrafo atual',\n        'formatPara': 'Alterar formato do bloco para parágrafo(tag P)',\n        'formatH1': 'Alterar formato do bloco para H1',\n        'formatH2': 'Alterar formato do bloco para H2',\n        'formatH3': 'Alterar formato do bloco para H3',\n        'formatH4': 'Alterar formato do bloco para H4',\n        'formatH5': 'Alterar formato do bloco para H5',\n        'formatH6': 'Alterar formato do bloco para H6',\n        'insertHorizontalRule': 'Inserir régua horizontal',\n        'linkDialog.show': 'Inserir um Hiperlink'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-pt-PT.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'pt-PT': {\n      font: {\n        bold: 'Negrito',\n        italic: 'Itálico',\n        underline: 'Sublinhado',\n        clear: 'Remover estilo da fonte',\n        height: 'Altura da linha',\n        name: 'Fonte',\n        strikethrough: 'Riscado',\n        size: 'Tamanho da fonte'\n      },\n      image: {\n        image: 'Imagem',\n        insert: 'Inserir imagem',\n        resizeFull: 'Redimensionar Completo',\n        resizeHalf: 'Redimensionar Metade',\n        resizeQuarter: 'Redimensionar Um Quarto',\n        floatLeft: 'Float Esquerda',\n        floatRight: 'Float Direita',\n        floatNone: 'Sem Float',\n        dragImageHere: 'Arraste uma imagem para aqui',\n        selectFromFiles: 'Selecione a partir dos arquivos',\n        url: 'Endereço da imagem'\n      },\n      video: {\n        video: 'Vídeo',\n        videoLink: 'Link para vídeo',\n        insert: 'Inserir vídeo',\n        url: 'URL do vídeo?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ou Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserir ligação',\n        unlink: 'Remover ligação',\n        edit: 'Editar',\n        textToDisplay: 'Texto para exibir',\n        url: 'Que endereço esta licação leva?',\n        openInNewWindow: 'Abrir numa nova janela'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Inserir linha horizontal'\n      },\n      style: {\n        style: 'Estilo',\n        p: 'p',\n        blockquote: 'Citação',\n        pre: 'Código',\n        h1: 'Título 1',\n        h2: 'Título 2',\n        h3: 'Título 3',\n        h4: 'Título 4',\n        h5: 'Título 5',\n        h6: 'Título 6'\n      },\n      lists: {\n        unordered: 'Lista com marcadores',\n        ordered: 'Lista numerada'\n      },\n      options: {\n        help: 'Ajuda',\n        fullscreen: 'Janela Completa',\n        codeview: 'Ver código-fonte'\n      },\n      paragraph: {\n        paragraph: 'Parágrafo',\n        outdent: 'Menor tabulação',\n        indent: 'Maior tabulação',\n        left: 'Alinhar à esquerda',\n        center: 'Alinhar ao centro',\n        right: 'Alinha à direita',\n        justify: 'Justificado'\n      },\n      color: {\n        recent: 'Cor recente',\n        more: 'Mais cores',\n        background: 'Fundo',\n        foreground: 'Fonte',\n        transparent: 'Transparente',\n        setTransparent: 'Fundo transparente',\n        reset: 'Restaurar',\n        resetToDefault: 'Restaurar padrão'\n      },\n      shortcut: {\n        shortcuts: 'Atalhos do teclado',\n        close: 'Fechar',\n        textFormatting: 'Formatação de texto',\n        action: 'Ação',\n        paragraphFormatting: 'Formatação de parágrafo',\n        documentStyle: 'Estilo de documento'\n      },\n      history: {\n        undo: 'Desfazer',\n        redo: 'Refazer'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-ro-RO.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ro-RO': {\n      font: {\n        bold: 'Îngroșat',\n        italic: 'Înclinat',\n        underline: 'Subliniat',\n        clear: 'Înlătură formatare font',\n        height: 'Înălțime rând',\n        strikethrough: 'Tăiat',\n        size: 'Dimensiune font'\n      },\n      image: {\n        image: 'Imagine',\n        insert: 'Inserează imagine',\n        resizeFull: 'Redimensionează complet',\n        resizeHalf: 'Redimensionează 1/2',\n        resizeQuarter: 'Redimensionează 1/4',\n        floatLeft: 'Aliniere la stânga',\n        floatRight: 'Aliniere la dreapta',\n        floatNone: 'Fară aliniere',\n        dragImageHere: 'Trage o imagine aici',\n        selectFromFiles: 'Alege din fişiere',\n        url: 'URL imagine'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link video',\n        insert: 'Inserează video',\n        url: 'URL video?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion sau Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Inserează link',\n        unlink: 'Înlătură link',\n        edit: 'Editează',\n        textToDisplay: 'Text ce va fi afişat',\n        url: 'Deschidere în fereastra nouă?'\n      },\n      table: {\n        table: 'Tabel'\n      },\n      hr: {\n        insert: 'Inserează o linie orizontală'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Preformatat',\n        h1: 'Titlu 1',\n        h2: 'Titlu 2',\n        h3: 'Titlu 3',\n        h4: 'Titlu 4',\n        h5: 'Titlu 5',\n        h6: 'Titlu 6'\n      },\n      lists: {\n        unordered: 'Listă neordonată',\n        ordered: 'Listă ordonată'\n      },\n      options: {\n        help: 'Ajutor',\n        fullscreen: 'Măreşte',\n        codeview: 'Sursă'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Creşte identarea',\n        indent: 'Scade identarea',\n        left: 'Aliniere la stânga',\n        center: 'Aliniere centrală',\n        right: 'Aliniere la dreapta',\n        justify: 'Aliniere în bloc'\n      },\n      color: {\n        recent: 'Culoare recentă',\n        more: 'Mai multe  culori',\n        background: 'Culoarea fundalului',\n        foreground: 'Culoarea textului',\n        transparent: 'Transparent',\n        setTransparent: 'Setează transparent',\n        reset: 'Resetează',\n        resetToDefault: 'Revino la iniţial'\n      },\n      shortcut: {\n        shortcuts: 'Scurtături tastatură',\n        close: 'Închide',\n        textFormatting: 'Formatare text',\n        action: 'Acţiuni',\n        paragraphFormatting: 'Formatare paragraf',\n        documentStyle: 'Stil paragraf'\n      },\n      history: {\n        undo: 'Starea anterioară',\n        redo: 'Starea ulterioară'\n      }\n\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-ru-RU.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'ru-RU': {\n      font: {\n        bold: 'Полужирный',\n        italic: 'Курсив',\n        underline: 'Подчёркнутый',\n        clear: 'Убрать стили шрифта',\n        height: 'Высота линии',\n        name: 'Шрифт',\n        strikethrough: 'Зачёркнутый',\n        subscript: 'Нижний индекс',\n        superscript: 'Верхний индекс',\n        size: 'Размер шрифта'\n      },\n      image: {\n        image: 'Картинка',\n        insert: 'Вставить картинку',\n        resizeFull: 'Восстановить размер',\n        resizeHalf: 'Уменьшить до 50%',\n        resizeQuarter: 'Уменьшить до 25%',\n        floatLeft: 'Расположить слева',\n        floatRight: 'Расположить справа',\n        floatNone: 'Расположение по-умолчанию',\n        shapeRounded: 'Форма: Закругленная',\n        shapeCircle: 'Форма: Круг',\n        shapeThumbnail: 'Форма: Миниатюра',\n        shapeNone: 'Форма: Нет',\n        dragImageHere: 'Перетащите сюда картинку',\n        dropImage: 'Перетащите картинку',\n        selectFromFiles: 'Выбрать из файлов',\n        url: 'URL картинки',\n        remove: 'Удалить картинку'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Ссылка на видео',\n        insert: 'Вставить видео',\n        url: 'URL видео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'\n      },\n      link: {\n        link: 'Ссылка',\n        insert: 'Вставить ссылку',\n        unlink: 'Убрать ссылку',\n        edit: 'Редактировать',\n        textToDisplay: 'Отображаемый текст',\n        url: 'URL для перехода',\n        openInNewWindow: 'Открывать в новом окне'\n      },\n      table: {\n        table: 'Таблица'\n      },\n      hr: {\n        insert: 'Вставить горизонтальную линию'\n      },\n      style: {\n        style: 'Стиль',\n        p: 'Нормальный',\n        blockquote: 'Цитата',\n        pre: 'Код',\n        h1: 'Заголовок 1',\n        h2: 'Заголовок 2',\n        h3: 'Заголовок 3',\n        h4: 'Заголовок 4',\n        h5: 'Заголовок 5',\n        h6: 'Заголовок 6'\n      },\n      lists: {\n        unordered: 'Маркированный список',\n        ordered: 'Нумерованный список'\n      },\n      options: {\n        help: 'Помощь',\n        fullscreen: 'На весь экран',\n        codeview: 'Исходный код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Уменьшить отступ',\n        indent: 'Увеличить отступ',\n        left: 'Выровнять по левому краю',\n        center: 'Выровнять по центру',\n        right: 'Выровнять по правому краю',\n        justify: 'Растянуть по ширине'\n      },\n      color: {\n        recent: 'Последний цвет',\n        more: 'Еще цвета',\n        background: 'Цвет фона',\n        foreground: 'Цвет шрифта',\n        transparent: 'Прозрачный',\n        setTransparent: 'Сделать прозрачным',\n        reset: 'Сброс',\n        resetToDefault: 'Восстановить умолчания'\n      },\n      shortcut: {\n        shortcuts: 'Сочетания клавиш',\n        close: 'Закрыть',\n        textFormatting: 'Форматирование текста',\n        action: 'Действие',\n        paragraphFormatting: 'Форматирование параграфа',\n        documentStyle: 'Стиль документа',\n        extraKeys: 'Дополнительные комбинации'\n      },\n      history: {\n        undo: 'Отменить',\n        redo: 'Повтор'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-sk-SK.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sk-SK': {\n      font: {\n        bold: 'Tučné',\n        italic: 'Kurzíva',\n        underline: 'Podčiarknutie',\n        clear: 'Odstrániť štýl písma',\n        height: 'Výška riadku',\n        strikethrough: 'Prečiarknuté',\n        size: 'Veľkosť písma'\n      },\n      image: {\n        image: 'Obrázok',\n        insert: 'Vložiť obrázok',\n        resizeFull: 'Pôvodná veľkosť',\n        resizeHalf: 'Polovičná veľkosť',\n        resizeQuarter: 'Štvrtinová veľkosť',\n        floatLeft: 'Umiestniť doľava',\n        floatRight: 'Umiestniť doprava',\n        floatNone: 'Bez zarovnania',\n        dragImageHere: 'Pretiahnuť sem obrázok',\n        selectFromFiles: 'Vybrať súbor',\n        url: 'URL obrázku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Odkaz videa',\n        insert: 'Vložiť video',\n        url: 'URL videa?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion alebo Youku)'\n      },\n      link: {\n        link: 'Odkaz',\n        insert: 'Vytvoriť odkaz',\n        unlink: 'Zrušiť odkaz',\n        edit: 'Upraviť',\n        textToDisplay: 'Zobrazovaný text',\n        url: 'Na akú URL adresu má tento odkaz viesť?',\n        openInNewWindow: 'Otvoriť v novom okne'\n      },\n      table: {\n        table: 'Tabuľka'\n      },\n      hr: {\n        insert: 'Vložit vodorovnú čiaru'\n      },\n      style: {\n        style: 'Štýl',\n        p: 'Normálny',\n        blockquote: 'Citácia',\n        pre: 'Kód',\n        h1: 'Nadpis 1',\n        h2: 'Nadpis 2',\n        h3: 'Nadpis 3',\n        h4: 'Nadpis 4',\n        h5: 'Nadpis 5',\n        h6: 'Nadpis 6'\n      },\n      lists: {\n        unordered: 'Odrážkový zoznam',\n        ordered: 'Číselný zoznam'\n      },\n      options: {\n        help: 'Pomoc',\n        fullscreen: 'Celá obrazovka',\n        codeview: 'HTML kód'\n      },\n      paragraph: {\n        paragraph: 'Odsek',\n        outdent: 'Zväčšiť odsadenie',\n        indent: 'Zmenšiť odsadenie',\n        left: 'Zarovnať doľava',\n        center: 'Zarovnať na stred',\n        right: 'Zarovnať doprava',\n        justify: 'Zarovnať obojstranne'\n      },\n      color: {\n        recent: 'Aktuálna farba',\n        more: 'Dalšie farby',\n        background: 'Farba pozadia',\n        foreground: 'Farba písma',\n        transparent: 'Priehľadnosť',\n        setTransparent: 'Nastaviť priehľadnosť',\n        reset: 'Obnoviť',\n        resetToDefault: 'Obnoviť prednastavené'\n      },\n      shortcut: {\n        shortcuts: 'Klávesové skratky',\n        close: 'Zavrieť',\n        textFormatting: 'Formátovanie textu',\n        action: 'Akcia',\n        paragraphFormatting: 'Formátovanie odseku',\n        documentStyle: 'Štýl dokumentu'\n      },\n      history: {\n        undo: 'Krok vzad',\n        redo: 'Krok dopredu'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-sl-SI.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sl-SI': {\n      font: {\n        bold: 'Krepko',\n        italic: 'Ležeče',\n        underline: 'Podčrtano',\n        clear: 'Počisti oblikovanje izbire',\n        height: 'Razmik med vrsticami',\n        name: 'Pisava',\n        strikethrough: 'Prečrtano',\n        subscript: 'Podpisano',\n        superscript: 'Nadpisano',\n        size: 'Velikost pisave'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Vstavi sliko',\n        resizeFull: 'Razširi na polno velikost',\n        resizeHalf: 'Razširi na polovico velikosti',\n        resizeQuarter: 'Razširi na četrtino velikosti',\n        floatLeft: 'Leva poravnava',\n        floatRight: 'Desna poravnava',\n        floatNone: 'Brez poravnave',\n        dragImageHere: 'Sem povlecite sliko',\n        selectFromFiles: 'Izberi sliko za nalaganje',\n        url: 'URL naslov slike',\n        remove: 'Odstrani sliko'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video povezava',\n        insert: 'Vstavi video',\n        url: 'Povezava do videa',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ali Youku)'\n      },\n      link: {\n        link: 'Povezava',\n        insert: 'Vstavi povezavo',\n        unlink: 'Odstrani povezavo',\n        edit: 'Uredi',\n        textToDisplay: 'Prikazano besedilo',\n        url: 'Povezava',\n        openInNewWindow: 'Odpri v novem oknu'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Vstavi horizontalno črto'\n      },\n      style: {\n        style: 'Slogi',\n        p: 'Navadno besedilo',\n        blockquote: 'Citat',\n        pre: 'Koda',\n        h1: 'Naslov 1',\n        h2: 'Naslov 2',\n        h3: 'Naslov 3',\n        h4: 'Naslov 4',\n        h5: 'Naslov 5',\n        h6: 'Naslov 6'\n      },\n      lists: {\n        unordered: 'Označen seznam',\n        ordered: 'Oštevilčen seznam'\n      },\n      options: {\n        help: 'Pomoč',\n        fullscreen: 'Celozaslonski način',\n        codeview: 'Pregled HTML kode'\n      },\n      paragraph: {\n        paragraph: 'Slogi odstavka',\n        outdent: 'Zmanjšaj odmik',\n        indent: 'Povečaj odmik',\n        left: 'Leva poravnava',\n        center: 'Desna poravnava',\n        right: 'Sredinska poravnava',\n        justify: 'Obojestranska poravnava'\n      },\n      color: {\n        recent: 'Uporabi zadnjo barvo',\n        more: 'Več barv',\n        background: 'Barva ozadja',\n        foreground: 'Barva besedila',\n        transparent: 'Brez barve',\n        setTransparent: 'Brez barve',\n        reset: 'Ponastavi',\n        resetToDefault: 'Ponastavi na privzeto'\n      },\n      shortcut: {\n        shortcuts: 'Bljižnice',\n        close: 'Zapri',\n        textFormatting: 'Oblikovanje besedila',\n        action: 'Dejanja',\n        paragraphFormatting: 'Oblikovanje odstavka',\n        documentStyle: 'Oblikovanje naslova'\n      },\n      history: {\n        undo: 'Razveljavi',\n        redo: 'Uveljavi'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-sr-RS-Latin.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sr-RS': {\n      font: {\n        bold: 'Podebljano',\n        italic: 'Kurziv',\n        underline: 'Podvučeno',\n        clear: 'Ukloni stilove fonta',\n        height: 'Visina linije',\n        strikethrough: 'Precrtano',\n        size: 'Veličina fonta'\n      },\n      image: {\n        image: 'Slika',\n        insert: 'Umetni sliku',\n        resizeFull: 'Puna veličina',\n        resizeHalf: 'Umanji na 50%',\n        resizeQuarter: 'Umanji na 25%',\n        floatLeft: 'Uz levu ivicu',\n        floatRight: 'Uz desnu ivicu',\n        floatNone: 'Bez ravnanja',\n        dragImageHere: 'Prevuci sliku ovde',\n        selectFromFiles: 'Izaberi iz datoteke',\n        url: 'Adresa slike',\n        remove: 'Ukloni sliku'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Veza ka videu',\n        insert: 'Umetni video',\n        url: 'URL video',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion ili Youku)'\n      },\n      link: {\n        link: 'Veza',\n        insert: 'Umetni vezu',\n        unlink: 'Ukloni vezu',\n        edit: 'Uredi',\n        textToDisplay: 'Tekst za prikaz',\n        url: 'Internet adresa',\n        openInNewWindow: 'Otvori u novom prozoru'\n      },\n      table: {\n        table: 'Tabela'\n      },\n      hr: {\n        insert: 'Umetni horizontalnu liniju'\n      },\n      style: {\n        style: 'Stil',\n        p: 'pni',\n        blockquote: 'Citat',\n        pre: 'Kod',\n        h1: 'Zaglavlje 1',\n        h2: 'Zaglavlje 2',\n        h3: 'Zaglavlje 3',\n        h4: 'Zaglavlje 4',\n        h5: 'Zaglavlje 5',\n        h6: 'Zaglavlje 6'\n      },\n      lists: {\n        unordered: 'Obična lista',\n        ordered: 'Numerisana lista'\n      },\n      options: {\n        help: 'Pomoć',\n        fullscreen: 'Preko celog ekrana',\n        codeview: 'Izvorni kod'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Smanji uvlačenje',\n        indent: 'Povečaj uvlačenje',\n        left: 'Poravnaj u levo',\n        center: 'Centrirano',\n        right: 'Poravnaj u desno',\n        justify: 'Poravnaj obostrano'\n      },\n      color: {\n        recent: 'Poslednja boja',\n        more: 'Više boja',\n        background: 'Boja pozadine',\n        foreground: 'Boja teksta',\n        transparent: 'Providna',\n        setTransparent: 'Providna',\n        reset: 'Opoziv',\n        resetToDefault: 'Podrazumevana'\n      },\n      shortcut: {\n        shortcuts: 'Prečice sa tastature',\n        close: 'Zatvori',\n        textFormatting: 'Formatiranje teksta',\n        action: 'Akcija',\n        paragraphFormatting: 'Formatiranje paragrafa',\n        documentStyle: 'Stil dokumenta',\n        extraKeys: 'Dodatne kombinacije'\n      },\n      history: {\n        undo: 'Poništi',\n        redo: 'Ponovi'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-sr-RS.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sr-RS': {\n      font: {\n        bold: 'Подебљано',\n        italic: 'Курзив',\n        underline: 'Подвучено',\n        clear: 'Уклони стилове фонта',\n        height: 'Висина линије',\n        strikethrough: 'Прецртано',\n        size: 'Величина фонта'\n      },\n      image: {\n        image: 'Слика',\n        insert: 'Уметни слику',\n        resizeFull: 'Пуна величина',\n        resizeHalf: 'Умањи на 50%',\n        resizeQuarter: 'Умањи на 25%',\n        floatLeft: 'Уз леву ивицу',\n        floatRight: 'Уз десну ивицу',\n        floatNone: 'Без равнања',\n        dragImageHere: 'Превуци слику овде',\n        selectFromFiles: 'Изабери из датотеке',\n        url: 'Адреса слике',\n        remove: 'Уклони слику'\n      },\n      video: {\n        video: 'Видео',\n        videoLink: 'Веза ка видеу',\n        insert: 'Уметни видео',\n        url: 'URL видео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)'\n      },\n      link: {\n        link: 'Веза',\n        insert: 'Уметни везу',\n        unlink: 'Уклони везу',\n        edit: 'Уреди',\n        textToDisplay: 'Текст за приказ',\n        url: 'Интернет адреса',\n        openInNewWindow: 'Отвори у новом прозору'\n      },\n      table: {\n        table: 'Табела'\n      },\n      hr: {\n        insert: 'Уметни хоризонталну линију'\n      },\n      style: {\n        style: 'Стил',\n        p: 'Нормални',\n        blockquote: 'Цитат',\n        pre: 'Код',\n        h1: 'Заглавље 1',\n        h2: 'Заглавље 2',\n        h3: 'Заглавље 3',\n        h4: 'Заглавље 4',\n        h5: 'Заглавље 5',\n        h6: 'Заглавље 6'\n      },\n      lists: {\n        unordered: 'Обична листа',\n        ordered: 'Нумерисана листа'\n      },\n      options: {\n        help: 'Помоћ',\n        fullscreen: 'Преко целог екрана',\n        codeview: 'Изворни код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Смањи увлачење',\n        indent: 'Повечај увлачење',\n        left: 'Поравнај у лево',\n        center: 'Центрирано',\n        right: 'Поравнај у десно',\n        justify: 'Поравнај обострано'\n      },\n      color: {\n        recent: 'Последња боја',\n        more: 'Више боја',\n        background: 'Боја позадине',\n        foreground: 'Боја текста',\n        transparent: 'Провидна',\n        setTransparent: 'Провидна',\n        reset: 'Опозив',\n        resetToDefault: 'Подразумевана'\n      },\n      shortcut: {\n        shortcuts: 'Пречице са тастатуре',\n        close: 'Затвори',\n        textFormatting: 'Форматирање текста',\n        action: 'Акција',\n        paragraphFormatting: 'Форматирање параграфа',\n        documentStyle: 'Стил документа',\n        extraKeys: 'Додатне комбинације'\n      },\n      history: {\n        undo: 'Поништи',\n        redo: 'Понови'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-sv-SE.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'sv-SE': {\n      font: {\n        bold: 'Fet',\n        italic: 'Kursiv',\n        underline: 'Understruken',\n        clear: 'Radera formatering',\n        height: 'Radavstånd',\n        name: 'Teckensnitt',\n        strikethrough: 'Genomstruken',\n        size: 'Teckenstorlek'\n      },\n      image: {\n        image: 'Bild',\n        insert: 'Infoga bild',\n        resizeFull: 'Full storlek',\n        resizeHalf: 'Halv storlek',\n        resizeQuarter: 'En fjärdedel i storlek',\n        floatLeft: 'Vänsterjusterad',\n        floatRight: 'Högerjusterad',\n        floatNone: 'Ingen justering',\n        dragImageHere: 'Dra en bild hit',\n        selectFromFiles: 'Välj från filer',\n        url: 'Länk till bild',\n        remove: 'Ta bort bild'\n      },\n      video: {\n        video: 'Filmklipp',\n        videoLink: 'Länk till filmklipp',\n        insert: 'Infoga filmklipp',\n        url: 'Länk till filmklipp',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion eller Youku)'\n      },\n      link: {\n        link: 'Länk',\n        insert: 'Infoga länk',\n        unlink: 'Ta bort länk',\n        edit: 'Redigera',\n        textToDisplay: 'Visningstext',\n        url: 'Till vilken URL ska denna länk peka?',\n        openInNewWindow: 'Öppna i ett nytt fönster'\n      },\n      table: {\n        table: 'Tabell'\n      },\n      hr: {\n        insert: 'Infoga horisontell linje'\n      },\n      style: {\n        style: 'Stil',\n        p: 'p',\n        blockquote: 'Citat',\n        pre: 'Kod',\n        h1: 'Rubrik 1',\n        h2: 'Rubrik 2',\n        h3: 'Rubrik 3',\n        h4: 'Rubrik 4',\n        h5: 'Rubrik 5',\n        h6: 'Rubrik 6'\n      },\n      lists: {\n        unordered: 'Punktlista',\n        ordered: 'Numrerad lista'\n      },\n      options: {\n        help: 'Hjälp',\n        fullscreen: 'Fullskärm',\n        codeview: 'HTML-visning'\n      },\n      paragraph: {\n        paragraph: 'Justera text',\n        outdent: 'Minska indrag',\n        indent: 'Öka indrag',\n        left: 'Vänsterjusterad',\n        center: 'Centrerad',\n        right: 'Högerjusterad',\n        justify: 'Justera text'\n      },\n      color: {\n        recent: 'Senast använda färg',\n        more: 'Fler färger',\n        background: 'Bakgrundsfärg',\n        foreground: 'Teckenfärg',\n        transparent: 'Genomskinlig',\n        setTransparent: 'Gör genomskinlig',\n        reset: 'Nollställ',\n        resetToDefault: 'Återställ till standard'\n      },\n      shortcut: {\n        shortcuts: 'Kortkommandon',\n        close: 'Stäng',\n        textFormatting: 'Textformatering',\n        action: 'Funktion',\n        paragraphFormatting: 'Avsnittsformatering',\n        documentStyle: 'Dokumentstil'\n      },\n      history: {\n        undo: 'Ångra',\n        redo: 'Gör om'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-th-TH.js",
    "content": "(function ($) {\n\t$.extend($.summernote.lang, {\n\t\t'th-TH': {\n\t\t\tfont: {\n\t\t\t\tbold: 'ตัวหนา',\n\t\t\t\titalic: 'ตัวเอียง',\n\t\t\t\tunderline: 'ขีดเส้นใต้',\n\t\t\t\tclear: 'ล้างรูปแบบตัวอักษร',\n\t\t\t\theight: 'ความสูงบรรทัด',\n\t\t\t\tname: 'แบบตัวอักษร',\n\t\t\t\tstrikethrough: 'ขีดฆ่า',\n\t\t\t\tsubscript: 'ตัวห้อย',\n\t\t\t\tsuperscript: 'ตัวยก',\n\t\t\t\tsize: 'ขนาดตัวอักษร'\n\t\t\t},\n\t\t\timage: {\n\t\t\t\timage: 'รูปภาพ',\n\t\t\t\tinsert: 'แทรกรูปภาพ',\n\t\t\t\tresizeFull: 'ปรับขนาดเท่าจริง',\n\t\t\t\tresizeHalf: 'ปรับขนาดลง 50%',\n\t\t\t\tresizeQuarter: 'ปรับขนาดลง 25%',\n\t\t\t\tfloatLeft: 'ชิดซ้าย',\n\t\t\t\tfloatRight: 'ชิดขวา',\n\t\t\t\tfloatNone: 'ไม่จัดตำแหน่ง',\n\t\t\t\tdragImageHere: 'ลากรูปภาพที่ต้องการไว้ที่นี่',\n\t\t\t\tselectFromFiles: 'เลือกไฟล์รูปภาพ',\n\t\t\t\turl: 'ที่อยู่ URL ของรูปภาพ',\n\t\t\t\tremove: 'ลบรูปภาพ'\n\t\t\t},\n\t\t\tvideo: {\n\t\t\t\tvideo: 'วีดีโอ',\n\t\t\t\tvideoLink: 'ลิงก์ของวีดีโอ',\n\t\t\t\tinsert: 'แทรกวีดีโอ',\n\t\t\t\turl: 'ที่อยู่ URL ของวีดีโอ?',\n\t\t\t\tproviders: '(YouTube, Vimeo, Vine, Instagram, DailyMotion หรือ Youku)'\n\t\t\t},\n\t\t\tlink: {\n\t\t\t\tlink: 'ตัวเชื่อมโยง',\n\t\t\t\tinsert: 'แทรกตัวเชื่อมโยง',\n\t\t\t\tunlink: 'ยกเลิกตัวเชื่อมโยง',\n\t\t\t\tedit: 'แก้ไข',\n\t\t\t\ttextToDisplay: 'ข้อความที่ให้แสดง',\n\t\t\t\turl: 'ที่อยู่เว็บไซต์ที่ต้องการให้เชื่อมโยงไปถึง?',\n\t\t\t\topenInNewWindow: 'เปิดในหน้าต่างใหม่'\n\t\t\t},\n\t\t\ttable: {\n\t\t\t\ttable: 'ตาราง'\n\t\t\t},\n\t\t\thr: {\n\t\t\t\tinsert: 'แทรกเส้นคั่น'\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tstyle: 'รูปแบบ',\n\t\t\t\tp: 'ปกติ',\n\t\t\t\tblockquote: 'ข้อความ',\n\t\t\t\tpre: 'โค้ด',\n\t\t\t\th1: 'หัวข้อ 1',\n\t\t\t\th2: 'หัวข้อ 2',\n\t\t\t\th3: 'หัวข้อ 3',\n\t\t\t\th4: 'หัวข้อ 4',\n\t\t\t\th5: 'หัวข้อ 5',\n\t\t\t\th6: 'หัวข้อ 6'\n\t\t\t},\n\t\t\tlists: {\n\t\t\t\tunordered: 'รายการแบบไม่มีลำดับ',\n\t\t\t\tordered: 'รายการแบบมีลำดับ'\n\t\t\t},\n\t\t\toptions: {\n\t\t\t\thelp: 'ช่วยเหลือ',\n\t\t\t\tfullscreen: 'ขยายเต็มหน้าจอ',\n\t\t\t\tcodeview: 'ซอร์สโค้ด'\n\t\t\t},\n\t\t\tparagraph: {\n\t\t\t\tparagraph: 'ย่อหน้า',\n\t\t\t\toutdent: 'เยื้องซ้าย',\n\t\t\t\tindent: 'เยื้องขวา',\n\t\t\t\tleft: 'จัดหน้าชิดซ้าย',\n\t\t\t\tcenter: 'จัดหน้ากึ่งกลาง',\n\t\t\t\tright: 'จัดหน้าชิดขวา',\n\t\t\t\tjustify: 'จัดบรรทัดเสมอกัน'\n\t\t\t},\n\t\t\tcolor: {\n\t\t\t\trecent: 'สีที่ใช้ล่าสุด',\n\t\t\t\tmore: 'สีอื่นๆ',\n\t\t\t\tbackground: 'สีพื้นหลัง',\n\t\t\t\tforeground: 'สีพื้นหน้า',\n\t\t\t\ttransparent: 'โปร่งแสง',\n\t\t\t\tsetTransparent: 'ตั้งค่าความโปร่งแสง',\n\t\t\t\treset: 'คืนค่า',\n\t\t\t\tresetToDefault: 'คืนค่ามาตรฐาน'\n\t\t\t},\n\t\t\tshortcut: {\n\t\t\t\tshortcuts: 'แป้นลัด',\n\t\t\t\tclose: 'ปิด',\n\t\t\t\ttextFormatting: 'การจัดรูปแบบข้อความ',\n\t\t\t\taction: 'การกระทำ',\n\t\t\t\tparagraphFormatting: 'การจัดรูปแบบย่อหน้า',\n\t\t\t\tdocumentStyle: 'รูปแบบของเอกสาร'\n\t\t\t},\n\t\t\thistory: {\n\t\t\t\tundo: 'ยกเลิกการกระทำ',\n\t\t\t\tredo: 'ทำซ้ำการกระทำ'\n\t\t\t}\n\t\t}\n\t});\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-tr-TR.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'tr-TR': {\n      font: {\n        bold: 'Kalın',\n        italic: 'İtalik',\n        underline: 'Altı çizili',\n        clear: 'Temizle',\n        height: 'Satır yüksekliği',\n        name: 'Yazı Tipi',\n        strikethrough: 'Üstü çizili',\n        subscript: 'Alt Simge',\n        superscript: 'Üst Simge',\n        size: 'Yazı tipi boyutu'\n      },\n      image: {\n        image: 'Resim',\n        insert: 'Resim ekle',\n        resizeFull: 'Orjinal boyut',\n        resizeHalf: '1/2 boyut',\n        resizeQuarter: '1/4 boyut',\n        floatLeft: 'Sola hizala',\n        floatRight: 'Sağa hizala',\n        floatNone: 'Hizalamayı kaldır',\n        shapeRounded: 'Şekil: Yuvarlatılmış Köşe',\n        shapeCircle: 'Şekil: Daire',\n        shapeThumbnail: 'Şekil: K.Resim',\n        shapeNone: 'Şekil: Yok',\n        dragImageHere: 'Buraya sürükleyin',\n        dropImage: 'Resim veya metni bırakın',\n        selectFromFiles: 'Dosya seçin',\n        maximumFileSize: 'Maksimum dosya boyutu',\n        maximumFileSizeError: 'Maksimum dosya boyutu aşıldı.',\n        url: 'Resim bağlantısı',\n        remove: 'Resimi Kaldır'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video bağlantısı',\n        insert: 'Video ekle',\n        url: 'Video bağlantısı?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion veya Youku)'\n      },\n      link: {\n        link: 'Bağlantı',\n        insert: 'Bağlantı ekle',\n        unlink: 'Bağlantıyı kaldır',\n        edit: 'Bağlantıyı düzenle',\n        textToDisplay: 'Görüntülemek için',\n        url: 'Bağlantı adresi?',\n        openInNewWindow: 'Yeni pencerede aç'\n      },\n      table: {\n        table: 'Tablo'\n      },\n      hr: {\n        insert: 'Yatay çizgi ekle'\n      },\n      style: {\n        style: 'Biçim',\n        p: 'p',\n        blockquote: 'Alıntı',\n        pre: 'Önbiçimli',\n        h1: 'Başlık 1',\n        h2: 'Başlık 2',\n        h3: 'Başlık 3',\n        h4: 'Başlık 4',\n        h5: 'Başlık 5',\n        h6: 'Başlık 6'\n      },\n      lists: {\n        unordered: 'Madde işaretli liste',\n        ordered: 'Numaralı liste'\n      },\n      options: {\n        help: 'Yardım',\n        fullscreen: 'Tam ekran',\n        codeview: 'HTML Kodu'\n      },\n      paragraph: {\n        paragraph: 'Paragraf',\n        outdent: 'Girintiyi artır',\n        indent: 'Girintiyi azalt',\n        left: 'Sola hizala',\n        center: 'Ortaya hizala',\n        right: 'Sağa hizala',\n        justify: 'Yasla'\n      },\n      color: {\n        recent: 'Son renk',\n        more: 'Daha fazla renk',\n        background: 'Arka plan rengi',\n        foreground: 'Yazı rengi',\n        transparent: 'Seffaflık',\n        setTransparent: 'Şeffaflığı ayarla',\n        reset: 'Sıfırla',\n        resetToDefault: 'Varsayılanlara sıfırla'\n      },\n      shortcut: {\n        shortcuts: 'Kısayollar',\n        close: 'Kapat',\n        textFormatting: 'Yazı biçimlendirme',\n        action: 'Eylem',\n        paragraphFormatting: 'Paragraf biçimlendirme',\n        documentStyle: 'Biçim',\n        extraKeys: 'İlave anahtarlar'\n      },\n      help: {\n        'insertParagraph': 'Paragraf ekler',\n        'undo': 'Son komudu geri alır',\n        'redo': 'Son komudu yineler',\n        'tab': 'Girintiyi artırır',\n        'untab': 'Girintiyi azaltır',\n        'bold': 'Kalın yazma stilini ayarlar',\n        'italic': 'İtalik yazma stilini ayarlar',\n        'underline': 'Altı çizgili yazma stilini ayarlar',\n        'strikethrough': 'Üstü çizgili yazma stilini ayarlar',\n        'removeFormat': 'Biçimlendirmeyi temizler',\n        'justifyLeft': 'Yazıyı sola hizalar',\n        'justifyCenter': 'Yazıyı ortalar',\n        'justifyRight': 'Yazıyı sağa hizalar',\n        'justifyFull': 'Yazıyı her iki tarafa yazlar',\n        'insertUnorderedList': 'Madde işaretli liste ekler',\n        'insertOrderedList': 'Numaralı liste ekler',\n        'outdent': 'Aktif paragrafın girintisini azaltır',\n        'indent': 'Aktif paragrafın girintisini artırır',\n        'formatPara': 'Aktif bloğun biçimini paragraf (p) olarak değiştirir',\n        'formatH1': 'Aktif bloğun biçimini başlık 1 (h1) olarak değiştirir',\n        'formatH2': 'Aktif bloğun biçimini başlık 2 (h2) olarak değiştirir',\n        'formatH3': 'Aktif bloğun biçimini başlık 3 (h3) olarak değiştirir',\n        'formatH4': 'Aktif bloğun biçimini başlık 4 (h4) olarak değiştirir',\n        'formatH5': 'Aktif bloğun biçimini başlık 5 (h5) olarak değiştirir',\n        'formatH6': 'Aktif bloğun biçimini başlık 6 (h6) olarak değiştirir',\n        'insertHorizontalRule': 'Yatay çizgi ekler',\n        'linkDialog.show': 'Bağlantı ayar kutusunu gösterir'\n      },\n      history: {\n        undo: 'Geri al',\n        redo: 'Yinele'\n      },\n      specialChar: {\n        specialChar: 'ÖZEL KARAKTERLER',\n        select: 'Özel Karakterleri seçin'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-uk-UA.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'uk-UA': {\n      font: {\n        bold: 'Напівжирний',\n        italic: 'Курсив',\n        underline: 'Підкреслений',\n        clear: 'Прибрати стилі шрифту',\n        height: 'Висота лінії',\n        name: 'Шрифт',\n        strikethrough: 'Закреслений',\n        subscript: 'Нижній індекс',\n        superscript: 'Верхній індекс',\n        size: 'Розмір шрифту'\n      },\n      image: {\n        image: 'Картинка',\n        insert: 'Вставити картинку',\n        resizeFull: 'Відновити розмір',\n        resizeHalf: 'Зменшити до 50%',\n        resizeQuarter: 'Зменшити до 25%',\n        floatLeft: 'Розташувати ліворуч',\n        floatRight: 'Розташувати праворуч',\n        floatNone: 'Початкове розташування',\n        shapeRounded: 'Форма: Заокруглена',\n        shapeCircle: 'Форма: Коло',\n        shapeThumbnail: 'Форма: Мініатюра',\n        shapeNone: 'Форма: Немає',\n        dragImageHere: 'Перетягніть сюди картинку',\n        dropImage: 'Перетягніть картинку',\n        selectFromFiles: 'Вибрати з файлів',\n        url: 'URL картинки',\n        remove: 'Видалити картинку'\n      },\n      video: {\n        video: 'Відео',\n        videoLink: 'Посилання на відео',\n        insert: 'Вставити відео',\n        url: 'URL відео',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion чи Youku)'\n      },\n      link: {\n        link: 'Посилання',\n        insert: 'Вставити посилання',\n        unlink: 'Прибрати посилання',\n        edit: 'Редагувати',\n        textToDisplay: 'Текст, що відображається',\n        url: 'URL для переходу',\n        openInNewWindow: 'Відкривати у новому вікні'\n      },\n      table: {\n        table: 'Таблиця'\n      },\n      hr: {\n        insert: 'Вставити горизонтальну лінію'\n      },\n      style: {\n        style: 'Стиль',\n        p: 'Нормальний',\n        blockquote: 'Цитата',\n        pre: 'Код',\n        h1: 'Заголовок 1',\n        h2: 'Заголовок 2',\n        h3: 'Заголовок 3',\n        h4: 'Заголовок 4',\n        h5: 'Заголовок 5',\n        h6: 'Заголовок 6'\n      },\n      lists: {\n        unordered: 'Маркований список',\n        ordered: 'Нумерований список'\n      },\n      options: {\n        help: 'Допомога',\n        fullscreen: 'На весь екран',\n        codeview: 'Початковий код'\n      },\n      paragraph: {\n        paragraph: 'Параграф',\n        outdent: 'Зменшити відступ',\n        indent: 'Збільшити відступ',\n        left: 'Вирівняти по лівому краю',\n        center: 'Вирівняти по центру',\n        right: 'Вирівняти по правому краю',\n        justify: 'Розтягнути по ширині'\n      },\n      color: {\n        recent: 'Останній колір',\n        more: 'Ще кольори',\n        background: 'Колір фону',\n        foreground: 'Колір шрифту',\n        transparent: 'Прозорий',\n        setTransparent: 'Зробити прозорим',\n        reset: 'Відновити',\n        resetToDefault: 'Відновити початкові'\n      },\n      shortcut: {\n        shortcuts: 'Комбінації клавіш',\n        close: 'Закрити',\n        textFormatting: 'Форматування тексту',\n        action: 'Дія',\n        paragraphFormatting: 'Форматування параграфу',\n        documentStyle: 'Стиль документу'\n      },\n      history: {\n        undo: 'Відмінити',\n        redo: 'Повторити'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-vi-VN.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'vi-VN': {\n      font: {\n        bold: 'In Đậm',\n        italic: 'In Nghiêng',\n        underline: 'Gạch dưới',\n        clear: 'Bỏ định dạng',\n        height: 'Chiều cao dòng',\n        name: 'Phông chữ',\n        strikethrough: 'Gạch ngang',\n        size: 'Cỡ chữ'\n      },\n      image: {\n        image: 'Hình ảnh',\n        insert: 'Chèn',\n        resizeFull: '100%',\n        resizeHalf: '50%',\n        resizeQuarter: '25%',\n        floatLeft: 'Trôi về trái',\n        floatRight: 'Trôi về phải',\n        floatNone: 'Không trôi',\n        dragImageHere: 'Thả Ảnh ở vùng này',\n        selectFromFiles: 'Chọn từ File',\n        url: 'URL',\n        remove: 'Xóa'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Link đến Video',\n        insert: 'Chèn Video',\n        url: 'URL',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion và Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Chèn Link',\n        unlink: 'Gỡ Link',\n        edit: 'Sửa',\n        textToDisplay: 'Văn bản hiển thị',\n        url: 'URL',\n        openInNewWindow: 'Mở ở Cửa sổ mới'\n      },\n      table: {\n        table: 'Bảng'\n      },\n      hr: {\n        insert: 'Chèn'\n      },\n      style: {\n        style: 'Kiểu chữ',\n        p: 'Chữ thường',\n        blockquote: 'Đoạn trích',\n        pre: 'Mã Code',\n        h1: 'H1',\n        h2: 'H2',\n        h3: 'H3',\n        h4: 'H4',\n        h5: 'H5',\n        h6: 'H6'\n      },\n      lists: {\n        unordered: 'Liệt kê danh sách',\n        ordered: 'Liệt kê theo thứ tự'\n      },\n      options: {\n        help: 'Trợ giúp',\n        fullscreen: 'Toàn Màn hình',\n        codeview: 'Xem Code'\n      },\n      paragraph: {\n        paragraph: 'Canh lề',\n        outdent: 'Dịch sang trái',\n        indent: 'Dịch sang phải',\n        left: 'Canh trái',\n        center: 'Canh giữa',\n        right: 'Canh phải',\n        justify: 'Canh đều'\n      },\n      color: {\n        recent: 'Màu chữ',\n        more: 'Mở rộng',\n        background: 'Màu nền',\n        foreground: 'Màu chữ',\n        transparent: 'trong suốt',\n        setTransparent: 'Nền trong suốt',\n        reset: 'Thiết lập lại',\n        resetToDefault: 'Trở lại ban đầu'\n      },\n      shortcut: {\n        shortcuts: 'Phím tắt',\n        close: 'Đóng',\n        textFormatting: 'Định dạng Văn bản',\n        action: 'Hành động',\n        paragraphFormatting: 'Định dạng',\n        documentStyle: 'Kiểu văn bản'\n      },\n      history: {\n        undo: 'Lùi lại',\n        redo: 'Làm lại'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-zh-CN.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-CN': {\n      font: {\n        bold: '粗体',\n        italic: '斜体',\n        underline: '下划线',\n        clear: '清除格式',\n        height: '行高',\n        name: '字体',\n        strikethrough: '删除线',\n        subscript: '下标',\n        superscript: '上标',\n        size: '字号'\n      },\n      image: {\n        image: '图片',\n        insert: '插入图片',\n        resizeFull: '缩放至 100%',\n        resizeHalf: '缩放至 50%',\n        resizeQuarter: '缩放至 25%',\n        floatLeft: '靠左浮动',\n        floatRight: '靠右浮动',\n        floatNone: '取消浮动',\n        shapeRounded: '形状: 圆角',\n        shapeCircle: '形状: 圆',\n        shapeThumbnail: '形状: 缩略图',\n        shapeNone: '形状: 无',\n        dragImageHere: '将图片拖拽至此处',\n        selectFromFiles: '从本地上传',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '图片地址',\n        remove: '移除图片'\n      },\n      video: {\n        video: '视频',\n        videoLink: '视频链接',\n        insert: '插入视频',\n        url: '视频地址',\n        providers: '(优酷, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '链接',\n        insert: '插入链接',\n        unlink: '去除链接',\n        edit: '编辑链接',\n        textToDisplay: '显示文本',\n        url: '链接地址',\n        openInNewWindow: '在新窗口打开'\n      },\n      table: {\n        table: '表格'\n      },\n      hr: {\n        insert: '水平线'\n      },\n      style: {\n        style: '样式',\n        p: '普通',\n        blockquote: '引用',\n        pre: '代码',\n        h1: '标题 1',\n        h2: '标题 2',\n        h3: '标题 3',\n        h4: '标题 4',\n        h5: '标题 5',\n        h6: '标题 6'\n      },\n      lists: {\n        unordered: '无序列表',\n        ordered: '有序列表'\n      },\n      options: {\n        help: '帮助',\n        fullscreen: '全屏',\n        codeview: '源代码'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '减少缩进',\n        indent: '增加缩进',\n        left: '左对齐',\n        center: '居中对齐',\n        right: '右对齐',\n        justify: '两端对齐'\n      },\n      color: {\n        recent: '最近使用',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重置',\n        resetToDefault: '默认'\n      },\n      shortcut: {\n        shortcuts: '快捷键',\n        close: '关闭',\n        textFormatting: '文本格式',\n        action: '动作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文档样式',\n        extraKeys: '额外按键'\n      },\n      history: {\n        undo: '撤销',\n        redo: '重做'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lang/summernote-zh-TW.js",
    "content": "(function ($) {\n  $.extend($.summernote.lang, {\n    'zh-TW': {\n      font: {\n        bold: '粗體',\n        italic: '斜體',\n        underline: '底線',\n        clear: '清除格式',\n        height: '行高',\n        name: '字體',\n        strikethrough: '刪除線',\n        subscript: '下標',\n        superscript: '上標',\n        size: '字號'\n      },\n      image: {\n        image: '圖片',\n        insert: '插入圖片',\n        resizeFull: '縮放至100%',\n        resizeHalf: '縮放至 50%',\n        resizeQuarter: '縮放至 25%',\n        floatLeft: '靠左浮動',\n        floatRight: '靠右浮動',\n        floatNone: '取消浮動',\n        shapeRounded: '形狀: 圓角',\n        shapeCircle: '形狀: 圓',\n        shapeThumbnail: '形狀: 縮略圖',\n        shapeNone: '形狀: 無',\n        dragImageHere: '將圖片拖曳至此處',\n        selectFromFiles: '從本機上傳',\n        maximumFileSize: '文件大小最大值',\n        maximumFileSizeError: '文件大小超出最大值。',\n        url: '圖片網址',\n        remove: '移除圖片'\n      },\n      video: {\n        video: '影片',\n        videoLink: '影片連結',\n        insert: '插入影片',\n        url: '影片網址',\n        providers: '(優酷, Instagram, DailyMotion, Youtube等)'\n      },\n      link: {\n        link: '連結',\n        insert: '插入連結',\n        unlink: '取消連結',\n        edit: '編輯連結',\n        textToDisplay: '顯示文字',\n        url: '連結網址',\n        openInNewWindow: '在新視窗開啟'\n      },\n      table: {\n        table: '表格'\n      },\n      hr: {\n        insert: '水平線'\n      },\n      style: {\n        style: '樣式',\n        p: '一般',\n        blockquote: '引用區塊',\n        pre: '程式碼區塊',\n        h1: '標題 1',\n        h2: '標題 2',\n        h3: '標題 3',\n        h4: '標題 4',\n        h5: '標題 5',\n        h6: '標題 6'\n      },\n      lists: {\n        unordered: '項目清單',\n        ordered: '編號清單'\n      },\n      options: {\n        help: '幫助',\n        fullscreen: '全螢幕',\n        codeview: '原始碼'\n      },\n      paragraph: {\n        paragraph: '段落',\n        outdent: '取消縮排',\n        indent: '增加縮排',\n        left: '靠右對齊',\n        center: '靠中對齊',\n        right: '靠右對齊',\n        justify: '左右對齊'\n      },\n      color: {\n        recent: '字型顏色',\n        more: '更多',\n        background: '背景',\n        foreground: '前景',\n        transparent: '透明',\n        setTransparent: '透明',\n        reset: '重設',\n        resetToDefault: '默認'\n      },\n      shortcut: {\n        shortcuts: '快捷鍵',\n        close: '關閉',\n        textFormatting: '文字格式',\n        action: '動作',\n        paragraphFormatting: '段落格式',\n        documentStyle: '文件格式',\n        extraKeys: '額外按鍵'\n      },\n      history: {\n        undo: '復原',\n        redo: '取消復原'\n      }\n    }\n  });\n})(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/lite.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n  <link rel=\"stylesheet\" href=\"../dist/summernote.css\">\n  <title>summernote-lite</title>\n</head>\n<body>\n  <h4>Summernote standalone</h4>\n  <div class=\"summernote\"></div>\n  <script data-main=\"src/js/app\" data-editor-type=\"lite\" src=\"//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js\"></script>\n</body>\n</html>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/meteor/package-standalone.js",
    "content": "// package metadata file for Meteor.js\n'use strict';\n\nvar packageName = 'summernote:standalone';  // http://atmospherejs.com/summernote:standalone\nvar where = 'client';  // where to install: 'client' or 'server'. For both, pass nothing.\n\nvar packageJson = JSON.parse(Npm.require(\"fs\").readFileSync('package.json'));\n\nPackage.describe({\n  name: packageName,\n  summary: 'summernote standalone (official): WYSIWYG editor with embedded images support, packaged without deps',\n  version: packageJson.version,\n  git: 'https://github.com/summernote/summernote.git'\n});\n\nPackage.onUse(function (api) {\n  api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']);\n  // no exports - summernote adds itself to jQuery\n  api.addFiles([\n    'dist/summernote.js',\n    'dist/summernote.css'\n  ], where);\n\n  api.addAssets([\n    'dist/font/summernote.eot',\n    'dist/font/summernote.ttf',\n    'dist/font/summernote.woff'\n  ], where);\n});\n\nPackage.onTest(function (api) {\n  // load dependencies for test only, before loading the package\n  api.use(['twbs:bootstrap@3.3.1'], where);\n\n  // load our package\n  api.use(packageName, where);\n\n  // load the test runner\n  api.use('tinytest', where);\n\n  api.addFiles('meteor/test.js', where);\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/meteor/package.js",
    "content": "// package metadata file for Meteor.js\n'use strict';\n\nvar packageName = 'summernote:summernote';  // http://atmospherejs.com/summernote:summernote\nvar where = 'client';  // where to install: 'client' or 'server'. For both, pass nothing.\n\nvar packageJson = JSON.parse(Npm.require(\"fs\").readFileSync('package.json'));\n\nPackage.describe({\n  name: packageName,\n  summary: 'summernote (official): jQuery+Bootstrap WYSIWYG editor with embedded images support',\n  version: packageJson.version,\n  git: 'https://github.com/summernote/summernote.git'\n});\n\nPackage.onUse(function (api) {\n  api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']);\n  api.use([\n    'jquery',\n    'twbs:bootstrap@3.3.1'\n  ], where);\n  // no exports - summernote adds itself to jQuery\n  api.addFiles([\n    'dist/summernote.js',\n    'dist/summernote.css'\n  ], where);\n\n  api.addAssets([\n    'dist/font/summernote.eot',\n    'dist/font/summernote.ttf',\n    'dist/font/summernote.woff'\n  ], where);\n});\n\nPackage.onTest(function (api) {\n  api.use(packageName, where);\n  api.use('tinytest', where);\n\n  api.addFiles('meteor/test.js', where);\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/meteor/publish.sh",
    "content": "#!/bin/bash\n# Publish package to Meteor's repository, Atmospherejs.com\n\n# Make sure Meteor is installed, per https://www.meteor.com/install.\n# The curl'ed script is totally safe; takes 2 minutes to read its source and check.\ntype meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }\n\n# sanity check: make sure we're in the root directory of the checkout\ncd \"$( dirname \"$0\" )/..\"\n\nALL_EXIT_CODE=0\n\n# test any package*.js packages we may have, e.g. package.js, package-compat.js\nfor PACKAGE_FILE in meteor/package*.js; do\n\n  # Meteor expects package.js to be in the root directory of the checkout, so copy there our package file under that name, temporarily\n  cp $PACKAGE_FILE ./package.js\n\n  # publish package, creating it if it's the first time we're publishing\n  PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d \"'\" -f 2)\n\n  echo \"Publishing $PACKAGE_NAME...\"\n\n  # Attempt to re-publish the package - the most common operation once the initial release has\n  # been made. If the package name was changed (rare), you'll have to pass the --create flag.\n  meteor publish \"$@\"; EXIT_CODE=$?\n  ALL_EXIT_CODE=$(( $ALL_EXIT_CODE + $EXIT_CODE ))\n  if (( $EXIT_CODE == 0 )); then\n    echo \"Thanks for releasing a new version. You can see it at\"\n    echo \"https://atmospherejs.com/${PACKAGE_NAME/://}\"\n  else\n    echo \"We got an error. Please post it at https://github.com/raix/Meteor-community-discussions/issues/14\"\n  fi\n\n  # rm the temporary build files and package.js\n  rm -rf \".build.$PACKAGE_NAME\" versions.json package.js\n\ndone\n\nexit $ALL_EXIT_CODE\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/meteor/runtests.sh",
    "content": "#!/bin/sh\n# Test Meteor package before publishing to Atmospherejs.com\n\n# Make sure Meteor is installed, per https://www.meteor.com/install.\n# The curl'ed script is totally safe; takes 2 minutes to read its source and check.\ntype meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }\n\n# sanity check: make sure we're in the root directory of the checkout\ncd \"$( dirname \"$0\" )/..\"\n\nALL_EXIT_CODE=0\n\n# test any package*.js packages we may have, e.g. package.js, package-standalone.js\nfor PACKAGE_FILE in meteor/package*.js; do\n\n  # Meteor expects package.js in the root dir of the checkout, so copy there our package file under that name, temporarily\n  cp $PACKAGE_FILE ./package.js\n\n  PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d \"'\" -f 2)\n\n  echo \"### Testing $PACKAGE_NAME...\"\n\n  # provide an invalid MONGO_URL so Meteor doesn't bog us down with an empty Mongo database\n  if [ $# -gt 0 ]; then\n    # interpret any parameter to mean we want an interactive test\n    MONGO_URL=mongodb:// meteor test-packages ./\n  else\n    # automated/CI test with phantomjs\n    spacejam --mongo-url mongodb:// test-packages ./\n    ALL_EXIT_CODES=$(( $ALL_EXIT_CODES + $? ))\n  fi\n\n  # delete temporary build files and package.js\n  rm -rf .build.* versions.json package.js\n\ndone\n\nexit $ALL_EXIT_CODES\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/meteor/test.js",
    "content": "'use strict';\n\nTinytest.add('Instantiation', function (test) {\n  var editor = document.createElement('div');\n  document.body.appendChild(editor);\n  $(editor).summernote();\n\n  test.equal(typeof $(editor).code(), 'string', 'Instantiation');\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/nuget-build.cmd",
    "content": "@echo off\n\ntools\\nuget setApiKey <API_KEY> -ConfigFile tools\\NuGet.Config\ntools\\nuget pack summernote.nuspec -version <VERSION> -OutputDirectory build\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/package.json",
    "content": "{\n  \"name\": \"summernote\",\n  \"description\": \"Super simple WYSIWYG editor\",\n  \"version\": \"0.8.2\",\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"editor\",\n    \"WYSIWYG\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/summernote/summernote.git\"\n  },\n  \"author\": {\n    \"name\": \"hackerwins\",\n    \"email\": \"<susukang98@gmail.com>\"\n  },\n  \"main\": \"dist/summernote.js\",\n  \"devDependencies\": {\n    \"chai\": \"^3.2.0\",\n    \"chai-spies\": \"^0.7.1\",\n    \"grunt\": \"*\",\n    \"grunt-contrib-clean\": \"^0.7.0\",\n    \"grunt-contrib-compress\": \"*\",\n    \"grunt-contrib-connect\": \"*\",\n    \"grunt-contrib-copy\": \"^0.8.2\",\n    \"grunt-contrib-jshint\": \"0.7.2\",\n    \"grunt-contrib-uglify\": \"~0.2.2\",\n    \"grunt-contrib-watch\": \"*\",\n    \"grunt-coveralls\": \"^1.0.0\",\n    \"grunt-exec\": \"^0.4.6\",\n    \"grunt-jscs\": \"^2.6.0\",\n    \"grunt-karma\": \"^0.12.0\",\n    \"grunt-recess\": \"*\",\n    \"grunt-saucelabs\": \"*\",\n    \"grunt-webfont\": \"^1.0.2\",\n    \"karma\": \"^0.13.3\",\n    \"karma-chrome-launcher\": \"^0.2.0\",\n    \"karma-coverage\": \"^0.5.3\",\n    \"karma-firefox-launcher\": \"^0.1.6\",\n    \"karma-ie-launcher\": \"^0.2.0\",\n    \"karma-mocha\": \"^0.2.0\",\n    \"karma-opera-launcher\": \"^0.3.0\",\n    \"karma-phantomjs-launcher\": \"^0.2.0\",\n    \"karma-requirejs\": \"^0.2.2\",\n    \"karma-safari-launcher\": \"^0.1.1\",\n    \"karma-sauce-launcher\": \"^0.3.0\",\n    \"load-grunt-tasks\": \"0.2.0\",\n    \"mocha\": \"^2.3.4\",\n    \"open\": \"0.0.4\",\n    \"phantomjs\": \"^1.9.17\",\n    \"requirejs\": \"^2.1.22\"\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/plugin/databasic/summernote-ext-databasic.css",
    "content": ".ext-databasic {\n\tposition: relative;\n\tdisplay: block;\n\tmin-height: 50px;\n\tbackground-color: cyan;\n\ttext-align: center;\n\tpadding: 20px;\n\tborder: 1px solid white;\n\tborder-radius: 10px;\n}\n\n.ext-databasic p {\n\tcolor: white;\n\tfont-size: 1.2em;\n\tmargin: 0;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/plugin/databasic/summernote-ext-databasic.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // pull in some summernote core functions\n  var ui = $.summernote.ui;\n  var dom = $.summernote.dom;\n\n  // define the popover plugin\n  var DataBasicPlugin = function (context) {\n    var self = this;\n    var options = context.options;\n    var lang = options.langInfo;\n    \n    self.icon = '<i class=\"fa fa-object-group\"/>';\n\n    // add context menu button for dialog\n    context.memo('button.databasic', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.insert,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    // add popover edit button\n    context.memo('button.databasicDialog', function () {\n      return ui.button({\n        contents: self.icon,\n        tooltip: lang.databasic.edit,\n        click: context.createInvokeHandler('databasic.showDialog')\n      }).render();\n    });\n\n    //  add popover size buttons\n    context.memo('button.databasicSize100', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">100%</span>',\n        tooltip: lang.image.resizeFull,\n        click: context.createInvokeHandler('editor.resize', '1')\n      }).render();\n    });\n    context.memo('button.databasicSize50', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">50%</span>',\n        tooltip: lang.image.resizeHalf,\n        click: context.createInvokeHandler('editor.resize', '0.5')\n      }).render();\n    });\n    context.memo('button.databasicSize25', function () {\n      return ui.button({\n        contents: '<span class=\"note-fontsize-10\">25%</span>',\n        tooltip: lang.image.resizeQuarter,\n        click: context.createInvokeHandler('editor.resize', '0.25')\n      }).render();\n    });\n\n    self.events = {\n      'summernote.init': function (we, e) {\n        // update existing containers\n        $('data.ext-databasic', e.editable).each(function () { self.setContent($(this)); });\n        // TODO: make this an undo snapshot...\n      },\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hidePopover();\n      }\n    };\n\n    self.initialize = function () {\n      // create dialog markup\n      var $container = options.dialogsInBody ? $(document.body) : context.layoutInfo.editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.databasic.testLabel + '</label>' +\n          '<input class=\"ext-databasic-test form-control\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary ext-databasic-save\">' + lang.databasic.insert + '</button>';\n\n      self.$dialog = ui.dialog({\n        title: lang.databasic.name,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n      \n      // create popover\n      self.$popover = ui.popover({\n        className: 'ext-databasic-popover'\n      }).render().appendTo('body');\n      var $content = self.$popover.find('.popover-content');\n      \n      context.invoke('buttons.build', $content, options.popover.databasic);\n    };\n\n    self.destroy = function () {\n      self.$popover.remove();\n      self.$popover = null;\n      self.$dialog.remove();\n      self.$dialog = null;\n    };\n    \n    self.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        self.hidePopover();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      var visible = false;\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          var pos = dom.posFromPlaceholder($data[0]);\n          \n          self.$popover.css({\n            display: 'block',\n            left: pos.left,\n            top: pos.top\n          });\n          \n          // save editor target to let size buttons resize the container\n          context.invoke('editor.saveTarget', $data[0]);\n\n          visible = true;\n        }\n\n      }\n      \n      // hide if not visible\n      if (!visible) {\n        self.hidePopover();\n      }\n\n    };\n\n    self.hidePopover = function () {\n      self.$popover.hide();\n    };\n\n    // define plugin dialog\n    self.getInfo = function () {\n      var rng = context.invoke('editor.createRange');\n      \n      if (rng.isOnData())\n      {\n        var $data = $(rng.sc).closest('data.ext-databasic');\n      \n        if ($data.length)\n        {\n          // Get the first node on range(for edit).\n          return {\n            node: $data,\n            test: $data.attr('data-test')\n          };\n        }\n      }\n      \n      return {};\n    };\n\n    self.setContent = function ($node) {\n      $node.html('<p contenteditable=\"false\">' + self.icon + ' ' + lang.databasic.name + ': ' +\n        $node.attr('data-test') + '</p>');\n    };\n\n    self.updateNode = function (info) {\n      self.setContent(info.node\n        .attr('data-test', info.test));\n    };\n\n    self.createNode = function (info) {\n      var $node = $('<data class=\"ext-databasic\"></data>');\n\n      if ($node) {\n        // save node to info structure\n        info.node = $node;\n        // insert node into editor dom\n        context.invoke('editor.insertNode', $node[0]);\n      }\n\n      return $node;\n    };\n    \n    self.showDialog = function () {\n      var info = self.getInfo();\n      var newNode = !info.node;\n      context.invoke('editor.saveRange');\n      \n      self\n        .openDialog(info)\n        .then(function (dialogInfo) {\n          // [workaround] hide dialog before restore range for IE range focus\n          ui.hideDialog(self.$dialog);\n          context.invoke('editor.restoreRange');\n          \n          // insert a new node\n          if (newNode)\n          {\n            self.createNode(info);\n          }\n          \n          // update info with dialog info\n          $.extend(info, dialogInfo);\n          \n          self.updateNode(info);\n        })\n        .fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n\n    };\n    \n    self.openDialog = function (info) {\n      return $.Deferred(function (deferred) {\n        var $inpTest = self.$dialog.find('.ext-databasic-test');\n        var $saveBtn = self.$dialog.find('.ext-databasic-save');\n        var onKeyup = function (event) {\n            if (event.keyCode === 13)\n            {\n              $saveBtn.trigger('click');\n            }\n          };\n        \n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $inpTest.val(info.test).on('input', function () {\n            ui.toggleBtn($saveBtn, $inpTest.val());\n          }).trigger('focus').on('keyup', onKeyup);\n\n          $saveBtn\n            .text(info.node ? lang.databasic.edit : lang.databasic.insert)\n            .click(function (event) {\n              event.preventDefault();\n\n              deferred.resolve({ test: $inpTest.val() });\n            });\n          \n          // init save button\n          ui.toggleBtn($saveBtn, $inpTest.val());\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $inpTest.off('input keyup');\n          $saveBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  // Extends summernote\n  $.extend(true, $.summernote, {\n    plugins: {\n      databasic: DataBasicPlugin\n    },\n    \n    options: {\n      popover: {\n        databasic: [\n          ['databasic', ['databasicDialog', 'databasicSize100', 'databasicSize50', 'databasicSize25']]\n        ]\n      }\n    },\n    \n    // add localization texts\n    lang: {\n      'en-US': {\n        databasic: {\n          name: 'Basic Data Container',\n          insert: 'insert basic data container',\n          edit: 'edit basic data container',\n          testLabel: 'test input'\n        }\n      }\n    }\n    \n  });\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/plugin/hello/summernote-ext-hello.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n\n  // Extends plugins for adding hello.\n  //  - plugin is external module for customizing.\n  $.extend($.summernote.plugins, {\n    /**\n     * @param {Object} context - context object has status of editor.\n     */\n    'hello': function (context) {\n      var self = this;\n\n      // ui has renders to build ui elements.\n      //  - you can create a button with `ui.button`\n      var ui = $.summernote.ui;\n\n      // add hello button\n      context.memo('button.hello', function () {\n        // create button\n        var button = ui.button({\n          contents: '<i class=\"fa fa-child\"/> Hello',\n          tooltip: 'hello',\n          click: function () {\n            self.$panel.show();\n            self.$panel.hide(500);\n            // invoke insertText method with 'hello' on editor module.\n            context.invoke('editor.insertText', 'hello');\n          }\n        });\n\n        // create jQuery object from button instance.\n        var $hello = button.render();\n        return $hello;\n      });\n\n      // This events will be attached when editor is initialized.\n      this.events = {\n        // This will be called after modules are initialized.\n        'summernote.init': function (we, e) {\n          console.log('summernote initialized', we, e);\n        },\n        // This will be called when user releases a key on editable.\n        'summernote.keyup': function (we, e) {\n          console.log('summernote keyup', we, e);\n        }\n      };\n\n      // This method will be called when editor is initialized by $('..').summernote();\n      // You can create elements for plugin\n      this.initialize = function () {\n        this.$panel = $('<div class=\"hello-panel\"/>').css({\n          position: 'absolute',\n          width: 100,\n          height: 100,\n          left: '50%',\n          top: '50%',\n          background: 'red'\n        }).hide();\n\n        this.$panel.appendTo('body');\n      };\n\n      // This methods will be called when editor is destroyed by $('..').summernote('destroy');\n      // You should remove elements on `initialize`.\n      this.destroy = function () {\n        this.$panel.remove();\n        this.$panel = null;\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/plugin/specialchars/summernote-ext-specialchars.js",
    "content": "(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  $.extend($.summernote.plugins, {\n    'specialchars': function (context) {\n      var self = this;\n      var ui = $.summernote.ui;\n\n      var $editor = context.layoutInfo.editor;\n      var options = context.options;\n      var lang = options.langInfo;\n\n      var KEY = {\n        UP: 38,\n        DOWN: 40,\n        LEFT: 37,\n        RIGHT: 39,\n        ENTER: 13\n      };\n      var COLUMN_LENGTH = 15;\n      var COLUMN_WIDTH = 35;\n\n      var currentColumn, currentRow, totalColumn, totalRow = 0;\n\n      // special characters data set\n      var specialCharDataSet = [\n        '&quot;', '&amp;', '&lt;', '&gt;', '&iexcl;', '&cent;',\n        '&pound;', '&curren;', '&yen;', '&brvbar;', '&sect;',\n        '&uml;', '&copy;', '&ordf;', '&laquo;', '&not;',\n        '&reg;', '&macr;', '&deg;', '&plusmn;', '&sup2;',\n        '&sup3;', '&acute;', '&micro;', '&para;', '&middot;',\n        '&cedil;', '&sup1;', '&ordm;', '&raquo;', '&frac14;',\n        '&frac12;', '&frac34;', '&iquest;', '&times;', '&divide;',\n        '&fnof;', '&circ;', '&tilde;', '&ndash;', '&mdash;',\n        '&lsquo;', '&rsquo;', '&sbquo;', '&ldquo;', '&rdquo;',\n        '&bdquo;', '&dagger;', '&Dagger;', '&bull;', '&hellip;',\n        '&permil;', '&prime;', '&Prime;', '&lsaquo;', '&rsaquo;',\n        '&oline;', '&frasl;', '&euro;', '&image;', '&weierp;',\n        '&real;', '&trade;', '&alefsym;', '&larr;', '&uarr;',\n        '&rarr;', '&darr;', '&harr;', '&crarr;', '&lArr;',\n        '&uArr;', '&rArr;', '&dArr;', '&hArr;', '&forall;',\n        '&part;', '&exist;', '&empty;', '&nabla;', '&isin;',\n        '&notin;', '&ni;', '&prod;', '&sum;', '&minus;',\n        '&lowast;', '&radic;', '&prop;', '&infin;', '&ang;',\n        '&and;', '&or;', '&cap;', '&cup;', '&int;',\n        '&there4;', '&sim;', '&cong;', '&asymp;', '&ne;',\n        '&equiv;', '&le;', '&ge;', '&sub;', '&sup;',\n        '&nsub;', '&sube;', '&supe;', '&oplus;', '&otimes;',\n        '&perp;', '&sdot;', '&lceil;', '&rceil;', '&lfloor;',\n        '&rfloor;', '&loz;', '&spades;', '&clubs;', '&hearts;',\n        '&diams;'\n      ];\n\n      context.memo('button.specialCharacter', function () {\n        return ui.button({\n          contents: '<i class=\"fa fa-font fa-flip-vertical\">',\n          tooltip: lang.specialChar.specialChar,\n          click: function () {\n            self.show();\n          }\n        }).render();\n      });\n\n      /**\n       * Make Special Characters Table\n       *\n       * @member plugin.specialChar\n       * @private\n       * @return {jQuery}\n       */\n      this.makeSpecialCharSetTable = function () {\n        var $table = $('<table/>');\n        $.each(specialCharDataSet, function (idx, text) {\n          var $td = $('<td/>').addClass('note-specialchar-node');\n          var $tr = (idx % COLUMN_LENGTH === 0) ? $('<tr/>') : $table.find('tr').last();\n\n          var $button = ui.button({\n            callback: function ($node) {\n              $node.html(text);\n              $node.attr('title', text);\n              $node.attr('data-value', encodeURIComponent(text));\n              $node.css({\n                width: COLUMN_WIDTH,\n                'margin-right': '2px',\n                'margin-bottom': '2px'\n              });\n            }\n          }).render();\n\n          $td.append($button);\n\n          $tr.append($td);\n          if (idx % COLUMN_LENGTH === 0) {\n            $table.append($tr);\n          }\n        });\n\n        totalRow = $table.find('tr').length;\n        totalColumn = COLUMN_LENGTH;\n\n        return $table;\n      };\n\n      this.initialize = function () {\n        var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n        var body = '<div class=\"form-group row-fluid\">' + this.makeSpecialCharSetTable()[0].outerHTML + '</div>';\n\n        this.$dialog = ui.dialog({\n          title: lang.specialChar.select,\n          body: body\n        }).render().appendTo($container);\n      };\n\n      this.show = function () {\n        var text = context.invoke('editor.getSelectedText');\n        context.invoke('editor.saveRange');\n        this.showSpecialCharDialog(text).then(function (selectChar) {\n          context.invoke('editor.restoreRange');\n\n          // build node\n          var $node = $('<span></span>').html(selectChar)[0];\n\n          if ($node) {\n            // insert video node\n            context.invoke('editor.insertNode', $node);\n          }\n        }).fail(function () {\n          context.invoke('editor.restoreRange');\n        });\n      };\n\n      /**\n       * show image dialog\n       *\n       * @param {jQuery} $dialog\n       * @return {Promise}\n       */\n      this.showSpecialCharDialog = function (text) {\n        return $.Deferred(function (deferred) {\n          var $specialCharDialog = self.$dialog;\n          var $specialCharNode = $specialCharDialog.find('.note-specialchar-node');\n          var $selectedNode = null;\n          var ARROW_KEYS = [KEY.UP, KEY.DOWN, KEY.LEFT, KEY.RIGHT];\n          var ENTER_KEY = KEY.ENTER;\n\n          function addActiveClass($target) {\n            if (!$target) {\n              return;\n            }\n            $target.find('button').addClass('active');\n            $selectedNode = $target;\n          }\n\n          function removeActiveClass($target) {\n            $target.find('button').removeClass('active');\n            $selectedNode = null;\n          }\n\n          // find next node\n          function findNextNode(row, column) {\n            var findNode = null;\n            $.each($specialCharNode, function (idx, $node) {\n              var findRow = Math.ceil((idx + 1) / COLUMN_LENGTH);\n              var findColumn = ((idx + 1) % COLUMN_LENGTH === 0) ? COLUMN_LENGTH : (idx + 1) % COLUMN_LENGTH;\n              if (findRow === row && findColumn === column) {\n                findNode = $node;\n                return false;\n              }\n            });\n            return $(findNode);\n          }\n\n          function arrowKeyHandler(keyCode) {\n            // left, right, up, down key\n            var $nextNode;\n            var lastRowColumnLength = $specialCharNode.length % totalColumn;\n\n            if (KEY.LEFT === keyCode) {\n\n              if (currentColumn > 1) {\n                currentColumn = currentColumn - 1;\n              } else if (currentRow === 1 && currentColumn === 1) {\n                currentColumn = lastRowColumnLength;\n                currentRow = totalRow;\n              } else {\n                currentColumn = totalColumn;\n                currentRow = currentRow - 1;\n              }\n\n            } else if (KEY.RIGHT === keyCode) {\n\n              if (currentRow === totalRow && lastRowColumnLength === currentColumn) {\n                currentColumn = 1;\n                currentRow = 1;\n              } else if (currentColumn < totalColumn) {\n                currentColumn = currentColumn + 1;\n              } else {\n                currentColumn = 1;\n                currentRow = currentRow + 1;\n              }\n\n            } else if (KEY.UP === keyCode) {\n              if (currentRow === 1 && lastRowColumnLength < currentColumn) {\n                currentRow = totalRow - 1;\n              } else {\n                currentRow = currentRow - 1;\n              }\n            } else if (KEY.DOWN === keyCode) {\n              currentRow = currentRow + 1;\n            }\n\n            if (currentRow === totalRow && currentColumn > lastRowColumnLength) {\n              currentRow = 1;\n            } else if (currentRow > totalRow) {\n              currentRow = 1;\n            } else if (currentRow < 1) {\n              currentRow = totalRow;\n            }\n\n            $nextNode = findNextNode(currentRow, currentColumn);\n\n            if ($nextNode) {\n              removeActiveClass($selectedNode);\n              addActiveClass($nextNode);\n            }\n          }\n\n          function enterKeyHandler() {\n            if (!$selectedNode) {\n              return;\n            }\n\n            deferred.resolve(decodeURIComponent($selectedNode.find('button').attr('data-value')));\n            $specialCharDialog.modal('hide');\n          }\n\n          function keyDownEventHandler(event) {\n            event.preventDefault();\n            var keyCode = event.keyCode;\n            if (keyCode === undefined || keyCode === null) {\n              return;\n            }\n            // check arrowKeys match\n            if (ARROW_KEYS.indexOf(keyCode) > -1) {\n              if ($selectedNode === null) {\n                addActiveClass($specialCharNode.eq(0));\n                currentColumn = 1;\n                currentRow = 1;\n                return;\n              }\n              arrowKeyHandler(keyCode);\n            } else if (keyCode === ENTER_KEY) {\n              enterKeyHandler();\n            }\n            return false;\n          }\n\n          // remove class\n          removeActiveClass($specialCharNode);\n\n          // find selected node\n          if (text) {\n            for (var i = 0; i < $specialCharNode.length; i++) {\n              var $checkNode = $($specialCharNode[i]);\n              if ($checkNode.text() === text) {\n                addActiveClass($checkNode);\n                currentRow = Math.ceil((i + 1) / COLUMN_LENGTH);\n                currentColumn = (i + 1) % COLUMN_LENGTH;\n              }\n            }\n          }\n\n          ui.onDialogShown(self.$dialog, function () {\n\n            $(document).on('keydown', keyDownEventHandler);\n\n            self.$dialog.find('button').tooltip();\n\n            $specialCharNode.on('click', function (event) {\n              event.preventDefault();\n              deferred.resolve(decodeURIComponent($(event.currentTarget).find('button').attr('data-value')));\n              ui.hideDialog(self.$dialog);\n            });\n\n          });\n\n          ui.onDialogHidden(self.$dialog, function () {\n            $specialCharNode.off('click');\n\n            self.$dialog.find('button').tooltip('destroy');\n\n            $(document).off('keydown', keyDownEventHandler);\n\n            if (deferred.state() === 'pending') {\n              deferred.reject();\n            }\n          });\n\n          ui.showDialog(self.$dialog);\n        });\n      };\n    }\n  });\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/pull_request_template.md",
    "content": "#### What does this PR do?\n\n- awesome stuff\n- really cool feature\n- refactor X\n\n#### Where should the reviewer start?\n\n- start on the src/summernote.js\n\n#### How should this be manually tested?\n\n- click here and here\n\n#### Any background context you want to provide?\n\n- the gem needed to be updated... yada yada\n\n#### What are the relevant tickets?\n\n\n#### Screenshots (if for frontend)\n\n\n### Checklist\n- [ ] added relevant tests\n- [ ] didn't break anything\n- [ ] ...\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/icons/templates/summernote.css",
    "content": "/* Generated by grunt-webfont */\n/* Based on https://github.com/endtwist/fontcustom/blob/master/lib/fontcustom/templates/fontcustom.css */\n\n<% if (fontfaceStyles) { %>\n<% if (fontSrc1 && embed.length) { %>\n@font-face {\n  font-family:\"<%= fontBaseName %>\";\n  src:<%= fontSrc1 %>;\n  font-weight:normal;\n  font-style:normal;\n}\n<% } %>@font-face {\n  font-family:\"<%= fontBaseName %>\";<% if (fontSrc1) { %>\nsrc:<%= fontSrc1 %>;<% }%>\nsrc:<%= fontSrc2 %>;\nfont-weight:normal;\nfont-style:normal;\n}\n<% } %>\n<% if (baseStyles) { %>\n/* Bootstrap Overrides */\n[class^=\"<%= classPrefix %>\"]:before,\n[class*=\" <%= classPrefix %>\"]:before<% if (ie7) {%>,\n[class^=\"<%= classPrefix %>\"],\n[class*=\" <%= classPrefix %>\"]<% } %><% if (addLigatures) { %>,\n.ligature-icons<% } %> {\n  display:inline-block;\n  vertical-align:middle;\n  font: normal normal normal 14px <%= fontBaseName %>;\n  font-size: inherit;\n  speak:none;\n  text-decoration:inherit;\n  text-transform:none;\n  text-rendering:auto;\n  -webkit-font-smoothing:antialiased;\n  -moz-osx-font-smoothing:grayscale;\n}<% } %>\n<% if (iconsStyles && stylesheet === 'less') { %>\n/* Mixins */\n<% for (var glyphIdx = 0; glyphIdx < glyphs.length; glyphIdx++) { %>\n.<%= classPrefix %><%= glyphs[glyphIdx] %><% if(glyphIdx === glyphs.length-1) { %> { <% } else { %>, <% } } %>\n&:before {\n   font-family:\"<%= fontBaseName %>\";\n   display:inline-block;\n   font-weight:normal;\n   font-style:normal;\n   text-decoration:inherit;\n }\n}<% } %>\n<% if (extraStyles) { %>\na [class^=\"<%= classPrefix %>\"],\na [class*=\" <%= classPrefix %>\"] {\n  display:inline-block;\n  text-decoration:inherit;\n}\n/* Makes the font 33% larger relative to the icon container */\n.<%= classPrefix %>large:before {\n vertical-align:top;\n font-size:1.333em;\n}\n/* Keeps button heights with and without icons the same */\n.btn [class^=\"<%= classPrefix %>\"],\n.btn [class*=\" <%= classPrefix %>\"] {\n  line-height:0.9em;\n}\nli [class^=\"<%= classPrefix %>\"],\nli [class*=\" <%= classPrefix %>\"] {\n  display:inline-block;\n  width:1.25em;\n  text-align:center;\n}\n/* 1.5 increased font size for <%= classPrefix %>large * 1.25 width */\nli .<%= classPrefix %>large[class^=\"<%= classPrefix %>\"],\nli .<%= classPrefix %>large[class*=\" <%= classPrefix %>\"] {\n  width:1.875em;\n}\nli[class^=\"<%= classPrefix %>\"],\nli[class*=\" <%= classPrefix %>\"] {\n  margin-left:0;\n  list-style-type:none;\n}\nli[class^=\"<%= classPrefix %>\"]:before,\nli[class*=\" <%= classPrefix %>\"]:before {\n  text-indent:-2em;\n  text-align:center;\n}\nli[class^=\"<%= classPrefix %>\"].<%= classPrefix %>large:before,\nli[class*=\" <%= classPrefix %>\"].<%= classPrefix %>large:before {\n  text-indent:-1.333em;\n}\n<% } %>\n\n<% if (iconsStyles) { %>/* Icons */<% for (var glyphIdx = 0; glyphIdx < glyphs.length; glyphIdx++) { %>\n<% if (stylesheet === 'less') { %>\n.<%= classPrefix %><%= glyphs[glyphIdx] %> {\n&:before {\n   content:\"<% if (addLigatures) { %><%= glyphs[glyphIdx] %><% } else { %>\\<%= codepoints[glyphIdx] %><% } %>\";\n }\n<% if (ie7) {%>\n*zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x<%= codepoints[glyphIdx] %>;');\n  <% } %>\n}<% } else { %>\n<% if (ie7) {%>.<%= classPrefix %><%= glyphs[glyphIdx] %> {\n  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#x<%= codepoints[glyphIdx] %>;');\n}\n<% } %>\n.<%= classPrefix %><%= glyphs[glyphIdx] %>:before {\n  content:\"<% if (addLigatures) { %><%= glyphs[glyphIdx] %><% } else { %>\\<%= codepoints[glyphIdx] %><% } %>\";\n}<% } %>\n<% } } %>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/icons/templates/summernote.json",
    "content": "{\n\t\"baseClass\": \"\",\n\t\"classPrefix\": \"note-icon-\",\n\t\"mixinPrefix\": \"note-icon-\"\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/app.js",
    "content": "var script = document.getElementById('start');\nvar isIE8 = script && script.getAttribute('data-browser') === 'ie8';\n\nvar jqueryLink = isIE8 ? '//code.jquery.com/jquery-1.11.3' : '//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery';\nrequire.config({\n  baseUrl: 'src/js',\n  paths: {\n    jquery: jqueryLink,\n    bootstrap: '//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap',\n    lang: '../../lang/summernote-ko-KR'\n  },\n  shim: {\n    bootstrap: ['jquery'],\n    lang: ['jquery']\n  },\n  packages: [{\n    name: 'summernote',\n    main: 'summernote',\n    location: './'\n  }]\n});\n\nrequire(['jquery', 'summernote'], function ($) {\n  var requireByPromise = function (paths) {\n    return $.Deferred(function (deferred) {\n      require(paths, function () {\n        deferred.resolve.apply(this, arguments);\n      });\n    });\n  };\n\n  var promise = $.Deferred();\n  // editor type setting\n  switch ($('script[data-editor-type]').data('editor-type')) {\n    case 'lite':\n      promise = requireByPromise(['summernote/lite/settings']);\n      break;\n    case 'bs3':\n      promise = requireByPromise(['bootstrap', 'summernote/bs3/settings']).then(function () {\n        return requireByPromise(['lang']);\n      });\n      break;\n  }\n\n  promise.then(function () {\n    // initialize summernote\n    $('.summernote').summernote({\n      height: 300,\n      lang: 'ko-KR',\n      placeholder: 'type here...'\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/Context.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function ($, func, list, dom) {\n  /**\n   * @param {jQuery} $note\n   * @param {Object} options\n   * @return {Context}\n   */\n  var Context = function ($note, options) {\n    var self = this;\n\n    var ui = $.summernote.ui;\n    this.memos = {};\n    this.modules = {};\n    this.layoutInfo = {};\n    this.options = options;\n\n    /**\n     * create layout and initialize modules and other resources\n     */\n    this.initialize = function () {\n      this.layoutInfo = ui.createLayout($note, options);\n      this._initialize();\n      $note.hide();\n      return this;\n    };\n\n    /**\n     * destroy modules and other resources and remove layout\n     */\n    this.destroy = function () {\n      this._destroy();\n      $note.removeData('summernote');\n      ui.removeLayout($note, this.layoutInfo);\n    };\n\n    /**\n     * destory modules and other resources and initialize it again\n     */\n    this.reset = function () {\n      var disabled = self.isDisabled();\n      this.code(dom.emptyPara);\n      this._destroy();\n      this._initialize();\n\n      if (disabled) {\n        self.disable();\n      }\n    };\n\n    this._initialize = function () {\n      // add optional buttons\n      var buttons = $.extend({}, this.options.buttons);\n      Object.keys(buttons).forEach(function (key) {\n        self.memo('button.' + key, buttons[key]);\n      });\n\n      var modules = $.extend({}, this.options.modules, $.summernote.plugins || {});\n\n      // add and initialize modules\n      Object.keys(modules).forEach(function (key) {\n        self.module(key, modules[key], true);\n      });\n\n      Object.keys(this.modules).forEach(function (key) {\n        self.initializeModule(key);\n      });\n    };\n\n    this._destroy = function () {\n      // destroy modules with reversed order\n      Object.keys(this.modules).reverse().forEach(function (key) {\n        self.removeModule(key);\n      });\n\n      Object.keys(this.memos).forEach(function (key) {\n        self.removeMemo(key);\n      });\n    };\n\n    this.code = function (html) {\n      var isActivated = this.invoke('codeview.isActivated');\n\n      if (html === undefined) {\n        this.invoke('codeview.sync');\n        return isActivated ? this.layoutInfo.codable.val() : this.layoutInfo.editable.html();\n      } else {\n        if (isActivated) {\n          this.layoutInfo.codable.val(html);\n        } else {\n          this.layoutInfo.editable.html(html);\n        }\n        $note.val(html);\n        this.triggerEvent('change', html);\n      }\n    };\n\n    this.isDisabled = function () {\n      return this.layoutInfo.editable.attr('contenteditable') === 'false';\n    };\n\n    this.enable = function () {\n      this.layoutInfo.editable.attr('contenteditable', true);\n      this.invoke('toolbar.activate', true);\n    };\n\n    this.disable = function () {\n      // close codeview if codeview is opend\n      if (this.invoke('codeview.isActivated')) {\n        this.invoke('codeview.deactivate');\n      }\n      this.layoutInfo.editable.attr('contenteditable', false);\n      this.invoke('toolbar.deactivate', true);\n    };\n\n    this.triggerEvent = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var callback = this.options.callbacks[func.namespaceToCamel(namespace, 'on')];\n      if (callback) {\n        callback.apply($note[0], args);\n      }\n      $note.trigger('summernote.' + namespace, args);\n    };\n\n    this.initializeModule = function (key) {\n      var module = this.modules[key];\n      module.shouldInitialize = module.shouldInitialize || func.ok;\n      if (!module.shouldInitialize()) {\n        return;\n      }\n\n      // initialize module\n      if (module.initialize) {\n        module.initialize();\n      }\n\n      // attach events\n      if (module.events) {\n        dom.attachEvents($note, module.events);\n      }\n    };\n\n    this.module = function (key, ModuleClass, withoutIntialize) {\n      if (arguments.length === 1) {\n        return this.modules[key];\n      }\n\n      this.modules[key] = new ModuleClass(this);\n\n      if (!withoutIntialize) {\n        this.initializeModule(key);\n      }\n    };\n\n    this.removeModule = function (key) {\n      var module = this.modules[key];\n      if (module.shouldInitialize()) {\n        if (module.events) {\n          dom.detachEvents($note, module.events);\n        }\n\n        if (module.destroy) {\n          module.destroy();\n        }\n      }\n\n      delete this.modules[key];\n    };\n\n    this.memo = function (key, obj) {\n      if (arguments.length === 1) {\n        return this.memos[key];\n      }\n      this.memos[key] = obj;\n    };\n\n    this.removeMemo = function (key) {\n      if (this.memos[key] && this.memos[key].destroy) {\n        this.memos[key].destroy();\n      }\n\n      delete this.memos[key];\n    };\n\n    this.createInvokeHandler = function (namespace, value) {\n      return function (event) {\n        event.preventDefault();\n        self.invoke(namespace, value || $(event.target).closest('[data-value]').data('value'));\n      };\n    };\n\n    this.invoke = function () {\n      var namespace = list.head(arguments);\n      var args = list.tail(list.from(arguments));\n\n      var splits = namespace.split('.');\n      var hasSeparator = splits.length > 1;\n      var moduleName = hasSeparator && list.head(splits);\n      var methodName = hasSeparator ? list.last(splits) : list.head(splits);\n\n      var module = this.modules[moduleName || 'editor'];\n      if (!moduleName && this[methodName]) {\n        return this[methodName].apply(this, args);\n      } else if (module && module[methodName] && module.shouldInitialize()) {\n        return module[methodName].apply(module, args);\n      }\n    };\n\n    return this.initialize();\n  };\n\n  return Context;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/core/agent.js",
    "content": "define(['jquery'], function ($) {\n  var isSupportAmd = typeof define === 'function' && define.amd;\n\n  /**\n   * returns whether font is installed or not.\n   *\n   * @param {String} fontName\n   * @return {Boolean}\n   */\n  var isFontInstalled = function (fontName) {\n    var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';\n    var $tester = $('<div>').css({\n      position: 'absolute',\n      left: '-9999px',\n      top: '-9999px',\n      fontSize: '200px'\n    }).text('mmmmmmmmmwwwwwww').appendTo(document.body);\n\n    var originalWidth = $tester.css('fontFamily', testFontName).width();\n    var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();\n\n    $tester.remove();\n\n    return originalWidth !== width;\n  };\n\n  var userAgent = navigator.userAgent;\n  var isMSIE = /MSIE|Trident/i.test(userAgent);\n  var browserVersion;\n  if (isMSIE) {\n    var matches = /MSIE (\\d+[.]\\d+)/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n    matches = /Trident\\/.*rv:([0-9]{1,}[\\.0-9]{0,})/.exec(userAgent);\n    if (matches) {\n      browserVersion = parseFloat(matches[1]);\n    }\n  }\n\n  var isEdge = /Edge\\/\\d+/.test(userAgent);\n\n  var hasCodeMirror = !!window.CodeMirror;\n  if (!hasCodeMirror && isSupportAmd && typeof require !== 'undefined') {\n    if (typeof require.resolve !== 'undefined') {\n      try {\n        // If CodeMirror can't be resolved, `require.resolve` will throw an\n        // exception and `hasCodeMirror` won't be set to `true`.\n        require.resolve('codemirror');\n        hasCodeMirror = true;\n      } catch (e) {\n        // Do nothing.\n      }\n    } else if (typeof eval('require').specified !== 'undefined') {\n      hasCodeMirror = eval('require').specified('codemirror');\n    }\n  }\n\n  /**\n   * @class core.agent\n   *\n   * Object which check platform and agent\n   *\n   * @singleton\n   * @alternateClassName agent\n   */\n  var agent = {\n    isMac: navigator.appVersion.indexOf('Mac') > -1,\n    isMSIE: isMSIE,\n    isEdge: isEdge,\n    isFF: !isEdge && /firefox/i.test(userAgent),\n    isPhantom: /PhantomJS/i.test(userAgent),\n    isWebkit: !isEdge && /webkit/i.test(userAgent),\n    isChrome: !isEdge && /chrome/i.test(userAgent),\n    isSafari: !isEdge && /safari/i.test(userAgent),\n    browserVersion: browserVersion,\n    jqueryVersion: parseFloat($.fn.jquery),\n    isSupportAmd: isSupportAmd,\n    hasCodeMirror: hasCodeMirror,\n    isFontInstalled: isFontInstalled,\n    isW3CRangeSupport: !!document.createRange\n  };\n\n  return agent;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/core/async.js",
    "content": "define(function () {\n  /**\n   * @class core.async\n   *\n   * Async functions which returns `Promise`\n   *\n   * @singleton\n   * @alternateClassName async\n   */\n  var async = (function () {\n    /**\n     * @method readFileAsDataURL\n     *\n     * read contents of file as representing URL\n     *\n     * @param {File} file\n     * @return {Promise} - then: dataUrl\n     */\n    var readFileAsDataURL = function (file) {\n      return $.Deferred(function (deferred) {\n        $.extend(new FileReader(), {\n          onload: function (e) {\n            var dataURL = e.target.result;\n            deferred.resolve(dataURL);\n          },\n          onerror: function () {\n            deferred.reject(this);\n          }\n        }).readAsDataURL(file);\n      }).promise();\n    };\n  \n    /**\n     * @method createImage\n     *\n     * create `<image>` from url string\n     *\n     * @param {String} url\n     * @return {Promise} - then: $image\n     */\n    var createImage = function (url) {\n      return $.Deferred(function (deferred) {\n        var $img = $('<img>');\n\n        $img.one('load', function () {\n          $img.off('error abort');\n          deferred.resolve($img);\n        }).one('error abort', function () {\n          $img.off('load').detach();\n          deferred.reject($img);\n        }).css({\n          display: 'none'\n        }).appendTo(document.body).attr('src', url);\n      }).promise();\n    };\n\n    return {\n      readFileAsDataURL: readFileAsDataURL,\n      createImage: createImage\n    };\n  })();\n\n  return async;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/core/dom.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/agent'\n], function (func, list, agent) {\n\n  var NBSP_CHAR = String.fromCharCode(160);\n  var ZERO_WIDTH_NBSP_CHAR = '\\ufeff';\n\n  /**\n   * @class core.dom\n   *\n   * Dom functions\n   *\n   * @singleton\n   * @alternateClassName dom\n   */\n  var dom = (function () {\n    /**\n     * @method isEditable\n     *\n     * returns whether node is `note-editable` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEditable = function (node) {\n      return node && $(node).hasClass('note-editable');\n    };\n\n    /**\n     * @method isControlSizing\n     *\n     * returns whether node is `note-control-sizing` or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isControlSizing = function (node) {\n      return node && $(node).hasClass('note-control-sizing');\n    };\n\n    /**\n     * @method makePredByNodeName\n     *\n     * returns predicate which judge whether nodeName is same\n     *\n     * @param {String} nodeName\n     * @return {Function}\n     */\n    var makePredByNodeName = function (nodeName) {\n      nodeName = nodeName.toUpperCase();\n      return function (node) {\n        return node && node.nodeName.toUpperCase() === nodeName;\n      };\n    };\n\n    /**\n     * @method isText\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is text(3)\n     */\n    var isText = function (node) {\n      return node && node.nodeType === 3;\n    };\n\n    /**\n     * @method isElement\n     *\n     *\n     *\n     * @param {Node} node\n     * @return {Boolean} true if node's type is element(1)\n     */\n    var isElement = function (node) {\n      return node && node.nodeType === 1;\n    };\n\n    /**\n     * ex) br, col, embed, hr, img, input, ...\n     * @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements\n     */\n    var isVoid = function (node) {\n      return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPara = function (node) {\n      if (isEditable(node)) {\n        return false;\n      }\n\n      // Chrome(v31.0), FF(v25.0.1) use DIV for paragraph\n      return node && /^DIV|^P|^LI|^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHeading = function (node) {\n      return node && /^H[1-7]/.test(node.nodeName.toUpperCase());\n    };\n\n    var isPre = makePredByNodeName('PRE');\n\n    var isLi = makePredByNodeName('LI');\n\n    var isPurePara = function (node) {\n      return isPara(node) && !isLi(node);\n    };\n\n    var isTable = makePredByNodeName('TABLE');\n\n    var isData = makePredByNodeName('DATA');\n\n    var isInline = function (node) {\n      return !isBodyContainer(node) &&\n             !isList(node) &&\n             !isHr(node) &&\n             !isPara(node) &&\n             !isTable(node) &&\n             !isBlockquote(node) &&\n             !isData(node);\n    };\n\n    var isList = function (node) {\n      return node && /^UL|^OL/.test(node.nodeName.toUpperCase());\n    };\n\n    var isHr = makePredByNodeName('HR');\n\n    var isCell = function (node) {\n      return node && /^TD|^TH/.test(node.nodeName.toUpperCase());\n    };\n\n    var isBlockquote = makePredByNodeName('BLOCKQUOTE');\n\n    var isBodyContainer = function (node) {\n      return isCell(node) || isBlockquote(node) || isEditable(node);\n    };\n\n    var isAnchor = makePredByNodeName('A');\n\n    var isParaInline = function (node) {\n      return isInline(node) && !!ancestor(node, isPara);\n    };\n\n    var isBodyInline = function (node) {\n      return isInline(node) && !ancestor(node, isPara);\n    };\n\n    var isBody = makePredByNodeName('BODY');\n\n    /**\n     * returns whether nodeB is closest sibling of nodeA\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     * @return {Boolean}\n     */\n    var isClosestSibling = function (nodeA, nodeB) {\n      return nodeA.nextSibling === nodeB ||\n             nodeA.previousSibling === nodeB;\n    };\n\n    /**\n     * returns array of closest siblings with node\n     *\n     * @param {Node} node\n     * @param {function} [pred] - predicate function\n     * @return {Node[]}\n     */\n    var withClosestSiblings = function (node, pred) {\n      pred = pred || func.ok;\n\n      var siblings = [];\n      if (node.previousSibling && pred(node.previousSibling)) {\n        siblings.push(node.previousSibling);\n      }\n      siblings.push(node);\n      if (node.nextSibling && pred(node.nextSibling)) {\n        siblings.push(node.nextSibling);\n      }\n      return siblings;\n    };\n\n    /**\n     * blank HTML for cursor position\n     * - [workaround] old IE only works with &nbsp;\n     * - [workaround] IE11 and other browser works with bogus br\n     */\n    var blankHTML = agent.isMSIE && agent.browserVersion < 11 ? '&nbsp;' : '<br>';\n\n    /**\n     * @method nodeLength\n     *\n     * returns #text's text size or element's childNodes size\n     *\n     * @param {Node} node\n     */\n    var nodeLength = function (node) {\n      if (isText(node)) {\n        return node.nodeValue.length;\n      }\n      \n      if (node) {\n        return node.childNodes.length;\n      }\n      \n      return 0;\n      \n    };\n\n    /**\n     * returns whether node is empty or not.\n     *\n     * @param {Node} node\n     * @return {Boolean}\n     */\n    var isEmpty = function (node) {\n      var len = nodeLength(node);\n\n      if (len === 0) {\n        return true;\n      } else if (!isText(node) && len === 1 && node.innerHTML === blankHTML) {\n        // ex) <p><br></p>, <span><br></span>\n        return true;\n      } else if (list.all(node.childNodes, isText) && node.innerHTML === '') {\n        // ex) <p></p>, <span></span>\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * padding blankHTML if node is empty (for cursor position)\n     */\n    var paddingBlankHTML = function (node) {\n      if (!isVoid(node) && !nodeLength(node)) {\n        node.innerHTML = blankHTML;\n      }\n    };\n\n    /**\n     * find nearest ancestor predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var ancestor = function (node, pred) {\n      while (node) {\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * find nearest ancestor only single child blood line and predicate hit\n     *\n     * @param {Node} node\n     * @param {Function} pred - predicate function\n     */\n    var singleChildAncestor = function (node, pred) {\n      node = node.parentNode;\n\n      while (node) {\n        if (nodeLength(node) !== 1) { break; }\n        if (pred(node)) { return node; }\n        if (isEditable(node)) { break; }\n\n        node = node.parentNode;\n      }\n      return null;\n    };\n\n    /**\n     * returns new array of ancestor nodes (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listAncestor = function (node, pred) {\n      pred = pred || func.fail;\n\n      var ancestors = [];\n      ancestor(node, function (el) {\n        if (!isEditable(el)) {\n          ancestors.push(el);\n        }\n\n        return pred(el);\n      });\n      return ancestors;\n    };\n\n    /**\n     * find farthest ancestor predicate hit\n     */\n    var lastAncestor = function (node, pred) {\n      var ancestors = listAncestor(node);\n      return list.last(ancestors.filter(pred));\n    };\n\n    /**\n     * returns common ancestor node between two nodes.\n     *\n     * @param {Node} nodeA\n     * @param {Node} nodeB\n     */\n    var commonAncestor = function (nodeA, nodeB) {\n      var ancestors = listAncestor(nodeA);\n      for (var n = nodeB; n; n = n.parentNode) {\n        if ($.inArray(n, ancestors) > -1) { return n; }\n      }\n      return null; // difference document area\n    };\n\n    /**\n     * listing all previous siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [optional] pred - predicate function\n     */\n    var listPrev = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.previousSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing next siblings (until predicate hit).\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listNext = function (node, pred) {\n      pred = pred || func.fail;\n\n      var nodes = [];\n      while (node) {\n        if (pred(node)) { break; }\n        nodes.push(node);\n        node = node.nextSibling;\n      }\n      return nodes;\n    };\n\n    /**\n     * listing descendant nodes\n     *\n     * @param {Node} node\n     * @param {Function} [pred] - predicate function\n     */\n    var listDescendant = function (node, pred) {\n      var descendants = [];\n      pred = pred || func.ok;\n\n      // start DFS(depth first search) with node\n      (function fnWalk(current) {\n        if (node !== current && pred(current)) {\n          descendants.push(current);\n        }\n        for (var idx = 0, len = current.childNodes.length; idx < len; idx++) {\n          fnWalk(current.childNodes[idx]);\n        }\n      })(node);\n\n      return descendants;\n    };\n\n    /**\n     * wrap node with new tag.\n     *\n     * @param {Node} node\n     * @param {Node} tagName of wrapper\n     * @return {Node} - wrapper\n     */\n    var wrap = function (node, wrapperName) {\n      var parent = node.parentNode;\n      var wrapper = $('<' + wrapperName + '>')[0];\n\n      parent.insertBefore(wrapper, node);\n      wrapper.appendChild(node);\n\n      return wrapper;\n    };\n\n    /**\n     * insert node after preceding\n     *\n     * @param {Node} node\n     * @param {Node} preceding - predicate function\n     */\n    var insertAfter = function (node, preceding) {\n      var next = preceding.nextSibling, parent = preceding.parentNode;\n      if (next) {\n        parent.insertBefore(node, next);\n      } else {\n        parent.appendChild(node);\n      }\n      return node;\n    };\n\n    /**\n     * append elements.\n     *\n     * @param {Node} node\n     * @param {Collection} aChild\n     */\n    var appendChildNodes = function (node, aChild) {\n      $.each(aChild, function (idx, child) {\n        node.appendChild(child);\n      });\n      return node;\n    };\n\n    /**\n     * returns whether boundaryPoint is left edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isLeftEdgePoint = function (point) {\n      return point.offset === 0;\n    };\n\n    /**\n     * returns whether boundaryPoint is right edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isRightEdgePoint = function (point) {\n      return point.offset === nodeLength(point.node);\n    };\n\n    /**\n     * returns whether boundaryPoint is edge or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isEdgePoint = function (point) {\n      return isLeftEdgePoint(point) || isRightEdgePoint(point);\n    };\n\n    /**\n     * returns whether node is left edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgeOf = function (node, ancestor) {\n      while (node && node !== ancestor) {\n        if (position(node) !== 0) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether node is right edge of ancestor or not.\n     *\n     * @param {Node} node\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgeOf = function (node, ancestor) {\n      if (!ancestor) {\n        return false;\n      }\n      while (node && node !== ancestor) {\n        if (position(node) !== nodeLength(node.parentNode) - 1) {\n          return false;\n        }\n        node = node.parentNode;\n      }\n\n      return true;\n    };\n\n    /**\n     * returns whether point is left edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isLeftEdgePointOf = function (point, ancestor) {\n      return isLeftEdgePoint(point) && isLeftEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns whether point is right edge of ancestor or not.\n     * @param {BoundaryPoint} point\n     * @param {Node} ancestor\n     * @return {Boolean}\n     */\n    var isRightEdgePointOf = function (point, ancestor) {\n      return isRightEdgePoint(point) && isRightEdgeOf(point.node, ancestor);\n    };\n\n    /**\n     * returns offset from parent.\n     *\n     * @param {Node} node\n     */\n    var position = function (node) {\n      var offset = 0;\n      while ((node = node.previousSibling)) {\n        offset += 1;\n      }\n      return offset;\n    };\n\n    var hasChildren = function (node) {\n      return !!(node && node.childNodes && node.childNodes.length);\n    };\n\n    /**\n     * returns previous boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var prevPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (point.offset === 0) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node);\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset - 1];\n        offset = nodeLength(node);\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? 0 : point.offset - 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns next boundaryPoint\n     *\n     * @param {BoundaryPoint} point\n     * @param {Boolean} isSkipInnerOffset\n     * @return {BoundaryPoint}\n     */\n    var nextPoint = function (point, isSkipInnerOffset) {\n      var node, offset;\n\n      if (nodeLength(point.node) === point.offset) {\n        if (isEditable(point.node)) {\n          return null;\n        }\n\n        node = point.node.parentNode;\n        offset = position(point.node) + 1;\n      } else if (hasChildren(point.node)) {\n        node = point.node.childNodes[point.offset];\n        offset = 0;\n      } else {\n        node = point.node;\n        offset = isSkipInnerOffset ? nodeLength(point.node) : point.offset + 1;\n      }\n\n      return {\n        node: node,\n        offset: offset\n      };\n    };\n\n    /**\n     * returns whether pointA and pointB is same or not.\n     *\n     * @param {BoundaryPoint} pointA\n     * @param {BoundaryPoint} pointB\n     * @return {Boolean}\n     */\n    var isSamePoint = function (pointA, pointB) {\n      return pointA.node === pointB.node && pointA.offset === pointB.offset;\n    };\n\n    /**\n     * returns whether point is visible (can set cursor) or not.\n     *\n     * @param {BoundaryPoint} point\n     * @return {Boolean}\n     */\n    var isVisiblePoint = function (point) {\n      if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {\n        return true;\n      }\n\n      var leftNode = point.node.childNodes[point.offset - 1];\n      var rightNode = point.node.childNodes[point.offset];\n      if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {\n        return true;\n      }\n\n      return false;\n    };\n\n    /**\n     * @method prevPointUtil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var prevPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = prevPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * @method nextPointUntil\n     *\n     * @param {BoundaryPoint} point\n     * @param {Function} pred\n     * @return {BoundaryPoint}\n     */\n    var nextPointUntil = function (point, pred) {\n      while (point) {\n        if (pred(point)) {\n          return point;\n        }\n\n        point = nextPoint(point);\n      }\n\n      return null;\n    };\n\n    /**\n     * returns whether point has character or not.\n     *\n     * @param {Point} point\n     * @return {Boolean}\n     */\n    var isCharPoint = function (point) {\n      if (!isText(point.node)) {\n        return false;\n      }\n\n      var ch = point.node.nodeValue.charAt(point.offset - 1);\n      return ch && (ch !== ' ' && ch !== NBSP_CHAR);\n    };\n\n    /**\n     * @method walkPoint\n     *\n     * @param {BoundaryPoint} startPoint\n     * @param {BoundaryPoint} endPoint\n     * @param {Function} handler\n     * @param {Boolean} isSkipInnerOffset\n     */\n    var walkPoint = function (startPoint, endPoint, handler, isSkipInnerOffset) {\n      var point = startPoint;\n\n      while (point) {\n        handler(point);\n\n        if (isSamePoint(point, endPoint)) {\n          break;\n        }\n\n        var isSkipOffset = isSkipInnerOffset &&\n                           startPoint.node !== point.node &&\n                           endPoint.node !== point.node;\n        point = nextPoint(point, isSkipOffset);\n      }\n    };\n\n    /**\n     * @method makeOffsetPath\n     *\n     * return offsetPath(array of offset) from ancestor\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {Node} node\n     */\n    var makeOffsetPath = function (ancestor, node) {\n      var ancestors = listAncestor(node, func.eq(ancestor));\n      return ancestors.map(position).reverse();\n    };\n\n    /**\n     * @method fromOffsetPath\n     *\n     * return element from offsetPath(array of offset)\n     *\n     * @param {Node} ancestor - ancestor node\n     * @param {array} offsets - offsetPath\n     */\n    var fromOffsetPath = function (ancestor, offsets) {\n      var current = ancestor;\n      for (var i = 0, len = offsets.length; i < len; i++) {\n        if (current.childNodes.length <= offsets[i]) {\n          current = current.childNodes[current.childNodes.length - 1];\n        } else {\n          current = current.childNodes[offsets[i]];\n        }\n      }\n      return current;\n    };\n\n    /**\n     * @method splitNode\n     *\n     * split element or #text\n     *\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitNode = function (point, options) {\n      var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;\n      var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;\n\n      // edge case\n      if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {\n        if (isLeftEdgePoint(point)) {\n          return point.node;\n        } else if (isRightEdgePoint(point)) {\n          return point.node.nextSibling;\n        }\n      }\n\n      // split #text\n      if (isText(point.node)) {\n        return point.node.splitText(point.offset);\n      } else {\n        var childNode = point.node.childNodes[point.offset];\n        var clone = insertAfter(point.node.cloneNode(false), point.node);\n        appendChildNodes(clone, listNext(childNode));\n\n        if (!isSkipPaddingBlankHTML) {\n          paddingBlankHTML(point.node);\n          paddingBlankHTML(clone);\n        }\n\n        return clone;\n      }\n    };\n\n    /**\n     * @method splitTree\n     *\n     * split tree by point\n     *\n     * @param {Node} root - split root\n     * @param {BoundaryPoint} point\n     * @param {Object} [options]\n     * @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false\n     * @param {Boolean} [options.isNotSplitEdgePoint] - default: false\n     * @return {Node} right node of boundaryPoint\n     */\n    var splitTree = function (root, point, options) {\n      // ex) [#text, <span>, <p>]\n      var ancestors = listAncestor(point.node, func.eq(root));\n\n      if (!ancestors.length) {\n        return null;\n      } else if (ancestors.length === 1) {\n        return splitNode(point, options);\n      }\n\n      return ancestors.reduce(function (node, parent) {\n        if (node === point.node) {\n          node = splitNode(point, options);\n        }\n\n        return splitNode({\n          node: parent,\n          offset: node ? dom.position(node) : nodeLength(parent)\n        }, options);\n      });\n    };\n\n    /**\n     * split point\n     *\n     * @param {Point} point\n     * @param {Boolean} isInline\n     * @return {Object}\n     */\n    var splitPoint = function (point, isInline) {\n      // find splitRoot, container\n      //  - inline: splitRoot is a child of paragraph\n      //  - block: splitRoot is a child of bodyContainer\n      var pred = isInline ? isPara : isBodyContainer;\n      var ancestors = listAncestor(point.node, pred);\n      var topAncestor = list.last(ancestors) || point.node;\n\n      var splitRoot, container;\n      if (pred(topAncestor)) {\n        splitRoot = ancestors[ancestors.length - 2];\n        container = topAncestor;\n      } else {\n        splitRoot = topAncestor;\n        container = splitRoot.parentNode;\n      }\n\n      // if splitRoot is exists, split with splitTree\n      var pivot = splitRoot && splitTree(splitRoot, point, {\n        isSkipPaddingBlankHTML: isInline,\n        isNotSplitEdgePoint: isInline\n      });\n\n      // if container is point.node, find pivot with point.offset\n      if (!pivot && container === point.node) {\n        pivot = point.node.childNodes[point.offset];\n      }\n\n      return {\n        rightNode: pivot,\n        container: container\n      };\n    };\n\n    var create = function (nodeName) {\n      return document.createElement(nodeName);\n    };\n\n    var createText = function (text) {\n      return document.createTextNode(text);\n    };\n\n    /**\n     * @method remove\n     *\n     * remove node, (isRemoveChild: remove child or not)\n     *\n     * @param {Node} node\n     * @param {Boolean} isRemoveChild\n     */\n    var remove = function (node, isRemoveChild) {\n      if (!node || !node.parentNode) { return; }\n      if (node.removeNode) { return node.removeNode(isRemoveChild); }\n\n      var parent = node.parentNode;\n      if (!isRemoveChild) {\n        var nodes = [];\n        var i, len;\n        for (i = 0, len = node.childNodes.length; i < len; i++) {\n          nodes.push(node.childNodes[i]);\n        }\n\n        for (i = 0, len = nodes.length; i < len; i++) {\n          parent.insertBefore(nodes[i], node);\n        }\n      }\n\n      parent.removeChild(node);\n    };\n\n    /**\n     * @method removeWhile\n     *\n     * @param {Node} node\n     * @param {Function} pred\n     */\n    var removeWhile = function (node, pred) {\n      while (node) {\n        if (isEditable(node) || !pred(node)) {\n          break;\n        }\n\n        var parent = node.parentNode;\n        remove(node);\n        node = parent;\n      }\n    };\n\n    /**\n     * @method replace\n     *\n     * replace node with provided nodeName\n     *\n     * @param {Node} node\n     * @param {String} nodeName\n     * @return {Node} - new node\n     */\n    var replace = function (node, nodeName) {\n      if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {\n        return node;\n      }\n\n      var newNode = create(nodeName);\n\n      if (node.style.cssText) {\n        newNode.style.cssText = node.style.cssText;\n      }\n\n      appendChildNodes(newNode, list.from(node.childNodes));\n      insertAfter(newNode, node);\n      remove(node);\n\n      return newNode;\n    };\n\n    var isTextarea = makePredByNodeName('TEXTAREA');\n\n    /**\n     * @param {jQuery} $node\n     * @param {Boolean} [stripLinebreaks] - default: false\n     */\n    var value = function ($node, stripLinebreaks) {\n      var val = isTextarea($node[0]) ? $node.val() : $node.html();\n      if (stripLinebreaks) {\n        return val.replace(/[\\n\\r]/g, '');\n      }\n      return val;\n    };\n\n    /**\n     * @method html\n     *\n     * get the HTML contents of node\n     *\n     * @param {jQuery} $node\n     * @param {Boolean} [isNewlineOnBlock]\n     */\n    var html = function ($node, isNewlineOnBlock) {\n      var markup = value($node);\n\n      if (isNewlineOnBlock) {\n        var regexTag = /<(\\/?)(\\b(?!!)[^>\\s]*)(.*?)(\\s*\\/?>)/g;\n        markup = markup.replace(regexTag, function (match, endSlash, name) {\n          name = name.toUpperCase();\n          var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&\n                                       !!endSlash;\n          var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);\n\n          return match + ((isEndOfInlineContainer || isBlockNode) ? '\\n' : '');\n        });\n        markup = $.trim(markup);\n      }\n\n      return markup;\n    };\n\n    var posFromPlaceholder = function (placeholder) {\n      var $placeholder = $(placeholder);\n      var pos = $placeholder.offset();\n      var height = $placeholder.outerHeight(true); // include margin\n\n      return {\n        left: pos.left,\n        top: pos.top + height\n      };\n    };\n\n    var attachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.on(key, events[key]);\n      });\n    };\n\n    var detachEvents = function ($node, events) {\n      Object.keys(events).forEach(function (key) {\n        $node.off(key, events[key]);\n      });\n    };\n\n    return {\n      /** @property {String} NBSP_CHAR */\n      NBSP_CHAR: NBSP_CHAR,\n      /** @property {String} ZERO_WIDTH_NBSP_CHAR */\n      ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,\n      /** @property {String} blank */\n      blank: blankHTML,\n      /** @property {String} emptyPara */\n      emptyPara: '<p>' + blankHTML + '</p>',\n      makePredByNodeName: makePredByNodeName,\n      isEditable: isEditable,\n      isControlSizing: isControlSizing,\n      isText: isText,\n      isElement: isElement,\n      isVoid: isVoid,\n      isPara: isPara,\n      isPurePara: isPurePara,\n      isHeading: isHeading,\n      isInline: isInline,\n      isBlock: func.not(isInline),\n      isBodyInline: isBodyInline,\n      isBody: isBody,\n      isParaInline: isParaInline,\n      isPre: isPre,\n      isList: isList,\n      isTable: isTable,\n      isData: isData,\n      isCell: isCell,\n      isBlockquote: isBlockquote,\n      isBodyContainer: isBodyContainer,\n      isAnchor: isAnchor,\n      isDiv: makePredByNodeName('DIV'),\n      isLi: isLi,\n      isBR: makePredByNodeName('BR'),\n      isSpan: makePredByNodeName('SPAN'),\n      isB: makePredByNodeName('B'),\n      isU: makePredByNodeName('U'),\n      isS: makePredByNodeName('S'),\n      isI: makePredByNodeName('I'),\n      isImg: makePredByNodeName('IMG'),\n      isTextarea: isTextarea,\n      isEmpty: isEmpty,\n      isEmptyAnchor: func.and(isAnchor, isEmpty),\n      isClosestSibling: isClosestSibling,\n      withClosestSiblings: withClosestSiblings,\n      nodeLength: nodeLength,\n      isLeftEdgePoint: isLeftEdgePoint,\n      isRightEdgePoint: isRightEdgePoint,\n      isEdgePoint: isEdgePoint,\n      isLeftEdgeOf: isLeftEdgeOf,\n      isRightEdgeOf: isRightEdgeOf,\n      isLeftEdgePointOf: isLeftEdgePointOf,\n      isRightEdgePointOf: isRightEdgePointOf,\n      prevPoint: prevPoint,\n      nextPoint: nextPoint,\n      isSamePoint: isSamePoint,\n      isVisiblePoint: isVisiblePoint,\n      prevPointUntil: prevPointUntil,\n      nextPointUntil: nextPointUntil,\n      isCharPoint: isCharPoint,\n      walkPoint: walkPoint,\n      ancestor: ancestor,\n      singleChildAncestor: singleChildAncestor,\n      listAncestor: listAncestor,\n      lastAncestor: lastAncestor,\n      listNext: listNext,\n      listPrev: listPrev,\n      listDescendant: listDescendant,\n      commonAncestor: commonAncestor,\n      wrap: wrap,\n      insertAfter: insertAfter,\n      appendChildNodes: appendChildNodes,\n      position: position,\n      hasChildren: hasChildren,\n      makeOffsetPath: makeOffsetPath,\n      fromOffsetPath: fromOffsetPath,\n      splitTree: splitTree,\n      splitPoint: splitPoint,\n      create: create,\n      createText: createText,\n      remove: remove,\n      removeWhile: removeWhile,\n      replace: replace,\n      html: html,\n      value: value,\n      posFromPlaceholder: posFromPlaceholder,\n      attachEvents: attachEvents,\n      detachEvents: detachEvents\n    };\n  })();\n\n  return dom;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/core/func.js",
    "content": "define(function () {\n  /**\n   * @class core.func\n   *\n   * func utils (for high-order func's arg)\n   *\n   * @singleton\n   * @alternateClassName func\n   */\n  var func = (function () {\n    var eq = function (itemA) {\n      return function (itemB) {\n        return itemA === itemB;\n      };\n    };\n\n    var eq2 = function (itemA, itemB) {\n      return itemA === itemB;\n    };\n\n    var peq2 = function (propName) {\n      return function (itemA, itemB) {\n        return itemA[propName] === itemB[propName];\n      };\n    };\n\n    var ok = function () {\n      return true;\n    };\n\n    var fail = function () {\n      return false;\n    };\n\n    var not = function (f) {\n      return function () {\n        return !f.apply(f, arguments);\n      };\n    };\n\n    var and = function (fA, fB) {\n      return function (item) {\n        return fA(item) && fB(item);\n      };\n    };\n\n    var self = function (a) {\n      return a;\n    };\n\n    var invoke = function (obj, method) {\n      return function () {\n        return obj[method].apply(obj, arguments);\n      };\n    };\n\n    var idCounter = 0;\n\n    /**\n     * generate a globally-unique id\n     *\n     * @param {String} [prefix]\n     */\n    var uniqueId = function (prefix) {\n      var id = ++idCounter + '';\n      return prefix ? prefix + id : id;\n    };\n\n    /**\n     * returns bnd (bounds) from rect\n     *\n     * - IE Compatibility Issue: http://goo.gl/sRLOAo\n     * - Scroll Issue: http://goo.gl/sNjUc\n     *\n     * @param {Rect} rect\n     * @return {Object} bounds\n     * @return {Number} bounds.top\n     * @return {Number} bounds.left\n     * @return {Number} bounds.width\n     * @return {Number} bounds.height\n     */\n    var rect2bnd = function (rect) {\n      var $document = $(document);\n      return {\n        top: rect.top + $document.scrollTop(),\n        left: rect.left + $document.scrollLeft(),\n        width: rect.right - rect.left,\n        height: rect.bottom - rect.top\n      };\n    };\n\n    /**\n     * returns a copy of the object where the keys have become the values and the values the keys.\n     * @param {Object} obj\n     * @return {Object}\n     */\n    var invertObject = function (obj) {\n      var inverted = {};\n      for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n          inverted[obj[key]] = key;\n        }\n      }\n      return inverted;\n    };\n\n    /**\n     * @param {String} namespace\n     * @param {String} [prefix]\n     * @return {String}\n     */\n    var namespaceToCamel = function (namespace, prefix) {\n      prefix = prefix || '';\n      return prefix + namespace.split('.').map(function (name) {\n        return name.substring(0, 1).toUpperCase() + name.substring(1);\n      }).join('');\n    };\n\n    /**\n     * Returns a function, that, as long as it continues to be invoked, will not\n     * be triggered. The function will be called after it stops being called for\n     * N milliseconds. If `immediate` is passed, trigger the function on the\n     * leading edge, instead of the trailing.\n     * @param {Function} func\n     * @param {Number} wait\n     * @param {Boolean} immediate\n     * @return {Function}\n     */\n    var debounce = function (func, wait, immediate) {\n      var timeout;\n      return function () {\n        var context = this, args = arguments;\n        var later = function () {\n          timeout = null;\n          if (!immediate) {\n            func.apply(context, args);\n          }\n        };\n        var callNow = immediate && !timeout;\n        clearTimeout(timeout);\n        timeout = setTimeout(later, wait);\n        if (callNow) {\n          func.apply(context, args);\n        }\n      };\n    };\n\n    return {\n      eq: eq,\n      eq2: eq2,\n      peq2: peq2,\n      ok: ok,\n      fail: fail,\n      self: self,\n      not: not,\n      and: and,\n      invoke: invoke,\n      uniqueId: uniqueId,\n      rect2bnd: rect2bnd,\n      invertObject: invertObject,\n      namespaceToCamel: namespaceToCamel,\n      debounce: debounce\n    };\n  })();\n\n  return func;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/core/key.js",
    "content": "define([\n  'summernote/base/core/list',\n  'summernote/base/core/func'\n], function (list, func) {\n  /**\n   * @class core.key\n   *\n   * Object for keycodes.\n   *\n   * @singleton\n   * @alternateClassName key\n   */\n  var key = (function () {\n    var keyMap = {\n      'BACKSPACE': 8,\n      'TAB': 9,\n      'ENTER': 13,\n      'SPACE': 32,\n\n      // Arrow\n      'LEFT': 37,\n      'UP': 38,\n      'RIGHT': 39,\n      'DOWN': 40,\n\n      // Number: 0-9\n      'NUM0': 48,\n      'NUM1': 49,\n      'NUM2': 50,\n      'NUM3': 51,\n      'NUM4': 52,\n      'NUM5': 53,\n      'NUM6': 54,\n      'NUM7': 55,\n      'NUM8': 56,\n\n      // Alphabet: a-z\n      'B': 66,\n      'E': 69,\n      'I': 73,\n      'J': 74,\n      'K': 75,\n      'L': 76,\n      'R': 82,\n      'S': 83,\n      'U': 85,\n      'V': 86,\n      'Y': 89,\n      'Z': 90,\n\n      'SLASH': 191,\n      'LEFTBRACKET': 219,\n      'BACKSLASH': 220,\n      'RIGHTBRACKET': 221\n    };\n\n    return {\n      /**\n       * @method isEdit\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isEdit: function (keyCode) {\n        return list.contains([\n          keyMap.BACKSPACE,\n          keyMap.TAB,\n          keyMap.ENTER,\n          keyMap.SPACE\n        ], keyCode);\n      },\n      /**\n       * @method isMove\n       *\n       * @param {Number} keyCode\n       * @return {Boolean}\n       */\n      isMove: function (keyCode) {\n        return list.contains([\n          keyMap.LEFT,\n          keyMap.UP,\n          keyMap.RIGHT,\n          keyMap.DOWN\n        ], keyCode);\n      },\n      /**\n       * @property {Object} nameFromCode\n       * @property {String} nameFromCode.8 \"BACKSPACE\"\n       */\n      nameFromCode: func.invertObject(keyMap),\n      code: keyMap\n    };\n  })();\n\n  return key;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/core/list.js",
    "content": "define(['summernote/base/core/func'], function (func) {\n  /**\n   * @class core.list\n   *\n   * list utils\n   *\n   * @singleton\n   * @alternateClassName list\n   */\n  var list = (function () {\n    /**\n     * returns the first item of an array.\n     *\n     * @param {Array} array\n     */\n    var head = function (array) {\n      return array[0];\n    };\n\n    /**\n     * returns the last item of an array.\n     *\n     * @param {Array} array\n     */\n    var last = function (array) {\n      return array[array.length - 1];\n    };\n\n    /**\n     * returns everything but the last entry of the array.\n     *\n     * @param {Array} array\n     */\n    var initial = function (array) {\n      return array.slice(0, array.length - 1);\n    };\n\n    /**\n     * returns the rest of the items in an array.\n     *\n     * @param {Array} array\n     */\n    var tail = function (array) {\n      return array.slice(1);\n    };\n\n    /**\n     * returns item of array\n     */\n    var find = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        var item = array[idx];\n        if (pred(item)) {\n          return item;\n        }\n      }\n    };\n\n    /**\n     * returns true if all of the values in the array pass the predicate truth test.\n     */\n    var all = function (array, pred) {\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!pred(array[idx])) {\n          return false;\n        }\n      }\n      return true;\n    };\n\n    /**\n     * returns index of item\n     */\n    var indexOf = function (array, item) {\n      return $.inArray(item, array);\n    };\n\n    /**\n     * returns true if the value is present in the list.\n     */\n    var contains = function (array, item) {\n      return indexOf(array, item) !== -1;\n    };\n\n    /**\n     * get sum from a list\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - iterator\n     */\n    var sum = function (array, fn) {\n      fn = fn || func.self;\n      return array.reduce(function (memo, v) {\n        return memo + fn(v);\n      }, 0);\n    };\n  \n    /**\n     * returns a copy of the collection with array type.\n     * @param {Collection} collection - collection eg) node.childNodes, ...\n     */\n    var from = function (collection) {\n      var result = [], idx = -1, length = collection.length;\n      while (++idx < length) {\n        result[idx] = collection[idx];\n      }\n      return result;\n    };\n\n    /**\n     * returns whether list is empty or not\n     */\n    var isEmpty = function (array) {\n      return !array || !array.length;\n    };\n  \n    /**\n     * cluster elements by predicate function.\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     * @param {Array[]}\n     */\n    var clusterBy = function (array, fn) {\n      if (!array.length) { return []; }\n      var aTail = tail(array);\n      return aTail.reduce(function (memo, v) {\n        var aLast = last(memo);\n        if (fn(last(aLast), v)) {\n          aLast[aLast.length] = v;\n        } else {\n          memo[memo.length] = [v];\n        }\n        return memo;\n      }, [[head(array)]]);\n    };\n  \n    /**\n     * returns a copy of the array with all false values removed\n     *\n     * @param {Array} array - array\n     * @param {Function} fn - predicate function for cluster rule\n     */\n    var compact = function (array) {\n      var aResult = [];\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (array[idx]) { aResult.push(array[idx]); }\n      }\n      return aResult;\n    };\n\n    /**\n     * produces a duplicate-free version of the array\n     *\n     * @param {Array} array\n     */\n    var unique = function (array) {\n      var results = [];\n\n      for (var idx = 0, len = array.length; idx < len; idx ++) {\n        if (!contains(results, array[idx])) {\n          results.push(array[idx]);\n        }\n      }\n\n      return results;\n    };\n\n    /**\n     * returns next item.\n     * @param {Array} array\n     */\n    var next = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx + 1];\n    };\n\n    /**\n     * returns prev item.\n     * @param {Array} array\n     */\n    var prev = function (array, item) {\n      var idx = indexOf(array, item);\n      if (idx === -1) { return null; }\n\n      return array[idx - 1];\n    };\n\n    return { head: head, last: last, initial: initial, tail: tail,\n             prev: prev, next: next, find: find, contains: contains,\n             all: all, sum: sum, from: from, isEmpty: isEmpty,\n             clusterBy: clusterBy, compact: compact, unique: unique };\n  })();\n\n  return list;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/core/range.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function ($, agent, func, list, dom) {\n  var range = (function () {\n\n    /**\n     * return boundaryPoint from TextRange, inspired by Andy Na's HuskyRange.js\n     *\n     * @param {TextRange} textRange\n     * @param {Boolean} isStart\n     * @return {BoundaryPoint}\n     *\n     * @see http://msdn.microsoft.com/en-us/library/ie/ms535872(v=vs.85).aspx\n     */\n    var textRangeToPoint = function (textRange, isStart) {\n      var container = textRange.parentElement(), offset;\n  \n      var tester = document.body.createTextRange(), prevContainer;\n      var childNodes = list.from(container.childNodes);\n      for (offset = 0; offset < childNodes.length; offset++) {\n        if (dom.isText(childNodes[offset])) {\n          continue;\n        }\n        tester.moveToElementText(childNodes[offset]);\n        if (tester.compareEndPoints('StartToStart', textRange) >= 0) {\n          break;\n        }\n        prevContainer = childNodes[offset];\n      }\n  \n      if (offset !== 0 && dom.isText(childNodes[offset - 1])) {\n        var textRangeStart = document.body.createTextRange(), curTextNode = null;\n        textRangeStart.moveToElementText(prevContainer || container);\n        textRangeStart.collapse(!prevContainer);\n        curTextNode = prevContainer ? prevContainer.nextSibling : container.firstChild;\n  \n        var pointTester = textRange.duplicate();\n        pointTester.setEndPoint('StartToStart', textRangeStart);\n        var textCount = pointTester.text.replace(/[\\r\\n]/g, '').length;\n  \n        while (textCount > curTextNode.nodeValue.length && curTextNode.nextSibling) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        /* jshint ignore:start */\n        var dummy = curTextNode.nodeValue; // enforce IE to re-reference curTextNode, hack\n        /* jshint ignore:end */\n  \n        if (isStart && curTextNode.nextSibling && dom.isText(curTextNode.nextSibling) &&\n            textCount === curTextNode.nodeValue.length) {\n          textCount -= curTextNode.nodeValue.length;\n          curTextNode = curTextNode.nextSibling;\n        }\n  \n        container = curTextNode;\n        offset = textCount;\n      }\n  \n      return {\n        cont: container,\n        offset: offset\n      };\n    };\n    \n    /**\n     * return TextRange from boundary point (inspired by google closure-library)\n     * @param {BoundaryPoint} point\n     * @return {TextRange}\n     */\n    var pointToTextRange = function (point) {\n      var textRangeInfo = function (container, offset) {\n        var node, isCollapseToStart;\n  \n        if (dom.isText(container)) {\n          var prevTextNodes = dom.listPrev(container, func.not(dom.isText));\n          var prevContainer = list.last(prevTextNodes).previousSibling;\n          node =  prevContainer || container.parentNode;\n          offset += list.sum(list.tail(prevTextNodes), dom.nodeLength);\n          isCollapseToStart = !prevContainer;\n        } else {\n          node = container.childNodes[offset] || container;\n          if (dom.isText(node)) {\n            return textRangeInfo(node, 0);\n          }\n  \n          offset = 0;\n          isCollapseToStart = false;\n        }\n  \n        return {\n          node: node,\n          collapseToStart: isCollapseToStart,\n          offset: offset\n        };\n      };\n  \n      var textRange = document.body.createTextRange();\n      var info = textRangeInfo(point.node, point.offset);\n  \n      textRange.moveToElementText(info.node);\n      textRange.collapse(info.collapseToStart);\n      textRange.moveStart('character', info.offset);\n      return textRange;\n    };\n    \n    /**\n     * Wrapped Range\n     *\n     * @constructor\n     * @param {Node} sc - start container\n     * @param {Number} so - start offset\n     * @param {Node} ec - end container\n     * @param {Number} eo - end offset\n     */\n    var WrappedRange = function (sc, so, ec, eo) {\n      this.sc = sc;\n      this.so = so;\n      this.ec = ec;\n      this.eo = eo;\n  \n      // nativeRange: get nativeRange from sc, so, ec, eo\n      var nativeRange = function () {\n        if (agent.isW3CRangeSupport) {\n          var w3cRange = document.createRange();\n          w3cRange.setStart(sc, so);\n          w3cRange.setEnd(ec, eo);\n\n          return w3cRange;\n        } else {\n          var textRange = pointToTextRange({\n            node: sc,\n            offset: so\n          });\n\n          textRange.setEndPoint('EndToEnd', pointToTextRange({\n            node: ec,\n            offset: eo\n          }));\n\n          return textRange;\n        }\n      };\n\n      this.getPoints = function () {\n        return {\n          sc: sc,\n          so: so,\n          ec: ec,\n          eo: eo\n        };\n      };\n\n      this.getStartPoint = function () {\n        return {\n          node: sc,\n          offset: so\n        };\n      };\n\n      this.getEndPoint = function () {\n        return {\n          node: ec,\n          offset: eo\n        };\n      };\n\n      /**\n       * select update visible range\n       */\n      this.select = function () {\n        var nativeRng = nativeRange();\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (selection.rangeCount > 0) {\n            selection.removeAllRanges();\n          }\n          selection.addRange(nativeRng);\n        } else {\n          nativeRng.select();\n        }\n        \n        return this;\n      };\n\n      /**\n       * Moves the scrollbar to start container(sc) of current range\n       *\n       * @return {WrappedRange}\n       */\n      this.scrollIntoView = function (container) {\n        var height = $(container).height();\n        if (container.scrollTop + height < this.sc.offsetTop) {\n          container.scrollTop += Math.abs(container.scrollTop + height - this.sc.offsetTop);\n        }\n\n        return this;\n      };\n\n      /**\n       * @return {WrappedRange}\n       */\n      this.normalize = function () {\n\n        /**\n         * @param {BoundaryPoint} point\n         * @param {Boolean} isLeftToRight\n         * @return {BoundaryPoint}\n         */\n        var getVisiblePoint = function (point, isLeftToRight) {\n          if ((dom.isVisiblePoint(point) && !dom.isEdgePoint(point)) ||\n              (dom.isVisiblePoint(point) && dom.isRightEdgePoint(point) && !isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isLeftEdgePoint(point) && isLeftToRight) ||\n              (dom.isVisiblePoint(point) && dom.isBlock(point.node) && dom.isEmpty(point.node))) {\n            return point;\n          }\n\n          // point on block's edge\n          var block = dom.ancestor(point.node, dom.isBlock);\n          if (((dom.isLeftEdgePointOf(point, block) || dom.isVoid(dom.prevPoint(point).node)) && !isLeftToRight) ||\n              ((dom.isRightEdgePointOf(point, block) || dom.isVoid(dom.nextPoint(point).node)) && isLeftToRight)) {\n\n            // returns point already on visible point\n            if (dom.isVisiblePoint(point)) {\n              return point;\n            }\n            // reverse direction \n            isLeftToRight = !isLeftToRight;\n          }\n\n          var nextPoint = isLeftToRight ? dom.nextPointUntil(dom.nextPoint(point), dom.isVisiblePoint) :\n                                          dom.prevPointUntil(dom.prevPoint(point), dom.isVisiblePoint);\n          return nextPoint || point;\n        };\n\n        var endPoint = getVisiblePoint(this.getEndPoint(), false);\n        var startPoint = this.isCollapsed() ? endPoint : getVisiblePoint(this.getStartPoint(), true);\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n\n      /**\n       * returns matched nodes on range\n       *\n       * @param {Function} [pred] - predicate function\n       * @param {Object} [options]\n       * @param {Boolean} [options.includeAncestor]\n       * @param {Boolean} [options.fullyContains]\n       * @return {Node[]}\n       */\n      this.nodes = function (pred, options) {\n        pred = pred || func.ok;\n\n        var includeAncestor = options && options.includeAncestor;\n        var fullyContains = options && options.fullyContains;\n\n        // TODO compare points and sort\n        var startPoint = this.getStartPoint();\n        var endPoint = this.getEndPoint();\n\n        var nodes = [];\n        var leftEdgeNodes = [];\n\n        dom.walkPoint(startPoint, endPoint, function (point) {\n          if (dom.isEditable(point.node)) {\n            return;\n          }\n\n          var node;\n          if (fullyContains) {\n            if (dom.isLeftEdgePoint(point)) {\n              leftEdgeNodes.push(point.node);\n            }\n            if (dom.isRightEdgePoint(point) && list.contains(leftEdgeNodes, point.node)) {\n              node = point.node;\n            }\n          } else if (includeAncestor) {\n            node = dom.ancestor(point.node, pred);\n          } else {\n            node = point.node;\n          }\n\n          if (node && pred(node)) {\n            nodes.push(node);\n          }\n        }, true);\n\n        return list.unique(nodes);\n      };\n\n      /**\n       * returns commonAncestor of range\n       * @return {Element} - commonAncestor\n       */\n      this.commonAncestor = function () {\n        return dom.commonAncestor(sc, ec);\n      };\n\n      /**\n       * returns expanded range by pred\n       *\n       * @param {Function} pred - predicate function\n       * @return {WrappedRange}\n       */\n      this.expand = function (pred) {\n        var startAncestor = dom.ancestor(sc, pred);\n        var endAncestor = dom.ancestor(ec, pred);\n\n        if (!startAncestor && !endAncestor) {\n          return new WrappedRange(sc, so, ec, eo);\n        }\n\n        var boundaryPoints = this.getPoints();\n\n        if (startAncestor) {\n          boundaryPoints.sc = startAncestor;\n          boundaryPoints.so = 0;\n        }\n\n        if (endAncestor) {\n          boundaryPoints.ec = endAncestor;\n          boundaryPoints.eo = dom.nodeLength(endAncestor);\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * @param {Boolean} isCollapseToStart\n       * @return {WrappedRange}\n       */\n      this.collapse = function (isCollapseToStart) {\n        if (isCollapseToStart) {\n          return new WrappedRange(sc, so, sc, so);\n        } else {\n          return new WrappedRange(ec, eo, ec, eo);\n        }\n      };\n\n      /**\n       * splitText on range\n       */\n      this.splitText = function () {\n        var isSameContainer = sc === ec;\n        var boundaryPoints = this.getPoints();\n\n        if (dom.isText(ec) && !dom.isEdgePoint(this.getEndPoint())) {\n          ec.splitText(eo);\n        }\n\n        if (dom.isText(sc) && !dom.isEdgePoint(this.getStartPoint())) {\n          boundaryPoints.sc = sc.splitText(so);\n          boundaryPoints.so = 0;\n\n          if (isSameContainer) {\n            boundaryPoints.ec = boundaryPoints.sc;\n            boundaryPoints.eo = eo - so;\n          }\n        }\n\n        return new WrappedRange(\n          boundaryPoints.sc,\n          boundaryPoints.so,\n          boundaryPoints.ec,\n          boundaryPoints.eo\n        );\n      };\n\n      /**\n       * delete contents on range\n       * @return {WrappedRange}\n       */\n      this.deleteContents = function () {\n        if (this.isCollapsed()) {\n          return this;\n        }\n\n        var rng = this.splitText();\n        var nodes = rng.nodes(null, {\n          fullyContains: true\n        });\n\n        // find new cursor point\n        var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {\n          return !list.contains(nodes, point.node);\n        });\n\n        var emptyParents = [];\n        $.each(nodes, function (idx, node) {\n          // find empty parents\n          var parent = node.parentNode;\n          if (point.node !== parent && dom.nodeLength(parent) === 1) {\n            emptyParents.push(parent);\n          }\n          dom.remove(node, false);\n        });\n\n        // remove empty parents\n        $.each(emptyParents, function (idx, node) {\n          dom.remove(node, false);\n        });\n\n        return new WrappedRange(\n          point.node,\n          point.offset,\n          point.node,\n          point.offset\n        ).normalize();\n      };\n      \n      /**\n       * makeIsOn: return isOn(pred) function\n       */\n      var makeIsOn = function (pred) {\n        return function () {\n          var ancestor = dom.ancestor(sc, pred);\n          return !!ancestor && (ancestor === dom.ancestor(ec, pred));\n        };\n      };\n  \n      // isOnEditable: judge whether range is on editable or not\n      this.isOnEditable = makeIsOn(dom.isEditable);\n      // isOnList: judge whether range is on list node or not\n      this.isOnList = makeIsOn(dom.isList);\n      // isOnAnchor: judge whether range is on anchor node or not\n      this.isOnAnchor = makeIsOn(dom.isAnchor);\n      // isOnCell: judge whether range is on cell node or not\n      this.isOnCell = makeIsOn(dom.isCell);\n      // isOnData: judge whether range is on data node or not\n      this.isOnData = makeIsOn(dom.isData);\n\n      /**\n       * @param {Function} pred\n       * @return {Boolean}\n       */\n      this.isLeftEdgeOf = function (pred) {\n        if (!dom.isLeftEdgePoint(this.getStartPoint())) {\n          return false;\n        }\n\n        var node = dom.ancestor(this.sc, pred);\n        return node && dom.isLeftEdgeOf(this.sc, node);\n      };\n\n      /**\n       * returns whether range was collapsed or not\n       */\n      this.isCollapsed = function () {\n        return sc === ec && so === eo;\n      };\n\n      /**\n       * wrap inline nodes which children of body with paragraph\n       *\n       * @return {WrappedRange}\n       */\n      this.wrapBodyInlineWithPara = function () {\n        if (dom.isBodyContainer(sc) && dom.isEmpty(sc)) {\n          sc.innerHTML = dom.emptyPara;\n          return new WrappedRange(sc.firstChild, 0, sc.firstChild, 0);\n        }\n\n        /**\n         * [workaround] firefox often create range on not visible point. so normalize here.\n         *  - firefox: |<p>text</p>|\n         *  - chrome: <p>|text|</p>\n         */\n        var rng = this.normalize();\n        if (dom.isParaInline(sc) || dom.isPara(sc)) {\n          return rng;\n        }\n\n        // find inline top ancestor\n        var topAncestor;\n        if (dom.isInline(rng.sc)) {\n          var ancestors = dom.listAncestor(rng.sc, func.not(dom.isInline));\n          topAncestor = list.last(ancestors);\n          if (!dom.isInline(topAncestor)) {\n            topAncestor = ancestors[ancestors.length - 2] || rng.sc.childNodes[rng.so];\n          }\n        } else {\n          topAncestor = rng.sc.childNodes[rng.so > 0 ? rng.so - 1 : 0];\n        }\n\n        // siblings not in paragraph\n        var inlineSiblings = dom.listPrev(topAncestor, dom.isParaInline).reverse();\n        inlineSiblings = inlineSiblings.concat(dom.listNext(topAncestor.nextSibling, dom.isParaInline));\n\n        // wrap with paragraph\n        if (inlineSiblings.length) {\n          var para = dom.wrap(list.head(inlineSiblings), 'p');\n          dom.appendChildNodes(para, list.tail(inlineSiblings));\n        }\n\n        return this.normalize();\n      };\n\n      /**\n       * insert node at current cursor\n       *\n       * @param {Node} node\n       * @return {Node}\n       */\n      this.insertNode = function (node) {\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n        var info = dom.splitPoint(rng.getStartPoint(), dom.isInline(node));\n\n        if (info.rightNode) {\n          info.rightNode.parentNode.insertBefore(node, info.rightNode);\n        } else {\n          info.container.appendChild(node);\n        }\n\n        return node;\n      };\n\n      /**\n       * insert html at current cursor\n       */\n      this.pasteHTML = function (markup) {\n        var contentsContainer = $('<div></div>').html(markup)[0];\n        var childNodes = list.from(contentsContainer.childNodes);\n\n        var rng = this.wrapBodyInlineWithPara().deleteContents();\n\n        return childNodes.reverse().map(function (childNode) {\n          return rng.insertNode(childNode);\n        }).reverse();\n      };\n  \n      /**\n       * returns text in range\n       *\n       * @return {String}\n       */\n      this.toString = function () {\n        var nativeRng = nativeRange();\n        return agent.isW3CRangeSupport ? nativeRng.toString() : nativeRng.text;\n      };\n\n      /**\n       * returns range for word before cursor\n       *\n       * @param {Boolean} [findAfter] - find after cursor, default: false\n       * @return {WrappedRange}\n       */\n      this.getWordRange = function (findAfter) {\n        var endPoint = this.getEndPoint();\n\n        if (!dom.isCharPoint(endPoint)) {\n          return this;\n        }\n\n        var startPoint = dom.prevPointUntil(endPoint, function (point) {\n          return !dom.isCharPoint(point);\n        });\n\n        if (findAfter) {\n          endPoint = dom.nextPointUntil(endPoint, function (point) {\n            return !dom.isCharPoint(point);\n          });\n        }\n\n        return new WrappedRange(\n          startPoint.node,\n          startPoint.offset,\n          endPoint.node,\n          endPoint.offset\n        );\n      };\n  \n      /**\n       * create offsetPath bookmark\n       *\n       * @param {Node} editable\n       */\n      this.bookmark = function (editable) {\n        return {\n          s: {\n            path: dom.makeOffsetPath(editable, sc),\n            offset: so\n          },\n          e: {\n            path: dom.makeOffsetPath(editable, ec),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * create offsetPath bookmark base on paragraph\n       *\n       * @param {Node[]} paras\n       */\n      this.paraBookmark = function (paras) {\n        return {\n          s: {\n            path: list.tail(dom.makeOffsetPath(list.head(paras), sc)),\n            offset: so\n          },\n          e: {\n            path: list.tail(dom.makeOffsetPath(list.last(paras), ec)),\n            offset: eo\n          }\n        };\n      };\n\n      /**\n       * getClientRects\n       * @return {Rect[]}\n       */\n      this.getClientRects = function () {\n        var nativeRng = nativeRange();\n        return nativeRng.getClientRects();\n      };\n    };\n\n  /**\n   * @class core.range\n   *\n   * Data structure\n   *  * BoundaryPoint: a point of dom tree\n   *  * BoundaryPoints: two boundaryPoints corresponding to the start and the end of the Range\n   *\n   * See to http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position\n   *\n   * @singleton\n   * @alternateClassName range\n   */\n    return {\n      /**\n       * create Range Object From arguments or Browser Selection\n       *\n       * @param {Node} sc - start container\n       * @param {Number} so - start offset\n       * @param {Node} ec - end container\n       * @param {Number} eo - end offset\n       * @return {WrappedRange}\n       */\n      create: function (sc, so, ec, eo) {\n        if (arguments.length === 4) {\n          return new WrappedRange(sc, so, ec, eo);\n        } else if (arguments.length === 2) { //collapsed\n          ec = sc;\n          eo = so;\n          return new WrappedRange(sc, so, ec, eo);\n        } else {\n          var wrappedRange = this.createFromSelection();\n          if (!wrappedRange && arguments.length === 1) {\n            wrappedRange = this.createFromNode(arguments[0]);\n            return wrappedRange.collapse(dom.emptyPara === arguments[0].innerHTML);\n          }\n          return wrappedRange;\n        }\n      },\n\n      createFromSelection: function () {\n        var sc, so, ec, eo;\n        if (agent.isW3CRangeSupport) {\n          var selection = document.getSelection();\n          if (!selection || selection.rangeCount === 0) {\n            return null;\n          } else if (dom.isBody(selection.anchorNode)) {\n            // Firefox: returns entire body as range on initialization.\n            // We won't never need it.\n            return null;\n          }\n\n          var nativeRng = selection.getRangeAt(0);\n          sc = nativeRng.startContainer;\n          so = nativeRng.startOffset;\n          ec = nativeRng.endContainer;\n          eo = nativeRng.endOffset;\n        } else { // IE8: TextRange\n          var textRange = document.selection.createRange();\n          var textRangeEnd = textRange.duplicate();\n          textRangeEnd.collapse(false);\n          var textRangeStart = textRange;\n          textRangeStart.collapse(true);\n\n          var startPoint = textRangeToPoint(textRangeStart, true),\n          endPoint = textRangeToPoint(textRangeEnd, false);\n\n          // same visible point case: range was collapsed.\n          if (dom.isText(startPoint.node) && dom.isLeftEdgePoint(startPoint) &&\n              dom.isTextNode(endPoint.node) && dom.isRightEdgePoint(endPoint) &&\n              endPoint.node.nextSibling === startPoint.node) {\n            startPoint = endPoint;\n          }\n\n          sc = startPoint.cont;\n          so = startPoint.offset;\n          ec = endPoint.cont;\n          eo = endPoint.offset;\n        }\n\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from node\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNode: function (node) {\n        var sc = node;\n        var so = 0;\n        var ec = node;\n        var eo = dom.nodeLength(ec);\n\n        // browsers can't target a picture or void node\n        if (dom.isVoid(sc)) {\n          so = dom.listPrev(sc).length - 1;\n          sc = sc.parentNode;\n        }\n        if (dom.isBR(ec)) {\n          eo = dom.listPrev(ec).length - 1;\n          ec = ec.parentNode;\n        } else if (dom.isVoid(ec)) {\n          eo = dom.listPrev(ec).length;\n          ec = ec.parentNode;\n        }\n\n        return this.create(sc, so, ec, eo);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeBefore: function (node) {\n        return this.createFromNode(node).collapse(true);\n      },\n\n      /**\n       * create WrappedRange from node after position\n       *\n       * @param {Node} node\n       * @return {WrappedRange}\n       */\n      createFromNodeAfter: function (node) {\n        return this.createFromNode(node).collapse();\n      },\n\n      /**\n       * @method \n       * \n       * create WrappedRange from bookmark\n       *\n       * @param {Node} editable\n       * @param {Object} bookmark\n       * @return {WrappedRange}\n       */\n      createFromBookmark: function (editable, bookmark) {\n        var sc = dom.fromOffsetPath(editable, bookmark.s.path);\n        var so = bookmark.s.offset;\n        var ec = dom.fromOffsetPath(editable, bookmark.e.path);\n        var eo = bookmark.e.offset;\n        return new WrappedRange(sc, so, ec, eo);\n      },\n\n      /**\n       * @method \n       *\n       * create WrappedRange from paraBookmark\n       *\n       * @param {Object} bookmark\n       * @param {Node[]} paras\n       * @return {WrappedRange}\n       */\n      createFromParaBookmark: function (bookmark, paras) {\n        var so = bookmark.s.offset;\n        var eo = bookmark.e.offset;\n        var sc = dom.fromOffsetPath(list.head(paras), bookmark.s.path);\n        var ec = dom.fromOffsetPath(list.last(paras), bookmark.e.path);\n\n        return new WrappedRange(sc, so, ec, eo);\n      }\n    };\n  })();\n\n  return range;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/editing/Bullet.js",
    "content": "define([\n  'summernote/base/core/list',\n  'summernote/base/core/func',\n  'summernote/base/core/dom',\n  'summernote/base/core/range'\n], function (list, func, dom, range) {\n\n  /**\n   * @class editing.Bullet\n   *\n   * @alternateClassName Bullet\n   */\n  var Bullet = function () {\n    var self = this;\n\n    /**\n     * toggle ordered list\n     */\n    this.insertOrderedList = function (editable) {\n      this.toggleList('OL', editable);\n    };\n\n    /**\n     * toggle unordered list\n     */\n    this.insertUnorderedList = function (editable) {\n      this.toggleList('UL', editable);\n    };\n\n    /**\n     * indent\n     */\n    this.indent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.wrapList(paras, head.parentNode.nodeName);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              return (parseInt(val, 10) || 0) + 25;\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * outdent\n     */\n    this.outdent = function (editable) {\n      var self = this;\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        if (dom.isLi(head)) {\n          self.releaseList([paras]);\n        } else {\n          $.each(paras, function (idx, para) {\n            $(para).css('marginLeft', function (idx, val) {\n              val = (parseInt(val, 10) || 0);\n              return val > 25 ? val - 25 : '';\n            });\n          });\n        }\n      });\n\n      rng.select();\n    };\n\n    /**\n     * toggle list\n     *\n     * @param {String} listName - OL or UL\n     */\n    this.toggleList = function (listName, editable) {\n      var rng = range.create(editable).wrapBodyInlineWithPara();\n\n      var paras = rng.nodes(dom.isPara, { includeAncestor: true });\n      var bookmark = rng.paraBookmark(paras);\n      var clustereds = list.clusterBy(paras, func.peq2('parentNode'));\n\n      // paragraph to list\n      if (list.find(paras, dom.isPurePara)) {\n        var wrappedParas = [];\n        $.each(clustereds, function (idx, paras) {\n          wrappedParas = wrappedParas.concat(self.wrapList(paras, listName));\n        });\n        paras = wrappedParas;\n      // list to paragraph or change list style\n      } else {\n        var diffLists = rng.nodes(dom.isList, {\n          includeAncestor: true\n        }).filter(function (listNode) {\n          return !$.nodeName(listNode, listName);\n        });\n\n        if (diffLists.length) {\n          $.each(diffLists, function (idx, listNode) {\n            dom.replace(listNode, listName);\n          });\n        } else {\n          paras = this.releaseList(clustereds, true);\n        }\n      }\n\n      range.createFromParaBookmark(bookmark, paras).select();\n    };\n\n    /**\n     * @param {Node[]} paras\n     * @param {String} listName\n     * @return {Node[]}\n     */\n    this.wrapList = function (paras, listName) {\n      var head = list.head(paras);\n      var last = list.last(paras);\n\n      var prevList = dom.isList(head.previousSibling) && head.previousSibling;\n      var nextList = dom.isList(last.nextSibling) && last.nextSibling;\n\n      var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);\n\n      // P to LI\n      paras = paras.map(function (para) {\n        return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;\n      });\n\n      // append to list(<ul>, <ol>)\n      dom.appendChildNodes(listNode, paras);\n\n      if (nextList) {\n        dom.appendChildNodes(listNode, list.from(nextList.childNodes));\n        dom.remove(nextList);\n      }\n\n      return paras;\n    };\n\n    /**\n     * @method releaseList\n     *\n     * @param {Array[]} clustereds\n     * @param {Boolean} isEscapseToBody\n     * @return {Node[]}\n     */\n    this.releaseList = function (clustereds, isEscapseToBody) {\n      var releasedParas = [];\n\n      $.each(clustereds, function (idx, paras) {\n        var head = list.head(paras);\n        var last = list.last(paras);\n\n        var headList = isEscapseToBody ? dom.lastAncestor(head, dom.isList) :\n                                         head.parentNode;\n        var lastList = headList.childNodes.length > 1 ? dom.splitTree(headList, {\n          node: last.parentNode,\n          offset: dom.position(last) + 1\n        }, {\n          isSkipPaddingBlankHTML: true\n        }) : null;\n\n        var middleList = dom.splitTree(headList, {\n          node: head.parentNode,\n          offset: dom.position(head)\n        }, {\n          isSkipPaddingBlankHTML: true\n        });\n\n        paras = isEscapseToBody ? dom.listDescendant(middleList, dom.isLi) :\n                                  list.from(middleList.childNodes).filter(dom.isLi);\n\n        // LI to P\n        if (isEscapseToBody || !dom.isList(headList.parentNode)) {\n          paras = paras.map(function (para) {\n            return dom.replace(para, 'P');\n          });\n        }\n\n        $.each(list.from(paras).reverse(), function (idx, para) {\n          dom.insertAfter(para, headList);\n        });\n\n        // remove empty lists\n        var rootLists = list.compact([headList, middleList, lastList]);\n        $.each(rootLists, function (idx, rootList) {\n          var listNodes = [rootList].concat(dom.listDescendant(rootList, dom.isList));\n          $.each(listNodes.reverse(), function (idx, listNode) {\n            if (!dom.nodeLength(listNode)) {\n              dom.remove(listNode, true);\n            }\n          });\n        });\n\n        releasedParas = releasedParas.concat(paras);\n      });\n\n      return releasedParas;\n    };\n  };\n\n  return Bullet;\n});\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/editing/History.js",
    "content": "define(['summernote/base/core/range'], function (range) {\n  /**\n   * @class editing.History\n   *\n   * Editor History\n   *\n   */\n  var History = function ($editable) {\n    var stack = [], stackOffset = -1;\n    var editable = $editable[0];\n\n    var makeSnapshot = function () {\n      var rng = range.create(editable);\n      var emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};\n\n      return {\n        contents: $editable.html(),\n        bookmark: (rng ? rng.bookmark(editable) : emptyBookmark)\n      };\n    };\n\n    var applySnapshot = function (snapshot) {\n      if (snapshot.contents !== null) {\n        $editable.html(snapshot.contents);\n      }\n      if (snapshot.bookmark !== null) {\n        range.createFromBookmark(editable, snapshot.bookmark).select();\n      }\n    };\n\n    /**\n    * @method rewind\n    * Rewinds the history stack back to the first snapshot taken.\n    * Leaves the stack intact, so that \"Redo\" can still be used.\n    */\n    this.rewind = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      // Return to the first available snapshot.\n      stackOffset = 0;\n\n      // Apply that snapshot.\n      applySnapshot(stack[stackOffset]);\n    };\n\n    /**\n    * @method reset\n    * Resets the history stack completely; reverting to an empty editor.\n    */\n    this.reset = function () {\n      // Clear the stack.\n      stack = [];\n\n      // Restore stackOffset to its original value.\n      stackOffset = -1;\n\n      // Clear the editable area.\n      $editable.html('');\n\n      // Record our first snapshot (of nothing).\n      this.recordUndo();\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      // Create snap shot if not yet recorded\n      if ($editable.html() !== stack[stackOffset].contents) {\n        this.recordUndo();\n      }\n\n      if (0 < stackOffset) {\n        stackOffset--;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      if (stack.length - 1 > stackOffset) {\n        stackOffset++;\n        applySnapshot(stack[stackOffset]);\n      }\n    };\n\n    /**\n     * recorded undo\n     */\n    this.recordUndo = function () {\n      stackOffset++;\n\n      // Wash out stack after stackOffset\n      if (stack.length > stackOffset) {\n        stack = stack.slice(0, stackOffset);\n      }\n\n      // Create new snapshot and push it to the end\n      stack.push(makeSnapshot());\n    };\n  };\n\n  return History;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/editing/Style.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (agent, func, list, dom) {\n  /**\n   * @class editing.Style\n   *\n   * Style\n   *\n   */\n  var Style = function () {\n    /**\n     * @method jQueryCSS\n     *\n     * [workaround] for old jQuery\n     * passing an array of style properties to .css()\n     * will result in an object of property-value pairs.\n     * (compability with version < 1.9)\n     *\n     * @private\n     * @param  {jQuery} $obj\n     * @param  {Array} propertyNames - An array of one or more CSS properties.\n     * @return {Object}\n     */\n    var jQueryCSS = function ($obj, propertyNames) {\n      if (agent.jqueryVersion < 1.9) {\n        var result = {};\n        $.each(propertyNames, function (idx, propertyName) {\n          result[propertyName] = $obj.css(propertyName);\n        });\n        return result;\n      }\n      return $obj.css.call($obj, propertyNames);\n    };\n\n    /**\n     * returns style object from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.fromNode = function ($node) {\n      var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];\n      var styleInfo = jQueryCSS($node, properties) || {};\n      styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);\n      return styleInfo;\n    };\n\n    /**\n     * paragraph level style\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} styleInfo\n     */\n    this.stylePara = function (rng, styleInfo) {\n      $.each(rng.nodes(dom.isPara, {\n        includeAncestor: true\n      }), function (idx, para) {\n        $(para).css(styleInfo);\n      });\n    };\n\n    /**\n     * insert and returns styleNodes on range.\n     *\n     * @param {WrappedRange} rng\n     * @param {Object} [options] - options for styleNodes\n     * @param {String} [options.nodeName] - default: `SPAN`\n     * @param {Boolean} [options.expandClosestSibling] - default: `false`\n     * @param {Boolean} [options.onlyPartialContains] - default: `false`\n     * @return {Node[]}\n     */\n    this.styleNodes = function (rng, options) {\n      rng = rng.splitText();\n\n      var nodeName = options && options.nodeName || 'SPAN';\n      var expandClosestSibling = !!(options && options.expandClosestSibling);\n      var onlyPartialContains = !!(options && options.onlyPartialContains);\n\n      if (rng.isCollapsed()) {\n        return [rng.insertNode(dom.create(nodeName))];\n      }\n\n      var pred = dom.makePredByNodeName(nodeName);\n      var nodes = rng.nodes(dom.isText, {\n        fullyContains: true\n      }).map(function (text) {\n        return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);\n      });\n\n      if (expandClosestSibling) {\n        if (onlyPartialContains) {\n          var nodesInRange = rng.nodes();\n          // compose with partial contains predication\n          pred = func.and(pred, function (node) {\n            return list.contains(nodesInRange, node);\n          });\n        }\n\n        return nodes.map(function (node) {\n          var siblings = dom.withClosestSiblings(node, pred);\n          var head = list.head(siblings);\n          var tails = list.tail(siblings);\n          $.each(tails, function (idx, elem) {\n            dom.appendChildNodes(head, elem.childNodes);\n            dom.remove(elem);\n          });\n          return list.head(siblings);\n        });\n      } else {\n        return nodes;\n      }\n    };\n\n    /**\n     * get current style on cursor\n     *\n     * @param {WrappedRange} rng\n     * @return {Object} - object contains style properties.\n     */\n    this.current = function (rng) {\n      var $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);\n      var styleInfo = this.fromNode($cont);\n\n      // document.queryCommandState for toggle state\n      // [workaround] prevent Firefox nsresult: \"0x80004005 (NS_ERROR_FAILURE)\"\n      try {\n        styleInfo = $.extend(styleInfo, {\n          'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',\n          'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',\n          'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',\n          'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',\n          'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',\n          'font-strikethrough': document.queryCommandState('strikethrough') ? 'strikethrough' : 'normal'\n        });\n      } catch (e) {}\n\n      // list-style-type to list-style(unordered, ordered)\n      if (!rng.isOnList()) {\n        styleInfo['list-style'] = 'none';\n      } else {\n        var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];\n        var isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;\n        styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';\n      }\n\n      var para = dom.ancestor(rng.sc, dom.isPara);\n      if (para && para.style['line-height']) {\n        styleInfo['line-height'] = para.style.lineHeight;\n      } else {\n        var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);\n        styleInfo['line-height'] = lineHeight.toFixed(1);\n      }\n\n      styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);\n      styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);\n      styleInfo.range = rng;\n\n      return styleInfo;\n    };\n  };\n\n  return Style;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/editing/Table.js",
    "content": "define([\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/list'\n], function (dom, range, list) {\n  /**\n   * @class editing.Table\n   *\n   * Table\n   *\n   */\n  var Table = function () {\n    /**\n     * handle tab key\n     *\n     * @param {WrappedRange} rng\n     * @param {Boolean} isShift\n     */\n    this.tab = function (rng, isShift) {\n      var cell = dom.ancestor(rng.commonAncestor(), dom.isCell);\n      var table = dom.ancestor(cell, dom.isTable);\n      var cells = dom.listDescendant(table, dom.isCell);\n\n      var nextCell = list[isShift ? 'prev' : 'next'](cells, cell);\n      if (nextCell) {\n        range.create(nextCell, 0).select();\n      }\n    };\n\n    /**\n     * create empty table element\n     *\n     * @param {Number} rowCount\n     * @param {Number} colCount\n     * @return {Node}\n     */\n    this.createTable = function (colCount, rowCount, options) {\n      var tds = [], tdHTML;\n      for (var idxCol = 0; idxCol < colCount; idxCol++) {\n        tds.push('<td>' + dom.blank + '</td>');\n      }\n      tdHTML = tds.join('');\n\n      var trs = [], trHTML;\n      for (var idxRow = 0; idxRow < rowCount; idxRow++) {\n        trs.push('<tr>' + tdHTML + '</tr>');\n      }\n      trHTML = trs.join('');\n      var $table = $('<table>' + trHTML + '</table>');\n      if (options && options.tableClassName) {\n        $table.addClass(options.tableClassName);\n      }\n\n      return $table[0];\n    };\n  };\n  return Table;\n});\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/editing/Typing.js",
    "content": "define([\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/editing/Bullet'\n], function (dom, range, Bullet) {\n\n  /**\n   * @class editing.Typing\n   *\n   * Typing\n   *\n   */\n  var Typing = function () {\n\n    // a Bullet instance to toggle lists off\n    var bullet = new Bullet();\n\n    /**\n     * insert tab\n     *\n     * @param {WrappedRange} rng\n     * @param {Number} tabsize\n     */\n    this.insertTab = function (rng, tabsize) {\n      var tab = dom.createText(new Array(tabsize + 1).join(dom.NBSP_CHAR));\n      rng = rng.deleteContents();\n      rng.insertNode(tab, true);\n\n      rng = range.create(tab, tabsize);\n      rng.select();\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = function (editable) {\n      var rng = range.create(editable);\n\n      // deleteContents on range.\n      rng = rng.deleteContents();\n\n      // Wrap range if it needs to be wrapped by paragraph\n      rng = rng.wrapBodyInlineWithPara();\n\n      // finding paragraph\n      var splitRoot = dom.ancestor(rng.sc, dom.isPara);\n\n      var nextPara;\n      // on paragraph: split paragraph\n      if (splitRoot) {\n        // if it is an empty line with li\n        if (dom.isEmpty(splitRoot) && dom.isLi(splitRoot)) {\n          // toogle UL/OL and escape\n          bullet.toggleList(splitRoot.parentNode.nodeName);\n          return;\n        // if it is an empty line with para on blockquote\n        } else if (dom.isEmpty(splitRoot) && dom.isPara(splitRoot) && dom.isBlockquote(splitRoot.parentNode)) {\n          // escape blockquote\n          dom.insertAfter(splitRoot, splitRoot.parentNode);\n          nextPara = splitRoot;\n        // if new line has content (not a line break)\n        } else {\n          nextPara = dom.splitTree(splitRoot, rng.getStartPoint());\n\n          var emptyAnchors = dom.listDescendant(splitRoot, dom.isEmptyAnchor);\n          emptyAnchors = emptyAnchors.concat(dom.listDescendant(nextPara, dom.isEmptyAnchor));\n\n          $.each(emptyAnchors, function (idx, anchor) {\n            dom.remove(anchor);\n          });\n\n          // replace empty heading or pre with P tag\n          if ((dom.isHeading(nextPara) || dom.isPre(nextPara)) && dom.isEmpty(nextPara)) {\n            nextPara = dom.replace(nextPara, 'p');\n          }\n        }\n      // no paragraph: insert empty paragraph\n      } else {\n        var next = rng.sc.childNodes[rng.so];\n        nextPara = $(dom.emptyPara)[0];\n        if (next) {\n          rng.sc.insertBefore(nextPara, next);\n        } else {\n          rng.sc.appendChild(nextPara);\n        }\n      }\n\n      range.create(nextPara, 0).normalize().select().scrollIntoView(editable);\n    };\n  };\n\n  return Typing;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/AutoLink.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/key'\n], function (func, list, dom, range, key) {\n  var AutoLink = function (context) {\n    var self = this;\n    var defaultScheme = 'http://';\n    var linkPattern = /^([A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?|mailto:[A-Z0-9._%+-]+@)?(www\\.)?(.+)$/i;\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      }\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n    };\n\n    this.destroy = function () {\n      this.lastWordRange = null;\n    };\n\n    this.replace = function () {\n      if (!this.lastWordRange) {\n        return;\n      }\n\n      var keyword = this.lastWordRange.toString();\n      var match = keyword.match(linkPattern);\n\n      if (match && (match[1] || match[2])) {\n        var link = match[1] ? keyword : defaultScheme + keyword;\n        var node = $('<a />').html(keyword).attr('href', link)[0];\n\n        this.lastWordRange.insertNode(node);\n        this.lastWordRange = null;\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.handleKeydown = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        this.lastWordRange = wordRange;\n      }\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.SPACE], e.keyCode)) {\n        this.replace();\n      }\n    };\n  };\n\n  return AutoLink;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/AutoSync.js",
    "content": "define([\n  'summernote/base/core/dom'\n], function (dom) {\n  /**\n   * textarea auto sync.\n   */\n  var AutoSync = function (context) {\n    var $note = context.layoutInfo.note;\n\n    this.events = {\n      'summernote.change': function () {\n        $note.val(context.invoke('code'));\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return dom.isTextarea($note[0]);\n    };\n  };\n\n  return AutoSync;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Clipboard.js",
    "content": "define([\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/key',\n  'summernote/base/core/agent'\n], function (list, dom, key, agent) {\n  var Clipboard = function (context) {\n    var self = this;\n\n    var $editable = context.layoutInfo.editable;\n\n    this.events = {\n      'summernote.keydown': function (we, e) {\n        if (self.needKeydownHook()) {\n          if ((e.ctrlKey || e.metaKey) && e.keyCode === key.code.V) {\n            context.invoke('editor.saveRange');\n            self.$paste.focus();\n\n            setTimeout(function () {\n              self.pasteByHook();\n            }, 0);\n          }\n        }\n      }\n    };\n\n    this.needKeydownHook = function () {\n      return (agent.isMSIE && agent.browserVersion > 10) || agent.isFF;\n    };\n\n    this.initialize = function () {\n      // [workaround] getting image from clipboard\n      //  - IE11 and Firefox: CTRL+v hook\n      //  - Webkit: event.clipboardData\n      if (this.needKeydownHook()) {\n        this.$paste = $('<div tabindex=\"-1\" />').attr('contenteditable', true).css({\n          position: 'absolute',\n          left: -100000,\n          opacity: 0\n        });\n        $editable.before(this.$paste);\n\n        this.$paste.on('paste', function (event) {\n          context.triggerEvent('paste', event);\n        });\n      } else {\n        $editable.on('paste', this.pasteByEvent);\n      }\n    };\n\n    this.destroy = function () {\n      if (this.needKeydownHook()) {\n        this.$paste.remove();\n        this.$paste = null;\n      }\n    };\n\n    this.pasteByHook = function () {\n      var node = this.$paste[0].firstChild;\n\n      if (dom.isImg(node)) {\n        var dataURI = node.src;\n        var decodedData = atob(dataURI.split(',')[1]);\n        var array = new Uint8Array(decodedData.length);\n        for (var i = 0; i < decodedData.length; i++) {\n          array[i] = decodedData.charCodeAt(i);\n        }\n\n        var blob = new Blob([array], { type: 'image/png' });\n        blob.name = 'clipboard.png';\n\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n        context.invoke('editor.insertImagesOrCallback', [blob]);\n      } else {\n        var pasteContent = $('<div />').html(this.$paste.html()).html();\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.focus');\n\n        if (pasteContent) {\n          context.invoke('editor.pasteHTML', pasteContent);\n        }\n      }\n\n      this.$paste.empty();\n    };\n\n    /**\n     * paste by clipboard event\n     *\n     * @param {Event} event\n     */\n    this.pasteByEvent = function (event) {\n      var clipboardData = event.originalEvent.clipboardData;\n      if (clipboardData && clipboardData.items && clipboardData.items.length) {\n        var item = list.head(clipboardData.items);\n        if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {\n          context.invoke('editor.insertImagesOrCallback', [item.getAsFile()]);\n        }\n        context.invoke('editor.afterCommand');\n      }\n    };\n  };\n\n  return Clipboard;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Codeview.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/dom'\n], function (agent, dom) {\n\n  var CodeMirror;\n  if (agent.hasCodeMirror) {\n    if (agent.isSupportAmd) {\n      require(['codemirror'], function (cm) {\n        CodeMirror = cm;\n      });\n    } else {\n      CodeMirror = window.CodeMirror;\n    }\n  }\n\n  /**\n   * @class Codeview\n   */\n  var Codeview = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n    var options = context.options;\n\n    this.sync = function () {\n      var isCodeview = this.isActivated();\n      if (isCodeview && agent.hasCodeMirror) {\n        $codable.data('cmEditor').save();\n      }\n    };\n\n    /**\n     * @return {Boolean}\n     */\n    this.isActivated = function () {\n      return $editor.hasClass('codeview');\n    };\n\n    /**\n     * toggle codeview\n     */\n    this.toggle = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n      context.triggerEvent('codeview.toggled');\n    };\n\n    /**\n     * activate code view\n     */\n    this.activate = function () {\n      $codable.val(dom.html($editable, options.prettifyHtml));\n      $codable.height($editable.height());\n\n      context.invoke('toolbar.updateCodeview', true);\n      $editor.addClass('codeview');\n      $codable.focus();\n\n      // activate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = CodeMirror.fromTextArea($codable[0], options.codemirror);\n\n        // CodeMirror TernServer\n        if (options.codemirror.tern) {\n          var server = new CodeMirror.TernServer(options.codemirror.tern);\n          cmEditor.ternServer = server;\n          cmEditor.on('cursorActivity', function (cm) {\n            server.updateArgHints(cm);\n          });\n        }\n\n        // CodeMirror hasn't Padding.\n        cmEditor.setSize(null, $editable.outerHeight());\n        $codable.data('cmEditor', cmEditor);\n      }\n    };\n\n    /**\n     * deactivate code view\n     */\n    this.deactivate = function () {\n      // deactivate CodeMirror as codable\n      if (agent.hasCodeMirror) {\n        var cmEditor = $codable.data('cmEditor');\n        $codable.val(cmEditor.getValue());\n        cmEditor.toTextArea();\n      }\n\n      var value = dom.value($codable, options.prettifyHtml) || dom.emptyPara;\n      var isChange = $editable.html() !== value;\n\n      $editable.html(value);\n      $editable.height(options.height ? $codable.height() : 'auto');\n      $editor.removeClass('codeview');\n\n      if (isChange) {\n        context.triggerEvent('change', $editable.html(), $editable);\n      }\n\n      $editable.focus();\n\n      context.invoke('toolbar.updateCodeview', false);\n    };\n\n    this.destroy = function () {\n      if (this.isActivated()) {\n        this.deactivate();\n      }\n    };\n  };\n\n  return Codeview;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Dropzone.js",
    "content": "define(function () {\n  var Dropzone = function (context) {\n    var $document = $(document);\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n    var documentEventHandlers = {};\n\n    var $dropzone = $([\n      '<div class=\"note-dropzone\">',\n      '  <div class=\"note-dropzone-message\"/>',\n      '</div>'\n    ].join('')).prependTo($editor);\n\n    var detachDocumentEvent = function () {\n      Object.keys(documentEventHandlers).forEach(function (key) {\n        $document.off(key.substr(2).toLowerCase(), documentEventHandlers[key]);\n      });\n      documentEventHandlers = {};\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.initialize = function () {\n      if (options.disableDragAndDrop) {\n        // prevent default drop event\n        documentEventHandlers.onDrop = function (e) {\n          e.preventDefault();\n        };\n        $document.on('drop', documentEventHandlers.onDrop);\n      } else {\n        this.attachDragAndDropEvent();\n      }\n    };\n\n    /**\n     * attach Drag and Drop Events\n     */\n    this.attachDragAndDropEvent = function () {\n      var collection = $(),\n          $dropzoneMessage = $dropzone.find('.note-dropzone-message');\n\n      documentEventHandlers.onDragenter = function (e) {\n        var isCodeview = context.invoke('codeview.isActivated');\n        var hasEditorSize = $editor.width() > 0 && $editor.height() > 0;\n        if (!isCodeview && !collection.length && hasEditorSize) {\n          $editor.addClass('dragover');\n          $dropzone.width($editor.width());\n          $dropzone.height($editor.height());\n          $dropzoneMessage.text(lang.image.dragImageHere);\n        }\n        collection = collection.add(e.target);\n      };\n\n      documentEventHandlers.onDragleave = function (e) {\n        collection = collection.not(e.target);\n        if (!collection.length) {\n          $editor.removeClass('dragover');\n        }\n      };\n\n      documentEventHandlers.onDrop = function () {\n        collection = $();\n        $editor.removeClass('dragover');\n      };\n\n      // show dropzone on dragenter when dragging a object to document\n      // -but only if the editor is visible, i.e. has a positive width and height\n      $document.on('dragenter', documentEventHandlers.onDragenter)\n        .on('dragleave', documentEventHandlers.onDragleave)\n        .on('drop', documentEventHandlers.onDrop);\n\n      // change dropzone's message on hover.\n      $dropzone.on('dragenter', function () {\n        $dropzone.addClass('hover');\n        $dropzoneMessage.text(lang.image.dropImage);\n      }).on('dragleave', function () {\n        $dropzone.removeClass('hover');\n        $dropzoneMessage.text(lang.image.dragImageHere);\n      });\n\n      // attach dropImage\n      $dropzone.on('drop', function (event) {\n        var dataTransfer = event.originalEvent.dataTransfer;\n\n        if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n          event.preventDefault();\n          $editable.focus();\n          context.invoke('editor.insertImagesOrCallback', dataTransfer.files);\n        } else {\n          $.each(dataTransfer.types, function (idx, type) {\n            var content = dataTransfer.getData(type);\n\n            if (type.toLowerCase().indexOf('text') > -1) {\n              context.invoke('editor.pasteHTML', content);\n            } else {\n              $(content).each(function () {\n                context.invoke('editor.insertNode', this);\n              });\n            }\n          });\n        }\n      }).on('dragover', false); // prevent default dragover event\n    };\n\n    this.destroy = function () {\n      detachDocumentEvent();\n    };\n  };\n\n  return Dropzone;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Editor.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/key',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/async',\n  'summernote/base/editing/History',\n  'summernote/base/editing/Style',\n  'summernote/base/editing/Typing',\n  'summernote/base/editing/Table',\n  'summernote/base/editing/Bullet'\n], function (\n  agent, key, func, list, dom, range, async,\n  History, Style, Typing, Table, Bullet\n) {\n\n  var KEY_BOGUS = 'bogus';\n\n  /**\n   * @class Editor\n   */\n  var Editor = function (context) {\n    var self = this;\n\n    var $note = context.layoutInfo.note;\n    var $editor = context.layoutInfo.editor;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var editable = $editable[0];\n    var lastRange = null;\n\n    var style = new Style();\n    var table = new Table();\n    var typing = new Typing();\n    var bullet = new Bullet();\n    var history = new History($editable);\n\n    this.initialize = function () {\n      // bind custom events\n      $editable.on('keydown', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          context.triggerEvent('enter', event);\n        }\n        context.triggerEvent('keydown', event);\n\n        if (!event.isDefaultPrevented()) {\n          if (options.shortcuts) {\n            self.handleKeyMap(event);\n          } else {\n            self.preventDefaultEditableShortCuts(event);\n          }\n        }\n      }).on('keyup', function (event) {\n        context.triggerEvent('keyup', event);\n      }).on('focus', function (event) {\n        context.triggerEvent('focus', event);\n      }).on('blur', function (event) {\n        context.triggerEvent('blur', event);\n      }).on('mousedown', function (event) {\n        context.triggerEvent('mousedown', event);\n      }).on('mouseup', function (event) {\n        context.triggerEvent('mouseup', event);\n      }).on('scroll', function (event) {\n        context.triggerEvent('scroll', event);\n      }).on('paste', function (event) {\n        context.triggerEvent('paste', event);\n      });\n\n      // init content before set event\n      $editable.html(dom.html($note) || dom.emptyPara);\n\n      // [workaround] IE doesn't have input events for contentEditable\n      // - see: https://goo.gl/4bfIvA\n      var changeEventName = agent.isMSIE ? 'DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted' : 'input';\n      $editable.on(changeEventName, func.debounce(function () {\n        context.triggerEvent('change', $editable.html());\n      }, 250));\n\n      $editor.on('focusin', function (event) {\n        context.triggerEvent('focusin', event);\n      }).on('focusout', function (event) {\n        context.triggerEvent('focusout', event);\n      });\n\n      if (!options.airMode) {\n        if (options.width) {\n          $editor.outerWidth(options.width);\n        }\n        if (options.height) {\n          $editable.outerHeight(options.height);\n        }\n        if (options.maxHeight) {\n          $editable.css('max-height', options.maxHeight);\n        }\n        if (options.minHeight) {\n          $editable.css('min-height', options.minHeight);\n        }\n      }\n\n      history.recordUndo();\n    };\n\n    this.destroy = function () {\n      $editable.off();\n    };\n\n    this.handleKeyMap = function (event) {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      var keys = [];\n\n      if (event.metaKey) { keys.push('CMD'); }\n      if (event.ctrlKey && !event.altKey) { keys.push('CTRL'); }\n      if (event.shiftKey) { keys.push('SHIFT'); }\n\n      var keyName = key.nameFromCode[event.keyCode];\n      if (keyName) {\n        keys.push(keyName);\n      }\n\n      var eventName = keyMap[keys.join('+')];\n      if (eventName) {\n        event.preventDefault();\n        context.invoke(eventName);\n      } else if (key.isEdit(event.keyCode)) {\n        this.afterCommand();\n      }\n    };\n\n    this.preventDefaultEditableShortCuts = function (event) {\n      // B(Bold, 66) / I(Italic, 73) / U(Underline, 85)\n      if ((event.ctrlKey || event.metaKey) &&\n        list.contains([66, 73, 85], event.keyCode)) {\n        event.preventDefault();\n      }\n    };\n\n    /**\n     * create range\n     * @return {WrappedRange}\n     */\n    this.createRange = function () {\n      this.focus();\n      return range.create(editable);\n    };\n\n    /**\n     * saveRange\n     *\n     * save current range\n     *\n     * @param {Boolean} [thenCollapse=false]\n     */\n    this.saveRange = function (thenCollapse) {\n      lastRange = this.createRange();\n      if (thenCollapse) {\n        lastRange.collapse().select();\n      }\n    };\n\n    /**\n     * restoreRange\n     *\n     * restore lately range\n     */\n    this.restoreRange = function () {\n      if (lastRange) {\n        lastRange.select();\n        this.focus();\n      }\n    };\n\n    this.saveTarget = function (node) {\n      $editable.data('target', node);\n    };\n\n    this.clearTarget = function () {\n      $editable.removeData('target');\n    };\n\n    this.restoreTarget = function () {\n      return $editable.data('target');\n    };\n\n    /**\n     * currentStyle\n     *\n     * current style\n     * @return {Object|Boolean} unfocus\n     */\n    this.currentStyle = function () {\n      var rng = range.create();\n      if (rng) {\n        rng = rng.normalize();\n      }\n      return rng ? style.current(rng) : style.fromNode($editable);\n    };\n\n    /**\n     * style from node\n     *\n     * @param {jQuery} $node\n     * @return {Object}\n     */\n    this.styleFromNode = function ($node) {\n      return style.fromNode($node);\n    };\n\n    /**\n     * undo\n     */\n    this.undo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.undo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.undo', lang.help.undo);\n\n    /**\n     * redo\n     */\n    this.redo = function () {\n      context.triggerEvent('before.command', $editable.html());\n      history.redo();\n      context.triggerEvent('change', $editable.html());\n    };\n    context.memo('help.redo', lang.help.redo);\n\n    /**\n     * before command\n     */\n    var beforeCommand = this.beforeCommand = function () {\n      context.triggerEvent('before.command', $editable.html());\n      // keep focus on editable before command execution\n      self.focus();\n    };\n\n    /**\n     * after command\n     * @param {Boolean} isPreventTrigger\n     */\n    var afterCommand = this.afterCommand = function (isPreventTrigger) {\n      history.recordUndo();\n      if (!isPreventTrigger) {\n        context.triggerEvent('change', $editable.html());\n      }\n    };\n\n    /* jshint ignore:start */\n    // native commands(with execCommand), generate function for execCommand\n    var commands = ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript',\n                    'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull',\n                    'formatBlock', 'removeFormat',\n                    'backColor', 'foreColor', 'fontName'];\n\n    for (var idx = 0, len = commands.length; idx < len; idx ++) {\n      this[commands[idx]] = (function (sCmd) {\n        return function (value) {\n          beforeCommand();\n          document.execCommand(sCmd, false, value);\n          afterCommand(true);\n        };\n      })(commands[idx]);\n      context.memo('help.' + commands[idx], lang.help[commands[idx]]);\n    }\n    /* jshint ignore:end */\n\n    /**\n     * handle tab key\n     */\n    this.tab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng);\n      } else {\n        beforeCommand();\n        typing.insertTab(rng, options.tabSize);\n        afterCommand();\n      }\n    };\n    context.memo('help.tab', lang.help.tab);\n\n    /**\n     * handle shift+tab key\n     */\n    this.untab = function () {\n      var rng = this.createRange();\n      if (rng.isCollapsed() && rng.isOnCell()) {\n        table.tab(rng, true);\n      }\n    };\n    context.memo('help.untab', lang.help.untab);\n\n    /**\n     * run given function between beforeCommand and afterCommand\n     */\n    this.wrapCommand = function (fn) {\n      return function () {\n        beforeCommand();\n        fn.apply(self, arguments);\n        afterCommand();\n      };\n    };\n\n    /**\n     * insert paragraph\n     */\n    this.insertParagraph = this.wrapCommand(function () {\n      typing.insertParagraph(editable);\n    });\n    context.memo('help.insertParagraph', lang.help.insertParagraph);\n\n    this.insertOrderedList = this.wrapCommand(function () {\n      bullet.insertOrderedList(editable);\n    });\n    context.memo('help.insertOrderedList', lang.help.insertOrderedList);\n\n    this.insertUnorderedList = this.wrapCommand(function () {\n      bullet.insertUnorderedList(editable);\n    });\n    context.memo('help.insertUnorderedList', lang.help.insertUnorderedList);\n\n    this.indent = this.wrapCommand(function () {\n      bullet.indent(editable);\n    });\n    context.memo('help.indent', lang.help.indent);\n\n    this.outdent = this.wrapCommand(function () {\n      bullet.outdent(editable);\n    });\n    context.memo('help.outdent', lang.help.outdent);\n\n    /**\n     * insert image\n     *\n     * @param {String} src\n     * @param {String|Function} param\n     * @return {Promise}\n     */\n    this.insertImage = function (src, param) {\n      return async.createImage(src, param).then(function ($image) {\n        beforeCommand();\n\n        if (typeof param === 'function') {\n          param($image);\n        } else {\n          if (typeof param === 'string') {\n            $image.attr('data-filename', param);\n          }\n          $image.css('width', Math.min($editable.width(), $image.width()));\n        }\n\n        $image.show();\n        range.create(editable).insertNode($image[0]);\n        range.createFromNodeAfter($image[0]).select();\n        afterCommand();\n      }).fail(function (e) {\n        context.triggerEvent('image.upload.error', e);\n      });\n    };\n\n    /**\n     * insertImages\n     * @param {File[]} files\n     */\n    this.insertImages = function (files) {\n      $.each(files, function (idx, file) {\n        var filename = file.name;\n        if (options.maximumImageFileSize && options.maximumImageFileSize < file.size) {\n          context.triggerEvent('image.upload.error', lang.image.maximumFileSizeError);\n        } else {\n          async.readFileAsDataURL(file).then(function (dataURL) {\n            return self.insertImage(dataURL, filename);\n          }).fail(function () {\n            context.triggerEvent('image.upload.error');\n          });\n        }\n      });\n    };\n\n    /**\n     * insertImagesOrCallback\n     * @param {File[]} files\n     */\n    this.insertImagesOrCallback = function (files) {\n      var callbacks = options.callbacks;\n\n      // If onImageUpload options setted\n      if (callbacks.onImageUpload) {\n        context.triggerEvent('image.upload', files);\n      // else insert Image as dataURL\n      } else {\n        this.insertImages(files);\n      }\n    };\n\n    /**\n     * insertNode\n     * insert node\n     * @param {Node} node\n     */\n    this.insertNode = this.wrapCommand(function (node) {\n      var rng = this.createRange();\n      rng.insertNode(node);\n      range.createFromNodeAfter(node).select();\n    });\n\n    /**\n     * insert text\n     * @param {String} text\n     */\n    this.insertText = this.wrapCommand(function (text) {\n      var rng = this.createRange();\n      var textNode = rng.insertNode(dom.createText(text));\n      range.create(textNode, dom.nodeLength(textNode)).select();\n    });\n\n    /**\n     * return selected plain text\n     * @return {String} text\n     */\n    this.getSelectedText = function () {\n      var rng = this.createRange();\n\n      // if range on anchor, expand range with anchor\n      if (rng.isOnAnchor()) {\n        rng = range.createFromNode(dom.ancestor(rng.sc, dom.isAnchor));\n      }\n\n      return rng.toString();\n    };\n\n    /**\n     * paste HTML\n     * @param {String} markup\n     */\n    this.pasteHTML = this.wrapCommand(function (markup) {\n      var contents = this.createRange().pasteHTML(markup);\n      range.createFromNodeAfter(list.last(contents)).select();\n    });\n\n    /**\n     * formatBlock\n     *\n     * @param {String} tagName\n     */\n    this.formatBlock = this.wrapCommand(function (tagName) {\n      // [workaround] for MSIE, IE need `<`\n      tagName = agent.isMSIE ? '<' + tagName + '>' : tagName;\n      document.execCommand('FormatBlock', false, tagName);\n    });\n\n    this.formatPara = function () {\n      this.formatBlock('P');\n    };\n    context.memo('help.formatPara', lang.help.formatPara);\n\n    /* jshint ignore:start */\n    for (var idx = 1; idx <= 6; idx ++) {\n      this['formatH' + idx] = function (idx) {\n        return function () {\n          this.formatBlock('H' + idx);\n        };\n      }(idx);\n      context.memo('help.formatH'+idx, lang.help['formatH' + idx]);\n    };\n    /* jshint ignore:end */\n\n    /**\n     * fontSize\n     *\n     * @param {String} value - px\n     */\n    this.fontSize = function (value) {\n      var rng = this.createRange();\n\n      if (rng && rng.isCollapsed()) {\n        var spans = style.styleNodes(rng);\n        var firstSpan = list.head(spans);\n\n        $(spans).css({\n          'font-size': value + 'px'\n        });\n\n        // [workaround] added styled bogus span for style\n        //  - also bogus character needed for cursor position\n        if (firstSpan && !dom.nodeLength(firstSpan)) {\n          firstSpan.innerHTML = dom.ZERO_WIDTH_NBSP_CHAR;\n          range.createFromNodeAfter(firstSpan.firstChild).select();\n          $editable.data(KEY_BOGUS, firstSpan);\n        }\n      } else {\n        beforeCommand();\n        $(style.styleNodes(rng)).css({\n          'font-size': value + 'px'\n        });\n        afterCommand();\n      }\n    };\n\n    /**\n     * insert horizontal rule\n     */\n    this.insertHorizontalRule = this.wrapCommand(function () {\n      var hrNode = this.createRange().insertNode(dom.create('HR'));\n      if (hrNode.nextSibling) {\n        range.create(hrNode.nextSibling, 0).normalize().select();\n      }\n    });\n    context.memo('help.insertHorizontalRule', lang.help.insertHorizontalRule);\n\n    /**\n     * remove bogus node and character\n     */\n    this.removeBogus = function () {\n      var bogusNode = $editable.data(KEY_BOGUS);\n      if (!bogusNode) {\n        return;\n      }\n\n      var textNode = list.find(list.from(bogusNode.childNodes), dom.isText);\n\n      var bogusCharIdx = textNode.nodeValue.indexOf(dom.ZERO_WIDTH_NBSP_CHAR);\n      if (bogusCharIdx !== -1) {\n        textNode.deleteData(bogusCharIdx, 1);\n      }\n\n      if (dom.isEmpty(bogusNode)) {\n        dom.remove(bogusNode);\n      }\n\n      $editable.removeData(KEY_BOGUS);\n    };\n\n    /**\n     * lineHeight\n     * @param {String} value\n     */\n    this.lineHeight = this.wrapCommand(function (value) {\n      style.stylePara(this.createRange(), {\n        lineHeight: value\n      });\n    });\n\n    /**\n     * unlink\n     *\n     * @type command\n     */\n    this.unlink = function () {\n      var rng = this.createRange();\n      if (rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        rng = range.createFromNode(anchor);\n        rng.select();\n\n        beforeCommand();\n        document.execCommand('unlink');\n        afterCommand();\n      }\n    };\n\n    /**\n     * create link (command)\n     *\n     * @param {Object} linkInfo\n     */\n    this.createLink = this.wrapCommand(function (linkInfo) {\n      var linkUrl = linkInfo.url;\n      var linkText = linkInfo.text;\n      var isNewWindow = linkInfo.isNewWindow;\n      var rng = linkInfo.range || this.createRange();\n      var isTextChanged = rng.toString() !== linkText;\n\n      // handle spaced urls from input\n      if (typeof linkUrl === 'string') {\n        linkUrl = linkUrl.trim();\n      }\n\n      if (options.onCreateLink) {\n        linkUrl = options.onCreateLink(linkUrl);\n      }\n\n      var anchors = [];\n      if (isTextChanged) {\n        rng = rng.deleteContents();\n        var anchor = rng.insertNode($('<A>' + linkText + '</A>')[0]);\n        anchors.push(anchor);\n      } else {\n        anchors = style.styleNodes(rng, {\n          nodeName: 'A',\n          expandClosestSibling: true,\n          onlyPartialContains: true\n        });\n      }\n\n      $.each(anchors, function (idx, anchor) {\n        // if url doesn't match an URL schema, set http:// as default\n        linkUrl = /^[A-Za-z][A-Za-z0-9+-.]*\\:[\\/\\/]?/.test(linkUrl) ?\n          linkUrl : 'http://' + linkUrl;\n\n        $(anchor).attr('href', linkUrl);\n        if (isNewWindow) {\n          $(anchor).attr('target', '_blank');\n        } else {\n          $(anchor).removeAttr('target');\n        }\n      });\n\n      var startRange = range.createFromNodeBefore(list.head(anchors));\n      var startPoint = startRange.getStartPoint();\n      var endRange = range.createFromNodeAfter(list.last(anchors));\n      var endPoint = endRange.getEndPoint();\n\n      range.create(\n        startPoint.node,\n        startPoint.offset,\n        endPoint.node,\n        endPoint.offset\n      ).select();\n    });\n\n    /**\n     * returns link info\n     *\n     * @return {Object}\n     * @return {WrappedRange} return.range\n     * @return {String} return.text\n     * @return {Boolean} [return.isNewWindow=true]\n     * @return {String} [return.url=\"\"]\n     */\n    this.getLinkInfo = function () {\n      var rng = this.createRange().expand(dom.isAnchor);\n\n      // Get the first anchor on range(for edit).\n      var $anchor = $(list.head(rng.nodes(dom.isAnchor)));\n\n      return {\n        range: rng,\n        text: rng.toString(),\n        isNewWindow: $anchor.length ? $anchor.attr('target') === '_blank' : false,\n        url: $anchor.length ? $anchor.attr('href') : ''\n      };\n    };\n\n    /**\n     * setting color\n     *\n     * @param {Object} sObjColor  color code\n     * @param {String} sObjColor.foreColor foreground color\n     * @param {String} sObjColor.backColor background color\n     */\n    this.color = this.wrapCommand(function (colorInfo) {\n      var foreColor = colorInfo.foreColor;\n      var backColor = colorInfo.backColor;\n\n      if (foreColor) { document.execCommand('foreColor', false, foreColor); }\n      if (backColor) { document.execCommand('backColor', false, backColor); }\n    });\n\n    /**\n     * insert Table\n     *\n     * @param {String} dimension of table (ex : \"5x5\")\n     */\n    this.insertTable = this.wrapCommand(function (dim) {\n      var dimension = dim.split('x');\n\n      var rng = this.createRange().deleteContents();\n      rng.insertNode(table.createTable(dimension[0], dimension[1], options));\n    });\n\n    /**\n     * float me\n     *\n     * @param {String} value\n     */\n    this.floatMe = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css('float', value);\n    });\n\n    /**\n     * resize overlay element\n     * @param {String} value\n     */\n    this.resize = this.wrapCommand(function (value) {\n      var $target = $(this.restoreTarget());\n      $target.css({\n        width: value * 100 + '%',\n        height: ''\n      });\n    });\n\n    /**\n     * @param {Position} pos\n     * @param {jQuery} $target - target element\n     * @param {Boolean} [bKeepRatio] - keep ratio\n     */\n    this.resizeTo = function (pos, $target, bKeepRatio) {\n      var imageSize;\n      if (bKeepRatio) {\n        var newRatio = pos.y / pos.x;\n        var ratio = $target.data('ratio');\n        imageSize = {\n          width: ratio > newRatio ? pos.x : pos.y / ratio,\n          height: ratio > newRatio ? pos.x * ratio : pos.y\n        };\n      } else {\n        imageSize = {\n          width: pos.x,\n          height: pos.y\n        };\n      }\n\n      $target.css(imageSize);\n    };\n\n    /**\n     * remove media object\n     */\n    this.removeMedia = this.wrapCommand(function () {\n      var $target = $(this.restoreTarget()).detach();\n      context.triggerEvent('media.delete', $target, $editable);\n    });\n\n    /**\n     * returns whether editable area has focus or not.\n     */\n    this.hasFocus = function () {\n      return $editable.is(':focus');\n    };\n\n    /**\n     * set focus\n     */\n    this.focus = function () {\n      // [workaround] Screen will move when page is scolled in IE.\n      //  - do focus when not focused\n      if (!this.hasFocus()) {\n        $editable.focus();\n      }\n    };\n\n    /**\n     * returns whether contents is empty or not.\n     * @return {Boolean}\n     */\n    this.isEmpty = function () {\n      return dom.isEmpty($editable[0]) || dom.emptyPara === $editable.html();\n    };\n\n    /**\n     * Removes all contents and restores the editable instance to an _emptyPara_.\n     */\n    this.empty = function () {\n      context.invoke('code', dom.emptyPara);\n    };\n  };\n\n  return Editor;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Fullscreen.js",
    "content": "define([\n  'jquery'\n], function ($) {\n  var Fullscreen = function (context) {\n    var $editor = context.layoutInfo.editor;\n    var $toolbar = context.layoutInfo.toolbar;\n    var $editable = context.layoutInfo.editable;\n    var $codable = context.layoutInfo.codable;\n\n    var $window = $(window);\n    var $scrollbar = $('html, body');\n\n    /**\n     * toggle fullscreen\n     */\n    this.toggle = function () {\n      var resize = function (size) {\n        $editable.css('height', size.h);\n        $codable.css('height', size.h);\n        if ($codable.data('cmeditor')) {\n          $codable.data('cmeditor').setsize(null, size.h);\n        }\n      };\n\n      $editor.toggleClass('fullscreen');\n      if (this.isFullscreen()) {\n        $editable.data('orgHeight', $editable.css('height'));\n\n        $window.on('resize', function () {\n          resize({\n            h: $window.height() - $toolbar.outerHeight()\n          });\n        }).trigger('resize');\n\n        $scrollbar.css('overflow', 'hidden');\n      } else {\n        $window.off('resize');\n        resize({\n          h: $editable.data('orgHeight')\n        });\n        $scrollbar.css('overflow', 'visible');\n      }\n\n      context.invoke('toolbar.updateFullscreen', this.isFullscreen());\n    };\n\n    this.isFullscreen = function () {\n      return $editor.hasClass('fullscreen');\n    };\n  };\n\n  return Fullscreen;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Handle.js",
    "content": "define([\n  'summernote/base/core/dom'\n], function (dom) {\n  var Handle = function (context) {\n    var self = this;\n\n    var $document = $(document);\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.mousedown': function (we, e) {\n        if (self.update(e.target)) {\n          e.preventDefault();\n        }\n      },\n      'summernote.keyup summernote.scroll summernote.change summernote.dialog.shown': function () {\n        self.update();\n      }\n    };\n\n    this.initialize = function () {\n      this.$handle = $([\n        '<div class=\"note-handle\">',\n        '<div class=\"note-control-selection\">',\n        '<div class=\"note-control-selection-bg\"></div>',\n        '<div class=\"note-control-holder note-control-nw\"></div>',\n        '<div class=\"note-control-holder note-control-ne\"></div>',\n        '<div class=\"note-control-holder note-control-sw\"></div>',\n        '<div class=\"',\n        (options.disableResizeImage ? 'note-control-holder' : 'note-control-sizing'),\n        ' note-control-se\"></div>',\n        (options.disableResizeImage ? '' : '<div class=\"note-control-selection-info\"></div>'),\n        '</div>',\n        '</div>'\n      ].join('')).prependTo($editingArea);\n\n      this.$handle.on('mousedown', function (event) {\n        if (dom.isControlSizing(event.target)) {\n          event.preventDefault();\n          event.stopPropagation();\n\n          var $target = self.$handle.find('.note-control-selection').data('target'),\n              posStart = $target.offset(),\n              scrollTop = $document.scrollTop();\n\n          $document.on('mousemove', function (event) {\n            context.invoke('editor.resizeTo', {\n              x: event.clientX - posStart.left,\n              y: event.clientY - (posStart.top - scrollTop)\n            }, $target, !event.shiftKey);\n\n            self.update($target[0]);\n          }).one('mouseup', function (e) {\n            e.preventDefault();\n            $document.off('mousemove');\n            context.invoke('editor.afterCommand');\n          });\n\n          if (!$target.data('ratio')) { // original ratio.\n            $target.data('ratio', $target.height() / $target.width());\n          }\n        }\n      });\n    };\n\n    this.destroy = function () {\n      this.$handle.remove();\n    };\n\n    this.update = function (target) {\n      var isImage = dom.isImg(target);\n      var $selection = this.$handle.find('.note-control-selection');\n\n      context.invoke('imagePopover.update', target);\n\n      if (isImage) {\n        var $image = $(target);\n        var pos = $image.position();\n\n        // include margin\n        var imageSize = {\n          w: $image.outerWidth(true),\n          h: $image.outerHeight(true)\n        };\n\n        $selection.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top,\n          width: imageSize.w,\n          height: imageSize.h\n        }).data('target', $image); // save current image element.\n\n        var sizingText = imageSize.w + 'x' + imageSize.h;\n        $selection.find('.note-control-selection-info').text(sizingText);\n        context.invoke('editor.saveTarget', target);\n      } else {\n        this.hide();\n      }\n\n      return isImage;\n    };\n\n    /**\n     * hide\n     *\n     * @param {jQuery} $handle\n     */\n    this.hide = function () {\n      context.invoke('editor.clearTarget');\n      this.$handle.children().hide();\n    };\n  };\n\n  return Handle;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Placeholder.js",
    "content": "define(function () {\n  var Placeholder = function (context) {\n    var self = this;\n    var $editingArea = context.layoutInfo.editingArea;\n    var options = context.options;\n\n    this.events = {\n      'summernote.init summernote.change': function () {\n        self.update();\n      },\n      'summernote.codeview.toggled': function () {\n        self.update();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !!options.placeholder;\n    };\n\n    this.initialize = function () {\n      this.$placeholder = $('<div class=\"note-placeholder\">');\n      this.$placeholder.on('click', function () {\n        context.invoke('focus');\n      }).text(options.placeholder).prependTo($editingArea);\n    };\n\n    this.destroy = function () {\n      this.$placeholder.remove();\n    };\n\n    this.update = function () {\n      var isShow = !context.invoke('codeview.isActivated') && context.invoke('editor.isEmpty');\n      this.$placeholder.toggle(isShow);\n    };\n  };\n\n  return Placeholder;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/module/Statusbar.js",
    "content": "define(function () {\n  var EDITABLE_PADDING = 24;\n\n  var Statusbar = function (context) {\n    var $document = $(document);\n    var $statusbar = context.layoutInfo.statusbar;\n    var $editable = context.layoutInfo.editable;\n    var options = context.options;\n\n    this.initialize = function () {\n      if (options.airMode || options.disableResizeEditor) {\n        return;\n      }\n\n      $statusbar.on('mousedown', function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        var editableTop = $editable.offset().top - $document.scrollTop();\n\n        $document.on('mousemove', function (event) {\n          var height = event.clientY - (editableTop + EDITABLE_PADDING);\n\n          height = (options.minheight > 0) ? Math.max(height, options.minheight) : height;\n          height = (options.maxHeight > 0) ? Math.min(height, options.maxHeight) : height;\n\n          $editable.height(height);\n        }).one('mouseup', function () {\n          $document.off('mousemove');\n        });\n      });\n    };\n\n    this.destroy = function () {\n      $statusbar.off();\n      $statusbar.remove();\n    };\n  };\n\n  return Statusbar;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/renderer.js",
    "content": "define(function () {\n  var Renderer = function (markup, children, options, callback) {\n    this.render = function ($parent) {\n      var $node = $(markup);\n\n      if (options && options.contents) {\n        $node.html(options.contents);\n      }\n\n      if (options && options.className) {\n        $node.addClass(options.className);\n      }\n\n      if (options && options.data) {\n        $.each(options.data, function (k, v) {\n          $node.attr('data-' + k, v);\n        });\n      }\n\n      if (options && options.click) {\n        $node.on('click', options.click);\n      }\n\n      if (children) {\n        var $container = $node.find('.note-children-container');\n        children.forEach(function (child) {\n          child.render($container.length ? $container : $node);\n        });\n      }\n\n      if (callback) {\n        callback($node, options);\n      }\n\n      if (options && options.callback) {\n        options.callback($node);\n      }\n\n      if ($parent) {\n        $parent.append($node);\n      }\n\n      return $node;\n    };\n  };\n\n  var renderer = {\n    create: function (markup, callback) {\n      return function () {\n        var children = $.isArray(arguments[0]) ? arguments[0] : [];\n        var options = typeof arguments[1] === 'object' ? arguments[1] : arguments[0];\n        if (options && options.children) {\n          children = options.children;\n        }\n        return new Renderer(markup, children, options, callback);\n      };\n    }\n  };\n\n  return renderer;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/base/summernote-en-US.js",
    "content": "define([\n  'jquery'\n], function ($) {\n  $.summernote = $.summernote || {\n    lang: {}\n  };\n\n  $.extend($.summernote.lang, {\n    'en-US': {\n      font: {\n        bold: 'Bold',\n        italic: 'Italic',\n        underline: 'Underline',\n        clear: 'Remove Font Style',\n        height: 'Line Height',\n        name: 'Font Family',\n        strikethrough: 'Strikethrough',\n        subscript: 'Subscript',\n        superscript: 'Superscript',\n        size: 'Font Size'\n      },\n      image: {\n        image: 'Picture',\n        insert: 'Insert Image',\n        resizeFull: 'Resize Full',\n        resizeHalf: 'Resize Half',\n        resizeQuarter: 'Resize Quarter',\n        floatLeft: 'Float Left',\n        floatRight: 'Float Right',\n        floatNone: 'Float None',\n        shapeRounded: 'Shape: Rounded',\n        shapeCircle: 'Shape: Circle',\n        shapeThumbnail: 'Shape: Thumbnail',\n        shapeNone: 'Shape: None',\n        dragImageHere: 'Drag image or text here',\n        dropImage: 'Drop image or Text',\n        selectFromFiles: 'Select from files',\n        maximumFileSize: 'Maximum file size',\n        maximumFileSizeError: 'Maximum file size exceeded.',\n        url: 'Image URL',\n        remove: 'Remove Image'\n      },\n      video: {\n        video: 'Video',\n        videoLink: 'Video Link',\n        insert: 'Insert Video',\n        url: 'Video URL?',\n        providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion or Youku)'\n      },\n      link: {\n        link: 'Link',\n        insert: 'Insert Link',\n        unlink: 'Unlink',\n        edit: 'Edit',\n        textToDisplay: 'Text to display',\n        url: 'To what URL should this link go?',\n        openInNewWindow: 'Open in new window'\n      },\n      table: {\n        table: 'Table'\n      },\n      hr: {\n        insert: 'Insert Horizontal Rule'\n      },\n      style: {\n        style: 'Style',\n        normal: 'Normal',\n        blockquote: 'Quote',\n        pre: 'Code',\n        h1: 'Header 1',\n        h2: 'Header 2',\n        h3: 'Header 3',\n        h4: 'Header 4',\n        h5: 'Header 5',\n        h6: 'Header 6'\n      },\n      lists: {\n        unordered: 'Unordered list',\n        ordered: 'Ordered list'\n      },\n      options: {\n        help: 'Help',\n        fullscreen: 'Full Screen',\n        codeview: 'Code View'\n      },\n      paragraph: {\n        paragraph: 'Paragraph',\n        outdent: 'Outdent',\n        indent: 'Indent',\n        left: 'Align left',\n        center: 'Align center',\n        right: 'Align right',\n        justify: 'Justify full'\n      },\n      color: {\n        recent: 'Recent Color',\n        more: 'More Color',\n        background: 'Background Color',\n        foreground: 'Foreground Color',\n        transparent: 'Transparent',\n        setTransparent: 'Set transparent',\n        reset: 'Reset',\n        resetToDefault: 'Reset to default'\n      },\n      shortcut: {\n        shortcuts: 'Keyboard shortcuts',\n        close: 'Close',\n        textFormatting: 'Text formatting',\n        action: 'Action',\n        paragraphFormatting: 'Paragraph formatting',\n        documentStyle: 'Document Style',\n        extraKeys: 'Extra keys'\n      },\n      help: {\n        'insertParagraph': 'Insert Paragraph',\n        'undo': 'Undoes the last command',\n        'redo': 'Redoes the last command',\n        'tab': 'Tab',\n        'untab': 'Untab',\n        'bold': 'Set a bold style',\n        'italic': 'Set a italic style',\n        'underline': 'Set a underline style',\n        'strikethrough': 'Set a strikethrough style',\n        'removeFormat': 'Clean a style',\n        'justifyLeft': 'Set left align',\n        'justifyCenter': 'Set center align',\n        'justifyRight': 'Set right align',\n        'justifyFull': 'Set full align',\n        'insertUnorderedList': 'Toggle unordered list',\n        'insertOrderedList': 'Toggle ordered list',\n        'outdent': 'Outdent on current paragraph',\n        'indent': 'Indent on current paragraph',\n        'formatPara': 'Change current block\\'s format as a paragraph(P tag)',\n        'formatH1': 'Change current block\\'s format as H1',\n        'formatH2': 'Change current block\\'s format as H2',\n        'formatH3': 'Change current block\\'s format as H3',\n        'formatH4': 'Change current block\\'s format as H4',\n        'formatH5': 'Change current block\\'s format as H5',\n        'formatH6': 'Change current block\\'s format as H6',\n        'insertHorizontalRule': 'Insert horizontal rule',\n        'linkDialog.show': 'Show Link Dialog'\n      },\n      history: {\n        undo: 'Undo',\n        redo: 'Redo'\n      },\n      specialChar: {\n        specialChar: 'SPECIAL CHARACTERS',\n        select: 'Select Special characters'\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/AirPopover.js",
    "content": "define([\n  'summernote/base/core/agent',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (agent, func, list, dom) {\n  var AirPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    var AIR_MODE_POPOVER_X_OFFSET = 20;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.change summernote.dialog.shown': function () {\n        self.hide();\n      },\n      'summernote.focusout': function (we, e) {\n        // [workaround] Firefox doesn't support relatedTarget on focusout\n        //  - Ignore hide action on focus out in FF.\n        if (agent.isFF) {\n          return;\n        }\n\n        if (!e.relatedTarget || !dom.ancestor(e.relatedTarget, func.eq(self.$popover[0]))) {\n          self.hide();\n        }\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return options.airMode && !list.isEmpty(options.popover.air);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-air-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.air);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      if (styleInfo.range && !styleInfo.range.isCollapsed()) {\n        var rect = list.last(styleInfo.range.getClientRects());\n        if (rect) {\n          var bnd = func.rect2bnd(rect);\n          this.$popover.css({\n            display: 'block',\n            left: Math.max(bnd.left + bnd.width / 2, 0) - AIR_MODE_POPOVER_X_OFFSET,\n            top: bnd.top + bnd.height\n          });\n        }\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return AirPopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/Buttons.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/agent'\n], function ($, func, list, agent) {\n  var Buttons = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    var invertedKeyMap = func.invertObject(options.keyMap[agent.isMac ? 'mac' : 'pc']);\n\n    var representShortcut = this.representShortcut = function (editorMethod) {\n      var shortcut = invertedKeyMap[editorMethod];\n      if (!options.shortcuts || !shortcut) {\n        return '';\n      }\n      \n      if (agent.isMac) {\n        shortcut = shortcut.replace('CMD', '⌘').replace('SHIFT', '⇧');\n      }\n\n      shortcut = shortcut.replace('BACKSLASH', '\\\\')\n                         .replace('SLASH', '/')\n                         .replace('LEFTBRACKET', '[')\n                         .replace('RIGHTBRACKET', ']');\n\n      return ' (' + shortcut + ')';\n    };\n\n    this.initialize = function () {\n      this.addToolbarButtons();\n      this.addImagePopoverButtons();\n      this.addLinkPopoverButtons();\n      this.fontInstalledMap = {};\n    };\n\n    this.destroy = function () {\n      delete this.fontInstalledMap;\n    };\n\n    this.isFontInstalled = function (name) {\n      if (!self.fontInstalledMap.hasOwnProperty(name)) {\n        self.fontInstalledMap[name] = agent.isFontInstalled(name) ||\n          list.contains(options.fontNamesIgnoreCheck, name);\n      }\n\n      return self.fontInstalledMap[name];\n    };\n\n    this.addToolbarButtons = function () {\n      context.memo('button.style', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.magic) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.style.style,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'dropdown-style',\n            items: context.options.styleTags,\n            template: function (item) {\n\n              if (typeof item === 'string') {\n                item = { tag: item, title: (lang.style.hasOwnProperty(item) ? lang.style[item] : item) };\n              }\n\n              var tag = item.tag;\n              var title = item.title;\n              var style = item.style ? ' style=\"' + item.style + '\" ' : '';\n              var className = item.className ? ' class=\"' + item.className + '\"' : '';\n\n              return '<' + tag + style + className + '>' + title + '</' + tag +  '>';\n            },\n            click: context.createInvokeHandler('editor.formatBlock')\n          })\n        ]).render();\n      });\n\n      context.memo('button.bold', function () {\n        return ui.button({\n          className: 'note-btn-bold',\n          contents: ui.icon(options.icons.bold),\n          tooltip: lang.font.bold + representShortcut('bold'),\n          click: context.createInvokeHandler('editor.bold')\n        }).render();\n      });\n\n      context.memo('button.italic', function () {\n        return ui.button({\n          className: 'note-btn-italic',\n          contents: ui.icon(options.icons.italic),\n          tooltip: lang.font.italic + representShortcut('italic'),\n          click: context.createInvokeHandler('editor.italic')\n        }).render();\n      });\n\n      context.memo('button.underline', function () {\n        return ui.button({\n          className: 'note-btn-underline',\n          contents: ui.icon(options.icons.underline),\n          tooltip: lang.font.underline + representShortcut('underline'),\n          click: context.createInvokeHandler('editor.underline')\n        }).render();\n      });\n\n      context.memo('button.clear', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.eraser),\n          tooltip: lang.font.clear + representShortcut('removeFormat'),\n          click: context.createInvokeHandler('editor.removeFormat')\n        }).render();\n      });\n\n      context.memo('button.strikethrough', function () {\n        return ui.button({\n          className: 'note-btn-strikethrough',\n          contents: ui.icon(options.icons.strikethrough),\n          tooltip: lang.font.strikethrough + representShortcut('strikethrough'),\n          click: context.createInvokeHandler('editor.strikethrough')\n        }).render();\n      });\n\n      context.memo('button.superscript', function () {\n        return ui.button({\n          className: 'note-btn-superscript',\n          contents: ui.icon(options.icons.superscript),\n          tooltip: lang.font.superscript,\n          click: context.createInvokeHandler('editor.superscript')\n        }).render();\n      });\n\n      context.memo('button.subscript', function () {\n        return ui.button({\n          className: 'note-btn-subscript',\n          contents: ui.icon(options.icons.subscript),\n          tooltip: lang.font.subscript,\n          click: context.createInvokeHandler('editor.subscript')\n        }).render();\n      });\n\n      context.memo('button.fontname', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontname\"/> ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.name,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontname',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontNames.filter(self.isFontInstalled),\n            template: function (item) {\n              return '<span style=\"font-family:' + item + '\">' + item + '</span>';\n            },\n            click: context.createInvokeHandler('editor.fontName')\n          })\n        ]).render();\n      });\n\n      context.memo('button.fontsize', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: '<span class=\"note-current-fontsize\"/>' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.size,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            className: 'dropdown-fontsize',\n            checkClassName: options.icons.menuCheck,\n            items: options.fontSizes,\n            click: context.createInvokeHandler('editor.fontSize')\n          })\n        ]).render();\n      });\n\n      context.memo('button.color', function () {\n        return ui.buttonGroup({\n          className: 'note-color',\n          children: [\n            ui.button({\n              className: 'note-current-color-button',\n              contents: ui.icon(options.icons.font + ' note-recent-color'),\n              tooltip: lang.color.recent,\n              click: function (e) {\n                var $button = $(e.currentTarget);\n                context.invoke('editor.color', {\n                  backColor: $button.attr('data-backColor'),\n                  foreColor: $button.attr('data-foreColor')\n                });\n              },\n              callback: function ($button) {\n                var $recentColor = $button.find('.note-recent-color');\n                $recentColor.css('background-color', '#FFFF00');\n                $button.attr('data-backColor', '#FFFF00');\n              }\n            }),\n            ui.button({\n              className: 'dropdown-toggle',\n              contents: ui.icon(options.icons.caret, 'span'),\n              tooltip: lang.color.more,\n              data: {\n                toggle: 'dropdown'\n              }\n            }),\n            ui.dropdown({\n              items: [\n                '<li>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.background + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"backColor\" data-value=\"inherit\">',\n                lang.color.transparent,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"backColor\"/>',\n                '</div>',\n                '<div class=\"btn-group\">',\n                '  <div class=\"note-palette-title\">' + lang.color.foreground + '</div>',\n                '  <div>',\n                '    <button type=\"button\" class=\"note-color-reset btn btn-default\" data-event=\"removeFormat\" data-value=\"foreColor\">',\n                lang.color.resetToDefault,\n                '    </button>',\n                '  </div>',\n                '  <div class=\"note-holder\" data-event=\"foreColor\"/>',\n                '</div>',\n                '</li>'\n              ].join(''),\n              callback: function ($dropdown) {\n                $dropdown.find('.note-holder').each(function () {\n                  var $holder = $(this);\n                  $holder.append(ui.palette({\n                    colors: options.colors,\n                    eventName: $holder.data('event')\n                  }).render());\n                });\n              },\n              click: function (event) {\n                var $button = $(event.target);\n                var eventName = $button.data('event');\n                var value = $button.data('value');\n\n                if (eventName && value) {\n                  var key = eventName === 'backColor' ? 'background-color' : 'color';\n                  var $color = $button.closest('.note-color').find('.note-recent-color');\n                  var $currentButton = $button.closest('.note-color').find('.note-current-color-button');\n\n                  $color.css(key, value);\n                  $currentButton.attr('data-' + eventName, value);\n                  context.invoke('editor.' + eventName, value);\n                }\n              }\n            })\n          ]\n        }).render();\n      });\n\n      context.memo('button.ul',  function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unorderedlist),\n          tooltip: lang.lists.unordered + representShortcut('insertUnorderedList'),\n          click: context.createInvokeHandler('editor.insertUnorderedList')\n        }).render();\n      });\n\n      context.memo('button.ol', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.orderedlist),\n          tooltip: lang.lists.ordered + representShortcut('insertOrderedList'),\n          click:  context.createInvokeHandler('editor.insertOrderedList')\n        }).render();\n      });\n\n      var justifyLeft = ui.button({\n        contents: ui.icon(options.icons.alignLeft),\n        tooltip: lang.paragraph.left + representShortcut('justifyLeft'),\n        click: context.createInvokeHandler('editor.justifyLeft')\n      });\n\n      var justifyCenter = ui.button({\n        contents: ui.icon(options.icons.alignCenter),\n        tooltip: lang.paragraph.center + representShortcut('justifyCenter'),\n        click: context.createInvokeHandler('editor.justifyCenter')\n      });\n\n      var justifyRight = ui.button({\n        contents: ui.icon(options.icons.alignRight),\n        tooltip: lang.paragraph.right + representShortcut('justifyRight'),\n        click: context.createInvokeHandler('editor.justifyRight')\n      });\n\n      var justifyFull = ui.button({\n        contents: ui.icon(options.icons.alignJustify),\n        tooltip: lang.paragraph.justify + representShortcut('justifyFull'),\n        click: context.createInvokeHandler('editor.justifyFull')\n      });\n\n      var outdent = ui.button({\n        contents: ui.icon(options.icons.outdent),\n        tooltip: lang.paragraph.outdent + representShortcut('outdent'),\n        click: context.createInvokeHandler('editor.outdent')\n      });\n\n      var indent = ui.button({\n        contents: ui.icon(options.icons.indent),\n        tooltip: lang.paragraph.indent + representShortcut('indent'),\n        click: context.createInvokeHandler('editor.indent')\n      });\n\n      context.memo('button.justifyLeft', func.invoke(justifyLeft, 'render'));\n      context.memo('button.justifyCenter', func.invoke(justifyCenter, 'render'));\n      context.memo('button.justifyRight', func.invoke(justifyRight, 'render'));\n      context.memo('button.justifyFull', func.invoke(justifyFull, 'render'));\n      context.memo('button.outdent', func.invoke(outdent, 'render'));\n      context.memo('button.indent', func.invoke(indent, 'render'));\n\n      context.memo('button.paragraph', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.alignLeft) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.paragraph.paragraph,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown([\n            ui.buttonGroup({\n              className: 'note-align',\n              children: [justifyLeft, justifyCenter, justifyRight, justifyFull]\n            }),\n            ui.buttonGroup({\n              className: 'note-list',\n              children: [outdent, indent]\n            })\n          ])\n        ]).render();\n      });\n\n      context.memo('button.height', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.textHeight) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.font.height,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdownCheck({\n            items: options.lineHeights,\n            checkClassName: options.icons.menuCheck,\n            className: 'dropdown-line-height',\n            click: context.createInvokeHandler('editor.lineHeight')\n          })\n        ]).render();\n      });\n\n      context.memo('button.table', function () {\n        return ui.buttonGroup([\n          ui.button({\n            className: 'dropdown-toggle',\n            contents: ui.icon(options.icons.table) + ' ' + ui.icon(options.icons.caret, 'span'),\n            tooltip: lang.table.table,\n            data: {\n              toggle: 'dropdown'\n            }\n          }),\n          ui.dropdown({\n            className: 'note-table',\n            items: [\n              '<div class=\"note-dimension-picker\">',\n              '  <div class=\"note-dimension-picker-mousecatcher\" data-event=\"insertTable\" data-value=\"1x1\"/>',\n              '  <div class=\"note-dimension-picker-highlighted\"/>',\n              '  <div class=\"note-dimension-picker-unhighlighted\"/>',\n              '</div>',\n              '<div class=\"note-dimension-display\">1 x 1</div>'\n            ].join('')\n          })\n        ], {\n          callback: function ($node) {\n            var $catcher = $node.find('.note-dimension-picker-mousecatcher');\n            $catcher.css({\n              width: options.insertTableMaxSize.col + 'em',\n              height: options.insertTableMaxSize.row + 'em'\n            }).mousedown(context.createInvokeHandler('editor.insertTable'))\n              .on('mousemove', self.tableMoveHandler);\n          }\n        }).render();\n      });\n\n      context.memo('button.link', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.link + representShortcut('linkDialog.show'),\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.picture', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.picture),\n          tooltip: lang.image.image,\n          click: context.createInvokeHandler('imageDialog.show')\n        }).render();\n      });\n\n      context.memo('button.video', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.video),\n          tooltip: lang.video.video,\n          click: context.createInvokeHandler('videoDialog.show')\n        }).render();\n      });\n\n      context.memo('button.hr', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.minus),\n          tooltip: lang.hr.insert + representShortcut('insertHorizontalRule'),\n          click: context.createInvokeHandler('editor.insertHorizontalRule')\n        }).render();\n      });\n\n      context.memo('button.fullscreen', function () {\n        return ui.button({\n          className: 'btn-fullscreen',\n          contents: ui.icon(options.icons.arrowsAlt),\n          tooltip: lang.options.fullscreen,\n          click: context.createInvokeHandler('fullscreen.toggle')\n        }).render();\n      });\n\n      context.memo('button.codeview', function () {\n        return ui.button({\n          className: 'btn-codeview',\n          contents: ui.icon(options.icons.code),\n          tooltip: lang.options.codeview,\n          click: context.createInvokeHandler('codeview.toggle')\n        }).render();\n      });\n\n      context.memo('button.redo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.redo),\n          tooltip: lang.history.redo + representShortcut('redo'),\n          click: context.createInvokeHandler('editor.redo')\n        }).render();\n      });\n\n      context.memo('button.undo', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.undo),\n          tooltip: lang.history.undo + representShortcut('undo'),\n          click: context.createInvokeHandler('editor.undo')\n        }).render();\n      });\n\n      context.memo('button.help', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.question),\n          tooltip: lang.options.help,\n          click: context.createInvokeHandler('helpDialog.show')\n        }).render();\n      });\n    };\n\n    /**\n     * image : [\n     *   ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n     *   ['float', ['floatLeft', 'floatRight', 'floatNone' ]],\n     *   ['remove', ['removeMedia']]\n     * ],\n     */\n    this.addImagePopoverButtons = function () {\n      // Image Size Buttons\n      context.memo('button.imageSize100', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">100%</span>',\n          tooltip: lang.image.resizeFull,\n          click: context.createInvokeHandler('editor.resize', '1')\n        }).render();\n      });\n      context.memo('button.imageSize50', function () {\n        return  ui.button({\n          contents: '<span class=\"note-fontsize-10\">50%</span>',\n          tooltip: lang.image.resizeHalf,\n          click: context.createInvokeHandler('editor.resize', '0.5')\n        }).render();\n      });\n      context.memo('button.imageSize25', function () {\n        return ui.button({\n          contents: '<span class=\"note-fontsize-10\">25%</span>',\n          tooltip: lang.image.resizeQuarter,\n          click: context.createInvokeHandler('editor.resize', '0.25')\n        }).render();\n      });\n\n      // Float Buttons\n      context.memo('button.floatLeft', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignLeft),\n          tooltip: lang.image.floatLeft,\n          click: context.createInvokeHandler('editor.floatMe', 'left')\n        }).render();\n      });\n\n      context.memo('button.floatRight', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignRight),\n          tooltip: lang.image.floatRight,\n          click: context.createInvokeHandler('editor.floatMe', 'right')\n        }).render();\n      });\n\n      context.memo('button.floatNone', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.alignJustify),\n          tooltip: lang.image.floatNone,\n          click: context.createInvokeHandler('editor.floatMe', 'none')\n        }).render();\n      });\n\n      // Remove Buttons\n      context.memo('button.removeMedia', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.trash),\n          tooltip: lang.image.remove,\n          click: context.createInvokeHandler('editor.removeMedia')\n        }).render();\n      });\n    };\n\n    this.addLinkPopoverButtons = function () {\n      context.memo('button.linkDialogShow', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.link),\n          tooltip: lang.link.edit,\n          click: context.createInvokeHandler('linkDialog.show')\n        }).render();\n      });\n\n      context.memo('button.unlink', function () {\n        return ui.button({\n          contents: ui.icon(options.icons.unlink),\n          tooltip: lang.link.unlink,\n          click: context.createInvokeHandler('editor.unlink')\n        }).render();\n      });\n    };\n\n    this.build = function ($container, groups) {\n      for (var groupIdx = 0, groupLen = groups.length; groupIdx < groupLen; groupIdx++) {\n        var group = groups[groupIdx];\n        var groupName = group[0];\n        var buttons = group[1];\n\n        var $group = ui.buttonGroup({\n          className: 'note-' + groupName\n        }).render();\n\n        for (var idx = 0, len = buttons.length; idx < len; idx++) {\n          var button = context.memo('button.' + buttons[idx]);\n          if (button) {\n            $group.append(typeof button === 'function' ? button(context) : button);\n          }\n        }\n        $group.appendTo($container);\n      }\n    };\n\n    this.updateCurrentStyle = function () {\n      var styleInfo = context.invoke('editor.currentStyle');\n      this.updateBtnStates({\n        '.note-btn-bold': function () {\n          return styleInfo['font-bold'] === 'bold';\n        },\n        '.note-btn-italic': function () {\n          return styleInfo['font-italic'] === 'italic';\n        },\n        '.note-btn-underline': function () {\n          return styleInfo['font-underline'] === 'underline';\n        },\n        '.note-btn-subscript': function () {\n          return styleInfo['font-subscript'] === 'subscript';\n        },\n        '.note-btn-superscript': function () {\n          return styleInfo['font-superscript'] === 'superscript';\n        },\n        '.note-btn-strikethrough': function () {\n          return styleInfo['font-strikethrough'] === 'strikethrough';\n        }\n      });\n\n      if (styleInfo['font-family']) {\n        var fontNames = styleInfo['font-family'].split(',').map(function (name) {\n          return name.replace(/[\\'\\\"]/g, '')\n            .replace(/\\s+$/, '')\n            .replace(/^\\s+/, '');\n        });\n        var fontName = list.find(fontNames, self.isFontInstalled);\n\n        $toolbar.find('.dropdown-fontname li a').each(function () {\n          // always compare string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontName + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontname').text(fontName);\n      }\n\n      if (styleInfo['font-size']) {\n        var fontSize = styleInfo['font-size'];\n        $toolbar.find('.dropdown-fontsize li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (fontSize + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n        $toolbar.find('.note-current-fontsize').text(fontSize);\n      }\n\n      if (styleInfo['line-height']) {\n        var lineHeight = styleInfo['line-height'];\n        $toolbar.find('.dropdown-line-height li a').each(function () {\n          // always compare with string to avoid creating another func.\n          var isChecked = ($(this).data('value') + '') === (lineHeight + '');\n          this.className = isChecked ? 'checked' : '';\n        });\n      }\n    };\n\n    this.updateBtnStates = function (infos) {\n      $.each(infos, function (selector, pred) {\n        ui.toggleBtnActive($toolbar.find(selector), pred());\n      });\n    };\n\n    this.tableMoveHandler = function (event) {\n      var PX_PER_EM = 18;\n      var $picker = $(event.target.parentNode); // target is mousecatcher\n      var $dimensionDisplay = $picker.next();\n      var $catcher = $picker.find('.note-dimension-picker-mousecatcher');\n      var $highlighted = $picker.find('.note-dimension-picker-highlighted');\n      var $unhighlighted = $picker.find('.note-dimension-picker-unhighlighted');\n\n      var posOffset;\n      // HTML5 with jQuery - e.offsetX is undefined in Firefox\n      if (event.offsetX === undefined) {\n        var posCatcher = $(event.target).offset();\n        posOffset = {\n          x: event.pageX - posCatcher.left,\n          y: event.pageY - posCatcher.top\n        };\n      } else {\n        posOffset = {\n          x: event.offsetX,\n          y: event.offsetY\n        };\n      }\n\n      var dim = {\n        c: Math.ceil(posOffset.x / PX_PER_EM) || 1,\n        r: Math.ceil(posOffset.y / PX_PER_EM) || 1\n      };\n\n      $highlighted.css({ width: dim.c + 'em', height: dim.r + 'em' });\n      $catcher.data('value', dim.c + 'x' + dim.r);\n\n      if (3 < dim.c && dim.c < options.insertTableMaxSize.col) {\n        $unhighlighted.css({ width: dim.c + 1 + 'em'});\n      }\n\n      if (3 < dim.r && dim.r < options.insertTableMaxSize.row) {\n        $unhighlighted.css({ height: dim.r + 1 + 'em'});\n      }\n\n      $dimensionDisplay.html(dim.c + ' x ' + dim.r);\n    };\n  };\n\n  return Buttons;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/HelpDialog.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/agent'\n], function ($, agent) {\n  var HelpDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.createShortCutList = function () {\n      var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];\n      return Object.keys(keyMap).map(function (key) {\n        var command = keyMap[key];\n        var $row = $('<div><div class=\"help-list-item\"/></div>');\n        $row.append($('<label><kbd>' + key + '</kdb></label>').css({\n          'width': 180,\n          'margin-right': 10\n        })).append($('<span/>').html(context.memo('help.' + command) || command));\n        return $row.html();\n      }).join('');\n    };\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = [\n        '<p class=\"text-center\">',\n        '<a href=\"http://summernote.org/\" target=\"_blank\">Summernote @VERSION</a> · ',\n        '<a href=\"https://github.com/summernote/summernote\" target=\"_blank\">Project</a> · ',\n        '<a href=\"https://github.com/summernote/summernote/issues\" target=\"_blank\">Issues</a>',\n        '</p>'\n      ].join('');\n\n      this.$dialog = ui.dialog({\n        title: lang.options.help,\n        fade: options.dialogsFade,\n        body: this.createShortCutList(),\n        footer: body,\n        callback: function ($node) {\n          $node.find('.modal-body').css({\n            'max-height': 300,\n            'overflow': 'scroll'\n          });\n        }\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    /**\n     * show help dialog\n     *\n     * @return {Promise}\n     */\n    this.showHelpDialog = function () {\n      return $.Deferred(function (deferred) {\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n          deferred.resolve();\n        });\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showHelpDialog().then(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n  };\n\n  return HelpDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/HintPopover.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/core/key'\n], function (func, list, dom, range, key) {\n  var HintPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var POPOVER_DIST = 5;\n    var hint = context.options.hint || [];\n    var direction = context.options.hintDirection || 'bottom';\n    var hints = $.isArray(hint) ? hint : [hint];\n\n    this.events = {\n      'summernote.keyup': function (we, e) {\n        if (!e.isDefaultPrevented()) {\n          self.handleKeyup(e);\n        }\n      },\n      'summernote.keydown': function (we, e) {\n        self.handleKeydown(e);\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return hints.length > 0;\n    };\n\n    this.initialize = function () {\n      this.lastWordRange = null;\n      this.$popover = ui.popover({\n        className: 'note-hint-popover',\n        hideArrow: true,\n        direction: ''\n      }).render().appendTo('body');\n\n      this.$popover.hide();\n\n      this.$content = this.$popover.find('.popover-content');\n\n      this.$content.on('click', '.note-hint-item', function () {\n        self.$content.find('.active').removeClass('active');\n        $(this).addClass('active');\n        self.replace();\n      });\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.selectItem = function ($item) {\n      this.$content.find('.active').removeClass('active');\n      $item.addClass('active');\n\n      this.$content[0].scrollTop = $item[0].offsetTop - (this.$content.innerHeight() / 2);\n    };\n\n    this.moveDown = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $next = $current.next();\n\n      if ($next.length) {\n        this.selectItem($next);\n      } else {\n        var $nextGroup = $current.parent().next();\n\n        if (!$nextGroup.length) {\n          $nextGroup = this.$content.find('.note-hint-group').first();\n        }\n\n        this.selectItem($nextGroup.find('.note-hint-item').first());\n      }\n    };\n\n    this.moveUp = function () {\n      var $current = this.$content.find('.note-hint-item.active');\n      var $prev = $current.prev();\n\n      if ($prev.length) {\n        this.selectItem($prev);\n      } else {\n        var $prevGroup = $current.parent().prev();\n\n        if (!$prevGroup.length) {\n          $prevGroup = this.$content.find('.note-hint-group').last();\n        }\n\n        this.selectItem($prevGroup.find('.note-hint-item').last());\n      }\n    };\n\n    this.replace = function () {\n      var $item = this.$content.find('.note-hint-item.active');\n\n      if ($item.length) {\n        var node = this.nodeFromItem($item);\n        this.lastWordRange.insertNode(node);\n        range.createFromNode(node).collapse().select();\n\n        this.lastWordRange = null;\n        this.hide();\n        context.invoke('editor.focus');\n      }\n\n    };\n\n    this.nodeFromItem = function ($item) {\n      var hint = hints[$item.data('index')];\n      var item = $item.data('item');\n      var node = hint.content ? hint.content(item) : item;\n      if (typeof node === 'string') {\n        node = dom.createText(node);\n      }\n      return node;\n    };\n\n    this.createItemTemplates = function (hintIdx, items) {\n      var hint = hints[hintIdx];\n      return items.map(function (item, idx) {\n        var $item = $('<div class=\"note-hint-item\"/>');\n        $item.append(hint.template ? hint.template(item) : item + '');\n        $item.data({\n          'index': hintIdx,\n          'item': item\n        });\n\n        if (hintIdx === 0 && idx === 0) {\n          $item.addClass('active');\n        }\n        return $item;\n      });\n    };\n\n    this.handleKeydown = function (e) {\n      if (!this.$popover.is(':visible')) {\n        return;\n      }\n\n      if (e.keyCode === key.code.ENTER) {\n        e.preventDefault();\n        this.replace();\n      } else if (e.keyCode === key.code.UP) {\n        e.preventDefault();\n        this.moveUp();\n      } else if (e.keyCode === key.code.DOWN) {\n        e.preventDefault();\n        this.moveDown();\n      }\n    };\n\n    this.searchKeyword = function (index, keyword, callback) {\n      var hint = hints[index];\n      if (hint && hint.match.test(keyword) && hint.search) {\n        var matches = hint.match.exec(keyword);\n        hint.search(matches[1], callback);\n      } else {\n        callback();\n      }\n    };\n\n    this.createGroup = function (idx, keyword) {\n      var $group = $('<div class=\"note-hint-group note-hint-group-' + idx + '\"/>');\n      this.searchKeyword(idx, keyword, function (items) {\n        items = items || [];\n        if (items.length) {\n          $group.html(self.createItemTemplates(idx, items));\n          self.show();\n        }\n      });\n\n      return $group;\n    };\n\n    this.handleKeyup = function (e) {\n      if (list.contains([key.code.ENTER, key.code.UP, key.code.DOWN], e.keyCode)) {\n        if (e.keyCode === key.code.ENTER) {\n          if (this.$popover.is(':visible')) {\n            return;\n          }\n        }\n      } else {\n        var wordRange = context.invoke('editor.createRange').getWordRange();\n        var keyword = wordRange.toString();\n        if (hints.length && keyword) {\n          this.$content.empty();\n\n          var bnd = func.rect2bnd(list.last(wordRange.getClientRects()));\n          if (bnd) {\n\n            this.$popover.hide();\n\n            this.lastWordRange = wordRange;\n\n            hints.forEach(function (hint, idx) {\n              if (hint.match.test(keyword)) {\n                self.createGroup(idx, keyword).appendTo(self.$content);\n              }\n            });\n\n            // set position for popover after group is created\n            if (direction === 'top') {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top - this.$popover.outerHeight() - POPOVER_DIST\n              });\n            } else {\n              this.$popover.css({\n                left: bnd.left,\n                top: bnd.top + bnd.height + POPOVER_DIST\n              });\n            }\n\n          }\n        } else {\n          this.hide();\n        }\n      }\n    };\n\n    this.show = function () {\n      this.$popover.show();\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return HintPopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/ImageDialog.js",
    "content": "define([\n  'summernote/base/core/key'\n], function (key) {\n  var ImageDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var imageLimitation = '';\n      if (options.maximumImageFileSize) {\n        var unit = Math.floor(Math.log(options.maximumImageFileSize) / Math.log(1024));\n        var readableSize = (options.maximumImageFileSize / Math.pow(1024, unit)).toFixed(2) * 1 +\n                           ' ' + ' KMGTP'[unit] + 'B';\n        imageLimitation = '<small>' + lang.image.maximumFileSize + ' : ' + readableSize + '</small>';\n      }\n\n      var body = '<div class=\"form-group note-group-select-from-files\">' +\n                   '<label>' + lang.image.selectFromFiles + '</label>' +\n                   '<input class=\"note-image-input form-control\" type=\"file\" name=\"files\" accept=\"image/jpg, image/jpeg, image/png, image/gif\" multiple=\"multiple\" />' +\n                   imageLimitation +\n                 '</div>' +\n                 '<div class=\"form-group note-group-image-url\" style=\"overflow:auto;\">' +\n                   '<label>' + lang.image.url + '</label>' +\n                   '<input class=\"note-image-url form-control col-md-12\" type=\"text\" />' +\n                 '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-image-btn disabled\" disabled>' + lang.image.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.image.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.show = function () {\n      context.invoke('editor.saveRange');\n      this.showImageDialog().then(function (data) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        if (typeof data === 'string') { // image url\n          context.invoke('editor.insertImage', data);\n        } else { // array of files\n          context.invoke('editor.insertImagesOrCallback', data);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showImageDialog = function () {\n      return $.Deferred(function (deferred) {\n        var $imageInput = self.$dialog.find('.note-image-input'),\n            $imageUrl = self.$dialog.find('.note-image-url'),\n            $imageBtn = self.$dialog.find('.note-image-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // Cloning imageInput to clear element.\n          $imageInput.replaceWith($imageInput.clone()\n            .on('change', function () {\n              deferred.resolve(this.files || this.value);\n            })\n            .val('')\n          );\n\n          $imageBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($imageUrl.val());\n          });\n\n          $imageUrl.on('keyup paste', function () {\n            var url = $imageUrl.val();\n            ui.toggleBtn($imageBtn, url);\n          }).val('').trigger('focus');\n          self.bindEnterKey($imageUrl, $imageBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $imageInput.off('change');\n          $imageUrl.off('keyup paste keypress');\n          $imageBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  return ImageDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/ImagePopover.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (func, list, dom) {\n  var ImagePopover = function (context) {\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.image);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-image-popover'\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.image);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function (target) {\n      if (dom.isImg(target)) {\n        var pos = dom.posFromPlaceholder(target);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return ImagePopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/LinkDialog.js",
    "content": "define([\n  'summernote/base/core/key'\n], function (key) {\n  var LinkDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group\">' +\n                   '<label>' + lang.link.textToDisplay + '</label>' +\n                   '<input class=\"note-link-text form-control\" type=\"text\" />' +\n                 '</div>' +\n                 '<div class=\"form-group\">' +\n                   '<label>' + lang.link.url + '</label>' +\n                   '<input class=\"note-link-url form-control\" type=\"text\" value=\"http://\" />' +\n                 '</div>' +\n                 (!options.disableLinkTarget ?\n                   '<div class=\"checkbox\">' +\n                     '<label>' + '<input type=\"checkbox\" checked> ' + lang.link.openInNewWindow + '</label>' +\n                   '</div>' : ''\n                 );\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-link-btn disabled\" disabled>' + lang.link.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        className: 'link-dialog',\n        title: lang.link.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    /**\n     * toggle update button\n     */\n    this.toggleLinkBtn = function ($linkBtn, $linkText, $linkUrl) {\n      ui.toggleBtn($linkBtn, $linkText.val() && $linkUrl.val());\n    };\n\n    /**\n     * Show link dialog and set event handlers on dialog controls.\n     *\n     * @param {Object} linkInfo\n     * @return {Promise}\n     */\n    this.showLinkDialog = function (linkInfo) {\n      return $.Deferred(function (deferred) {\n        var $linkText = self.$dialog.find('.note-link-text'),\n        $linkUrl = self.$dialog.find('.note-link-url'),\n        $linkBtn = self.$dialog.find('.note-link-btn'),\n        $openInNewWindow = self.$dialog.find('input[type=checkbox]');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          // if no url was given, copy text to url\n          if (!linkInfo.url) {\n            linkInfo.url = linkInfo.text;\n          }\n\n          $linkText.val(linkInfo.text);\n\n          var handleLinkTextUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // if linktext was modified by keyup,\n            // stop cloning text from linkUrl\n            linkInfo.text = $linkText.val();\n          };\n\n          $linkText.on('input', handleLinkTextUpdate).on('paste', function () {\n            setTimeout(handleLinkTextUpdate, 0);\n          });\n\n          var handleLinkUrlUpdate = function () {\n            self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n            // display same link on `Text to display` input\n            // when create a new link\n            if (!linkInfo.text) {\n              $linkText.val($linkUrl.val());\n            }\n          };\n\n          $linkUrl.on('input', handleLinkUrlUpdate).on('paste', function () {\n            setTimeout(handleLinkUrlUpdate, 0);\n          }).val(linkInfo.url).trigger('focus');\n\n          self.toggleLinkBtn($linkBtn, $linkText, $linkUrl);\n          self.bindEnterKey($linkUrl, $linkBtn);\n          self.bindEnterKey($linkText, $linkBtn);\n\n          $openInNewWindow.prop('checked', linkInfo.isNewWindow);\n\n          $linkBtn.one('click', function (event) {\n            event.preventDefault();\n\n            deferred.resolve({\n              range: linkInfo.range,\n              url: $linkUrl.val(),\n              text: $linkText.val(),\n              isNewWindow: $openInNewWindow.is(':checked')\n            });\n            self.$dialog.modal('hide');\n          });\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          // detach events\n          $linkText.off('input paste keypress');\n          $linkUrl.off('input paste keypress');\n          $linkBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      }).promise();\n    };\n\n    /**\n     * @param {Object} layoutInfo\n     */\n    this.show = function () {\n      var linkInfo = context.invoke('editor.getLinkInfo');\n\n      context.invoke('editor.saveRange');\n      this.showLinkDialog(linkInfo).then(function (linkInfo) {\n        context.invoke('editor.restoreRange');\n        context.invoke('editor.createLink', linkInfo);\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n    context.memo('help.linkDialog.show', options.langInfo.help['linkDialog.show']);\n  };\n\n  return LinkDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/LinkPopover.js",
    "content": "define([\n  'summernote/base/core/func',\n  'summernote/base/core/list',\n  'summernote/base/core/dom'\n], function (func, list, dom) {\n  var LinkPopover = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var options = context.options;\n\n    this.events = {\n      'summernote.keyup summernote.mouseup summernote.change summernote.scroll': function () {\n        self.update();\n      },\n      'summernote.dialog.shown': function () {\n        self.hide();\n      }\n    };\n\n    this.shouldInitialize = function () {\n      return !list.isEmpty(options.popover.link);\n    };\n\n    this.initialize = function () {\n      this.$popover = ui.popover({\n        className: 'note-link-popover',\n        callback: function ($node) {\n          var $content = $node.find('.popover-content');\n          $content.prepend('<span><a target=\"_blank\"></a>&nbsp;</span>');\n        }\n      }).render().appendTo('body');\n      var $content = this.$popover.find('.popover-content');\n\n      context.invoke('buttons.build', $content, options.popover.link);\n    };\n\n    this.destroy = function () {\n      this.$popover.remove();\n    };\n\n    this.update = function () {\n      // Prevent focusing on editable when invoke('code') is executed\n      if (!context.invoke('editor.hasFocus')) {\n        this.hide();\n        return;\n      }\n\n      var rng = context.invoke('editor.createRange');\n      if (rng.isCollapsed() && rng.isOnAnchor()) {\n        var anchor = dom.ancestor(rng.sc, dom.isAnchor);\n        var href = $(anchor).attr('href');\n        this.$popover.find('a').attr('href', href).html(href);\n\n        var pos = dom.posFromPlaceholder(anchor);\n        this.$popover.css({\n          display: 'block',\n          left: pos.left,\n          top: pos.top\n        });\n      } else {\n        this.hide();\n      }\n    };\n\n    this.hide = function () {\n      this.$popover.hide();\n    };\n  };\n\n  return LinkPopover;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/Toolbar.js",
    "content": "define(function () {\n  var Toolbar = function (context) {\n    var ui = $.summernote.ui;\n\n    var $note = context.layoutInfo.note;\n    var $toolbar = context.layoutInfo.toolbar;\n    var options = context.options;\n\n    this.shouldInitialize = function () {\n      return !options.airMode;\n    };\n\n    this.initialize = function () {\n      options.toolbar = options.toolbar || [];\n\n      if (!options.toolbar.length) {\n        $toolbar.hide();\n      } else {\n        context.invoke('buttons.build', $toolbar, options.toolbar);\n      }\n\n      if (options.toolbarContainer) {\n        $toolbar.appendTo(options.toolbarContainer);\n      }\n\n      $note.on('summernote.keyup summernote.mouseup summernote.change', function () {\n        context.invoke('buttons.updateCurrentStyle');\n      });\n\n      context.invoke('buttons.updateCurrentStyle');\n    };\n\n    this.destroy = function () {\n      $toolbar.children().remove();\n    };\n\n    this.updateFullscreen = function (isFullscreen) {\n      ui.toggleBtnActive($toolbar.find('.btn-fullscreen'), isFullscreen);\n    };\n\n    this.updateCodeview = function (isCodeview) {\n      ui.toggleBtnActive($toolbar.find('.btn-codeview'), isCodeview);\n      if (isCodeview) {\n        this.deactivate();\n      } else {\n        this.activate();\n      }\n    };\n\n    this.activate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, true);\n    };\n\n    this.deactivate = function (isIncludeCodeview) {\n      var $btn = $toolbar.find('button');\n      if (!isIncludeCodeview) {\n        $btn = $btn.not('.btn-codeview');\n      }\n      ui.toggleBtn($btn, false);\n    };\n  };\n\n  return Toolbar;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/module/VideoDialog.js",
    "content": "define([\n  'summernote/base/core/key'\n], function (key) {\n  var VideoDialog = function (context) {\n    var self = this;\n    var ui = $.summernote.ui;\n\n    var $editor = context.layoutInfo.editor;\n    var options = context.options;\n    var lang = options.langInfo;\n\n    this.initialize = function () {\n      var $container = options.dialogsInBody ? $(document.body) : $editor;\n\n      var body = '<div class=\"form-group row-fluid\">' +\n          '<label>' + lang.video.url + ' <small class=\"text-muted\">' + lang.video.providers + '</small></label>' +\n          '<input class=\"note-video-url form-control span12\" type=\"text\" />' +\n          '</div>';\n      var footer = '<button href=\"#\" class=\"btn btn-primary note-video-btn disabled\" disabled>' + lang.video.insert + '</button>';\n\n      this.$dialog = ui.dialog({\n        title: lang.video.insert,\n        fade: options.dialogsFade,\n        body: body,\n        footer: footer\n      }).render().appendTo($container);\n    };\n\n    this.destroy = function () {\n      ui.hideDialog(this.$dialog);\n      this.$dialog.remove();\n    };\n\n    this.bindEnterKey = function ($input, $btn) {\n      $input.on('keypress', function (event) {\n        if (event.keyCode === key.code.ENTER) {\n          $btn.trigger('click');\n        }\n      });\n    };\n\n    this.createVideoNode = function (url) {\n      // video url patterns(youtube, instagram, vimeo, dailymotion, youku, mp4, ogg, webm)\n      var ytRegExp = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n      var ytMatch = url.match(ytRegExp);\n\n      var igRegExp = /(?:www\\.|\\/\\/)instagram\\.com\\/p\\/(.[a-zA-Z0-9_-]*)/;\n      var igMatch = url.match(igRegExp);\n\n      var vRegExp = /\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]+)/;\n      var vMatch = url.match(vRegExp);\n\n      var vimRegExp = /\\/\\/(player\\.)?vimeo\\.com\\/([a-z]*\\/)*([0-9]{6,11})[?]?.*/;\n      var vimMatch = url.match(vimRegExp);\n\n      var dmRegExp = /.+dailymotion.com\\/(video|hub)\\/([^_]+)[^#]*(#video=([^_&]+))?/;\n      var dmMatch = url.match(dmRegExp);\n\n      var youkuRegExp = /\\/\\/v\\.youku\\.com\\/v_show\\/id_(\\w+)=*\\.html/;\n      var youkuMatch = url.match(youkuRegExp);\n\n      var mp4RegExp = /^.+.(mp4|m4v)$/;\n      var mp4Match = url.match(mp4RegExp);\n\n      var oggRegExp = /^.+.(ogg|ogv)$/;\n      var oggMatch = url.match(oggRegExp);\n\n      var webmRegExp = /^.+.(webm)$/;\n      var webmMatch = url.match(webmRegExp);\n\n      var $video;\n      if (ytMatch && ytMatch[1].length === 11) {\n        var youtubeId = ytMatch[1];\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.youtube.com/embed/' + youtubeId)\n            .attr('width', '640').attr('height', '360');\n      } else if (igMatch && igMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', 'https://instagram.com/p/' + igMatch[1] + '/embed/')\n            .attr('width', '612').attr('height', '710')\n            .attr('scrolling', 'no')\n            .attr('allowtransparency', 'true');\n      } else if (vMatch && vMatch[0].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', vMatch[0] + '/embed/simple')\n            .attr('width', '600').attr('height', '600')\n            .attr('class', 'vine-embed');\n      } else if (vimMatch && vimMatch[3].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('src', '//player.vimeo.com/video/' + vimMatch[3])\n            .attr('width', '640').attr('height', '360');\n      } else if (dmMatch && dmMatch[2].length) {\n        $video = $('<iframe>')\n            .attr('frameborder', 0)\n            .attr('src', '//www.dailymotion.com/embed/video/' + dmMatch[2])\n            .attr('width', '640').attr('height', '360');\n      } else if (youkuMatch && youkuMatch[1].length) {\n        $video = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen>')\n            .attr('frameborder', 0)\n            .attr('height', '498')\n            .attr('width', '510')\n            .attr('src', '//player.youku.com/embed/' + youkuMatch[1]);\n      } else if (mp4Match || oggMatch || webmMatch) {\n        $video = $('<video controls>')\n            .attr('src', url)\n            .attr('width', '640').attr('height', '360');\n      } else {\n        // this is not a known video link. Now what, Cat? Now what?\n        return false;\n      }\n\n      $video.addClass('note-video-clip');\n\n      return $video[0];\n    };\n\n    this.show = function () {\n      var text = context.invoke('editor.getSelectedText');\n      context.invoke('editor.saveRange');\n      this.showVideoDialog(text).then(function (url) {\n        // [workaround] hide dialog before restore range for IE range focus\n        ui.hideDialog(self.$dialog);\n        context.invoke('editor.restoreRange');\n\n        // build node\n        var $node = self.createVideoNode(url);\n\n        if ($node) {\n          // insert video node\n          context.invoke('editor.insertNode', $node);\n        }\n      }).fail(function () {\n        context.invoke('editor.restoreRange');\n      });\n    };\n\n    /**\n     * show image dialog\n     *\n     * @param {jQuery} $dialog\n     * @return {Promise}\n     */\n    this.showVideoDialog = function (text) {\n      return $.Deferred(function (deferred) {\n        var $videoUrl = self.$dialog.find('.note-video-url'),\n            $videoBtn = self.$dialog.find('.note-video-btn');\n\n        ui.onDialogShown(self.$dialog, function () {\n          context.triggerEvent('dialog.shown');\n\n          $videoUrl.val(text).on('input', function () {\n            ui.toggleBtn($videoBtn, $videoUrl.val());\n          }).trigger('focus');\n\n          $videoBtn.click(function (event) {\n            event.preventDefault();\n\n            deferred.resolve($videoUrl.val());\n          });\n\n          self.bindEnterKey($videoUrl, $videoBtn);\n        });\n\n        ui.onDialogHidden(self.$dialog, function () {\n          $videoUrl.off('input');\n          $videoBtn.off('click');\n\n          if (deferred.state() === 'pending') {\n            deferred.reject();\n          }\n        });\n\n        ui.showDialog(self.$dialog);\n      });\n    };\n  };\n\n  return VideoDialog;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/settings.js",
    "content": "define([\n  'summernote/bs3/ui',\n  'summernote/base/core/dom',\n  'summernote/base/summernote-en-US',\n  'summernote/base/module/Editor',\n  'summernote/base/module/Clipboard',\n  'summernote/base/module/Dropzone',\n  'summernote/base/module/Codeview',\n  'summernote/base/module/Statusbar',\n  'summernote/base/module/Fullscreen',\n  'summernote/base/module/Handle',\n  'summernote/base/module/AutoLink',\n  'summernote/base/module/AutoSync',\n  'summernote/base/module/Placeholder',\n  'summernote/bs3/module/Buttons',\n  'summernote/bs3/module/Toolbar',\n  'summernote/bs3/module/LinkDialog',\n  'summernote/bs3/module/LinkPopover',\n  'summernote/bs3/module/ImageDialog',\n  'summernote/bs3/module/ImagePopover',\n  'summernote/bs3/module/VideoDialog',\n  'summernote/bs3/module/HelpDialog',\n  'summernote/bs3/module/AirPopover',\n  'summernote/bs3/module/HintPopover'\n], function (\n  ui, dom, lang,\n  Editor, Clipboard, Dropzone, Codeview, Statusbar, Fullscreen, Handle, AutoLink, AutoSync, Placeholder,\n  Buttons, Toolbar, LinkDialog, LinkPopover, ImageDialog, ImagePopover, VideoDialog, HelpDialog, AirPopover, HintPopover\n) {\n\n  $.summernote = $.extend($.summernote, {\n    version: '@VERSION',\n    ui: ui,\n    dom: dom,\n\n    plugins: {},\n\n    options: {\n      modules: {\n        'editor': Editor,\n        'clipboard': Clipboard,\n        'dropzone': Dropzone,\n        'codeview': Codeview,\n        'statusbar': Statusbar,\n        'fullscreen': Fullscreen,\n        'handle': Handle,\n        // FIXME: HintPopover must be front of autolink\n        //  - Script error about range when Enter key is pressed on hint popover\n        'hintPopover': HintPopover,\n        'autoLink': AutoLink,\n        'autoSync': AutoSync,\n        'placeholder': Placeholder,\n        'buttons': Buttons,\n        'toolbar': Toolbar,\n        'linkDialog': LinkDialog,\n        'linkPopover': LinkPopover,\n        'imageDialog': ImageDialog,\n        'imagePopover': ImagePopover,\n        'videoDialog': VideoDialog,\n        'helpDialog': HelpDialog,\n        'airPopover': AirPopover\n      },\n\n      buttons: {},\n      \n      lang: 'en-US',\n\n      // toolbar\n      toolbar: [\n        ['style', ['style']],\n        ['font', ['bold', 'underline', 'clear']],\n        ['fontname', ['fontname']],\n        ['color', ['color']],\n        ['para', ['ul', 'ol', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture', 'video']],\n        ['view', ['fullscreen', 'codeview', 'help']]\n      ],\n\n      // popover\n      popover: {\n        image: [\n          ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']],\n          ['float', ['floatLeft', 'floatRight', 'floatNone']],\n          ['remove', ['removeMedia']]\n        ],\n        link: [\n          ['link', ['linkDialogShow', 'unlink']]\n        ],\n        air: [\n          ['color', ['color']],\n          ['font', ['bold', 'underline', 'clear']],\n          ['para', ['ul', 'paragraph']],\n          ['table', ['table']],\n          ['insert', ['link', 'picture']]\n        ]\n      },\n\n      // air mode: inline editor\n      airMode: false,\n\n      width: null,\n      height: null,\n\n      focus: false,\n      tabSize: 4,\n      styleWithSpan: true,\n      shortcuts: true,\n      textareaAutoSync: true,\n      direction: null,\n\n      styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],\n\n      fontNames: [\n        'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',\n        'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',\n        'Tahoma', 'Times New Roman', 'Verdana'\n      ],\n\n      fontSizes: ['8', '9', '10', '11', '12', '14', '18', '24', '36'],\n\n      // pallete colors(n x n)\n      colors: [\n        ['#000000', '#424242', '#636363', '#9C9C94', '#CEC6CE', '#EFEFEF', '#F7F7F7', '#FFFFFF'],\n        ['#FF0000', '#FF9C00', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#9C00FF', '#FF00FF'],\n        ['#F7C6CE', '#FFE7CE', '#FFEFC6', '#D6EFD6', '#CEDEE7', '#CEE7F7', '#D6D6E7', '#E7D6DE'],\n        ['#E79C9C', '#FFC69C', '#FFE79C', '#B5D6A5', '#A5C6CE', '#9CC6EF', '#B5A5D6', '#D6A5BD'],\n        ['#E76363', '#F7AD6B', '#FFD663', '#94BD7B', '#73A5AD', '#6BADDE', '#8C7BC6', '#C67BA5'],\n        ['#CE0000', '#E79439', '#EFC631', '#6BA54A', '#4A7B8C', '#3984C6', '#634AA5', '#A54A7B'],\n        ['#9C0000', '#B56308', '#BD9400', '#397B21', '#104A5A', '#085294', '#311873', '#731842'],\n        ['#630000', '#7B3900', '#846300', '#295218', '#083139', '#003163', '#21104A', '#4A1031']\n      ],\n\n      lineHeights: ['1.0', '1.2', '1.4', '1.5', '1.6', '1.8', '2.0', '3.0'],\n\n      tableClassName: 'table table-bordered',\n\n      insertTableMaxSize: {\n        col: 10,\n        row: 10\n      },\n\n      dialogsInBody: false,\n      dialogsFade: false,\n\n      maximumImageFileSize: null,\n\n      callbacks: {\n        onInit: null,\n        onFocus: null,\n        onBlur: null,\n        onEnter: null,\n        onKeyup: null,\n        onKeydown: null,\n        onImageUpload: null,\n        onImageUploadError: null\n      },\n\n      codemirror: {\n        mode: 'text/html',\n        htmlMode: true,\n        lineNumbers: true\n      },\n\n      keyMap: {\n        pc: {\n          'ENTER': 'insertParagraph',\n          'CTRL+Z': 'undo',\n          'CTRL+Y': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CTRL+B': 'bold',\n          'CTRL+I': 'italic',\n          'CTRL+U': 'underline',\n          'CTRL+SHIFT+S': 'strikethrough',\n          'CTRL+BACKSLASH': 'removeFormat',\n          'CTRL+SHIFT+L': 'justifyLeft',\n          'CTRL+SHIFT+E': 'justifyCenter',\n          'CTRL+SHIFT+R': 'justifyRight',\n          'CTRL+SHIFT+J': 'justifyFull',\n          'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n          'CTRL+SHIFT+NUM8': 'insertOrderedList',\n          'CTRL+LEFTBRACKET': 'outdent',\n          'CTRL+RIGHTBRACKET': 'indent',\n          'CTRL+NUM0': 'formatPara',\n          'CTRL+NUM1': 'formatH1',\n          'CTRL+NUM2': 'formatH2',\n          'CTRL+NUM3': 'formatH3',\n          'CTRL+NUM4': 'formatH4',\n          'CTRL+NUM5': 'formatH5',\n          'CTRL+NUM6': 'formatH6',\n          'CTRL+ENTER': 'insertHorizontalRule',\n          'CTRL+K': 'linkDialog.show'\n        },\n\n        mac: {\n          'ENTER': 'insertParagraph',\n          'CMD+Z': 'undo',\n          'CMD+SHIFT+Z': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CMD+B': 'bold',\n          'CMD+I': 'italic',\n          'CMD+U': 'underline',\n          'CMD+SHIFT+S': 'strikethrough',\n          'CMD+BACKSLASH': 'removeFormat',\n          'CMD+SHIFT+L': 'justifyLeft',\n          'CMD+SHIFT+E': 'justifyCenter',\n          'CMD+SHIFT+R': 'justifyRight',\n          'CMD+SHIFT+J': 'justifyFull',\n          'CMD+SHIFT+NUM7': 'insertUnorderedList',\n          'CMD+SHIFT+NUM8': 'insertOrderedList',\n          'CMD+LEFTBRACKET': 'outdent',\n          'CMD+RIGHTBRACKET': 'indent',\n          'CMD+NUM0': 'formatPara',\n          'CMD+NUM1': 'formatH1',\n          'CMD+NUM2': 'formatH2',\n          'CMD+NUM3': 'formatH3',\n          'CMD+NUM4': 'formatH4',\n          'CMD+NUM5': 'formatH5',\n          'CMD+NUM6': 'formatH6',\n          'CMD+ENTER': 'insertHorizontalRule',\n          'CMD+K': 'linkDialog.show'\n        }\n      },\n      icons: {\n        'align': 'note-icon-align',\n        'alignCenter': 'note-icon-align-center',\n        'alignJustify': 'note-icon-align-justify',\n        'alignLeft': 'note-icon-align-left',\n        'alignRight': 'note-icon-align-right',\n        'indent': 'note-icon-align-indent',\n        'outdent': 'note-icon-align-outdent',\n        'arrowsAlt': 'note-icon-arrows-alt',\n        'bold': 'note-icon-bold',\n        'caret': 'note-icon-caret',\n        'circle': 'note-icon-circle',\n        'close': 'note-icon-close',\n        'code': 'note-icon-code',\n        'eraser': 'note-icon-eraser',\n        'font': 'note-icon-font',\n        'frame': 'note-icon-frame',\n        'italic': 'note-icon-italic',\n        'link': 'note-icon-link',\n        'unlink': 'note-icon-chain-broken',\n        'magic': 'note-icon-magic',\n        'menuCheck': 'note-icon-check',\n        'minus': 'note-icon-minus',\n        'orderedlist': 'note-icon-orderedlist',\n        'pencil': 'note-icon-pencil',\n        'picture': 'note-icon-picture',\n        'question': 'note-icon-question',\n        'redo': 'note-icon-redo',\n        'square': 'note-icon-square',\n        'strikethrough': 'note-icon-strikethrough',\n        'subscript': 'note-icon-subscript',\n        'superscript': 'note-icon-superscript',\n        'table': 'note-icon-table',\n        'textHeight': 'note-icon-text-height',\n        'trash': 'note-icon-trash',\n        'underline': 'note-icon-underline',\n        'undo': 'note-icon-undo',\n        'unorderedlist': 'note-icon-unorderedlist',\n        'video': 'note-icon-video'\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/bs3/ui.js",
    "content": "define([\n  'summernote/base/renderer'\n], function (renderer) {\n  var editor = renderer.create('<div class=\"note-editor note-frame panel panel-default\"/>');\n  var toolbar = renderer.create('<div class=\"note-toolbar panel-heading\"/>');\n  var editingArea = renderer.create('<div class=\"note-editing-area\"/>');\n  var codable = renderer.create('<textarea class=\"note-codable\"/>');\n  var editable = renderer.create('<div class=\"note-editable panel-body\" contentEditable=\"true\"/>');\n  var statusbar = renderer.create([\n    '<div class=\"note-statusbar\">',\n    '  <div class=\"note-resizebar\">',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '    <div class=\"note-icon-bar\"/>',\n    '  </div>',\n    '</div>'\n  ].join(''));\n\n  var airEditor = renderer.create('<div class=\"note-editor\"/>');\n  var airEditable = renderer.create('<div class=\"note-editable\" contentEditable=\"true\"/>');\n\n  var buttonGroup = renderer.create('<div class=\"note-btn-group btn-group\">');\n  var button = renderer.create('<button type=\"button\" class=\"note-btn btn btn-default btn-sm\" tabindex=\"-1\">', function ($node, options) {\n    if (options && options.tooltip) {\n      $node.attr({\n        title: options.tooltip\n      }).tooltip({\n        container: 'body',\n        trigger: 'hover',\n        placement: 'bottom'\n      });\n    }\n  });\n\n  var dropdown = renderer.create('<div class=\"dropdown-menu\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + content + '</a></li>';\n    }).join('') : options.items;\n\n    $node.html(markup);\n  });\n\n  var dropdownCheck = renderer.create('<div class=\"dropdown-menu note-check\">', function ($node, options) {\n    var markup = $.isArray(options.items) ? options.items.map(function (item) {\n      var value = (typeof item === 'string') ? item : (item.value || '');\n      var content = options.template ? options.template(item) : item;\n      return '<li><a href=\"#\" data-value=\"' + value + '\">' + icon(options.checkClassName) + ' ' + content + '</a></li>';\n    }).join('') : options.items;\n    $node.html(markup);\n  });\n\n  var palette = renderer.create('<div class=\"note-color-palette\"/>', function ($node, options) {\n    var contents = [];\n    for (var row = 0, rowSize = options.colors.length; row < rowSize; row++) {\n      var eventName = options.eventName;\n      var colors = options.colors[row];\n      var buttons = [];\n      for (var col = 0, colSize = colors.length; col < colSize; col++) {\n        var color = colors[col];\n        buttons.push([\n          '<button type=\"button\" class=\"note-color-btn\"',\n          'style=\"background-color:', color, '\" ',\n          'data-event=\"', eventName, '\" ',\n          'data-value=\"', color, '\" ',\n          'title=\"', color, '\" ',\n          'data-toggle=\"button\" tabindex=\"-1\"></button>'\n        ].join(''));\n      }\n      contents.push('<div class=\"note-color-row\">' + buttons.join('') + '</div>');\n    }\n    $node.html(contents.join(''));\n\n    $node.find('.note-color-btn').tooltip({\n      container: 'body',\n      trigger: 'hover',\n      placement: 'bottom'\n    });\n  });\n\n  var dialog = renderer.create('<div class=\"modal\" aria-hidden=\"false\" tabindex=\"-1\"/>', function ($node, options) {\n    if (options.fade) {\n      $node.addClass('fade');\n    }\n    $node.html([\n      '<div class=\"modal-dialog\">',\n      '  <div class=\"modal-content\">',\n      (options.title ?\n      '    <div class=\"modal-header\">' +\n      '      <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button>' +\n      '      <h4 class=\"modal-title\">' + options.title + '</h4>' +\n      '    </div>' : ''\n      ),\n      '    <div class=\"modal-body\">' + options.body + '</div>',\n      (options.footer ?\n      '    <div class=\"modal-footer\">' + options.footer + '</div>' : ''\n      ),\n      '  </div>',\n      '</div>'\n    ].join(''));\n  });\n\n  var popover = renderer.create([\n    '<div class=\"note-popover popover in\">',\n    '  <div class=\"arrow\"/>',\n    '  <div class=\"popover-content note-children-container\"/>',\n    '</div>'\n  ].join(''), function ($node, options) {\n    var direction = typeof options.direction !== 'undefined' ? options.direction : 'bottom';\n\n    $node.addClass(direction);\n\n    if (options.hideArrow) {\n      $node.find('.arrow').hide();\n    }\n  });\n\n  var icon = function (iconClassName, tagName) {\n    tagName = tagName || 'i';\n    return '<' + tagName + ' class=\"' + iconClassName + '\"/>';\n  };\n\n  var ui = {\n    editor: editor,\n    toolbar: toolbar,\n    editingArea: editingArea,\n    codable: codable,\n    editable: editable,\n    statusbar: statusbar,\n    airEditor: airEditor,\n    airEditable: airEditable,\n    buttonGroup: buttonGroup,\n    button: button,\n    dropdown: dropdown,\n    dropdownCheck: dropdownCheck,\n    palette: palette,\n    dialog: dialog,\n    popover: popover,\n    icon: icon,\n\n    toggleBtn: function ($btn, isEnable) {\n      $btn.toggleClass('disabled', !isEnable);\n      $btn.attr('disabled', !isEnable);\n    },\n\n    toggleBtnActive: function ($btn, isActive) {\n      $btn.toggleClass('active', isActive);\n    },\n\n    onDialogShown: function ($dialog, handler) {\n      $dialog.one('shown.bs.modal', handler);\n    },\n\n    onDialogHidden: function ($dialog, handler) {\n      $dialog.one('hidden.bs.modal', handler);\n    },\n\n    showDialog: function ($dialog) {\n      $dialog.modal('show');\n    },\n\n    hideDialog: function ($dialog) {\n      $dialog.modal('hide');\n    },\n\n    createLayout: function ($note, options) {\n      var $editor = (options.airMode ? ui.airEditor([\n        ui.editingArea([\n          ui.airEditable()\n        ])\n      ]) : ui.editor([\n        ui.toolbar(),\n        ui.editingArea([\n          ui.codable(),\n          ui.editable()\n        ]),\n        ui.statusbar()\n      ])).render();\n\n      $editor.insertAfter($note);\n\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editingArea: $editor.find('.note-editing-area'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable'),\n        statusbar: $editor.find('.note-statusbar')\n      };\n    },\n\n    removeLayout: function ($note, layoutInfo) {\n      $note.html(layoutInfo.editable.html());\n      layoutInfo.editor.remove();\n      $note.show();\n    }\n  };\n\n  return ui;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/intro.js",
    "content": "/**\n * Super simple wysiwyg editor v@VERSION\n * http://summernote.org/\n *\n * summernote.js\n * Copyright 2013-2016 Alan Hong. and other contributors\n * summernote may be freely distributed under the MIT license./\n *\n * Date: @DATE\n */\n(function (factory) {\n  /* global define */\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(['jquery'], factory);\n  } else if (typeof module === 'object' && module.exports) {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(window.jQuery);\n  }\n}(function ($) {\n  'use strict';\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/lite/module/Toolbar.js",
    "content": "define(function () {\n  var Toolbar = function (context) {\n    var ui = $.summernote.ui;\n    var $toolbar = context.layoutInfo.toolbar;\n\n    this.initialize = function () {\n      ui.buttonGroup([\n        ui.button({\n          contents: 'bold',\n          click: context.createInvokeHandler('editor.bold')\n        }),\n        ui.button({\n          contents: 'italic',\n          click: context.createInvokeHandler('editor.italic')\n        })\n      ]).render().appendTo($toolbar);\n    };\n\n    this.destroy = function () {\n      $toolbar.children().remove();\n    };\n  };\n\n  return Toolbar;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/lite/settings.js",
    "content": "define([\n  'summernote/lite/ui',\n  'summernote/base/summernote-en-US',\n  'summernote/base/module/Editor',\n  'summernote/lite/module/Toolbar'\n], function (ui, lang, Editor, Toolbar) {\n  $.summernote = $.extend($.summernote, {\n    version: '@VERSION',\n    ui: ui,\n\n    options: {\n      modules: {\n        'editor': Editor,\n        'toolbar': Toolbar\n      },\n\n      buttons: {},\n\n      width: null,\n      height: null,\n\n      focus: false,\n      tabSize: 4,\n      styleWithSpan: true,\n      shortcuts: true,\n      textareaAutoSync: true,\n      direction: null,\n\n      callbacks: {\n        onInit: null,\n        onFocus: null,\n        onBlur: null,\n        onEnter: null,\n        onKeyup: null,\n        onKeydown: null\n      },\n\n      keyMap: {\n        pc: {\n          'ENTER': 'insertParagraph',\n          'CTRL+Z': 'undo',\n          'CTRL+Y': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CTRL+B': 'bold',\n          'CTRL+I': 'italic',\n          'CTRL+U': 'underline',\n          'CTRL+SHIFT+S': 'strikethrough',\n          'CTRL+BACKSLASH': 'removeFormat',\n          'CTRL+SHIFT+L': 'justifyLeft',\n          'CTRL+SHIFT+E': 'justifyCenter',\n          'CTRL+SHIFT+R': 'justifyRight',\n          'CTRL+SHIFT+J': 'justifyFull',\n          'CTRL+SHIFT+NUM7': 'insertUnorderedList',\n          'CTRL+SHIFT+NUM8': 'insertOrderedList',\n          'CTRL+LEFTBRACKET': 'outdent',\n          'CTRL+RIGHTBRACKET': 'indent',\n          'CTRL+NUM0': 'formatPara',\n          'CTRL+NUM1': 'formatH1',\n          'CTRL+NUM2': 'formatH2',\n          'CTRL+NUM3': 'formatH3',\n          'CTRL+NUM4': 'formatH4',\n          'CTRL+NUM5': 'formatH5',\n          'CTRL+NUM6': 'formatH6',\n          'CTRL+ENTER': 'insertHorizontalRule'\n        },\n\n        mac: {\n          'ENTER': 'insertParagraph',\n          'CMD+Z': 'undo',\n          'CMD+SHIFT+Z': 'redo',\n          'TAB': 'tab',\n          'SHIFT+TAB': 'untab',\n          'CMD+B': 'bold',\n          'CMD+I': 'italic',\n          'CMD+U': 'underline',\n          'CMD+SHIFT+S': 'strikethrough',\n          'CMD+BACKSLASH': 'removeFormat',\n          'CMD+SHIFT+L': 'justifyLeft',\n          'CMD+SHIFT+E': 'justifyCenter',\n          'CMD+SHIFT+R': 'justifyRight',\n          'CMD+SHIFT+J': 'justifyFull',\n          'CMD+SHIFT+NUM7': 'insertUnorderedList',\n          'CMD+SHIFT+NUM8': 'insertOrderedList',\n          'CMD+LEFTBRACKET': 'outdent',\n          'CMD+RIGHTBRACKET': 'indent',\n          'CMD+NUM0': 'formatPara',\n          'CMD+NUM1': 'formatH1',\n          'CMD+NUM2': 'formatH2',\n          'CMD+NUM3': 'formatH3',\n          'CMD+NUM4': 'formatH4',\n          'CMD+NUM5': 'formatH5',\n          'CMD+NUM6': 'formatH6',\n          'CMD+ENTER': 'insertHorizontalRule'\n        }\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/lite/ui.js",
    "content": "define([\n  'summernote/base/renderer'\n], function (renderer) {\n  var ui = {\n    editor: renderer.create('<div class=\"note-editor\">'),\n    toolbar: renderer.create('<div class=\"note-toolbar\">'),\n    editingArea: renderer.create('<div class=\"note-editing-area\">'),\n    codable: renderer.create('<div class=\"note-codable\">'),\n    editable: renderer.create('<div class=\"note-editable\" contentEditable=\"true\">'),\n    buttonGroup: renderer.create('<span class=\"note-btn-group\">'),\n    button: renderer.create('<button class=\"note-btn\">'),\n\n    createLayout: function ($note) {\n      var $editor = ui.editor([\n        ui.toolbar(),\n        ui.editingArea([\n          ui.codable(),\n          ui.editable()\n        ])\n      ]).render();\n\n      $editor.insertAfter($note);\n\n      return {\n        note: $note,\n        editor: $editor,\n        toolbar: $editor.find('.note-toolbar'),\n        editable: $editor.find('.note-editable'),\n        codable: $editor.find('.note-codable')\n      };\n    }\n  };\n\n  return ui;\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/outro.js",
    "content": "}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/js/summernote.js",
    "content": "define([\n  'jquery',\n  'summernote/base/core/list',\n  'summernote/base/Context'\n], function ($, list, Context) {\n  $.fn.extend({\n    /**\n     * Summernote API\n     *\n     * @param {Object|String}\n     * @return {this}\n     */\n    summernote: function () {\n      var type = $.type(list.head(arguments));\n      var isExternalAPICalled = type === 'string';\n      var hasInitOptions = type === 'object';\n\n      var options = hasInitOptions ? list.head(arguments) : {};\n\n      options = $.extend({}, $.summernote.options, options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      options.icons = $.extend(true, {}, $.summernote.options.icons, options.icons);\n\n      this.each(function (idx, note) {\n        var $note = $(note);\n        if (!$note.data('summernote')) {\n          var context = new Context($note, options);\n          $note.data('summernote', context);\n          $note.data('summernote').triggerEvent('init', context.layoutInfo);\n        }\n      });\n\n      var $note = this.first();\n      if ($note.length) {\n        var context = $note.data('summernote');\n        if (isExternalAPICalled) {\n          return context.invoke.apply(context, list.from(arguments));\n        } else if (options.focus) {\n          context.invoke('editor.focus');\n        }\n      }\n\n      return this;\n    }\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/less/elements.less",
    "content": "/*---------------------------------------------------\n    LESS Elements 0.9\n  ---------------------------------------------------\n    A set of useful LESS mixins\n    More info at: http://lesselements.com\n  ---------------------------------------------------*/\n\n.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF) {\n  background: @color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, @start),\n                               color-stop(1, @stop));\n  background: -ms-linear-gradient(bottom,\n                                  @start,\n                                  @stop);\n  background: -moz-linear-gradient(center bottom,\n                                   @start 0%,\n                                   @stop 100%);\n  background: -o-linear-gradient(@stop,\n                                 @start);\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@stop,@start));\n}\n.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255) {\n  background: @color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, rgb(@start,@start,@start)),\n                               color-stop(1, rgb(@stop,@stop,@stop)));\n  background: -ms-linear-gradient(bottom,\n                                  rgb(@start,@start,@start) 0%,\n                                  rgb(@stop,@stop,@stop) 100%);\n  background: -moz-linear-gradient(center bottom,\n                                   rgb(@start,@start,@start) 0%,\n                                   rgb(@stop,@stop,@stop) 100%);\n  background: -o-linear-gradient(rgb(@stop,@stop,@stop),\n                                 rgb(@start,@start,@start));\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",rgb(@stop,@stop,@stop),rgb(@start,@start,@start)));\n}\n.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE, @left-color: #EEE) {\n  border-top: solid 1px @top-color;\n  border-left: solid 1px @left-color;\n  border-right: solid 1px @right-color;\n  border-bottom: solid 1px @bottom-color;\n}\n.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) {\n  -webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);\n  -moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);\n  box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);\n}\n.rounded(@radius: 2px) {\n  -webkit-border-radius: @radius;\n  -moz-border-radius: @radius;\n  border-radius: @radius;\n}\n.border-radius(@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0) {\n  -webkit-border-top-right-radius: @topright;\n  -webkit-border-bottom-right-radius: @bottomright;\n  -webkit-border-bottom-left-radius: @bottomleft;\n  -webkit-border-top-left-radius: @topleft;\n  -moz-border-radius-topright: @topright;\n  -moz-border-radius-bottomright: @bottomright;\n  -moz-border-radius-bottomleft: @bottomleft;\n  -moz-border-radius-topleft: @topleft;\n  border-top-right-radius: @topright;\n  border-bottom-right-radius: @bottomright;\n  border-bottom-left-radius: @bottomleft;\n  border-top-left-radius: @topleft;\n  .background-clip(padding-box);\n}\n.opacity(@opacity: 0.5) {\n  -webkit-opacity: @opacity;\n  -khtml-opacity: @opacity;\n  -moz-opacity: @opacity;\n  opacity: @opacity;\n  @opperc: @opacity * 100;\n  -ms-filter: ~\"progid:DXImageTransform.Microsoft.Alpha(opacity=@{opperc})\";\n  filter: ~\"alpha(opacity=@{opperc})\";\n}\n.transition-duration(@duration: 0.2s) {\n  -moz-transition-duration: @duration;\n  -webkit-transition-duration: @duration;\n  -o-transition-duration: @duration;\n  transition-duration: @duration;\n}\n.transform(...) {\n  -webkit-transform: @arguments;\n  -moz-transform: @arguments;\n  -o-transform: @arguments;\n  -ms-transform: @arguments;\n  transform: @arguments;\n}\n.rotation(@deg:5deg){\n  .transform(rotate(@deg));\n}\n.scale(@ratio:1.5){\n  .transform(scale(@ratio));\n}\n.transition(@duration:0.2s, @ease:ease-out) {\n  -webkit-transition: all @duration @ease;\n  -moz-transition: all @duration @ease;\n  -o-transition: all @duration @ease;\n  transition: all @duration @ease;\n}\n.inner-shadow(@horizontal:0, @vertical:1px, @blur:2px, @alpha: 0.4) {\n  -webkit-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);\n  -moz-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);\n  box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);\n}\n.box-shadow(@arguments) {\n  -webkit-box-shadow: @arguments;\n  -moz-box-shadow: @arguments;\n  box-shadow: @arguments;\n}\n.box-sizing(@sizing: border-box) {\n  -ms-box-sizing: @sizing;\n  -moz-box-sizing: @sizing;\n  -webkit-box-sizing: @sizing;\n  box-sizing: @sizing;\n}\n.user-select(@argument: none) {\n  -webkit-user-select: @argument;\n  -moz-user-select: @argument;\n  -ms-user-select: @argument;\n  user-select: @argument;\n}\n.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px) {\n  -moz-column-width: @colwidth;\n  -moz-column-count: @colcount;\n  -moz-column-gap: @colgap;\n  -moz-column-rule-color: @columnRuleColor;\n  -moz-column-rule-style: @columnRuleStyle;\n  -moz-column-rule-width: @columnRuleWidth;\n  -webkit-column-width: @colwidth;\n  -webkit-column-count: @colcount;\n  -webkit-column-gap: @colgap;\n  -webkit-column-rule-color: @columnRuleColor;\n  -webkit-column-rule-style: @columnRuleStyle;\n  -webkit-column-rule-width: @columnRuleWidth;\n  column-width: @colwidth;\n  column-count: @colcount;\n  column-gap: @colgap;\n  column-rule-color: @columnRuleColor;\n  column-rule-style: @columnRuleStyle;\n  column-rule-width: @columnRuleWidth;\n}\n.translate(@x:0, @y:0) {\n  .transform(translate(@x, @y));\n}\n.background-clip(@argument: padding-box) {\n  -moz-background-clip: @argument;\n  -webkit-background-clip: @argument;\n  background-clip: @argument;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/less/elements.scss",
    "content": "/*---------------------------------------------------\n    LESS Elements 0.9\n  ---------------------------------------------------\n    A set of useful LESS mixins\n    More info at: http://lesselements.com\n  ---------------------------------------------------*/\n\n@mixin gradient($color: #F5F5F5, $start: #EEE, $stop: #FFF) {\n  background: $color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, $start),\n                               color-stop(1, $stop));\n  background: -ms-linear-gradient(bottom,\n                                  $start,\n                                  $stop);\n  background: -moz-linear-gradient(center bottom,\n                                   $start 0%,\n                                   $stop 100%);\n  background: -o-linear-gradient($stop,\n                                 $start);\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($stop)}', endColorstr='#{ie-hex-str($start)}', GradientType=0);\n}\n@mixin bw-gradient($color: #F5F5F5, $start: 0, $stop: 255) {\n  background: $color;\n  background: -webkit-gradient(linear,\n                               left bottom,\n                               left top,\n                               color-stop(0, rgb($start,$start,$start)),\n                               color-stop(1, rgb($stop,$stop,$stop)));\n  background: -ms-linear-gradient(bottom,\n                                  rgb($start,$start,$start) 0%,\n                                  rgb($stop,$stop,$stop) 100%);\n  background: -moz-linear-gradient(center bottom,\n                                   rgb($start,$start,$start) 0%,\n                                   rgb($stop,$stop,$stop) 100%);\n  background: -o-linear-gradient(rgb($stop,$stop,$stop),\n                                 rgb($start,$start,$start));\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str(rgb($stop,$stop,$stop))}', endColorstr='#{ie-hex-str(rgb($start,$start,$start))}', GradientType=0);\n}\n@mixin bordered($top-color: #EEE, $right-color: #EEE, $bottom-color: #EEE, $left-color: #EEE) {\n  border-top: solid 1px $top-color;\n  border-left: solid 1px $left-color;\n  border-right: solid 1px $right-color;\n  border-bottom: solid 1px $bottom-color;\n}\n@mixin drop-shadow($x-axis: 0, $y-axis: 1px, $blur: 2px, $alpha: 0.1) {\n  -webkit-box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n  -moz-box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n  box-shadow: $x-axis $y-axis $blur rgba(0, 0, 0, $alpha);\n}\n@mixin rounded($radius: 2px) {\n  -webkit-border-radius: $radius;\n  -moz-border-radius: $radius;\n  border-radius: $radius;\n}\n@mixin border-radius($topright: 0, $bottomright: 0, $bottomleft: 0, $topleft: 0) {\n  -webkit-border-top-right-radius: $topright;\n  -webkit-border-bottom-right-radius: $bottomright;\n  -webkit-border-bottom-left-radius: $bottomleft;\n  -webkit-border-top-left-radius: $topleft;\n  -moz-border-radius-topright: $topright;\n  -moz-border-radius-bottomright: $bottomright;\n  -moz-border-radius-bottomleft: $bottomleft;\n  -moz-border-radius-topleft: $topleft;\n  border-top-right-radius: $topright;\n  border-bottom-right-radius: $bottomright;\n  border-bottom-left-radius: $bottomleft;\n  border-top-left-radius: $topleft;\n  @include background-clip(padding-box);\n}\n@mixin opacity($opacity: 0.5) {\n  -webkit-opacity: $opacity;\n  -khtml-opacity: $opacity;\n  -moz-opacity: $opacity;\n  opacity: $opacity;\n  $opperc: $opacity * 100;\n  -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=#{$opperc});\n  filter: alpha(opacity=$opperc);\n}\n@mixin transition-duration($duration: 0.2s) {\n  -moz-transition-duration: $duration;\n  -webkit-transition-duration: $duration;\n  -o-transition-duration: $duration;\n  transition-duration: $duration;\n}\n@mixin transform($arguments...) {\n  -webkit-transform: $arguments;\n  -moz-transform: $arguments;\n  -o-transform: $arguments;\n  -ms-transform: $arguments;\n  transform: $arguments;\n}\n@mixin rotation($deg:5deg) {\n  @include transform(rotate($deg));\n}\n@mixin scale($ratio:1.5) {\n  @include transform(scale($ratio));\n}\n@mixin transition($duration:0.2s, $ease:ease-out) {\n  -webkit-transition: all $duration $ease;\n  -moz-transition: all $duration $ease;\n  -o-transition: all $duration $ease;\n  transition: all $duration $ease;\n}\n@mixin inner-shadow($horizontal:0, $vertical:1px, $blur:2px, $alpha: 0.4) {\n  -webkit-box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n  -moz-box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n  box-shadow: inset $horizontal $vertical $blur rgba(0, 0, 0, $alpha);\n}\n@mixin box-shadow($arguments) {\n  -webkit-box-shadow: $arguments;\n  -moz-box-shadow: $arguments;\n  box-shadow: $arguments;\n}\n@mixin box-sizing($sizing: border-box) {\n  -ms-box-sizing: $sizing;\n  -moz-box-sizing: $sizing;\n  -webkit-box-sizing: $sizing;\n  box-sizing: $sizing;\n}\n@mixin user-select($argument: none) {\n  -webkit-user-select: $argument;\n  -moz-user-select: $argument;\n  -ms-user-select: $argument;\n  user-select: $argument;\n}\n@mixin columns($colwidth: 250px, $colcount: 0, $colgap: 50px, $columnRuleColor: #EEE, $columnRuleStyle: solid, $columnRuleWidth: 1px) {\n  -moz-column-width: $colwidth;\n  -moz-column-count: $colcount;\n  -moz-column-gap: $colgap;\n  -moz-column-rule-color: $columnRuleColor;\n  -moz-column-rule-style: $columnRuleStyle;\n  -moz-column-rule-width: $columnRuleWidth;\n  -webkit-column-width: $colwidth;\n  -webkit-column-count: $colcount;\n  -webkit-column-gap: $colgap;\n  -webkit-column-rule-color: $columnRuleColor;\n  -webkit-column-rule-style: $columnRuleStyle;\n  -webkit-column-rule-width: $columnRuleWidth;\n  column-width: $colwidth;\n  column-count: $colcount;\n  column-gap: $colgap;\n  column-rule-color: $columnRuleColor;\n  column-rule-style: $columnRuleStyle;\n  column-rule-width: $columnRuleWidth;\n}\n@mixin translate($x:0, $y:0) {\n  @include transform(translate($x, $y));\n}\n@mixin background-clip($argument: padding-box) {\n  -moz-background-clip: $argument;\n  -webkit-background-clip: $argument;\n  background-clip: $argument;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/less/summernote-lite.less",
    "content": ".note-editor {\n  border: 1px solid @border-color;\n  position: relative;\n  overflow: hidden;\n\n  /* codeview mode */\n  &.codeview {\n    .note-editing-area {\n      .note-editable {\n        display: none;\n      }\n      .note-codable {\n        display: block;\n      }\n    }\n  }\n\n  .note-editing-area {\n    position: relative;\n    overflow: hidden;\n\n    /* editable */\n    .note-editable {\n      margin: 10px;\n      background-color: #fff;\n      color: #000;\n      padding: 10px;\n      overflow: auto;\n      outline: none;\n\n      &[contenteditable=\"false\"] {\n        background-color: #e5e5e5;\n      }\n    }\n\n    /* codeable */\n    .note-codable {\n      display: none;\n      width: 100%;\n      padding: 10px;\n      border: none;\n      box-shadow: none;\n      font-family: Menlo, Monaco, monospace, sans-serif;\n      font-size: 14px;\n      color: #ccc;\n      background-color: #222;\n      resize: none;\n\n      /* override BS2 default style */\n      .box-sizing(border-box);\n      .rounded(0);\n      margin-bottom: 0;\n    }\n  }\n}\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/less/summernote.less",
    "content": "@import \"elements.less\";\n@import \"../icons/dist/summernote.less\";\n\n/* Theme Variables\n ------------------------------------------*/\n@border-color: #a9a9a9;\n@background-color: #f5f5f5;\n\n/* Layout\n ------------------------------------------*/\n.note-editor {\n  position: relative;\n\n  /* dropzone */\n  @dropzone-color: lightskyblue;\n  @dropzone-active-color: darken(@dropzone-color, 30);\n  .note-dropzone {\n    position: absolute;\n    display: none;\n    z-index: 100;\n    color: @dropzone-color;\n    background-color: white;\n    opacity: 0.95;\n\n    .note-dropzone-message {\n      display: table-cell;\n      vertical-align: middle;\n      text-align: center;\n      font-size: 28px;\n      font-weight: bold;\n    }\n\n    &.hover {\n      color: @dropzone-active-color;\n    }\n  }\n\n  &.dragover .note-dropzone {\n    display: table;\n  }\n\n  .note-editing-area {\n    position: relative;\n\n    .note-editable {\n      outline: none;\n\n      sup {\n        vertical-align: super;\n      }\n\n      sub {\n        vertical-align: sub;\n      }\n    }\n  }\n}\n\n/* Frame mode layout\n------------------------------------------*/\n.note-editor.note-frame {\n  border: 1px solid @border-color;\n\n  /* codeview mode */\n  &.codeview {\n    .note-editing-area {\n      .note-editable {\n        display: none;\n      }\n      .note-codable {\n        display: block;\n      }\n    }\n  }\n\n  .note-editing-area {\n    overflow: hidden;\n\n    /* editable */\n    .note-editable {\n      background-color: #fff;\n      color: #000;\n      padding: 10px;\n      overflow: auto;\n\n      &[contenteditable=\"false\"] {\n        background-color: #e5e5e5;\n      }\n    }\n\n    /* codeable */\n    .note-codable {\n      display: none;\n      width: 100%;\n      padding: 10px;\n      border: none;\n      box-shadow: none;\n      font-family: Menlo, Monaco, monospace, sans-serif;\n      font-size: 14px;\n      color: #ccc;\n      background-color: #222;\n      resize: none;\n\n      /* override BS2 default style */\n      .box-sizing(border-box);\n      .rounded(0);\n      margin-bottom: 0;\n    }\n  }\n\n  /* fullscreen mode */\n  &.fullscreen {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100% !important;\n    z-index: 1050; /* bs3 modal-backdrop: 1030, bs2: 1040 */\n    .note-editable {\n      background-color: white;\n    }\n    .note-resizebar {\n      display: none;\n    }\n  }\n\n  /* statusbar */\n  .note-statusbar {\n    background-color: @background-color;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n    .note-resizebar {\n      padding-top: 1px;\n      height: 8px;\n      width: 100%;\n      cursor: ns-resize;\n      .note-icon-bar {\n        width: 20px;\n        margin: 1px auto;\n        border-top: 1px solid @border-color;\n      }\n    }\n  }\n  .note-placeholder {\n    padding: 10px;\n  }\n}\n\n/* Popover\n------------------------------------------*/\n.note-popover.popover {\n  max-width: none;\n  .popover-content {\n    a {\n      display: inline-block;\n      max-width: 200px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;    /* for FF */\n      vertical-align: middle; /* for FF */\n    }\n  }\n  .arrow {\n    left: 20px !important;\n  }\n}\n\n/* Popover and Toolbar (Button container)\n------------------------------------------*/\n.note-popover .popover-content, .panel-heading.note-toolbar {\n  margin: 0;\n  padding: 0 0 5px 5px;\n\n  &>.btn-group {\n    margin-top: 5px;\n    margin-left: 0;\n    margin-right: 5px;\n  }\n\n  .btn-group {\n    .note-table {\n      min-width: 0;\n      padding: 5px;\n      .note-dimension-picker {\n        font-size: 18px;\n        .note-dimension-picker-mousecatcher {\n          position: absolute !important;\n          z-index: 3;\n          width: 10em;\n          height: 10em;\n          cursor: pointer;\n        }\n        .note-dimension-picker-unhighlighted {\n          position: relative !important;\n          z-index: 1;\n          width: 5em;\n          height: 5em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n        .note-dimension-picker-highlighted {\n          position: absolute !important;\n          z-index: 2;\n          width: 1em;\n          height: 1em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n      }\n    }\n  }\n\n  .note-style {\n    h1, h2, h3, h4, h5, h6, blockquote {\n      margin: 0;\n    }\n  }\n\n  .note-color {\n    .dropdown-toggle {\n      width: 20px;\n      padding-left: 5px;\n    }\n    .dropdown-menu {\n      min-width: 340px;\n      .btn-group {\n        margin: 0;\n        &:first-child {\n          margin: 0 5px;\n        }\n\n        .note-palette-title {\n          font-size: 12px;\n          margin: 2px 7px;\n          text-align: center;\n          border-bottom: 1px solid #eee;\n        }\n\n        .note-color-reset {\n          margin: 3px;\n          padding: 0 3px;\n          width: 100%;\n          font-size: 11px;\n          cursor: pointer;\n          .rounded(5px);\n        }\n\n        .note-color-row {\n          height: 20px;\n        }\n\n        .note-color-reset:hover {\n          background: #eee;\n        }\n      }\n    }\n  }\n\n  .note-para {\n    .dropdown-menu {\n      min-width: 216px;\n      padding: 5px;\n      &>div:first-child {\n        margin-right: 5px;\n      }\n    }\n  }\n\n  /* dropdown-menu for toolbar and popover */\n  .dropdown-menu {\n    min-width: 90px;\n\n    /* dropdown-menu right position */\n    /* http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB */\n    &.right {\n      right: 0;\n      left: auto;\n      &::before { right: 9px; left: auto !important;  }\n      &::after { right: 10px; left: auto !important;  }\n    }\n    /* dropdown-menu for selectbox */\n    &.note-check {\n      li a i {\n        color: deepskyblue;\n        visibility: hidden;\n      }\n      li a.checked i {\n        visibility: visible;\n      }\n    }\n\n  }\n\n  .note-fontsize-10 {\n    font-size: 10px;\n  }\n\n  /* color palette for toolbar and popover */\n  .note-color-palette {\n    line-height: 1;\n    div {\n      .note-color-btn {\n        width: 20px;\n        height: 20px;\n        padding: 0;\n        margin: 0;\n        border: 1px solid #fff;\n      }\n      .note-color-btn:hover {\n        border: 1px solid #000;\n      }\n    }\n  }\n}\n\n/* Dialog\n------------------------------------------*/\n.note-dialog {\n  &>div {\n    display: none; /* BS2's hide pacth. */\n  }\n  .form-group { /* overwrite BS's form-horizontal minus margins */\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .note-modal-form {\n    margin: 0; /* overwrite BS2's form margin bottom */\n  }\n  .note-image-dialog {\n    .note-dropzone {\n      min-height: 100px;\n      font-size: 30px;\n      line-height: 4; /* vertical-align */\n      color: lightgray;\n      text-align: center;\n      border: 4px dashed lightgray;\n      margin-bottom: 10px;\n    }\n  }\n\n  // [workaround] firefox fileinput\n  @-moz-document url-prefix() {\n    .note-image-input {\n      height: auto;\n    }\n  }\n}\n\n/* Placeholder\n------------------------------------------*/\n.note-placeholder {\n  position: absolute;\n  display: none;\n  color: gray;\n}\n\n/* Handle\n------------------------------------------*/\n.note-handle {\n  /* control selection */\n  .note-control-selection {\n    position: absolute;\n    display: none;\n    border: 1px solid black;\n    &>div { position: absolute; }\n\n    .note-control-selection-bg {\n      width: 100%;\n      height: 100%;\n      background-color: black;\n      .opacity(0.30)\n    }\n\n    .note-control-handle {\n      width: 7px;\n      height: 7px;\n      border: 1px solid black;\n    }\n\n    .note-control-holder {\n      .note-control-handle;\n    }\n\n    .note-control-sizing {\n      .note-control-handle;\n      background-color: white;\n    }\n\n    .note-control-nw {\n      top: -5px;\n      left: -5px;\n      border-right: none;\n      border-bottom: none;\n    }\n\n    .note-control-ne {\n      top: -5px;\n      right: -5px;\n      border-bottom: none;\n      border-left: none;\n    }\n\n    .note-control-sw {\n      bottom: -5px;\n      left: -5px;\n      border-top: none;\n      border-right: none;\n    }\n\n    .note-control-se {\n      right: -5px;\n      bottom: -5px;\n      cursor: se-resize;\n    }\n\n    .note-control-se.note-control-holder {\n      cursor: default;\n      border-top: none;\n      border-left: none;\n    }\n\n    .note-control-selection-info {\n      right: 0;\n      bottom: 0;\n      padding: 5px;\n      margin: 5px;\n      color: white;\n      background-color: black;\n      font-size: 12px;\n      .rounded(5px);\n      .opacity(0.7);\n    }\n  }\n}\n\n.note-hint-popover {\n  min-width: 100px;\n  padding: 2px;\n\n  .popover-content {\n    padding: 3px;\n    max-height: 150px;\n    overflow: auto;\n\n    .note-hint-group {\n      .note-hint-item {\n        display: block !important;\n        padding: 3px;\n\n        &.active, &:hover {\n          display: block;\n          clear: both;\n          font-weight: 400;\n          line-height: 1.4;\n          color: white;\n          white-space: nowrap;\n          text-decoration: none;\n          background-color: #428bca;\n          outline: 0;\n          cursor: pointer;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/src/less/summernote.scss",
    "content": "@import \"elements.scss\";\n\n/* Theme Variables\n ------------------------------------------*/\n$border-color: #a9a9a9;\n$background-color: #f5f5f5;\n\n/* Layout\n ------------------------------------------*/\n.note-editor {\n  position: relative;\n\n  /* dropzone */\n  $dropzone-color: lightskyblue;\n  $dropzone-active-color: darken($dropzone-color, 30);\n  .note-dropzone {\n    position: absolute;\n    display: none;\n    z-index: 100;\n    color: $dropzone-color;\n    background-color: white;\n    opacity: 0.95;\n\n    .note-dropzone-message {\n      display: table-cell;\n      vertical-align: middle;\n      text-align: center;\n      font-size: 28px;\n      font-weight: bold;\n    }\n\n    &.hover {\n      color: $dropzone-active-color;\n    }\n  }\n\n  &.dragover .note-dropzone {\n    display: table;\n  }\n\n  .note-editing-area {\n    position: relative;\n\n    .note-editable {\n      outline: none;\n\n      sup {\n        vertical-align: super;\n      }\n\n      sub {\n        vertical-align: sub;\n      }\n    }\n  }\n}\n\n/* Frame mode layout\n------------------------------------------*/\n.note-editor.note-frame {\n  border: 1px solid $border-color;\n\n  /* codeview mode */\n  &.codeview {\n    .note-editing-area {\n      .note-editable {\n        display: none;\n      }\n      .note-codable {\n        display: block;\n      }\n    }\n  }\n\n  .note-editing-area {\n    overflow: hidden;\n\n    /* editable */\n    .note-editable {\n      background-color: #fff;\n      color: #000;\n      padding: 10px;\n      overflow: auto;\n\n      &[contenteditable=\"false\"] {\n        background-color: #e5e5e5;\n      }\n    }\n\n    /* codeable */\n    .note-codable {\n      display: none;\n      width: 100%;\n      padding: 10px;\n      border: none;\n      box-shadow: none;\n      font-family: Menlo, Monaco, monospace, sans-serif;\n      font-size: 14px;\n      color: #ccc;\n      background-color: #222;\n      resize: none;\n\n      /* override BS2 default style */\n      @include box-sizing(border-box);\n      @include rounded(0);\n      margin-bottom: 0;\n    }\n  }\n\n  /* fullscreen mode */\n  &.fullscreen {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100% !important;\n    z-index: 1050; /* bs3 modal-backdrop: 1030, bs2: 1040 */\n    .note-editable {\n      background-color: white;\n    }\n    .note-resizebar {\n      display: none;\n    }\n  }\n\n  /* statusbar */\n  .note-statusbar {\n    background-color: $background-color;\n    border-bottom-left-radius: 4px;\n    border-bottom-right-radius: 4px;\n    .note-resizebar {\n      padding-top: 1px;\n      height: 8px;\n      width: 100%;\n      cursor: ns-resize;\n      .note-icon-bar {\n        width: 20px;\n        margin: 1px auto;\n        border-top: 1px solid $border-color;\n      }\n    }\n  }\n  .note-placeholder {\n    padding: 10px;\n  }\n}\n\n/* Popover\n------------------------------------------*/\n.note-popover.popover {\n  max-width: none;\n  .popover-content {\n    a {\n      display: inline-block;\n      max-width: 200px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;    /* for FF */\n      vertical-align: middle; /* for FF */\n    }\n  }\n  .arrow {\n    left: 20px !important;\n  }\n}\n\n/* Popover and Toolbar (Button container)\n------------------------------------------*/\n.note-popover .popover-content, .panel-heading.note-toolbar {\n  margin: 0;\n  padding: 0 0 5px 5px;\n\n  &>.btn-group {\n    margin-top: 5px;\n    margin-left: 0;\n    margin-right: 5px;\n  }\n\n  .btn-group {\n    .note-table {\n      min-width: 0;\n      padding: 5px;\n      .note-dimension-picker {\n        font-size: 18px;\n        .note-dimension-picker-mousecatcher {\n          position: absolute !important;\n          z-index: 3;\n          width: 10em;\n          height: 10em;\n          cursor: pointer;\n        }\n        .note-dimension-picker-unhighlighted {\n          position: relative !important;\n          z-index: 1;\n          width: 5em;\n          height: 5em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n        .note-dimension-picker-highlighted {\n          position: absolute !important;\n          z-index: 2;\n          width: 1em;\n          height: 1em;\n          background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;\n        }\n      }\n    }\n  }\n\n  .note-style {\n    h1, h2, h3, h4, h5, h6, blockquote {\n      margin: 0;\n    }\n  }\n\n  .note-color {\n    .dropdown-toggle {\n      width: 20px;\n      padding-left: 5px;\n    }\n    .dropdown-menu {\n      min-width: 340px;\n      .btn-group {\n        margin: 0;\n        &:first-child {\n          margin: 0 5px;\n        }\n\n        .note-palette-title {\n          font-size: 12px;\n          margin: 2px 7px;\n          text-align: center;\n          border-bottom: 1px solid #eee;\n        }\n\n        .note-color-reset {\n          font-size: 11px;\n          margin: 3px;\n          padding: 0 3px;\n          cursor: pointer;\n          @include rounded(5px);\n        }\n\n        .note-color-row {\n          height: 20px;\n        }\n\n        .note-color-reset:hover {\n          background: #eee;\n        }\n      }\n    }\n  }\n\n  .note-para {\n    .dropdown-menu {\n      min-width: 216px;\n      padding: 5px;\n      &>div:first-child {\n        margin-right: 5px;\n      }\n    }\n  }\n\n  /* dropdown-menu for toolbar and popover */\n  .dropdown-menu {\n    min-width: 90px;\n\n    /* dropdown-menu right position */\n    /* http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB */\n    &.right {\n      right: 0;\n      left: auto;\n      &::before { right: 9px; left: auto !important;  }\n      &::after { right: 10px; left: auto !important;  }\n    }\n    /* dropdown-menu for selectbox */\n    &.note-check {\n      li a i {\n        color: deepskyblue;\n        visibility: hidden;\n      }\n      li a.checked i {\n        visibility: visible;\n      }\n    }\n\n  }\n\n  .note-fontsize-10 {\n    font-size: 10px;\n  }\n\n  /* color palette for toolbar and popover */\n  .note-color-palette {\n    line-height: 1;\n    div {\n      .note-color-btn {\n        width: 20px;\n        height: 20px;\n        padding: 0;\n        margin: 0;\n        border: 1px solid #fff;\n      }\n      .note-color-btn:hover {\n        border: 1px solid #000;\n      }\n    }\n  }\n}\n\n/* Dialog\n------------------------------------------*/\n.note-dialog {\n  &>div {\n    display: none; /* BS2's hide pacth. */\n  }\n  .form-group { /* overwrite BS's form-horizontal minus margins */\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .note-modal-form {\n    margin: 0; /* overwrite BS2's form margin bottom */\n  }\n  .note-image-dialog {\n    .note-dropzone {\n      min-height: 100px;\n      font-size: 30px;\n      line-height: 4; /* vertical-align */\n      color: lightgray;\n      text-align: center;\n      border: 4px dashed lightgray;\n      margin-bottom: 10px;\n    }\n  }\n}\n\n/* Placeholder\n------------------------------------------*/\n.note-placeholder {\n  position: absolute;\n  display: none;\n  color: gray;\n}\n\n/* Handle\n------------------------------------------*/\n.note-handle {\n  /* control selection */\n  .note-control-selection {\n    position: absolute;\n    display: none;\n    border: 1px solid black;\n    &>div { position: absolute; }\n\n    .note-control-selection-bg {\n      width: 100%;\n      height: 100%;\n      background-color: black;\n      @include opacity(0.3);\n    }\n\n    .note-control-handle {\n      width: 7px;\n      height: 7px;\n      border: 1px solid black;\n    }\n\n    .note-control-holder {\n      @extend .note-control-handle;\n    }\n\n    .note-control-sizing {\n      @extend .note-control-handle;\n      background-color: white;\n    }\n\n    .note-control-nw {\n      top: -5px;\n      left: -5px;\n      border-right: none;\n      border-bottom: none;\n    }\n\n    .note-control-ne {\n      top: -5px;\n      right: -5px;\n      border-bottom: none;\n      border-left: none;\n    }\n\n    .note-control-sw {\n      bottom: -5px;\n      left: -5px;\n      border-top: none;\n      border-right: none;\n    }\n\n    .note-control-se {\n      right: -5px;\n      bottom: -5px;\n      cursor: se-resize;\n    }\n\n    .note-control-se.note-control-holder {\n      cursor: default;\n      border-top: none;\n      border-left: none;\n    }\n\n    .note-control-selection-info {\n      right: 0;\n      bottom: 0;\n      padding: 5px;\n      margin: 5px;\n      color: white;\n      background-color: black;\n      font-size: 12px;\n      @include rounded(5px);\n      @include opacity(0.7);\n    }\n  }\n}\n\n.note-hint-popover {\n  min-width: 100px;\n  padding: 2px;\n\n  .popover-content {\n    padding: 3px;\n    max-height: 150px;\n    overflow: auto;\n\n    .note-hint-group {\n      .note-hint-item {\n        display: block !important;\n        padding: 3px;\n\n        &.active, &:hover {\n          display: block;\n          clear: both;\n          font-weight: 400;\n          line-height: 1.4;\n          color: white;\n          white-space: nowrap;\n          text-decoration: none;\n          background-color: #428bca;\n          outline: 0;\n          cursor: pointer;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/summernote.nuspec",
    "content": "<?xml version=\"1.0\"?>\n<package >\n  <metadata>\n    <id>summernote</id>\n    <version>$version$</version>\n    <authors>summernote</authors>\n    <owners>summernote</owners>\n    <licenseUrl>https://github.com/summernote/summernote#license</licenseUrl>\n    <projectUrl>https://github.com/summernote/summernote</projectUrl>\n    <iconUrl>http://summernote.org/img/icons/icon_ios_120x120.png</iconUrl>\n    <requireLicenseAcceptance>true</requireLicenseAcceptance>\n    <summary>\n      Super Simple WYSIWYG Editor on Bootstrap    \n    </summary>\n    <description>\n      <![CDATA[\n        Super Simple WYSIWYG Editor on Bootstrap\n      ]]>\n    </description>\n    <releaseNotes>\n      <![CDATA[\n        Bug fix\n\n          * Added fonts on meteor package.\n      ]]>\n    </releaseNotes>\n    <copyright>Copyright 2013</copyright>\n    <tags>summernote, Bootstrap, jQuery, editor, WYSIWYG</tags>\n    <dependencies>\n      <dependency id=\"Twitter.Bootstrap\" version=\"3.0.1\" />\n    </dependencies>\n  </metadata>\n  <files>\n    <file src=\"dist\\**\\*.css\" target=\"content\\Content\" />\n    <file src=\"dist\\font\\*.*\" target=\"content\\Content\\fonts\" />\n    <file src=\"dist\\**\\*.js\" target=\"content\\Scripts\" />\n  </files>\n</package>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/.gitignore",
    "content": "/.jshintrc\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/chaidom.js",
    "content": "define([\n  'summernote/base/core/agent'\n], function (agent) {\n  return function (chai) {\n    chai.dom = chai.dom || {};\n\n    chai.dom.equalsIgnoreCase = function (str1, str2) {\n      str1 = str1.toUpperCase();\n      str2 = str2.toUpperCase();\n\n      // [workaround] IE8-10 use &nbsp; instead of bogus br\n      if (agent.isMSIE && agent.browserVersion < 11) {\n        str2 = str2.replace(/<BR>/g, '&NBSP;');\n      }\n\n      // [workaround] IE8 str1 markup has newline between tags\n      if (agent.isMSIE && agent.browserVersion < 9) {\n        str1 = str1.replace(/\\r\\n/g, '');\n      }\n\n      return str1 === str2;\n    };\n\n    chai.dom.equalsStyle = function ($node, expected, style) {\n      var $tester = $('<div />').css(style, expected);\n      return $node.css(style) === $tester.css(style);\n    };\n\n    chai.Assertion.addChainableMethod('equalsIgnoreCase', function (expected) {\n      var actual = this._obj;\n\n      return this.assert(\n        chai.dom.equalsIgnoreCase(actual, expected),\n        'expected ' + this._obj + ' to equal ' + expected + ' ignoring case',\n        'expected ' + this._obj + ' not to equal ' + expected + ' ignoring case'\n      );\n    });\n\n    chai.Assertion.addChainableMethod('equalsStyle', function (expected, style) {\n      var $node = this._obj;\n\n      return this.assert(\n        chai.dom.equalsStyle($node, expected, style),\n        'expected ' + this._obj + ' to equal ' + expected + ' style',\n        'expected ' + this._obj + ' not to equal ' + expected + ' style'\n      );\n    });\n\n    chai.assert.equalsIgnoreCase = function (val, exp, msg) {\n      new chai.Assertion(val, msg).to.be.equalsIgnoreCase(exp);\n    };\n\n    chai.assert.notequalsIgnoreCase = function (val, exp, msg) {\n      new chai.Assertion(val, msg).to.not.be.equalsIgnoreCase(exp);\n    };\n  };\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/karma.conf.js",
    "content": "// Karma configuration\nmodule.exports = function (config) {\n  'use strict';\n\n  config.set({\n    basePath: '../',\n    frameworks: ['requirejs', 'mocha'],\n    exclude: [],\n    reporters: ['progress', 'coverage'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    files: [\n      {pattern: 'src/js/**/*.js', included: false},\n      {pattern: 'test/**/*.js', included: false},\n      {pattern: 'node_modules/chai/*.js', included: false},\n      {pattern: 'node_modules/chai-spies/*.js', included: false},\n      'test/test-main.js'\n    ],\n    // Chrome, ChromeCanary, Firefox, Opera, Safari, PhantomJS, IE\n    browsers: ['Chrome'],\n    captureTimeout: 60000,\n    singleRun: false,\n    preprocessors: { 'src/js/**/!(app|intro|outro).js': 'coverage' },\n    coverageReporter: {\n      type: 'lcov',\n      dir: 'test/coverage/',\n      includeAllSources: true\n    }\n  });\n};\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/libs/bootstrap.js",
    "content": "/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n  throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n  'use strict';\n  var version = $.fn.jquery.split(' ')[0].split('.')\n  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher')\n  }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.5\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n  // ============================================================\n\n  function transitionEnd() {\n    var el = document.createElement('bootstrap')\n\n    var transEndEventNames = {\n      WebkitTransition : 'webkitTransitionEnd',\n      MozTransition    : 'transitionend',\n      OTransition      : 'oTransitionEnd otransitionend',\n      transition       : 'transitionend'\n    }\n\n    for (var name in transEndEventNames) {\n      if (el.style[name] !== undefined) {\n        return { end: transEndEventNames[name] }\n      }\n    }\n\n    return false // explicit for ie8 (  ._.)\n  }\n\n  // http://blog.alexmaccaw.com/css-transitions\n  $.fn.emulateTransitionEnd = function (duration) {\n    var called = false\n    var $el = this\n    $(this).one('bsTransitionEnd', function () { called = true })\n    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n    setTimeout(callback, duration)\n    return this\n  }\n\n  $(function () {\n    $.support.transition = transitionEnd()\n\n    if (!$.support.transition) return\n\n    $.event.special.bsTransitionEnd = {\n      bindType: $.support.transition.end,\n      delegateType: $.support.transition.end,\n      handle: function (e) {\n        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n      }\n    }\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.5\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // ALERT CLASS DEFINITION\n  // ======================\n\n  var dismiss = '[data-dismiss=\"alert\"]'\n  var Alert   = function (el) {\n    $(el).on('click', dismiss, this.close)\n  }\n\n  Alert.VERSION = '3.3.5'\n\n  Alert.TRANSITION_DURATION = 150\n\n  Alert.prototype.close = function (e) {\n    var $this    = $(this)\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = $(selector)\n\n    if (e) e.preventDefault()\n\n    if (!$parent.length) {\n      $parent = $this.closest('.alert')\n    }\n\n    $parent.trigger(e = $.Event('close.bs.alert'))\n\n    if (e.isDefaultPrevented()) return\n\n    $parent.removeClass('in')\n\n    function removeElement() {\n      // detach from parent, fire event then clean up data\n      $parent.detach().trigger('closed.bs.alert').remove()\n    }\n\n    $.support.transition && $parent.hasClass('fade') ?\n      $parent\n        .one('bsTransitionEnd', removeElement)\n        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n      removeElement()\n  }\n\n\n  // ALERT PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.alert')\n\n      if (!data) $this.data('bs.alert', (data = new Alert(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.alert\n\n  $.fn.alert             = Plugin\n  $.fn.alert.Constructor = Alert\n\n\n  // ALERT NO CONFLICT\n  // =================\n\n  $.fn.alert.noConflict = function () {\n    $.fn.alert = old\n    return this\n  }\n\n\n  // ALERT DATA-API\n  // ==============\n\n  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.5\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // BUTTON PUBLIC CLASS DEFINITION\n  // ==============================\n\n  var Button = function (element, options) {\n    this.$element  = $(element)\n    this.options   = $.extend({}, Button.DEFAULTS, options)\n    this.isLoading = false\n  }\n\n  Button.VERSION  = '3.3.5'\n\n  Button.DEFAULTS = {\n    loadingText: 'loading...'\n  }\n\n  Button.prototype.setState = function (state) {\n    var d    = 'disabled'\n    var $el  = this.$element\n    var val  = $el.is('input') ? 'val' : 'html'\n    var data = $el.data()\n\n    state += 'Text'\n\n    if (data.resetText == null) $el.data('resetText', $el[val]())\n\n    // push to event loop to allow forms to submit\n    setTimeout($.proxy(function () {\n      $el[val](data[state] == null ? this.options[state] : data[state])\n\n      if (state == 'loadingText') {\n        this.isLoading = true\n        $el.addClass(d).attr(d, d)\n      } else if (this.isLoading) {\n        this.isLoading = false\n        $el.removeClass(d).removeAttr(d)\n      }\n    }, this), 0)\n  }\n\n  Button.prototype.toggle = function () {\n    var changed = true\n    var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n    if ($parent.length) {\n      var $input = this.$element.find('input')\n      if ($input.prop('type') == 'radio') {\n        if ($input.prop('checked')) changed = false\n        $parent.find('.active').removeClass('active')\n        this.$element.addClass('active')\n      } else if ($input.prop('type') == 'checkbox') {\n        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n        this.$element.toggleClass('active')\n      }\n      $input.prop('checked', this.$element.hasClass('active'))\n      if (changed) $input.trigger('change')\n    } else {\n      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n      this.$element.toggleClass('active')\n    }\n  }\n\n\n  // BUTTON PLUGIN DEFINITION\n  // ========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.button')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n      if (option == 'toggle') data.toggle()\n      else if (option) data.setState(option)\n    })\n  }\n\n  var old = $.fn.button\n\n  $.fn.button             = Plugin\n  $.fn.button.Constructor = Button\n\n\n  // BUTTON NO CONFLICT\n  // ==================\n\n  $.fn.button.noConflict = function () {\n    $.fn.button = old\n    return this\n  }\n\n\n  // BUTTON DATA-API\n  // ===============\n\n  $(document)\n    .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      var $btn = $(e.target)\n      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n      Plugin.call($btn, 'toggle')\n      if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n    })\n    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n    })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.5\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // CAROUSEL CLASS DEFINITION\n  // =========================\n\n  var Carousel = function (element, options) {\n    this.$element    = $(element)\n    this.$indicators = this.$element.find('.carousel-indicators')\n    this.options     = options\n    this.paused      = null\n    this.sliding     = null\n    this.interval    = null\n    this.$active     = null\n    this.$items      = null\n\n    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n  }\n\n  Carousel.VERSION  = '3.3.5'\n\n  Carousel.TRANSITION_DURATION = 600\n\n  Carousel.DEFAULTS = {\n    interval: 5000,\n    pause: 'hover',\n    wrap: true,\n    keyboard: true\n  }\n\n  Carousel.prototype.keydown = function (e) {\n    if (/input|textarea/i.test(e.target.tagName)) return\n    switch (e.which) {\n      case 37: this.prev(); break\n      case 39: this.next(); break\n      default: return\n    }\n\n    e.preventDefault()\n  }\n\n  Carousel.prototype.cycle = function (e) {\n    e || (this.paused = false)\n\n    this.interval && clearInterval(this.interval)\n\n    this.options.interval\n      && !this.paused\n      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n    return this\n  }\n\n  Carousel.prototype.getItemIndex = function (item) {\n    this.$items = item.parent().children('.item')\n    return this.$items.index(item || this.$active)\n  }\n\n  Carousel.prototype.getItemForDirection = function (direction, active) {\n    var activeIndex = this.getItemIndex(active)\n    var willWrap = (direction == 'prev' && activeIndex === 0)\n                || (direction == 'next' && activeIndex == (this.$items.length - 1))\n    if (willWrap && !this.options.wrap) return active\n    var delta = direction == 'prev' ? -1 : 1\n    var itemIndex = (activeIndex + delta) % this.$items.length\n    return this.$items.eq(itemIndex)\n  }\n\n  Carousel.prototype.to = function (pos) {\n    var that        = this\n    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n    if (pos > (this.$items.length - 1) || pos < 0) return\n\n    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n    if (activeIndex == pos) return this.pause().cycle()\n\n    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n  }\n\n  Carousel.prototype.pause = function (e) {\n    e || (this.paused = true)\n\n    if (this.$element.find('.next, .prev').length && $.support.transition) {\n      this.$element.trigger($.support.transition.end)\n      this.cycle(true)\n    }\n\n    this.interval = clearInterval(this.interval)\n\n    return this\n  }\n\n  Carousel.prototype.next = function () {\n    if (this.sliding) return\n    return this.slide('next')\n  }\n\n  Carousel.prototype.prev = function () {\n    if (this.sliding) return\n    return this.slide('prev')\n  }\n\n  Carousel.prototype.slide = function (type, next) {\n    var $active   = this.$element.find('.item.active')\n    var $next     = next || this.getItemForDirection(type, $active)\n    var isCycling = this.interval\n    var direction = type == 'next' ? 'left' : 'right'\n    var that      = this\n\n    if ($next.hasClass('active')) return (this.sliding = false)\n\n    var relatedTarget = $next[0]\n    var slideEvent = $.Event('slide.bs.carousel', {\n      relatedTarget: relatedTarget,\n      direction: direction\n    })\n    this.$element.trigger(slideEvent)\n    if (slideEvent.isDefaultPrevented()) return\n\n    this.sliding = true\n\n    isCycling && this.pause()\n\n    if (this.$indicators.length) {\n      this.$indicators.find('.active').removeClass('active')\n      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n      $nextIndicator && $nextIndicator.addClass('active')\n    }\n\n    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n    if ($.support.transition && this.$element.hasClass('slide')) {\n      $next.addClass(type)\n      $next[0].offsetWidth // force reflow\n      $active.addClass(direction)\n      $next.addClass(direction)\n      $active\n        .one('bsTransitionEnd', function () {\n          $next.removeClass([type, direction].join(' ')).addClass('active')\n          $active.removeClass(['active', direction].join(' '))\n          that.sliding = false\n          setTimeout(function () {\n            that.$element.trigger(slidEvent)\n          }, 0)\n        })\n        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n    } else {\n      $active.removeClass('active')\n      $next.addClass('active')\n      this.sliding = false\n      this.$element.trigger(slidEvent)\n    }\n\n    isCycling && this.cycle()\n\n    return this\n  }\n\n\n  // CAROUSEL PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.carousel')\n      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n      var action  = typeof option == 'string' ? option : options.slide\n\n      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n      if (typeof option == 'number') data.to(option)\n      else if (action) data[action]()\n      else if (options.interval) data.pause().cycle()\n    })\n  }\n\n  var old = $.fn.carousel\n\n  $.fn.carousel             = Plugin\n  $.fn.carousel.Constructor = Carousel\n\n\n  // CAROUSEL NO CONFLICT\n  // ====================\n\n  $.fn.carousel.noConflict = function () {\n    $.fn.carousel = old\n    return this\n  }\n\n\n  // CAROUSEL DATA-API\n  // =================\n\n  var clickHandler = function (e) {\n    var href\n    var $this   = $(this)\n    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n    if (!$target.hasClass('carousel')) return\n    var options = $.extend({}, $target.data(), $this.data())\n    var slideIndex = $this.attr('data-slide-to')\n    if (slideIndex) options.interval = false\n\n    Plugin.call($target, options)\n\n    if (slideIndex) {\n      $target.data('bs.carousel').to(slideIndex)\n    }\n\n    e.preventDefault()\n  }\n\n  $(document)\n    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n  $(window).on('load', function () {\n    $('[data-ride=\"carousel\"]').each(function () {\n      var $carousel = $(this)\n      Plugin.call($carousel, $carousel.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.5\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // COLLAPSE PUBLIC CLASS DEFINITION\n  // ================================\n\n  var Collapse = function (element, options) {\n    this.$element      = $(element)\n    this.options       = $.extend({}, Collapse.DEFAULTS, options)\n    this.$trigger      = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n                           '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n    this.transitioning = null\n\n    if (this.options.parent) {\n      this.$parent = this.getParent()\n    } else {\n      this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n    }\n\n    if (this.options.toggle) this.toggle()\n  }\n\n  Collapse.VERSION  = '3.3.5'\n\n  Collapse.TRANSITION_DURATION = 350\n\n  Collapse.DEFAULTS = {\n    toggle: true\n  }\n\n  Collapse.prototype.dimension = function () {\n    var hasWidth = this.$element.hasClass('width')\n    return hasWidth ? 'width' : 'height'\n  }\n\n  Collapse.prototype.show = function () {\n    if (this.transitioning || this.$element.hasClass('in')) return\n\n    var activesData\n    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n    if (actives && actives.length) {\n      activesData = actives.data('bs.collapse')\n      if (activesData && activesData.transitioning) return\n    }\n\n    var startEvent = $.Event('show.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    if (actives && actives.length) {\n      Plugin.call(actives, 'hide')\n      activesData || actives.data('bs.collapse', null)\n    }\n\n    var dimension = this.dimension()\n\n    this.$element\n      .removeClass('collapse')\n      .addClass('collapsing')[dimension](0)\n      .attr('aria-expanded', true)\n\n    this.$trigger\n      .removeClass('collapsed')\n      .attr('aria-expanded', true)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse in')[dimension]('')\n      this.transitioning = 0\n      this.$element\n        .trigger('shown.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n    this.$element\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n  }\n\n  Collapse.prototype.hide = function () {\n    if (this.transitioning || !this.$element.hasClass('in')) return\n\n    var startEvent = $.Event('hide.bs.collapse')\n    this.$element.trigger(startEvent)\n    if (startEvent.isDefaultPrevented()) return\n\n    var dimension = this.dimension()\n\n    this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n    this.$element\n      .addClass('collapsing')\n      .removeClass('collapse in')\n      .attr('aria-expanded', false)\n\n    this.$trigger\n      .addClass('collapsed')\n      .attr('aria-expanded', false)\n\n    this.transitioning = 1\n\n    var complete = function () {\n      this.transitioning = 0\n      this.$element\n        .removeClass('collapsing')\n        .addClass('collapse')\n        .trigger('hidden.bs.collapse')\n    }\n\n    if (!$.support.transition) return complete.call(this)\n\n    this.$element\n      [dimension](0)\n      .one('bsTransitionEnd', $.proxy(complete, this))\n      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n  }\n\n  Collapse.prototype.toggle = function () {\n    this[this.$element.hasClass('in') ? 'hide' : 'show']()\n  }\n\n  Collapse.prototype.getParent = function () {\n    return $(this.options.parent)\n      .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n      .each($.proxy(function (i, element) {\n        var $element = $(element)\n        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n      }, this))\n      .end()\n  }\n\n  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n    var isOpen = $element.hasClass('in')\n\n    $element.attr('aria-expanded', isOpen)\n    $trigger\n      .toggleClass('collapsed', !isOpen)\n      .attr('aria-expanded', isOpen)\n  }\n\n  function getTargetFromTrigger($trigger) {\n    var href\n    var target = $trigger.attr('data-target')\n      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n    return $(target)\n  }\n\n\n  // COLLAPSE PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.collapse')\n      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.collapse\n\n  $.fn.collapse             = Plugin\n  $.fn.collapse.Constructor = Collapse\n\n\n  // COLLAPSE NO CONFLICT\n  // ====================\n\n  $.fn.collapse.noConflict = function () {\n    $.fn.collapse = old\n    return this\n  }\n\n\n  // COLLAPSE DATA-API\n  // =================\n\n  $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n    var $this   = $(this)\n\n    if (!$this.attr('data-target')) e.preventDefault()\n\n    var $target = getTargetFromTrigger($this)\n    var data    = $target.data('bs.collapse')\n    var option  = data ? 'toggle' : $this.data()\n\n    Plugin.call($target, option)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.5\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // DROPDOWN CLASS DEFINITION\n  // =========================\n\n  var backdrop = '.dropdown-backdrop'\n  var toggle   = '[data-toggle=\"dropdown\"]'\n  var Dropdown = function (element) {\n    $(element).on('click.bs.dropdown', this.toggle)\n  }\n\n  Dropdown.VERSION = '3.3.5'\n\n  function getParent($this) {\n    var selector = $this.attr('data-target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    var $parent = selector && $(selector)\n\n    return $parent && $parent.length ? $parent : $this.parent()\n  }\n\n  function clearMenus(e) {\n    if (e && e.which === 3) return\n    $(backdrop).remove()\n    $(toggle).each(function () {\n      var $this         = $(this)\n      var $parent       = getParent($this)\n      var relatedTarget = { relatedTarget: this }\n\n      if (!$parent.hasClass('open')) return\n\n      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this.attr('aria-expanded', 'false')\n      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)\n    })\n  }\n\n  Dropdown.prototype.toggle = function (e) {\n    var $this = $(this)\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    clearMenus()\n\n    if (!isActive) {\n      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n        // if mobile we use a backdrop because click events don't delegate\n        $(document.createElement('div'))\n          .addClass('dropdown-backdrop')\n          .insertAfter($(this))\n          .on('click', clearMenus)\n      }\n\n      var relatedTarget = { relatedTarget: this }\n      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n      if (e.isDefaultPrevented()) return\n\n      $this\n        .trigger('focus')\n        .attr('aria-expanded', 'true')\n\n      $parent\n        .toggleClass('open')\n        .trigger('shown.bs.dropdown', relatedTarget)\n    }\n\n    return false\n  }\n\n  Dropdown.prototype.keydown = function (e) {\n    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n    var $this = $(this)\n\n    e.preventDefault()\n    e.stopPropagation()\n\n    if ($this.is('.disabled, :disabled')) return\n\n    var $parent  = getParent($this)\n    var isActive = $parent.hasClass('open')\n\n    if (!isActive && e.which != 27 || isActive && e.which == 27) {\n      if (e.which == 27) $parent.find(toggle).trigger('focus')\n      return $this.trigger('click')\n    }\n\n    var desc = ' li:not(.disabled):visible a'\n    var $items = $parent.find('.dropdown-menu' + desc)\n\n    if (!$items.length) return\n\n    var index = $items.index(e.target)\n\n    if (e.which == 38 && index > 0)                 index--         // up\n    if (e.which == 40 && index < $items.length - 1) index++         // down\n    if (!~index)                                    index = 0\n\n    $items.eq(index).trigger('focus')\n  }\n\n\n  // DROPDOWN PLUGIN DEFINITION\n  // ==========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.dropdown')\n\n      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n      if (typeof option == 'string') data[option].call($this)\n    })\n  }\n\n  var old = $.fn.dropdown\n\n  $.fn.dropdown             = Plugin\n  $.fn.dropdown.Constructor = Dropdown\n\n\n  // DROPDOWN NO CONFLICT\n  // ====================\n\n  $.fn.dropdown.noConflict = function () {\n    $.fn.dropdown = old\n    return this\n  }\n\n\n  // APPLY TO STANDARD DROPDOWN ELEMENTS\n  // ===================================\n\n  $(document)\n    .on('click.bs.dropdown.data-api', clearMenus)\n    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.5\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // MODAL CLASS DEFINITION\n  // ======================\n\n  var Modal = function (element, options) {\n    this.options             = options\n    this.$body               = $(document.body)\n    this.$element            = $(element)\n    this.$dialog             = this.$element.find('.modal-dialog')\n    this.$backdrop           = null\n    this.isShown             = null\n    this.originalBodyPad     = null\n    this.scrollbarWidth      = 0\n    this.ignoreBackdropClick = false\n\n    if (this.options.remote) {\n      this.$element\n        .find('.modal-content')\n        .load(this.options.remote, $.proxy(function () {\n          this.$element.trigger('loaded.bs.modal')\n        }, this))\n    }\n  }\n\n  Modal.VERSION  = '3.3.5'\n\n  Modal.TRANSITION_DURATION = 300\n  Modal.BACKDROP_TRANSITION_DURATION = 150\n\n  Modal.DEFAULTS = {\n    backdrop: true,\n    keyboard: true,\n    show: true\n  }\n\n  Modal.prototype.toggle = function (_relatedTarget) {\n    return this.isShown ? this.hide() : this.show(_relatedTarget)\n  }\n\n  Modal.prototype.show = function (_relatedTarget) {\n    var that = this\n    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n    this.$element.trigger(e)\n\n    if (this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = true\n\n    this.checkScrollbar()\n    this.setScrollbar()\n    this.$body.addClass('modal-open')\n\n    this.escape()\n    this.resize()\n\n    this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n    this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n      that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n      })\n    })\n\n    this.backdrop(function () {\n      var transition = $.support.transition && that.$element.hasClass('fade')\n\n      if (!that.$element.parent().length) {\n        that.$element.appendTo(that.$body) // don't move modals dom position\n      }\n\n      that.$element\n        .show()\n        .scrollTop(0)\n\n      that.adjustDialog()\n\n      if (transition) {\n        that.$element[0].offsetWidth // force reflow\n      }\n\n      that.$element.addClass('in')\n\n      that.enforceFocus()\n\n      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n      transition ?\n        that.$dialog // wait for modal to slide in\n          .one('bsTransitionEnd', function () {\n            that.$element.trigger('focus').trigger(e)\n          })\n          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n        that.$element.trigger('focus').trigger(e)\n    })\n  }\n\n  Modal.prototype.hide = function (e) {\n    if (e) e.preventDefault()\n\n    e = $.Event('hide.bs.modal')\n\n    this.$element.trigger(e)\n\n    if (!this.isShown || e.isDefaultPrevented()) return\n\n    this.isShown = false\n\n    this.escape()\n    this.resize()\n\n    $(document).off('focusin.bs.modal')\n\n    this.$element\n      .removeClass('in')\n      .off('click.dismiss.bs.modal')\n      .off('mouseup.dismiss.bs.modal')\n\n    this.$dialog.off('mousedown.dismiss.bs.modal')\n\n    $.support.transition && this.$element.hasClass('fade') ?\n      this.$element\n        .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n      this.hideModal()\n  }\n\n  Modal.prototype.enforceFocus = function () {\n    $(document)\n      .off('focusin.bs.modal') // guard against infinite focus loop\n      .on('focusin.bs.modal', $.proxy(function (e) {\n        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n          this.$element.trigger('focus')\n        }\n      }, this))\n  }\n\n  Modal.prototype.escape = function () {\n    if (this.isShown && this.options.keyboard) {\n      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n        e.which == 27 && this.hide()\n      }, this))\n    } else if (!this.isShown) {\n      this.$element.off('keydown.dismiss.bs.modal')\n    }\n  }\n\n  Modal.prototype.resize = function () {\n    if (this.isShown) {\n      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n    } else {\n      $(window).off('resize.bs.modal')\n    }\n  }\n\n  Modal.prototype.hideModal = function () {\n    var that = this\n    this.$element.hide()\n    this.backdrop(function () {\n      that.$body.removeClass('modal-open')\n      that.resetAdjustments()\n      that.resetScrollbar()\n      that.$element.trigger('hidden.bs.modal')\n    })\n  }\n\n  Modal.prototype.removeBackdrop = function () {\n    this.$backdrop && this.$backdrop.remove()\n    this.$backdrop = null\n  }\n\n  Modal.prototype.backdrop = function (callback) {\n    var that = this\n    var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n    if (this.isShown && this.options.backdrop) {\n      var doAnimate = $.support.transition && animate\n\n      this.$backdrop = $(document.createElement('div'))\n        .addClass('modal-backdrop ' + animate)\n        .appendTo(this.$body)\n\n      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n        if (this.ignoreBackdropClick) {\n          this.ignoreBackdropClick = false\n          return\n        }\n        if (e.target !== e.currentTarget) return\n        this.options.backdrop == 'static'\n          ? this.$element[0].focus()\n          : this.hide()\n      }, this))\n\n      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n      this.$backdrop.addClass('in')\n\n      if (!callback) return\n\n      doAnimate ?\n        this.$backdrop\n          .one('bsTransitionEnd', callback)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callback()\n\n    } else if (!this.isShown && this.$backdrop) {\n      this.$backdrop.removeClass('in')\n\n      var callbackRemove = function () {\n        that.removeBackdrop()\n        callback && callback()\n      }\n      $.support.transition && this.$element.hasClass('fade') ?\n        this.$backdrop\n          .one('bsTransitionEnd', callbackRemove)\n          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n        callbackRemove()\n\n    } else if (callback) {\n      callback()\n    }\n  }\n\n  // these following methods are used to handle overflowing modals\n\n  Modal.prototype.handleUpdate = function () {\n    this.adjustDialog()\n  }\n\n  Modal.prototype.adjustDialog = function () {\n    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n    this.$element.css({\n      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n    })\n  }\n\n  Modal.prototype.resetAdjustments = function () {\n    this.$element.css({\n      paddingLeft: '',\n      paddingRight: ''\n    })\n  }\n\n  Modal.prototype.checkScrollbar = function () {\n    var fullWindowWidth = window.innerWidth\n    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n      var documentElementRect = document.documentElement.getBoundingClientRect()\n      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n    }\n    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n    this.scrollbarWidth = this.measureScrollbar()\n  }\n\n  Modal.prototype.setScrollbar = function () {\n    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n    this.originalBodyPad = document.body.style.paddingRight || ''\n    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n  }\n\n  Modal.prototype.resetScrollbar = function () {\n    this.$body.css('padding-right', this.originalBodyPad)\n  }\n\n  Modal.prototype.measureScrollbar = function () { // thx walsh\n    var scrollDiv = document.createElement('div')\n    scrollDiv.className = 'modal-scrollbar-measure'\n    this.$body.append(scrollDiv)\n    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n    this.$body[0].removeChild(scrollDiv)\n    return scrollbarWidth\n  }\n\n\n  // MODAL PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option, _relatedTarget) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.modal')\n      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n      if (typeof option == 'string') data[option](_relatedTarget)\n      else if (options.show) data.show(_relatedTarget)\n    })\n  }\n\n  var old = $.fn.modal\n\n  $.fn.modal             = Plugin\n  $.fn.modal.Constructor = Modal\n\n\n  // MODAL NO CONFLICT\n  // =================\n\n  $.fn.modal.noConflict = function () {\n    $.fn.modal = old\n    return this\n  }\n\n\n  // MODAL DATA-API\n  // ==============\n\n  $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n    var $this   = $(this)\n    var href    = $this.attr('href')\n    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n    if ($this.is('a')) e.preventDefault()\n\n    $target.one('show.bs.modal', function (showEvent) {\n      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n      $target.one('hidden.bs.modal', function () {\n        $this.is(':visible') && $this.trigger('focus')\n      })\n    })\n    Plugin.call($target, option, this)\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.5\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TOOLTIP PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Tooltip = function (element, options) {\n    this.type       = null\n    this.options    = null\n    this.enabled    = null\n    this.timeout    = null\n    this.hoverState = null\n    this.$element   = null\n    this.inState    = null\n\n    this.init('tooltip', element, options)\n  }\n\n  Tooltip.VERSION  = '3.3.5'\n\n  Tooltip.TRANSITION_DURATION = 150\n\n  Tooltip.DEFAULTS = {\n    animation: true,\n    placement: 'top',\n    selector: false,\n    template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    container: false,\n    viewport: {\n      selector: 'body',\n      padding: 0\n    }\n  }\n\n  Tooltip.prototype.init = function (type, element, options) {\n    this.enabled   = true\n    this.type      = type\n    this.$element  = $(element)\n    this.options   = this.getOptions(options)\n    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n    this.inState   = { click: false, hover: false, focus: false }\n\n    if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n    }\n\n    var triggers = this.options.trigger.split(' ')\n\n    for (var i = triggers.length; i--;) {\n      var trigger = triggers[i]\n\n      if (trigger == 'click') {\n        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n      } else if (trigger != 'manual') {\n        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'\n        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n      }\n    }\n\n    this.options.selector ?\n      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n      this.fixTitle()\n  }\n\n  Tooltip.prototype.getDefaults = function () {\n    return Tooltip.DEFAULTS\n  }\n\n  Tooltip.prototype.getOptions = function (options) {\n    options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n    if (options.delay && typeof options.delay == 'number') {\n      options.delay = {\n        show: options.delay,\n        hide: options.delay\n      }\n    }\n\n    return options\n  }\n\n  Tooltip.prototype.getDelegateOptions = function () {\n    var options  = {}\n    var defaults = this.getDefaults()\n\n    this._options && $.each(this._options, function (key, value) {\n      if (defaults[key] != value) options[key] = value\n    })\n\n    return options\n  }\n\n  Tooltip.prototype.enter = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n    }\n\n    if (self.tip().hasClass('in') || self.hoverState == 'in') {\n      self.hoverState = 'in'\n      return\n    }\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'in'\n\n    if (!self.options.delay || !self.options.delay.show) return self.show()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'in') self.show()\n    }, self.options.delay.show)\n  }\n\n  Tooltip.prototype.isInStateTrue = function () {\n    for (var key in this.inState) {\n      if (this.inState[key]) return true\n    }\n\n    return false\n  }\n\n  Tooltip.prototype.leave = function (obj) {\n    var self = obj instanceof this.constructor ?\n      obj : $(obj.currentTarget).data('bs.' + this.type)\n\n    if (!self) {\n      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n      $(obj.currentTarget).data('bs.' + this.type, self)\n    }\n\n    if (obj instanceof $.Event) {\n      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n    }\n\n    if (self.isInStateTrue()) return\n\n    clearTimeout(self.timeout)\n\n    self.hoverState = 'out'\n\n    if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n    self.timeout = setTimeout(function () {\n      if (self.hoverState == 'out') self.hide()\n    }, self.options.delay.hide)\n  }\n\n  Tooltip.prototype.show = function () {\n    var e = $.Event('show.bs.' + this.type)\n\n    if (this.hasContent() && this.enabled) {\n      this.$element.trigger(e)\n\n      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n      if (e.isDefaultPrevented() || !inDom) return\n      var that = this\n\n      var $tip = this.tip()\n\n      var tipId = this.getUID(this.type)\n\n      this.setContent()\n      $tip.attr('id', tipId)\n      this.$element.attr('aria-describedby', tipId)\n\n      if (this.options.animation) $tip.addClass('fade')\n\n      var placement = typeof this.options.placement == 'function' ?\n        this.options.placement.call(this, $tip[0], this.$element[0]) :\n        this.options.placement\n\n      var autoToken = /\\s?auto?\\s?/i\n      var autoPlace = autoToken.test(placement)\n      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n      $tip\n        .detach()\n        .css({ top: 0, left: 0, display: 'block' })\n        .addClass(placement)\n        .data('bs.' + this.type, this)\n\n      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n      this.$element.trigger('inserted.bs.' + this.type)\n\n      var pos          = this.getPosition()\n      var actualWidth  = $tip[0].offsetWidth\n      var actualHeight = $tip[0].offsetHeight\n\n      if (autoPlace) {\n        var orgPlacement = placement\n        var viewportDim = this.getPosition(this.$viewport)\n\n        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :\n                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :\n                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :\n                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :\n                    placement\n\n        $tip\n          .removeClass(orgPlacement)\n          .addClass(placement)\n      }\n\n      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n      this.applyPlacement(calculatedOffset, placement)\n\n      var complete = function () {\n        var prevHoverState = that.hoverState\n        that.$element.trigger('shown.bs.' + that.type)\n        that.hoverState = null\n\n        if (prevHoverState == 'out') that.leave(that)\n      }\n\n      $.support.transition && this.$tip.hasClass('fade') ?\n        $tip\n          .one('bsTransitionEnd', complete)\n          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n        complete()\n    }\n  }\n\n  Tooltip.prototype.applyPlacement = function (offset, placement) {\n    var $tip   = this.tip()\n    var width  = $tip[0].offsetWidth\n    var height = $tip[0].offsetHeight\n\n    // manually read margins because getBoundingClientRect includes difference\n    var marginTop = parseInt($tip.css('margin-top'), 10)\n    var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n    // we must check for NaN for ie 8/9\n    if (isNaN(marginTop))  marginTop  = 0\n    if (isNaN(marginLeft)) marginLeft = 0\n\n    offset.top  += marginTop\n    offset.left += marginLeft\n\n    // $.fn.offset doesn't round pixel values\n    // so we use setOffset directly with our own function B-0\n    $.offset.setOffset($tip[0], $.extend({\n      using: function (props) {\n        $tip.css({\n          top: Math.round(props.top),\n          left: Math.round(props.left)\n        })\n      }\n    }, offset), 0)\n\n    $tip.addClass('in')\n\n    // check to see if placing tip in new offset caused the tip to resize itself\n    var actualWidth  = $tip[0].offsetWidth\n    var actualHeight = $tip[0].offsetHeight\n\n    if (placement == 'top' && actualHeight != height) {\n      offset.top = offset.top + height - actualHeight\n    }\n\n    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n    if (delta.left) offset.left += delta.left\n    else offset.top += delta.top\n\n    var isVertical          = /top|bottom/.test(placement)\n    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n    $tip.offset(offset)\n    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n  }\n\n  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n    this.arrow()\n      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n      .css(isVertical ? 'top' : 'left', '')\n  }\n\n  Tooltip.prototype.setContent = function () {\n    var $tip  = this.tip()\n    var title = this.getTitle()\n\n    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n    $tip.removeClass('fade in top bottom left right')\n  }\n\n  Tooltip.prototype.hide = function (callback) {\n    var that = this\n    var $tip = $(this.$tip)\n    var e    = $.Event('hide.bs.' + this.type)\n\n    function complete() {\n      if (that.hoverState != 'in') $tip.detach()\n      that.$element\n        .removeAttr('aria-describedby')\n        .trigger('hidden.bs.' + that.type)\n      callback && callback()\n    }\n\n    this.$element.trigger(e)\n\n    if (e.isDefaultPrevented()) return\n\n    $tip.removeClass('in')\n\n    $.support.transition && $tip.hasClass('fade') ?\n      $tip\n        .one('bsTransitionEnd', complete)\n        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n      complete()\n\n    this.hoverState = null\n\n    return this\n  }\n\n  Tooltip.prototype.fixTitle = function () {\n    var $e = this.$element\n    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n    }\n  }\n\n  Tooltip.prototype.hasContent = function () {\n    return this.getTitle()\n  }\n\n  Tooltip.prototype.getPosition = function ($element) {\n    $element   = $element || this.$element\n\n    var el     = $element[0]\n    var isBody = el.tagName == 'BODY'\n\n    var elRect    = el.getBoundingClientRect()\n    if (elRect.width == null) {\n      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n    }\n    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()\n    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n    return $.extend({}, elRect, scroll, outerDims, elOffset)\n  }\n\n  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n  }\n\n  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n    var delta = { top: 0, left: 0 }\n    if (!this.$viewport) return delta\n\n    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n    var viewportDimensions = this.getPosition(this.$viewport)\n\n    if (/right|left/.test(placement)) {\n      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll\n      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n      if (topEdgeOffset < viewportDimensions.top) { // top overflow\n        delta.top = viewportDimensions.top - topEdgeOffset\n      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n      }\n    } else {\n      var leftEdgeOffset  = pos.left - viewportPadding\n      var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n      if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n        delta.left = viewportDimensions.left - leftEdgeOffset\n      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n      }\n    }\n\n    return delta\n  }\n\n  Tooltip.prototype.getTitle = function () {\n    var title\n    var $e = this.$element\n    var o  = this.options\n\n    title = $e.attr('data-original-title')\n      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)\n\n    return title\n  }\n\n  Tooltip.prototype.getUID = function (prefix) {\n    do prefix += ~~(Math.random() * 1000000)\n    while (document.getElementById(prefix))\n    return prefix\n  }\n\n  Tooltip.prototype.tip = function () {\n    if (!this.$tip) {\n      this.$tip = $(this.options.template)\n      if (this.$tip.length != 1) {\n        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n      }\n    }\n    return this.$tip\n  }\n\n  Tooltip.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n  }\n\n  Tooltip.prototype.enable = function () {\n    this.enabled = true\n  }\n\n  Tooltip.prototype.disable = function () {\n    this.enabled = false\n  }\n\n  Tooltip.prototype.toggleEnabled = function () {\n    this.enabled = !this.enabled\n  }\n\n  Tooltip.prototype.toggle = function (e) {\n    var self = this\n    if (e) {\n      self = $(e.currentTarget).data('bs.' + this.type)\n      if (!self) {\n        self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n        $(e.currentTarget).data('bs.' + this.type, self)\n      }\n    }\n\n    if (e) {\n      self.inState.click = !self.inState.click\n      if (self.isInStateTrue()) self.enter(self)\n      else self.leave(self)\n    } else {\n      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n    }\n  }\n\n  Tooltip.prototype.destroy = function () {\n    var that = this\n    clearTimeout(this.timeout)\n    this.hide(function () {\n      that.$element.off('.' + that.type).removeData('bs.' + that.type)\n      if (that.$tip) {\n        that.$tip.detach()\n      }\n      that.$tip = null\n      that.$arrow = null\n      that.$viewport = null\n    })\n  }\n\n\n  // TOOLTIP PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.tooltip')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tooltip\n\n  $.fn.tooltip             = Plugin\n  $.fn.tooltip.Constructor = Tooltip\n\n\n  // TOOLTIP NO CONFLICT\n  // ===================\n\n  $.fn.tooltip.noConflict = function () {\n    $.fn.tooltip = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.5\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // POPOVER PUBLIC CLASS DEFINITION\n  // ===============================\n\n  var Popover = function (element, options) {\n    this.init('popover', element, options)\n  }\n\n  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n  Popover.VERSION  = '3.3.5'\n\n  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n  })\n\n\n  // NOTE: POPOVER EXTENDS tooltip.js\n  // ================================\n\n  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n  Popover.prototype.constructor = Popover\n\n  Popover.prototype.getDefaults = function () {\n    return Popover.DEFAULTS\n  }\n\n  Popover.prototype.setContent = function () {\n    var $tip    = this.tip()\n    var title   = this.getTitle()\n    var content = this.getContent()\n\n    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n    ](content)\n\n    $tip.removeClass('fade top bottom left right in')\n\n    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n    // this manually by checking the contents.\n    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n  }\n\n  Popover.prototype.hasContent = function () {\n    return this.getTitle() || this.getContent()\n  }\n\n  Popover.prototype.getContent = function () {\n    var $e = this.$element\n    var o  = this.options\n\n    return $e.attr('data-content')\n      || (typeof o.content == 'function' ?\n            o.content.call($e[0]) :\n            o.content)\n  }\n\n  Popover.prototype.arrow = function () {\n    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n  }\n\n\n  // POPOVER PLUGIN DEFINITION\n  // =========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.popover')\n      var options = typeof option == 'object' && option\n\n      if (!data && /destroy|hide/.test(option)) return\n      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.popover\n\n  $.fn.popover             = Plugin\n  $.fn.popover.Constructor = Popover\n\n\n  // POPOVER NO CONFLICT\n  // ===================\n\n  $.fn.popover.noConflict = function () {\n    $.fn.popover = old\n    return this\n  }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.5\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // SCROLLSPY CLASS DEFINITION\n  // ==========================\n\n  function ScrollSpy(element, options) {\n    this.$body          = $(document.body)\n    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)\n    this.selector       = (this.options.target || '') + ' .nav li > a'\n    this.offsets        = []\n    this.targets        = []\n    this.activeTarget   = null\n    this.scrollHeight   = 0\n\n    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n    this.refresh()\n    this.process()\n  }\n\n  ScrollSpy.VERSION  = '3.3.5'\n\n  ScrollSpy.DEFAULTS = {\n    offset: 10\n  }\n\n  ScrollSpy.prototype.getScrollHeight = function () {\n    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n  }\n\n  ScrollSpy.prototype.refresh = function () {\n    var that          = this\n    var offsetMethod  = 'offset'\n    var offsetBase    = 0\n\n    this.offsets      = []\n    this.targets      = []\n    this.scrollHeight = this.getScrollHeight()\n\n    if (!$.isWindow(this.$scrollElement[0])) {\n      offsetMethod = 'position'\n      offsetBase   = this.$scrollElement.scrollTop()\n    }\n\n    this.$body\n      .find(this.selector)\n      .map(function () {\n        var $el   = $(this)\n        var href  = $el.data('target') || $el.attr('href')\n        var $href = /^#./.test(href) && $(href)\n\n        return ($href\n          && $href.length\n          && $href.is(':visible')\n          && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n      })\n      .sort(function (a, b) { return a[0] - b[0] })\n      .each(function () {\n        that.offsets.push(this[0])\n        that.targets.push(this[1])\n      })\n  }\n\n  ScrollSpy.prototype.process = function () {\n    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset\n    var scrollHeight = this.getScrollHeight()\n    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()\n    var offsets      = this.offsets\n    var targets      = this.targets\n    var activeTarget = this.activeTarget\n    var i\n\n    if (this.scrollHeight != scrollHeight) {\n      this.refresh()\n    }\n\n    if (scrollTop >= maxScroll) {\n      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n    }\n\n    if (activeTarget && scrollTop < offsets[0]) {\n      this.activeTarget = null\n      return this.clear()\n    }\n\n    for (i = offsets.length; i--;) {\n      activeTarget != targets[i]\n        && scrollTop >= offsets[i]\n        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n        && this.activate(targets[i])\n    }\n  }\n\n  ScrollSpy.prototype.activate = function (target) {\n    this.activeTarget = target\n\n    this.clear()\n\n    var selector = this.selector +\n      '[data-target=\"' + target + '\"],' +\n      this.selector + '[href=\"' + target + '\"]'\n\n    var active = $(selector)\n      .parents('li')\n      .addClass('active')\n\n    if (active.parent('.dropdown-menu').length) {\n      active = active\n        .closest('li.dropdown')\n        .addClass('active')\n    }\n\n    active.trigger('activate.bs.scrollspy')\n  }\n\n  ScrollSpy.prototype.clear = function () {\n    $(this.selector)\n      .parentsUntil(this.options.target, '.active')\n      .removeClass('active')\n  }\n\n\n  // SCROLLSPY PLUGIN DEFINITION\n  // ===========================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.scrollspy')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.scrollspy\n\n  $.fn.scrollspy             = Plugin\n  $.fn.scrollspy.Constructor = ScrollSpy\n\n\n  // SCROLLSPY NO CONFLICT\n  // =====================\n\n  $.fn.scrollspy.noConflict = function () {\n    $.fn.scrollspy = old\n    return this\n  }\n\n\n  // SCROLLSPY DATA-API\n  // ==================\n\n  $(window).on('load.bs.scrollspy.data-api', function () {\n    $('[data-spy=\"scroll\"]').each(function () {\n      var $spy = $(this)\n      Plugin.call($spy, $spy.data())\n    })\n  })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.5\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // TAB CLASS DEFINITION\n  // ====================\n\n  var Tab = function (element) {\n    // jscs:disable requireDollarBeforejQueryAssignment\n    this.element = $(element)\n    // jscs:enable requireDollarBeforejQueryAssignment\n  }\n\n  Tab.VERSION = '3.3.5'\n\n  Tab.TRANSITION_DURATION = 150\n\n  Tab.prototype.show = function () {\n    var $this    = this.element\n    var $ul      = $this.closest('ul:not(.dropdown-menu)')\n    var selector = $this.data('target')\n\n    if (!selector) {\n      selector = $this.attr('href')\n      selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n    }\n\n    if ($this.parent('li').hasClass('active')) return\n\n    var $previous = $ul.find('.active:last a')\n    var hideEvent = $.Event('hide.bs.tab', {\n      relatedTarget: $this[0]\n    })\n    var showEvent = $.Event('show.bs.tab', {\n      relatedTarget: $previous[0]\n    })\n\n    $previous.trigger(hideEvent)\n    $this.trigger(showEvent)\n\n    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n    var $target = $(selector)\n\n    this.activate($this.closest('li'), $ul)\n    this.activate($target, $target.parent(), function () {\n      $previous.trigger({\n        type: 'hidden.bs.tab',\n        relatedTarget: $this[0]\n      })\n      $this.trigger({\n        type: 'shown.bs.tab',\n        relatedTarget: $previous[0]\n      })\n    })\n  }\n\n  Tab.prototype.activate = function (element, container, callback) {\n    var $active    = container.find('> .active')\n    var transition = callback\n      && $.support.transition\n      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n    function next() {\n      $active\n        .removeClass('active')\n        .find('> .dropdown-menu > .active')\n          .removeClass('active')\n        .end()\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', false)\n\n      element\n        .addClass('active')\n        .find('[data-toggle=\"tab\"]')\n          .attr('aria-expanded', true)\n\n      if (transition) {\n        element[0].offsetWidth // reflow for transition\n        element.addClass('in')\n      } else {\n        element.removeClass('fade')\n      }\n\n      if (element.parent('.dropdown-menu').length) {\n        element\n          .closest('li.dropdown')\n            .addClass('active')\n          .end()\n          .find('[data-toggle=\"tab\"]')\n            .attr('aria-expanded', true)\n      }\n\n      callback && callback()\n    }\n\n    $active.length && transition ?\n      $active\n        .one('bsTransitionEnd', next)\n        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n      next()\n\n    $active.removeClass('in')\n  }\n\n\n  // TAB PLUGIN DEFINITION\n  // =====================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this = $(this)\n      var data  = $this.data('bs.tab')\n\n      if (!data) $this.data('bs.tab', (data = new Tab(this)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.tab\n\n  $.fn.tab             = Plugin\n  $.fn.tab.Constructor = Tab\n\n\n  // TAB NO CONFLICT\n  // ===============\n\n  $.fn.tab.noConflict = function () {\n    $.fn.tab = old\n    return this\n  }\n\n\n  // TAB DATA-API\n  // ============\n\n  var clickHandler = function (e) {\n    e.preventDefault()\n    Plugin.call($(this), 'show')\n  }\n\n  $(document)\n    .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n    .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.5\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n  'use strict';\n\n  // AFFIX CLASS DEFINITION\n  // ======================\n\n  var Affix = function (element, options) {\n    this.options = $.extend({}, Affix.DEFAULTS, options)\n\n    this.$target = $(this.options.target)\n      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))\n\n    this.$element     = $(element)\n    this.affixed      = null\n    this.unpin        = null\n    this.pinnedOffset = null\n\n    this.checkPosition()\n  }\n\n  Affix.VERSION  = '3.3.5'\n\n  Affix.RESET    = 'affix affix-top affix-bottom'\n\n  Affix.DEFAULTS = {\n    offset: 0,\n    target: window\n  }\n\n  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n    var scrollTop    = this.$target.scrollTop()\n    var position     = this.$element.offset()\n    var targetHeight = this.$target.height()\n\n    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n    if (this.affixed == 'bottom') {\n      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n    }\n\n    var initializing   = this.affixed == null\n    var colliderTop    = initializing ? scrollTop : position.top\n    var colliderHeight = initializing ? targetHeight : height\n\n    if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n    return false\n  }\n\n  Affix.prototype.getPinnedOffset = function () {\n    if (this.pinnedOffset) return this.pinnedOffset\n    this.$element.removeClass(Affix.RESET).addClass('affix')\n    var scrollTop = this.$target.scrollTop()\n    var position  = this.$element.offset()\n    return (this.pinnedOffset = position.top - scrollTop)\n  }\n\n  Affix.prototype.checkPositionWithEventLoop = function () {\n    setTimeout($.proxy(this.checkPosition, this), 1)\n  }\n\n  Affix.prototype.checkPosition = function () {\n    if (!this.$element.is(':visible')) return\n\n    var height       = this.$element.height()\n    var offset       = this.options.offset\n    var offsetTop    = offset.top\n    var offsetBottom = offset.bottom\n    var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n    if (typeof offset != 'object')         offsetBottom = offsetTop = offset\n    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)\n    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n    if (this.affixed != affix) {\n      if (this.unpin != null) this.$element.css('top', '')\n\n      var affixType = 'affix' + (affix ? '-' + affix : '')\n      var e         = $.Event(affixType + '.bs.affix')\n\n      this.$element.trigger(e)\n\n      if (e.isDefaultPrevented()) return\n\n      this.affixed = affix\n      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n      this.$element\n        .removeClass(Affix.RESET)\n        .addClass(affixType)\n        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n    }\n\n    if (affix == 'bottom') {\n      this.$element.offset({\n        top: scrollHeight - height - offsetBottom\n      })\n    }\n  }\n\n\n  // AFFIX PLUGIN DEFINITION\n  // =======================\n\n  function Plugin(option) {\n    return this.each(function () {\n      var $this   = $(this)\n      var data    = $this.data('bs.affix')\n      var options = typeof option == 'object' && option\n\n      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n      if (typeof option == 'string') data[option]()\n    })\n  }\n\n  var old = $.fn.affix\n\n  $.fn.affix             = Plugin\n  $.fn.affix.Constructor = Affix\n\n\n  // AFFIX NO CONFLICT\n  // =================\n\n  $.fn.affix.noConflict = function () {\n    $.fn.affix = old\n    return this\n  }\n\n\n  // AFFIX DATA-API\n  // ==============\n\n  $(window).on('load', function () {\n    $('[data-spy=\"affix\"]').each(function () {\n      var $spy = $(this)\n      var data = $spy.data()\n\n      data.offset = data.offset || {}\n\n      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n      if (data.offsetTop    != null) data.offset.top    = data.offsetTop\n\n      Plugin.call($spy, data)\n    })\n  })\n\n}(jQuery);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/libs/codemirror.js",
    "content": "// CodeMirror version 3.20\n//\n// CodeMirror is the only global var we claim\nwindow.CodeMirror = (function() {\n  \"use strict\";\n\n  // BROWSER SNIFFING\n\n  // Crude, but necessary to handle a number of hard-to-feature-detect\n  // bugs and behavior differences.\n  var gecko = /gecko\\/\\d/i.test(navigator.userAgent);\n  // IE11 currently doesn't count as 'ie', since it has almost none of\n  // the same bugs as earlier versions. Use ie_gt10 to handle\n  // incompatibilities in that version.\n  var ie = /MSIE \\d/.test(navigator.userAgent);\n  var ie_lt8 = ie && (document.documentMode == null || document.documentMode < 8);\n  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n  var ie_gt10 = /Trident\\/([7-9]|\\d{2,})\\./.test(navigator.userAgent);\n  var webkit = /WebKit\\//.test(navigator.userAgent);\n  var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(navigator.userAgent);\n  var chrome = /Chrome\\//.test(navigator.userAgent);\n  var opera = /Opera\\//.test(navigator.userAgent);\n  var safari = /Apple Computer/.test(navigator.vendor);\n  var khtml = /KHTML\\//.test(navigator.userAgent);\n  var mac_geLion = /Mac OS X 1\\d\\D([7-9]|\\d\\d)\\D/.test(navigator.userAgent);\n  var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(navigator.userAgent);\n  var phantom = /PhantomJS/.test(navigator.userAgent);\n\n  var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\\/\\w+/.test(navigator.userAgent);\n  // This is woefully incomplete. Suggestions for alternative methods welcome.\n  var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent);\n  var mac = ios || /Mac/.test(navigator.platform);\n  var windows = /win/i.test(navigator.platform);\n\n  var opera_version = opera && navigator.userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n  if (opera_version) opera_version = Number(opera_version[1]);\n  if (opera_version && opera_version >= 15) { opera = false; webkit = true; }\n  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n  var flipCtrlCmd = mac && (qtwebkit || opera && (opera_version == null || opera_version < 12.11));\n  var captureMiddleClick = gecko || (ie && !ie_lt9);\n\n  // Optimize some code when these features are not used\n  var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n  // CONSTRUCTOR\n\n  function CodeMirror(place, options) {\n    if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);\n\n    this.options = options = options || {};\n    // Determine effective options based on given values and defaults.\n    for (var opt in defaults) if (!options.hasOwnProperty(opt) && defaults.hasOwnProperty(opt))\n      options[opt] = defaults[opt];\n    setGuttersForLineNumbers(options);\n\n    var docStart = typeof options.value == \"string\" ? 0 : options.value.first;\n    var display = this.display = makeDisplay(place, docStart);\n    display.wrapper.CodeMirror = this;\n    updateGutters(this);\n    if (options.autofocus && !mobile) focusInput(this);\n\n    this.state = {keyMaps: [],\n                  overlays: [],\n                  modeGen: 0,\n                  overwrite: false, focused: false,\n                  suppressEdits: false, pasteIncoming: false,\n                  draggingText: false,\n                  highlight: new Delayed()};\n\n    themeChanged(this);\n    if (options.lineWrapping)\n      this.display.wrapper.className += \" CodeMirror-wrap\";\n\n    var doc = options.value;\n    if (typeof doc == \"string\") doc = new Doc(options.value, options.mode);\n    operation(this, attachDoc)(this, doc);\n\n    // Override magic textarea content restore that IE sometimes does\n    // on our hidden textarea on reload\n    if (ie) setTimeout(bind(resetInput, this, true), 20);\n\n    registerEventHandlers(this);\n    // IE throws unspecified error in certain cases, when\n    // trying to access activeElement before onload\n    var hasFocus; try { hasFocus = (document.activeElement == display.input); } catch(e) { }\n    if (hasFocus || (options.autofocus && !mobile)) setTimeout(bind(onFocus, this), 20);\n    else onBlur(this);\n\n    operation(this, function() {\n      for (var opt in optionHandlers)\n        if (optionHandlers.propertyIsEnumerable(opt))\n          optionHandlers[opt](this, options[opt], Init);\n      for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);\n    })();\n  }\n\n  // DISPLAY CONSTRUCTOR\n\n  function makeDisplay(place, docStart) {\n    var d = {};\n\n    var input = d.input = elt(\"textarea\", null, null, \"position: absolute; padding: 0; width: 1px; height: 1em; outline: none; font-size: 4px;\");\n    if (webkit) input.style.width = \"1000px\";\n    else input.setAttribute(\"wrap\", \"off\");\n    // if border: 0; -- iOS fails to open keyboard (issue #1287)\n    if (ios) input.style.border = \"1px solid black\";\n    input.setAttribute(\"autocorrect\", \"off\"); input.setAttribute(\"autocapitalize\", \"off\"); input.setAttribute(\"spellcheck\", \"false\");\n\n    // Wraps and hides input textarea\n    d.inputDiv = elt(\"div\", [input], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n    // The actual fake scrollbars.\n    d.scrollbarH = elt(\"div\", [elt(\"div\", null, null, \"height: 1px\")], \"CodeMirror-hscrollbar\");\n    d.scrollbarV = elt(\"div\", [elt(\"div\", null, null, \"width: 1px\")], \"CodeMirror-vscrollbar\");\n    d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n    d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n    // DIVs containing the selection and the actual code\n    d.lineDiv = elt(\"div\", null, \"CodeMirror-code\");\n    d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n    // Blinky cursor, and element used to ensure cursor fits at the end of a line\n    d.cursor = elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\");\n    // Secondary cursor, shown when on a 'jump' in bi-directional text\n    d.otherCursor = elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\");\n    // Used to measure text size\n    d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n    // Wraps everything that needs to exist inside the vertically-padded coordinate system\n    d.lineSpace = elt(\"div\", [d.measure, d.selectionDiv, d.lineDiv, d.cursor, d.otherCursor],\n                         null, \"position: relative; outline: none\");\n    // Moved around its parent to cover visible view\n    d.mover = elt(\"div\", [elt(\"div\", [d.lineSpace], \"CodeMirror-lines\")], null, \"position: relative\");\n    // Set to the height of the text, causes scrolling\n    d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n    // D is needed because behavior of elts with overflow: auto and padding is inconsistent across browsers\n    d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerCutOff + \"px; width: 1px;\");\n    // Will contain the gutters, if any\n    d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n    d.lineGutter = null;\n    // Provides scrolling\n    d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n    d.scroller.setAttribute(\"tabIndex\", \"-1\");\n    // The element in which the editor lives.\n    d.wrapper = elt(\"div\", [d.inputDiv, d.scrollbarH, d.scrollbarV,\n                            d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n    // Work around IE7 z-index bug\n    if (ie_lt8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n    if (place.appendChild) place.appendChild(d.wrapper); else place(d.wrapper);\n\n    // Needed to hide big blue blinking cursor on Mobile Safari\n    if (ios) input.style.width = \"0px\";\n    if (!webkit) d.scroller.draggable = true;\n    // Needed to handle Tab key in KHTML\n    if (khtml) { d.inputDiv.style.height = \"1px\"; d.inputDiv.style.position = \"absolute\"; }\n    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n    else if (ie_lt8) d.scrollbarH.style.minWidth = d.scrollbarV.style.minWidth = \"18px\";\n\n    // Current visible range (may be bigger than the view window).\n    d.viewOffset = d.lastSizeC = 0;\n    d.showingFrom = d.showingTo = docStart;\n\n    // Used to only resize the line number gutter when necessary (when\n    // the amount of lines crosses a boundary that makes its width change)\n    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n    // See readInput and resetInput\n    d.prevInput = \"\";\n    // Set to true when a non-horizontal-scrolling widget is added. As\n    // an optimization, widget aligning is skipped when d is false.\n    d.alignWidgets = false;\n    // Flag that indicates whether we currently expect input to appear\n    // (after some event like 'keypress' or 'input') and are polling\n    // intensively.\n    d.pollingFast = false;\n    // Self-resetting timeout for the poller\n    d.poll = new Delayed();\n\n    d.cachedCharWidth = d.cachedTextHeight = null;\n    d.measureLineCache = [];\n    d.measureLineCachePos = 0;\n\n    // Tracks when resetInput has punted to just putting a short\n    // string instead of the (large) selection.\n    d.inaccurateSelection = false;\n\n    // Tracks the maximum line length so that the horizontal scrollbar\n    // can be kept static when scrolling.\n    d.maxLine = null;\n    d.maxLineLength = 0;\n    d.maxLineChanged = false;\n\n    // Used for measuring wheel scrolling granularity\n    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n    return d;\n  }\n\n  // STATE UPDATES\n\n  // Used to get the editor into a consistent state again when options change.\n\n  function loadMode(cm) {\n    cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);\n    cm.doc.iter(function(line) {\n      if (line.stateAfter) line.stateAfter = null;\n      if (line.styles) line.styles = null;\n    });\n    cm.doc.frontier = cm.doc.first;\n    startWorker(cm, 100);\n    cm.state.modeGen++;\n    if (cm.curOp) regChange(cm);\n  }\n\n  function wrappingChanged(cm) {\n    if (cm.options.lineWrapping) {\n      cm.display.wrapper.className += \" CodeMirror-wrap\";\n      cm.display.sizer.style.minWidth = \"\";\n    } else {\n      cm.display.wrapper.className = cm.display.wrapper.className.replace(\" CodeMirror-wrap\", \"\");\n      computeMaxLength(cm);\n    }\n    estimateLineHeights(cm);\n    regChange(cm);\n    clearCaches(cm);\n    setTimeout(function(){updateScrollbars(cm);}, 100);\n  }\n\n  function estimateHeight(cm) {\n    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n    return function(line) {\n      if (lineIsHidden(cm.doc, line))\n        return 0;\n      else if (wrapping)\n        return (Math.ceil(line.text.length / perLine) || 1) * th;\n      else\n        return th;\n    };\n  }\n\n  function estimateLineHeights(cm) {\n    var doc = cm.doc, est = estimateHeight(cm);\n    doc.iter(function(line) {\n      var estHeight = est(line);\n      if (estHeight != line.height) updateLineHeight(line, estHeight);\n    });\n  }\n\n  function keyMapChanged(cm) {\n    var map = keyMap[cm.options.keyMap], style = map.style;\n    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-keymap-\\S+/g, \"\") +\n      (style ? \" cm-keymap-\" + style : \"\");\n    cm.state.disableInput = map.disableInput;\n  }\n\n  function themeChanged(cm) {\n    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n      cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n    clearCaches(cm);\n  }\n\n  function guttersChanged(cm) {\n    updateGutters(cm);\n    regChange(cm);\n    setTimeout(function(){alignHorizontally(cm);}, 20);\n  }\n\n  function updateGutters(cm) {\n    var gutters = cm.display.gutters, specs = cm.options.gutters;\n    removeChildren(gutters);\n    for (var i = 0; i < specs.length; ++i) {\n      var gutterClass = specs[i];\n      var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + gutterClass));\n      if (gutterClass == \"CodeMirror-linenumbers\") {\n        cm.display.lineGutter = gElt;\n        gElt.style.width = (cm.display.lineNumWidth || 1) + \"px\";\n      }\n    }\n    gutters.style.display = i ? \"\" : \"none\";\n  }\n\n  function lineLength(doc, line) {\n    if (line.height == 0) return 0;\n    var len = line.text.length, merged, cur = line;\n    while (merged = collapsedSpanAtStart(cur)) {\n      var found = merged.find();\n      cur = getLine(doc, found.from.line);\n      len += found.from.ch - found.to.ch;\n    }\n    cur = line;\n    while (merged = collapsedSpanAtEnd(cur)) {\n      var found = merged.find();\n      len -= cur.text.length - found.from.ch;\n      cur = getLine(doc, found.to.line);\n      len += cur.text.length - found.to.ch;\n    }\n    return len;\n  }\n\n  function computeMaxLength(cm) {\n    var d = cm.display, doc = cm.doc;\n    d.maxLine = getLine(doc, doc.first);\n    d.maxLineLength = lineLength(doc, d.maxLine);\n    d.maxLineChanged = true;\n    doc.iter(function(line) {\n      var len = lineLength(doc, line);\n      if (len > d.maxLineLength) {\n        d.maxLineLength = len;\n        d.maxLine = line;\n      }\n    });\n  }\n\n  // Make sure the gutters options contains the element\n  // \"CodeMirror-linenumbers\" when the lineNumbers option is true.\n  function setGuttersForLineNumbers(options) {\n    var found = indexOf(options.gutters, \"CodeMirror-linenumbers\");\n    if (found == -1 && options.lineNumbers) {\n      options.gutters = options.gutters.concat([\"CodeMirror-linenumbers\"]);\n    } else if (found > -1 && !options.lineNumbers) {\n      options.gutters = options.gutters.slice(0);\n      options.gutters.splice(found, 1);\n    }\n  }\n\n  // SCROLLBARS\n\n  // Re-synchronize the fake scrollbars with the actual size of the\n  // content. Optionally force a scrollTop.\n  function updateScrollbars(cm) {\n    var d = cm.display, docHeight = cm.doc.height;\n    var totalHeight = docHeight + paddingVert(d);\n    d.sizer.style.minHeight = d.heightForcer.style.top = totalHeight + \"px\";\n    d.gutters.style.height = Math.max(totalHeight, d.scroller.clientHeight - scrollerCutOff) + \"px\";\n    var scrollHeight = Math.max(totalHeight, d.scroller.scrollHeight);\n    var needsH = d.scroller.scrollWidth > (d.scroller.clientWidth + 1);\n    var needsV = scrollHeight > (d.scroller.clientHeight + 1);\n    if (needsV) {\n      d.scrollbarV.style.display = \"block\";\n      d.scrollbarV.style.bottom = needsH ? scrollbarWidth(d.measure) + \"px\" : \"0\";\n      d.scrollbarV.firstChild.style.height =\n        (scrollHeight - d.scroller.clientHeight + d.scrollbarV.clientHeight) + \"px\";\n    } else {\n      d.scrollbarV.style.display = \"\";\n      d.scrollbarV.firstChild.style.height = \"0\";\n    }\n    if (needsH) {\n      d.scrollbarH.style.display = \"block\";\n      d.scrollbarH.style.right = needsV ? scrollbarWidth(d.measure) + \"px\" : \"0\";\n      d.scrollbarH.firstChild.style.width =\n        (d.scroller.scrollWidth - d.scroller.clientWidth + d.scrollbarH.clientWidth) + \"px\";\n    } else {\n      d.scrollbarH.style.display = \"\";\n      d.scrollbarH.firstChild.style.width = \"0\";\n    }\n    if (needsH && needsV) {\n      d.scrollbarFiller.style.display = \"block\";\n      d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = scrollbarWidth(d.measure) + \"px\";\n    } else d.scrollbarFiller.style.display = \"\";\n    if (needsH && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n      d.gutterFiller.style.display = \"block\";\n      d.gutterFiller.style.height = scrollbarWidth(d.measure) + \"px\";\n      d.gutterFiller.style.width = d.gutters.offsetWidth + \"px\";\n    } else d.gutterFiller.style.display = \"\";\n\n    if (mac_geLion && scrollbarWidth(d.measure) === 0) {\n      d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = mac_geMountainLion ? \"18px\" : \"12px\";\n      d.scrollbarV.style.pointerEvents = d.scrollbarH.style.pointerEvents = \"none\";\n    }\n  }\n\n  function visibleLines(display, doc, viewPort) {\n    var top = display.scroller.scrollTop, height = display.wrapper.clientHeight;\n    if (typeof viewPort == \"number\") top = viewPort;\n    else if (viewPort) {top = viewPort.top; height = viewPort.bottom - viewPort.top;}\n    top = Math.floor(top - paddingTop(display));\n    var bottom = Math.ceil(top + height);\n    return {from: lineAtHeight(doc, top), to: lineAtHeight(doc, bottom)};\n  }\n\n  // LINE NUMBERS\n\n  function alignHorizontally(cm) {\n    var display = cm.display;\n    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;\n    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n    var gutterW = display.gutters.offsetWidth, l = comp + \"px\";\n    for (var n = display.lineDiv.firstChild; n; n = n.nextSibling) if (n.alignable) {\n      for (var i = 0, a = n.alignable; i < a.length; ++i) a[i].style.left = l;\n    }\n    if (cm.options.fixedGutter)\n      display.gutters.style.left = (comp + gutterW) + \"px\";\n  }\n\n  function maybeUpdateLineNumberWidth(cm) {\n    if (!cm.options.lineNumbers) return false;\n    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n    if (last.length != display.lineNumChars) {\n      var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n                                                 \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n      display.lineGutter.style.width = \"\";\n      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding);\n      display.lineNumWidth = display.lineNumInnerWidth + padding;\n      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n      display.lineGutter.style.width = display.lineNumWidth + \"px\";\n      return true;\n    }\n    return false;\n  }\n\n  function lineNumberFor(options, i) {\n    return String(options.lineNumberFormatter(i + options.firstLineNumber));\n  }\n  function compensateForHScroll(display) {\n    return getRect(display.scroller).left - getRect(display.sizer).left;\n  }\n\n  // DISPLAY DRAWING\n\n  function updateDisplay(cm, changes, viewPort, forced) {\n    var oldFrom = cm.display.showingFrom, oldTo = cm.display.showingTo, updated;\n    var visible = visibleLines(cm.display, cm.doc, viewPort);\n    for (var first = true;; first = false) {\n      var oldWidth = cm.display.scroller.clientWidth;\n      if (!updateDisplayInner(cm, changes, visible, forced)) break;\n      updated = true;\n      changes = [];\n      updateSelection(cm);\n      updateScrollbars(cm);\n      if (first && cm.options.lineWrapping && oldWidth != cm.display.scroller.clientWidth) {\n        forced = true;\n        continue;\n      }\n      forced = false;\n\n      // Clip forced viewport to actual scrollable area\n      if (viewPort)\n        viewPort = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight,\n                            typeof viewPort == \"number\" ? viewPort : viewPort.top);\n      visible = visibleLines(cm.display, cm.doc, viewPort);\n      if (visible.from >= cm.display.showingFrom && visible.to <= cm.display.showingTo)\n        break;\n    }\n\n    if (updated) {\n      signalLater(cm, \"update\", cm);\n      if (cm.display.showingFrom != oldFrom || cm.display.showingTo != oldTo)\n        signalLater(cm, \"viewportChange\", cm, cm.display.showingFrom, cm.display.showingTo);\n    }\n    return updated;\n  }\n\n  // Uses a set of changes plus the current scroll position to\n  // determine which DOM updates have to be made, and makes the\n  // updates.\n  function updateDisplayInner(cm, changes, visible, forced) {\n    var display = cm.display, doc = cm.doc;\n    if (!display.wrapper.clientWidth) {\n      display.showingFrom = display.showingTo = doc.first;\n      display.viewOffset = 0;\n      return;\n    }\n\n    // Bail out if the visible area is already rendered and nothing changed.\n    if (!forced && changes.length == 0 &&\n        visible.from > display.showingFrom && visible.to < display.showingTo)\n      return;\n\n    if (maybeUpdateLineNumberWidth(cm))\n      changes = [{from: doc.first, to: doc.first + doc.size}];\n    var gutterW = display.sizer.style.marginLeft = display.gutters.offsetWidth + \"px\";\n    display.scrollbarH.style.left = cm.options.fixedGutter ? gutterW : \"0\";\n\n    // Used to determine which lines need their line numbers updated\n    var positionsChangedFrom = Infinity;\n    if (cm.options.lineNumbers)\n      for (var i = 0; i < changes.length; ++i)\n        if (changes[i].diff && changes[i].from < positionsChangedFrom) { positionsChangedFrom = changes[i].from; }\n\n    var end = doc.first + doc.size;\n    var from = Math.max(visible.from - cm.options.viewportMargin, doc.first);\n    var to = Math.min(end, visible.to + cm.options.viewportMargin);\n    if (display.showingFrom < from && from - display.showingFrom < 20) from = Math.max(doc.first, display.showingFrom);\n    if (display.showingTo > to && display.showingTo - to < 20) to = Math.min(end, display.showingTo);\n    if (sawCollapsedSpans) {\n      from = lineNo(visualLine(doc, getLine(doc, from)));\n      while (to < end && lineIsHidden(doc, getLine(doc, to))) ++to;\n    }\n\n    // Create a range of theoretically intact lines, and punch holes\n    // in that using the change info.\n    var intact = [{from: Math.max(display.showingFrom, doc.first),\n                   to: Math.min(display.showingTo, end)}];\n    if (intact[0].from >= intact[0].to) intact = [];\n    else intact = computeIntact(intact, changes);\n    // When merged lines are present, we might have to reduce the\n    // intact ranges because changes in continued fragments of the\n    // intact lines do require the lines to be redrawn.\n    if (sawCollapsedSpans)\n      for (var i = 0; i < intact.length; ++i) {\n        var range = intact[i], merged;\n        while (merged = collapsedSpanAtEnd(getLine(doc, range.to - 1))) {\n          var newTo = merged.find().from.line;\n          if (newTo > range.from) range.to = newTo;\n          else { intact.splice(i--, 1); break; }\n        }\n      }\n\n    // Clip off the parts that won't be visible\n    var intactLines = 0;\n    for (var i = 0; i < intact.length; ++i) {\n      var range = intact[i];\n      if (range.from < from) range.from = from;\n      if (range.to > to) range.to = to;\n      if (range.from >= range.to) intact.splice(i--, 1);\n      else intactLines += range.to - range.from;\n    }\n    if (!forced && intactLines == to - from && from == display.showingFrom && to == display.showingTo) {\n      updateViewOffset(cm);\n      return;\n    }\n    intact.sort(function(a, b) {return a.from - b.from;});\n\n    // Avoid crashing on IE's \"unspecified error\" when in iframes\n    try {\n      var focused = document.activeElement;\n    } catch(e) {}\n    if (intactLines < (to - from) * .7) display.lineDiv.style.display = \"none\";\n    patchDisplay(cm, from, to, intact, positionsChangedFrom);\n    display.lineDiv.style.display = \"\";\n    if (focused && document.activeElement != focused && focused.offsetHeight) focused.focus();\n\n    var different = from != display.showingFrom || to != display.showingTo ||\n      display.lastSizeC != display.wrapper.clientHeight;\n    // This is just a bogus formula that detects when the editor is\n    // resized or the font size changes.\n    if (different) {\n      display.lastSizeC = display.wrapper.clientHeight;\n      startWorker(cm, 400);\n    }\n    display.showingFrom = from; display.showingTo = to;\n\n    updateHeightsInViewport(cm);\n    updateViewOffset(cm);\n\n    return true;\n  }\n\n  function updateHeightsInViewport(cm) {\n    var display = cm.display;\n    var prevBottom = display.lineDiv.offsetTop;\n    for (var node = display.lineDiv.firstChild, height; node; node = node.nextSibling) if (node.lineObj) {\n      if (ie_lt8) {\n        var bot = node.offsetTop + node.offsetHeight;\n        height = bot - prevBottom;\n        prevBottom = bot;\n      } else {\n        var box = getRect(node);\n        height = box.bottom - box.top;\n      }\n      var diff = node.lineObj.height - height;\n      if (height < 2) height = textHeight(display);\n      if (diff > .001 || diff < -.001) {\n        updateLineHeight(node.lineObj, height);\n        var widgets = node.lineObj.widgets;\n        if (widgets) for (var i = 0; i < widgets.length; ++i)\n          widgets[i].height = widgets[i].node.offsetHeight;\n      }\n    }\n  }\n\n  function updateViewOffset(cm) {\n    var off = cm.display.viewOffset = heightAtLine(cm, getLine(cm.doc, cm.display.showingFrom));\n    // Position the mover div to align with the current virtual scroll position\n    cm.display.mover.style.top = off + \"px\";\n  }\n\n  function computeIntact(intact, changes) {\n    for (var i = 0, l = changes.length || 0; i < l; ++i) {\n      var change = changes[i], intact2 = [], diff = change.diff || 0;\n      for (var j = 0, l2 = intact.length; j < l2; ++j) {\n        var range = intact[j];\n        if (change.to <= range.from && change.diff) {\n          intact2.push({from: range.from + diff, to: range.to + diff});\n        } else if (change.to <= range.from || change.from >= range.to) {\n          intact2.push(range);\n        } else {\n          if (change.from > range.from)\n            intact2.push({from: range.from, to: change.from});\n          if (change.to < range.to)\n            intact2.push({from: change.to + diff, to: range.to + diff});\n        }\n      }\n      intact = intact2;\n    }\n    return intact;\n  }\n\n  function getDimensions(cm) {\n    var d = cm.display, left = {}, width = {};\n    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n      left[cm.options.gutters[i]] = n.offsetLeft;\n      width[cm.options.gutters[i]] = n.offsetWidth;\n    }\n    return {fixedPos: compensateForHScroll(d),\n            gutterTotalWidth: d.gutters.offsetWidth,\n            gutterLeft: left,\n            gutterWidth: width,\n            wrapperWidth: d.wrapper.clientWidth};\n  }\n\n  function patchDisplay(cm, from, to, intact, updateNumbersFrom) {\n    var dims = getDimensions(cm);\n    var display = cm.display, lineNumbers = cm.options.lineNumbers;\n    if (!intact.length && (!webkit || !cm.display.currentWheelTarget))\n      removeChildren(display.lineDiv);\n    var container = display.lineDiv, cur = container.firstChild;\n\n    function rm(node) {\n      var next = node.nextSibling;\n      if (webkit && mac && cm.display.currentWheelTarget == node) {\n        node.style.display = \"none\";\n        node.lineObj = null;\n      } else {\n        node.parentNode.removeChild(node);\n      }\n      return next;\n    }\n\n    var nextIntact = intact.shift(), lineN = from;\n    cm.doc.iter(from, to, function(line) {\n      if (nextIntact && nextIntact.to == lineN) nextIntact = intact.shift();\n      if (lineIsHidden(cm.doc, line)) {\n        if (line.height != 0) updateLineHeight(line, 0);\n        if (line.widgets && cur && cur.previousSibling) for (var i = 0; i < line.widgets.length; ++i) {\n          var w = line.widgets[i];\n          if (w.showIfHidden) {\n            var prev = cur.previousSibling;\n            if (/pre/i.test(prev.nodeName)) {\n              var wrap = elt(\"div\", null, null, \"position: relative\");\n              prev.parentNode.replaceChild(wrap, prev);\n              wrap.appendChild(prev);\n              prev = wrap;\n            }\n            var wnode = prev.appendChild(elt(\"div\", [w.node], \"CodeMirror-linewidget\"));\n            if (!w.handleMouseEvents) wnode.ignoreEvents = true;\n            positionLineWidget(w, wnode, prev, dims);\n          }\n        }\n      } else if (nextIntact && nextIntact.from <= lineN && nextIntact.to > lineN) {\n        // This line is intact. Skip to the actual node. Update its\n        // line number if needed.\n        while (cur.lineObj != line) cur = rm(cur);\n        if (lineNumbers && updateNumbersFrom <= lineN && cur.lineNumber)\n          setTextContent(cur.lineNumber, lineNumberFor(cm.options, lineN));\n        cur = cur.nextSibling;\n      } else {\n        // For lines with widgets, make an attempt to find and reuse\n        // the existing element, so that widgets aren't needlessly\n        // removed and re-inserted into the dom\n        if (line.widgets) for (var j = 0, search = cur, reuse; search && j < 20; ++j, search = search.nextSibling)\n          if (search.lineObj == line && /div/i.test(search.nodeName)) { reuse = search; break; }\n        // This line needs to be generated.\n        var lineNode = buildLineElement(cm, line, lineN, dims, reuse);\n        if (lineNode != reuse) {\n          container.insertBefore(lineNode, cur);\n        } else {\n          while (cur != reuse) cur = rm(cur);\n          cur = cur.nextSibling;\n        }\n\n        lineNode.lineObj = line;\n      }\n      ++lineN;\n    });\n    while (cur) cur = rm(cur);\n  }\n\n  function buildLineElement(cm, line, lineNo, dims, reuse) {\n    var built = buildLineContent(cm, line), lineElement = built.pre;\n    var markers = line.gutterMarkers, display = cm.display, wrap;\n\n    var bgClass = built.bgClass ? built.bgClass + \" \" + (line.bgClass || \"\") : line.bgClass;\n    if (!cm.options.lineNumbers && !markers && !bgClass && !line.wrapClass && !line.widgets)\n      return lineElement;\n\n    // Lines with gutter elements, widgets or a background class need\n    // to be wrapped again, and have the extra elements added to the\n    // wrapper div\n\n    if (reuse) {\n      reuse.alignable = null;\n      var isOk = true, widgetsSeen = 0, insertBefore = null;\n      for (var n = reuse.firstChild, next; n; n = next) {\n        next = n.nextSibling;\n        if (!/\\bCodeMirror-linewidget\\b/.test(n.className)) {\n          reuse.removeChild(n);\n        } else {\n          for (var i = 0; i < line.widgets.length; ++i) {\n            var widget = line.widgets[i];\n            if (widget.node == n.firstChild) {\n              if (!widget.above && !insertBefore) insertBefore = n;\n              positionLineWidget(widget, n, reuse, dims);\n              ++widgetsSeen;\n              break;\n            }\n          }\n          if (i == line.widgets.length) { isOk = false; break; }\n        }\n      }\n      reuse.insertBefore(lineElement, insertBefore);\n      if (isOk && widgetsSeen == line.widgets.length) {\n        wrap = reuse;\n        reuse.className = line.wrapClass || \"\";\n      }\n    }\n    if (!wrap) {\n      wrap = elt(\"div\", null, line.wrapClass, \"position: relative\");\n      wrap.appendChild(lineElement);\n    }\n    // Kludge to make sure the styled element lies behind the selection (by z-index)\n    if (bgClass)\n      wrap.insertBefore(elt(\"div\", null, bgClass + \" CodeMirror-linebackground\"), wrap.firstChild);\n    if (cm.options.lineNumbers || markers) {\n      var gutterWrap = wrap.insertBefore(elt(\"div\", null, null, \"position: absolute; left: \" +\n                                             (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"),\n                                         wrap.firstChild);\n      if (cm.options.fixedGutter) (wrap.alignable || (wrap.alignable = [])).push(gutterWrap);\n      if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n        wrap.lineNumber = gutterWrap.appendChild(\n          elt(\"div\", lineNumberFor(cm.options, lineNo),\n              \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n              \"left: \" + dims.gutterLeft[\"CodeMirror-linenumbers\"] + \"px; width: \"\n              + display.lineNumInnerWidth + \"px\"));\n      if (markers)\n        for (var k = 0; k < cm.options.gutters.length; ++k) {\n          var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];\n          if (found)\n            gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\", \"left: \" +\n                                       dims.gutterLeft[id] + \"px; width: \" + dims.gutterWidth[id] + \"px\"));\n        }\n    }\n    if (ie_lt8) wrap.style.zIndex = 2;\n    if (line.widgets && wrap != reuse) for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n      var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\");\n      if (!widget.handleMouseEvents) node.ignoreEvents = true;\n      positionLineWidget(widget, node, wrap, dims);\n      if (widget.above)\n        wrap.insertBefore(node, cm.options.lineNumbers && line.height != 0 ? gutterWrap : lineElement);\n      else\n        wrap.appendChild(node);\n      signalLater(widget, \"redraw\");\n    }\n    return wrap;\n  }\n\n  function positionLineWidget(widget, node, wrap, dims) {\n    if (widget.noHScroll) {\n      (wrap.alignable || (wrap.alignable = [])).push(node);\n      var width = dims.wrapperWidth;\n      node.style.left = dims.fixedPos + \"px\";\n      if (!widget.coverGutter) {\n        width -= dims.gutterTotalWidth;\n        node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n      }\n      node.style.width = width + \"px\";\n    }\n    if (widget.coverGutter) {\n      node.style.zIndex = 5;\n      node.style.position = \"relative\";\n      if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + \"px\";\n    }\n  }\n\n  // SELECTION / CURSOR\n\n  function updateSelection(cm) {\n    var display = cm.display;\n    var collapsed = posEq(cm.doc.sel.from, cm.doc.sel.to);\n    if (collapsed || cm.options.showCursorWhenSelecting)\n      updateSelectionCursor(cm);\n    else\n      display.cursor.style.display = display.otherCursor.style.display = \"none\";\n    if (!collapsed)\n      updateSelectionRange(cm);\n    else\n      display.selectionDiv.style.display = \"none\";\n\n    // Move the hidden textarea near the cursor to prevent scrolling artifacts\n    if (cm.options.moveInputWithCursor) {\n      var headPos = cursorCoords(cm, cm.doc.sel.head, \"div\");\n      var wrapOff = getRect(display.wrapper), lineOff = getRect(display.lineDiv);\n      display.inputDiv.style.top = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n                                                        headPos.top + lineOff.top - wrapOff.top)) + \"px\";\n      display.inputDiv.style.left = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n                                                         headPos.left + lineOff.left - wrapOff.left)) + \"px\";\n    }\n  }\n\n  // No selection, plain cursor\n  function updateSelectionCursor(cm) {\n    var display = cm.display, pos = cursorCoords(cm, cm.doc.sel.head, \"div\");\n    display.cursor.style.left = pos.left + \"px\";\n    display.cursor.style.top = pos.top + \"px\";\n    display.cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n    display.cursor.style.display = \"\";\n\n    if (pos.other) {\n      display.otherCursor.style.display = \"\";\n      display.otherCursor.style.left = pos.other.left + \"px\";\n      display.otherCursor.style.top = pos.other.top + \"px\";\n      display.otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n    } else { display.otherCursor.style.display = \"none\"; }\n  }\n\n  // Highlight selection\n  function updateSelectionRange(cm) {\n    var display = cm.display, doc = cm.doc, sel = cm.doc.sel;\n    var fragment = document.createDocumentFragment();\n    var clientWidth = display.lineSpace.offsetWidth, pl = paddingLeft(cm.display);\n\n    function add(left, top, width, bottom) {\n      if (top < 0) top = 0;\n      fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", \"position: absolute; left: \" + left +\n                               \"px; top: \" + top + \"px; width: \" + (width == null ? clientWidth - left : width) +\n                               \"px; height: \" + (bottom - top) + \"px\"));\n    }\n\n    function drawForLine(line, fromArg, toArg) {\n      var lineObj = getLine(doc, line);\n      var lineLen = lineObj.text.length;\n      var start, end;\n      function coords(ch, bias) {\n        return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias);\n      }\n\n      iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {\n        var leftPos = coords(from, \"left\"), rightPos, left, right;\n        if (from == to) {\n          rightPos = leftPos;\n          left = right = leftPos.left;\n        } else {\n          rightPos = coords(to - 1, \"right\");\n          if (dir == \"rtl\") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }\n          left = leftPos.left;\n          right = rightPos.right;\n        }\n        if (fromArg == null && from == 0) left = pl;\n        if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part\n          add(left, leftPos.top, null, leftPos.bottom);\n          left = pl;\n          if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);\n        }\n        if (toArg == null && to == lineLen) right = clientWidth;\n        if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)\n          start = leftPos;\n        if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)\n          end = rightPos;\n        if (left < pl + 1) left = pl;\n        add(left, rightPos.top, right - left, rightPos.bottom);\n      });\n      return {start: start, end: end};\n    }\n\n    if (sel.from.line == sel.to.line) {\n      drawForLine(sel.from.line, sel.from.ch, sel.to.ch);\n    } else {\n      var fromLine = getLine(doc, sel.from.line), toLine = getLine(doc, sel.to.line);\n      var singleVLine = visualLine(doc, fromLine) == visualLine(doc, toLine);\n      var leftEnd = drawForLine(sel.from.line, sel.from.ch, singleVLine ? fromLine.text.length : null).end;\n      var rightStart = drawForLine(sel.to.line, singleVLine ? 0 : null, sel.to.ch).start;\n      if (singleVLine) {\n        if (leftEnd.top < rightStart.top - 2) {\n          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n          add(pl, rightStart.top, rightStart.left, rightStart.bottom);\n        } else {\n          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n        }\n      }\n      if (leftEnd.bottom < rightStart.top)\n        add(pl, leftEnd.bottom, null, rightStart.top);\n    }\n\n    removeChildrenAndAdd(display.selectionDiv, fragment);\n    display.selectionDiv.style.display = \"\";\n  }\n\n  // Cursor-blinking\n  function restartBlink(cm) {\n    if (!cm.state.focused) return;\n    var display = cm.display;\n    clearInterval(display.blinker);\n    var on = true;\n    display.cursor.style.visibility = display.otherCursor.style.visibility = \"\";\n    if (cm.options.cursorBlinkRate > 0)\n      display.blinker = setInterval(function() {\n        display.cursor.style.visibility = display.otherCursor.style.visibility = (on = !on) ? \"\" : \"hidden\";\n      }, cm.options.cursorBlinkRate);\n  }\n\n  // HIGHLIGHT WORKER\n\n  function startWorker(cm, time) {\n    if (cm.doc.mode.startState && cm.doc.frontier < cm.display.showingTo)\n      cm.state.highlight.set(time, bind(highlightWorker, cm));\n  }\n\n  function highlightWorker(cm) {\n    var doc = cm.doc;\n    if (doc.frontier < doc.first) doc.frontier = doc.first;\n    if (doc.frontier >= cm.display.showingTo) return;\n    var end = +new Date + cm.options.workTime;\n    var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));\n    var changed = [], prevChange;\n    doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.showingTo + 500), function(line) {\n      if (doc.frontier >= cm.display.showingFrom) { // Visible\n        var oldStyles = line.styles;\n        line.styles = highlightLine(cm, line, state, true);\n        var ischange = !oldStyles || oldStyles.length != line.styles.length;\n        for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];\n        if (ischange) {\n          if (prevChange && prevChange.end == doc.frontier) prevChange.end++;\n          else changed.push(prevChange = {start: doc.frontier, end: doc.frontier + 1});\n        }\n        line.stateAfter = copyState(doc.mode, state);\n      } else {\n        processLine(cm, line.text, state);\n        line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;\n      }\n      ++doc.frontier;\n      if (+new Date > end) {\n        startWorker(cm, cm.options.workDelay);\n        return true;\n      }\n    });\n    if (changed.length)\n      operation(cm, function() {\n        for (var i = 0; i < changed.length; ++i)\n          regChange(this, changed[i].start, changed[i].end);\n      })();\n  }\n\n  // Finds the line to start with when starting a parse. Tries to\n  // find a line with a stateAfter, so that it can start with a\n  // valid state. If that fails, it returns the line with the\n  // smallest indentation, which tends to need the least context to\n  // parse correctly.\n  function findStartLine(cm, n, precise) {\n    var minindent, minline, doc = cm.doc;\n    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n    for (var search = n; search > lim; --search) {\n      if (search <= doc.first) return doc.first;\n      var line = getLine(doc, search - 1);\n      if (line.stateAfter && (!precise || search <= doc.frontier)) return search;\n      var indented = countColumn(line.text, null, cm.options.tabSize);\n      if (minline == null || minindent > indented) {\n        minline = search - 1;\n        minindent = indented;\n      }\n    }\n    return minline;\n  }\n\n  function getStateBefore(cm, n, precise) {\n    var doc = cm.doc, display = cm.display;\n    if (!doc.mode.startState) return true;\n    var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;\n    if (!state) state = startState(doc.mode);\n    else state = copyState(doc.mode, state);\n    doc.iter(pos, n, function(line) {\n      processLine(cm, line.text, state);\n      var save = pos == n - 1 || pos % 5 == 0 || pos >= display.showingFrom && pos < display.showingTo;\n      line.stateAfter = save ? copyState(doc.mode, state) : null;\n      ++pos;\n    });\n    if (precise) doc.frontier = pos;\n    return state;\n  }\n\n  // POSITION MEASUREMENT\n\n  function paddingTop(display) {return display.lineSpace.offsetTop;}\n  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}\n  function paddingLeft(display) {\n    var e = removeChildrenAndAdd(display.measure, elt(\"pre\", null, null, \"text-align: left\")).appendChild(elt(\"span\", \"x\"));\n    return e.offsetLeft;\n  }\n\n  function measureChar(cm, line, ch, data, bias) {\n    var dir = -1;\n    data = data || measureLine(cm, line);\n    if (data.crude) {\n      var left = data.left + ch * data.width;\n      return {left: left, right: left + data.width, top: data.top, bottom: data.bottom};\n    }\n\n    for (var pos = ch;; pos += dir) {\n      var r = data[pos];\n      if (r) break;\n      if (dir < 0 && pos == 0) dir = 1;\n    }\n    bias = pos > ch ? \"left\" : pos < ch ? \"right\" : bias;\n    if (bias == \"left\" && r.leftSide) r = r.leftSide;\n    else if (bias == \"right\" && r.rightSide) r = r.rightSide;\n    return {left: pos < ch ? r.right : r.left,\n            right: pos > ch ? r.left : r.right,\n            top: r.top,\n            bottom: r.bottom};\n  }\n\n  function findCachedMeasurement(cm, line) {\n    var cache = cm.display.measureLineCache;\n    for (var i = 0; i < cache.length; ++i) {\n      var memo = cache[i];\n      if (memo.text == line.text && memo.markedSpans == line.markedSpans &&\n          cm.display.scroller.clientWidth == memo.width &&\n          memo.classes == line.textClass + \"|\" + line.wrapClass)\n        return memo;\n    }\n  }\n\n  function clearCachedMeasurement(cm, line) {\n    var exists = findCachedMeasurement(cm, line);\n    if (exists) exists.text = exists.measure = exists.markedSpans = null;\n  }\n\n  function measureLine(cm, line) {\n    // First look in the cache\n    var cached = findCachedMeasurement(cm, line);\n    if (cached) return cached.measure;\n\n    // Failing that, recompute and store result in cache\n    var measure = measureLineInner(cm, line);\n    var cache = cm.display.measureLineCache;\n    var memo = {text: line.text, width: cm.display.scroller.clientWidth,\n                markedSpans: line.markedSpans, measure: measure,\n                classes: line.textClass + \"|\" + line.wrapClass};\n    if (cache.length == 16) cache[++cm.display.measureLineCachePos % 16] = memo;\n    else cache.push(memo);\n    return measure;\n  }\n\n  function measureLineInner(cm, line) {\n    if (!cm.options.lineWrapping && line.text.length >= cm.options.crudeMeasuringFrom)\n      return crudelyMeasureLine(cm, line);\n\n    var display = cm.display, measure = emptyArray(line.text.length);\n    var pre = buildLineContent(cm, line, measure, true).pre;\n\n    // IE does not cache element positions of inline elements between\n    // calls to getBoundingClientRect. This makes the loop below,\n    // which gathers the positions of all the characters on the line,\n    // do an amount of layout work quadratic to the number of\n    // characters. When line wrapping is off, we try to improve things\n    // by first subdividing the line into a bunch of inline blocks, so\n    // that IE can reuse most of the layout information from caches\n    // for those blocks. This does interfere with line wrapping, so it\n    // doesn't work when wrapping is on, but in that case the\n    // situation is slightly better, since IE does cache line-wrapping\n    // information and only recomputes per-line.\n    if (ie && !ie_lt8 && !cm.options.lineWrapping && pre.childNodes.length > 100) {\n      var fragment = document.createDocumentFragment();\n      var chunk = 10, n = pre.childNodes.length;\n      for (var i = 0, chunks = Math.ceil(n / chunk); i < chunks; ++i) {\n        var wrap = elt(\"div\", null, null, \"display: inline-block\");\n        for (var j = 0; j < chunk && n; ++j) {\n          wrap.appendChild(pre.firstChild);\n          --n;\n        }\n        fragment.appendChild(wrap);\n      }\n      pre.appendChild(fragment);\n    }\n\n    removeChildrenAndAdd(display.measure, pre);\n\n    var outer = getRect(display.lineDiv);\n    var vranges = [], data = emptyArray(line.text.length), maxBot = pre.offsetHeight;\n    // Work around an IE7/8 bug where it will sometimes have randomly\n    // replaced our pre with a clone at this point.\n    if (ie_lt9 && display.measure.first != pre)\n      removeChildrenAndAdd(display.measure, pre);\n\n    function measureRect(rect) {\n      var top = rect.top - outer.top, bot = rect.bottom - outer.top;\n      if (bot > maxBot) bot = maxBot;\n      if (top < 0) top = 0;\n      for (var i = vranges.length - 2; i >= 0; i -= 2) {\n        var rtop = vranges[i], rbot = vranges[i+1];\n        if (rtop > bot || rbot < top) continue;\n        if (rtop <= top && rbot >= bot ||\n            top <= rtop && bot >= rbot ||\n            Math.min(bot, rbot) - Math.max(top, rtop) >= (bot - top) >> 1) {\n          vranges[i] = Math.min(top, rtop);\n          vranges[i+1] = Math.max(bot, rbot);\n          break;\n        }\n      }\n      if (i < 0) { i = vranges.length; vranges.push(top, bot); }\n      return {left: rect.left - outer.left,\n              right: rect.right - outer.left,\n              top: i, bottom: null};\n    }\n    function finishRect(rect) {\n      rect.bottom = vranges[rect.top+1];\n      rect.top = vranges[rect.top];\n    }\n\n    for (var i = 0, cur; i < measure.length; ++i) if (cur = measure[i]) {\n      var node = cur, rect = null;\n      // A widget might wrap, needs special care\n      if (/\\bCodeMirror-widget\\b/.test(cur.className) && cur.getClientRects) {\n        if (cur.firstChild.nodeType == 1) node = cur.firstChild;\n        var rects = node.getClientRects();\n        if (rects.length > 1) {\n          rect = data[i] = measureRect(rects[0]);\n          rect.rightSide = measureRect(rects[rects.length - 1]);\n        }\n      }\n      if (!rect) rect = data[i] = measureRect(getRect(node));\n      if (cur.measureRight) rect.right = getRect(cur.measureRight).left;\n      if (cur.leftSide) rect.leftSide = measureRect(getRect(cur.leftSide));\n    }\n    removeChildren(cm.display.measure);\n    for (var i = 0, cur; i < data.length; ++i) if (cur = data[i]) {\n      finishRect(cur);\n      if (cur.leftSide) finishRect(cur.leftSide);\n      if (cur.rightSide) finishRect(cur.rightSide);\n    }\n    return data;\n  }\n\n  function crudelyMeasureLine(cm, line) {\n    var copy = new Line(line.text.slice(0, 100), null);\n    if (line.textClass) copy.textClass = line.textClass;\n    var measure = measureLineInner(cm, copy);\n    var left = measureChar(cm, copy, 0, measure, \"left\");\n    var right = measureChar(cm, copy, 99, measure, \"right\");\n    return {crude: true, top: left.top, left: left.left, bottom: left.bottom, width: (right.right - left.left) / 100};\n  }\n\n  function measureLineWidth(cm, line) {\n    var hasBadSpan = false;\n    if (line.markedSpans) for (var i = 0; i < line.markedSpans; ++i) {\n      var sp = line.markedSpans[i];\n      if (sp.collapsed && (sp.to == null || sp.to == line.text.length)) hasBadSpan = true;\n    }\n    var cached = !hasBadSpan && findCachedMeasurement(cm, line);\n    if (cached || line.text.length >= cm.options.crudeMeasuringFrom)\n      return measureChar(cm, line, line.text.length, cached && cached.measure, \"right\").right;\n\n    var pre = buildLineContent(cm, line, null, true).pre;\n    var end = pre.appendChild(zeroWidthElement(cm.display.measure));\n    removeChildrenAndAdd(cm.display.measure, pre);\n    return getRect(end).right - getRect(cm.display.lineDiv).left;\n  }\n\n  function clearCaches(cm) {\n    cm.display.measureLineCache.length = cm.display.measureLineCachePos = 0;\n    cm.display.cachedCharWidth = cm.display.cachedTextHeight = null;\n    if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;\n    cm.display.lineNumChars = null;\n  }\n\n  function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }\n  function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }\n\n  // Context is one of \"line\", \"div\" (display.lineDiv), \"local\"/null (editor), or \"page\"\n  function intoCoordSystem(cm, lineObj, rect, context) {\n    if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {\n      var size = widgetHeight(lineObj.widgets[i]);\n      rect.top += size; rect.bottom += size;\n    }\n    if (context == \"line\") return rect;\n    if (!context) context = \"local\";\n    var yOff = heightAtLine(cm, lineObj);\n    if (context == \"local\") yOff += paddingTop(cm.display);\n    else yOff -= cm.display.viewOffset;\n    if (context == \"page\" || context == \"window\") {\n      var lOff = getRect(cm.display.lineSpace);\n      yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n      var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n      rect.left += xOff; rect.right += xOff;\n    }\n    rect.top += yOff; rect.bottom += yOff;\n    return rect;\n  }\n\n  // Context may be \"window\", \"page\", \"div\", or \"local\"/null\n  // Result is in \"div\" coords\n  function fromCoordSystem(cm, coords, context) {\n    if (context == \"div\") return coords;\n    var left = coords.left, top = coords.top;\n    // First move into \"page\" coordinate system\n    if (context == \"page\") {\n      left -= pageScrollX();\n      top -= pageScrollY();\n    } else if (context == \"local\" || !context) {\n      var localBox = getRect(cm.display.sizer);\n      left += localBox.left;\n      top += localBox.top;\n    }\n\n    var lineSpaceBox = getRect(cm.display.lineSpace);\n    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};\n  }\n\n  function charCoords(cm, pos, context, lineObj, bias) {\n    if (!lineObj) lineObj = getLine(cm.doc, pos.line);\n    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, null, bias), context);\n  }\n\n  function cursorCoords(cm, pos, context, lineObj, measurement) {\n    lineObj = lineObj || getLine(cm.doc, pos.line);\n    if (!measurement) measurement = measureLine(cm, lineObj);\n    function get(ch, right) {\n      var m = measureChar(cm, lineObj, ch, measurement, right ? \"right\" : \"left\");\n      if (right) m.left = m.right; else m.right = m.left;\n      return intoCoordSystem(cm, lineObj, m, context);\n    }\n    function getBidi(ch, partPos) {\n      var part = order[partPos], right = part.level % 2;\n      if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {\n        part = order[--partPos];\n        ch = bidiRight(part) - (part.level % 2 ? 0 : 1);\n        right = true;\n      } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {\n        part = order[++partPos];\n        ch = bidiLeft(part) - part.level % 2;\n        right = false;\n      }\n      if (right && ch == part.to && ch > part.from) return get(ch - 1);\n      return get(ch, right);\n    }\n    var order = getOrder(lineObj), ch = pos.ch;\n    if (!order) return get(ch);\n    var partPos = getBidiPartAt(order, ch);\n    var val = getBidi(ch, partPos);\n    if (bidiOther != null) val.other = getBidi(ch, bidiOther);\n    return val;\n  }\n\n  function PosWithInfo(line, ch, outside, xRel) {\n    var pos = new Pos(line, ch);\n    pos.xRel = xRel;\n    if (outside) pos.outside = true;\n    return pos;\n  }\n\n  // Coords must be lineSpace-local\n  function coordsChar(cm, x, y) {\n    var doc = cm.doc;\n    y += cm.display.viewOffset;\n    if (y < 0) return PosWithInfo(doc.first, 0, true, -1);\n    var lineNo = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n    if (lineNo > last)\n      return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);\n    if (x < 0) x = 0;\n\n    for (;;) {\n      var lineObj = getLine(doc, lineNo);\n      var found = coordsCharInner(cm, lineObj, lineNo, x, y);\n      var merged = collapsedSpanAtEnd(lineObj);\n      var mergedPos = merged && merged.find();\n      if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))\n        lineNo = mergedPos.to.line;\n      else\n        return found;\n    }\n  }\n\n  function coordsCharInner(cm, lineObj, lineNo, x, y) {\n    var innerOff = y - heightAtLine(cm, lineObj);\n    var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;\n    var measurement = measureLine(cm, lineObj);\n\n    function getX(ch) {\n      var sp = cursorCoords(cm, Pos(lineNo, ch), \"line\",\n                            lineObj, measurement);\n      wrongLine = true;\n      if (innerOff > sp.bottom) return sp.left - adjust;\n      else if (innerOff < sp.top) return sp.left + adjust;\n      else wrongLine = false;\n      return sp.left;\n    }\n\n    var bidi = getOrder(lineObj), dist = lineObj.text.length;\n    var from = lineLeft(lineObj), to = lineRight(lineObj);\n    var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;\n\n    if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);\n    // Do a binary search between these bounds.\n    for (;;) {\n      if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {\n        var ch = x < fromX || x - fromX <= toX - x ? from : to;\n        var xDiff = x - (ch == from ? fromX : toX);\n        while (isExtendingChar.test(lineObj.text.charAt(ch))) ++ch;\n        var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside,\n                              xDiff < 0 ? -1 : xDiff ? 1 : 0);\n        return pos;\n      }\n      var step = Math.ceil(dist / 2), middle = from + step;\n      if (bidi) {\n        middle = from;\n        for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);\n      }\n      var middleX = getX(middle);\n      if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}\n      else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}\n    }\n  }\n\n  var measureText;\n  function textHeight(display) {\n    if (display.cachedTextHeight != null) return display.cachedTextHeight;\n    if (measureText == null) {\n      measureText = elt(\"pre\");\n      // Measure a bunch of lines, for browsers that compute\n      // fractional heights.\n      for (var i = 0; i < 49; ++i) {\n        measureText.appendChild(document.createTextNode(\"x\"));\n        measureText.appendChild(elt(\"br\"));\n      }\n      measureText.appendChild(document.createTextNode(\"x\"));\n    }\n    removeChildrenAndAdd(display.measure, measureText);\n    var height = measureText.offsetHeight / 50;\n    if (height > 3) display.cachedTextHeight = height;\n    removeChildren(display.measure);\n    return height || 1;\n  }\n\n  function charWidth(display) {\n    if (display.cachedCharWidth != null) return display.cachedCharWidth;\n    var anchor = elt(\"span\", \"x\");\n    var pre = elt(\"pre\", [anchor]);\n    removeChildrenAndAdd(display.measure, pre);\n    var width = anchor.offsetWidth;\n    if (width > 2) display.cachedCharWidth = width;\n    return width || 10;\n  }\n\n  // OPERATIONS\n\n  // Operations are used to wrap changes in such a way that each\n  // change won't have to update the cursor and display (which would\n  // be awkward, slow, and error-prone), but instead updates are\n  // batched and then all combined and executed at once.\n\n  var nextOpId = 0;\n  function startOperation(cm) {\n    cm.curOp = {\n      // An array of ranges of lines that have to be updated. See\n      // updateDisplay.\n      changes: [],\n      forceUpdate: false,\n      updateInput: null,\n      userSelChange: null,\n      textChanged: null,\n      selectionChanged: false,\n      cursorActivity: false,\n      updateMaxLine: false,\n      updateScrollPos: false,\n      id: ++nextOpId\n    };\n    if (!delayedCallbackDepth++) delayedCallbacks = [];\n  }\n\n  function endOperation(cm) {\n    var op = cm.curOp, doc = cm.doc, display = cm.display;\n    cm.curOp = null;\n\n    if (op.updateMaxLine) computeMaxLength(cm);\n    if (display.maxLineChanged && !cm.options.lineWrapping && display.maxLine) {\n      var width = measureLineWidth(cm, display.maxLine);\n      display.sizer.style.minWidth = Math.max(0, width + 3 + scrollerCutOff) + \"px\";\n      display.maxLineChanged = false;\n      var maxScrollLeft = Math.max(0, display.sizer.offsetLeft + display.sizer.offsetWidth - display.scroller.clientWidth);\n      if (maxScrollLeft < doc.scrollLeft && !op.updateScrollPos)\n        setScrollLeft(cm, Math.min(display.scroller.scrollLeft, maxScrollLeft), true);\n    }\n    var newScrollPos, updated;\n    if (op.updateScrollPos) {\n      newScrollPos = op.updateScrollPos;\n    } else if (op.selectionChanged && display.scroller.clientHeight) { // don't rescroll if not visible\n      var coords = cursorCoords(cm, doc.sel.head);\n      newScrollPos = calculateScrollPos(cm, coords.left, coords.top, coords.left, coords.bottom);\n    }\n    if (op.changes.length || op.forceUpdate || newScrollPos && newScrollPos.scrollTop != null) {\n      updated = updateDisplay(cm, op.changes, newScrollPos && newScrollPos.scrollTop, op.forceUpdate);\n      if (cm.display.scroller.offsetHeight) cm.doc.scrollTop = cm.display.scroller.scrollTop;\n    }\n    if (!updated && op.selectionChanged) updateSelection(cm);\n    if (op.updateScrollPos) {\n      var top = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, newScrollPos.scrollTop));\n      var left = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, newScrollPos.scrollLeft));\n      display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = top;\n      display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = left;\n      alignHorizontally(cm);\n      if (op.scrollToPos)\n        scrollPosIntoView(cm, clipPos(cm.doc, op.scrollToPos.from),\n                          clipPos(cm.doc, op.scrollToPos.to), op.scrollToPos.margin);\n    } else if (newScrollPos) {\n      scrollCursorIntoView(cm);\n    }\n    if (op.selectionChanged) restartBlink(cm);\n\n    if (cm.state.focused && op.updateInput)\n      resetInput(cm, op.userSelChange);\n\n    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n    if (hidden) for (var i = 0; i < hidden.length; ++i)\n      if (!hidden[i].lines.length) signal(hidden[i], \"hide\");\n    if (unhidden) for (var i = 0; i < unhidden.length; ++i)\n      if (unhidden[i].lines.length) signal(unhidden[i], \"unhide\");\n\n    var delayed;\n    if (!--delayedCallbackDepth) {\n      delayed = delayedCallbacks;\n      delayedCallbacks = null;\n    }\n    if (op.textChanged)\n      signal(cm, \"change\", cm, op.textChanged);\n    if (op.cursorActivity) signal(cm, \"cursorActivity\", cm);\n    if (delayed) for (var i = 0; i < delayed.length; ++i) delayed[i]();\n  }\n\n  // Wraps a function in an operation. Returns the wrapped function.\n  function operation(cm1, f) {\n    return function() {\n      var cm = cm1 || this, withOp = !cm.curOp;\n      if (withOp) startOperation(cm);\n      try { var result = f.apply(cm, arguments); }\n      finally { if (withOp) endOperation(cm); }\n      return result;\n    };\n  }\n  function docOperation(f) {\n    return function() {\n      var withOp = this.cm && !this.cm.curOp, result;\n      if (withOp) startOperation(this.cm);\n      try { result = f.apply(this, arguments); }\n      finally { if (withOp) endOperation(this.cm); }\n      return result;\n    };\n  }\n  function runInOp(cm, f) {\n    var withOp = !cm.curOp, result;\n    if (withOp) startOperation(cm);\n    try { result = f(); }\n    finally { if (withOp) endOperation(cm); }\n    return result;\n  }\n\n  function regChange(cm, from, to, lendiff) {\n    if (from == null) from = cm.doc.first;\n    if (to == null) to = cm.doc.first + cm.doc.size;\n    cm.curOp.changes.push({from: from, to: to, diff: lendiff});\n  }\n\n  // INPUT HANDLING\n\n  function slowPoll(cm) {\n    if (cm.display.pollingFast) return;\n    cm.display.poll.set(cm.options.pollInterval, function() {\n      readInput(cm);\n      if (cm.state.focused) slowPoll(cm);\n    });\n  }\n\n  function fastPoll(cm) {\n    var missed = false;\n    cm.display.pollingFast = true;\n    function p() {\n      var changed = readInput(cm);\n      if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);}\n      else {cm.display.pollingFast = false; slowPoll(cm);}\n    }\n    cm.display.poll.set(20, p);\n  }\n\n  // prevInput is a hack to work with IME. If we reset the textarea\n  // on every change, that breaks IME. So we look for changes\n  // compared to the previous content instead. (Modern browsers have\n  // events that indicate IME taking place, but these are not widely\n  // supported or compatible enough yet to rely on.)\n  function readInput(cm) {\n    var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc, sel = doc.sel;\n    if (!cm.state.focused || hasSelection(input) || isReadOnly(cm) || cm.state.disableInput) return false;\n    if (cm.state.pasteIncoming && cm.state.fakedLastChar) {\n      input.value = input.value.substring(0, input.value.length - 1);\n      cm.state.fakedLastChar = false;\n    }\n    var text = input.value;\n    if (text == prevInput && posEq(sel.from, sel.to)) return false;\n    if (ie && !ie_lt9 && cm.display.inputHasSelection === text) {\n      resetInput(cm, true);\n      return false;\n    }\n\n    var withOp = !cm.curOp;\n    if (withOp) startOperation(cm);\n    sel.shift = false;\n    var same = 0, l = Math.min(prevInput.length, text.length);\n    while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;\n    var from = sel.from, to = sel.to;\n    if (same < prevInput.length)\n      from = Pos(from.line, from.ch - (prevInput.length - same));\n    else if (cm.state.overwrite && posEq(from, to) && !cm.state.pasteIncoming)\n      to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + (text.length - same)));\n\n    var updateInput = cm.curOp.updateInput;\n    var changeEvent = {from: from, to: to, text: splitLines(text.slice(same)),\n                       origin: cm.state.pasteIncoming ? \"paste\" : \"+input\"};\n    makeChange(cm.doc, changeEvent, \"end\");\n    cm.curOp.updateInput = updateInput;\n    signalLater(cm, \"inputRead\", cm, changeEvent);\n\n    if (text.length > 1000 || text.indexOf(\"\\n\") > -1) input.value = cm.display.prevInput = \"\";\n    else cm.display.prevInput = text;\n    if (withOp) endOperation(cm);\n    cm.state.pasteIncoming = false;\n    return true;\n  }\n\n  function resetInput(cm, user) {\n    var minimal, selected, doc = cm.doc;\n    if (!posEq(doc.sel.from, doc.sel.to)) {\n      cm.display.prevInput = \"\";\n      minimal = hasCopyEvent &&\n        (doc.sel.to.line - doc.sel.from.line > 100 || (selected = cm.getSelection()).length > 1000);\n      var content = minimal ? \"-\" : selected || cm.getSelection();\n      cm.display.input.value = content;\n      if (cm.state.focused) selectInput(cm.display.input);\n      if (ie && !ie_lt9) cm.display.inputHasSelection = content;\n    } else if (user) {\n      cm.display.prevInput = cm.display.input.value = \"\";\n      if (ie && !ie_lt9) cm.display.inputHasSelection = null;\n    }\n    cm.display.inaccurateSelection = minimal;\n  }\n\n  function focusInput(cm) {\n    if (cm.options.readOnly != \"nocursor\" && (!mobile || document.activeElement != cm.display.input))\n      cm.display.input.focus();\n  }\n\n  function isReadOnly(cm) {\n    return cm.options.readOnly || cm.doc.cantEdit;\n  }\n\n  // EVENT HANDLERS\n\n  function registerEventHandlers(cm) {\n    var d = cm.display;\n    on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n    if (ie)\n      on(d.scroller, \"dblclick\", operation(cm, function(e) {\n        if (signalDOMEvent(cm, e)) return;\n        var pos = posFromMouse(cm, e);\n        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;\n        e_preventDefault(e);\n        var word = findWordAt(getLine(cm.doc, pos.line).text, pos);\n        extendSelection(cm.doc, word.from, word.to);\n      }));\n    else\n      on(d.scroller, \"dblclick\", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });\n    on(d.lineSpace, \"selectstart\", function(e) {\n      if (!eventInWidget(d, e)) e_preventDefault(e);\n    });\n    // Gecko browsers fire contextmenu *after* opening the menu, at\n    // which point we can't mess with it anymore. Context menu is\n    // handled in onMouseDown for Gecko.\n    if (!captureMiddleClick) on(d.scroller, \"contextmenu\", function(e) {onContextMenu(cm, e);});\n\n    on(d.scroller, \"scroll\", function() {\n      if (d.scroller.clientHeight) {\n        setScrollTop(cm, d.scroller.scrollTop);\n        setScrollLeft(cm, d.scroller.scrollLeft, true);\n        signal(cm, \"scroll\", cm);\n      }\n    });\n    on(d.scrollbarV, \"scroll\", function() {\n      if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop);\n    });\n    on(d.scrollbarH, \"scroll\", function() {\n      if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft);\n    });\n\n    on(d.scroller, \"mousewheel\", function(e){onScrollWheel(cm, e);});\n    on(d.scroller, \"DOMMouseScroll\", function(e){onScrollWheel(cm, e);});\n\n    function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); }\n    on(d.scrollbarH, \"mousedown\", reFocus);\n    on(d.scrollbarV, \"mousedown\", reFocus);\n    // Prevent wrapper from ever scrolling\n    on(d.wrapper, \"scroll\", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n    var resizeTimer;\n    function onResize() {\n      if (resizeTimer == null) resizeTimer = setTimeout(function() {\n        resizeTimer = null;\n        // Might be a text scaling operation, clear size caches.\n        d.cachedCharWidth = d.cachedTextHeight = knownScrollbarWidth = null;\n        clearCaches(cm);\n        runInOp(cm, bind(regChange, cm));\n      }, 100);\n    }\n    on(window, \"resize\", onResize);\n    // Above handler holds on to the editor and its data structures.\n    // Here we poll to unregister it when the editor is no longer in\n    // the document, so that it can be garbage-collected.\n    function unregister() {\n      for (var p = d.wrapper.parentNode; p && p != document.body; p = p.parentNode) {}\n      if (p) setTimeout(unregister, 5000);\n      else off(window, \"resize\", onResize);\n    }\n    setTimeout(unregister, 5000);\n\n    on(d.input, \"keyup\", operation(cm, function(e) {\n      if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;\n      if (e.keyCode == 16) cm.doc.sel.shift = false;\n    }));\n    on(d.input, \"input\", function() {\n      if (ie && !ie_lt9 && cm.display.inputHasSelection) cm.display.inputHasSelection = null;\n      fastPoll(cm);\n    });\n    on(d.input, \"keydown\", operation(cm, onKeyDown));\n    on(d.input, \"keypress\", operation(cm, onKeyPress));\n    on(d.input, \"focus\", bind(onFocus, cm));\n    on(d.input, \"blur\", bind(onBlur, cm));\n\n    function drag_(e) {\n      if (signalDOMEvent(cm, e) || cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))) return;\n      e_stop(e);\n    }\n    if (cm.options.dragDrop) {\n      on(d.scroller, \"dragstart\", function(e){onDragStart(cm, e);});\n      on(d.scroller, \"dragenter\", drag_);\n      on(d.scroller, \"dragover\", drag_);\n      on(d.scroller, \"drop\", operation(cm, onDrop));\n    }\n    on(d.scroller, \"paste\", function(e) {\n      if (eventInWidget(d, e)) return;\n      focusInput(cm);\n      fastPoll(cm);\n    });\n    on(d.input, \"paste\", function() {\n      // Workaround for webkit bug https://bugs.webkit.org/show_bug.cgi?id=90206\n      // Add a char to the end of textarea before paste occur so that\n      // selection doesn't span to the end of textarea.\n      if (webkit && !cm.state.fakedLastChar && !(new Date - cm.state.lastMiddleDown < 200)) {\n        var start = d.input.selectionStart, end = d.input.selectionEnd;\n        d.input.value += \"$\";\n        d.input.selectionStart = start;\n        d.input.selectionEnd = end;\n        cm.state.fakedLastChar = true;\n      }\n      cm.state.pasteIncoming = true;\n      fastPoll(cm);\n    });\n\n    function prepareCopy() {\n      if (d.inaccurateSelection) {\n        d.prevInput = \"\";\n        d.inaccurateSelection = false;\n        d.input.value = cm.getSelection();\n        selectInput(d.input);\n      }\n    }\n    on(d.input, \"cut\", prepareCopy);\n    on(d.input, \"copy\", prepareCopy);\n\n    // Needed to handle Tab key in KHTML\n    if (khtml) on(d.sizer, \"mouseup\", function() {\n        if (document.activeElement == d.input) d.input.blur();\n        focusInput(cm);\n    });\n  }\n\n  function eventInWidget(display, e) {\n    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n      if (!n || n.ignoreEvents || n.parentNode == display.sizer && n != display.mover) return true;\n    }\n  }\n\n  function posFromMouse(cm, e, liberal) {\n    var display = cm.display;\n    if (!liberal) {\n      var target = e_target(e);\n      if (target == display.scrollbarH || target == display.scrollbarH.firstChild ||\n          target == display.scrollbarV || target == display.scrollbarV.firstChild ||\n          target == display.scrollbarFiller || target == display.gutterFiller) return null;\n    }\n    var x, y, space = getRect(display.lineSpace);\n    // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n    try { x = e.clientX; y = e.clientY; } catch (e) { return null; }\n    return coordsChar(cm, x - space.left, y - space.top);\n  }\n\n  var lastClick, lastDoubleClick;\n  function onMouseDown(e) {\n    if (signalDOMEvent(this, e)) return;\n    var cm = this, display = cm.display, doc = cm.doc, sel = doc.sel;\n    sel.shift = e.shiftKey;\n\n    if (eventInWidget(display, e)) {\n      if (!webkit) {\n        display.scroller.draggable = false;\n        setTimeout(function(){display.scroller.draggable = true;}, 100);\n      }\n      return;\n    }\n    if (clickInGutter(cm, e)) return;\n    var start = posFromMouse(cm, e);\n\n    switch (e_button(e)) {\n    case 3:\n      if (captureMiddleClick) onContextMenu.call(cm, cm, e);\n      return;\n    case 2:\n      if (webkit) cm.state.lastMiddleDown = +new Date;\n      if (start) extendSelection(cm.doc, start);\n      setTimeout(bind(focusInput, cm), 20);\n      e_preventDefault(e);\n      return;\n    }\n    // For button 1, if it was clicked inside the editor\n    // (posFromMouse returning non-null), we have to adjust the\n    // selection.\n    if (!start) {if (e_target(e) == display.scroller) e_preventDefault(e); return;}\n\n    if (!cm.state.focused) onFocus(cm);\n\n    var now = +new Date, type = \"single\";\n    if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) {\n      type = \"triple\";\n      e_preventDefault(e);\n      setTimeout(bind(focusInput, cm), 20);\n      selectLine(cm, start.line);\n    } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) {\n      type = \"double\";\n      lastDoubleClick = {time: now, pos: start};\n      e_preventDefault(e);\n      var word = findWordAt(getLine(doc, start.line).text, start);\n      extendSelection(cm.doc, word.from, word.to);\n    } else { lastClick = {time: now, pos: start}; }\n\n    var last = start;\n    if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && !posEq(sel.from, sel.to) &&\n        !posLess(start, sel.from) && !posLess(sel.to, start) && type == \"single\") {\n      var dragEnd = operation(cm, function(e2) {\n        if (webkit) display.scroller.draggable = false;\n        cm.state.draggingText = false;\n        off(document, \"mouseup\", dragEnd);\n        off(display.scroller, \"drop\", dragEnd);\n        if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {\n          e_preventDefault(e2);\n          extendSelection(cm.doc, start);\n          focusInput(cm);\n        }\n      });\n      // Let the drag handler handle this.\n      if (webkit) display.scroller.draggable = true;\n      cm.state.draggingText = dragEnd;\n      // IE's approach to draggable\n      if (display.scroller.dragDrop) display.scroller.dragDrop();\n      on(document, \"mouseup\", dragEnd);\n      on(display.scroller, \"drop\", dragEnd);\n      return;\n    }\n    e_preventDefault(e);\n    if (type == \"single\") extendSelection(cm.doc, clipPos(doc, start));\n\n    var startstart = sel.from, startend = sel.to, lastPos = start;\n\n    function doSelect(cur) {\n      if (posEq(lastPos, cur)) return;\n      lastPos = cur;\n\n      if (type == \"single\") {\n        extendSelection(cm.doc, clipPos(doc, start), cur);\n        return;\n      }\n\n      startstart = clipPos(doc, startstart);\n      startend = clipPos(doc, startend);\n      if (type == \"double\") {\n        var word = findWordAt(getLine(doc, cur.line).text, cur);\n        if (posLess(cur, startstart)) extendSelection(cm.doc, word.from, startend);\n        else extendSelection(cm.doc, startstart, word.to);\n      } else if (type == \"triple\") {\n        if (posLess(cur, startstart)) extendSelection(cm.doc, startend, clipPos(doc, Pos(cur.line, 0)));\n        else extendSelection(cm.doc, startstart, clipPos(doc, Pos(cur.line + 1, 0)));\n      }\n    }\n\n    var editorSize = getRect(display.wrapper);\n    // Used to ensure timeout re-tries don't fire when another extend\n    // happened in the meantime (clearTimeout isn't reliable -- at\n    // least on Chrome, the timeouts still happen even when cleared,\n    // if the clear happens after their scheduled firing time).\n    var counter = 0;\n\n    function extend(e) {\n      var curCount = ++counter;\n      var cur = posFromMouse(cm, e, true);\n      if (!cur) return;\n      if (!posEq(cur, last)) {\n        if (!cm.state.focused) onFocus(cm);\n        last = cur;\n        doSelect(cur);\n        var visible = visibleLines(display, doc);\n        if (cur.line >= visible.to || cur.line < visible.from)\n          setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);\n      } else {\n        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n        if (outside) setTimeout(operation(cm, function() {\n          if (counter != curCount) return;\n          display.scroller.scrollTop += outside;\n          extend(e);\n        }), 50);\n      }\n    }\n\n    function done(e) {\n      counter = Infinity;\n      e_preventDefault(e);\n      focusInput(cm);\n      off(document, \"mousemove\", move);\n      off(document, \"mouseup\", up);\n    }\n\n    var move = operation(cm, function(e) {\n      if (!ie && !e_button(e)) done(e);\n      else extend(e);\n    });\n    var up = operation(cm, done);\n    on(document, \"mousemove\", move);\n    on(document, \"mouseup\", up);\n  }\n\n  function gutterEvent(cm, e, type, prevent, signalfn) {\n    try { var mX = e.clientX, mY = e.clientY; }\n    catch(e) { return false; }\n    if (mX >= Math.floor(getRect(cm.display.gutters).right)) return false;\n    if (prevent) e_preventDefault(e);\n\n    var display = cm.display;\n    var lineBox = getRect(display.lineDiv);\n\n    if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);\n    mY -= lineBox.top - display.viewOffset;\n\n    for (var i = 0; i < cm.options.gutters.length; ++i) {\n      var g = display.gutters.childNodes[i];\n      if (g && getRect(g).right >= mX) {\n        var line = lineAtHeight(cm.doc, mY);\n        var gutter = cm.options.gutters[i];\n        signalfn(cm, type, cm, line, gutter, e);\n        return e_defaultPrevented(e);\n      }\n    }\n  }\n\n  function contextMenuInGutter(cm, e) {\n    if (!hasHandler(cm, \"gutterContextMenu\")) return false;\n    return gutterEvent(cm, e, \"gutterContextMenu\", false, signal);\n  }\n\n  function clickInGutter(cm, e) {\n    return gutterEvent(cm, e, \"gutterClick\", true, signalLater);\n  }\n\n  // Kludge to work around strange IE behavior where it'll sometimes\n  // re-fire a series of drag-related events right after the drop (#1551)\n  var lastDrop = 0;\n\n  function onDrop(e) {\n    var cm = this;\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e) || (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))))\n      return;\n    e_preventDefault(e);\n    if (ie) lastDrop = +new Date;\n    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n    if (!pos || isReadOnly(cm)) return;\n    if (files && files.length && window.FileReader && window.File) {\n      var n = files.length, text = Array(n), read = 0;\n      var loadFile = function(file, i) {\n        var reader = new FileReader;\n        reader.onload = function() {\n          text[i] = reader.result;\n          if (++read == n) {\n            pos = clipPos(cm.doc, pos);\n            makeChange(cm.doc, {from: pos, to: pos, text: splitLines(text.join(\"\\n\")), origin: \"paste\"}, \"around\");\n          }\n        };\n        reader.readAsText(file);\n      };\n      for (var i = 0; i < n; ++i) loadFile(files[i], i);\n    } else {\n      // Don't do a replace if the drop happened inside of the selected text.\n      if (cm.state.draggingText && !(posLess(pos, cm.doc.sel.from) || posLess(cm.doc.sel.to, pos))) {\n        cm.state.draggingText(e);\n        // Ensure the editor is re-focused\n        setTimeout(bind(focusInput, cm), 20);\n        return;\n      }\n      try {\n        var text = e.dataTransfer.getData(\"Text\");\n        if (text) {\n          var curFrom = cm.doc.sel.from, curTo = cm.doc.sel.to;\n          setSelection(cm.doc, pos, pos);\n          if (cm.state.draggingText) replaceRange(cm.doc, \"\", curFrom, curTo, \"paste\");\n          cm.replaceSelection(text, null, \"paste\");\n          focusInput(cm);\n        }\n      }\n      catch(e){}\n    }\n  }\n\n  function onDragStart(cm, e) {\n    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;\n\n    var txt = cm.getSelection();\n    e.dataTransfer.setData(\"Text\", txt);\n\n    // Use dummy image instead of default browsers image.\n    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n    if (e.dataTransfer.setDragImage && !safari) {\n      var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n      img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n      if (opera) {\n        img.width = img.height = 1;\n        cm.display.wrapper.appendChild(img);\n        // Force a relayout, or Opera won't use our image for some obscure reason\n        img._top = img.offsetTop;\n      }\n      e.dataTransfer.setDragImage(img, 0, 0);\n      if (opera) img.parentNode.removeChild(img);\n    }\n  }\n\n  function setScrollTop(cm, val) {\n    if (Math.abs(cm.doc.scrollTop - val) < 2) return;\n    cm.doc.scrollTop = val;\n    if (!gecko) updateDisplay(cm, [], val);\n    if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;\n    if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val;\n    if (gecko) updateDisplay(cm, []);\n    startWorker(cm, 100);\n  }\n  function setScrollLeft(cm, val, isScroller) {\n    if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;\n    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);\n    cm.doc.scrollLeft = val;\n    alignHorizontally(cm);\n    if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;\n    if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val;\n  }\n\n  // Since the delta values reported on mouse wheel events are\n  // unstandardized between browsers and even browser versions, and\n  // generally horribly unpredictable, this code starts by measuring\n  // the scroll effect that the first few mouse wheel events have,\n  // and, from that, detects the way it can convert deltas to pixel\n  // offsets afterwards.\n  //\n  // The reason we want to know the amount a wheel event will scroll\n  // is that it gives us a chance to update the display before the\n  // actual scrolling happens, reducing flickering.\n\n  var wheelSamples = 0, wheelPixelsPerUnit = null;\n  // Fill in a browser-detected starting value on browsers where we\n  // know one. These don't have to be accurate -- the result of them\n  // being wrong would just be a slight flicker on the first wheel\n  // scroll (if it is large enough).\n  if (ie) wheelPixelsPerUnit = -.53;\n  else if (gecko) wheelPixelsPerUnit = 15;\n  else if (chrome) wheelPixelsPerUnit = -.7;\n  else if (safari) wheelPixelsPerUnit = -1/3;\n\n  function onScrollWheel(cm, e) {\n    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;\n    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;\n    else if (dy == null) dy = e.wheelDelta;\n\n    var display = cm.display, scroll = display.scroller;\n    // Quit if there's nothing to scroll here\n    if (!(dx && scroll.scrollWidth > scroll.clientWidth ||\n          dy && scroll.scrollHeight > scroll.clientHeight)) return;\n\n    // Webkit browsers on OS X abort momentum scrolls when the target\n    // of the scroll event is removed from the scrollable element.\n    // This hack (see related code in patchDisplay) makes sure the\n    // element is kept around.\n    if (dy && mac && webkit) {\n      for (var cur = e.target; cur != scroll; cur = cur.parentNode) {\n        if (cur.lineObj) {\n          cm.display.currentWheelTarget = cur;\n          break;\n        }\n      }\n    }\n\n    // On some browsers, horizontal scrolling will cause redraws to\n    // happen before the gutter has been realigned, causing it to\n    // wriggle around in a most unseemly way. When we have an\n    // estimated pixels/delta value, we just handle horizontal\n    // scrolling entirely here. It'll be slightly off from native, but\n    // better than glitching out.\n    if (dx && !gecko && !opera && wheelPixelsPerUnit != null) {\n      if (dy)\n        setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));\n      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));\n      e_preventDefault(e);\n      display.wheelStartX = null; // Abort measurement, if in progress\n      return;\n    }\n\n    if (dy && wheelPixelsPerUnit != null) {\n      var pixels = dy * wheelPixelsPerUnit;\n      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n      if (pixels < 0) top = Math.max(0, top + pixels - 50);\n      else bot = Math.min(cm.doc.height, bot + pixels + 50);\n      updateDisplay(cm, [], {top: top, bottom: bot});\n    }\n\n    if (wheelSamples < 20) {\n      if (display.wheelStartX == null) {\n        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n        display.wheelDX = dx; display.wheelDY = dy;\n        setTimeout(function() {\n          if (display.wheelStartX == null) return;\n          var movedX = scroll.scrollLeft - display.wheelStartX;\n          var movedY = scroll.scrollTop - display.wheelStartY;\n          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n            (movedX && display.wheelDX && movedX / display.wheelDX);\n          display.wheelStartX = display.wheelStartY = null;\n          if (!sample) return;\n          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n          ++wheelSamples;\n        }, 200);\n      } else {\n        display.wheelDX += dx; display.wheelDY += dy;\n      }\n    }\n  }\n\n  function doHandleBinding(cm, bound, dropShift) {\n    if (typeof bound == \"string\") {\n      bound = commands[bound];\n      if (!bound) return false;\n    }\n    // Ensure previous input has been read, so that the handler sees a\n    // consistent view of the document\n    if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false;\n    var doc = cm.doc, prevShift = doc.sel.shift, done = false;\n    try {\n      if (isReadOnly(cm)) cm.state.suppressEdits = true;\n      if (dropShift) doc.sel.shift = false;\n      done = bound(cm) != Pass;\n    } finally {\n      doc.sel.shift = prevShift;\n      cm.state.suppressEdits = false;\n    }\n    return done;\n  }\n\n  function allKeyMaps(cm) {\n    var maps = cm.state.keyMaps.slice(0);\n    if (cm.options.extraKeys) maps.push(cm.options.extraKeys);\n    maps.push(cm.options.keyMap);\n    return maps;\n  }\n\n  var maybeTransition;\n  function handleKeyBinding(cm, e) {\n    // Handle auto keymap transitions\n    var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto;\n    clearTimeout(maybeTransition);\n    if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() {\n      if (getKeyMap(cm.options.keyMap) == startMap) {\n        cm.options.keyMap = (next.call ? next.call(null, cm) : next);\n        keyMapChanged(cm);\n      }\n    }, 50);\n\n    var name = keyName(e, true), handled = false;\n    if (!name) return false;\n    var keymaps = allKeyMaps(cm);\n\n    if (e.shiftKey) {\n      // First try to resolve full name (including 'Shift-'). Failing\n      // that, see if there is a cursor-motion command (starting with\n      // 'go') bound to the keyname without 'Shift-'.\n      handled = lookupKey(\"Shift-\" + name, keymaps, function(b) {return doHandleBinding(cm, b, true);})\n             || lookupKey(name, keymaps, function(b) {\n                  if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n                    return doHandleBinding(cm, b);\n                });\n    } else {\n      handled = lookupKey(name, keymaps, function(b) { return doHandleBinding(cm, b); });\n    }\n\n    if (handled) {\n      e_preventDefault(e);\n      restartBlink(cm);\n      if (ie_lt9) { e.oldKeyCode = e.keyCode; e.keyCode = 0; }\n      signalLater(cm, \"keyHandled\", cm, name, e);\n    }\n    return handled;\n  }\n\n  function handleCharBinding(cm, e, ch) {\n    var handled = lookupKey(\"'\" + ch + \"'\", allKeyMaps(cm),\n                            function(b) { return doHandleBinding(cm, b, true); });\n    if (handled) {\n      e_preventDefault(e);\n      restartBlink(cm);\n      signalLater(cm, \"keyHandled\", cm, \"'\" + ch + \"'\", e);\n    }\n    return handled;\n  }\n\n  var lastStoppedKey = null;\n  function onKeyDown(e) {\n    var cm = this;\n    if (!cm.state.focused) onFocus(cm);\n    if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;\n    if (ie && e.keyCode == 27) e.returnValue = false;\n    var code = e.keyCode;\n    // IE does strange things with escape.\n    cm.doc.sel.shift = code == 16 || e.shiftKey;\n    // First give onKeyEvent option a chance to handle this.\n    var handled = handleKeyBinding(cm, e);\n    if (opera) {\n      lastStoppedKey = handled ? code : null;\n      // Opera has no cut event... we try to at least catch the key combo\n      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n        cm.replaceSelection(\"\");\n    }\n  }\n\n  function onKeyPress(e) {\n    var cm = this;\n    if (signalDOMEvent(cm, e) || cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return;\n    var keyCode = e.keyCode, charCode = e.charCode;\n    if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}\n    if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return;\n    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n    if (this.options.electricChars && this.doc.mode.electricChars &&\n        this.options.smartIndent && !isReadOnly(this) &&\n        this.doc.mode.electricChars.indexOf(ch) > -1)\n      setTimeout(operation(cm, function() {indentLine(cm, cm.doc.sel.to.line, \"smart\");}), 75);\n    if (handleCharBinding(cm, e, ch)) return;\n    if (ie && !ie_lt9) cm.display.inputHasSelection = null;\n    fastPoll(cm);\n  }\n\n  function onFocus(cm) {\n    if (cm.options.readOnly == \"nocursor\") return;\n    if (!cm.state.focused) {\n      signal(cm, \"focus\", cm);\n      cm.state.focused = true;\n      if (cm.display.wrapper.className.search(/\\bCodeMirror-focused\\b/) == -1)\n        cm.display.wrapper.className += \" CodeMirror-focused\";\n      if (!cm.curOp) {\n        resetInput(cm, true);\n        if (webkit) setTimeout(bind(resetInput, cm, true), 0); // Issue #1730\n      }\n    }\n    slowPoll(cm);\n    restartBlink(cm);\n  }\n  function onBlur(cm) {\n    if (cm.state.focused) {\n      signal(cm, \"blur\", cm);\n      cm.state.focused = false;\n      cm.display.wrapper.className = cm.display.wrapper.className.replace(\" CodeMirror-focused\", \"\");\n    }\n    clearInterval(cm.display.blinker);\n    setTimeout(function() {if (!cm.state.focused) cm.doc.sel.shift = false;}, 150);\n  }\n\n  var detectingSelectAll;\n  function onContextMenu(cm, e) {\n    if (signalDOMEvent(cm, e, \"contextmenu\")) return;\n    var display = cm.display, sel = cm.doc.sel;\n    if (eventInWidget(display, e) || contextMenuInGutter(cm, e)) return;\n\n    var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n    if (!pos || opera) return; // Opera is difficult.\n\n    // Reset the current text selection only if the click is done outside of the selection\n    // and 'resetSelectionOnContextMenu' option is true.\n    var reset = cm.options.resetSelectionOnContextMenu;\n    if (reset && (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)))\n      operation(cm, setSelection)(cm.doc, pos, pos);\n\n    var oldCSS = display.input.style.cssText;\n    display.inputDiv.style.position = \"absolute\";\n    display.input.style.cssText = \"position: fixed; width: 30px; height: 30px; top: \" + (e.clientY - 5) +\n      \"px; left: \" + (e.clientX - 5) + \"px; z-index: 1000; background: white; outline: none;\" +\n      \"border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);\";\n    focusInput(cm);\n    resetInput(cm, true);\n    // Adds \"Select all\" to context menu in FF\n    if (posEq(sel.from, sel.to)) display.input.value = display.prevInput = \" \";\n\n    function prepareSelectAllHack() {\n      if (display.input.selectionStart != null) {\n        var extval = display.input.value = \"\\u200b\" + (posEq(sel.from, sel.to) ? \"\" : display.input.value);\n        display.prevInput = \"\\u200b\";\n        display.input.selectionStart = 1; display.input.selectionEnd = extval.length;\n      }\n    }\n    function rehide() {\n      display.inputDiv.style.position = \"relative\";\n      display.input.style.cssText = oldCSS;\n      if (ie_lt9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos;\n      slowPoll(cm);\n\n      // Try to detect the user choosing select-all\n      if (display.input.selectionStart != null) {\n        if (!ie || ie_lt9) prepareSelectAllHack();\n        clearTimeout(detectingSelectAll);\n        var i = 0, poll = function(){\n          if (display.prevInput == \" \" && display.input.selectionStart == 0)\n            operation(cm, commands.selectAll)(cm);\n          else if (i++ < 10) detectingSelectAll = setTimeout(poll, 500);\n          else resetInput(cm);\n        };\n        detectingSelectAll = setTimeout(poll, 200);\n      }\n    }\n\n    if (ie && !ie_lt9) prepareSelectAllHack();\n    if (captureMiddleClick) {\n      e_stop(e);\n      var mouseup = function() {\n        off(window, \"mouseup\", mouseup);\n        setTimeout(rehide, 20);\n      };\n      on(window, \"mouseup\", mouseup);\n    } else {\n      setTimeout(rehide, 50);\n    }\n  }\n\n  // UPDATING\n\n  var changeEnd = CodeMirror.changeEnd = function(change) {\n    if (!change.text) return change.to;\n    return Pos(change.from.line + change.text.length - 1,\n               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));\n  };\n\n  // Make sure a position will be valid after the given change.\n  function clipPostChange(doc, change, pos) {\n    if (!posLess(change.from, pos)) return clipPos(doc, pos);\n    var diff = (change.text.length - 1) - (change.to.line - change.from.line);\n    if (pos.line > change.to.line + diff) {\n      var preLine = pos.line - diff, lastLine = doc.first + doc.size - 1;\n      if (preLine > lastLine) return Pos(lastLine, getLine(doc, lastLine).text.length);\n      return clipToLen(pos, getLine(doc, preLine).text.length);\n    }\n    if (pos.line == change.to.line + diff)\n      return clipToLen(pos, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0) +\n                       getLine(doc, change.to.line).text.length - change.to.ch);\n    var inside = pos.line - change.from.line;\n    return clipToLen(pos, change.text[inside].length + (inside ? 0 : change.from.ch));\n  }\n\n  // Hint can be null|\"end\"|\"start\"|\"around\"|{anchor,head}\n  function computeSelAfterChange(doc, change, hint) {\n    if (hint && typeof hint == \"object\") // Assumed to be {anchor, head} object\n      return {anchor: clipPostChange(doc, change, hint.anchor),\n              head: clipPostChange(doc, change, hint.head)};\n\n    if (hint == \"start\") return {anchor: change.from, head: change.from};\n\n    var end = changeEnd(change);\n    if (hint == \"around\") return {anchor: change.from, head: end};\n    if (hint == \"end\") return {anchor: end, head: end};\n\n    // hint is null, leave the selection alone as much as possible\n    var adjustPos = function(pos) {\n      if (posLess(pos, change.from)) return pos;\n      if (!posLess(change.to, pos)) return end;\n\n      var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n      if (pos.line == change.to.line) ch += end.ch - change.to.ch;\n      return Pos(line, ch);\n    };\n    return {anchor: adjustPos(doc.sel.anchor), head: adjustPos(doc.sel.head)};\n  }\n\n  function filterChange(doc, change, update) {\n    var obj = {\n      canceled: false,\n      from: change.from,\n      to: change.to,\n      text: change.text,\n      origin: change.origin,\n      cancel: function() { this.canceled = true; }\n    };\n    if (update) obj.update = function(from, to, text, origin) {\n      if (from) this.from = clipPos(doc, from);\n      if (to) this.to = clipPos(doc, to);\n      if (text) this.text = text;\n      if (origin !== undefined) this.origin = origin;\n    };\n    signal(doc, \"beforeChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeChange\", doc.cm, obj);\n\n    if (obj.canceled) return null;\n    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};\n  }\n\n  // Replace the range from from to to by the strings in replacement.\n  // change is a {from, to, text [, origin]} object\n  function makeChange(doc, change, selUpdate, ignoreReadOnly) {\n    if (doc.cm) {\n      if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, selUpdate, ignoreReadOnly);\n      if (doc.cm.state.suppressEdits) return;\n    }\n\n    if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n      change = filterChange(doc, change, true);\n      if (!change) return;\n    }\n\n    // Possibly split or suppress the update based on the presence\n    // of read-only spans in its range.\n    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n    if (split) {\n      for (var i = split.length - 1; i >= 1; --i)\n        makeChangeNoReadonly(doc, {from: split[i].from, to: split[i].to, text: [\"\"]});\n      if (split.length)\n        makeChangeNoReadonly(doc, {from: split[0].from, to: split[0].to, text: change.text}, selUpdate);\n    } else {\n      makeChangeNoReadonly(doc, change, selUpdate);\n    }\n  }\n\n  function makeChangeNoReadonly(doc, change, selUpdate) {\n    if (change.text.length == 1 && change.text[0] == \"\" && posEq(change.from, change.to)) return;\n    var selAfter = computeSelAfterChange(doc, change, selUpdate);\n    addToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n    var rebased = [];\n\n    linkedDocs(doc, function(doc, sharedHist) {\n      if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n        rebaseHist(doc.history, change);\n        rebased.push(doc.history);\n      }\n      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n    });\n  }\n\n  function makeChangeFromHistory(doc, type) {\n    if (doc.cm && doc.cm.state.suppressEdits) return;\n\n    var hist = doc.history;\n    var event = (type == \"undo\" ? hist.done : hist.undone).pop();\n    if (!event) return;\n\n    var anti = {changes: [], anchorBefore: event.anchorAfter, headBefore: event.headAfter,\n                anchorAfter: event.anchorBefore, headAfter: event.headBefore,\n                generation: hist.generation};\n    (type == \"undo\" ? hist.undone : hist.done).push(anti);\n    hist.generation = event.generation || ++hist.maxGeneration;\n\n    var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n    for (var i = event.changes.length - 1; i >= 0; --i) {\n      var change = event.changes[i];\n      change.origin = type;\n      if (filter && !filterChange(doc, change, false)) {\n        (type == \"undo\" ? hist.done : hist.undone).length = 0;\n        return;\n      }\n\n      anti.changes.push(historyChangeFromChange(doc, change));\n\n      var after = i ? computeSelAfterChange(doc, change, null)\n                    : {anchor: event.anchorBefore, head: event.headBefore};\n      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n      var rebased = [];\n\n      linkedDocs(doc, function(doc, sharedHist) {\n        if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n          rebaseHist(doc.history, change);\n          rebased.push(doc.history);\n        }\n        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n      });\n    }\n  }\n\n  function shiftDoc(doc, distance) {\n    function shiftPos(pos) {return Pos(pos.line + distance, pos.ch);}\n    doc.first += distance;\n    if (doc.cm) regChange(doc.cm, doc.first, doc.first, distance);\n    doc.sel.head = shiftPos(doc.sel.head); doc.sel.anchor = shiftPos(doc.sel.anchor);\n    doc.sel.from = shiftPos(doc.sel.from); doc.sel.to = shiftPos(doc.sel.to);\n  }\n\n  function makeChangeSingleDoc(doc, change, selAfter, spans) {\n    if (doc.cm && !doc.cm.curOp)\n      return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);\n\n    if (change.to.line < doc.first) {\n      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n      return;\n    }\n    if (change.from.line > doc.lastLine()) return;\n\n    // Clip the change to the size of this doc\n    if (change.from.line < doc.first) {\n      var shift = change.text.length - 1 - (doc.first - change.from.line);\n      shiftDoc(doc, shift);\n      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n                text: [lst(change.text)], origin: change.origin};\n    }\n    var last = doc.lastLine();\n    if (change.to.line > last) {\n      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n                text: [change.text[0]], origin: change.origin};\n    }\n\n    change.removed = getBetween(doc, change.from, change.to);\n\n    if (!selAfter) selAfter = computeSelAfterChange(doc, change, null);\n    if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans, selAfter);\n    else updateDoc(doc, change, spans, selAfter);\n  }\n\n  function makeChangeSingleDocInEditor(cm, change, spans, selAfter) {\n    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n    var recomputeMaxLength = false, checkWidthStart = from.line;\n    if (!cm.options.lineWrapping) {\n      checkWidthStart = lineNo(visualLine(doc, getLine(doc, from.line)));\n      doc.iter(checkWidthStart, to.line + 1, function(line) {\n        if (line == display.maxLine) {\n          recomputeMaxLength = true;\n          return true;\n        }\n      });\n    }\n\n    if (!posLess(doc.sel.head, change.from) && !posLess(change.to, doc.sel.head))\n      cm.curOp.cursorActivity = true;\n\n    updateDoc(doc, change, spans, selAfter, estimateHeight(cm));\n\n    if (!cm.options.lineWrapping) {\n      doc.iter(checkWidthStart, from.line + change.text.length, function(line) {\n        var len = lineLength(doc, line);\n        if (len > display.maxLineLength) {\n          display.maxLine = line;\n          display.maxLineLength = len;\n          display.maxLineChanged = true;\n          recomputeMaxLength = false;\n        }\n      });\n      if (recomputeMaxLength) cm.curOp.updateMaxLine = true;\n    }\n\n    // Adjust frontier, schedule worker\n    doc.frontier = Math.min(doc.frontier, from.line);\n    startWorker(cm, 400);\n\n    var lendiff = change.text.length - (to.line - from.line) - 1;\n    // Remember that these lines changed, for updating the display\n    regChange(cm, from.line, to.line + 1, lendiff);\n\n    if (hasHandler(cm, \"change\")) {\n      var changeObj = {from: from, to: to,\n                       text: change.text,\n                       removed: change.removed,\n                       origin: change.origin};\n      if (cm.curOp.textChanged) {\n        for (var cur = cm.curOp.textChanged; cur.next; cur = cur.next) {}\n        cur.next = changeObj;\n      } else cm.curOp.textChanged = changeObj;\n    }\n  }\n\n  function replaceRange(doc, code, from, to, origin) {\n    if (!to) to = from;\n    if (posLess(to, from)) { var tmp = to; to = from; from = tmp; }\n    if (typeof code == \"string\") code = splitLines(code);\n    makeChange(doc, {from: from, to: to, text: code, origin: origin}, null);\n  }\n\n  // POSITION OBJECT\n\n  function Pos(line, ch) {\n    if (!(this instanceof Pos)) return new Pos(line, ch);\n    this.line = line; this.ch = ch;\n  }\n  CodeMirror.Pos = Pos;\n\n  function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}\n  function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);}\n  function copyPos(x) {return Pos(x.line, x.ch);}\n\n  // SELECTION\n\n  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}\n  function clipPos(doc, pos) {\n    if (pos.line < doc.first) return Pos(doc.first, 0);\n    var last = doc.first + doc.size - 1;\n    if (pos.line > last) return Pos(last, getLine(doc, last).text.length);\n    return clipToLen(pos, getLine(doc, pos.line).text.length);\n  }\n  function clipToLen(pos, linelen) {\n    var ch = pos.ch;\n    if (ch == null || ch > linelen) return Pos(pos.line, linelen);\n    else if (ch < 0) return Pos(pos.line, 0);\n    else return pos;\n  }\n  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}\n\n  // If shift is held, this will move the selection anchor. Otherwise,\n  // it'll set the whole selection.\n  function extendSelection(doc, pos, other, bias) {\n    if (doc.sel.shift || doc.sel.extend) {\n      var anchor = doc.sel.anchor;\n      if (other) {\n        var posBefore = posLess(pos, anchor);\n        if (posBefore != posLess(other, anchor)) {\n          anchor = pos;\n          pos = other;\n        } else if (posBefore != posLess(pos, other)) {\n          pos = other;\n        }\n      }\n      setSelection(doc, anchor, pos, bias);\n    } else {\n      setSelection(doc, pos, other || pos, bias);\n    }\n    if (doc.cm) doc.cm.curOp.userSelChange = true;\n  }\n\n  function filterSelectionChange(doc, anchor, head) {\n    var obj = {anchor: anchor, head: head};\n    signal(doc, \"beforeSelectionChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj);\n    obj.anchor = clipPos(doc, obj.anchor); obj.head = clipPos(doc, obj.head);\n    return obj;\n  }\n\n  // Update the selection. Last two args are only used by\n  // updateDoc, since they have to be expressed in the line\n  // numbers before the update.\n  function setSelection(doc, anchor, head, bias, checkAtomic) {\n    if (!checkAtomic && hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\")) {\n      var filtered = filterSelectionChange(doc, anchor, head);\n      head = filtered.head;\n      anchor = filtered.anchor;\n    }\n\n    var sel = doc.sel;\n    sel.goalColumn = null;\n    if (bias == null) bias = posLess(head, sel.head) ? -1 : 1;\n    // Skip over atomic spans.\n    if (checkAtomic || !posEq(anchor, sel.anchor))\n      anchor = skipAtomic(doc, anchor, bias, checkAtomic != \"push\");\n    if (checkAtomic || !posEq(head, sel.head))\n      head = skipAtomic(doc, head, bias, checkAtomic != \"push\");\n\n    if (posEq(sel.anchor, anchor) && posEq(sel.head, head)) return;\n\n    sel.anchor = anchor; sel.head = head;\n    var inv = posLess(head, anchor);\n    sel.from = inv ? head : anchor;\n    sel.to = inv ? anchor : head;\n\n    if (doc.cm)\n      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged =\n        doc.cm.curOp.cursorActivity = true;\n\n    signalLater(doc, \"cursorActivity\", doc);\n  }\n\n  function reCheckSelection(cm) {\n    setSelection(cm.doc, cm.doc.sel.from, cm.doc.sel.to, null, \"push\");\n  }\n\n  function skipAtomic(doc, pos, bias, mayClear) {\n    var flipped = false, curPos = pos;\n    var dir = bias || 1;\n    doc.cantEdit = false;\n    search: for (;;) {\n      var line = getLine(doc, curPos.line);\n      if (line.markedSpans) {\n        for (var i = 0; i < line.markedSpans.length; ++i) {\n          var sp = line.markedSpans[i], m = sp.marker;\n          if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) &&\n              (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) {\n            if (mayClear) {\n              signal(m, \"beforeCursorEnter\");\n              if (m.explicitlyCleared) {\n                if (!line.markedSpans) break;\n                else {--i; continue;}\n              }\n            }\n            if (!m.atomic) continue;\n            var newPos = m.find()[dir < 0 ? \"from\" : \"to\"];\n            if (posEq(newPos, curPos)) {\n              newPos.ch += dir;\n              if (newPos.ch < 0) {\n                if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1));\n                else newPos = null;\n              } else if (newPos.ch > line.text.length) {\n                if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0);\n                else newPos = null;\n              }\n              if (!newPos) {\n                if (flipped) {\n                  // Driven in a corner -- no valid cursor position found at all\n                  // -- try again *with* clearing, if we didn't already\n                  if (!mayClear) return skipAtomic(doc, pos, bias, true);\n                  // Otherwise, turn off editing until further notice, and return the start of the doc\n                  doc.cantEdit = true;\n                  return Pos(doc.first, 0);\n                }\n                flipped = true; newPos = pos; dir = -dir;\n              }\n            }\n            curPos = newPos;\n            continue search;\n          }\n        }\n      }\n      return curPos;\n    }\n  }\n\n  // SCROLLING\n\n  function scrollCursorIntoView(cm) {\n    var coords = scrollPosIntoView(cm, cm.doc.sel.head, null, cm.options.cursorScrollMargin);\n    if (!cm.state.focused) return;\n    var display = cm.display, box = getRect(display.sizer), doScroll = null;\n    if (coords.top + box.top < 0) doScroll = true;\n    else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;\n    if (doScroll != null && !phantom) {\n      var hidden = display.cursor.style.display == \"none\";\n      if (hidden) {\n        display.cursor.style.display = \"\";\n        display.cursor.style.left = coords.left + \"px\";\n        display.cursor.style.top = (coords.top - display.viewOffset) + \"px\";\n      }\n      display.cursor.scrollIntoView(doScroll);\n      if (hidden) display.cursor.style.display = \"none\";\n    }\n  }\n\n  function scrollPosIntoView(cm, pos, end, margin) {\n    if (margin == null) margin = 0;\n    for (;;) {\n      var changed = false, coords = cursorCoords(cm, pos);\n      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n      var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),\n                                         Math.min(coords.top, endCoords.top) - margin,\n                                         Math.max(coords.left, endCoords.left),\n                                         Math.max(coords.bottom, endCoords.bottom) + margin);\n      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n      if (scrollPos.scrollTop != null) {\n        setScrollTop(cm, scrollPos.scrollTop);\n        if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;\n      }\n      if (scrollPos.scrollLeft != null) {\n        setScrollLeft(cm, scrollPos.scrollLeft);\n        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;\n      }\n      if (!changed) return coords;\n    }\n  }\n\n  function scrollIntoView(cm, x1, y1, x2, y2) {\n    var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);\n    if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);\n    if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);\n  }\n\n  function calculateScrollPos(cm, x1, y1, x2, y2) {\n    var display = cm.display, snapMargin = textHeight(cm.display);\n    if (y1 < 0) y1 = 0;\n    var screen = display.scroller.clientHeight - scrollerCutOff, screentop = display.scroller.scrollTop, result = {};\n    var docBottom = cm.doc.height + paddingVert(display);\n    var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;\n    if (y1 < screentop) {\n      result.scrollTop = atTop ? 0 : y1;\n    } else if (y2 > screentop + screen) {\n      var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);\n      if (newTop != screentop) result.scrollTop = newTop;\n    }\n\n    var screenw = display.scroller.clientWidth - scrollerCutOff, screenleft = display.scroller.scrollLeft;\n    x1 += display.gutters.offsetWidth; x2 += display.gutters.offsetWidth;\n    var gutterw = display.gutters.offsetWidth;\n    var atLeft = x1 < gutterw + 10;\n    if (x1 < screenleft + gutterw || atLeft) {\n      if (atLeft) x1 = 0;\n      result.scrollLeft = Math.max(0, x1 - 10 - gutterw);\n    } else if (x2 > screenw + screenleft - 3) {\n      result.scrollLeft = x2 + 10 - screenw;\n    }\n    return result;\n  }\n\n  function updateScrollPos(cm, left, top) {\n    cm.curOp.updateScrollPos = {scrollLeft: left == null ? cm.doc.scrollLeft : left,\n                                scrollTop: top == null ? cm.doc.scrollTop : top};\n  }\n\n  function addToScrollPos(cm, left, top) {\n    var pos = cm.curOp.updateScrollPos || (cm.curOp.updateScrollPos = {scrollLeft: cm.doc.scrollLeft, scrollTop: cm.doc.scrollTop});\n    var scroll = cm.display.scroller;\n    pos.scrollTop = Math.max(0, Math.min(scroll.scrollHeight - scroll.clientHeight, pos.scrollTop + top));\n    pos.scrollLeft = Math.max(0, Math.min(scroll.scrollWidth - scroll.clientWidth, pos.scrollLeft + left));\n  }\n\n  // API UTILITIES\n\n  function indentLine(cm, n, how, aggressive) {\n    var doc = cm.doc;\n    if (how == null) how = \"add\";\n    if (how == \"smart\") {\n      if (!cm.doc.mode.indent) how = \"prev\";\n      else var state = getStateBefore(cm, n);\n    }\n\n    var tabSize = cm.options.tabSize;\n    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n    var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n    if (how == \"smart\") {\n      indentation = cm.doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n      if (indentation == Pass) {\n        if (!aggressive) return;\n        how = \"prev\";\n      }\n    }\n    if (how == \"prev\") {\n      if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);\n      else indentation = 0;\n    } else if (how == \"add\") {\n      indentation = curSpace + cm.options.indentUnit;\n    } else if (how == \"subtract\") {\n      indentation = curSpace - cm.options.indentUnit;\n    } else if (typeof how == \"number\") {\n      indentation = curSpace + how;\n    }\n    indentation = Math.max(0, indentation);\n\n    var indentString = \"\", pos = 0;\n    if (cm.options.indentWithTabs)\n      for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";}\n    if (pos < indentation) indentString += spaceStr(indentation - pos);\n\n    if (indentString != curSpaceString)\n      replaceRange(cm.doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n    else if (doc.sel.head.line == n && doc.sel.head.ch < curSpaceString.length)\n      setSelection(doc, Pos(n, curSpaceString.length), Pos(n, curSpaceString.length), 1);\n    line.stateAfter = null;\n  }\n\n  function changeLine(cm, handle, op) {\n    var no = handle, line = handle, doc = cm.doc;\n    if (typeof handle == \"number\") line = getLine(doc, clipLine(doc, handle));\n    else no = lineNo(handle);\n    if (no == null) return null;\n    if (op(line, no)) regChange(cm, no, no + 1);\n    else return null;\n    return line;\n  }\n\n  function findPosH(doc, pos, dir, unit, visually) {\n    var line = pos.line, ch = pos.ch, origDir = dir;\n    var lineObj = getLine(doc, line);\n    var possible = true;\n    function findNextLine() {\n      var l = line + dir;\n      if (l < doc.first || l >= doc.first + doc.size) return (possible = false);\n      line = l;\n      return lineObj = getLine(doc, l);\n    }\n    function moveOnce(boundToLine) {\n      var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);\n      if (next == null) {\n        if (!boundToLine && findNextLine()) {\n          if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);\n          else ch = dir < 0 ? lineObj.text.length : 0;\n        } else return (possible = false);\n      } else ch = next;\n      return true;\n    }\n\n    if (unit == \"char\") moveOnce();\n    else if (unit == \"column\") moveOnce(true);\n    else if (unit == \"word\" || unit == \"group\") {\n      var sawType = null, group = unit == \"group\";\n      for (var first = true;; first = false) {\n        if (dir < 0 && !moveOnce(!first)) break;\n        var cur = lineObj.text.charAt(ch) || \"\\n\";\n        var type = isWordChar(cur) ? \"w\"\n          : !group ? null\n          : /\\s/.test(cur) ? null\n          : \"p\";\n        if (sawType && sawType != type) {\n          if (dir < 0) {dir = 1; moveOnce();}\n          break;\n        }\n        if (type) sawType = type;\n        if (dir > 0 && !moveOnce(!first)) break;\n      }\n    }\n    var result = skipAtomic(doc, Pos(line, ch), origDir, true);\n    if (!possible) result.hitSide = true;\n    return result;\n  }\n\n  function findPosV(cm, pos, dir, unit) {\n    var doc = cm.doc, x = pos.left, y;\n    if (unit == \"page\") {\n      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n      y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));\n    } else if (unit == \"line\") {\n      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n    }\n    for (;;) {\n      var target = coordsChar(cm, x, y);\n      if (!target.outside) break;\n      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }\n      y += dir * 5;\n    }\n    return target;\n  }\n\n  function findWordAt(line, pos) {\n    var start = pos.ch, end = pos.ch;\n    if (line) {\n      if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;\n      var startChar = line.charAt(start);\n      var check = isWordChar(startChar) ? isWordChar\n        : /\\s/.test(startChar) ? function(ch) {return /\\s/.test(ch);}\n        : function(ch) {return !/\\s/.test(ch) && !isWordChar(ch);};\n      while (start > 0 && check(line.charAt(start - 1))) --start;\n      while (end < line.length && check(line.charAt(end))) ++end;\n    }\n    return {from: Pos(pos.line, start), to: Pos(pos.line, end)};\n  }\n\n  function selectLine(cm, line) {\n    extendSelection(cm.doc, Pos(line, 0), clipPos(cm.doc, Pos(line + 1, 0)));\n  }\n\n  // PROTOTYPE\n\n  // The publicly visible API. Note that operation(null, f) means\n  // 'wrap f in an operation, performed on its `this` parameter'\n\n  CodeMirror.prototype = {\n    constructor: CodeMirror,\n    focus: function(){window.focus(); focusInput(this); fastPoll(this);},\n\n    setOption: function(option, value) {\n      var options = this.options, old = options[option];\n      if (options[option] == value && option != \"mode\") return;\n      options[option] = value;\n      if (optionHandlers.hasOwnProperty(option))\n        operation(this, optionHandlers[option])(this, value, old);\n    },\n\n    getOption: function(option) {return this.options[option];},\n    getDoc: function() {return this.doc;},\n\n    addKeyMap: function(map, bottom) {\n      this.state.keyMaps[bottom ? \"push\" : \"unshift\"](map);\n    },\n    removeKeyMap: function(map) {\n      var maps = this.state.keyMaps;\n      for (var i = 0; i < maps.length; ++i)\n        if (maps[i] == map || (typeof maps[i] != \"string\" && maps[i].name == map)) {\n          maps.splice(i, 1);\n          return true;\n        }\n    },\n\n    addOverlay: operation(null, function(spec, options) {\n      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n      if (mode.startState) throw new Error(\"Overlays may not be stateful.\");\n      this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque});\n      this.state.modeGen++;\n      regChange(this);\n    }),\n    removeOverlay: operation(null, function(spec) {\n      var overlays = this.state.overlays;\n      for (var i = 0; i < overlays.length; ++i) {\n        var cur = overlays[i].modeSpec;\n        if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n          overlays.splice(i, 1);\n          this.state.modeGen++;\n          regChange(this);\n          return;\n        }\n      }\n    }),\n\n    indentLine: operation(null, function(n, dir, aggressive) {\n      if (typeof dir != \"string\" && typeof dir != \"number\") {\n        if (dir == null) dir = this.options.smartIndent ? \"smart\" : \"prev\";\n        else dir = dir ? \"add\" : \"subtract\";\n      }\n      if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);\n    }),\n    indentSelection: operation(null, function(how) {\n      var sel = this.doc.sel;\n      if (posEq(sel.from, sel.to)) return indentLine(this, sel.from.line, how);\n      var e = sel.to.line - (sel.to.ch ? 0 : 1);\n      for (var i = sel.from.line; i <= e; ++i) indentLine(this, i, how);\n    }),\n\n    // Fetch the parser token for a given character. Useful for hacks\n    // that want to inspect the mode state (say, for completion).\n    getTokenAt: function(pos, precise) {\n      var doc = this.doc;\n      pos = clipPos(doc, pos);\n      var state = getStateBefore(this, pos.line, precise), mode = this.doc.mode;\n      var line = getLine(doc, pos.line);\n      var stream = new StringStream(line.text, this.options.tabSize);\n      while (stream.pos < pos.ch && !stream.eol()) {\n        stream.start = stream.pos;\n        var style = mode.token(stream, state);\n      }\n      return {start: stream.start,\n              end: stream.pos,\n              string: stream.current(),\n              className: style || null, // Deprecated, use 'type' instead\n              type: style || null,\n              state: state};\n    },\n\n    getTokenTypeAt: function(pos) {\n      pos = clipPos(this.doc, pos);\n      var styles = getLineStyles(this, getLine(this.doc, pos.line));\n      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n      if (ch == 0) return styles[2];\n      for (;;) {\n        var mid = (before + after) >> 1;\n        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;\n        else if (styles[mid * 2 + 1] < ch) before = mid + 1;\n        else return styles[mid * 2 + 2];\n      }\n    },\n\n    getModeAt: function(pos) {\n      var mode = this.doc.mode;\n      if (!mode.innerMode) return mode;\n      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;\n    },\n\n    getHelper: function(pos, type) {\n      if (!helpers.hasOwnProperty(type)) return;\n      var help = helpers[type], mode = this.getModeAt(pos);\n      return mode[type] && help[mode[type]] ||\n        mode.helperType && help[mode.helperType] ||\n        help[mode.name];\n    },\n\n    getStateAfter: function(line, precise) {\n      var doc = this.doc;\n      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n      return getStateBefore(this, line + 1, precise);\n    },\n\n    cursorCoords: function(start, mode) {\n      var pos, sel = this.doc.sel;\n      if (start == null) pos = sel.head;\n      else if (typeof start == \"object\") pos = clipPos(this.doc, start);\n      else pos = start ? sel.from : sel.to;\n      return cursorCoords(this, pos, mode || \"page\");\n    },\n\n    charCoords: function(pos, mode) {\n      return charCoords(this, clipPos(this.doc, pos), mode || \"page\");\n    },\n\n    coordsChar: function(coords, mode) {\n      coords = fromCoordSystem(this, coords, mode || \"page\");\n      return coordsChar(this, coords.left, coords.top);\n    },\n\n    lineAtHeight: function(height, mode) {\n      height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n      return lineAtHeight(this.doc, height + this.display.viewOffset);\n    },\n    heightAtLine: function(line, mode) {\n      var end = false, last = this.doc.first + this.doc.size - 1;\n      if (line < this.doc.first) line = this.doc.first;\n      else if (line > last) { line = last; end = true; }\n      var lineObj = getLine(this.doc, line);\n      return intoCoordSystem(this, getLine(this.doc, line), {top: 0, left: 0}, mode || \"page\").top +\n        (end ? lineObj.height : 0);\n    },\n\n    defaultTextHeight: function() { return textHeight(this.display); },\n    defaultCharWidth: function() { return charWidth(this.display); },\n\n    setGutterMarker: operation(null, function(line, gutterID, value) {\n      return changeLine(this, line, function(line) {\n        var markers = line.gutterMarkers || (line.gutterMarkers = {});\n        markers[gutterID] = value;\n        if (!value && isEmpty(markers)) line.gutterMarkers = null;\n        return true;\n      });\n    }),\n\n    clearGutter: operation(null, function(gutterID) {\n      var cm = this, doc = cm.doc, i = doc.first;\n      doc.iter(function(line) {\n        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n          line.gutterMarkers[gutterID] = null;\n          regChange(cm, i, i + 1);\n          if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;\n        }\n        ++i;\n      });\n    }),\n\n    addLineClass: operation(null, function(handle, where, cls) {\n      return changeLine(this, handle, function(line) {\n        var prop = where == \"text\" ? \"textClass\" : where == \"background\" ? \"bgClass\" : \"wrapClass\";\n        if (!line[prop]) line[prop] = cls;\n        else if (new RegExp(\"(?:^|\\\\s)\" + cls + \"(?:$|\\\\s)\").test(line[prop])) return false;\n        else line[prop] += \" \" + cls;\n        return true;\n      });\n    }),\n\n    removeLineClass: operation(null, function(handle, where, cls) {\n      return changeLine(this, handle, function(line) {\n        var prop = where == \"text\" ? \"textClass\" : where == \"background\" ? \"bgClass\" : \"wrapClass\";\n        var cur = line[prop];\n        if (!cur) return false;\n        else if (cls == null) line[prop] = null;\n        else {\n          var found = cur.match(new RegExp(\"(?:^|\\\\s+)\" + cls + \"(?:$|\\\\s+)\"));\n          if (!found) return false;\n          var end = found.index + found[0].length;\n          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n        }\n        return true;\n      });\n    }),\n\n    addLineWidget: operation(null, function(handle, node, options) {\n      return addLineWidget(this, handle, node, options);\n    }),\n\n    removeLineWidget: function(widget) { widget.clear(); },\n\n    lineInfo: function(line) {\n      if (typeof line == \"number\") {\n        if (!isLine(this.doc, line)) return null;\n        var n = line;\n        line = getLine(this.doc, line);\n        if (!line) return null;\n      } else {\n        var n = lineNo(line);\n        if (n == null) return null;\n      }\n      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n              widgets: line.widgets};\n    },\n\n    getViewport: function() { return {from: this.display.showingFrom, to: this.display.showingTo};},\n\n    addWidget: function(pos, node, scroll, vert, horiz) {\n      var display = this.display;\n      pos = cursorCoords(this, clipPos(this.doc, pos));\n      var top = pos.bottom, left = pos.left;\n      node.style.position = \"absolute\";\n      display.sizer.appendChild(node);\n      if (vert == \"over\") {\n        top = pos.top;\n      } else if (vert == \"above\" || vert == \"near\") {\n        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n        // Default to positioning above (if specified and possible); otherwise default to positioning below\n        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n          top = pos.top - node.offsetHeight;\n        else if (pos.bottom + node.offsetHeight <= vspace)\n          top = pos.bottom;\n        if (left + node.offsetWidth > hspace)\n          left = hspace - node.offsetWidth;\n      }\n      node.style.top = top + \"px\";\n      node.style.left = node.style.right = \"\";\n      if (horiz == \"right\") {\n        left = display.sizer.clientWidth - node.offsetWidth;\n        node.style.right = \"0px\";\n      } else {\n        if (horiz == \"left\") left = 0;\n        else if (horiz == \"middle\") left = (display.sizer.clientWidth - node.offsetWidth) / 2;\n        node.style.left = left + \"px\";\n      }\n      if (scroll)\n        scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);\n    },\n\n    triggerOnKeyDown: operation(null, onKeyDown),\n\n    execCommand: function(cmd) {return commands[cmd](this);},\n\n    findPosH: function(from, amount, unit, visually) {\n      var dir = 1;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        cur = findPosH(this.doc, cur, dir, unit, visually);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveH: operation(null, function(dir, unit) {\n      var sel = this.doc.sel, pos;\n      if (sel.shift || sel.extend || posEq(sel.from, sel.to))\n        pos = findPosH(this.doc, sel.head, dir, unit, this.options.rtlMoveVisually);\n      else\n        pos = dir < 0 ? sel.from : sel.to;\n      extendSelection(this.doc, pos, pos, dir);\n    }),\n\n    deleteH: operation(null, function(dir, unit) {\n      var sel = this.doc.sel;\n      if (!posEq(sel.from, sel.to)) replaceRange(this.doc, \"\", sel.from, sel.to, \"+delete\");\n      else replaceRange(this.doc, \"\", sel.from, findPosH(this.doc, sel.head, dir, unit, false), \"+delete\");\n      this.curOp.userSelChange = true;\n    }),\n\n    findPosV: function(from, amount, unit, goalColumn) {\n      var dir = 1, x = goalColumn;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        var coords = cursorCoords(this, cur, \"div\");\n        if (x == null) x = coords.left;\n        else coords.left = x;\n        cur = findPosV(this, coords, dir, unit);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveV: operation(null, function(dir, unit) {\n      var sel = this.doc.sel;\n      var pos = cursorCoords(this, sel.head, \"div\");\n      if (sel.goalColumn != null) pos.left = sel.goalColumn;\n      var target = findPosV(this, pos, dir, unit);\n\n      if (unit == \"page\") addToScrollPos(this, 0, charCoords(this, target, \"div\").top - pos.top);\n      extendSelection(this.doc, target, target, dir);\n      sel.goalColumn = pos.left;\n    }),\n\n    toggleOverwrite: function(value) {\n      if (value != null && value == this.state.overwrite) return;\n      if (this.state.overwrite = !this.state.overwrite)\n        this.display.cursor.className += \" CodeMirror-overwrite\";\n      else\n        this.display.cursor.className = this.display.cursor.className.replace(\" CodeMirror-overwrite\", \"\");\n    },\n    hasFocus: function() { return this.state.focused; },\n\n    scrollTo: operation(null, function(x, y) {\n      updateScrollPos(this, x, y);\n    }),\n    getScrollInfo: function() {\n      var scroller = this.display.scroller, co = scrollerCutOff;\n      return {left: scroller.scrollLeft, top: scroller.scrollTop,\n              height: scroller.scrollHeight - co, width: scroller.scrollWidth - co,\n              clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co};\n    },\n\n    scrollIntoView: operation(null, function(range, margin) {\n      if (range == null) range = {from: this.doc.sel.head, to: null};\n      else if (typeof range == \"number\") range = {from: Pos(range, 0), to: null};\n      else if (range.from == null) range = {from: range, to: null};\n      if (!range.to) range.to = range.from;\n      if (!margin) margin = 0;\n\n      var coords = range;\n      if (range.from.line != null) {\n        this.curOp.scrollToPos = {from: range.from, to: range.to, margin: margin};\n        coords = {from: cursorCoords(this, range.from),\n                  to: cursorCoords(this, range.to)};\n      }\n      var sPos = calculateScrollPos(this, Math.min(coords.from.left, coords.to.left),\n                                    Math.min(coords.from.top, coords.to.top) - margin,\n                                    Math.max(coords.from.right, coords.to.right),\n                                    Math.max(coords.from.bottom, coords.to.bottom) + margin);\n      updateScrollPos(this, sPos.scrollLeft, sPos.scrollTop);\n    }),\n\n    setSize: operation(null, function(width, height) {\n      function interpret(val) {\n        return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val;\n      }\n      if (width != null) this.display.wrapper.style.width = interpret(width);\n      if (height != null) this.display.wrapper.style.height = interpret(height);\n      if (this.options.lineWrapping)\n        this.display.measureLineCache.length = this.display.measureLineCachePos = 0;\n      this.curOp.forceUpdate = true;\n    }),\n\n    operation: function(f){return runInOp(this, f);},\n\n    refresh: operation(null, function() {\n      var badHeight = this.display.cachedTextHeight == null;\n      clearCaches(this);\n      updateScrollPos(this, this.doc.scrollLeft, this.doc.scrollTop);\n      regChange(this);\n      if (badHeight) estimateLineHeights(this);\n    }),\n\n    swapDoc: operation(null, function(doc) {\n      var old = this.doc;\n      old.cm = null;\n      attachDoc(this, doc);\n      clearCaches(this);\n      resetInput(this, true);\n      updateScrollPos(this, doc.scrollLeft, doc.scrollTop);\n      signalLater(this, \"swapDoc\", this, old);\n      return old;\n    }),\n\n    getInputField: function(){return this.display.input;},\n    getWrapperElement: function(){return this.display.wrapper;},\n    getScrollerElement: function(){return this.display.scroller;},\n    getGutterElement: function(){return this.display.gutters;}\n  };\n  eventMixin(CodeMirror);\n\n  // OPTION DEFAULTS\n\n  var optionHandlers = CodeMirror.optionHandlers = {};\n\n  // The default configuration options.\n  var defaults = CodeMirror.defaults = {};\n\n  function option(name, deflt, handle, notOnInit) {\n    CodeMirror.defaults[name] = deflt;\n    if (handle) optionHandlers[name] =\n      notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;\n  }\n\n  var Init = CodeMirror.Init = {toString: function(){return \"CodeMirror.Init\";}};\n\n  // These two are, on init, called from the constructor because they\n  // have to be initialized before the editor can start at all.\n  option(\"value\", \"\", function(cm, val) {\n    cm.setValue(val);\n  }, true);\n  option(\"mode\", null, function(cm, val) {\n    cm.doc.modeOption = val;\n    loadMode(cm);\n  }, true);\n\n  option(\"indentUnit\", 2, loadMode, true);\n  option(\"indentWithTabs\", false);\n  option(\"smartIndent\", true);\n  option(\"tabSize\", 4, function(cm) {\n    loadMode(cm);\n    clearCaches(cm);\n    regChange(cm);\n  }, true);\n  option(\"specialChars\", /[\\t\\u0000-\\u0019\\u00ad\\u200b\\u2028\\u2029\\ufeff]/g, function(cm, val) {\n    cm.options.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n    cm.refresh();\n  }, true);\n  option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);\n  option(\"electricChars\", true);\n  option(\"rtlMoveVisually\", !windows);\n  option(\"wholeLineUpdateBefore\", true);\n\n  option(\"theme\", \"default\", function(cm) {\n    themeChanged(cm);\n    guttersChanged(cm);\n  }, true);\n  option(\"keyMap\", \"default\", keyMapChanged);\n  option(\"extraKeys\", null);\n\n  option(\"onKeyEvent\", null);\n  option(\"onDragEvent\", null);\n\n  option(\"lineWrapping\", false, wrappingChanged, true);\n  option(\"gutters\", [], function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"fixedGutter\", true, function(cm, val) {\n    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n    cm.refresh();\n  }, true);\n  option(\"coverGutterNextToScrollbar\", false, updateScrollbars, true);\n  option(\"lineNumbers\", false, function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"firstLineNumber\", 1, guttersChanged, true);\n  option(\"lineNumberFormatter\", function(integer) {return integer;}, guttersChanged, true);\n  option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n  option(\"resetSelectionOnContextMenu\", true);\n\n  option(\"readOnly\", false, function(cm, val) {\n    if (val == \"nocursor\") {\n      onBlur(cm);\n      cm.display.input.blur();\n      cm.display.disabled = true;\n    } else {\n      cm.display.disabled = false;\n      if (!val) resetInput(cm, true);\n    }\n  });\n  option(\"dragDrop\", true);\n\n  option(\"cursorBlinkRate\", 530);\n  option(\"cursorScrollMargin\", 0);\n  option(\"cursorHeight\", 1);\n  option(\"workTime\", 100);\n  option(\"workDelay\", 100);\n  option(\"flattenSpans\", true);\n  option(\"pollInterval\", 100);\n  option(\"undoDepth\", 40, function(cm, val){cm.doc.history.undoDepth = val;});\n  option(\"historyEventDelay\", 500);\n  option(\"viewportMargin\", 10, function(cm){cm.refresh();}, true);\n  option(\"maxHighlightLength\", 10000, function(cm){loadMode(cm); cm.refresh();}, true);\n  option(\"crudeMeasuringFrom\", 10000);\n  option(\"moveInputWithCursor\", true, function(cm, val) {\n    if (!val) cm.display.inputDiv.style.top = cm.display.inputDiv.style.left = 0;\n  });\n\n  option(\"tabindex\", null, function(cm, val) {\n    cm.display.input.tabIndex = val || \"\";\n  });\n  option(\"autofocus\", null);\n\n  // MODE DEFINITION AND QUERYING\n\n  // Known modes, by name and by MIME\n  var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};\n\n  CodeMirror.defineMode = function(name, mode) {\n    if (!CodeMirror.defaults.mode && name != \"null\") CodeMirror.defaults.mode = name;\n    if (arguments.length > 2) {\n      mode.dependencies = [];\n      for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]);\n    }\n    modes[name] = mode;\n  };\n\n  CodeMirror.defineMIME = function(mime, spec) {\n    mimeModes[mime] = spec;\n  };\n\n  CodeMirror.resolveMode = function(spec) {\n    if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n      spec = mimeModes[spec];\n    } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n      var found = mimeModes[spec.name];\n      spec = createObj(found, spec);\n      spec.name = found.name;\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n      return CodeMirror.resolveMode(\"application/xml\");\n    }\n    if (typeof spec == \"string\") return {name: spec};\n    else return spec || {name: \"null\"};\n  };\n\n  CodeMirror.getMode = function(options, spec) {\n    var spec = CodeMirror.resolveMode(spec);\n    var mfactory = modes[spec.name];\n    if (!mfactory) return CodeMirror.getMode(options, \"text/plain\");\n    var modeObj = mfactory(options, spec);\n    if (modeExtensions.hasOwnProperty(spec.name)) {\n      var exts = modeExtensions[spec.name];\n      for (var prop in exts) {\n        if (!exts.hasOwnProperty(prop)) continue;\n        if (modeObj.hasOwnProperty(prop)) modeObj[\"_\" + prop] = modeObj[prop];\n        modeObj[prop] = exts[prop];\n      }\n    }\n    modeObj.name = spec.name;\n\n    return modeObj;\n  };\n\n  CodeMirror.defineMode(\"null\", function() {\n    return {token: function(stream) {stream.skipToEnd();}};\n  });\n  CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n  var modeExtensions = CodeMirror.modeExtensions = {};\n  CodeMirror.extendMode = function(mode, properties) {\n    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n    copyObj(properties, exts);\n  };\n\n  // EXTENSIONS\n\n  CodeMirror.defineExtension = function(name, func) {\n    CodeMirror.prototype[name] = func;\n  };\n  CodeMirror.defineDocExtension = function(name, func) {\n    Doc.prototype[name] = func;\n  };\n  CodeMirror.defineOption = option;\n\n  var initHooks = [];\n  CodeMirror.defineInitHook = function(f) {initHooks.push(f);};\n\n  var helpers = CodeMirror.helpers = {};\n  CodeMirror.registerHelper = function(type, name, value) {\n    if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {};\n    helpers[type][name] = value;\n  };\n\n  // UTILITIES\n\n  CodeMirror.isWordChar = isWordChar;\n\n  // MODE STATE HANDLING\n\n  // Utility functions for working with state. Exported because modes\n  // sometimes need to do this.\n  function copyState(mode, state) {\n    if (state === true) return state;\n    if (mode.copyState) return mode.copyState(state);\n    var nstate = {};\n    for (var n in state) {\n      var val = state[n];\n      if (val instanceof Array) val = val.concat([]);\n      nstate[n] = val;\n    }\n    return nstate;\n  }\n  CodeMirror.copyState = copyState;\n\n  function startState(mode, a1, a2) {\n    return mode.startState ? mode.startState(a1, a2) : true;\n  }\n  CodeMirror.startState = startState;\n\n  CodeMirror.innerMode = function(mode, state) {\n    while (mode.innerMode) {\n      var info = mode.innerMode(state);\n      if (!info || info.mode == mode) break;\n      state = info.state;\n      mode = info.mode;\n    }\n    return info || {mode: mode, state: state};\n  };\n\n  // STANDARD COMMANDS\n\n  var commands = CodeMirror.commands = {\n    selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()));},\n    killLine: function(cm) {\n      var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to);\n      if (!sel && cm.getLine(from.line).length == from.ch)\n        cm.replaceRange(\"\", from, Pos(from.line + 1, 0), \"+delete\");\n      else cm.replaceRange(\"\", from, sel ? to : Pos(from.line), \"+delete\");\n    },\n    deleteLine: function(cm) {\n      var l = cm.getCursor().line;\n      cm.replaceRange(\"\", Pos(l, 0), Pos(l), \"+delete\");\n    },\n    delLineLeft: function(cm) {\n      var cur = cm.getCursor();\n      cm.replaceRange(\"\", Pos(cur.line, 0), cur, \"+delete\");\n    },\n    undo: function(cm) {cm.undo();},\n    redo: function(cm) {cm.redo();},\n    goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},\n    goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},\n    goLineStart: function(cm) {\n      cm.extendSelection(lineStart(cm, cm.getCursor().line));\n    },\n    goLineStartSmart: function(cm) {\n      var cur = cm.getCursor(), start = lineStart(cm, cur.line);\n      var line = cm.getLineHandle(start.line);\n      var order = getOrder(line);\n      if (!order || order[0].level == 0) {\n        var firstNonWS = Math.max(0, line.text.search(/\\S/));\n        var inWS = cur.line == start.line && cur.ch <= firstNonWS && cur.ch;\n        cm.extendSelection(Pos(start.line, inWS ? 0 : firstNonWS));\n      } else cm.extendSelection(start);\n    },\n    goLineEnd: function(cm) {\n      cm.extendSelection(lineEnd(cm, cm.getCursor().line));\n    },\n    goLineRight: function(cm) {\n      var top = cm.charCoords(cm.getCursor(), \"div\").top + 5;\n      cm.extendSelection(cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\"));\n    },\n    goLineLeft: function(cm) {\n      var top = cm.charCoords(cm.getCursor(), \"div\").top + 5;\n      cm.extendSelection(cm.coordsChar({left: 0, top: top}, \"div\"));\n    },\n    goLineUp: function(cm) {cm.moveV(-1, \"line\");},\n    goLineDown: function(cm) {cm.moveV(1, \"line\");},\n    goPageUp: function(cm) {cm.moveV(-1, \"page\");},\n    goPageDown: function(cm) {cm.moveV(1, \"page\");},\n    goCharLeft: function(cm) {cm.moveH(-1, \"char\");},\n    goCharRight: function(cm) {cm.moveH(1, \"char\");},\n    goColumnLeft: function(cm) {cm.moveH(-1, \"column\");},\n    goColumnRight: function(cm) {cm.moveH(1, \"column\");},\n    goWordLeft: function(cm) {cm.moveH(-1, \"word\");},\n    goGroupRight: function(cm) {cm.moveH(1, \"group\");},\n    goGroupLeft: function(cm) {cm.moveH(-1, \"group\");},\n    goWordRight: function(cm) {cm.moveH(1, \"word\");},\n    delCharBefore: function(cm) {cm.deleteH(-1, \"char\");},\n    delCharAfter: function(cm) {cm.deleteH(1, \"char\");},\n    delWordBefore: function(cm) {cm.deleteH(-1, \"word\");},\n    delWordAfter: function(cm) {cm.deleteH(1, \"word\");},\n    delGroupBefore: function(cm) {cm.deleteH(-1, \"group\");},\n    delGroupAfter: function(cm) {cm.deleteH(1, \"group\");},\n    indentAuto: function(cm) {cm.indentSelection(\"smart\");},\n    indentMore: function(cm) {cm.indentSelection(\"add\");},\n    indentLess: function(cm) {cm.indentSelection(\"subtract\");},\n    insertTab: function(cm) {cm.replaceSelection(\"\\t\", \"end\", \"+input\");},\n    defaultTab: function(cm) {\n      if (cm.somethingSelected()) cm.indentSelection(\"add\");\n      else cm.replaceSelection(\"\\t\", \"end\", \"+input\");\n    },\n    transposeChars: function(cm) {\n      var cur = cm.getCursor(), line = cm.getLine(cur.line);\n      if (cur.ch > 0 && cur.ch < line.length - 1)\n        cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1),\n                        Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1));\n    },\n    newlineAndIndent: function(cm) {\n      operation(cm, function() {\n        cm.replaceSelection(\"\\n\", \"end\", \"+input\");\n        cm.indentLine(cm.getCursor().line, null, true);\n      })();\n    },\n    toggleOverwrite: function(cm) {cm.toggleOverwrite();}\n  };\n\n  // STANDARD KEYMAPS\n\n  var keyMap = CodeMirror.keyMap = {};\n  keyMap.basic = {\n    \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n    \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n    \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n    \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n    \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\"\n  };\n  // Note that the save and find-related commands aren't defined by\n  // default. Unknown commands are simply ignored.\n  keyMap.pcDefault = {\n    \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n    \"Ctrl-Home\": \"goDocStart\", \"Alt-Up\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Down\": \"goDocEnd\",\n    \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n    \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n    \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n    \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n    fallthrough: \"basic\"\n  };\n  keyMap.macDefault = {\n    \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n    \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n    \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineStart\", \"Cmd-Right\": \"goLineEnd\", \"Alt-Backspace\": \"delGroupBefore\",\n    \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n    \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n    \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delLineLeft\",\n    fallthrough: [\"basic\", \"emacsy\"]\n  };\n  keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n  keyMap.emacsy = {\n    \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n    \"Alt-F\": \"goWordRight\", \"Alt-B\": \"goWordLeft\", \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n    \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\", \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\",\n    \"Alt-D\": \"delWordAfter\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\", \"Ctrl-T\": \"transposeChars\"\n  };\n\n  // KEYMAP DISPATCH\n\n  function getKeyMap(val) {\n    if (typeof val == \"string\") return keyMap[val];\n    else return val;\n  }\n\n  function lookupKey(name, maps, handle) {\n    function lookup(map) {\n      map = getKeyMap(map);\n      var found = map[name];\n      if (found === false) return \"stop\";\n      if (found != null && handle(found)) return true;\n      if (map.nofallthrough) return \"stop\";\n\n      var fallthrough = map.fallthrough;\n      if (fallthrough == null) return false;\n      if (Object.prototype.toString.call(fallthrough) != \"[object Array]\")\n        return lookup(fallthrough);\n      for (var i = 0, e = fallthrough.length; i < e; ++i) {\n        var done = lookup(fallthrough[i]);\n        if (done) return done;\n      }\n      return false;\n    }\n\n    for (var i = 0; i < maps.length; ++i) {\n      var done = lookup(maps[i]);\n      if (done) return done != \"stop\";\n    }\n  }\n  function isModifierKey(event) {\n    var name = keyNames[event.keyCode];\n    return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\";\n  }\n  function keyName(event, noShift) {\n    if (opera && event.keyCode == 34 && event[\"char\"]) return false;\n    var name = keyNames[event.keyCode];\n    if (name == null || event.altGraphKey) return false;\n    if (event.altKey) name = \"Alt-\" + name;\n    if (flipCtrlCmd ? event.metaKey : event.ctrlKey) name = \"Ctrl-\" + name;\n    if (flipCtrlCmd ? event.ctrlKey : event.metaKey) name = \"Cmd-\" + name;\n    if (!noShift && event.shiftKey) name = \"Shift-\" + name;\n    return name;\n  }\n  CodeMirror.lookupKey = lookupKey;\n  CodeMirror.isModifierKey = isModifierKey;\n  CodeMirror.keyName = keyName;\n\n  // FROMTEXTAREA\n\n  CodeMirror.fromTextArea = function(textarea, options) {\n    if (!options) options = {};\n    options.value = textarea.value;\n    if (!options.tabindex && textarea.tabindex)\n      options.tabindex = textarea.tabindex;\n    if (!options.placeholder && textarea.placeholder)\n      options.placeholder = textarea.placeholder;\n    // Set autofocus to true if this textarea is focused, or if it has\n    // autofocus and no other element is focused.\n    if (options.autofocus == null) {\n      var hasFocus = document.body;\n      // doc.activeElement occasionally throws on IE\n      try { hasFocus = document.activeElement; } catch(e) {}\n      options.autofocus = hasFocus == textarea ||\n        textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n    }\n\n    function save() {textarea.value = cm.getValue();}\n    if (textarea.form) {\n      on(textarea.form, \"submit\", save);\n      // Deplorable hack to make the submit method do the right thing.\n      if (!options.leaveSubmitMethodAlone) {\n        var form = textarea.form, realSubmit = form.submit;\n        try {\n          var wrappedSubmit = form.submit = function() {\n            save();\n            form.submit = realSubmit;\n            form.submit();\n            form.submit = wrappedSubmit;\n          };\n        } catch(e) {}\n      }\n    }\n\n    textarea.style.display = \"none\";\n    var cm = CodeMirror(function(node) {\n      textarea.parentNode.insertBefore(node, textarea.nextSibling);\n    }, options);\n    cm.save = save;\n    cm.getTextArea = function() { return textarea; };\n    cm.toTextArea = function() {\n      save();\n      textarea.parentNode.removeChild(cm.getWrapperElement());\n      textarea.style.display = \"\";\n      if (textarea.form) {\n        off(textarea.form, \"submit\", save);\n        if (typeof textarea.form.submit == \"function\")\n          textarea.form.submit = realSubmit;\n      }\n    };\n    return cm;\n  };\n\n  // STRING STREAM\n\n  // Fed to the mode parsers, provides helper functions to make\n  // parsers more succinct.\n\n  // The character stream used by a mode's parser.\n  function StringStream(string, tabSize) {\n    this.pos = this.start = 0;\n    this.string = string;\n    this.tabSize = tabSize || 8;\n    this.lastColumnPos = this.lastColumnValue = 0;\n  }\n\n  StringStream.prototype = {\n    eol: function() {return this.pos >= this.string.length;},\n    sol: function() {return this.pos == 0;},\n    peek: function() {return this.string.charAt(this.pos) || undefined;},\n    next: function() {\n      if (this.pos < this.string.length)\n        return this.string.charAt(this.pos++);\n    },\n    eat: function(match) {\n      var ch = this.string.charAt(this.pos);\n      if (typeof match == \"string\") var ok = ch == match;\n      else var ok = ch && (match.test ? match.test(ch) : match(ch));\n      if (ok) {++this.pos; return ch;}\n    },\n    eatWhile: function(match) {\n      var start = this.pos;\n      while (this.eat(match)){}\n      return this.pos > start;\n    },\n    eatSpace: function() {\n      var start = this.pos;\n      while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n      return this.pos > start;\n    },\n    skipToEnd: function() {this.pos = this.string.length;},\n    skipTo: function(ch) {\n      var found = this.string.indexOf(ch, this.pos);\n      if (found > -1) {this.pos = found; return true;}\n    },\n    backUp: function(n) {this.pos -= n;},\n    column: function() {\n      if (this.lastColumnPos < this.start) {\n        this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n        this.lastColumnPos = this.start;\n      }\n      return this.lastColumnValue;\n    },\n    indentation: function() {return countColumn(this.string, null, this.tabSize);},\n    match: function(pattern, consume, caseInsensitive) {\n      if (typeof pattern == \"string\") {\n        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n        var substr = this.string.substr(this.pos, pattern.length);\n        if (cased(substr) == cased(pattern)) {\n          if (consume !== false) this.pos += pattern.length;\n          return true;\n        }\n      } else {\n        var match = this.string.slice(this.pos).match(pattern);\n        if (match && match.index > 0) return null;\n        if (match && consume !== false) this.pos += match[0].length;\n        return match;\n      }\n    },\n    current: function(){return this.string.slice(this.start, this.pos);}\n  };\n  CodeMirror.StringStream = StringStream;\n\n  // TEXTMARKERS\n\n  function TextMarker(doc, type) {\n    this.lines = [];\n    this.type = type;\n    this.doc = doc;\n  }\n  CodeMirror.TextMarker = TextMarker;\n  eventMixin(TextMarker);\n\n  TextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    var cm = this.doc.cm, withOp = cm && !cm.curOp;\n    if (withOp) startOperation(cm);\n    if (hasHandler(this, \"clear\")) {\n      var found = this.find();\n      if (found) signalLater(this, \"clear\", found.from, found.to);\n    }\n    var min = null, max = null;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (span.to != null) max = lineNo(line);\n      line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n      if (span.from != null)\n        min = lineNo(line);\n      else if (this.collapsed && !lineIsHidden(this.doc, line) && cm)\n        updateLineHeight(line, textHeight(cm.display));\n    }\n    if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {\n      var visual = visualLine(cm.doc, this.lines[i]), len = lineLength(cm.doc, visual);\n      if (len > cm.display.maxLineLength) {\n        cm.display.maxLine = visual;\n        cm.display.maxLineLength = len;\n        cm.display.maxLineChanged = true;\n      }\n    }\n\n    if (min != null && cm) regChange(cm, min, max + 1);\n    this.lines.length = 0;\n    this.explicitlyCleared = true;\n    if (this.atomic && this.doc.cantEdit) {\n      this.doc.cantEdit = false;\n      if (cm) reCheckSelection(cm);\n    }\n    if (withOp) endOperation(cm);\n  };\n\n  TextMarker.prototype.find = function() {\n    var from, to;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (span.from != null || span.to != null) {\n        var found = lineNo(line);\n        if (span.from != null) from = Pos(found, span.from);\n        if (span.to != null) to = Pos(found, span.to);\n      }\n    }\n    if (this.type == \"bookmark\") return from;\n    return from && {from: from, to: to};\n  };\n\n  TextMarker.prototype.changed = function() {\n    var pos = this.find(), cm = this.doc.cm;\n    if (!pos || !cm) return;\n    if (this.type != \"bookmark\") pos = pos.from;\n    var line = getLine(this.doc, pos.line);\n    clearCachedMeasurement(cm, line);\n    if (pos.line >= cm.display.showingFrom && pos.line < cm.display.showingTo) {\n      for (var node = cm.display.lineDiv.firstChild; node; node = node.nextSibling) if (node.lineObj == line) {\n        if (node.offsetHeight != line.height) updateLineHeight(line, node.offsetHeight);\n        break;\n      }\n      runInOp(cm, function() {\n        cm.curOp.selectionChanged = cm.curOp.forceUpdate = cm.curOp.updateMaxLine = true;\n      });\n    }\n  };\n\n  TextMarker.prototype.attachLine = function(line) {\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n        (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);\n    }\n    this.lines.push(line);\n  };\n  TextMarker.prototype.detachLine = function(line) {\n    this.lines.splice(indexOf(this.lines, line), 1);\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n    }\n  };\n\n  function markText(doc, from, to, options, type) {\n    if (options && options.shared) return markTextShared(doc, from, to, options, type);\n    if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);\n\n    var marker = new TextMarker(doc, type);\n    if (posLess(to, from) || posEq(from, to) && type == \"range\" &&\n        !(options.inclusiveLeft && options.inclusiveRight))\n      return marker;\n    if (options) copyObj(options, marker);\n    if (marker.replacedWith) {\n      marker.collapsed = true;\n      marker.replacedWith = elt(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n      if (!options.handleMouseEvents) marker.replacedWith.ignoreEvents = true;\n    }\n    if (marker.collapsed) sawCollapsedSpans = true;\n\n    if (marker.addToHistory)\n      addToHistory(doc, {from: from, to: to, origin: \"markText\"},\n                   {head: doc.sel.head, anchor: doc.sel.anchor}, NaN);\n\n    var curLine = from.line, size = 0, collapsedAtStart, collapsedAtEnd, cm = doc.cm, updateMaxLine;\n    doc.iter(curLine, to.line + 1, function(line) {\n      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(doc, line) == cm.display.maxLine)\n        updateMaxLine = true;\n      var span = {from: null, to: null, marker: marker};\n      size += line.text.length;\n      if (curLine == from.line) {span.from = from.ch; size -= from.ch;}\n      if (curLine == to.line) {span.to = to.ch; size -= line.text.length - to.ch;}\n      if (marker.collapsed) {\n        if (curLine == to.line) collapsedAtEnd = collapsedSpanAt(line, to.ch);\n        if (curLine == from.line) collapsedAtStart = collapsedSpanAt(line, from.ch);\n        else updateLineHeight(line, 0);\n      }\n      addMarkedSpan(line, span);\n      ++curLine;\n    });\n    if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {\n      if (lineIsHidden(doc, line)) updateLineHeight(line, 0);\n    });\n\n    if (marker.clearOnEnter) on(marker, \"beforeCursorEnter\", function() { marker.clear(); });\n\n    if (marker.readOnly) {\n      sawReadOnlySpans = true;\n      if (doc.history.done.length || doc.history.undone.length)\n        doc.clearHistory();\n    }\n    if (marker.collapsed) {\n      if (collapsedAtStart != collapsedAtEnd)\n        throw new Error(\"Inserting collapsed marker overlapping an existing one\");\n      marker.size = size;\n      marker.atomic = true;\n    }\n    if (cm) {\n      if (updateMaxLine) cm.curOp.updateMaxLine = true;\n      if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.collapsed)\n        regChange(cm, from.line, to.line + 1);\n      if (marker.atomic) reCheckSelection(cm);\n    }\n    return marker;\n  }\n\n  // SHARED TEXTMARKERS\n\n  function SharedTextMarker(markers, primary) {\n    this.markers = markers;\n    this.primary = primary;\n    for (var i = 0, me = this; i < markers.length; ++i) {\n      markers[i].parent = this;\n      on(markers[i], \"clear\", function(){me.clear();});\n    }\n  }\n  CodeMirror.SharedTextMarker = SharedTextMarker;\n  eventMixin(SharedTextMarker);\n\n  SharedTextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    this.explicitlyCleared = true;\n    for (var i = 0; i < this.markers.length; ++i)\n      this.markers[i].clear();\n    signalLater(this, \"clear\");\n  };\n  SharedTextMarker.prototype.find = function() {\n    return this.primary.find();\n  };\n\n  function markTextShared(doc, from, to, options, type) {\n    options = copyObj(options);\n    options.shared = false;\n    var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n    var widget = options.replacedWith;\n    linkedDocs(doc, function(doc) {\n      if (widget) options.replacedWith = widget.cloneNode(true);\n      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n      for (var i = 0; i < doc.linked.length; ++i)\n        if (doc.linked[i].isParent) return;\n      primary = lst(markers);\n    });\n    return new SharedTextMarker(markers, primary);\n  }\n\n  // TEXTMARKER SPANS\n\n  function getMarkedSpanFor(spans, marker) {\n    if (spans) for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.marker == marker) return span;\n    }\n  }\n  function removeMarkedSpan(spans, span) {\n    for (var r, i = 0; i < spans.length; ++i)\n      if (spans[i] != span) (r || (r = [])).push(spans[i]);\n    return r;\n  }\n  function addMarkedSpan(line, span) {\n    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n    span.marker.attachLine(line);\n  }\n\n  function markedSpansBefore(old, startCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n      if (startsBefore ||\n          (marker.inclusiveLeft && marker.inclusiveRight || marker.type == \"bookmark\") &&\n          span.from == startCh && (!isInsert || !span.marker.insertLeft)) {\n        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);\n        (nw || (nw = [])).push({from: span.from,\n                                to: endsAfter ? null : span.to,\n                                marker: marker});\n      }\n    }\n    return nw;\n  }\n\n  function markedSpansAfter(old, endCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n      if (endsAfter || marker.type == \"bookmark\" && span.from == endCh && (!isInsert || span.marker.insertLeft)) {\n        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);\n        (nw || (nw = [])).push({from: startsBefore ? null : span.from - endCh,\n                                to: span.to == null ? null : span.to - endCh,\n                                marker: marker});\n      }\n    }\n    return nw;\n  }\n\n  function stretchSpansOverChange(doc, change) {\n    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n    if (!oldFirst && !oldLast) return null;\n\n    var startCh = change.from.ch, endCh = change.to.ch, isInsert = posEq(change.from, change.to);\n    // Get the spans that 'stick out' on both sides\n    var first = markedSpansBefore(oldFirst, startCh, isInsert);\n    var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n    // Next, merge those two ends\n    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n    if (first) {\n      // Fix up .to properties of first\n      for (var i = 0; i < first.length; ++i) {\n        var span = first[i];\n        if (span.to == null) {\n          var found = getMarkedSpanFor(last, span.marker);\n          if (!found) span.to = startCh;\n          else if (sameLine) span.to = found.to == null ? null : found.to + offset;\n        }\n      }\n    }\n    if (last) {\n      // Fix up .from in last (or move them into first in case of sameLine)\n      for (var i = 0; i < last.length; ++i) {\n        var span = last[i];\n        if (span.to != null) span.to += offset;\n        if (span.from == null) {\n          var found = getMarkedSpanFor(first, span.marker);\n          if (!found) {\n            span.from = offset;\n            if (sameLine) (first || (first = [])).push(span);\n          }\n        } else {\n          span.from += offset;\n          if (sameLine) (first || (first = [])).push(span);\n        }\n      }\n    }\n    if (sameLine && first) {\n      // Make sure we didn't create any zero-length spans\n      for (var i = 0; i < first.length; ++i)\n        if (first[i].from != null && first[i].from == first[i].to && first[i].marker.type != \"bookmark\")\n          first.splice(i--, 1);\n      if (!first.length) first = null;\n    }\n\n    var newMarkers = [first];\n    if (!sameLine) {\n      // Fill gap with whole-line-spans\n      var gap = change.text.length - 2, gapMarkers;\n      if (gap > 0 && first)\n        for (var i = 0; i < first.length; ++i)\n          if (first[i].to == null)\n            (gapMarkers || (gapMarkers = [])).push({from: null, to: null, marker: first[i].marker});\n      for (var i = 0; i < gap; ++i)\n        newMarkers.push(gapMarkers);\n      newMarkers.push(last);\n    }\n    return newMarkers;\n  }\n\n  function mergeOldSpans(doc, change) {\n    var old = getOldSpans(doc, change);\n    var stretched = stretchSpansOverChange(doc, change);\n    if (!old) return stretched;\n    if (!stretched) return old;\n\n    for (var i = 0; i < old.length; ++i) {\n      var oldCur = old[i], stretchCur = stretched[i];\n      if (oldCur && stretchCur) {\n        spans: for (var j = 0; j < stretchCur.length; ++j) {\n          var span = stretchCur[j];\n          for (var k = 0; k < oldCur.length; ++k)\n            if (oldCur[k].marker == span.marker) continue spans;\n          oldCur.push(span);\n        }\n      } else if (stretchCur) {\n        old[i] = stretchCur;\n      }\n    }\n    return old;\n  }\n\n  function removeReadOnlyRanges(doc, from, to) {\n    var markers = null;\n    doc.iter(from.line, to.line + 1, function(line) {\n      if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {\n        var mark = line.markedSpans[i].marker;\n        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n          (markers || (markers = [])).push(mark);\n      }\n    });\n    if (!markers) return null;\n    var parts = [{from: from, to: to}];\n    for (var i = 0; i < markers.length; ++i) {\n      var mk = markers[i], m = mk.find();\n      for (var j = 0; j < parts.length; ++j) {\n        var p = parts[j];\n        if (posLess(p.to, m.from) || posLess(m.to, p.from)) continue;\n        var newParts = [j, 1];\n        if (posLess(p.from, m.from) || !mk.inclusiveLeft && posEq(p.from, m.from))\n          newParts.push({from: p.from, to: m.from});\n        if (posLess(m.to, p.to) || !mk.inclusiveRight && posEq(p.to, m.to))\n          newParts.push({from: m.to, to: p.to});\n        parts.splice.apply(parts, newParts);\n        j += newParts.length - 1;\n      }\n    }\n    return parts;\n  }\n\n  function collapsedSpanAt(line, ch) {\n    var sps = sawCollapsedSpans && line.markedSpans, found;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      if ((sp.from == null || sp.from < ch) &&\n          (sp.to == null || sp.to > ch) &&\n          (!found || found.width < sp.marker.width))\n        found = sp.marker;\n    }\n    return found;\n  }\n  function collapsedSpanAtStart(line) { return collapsedSpanAt(line, -1); }\n  function collapsedSpanAtEnd(line) { return collapsedSpanAt(line, line.text.length + 1); }\n\n  function visualLine(doc, line) {\n    var merged;\n    while (merged = collapsedSpanAtStart(line))\n      line = getLine(doc, merged.find().from.line);\n    return line;\n  }\n\n  function lineIsHidden(doc, line) {\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      if (sp.from == null) return true;\n      if (sp.marker.replacedWith) continue;\n      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n        return true;\n    }\n  }\n  function lineIsHiddenInner(doc, line, span) {\n    if (span.to == null) {\n      var end = span.marker.find().to, endLine = getLine(doc, end.line);\n      return lineIsHiddenInner(doc, endLine, getMarkedSpanFor(endLine.markedSpans, span.marker));\n    }\n    if (span.marker.inclusiveRight && span.to == line.text.length)\n      return true;\n    for (var sp, i = 0; i < line.markedSpans.length; ++i) {\n      sp = line.markedSpans[i];\n      if (sp.marker.collapsed && !sp.marker.replacedWith && sp.from == span.to &&\n          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n          lineIsHiddenInner(doc, line, sp)) return true;\n    }\n  }\n\n  function detachMarkedSpans(line) {\n    var spans = line.markedSpans;\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.detachLine(line);\n    line.markedSpans = null;\n  }\n\n  function attachMarkedSpans(line, spans) {\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.attachLine(line);\n    line.markedSpans = spans;\n  }\n\n  // LINE WIDGETS\n\n  var LineWidget = CodeMirror.LineWidget = function(cm, node, options) {\n    if (options) for (var opt in options) if (options.hasOwnProperty(opt))\n      this[opt] = options[opt];\n    this.cm = cm;\n    this.node = node;\n  };\n  eventMixin(LineWidget);\n  function widgetOperation(f) {\n    return function() {\n      var withOp = !this.cm.curOp;\n      if (withOp) startOperation(this.cm);\n      try {var result = f.apply(this, arguments);}\n      finally {if (withOp) endOperation(this.cm);}\n      return result;\n    };\n  }\n  LineWidget.prototype.clear = widgetOperation(function() {\n    var ws = this.line.widgets, no = lineNo(this.line);\n    if (no == null || !ws) return;\n    for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);\n    if (!ws.length) this.line.widgets = null;\n    var aboveVisible = heightAtLine(this.cm, this.line) < this.cm.doc.scrollTop;\n    updateLineHeight(this.line, Math.max(0, this.line.height - widgetHeight(this)));\n    if (aboveVisible) addToScrollPos(this.cm, 0, -this.height);\n    regChange(this.cm, no, no + 1);\n  });\n  LineWidget.prototype.changed = widgetOperation(function() {\n    var oldH = this.height;\n    this.height = null;\n    var diff = widgetHeight(this) - oldH;\n    if (!diff) return;\n    updateLineHeight(this.line, this.line.height + diff);\n    var no = lineNo(this.line);\n    regChange(this.cm, no, no + 1);\n  });\n\n  function widgetHeight(widget) {\n    if (widget.height != null) return widget.height;\n    if (!widget.node.parentNode || widget.node.parentNode.nodeType != 1)\n      removeChildrenAndAdd(widget.cm.display.measure, elt(\"div\", [widget.node], null, \"position: relative\"));\n    return widget.height = widget.node.offsetHeight;\n  }\n\n  function addLineWidget(cm, handle, node, options) {\n    var widget = new LineWidget(cm, node, options);\n    if (widget.noHScroll) cm.display.alignWidgets = true;\n    changeLine(cm, handle, function(line) {\n      var widgets = line.widgets || (line.widgets = []);\n      if (widget.insertAt == null) widgets.push(widget);\n      else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);\n      widget.line = line;\n      if (!lineIsHidden(cm.doc, line) || widget.showIfHidden) {\n        var aboveVisible = heightAtLine(cm, line) < cm.doc.scrollTop;\n        updateLineHeight(line, line.height + widgetHeight(widget));\n        if (aboveVisible) addToScrollPos(cm, 0, widget.height);\n      }\n      return true;\n    });\n    return widget;\n  }\n\n  // LINE DATA STRUCTURE\n\n  // Line objects. These hold state related to a line, including\n  // highlighting info (the styles array).\n  var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {\n    this.text = text;\n    attachMarkedSpans(this, markedSpans);\n    this.height = estimateHeight ? estimateHeight(this) : 1;\n  };\n  eventMixin(Line);\n  Line.prototype.lineNo = function() { return lineNo(this); };\n\n  function updateLine(line, text, markedSpans, estimateHeight) {\n    line.text = text;\n    if (line.stateAfter) line.stateAfter = null;\n    if (line.styles) line.styles = null;\n    if (line.order != null) line.order = null;\n    detachMarkedSpans(line);\n    attachMarkedSpans(line, markedSpans);\n    var estHeight = estimateHeight ? estimateHeight(line) : 1;\n    if (estHeight != line.height) updateLineHeight(line, estHeight);\n  }\n\n  function cleanUpLine(line) {\n    line.parent = null;\n    detachMarkedSpans(line);\n  }\n\n  // Run the given mode's parser over a line, update the styles\n  // array, which contains alternating fragments of text and CSS\n  // classes.\n  function runMode(cm, text, mode, state, f, forceToEnd) {\n    var flattenSpans = mode.flattenSpans;\n    if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;\n    var curStart = 0, curStyle = null;\n    var stream = new StringStream(text, cm.options.tabSize), style;\n    if (text == \"\" && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      if (stream.pos > cm.options.maxHighlightLength) {\n        flattenSpans = false;\n        if (forceToEnd) processLine(cm, text, state, stream.pos);\n        stream.pos = text.length;\n        style = null;\n      } else {\n        style = mode.token(stream, state);\n      }\n      if (!flattenSpans || curStyle != style) {\n        if (curStart < stream.start) f(stream.start, curStyle);\n        curStart = stream.start; curStyle = style;\n      }\n      stream.start = stream.pos;\n    }\n    while (curStart < stream.pos) {\n      // Webkit seems to refuse to render text nodes longer than 57444 characters\n      var pos = Math.min(stream.pos, curStart + 50000);\n      f(pos, curStyle);\n      curStart = pos;\n    }\n  }\n\n  function highlightLine(cm, line, state, forceToEnd) {\n    // A styles array always starts with a number identifying the\n    // mode/overlays that it is based on (for easy invalidation).\n    var st = [cm.state.modeGen];\n    // Compute the base array of styles\n    runMode(cm, line.text, cm.doc.mode, state, function(end, style) {\n      st.push(end, style);\n    }, forceToEnd);\n\n    // Run overlays, adjust style array.\n    for (var o = 0; o < cm.state.overlays.length; ++o) {\n      var overlay = cm.state.overlays[o], i = 1, at = 0;\n      runMode(cm, line.text, overlay.mode, true, function(end, style) {\n        var start = i;\n        // Ensure there's a token end at the current position, and that i points at it\n        while (at < end) {\n          var i_end = st[i];\n          if (i_end > end)\n            st.splice(i, 1, end, st[i+1], i_end);\n          i += 2;\n          at = Math.min(end, i_end);\n        }\n        if (!style) return;\n        if (overlay.opaque) {\n          st.splice(start, i - start, end, style);\n          i = start + 2;\n        } else {\n          for (; start < i; start += 2) {\n            var cur = st[start+1];\n            st[start+1] = cur ? cur + \" \" + style : style;\n          }\n        }\n      });\n    }\n\n    return st;\n  }\n\n  function getLineStyles(cm, line) {\n    if (!line.styles || line.styles[0] != cm.state.modeGen)\n      line.styles = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line)));\n    return line.styles;\n  }\n\n  // Lightweight form of highlight -- proceed over this line and\n  // update state, but don't save a style array.\n  function processLine(cm, text, state, startAt) {\n    var mode = cm.doc.mode;\n    var stream = new StringStream(text, cm.options.tabSize);\n    stream.start = stream.pos = startAt || 0;\n    if (text == \"\" && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol() && stream.pos <= cm.options.maxHighlightLength) {\n      mode.token(stream, state);\n      stream.start = stream.pos;\n    }\n  }\n\n  var styleToClassCache = {};\n  function interpretTokenStyle(style, builder) {\n    if (!style) return null;\n    for (;;) {\n      var lineClass = style.match(/(?:^|\\s)line-(background-)?(\\S+)/);\n      if (!lineClass) break;\n      style = style.slice(0, lineClass.index) + style.slice(lineClass.index + lineClass[0].length);\n      var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n      if (builder[prop] == null)\n        builder[prop] = lineClass[2];\n      else if (!(new RegExp(\"(?:^|\\s)\" + lineClass[2] + \"(?:$|\\s)\")).test(builder[prop]))\n        builder[prop] += \" \" + lineClass[2];\n    }\n    return styleToClassCache[style] ||\n      (styleToClassCache[style] = \"cm-\" + style.replace(/ +/g, \" cm-\"));\n  }\n\n  function buildLineContent(cm, realLine, measure, copyWidgets) {\n    var merged, line = realLine, empty = true;\n    while (merged = collapsedSpanAtStart(line))\n      line = getLine(cm.doc, merged.find().from.line);\n\n    var builder = {pre: elt(\"pre\"), col: 0, pos: 0,\n                   measure: null, measuredSomething: false, cm: cm,\n                   copyWidgets: copyWidgets};\n\n    do {\n      if (line.text) empty = false;\n      builder.measure = line == realLine && measure;\n      builder.pos = 0;\n      builder.addToken = builder.measure ? buildTokenMeasure : buildToken;\n      if ((ie || webkit) && cm.getOption(\"lineWrapping\"))\n        builder.addToken = buildTokenSplitSpaces(builder.addToken);\n      var next = insertLineContent(line, builder, getLineStyles(cm, line));\n      if (measure && line == realLine && !builder.measuredSomething) {\n        measure[0] = builder.pre.appendChild(zeroWidthElement(cm.display.measure));\n        builder.measuredSomething = true;\n      }\n      if (next) line = getLine(cm.doc, next.to.line);\n    } while (next);\n\n    if (measure && !builder.measuredSomething && !measure[0])\n      measure[0] = builder.pre.appendChild(empty ? elt(\"span\", \"\\u00a0\") : zeroWidthElement(cm.display.measure));\n    if (!builder.pre.firstChild && !lineIsHidden(cm.doc, realLine))\n      builder.pre.appendChild(document.createTextNode(\"\\u00a0\"));\n\n    var order;\n    // Work around problem with the reported dimensions of single-char\n    // direction spans on IE (issue #1129). See also the comment in\n    // cursorCoords.\n    if (measure && (ie || ie_gt10) && (order = getOrder(line))) {\n      var l = order.length - 1;\n      if (order[l].from == order[l].to) --l;\n      var last = order[l], prev = order[l - 1];\n      if (last.from + 1 == last.to && prev && last.level < prev.level) {\n        var span = measure[builder.pos - 1];\n        if (span) span.parentNode.insertBefore(span.measureRight = zeroWidthElement(cm.display.measure),\n                                               span.nextSibling);\n      }\n    }\n\n    var textClass = builder.textClass ? builder.textClass + \" \" + (realLine.textClass || \"\") : realLine.textClass;\n    if (textClass) builder.pre.className = textClass;\n\n    signal(cm, \"renderLine\", cm, realLine, builder.pre);\n    return builder;\n  }\n\n  function defaultSpecialCharPlaceholder(ch) {\n    var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n    token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n    return token;\n  }\n\n  function buildToken(builder, text, style, startStyle, endStyle, title) {\n    if (!text) return;\n    var special = builder.cm.options.specialChars;\n    if (!special.test(text)) {\n      builder.col += text.length;\n      var content = document.createTextNode(text);\n    } else {\n      var content = document.createDocumentFragment(), pos = 0;\n      while (true) {\n        special.lastIndex = pos;\n        var m = special.exec(text);\n        var skipped = m ? m.index - pos : text.length - pos;\n        if (skipped) {\n          content.appendChild(document.createTextNode(text.slice(pos, pos + skipped)));\n          builder.col += skipped;\n        }\n        if (!m) break;\n        pos += skipped + 1;\n        if (m[0] == \"\\t\") {\n          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n          content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n          builder.col += tabWidth;\n        } else {\n          var token = builder.cm.options.specialCharPlaceholder(m[0]);\n          content.appendChild(token);\n          builder.col += 1;\n        }\n      }\n    }\n    if (style || startStyle || endStyle || builder.measure) {\n      var fullStyle = style || \"\";\n      if (startStyle) fullStyle += startStyle;\n      if (endStyle) fullStyle += endStyle;\n      var token = elt(\"span\", [content], fullStyle);\n      if (title) token.title = title;\n      return builder.pre.appendChild(token);\n    }\n    builder.pre.appendChild(content);\n  }\n\n  function buildTokenMeasure(builder, text, style, startStyle, endStyle) {\n    var wrapping = builder.cm.options.lineWrapping;\n    for (var i = 0; i < text.length; ++i) {\n      var ch = text.charAt(i), start = i == 0;\n      if (ch >= \"\\ud800\" && ch < \"\\udbff\" && i < text.length - 1) {\n        ch = text.slice(i, i + 2);\n        ++i;\n      } else if (i && wrapping && spanAffectsWrapping(text, i)) {\n        builder.pre.appendChild(elt(\"wbr\"));\n      }\n      var old = builder.measure[builder.pos];\n      var span = builder.measure[builder.pos] =\n        buildToken(builder, ch, style,\n                   start && startStyle, i == text.length - 1 && endStyle);\n      if (old) span.leftSide = old.leftSide || old;\n      // In IE single-space nodes wrap differently than spaces\n      // embedded in larger text nodes, except when set to\n      // white-space: normal (issue #1268).\n      if (ie && wrapping && ch == \" \" && i && !/\\s/.test(text.charAt(i - 1)) &&\n          i < text.length - 1 && !/\\s/.test(text.charAt(i + 1)))\n        span.style.whiteSpace = \"normal\";\n      builder.pos += ch.length;\n    }\n    if (text.length) builder.measuredSomething = true;\n  }\n\n  function buildTokenSplitSpaces(inner) {\n    function split(old) {\n      var out = \" \";\n      for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? \" \" : \"\\u00a0\";\n      out += \" \";\n      return out;\n    }\n    return function(builder, text, style, startStyle, endStyle, title) {\n      return inner(builder, text.replace(/ {3,}/g, split), style, startStyle, endStyle, title);\n    };\n  }\n\n  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n    var widget = !ignoreWidget && marker.replacedWith;\n    if (widget) {\n      if (builder.copyWidgets) widget = widget.cloneNode(true);\n      builder.pre.appendChild(widget);\n      if (builder.measure) {\n        if (size) {\n          builder.measure[builder.pos] = widget;\n        } else {\n          var elt = zeroWidthElement(builder.cm.display.measure);\n          if (marker.type == \"bookmark\" && !marker.insertLeft)\n            builder.measure[builder.pos] = builder.pre.appendChild(elt);\n          else if (builder.measure[builder.pos])\n            return;\n          else\n            builder.measure[builder.pos] = builder.pre.insertBefore(elt, widget);\n        }\n        builder.measuredSomething = true;\n      }\n    }\n    builder.pos += size;\n  }\n\n  // Outputs a number of spans to make up a line, taking highlighting\n  // and marked text into account.\n  function insertLineContent(line, builder, styles) {\n    var spans = line.markedSpans, allText = line.text, at = 0;\n    if (!spans) {\n      for (var i = 1; i < styles.length; i+=2)\n        builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder));\n      return;\n    }\n\n    var len = allText.length, pos = 0, i = 1, text = \"\", style;\n    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;\n    for (;;) {\n      if (nextChange == pos) { // Update current marker set\n        spanStyle = spanEndStyle = spanStartStyle = title = \"\";\n        collapsed = null; nextChange = Infinity;\n        var foundBookmarks = [];\n        for (var j = 0; j < spans.length; ++j) {\n          var sp = spans[j], m = sp.marker;\n          if (sp.from <= pos && (sp.to == null || sp.to > pos)) {\n            if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = \"\"; }\n            if (m.className) spanStyle += \" \" + m.className;\n            if (m.startStyle && sp.from == pos) spanStartStyle += \" \" + m.startStyle;\n            if (m.endStyle && sp.to == nextChange) spanEndStyle += \" \" + m.endStyle;\n            if (m.title && !title) title = m.title;\n            if (m.collapsed && (!collapsed || collapsed.marker.size < m.size))\n              collapsed = sp;\n          } else if (sp.from > pos && nextChange > sp.from) {\n            nextChange = sp.from;\n          }\n          if (m.type == \"bookmark\" && sp.from == pos && m.replacedWith) foundBookmarks.push(m);\n        }\n        if (collapsed && (collapsed.from || 0) == pos) {\n          buildCollapsedSpan(builder, (collapsed.to == null ? len : collapsed.to) - pos,\n                             collapsed.marker, collapsed.from == null);\n          if (collapsed.to == null) return collapsed.marker.find();\n        }\n        if (!collapsed && foundBookmarks.length) for (var j = 0; j < foundBookmarks.length; ++j)\n          buildCollapsedSpan(builder, 0, foundBookmarks[j]);\n      }\n      if (pos >= len) break;\n\n      var upto = Math.min(len, nextChange);\n      while (true) {\n        if (text) {\n          var end = pos + text.length;\n          if (!collapsed) {\n            var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", title);\n          }\n          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}\n          pos = end;\n          spanStartStyle = \"\";\n        }\n        text = allText.slice(at, at = styles[i++]);\n        style = interpretTokenStyle(styles[i++], builder);\n      }\n    }\n  }\n\n  // DOCUMENT DATA STRUCTURE\n\n  function updateDoc(doc, change, markedSpans, selAfter, estimateHeight) {\n    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}\n    function update(line, text, spans) {\n      updateLine(line, text, spans, estimateHeight);\n      signalLater(line, \"change\", line, change);\n    }\n\n    var from = change.from, to = change.to, text = change.text;\n    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n    // First adjust the line structure\n    if (from.ch == 0 && to.ch == 0 && lastText == \"\" &&\n        (!doc.cm || doc.cm.options.wholeLineUpdateBefore)) {\n      // This is a whole-line replace. Treated specially to make\n      // sure line objects move the way they are supposed to.\n      for (var i = 0, e = text.length - 1, added = []; i < e; ++i)\n        added.push(new Line(text[i], spansFor(i), estimateHeight));\n      update(lastLine, lastLine.text, lastSpans);\n      if (nlines) doc.remove(from.line, nlines);\n      if (added.length) doc.insert(from.line, added);\n    } else if (firstLine == lastLine) {\n      if (text.length == 1) {\n        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n      } else {\n        for (var added = [], i = 1, e = text.length - 1; i < e; ++i)\n          added.push(new Line(text[i], spansFor(i), estimateHeight));\n        added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n        doc.insert(from.line + 1, added);\n      }\n    } else if (text.length == 1) {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n      doc.remove(from.line + 1, nlines);\n    } else {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n      for (var i = 1, e = text.length - 1, added = []; i < e; ++i)\n        added.push(new Line(text[i], spansFor(i), estimateHeight));\n      if (nlines > 1) doc.remove(from.line + 1, nlines - 1);\n      doc.insert(from.line + 1, added);\n    }\n\n    signalLater(doc, \"change\", doc, change);\n    setSelection(doc, selAfter.anchor, selAfter.head, null, true);\n  }\n\n  function LeafChunk(lines) {\n    this.lines = lines;\n    this.parent = null;\n    for (var i = 0, e = lines.length, height = 0; i < e; ++i) {\n      lines[i].parent = this;\n      height += lines[i].height;\n    }\n    this.height = height;\n  }\n\n  LeafChunk.prototype = {\n    chunkSize: function() { return this.lines.length; },\n    removeInner: function(at, n) {\n      for (var i = at, e = at + n; i < e; ++i) {\n        var line = this.lines[i];\n        this.height -= line.height;\n        cleanUpLine(line);\n        signalLater(line, \"delete\");\n      }\n      this.lines.splice(at, n);\n    },\n    collapse: function(lines) {\n      lines.splice.apply(lines, [lines.length, 0].concat(this.lines));\n    },\n    insertInner: function(at, lines, height) {\n      this.height += height;\n      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n      for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this;\n    },\n    iterN: function(at, n, op) {\n      for (var e = at + n; at < e; ++at)\n        if (op(this.lines[at])) return true;\n    }\n  };\n\n  function BranchChunk(children) {\n    this.children = children;\n    var size = 0, height = 0;\n    for (var i = 0, e = children.length; i < e; ++i) {\n      var ch = children[i];\n      size += ch.chunkSize(); height += ch.height;\n      ch.parent = this;\n    }\n    this.size = size;\n    this.height = height;\n    this.parent = null;\n  }\n\n  BranchChunk.prototype = {\n    chunkSize: function() { return this.size; },\n    removeInner: function(at, n) {\n      this.size -= n;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var rm = Math.min(n, sz - at), oldHeight = child.height;\n          child.removeInner(at, rm);\n          this.height -= oldHeight - child.height;\n          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n          if ((n -= rm) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n      if (this.size - n < 25) {\n        var lines = [];\n        this.collapse(lines);\n        this.children = [new LeafChunk(lines)];\n        this.children[0].parent = this;\n      }\n    },\n    collapse: function(lines) {\n      for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines);\n    },\n    insertInner: function(at, lines, height) {\n      this.size += lines.length;\n      this.height += height;\n      for (var i = 0, e = this.children.length; i < e; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at <= sz) {\n          child.insertInner(at, lines, height);\n          if (child.lines && child.lines.length > 50) {\n            while (child.lines.length > 50) {\n              var spilled = child.lines.splice(child.lines.length - 25, 25);\n              var newleaf = new LeafChunk(spilled);\n              child.height -= newleaf.height;\n              this.children.splice(i + 1, 0, newleaf);\n              newleaf.parent = this;\n            }\n            this.maybeSpill();\n          }\n          break;\n        }\n        at -= sz;\n      }\n    },\n    maybeSpill: function() {\n      if (this.children.length <= 10) return;\n      var me = this;\n      do {\n        var spilled = me.children.splice(me.children.length - 5, 5);\n        var sibling = new BranchChunk(spilled);\n        if (!me.parent) { // Become the parent node\n          var copy = new BranchChunk(me.children);\n          copy.parent = me;\n          me.children = [copy, sibling];\n          me = copy;\n        } else {\n          me.size -= sibling.size;\n          me.height -= sibling.height;\n          var myIndex = indexOf(me.parent.children, me);\n          me.parent.children.splice(myIndex + 1, 0, sibling);\n        }\n        sibling.parent = me.parent;\n      } while (me.children.length > 10);\n      me.parent.maybeSpill();\n    },\n    iterN: function(at, n, op) {\n      for (var i = 0, e = this.children.length; i < e; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var used = Math.min(n, sz - at);\n          if (child.iterN(at, used, op)) return true;\n          if ((n -= used) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n    }\n  };\n\n  var nextDocId = 0;\n  var Doc = CodeMirror.Doc = function(text, mode, firstLine) {\n    if (!(this instanceof Doc)) return new Doc(text, mode, firstLine);\n    if (firstLine == null) firstLine = 0;\n\n    BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n    this.first = firstLine;\n    this.scrollTop = this.scrollLeft = 0;\n    this.cantEdit = false;\n    this.history = makeHistory();\n    this.cleanGeneration = 1;\n    this.frontier = firstLine;\n    var start = Pos(firstLine, 0);\n    this.sel = {from: start, to: start, head: start, anchor: start, shift: false, extend: false, goalColumn: null};\n    this.id = ++nextDocId;\n    this.modeOption = mode;\n\n    if (typeof text == \"string\") text = splitLines(text);\n    updateDoc(this, {from: start, to: start, text: text}, null, {head: start, anchor: start});\n  };\n\n  Doc.prototype = createObj(BranchChunk.prototype, {\n    constructor: Doc,\n    iter: function(from, to, op) {\n      if (op) this.iterN(from - this.first, to - from, op);\n      else this.iterN(this.first, this.first + this.size, from);\n    },\n\n    insert: function(at, lines) {\n      var height = 0;\n      for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height;\n      this.insertInner(at - this.first, lines, height);\n    },\n    remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n    getValue: function(lineSep) {\n      var lines = getLines(this, this.first, this.first + this.size);\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n    setValue: function(code) {\n      var top = Pos(this.first, 0), last = this.first + this.size - 1;\n      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n                        text: splitLines(code), origin: \"setValue\"},\n                 {head: top, anchor: top}, true);\n    },\n    replaceRange: function(code, from, to, origin) {\n      from = clipPos(this, from);\n      to = to ? clipPos(this, to) : from;\n      replaceRange(this, code, from, to, origin);\n    },\n    getRange: function(from, to, lineSep) {\n      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n\n    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},\n    setLine: function(line, text) {\n      if (isLine(this, line))\n        replaceRange(this, text, Pos(line, 0), clipPos(this, Pos(line)));\n    },\n    removeLine: function(line) {\n      if (line) replaceRange(this, \"\", clipPos(this, Pos(line - 1)), clipPos(this, Pos(line)));\n      else replaceRange(this, \"\", Pos(0, 0), clipPos(this, Pos(1, 0)));\n    },\n\n    getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},\n    getLineNumber: function(line) {return lineNo(line);},\n\n    getLineHandleVisualStart: function(line) {\n      if (typeof line == \"number\") line = getLine(this, line);\n      return visualLine(this, line);\n    },\n\n    lineCount: function() {return this.size;},\n    firstLine: function() {return this.first;},\n    lastLine: function() {return this.first + this.size - 1;},\n\n    clipPos: function(pos) {return clipPos(this, pos);},\n\n    getCursor: function(start) {\n      var sel = this.sel, pos;\n      if (start == null || start == \"head\") pos = sel.head;\n      else if (start == \"anchor\") pos = sel.anchor;\n      else if (start == \"end\" || start === false) pos = sel.to;\n      else pos = sel.from;\n      return copyPos(pos);\n    },\n    somethingSelected: function() {return !posEq(this.sel.head, this.sel.anchor);},\n\n    setCursor: docOperation(function(line, ch, extend) {\n      var pos = clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line);\n      if (extend) extendSelection(this, pos);\n      else setSelection(this, pos, pos);\n    }),\n    setSelection: docOperation(function(anchor, head, bias) {\n      setSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), bias);\n    }),\n    extendSelection: docOperation(function(from, to, bias) {\n      extendSelection(this, clipPos(this, from), to && clipPos(this, to), bias);\n    }),\n\n    getSelection: function(lineSep) {return this.getRange(this.sel.from, this.sel.to, lineSep);},\n    replaceSelection: function(code, collapse, origin) {\n      makeChange(this, {from: this.sel.from, to: this.sel.to, text: splitLines(code), origin: origin}, collapse || \"around\");\n    },\n    undo: docOperation(function() {makeChangeFromHistory(this, \"undo\");}),\n    redo: docOperation(function() {makeChangeFromHistory(this, \"redo\");}),\n\n    setExtending: function(val) {this.sel.extend = val;},\n\n    historySize: function() {\n      var hist = this.history;\n      return {undo: hist.done.length, redo: hist.undone.length};\n    },\n    clearHistory: function() {this.history = makeHistory(this.history.maxGeneration);},\n\n    markClean: function() {\n      this.cleanGeneration = this.changeGeneration();\n    },\n    changeGeneration: function() {\n      this.history.lastOp = this.history.lastOrigin = null;\n      return this.history.generation;\n    },\n    isClean: function (gen) {\n      return this.history.generation == (gen || this.cleanGeneration);\n    },\n\n    getHistory: function() {\n      return {done: copyHistoryArray(this.history.done),\n              undone: copyHistoryArray(this.history.undone)};\n    },\n    setHistory: function(histData) {\n      var hist = this.history = makeHistory(this.history.maxGeneration);\n      hist.done = histData.done.slice(0);\n      hist.undone = histData.undone.slice(0);\n    },\n\n    markText: function(from, to, options) {\n      return markText(this, clipPos(this, from), clipPos(this, to), options, \"range\");\n    },\n    setBookmark: function(pos, options) {\n      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n                      insertLeft: options && options.insertLeft};\n      pos = clipPos(this, pos);\n      return markText(this, pos, pos, realOpts, \"bookmark\");\n    },\n    findMarksAt: function(pos) {\n      pos = clipPos(this, pos);\n      var markers = [], spans = getLine(this, pos.line).markedSpans;\n      if (spans) for (var i = 0; i < spans.length; ++i) {\n        var span = spans[i];\n        if ((span.from == null || span.from <= pos.ch) &&\n            (span.to == null || span.to >= pos.ch))\n          markers.push(span.marker.parent || span.marker);\n      }\n      return markers;\n    },\n    getAllMarks: function() {\n      var markers = [];\n      this.iter(function(line) {\n        var sps = line.markedSpans;\n        if (sps) for (var i = 0; i < sps.length; ++i)\n          if (sps[i].from != null) markers.push(sps[i].marker);\n      });\n      return markers;\n    },\n\n    posFromIndex: function(off) {\n      var ch, lineNo = this.first;\n      this.iter(function(line) {\n        var sz = line.text.length + 1;\n        if (sz > off) { ch = off; return true; }\n        off -= sz;\n        ++lineNo;\n      });\n      return clipPos(this, Pos(lineNo, ch));\n    },\n    indexFromPos: function (coords) {\n      coords = clipPos(this, coords);\n      var index = coords.ch;\n      if (coords.line < this.first || coords.ch < 0) return 0;\n      this.iter(this.first, coords.line, function (line) {\n        index += line.text.length + 1;\n      });\n      return index;\n    },\n\n    copy: function(copyHistory) {\n      var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first);\n      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n      doc.sel = {from: this.sel.from, to: this.sel.to, head: this.sel.head, anchor: this.sel.anchor,\n                 shift: this.sel.shift, extend: false, goalColumn: this.sel.goalColumn};\n      if (copyHistory) {\n        doc.history.undoDepth = this.history.undoDepth;\n        doc.setHistory(this.getHistory());\n      }\n      return doc;\n    },\n\n    linkedDoc: function(options) {\n      if (!options) options = {};\n      var from = this.first, to = this.first + this.size;\n      if (options.from != null && options.from > from) from = options.from;\n      if (options.to != null && options.to < to) to = options.to;\n      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from);\n      if (options.sharedHist) copy.history = this.history;\n      (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n      return copy;\n    },\n    unlinkDoc: function(other) {\n      if (other instanceof CodeMirror) other = other.doc;\n      if (this.linked) for (var i = 0; i < this.linked.length; ++i) {\n        var link = this.linked[i];\n        if (link.doc != other) continue;\n        this.linked.splice(i, 1);\n        other.unlinkDoc(this);\n        break;\n      }\n      // If the histories were shared, split them again\n      if (other.history == this.history) {\n        var splitIds = [other.id];\n        linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);\n        other.history = makeHistory();\n        other.history.done = copyHistoryArray(this.history.done, splitIds);\n        other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n      }\n    },\n    iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n    getMode: function() {return this.mode;},\n    getEditor: function() {return this.cm;}\n  });\n\n  Doc.prototype.eachLine = Doc.prototype.iter;\n\n  // The Doc methods that should be available on CodeMirror instances\n  var dontDelegate = \"iter insert remove copy getEditor\".split(\" \");\n  for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n    CodeMirror.prototype[prop] = (function(method) {\n      return function() {return method.apply(this.doc, arguments);};\n    })(Doc.prototype[prop]);\n\n  eventMixin(Doc);\n\n  function linkedDocs(doc, f, sharedHistOnly) {\n    function propagate(doc, skip, sharedHist) {\n      if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {\n        var rel = doc.linked[i];\n        if (rel.doc == skip) continue;\n        var shared = sharedHist && rel.sharedHist;\n        if (sharedHistOnly && !shared) continue;\n        f(rel.doc, shared);\n        propagate(rel.doc, doc, shared);\n      }\n    }\n    propagate(doc, null, true);\n  }\n\n  function attachDoc(cm, doc) {\n    if (doc.cm) throw new Error(\"This document is already in use.\");\n    cm.doc = doc;\n    doc.cm = cm;\n    estimateLineHeights(cm);\n    loadMode(cm);\n    if (!cm.options.lineWrapping) computeMaxLength(cm);\n    cm.options.mode = doc.modeOption;\n    regChange(cm);\n  }\n\n  // LINE UTILITIES\n\n  function getLine(chunk, n) {\n    n -= chunk.first;\n    while (!chunk.lines) {\n      for (var i = 0;; ++i) {\n        var child = chunk.children[i], sz = child.chunkSize();\n        if (n < sz) { chunk = child; break; }\n        n -= sz;\n      }\n    }\n    return chunk.lines[n];\n  }\n\n  function getBetween(doc, start, end) {\n    var out = [], n = start.line;\n    doc.iter(start.line, end.line + 1, function(line) {\n      var text = line.text;\n      if (n == end.line) text = text.slice(0, end.ch);\n      if (n == start.line) text = text.slice(start.ch);\n      out.push(text);\n      ++n;\n    });\n    return out;\n  }\n  function getLines(doc, from, to) {\n    var out = [];\n    doc.iter(from, to, function(line) { out.push(line.text); });\n    return out;\n  }\n\n  function updateLineHeight(line, height) {\n    var diff = height - line.height;\n    for (var n = line; n; n = n.parent) n.height += diff;\n  }\n\n  function lineNo(line) {\n    if (line.parent == null) return null;\n    var cur = line.parent, no = indexOf(cur.lines, line);\n    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n      for (var i = 0;; ++i) {\n        if (chunk.children[i] == cur) break;\n        no += chunk.children[i].chunkSize();\n      }\n    }\n    return no + cur.first;\n  }\n\n  function lineAtHeight(chunk, h) {\n    var n = chunk.first;\n    outer: do {\n      for (var i = 0, e = chunk.children.length; i < e; ++i) {\n        var child = chunk.children[i], ch = child.height;\n        if (h < ch) { chunk = child; continue outer; }\n        h -= ch;\n        n += child.chunkSize();\n      }\n      return n;\n    } while (!chunk.lines);\n    for (var i = 0, e = chunk.lines.length; i < e; ++i) {\n      var line = chunk.lines[i], lh = line.height;\n      if (h < lh) break;\n      h -= lh;\n    }\n    return n + i;\n  }\n\n  function heightAtLine(cm, lineObj) {\n    lineObj = visualLine(cm.doc, lineObj);\n\n    var h = 0, chunk = lineObj.parent;\n    for (var i = 0; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i];\n      if (line == lineObj) break;\n      else h += line.height;\n    }\n    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n      for (var i = 0; i < p.children.length; ++i) {\n        var cur = p.children[i];\n        if (cur == chunk) break;\n        else h += cur.height;\n      }\n    }\n    return h;\n  }\n\n  function getOrder(line) {\n    var order = line.order;\n    if (order == null) order = line.order = bidiOrdering(line.text);\n    return order;\n  }\n\n  // HISTORY\n\n  function makeHistory(startGen) {\n    return {\n      // Arrays of history events. Doing something adds an event to\n      // done and clears undo. Undoing moves events from done to\n      // undone, redoing moves them in the other direction.\n      done: [], undone: [], undoDepth: Infinity,\n      // Used to track when changes can be merged into a single undo\n      // event\n      lastTime: 0, lastOp: null, lastOrigin: null,\n      // Used by the isClean() method\n      generation: startGen || 1, maxGeneration: startGen || 1\n    };\n  }\n\n  function attachLocalSpans(doc, change, from, to) {\n    var existing = change[\"spans_\" + doc.id], n = 0;\n    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {\n      if (line.markedSpans)\n        (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans;\n      ++n;\n    });\n  }\n\n  function historyChangeFromChange(doc, change) {\n    var from = { line: change.from.line, ch: change.from.ch };\n    var histChange = {from: from, to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n    linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);\n    return histChange;\n  }\n\n  function addToHistory(doc, change, selAfter, opId) {\n    var hist = doc.history;\n    hist.undone.length = 0;\n    var time = +new Date, cur = lst(hist.done);\n\n    if (cur &&\n        (hist.lastOp == opId ||\n         hist.lastOrigin == change.origin && change.origin &&\n         ((change.origin.charAt(0) == \"+\" && doc.cm && hist.lastTime > time - doc.cm.options.historyEventDelay) ||\n          change.origin.charAt(0) == \"*\"))) {\n      // Merge this change into the last event\n      var last = lst(cur.changes);\n      if (posEq(change.from, change.to) && posEq(change.from, last.to)) {\n        // Optimized case for simple insertion -- don't want to add\n        // new changesets for every character typed\n        last.to = changeEnd(change);\n      } else {\n        // Add new sub-event\n        cur.changes.push(historyChangeFromChange(doc, change));\n      }\n      cur.anchorAfter = selAfter.anchor; cur.headAfter = selAfter.head;\n    } else {\n      // Can not be merged, start a new event.\n      cur = {changes: [historyChangeFromChange(doc, change)],\n             generation: hist.generation,\n             anchorBefore: doc.sel.anchor, headBefore: doc.sel.head,\n             anchorAfter: selAfter.anchor, headAfter: selAfter.head};\n      hist.done.push(cur);\n      hist.generation = ++hist.maxGeneration;\n      while (hist.done.length > hist.undoDepth)\n        hist.done.shift();\n    }\n    hist.lastTime = time;\n    hist.lastOp = opId;\n    hist.lastOrigin = change.origin;\n  }\n\n  function removeClearedSpans(spans) {\n    if (!spans) return null;\n    for (var i = 0, out; i < spans.length; ++i) {\n      if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }\n      else if (out) out.push(spans[i]);\n    }\n    return !out ? spans : out.length ? out : null;\n  }\n\n  function getOldSpans(doc, change) {\n    var found = change[\"spans_\" + doc.id];\n    if (!found) return null;\n    for (var i = 0, nw = []; i < change.text.length; ++i)\n      nw.push(removeClearedSpans(found[i]));\n    return nw;\n  }\n\n  // Used both to provide a JSON-safe object in .getHistory, and, when\n  // detaching a document, to split the history in two\n  function copyHistoryArray(events, newGroup) {\n    for (var i = 0, copy = []; i < events.length; ++i) {\n      var event = events[i], changes = event.changes, newChanges = [];\n      copy.push({changes: newChanges, anchorBefore: event.anchorBefore, headBefore: event.headBefore,\n                 anchorAfter: event.anchorAfter, headAfter: event.headAfter});\n      for (var j = 0; j < changes.length; ++j) {\n        var change = changes[j], m;\n        newChanges.push({from: change.from, to: change.to, text: change.text});\n        if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\\d+)$/)) {\n          if (indexOf(newGroup, Number(m[1])) > -1) {\n            lst(newChanges)[prop] = change[prop];\n            delete change[prop];\n          }\n        }\n      }\n    }\n    return copy;\n  }\n\n  // Rebasing/resetting history to deal with externally-sourced changes\n\n  function rebaseHistSel(pos, from, to, diff) {\n    if (to < pos.line) {\n      pos.line += diff;\n    } else if (from < pos.line) {\n      pos.line = from;\n      pos.ch = 0;\n    }\n  }\n\n  // Tries to rebase an array of history events given a change in the\n  // document. If the change touches the same lines as the event, the\n  // event, and everything 'behind' it, is discarded. If the change is\n  // before the event, the event's positions are updated. Uses a\n  // copy-on-write scheme for the positions, to avoid having to\n  // reallocate them all on every rebase, but also avoid problems with\n  // shared position objects being unsafely updated.\n  function rebaseHistArray(array, from, to, diff) {\n    for (var i = 0; i < array.length; ++i) {\n      var sub = array[i], ok = true;\n      for (var j = 0; j < sub.changes.length; ++j) {\n        var cur = sub.changes[j];\n        if (!sub.copied) { cur.from = copyPos(cur.from); cur.to = copyPos(cur.to); }\n        if (to < cur.from.line) {\n          cur.from.line += diff;\n          cur.to.line += diff;\n        } else if (from <= cur.to.line) {\n          ok = false;\n          break;\n        }\n      }\n      if (!sub.copied) {\n        sub.anchorBefore = copyPos(sub.anchorBefore); sub.headBefore = copyPos(sub.headBefore);\n        sub.anchorAfter = copyPos(sub.anchorAfter); sub.readAfter = copyPos(sub.headAfter);\n        sub.copied = true;\n      }\n      if (!ok) {\n        array.splice(0, i + 1);\n        i = 0;\n      } else {\n        rebaseHistSel(sub.anchorBefore); rebaseHistSel(sub.headBefore);\n        rebaseHistSel(sub.anchorAfter); rebaseHistSel(sub.headAfter);\n      }\n    }\n  }\n\n  function rebaseHist(hist, change) {\n    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n    rebaseHistArray(hist.done, from, to, diff);\n    rebaseHistArray(hist.undone, from, to, diff);\n  }\n\n  // EVENT OPERATORS\n\n  function stopMethod() {e_stop(this);}\n  // Ensure an event has a stop method.\n  function addStop(event) {\n    if (!event.stop) event.stop = stopMethod;\n    return event;\n  }\n\n  function e_preventDefault(e) {\n    if (e.preventDefault) e.preventDefault();\n    else e.returnValue = false;\n  }\n  function e_stopPropagation(e) {\n    if (e.stopPropagation) e.stopPropagation();\n    else e.cancelBubble = true;\n  }\n  function e_defaultPrevented(e) {\n    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;\n  }\n  function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n  CodeMirror.e_stop = e_stop;\n  CodeMirror.e_preventDefault = e_preventDefault;\n  CodeMirror.e_stopPropagation = e_stopPropagation;\n\n  function e_target(e) {return e.target || e.srcElement;}\n  function e_button(e) {\n    var b = e.which;\n    if (b == null) {\n      if (e.button & 1) b = 1;\n      else if (e.button & 2) b = 3;\n      else if (e.button & 4) b = 2;\n    }\n    if (mac && e.ctrlKey && b == 1) b = 3;\n    return b;\n  }\n\n  // EVENT HANDLING\n\n  function on(emitter, type, f) {\n    if (emitter.addEventListener)\n      emitter.addEventListener(type, f, false);\n    else if (emitter.attachEvent)\n      emitter.attachEvent(\"on\" + type, f);\n    else {\n      var map = emitter._handlers || (emitter._handlers = {});\n      var arr = map[type] || (map[type] = []);\n      arr.push(f);\n    }\n  }\n\n  function off(emitter, type, f) {\n    if (emitter.removeEventListener)\n      emitter.removeEventListener(type, f, false);\n    else if (emitter.detachEvent)\n      emitter.detachEvent(\"on\" + type, f);\n    else {\n      var arr = emitter._handlers && emitter._handlers[type];\n      if (!arr) return;\n      for (var i = 0; i < arr.length; ++i)\n        if (arr[i] == f) { arr.splice(i, 1); break; }\n    }\n  }\n\n  function signal(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2);\n    for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args);\n  }\n\n  var delayedCallbacks, delayedCallbackDepth = 0;\n  function signalLater(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2);\n    if (!delayedCallbacks) {\n      ++delayedCallbackDepth;\n      delayedCallbacks = [];\n      setTimeout(fireDelayed, 0);\n    }\n    function bnd(f) {return function(){f.apply(null, args);};};\n    for (var i = 0; i < arr.length; ++i)\n      delayedCallbacks.push(bnd(arr[i]));\n  }\n\n  function signalDOMEvent(cm, e, override) {\n    signal(cm, override || e.type, cm, e);\n    return e_defaultPrevented(e) || e.codemirrorIgnore;\n  }\n\n  function fireDelayed() {\n    --delayedCallbackDepth;\n    var delayed = delayedCallbacks;\n    delayedCallbacks = null;\n    for (var i = 0; i < delayed.length; ++i) delayed[i]();\n  }\n\n  function hasHandler(emitter, type) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    return arr && arr.length > 0;\n  }\n\n  CodeMirror.on = on; CodeMirror.off = off; CodeMirror.signal = signal;\n\n  function eventMixin(ctor) {\n    ctor.prototype.on = function(type, f) {on(this, type, f);};\n    ctor.prototype.off = function(type, f) {off(this, type, f);};\n  }\n\n  // MISC UTILITIES\n\n  // Number of pixels added to scroller and sizer to hide scrollbar\n  var scrollerCutOff = 30;\n\n  // Returned or thrown by various protocols to signal 'I'm not\n  // handling this'.\n  var Pass = CodeMirror.Pass = {toString: function(){return \"CodeMirror.Pass\";}};\n\n  function Delayed() {this.id = null;}\n  Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}};\n\n  // Counts the column offset in a string, taking tabs into account.\n  // Used mostly to find indentation.\n  function countColumn(string, end, tabSize, startIndex, startValue) {\n    if (end == null) {\n      end = string.search(/[^\\s\\u00a0]/);\n      if (end == -1) end = string.length;\n    }\n    for (var i = startIndex || 0, n = startValue || 0; i < end; ++i) {\n      if (string.charAt(i) == \"\\t\") n += tabSize - (n % tabSize);\n      else ++n;\n    }\n    return n;\n  }\n  CodeMirror.countColumn = countColumn;\n\n  var spaceStrs = [\"\"];\n  function spaceStr(n) {\n    while (spaceStrs.length <= n)\n      spaceStrs.push(lst(spaceStrs) + \" \");\n    return spaceStrs[n];\n  }\n\n  function lst(arr) { return arr[arr.length-1]; }\n\n  function selectInput(node) {\n    if (ios) { // Mobile Safari apparently has a bug where select() is broken.\n      node.selectionStart = 0;\n      node.selectionEnd = node.value.length;\n    } else {\n      // Suppress mysterious IE10 errors\n      try { node.select(); }\n      catch(_e) {}\n    }\n  }\n\n  function indexOf(collection, elt) {\n    if (collection.indexOf) return collection.indexOf(elt);\n    for (var i = 0, e = collection.length; i < e; ++i)\n      if (collection[i] == elt) return i;\n    return -1;\n  }\n\n  function createObj(base, props) {\n    function Obj() {}\n    Obj.prototype = base;\n    var inst = new Obj();\n    if (props) copyObj(props, inst);\n    return inst;\n  }\n\n  function copyObj(obj, target) {\n    if (!target) target = {};\n    for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];\n    return target;\n  }\n\n  function emptyArray(size) {\n    for (var a = [], i = 0; i < size; ++i) a.push(undefined);\n    return a;\n  }\n\n  function bind(f) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return function(){return f.apply(null, args);};\n  }\n\n  var nonASCIISingleCaseWordChar = /[\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n  function isWordChar(ch) {\n    return /\\w/.test(ch) || ch > \"\\x80\" &&\n      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));\n  }\n\n  function isEmpty(obj) {\n    for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;\n    return true;\n  }\n\n  var isExtendingChar = /[\\u0300-\\u036F\\u0483-\\u0487\\u0488-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1-\\u05C2\\u05C4-\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7-\\u06E8\\u06EA-\\u06ED\\uA66F\\u1DC0–\\u1DFF\\u20D0–\\u20FF\\uA670-\\uA672\\uA674-\\uA67D\\uA69F\\udc00-\\udfff\\uFE20–\\uFE2F]/;\n\n  // DOM UTILITIES\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) e.className = className;\n    if (style) e.style.cssText = style;\n    if (typeof content == \"string\") setTextContent(e, content);\n    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);\n    return e;\n  }\n\n  function removeChildren(e) {\n    for (var count = e.childNodes.length; count > 0; --count)\n      e.removeChild(e.firstChild);\n    return e;\n  }\n\n  function removeChildrenAndAdd(parent, e) {\n    return removeChildren(parent).appendChild(e);\n  }\n\n  function setTextContent(e, str) {\n    if (ie_lt9) {\n      e.innerHTML = \"\";\n      e.appendChild(document.createTextNode(str));\n    } else e.textContent = str;\n  }\n\n  function getRect(node) {\n    return node.getBoundingClientRect();\n  }\n  CodeMirror.replaceGetRect = function(f) { getRect = f; };\n\n  // FEATURE DETECTION\n\n  // Detect drag-and-drop\n  var dragAndDrop = function() {\n    // There is *some* kind of drag-and-drop support in IE6-8, but I\n    // couldn't get it to work yet.\n    if (ie_lt9) return false;\n    var div = elt('div');\n    return \"draggable\" in div || \"dragDrop\" in div;\n  }();\n\n  // For a reason I have yet to figure out, some browsers disallow\n  // word wrapping between certain characters *only* if a new inline\n  // element is started between them. This makes it hard to reliably\n  // measure the position of things, since that requires inserting an\n  // extra span. This terribly fragile set of tests matches the\n  // character combinations that suffer from this phenomenon on the\n  // various browsers.\n  function spanAffectsWrapping() { return false; }\n  if (gecko) // Only for \"$'\"\n    spanAffectsWrapping = function(str, i) {\n      return str.charCodeAt(i - 1) == 36 && str.charCodeAt(i) == 39;\n    };\n  else if (safari && !/Version\\/([6-9]|\\d\\d)\\b/.test(navigator.userAgent))\n    spanAffectsWrapping = function(str, i) {\n      return /\\-[^ \\-?]|\\?[^ !\\'\\\"\\),.\\-\\/:;\\?\\]\\}]/.test(str.slice(i - 1, i + 1));\n    };\n  else if (webkit && /Chrome\\/(?:29|[3-9]\\d|\\d\\d\\d)\\./.test(navigator.userAgent))\n    spanAffectsWrapping = function(str, i) {\n      var code = str.charCodeAt(i - 1);\n      return code >= 8208 && code <= 8212;\n    };\n  else if (webkit)\n    spanAffectsWrapping = function(str, i) {\n      if (i > 1 && str.charCodeAt(i - 1) == 45) {\n        if (/\\w/.test(str.charAt(i - 2)) && /[^\\-?\\.]/.test(str.charAt(i))) return true;\n        if (i > 2 && /[\\d\\.,]/.test(str.charAt(i - 2)) && /[\\d\\.,]/.test(str.charAt(i))) return false;\n      }\n      return /[~!#%&*)=+}\\]\\\\|\\\"\\.>,:;][({[<]|-[^\\-?\\.\\u2010-\\u201f\\u2026]|\\?[\\w~`@#$%\\^&*(_=+{[|><]|…[\\w~`@#$%\\^&*(_=+{[><]/.test(str.slice(i - 1, i + 1));\n    };\n\n  var knownScrollbarWidth;\n  function scrollbarWidth(measure) {\n    if (knownScrollbarWidth != null) return knownScrollbarWidth;\n    var test = elt(\"div\", null, null, \"width: 50px; height: 50px; overflow-x: scroll\");\n    removeChildrenAndAdd(measure, test);\n    if (test.offsetWidth)\n      knownScrollbarWidth = test.offsetHeight - test.clientHeight;\n    return knownScrollbarWidth || 0;\n  }\n\n  var zwspSupported;\n  function zeroWidthElement(measure) {\n    if (zwspSupported == null) {\n      var test = elt(\"span\", \"\\u200b\");\n      removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n      if (measure.firstChild.offsetHeight != 0)\n        zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !ie_lt8;\n    }\n    if (zwspSupported) return elt(\"span\", \"\\u200b\");\n    else return elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n  }\n\n  // See if \"\".split is the broken IE version, if so, provide an\n  // alternative way to split lines.\n  var splitLines = \"\\n\\nb\".split(/\\n/).length != 3 ? function(string) {\n    var pos = 0, result = [], l = string.length;\n    while (pos <= l) {\n      var nl = string.indexOf(\"\\n\", pos);\n      if (nl == -1) nl = string.length;\n      var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n      var rt = line.indexOf(\"\\r\");\n      if (rt != -1) {\n        result.push(line.slice(0, rt));\n        pos += rt + 1;\n      } else {\n        result.push(line);\n        pos = nl + 1;\n      }\n    }\n    return result;\n  } : function(string){return string.split(/\\r\\n?|\\n/);};\n  CodeMirror.splitLines = splitLines;\n\n  var hasSelection = window.getSelection ? function(te) {\n    try { return te.selectionStart != te.selectionEnd; }\n    catch(e) { return false; }\n  } : function(te) {\n    try {var range = te.ownerDocument.selection.createRange();}\n    catch(e) {}\n    if (!range || range.parentElement() != te) return false;\n    return range.compareEndPoints(\"StartToEnd\", range) != 0;\n  };\n\n  var hasCopyEvent = (function() {\n    var e = elt(\"div\");\n    if (\"oncopy\" in e) return true;\n    e.setAttribute(\"oncopy\", \"return;\");\n    return typeof e.oncopy == 'function';\n  })();\n\n  // KEY NAMING\n\n  var keyNames = {3: \"Enter\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n                  19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n                  36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n                  46: \"Delete\", 59: \";\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\", 109: \"-\", 107: \"=\", 127: \"Delete\",\n                  186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n                  221: \"]\", 222: \"'\", 63276: \"PageUp\", 63277: \"PageDown\", 63275: \"End\", 63273: \"Home\",\n                  63234: \"Left\", 63232: \"Up\", 63235: \"Right\", 63233: \"Down\", 63302: \"Insert\", 63272: \"Delete\"};\n  CodeMirror.keyNames = keyNames;\n  (function() {\n    // Number keys\n    for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i);\n    // Alphabetic keys\n    for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);\n    // Function keys\n    for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = \"F\" + i;\n  })();\n\n  // BIDI HELPERS\n\n  function iterateBidiSections(order, from, to, f) {\n    if (!order) return f(from, to, \"ltr\");\n    var found = false;\n    for (var i = 0; i < order.length; ++i) {\n      var part = order[i];\n      if (part.from < to && part.to > from || from == to && part.to == from) {\n        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\");\n        found = true;\n      }\n    }\n    if (!found) f(from, to, \"ltr\");\n  }\n\n  function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }\n  function bidiRight(part) { return part.level % 2 ? part.from : part.to; }\n\n  function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }\n  function lineRight(line) {\n    var order = getOrder(line);\n    if (!order) return line.text.length;\n    return bidiRight(lst(order));\n  }\n\n  function lineStart(cm, lineN) {\n    var line = getLine(cm.doc, lineN);\n    var visual = visualLine(cm.doc, line);\n    if (visual != line) lineN = lineNo(visual);\n    var order = getOrder(visual);\n    var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);\n    return Pos(lineN, ch);\n  }\n  function lineEnd(cm, lineN) {\n    var merged, line;\n    while (merged = collapsedSpanAtEnd(line = getLine(cm.doc, lineN)))\n      lineN = merged.find().to.line;\n    var order = getOrder(line);\n    var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);\n    return Pos(lineN, ch);\n  }\n\n  function compareBidiLevel(order, a, b) {\n    var linedir = order[0].level;\n    if (a == linedir) return true;\n    if (b == linedir) return false;\n    return a < b;\n  }\n  var bidiOther;\n  function getBidiPartAt(order, pos) {\n    for (var i = 0, found; i < order.length; ++i) {\n      var cur = order[i];\n      if (cur.from < pos && cur.to > pos) { bidiOther = null; return i; }\n      if (cur.from == pos || cur.to == pos) {\n        if (found == null) {\n          found = i;\n        } else if (compareBidiLevel(order, cur.level, order[found].level)) {\n          bidiOther = found;\n          return i;\n        } else {\n          bidiOther = i;\n          return found;\n        }\n      }\n    }\n    bidiOther = null;\n    return found;\n  }\n\n  function moveInLine(line, pos, dir, byUnit) {\n    if (!byUnit) return pos + dir;\n    do pos += dir;\n    while (pos > 0 && isExtendingChar.test(line.text.charAt(pos)));\n    return pos;\n  }\n\n  // This is somewhat involved. It is needed in order to move\n  // 'visually' through bi-directional text -- i.e., pressing left\n  // should make the cursor go left, even when in RTL text. The\n  // tricky part is the 'jumps', where RTL and LTR text touch each\n  // other. This often requires the cursor offset to move more than\n  // one unit, in order to visually move one unit.\n  function moveVisually(line, start, dir, byUnit) {\n    var bidi = getOrder(line);\n    if (!bidi) return moveLogically(line, start, dir, byUnit);\n    var pos = getBidiPartAt(bidi, start), part = bidi[pos];\n    var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);\n\n    for (;;) {\n      if (target > part.from && target < part.to) return target;\n      if (target == part.from || target == part.to) {\n        if (getBidiPartAt(bidi, target) == pos) return target;\n        part = bidi[pos += dir];\n        return (dir > 0) == part.level % 2 ? part.to : part.from;\n      } else {\n        part = bidi[pos += dir];\n        if (!part) return null;\n        if ((dir > 0) == part.level % 2)\n          target = moveInLine(line, part.to, -1, byUnit);\n        else\n          target = moveInLine(line, part.from, 1, byUnit);\n      }\n    }\n  }\n\n  function moveLogically(line, start, dir, byUnit) {\n    var target = start + dir;\n    if (byUnit) while (target > 0 && isExtendingChar.test(line.text.charAt(target))) target += dir;\n    return target < 0 || target > line.text.length ? null : target;\n  }\n\n  // Bidirectional ordering algorithm\n  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n  // that this (partially) implements.\n\n  // One-char codes used for character types:\n  // L (L):   Left-to-Right\n  // R (R):   Right-to-Left\n  // r (AL):  Right-to-Left Arabic\n  // 1 (EN):  European Number\n  // + (ES):  European Number Separator\n  // % (ET):  European Number Terminator\n  // n (AN):  Arabic Number\n  // , (CS):  Common Number Separator\n  // m (NSM): Non-Spacing Mark\n  // b (BN):  Boundary Neutral\n  // s (B):   Paragraph Separator\n  // t (S):   Segment Separator\n  // w (WS):  Whitespace\n  // N (ON):  Other Neutrals\n\n  // Returns null if characters are ordered as they appear\n  // (left-to-right), or an array of sections ({from, to, level}\n  // objects) in the order in which they occur visually.\n  var bidiOrdering = (function() {\n    // Character types for codepoints 0 to 0xff\n    var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL\";\n    // Character types for codepoints 0x600 to 0x6ff\n    var arabicTypes = \"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr\";\n    function charType(code) {\n      if (code <= 0xff) return lowTypes.charAt(code);\n      else if (0x590 <= code && code <= 0x5f4) return \"R\";\n      else if (0x600 <= code && code <= 0x6ff) return arabicTypes.charAt(code - 0x600);\n      else if (0x700 <= code && code <= 0x8ac) return \"r\";\n      else return \"L\";\n    }\n\n    var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n    // Browsers seem to always treat the boundaries of block elements as being L.\n    var outerType = \"L\";\n\n    return function(str) {\n      if (!bidiRE.test(str)) return false;\n      var len = str.length, types = [];\n      for (var i = 0, type; i < len; ++i)\n        types.push(type = charType(str.charCodeAt(i)));\n\n      // W1. Examine each non-spacing mark (NSM) in the level run, and\n      // change the type of the NSM to the type of the previous\n      // character. If the NSM is at the start of the level run, it will\n      // get the type of sor.\n      for (var i = 0, prev = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"m\") types[i] = prev;\n        else prev = type;\n      }\n\n      // W2. Search backwards from each instance of a European number\n      // until the first strong type (R, L, AL, or sor) is found. If an\n      // AL is found, change the type of the European number to Arabic\n      // number.\n      // W3. Change all ALs to R.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"1\" && cur == \"r\") types[i] = \"n\";\n        else if (isStrong.test(type)) { cur = type; if (type == \"r\") types[i] = \"R\"; }\n      }\n\n      // W4. A single European separator between two European numbers\n      // changes to a European number. A single common separator between\n      // two numbers of the same type changes to that type.\n      for (var i = 1, prev = types[0]; i < len - 1; ++i) {\n        var type = types[i];\n        if (type == \"+\" && prev == \"1\" && types[i+1] == \"1\") types[i] = \"1\";\n        else if (type == \",\" && prev == types[i+1] &&\n                 (prev == \"1\" || prev == \"n\")) types[i] = prev;\n        prev = type;\n      }\n\n      // W5. A sequence of European terminators adjacent to European\n      // numbers changes to all European numbers.\n      // W6. Otherwise, separators and terminators change to Other\n      // Neutral.\n      for (var i = 0; i < len; ++i) {\n        var type = types[i];\n        if (type == \",\") types[i] = \"N\";\n        else if (type == \"%\") {\n          for (var end = i + 1; end < len && types[end] == \"%\"; ++end) {}\n          var replace = (i && types[i-1] == \"!\") || (end < len - 1 && types[end] == \"1\") ? \"1\" : \"N\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // W7. Search backwards from each instance of a European number\n      // until the first strong type (R, L, or sor) is found. If an L is\n      // found, then change the type of the European number to L.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (cur == \"L\" && type == \"1\") types[i] = \"L\";\n        else if (isStrong.test(type)) cur = type;\n      }\n\n      // N1. A sequence of neutrals takes the direction of the\n      // surrounding strong text if the text on both sides has the same\n      // direction. European and Arabic numbers act as if they were R in\n      // terms of their influence on neutrals. Start-of-level-run (sor)\n      // and end-of-level-run (eor) are used at level run boundaries.\n      // N2. Any remaining neutrals take the embedding direction.\n      for (var i = 0; i < len; ++i) {\n        if (isNeutral.test(types[i])) {\n          for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}\n          var before = (i ? types[i-1] : outerType) == \"L\";\n          var after = (end < len - 1 ? types[end] : outerType) == \"L\";\n          var replace = before || after ? \"L\" : \"R\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // Here we depart from the documented algorithm, in order to avoid\n      // building up an actual levels array. Since there are only three\n      // levels (0, 1, 2) in an implementation that doesn't take\n      // explicit embedding into account, we can build up the order on\n      // the fly, without following the level-based algorithm.\n      var order = [], m;\n      for (var i = 0; i < len;) {\n        if (countsAsLeft.test(types[i])) {\n          var start = i;\n          for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}\n          order.push({from: start, to: i, level: 0});\n        } else {\n          var pos = i, at = order.length;\n          for (++i; i < len && types[i] != \"L\"; ++i) {}\n          for (var j = pos; j < i;) {\n            if (countsAsNum.test(types[j])) {\n              if (pos < j) order.splice(at, 0, {from: pos, to: j, level: 1});\n              var nstart = j;\n              for (++j; j < i && countsAsNum.test(types[j]); ++j) {}\n              order.splice(at, 0, {from: nstart, to: j, level: 2});\n              pos = j;\n            } else ++j;\n          }\n          if (pos < i) order.splice(at, 0, {from: pos, to: i, level: 1});\n        }\n      }\n      if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n        order[0].from = m[0].length;\n        order.unshift({from: 0, to: m[0].length, level: 0});\n      }\n      if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n        lst(order).to -= m[0].length;\n        order.push({from: len - m[0].length, to: len, level: 0});\n      }\n      if (order[0].level != lst(order).level)\n        order.push({from: len, to: len, level: order[0].level});\n\n      return order;\n    };\n  })();\n\n  // THE END\n\n  CodeMirror.version = \"3.20.0\";\n\n  return CodeMirror;\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/libs/es5-shim.js",
    "content": "/*!\n * https://github.com/es-shims/es5-shim\n * @license es5-shim Copyright 2009-2015 by contributors, MIT License\n * see https://github.com/es-shims/es5-shim/blob/master/LICENSE\n */\n\n// vim: ts=4 sts=4 sw=4 expandtab\n\n// Add semicolon to prevent IIFE from being passed as argument to concatenated code.\n;\n\n// UMD (Universal Module Definition)\n// see https://github.com/umdjs/umd/blob/master/returnExports.js\n(function (root, factory) {\n    'use strict';\n\n    /* global define, exports, module */\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(factory);\n    } else if (typeof exports === 'object') {\n        // Node. Does not work with strict CommonJS, but\n        // only CommonJS-like enviroments that support module.exports,\n        // like Node.\n        module.exports = factory();\n    } else {\n        // Browser globals (root is window)\n        root.returnExports = factory();\n    }\n}(this, function () {\n\n/**\n * Brings an environment as close to ECMAScript 5 compliance\n * as is possible with the facilities of erstwhile engines.\n *\n * Annotated ES5: http://es5.github.com/ (specific links below)\n * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf\n * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/\n */\n\n// Shortcut to an often accessed properties, in order to avoid multiple\n// dereference that costs universally. This also holds a reference to known-good\n// functions.\nvar $Array = Array;\nvar ArrayPrototype = $Array.prototype;\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\nvar FunctionPrototype = Function.prototype;\nvar $String = String;\nvar StringPrototype = $String.prototype;\nvar $Number = Number;\nvar NumberPrototype = $Number.prototype;\nvar array_slice = ArrayPrototype.slice;\nvar array_splice = ArrayPrototype.splice;\nvar array_push = ArrayPrototype.push;\nvar array_unshift = ArrayPrototype.unshift;\nvar array_concat = ArrayPrototype.concat;\nvar call = FunctionPrototype.call;\nvar max = Math.max;\nvar min = Math.min;\n\n// Having a toString local variable name breaks in Opera so use to_string.\nvar to_string = ObjectPrototype.toString;\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };\nvar isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; };\nvar isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; };\n\n/* inlined from http://npmjs.com/define-properties */\nvar defineProperties = (function (has) {\n  var supportsDescriptors = $Object.defineProperty && (function () {\n      try {\n          var obj = {};\n          $Object.defineProperty(obj, 'x', { enumerable: false, value: obj });\n          for (var _ in obj) { return false; }\n          return obj.x === obj;\n      } catch (e) { /* this is ES3 */\n          return false;\n      }\n  }());\n\n  // Define configurable, writable and non-enumerable props\n  // if they don't exist.\n  var defineProperty;\n  if (supportsDescriptors) {\n      defineProperty = function (object, name, method, forceAssign) {\n          if (!forceAssign && (name in object)) { return; }\n          $Object.defineProperty(object, name, {\n              configurable: true,\n              enumerable: false,\n              writable: true,\n              value: method\n          });\n      };\n  } else {\n      defineProperty = function (object, name, method, forceAssign) {\n          if (!forceAssign && (name in object)) { return; }\n          object[name] = method;\n      };\n  }\n  return function defineProperties(object, map, forceAssign) {\n      for (var name in map) {\n          if (has.call(map, name)) {\n            defineProperty(object, name, map[name], forceAssign);\n          }\n      }\n  };\n}(ObjectPrototype.hasOwnProperty));\n\n//\n// Util\n// ======\n//\n\n/* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */\nvar isPrimitive = function isPrimitive(input) {\n    var type = typeof input;\n    return input === null || (type !== 'object' && type !== 'function');\n};\n\nvar isActualNaN = $Number.isNaN || function (x) { return x !== x; };\n\nvar ES = {\n    // ES5 9.4\n    // http://es5.github.com/#x9.4\n    // http://jsperf.com/to-integer\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */\n    ToInteger: function ToInteger(num) {\n        var n = +num;\n        if (isActualNaN(n)) {\n            n = 0;\n        } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n            n = (n > 0 || -1) * Math.floor(Math.abs(n));\n        }\n        return n;\n    },\n\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */\n    ToPrimitive: function ToPrimitive(input) {\n        var val, valueOf, toStr;\n        if (isPrimitive(input)) {\n            return input;\n        }\n        valueOf = input.valueOf;\n        if (isCallable(valueOf)) {\n            val = valueOf.call(input);\n            if (isPrimitive(val)) {\n                return val;\n            }\n        }\n        toStr = input.toString;\n        if (isCallable(toStr)) {\n            val = toStr.call(input);\n            if (isPrimitive(val)) {\n                return val;\n            }\n        }\n        throw new TypeError();\n    },\n\n    // ES5 9.9\n    // http://es5.github.com/#x9.9\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */\n    ToObject: function (o) {\n        /* jshint eqnull: true */\n        if (o == null) { // this matches both null and undefined\n            throw new TypeError(\"can't convert \" + o + ' to object');\n        }\n        return $Object(o);\n    },\n\n    /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */\n    ToUint32: function ToUint32(x) {\n        return x >>> 0;\n    }\n};\n\n//\n// Function\n// ========\n//\n\n// ES-5 15.3.4.5\n// http://es5.github.com/#x15.3.4.5\n\nvar Empty = function Empty() {};\n\ndefineProperties(FunctionPrototype, {\n    bind: function bind(that) { // .length is 1\n        // 1. Let Target be the this value.\n        var target = this;\n        // 2. If IsCallable(Target) is false, throw a TypeError exception.\n        if (!isCallable(target)) {\n            throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n        }\n        // 3. Let A be a new (possibly empty) internal list of all of the\n        //   argument values provided after thisArg (arg1, arg2 etc), in order.\n        // XXX slicedArgs will stand in for \"A\" if used\n        var args = array_slice.call(arguments, 1); // for normal call\n        // 4. Let F be a new native ECMAScript object.\n        // 11. Set the [[Prototype]] internal property of F to the standard\n        //   built-in Function prototype object as specified in 15.3.3.1.\n        // 12. Set the [[Call]] internal property of F as described in\n        //   15.3.4.5.1.\n        // 13. Set the [[Construct]] internal property of F as described in\n        //   15.3.4.5.2.\n        // 14. Set the [[HasInstance]] internal property of F as described in\n        //   15.3.4.5.3.\n        var bound;\n        var binder = function () {\n\n            if (this instanceof bound) {\n                // 15.3.4.5.2 [[Construct]]\n                // When the [[Construct]] internal method of a function object,\n                // F that was created using the bind function is called with a\n                // list of arguments ExtraArgs, the following steps are taken:\n                // 1. Let target be the value of F's [[TargetFunction]]\n                //   internal property.\n                // 2. If target has no [[Construct]] internal method, a\n                //   TypeError exception is thrown.\n                // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n                //   property.\n                // 4. Let args be a new list containing the same values as the\n                //   list boundArgs in the same order followed by the same\n                //   values as the list ExtraArgs in the same order.\n                // 5. Return the result of calling the [[Construct]] internal\n                //   method of target providing args as the arguments.\n\n                var result = target.apply(\n                    this,\n                    array_concat.call(args, array_slice.call(arguments))\n                );\n                if ($Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                // 15.3.4.5.1 [[Call]]\n                // When the [[Call]] internal method of a function object, F,\n                // which was created using the bind function is called with a\n                // this value and a list of arguments ExtraArgs, the following\n                // steps are taken:\n                // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n                //   property.\n                // 2. Let boundThis be the value of F's [[BoundThis]] internal\n                //   property.\n                // 3. Let target be the value of F's [[TargetFunction]] internal\n                //   property.\n                // 4. Let args be a new list containing the same values as the\n                //   list boundArgs in the same order followed by the same\n                //   values as the list ExtraArgs in the same order.\n                // 5. Return the result of calling the [[Call]] internal method\n                //   of target providing boundThis as the this value and\n                //   providing args as the arguments.\n\n                // equiv: target.call(this, ...boundArgs, ...args)\n                return target.apply(\n                    that,\n                    array_concat.call(args, array_slice.call(arguments))\n                );\n\n            }\n\n        };\n\n        // 15. If the [[Class]] internal property of Target is \"Function\", then\n        //     a. Let L be the length property of Target minus the length of A.\n        //     b. Set the length own property of F to either 0 or L, whichever is\n        //       larger.\n        // 16. Else set the length own property of F to 0.\n\n        var boundLength = max(0, target.length - args.length);\n\n        // 17. Set the attributes of the length own property of F to the values\n        //   specified in 15.3.5.1.\n        var boundArgs = [];\n        for (var i = 0; i < boundLength; i++) {\n            array_push.call(boundArgs, '$' + i);\n        }\n\n        // XXX Build a dynamic function with desired amount of arguments is the only\n        // way to set the length property of a function.\n        // In environments where Content Security Policies enabled (Chrome extensions,\n        // for ex.) all use of eval or Function costructor throws an exception.\n        // However in all of these environments Function.prototype.bind exists\n        // and so this code will never be executed.\n        bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n        if (target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            // Clean up dangling references.\n            Empty.prototype = null;\n        }\n\n        // TODO\n        // 18. Set the [[Extensible]] internal property of F to true.\n\n        // TODO\n        // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n        // 20. Call the [[DefineOwnProperty]] internal method of F with\n        //   arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n        //   thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n        //   false.\n        // 21. Call the [[DefineOwnProperty]] internal method of F with\n        //   arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n        //   [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n        //   and false.\n\n        // TODO\n        // NOTE Function objects created using Function.prototype.bind do not\n        // have a prototype property or the [[Code]], [[FormalParameters]], and\n        // [[Scope]] internal properties.\n        // XXX can't delete prototype in pure-js.\n\n        // 22. Return F.\n        return bound;\n    }\n});\n\n// _Please note: Shortcuts are defined after `Function.prototype.bind` as we\n// us it in defining shortcuts.\nvar owns = call.bind(ObjectPrototype.hasOwnProperty);\nvar toStr = call.bind(ObjectPrototype.toString);\nvar strSlice = call.bind(StringPrototype.slice);\nvar strSplit = call.bind(StringPrototype.split);\nvar strIndexOf = call.bind(StringPrototype.indexOf);\nvar push = call.bind(array_push);\n\n//\n// Array\n// =====\n//\n\nvar isArray = $Array.isArray || function isArray(obj) {\n    return toStr(obj) === '[object Array]';\n};\n\n// ES5 15.4.4.12\n// http://es5.github.com/#x15.4.4.13\n// Return len+argCount.\n// [bugfix, ielt8]\n// IE < 8 bug: [].unshift(0) === undefined but should be \"1\"\nvar hasUnshiftReturnValueBug = [].unshift(0) !== 1;\ndefineProperties(ArrayPrototype, {\n    unshift: function () {\n        array_unshift.apply(this, arguments);\n        return this.length;\n    }\n}, hasUnshiftReturnValueBug);\n\n// ES5 15.4.3.2\n// http://es5.github.com/#x15.4.3.2\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\ndefineProperties($Array, { isArray: isArray });\n\n// The IsCallable() check in the Array functions\n// has been replaced with a strict check on the\n// internal class of the object to trap cases where\n// the provided function was actually a regular\n// expression literal, which in V8 and\n// JavaScriptCore is a typeof \"function\".  Only in\n// V8 are regular expression literals permitted as\n// reduce parameters, so it is desirable in the\n// general case for the shim to match the more\n// strict and common behavior of rejecting regular\n// expressions.\n\n// ES5 15.4.4.18\n// http://es5.github.com/#x15.4.4.18\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach\n\n// Check failure of by-index access of string characters (IE < 9)\n// and failure of `0 in boxedString` (Rhino)\nvar boxedString = $Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar properlyBoxesContext = function properlyBoxed(method) {\n    // Check node 0.6.21 bug where third parameter is not boxed\n    var properlyBoxesNonStrict = true;\n    var properlyBoxesStrict = true;\n    if (method) {\n        method.call('foo', function (_, __, context) {\n            if (typeof context !== 'object') { properlyBoxesNonStrict = false; }\n        });\n\n        method.call([1], function () {\n            'use strict';\n\n            properlyBoxesStrict = typeof this === 'string';\n        }, 'x');\n    }\n    return !!method && properlyBoxesNonStrict && properlyBoxesStrict;\n};\n\ndefineProperties(ArrayPrototype, {\n    forEach: function forEach(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var i = -1;\n        var length = ES.ToUint32(self.length);\n        var T;\n        if (arguments.length > 1) {\n          T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.forEach callback must be a function');\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                // Invoke the callback function with call, passing arguments:\n                // context, property value, property key, thisArg object\n                if (typeof T === 'undefined') {\n                    callbackfn(self[i], i, object);\n                } else {\n                    callbackfn.call(T, self[i], i, object);\n                }\n            }\n        }\n    }\n}, !properlyBoxesContext(ArrayPrototype.forEach));\n\n// ES5 15.4.4.19\n// http://es5.github.com/#x15.4.4.19\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map\ndefineProperties(ArrayPrototype, {\n    map: function map(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var result = $Array(length);\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.map callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                if (typeof T === 'undefined') {\n                    result[i] = callbackfn(self[i], i, object);\n                } else {\n                    result[i] = callbackfn.call(T, self[i], i, object);\n                }\n            }\n        }\n        return result;\n    }\n}, !properlyBoxesContext(ArrayPrototype.map));\n\n// ES5 15.4.4.20\n// http://es5.github.com/#x15.4.4.20\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter\ndefineProperties(ArrayPrototype, {\n    filter: function filter(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var result = [];\n        var value;\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.filter callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self) {\n                value = self[i];\n                if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) {\n                    push(result, value);\n                }\n            }\n        }\n        return result;\n    }\n}, !properlyBoxesContext(ArrayPrototype.filter));\n\n// ES5 15.4.4.16\n// http://es5.github.com/#x15.4.4.16\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every\ndefineProperties(ArrayPrototype, {\n    every: function every(callbackfn/*, thisArg*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.every callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n                return false;\n            }\n        }\n        return true;\n    }\n}, !properlyBoxesContext(ArrayPrototype.every));\n\n// ES5 15.4.4.17\n// http://es5.github.com/#x15.4.4.17\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some\ndefineProperties(ArrayPrototype, {\n    some: function some(callbackfn/*, thisArg */) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n        var T;\n        if (arguments.length > 1) {\n            T = arguments[1];\n        }\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.some callback must be a function');\n        }\n\n        for (var i = 0; i < length; i++) {\n            if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) {\n                return true;\n            }\n        }\n        return false;\n    }\n}, !properlyBoxesContext(ArrayPrototype.some));\n\n// ES5 15.4.4.21\n// http://es5.github.com/#x15.4.4.21\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce\nvar reduceCoercesToObject = false;\nif (ArrayPrototype.reduce) {\n    reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) { return list; }) === 'object';\n}\ndefineProperties(ArrayPrototype, {\n    reduce: function reduce(callbackfn/*, initialValue*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.reduce callback must be a function');\n        }\n\n        // no value to return if no initial value and an empty array\n        if (length === 0 && arguments.length === 1) {\n            throw new TypeError('reduce of empty array with no initial value');\n        }\n\n        var i = 0;\n        var result;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i++];\n                    break;\n                }\n\n                // if array contains no values, no initial value to return\n                if (++i >= length) {\n                    throw new TypeError('reduce of empty array with no initial value');\n                }\n            } while (true);\n        }\n\n        for (; i < length; i++) {\n            if (i in self) {\n                result = callbackfn(result, self[i], i, object);\n            }\n        }\n\n        return result;\n    }\n}, !reduceCoercesToObject);\n\n// ES5 15.4.4.22\n// http://es5.github.com/#x15.4.4.22\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight\nvar reduceRightCoercesToObject = false;\nif (ArrayPrototype.reduceRight) {\n    reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) { return list; }) === 'object';\n}\ndefineProperties(ArrayPrototype, {\n    reduceRight: function reduceRight(callbackfn/*, initial*/) {\n        var object = ES.ToObject(this);\n        var self = splitString && isString(this) ? strSplit(this, '') : object;\n        var length = ES.ToUint32(self.length);\n\n        // If no callback function or if callback is not a callable function\n        if (!isCallable(callbackfn)) {\n            throw new TypeError('Array.prototype.reduceRight callback must be a function');\n        }\n\n        // no value to return if no initial value, empty array\n        if (length === 0 && arguments.length === 1) {\n            throw new TypeError('reduceRight of empty array with no initial value');\n        }\n\n        var result;\n        var i = length - 1;\n        if (arguments.length >= 2) {\n            result = arguments[1];\n        } else {\n            do {\n                if (i in self) {\n                    result = self[i--];\n                    break;\n                }\n\n                // if array contains no values, no initial value to return\n                if (--i < 0) {\n                    throw new TypeError('reduceRight of empty array with no initial value');\n                }\n            } while (true);\n        }\n\n        if (i < 0) {\n            return result;\n        }\n\n        do {\n            if (i in self) {\n                result = callbackfn(result, self[i], i, object);\n            }\n        } while (i--);\n\n        return result;\n    }\n}, !reduceRightCoercesToObject);\n\n// ES5 15.4.4.14\n// http://es5.github.com/#x15.4.4.14\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\nvar hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\ndefineProperties(ArrayPrototype, {\n    indexOf: function indexOf(searchElement/*, fromIndex */) {\n        var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n        var length = ES.ToUint32(self.length);\n\n        if (length === 0) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = ES.ToInteger(arguments[1]);\n        }\n\n        // handle negative indices\n        i = i >= 0 ? i : max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === searchElement) {\n                return i;\n            }\n        }\n        return -1;\n    }\n}, hasFirefox2IndexOfBug);\n\n// ES5 15.4.4.15\n// http://es5.github.com/#x15.4.4.15\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf\nvar hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1;\ndefineProperties(ArrayPrototype, {\n    lastIndexOf: function lastIndexOf(searchElement/*, fromIndex */) {\n        var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this);\n        var length = ES.ToUint32(self.length);\n\n        if (length === 0) {\n            return -1;\n        }\n        var i = length - 1;\n        if (arguments.length > 1) {\n            i = min(i, ES.ToInteger(arguments[1]));\n        }\n        // handle negative indices\n        i = i >= 0 ? i : length - Math.abs(i);\n        for (; i >= 0; i--) {\n            if (i in self && searchElement === self[i]) {\n                return i;\n            }\n        }\n        return -1;\n    }\n}, hasFirefox2LastIndexOfBug);\n\n// ES5 15.4.4.12\n// http://es5.github.com/#x15.4.4.12\nvar spliceNoopReturnsEmptyArray = (function () {\n    var a = [1, 2];\n    var result = a.splice();\n    return a.length === 2 && isArray(result) && result.length === 0;\n}());\ndefineProperties(ArrayPrototype, {\n    // Safari 5.0 bug where .splice() returns undefined\n    splice: function splice(start, deleteCount) {\n        if (arguments.length === 0) {\n            return [];\n        } else {\n            return array_splice.apply(this, arguments);\n        }\n    }\n}, !spliceNoopReturnsEmptyArray);\n\nvar spliceWorksWithEmptyObject = (function () {\n    var obj = {};\n    ArrayPrototype.splice.call(obj, 0, 0, 1);\n    return obj.length === 1;\n}());\ndefineProperties(ArrayPrototype, {\n    splice: function splice(start, deleteCount) {\n        if (arguments.length === 0) { return []; }\n        var args = arguments;\n        this.length = max(ES.ToInteger(this.length), 0);\n        if (arguments.length > 0 && typeof deleteCount !== 'number') {\n            args = array_slice.call(arguments);\n            if (args.length < 2) {\n                push(args, this.length - start);\n            } else {\n                args[1] = ES.ToInteger(deleteCount);\n            }\n        }\n        return array_splice.apply(this, args);\n    }\n}, !spliceWorksWithEmptyObject);\nvar spliceWorksWithLargeSparseArrays = (function () {\n    // Per https://github.com/es-shims/es5-shim/issues/295\n    // Safari 7/8 breaks with sparse arrays of size 1e5 or greater\n    var arr = new $Array(1e5);\n    // note: the index MUST be 8 or larger or the test will false pass\n    arr[8] = 'x';\n    arr.splice(1, 1);\n    // note: this test must be defined *after* the indexOf shim\n    // per https://github.com/es-shims/es5-shim/issues/313\n    return arr.indexOf('x') === 7;\n}());\nvar spliceWorksWithSmallSparseArrays = (function () {\n    // Per https://github.com/es-shims/es5-shim/issues/295\n    // Opera 12.15 breaks on this, no idea why.\n    var n = 256;\n    var arr = [];\n    arr[n] = 'a';\n    arr.splice(n + 1, 0, 'b');\n    return arr[n] === 'a';\n}());\ndefineProperties(ArrayPrototype, {\n    splice: function splice(start, deleteCount) {\n        var O = ES.ToObject(this);\n        var A = [];\n        var len = ES.ToUint32(O.length);\n        var relativeStart = ES.ToInteger(start);\n        var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len);\n        var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart);\n\n        var k = 0;\n        var from;\n        while (k < actualDeleteCount) {\n            from = $String(actualStart + k);\n            if (owns(O, from)) {\n                A[k] = O[from];\n            }\n            k += 1;\n        }\n\n        var items = array_slice.call(arguments, 2);\n        var itemCount = items.length;\n        var to;\n        if (itemCount < actualDeleteCount) {\n            k = actualStart;\n            while (k < (len - actualDeleteCount)) {\n                from = $String(k + actualDeleteCount);\n                to = $String(k + itemCount);\n                if (owns(O, from)) {\n                    O[to] = O[from];\n                } else {\n                    delete O[to];\n                }\n                k += 1;\n            }\n            k = len;\n            while (k > (len - actualDeleteCount + itemCount)) {\n                delete O[k - 1];\n                k -= 1;\n            }\n        } else if (itemCount > actualDeleteCount) {\n            k = len - actualDeleteCount;\n            while (k > actualStart) {\n                from = $String(k + actualDeleteCount - 1);\n                to = $String(k + itemCount - 1);\n                if (owns(O, from)) {\n                    O[to] = O[from];\n                } else {\n                    delete O[to];\n                }\n                k -= 1;\n            }\n        }\n        k = actualStart;\n        for (var i = 0; i < items.length; ++i) {\n            O[k] = items[i];\n            k += 1;\n        }\n        O.length = len - actualDeleteCount + itemCount;\n\n        return A;\n    }\n}, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays);\n\nvar hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2';\nvar originalJoin = ArrayPrototype.join;\ndefineProperties(ArrayPrototype, {\n    join: function join(separator) {\n        return originalJoin.call(this, typeof separator === 'undefined' ? ',' : separator);\n    }\n}, hasJoinUndefinedBug);\n\nvar pushShim = function push(item) {\n    var O = ES.ToObject(this);\n    var n = ES.ToUint32(O.length);\n    var i = 0;\n    while (i < arguments.length) {\n        O[n + i] = arguments[i];\n        i += 1;\n    }\n    O.length = n + i;\n    return n + i;\n};\n\nvar pushIsNotGeneric = (function () {\n    var obj = {};\n    var result = Array.prototype.push.call(obj, undefined);\n    return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0);\n}());\ndefineProperties(ArrayPrototype, {\n    push: function push(item) {\n        if (isArray(this)) {\n            return array_push.apply(this, arguments);\n        }\n        return pushShim.apply(this, arguments);\n    }\n}, pushIsNotGeneric);\n\n// This fixes a very weird bug in Opera 10.6 when pushing `undefined\nvar pushUndefinedIsWeird = (function () {\n    var arr = [];\n    var result = arr.push(undefined);\n    return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0);\n}());\ndefineProperties(ArrayPrototype, { push: pushShim }, pushUndefinedIsWeird);\n\n//\n// Object\n// ======\n//\n\n// ES5 15.2.3.14\n// http://es5.github.com/#x15.2.3.14\n\n// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar hasStringEnumBug = !owns('x', '0');\nvar equalsConstructorPrototype = function (o) {\n    var ctor = o.constructor;\n    return ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n    $window: true,\n    $console: true,\n    $parent: true,\n    $self: true,\n    $frame: true,\n    $frames: true,\n    $frameElement: true,\n    $webkitIndexedDB: true,\n    $webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n    /* globals window */\n    if (typeof window === 'undefined') { return false; }\n    for (var k in window) {\n        try {\n            if (!blacklistedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') {\n                equalsConstructorPrototype(window[k]);\n            }\n        } catch (e) {\n            return true;\n        }\n    }\n    return false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (object) {\n    if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(object); }\n    try {\n        return equalsConstructorPrototype(object);\n    } catch (e) {\n        return false;\n    }\n};\nvar dontEnums = [\n    'toString',\n    'toLocaleString',\n    'valueOf',\n    'hasOwnProperty',\n    'isPrototypeOf',\n    'propertyIsEnumerable',\n    'constructor'\n];\nvar dontEnumsLength = dontEnums.length;\n\n// taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js\n// can be replaced with require('is-arguments') if we ever use a build process instead\nvar isStandardArguments = function isArguments(value) {\n    return toStr(value) === '[object Arguments]';\n};\nvar isLegacyArguments = function isArguments(value) {\n    return value !== null &&\n        typeof value === 'object' &&\n        typeof value.length === 'number' &&\n        value.length >= 0 &&\n        !isArray(value) &&\n        isCallable(value.callee);\n};\nvar isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments;\n\ndefineProperties($Object, {\n    keys: function keys(object) {\n        var isFn = isCallable(object);\n        var isArgs = isArguments(object);\n        var isObject = object !== null && typeof object === 'object';\n        var isStr = isObject && isString(object);\n\n        if (!isObject && !isFn && !isArgs) {\n            throw new TypeError('Object.keys called on a non-object');\n        }\n\n        var theKeys = [];\n        var skipProto = hasProtoEnumBug && isFn;\n        if ((isStr && hasStringEnumBug) || isArgs) {\n            for (var i = 0; i < object.length; ++i) {\n                push(theKeys, $String(i));\n            }\n        }\n\n        if (!isArgs) {\n            for (var name in object) {\n                if (!(skipProto && name === 'prototype') && owns(object, name)) {\n                    push(theKeys, $String(name));\n                }\n            }\n        }\n\n        if (hasDontEnumBug) {\n            var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n            for (var j = 0; j < dontEnumsLength; j++) {\n                var dontEnum = dontEnums[j];\n                if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) {\n                    push(theKeys, dontEnum);\n                }\n            }\n        }\n        return theKeys;\n    }\n});\n\nvar keysWorksWithArguments = $Object.keys && (function () {\n    // Safari 5.0 bug\n    return $Object.keys(arguments).length === 2;\n}(1, 2));\nvar keysHasArgumentsLengthBug = $Object.keys && (function () {\n    var argKeys = $Object.keys(arguments);\n    return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1;\n}(1));\nvar originalKeys = $Object.keys;\ndefineProperties($Object, {\n    keys: function keys(object) {\n        if (isArguments(object)) {\n            return originalKeys(array_slice.call(object));\n        } else {\n            return originalKeys(object);\n        }\n    }\n}, !keysWorksWithArguments || keysHasArgumentsLengthBug);\n\n//\n// Date\n// ====\n//\n\n// ES5 15.9.5.43\n// http://es5.github.com/#x15.9.5.43\n// This function returns a String value represent the instance in time\n// represented by this Date object. The format of the String is the Date Time\n// string format defined in 15.9.1.15. All fields are present in the String.\n// The time zone is always UTC, denoted by the suffix Z. If the time value of\n// this object is not a finite Number a RangeError exception is thrown.\nvar negativeDate = -62198755200000;\nvar negativeYearString = '-000001';\nvar hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1;\nvar hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z';\n\ndefineProperties(Date.prototype, {\n    toISOString: function toISOString() {\n        var result, length, value, year, month;\n        if (!isFinite(this)) {\n            throw new RangeError('Date.prototype.toISOString called on non-finite value.');\n        }\n\n        year = this.getUTCFullYear();\n\n        month = this.getUTCMonth();\n        // see https://github.com/es-shims/es5-shim/issues/111\n        year += Math.floor(month / 12);\n        month = (month % 12 + 12) % 12;\n\n        // the date time string format is specified in 15.9.1.15.\n        result = [month + 1, this.getUTCDate(), this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()];\n        year = (\n            (year < 0 ? '-' : (year > 9999 ? '+' : '')) +\n            strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6)\n        );\n\n        length = result.length;\n        while (length--) {\n            value = result[length];\n            // pad months, days, hours, minutes, and seconds to have two\n            // digits.\n            if (value < 10) {\n                result[length] = '0' + value;\n            }\n        }\n        // pad milliseconds to have three digits.\n        return (\n            year + '-' + array_slice.call(result, 0, 2).join('-') +\n            'T' + array_slice.call(result, 2).join(':') + '.' +\n            strSlice('000' + this.getUTCMilliseconds(), -3) + 'Z'\n        );\n    }\n}, hasNegativeDateBug || hasSafari51DateBug);\n\n// ES5 15.9.5.44\n// http://es5.github.com/#x15.9.5.44\n// This function provides a String representation of a Date object for use by\n// JSON.stringify (15.12.3).\nvar dateToJSONIsSupported = (function () {\n    try {\n        return Date.prototype.toJSON &&\n            new Date(NaN).toJSON() === null &&\n            new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 &&\n            Date.prototype.toJSON.call({ // generic\n                toISOString: function () { return true; }\n            });\n    } catch (e) {\n        return false;\n    }\n}());\nif (!dateToJSONIsSupported) {\n    Date.prototype.toJSON = function toJSON(key) {\n        // When the toJSON method is called with argument key, the following\n        // steps are taken:\n\n        // 1.  Let O be the result of calling ToObject, giving it the this\n        // value as its argument.\n        // 2. Let tv be ES.ToPrimitive(O, hint Number).\n        var O = $Object(this);\n        var tv = ES.ToPrimitive(O);\n        // 3. If tv is a Number and is not finite, return null.\n        if (typeof tv === 'number' && !isFinite(tv)) {\n            return null;\n        }\n        // 4. Let toISO be the result of calling the [[Get]] internal method of\n        // O with argument \"toISOString\".\n        var toISO = O.toISOString;\n        // 5. If IsCallable(toISO) is false, throw a TypeError exception.\n        if (!isCallable(toISO)) {\n            throw new TypeError('toISOString property is not callable');\n        }\n        // 6. Return the result of calling the [[Call]] internal method of\n        //  toISO with O as the this value and an empty argument list.\n        return toISO.call(O);\n\n        // NOTE 1 The argument is ignored.\n\n        // NOTE 2 The toJSON function is intentionally generic; it does not\n        // require that its this value be a Date object. Therefore, it can be\n        // transferred to other kinds of objects for use as a method. However,\n        // it does require that any such object have a toISOString method. An\n        // object is free to use the argument key to filter its\n        // stringification.\n    };\n}\n\n// ES5 15.9.4.2\n// http://es5.github.com/#x15.9.4.2\n// based on work shared by Daniel Friesen (dantman)\n// http://gist.github.com/303249\nvar supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15;\nvar acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z'));\nvar doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z'));\nif (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) {\n    // XXX global assignment won't work in embeddings that use\n    // an alternate object for the context.\n    /* global Date: true */\n    /* eslint-disable no-undef */\n    var maxSafeUnsigned32Bit = Math.pow(2, 31) - 1;\n    var secondsWithinMaxSafeUnsigned32Bit = Math.floor(maxSafeUnsigned32Bit / 1e3);\n    var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime());\n    Date = (function (NativeDate) {\n    /* eslint-enable no-undef */\n        // Date.length === 7\n        var DateShim = function Date(Y, M, D, h, m, s, ms) {\n            var length = arguments.length;\n            var date;\n            if (this instanceof NativeDate) {\n                var seconds = s;\n                var millis = ms;\n                if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) {\n                    // work around a Safari 8/9 bug where it treats the seconds as signed\n                    var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n                    var sToShift = Math.floor(msToShift / 1e3);\n                    seconds += sToShift;\n                    millis -= sToShift * 1e3;\n                }\n                date = length === 1 && $String(Y) === Y ? // isString(Y)\n                    // We explicitly pass it through parse:\n                    new NativeDate(DateShim.parse(Y)) :\n                    // We have to manually make calls depending on argument\n                    // length here\n                    length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis) :\n                    length >= 6 ? new NativeDate(Y, M, D, h, m, seconds) :\n                    length >= 5 ? new NativeDate(Y, M, D, h, m) :\n                    length >= 4 ? new NativeDate(Y, M, D, h) :\n                    length >= 3 ? new NativeDate(Y, M, D) :\n                    length >= 2 ? new NativeDate(Y, M) :\n                    length >= 1 ? new NativeDate(Y) :\n                                  new NativeDate();\n            } else {\n                date = NativeDate.apply(this, arguments);\n            }\n            if (!isPrimitive(date)) {\n              // Prevent mixups with unfixed Date object\n              defineProperties(date, { constructor: DateShim }, true);\n            }\n            return date;\n        };\n\n        // 15.9.1.15 Date Time String Format.\n        var isoDateExpression = new RegExp('^' +\n            '(\\\\d{4}|[+-]\\\\d{6})' + // four-digit year capture or sign +\n                                      // 6-digit extended year\n            '(?:-(\\\\d{2})' + // optional month capture\n            '(?:-(\\\\d{2})' + // optional day capture\n            '(?:' + // capture hours:minutes:seconds.milliseconds\n                'T(\\\\d{2})' + // hours capture\n                ':(\\\\d{2})' + // minutes capture\n                '(?:' + // optional :seconds.milliseconds\n                    ':(\\\\d{2})' + // seconds capture\n                    '(?:(\\\\.\\\\d{1,}))?' + // milliseconds capture\n                ')?' +\n            '(' + // capture UTC offset component\n                'Z|' + // UTC capture\n                '(?:' + // offset specifier +/-hours:minutes\n                    '([-+])' + // sign capture\n                    '(\\\\d{2})' + // hours offset capture\n                    ':(\\\\d{2})' + // minutes offset capture\n                ')' +\n            ')?)?)?)?' +\n        '$');\n\n        var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\n\n        var dayFromMonth = function dayFromMonth(year, month) {\n            var t = month > 1 ? 1 : 0;\n            return (\n                months[month] +\n                Math.floor((year - 1969 + t) / 4) -\n                Math.floor((year - 1901 + t) / 100) +\n                Math.floor((year - 1601 + t) / 400) +\n                365 * (year - 1970)\n            );\n        };\n\n        var toUTC = function toUTC(t) {\n            var s = 0;\n            var ms = t;\n            if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) {\n                // work around a Safari 8/9 bug where it treats the seconds as signed\n                var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit;\n                var sToShift = Math.floor(msToShift / 1e3);\n                s += sToShift;\n                ms -= sToShift * 1e3;\n            }\n            return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms));\n        };\n\n        // Copy any custom methods a 3rd party library may have added\n        for (var key in NativeDate) {\n            if (owns(NativeDate, key)) {\n                DateShim[key] = NativeDate[key];\n            }\n        }\n\n        // Copy \"native\" methods explicitly; they may be non-enumerable\n        defineProperties(DateShim, {\n            now: NativeDate.now,\n            UTC: NativeDate.UTC\n        }, true);\n        DateShim.prototype = NativeDate.prototype;\n        defineProperties(DateShim.prototype, {\n            constructor: DateShim\n        }, true);\n\n        // Upgrade Date.parse to handle simplified ISO 8601 strings\n        var parseShim = function parse(string) {\n            var match = isoDateExpression.exec(string);\n            if (match) {\n                // parse months, days, hours, minutes, seconds, and milliseconds\n                // provide default values if necessary\n                // parse the UTC offset component\n                var year = $Number(match[1]),\n                    month = $Number(match[2] || 1) - 1,\n                    day = $Number(match[3] || 1) - 1,\n                    hour = $Number(match[4] || 0),\n                    minute = $Number(match[5] || 0),\n                    second = $Number(match[6] || 0),\n                    millisecond = Math.floor($Number(match[7] || 0) * 1000),\n                    // When time zone is missed, local offset should be used\n                    // (ES 5.1 bug)\n                    // see https://bugs.ecmascript.org/show_bug.cgi?id=112\n                    isLocalTime = Boolean(match[4] && !match[8]),\n                    signOffset = match[9] === '-' ? 1 : -1,\n                    hourOffset = $Number(match[10] || 0),\n                    minuteOffset = $Number(match[11] || 0),\n                    result;\n                var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0;\n                if (\n                    hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25) &&\n                    minute < 60 && second < 60 && millisecond < 1000 &&\n                    month > -1 && month < 12 && hourOffset < 24 &&\n                    minuteOffset < 60 && // detect invalid offsets\n                    day > -1 &&\n                    day < (dayFromMonth(year, month + 1) - dayFromMonth(year, month))\n                ) {\n                    result = (\n                        (dayFromMonth(year, month) + day) * 24 +\n                        hour +\n                        hourOffset * signOffset\n                    ) * 60;\n                    result = (\n                        (result + minute + minuteOffset * signOffset) * 60 +\n                        second\n                    ) * 1000 + millisecond;\n                    if (isLocalTime) {\n                        result = toUTC(result);\n                    }\n                    if (-8.64e15 <= result && result <= 8.64e15) {\n                        return result;\n                    }\n                }\n                return NaN;\n            }\n            return NativeDate.parse.apply(this, arguments);\n        };\n        defineProperties(DateShim, { parse: parseShim });\n\n        return DateShim;\n    }(Date));\n    /* global Date: false */\n}\n\n// ES5 15.9.4.4\n// http://es5.github.com/#x15.9.4.4\nif (!Date.now) {\n    Date.now = function now() {\n        return new Date().getTime();\n    };\n}\n\n//\n// Number\n// ======\n//\n\n// ES5.1 15.7.4.5\n// http://es5.github.com/#x15.7.4.5\nvar hasToFixedBugs = NumberPrototype.toFixed && (\n  (0.00008).toFixed(3) !== '0.000' ||\n  (0.9).toFixed(0) !== '1' ||\n  (1.255).toFixed(2) !== '1.25' ||\n  (1000000000000000128).toFixed(0) !== '1000000000000000128'\n);\n\nvar toFixedHelpers = {\n  base: 1e7,\n  size: 6,\n  data: [0, 0, 0, 0, 0, 0],\n  multiply: function multiply(n, c) {\n      var i = -1;\n      var c2 = c;\n      while (++i < toFixedHelpers.size) {\n          c2 += n * toFixedHelpers.data[i];\n          toFixedHelpers.data[i] = c2 % toFixedHelpers.base;\n          c2 = Math.floor(c2 / toFixedHelpers.base);\n      }\n  },\n  divide: function divide(n) {\n      var i = toFixedHelpers.size, c = 0;\n      while (--i >= 0) {\n          c += toFixedHelpers.data[i];\n          toFixedHelpers.data[i] = Math.floor(c / n);\n          c = (c % n) * toFixedHelpers.base;\n      }\n  },\n  numToString: function numToString() {\n      var i = toFixedHelpers.size;\n      var s = '';\n      while (--i >= 0) {\n          if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) {\n              var t = $String(toFixedHelpers.data[i]);\n              if (s === '') {\n                  s = t;\n              } else {\n                  s += strSlice('0000000', 0, 7 - t.length) + t;\n              }\n          }\n      }\n      return s;\n  },\n  pow: function pow(x, n, acc) {\n      return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc)));\n  },\n  log: function log(x) {\n      var n = 0;\n      var x2 = x;\n      while (x2 >= 4096) {\n          n += 12;\n          x2 /= 4096;\n      }\n      while (x2 >= 2) {\n          n += 1;\n          x2 /= 2;\n      }\n      return n;\n  }\n};\n\nvar toFixedShim = function toFixed(fractionDigits) {\n    var f, x, s, m, e, z, j, k;\n\n    // Test for NaN and round fractionDigits down\n    f = $Number(fractionDigits);\n    f = isActualNaN(f) ? 0 : Math.floor(f);\n\n    if (f < 0 || f > 20) {\n        throw new RangeError('Number.toFixed called with invalid number of decimals');\n    }\n\n    x = $Number(this);\n\n    if (isActualNaN(x)) {\n        return 'NaN';\n    }\n\n    // If it is too big or small, return the string value of the number\n    if (x <= -1e21 || x >= 1e21) {\n        return $String(x);\n    }\n\n    s = '';\n\n    if (x < 0) {\n        s = '-';\n        x = -x;\n    }\n\n    m = '0';\n\n    if (x > 1e-21) {\n        // 1e-21 < x < 1e21\n        // -70 < log2(x) < 70\n        e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69;\n        z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1));\n        z *= 0x10000000000000; // Math.pow(2, 52);\n        e = 52 - e;\n\n        // -18 < e < 122\n        // x = z / 2 ^ e\n        if (e > 0) {\n            toFixedHelpers.multiply(0, z);\n            j = f;\n\n            while (j >= 7) {\n                toFixedHelpers.multiply(1e7, 0);\n                j -= 7;\n            }\n\n            toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0);\n            j = e - 1;\n\n            while (j >= 23) {\n                toFixedHelpers.divide(1 << 23);\n                j -= 23;\n            }\n\n            toFixedHelpers.divide(1 << j);\n            toFixedHelpers.multiply(1, 1);\n            toFixedHelpers.divide(2);\n            m = toFixedHelpers.numToString();\n        } else {\n            toFixedHelpers.multiply(0, z);\n            toFixedHelpers.multiply(1 << (-e), 0);\n            m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f);\n        }\n    }\n\n    if (f > 0) {\n        k = m.length;\n\n        if (k <= f) {\n            m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m;\n        } else {\n            m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f);\n        }\n    } else {\n        m = s + m;\n    }\n\n    return m;\n};\ndefineProperties(NumberPrototype, { toFixed: toFixedShim }, hasToFixedBugs);\n\nvar hasToPrecisionUndefinedBug = (function () {\n    try {\n        return 1.0.toPrecision(undefined) === '1';\n    } catch (e) {\n        return true;\n    }\n}());\nvar originalToPrecision = NumberPrototype.toPrecision;\ndefineProperties(NumberPrototype, {\n    toPrecision: function toPrecision(precision) {\n        return typeof precision === 'undefined' ? originalToPrecision.call(this) : originalToPrecision.call(this, precision);\n    }\n}, hasToPrecisionUndefinedBug);\n\n//\n// String\n// ======\n//\n\n// ES5 15.5.4.14\n// http://es5.github.com/#x15.5.4.14\n\n// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n// Many browsers do not split properly with regular expressions or they\n// do not perform the split correctly under obscure conditions.\n// See http://blog.stevenlevithan.com/archives/cross-browser-split\n// I've tested in many browsers and this seems to cover the deviant ones:\n//    'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n//    '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n//    'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n//       [undefined, \"t\", undefined, \"e\", ...]\n//    ''.split(/.?/) should be [], not [\"\"]\n//    '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\nif (\n    'ab'.split(/(?:ab)*/).length !== 2 ||\n    '.'.split(/(.?)(.?)/).length !== 4 ||\n    'tesst'.split(/(s)*/)[1] === 't' ||\n    'test'.split(/(?:)/, -1).length !== 4 ||\n    ''.split(/.?/).length ||\n    '.'.split(/()()/).length > 1\n) {\n    (function () {\n        var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group\n        var maxSafe32BitInt = Math.pow(2, 32) - 1;\n\n        StringPrototype.split = function (separator, limit) {\n            var string = this;\n            if (typeof separator === 'undefined' && limit === 0) {\n                return [];\n            }\n\n            // If `separator` is not a regex, use native split\n            if (!isRegex(separator)) {\n                return strSplit(this, separator, limit);\n            }\n\n            var output = [];\n            var flags = (separator.ignoreCase ? 'i' : '') +\n                        (separator.multiline ? 'm' : '') +\n                        (separator.unicode ? 'u' : '') + // in ES6\n                        (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6\n                lastLastIndex = 0,\n                // Make `global` and avoid `lastIndex` issues by working with a copy\n                separator2, match, lastIndex, lastLength;\n            var separatorCopy = new RegExp(separator.source, flags + 'g');\n            string += ''; // Type-convert\n            if (!compliantExecNpcg) {\n                // Doesn't need flags gy, but they don't hurt\n                separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n            }\n            /* Values for `limit`, per the spec:\n             * If undefined: 4294967295 // maxSafe32BitInt\n             * If 0, Infinity, or NaN: 0\n             * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n             * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n             * If other: Type-convert, then use the above rules\n             */\n            var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit);\n            match = separatorCopy.exec(string);\n            while (match) {\n                // `separatorCopy.lastIndex` is not reliable cross-browser\n                lastIndex = match.index + match[0].length;\n                if (lastIndex > lastLastIndex) {\n                    push(output, strSlice(string, lastLastIndex, match.index));\n                    // Fix browsers whose `exec` methods don't consistently return `undefined` for\n                    // nonparticipating capturing groups\n                    if (!compliantExecNpcg && match.length > 1) {\n                        /* eslint-disable no-loop-func */\n                        match[0].replace(separator2, function () {\n                            for (var i = 1; i < arguments.length - 2; i++) {\n                                if (typeof arguments[i] === 'undefined') {\n                                    match[i] = void 0;\n                                }\n                            }\n                        });\n                        /* eslint-enable no-loop-func */\n                    }\n                    if (match.length > 1 && match.index < string.length) {\n                        array_push.apply(output, array_slice.call(match, 1));\n                    }\n                    lastLength = match[0].length;\n                    lastLastIndex = lastIndex;\n                    if (output.length >= splitLimit) {\n                        break;\n                    }\n                }\n                if (separatorCopy.lastIndex === match.index) {\n                    separatorCopy.lastIndex++; // Avoid an infinite loop\n                }\n                match = separatorCopy.exec(string);\n            }\n            if (lastLastIndex === string.length) {\n                if (lastLength || !separatorCopy.test('')) {\n                    push(output, '');\n                }\n            } else {\n                push(output, strSlice(string, lastLastIndex));\n            }\n            return output.length > splitLimit ? strSlice(output, 0, splitLimit) : output;\n        };\n    }());\n\n// [bugfix, chrome]\n// If separator is undefined, then the result array contains just one String,\n// which is the this value (converted to a String). If limit is not undefined,\n// then the output array is truncated so that it contains no more than limit\n// elements.\n// \"0\".split(undefined, 0) -> []\n} else if ('0'.split(void 0, 0).length) {\n    StringPrototype.split = function split(separator, limit) {\n        if (typeof separator === 'undefined' && limit === 0) { return []; }\n        return strSplit(this, separator, limit);\n    };\n}\n\nvar str_replace = StringPrototype.replace;\nvar replaceReportsGroupsCorrectly = (function () {\n    var groups = [];\n    'x'.replace(/x(.)?/g, function (match, group) {\n        push(groups, group);\n    });\n    return groups.length === 1 && typeof groups[0] === 'undefined';\n}());\n\nif (!replaceReportsGroupsCorrectly) {\n    StringPrototype.replace = function replace(searchValue, replaceValue) {\n        var isFn = isCallable(replaceValue);\n        var hasCapturingGroups = isRegex(searchValue) && (/\\)[*?]/).test(searchValue.source);\n        if (!isFn || !hasCapturingGroups) {\n            return str_replace.call(this, searchValue, replaceValue);\n        } else {\n            var wrappedReplaceValue = function (match) {\n                var length = arguments.length;\n                var originalLastIndex = searchValue.lastIndex;\n                searchValue.lastIndex = 0;\n                var args = searchValue.exec(match) || [];\n                searchValue.lastIndex = originalLastIndex;\n                push(args, arguments[length - 2], arguments[length - 1]);\n                return replaceValue.apply(this, args);\n            };\n            return str_replace.call(this, searchValue, wrappedReplaceValue);\n        }\n    };\n}\n\n// ECMA-262, 3rd B.2.3\n// Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n// non-normative section suggesting uniform semantics and it should be\n// normalized across all browsers\n// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\nvar string_substr = StringPrototype.substr;\nvar hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\ndefineProperties(StringPrototype, {\n    substr: function substr(start, length) {\n        var normalizedStart = start;\n        if (start < 0) {\n            normalizedStart = max(this.length + start, 0);\n        }\n        return string_substr.call(this, normalizedStart, length);\n    }\n}, hasNegativeSubstrBug);\n\n// ES5 15.5.4.20\n// whitespace from: http://es5.github.io/#x15.5.4.20\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n    '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' +\n    '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar wsRegexChars = '[' + ws + ']';\nvar trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');\nvar trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');\nvar hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());\ndefineProperties(StringPrototype, {\n    // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n    // http://perfectionkills.com/whitespace-deviations/\n    trim: function trim() {\n        if (typeof this === 'undefined' || this === null) {\n            throw new TypeError(\"can't convert \" + this + ' to object');\n        }\n        return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');\n    }\n}, hasTrimWhitespaceBug);\n\nvar hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1;\ndefineProperties(StringPrototype, {\n    lastIndexOf: function lastIndexOf(searchString) {\n        if (typeof this === 'undefined' || this === null) {\n            throw new TypeError(\"can't convert \" + this + ' to object');\n        }\n        var S = $String(this);\n        var searchStr = $String(searchString);\n        var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN;\n        var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos);\n        var start = min(max(pos, 0), S.length);\n        var searchLen = searchStr.length;\n        var k = start + searchLen;\n        while (k > 0) {\n            k = max(0, k - searchLen);\n            var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr);\n            if (index !== -1) {\n                return k + index;\n            }\n        }\n        return -1;\n    }\n}, hasLastIndexBug);\n\nvar originalLastIndexOf = StringPrototype.lastIndexOf;\ndefineProperties(StringPrototype, {\n    lastIndexOf: function lastIndexOf(searchString) {\n        return originalLastIndexOf.apply(this, arguments);\n    }\n}, StringPrototype.lastIndexOf.length !== 1);\n\n// ES-5 15.1.2.2\n/* eslint-disable radix */\nif (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) {\n/* eslint-enable radix */\n    /* global parseInt: true */\n    parseInt = (function (origParseInt) {\n        var hexRegex = /^[\\-+]?0[xX]/;\n        return function parseInt(str, radix) {\n            var string = $String(str).trim();\n            var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10);\n            return origParseInt(string, defaultedRadix);\n        };\n    }(parseInt));\n}\n\nif (String(new RangeError('test')) !== 'RangeError: test') {\n    var originalErrorToString = Error.prototype.toString;\n    var errorToStringShim = function toString() {\n        if (typeof this === 'undefined' || this === null) {\n            throw new TypeError(\"can't convert \" + this + ' to object');\n        }\n        var name = this.name;\n        if (typeof name === 'undefined') {\n            name = 'Error';\n        } else if (typeof name !== 'string') {\n            name = $String(name);\n        }\n        var msg = this.message;\n        if (typeof msg === 'undefined') {\n            msg = '';\n        } else if (typeof msg !== 'string') {\n            msg = $String(msg);\n        }\n        if (!name) {\n            return msg;\n        }\n        if (!msg) {\n            return name;\n        }\n        return name + ': ' + msg;\n    };\n    // can't use defineProperties here because of toString enumeration issue in IE <= 8\n    Error.prototype.toString = errorToStringShim;\n}\n\n}));\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/test-main.js",
    "content": "/* global requirejs */\nvar tests = [];\nfor (var file in window.__karma__.files) {\n  if (/spec\\.js$/.test(file)) {\n    tests.push(file);\n  }\n}\n\nrequirejs.config({\n  // Karma serves files from '/base'\n  baseUrl: '/base/src/js',\n\n  paths: {\n    jquery: '../../test/libs/jquery-1.9.1.min',\n    bootstrap: '../../test/libs/bootstrap',\n    es5shim: '../../test/libs/es5-shim',\n    codemirror: '../../test/libs/codemirror',\n    chai: '../../node_modules/chai/chai',\n    spies: '../../node_modules/chai-spies/chai-spies',\n    chaidom: '../../test/chaidom'\n  },\n\n  shim: {\n    bootstrap: ['jquery'],\n    es5shim: { exports: 'es5shim' },\n    codemirror: { exports: 'codemirror' }\n  },\n\n  packages: [{\n    name: 'summernote',\n    location: '.',\n    main: 'summernote'\n  }],\n\n  // ask Require.js to load these files (all our tests)\n  deps: tests,\n\n  callback: function () {\n    require(['jquery', 'bootstrap', 'summernote/bs3/settings'], function () {\n      window.__karma__.start();\n    });\n  }\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/Context.spec.js",
    "content": "/**\n * Context.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'spies',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/dom',\n  'summernote/base/Context'\n], function (chai, spies, chaidom, $, agent, dom, Context) {\n  'use strict';\n\n  var expect = chai.expect;\n  chai.use(spies);\n  chai.use(chaidom);\n\n  describe('Context lifecycle', function () {\n    it('should be initialized without calling callback', function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n\n      var spy = chai.spy();\n      var $note = $('<div><p>hello</p></div>');\n      $note.on('summernote.change', spy);\n\n      var context = new Context($note, options);\n      expect(spy).to.have.not.been.called();\n\n      // [workaround]\n      //  - IE8-11 can't create range in headless mode\n      if (!agent.isMSIE) {\n        context.invoke('insertText', 'hello');\n        expect(spy).to.have.been.called();\n      }\n    });\n\n    it('should preserve user events handler after destroy', function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n\n      var spy = chai.spy();\n      var $note = $('<div><p>hello</p></div>');\n      $note.on('click', spy);\n\n      var context = new Context($note, options);\n      context.destroy();\n\n      $note.trigger('click');\n      expect(spy).to.have.been.called();\n    });\n  });\n\n  describe('Context', function () {\n    var context;\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n    });\n\n    it('should get or set contents with code', function () {\n      expect(context.code()).to.equalsIgnoreCase('<p>hello</p>');\n      context.code('<p>hello2</p>');\n      expect(context.code()).to.equalsIgnoreCase('<p>hello2</p>');\n    });\n\n    it('should enable or disable editor', function () {\n      expect(context.isDisabled()).to.be.false;\n      context.disable();\n      expect(context.isDisabled()).to.be.true;\n      context.enable();\n      expect(context.isDisabled()).to.be.false;\n    });\n\n    it('should preserve disabled status after reset', function () {\n      expect(context.isDisabled()).to.be.false;\n      context.disable();\n      expect(context.isDisabled()).to.be.true;\n      context.reset();\n      expect(context.isDisabled()).to.be.true;\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/core/agent.spec.js",
    "content": "/**\n * agent.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/core/agent'\n], function (chai, agent) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.agent', function () {\n\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/core/async.spec.js",
    "content": "/**\n * async.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/core/async'\n], function (chai, async) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.async', function () {\n\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/core/dom.spec.js",
    "content": "/**\n * dom.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/dom',\n  'summernote/base/core/func'\n], function (chai, chaidom, $, dom, func) {\n  'use strict';\n\n  var expect = chai.expect;\n  chai.use(chaidom);\n\n  describe('base:core.dom', function () {\n    describe('ancestor', function () {\n      var $cont, $b, txtB;\n      before(function () {\n        // basic case\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        txtB = $b[0].firstChild;\n      });\n\n      it('should find ancestor B', function () {\n        expect(dom.ancestor(txtB, dom.isB)).to.deep.equal($b[0]);\n      });\n\n      it('should find ancestor DIV', function () {\n        expect(dom.ancestor(txtB, dom.isDiv)).to.deep.equal($cont[0]);\n      });\n\n      it('should return null when finding ancestor U does not exist', function () {\n        expect(dom.ancestor(txtB, dom.isU)).to.be.null;\n      });\n\n      it('should return null when finding paragraph ancestor outsider note-editable', function () {\n        expect(dom.ancestor(txtB, dom.isLi)).to.be.null;\n      });\n    });\n\n    describe('listAncestor', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><i><s><u><b>b</b></u></s></i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return [$b, $u, $s, $i] from b to i', function () {\n        var result = dom.listAncestor($b[0], function (node) { return node === $i[0]; });\n        expect(result).to.deep.equal([$b[0], $u[0], $s[0], $i[0]]);\n      });\n\n      it('should return [$u, $s] from u to s', function () {\n        var result = dom.listAncestor($u[0], function (node) { return node === $s[0]; });\n        expect(result).to.deep.equal([$u[0], $s[0]]);\n      });\n    });\n\n    describe('listDescendant', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b></b><u></u><s></s><i></i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return an array of descendant elements', function () {\n        expect(dom.listDescendant($cont[0])).to.deep.equal([$b[0], $u[0], $s[0], $i[0]]);\n      });\n\n      it('should filter an array of descendant elements', function () {\n        var result = dom.listDescendant($cont[0], function (node) {\n          return node.nodeName === 'B' || node.nodeName === 'S';\n        });\n        expect(result).to.deep.equal([$b[0], $s[0]]);\n      });\n    });\n\n    describe('commonAncestor', function () {\n      var $cont, $span, $div, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><div><span><b>b</b><u>u</u></span><span><s>s</s><i>i</i></span></div></div>');\n        $span = $cont.find('span');\n        $div = $cont.find('div');\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return a common element in ancestors', function () {\n        expect(dom.commonAncestor($b[0], $u[0])).to.deep.equal($span[0]);\n      });\n\n      it('should return a common element in ancestors even if they have same nodeName', function () {\n        expect(dom.commonAncestor($b[0], $s[0])).to.deep.equal($div[0]);\n      });\n    });\n\n    describe('listNext', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return an array of next sibling elements including itself', function () {\n        expect(dom.listNext($u[0])).to.deep.equal([$u[0], $s[0], $i[0]]);\n      });\n\n      it('should return itself if there are no next sibling', function () {\n        expect(dom.listNext($i[0])).to.deep.equal([$i[0]]);\n      });\n\n      it('should return an array of next sibling elements before predicate is true', function () {\n        expect(dom.listNext($s[0], func.eq($i[0]))).to.deep.equal([$s[0]]);\n      });\n    });\n\n    describe('listPrev', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return an array of previous sibling elements including itself', function () {\n        expect(dom.listPrev($s[0])).to.deep.equal([$s[0], $u[0], $b[0]]);\n      });\n\n      it('should return itself if there are no previous sibling', function () {\n        expect(dom.listPrev($b[0])).to.deep.equal([$b[0]]);\n      });\n\n      it('should return an array of previous sibling elements before predicate is true', function () {\n        expect(dom.listPrev($i[0], func.eq($s[0]))).to.deep.equal([$i[0]]);\n      });\n    });\n\n    describe('position', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return the position of element', function () {\n        expect(dom.position($b[0])).to.be.equal(0);\n        expect(dom.position($u[0])).to.be.equal(1);\n        expect(dom.position($s[0])).to.be.equal(2);\n        expect(dom.position($i[0])).to.be.equal(3);\n      });\n\n      it('should return position 0 for text node in b', function () {\n        expect(dom.position($b[0].firstChild)).to.be.equal(0);\n      });\n    });\n\n    describe('makeOffsetPath', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return empty array if two elements are same', function () {\n        expect(dom.makeOffsetPath($cont[0], $cont[0])).to.deep.equal([]);\n      });\n\n      it('should return offset path array between two elements #1', function () {\n        expect(dom.makeOffsetPath($cont[0], $b[0])).to.deep.equal([0]);\n        expect(dom.makeOffsetPath($cont[0], $b[0].firstChild)).to.deep.equal([0, 0]);\n      });\n\n      it('should return offset path array between two elements #2', function () {\n        expect(dom.makeOffsetPath($cont[0], $u[0])).to.deep.equal([1]);\n        expect(dom.makeOffsetPath($cont[0], $u[0].firstChild)).to.deep.equal([1, 0]);\n      });\n\n      it('should return offset path array between two elements #3', function () {\n        expect(dom.makeOffsetPath($cont[0], $s[0])).to.deep.equal([2]);\n        expect(dom.makeOffsetPath($cont[0], $s[0].firstChild)).to.deep.equal([2, 0]);\n      });\n\n      it('should return offset path array between two elements #2', function () {\n        expect(dom.makeOffsetPath($cont[0], $i[0])).to.deep.equal([3]);\n        expect(dom.makeOffsetPath($cont[0], $i[0].firstChild)).to.deep.equal([3, 0]);\n      });\n    });\n\n    describe('fromOffsetPath', function () {\n      var $cont, $b, $u, $s, $i;\n      before(function () {\n        $cont = $('<div class=\"note-editable\"><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n      });\n\n      it('should return the element by offsetPath', function () {\n        var cont = $cont[0];\n        $.each([$b[0], $u[0], $s[0], $i[0]], function (idx, node) {\n          expect(dom.fromOffsetPath(cont, dom.makeOffsetPath(cont, node))).to.deep.equal(node);\n          var child = node.firstChild;\n          expect(dom.fromOffsetPath(cont, dom.makeOffsetPath(cont, child))).to.deep.equal(child);\n        });\n      });\n    });\n\n    describe('splitTree', function () {\n      var $para;\n      beforeEach(function () {\n        var $busi = $('<div class=\"note-editable\"><p><b>b</b><u>u</u><s>strike</s><i>i</i></p></div>'); //busi\n        $para = $busi.clone().find('p');\n      });\n\n      describe('element pivot case', function () {\n        it('should be split by u tag with offset 0', function () {\n          var $u = $para.find('u');\n          dom.splitTree($para[0], {node: $u[0], offset: 0 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u><br></u>');\n          expect($para.next().html()).to.equalsIgnoreCase('<u>u</u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by u tag with offset 1', function () {\n          var $u = $para.find('u');\n          dom.splitTree($para[0], {node: $u[0], offset: 1 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u>');\n          expect($para.next().html()).to.equalsIgnoreCase('<u><br></u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by b tag with offset 0 (left edge case)', function () {\n          var $b = $para.find('b');\n          dom.splitTree($para[0], {node: $b[0], offset: 0 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b><br></b>');\n          expect($para.next().html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by i tag with offset 1 (right edge case)', function () {\n          var $i = $para.find('i');\n          dom.splitTree($para[0], {node: $i[0], offset: 1 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s><i>i</i>');\n          expect($para.next().html()).to.equalsIgnoreCase('<i><br></i>');\n        });\n      });\n\n      describe('textNode case', function () {\n        it('should be split by s tag with offset 3 (middle case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($para[0], {node: $s[0].firstChild, offset: 3 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>str</s>');\n          expect($para.next().html()).to.equalsIgnoreCase('<s>ike</s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 0 (left edge case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($para[0], {node: $s[0].firstChild, offset: 0 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s><br></s>');\n          expect($para.next().html()).to.equalsIgnoreCase('<s>strike</s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 6 (right edge case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($para[0], {node: $s[0].firstChild, offset: 6 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s>');\n          expect($para.next().html()).to.equalsIgnoreCase('<s><br></s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 3 (2 depth case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($s[0], {node: $s[0].firstChild, offset: 3 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>str</s><s>ike</s><i>i</i>');\n        });\n\n        it('should be split by s tag with offset 3 (1 depth and textNode case)', function () {\n          var $s = $para.find('s');\n          dom.splitTree($s[0].firstChild, {node: $s[0].firstChild, offset: 3 });\n\n          expect($para.html()).to.equalsIgnoreCase('<b>b</b><u>u</u><s>strike</s><i>i</i>');\n        });\n\n        it('should be split by span tag with offset 2 (1 depth and element case)', function () {\n          var $cont = $('<div class=\"note-editable\"><p><span><b>b</b><u>u</u><s>s</s><i>i</i></span></p></div>'); //busi\n          var $span = $cont.find('span');\n          dom.splitTree($span[0], {node: $span[0], offset: 2 });\n\n          expect($cont.html()).to.equalsIgnoreCase('<p><span><b>b</b><u>u</u></span><span><s>s</s><i>i</i></span></p>');\n        });\n      });\n    });\n\n    describe('splitPoint', function () {\n      it('should return rightNode and container for empty paragraph with inline', function () {\n        var $editable = $('<div class=\"note-editable\"><p><br></p></div>');\n        var $para = $editable.clone().find('p');\n        var $br = $para.find('br');\n\n        var result = dom.splitPoint({ node: $para[0], offset: 0 }, true);\n        expect(result).to.deep.equal({ rightNode: $br[0], container: $para[0] });\n\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/core/func.spec.js",
    "content": "/**\n * func.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/core/func'\n], function (chai, func) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.func', function () {\n    describe('eq', function () {\n      it('should return true if two values are same', function () {\n        expect(func.eq(1)(1)).to.be.ok;\n      });\n    });\n\n    describe('eq2', function () {\n      it('should return true if two values are same', function () {\n        expect(func.eq2(1, 1)).to.be.ok;\n      });\n\n      it('should return false if two values are not same', function () {\n        expect(func.eq2(1, '1')).to.be.not.ok;\n      });\n    });\n\n    describe('peq2', function () {\n      it('should return true when two properties are same', function () {\n        expect(func.peq2('prop')({ prop: 'hello' }, { prop: 'hello' })).to.be.ok;\n      });\n\n      it('should return false when two properties are not same', function () {\n        expect(func.peq2('prop')({ prop: 'hello' }, { prop: 'world' })).to.be.not.ok;\n      });\n    });\n\n    describe('ok', function () {\n      it('should return true', function () {\n        expect(func.ok()).to.be.ok;\n      });\n    });\n\n    describe('fail', function () {\n      it('should return false', function () {\n        expect(func.fail()).to.be.not.ok;\n      });\n    });\n\n    describe('not', function () {\n      it('should return opposite function', function () {\n        expect(func.not(func.ok)()).to.be.not.ok;\n        expect(func.not(func.fail)()).to.be.ok;\n      });\n    });\n\n    describe('and', function () {\n      it('should return composite function', function () {\n        expect(func.and(func.ok, func.ok)()).to.be.ok;\n        expect(func.and(func.fail, func.ok)()).to.be.not.ok;\n        expect(func.and(func.fail, func.fail)()).to.be.not.ok;\n      });\n    });\n\n    describe('invoke', function () {\n      it('should return function which invoke the method', function () {\n        expect(func.invoke(func, 'ok')()).to.be.ok;\n        expect(func.invoke(func, 'fail')()).to.be.not.ok;\n      });\n    });\n\n    describe('uniqueId', function () {\n      it('should return uniqueId with the prefix as a parameter', function () {\n        expect(func.uniqueId('note-')).to.be.equal('note-1');\n        expect(func.uniqueId('note-')).to.be.equal('note-2');\n        expect(func.uniqueId('note-')).to.be.equal('note-3');\n      });\n    });\n\n    describe('invertObject', function () {\n      it('should return inverted object between keys and values', function () {\n        expect(func.invertObject({ keyA: 'valueA', keyB: 'valueB' }))\n                  .to.deep.equal({ valueA: 'keyA', valueB: 'keyB'});\n      });\n    });\n\n    describe('namespaceToCamel', function () {\n      it('should return camelcase text', function () {\n        expect(func.namespaceToCamel('upload.image')).to.be.equal('UploadImage');\n      });\n\n      it('should return prefixed camelcase text', function () {\n        expect(func.namespaceToCamel('upload.image', 'summernote')).to.be.equal('summernoteUploadImage');\n      });\n    });\n\n    describe('debounce', function () {\n      it('shouldnt execute immediately', function () {\n        var hasHappened = false;\n        var fn = func.debounce(function () {\n          hasHappened = true;\n        }, 100);\n\n        expect(hasHappened).to.be.false;\n        fn();\n        expect(hasHappened).to.be.false;\n      });\n\n      it('should execute after delay', function (done) {\n        var hasHappened = false;\n        var fn = func.debounce(function () {\n          hasHappened = true;\n        }, 100);\n\n        fn();\n\n        setTimeout(function () {\n          expect(hasHappened).to.be.true;\n          done();\n        }, 101);\n      });\n\n      it('should only happen once', function (done) {\n        var count = 0;\n        var fn = func.debounce(function () {\n          count += 1;\n        }, 100);\n\n        fn();\n        fn();\n        fn();\n\n        setTimeout(function () {\n          expect(count).to.be.equal(1);\n          done();\n        }, 101);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/core/key.spec.js",
    "content": "/**\n * key.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/core/key'\n], function (chai, key) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.key', function () {\n    describe('isEdit', function () {\n      it('should return true for BACKSPACE', function () {\n        expect(key.isEdit(key.code.BACKSPACE)).to.be.true;\n      });\n    });\n    describe('isMove', function () {\n      it('should return true for LEFT', function () {\n        expect(key.isMove(key.code.LEFT)).to.be.true;\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/core/list.spec.js",
    "content": "/**\n * list.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'jquery',\n  'summernote/base/core/list'\n], function (chai, $, list) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:core.list', function () {\n    describe('head', function () {\n      it('should return the first element', function () {\n        expect(list.head([1, 2, 3])).to.be.equal(1);\n      });\n    });\n\n    describe('last', function () {\n      it('should return the last element', function () {\n        expect(list.last([1, 2, 3])).to.be.equal(3);\n      });\n    });\n\n    describe('initial', function () {\n      it('should exclude last element', function () {\n        expect(list.initial([1, 2, 3])).to.deep.equal([1, 2]);\n      });\n    });\n\n    describe('tail', function () {\n      it('should exclude first element', function () {\n        expect(list.tail([1, 2, 3])).to.deep.equal([2, 3]);\n      });\n    });\n\n    var isEven = function (num) {\n      return num % 2 === 0;\n    };\n\n    describe('find', function () {\n      it('should return first matched element', function () {\n        expect(list.find([1, 2, 3], isEven)).to.be.equal(2);\n      });\n    });\n\n    describe('all', function () {\n      it('should return false if all elements are not even', function () {\n        expect(list.all([1, 2, 3], isEven)).to.be.false;\n      });\n\n      it('should return true if all elements are even', function () {\n        expect(list.all([2, 4], isEven)).to.be.true;\n      });\n    });\n\n    describe('all', function () {\n      it('should return false if the element is not contained', function () {\n        expect(list.contains([1, 2, 3], 4)).to.be.false;\n      });\n\n      it('should return true if the element is contained', function () {\n        expect(list.contains([1, 2, 4], 4)).to.be.true;\n      });\n    });\n\n    describe('sum', function () {\n      it('should return sum of all elements', function () {\n        expect(list.sum([1, 2, 3])).to.be.equal(6);\n      });\n\n      it('should return sum of all elements iterated', function () {\n        var result = list.sum([1, 2, 3], function (v) { return v * 2; });\n        expect(result).to.be.equal(12);\n      });\n    });\n\n    describe('from', function () {\n      it('should return an array of childNodes', function () {\n        var $cont, $b, $u, $s, $i;\n        $cont = $('<div><b>b</b><u>u</u><s>s</s><i>i</i></div>'); //busi\n        $b = $cont.find('b');\n        $u = $cont.find('u');\n        $s = $cont.find('s');\n        $i = $cont.find('i');\n\n        expect(list.from($cont[0].childNodes)).to.deep.equal([$b[0], $u[0], $s[0], $i[0]]);\n      });\n    });\n\n    describe('clusterBy', function () {\n      it('should cluster by equality 1', function () {\n        var aaClustered = list.clusterBy([1, 1, 2, 2, 3], function (itemA, itemB) {\n          return itemA === itemB;\n        });\n        expect(aaClustered).to.deep.equal([[1, 1], [2, 2], [3]]);\n      });\n\n      it('should cluster by equality 2', function () {\n        var aaClustered = list.clusterBy([1, 2, 2, 1, 3], function (itemA, itemB) {\n          return itemA === itemB;\n        });\n        expect(aaClustered).to.deep.equal([[1], [2, 2], [1], [3]]);\n      });\n    });\n\n    describe('compact', function () {\n      it('should remove all elements has false value', function () {\n        expect(list.compact([0, 1, false, 2, '', 3])).to.deep.equal([1, 2, 3]);\n      });\n    });\n\n    describe('unique', function () {\n      it('should return duplicate-free version of array', function () {\n        expect(list.unique([1, 2, 3, 3, 2, 1])).to.deep.equal([1, 2, 3]);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/core/range.spec.js",
    "content": "/**\n * range.spec.js\n * (c) 2013~ Alan Hong\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/dom',\n  'summernote/base/core/range'\n], function (chai, chaidom, $, dom, range) {\n  'use strict';\n\n  var expect = chai.expect;\n  chai.use(chaidom);\n\n  describe('base:core.range', function () {\n    describe('nodes', function () {\n      describe('1 depth', function () {\n        var $para;\n        before(function () {\n          var $cont = $('<div class=\"note-editable\"><p>para1</p><p>para2</p></div>');\n          $para = $cont.find('p');\n        });\n\n        it('should return array of two paragraphs', function () {\n          var rng = range.create($para[0].firstChild, 0, $para[1].firstChild, 1);\n          expect(rng.nodes(dom.isPara, {includeAncestor: true})).to.have.length(2);\n        });\n\n        it('should return array of a paragraph', function () {\n          var rng = range.create($para[0].firstChild, 0, $para[0].firstChild, 0);\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(1);\n        });\n      });\n\n      describe('multi depth', function () {\n        it('should return array of a paragraph', function () {\n          var $cont = $('<div class=\"note-editable\"><p>p<b>ar</b>a1</p><p>para2</p></div>');\n          var $b = $cont.find('b');\n          var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 0);\n\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(1);\n        });\n      });\n\n      describe('on list, on heading', function () {\n        it('should return array of list paragraphs', function () {\n          var $cont = $('<div class=\"note-editable\"><ul><li>para1</li><li>para2</li></ul></div>');\n          var $li = $cont.find('li');\n          var rng = range.create($li[0].firstChild, 0, $li[1].firstChild, 1);\n\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(2);\n        });\n\n        it('should return array of list paragraphs', function () {\n          var $cont = $('<div class=\"note-editable\"><h1>heading1</h1><h2>heading2</h2></div>');\n          var $h1 = $cont.find('h1');\n          var $h2 = $cont.find('h2');\n          var rng = range.create($h1[0].firstChild, 0, $h2[0].firstChild, 1);\n\n          expect(rng.nodes(dom.isPara, { includeAncestor: true })).to.have.length(2);\n        });\n      });\n    });\n\n    describe('commonAncestor', function () {\n      var $cont;\n      before(function () {\n        $cont = $('<div><span><b>b</b><u>u</u></span></div>');\n      });\n\n      it('should return <span> for <b>|b</b> and <u>u|</u>', function () {\n        var $span = $cont.find('span');\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n\n        var rng = range.create($b[0].firstChild, 0, $u[0].firstChild, 1);\n        expect(rng.commonAncestor()).to.deep.equal($span[0]);\n      });\n\n      it('should return b(#textNode) for <b>|b|</b>', function () {\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 1);\n        expect(rng.commonAncestor()).to.deep.equal($b[0].firstChild);\n      });\n    });\n\n    describe('expand', function () {\n      it('should return <b>|b</b> ~ <u>u|</u> for <b>|b</b> with isAnchor', function () {\n        var $cont = $('<div><a><b>b</b><u>u</u></a></div>');\n        var $anchor = $cont.find('a');\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 0).expand(dom.isAnchor);\n        expect(rng.sc).to.deep.equal($anchor[0]);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($anchor[0]);\n        expect(rng.eo).to.equal(2);\n      });\n    });\n\n    describe('collapse', function () {\n      it('should return <u>u|</u> for <b>|b</b> ~ <u>u|</u>', function () {\n        var $cont = $('<div><b>b</b><u>u</u></div>');\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n\n        var rng = range.create($b[0].firstChild, 0, $u[0].firstChild, 1).collapse();\n        expect(rng.sc).to.deep.equal($u[0].firstChild);\n        expect(rng.so).to.equal(1);\n        expect(rng.ec).to.deep.equal($u[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n    });\n\n    describe('normalize', function () {\n      var $cont;\n      before(function () {\n        $cont = $('<div><p><b>b</b><u>u</u><s>s</s></p></div>');\n      });\n\n      it('should return <b>|b</b> ~ <u>u|</u> for |<b>b</b> ~ <u>u</u>|', function () {\n        var $p = $cont.find('p');\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n\n        var rng = range.create($p[0], 0,  $p[0], 2).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($u[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n\n      it('should return <b>b|</b><u>u</u> for <b>b</b>|<u>u</u>', function () {\n        var $p = $cont.find('p');\n        var $b = $cont.find('b');\n\n        var rng = range.create($p[0], 1,  $p[0], 1).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(1);\n        expect(rng.ec).to.deep.equal($b[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n\n      it('should return <b>b</b><u>|u|</u><s>s</s> for <b>b|</b><u>u</u><s>|s</s>', function () {\n        var $b = $cont.find('b');\n        var $u = $cont.find('u');\n        var $s = $cont.find('s');\n\n        var rng = range.create($b[0].firstChild, 1,  $s[0].firstChild, 0).normalize();\n        expect(rng.sc).to.deep.equal($u[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($u[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n\n      it('should return <b>b|</b><u>u</u><s>s</s> for <b>b|</b><u>u</u><s>s</s>', function () {\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 1,  $b[0].firstChild, 1).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(1);\n        expect(rng.ec).to.deep.equal($b[0].firstChild);\n        expect(rng.eo).to.equal(1);\n      });\n    });\n\n    describe('normalize (block mode)', function () {\n      it('should return <p>text</p><p>|<br></p> for <p>text</p><p>|<br></p>', function () {\n        var $cont = $('<div><p>text</p><p><br></p></div>');\n        var $p = $cont.find('p');\n\n        var rng = range.create($p[1], 0,  $p[1], 0).normalize();\n        expect(rng.sc).to.deep.equal($p[1]);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($p[1]);\n        expect(rng.eo).to.equal(0);\n      });\n\n      it('should return <p>text</p><p>|text</b></p> for <p>text</p><p>|text</p>', function () {\n        var $cont = $('<div><p>text</p><p>text</p></div>');\n        var $p = $cont.find('p');\n\n        var rng = range.create($p[1], 0,  $p[1], 0).normalize();\n        expect(rng.sc).to.deep.equal($p[1].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($p[1].firstChild);\n        expect(rng.eo).to.equal(0);\n      });\n\n      it('should return <p>|text</p><p>text|</b></p> for |<p>text</p><p>text</p>|', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p><p>text</p></div>');\n        var $p = $cont.find('p');\n\n        var rng = range.create($cont[0], 0,  $cont[0], 2).normalize();\n        expect(rng.sc).to.deep.equal($p[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($p[1].firstChild);\n        expect(rng.eo).to.equal(4);\n      });\n    });\n\n    describe('normalize (void element)', function () {\n      it('should return <p><img>|<b>bold</b></p> for <p><img>|<b>bold</b></p>', function () {\n        var $cont = $('<div><p><img><b>bold</b></p></div>');\n        var $p = $cont.find('p');\n        var $b = $cont.find('b');\n\n        var rng = range.create($p[0], 1,  $p[0], 1).normalize();\n        expect(rng.sc).to.deep.equal($b[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($b[0].firstChild);\n        expect(rng.eo).to.equal(0);\n      });\n    });\n\n    describe('insertNode', function () {\n      it('should split paragraph when inserting a block element', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var $p2 = $('<p>p</p>');\n\n        var rng = range.create($b[0].firstChild, 2, $b[0].firstChild, 2);\n        rng.insertNode($p2[0]);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b></p><p>p</p><p><b>ld</b></p>');\n      });\n\n      it('should not split paragraph when inserting an inline element', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var $u = $('<u>u</u>');\n\n        var rng = range.create($p[0].firstChild, 2, $p[0].firstChild, 2);\n        rng.insertNode($u[0]);\n        expect($cont.html()).to.equalsIgnoreCase('<p>te<u>u</u>xt</p>');\n      });\n\n      it('should not split paragraph when inserting an inline element case 2', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var $u = $('<u>u</u>');\n\n        var rng = range.create($b[0].firstChild, 2, $b[0].firstChild, 2);\n        rng.insertNode($u[0]);\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b><u>u</u><b>ld</b></p>');\n      });\n    });\n\n    describe('pasteHTML', function () {\n      it('should not split a block element when inserting inline elements into it', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var markup = '<span>span</span><i>italic</i>';\n\n        var rng = range.create($p[0].firstChild, 2);\n        rng.pasteHTML(markup);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p>te<span>span</span><i>italic</i>xt</p>');\n      });\n\n      it('should split an inline element when pasting inline elements into it', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var markup = '<span>span</span><i>italic</i>';\n\n        var rng = range.create($b[0].firstChild, 2);\n        rng.pasteHTML(markup);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b><span>span</span><i>italic</i><b>ld</b></p>');\n      });\n\n      it('should split inline node when pasting an inline node and a block node into it', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b></p></div>');\n        var $b = $cont.find('b');\n        var markup = '<span>span</span><p><i>italic</i></p>';\n\n        var rng = range.create($b[0].firstChild, 2);\n        rng.pasteHTML(markup);\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bo</b><span>span</span></p><p><i>italic</i></p><p><b>ld</b></p>');\n      });\n    });\n\n    describe('deleteContents', function () {\n      var $cont, $b;\n      beforeEach(function () {\n        $cont = $('<div class=\"note-editable\"><p><b>bold</b><u>u</u></p></div>');\n        $b = $cont.find('b');\n      });\n\n      it('should remove text only for partial text', function () {\n        var rng = range.create($b[0].firstChild, 1, $b[0].firstChild, 3);\n        rng.deleteContents();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bd</b><u>u</u></p>');\n      });\n\n      it('should remove text for entire text', function () {\n        var rng = range.create($b[0].firstChild, 0, $b[0].firstChild, 4);\n        rng.deleteContents();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b></b><u>u</u></p>');\n      });\n    });\n\n    describe('wrapBodyInlineWithPara', function () {\n      it('should insert an empty paragraph when there is no contents', function () {\n        var $cont = $('<div class=\"note-editable\"></div>');\n\n        var rng = range.create($cont[0], 0);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><br></p>');\n      });\n\n      it('should wrap text with paragraph for text', function () {\n        var $cont = $('<div class=\"note-editable\">text</div>');\n\n        var rng = range.create($cont[0].firstChild, 2);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p>text</p>');\n      });\n\n      it('should wrap an inline node with paragraph when selecting text in the inline node', function () {\n        var $cont = $('<div class=\"note-editable\"><b>bold</b></div>');\n        var $b = $cont.find('b');\n\n        var rng = range.create($b[0].firstChild, 2);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>bold</b></p>');\n      });\n\n      it('should wrap inline nodes with paragraph when selecting text in the inline nodes', function () {\n        var $cont = $('<div class=\"note-editable\"><b>b</b><i>i</i></div>');\n\n        var rng = range.create($cont[0], 0);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>b</b><i>i</i></p>');\n      });\n\n      it('should wrap inline nodes with paragraph when selection some of text in the inline nodes #1', function () {\n        var $cont = $('<div class=\"note-editable\"><b>b</b><i>i</i></div>');\n\n        var rng = range.create($cont[0], 1);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>b</b><i>i</i></p>');\n      });\n\n      it('should wrap inline nodes with paragraph when selection some of text in the inline nodes #2', function () {\n        var $cont = $('<div class=\"note-editable\"><b>b</b><i>i</i></div>');\n\n        var rng = range.create($cont[0], 2);\n        rng.wrapBodyInlineWithPara();\n\n        expect($cont.html()).to.equalsIgnoreCase('<p><b>b</b><i>i</i></p>');\n      });\n    });\n\n    describe('getWordRange', function () {\n      var $cont;\n      before(function () {\n        $cont = $('<div class=\"note-editable\">super simple wysiwyg editor</div>');\n      });\n\n      it('should return the range itself when there is no word before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 0).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(0);\n      });\n\n      it('should return expanded range when there is a word before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 5).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(5);\n      });\n\n      it('should return expanded range when there is a half word before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 3).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(0);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(3);\n      });\n\n      it('should return expanded range when there are words before cursor', function () {\n        var rng = range.create($cont[0].firstChild, 12).getWordRange();\n\n        expect(rng.sc).to.deep.equal($cont[0].firstChild);\n        expect(rng.so).to.equal(6);\n        expect(rng.ec).to.deep.equal($cont[0].firstChild);\n        expect(rng.eo).to.equal(12);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/editing/Bullet.spec.js",
    "content": "/**\n * Bullet.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/Bullet'\n], function (chai, Bullet) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Bullet', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/editing/History.spec.js",
    "content": "/**\n * History.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/History'\n], function (chai, History) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.History', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/editing/Table.spec.js",
    "content": "/**\n * Table.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/Table'\n], function (chai, Table) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Table', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/editing/Typing.spec.js",
    "content": "/**\n * Typing.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/editing/Typing'\n], function (chai, Typing) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Typing', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/editing/style.spec.js",
    "content": "/**\n * Style.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'jquery',\n  'summernote/base/core/range',\n  'summernote/base/editing/Style'\n], function (chai, $, range, Style) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:editing.Style', function () {\n    var style = new Style();\n\n    describe('styleNodes', function () {\n      it('should wrap selected text with span', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 0, $p[0].firstChild, 4);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><span>text</span></p>');\n      });\n\n      it('should split text and wrap selected text with span', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 1, $p[0].firstChild, 3);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p>t<span>ex</span>t</p>');\n      });\n\n      it('should split text and insert span', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text</p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 2, $p[0].firstChild, 2);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p>te<span></span>xt</p>');\n      });\n\n      it('should just return a parent span', function () {\n        var $cont = $('<div class=\"note-editable\"><p><span>text</span></p></div>');\n        var $span = $cont.find('span');\n        var rng = range.create($span[0].firstChild, 0, $span[0].firstChild, 4);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><span>text</span></p>');\n      });\n\n      it('should wrap each texts with span', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b><span>span</span></p></div>');\n        var $b = $cont.find('b');\n        var $span = $cont.find('span');\n        var rng = range.create($b[0].firstChild, 2, $span[0].firstChild, 2);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><b>bo<span>ld</span></b><span><span>sp</span>an</span></p>');\n      });\n\n      it('should wrap each texts with span except not a single blood line', function () {\n        var $cont = $('<div class=\"note-editable\"><p><b>bold</b><span>span</span></p></div>');\n        var $b = $cont.find('b');\n        var $span = $cont.find('span');\n        var rng = range.create($b[0].firstChild, 2, $span[0].firstChild, 4);\n        style.styleNodes(rng);\n\n        expect($cont.html()).to.deep.equal('<p><b>bo<span>ld</span></b><span>span</span></p>');\n      });\n\n      it('should expand b tag when providing the expandClosestSibling option', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text<b>bold</b></p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 0, $p[0].firstChild, 4);\n        style.styleNodes(rng, { nodeName: 'B', expandClosestSibling: true });\n\n        expect($cont.html()).to.deep.equal('<p><b>textbold</b></p>');\n      });\n\n      it('should not expand b tag when providing the onlyPartialContains option', function () {\n        var $cont = $('<div class=\"note-editable\"><p>text<b>bold</b></p></div>');\n        var $p = $cont.find('p');\n        var rng = range.create($p[0].firstChild, 0, $p[0].firstChild, 4);\n        style.styleNodes(rng, { nodeName: 'B', expandClosestSibling: true, onlyPartialContains: true });\n\n        expect($cont.html()).to.deep.equal('<p><b>text</b><b>bold</b></p>');\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/AutoLink.spec.js",
    "content": "/**\n * AutoLink.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/AutoLink'\n], function (chai, AutoLink) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.AutoLink', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/AutoSync.spec.js",
    "content": "/**\n * AutoSync.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/AutoSync'\n], function (chai, AutoSync) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module/AutoSync', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Clipboard.spec.js",
    "content": "/**\n * Clipboard.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Clipboard'\n], function (chai, Clipboard) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Clipboard', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Codeview.spec.js",
    "content": "/**\n * Codeview.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/Context',\n  'summernote/base/module/Codeview'\n], function (chai, Context, Codeview) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('Codeview', function () {\n    var codeview, context;\n\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {\n      }, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n      codeview = new Codeview(context);\n    });\n\n    it('should toggle codeview mode', function () {\n      expect(codeview.isActivated()).to.be.false;\n      codeview.toggle();\n      expect(codeview.isActivated()).to.be.true;\n      codeview.toggle();\n      expect(codeview.isActivated()).to.be.false;\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Dropzone.spec.js",
    "content": "/**\n * Dropzone.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Dropzone'\n], function (chai, Dropzone) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base.module.Dropzone', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Editor.spec.js",
    "content": "/**\n * Editor.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'spies',\n  'chaidom',\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/dom',\n  'summernote/base/core/range',\n  'summernote/base/Context'\n], function (chai, spies, chaidom, $, agent, dom, range, Context) {\n  'use strict';\n  var expect = chai.expect;\n  chai.use(spies);\n  chai.use(chaidom);\n\n  // [workaround]\n  //  - Firefox need setTimeout for applying contents\n  //  - IE8-11 can't create range in headless mode\n  if (!(agent.isWebkit || agent.isEdge)) {\n    return;\n  }\n\n  var expectContents = function (context, markup) {\n    expect(context.layoutInfo.editable.html()).to.equalsIgnoreCase(markup);\n  };\n\n  var expectToHaveBeenCalled = function (context, customEvent, handler) {\n    var $note = context.layoutInfo.note;\n    var spy = chai.spy();\n    $note.on(customEvent, spy);\n    handler();\n    expect(spy).to.have.been.called();\n  };\n\n  describe('Editor', function () {\n    var editor, context;\n\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n      editor = context.modules.editor;\n    });\n\n    describe('initialize', function () {\n      it('should bind custom events', function () {\n        [\n          'keydown', 'keyup', 'blur', 'mousedown', 'mouseup',\n          'scroll', 'focusin', 'focusout'\n        ].forEach(function (eventName) {\n          expectToHaveBeenCalled(context, 'summernote.' + eventName, function () {\n            context.layoutInfo.editable.trigger(eventName);\n          });\n        });\n\n        expectToHaveBeenCalled(context, 'summernote.change', function () {\n          editor.insertText('hello');\n        });\n      });\n    });\n\n    if (agent.isWebkit) {\n      describe('undo and redo', function () {\n        it('should control history', function () {\n          editor.insertText(' world');\n          expectContents(context, '<p>hello world</p>');\n\n          editor.undo();\n          expectContents(context, '<p>hello</p>');\n\n          editor.redo();\n          expectContents(context, '<p>hello world</p>');\n        });\n      });\n    }\n\n    describe('tab', function () {\n      it('should insert tab', function () {\n        editor.tab();\n        expectContents(context, '<p>hello&nbsp;&nbsp;&nbsp;&nbsp;</p>');\n      });\n    });\n\n    describe('insertParagraph', function () {\n      it('should insert paragraph', function () {\n        editor.insertParagraph();\n        expectContents(context, '<p>hello</p><p><br></p>');\n\n        editor.insertParagraph();\n        expectContents(context, '<p>hello</p><p><br></p><p><br></p>');\n      });\n    });\n\n    describe('insertOrderedList and insertUnorderedList', function () {\n      it('should toggle paragraph to list', function () {\n        editor.insertOrderedList();\n        expectContents(context, '<ol><li>hello</li></ol>');\n\n        editor.insertUnorderedList();\n        expectContents(context, '<ul><li>hello</li></ul>');\n\n        editor.insertUnorderedList();\n        expectContents(context, '<p>hello</p>');\n      });\n    });\n\n    describe('indent and outdent', function () {\n      // [workaround] style is different by browser\n      if (agent.isPhantom) {\n        it('should indent and outdent paragraph', function () {\n          editor.indent();\n          expectContents(context, '<p style=\"margin-left: 25px; \">hello</p>');\n\n          editor.outdent();\n          expectContents(context, '<p style=\"\">hello</p>');\n        });\n      }\n\n      it('should indent and outdent list', function () {\n        editor.insertOrderedList();\n        expectContents(context, '<ol><li>hello</li></ol>');\n\n        editor.indent();\n        expectContents(context, '<ol><ol><li>hello</li></ol></ol>');\n\n        editor.outdent();\n        expectContents(context, '<ol><li>hello</li></ol>');\n      });\n    });\n\n    describe('insertNode', function () {\n      it('should insert node', function () {\n        editor.insertNode($('<span> world</span>')[0]);\n        expectContents(context, '<p>hello<span> world</span></p>');\n      });\n    });\n\n    describe('insertText', function () {\n      it('should insert text', function () {\n        editor.insertText(' world');\n        expectContents(context, '<p>hello world</p>');\n      });\n    });\n\n    describe('pasteHTML', function () {\n      it('should paste html', function () {\n        editor.pasteHTML('<span> world</span>');\n        expectContents(context, '<p>hello<span> world</span></p>');\n      });\n\n      it('should not call change change event more than once per paste event', function () {\n        var generateLargeHtml = function () {\n          var html = '<div>';\n          for (var i = 0; i < 1000; i++) {\n            html += '<p>HTML element #' + i + '</p>';\n          }\n          html += '</div>';\n          return html;\n        };\n        var $note = context.layoutInfo.note;\n        var spy = chai.spy();\n        $note.on('summernote.change', spy);\n        var html = generateLargeHtml();\n        editor.pasteHTML(html);\n        expect(spy).to.have.been.called.once;\n      });\n    });\n\n    describe('insertHorizontalRule', function () {\n      it('should insert horizontal rule', function () {\n        editor.insertHorizontalRule();\n        expectContents(context, '<p>hello</p><hr><p><br></p>');\n      });\n    });\n\n    describe('insertTable', function () {\n      it('should insert table', function () {\n        var markup = [\n          '<p>hello</p>',\n          '<table class=\"table table-bordered\"><tbody>',\n          '<tr><td><br></td><td><br></td></tr>',\n          '<tr><td><br></td><td><br></td></tr>',\n          '</tbody></table>',\n          '<p><br></p>'\n        ].join('');\n        editor.insertTable('2x2');\n        expectContents(context, markup);\n      });\n    });\n\n    describe('empty', function () {\n      it('should make contents empty', function () {\n        editor.empty();\n        expect(editor.isEmpty()).to.be.true;\n      });\n    });\n\n    describe('createLink', function () {\n      it('should create normal link', function () {\n        var text = 'hello';\n\n        var editable = context.layoutInfo.editable;\n        var pNode = editable.find('p')[0];\n        var textNode = pNode.childNodes[0];\n        var startIndex = textNode.wholeText.indexOf(text);\n        var endIndex = startIndex + text.length;\n\n        range.create(textNode, startIndex, textNode, endIndex).normalize().select();\n\n        // check creation normal link\n        editor.createLink({\n          url: 'http://summernote.org',\n          text: 'summernote'\n        });\n\n        expectContents(context, '<p>hello<a href=\"http://summernote.org\">summernote</a></p>');\n      });\n\n      it('should create a link with range', function () {\n        var text = 'hello';\n        var editable = context.layoutInfo.editable;\n        var pNode = editable.find('p')[0];\n        var textNode = pNode.childNodes[0];\n        var startIndex = textNode.wholeText.indexOf(text);\n        var endIndex = startIndex + text.length;\n\n        var rng = range.create(textNode, startIndex, textNode, endIndex);\n\n        editor.createLink({\n          url: 'http://summernote.org',\n          text: 'summernote',\n          range: rng\n        });\n\n        expectContents(context, '<p><a href=\"http://summernote.org\">summernote</a></p>');\n      });\n\n      it('should create a link with isNewWindow', function () {\n        var text = 'hello';\n        var editable = context.layoutInfo.editable;\n        var pNode = editable.find('p')[0];\n        var textNode = pNode.childNodes[0];\n        var startIndex = textNode.wholeText.indexOf(text);\n        var endIndex = startIndex + text.length;\n\n        var rng = range.create(textNode, startIndex, textNode, endIndex);\n\n        editor.createLink({\n          url: 'http://summernote.org',\n          text: 'summernote',\n          range: rng,\n          isNewWindow: true\n        });\n\n        expectContents(context, '<p><a href=\"http://summernote.org\" target=\"_blank\">summernote</a></p>');\n      });\n\n      it('should modify a link', function () {\n        context.invoke('code', '<p><a href=\"http://summernote.org\">hello world</a></p>');\n\n        var editable = context.layoutInfo.editable;\n        var anchorNode = editable.find('a')[0];\n        var rng = range.createFromNode(anchorNode);\n\n        editor.createLink({\n          url: 'http://wow.summernote.org',\n          text: 'summernote wow',\n          range: rng\n        });\n\n        expectContents(context, '<p><a href=\"http://wow.summernote.org\">summernote wow</a></p>');\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Fullscreen.spec.js",
    "content": "/**\n * Fullscreen.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'summernote/base/Context',\n  'summernote/base/module/Fullscreen'\n], function (chai, Context, Fullscreen) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('Fullscreen', function () {\n    var fullscreen, context;\n\n    beforeEach(function () {\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {\n      }, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      context = new Context($('<div><p>hello</p></div>'), options);\n      fullscreen = new Fullscreen(context);\n    });\n\n    it('should toggle fullscreen mode', function () {\n      expect(fullscreen.isFullscreen()).to.be.false;\n      fullscreen.toggle();\n      expect(fullscreen.isFullscreen()).to.be.true;\n      fullscreen.toggle();\n      expect(fullscreen.isFullscreen()).to.be.false;\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Handle.spec.js",
    "content": "/**\n * Handle.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Handle'\n], function (chai, Handle) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Handle', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Placeholder.spec.js",
    "content": "/**\n * Placeholder.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Placeholder'\n], function (chai, Placeholder) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Placeholder', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/module/Statusbar.spec.js",
    "content": "/**\n * Statusbar.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/module/Statusbar'\n], function (chai, Statusbar) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:module.Statusbar', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/base/renderer.spec.js",
    "content": "/**\n * render.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/base/renderer'\n], function (chai, renderer) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('base:renderer', function () {\n\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/AirPopover.spec.js",
    "content": "/**\n * AirPopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/AirPopover'\n], function (chai, AirPopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.AirPopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/Buttons.spec.js",
    "content": "/**\n * Buttons.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\ndefine([\n  'chai',\n  'jquery',\n  'summernote/base/core/agent',\n  'summernote/base/core/range',\n  'summernote/base/Context'\n], function (chai, $, agent, range, Context) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  // [workaround]\n  //  - IE8~11 can't create range in headless mode\n  if (agent.isMSIE || agent.isEdge) {\n    return;\n  }\n\n  describe('Buttons', function () {\n    var context, $toolbar, $editable;\n\n    beforeEach(function () {\n      var $note = $('<div><p>hello</p></div>').appendTo('body');\n\n      var options = $.extend({}, $.summernote.options);\n      options.langInfo = $.extend(true, {}, $.summernote.lang['en-US'], $.summernote.lang[options.lang]);\n      options.toolbar = [\n        ['font1', ['style', 'clear']],\n        ['font2', ['bold', 'underline', 'italic', 'superscript', 'subscript', 'strikethrough']],\n        ['font3', ['fontname', 'fontsize']],\n        ['color', ['color']],\n        ['para', ['ul', 'ol', 'paragraph']],\n        ['table', ['table']],\n        ['insert', ['link', 'picture', 'video']],\n        ['view', ['fullscreen', 'codeview', 'help']]\n      ];\n      context = new Context($note, options);\n      context.initialize();\n\n      $toolbar = context.layoutInfo.toolbar;\n      $editable = context.layoutInfo.editable;\n    });\n\n    describe('bold button', function () {\n      it('should execute bold command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-bold').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><b>hello</b></p>');\n      });\n    });\n\n    describe('italic button', function () {\n      it('should execute italic command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-italic').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><i>hello</i></p>');\n      });\n    });\n\n    describe('underline button', function () {\n      it('should execute underline command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-underline').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><u>hello</u></p>');\n      });\n    });\n\n    describe('superscript button', function () {\n      it('should execute superscript command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-superscript').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><sup>hello</sup></p>');\n      });\n    });\n\n    describe('subscript button', function () {\n      it('should execute subscript command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-subscript').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><sub>hello</sub></p>');\n      });\n    });\n\n    describe('strikethrough button', function () {\n      it('should execute strikethrough command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-btn-strikethrough').click();\n        expect($editable.html()).to.equalsIgnoreCase('<p><strike>hello</strike></p>');\n      });\n    });\n\n    describe('recent color button', function () {\n      it('should execute color command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        $toolbar.find('.note-current-color-button').click();\n\n        var $span = $editable.find('span');\n        expect($span).to.be.equalsStyle('#FFFF00', 'background-color');\n      });\n    });\n\n    describe('fore color button', function () {\n      it('should execute fore color command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        var $button = $toolbar.find('[data-event=foreColor]').eq(10);\n        $button.click();\n\n        // TODO <font> tag deprecated in HTML5\n        //  - https://github.com/summernote/summernote/issues/745\n        var $font = $editable.find('font');\n        expect($font).to.be.equalsStyle($button.data('value'), 'color');\n      });\n    });\n\n    describe('back color button', function () {\n      it('should execute back color command when it is clicked', function () {\n        range.createFromNode($editable.find('p')[0]).normalize().select();\n\n        var $button = $toolbar.find('[data-event=backColor]').eq(10);\n        $button.click();\n\n        var $span = $editable.find('span');\n        expect($span).to.be.equalsStyle($button.data('value'), 'background-color');\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/HelpDialog.spec.js",
    "content": "/**\n * HelpDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/HelpDialog'\n], function (chai, HelpDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.HelpDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/HintPopover.spec.js",
    "content": "/**\n * HintPopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/HintPopover'\n], function (chai, HintPopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.HintPopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/ImageDialog.spec.js",
    "content": "/**\n * ImageDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/ImageDialog'\n], function (chai, ImageDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.ImageDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/ImagePopover.spec.js",
    "content": "/**\n * ImagePopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/ImagePopover'\n], function (chai, ImagePopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.ImagePopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/LinkDialog.spec.js",
    "content": "/**\n * LinkDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/LinkDialog'\n], function (chai, LinkDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.LinkDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/LinkPopover.spec.js",
    "content": "/**\n * LinkPopover.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/LinkPopover'\n], function (chai, LinkPopover) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.LinkPopover', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/Toolbar.spec.js",
    "content": "/**\n * Toolbar.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/Toolbar'\n], function (chai, Toolbar) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.Toolbar', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/module/VideoDialog.spec.js",
    "content": "/**\n * VideoDialog.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/module/VideoDialog'\n], function (chai, VideoDialog) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:module.VideoDialog', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/bs3/ui.spec.js",
    "content": "/**\n * ui.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/bs3/ui'\n], function (chai, ui) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('bs3:ui', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/lite/module/Toolbar.spec.js",
    "content": "/**\n * Toolbar.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/lite/module/Toolbar'\n], function (chai, Toolbar) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('lite:module.Toolbar', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/test/unit/lite/ui.spec.js",
    "content": "/**\n * ui.spec.js\n * (c) 2015~ Summernote Team\n * summernote may be freely distributed under the MIT license./\n */\n/* jshint unused: false */\ndefine([\n  'chai',\n  'summernote/lite/ui'\n], function (chai, ui) {\n  'use strict';\n\n  var expect = chai.expect;\n\n  describe('lite:ui', function () {\n  });\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/summernote/tools/NuGet.Config",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <add key=\"nuget.org\" value=\"https://api.nuget.org/v3/index.json\" protocolVersion=\"3\" />\n  </packageSources>\n</configuration>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/emotion/emotion.css",
    "content": ".edui-popup-emotion .edui-emotion-jd img{\n    background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n.edui-popup-emotion .edui-emotion-pp img{\n    background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:25px;height:25px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-ldw img{\n    background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-tsj img{\n    background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-cat img{\n    background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-bb img{\n    background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-youa img{\n    background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;\n    cursor:pointer;width:35px;height:35px;display:block;\n}\n\n.edui-popup-emotion .edui-emotion-smileytable {\n    width: 100%;\n    border-spacing: 0;\n    border-collapse: collapse;\n    table-layout: fixed;\n}\n\n.edui-popup-emotion .edui-emotion-wrapper {\n    padding: 15px;\n}\n\n.edui-popup-emotion .edui-tab-nav{\n    height: auto;\n    *height: 31px;\n}\n.edui-popup-emotion .edui-emotion-tabs{\n    clear: both;\n    width: 0;\n    height: 0;\n}\n\n.edui-popup-emotion .edui-tab-content {\n    padding: 15px 0;\n}\n\n.edui-popup-emotion .edui-emotion-preview-box {\n    width:90px;\n    height:76px;\n    border:2px solid #9cb945;\n    background:#FFFFFF;\n    background-position:center;\n    background-repeat:no-repeat;\n    position: absolute;\n    top: 67px;\n    left: 494px;\n    display: none;\n}\n\n.edui-popup-emotion .edui-tab-text {\n    font-size: 12px;\n}\n\n.edui-popup-emotion .edui-emotion-preview-left {\n    left: 15px;\n}\n\n.edui-popup-emotion .edui-emotion-preview-img {\n    width: 100%;\n    height: 100%;\n    display: block;\n    background-repeat: no-repeat;\n    background-position: center center;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/emotion/emotion.js",
    "content": "(function(){\n\n    var editor = null;\n\n    UM.registerWidget('emotion',{\n\n        tpl: \"<link type=\\\"text/css\\\" rel=\\\"stylesheet\\\" href=\\\"<%=emotion_url%>emotion.css\\\">\" +\n            \"<div class=\\\"edui-emotion-tab-Jpanel edui-emotion-wrapper\\\">\" +\n            \"<ul class=\\\"edui-emotion-Jtabnav edui-tab-nav\\\">\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab0\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_choice%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab1\\\" class=\\\"edui-tab-text\\\"><%=lang_input_Tuzki%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab2\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_lvdouwa%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab3\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_BOBO%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab4\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_babyCat%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab5\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_bubble%></a></li>\" +\n            \"<li class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-emotion-Jtab6\\\" hideFocus=\\\"true\\\" class=\\\"edui-tab-text\\\"><%=lang_input_youa%></a></li>\" +\n            \"<li class=\\\"edui-emotion-tabs\\\"></li>\" +\n            \"</ul>\" +\n            \"<div class=\\\"edui-tab-content edui-emotion-JtabBodys\\\">\" +\n            \"<div class=\\\"edui-emotion-Jtab0 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab1 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab2 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab3 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab4 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab5 edui-tab-pane\\\"></div>\" +\n            \"<div class=\\\"edui-emotion-Jtab6 edui-tab-pane\\\"></div>\" +\n            \"</div>\" +\n            \"<div class=\\\"edui-emotion-JtabIconReview edui-emotion-preview-box\\\">\" +\n            \"<img src=\\\"<%=cover_img%>\\\" class=\\'edui-emotion-JfaceReview edui-emotion-preview-img\\'/>\" +\n            \"</div>\",\n\n        sourceData: {\n            emotion: {\n                tabNum:7, //切换面板数量\n                SmilmgName:{ 'edui-emotion-Jtab0':['j_00', 84], 'edui-emotion-Jtab1':['t_00', 40], 'edui-emotion-Jtab2':['w_00', 52], 'edui-emotion-Jtab3':['B_00', 63], 'edui-emotion-Jtab4':['C_00', 20], 'edui-emotion-Jtab5':['i_f', 50], 'edui-emotion-Jtab6':['y_00', 40] }, //图片前缀名\n                imageFolders:{ 'edui-emotion-Jtab0':'jx2/', 'edui-emotion-Jtab1':'tsj/', 'edui-emotion-Jtab2':'ldw/', 'edui-emotion-Jtab3':'bobo/', 'edui-emotion-Jtab4':'babycat/', 'edui-emotion-Jtab5':'face/', 'edui-emotion-Jtab6':'youa/'}, //图片对应文件夹路径\n                imageCss:{'edui-emotion-Jtab0':'jd', 'edui-emotion-Jtab1':'tsj', 'edui-emotion-Jtab2':'ldw', 'edui-emotion-Jtab3':'bb', 'edui-emotion-Jtab4':'cat', 'edui-emotion-Jtab5':'pp', 'edui-emotion-Jtab6':'youa'}, //图片css类名\n                imageCssOffset:{'edui-emotion-Jtab0':35, 'edui-emotion-Jtab1':35, 'edui-emotion-Jtab2':35, 'edui-emotion-Jtab3':35, 'edui-emotion-Jtab4':35, 'edui-emotion-Jtab5':25, 'edui-emotion-Jtab6':35}, //图片偏移\n                SmileyInfor:{\n                    'edui-emotion-Jtab0':['Kiss', 'Love', 'Yeah', '啊！', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '打酱油', '俯卧撑', '气愤', '?', '吻', '怒', '胜利', 'HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '微笑', '亲吻', '调皮', '惊恐', '耍酷', '发火', '害羞', '汗水', '大哭', '', '加油', '困', '你NB', '晕倒', '开心', '偷笑', '大哭', '滴汗', '叹气', '超赞', '??', '飞吻', '天使', '撒花', '生气', '被砸', '吓傻', '随意吐'],\n                    'edui-emotion-Jtab1':['Kiss', 'Love', 'Yeah', '啊！', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '摊手', '睡觉', '瘫坐', '无聊', '星星闪', '旋转', '也不行', '郁闷', '正Music', '抓墙', '撞墙至死', '歪头', '戳眼', '飘过', '互相拍砖', '砍死你', '扔桌子', '少林寺', '什么？', '转头', '我爱牛奶', '我踢', '摇晃', '晕厥', '在笼子里', '震荡'],\n                    'edui-emotion-Jtab2':['大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '我错了', 'money', '气愤', '挑逗', '吻', '怒', '胜利', '委屈', '受伤', '说啥呢？', '闭嘴', '不', '逗你玩儿', '飞吻', '眩晕', '魔法', '我来了', '睡了', '我打', '闭嘴', '打', '打晕了', '刷牙', '爆揍', '炸弹', '倒立', '刮胡子', '邪恶的笑', '不要不要', '爱恋中', '放大仔细看', '偷窥', '超高兴', '晕', '松口气', '我跑', '享受', '修养', '哭', '汗', '啊~', '热烈欢迎', '打酱油', '俯卧撑', '?'],\n                    'edui-emotion-Jtab3':['HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '泪眼', '流泪', '生气', '吐舌', '喜欢', '旋转', '再见', '抓狂', '汗', '鄙视', '拜', '吐血', '嘘', '打人', '蹦跳', '变脸', '扯肉', '吃To', '吃花', '吹泡泡糖', '大变身', '飞天舞', '回眸', '可怜', '猛抽', '泡泡', '苹果', '亲', '', '骚舞', '烧香', '睡', '套娃娃', '捅捅', '舞倒', '西红柿', '爱慕', '摇', '摇摆', '杂耍', '招财', '被殴', '被球闷', '大惊', '理想', '欧打', '呕吐', '碎', '吐痰'],\n                    'edui-emotion-Jtab4':['发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '顶', '幸运', '爱心', '躲', '送花', '选择'],\n                    'edui-emotion-Jtab5':['微笑', '亲吻', '调皮', '惊讶', '耍酷', '发火', '害羞', '汗水', '大哭', '得意', '鄙视', '困', '夸奖', '晕倒', '疑问', '媒婆', '狂吐', '青蛙', '发愁', '亲吻', '', '爱心', '心碎', '玫瑰', '礼物', '哭', '奸笑', '可爱', '得意', '呲牙', '暴汗', '楚楚可怜', '困', '哭', '生气', '惊讶', '口水', '彩虹', '夜空', '太阳', '钱钱', '灯泡', '咖啡', '蛋糕', '音乐', '爱', '胜利', '赞', '鄙视', 'OK'],\n                    'edui-emotion-Jtab6':['男兜', '女兜', '开心', '乖乖', '偷笑', '大笑', '抽泣', '大哭', '无奈', '滴汗', '叹气', '狂晕', '委屈', '超赞', '??', '疑问', '飞吻', '天使', '撒花', '生气', '被砸', '口水', '泪奔', '吓傻', '吐舌头', '点头', '随意吐', '旋转', '困困', '鄙视', '狂顶', '篮球', '再见', '欢迎光临', '恭喜发财', '稍等', '我在线', '恕不议价', '库房有货', '货在路上']\n                }\n            }\n        },\n        initContent:function( _editor, $widget ){\n\n            var me = this,\n                emotion = me.sourceData.emotion,\n                lang = _editor.getLang( 'emotion' )['static'],\n                emotionUrl = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/emotion/',\n                options = $.extend( {}, lang, {\n                    emotion_url: emotionUrl\n                }),\n                $root = me.root();\n\n            if( me.inited ) {\n                me.preventDefault();\n                this.switchToFirst();\n                return;\n            }\n\n            me.inited = true;\n\n            editor = _editor;\n            this.widget = $widget;\n\n            emotion.SmileyPath = _editor.options.emotionLocalization === true ? emotionUrl + 'images/' : \"http://img.baidu.com/hi/\";\n            emotion.SmileyBox = me.createTabList( emotion.tabNum );\n            emotion.tabExist = me.createArr( emotion.tabNum );\n\n            options['cover_img'] = emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif' : 'default/0.gif');\n\n            $root.html( $.parseTmpl( me.tpl, options ) );\n\n            me.tabs = $.eduitab({selector:\".edui-emotion-tab-Jpanel\"});\n\n            //缓存预览对象\n            me.previewBox = $root.find(\".edui-emotion-JtabIconReview\");\n            me.previewImg = $root.find(\".edui-emotion-JfaceReview\");\n\n            me.initImgName();\n\n        },\n        initEvent:function(){\n\n            var me = this;\n\n            //防止点击过后关闭popup\n            me.root().on('click', function(e){\n                return false;\n            });\n\n            //移动预览\n            me.root().delegate( 'td', 'mouseover mouseout', function( evt ){\n\n                var $td = $( this),\n                    url = $td.attr('data-surl') || null;\n\n                if( url ) {\n                    me[evt.type]( this, url , $td.attr('data-posflag') );\n                }\n\n                return false;\n\n            } );\n\n            //点击选中\n            me.root().delegate( 'td', 'click', function( evt ){\n\n                var $td = $( this),\n                    realUrl = $td.attr('data-realurl') || null;\n\n                if( realUrl ) {\n                    me.insertSmiley( realUrl.replace( /'/g, \"\\\\'\" ), evt );\n                }\n\n                return false;\n\n            } );\n\n            //更新模板\n            me.tabs.edui().on(\"beforeshow\", function( evt ){\n\n                var contentId = $(evt.target).attr('data-context').replace( /^.*\\.(?=[^\\s]*$)/, '' );\n\n                evt.stopPropagation();\n\n                me.updateTab( contentId );\n\n            });\n\n            this.switchToFirst();\n\n        },\n        initImgName: function() {\n\n            var emotion = this.sourceData.emotion;\n\n            for ( var pro in emotion.SmilmgName ) {\n                var tempName = emotion.SmilmgName[pro],\n                    tempBox = emotion.SmileyBox[pro],\n                    tempStr = \"\";\n\n                if ( tempBox.length ) return;\n\n                for ( var i = 1; i <= tempName[1]; i++ ) {\n                    tempStr = tempName[0];\n                    if ( i < 10 ) tempStr = tempStr + '0';\n                    tempStr = tempStr + i + '.gif';\n                    tempBox.push( tempStr );\n                }\n            }\n\n        },\n        /**\n         * 切换到第一个tab\n         */\n        switchToFirst: function(){\n            this.root().find(\".edui-emotion-Jtabnav .edui-tab-text:first\").trigger('click');\n        },\n        updateTab: function( contentBoxId ) {\n\n            var me = this,\n                emotion = me.sourceData.emotion;\n\n            me.autoHeight( contentBoxId );\n\n            if ( !emotion.tabExist[ contentBoxId ] ) {\n\n                emotion.tabExist[ contentBoxId ] = true;\n                me.createTab( contentBoxId );\n\n            }\n\n        },\n        autoHeight: function( ) {\n            this.widget.height(this.root() + 2);\n        },\n        createTabList: function( tabNum ) {\n            var obj = {};\n            for ( var i = 0; i < tabNum; i++ ) {\n                obj[\"edui-emotion-Jtab\" + i] = [];\n            }\n            return obj;\n        },\n        mouseover: function( td, srcPath, posFlag ) {\n\n            posFlag -= 0;\n\n            $(td).css( 'backgroundColor', '#ACCD3C' );\n\n            this.previewImg.css( \"backgroundImage\", \"url(\" + srcPath + \")\" );\n            posFlag && this.previewBox.addClass('edui-emotion-preview-left');\n            this.previewBox.show();\n\n        },\n        mouseout: function( td ) {\n            $(td).css( 'backgroundColor', 'transparent' );\n            this.previewBox.removeClass('edui-emotion-preview-left').hide();\n        },\n        insertSmiley: function( url, evt ) {\n            var obj = {\n                src: url\n            };\n            obj._src = obj.src;\n            editor.execCommand( 'insertimage', obj );\n            if ( !evt.ctrlKey ) {\n                //关闭预览\n                this.previewBox.removeClass('edui-emotion-preview-left').hide();\n                this.widget.edui().hide();\n            }\n        },\n        createTab: function( contentBoxId ) {\n\n            var faceVersion = \"?v=1.1\", //版本号\n                me = this,\n                $contentBox = this.root().find(\".\"+contentBoxId),\n                emotion = me.sourceData.emotion,\n                imagePath = emotion.SmileyPath + emotion.imageFolders[ contentBoxId ], //获取显示表情和预览表情的路径\n                positionLine = 11 / 2, //中间数\n                iWidth = iHeight = 35, //图片长宽\n                iColWidth = 3, //表格剩余空间的显示比例\n                tableCss = emotion.imageCss[ contentBoxId ],\n                cssOffset = emotion.imageCssOffset[ contentBoxId ],\n                textHTML = ['<table border=\"1\" class=\"edui-emotion-smileytable\">'],\n                i = 0, imgNum = emotion.SmileyBox[ contentBoxId ].length, imgColNum = 11, faceImage,\n                sUrl, realUrl, posflag, offset, infor;\n\n            for ( ; i < imgNum; ) {\n                textHTML.push( '<tr>' );\n                for ( var j = 0; j < imgColNum; j++, i++ ) {\n                    faceImage = emotion.SmileyBox[ contentBoxId ][i];\n                    if ( faceImage ) {\n                        sUrl = imagePath + faceImage + faceVersion;\n                        realUrl = imagePath + faceImage;\n                        posflag = j < positionLine ? 0 : 1;\n                        offset = cssOffset * i * (-1) - 1;\n                        infor = emotion.SmileyInfor[ contentBoxId ][i];\n\n                        textHTML.push( '<td  class=\"edui-emotion-' + tableCss + '\" data-surl=\"'+ sUrl +'\" data-realurl=\"'+ realUrl +'\" data-posflag=\"'+ posflag +'\" align=\"center\">' );\n                        textHTML.push( '<span>' );\n                        textHTML.push( '<img  style=\"background-position:left ' + offset + 'px;\" title=\"' + infor + '\" src=\"' + emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif\" width=\"' : 'default/0.gif\" width=\"') + iWidth + '\" height=\"' + iHeight + '\"></img>' );\n                        textHTML.push( '</span>' );\n                    } else {\n                        textHTML.push( '<td bgcolor=\"#FFFFFF\">' );\n                    }\n                    textHTML.push( '</td>' );\n                }\n                textHTML.push( '</tr>' );\n            }\n            textHTML.push( '</table>' );\n            textHTML = textHTML.join( \"\" );\n            $contentBox.html( textHTML );\n        },\n        createArr: function( tabNum ) {\n            var arr = [];\n            for ( var i = 0; i < tabNum; i++ ) {\n                arr[i] = 0;\n            }\n            return arr;\n        },\n        width:603,\n        height:400\n    });\n\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/formula/formula.css",
    "content": ".edui-popup-formula .edui-formula-wrapper {\n    padding: 15px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-nav{\n    height: auto;\n    *height: 31px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-text {\n    font-size: 12px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-formula-clearboth {\n    clear: both;\n    width: 0;\n    height: 0;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-pane ul {\n    margin: 0px;\n    padding: 0px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-content {\n    padding: 5px 0px 0px 0px;\n}\n.edui-popup-formula .edui-formula-wrapper .edui-tab-pane .edui-formula-latex-item {\n    display: block;\n    float: left;\n    margin: 0px 3px 3px 0px;\n    width: 30px;\n    height: 30px;\n    border:1px solid #cccccc;\n    background-image: url(\"images/formula.png\");\n    cursor: pointer;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/formula/formula.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Document</title>\n    <link rel=\"stylesheet\" href=\"../../third-party/mathquill/mathquill.css\"/>\n    <style>\n        html, body, .main{\n            margin: 0;\n            padding: 0;\n            overflow: hidden;\n        }\n        .main{\n            width:1024px;\n            height:1024px;\n        }\n        .mathquill-editable,\n        .mathquill-rendered-math{\n            border: 0px;\n            padding: 0px;\n            margin:4px;\n        }\n    </style>\n</head>\n<body>\n\n<div class=\"main\">\n    <div class=\"mathquill-editable\"></div>\n</div>\n\n<div>\n    <input id=\"blurHelper\" />\n</div>\n\n<script src=\"../../third-party/jquery.min.js\"></script>\n<script src=\"../../third-party/mathquill/mathquill.js\"></script>\n<script>\n    $(function(){\n\n        var UM = parent.UM,\n            $iframe = $(getSelfIframe()),\n            editorId = $iframe.parents('.edui-body-container').attr('id'),\n            editor = UM.getEditor(editorId),\n            timer;\n\n        /* 获得当前公式所在的iframe节点 */\n        function getSelfIframe(){\n            var iframes = parent.document.getElementsByTagName('iframe');\n            for (var key in iframes) {\n                if (iframes[key].contentWindow == window) {\n                    return iframes[key];\n                }\n            }\n            return null;\n        }\n        /* 获得当前url上的hash存储的参数值 */\n        function getLatex() {\n            return $iframe.attr('data-latex') || '';\n        }\n        /* 保存场景 */\n        function saveScene(){\n            timer && clearTimeout(timer);\n            timer = setTimeout(function(){\n                editor.fireEvent('savescene');\n                editor.fireEvent('contentchange');\n                editor.fireEvent('selectionchange');\n                timer = null;\n            }, 300);\n        }\n        /* 设置编辑器可编辑 */\n        function enableEditor(){\n            if(editor.body.contentEditable == 'false') {\n                editor.setEnabled();\n            }\n        }\n        /* 设置编辑器不可编辑 */\n        function disableEditor(){\n            if(editor.body.contentEditable == 'true') {\n                editor.setDisabled(['undo', 'redo', 'preview', 'formula'], true);\n            }\n        }\n\n        /* 公式 */\n        var Formula = function(){\n            var _this = this,\n                latex = getLatex();\n\n            this.isFocus = false;\n            this.isDisabled = false;\n\n            /* 加载公式内容 */\n            this.$mathquill = $('.mathquill-editable').mathquill('latex', latex);\n\n            /* 设置活动状态的公式iframe */\n            this.$mathquill.on('mousedown', function(){\n                /* 编辑器不可用时,公式也不可用 */\n                if(_this.disabled) return false;\n\n                /* 第一次点击当前公式,设置公式活动 */\n                if(!$iframe.hasClass('edui-formula-active')) {\n                    disableEditor();\n                    editor.blur();\n                    editor.$body.find('iframe').not($iframe).each(function(k, v){\n                        v.contentWindow.formula.blur();\n                    });\n                    if(_this.$mathquill.find('.cursor').css('display') == 'none') {\n                        _this.refresh();\n                        _this.$mathquill.addClass('hasCursor');\n                    }\n                }\n                _this.focus();\n            });\n            editor.addListener('click', function(){\n                _this.blur();\n                enableEditor();\n            });\n\n            /* 里面focus,编辑器也判断为focus */\n            editor.addListener('isFocus', function(){\n                return _this.isFocus;\n            });\n            /* um不可用,公式也不可编辑 */\n            editor.addListener('setDisabled', function(type, except){\n                if (!(except && except.join(' ').indexOf('formula') != -1) && _this.isDisabled != true ) {\n                    _this.setDisabled();\n                }\n            });\n            editor.addListener('setEnabled', function(){\n                if (_this.isDisabled != false) {\n                    _this.setEnabled();\n                }\n            });\n\n            /* 设置更新外层iframe的大小和属性 */\n            $(document.body).on('keydown', function(){\n                _this.updateIframe();\n            }).on('keyup', function(){\n                _this.updateIframe();\n            });\n\n            /* 清除初始化的高亮状态 */\n            this.$mathquill.removeClass('hasCursor');\n\n            /* 初始化后延迟刷新外层iframe大小 */\n            setTimeout(function(){\n                _this.updateIframe();\n            }, 300);\n        };\n\n        Formula.prototype = {\n            focus:function(){\n                $iframe.addClass('edui-formula-active');\n                this.isFocus = true;\n            },\n            blur:function(){\n                $iframe.removeClass('edui-formula-active');\n                this.removeCursor();\n                this.isFocus = false;\n            },\n            removeCursor: function(){\n                this.$mathquill.find('span.cursor').hide();\n                this.$mathquill.parent().find('.hasCursor').removeClass('hasCursor');\n            },\n            updateIframe: function(){\n                $iframe.width(this.$mathquill.width()+8).height(this.$mathquill.height()+8);\n                var latex = $iframe.attr('data-latex'),\n                    newLatex = this.getLatex();\n                if(latex != newLatex) {\n                    $iframe.attr('data-latex', this.getLatex());\n                    saveScene();\n                }\n            },\n            insertLatex: function(latex){\n                this.$mathquill.mathquill('write', latex);\n                this.updateIframe();\n                this.removeCursor();\n            },\n            setLatex: function(latex){\n                this.$mathquill.mathquill('latex', latex);\n                this.updateIframe();\n            },\n            getLatex: function(){\n                return this.$mathquill.mathquill('latex');\n            },\n            redraw: function(){\n                this.$mathquill.mathquill('redraw');\n            },\n            setDisabled: function(){\n                this.blur();\n                var latex = this.getLatex();\n                this.$mathquill.mathquill('revert').text(latex).mathquill();\n                this.updateIframe();\n                this.isDisabled = true;\n            },\n            setEnabled: function(){\n                this.$mathquill.removeClass('mathquill-rendered-math');\n                this.refresh();\n                this.isDisabled = false;\n            },\n            refresh: function(){\n                var latex = this.getLatex();\n                this.$mathquill.mathquill('revert').text(latex).mathquill('editable');\n                this.updateIframe();\n            }\n        };\n\n        /* 绑定到window上，给上级window调用 */\n        window.formula = new Formula();\n    });\n</script>\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/formula/formula.js",
    "content": "(function () {\n\n    var editor = null;\n\n    UM.registerWidget('formula', {\n\n        tpl: \"<link type=\\\"text/css\\\" rel=\\\"stylesheet\\\" href=\\\"<%=formula_url%>formula.css\\\">\" +\n            \"<div class=\\\"edui-formula-wrapper\\\">\" +\n            \"<ul class=\\\"edui-tab-nav\\\"></ul>\" +\n            \"<div class=\\\"edui-tab-content\\\"></div>\" +\n            \"</div>\",\n\n        sourceData: {\n            formula: {\n                'common': [\n                    \"{/}frac{ }{ }\", \"^{ }/_{ }\", \"x^{ }\", \"x_{ }\", \"x^{ }_{ }\", \"{/}bar{ }\", \"{/}sqrt{ }\", \"{/}nthroot{ }{ }\",\n                    \"{/}sum^{ }_{n=}\", \"{/}sum\", \"{/}log_{ }\", \"{/}ln\", \"{/}int_{ }^{ }\", \"{/}oint_{ }^{ }\"\n                ],\n                'symbol': [\n                    \"+\", \"-\", \"{/}pm\", \"{/}times\", \"{/}ast\", \"{/}div\", \"/\", \"{/}bigtriangleup\",\n                    \"=\", \"{/}ne\", \"{/}approx\", \">\", \"<\", \"{/}ge\", \"{/}le\", \"{/}infty\",\n                    \"{/}cap\", \"{/}cup\", \"{/}because\", \"{/}therefore\", \"{/}subset\", \"{/}supset\", \"{/}subseteq\", \"{/}supseteq\",\n                    \"{/}nsubseteq\", \"{/}nsupseteq\", \"{/}in\", \"{/}ni\", \"{/}notin\", \"{/}mapsto\", \"{/}leftarrow\", \"{/}rightarrow\",\n                    \"{/}Leftarrow\", \"{/}Rightarrow\", \"{/}leftrightarrow\", \"{/}Leftrightarrow\"\n                ],\n                'letter': [\n                    \"{/}alpha\", \"{/}beta\", \"{/}gamma\", \"{/}delta\", \"{/}varepsilon\", \"{/}varphi\", \"{/}lambda\", \"{/}mu\",\n                    \"{/}rho\", \"{/}sigma\", \"{/}omega\", \"{/}Gamma\", \"{/}Delta\", \"{/}Theta\", \"{/}Lambda\", \"{/}Xi\",\n                    \"{/}Pi\", \"{/}Sigma\", \"{/}Upsilon\", \"{/}Phi\", \"{/}Psi\", \"{/}Omega\"\n                ]\n            }\n        },\n        initContent: function (_editor, $widget) {\n\n            var me = this,\n                formula = me.sourceData.formula,\n                lang = _editor.getLang('formula').static,\n                formulaUrl = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/formula/',\n                options = $.extend({}, lang, { 'formula_url': formulaUrl }),\n                $root = me.root();\n\n            if (me.inited) {\n                me.preventDefault();\n                return;\n            }\n            me.inited = true;\n\n            editor = _editor;\n            me.$widget = $widget;\n\n            $root.html($.parseTmpl(me.tpl, options));\n            me.tabs = $.eduitab({selector: \"#edui-formula-tab-Jpanel\"});\n\n            /* 初始化popup的内容 */\n            var headHtml = [], xMax = 0, yMax = 0,\n                $tabContent = me.root().find('.edui-tab-content');\n            $.each(formula, function (k, v) {\n                var contentHtml = [];\n                $.each(v, function (i, f) {\n                    contentHtml.push('<li class=\"edui-formula-latex-item\" data-latex=\"' + f + '\" style=\"background-position:-' + (xMax * 30) + 'px -' + (yMax * 30) + 'px\"></li>');\n                    if (++xMax >=8) {\n                        ++yMax; xMax = 0;\n                    }\n                });\n                yMax++; xMax = 0;\n                $tabContent.append('<div class=\"edui-tab-pane\"><ul>' + contentHtml.join('') + '</ul>');\n                headHtml.push('<li class=\"edui-tab-item\"><a href=\"javascript:void(0);\" class=\"edui-tab-text\">' + lang['lang_tab_' + k] + '</a></li>');\n            });\n            headHtml.push('<li class=\"edui-formula-clearboth\"></li>');\n            $root.find('.edui-tab-nav').html(headHtml.join(''));\n            $root.find('.edui-tab-content').append('<div class=\"edui-formula-clearboth\"></div>');\n\n            /* 选中第一个tab */\n            me.switchTab(0);\n        },\n        initEvent: function () {\n            var me = this;\n\n            //防止点击过后关闭popup\n            me.root().on('click', function (e) {\n                return false;\n            });\n\n            //点击tab切换菜单\n            me.root().find('.edui-tab-nav').delegate('.edui-tab-item', 'click', function (evt) {\n                me.switchTab(this);\n                return false;\n            });\n\n            //点击选中公式\n            me.root().find('.edui-tab-pane').delegate('.edui-formula-latex-item', 'click', function (evt) {\n                var $item = $(this),\n                    latex = $item.attr('data-latex') || '';\n\n                if (latex) {\n                    me.insertLatex(latex.replace(\"{/}\", \"\\\\\"));\n                }\n                me.$widget.edui().hide();\n                return false;\n            });\n        },\n        switchTab:function(index){\n            var me = this,\n                $root = me.root(),\n                index = $.isNumeric(index) ? index:$.inArray(index, $root.find('.edui-tab-nav .edui-tab-item'));\n\n            $root.find('.edui-tab-nav .edui-tab-item').removeClass('edui-active').eq(index).addClass('edui-active');\n            $root.find('.edui-tab-content .edui-tab-pane').removeClass('edui-active').eq(index).addClass('edui-active');\n\n            /* 自动长高 */\n            me.autoHeight(0);\n        },\n        autoHeight: function () {\n            this.$widget.height(this.root() + 2);\n        },\n        insertLatex: function (latex) {\n            editor.execCommand('formula', latex );\n        },\n        width: 350,\n        height: 400\n    });\n\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/image/image.css",
    "content": ".edui-dialog-image .edui-image-wrapper{font-size: 12px;margin: 15px;}\n\n/*upload*/\n.edui-dialog-image .edui-image-upload1{position: absolute;top:50%;left:50%;width:44px;height:38px;margin-top:-19px; margin-left: -22px;}\n.edui-dialog-image .edui-image-upload2{position:relative;float:left;width:120px;height:120px;margin:5px 0 0 5px;}\n\n.edui-dialog-image .edui-image-form{position: absolute;left: 0px;top: 0px;width: 100%;height: 100%;opacity: 0;cursor: pointer;}\n.edui-dialog-image .edui-image-form .edui-image-file{width: 100%;height:100%;filter: alpha(opacity=0)}\n\n.edui-dialog-image .edui-image-upload1 .edui-image-icon{display: inline-block;width:44px;height:38px;background-image: url('images/upload1.png')}\n.edui-dialog-image .edui-image-upload1 .edui-image-icon.hover{background-position: -50px 0;}\n.edui-dialog-image .edui-image-upload2 .edui-image-icon{display: inline-block;width:120px;height:120px;background-image: url('images/upload2.png')}\n\n.edui-dialog-image .edui-image-dragTip{position: absolute;display:none;top:50%;left:50%;margin-top:30px;margin-left: -60px;\n    color: #222;font-size:14px;text-shadow: 0px 2px 3px #555;}\n\n.edui-dialog-image .edui-image-content{height:330px;width:100%;position: relative;}\n\n.edui-dialog-image .edui-image-mask{display: none;position: absolute;top:0;left:0;width: 100%; height: 100%;background-color:#fff;\n    text-align: center;line-height:300px;color:#000;font-size:14px;font-weight:bold;opacity: 0.6;filter: alpha(opacity=60);}\n.edui-dialog-image .edui-image-mask.edui-active{display: block;}\n\n/*network*/\n.edui-dialog-image .edui-image-searchBar{margin: 10px;}\n.edui-dialog-image .edui-image-searchBar .edui-image-searchTxt{display: inline-block !important;*display: inline !important;*zoom:1;width:400px; border: 1px solid #c5d2ff; height: 20px; line-height: 18px; font-size: 14px; padding: 3px; margin: 0;outline:0;}\n.edui-dialog-image .edui-image-searchBar .edui-image-searchAdd{display: inline-block !important;*display: inline !important;*zoom:1;\n    width:60px; text-align:center;height: 25px;text-align: center;line-height: 25px;\n    background-color: #ffffff;padding: 0; border: 1px solid #ababab;margin-left: 20px;cursor: pointer;\n}\n.edui-dialog-image .edui-image-searchBar .edui-image-searchAdd.hover{\n    background-color: #d5e1f2;\n    padding: 0;\n    border: 1px solid #a3bde3;\n}\n.edui-dialog-image .edui-image-searchRes{height:280px;overflow:auto;}\n\n\n/*common*/\n.edui-dialog-image .edui-image-item{position:relative;float:left;width:120px;height:120px;border: 1px solid #CCC;cursor: default;margin: 5px 0 0 5px;}\n.edui-dialog-image .edui-image-item .edui-image-pic{position: absolute;left:-9999px;}\n.edui-dialog-image .edui-image-item .edui-image-close{position:absolute;right:0;background: url('images/close.png');width:17px;height:17px;cursor:pointer;z-index:1}\n.edui-dialog-image .edui-image-item.hover .edui-image-close{display: block;}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/image/image.js",
    "content": "(function () {\n\n    var utils = UM.utils,\n        browser = UM.browser,\n        Base = {\n        checkURL: function (url) {\n            if(!url)    return false;\n            url = utils.trim(url);\n            if (url.length <= 0) {\n                return false;\n            }\n            if (url.search(/http:\\/\\/|https:\\/\\//) !== 0) {\n                url += 'http://';\n            }\n\n            url=url.replace(/\\?[\\s\\S]*$/,\"\");\n\n            if (!/(.gif|.jpg|.jpeg|.png)$/i.test(url)) {\n                return false;\n            }\n            return url;\n        },\n        getAllPic: function (sel, $w, editor) {\n            var me = this,\n                arr = [],\n                $imgs = $(sel, $w);\n\n            $.each($imgs, function (index, node) {\n                $(node).removeAttr(\"width\").removeAttr(\"height\");\n\n//                if (node.width > editor.options.initialFrameWidth) {\n//                    me.scale(node, editor.options.initialFrameWidth -\n//                        parseInt($(editor.body).css(\"padding-left\"))  -\n//                        parseInt($(editor.body).css(\"padding-right\")));\n//                }\n\n                return arr.push({\n                    _src: node.src,\n                    src: node.src\n                });\n            });\n\n            return arr;\n        },\n        scale: function (img, max, oWidth, oHeight) {\n            var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight;\n            if (ow > max || oh > max) {\n                if (ow >= oh) {\n                    if (width = ow - max) {\n                        percent = (width / ow).toFixed(2);\n                        img.height = oh - oh * percent;\n                        img.width = max;\n                    }\n                } else {\n                    if (height = oh - max) {\n                        percent = (height / oh).toFixed(2);\n                        img.width = ow - ow * percent;\n                        img.height = max;\n                    }\n                }\n            }\n\n            return this;\n        },\n        close: function ($img) {\n\n            $img.css({\n                top: ($img.parent().height() - $img.height()) / 2,\n                left: ($img.parent().width()-$img.width())/2\n            }).prev().on(\"click\",function () {\n\n                if ( $(this).parent().remove().hasClass(\"edui-image-upload-item\") ) {\n                    //显示图片计数-1\n                    Upload.showCount--;\n                    Upload.updateView();\n                }\n\n            });\n\n            return this;\n        },\n        createImgBase64: function (img, file, $w) {\n            if (browser.webkit) {\n                //Chrome8+\n                img.src = window.webkitURL.createObjectURL(file);\n            } else if (browser.gecko) {\n                //FF4+\n                img.src = window.URL.createObjectURL(file);\n            } else {\n                //实例化file reader对象\n                var reader = new FileReader();\n                reader.onload = function (e) {\n                    img.src = this.result;\n                    $w.append(img);\n                };\n                reader.readAsDataURL(file);\n            }\n        },\n        callback2: function (editor, $w, url, state) {\n\n            if (state == \"SUCCESS\") {\n                //显示图片计数+1\n                Upload.showCount++;\n                var $img = $(\"<img src='\" + editor.options.imagePath + url + \"' class='edui-image-pic' />\"),\n                    $item = $(\"<div class='edui-image-item edui-image-upload-item'><div class='edui-image-close'></div></div>\").append($img);\n\n                if ($(\".edui-image-upload2\", $w).length < 1) {\n                    $(\".edui-image-content\", $w).append($item);\n\n                    Upload.render(\".edui-image-content\", 2)\n                        .config(\".edui-image-upload2\");\n                } else {\n                    $(\".edui-image-upload2\", $w).before($item).show();\n                }\n\n                $img.on(\"load\", function () {\n                    Base.scale(this, 120);\n                    Base.close($(this));\n                    $(\".edui-image-content\", $w).focus();\n                });\n\n            } else {\n                currentDialog.showTip( state );\n                window.setTimeout( function () {\n\n                    currentDialog.hideTip();\n\n                }, 3000 );\n            }\n\n            Upload.toggleMask();\n\n        },\n        callback: function (editor, $w, json) {\n\n            if (json.status == 200 && json.msg == \"OK\") {\n                //显示图片计数+1\n                Upload.showCount++;\n                var $img = $(\"<img src='\" + json.data[0].url + \"' class='edui-image-pic' />\"),\n                    $item = $(\"<div class='edui-image-item edui-image-upload-item'><div class='edui-image-close'></div></div>\").append($img);\n\n                if ($(\".edui-image-upload2\", $w).length < 1) {\n                    $(\".edui-image-content\", $w).append($item);\n\n                    Upload.render(\".edui-image-content\", 2)\n                        .config(\".edui-image-upload2\");\n                } else {\n                    $(\".edui-image-upload2\", $w).before($item).show();\n                }\n\n                $img.on(\"load\", function () {\n                    Base.scale(this, 120);\n                    Base.close($(this));\n                    $(\".edui-image-content\", $w).focus();\n                });\n\n            } else if ( json.status == 500 ) {\n            \talert(json.msg);\n            } else {\n                currentDialog.showTip( state );\n                window.setTimeout( function () {\n\n                    currentDialog.hideTip();\n\n                }, 3000 );\n            }\n\n            Upload.toggleMask();\n\n        }\n    };\n\n    /*\n     * 本地上传\n     * */\n    var Upload = {\n        showCount: 0,\n        uploadTpl: '<div class=\"edui-image-upload%%\">' +\n            '<span class=\"edui-image-icon\"></span>' +\n            '<form class=\"edui-image-form\" method=\"post\" enctype=\"multipart/form-data\" target=\"up\">' +\n//            '<input type=\"hidden\" id=\"userFaceImgStr\" name=\"userFaceImgStr\">' +\n            '<input style=\\\"filter: alpha(opacity=0);\\\" class=\"edui-image-file\" type=\"file\" hidefocus name=\"upfile\" accept=\"image/gif,image/jpeg,image/png,image/jpg,image/bmp\"/>' +\n            '</form>' +\n\n            '</div>',\n        init: function (editor, $w) {\n            var me = this;\n\n            me.editor = editor;\n            me.dialog = $w;\n            me.render(\".edui-image-local\", 1);\n            me.config(\".edui-image-upload1\");\n            me.submit();\n            me.drag();\n\n            $(\".edui-image-upload1\").hover(function () {\n                $(\".edui-image-icon\", this).toggleClass(\"hover\");\n            });\n\n            if (!(UM.browser.ie && UM.browser.version <= 9)) {\n                $(\".edui-image-dragTip\", me.dialog).css(\"display\", \"block\");\n            }\n\n\n            return me;\n        },\n        render: function (sel, t) {\n            var me = this;\n\n            $(sel, me.dialog).append($(me.uploadTpl.replace(/%%/g, t)));\n\n            return me;\n        },\n        config: function (sel) {\n            var me = this,\n                url=me.editor.options.imageUrl;\n\n            url=url + (url.indexOf(\"?\") == -1 ? \"?\" : \"&\") + \"editorid=\"+me.editor.id;//初始form提交地址;\n            \n            $(\"form\", $(sel, me.dialog)).attr(\"action\", url);\n\n            return me;\n        },\n        uploadComplete: function(r){\n            var me = this;\n            try{\n            \tr = r.replace(\"<pre>\", \"\").replace(\"</pre>\", \"\");\n            \tr=r.replace('<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">', \"\").replace(\"</pre>\", \"\"); \n                var json = eval('('+r+')');\n                Base.callback(me.editor, me.dialog, json);\n//                Base.callback(me.editor, me.dialog, json.url, json.state);\n            }catch (e){\n                var lang = me.editor.getLang('image');\n                Base.callback(me.editor, me.dialog, '', (lang && lang.uploadError) || 'Error!');\n            }\n        },\n        submit: function (callback) {\n\n            var me = this,\n                input = $( '<input style=\"filter: alpha(opacity=0);\" class=\"edui-image-file\" type=\"file\" hidefocus=\"\" name=\"upfile\" accept=\"image/gif,image/jpeg,image/png,image/jpg,image/bmp\">'),\n                input = input[0];\n\n            $(me.dialog).delegate( \".edui-image-file\", \"change\", function ( e ) {\n\n                if ( !this.parentNode ) {\n                    return;\n                }\n\n                $('<iframe name=\"up\"  style=\"display: none\"></iframe>').insertBefore(me.dialog).on('load', function(){\n                    var r = this.contentWindow.document.body.innerHTML;\n                    if(r == '')return;\n                    \n//                    $(\"#userFaceImgStr\").val(\"abcd\"); \n                    \n                    me.uploadComplete(r);\n                    $(this).unbind('load');\n                    $(this).remove();\n\n                });\n                \n                $(this).parent()[0].submit();\n                Upload.updateInput( input );\n                me.toggleMask(\"Loading....\");\n                callback && callback();\n\n            });\n\n            return me;\n        },\n        //更新input\n        updateInput: function ( inputField ) {\n\n            $( \".edui-image-file\", this.dialog ).each( function ( index, ele ) {\n\n                ele.parentNode.replaceChild( inputField.cloneNode( true ), ele );\n\n            } );\n\n        },\n        //更新上传框\n        updateView: function () {\n\n            if ( Upload.showCount !== 0 ) {\n                return;\n            }\n\n            $(\".edui-image-upload2\", this.dialog).hide();\n            $(\".edui-image-dragTip\", this.dialog).show();\n            $(\".edui-image-upload1\", this.dialog).show();\n\n        },\n        drag: function () {\n            var me = this;\n            //做拽上传的支持\n            if (!UM.browser.ie9below) {\n                me.dialog.find('.edui-image-content').on('drop',function (e) {\n\n                    //获取文件列表\n                    var fileList = e.originalEvent.dataTransfer.files;\n                    var img = document.createElement('img');\n                    var hasImg = false;\n                    $.each(fileList, function (i, f) {\n                        if (/^image/.test(f.type)) {\n                            //创建图片的base64\n                            Base.createImgBase64(img, f, me.dialog);\n\n                            var xhr = new XMLHttpRequest();\n                            xhr.open(\"post\", me.editor.getOpt('imageUrl') + \"?type=ajax\", true);\n                            xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n\n                            //模拟数据\n                            var fd = new FormData();\n                            fd.append(me.editor.getOpt('imageFieldName'), f);\n\n                            xhr.send(fd);\n                            xhr.addEventListener('load', function (e) {\n                                var r = e.target.response, json;\n                                me.uploadComplete(r);\n                                if (i == fileList.length - 1) {\n                                    $(img).remove()\n                                }\n                            });\n                            hasImg = true;\n                        }\n                    });\n                    if (hasImg) {\n                        e.preventDefault();\n                        me.toggleMask(\"Loading....\");\n                    }\n\n                }).on('dragover', function (e) {\n                        e.preventDefault();\n                    });\n            }\n        },\n        toggleMask: function (html) {\n            var me = this;\n\n            var $mask = $(\".edui-image-mask\", me.dialog);\n            if (html) {\n                if (!(UM.browser.ie && UM.browser.version <= 9)) {\n                    $(\".edui-image-dragTip\", me.dialog).css( \"display\", \"none\" );\n                }\n                $(\".edui-image-upload1\", me.dialog).css( \"display\", \"none\" );\n                $mask.addClass(\"edui-active\").html(html);\n            } else {\n\n                $mask.removeClass(\"edui-active\").html();\n\n                if ( Upload.showCount > 0 ) {\n                    return me;\n                }\n\n                if (!(UM.browser.ie && UM.browser.version <= 9) ){\n                    $(\".edui-image-dragTip\", me.dialog).css(\"display\", \"block\");\n                }\n                $(\".edui-image-upload1\", me.dialog).css( \"display\", \"block\" );\n            }\n\n            return me;\n        }\n    };\n\n    /*\n     * 网络图片\n     * */\n    var NetWork = {\n        init: function (editor, $w) {\n            var me = this;\n\n            me.editor = editor;\n            me.dialog = $w;\n\n            me.initEvt();\n        },\n        initEvt: function () {\n            var me = this,\n                url,\n                $ele = $(\".edui-image-searchTxt\", me.dialog);\n\n            $(\".edui-image-searchAdd\", me.dialog).on(\"click\", function () {\n                url = Base.checkURL($ele.val());\n\n                if (url) {\n\n                    $(\"<img src='\" + url + \"' class='edui-image-pic' />\").on(\"load\", function () {\n\n\n\n                        var $item = $(\"<div class='edui-image-item'><div class='edui-image-close'></div></div>\").append(this);\n\n                        $(\".edui-image-searchRes\", me.dialog).append($item);\n\n                        Base.scale(this, 120);\n\n                        $item.width($(this).width());\n\n                        Base.close($(this));\n\n                        $ele.val(\"\");\n                    });\n                }\n            })\n                .hover(function () {\n                    $(this).toggleClass(\"hover\");\n                });\n        }\n    };\n\n    var $tab = null,\n        currentDialog = null;\n\n    UM.registerWidget('image', {\n        tpl: \"<link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"<%=image_url%>image.css\\\">\" +\n            \"<div class=\\\"edui-image-wrapper\\\">\" +\n            \"<ul class=\\\"edui-tab-nav\\\">\" +\n            \"<li class=\\\"edui-tab-item edui-active\\\"><a data-context=\\\".edui-image-local\\\" class=\\\"edui-tab-text\\\"><%=lang_tab_local%></a></li>\" +\n            \"<li  class=\\\"edui-tab-item\\\"><a data-context=\\\".edui-image-JimgSearch\\\" class=\\\"edui-tab-text\\\"><%=lang_tab_imgSearch%></a></li>\" +\n            \"</ul>\" +\n            \"<div class=\\\"edui-tab-content\\\">\" +\n            \"<div class=\\\"edui-image-local edui-tab-pane edui-active\\\">\" +\n            \"<div class=\\\"edui-image-content\\\"></div>\" +\n            \"<div class=\\\"edui-image-mask\\\"></div>\" +\n            \"<div class=\\\"edui-image-dragTip\\\"><%=lang_input_dragTip%></div>\" +\n            \"</div>\" +\n            \"<div class=\\\"edui-image-JimgSearch edui-tab-pane\\\">\" +\n            \"<div class=\\\"edui-image-searchBar\\\">\" +\n            \"<table><tr><td><input class=\\\"edui-image-searchTxt\\\" type=\\\"text\\\"></td>\" +\n            \"<td><div class=\\\"edui-image-searchAdd\\\"><%=lang_btn_add%></div></td></tr></table>\" +\n            \"</div>\" +\n            \"<div class=\\\"edui-image-searchRes\\\"></div>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\",\n        initContent: function (editor, $dialog) {\n            var lang = editor.getLang('image')[\"static\"],\n                opt = $.extend({}, lang, {\n                    image_url: UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/image/'\n                });\n\n            Upload.showCount = 0;\n\n            if (lang) {\n                var html = $.parseTmpl(this.tpl, opt);\n            }\n\n            currentDialog = $dialog.edui();\n\n            this.root().html(html);\n\n        },\n        initEvent: function (editor, $w) {\n            $tab = $.eduitab({selector: \".edui-image-wrapper\"})\n                .edui().on(\"beforeshow\", function (e) {\n                    e.stopPropagation();\n                });\n\n            Upload.init(editor, $w);\n\n            NetWork.init(editor, $w);\n        },\n        buttons: {\n            'ok': {\n                exec: function (editor, $w) {\n                    var sel = \"\",\n                        index = $tab.activate();\n\n                    if (index == 0) {\n                        sel = \".edui-image-content .edui-image-pic\";\n                    } else if (index == 1) {\n                        sel = \".edui-image-searchRes .edui-image-pic\";\n                    }\n\n                    var list = Base.getAllPic(sel, $w, editor);\n\n                    if (index != -1) {\n                        editor.execCommand('insertimage', list);\n                    }\n                }\n            },\n            'cancel': {}\n        },\n        width: 700,\n        height: 408\n    }, function (editor, $w, url, state) {\n        Base.callback(editor, $w, url, state)\n    })\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/link/link.js",
    "content": "(function(){\n    var utils = UM.utils;\n    function hrefStartWith(href, arr) {\n        href = href.replace(/^\\s+|\\s+$/g, '');\n        for (var i = 0, ai; ai = arr[i++];) {\n            if (href.indexOf(ai) == 0) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    UM.registerWidget('link', {\n        tpl: \"<style type=\\\"text/css\\\">\" +\n            \".edui-dialog-link .edui-link-table{font-size: 12px;margin: 10px;line-height: 30px}\" +\n            \".edui-dialog-link .edui-link-txt{width:300px;height:21px;line-height:21px;border:1px solid #d7d7d7;}\" +\n            \"</style>\" +\n            \"<table class=\\\"edui-link-table\\\">\" +\n            \"<tr>\" +\n            \"<td><label for=\\\"href\\\"><%=lang_input_url%></label></td>\" +\n            \"<td><input class=\\\"edui-link-txt\\\" id=\\\"edui-link-Jhref\\\" type=\\\"text\\\" /></td>\" +\n            \"</tr>\" +\n            \"<tr>\" +\n            \"<td><label for=\\\"title\\\"><%=lang_input_title%></label></td>\" +\n            \"<td><input class=\\\"edui-link-txt\\\" id=\\\"edui-link-Jtitle\\\" type=\\\"text\\\"/></td>\" +\n            \"</tr>\" +\n            \"<tr>\" +\n            \"<td colspan=\\\"2\\\">\" +\n            \"<label for=\\\"target\\\"><%=lang_input_target%></label>\" +\n            \"<input id=\\\"edui-link-Jtarget\\\" type=\\\"checkbox\\\"/>\" +\n            \"</td>\" +\n            \"</tr>\" +\n//            \"<tr>\" +\n//            \"<td colspan=\\\"2\\\" id=\\\"edui-link-Jmsg\\\"></td>\" +\n//            \"</tr>\" +\n            \"</table>\",\n        initContent: function (editor) {\n            var lang = editor.getLang('link');\n            if (lang) {\n                var html = $.parseTmpl(this.tpl, lang.static);\n            }\n            this.root().html(html);\n        },\n        initEvent: function (editor, $w) {\n            var link = editor.queryCommandValue('link');\n            if(link){\n                $('#edui-link-Jhref',$w).val(utils.html($(link).attr('href')));\n                $('#edui-link-Jtitle',$w).val($(link).attr('title'));\n                $(link).attr('target') == '_blank' && $('#edui-link-Jtarget').attr('checked',true)\n            }\n            $('#edui-link-Jhref',$w).focus();\n        },\n        buttons: {\n            'ok': {\n                exec: function (editor, $w) {\n                    var href = $('#edui-link-Jhref').val().replace(/^\\s+|\\s+$/g, '');\n\n                    if (href) {\n                        editor.execCommand('link', {\n                            'href': href,\n                            'target': $(\"#edui-link-Jtarget:checked\").length ? \"_blank\" : '_self',\n                            'title': $(\"#edui-link-Jtitle\").val().replace(/^\\s+|\\s+$/g, ''),\n                            '_href': href\n                        });\n                    }\n                }\n            },\n            'cancel':{}\n        },\n        width: 400\n    })\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/map/map.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n    <meta charset=\"utf-8\"/>\n    <meta name=\"keywords\" content=\"百度地图,百度地图API，百度地图自定义工具，百度地图所见即所得工具\"/>\n    <meta name=\"description\" content=\"百度地图API自定义地图，帮助用户在可视化操作下生成百度地图\"/>\n    <title>百度地图API自定义地图</title>\n    <!--引用百度地图API-->\n    <style type=\"text/css\">\n        html, body {\n            margin: 0;\n            padding: 0;\n            overflow: hidden;\n        }\n    </style>\n    <script type=\"text/javascript\" src=\"http://api.map.baidu.com/api?key=&v=2.0&ak=6b6c1a67eaa7db1ca6d6da28e590e343&services=true\"></script>\n</head>\n\n<body onload=\"initMap();\">\n<!--百度地图容器-->\n<div style=\"width:697px;height:550px;border:#ccc solid 1px;\" id=\"dituContent\"></div>\n</body>\n<script type=\"text/javascript\">\n    function getParam(name) {\n        return location.href.match(new RegExp('[?#&]' + name + '=([^?#&]+)', 'i')) ? RegExp.$1 : '';\n    }\n    var map, marker;\n    var centerParam = getParam('center');\n    var zoomParam = getParam('zoom');\n    var widthParam = getParam('width');\n    var heightParam = getParam('height');\n    var markersParam = getParam('markers');\n    var markerStylesParam = getParam('markerStyles');\n    var iframe = getSelfIframe();\n    var UM = parent.UM;\n    var editor = getEditor();\n\n    //创建和初始化地图函数：\n    function initMap() {\n        // [FF]切换模式后报错\n        if (!window.BMap) {\n            return;\n        }\n        var dituContent = document.getElementById('dituContent');\n        dituContent.style.width = widthParam + 'px';\n        dituContent.style.height = heightParam + 'px';\n\n        createMap();//创建地图\n        setMapEvent();//设置地图事件\n        addMapControl();//向地图添加控件\n\n        // 创建标注\n        var markersArr = markersParam.split(',');\n        var point = new BMap.Point(markersArr[0], markersArr[1]);\n        marker = new BMap.Marker(point);\n        marker.enableDragging();\n        map.addOverlay(marker); // 将标注添加到地图中\n\n        if(iframe && UM && editor) { //在编辑状态下\n            setMapListener();//地图改变修改外层的iframe标签src属性\n        } else {\n            document.focus();\n        }\n    }\n\n    //创建地图函数：\n    function createMap() {\n        map = new BMap.Map(\"dituContent\");//在百度地图容器中创建一个地图\n        var centerArr = centerParam.split(',');\n        var point = new BMap.Point(parseFloat(centerArr[0]), parseFloat(centerArr[1]));//定义一个中心点坐标\n        map.centerAndZoom(point, parseInt(zoomParam));//设定地图的中心点和坐标并将地图显示在地图容器中\n    }\n\n    //地图事件设置函数：\n    function setMapEvent() {\n        map.enableDragging();//启用地图拖拽事件，默认启用(可不写)\n        map.enableScrollWheelZoom();//启用地图滚轮放大缩小\n        map.enableDoubleClickZoom();//启用鼠标双击放大，默认启用(可不写)\n        map.enableKeyboard();//启用键盘上下左右键移动地图\n    }\n\n    //地图控件添加函数：\n    function addMapControl() {\n        //向地图中添加缩放控件\n        var ctrl_nav = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE});\n        map.addControl(ctrl_nav);\n        //向地图中添加缩略图控件\n        var ctrl_ove = new BMap.OverviewMapControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: 1});\n        map.addControl(ctrl_ove);\n        //向地图中添加比例尺控件\n        var ctrl_sca = new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT});\n        map.addControl(ctrl_sca);\n    }\n\n    function setMapListener() {\n        var timer;\n\n        map.addEventListener('moveend', mapListenerHandler);\n        map.addEventListener('zoomend', mapListenerHandler);\n        marker.addEventListener('dragend', mapListenerHandler);\n\n        function mapListenerHandler() {\n            var zoom = map.getZoom(),\n                center = map.getCenter(),\n                marker = window.marker.P;\n\n            iframe.src = iframe.src.\n                replace(new RegExp('([?#&])center=([^?#&]+)', 'i'), '$1center=' + center.lng + ',' + center.lat).\n                replace(new RegExp('([?#&])markers=([^?#&]+)', 'i'), '$1markers=' + marker.lng + ',' + marker.lat).\n                replace(new RegExp('([?#&])zoom=([^?#&]+)', 'i'), '$1zoom=' + zoom);\n            editor.fireEvent('saveScene');\n            saveScene(editor);\n        }\n\n        function saveScene(){\n            if(!timer) {\n                timer = setTimeout(function(){\n                    editor.fireEvent('savescene');\n                    editor.fireEvent('contentchange');\n                    timer = null;\n                }, 1000);\n            }\n        }\n    }\n\n    function getSelfIframe(){\n        var iframes = parent.document.getElementsByTagName('iframe');\n        for (var key in iframes) {\n            if (iframes[key].contentWindow == window) {\n                return iframes[key];\n            }\n        }\n        return null;\n    }\n\n    function getEditor(){\n        var parentNode = iframe.parentNode;\n        while (parentNode && parentNode.tagName && parentNode.tagName.toLowerCase() != 'body') {\n            if (parentNode.className && parentNode.className.indexOf('edui-body-container')!=-1) {\n                return UM.getEditor(parentNode.id);\n            }\n            parentNode = parentNode.parentNode;\n        }\n        return null;\n    }\n</script>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/map/map.js",
    "content": "(function () {\n\n    var widgetName = 'map';\n\n    UM.registerWidget(widgetName, {\n\n        tpl: \"<style type=\\\"text/css\\\">\" +\n            \".edui-dialog-map .edui-map-content{width:530px; height: 350px;margin: 10px auto;}\" +\n            \".edui-dialog-map .edui-map-content table{width: 100%}\" +\n            \".edui-dialog-map .edui-map-content table td{vertical-align: middle;}\" +\n            \".edui-dialog-map .edui-map-button { border: 1px solid #ccc; float: left; cursor: default; height: 23px; width: 70px; cursor: pointer; margin: 0; font-size: 12px; line-height: 24px; text-align: center; }\" +\n            \".edui-dialog-map .edui-map-button:hover {background:#eee;}\" +\n            \".edui-dialog-map .edui-map-city,.edui-dialog-map .edui-map-address{height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}\" +\n            \".edui-dialog-map .edui-map-city{width:90px}\" +\n            \".edui-dialog-map .edui-map-address{width:150px}\" +\n            \".edui-dialog-map .edui-map-dynamic-label span{vertical-align:middle;margin: 3px 0px 3px 3px;}\" +\n            \".edui-dialog-map .edui-map-dynamic-label input{vertical-align:middle;margin: 3px;}\" +\n            \"</style>\" +\n            \"<div class=\\\"edui-map-content\\\">\" +\n            \"<table>\" +\n            \"<tr>\" +\n            \"<td><%=lang_city%>:</td>\" +\n            \"<td><input class=\\\"edui-map-city\\\" type=\\\"text\\\" value=\\\"<%=city.value%>\\\"/></td>\" +\n            \"<td><%=lang_address%>:</td>\" +\n            \"<td><input class=\\\"edui-map-address\\\" type=\\\"text\\\" value=\\\"\\\" /></td>\" +\n            \"<td><a class=\\\"edui-map-button\\\"><%=lang_search%></a></td>\" +\n            \"<td><label class=\\\"edui-map-dynamic-label\\\"><input class=\\\"edui-map-dynamic\\\" type=\\\"checkbox\\\" name=\\\"edui-map-dynamic\\\" /><span><%=lang_dynamicmap%></span></label></td>\"+\n            \"</tr>\" +\n            \"</table>\" +\n            \"<div style=\\\"width:100%;height:340px;margin:5px auto;border:1px solid gray\\\" class=\\\"edui-map-container\\\"></div>\" +\n            \"</div>\" +\n            \"<script class=\\\"edui-tpl-container\\\" type=\\\"text/plain\\\">\" +\n            \"<!DOCTYPE html>\" +\n            \"<html>\" +\n            \"<head>\" +\n            \"<title></title>\" +\n            \"</head>\" +\n            \"<body>\" +\n            \"<scr_ipt>\" +\n            \"window.onload = function(){\" +\n            \"var scripts = document.scripts || document.getElementsByTagName(\\\"script\\\"),\" +\n            \"src = [];\" +\n            \"for( var i = 1, len = scripts.length; i<len; i++ ) {\" +\n            \"src.push( scripts[i].src );\" +\n            \"}\" +\n            \"parent.UM.getEditor(<<id>>).getWidgetData(\\'map\\').requestMapApi( src );\" +\n            \"};\" +\n            \"function mapReadyStateChange ( state ) { \" +\n            \" if ( state === 'complete' || state === 'loaded' ) {\" +\n            \" document.close(); \" +\n            \" } }\" +\n            \"</scr_ipt>\" +\n            \"<scr_ipt onreadystatechange='mapReadyStateChange(this.readyState);' onload='mapReadyStateChange(\\\"loaded\\\");' src=\\\"http://api.map.baidu.com/api?v=2.0&ak=6b6c1a67eaa7db1ca6d6da28e590e343&services=true\\\"></scr_ipt>\" +\n            \"</body>\" +\n            \"</html>\" +\n            \"</script>\",\n        initContent: function (editor, $widget) {\n\n            var me = this,\n                lang = editor.getLang(widgetName),\n                theme_url = editor.options.themePath + editor.options.theme;\n\n            if( me.inited ) {\n                me.preventDefault();\n                return false;\n            }\n\n            me.inited = true;\n\n            me.lang = lang;\n            me.editor = editor;\n\n            me.root().html($.parseTmpl(me.tpl, $.extend({}, lang['static'], {\n                'theme_url': theme_url\n            })));\n\n            me.initRequestApi();\n\n        },\n        /**\n         * 初始化请求API\n         */\n        initRequestApi: function () {\n\n            var $ifr = null;\n\n            //已经初始化过， 不用再次初始化\n            if (window.BMap && window.BMap.Map) {\n                this.initBaiduMap();\n            } else {\n\n                $ifr = $('<iframe style=\"display: none;\"></iframe>');\n                $ifr.appendTo( this.root() );\n\n                $ifr = $ifr[ 0 ].contentWindow.document;\n\n                $ifr.open();\n                $ifr.write( this.root().find(\".edui-tpl-container\").html().replace( /scr_ipt/g, 'script').replace('<<id>>',\"'\" + this.editor.id + \"'\") );\n\n            }\n\n        },\n        requestMapApi: function (src) {\n\n            var me = this;\n\n            if (src.length) {\n\n                var _src = src[0];\n\n                src = src.slice(1);\n\n                if (_src) {\n                    $.getScript(_src, function () {\n                        me.requestMapApi(src);\n                    });\n                } else {\n                    me.requestMapApi(src);\n                }\n\n            } else {\n\n                me.initBaiduMap();\n\n            }\n\n\n        },\n        initBaiduMap: function () {\n\n            var $root = this.root(),\n                map = new BMap.Map($root.find(\".edui-map-container\")[0]),\n                me = this,\n                marker,\n                point,\n                imgcss,\n                img = $(me.editor.selection.getRange().getClosedNode());\n\n            map.enableInertialDragging();\n            map.enableScrollWheelZoom();\n            map.enableContinuousZoom();\n\n            if (img.length && /api[.]map[.]baidu[.]com/ig.test(img.attr(\"src\"))) {\n                var url = img.attr(\"src\"),\n                    centerPos = me.getPars(url, \"center\").split(\",\"),\n                    markerPos = me.getPars(url, \"markers\").split(\",\");\n                point = new BMap.Point(Number(centerPos[0]), Number(centerPos[1]));\n                marker = new BMap.Marker(new BMap.Point(Number(markerPos[0]), Number(markerPos[1])));\n                map.addControl(new BMap.NavigationControl());\n                map.centerAndZoom(point, Number(me.getPars(url, \"zoom\")));\n                imgcss = img.attr('style');\n            } else {\n                point = new BMap.Point(116.404, 39.915);    // 创建点坐标\n                marker = new BMap.Marker(point);\n                map.addControl(new BMap.NavigationControl());\n                map.centerAndZoom(point, 10);                     // 初始化地图,设置中心点坐标和地图级别。\n            }\n            marker.enableDragging();\n            map.addOverlay(marker);\n\n            me.map = map;\n            me.marker = marker;\n            me.imgcss = imgcss;\n        },\n        doSearch: function () {\n            var me = this,\n                city = me.root().find('.edui-map-city').val(),\n                address = me.root().find('.edui-map-address').val();\n\n            if (!city) {\n                alert(me.lang.cityMsg);\n                return;\n            }\n            var search = new BMap.LocalSearch(city, {\n                onSearchComplete: function (results) {\n                    if (results && results.getNumPois()) {\n                        var points = [];\n                        for (var i = 0; i < results.getCurrentNumPois(); i++) {\n                            points.push(results.getPoi(i).point);\n                        }\n                        if (points.length > 1) {\n                            me.map.setViewport(points);\n                        } else {\n                            me.map.centerAndZoom(points[0], 13);\n                        }\n                        point = me.map.getCenter();\n                        me.marker.setPoint(point);\n                    } else {\n                        alert(me.lang.errorMsg);\n                    }\n                }\n            });\n            search.search(address || city);\n        },\n        getPars: function (str, par) {\n            var reg = new RegExp(par + \"=((\\\\d+|[.,])*)\", \"g\");\n            return reg.exec(str)[1];\n        },\n        reset: function(){\n            this.map && this.map.reset();\n        },\n        initEvent: function () {\n            var me = this,\n                $root = me.root();\n\n            $root.find('.edui-map-address').on('keydown', function (evt) {\n                evt = evt || event;\n                if (evt.keyCode == 13) {\n                    me.doSearch();\n                    return false;\n                }\n            });\n\n            $root.find(\".edui-map-button\").on('click', function (evt) {\n                me.doSearch();\n            });\n\n            $root.find(\".edui-map-address\").focus();\n\n            $root.on( \"mousewheel DOMMouseScroll\", function ( e ) {\n                return false;\n            } );\n\n        },\n        width: 580,\n        height: 408,\n        buttons: {\n            ok: {\n                exec: function (editor) {\n                    var widget = editor.getWidgetData(widgetName),\n                        center = widget.map.getCenter(),\n                        zoom = widget.map.getZoom(),\n                        size = widget.map.getSize(),\n                        point = widget.marker.P;\n\n                    if (widget.root().find(\".edui-map-dynamic\")[0].checked) {\n                        var URL = editor.getOpt('UMEDITOR_HOME_URL'),\n                            url = [URL + (/\\/$/.test(URL) ? '':'/') + \"dialogs/map/map.html\" +\n                                '#center=' + center.lng + ',' + center.lat,\n                                '&zoom=' + zoom,\n                                '&width=' + size.width,\n                                '&height=' + size.height,\n                                '&markers=' + point.lng + ',' + point.lat].join('');\n                        editor.execCommand('inserthtml', '<iframe class=\"ueditor_baidumap\" src=\"' + url + '\" frameborder=\"0\" width=\"' + (size.width+4) + '\" height=\"' + (size.height+4) + '\"></iframe>');\n                    } else {\n                        url = \"http://api.map.baidu.com/staticimage?center=\" + center.lng + ',' + center.lat +\n                            \"&zoom=\" + zoom + \"&width=\" + size.width + '&height=' + size.height + \"&markers=\" + point.lng + ',' + point.lat;\n                        editor.execCommand('inserthtml', '<img width=\"' + size.width + '\"height=\"' + size.height + '\" src=\"' + url + '\"' + (widget.imgcss ? ' style=\"' + widget.imgcss + '\"' : '') + '/>', true);\n                    }\n\n                    widget.reset();\n                }\n            },\n            cancel: {\n                exec: function(editor){\n                    editor.getWidgetData(widgetName).reset();\n                }\n            }\n        }\n    });\n\n})();\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/video/video.css",
    "content": "@charset \"utf-8\";\n.edui-dialog-video .edui-video-wrapper{ width: 570px;_width:575px;margin: 10px auto; zoom:1;position: relative}\n.edui-dialog-video .edui-video-tabbody{height:335px;}\n.edui-dialog-video .edui-video-panel { position: absolute;width:100%; height:100%;background: #fff;}\n.edui-dialog-video .edui-video-panel table td{vertical-align: middle;}\n.edui-dialog-video #eduiVideoUrl {\n    width: 470px;\n    height: 21px;\n    line-height: 21px;\n    margin: 8px 5px;\n    background: #FFF;\n    border: 1px solid #d7d7d7;\n}\n.edui-dialog-video #eduiVideoSearchTxt{margin-left:15px;background: #FFF;width:200px;height:21px;line-height:21px;border: 1px solid #d7d7d7;}\n.edui-dialog-video #searchList{width: 570px;overflow: auto;zoom:1;height: 270px;}\n.edui-dialog-video #searchList div{float: left;width: 120px;height: 135px;margin: 5px 15px;}\n.edui-dialog-video #searchList img{margin: 2px 8px;cursor: pointer;border: 2px solid #fff} /*不用缩略图*/\n.edui-dialog-video #searchList p{margin-left: 10px;}\n.edui-dialog-video #eduiVideoType{\n    width: 65px;\n    height: 23px;\n    line-height: 22px;\n    border: 1px solid #d7d7d7;\n}\n.edui-dialog-video #eduiVideoSearchBtn,.edui-dialog-video #eduiVideoSearchReset{\n    /*width: 80px;*/\n    height: 25px;\n    line-height: 25px;\n    background: #eee;\n    border: 1px solid #d7d7d7;\n    cursor: pointer;\n    padding: 0 5px;\n}\n\n\n\n.edui-dialog-video #eduiVideoPreview{width: 420px; margin-left: 10px; _margin-left:5px; height: 280px;background-color: #ddd;float: left}\n.edui-dialog-video #eduiVideoInfo {width: 120px;float: left;margin-left: 10px;_margin-left:7px;}\n.edui-dialog-video .edui-video-wrapper fieldset{\n    border: 1px solid #ddd;\n    padding-left: 5px;\n    margin-bottom: 20px;\n    padding-bottom: 5px;\n    width: 115px;\n}\n.edui-dialog-video .edui-video-wrapper fieldset legend{font-weight: bold;}\n.edui-dialog-video .edui-video-wrapper fieldset p{line-height: 30px;}\n.edui-dialog-video .edui-video-wrapper fieldset input.edui-video-txt{\n    width: 65px;\n    height: 21px;\n    line-height: 21px;\n    margin: 8px 5px;\n    background: #FFF;\n    border: 1px solid #d7d7d7;\n}\n.edui-dialog-video .edui-video-wrapper label.edui-video-url{font-weight: bold;margin-left: 5px;color: #06c;}\n.edui-dialog-video #eduiVideoFloat div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;}\n.edui-dialog-video #eduiVideoFloat .edui-video-focus{opacity: 1;filter: alpha(opacity = 100)}\n.edui-dialog-video .edui-video-wrapper span.edui-video-view{display: inline-block;width: 30px;float: right;cursor: pointer;color: blue}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/dialogs/video/video.js",
    "content": "\n(function(){\n    var domUtils = UM.dom.domUtils;\n    var widgetName = 'video';\n\n    UM.registerWidget( widgetName,{\n\n        tpl: \"<link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"<%=video_url%>video.css\\\" />\" +\n            \"<div class=\\\"edui-video-wrapper\\\">\" +\n            \"<div id=\\\"eduiVideoTab\\\">\" +\n            \"<div id=\\\"eduiVideoTabHeads\\\" class=\\\"edui-video-tabhead\\\">\" +\n            \"<span tabSrc=\\\"video\\\" class=\\\"edui-video-focus\\\"><%=lang_tab_insertV%></span>\" +\n            \"</div>\" +\n            \"<div id=\\\"eduiVideoTabBodys\\\" class=\\\"edui-video-tabbody\\\">\" +\n            \"<div id=\\\"eduiVideoPanel\\\" class=\\\"edui-video-panel\\\">\" +\n            \"<table><tr><td><label for=\\\"eduiVideoUrl\\\" class=\\\"edui-video-url\\\"><%=lang_video_url%></label></td><td><input id=\\\"eduiVideoUrl\\\" type=\\\"text\\\"></td></tr></table>\" +\n            \"<div id=\\\"eduiVideoPreview\\\"></div>\" +\n            \"<div id=\\\"eduiVideoInfo\\\">\" +\n            \"<fieldset>\" +\n            \"<legend><%=lang_video_size%></legend>\" +\n            \"<table>\" +\n            \"<tr><td><label for=\\\"eduiVideoWidth\\\"><%=lang_videoW%></label></td><td><input class=\\\"edui-video-txt\\\" id=\\\"eduiVideoWidth\\\" type=\\\"text\\\"/></td></tr>\" +\n            \"<tr><td><label for=\\\"eduiVideoHeight\\\"><%=lang_videoH%></label></td><td><input class=\\\"edui-video-txt\\\" id=\\\"eduiVideoHeight\\\" type=\\\"text\\\"/></td></tr>\" +\n            \"</table>\" +\n            \"</fieldset>\" +\n            \"<fieldset>\" +\n            \"<legend><%=lang_alignment%></legend>\" +\n            \"<div id=\\\"eduiVideoFloat\\\"></div>\" +\n            \"</fieldset>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\" +\n            \"</div>\",\n        initContent:function( editor, $widget ){\n\n            var me = this,\n                lang = editor.getLang( widgetName),\n                video_url = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/video/';\n\n            me.lang = lang;\n            me.editor = editor;\n            me.$widget = $widget;\n            me.root().html( $.parseTmpl( me.tpl, $.extend( { video_url: video_url }, lang['static'] ) ) );\n\n            me.initController( lang );\n\n        },\n        initEvent:function(){\n\n            var me = this,\n                url = $(\"#eduiVideoUrl\", me.$widget)[0];\n\n            if( 'oninput' in url ) {\n                url.oninput = function(){\n                    me.createPreviewVideo( this.value );\n                };\n            } else {\n                url.onpropertychange = function () {\n                    me.createPreviewVideo( this.value );\n                }\n            }\n\n        },\n        initController: function( lang ){\n\n            var me = this,\n                img = me.editor.selection.getRange().getClosedNode(),\n                url;\n\n            me.createAlignButton( [\"eduiVideoFloat\"] );\n\n            //编辑视频时初始化相关信息\n            if(img && img.className == \"edui-faked-video\"){\n                $(\"#eduiVideoUrl\", me.$widget)[0].value = url = img.getAttribute(\"_url\");\n                $(\"#eduiVideoWidth\", me.$widget)[0].value = img.width;\n                $(\"#eduiVideoHeight\", me.$widget)[0].value = img.height;\n                var align = domUtils.getComputedStyle(img,\"float\"),\n                    parentAlign = domUtils.getComputedStyle(img.parentNode,\"text-align\");\n                me.updateAlignButton(parentAlign===\"center\"?\"center\":align);\n            }\n            me.createPreviewVideo(url);\n\n        },\n        /**\n         * 根据url生成视频预览\n         */\n        createPreviewVideo: function(url){\n\n            if ( !url )return;\n\n            var me = this,\n                lang = me.lang,\n                conUrl = me.convert_url(url);\n\n            if(!me.endWith(conUrl,[\".swf\",\".flv\",\".wmv\"])){\n                $(\"#eduiVideoPreview\", me.$widget).html( lang.urlError );\n                return;\n            }\n            $(\"#eduiVideoPreview\", me.$widget)[0].innerHTML = '<embed type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"' +\n                ' src=\"' + url + '\"' +\n                ' width=\"' + 420  + '\"' +\n                ' height=\"' + 280  + '\"' +\n                ' wmode=\"transparent\" play=\"true\" loop=\"false\" menu=\"false\" allowscriptaccess=\"never\" allowfullscreen=\"true\" ></embed>';\n\n        },\n        /**\n         * 将单个视频信息插入编辑器中\n         */\n        insertSingle: function(){\n\n            var me = this,\n                width = $(\"#eduiVideoWidth\", me.$widget)[0],\n                height = $(\"#eduiVideoHeight\", me.$widget)[0],\n                url=$('#eduiVideoUrl', me.$widget)[0].value,\n                align = this.findFocus(\"eduiVideoFloat\",\"name\");\n\n            if(!url) return false;\n            if ( !me.checkNum( [width, height] ) ) return false;\n            this.editor.execCommand('insertvideo', {\n                url: me.convert_url(url),\n                width: width.value,\n                height: height.value,\n                align: align\n            });\n\n        },\n        /**\n         * URL转换\n         */\n        convert_url: function(url){\n            if ( !url ) return '';\n            var matches = url.match(/youtu.be\\/(\\w+)$/) ||\n                    url.match(/youtube\\.com\\/watch\\?v=(\\w+)/) ||\n                    url.match(/youtube.com\\/v\\/(\\w+)/),\n                youku = url.match(/youku\\.com\\/v_show\\/id_(\\w+)/),\n                youkuPlay = /player\\.youku\\.com/ig.test(url);\n\n            if(youkuPlay){\n                url = url.replace(/\\?f=.*/, \"\");\n            } else if (matches){\n                url = \"https://www.youtube.com/v/\" + matches[1] + \"?version=3&feature=player_embedded\";\n            }else if(youku){\n                url = \"http://player.youku.com/player.php/sid/\"+youku[1]+\"/v.swf\"\n            } else {\n                url = url.replace(/http:\\/\\/www\\.tudou\\.com\\/programs\\/view\\/([\\w\\-]+)\\/?/i, \"http://www.tudou.com/v/$1\")\n                    .replace(/http:\\/\\/www\\.youtube\\.com\\/watch\\?v=([\\w\\-]+)/i, \"http://www.youtube.com/v/$1\")\n                    .replace(/http:\\/\\/v\\.youku\\.com\\/v_show\\/id_([\\w\\-=]+)\\.html/i, \"http://player.youku.com/player.php/sid/$1\")\n                    .replace(/http:\\/\\/www\\.56\\.com\\/u\\d+\\/v_([\\w\\-]+)\\.html/i, \"http://player.56.com/v_$1.swf\")\n                    .replace(/http:\\/\\/www.56.com\\/w\\d+\\/play_album\\-aid\\-\\d+_vid\\-([^.]+)\\.html/i, \"http://player.56.com/v_$1.swf\")\n                    .replace(/http:\\/\\/v\\.ku6\\.com\\/.+\\/([^.]+)\\.html/i, \"http://player.ku6.com/refer/$1/v.swf\")\n                    .replace(/\\?f=.*/, \"\");\n            }\n            return url;\n        },\n        /**\n         * 检测传入的所有input框中输入的长宽是否是正数\n         */\n        checkNum: function checkNum( nodes ) {\n\n            var me = this;\n\n            for ( var i = 0, ci; ci = nodes[i++]; ) {\n                var value = ci.value;\n                if ( !me.isNumber( value ) && value) {\n                    alert( me.lang.numError );\n                    ci.value = \"\";\n                    ci.focus();\n                    return false;\n                }\n            }\n            return true;\n        },\n        /**\n         * 数字判断\n         * @param value\n         */\n        isNumber: function( value ) {\n            return /(0|^[1-9]\\d*$)/.test( value );\n        },\n        updateAlignButton: function( align ) {\n            var aligns = $( \"#eduiVideoFloat\", this.$widget )[0].children;\n\n            for ( var i = 0, ci; ci = aligns[i++]; ) {\n                if ( ci.getAttribute( \"name\" ) == align ) {\n                    if ( ci.className !=\"edui-video-focus\" ) {\n                        ci.className = \"edui-video-focus\";\n                    }\n                } else {\n                    if ( ci.className ==\"edui-video-focus\" ) {\n                        ci.className = \"\";\n                    }\n                }\n            }\n\n        },\n        /**\n         * 创建图片浮动选择按钮\n         * @param ids\n         */\n        createAlignButton: function( ids ) {\n            var lang = this.lang,\n                vidoe_home = UMEDITOR_CONFIG.UMEDITOR_HOME_URL + 'dialogs/video/';\n\n            for ( var i = 0, ci; ci = ids[i++]; ) {\n                var floatContainer = $( \"#\" + ci, this.$widget ) [0],\n                    nameMaps = {\"none\":lang['default'], \"left\":lang.floatLeft, \"right\":lang.floatRight};\n                for ( var j in nameMaps ) {\n                    var div = document.createElement( \"div\" );\n                    div.setAttribute( \"name\", j );\n                    if ( j == \"none\" ) div.className=\"edui-video-focus\";\n                    div.style.cssText = \"background:url(\"+ vidoe_home +\"images/\" + j + \"_focus.jpg);\";\n                    div.setAttribute( \"title\", nameMaps[j] );\n                    floatContainer.appendChild( div );\n                }\n                this.switchSelect( ci );\n            }\n        },\n        /**\n         * 选择切换\n         */\n        switchSelect: function( selectParentId ) {\n            var selects = $( \"#\" + selectParentId, this.$widget )[0].children;\n            for ( var i = 0, ci; ci = selects[i++]; ) {\n               $(ci).on(\"click\", function () {\n                    for ( var j = 0, cj; cj = selects[j++]; ) {\n                        cj.className = \"\";\n                        cj.removeAttribute && cj.removeAttribute( \"class\" );\n                    }\n                    this.className = \"edui-video-focus\";\n                } )\n            }\n        },\n        /**\n         * 找到id下具有focus类的节点并返回该节点下的某个属性\n         * @param id\n         * @param returnProperty\n         */\n        findFocus: function( id, returnProperty ) {\n            var tabs = $( \"#\" + id , this.$widget)[0].children,\n                property;\n            for ( var i = 0, ci; ci = tabs[i++]; ) {\n                if ( ci.className==\"edui-video-focus\" ) {\n                    property = ci.getAttribute( returnProperty );\n                    break;\n                }\n            }\n            return property;\n        },\n        /**\n         * 末尾字符检测\n         */\n        endWith: function(str,endStrArr){\n            for(var i=0,len = endStrArr.length;i<len;i++){\n                var tmp = endStrArr[i];\n                if(str.length - tmp.length<0) return false;\n\n                if(str.substring(str.length-tmp.length)==tmp){\n                    return true;\n                }\n            }\n            return false;\n        },\n        width:610,\n        height:498,\n        buttons: {\n            ok: {\n                exec: function( editor, $w ){\n                    $(\"#eduiVideoPreview\", $w).html(\"\");\n                    editor.getWidgetData(widgetName).insertSingle();\n                }\n            },\n            cancel: {\n                exec: function(){\n                    //清除视频\n                    $(\"#eduiVideoPreview\").html(\"\");\n                }\n            }\n        }\n    });\n\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/index.html",
    "content": "<!DOCTYPE HTML>\n<html>\n<head>\n\n    <meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>\n    <title>UMEDITOR 完整demo</title>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n    <link href=\"themes/default/css/umeditor.css\" type=\"text/css\" rel=\"stylesheet\">\n    <script type=\"text/javascript\" src=\"third-party/jquery.min.js\"></script>\n    <script type=\"text/javascript\" charset=\"utf-8\" src=\"umeditor.config.js\"></script>\n    <script type=\"text/javascript\" charset=\"utf-8\" src=\"umeditor.min.js\"></script>\n    <script type=\"text/javascript\" src=\"lang/zh-cn/zh-cn.js\"></script>\n    <style type=\"text/css\">\n        h1{\n            font-family: \"微软雅黑\";\n            font-weight: normal;\n        }\n        .btn {\n            display: inline-block;\n            *display: inline;\n            padding: 4px 12px;\n            margin-bottom: 0;\n            *margin-left: .3em;\n            font-size: 14px;\n            line-height: 20px;\n            color: #333333;\n            text-align: center;\n            text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);\n            vertical-align: middle;\n            cursor: pointer;\n            background-color: #f5f5f5;\n            *background-color: #e6e6e6;\n            background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);\n            background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));\n            background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);\n            background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);\n            background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);\n            background-repeat: repeat-x;\n            border: 1px solid #cccccc;\n            *border: 0;\n            border-color: #e6e6e6 #e6e6e6 #bfbfbf;\n            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n            border-bottom-color: #b3b3b3;\n            -webkit-border-radius: 4px;\n            -moz-border-radius: 4px;\n            border-radius: 4px;\n            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);\n            filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n            *zoom: 1;\n            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);\n        }\n\n        .btn:hover,\n        .btn:focus,\n        .btn:active,\n        .btn.active,\n        .btn.disabled,\n        .btn[disabled] {\n            color: #333333;\n            background-color: #e6e6e6;\n            *background-color: #d9d9d9;\n        }\n\n        .btn:active,\n        .btn.active {\n            background-color: #cccccc \\9;\n        }\n\n        .btn:first-child {\n            *margin-left: 0;\n        }\n\n        .btn:hover,\n        .btn:focus {\n            color: #333333;\n            text-decoration: none;\n            background-position: 0 -15px;\n            -webkit-transition: background-position 0.1s linear;\n            -moz-transition: background-position 0.1s linear;\n            -o-transition: background-position 0.1s linear;\n            transition: background-position 0.1s linear;\n        }\n\n        .btn:focus {\n            outline: thin dotted #333;\n            outline: 5px auto -webkit-focus-ring-color;\n            outline-offset: -2px;\n        }\n\n        .btn.active,\n        .btn:active {\n            background-image: none;\n            outline: 0;\n            -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n            -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n            box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);\n        }\n\n        .btn.disabled,\n        .btn[disabled] {\n            cursor: default;\n            background-image: none;\n            opacity: 0.65;\n            filter: alpha(opacity=65);\n            -webkit-box-shadow: none;\n            -moz-box-shadow: none;\n            box-shadow: none;\n        }\n    </style>\n</head>\n<body>\n<h1>UMEDITOR 完整demo</h1>\n\n<!--style给定宽度可以影响编辑器的最终宽度-->\n<script type=\"text/plain\" id=\"myEditor\" style=\"width:1000px;height:240px;\">\n    <p>这里我可以写一些输入提示</p>\n</script>\n\n\n<div class=\"clear\"></div>\n<div id=\"btns\">\n    <table>\n        <tr>\n            <td>\n                <button class=\"btn\" unselected=\"on\" onclick=\"getAllHtml()\">获得整个html的内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"getContent()\">获得内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"setContent()\">写入内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"setContent(true)\">追加内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"getContentTxt()\">获得纯文本</button>&nbsp;\n                <button class=\"btn\" onclick=\"getPlainTxt()\">获得带格式的纯文本</button>&nbsp;\n                <button class=\"btn\" onclick=\"hasContent()\">判断是否有内容</button>\n            </td>\n        </tr>\n        <tr>\n            <td>\n                <button class=\"btn\" onclick=\"setFocus()\">编辑器获得焦点</button>&nbsp;\n                <button class=\"btn\" onmousedown=\"isFocus();return false;\">编辑器是否获得焦点</button>&nbsp;\n                <button class=\"btn\" onclick=\"doBlur()\">编辑器取消焦点</button>&nbsp;\n                <button class=\"btn\" onclick=\"insertHtml()\">插入给定的内容</button>&nbsp;\n                <button class=\"btn\" onclick=\"getContentTxt()\">获得纯文本</button>&nbsp;\n                <button class=\"btn\" id=\"enable\" onclick=\"setEnabled()\">可以编辑</button>&nbsp;\n                <button class=\"btn\" onclick=\"setDisabled()\">不可编辑</button>\n            </td>\n        </tr>\n        <tr>\n            <td>\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setHide()\">隐藏编辑器</button>&nbsp;\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setShow()\">显示编辑器</button>&nbsp;\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setHeight(300)\">设置编辑器的高度为300</button>&nbsp;\n                <button class=\"btn\" onclick=\"UM.getEditor('myEditor').setWidth(1200)\">设置编辑器的宽度为1200</button>\n            </td>\n        </tr>\n\n    </table>\n</div>\n<table>\n    <tr>\n        <td>\n            <button class=\"btn\" onclick=\"createEditor()\"/>创建编辑器</button>\n            <button class=\"btn\" onclick=\"deleteEditor()\"/>删除编辑器</button>\n        </td>\n    </tr>\n</table>\n\n<div>\n    <h3 id=\"focush2\"></h3>\n</div>\n<script type=\"text/javascript\">\n    //实例化编辑器\n    var um = UM.getEditor('myEditor');\n    um.addListener('blur',function(){\n        $('#focush2').html('编辑器失去焦点了')\n    });\n    um.addListener('focus',function(){\n        $('#focush2').html('')\n    });\n    //按钮的操作\n    function insertHtml() {\n        var value = prompt('插入html代码', '');\n        um.execCommand('insertHtml', value)\n    }\n    function isFocus(){\n        alert(um.isFocus())\n    }\n    function doBlur(){\n        um.blur()\n    }\n    function createEditor() {\n        enableBtn();\n        um = UM.getEditor('myEditor');\n    }\n    function getAllHtml() {\n        alert(UM.getEditor('myEditor').getAllHtml())\n    }\n    function getContent() {\n        var arr = [];\n        arr.push(\"使用editor.getContent()方法可以获得编辑器的内容\");\n        arr.push(\"内容为：\");\n        arr.push(UM.getEditor('myEditor').getContent());\n        alert(arr.join(\"\\n\"));\n    }\n    function getPlainTxt() {\n        var arr = [];\n        arr.push(\"使用editor.getPlainTxt()方法可以获得编辑器的带格式的纯文本内容\");\n        arr.push(\"内容为：\");\n        arr.push(UM.getEditor('myEditor').getPlainTxt());\n        alert(arr.join('\\n'))\n    }\n    function setContent(isAppendTo) {\n        var arr = [];\n        arr.push(\"使用editor.setContent('欢迎使用umeditor')方法可以设置编辑器的内容\");\n        UM.getEditor('myEditor').setContent('欢迎使用umeditor', isAppendTo);\n        alert(arr.join(\"\\n\"));\n    }\n    function setDisabled() {\n        UM.getEditor('myEditor').setDisabled('fullscreen');\n        disableBtn(\"enable\");\n    }\n\n    function setEnabled() {\n        UM.getEditor('myEditor').setEnabled();\n        enableBtn();\n    }\n\n    function getText() {\n        //当你点击按钮时编辑区域已经失去了焦点，如果直接用getText将不会得到内容，所以要在选回来，然后取得内容\n        var range = UM.getEditor('myEditor').selection.getRange();\n        range.select();\n        var txt = UM.getEditor('myEditor').selection.getText();\n        alert(txt)\n    }\n\n    function getContentTxt() {\n        var arr = [];\n        arr.push(\"使用editor.getContentTxt()方法可以获得编辑器的纯文本内容\");\n        arr.push(\"编辑器的纯文本内容为：\");\n        arr.push(UM.getEditor('myEditor').getContentTxt());\n        alert(arr.join(\"\\n\"));\n    }\n    function hasContent() {\n        var arr = [];\n        arr.push(\"使用editor.hasContents()方法判断编辑器里是否有内容\");\n        arr.push(\"判断结果为：\");\n        arr.push(UM.getEditor('myEditor').hasContents());\n        alert(arr.join(\"\\n\"));\n    }\n    function setFocus() {\n        UM.getEditor('myEditor').focus();\n    }\n    function deleteEditor() {\n        disableBtn();\n        UM.getEditor('myEditor').destroy();\n    }\n    function disableBtn(str) {\n        var div = document.getElementById('btns');\n        var btns = domUtils.getElementsByTagName(div, \"button\");\n        for (var i = 0, btn; btn = btns[i++];) {\n            if (btn.id == str) {\n                domUtils.removeAttributes(btn, [\"disabled\"]);\n            } else {\n                btn.setAttribute(\"disabled\", \"true\");\n            }\n        }\n    }\n    function enableBtn() {\n        var div = document.getElementById('btns');\n        var btns = domUtils.getElementsByTagName(div, \"button\");\n        for (var i = 0, btn; btn = btns[i++];) {\n            domUtils.removeAttributes(btn, [\"disabled\"]);\n        }\n    }\n</script>\n\n</body>\n</html>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/jsp/Uploader.java",
    "content": "package com.baidu.ueditor.um;\n\nimport java.io.*;\nimport java.text.SimpleDateFormat;\nimport java.util.*;\nimport org.apache.commons.fileupload.*;\nimport org.apache.commons.fileupload.FileUploadBase.InvalidContentTypeException;\nimport org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;\nimport org.apache.commons.fileupload.util.*;\nimport org.apache.commons.fileupload.servlet.*;\nimport org.apache.commons.fileupload.FileItemIterator;\nimport org.apache.commons.fileupload.disk.DiskFileItemFactory;\n\n\nimport sun.misc.BASE64Decoder;\nimport javax.servlet.http.HttpServletRequest;\n/**\n * UEditor文件上传辅助类\n *\n */\npublic class Uploader {\n\t// 输出文件地址\n\tprivate String url = \"\";\n\t// 上传文件名\n\tprivate String fileName = \"\";\n\t// 状态\n\tprivate String state = \"\";\n\t// 文件类型\n\tprivate String type = \"\";\n\t// 原始文件名\n\tprivate String originalName = \"\";\n\t// 文件大小\n\tprivate long size = 0;\n\n\tprivate HttpServletRequest request = null;\n\tprivate String title = \"\";\n\n\t// 保存路径\n\tprivate String savePath = \"upload\";\n\t// 文件允许格式\n\tprivate String[] allowFiles = { \".rar\", \".doc\", \".docx\", \".zip\", \".pdf\",\".txt\", \".swf\", \".wmv\", \".gif\", \".png\", \".jpg\", \".jpeg\", \".bmp\" };\n\t// 文件大小限制，单位KB\n\tprivate int maxSize = 10000;\n\t\n\tprivate HashMap<String, String> errorInfo = new HashMap<String, String>();\n\n\tpublic Uploader(HttpServletRequest request) {\n\t\tthis.request = request;\n\t\tHashMap<String, String> tmp = this.errorInfo;\n\t\ttmp.put(\"SUCCESS\", \"SUCCESS\"); //默认成功\n\t\ttmp.put(\"NOFILE\", \"未包含文件上传域\");\n\t\ttmp.put(\"TYPE\", \"不允许的文件格式\");\n\t\ttmp.put(\"SIZE\", \"文件大小超出限制\");\n\t\ttmp.put(\"ENTYPE\", \"请求类型ENTYPE错误\");\n\t\ttmp.put(\"REQUEST\", \"上传请求异常\");\n\t\ttmp.put(\"IO\", \"IO异常\");\n\t\ttmp.put(\"DIR\", \"目录创建失败\");\n\t\ttmp.put(\"UNKNOWN\", \"未知错误\");\n\t\t\n\t}\n\n\tpublic void upload() throws Exception {\n\t\tboolean isMultipart = ServletFileUpload.isMultipartContent(this.request);\n\t\tif (!isMultipart) {\n\t\t\tthis.state = this.errorInfo.get(\"NOFILE\");\n\t\t\treturn;\n\t\t}\n\t\tDiskFileItemFactory dff = new DiskFileItemFactory();\n\t\tString savePath = this.getFolder(this.savePath);\n\t\tdff.setRepository(new File(savePath));\n\t\ttry {\n\t\t\tServletFileUpload sfu = new ServletFileUpload(dff);\n\t\t\tsfu.setSizeMax(this.maxSize * 1024);\n\t\t\tsfu.setHeaderEncoding(\"utf-8\");\n\t\t\tFileItemIterator fii = sfu.getItemIterator(this.request);\n\t\t\twhile (fii.hasNext()) {\n\t\t\t\tFileItemStream fis = fii.next();\n\t\t\t\tif (!fis.isFormField()) {\n\t\t\t\t\tthis.originalName = fis.getName().substring(fis.getName().lastIndexOf(System.getProperty(\"file.separator\")) + 1);\n\t\t\t\t\tif (!this.checkFileType(this.originalName)) {\n\t\t\t\t\t\tthis.state = this.errorInfo.get(\"TYPE\");\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tthis.fileName = this.getName(this.originalName);\n\t\t\t\t\tthis.type = this.getFileExt(this.fileName);\n\t\t\t\t\tthis.url = savePath + \"/\" + this.fileName;\n\t\t\t\t\tBufferedInputStream in = new BufferedInputStream(fis.openStream());\n\t\t\t\t\tFile file = new File(this.getPhysicalPath(this.url));\n\t\t\t\t\tFileOutputStream out = new FileOutputStream( file );\n\t\t\t\t\tBufferedOutputStream output = new BufferedOutputStream(out);\n\t\t\t\t\tStreams.copy(in, output, true);\n\t\t\t\t\tthis.state=this.errorInfo.get(\"SUCCESS\");\n\t\t\t\t\tthis.size = file.length();\n\t\t\t\t\t//UE中只会处理单张上传，完成后即退出\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tString fname = fis.getFieldName();\n\t\t\t\t\t//只处理title，其余表单请自行处理\n\t\t\t\t\tif(!fname.equals(\"pictitle\")){\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n                    BufferedInputStream in = new BufferedInputStream(fis.openStream());\n                    BufferedReader reader = new BufferedReader(new InputStreamReader(in));\n                    StringBuffer result = new StringBuffer();  \n                    while (reader.ready()) {  \n                        result.append((char)reader.read());  \n                    }\n                    this.title = new String(result.toString().getBytes(),\"utf-8\");\n                    reader.close();  \n                    \n\t\t\t\t}\n\t\t\t}\n\t\t} catch (SizeLimitExceededException e) {\n\t\t\tthis.state = this.errorInfo.get(\"SIZE\");\n\t\t} catch (InvalidContentTypeException e) {\n\t\t\tthis.state = this.errorInfo.get(\"ENTYPE\");\n\t\t} catch (FileUploadException e) {\n\t\t\tthis.state = this.errorInfo.get(\"REQUEST\");\n\t\t} catch (Exception e) {\n\t\t\tthis.state = this.errorInfo.get(\"UNKNOWN\");\n\t\t}\n\t}\n\t\n\t/**\n\t * 接受并保存以base64格式上传的文件\n\t * @param fieldName\n\t */\n\tpublic void uploadBase64(String fieldName){\n\t\tString savePath = this.getFolder(this.savePath);\n\t\tString base64Data = this.request.getParameter(fieldName);\n\t\tthis.fileName = this.getName(\"test.png\");\n\t\tthis.url = savePath + \"/\" + this.fileName;\n\t\tBASE64Decoder decoder = new BASE64Decoder();\n\t\ttry {\n\t\t\tFile outFile = new File(this.getPhysicalPath(this.url));\n\t\t\tOutputStream ro = new FileOutputStream(outFile);\n\t\t\tbyte[] b = decoder.decodeBuffer(base64Data);\n\t\t\tfor (int i = 0; i < b.length; ++i) {\n\t\t\t\tif (b[i] < 0) {\n\t\t\t\t\tb[i] += 256;\n\t\t\t\t}\n\t\t\t}\n\t\t\tro.write(b);\n\t\t\tro.flush();\n\t\t\tro.close();\n\t\t\tthis.state=this.errorInfo.get(\"SUCCESS\");\n\t\t} catch (Exception e) {\n\t\t\tthis.state = this.errorInfo.get(\"IO\");\n\t\t}\n\t}\n\n\t/**\n\t * 文件类型判断\n\t * \n\t * @param fileName\n\t * @return\n\t */\n\tprivate boolean checkFileType(String fileName) {\n\t\tIterator<String> type = Arrays.asList(this.allowFiles).iterator();\n\t\twhile (type.hasNext()) {\n\t\t\tString ext = type.next();\n\t\t\tif (fileName.toLowerCase().endsWith(ext)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * 获取文件扩展名\n\t * \n\t * @return string\n\t */\n\tprivate String getFileExt(String fileName) {\n\t\treturn fileName.substring(fileName.lastIndexOf(\".\"));\n\t}\n\n\t/**\n\t * 依据原始文件名生成新文件名\n\t * @return\n\t */\n\tprivate String getName(String fileName) {\n\t\tRandom random = new Random();\n\t\treturn this.fileName = \"\" + random.nextInt(10000)\n\t\t\t\t+ System.currentTimeMillis() + this.getFileExt(fileName);\n\t}\n\n\t/**\n\t * 根据字符串创建本地目录 并按照日期建立子目录返回\n\t * @param path \n\t * @return \n\t */\n\tprivate String getFolder(String path) {\n\t\tSimpleDateFormat formater = new SimpleDateFormat(\"yyyyMMdd\");\n\t\tpath += \"/\" + formater.format(new Date());\n\t\tFile dir = new File(this.getPhysicalPath(path));\n\t\tif (!dir.exists()) {\n\t\t\ttry {\n\t\t\t\tdir.mkdirs();\n\t\t\t} catch (Exception e) {\n\t\t\t\tthis.state = this.errorInfo.get(\"DIR\");\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t}\n\t\treturn path;\n\t}\n\n\t/**\n\t * 根据传入的虚拟路径获取物理路径\n\t * \n\t * @param path\n\t * @return\n\t */\n\tprivate String getPhysicalPath(String path) {\n\t\tString servletPath = this.request.getServletPath();\n\t\tString realPath = this.request.getSession().getServletContext()\n\t\t\t\t.getRealPath(servletPath);\n\t\treturn new File(realPath).getParent() +\"/\" +path;\n\t}\n\n\tpublic void setSavePath(String savePath) {\n\t\tthis.savePath = savePath;\n\t}\n\n\tpublic void setAllowFiles(String[] allowFiles) {\n\t\tthis.allowFiles = allowFiles;\n\t}\n\n\tpublic void setMaxSize(int size) {\n\t\tthis.maxSize = size;\n\t}\n\n\tpublic long getSize() {\n\t\treturn this.size;\n\t}\n\n\tpublic String getUrl() {\n\t\treturn this.url;\n\t}\n\n\tpublic String getFileName() {\n\t\treturn this.fileName;\n\t}\n\n\tpublic String getState() {\n\t\treturn this.state;\n\t}\n\t\n\tpublic String getTitle() {\n\t\treturn this.title;\n\t}\n\n\tpublic String getType() {\n\t\treturn this.type;\n\t}\n\n\tpublic String getOriginalName() {\n\t\treturn this.originalName;\n\t}\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/jsp/getContent.jsp",
    "content": "<%@ page language=\"java\" contentType=\"text/html; charset=utf-8\" pageEncoding=\"utf-8\"%>\n<script src=\"../third-party/jquery.min.js\"></script>\n<script src=\"../third-party/mathquill/mathquill.min.js\"></script>\n<link rel=\"stylesheet\" href=\"../third-party/mathquill/mathquill.css\"/>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/>\n<%\nrequest.setCharacterEncoding(\"utf-8\");\nresponse.setCharacterEncoding(\"utf-8\");\nString content = request.getParameter(\"myEditor\");\n\n\n\nresponse.getWriter().print(\"<div class='content'>\"+content+\"</div>\");\n\n%>"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/jsp/imageUp.jsp",
    "content": "    <%@ page language=\"java\" contentType=\"text/html; charset=utf-8\"\n             pageEncoding=\"utf-8\"%>\n<%--         <%@ page import=\"com.baidu.ueditor.um.Uploader\" %> --%>\n\n            <%\n//     request.setCharacterEncoding(\"utf-8\");\n// \tresponse.setCharacterEncoding(\"utf-8\");\n//     Uploader up = new Uploader(request);\n//     up.setSavePath(\"upload\");\n//     String[] fileType = {\".gif\" , \".png\" , \".jpg\" , \".jpeg\" , \".bmp\"};\n//     up.setAllowFiles(fileType);\n//     up.setMaxSize(10000); //单位KB\n//     up.upload();\n\n//     String callback = request.getParameter(\"callback\");\n\n//     String result = \"{\\\"name\\\":\\\"\"+ up.getFileName() +\"\\\", \\\"originalName\\\": \\\"\"+ up.getOriginalName() +\"\\\", \\\"size\\\": \"+ up.getSize() +\", \\\"state\\\": \\\"\"+ up.getState() +\"\\\", \\\"type\\\": \\\"\"+ up.getType() +\"\\\", \\\"url\\\": \\\"\"+ up.getUrl() +\"\\\"}\";\n\n//     result = result.replaceAll( \"\\\\\\\\\", \"\\\\\\\\\" );\n\n//     if( callback == null ){\n//         response.getWriter().print( result );\n//     }else{\n//         response.getWriter().print(\"<script>\"+ callback +\"(\" + result + \")</script>\");\n//     }\n    %>\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/lang/en/en.js",
    "content": "/**\n * English language package\n */\nUM.I18N['en'] = {\n    'labelMap':{\n        'anchor':'Anchor', 'undo':'Undo', 'redo':'Redo', 'bold':'Bold', 'indent':'Indent', 'snapscreen':'SnapScreen',\n        'italic':'Italic', 'underline':'Underline', 'strikethrough':'Strikethrough', 'subscript':'SubScript','fontborder':'text border',\n        'superscript':'SuperScript', 'formatmatch':'Format Match', 'source':'Source', 'blockquote':'BlockQuote',\n        'pasteplain':'PastePlain', 'selectall':'SelectAll', 'print':'Print', 'preview':'Preview',\n        'horizontal':'Horizontal', 'removeformat':'RemoveFormat', 'time':'Time', 'date':'Date',\n        'unlink':'Unlink', 'insertrow':'InsertRow', 'insertcol':'InsertCol', 'mergeright':'MergeRight', 'mergedown':'MergeDown',\n        'deleterow':'DeleteRow', 'deletecol':'DeleteCol', 'splittorows':'SplitToRows','insertcode':'insert code',\n        'splittocols':'SplitToCols', 'splittocells':'SplitToCells','deletecaption':'DeleteCaption','inserttitle':'InsertTitle',\n        'mergecells':'MergeCells', 'deletetable':'DeleteTable', 'cleardoc':'Clear', 'insertparagraphbeforetable':\"InsertParagraphBeforeTable\",\n        'fontfamily':'FontFamily', 'fontsize':'FontSize', 'paragraph':'Paragraph', 'image':'Image','edittable':'Edit Table', 'edittd':'Edit Td','link':'Link',\n        'emotion':'Emotion', 'spechars':'Spechars', 'searchreplace':'SearchReplace', 'map':'BaiduMap', 'gmap':'GoogleMap',\n        'video':'Video', 'help':'Help', 'justifyleft':'JustifyLeft', 'justifyright':'JustifyRight', 'justifycenter':'JustifyCenter',\n        'justifyjustify':'Justify', 'forecolor':'FontColor', 'backcolor':'BackColor', 'insertorderedlist':'OL',\n        'insertunorderedlist':'UL', 'fullscreen':'FullScreen', 'directionalityltr':'EnterFromLeft', 'directionalityrtl':'EnterFromRight',\n        'rowspacingtop':'RowSpacingTop', 'rowspacingbottom':'RowSpacingBottom', 'highlightcode':'Code', 'pagebreak':'PageBreak', 'insertframe':'Iframe', 'imagenone':'Default',\n        'imageleft':'ImageLeft', 'imageright':'ImageRight', 'attachment':'Attachment', 'imagecenter':'ImageCenter', 'wordimage':'WordImage',\n        'lineheight':'LineHeight','edittip':'EditTip','customstyle':'CustomStyle', 'scrawl':'Scrawl', 'autotypeset':'AutoTypeset',\n        'webapp':'WebAPP', 'touppercase':'UpperCase', 'tolowercase':'LowerCase','template':'Template','background':'Background','inserttable':'InsertTable',\n        'drafts': 'drafts', 'formula':'formula'\n    },\n    'paragraph':{'p':'Paragraph', 'h1':'Title 1', 'h2':'Title 2', 'h3':'Title 3', 'h4':'Title 4', 'h5':'Title 5', 'h6':'Title 6'},\n    'fontfamily':{\n        'songti':'Sim sun',\n        'kaiti':'Sim kai',\n        'heiti':'Sim hei',\n        'lishu':'Sim li',\n        'yahei': 'Microsoft yahei',\n        'andaleMono':'Andale mono',\n        'arial': 'Arial',\n        'arialBlack':'Arial black',\n        'comicSansMs':'Comic sans ms',\n        'impact':'Impact',\n        'timesNewRoman':'Times new roman'\n    },\n    'ok':\"OK\",\n    'cancel':\"Cancel\",\n    'closeDialog':\"closeDialog\",\n    'tableDrag':\"You must import the file uiUtils.js before drag! \",\n    'autofloatMsg':\"The plugin AutoFloat depends on EditorUI!\",\n    'anthorMsg':\"Link\",\n    'clearColor':'Clear',\n    'standardColor':'Standard color',\n    'themeColor':'Theme color',\n    'property':'Property',\n    'default':'Default',\n    'modify':'Modify',\n    'justifyleft':'Justify Left',\n    'justifyright':'Justify Right',\n    'justifycenter':'Justify Center',\n    'justify':'Default',\n    'clear':'Clear',\n    'anchorMsg':'Anchor',\n    'delete':'Delete',\n    'clickToUpload':\"Click to upload\",\n    'unset':\"Language hasn't been set!\",\n    't_row':'row',\n    't_col':'col',\n    'more':'More',\n    'pasteOpt':'Paste Option',\n    'pasteSourceFormat':\"Keep Source Formatting\",\n    'tagFormat':'Keep tag',\n    'pasteTextFormat':'Keep Text only',\n\n    //===============dialog i18N=======================\n    'image':{\n        'static':{\n            'lang_tab_local':\"Local Upload\",\n            'lang_tab_imgSearch':\"Network Pictures\",\n            'lang_input_dragTip':\"Support drag upload\",\n            'lang_btn_add':\"Add\"\n        },\n        'uploadError': 'Upload Error'\n    },\n    'emotion':{\n        'static':{\n            'lang_input_choice':'Choice',\n            'lang_input_Tuzki':'Tuzki',\n            'lang_input_lvdouwa':'LvDouWa',\n            'lang_input_BOBO':'BOBO',\n            'lang_input_babyCat':'BabyCat',\n            'lang_input_bubble':'Bubble',\n            'lang_input_youa':'YouA'\n        }\n    },\n    'gmap':{\n        'static':{\n            'lang_input_address':'Address:',\n            'lang_input_search':'Search',\n            'address':{'value':\"Beijing\"}\n        },\n        'searchError':'Unable to locate the address!'\n    },\n    'link':{\n        'static':{\n            'lang_input_text':'Text：',\n            'lang_input_url':'URL：',\n            'lang_input_title':'Title：',\n            'lang_input_target':'open in new window：'\n        },\n        'validLink':'Supports only effective when a link is selected',\n        'httpPrompt':'The hyperlink you enter should start with \"http|https|ftp://\"!'\n    },\n    'map':{\n        'static':{\n            'lang_city':\"City\",\n            'lang_address':\"Address\",\n            'city':{'value':\"Beijing\"},\n            'lang_search':\"Search\",\n            'lang_dynamicmap':\"Dynamic map\"\n        },\n        'cityMsg':\"Please enter the city name!\",\n        'errorMsg':\"Can't find the place!\"\n    },\n    'video':{\n        'static':{\n            'lang_tab_insertV':\"Video\",\n            'lang_video_url':\" URL \",\n            'lang_video_size':\"Video Size\",\n            'lang_videoW':\"Width\",\n            'lang_videoH':\"Height\",\n            'lang_alignment':\"Alignment\",\n            'videoSearchTxt':{'value':\"Enter the search keyword!\"},\n            'videoType':{'options':[\"All\", \"Hot\", \"Entertainment\", \"Funny\", \"Sports\", \"Science\", \"variety\"]},\n            'videoSearchBtn':{'value':\"Search in Baidu\"},\n            'videoSearchReset':{'value':\"Clear result\"}\n        },\n        'numError':\"Please enter the correct Num. e.g 123,400\",\n        'floatLeft':\"Float left\",\n        'floatRight':\"Float right\",\n        'default':\"Default\",\n        'block':\"Display in block\",\n        'urlError':\"The video url format may be wrong!\",\n        'loading':\" &nbsp;The video is loading, please wait…\",\n        'clickToSelect':\"Click to select\",\n        'goToSource':'Visit source video ',\n        'noVideo':\" &nbsp; &nbsp;Sorry,can't find the video,please try again!\"\n    },\n    'formula':{\n        'static':{\n            'lang_tab_common':'Common',\n            'lang_tab_symbol':'Symbol',\n            'lang_tab_letter':'Letter'\n        }\n    }\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/lang/zh-cn/zh-cn.js",
    "content": "/**\n * 中文语言包\n */\nUM.I18N['zh-cn'] = {\n    'labelMap':{\n        'anchor':'锚点', 'undo':'撤销', 'redo':'重做', 'bold':'加粗', 'indent':'首行缩进', 'snapscreen':'截图',\n        'italic':'斜体', 'underline':'下划线', 'strikethrough':'删除线', 'subscript':'下标','fontborder':'字符边框',\n        'superscript':'上标', 'formatmatch':'格式刷', 'source':'源代码', 'blockquote':'引用',\n        'pasteplain':'纯文本粘贴模式', 'selectall':'全选', 'print':'打印', 'preview':'预览',\n        'horizontal':'分隔线', 'removeformat':'清除格式', 'time':'时间', 'date':'日期',\n        'unlink':'取消链接', 'insertrow':'前插入行', 'insertcol':'前插入列', 'mergeright':'右合并单元格', 'mergedown':'下合并单元格',\n        'deleterow':'删除行', 'deletecol':'删除列', 'splittorows':'拆分成行', 'splittocols':'拆分成列', 'splittocells':'完全拆分单元格',\n        'mergecells':'合并多个单元格', 'deletetable':'删除表格', 'cleardoc':'清空文档','insertparagraphbeforetable':\"表格前插入行\",'insertcode':'代码语言','fontfamily':'字体', 'fontsize':'字号', 'paragraph':'段落格式', 'image':'图片',\n        'edittable':'表格属性','edittd':'单元格属性', 'link':'超链接','emotion':'表情', 'spechars':'特殊字符', 'searchreplace':'查询替换', 'map':'百度地图', 'gmap':'Google地图',\n        'video':'视频', 'help':'帮助', 'justifyleft':'居左对齐', 'justifyright':'居右对齐', 'justifycenter':'居中对齐',\n        'justifyjustify':'两端对齐', 'forecolor':'字体颜色', 'backcolor':'背景色', 'insertorderedlist':'有序列表',\n        'insertunorderedlist':'无序列表', 'fullscreen':'全屏', 'directionalityltr':'从左向右输入', 'directionalityrtl':'从右向左输入',\n        'rowspacingtop':'段前距', 'rowspacingbottom':'段后距', 'highlightcode':'插入代码', 'pagebreak':'分页', 'insertframe':'插入Iframe', 'imagenone':'默认',\n        'imageleft':'左浮动', 'imageright':'右浮动', 'attachment':'附件', 'imagecenter':'居中', 'wordimage':'图片转存',\n        'lineheight':'行间距','edittip' :'编辑提示','customstyle':'自定义标题', 'autotypeset':'自动排版', 'webapp':'百度应用',\n        'touppercase':'字母大写', 'tolowercase':'字母小写','background':'背景','template':'模板','scrawl':'涂鸦','music':'音乐','inserttable':'插入表格',\n        'drafts': '草稿箱', 'formula':'数学公式'\n\n\n    },\n    'paragraph':{'p':'段落', 'h1':'标题 1', 'h2':'标题 2', 'h3':'标题 3', 'h4':'标题 4', 'h5':'标题 5', 'h6':'标题 6'},\n    'fontfamily':{\n        'songti':'宋体',\n        'kaiti':'楷体',\n        'heiti':'黑体',\n        'lishu':'隶书',\n        'yahei':'微软雅黑',\n        'andaleMono':'andale mono',\n        'arial': 'arial',\n        'arialBlack':'arial black',\n        'comicSansMs':'comic sans ms',\n        'impact':'impact',\n        'timesNewRoman':'times new roman'\n    },\n    'ok':\"确认\",\n    'cancel':\"取消\",\n    'closeDialog':\"关闭对话框\",\n    'tableDrag':\"表格拖动必须引入uiUtils.js文件！\",\n    'autofloatMsg':\"工具栏浮动依赖编辑器UI，您首先需要引入UI文件!\",\n    'anthorMsg':\"链接\",\n    'clearColor':'清空颜色',\n    'standardColor':'标准颜色',\n    'themeColor':'主题颜色',\n    'property':'属性',\n    'default':'默认',\n    'modify':'修改',\n    'justifyleft':'左对齐',\n    'justifyright':'右对齐',\n    'justifycenter':'居中',\n    'justify':'默认',\n    'clear':'清除',\n    'anchorMsg':'锚点',\n    'delete':'删除',\n    'clickToUpload':\"点击上传\",\n    'unset':'尚未设置语言文件',\n    't_row':'行',\n    't_col':'列',\n    'more':'更多',\n    'pasteOpt':'粘贴选项',\n    'pasteSourceFormat':\"保留源格式\",\n    'tagFormat':'只保留标签',\n    'pasteTextFormat':'只保留文本',\n\n    //===============dialog i18N=======================\n    'image':{\n        'static':{\n            'lang_tab_local':\"本地上传\",\n            'lang_tab_imgSearch':\"网络图片\",\n            'lang_input_dragTip':\"支持图片拖拽上传\",\n            'lang_btn_add':\"添加\"\n        },\n        'uploadError': '上传出错'\n    },\n    'emotion':{\n        'static':{\n            'lang_input_choice':'精选',\n            'lang_input_Tuzki':'兔斯基',\n            'lang_input_BOBO':'BOBO',\n            'lang_input_lvdouwa':'绿豆蛙',\n            'lang_input_babyCat':'baby猫',\n            'lang_input_bubble':'泡泡',\n            'lang_input_youa':'有啊'\n        }\n    },\n    'gmap':{\n        'static':{\n            'lang_input_address':'地址',\n            'lang_input_search':'搜索',\n            'address':{'value':\"北京\"}\n        },\n        'searchError':'无法定位到该地址!'\n    },\n    'link':{\n        'static':{\n            'lang_input_text':'文本内容：',\n            'lang_input_url':'链接地址：',\n            'lang_input_title':'标题：',\n            'lang_input_target':'是否在新窗口打开：'\n        },\n        'validLink':'只支持选中一个链接时生效',\n        'httpPrompt':'您输入的超链接中不包含http等协议名称，默认将为您添加http://前缀'\n    },\n    'map':{\n        'static':{\n            'lang_city':\"城市\",\n            'lang_address':\"地址\",\n            'city':{'value':\"北京\"},\n            'lang_search':\"搜索\",\n            'lang_dynamicmap':\"插入动态地图\"\n        },\n        'cityMsg':\"请选择城市\",\n        'errorMsg':\"抱歉，找不到该位置！\"\n    },\n    'video':{\n        'static':{\n            'lang_tab_insertV':\"插入视频\",\n            'lang_video_url':\"视频网址\",\n            'lang_video_size':\"视频尺寸\",\n            'lang_videoW':\"宽度\",\n            'lang_videoH':\"高度\",\n            'lang_alignment':\"对齐方式\",\n            'videoSearchTxt':{'value':\"请输入搜索关键字！\"},\n            'videoType':{'options':[\"全部\", \"热门\", \"娱乐\", \"搞笑\", \"体育\", \"科技\", \"综艺\"]},\n            'videoSearchBtn':{'value':\"百度一下\"},\n            'videoSearchReset':{'value':\"清空结果\"}\n        },\n        'numError':\"请输入正确的数值，如123,400\",\n        'floatLeft':\"左浮动\",\n        'floatRight':\"右浮动\",\n        'default':\"默认\",\n        'block':\"独占一行\",\n        'urlError':\"输入的视频地址有误，请检查后再试！\",\n        'loading':\" &nbsp;视频加载中，请等待……\",\n        'clickToSelect':\"点击选中\",\n        'goToSource':'访问源视频',\n        'noVideo':\" &nbsp; &nbsp;抱歉，找不到对应的视频，请重试！\"\n    },\n    'formula':{\n        'static':{\n            'lang_tab_common':'常用公式',\n            'lang_tab_symbol':'符号',\n            'lang_tab_letter':'字母'\n        }\n    }\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/themes/default/css/umeditor.css",
    "content": ".edui-container{\n    position: relative;\n    border: 1px solid #d4d4d4;\n    box-shadow: 2px 2px 5px #d3d6da;\n    background-color: #fff;\n}\n.edui-container .edui-toolbar{\n    position: relative;\n    width:auto;\n    border-bottom: 1px solid #e1e1e1;\n    box-shadow: 2px 2px 5px #d3d6da;\n    background-color: #fafafa;\n    z-index: 99999;\n}\n.edui-toolbar .edui-btn-toolbar{\n    position: relative;\n    padding: 5px;\n}\n.edui-container .edui-editor-body{\n    background-color: #fff;\n}\n.edui-editor-body .edui-body-container{\n}\n\n.edui-editor-body .edui-body-container p{margin:5px 0;}\n.edui-editor-body .edui-body-container{\n    border:0;\n    outline:none;\n    cursor:text;\n    padding:0 10px 0;\n    overflow:auto;\n    display:block;\n    word-wrap:break-word;\n    font-size:16px;\n    font-family:sans-serif;\n}\n.edui-editor-body.focus{border:1px solid #5c9dff}\n.edui-editor-body table{margin:10px 0 10px;border-collapse:collapse;display:table;}\n.edui-editor-body td{padding: 5px 10px;border: 1px solid #DDD;}\n.edui-editor-body iframe.mathquill-embedded-latex{\n    border: 0px;\n    padding: 0px;\n    display: inline;\n    margin: 0px;\n    background: none;\n    vertical-align: middle;\n    width: 0px;\n    height: 0px;\n}\n/*普通按钮*/\n.edui-btn-toolbar .edui-btn{\n    position: relative;\n    display: inline-block;\n    vertical-align: top;\n    *display: inline;\n    *zoom:1;\n    width:auto;\n    margin: 0 1px;\n    padding:1px;\n    border:none;\n    background: none;\n}\n.edui-btn-toolbar .edui-btn .edui-icon{\n    width: 20px;\n    height: 20px;\n    margin: 0;\n    padding:0;\n    background-repeat: no-repeat;\n    background-image: url(../images/icons.png);\n    background-image: url(../images/icons.gif) \\9;\n}\n\n/*状态反射*/\n.edui-btn-toolbar .edui-btn.edui-hover,\n.edui-btn-toolbar .edui-btn.edui-active{\n    background-color: #d5e1f2;\n    padding: 0;\n    border: 1px solid #a3bde3;\n    _z-index: 1;\n}\n.edui-btn-toolbar .edui-btn.edui-disabled{\n    opacity: 0.3;\n    filter: alpha(opacity = 30);\n}\n.edui-btn-toolbar .edui-btn .edui-icon-source {\n    background-position:-260px -0px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-undo {\n    background-position: -160px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-redo {\n    background-position: -100px 0;\n}\n.edui-btn-toolbar  .edui-btn .edui-icon-bold{\n    background-position: 0 0;\n}\n.edui-btn-toolbar  .edui-btn .edui-icon-italic {\n    background-position: -60px 0;\n}\n.edui-btn-toolbar  .edui-btn .edui-icon-underline  {\n    background-position: -140px 0\n}\n.edui-btn-toolbar .edui-btn .edui-icon-strikethrough {\n    background-position: -120px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-superscript {\n    background-position: -620px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-subscript {\n    background-position:  -600px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-font, .edui-btn-toolbar .edui-btn .edui-icon-forecolor {\n    background-position: -720px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-backcolor {\n    background-position: -760px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-insertorderedlist {\n    background-position: -80px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-insertunorderedlist {\n    background-position:   -20px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-selectall {\n    background-position: -400px -20px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-cleardoc {\n    background-position: -520px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-paragraph {\n    background-position: -140px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-fontfamily {\n    background-position: -140px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-fontsize {\n    background-position: -140px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifyleft {\n    background-position: -460px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifycenter {\n    background-position: -420px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifyright {\n    background-position:-480px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-justifyjustify {\n    background-position: -440px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-link {\n    background-position: -500px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-unlink {\n    background-position: -640px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-image {\n    background-position: -380px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-emotion {\n    background-position: -60px -20px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-video {\n    background-position: -320px -20px;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-map {\n    background-position:  -40px -40px;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-gmap {\n    background-position:  -260px -40px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-horizontal {\n    background-position: -360px 0;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-print {\n    background-position: -440px -20px;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-preview {\n    background-position: -420px -20px;\n}\n\n.edui-btn-toolbar .edui-btn-fullscreen{\n    float:right;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-fullscreen {\n    background-position: -100px -20px;\n}\n\n.edui-btn-toolbar .edui-btn .edui-icon-removeformat {\n    background-position: -580px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-drafts {\n    background-position: -560px 0;\n}\n.edui-btn-toolbar .edui-btn .edui-icon-formula {\n    background-position: -80px -20px;\n}\n.edui-btn-toolbar .edui-splitbutton{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    margin:0 2px;\n}\n.edui-splitbutton .edui-btn{\n    margin: 0;\n}\n.edui-splitbutton .edui-caret{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    width: 8px;\n    height: 20px;\n    background: url(../images/icons.png) -741px 0;\n    _background: url(../images/icons.gif) -741px 0;\n}\n\n.edui-btn-toolbar .edui-splitbutton,\n.edui-btn-toolbar .edui-splitbutton{\n    _border: none;\n}\n\n/*状态反射*/\n.edui-btn-toolbar .edui-splitbutton.edui-hover .edui-btn{\n    background-color: #d5e1f2;\n}\n\n.edui-btn-toolbar .edui-splitbutton.edui-disabled{\n    opacity: 0.3;\n    filter: alpha(opacity = 30);\n}\n.edui-btn-toolbar .edui-splitbutton.edui-disabled .edui-caret{\n    opacity: 0.3 \\0;\n    filter: alpha(opacity = 30)\\0;\n}\n\n\n.edui-btn-toolbar .edui-combobox{\n    border: 1px solid #CCC;\n    padding:0;\n    margin:0 2px;\n    line-height: 20px;\n}\n.edui-combobox .edui-button-label{\n    position: relative;\n    display: inline-block;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    width:60px;\n    height:20px;\n    line-height: 20px;\n    padding: 2px;\n    margin: 0;\n    font-size: 12px;\n    text-align: center;\n    cursor: default;\n}\n.edui-combobox  .edui-button-spacing{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    height:20px;\n    margin: 0;\n    padding:0 3px;\n}\n.edui-combobox .edui-caret{\n    position: relative;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    height:20px;\n    width: 12px;\n    margin: 0;\n    padding: 0;\n    background: url(../images/icons.png) -741px 0;\n    _background: url(../images/icons.gif) -741px 0;\n}\n.edui-btn-toolbar .edui-combobox.edui-disabled{\n    opacity: 0.2;\n    filter: alpha(opacity = 20);\n}\n.edui-btn-toolbar .edui-combobox.edui-disabled .edui-button-label,\n.edui-btn-toolbar .edui-combobox.edui-disabled .edui-caret{\n    opacity: 0.2 \\0;\n    filter: alpha(opacity = 20)\\0;\n}\n.edui-combobox-menu{\n    position: absolute;\n    top: 100%;\n    left: 0;\n    display: none;\n    list-style: none;\n    text-decoration: none;\n    margin: 0;\n    padding:5px;\n    background-color: #ffffff;\n    border: 1px solid #ccc;\n    font-size: 12px;\n    box-shadow: 2px 2px 5px #d3d6da;\n    min-width: 160px;\n    _width: 160px;\n}\n\n.edui-combobox-menu .edui-combobox-item {\n    display: block;\n    border: 1px solid white;\n}\n\n.edui-combobox-menu .edui-combobox-item-label {\n    height: 25px;\n    line-height: 25px;\n    display: inline-block;\n    _display: inline;\n    _zoom: 1;\n    margin-left: 10px;\n}\n\n.edui-combobox-menu .edui-combobox-item:hover, .edui-combobox-menu .edui-combobox-stack-item:hover, .edui-combobox-menu .edui-combobox-item-hover {\n    background-color: #d5e1f2;\n    padding: 0;\n    border: 1px solid #a3bde3;\n}\n\n.edui-combobox-menu .edui-combobox-item .edui-combobox-icon {\n    display: inline-block;\n    *zoom: 1;\n    *display: inline;\n    width: 24px;\n    height: 25px;\n    background: red;\n    vertical-align: bottom;\n    background: url(../images/ok.gif) no-repeat 1000px 1000px;\n}\n\n.edui-combobox-menu .edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n\n.edui-combobox-menu .edui-combobox-item-separator {\n    min-width: 160px;\n    height: 1px;\n    line-height: 1px;\n    overflow: hidden;\n    background: #d3d3d3;\n    margin: 5px 0;\n    *margin-top: -8px;\n}\n\n/* 字体样式校正 */\n\n.edui-combobox-fontsize .edui-combobox-item-0.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-1.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-2.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-3.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n/* 24 */\n.edui-combobox-fontsize .edui-combobox-item-4 .edui-combobox-item-label {\n    height: 27px;\n    line-height: 27px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-4.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 5px;\n}\n\n/* 32 */\n.edui-combobox-fontsize .edui-combobox-item-5 .edui-combobox-item-label {\n    height: 31px;\n    line-height: 31px;\n}\n\n.edui-combobox-fontsize .edui-combobox-item-5.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 4px;\n}\n\n\n/* 48 */\n.edui-combobox-fontsize .edui-combobox-item-6 .edui-combobox-item-label {\n    height: 47px;\n    line-height: 47px;\n}\n\n/*.edui-combobox-fontsize .edui-combobox-item-6 .edui-combobox-icon {*/\n    /*height: 25px;*/\n    /*margin-bottom: 11px;*/\n/*}*/\n\n/*.edui-combobox-fontsize .edui-combobox-item-6.edui-combobox-checked .edui-combobox-icon {*/\n    /*background-position: 10px 7px;*/\n/*}*/\n\n\n/* 段落样式校正 */\n/* h1 */\n.edui-combobox-paragraph .edui-combobox-item-1 .edui-combobox-item-label {\n    font-size: 32px;\n    height: 36px;\n    line-height: 36px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-1 .edui-combobox-icon {\n    height: 25px;\n    margin-bottom: 5px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-1.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 7px;\n}\n\n/* h2 */\n.edui-combobox-paragraph .edui-combobox-item-2 .edui-combobox-item-label {\n    font-size: 28px;\n    height: 27px;\n    line-height: 27px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-2 .edui-combobox-icon {\n    margin-bottom: 5px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-2.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 10px;\n}\n\n/* h3 */\n.edui-combobox-paragraph .edui-combobox-item-3 .edui-combobox-item-label {\n    font-size: 24px;\n    height: 25px;\n    line-height: 25px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-3 .edui-combobox-icon {\n    height: 25px;\n    margin-bottom: 5px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-3.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 11px;\n}\n\n/* h4 */\n.edui-combobox-paragraph .edui-combobox-item-4 .edui-combobox-item-label {\n    font-size: 18px;\n    height: 25px;\n    line-height: 25px;\n}\n\n.edui-combobox-paragraph .edui-combobox-item-4.edui-combobox-checked .edui-combobox-icon {\n    background-position: 10px 6px;\n}\n\n/* h5 */\n.edui-combobox-paragraph .edui-combobox-item-5 .edui-combobox-item-label {\n    font-size: 16px;\n}\n\n/* h6 */\n.edui-combobox-paragraph .edui-combobox-item-6 .edui-combobox-item-label {\n    font-size: 12px;\n}\n.edui-modal {\n    position: fixed;\n    _position: absolute;\n    top: 10%;\n    left: 50%;\n    border: 1px solid #acacac;\n    box-shadow: 2px 2px 5px #d3d6da;\n    background-color: #ffffff;\n    outline: 0;\n}\n.edui-modal-header {\n    padding: 5px 10px;\n    border-bottom: 1px solid #eee;\n}\n.edui-modal-header .edui-close {\n    float: right;\n    width:20px;\n    height:20px;\n    margin-top: 2px;\n    padding: 1px;\n    border: 0;\n    background: url(\"../images/close.png\") no-repeat center center;\n    cursor: pointer;\n}\n.edui-modal-header .edui-close.edui-hover {\n    background-color: #d5e1f2;\n    padding:0;\n    border: 1px solid #a3bde3;\n}\n.edui-modal-header .edui-title {\n    margin: 0;\n    line-height: 25px;\n    font-size: 20px;\n}\n.edui-modal-body {\n    position: relative;\n    max-height: 400px;\n    font-size: 12px;\n    overflow-y: auto;\n}\n.edui-modal-footer {\n    float: right;\n    padding: 5px 15px 15px;\n    overflow: hidden;\n}\n.edui-modal-footer .edui-btn {\n    float: left;\n    height: 24px;\n    width: 96px;\n    margin: 0 10px;\n    background-color: #ffffff;\n    padding: 0;\n    border: 1px solid #ababab;\n    font-size: 12px;\n    line-height: 24px;\n    text-align: center;\n    cursor: pointer;\n}\n.edui-modal-footer .edui-btn.edui-hover{\n    background-color: #d5e1f2;\n    border: 1px solid #a3bde3;\n}\n.edui-modal-backdrop{\n    opacity: 0.5;\n    filter: alpha(opacity=50);\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    background-color: #c6c6c6;\n}\n\n.edui-modal .edui-modal-tip {\n    color: red;\n    position: absolute;\n    bottom: 10px;\n    left: 10px;\n    height: 30px;\n    line-height: 30px;\n    display: none;\n}\n/*图片上传*/\n.edui-dialog-image-body {\n    width: 700px;\n    height: 400px;\n}\n/*插入视频*/\n.edui-dialog-video-body{\n    width: 600px;\n    height: 350px;\n}\n/*谷歌地图*/\n.edui-dialog-gmap-body{\n    width:550px;\n    height: 400px;\n}\n\n/*百度地图*/\n.edui-dialog-map-body{\n    width:580px;\n    height: 400px;\n}\n\n/*链接*/\n.edui-dialog-link-body{\n    width:400px;\n    height:200px;\n}\n.edui-popup{\n    display: none;\n    background: url('../images/pop-bg.png') repeat #fff;\n    padding: 2px;\n}\n.edui-popup .edui-popup-body{\n    border: 1px solid #bfbfbf;\n    background-color: #fff;\n}\n.edui-popup .edui-popup-caret{\n    width: 21px;\n    height: 11px;\n}\n.edui-popup .edui-popup-caret.up{\n    background:url('../images/caret.png') no-repeat 0 0;\n}\n.edui-popup .edui-popup-caret.down{\n    background:url('../images/caret.png') no-repeat 0 0;\n}\n\n\n.edui-tab-nav {\n    margin: 0;\n    padding:0;\n    border-bottom: 1px solid #ddd;\n    list-style: none;\n    height:30px;\n}\n.edui-tab-nav .edui-tab-item {\n    float:left;\n    margin-bottom: -1px;\n    margin-top: 1px;\n    margin-top: 0\\9;\n}\n.edui-tab-nav .edui-tab-item .edui-tab-text{\n    display: block;\n    padding:8px 12px;\n    border: 1px solid transparent;\n    color: #0088cc;\n    text-decoration: none;\n    outline: 0;\n    _border:1px solid #fff ;\n    cursor: pointer;\n}\n.edui-tab-nav .edui-tab-item .edui-tab-text:FOCUS {\n    outline: none;\n}\n.edui-tab-nav .edui-tab-item.edui-active  .edui-tab-text{\n    border: 1px solid #ddd;\n    border-bottom-color: transparent;\n    background-color: #fff;\n    padding:8px 12px;\n    color: #555555;\n    cursor: default;\n}\n.edui-tab-content .edui-tab-pane{\n    padding: 1px;\n    position: relative;\n    display: none;\n    background-color: #fff;\n    clear: both;\n}\n.edui-tab-content .edui-tab-pane.edui-active{\n    display: block;\n}\n\n\n.edui-btn-toolbar .edui-tooltip{\n    position: absolute;\n    padding: 5px 0;\n    display: none;\n    /*opacity: 0.8;*/\n    /*filter: alpha(opacity=80);*/\n    z-index: 99999;\n}\n.edui-tooltip .edui-tooltip-arrow{\n    position: absolute;\n    top: 0;\n    _top: -2px;\n    left: 50%;\n    width: 0;\n    height: 0;\n    padding: 0;\n    font-size:0;\n    margin-left: -5px;\n    border-color: transparent;\n    border-style: dashed dashed solid dashed;\n    border-bottom-color: #000000;\n    border-width: 0 5px 5px;\n    background: transparent;\n}\n.edui-tooltip .edui-tooltip-inner{\n    padding: 6px;\n    color: #ffffff;\n    text-align: center;\n    text-decoration: none;\n    font-size: 10px;\n    background-color: #000000;\n    white-space: nowrap;\n    line-height: 12px;\n}\n.edui-splitbutton-color-label {\n    width: 16px;\n    height: 3px;\n    position: absolute;\n    bottom: 2px;\n    left: 50%;\n    margin-left: -8px;\n    overflow: hidden;\n    line-height: 3px;\n}\n.edui-popup .edui-colorpicker {\n    margin: 10px;\n    font-size: 12px;\n}\n.edui-colorpicker .edui-colorpicker-topbar{\n    height: 27px;\n    width: 200px;\n    overflow: hidden;\n}\n.edui-colorpicker .edui-colorpicker-topbar .edui-colorpicker-preview{\n    height: 20px;\n    border: 1px inset black;\n    margin-left: 1px;\n    width: 128px;\n    float: left;\n}\n.edui-colorpicker .edui-colorpicker-topbar .edui-colorpicker-nocolor{\n    float: right;\n    margin-right: 1px;\n    font-size: 12px;\n    line-height: 14px;\n    height: 14px;\n    border: 1px solid #333;\n    padding: 3px 5px;\n    cursor: pointer;\n}\n.edui-colorpicker table{\n    border-collapse: collapse;\n    border-spacing: 2px;\n}\n.edui-colorpicker tr.edui-colorpicker-firstrow{\n    height: 30px;\n}\n.edui-colorpicker table td{\n    padding: 0 2px;\n}\n.edui-colorpicker table td .edui-colorpicker-colorcell{\n    display: block;\n    text-decoration: none;\n    color: black;\n    width: 14px;\n    height: 14px;\n    margin: 0;\n    cursor: pointer;\n}\n.edui-toolbar .edui-separator{\n    width: 2px;\n    height: 20px;\n    padding: 1px 2px;\n    background: url(../images/icons.png) -179px 1px;\n    background: url(../images/icons.gif) -179px 1px \\9;\n    display: inline-block ;\n    vertical-align: top;\n    *display: inline ;\n    *zoom:1;\n    border:none;\n\n}\n\n/* 解决UMEditor中图片上传过大引起的超过边框问题 */\nimg {\n    max-width: 95%;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/third-party/mathquill/font/stixgeneral-bundle/STIXFontLicense2010.txt",
    "content": "STIX Font License\n\n24 May 2010\n\nCopyright (c) 2001-2010 by the STI Pub Companies, consisting of the American \nInstitute of Physics, the American Chemical Society, the American Mathematical \nSociety, the American Physical Society, Elsevier, Inc., and The Institute of \nElectrical and Electronic Engineers, Inc. (www.stixfonts.org), with Reserved \nFont Name STIX Fonts, STIX Fonts (TM) is a  trademark of The Institute of \nElectrical and Electronics Engineers, Inc.      \n\nPortions copyright (c) 1998-2003 by MicroPress, Inc. (www.micropress-inc.com), \nwith Reserved Font Name TM Math. To obtain additional mathematical fonts, please \ncontact MicroPress, Inc., 68-30 Harrow Street, Forest Hills, NY 11375, USA, \nPhone: (718) 575-1816. \n\nPortions copyright (c) 1990 by Elsevier, Inc. \n\nThis Font Software is licensed under the SIL Open Font License, Version 1.1. \nThis license is copied below, and is also available with a FAQ at: \nhttp://scripts.sil.org/OFL \n\n--------------------------------------------------------------------------- \nSIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 \n--------------------------------------------------------------------------- \n\nPREAMBLE \n\nThe goals of the Open Font License (OFL) are to stimulate worldwide development \nof collaborative font projects, to support the font creation efforts of academic \nand linguistic communities, and to provide a free and open framework in which \nfonts may be shared and improved in partnership with others. \n\nThe OFL allows the licensed fonts to be used, studied, modified and redistributed \nfreely as long as they are not sold by themselves. The fonts, including any \nderivative works, can be bundled, embedded, redistributed and/or sold with any \nsoftware provided that any reserved names are not used by derivative works. The \nfonts and derivatives, however, cannot be released under any other type of license. \nThe requirement for fonts to remain under this license does not apply to any \ndocument created using the fonts or their derivatives. \n\nDEFINITIONS \n\n\"Font Software\" refers to the set of files released by the Copyright Holder(s) under\nthis license and clearly marked as such. This may include source files, build \nscripts and documentation. \n\n\"Reserved Font Name\" refers to any names specified as such after the copyright \nstatement(s). \n\n\"Original Version\" refers to the collection of Font Software components as \ndistributed by the Copyright Holder(s). \n\n\"Modified Version\" refers to any derivative made by adding to, deleting, or \nsubstituting -- in part or in whole -- any of the components of the Original Version, \nby changing formats or by porting the Font Software to a new environment. \n\n\"Author\" refers to any designer, engineer, programmer, technical writer or other \nperson who contributed to the Font Software.\n\nPERMISSION & CONDITIONS \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of the \nFont Software, to use, study, copy, merge, embed, modify, redistribute, and sell \nmodified and unmodified copies of the Font Software, subject to the following \nconditions: \n\n1) Neither the Font Software nor any of its individual components, in Original or \nModified Versions, may be sold by itself. \n\n2) Original or Modified Versions of the Font Software may be bundled, redistributed \nand/or sold with any software, provided that each copy contains the above copyright \nnotice and this license. These can be included either as stand-alone text files, \nhuman-readable headers or in the appropriate machine-readable metadata fields within \ntext or binary files as long as those fields can be easily viewed by the user. \n\n3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless \nexplicit written permission is granted by the corresponding Copyright Holder. This \nrestriction only applies to the primary font name as presented to the users. \n\n4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall \nnot be used to promote, endorse or advertise any Modified Version, except to \nacknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with \ntheir explicit written permission. \n\n5) The Font Software, modified or unmodified, in part or in whole, must be distributed \nentirely under this license, and must not be distributed under any other license. The \nrequirement for fonts to remain under this license does not apply to any document \ncreated using the Font Software. \n\nTERMINATION \n\nThis license becomes null and void if any of the above conditions are not met. \n\nDISCLAIMER \n\nTHE FONT SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, \nINCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A \nPARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER \nRIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \nLIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, \nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR \nINABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/third-party/mathquill/mathquill.css",
    "content": "/*\n * LaTeX Math in pure HTML and CSS -- No images whatsoever\n * v0.xa\n * by Jay and Han\n * Lesser GPL Licensed: http: //www.gnu.org/licenses/lgpl.html\n *\n * This file is automatically included by mathquill.js\n *\n */\n@font-face {\n  font-family: Symbola;\n  src: url(font/Symbola.eot);\n  src: local(\"Symbola Regular\"), local(\"Symbola\"), url(font/Symbola.ttf) format(\"truetype\"), url(font/Symbola.otf) format(\"opentype\"), url(font/Symbola.svg#Symbola) format(\"svg\");\n}\n.mathquill-editable {\n  display: -moz-inline-box;\n  display: inline-block;\n  white-space: pre-wrap;\n}\n.mathquill-editable .cursor {\n  border-left: 1px solid black;\n  margin-right: -1px;\n  position: relative;\n  z-index: 1;\n  padding: 0;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-editable .cursor.blink {\n  visibility: hidden;\n}\n.mathquill-editable,\n.mathquill-embedded-latex .mathquill-editable {\n  border: 1px solid gray;\n  padding: 2px;\n}\n.mathquill-embedded-latex .mathquill-editable {\n  margin: 1px;\n}\n.mathquill-editable.hasCursor,\n.mathquill-editable .hasCursor {\n  -webkit-box-shadow: #68b4df 0 0 3px 2px;\n  -moz-box-shadow: #68b4df 0 0 3px 2px;\n  box-shadow: #68b4df 0 0 3px 2px;\n}\n.mathquill-editable .latex-command-input {\n  color: inherit;\n  font-family: \"Courier New\", monospace;\n  border: 1px solid gray;\n  padding-right: 1px;\n  margin-right: 1px;\n  margin-left: 2px;\n}\n.mathquill-editable .latex-command-input.empty {\n  background: transparent;\n}\n.mathquill-editable .latex-command-input.hasCursor {\n  border-color: ActiveBorder;\n}\n.mathquill-editable.empty:after,\n.mathquill-textbox:after,\n.mathquill-rendered-math .empty:after {\n  visibility: hidden;\n  content: 'c';\n}\n.mathquill-editable .cursor:only-child:after,\n.mathquill-editable .textarea + .cursor:last-child:after {\n  visibility: hidden;\n  content: 'c';\n}\n.mathquill-textbox {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.mathquill-rendered-math {\n  font-variant: normal;\n  font-weight: normal;\n  font-style: normal;\n  font-size: 115%;\n  line-height: 1;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math .non-leaf,\n.mathquill-rendered-math .scaled {\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math var,\n.mathquill-rendered-math .text,\n.mathquill-rendered-math .nonSymbola {\n  font-family: \"Times New Roman\", Symbola, serif;\n  line-height: .9;\n}\n.mathquill-rendered-math * {\n  font-size: inherit;\n  line-height: inherit;\n  margin: 0;\n  padding: 0;\n  border-color: black;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n.mathquill-rendered-math .empty {\n  background: #ccc;\n}\n.mathquill-rendered-math.empty {\n  background: transparent;\n}\n.mathquill-rendered-math .text {\n  font-size: 87%;\n}\n.mathquill-rendered-math .font {\n  font: 1em \"Times New Roman\", Symbola, serif;\n}\n.mathquill-rendered-math .font * {\n  font-family: inherit;\n  font-style: inherit;\n}\n.mathquill-rendered-math b,\n.mathquill-rendered-math b.font {\n  font-weight: bolder;\n}\n.mathquill-rendered-math var,\n.mathquill-rendered-math i,\n.mathquill-rendered-math i.font {\n  font-syle: italic;\n}\n.mathquill-rendered-math var.florin {\n  margin: 0 -0.1em;\n}\n.mathquill-rendered-math big {\n  font-size: 125%;\n}\n.mathquill-rendered-math .roman {\n  font-style: normal;\n}\n.mathquill-rendered-math .sans-serif {\n  font-family: sans-serif, Symbola, serif;\n}\n.mathquill-rendered-math .monospace {\n  font-family: monospace, Symbola, serif;\n}\n.mathquill-rendered-math .overline {\n  border-top: 1px solid black;\n  margin-top: 1px;\n}\n.mathquill-rendered-math .underline {\n  border-bottom: 1px solid black;\n  margin-bottom: 1px;\n}\n.mathquill-rendered-math .binary-operator {\n  padding: 0 0.2em;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math .unary-operator {\n  padding-left: 0.2em;\n}\n.mathquill-rendered-math sup,\n.mathquill-rendered-math sub {\n  position: relative;\n  font-size: 90%;\n}\n.mathquill-rendered-math sup .binary-operator,\n.mathquill-rendered-math sub .binary-operator {\n  padding: 0 .1em;\n}\n.mathquill-rendered-math sup .unary-operator,\n.mathquill-rendered-math sub .unary-operator {\n  padding-left: .1em;\n}\n.mathquill-rendered-math sup.limit,\n.mathquill-rendered-math sub.limit,\n.mathquill-rendered-math sup.nthroot,\n.mathquill-rendered-math sub.nthroot {\n  font-size: 80%;\n}\n.mathquill-rendered-math sup .fraction,\n.mathquill-rendered-math sub .fraction {\n  font-size: 70%;\n  vertical-align: -0.4em;\n}\n.mathquill-rendered-math sup .numerator,\n.mathquill-rendered-math sub .numerator {\n  padding-bottom: 0;\n}\n.mathquill-rendered-math sup .denominator,\n.mathquill-rendered-math sub .denominator {\n  padding-top: 0;\n}\n.mathquill-rendered-math sup {\n  vertical-align: .5em;\n}\n.mathquill-rendered-math sup.limit,\n.mathquill-rendered-math sup.nthroot {\n  vertical-align: 0.8em;\n}\n.mathquill-rendered-math sup.nthroot {\n  margin-right: -0.6em;\n  margin-left: .2em;\n  min-width: .5em;\n}\n.mathquill-rendered-math sub {\n  vertical-align: -0.4em;\n}\n.mathquill-rendered-math sub.limit {\n  vertical-align: -0.6em;\n}\n.mathquill-rendered-math .paren {\n  padding: 0 .1em;\n  vertical-align: bottom;\n  -webkit-transform-origin: bottom center;\n  -moz-transform-origin: bottom center;\n  -ms-transform-origin: bottom center;\n  -o-transform-origin: bottom center;\n  transform-origin: bottom center;\n}\n.mathquill-rendered-math .array {\n  vertical-align: middle;\n  text-align: center;\n}\n.mathquill-rendered-math .array > span {\n  display: block;\n}\n.mathquill-rendered-math .non-italicized-function {\n  font-family: Symbola, \"Times New Roman\", serif;\n  line-height: .9;\n  font-style: normal;\n  padding-right: .2em;\n}\n.mathquill-rendered-math .fraction {\n  font-size: 90%;\n  text-align: center;\n  vertical-align: -0.5em;\n  padding: 0 .2em;\n}\n.mathquill-rendered-math .fraction,\n.mathquill-rendered-math x:-moz-any-link {\n  display: -moz-groupbox;\n}\n.mathquill-rendered-math .fraction,\n.mathquill-rendered-math x:-moz-any-link,\n.mathquill-rendered-math x:default {\n  display: inline-block;\n}\n.mathquill-rendered-math .numerator,\n.mathquill-rendered-math .denominator {\n  display: block;\n}\n.mathquill-rendered-math .numerator {\n  padding: 0 0.1em;\n  margin-bottom: -0.1em;\n}\n.mathquill-rendered-math .denominator {\n  border-top: 1px solid;\n  float: right;\n  width: 100%;\n  padding: .1em .1em 0 .1em;\n  margin-right: -0.1em;\n  margin-left: -0.1em;\n}\n.mathquill-rendered-math .sqrt-prefix {\n  padding-top: 0;\n  position: relative;\n  top: .1em;\n  vertical-align: top;\n  -webkit-transform-origin: top;\n  -moz-transform-origin: top;\n  -ms-transform-origin: top;\n  -o-transform-origin: top;\n  transform-origin: top;\n}\n.mathquill-rendered-math .sqrt-stem {\n  border-top: 1px solid;\n  margin-top: 1px;\n  padding-left: .15em;\n  padding-right: .2em;\n  margin-right: .1em;\n}\n.mathquill-rendered-math .vector-prefix {\n  display: block;\n  text-align: center;\n  line-height: .25em;\n  margin-bottom: -0.1em;\n  font-size: 0.75em;\n}\n.mathquill-rendered-math .vector-stem {\n  display: block;\n}\n.mathquill-rendered-math,\n.mathquill-rendered-math .mathquill-editable {\n  cursor: text;\n  font-family: Symbola, \"Times New Roman\", serif;\n}\n.mathquill-rendered-math .selection,\n.mathquill-editable .selection,\n.mathquill-rendered-math .selection .non-leaf,\n.mathquill-editable .selection .non-leaf,\n.mathquill-rendered-math .selection .scaled,\n.mathquill-editable .selection .scaled {\n  background: #B4D5FE !important;\n  background: Highlight !important;\n  color: HighlightText;\n  border-color: HighlightText;\n}\n.mathquill-rendered-math .selection .matrixed,\n.mathquill-editable .selection .matrixed {\n  background: #39F !important;\n}\n.mathquill-rendered-math .selection .matrixed-container,\n.mathquill-editable .selection .matrixed-container {\n  filter: progid:DXImageTransform.Microsoft.Chroma(color='#3399FF') !important;\n}\n.mathquill-rendered-math .selection.blur,\n.mathquill-editable .selection.blur,\n.mathquill-rendered-math .selection.blur .non-leaf,\n.mathquill-editable .selection.blur .non-leaf,\n.mathquill-rendered-math .selection.blur .scaled,\n.mathquill-editable .selection.blur .scaled,\n.mathquill-rendered-math .selection.blur .matrixed,\n.mathquill-editable .selection.blur .matrixed {\n  background: #D4D4D4 !important;\n  color: black;\n  border-color: black;\n}\n.mathquill-rendered-math .selection.blur .matrixed-container,\n.mathquill-editable .selection.blur .matrixed-container {\n  filter: progid:DXImageTransform.Microsoft.Chroma(color='#D4D4D4') !important;\n}\n.mathquill-editable .textarea,\n.mathquill-rendered-math .textarea {\n  position: relative;\n  -webkit-user-select: text;\n  -moz-user-select: text;\n  user-select: text;\n}\n.mathquill-editable .textarea textarea,\n.mathquill-rendered-math .textarea textarea,\n.mathquill-editable .selectable,\n.mathquill-rendered-math .selectable {\n  -webkit-user-select: text;\n  -moz-user-select: text;\n  user-select: text;\n  position: absolute;\n  clip: rect(1em 1em 1em 1em);\n}\n.mathquill-rendered-math .matrixed {\n  background: white;\n  display: -moz-inline-box;\n  display: inline-block;\n}\n.mathquill-rendered-math .matrixed-container {\n  filter: progid:DXImageTransform.Microsoft.Chroma(color='white');\n  margin-top: -0.1em;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/third-party/mathquill/mathquill.js",
    "content": "/**\n * Copyleft 2010-2011 Jay and Han (laughinghan@gmail.com)\n *   under the GNU Lesser General Public License\n *     http://www.gnu.org/licenses/lgpl.html\n * Project Website: http://mathquill.com\n */\n\n(function() {\n\nvar jQuery = window.jQuery,\n  undefined,\n  _, //temp variable of prototypes\n  mqCmdId = 'mathquill-command-id',\n  mqBlockId = 'mathquill-block-id',\n  min = Math.min,\n  max = Math.max;\n\nvar __slice = [].slice;\n\nfunction noop() {}\n\n/**\n * sugar to make defining lots of commands easier.\n * TODO: rethink this.\n */\nfunction bind(cons /*, args... */) {\n  var args = __slice.call(arguments, 1);\n  return function() {\n    return cons.apply(this, args);\n  };\n}\n\n/**\n * a development-only debug method.  This definition and all\n * calls to `pray` will be stripped from the minified\n * build of mathquill.\n *\n * This function must be called by name to be removed\n * at compile time.  Do not define another function\n * with the same name, and only call this function by\n * name.\n */\nfunction pray(message, cond) {\n  if (!cond) throw new Error('prayer failed: '+message);\n}\nvar P = (function(prototype, ownProperty, undefined) {\n  // helper functions that also help minification\n  function isObject(o) { return typeof o === 'object'; }\n  function isFunction(f) { return typeof f === 'function'; }\n\n  // a function that gets reused to make uninitialized objects\n  function BareConstructor() {}\n\n  function P(_superclass /* = Object */, definition) {\n    // handle the case where no superclass is given\n    if (definition === undefined) {\n      definition = _superclass;\n      _superclass = Object;\n    }\n\n    // C is the class to be returned.\n    //\n    // It delegates to instantiating an instance of `Bare`, so that it\n    // will always return a new instance regardless of the calling\n    // context.\n    //\n    //  TODO: the Chrome inspector shows all created objects as `C`\n    //        rather than `Object`.  Setting the .name property seems to\n    //        have no effect.  Is there a way to override this behavior?\n    function C() {\n      var self = new Bare;\n      if (isFunction(self.init)) self.init.apply(self, arguments);\n      return self;\n    }\n\n    // C.Bare is a class with a noop constructor.  Its prototype is the\n    // same as C, so that instances of C.Bare are also instances of C.\n    // New objects can be allocated without initialization by calling\n    // `new MyClass.Bare`.\n    function Bare() {}\n    C.Bare = Bare;\n\n    // Set up the prototype of the new class.\n    var _super = BareConstructor[prototype] = _superclass[prototype];\n    var proto = Bare[prototype] = C[prototype] = new BareConstructor;\n\n    // other variables, as a minifier optimization\n    var extensions;\n\n\n    // set the constructor property on the prototype, for convenience\n    proto.constructor = C;\n\n    C.mixin = function(def) {\n      Bare[prototype] = C[prototype] = P(C, def)[prototype];\n      return C;\n    }\n\n    return (C.open = function(def) {\n      extensions = {};\n\n      if (isFunction(def)) {\n        // call the defining function with all the arguments you need\n        // extensions captures the return value.\n        extensions = def.call(C, proto, _super, C, _superclass);\n      }\n      else if (isObject(def)) {\n        // if you passed an object instead, we'll take it\n        extensions = def;\n      }\n\n      // ...and extend it\n      if (isObject(extensions)) {\n        for (var ext in extensions) {\n          if (ownProperty.call(extensions, ext)) {\n            proto[ext] = extensions[ext];\n          }\n        }\n      }\n\n      // if there's no init, we assume we're inheriting a non-pjs class, so\n      // we default to applying the superclass's constructor.\n      if (!isFunction(proto.init)) {\n        proto.init = _superclass;\n      }\n\n      return C;\n    })(definition);\n  }\n\n  // ship it\n  return P;\n\n  // as a minifier optimization, we've closured in a few helper functions\n  // and the string 'prototype' (C[p] is much shorter than C.prototype)\n})('prototype', ({}).hasOwnProperty);\n/*************************************************\n * Textarea Manager\n *\n * An abstraction layer wrapping the textarea in\n * an object with methods to manipulate and listen\n * to events on, that hides all the nasty cross-\n * browser incompatibilities behind a uniform API.\n *\n * Design goal: This is a *HARD* internal\n * abstraction barrier. Cross-browser\n * inconsistencies are not allowed to leak through\n * and be dealt with by event handlers. All future\n * cross-browser issues that arise must be dealt\n * with here, and if necessary, the API updated.\n *\n * Organization:\n * - key values map and stringify()\n * - manageTextarea()\n *    + defer() and flush()\n *    + event handler logic\n *    + attach event handlers and export methods\n ************************************************/\n\nvar manageTextarea = (function() {\n  // The following [key values][1] map was compiled from the\n  // [DOM3 Events appendix section on key codes][2] and\n  // [a widely cited report on cross-browser tests of key codes][3],\n  // except for 10: 'Enter', which I've empirically observed in Safari on iOS\n  // and doesn't appear to conflict with any other known key codes.\n  //\n  // [1]: http://www.w3.org/TR/2012/WD-DOM-Level-3-Events-20120614/#keys-keyvalues\n  // [2]: http://www.w3.org/TR/2012/WD-DOM-Level-3-Events-20120614/#fixed-virtual-key-codes\n  // [3]: http://unixpapa.com/js/key.html\n  var KEY_VALUES = {\n    8: 'Backspace',\n    9: 'Tab',\n\n    10: 'Enter', // for Safari on iOS\n\n    13: 'Enter',\n\n    16: 'Shift',\n    17: 'Control',\n    18: 'Alt',\n    20: 'CapsLock',\n\n    27: 'Esc',\n\n    32: 'Spacebar',\n\n    33: 'PageUp',\n    34: 'PageDown',\n    35: 'End',\n    36: 'Home',\n\n    37: 'Left',\n    38: 'Up',\n    39: 'Right',\n    40: 'Down',\n\n    45: 'Insert',\n\n    46: 'Del',\n\n    144: 'NumLock'\n  };\n\n  // To the extent possible, create a normalized string representation\n  // of the key combo (i.e., key code and modifier keys).\n  function stringify(evt) {\n    var which = evt.which || evt.keyCode;\n    var keyVal = KEY_VALUES[which];\n    var key;\n    var modifiers = [];\n\n    if (evt.ctrlKey) modifiers.push('Ctrl');\n    if (evt.originalEvent && evt.originalEvent.metaKey) modifiers.push('Meta');\n    if (evt.altKey) modifiers.push('Alt');\n    if (evt.shiftKey) modifiers.push('Shift');\n\n    key = keyVal || String.fromCharCode(which);\n\n    if (!modifiers.length && !keyVal) return key;\n\n    modifiers.push(key);\n    return modifiers.join('-');\n  }\n\n  // create a textarea manager that calls callbacks at useful times\n  // and exports useful public methods\n  return function manageTextarea(el, opts) {\n    var keydown = null;\n    var keypress = null;\n\n    if (!opts) opts = {};\n    var textCallback = opts.text || noop;\n    var keyCallback = opts.key || noop;\n    var pasteCallback = opts.paste || noop;\n    var onCut = opts.cut || noop;\n\n    var textarea = jQuery(el);\n    var target = jQuery(opts.container || textarea);\n\n    // checkTextareaFor() is called after keypress or paste events to\n    // say \"Hey, I think something was just typed\" or \"pasted\" (resp.),\n    // so that at all subsequent opportune times (next event or timeout),\n    // will check for expected typed or pasted text.\n    // Need to check repeatedly because #135: in Safari 5.1 (at least),\n    // after selecting something and then typing, the textarea is\n    // incorrectly reported as selected during the input event (but not\n    // subsequently).\n    var checkTextarea = noop, timeoutId;\n    function checkTextareaFor(checker) {\n      checkTextarea = checker;\n      clearTimeout(timeoutId);\n      timeoutId = setTimeout(checker);\n    }\n    target.bind('keydown keypress input keyup focusout paste', function() { checkTextarea(); });\n\n\n    // -*- public methods -*- //\n    function select(text) {\n      // check textarea at least once/one last time before munging (so\n      // no race condition if selection happens after keypress/paste but\n      // before checkTextarea), then never again ('cos it's been munged)\n      checkTextarea();\n      checkTextarea = noop;\n      clearTimeout(timeoutId);\n\n      textarea.val(text);\n      if (text) textarea[0].select();\n    }\n\n    // -*- helper subroutines -*- //\n\n    // Determine whether there's a selection in the textarea.\n    // This will always return false in IE < 9, which don't support\n    // HTMLTextareaElement::selection{Start,End}.\n    function hasSelection() {\n      var dom = textarea[0];\n\n      if (!('selectionStart' in dom)) return false;\n      return dom.selectionStart !== dom.selectionEnd;\n    }\n\n    function popText(callback) {\n      var text = textarea.val();\n      textarea.val('');\n      if (text) callback(text);\n    }\n\n    function handleKey() {\n      keyCallback(stringify(keydown), keydown);\n    }\n\n    // -*- event handlers -*- //\n    function onKeydown(e) {\n      keydown = e;\n      keypress = null;\n\n      handleKey();\n    }\n\n    function onKeypress(e) {\n      // call the key handler for repeated keypresses.\n      // This excludes keypresses that happen directly\n      // after keydown.  In that case, there will be\n      // no previous keypress, so we skip it here\n      if (keydown && keypress) handleKey();\n\n      keypress = e;\n\n      checkTextareaFor(typedText);\n    }\n    function typedText() {\n      // If there is a selection, the contents of the textarea couldn't\n      // possibly have just been typed in.\n      // This happens in browsers like Firefox and Opera that fire\n      // keypress for keystrokes that are not text entry and leave the\n      // selection in the textarea alone, such as Ctrl-C.\n      // Note: we assume that browsers that don't support hasSelection()\n      // also never fire keypress on keystrokes that are not text entry.\n      // This seems reasonably safe because:\n      // - all modern browsers including IE 9+ support hasSelection(),\n      //   making it extremely unlikely any browser besides IE < 9 won't\n      // - as far as we know IE < 9 never fires keypress on keystrokes\n      //   that aren't text entry, which is only as reliable as our\n      //   tests are comprehensive, but the IE < 9 way to do\n      //   hasSelection() is poorly documented and is also only as\n      //   reliable as our tests are comprehensive\n      // If anything like #40 or #71 is reported in IE < 9, see\n      // b1318e5349160b665003e36d4eedd64101ceacd8\n      if (hasSelection()) return;\n\n      popText(textCallback);\n    }\n\n    function onBlur() { keydown = keypress = null; }\n\n    function onPaste(e) {\n      // browsers are dumb.\n      //\n      // In Linux, middle-click pasting causes onPaste to be called,\n      // when the textarea is not necessarily focused.  We focus it\n      // here to ensure that the pasted text actually ends up in the\n      // textarea.\n      //\n      // It's pretty nifty that by changing focus in this handler,\n      // we can change the target of the default action.  (This works\n      // on keydown too, FWIW).\n      //\n      // And by nifty, we mean dumb (but useful sometimes).\n      textarea.focus();\n\n      checkTextareaFor(pastedText);\n    }\n    function pastedText() {\n      popText(pasteCallback);\n    }\n\n    // -*- attach event handlers -*- //\n    target.bind({\n      keydown: onKeydown,\n      keypress: onKeypress,\n      focusout: onBlur,\n      cut: onCut,\n      paste: onPaste\n    });\n\n    // -*- export public methods -*- //\n    return {\n      select: select\n    };\n  };\n}());\nvar Parser = P(function(_, _super, Parser) {\n  // The Parser object is a wrapper for a parser function.\n  // Externally, you use one to parse a string by calling\n  //   var result = SomeParser.parse('Me Me Me! Parse Me!');\n  // You should never call the constructor, rather you should\n  // construct your Parser from the base parsers and the\n  // parser combinator methods.\n\n  function parseError(stream, message) {\n    if (stream) {\n      stream = \"'\"+stream+\"'\";\n    }\n    else {\n      stream = 'EOF';\n    }\n\n    throw 'Parse Error: '+message+' at '+stream;\n  }\n\n  _.init = function(body) { this._ = body; };\n\n  _.parse = function(stream) {\n    return this.skip(eof)._(stream, success, parseError);\n\n    function success(stream, result) { return result; }\n  };\n\n  // -*- primitive combinators -*- //\n  _.or = function(alternative) {\n    pray('or is passed a parser', alternative instanceof Parser);\n\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      return self._(stream, onSuccess, failure);\n\n      function failure(newStream) {\n        return alternative._(stream, onSuccess, onFailure);\n      }\n    });\n  };\n\n  _.then = function(next) {\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      return self._(stream, success, onFailure);\n\n      function success(newStream, result) {\n        var nextParser = (next instanceof Parser ? next : next(result));\n        pray('a parser is returned', nextParser instanceof Parser);\n        return nextParser._(newStream, onSuccess, onFailure);\n      }\n    });\n  };\n\n  // -*- optimized iterative combinators -*- //\n  _.many = function() {\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var xs = [];\n      while (self._(stream, success, failure));\n      return onSuccess(stream, xs);\n\n      function success(newStream, x) {\n        stream = newStream;\n        xs.push(x);\n        return true;\n      }\n\n      function failure() {\n        return false;\n      }\n    });\n  };\n\n  _.times = function(min, max) {\n    if (arguments.length < 2) max = min;\n    var self = this;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var xs = [];\n      var result = true;\n      var failure;\n\n      for (var i = 0; i < min; i += 1) {\n        result = self._(stream, success, firstFailure);\n        if (!result) return onFailure(stream, failure);\n      }\n\n      for (; i < max && result; i += 1) {\n        result = self._(stream, success, secondFailure);\n      }\n\n      return onSuccess(stream, xs);\n\n      function success(newStream, x) {\n        xs.push(x);\n        stream = newStream;\n        return true;\n      }\n\n      function firstFailure(newStream, msg) {\n        failure = msg;\n        stream = newStream;\n        return false;\n      }\n\n      function secondFailure(newStream, msg) {\n        return false;\n      }\n    });\n  };\n\n  // -*- higher-level combinators -*- //\n  _.result = function(res) { return this.then(succeed(res)); };\n  _.atMost = function(n) { return this.times(0, n); };\n  _.atLeast = function(n) {\n    var self = this;\n    return self.times(n).then(function(start) {\n      return self.many().map(function(end) {\n        return start.concat(end);\n      });\n    });\n  };\n\n  _.map = function(fn) {\n    return this.then(function(result) { return succeed(fn(result)); });\n  };\n\n  _.skip = function(two) {\n    return this.then(function(result) { return two.result(result); });\n  };\n\n  // -*- primitive parsers -*- //\n  var string = this.string = function(str) {\n    var len = str.length;\n    var expected = \"expected '\"+str+\"'\";\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var head = stream.slice(0, len);\n\n      if (head === str) {\n        return onSuccess(stream.slice(len), head);\n      }\n      else {\n        return onFailure(stream, expected);\n      }\n    });\n  };\n\n  var regex = this.regex = function(re) {\n    pray('regexp parser is anchored', re.toString().charAt(1) === '^');\n\n    var expected = 'expected '+re;\n\n    return Parser(function(stream, onSuccess, onFailure) {\n      var match = re.exec(stream);\n\n      if (match) {\n        var result = match[0];\n        return onSuccess(stream.slice(result.length), result);\n      }\n      else {\n        return onFailure(stream, expected);\n      }\n    });\n  };\n\n  var succeed = Parser.succeed = function(result) {\n    return Parser(function(stream, onSuccess) {\n      return onSuccess(stream, result);\n    });\n  };\n\n  var fail = Parser.fail = function(msg) {\n    return Parser(function(stream, _, onFailure) {\n      return onFailure(stream, msg);\n    });\n  };\n\n  var letter = Parser.letter = regex(/^[a-z]/i);\n  var letters = Parser.letters = regex(/^[a-z]*/i);\n  var digit = Parser.digit = regex(/^[0-9]/);\n  var digits = Parser.digits = regex(/^[0-9]*/);\n  var whitespace = Parser.whitespace = regex(/^\\s+/);\n  var optWhitespace = Parser.optWhitespace = regex(/^\\s*/);\n\n  var any = Parser.any = Parser(function(stream, onSuccess, onFailure) {\n    if (!stream) return onFailure(stream, 'expected any character');\n\n    return onSuccess(stream.slice(1), stream.charAt(0));\n  });\n\n  var all = Parser.all = Parser(function(stream, onSuccess, onFailure) {\n    return onSuccess('', stream);\n  });\n\n  var eof = Parser.eof = Parser(function(stream, onSuccess, onFailure) {\n    if (stream) return onFailure(stream, 'expected EOF');\n\n    return onSuccess(stream, stream);\n  });\n});\n/*************************************************\n * Base classes of the MathQuill virtual DOM tree\n *\n * Only doing tree node manipulation via these\n * adopt/ disown methods guarantees well-formedness\n * of the tree.\n ************************************************/\n\n// L = 'left'\n// R = 'right'\n//\n// the contract is that they can be used as object properties\n// and (-L) === R, and (-R) === L.\nvar L = -1;\nvar R = 1;\n\nfunction prayDirection(dir) {\n  pray('a direction was passed', dir === L || dir === R);\n}\n\n/**\n * Tiny extension of jQuery adding directionalized DOM manipulation methods.\n *\n * Funny how Pjs v3 almost just works with `jQuery.fn.init`.\n *\n * jQuery features that don't work on $:\n *   - jQuery.*, like jQuery.ajax, obviously (Pjs doesn't and shouldn't\n *                                            copy constructor properties)\n *\n *   - jQuery(function), the shortcut for `jQuery(document).ready(function)`,\n *     because `jQuery.fn.init` is idiosyncratic and Pjs doing, essentially,\n *     `jQuery.fn.init.apply(this, arguments)` isn't quite right, you need:\n *\n *       _.init = function(s, c) { jQuery.fn.init.call(this, s, c, $(document)); };\n *\n *     if you actually give a shit (really, don't bother),\n *     see https://github.com/jquery/jquery/blob/1.7.2/src/core.js#L889\n *\n *   - jQuery(selector), because jQuery translates that to\n *     `jQuery(document).find(selector)`, but Pjs doesn't (should it?) let\n *     you override the result of a constructor call\n *       + note that because of the jQuery(document) shortcut-ness, there's also\n *         the 3rd-argument-needs-to-be-`$(document)` thing above, but the fix\n *         for that (as can be seen above) is really easy. This problem requires\n *         a way more intrusive fix\n *\n * And that's it! Everything else just magically works because jQuery internally\n * uses `this.constructor()` everywhere (hence calling `$`), but never ever does\n * `this.constructor.find` or anything like that, always doing `jQuery.find`.\n */\nvar $ = P(jQuery, function(_) {\n  _.insDirOf = function(dir, el) {\n    return dir === L ?\n      this.insertBefore(el.first()) : this.insertAfter(el.last());\n  };\n  _.insAtDirEnd = function(dir, el) {\n    return dir === L ? this.prependTo(el) : this.appendTo(el);\n  };\n});\n\nvar Point = P(function(_) {\n  _.parent = 0;\n  _[L] = 0;\n  _[R] = 0;\n\n  _.init = function(parent, leftward, rightward) {\n    this.parent = parent;\n    this[L] = leftward;\n    this[R] = rightward;\n  };\n});\n\n/**\n * MathQuill virtual-DOM tree-node abstract base class\n */\nvar Node = P(function(_) {\n  _[L] = 0;\n  _[R] = 0\n  _.parent = 0;\n\n  _.init = function() {\n    this.ends = {};\n    this.ends[L] = 0;\n    this.ends[R] = 0;\n  };\n\n  _.children = function() {\n    return Fragment(this.ends[L], this.ends[R]);\n  };\n\n  _.eachChild = function(fn) {\n    return this.children().each(fn);\n  };\n\n  _.foldChildren = function(fold, fn) {\n    return this.children().fold(fold, fn);\n  };\n\n  _.adopt = function(parent, leftward, rightward) {\n    Fragment(this, this).adopt(parent, leftward, rightward);\n    return this;\n  };\n\n  _.disown = function() {\n    Fragment(this, this).disown();\n    return this;\n  };\n});\n\n/**\n * An entity outside the virtual tree with one-way pointers (so it's only a\n * \"view\" of part of the tree, not an actual node/entity in the tree) that\n * delimits a doubly-linked list of sibling nodes.\n * It's like a fanfic love-child between HTML DOM DocumentFragment and the Range\n * classes: like DocumentFragment, its contents must be sibling nodes\n * (unlike Range, whose contents are arbitrary contiguous pieces of subtrees),\n * but like Range, it has only one-way pointers to its contents, its contents\n * have no reference to it and in fact may still be in the visible tree (unlike\n * DocumentFragment, whose contents must be detached from the visible tree\n * and have their 'parent' pointers set to the DocumentFragment).\n */\nvar Fragment = P(function(_) {\n  _.init = function(leftEnd, rightEnd) {\n    pray('no half-empty fragments', !leftEnd === !rightEnd);\n\n    this.ends = {};\n\n    if (!leftEnd) return;\n\n    pray('left end node is passed to Fragment', leftEnd instanceof Node);\n    pray('right end node is passed to Fragment', rightEnd instanceof Node);\n    pray('leftEnd and rightEnd have the same parent',\n         leftEnd.parent === rightEnd.parent);\n\n    this.ends[L] = leftEnd;\n    this.ends[R] = rightEnd;\n  };\n\n  function prayWellFormed(parent, leftward, rightward) {\n    pray('a parent is always present', parent);\n    pray('leftward is properly set up', (function() {\n      // either it's empty and `rightward` is the left end child (possibly empty)\n      if (!leftward) return parent.ends[L] === rightward;\n\n      // or it's there and its [R] and .parent are properly set up\n      return leftward[R] === rightward && leftward.parent === parent;\n    })());\n\n    pray('rightward is properly set up', (function() {\n      // either it's empty and `leftward` is the right end child (possibly empty)\n      if (!rightward) return parent.ends[R] === leftward;\n\n      // or it's there and its [L] and .parent are properly set up\n      return rightward[L] === leftward && rightward.parent === parent;\n    })());\n  }\n\n  _.adopt = function(parent, leftward, rightward) {\n    prayWellFormed(parent, leftward, rightward);\n\n    var self = this;\n    self.disowned = false;\n\n    var leftEnd = self.ends[L];\n    if (!leftEnd) return this;\n\n    var rightEnd = self.ends[R];\n\n    if (leftward) {\n      // NB: this is handled in the ::each() block\n      // leftward[R] = leftEnd\n    } else {\n      parent.ends[L] = leftEnd;\n    }\n\n    if (rightward) {\n      rightward[L] = rightEnd;\n    } else {\n      parent.ends[R] = rightEnd;\n    }\n\n    self.ends[R][R] = rightward;\n\n    self.each(function(el) {\n      el[L] = leftward;\n      el.parent = parent;\n      if (leftward) leftward[R] = el;\n\n      leftward = el;\n    });\n\n    return self;\n  };\n\n  _.disown = function() {\n    var self = this;\n    var leftEnd = self.ends[L];\n\n    // guard for empty and already-disowned fragments\n    if (!leftEnd || self.disowned) return self;\n\n    self.disowned = true;\n\n    var rightEnd = self.ends[R]\n    var parent = leftEnd.parent;\n\n    prayWellFormed(parent, leftEnd[L], leftEnd);\n    prayWellFormed(parent, rightEnd, rightEnd[R]);\n\n    if (leftEnd[L]) {\n      leftEnd[L][R] = rightEnd[R];\n    } else {\n      parent.ends[L] = rightEnd[R];\n    }\n\n    if (rightEnd[R]) {\n      rightEnd[R][L] = leftEnd[L];\n    } else {\n      parent.ends[R] = leftEnd[L];\n    }\n\n    return self;\n  };\n\n  _.each = function(fn) {\n    var self = this;\n    var el = self.ends[L];\n    if (!el) return self;\n\n    for (;el !== self.ends[R][R]; el = el[R]) {\n      if (fn.call(self, el) === false) break;\n    }\n\n    return self;\n  };\n\n  _.fold = function(fold, fn) {\n    this.each(function(el) {\n      fold = fn.call(this, fold, el);\n    });\n\n    return fold;\n  };\n});\n/*************************************************\n * Abstract classes of math blocks and commands.\n ************************************************/\n\nvar uuid = (function() {\n  var id = 0;\n\n  return function() { return id += 1; };\n})();\n\n/**\n * Math tree node base class.\n * Some math-tree-specific extensions to Node.\n * Both MathBlock's and MathCommand's descend from it.\n */\nvar MathElement = P(Node, function(_, _super) {\n  _.init = function(obj) {\n    _super.init.call(this);\n    this.id = uuid();\n    MathElement[this.id] = this;\n  };\n\n  _.toString = function() {\n    return '[MathElement '+this.id+']';\n  };\n\n  _.bubble = function(event /*, args... */) {\n    var args = __slice.call(arguments, 1);\n\n    for (var ancestor = this; ancestor; ancestor = ancestor.parent) {\n      var res = ancestor[event] && ancestor[event].apply(ancestor, args);\n      if (res === false) break;\n    }\n\n    return this;\n  };\n\n  _.postOrder = function(fn /*, args... */) {\n    var args = __slice.call(arguments, 1);\n\n    if (typeof fn === 'string') {\n      var methodName = fn;\n      fn = function(el) {\n        if (methodName in el) el[methodName].apply(el, args);\n      };\n    }\n\n    (function recurse(desc) {\n      desc.eachChild(recurse);\n      fn(desc);\n    })(this);\n  };\n\n  _.jQ = $();\n  _.jQadd = function(jQ) { this.jQ = this.jQ.add(jQ); };\n\n  this.jQize = function(html) {\n    // Sets the .jQ of the entire math subtree rooted at this command.\n    // Expects .createBlocks() to have been called already, since it\n    // calls .html().\n    var jQ = $(html);\n    jQ.find('*').andSelf().each(function() {\n      var jQ = $(this),\n        cmdId = jQ.attr('mathquill-command-id'),\n        blockId = jQ.attr('mathquill-block-id');\n      if (cmdId) MathElement[cmdId].jQadd(jQ);\n      if (blockId) MathElement[blockId].jQadd(jQ);\n    });\n    return jQ;\n  };\n\n  _.finalizeInsert = function() {\n    var self = this;\n    self.postOrder('finalizeTree');\n\n    // note: this order is important.\n    // empty elements need the empty box provided by blur to\n    // be present in order for their dimensions to be measured\n    // correctly in redraw.\n    self.postOrder('blur');\n\n    // adjust context-sensitive spacing\n    self.postOrder('respace');\n    if (self[R].respace) self[R].respace();\n    if (self[L].respace) self[L].respace();\n\n    self.postOrder('redraw');\n    self.bubble('redraw');\n  };\n});\n\n/**\n * Commands and operators, like subscripts, exponents, or fractions.\n * Descendant commands are organized into blocks.\n */\nvar MathCommand = P(MathElement, function(_, _super) {\n  _.init = function(ctrlSeq, htmlTemplate, textTemplate) {\n    var cmd = this;\n    _super.init.call(cmd);\n\n    if (!cmd.ctrlSeq) cmd.ctrlSeq = ctrlSeq;\n    if (htmlTemplate) cmd.htmlTemplate = htmlTemplate;\n    if (textTemplate) cmd.textTemplate = textTemplate;\n  };\n\n  // obvious methods\n  _.replaces = function(replacedFragment) {\n    replacedFragment.disown();\n    this.replacedFragment = replacedFragment;\n  };\n  _.isEmpty = function() {\n    return this.foldChildren(true, function(isEmpty, child) {\n      return isEmpty && child.isEmpty();\n    });\n  };\n\n  _.parser = function() {\n    var block = latexMathParser.block;\n    var self = this;\n\n    return block.times(self.numBlocks()).map(function(blocks) {\n      self.blocks = blocks;\n\n      for (var i = 0; i < blocks.length; i += 1) {\n        blocks[i].adopt(self, self.ends[R], 0);\n      }\n\n      return self;\n    });\n  };\n\n  // createLeftOf(cursor) and the methods it calls\n  _.createLeftOf = function(cursor) {\n    var cmd = this;\n    var replacedFragment = cmd.replacedFragment;\n\n    cmd.createBlocks();\n    MathElement.jQize(cmd.html());\n    if (replacedFragment) {\n      replacedFragment.adopt(cmd.ends[L], 0, 0);\n      replacedFragment.jQ.appendTo(cmd.ends[L].jQ);\n    }\n\n    cursor.jQ.before(cmd.jQ);\n    cursor[L] = cmd.adopt(cursor.parent, cursor[L], cursor[R]);\n\n    cmd.finalizeInsert(cursor);\n\n    cmd.placeCursor(cursor);\n  };\n  _.createBlocks = function() {\n    var cmd = this,\n      numBlocks = cmd.numBlocks(),\n      blocks = cmd.blocks = Array(numBlocks);\n\n    for (var i = 0; i < numBlocks; i += 1) {\n      var newBlock = blocks[i] = MathBlock();\n      newBlock.adopt(cmd, cmd.ends[R], 0);\n    }\n  };\n  _.respace = noop; //placeholder for context-sensitive spacing\n  _.placeCursor = function(cursor) {\n    //insert the cursor at the right end of the first empty child, searching\n    //left-to-right, or if none empty, the right end child\n    cursor.insAtRightEnd(this.foldChildren(this.ends[L], function(leftward, child) {\n      return leftward.isEmpty() ? leftward : child;\n    }));\n  };\n\n  // remove()\n  _.remove = function() {\n    this.disown();\n    this.jQ.remove();\n\n    this.postOrder(function(el) { delete MathElement[el.id]; });\n\n    return this;\n  };\n\n  // methods involved in creating and cross-linking with HTML DOM nodes\n  /*\n    They all expect an .htmlTemplate like\n      '<span>&0</span>'\n    or\n      '<span><span>&0</span><span>&1</span></span>'\n\n    See html.test.js for more examples.\n\n    Requirements:\n    - For each block of the command, there must be exactly one \"block content\n      marker\" of the form '&<number>' where <number> is the 0-based index of the\n      block. (Like the LaTeX \\newcommand syntax, but with a 0-based rather than\n      1-based index, because JavaScript because C because Dijkstra.)\n    - The block content marker must be the sole contents of the containing\n      element, there can't even be surrounding whitespace, or else we can't\n      guarantee sticking to within the bounds of the block content marker when\n      mucking with the HTML DOM.\n    - The HTML not only must be well-formed HTML (of course), but also must\n      conform to the XHTML requirements on tags, specifically all tags must\n      either be self-closing (like '<br/>') or come in matching pairs.\n      Close tags are never optional.\n\n    Note that &<number> isn't well-formed HTML; if you wanted a literal '&123',\n    your HTML template would have to have '&amp;123'.\n  */\n  _.numBlocks = function() {\n    var matches = this.htmlTemplate.match(/&\\d+/g);\n    return matches ? matches.length : 0;\n  };\n  _.html = function() {\n    // Render the entire math subtree rooted at this command, as HTML.\n    // Expects .createBlocks() to have been called already, since it uses the\n    // .blocks array of child blocks.\n    //\n    // See html.test.js for example templates and intended outputs.\n    //\n    // Given an .htmlTemplate as described above,\n    // - insert the mathquill-command-id attribute into all top-level tags,\n    //   which will be used to set this.jQ in .jQize().\n    //   This is straightforward:\n    //     * tokenize into tags and non-tags\n    //     * loop through top-level tokens:\n    //         * add #cmdId attribute macro to top-level self-closing tags\n    //         * else add #cmdId attribute macro to top-level open tags\n    //             * skip the matching top-level close tag and all tag pairs\n    //               in between\n    // - for each block content marker,\n    //     + replace it with the contents of the corresponding block,\n    //       rendered as HTML\n    //     + insert the mathquill-block-id attribute into the containing tag\n    //   This is even easier, a quick regex replace, since block tags cannot\n    //   contain anything besides the block content marker.\n    //\n    // Two notes:\n    // - The outermost loop through top-level tokens should never encounter any\n    //   top-level close tags, because we should have first encountered a\n    //   matching top-level open tag, all inner tags should have appeared in\n    //   matching pairs and been skipped, and then we should have skipped the\n    //   close tag in question.\n    // - All open tags should have matching close tags, which means our inner\n    //   loop should always encounter a close tag and drop nesting to 0. If\n    //   a close tag is missing, the loop will continue until i >= tokens.length\n    //   and token becomes undefined. This will not infinite loop, even in\n    //   production without pray(), because it will then TypeError on .slice().\n\n    var cmd = this;\n    var blocks = cmd.blocks;\n    var cmdId = ' mathquill-command-id=' + cmd.id;\n    var tokens = cmd.htmlTemplate.match(/<[^<>]+>|[^<>]+/g);\n\n    pray('no unmatched angle brackets', tokens.join('') === this.htmlTemplate);\n\n    // add cmdId to all top-level tags\n    for (var i = 0, token = tokens[0]; token; i += 1, token = tokens[i]) {\n      // top-level self-closing tags\n      if (token.slice(-2) === '/>') {\n        tokens[i] = token.slice(0,-2) + cmdId + '/>';\n      }\n      // top-level open tags\n      else if (token.charAt(0) === '<') {\n        pray('not an unmatched top-level close tag', token.charAt(1) !== '/');\n\n        tokens[i] = token.slice(0,-1) + cmdId + '>';\n\n        // skip matching top-level close tag and all tag pairs in between\n        var nesting = 1;\n        do {\n          i += 1, token = tokens[i];\n          pray('no missing close tags', token);\n          // close tags\n          if (token.slice(0,2) === '</') {\n            nesting -= 1;\n          }\n          // non-self-closing open tags\n          else if (token.charAt(0) === '<' && token.slice(-2) !== '/>') {\n            nesting += 1;\n          }\n        } while (nesting > 0);\n      }\n    }\n    return tokens.join('').replace(/>&(\\d+)/g, function($0, $1) {\n      return ' mathquill-block-id=' + blocks[$1].id + '>' + blocks[$1].join('html');\n    });\n  };\n\n  // methods to export a string representation of the math tree\n  _.latex = function() {\n    return this.foldChildren(this.ctrlSeq, function(latex, child) {\n      return latex + '{' + (child.latex() || ' ') + '}';\n    });\n  };\n  _.textTemplate = [''];\n  _.text = function() {\n    var cmd = this, i = 0;\n    return cmd.foldChildren(cmd.textTemplate[i], function(text, child) {\n      i += 1;\n      var child_text = child.text();\n      if (text && cmd.textTemplate[i] === '('\n          && child_text[0] === '(' && child_text.slice(-1) === ')')\n        return text + child_text.slice(1, -1) + cmd.textTemplate[i];\n      return text + child.text() + (cmd.textTemplate[i] || '');\n    });\n  };\n});\n\n/**\n * Lightweight command without blocks or children.\n */\nvar Symbol = P(MathCommand, function(_, _super) {\n  _.init = function(ctrlSeq, html, text) {\n    if (!text) text = ctrlSeq && ctrlSeq.length > 1 ? ctrlSeq.slice(1) : ctrlSeq;\n\n    _super.init.call(this, ctrlSeq, html, [ text ]);\n  };\n\n  _.parser = function() { return Parser.succeed(this); };\n  _.numBlocks = function() { return 0; };\n\n  _.replaces = function(replacedFragment) {\n    replacedFragment.remove();\n  };\n  _.createBlocks = noop;\n  _.latex = function(){ return this.ctrlSeq; };\n  _.text = function(){ return this.textTemplate; };\n  _.placeCursor = noop;\n  _.isEmpty = function(){ return true; };\n});\n\n/**\n * Children and parent of MathCommand's. Basically partitions all the\n * symbols and operators that descend (in the Math DOM tree) from\n * ancestor operators.\n */\nvar MathBlock = P(MathElement, function(_) {\n  _.join = function(methodName) {\n    return this.foldChildren('', function(fold, child) {\n      return fold + child[methodName]();\n    });\n  };\n  _.latex = function() { return this.join('latex'); };\n  _.text = function() {\n    return this.ends[L] === this.ends[R] ?\n      this.ends[L].text() :\n      '(' + this.join('text') + ')'\n    ;\n  };\n  _.isEmpty = function() {\n    return this.ends[L] === 0 && this.ends[R] === 0;\n  };\n  _.write = function(cursor, ch, replacedFragment) {\n    var cmd;\n    if (ch.match(/^[a-eg-zA-Z]$/)) //exclude f because want florin\n      cmd = Variable(ch);\n    else if (cmd = CharCmds[ch] || LatexCmds[ch])\n      cmd = cmd(ch);\n    else\n      cmd = VanillaSymbol(ch);\n\n    if (replacedFragment) cmd.replaces(replacedFragment);\n\n    cmd.createLeftOf(cursor);\n  };\n  _.focus = function() {\n    this.jQ.addClass('hasCursor');\n    this.jQ.removeClass('empty');\n\n    return this;\n  };\n  _.blur = function() {\n    this.jQ.removeClass('hasCursor');\n    if (this.isEmpty())\n      this.jQ.addClass('empty');\n\n    return this;\n  };\n});\n\n/**\n * Math tree fragment base class.\n * Some math-tree-specific extensions to Fragment.\n */\nvar MathFragment = P(Fragment, function(_, _super) {\n  _.init = function(leftEnd, rightEnd) {\n    // just select one thing if only one argument\n    _super.init.call(this, leftEnd, rightEnd || leftEnd);\n    this.jQ = this.fold($(), function(jQ, child){ return child.jQ.add(jQ); });\n  };\n  _.latex = function() {\n    return this.fold('', function(latex, el){ return latex + el.latex(); });\n  };\n  _.remove = function() {\n    this.jQ.remove();\n\n    this.each(function(el) {\n      el.postOrder(function(desc) {\n        delete MathElement[desc.id];\n      });\n    });\n\n    return this.disown();\n  };\n});\n/*********************************************\n * Root math elements with event delegation.\n ********************************************/\n\nfunction createRoot(jQ, root, textbox, editable) {\n  var contents = jQ.contents().detach();\n\n  if (!textbox) {\n    jQ.addClass('mathquill-rendered-math');\n  }\n\n  root.jQ = jQ.attr(mqBlockId, root.id);\n  root.revert = function() {\n    jQ.empty().unbind('.mathquill')\n      .removeClass('mathquill-rendered-math mathquill-editable mathquill-textbox')\n      .append(contents);\n  };\n\n  var cursor = root.cursor = Cursor(root);\n\n  root.renderLatex(contents.text());\n\n  //textarea stuff\n  var textareaSpan = root.textarea = $('<span class=\"textarea\"><textarea></textarea></span>'),\n    textarea = textareaSpan.children();\n\n  /******\n   * TODO [Han]: Document this\n   */\n  var textareaSelectionTimeout;\n  root.selectionChanged = function() {\n    if (textareaSelectionTimeout === undefined) {\n      textareaSelectionTimeout = setTimeout(setTextareaSelection);\n    }\n    forceIERedraw(jQ[0]);\n  };\n  function setTextareaSelection() {\n    textareaSelectionTimeout = undefined;\n    var latex = cursor.selection ? '$'+cursor.selection.latex()+'$' : '';\n    textareaManager.select(latex);\n  }\n\n  //prevent native selection except textarea\n  jQ.bind('selectstart.mathquill', function(e) {\n    if (e.target !== textarea[0]) e.preventDefault();\n    e.stopPropagation();\n  });\n\n  //drag-to-select event handling\n  var anticursor, blink = cursor.blink;\n  jQ.bind('mousedown.mathquill', function(e) {\n    function mousemove(e) {\n      cursor.seek($(e.target), e.pageX, e.pageY);\n\n      if (cursor[L] !== anticursor[L]\n          || cursor.parent !== anticursor.parent) {\n        cursor.selectFrom(anticursor);\n      }\n\n      return false;\n    }\n\n    // docmousemove is attached to the document, so that\n    // selection still works when the mouse leaves the window.\n    function docmousemove(e) {\n      // [Han]: i delete the target because of the way seek works.\n      // it will not move the mouse to the target, but will instead\n      // just seek those X and Y coordinates.  If there is a target,\n      // it will try to move the cursor to document, which will not work.\n      // cursor.seek needs to be refactored.\n      delete e.target;\n\n      return mousemove(e);\n    }\n\n    function mouseup(e) {\n      anticursor = undefined;\n      cursor.blink = blink;\n      if (!cursor.selection) {\n        if (editable) {\n          cursor.show();\n        }\n        else {\n          textareaSpan.detach();\n        }\n      }\n\n      // delete the mouse handlers now that we're not dragging anymore\n      jQ.unbind('mousemove', mousemove);\n      $(e.target.ownerDocument).unbind('mousemove', docmousemove).unbind('mouseup', mouseup);\n    }\n\n    setTimeout(function() { textarea.focus(); });\n      // preventDefault won't prevent focus on mousedown in IE<9\n      // that means immediately after this mousedown, whatever was\n      // mousedown-ed will receive focus\n      // http://bugs.jquery.com/ticket/10345\n\n    cursor.blink = noop;\n    cursor.seek($(e.target), e.pageX, e.pageY);\n\n    anticursor = Point(cursor.parent, cursor[L], cursor[R]);\n\n    if (!editable) jQ.prepend(textareaSpan);\n\n    jQ.mousemove(mousemove);\n    $(e.target.ownerDocument).mousemove(docmousemove).mouseup(mouseup);\n\n    return false;\n  });\n\n  if (!editable) {\n    var textareaManager = manageTextarea(textarea, { container: jQ });\n    jQ.bind('cut paste', false).bind('copy', setTextareaSelection)\n      .prepend('<span class=\"selectable\">$'+root.latex()+'$</span>');\n    textarea.blur(function() {\n      cursor.clearSelection();\n      setTimeout(detach); //detaching during blur explodes in WebKit\n    });\n    function detach() {\n      textareaSpan.detach();\n    }\n    return;\n  }\n\n  var textareaManager = manageTextarea(textarea, {\n    container: jQ,\n    key: function(key, evt) {\n      cursor.parent.bubble('onKey', key, evt);\n    },\n    text: function(text) {\n      cursor.parent.bubble('onText', text);\n    },\n    cut: function(e) {\n      if (cursor.selection) {\n        setTimeout(function() {\n          cursor.prepareEdit();\n          cursor.parent.bubble('redraw');\n        });\n      }\n\n      e.stopPropagation();\n    },\n    paste: function(text) {\n      // FIXME HACK the parser in RootTextBlock needs to be moved to\n      // Cursor::writeLatex or something so this'll work with\n      // MathQuill textboxes\n      if (text.slice(0,1) === '$' && text.slice(-1) === '$') {\n        text = text.slice(1, -1);\n      }\n      else {\n        text = '\\\\text{' + text + '}';\n      }\n\n      cursor.writeLatex(text).show();\n    }\n  });\n\n  jQ.prepend(textareaSpan);\n\n  //root CSS classes\n  jQ.addClass('mathquill-editable');\n  if (textbox)\n    jQ.addClass('mathquill-textbox');\n\n  //focus and blur handling\n  textarea.focus(function(e) {\n    if (!cursor.parent)\n      cursor.insAtRightEnd(root);\n    cursor.parent.jQ.addClass('hasCursor');\n    if (cursor.selection) {\n      cursor.selection.jQ.removeClass('blur');\n      setTimeout(root.selectionChanged); //re-select textarea contents after tabbing away and back\n    }\n    else\n      cursor.show();\n    e.stopPropagation();\n  }).blur(function(e) {\n    cursor.hide().parent.blur();\n    if (cursor.selection)\n      cursor.selection.jQ.addClass('blur');\n    e.stopPropagation();\n  });\n\n  jQ.bind('focus.mathquill blur.mathquill', function(e) {\n    textarea.trigger(e);\n  }).blur();\n}\n\nvar RootMathBlock = P(MathBlock, function(_, _super) {\n  _.latex = function() {\n    return _super.latex.call(this).replace(/(\\\\[a-z]+) (?![a-z])/ig,'$1');\n  };\n  _.text = function() {\n    return this.foldChildren('', function(text, child) {\n      return text + child.text();\n    });\n  };\n  _.renderLatex = function(latex) {\n    var jQ = this.jQ;\n\n    jQ.children().slice(1).remove();\n    this.ends[L] = this.ends[R] = 0;\n\n    delete this.cursor.selection;\n    this.cursor.insAtRightEnd(this).writeLatex(latex);\n  };\n  _.onKey = function(key, e) {\n    switch (key) {\n    case 'Ctrl-Shift-Backspace':\n    case 'Ctrl-Backspace':\n      while (this.cursor[L] || this.cursor.selection) {\n        this.cursor.backspace();\n      }\n      break;\n\n    case 'Shift-Backspace':\n    case 'Backspace':\n      this.cursor.backspace();\n      break;\n\n    // Tab or Esc -> go one block right if it exists, else escape right.\n    case 'Esc':\n    case 'Tab':\n    case 'Spacebar':\n      var parent = this.cursor.parent;\n      // cursor is in root editable, continue default\n      if (parent === this.cursor.root) {\n        if (key === 'Spacebar') e.preventDefault();\n        return;\n      }\n\n      this.cursor.prepareMove();\n      if (parent[R]) {\n        // go one block right\n        this.cursor.insAtLeftEnd(parent[R]);\n      } else {\n        // get out of the block\n        this.cursor.insRightOf(parent.parent);\n      }\n      break;\n\n    // Shift-Tab -> go one block left if it exists, else escape left.\n    case 'Shift-Tab':\n    case 'Shift-Esc':\n    case 'Shift-Spacebar':\n      var parent = this.cursor.parent;\n      //cursor is in root editable, continue default\n      if (parent === this.cursor.root) {\n        if (key === 'Shift-Spacebar') e.preventDefault();\n        return;\n      }\n\n      this.cursor.prepareMove();\n      if (parent[L]) {\n        // go one block left\n        this.cursor.insAtRightEnd(parent[L]);\n      } else {\n        //get out of the block\n        this.cursor.insLeftOf(parent.parent);\n      }\n      break;\n\n    // Prevent newlines from showing up\n    case 'Enter': break;\n\n\n    // End -> move to the end of the current block.\n    case 'End':\n      this.cursor.prepareMove().insAtRightEnd(this.cursor.parent);\n      break;\n\n    // Ctrl-End -> move all the way to the end of the root block.\n    case 'Ctrl-End':\n      this.cursor.prepareMove().insAtRightEnd(this);\n      break;\n\n    // Shift-End -> select to the end of the current block.\n    case 'Shift-End':\n      while (this.cursor[R]) {\n        this.cursor.selectRight();\n      }\n      break;\n\n    // Ctrl-Shift-End -> select to the end of the root block.\n    case 'Ctrl-Shift-End':\n      while (this.cursor[R] || this.cursor.parent !== this) {\n        this.cursor.selectRight();\n      }\n      break;\n\n    // Home -> move to the start of the root block or the current block.\n    case 'Home':\n      this.cursor.prepareMove().insAtLeftEnd(this.cursor.parent);\n      break;\n\n    // Ctrl-Home -> move to the start of the current block.\n    case 'Ctrl-Home':\n      this.cursor.prepareMove().insAtLeftEnd(this);\n      break;\n\n    // Shift-Home -> select to the start of the current block.\n    case 'Shift-Home':\n      while (this.cursor[L]) {\n        this.cursor.selectLeft();\n      }\n      break;\n\n    // Ctrl-Shift-Home -> move to the start of the root block.\n    case 'Ctrl-Shift-Home':\n      while (this.cursor[L] || this.cursor.parent !== this) {\n        this.cursor.selectLeft();\n      }\n      break;\n\n    case 'Left': this.cursor.moveLeft(); break;\n    case 'Shift-Left': this.cursor.selectLeft(); break;\n    case 'Ctrl-Left': break;\n\n    case 'Right': this.cursor.moveRight(); break;\n    case 'Shift-Right': this.cursor.selectRight(); break;\n    case 'Ctrl-Right': break;\n\n    case 'Up': this.cursor.moveUp(); break;\n    case 'Down': this.cursor.moveDown(); break;\n\n    case 'Shift-Up':\n      if (this.cursor[L]) {\n        while (this.cursor[L]) this.cursor.selectLeft();\n      } else {\n        this.cursor.selectLeft();\n      }\n\n    case 'Shift-Down':\n      if (this.cursor[R]) {\n        while (this.cursor[R]) this.cursor.selectRight();\n      }\n      else {\n        this.cursor.selectRight();\n      }\n\n    case 'Ctrl-Up': break;\n    case 'Ctrl-Down': break;\n\n    case 'Ctrl-Shift-Del':\n    case 'Ctrl-Del':\n      while (this.cursor[R] || this.cursor.selection) {\n        this.cursor.deleteForward();\n      }\n      break;\n\n    case 'Shift-Del':\n    case 'Del':\n      this.cursor.deleteForward();\n      break;\n\n    case 'Meta-A':\n    case 'Ctrl-A':\n      //so not stopPropagation'd at RootMathCommand\n      if (this !== this.cursor.root) return;\n\n      this.cursor.prepareMove().insAtRightEnd(this);\n      while (this.cursor[L]) this.cursor.selectLeft();\n      break;\n\n    default:\n      return false;\n    }\n    e.preventDefault();\n    return false;\n  };\n  _.onText = function(ch) {\n    this.cursor.write(ch);\n    return false;\n  };\n});\n\nvar RootMathCommand = P(MathCommand, function(_, _super) {\n  _.init = function(cursor) {\n    _super.init.call(this, '$');\n    this.cursor = cursor;\n  };\n  _.htmlTemplate = '<span class=\"mathquill-rendered-math\">&0</span>';\n  _.createBlocks = function() {\n    this.ends[L] =\n    this.ends[R] =\n      RootMathBlock();\n\n    this.blocks = [ this.ends[L] ];\n\n    this.ends[L].parent = this;\n\n    this.ends[L].cursor = this.cursor;\n    this.ends[L].write = function(cursor, ch, replacedFragment) {\n      if (ch !== '$')\n        MathBlock.prototype.write.call(this, cursor, ch, replacedFragment);\n      else if (this.isEmpty()) {\n        cursor.insRightOf(this.parent).backspace().show();\n        VanillaSymbol('\\\\$','$').createLeftOf(cursor);\n      }\n      else if (!cursor[R])\n        cursor.insRightOf(this.parent);\n      else if (!cursor[L])\n        cursor.insLeftOf(this.parent);\n      else\n        MathBlock.prototype.write.call(this, cursor, ch, replacedFragment);\n    };\n  };\n  _.latex = function() {\n    return '$' + this.ends[L].latex() + '$';\n  };\n});\n\nvar RootTextBlock = P(MathBlock, function(_) {\n  _.renderLatex = function(latex) {\n    var self = this;\n    var cursor = self.cursor;\n    self.jQ.children().slice(1).remove();\n    self.ends[L] = self.ends[R] = 0;\n    delete cursor.selection;\n    cursor.show().insAtRightEnd(self);\n\n    var regex = Parser.regex;\n    var string = Parser.string;\n    var eof = Parser.eof;\n    var all = Parser.all;\n\n    // Parser RootMathCommand\n    var mathMode = string('$').then(latexMathParser)\n      // because TeX is insane, math mode doesn't necessarily\n      // have to end.  So we allow for the case that math mode\n      // continues to the end of the stream.\n      .skip(string('$').or(eof))\n      .map(function(block) {\n        // HACK FIXME: this shouldn't have to have access to cursor\n        var rootMathCommand = RootMathCommand(cursor);\n\n        rootMathCommand.createBlocks();\n        var rootMathBlock = rootMathCommand.ends[L];\n        block.children().adopt(rootMathBlock, 0, 0);\n\n        return rootMathCommand;\n      })\n    ;\n\n    var escapedDollar = string('\\\\$').result('$');\n    var textChar = escapedDollar.or(regex(/^[^$]/)).map(VanillaSymbol);\n    var latexText = mathMode.or(textChar).many();\n    var commands = latexText.skip(eof).or(all.result(false)).parse(latex);\n\n    if (commands) {\n      for (var i = 0; i < commands.length; i += 1) {\n        commands[i].adopt(self, self.ends[R], 0);\n      }\n\n      var html = self.join('html');\n      MathElement.jQize(html).appendTo(self.jQ);\n\n      this.finalizeInsert();\n    }\n  };\n  _.onKey = function(key) {\n    if (key === 'Spacebar' || key === 'Shift-Spacebar') return;\n    RootMathBlock.prototype.onKey.apply(this, arguments);\n  };\n  _.onText = RootMathBlock.prototype.onText;\n  _.write = function(cursor, ch, replacedFragment) {\n    if (replacedFragment) replacedFragment.remove();\n    if (ch === '$')\n      RootMathCommand(cursor).createLeftOf(cursor);\n    else {\n      var html;\n      if (ch === '<') html = '&lt;';\n      else if (ch === '>') html = '&gt;';\n      VanillaSymbol(ch, html).createLeftOf(cursor);\n    }\n  };\n});\n/***************************\n * Commands and Operators.\n **************************/\n\nvar CharCmds = {}, LatexCmds = {}; //single character commands, LaTeX commands\n\nvar scale, // = function(jQ, x, y) { ... }\n//will use a CSS 2D transform to scale the jQuery-wrapped HTML elements,\n//or the filter matrix transform fallback for IE 5.5-8, or gracefully degrade to\n//increasing the fontSize to match the vertical Y scaling factor.\n\n//ideas from http://github.com/louisremi/jquery.transform.js\n//see also http://msdn.microsoft.com/en-us/library/ms533014(v=vs.85).aspx\n\n  forceIERedraw = noop,\n  div = document.createElement('div'),\n  div_style = div.style,\n  transformPropNames = {\n    transform:1,\n    WebkitTransform:1,\n    MozTransform:1,\n    OTransform:1,\n    msTransform:1\n  },\n  transformPropName;\n\nfor (var prop in transformPropNames) {\n  if (prop in div_style) {\n    transformPropName = prop;\n    break;\n  }\n}\n\nif (transformPropName) {\n  scale = function(jQ, x, y) {\n    jQ.css(transformPropName, 'scale('+x+','+y+')');\n  };\n}\nelse if ('filter' in div_style) { //IE 6, 7, & 8 fallback, see https://github.com/laughinghan/mathquill/wiki/Transforms\n  forceIERedraw = function(el){ el.className = el.className; };\n  scale = function(jQ, x, y) { //NOTE: assumes y > x\n    x /= (1+(y-1)/2);\n    jQ.css('fontSize', y + 'em');\n    if (!jQ.hasClass('matrixed-container')) {\n      jQ.addClass('matrixed-container')\n      .wrapInner('<span class=\"matrixed\"></span>');\n    }\n    var innerjQ = jQ.children()\n    .css('filter', 'progid:DXImageTransform.Microsoft'\n        + '.Matrix(M11=' + x + \",SizingMethod='auto expand')\"\n    );\n    function calculateMarginRight() {\n      jQ.css('marginRight', (innerjQ.width()-1)*(x-1)/x + 'px');\n    }\n    calculateMarginRight();\n    var intervalId = setInterval(calculateMarginRight);\n    $(window).load(function() {\n      clearTimeout(intervalId);\n      calculateMarginRight();\n    });\n  };\n}\nelse {\n  scale = function(jQ, x, y) {\n    jQ.css('fontSize', y + 'em');\n  };\n}\n\nvar Style = P(MathCommand, function(_, _super) {\n  _.init = function(ctrlSeq, tagName, attrs) {\n    _super.init.call(this, ctrlSeq, '<'+tagName+' '+attrs+'>&0</'+tagName+'>');\n  };\n});\n\n//fonts\nLatexCmds.mathrm = bind(Style, '\\\\mathrm', 'span', 'class=\"roman font\"');\nLatexCmds.mathit = bind(Style, '\\\\mathit', 'i', 'class=\"font\"');\nLatexCmds.mathbf = bind(Style, '\\\\mathbf', 'b', 'class=\"font\"');\nLatexCmds.mathsf = bind(Style, '\\\\mathsf', 'span', 'class=\"sans-serif font\"');\nLatexCmds.mathtt = bind(Style, '\\\\mathtt', 'span', 'class=\"monospace font\"');\n//text-decoration\nLatexCmds.underline = bind(Style, '\\\\underline', 'span', 'class=\"non-leaf underline\"');\nLatexCmds.overline = LatexCmds.bar = bind(Style, '\\\\overline', 'span', 'class=\"non-leaf overline\"');\n\nvar SupSub = P(MathCommand, function(_, _super) {\n  _.init = function(ctrlSeq, tag, text) {\n    _super.init.call(this, ctrlSeq, '<'+tag+' class=\"non-leaf\">&0</'+tag+'>', [ text ]);\n  };\n  _.finalizeTree = function() {\n    //TODO: use inheritance\n    pray('SupSub is only _ and ^',\n      this.ctrlSeq === '^' || this.ctrlSeq === '_'\n    );\n\n    if (this.ctrlSeq === '_') {\n      this.down = this.ends[L];\n      this.ends[L].up = insLeftOfMeUnlessAtEnd;\n    }\n    else {\n      this.up = this.ends[L];\n      this.ends[L].down = insLeftOfMeUnlessAtEnd;\n    }\n    function insLeftOfMeUnlessAtEnd(cursor) {\n      // cursor.insLeftOf(cmd), unless cursor at the end of block, and every\n      // ancestor cmd is at the end of every ancestor block\n      var cmd = this.parent, ancestorCmd = cursor;\n      do {\n        if (ancestorCmd[R]) {\n          cursor.insLeftOf(cmd);\n          return false;\n        }\n        ancestorCmd = ancestorCmd.parent.parent;\n      } while (ancestorCmd !== cmd);\n      cursor.insRightOf(cmd);\n      return false;\n    }\n  };\n  _.latex = function() {\n    var latex = this.ends[L].latex();\n    if (latex.length === 1)\n      return this.ctrlSeq + latex;\n    else\n      return this.ctrlSeq + '{' + (latex || ' ') + '}';\n  };\n  _.redraw = function() {\n    if (this[L])\n      this[L].respace();\n    //SupSub::respace recursively calls respace on all the following SupSubs\n    //so if leftward is a SupSub, no need to call respace on this or following nodes\n    if (!(this[L] instanceof SupSub)) {\n      this.respace();\n      //and if rightward is a SupSub, then this.respace() will have already called\n      //this[R].respace()\n      if (this[R] && !(this[R] instanceof SupSub))\n        this[R].respace();\n    }\n  };\n  _.respace = function() {\n    if (\n      this[L].ctrlSeq === '\\\\int ' || (\n        this[L] instanceof SupSub && this[L].ctrlSeq != this.ctrlSeq\n        && this[L][L] && this[L][L].ctrlSeq === '\\\\int '\n      )\n    ) {\n      if (!this.limit) {\n        this.limit = true;\n        this.jQ.addClass('limit');\n      }\n    }\n    else {\n      if (this.limit) {\n        this.limit = false;\n        this.jQ.removeClass('limit');\n      }\n    }\n\n    this.respaced = this[L] instanceof SupSub && this[L].ctrlSeq != this.ctrlSeq && !this[L].respaced;\n    if (this.respaced) {\n      var fontSize = +this.jQ.css('fontSize').slice(0,-2),\n        leftWidth = this[L].jQ.outerWidth(),\n        thisWidth = this.jQ.outerWidth();\n      this.jQ.css({\n        left: (this.limit && this.ctrlSeq === '_' ? -.25 : 0) - leftWidth/fontSize + 'em',\n        marginRight: .1 - min(thisWidth, leftWidth)/fontSize + 'em'\n          //1px extra so it doesn't wrap in retarded browsers (Firefox 2, I think)\n      });\n    }\n    else if (this.limit && this.ctrlSeq === '_') {\n      this.jQ.css({\n        left: '-.25em',\n        marginRight: ''\n      });\n    }\n    else {\n      this.jQ.css({\n        left: '',\n        marginRight: ''\n      });\n    }\n\n    if (this[R] instanceof SupSub)\n      this[R].respace();\n\n    return this;\n  };\n});\n\nLatexCmds.subscript =\nLatexCmds._ = bind(SupSub, '_', 'sub', '_');\n\nLatexCmds.superscript =\nLatexCmds.supscript =\nLatexCmds['^'] = bind(SupSub, '^', 'sup', '**');\n\nvar Fraction =\nLatexCmds.frac =\nLatexCmds.dfrac =\nLatexCmds.cfrac =\nLatexCmds.fraction = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\frac';\n  _.htmlTemplate =\n      '<span class=\"fraction non-leaf\">'\n    +   '<span class=\"numerator\">&0</span>'\n    +   '<span class=\"denominator\">&1</span>'\n    +   '<span style=\"display:inline-block;width:0\">&nbsp;</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['(', '/', ')'];\n  _.finalizeTree = function() {\n    this.up = this.ends[R].up = this.ends[L];\n    this.down = this.ends[L].down = this.ends[R];\n  };\n});\n\nvar LiveFraction =\nLatexCmds.over =\nCharCmds['/'] = P(Fraction, function(_, _super) {\n  _.createLeftOf = function(cursor) {\n    if (!this.replacedFragment) {\n      var leftward = cursor[L];\n      while (leftward &&\n        !(\n          leftward instanceof BinaryOperator ||\n          leftward instanceof TextBlock ||\n          leftward instanceof BigSymbol ||\n          ',;:'.split('').indexOf(leftward.ctrlSeq) > -1\n        ) //lookbehind for operator\n      )\n        leftward = leftward[L];\n\n      if (leftward instanceof BigSymbol && leftward[R] instanceof SupSub) {\n        leftward = leftward[R];\n        if (leftward[R] instanceof SupSub && leftward[R].ctrlSeq != leftward.ctrlSeq)\n          leftward = leftward[R];\n      }\n\n      if (leftward !== cursor[L]) {\n        this.replaces(MathFragment(leftward[R] || cursor.parent.ends[L], cursor[L]));\n        cursor[L] = leftward;\n      }\n    }\n    _super.createLeftOf.call(this, cursor);\n  };\n});\n\nvar SquareRoot =\nLatexCmds.sqrt =\nLatexCmds['√'] = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\sqrt';\n  _.htmlTemplate =\n      '<span class=\"non-leaf\">'\n    +   '<span class=\"scaled sqrt-prefix\">&radic;</span>'\n    +   '<span class=\"non-leaf sqrt-stem\">&0</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['sqrt(', ')'];\n  _.parser = function() {\n    return latexMathParser.optBlock.then(function(optBlock) {\n      return latexMathParser.block.map(function(block) {\n        var nthroot = NthRoot();\n        nthroot.blocks = [ optBlock, block ];\n        optBlock.adopt(nthroot, 0, 0);\n        block.adopt(nthroot, optBlock, 0);\n        return nthroot;\n      });\n    }).or(_super.parser.call(this));\n  };\n  _.redraw = function() {\n    var block = this.ends[R].jQ;\n    scale(block.prev(), 1, block.innerHeight()/+block.css('fontSize').slice(0,-2) - .1);\n  };\n});\n\nvar Vec = LatexCmds.vec = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\vec';\n  _.htmlTemplate =\n      '<span class=\"non-leaf\">'\n    +   '<span class=\"vector-prefix\">&rarr;</span>'\n    +   '<span class=\"vector-stem\">&0</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['vec(', ')'];\n});\n\nvar NthRoot =\nLatexCmds.nthroot = P(SquareRoot, function(_, _super) {\n  _.htmlTemplate =\n      '<sup class=\"nthroot non-leaf\">&0</sup>'\n    + '<span class=\"scaled\">'\n    +   '<span class=\"sqrt-prefix scaled\">&radic;</span>'\n    +   '<span class=\"sqrt-stem non-leaf\">&1</span>'\n    + '</span>'\n  ;\n  _.textTemplate = ['sqrt[', '](', ')'];\n  _.latex = function() {\n    return '\\\\sqrt['+this.ends[L].latex()+']{'+this.ends[R].latex()+'}';\n  };\n});\n\n// Round/Square/Curly/Angle Brackets (aka Parens/Brackets/Braces)\nvar Bracket = P(MathCommand, function(_, _super) {\n  _.init = function(open, close, ctrlSeq, end) {\n    _super.init.call(this, '\\\\left'+ctrlSeq,\n        '<span class=\"non-leaf\">'\n      +   '<span class=\"scaled paren\">'+open+'</span>'\n      +   '<span class=\"non-leaf\">&0</span>'\n      +   '<span class=\"scaled paren\">'+close+'</span>'\n      + '</span>',\n      [open, close]);\n    this.end = '\\\\right'+end;\n  };\n  _.jQadd = function() {\n    _super.jQadd.apply(this, arguments);\n    var jQ = this.jQ;\n    this.bracketjQs = jQ.children(':first').add(jQ.children(':last'));\n  };\n  _.latex = function() {\n    return this.ctrlSeq + this.ends[L].latex() + this.end;\n  };\n  _.redraw = function() {\n    var blockjQ = this.ends[L].jQ;\n\n    var height = blockjQ.outerHeight()/+blockjQ.css('fontSize').slice(0,-2);\n\n    scale(this.bracketjQs, min(1 + .2*(height - 1), 1.2), 1.05*height);\n  };\n});\n\nLatexCmds.left = P(MathCommand, function(_) {\n  _.parser = function() {\n    var regex = Parser.regex;\n    var string = Parser.string;\n    var succeed = Parser.succeed;\n    var optWhitespace = Parser.optWhitespace;\n\n    return optWhitespace.then(regex(/^(?:[([|]|\\\\\\{)/))\n      .then(function(open) {\n        if (open.charAt(0) === '\\\\') open = open.slice(1);\n\n        var cmd = CharCmds[open]();\n\n        return latexMathParser\n          .map(function (block) {\n            cmd.blocks = [ block ];\n            block.adopt(cmd, 0, 0);\n          })\n          .then(string('\\\\right'))\n          .skip(optWhitespace)\n          .then(regex(/^(?:[\\])|]|\\\\\\})/))\n          .then(function(close) {\n            if (close.slice(-1) !== cmd.end.slice(-1)) {\n              return Parser.fail('open doesn\\'t match close');\n            }\n\n            return succeed(cmd);\n          })\n        ;\n      })\n    ;\n  };\n});\n\nLatexCmds.right = P(MathCommand, function(_) {\n  _.parser = function() {\n    return Parser.fail('unmatched \\\\right');\n  };\n});\n\nLatexCmds.lbrace =\nCharCmds['{'] = bind(Bracket, '{', '}', '\\\\{', '\\\\}');\nLatexCmds.langle =\nLatexCmds.lang = bind(Bracket, '&lang;','&rang;','\\\\langle ','\\\\rangle ');\n\n// Closing bracket matching opening bracket above\nvar CloseBracket = P(Bracket, function(_, _super) {\n  _.createLeftOf = function(cursor) {\n    // if I'm at the end of my parent who is a matching open-paren,\n    // and I am not replacing a selection fragment, don't create me,\n    // just put cursor after my parent\n    if (!cursor[R] && cursor.parent.parent && cursor.parent.parent.end === this.end && !this.replacedFragment)\n      cursor.insRightOf(cursor.parent.parent);\n    else\n      _super.createLeftOf.call(this, cursor);\n  };\n  _.placeCursor = function(cursor) {\n    this.ends[L].blur();\n    cursor.insRightOf(this);\n  };\n});\n\nLatexCmds.rbrace =\nCharCmds['}'] = bind(CloseBracket, '{','}','\\\\{','\\\\}');\nLatexCmds.rangle =\nLatexCmds.rang = bind(CloseBracket, '&lang;','&rang;','\\\\langle ','\\\\rangle ');\n\nvar parenMixin = function(_, _super) {\n  _.init = function(open, close) {\n    _super.init.call(this, open, close, open, close);\n  };\n};\n\nvar Paren = P(Bracket, parenMixin);\n\nLatexCmds.lparen =\nCharCmds['('] = bind(Paren, '(', ')');\nLatexCmds.lbrack =\nLatexCmds.lbracket =\nCharCmds['['] = bind(Paren, '[', ']');\n\nvar CloseParen = P(CloseBracket, parenMixin);\n\nLatexCmds.rparen =\nCharCmds[')'] = bind(CloseParen, '(', ')');\nLatexCmds.rbrack =\nLatexCmds.rbracket =\nCharCmds[']'] = bind(CloseParen, '[', ']');\n\nvar Pipes =\nLatexCmds.lpipe =\nLatexCmds.rpipe =\nCharCmds['|'] = P(Paren, function(_, _super) {\n  _.init = function() {\n    _super.init.call(this, '|', '|');\n  };\n\n  _.createLeftOf = CloseBracket.prototype.createLeftOf;\n});\n\nvar TextBlock =\nCharCmds.$ =\nLatexCmds.text =\nLatexCmds.textnormal =\nLatexCmds.textrm =\nLatexCmds.textup =\nLatexCmds.textmd = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\text';\n  _.htmlTemplate = '<span class=\"text\">&0</span>';\n  _.replaces = function(replacedText) {\n    if (replacedText instanceof MathFragment)\n      this.replacedText = replacedText.remove().jQ.text();\n    else if (typeof replacedText === 'string')\n      this.replacedText = replacedText;\n  };\n  _.textTemplate = ['\"', '\"'];\n  _.parser = function() {\n    var self = this;\n\n    // TODO: correctly parse text mode\n    var string = Parser.string;\n    var regex = Parser.regex;\n    var optWhitespace = Parser.optWhitespace;\n    return optWhitespace\n      .then(string('{')).then(regex(/^[^}]*/)).skip(string('}'))\n      .map(function(text) {\n        self.createBlocks();\n        var block = self.ends[L];\n        for (var i = 0; i < text.length; i += 1) {\n          var ch = VanillaSymbol(text.charAt(i));\n          ch.adopt(block, block.ends[R], 0);\n        }\n        return self;\n      })\n    ;\n  };\n  _.createBlocks = function() {\n    //FIXME: another possible Law of Demeter violation, but this seems much cleaner, like it was supposed to be done this way\n    this.ends[L] =\n    this.ends[R] =\n      InnerTextBlock();\n\n    this.blocks = [ this.ends[L] ];\n\n    this.ends[L].parent = this;\n  };\n  _.finalizeInsert = function() {\n    //FIXME HACK blur removes the TextBlock\n    this.ends[L].blur = function() { delete this.blur; return this; };\n    _super.finalizeInsert.call(this);\n  };\n  _.createLeftOf = function(cursor) {\n    _super.createLeftOf.call(this, this.cursor = cursor);\n\n    if (this.replacedText)\n      for (var i = 0; i < this.replacedText.length; i += 1)\n        this.ends[L].write(cursor, this.replacedText.charAt(i));\n  };\n});\n\nvar InnerTextBlock = P(MathBlock, function(_, _super) {\n  _.onKey = function(key, e) {\n    if (key === 'Spacebar' || key === 'Shift-Spacebar') return false;\n  };\n  // backspace and delete at ends of block don't unwrap\n  _.deleteOutOf = function(dir, cursor) {\n    if (this.isEmpty()) cursor.insRightOf(this.parent);\n  };\n  _.write = function(cursor, ch, replacedFragment) {\n    if (replacedFragment) replacedFragment.remove();\n\n    if (ch !== '$') {\n      var html;\n      if (ch === '<') html = '&lt;';\n      else if (ch === '>') html = '&gt;';\n      VanillaSymbol(ch, html).createLeftOf(cursor);\n    }\n    else if (this.isEmpty()) {\n      cursor.insRightOf(this.parent).backspace();\n      VanillaSymbol('\\\\$','$').createLeftOf(cursor);\n    }\n    else if (!cursor[R])\n      cursor.insRightOf(this.parent);\n    else if (!cursor[L])\n      cursor.insLeftOf(this.parent);\n    else { //split apart\n      var rightward = TextBlock();\n      rightward.replaces(MathFragment(cursor[R], this.ends[R]));\n\n      cursor.insRightOf(this.parent);\n\n      // FIXME HACK: pretend no prev so they don't get merged when\n      // .createLeftOf() calls blur on the InnerTextBlock\n      rightward.adopt = function() {\n        delete this.adopt;\n        this.adopt.apply(this, arguments);\n        this[L] = 0;\n      };\n      rightward.createLeftOf(cursor);\n      rightward[L] = this.parent;\n\n      cursor.insLeftOf(rightward);\n    }\n    return false;\n  };\n  _.blur = function() {\n    this.jQ.removeClass('hasCursor');\n    if (this.isEmpty()) {\n      var textblock = this.parent, cursor = textblock.cursor;\n      if (cursor.parent === this)\n        this.jQ.addClass('empty');\n      else {\n        cursor.hide();\n        textblock.remove();\n        if (cursor[R] === textblock)\n          cursor[R] = textblock[R];\n        else if (cursor[L] === textblock)\n          cursor[L] = textblock[L];\n\n        cursor.show().parent.bubble('redraw');\n      }\n    }\n    return this;\n  };\n  _.focus = function() {\n    _super.focus.call(this);\n\n    var textblock = this.parent;\n    if (textblock[R].ctrlSeq === textblock.ctrlSeq) { //TODO: seems like there should be a better way to move MathElements around\n      var innerblock = this,\n        cursor = textblock.cursor,\n        rightward = textblock[R].ends[L];\n\n      rightward.eachChild(function(child){\n        child.parent = innerblock;\n        child.jQ.appendTo(innerblock.jQ);\n      });\n\n      if (this.ends[R])\n        this.ends[R][R] = rightward.ends[L];\n      else\n        this.ends[L] = rightward.ends[L];\n\n      rightward.ends[L][L] = this.ends[R];\n      this.ends[R] = rightward.ends[R];\n\n      rightward.parent.remove();\n\n      if (cursor[L])\n        cursor.insRightOf(cursor[L]);\n      else\n        cursor.insAtLeftEnd(this);\n\n      cursor.parent.bubble('redraw');\n    }\n    else if (textblock[L].ctrlSeq === textblock.ctrlSeq) {\n      var cursor = textblock.cursor;\n      if (cursor[L])\n        textblock[L].ends[L].focus();\n      else\n        cursor.insAtRightEnd(textblock[L].ends[L]);\n    }\n    return this;\n  };\n});\n\n\nfunction makeTextBlock(latex, tagName, attrs) {\n  return P(TextBlock, {\n    ctrlSeq: latex,\n    htmlTemplate: '<'+tagName+' '+attrs+'>&0</'+tagName+'>'\n  });\n}\n\nLatexCmds.em = LatexCmds.italic = LatexCmds.italics =\nLatexCmds.emph = LatexCmds.textit = LatexCmds.textsl =\n  makeTextBlock('\\\\textit', 'i', 'class=\"text\"');\nLatexCmds.strong = LatexCmds.bold = LatexCmds.textbf =\n  makeTextBlock('\\\\textbf', 'b', 'class=\"text\"');\nLatexCmds.sf = LatexCmds.textsf =\n  makeTextBlock('\\\\textsf', 'span', 'class=\"sans-serif text\"');\nLatexCmds.tt = LatexCmds.texttt =\n  makeTextBlock('\\\\texttt', 'span', 'class=\"monospace text\"');\nLatexCmds.textsc =\n  makeTextBlock('\\\\textsc', 'span', 'style=\"font-variant:small-caps\" class=\"text\"');\nLatexCmds.uppercase =\n  makeTextBlock('\\\\uppercase', 'span', 'style=\"text-transform:uppercase\" class=\"text\"');\nLatexCmds.lowercase =\n  makeTextBlock('\\\\lowercase', 'span', 'style=\"text-transform:lowercase\" class=\"text\"');\n\n// input box to type a variety of LaTeX commands beginning with a backslash\nvar LatexCommandInput =\nCharCmds['\\\\'] = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\';\n  _.replaces = function(replacedFragment) {\n    this._replacedFragment = replacedFragment.disown();\n    this.isEmpty = function() { return false; };\n  };\n  _.htmlTemplate = '<span class=\"latex-command-input non-leaf\">\\\\<span>&0</span></span>';\n  _.textTemplate = ['\\\\'];\n  _.createBlocks = function() {\n    _super.createBlocks.call(this);\n    this.ends[L].focus = function() {\n      this.parent.jQ.addClass('hasCursor');\n      if (this.isEmpty())\n        this.parent.jQ.removeClass('empty');\n\n      return this;\n    };\n    this.ends[L].blur = function() {\n      this.parent.jQ.removeClass('hasCursor');\n      if (this.isEmpty())\n        this.parent.jQ.addClass('empty');\n\n      return this;\n    };\n  };\n  _.createLeftOf = function(cursor) {\n    _super.createLeftOf.call(this, cursor);\n\n    this.cursor = cursor.insAtRightEnd(this.ends[L]);\n    if (this._replacedFragment) {\n      var el = this.jQ[0];\n      this.jQ =\n        this._replacedFragment.jQ.addClass('blur').bind(\n          'mousedown mousemove', //FIXME: is monkey-patching the mousedown and mousemove handlers the right way to do this?\n          function(e) {\n            $(e.target = el).trigger(e);\n            return false;\n          }\n        ).insertBefore(this.jQ).add(this.jQ);\n    }\n\n    this.ends[L].write = function(cursor, ch, replacedFragment) {\n      if (replacedFragment) replacedFragment.remove();\n\n      if (ch.match(/[a-z]/i)) VanillaSymbol(ch).createLeftOf(cursor);\n      else {\n        this.parent.renderCommand();\n        if (ch !== '\\\\' || !this.isEmpty()) this.parent.parent.write(cursor, ch);\n      }\n    };\n  };\n  _.latex = function() {\n    return '\\\\' + this.ends[L].latex() + ' ';\n  };\n  _.onKey = function(key, e) {\n    if (key === 'Tab' || key === 'Enter' || key === 'Spacebar') {\n      this.renderCommand();\n      e.preventDefault();\n      return false;\n    }\n  };\n  _.renderCommand = function() {\n    this.jQ = this.jQ.last();\n    this.remove();\n    if (this[R]) {\n      this.cursor.insLeftOf(this[R]);\n    } else {\n      this.cursor.insAtRightEnd(this.parent);\n    }\n\n    var latex = this.ends[L].latex(), cmd;\n    if (!latex) latex = 'backslash';\n    this.cursor.insertCmd(latex, this._replacedFragment);\n  };\n});\n\nvar Binomial =\nLatexCmds.binom =\nLatexCmds.binomial = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\binom';\n  _.htmlTemplate =\n      '<span class=\"paren scaled\">(</span>'\n    + '<span class=\"non-leaf\">'\n    +   '<span class=\"array non-leaf\">'\n    +     '<span>&0</span>'\n    +     '<span>&1</span>'\n    +   '</span>'\n    + '</span>'\n    + '<span class=\"paren scaled\">)</span>'\n  ;\n  _.textTemplate = ['choose(',',',')'];\n  _.redraw = function() {\n    var blockjQ = this.jQ.eq(1);\n\n    var height = blockjQ.outerHeight()/+blockjQ.css('fontSize').slice(0,-2);\n\n    var parens = this.jQ.filter('.paren');\n    scale(parens, min(1 + .2*(height - 1), 1.2), 1.05*height);\n  };\n});\n\nvar Choose =\nLatexCmds.choose = P(Binomial, function(_) {\n  _.createLeftOf = LiveFraction.prototype.createLeftOf;\n});\n\nvar Vector =\nLatexCmds.vector = P(MathCommand, function(_, _super) {\n  _.ctrlSeq = '\\\\vector';\n  _.htmlTemplate = '<span class=\"array\"><span>&0</span></span>';\n  _.latex = function() {\n    return '\\\\begin{matrix}' + this.foldChildren([], function(latex, child) {\n      latex.push(child.latex());\n      return latex;\n    }).join('\\\\\\\\') + '\\\\end{matrix}';\n  };\n  _.text = function() {\n    return '[' + this.foldChildren([], function(text, child) {\n      text.push(child.text());\n      return text;\n    }).join() + ']';\n  };\n  _.createLeftOf = function(cursor) {\n    _super.createLeftOf.call(this, this.cursor = cursor);\n  };\n  _.onKey = function(key, e) {\n    var currentBlock = this.cursor.parent;\n\n    if (currentBlock.parent === this) {\n      if (key === 'Enter') { //enter\n        var newBlock = MathBlock();\n        newBlock.parent = this;\n        newBlock.jQ = $('<span></span>')\n          .attr(mqBlockId, newBlock.id)\n          .insertAfter(currentBlock.jQ);\n        if (currentBlock[R])\n          currentBlock[R][L] = newBlock;\n        else\n          this.ends[R] = newBlock;\n\n        newBlock[R] = currentBlock[R];\n        currentBlock[R] = newBlock;\n        newBlock[L] = currentBlock;\n        this.bubble('redraw').cursor.insAtRightEnd(newBlock);\n\n        e.preventDefault();\n        return false;\n      }\n      else if (key === 'Tab' && !currentBlock[R]) {\n        if (currentBlock.isEmpty()) {\n          if (currentBlock[L]) {\n            this.cursor.insRightOf(this);\n            delete currentBlock[L][R];\n            this.ends[R] = currentBlock[L];\n            currentBlock.jQ.remove();\n            this.bubble('redraw');\n\n            e.preventDefault();\n            return false;\n          }\n          else\n            return;\n        }\n\n        var newBlock = MathBlock();\n        newBlock.parent = this;\n        newBlock.jQ = $('<span></span>').attr(mqBlockId, newBlock.id).appendTo(this.jQ);\n        this.ends[R] = newBlock;\n        currentBlock[R] = newBlock;\n        newBlock[L] = currentBlock;\n        this.bubble('redraw').cursor.insAtRightEnd(newBlock);\n\n        e.preventDefault();\n        return false;\n      }\n      else if (e.which === 8) { //backspace\n        if (currentBlock.isEmpty()) {\n          if (currentBlock[L]) {\n            this.cursor.insAtRightEnd(currentBlock[L])\n            currentBlock[L][R] = currentBlock[R];\n          }\n          else {\n            this.cursor.insLeftOf(this);\n            this.ends[L] = currentBlock[R];\n          }\n\n          if (currentBlock[R])\n            currentBlock[R][L] = currentBlock[L];\n          else\n            this.ends[R] = currentBlock[L];\n\n          currentBlock.jQ.remove();\n          if (this.isEmpty())\n            this.cursor.deleteForward();\n          else\n            this.bubble('redraw');\n\n          e.preventDefault();\n          return false;\n        }\n        else if (!this.cursor[L]) {\n          e.preventDefault();\n          return false;\n        }\n      }\n    }\n  };\n});\n\nLatexCmds.editable = P(RootMathCommand, function(_, _super) {\n  _.init = function() {\n    MathCommand.prototype.init.call(this, '\\\\editable');\n  };\n\n  _.jQadd = function() {\n    var self = this;\n    // FIXME: this entire method is a giant hack to get around\n    // having to call createBlocks, and createRoot expecting to\n    // render the contents' LaTeX. Both need to be refactored.\n    _super.jQadd.apply(self, arguments);\n    var block = self.ends[L].disown();\n    var blockjQ = self.jQ.children().detach();\n\n    self.ends[L] =\n    self.ends[R] =\n      RootMathBlock();\n\n    self.blocks = [ self.ends[L] ];\n\n    self.ends[L].parent = self;\n\n    createRoot(self.jQ, self.ends[L], false, true);\n    self.cursor = self.ends[L].cursor;\n\n    block.children().adopt(self.ends[L], 0, 0);\n    blockjQ.appendTo(self.ends[L].jQ);\n\n    self.ends[L].cursor.insAtRightEnd(self.ends[L]);\n  };\n\n  _.latex = function(){ return this.ends[L].latex(); };\n  _.text = function(){ return this.ends[L].text(); };\n});\n/**********************************\n * Symbols and Special Characters\n *********************************/\n\nLatexCmds.f = bind(Symbol, 'f', '<var class=\"florin\">&fnof;</var><span style=\"display:inline-block;width:0\">&nbsp;</span>');\n\nvar Variable = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<var>'+(html || ch)+'</var>');\n  };\n  _.text = function() {\n    var text = this.ctrlSeq;\n    if (this[L] && !(this[L] instanceof Variable)\n        && !(this[L] instanceof BinaryOperator))\n      text = '*' + text;\n    if (this[R] && !(this[R] instanceof BinaryOperator)\n        && !(this[R].ctrlSeq === '^'))\n      text += '*';\n    return text;\n  };\n});\n\nvar VanillaSymbol = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<span>'+(html || ch)+'</span>');\n  };\n});\n\nCharCmds[' '] = bind(VanillaSymbol, '\\\\:', ' ');\n\nLatexCmds.prime = CharCmds[\"'\"] = bind(VanillaSymbol, \"'\", '&prime;');\n\n// does not use Symbola font\nvar NonSymbolaSymbol = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<span class=\"nonSymbola\">'+(html || ch)+'</span>');\n  };\n});\n\nLatexCmds['@'] = NonSymbolaSymbol;\nLatexCmds['&'] = bind(NonSymbolaSymbol, '\\\\&', '&amp;');\nLatexCmds['%'] = bind(NonSymbolaSymbol, '\\\\%', '%');\n\n//the following are all Greek to me, but this helped a lot: http://www.ams.org/STIX/ion/stixsig03.html\n\n//lowercase Greek letter variables\nLatexCmds.alpha =\nLatexCmds.beta =\nLatexCmds.gamma =\nLatexCmds.delta =\nLatexCmds.zeta =\nLatexCmds.eta =\nLatexCmds.theta =\nLatexCmds.iota =\nLatexCmds.kappa =\nLatexCmds.mu =\nLatexCmds.nu =\nLatexCmds.xi =\nLatexCmds.rho =\nLatexCmds.sigma =\nLatexCmds.tau =\nLatexCmds.chi =\nLatexCmds.psi =\nLatexCmds.omega = P(Variable, function(_, _super) {\n  _.init = function(latex) {\n    _super.init.call(this,'\\\\'+latex+' ','&'+latex+';');\n  };\n});\n\n//why can't anybody FUCKING agree on these\nLatexCmds.phi = //W3C or Unicode?\n  bind(Variable,'\\\\phi ','&#981;');\n\nLatexCmds.phiv = //Elsevier and 9573-13\nLatexCmds.varphi = //AMS and LaTeX\n  bind(Variable,'\\\\varphi ','&phi;');\n\nLatexCmds.epsilon = //W3C or Unicode?\n  bind(Variable,'\\\\epsilon ','&#1013;');\n\nLatexCmds.epsiv = //Elsevier and 9573-13\nLatexCmds.varepsilon = //AMS and LaTeX\n  bind(Variable,'\\\\varepsilon ','&epsilon;');\n\nLatexCmds.piv = //W3C/Unicode and Elsevier and 9573-13\nLatexCmds.varpi = //AMS and LaTeX\n  bind(Variable,'\\\\varpi ','&piv;');\n\nLatexCmds.sigmaf = //W3C/Unicode\nLatexCmds.sigmav = //Elsevier\nLatexCmds.varsigma = //LaTeX\n  bind(Variable,'\\\\varsigma ','&sigmaf;');\n\nLatexCmds.thetav = //Elsevier and 9573-13\nLatexCmds.vartheta = //AMS and LaTeX\nLatexCmds.thetasym = //W3C/Unicode\n  bind(Variable,'\\\\vartheta ','&thetasym;');\n\nLatexCmds.upsilon = //AMS and LaTeX and W3C/Unicode\nLatexCmds.upsi = //Elsevier and 9573-13\n  bind(Variable,'\\\\upsilon ','&upsilon;');\n\n//these aren't even mentioned in the HTML character entity references\nLatexCmds.gammad = //Elsevier\nLatexCmds.Gammad = //9573-13 -- WTF, right? I dunno if this was a typo in the reference (see above)\nLatexCmds.digamma = //LaTeX\n  bind(Variable,'\\\\digamma ','&#989;');\n\nLatexCmds.kappav = //Elsevier\nLatexCmds.varkappa = //AMS and LaTeX\n  bind(Variable,'\\\\varkappa ','&#1008;');\n\nLatexCmds.rhov = //Elsevier and 9573-13\nLatexCmds.varrho = //AMS and LaTeX\n  bind(Variable,'\\\\varrho ','&#1009;');\n\n//Greek constants, look best in un-italicised Times New Roman\nLatexCmds.pi = LatexCmds['π'] = bind(NonSymbolaSymbol,'\\\\pi ','&pi;');\nLatexCmds.lambda = bind(NonSymbolaSymbol,'\\\\lambda ','&lambda;');\n\n//uppercase greek letters\n\nLatexCmds.Upsilon = //LaTeX\nLatexCmds.Upsi = //Elsevier and 9573-13\nLatexCmds.upsih = //W3C/Unicode \"upsilon with hook\"\nLatexCmds.Upsih = //'cos it makes sense to me\n  bind(Symbol,'\\\\Upsilon ','<var style=\"font-family: serif\">&upsih;</var>'); //Symbola's 'upsilon with a hook' is a capital Y without hooks :(\n\n//other symbols with the same LaTeX command and HTML character entity reference\nLatexCmds.Gamma =\nLatexCmds.Delta =\nLatexCmds.Theta =\nLatexCmds.Lambda =\nLatexCmds.Xi =\nLatexCmds.Pi =\nLatexCmds.Sigma =\nLatexCmds.Phi =\nLatexCmds.Psi =\nLatexCmds.Omega =\nLatexCmds.forall = P(VanillaSymbol, function(_, _super) {\n  _.init = function(latex) {\n    _super.init.call(this,'\\\\'+latex+' ','&'+latex+';');\n  };\n});\n\n// symbols that aren't a single MathCommand, but are instead a whole\n// Fragment. Creates the Fragment from a LaTeX string\nvar LatexFragment = P(MathCommand, function(_) {\n  _.init = function(latex) { this.latex = latex; };\n  _.createLeftOf = function(cursor) { cursor.writeLatex(this.latex); };\n  _.parser = function() {\n    var frag = latexMathParser.parse(this.latex).children();\n    return Parser.succeed(frag);\n  };\n});\n\n// for what seems to me like [stupid reasons][1], Unicode provides\n// subscripted and superscripted versions of all ten Arabic numerals,\n// as well as [so-called \"vulgar fractions\"][2].\n// Nobody really cares about most of them, but some of them actually\n// predate Unicode, dating back to [ISO-8859-1][3], apparently also\n// known as \"Latin-1\", which among other things [Windows-1252][4]\n// largely coincides with, so Microsoft Word sometimes inserts them\n// and they get copy-pasted into MathQuill.\n//\n// (Irrelevant but funny story: Windows-1252 is actually a strict\n// superset of the \"closely related but distinct\"[3] \"ISO 8859-1\" --\n// see the lack of a dash after \"ISO\"? Completely different character\n// set, like elephants vs elephant seals, or \"Zombies\" vs \"Zombie\n// Redneck Torture Family\". What kind of idiot would get them confused.\n// People in fact got them confused so much, it was so common to\n// mislabel Windows-1252 text as ISO-8859-1, that most modern web\n// browsers and email clients treat the MIME charset of ISO-8859-1\n// as actually Windows-1252, behavior now standard in the HTML5 spec.)\n//\n// [1]: http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts\n// [2]: http://en.wikipedia.org/wiki/Number_Forms\n// [3]: http://en.wikipedia.org/wiki/ISO/IEC_8859-1\n// [4]: http://en.wikipedia.org/wiki/Windows-1252\nLatexCmds['¹'] = bind(LatexFragment, '^1');\nLatexCmds['²'] = bind(LatexFragment, '^2');\nLatexCmds['³'] = bind(LatexFragment, '^3');\nLatexCmds['¼'] = bind(LatexFragment, '\\\\frac14');\nLatexCmds['½'] = bind(LatexFragment, '\\\\frac12');\nLatexCmds['¾'] = bind(LatexFragment, '\\\\frac34');\n\nvar BinaryOperator = P(Symbol, function(_, _super) {\n  _.init = function(ctrlSeq, html, text) {\n    _super.init.call(this,\n      ctrlSeq, '<span class=\"binary-operator\">'+html+'</span>', text\n    );\n  };\n});\n\nvar PlusMinus = P(BinaryOperator, function(_) {\n  _.init = VanillaSymbol.prototype.init;\n\n  _.respace = function() {\n    if (!this[L]) {\n      this.jQ[0].className = '';\n    }\n    else if (\n      this[L] instanceof BinaryOperator &&\n      this[R] && !(this[R] instanceof BinaryOperator)\n    ) {\n      this.jQ[0].className = 'unary-operator';\n    }\n    else {\n      this.jQ[0].className = 'binary-operator';\n    }\n    return this;\n  };\n});\n\nLatexCmds['+'] = bind(PlusMinus, '+', '+');\n//yes, these are different dashes, I think one is an en dash and the other is a hyphen\nLatexCmds['–'] = LatexCmds['-'] = bind(PlusMinus, '-', '&minus;');\nLatexCmds['±'] = LatexCmds.pm = LatexCmds.plusmn = LatexCmds.plusminus =\n  bind(PlusMinus,'\\\\pm ','&plusmn;');\nLatexCmds.mp = LatexCmds.mnplus = LatexCmds.minusplus =\n  bind(PlusMinus,'\\\\mp ','&#8723;');\n\nCharCmds['*'] = LatexCmds.sdot = LatexCmds.cdot =\n  bind(BinaryOperator, '\\\\cdot ', '&middot;');\n//semantically should be &sdot;, but &middot; looks better\n\nLatexCmds['='] = bind(BinaryOperator, '=', '=');\nLatexCmds['<'] = bind(BinaryOperator, '<', '&lt;');\nLatexCmds['>'] = bind(BinaryOperator, '>', '&gt;');\n\nLatexCmds.notin =\nLatexCmds.sim =\nLatexCmds.cong =\nLatexCmds.equiv =\nLatexCmds.oplus =\nLatexCmds.otimes = P(BinaryOperator, function(_, _super) {\n  _.init = function(latex) {\n    _super.init.call(this, '\\\\'+latex+' ', '&'+latex+';');\n  };\n});\n\nLatexCmds.times = bind(BinaryOperator, '\\\\times ', '&times;', '[x]');\n\nLatexCmds['÷'] = LatexCmds.div = LatexCmds.divide = LatexCmds.divides =\n  bind(BinaryOperator,'\\\\div ','&divide;', '[/]');\n\nLatexCmds['≠'] = LatexCmds.ne = LatexCmds.neq = bind(BinaryOperator,'\\\\ne ','&ne;');\n\nLatexCmds.ast = LatexCmds.star = LatexCmds.loast = LatexCmds.lowast =\n  bind(BinaryOperator,'\\\\ast ','&lowast;');\n  //case 'there4 = // a special exception for this one, perhaps?\nLatexCmds.therefor = LatexCmds.therefore =\n  bind(BinaryOperator,'\\\\therefore ','&there4;');\n\nLatexCmds.cuz = // l33t\nLatexCmds.because = bind(BinaryOperator,'\\\\because ','&#8757;');\n\nLatexCmds.prop = LatexCmds.propto = bind(BinaryOperator,'\\\\propto ','&prop;');\n\nLatexCmds['≈'] = LatexCmds.asymp = LatexCmds.approx = bind(BinaryOperator,'\\\\approx ','&asymp;');\n\nLatexCmds.lt = bind(BinaryOperator,'<','&lt;');\n\nLatexCmds.gt = bind(BinaryOperator,'>','&gt;');\n\nLatexCmds['≤'] = LatexCmds.le = LatexCmds.leq = bind(BinaryOperator,'\\\\le ','&le;');\n\nLatexCmds['≥'] = LatexCmds.ge = LatexCmds.geq = bind(BinaryOperator,'\\\\ge ','&ge;');\n\nLatexCmds.isin = LatexCmds['in'] = bind(BinaryOperator,'\\\\in ','&isin;');\n\nLatexCmds.ni = LatexCmds.contains = bind(BinaryOperator,'\\\\ni ','&ni;');\n\nLatexCmds.notni = LatexCmds.niton = LatexCmds.notcontains = LatexCmds.doesnotcontain =\n  bind(BinaryOperator,'\\\\not\\\\ni ','&#8716;');\n\nLatexCmds.sub = LatexCmds.subset = bind(BinaryOperator,'\\\\subset ','&sub;');\n\nLatexCmds.sup = LatexCmds.supset = LatexCmds.superset =\n  bind(BinaryOperator,'\\\\supset ','&sup;');\n\nLatexCmds.nsub = LatexCmds.notsub =\nLatexCmds.nsubset = LatexCmds.notsubset =\n  bind(BinaryOperator,'\\\\not\\\\subset ','&#8836;');\n\nLatexCmds.nsup = LatexCmds.notsup =\nLatexCmds.nsupset = LatexCmds.notsupset =\nLatexCmds.nsuperset = LatexCmds.notsuperset =\n  bind(BinaryOperator,'\\\\not\\\\supset ','&#8837;');\n\nLatexCmds.sube = LatexCmds.subeq = LatexCmds.subsete = LatexCmds.subseteq =\n  bind(BinaryOperator,'\\\\subseteq ','&sube;');\n\nLatexCmds.supe = LatexCmds.supeq =\nLatexCmds.supsete = LatexCmds.supseteq =\nLatexCmds.supersete = LatexCmds.superseteq =\n  bind(BinaryOperator,'\\\\supseteq ','&supe;');\n\nLatexCmds.nsube = LatexCmds.nsubeq =\nLatexCmds.notsube = LatexCmds.notsubeq =\nLatexCmds.nsubsete = LatexCmds.nsubseteq =\nLatexCmds.notsubsete = LatexCmds.notsubseteq =\n  bind(BinaryOperator,'\\\\not\\\\subseteq ','&#8840;');\n\nLatexCmds.nsupe = LatexCmds.nsupeq =\nLatexCmds.notsupe = LatexCmds.notsupeq =\nLatexCmds.nsupsete = LatexCmds.nsupseteq =\nLatexCmds.notsupsete = LatexCmds.notsupseteq =\nLatexCmds.nsupersete = LatexCmds.nsuperseteq =\nLatexCmds.notsupersete = LatexCmds.notsuperseteq =\n  bind(BinaryOperator,'\\\\not\\\\supseteq ','&#8841;');\n\n\n//sum, product, coproduct, integral\nvar BigSymbol = P(Symbol, function(_, _super) {\n  _.init = function(ch, html) {\n    _super.init.call(this, ch, '<big>'+html+'</big>');\n  };\n});\n\nLatexCmds['∑'] = LatexCmds.sum = LatexCmds.summation = bind(BigSymbol,'\\\\sum ','&sum;');\nLatexCmds['∏'] = LatexCmds.prod = LatexCmds.product = bind(BigSymbol,'\\\\prod ','&prod;');\nLatexCmds.coprod = LatexCmds.coproduct = bind(BigSymbol,'\\\\coprod ','&#8720;');\nLatexCmds['∫'] = LatexCmds['int'] = LatexCmds.integral = bind(BigSymbol,'\\\\int ','&int;');\n\n\n\n//the canonical sets of numbers\nLatexCmds.N = LatexCmds.naturals = LatexCmds.Naturals =\n  bind(VanillaSymbol,'\\\\mathbb{N}','&#8469;');\n\nLatexCmds.P =\nLatexCmds.primes = LatexCmds.Primes =\nLatexCmds.projective = LatexCmds.Projective =\nLatexCmds.probability = LatexCmds.Probability =\n  bind(VanillaSymbol,'\\\\mathbb{P}','&#8473;');\n\nLatexCmds.Z = LatexCmds.integers = LatexCmds.Integers =\n  bind(VanillaSymbol,'\\\\mathbb{Z}','&#8484;');\n\nLatexCmds.Q = LatexCmds.rationals = LatexCmds.Rationals =\n  bind(VanillaSymbol,'\\\\mathbb{Q}','&#8474;');\n\nLatexCmds.R = LatexCmds.reals = LatexCmds.Reals =\n  bind(VanillaSymbol,'\\\\mathbb{R}','&#8477;');\n\nLatexCmds.C =\nLatexCmds.complex = LatexCmds.Complex =\nLatexCmds.complexes = LatexCmds.Complexes =\nLatexCmds.complexplane = LatexCmds.Complexplane = LatexCmds.ComplexPlane =\n  bind(VanillaSymbol,'\\\\mathbb{C}','&#8450;');\n\nLatexCmds.H = LatexCmds.Hamiltonian = LatexCmds.quaternions = LatexCmds.Quaternions =\n  bind(VanillaSymbol,'\\\\mathbb{H}','&#8461;');\n\n//spacing\nLatexCmds.quad = LatexCmds.emsp = bind(VanillaSymbol,'\\\\quad ','    ');\nLatexCmds.qquad = bind(VanillaSymbol,'\\\\qquad ','        ');\n/* spacing special characters, gonna have to implement this in LatexCommandInput::onText somehow\ncase ',':\n  return VanillaSymbol('\\\\, ',' ');\ncase ':':\n  return VanillaSymbol('\\\\: ','  ');\ncase ';':\n  return VanillaSymbol('\\\\; ','   ');\ncase '!':\n  return Symbol('\\\\! ','<span style=\"margin-right:-.2em\"></span>');\n*/\n\n//binary operators\nLatexCmds.diamond = bind(VanillaSymbol, '\\\\diamond ', '&#9671;');\nLatexCmds.bigtriangleup = bind(VanillaSymbol, '\\\\bigtriangleup ', '&#9651;');\nLatexCmds.ominus = bind(VanillaSymbol, '\\\\ominus ', '&#8854;');\nLatexCmds.uplus = bind(VanillaSymbol, '\\\\uplus ', '&#8846;');\nLatexCmds.bigtriangledown = bind(VanillaSymbol, '\\\\bigtriangledown ', '&#9661;');\nLatexCmds.sqcap = bind(VanillaSymbol, '\\\\sqcap ', '&#8851;');\nLatexCmds.triangleleft = bind(VanillaSymbol, '\\\\triangleleft ', '&#8882;');\nLatexCmds.sqcup = bind(VanillaSymbol, '\\\\sqcup ', '&#8852;');\nLatexCmds.triangleright = bind(VanillaSymbol, '\\\\triangleright ', '&#8883;');\nLatexCmds.odot = bind(VanillaSymbol, '\\\\odot ', '&#8857;');\nLatexCmds.bigcirc = bind(VanillaSymbol, '\\\\bigcirc ', '&#9711;');\nLatexCmds.dagger = bind(VanillaSymbol, '\\\\dagger ', '&#0134;');\nLatexCmds.ddagger = bind(VanillaSymbol, '\\\\ddagger ', '&#135;');\nLatexCmds.wr = bind(VanillaSymbol, '\\\\wr ', '&#8768;');\nLatexCmds.amalg = bind(VanillaSymbol, '\\\\amalg ', '&#8720;');\n\n//relationship symbols\nLatexCmds.models = bind(VanillaSymbol, '\\\\models ', '&#8872;');\nLatexCmds.prec = bind(VanillaSymbol, '\\\\prec ', '&#8826;');\nLatexCmds.succ = bind(VanillaSymbol, '\\\\succ ', '&#8827;');\nLatexCmds.preceq = bind(VanillaSymbol, '\\\\preceq ', '&#8828;');\nLatexCmds.succeq = bind(VanillaSymbol, '\\\\succeq ', '&#8829;');\nLatexCmds.simeq = bind(VanillaSymbol, '\\\\simeq ', '&#8771;');\nLatexCmds.mid = bind(VanillaSymbol, '\\\\mid ', '&#8739;');\nLatexCmds.ll = bind(VanillaSymbol, '\\\\ll ', '&#8810;');\nLatexCmds.gg = bind(VanillaSymbol, '\\\\gg ', '&#8811;');\nLatexCmds.parallel = bind(VanillaSymbol, '\\\\parallel ', '&#8741;');\nLatexCmds.bowtie = bind(VanillaSymbol, '\\\\bowtie ', '&#8904;');\nLatexCmds.sqsubset = bind(VanillaSymbol, '\\\\sqsubset ', '&#8847;');\nLatexCmds.sqsupset = bind(VanillaSymbol, '\\\\sqsupset ', '&#8848;');\nLatexCmds.smile = bind(VanillaSymbol, '\\\\smile ', '&#8995;');\nLatexCmds.sqsubseteq = bind(VanillaSymbol, '\\\\sqsubseteq ', '&#8849;');\nLatexCmds.sqsupseteq = bind(VanillaSymbol, '\\\\sqsupseteq ', '&#8850;');\nLatexCmds.doteq = bind(VanillaSymbol, '\\\\doteq ', '&#8784;');\nLatexCmds.frown = bind(VanillaSymbol, '\\\\frown ', '&#8994;');\nLatexCmds.vdash = bind(VanillaSymbol, '\\\\vdash ', '&#8870;');\nLatexCmds.dashv = bind(VanillaSymbol, '\\\\dashv ', '&#8867;');\n\n//arrows\nLatexCmds.longleftarrow = bind(VanillaSymbol, '\\\\longleftarrow ', '&#8592;');\nLatexCmds.longrightarrow = bind(VanillaSymbol, '\\\\longrightarrow ', '&#8594;');\nLatexCmds.Longleftarrow = bind(VanillaSymbol, '\\\\Longleftarrow ', '&#8656;');\nLatexCmds.Longrightarrow = bind(VanillaSymbol, '\\\\Longrightarrow ', '&#8658;');\nLatexCmds.longleftrightarrow = bind(VanillaSymbol, '\\\\longleftrightarrow ', '&#8596;');\nLatexCmds.updownarrow = bind(VanillaSymbol, '\\\\updownarrow ', '&#8597;');\nLatexCmds.Longleftrightarrow = bind(VanillaSymbol, '\\\\Longleftrightarrow ', '&#8660;');\nLatexCmds.Updownarrow = bind(VanillaSymbol, '\\\\Updownarrow ', '&#8661;');\nLatexCmds.mapsto = bind(VanillaSymbol, '\\\\mapsto ', '&#8614;');\nLatexCmds.nearrow = bind(VanillaSymbol, '\\\\nearrow ', '&#8599;');\nLatexCmds.hookleftarrow = bind(VanillaSymbol, '\\\\hookleftarrow ', '&#8617;');\nLatexCmds.hookrightarrow = bind(VanillaSymbol, '\\\\hookrightarrow ', '&#8618;');\nLatexCmds.searrow = bind(VanillaSymbol, '\\\\searrow ', '&#8600;');\nLatexCmds.leftharpoonup = bind(VanillaSymbol, '\\\\leftharpoonup ', '&#8636;');\nLatexCmds.rightharpoonup = bind(VanillaSymbol, '\\\\rightharpoonup ', '&#8640;');\nLatexCmds.swarrow = bind(VanillaSymbol, '\\\\swarrow ', '&#8601;');\nLatexCmds.leftharpoondown = bind(VanillaSymbol, '\\\\leftharpoondown ', '&#8637;');\nLatexCmds.rightharpoondown = bind(VanillaSymbol, '\\\\rightharpoondown ', '&#8641;');\nLatexCmds.nwarrow = bind(VanillaSymbol, '\\\\nwarrow ', '&#8598;');\n\n//Misc\nLatexCmds.ldots = bind(VanillaSymbol, '\\\\ldots ', '&#8230;');\nLatexCmds.cdots = bind(VanillaSymbol, '\\\\cdots ', '&#8943;');\nLatexCmds.vdots = bind(VanillaSymbol, '\\\\vdots ', '&#8942;');\nLatexCmds.ddots = bind(VanillaSymbol, '\\\\ddots ', '&#8944;');\nLatexCmds.surd = bind(VanillaSymbol, '\\\\surd ', '&#8730;');\nLatexCmds.triangle = bind(VanillaSymbol, '\\\\triangle ', '&#9653;');\nLatexCmds.ell = bind(VanillaSymbol, '\\\\ell ', '&#8467;');\nLatexCmds.top = bind(VanillaSymbol, '\\\\top ', '&#8868;');\nLatexCmds.flat = bind(VanillaSymbol, '\\\\flat ', '&#9837;');\nLatexCmds.natural = bind(VanillaSymbol, '\\\\natural ', '&#9838;');\nLatexCmds.sharp = bind(VanillaSymbol, '\\\\sharp ', '&#9839;');\nLatexCmds.wp = bind(VanillaSymbol, '\\\\wp ', '&#8472;');\nLatexCmds.bot = bind(VanillaSymbol, '\\\\bot ', '&#8869;');\nLatexCmds.clubsuit = bind(VanillaSymbol, '\\\\clubsuit ', '&#9827;');\nLatexCmds.diamondsuit = bind(VanillaSymbol, '\\\\diamondsuit ', '&#9826;');\nLatexCmds.heartsuit = bind(VanillaSymbol, '\\\\heartsuit ', '&#9825;');\nLatexCmds.spadesuit = bind(VanillaSymbol, '\\\\spadesuit ', '&#9824;');\n\n//variable-sized\nLatexCmds.oint = bind(VanillaSymbol, '\\\\oint ', '&#8750;');\nLatexCmds.bigcap = bind(VanillaSymbol, '\\\\bigcap ', '&#8745;');\nLatexCmds.bigcup = bind(VanillaSymbol, '\\\\bigcup ', '&#8746;');\nLatexCmds.bigsqcup = bind(VanillaSymbol, '\\\\bigsqcup ', '&#8852;');\nLatexCmds.bigvee = bind(VanillaSymbol, '\\\\bigvee ', '&#8744;');\nLatexCmds.bigwedge = bind(VanillaSymbol, '\\\\bigwedge ', '&#8743;');\nLatexCmds.bigodot = bind(VanillaSymbol, '\\\\bigodot ', '&#8857;');\nLatexCmds.bigotimes = bind(VanillaSymbol, '\\\\bigotimes ', '&#8855;');\nLatexCmds.bigoplus = bind(VanillaSymbol, '\\\\bigoplus ', '&#8853;');\nLatexCmds.biguplus = bind(VanillaSymbol, '\\\\biguplus ', '&#8846;');\n\n//delimiters\nLatexCmds.lfloor = bind(VanillaSymbol, '\\\\lfloor ', '&#8970;');\nLatexCmds.rfloor = bind(VanillaSymbol, '\\\\rfloor ', '&#8971;');\nLatexCmds.lceil = bind(VanillaSymbol, '\\\\lceil ', '&#8968;');\nLatexCmds.rceil = bind(VanillaSymbol, '\\\\rceil ', '&#8969;');\nLatexCmds.slash = bind(VanillaSymbol, '\\\\slash ', '&#47;');\nLatexCmds.opencurlybrace = bind(VanillaSymbol, '\\\\opencurlybrace ', '&#123;');\nLatexCmds.closecurlybrace = bind(VanillaSymbol, '\\\\closecurlybrace ', '&#125;');\n\n//various symbols\n\nLatexCmds.caret = bind(VanillaSymbol,'\\\\caret ','^');\nLatexCmds.underscore = bind(VanillaSymbol,'\\\\underscore ','_');\nLatexCmds.backslash = bind(VanillaSymbol,'\\\\backslash ','\\\\');\nLatexCmds.vert = bind(VanillaSymbol,'|');\nLatexCmds.perp = LatexCmds.perpendicular = bind(VanillaSymbol,'\\\\perp ','&perp;');\nLatexCmds.nabla = LatexCmds.del = bind(VanillaSymbol,'\\\\nabla ','&nabla;');\nLatexCmds.hbar = bind(VanillaSymbol,'\\\\hbar ','&#8463;');\n\nLatexCmds.AA = LatexCmds.Angstrom = LatexCmds.angstrom =\n  bind(VanillaSymbol,'\\\\text\\\\AA ','&#8491;');\n\nLatexCmds.ring = LatexCmds.circ = LatexCmds.circle =\n  bind(VanillaSymbol,'\\\\circ ','&#8728;');\n\nLatexCmds.bull = LatexCmds.bullet = bind(VanillaSymbol,'\\\\bullet ','&bull;');\n\nLatexCmds.setminus = LatexCmds.smallsetminus =\n  bind(VanillaSymbol,'\\\\setminus ','&#8726;');\n\nLatexCmds.not = //bind(Symbol,'\\\\not ','<span class=\"not\">/</span>');\nLatexCmds['¬'] = LatexCmds.neg = bind(VanillaSymbol,'\\\\neg ','&not;');\n\nLatexCmds['…'] = LatexCmds.dots = LatexCmds.ellip = LatexCmds.hellip =\nLatexCmds.ellipsis = LatexCmds.hellipsis =\n  bind(VanillaSymbol,'\\\\dots ','&hellip;');\n\nLatexCmds.converges =\nLatexCmds.darr = LatexCmds.dnarr = LatexCmds.dnarrow = LatexCmds.downarrow =\n  bind(VanillaSymbol,'\\\\downarrow ','&darr;');\n\nLatexCmds.dArr = LatexCmds.dnArr = LatexCmds.dnArrow = LatexCmds.Downarrow =\n  bind(VanillaSymbol,'\\\\Downarrow ','&dArr;');\n\nLatexCmds.diverges = LatexCmds.uarr = LatexCmds.uparrow =\n  bind(VanillaSymbol,'\\\\uparrow ','&uarr;');\n\nLatexCmds.uArr = LatexCmds.Uparrow = bind(VanillaSymbol,'\\\\Uparrow ','&uArr;');\n\nLatexCmds.to = bind(BinaryOperator,'\\\\to ','&rarr;');\n\nLatexCmds.rarr = LatexCmds.rightarrow = bind(VanillaSymbol,'\\\\rightarrow ','&rarr;');\n\nLatexCmds.implies = bind(BinaryOperator,'\\\\Rightarrow ','&rArr;');\n\nLatexCmds.rArr = LatexCmds.Rightarrow = bind(VanillaSymbol,'\\\\Rightarrow ','&rArr;');\n\nLatexCmds.gets = bind(BinaryOperator,'\\\\gets ','&larr;');\n\nLatexCmds.larr = LatexCmds.leftarrow = bind(VanillaSymbol,'\\\\leftarrow ','&larr;');\n\nLatexCmds.impliedby = bind(BinaryOperator,'\\\\Leftarrow ','&lArr;');\n\nLatexCmds.lArr = LatexCmds.Leftarrow = bind(VanillaSymbol,'\\\\Leftarrow ','&lArr;');\n\nLatexCmds.harr = LatexCmds.lrarr = LatexCmds.leftrightarrow =\n  bind(VanillaSymbol,'\\\\leftrightarrow ','&harr;');\n\nLatexCmds.iff = bind(BinaryOperator,'\\\\Leftrightarrow ','&hArr;');\n\nLatexCmds.hArr = LatexCmds.lrArr = LatexCmds.Leftrightarrow =\n  bind(VanillaSymbol,'\\\\Leftrightarrow ','&hArr;');\n\nLatexCmds.Re = LatexCmds.Real = LatexCmds.real = bind(VanillaSymbol,'\\\\Re ','&real;');\n\nLatexCmds.Im = LatexCmds.imag =\nLatexCmds.image = LatexCmds.imagin = LatexCmds.imaginary = LatexCmds.Imaginary =\n  bind(VanillaSymbol,'\\\\Im ','&image;');\n\nLatexCmds.part = LatexCmds.partial = bind(VanillaSymbol,'\\\\partial ','&part;');\n\nLatexCmds.inf = LatexCmds.infin = LatexCmds.infty = LatexCmds.infinity =\n  bind(VanillaSymbol,'\\\\infty ','&infin;');\n\nLatexCmds.alef = LatexCmds.alefsym = LatexCmds.aleph = LatexCmds.alephsym =\n  bind(VanillaSymbol,'\\\\aleph ','&alefsym;');\n\nLatexCmds.xist = //LOL\nLatexCmds.xists = LatexCmds.exist = LatexCmds.exists =\n  bind(VanillaSymbol,'\\\\exists ','&exist;');\n\nLatexCmds.and = LatexCmds.land = LatexCmds.wedge =\n  bind(VanillaSymbol,'\\\\wedge ','&and;');\n\nLatexCmds.or = LatexCmds.lor = LatexCmds.vee = bind(VanillaSymbol,'\\\\vee ','&or;');\n\nLatexCmds.o = LatexCmds.O =\nLatexCmds.empty = LatexCmds.emptyset =\nLatexCmds.oslash = LatexCmds.Oslash =\nLatexCmds.nothing = LatexCmds.varnothing =\n  bind(BinaryOperator,'\\\\varnothing ','&empty;');\n\nLatexCmds.cup = LatexCmds.union = bind(BinaryOperator,'\\\\cup ','&cup;');\n\nLatexCmds.cap = LatexCmds.intersect = LatexCmds.intersection =\n  bind(BinaryOperator,'\\\\cap ','&cap;');\n\nLatexCmds.deg = LatexCmds.degree = bind(VanillaSymbol,'^\\\\circ ','&deg;');\n\nLatexCmds.ang = LatexCmds.angle = bind(VanillaSymbol,'\\\\angle ','&ang;');\n\n\nvar NonItalicizedFunction = P(Symbol, function(_, _super) {\n  _.init = function(fn) {\n    _super.init.call(this, '\\\\'+fn+' ', '<span>'+fn+'</span>');\n  };\n  _.respace = function()\n  {\n    this.jQ[0].className =\n      (this[R] instanceof SupSub || this[R] instanceof Bracket) ?\n      '' : 'non-italicized-function';\n  };\n});\n\nLatexCmds.ln =\nLatexCmds.lg =\nLatexCmds.log =\nLatexCmds.span =\nLatexCmds.proj =\nLatexCmds.det =\nLatexCmds.dim =\nLatexCmds.min =\nLatexCmds.max =\nLatexCmds.mod =\nLatexCmds.lcm =\nLatexCmds.gcd =\nLatexCmds.gcf =\nLatexCmds.hcf =\nLatexCmds.lim = NonItalicizedFunction;\n\n(function() {\n  var trig = ['sin', 'cos', 'tan', 'sec', 'cosec', 'csc', 'cotan', 'cot'];\n  for (var i in trig) {\n    LatexCmds[trig[i]] =\n    LatexCmds[trig[i]+'h'] =\n    LatexCmds['a'+trig[i]] = LatexCmds['arc'+trig[i]] =\n    LatexCmds['a'+trig[i]+'h'] = LatexCmds['arc'+trig[i]+'h'] =\n      NonItalicizedFunction;\n  }\n}());\n\n// Parser MathCommand\nvar latexMathParser = (function() {\n  function commandToBlock(cmd) {\n    var block = MathBlock();\n    cmd.adopt(block, 0, 0);\n    return block;\n  }\n  function joinBlocks(blocks) {\n    var firstBlock = blocks[0] || MathBlock();\n\n    for (var i = 1; i < blocks.length; i += 1) {\n      blocks[i].children().adopt(firstBlock, firstBlock.ends[R], 0);\n    }\n\n    return firstBlock;\n  }\n\n  var string = Parser.string;\n  var regex = Parser.regex;\n  var letter = Parser.letter;\n  var any = Parser.any;\n  var optWhitespace = Parser.optWhitespace;\n  var succeed = Parser.succeed;\n  var fail = Parser.fail;\n\n  // Parsers yielding MathCommands\n  var variable = letter.map(Variable);\n  var symbol = regex(/^[^${}\\\\_^]/).map(VanillaSymbol);\n\n  var controlSequence =\n    regex(/^[^\\\\a-eg-zA-Z]/) // hotfix #164; match MathBlock::write\n    .or(string('\\\\').then(\n      regex(/^[a-z]+/i)\n      .or(regex(/^\\s+/).result(' '))\n      .or(any)\n    )).then(function(ctrlSeq) {\n      var cmdKlass = LatexCmds[ctrlSeq];\n\n      if (cmdKlass) {\n        return cmdKlass(ctrlSeq).parser();\n      }\n      else {\n        return fail('unknown command: \\\\'+ctrlSeq);\n      }\n    })\n  ;\n\n  var command =\n    controlSequence\n    .or(variable)\n    .or(symbol)\n  ;\n\n  // Parsers yielding MathBlocks\n  var mathGroup = string('{').then(function() { return mathSequence; }).skip(string('}'));\n  var mathBlock = optWhitespace.then(mathGroup.or(command.map(commandToBlock)));\n  var mathSequence = mathBlock.many().map(joinBlocks).skip(optWhitespace);\n\n  var optMathBlock =\n    string('[').then(\n      mathBlock.then(function(block) {\n        return block.join('latex') !== ']' ? succeed(block) : fail();\n      })\n      .many().map(joinBlocks).skip(optWhitespace)\n    ).skip(string(']'))\n  ;\n\n  var latexMath = mathSequence;\n\n  latexMath.block = mathBlock;\n  latexMath.optBlock = optMathBlock;\n  return latexMath;\n})();\n/********************************************\n * Cursor and Selection \"singleton\" classes\n *******************************************/\n\n/* The main thing that manipulates the Math DOM. Makes sure to manipulate the\nHTML DOM to match. */\n\n/* Sort of singletons, since there should only be one per editable math\ntextbox, but any one HTML document can contain many such textboxes, so any one\nJS environment could actually contain many instances. */\n\n//A fake cursor in the fake textbox that the math is rendered in.\nvar Cursor = P(Point, function(_) {\n  _.init = function(root) {\n    this.parent = this.root = root;\n    var jQ = this.jQ = this._jQ = $('<span class=\"cursor\">&zwj;</span>');\n\n    //closured for setInterval\n    this.blink = function(){ jQ.toggleClass('blink'); };\n\n    this.upDownCache = {};\n  };\n\n  _.show = function() {\n    this.jQ = this._jQ.removeClass('blink');\n    if ('intervalId' in this) //already was shown, just restart interval\n      clearInterval(this.intervalId);\n    else { //was hidden and detached, insert this.jQ back into HTML DOM\n      if (this[R]) {\n        if (this.selection && this.selection.ends[L][L] === this[L])\n          this.jQ.insertBefore(this.selection.jQ);\n        else\n          this.jQ.insertBefore(this[R].jQ.first());\n      }\n      else\n        this.jQ.appendTo(this.parent.jQ);\n      this.parent.focus();\n    }\n    this.intervalId = setInterval(this.blink, 500);\n    return this;\n  };\n  _.hide = function() {\n    if ('intervalId' in this)\n      clearInterval(this.intervalId);\n    delete this.intervalId;\n    this.jQ.detach();\n    this.jQ = $();\n    return this;\n  };\n\n  _.withDirInsertAt = function(dir, parent, withDir, oppDir) {\n    var oldParent = this.parent;\n    this.parent = parent;\n    this[dir] = withDir;\n    this[-dir] = oppDir;\n    oldParent.blur();\n  };\n  _.insDirOf = function(dir, el) {\n    prayDirection(dir);\n    this.withDirInsertAt(dir, el.parent, el[dir], el);\n    this.parent.jQ.addClass('hasCursor');\n    this.jQ.insDirOf(dir, el.jQ);\n    return this;\n  };\n  _.insLeftOf = function(el) { return this.insDirOf(L, el); };\n  _.insRightOf = function(el) { return this.insDirOf(R, el); };\n\n  _.insAtDirEnd = function(dir, el) {\n    prayDirection(dir);\n    this.withDirInsertAt(dir, el, 0, el.ends[dir]);\n\n    // never insert before textarea\n    if (dir === L && el.textarea) {\n      this.jQ.insDirOf(-dir, el.textarea);\n    }\n    else {\n      this.jQ.insAtDirEnd(dir, el.jQ);\n    }\n\n    el.focus();\n\n    return this;\n  };\n  _.insAtLeftEnd = function(el) { return this.insAtDirEnd(L, el); };\n  _.insAtRightEnd = function(el) { return this.insAtDirEnd(R, el); };\n\n  _.hopDir = function(dir) {\n    prayDirection(dir);\n\n    this.jQ.insDirOf(dir, this[dir].jQ);\n    this[-dir] = this[dir];\n    this[dir] = this[dir][dir];\n    return this;\n  };\n  _.hopLeft = function() { return this.hopDir(L); };\n  _.hopRight = function() { return this.hopDir(R); };\n\n  _.moveDirWithin = function(dir, block) {\n    prayDirection(dir);\n\n    if (this[dir]) {\n      if (this[dir].ends[-dir]) this.insAtDirEnd(-dir, this[dir].ends[-dir]);\n      else this.hopDir(dir);\n    }\n    else {\n      // we're at the beginning/end of the containing block, so do nothing\n      if (this.parent === block) return;\n\n      if (this.parent[dir]) this.insAtDirEnd(-dir, this.parent[dir]);\n      else this.insDirOf(dir, this.parent.parent);\n    }\n  };\n  _.moveLeftWithin = function(block) {\n    return this.moveDirWithin(L, block);\n  };\n  _.moveRightWithin = function(block) {\n    return this.moveDirWithin(R, block);\n  };\n  _.moveDir = function(dir) {\n    prayDirection(dir);\n\n    clearUpDownCache(this);\n\n    if (this.selection)  {\n      this.insDirOf(dir, this.selection.ends[dir]).clearSelection();\n    }\n    else {\n      this.moveDirWithin(dir, this.root);\n    }\n\n    return this.show();\n  };\n  _.moveLeft = function() { return this.moveDir(L); };\n  _.moveRight = function() { return this.moveDir(R); };\n\n  /**\n   * moveUp and moveDown have almost identical algorithms:\n   * - first check left and right, if so insAtLeft/RightEnd of them\n   * - else check the parent's 'up'/'down' property - if it's a function,\n   *   call it with the cursor as the sole argument and use the return value.\n   *\n   *   Given undefined, will bubble up to the next ancestor block.\n   *   Given false, will stop bubbling.\n   *   Given a MathBlock,\n   *     + moveUp will insAtRightEnd of it\n   *     + moveDown will insAtLeftEnd of it\n   *\n   */\n  _.moveUp = function() { return moveUpDown(this, 'up'); };\n  _.moveDown = function() { return moveUpDown(this, 'down'); };\n  function moveUpDown(self, dir) {\n    if (self[R][dir]) self.insAtLeftEnd(self[R][dir]);\n    else if (self[L][dir]) self.insAtRightEnd(self[L][dir]);\n    else {\n      var ancestorBlock = self.parent;\n      do {\n        var prop = ancestorBlock[dir];\n        if (prop) {\n          if (typeof prop === 'function') prop = ancestorBlock[dir](self);\n          if (prop === false || prop instanceof MathBlock) {\n            self.upDownCache[ancestorBlock.id] = Point(self.parent, self[L], self[R]);\n\n            if (prop instanceof MathBlock) {\n              var cached = self.upDownCache[prop.id];\n\n              if (cached) {\n                if (cached[R]) {\n                  self.insLeftOf(cached[R]);\n                } else {\n                  self.insAtRightEnd(cached.parent);\n                }\n              } else {\n                var pageX = offset(self).left;\n                self.insAtRightEnd(prop);\n                self.seekHoriz(pageX, prop);\n              }\n            }\n            break;\n          }\n        }\n        ancestorBlock = ancestorBlock.parent.parent;\n      } while (ancestorBlock);\n    }\n\n    return self.clearSelection().show();\n  }\n\n  _.seek = function(target, pageX, pageY) {\n    clearUpDownCache(this);\n    var cmd, block, cursor = this.clearSelection().show();\n    if (target.hasClass('empty')) {\n      cursor.insAtLeftEnd(MathElement[target.attr(mqBlockId)]);\n      return cursor;\n    }\n\n    cmd = MathElement[target.attr(mqCmdId)];\n    if (cmd instanceof Symbol) { //insert at whichever side is closer\n      if (target.outerWidth() > 2*(pageX - target.offset().left))\n        cursor.insLeftOf(cmd);\n      else\n        cursor.insRightOf(cmd);\n\n      return cursor;\n    }\n    if (!cmd) {\n      block = MathElement[target.attr(mqBlockId)];\n      if (!block) { //if no MathQuill data, try parent, if still no, just start from the root\n        target = target.parent();\n        cmd = MathElement[target.attr(mqCmdId)];\n        if (!cmd) {\n          block = MathElement[target.attr(mqBlockId)];\n          if (!block) block = cursor.root;\n        }\n      }\n    }\n\n    if (cmd)\n      cursor.insRightOf(cmd);\n    else\n      cursor.insAtRightEnd(block);\n\n    return cursor.seekHoriz(pageX, cursor.root);\n  };\n  _.seekHoriz = function(pageX, block) {\n    //move cursor to position closest to click\n    var cursor = this;\n    var dist = offset(cursor).left - pageX;\n    var leftDist;\n\n    do {\n      cursor.moveLeftWithin(block);\n      leftDist = dist;\n      dist = offset(cursor).left - pageX;\n    }\n    while (dist > 0 && (cursor[L] || cursor.parent !== block));\n\n    if (-dist > leftDist) cursor.moveRightWithin(block);\n\n    return cursor;\n  };\n  function offset(self) {\n    //in Opera 11.62, .getBoundingClientRect() and hence jQuery::offset()\n    //returns all 0's on inline elements with negative margin-right (like\n    //the cursor) at the end of their parent, so temporarily remove the\n    //negative margin-right when calling jQuery::offset()\n    //Opera bug DSK-360043\n    //http://bugs.jquery.com/ticket/11523\n    //https://github.com/jquery/jquery/pull/717\n    var offset = self.jQ.removeClass('cursor').offset();\n    self.jQ.addClass('cursor');\n    return offset;\n  }\n  _.writeLatex = function(latex) {\n    var self = this;\n    clearUpDownCache(self);\n    self.show().deleteSelection();\n\n    var all = Parser.all;\n    var eof = Parser.eof;\n\n    var block = latexMathParser.skip(eof).or(all.result(false)).parse(latex);\n\n    if (block) {\n      block.children().adopt(self.parent, self[L], self[R]);\n      MathElement.jQize(block.join('html')).insertBefore(self.jQ);\n      self[L] = block.ends[R];\n      block.finalizeInsert();\n      self.parent.bubble('redraw');\n    }\n\n    return this.hide();\n  };\n  _.write = function(ch) {\n    var seln = this.prepareWrite();\n    return this.insertCh(ch, seln);\n  };\n  _.insertCh = function(ch, replacedFragment) {\n    this.parent.write(this, ch, replacedFragment);\n    return this;\n  };\n  _.insertCmd = function(latexCmd, replacedFragment) {\n    var cmd = LatexCmds[latexCmd];\n    if (cmd) {\n      cmd = cmd(latexCmd);\n      if (replacedFragment) cmd.replaces(replacedFragment);\n      cmd.createLeftOf(this);\n    }\n    else {\n      cmd = TextBlock();\n      cmd.replaces(latexCmd);\n      cmd.ends[L].focus = function(){ delete this.focus; return this; };\n      cmd.createLeftOf(this);\n      this.insRightOf(cmd);\n      if (replacedFragment)\n        replacedFragment.remove();\n    }\n    return this;\n  };\n  _.unwrapGramp = function() {\n    var gramp = this.parent.parent;\n    var greatgramp = gramp.parent;\n    var rightward = gramp[R];\n    var cursor = this;\n\n    var leftward = gramp[L];\n    gramp.disown().eachChild(function(uncle) {\n      if (uncle.isEmpty()) return;\n\n      uncle.children()\n        .adopt(greatgramp, leftward, rightward)\n        .each(function(cousin) {\n          cousin.jQ.insertBefore(gramp.jQ.first());\n        })\n      ;\n\n      leftward = uncle.ends[R];\n    });\n\n    if (!this[R]) { //then find something to be rightward to insLeftOf\n      if (this[L])\n        this[R] = this[L][R];\n      else {\n        while (!this[R]) {\n          this.parent = this.parent[R];\n          if (this.parent)\n            this[R] = this.parent.ends[L];\n          else {\n            this[R] = gramp[R];\n            this.parent = greatgramp;\n            break;\n          }\n        }\n      }\n    }\n    if (this[R])\n      this.insLeftOf(this[R]);\n    else\n      this.insAtRightEnd(greatgramp);\n\n    gramp.jQ.remove();\n\n    if (gramp[L])\n      gramp[L].respace();\n    if (gramp[R])\n      gramp[R].respace();\n  };\n  _.deleteDir = function(dir) {\n    prayDirection(dir);\n    clearUpDownCache(this);\n    this.show();\n\n    if (this.deleteSelection()); // pass\n    else if (this[dir]) {\n      if (this[dir].isEmpty())\n        this[dir] = this[dir].remove()[dir];\n      else\n        this.selectDir(dir);\n    }\n    else if (this.parent !== this.root) {\n      if (this.parent.parent.isEmpty())\n        return this.insDirOf(-dir, this.parent.parent).deleteDir(dir);\n      else\n        this.unwrapGramp();\n    }\n\n    if (this[L])\n      this[L].respace();\n    if (this[R])\n      this[R].respace();\n    this.parent.bubble('redraw');\n\n    return this;\n  };\n  _.backspace = function() { return this.deleteDir(L); };\n  _.deleteForward = function() { return this.deleteDir(R); };\n  _.selectFrom = function(anticursor) {\n    //find ancestors of each with common parent\n    var oneA = this, otherA = anticursor; //one ancestor, the other ancestor\n    loopThroughAncestors: while (true) {\n      for (var oneI = this; oneI !== oneA.parent.parent; oneI = oneI.parent.parent) //one intermediate, the other intermediate\n        if (oneI.parent === otherA.parent) {\n          left = oneI;\n          right = otherA;\n          break loopThroughAncestors;\n        }\n\n      for (var otherI = anticursor; otherI !== otherA.parent.parent; otherI = otherI.parent.parent)\n        if (oneA.parent === otherI.parent) {\n          left = oneA;\n          right = otherI;\n          break loopThroughAncestors;\n        }\n\n      if (oneA.parent.parent)\n        oneA = oneA.parent.parent;\n      if (otherA.parent.parent)\n        otherA = otherA.parent.parent;\n    }\n    //figure out which is leftward and which is rightward\n    var left, right, leftRight;\n    if (left[R] !== right) {\n      for (var rightward = left; rightward; rightward = rightward[R]) {\n        if (rightward === right[L]) {\n          leftRight = true;\n          break;\n        }\n      }\n      if (!leftRight) {\n        leftRight = right;\n        right = left;\n        left = leftRight;\n      }\n    }\n    this.hide().selection = Selection(left[L][R] || left.parent.ends[L], right[R][L] || right.parent.ends[R]);\n    this.insRightOf(right[R][L] || right.parent.ends[R]);\n    this.root.selectionChanged();\n  };\n  _.selectDir = function(dir) {\n    prayDirection(dir);\n    clearUpDownCache(this);\n\n    if (this.selection) {\n      // if cursor is at the (dir) edge of selection\n      if (this.selection.ends[dir] === this[-dir]) {\n        // then extend (dir) if possible\n        if (this[dir]) this.hopDir(dir).selection.extendDir(dir);\n        // else level up if possible\n        else if (this.parent !== this.root) {\n          this.insDirOf(dir, this.parent.parent).selection.levelUp();\n        }\n      }\n      // else cursor is at the (-dir) edge of selection, retract if possible\n      else {\n        this.hopDir(dir);\n\n        // clear the selection if we only have one thing selected\n        if (this.selection.ends[dir] === this.selection.ends[-dir]) {\n          this.clearSelection().show();\n          return;\n        }\n\n        this.selection.retractDir(dir);\n      }\n    }\n    // no selection, create one\n    else {\n      if (this[dir]) this.hopDir(dir);\n      // else edge of a block\n      else {\n        if (this.parent === this.root) return;\n\n        this.insDirOf(dir, this.parent.parent);\n      }\n\n      this.hide().selection = Selection(this[-dir]);\n    }\n\n    this.root.selectionChanged();\n  };\n  _.selectLeft = function() { return this.selectDir(L); };\n  _.selectRight = function() { return this.selectDir(R); };\n\n  function clearUpDownCache(self) {\n    self.upDownCache = {};\n  }\n\n  _.prepareMove = function() {\n    clearUpDownCache(this);\n    return this.show().clearSelection();\n  };\n  _.prepareEdit = function() {\n    clearUpDownCache(this);\n    return this.show().deleteSelection();\n  };\n  _.prepareWrite = function() {\n    clearUpDownCache(this);\n    return this.show().replaceSelection();\n  };\n\n  _.clearSelection = function() {\n    if (this.selection) {\n      this.selection.clear();\n      delete this.selection;\n      this.root.selectionChanged();\n    }\n    return this;\n  };\n  _.deleteSelection = function() {\n    if (!this.selection) return false;\n\n    this[L] = this.selection.ends[L][L];\n    this[R] = this.selection.ends[R][R];\n    this.selection.remove();\n    this.root.selectionChanged();\n    return delete this.selection;\n  };\n  _.replaceSelection = function() {\n    var seln = this.selection;\n    if (seln) {\n      this[L] = seln.ends[L][L];\n      this[R] = seln.ends[R][R];\n      delete this.selection;\n    }\n    return seln;\n  };\n});\n\nvar Selection = P(MathFragment, function(_, _super) {\n  _.init = function() {\n    var frag = this;\n    _super.init.apply(frag, arguments);\n\n    frag.jQwrap(frag.jQ);\n  };\n  _.jQwrap = function(children) {\n    this.jQ = children.wrapAll('<span class=\"selection\"></span>').parent();\n      //can't do wrapAll(this.jQ = $(...)) because wrapAll will clone it\n  };\n  _.adopt = function() {\n    this.jQ.replaceWith(this.jQ = this.jQ.children());\n    return _super.adopt.apply(this, arguments);\n  };\n  _.clear = function() {\n    this.jQ.replaceWith(this.jQ.children());\n    return this;\n  };\n  _.levelUp = function() {\n    var seln = this,\n      gramp = seln.ends[L] = seln.ends[R] = seln.ends[R].parent.parent;\n    seln.clear().jQwrap(gramp.jQ);\n    return seln;\n  };\n  _.extendDir = function(dir) {\n    prayDirection(dir);\n    this.ends[dir] = this.ends[dir][dir];\n    this.ends[dir].jQ.insAtDirEnd(dir, this.jQ);\n    return this;\n  };\n  _.extendLeft = function() { return this.extendDir(L); };\n  _.extendRight = function() { return this.extendDir(R); };\n\n  _.retractDir = function(dir) {\n    prayDirection(dir);\n    this.ends[-dir].jQ.insDirOf(-dir, this.jQ);\n    this.ends[-dir] = this.ends[-dir][dir];\n  };\n  _.retractRight = function() { return this.retractDir(R); };\n  _.retractLeft = function() { return this.retractDir(L); };\n});\n/*********************************************************\n * The actual jQuery plugin and document ready handlers.\n ********************************************************/\n\n//The publicy exposed method of jQuery.prototype, available (and meant to be\n//called) on jQuery-wrapped HTML DOM elements.\njQuery.fn.mathquill = function(cmd, latex) {\n  switch (cmd) {\n  case 'redraw':\n    return this.each(function() {\n      var blockId = $(this).attr(mqBlockId),\n        rootBlock = blockId && MathElement[blockId];\n      if (rootBlock) {\n        (function postOrderRedraw(el) {\n          el.eachChild(postOrderRedraw);\n          if (el.redraw) el.redraw();\n        }(rootBlock));\n      }\n    });\n  case 'revert':\n    return this.each(function() {\n      var blockId = $(this).attr(mqBlockId),\n        block = blockId && MathElement[blockId];\n      if (block && block.revert)\n        block.revert();\n    });\n  case 'latex':\n    if (arguments.length > 1) {\n      return this.each(function() {\n        var blockId = $(this).attr(mqBlockId),\n          block = blockId && MathElement[blockId];\n        if (block)\n          block.renderLatex(latex);\n      });\n    }\n\n    var blockId = $(this).attr(mqBlockId),\n      block = blockId && MathElement[blockId];\n    return block && block.latex();\n  case 'text':\n    var blockId = $(this).attr(mqBlockId),\n      block = blockId && MathElement[blockId];\n    return block && block.text();\n  case 'html':\n    return this.html().replace(/ ?hasCursor|hasCursor /, '')\n      .replace(/ class=(\"\"|(?= |>))/g, '')\n      .replace(/<span class=\"?cursor( blink)?\"?><\\/span>/i, '')\n      .replace(/<span class=\"?textarea\"?><textarea><\\/textarea><\\/span>/i, '');\n  case 'write':\n    if (arguments.length > 1)\n      return this.each(function() {\n        var blockId = $(this).attr(mqBlockId),\n          block = blockId && MathElement[blockId],\n          cursor = block && block.cursor;\n\n        if (cursor)\n          cursor.writeLatex(latex).parent.blur();\n      });\n  case 'cmd':\n    if (arguments.length > 1)\n      return this.each(function() {\n        var blockId = $(this).attr(mqBlockId),\n          block = blockId && MathElement[blockId],\n          cursor = block && block.cursor;\n\n        if (cursor) {\n          var seln = cursor.prepareWrite();\n          if (/^\\\\[a-z]+$/i.test(latex)) cursor.insertCmd(latex.slice(1), seln);\n          else cursor.insertCh(latex, seln);\n          cursor.hide().parent.blur();\n        }\n      });\n  default:\n    var textbox = cmd === 'textbox',\n      editable = textbox || cmd === 'editable',\n      RootBlock = textbox ? RootTextBlock : RootMathBlock;\n    return this.each(function() {\n      createRoot($(this), RootBlock(), textbox, editable);\n    });\n  }\n};\n\n//on document ready, mathquill-ify all `<tag class=\"mathquill-*\">latex</tag>`\n//elements according to their CSS class.\njQuery(function() {\n  jQuery('.mathquill-editable:not(.mathquill-rendered-math)').mathquill('editable');\n  jQuery('.mathquill-textbox:not(.mathquill-rendered-math)').mathquill('textbox');\n  jQuery('.mathquill-embedded-latex').mathquill();\n});\n\n\n}());\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/umeditor.config.js",
    "content": "/**\n *  umeditor完整配置项\n *  可以在这里配置整个编辑器的特性\n */\n/**************************提示********************************\n * 所有被注释的配置项均为UEditor默认值。\n * 修改默认配置请首先确保已经完全明确该参数的真实用途。\n * 主要有两种修改方案，一种是取消此处注释，然后修改成对应参数；另一种是在实例化编辑器时传入对应参数。\n * 当升级编辑器时，可直接使用旧版配置文件替换新版配置文件,不用担心旧版配置文件中因缺少新功能所需的参数而导致脚本报错。\n **************************提示********************************/\n\n\n(function () {\n    /**\n     * 编辑器资源文件根路径。它所表示的含义是：以编辑器实例化页面为当前路径，指向编辑器资源文件（即dialog等文件夹）的路径。\n     * 鉴于很多同学在使用编辑器的时候出现的种种路径问题，此处强烈建议大家使用\"相对于网站根目录的相对路径\"进行配置。\n     * \"相对于网站根目录的相对路径\"也就是以斜杠开头的形如\"/myProject/umeditor/\"这样的路径。\n     * 如果站点中有多个不在同一层级的页面需要实例化编辑器，且引用了同一UEditor的时候，此处的URL可能不适用于每个页面的编辑器。\n     * 因此，UEditor提供了针对不同页面的编辑器可单独配置的根路径，具体来说，在需要实例化编辑器的页面最顶部写上如下代码即可。当然，需要令此处的URL等于对应的配置。\n     * window.UMEDITOR_HOME_URL = \"/xxxx/xxxx/\";\n     */\n    var URL = window.UMEDITOR_HOME_URL || (function(){\n\n        function PathStack() {\n\n            this.documentURL = self.document.URL || self.location.href;\n\n            this.separator = '/';\n            this.separatorPattern = /\\\\|\\//g;\n            this.currentDir = './';\n            this.currentDirPattern = /^[.]\\/]/;\n\n            this.path = this.documentURL;\n            this.stack = [];\n\n            this.push( this.documentURL );\n\n        }\n\n        PathStack.isParentPath = function( path ){\n            return path === '..';\n        };\n\n        PathStack.hasProtocol = function( path ){\n            return !!PathStack.getProtocol( path );\n        };\n\n        PathStack.getProtocol = function( path ){\n\n            var protocol = /^[^:]*:\\/*/.exec( path );\n\n            return protocol ? protocol[0] : null;\n\n        };\n\n        PathStack.prototype = {\n            push: function( path ){\n\n                this.path = path;\n\n                update.call( this );\n                parse.call( this );\n\n                return this;\n\n            },\n            getPath: function(){\n                return this + \"\";\n            },\n            toString: function(){\n                return this.protocol + ( this.stack.concat( [''] ) ).join( this.separator );\n            }\n        };\n\n        function update() {\n\n            var protocol = PathStack.getProtocol( this.path || '' );\n\n            if( protocol ) {\n\n                //根协议\n                this.protocol = protocol;\n\n                //local\n                this.localSeparator = /\\\\|\\//.exec( this.path.replace( protocol, '' ) )[0];\n\n                this.stack = [];\n            } else {\n                protocol = /\\\\|\\//.exec( this.path );\n                protocol && (this.localSeparator = protocol[0]);\n            }\n\n        }\n\n        function parse(){\n\n            var parsedStack = this.path.replace( this.currentDirPattern, '' );\n\n            if( PathStack.hasProtocol( this.path ) ) {\n                parsedStack = parsedStack.replace( this.protocol , '');\n            }\n\n            parsedStack = parsedStack.split( this.localSeparator );\n            parsedStack.length = parsedStack.length - 1;\n\n            for(var i= 0,tempPath,l=parsedStack.length,root = this.stack;i<l;i++){\n                tempPath = parsedStack[i];\n                if(tempPath){\n                    if( PathStack.isParentPath( tempPath ) ) {\n                        root.pop();\n                    } else {\n                        root.push( tempPath );\n                    }\n                }\n\n            }\n\n\n        }\n\n        var currentPath = document.getElementsByTagName('script');\n\n        currentPath = currentPath[ currentPath.length -1 ].src;\n\n        return new PathStack().push( currentPath ) + \"\";\n\n\n    })();\n\n    /**\n     * 配置项主体。注意，此处所有涉及到路径的配置别遗漏URL变量。\n     */\n    window.UMEDITOR_CONFIG = {\n\n        //为编辑器实例添加一个路径，这个不能被注释\n        UMEDITOR_HOME_URL : URL\n\n        //图片上传配置区\n//        ,imageUrl:URL+\"jsp/imageUp.jsp\"             //图片上传提交地址\n        ,imageUrl:$(\"#hdnContextPath\").val() + \"/file/upload.action\"\t\t\t\t\t// 图片上传路径现在自定义为系统本身的，这样图片就上传到了图片服务器\n        ,imagePath:URL + \"jsp/\"                     //图片修正地址，引用了fixedImagePath,如有特殊需求，可自行配置\n        ,imageFieldName:\"upfile\"                   //图片数据的key,若此处修改，需要在后台对应文件修改对应参数\n\n\n        //工具栏上的所有的功能按钮和下拉框，可以在new编辑器的实例时选择自己需要的从新定义\n//        ,toolbar:[\n//            'source | undo redo | bold italic underline strikethrough | superscript subscript | forecolor backcolor | removeformat |',\n//            'insertorderedlist insertunorderedlist | selectall cleardoc paragraph | fontfamily fontsize' ,\n//            '| justifyleft justifycenter justifyright justifyjustify |',\n//            'link unlink | emotion image video  | map',\n//            '| horizontal print preview fullscreen', 'drafts', 'formula'\n//        ]\n    \n    \t,toolbar:[\n              'source | undo redo | bold italic underline strikethrough | superscript subscript | forecolor backcolor | removeformat |',\n              'insertorderedlist insertunorderedlist | selectall cleardoc paragraph | fontfamily fontsize' ,\n              '| justifyleft justifycenter justifyright justifyjustify |',\n              'link unlink | emotion image video | fullscreen'\n          ]\n\n        //语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换，当然，前提条件是lang文件夹下存在对应的语言文件：\n        //lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase()\n        //,lang:\"zh-cn\"\n        //,langPath:URL +\"lang/\"\n\n        //ie下的链接自动监测\n        //,autourldetectinie:false\n\n        //主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换，当然，前提条件是themes文件夹下存在对应的主题文件：\n        //现有如下皮肤:default\n        //,theme:'default'\n        //,themePath:URL +\"themes/\"\n\n\n\n        //针对getAllHtml方法，会在对应的head标签中增加该编码设置。\n        //,charset:\"utf-8\"\n\n        //常用配置项目\n        //,isShow : true    //默认显示编辑器\n\n        //,initialContent:'欢迎使用UMEDITOR!'    //初始化编辑器的内容,也可以通过textarea/script给值，看官网例子\n\n        //,initialFrameWidth:500 //初始化编辑器宽度,默认500\n        //,initialFrameHeight:500  //初始化编辑器高度,默认500\n\n        //,autoClearinitialContent:true //是否自动清除编辑器初始内容，注意：如果focus属性设置为true,这个也为真，那么编辑器一上来就会触发导致初始化的内容看不到了\n\n        ,textarea:'html' // 提交表单时，服务器获取编辑器提交内容的所用的参数，多实例时可以给容器name属性，会将name给定的值最为每个实例的键值，不用每次实例化的时候都设置这个值\n\n        //,focus:false //初始化时，是否让编辑器获得焦点true或false\n\n        //,autoClearEmptyNode : true //getContent时，是否删除空的inlineElement节点（包括嵌套的情况）\n\n//        ,fullscreen : false //是否开启初始化时即全屏，默认关闭\n\n        //,readonly : false //编辑器初始化结束后,编辑区域是否是只读的，默认是false\n\n        ,zIndex : 10000     //编辑器层级的基数,默认是900\n\n        //如果自定义，最好给p标签如下的行高，要不输入中文时，会有跳动感\n        //注意这里添加的样式，最好放在.edui-editor-body .edui-body-container这两个的下边，防止跟页面上css冲突\n        //,initialStyle:'.edui-editor-body .edui-body-container p{line-height:1em}'\n\n        //,autoSyncData:true //自动同步编辑器要提交的数据\n\n        //,emotionLocalization:false //是否开启表情本地化，默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹\n\n        //,allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串\n\n        //fontfamily\n        //字体设置\n//        ,'fontfamily':[\n//              { name: 'songti', val: '宋体,SimSun'},\n//          ]\n\n        //fontsize\n        //字号\n        //,'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36]\n\n        //paragraph\n        //段落格式 值留空时支持多语言自动识别，若配置，则以配置值为准\n        //,'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''}\n\n        //undo\n        //可以最多回退的次数,默认20\n        //,maxUndoCount:20\n        //当输入的字符数超过该值时，保存一次现场\n        //,maxInputCount:1\n\n        //imageScaleEnabled\n        // 是否允许点击文件拖拽改变大小,默认true\n        ,imageScaleEnabled:false\n\n        //dropFileEnabled\n        // 是否允许拖放图片到编辑区域，上传并插入,默认true\n        //,dropFileEnabled:true\n\n        //pasteImageEnabled\n        // 是否允许粘贴QQ截屏，上传并插入,默认true\n        ,pasteImageEnabled:false\n\n        //autoHeightEnabled\n        // 是否自动长高,默认true\n        //,autoHeightEnabled:true\n\n        //autoFloatEnabled\n        //是否保持toolbar的位置不动,默认true\n        //,autoFloatEnabled:true\n\n        //浮动时工具栏距离浏览器顶部的高度，用于某些具有固定头部的页面\n        //,topOffset:30\n\n        //填写过滤规则\n        //,filterRules: {}\n    };\n})();\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/plugins/umeditor1_2_2-utf8-jsp/umeditor.js",
    "content": "/*!\n * UEditor Mini版本\n * version: 1.2.2\n * build: Wed Mar 19 2014 17:14:25 GMT+0800 (中国标准时间)\n */\n\n(function($){\n\nUMEDITOR_CONFIG = window.UMEDITOR_CONFIG || {};\n\nwindow.UM = {\n    plugins : {},\n\n    commands : {},\n\n    I18N : {},\n\n    version : \"1.2.2\"\n};\n\nvar dom = UM.dom = {};\n/**\n * 浏览器判断模块\n * @file\n * @module UE.browser\n * @since 1.2.6.1\n */\n\n/**\n * 提供浏览器检测的模块\n * @unfile\n * @module UE.browser\n */\nvar browser = UM.browser = function(){\n    var agent = navigator.userAgent.toLowerCase(),\n        opera = window.opera,\n        browser = {\n            /**\n             * @property {boolean} ie 检测当前浏览器是否为IE\n             * @example\n             * ```javascript\n             * if ( UE.browser.ie ) {\n         *     console.log( '当前浏览器是IE' );\n         * }\n             * ```\n             */\n            ie\t\t:  /(msie\\s|trident.*rv:)([\\w.]+)/.test(agent),\n\n            /**\n             * @property {boolean} opera 检测当前浏览器是否为Opera\n             * @example\n             * ```javascript\n             * if ( UE.browser.opera ) {\n         *     console.log( '当前浏览器是Opera' );\n         * }\n             * ```\n             */\n            opera\t: ( !!opera && opera.version ),\n\n            /**\n             * @property {boolean} webkit 检测当前浏览器是否是webkit内核的浏览器\n             * @example\n             * ```javascript\n             * if ( UE.browser.webkit ) {\n         *     console.log( '当前浏览器是webkit内核浏览器' );\n         * }\n             * ```\n             */\n            webkit\t: ( agent.indexOf( ' applewebkit/' ) > -1 ),\n\n            /**\n             * @property {boolean} mac 检测当前浏览器是否是运行在mac平台下\n             * @example\n             * ```javascript\n             * if ( UE.browser.mac ) {\n         *     console.log( '当前浏览器运行在mac平台下' );\n         * }\n             * ```\n             */\n            mac\t: ( agent.indexOf( 'macintosh' ) > -1 ),\n\n            /**\n             * @property {boolean} quirks 检测当前浏览器是否处于“怪异模式”下\n             * @example\n             * ```javascript\n             * if ( UE.browser.quirks ) {\n         *     console.log( '当前浏览器运行处于“怪异模式”' );\n         * }\n             * ```\n             */\n            quirks : ( document.compatMode == 'BackCompat' )\n        };\n\n    /**\n     * @property {boolean} gecko 检测当前浏览器内核是否是gecko内核\n     * @example\n     * ```javascript\n     * if ( UE.browser.gecko ) {\n    *     console.log( '当前浏览器内核是gecko内核' );\n    * }\n     * ```\n     */\n    browser.gecko =( navigator.product == 'Gecko' && !browser.webkit && !browser.opera && !browser.ie);\n\n    var version = 0;\n\n    // Internet Explorer 6.0+\n    if ( browser.ie ){\n\n\n        var v1 =  agent.match(/(?:msie\\s([\\w.]+))/);\n        var v2 = agent.match(/(?:trident.*rv:([\\w.]+))/);\n        if(v1 && v2 && v1[1] && v2[1]){\n            version = Math.max(v1[1]*1,v2[1]*1);\n        }else if(v1 && v1[1]){\n            version = v1[1]*1;\n        }else if(v2 && v2[1]){\n            version = v2[1]*1;\n        }else{\n            version = 0;\n        }\n\n        browser.ie11Compat = document.documentMode == 11;\n        /**\n         * @property { boolean } ie9Compat 检测浏览器模式是否为 IE9 兼容模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie9Compat ) {\n         *     console.log( '当前浏览器运行在IE9兼容模式下' );\n         * }\n         * ```\n         */\n        browser.ie9Compat = document.documentMode == 9;\n\n        /**\n         * @property { boolean } ie8 检测浏览器是否是IE8浏览器\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie8 ) {\n         *     console.log( '当前浏览器是IE8浏览器' );\n         * }\n         * ```\n         */\n        browser.ie8 = !!document.documentMode;\n\n        /**\n         * @property { boolean } ie8Compat 检测浏览器模式是否为 IE8 兼容模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie8Compat ) {\n         *     console.log( '当前浏览器运行在IE8兼容模式下' );\n         * }\n         * ```\n         */\n        browser.ie8Compat = document.documentMode == 8;\n\n        /**\n         * @property { boolean } ie7Compat 检测浏览器模式是否为 IE7 兼容模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie7Compat ) {\n         *     console.log( '当前浏览器运行在IE7兼容模式下' );\n         * }\n         * ```\n         */\n        browser.ie7Compat = ( ( version == 7 && !document.documentMode )\n            || document.documentMode == 7 );\n\n        /**\n         * @property { boolean } ie6Compat 检测浏览器模式是否为 IE6 模式 或者怪异模式\n         * @warning 如果浏览器不是IE， 则该值为undefined\n         * @example\n         * ```javascript\n         * if ( UE.browser.ie6Compat ) {\n         *     console.log( '当前浏览器运行在IE6模式或者怪异模式下' );\n         * }\n         * ```\n         */\n        browser.ie6Compat = ( version < 7 || browser.quirks );\n\n        browser.ie9above = version > 8;\n\n        browser.ie9below = version < 9;\n\n    }\n\n    // Gecko.\n    if ( browser.gecko ){\n        var geckoRelease = agent.match( /rv:([\\d\\.]+)/ );\n        if ( geckoRelease )\n        {\n            geckoRelease = geckoRelease[1].split( '.' );\n            version = geckoRelease[0] * 10000 + ( geckoRelease[1] || 0 ) * 100 + ( geckoRelease[2] || 0 ) * 1;\n        }\n    }\n\n    /**\n     * @property { Number } chrome 检测当前浏览器是否为Chrome, 如果是，则返回Chrome的大版本号\n     * @warning 如果浏览器不是chrome， 则该值为undefined\n     * @example\n     * ```javascript\n     * if ( UE.browser.chrome ) {\n     *     console.log( '当前浏览器是Chrome' );\n     * }\n     * ```\n     */\n    if (/chrome\\/(\\d+\\.\\d)/i.test(agent)) {\n        browser.chrome = + RegExp['\\x241'];\n    }\n\n    /**\n     * @property { Number } safari 检测当前浏览器是否为Safari, 如果是，则返回Safari的大版本号\n     * @warning 如果浏览器不是safari， 则该值为undefined\n     * @example\n     * ```javascript\n     * if ( UE.browser.safari ) {\n     *     console.log( '当前浏览器是Safari' );\n     * }\n     * ```\n     */\n    if(/(\\d+\\.\\d)?(?:\\.\\d)?\\s+safari\\/?(\\d+\\.\\d+)?/i.test(agent) && !/chrome/i.test(agent)){\n        browser.safari = + (RegExp['\\x241'] || RegExp['\\x242']);\n    }\n\n\n    // Opera 9.50+\n    if ( browser.opera )\n        version = parseFloat( opera.version() );\n\n    // WebKit 522+ (Safari 3+)\n    if ( browser.webkit )\n        version = parseFloat( agent.match( / applewebkit\\/(\\d+)/ )[1] );\n\n    /**\n     * @property { Number } version 检测当前浏览器版本号\n     * @remind\n     * <ul>\n     *     <li>IE系列返回值为5,6,7,8,9,10等</li>\n     *     <li>gecko系列会返回10900，158900等</li>\n     *     <li>webkit系列会返回其build号 (如 522等)</li>\n     * </ul>\n     * @example\n     * ```javascript\n     * console.log( '当前浏览器版本号是： ' + UE.browser.version );\n     * ```\n     */\n    browser.version = version;\n\n    /**\n     * @property { boolean } isCompatible 检测当前浏览器是否能够与UEditor良好兼容\n     * @example\n     * ```javascript\n     * if ( UE.browser.isCompatible ) {\n     *     console.log( '浏览器与UEditor能够良好兼容' );\n     * }\n     * ```\n     */\n    browser.isCompatible =\n        !browser.mobile && (\n            ( browser.ie && version >= 6 ) ||\n                ( browser.gecko && version >= 10801 ) ||\n                ( browser.opera && version >= 9.5 ) ||\n                ( browser.air && version >= 1 ) ||\n                ( browser.webkit && version >= 522 ) ||\n                false );\n    return browser;\n}();\n//快捷方式\nvar ie = browser.ie,\n    webkit = browser.webkit,\n    gecko = browser.gecko,\n    opera = browser.opera;\n/**\n * @file\n * @name UM.Utils\n * @short Utils\n * @desc UEditor封装使用的静态工具函数\n * @import editor.js\n */\nvar utils = UM.utils = {\n    /**\n     * 遍历数组，对象，nodeList\n     * @name each\n     * @grammar UM.utils.each(obj,iterator,[context])\n     * @since 1.2.4+\n     * @desc\n     * * obj 要遍历的对象\n     * * iterator 遍历的方法,方法的第一个是遍历的值，第二个是索引，第三个是obj\n     * * context  iterator的上下文\n     * @example\n     * UM.utils.each([1,2],function(v,i){\n     *     console.log(v)//值\n     *     console.log(i)//索引\n     * })\n     * UM.utils.each(document.getElementsByTagName('*'),function(n){\n     *     console.log(n.tagName)\n     * })\n     */\n    each : function(obj, iterator, context) {\n        if (obj == null) return;\n        if (obj.length === +obj.length) {\n            for (var i = 0, l = obj.length; i < l; i++) {\n                if(iterator.call(context, obj[i], i, obj) === false)\n                    return false;\n            }\n        } else {\n            for (var key in obj) {\n                if (obj.hasOwnProperty(key)) {\n                    if(iterator.call(context, obj[key], key, obj) === false)\n                        return false;\n                }\n            }\n        }\n    },\n\n    makeInstance:function (obj) {\n        var noop = new Function();\n        noop.prototype = obj;\n        obj = new noop;\n        noop.prototype = null;\n        return obj;\n    },\n    /**\n     * 将source对象中的属性扩展到target对象上\n     * @name extend\n     * @grammar UM.utils.extend(target,source)  => Object  //覆盖扩展\n     * @grammar UM.utils.extend(target,source,true)  ==> Object  //保留扩展\n     */\n    extend:function (t, s, b) {\n        if (s) {\n            for (var k in s) {\n                if (!b || !t.hasOwnProperty(k)) {\n                    t[k] = s[k];\n                }\n            }\n        }\n        return t;\n    },\n    extend2:function (t) {\n        var a = arguments;\n        for (var i = 1; i < a.length; i++) {\n            var x = a[i];\n            for (var k in x) {\n                if (!t.hasOwnProperty(k)) {\n                    t[k] = x[k];\n                }\n            }\n        }\n        return t;\n    },\n    /**\n     * 模拟继承机制，subClass继承superClass\n     * @name inherits\n     * @grammar UM.utils.inherits(subClass,superClass) => subClass\n     * @example\n     * function SuperClass(){\n     *     this.name = \"小李\";\n     * }\n     * SuperClass.prototype = {\n     *     hello:function(str){\n     *         console.log(this.name + str);\n     *     }\n     * }\n     * function SubClass(){\n     *     this.name = \"小张\";\n     * }\n     * UM.utils.inherits(SubClass,SuperClass);\n     * var sub = new SubClass();\n     * sub.hello(\"早上好!\"); ==> \"小张早上好！\"\n     */\n    inherits:function (subClass, superClass) {\n        var oldP = subClass.prototype,\n            newP = utils.makeInstance(superClass.prototype);\n        utils.extend(newP, oldP, true);\n        subClass.prototype = newP;\n        return (newP.constructor = subClass);\n    },\n\n    /**\n     * 用指定的context作为fn上下文，也就是this\n     * @name bind\n     * @grammar UM.utils.bind(fn,context)  =>  fn\n     */\n    bind:function (fn, context) {\n        return function () {\n            return fn.apply(context, arguments);\n        };\n    },\n\n    /**\n     * 创建延迟delay执行的函数fn\n     * @name defer\n     * @grammar UM.utils.defer(fn,delay)  =>fn   //延迟delay毫秒执行fn，返回fn\n     * @grammar UM.utils.defer(fn,delay,exclusion)  =>fn   //延迟delay毫秒执行fn，若exclusion为真，则互斥执行fn\n     * @example\n     * function test(){\n     *     console.log(\"延迟输出！\");\n     * }\n     * //非互斥延迟执行\n     * var testDefer = UM.utils.defer(test,1000);\n     * testDefer();   =>  \"延迟输出！\";\n     * testDefer();   =>  \"延迟输出！\";\n     * //互斥延迟执行\n     * var testDefer1 = UM.utils.defer(test,1000,true);\n     * testDefer1();   =>  //本次不执行\n     * testDefer1();   =>  \"延迟输出！\";\n     */\n    defer:function (fn, delay, exclusion) {\n        var timerID;\n        return function () {\n            if (exclusion) {\n                clearTimeout(timerID);\n            }\n            timerID = setTimeout(fn, delay);\n        };\n    },\n\n    /**\n     * 查找元素item在数组array中的索引, 若找不到返回-1\n     * @name indexOf\n     * @grammar UM.utils.indexOf(array,item)  => index|-1  //默认从数组开头部开始搜索\n     * @grammar UM.utils.indexOf(array,item,start)  => index|-1  //start指定开始查找的位置\n     */\n    indexOf:function (array, item, start) {\n        var index = -1;\n        start = this.isNumber(start) ? start : 0;\n        this.each(array, function (v, i) {\n            if (i >= start && v === item) {\n                index = i;\n                return false;\n            }\n        });\n        return index;\n    },\n\n    /**\n     * 移除数组array中的元素item\n     * @name removeItem\n     * @grammar UM.utils.removeItem(array,item)\n     */\n    removeItem:function (array, item) {\n        for (var i = 0, l = array.length; i < l; i++) {\n            if (array[i] === item) {\n                array.splice(i, 1);\n                i--;\n            }\n        }\n    },\n\n    /**\n     * 删除字符串str的首尾空格\n     * @name trim\n     * @grammar UM.utils.trim(str) => String\n     */\n    trim:function (str) {\n        return str.replace(/(^[ \\t\\n\\r]+)|([ \\t\\n\\r]+$)/g, '');\n    },\n\n    /**\n     * 将字符串list(以','分隔)或者数组list转成哈希对象\n     * @name listToMap\n     * @grammar UM.utils.listToMap(list)  => Object  //Object形如{test:1,br:1,textarea:1}\n     */\n    listToMap:function (list) {\n        if (!list)return {};\n        list = utils.isArray(list) ? list : list.split(',');\n        for (var i = 0, ci, obj = {}; ci = list[i++];) {\n            obj[ci.toUpperCase()] = obj[ci] = 1;\n        }\n        return obj;\n    },\n\n    /**\n     * 将str中的html符号转义,默认将转义''&<\">''四个字符，可自定义reg来确定需要转义的字符\n     * @name unhtml\n     * @grammar UM.utils.unhtml(str);  => String\n     * @grammar UM.utils.unhtml(str,reg)  => String\n     * @example\n     * var html = '<body>You say:\"你好！Baidu & UEditor!\"</body>';\n     * UM.utils.unhtml(html);   ==>  &lt;body&gt;You say:&quot;你好！Baidu &amp; UEditor!&quot;&lt;/body&gt;\n     * UM.utils.unhtml(html,/[<>]/g)  ==>  &lt;body&gt;You say:\"你好！Baidu & UEditor!\"&lt;/body&gt;\n     */\n    unhtml:function (str, reg) {\n        return str ? str.replace(reg || /[&<\">'](?:(amp|lt|quot|gt|#39|nbsp);)?/g, function (a, b) {\n            if (b) {\n                return a;\n            } else {\n                return {\n                    '<':'&lt;',\n                    '&':'&amp;',\n                    '\"':'&quot;',\n                    '>':'&gt;',\n                    \"'\":'&#39;'\n                }[a]\n            }\n\n        }) : '';\n    },\n    /**\n     * 将str中的转义字符还原成html字符\n     * @name html\n     * @grammar UM.utils.html(str)  => String   //详细参见<code><a href = '#unhtml'>unhtml</a></code>\n     */\n    html:function (str) {\n        return str ? str.replace(/&((g|l|quo)t|amp|#39);/g, function (m) {\n            return {\n                '&lt;':'<',\n                '&amp;':'&',\n                '&quot;':'\"',\n                '&gt;':'>',\n                '&#39;':\"'\"\n            }[m]\n        }) : '';\n    },\n    /**\n     * 将css样式转换为驼峰的形式。如font-size => fontSize\n     * @name cssStyleToDomStyle\n     * @grammar UM.utils.cssStyleToDomStyle(cssName)  => String\n     */\n    cssStyleToDomStyle:function () {\n        var test = document.createElement('div').style,\n            cache = {\n                'float':test.cssFloat != undefined ? 'cssFloat' : test.styleFloat != undefined ? 'styleFloat' : 'float'\n            };\n\n        return function (cssName) {\n            return cache[cssName] || (cache[cssName] = cssName.toLowerCase().replace(/-./g, function (match) {\n                return match.charAt(1).toUpperCase();\n            }));\n        };\n    }(),\n    /**\n     * 动态加载文件到doc中，并依据obj来设置属性，加载成功后执行回调函数fn\n     * @name loadFile\n     * @grammar UM.utils.loadFile(doc,obj)\n     * @grammar UM.utils.loadFile(doc,obj,fn)\n     * @example\n     * //指定加载到当前document中一个script文件，加载成功后执行function\n     * utils.loadFile( document, {\n     *     src:\"test.js\",\n     *     tag:\"script\",\n     *     type:\"text/javascript\",\n     *     defer:\"defer\"\n     * }, function () {\n     *     console.log('加载成功！')\n     * });\n     */\n    loadFile:function () {\n        var tmpList = [];\n\n        function getItem(doc, obj) {\n            try {\n                for (var i = 0, ci; ci = tmpList[i++];) {\n                    if (ci.doc === doc && ci.url == (obj.src || obj.href)) {\n                        return ci;\n                    }\n                }\n            } catch (e) {\n                return null;\n            }\n\n        }\n\n        return function (doc, obj, fn) {\n            var item = getItem(doc, obj);\n            if (item) {\n                if (item.ready) {\n                    fn && fn();\n                } else {\n                    item.funs.push(fn)\n                }\n                return;\n            }\n            tmpList.push({\n                doc:doc,\n                url:obj.src || obj.href,\n                funs:[fn]\n            });\n            if (!doc.body) {\n                var html = [];\n                for (var p in obj) {\n                    if (p == 'tag')continue;\n                    html.push(p + '=\"' + obj[p] + '\"')\n                }\n                doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></' + obj.tag + '>');\n                return;\n            }\n            if (obj.id && doc.getElementById(obj.id)) {\n                return;\n            }\n            var element = doc.createElement(obj.tag);\n            delete obj.tag;\n            for (var p in obj) {\n                element.setAttribute(p, obj[p]);\n            }\n            element.onload = element.onreadystatechange = function () {\n                if (!this.readyState || /loaded|complete/.test(this.readyState)) {\n                    item = getItem(doc, obj);\n                    if (item.funs.length > 0) {\n                        item.ready = 1;\n                        for (var fi; fi = item.funs.pop();) {\n                            fi();\n                        }\n                    }\n                    element.onload = element.onreadystatechange = null;\n                }\n            };\n            element.onerror = function () {\n                throw Error('The load ' + (obj.href || obj.src) + ' fails,check the url settings of file umeditor.config.js ')\n            };\n            doc.getElementsByTagName(\"head\")[0].appendChild(element);\n        }\n    }(),\n    /**\n     * 判断obj对象是否为空\n     * @name isEmptyObject\n     * @grammar UM.utils.isEmptyObject(obj)  => true|false\n     * @example\n     * UM.utils.isEmptyObject({}) ==>true\n     * UM.utils.isEmptyObject([]) ==>true\n     * UM.utils.isEmptyObject(\"\") ==>true\n     */\n    isEmptyObject:function (obj) {\n        if (obj == null) return true;\n        if (this.isArray(obj) || this.isString(obj)) return obj.length === 0;\n        for (var key in obj) if (obj.hasOwnProperty(key)) return false;\n        return true;\n    },\n\n    /**\n     * 统一将颜色值使用16进制形式表示\n     * @name fixColor\n     * @grammar UM.utils.fixColor(name,value) => value\n     * @example\n     * rgb(255,255,255)  => \"#ffffff\"\n     */\n    fixColor:function (name, value) {\n        if (/color/i.test(name) && /rgba?/.test(value)) {\n            var array = value.split(\",\");\n            if (array.length > 3)\n                return \"\";\n            value = \"#\";\n            for (var i = 0, color; color = array[i++];) {\n                color = parseInt(color.replace(/[^\\d]/gi, ''), 10).toString(16);\n                value += color.length == 1 ? \"0\" + color : color;\n            }\n            value = value.toUpperCase();\n        }\n        return  value;\n    },\n\n    /**\n     * 深度克隆对象，从source到target\n     * @name clone\n     * @grammar UM.utils.clone(source) => anthorObj 新的对象是完整的source的副本\n     * @grammar UM.utils.clone(source,target) => target包含了source的所有内容，重名会覆盖\n     */\n    clone:function (source, target) {\n        var tmp;\n        target = target || {};\n        for (var i in source) {\n            if (source.hasOwnProperty(i)) {\n                tmp = source[i];\n                if (typeof tmp == 'object') {\n                    target[i] = utils.isArray(tmp) ? [] : {};\n                    utils.clone(source[i], target[i])\n                } else {\n                    target[i] = tmp;\n                }\n            }\n        }\n        return target;\n    },\n    /**\n     * 转换cm/pt到px\n     * @name transUnitToPx\n     * @grammar UM.utils.transUnitToPx('20pt') => '27px'\n     * @grammar UM.utils.transUnitToPx('0pt') => '0'\n     */\n    transUnitToPx:function (val) {\n        if (!/(pt|cm)/.test(val)) {\n            return val\n        }\n        var unit;\n        val.replace(/([\\d.]+)(\\w+)/, function (str, v, u) {\n            val = v;\n            unit = u;\n        });\n        switch (unit) {\n            case 'cm':\n                val = parseFloat(val) * 25;\n                break;\n            case 'pt':\n                val = Math.round(parseFloat(val) * 96 / 72);\n        }\n        return val + (val ? 'px' : '');\n    },\n    /**\n     * 动态添加css样式\n     * @name cssRule\n     * @grammar UM.utils.cssRule('添加的样式的节点名称',['样式'，'放到哪个document上'])\n     * @grammar UM.utils.cssRule('body','body{background:#ccc}') => null  //给body添加背景颜色\n     * @grammar UM.utils.cssRule('body') =>样式的字符串  //取得key值为body的样式的内容,如果没有找到key值先关的样式将返回空，例如刚才那个背景颜色，将返回 body{background:#ccc}\n     * @grammar UM.utils.cssRule('body','') =>null //清空给定的key值的背景颜色\n     */\n    cssRule:browser.ie && browser.version != 11 ? function (key, style, doc) {\n        var indexList, index;\n        doc = doc || document;\n        if (doc.indexList) {\n            indexList = doc.indexList;\n        } else {\n            indexList = doc.indexList = {};\n        }\n        var sheetStyle;\n        if (!indexList[key]) {\n            if (style === undefined) {\n                return ''\n            }\n            sheetStyle = doc.createStyleSheet('', index = doc.styleSheets.length);\n            indexList[key] = index;\n        } else {\n            sheetStyle = doc.styleSheets[indexList[key]];\n        }\n        if (style === undefined) {\n            return sheetStyle.cssText\n        }\n        sheetStyle.cssText = style || ''\n    } : function (key, style, doc) {\n        doc = doc || document;\n        var head = doc.getElementsByTagName('head')[0], node;\n        if (!(node = doc.getElementById(key))) {\n            if (style === undefined) {\n                return ''\n            }\n            node = doc.createElement('style');\n            node.id = key;\n            head.appendChild(node)\n        }\n        if (style === undefined) {\n            return node.innerHTML\n        }\n        if (style !== '') {\n            node.innerHTML = style;\n        } else {\n            head.removeChild(node)\n        }\n    }\n\n};\n/**\n * 判断str是否为字符串\n * @name isString\n * @grammar UM.utils.isString(str) => true|false\n */\n/**\n * 判断array是否为数组\n * @name isArray\n * @grammar UM.utils.isArray(obj) => true|false\n */\n/**\n * 判断obj对象是否为方法\n * @name isFunction\n * @grammar UM.utils.isFunction(obj)  => true|false\n */\n/**\n * 判断obj对象是否为数字\n * @name isNumber\n * @grammar UM.utils.isNumber(obj)  => true|false\n */\nutils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object'], function (v) {\n    UM.utils['is' + v] = function (obj) {\n        return Object.prototype.toString.apply(obj) == '[object ' + v + ']';\n    }\n});\n/**\n * @file\n * @name UM.EventBase\n * @short EventBase\n * @import editor.js,core/utils.js\n * @desc UE采用的事件基类，继承此类的对应类将获取addListener,removeListener,fireEvent方法。\n * 在UE中，Editor以及所有ui实例都继承了该类，故可以在对应的ui对象以及editor对象上使用上述方法。\n */\nvar EventBase = UM.EventBase = function () {};\n\nEventBase.prototype = {\n    /**\n     * 注册事件监听器\n     * @name addListener\n     * @grammar editor.addListener(types,fn)  //types为事件名称，多个可用空格分隔\n     * @example\n     * editor.addListener('selectionchange',function(){\n     *      console.log(\"选区已经变化！\");\n     * })\n     * editor.addListener('beforegetcontent aftergetcontent',function(type){\n     *         if(type == 'beforegetcontent'){\n     *             //do something\n     *         }else{\n     *             //do something\n     *         }\n     *         console.log(this.getContent) // this是注册的事件的编辑器实例\n     * })\n     */\n    addListener:function (types, listener) {\n        types = utils.trim(types).split(' ');\n        for (var i = 0, ti; ti = types[i++];) {\n            getListener(this, ti, true).push(listener);\n        }\n    },\n    /**\n     * 移除事件监听器\n     * @name removeListener\n     * @grammar editor.removeListener(types,fn)  //types为事件名称，多个可用空格分隔\n     * @example\n     * //changeCallback为方法体\n     * editor.removeListener(\"selectionchange\",changeCallback);\n     */\n    removeListener:function (types, listener) {\n        types = utils.trim(types).split(' ');\n        for (var i = 0, ti; ti = types[i++];) {\n            utils.removeItem(getListener(this, ti) || [], listener);\n        }\n    },\n    /**\n     * 触发事件\n     * @name fireEvent\n     * @grammar editor.fireEvent(types)  //types为事件名称，多个可用空格分隔\n     * @example\n     * editor.fireEvent(\"selectionchange\");\n     */\n    fireEvent:function () {\n        var types = arguments[0];\n        types = utils.trim(types).split(' ');\n        for (var i = 0, ti; ti = types[i++];) {\n            var listeners = getListener(this, ti),\n                r, t, k;\n            if (listeners) {\n                k = listeners.length;\n                while (k--) {\n                    if(!listeners[k])continue;\n                    t = listeners[k].apply(this, arguments);\n                    if(t === true){\n                        return t;\n                    }\n                    if (t !== undefined) {\n                        r = t;\n                    }\n                }\n            }\n            if (t = this['on' + ti.toLowerCase()]) {\n                r = t.apply(this, arguments);\n            }\n        }\n        return r;\n    }\n};\n/**\n * 获得对象所拥有监听类型的所有监听器\n * @public\n * @function\n * @param {Object} obj  查询监听器的对象\n * @param {String} type 事件类型\n * @param {Boolean} force  为true且当前所有type类型的侦听器不存在时，创建一个空监听器数组\n * @returns {Array} 监听器数组\n */\nfunction getListener(obj, type, force) {\n    var allListeners;\n    type = type.toLowerCase();\n    return ( ( allListeners = ( obj.__allListeners || force && ( obj.__allListeners = {} ) ) )\n        && ( allListeners[type] || force && ( allListeners[type] = [] ) ) );\n}\n\n\n///import editor.js\n///import core/dom/dom.js\n///import core/utils.js\n/**\n * dtd html语义化的体现类\n * @constructor\n * @namespace dtd\n */\nvar dtd = dom.dtd = (function() {\n    function _( s ) {\n        for (var k in s) {\n            s[k.toUpperCase()] = s[k];\n        }\n        return s;\n    }\n    var X = utils.extend2;\n    var A = _({isindex:1,fieldset:1}),\n        B = _({input:1,button:1,select:1,textarea:1,label:1}),\n        C = X( _({a:1}), B ),\n        D = X( {iframe:1}, C ),\n        E = _({hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1}),\n        F = _({ins:1,del:1,script:1,style:1}),\n        G = X( _({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1}), F ),\n        H = X( _({sub:1,img:1,embed:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1}), G ),\n        I = X( _({p:1}), H ),\n        J = X( _({iframe:1}), H, B ),\n        K = _({img:1,embed:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1}),\n\n        L = X( _({a:0}), J ),//a不能被切开，所以把他\n        M = _({tr:1}),\n        N = _({'#':1}),\n        O = X( _({param:1}), K ),\n        P = X( _({form:1}), A, D, E, I ),\n        Q = _({li:1,ol:1,ul:1}),\n        R = _({style:1,script:1}),\n        S = _({base:1,link:1,meta:1,title:1}),\n        T = X( S, R ),\n        U = _({head:1,body:1}),\n        V = _({html:1});\n\n    var block = _({address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1}),\n\n        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});\n\n    return  _({\n\n        // $ 表示自定的属性\n\n        // body外的元素列表.\n        $nonBodyContent: X( V, U, S ),\n\n        //块结构元素列表\n        $block : block,\n\n        //内联元素列表\n        $inline : L,\n\n        $inlineWithA : X(_({a:1}),L),\n\n        $body : X( _({script:1,style:1}), block ),\n\n        $cdata : _({script:1,style:1}),\n\n        //自闭和元素\n        $empty : empty,\n\n        //不是自闭合，但不能让range选中里边\n        $nonChild : _({iframe:1,textarea:1}),\n        //列表元素列表\n        $listItem : _({dd:1,dt:1,li:1}),\n\n        //列表根元素列表\n        $list: _({ul:1,ol:1,dl:1}),\n\n        //不能认为是空的元素\n        $isNotEmpty : _({table:1,ul:1,ol:1,dl:1,iframe:1,area:1,base:1,col:1,hr:1,img:1,embed:1,input:1,link:1,meta:1,param:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1}),\n\n        //如果没有子节点就可以删除的元素列表，像span,a\n        $removeEmpty : _({a:1,abbr:1,acronym:1,address: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,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1}),\n\n        $removeEmptyBlock : _({'p':1,'div':1}),\n\n        //在table元素里的元素列表\n        $tableContent : _({caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1,table:1}),\n        //不转换的标签\n        $notTransContent : _({pre:1,script:1,style:1,textarea:1}),\n        html: U,\n        head: T,\n        style: N,\n        script: N,\n        body: P,\n        base: {},\n        link: {},\n        meta: {},\n        title: N,\n        col : {},\n        tr : _({td:1,th:1}),\n        img : {},\n        embed: {},\n        colgroup : _({thead:1,col:1,tbody:1,tr:1,tfoot:1}),\n        noscript : P,\n        td : P,\n        br : {},\n        th : P,\n        center : P,\n        kbd : L,\n        button : X( I, E ),\n        basefont : {},\n        h5 : L,\n        h4 : L,\n        samp : L,\n        h6 : L,\n        ol : Q,\n        h1 : L,\n        h3 : L,\n        option : N,\n        h2 : L,\n        form : X( A, D, E, I ),\n        select : _({optgroup:1,option:1}),\n        font : L,\n        ins : L,\n        menu : Q,\n        abbr : L,\n        label : L,\n        table : _({thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1}),\n        code : L,\n        tfoot : M,\n        cite : L,\n        li : P,\n        input : {},\n        iframe : P,\n        strong : L,\n        textarea : N,\n        noframes : P,\n        big : L,\n        small : L,\n        //trace:\n        span :_({'#':1,br:1,b:1,strong:1,u:1,i:1,em:1,sub:1,sup:1,strike:1,span:1}),\n        hr : L,\n        dt : L,\n        sub : L,\n        optgroup : _({option:1}),\n        param : {},\n        bdo : L,\n        'var' : L,\n        div : P,\n        object : O,\n        sup : L,\n        dd : P,\n        strike : L,\n        area : {},\n        dir : Q,\n        map : X( _({area:1,form:1,p:1}), A, F, E ),\n        applet : O,\n        dl : _({dt:1,dd:1}),\n        del : L,\n        isindex : {},\n        fieldset : X( _({legend:1}), K ),\n        thead : M,\n        ul : Q,\n        acronym : L,\n        b : L,\n        a : X( _({a:1}), J ),\n        blockquote :X(_({td:1,tr:1,tbody:1,li:1}),P),\n        caption : L,\n        i : L,\n        u : L,\n        tbody : M,\n        s : L,\n        address : X( D, I ),\n        tt : L,\n        legend : L,\n        q : L,\n        pre : X( G, C ),\n        p : X(_({'a':1}),L),\n        em :L,\n        dfn : L\n    });\n})();\n\n/**\n * @file\n * @name UM.dom.domUtils\n * @short DomUtils\n * @import editor.js, core/utils.js,core/browser.js,core/dom/dtd.js\n * @desc UEditor封装的底层dom操作库\n */\n\nfunction getDomNode(node, start, ltr, startFromChild, fn, guard) {\n    var tmpNode = startFromChild && node[start],\n        parent;\n    !tmpNode && (tmpNode = node[ltr]);\n    while (!tmpNode && (parent = (parent || node).parentNode)) {\n        if (parent.tagName == 'BODY' || guard && !guard(parent)) {\n            return null;\n        }\n        tmpNode = parent[ltr];\n    }\n    if (tmpNode && fn && !fn(tmpNode)) {\n        return  getDomNode(tmpNode, start, ltr, false, fn);\n    }\n    return tmpNode;\n}\nvar attrFix = ie && browser.version < 9 ? {\n        tabindex: \"tabIndex\",\n        readonly: \"readOnly\",\n        \"for\": \"htmlFor\",\n        \"class\": \"className\",\n        maxlength: \"maxLength\",\n        cellspacing: \"cellSpacing\",\n        cellpadding: \"cellPadding\",\n        rowspan: \"rowSpan\",\n        colspan: \"colSpan\",\n        usemap: \"useMap\",\n        frameborder: \"frameBorder\"\n    } : {\n        tabindex: \"tabIndex\",\n        readonly: \"readOnly\"\n    },\n    styleBlock = utils.listToMap([\n        '-webkit-box', '-moz-box', 'block' ,\n        'list-item' , 'table' , 'table-row-group' ,\n        'table-header-group', 'table-footer-group' ,\n        'table-row' , 'table-column-group' , 'table-column' ,\n        'table-cell' , 'table-caption'\n    ]);\nvar domUtils = dom.domUtils = {\n    //节点常量\n    NODE_ELEMENT: 1,\n    NODE_DOCUMENT: 9,\n    NODE_TEXT: 3,\n    NODE_COMMENT: 8,\n    NODE_DOCUMENT_FRAGMENT: 11,\n\n    //位置关系\n    POSITION_IDENTICAL: 0,\n    POSITION_DISCONNECTED: 1,\n    POSITION_FOLLOWING: 2,\n    POSITION_PRECEDING: 4,\n    POSITION_IS_CONTAINED: 8,\n    POSITION_CONTAINS: 16,\n    //ie6使用其他的会有一段空白出现\n    fillChar: ie && browser.version == '6' ? '\\ufeff' : '\\u200B',\n    //-------------------------Node部分--------------------------------\n    keys: {\n        /*Backspace*/ 8: 1, /*Delete*/ 46: 1,\n        /*Shift*/ 16: 1, /*Ctrl*/ 17: 1, /*Alt*/ 18: 1,\n        37: 1, 38: 1, 39: 1, 40: 1,\n        13: 1 /*enter*/\n    },\n    breakParent:function (node, parent) {\n        var tmpNode,\n            parentClone = node,\n            clone = node,\n            leftNodes,\n            rightNodes;\n        do {\n            parentClone = parentClone.parentNode;\n            if (leftNodes) {\n                tmpNode = parentClone.cloneNode(false);\n                tmpNode.appendChild(leftNodes);\n                leftNodes = tmpNode;\n                tmpNode = parentClone.cloneNode(false);\n                tmpNode.appendChild(rightNodes);\n                rightNodes = tmpNode;\n            } else {\n                leftNodes = parentClone.cloneNode(false);\n                rightNodes = leftNodes.cloneNode(false);\n            }\n            while (tmpNode = clone.previousSibling) {\n                leftNodes.insertBefore(tmpNode, leftNodes.firstChild);\n            }\n            while (tmpNode = clone.nextSibling) {\n                rightNodes.appendChild(tmpNode);\n            }\n            clone = parentClone;\n        } while (parent !== parentClone);\n        tmpNode = parent.parentNode;\n        tmpNode.insertBefore(leftNodes, parent);\n        tmpNode.insertBefore(rightNodes, parent);\n        tmpNode.insertBefore(node, rightNodes);\n        domUtils.remove(parent);\n        return node;\n    },\n    trimWhiteTextNode:function (node) {\n        function remove(dir) {\n            var child;\n            while ((child = node[dir]) && child.nodeType == 3 && domUtils.isWhitespace(child)) {\n                node.removeChild(child);\n            }\n        }\n        remove('firstChild');\n        remove('lastChild');\n    },\n    /**\n     * 获取节点A相对于节点B的位置关系\n     * @name getPosition\n     * @grammar UM.dom.domUtils.getPosition(nodeA,nodeB)  =>  Number\n     * @example\n     *  switch (returnValue) {\n     *      case 0: //相等，同一节点\n     *      case 1: //无关，节点不相连\n     *      case 2: //跟随，即节点A头部位于节点B头部的后面\n     *      case 4: //前置，即节点A头部位于节点B头部的前面\n     *      case 8: //被包含，即节点A被节点B包含\n     *      case 10://组合类型，即节点A满足跟随节点B且被节点B包含。实际上，如果被包含，必定跟随，所以returnValue事实上不会存在8的情况。\n     *      case 16://包含，即节点A包含节点B\n     *      case 20://组合类型，即节点A满足前置节点A且包含节点B。同样，如果包含，必定前置，所以returnValue事实上也不会存在16的情况\n     *  }\n     */\n    getPosition: function (nodeA, nodeB) {\n        // 如果两个节点是同一个节点\n        if (nodeA === nodeB) {\n            // domUtils.POSITION_IDENTICAL\n            return 0;\n        }\n        var node,\n            parentsA = [nodeA],\n            parentsB = [nodeB];\n        node = nodeA;\n        while (node = node.parentNode) {\n            // 如果nodeB是nodeA的祖先节点\n            if (node === nodeB) {\n                // domUtils.POSITION_IS_CONTAINED + domUtils.POSITION_FOLLOWING\n                return 10;\n            }\n            parentsA.push(node);\n        }\n        node = nodeB;\n        while (node = node.parentNode) {\n            // 如果nodeA是nodeB的祖先节点\n            if (node === nodeA) {\n                // domUtils.POSITION_CONTAINS + domUtils.POSITION_PRECEDING\n                return 20;\n            }\n            parentsB.push(node);\n        }\n        parentsA.reverse();\n        parentsB.reverse();\n        if (parentsA[0] !== parentsB[0]) {\n            // domUtils.POSITION_DISCONNECTED\n            return 1;\n        }\n        var i = -1;\n        while (i++, parentsA[i] === parentsB[i]) {\n        }\n        nodeA = parentsA[i];\n        nodeB = parentsB[i];\n        while (nodeA = nodeA.nextSibling) {\n            if (nodeA === nodeB) {\n                // domUtils.POSITION_PRECEDING\n                return 4\n            }\n        }\n        // domUtils.POSITION_FOLLOWING\n        return  2;\n    },\n\n    /**\n     * 返回节点node在父节点中的索引位置\n     * @name getNodeIndex\n     * @grammar UM.dom.domUtils.getNodeIndex(node)  => Number  //索引值从0开始\n     */\n    getNodeIndex: function (node, ignoreTextNode) {\n        var preNode = node,\n            i = 0;\n        while (preNode = preNode.previousSibling) {\n            if (ignoreTextNode && preNode.nodeType == 3) {\n                if (preNode.nodeType != preNode.nextSibling.nodeType) {\n                    i++;\n                }\n                continue;\n            }\n            i++;\n        }\n        return i;\n    },\n\n    /**\n     * 检测节点node是否在节点doc的树上，实质上是检测是否被doc包含\n     * @name inDoc\n     * @grammar UM.dom.domUtils.inDoc(node,doc)   =>  true|false\n     */\n    inDoc: function (node, doc) {\n        return domUtils.getPosition(node, doc) == 10;\n    },\n    /**\n     * 查找node节点的祖先节点\n     * @name findParent\n     * @grammar UM.dom.domUtils.findParent(node)  => Element  // 直接返回node节点的父节点\n     * @grammar UM.dom.domUtils.findParent(node,filterFn)  => Element  //filterFn为过滤函数，node作为参数，返回true时才会将node作为符合要求的节点返回\n     * @grammar UM.dom.domUtils.findParent(node,filterFn,includeSelf)  => Element  //includeSelf指定是否包含自身\n     */\n    findParent: function (node, filterFn, includeSelf) {\n        if (node && !domUtils.isBody(node)) {\n            node = includeSelf ? node : node.parentNode;\n            while (node) {\n                if (!filterFn || filterFn(node) || domUtils.isBody(node)) {\n                    return filterFn && !filterFn(node) && domUtils.isBody(node) ? null : node;\n                }\n                node = node.parentNode;\n            }\n        }\n        return null;\n    },\n    /**\n     * 通过tagName查找node节点的祖先节点\n     * @name findParentByTagName\n     * @grammar UM.dom.domUtils.findParentByTagName(node,tagNames)   =>  Element  //tagNames支持数组，区分大小写\n     * @grammar UM.dom.domUtils.findParentByTagName(node,tagNames,includeSelf)   =>  Element  //includeSelf指定是否包含自身\n     * @grammar UM.dom.domUtils.findParentByTagName(node,tagNames,includeSelf,excludeFn)   =>  Element  //excludeFn指定例外过滤条件，返回true时忽略该节点\n     */\n    findParentByTagName: function (node, tagNames, includeSelf, excludeFn) {\n        tagNames = utils.listToMap(utils.isArray(tagNames) ? tagNames : [tagNames]);\n        return domUtils.findParent(node, function (node) {\n            return tagNames[node.tagName] && !(excludeFn && excludeFn(node));\n        }, includeSelf);\n    },\n    /**\n     * 查找节点node的祖先节点集合\n     * @name findParents\n     * @grammar UM.dom.domUtils.findParents(node)  => Array  //返回一个祖先节点数组集合，不包含自身\n     * @grammar UM.dom.domUtils.findParents(node,includeSelf)  => Array  //返回一个祖先节点数组集合，includeSelf指定是否包含自身\n     * @grammar UM.dom.domUtils.findParents(node,includeSelf,filterFn)  => Array  //返回一个祖先节点数组集合，filterFn指定过滤条件，返回true的node将被选取\n     * @grammar UM.dom.domUtils.findParents(node,includeSelf,filterFn,closerFirst)  => Array  //返回一个祖先节点数组集合，closerFirst为true的话，node的直接父亲节点是数组的第0个\n     */\n    findParents: function (node, includeSelf, filterFn, closerFirst) {\n        var parents = includeSelf && ( filterFn && filterFn(node) || !filterFn ) ? [node] : [];\n        while (node = domUtils.findParent(node, filterFn)) {\n            parents.push(node);\n        }\n        return closerFirst ? parents : parents.reverse();\n    },\n\n    /**\n     * 在节点node后面插入新节点newNode\n     * @name insertAfter\n     * @grammar UM.dom.domUtils.insertAfter(node,newNode)  => newNode\n     */\n    insertAfter: function (node, newNode) {\n        return node.parentNode.insertBefore(newNode, node.nextSibling);\n    },\n\n    /**\n     * 删除节点node，并根据keepChildren指定是否保留子节点\n     * @name remove\n     * @grammar UM.dom.domUtils.remove(node)  =>  node\n     * @grammar UM.dom.domUtils.remove(node,keepChildren)  =>  node\n     */\n    remove: function (node, keepChildren) {\n\n        var parent = node.parentNode,\n            child;\n        if (parent) {\n            if (keepChildren && node.hasChildNodes()) {\n                while (child = node.firstChild) {\n                    parent.insertBefore(child, node);\n                }\n            }\n            parent.removeChild(node);\n        }\n        return node;\n    },\n\n\n    /**\n     * 取得node节点的下一个兄弟节点， 如果该节点其后没有兄弟节点， 则递归查找其父节点之后的第一个兄弟节点，\n     * 直到找到满足条件的节点或者递归到BODY节点之后才会结束。\n     * @method getNextDomNode\n     * @param { Node } node 需要获取其后的兄弟节点的节点对象\n     * @return { Node | NULL } 如果找满足条件的节点， 则返回该节点， 否则返回NULL\n     * @example\n     * ```html\n     *     <body>\n     *      <div id=\"test\">\n     *          <span></span>\n     *      </div>\n     *      <i>xxx</i>\n     * </body>\n     * <script>\n     *\n     *     //output: i节点\n     *     console.log( UE.dom.domUtils.getNextDomNode( document.getElementById( \"test\" ) ) );\n     *\n     * </script>\n     * ```\n     * @example\n     * ```html\n     * <body>\n     *      <div>\n     *          <span></span>\n     *          <i id=\"test\">xxx</i>\n     *      </div>\n     *      <b>xxx</b>\n     * </body>\n     * <script>\n     *\n     *     //由于id为test的i节点之后没有兄弟节点， 则查找其父节点（div）后面的兄弟节点\n     *     //output: b节点\n     *     console.log( UE.dom.domUtils.getNextDomNode( document.getElementById( \"test\" ) ) );\n     *\n     * </script>\n     * ```\n     */\n\n    /**\n     * 取得node节点的下一个兄弟节点， 如果startFromChild的值为ture，则先获取其子节点，\n     * 如果有子节点则直接返回第一个子节点；如果没有子节点或者startFromChild的值为false，\n     * 则执行<a href=\"#UE.dom.domUtils.getNextDomNode(Node)\">getNextDomNode(Node node)</a>的查找过程。\n     * @method getNextDomNode\n     * @param { Node } node 需要获取其后的兄弟节点的节点对象\n     * @param { Boolean } startFromChild 查找过程是否从其子节点开始\n     * @return { Node | NULL } 如果找满足条件的节点， 则返回该节点， 否则返回NULL\n     * @see UE.dom.domUtils.getNextDomNode(Node)\n     */\n    getNextDomNode:function (node, startFromChild, filterFn, guard) {\n        return getDomNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard);\n    },\n    getPreDomNode:function (node, startFromChild, filterFn, guard) {\n        return getDomNode(node, 'lastChild', 'previousSibling', startFromChild, filterFn, guard);\n    },\n\n    /**\n     * 检测节点node是否属于bookmark节点\n     * @name isBookmarkNode\n     * @grammar UM.dom.domUtils.isBookmarkNode(node)  => true|false\n     */\n    isBookmarkNode: function (node) {\n        return node.nodeType == 1 && node.id && /^_baidu_bookmark_/i.test(node.id);\n    },\n    /**\n     * 获取节点node所在的window对象\n     * @name  getWindow\n     * @grammar UM.dom.domUtils.getWindow(node)  => window对象\n     */\n    getWindow: function (node) {\n        var doc = node.ownerDocument || node;\n        return doc.defaultView || doc.parentWindow;\n    },\n\n    /**\n     * 获取离nodeA与nodeB最近的公共的祖先节点\n     * @method  getCommonAncestor\n     * @param { Node } nodeA 第一个节点\n     * @param { Node } nodeB 第二个节点\n     * @remind 如果给定的两个节点是同一个节点， 将直接返回该节点。\n     * @return { Node | NULL } 如果未找到公共节点， 返回NULL， 否则返回最近的公共祖先节点。\n     * @example\n     * ```javascript\n     * var commonAncestor = UE.dom.domUtils.getCommonAncestor( document.body, document.body.firstChild );\n     * //output: true\n     * console.log( commonAncestor.tagName.toLowerCase() === 'body' );\n     * ```\n     */\n    getCommonAncestor:function (nodeA, nodeB) {\n        if (nodeA === nodeB)\n            return nodeA;\n        var parentsA = [nodeA] , parentsB = [nodeB], parent = nodeA, i = -1;\n        while (parent = parent.parentNode) {\n            if (parent === nodeB) {\n                return parent;\n            }\n            parentsA.push(parent);\n        }\n        parent = nodeB;\n        while (parent = parent.parentNode) {\n            if (parent === nodeA)\n                return parent;\n            parentsB.push(parent);\n        }\n        parentsA.reverse();\n        parentsB.reverse();\n        while (i++, parentsA[i] === parentsB[i]) {\n        }\n        return i == 0 ? null : parentsA[i - 1];\n\n    },\n    /**\n     * 清除node节点左右连续为空的兄弟inline节点\n     * @method clearEmptySibling\n     * @param { Node } node 执行的节点对象， 如果该节点的左右连续的兄弟节点是空的inline节点，\n     * 则这些兄弟节点将被删除\n     * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext)  //ignoreNext指定是否忽略右边空节点\n     * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext,ignorePre)  //ignorePre指定是否忽略左边空节点\n     * @example\n     * ```html\n     * <body>\n     *     <div></div>\n     *     <span id=\"test\"></span>\n     *     <i></i>\n     *     <b></b>\n     *     <em>xxx</em>\n     *     <span></span>\n     * </body>\n     * <script>\n     *\n     *      UE.dom.domUtils.clearEmptySibling( document.getElementById( \"test\" ) );\n     *\n     *      //output: <div></div><span id=\"test\"></span><em>xxx</em><span></span>\n     *      console.log( document.body.innerHTML );\n     *\n     * </script>\n     * ```\n     */\n\n    /**\n     * 清除node节点左右连续为空的兄弟inline节点， 如果ignoreNext的值为true，\n     * 则忽略对右边兄弟节点的操作。\n     * @method clearEmptySibling\n     * @param { Node } node 执行的节点对象， 如果该节点的左右连续的兄弟节点是空的inline节点，\n     * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作\n     * 则这些兄弟节点将被删除\n     * @see UE.dom.domUtils.clearEmptySibling(Node)\n     */\n\n    /**\n     * 清除node节点左右连续为空的兄弟inline节点， 如果ignoreNext的值为true，\n     * 则忽略对右边兄弟节点的操作， 如果ignorePre的值为true，则忽略对左边兄弟节点的操作。\n     * @method clearEmptySibling\n     * @param { Node } node 执行的节点对象， 如果该节点的左右连续的兄弟节点是空的inline节点，\n     * @param { Boolean } ignoreNext 是否忽略忽略对右边的兄弟节点的操作\n     * @param { Boolean } ignorePre 是否忽略忽略对左边的兄弟节点的操作\n     * 则这些兄弟节点将被删除\n     * @see UE.dom.domUtils.clearEmptySibling(Node)\n     */\n    clearEmptySibling:function (node, ignoreNext, ignorePre) {\n        function clear(next, dir) {\n            var tmpNode;\n            while (next && !domUtils.isBookmarkNode(next) && (domUtils.isEmptyInlineElement(next)\n                //这里不能把空格算进来会吧空格干掉，出现文字间的空格丢掉了\n                || !new RegExp('[^\\t\\n\\r' + domUtils.fillChar + ']').test(next.nodeValue) )) {\n                tmpNode = next[dir];\n                domUtils.remove(next);\n                next = tmpNode;\n            }\n        }\n        !ignoreNext && clear(node.nextSibling, 'nextSibling');\n        !ignorePre && clear(node.previousSibling, 'previousSibling');\n    },\n\n    /**\n     * 将一个文本节点node拆分成两个文本节点，offset指定拆分位置\n     * @name split\n     * @grammar UM.dom.domUtils.split(node,offset)  =>  TextNode  //返回从切分位置开始的后一个文本节点\n     */\n    split: function (node, offset) {\n        var doc = node.ownerDocument;\n        if (browser.ie && offset == node.nodeValue.length) {\n            var next = doc.createTextNode('');\n            return domUtils.insertAfter(node, next);\n        }\n        var retval = node.splitText(offset);\n        //ie8下splitText不会跟新childNodes,我们手动触发他的更新\n        if (browser.ie8) {\n            var tmpNode = doc.createTextNode('');\n            domUtils.insertAfter(retval, tmpNode);\n            domUtils.remove(tmpNode);\n        }\n        return retval;\n    },\n\n    /**\n     * 检测节点node是否为空节点（包括空格、换行、占位符等字符）\n     * @name  isWhitespace\n     * @grammar  UM.dom.domUtils.isWhitespace(node)  => true|false\n     */\n    isWhitespace: function (node) {\n        return !new RegExp('[^ \\t\\n\\r' + domUtils.fillChar + ']').test(node.nodeValue);\n    },\n    /**\n     * 获取元素element相对于viewport的位置坐标\n     * @name getXY\n     * @grammar UM.dom.domUtils.getXY(element)  => Object //返回坐标对象{x:left,y:top}\n     */\n    getXY: function (element) {\n        var x = 0, y = 0;\n        while (element.offsetParent) {\n            y += element.offsetTop;\n            x += element.offsetLeft;\n            element = element.offsetParent;\n        }\n        return { 'x': x, 'y': y};\n    },\n    /**\n     * 检查节点node是否是空inline节点\n     * @name  isEmptyInlineElement\n     * @grammar   UM.dom.domUtils.isEmptyInlineElement(node)  => 1|0\n     * @example\n     * <b><i></i></b> => 1\n     * <b><i></i><u></u></b> => 1\n     * <b></b> => 1\n     * <b>xx<i></i></b> => 0\n     */\n    isEmptyInlineElement: function (node) {\n        if (node.nodeType != 1 || !dtd.$removeEmpty[ node.tagName ]) {\n            return 0;\n        }\n        node = node.firstChild;\n        while (node) {\n            //如果是创建的bookmark就跳过\n            if (domUtils.isBookmarkNode(node)) {\n                return 0;\n            }\n            if (node.nodeType == 1 && !domUtils.isEmptyInlineElement(node) ||\n                node.nodeType == 3 && !domUtils.isWhitespace(node)\n                ) {\n                return 0;\n            }\n            node = node.nextSibling;\n        }\n        return 1;\n\n    },\n\n\n    /**\n     * 检查节点node是否为块元素\n     * @name isBlockElm\n     * @grammar UM.dom.domUtils.isBlockElm(node)  => true|false\n     */\n    isBlockElm: function (node) {\n        return node.nodeType == 1 && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node, 'display')]) && !dtd.$nonChild[node.tagName];\n    },\n\n\n    /**\n     * 原生方法getElementsByTagName的封装\n     * @name getElementsByTagName\n     * @grammar UM.dom.domUtils.getElementsByTagName(node,tagName)  => Array  //节点集合数组\n     */\n    getElementsByTagName: function (node, name, filter) {\n        if (filter && utils.isString(filter)) {\n            var className = filter;\n            filter = function (node) {\n                var result = false;\n                $.each(utils.trim(className).replace(/[ ]{2,}/g, ' ').split(' '), function (i, v) {\n                    if ($(node).hasClass(v)) {\n                        result = true;\n                        return false;\n                    }\n                })\n                return result;\n            }\n        }\n        name = utils.trim(name).replace(/[ ]{2,}/g, ' ').split(' ');\n        var arr = [];\n        for (var n = 0, ni; ni = name[n++];) {\n            var list = node.getElementsByTagName(ni);\n            for (var i = 0, ci; ci = list[i++];) {\n                if (!filter || filter(ci))\n                    arr.push(ci);\n            }\n        }\n        return arr;\n    },\n\n\n    /**\n     * 设置节点node及其子节点不会被选中\n     * @name unSelectable\n     * @grammar UM.dom.domUtils.unSelectable(node)\n     */\n    unSelectable: ie && browser.ie9below || browser.opera ? function (node) {\n        //for ie9\n        node.onselectstart = function () {\n            return false;\n        };\n        node.onclick = node.onkeyup = node.onkeydown = function () {\n            return false;\n        };\n        node.unselectable = 'on';\n        node.setAttribute(\"unselectable\", \"on\");\n        for (var i = 0, ci; ci = node.all[i++];) {\n            switch (ci.tagName.toLowerCase()) {\n                case 'iframe' :\n                case 'textarea' :\n                case 'input' :\n                case 'select' :\n                    break;\n                default :\n                    ci.unselectable = 'on';\n                    node.setAttribute(\"unselectable\", \"on\");\n            }\n        }\n    } : function (node) {\n        node.style.MozUserSelect =\n            node.style.webkitUserSelect =\n                    node.style.msUserSelect =\n                        node.style.KhtmlUserSelect = 'none';\n    },\n    /**\n     * 删除节点node上的属性attrNames，attrNames为属性名称数组\n     * @name  removeAttributes\n     * @grammar UM.dom.domUtils.removeAttributes(node,attrNames)\n     * @example\n     * //Before remove\n     * <span style=\"font-size:14px;\" id=\"test\" name=\"followMe\">xxxxx</span>\n     * //Remove\n     * UM.dom.domUtils.removeAttributes(node,[\"id\",\"name\"]);\n     * //After remove\n     * <span style=\"font-size:14px;\">xxxxx</span>\n     */\n    removeAttributes: function (node, attrNames) {\n        attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g, ' ').split(' ');\n        for (var i = 0, ci; ci = attrNames[i++];) {\n            ci = attrFix[ci] || ci;\n            switch (ci) {\n                case 'className':\n                    node[ci] = '';\n                    break;\n                case 'style':\n                    node.style.cssText = '';\n                    !browser.ie && node.removeAttributeNode(node.getAttributeNode('style'))\n            }\n            node.removeAttribute(ci);\n        }\n    },\n    /**\n     * 在doc下创建一个标签名为tag，属性为attrs的元素\n     * @name createElement\n     * @grammar UM.dom.domUtils.createElement(doc,tag,attrs)  =>  Node  //返回创建的节点\n     */\n    createElement: function (doc, tag, attrs) {\n        return domUtils.setAttributes(doc.createElement(tag), attrs)\n    },\n    /**\n     * 为节点node添加属性attrs，attrs为属性键值对\n     * @name setAttributes\n     * @grammar UM.dom.domUtils.setAttributes(node,attrs)  => node\n     */\n    setAttributes: function (node, attrs) {\n        for (var attr in attrs) {\n            if (attrs.hasOwnProperty(attr)) {\n                var value = attrs[attr];\n                switch (attr) {\n                    case 'class':\n                        //ie下要这样赋值，setAttribute不起作用\n                        node.className = value;\n                        break;\n                    case 'style' :\n                        node.style.cssText = node.style.cssText + \";\" + value;\n                        break;\n                    case 'innerHTML':\n                        node[attr] = value;\n                        break;\n                    case 'value':\n                        node.value = value;\n                        break;\n                    default:\n                        node.setAttribute(attrFix[attr] || attr, value);\n                }\n            }\n        }\n        return node;\n    },\n\n    /**\n     * 获取元素element的计算样式\n     * @name getComputedStyle\n     * @grammar UM.dom.domUtils.getComputedStyle(element,styleName)  => String //返回对应样式名称的样式值\n     * @example\n     * getComputedStyle(document.body,\"font-size\")  =>  \"15px\"\n     * getComputedStyle(form,\"color\")  =>  \"#ffccdd\"\n     */\n    getComputedStyle: function (element, styleName) {\n        return utils.transUnitToPx(utils.fixColor(styleName, $(element).css(styleName)));\n    },\n\n    /**\n     * 阻止事件默认行为\n     * @param {Event} evt    需要组织的事件对象\n     */\n    preventDefault: function (evt) {\n        evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);\n    },\n\n    /**\n     * 删除元素element指定的样式\n     * @method removeStyle\n     * @param { Element } element 需要删除样式的元素\n     * @param { String } styleName 需要删除的样式名\n     * @example\n     * ```html\n     * <span id=\"test\" style=\"color: red; background: blue;\"></span>\n     *\n     * <script>\n     *\n     *     var testNode = document.getElementById(\"test\");\n     *\n     *     UE.dom.domUtils.removeStyle( testNode, 'color' );\n     *\n     *     //output: background: blue;\n     *     console.log( testNode.style.cssText );\n     *\n     * </script>\n     * ```\n     */\n    removeStyle:function (element, name) {\n        if(browser.ie ){\n            //针对color先单独处理一下\n            if(name == 'color'){\n                name = '(^|;)' + name;\n            }\n            element.style.cssText = element.style.cssText.replace(new RegExp(name + '[^:]*:[^;]+;?','ig'),'')\n        }else{\n            if (element.style.removeProperty) {\n                element.style.removeProperty (name);\n            }else {\n                element.style.removeAttribute (utils.cssStyleToDomStyle(name));\n            }\n        }\n\n\n        if (!element.style.cssText) {\n            domUtils.removeAttributes(element, ['style']);\n        }\n    },\n\n    /**\n     * 获取元素element的某个样式值\n     * @name getStyle\n     * @grammar UM.dom.domUtils.getStyle(element,name)  => String\n     */\n    getStyle: function (element, name) {\n        var value = element.style[ utils.cssStyleToDomStyle(name) ];\n        return utils.fixColor(name, value);\n    },\n    /**\n     * 为元素element设置样式属性值\n     * @name setStyle\n     * @grammar UM.dom.domUtils.setStyle(element,name,value)\n     */\n    setStyle: function (element, name, value) {\n        element.style[utils.cssStyleToDomStyle(name)] = value;\n        if (!utils.trim(element.style.cssText)) {\n            this.removeAttributes(element, 'style')\n        }\n    },\n\n    /**\n     * 删除_moz_dirty属性\n     * @function\n     */\n    removeDirtyAttr: function (node) {\n        for (var i = 0, ci, nodes = node.getElementsByTagName('*'); ci = nodes[i++];) {\n            ci.removeAttribute('_moz_dirty');\n        }\n        node.removeAttribute('_moz_dirty');\n    },\n    /**\n     * 返回子节点的数量\n     * @function\n     * @param {Node}    node    父节点\n     * @param  {Function}    fn    过滤子节点的规则，若为空，则得到所有子节点的数量\n     * @return {Number}    符合条件子节点的数量\n     */\n    getChildCount: function (node, fn) {\n        var count = 0, first = node.firstChild;\n        fn = fn || function () {\n            return 1;\n        };\n        while (first) {\n            if (fn(first)) {\n                count++;\n            }\n            first = first.nextSibling;\n        }\n        return count;\n    },\n\n    /**\n     * 判断是否为空节点\n     * @function\n     * @param {Node}    node    节点\n     * @return {Boolean}    是否为空节点\n     */\n    isEmptyNode: function (node) {\n        return !node.firstChild || domUtils.getChildCount(node, function (node) {\n            return  !domUtils.isBr(node) && !domUtils.isBookmarkNode(node) && !domUtils.isWhitespace(node)\n        }) == 0\n    },\n\n    /**\n     * 判断节点是否为br\n     * @function\n     * @param {Node}    node   节点\n     */\n    isBr: function (node) {\n        return node.nodeType == 1 && node.tagName == 'BR';\n    },\n    isFillChar: function (node, isInStart) {\n        return node.nodeType == 3 && !node.nodeValue.replace(new RegExp((isInStart ? '^' : '' ) + domUtils.fillChar), '').length\n    },\n\n    isEmptyBlock: function (node, reg) {\n        if (node.nodeType != 1)\n            return 0;\n        reg = reg || new RegExp('[ \\t\\r\\n' + domUtils.fillChar + ']', 'g');\n        if (node[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').length > 0) {\n            return 0;\n        }\n        for (var n in dtd.$isNotEmpty) {\n            if (node.getElementsByTagName(n).length) {\n                return 0;\n            }\n        }\n        return 1;\n    },\n\n    //判断是否是编辑器自定义的参数\n    isCustomeNode: function (node) {\n        return node.nodeType == 1 && node.getAttribute('_ue_custom_node_');\n    },\n    fillNode: function (doc, node) {\n        var tmpNode = browser.ie ? doc.createTextNode(domUtils.fillChar) : doc.createElement('br');\n        node.innerHTML = '';\n        node.appendChild(tmpNode);\n    },\n    isBoundaryNode: function (node, dir) {\n        var tmp;\n        while (!domUtils.isBody(node)) {\n            tmp = node;\n            node = node.parentNode;\n            if (tmp !== node[dir]) {\n                return false;\n            }\n        }\n        return true;\n    },\n    isFillChar: function (node, isInStart) {\n        return node.nodeType == 3 && !node.nodeValue.replace(new RegExp((isInStart ? '^' : '' ) + domUtils.fillChar), '').length\n    },\n    isBody: function(node){\n        return $(node).hasClass('edui-body-container');\n    }\n};\nvar fillCharReg = new RegExp(domUtils.fillChar, 'g');\n///import editor.js\n///import core/utils.js\n///import core/browser.js\n///import core/dom/dom.js\n///import core/dom/dtd.js\n///import core/dom/domUtils.js\n/**\n * @file\n * @name UM.dom.Range\n * @anthor zhanyi\n * @short Range\n * @import editor.js,core/utils.js,core/browser.js,core/dom/domUtils.js,core/dom/dtd.js\n * @desc Range范围实现类，本类是UEditor底层核心类，统一w3cRange和ieRange之间的差异，包括接口和属性\n */\n(function () {\n    var guid = 0,\n        fillChar = domUtils.fillChar,\n        fillData;\n\n    /**\n     * 更新range的collapse状态\n     * @param  {Range}   range    range对象\n     */\n    function updateCollapse(range) {\n        range.collapsed =\n            range.startContainer && range.endContainer &&\n                range.startContainer === range.endContainer &&\n                range.startOffset == range.endOffset;\n    }\n\n    function selectOneNode(rng){\n        return !rng.collapsed && rng.startContainer.nodeType == 1 && rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset == 1\n    }\n    function setEndPoint(toStart, node, offset, range) {\n        //如果node是自闭合标签要处理\n        if (node.nodeType == 1 && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName])) {\n            offset = domUtils.getNodeIndex(node) + (toStart ? 0 : 1);\n            node = node.parentNode;\n        }\n        if (toStart) {\n            range.startContainer = node;\n            range.startOffset = offset;\n            if (!range.endContainer) {\n                range.collapse(true);\n            }\n        } else {\n            range.endContainer = node;\n            range.endOffset = offset;\n            if (!range.startContainer) {\n                range.collapse(false);\n            }\n        }\n        updateCollapse(range);\n        return range;\n    }\n\n\n    /**\n     * @name Range\n     * @grammar new UM.dom.Range(document)  => Range 实例\n     * @desc 创建一个跟document绑定的空的Range实例\n     * - ***startContainer*** 开始边界的容器节点,可以是elementNode或者是textNode\n     * - ***startOffset*** 容器节点中的偏移量，如果是elementNode就是childNodes中的第几个，如果是textNode就是nodeValue的第几个字符\n     * - ***endContainer*** 结束边界的容器节点,可以是elementNode或者是textNode\n     * - ***endOffset*** 容器节点中的偏移量，如果是elementNode就是childNodes中的第几个，如果是textNode就是nodeValue的第几个字符\n     * - ***document*** 跟range关联的document对象\n     * - ***collapsed*** 是否是闭合状态\n     */\n    var Range = dom.Range = function (document,body) {\n        var me = this;\n        me.startContainer =\n            me.startOffset =\n                me.endContainer =\n                    me.endOffset = null;\n        me.document = document;\n        me.collapsed = true;\n        me.body = body;\n    };\n\n    /**\n     * 删除fillData\n     * @param doc\n     * @param excludeNode\n     */\n    function removeFillData(doc, excludeNode) {\n        try {\n            if (fillData && domUtils.inDoc(fillData, doc)) {\n                if (!fillData.nodeValue.replace(fillCharReg, '').length) {\n                    var tmpNode = fillData.parentNode;\n                    domUtils.remove(fillData);\n                    while (tmpNode && domUtils.isEmptyInlineElement(tmpNode) &&\n                        //safari的contains有bug\n                        (browser.safari ? !(domUtils.getPosition(tmpNode,excludeNode) & domUtils.POSITION_CONTAINS) : !tmpNode.contains(excludeNode))\n                        ) {\n                        fillData = tmpNode.parentNode;\n                        domUtils.remove(tmpNode);\n                        tmpNode = fillData;\n                    }\n                } else {\n                    fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, '');\n                }\n            }\n        } catch (e) {\n        }\n    }\n\n    /**\n     *\n     * @param node\n     * @param dir\n     */\n    function mergeSibling(node, dir) {\n        var tmpNode;\n        node = node[dir];\n        while (node && domUtils.isFillChar(node)) {\n            tmpNode = node[dir];\n            domUtils.remove(node);\n            node = tmpNode;\n        }\n    }\n\n    function execContentsAction(range, action) {\n        //调整边界\n        //range.includeBookmark();\n        var start = range.startContainer,\n            end = range.endContainer,\n            startOffset = range.startOffset,\n            endOffset = range.endOffset,\n            doc = range.document,\n            frag = doc.createDocumentFragment(),\n            tmpStart, tmpEnd;\n        if (start.nodeType == 1) {\n            start = start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode('')));\n        }\n        if (end.nodeType == 1) {\n            end = end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode('')));\n        }\n        if (start === end && start.nodeType == 3) {\n            frag.appendChild(doc.createTextNode(start.substringData(startOffset, endOffset - startOffset)));\n            //is not clone\n            if (action) {\n                start.deleteData(startOffset, endOffset - startOffset);\n                range.collapse(true);\n            }\n            return frag;\n        }\n        var current, currentLevel, clone = frag,\n            startParents = domUtils.findParents(start, true), endParents = domUtils.findParents(end, true);\n        for (var i = 0; startParents[i] == endParents[i];) {\n            i++;\n        }\n        for (var j = i, si; si = startParents[j]; j++) {\n            current = si.nextSibling;\n            if (si == start) {\n                if (!tmpStart) {\n                    if (range.startContainer.nodeType == 3) {\n                        clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset)));\n                        //is not clone\n                        if (action) {\n                            start.deleteData(startOffset, start.nodeValue.length - startOffset);\n                        }\n                    } else {\n                        clone.appendChild(!action ? start.cloneNode(true) : start);\n                    }\n                }\n            } else {\n                currentLevel = si.cloneNode(false);\n                clone.appendChild(currentLevel);\n            }\n            while (current) {\n                if (current === end || current === endParents[j]) {\n                    break;\n                }\n                si = current.nextSibling;\n                clone.appendChild(!action ? current.cloneNode(true) : current);\n                current = si;\n            }\n            clone = currentLevel;\n        }\n        clone = frag;\n        if (!startParents[i]) {\n            clone.appendChild(startParents[i - 1].cloneNode(false));\n            clone = clone.firstChild;\n        }\n        for (var j = i, ei; ei = endParents[j]; j++) {\n            current = ei.previousSibling;\n            if (ei == end) {\n                if (!tmpEnd && range.endContainer.nodeType == 3) {\n                    clone.appendChild(doc.createTextNode(end.substringData(0, endOffset)));\n                    //is not clone\n                    if (action) {\n                        end.deleteData(0, endOffset);\n                    }\n                }\n            } else {\n                currentLevel = ei.cloneNode(false);\n                clone.appendChild(currentLevel);\n            }\n            //如果两端同级，右边第一次已经被开始做了\n            if (j != i || !startParents[i]) {\n                while (current) {\n                    if (current === start) {\n                        break;\n                    }\n                    ei = current.previousSibling;\n                    clone.insertBefore(!action ? current.cloneNode(true) : current, clone.firstChild);\n                    current = ei;\n                }\n            }\n            clone = currentLevel;\n        }\n        if (action) {\n            range.setStartBefore(!endParents[i] ? endParents[i - 1] : !startParents[i] ? startParents[i - 1] : endParents[i]).collapse(true);\n        }\n        tmpStart && domUtils.remove(tmpStart);\n        tmpEnd && domUtils.remove(tmpEnd);\n        return frag;\n    }\n    Range.prototype = {\n        /**\n         * @name deleteContents\n         * @grammar range.deleteContents()  => Range\n         * @desc 删除当前选区范围中的所有内容并返回range实例，这时的range已经变成了闭合状态\n         * @example\n         * DOM Element :\n         * <b>x<i>x[x<i>xx]x</b>\n         * //执行方法后\n         * <b>x<i>x<i>|x</b>\n         * 注意range改变了\n         * range.startContainer => b\n         * range.startOffset  => 2\n         * range.endContainer => b\n         * range.endOffset => 2\n         * range.collapsed => true\n         */\n        deleteContents:function () {\n            var txt;\n            if (!this.collapsed) {\n                execContentsAction(this, 1);\n            }\n            if (browser.webkit) {\n                txt = this.startContainer;\n                if (txt.nodeType == 3 && !txt.nodeValue.length) {\n                    this.setStartBefore(txt).collapse(true);\n                    domUtils.remove(txt);\n                }\n            }\n            return this;\n        },\n        inFillChar : function(){\n            var start = this.startContainer;\n            if(this.collapsed && start.nodeType == 3\n                && start.nodeValue.replace(new RegExp('^' + domUtils.fillChar),'').length + 1 == start.nodeValue.length\n                ){\n                return true;\n            }\n            return false;\n        },\n        /**\n         * @name  setStart\n         * @grammar range.setStart(node,offset)  => Range\n         * @desc    设置range的开始位置位于node节点内，偏移量为offset\n         * 如果node是elementNode那offset指的是childNodes中的第几个，如果是textNode那offset指的是nodeValue的第几个字符\n         */\n        setStart:function (node, offset) {\n            return setEndPoint(true, node, offset, this);\n        },\n        /**\n         * 设置range的结束位置位于node节点，偏移量为offset\n         * 如果node是elementNode那offset指的是childNodes中的第几个，如果是textNode那offset指的是nodeValue的第几个字符\n         * @name  setEnd\n         * @grammar range.setEnd(node,offset)  => Range\n         */\n        setEnd:function (node, offset) {\n            return setEndPoint(false, node, offset, this);\n        },\n        /**\n         * 将Range开始位置设置到node节点之后\n         * @name  setStartAfter\n         * @grammar range.setStartAfter(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * 执行setStartAfter(i)后\n         * range.startContainer =>b\n         * range.startOffset =>2\n         */\n        setStartAfter:function (node) {\n            return this.setStart(node.parentNode, domUtils.getNodeIndex(node) + 1);\n        },\n        /**\n         * 将Range开始位置设置到node节点之前\n         * @name  setStartBefore\n         * @grammar range.setStartBefore(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * 执行setStartBefore(i)后\n         * range.startContainer =>b\n         * range.startOffset =>1\n         */\n        setStartBefore:function (node) {\n            return this.setStart(node.parentNode, domUtils.getNodeIndex(node));\n        },\n        /**\n         * 将Range结束位置设置到node节点之后\n         * @name  setEndAfter\n         * @grammar range.setEndAfter(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * setEndAfter(i)后\n         * range.endContainer =>b\n         * range.endtOffset =>2\n         */\n        setEndAfter:function (node) {\n            return this.setEnd(node.parentNode, domUtils.getNodeIndex(node) + 1);\n        },\n        /**\n         * 将Range结束位置设置到node节点之前\n         * @name  setEndBefore\n         * @grammar range.setEndBefore(node)  => Range\n         * @example\n         * <b>xx<i>x|x</i>x</b>\n         * 执行setEndBefore(i)后\n         * range.endContainer =>b\n         * range.endtOffset =>1\n         */\n        setEndBefore:function (node) {\n            return this.setEnd(node.parentNode, domUtils.getNodeIndex(node));\n        },\n        /**\n         * 将Range开始位置设置到node节点内的开始位置\n         * @name  setStartAtFirst\n         * @grammar range.setStartAtFirst(node)  => Range\n         */\n        setStartAtFirst:function (node) {\n            return this.setStart(node, 0);\n        },\n        /**\n         * 将Range开始位置设置到node节点内的结束位置\n         * @name  setStartAtLast\n         * @grammar range.setStartAtLast(node)  => Range\n         */\n        setStartAtLast:function (node) {\n            return this.setStart(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);\n        },\n        /**\n         * 将Range结束位置设置到node节点内的开始位置\n         * @name  setEndAtFirst\n         * @grammar range.setEndAtFirst(node)  => Range\n         */\n        setEndAtFirst:function (node) {\n            return this.setEnd(node, 0);\n        },\n        /**\n         * 将Range结束位置设置到node节点内的结束位置\n         * @name  setEndAtLast\n         * @grammar range.setEndAtLast(node)  => Range\n         */\n        setEndAtLast:function (node) {\n            return this.setEnd(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);\n        },\n\n        /**\n         * 选中完整的指定节点,并返回包含该节点的range\n         * @name  selectNode\n         * @grammar range.selectNode(node)  => Range\n         */\n        selectNode:function (node) {\n            return this.setStartBefore(node).setEndAfter(node);\n        },\n        /**\n         * 选中node内部的所有节点，并返回对应的range\n         * @name selectNodeContents\n         * @grammar range.selectNodeContents(node)  => Range\n         * @example\n         * <b>xx[x<i>xxx</i>]xxx</b>\n         * 执行后\n         * <b>[xxx<i>xxx</i>xxx]</b>\n         * range.startContainer =>b\n         * range.startOffset =>0\n         * range.endContainer =>b\n         * range.endOffset =>3\n         */\n        selectNodeContents:function (node) {\n            return this.setStart(node, 0).setEndAtLast(node);\n        },\n\n        /**\n         * 克隆一个新的range对象\n         * @name  cloneRange\n         * @grammar range.cloneRange() => Range\n         */\n        cloneRange:function () {\n            var me = this;\n            return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset);\n\n        },\n\n        /**\n         * 让选区闭合到尾部，若toStart为真，则闭合到头部\n         * @name  collapse\n         * @grammar range.collapse() => Range\n         * @grammar range.collapse(true) => Range   //闭合选区到头部\n         */\n        collapse:function (toStart) {\n            var me = this;\n            if (toStart) {\n                me.endContainer = me.startContainer;\n                me.endOffset = me.startOffset;\n            } else {\n                me.startContainer = me.endContainer;\n                me.startOffset = me.endOffset;\n            }\n            me.collapsed = true;\n            return me;\n        },\n\n        /**\n         * 调整range的边界，使其\"收缩\"到最小的位置\n         * @name  shrinkBoundary\n         * @grammar range.shrinkBoundary()  => Range  //range开始位置和结束位置都调整，参见<code><a href=\"#adjustmentboundary\">adjustmentBoundary</a></code>\n         * @grammar range.shrinkBoundary(true)  => Range  //仅调整开始位置，忽略结束位置\n         * @example\n         * <b>xx[</b>xxxxx] ==> <b>xx</b>[xxxxx]\n         * <b>x[xx</b><i>]xxx</i> ==> <b>x[xx]</b><i>xxx</i>\n         * [<b><i>xxxx</i>xxxxxxx</b>] ==> <b><i>[xxxx</i>xxxxxxx]</b>\n         */\n        shrinkBoundary:function (ignoreEnd) {\n            var me = this, child,\n                collapsed = me.collapsed;\n            function check(node){\n                return node.nodeType == 1 && !domUtils.isBookmarkNode(node) && !dtd.$empty[node.tagName] && !dtd.$nonChild[node.tagName]\n            }\n            while (me.startContainer.nodeType == 1 //是element\n                && (child = me.startContainer.childNodes[me.startOffset]) //子节点也是element\n                && check(child)) {\n                me.setStart(child, 0);\n            }\n            if (collapsed) {\n                return me.collapse(true);\n            }\n            if (!ignoreEnd) {\n                while (me.endContainer.nodeType == 1//是element\n                    && me.endOffset > 0 //如果是空元素就退出 endOffset=0那么endOffst-1为负值，childNodes[endOffset]报错\n                    && (child = me.endContainer.childNodes[me.endOffset - 1]) //子节点也是element\n                    && check(child)) {\n                    me.setEnd(child, child.childNodes.length);\n                }\n            }\n            return me;\n        },\n\n        /**\n         * 调整边界容器，如果是textNode,就调整到elementNode上\n         * @name trimBoundary\n         * @grammar range.trimBoundary([ignoreEnd])  => Range //true忽略结束边界\n         * @example\n         * DOM Element :\n         * <b>|xxx</b>\n         * startContainer = xxx; startOffset = 0\n         * //执行后本方法后\n         * startContainer = <b>;  startOffset = 0\n         * @example\n         * Dom Element :\n         * <b>xx|x</b>\n         * startContainer = xxx;  startOffset = 2\n         * //执行本方法后，xxx被实实在在地切分成两个TextNode\n         * startContainer = <b>; startOffset = 1\n         */\n        trimBoundary:function (ignoreEnd) {\n            this.txtToElmBoundary();\n            var start = this.startContainer,\n                offset = this.startOffset,\n                collapsed = this.collapsed,\n                end = this.endContainer;\n            if (start.nodeType == 3) {\n                if (offset == 0) {\n                    this.setStartBefore(start);\n                } else {\n                    if (offset >= start.nodeValue.length) {\n                        this.setStartAfter(start);\n                    } else {\n                        var textNode = domUtils.split(start, offset);\n                        //跟新结束边界\n                        if (start === end) {\n                            this.setEnd(textNode, this.endOffset - offset);\n                        } else if (start.parentNode === end) {\n                            this.endOffset += 1;\n                        }\n                        this.setStartBefore(textNode);\n                    }\n                }\n                if (collapsed) {\n                    return this.collapse(true);\n                }\n            }\n            if (!ignoreEnd) {\n                offset = this.endOffset;\n                end = this.endContainer;\n                if (end.nodeType == 3) {\n                    if (offset == 0) {\n                        this.setEndBefore(end);\n                    } else {\n                        offset < end.nodeValue.length && domUtils.split(end, offset);\n                        this.setEndAfter(end);\n                    }\n                }\n            }\n            return this;\n        },\n        /**\n         * 如果选区在文本的边界上，就扩展选区到文本的父节点上\n         * @name  txtToElmBoundary\n         * @example\n         * Dom Element :\n         * <b> |xxx</b>\n         * startContainer = xxx;  startOffset = 0\n         * //本方法执行后\n         * startContainer = <b>; startOffset = 0\n         * @example\n         * Dom Element :\n         * <b> xxx| </b>\n         * startContainer = xxx; startOffset = 3\n         * //本方法执行后\n         * startContainer = <b>; startOffset = 1\n         */\n        txtToElmBoundary:function (ignoreCollapsed) {\n            function adjust(r, c) {\n                var container = r[c + 'Container'],\n                    offset = r[c + 'Offset'];\n                if (container.nodeType == 3) {\n                    if (!offset) {\n                        r['set' + c.replace(/(\\w)/, function (a) {\n                            return a.toUpperCase();\n                        }) + 'Before'](container);\n                    } else if (offset >= container.nodeValue.length) {\n                        r['set' + c.replace(/(\\w)/, function (a) {\n                            return a.toUpperCase();\n                        }) + 'After' ](container);\n                    }\n                }\n            }\n\n            if (ignoreCollapsed || !this.collapsed) {\n                adjust(this, 'start');\n                adjust(this, 'end');\n            }\n            return this;\n        },\n\n        /**\n         * 在当前选区的开始位置前插入一个节点或者fragment，range的开始位置会在插入节点的前边\n         * @name  insertNode\n         * @grammar range.insertNode(node)  => Range //node可以是textNode,elementNode,fragment\n         * @example\n         * Range :\n         * xxx[x<p>xxxx</p>xxxx]x<p>sdfsdf</p>\n         * 待插入Node :\n         * <p>ssss</p>\n         * 执行本方法后的Range :\n         * xxx[<p>ssss</p>x<p>xxxx</p>xxxx]x<p>sdfsdf</p>\n         */\n        insertNode:function (node) {\n            var first = node, length = 1;\n            if (node.nodeType == 11) {\n                first = node.firstChild;\n                length = node.childNodes.length;\n            }\n            this.trimBoundary(true);\n            var start = this.startContainer,\n                offset = this.startOffset;\n            var nextNode = start.childNodes[ offset ];\n            if (nextNode) {\n                start.insertBefore(node, nextNode);\n            } else {\n                start.appendChild(node);\n            }\n            if (first.parentNode === this.endContainer) {\n                this.endOffset = this.endOffset + length;\n            }\n            return this.setStartBefore(first);\n        },\n        /**\n         * 设置光标闭合位置,toEnd设置为true时光标将闭合到选区的结尾\n         * @name  setCursor\n         * @grammar range.setCursor([toEnd])  =>  Range   //toEnd为true时，光标闭合到选区的末尾\n         */\n        setCursor:function (toEnd, noFillData) {\n            return this.collapse(!toEnd).select(noFillData);\n        },\n        /**\n         * 创建当前range的一个书签，记录下当前range的位置，方便当dom树改变时，还能找回原来的选区位置\n         * @name createBookmark\n         * @grammar range.createBookmark([serialize])  => Object  //{start:开始标记,end:结束标记,id:serialize} serialize为真时，开始结束标记是插入节点的id，否则是插入节点的引用\n         */\n        createBookmark:function (serialize, same) {\n            var endNode,\n                startNode = this.document.createElement('span');\n            startNode.style.cssText = 'display:none;line-height:0px;';\n            startNode.appendChild(this.document.createTextNode('\\u200D'));\n            startNode.id = '_baidu_bookmark_start_' + (same ? '' : guid++);\n\n            if (!this.collapsed) {\n                endNode = startNode.cloneNode(true);\n                endNode.id = '_baidu_bookmark_end_' + (same ? '' : guid++);\n            }\n            this.insertNode(startNode);\n            if (endNode) {\n                this.collapse().insertNode(endNode).setEndBefore(endNode);\n            }\n            this.setStartAfter(startNode);\n            return {\n                start:serialize ? startNode.id : startNode,\n                end:endNode ? serialize ? endNode.id : endNode : null,\n                id:serialize\n            }\n        },\n        /**\n         *  移动边界到书签位置，并删除插入的书签节点\n         *  @name  moveToBookmark\n         *  @grammar range.moveToBookmark(bookmark)  => Range //让当前的range选到给定bookmark的位置,bookmark对象是由range.createBookmark创建的\n         */\n        moveToBookmark:function (bookmark) {\n            var start = bookmark.id ? this.document.getElementById(bookmark.start) : bookmark.start,\n                end = bookmark.end && bookmark.id ? this.document.getElementById(bookmark.end) : bookmark.end;\n            this.setStartBefore(start);\n            domUtils.remove(start);\n            if (end) {\n                this.setEndBefore(end);\n                domUtils.remove(end);\n            } else {\n                this.collapse(true);\n            }\n            return this;\n        },\n\n        /**\n         * 调整Range的边界，使其\"缩小\"到最合适的位置\n         * @name adjustmentBoundary\n         * @grammar range.adjustmentBoundary() => Range   //参见<code><a href=\"#shrinkboundary\">shrinkBoundary</a></code>\n         * @example\n         * <b>xx[</b>xxxxx] ==> <b>xx</b>[xxxxx]\n         * <b>x[xx</b><i>]xxx</i> ==> <b>x[xx</b>]<i>xxx</i>\n         */\n        adjustmentBoundary:function () {\n            if (!this.collapsed) {\n                while (!domUtils.isBody(this.startContainer) &&\n                    this.startOffset == this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length &&\n                    this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length\n                    ) {\n\n                    this.setStartAfter(this.startContainer);\n                }\n                while (!domUtils.isBody(this.endContainer) && !this.endOffset &&\n                    this.endContainer[this.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length\n                    ) {\n                    this.setEndBefore(this.endContainer);\n                }\n            }\n            return this;\n        },\n\n        /**\n         * 得到一个自闭合的节点,常用于获取自闭和的节点，例如图片节点\n         * @name  getClosedNode\n         * @grammar range.getClosedNode()  => node|null\n         * @example\n         * <b>xxxx[<img />]xxx</b>\n         */\n        getClosedNode:function () {\n            var node;\n            if (!this.collapsed) {\n                var range = this.cloneRange().adjustmentBoundary().shrinkBoundary();\n                if (selectOneNode(range)) {\n                    var child = range.startContainer.childNodes[range.startOffset];\n                    if (child && child.nodeType == 1 && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])) {\n                        node = child;\n                    }\n                }\n            }\n            return node;\n        },\n        /**\n         * 根据当前range选中内容节点（在页面上表现为反白显示）\n         * @name select\n         * @grammar range.select();  => Range\n         */\n        select:browser.ie ? function (noFillData, textRange) {\n            var nativeRange;\n            if (!this.collapsed)\n                this.shrinkBoundary();\n            var node = this.getClosedNode();\n            if (node && !textRange) {\n                try {\n                    nativeRange = this.document.body.createControlRange();\n                    nativeRange.addElement(node);\n                    nativeRange.select();\n                } catch (e) {}\n                return this;\n            }\n            var bookmark = this.createBookmark(),\n                start = bookmark.start,\n                end;\n            nativeRange = this.document.body.createTextRange();\n            nativeRange.moveToElementText(start);\n            nativeRange.moveStart('character', 1);\n            if (!this.collapsed) {\n                var nativeRangeEnd = this.document.body.createTextRange();\n                end = bookmark.end;\n                nativeRangeEnd.moveToElementText(end);\n                nativeRange.setEndPoint('EndToEnd', nativeRangeEnd);\n            } else {\n                if (!noFillData && this.startContainer.nodeType != 3) {\n                    //使用<span>|x<span>固定住光标\n                    var tmpText = this.document.createTextNode(fillChar),\n                        tmp = this.document.createElement('span');\n                    tmp.appendChild(this.document.createTextNode(fillChar));\n                    start.parentNode.insertBefore(tmp, start);\n                    start.parentNode.insertBefore(tmpText, start);\n                    //当点b,i,u时，不能清除i上边的b\n                    removeFillData(this.document, tmpText);\n                    fillData = tmpText;\n                    mergeSibling(tmp, 'previousSibling');\n                    mergeSibling(start, 'nextSibling');\n                    nativeRange.moveStart('character', -1);\n                    nativeRange.collapse(true);\n                }\n            }\n            this.moveToBookmark(bookmark);\n            tmp && domUtils.remove(tmp);\n            //IE在隐藏状态下不支持range操作，catch一下\n            try {\n                nativeRange.select();\n            } catch (e) {\n            }\n            return this;\n        } : function (notInsertFillData) {\n            function checkOffset(rng){\n\n                function check(node,offset,dir){\n                    if(node.nodeType == 3 && node.nodeValue.length < offset){\n                        rng[dir + 'Offset'] = node.nodeValue.length\n                    }\n                }\n                check(rng.startContainer,rng.startOffset,'start');\n                check(rng.endContainer,rng.endOffset,'end');\n            }\n            var win = domUtils.getWindow(this.document),\n                sel = win.getSelection(),\n                txtNode;\n            //FF下关闭自动长高时滚动条在关闭dialog时会跳\n            //ff下如果不body.focus将不能定位闭合光标到编辑器内\n            browser.gecko ? this.body.focus() : win.focus();\n            if (sel) {\n                sel.removeAllRanges();\n                // trace:870 chrome/safari后边是br对于闭合得range不能定位 所以去掉了判断\n                // this.startContainer.nodeType != 3 &&! ((child = this.startContainer.childNodes[this.startOffset]) && child.nodeType == 1 && child.tagName == 'BR'\n                if (this.collapsed && !notInsertFillData) {\n//                    //opear如果没有节点接着，原生的不能够定位,不能在body的第一级插入空白节点\n//                    if (notInsertFillData && browser.opera && !domUtils.isBody(this.startContainer) && this.startContainer.nodeType == 1) {\n//                        var tmp = this.document.createTextNode('');\n//                        this.insertNode(tmp).setStart(tmp, 0).collapse(true);\n//                    }\n//\n                    //处理光标落在文本节点的情况\n                    //处理以下的情况\n                    //<b>|xxxx</b>\n                    //<b>xxxx</b>|xxxx\n                    //xxxx<b>|</b>\n                    var start = this.startContainer,child = start;\n                    if(start.nodeType == 1){\n                        child = start.childNodes[this.startOffset];\n\n                    }\n                    if( !(start.nodeType == 3 && this.startOffset)  &&\n                        (child ?\n                            (!child.previousSibling || child.previousSibling.nodeType != 3)\n                            :\n                            (!start.lastChild || start.lastChild.nodeType != 3)\n                            )\n                        ){\n                        txtNode = this.document.createTextNode(fillChar);\n                        //跟着前边走\n                        this.insertNode(txtNode);\n                        removeFillData(this.document, txtNode);\n                        mergeSibling(txtNode, 'previousSibling');\n                        mergeSibling(txtNode, 'nextSibling');\n                        fillData = txtNode;\n                        this.setStart(txtNode, browser.webkit ? 1 : 0).collapse(true);\n                    }\n                }\n                var nativeRange = this.document.createRange();\n                if(this.collapsed && browser.opera && this.startContainer.nodeType == 1){\n                    var child = this.startContainer.childNodes[this.startOffset];\n                    if(!child){\n                        //往前靠拢\n                        child = this.startContainer.lastChild;\n                        if( child && domUtils.isBr(child)){\n                            this.setStartBefore(child).collapse(true);\n                        }\n                    }else{\n                        //向后靠拢\n                        while(child && domUtils.isBlockElm(child)){\n                            if(child.nodeType == 1 && child.childNodes[0]){\n                                child = child.childNodes[0]\n                            }else{\n                                break;\n                            }\n                        }\n                        child && this.setStartBefore(child).collapse(true)\n                    }\n\n                }\n                //是createAddress最后一位算的不准，现在这里进行微调\n                checkOffset(this);\n                nativeRange.setStart(this.startContainer, this.startOffset);\n                nativeRange.setEnd(this.endContainer, this.endOffset);\n                sel.addRange(nativeRange);\n            }\n            return this;\n        },\n      \n\n        createAddress : function(ignoreEnd,ignoreTxt){\n            var addr = {},me = this;\n\n            function getAddress(isStart){\n                var node = isStart ? me.startContainer : me.endContainer;\n                var parents = domUtils.findParents(node,true,function(node){return !domUtils.isBody(node)}),\n                    addrs = [];\n                for(var i = 0,ci;ci = parents[i++];){\n                    addrs.push(domUtils.getNodeIndex(ci,ignoreTxt));\n                }\n                var firstIndex = 0;\n\n                if(ignoreTxt){\n                    if(node.nodeType == 3){\n                        var tmpNode = node.previousSibling;\n                        while(tmpNode && tmpNode.nodeType == 3){\n                            firstIndex += tmpNode.nodeValue.replace(fillCharReg,'').length;\n                            tmpNode = tmpNode.previousSibling;\n                        }\n                        firstIndex +=  (isStart ? me.startOffset : me.endOffset)// - (fillCharReg.test(node.nodeValue) ? 1 : 0 )\n                    }else{\n                        node =  node.childNodes[ isStart ? me.startOffset : me.endOffset];\n                        if(node){\n                            firstIndex = domUtils.getNodeIndex(node,ignoreTxt);\n                        }else{\n                            node = isStart ? me.startContainer : me.endContainer;\n                            var first = node.firstChild;\n                            while(first){\n                                if(domUtils.isFillChar(first)){\n                                    first = first.nextSibling;\n                                    continue;\n                                }\n                                firstIndex++;\n                                if(first.nodeType == 3){\n                                    while( first && first.nodeType == 3){\n                                        first = first.nextSibling;\n                                    }\n                                }else{\n                                    first = first.nextSibling;\n                                }\n                            }\n                        }\n                    }\n\n                }else{\n                    firstIndex = isStart ? domUtils.isFillChar(node) ? 0 : me.startOffset  : me.endOffset\n                }\n                if(firstIndex < 0){\n                    firstIndex = 0;\n                }\n                addrs.push(firstIndex);\n                return addrs;\n            }\n            addr.startAddress = getAddress(true);\n            if(!ignoreEnd){\n                addr.endAddress = me.collapsed ? [].concat(addr.startAddress) : getAddress();\n            }\n            return addr;\n        },\n        moveToAddress : function(addr,ignoreEnd){\n            var me = this;\n            function getNode(address,isStart){\n                var tmpNode = me.body,\n                    parentNode,offset;\n                for(var i= 0,ci,l=address.length;i<l;i++){\n                    ci = address[i];\n                    parentNode = tmpNode;\n                    tmpNode = tmpNode.childNodes[ci];\n                    if(!tmpNode){\n                        offset = ci;\n                        break;\n                    }\n                }\n                if(isStart){\n                    if(tmpNode){\n                        me.setStartBefore(tmpNode)\n                    }else{\n                        me.setStart(parentNode,offset)\n                    }\n                }else{\n                    if(tmpNode){\n                        me.setEndBefore(tmpNode)\n                    }else{\n                        me.setEnd(parentNode,offset)\n                    }\n                }\n            }\n            getNode(addr.startAddress,true);\n            !ignoreEnd && addr.endAddress &&  getNode(addr.endAddress);\n            return me;\n        },\n        equals : function(rng){\n            for(var p in this){\n                if(this.hasOwnProperty(p)){\n                    if(this[p] !== rng[p])\n                        return false\n                }\n            }\n            return true;\n\n        },\n        scrollIntoView : function(){\n            var $span = $('<span style=\"padding:0;margin:0;display:block;border:0\">&nbsp;</span>');\n            this.cloneRange().insertNode($span.get(0));\n            var winScrollTop = $(window).scrollTop(),\n                winHeight = $(window).height(),\n                spanTop = $span.offset().top;\n            if(spanTop < winScrollTop-winHeight || spanTop > winScrollTop + winHeight ){\n                if(spanTop > winScrollTop + winHeight){\n                    window.scrollTo(0,spanTop - winHeight + $span.height())\n                }else{\n                    window.scrollTo(0,winScrollTop - spanTop)\n                }\n\n            }\n            $span.remove();\n        },\n        getOffset : function(){\n            var bk = this.createBookmark();\n            var offset = $(bk.start).css('display','inline-block').offset();\n            this.moveToBookmark(bk);\n            return offset\n        }\n    };\n})();\n///import editor.js\n///import core/browser.js\n///import core/dom/dom.js\n///import core/dom/dtd.js\n///import core/dom/domUtils.js\n///import core/dom/Range.js\n/**\n * @class UM.dom.Selection    Selection类\n */\n(function () {\n\n    function getBoundaryInformation( range, start ) {\n        var getIndex = domUtils.getNodeIndex;\n        range = range.duplicate();\n        range.collapse( start );\n        var parent = range.parentElement();\n        //如果节点里没有子节点，直接退出\n        if ( !parent.hasChildNodes() ) {\n            return  {container:parent, offset:0};\n        }\n        var siblings = parent.children,\n            child,\n            testRange = range.duplicate(),\n            startIndex = 0, endIndex = siblings.length - 1, index = -1,\n            distance;\n        while ( startIndex <= endIndex ) {\n            index = Math.floor( (startIndex + endIndex) / 2 );\n            child = siblings[index];\n            testRange.moveToElementText( child );\n            var position = testRange.compareEndPoints( 'StartToStart', range );\n            if ( position > 0 ) {\n                endIndex = index - 1;\n            } else if ( position < 0 ) {\n                startIndex = index + 1;\n            } else {\n                //trace:1043\n                return  {container:parent, offset:getIndex( child )};\n            }\n        }\n        if ( index == -1 ) {\n            testRange.moveToElementText( parent );\n            testRange.setEndPoint( 'StartToStart', range );\n            distance = testRange.text.replace( /(\\r\\n|\\r)/g, '\\n' ).length;\n            siblings = parent.childNodes;\n            if ( !distance ) {\n                child = siblings[siblings.length - 1];\n                return  {container:child, offset:child.nodeValue.length};\n            }\n\n            var i = siblings.length;\n            while ( distance > 0 ){\n                distance -= siblings[ --i ].nodeValue.length;\n            }\n            return {container:siblings[i], offset:-distance};\n        }\n        testRange.collapse( position > 0 );\n        testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );\n        distance = testRange.text.replace( /(\\r\\n|\\r)/g, '\\n' ).length;\n        if ( !distance ) {\n            return  dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName] ?\n            {container:parent, offset:getIndex( child ) + (position > 0 ? 0 : 1)} :\n            {container:child, offset:position > 0 ? 0 : child.childNodes.length}\n        }\n        while ( distance > 0 ) {\n            try {\n                var pre = child;\n                child = child[position > 0 ? 'previousSibling' : 'nextSibling'];\n                distance -= child.nodeValue.length;\n            } catch ( e ) {\n                return {container:parent, offset:getIndex( pre )};\n            }\n        }\n        return  {container:child, offset:position > 0 ? -distance : child.nodeValue.length + distance}\n    }\n\n    /**\n     * 将ieRange转换为Range对象\n     * @param {Range}   ieRange    ieRange对象\n     * @param {Range}   range      Range对象\n     * @return  {Range}  range       返回转换后的Range对象\n     */\n    function transformIERangeToRange( ieRange, range ) {\n        if ( ieRange.item ) {\n            range.selectNode( ieRange.item( 0 ) );\n        } else {\n            var bi = getBoundaryInformation( ieRange, true );\n            range.setStart( bi.container, bi.offset );\n            if ( ieRange.compareEndPoints( 'StartToEnd', ieRange ) != 0 ) {\n                bi = getBoundaryInformation( ieRange, false );\n                range.setEnd( bi.container, bi.offset );\n            }\n        }\n        return range;\n    }\n\n    /**\n     * 获得ieRange\n     * @param {Selection} sel    Selection对象\n     * @return {ieRange}    得到ieRange\n     */\n    function _getIERange( sel,txtRange ) {\n        var ieRange;\n        //ie下有可能报错\n        try {\n            ieRange = sel.getNative(txtRange).createRange();\n        } catch ( e ) {\n            return null;\n        }\n        var el = ieRange.item ? ieRange.item( 0 ) : ieRange.parentElement();\n        if ( ( el.ownerDocument || el ) === sel.document ) {\n            return ieRange;\n        }\n        return null;\n    }\n\n    var Selection = dom.Selection = function ( doc,body ) {\n        var me = this;\n        me.document = doc;\n        me.body = body;\n        if ( browser.ie9below ) {\n            $( body).on('beforedeactivate', function () {\n                me._bakIERange = me.getIERange();\n            } ).on('activate', function () {\n                try {\n                    var ieNativRng =  _getIERange( me );\n                    if ( (!ieNativRng || !me.rangeInBody(ieNativRng)) && me._bakIERange ) {\n                        me._bakIERange.select();\n                    }\n                } catch ( ex ) {\n                }\n                me._bakIERange = null;\n            } );\n        }\n    };\n\n    Selection.prototype = {\n        hasNativeRange : function(){\n            var rng;\n            if(!browser.ie || browser.ie9above){\n                var nativeSel = this.getNative();\n                if(!nativeSel.rangeCount){\n                    return false;\n                }\n                rng = nativeSel.getRangeAt(0);\n            }else{\n                rng = _getIERange(this);\n            }\n            return this.rangeInBody(rng);\n        },\n        /**\n         * 获取原生seleciton对象\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getNative\n         * @return {Selection}    获得selection对象\n         */\n        getNative:function (txtRange) {\n            var doc = this.document;\n            try {\n                return !doc ? null : browser.ie9below || txtRange? doc.selection : domUtils.getWindow( doc ).getSelection();\n            } catch ( e ) {\n                return null;\n            }\n        },\n        /**\n         * 获得ieRange\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getIERange\n         * @return {ieRange}    返回ie原生的Range\n         */\n        getIERange:function (txtRange) {\n            var ieRange = _getIERange( this,txtRange );\n            if ( !ieRange  || !this.rangeInBody(ieRange,txtRange)) {\n                if ( this._bakIERange ) {\n                    return this._bakIERange;\n                }\n            }\n            return ieRange;\n        },\n        rangeInBody : function(rng,txtRange){\n            var node = browser.ie9below || txtRange ? rng.item ? rng.item() : rng.parentElement() : rng.startContainer;\n\n            return node === this.body || domUtils.inDoc(node,this.body);\n        },\n        /**\n         * 缓存当前选区的range和选区的开始节点\n         * @public\n         * @function\n         * @name    UM.dom.Selection.cache\n         */\n        cache:function () {\n            this.clear();\n            this._cachedRange = this.getRange();\n            this._cachedStartElement = this.getStart();\n            this._cachedStartElementPath = this.getStartElementPath();\n        },\n\n        getStartElementPath:function () {\n            if ( this._cachedStartElementPath ) {\n                return this._cachedStartElementPath;\n            }\n            var start = this.getStart();\n            if ( start ) {\n                return domUtils.findParents( start, true, null, true )\n            }\n            return [];\n        },\n        /**\n         * 清空缓存\n         * @public\n         * @function\n         * @name    UM.dom.Selection.clear\n         */\n        clear:function () {\n            this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null;\n        },\n        /**\n         * 编辑器是否得到了选区\n         */\n        isFocus:function () {\n            return this.hasNativeRange()\n\n        },\n        /**\n         * 获取选区对应的Range\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getRange\n         * @returns {UM.dom.Range}    得到Range对象\n         */\n        getRange:function () {\n            var me = this;\n            function optimze( range ) {\n                var child = me.body.firstChild,\n                    collapsed = range.collapsed;\n                while ( child && child.firstChild ) {\n                    range.setStart( child, 0 );\n                    child = child.firstChild;\n                }\n                if ( !range.startContainer ) {\n                    range.setStart( me.body, 0 )\n                }\n                if ( collapsed ) {\n                    range.collapse( true );\n                }\n            }\n\n            if ( me._cachedRange != null ) {\n                return this._cachedRange;\n            }\n            var range = new dom.Range( me.document,me.body );\n            if ( browser.ie9below ) {\n                var nativeRange = me.getIERange();\n                if ( nativeRange  && this.rangeInBody(nativeRange)) {\n\n                    try{\n                        transformIERangeToRange( nativeRange, range );\n                    }catch(e){\n                        optimze( range );\n                    }\n\n                } else {\n                    optimze( range );\n                }\n            } else {\n                var sel = me.getNative();\n                if ( sel && sel.rangeCount && me.rangeInBody(sel.getRangeAt( 0 ))) {\n                    var firstRange = sel.getRangeAt( 0 );\n                    var lastRange = sel.getRangeAt( sel.rangeCount - 1 );\n                    range.setStart( firstRange.startContainer, firstRange.startOffset ).setEnd( lastRange.endContainer, lastRange.endOffset );\n                    if ( range.collapsed && domUtils.isBody( range.startContainer ) && !range.startOffset ) {\n                        optimze( range );\n                    }\n                } else {\n                    //trace:1734 有可能已经不在dom树上了，标识的节点\n                    if ( this._bakRange && (this._bakRange.startContainer === this.body || domUtils.inDoc( this._bakRange.startContainer, this.body )) ){\n                        return this._bakRange;\n                    }\n                    optimze( range );\n                }\n            }\n\n            return this._bakRange = range;\n        },\n\n        /**\n         * 获取开始元素，用于状态反射\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getStart\n         * @return {Element}     获得开始元素\n         */\n        getStart:function () {\n            if ( this._cachedStartElement ) {\n                return this._cachedStartElement;\n            }\n            var range = browser.ie9below ? this.getIERange() : this.getRange(),\n                tmpRange,\n                start, tmp, parent;\n            if ( browser.ie9below ) {\n                if ( !range ) {\n                    //todo 给第一个值可能会有问题\n                    return this.document.body.firstChild;\n                }\n                //control元素\n                if ( range.item ){\n                    return range.item( 0 );\n                }\n                tmpRange = range.duplicate();\n                //修正ie下<b>x</b>[xx] 闭合后 <b>x|</b>xx\n                tmpRange.text.length > 0 && tmpRange.moveStart( 'character', 1 );\n                tmpRange.collapse( 1 );\n                start = tmpRange.parentElement();\n                parent = tmp = range.parentElement();\n                while ( tmp = tmp.parentNode ) {\n                    if ( tmp == start ) {\n                        start = parent;\n                        break;\n                    }\n                }\n            } else {\n                start = range.startContainer;\n                if ( start.nodeType == 1 && start.hasChildNodes() ){\n                    start = start.childNodes[Math.min( start.childNodes.length - 1, range.startOffset )];\n                }\n                if ( start.nodeType == 3 ){\n                    return start.parentNode;\n                }\n            }\n            return start;\n        },\n        /**\n         * 得到选区中的文本\n         * @public\n         * @function\n         * @name    UM.dom.Selection.getText\n         * @return  {String}    选区中包含的文本\n         */\n        getText:function () {\n            var nativeSel, nativeRange;\n            if ( this.isFocus() && (nativeSel = this.getNative()) ) {\n                nativeRange = browser.ie9below ? nativeSel.createRange() : nativeSel.getRangeAt( 0 );\n                return browser.ie9below ? nativeRange.text : nativeRange.toString();\n            }\n            return '';\n        }\n    };\n})();\n/**\n * @file\n * @name UM.Editor\n * @short Editor\n * @import editor.js,core/utils.js,core/EventBase.js,core/browser.js,core/dom/dtd.js,core/dom/domUtils.js,core/dom/Range.js,core/dom/Selection.js,plugins/serialize.js\n * @desc 编辑器主类，包含编辑器提供的大部分公用接口\n */\n(function () {\n    var uid = 0, _selectionChangeTimer;\n\n    /**\n     * @private\n     * @ignore\n     * @param form  编辑器所在的form元素\n     * @param editor  编辑器实例对象\n     */\n    function setValue(form, editor) {\n        var textarea;\n        if (editor.textarea) {\n            if (utils.isString(editor.textarea)) {\n                for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, 'textarea'); ti = tis[i++];) {\n                    if (ti.id == 'umeditor_textarea_' + editor.options.textarea) {\n                        textarea = ti;\n                        break;\n                    }\n                }\n            } else {\n                textarea = editor.textarea;\n            }\n        }\n        if (!textarea) {\n            form.appendChild(textarea = domUtils.createElement(document, 'textarea', {\n                'name': editor.options.textarea,\n                'id': 'umeditor_textarea_' + editor.options.textarea,\n                'style': \"display:none\"\n            }));\n            //不要产生多个textarea\n            editor.textarea = textarea;\n        }\n        textarea.value = editor.hasContents() ?\n            (editor.options.allHtmlEnabled ? editor.getAllHtml() : editor.getContent(null, null, true)) :\n            ''\n    }\n    function loadPlugins(me){\n        //初始化插件\n        for (var pi in UM.plugins) {\n            if(me.options.excludePlugins.indexOf(pi) == -1){\n                UM.plugins[pi].call(me);\n                me.plugins[pi] = 1;\n            }\n        }\n        me.langIsReady = true;\n\n        me.fireEvent(\"langReady\");\n    }\n    function checkCurLang(I18N){\n        for(var lang in I18N){\n            return lang\n        }\n    }\n    /**\n     * UEditor编辑器类\n     * @name Editor\n     * @desc 创建一个跟编辑器实例\n     * - ***container*** 编辑器容器对象\n     * - ***iframe*** 编辑区域所在的iframe对象\n     * - ***window*** 编辑区域所在的window\n     * - ***document*** 编辑区域所在的document对象\n     * - ***body*** 编辑区域所在的body对象\n     * - ***selection*** 编辑区域的选区对象\n     */\n    var Editor = UM.Editor = function (options) {\n        var me = this;\n        me.uid = uid++;\n        EventBase.call(me);\n        me.commands = {};\n        me.options = utils.extend(utils.clone(options || {}), UMEDITOR_CONFIG, true);\n        me.shortcutkeys = {};\n        me.inputRules = [];\n        me.outputRules = [];\n        //设置默认的常用属性\n        me.setOpt({\n            isShow: true,\n            initialContent: '',\n            initialStyle:'',\n            autoClearinitialContent: false,\n            textarea: 'editorValue',\n            focus: false,\n            focusInEnd: true,\n            autoClearEmptyNode: true,\n            fullscreen: false,\n            readonly: false,\n            zIndex: 999,\n            enterTag: 'p',\n            lang: 'zh-cn',\n            langPath: me.options.UMEDITOR_HOME_URL + 'lang/',\n            theme: 'default',\n            themePath: me.options.UMEDITOR_HOME_URL + 'themes/',\n            allHtmlEnabled: false,\n            autoSyncData : true,\n            autoHeightEnabled : true,\n            excludePlugins:''\n        });\n        me.plugins = {};\n        if(!utils.isEmptyObject(UM.I18N)){\n            //修改默认的语言类型\n            me.options.lang = checkCurLang(UM.I18N);\n            loadPlugins(me)\n        }else{\n            utils.loadFile(document, {\n                src: me.options.langPath + me.options.lang + \"/\" + me.options.lang + \".js\",\n                tag: \"script\",\n                type: \"text/javascript\",\n                defer: \"defer\"\n            }, function () {\n                loadPlugins(me)\n            });\n        }\n\n    };\n    Editor.prototype = {\n        /**\n         * 当编辑器ready后执行传入的fn,如果编辑器已经完成ready，就马上执行fn，fn的中的this是编辑器实例。\n         * 大部分的实例接口都需要放在该方法内部执行，否则在IE下可能会报错。\n         * @name ready\n         * @grammar editor.ready(fn) fn是当编辑器渲染好后执行的function\n         * @example\n         * var editor = new UM.ui.Editor();\n         * editor.render(\"myEditor\");\n         * editor.ready(function(){\n         *     editor.setContent(\"欢迎使用UEditor！\");\n         * })\n         */\n        ready: function (fn) {\n            var me = this;\n            if (fn) {\n                me.isReady ? fn.apply(me) : me.addListener('ready', fn);\n            }\n        },\n        /**\n         * 为编辑器设置默认参数值。若用户配置为空，则以默认配置为准\n         * @grammar editor.setOpt(key,value);      //传入一个键、值对\n         * @grammar editor.setOpt({ key:value});   //传入一个json对象\n         */\n        setOpt: function (key, val) {\n            var obj = {};\n            if (utils.isString(key)) {\n                obj[key] = val\n            } else {\n                obj = key;\n            }\n            utils.extend(this.options, obj, true);\n        },\n        getOpt:function(key){\n            return this.options[key] || ''\n        },\n        /**\n         * 销毁编辑器实例对象\n         * @name destroy\n         * @grammar editor.destroy();\n         */\n        destroy: function () {\n\n            var me = this;\n            me.fireEvent('destroy');\n            var container = me.container.parentNode;\n            if(container === document.body){\n                container = me.container;\n            }\n            var textarea = me.textarea;\n            if (!textarea) {\n                textarea = document.createElement('textarea');\n                container.parentNode.insertBefore(textarea, container);\n            } else {\n                textarea.style.display = ''\n            }\n\n            textarea.style.width = me.body.offsetWidth + 'px';\n            textarea.style.height = me.body.offsetHeight + 'px';\n            textarea.value = me.getContent();\n            textarea.id = me.key;\n            if(container.contains(textarea)){\n                $(textarea).insertBefore(container);\n            }\n            container.innerHTML = '';\n\n            domUtils.remove(container);\n            UM.clearCache(me.id);\n            //trace:2004\n            for (var p in me) {\n                if (me.hasOwnProperty(p)) {\n                    delete this[p];\n                }\n            }\n\n        },\n        initialCont : function(holder){\n\n            if(holder){\n                holder.getAttribute('name') && ( this.options.textarea = holder.getAttribute('name'));\n                if (holder && /script|textarea/ig.test(holder.tagName)) {\n                    var newDiv = document.createElement('div');\n                    holder.parentNode.insertBefore(newDiv, holder);\n                    this.options.initialContent = UM.htmlparser(holder.value || holder.innerHTML|| this.options.initialContent).toHtml();\n                    holder.className && (newDiv.className = holder.className);\n                    holder.style.cssText && (newDiv.style.cssText = holder.style.cssText);\n\n                    if (/textarea/i.test(holder.tagName)) {\n                        this.textarea = holder;\n                        this.textarea.style.display = 'none';\n\n                    } else {\n                        holder.parentNode.removeChild(holder);\n                        holder.id && (newDiv.id = holder.id);\n                    }\n                    holder = newDiv;\n                    holder.innerHTML = '';\n                }\n                return holder;\n            }else{\n                return null;\n            }\n\n        },\n        /**\n         * 渲染编辑器的DOM到指定容器，必须且只能调用一次\n         * @name render\n         * @grammar editor.render(containerId);    //可以指定一个容器ID\n         * @grammar editor.render(containerDom);   //也可以直接指定容器对象\n         */\n        render: function (container) {\n            var me = this,\n                options = me.options,\n                getStyleValue=function(attr){\n                    return parseInt($(container).css(attr));\n                };\n\n            if (utils.isString(container)) {\n                container = document.getElementById(container);\n            }\n            if (container) {\n                this.id = container.getAttribute('id');\n                UM.setEditor(this);\n                utils.cssRule('edui-style-body',me.options.initialStyle,document);\n\n                container = this.initialCont(container);\n\n                container.className += ' edui-body-container';\n\n                if(options.initialFrameWidth){\n                    options.minFrameWidth = options.initialFrameWidth\n                }else{\n                    //都没给值，先写死了\n                    options.minFrameWidth = options.initialFrameWidth = $(container).width() || UM.defaultWidth;\n                }\n                if(options.initialFrameHeight){\n                    options.minFrameHeight = options.initialFrameHeight\n                }else{\n\n                    options.initialFrameHeight = options.minFrameHeight = $(container).height() || UM.defaultHeight;\n                }\n\n                container.style.width = /%$/.test(options.initialFrameWidth) ?  '100%' : options.initialFrameWidth -\n                    getStyleValue(\"padding-left\")-\n                    getStyleValue(\"padding-right\")  +'px';\n\n                var height = /%$/.test(options.initialFrameHeight) ?  '100%' : (options.initialFrameHeight - getStyleValue(\"padding-top\")- getStyleValue(\"padding-bottom\") );\n                if(this.options.autoHeightEnabled){\n                    container.style.minHeight = height +'px';\n                    container.style.height = '';\n                    if(browser.ie && browser.version <= 6){\n                        container.style.height = height ;\n                        container.style.setExpression('height', 'this.scrollHeight <= ' + height + ' ? \"' + height + 'px\" : \"auto\"');\n                    }\n                }else{\n                    $(container).height(height)\n                }\n                container.style.zIndex = options.zIndex;\n                this._setup(container);\n\n            }\n        },\n        /**\n         * 编辑器初始化\n         * @private\n         * @ignore\n         * @param {Element} doc 编辑器Iframe中的文档对象\n         */\n        _setup: function (cont) {\n            var me = this,\n                options = me.options;\n\n            cont.contentEditable = true;\n            document.body.spellcheck = false;\n\n            me.document = document;\n            me.window = document.defaultView || document.parentWindow;\n            me.body = cont;\n            me.$body = $(cont);\n            me.selection = new dom.Selection(document,me.body);\n            me._isEnabled = false;\n            //gecko初始化就能得到range,无法判断isFocus了\n            var geckoSel;\n            if (browser.gecko && (geckoSel = this.selection.getNative())) {\n                geckoSel.removeAllRanges();\n            }\n            this._initEvents();\n            //为form提交提供一个隐藏的textarea\n            for (var form = cont.parentNode; form && !domUtils.isBody(form); form = form.parentNode) {\n                if (form.tagName == 'FORM') {\n                    me.form = form;\n                    if(me.options.autoSyncData){\n                        $(cont).on('blur',function(){\n                            setValue(form,me);\n                        })\n                    }else{\n                        $(form).on('submit', function () {\n                            setValue(this, me);\n                        })\n                    }\n                    break;\n                }\n            }\n            if (options.initialContent) {\n                if (options.autoClearinitialContent) {\n                    var oldExecCommand = me.execCommand;\n                    me.execCommand = function () {\n                        me.fireEvent('firstBeforeExecCommand');\n                        return oldExecCommand.apply(me, arguments);\n                    };\n                    this._setDefaultContent(options.initialContent);\n                } else\n                    this.setContent(options.initialContent, false, true);\n            }\n\n            //编辑器不能为空内容\n\n            if (domUtils.isEmptyNode(me.body)) {\n                me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';\n            }\n            //如果要求focus, 就把光标定位到内容开始\n            if (options.focus) {\n                setTimeout(function () {\n                    me.focus(me.options.focusInEnd);\n                    //如果自动清除开着，就不需要做selectionchange;\n                    !me.options.autoClearinitialContent && me._selectionChange();\n                }, 0);\n            }\n            if (!me.container) {\n                me.container = cont.parentNode;\n            }\n\n            me._bindshortcutKeys();\n            me.isReady = 1;\n            me.fireEvent('ready');\n            options.onready && options.onready.call(me);\n            if(!browser.ie || browser.ie9above){\n\n                $(me.body).on( 'blur focus', function (e) {\n                    var nSel = me.selection.getNative();\n                    //chrome下会出现alt+tab切换时，导致选区位置不对\n                    if (e.type == 'blur') {\n                        if(nSel.rangeCount > 0 ){\n                            me._bakRange = nSel.getRangeAt(0);\n                        }\n                    } else {\n                        try {\n                            me._bakRange && nSel.addRange(me._bakRange)\n                        } catch (e) {\n                        }\n                        me._bakRange = null;\n                    }\n                });\n            }\n\n            !options.isShow && me.setHide();\n            options.readonly && me.setDisabled();\n        },\n        /**\n         * 同步编辑器的数据，为提交数据做准备，主要用于你是手动提交的情况\n         * @name sync\n         * @grammar editor.sync(); //从编辑器的容器向上查找，如果找到就同步数据\n         * @grammar editor.sync(formID); //formID制定一个要同步数据的form的id,编辑器的数据会同步到你指定form下\n         * @desc\n         * 后台取得数据得键值使用你容器上得''name''属性，如果没有就使用参数传入的''textarea''\n         * @example\n         * editor.sync();\n         * form.sumbit(); //form变量已经指向了form元素\n         *\n         */\n        sync: function (formId) {\n            var me = this,\n                form = formId ? document.getElementById(formId) :\n                    domUtils.findParent(me.body.parentNode, function (node) {\n                        return node.tagName == 'FORM'\n                    }, true);\n            form && setValue(form, me);\n        },\n        /**\n         * 设置编辑器高度\n         * @name setHeight\n         * @grammar editor.setHeight(number);  //纯数值，不带单位\n         */\n        setHeight: function (height,notSetHeight) {\n            !notSetHeight && (this.options.initialFrameHeight = height);\n            if(this.options.autoHeightEnabled){\n                $(this.body).css({\n                    'min-height':height + 'px'\n                });\n                if(browser.ie && browser.version <= 6 && this.container){\n                    this.container.style.height = height ;\n                    this.container.style.setExpression('height', 'this.scrollHeight <= ' + height + ' ? \"' + height + 'px\" : \"auto\"');\n                }\n            }else{\n                $(this.body).height(height)\n            }\n            this.fireEvent('resize');\n        },\n        /**\n         * 设置编辑器宽度\n         * @name setWidth\n         * @grammar editor.setWidth(number);  //纯数值，不带单位\n         */\n        setWidth:function(width){\n            this.$container && this.$container.width(width);\n            $(this.body).width(width - $(this.body).css('padding-left').replace('px','') * 1 - $(this.body).css('padding-right').replace('px','') * 1);\n            this.fireEvent('resize');\n        },\n        addshortcutkey: function (cmd, keys) {\n            var obj = {};\n            if (keys) {\n                obj[cmd] = keys\n            } else {\n                obj = cmd;\n            }\n            utils.extend(this.shortcutkeys, obj)\n        },\n        _bindshortcutKeys: function () {\n            var me = this, shortcutkeys = this.shortcutkeys;\n            me.addListener('keydown', function (type, e) {\n                var keyCode = e.keyCode || e.which;\n                for (var i in shortcutkeys) {\n                    var tmp = shortcutkeys[i].split(',');\n                    for (var t = 0, ti; ti = tmp[t++];) {\n                        ti = ti.split(':');\n                        var key = ti[0], param = ti[1];\n                        if (/^(ctrl)(\\+shift)?\\+(\\d+)$/.test(key.toLowerCase()) || /^(\\d+)$/.test(key)) {\n                            if (( (RegExp.$1 == 'ctrl' ? (e.ctrlKey || e.metaKey) : 0)\n                                && (RegExp.$2 != \"\" ? e[RegExp.$2.slice(1) + \"Key\"] : 1)\n                                && keyCode == RegExp.$3\n                                ) ||\n                                keyCode == RegExp.$1\n                                ) {\n                                if (me.queryCommandState(i,param) != -1)\n                                    me.execCommand(i, param);\n                                domUtils.preventDefault(e);\n                            }\n                        }\n                    }\n\n                }\n            });\n        },\n        /**\n         * 获取编辑器内容\n         * @name getContent\n         * @grammar editor.getContent()  => String //若编辑器中只包含字符\"&lt;p&gt;&lt;br /&gt;&lt;/p/&gt;\"会返回空。\n         * @grammar editor.getContent(fn)  => String\n         * @example\n         * getContent默认是会现调用hasContents来判断编辑器是否为空，如果是，就直接返回空字符串\n         * 你也可以传入一个fn来接替hasContents的工作，定制判断的规则\n         * editor.getContent(function(){\n         *     return false //编辑器没有内容 ，getContent直接返回空\n         * })\n         */\n        getContent: function (cmd, fn,notSetCursor,ignoreBlank,formatter) {\n            var me = this;\n            if (cmd && utils.isFunction(cmd)) {\n                fn = cmd;\n                cmd = '';\n            }\n            if (fn ? !fn() : !this.hasContents()) {\n                return '';\n            }\n            me.fireEvent('beforegetcontent');\n            var root = UM.htmlparser(me.body.innerHTML,ignoreBlank);\n            me.filterOutputRule(root);\n            me.fireEvent('aftergetcontent',root);\n            return  root.toHtml(formatter);\n        },\n        /**\n         * 取得完整的html代码，可以直接显示成完整的html文档\n         * @name getAllHtml\n         * @grammar editor.getAllHtml()  => String\n         */\n        getAllHtml: function () {\n            var me = this,\n                headHtml = [],\n                html = '';\n            me.fireEvent('getAllHtml', headHtml);\n            if (browser.ie && browser.version > 8) {\n                var headHtmlForIE9 = '';\n                utils.each(me.document.styleSheets, function (si) {\n                    headHtmlForIE9 += ( si.href ? '<link rel=\"stylesheet\" type=\"text/css\" href=\"' + si.href + '\" />' : '<style>' + si.cssText + '</style>');\n                });\n                utils.each(me.document.getElementsByTagName('script'), function (si) {\n                    headHtmlForIE9 += si.outerHTML;\n                });\n            }\n            return '<html><head>' + (me.options.charset ? '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=' + me.options.charset + '\"/>' : '')\n                + (headHtmlForIE9 || me.document.getElementsByTagName('head')[0].innerHTML) + headHtml.join('\\n') + '</head>'\n                + '<body ' + (ie && browser.version < 9 ? 'class=\"view\"' : '') + '>' + me.getContent(null, null, true) + '</body></html>';\n        },\n        /**\n         * 得到编辑器的纯文本内容，但会保留段落格式\n         * @name getPlainTxt\n         * @grammar editor.getPlainTxt()  => String\n         */\n        getPlainTxt: function () {\n            var reg = new RegExp(domUtils.fillChar, 'g'),\n                html = this.body.innerHTML.replace(/[\\n\\r]/g, '');//ie要先去了\\n在处理\n            html = html.replace(/<(p|div)[^>]*>(<br\\/?>|&nbsp;)<\\/\\1>/gi, '\\n')\n                .replace(/<br\\/?>/gi, '\\n')\n                .replace(/<[^>/]+>/g, '')\n                .replace(/(\\n)?<\\/([^>]+)>/g, function (a, b, c) {\n                    return dtd.$block[c] ? '\\n' : b ? b : '';\n                });\n            //取出来的空格会有c2a0会变成乱码，处理这种情况\\u00a0\n            return html.replace(reg, '').replace(/\\u00a0/g, ' ').replace(/&nbsp;/g, ' ');\n        },\n\n        /**\n         * 获取编辑器中的纯文本内容,没有段落格式\n         * @name getContentTxt\n         * @grammar editor.getContentTxt()  => String\n         */\n        getContentTxt: function () {\n            var reg = new RegExp(domUtils.fillChar, 'g');\n            //取出来的空格会有c2a0会变成乱码，处理这种情况\\u00a0\n            return this.body[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').replace(/\\u00a0/g, ' ');\n        },\n\n        /**\n         * 将html设置到编辑器中, 如果是用于初始化时给编辑器赋初值，则必须放在ready方法内部执行\n         * @name setContent\n         * @grammar editor.setContent(html)\n         * @example\n         * var editor = new UM.ui.Editor()\n         * editor.ready(function(){\n         *     //需要ready后执行，否则可能报错\n         *     editor.setContent(\"欢迎使用UEditor！\");\n         * })\n         */\n        setContent: function (html, isAppendTo, notFireSelectionchange) {\n            var me = this;\n\n            me.fireEvent('beforesetcontent', html);\n            var root = UM.htmlparser(html);\n            me.filterInputRule(root);\n            html = root.toHtml();\n\n\n            me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html;\n\n\n            function isCdataDiv(node){\n                return  node.tagName == 'DIV' && node.getAttribute('cdata_tag');\n            }\n            //给文本或者inline节点套p标签\n            if (me.options.enterTag == 'p') {\n\n                var child = this.body.firstChild, tmpNode;\n                if (!child || child.nodeType == 1 &&\n                    (dtd.$cdata[child.tagName] || isCdataDiv(child) ||\n                        domUtils.isCustomeNode(child)\n                        )\n                    && child === this.body.lastChild) {\n                    this.body.innerHTML = '<p>' + (browser.ie ? '&nbsp;' : '<br/>') + '</p>' + this.body.innerHTML;\n\n                } else {\n                    var p = me.document.createElement('p');\n                    while (child) {\n                        while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[child.tagName])) {\n                            tmpNode = child.nextSibling;\n                            p.appendChild(child);\n                            child = tmpNode;\n                        }\n                        if (p.firstChild) {\n                            if (!child) {\n                                me.body.appendChild(p);\n                                break;\n                            } else {\n                                child.parentNode.insertBefore(p, child);\n                                p = me.document.createElement('p');\n                            }\n                        }\n                        child = child.nextSibling;\n                    }\n                }\n            }\n            me.fireEvent('aftersetcontent');\n            me.fireEvent('contentchange');\n\n            !notFireSelectionchange && me._selectionChange();\n            //清除保存的选区\n            me._bakRange = me._bakIERange = me._bakNativeRange = null;\n            //trace:1742 setContent后gecko能得到焦点问题\n            var geckoSel;\n            if (browser.gecko && (geckoSel = this.selection.getNative())) {\n                geckoSel.removeAllRanges();\n            }\n            if(me.options.autoSyncData){\n                me.form && setValue(me.form,me);\n            }\n        },\n\n        /**\n         * 让编辑器获得焦点，toEnd确定focus位置\n         * @name focus\n         * @grammar editor.focus([toEnd])   //默认focus到编辑器头部，toEnd为true时focus到内容尾部\n         */\n        focus: function (toEnd) {\n            try {\n                var me = this,\n                    rng = me.selection.getRange();\n                if (toEnd) {\n                    rng.setStartAtLast(me.body.lastChild).setCursor(false, true);\n                } else {\n                    rng.select(true);\n                }\n                this.fireEvent('focus');\n            } catch (e) {\n            }\n        },\n        /**\n         * 使编辑区域失去焦点\n         */\n        blur:function(){\n            var sel = this.selection.getNative();\n            sel.empty ? sel.empty() : sel.removeAllRanges();\n            this.fireEvent('blur')\n        },\n        /**\n         * 判断编辑器当前是否获得了焦点\n         */\n        isFocus : function(){\n            if(this.fireEvent('isfocus')===true){\n                return true;\n            }\n            return this.selection.isFocus();\n        },\n\n        /**\n         * 初始化UE事件及部分事件代理\n         * @private\n         * @ignore\n         */\n        _initEvents: function () {\n            var me = this,\n                cont = me.body,\n                _proxyDomEvent = function(){\n                    me._proxyDomEvent.apply(me, arguments);\n                };\n\n            $(cont)\n                .on( 'click contextmenu mousedown keydown keyup keypress mouseup mouseover mouseout selectstart', _proxyDomEvent)\n                .on( 'focus blur', _proxyDomEvent)\n                .on('mouseup keydown', function (evt) {\n                    //特殊键不触发selectionchange\n                    if (evt.type == 'keydown' && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey)) {\n                        return;\n                    }\n                    if (evt.button == 2)return;\n                    me._selectionChange(250, evt);\n                });\n        },\n        /**\n         * 触发事件代理\n         * @private\n         * @ignore\n         */\n        _proxyDomEvent: function (evt) {\n            return this.fireEvent(evt.type.replace(/^on/, ''), evt);\n        },\n        /**\n         * 变化选区\n         * @private\n         * @ignore\n         */\n        _selectionChange: function (delay, evt) {\n            var me = this;\n            //有光标才做selectionchange 为了解决未focus时点击source不能触发更改工具栏状态的问题（source命令notNeedUndo=1）\n//            if ( !me.selection.isFocus() ){\n//                return;\n//            }\n\n\n            var hackForMouseUp = false;\n            var mouseX, mouseY;\n            if (browser.ie && browser.version < 9 && evt && evt.type == 'mouseup') {\n                var range = this.selection.getRange();\n                if (!range.collapsed) {\n                    hackForMouseUp = true;\n                    mouseX = evt.clientX;\n                    mouseY = evt.clientY;\n                }\n            }\n            clearTimeout(_selectionChangeTimer);\n            _selectionChangeTimer = setTimeout(function () {\n                if (!me.selection.getNative()) {\n                    return;\n                }\n                //修复一个IE下的bug: 鼠标点击一段已选择的文本中间时，可能在mouseup后的一段时间内取到的range是在selection的type为None下的错误值.\n                //IE下如果用户是拖拽一段已选择文本，则不会触发mouseup事件，所以这里的特殊处理不会对其有影响\n                var ieRange;\n                if (hackForMouseUp && me.selection.getNative().type == 'None') {\n                    ieRange = me.document.body.createTextRange();\n                    try {\n                        ieRange.moveToPoint(mouseX, mouseY);\n                    } catch (ex) {\n                        ieRange = null;\n                    }\n                }\n                var bakGetIERange;\n                if (ieRange) {\n                    bakGetIERange = me.selection.getIERange;\n                    me.selection.getIERange = function () {\n                        return ieRange;\n                    };\n                }\n                me.selection.cache();\n                if (bakGetIERange) {\n                    me.selection.getIERange = bakGetIERange;\n                }\n                if (me.selection._cachedRange && me.selection._cachedStartElement) {\n                    me.fireEvent('beforeselectionchange');\n                    // 第二个参数causeByUi为true代表由用户交互造成的selectionchange.\n                    me.fireEvent('selectionchange', !!evt);\n                    me.fireEvent('afterselectionchange');\n                    me.selection.clear();\n                }\n            }, delay || 50);\n        },\n        _callCmdFn: function (fnName, args) {\n            args = Array.prototype.slice.call(args,0);\n            var cmdName = args.shift().toLowerCase(),\n                cmd, cmdFn;\n            cmd = this.commands[cmdName] || UM.commands[cmdName];\n            cmdFn = cmd && cmd[fnName];\n            //没有querycommandstate或者没有command的都默认返回0\n            if ((!cmd || !cmdFn) && fnName == 'queryCommandState') {\n                return 0;\n            } else if (cmdFn) {\n                return cmdFn.apply(this, [cmdName].concat(args));\n            }\n        },\n\n        /**\n         * 执行编辑命令cmdName，完成富文本编辑效果\n         * @name execCommand\n         * @grammar editor.execCommand(cmdName)   => {*}\n         */\n        execCommand: function (cmdName) {\n            if(!this.isFocus()){\n                var bakRange = this.selection._bakRange;\n                if(bakRange){\n                    bakRange.select()\n                }else{\n                    this.focus(true)\n                }\n\n            }\n            cmdName = cmdName.toLowerCase();\n            var me = this,\n                result,\n                cmd = me.commands[cmdName] || UM.commands[cmdName];\n            if (!cmd || !cmd.execCommand) {\n                return null;\n            }\n            if (!cmd.notNeedUndo && !me.__hasEnterExecCommand) {\n                me.__hasEnterExecCommand = true;\n                if (me.queryCommandState.apply(me,arguments) != -1) {\n                    me.fireEvent('saveScene');\n                    me.fireEvent('beforeexeccommand', cmdName);\n                    result = this._callCmdFn('execCommand', arguments);\n                    (!cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange');\n                    me.fireEvent('afterexeccommand', cmdName);\n                    me.fireEvent('saveScene');\n                }\n                me.__hasEnterExecCommand = false;\n            } else {\n                result = this._callCmdFn('execCommand', arguments);\n                (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange')\n            }\n            (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me._selectionChange();\n            return result;\n        },\n        /**\n         * 根据传入的command命令，查选编辑器当前的选区，返回命令的状态\n         * @name  queryCommandState\n         * @grammar editor.queryCommandState(cmdName)  => (-1|0|1)\n         * @desc\n         * * ''-1'' 当前命令不可用\n         * * ''0'' 当前命令可用\n         * * ''1'' 当前命令已经执行过了\n         */\n        queryCommandState: function (cmdName) {\n            try{\n                return this._callCmdFn('queryCommandState', arguments);\n            }catch(e){\n                return 0\n            }\n\n        },\n\n        /**\n         * 根据传入的command命令，查选编辑器当前的选区，根据命令返回相关的值\n         * @name  queryCommandValue\n         * @grammar editor.queryCommandValue(cmdName)  =>  {*}\n         */\n        queryCommandValue: function (cmdName) {\n            try{\n                return this._callCmdFn('queryCommandValue', arguments);\n            }catch(e){\n                return null\n            }\n        },\n        /**\n         * 检查编辑区域中是否有内容，若包含tags中的节点类型，直接返回true\n         * @name  hasContents\n         * @desc\n         * 默认有文本内容，或者有以下节点都不认为是空\n         * <code>{table:1,ul:1,ol:1,dl:1,iframe:1,area:1,base:1,col:1,hr:1,img:1,embed:1,input:1,link:1,meta:1,param:1}</code>\n         * @grammar editor.hasContents()  => (true|false)\n         * @grammar editor.hasContents(tags)  =>  (true|false)  //若文档中包含tags数组里对应的tag，直接返回true\n         * @example\n         * editor.hasContents(['span']) //如果编辑器里有这些，不认为是空\n         */\n        hasContents: function (tags) {\n            if (tags) {\n                for (var i = 0, ci; ci = tags[i++];) {\n                    if (this.body.getElementsByTagName(ci).length > 0) {\n                        return true;\n                    }\n                }\n            }\n            if (!domUtils.isEmptyBlock(this.body)) {\n                return true\n            }\n            //随时添加,定义的特殊标签如果存在，不能认为是空\n            tags = ['div'];\n            for (i = 0; ci = tags[i++];) {\n                var nodes = domUtils.getElementsByTagName(this.body, ci);\n                for (var n = 0, cn; cn = nodes[n++];) {\n                    if (domUtils.isCustomeNode(cn)) {\n                        return true;\n                    }\n                }\n            }\n            return false;\n        },\n        /**\n         * 重置编辑器，可用来做多个tab使用同一个编辑器实例\n         * @name  reset\n         * @desc\n         * * 清空编辑器内容\n         * * 清空回退列表\n         * @grammar editor.reset()\n         */\n        reset: function () {\n            this.fireEvent('reset');\n        },\n        isEnabled: function(){\n            return this._isEnabled != true;\n        },\n\n        setEnabled: function () {\n            var me = this, range;\n\n            me.body.contentEditable = true;\n\n            /* 恢复选区 */\n            if (me.lastBk) {\n                range = me.selection.getRange();\n                try {\n                    range.moveToBookmark(me.lastBk);\n                    delete me.lastBk\n                } catch (e) {\n                    range.setStartAtFirst(me.body).collapse(true)\n                }\n                range.select(true);\n            }\n\n            /* 恢复query函数 */\n            if (me.bkqueryCommandState) {\n                me.queryCommandState = me.bkqueryCommandState;\n                delete me.bkqueryCommandState;\n            }\n\n            /* 恢复原生事件 */\n            if (me._bkproxyDomEvent) {\n                me._proxyDomEvent = me._bkproxyDomEvent;\n                delete me._bkproxyDomEvent;\n            }\n\n            /* 触发事件 */\n            me.fireEvent('setEnabled');\n        },\n        /**\n         * 设置当前编辑区域可以编辑\n         * @name enable\n         * @grammar editor.enable()\n         */\n        enable: function () {\n            return this.setEnabled();\n        },\n        setDisabled: function (except, keepDomEvent) {\n            var me = this;\n\n            me.body.contentEditable = false;\n            me._except = except ? utils.isArray(except) ? except : [except] : [];\n\n            /* 备份最后的选区 */\n            if (!me.lastBk) {\n                me.lastBk = me.selection.getRange().createBookmark(true);\n            }\n\n            /* 备份并重置query函数 */\n            if(!me.bkqueryCommandState) {\n                me.bkqueryCommandState = me.queryCommandState;\n                me.queryCommandState = function (type) {\n                    if (utils.indexOf(me._except, type) != -1) {\n                        return me.bkqueryCommandState.apply(me, arguments);\n                    }\n                    return -1;\n                };\n            }\n\n            /* 备份并墙原生事件 */\n            if(!keepDomEvent && !me._bkproxyDomEvent) {\n                me._bkproxyDomEvent = me._proxyDomEvent;\n                me._proxyDomEvent = function () {\n                    return false;\n                };\n            }\n\n            /* 触发事件 */\n            me.fireEvent('selectionchange');\n            me.fireEvent('setDisabled', me._except);\n        },\n        /** 设置当前编辑区域不可编辑,except中的命令除外\n         * @name disable\n         * @grammar editor.disable()\n         * @grammar editor.disable(except)  //例外的命令，也即即使设置了disable，此处配置的命令仍然可以执行\n         * @example\n         * //禁用工具栏中除加粗和插入图片之外的所有功能\n         * editor.disable(['bold','insertimage']);//可以是单一的String,也可以是Array\n         */\n        disable: function (except) {\n            return this.setDisabled(except);\n        },\n        /**\n         * 设置默认内容\n         * @ignore\n         * @private\n         * @param  {String} cont 要存入的内容\n         */\n        _setDefaultContent: function () {\n            function clear() {\n                var me = this;\n                if (me.document.getElementById('initContent')) {\n                    me.body.innerHTML = '<p>' + (ie ? '' : '<br/>') + '</p>';\n                    me.removeListener('firstBeforeExecCommand focus', clear);\n                    setTimeout(function () {\n                        me.focus();\n                        me._selectionChange();\n                    }, 0)\n                }\n            }\n\n            return function (cont) {\n                var me = this;\n                me.body.innerHTML = '<p id=\"initContent\">' + cont + '</p>';\n\n                me.addListener('firstBeforeExecCommand focus', clear);\n            }\n        }(),\n        /**\n         * show方法的兼容版本\n         * @private\n         * @ignore\n         */\n        setShow: function () {\n            var me = this, range = me.selection.getRange();\n            if (me.container.style.display == 'none') {\n                //有可能内容丢失了\n                try {\n                    range.moveToBookmark(me.lastBk);\n                    delete me.lastBk\n                } catch (e) {\n                    range.setStartAtFirst(me.body).collapse(true)\n                }\n                //ie下focus实效，所以做了个延迟\n                setTimeout(function () {\n                    range.select(true);\n                }, 100);\n                me.container.style.display = '';\n            }\n\n        },\n        /**\n         * 显示编辑器\n         * @name show\n         * @grammar editor.show()\n         */\n        show: function () {\n            return this.setShow();\n        },\n        /**\n         * hide方法的兼容版本\n         * @private\n         * @ignore\n         */\n        setHide: function () {\n            var me = this;\n            if (!me.lastBk) {\n                me.lastBk = me.selection.getRange().createBookmark(true);\n            }\n            me.container.style.display = 'none'\n        },\n        /**\n         * 隐藏编辑器\n         * @name hide\n         * @grammar editor.hide()\n         */\n        hide: function () {\n            return this.setHide();\n        },\n        /**\n         * 根据制定的路径，获取对应的语言资源\n         * @name  getLang\n         * @grammar editor.getLang(path)  =>  （JSON|String) 路径根据的是lang目录下的语言文件的路径结构\n         * @example\n         * editor.getLang('contextMenu.delete') //如果当前是中文，那返回是的是删除\n         */\n        getLang: function (path) {\n            var lang = UM.I18N[this.options.lang];\n            if (!lang) {\n                throw Error(\"not import language file\");\n            }\n            path = (path || \"\").split(\".\");\n            for (var i = 0, ci; ci = path[i++];) {\n                lang = lang[ci];\n                if (!lang)break;\n            }\n            return lang;\n        },\n        /**\n         * 计算编辑器当前内容的长度\n         * @name  getContentLength\n         * @grammar editor.getContentLength(ingoneHtml,tagNames)  =>\n         * @example\n         * editor.getLang(true)\n         */\n        getContentLength: function (ingoneHtml, tagNames) {\n            var count = this.getContent(false,false,true).length;\n            if (ingoneHtml) {\n                tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']);\n                count = this.getContentTxt().replace(/[\\t\\r\\n]+/g, '').length;\n                for (var i = 0, ci; ci = tagNames[i++];) {\n                    count += this.body.getElementsByTagName(ci).length;\n                }\n            }\n            return count;\n        },\n        addInputRule: function (rule,ignoreUndo) {\n            rule.ignoreUndo = ignoreUndo;\n            this.inputRules.push(rule);\n        },\n        filterInputRule: function (root,isUndoLoad) {\n            for (var i = 0, ci; ci = this.inputRules[i++];) {\n                if(isUndoLoad && ci.ignoreUndo){\n                    continue;\n                }\n                ci.call(this, root)\n            }\n        },\n        addOutputRule: function (rule,ignoreUndo) {\n            rule.ignoreUndo = ignoreUndo;\n            this.outputRules.push(rule)\n        },\n        filterOutputRule: function (root,isUndoLoad) {\n            for (var i = 0, ci; ci = this.outputRules[i++];) {\n                if(isUndoLoad && ci.ignoreUndo){\n                    continue;\n                }\n                ci.call(this, root)\n            }\n        }\n    };\n    utils.inherits(Editor, EventBase);\n})();\n\n/**\n * @file\n * @name UM.filterWord\n * @short filterWord\n * @desc 用来过滤word粘贴过来的字符串\n * @import editor.js,core/utils.js\n * @anthor zhanyi\n */\nvar filterWord = UM.filterWord = function () {\n\n    //是否是word过来的内容\n    function isWordDocument( str ) {\n        return /(class=\"?Mso|style=\"[^\"]*\\bmso\\-|w:WordDocument|<(v|o):|lang=)/ig.test( str );\n    }\n    //去掉小数\n    function transUnit( v ) {\n        v = v.replace( /[\\d.]+\\w+/g, function ( m ) {\n            return utils.transUnitToPx(m);\n        } );\n        return v;\n    }\n\n    function filterPasteWord( str ) {\n        return str.replace(/[\\t\\r\\n]+/g,' ')\n            .replace( /<!--[\\s\\S]*?-->/ig, \"\" )\n            //转换图片\n            .replace(/<v:shape [^>]*>[\\s\\S]*?.<\\/v:shape>/gi,function(str){\n                //opera能自己解析出image所这里直接返回空\n                if(browser.opera){\n                    return '';\n                }\n                try{\n                    //有可能是bitmap占为图，无用，直接过滤掉，主要体现在粘贴excel表格中\n                    if(/Bitmap/i.test(str)){\n                        return '';\n                    }\n                    var width = str.match(/width:([ \\d.]*p[tx])/i)[1],\n                        height = str.match(/height:([ \\d.]*p[tx])/i)[1],\n                        src =  str.match(/src=\\s*\"([^\"]*)\"/i)[1];\n                    return '<img width=\"'+ transUnit(width) +'\" height=\"'+transUnit(height) +'\" src=\"' + src + '\" />';\n                } catch(e){\n                    return '';\n                }\n            })\n            //针对wps添加的多余标签处理\n            .replace(/<\\/?div[^>]*>/g,'')\n            //去掉多余的属性\n            .replace( /v:\\w+=([\"']?)[^'\"]+\\1/g, '' )\n            .replace( /<(!|script[^>]*>.*?<\\/script(?=[>\\s])|\\/?(\\?xml(:\\w+)?|xml|meta|link|style|\\w+:\\w+)(?=[\\s\\/>]))[^>]*>/gi, \"\" )\n            .replace( /<p [^>]*class=\"?MsoHeading\"?[^>]*>(.*?)<\\/p>/gi, \"<p><strong>$1</strong></p>\" )\n            //去掉多余的属性\n            .replace( /\\s+(class|lang|align)\\s*=\\s*(['\"]?)([\\w-]+)\\2/ig, function(str,name,marks,val){\n                //保留list的标示\n                return name == 'class' && val == 'MsoListParagraph' ? str : ''\n            })\n            //清除多余的font/span不能匹配&nbsp;有可能是空格\n            .replace( /<(font|span)[^>]*>(\\s*)<\\/\\1>/gi, function(a,b,c){\n                return c.replace(/[\\t\\r\\n ]+/g,' ')\n            })\n            //处理style的问题\n            .replace( /(<[a-z][^>]*)\\sstyle=([\"'])([^\\2]*?)\\2/gi, function( str, tag, tmp, style ) {\n                var n = [],\n                    s = style.replace( /^\\s+|\\s+$/, '' )\n                        .replace(/&#39;/g,'\\'')\n                        .replace( /&quot;/gi, \"'\" )\n                        .split( /;\\s*/g );\n\n                for ( var i = 0,v; v = s[i];i++ ) {\n\n                    var name, value,\n                        parts = v.split( \":\" );\n\n                    if ( parts.length == 2 ) {\n                        name = parts[0].toLowerCase();\n                        value = parts[1].toLowerCase();\n                        if(/^(background)\\w*/.test(name) && value.replace(/(initial|\\s)/g,'').length == 0\n                            ||\n                            /^(margin)\\w*/.test(name) && /^0\\w+$/.test(value)\n                            ){\n                            continue;\n                        }\n\n                        switch ( name ) {\n                            case \"mso-padding-alt\":\n                            case \"mso-padding-top-alt\":\n                            case \"mso-padding-right-alt\":\n                            case \"mso-padding-bottom-alt\":\n                            case \"mso-padding-left-alt\":\n                            case \"mso-margin-alt\":\n                            case \"mso-margin-top-alt\":\n                            case \"mso-margin-right-alt\":\n                            case \"mso-margin-bottom-alt\":\n                            case \"mso-margin-left-alt\":\n                            //ie下会出现挤到一起的情况\n                            //case \"mso-table-layout-alt\":\n                            case \"mso-height\":\n                            case \"mso-width\":\n                            case \"mso-vertical-align-alt\":\n                                //trace:1819 ff下会解析出padding在table上\n                                if(!/<table/.test(tag))\n                                    n[i] = name.replace( /^mso-|-alt$/g, \"\" ) + \":\" + transUnit( value );\n                                continue;\n                            case \"horiz-align\":\n                                n[i] = \"text-align:\" + value;\n                                continue;\n\n                            case \"vert-align\":\n                                n[i] = \"vertical-align:\" + value;\n                                continue;\n\n                            case \"font-color\":\n                            case \"mso-foreground\":\n                                n[i] = \"color:\" + value;\n                                continue;\n\n                            case \"mso-background\":\n                            case \"mso-highlight\":\n                                n[i] = \"background:\" + value;\n                                continue;\n\n                            case \"mso-default-height\":\n                                n[i] = \"min-height:\" + transUnit( value );\n                                continue;\n\n                            case \"mso-default-width\":\n                                n[i] = \"min-width:\" + transUnit( value );\n                                continue;\n\n                            case \"mso-padding-between-alt\":\n                                n[i] = \"border-collapse:separate;border-spacing:\" + transUnit( value );\n                                continue;\n\n                            case \"text-line-through\":\n                                if ( (value == \"single\") || (value == \"double\") ) {\n                                    n[i] = \"text-decoration:line-through\";\n                                }\n                                continue;\n                            case \"mso-zero-height\":\n                                if ( value == \"yes\" ) {\n                                    n[i] = \"display:none\";\n                                }\n                                continue;\n//                                case 'background':\n//                                    break;\n                            case 'margin':\n                                if ( !/[1-9]/.test( value ) ) {\n                                    continue;\n                                }\n\n                        }\n\n                        if ( /^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?:decor|trans)|top-bar|version|vnd|word-break)/.test( name )\n                            ||\n                            /text\\-indent|padding|margin/.test(name) && /\\-[\\d.]+/.test(value)\n                            ) {\n                            continue;\n                        }\n\n                        n[i] = name + \":\" + parts[1];\n                    }\n                }\n                return tag + (n.length ? ' style=\"' + n.join( ';').replace(/;{2,}/g,';') + '\"' : '');\n            })\n            .replace(/[\\d.]+(cm|pt)/g,function(str){\n                return utils.transUnitToPx(str)\n            })\n\n    }\n\n    return function ( html ) {\n        return (isWordDocument( html ) ? filterPasteWord( html ) : html);\n    };\n}();\n///import editor.js\n///import core/utils.js\n///import core/dom/dom.js\n///import core/dom/dtd.js\n///import core/htmlparser.js\n//模拟的节点类\n//by zhanyi\n(function () {\n    var uNode = UM.uNode = function (obj) {\n        this.type = obj.type;\n        this.data = obj.data;\n        this.tagName = obj.tagName;\n        this.parentNode = obj.parentNode;\n        this.attrs = obj.attrs || {};\n        this.children = obj.children;\n    };\n    var notTransAttrs = {\n        'href':1,\n        'src':1,\n        '_src':1,\n        '_href':1,\n        'cdata_data':1\n    };\n\n    var notTransTagName = {\n        style:1,\n        script:1\n    };\n\n    var indentChar = '    ',\n        breakChar = '\\n';\n\n    function insertLine(arr, current, begin) {\n        arr.push(breakChar);\n        return current + (begin ? 1 : -1);\n    }\n\n    function insertIndent(arr, current) {\n        //插入缩进\n        for (var i = 0; i < current; i++) {\n            arr.push(indentChar);\n        }\n    }\n\n    //创建uNode的静态方法\n    //支持标签和html\n    uNode.createElement = function (html) {\n        if (/[<>]/.test(html)) {\n            return UM.htmlparser(html).children[0]\n        } else {\n            return new uNode({\n                type:'element',\n                children:[],\n                tagName:html\n            })\n        }\n    };\n    uNode.createText = function (data,noTrans) {\n        return new UM.uNode({\n            type:'text',\n            'data':noTrans ? data : utils.unhtml(data || '')\n        })\n    };\n    function nodeToHtml(node, arr, formatter, current) {\n        switch (node.type) {\n            case 'root':\n                for (var i = 0, ci; ci = node.children[i++];) {\n                    //插入新行\n                    if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) {\n                        insertLine(arr, current, true);\n                        insertIndent(arr, current)\n                    }\n                    nodeToHtml(ci, arr, formatter, current)\n                }\n                break;\n            case 'text':\n                isText(node, arr);\n                break;\n            case 'element':\n                isElement(node, arr, formatter, current);\n                break;\n            case 'comment':\n                isComment(node, arr, formatter);\n        }\n        return arr;\n    }\n\n    function isText(node, arr) {\n        if(node.parentNode.tagName == 'pre'){\n            //源码模式下输入html标签，不能做转换处理，直接输出\n            arr.push(node.data)\n        }else{\n            arr.push(notTransTagName[node.parentNode.tagName] ? utils.html(node.data) : node.data.replace(/[ ]{2}/g,' &nbsp;'))\n        }\n\n    }\n\n    function isElement(node, arr, formatter, current) {\n        var attrhtml = '';\n        if (node.attrs) {\n            attrhtml = [];\n            var attrs = node.attrs;\n            for (var a in attrs) {\n                //这里就针对\n                //<p>'<img src='http://nsclick.baidu.com/u.gif?&asdf=\\\"sdf&asdfasdfs;asdf'></p>\n                //这里边的\\\"做转换，要不用innerHTML直接被截断了，属性src\n                //有可能做的不够\n                attrhtml.push(a + (attrs[a] !== undefined ? '=\"' + (notTransAttrs[a] ? utils.html(attrs[a]).replace(/[\"]/g, function (a) {\n                    return '&quot;'\n                }) : utils.unhtml(attrs[a])) + '\"' : ''))\n            }\n            attrhtml = attrhtml.join(' ');\n        }\n        arr.push('<' + node.tagName +\n            (attrhtml ? ' ' + attrhtml  : '') +\n            (dtd.$empty[node.tagName] ? '\\/' : '' ) + '>'\n        );\n        //插入新行\n        if (formatter  &&  !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') {\n            if(node.children && node.children.length){\n                current = insertLine(arr, current, true);\n                insertIndent(arr, current)\n            }\n\n        }\n        if (node.children && node.children.length) {\n            for (var i = 0, ci; ci = node.children[i++];) {\n                if (formatter && ci.type == 'element' &&  !dtd.$inlineWithA[ci.tagName] && i > 1) {\n                    insertLine(arr, current);\n                    insertIndent(arr, current)\n                }\n                nodeToHtml(ci, arr, formatter, current)\n            }\n        }\n        if (!dtd.$empty[node.tagName]) {\n            if (formatter && !dtd.$inlineWithA[node.tagName]  && node.tagName != 'pre') {\n\n                if(node.children && node.children.length){\n                    current = insertLine(arr, current);\n                    insertIndent(arr, current)\n                }\n            }\n            arr.push('<\\/' + node.tagName + '>');\n        }\n\n    }\n\n    function isComment(node, arr) {\n        arr.push('<!--' + node.data + '-->');\n    }\n\n    function getNodeById(root, id) {\n        var node;\n        if (root.type == 'element' && root.getAttr('id') == id) {\n            return root;\n        }\n        if (root.children && root.children.length) {\n            for (var i = 0, ci; ci = root.children[i++];) {\n                if (node = getNodeById(ci, id)) {\n                    return node;\n                }\n            }\n        }\n    }\n\n    function getNodesByTagName(node, tagName, arr) {\n        if (node.type == 'element' && node.tagName == tagName) {\n            arr.push(node);\n        }\n        if (node.children && node.children.length) {\n            for (var i = 0, ci; ci = node.children[i++];) {\n                getNodesByTagName(ci, tagName, arr)\n            }\n        }\n    }\n    function nodeTraversal(root,fn){\n        if(root.children && root.children.length){\n            for(var i= 0,ci;ci=root.children[i];){\n                nodeTraversal(ci,fn);\n                //ci被替换的情况，这里就不再走 fn了\n                if(ci.parentNode ){\n                    if(ci.children && ci.children.length){\n                        fn(ci)\n                    }\n                    if(ci.parentNode) i++\n                }\n            }\n        }else{\n            fn(root)\n        }\n\n    }\n    uNode.prototype = {\n\n        /**\n         * 当前节点对象，转换成html文本\n         * @method toHtml\n         * @return { String } 返回转换后的html字符串\n         * @example\n         * ```javascript\n         * node.toHtml();\n         * ```\n         */\n\n        /**\n         * 当前节点对象，转换成html文本\n         * @method toHtml\n         * @param { Boolean } formatter 是否格式化返回值\n         * @return { String } 返回转换后的html字符串\n         * @example\n         * ```javascript\n         * node.toHtml( true );\n         * ```\n         */\n        toHtml:function (formatter) {\n            var arr = [];\n            nodeToHtml(this, arr, formatter, 0);\n            return arr.join('')\n        },\n\n        /**\n         * 获取节点的html内容\n         * @method innerHTML\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @return { String } 返回节点的html内容\n         * @example\n         * ```javascript\n         * var htmlstr = node.innerHTML();\n         * ```\n         */\n\n        /**\n         * 设置节点的html内容\n         * @method innerHTML\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @param { String } htmlstr 传入要设置的html内容\n         * @return { UM.uNode } 返回节点本身\n         * @example\n         * ```javascript\n         * node.innerHTML('<span>text</span>');\n         * ```\n         */\n        innerHTML:function (htmlstr) {\n            if (this.type != 'element' || dtd.$empty[this.tagName]) {\n                return this;\n            }\n            if (utils.isString(htmlstr)) {\n                if(this.children){\n                    for (var i = 0, ci; ci = this.children[i++];) {\n                        ci.parentNode = null;\n                    }\n                }\n                this.children = [];\n                var tmpRoot = UM.htmlparser(htmlstr);\n                for (var i = 0, ci; ci = tmpRoot.children[i++];) {\n                    this.children.push(ci);\n                    ci.parentNode = this;\n                }\n                return this;\n            } else {\n                var tmpRoot = new UM.uNode({\n                    type:'root',\n                    children:this.children\n                });\n                return tmpRoot.toHtml();\n            }\n        },\n\n        /**\n         * 获取节点的纯文本内容\n         * @method innerText\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @return { String } 返回节点的存文本内容\n         * @example\n         * ```javascript\n         * var textStr = node.innerText();\n         * ```\n         */\n\n        /**\n         * 设置节点的纯文本内容\n         * @method innerText\n         * @warning 假如节点的type不是'element'，或节点的标签名称不在dtd列表里，直接返回当前节点\n         * @param { String } textStr 传入要设置的文本内容\n         * @return { UM.uNode } 返回节点本身\n         * @example\n         * ```javascript\n         * node.innerText('<span>text</span>');\n         * ```\n         */\n        innerText:function (textStr,noTrans) {\n            if (this.type != 'element' || dtd.$empty[this.tagName]) {\n                return this;\n            }\n            if (textStr) {\n                if(this.children){\n                    for (var i = 0, ci; ci = this.children[i++];) {\n                        ci.parentNode = null;\n                    }\n                }\n                this.children = [];\n                this.appendChild(uNode.createText(textStr,noTrans));\n                return this;\n            } else {\n                return this.toHtml().replace(/<[^>]+>/g, '');\n            }\n        },\n\n        /**\n         * 获取当前对象的data属性\n         * @method getData\n         * @return { Object } 若节点的type值是elemenet，返回空字符串，否则返回节点的data属性\n         * @example\n         * ```javascript\n         * node.getData();\n         * ```\n         */\n        getData:function () {\n            if (this.type == 'element')\n                return '';\n            return this.data\n        },\n\n        /**\n         * 获取当前节点下的第一个子节点\n         * @method firstChild\n         * @return { UM.uNode } 返回第一个子节点\n         * @example\n         * ```javascript\n         * node.firstChild(); //返回第一个子节点\n         * ```\n         */\n        firstChild:function () {\n//            if (this.type != 'element' || dtd.$empty[this.tagName]) {\n//                return this;\n//            }\n            return this.children ? this.children[0] : null;\n        },\n\n        /**\n         * 获取当前节点下的最后一个子节点\n         * @method lastChild\n         * @return { UM.uNode } 返回最后一个子节点\n         * @example\n         * ```javascript\n         * node.lastChild(); //返回最后一个子节点\n         * ```\n         */\n        lastChild:function () {\n//            if (this.type != 'element' || dtd.$empty[this.tagName] ) {\n//                return this;\n//            }\n            return this.children ? this.children[this.children.length - 1] : null;\n        },\n\n        /**\n         * 获取和当前节点有相同父亲节点的前一个节点\n         * @method previousSibling\n         * @return { UM.uNode } 返回前一个节点\n         * @example\n         * ```javascript\n         * node.children[2].previousSibling(); //返回子节点node.children[1]\n         * ```\n         */\n        previousSibling : function(){\n            var parent = this.parentNode;\n            for (var i = 0, ci; ci = parent.children[i]; i++) {\n                if (ci === this) {\n                    return i == 0 ? null : parent.children[i-1];\n                }\n            }\n\n        },\n\n        /**\n         * 获取和当前节点有相同父亲节点的后一个节点\n         * @method nextSibling\n         * @return { UM.uNode } 返回后一个节点,找不到返回null\n         * @example\n         * ```javascript\n         * node.children[2].nextSibling(); //如果有，返回子节点node.children[3]\n         * ```\n         */\n        nextSibling : function(){\n            var parent = this.parentNode;\n            for (var i = 0, ci; ci = parent.children[i++];) {\n                if (ci === this) {\n                    return parent.children[i];\n                }\n            }\n        },\n\n        /**\n         * 用新的节点替换当前节点\n         * @method replaceChild\n         * @param { UM.uNode } target 要替换成该节点参数\n         * @param { UM.uNode } source 要被替换掉的节点\n         * @return { UM.uNode } 返回替换之后的节点对象\n         * @example\n         * ```javascript\n         * node.replaceChild(newNode, childNode); //用newNode替换childNode,childNode是node的子节点\n         * ```\n         */\n        replaceChild:function (target, source) {\n            if (this.children) {\n                if(target.parentNode){\n                    target.parentNode.removeChild(target);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === source) {\n                        this.children.splice(i, 1, target);\n                        source.parentNode = null;\n                        target.parentNode = this;\n                        return target;\n                    }\n                }\n            }\n        },\n\n        /**\n         * 在节点的子节点列表最后位置插入一个节点\n         * @method appendChild\n         * @param { UM.uNode } node 要插入的节点\n         * @return { UM.uNode } 返回刚插入的子节点\n         * @example\n         * ```javascript\n         * node.appendChild( newNode ); //在node内插入子节点newNode\n         * ```\n         */\n        appendChild:function (node) {\n            if (this.type == 'root' || (this.type == 'element' && !dtd.$empty[this.tagName])) {\n                if (!this.children) {\n                    this.children = []\n                }\n                if(node.parentNode){\n                    node.parentNode.removeChild(node);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === node) {\n                        this.children.splice(i, 1);\n                        break;\n                    }\n                }\n                this.children.push(node);\n                node.parentNode = this;\n                return node;\n            }\n\n\n        },\n\n        /**\n         * 在传入节点的前面插入一个节点\n         * @method insertBefore\n         * @param { UM.uNode } target 要插入的节点\n         * @param { UM.uNode } source 在该参数节点前面插入\n         * @return { UM.uNode } 返回刚插入的子节点\n         * @example\n         * ```javascript\n         * node.parentNode.insertBefore(newNode, node); //在node节点后面插入newNode\n         * ```\n         */\n        insertBefore:function (target, source) {\n            if (this.children) {\n                if(target.parentNode){\n                    target.parentNode.removeChild(target);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === source) {\n                        this.children.splice(i, 0, target);\n                        target.parentNode = this;\n                        return target;\n                    }\n                }\n\n            }\n        },\n\n        /**\n         * 在传入节点的后面插入一个节点\n         * @method insertAfter\n         * @param { UM.uNode } target 要插入的节点\n         * @param { UM.uNode } source 在该参数节点后面插入\n         * @return { UM.uNode } 返回刚插入的子节点\n         * @example\n         * ```javascript\n         * node.parentNode.insertAfter(newNode, node); //在node节点后面插入newNode\n         * ```\n         */\n        insertAfter:function (target, source) {\n            if (this.children) {\n                if(target.parentNode){\n                    target.parentNode.removeChild(target);\n                }\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === source) {\n                        this.children.splice(i + 1, 0, target);\n                        target.parentNode = this;\n                        return target;\n                    }\n\n                }\n            }\n        },\n\n        /**\n         * 从当前节点的子节点列表中，移除节点\n         * @method removeChild\n         * @param { UM.uNode } node 要移除的节点引用\n         * @param { Boolean } keepChildren 是否保留移除节点的子节点，若传入true，自动把移除节点的子节点插入到移除的位置\n         * @return { * } 返回刚移除的子节点\n         * @example\n         * ```javascript\n         * node.removeChild(childNode,true); //在node的子节点列表中移除child节点，并且吧child的子节点插入到移除的位置\n         * ```\n         */\n        removeChild:function (node,keepChildren) {\n            if (this.children) {\n                for (var i = 0, ci; ci = this.children[i]; i++) {\n                    if (ci === node) {\n                        this.children.splice(i, 1);\n                        ci.parentNode = null;\n                        if(keepChildren && ci.children && ci.children.length){\n                            for(var j= 0,cj;cj=ci.children[j];j++){\n                                this.children.splice(i+j,0,cj);\n                                cj.parentNode = this;\n\n                            }\n                        }\n                        return ci;\n                    }\n                }\n            }\n        },\n\n        /**\n         * 获取当前节点所代表的元素属性，即获取attrs对象下的属性值\n         * @method getAttr\n         * @param { String } attrName 要获取的属性名称\n         * @return { * } 返回attrs对象下的属性值\n         * @example\n         * ```javascript\n         * node.getAttr('title');\n         * ```\n         */\n        getAttr:function (attrName) {\n            return this.attrs && this.attrs[attrName.toLowerCase()]\n        },\n\n        /**\n         * 设置当前节点所代表的元素属性，即设置attrs对象下的属性值\n         * @method setAttr\n         * @param { String } attrName 要设置的属性名称\n         * @param { * } attrVal 要设置的属性值，类型视设置的属性而定\n         * @return { * } 返回attrs对象下的属性值\n         * @example\n         * ```javascript\n         * node.setAttr('title','标题');\n         * ```\n         */\n        setAttr:function (attrName, attrVal) {\n            if (!attrName) {\n                delete this.attrs;\n                return;\n            }\n            if(!this.attrs){\n                this.attrs = {};\n            }\n            if (utils.isObject(attrName)) {\n                for (var a in attrName) {\n                    if (!attrName[a]) {\n                        delete this.attrs[a]\n                    } else {\n                        this.attrs[a.toLowerCase()] = attrName[a];\n                    }\n                }\n            } else {\n                if (!attrVal) {\n                    delete this.attrs[attrName]\n                } else {\n                    this.attrs[attrName.toLowerCase()] = attrVal;\n                }\n\n            }\n        },\n        hasAttr: function( attrName ){\n            var attrVal = this.getAttr( attrName );\n            return ( attrVal !== null ) && ( attrVal !== undefined );\n        },\n        /**\n         * 获取当前节点在父节点下的位置索引\n         * @method getIndex\n         * @return { Number } 返回索引数值，如果没有父节点，返回-1\n         * @example\n         * ```javascript\n         * node.getIndex();\n         * ```\n         */\n        getIndex:function(){\n            var parent = this.parentNode;\n            for(var i= 0,ci;ci=parent.children[i];i++){\n                if(ci === this){\n                    return i;\n                }\n            }\n            return -1;\n        },\n\n        /**\n         * 在当前节点下，根据id查找节点\n         * @method getNodeById\n         * @param { String } id 要查找的id\n         * @return { UM.uNode } 返回找到的节点\n         * @example\n         * ```javascript\n         * node.getNodeById('textId');\n         * ```\n         */\n        getNodeById:function (id) {\n            var node;\n            if (this.children && this.children.length) {\n                for (var i = 0, ci; ci = this.children[i++];) {\n                    if (node = getNodeById(ci, id)) {\n                        return node;\n                    }\n                }\n            }\n        },\n\n        /**\n         * 在当前节点下，根据元素名称查找节点列表\n         * @method getNodesByTagName\n         * @param { String } tagNames 要查找的元素名称\n         * @return { Array } 返回找到的节点列表\n         * @example\n         * ```javascript\n         * node.getNodesByTagName('span');\n         * ```\n         */\n        getNodesByTagName:function (tagNames) {\n            tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g, ' ').split(' ');\n            var arr = [], me = this;\n            utils.each(tagNames, function (tagName) {\n                if (me.children && me.children.length) {\n                    for (var i = 0, ci; ci = me.children[i++];) {\n                        getNodesByTagName(ci, tagName, arr)\n                    }\n                }\n            });\n            return arr;\n        },\n\n        /**\n         * 根据样式名称，获取节点的样式值\n         * @method getStyle\n         * @param { String } name 要获取的样式名称\n         * @return { String } 返回样式值\n         * @example\n         * ```javascript\n         * node.getStyle('font-size');\n         * ```\n         */\n        getStyle:function (name) {\n            var cssStyle = this.getAttr('style');\n            if (!cssStyle) {\n                return ''\n            }\n            var reg = new RegExp('(^|;)\\\\s*' + name + ':([^;]+)','i');\n            var match = cssStyle.match(reg);\n            if (match && match[0]) {\n                return match[2]\n            }\n            return '';\n        },\n\n        /**\n         * 给节点设置样式\n         * @method setStyle\n         * @param { String } name 要设置的的样式名称\n         * @param { String } val 要设置的的样值\n         * @example\n         * ```javascript\n         * node.setStyle('font-size', '12px');\n         * ```\n         */\n        setStyle:function (name, val) {\n            function exec(name, val) {\n                var reg = new RegExp('(^|;)\\\\s*' + name + ':([^;]+;?)', 'gi');\n                cssStyle = cssStyle.replace(reg, '$1');\n                if (val) {\n                    cssStyle = name + ':' + utils.unhtml(val) + ';' + cssStyle\n                }\n\n            }\n\n            var cssStyle = this.getAttr('style');\n            if (!cssStyle) {\n                cssStyle = '';\n            }\n            if (utils.isObject(name)) {\n                for (var a in name) {\n                    exec(a, name[a])\n                }\n            } else {\n                exec(name, val)\n            }\n            this.setAttr('style', utils.trim(cssStyle))\n        },\n        hasClass: function( className ){\n            if( this.hasAttr('class') ) {\n                var classNames = this.getAttr('class').split(/\\s+/),\n                    hasClass = false;\n                $.each(classNames, function(key, item){\n                    if( item === className ) {\n                        hasClass = true;\n                    }\n                });\n                return hasClass;\n            } else {\n                return false;\n            }\n        },\n        addClass: function( className ){\n\n            var classes = null,\n                hasClass = false;\n\n            if( this.hasAttr('class') ) {\n\n                classes = this.getAttr('class');\n                classes = classes.split(/\\s+/);\n\n                classes.forEach( function( item ){\n\n                    if( item===className ) {\n                        hasClass = true;\n                        return;\n                    }\n\n                } );\n\n                !hasClass && classes.push( className );\n\n                this.setAttr('class', classes.join(\" \"));\n\n            } else {\n                this.setAttr('class', className);\n            }\n\n        },\n        removeClass: function( className ){\n            if( this.hasAttr('class') ) {\n                var cl = this.getAttr('class');\n                cl = cl.replace(new RegExp('\\\\b' + className + '\\\\b', 'g'),'');\n                this.setAttr('class', utils.trim(cl).replace(/[ ]{2,}/g,' '));\n            }\n        },\n        /**\n         * 传入一个函数，递归遍历当前节点下的所有节点\n         * @method traversal\n         * @param { Function } fn 遍历到节点的时，传入节点作为参数，运行此函数\n         * @example\n         * ```javascript\n         * traversal(node, function(){\n         *     console.log(node.type);\n         * });\n         * ```\n         */\n        traversal:function(fn){\n            if(this.children && this.children.length){\n                nodeTraversal(this,fn);\n            }\n            return this;\n        }\n    }\n})();\n\n//html字符串转换成uNode节点\n//by zhanyi\nvar htmlparser = UM.htmlparser = function (htmlstr,ignoreBlank) {\n    //todo 原来的方式  [^\"'<>\\/] 有\\/就不能配对上 <TD vAlign=top background=../AAA.JPG> 这样的标签了\n    //先去掉了，加上的原因忘了，这里先记录\n    var re_tag = /<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s\\/>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'<>])*)\\/?>))/g,\n        re_attr = /([\\w\\-:.]+)(?:(?:\\s*=\\s*(?:(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s>]+)))|(?=\\s|$))/g;\n\n    //ie下取得的html可能会有\\n存在，要去掉，在处理replace(/[\\t\\r\\n]*/g,'');代码高量的\\n不能去除\n    var allowEmptyTags = {\n        b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,\n        sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1\n    };\n    htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, 'g'), '');\n    if(!ignoreBlank){\n        htmlstr = htmlstr.replace(new RegExp('[\\\\r\\\\t\\\\n'+(ignoreBlank?'':' ')+']*<\\/?(\\\\w+)\\\\s*(?:[^>]*)>[\\\\r\\\\t\\\\n'+(ignoreBlank?'':' ')+']*','g'), function(a,b){\n            //br暂时单独处理\n            if(b && allowEmptyTags[b.toLowerCase()]){\n                return a.replace(/(^[\\n\\r]+)|([\\n\\r]+$)/g,'');\n            }\n            return a.replace(new RegExp('^[\\\\r\\\\n'+(ignoreBlank?'':' ')+']+'),'').replace(new RegExp('[\\\\r\\\\n'+(ignoreBlank?'':' ')+']+$'),'');\n        });\n    }\n\n    var notTransAttrs = {\n        'href':1,\n        'src':1\n    };\n\n    var uNode = UM.uNode,\n        needParentNode = {\n            'td':'tr',\n            'tr':['tbody','thead','tfoot'],\n            'tbody':'table',\n            'th':'tr',\n            'thead':'table',\n            'tfoot':'table',\n            'caption':'table',\n            'li':['ul', 'ol'],\n            'dt':'dl',\n            'dd':'dl',\n            'option':'select'\n        },\n        needChild = {\n            'ol':'li',\n            'ul':'li'\n        };\n\n    function text(parent, data) {\n\n        if(needChild[parent.tagName]){\n            var tmpNode = uNode.createElement(needChild[parent.tagName]);\n            parent.appendChild(tmpNode);\n            tmpNode.appendChild(uNode.createText(data));\n            parent = tmpNode;\n        }else{\n\n            parent.appendChild(uNode.createText(data));\n        }\n    }\n\n    function element(parent, tagName, htmlattr) {\n        var needParentTag;\n        if (needParentTag = needParentNode[tagName]) {\n            var tmpParent = parent,hasParent;\n            while(tmpParent.type != 'root'){\n                if(utils.isArray(needParentTag) ? utils.indexOf(needParentTag, tmpParent.tagName) != -1 : needParentTag == tmpParent.tagName){\n                    parent = tmpParent;\n                    hasParent = true;\n                    break;\n                }\n                tmpParent = tmpParent.parentNode;\n            }\n            if(!hasParent){\n                parent = element(parent, utils.isArray(needParentTag) ? needParentTag[0] : needParentTag)\n            }\n        }\n        //按dtd处理嵌套\n//        if(parent.type != 'root' && !dtd[parent.tagName][tagName])\n//            parent = parent.parentNode;\n        var elm = new uNode({\n            parentNode:parent,\n            type:'element',\n            tagName:tagName.toLowerCase(),\n            //是自闭合的处理一下\n            children:dtd.$empty[tagName] ? null : []\n        });\n        //如果属性存在，处理属性\n        if (htmlattr) {\n            var attrs = {}, match;\n            while (match = re_attr.exec(htmlattr)) {\n                attrs[match[1].toLowerCase()] = notTransAttrs[match[1].toLowerCase()] ? (match[2] || match[3] || match[4]) : utils.unhtml(match[2] || match[3] || match[4])\n            }\n            elm.attrs = attrs;\n        }\n\n        parent.children.push(elm);\n        //如果是自闭合节点返回父亲节点\n        return  dtd.$empty[tagName] ? parent : elm\n    }\n\n    function comment(parent, data) {\n        parent.children.push(new uNode({\n            type:'comment',\n            data:data,\n            parentNode:parent\n        }));\n    }\n\n    var match, currentIndex = 0, nextIndex = 0;\n    //设置根节点\n    var root = new uNode({\n        type:'root',\n        children:[]\n    });\n    var currentParent = root;\n\n    while (match = re_tag.exec(htmlstr)) {\n        currentIndex = match.index;\n        try{\n            if (currentIndex > nextIndex) {\n                //text node\n                text(currentParent, htmlstr.slice(nextIndex, currentIndex));\n            }\n            if (match[3]) {\n\n                if(dtd.$cdata[currentParent.tagName]){\n                    text(currentParent, match[0]);\n                }else{\n                    //start tag\n                    currentParent = element(currentParent, match[3].toLowerCase(), match[4]);\n                }\n\n\n            } else if (match[1]) {\n                if(currentParent.type != 'root'){\n                    if(dtd.$cdata[currentParent.tagName] && !dtd.$cdata[match[1]]){\n                        text(currentParent, match[0]);\n                    }else{\n                        var tmpParent = currentParent;\n                        while(currentParent.type == 'element' && currentParent.tagName != match[1].toLowerCase()){\n                            currentParent = currentParent.parentNode;\n                            if(currentParent.type == 'root'){\n                                currentParent = tmpParent;\n                                throw 'break'\n                            }\n                        }\n                        //end tag\n                        currentParent = currentParent.parentNode;\n                    }\n\n                }\n\n            } else if (match[2]) {\n                //comment\n                comment(currentParent, match[2])\n            }\n        }catch(e){}\n\n        nextIndex = re_tag.lastIndex;\n\n    }\n    //如果结束是文本，就有可能丢掉，所以这里手动判断一下\n    //例如 <li>sdfsdfsdf<li>sdfsdfsdfsdf\n    if (nextIndex < htmlstr.length) {\n        text(currentParent, htmlstr.slice(nextIndex));\n    }\n    return root;\n};\n/**\n * @file\n * @name UM.filterNode\n * @short filterNode\n * @desc 根据给定的规则过滤节点\n * @import editor.js,core/utils.js\n * @anthor zhanyi\n */\nvar filterNode = UM.filterNode = function () {\n    function filterNode(node,rules){\n        switch (node.type) {\n            case 'text':\n                break;\n            case 'element':\n                var val;\n                if(val = rules[node.tagName]){\n                    if(val === '-'){\n                        node.parentNode.removeChild(node)\n                    }else if(utils.isFunction(val)){\n                        var parentNode = node.parentNode,\n                            index = node.getIndex();\n                        val(node);\n                        if(node.parentNode){\n                            if(node.children){\n                                for(var i = 0,ci;ci=node.children[i];){\n                                    filterNode(ci,rules);\n                                    if(ci.parentNode){\n                                        i++;\n                                    }\n                                }\n                            }\n                        }else{\n                            for(var i = index,ci;ci=parentNode.children[i];){\n                                filterNode(ci,rules);\n                                if(ci.parentNode){\n                                    i++;\n                                }\n                            }\n                        }\n\n\n                    }else{\n                        var attrs = val['$'];\n                        if(attrs && node.attrs){\n                            var tmpAttrs = {},tmpVal;\n                            for(var a in attrs){\n                                tmpVal = node.getAttr(a);\n                                //todo 只先对style单独处理\n                                if(a == 'style' && utils.isArray(attrs[a])){\n                                    var tmpCssStyle = [];\n                                    utils.each(attrs[a],function(v){\n                                        var tmp;\n                                        if(tmp = node.getStyle(v)){\n                                            tmpCssStyle.push(v + ':' + tmp);\n                                        }\n                                    });\n                                    tmpVal = tmpCssStyle.join(';')\n                                }\n                                if(tmpVal){\n                                    tmpAttrs[a] = tmpVal;\n                                }\n\n                            }\n                            node.attrs = tmpAttrs;\n                        }\n                        if(node.children){\n                            for(var i = 0,ci;ci=node.children[i];){\n                                filterNode(ci,rules);\n                                if(ci.parentNode){\n                                    i++;\n                                }\n                            }\n                        }\n                    }\n                }else{\n                    //如果不在名单里扣出子节点并删除该节点,cdata除外\n                    if(dtd.$cdata[node.tagName]){\n                        node.parentNode.removeChild(node)\n                    }else{\n                        var parentNode = node.parentNode,\n                            index = node.getIndex();\n                        node.parentNode.removeChild(node,true);\n                        for(var i = index,ci;ci=parentNode.children[i];){\n                            filterNode(ci,rules);\n                            if(ci.parentNode){\n                                i++;\n                            }\n                        }\n                    }\n                }\n                break;\n            case 'comment':\n                node.parentNode.removeChild(node)\n        }\n\n    }\n    return function(root,rules){\n        if(utils.isEmptyObject(rules)){\n            return root;\n        }\n        var val;\n        if(val = rules['-']){\n            utils.each(val.split(' '),function(k){\n                rules[k] = '-'\n            })\n        }\n        for(var i= 0,ci;ci=root.children[i];){\n            filterNode(ci,rules);\n            if(ci.parentNode){\n                i++;\n            }\n        }\n        return root;\n    }\n}();\n///import core\n/**\n * @description 插入内容\n * @name baidu.editor.execCommand\n * @param   {String}   cmdName     inserthtml插入内容的命令\n * @param   {String}   html                要插入的内容\n * @author zhanyi\n */\nUM.commands['inserthtml'] = {\n    execCommand: function (command,html,notNeedFilter){\n        var me = this,\n            range,\n            div;\n        if(!html){\n            return;\n        }\n        if(me.fireEvent('beforeinserthtml',html) === true){\n            return;\n        }\n        range = me.selection.getRange();\n        div = range.document.createElement( 'div' );\n        div.style.display = 'inline';\n\n        if (!notNeedFilter) {\n            var root = UM.htmlparser(html);\n            //如果给了过滤规则就先进行过滤\n            if(me.options.filterRules){\n                UM.filterNode(root,me.options.filterRules);\n            }\n            //执行默认的处理\n            me.filterInputRule(root);\n            html = root.toHtml()\n        }\n        div.innerHTML = utils.trim( html );\n\n        if ( !range.collapsed ) {\n            var tmpNode = range.startContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                range.setStartBefore(tmpNode)\n            }\n            tmpNode = range.endContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                range.setEndAfter(tmpNode)\n            }\n            range.txtToElmBoundary();\n            //结束边界可能放到了br的前边，要把br包含进来\n            // x[xxx]<br/>\n            if(range.endContainer && range.endContainer.nodeType == 1){\n                tmpNode = range.endContainer.childNodes[range.endOffset];\n                if(tmpNode && domUtils.isBr(tmpNode)){\n                    range.setEndAfter(tmpNode);\n                }\n            }\n            if(range.startOffset == 0){\n                tmpNode = range.startContainer;\n                if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){\n                    tmpNode = range.endContainer;\n                    if(range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){\n                        me.body.innerHTML = '<p>'+(browser.ie ? '' : '<br/>')+'</p>';\n                        range.setStart(me.body.firstChild,0).collapse(true)\n\n                    }\n                }\n            }\n            !range.collapsed && range.deleteContents();\n            if(range.startContainer.nodeType == 1){\n                var child = range.startContainer.childNodes[range.startOffset],pre;\n                if(child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)){\n                    range.setEnd(pre,pre.childNodes.length).collapse();\n                    while(child.firstChild){\n                        pre.appendChild(child.firstChild);\n                    }\n                    domUtils.remove(child);\n                }\n            }\n\n        }\n\n\n        var child,parent,pre,tmp,hadBreak = 0, nextNode;\n        //如果当前位置选中了fillchar要干掉，要不会产生空行\n        if(range.inFillChar()){\n            child = range.startContainer;\n            if(domUtils.isFillChar(child)){\n                range.setStartBefore(child).collapse(true);\n                domUtils.remove(child);\n            }else if(domUtils.isFillChar(child,true)){\n                child.nodeValue = child.nodeValue.replace(fillCharReg,'');\n                range.startOffset--;\n                range.collapsed && range.collapse(true)\n            }\n        }\n        while ( child = div.firstChild ) {\n            if(hadBreak){\n                var p = me.document.createElement('p');\n                while(child && (child.nodeType == 3 || !dtd.$block[child.tagName])){\n                    nextNode = child.nextSibling;\n                    p.appendChild(child);\n                    child = nextNode;\n                }\n                if(p.firstChild){\n\n                    child = p\n                }\n            }\n            range.insertNode( child );\n            nextNode = child.nextSibling;\n            if ( !hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm( child ) ){\n\n                parent = domUtils.findParent( child,function ( node ){ return domUtils.isBlockElm( node ); } );\n                if ( parent && parent.tagName.toLowerCase() != 'body' && !(dtd[parent.tagName][child.nodeName] && child.parentNode === parent)){\n                    if(!dtd[parent.tagName][child.nodeName]){\n                        pre = parent;\n                    }else{\n                        tmp = child.parentNode;\n                        while (tmp !== parent){\n                            pre = tmp;\n                            tmp = tmp.parentNode;\n\n                        }\n                    }\n\n\n                    domUtils.breakParent( child, pre || tmp );\n                    //去掉break后前一个多余的节点  <p>|<[p> ==> <p></p><div></div><p>|</p>\n                    var pre = child.previousSibling;\n                    domUtils.trimWhiteTextNode(pre);\n                    if(!pre.childNodes.length){\n                        domUtils.remove(pre);\n                    }\n                    //trace:2012,在非ie的情况，切开后剩下的节点有可能不能点入光标添加br占位\n\n                    if(!browser.ie &&\n                        (next = child.nextSibling) &&\n                        domUtils.isBlockElm(next) &&\n                        next.lastChild &&\n                        !domUtils.isBr(next.lastChild)){\n                        next.appendChild(me.document.createElement('br'));\n                    }\n                    hadBreak = 1;\n                }\n            }\n            var next = child.nextSibling;\n            if(!div.firstChild && next && domUtils.isBlockElm(next)){\n\n                range.setStart(next,0).collapse(true);\n                break;\n            }\n            range.setEndAfter( child ).collapse();\n\n        }\n\n        child = range.startContainer;\n\n        if(nextNode && domUtils.isBr(nextNode)){\n            domUtils.remove(nextNode)\n        }\n        //用chrome可能有空白展位符\n        if(domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)){\n            if(nextNode = child.nextSibling){\n                domUtils.remove(child);\n                if(nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]){\n\n                    range.setStart(nextNode,0).collapse(true).shrinkBoundary()\n                }\n            }else{\n\n                try{\n                    child.innerHTML = browser.ie ? domUtils.fillChar : '<br/>';\n                }catch(e){\n                    range.setStartBefore(child);\n                    domUtils.remove(child)\n                }\n\n            }\n\n        }\n        //加上true因为在删除表情等时会删两次，第一次是删的fillData\n        try{\n            if(browser.ie9below && range.startContainer.nodeType == 1 && !range.startContainer.childNodes[range.startOffset]){\n                var start = range.startContainer,pre = start.childNodes[range.startOffset-1];\n                if(pre && pre.nodeType == 1 && dtd.$empty[pre.tagName]){\n                    var txt = this.document.createTextNode(domUtils.fillChar);\n                    range.insertNode(txt).setStart(txt,0).collapse(true);\n                }\n            }\n            setTimeout(function(){\n                range.select(true);\n            })\n\n        }catch(e){}\n\n\n        setTimeout(function(){\n            range = me.selection.getRange();\n            range.scrollIntoView();\n            me.fireEvent('afterinserthtml');\n        },200);\n    }\n};\n\n///import core\n///import plugins\\inserthtml.js\n///commands 插入图片，操作图片的对齐方式\n///commandsName  InsertImage,ImageNone,ImageLeft,ImageRight,ImageCenter\n///commandsTitle  图片,默认,居左,居右,居中\n///commandsDialog  dialogs\\image\n/**\n * Created by .\n * User: zhanyi\n * for image\n */\nUM.commands['insertimage'] = {\n    execCommand:function (cmd, opt) {\n        opt = utils.isArray(opt) ? opt : [opt];\n        if (!opt.length) {\n            return;\n        }\n        var me = this;\n        var html = [], str = '', ci;\n        ci = opt[0];\n        if (opt.length == 1) {\n            str = '<img src=\"' + ci.src + '\" ' + (ci._src ? ' _src=\"' + ci._src + '\" ' : '') +\n                (ci.width ? 'width=\"' + ci.width + '\" ' : '') +\n                (ci.height ? ' height=\"' + ci.height + '\" ' : '') +\n                (ci['floatStyle'] == 'left' || ci['floatStyle'] == 'right' ? ' style=\"float:' + ci['floatStyle'] + ';\"' : '') +\n                (ci.title && ci.title != \"\" ? ' title=\"' + ci.title + '\"' : '') +\n                (ci.border && ci.border != \"0\" ? ' border=\"' + ci.border + '\"' : '') +\n                (ci.alt && ci.alt != \"\" ? ' alt=\"' + ci.alt + '\"' : '') +\n                (ci.hspace && ci.hspace != \"0\" ? ' hspace = \"' + ci.hspace + '\"' : '') +\n                (ci.vspace && ci.vspace != \"0\" ? ' vspace = \"' + ci.vspace + '\"' : '') + '/>';\n            if (ci['floatStyle'] == 'center') {\n                str = '<p style=\"text-align: center\">' + str + '</p>';\n            }\n            html.push(str);\n\n        } else {\n            for (var i = 0; ci = opt[i++];) {\n                str = '<p ' + (ci['floatStyle'] == 'center' ? 'style=\"text-align: center\" ' : '') + '><img src=\"' + ci.src + '\" ' +\n                    (ci.width ? 'width=\"' + ci.width + '\" ' : '') + (ci._src ? ' _src=\"' + ci._src + '\" ' : '') +\n                    (ci.height ? ' height=\"' + ci.height + '\" ' : '') +\n                    ' style=\"' + (ci['floatStyle'] && ci['floatStyle'] != 'center' ? 'float:' + ci['floatStyle'] + ';' : '') +\n                    (ci.border || '') + '\" ' +\n                    (ci.title ? ' title=\"' + ci.title + '\"' : '') + ' /></p>';\n                html.push(str);\n            }\n        }\n\n        me.execCommand('insertHtml', html.join(''), true);\n    }\n};\n///import core\n///commands 段落格式,居左,居右,居中,两端对齐\n///commandsName  JustifyLeft,JustifyCenter,JustifyRight,JustifyJustify\n///commandsTitle  居左对齐,居中对齐,居右对齐,两端对齐\n/**\n * @description 居左右中\n * @name UM.execCommand\n * @param   {String}   cmdName     justify执行对齐方式的命令\n * @param   {String}   align               对齐方式：left居左，right居右，center居中，justify两端对齐\n * @author zhanyi\n */\nUM.plugins['justify']=function(){\n    var me = this;\n    $.each('justifyleft justifyright justifycenter justifyfull'.split(' '),function(i,cmdName){\n        me.commands[cmdName] = {\n            execCommand:function (cmdName) {\n                return this.document.execCommand(cmdName);\n            },\n            queryCommandValue: function (cmdName) {\n                var val = this.document.queryCommandValue(cmdName);\n                return   val === true || val === 'true' ? cmdName.replace(/justify/,'') : '';\n            },\n            queryCommandState: function (cmdName) {\n                return this.document.queryCommandState(cmdName) ? 1 : 0\n            }\n        };\n    })\n};\n\n///import core\n///import plugins\\removeformat.js\n///commands 字体颜色,背景色,字号,字体,下划线,删除线\n///commandsName  ForeColor,BackColor,FontSize,FontFamily,Underline,StrikeThrough\n///commandsTitle  字体颜色,背景色,字号,字体,下划线,删除线\n/**\n * @description 字体\n * @name UM.execCommand\n * @param {String}     cmdName    执行的功能名称\n * @param {String}    value             传入的值\n */\nUM.plugins['font'] = function () {\n    var me = this,\n        fonts = {\n            'forecolor': 'forecolor',\n            'backcolor': 'backcolor',\n            'fontsize': 'fontsize',\n            'fontfamily': 'fontname'\n        },\n        cmdNameToStyle = {\n            'forecolor': 'color',\n            'backcolor': 'background-color',\n            'fontsize': 'font-size',\n            'fontfamily': 'font-family'\n        },\n        cmdNameToAttr = {\n            'forecolor': 'color',\n            'fontsize': 'size',\n            'fontfamily': 'face'\n        };\n    me.setOpt({\n        'fontfamily': [\n            { name: 'songti', val: '宋体,SimSun'},\n            { name: 'yahei', val: '微软雅黑,Microsoft YaHei'},\n            { name: 'kaiti', val: '楷体,楷体_GB2312, SimKai'},\n            { name: 'heiti', val: '黑体, SimHei'},\n            { name: 'lishu', val: '隶书, SimLi'},\n            { name: 'andaleMono', val: 'andale mono'},\n            { name: 'arial', val: 'arial, helvetica,sans-serif'},\n            { name: 'arialBlack', val: 'arial black,avant garde'},\n            { name: 'comicSansMs', val: 'comic sans ms'},\n            { name: 'impact', val: 'impact,chicago'},\n            { name: 'timesNewRoman', val: 'times new roman'},\n            { name: 'sans-serif',val:'sans-serif'}\n        ],\n        'fontsize': [10, 12,  16, 18,24, 32,48]\n    });\n\n    me.addOutputRule(function (root) {\n        utils.each(root.getNodesByTagName('font'), function (node) {\n            if (node.tagName == 'font') {\n                var cssStyle = [];\n                for (var p in node.attrs) {\n                    switch (p) {\n                        case 'size':\n                            var val =  node.attrs[p];\n                            $.each({\n                                '10':'1',\n                                '12':'2',\n                                '16':'3',\n                                '18':'4',\n                                '24':'5',\n                                '32':'6',\n                                '48':'7'\n                            },function(k,v){\n                                if(v == val){\n                                    val = k;\n                                    return false;\n                                }\n                            });\n                            cssStyle.push('font-size:' + val + 'px');\n                            break;\n                        case 'color':\n                            cssStyle.push('color:' + node.attrs[p]);\n                            break;\n                        case 'face':\n                            cssStyle.push('font-family:' + node.attrs[p]);\n                            break;\n                        case 'style':\n                            cssStyle.push(node.attrs[p]);\n                    }\n                }\n                node.attrs = {\n                    'style': cssStyle.join(';')\n                };\n            }\n            node.tagName = 'span';\n            if(node.parentNode.tagName == 'span' && node.parentNode.children.length == 1){\n                $.each(node.attrs,function(k,v){\n\n                    node.parentNode.attrs[k] = k == 'style' ? node.parentNode.attrs[k] + v : v;\n                })\n                node.parentNode.removeChild(node,true);\n            }\n        });\n    });\n    for(var p in fonts){\n        (function (cmd) {\n            me.commands[cmd] = {\n                execCommand: function (cmdName,value) {\n                    if(value == 'transparent'){\n                        return;\n                    }\n                    var rng = this.selection.getRange();\n                    if(rng.collapsed){\n                        var span = $('<span></span>').css(cmdNameToStyle[cmdName],value)[0];\n                        rng.insertNode(span).setStart(span,0).setCursor();\n                    }else{\n                        if(cmdName == 'fontsize'){\n                            value  = {\n                                '10':'1',\n                                '12':'2',\n                                '16':'3',\n                                '18':'4',\n                                '24':'5',\n                                '32':'6',\n                                '48':'7'\n                            }[(value+\"\").replace(/px/,'')]\n                        }\n                        this.document.execCommand(fonts[cmdName],false, value);\n                        if(browser.gecko){\n                            $.each(this.$body.find('a'),function(i,a){\n                                var parent = a.parentNode;\n                                if(parent.lastChild === parent.firstChild && /FONT|SPAN/.test(parent.tagName)){\n                                    var cloneNode = parent.cloneNode(false);\n                                    cloneNode.innerHTML = a.innerHTML;\n                                    $(a).html('').append(cloneNode).insertBefore(parent);\n\n                                    $(parent).remove();\n                                }\n                            });\n                        }\n                        if(!browser.ie){\n                            var nativeRange = this.selection.getNative().getRangeAt(0);\n                            var common = nativeRange.commonAncestorContainer;\n                            var rng = this.selection.getRange(),\n                                bk = rng.createBookmark(true);\n\n                            $(common).find('a').each(function(i,n){\n                                var parent = n.parentNode;\n                                if(parent.nodeName == 'FONT'){\n                                    var font = parent.cloneNode(false);\n                                    font.innerHTML = n.innerHTML;\n                                    $(n).html('').append(font);\n                                }\n                            });\n                            rng.moveToBookmark(bk).select()\n                        }\n                        return true\n                    }\n\n                },\n                queryCommandValue: function (cmdName) {\n                    var start = me.selection.getStart();\n                    var val = $(start).css(cmdNameToStyle[cmdName]);\n                    if(val === undefined){\n                        val = $(start).attr(cmdNameToAttr[cmdName])\n                    }\n                    return val ? utils.fixColor(cmdName,val).replace(/px/,'') : '';\n                },\n                queryCommandState: function (cmdName) {\n                    return this.queryCommandValue(cmdName)\n                }\n            };\n        })(p);\n    }\n};\n///import core\n///commands 超链接,取消链接\n///commandsName  Link,Unlink\n///commandsTitle  超链接,取消链接\n///commandsDialog  dialogs\\link\n/**\n * 超链接\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     link插入超链接\n * @param   {Object}  options         url地址，title标题，target是否打开新页\n * @author zhanyi\n */\n/**\n * 取消链接\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     unlink取消链接\n * @author zhanyi\n */\n\nUM.plugins['link'] = function(){\n    var me = this;\n\n    me.setOpt('autourldetectinie',false);\n    //在ie下禁用autolink\n    if(browser.ie && this.options.autourldetectinie === false){\n        this.addListener('keyup',function(cmd,evt){\n            var me = this,keyCode = evt.keyCode;\n            if(keyCode == 13 || keyCode == 32){\n                var rng = me.selection.getRange();\n                var start = rng.startContainer;\n                if(keyCode == 13){\n                    if(start.nodeName == 'P'){\n                        var pre = start.previousSibling;\n                        if(pre && pre.nodeType == 1){\n                            var pre = pre.lastChild;\n                            if(pre && pre.nodeName == 'A' && !pre.getAttribute('_href')){\n                                domUtils.remove(pre,true);\n                            }\n                        }\n                    }\n                }else if(keyCode == 32){\n                   if(start.nodeType == 3 && /^\\s$/.test(start.nodeValue)){\n                       start = start.previousSibling;\n                       if(start && start.nodeName == 'A' && !start.getAttribute('_href')){\n                           domUtils.remove(start,true);\n                       }\n                   }\n                }\n\n            }\n\n\n        });\n    }\n\n    this.addOutputRule(function(root){\n        $.each(root.getNodesByTagName('a'),function(i,a){\n            var _href = utils.html(a.getAttr('_href'));\n            if(!/^(ftp|https?|\\/|file)/.test(_href)){\n                _href = 'http://' + _href;\n            }\n            a.setAttr('href', _href);\n            a.setAttr('_href')\n            if(a.getAttr('title')==''){\n                a.setAttr('title')\n            }\n        })\n    });\n    this.addInputRule(function(root){\n        $.each(root.getNodesByTagName('a'),function(i,a){\n            a.setAttr('_href', utils.html(a.getAttr('href')));\n        })\n    });\n    me.commands['link'] = {\n        execCommand : function( cmdName, opt ) {\n\n            var me = this;\n            var rng = me.selection.getRange();\n            if(rng.collapsed){\n                var start = rng.startContainer;\n                if(start = domUtils.findParentByTagName(start,'a',true)){\n                    $(start).attr(opt);\n                    rng.selectNode(start).select()\n                }else{\n                    rng.insertNode($('<a>' +opt.href+'</a>').attr(opt)[0]).select()\n\n                }\n\n            }else{\n                me.document.execCommand('createlink',false,'_umeditor_link');\n                utils.each(domUtils.getElementsByTagName(me.body,'a',function(n){\n\n                    return n.getAttribute('href') == '_umeditor_link'\n                }),function(l){\n                    if($(l).text() == '_umeditor_link'){\n                        $(l).text(opt.href);\n                    }\n                    domUtils.setAttributes(l,opt);\n                    rng.selectNode(l).select()\n                })\n            }\n\n        },\n        queryCommandState:function(){\n            return this.queryCommandValue('link') ? 1 : 0;\n        },\n        queryCommandValue:function(){\n            var path = this.selection.getStartElementPath();\n            var result;\n            $.each(path,function(i,n){\n                if(n.nodeName == \"A\"){\n                    result = n;\n                    return false;\n                }\n            })\n            return result;\n        }\n    };\n    me.commands['unlink'] = {\n        execCommand : function() {\n            this.document.execCommand('unlink');\n        }\n    };\n};\n///import core\n///commands 打印\n///commandsName  Print\n///commandsTitle  打印\n/**\n * @description 打印\n * @name baidu.editor.execCommand\n * @param   {String}   cmdName     print打印编辑器内容\n * @author zhanyi\n */\nUM.commands['print'] = {\n    execCommand : function(){\n        var me = this,\n            id = 'editor_print_' + +new Date();\n\n        $('<iframe src=\"\" id=\"' + id + '\" name=\"' + id + '\" frameborder=\"0\"></iframe>').attr('id', id)\n            .css({\n                width:'0px',\n                height:'0px',\n                'overflow':'hidden',\n                'float':'left',\n                'position':'absolute',\n                top:'-10000px',\n                left:'-10000px'\n            })\n            .appendTo(me.$container.find('.edui-dialog-container'));\n\n        var w = window.open('', id, ''),\n            d = w.document;\n        d.open();\n        d.write('<html><head></head><body><div>'+this.getContent(null,null,true)+'</div><script>' +\n            \"setTimeout(function(){\" +\n            \"window.print();\" +\n            \"setTimeout(function(){\" +\n            \"window.parent.$('#\" + id + \"').remove();\" +\n            \"},100);\" +\n            \"},200);\" +\n            '</script></body></html>');\n        d.close();\n    },\n    notNeedUndo : 1\n};\n///import core\n///commands 格式\n///commandsName  Paragraph\n///commandsTitle  段落格式\n/**\n * 段落样式\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     paragraph插入段落执行命令\n * @param   {String}   style               标签值为：'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'\n * @param   {String}   attrs               标签的属性\n * @author zhanyi\n */\nUM.plugins['paragraph'] = function() {\n    var me = this;\n    me.setOpt('paragraph',{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''});\n    me.commands['paragraph'] = {\n        execCommand : function( cmdName, style ) {\n            return this.document.execCommand('formatBlock',false,'<' + style + '>');\n        },\n        queryCommandValue : function() {\n            try{\n                var  val = this.document.queryCommandValue('formatBlock')\n            }catch(e){\n            }\n            return val ;\n        }\n    };\n};\n\n///import core\n///import plugins\\inserthtml.js\n///commands 分割线\n///commandsName  Horizontal\n///commandsTitle  分隔线\n/**\n * 分割线\n * @function\n * @name UM.execCommand\n * @param {String}     cmdName    horizontal插入分割线\n */\nUM.plugins['horizontal'] = function(){\n    var me = this;\n    me.commands['horizontal'] = {\n        execCommand : function(  ) {\n            this.document.execCommand('insertHorizontalRule');\n            var rng = me.selection.getRange().txtToElmBoundary(true),\n                start = rng.startContainer;\n            if(domUtils.isBody(rng.startContainer)){\n                var next = rng.startContainer.childNodes[rng.startOffset];\n                if(!next){\n                    next = $('<p></p>').appendTo(rng.startContainer).html(browser.ie ? '&nbsp;' : '<br/>')[0]\n                }\n                rng.setStart(next,0).setCursor()\n            }else{\n\n                while(dtd.$inline[start.tagName] && start.lastChild === start.firstChild){\n\n                    var parent = start.parentNode;\n                    parent.appendChild(start.firstChild);\n                    parent.removeChild(start);\n                    start = parent;\n                }\n                while(dtd.$inline[start.tagName]){\n                    start = start.parentNode;\n                }\n                if(start.childNodes.length == 1 && start.lastChild.nodeName == 'HR'){\n                    var hr = start.lastChild;\n                    $(hr).insertBefore(start);\n                    rng.setStart(start,0).setCursor();\n                }else{\n                    hr = $('hr',start)[0];\n                    domUtils.breakParent(hr,start);\n                    var pre = hr.previousSibling;\n                    if(pre && domUtils.isEmptyBlock(pre)){\n                        $(pre).remove()\n                    }\n                    rng.setStart(hr.nextSibling,0).setCursor();\n                }\n\n            }\n        }\n    };\n\n};\n\n\n///import core\n///commands 清空文档\n///commandsName  ClearDoc\n///commandsTitle  清空文档\n/**\n *\n * 清空文档\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     cleardoc清空文档\n */\n\nUM.commands['cleardoc'] = {\n    execCommand : function() {\n        var me = this,\n            range = me.selection.getRange();\n        me.body.innerHTML = \"<p>\"+(ie ? \"\" : \"<br/>\")+\"</p>\";\n        range.setStart(me.body.firstChild,0).setCursor(false,true);\n        setTimeout(function(){\n            me.fireEvent(\"clearDoc\");\n        },0);\n\n    }\n};\n\n\n///import core\n///commands 撤销和重做\n///commandsName  Undo,Redo\n///commandsTitle  撤销,重做\n/**\n * @description 回退\n * @author zhanyi\n */\n\nUM.plugins['undo'] = function () {\n    var saveSceneTimer;\n    var me = this,\n        maxUndoCount = me.options.maxUndoCount || 20,\n        maxInputCount = me.options.maxInputCount || 20,\n        fillchar = new RegExp(domUtils.fillChar + '|<\\/hr>', 'gi');// ie会产生多余的</hr>\n    var noNeedFillCharTags = {\n        ol:1,ul:1,table:1,tbody:1,tr:1,body:1\n    };\n    var orgState = me.options.autoClearEmptyNode;\n    function compareAddr(indexA, indexB) {\n        if (indexA.length != indexB.length)\n            return 0;\n        for (var i = 0, l = indexA.length; i < l; i++) {\n            if (indexA[i] != indexB[i])\n                return 0\n        }\n        return 1;\n    }\n\n    function compareRangeAddress(rngAddrA, rngAddrB) {\n        if (rngAddrA.collapsed != rngAddrB.collapsed) {\n            return 0;\n        }\n        if (!compareAddr(rngAddrA.startAddress, rngAddrB.startAddress) || !compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)) {\n            return 0;\n        }\n        return 1;\n    }\n\n    function UndoManager() {\n        this.list = [];\n        this.index = 0;\n        this.hasUndo = false;\n        this.hasRedo = false;\n        this.undo = function () {\n            if (this.hasUndo) {\n                if (!this.list[this.index - 1] && this.list.length == 1) {\n                    this.reset();\n                    return;\n                }\n                while (this.list[this.index].content == this.list[this.index - 1].content) {\n                    this.index--;\n                    if (this.index == 0) {\n                        return this.restore(0);\n                    }\n                }\n                this.restore(--this.index);\n            }\n        };\n        this.redo = function () {\n            if (this.hasRedo) {\n                while (this.list[this.index].content == this.list[this.index + 1].content) {\n                    this.index++;\n                    if (this.index == this.list.length - 1) {\n                        return this.restore(this.index);\n                    }\n                }\n                this.restore(++this.index);\n            }\n        };\n\n        this.restore = function () {\n            var me = this.editor;\n            var scene = this.list[this.index];\n            var root = UM.htmlparser(scene.content.replace(fillchar, ''));\n            me.options.autoClearEmptyNode = false;\n            me.filterInputRule(root,true);\n            me.options.autoClearEmptyNode = orgState;\n            //trace:873\n            //去掉展位符\n            me.body.innerHTML = root.toHtml();\n            me.fireEvent('afterscencerestore');\n            //处理undo后空格不展位的问题\n            if (browser.ie) {\n                utils.each(domUtils.getElementsByTagName(me.document,'td th caption p'),function(node){\n                    if(domUtils.isEmptyNode(node)){\n                        domUtils.fillNode(me.document, node);\n                    }\n                })\n            }\n\n            try{\n                var rng = new dom.Range(me.document,me.body).moveToAddress(scene.address);\n                if(browser.ie && rng.collapsed && rng.startContainer.nodeType == 1){\n                    var tmpNode = rng.startContainer.childNodes[rng.startOffset];\n                    if( !tmpNode || tmpNode.nodeType == 1 && dtd.$empty[tmpNode]){\n                        rng.insertNode(me.document.createTextNode(' ')).collapse(true);\n                    }\n                }\n                rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]);\n            }catch(e){}\n\n            this.update();\n            this.clearKey();\n            //不能把自己reset了\n            me.fireEvent('reset', true);\n        };\n\n        this.getScene = function () {\n            var me = this.editor;\n            var rng = me.selection.getRange(),\n                rngAddress = rng.createAddress(false,true);\n            me.fireEvent('beforegetscene');\n            var root = UM.htmlparser(me.body.innerHTML,true);\n            me.options.autoClearEmptyNode = false;\n            me.filterOutputRule(root,true);\n            me.options.autoClearEmptyNode = orgState;\n            var cont = root.toHtml();\n            browser.ie && (cont = cont.replace(/>&nbsp;</g, '><').replace(/\\s*</g, '<').replace(/>\\s*/g, '>'));\n            me.fireEvent('aftergetscene');\n            return {\n                address:rngAddress,\n                content:cont\n            }\n        };\n        this.save = function (notCompareRange,notSetCursor) {\n            clearTimeout(saveSceneTimer);\n            var currentScene = this.getScene(notSetCursor),\n                lastScene = this.list[this.index];\n            //内容相同位置相同不存\n            if (lastScene && lastScene.content == currentScene.content &&\n                ( notCompareRange ? 1 : compareRangeAddress(lastScene.address, currentScene.address) )\n                ) {\n                return;\n            }\n            this.list = this.list.slice(0, this.index + 1);\n            this.list.push(currentScene);\n            //如果大于最大数量了，就把最前的剔除\n            if (this.list.length > maxUndoCount) {\n                this.list.shift();\n            }\n            this.index = this.list.length - 1;\n            this.clearKey();\n            //跟新undo/redo状态\n            this.update();\n\n        };\n        this.update = function () {\n            this.hasRedo = !!this.list[this.index + 1];\n            this.hasUndo = !!this.list[this.index - 1];\n        };\n        this.reset = function () {\n            this.list = [];\n            this.index = 0;\n            this.hasUndo = false;\n            this.hasRedo = false;\n            this.clearKey();\n        };\n        this.clearKey = function () {\n            keycont = 0;\n            lastKeyCode = null;\n        };\n    }\n\n    me.undoManger = new UndoManager();\n    me.undoManger.editor = me;\n    function saveScene() {\n        this.undoManger.save();\n    }\n\n    me.addListener('saveScene', function () {\n        var args = Array.prototype.splice.call(arguments,1);\n        this.undoManger.save.apply(this.undoManger,args);\n    });\n\n    me.addListener('beforeexeccommand', saveScene);\n    me.addListener('afterexeccommand', saveScene);\n\n    me.addListener('reset', function (type, exclude) {\n        if (!exclude) {\n            this.undoManger.reset();\n        }\n    });\n    me.commands['redo'] = me.commands['undo'] = {\n        execCommand:function (cmdName) {\n            this.undoManger[cmdName]();\n        },\n        queryCommandState:function (cmdName) {\n            return this.undoManger['has' + (cmdName.toLowerCase() == 'undo' ? 'Undo' : 'Redo')] ? 0 : -1;\n        },\n        notNeedUndo:1\n    };\n\n    var keys = {\n            //  /*Backspace*/ 8:1, /*Delete*/ 46:1,\n            /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1,\n            37:1, 38:1, 39:1, 40:1\n\n        },\n        keycont = 0,\n        lastKeyCode;\n    //输入法状态下不计算字符数\n    var inputType = false;\n    me.addListener('ready', function () {\n        $(this.body).on('compositionstart', function () {\n            inputType = true;\n        }).on('compositionend', function () {\n            inputType = false;\n        })\n    });\n    //快捷键\n    me.addshortcutkey({\n        \"Undo\":\"ctrl+90\", //undo\n        \"Redo\":\"ctrl+89,shift+ctrl+z\" //redo\n\n    });\n    var isCollapsed = true;\n    me.addListener('keydown', function (type, evt) {\n\n        var me = this;\n        var keyCode = evt.keyCode || evt.which;\n        if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {\n            if (inputType)\n                return;\n\n            if(!me.selection.getRange().collapsed){\n                me.undoManger.save(false,true);\n                isCollapsed = false;\n                return;\n            }\n            if (me.undoManger.list.length == 0) {\n                me.undoManger.save(true);\n            }\n            clearTimeout(saveSceneTimer);\n            function save(cont){\n\n                if (cont.selection.getRange().collapsed)\n                    cont.fireEvent('contentchange');\n                cont.undoManger.save(false,true);\n                cont.fireEvent('selectionchange');\n            }\n            saveSceneTimer = setTimeout(function(){\n                if(inputType){\n                    var interalTimer = setInterval(function(){\n                        if(!inputType){\n                            save(me);\n                            clearInterval(interalTimer)\n                        }\n                    },300)\n                    return;\n                }\n                save(me);\n            },200);\n\n            lastKeyCode = keyCode;\n            keycont++;\n            if (keycont >= maxInputCount ) {\n                save(me)\n            }\n        }\n    });\n    me.addListener('keyup', function (type, evt) {\n        var keyCode = evt.keyCode || evt.which;\n        if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {\n            if (inputType)\n                return;\n            if(!isCollapsed){\n                this.undoManger.save(false,true);\n                isCollapsed = true;\n            }\n        }\n    });\n\n};\n\n///import core\n///import plugins/inserthtml.js\n///import plugins/undo.js\n///import plugins/serialize.js\n///commands 粘贴\n///commandsName  PastePlain\n///commandsTitle  纯文本粘贴模式\n/**\n * @description 粘贴\n * @author zhanyi\n */\nUM.plugins['paste'] = function () {\n    function getClipboardData(callback) {\n        var doc = this.document;\n        if (doc.getElementById('baidu_pastebin')) {\n            return;\n        }\n        var range = this.selection.getRange(),\n            bk = range.createBookmark(),\n        //创建剪贴的容器div\n            pastebin = doc.createElement('div');\n        pastebin.id = 'baidu_pastebin';\n        // Safari 要求div必须有内容，才能粘贴内容进来\n        browser.webkit && pastebin.appendChild(doc.createTextNode(domUtils.fillChar + domUtils.fillChar));\n        this.body.appendChild(pastebin);\n        //trace:717 隐藏的span不能得到top\n        //bk.start.innerHTML = '&nbsp;';\n        bk.start.style.display = '';\n\n        pastebin.style.cssText = \"position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:\" +\n        //要在现在光标平行的位置加入，否则会出现跳动的问题\n        $(bk.start).position().top  + 'px';\n\n        range.selectNodeContents(pastebin).select(true);\n\n        setTimeout(function () {\n            if (browser.webkit) {\n                for (var i = 0, pastebins = doc.querySelectorAll('#baidu_pastebin'), pi; pi = pastebins[i++];) {\n                    if (domUtils.isEmptyNode(pi)) {\n                        domUtils.remove(pi);\n                    } else {\n                        pastebin = pi;\n                        break;\n                    }\n                }\n            }\n            try {\n                pastebin.parentNode.removeChild(pastebin);\n            } catch (e) {\n            }\n            range.moveToBookmark(bk).select(true);\n            callback(pastebin);\n        }, 0);\n    }\n\n    var me = this;\n\n\n    function filter(div) {\n        var html;\n        if (div.firstChild) {\n            //去掉cut中添加的边界值\n            var nodes = domUtils.getElementsByTagName(div, 'span');\n            for (var i = 0, ni; ni = nodes[i++];) {\n                if (ni.id == '_baidu_cut_start' || ni.id == '_baidu_cut_end') {\n                    domUtils.remove(ni);\n                }\n            }\n\n            if (browser.webkit) {\n\n                var brs = div.querySelectorAll('div br');\n                for (var i = 0, bi; bi = brs[i++];) {\n                    var pN = bi.parentNode;\n                    if (pN.tagName == 'DIV' && pN.childNodes.length == 1) {\n                        pN.innerHTML = '<p><br/></p>';\n                        domUtils.remove(pN);\n                    }\n                }\n                var divs = div.querySelectorAll('#baidu_pastebin');\n                for (var i = 0, di; di = divs[i++];) {\n                    var tmpP = me.document.createElement('p');\n                    di.parentNode.insertBefore(tmpP, di);\n                    while (di.firstChild) {\n                        tmpP.appendChild(di.firstChild);\n                    }\n                    domUtils.remove(di);\n                }\n\n                var metas = div.querySelectorAll('meta');\n                for (var i = 0, ci; ci = metas[i++];) {\n                    domUtils.remove(ci);\n                }\n\n                var brs = div.querySelectorAll('br');\n                for (i = 0; ci = brs[i++];) {\n                    if (/^apple-/i.test(ci.className)) {\n                        domUtils.remove(ci);\n                    }\n                }\n            }\n            if (browser.gecko) {\n                var dirtyNodes = div.querySelectorAll('[_moz_dirty]');\n                for (i = 0; ci = dirtyNodes[i++];) {\n                    ci.removeAttribute('_moz_dirty');\n                }\n            }\n            if (!browser.ie) {\n                var spans = div.querySelectorAll('span.Apple-style-span');\n                for (var i = 0, ci; ci = spans[i++];) {\n                    domUtils.remove(ci, true);\n                }\n            }\n\n            //ie下使用innerHTML会产生多余的\\r\\n字符，也会产生&nbsp;这里过滤掉\n            html = div.innerHTML;//.replace(/>(?:(\\s|&nbsp;)*?)</g,'><');\n\n            //过滤word粘贴过来的冗余属性\n            html = UM.filterWord(html);\n            //取消了忽略空白的第二个参数，粘贴过来的有些是有空白的，会被套上相关的标签\n            var root = UM.htmlparser(html);\n            //如果给了过滤规则就先进行过滤\n            if (me.options.filterRules) {\n                UM.filterNode(root, me.options.filterRules);\n            }\n            //执行默认的处理\n            me.filterInputRule(root);\n            //针对chrome的处理\n            if (browser.webkit) {\n                var br = root.lastChild();\n                if (br && br.type == 'element' && br.tagName == 'br') {\n                    root.removeChild(br)\n                }\n                utils.each(me.body.querySelectorAll('div'), function (node) {\n                    if (domUtils.isEmptyBlock(node)) {\n                        domUtils.remove(node)\n                    }\n                })\n            }\n            html = {'html': root.toHtml()};\n            me.fireEvent('beforepaste', html, root);\n            //抢了默认的粘贴，那后边的内容就不执行了，比如表格粘贴\n            if(!html.html){\n                return;\n            }\n\n            me.execCommand('insertHtml', html.html, true);\n            me.fireEvent(\"afterpaste\", html);\n        }\n    }\n\n\n    me.addListener('ready', function () {\n        $(me.body).on( 'cut', function () {\n            var range = me.selection.getRange();\n            if (!range.collapsed && me.undoManger) {\n                me.undoManger.save();\n            }\n        }).on(browser.ie || browser.opera ? 'keydown' : 'paste', function (e) {\n            //ie下beforepaste在点击右键时也会触发，所以用监控键盘才处理\n            if ((browser.ie || browser.opera) && ((!e.ctrlKey && !e.metaKey) || e.keyCode != '86')) {\n                return;\n            }\n            getClipboardData.call(me, function (div) {\n                filter(div);\n            });\n        });\n\n    });\n};\n\n\n///import core\n///commands 有序列表,无序列表\n///commandsName  InsertOrderedList,InsertUnorderedList\n///commandsTitle  有序列表,无序列表\n/**\n * 有序列表\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     insertorderlist插入有序列表\n * @param   {String}   style               值为：decimal,lower-alpha,lower-roman,upper-alpha,upper-roman\n * @author zhanyi\n */\n/**\n * 无序链接\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     insertunorderlist插入无序列表\n * * @param   {String}   style            值为：circle,disc,square\n * @author zhanyi\n */\n\nUM.plugins['list'] = function () {\n    var me = this;\n\n    me.setOpt( {\n        'insertorderedlist':{\n            'decimal':'',\n            'lower-alpha':'',\n            'lower-roman':'',\n            'upper-alpha':'',\n            'upper-roman':''\n        },\n        'insertunorderedlist':{\n            'circle':'',\n            'disc':'',\n            'square':''\n        }\n    } );\n\n    this.addInputRule(function(root){\n        utils.each(root.getNodesByTagName('li'), function (node) {\n            if(node.children.length == 0){\n                node.parentNode.removeChild(node);\n            }\n        })\n    });\n    me.commands['insertorderedlist'] =\n    me.commands['insertunorderedlist'] = {\n            execCommand:function (cmdName) {\n                this.document.execCommand(cmdName);\n                var rng = this.selection.getRange(),\n                    bk = rng.createBookmark(true);\n\n                this.$body.find('ol,ul').each(function(i,n){\n                    var parent = n.parentNode;\n                    if(parent.tagName == 'P' && parent.lastChild === parent.firstChild){\n                        $(n).children().each(function(j,li){\n                            var p = parent.cloneNode(false);\n                            $(p).append(li.innerHTML);\n                            $(li).html('').append(p);\n                        });\n                        $(n).insertBefore(parent);\n                        $(parent).remove();\n                    }\n\n                    if(dtd.$inline[parent.tagName]){\n                        if(parent.tagName == 'SPAN'){\n\n                            $(n).children().each(function(k,li){\n                                var span = parent.cloneNode(false);\n                                if(li.firstChild.nodeName != 'P'){\n\n                                    while(li.firstChild){\n                                        span.appendChild(li.firstChild)\n                                    };\n                                    $('<p></p>').appendTo(li).append(span);\n                                }else{\n                                    while(li.firstChild){\n                                        span.appendChild(li.firstChild)\n                                    };\n                                    $(li.firstChild).append(span);\n                                }\n                            })\n\n                        }\n                        domUtils.remove(parent,true)\n                    }\n                });\n\n\n\n\n                rng.moveToBookmark(bk).select();\n                return true;\n            },\n            queryCommandState:function (cmdName) {\n                return this.document.queryCommandState(cmdName);\n            }\n        };\n};\n\n\n///import core\n///import plugins/serialize.js\n///import plugins/undo.js\n///commands 查看源码\n///commandsName  Source\n///commandsTitle  查看源码\n(function (){\n    var sourceEditors = {\n        textarea: function (editor, holder){\n            var textarea = holder.ownerDocument.createElement('textarea');\n            textarea.style.cssText = 'resize:none;border:0;padding:0;margin:0;overflow-y:auto;outline:0';\n            // todo: IE下只有onresize属性可用... 很纠结\n            if (browser.ie && browser.version < 8) {\n\n                textarea.style.width = holder.offsetWidth + 'px';\n                textarea.style.height = holder.offsetHeight + 'px';\n                holder.onresize = function (){\n                    textarea.style.width = holder.offsetWidth + 'px';\n                    textarea.style.height = holder.offsetHeight + 'px';\n                };\n            }\n            holder.appendChild(textarea);\n            return {\n                container : textarea,\n                setContent: function (content){\n                    textarea.value = content;\n                },\n                getContent: function (){\n                    return textarea.value;\n                },\n                select: function (){\n                    var range;\n                    if (browser.ie) {\n                        range = textarea.createTextRange();\n                        range.collapse(true);\n                        range.select();\n                    } else {\n                        //todo: chrome下无法设置焦点\n                        textarea.setSelectionRange(0, 0);\n                        textarea.focus();\n                    }\n                },\n                dispose: function (){\n                    holder.removeChild(textarea);\n                    // todo\n                    holder.onresize = null;\n                    textarea = null;\n                    holder = null;\n                }\n            };\n        }\n    };\n\n    UM.plugins['source'] = function (){\n        var me = this;\n        var opt = this.options;\n        var sourceMode = false;\n        var sourceEditor;\n\n        opt.sourceEditor = 'textarea';\n\n        me.setOpt({\n            sourceEditorFirst:false\n        });\n        function createSourceEditor(holder){\n            return sourceEditors.textarea(me, holder);\n        }\n\n        var bakCssText;\n        //解决在源码模式下getContent不能得到最新的内容问题\n        var oldGetContent = me.getContent,\n            bakAddress;\n\n        me.commands['source'] = {\n            execCommand: function (){\n\n                sourceMode = !sourceMode;\n                if (sourceMode) {\n                    bakAddress = me.selection.getRange().createAddress(false,true);\n                    me.undoManger && me.undoManger.save(true);\n                    if(browser.gecko){\n                        me.body.contentEditable = false;\n                    }\n\n//                    bakCssText = me.body.style.cssText;\n                    me.body.style.cssText += ';position:absolute;left:-32768px;top:-32768px;';\n\n\n                    me.fireEvent('beforegetcontent');\n                    var root = UM.htmlparser(me.body.innerHTML);\n                    me.filterOutputRule(root);\n                    root.traversal(function (node) {\n                        if (node.type == 'element') {\n                            switch (node.tagName) {\n                                case 'td':\n                                case 'th':\n                                case 'caption':\n                                    if(node.children && node.children.length == 1){\n                                        if(node.firstChild().tagName == 'br' ){\n                                            node.removeChild(node.firstChild())\n                                        }\n                                    };\n                                    break;\n                                case 'pre':\n                                    node.innerText(node.innerText().replace(/&nbsp;/g,' '))\n\n                            }\n                        }\n                    });\n\n                    me.fireEvent('aftergetcontent');\n\n                    var content = root.toHtml(true);\n\n                    sourceEditor = createSourceEditor(me.body.parentNode);\n\n                    sourceEditor.setContent(content);\n\n                    var getStyleValue=function(attr){\n                        return parseInt($(me.body).css(attr));\n                    };\n                    $(sourceEditor.container).width($(me.body).width()+getStyleValue(\"padding-left\")+getStyleValue(\"padding-right\"))\n                        .height($(me.body).height());\n                    setTimeout(function (){\n                        sourceEditor.select();\n                    });\n                    //重置getContent，源码模式下取值也能是最新的数据\n                    me.getContent = function (){\n                        return sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>')+'</p>';\n                    };\n                } else {\n                    me.$body.css({\n                        'position':'',\n                        'left':'',\n                        'top':''\n                    });\n//                    me.body.style.cssText = bakCssText;\n                    var cont = sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>')+'</p>';\n                    //处理掉block节点前后的空格,有可能会误命中，暂时不考虑\n                    cont = cont.replace(new RegExp('[\\\\r\\\\t\\\\n ]*<\\/?(\\\\w+)\\\\s*(?:[^>]*)>','g'), function(a,b){\n                        if(b && !dtd.$inlineWithA[b.toLowerCase()]){\n                            return a.replace(/(^[\\n\\r\\t ]*)|([\\n\\r\\t ]*$)/g,'');\n                        }\n                        return a.replace(/(^[\\n\\r\\t]*)|([\\n\\r\\t]*$)/g,'')\n                    });\n                    me.setContent(cont);\n                    sourceEditor.dispose();\n                    sourceEditor = null;\n                    //还原getContent方法\n                    me.getContent = oldGetContent;\n                    var first = me.body.firstChild;\n                    //trace:1106 都删除空了，下边会报错，所以补充一个p占位\n                    if(!first){\n                        me.body.innerHTML = '<p>'+(browser.ie?'':'<br/>')+'</p>';\n                    }\n                    //要在ifm为显示时ff才能取到selection,否则报错\n                    //这里不能比较位置了\n                    me.undoManger && me.undoManger.save(true);\n                    if(browser.gecko){\n                        me.body.contentEditable = true;\n                    }\n                    try{\n                        me.selection.getRange().moveToAddress(bakAddress).select();\n                    }catch(e){}\n\n                }\n                this.fireEvent('sourcemodechanged', sourceMode);\n            },\n            queryCommandState: function (){\n                return sourceMode|0;\n            },\n            notNeedUndo : 1\n        };\n        var oldQueryCommandState = me.queryCommandState;\n\n\n        me.queryCommandState = function (cmdName){\n            cmdName = cmdName.toLowerCase();\n            if (sourceMode) {\n                //源码模式下可以开启的命令\n                return cmdName in {\n                    'source' : 1,\n                    'fullscreen' : 1\n                } ? oldQueryCommandState.apply(this, arguments)  : -1\n            }\n            return oldQueryCommandState.apply(this, arguments);\n        };\n\n    };\n\n})();\n///import core\n///import plugins/undo.js\n///commands 设置回车标签p或br\n///commandsName  EnterKey\n///commandsTitle  设置回车标签p或br\n/**\n * @description 处理回车\n * @author zhanyi\n */\nUM.plugins['enterkey'] = function() {\n    var hTag,\n        me = this,\n        tag = me.options.enterTag;\n    me.addListener('keyup', function(type, evt) {\n\n        var keyCode = evt.keyCode || evt.which;\n        if (keyCode == 13) {\n            var range = me.selection.getRange(),\n                start = range.startContainer,\n                doSave;\n\n            //修正在h1-h6里边回车后不能嵌套p的问题\n            if (!browser.ie) {\n\n                if (/h\\d/i.test(hTag)) {\n                    if (browser.gecko) {\n                        var h = domUtils.findParentByTagName(start, [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption','table'], true);\n                        if (!h) {\n                            me.document.execCommand('formatBlock', false, '<p>');\n                            doSave = 1;\n                        }\n                    } else {\n                        //chrome remove div\n                        if (start.nodeType == 1) {\n                            var tmp = me.document.createTextNode(''),div;\n                            range.insertNode(tmp);\n                            div = domUtils.findParentByTagName(tmp, 'div', true);\n                            if (div) {\n                                var p = me.document.createElement('p');\n                                while (div.firstChild) {\n                                    p.appendChild(div.firstChild);\n                                }\n                                div.parentNode.insertBefore(p, div);\n                                domUtils.remove(div);\n                                range.setStartBefore(tmp).setCursor();\n                                doSave = 1;\n                            }\n                            domUtils.remove(tmp);\n\n                        }\n                    }\n\n                    if (me.undoManger && doSave) {\n                        me.undoManger.save();\n                    }\n                }\n                //没有站位符，会出现多行的问题\n                browser.opera &&  range.select();\n            }else{\n                me.fireEvent('saveScene',true,true)\n            }\n        }\n    });\n\n    me.addListener('keydown', function(type, evt) {\n        var keyCode = evt.keyCode || evt.which;\n        if (keyCode == 13) {//回车\n            if(me.fireEvent('beforeenterkeydown')){\n                domUtils.preventDefault(evt);\n                return;\n            }\n            me.fireEvent('saveScene',true,true);\n            hTag = '';\n\n\n            var range = me.selection.getRange();\n\n            if (!range.collapsed) {\n                //跨td不能删\n                var start = range.startContainer,\n                    end = range.endContainer,\n                    startTd = domUtils.findParentByTagName(start, 'td', true),\n                    endTd = domUtils.findParentByTagName(end, 'td', true);\n                if (startTd && endTd && startTd !== endTd || !startTd && endTd || startTd && !endTd) {\n                    evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false);\n                    return;\n                }\n            }\n            if (tag == 'p') {\n\n\n                if (!browser.ie) {\n\n                    start = domUtils.findParentByTagName(range.startContainer, ['ol','ul','p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption'], true);\n\n                    //opera下执行formatblock会在table的场景下有问题，回车在opera原生支持很好，所以暂时在opera去掉调用这个原生的command\n                    //trace:2431\n                    if (!start && !browser.opera) {\n\n                        me.document.execCommand('formatBlock', false, '<p>');\n\n                        if (browser.gecko) {\n                            range = me.selection.getRange();\n                            start = domUtils.findParentByTagName(range.startContainer, 'p', true);\n                            start && domUtils.removeDirtyAttr(start);\n                        }\n\n\n                    } else {\n                        hTag = start.tagName;\n                        start.tagName.toLowerCase() == 'p' && browser.gecko && domUtils.removeDirtyAttr(start);\n                    }\n\n                }\n\n            }\n\n        }\n    });\n\n    browser.ie && me.addListener('setDisabled',function(){\n        $(me.body).find('p').each(function(i,p){\n            if(domUtils.isEmptyBlock(p)){\n                p.innerHTML = '&nbsp;'\n            }\n        })\n    })\n};\n\n///import core\n///commands 预览\n///commandsName  Preview\n///commandsTitle  预览\n/**\n * 预览\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName     preview预览编辑器内容\n */\nUM.commands['preview'] = {\n    execCommand : function(){\n        var w = window.open('', '_blank', ''),\n            d = w.document,\n            c = this.getContent(null,null,true),\n            path = this.getOpt('UMEDITOR_HOME_URL'),\n            formula = c.indexOf('mathquill-embedded-latex')!=-1 ?\n                '<link rel=\"stylesheet\" href=\"' + path + 'third-party/mathquill/mathquill.css\"/>' +\n                '<script src=\"' + path + 'third-party/jquery.min.js\"></script>' +\n                '<script src=\"' + path + 'third-party/mathquill/mathquill.min.js\"></script>':'';\n        d.open();\n        d.write('<html><head>' + formula + '</head><body><div>'+c+'</div></body></html>');\n        d.close();\n    },\n    notNeedUndo : 1\n};\n\n///import core\n///commands 加粗,斜体,上标,下标\n///commandsName  Bold,Italic,Subscript,Superscript\n///commandsTitle  加粗,加斜,下标,上标\n/**\n * b u i等基础功能实现\n * @function\n * @name UM.execCommands\n * @param    {String}    cmdName    bold加粗。italic斜体。subscript上标。superscript下标。\n*/\nUM.plugins['basestyle'] = function(){\n    var basestyles = ['bold','underline','superscript','subscript','italic','strikethrough'],\n        me = this;\n    //添加快捷键\n    me.addshortcutkey({\n        \"Bold\" : \"ctrl+66\",//^B\n        \"Italic\" : \"ctrl+73\", //^I\n        \"Underline\" : \"ctrl+shift+85\",//^U\n        \"strikeThrough\" : 'ctrl+shift+83' //^s\n    });\n    //过滤最后的产出数据\n    me.addOutputRule(function(root){\n        $.each(root.getNodesByTagName('b i u strike s'),function(i,node){\n            switch (node.tagName){\n                case 'b':\n                    node.tagName = 'strong';\n                    break;\n                case 'i':\n                    node.tagName = 'em';\n                    break;\n                case 'u':\n                    node.tagName = 'span';\n                    node.setStyle('text-decoration','underline');\n                    break;\n                case 's':\n                case 'strike':\n                    node.tagName = 'span';\n                    node.setStyle('text-decoration','line-through')\n            }\n        });\n    });\n    $.each(basestyles,function(i,cmd){\n        me.commands[cmd] = {\n            execCommand : function( cmdName ) {\n                var rng = this.selection.getRange();\n                if(rng.collapsed && this.queryCommandState(cmdName) != 1){\n                    var node = this.document.createElement({\n                        'bold':'strong',\n                        'underline':'u',\n                        'superscript':'sup',\n                        'subscript':'sub',\n                        'italic':'em',\n                        'strikethrough':'strike'\n                    }[cmdName]);\n                    rng.insertNode(node).setStart(node,0).setCursor(false);\n                    return true;\n                }else{\n                    return this.document.execCommand(cmdName)\n                }\n\n            },\n            queryCommandState : function(cmdName) {\n                if(browser.gecko){\n                    return this.document.queryCommandState(cmdName)\n                }\n                var path = this.selection.getStartElementPath(),result = false;\n                $.each(path,function(i,n){\n                    switch (cmdName){\n                        case 'bold':\n                            if(n.nodeName == 'STRONG' || n.nodeName == 'B'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'underline':\n                            if(n.nodeName == 'U' || n.nodeName == 'SPAN' && $(n).css('text-decoration') == 'underline'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'superscript':\n                            if(n.nodeName == 'SUP'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'subscript':\n                            if(n.nodeName == 'SUB'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'italic':\n                            if(n.nodeName == 'EM' || n.nodeName == 'I'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                        case 'strikethrough':\n                            if(n.nodeName == 'S' || n.nodeName == 'STRIKE' || n.nodeName == 'SPAN' && $(n).css('text-decoration') == 'line-through'){\n                                result = 1;\n                                return false;\n                            }\n                            break;\n                    }\n                })\n                return result\n            }\n        };\n    })\n};\n\n\n///import core\n///import plugins/inserthtml.js\n///commands 视频\n///commandsName InsertVideo\n///commandsTitle  插入视频\n///commandsDialog  dialogs\\video\nUM.plugins['video'] = function (){\n    var me =this,\n        div;\n\n    /**\n     * 创建插入视频字符窜\n     * @param url 视频地址\n     * @param width 视频宽度\n     * @param height 视频高度\n     * @param align 视频对齐\n     * @param toEmbed 是否以flash代替显示\n     * @param addParagraph  是否需要添加P 标签\n     */\n    function creatInsertStr(url,width,height,id,align,toEmbed){\n        return  !toEmbed ?\n\n                '<img ' + (id ? 'id=\"' + id+'\"' : '') + ' width=\"'+ width +'\" height=\"' + height + '\" _url=\"'+url+'\" class=\"edui-faked-video\"'  +\n                ' src=\"' + me.options.UMEDITOR_HOME_URL+'themes/default/images/spacer.gif\" style=\"background:url('+me.options.UMEDITOR_HOME_URL+'themes/default/images/videologo.gif) no-repeat center center; border:1px solid gray;'+(align ? 'float:' + align + ';': '')+'\" />'\n\n                :\n                '<embed type=\"application/x-shockwave-flash\" class=\"edui-faked-video\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"' +\n                ' src=\"' + url + '\" width=\"' + width  + '\" height=\"' + height  + '\"'  + (align ? ' style=\"float:' + align + '\"': '') +\n                ' wmode=\"transparent\" play=\"true\" loop=\"false\" menu=\"false\" allowscriptaccess=\"never\" allowfullscreen=\"true\" >';\n    }\n\n    function switchImgAndEmbed(root,img2embed){\n        utils.each(root.getNodesByTagName(img2embed ? 'img' : 'embed'),function(node){\n            if(node.getAttr('class') == 'edui-faked-video'){\n\n                var html = creatInsertStr( img2embed ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',img2embed);\n                node.parentNode.replaceChild(UM.uNode.createElement(html),node)\n            }\n        })\n    }\n\n    me.addOutputRule(function(root){\n        switchImgAndEmbed(root,true)\n    });\n    me.addInputRule(function(root){\n        switchImgAndEmbed(root)\n    });\n\n    me.commands[\"insertvideo\"] = {\n        execCommand: function (cmd, videoObjs){\n            videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs];\n            var html = [],id = 'tmpVedio';\n            for(var i=0,vi,len = videoObjs.length;i<len;i++){\n                 vi = videoObjs[i];\n                 html.push(creatInsertStr( vi.url, vi.width || 420,  vi.height || 280, id + i,vi.align,false));\n            }\n            me.execCommand(\"inserthtml\",html.join(\"\"),true);\n\n        },\n        queryCommandState : function(){\n            var img = me.selection.getRange().getClosedNode(),\n                flag = img && (img.className == \"edui-faked-video\");\n            return flag ? 1 : 0;\n        }\n    };\n};\n///import core\n///commands 全选\n///commandsName  SelectAll\n///commandsTitle  全选\n/**\n * 选中所有\n * @function\n * @name UM.execCommand\n * @param   {String}   cmdName    selectall选中编辑器里的所有内容\n * @author zhanyi\n*/\nUM.plugins['selectall'] = function(){\n    var me = this;\n    me.commands['selectall'] = {\n        execCommand : function(){\n            //去掉了原生的selectAll,因为会出现报错和当内容为空时，不能出现闭合状态的光标\n            var me = this,body = me.body,\n                range = me.selection.getRange();\n            range.selectNodeContents(body);\n            if(domUtils.isEmptyBlock(body)){\n                //opera不能自动合并到元素的里边，要手动处理一下\n                if(browser.opera && body.firstChild && body.firstChild.nodeType == 1){\n                    range.setStartAtFirst(body.firstChild);\n                }\n                range.collapse(true);\n            }\n            range.select(true);\n        },\n        notNeedUndo : 1\n    };\n\n\n    //快捷键\n    me.addshortcutkey({\n         \"selectAll\" : \"ctrl+65\"\n    });\n};\n\n//UM.plugins['removeformat'] = function () {\n//    var me = this;\n//    me.commands['removeformat'] = {\n//        execCommand: function () {\n//            me.document.execCommand('removeformat');\n//\n//            /* 处理ie8和firefox选区有链接时,清除格式的bug */\n//            if (browser.gecko || browser.ie8 || browser.webkit) {\n//                var nativeRange = this.selection.getNative().getRangeAt(0),\n//                    common = nativeRange.commonAncestorContainer,\n//                    rng = me.selection.getRange(),\n//                    bk = rng.createBookmark();\n//\n//                function isEleInBookmark(node, bk){\n//                    if ( (domUtils.getPosition(node, bk.start) & domUtils.POSITION_FOLLOWING) &&\n//                        (domUtils.getPosition(bk.end, node) & domUtils.POSITION_FOLLOWING) ) {\n//                        return true;\n//                    } else if ( (domUtils.getPosition(node, bk.start) & domUtils.POSITION_CONTAINS) ||\n//                        (domUtils.getPosition(node, bk.end) & domUtils.POSITION_CONTAINS) ) {\n//                        return true;\n//                    }\n//                    return false;\n//                }\n//\n//                $(common).find('a').each(function (k, a) {\n//                    if ( isEleInBookmark(a, bk) ) {\n//                        a.removeAttribute('style');\n//                    }\n//                });\n//\n//            }\n//        }\n//    };\n//\n//};\n//\n\n\nUM.plugins['removeformat'] = function(){\n    var me = this;\n    me.setOpt({\n        'removeFormatTags': 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var',\n        'removeFormatAttributes':'class,style,lang,width,height,align,hspace,valign'\n    });\n    me.commands['removeformat'] = {\n        execCommand : function( cmdName, tags, style, attrs,notIncludeA ) {\n\n            var tagReg = new RegExp( '^(?:' + (tags || this.options.removeFormatTags).replace( /,/g, '|' ) + ')$', 'i' ) ,\n                removeFormatAttributes = style ? [] : (attrs || this.options.removeFormatAttributes).split( ',' ),\n                range = new dom.Range( this.document ),\n                bookmark,node,parent,\n                filter = function( node ) {\n                    return node.nodeType == 1;\n                };\n\n            function isRedundantSpan (node) {\n                if (node.nodeType == 3 || node.tagName.toLowerCase() != 'span'){\n                    return 0;\n                }\n                if (browser.ie) {\n                    //ie 下判断实效，所以只能简单用style来判断\n                    //return node.style.cssText == '' ? 1 : 0;\n                    var attrs = node.attributes;\n                    if ( attrs.length ) {\n                        for ( var i = 0,l = attrs.length; i<l; i++ ) {\n                            if ( attrs[i].specified ) {\n                                return 0;\n                            }\n                        }\n                        return 1;\n                    }\n                }\n                return !node.attributes.length;\n            }\n            function doRemove( range ) {\n\n                var bookmark1 = range.createBookmark();\n                if ( range.collapsed ) {\n                    range.enlarge( true );\n                }\n\n                //不能把a标签切了\n                if(!notIncludeA){\n                    var aNode = domUtils.findParentByTagName(range.startContainer,'a',true);\n                    if(aNode){\n                        range.setStartBefore(aNode);\n                    }\n\n                    aNode = domUtils.findParentByTagName(range.endContainer,'a',true);\n                    if(aNode){\n                        range.setEndAfter(aNode);\n                    }\n\n                }\n\n\n                bookmark = range.createBookmark();\n\n                node = bookmark.start;\n\n                //切开始\n                while ( (parent = node.parentNode) && !domUtils.isBlockElm( parent ) ) {\n                    domUtils.breakParent( node, parent );\n                    domUtils.clearEmptySibling( node );\n                }\n                if ( bookmark.end ) {\n                    //切结束\n                    node = bookmark.end;\n                    while ( (parent = node.parentNode) && !domUtils.isBlockElm( parent ) ) {\n                        domUtils.breakParent( node, parent );\n                        domUtils.clearEmptySibling( node );\n                    }\n\n                    //开始去除样式\n                    var current = domUtils.getNextDomNode( bookmark.start, false, filter ),\n                        next;\n                    while ( current ) {\n                        if ( current == bookmark.end ) {\n                            break;\n                        }\n\n                        next = domUtils.getNextDomNode( current, true, filter );\n\n                        if ( !dtd.$empty[current.tagName.toLowerCase()] && !domUtils.isBookmarkNode( current ) ) {\n                            if ( tagReg.test( current.tagName ) ) {\n                                if ( style ) {\n                                    domUtils.removeStyle( current, style );\n                                    if ( isRedundantSpan( current ) && style != 'text-decoration'){\n                                        domUtils.remove( current, true );\n                                    }\n                                } else {\n                                    domUtils.remove( current, true );\n                                }\n                            } else {\n                                //trace:939  不能把list上的样式去掉\n                                if(!dtd.$tableContent[current.tagName] && !dtd.$list[current.tagName]){\n                                    domUtils.removeAttributes( current, removeFormatAttributes );\n                                    if ( isRedundantSpan( current ) ){\n                                        domUtils.remove( current, true );\n                                    }\n                                }\n\n                            }\n                        }\n                        current = next;\n                    }\n                }\n                //trace:1035\n                //trace:1096 不能把td上的样式去掉，比如边框\n                var pN = bookmark.start.parentNode;\n                if(domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName] && !dtd.$list[pN.tagName]){\n                    domUtils.removeAttributes(  pN,removeFormatAttributes );\n                }\n                pN = bookmark.end.parentNode;\n                if(bookmark.end && domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName]&& !dtd.$list[pN.tagName]){\n                    domUtils.removeAttributes(  pN,removeFormatAttributes );\n                }\n                range.moveToBookmark( bookmark ).moveToBookmark(bookmark1);\n                //清除冗余的代码 <b><bookmark></b>\n                var node = range.startContainer,\n                    tmp,\n                    collapsed = range.collapsed;\n                while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){\n                    tmp = node.parentNode;\n                    range.setStartBefore(node);\n                    //trace:937\n                    //更新结束边界\n                    if(range.startContainer === range.endContainer){\n                        range.endOffset--;\n                    }\n                    domUtils.remove(node);\n                    node = tmp;\n                }\n\n                if(!collapsed){\n                    node = range.endContainer;\n                    while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){\n                        tmp = node.parentNode;\n                        range.setEndBefore(node);\n                        domUtils.remove(node);\n\n                        node = tmp;\n                    }\n\n\n                }\n            }\n\n\n\n            range = this.selection.getRange();\n            if(!range.collapsed) {\n                doRemove( range );\n                range.select();\n            }\n\n        }\n\n    };\n\n};\n/*\n *   处理特殊键的兼容性问题\n */\nUM.plugins['keystrokes'] = function() {\n    var me = this;\n    var collapsed = true;\n    me.addListener('keydown', function(type, evt) {\n        var keyCode = evt.keyCode || evt.which,\n            rng = me.selection.getRange();\n\n        //处理全选的情况\n        if(!rng.collapsed && !(evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) && (keyCode >= 65 && keyCode <=90\n            || keyCode >= 48 && keyCode <= 57 ||\n            keyCode >= 96 && keyCode <= 111 || {\n            13:1,\n            8:1,\n            46:1\n        }[keyCode])\n            ){\n\n            var tmpNode = rng.startContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                rng.setStartBefore(tmpNode)\n            }\n            tmpNode = rng.endContainer;\n            if(domUtils.isFillChar(tmpNode)){\n                rng.setEndAfter(tmpNode)\n            }\n            rng.txtToElmBoundary();\n            //结束边界可能放到了br的前边，要把br包含进来\n            // x[xxx]<br/>\n            if(rng.endContainer && rng.endContainer.nodeType == 1){\n                tmpNode = rng.endContainer.childNodes[rng.endOffset];\n                if(tmpNode && domUtils.isBr(tmpNode)){\n                    rng.setEndAfter(tmpNode);\n                }\n            }\n            if(rng.startOffset == 0){\n                tmpNode = rng.startContainer;\n                if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){\n                    tmpNode = rng.endContainer;\n                    if(rng.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){\n                        me.fireEvent('saveScene');\n                        me.body.innerHTML = '<p>'+(browser.ie ? '' : '<br/>')+'</p>';\n                        rng.setStart(me.body.firstChild,0).setCursor(false,true);\n                        me._selectionChange();\n                        return;\n                    }\n                }\n            }\n        }\n\n        //处理backspace\n        if (keyCode == 8) {\n            rng = me.selection.getRange();\n            collapsed = rng.collapsed;\n            if(me.fireEvent('delkeydown',evt)){\n                return;\n            }\n            var start,end;\n            //避免按两次删除才能生效的问题\n            if(rng.collapsed && rng.inFillChar()){\n                start = rng.startContainer;\n\n                if(domUtils.isFillChar(start)){\n                    rng.setStartBefore(start).shrinkBoundary(true).collapse(true);\n                    domUtils.remove(start)\n                }else{\n                    start.nodeValue = start.nodeValue.replace(new RegExp('^' + domUtils.fillChar ),'');\n                    rng.startOffset--;\n                    rng.collapse(true).select(true)\n                }\n            }\n            //解决选中control元素不能删除的问题\n            if (start = rng.getClosedNode()) {\n                me.fireEvent('saveScene');\n                rng.setStartBefore(start);\n                domUtils.remove(start);\n                rng.setCursor();\n                me.fireEvent('saveScene');\n                domUtils.preventDefault(evt);\n                return;\n            }\n            //阻止在table上的删除\n            if (!browser.ie) {\n                start = domUtils.findParentByTagName(rng.startContainer, 'table', true);\n                end = domUtils.findParentByTagName(rng.endContainer, 'table', true);\n                if (start && !end || !start && end || start !== end) {\n                    evt.preventDefault();\n                    return;\n                }\n            }\n            start = rng.startContainer;\n            if(rng.collapsed && start.nodeType == 1){\n                var currentNode = start.childNodes[rng.startOffset-1];\n                if(currentNode && currentNode.nodeType == 1 && currentNode.tagName == 'BR'){\n                    me.fireEvent('saveScene');\n                    rng.setStartBefore(currentNode).collapse(true);\n                    domUtils.remove(currentNode);\n                    rng.select();\n                    me.fireEvent('saveScene');\n                }\n            }\n\n            //trace:3613\n            if(browser.chrome){\n                if(rng.collapsed){\n\n                    while(rng.startOffset == 0 && !domUtils.isEmptyBlock(rng.startContainer)){\n                        rng.setStartBefore(rng.startContainer)\n                    }\n                    var pre = rng.startContainer.childNodes[rng.startOffset-1];\n                    if(pre && pre.nodeName == 'BR'){\n                        rng.setStartBefore(pre);\n                        me.fireEvent('saveScene');\n                        $(pre).remove();\n                        rng.setCursor();\n                        me.fireEvent('saveScene');\n                    }\n\n                }\n            }\n        }\n        //trace:1634\n        //ff的del键在容器空的时候，也会删除\n        if(browser.gecko && keyCode == 46){\n            var range = me.selection.getRange();\n            if(range.collapsed){\n                start = range.startContainer;\n                if(domUtils.isEmptyBlock(start)){\n                    var parent = start.parentNode;\n                    while(domUtils.getChildCount(parent) == 1 && !domUtils.isBody(parent)){\n                        start = parent;\n                        parent = parent.parentNode;\n                    }\n                    if(start === parent.lastChild)\n                        evt.preventDefault();\n                    return;\n                }\n            }\n        }\n    });\n    me.addListener('keyup', function(type, evt) {\n        var keyCode = evt.keyCode || evt.which,\n            rng,me = this;\n        if(keyCode == 8){\n            if(me.fireEvent('delkeyup')){\n                return;\n            }\n            rng = me.selection.getRange();\n            if(rng.collapsed){\n                var tmpNode,\n                    autoClearTagName = ['h1','h2','h3','h4','h5','h6'];\n                if(tmpNode = domUtils.findParentByTagName(rng.startContainer,autoClearTagName,true)){\n                    if(domUtils.isEmptyBlock(tmpNode)){\n                        var pre = tmpNode.previousSibling;\n                        if(pre && pre.nodeName != 'TABLE'){\n                            domUtils.remove(tmpNode);\n                            rng.setStartAtLast(pre).setCursor(false,true);\n                            return;\n                        }else{\n                            var next = tmpNode.nextSibling;\n                            if(next && next.nodeName != 'TABLE'){\n                                domUtils.remove(tmpNode);\n                                rng.setStartAtFirst(next).setCursor(false,true);\n                                return;\n                            }\n                        }\n                    }\n                }\n                //处理当删除到body时，要重新给p标签展位\n                if(domUtils.isBody(rng.startContainer)){\n                    var tmpNode = domUtils.createElement(me.document,'p',{\n                        'innerHTML' : browser.ie ? domUtils.fillChar : '<br/>'\n                    });\n                    rng.insertNode(tmpNode).setStart(tmpNode,0).setCursor(false,true);\n                }\n            }\n\n\n            //chrome下如果删除了inline标签，浏览器会有记忆，在输入文字还是会套上刚才删除的标签，所以这里再选一次就不会了\n            if( !collapsed && (rng.startContainer.nodeType == 3 || rng.startContainer.nodeType == 1 && domUtils.isEmptyBlock(rng.startContainer))){\n                if(browser.ie){\n                    var span = rng.document.createElement('span');\n                    rng.insertNode(span).setStartBefore(span).collapse(true);\n                    rng.select();\n                    domUtils.remove(span)\n                }else{\n                    rng.select()\n                }\n\n            }\n        }\n\n    })\n};\n/**\n * 自动保存草稿\n */\nUM.plugins['autosave'] = function() {\n\n\n    var me = this,\n        //无限循环保护\n        lastSaveTime = new Date(),\n        //最小保存间隔时间\n        MIN_TIME = 20,\n        //auto save key\n        saveKey = null;\n\n\n    //默认间隔时间\n    me.setOpt('saveInterval', 500);\n\n    //存储媒介封装\n    var LocalStorage = UM.LocalStorage = ( function () {\n\n        var storage = window.localStorage || getUserData() || null,\n            LOCAL_FILE = \"localStorage\";\n\n        return {\n\n            saveLocalData: function ( key, data ) {\n\n                if ( storage && data) {\n                    storage.setItem( key, data  );\n                    return true;\n                }\n\n                return false;\n\n            },\n\n            getLocalData: function ( key ) {\n\n                if ( storage ) {\n                    return storage.getItem( key );\n                }\n\n                return null;\n\n            },\n\n            removeItem: function ( key ) {\n\n                storage && storage.removeItem( key );\n\n            }\n\n        };\n\n        function getUserData () {\n\n            var container = document.createElement( \"div\" );\n            container.style.display = \"none\";\n\n            if( !container.addBehavior ) {\n                return null;\n            }\n\n            container.addBehavior(\"#default#userdata\");\n\n            return {\n\n                getItem: function ( key ) {\n\n                    var result = null;\n\n                    try {\n                        document.body.appendChild( container );\n                        container.load( LOCAL_FILE );\n                        result = container.getAttribute( key );\n                        document.body.removeChild( container );\n                    } catch ( e ) {\n                    }\n\n                    return result;\n\n                },\n\n                setItem: function ( key, value ) {\n\n                    document.body.appendChild( container );\n                    container.setAttribute( key, value );\n                    container.save( LOCAL_FILE );\n                    document.body.removeChild( container );\n\n                },\n//               暂时没有用到\n//                clear: function () {\n//\n//                    var expiresTime = new Date();\n//                    expiresTime.setFullYear( expiresTime.getFullYear() - 1 );\n//                    document.body.appendChild( container );\n//                    container.expires = expiresTime.toUTCString();\n//                    container.save( LOCAL_FILE );\n//                    document.body.removeChild( container );\n//\n//                },\n\n                removeItem: function ( key ) {\n\n                    document.body.appendChild( container );\n                    container.removeAttribute( key );\n                    container.save( LOCAL_FILE );\n                    document.body.removeChild( container );\n\n                }\n\n            };\n\n        }\n\n    } )();\n\n    function save ( editor ) {\n\n        var saveData = null;\n\n        if ( new Date() - lastSaveTime < MIN_TIME ) {\n            return;\n        }\n\n        if ( !editor.hasContents() ) {\n            //这里不能调用命令来删除， 会造成事件死循环\n            saveKey && LocalStorage.removeItem( saveKey );\n            return;\n        }\n\n        lastSaveTime = new Date();\n\n        editor._saveFlag = null;\n\n        saveData = me.body.innerHTML;\n\n        if ( editor.fireEvent( \"beforeautosave\", {\n            content: saveData\n        } ) === false ) {\n            return;\n        }\n\n        LocalStorage.saveLocalData( saveKey, saveData );\n\n        editor.fireEvent( \"afterautosave\", {\n            content: saveData\n        } );\n\n    }\n\n    me.addListener('ready', function(){\n        var _suffix = \"-drafts-data\",\n            key = null;\n\n        if ( me.key ) {\n            key = me.key + _suffix;\n        } else {\n            key = ( me.container.parentNode.id || 'ue-common' ) + _suffix;\n        }\n\n        //页面地址+编辑器ID 保持唯一\n        saveKey = ( location.protocol + location.host + location.pathname ).replace( /[.:\\/]/g, '_' ) + key;\n    });\n\n    me.addListener('contentchange', function(){\n\n        if ( !saveKey ) {\n            return;\n        }\n\n        if ( me._saveFlag ) {\n            window.clearTimeout( me._saveFlag );\n        }\n\n        if ( me.options.saveInterval > 0 ) {\n\n            me._saveFlag = window.setTimeout( function () {\n\n                save( me );\n\n            }, me.options.saveInterval );\n\n        } else {\n\n            save(me);\n\n        }\n\n    })\n\n\n    me.commands['clearlocaldata'] = {\n        execCommand:function (cmd, name) {\n            if ( saveKey && LocalStorage.getLocalData( saveKey ) ) {\n                LocalStorage.removeItem( saveKey )\n            }\n        },\n        notNeedUndo: true,\n        ignoreContentChange:true\n    };\n\n    me.commands['getlocaldata'] = {\n        execCommand:function (cmd, name) {\n            return saveKey ? LocalStorage.getLocalData( saveKey ) || '' : '';\n        },\n        notNeedUndo: true,\n        ignoreContentChange:true\n    };\n\n    me.commands['drafts'] = {\n        execCommand:function (cmd, name) {\n            if ( saveKey ) {\n                me.body.innerHTML = LocalStorage.getLocalData( saveKey ) || '<p>'+(browser.ie ? '&nbsp;' : '<br/>')+'</p>';\n                me.focus(true);\n            }\n        },\n        queryCommandState: function () {\n            return saveKey ? ( LocalStorage.getLocalData( saveKey ) === null ? -1 : 0 ) : -1;\n        },\n        notNeedUndo: true,\n        ignoreContentChange:true\n    }\n\n};\n\n/**\n * @description\n * 1.拖放文件到编辑区域，自动上传并插入到选区\n * 2.插入粘贴板的图片，自动上传并插入到选区\n * @author Jinqn\n * @date 2013-10-14\n */\nUM.plugins['autoupload'] = function () {\n\n    var me = this;\n\n    me.setOpt('pasteImageEnabled', true);\n    me.setOpt('dropFileEnabled', true);\n    var sendAndInsertImage = function (file, editor) {\n        //模拟数据\n        var fd = new FormData();\n        fd.append(editor.options.imageFieldName || 'upfile', file, file.name || ('blob.' + file.type.substr('image/'.length)));\n        fd.append('type', 'ajax');\n        var xhr = new XMLHttpRequest();\n        xhr.open(\"post\", me.options.imageUrl, true);\n        xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n        xhr.addEventListener('load', function (e) {\n            try {\n                var json = eval('('+e.target.response+')'),\n                    link = json.url,\n                    picLink = me.options.imagePath + link;\n                editor.execCommand('insertimage', {\n                    src: picLink,\n                    _src: picLink\n                });\n            } catch (er) {\n            }\n        });\n        xhr.send(fd);\n    };\n\n    function getPasteImage(e) {\n        return e.clipboardData && e.clipboardData.items && e.clipboardData.items.length == 1 && /^image\\//.test(e.clipboardData.items[0].type) ? e.clipboardData.items : null;\n    }\n\n    function getDropImage(e) {\n        return  e.dataTransfer && e.dataTransfer.files ? e.dataTransfer.files : null;\n    }\n\n    me.addListener('ready', function () {\n        if (window.FormData && window.FileReader) {\n            var autoUploadHandler = function (e) {\n                var hasImg = false,\n                    items;\n                //获取粘贴板文件列表或者拖放文件列表\n                items = e.type == 'paste' ? getPasteImage(e.originalEvent) : getDropImage(e.originalEvent);\n                if (items) {\n                    var len = items.length,\n                        file;\n                    while (len--) {\n                        file = items[len];\n                        if (file.getAsFile) file = file.getAsFile();\n                        if (file && file.size > 0 && /image\\/\\w+/i.test(file.type)) {\n                            sendAndInsertImage(file, me);\n                            hasImg = true;\n                        }\n                    }\n                    if (hasImg) return false;\n                }\n\n            };\n            me.getOpt('pasteImageEnabled') && me.$body.on('paste', autoUploadHandler);\n            me.getOpt('dropFileEnabled') && me.$body.on('drop', autoUploadHandler);\n\n            //取消拖放图片时出现的文字光标位置提示\n            me.$body.on('dragover', function (e) {\n                if (e.originalEvent.dataTransfer.types[0] == 'Files') {\n                    return false;\n                }\n            });\n        }\n    });\n\n};\n/**\n * 公式插件\n */\nUM.plugins['formula'] = function () {\n    var me = this;\n\n    function getActiveIframe() {\n        return me.$body.find('iframe.edui-formula-active')[0] || null;\n    }\n\n    function blurActiveIframe(){\n        var iframe = getActiveIframe();\n        iframe && iframe.contentWindow.formula.blur();\n    }\n\n    me.addInputRule(function (root) {\n        $.each(root.getNodesByTagName('span'), function (i, node) {\n            if (node.hasClass('mathquill-embedded-latex')) {\n                var firstChild, latex = '';\n                while(firstChild = node.firstChild()){\n                    latex += firstChild.data;\n                    node.removeChild(firstChild);\n                }\n                node.tagName = 'iframe';\n                node.setAttr({\n                    'frameborder': '0',\n                    'src': me.getOpt('UMEDITOR_HOME_URL') + 'dialogs/formula/formula.html',\n                    'data-latex': utils.unhtml(latex)\n                });\n            }\n        });\n    });\n    me.addOutputRule(function (root) {\n        $.each(root.getNodesByTagName('iframe'), function (i, node) {\n            if (node.hasClass('mathquill-embedded-latex')) {\n                node.tagName = 'span';\n                node.appendChild(UM.uNode.createText(node.getAttr('data-latex')));\n                node.setAttr({\n                    'frameborder': '',\n                    'src': '',\n                    'data-latex': ''\n                });\n            }\n        });\n    });\n    me.addListener('click', function(){\n        blurActiveIframe();\n    });\n    me.addListener('afterexeccommand', function(type, cmd){\n        if(cmd != 'formula') {\n            blurActiveIframe();\n        }\n    });\n\n    me.commands['formula'] = {\n        execCommand: function (cmd, latex) {\n            var iframe = getActiveIframe();\n            if (iframe) {\n                iframe.contentWindow.formula.insertLatex(latex);\n            } else {\n                me.execCommand('inserthtml', '<span class=\"mathquill-embedded-latex\">' + latex + '</span>');\n                browser.ie && browser.ie9below && setTimeout(function(){\n                    var rng = me.selection.getRange(),\n                        startContainer = rng.startContainer;\n                    if(startContainer.nodeType == 1 && !startContainer.childNodes[rng.startOffset]){\n                        rng.insertNode(me.document.createTextNode(' '));\n                        rng.setCursor()\n                    }\n                },100)\n            }\n        },\n        queryCommandState: function (cmd) {\n            return 0;\n        },\n        queryCommandValue: function (cmd) {\n            var iframe = getActiveIframe();\n            return iframe && iframe.contentWindow.formula.getLatex();\n        }\n    }\n\n};\n\n(function ($) {\n    //对jquery的扩展\n    $.parseTmpl = function parse(str, data) {\n        var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' + 'with(obj||{}){__p.push(\\'' + str.replace(/\\\\/g, '\\\\\\\\').replace(/'/g, \"\\\\'\").replace(/<%=([\\s\\S]+?)%>/g,function (match, code) {\n            return \"',\" + code.replace(/\\\\'/g, \"'\") + \",'\";\n        }).replace(/<%([\\s\\S]+?)%>/g,function (match, code) {\n                return \"');\" + code.replace(/\\\\'/g, \"'\").replace(/[\\r\\n\\t]/g, ' ') + \"__p.push('\";\n            }).replace(/\\r/g, '\\\\r').replace(/\\n/g, '\\\\n').replace(/\\t/g, '\\\\t') + \"');}return __p.join('');\";\n        var func = new Function('obj', tmpl);\n        return data ? func(data) : func;\n    };\n    $.extend2 = function (t, s) {\n        var a = arguments,\n            notCover = $.type(a[a.length - 1]) == 'boolean' ? a[a.length - 1] : false,\n            len = $.type(a[a.length - 1]) == 'boolean' ? a.length - 1 : a.length;\n        for (var i = 1; i < len; i++) {\n            var x = a[i];\n            for (var k in x) {\n                if (!notCover || !t.hasOwnProperty(k)) {\n                    t[k] = x[k];\n                }\n            }\n        }\n        return t;\n    };\n\n    $.IE6 = !!window.ActiveXObject && parseFloat(navigator.userAgent.match(/msie (\\d+)/i)[1]) == 6;\n\n    //所有ui的基类\n    var _eventHandler = [];\n    var _widget = function () {\n    };\n    var _prefix = 'edui';\n    _widget.prototype = {\n        on: function (ev, cb) {\n            this.root().on(ev, $.proxy(cb, this));\n            return this;\n        },\n        off: function (ev, cb) {\n            this.root().off(ev, $.proxy(cb, this));\n            return this;\n        },\n        trigger: function (ev, data) {\n            return  this.root().trigger(ev, data) === false ? false : this;\n        },\n        root: function ($el) {\n            return this._$el || (this._$el = $el);\n        },\n        destroy: function () {\n\n        },\n        data: function (key, val) {\n            if (val !== undefined) {\n                this.root().data(_prefix + key, val);\n                return this;\n            } else {\n                return this.root().data(_prefix + key)\n            }\n        },\n        register: function (eventName, $el, fn) {\n            _eventHandler.push({\n                'evtname': eventName,\n                '$els': $.isArray($el) ? $el : [$el],\n                handler: $.proxy(fn, $el)\n            })\n        }\n    };\n\n    //从jq实例上拿到绑定的widget实例\n    $.fn.edui = function (obj) {\n        return obj ? this.data('eduiwidget', obj) : this.data('eduiwidget');\n    };\n\n    function _createClass(ClassObj, properties, supperClass) {\n        ClassObj.prototype = $.extend2(\n            $.extend({}, properties),\n            (UM.ui[supperClass] || _widget).prototype,\n            true\n        );\n        ClassObj.prototype.supper = (UM.ui[supperClass] || _widget).prototype;\n        //父class的defaultOpt 合并\n        if( UM.ui[supperClass] && UM.ui[supperClass].prototype.defaultOpt ) {\n\n            var parentDefaultOptions = UM.ui[supperClass].prototype.defaultOpt,\n                subDefaultOptions = ClassObj.prototype.defaultOpt;\n\n            ClassObj.prototype.defaultOpt = $.extend( {}, parentDefaultOptions, subDefaultOptions || {} );\n\n        }\n        return ClassObj\n    }\n\n    var _guid = 1;\n\n    function mergeToJQ(ClassObj, className) {\n        $[_prefix + className] = ClassObj;\n        $.fn[_prefix + className] = function (opt) {\n            var result, args = Array.prototype.slice.call(arguments, 1);\n\n            this.each(function (i, el) {\n                var $this = $(el);\n                var obj = $this.edui();\n                if (!obj) {\n                    ClassObj(!opt || !$.isPlainObject(opt) ? {} : opt, $this);\n                    $this.edui(obj)\n                }\n                if ($.type(opt) == 'string') {\n                    if (opt == 'this') {\n                        result = obj;\n                    } else {\n                        result = obj[opt].apply(obj, args);\n                        if (result !== obj && result !== undefined) {\n                            return false;\n                        }\n                        result = null;\n                    }\n\n                }\n            });\n\n            return result !== null ? result : this;\n        }\n    }\n\n    UM.ui = {\n        define: function (className, properties, supperClass) {\n            var ClassObj = UM.ui[className] = _createClass(function (options, $el) {\n                    var _obj = function () {\n                    };\n                    $.extend(_obj.prototype, ClassObj.prototype, {\n                            guid: className + _guid++,\n                            widgetName: className\n                        }\n                    );\n                    var obj = new _obj;\n                    if ($.type(options) == 'string') {\n                        obj.init && obj.init({});\n                        obj.root().edui(obj);\n                        obj.root().find('a').click(function (evt) {\n                            evt.preventDefault()\n                        });\n                        return obj.root()[_prefix + className].apply(obj.root(), arguments)\n                    } else {\n                        $el && obj.root($el);\n                        obj.init && obj.init(!options || $.isPlainObject(options) ? $.extend2(options || {}, obj.defaultOpt || {}, true) : options);\n                        try{\n                            obj.root().find('a').click(function (evt) {\n                                evt.preventDefault()\n                            });\n                        }catch(e){\n                        }\n\n                        return obj.root().edui(obj);\n                    }\n\n                },properties, supperClass);\n\n            mergeToJQ(ClassObj, className);\n        }\n    };\n\n    $(function () {\n        $(document).on('click mouseup mousedown dblclick mouseover', function (evt) {\n            $.each(_eventHandler, function (i, obj) {\n                if (obj.evtname == evt.type) {\n                    $.each(obj.$els, function (i, $el) {\n                        if ($el[0] !== evt.target && !$.contains($el[0], evt.target)) {\n                            obj.handler(evt);\n                        }\n                    })\n                }\n            })\n        })\n    })\n})(jQuery);\n//button 类\nUM.ui.define('button', {\n    tpl: '<<%if(!texttype){%>div class=\"edui-btn edui-btn-<%=icon%> <%if(name){%>edui-btn-name-<%=name%><%}%>\" unselectable=\"on\" onmousedown=\"return false\" <%}else{%>a class=\"edui-text-btn\"<%}%><% if(title) {%> data-original-title=\"<%=title%>\" <%};%>> ' +\n        '<% if(icon) {%><div unselectable=\"on\" class=\"edui-icon-<%=icon%> edui-icon\"></div><% }; %><%if(text) {%><span unselectable=\"on\" onmousedown=\"return false\" class=\"edui-button-label\"><%=text%></span><%}%>' +\n        '<%if(caret && text){%><span class=\"edui-button-spacing\"></span><%}%>' +\n        '<% if(caret) {%><span unselectable=\"on\" onmousedown=\"return false\" class=\"edui-caret\"></span><% };%></<%if(!texttype){%>div<%}else{%>a<%}%>>',\n    defaultOpt: {\n        text: '',\n        title: '',\n        icon: '',\n        width: '',\n        caret: false,\n        texttype: false,\n        click: function () {\n        }\n    },\n    init: function (options) {\n        var me = this;\n\n        me.root($($.parseTmpl(me.tpl, options)))\n            .click(function (evt) {\n                me.wrapclick(options.click, evt)\n            });\n\n        me.root().hover(function () {\n            if(!me.root().hasClass(\"edui-disabled\")){\n                me.root().toggleClass('edui-hover')\n            }\n        })\n\n        return me;\n    },\n    wrapclick: function (fn, evt) {\n        if (!this.disabled()) {\n            this.root().trigger('wrapclick');\n            $.proxy(fn, this, evt)()\n        }\n        return this;\n    },\n    label: function (text) {\n        if (text === undefined) {\n            return this.root().find('.edui-button-label').text();\n        } else {\n            this.root().find('.edui-button-label').text(text);\n            return this;\n        }\n    },\n    disabled: function (state) {\n        if (state === undefined) {\n            return this.root().hasClass('edui-disabled')\n        }\n        this.root().toggleClass('edui-disabled', state);\n        if(this.root().hasClass('edui-disabled')){\n            this.root().removeClass('edui-hover')\n        }\n        return this;\n    },\n    active: function (state) {\n        if (state === undefined) {\n            return this.root().hasClass('edui-active')\n        }\n        this.root().toggleClass('edui-active', state)\n\n        return this;\n    },\n    mergeWith: function ($obj) {\n        var me = this;\n        me.data('$mergeObj', $obj);\n        $obj.edui().data('$mergeObj', me.root());\n        if (!$.contains(document.body, $obj[0])) {\n            $obj.appendTo(me.root());\n        }\n        me.on('click',function () {\n            me.wrapclick(function () {\n                $obj.edui().show();\n            })\n        }).register('click', me.root(), function (evt) {\n                $obj.hide()\n            });\n    }\n});\n//toolbar 类\n(function () {\n    UM.ui.define('toolbar', {\n        tpl: '<div class=\"edui-toolbar\"  ><div class=\"edui-btn-toolbar\" unselectable=\"on\" onmousedown=\"return false\"  ></div></div>'\n          ,\n        init: function () {\n            var $root = this.root($(this.tpl));\n            this.data('$btnToolbar', $root.find('.edui-btn-toolbar'))\n        },\n        appendToBtnmenu : function(data){\n            var $cont = this.data('$btnToolbar');\n            data = $.isArray(data) ? data : [data];\n            $.each(data,function(i,$item){\n                $cont.append($item)\n            })\n        }\n    });\n})();\n\n//menu 类\nUM.ui.define('menu',{\n    show : function($obj,dir,fnname,topOffset,leftOffset){\n\n        fnname = fnname || 'position';\n        if(this.trigger('beforeshow') === false){\n            return;\n        }else{\n            this.root().css($.extend({display:'block'},$obj ? {\n                top : $obj[fnname]().top + ( dir == 'right' ? 0 : $obj.outerHeight()) - (topOffset || 0),\n                left : $obj[fnname]().left + (dir == 'right' ?  $obj.outerWidth() : 0) -  (leftOffset || 0)\n            }:{}))\n            this.trigger('aftershow');\n        }\n    },\n    hide : function(all){\n        var $parentmenu;\n        if(this.trigger('beforehide') === false){\n            return;\n        } else {\n\n            if($parentmenu = this.root().data('parentmenu')){\n                if($parentmenu.data('parentmenu')|| all)\n                    $parentmenu.edui().hide();\n            }\n            this.root().css('display','none');\n            this.trigger('afterhide');\n        }\n    },\n    attachTo : function($obj){\n        var me = this;\n        if(!$obj.data('$mergeObj')){\n            $obj.data('$mergeObj',me.root());\n            $obj.on('wrapclick',function(evt){\n                me.show()\n            });\n            me.register('click',$obj,function(evt){\n               me.hide()\n            });\n            me.data('$mergeObj',$obj)\n        }\n    }\n});\n//dropmenu 类\nUM.ui.define('dropmenu', {\n    tmpl: '<ul class=\"edui-dropdown-menu\" aria-labelledby=\"dropdownMenu\" >' +\n        '<%for(var i=0,ci;ci=data[i++];){%>' +\n        '<%if(ci.divider){%><li class=\"edui-divider\"></li><%}else{%>' +\n        '<li <%if(ci.active||ci.disabled){%>class=\"<%= ci.active|| \\'\\' %> <%=ci.disabled||\\'\\' %>\" <%}%> data-value=\"<%= ci.value%>\">' +\n        '<a href=\"#\" tabindex=\"-1\"><em class=\"edui-dropmenu-checkbox\"><i class=\"edui-icon-ok\"></i></em><%= ci.label%></a>' +\n        '</li><%}%>' +\n        '<%}%>' +\n        '</ul>',\n    defaultOpt: {\n        data: [],\n        click: function () {\n\n        }\n    },\n    init: function (options) {\n        var me = this;\n        var eventName = {\n            click: 1,\n            mouseover: 1,\n            mouseout: 1\n        };\n\n        this.root($($.parseTmpl(this.tmpl, options))).on('click', 'li[class!=\"edui-disabled edui-divider edui-dropdown-submenu\"]',function (evt) {\n            $.proxy(options.click, me, evt, $(this).data('value'), $(this))()\n        }).find('li').each(function (i, el) {\n                var $this = $(this);\n                if (!$this.hasClass(\"edui-disabled edui-divider edui-dropdown-submenu\")) {\n                    var data = options.data[i];\n                    $.each(eventName, function (k) {\n                        data[k] && $this[k](function (evt) {\n                            $.proxy(data[k], el)(evt, data, me.root)\n                        })\n                    })\n                }\n            })\n\n    },\n    disabled: function (cb) {\n        $('li[class!=edui-divider]', this.root()).each(function () {\n            var $el = $(this);\n            if (cb === true) {\n                $el.addClass('edui-disabled')\n            } else if ($.isFunction(cb)) {\n                $el.toggleClass('edui-disabled', cb(li))\n            } else {\n                $el.removeClass('edui-disabled')\n            }\n\n        });\n    },\n    val: function (val) {\n        var currentVal;\n        $('li[class!=\"edui-divider edui-disabled edui-dropdown-submenu\"]', this.root()).each(function () {\n            var $el = $(this);\n            if (val === undefined) {\n                if ($el.find('em.edui-dropmenu-checked').length) {\n                    currentVal = $el.data('value');\n                    return false\n                }\n            } else {\n                $el.find('em').toggleClass('edui-dropmenu-checked', $el.data('value') == val)\n            }\n        });\n        if (val === undefined) {\n            return currentVal\n        }\n    },\n    addSubmenu: function (label, menu, index) {\n        index = index || 0;\n\n        var $list = $('li[class!=edui-divider]', this.root());\n        var $node = $('<li class=\"edui-dropdown-submenu\"><a tabindex=\"-1\" href=\"#\">' + label + '</a></li>').append(menu);\n\n        if (index >= 0 && index < $list.length) {\n            $node.insertBefore($list[index]);\n        } else if (index < 0) {\n            $node.insertBefore($list[0]);\n        } else if (index >= $list.length) {\n            $node.appendTo($list);\n        }\n    }\n}, 'menu');\n//splitbutton 类\n///import button\nUM.ui.define('splitbutton',{\n    tpl :'<div class=\"edui-splitbutton <%if (name){%>edui-splitbutton-<%= name %><%}%>\"  unselectable=\"on\" <%if(title){%>data-original-title=\"<%=title%>\"<%}%>><div class=\"edui-btn\"  unselectable=\"on\" ><%if(icon){%><div  unselectable=\"on\" class=\"edui-icon-<%=icon%> edui-icon\"></div><%}%><%if(text){%><%=text%><%}%></div>'+\n            '<div  unselectable=\"on\" class=\"edui-btn edui-dropdown-toggle\" >'+\n                '<div  unselectable=\"on\" class=\"edui-caret\"><\\/div>'+\n            '</div>'+\n        '</div>',\n    defaultOpt:{\n        text:'',\n        title:'',\n        click:function(){}\n    },\n    init : function(options){\n        var me = this;\n        me.root( $($.parseTmpl(me.tpl,options)));\n        me.root().find('.edui-btn:first').click(function(evt){\n            if(!me.disabled()){\n                $.proxy(options.click,me)();\n            }\n        });\n        me.root().find('.edui-dropdown-toggle').click(function(){\n            if(!me.disabled()){\n                me.trigger('arrowclick')\n            }\n        });\n        me.root().hover(function () {\n            if(!me.root().hasClass(\"edui-disabled\")){\n                me.root().toggleClass('edui-hover')\n            }\n        });\n\n        return me;\n    },\n    wrapclick:function(fn,evt){\n        if(!this.disabled()){\n            $.proxy(fn,this,evt)()\n        }\n        return this;\n    },\n    disabled : function(state){\n        if(state === undefined){\n            return this.root().hasClass('edui-disabled')\n        }\n        this.root().toggleClass('edui-disabled',state).find('.edui-btn').toggleClass('edui-disabled',state);\n        return this;\n    },\n    active:function(state){\n        if(state === undefined){\n            return this.root().hasClass('edui-active')\n        }\n        this.root().toggleClass('edui-active',state).find('.edui-btn:first').toggleClass('edui-active',state);\n        return this;\n    },\n    mergeWith:function($obj){\n        var me = this;\n        me.data('$mergeObj',$obj);\n        $obj.edui().data('$mergeObj',me.root());\n        if(!$.contains(document.body,$obj[0])){\n            $obj.appendTo(me.root());\n        }\n        me.root().delegate('.edui-dropdown-toggle','click',function(){\n            me.wrapclick(function(){\n                $obj.edui().show();\n            })\n        });\n        me.register('click',me.root().find('.edui-dropdown-toggle'),function(evt){\n            $obj.hide()\n        });\n    }\n});\n/**\n * Created with JetBrains PhpStorm.\n * User: hn\n * Date: 13-7-10\n * Time: 下午3:07\n * To change this template use File | Settings | File Templates.\n */\nUM.ui.define('colorsplitbutton',{\n\n    tpl : '<div class=\"edui-splitbutton <%if (name){%>edui-splitbutton-<%= name %><%}%>\"  unselectable=\"on\" <%if(title){%>data-original-title=\"<%=title%>\"<%}%>><div class=\"edui-btn\"  unselectable=\"on\" ><%if(icon){%><div  unselectable=\"on\" class=\"edui-icon-<%=icon%> edui-icon\"></div><%}%><div class=\"edui-splitbutton-color-label\" <%if (color) {%>style=\"background: <%=color%>\"<%}%>></div><%if(text){%><%=text%><%}%></div>'+\n            '<div  unselectable=\"on\" class=\"edui-btn edui-dropdown-toggle\" >'+\n            '<div  unselectable=\"on\" class=\"edui-caret\"><\\/div>'+\n            '</div>'+\n            '</div>',\n    defaultOpt: {\n        color: ''\n    },\n    init: function( options ){\n\n        var me = this;\n\n        me.supper.init.call( me, options );\n\n    },\n    colorLabel: function(){\n        return this.root().find('.edui-splitbutton-color-label');\n    }\n\n}, 'splitbutton');\n//popup 类\nUM.ui.define('popup', {\n    tpl: '<div class=\"edui-dropdown-menu edui-popup\"'+\n        '<%if(!<%=stopprop%>){%>onmousedown=\"return false\"<%}%>'+\n        '><div class=\"edui-popup-body\" unselectable=\"on\" onmousedown=\"return false\"><%=subtpl%></div>' +\n        '<div class=\"edui-popup-caret\"></div>' +\n        '</div>',\n    defaultOpt: {\n        stopprop:false,\n        subtpl: '',\n        width: '',\n        height: ''\n    },\n    init: function (options) {\n        this.root($($.parseTmpl(this.tpl, options)));\n        return this;\n    },\n    mergeTpl: function (data) {\n        return $.parseTmpl(this.tpl, {subtpl: data});\n    },\n    show: function ($obj, posObj) {\n        if (!posObj) posObj = {};\n\n        var fnname = posObj.fnname || 'position';\n        if (this.trigger('beforeshow') === false) {\n            return;\n        } else {\n            this.root().css($.extend({display: 'block'}, $obj ? {\n                top: $obj[fnname]().top + ( posObj.dir == 'right' ? 0 : $obj.outerHeight()) - (posObj.offsetTop || 0),\n                left: $obj[fnname]().left + (posObj.dir == 'right' ? $obj.outerWidth() : 0) - (posObj.offsetLeft || 0),\n                position: 'absolute'\n            } : {}));\n\n            this.root().find('.edui-popup-caret').css({\n                top: posObj.caretTop || 0,\n                left: posObj.caretLeft || 0,\n                position: 'absolute'\n            }).addClass(posObj.caretDir || \"up\")\n\n        }\n        this.trigger(\"aftershow\");\n    },\n    hide: function () {\n        this.root().css('display', 'none');\n        this.trigger('afterhide')\n    },\n    attachTo: function ($obj, posObj) {\n        var me = this\n        if (!$obj.data('$mergeObj')) {\n            $obj.data('$mergeObj', me.root());\n            $obj.on('wrapclick', function (evt) {\n                me.show($obj, posObj)\n            });\n            me.register('click', $obj, function (evt) {\n                me.hide()\n            });\n            me.data('$mergeObj', $obj)\n        }\n    },\n    getBodyContainer: function () {\n        return this.root().find(\".edui-popup-body\");\n    }\n});\n//scale 类\nUM.ui.define('scale', {\n    tpl: '<div class=\"edui-scale\" unselectable=\"on\">' +\n        '<span class=\"edui-scale-hand0\"></span>' +\n        '<span class=\"edui-scale-hand1\"></span>' +\n        '<span class=\"edui-scale-hand2\"></span>' +\n        '<span class=\"edui-scale-hand3\"></span>' +\n        '<span class=\"edui-scale-hand4\"></span>' +\n        '<span class=\"edui-scale-hand5\"></span>' +\n        '<span class=\"edui-scale-hand6\"></span>' +\n        '<span class=\"edui-scale-hand7\"></span>' +\n        '</div>',\n    defaultOpt: {\n        $doc: $(document),\n        $wrap: $(document)\n    },\n    init: function (options) {\n        if(options.$doc) this.defaultOpt.$doc = options.$doc;\n        if(options.$wrap) this.defaultOpt.$wrap = options.$wrap;\n        this.root($($.parseTmpl(this.tpl, options)));\n        this.initStyle();\n        this.startPos = this.prePos = {x: 0, y: 0};\n        this.dragId = -1;\n        return this;\n    },\n    initStyle: function () {\n        utils.cssRule('edui-style-scale', '.edui-scale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;}' +\n            '.edui-scale span{position:absolute;left:0;top:0;width:7px;height:7px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}'\n            + '.edui-scale .edui-scale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}'\n            + '.edui-scale .edui-scale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}'\n            + '.edui-scale .edui-scale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}'\n            + '.edui-scale .edui-scale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}');\n    },\n    _eventHandler: function (e) {\n        var me = this,\n            $doc = me.defaultOpt.$doc;\n        switch (e.type) {\n            case 'mousedown':\n                var hand = e.target || e.srcElement, hand;\n                if (hand.className.indexOf('edui-scale-hand') != -1) {\n                    me.dragId = hand.className.slice(-1);\n                    me.startPos.x = me.prePos.x = e.clientX;\n                    me.startPos.y = me.prePos.y = e.clientY;\n                    $doc.bind('mousemove', $.proxy(me._eventHandler, me));\n                }\n                break;\n            case 'mousemove':\n                if (me.dragId != -1) {\n                    me.updateContainerStyle(me.dragId, {x: e.clientX - me.prePos.x, y: e.clientY - me.prePos.y});\n                    me.prePos.x = e.clientX;\n                    me.prePos.y = e.clientY;\n                    me.updateTargetElement();\n                }\n                break;\n            case 'mouseup':\n                if (me.dragId != -1) {\n                    me.dragId = -1;\n                    me.updateTargetElement();\n                    var $target = me.data('$scaleTarget');\n                    if ($target.parent()) me.attachTo(me.data('$scaleTarget'));\n                }\n                $doc.unbind('mousemove', $.proxy(me._eventHandler, me));\n                break;\n            default:\n                break;\n        }\n    },\n    updateTargetElement: function () {\n        var me = this,\n            $root = me.root(),\n            $target = me.data('$scaleTarget');\n        $target.css({width: $root.width(), height: $root.height()});\n        me.attachTo($target);\n    },\n    updateContainerStyle: function (dir, offset) {\n        var me = this,\n            $dom = me.root(),\n            tmp,\n            rect = [\n                //[left, top, width, height]\n                [0, 0, -1, -1],\n                [0, 0, 0, -1],\n                [0, 0, 1, -1],\n                [0, 0, -1, 0],\n                [0, 0, 1, 0],\n                [0, 0, -1, 1],\n                [0, 0, 0, 1],\n                [0, 0, 1, 1]\n            ];\n\n        if (rect[dir][0] != 0) {\n            tmp = parseInt($dom.offset().left) + offset.x;\n            $dom.css('left', me._validScaledProp('left', tmp));\n        }\n        if (rect[dir][1] != 0) {\n            tmp = parseInt($dom.offset().top) + offset.y;\n            $dom.css('top', me._validScaledProp('top', tmp));\n        }\n        if (rect[dir][2] != 0) {\n            tmp = $dom.width() + rect[dir][2] * offset.x;\n            $dom.css('width', me._validScaledProp('width', tmp));\n        }\n        if (rect[dir][3] != 0) {\n            tmp = $dom.height() + rect[dir][3] * offset.y;\n            $dom.css('height', me._validScaledProp('height', tmp));\n        }\n    },\n    _validScaledProp: function (prop, value) {\n        var $ele = this.root(),\n            $wrap = this.defaultOpt.$doc,\n            calc = function(val, a, b){\n                return (val + a) > b ? b - a : value;\n            };\n\n        value = isNaN(value) ? 0 : value;\n        switch (prop) {\n            case 'left':\n                return value < 0 ? 0 : calc(value, $ele.width(), $wrap.width());\n            case 'top':\n                return value < 0 ? 0 : calc(value, $ele.height(),$wrap.height());\n            case 'width':\n                return value <= 0 ? 1 : calc(value, $ele.offset().left, $wrap.width());\n            case 'height':\n                return value <= 0 ? 1 : calc(value, $ele.offset().top, $wrap.height());\n        }\n    },\n    show: function ($obj) {\n        var me = this;\n        if ($obj) me.attachTo($obj);\n        me.root().bind('mousedown', $.proxy(me._eventHandler, me));\n        me.defaultOpt.$doc.bind('mouseup', $.proxy(me._eventHandler, me));\n        me.root().show();\n        me.trigger(\"aftershow\");\n    },\n    hide: function () {\n        var me = this;\n        me.root().unbind('mousedown', $.proxy(me._eventHandler, me));\n        me.defaultOpt.$doc.unbind('mouseup', $.proxy(me._eventHandler, me));\n        me.root().hide();\n        me.trigger('afterhide')\n    },\n    attachTo: function ($obj) {\n        var me = this,\n            imgPos = $obj.offset(),\n            $root = me.root(),\n            $wrap = me.defaultOpt.$wrap,\n            posObj = $wrap.offset();\n\n        me.data('$scaleTarget', $obj);\n        me.root().css({\n            position: 'absolute',\n            width: $obj.width(),\n            height: $obj.height(),\n            left: imgPos.left - posObj.left - parseInt($wrap.css('border-left-width')) - parseInt($root.css('border-left-width')),\n            top: imgPos.top - posObj.top - parseInt($wrap.css('border-top-width')) - parseInt($root.css('border-top-width'))\n        });\n    },\n    getScaleTarget: function () {\n        return this.data('$scaleTarget')[0];\n    }\n});\n//colorpicker 类\nUM.ui.define('colorpicker', {\n    tpl: function (opt) {\n        var COLORS = (\n            'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,' +\n                'f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,' +\n                'd8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,' +\n                'bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,' +\n                'a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,' +\n                '7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,' +\n                'c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,').split(',');\n\n        var html = '<div unselectable=\"on\" onmousedown=\"return false\" class=\"edui-colorpicker<%if (name){%> edui-colorpicker-<%=name%><%}%>\" >' +\n            '<table unselectable=\"on\" onmousedown=\"return false\">' +\n            '<tr><td colspan=\"10\">'+opt.lang_themeColor+'</td> </tr>' +\n            '<tr class=\"edui-colorpicker-firstrow\" >';\n\n        for (var i = 0; i < COLORS.length; i++) {\n            if (i && i % 10 === 0) {\n                html += '</tr>' + (i == 60 ? '<tr><td colspan=\"10\">'+opt.lang_standardColor+'</td></tr>' : '') + '<tr' + (i == 60 ? ' class=\"edui-colorpicker-firstrow\"' : '') + '>';\n            }\n            html += i < 70 ? '<td><a unselectable=\"on\" onmousedown=\"return false\" title=\"' + COLORS[i] + '\" class=\"edui-colorpicker-colorcell\"' +\n                ' data-color=\"#' + COLORS[i] + '\"' +\n                ' style=\"background-color:#' + COLORS[i] + ';border:solid #ccc;' +\n                (i < 10 || i >= 60 ? 'border-width:1px;' :\n                    i >= 10 && i < 20 ? 'border-width:1px 1px 0 1px;' :\n                        'border-width:0 1px 0 1px;') +\n                '\"' +\n                '></a></td>' : '';\n        }\n        html += '</tr></table></div>';\n        return html;\n    },\n    init: function (options) {\n        var me = this;\n        me.root($($.parseTmpl(me.supper.mergeTpl(me.tpl(options)),options)));\n\n        me.root().on(\"click\",function (e) {\n            me.trigger('pickcolor',  $(e.target).data('color'));\n        });\n    }\n}, 'popup');\n/**\n * Created with JetBrains PhpStorm.\n * User: hn\n * Date: 13-5-29\n * Time: 下午8:01\n * To change this template use File | Settings | File Templates.\n */\n\n(function(){\n\n    var widgetName = 'combobox',\n        itemClassName = 'edui-combobox-item',\n        HOVER_CLASS = 'edui-combobox-item-hover',\n        ICON_CLASS = 'edui-combobox-checked-icon',\n        labelClassName = 'edui-combobox-item-label';\n\n    UM.ui.define( widgetName, ( function(){\n\n        return {\n            tpl: \"<ul class=\\\"dropdown-menu edui-combobox-menu<%if (comboboxName!=='') {%> edui-combobox-<%=comboboxName%><%}%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\" role=\\\"menu\\\" aria-labelledby=\\\"dropdownMenu\\\">\" +\n                \"<%if(autoRecord) {%>\" +\n                \"<%for( var i=0, len = recordStack.length; i<len; i++ ) {%>\" +\n                \"<%var index = recordStack[i];%>\" +\n                \"<li class=\\\"<%=itemClassName%><%if( selected == index ) {%> edui-combobox-checked<%}%>\\\" data-item-index=\\\"<%=index%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\">\" +\n                \"<span class=\\\"edui-combobox-icon\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"></span>\" +\n                \"<label class=\\\"<%=labelClassName%>\\\" style=\\\"<%=itemStyles[ index ]%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"><%=items[index]%></label>\" +\n                \"</li>\" +\n                \"<%}%>\" +\n                \"<%if( i ) {%>\" +\n                \"<li class=\\\"edui-combobox-item-separator\\\"></li>\" +\n                \"<%}%>\" +\n                \"<%}%>\" +\n                \"<%for( var i=0, label; label = items[i]; i++ ) {%>\" +\n                \"<li class=\\\"<%=itemClassName%><%if( selected == i ) {%> edui-combobox-checked<%}%> edui-combobox-item-<%=i%>\\\" data-item-index=\\\"<%=i%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\">\" +\n                \"<span class=\\\"edui-combobox-icon\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"></span>\" +\n                \"<label class=\\\"<%=labelClassName%>\\\" style=\\\"<%=itemStyles[ i ]%>\\\" unselectable=\\\"on\\\" onmousedown=\\\"return false\\\"><%=label%></label>\" +\n                \"</li>\" +\n                \"<%}%>\" +\n                \"</ul>\",\n            defaultOpt: {\n                //记录栈初始列表\n                recordStack: [],\n                //可用项列表\n                items: [],\n\t\t        //item对应的值列表\n                value: [],\n                comboboxName: '',\n                selected: '',\n                //自动记录\n                autoRecord: true,\n                //最多记录条数\n                recordCount: 5\n            },\n            init: function( options ){\n\n                var me = this;\n\n                $.extend( me._optionAdaptation( options ), me._createItemMapping( options.recordStack, options.items ), {\n                    itemClassName: itemClassName,\n                    iconClass: ICON_CLASS,\n                    labelClassName: labelClassName\n                } );\n\n                this._transStack( options );\n\n                me.root( $( $.parseTmpl( me.tpl, options ) ) );\n\n                this.data( 'options', options ).initEvent();\n\n            },\n            initEvent: function(){\n\n                var me = this;\n\n                me.initSelectItem();\n\n                this.initItemActive();\n\n            },\n            /**\n             * 初始化选择项\n             */\n            initSelectItem: function(){\n\n                var me = this,\n                    labelClass = \".\"+labelClassName;\n\n                me.root().delegate('.' + itemClassName, 'click', function(){\n\n                    var $li = $(this),\n                        index = $li.attr('data-item-index');\n\n                    me.trigger('comboboxselect', {\n                        index: index,\n                        label: $li.find(labelClass).text(),\n                        value: me.data('options').value[ index ]\n                    }).select( index );\n\n                    me.hide();\n\n                    return false;\n\n                });\n\n            },\n            initItemActive: function(){\n                var fn = {\n                    mouseenter: 'addClass',\n                    mouseleave: 'removeClass'\n                };\n                if ($.IE6) {\n                    this.root().delegate( '.'+itemClassName,  'mouseenter mouseleave', function( evt ){\n                        $(this)[ fn[ evt.type ] ]( HOVER_CLASS );\n                    }).one('afterhide', function(){\n                    });\n                }\n            },\n            /**\n             * 选择给定索引的项\n             * @param index 项索引\n             * @returns {*} 如果存在对应索引的项，则返回该项；否则返回null\n             */\n            select: function( index ){\n\n                var itemCount = this.data('options').itemCount,\n                    items = this.data('options').autowidthitem;\n\n                if ( items && !items.length ) {\n                    items = this.data('options').items;\n                }\n\n                if( itemCount == 0 ) {\n                    return null;\n                }\n\n                if( index < 0 ) {\n\n                    index = itemCount + index % itemCount;\n\n                } else if ( index >= itemCount ) {\n\n                    index = itemCount-1;\n\n                }\n\n                this.trigger( 'changebefore', items[ index ] );\n\n                this._update( index );\n\n                this.trigger( 'changeafter', items[ index ] );\n\n                return null;\n\n            },\n            selectItemByLabel: function( label ){\n\n                var itemMapping = this.data('options').itemMapping,\n                    me = this,\n                    index = null;\n\n                !$.isArray( label ) && ( label = [ label ] );\n\n                $.each( label, function( i, item ){\n\n                    index = itemMapping[ item ];\n\n                    if( index !== undefined ) {\n\n                        me.select( index );\n                        return false;\n\n                    }\n\n                } );\n\n            },\n            /**\n             * 转换记录栈\n             */\n            _transStack: function( options ) {\n\n                var temp = [],\n                    itemIndex = -1,\n                    selected = -1;\n\n                $.each( options.recordStack, function( index, item ){\n\n                    itemIndex = options.itemMapping[ item ];\n\n                    if( $.isNumeric( itemIndex ) ) {\n\n                        temp.push( itemIndex );\n\n                        //selected的合法性检测\n                        if( item == options.selected ) {\n                            selected = itemIndex;\n                        }\n\n                    }\n\n                } );\n\n                options.recordStack = temp;\n                options.selected = selected;\n                temp = null;\n\n            },\n            _optionAdaptation: function( options ) {\n\n                if( !( 'itemStyles' in options ) ) {\n\n                    options.itemStyles = [];\n\n                    for( var i = 0, len = options.items.length; i < len; i++ ) {\n                        options.itemStyles.push('');\n                    }\n\n                }\n\n                options.autowidthitem = options.autowidthitem || options.items;\n                options.itemCount = options.items.length;\n\n                return options;\n\n            },\n            _createItemMapping: function( stackItem, items ){\n\n                var temp = {},\n                    result = {\n                        recordStack: [],\n                        mapping: {}\n                    };\n\n                $.each( items, function( index, item ){\n                    temp[ item ] = index;\n                } );\n\n                result.itemMapping = temp;\n\n                $.each( stackItem, function( index, item ){\n\n                    if( temp[ item ] !== undefined ) {\n                        result.recordStack.push( temp[ item ] );\n                        result.mapping[ item ] = temp[ item ];\n                    }\n\n                } );\n\n                return result;\n\n            },\n            _update: function ( index ) {\n\n                var options = this.data(\"options\"),\n                    newStack = [],\n                    newChilds = null;\n\n                $.each( options.recordStack, function( i, item ){\n\n                    if( item != index ) {\n                        newStack.push( item );\n                    }\n\n                } );\n\n                //压入最新的记录\n                newStack.unshift( index );\n\n                if( newStack.length > options.recordCount ) {\n                    newStack.length = options.recordCount;\n                }\n\n                options.recordStack = newStack;\n                options.selected = index;\n\n                newChilds = $( $.parseTmpl( this.tpl, options ) );\n\n                //重新渲染\n                this.root().html( newChilds.html() );\n\n                newChilds = null;\n                newStack = null;\n\n            }\n        };\n\n    } )(), 'menu' );\n\n})();\n\n/**\n * Combox 抽象基类\n * User: hn\n * Date: 13-5-29\n * Time: 下午8:01\n * To change this template use File | Settings | File Templates.\n */\n\n(function(){\n\n    var widgetName = 'buttoncombobox';\n\n    UM.ui.define( widgetName, ( function(){\n\n        return {\n            defaultOpt: {\n                //按钮初始文字\n                label: '',\n                title: ''\n            },\n            init: function( options ) {\n\n                var me = this;\n\n                var btnWidget = $.eduibutton({\n                    caret: true,\n                    name: options.comboboxName,\n                    title: options.title,\n                    text: options.label,\n                    click: function(){\n                        me.show( this.root() );\n                    }\n                });\n\n                me.supper.init.call( me, options );\n\n                //监听change， 改变button显示内容\n                me.on('changebefore', function( e, label ){\n                    btnWidget.eduibutton('label', label );\n                });\n\n                me.data( 'button', btnWidget );\n\n                me.attachTo(btnWidget)\n\n            },\n            button: function(){\n                return this.data( 'button' );\n            }\n        }\n\n    } )(), 'combobox' );\n\n})();\n\n/*modal 类*/\nUM.ui.define('modal', {\n    tpl: '<div class=\"edui-modal\" tabindex=\"-1\" >' +\n        '<div class=\"edui-modal-header\">' +\n        '<div class=\"edui-close\" data-hide=\"modal\"></div>' +\n        '<h3 class=\"edui-title\"><%=title%></h3>' +\n        '</div>' +\n        '<div class=\"edui-modal-body\"  style=\"<%if(width){%>width:<%=width%>px;<%}%>' +\n        '<%if(height){%>height:<%=height%>px;<%}%>\">' +\n        ' </div>' +\n        '<% if(cancellabel || oklabel) {%>' +\n        '<div class=\"edui-modal-footer\">' +\n        '<div class=\"edui-modal-tip\"></div>' +\n        '<%if(oklabel){%><div class=\"edui-btn edui-btn-primary\" data-ok=\"modal\"><%=oklabel%></div><%}%>' +\n        '<%if(cancellabel){%><div class=\"edui-btn\" data-hide=\"modal\"><%=cancellabel%></div><%}%>' +\n        '</div>' +\n        '<%}%></div>',\n    defaultOpt: {\n        title: \"\",\n        cancellabel: \"\",\n        oklabel: \"\",\n        width: '',\n        height: '',\n        backdrop: true,\n        keyboard: true\n    },\n    init: function (options) {\n        var me = this;\n\n        me.root($($.parseTmpl(me.tpl, options || {})));\n\n        me.data(\"options\", options);\n        if (options.okFn) {\n            me.on('ok', $.proxy(options.okFn, me))\n        }\n        if (options.cancelFn) {\n            me.on('beforehide', $.proxy(options.cancelFn, me))\n        }\n\n        me.root().delegate('[data-hide=\"modal\"]', 'click', $.proxy(me.hide, me))\n            .delegate('[data-ok=\"modal\"]', 'click', $.proxy(me.ok, me));\n\n        $('[data-hide=\"modal\"],[data-ok=\"modal\"]',me.root()).hover(function(){\n            $(this).toggleClass('edui-hover')\n        });\n    },\n    toggle: function () {\n        var me = this;\n        return me[!me.data(\"isShown\") ? 'show' : 'hide']();\n    },\n    show: function () {\n\n        var me = this;\n\n        me.trigger(\"beforeshow\");\n\n        if (me.data(\"isShown\")) return;\n\n        me.data(\"isShown\", true);\n\n        me.escape();\n\n        me.backdrop(function () {\n            me.autoCenter();\n            me.root()\n                .show()\n                .focus()\n                .trigger('aftershow');\n        })\n    },\n    showTip: function ( text ) {\n        $( '.edui-modal-tip', this.root() ).html( text ).fadeIn();\n    },\n    hideTip: function ( text ) {\n        $( '.edui-modal-tip', this.root() ).fadeOut( function (){\n            $(this).html('');\n        } );\n    },\n    autoCenter: function () {\n        //ie6下不用处理了\n        !$.IE6 && this.root().css(\"margin-left\", -(this.root().width() / 2));\n    },\n    hide: function () {\n        var me = this;\n\n        me.trigger(\"beforehide\");\n\n        if (!me.data(\"isShown\")) return;\n\n        me.data(\"isShown\", false);\n\n        me.escape();\n\n        me.hideModal();\n    },\n    escape: function () {\n        var me = this;\n        if (me.data(\"isShown\") && me.data(\"options\").keyboard) {\n            me.root().on('keyup', function (e) {\n                e.which == 27 && me.hide();\n            })\n        }\n        else if (!me.data(\"isShown\")) {\n            me.root().off('keyup');\n        }\n    },\n    hideModal: function () {\n        var me = this;\n        me.root().hide();\n        me.backdrop(function () {\n            me.removeBackdrop();\n            me.trigger('afterhide');\n        })\n    },\n    removeBackdrop: function () {\n        this.$backdrop && this.$backdrop.remove();\n        this.$backdrop = null;\n    },\n    backdrop: function (callback) {\n        var me = this;\n        if (me.data(\"isShown\") && me.data(\"options\").backdrop) {\n            me.$backdrop = $('<div class=\"edui-modal-backdrop\" />').click(\n                me.data(\"options\").backdrop == 'static' ?\n                    $.proxy(me.root()[0].focus, me.root()[0])\n                    : $.proxy(me.hide, me)\n            )\n        }\n        me.trigger('afterbackdrop');\n        callback && callback();\n\n    },\n    attachTo: function ($obj) {\n        var me = this\n        if (!$obj.data('$mergeObj')) {\n\n            $obj.data('$mergeObj', me.root());\n            $obj.on('click', function () {\n                me.toggle($obj)\n            });\n            me.data('$mergeObj', $obj)\n        }\n    },\n    ok: function () {\n        var me = this;\n        me.trigger('beforeok');\n        if (me.trigger(\"ok\", me) === false) {\n            return;\n        }\n        me.hide();\n    },\n    getBodyContainer: function () {\n        return this.root().find('.edui-modal-body')\n    }\n});\n\n\n/*tooltip 类*/\nUM.ui.define('tooltip', {\n    tpl: '<div class=\"edui-tooltip\" unselectable=\"on\" onmousedown=\"return false\">' +\n        '<div class=\"edui-tooltip-arrow\" unselectable=\"on\" onmousedown=\"return false\"></div>' +\n        '<div class=\"edui-tooltip-inner\" unselectable=\"on\" onmousedown=\"return false\"></div>' +\n        '</div>',\n    init: function (options) {\n        var me = this;\n        me.root($($.parseTmpl(me.tpl, options || {})));\n    },\n    content: function (e) {\n        var me = this,\n            title = $(e.currentTarget).attr(\"data-original-title\");\n\n        me.root().find('.edui-tooltip-inner')['text'](title);\n    },\n    position: function (e) {\n        var me = this,\n            $obj = $(e.currentTarget);\n\n        me.root().css($.extend({display: 'block'}, $obj ? {\n            top: $obj.outerHeight(),\n            left: (($obj.outerWidth() - me.root().outerWidth()) / 2)\n        } : {}))\n    },\n    show: function (e) {\n        if ($(e.currentTarget).hasClass('edui-disabled')) return;\n\n        var me = this;\n        me.content(e);\n        me.root().appendTo($(e.currentTarget));\n        me.position(e);\n        me.root().css('display', 'block');\n    },\n    hide: function () {\n        var me = this;\n        me.root().css('display', 'none')\n    },\n    attachTo: function ($obj) {\n        var me = this;\n\n        function tmp($obj) {\n            var me = this;\n\n            if (!$.contains(document.body, me.root()[0])) {\n                me.root().appendTo($obj);\n            }\n\n            me.data('tooltip', me.root());\n\n            $obj.each(function () {\n                if ($(this).attr(\"data-original-title\")) {\n                    $(this).on('mouseenter', $.proxy(me.show, me))\n                        .on('mouseleave click', $.proxy(me.hide, me))\n\n                }\n            });\n\n        }\n\n        if ($.type($obj) === \"undefined\") {\n            $(\"[data-original-title]\").each(function (i, el) {\n                tmp.call(me, $(el));\n            })\n\n        } else {\n            if (!$obj.data('tooltip')) {\n                tmp.call(me, $obj);\n            }\n        }\n    }\n});\n\n/*tab 类*/\nUM.ui.define('tab', {\n    init: function (options) {\n        var me = this,\n            slr = options.selector;\n\n        if ($.type(slr)) {\n            me.root($(slr, options.context));\n            me.data(\"context\", options.context);\n\n            $(slr, me.data(\"context\")).on('click', function (e) {\n                me.show(e);\n            });\n        }\n    },\n    show: function (e) {\n\n        var me = this,\n            $cur = $(e.target),\n            $ul = $cur.closest('ul'),\n            selector,\n            previous,\n            $target,\n            e;\n\n        selector = $cur.attr('data-context');\n        selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '');\n\n        var $tmp = $cur.parent('li');\n\n        if (!$tmp.length || $tmp.hasClass('edui-active')) return;\n\n        previous = $ul.find('.edui-active:last a')[0];\n\n        e = $.Event('beforeshow', {\n            target: $cur[0],\n            relatedTarget: previous\n        });\n\n        me.trigger(e);\n\n        if (e.isDefaultPrevented()) return;\n\n        $target = $(selector, me.data(\"context\"));\n\n        me.activate($cur.parent('li'), $ul);\n        me.activate($target, $target.parent(), function () {\n            me.trigger({\n                type: 'aftershow', relatedTarget: previous\n            })\n        });\n    },\n    activate: function (element, container, callback) {\n        if (element === undefined) {\n            return $(\".edui-tab-item.edui-active\",this.root()).index();\n        }\n\n        var $active = container.find('> .edui-active');\n\n        $active.removeClass('edui-active');\n\n        element.addClass('edui-active');\n\n        callback && callback();\n    }\n});\n\n\n//button 类\nUM.ui.define('separator', {\n    tpl: '<div class=\"edui-separator\" unselectable=\"on\" onmousedown=\"return false\" ></div>',\n    init: function (options) {\n        var me = this;\n        me.root($($.parseTmpl(me.tpl, options)));\n        return me;\n    }\n});\n/**\n * @file adapter.js\n * @desc adapt ui to editor\n * @import core/Editor.js, core/utils.js\n */\n\n(function () {\n    var _editorUI = {},\n        _editors = {},\n        _readyFn = [],\n        _activeWidget = null,\n        _widgetData = {},\n        _widgetCallBack = {},\n        _cacheUI = {},\n        _maxZIndex = null;\n\n    utils.extend(UM, {\n        defaultWidth : 500,\n        defaultHeight : 500,\n        registerUI: function (name, fn) {\n            utils.each(name.split(/\\s+/), function (uiname) {\n                _editorUI[uiname] = fn;\n            })\n        },\n\n        setEditor : function(editor){\n            !_editors[editor.id] && (_editors[editor.id] = editor);\n        },\n        registerWidget : function(name,pro,cb){\n            _widgetData[name] = $.extend2(pro,{\n                $root : '',\n                _preventDefault:false,\n                root:function($el){\n                    return this.$root || (this.$root = $el);\n                },\n                preventDefault:function(){\n                    this._preventDefault = true;\n                },\n                clear:false\n            });\n            if(cb){\n                _widgetCallBack[name] = cb;\n            }\n        },\n        getWidgetData : function(name){\n            return _widgetData[name]\n        },\n        setWidgetBody : function(name,$widget,editor){\n            if(!editor._widgetData){\n\n                utils.extend(editor,{\n                    _widgetData : {},\n                    getWidgetData : function(name){\n                        return this._widgetData[name];\n                    },\n                    getWidgetCallback : function(widgetName){\n                        var me = this;\n                        return function(){\n                            return  _widgetCallBack[widgetName].apply(me,[me,$widget].concat(Array.prototype.slice.call(arguments,0)))\n                        }\n                    }\n                })\n\n            }\n            var pro = _widgetData[name];\n            if(!pro){\n                return null;\n            }\n            pro = editor._widgetData[name];\n            if(!pro){\n                pro = _widgetData[name];\n                pro = editor._widgetData[name] = $.type(pro) == 'function' ? pro : utils.clone(pro);\n            }\n\n            pro.root($widget.edui().getBodyContainer());\n\n            pro.initContent(editor,$widget);\n            if(!pro._preventDefault){\n                pro.initEvent(editor,$widget);\n            }\n\n            pro.width &&  $widget.width(pro.width);\n\n\n        },\n        setActiveWidget : function($widget){\n            _activeWidget = $widget;\n        },\n        getEditor: function (id, options) {\n            var editor = _editors[id] || (_editors[id] = this.createEditor(id, options));\n            _maxZIndex = _maxZIndex ? Math.max(editor.getOpt('zIndex'), _maxZIndex):editor.getOpt('zIndex');\n            return editor;\n        },\n        setTopEditor: function(editor){\n            $.each(_editors, function(i, o){\n                if(editor == o) {\n                    editor.$container && editor.$container.css('zIndex', _maxZIndex + 1);\n                } else {\n                    o.$container && o.$container.css('zIndex', o.getOpt('zIndex'));\n                }\n            });\n        },\n        clearCache : function(id){\n            if ( _editors[id]) {\n                delete  _editors[id]\n            }\n        },\n        delEditor: function (id) {\n            var editor;\n            if (editor = _editors[id]) {\n                editor.destroy();\n            }\n        },\n        ready: function( fn ){\n            _readyFn.push( fn );\n        },\n        createEditor: function (id, opt) {\n            var editor = new UM.Editor(opt);\n            var T = this;\n\n            editor.langIsReady ? $.proxy(renderUI,T)() : editor.addListener(\"langReady\", $.proxy(renderUI,T));\n            function renderUI(){\n\n\n                var $container = this.createUI('#' + id, editor);\n                editor.key=id;\n                editor.ready(function(){\n                    $.each( _readyFn, function( index, fn ){\n                        $.proxy( fn, editor )();\n                    } );\n                });\n                var options = editor.options;\n                if(options.initialFrameWidth){\n                    options.minFrameWidth = options.initialFrameWidth\n                }else{\n                    options.minFrameWidth = options.initialFrameWidth = editor.$body.width() || UM.defaultWidth;\n                }\n\n                $container.css({\n                    width: options.initialFrameWidth,\n                    zIndex:editor.getOpt('zIndex')\n                });\n\n                //ie6下缓存图片\n                UM.browser.ie && UM.browser.version === 6 && document.execCommand(\"BackgroundImageCache\", false, true);\n\n                editor.render(id);\n\n\n                //添加tooltip;\n                $.eduitooltip && $.eduitooltip('attachTo', $(\"[data-original-title]\",$container)).css('z-index',editor.getOpt('zIndex')+1);\n\n                $container.find('a').click(function(evt){\n                    evt.preventDefault()\n                });\n\n                editor.fireEvent(\"afteruiready\");\n            }\n\n            return editor;\n\n        },\n        createUI: function (id, editor) {\n            var $editorCont = $(id),\n                $container = $('<div class=\"edui-container\"><div class=\"edui-editor-body\"></div></div>').insertBefore($editorCont);\n            editor.$container = $container;\n            editor.container = $container[0];\n\n            editor.$body = $editorCont;\n\n            //修正在ie9+以上的版本中，自动长高收起时的，残影问题\n            if(browser.ie && browser.ie9above){\n                var $span = $('<span style=\"padding:0;margin:0;height:0;width:0\"></span>');\n                $span.insertAfter($container);\n            }\n            //初始化注册的ui组件\n            $.each(_editorUI,function(n,v){\n                var widget = v.call(editor,n);\n                if(widget){\n                    _cacheUI[n] = widget;\n                }\n\n            });\n\n            $container.find('.edui-editor-body').append($editorCont).before(this.createToolbar(editor.options, editor));\n\n            $container.find('.edui-toolbar').append($('<div class=\"edui-dialog-container\"></div>'));\n\n\n            return $container;\n        },\n        createToolbar: function (options, editor) {\n            var $toolbar = $.eduitoolbar(), toolbar = $toolbar.edui();\n            //创建下来菜单列表\n\n            if (options.toolbar && options.toolbar.length) {\n                var btns = [];\n                $.each(options.toolbar,function(i,uiNames){\n                    $.each(uiNames.split(/\\s+/),function(index,name){\n                        if(name == '|'){\n                                $.eduiseparator && btns.push($.eduiseparator());\n                        }else{\n                            var ui = _cacheUI[name];\n                            if(name==\"fullscreen\"){\n                                ui&&btns.unshift(ui);\n                            }else{\n                                ui && btns.push(ui);\n                            }\n                        }\n\n                    });\n                    btns.length && toolbar.appendToBtnmenu(btns);\n                });\n            } else {\n                $toolbar.find('.edui-btn-toolbar').remove()\n            }\n            return $toolbar;\n        }\n\n    })\n\n\n})();\n\n\n\nUM.registerUI('bold italic redo undo underline strikethrough superscript subscript insertorderedlist insertunorderedlist ' +\n    'cleardoc selectall link unlink print preview justifyleft justifycenter justifyright justifyfull removeformat horizontal drafts',\n    function(name) {\n        var me = this;\n        var $btn = $.eduibutton({\n            icon : name,\n            click : function(){\n                me.execCommand(name);\n            },\n            title: this.getLang('labelMap')[name] || ''\n        });\n\n        this.addListener('selectionchange',function(){\n            var state = this.queryCommandState(name);\n            $btn.edui().disabled(state == -1).active(state == 1)\n        });\n        return $btn;\n    }\n);\n\n\n/**\n * 全屏组件\n */\n\n(function(){\n\n    //状态缓存\n    var STATUS_CACHE = {},\n    //状态值列表\n        STATUS_LIST = [ 'width', 'height', 'position', 'top', 'left', 'margin', 'padding', 'overflowX', 'overflowY' ],\n        CONTENT_AREA_STATUS = {},\n    //页面状态\n        DOCUMENT_STATUS = {},\n        DOCUMENT_ELEMENT_STATUS = {},\n\n        FULLSCREENS = {};\n\n\n    UM.registerUI('fullscreen', function( name ){\n\n        var me = this,\n            $button = $.eduibutton({\n                'icon': 'fullscreen',\n                'title': (me.options.labelMap && me.options.labelMap[name]) || me.getLang(\"labelMap.\" + name),\n                'click': function(){\n                    //切换\n                    me.execCommand( name );\n                    UM.setTopEditor(me);\n                }\n            });\n\n        me.addListener( \"selectionchange\", function () {\n\n            var state = this.queryCommandState( name );\n            $button.edui().disabled( state == -1 ).active( state == 1 );\n\n        } );\n\n        //切换至全屏\n        me.addListener('ready', function(){\n\n            me.options.fullscreen && Fullscreen.getInstance( me ).toggle();\n\n        });\n\n        return $button;\n\n    });\n\n    UM.commands[ 'fullscreen' ] = {\n\n        execCommand: function (cmdName) {\n\n            Fullscreen.getInstance( this ).toggle();\n\n        },\n        queryCommandState: function (cmdName) {\n\n            return this._edui_fullscreen_status;\n        },\n        notNeedUndo: 1\n\n    };\n\n    function Fullscreen( editor ) {\n\n        var me = this;\n\n        if( !editor ) {\n            throw new Error('invalid params, notfound editor');\n        }\n\n        me.editor = editor;\n\n        //记录初始化的全屏组件\n        FULLSCREENS[ editor.uid ] = this;\n\n        editor.addListener('destroy', function(){\n            delete FULLSCREENS[ editor.uid ];\n            me.editor = null;\n        });\n\n    }\n\n    Fullscreen.prototype = {\n\n        /**\n         * 全屏状态切换\n         */\n        toggle: function(){\n\n            var editor = this.editor,\n            //当前编辑器的缩放状态\n                _edui_fullscreen_status = this.isFullState();\n            editor.fireEvent('beforefullscreenchange', !_edui_fullscreen_status );\n\n            //更新状态\n            this.update( !_edui_fullscreen_status );\n\n            !_edui_fullscreen_status ? this.enlarge() : this.revert();\n\n            editor.fireEvent('afterfullscreenchange', !_edui_fullscreen_status );\n            if(editor.body.contentEditable === 'true'){\n                editor.fireEvent( 'fullscreenchanged', !_edui_fullscreen_status );\n            }\n\n            editor.fireEvent( 'selectionchange' );\n\n        },\n        /**\n         * 执行放大\n         */\n        enlarge: function(){\n\n            this.saveSataus();\n\n            this.setDocumentStatus();\n\n            this.resize();\n\n        },\n        /**\n         * 全屏还原\n         */\n        revert: function(){\n\n            //还原CSS表达式\n            var options = this.editor.options,\n                height = /%$/.test(options.initialFrameHeight) ?  '100%' : (options.initialFrameHeight - this.getStyleValue(\"padding-top\")- this.getStyleValue(\"padding-bottom\") - this.getStyleValue('border-width'));\n\n            $.IE6 && this.getEditorHolder().style.setExpression('height', 'this.scrollHeight <= ' + height + ' ? \"' + height + 'px\" : \"auto\"');\n\n            //还原容器状态\n            this.revertContainerStatus();\n\n            this.revertContentAreaStatus();\n\n            this.revertDocumentStatus();\n\n        },\n        /**\n         * 更新状态\n         * @param isFull 当前状态是否是全屏状态\n         */\n        update: function( isFull ) {\n            this.editor._edui_fullscreen_status = isFull;\n        },\n        /**\n         * 调整当前编辑器的大小, 如果当前编辑器不处于全屏状态， 则不做调整\n         */\n        resize: function(){\n\n            var $win = null,\n                height = 0,\n                width = 0,\n                borderWidth = 0,\n                paddingWidth = 0,\n                editor = this.editor,\n                me = this,\n                bound = null,\n                editorBody = null;\n\n            if( !this.isFullState() ) {\n                return;\n            }\n\n            $win = $( window );\n            width = $win.width();\n            height = $win.height();\n            editorBody = this.getEditorHolder();\n            //文本编辑区border宽度\n            borderWidth = parseInt( domUtils.getComputedStyle( editorBody, 'border-width' ), 10 ) || 0;\n            //容器border宽度\n            borderWidth += parseInt( domUtils.getComputedStyle( editor.container, 'border-width' ), 10 ) || 0;\n            //容器padding\n            paddingWidth += parseInt( domUtils.getComputedStyle( editorBody, 'padding-left' ), 10 ) + parseInt( domUtils.getComputedStyle( editorBody, 'padding-right' ), 10 ) || 0;\n\n            //干掉css表达式\n            $.IE6 && editorBody.style.setExpression( 'height', null );\n\n            bound = this.getBound();\n\n            $( editor.container ).css( {\n                width: width + 'px',\n                height: height + 'px',\n                position: !$.IE6 ? 'fixed' : 'absolute',\n                top: bound.top,\n                left: bound.left,\n                margin: 0,\n                padding: 0,\n                overflowX: 'hidden',\n                overflowY: 'hidden'\n            } );\n\n            $( editorBody ).css({\n                width: width - 2*borderWidth - paddingWidth + 'px',\n                height: height - 2*borderWidth - ( editor.options.withoutToolbar ? 0 : $( '.edui-toolbar', editor.container ).outerHeight() ) - $( '.edui-bottombar', editor.container).outerHeight() + 'px',\n                overflowX: 'hidden',\n                overflowY: 'auto'\n            });\n\n        },\n        /**\n         * 保存状态\n         */\n        saveSataus: function(){\n\n            var styles = this.editor.container.style,\n                tmp = null,\n                cache = {};\n\n            for( var i= 0, len = STATUS_LIST.length; i<len; i++ ) {\n\n                tmp = STATUS_LIST[ i ];\n                cache[ tmp ] = styles[ tmp ];\n\n            }\n\n            STATUS_CACHE[ this.editor.uid ] = cache;\n\n            this.saveContentAreaStatus();\n            this.saveDocumentStatus();\n\n        },\n        saveContentAreaStatus: function(){\n\n            var $holder = $(this.getEditorHolder());\n\n            CONTENT_AREA_STATUS[ this.editor.uid ] = {\n                width: $holder.css(\"width\"),\n                overflowX: $holder.css(\"overflowX\"),\n                overflowY: $holder.css(\"overflowY\"),\n                height: $holder.css(\"height\")\n            };\n\n        },\n        /**\n         * 保存与指定editor相关的页面的状态\n         */\n        saveDocumentStatus: function(){\n\n            var $doc = $( this.getEditorDocumentBody() );\n\n            DOCUMENT_STATUS[ this.editor.uid ] = {\n                overflowX: $doc.css( 'overflowX' ),\n                overflowY: $doc.css( 'overflowY' )\n            };\n            DOCUMENT_ELEMENT_STATUS[ this.editor.uid ] = {\n                overflowX: $( this.getEditorDocumentElement() ).css( 'overflowX'),\n                overflowY: $( this.getEditorDocumentElement() ).css( 'overflowY' )\n            };\n\n        },\n        /**\n         * 恢复容器状态\n         */\n        revertContainerStatus: function(){\n            $( this.editor.container ).css( this.getEditorStatus() );\n        },\n        /**\n         * 恢复编辑区状态\n         */\n        revertContentAreaStatus: function(){\n            var holder = this.getEditorHolder(),\n                state = this.getContentAreaStatus();\n\n            if ( this.supportMin() ) {\n                delete state.height;\n                holder.style.height = null;\n            }\n\n            $( holder ).css( state );\n        },\n        /**\n         * 恢复页面状态\n         */\n        revertDocumentStatus: function() {\n\n            var status = this.getDocumentStatus();\n            $( this.getEditorDocumentBody() ).css( 'overflowX', status.body.overflowX );\n            $( this.getEditorDocumentElement() ).css( 'overflowY', status.html.overflowY );\n\n        },\n        setDocumentStatus: function(){\n            $(this.getEditorDocumentBody()).css( {\n                overflowX: 'hidden',\n                overflowY: 'hidden'\n            } );\n            $(this.getEditorDocumentElement()).css( {\n                overflowX: 'hidden',\n                overflowY: 'hidden'\n            } );\n        },\n        /**\n         * 检测当前编辑器是否处于全屏状态全屏状态\n         * @returns {boolean} 是否处于全屏状态\n         */\n        isFullState: function(){\n            return !!this.editor._edui_fullscreen_status;\n        },\n        /**\n         * 获取编辑器状态\n         */\n        getEditorStatus: function(){\n            return STATUS_CACHE[ this.editor.uid ];\n        },\n        getContentAreaStatus: function(){\n            return CONTENT_AREA_STATUS[ this.editor.uid ];\n        },\n        getEditorDocumentElement: function(){\n            return this.editor.container.ownerDocument.documentElement;\n        },\n        getEditorDocumentBody: function(){\n            return this.editor.container.ownerDocument.body;\n        },\n        /**\n         * 获取编辑区包裹对象\n         */\n        getEditorHolder: function(){\n            return this.editor.body;\n        },\n        /**\n         * 获取编辑器状态\n         * @returns {*}\n         */\n        getDocumentStatus: function(){\n            return {\n                'body': DOCUMENT_STATUS[ this.editor.uid ],\n                'html': DOCUMENT_ELEMENT_STATUS[ this.editor.uid ]\n            };\n        },\n        supportMin: function () {\n\n            var node = null;\n\n            if ( !this._support ) {\n\n                node = document.createElement(\"div\");\n\n                this._support = \"minWidth\" in node.style;\n\n                node = null;\n\n            }\n\n            return this._support;\n\n        },\n        getBound: function () {\n\n            var tags = {\n                    html: true,\n                    body: true\n                },\n                result = {\n                    top: 0,\n                    left: 0\n                },\n                offsetParent = null;\n\n            if ( !$.IE6 ) {\n                return result;\n            }\n\n            offsetParent = this.editor.container.offsetParent;\n\n            if( offsetParent && !tags[ offsetParent.nodeName.toLowerCase() ] ) {\n                tags = offsetParent.getBoundingClientRect();\n                result.top = -tags.top;\n                result.left = -tags.left;\n            }\n\n            return result;\n\n        },\n        getStyleValue: function (attr) {\n            return parseInt(domUtils.getComputedStyle( this.getEditorHolder() ,attr));\n        }\n    };\n\n\n    $.extend( Fullscreen, {\n        /**\n         * 监听resize\n         */\n        listen: function(){\n\n            var timer = null;\n\n            if( Fullscreen._hasFullscreenListener ) {\n                return;\n            }\n\n            Fullscreen._hasFullscreenListener = true;\n\n            $( window ).on( 'resize', function(){\n\n                if( timer !== null ) {\n                    window.clearTimeout( timer );\n                    timer = null;\n                }\n\n                timer = window.setTimeout(function(){\n\n                    for( var key in FULLSCREENS ) {\n                        FULLSCREENS[ key ].resize();\n                    }\n\n                    timer = null;\n\n                }, 50);\n\n            } );\n\n        },\n\n        getInstance: function ( editor ) {\n\n            if ( !FULLSCREENS[editor.uid  ] ) {\n                new Fullscreen( editor );\n            }\n\n            return FULLSCREENS[editor.uid  ];\n\n        }\n\n    });\n\n    //开始监听\n    Fullscreen.listen();\n\n})();\nUM.registerUI('link image video map formula',function(name){\n\n    var me = this, currentRange, $dialog,\n        opt = {\n            title: (me.options.labelMap && me.options.labelMap[name]) || me.getLang(\"labelMap.\" + name),\n            url: me.options.UMEDITOR_HOME_URL + 'dialogs/' + name + '/' + name + '.js'\n        };\n\n    var $btn = $.eduibutton({\n        icon: name,\n        title: this.getLang('labelMap')[name] || ''\n    });\n    //加载模版数据\n    utils.loadFile(document,{\n        src: opt.url,\n        tag: \"script\",\n        type: \"text/javascript\",\n        defer: \"defer\"\n    },function(){\n        //调整数据\n        var data = UM.getWidgetData(name);\n        if(!data) return;\n        if(data.buttons){\n            var ok = data.buttons.ok;\n            if(ok){\n                opt.oklabel = ok.label || me.getLang('ok');\n                if(ok.exec){\n                    opt.okFn = function(){\n                        return $.proxy(ok.exec,null,me,$dialog)()\n                    }\n                }\n            }\n            var cancel = data.buttons.cancel;\n            if(cancel){\n                opt.cancellabel = cancel.label || me.getLang('cancel');\n                if(cancel.exec){\n                    opt.cancelFn = function(){\n                        return $.proxy(cancel.exec,null,me,$dialog)()\n                    }\n                }\n            }\n        }\n        data.width && (opt.width = data.width);\n        data.height && (opt.height = data.height);\n\n        $dialog = $.eduimodal(opt);\n\n        $dialog.attr('id', 'edui-dialog-' + name).addClass('edui-dialog-' + name)\n            .find('.edui-modal-body').addClass('edui-dialog-' + name + '-body');\n\n        $dialog.edui().on('beforehide',function () {\n            var rng = me.selection.getRange();\n            if (rng.equals(currentRange)) {\n                rng.select()\n            }\n        }).on('beforeshow', function () {\n                var $root = this.root(),\n                    win = null,\n                    offset = null;\n                currentRange = me.selection.getRange();\n                if (!$root.parent()[0]) {\n                    me.$container.find('.edui-dialog-container').append($root);\n                }\n\n                //IE6下 特殊处理, 通过计算进行定位\n                if( $.IE6 ) {\n\n                    win = {\n                        width: $( window ).width(),\n                        height: $( window ).height()\n                    };\n                    offset = $root.parents(\".edui-toolbar\")[0].getBoundingClientRect();\n                    $root.css({\n                        position: 'absolute',\n                        margin: 0,\n                        left: ( win.width - $root.width() ) / 2 - offset.left,\n                        top: 100 - offset.top\n                    });\n\n                }\n                UM.setWidgetBody(name,$dialog,me);\n                UM.setTopEditor(me);\n        }).on('afterbackdrop',function(){\n            this.$backdrop.css('zIndex',me.getOpt('zIndex')+1).appendTo(me.$container.find('.edui-dialog-container'))\n            $dialog.css('zIndex',me.getOpt('zIndex')+2)\n        }).on('beforeok',function(){\n            try{\n                currentRange.select()\n            }catch(e){}\n        }).attachTo($btn)\n    });\n\n\n\n\n    me.addListener('selectionchange', function () {\n        var state = this.queryCommandState(name);\n        $btn.edui().disabled(state == -1).active(state == 1)\n    });\n    return $btn;\n});\nUM.registerUI( 'emotion formula', function( name ){\n    var me = this,\n        url  = me.options.UMEDITOR_HOME_URL + 'dialogs/' +name+ '/'+name+'.js';\n\n    var $btn = $.eduibutton({\n        icon: name,\n        title: this.getLang('labelMap')[name] || ''\n    });\n\n    //加载模版数据\n    utils.loadFile(document,{\n        src: url,\n        tag: \"script\",\n        type: \"text/javascript\",\n        defer: \"defer\"\n    },function(){\n        var opt = {\n            url : url\n        };\n        //调整数据\n        var data = UM.getWidgetData(name);\n\n        data.width && (opt.width = data.width);\n        data.height && (opt.height = data.height);\n\n        $.eduipopup(opt).css('zIndex',me.options.zIndex + 1)\n            .addClass('edui-popup-' + name)\n            .edui()\n            .on('beforeshow',function(){\n                var $root = this.root();\n                if(!$root.parent().length){\n                    me.$container.find('.edui-dialog-container').append($root);\n                }\n                UM.setWidgetBody(name,$root,me);\n                UM.setTopEditor(me);\n            }).attachTo($btn,{\n                offsetTop:-5,\n                offsetLeft:10,\n                caretLeft:11,\n                caretTop:-8\n            });\n        me.addListener('selectionchange', function () {\n            var state = this.queryCommandState(name);\n            $btn.edui().disabled(state == -1).active(state == 1);\n        });\n    });\n    return $btn;\n\n} );\nUM.registerUI('imagescale',function () {\n    var me = this,\n        $imagescale;\n\n    me.setOpt('imageScaleEnabled', true);\n\n    if (browser.webkit && me.getOpt('imageScaleEnabled')) {\n\n        me.addListener('click', function (type, e) {\n            var range = me.selection.getRange(),\n                img = range.getClosedNode(),\n                target = e.target;\n\n            /* 点击第一个图片的后面,八个角不消失 fix:3652 */\n            if (img && img.tagName == 'IMG' && target == img) {\n\n                if (!$imagescale) {\n                    $imagescale = $.eduiscale({'$wrap':me.$container}).css('zIndex', me.options.zIndex);\n                    me.$container.append($imagescale);\n\n                    var _keyDownHandler = function () {\n                        $imagescale.edui().hide();\n                    }, _mouseDownHandler = function (e) {\n                        var ele = e.target || e.srcElement;\n                        if (ele && ele.className.indexOf('edui-scale') == -1) {\n                            _keyDownHandler(e);\n                        }\n                    }, timer;\n\n                    $imagescale.edui()\n                        .on('aftershow', function () {\n                            $(document).bind('keydown', _keyDownHandler);\n                            $(document).bind('mousedown', _mouseDownHandler);\n                            me.selection.getNative().removeAllRanges();\n                        })\n                        .on('afterhide', function () {\n                            $(document).unbind('keydown', _keyDownHandler);\n                            $(document).unbind('mousedown', _mouseDownHandler);\n                            var target = $imagescale.edui().getScaleTarget();\n                            if (target.parentNode) {\n                                me.selection.getRange().selectNode(target).select();\n                            }\n                        })\n                        .on('mousedown', function (e) {\n                            me.selection.getNative().removeAllRanges();\n                            var ele = e.target || e.srcElement;\n                            if (ele && ele.className.indexOf('edui-scale-hand') == -1) {\n                                timer = setTimeout(function() {\n                                    $imagescale.edui().hide();\n                                }, 200);\n                            }\n                        })\n                        .on('mouseup', function (e) {\n                            var ele = e.target || e.srcElement;\n                            if (ele && ele.className.indexOf('edui-scale-hand') == -1) {\n                                clearTimeout(timer);\n                            }\n                        });\n                }\n                $imagescale.edui().show($(img));\n\n            } else {\n                if ($imagescale && $imagescale.css('display') != 'none') $imagescale.edui().hide();\n\n            }\n        });\n\n        me.addListener('click', function (type, e) {\n            if (e.target.tagName == 'IMG') {\n                var range = new dom.Range(me.document, me.body);\n                range.selectNode(e.target).select();\n            }\n        });\n\n    }\n});\nUM.registerUI('autofloat',function(){\n    var me = this,\n        lang = me.getLang();\n    me.setOpt({\n        autoFloatEnabled: true,\n        topOffset: 0\n    });\n    var optsAutoFloatEnabled = me.options.autoFloatEnabled !== false,\n        topOffset = me.options.topOffset;\n\n\n    //如果不固定toolbar的位置，则直接退出\n    if(!optsAutoFloatEnabled){\n        return;\n    }\n    me.ready(function(){\n        var LteIE6 = browser.ie && browser.version <= 6,\n            quirks = browser.quirks;\n\n        function checkHasUI(){\n            if(!UM.ui){\n                alert(lang.autofloatMsg);\n                return 0;\n            }\n            return 1;\n        }\n        function fixIE6FixedPos(){\n            var docStyle = document.body.style;\n            docStyle.backgroundImage = 'url(\"about:blank\")';\n            docStyle.backgroundAttachment = 'fixed';\n        }\n        var\tbakCssText,\n            placeHolder = document.createElement('div'),\n            toolbarBox,orgTop,\n            getPosition=function(element){\n                var bcr;\n                //trace  IE6下在控制编辑器显隐时可能会报错，catch一下\n                try{\n                    bcr = element.getBoundingClientRect();\n                }catch(e){\n                    bcr={left:0,top:0,height:0,width:0}\n                }\n                var rect = {\n                    left: Math.round(bcr.left),\n                    top: Math.round(bcr.top),\n                    height: Math.round(bcr.bottom - bcr.top),\n                    width: Math.round(bcr.right - bcr.left)\n                };\n                var doc;\n                while ((doc = element.ownerDocument) !== document &&\n                    (element = domUtils.getWindow(doc).frameElement)) {\n                    bcr = element.getBoundingClientRect();\n                    rect.left += bcr.left;\n                    rect.top += bcr.top;\n                }\n                rect.bottom = rect.top + rect.height;\n                rect.right = rect.left + rect.width;\n                return rect;\n            };\n        var isFullScreening = false;\n        function setFloating(){\n            if(isFullScreening){\n                return;\n            }\n            var toobarBoxPos = domUtils.getXY(toolbarBox),\n                origalFloat = domUtils.getComputedStyle(toolbarBox,'position'),\n                origalLeft = domUtils.getComputedStyle(toolbarBox,'left');\n            toolbarBox.style.width = toolbarBox.offsetWidth + 'px';\n            toolbarBox.style.zIndex = me.options.zIndex * 1 + 1;\n            toolbarBox.parentNode.insertBefore(placeHolder, toolbarBox);\n            if (LteIE6 || (quirks && browser.ie)) {\n                if(toolbarBox.style.position != 'absolute'){\n                    toolbarBox.style.position = 'absolute';\n                }\n                toolbarBox.style.top = (document.body.scrollTop||document.documentElement.scrollTop) - orgTop + topOffset  + 'px';\n            } else {\n                if(toolbarBox.style.position != 'fixed'){\n                    toolbarBox.style.position = 'fixed';\n                    toolbarBox.style.top = topOffset +\"px\";\n                    ((origalFloat == 'absolute' || origalFloat == 'relative') && parseFloat(origalLeft)) && (toolbarBox.style.left = toobarBoxPos.x + 'px');\n                }\n            }\n        }\n        function unsetFloating(){\n\n            if(placeHolder.parentNode){\n                placeHolder.parentNode.removeChild(placeHolder);\n            }\n            toolbarBox.style.cssText = bakCssText;\n        }\n\n        function updateFloating(){\n            var rect3 = getPosition(me.container);\n            var offset=me.options.toolbarTopOffset||0;\n            if (rect3.top < 0 && rect3.bottom - toolbarBox.offsetHeight > offset) {\n                setFloating();\n            }else{\n                unsetFloating();\n            }\n        }\n        var defer_updateFloating = utils.defer(function(){\n            updateFloating();\n        },browser.ie ? 200 : 100,true);\n\n        me.addListener('destroy',function(){\n            $(window).off('scroll resize',updateFloating);\n            me.removeListener('keydown', defer_updateFloating);\n        });\n\n        if(checkHasUI(me)){\n            toolbarBox = $('.edui-toolbar',me.container)[0];\n            me.addListener(\"afteruiready\",function(){\n                setTimeout(function(){\n                    orgTop = $(toolbarBox).offset().top;\n                },100);\n            });\n            bakCssText = toolbarBox.style.cssText;\n            placeHolder.style.height = toolbarBox.offsetHeight + 'px';\n            if(LteIE6){\n                fixIE6FixedPos();\n            }\n\n            $(window).on('scroll resize',updateFloating);\n            me.addListener('keydown', defer_updateFloating);\n            me.addListener('resize', function(){\n                unsetFloating();\n                placeHolder.style.height = toolbarBox.offsetHeight + 'px';\n                updateFloating();\n            });\n\n            me.addListener('beforefullscreenchange', function (t, enabled){\n                if (enabled) {\n                    unsetFloating();\n                    isFullScreening = enabled;\n                }\n            });\n            me.addListener('fullscreenchanged', function (t, enabled){\n                if (!enabled) {\n                    updateFloating();\n                }\n                isFullScreening = enabled;\n            });\n            me.addListener('sourcemodechanged', function (t, enabled){\n                setTimeout(function (){\n                    updateFloating();\n                },0);\n            });\n            me.addListener(\"clearDoc\",function(){\n                setTimeout(function(){\n                    updateFloating();\n                },0);\n\n            })\n        }\n    })\n\n\n});\nUM.registerUI('source',function(name){\n    var me = this;\n    me.addListener('fullscreenchanged',function(){\n        me.$container.find('textarea').width(me.$body.width() - 10).height(me.$body.height())\n\n    });\n    var $btn = $.eduibutton({\n        icon : name,\n        click : function(){\n            me.execCommand(name);\n            UM.setTopEditor(me);\n        },\n        title: this.getLang('labelMap')[name] || ''\n    });\n\n    this.addListener('selectionchange',function(){\n        var state = this.queryCommandState(name);\n        $btn.edui().disabled(state == -1).active(state == 1)\n    });\n    return $btn;\n});\n\nUM.registerUI('paragraph fontfamily fontsize', function( name ) {\n\n    var me = this,\n        label = (me.options.labelMap && me.options.labelMap[name]) || me.getLang(\"labelMap.\" + name),\n        options = {\n            label: label,\n            title: label,\n            comboboxName: name,\n            items: me.options[ name ] || [],\n            itemStyles: [],\n            value: [],\n            autowidthitem: []\n        },\n        $combox = null,\n        comboboxWidget = null;\n    if(options.items.length == 0){\n        return null;\n    }\n    switch ( name ) {\n\n        case 'paragraph':\n            options = transForParagraph( options );\n            break;\n\n        case 'fontfamily':\n            options = transForFontfamily( options );\n            break;\n\n        case 'fontsize':\n            options = transForFontsize( options );\n            break;\n\n    }\n\n    //实例化\n    $combox =  $.eduibuttoncombobox(options).css('zIndex',me.getOpt('zIndex') + 1);\n    comboboxWidget =  $combox.edui();\n\n    comboboxWidget.on('comboboxselect', function( evt, res ){\n                        me.execCommand( name, res.value );\n                    }).on(\"beforeshow\", function(){\n                        if( $combox.parent().length === 0 ) {\n                            $combox.appendTo(  me.$container.find('.edui-dialog-container') );\n                        }\n                        UM.setTopEditor(me);\n                    });\n\n\n    //状态反射\n    this.addListener('selectionchange',function( evt ){\n\n        var state  = this.queryCommandState( name ),\n            value = this.queryCommandValue( name );\n\n        //设置按钮状态\n        comboboxWidget.button().edui().disabled( state == -1 ).active( state == 1 );\n        if(value){\n            //设置label\n            value = value.replace(/['\"]/g, '').toLowerCase().split(/['|\"]?\\s*,\\s*[\\1]?/);\n\n            comboboxWidget.selectItemByLabel( value );\n        }\n\n\n    });\n\n    return comboboxWidget.button().addClass('edui-combobox');\n\n    /**\n     * 宽度自适应工具函数\n     * @param word 单词内容\n     * @param hasSuffix 是否含有后缀\n     */\n    function wordCountAdaptive ( word, hasSuffix ) {\n\n        var $tmpNode = $('<span>' ).html( word ).css( {\n                display: 'inline',\n                position: 'absolute',\n                top: -10000000,\n                left: -100000\n            } ).appendTo( document.body),\n            width = $tmpNode.width();\n\n        $tmpNode.remove();\n        $tmpNode = null;\n\n        if( width < 50 ) {\n\n            return word;\n\n        } else {\n\n            word = word.slice( 0, hasSuffix ? -4 : -1 );\n\n            if( !word.length ) {\n                return '...';\n            }\n\n            return wordCountAdaptive( word + '...', true );\n\n        }\n\n    }\n\n\n    //段落参数转换\n    function transForParagraph ( options ) {\n\n        var tempItems = [];\n\n        for( var key in options.items ) {\n\n            options.value.push( key );\n            tempItems.push( key );\n            options.autowidthitem.push( wordCountAdaptive( key ) );\n\n        }\n\n        options.items = tempItems;\n        options.autoRecord = false;\n\n        return options;\n\n    }\n\n    //字体参数转换\n    function transForFontfamily ( options ) {\n\n        var temp = null,\n            tempItems = [];\n\n        for( var i = 0, len = options.items.length; i < len; i++ ) {\n\n            temp = options.items[ i ].val;\n            tempItems.push( temp.split(/\\s*,\\s*/)[0] );\n            options.itemStyles.push('font-family: ' + temp);\n            options.value.push( temp );\n            options.autowidthitem.push( wordCountAdaptive( tempItems[ i ] ) );\n\n        }\n\n        options.items = tempItems;\n\n        return options;\n\n    }\n\n    //字体大小参数转换\n    function transForFontsize ( options ) {\n\n        var temp = null,\n            tempItems = [];\n\n        options.itemStyles = [];\n        options.value = [];\n\n        for( var i = 0, len = options.items.length; i < len; i++ ) {\n\n            temp = options.items[ i ];\n            tempItems.push( temp );\n            options.itemStyles.push('font-size: ' + temp +'px');\n\n        }\n\n        options.value = options.items;\n        options.items = tempItems;\n        options.autoRecord = false;\n\n        return options;\n\n    }\n\n});\n\n\nUM.registerUI('forecolor backcolor', function( name ) {\n    function getCurrentColor() {\n        return domUtils.getComputedStyle( $colorLabel[0], 'background-color' );\n    }\n\n    var me = this,\n        $colorPickerWidget = null,\n        $colorLabel = null,\n        $btn = null;\n\n    //querycommand\n    this.addListener('selectionchange', function(){\n\n        var state = this.queryCommandState( name );\n        $btn.edui().disabled( state == -1 ).active( state == 1 );\n\n    });\n\n    $btn = $.eduicolorsplitbutton({\n        icon: name,\n        caret: true,\n        name: name,\n        title: me.getLang(\"labelMap\")[name],\n        click: function() {\n            me.execCommand( name, getCurrentColor() );\n        }\n    });\n\n    $colorLabel = $btn.edui().colorLabel();\n\n    $colorPickerWidget = $.eduicolorpicker({\n        name: name,\n        lang_clearColor: me.getLang('clearColor') || '',\n        lang_themeColor: me.getLang('themeColor') || '',\n        lang_standardColor: me.getLang('standardColor') || ''\n    })\n        .on('pickcolor', function( evt, color ){\n            window.setTimeout( function(){\n                $colorLabel.css(\"backgroundColor\", color);\n                me.execCommand( name, color );\n            }, 0 );\n        })\n        .on('show',function(){\n            UM.setActiveWidget( colorPickerWidget.root() );\n        }).css('zIndex',me.getOpt('zIndex') + 1);\n\n    $btn.edui().on('arrowclick',function(){\n        if(!$colorPickerWidget.parent().length){\n            me.$container.find('.edui-dialog-container').append($colorPickerWidget);\n        }\n        $colorPickerWidget.edui().show($btn,{\n            caretDir:\"down\",\n            offsetTop:-5,\n            offsetLeft:8,\n            caretLeft:11,\n            caretTop:-8\n        });\n        UM.setTopEditor(me);\n    }).register('click', $btn, function () {\n            $colorPickerWidget.edui().hide()\n        });\n\n    return $btn;\n\n});\n\n})(jQuery)"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/scripts/app.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\nvar App = function() {\n\n    // IE mode\n    var isRTL = false;\n    var isIE8 = false;\n    var isIE9 = false;\n    var isIE10 = false;\n\n    var resizeHandlers = [];\n\n    var assetsPath = '../assets/';\n\n    var globalImgPath = 'global/img/';\n\n    var globalPluginsPath = 'global/plugins/';\n\n    var globalCssPath = 'global/css/';\n\n    // theme layout color set\n\n    var brandColors = {\n        'blue': '#89C4F4',\n        'red': '#F3565D',\n        'green': '#1bbc9b',\n        'purple': '#9b59b6',\n        'grey': '#95a5a6',\n        'yellow': '#F8CB00'\n    };\n\n    // initializes main settings\n    var handleInit = function() {\n\n        if ($('body').css('direction') === 'rtl') {\n            isRTL = true;\n        }\n\n        isIE8 = !!navigator.userAgent.match(/MSIE 8.0/);\n        isIE9 = !!navigator.userAgent.match(/MSIE 9.0/);\n        isIE10 = !!navigator.userAgent.match(/MSIE 10.0/);\n\n        if (isIE10) {\n            $('html').addClass('ie10'); // detect IE10 version\n        }\n\n        if (isIE10 || isIE9 || isIE8) {\n            $('html').addClass('ie'); // detect IE10 version\n        }\n    };\n\n    // runs callback functions set by App.addResponsiveHandler().\n    var _runResizeHandlers = function() {\n        // reinitialize other subscribed elements\n        for (var i = 0; i < resizeHandlers.length; i++) {\n            var each = resizeHandlers[i];\n            each.call();\n        }\n    };\n\n    var handleOnResize = function() {\n        var windowWidth = $(window).width();\n        var resize;\n        if (isIE8) {\n            var currheight;\n            $(window).resize(function() {\n                if (currheight == document.documentElement.clientHeight) {\n                    return; //quite event since only body resized not window.\n                }\n                if (resize) {\n                    clearTimeout(resize);\n                }\n                resize = setTimeout(function() {\n                    _runResizeHandlers();\n                }, 50); // wait 50ms until window resize finishes.                \n                currheight = document.documentElement.clientHeight; // store last body client height\n            });\n        } else {\n            $(window).resize(function() {\n                if ($(window).width() != windowWidth) {\n                    windowWidth = $(window).width();\n                    if (resize) {\n                        clearTimeout(resize);\n                    }\n                    resize = setTimeout(function() {\n                        _runResizeHandlers();\n                    }, 50); // wait 50ms until window resize finishes.\n                }\n            });\n        }\n    };\n\n    // Handles portlet tools & actions\n    var handlePortletTools = function() {\n        // handle portlet remove\n        $('body').on('click', '.portlet > .portlet-title > .tools > a.remove', function(e) {\n            e.preventDefault();\n            var portlet = $(this).closest(\".portlet\");\n\n            if ($('body').hasClass('page-portlet-fullscreen')) {\n                $('body').removeClass('page-portlet-fullscreen');\n            }\n\n            portlet.find('.portlet-title .fullscreen').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .reload').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .remove').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .config').tooltip('destroy');\n            portlet.find('.portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip('destroy');\n\n            portlet.remove();\n        });\n\n        // handle portlet fullscreen\n        $('body').on('click', '.portlet > .portlet-title .fullscreen', function(e) {\n            e.preventDefault();\n            var portlet = $(this).closest(\".portlet\");\n            if (portlet.hasClass('portlet-fullscreen')) {\n                $(this).removeClass('on');\n                portlet.removeClass('portlet-fullscreen');\n                $('body').removeClass('page-portlet-fullscreen');\n                portlet.children('.portlet-body').css('height', 'auto');\n            } else {\n                var height = App.getViewPort().height -\n                    portlet.children('.portlet-title').outerHeight() -\n                    parseInt(portlet.children('.portlet-body').css('padding-top')) -\n                    parseInt(portlet.children('.portlet-body').css('padding-bottom'));\n\n                $(this).addClass('on');\n                portlet.addClass('portlet-fullscreen');\n                $('body').addClass('page-portlet-fullscreen');\n                portlet.children('.portlet-body').css('height', height);\n            }\n        });\n\n        $('body').on('click', '.portlet > .portlet-title > .tools > a.reload', function(e) {\n            e.preventDefault();\n            var el = $(this).closest(\".portlet\").children(\".portlet-body\");\n            var url = $(this).attr(\"data-url\");\n            var error = $(this).attr(\"data-error-display\");\n            if (url) {\n                App.blockUI({\n                    target: el,\n                    animate: true,\n                    overlayColor: 'none'\n                });\n                $.ajax({\n                    type: \"GET\",\n                    cache: false,\n                    url: url,\n                    dataType: \"html\",\n                    success: function(res) {\n                        App.unblockUI(el);\n                        el.html(res);\n                        App.initAjax() // reinitialize elements & plugins for newly loaded content\n                    },\n                    error: function(xhr, ajaxOptions, thrownError) {\n                        App.unblockUI(el);\n                        var msg = 'Error on reloading the content. Please check your connection and try again.';\n                        if (error == \"toastr\" && toastr) {\n                            toastr.error(msg);\n                        } else if (error == \"notific8\" && $.notific8) {\n                            $.notific8('zindex', 11500);\n                            $.notific8(msg, {\n                                theme: 'ruby',\n                                life: 3000\n                            });\n                        } else {\n                            alert(msg);\n                        }\n                    }\n                });\n            } else {\n                // for demo purpose\n                App.blockUI({\n                    target: el,\n                    animate: true,\n                    overlayColor: 'none'\n                });\n                window.setTimeout(function() {\n                    App.unblockUI(el);\n                }, 1000);\n            }\n        });\n\n        // load ajax data on page init\n        $('.portlet .portlet-title a.reload[data-load=\"true\"]').click();\n\n        $('body').on('click', '.portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand', function(e) {\n            e.preventDefault();\n            var el = $(this).closest(\".portlet\").children(\".portlet-body\");\n            if ($(this).hasClass(\"collapse\")) {\n                $(this).removeClass(\"collapse\").addClass(\"expand\");\n                el.slideUp(200);\n            } else {\n                $(this).removeClass(\"expand\").addClass(\"collapse\");\n                el.slideDown(200);\n            }\n        });\n    };\n    \n    // Handlesmaterial design checkboxes\n    var handleMaterialDesign = function() {\n\n        // Material design ckeckbox and radio effects\n        $('body').on('click', '.md-checkbox > label, .md-radio > label', function() {\n            var the = $(this);\n            // find the first span which is our circle/bubble\n            var el = $(this).children('span:first-child');\n              \n            // add the bubble class (we do this so it doesnt show on page load)\n            el.addClass('inc');\n              \n            // clone it\n            var newone = el.clone(true);  \n              \n            // add the cloned version before our original\n            el.before(newone);  \n              \n            // remove the original so that it is ready to run on next click\n            $(\".\" + el.attr(\"class\") + \":last\", the).remove();\n        }); \n\n        if ($('body').hasClass('page-md')) { \n            // Material design click effect\n            // credit where credit's due; http://thecodeplayer.com/walkthrough/ripple-click-effect-google-material-design       \n            var element, circle, d, x, y;\n            $('body').on('click', 'a.btn, button.btn, input.btn, label.btn', function(e) { \n                element = $(this);\n      \n                if(element.find(\".md-click-circle\").length == 0) {\n                    element.prepend(\"<span class='md-click-circle'></span>\");\n                }\n                    \n                circle = element.find(\".md-click-circle\");\n                circle.removeClass(\"md-click-animate\");\n                \n                if(!circle.height() && !circle.width()) {\n                    d = Math.max(element.outerWidth(), element.outerHeight());\n                    circle.css({height: d, width: d});\n                }\n                \n                x = e.pageX - element.offset().left - circle.width()/2;\n                y = e.pageY - element.offset().top - circle.height()/2;\n                \n                circle.css({top: y+'px', left: x+'px'}).addClass(\"md-click-animate\");\n\n                setTimeout(function() {\n                    circle.remove();      \n                }, 1000);\n            });\n        }\n\n        // Floating labels\n        var handleInput = function(el) {\n            if (el.val() != \"\") {\n                el.addClass('edited');\n            } else {\n                el.removeClass('edited');\n            }\n        } \n\n        $('body').on('keydown', '.form-md-floating-label .form-control', function(e) { \n            handleInput($(this));\n        });\n        $('body').on('blur', '.form-md-floating-label .form-control', function(e) { \n            handleInput($(this));\n        });        \n\n        $('.form-md-floating-label .form-control').each(function(){\n            if ($(this).val().length > 0) {\n                $(this).addClass('edited');\n            }\n        });\n    }\n\n    // Handles custom checkboxes & radios using jQuery iCheck plugin\n    var handleiCheck = function() {\n        if (!$().iCheck) {\n            return;\n        }\n\n        $('.icheck').each(function() {\n            var checkboxClass = $(this).attr('data-checkbox') ? $(this).attr('data-checkbox') : 'icheckbox_minimal-grey';\n            var radioClass = $(this).attr('data-radio') ? $(this).attr('data-radio') : 'iradio_minimal-grey';\n\n            if (checkboxClass.indexOf('_line') > -1 || radioClass.indexOf('_line') > -1) {\n                $(this).iCheck({\n                    checkboxClass: checkboxClass,\n                    radioClass: radioClass,\n                    insert: '<div class=\"icheck_line-icon\"></div>' + $(this).attr(\"data-label\")\n                });\n            } else {\n                $(this).iCheck({\n                    checkboxClass: checkboxClass,\n                    radioClass: radioClass\n                });\n            }\n        });\n    };\n\n    // Handles Bootstrap switches\n    var handleBootstrapSwitch = function() {\n        if (!$().bootstrapSwitch) {\n            return;\n        }\n        $('.make-switch').bootstrapSwitch();\n    };\n\n    // Handles Bootstrap confirmations\n    var handleBootstrapConfirmation = function() {\n        if (!$().confirmation) {\n            return;\n        }\n        $('[data-toggle=confirmation]').confirmation({ btnOkClass: 'btn btn-sm btn-success', btnCancelClass: 'btn btn-sm btn-danger'});\n    }\n    \n    // Handles Bootstrap Accordions.\n    var handleAccordions = function() {\n        $('body').on('shown.bs.collapse', '.accordion.scrollable', function(e) {\n            App.scrollTo($(e.target));\n        });\n    };\n\n    // Handles Bootstrap Tabs.\n    var handleTabs = function() {\n        //activate tab if tab id provided in the URL\n        if (encodeURI(location.hash)) {\n            var tabid = encodeURI(location.hash.substr(1));\n            $('a[href=\"#' + tabid + '\"]').parents('.tab-pane:hidden').each(function() {\n                var tabid = $(this).attr(\"id\");\n                $('a[href=\"#' + tabid + '\"]').click();\n            });\n            $('a[href=\"#' + tabid + '\"]').click();\n        }\n\n        if ($().tabdrop) {\n            $('.tabbable-tabdrop .nav-pills, .tabbable-tabdrop .nav-tabs').tabdrop({\n                text: '<i class=\"fa fa-ellipsis-v\"></i>&nbsp;<i class=\"fa fa-angle-down\"></i>'\n            });\n        }\n    };\n\n    // Handles Bootstrap Modals.\n    var handleModals = function() {        \n        // fix stackable modal issue: when 2 or more modals opened, closing one of modal will remove .modal-open class. \n        $('body').on('hide.bs.modal', function() {\n            if ($('.modal:visible').size() > 1 && $('html').hasClass('modal-open') === false) {\n                $('html').addClass('modal-open');\n            } else if ($('.modal:visible').size() <= 1) {\n                $('html').removeClass('modal-open');\n            }\n        });\n\n        // fix page scrollbars issue\n        $('body').on('show.bs.modal', '.modal', function() {\n            if ($(this).hasClass(\"modal-scroll\")) {\n                $('body').addClass(\"modal-open-noscroll\");\n            }\n        });\n\n        // fix page scrollbars issue\n        $('body').on('hidden.bs.modal', '.modal', function() {\n            $('body').removeClass(\"modal-open-noscroll\");\n        });\n\n        // remove ajax content and remove cache on modal closed \n        $('body').on('hidden.bs.modal', '.modal:not(.modal-cached)', function () {\n            $(this).removeData('bs.modal');\n        });\n    };\n\n    // Handles Bootstrap Tooltips.\n    var handleTooltips = function() {\n        // global tooltips\n        $('.tooltips').tooltip();\n\n        // portlet tooltips\n        $('.portlet > .portlet-title .fullscreen').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Fullscreen'\n        });\n        $('.portlet > .portlet-title > .tools > .reload').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Reload'\n        });\n        $('.portlet > .portlet-title > .tools > .remove').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Remove'\n        });\n        $('.portlet > .portlet-title > .tools > .config').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Settings'\n        });\n        $('.portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip({\n            trigger: 'hover',\n            container: 'body',\n            title: 'Collapse/Expand'\n        });\n    };\n\n    // Handles Bootstrap Dropdowns\n    var handleDropdowns = function() {\n        /*\n          Hold dropdown on click  \n        */\n        $('body').on('click', '.dropdown-menu.hold-on-click', function(e) {\n            e.stopPropagation();\n        });\n    };\n\n    var handleAlerts = function() {\n        $('body').on('click', '[data-close=\"alert\"]', function(e) {\n            $(this).parent('.alert').hide();\n            $(this).closest('.note').hide();\n            e.preventDefault();\n        });\n\n        $('body').on('click', '[data-close=\"note\"]', function(e) {\n            $(this).closest('.note').hide();\n            e.preventDefault();\n        });\n\n        $('body').on('click', '[data-remove=\"note\"]', function(e) {\n            $(this).closest('.note').remove();\n            e.preventDefault();\n        });\n    };\n\n    // Handle textarea autosize \n    var handleTextareaAutosize = function() {\n        if (typeof(autosize) == \"function\") {\n            autosize(document.querySelector('textarea.autosizeme'));\n        }\n    }\n\n    // Handles Bootstrap Popovers\n\n    // last popep popover\n    var lastPopedPopover;\n\n    var handlePopovers = function() {\n        $('.popovers').popover();\n\n        // close last displayed popover\n\n        $(document).on('click.bs.popover.data-api', function(e) {\n            if (lastPopedPopover) {\n                lastPopedPopover.popover('hide');\n            }\n        });\n    };\n\n    // Handles scrollable contents using jQuery SlimScroll plugin.\n    var handleScrollers = function() {\n        App.initSlimScroll('.scroller');\n    };\n\n    // Handles Image Preview using jQuery Fancybox plugin\n    var handleFancybox = function() {\n        if (!jQuery.fancybox) {\n            return;\n        }\n\n        if ($(\".fancybox-button\").size() > 0) {\n            $(\".fancybox-button\").fancybox({\n                groupAttr: 'data-rel',\n                prevEffect: 'none',\n                nextEffect: 'none',\n                closeBtn: true,\n                helpers: {\n                    title: {\n                        type: 'inside'\n                    }\n                }\n            });\n        }\n    };\n\n    // Handles counterup plugin wrapper\n    var handleCounterup = function() {\n        if (!$().counterUp) {\n            return;\n        }\n\n        $(\"[data-counter='counterup']\").counterUp({\n            delay: 10,\n            time: 1000\n        });\n    };\n\n    // Fix input placeholder issue for IE8 and IE9\n    var handleFixInputPlaceholderForIE = function() {\n        //fix html5 placeholder attribute for ie7 & ie8\n        if (isIE8 || isIE9) { // ie8 & ie9\n            // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields)\n            $('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function() {\n                var input = $(this);\n\n                if (input.val() === '' && input.attr(\"placeholder\") !== '') {\n                    input.addClass(\"placeholder\").val(input.attr('placeholder'));\n                }\n\n                input.focus(function() {\n                    if (input.val() == input.attr('placeholder')) {\n                        input.val('');\n                    }\n                });\n\n                input.blur(function() {\n                    if (input.val() === '' || input.val() == input.attr('placeholder')) {\n                        input.val(input.attr('placeholder'));\n                    }\n                });\n            });\n        }\n    };\n\n    // Handle Select2 Dropdowns\n    var handleSelect2 = function() {\n        if ($().select2) {\n            $.fn.select2.defaults.set(\"theme\", \"bootstrap\");\n            $('.select2me').select2({\n                placeholder: \"Select\",\n                width: 'auto', \n                allowClear: true\n            });\n        }\n    };\n\n    // handle group element heights\n   var handleHeight = function() {\n       $('[data-auto-height]').each(function() {\n            var parent = $(this);\n            var items = $('[data-height]', parent);\n            var height = 0;\n            var mode = parent.attr('data-mode');\n            var offset = parseInt(parent.attr('data-offset') ? parent.attr('data-offset') : 0);\n\n            items.each(function() {\n                if ($(this).attr('data-height') == \"height\") {\n                    $(this).css('height', '');\n                } else {\n                    $(this).css('min-height', '');\n                }\n\n                var height_ = (mode == 'base-height' ? $(this).outerHeight() : $(this).outerHeight(true));\n                if (height_ > height) {\n                    height = height_;\n                }\n            });\n\n            height = height + offset;\n\n            items.each(function() {\n                if ($(this).attr('data-height') == \"height\") {\n                    $(this).css('height', height);\n                } else {\n                    $(this).css('min-height', height);\n                }\n            });\n\n            if(parent.attr('data-related')) {\n                $(parent.attr('data-related')).css('height', parent.height());\n            }\n       });       \n    }\n    \n    //* END:CORE HANDLERS *//\n\n    return {\n\n        //main function to initiate the theme\n        init: function() {\n            //IMPORTANT!!!: Do not modify the core handlers call order.\n\n            //Core handlers\n            handleInit(); // initialize core variables\n            handleOnResize(); // set and handle responsive    \n\n            //UI Component handlers     \n            handleMaterialDesign(); // handle material design       \n            handleiCheck(); // handles custom icheck radio and checkboxes\n            handleBootstrapSwitch(); // handle bootstrap switch plugin\n            handleScrollers(); // handles slim scrolling contents \n            handleFancybox(); // handle fancy box\n            handleSelect2(); // handle custom Select2 dropdowns\n            handlePortletTools(); // handles portlet action bar functionality(refresh, configure, toggle, remove)\n            handleAlerts(); //handle closabled alerts\n            handleDropdowns(); // handle dropdowns\n            handleTabs(); // handle tabs\n            handleTooltips(); // handle bootstrap tooltips\n            handlePopovers(); // handles bootstrap popovers\n            handleAccordions(); //handles accordions \n            handleModals(); // handle modals\n            handleBootstrapConfirmation(); // handle bootstrap confirmations\n            handleTextareaAutosize(); // handle autosize textareas\n            handleCounterup(); // handle counterup instances\n\n            //Handle group element heights\n            this.addResizeHandler(handleHeight); // handle auto calculating height on window resize\n\n            // Hacks\n            handleFixInputPlaceholderForIE(); //IE8 & IE9 input placeholder issue fix\n        },\n\n        //main function to initiate core javascript after ajax complete\n        initAjax: function() {\n            //handleUniform(); // handles custom radio & checkboxes     \n            handleiCheck(); // handles custom icheck radio and checkboxes\n            handleBootstrapSwitch(); // handle bootstrap switch plugin\n            handleScrollers(); // handles slim scrolling contents \n            handleSelect2(); // handle custom Select2 dropdowns\n            handleFancybox(); // handle fancy box\n            handleDropdowns(); // handle dropdowns\n            handleTooltips(); // handle bootstrap tooltips\n            handlePopovers(); // handles bootstrap popovers\n            handleAccordions(); //handles accordions \n            handleBootstrapConfirmation(); // handle bootstrap confirmations\n        },\n\n        //init main components \n        initComponents: function() {\n            this.initAjax();\n        },\n\n        //public function to remember last opened popover that needs to be closed on click\n        setLastPopedPopover: function(el) {\n            lastPopedPopover = el;\n        },\n\n        //public function to add callback a function which will be called on window resize\n        addResizeHandler: function(func) {\n            resizeHandlers.push(func);\n        },\n\n        //public functon to call _runresizeHandlers\n        runResizeHandlers: function() {\n            _runResizeHandlers();\n        },\n\n        // wrApper function to scroll(focus) to an element\n        scrollTo: function(el, offeset) {\n            var pos = (el && el.size() > 0) ? el.offset().top : 0;\n\n            if (el) {\n                if ($('body').hasClass('page-header-fixed')) {\n                    pos = pos - $('.page-header').height();\n                } else if ($('body').hasClass('page-header-top-fixed')) {\n                    pos = pos - $('.page-header-top').height();\n                } else if ($('body').hasClass('page-header-menu-fixed')) {\n                    pos = pos - $('.page-header-menu').height();\n                }\n                pos = pos + (offeset ? offeset : -1 * el.height());\n            }\n\n            $('html,body').animate({\n                scrollTop: pos\n            }, 'slow');\n        },\n\n        initSlimScroll: function(el) {\n            if (!$().slimScroll) {\n                return;\n            }\n\n            $(el).each(function() {\n                if ($(this).attr(\"data-initialized\")) {\n                    return; // exit\n                }\n\n                var height;\n\n                if ($(this).attr(\"data-height\")) {\n                    height = $(this).attr(\"data-height\");\n                } else {\n                    height = $(this).css('height');\n                }\n\n                $(this).slimScroll({\n                    allowPageScroll: true, // allow page scroll when the element scroll is ended\n                    size: '7px',\n                    color: ($(this).attr(\"data-handle-color\") ? $(this).attr(\"data-handle-color\") : '#bbb'),\n                    wrapperClass: ($(this).attr(\"data-wrapper-class\") ? $(this).attr(\"data-wrapper-class\") : 'slimScrollDiv'),\n                    railColor: ($(this).attr(\"data-rail-color\") ? $(this).attr(\"data-rail-color\") : '#eaeaea'),\n                    position: isRTL ? 'left' : 'right',\n                    height: height,\n                    alwaysVisible: ($(this).attr(\"data-always-visible\") == \"1\" ? true : false),\n                    railVisible: ($(this).attr(\"data-rail-visible\") == \"1\" ? true : false),\n                    disableFadeOut: true\n                });\n\n                $(this).attr(\"data-initialized\", \"1\");\n            });\n        },\n\n        destroySlimScroll: function(el) {\n            if (!$().slimScroll) {\n                return;\n            }\n\n            $(el).each(function() {\n                if ($(this).attr(\"data-initialized\") === \"1\") { // destroy existing instance before updating the height\n                    $(this).removeAttr(\"data-initialized\");\n                    $(this).removeAttr(\"style\");\n\n                    var attrList = {};\n\n                    // store the custom attribures so later we will reassign.\n                    if ($(this).attr(\"data-handle-color\")) {\n                        attrList[\"data-handle-color\"] = $(this).attr(\"data-handle-color\");\n                    }\n                    if ($(this).attr(\"data-wrapper-class\")) {\n                        attrList[\"data-wrapper-class\"] = $(this).attr(\"data-wrapper-class\");\n                    }\n                    if ($(this).attr(\"data-rail-color\")) {\n                        attrList[\"data-rail-color\"] = $(this).attr(\"data-rail-color\");\n                    }\n                    if ($(this).attr(\"data-always-visible\")) {\n                        attrList[\"data-always-visible\"] = $(this).attr(\"data-always-visible\");\n                    }\n                    if ($(this).attr(\"data-rail-visible\")) {\n                        attrList[\"data-rail-visible\"] = $(this).attr(\"data-rail-visible\");\n                    }\n\n                    $(this).slimScroll({\n                        wrapperClass: ($(this).attr(\"data-wrapper-class\") ? $(this).attr(\"data-wrapper-class\") : 'slimScrollDiv'),\n                        destroy: true\n                    });\n\n                    var the = $(this);\n\n                    // reassign custom attributes\n                    $.each(attrList, function(key, value) {\n                        the.attr(key, value);\n                    });\n\n                }\n            });\n        },\n\n        // function to scroll to the top\n        scrollTop: function() {\n            App.scrollTo();\n        },\n\n        // wrApper function to  block element(indicate loading)\n        blockUI: function(options) {\n            options = $.extend(true, {}, options);\n            var hdnContextPath = $(\"#hdnContextPath\").val();\n            var html = '';\n            if (options.animate) {\n                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\">' + '<div class=\"block-spinner-bar\"><div class=\"bounce1\"></div><div class=\"bounce2\"></div><div class=\"bounce3\"></div></div>' + '</div>';\n            } else if (options.iconOnly) {\n//                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + this.getGlobalImgPath() + 'loading-spinner-grey.gif\" align=\"\"></div>';\n                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + hdnContextPath + '/static/global/img/loading-spinner-grey.gif\" align=\"\"></div>';\n            } else if (options.textOnly) {\n                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><span>&nbsp;&nbsp;' + (options.message ? options.message : 'LOADING...') + '</span></div>';\n            } else {\n//                html = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + this.getGlobalImgPath() + 'loading-spinner-grey.gif\" align=\"\"><span>&nbsp;&nbsp;' + (options.message ? options.message : 'LOADING...') + '</span></div>';\n            \thtml = '<div class=\"loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '\"><img src=\"' + hdnContextPath + '/static/global/img/loading-spinner-grey.gif\" align=\"\"><span>&nbsp;&nbsp;' + (options.message ? options.message : '请稍后...') + '</span></div>';\n            }\n\n            if (options.target) { // element blocking\n                var el = $(options.target);\n                if (el.height() <= ($(window).height())) {\n                    options.cenrerY = true;\n                }\n                el.block({\n                    message: html,\n                    baseZ: options.zIndex ? options.zIndex : 1000,\n                    centerY: options.cenrerY !== undefined ? options.cenrerY : false,\n                    css: {\n                        top: '10%',\n                        border: '0',\n                        padding: '0',\n                        backgroundColor: 'none'\n                    },\n                    overlayCSS: {\n                        backgroundColor: options.overlayColor ? options.overlayColor : '#555',\n                        opacity: options.boxed ? 0.05 : 0.1,\n                        cursor: 'wait'\n                    }\n                });\n            } else { // page blocking\n                $.blockUI({\n                    message: html,\n                    baseZ: options.zIndex ? options.zIndex : 1000,\n                    css: {\n                        border: '0',\n                        padding: '0',\n                        backgroundColor: 'none'\n                    },\n                    overlayCSS: {\n                        backgroundColor: options.overlayColor ? options.overlayColor : '#555',\n                        opacity: options.boxed ? 0.05 : 0.1,\n                        cursor: 'wait'\n                    }\n                });\n            }\n        },\n\n        // wrApper function to  un-block element(finish loading)\n        unblockUI: function(target) {\n            if (target) {\n                $(target).unblock({\n                    onUnblock: function() {\n                        $(target).css('position', '');\n                        $(target).css('zoom', '');\n                    }\n                });\n            } else {\n                $.unblockUI();\n            }\n        },\n\n        startPageLoading: function(options) {\n            if (options && options.animate) {\n                $('.page-spinner-bar').remove();\n                $('body').append('<div class=\"page-spinner-bar\"><div class=\"bounce1\"></div><div class=\"bounce2\"></div><div class=\"bounce3\"></div></div>');\n            } else {\n                $('.page-loading').remove();\n                $('body').append('<div class=\"page-loading\"><img src=\"' + this.getGlobalImgPath() + 'loading-spinner-grey.gif\"/>&nbsp;&nbsp;<span>' + (options && options.message ? options.message : 'Loading...') + '</span></div>');\n            }\n        },\n\n        stopPageLoading: function() {\n            $('.page-loading, .page-spinner-bar').remove();\n        },\n\n        alert: function(options) {\n\n            options = $.extend(true, {\n                container: \"\", // alerts parent container(by default placed after the page breadcrumbs)\n                place: \"append\", // \"append\" or \"prepend\" in container \n                type: 'success', // alert's type\n                message: \"\", // alert's message\n                close: true, // make alert closable\n                reset: true, // close all previouse alerts first\n                focus: true, // auto scroll to the alert after shown\n                closeInSeconds: 0, // auto close after defined seconds\n                icon: \"\" // put icon before the message\n            }, options);\n\n            var id = App.getUniqueID(\"App_alert\");\n\n            var html = '<div id=\"' + id + '\" class=\"custom-alerts alert alert-' + options.type + ' fade in\">' + (options.close ? '<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\"></button>' : '') + (options.icon !== \"\" ? '<i class=\"fa-lg fa fa-' + options.icon + '\"></i>  ' : '') + options.message + '</div>';\n\n            if (options.reset) {\n                $('.custom-alerts').remove();\n            }\n\n            if (!options.container) {\n                if ($('.page-fixed-main-content').size() === 1) {\n                    $('.page-fixed-main-content').prepend(html);\n                } else if (($('body').hasClass(\"page-container-bg-solid\") || $('body').hasClass(\"page-content-white\")) && $('.page-head').size() === 0) {\n                    $('.page-title').after(html);\n                } else {\n                    if ($('.page-bar').size() > 0) {\n                        $('.page-bar').after(html);\n                    } else {\n                        $('.page-breadcrumb, .breadcrumbs').after(html);\n                    }\n                }\n            } else {\n                if (options.place == \"append\") {\n                    $(options.container).append(html);\n                } else {\n                    $(options.container).prepend(html);\n                }\n            }\n\n            if (options.focus) {\n                App.scrollTo($('#' + id));\n            }\n\n            if (options.closeInSeconds > 0) {\n                setTimeout(function() {\n                    $('#' + id).remove();\n                }, options.closeInSeconds * 1000);\n            }\n\n            return id;\n        },\n\n        //public function to initialize the fancybox plugin\n        initFancybox: function() {\n            handleFancybox();\n        },\n\n        //public helper function to get actual input value(used in IE9 and IE8 due to placeholder attribute not supported)\n        getActualVal: function(el) {\n            el = $(el);\n            if (el.val() === el.attr(\"placeholder\")) {\n                return \"\";\n            }\n            return el.val();\n        },\n\n        //public function to get a paremeter by name from URL\n        getURLParameter: function(paramName) {\n            var searchString = window.location.search.substring(1),\n                i, val, params = searchString.split(\"&\");\n\n            for (i = 0; i < params.length; i++) {\n                val = params[i].split(\"=\");\n                if (val[0] == paramName) {\n                    return unescape(val[1]);\n                }\n            }\n            return null;\n        },\n\n        // check for device touch support\n        isTouchDevice: function() {\n            try {\n                document.createEvent(\"TouchEvent\");\n                return true;\n            } catch (e) {\n                return false;\n            }\n        },\n\n        // To get the correct viewport width based on  http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\n        getViewPort: function() {\n            var e = window,\n                a = 'inner';\n            if (!('innerWidth' in window)) {\n                a = 'client';\n                e = document.documentElement || document.body;\n            }\n\n            return {\n                width: e[a + 'Width'],\n                height: e[a + 'Height']\n            };\n        },\n\n        getUniqueID: function(prefix) {\n            return 'prefix_' + Math.floor(Math.random() * (new Date()).getTime());\n        },\n\n        // check IE8 mode\n        isIE8: function() {\n            return isIE8;\n        },\n\n        // check IE9 mode\n        isIE9: function() {\n            return isIE9;\n        },\n\n        //check RTL mode\n        isRTL: function() {\n            return isRTL;\n        },\n\n        // check IE8 mode\n        isAngularJsApp: function() {\n            return (typeof angular == 'undefined') ? false : true;\n        },\n\n        getAssetsPath: function() {\n            return assetsPath;\n        },\n\n        setAssetsPath: function(path) {\n            assetsPath = path;\n        },\n\n        setGlobalImgPath: function(path) {\n            globalImgPath = path;\n        },\n\n        getGlobalImgPath: function() {\n            return assetsPath + globalImgPath;\n        },\n\n        setGlobalPluginsPath: function(path) {\n            globalPluginsPath = path;\n        },\n\n        getGlobalPluginsPath: function() {\n            return assetsPath + globalPluginsPath;\n        },\n\n        getGlobalCssPath: function() {\n            return assetsPath + globalCssPath;\n        },\n\n        // get layout color code by color name\n        getBrandColor: function(name) {\n            if (brandColors[name]) {\n                return brandColors[name];\n            } else {\n                return '';\n            }\n        },\n\n        getResponsiveBreakpoint: function(size) {\n            // bootstrap responsive breakpoints\n            var sizes = {\n                'xs' : 480,     // extra small\n                'sm' : 768,     // small\n                'md' : 992,     // medium\n                'lg' : 1200     // large\n            };\n\n            return sizes[size] ? sizes[size] : 0; \n        }\n    };\n\n}();\n\n\njQuery(document).ready(function() {    \n   App.init(); // init metronic core componets\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/global/scripts/datatable.js",
    "content": "/***\nWrapper/Helper Class for datagrid based on jQuery Datatable Plugin\n***/\nvar Datatable = function() {\n\n    var tableOptions; // main options\n    var dataTable; // datatable object\n    var table; // actual table jquery object\n    var tableContainer; // actual table container object\n    var tableWrapper; // actual table wrapper jquery object\n    var tableInitialized = false;\n    var ajaxParams = {}; // set filter mode\n    var the;\n\n    var countSelectedRecords = function() {\n        var selected = $('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]:checked', table).size();\n        var text = tableOptions.dataTable.language.metronicGroupActions;\n        if (selected > 0) {\n            $('.table-group-actions > span', tableWrapper).text(text.replace(\"_TOTAL_\", selected));\n        } else {\n            $('.table-group-actions > span', tableWrapper).text(\"\");\n        }\n    };\n\n    return {\n\n        //main function to initiate the module\n        init: function(options) {\n\n            if (!$().dataTable) {\n                return;\n            }\n\n            the = this;\n\n            // default settings\n            options = $.extend(true, {\n                src: \"\", // actual table  \n                filterApplyAction: \"filter\",\n                filterCancelAction: \"filter_cancel\",\n                resetGroupActionInputOnSuccess: true,\n                loadingMessage: 'Loading...',\n                dataTable: {\n                    \"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-responsive't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\", // datatable layout\n                    \"pageLength\": 10, // default records per page\n                    \"language\": { // language settings\n                        // metronic spesific\n                        \"metronicGroupActions\": \"_TOTAL_ records selected:  \",\n                        \"metronicAjaxRequestGeneralError\": \"Could not complete request. Please check your internet connection\",\n\n                        // data tables spesific\n                        \"lengthMenu\": \"<span class='seperator'>|</span>View _MENU_ records\",\n                        \"info\": \"<span class='seperator'>|</span>Found total _TOTAL_ records\",\n                        \"infoEmpty\": \"No records found to show\",\n                        \"emptyTable\": \"No data available in table\",\n                        \"zeroRecords\": \"No matching records found\",\n                        \"paginate\": {\n                            \"previous\": \"Prev\",\n                            \"next\": \"Next\",\n                            \"last\": \"Last\",\n                            \"first\": \"First\",\n                            \"page\": \"Page\",\n                            \"pageOf\": \"of\"\n                        }\n                    },\n\n                    \"orderCellsTop\": true,\n                    \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                        'orderable': false,\n                        'targets': [0]\n                    }],\n\n                    \"pagingType\": \"bootstrap_extended\", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended)\n                    \"autoWidth\": false, // disable fixed width and enable fluid table\n                    \"processing\": false, // enable/disable display message box on record load\n                    \"serverSide\": true, // enable/disable server side ajax loading\n\n                    \"ajax\": { // define ajax settings\n                        \"url\": \"\", // ajax URL\n                        \"type\": \"POST\", // request type\n                        \"timeout\": 20000,\n                        \"data\": function(data) { // add request parameters before submit\n                            $.each(ajaxParams, function(key, value) {\n                                data[key] = value;\n                            });\n                            App.blockUI({\n                                message: tableOptions.loadingMessage,\n                                target: tableContainer,\n                                overlayColor: 'none',\n                                cenrerY: true,\n                                boxed: true\n                            });\n                        },\n                        \"dataSrc\": function(res) { // Manipulate the data returned from the server\n                            if (res.customActionMessage) {\n                                App.alert({\n                                    type: (res.customActionStatus == 'OK' ? 'success' : 'danger'),\n                                    icon: (res.customActionStatus == 'OK' ? 'check' : 'warning'),\n                                    message: res.customActionMessage,\n                                    container: tableWrapper,\n                                    place: 'prepend'\n                                });\n                            }\n\n                            if (res.customActionStatus) {\n                                if (tableOptions.resetGroupActionInputOnSuccess) {\n                                    $('.table-group-action-input', tableWrapper).val(\"\");\n                                }\n                            }\n\n                            if ($('.group-checkable', table).size() === 1) {\n                                $('.group-checkable', table).attr(\"checked\", false);\n                            }\n\n                            if (tableOptions.onSuccess) {\n                                tableOptions.onSuccess.call(undefined, the, res);\n                            }\n\n                            App.unblockUI(tableContainer);\n\n                            return res.data;\n                        },\n                        \"error\": function() { // handle general connection errors\n                            if (tableOptions.onError) {\n                                tableOptions.onError.call(undefined, the);\n                            }\n\n                            App.alert({\n                                type: 'danger',\n                                icon: 'warning',\n                                message: tableOptions.dataTable.language.metronicAjaxRequestGeneralError,\n                                container: tableWrapper,\n                                place: 'prepend'\n                            });\n\n                            App.unblockUI(tableContainer);\n                        }\n                    },\n\n                    \"drawCallback\": function(oSettings) { // run some code on table redraw\n                        if (tableInitialized === false) { // check if table has been initialized\n                            tableInitialized = true; // set table initialized\n                            table.show(); // display table\n                        }\n                        countSelectedRecords(); // reset selected records indicator\n\n                        // callback for ajax data load\n                        if (tableOptions.onDataLoad) {\n                            tableOptions.onDataLoad.call(undefined, the);\n                        }\n                    }\n                }\n            }, options);\n\n            tableOptions = options;\n\n            // create table's jquery object\n            table = $(options.src);\n            tableContainer = table.parents(\".table-container\");\n\n            // apply the special class that used to restyle the default datatable\n            var tmp = $.fn.dataTableExt.oStdClasses;\n\n            $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + \" dataTables_extended_wrapper\";\n            $.fn.dataTableExt.oStdClasses.sFilterInput = \"form-control input-xs input-sm input-inline\";\n            $.fn.dataTableExt.oStdClasses.sLengthSelect = \"form-control input-xs input-sm input-inline\";\n\n            // initialize a datatable\n            dataTable = table.DataTable(options.dataTable);\n\n            // revert back to default\n            $.fn.dataTableExt.oStdClasses.sWrapper = tmp.sWrapper;\n            $.fn.dataTableExt.oStdClasses.sFilterInput = tmp.sFilterInput;\n            $.fn.dataTableExt.oStdClasses.sLengthSelect = tmp.sLengthSelect;\n\n            // get table wrapper\n            tableWrapper = table.parents('.dataTables_wrapper');\n\n            // build table group actions panel\n            if ($('.table-actions-wrapper', tableContainer).size() === 1) {\n                $('.table-group-actions', tableWrapper).html($('.table-actions-wrapper', tableContainer).html()); // place the panel inside the wrapper\n                $('.table-actions-wrapper', tableContainer).remove(); // remove the template container\n            }\n            // handle group checkboxes check/uncheck\n            $('.group-checkable', table).change(function() {\n                var set = table.find('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]');\n                var checked = $(this).prop(\"checked\");\n                $(set).each(function() {\n                    $(this).prop(\"checked\", checked);\n                });\n                countSelectedRecords();\n            });\n\n            // handle row's checkbox click\n            table.on('change', 'tbody > tr > td:nth-child(1) input[type=\"checkbox\"]', function() {\n                countSelectedRecords();\n            });\n\n            // handle filter submit button click\n            table.on('click', '.filter-submit', function(e) {\n                e.preventDefault();\n                the.submitFilter();\n            });\n\n            // handle filter cancel button click\n            table.on('click', '.filter-cancel', function(e) {\n                e.preventDefault();\n                the.resetFilter();\n            });\n        },\n\n        submitFilter: function() {\n            the.setAjaxParam(\"action\", tableOptions.filterApplyAction);\n\n            // get all typeable inputs\n            $('textarea.form-filter, select.form-filter, input.form-filter:not([type=\"radio\"],[type=\"checkbox\"])', table).each(function() {\n                the.setAjaxParam($(this).attr(\"name\"), $(this).val());\n            });\n\n            // get all checkboxes\n            $('input.form-filter[type=\"checkbox\"]:checked', table).each(function() {\n                the.addAjaxParam($(this).attr(\"name\"), $(this).val());\n            });\n\n            // get all radio buttons\n            $('input.form-filter[type=\"radio\"]:checked', table).each(function() {\n                the.setAjaxParam($(this).attr(\"name\"), $(this).val());\n            });\n\n            dataTable.ajax.reload();\n        },\n\n        resetFilter: function() {\n            $('textarea.form-filter, select.form-filter, input.form-filter', table).each(function() {\n                $(this).val(\"\");\n            });\n            $('input.form-filter[type=\"checkbox\"]', table).each(function() {\n                $(this).attr(\"checked\", false);\n            });\n            the.clearAjaxParams();\n            the.addAjaxParam(\"action\", tableOptions.filterCancelAction);\n            dataTable.ajax.reload();\n        },\n\n        getSelectedRowsCount: function() {\n            return $('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]:checked', table).size();\n        },\n\n        getSelectedRows: function() {\n            var rows = [];\n            $('tbody > tr > td:nth-child(1) input[type=\"checkbox\"]:checked', table).each(function() {\n                rows.push($(this).val());\n            });\n\n            return rows;\n        },\n\n        setAjaxParam: function(name, value) {\n            ajaxParams[name] = value;\n        },\n\n        addAjaxParam: function(name, value) {\n            if (!ajaxParams[name]) {\n                ajaxParams[name] = [];\n            }\n\n            skip = false;\n            for (var i = 0; i < (ajaxParams[name]).length; i++) { // check for duplicates\n                if (ajaxParams[name][i] === value) {\n                    skip = true;\n                }\n            }\n\n            if (skip === false) {\n                ajaxParams[name].push(value);\n            }\n        },\n\n        clearAjaxParams: function(name, value) {\n            ajaxParams = {};\n        },\n\n        getDataTable: function() {\n            return dataTable;\n        },\n\n        getTableWrapper: function() {\n            return tableWrapper;\n        },\n\n        gettableContainer: function() {\n            return tableContainer;\n        },\n\n        getTable: function() {\n            return table;\n        }\n\n    };\n\n};"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/global/scripts/cookie-consent.js",
    "content": "/**\nCookie consent init\n**/\n\nvar CookieConsent = function () {\n\n    var _init = function () {\n        $('.mt-cookie-consent-bar').cookieBar({ \n            closeButton : '.mt-cookie-consent-btn' \n        });\n    };\n\n    return {\n        init: function () {\n            _init();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {    \n       CookieConsent.init(); \n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/global/scripts/hor-timeline.js",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/global/scripts/quick-nav.js",
    "content": "var QuickNav = function () {\n\n    return {\n        init: function () {\n           \tif( $('.quick-nav').length > 0 ) {\n\t\t\t\tvar stretchyNavs = $('.quick-nav');\t\t\t\t\n\t\t\t\tstretchyNavs.each(function(){\n\t\t\t\t\tvar stretchyNav = $(this),\n\t\t\t\t\t\tstretchyNavTrigger = stretchyNav.find('.quick-nav-trigger');\n\t\t\t\t\t\n\t\t\t\t\tstretchyNavTrigger.on('click', function(event){\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tstretchyNav.toggleClass('nav-is-visible');\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$(document).on('click', function(event){\n\t\t\t\t\t( !$(event.target).is('.quick-nav-trigger') && !$(event.target).is('.quick-nav-trigger span') ) && stretchyNavs.removeClass('nav-is-visible');\n\t\t\t\t});\n\t\t\t}\n        }\n    };\n}();\n\nQuickNav.init(); // init metronic core componets"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/global/scripts/quick-sidebar.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\nvar QuickSidebar = function () {\n\n    // Handles quick sidebar toggler\n    var handleQuickSidebarToggler = function () {\n        // quick sidebar toggler\n        $('.dropdown-quick-sidebar-toggler a, .page-quick-sidebar-toggler, .quick-sidebar-toggler').click(function (e) {\n            $('body').toggleClass('page-quick-sidebar-open'); \n        });\n    };\n\n    // Handles quick sidebar chats\n    var handleQuickSidebarChat = function () {\n        var wrapper = $('.page-quick-sidebar-wrapper');\n        var wrapperChat = wrapper.find('.page-quick-sidebar-chat');\n\n        var initChatSlimScroll = function () {\n            var chatUsers = wrapper.find('.page-quick-sidebar-chat-users');\n            var chatUsersHeight;\n\n            chatUsersHeight = wrapper.height() - wrapper.find('.nav-tabs').outerHeight(true);\n\n            // chat user list \n            App.destroySlimScroll(chatUsers);\n            chatUsers.attr(\"data-height\", chatUsersHeight);\n            App.initSlimScroll(chatUsers);\n\n            var chatMessages = wrapperChat.find('.page-quick-sidebar-chat-user-messages');\n            var chatMessagesHeight = chatUsersHeight - wrapperChat.find('.page-quick-sidebar-chat-user-form').outerHeight(true);\n            chatMessagesHeight = chatMessagesHeight - wrapperChat.find('.page-quick-sidebar-nav').outerHeight(true);\n\n            // user chat messages \n            App.destroySlimScroll(chatMessages);\n            chatMessages.attr(\"data-height\", chatMessagesHeight);\n            App.initSlimScroll(chatMessages);\n        };\n\n        initChatSlimScroll();\n        App.addResizeHandler(initChatSlimScroll); // reinitialize on window resize\n\n        wrapper.find('.page-quick-sidebar-chat-users .media-list > .media').click(function () {\n            wrapperChat.addClass(\"page-quick-sidebar-content-item-shown\");\n        });\n\n        wrapper.find('.page-quick-sidebar-chat-user .page-quick-sidebar-back-to-list').click(function () {\n            wrapperChat.removeClass(\"page-quick-sidebar-content-item-shown\");\n        });\n\n        var handleChatMessagePost = function (e) {\n            e.preventDefault();\n\n            var chatContainer = wrapperChat.find(\".page-quick-sidebar-chat-user-messages\");\n            var input = wrapperChat.find('.page-quick-sidebar-chat-user-form .form-control');\n\n            var text = input.val();\n            if (text.length === 0) {\n                return;\n            }\n\n            var preparePost = function(dir, time, name, avatar, message) {\n                var tpl = '';\n                tpl += '<div class=\"post '+ dir +'\">';\n                tpl += '<img class=\"avatar\" alt=\"\" src=\"' + Layout.getLayoutImgPath() + avatar +'.jpg\"/>';\n                tpl += '<div class=\"message\">';\n                tpl += '<span class=\"arrow\"></span>';\n                tpl += '<a href=\"#\" class=\"name\">Bob Nilson</a>&nbsp;';\n                tpl += '<span class=\"datetime\">' + time + '</span>';\n                tpl += '<span class=\"body\">';\n                tpl += message;\n                tpl += '</span>';\n                tpl += '</div>';\n                tpl += '</div>';\n\n                return tpl;\n            };\n\n            // handle post\n            var time = new Date();\n            var message = preparePost('out', (time.getHours() + ':' + time.getMinutes()), \"Bob Nilson\", 'avatar3', text);\n            message = $(message);\n            chatContainer.append(message);\n\n            chatContainer.slimScroll({\n                scrollTo: '1000000px'\n            });\n\n            input.val(\"\");\n\n            // simulate reply\n            setTimeout(function(){\n                var time = new Date();\n                var message = preparePost('in', (time.getHours() + ':' + time.getMinutes()), \"Ella Wong\", 'avatar2', 'Lorem ipsum doloriam nibh...');\n                message = $(message);\n                chatContainer.append(message);\n\n                chatContainer.slimScroll({\n                    scrollTo: '1000000px'\n                });\n            }, 3000);\n        };\n\n        wrapperChat.find('.page-quick-sidebar-chat-user-form .btn').click(handleChatMessagePost);\n        wrapperChat.find('.page-quick-sidebar-chat-user-form .form-control').keypress(function (e) {\n            if (e.which == 13) {\n                handleChatMessagePost(e);\n                return false;\n            }\n        });\n    };\n\n    // Handles quick sidebar tasks\n    var handleQuickSidebarAlerts = function () {\n        var wrapper = $('.page-quick-sidebar-wrapper');\n\n        var initAlertsSlimScroll = function () {\n            var alertList = wrapper.find('.page-quick-sidebar-alerts-list');\n            var alertListHeight;\n\n            alertListHeight = wrapper.height() - 80 - wrapper.find('.nav-justified > .nav-tabs').outerHeight();\n\n            // alerts list \n            App.destroySlimScroll(alertList);\n            alertList.attr(\"data-height\", alertListHeight);\n            App.initSlimScroll(alertList);\n        };\n\n        initAlertsSlimScroll();\n        App.addResizeHandler(initAlertsSlimScroll); // reinitialize on window resize\n    };\n\n    // Handles quick sidebar settings\n    var handleQuickSidebarSettings = function () {\n        var wrapper = $('.page-quick-sidebar-wrapper');\n\n        var initSettingsSlimScroll = function () {\n            var settingsList = wrapper.find('.page-quick-sidebar-settings-list');\n            var settingsListHeight;\n\n            settingsListHeight = wrapper.height() - 80 - wrapper.find('.nav-justified > .nav-tabs').outerHeight();\n           \n            // alerts list \n            App.destroySlimScroll(settingsList);\n            settingsList.attr(\"data-height\", settingsListHeight);\n            App.initSlimScroll(settingsList);\n        };\n\n        initSettingsSlimScroll();\n        App.addResizeHandler(initSettingsSlimScroll); // reinitialize on window resize\n    };\n\n    return {\n\n        init: function () {\n            //layout handlers\n            handleQuickSidebarToggler(); // handles quick sidebar's toggler\n            handleQuickSidebarChat(); // handles quick sidebar's chats\n            handleQuickSidebarAlerts(); // handles quick sidebar's alerts\n            handleQuickSidebarSettings(); // handles quick sidebar's setting\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {    \n       QuickSidebar.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout/css/custom.css",
    "content": "/* 此文件用于覆盖原css */\n\n/* *,  */\nbody{font:13px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\nh1, h2, h3, h4, h5, h6, h7 {font:Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\n/* .page-content-wrapper { */\n/* \tmargin-top: -23px; */\n/* } */\n\n/* 必填项 */\n.field-required {\n\tcolor: red;\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout/css/layout.css",
    "content": "@charset \"UTF-8\";\n/* Cubic Bezier Transition */\n@media print {\n  body {\n    background-color: #fff !important;\n    direction: ltr; }\n  .page-bar {\n    display: none; }\n  .page-sidebar-wrapper {\n    display: none; }\n  .page-quick-sidebar-wrapper {\n    display: none; }\n  .theme-panel {\n    display: none; }\n  .hidden-print {\n    display: none; }\n  .page-footer {\n    display: none; }\n  .no-page-break {\n    page-break-after: avoid; }\n  .page-container {\n    margin: 0px !important;\n    padding: 0px !important; }\n  .page-content {\n    padding: 0 !important;\n    min-height: 300px !important;\n    padding: 0px 20px 20px !important;\n    margin: 0 !important; }\n  .table th,\n  .table td {\n    text-align: left !important; } }\n\n/***\nPage Header\n***/\n.page-header.navbar {\n  width: 100%;\n  padding: 0 20px 0 20px;\n  margin: 0;\n  border: 0px;\n  padding: 0px;\n  box-shadow: none;\n  height: 50px;\n  min-height: 50px;\n  filter: none;\n  background-image: none;\n  /* Fixed header */\n  /* Header logo */\n  /* Search box */\n  /* Menu Toggler */\n  /* Top menu */ }\n  .page-header.navbar.navbar-fixed-top {\n    z-index: 9995; }\n  .page-header.navbar.navbar-static-top {\n    z-index: 9995; }\n  .page-header.navbar .page-logo {\n    float: left;\n    display: block;\n    width: 235px;\n    height: 50px;\n    padding-left: 20px;\n    padding-right: 20px; }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo {\n      padding: 0; }\n    .page-header.navbar .page-logo > .logo-image,\n    .page-header.navbar .page-logo > a {\n      display: inline-block;\n      float: left; }\n    .page-header.navbar .page-logo .logo-default {\n      margin: 18px 0 0 0; }\n    .page-header.navbar .page-logo .logo-mini {\n      display: none;\n      margin-left: 5px; }\n    .page-header.navbar .page-logo .text-logo {\n      padding-left: 20px;\n      padding-top: 12px; }\n  .page-header.navbar .search-form {\n    display: inline-block;\n    width: 50px;\n    position: relative;\n    float: left;\n    transition: all 0.6s; }\n    .page-header.navbar .search-form .input-group .form-control {\n      height: 50px;\n      border: 0;\n      background: transparent !important;\n      font-size: 13px;\n      padding-left: 0;\n      margin-left: 12px;\n      text-indent: -150000px; }\n      .page-header.navbar .search-form .input-group .form-control:hover {\n        cursor: pointer; }\n    .page-header.navbar .search-form .input-group .input-group-btn {\n      height: 50px; }\n      .page-header.navbar .search-form .input-group .input-group-btn .btn.submit {\n        margin-left: -24px;\n        padding: 0;\n        width: 50px;\n        background: none;\n        margin-top: 4px;\n        display: block; }\n        .page-header.navbar .search-form .input-group .input-group-btn .btn.submit > i {\n          font-size: 15px; }\n    .page-header.navbar .search-form.open {\n      transition: all 0.6s;\n      width: 300px !important; }\n      .page-header.navbar .search-form.open .input-group .form-control {\n        text-indent: 0; }\n        .page-header.navbar .search-form.open .input-group .form-control:hover {\n          cursor: text; }\n      .page-header.navbar .search-form.open .input-group .input-group-btn .btn.submit {\n        margin-left: 0; }\n  .page-header.navbar .menu-toggler {\n    cursor: pointer;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ;\n    display: block;\n    webkit-transition: opacity 0.3s;\n    -moz-transition: opacity 0.3s;\n    -ms-transition: opacity 0.3s;\n    -o-transition: opacity 0.3s;\n    transition: opacity 0.3s; }\n    .page-header.navbar .menu-toggler > span {\n      outline: none !important; }\n      .page-header.navbar .menu-toggler > span:hover {\n        background: #ffffff; }\n        .page-header.navbar .menu-toggler > span:hover:before, .page-header.navbar .menu-toggler > span:hover:after {\n          background: #ffffff; }\n    .page-header.navbar .menu-toggler > span,\n    .page-header.navbar .menu-toggler > span:before,\n    .page-header.navbar .menu-toggler > span:after {\n      display: inline-block;\n      width: 19px;\n      height: 1px;\n      background: #ffffff;\n      position: relative;\n      top: -6px;\n      transition: all ease .3s; }\n    .page-header.navbar .menu-toggler > span:before,\n    .page-header.navbar .menu-toggler > span:after {\n      position: absolute;\n      left: 0;\n      content: ''; }\n    .page-header.navbar .menu-toggler > span:before {\n      top: 6px; }\n    .page-header.navbar .menu-toggler > span:after {\n      top: -6px; }\n    .page-header.navbar .menu-toggler.th-toggle-exit > span {\n      background-color: transparent !important; }\n    .page-header.navbar .menu-toggler.th-toggle-exit > span:after {\n      webkit-transform: translateY(6px) rotateZ(45deg);\n      -moz-transform: translateY(6px) rotateZ(45deg);\n      -ms-transform: translateY(6px) rotateZ(45deg);\n      -o-transform: translateY(6px) rotateZ(45deg);\n      transform: translateY(6px) rotateZ(45deg); }\n    .page-header.navbar .menu-toggler.th-toggle-exit > span:before {\n      webkit-transform: translateY(-6px) rotateZ(-45deg);\n      -moz-transform: translateY(-6px) rotateZ(-45deg);\n      -ms-transform: translateY(-6px) rotateZ(-45deg);\n      -o-transform: translateY(-6px) rotateZ(-45deg);\n      transform: translateY(-6px) rotateZ(-45deg); }\n    .page-header.navbar .menu-toggler:hover {\n      webkit-transition: opacity 0.3s;\n      -moz-transition: opacity 0.3s;\n      -ms-transition: opacity 0.3s;\n      -o-transition: opacity 0.3s;\n      transition: opacity 0.3s;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n    .page-header.navbar .menu-toggler.sidebar-toggler {\n      float: right;\n      margin: 15.5px 0 0 0; }\n      .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .menu-toggler.sidebar-toggler {\n        margin-right: 13px; }\n    .page-header.navbar .menu-toggler.responsive-toggler {\n      display: none;\n      float: right;\n      margin: 15.5px 6px 0 6px; }\n  .page-header.navbar .top-menu {\n    margin: 0;\n    padding: 0;\n    float: right; }\n    .page-header.navbar .top-menu .navbar-nav {\n      padding: 0;\n      margin-right: 20px;\n      display: block;\n      /* Extended Dropdowns */\n      /* Notification */\n      /* Inbox */\n      /* Tasks */\n      /* User */\n      /* Language */\n      /* Dark version */ }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown {\n        margin: 0px;\n        padding: 0px 4px;\n        height: 50px;\n        display: inline-block; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown:last-child {\n          padding-right: 0px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle {\n          margin: 0px;\n          padding: 19px 10px 10px 10px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:last-child {\n            padding-right: 0; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i {\n            font-size: 17px; }\n            .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i.glyphicon {\n              font-size: 16px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > .badge {\n            font-family: \"Open Sans\", sans-serif;\n            position: absolute;\n            top: 10px;\n            right: 20px;\n            font-weight: 300;\n            padding: 3px 6px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus {\n            background: none; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu {\n          margin-top: 1px;\n          -webkit-border-radius: 4px;\n          -moz-border-radius: 4px;\n          -ms-border-radius: 4px;\n          -o-border-radius: 4px;\n          border-radius: 4px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu:before {\n            position: absolute;\n            top: -7px;\n            right: 9px;\n            display: inline-block !important;\n            border-right: 7px solid transparent;\n            border-bottom: 7px solid #eee;\n            border-left: 7px solid transparent;\n            border-bottom-color: rgba(0, 0, 0, 0.2);\n            content: ''; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu:after {\n            position: absolute;\n            top: -6px;\n            right: 10px;\n            display: inline-block !important;\n            border-right: 6px solid transparent;\n            border-bottom: 6px solid #fff;\n            border-left: 6px solid transparent;\n            content: ''; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-menu > li > a {\n            color: #555; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu {\n        min-width: 160px;\n        max-width: 275px;\n        width: 275px;\n        z-index: 9995;\n        /* header notifications dropdowns */ }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n          display: block;\n          overflow: hidden;\n          padding: 15px 15px;\n          letter-spacing: 0.5px;\n          -webkit-border-radius: 4px 4px 0 0;\n          -moz-border-radius: 4px 4px 0 0;\n          -ms-border-radius: 4px 4px 0 0;\n          -o-border-radius: 4px 4px 0 0;\n          border-radius: 4px 4px 0 0; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n            margin: 0;\n            padding: 0;\n            float: left;\n            font-size: 13px;\n            display: inline-block; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n            display: inline-block;\n            padding: 0;\n            background: none;\n            clear: inherit;\n            font-size: 13px;\n            font-weight: 300;\n            position: absolute;\n            right: 10px;\n            border: 0;\n            margin-top: -1px; }\n            .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n              text-decoration: none; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list {\n          padding-right: 0 !important;\n          padding-left: 0;\n          list-style: none; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n            display: block;\n            clear: both;\n            font-weight: 300;\n            line-height: 20px;\n            white-space: normal;\n            font-size: 13px;\n            padding: 16px 15px 18px;\n            text-shadow: none; }\n            .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n              opacity: 1 ;\n              filter: alpha(opacity=100) ;\n              text-decoration: none; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li:first-child a {\n            border-top: none; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details {\n        overflow: hidden; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon {\n          margin-right: 10px;\n          -webkit-border-radius: 50%;\n          -moz-border-radius: 50%;\n          -ms-border-radius: 50%;\n          -o-border-radius: 50%;\n          border-radius: 50%; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon i {\n            margin-right: 2px;\n            margin-left: 1px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon .badge {\n            right: 15px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .time {\n        float: right;\n        max-width: 75px;\n        font-size: 11px;\n        font-weight: 400;\n        opacity: 0.7 ;\n        filter: alpha(opacity=70) ;\n        text-align: right;\n        padding: 1px 5px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo {\n        float: left;\n        margin: 0 6px 6px 0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo img {\n          height: 40px;\n          width: 40px;\n          -webkit-border-radius: 50% !important;\n          -moz-border-radius: 50% !important;\n          -ms-border-radius: 50% !important;\n          -o-border-radius: 50% !important;\n          border-radius: 50% !important; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject {\n        display: block;\n        margin-left: 46px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .from {\n          font-size: 13px;\n          font-weight: 600; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .time {\n          font-size: 12px;\n          font-weight: 400;\n          opacity: 0.5 ;\n          filter: alpha(opacity=50) ;\n          float: right; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .message {\n        display: block !important;\n        font-size: 12px;\n        line-height: 1.3;\n        margin-left: 46px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task {\n        margin-bottom: 5px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .desc {\n          font-size: 13px;\n          font-weight: 300; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .percent {\n          float: right;\n          font-weight: 600;\n          display: inline-block; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress {\n        display: block;\n        height: 8px;\n        margin: 8px 0 2px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress .progress-bar {\n          box-shadow: none; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n        padding: 16px 6px 13px 8px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > .username {\n          display: inline-block;\n          font-size: 13px;\n          font-weight: 300; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > img {\n          float: left;\n          margin-top: -5px;\n          margin-right: 5px;\n          height: 29px;\n          display: inline-block; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > i {\n          display: inline-block;\n          margin-top: 5px;\n          margin: 0;\n          font-size: 13px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu {\n        width: 175px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a {\n          font-size: 14px;\n          font-weight: 300; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a i {\n            width: 15px;\n            display: inline-block;\n            margin-right: 9px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a .badge {\n            margin-right: 10px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-language {\n        padding-left: 0;\n        padding-right: 0;\n        margin: 0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle {\n          padding: 16px 3px 13px 7px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > img {\n            margin-bottom: 2px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > i {\n            font-size: 14px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a {\n          font-size: 13px; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a > img {\n            margin-bottom: 2px;\n            margin-right: 5px; }\n      .page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before {\n        border-left: none;\n        border-right: none; }\n      .page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list > li.external a {\n        background: none !important;\n        border: none !important; }\n\n/* Allow expanded search for above 768px */\n@media (min-width: 768px) {\n  /* 768px */\n  .page-header.navbar {\n    /* Search box */ }\n    .page-header.navbar .search-form.search-form-expanded {\n      width: 200px; }\n      .page-header.navbar .search-form.search-form-expanded .input-group .form-control {\n        text-indent: 0; }\n        .page-header.navbar .search-form.search-form-expanded .input-group .form-control:hover {\n          cursor: text; }\n      .page-header.navbar .search-form.search-form-expanded .input-group .input-group-btn .btn.submit {\n        margin-left: 0; } }\n\n/*** \nHorizontal Menu \n***/\n.page-header.navbar {\n  /* Header container */\n  /* Mega menu */ }\n  .page-header.navbar .container {\n    position: relative; }\n  .page-header.navbar .hor-menu {\n    margin: 0 0 0 -17px;\n    margin: 0;\n    float: left; }\n    .page-header.navbar .hor-menu .navbar-nav {\n      min-height: 50px;\n      position: static;\n      /* Mega menu */\n      /* Mega Menu Dropdown */\n      /* Classic menu */ }\n      .page-header.navbar .hor-menu .navbar-nav.navbar-right .dropdown-menu {\n        left: auto;\n        right: 0; }\n      .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown {\n        position: static; }\n        .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n          left: auto;\n          width: auto; }\n          .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content {\n            font-family: \"Open Sans\", sans-serif;\n            padding: 15px;\n            margin: 0; }\n            .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content.mega-menu-responsive-content {\n              padding: 10px 18px 10px 45px; }\n            .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu {\n              padding: 0;\n              margin: 0; }\n              .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu:last-child {\n                border-right: 0; }\n              .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li {\n                margin: 0 !important;\n                list-style: none; }\n                .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n                  margin-top: 5px;\n                  padding-left: 6px;\n                  font-size: 15px;\n                  font-weight: 400; }\n                .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a {\n                  display: block;\n                  white-space: normal;\n                  font-family: \"Open Sans\", sans-serif;\n                  padding: 7px;\n                  margin: 0;\n                  font-size: 14px;\n                  font-weight: 300; }\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a:hover {\n                    text-decoration: none; }\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify {\n                    padding: 7px 7px 7px 30px; }\n                    .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify > i {\n                      position: absolute;\n                      top: auto !important;\n                      margin-left: -24px;\n                      font-size: 15px;\n                      margin-top: 3px !important; }\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .badge,\n                  .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .label {\n                    margin-left: 5px; }\n        .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown.mega-menu-full .dropdown-menu {\n          left: 20px;\n          right: 20px; }\n        .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown:hover > .dropdown-menu {\n          display: block; }\n      .page-header.navbar .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:after, .page-header.navbar .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:before {\n        display: none !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li > a {\n        font-size: 14px;\n        font-weight: 400;\n        padding: 13px 13px;\n        min-height: 50px; }\n        .page-header.navbar .hor-menu .navbar-nav > li > a:focus {\n          background: none !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li.current .selected, .page-header.navbar .hor-menu .navbar-nav > li.active .selected {\n        left: 50%;\n        bottom: 0;\n        position: absolute;\n        border-left: 6px solid transparent;\n        border-right: 6px solid transparent;\n        border-top: 6px solid transparent;\n        display: inline-block;\n        margin: 0;\n        width: 0;\n        height: 0px;\n        margin-left: -7px;\n        margin-bottom: -6px; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu {\n        margin-top: 0;\n        border: none; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a {\n          font-family: \"Open Sans\", sans-serif;\n          font-size: 14px;\n          font-weight: 300;\n          padding: 9px 10px;\n          white-space: normal; }\n          .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a .label,\n          .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a .badge {\n            font-weight: 300; }\n      .page-header.navbar .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu {\n        min-width: 195px;\n        max-width: 235px; }\n      .page-header.navbar .hor-menu .navbar-nav > li.classic-menu-dropdown:hover > .dropdown-menu {\n        display: block; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-submenu > .dropdown-menu {\n        top: 0; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n        top: 9px;\n        right: 10px; }\n\n/* Form medium devices upto large devices */\n@media (min-width: 992px) and (max-width: 1200px) {\n  /* 992px 1200px */\n  /* Boxed layout */\n  .page-boxed .page-header.navbar {\n    /* Top menu */ }\n    .page-boxed .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile {\n      display: none; }\n    .page-boxed .page-header.navbar .top-menu .navbar-nav > li.dropdown-language .dropdown-toggle .langname {\n      display: none; } }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Page header */\n  .page-header.navbar {\n    /* Header logo */ }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo {\n      padding: 0; }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo {\n      width: 45px; }\n      .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo .logo-default {\n        display: none; }\n  /* Boxed Layout */\n  .page-boxed .page-header.navbar {\n    /* Page logo */\n    /* Top menu */ }\n    .page-boxed .page-header.navbar .page-logo {\n      width: 236px; }\n    .page-boxed .page-header.navbar .top-menu .navbar-nav {\n      margin-right: 0px; }\n  /* Sidebar closed & logo hidden */\n  .page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar {\n    /* Page logo */ }\n    .page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar .page-logo {\n      width: 46px; }\n  /* Boxed layout & page sidebar fixed layout */\n  .page-boxed.page-sidebar-fixed .page-header.navbar {\n    /* Page logo */ }\n    .page-boxed.page-sidebar-fixed .page-header.navbar .page-logo {\n      width: 235px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Page header */\n  .page-header.navbar {\n    padding: 0 20px 0 20px;\n    position: relative;\n    clear: both;\n    /* Page logo */\n    /* Menu Toggler */\n    /* Top Menu */ }\n    .page-header.navbar .page-logo {\n      width: auto;\n      padding: 0;\n      margin-right: 10px;\n      margin-left: 0px !important;\n      padding-left: 0px !important; }\n      .page-header.navbar .page-logo img {\n        margin-left: 4px !important; }\n    .page-header.navbar .menu-toggler.sidebar-toggler {\n      display: none !important; }\n    .page-header.navbar .menu-toggler.responsive-toggler {\n      display: block; }\n    .page-header.navbar .top-menu .navbar-nav {\n      display: inline-block;\n      margin: 0 10px 0 0; }\n      .page-header.navbar .top-menu .navbar-nav > li {\n        float: left; }\n      .page-header.navbar .top-menu .navbar-nav .nav li.dropdown i {\n        display: inline-block;\n        position: relative;\n        top: 1px;\n        right: 0px; }\n      .page-header.navbar .top-menu .navbar-nav .open .dropdown-menu {\n        position: absolute; }\n  /* Fixed header for mobile */\n  .page-header-fixed.page-header-fixed-mobile .navbar-fixed-top {\n    position: fixed; }\n  /* Boxed Layout */\n  .page-boxed .page-header.navbar > .container {\n    max-width: none !important;\n    margin: 0 !important;\n    padding: 0 !important; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  /* 768px & 991px */\n  /* Boxed Layout */\n  .page-boxed .page-header.navbar {\n    margin: auto !important;\n    padding: 0; }\n    .page-boxed .page-header.navbar > .container {\n      margin: auto !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  /* Page header */\n  .page-header.navbar {\n    padding: 0 10px 0 10px;\n    /* Header logo */\n    /* Search box */\n    /* Top navigation menu*/ }\n    .page-header.navbar .page-logo {\n      width: auto; }\n    .page-header.navbar .search-form.open {\n      z-index: 3;\n      left: 10px;\n      right: 10px;\n      position: absolute;\n      width: auto !important; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended > .dropdown-menu {\n      max-width: 255px;\n      width: 255px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu {\n      margin-right: -190px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu:after, .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu:before {\n        margin-right: 190px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu {\n      margin-right: -150px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu:after, .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu:before {\n        margin-right: 150px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu {\n      margin-right: -110px; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu:after, .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu:before {\n        margin-right: 110px; } }\n\n@media (max-width: 580px) {\n  /* Page header */\n  .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile {\n    display: none; }\n  .page-header.navbar .top-menu .navbar-nav > li.dropdown-language .dropdown-toggle .langname {\n    display: none; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  /* Fixed header for mobile */\n  .page-header-fixed.page-header-fixed-mobile .page-header.navbar {\n    height: 100px; }\n  .page-header.navbar {\n    /* Top menu */ }\n    .page-header.navbar .top-menu {\n      display: block;\n      clear: both;\n      float: none; }\n      .page-header.navbar .top-menu .navbar-nav {\n        margin-right: 0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle {\n          padding: 19px 6px 10px 6px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-language .dropdown-toggle {\n          padding: 16px 4px 13px 2px; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          padding: 16px 0px 13px 2px; } }\n\n/***\nPace - Page Progress\n***/\n.pace .pace-progress {\n  z-index: 10005;\n  top: 50px;\n  height: 2px;\n  box-shadow: none; }\n\n.pace .pace-progress-inner {\n  box-shadow: none; }\n\n.pace .pace-inactive {\n  display: none; }\n\n.pace .pace-activity {\n  top: 54px;\n  z-index: 10005;\n  right: 20px;\n  border-radius: 10px !important; }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header-fixed .pace .pace-progress {\n    top: 100px; }\n  .page-header-fixed .pace .pace-activity {\n    top: 104px; } }\n\n/***\nPage container\n***/\n.page-container {\n  margin: 0px;\n  padding: 0px;\n  position: relative;\n  /* Fixed header */\n  /* Fixed footer for mobile */ }\n  .page-container:before, .page-container:after {\n    content: \" \";\n    display: table; }\n  .page-container:after {\n    clear: both; }\n  .page-header-fixed .page-container {\n    margin-top: 50px; }\n  .page-footer-fixed.page-footer-fixed-mobile .page-container {\n    margin-bottom: 20px !important; }\n\n@media (min-width: 992px) {\n  /* Page container in fixed footer */\n  .page-footer-fixed .page-container {\n    margin-bottom: 20px !important; } }\n\n@media (max-width: 991px) {\n  /* Page container */\n  .page-container {\n    margin: 0 !important;\n    padding: 0 !important; }\n    .page-header-fixed.page-header-fixed-mobile .page-container {\n      margin-top: 50px !important; } }\n\n@media (max-width: 480px) {\n  /* Page container */\n  .page-header-fixed.page-header-fixed-mobile .page-container {\n    margin-top: 100px !important; } }\n\n/***\nPage sidebar\n***/\n/* Page Sidebar */\n.page-sidebar,\n.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover {\n  /* Default sidebar menu */\n  /* light sidebar menu */ }\n  .page-sidebar.navbar-collapse,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover.navbar-collapse {\n    padding: 0;\n    box-shadow: none; }\n  .page-sidebar .page-sidebar-menu,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu {\n    list-style: none;\n    margin: 0;\n    padding: 0;\n    /* 1st level links */\n    /* all links */ }\n    .page-sidebar .page-sidebar-menu > li,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li {\n      display: block;\n      margin: 0;\n      padding: 0;\n      border: 0px; }\n      .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper {\n        border: 0 !important; }\n        .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper:before, .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper:after, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper:before, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper:before,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper:before,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper:after {\n          content: \" \";\n          display: table; }\n        .page-sidebar .page-sidebar-menu > li.sidebar-toggler-wrapper:after, .page-sidebar .page-sidebar-menu > li.sidebar-search-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-toggler-wrapper:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.sidebar-search-wrapper:after {\n          clear: both; }\n      .page-sidebar .page-sidebar-menu > li.start > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.start > a {\n        border-top-color: transparent !important; }\n      .page-sidebar .page-sidebar-menu > li.last > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.last > a {\n        border-bottom-color: transparent !important; }\n      .page-sidebar .page-sidebar-menu > li > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a {\n        display: block;\n        position: relative;\n        margin: 0;\n        border: 0px;\n        padding: 10px 15px;\n        text-decoration: none;\n        font-size: 14px;\n        font-weight: 300; }\n        .page-sidebar .page-sidebar-menu > li > a > i,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i {\n          font-size: 16px;\n          margin-right: 5px;\n          text-shadow: none; }\n        .page-sidebar .page-sidebar-menu > li > a > i.glyphicon,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i.glyphicon {\n          margin-left: 1px;\n          margin-right: 4px; }\n        .page-sidebar .page-sidebar-menu > li > a > [class^=\"icon-\"],\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > [class^=\"icon-\"] {\n          margin-left: 1px;\n          margin-right: 4px; }\n        .page-sidebar-fixed .page-sidebar .page-sidebar-menu > li > a, .page-sidebar-fixed\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a {\n          transition: all 0.2s ease; }\n        .page-sidebar-reversed.page-sidebar-fixed .page-sidebar .page-sidebar-menu > li > a, .page-sidebar-reversed.page-sidebar-fixed\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a {\n          transition: none; }\n      .page-sidebar .page-sidebar-menu > li.heading,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading {\n        padding: 15px 15px 15px 15px; }\n        .page-sidebar .page-sidebar-menu > li.heading > h3,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading > h3 {\n          margin: 0;\n          padding: 0;\n          font-size: 14px;\n          font-weight: 300; }\n      .page-sidebar .page-sidebar-menu > li.heading + li > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading + li > a {\n        border-top: 0; }\n      .page-sidebar .page-sidebar-menu > li.open > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a {\n        font-size: 14px; }\n      .page-sidebar .page-sidebar-menu > li.active > a,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a {\n        border: none;\n        text-shadow: none;\n        font-size: 14px; }\n        .page-sidebar .page-sidebar-menu > li.active > a > .selected,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n          display: block;\n          background-image: none;\n          /* will be set in a theme css file*/\n          float: right;\n          position: absolute;\n          right: 0px;\n          top: 8px;\n          background: none;\n          width: 0;\n          height: 0;\n          border-top: 12px solid transparent;\n          border-bottom: 12px solid transparent;\n          border-right: 12px solid #ffffff; }\n          .page-sidebar-reversed .page-sidebar .page-sidebar-menu > li.active > a > .selected, .page-sidebar-reversed\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n            right: auto;\n            left: 0;\n            border-right: 0;\n            border-left: 8px solid #ffffff; }\n          .page-container-bg-solid .page-sidebar .page-sidebar-menu > li.active > a > .selected, .page-container-bg-solid\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n            border-color: transparent #eef1f5 transparent transparent; }\n          .page-container-bg-solid.page-sidebar-reversed .page-sidebar .page-sidebar-menu > li.active > a > .selected, .page-container-bg-solid.page-sidebar-reversed\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .selected {\n            border-color: transparent transparent transparent #eef1f5; }\n    .page-sidebar .page-sidebar-menu li > a,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a {\n      position: relative; }\n      .page-sidebar .page-sidebar-menu li > a > .arrow:before,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow:before {\n        float: right;\n        width: 20px;\n        text-align: center;\n        display: inline;\n        font-size: 16px;\n        font-family: FontAwesome;\n        height: auto;\n        content: \"\\f104\";\n        font-weight: 300;\n        text-shadow: none;\n        position: absolute;\n        top: 4px;\n        right: 14px; }\n      .page-sidebar .page-sidebar-menu li > a > .arrow.open:before,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow.open:before {\n        content: \"\\f107\"; }\n      .page-sidebar .page-sidebar-menu li > a > .badge,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .badge {\n        float: right;\n        margin-top: 1px;\n        margin-right: 0px;\n        position: absolute;\n        right: 14px;\n        top: 6px; }\n    .page-sidebar .page-sidebar-menu > li > a > .arrow:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > .arrow:before {\n      top: 8px; }\n    .page-sidebar .page-sidebar-menu .sub-menu,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu {\n      list-style: none;\n      display: none;\n      padding: 0;\n      margin: 8px 0px 8px 0px; }\n      .page-sidebar .page-sidebar-menu .sub-menu li,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li {\n        background: none;\n        margin: 0px;\n        padding: 0px;\n        margin-top: 1px !important;\n        /* 2nd level sub menu */ }\n        .page-sidebar .page-sidebar-menu .sub-menu li > a,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > a {\n          display: block;\n          margin: 0;\n          padding: 6px 15px 6px 43px;\n          text-decoration: none;\n          font-size: 14px;\n          font-weight: 300;\n          background: none; }\n          .page-sidebar .page-sidebar-menu .sub-menu li > a > i,\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > a > i {\n            font-size: 14px; }\n        .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu {\n          margin: 0; }\n          .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li,\n          .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li {\n            /* 3rd level sub menu */ }\n            .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li > a,\n            .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li > a {\n              padding-left: 60px; }\n            .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu,\n            .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu {\n              margin: 0; }\n              .page-sidebar .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu > li > a,\n              .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li > .sub-menu > li > .sub-menu > li > a {\n                padding-left: 80px; }\n      .page-sidebar .page-sidebar-menu .sub-menu.always-open,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu.always-open {\n        display: block; }\n    .page-sidebar .page-sidebar-menu li.active > .sub-menu,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active > .sub-menu {\n      display: block; }\n  .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li > a,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li > a {\n    border: 0;\n    margin: 0;\n    padding-left: 11px;\n    border-left: 4px solid transparent; }\n  .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu {\n    margin: 0;\n    padding: 1px 0; }\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li > a,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li > a {\n      padding-top: 8px;\n      padding-bottom: 8px; }\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li:first-child,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu li:first-child {\n      margin-top: 0 !important; }\n  .page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li > a, .page-sidebar-reversed\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li > a {\n    padding-left: 15px;\n    padding-right: 11px;\n    border-left: 0;\n    border-right: 4px solid transparent; }\n  .page-sidebar .sidebar-toggler,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler {\n    webkit-transition: opacity 0.3s;\n    -moz-transition: opacity 0.3s;\n    -ms-transition: opacity 0.3s;\n    -o-transition: opacity 0.3s;\n    transition: opacity 0.3s;\n    display: block;\n    cursor: pointer;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ;\n    padding: 6px 8px;\n    margin-top: 15px;\n    margin-right: 16px;\n    float: right;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .page-sidebar .sidebar-toggler > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span {\n      outline: none !important; }\n      .page-sidebar .sidebar-toggler > span:hover,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover {\n        background: #ffffff; }\n        .page-sidebar .sidebar-toggler > span:hover:before, .page-sidebar .sidebar-toggler > span:hover:after,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:before,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:after {\n          background: #ffffff; }\n    .page-sidebar .sidebar-toggler > span,\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar .sidebar-toggler > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after {\n      display: inline-block;\n      width: 16px;\n      height: 1px;\n      background: #ffffff;\n      position: relative;\n      top: -5px;\n      transition: all ease .3s; }\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar .sidebar-toggler > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after {\n      position: absolute;\n      left: 0;\n      content: ''; }\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before {\n      top: 5px; }\n    .page-sidebar .sidebar-toggler > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after {\n      top: -5px; }\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span {\n      background-color: transparent !important; }\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span:after,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span:after {\n      webkit-transform: translateY(5px) rotateZ(45deg);\n      -moz-transform: translateY(5px) rotateZ(45deg);\n      -ms-transform: translateY(5px) rotateZ(45deg);\n      -o-transform: translateY(5px) rotateZ(45deg);\n      transform: translateY(5px) rotateZ(45deg); }\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span:before {\n      webkit-transform: translateY(-5px) rotateZ(-45deg);\n      -moz-transform: translateY(-5px) rotateZ(-45deg);\n      -ms-transform: translateY(-5px) rotateZ(-45deg);\n      -o-transform: translateY(-5px) rotateZ(-45deg);\n      transform: translateY(-5px) rotateZ(-45deg); }\n    .page-sidebar .sidebar-toggler:hover,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover {\n      webkit-transition: opacity 0.3s;\n      -moz-transition: opacity 0.3s;\n      -ms-transition: opacity 0.3s;\n      -o-transition: opacity 0.3s;\n      transition: opacity 0.3s;\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n  .page-sidebar .sidebar-search,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search {\n    padding: 0;\n    margin: 22px 18px 22px 18px; }\n    .page-sidebar .sidebar-search .remove,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove {\n      display: none; }\n      .page-sidebar .sidebar-search .remove > i,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove > i {\n        font-size: 16px; }\n    .page-sidebar .sidebar-search .input-group,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group {\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n      .page-sidebar .sidebar-search .input-group .form-control,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control {\n        border: 0;\n        font-size: 14px;\n        padding: 0;\n        height: auto;\n        line-height: auto;\n        -webkit-border-radius: 4px;\n        -moz-border-radius: 4px;\n        -ms-border-radius: 4px;\n        -o-border-radius: 4px;\n        border-radius: 4px; }\n      .page-sidebar .sidebar-search .input-group .input-group-btn .btn,\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn {\n        padding: 2px 0 0 0;\n        background-color: transparent;\n        background-repeat: no-repeat;\n        background-position: 100% 3px; }\n        .page-sidebar .sidebar-search .input-group .input-group-btn .btn > i,\n        .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn > i {\n          font-size: 15px; }\n  .page-sidebar .sidebar-search.sidebar-search-bordered,\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered {\n    margin: 25px 18px 25px 18px; }\n    .page-sidebar .sidebar-search.sidebar-search-bordered .input-group .form-control,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .form-control {\n      font-size: 13px;\n      padding: 6px 8px; }\n    .page-sidebar .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn {\n      margin-right: 6px; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .page-sidebar {\n    width: 235px;\n    float: left;\n    position: relative;\n    margin-right: -100%; }\n    .page-full-width .page-sidebar {\n      display: none !important; }\n    .page-sidebar.collapse {\n      display: block;\n      max-height: none !important; }\n  .page-sidebar-reversed .page-sidebar {\n    float: right;\n    margin-right: 0;\n    margin-left: -100%; }\n  .page-sidebar-reversed.page-sidebar-fixed .page-sidebar {\n    margin-left: -235px; }\n  .page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper {\n    position: relative;\n    float: right; }\n  .page-sidebar-fixed .page-sidebar {\n    position: fixed !important;\n    margin-left: 0;\n    top: 50px; }\n  .page-sidebar-fixed .page-sidebar-menu > li.last {\n    margin-bottom: 15px !important; }\n  .page-sidebar-fixed .page-sidebar-menu .sub-menu {\n    height: auto !important; }\n  /* Sidebar Closed */\n  .page-sidebar-closed .page-sidebar {\n    width: 45px !important; }\n    .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed {\n      /* sidebar */\n      width: 45px !important;\n      /* sidebar toggler */\n      /* sidebar search */\n      /* sidebar bordered search */\n      /* sidebar search expanded */\n      /* sidebar bordered search expanded */ }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li {\n        /* hide opened sub menu */ }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.open > .sub-menu,\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > .sub-menu {\n          display: none !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover {\n          width: 256px !important;\n          position: relative !important;\n          z-index: 10000;\n          display: block !important; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a {\n            -webkit-border-radius: 0 4px 0 0;\n            -moz-border-radius: 0 4px 0 0;\n            -ms-border-radius: 0 4px 0 0;\n            -o-border-radius: 0 4px 0 0;\n            border-radius: 0 4px 0 0; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > i {\n              margin-right: 10px; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .title {\n              display: inline !important;\n              padding-left: 15px; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .badge {\n              display: block !important; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .selected {\n              display: none; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover.heading {\n            width: 45px !important;\n            box-shadow: none; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu {\n            width: 210px;\n            position: absolute;\n            z-index: 2000;\n            left: 46px;\n            margin-top: 0;\n            top: 100%;\n            display: block !important;\n            -webkit-border-radius: 0 0 4px 4px;\n            -moz-border-radius: 0 0 4px 4px;\n            -ms-border-radius: 0 0 4px 4px;\n            -o-border-radius: 0 0 4px 4px;\n            border-radius: 0 0 4px 4px; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu > li > a {\n              padding-left: 15px !important; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu > li > .sub-menu > li > a {\n              padding-left: 30px !important; }\n            .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu > li > .sub-menu > li > .sub-menu > li > a {\n              padding-left: 45px !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.heading > h3 {\n          display: none; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-toggler-wrapper .sidebar-toggler {\n          margin-right: 8px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-toggler-wrapper:hover {\n          width: 45px !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-search-wrapper:hover {\n          width: 45px !important; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a {\n          padding-left: 11px; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a .selected {\n            right: -3px !important; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a > .badge,\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a > .title,\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > a > .arrow {\n            display: none !important; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-toggler {\n        margin-left: 3px;\n        margin-right: 3px; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group {\n        border-color: transparent;\n        margin-left: -4px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .form-control {\n          display: none; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .input-group-btn .btn {\n          display: block; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.sidebar-search-bordered .input-group {\n        padding: 5px 0 3px 0; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open {\n        height: 40px;\n        margin-top: 15px;\n        margin-bottom: 14px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group {\n          width: 210px;\n          position: relative;\n          z-index: 1;\n          margin-left: 24px;\n          padding: 0; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .form-control {\n            background: none;\n            border: 0;\n            display: block;\n            padding: 8px 8px; }\n          .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn {\n            display: block;\n            margin-right: 8px;\n            margin-top: 1px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove {\n          background-repeat: no-repeat;\n          width: 11px;\n          height: 11px;\n          margin: 10px -5px 8px -7px;\n          display: block;\n          float: left; }\n      .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered {\n        height: 38px;\n        margin-top: 23px;\n        margin-bottom: 23px; }\n        .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered .input-group {\n          padding: 0; }\n    .page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed > li > a {\n      padding-right: 11px;\n      padding-left: 7px; }\n  .page-sidebar-closed.page-sidebar-reversed .page-sidebar {\n    margin-left: -45px;\n    width: 45px; }\n    .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed {\n      /* sidebar */\n      /* sidebar search */ }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li > .sub-menu {\n        left: auto;\n        right: 46px; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover {\n        margin-left: -211px; }\n        .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a {\n          -webkit-border-radius: 4px 0 0 0;\n          -moz-border-radius: 4px 0 0 0;\n          -ms-border-radius: 4px 0 0 0;\n          -o-border-radius: 4px 0 0 0;\n          border-radius: 4px 0 0 0; }\n          .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > .title {\n            padding-left: 0;\n            padding-right: 15px; }\n          .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li:hover > a > i {\n            margin-right: 0;\n            margin-left: 2px; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-search-wrapper:hover, .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed > li.sidebar-toggler-wrapper:hover {\n        margin-left: 0; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group {\n        margin-left: -227px; }\n        .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn {\n          margin-right: 10px !important; }\n      .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove {\n        margin: 9px 4px 12px -16px  !important;\n        float: right !important; }\n    .page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed > li > a {\n      padding-right: 7px;\n      padding-left: 11px; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover {\n    width: 235px !important;\n    display: block;\n    z-index: 10000; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu {\n      width: 235px !important; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .selected {\n        display: none !important; }\n  .page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover {\n    width: 235px !important;\n    z-index: 10000;\n    margin-left: -235px !important; }\n    .page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover .page-sidebar-menu {\n      width: 235px !important; }\n  .page-sidebar-closed.page-sidebar-hide .page-sidebar {\n    display: none !important; }\n  /* Sidebar Menu Wirh Hoverable Submenu */\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu {\n    display: none;\n    width: 210px;\n    z-index: 2000;\n    position: absolute;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu > li > a {\n      margin: 3px; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li.active .sub-menu, .page-sidebar-menu.page-sidebar-menu-hover-submenu li.open .sub-menu {\n    display: none !important; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li a > .arrow {\n    display: none; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow {\n    display: block;\n    float: right;\n    position: absolute;\n    right: 0;\n    margin-top: -20px;\n    background: none;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-top: 12px double transparent;\n    border-bottom: 12px double transparent;\n    border-left: 0; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow:after, .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow:before {\n      display: none; }\n    .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > a > .arrow {\n      right: auto;\n      left: 0;\n      border-right: 0; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover > .sub-menu {\n    display: inline-block !important; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > a > .arrow {\n    z-index: 1;\n    right: 0px;\n    margin-top: -23px; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > a > .selected {\n    display: none; }\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n    margin-left: 235px;\n    margin-top: -40px; }\n    .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n      margin-left: -210px !important; }\n    .page-sidebar-closed .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n      margin-left: 0; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li > a {\n      padding-left: 15px; }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li .sub-menu {\n      margin-left: 210px;\n      margin-top: -38px !important; }\n      .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li .sub-menu {\n        margin-left: -210px !important; }\n      .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu > li .sub-menu > li > a {\n        padding-left: 10px;\n        padding-right: 10px; }\n  .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover > .sub-menu {\n    margin-top: -41px; }\n    .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover > .sub-menu > li > .sub-menu {\n      margin-top: -41px; } }\n\n.page-sidebar-wrapper .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler {\n  display: none; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-sidebar {\n    border-top: 0 !important;\n    margin: 20px; }\n    .page-sidebar .sidebar-toggler {\n      display: none; }\n    .page-sidebar .selected {\n      display: none !important; }\n    .page-sidebar.navbar-collapse {\n      max-height: none;\n      /* set some max height to have a scrollable menu on mobile devices */ }\n      .page-sidebar.navbar-collapse.collapse {\n        display: none !important; }\n      .page-sidebar.navbar-collapse.in {\n        border-top: 0 !important;\n        margin: 20px;\n        position: relative;\n        overflow: hidden !important;\n        overflow-y: auto !important;\n        display: block !important; }\n      .page-sidebar.navbar-collapse.navbar-no-scroll {\n        max-height: none !important; }\n    .page-sidebar .mega-menu-responsive-content {\n      padding: 10px 18px 10px 45px; }\n  .page-full-width .page-sidebar-menu {\n    display: block; }\n  .page-sidebar-mobile-offcanvas .page-sidebar-wrapper {\n    z-index: 10000;\n    position: fixed;\n    top: 0;\n    bottom: 0;\n    overflow-y: auto;\n    width: 235px;\n    left: -235px;\n    transition: all 0.3s; }\n    .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar {\n      margin: 0 !important; }\n      .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu {\n        width: 100%;\n        margin: 0 !important;\n        padding: 0 0 20px 0; }\n        .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler {\n          display: block;\n          border: 0;\n          text-align: right; }\n          .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler > a {\n            border: 0; }\n            .page-sidebar-mobile-offcanvas .page-sidebar-wrapper .page-sidebar .page-sidebar-menu > li.sidebar-mobile-offcanvas-toggler > a:hover {\n              background: none; }\n  .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open .page-sidebar-wrapper {\n    left: 0;\n    transition: all 0.3s; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  /* 768px & 991px */\n  .page-sidebar .btn-navbar.collapsed .arrow {\n    display: none; }\n  .page-sidebar .btn-navbar .arrow {\n    position: absolute;\n    right: 25px;\n    width: 0;\n    height: 0;\n    top: 50px;\n    border-bottom: 15px solid #5f646b;\n    border-left: 15px solid transparent;\n    border-right: 15px solid transparent; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  /* Page sidebar */\n  .page-sidebar,\n  .page-sidebar.in {\n    margin: 0 10px 10px 10px !important; }\n    .page-header-fixed.page-header-fixed-mobile .page-sidebar, .page-header-fixed.page-header-fixed-mobile\n    .page-sidebar.in {\n      margin-top: 10px !important; } }\n\n/***\nPage content\n***/\n/* Page title */\n.page-title {\n  padding: 0px;\n  font-size: 28px;\n  letter-spacing: -1px;\n  display: block;\n  color: #666;\n  margin: 0px 0px 15px 0px;\n  font-weight: 300;\n  /* subtitle */ }\n  .page-title small {\n    font-size: 14px;\n    letter-spacing: 0px;\n    font-weight: 300;\n    color: #888; }\n  .page-content-white .page-title,\n  .page-container-bg-solid .page-title {\n    color: #666;\n    margin-bottom: 20px;\n    margin-top: 20px; }\n    .page-content-white .page-title small,\n    .page-container-bg-solid .page-title small {\n      color: #666; }\n  .page-content-white .page-title {\n    margin: 25px 0;\n    font-size: 24px; }\n\n/* Page breadcrumb */\n.page-bar {\n  padding: 0px;\n  background-color: #f1f4f7;\n  margin-bottom: 25px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .page-bar:before, .page-bar:after {\n    content: \" \";\n    display: table; }\n  .page-bar:after {\n    clear: both; }\n  .page-bar .page-breadcrumb {\n    display: inline-block;\n    float: left;\n    padding: 8px;\n    margin: 0;\n    list-style: none; }\n    .page-bar .page-breadcrumb > li {\n      display: inline-block; }\n      .ie8 .page-bar .page-breadcrumb > li {\n        margin-right: 1px; }\n      .page-bar .page-breadcrumb > li > a,\n      .page-bar .page-breadcrumb > li > span {\n        color: #888;\n        font-size: 14px;\n        text-shadow: none; }\n      .page-bar .page-breadcrumb > li > i {\n        color: #aaa;\n        font-size: 14px;\n        text-shadow: none; }\n      .page-bar .page-breadcrumb > li > i[class^=\"icon-\"],\n      .page-bar .page-breadcrumb > li > i[class*=\"icon-\"] {\n        color: gray; }\n  .page-bar .page-toolbar {\n    display: inline-block;\n    float: right;\n    padding: 0; }\n    .page-bar .page-toolbar .btn-fit-height {\n      -webkit-border-radius: 0 4px 4px 0;\n      -moz-border-radius: 0 4px 4px 0;\n      -ms-border-radius: 0 4px 4px 0;\n      -o-border-radius: 0 4px 4px 0;\n      border-radius: 0 4px 4px 0;\n      padding-top: 8px;\n      padding-bottom: 8px; }\n      .page-md .page-bar .page-toolbar .btn-fit-height {\n        padding-top: 9px;\n        padding-bottom: 9px;\n        box-shadow: none !important; }\n  .page-content-white .page-bar,\n  .page-container-bg-solid .page-bar {\n    background-color: #ffffff;\n    position: relative;\n    padding: 0px 20px;\n    margin: -25px -20px 0 -20px; }\n    .page-content-white .page-bar .page-breadcrumb,\n    .page-container-bg-solid .page-bar .page-breadcrumb {\n      padding: 11px 0; }\n      .page-content-white .page-bar .page-breadcrumb > li > a,\n      .page-content-white .page-bar .page-breadcrumb > li > span,\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > a,\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > span {\n        color: #888; }\n      .page-content-white .page-bar .page-breadcrumb > li > i,\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > i {\n        color: #aaa; }\n        .page-content-white .page-bar .page-breadcrumb > li > i.fa-circle,\n        .page-container-bg-solid .page-bar .page-breadcrumb > li > i.fa-circle {\n          font-size: 5px;\n          margin: 0 5px;\n          position: relative;\n          top: -3px;\n          opacity: 0.4 ;\n          filter: alpha(opacity=40) ; }\n      .page-content-white .page-bar .page-breadcrumb > li > i[class^=\"icon-\"],\n      .page-content-white .page-bar .page-breadcrumb > li > i[class*=\"icon-\"],\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > i[class^=\"icon-\"],\n      .page-container-bg-solid .page-bar .page-breadcrumb > li > i[class*=\"icon-\"] {\n        color: #8c8c8c; }\n    .page-content-white .page-bar .page-toolbar,\n    .page-container-bg-solid .page-bar .page-toolbar {\n      padding: 6px 0; }\n      .page-content-white .page-bar .page-toolbar .btn,\n      .page-container-bg-solid .page-bar .page-toolbar .btn {\n        margin-top: -2px; }\n        .page-content-white .page-bar .page-toolbar .btn.btn-sm,\n        .page-container-bg-solid .page-bar .page-toolbar .btn.btn-sm {\n          margin-top: 0px; }\n\n/* Page content */\n.page-content {\n  margin-top: 0px;\n  padding: 0px;\n  background-color: #fff; }\n  .page-container-bg-solid .page-content {\n    background: #eef1f5; }\n  .page-content-white .page-content .page-bar {\n    border-bottom: 1px solid #e7ecf1; }\n  .page-content-white.page-md .page-content .page-bar,\n  .page-container-bg-solid.page-md .page-content .page-bar {\n    border-radius: 0 !important; }\n  .page-full-width .page-content {\n    margin-left: 0px !important; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Page content */\n  .page-content-wrapper {\n    float: left;\n    width: 100%; }\n    .page-content-wrapper .page-content {\n      margin-left: 235px;\n      margin-top: 0px;\n      min-height: 600px;\n      padding: 25px 20px 10px 20px; }\n      .page-content-wrapper .page-content.no-min-height {\n        min-height: auto; }\n      .page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content {\n        margin-left: 45px; }\n      .page-sidebar-reversed .page-content-wrapper .page-content {\n        margin-left: 0 !important;\n        margin-right: 235px !important; }\n      .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content {\n        margin-left: 0;\n        margin-right: 45px; }\n      .page-sidebar-reversed.page-sidebar-closed .page-content-wrapper .page-content {\n        margin-left: 0 !important;\n        margin-right: 45px !important; }\n      .page-sidebar-closed .page-content-wrapper .page-content {\n        margin-left: 45px !important; }\n      .page-sidebar-closed.page-sidebar-hide .page-content-wrapper .page-content {\n        margin-left: 0 !important; }\n      .page-sidebar-closed.page-sidebar-reversed.page-sidebar-hide .page-content-wrapper .page-content {\n        margin-right: 0 !important; }\n      .page-full-width .page-content-wrapper .page-content {\n        margin-left: 0px !important; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  html,\n  body {\n    overflow-x: hidden; }\n  /* Bg solid content's breadcrumb */\n  .page-content-white .page-bar,\n  .page-container-bg-solid .page-bar {\n    margin-top: -20px; }\n  /* Boxed page container  */\n  .page-boxed > .container {\n    max-width: none !important;\n    margin: 0 !important;\n    padding: 0 !important; }\n  /* Page content */\n  .page-content-wrapper .page-content {\n    margin: 0px !important;\n    padding: 20px 20px 20px 20px !important;\n    min-height: 280px; }\n  .page-sidebar-mobile-offcanvas .page-wrapper {\n    left: 0;\n    transition: all 0.3s; }\n    .page-sidebar-mobile-offcanvas .page-wrapper .page-header {\n      transition: all 0.3s; }\n  .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open {\n    overflow-x: hidden;\n    transition: all 0.3s; }\n    .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open .page-wrapper {\n      position: relative;\n      left: 235px;\n      transition: all 0.3s; }\n      .page-sidebar-mobile-offcanvas.page-sidebar-mobile-offcanvas-open .page-wrapper .page-header {\n        transition: all 0.3s; } }\n\n@media (min-width: 768px) and (max-width: 991px) {\n  /*  768px & 991px */\n  /* Boxed page container */\n  .page-boxed > .container {\n    margin: auto !important; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  /* Page content */\n  .page-content-wrapper .page-content {\n    padding: 20px 10px 10px 10px !important;\n    overflow: hidden;\n    /* Page title */ }\n    .page-content-wrapper .page-content .page-title {\n      margin-bottom: 20px;\n      font-size: 18px; }\n      .page-content-wrapper .page-content .page-title small {\n        font-size: 13px;\n        padding-top: 3px; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  /* Dashboard date range panel */\n  .page-content-wrapper .page-content .page-title small {\n    display: block;\n    clear: both; } }\n\n/***\nPage footer\n***/\n.page-footer {\n  padding: 8px 20px 5px 20px;\n  font-size: 13px;\n  height: 33px; }\n  .page-footer:before, .page-footer:after {\n    content: \" \";\n    display: table; }\n  .page-footer:after {\n    clear: both; }\n  .page-footer .page-footer-inner {\n    float: left;\n    display: inline-block; }\n  .page-footer-fixed.page-footer-fixed-mobile .page-footer {\n    position: fixed;\n    left: 0;\n    right: 0;\n    z-index: 10000;\n    bottom: 0; }\n  .page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .page-footer {\n    margin-left: 0 !important; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Default footer */\n  .page-footer {\n    clear: left; }\n  /* Fixed footer */\n  .page-footer-fixed .page-footer {\n    position: fixed;\n    left: 0;\n    right: 0;\n    z-index: 10000;\n    bottom: 0; }\n  /* Footer with footer sidebar */\n  .page-sidebar-fixed.page-sidebar-closed .page-footer {\n    margin-left: 45px; }\n  .page-sidebar-fixed.page-footer-fixed .page-footer {\n    margin-left: 0 !important; }\n  /* Fixed Sidebar */\n  .page-sidebar-fixed .page-footer {\n    margin-left: 235px;\n    padding: 8px 20px 5px 20px; }\n  /* Boxed page */\n  .page-boxed .page-footer {\n    padding: 8px 0 5px 0; }\n  .page-boxed.page-sidebar-fixed .page-footer {\n    padding-right: 20px;\n    padding-left: 20px; }\n  /* Page sidebar reversed */\n  .page-sidebar-reversed.page-sidebar-fixed .page-footer {\n    margin-left: 0;\n    margin-right: 235px;\n    padding: 8px 20px 5px 20px; }\n  .page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .page-footer {\n    margin-left: 0;\n    margin-right: 0; }\n  .page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-footer {\n    margin-right: 45px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Boxed Layout */\n  .page-boxed .page-footer {\n    padding-left: 0px;\n    padding-right: 0px; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  /* Default footer & boxed footer */\n  .page-footer,\n  .page-boxed .page-footer {\n    padding-left: 10px;\n    padding-right: 10px; }\n  /* Fixed footer */\n  .page-footer-fixed .page-footer .container {\n    padding-left: 0;\n    padding-right: 0; } }\n\n/* Scroll Top Top */\n.scroll-to-top {\n  display: inline-block;\n  padding: 1px;\n  text-align: center;\n  position: fixed;\n  bottom: 10px;\n  z-index: 10001;\n  display: none;\n  right: 10px; }\n  .scroll-to-top > i {\n    display: inline-block;\n    color: #687991;\n    font-size: 30px;\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ; }\n  .scroll-to-top:hover {\n    cursor: pointer; }\n    .scroll-to-top:hover > i {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .scroll-to-top {\n    right: 20px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .scroll-to-top {\n    bottom: 10px;\n    right: 10px; }\n    .scroll-to-top > i {\n      font-size: 28px; } }\n\n/***\nTheme Panel\n***/\n.theme-panel {\n  width: 420px;\n  margin-top: -13px;\n  margin-right: 0px;\n  z-index: 100;\n  float: right;\n  position: relative;\n  /* content solid bg color */ }\n  .theme-panel > .toggler {\n    top: 4px;\n    right: 0;\n    padding: 20px;\n    cursor: pointer;\n    position: absolute;\n    background: #536881 url(../img/icon-color.png) center no-repeat;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .theme-panel > .toggler:hover {\n      background-color: #3f4f62 !important; }\n  .theme-panel > .toggler-close {\n    display: none;\n    top: 4px;\n    right: 0;\n    padding: 20px;\n    z-index: 101;\n    cursor: pointer;\n    position: absolute;\n    background: #2b3643 url(../img/icon-color-close.png) center no-repeat !important;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .theme-panel > .toggler-close:hover {\n      background-color: #212933 !important; }\n  .theme-panel > .theme-options {\n    top: 4px;\n    right: 0;\n    display: none;\n    position: absolute;\n    z-index: 100;\n    background: #2b3643;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    -ms-border-radius: 4px;\n    -o-border-radius: 4px;\n    border-radius: 4px; }\n    .theme-panel > .theme-options > .theme-option {\n      color: #c6cfda;\n      padding: 15px;\n      border-top: 1px solid #354353;\n      margin-top: 0px;\n      margin-bottom: 0px; }\n      .theme-panel > .theme-options > .theme-option > span {\n        text-transform: uppercase;\n        display: inline-block;\n        width: 145px;\n        font-size: 13px;\n        font-weight: 300; }\n      .theme-panel > .theme-options > .theme-option > select.form-control {\n        display: inline;\n        width: 135px;\n        padding: 2px;\n        text-transform: lowercase; }\n      .theme-panel > .theme-options > .theme-option.theme-colors {\n        border-top: 0; }\n        .theme-panel > .theme-options > .theme-option.theme-colors > span {\n          display: block;\n          width: auto; }\n        .theme-panel > .theme-options > .theme-option.theme-colors > ul {\n          list-style: none;\n          padding: 0;\n          display: block;\n          margin-bottom: 10px !important;\n          margin-top: 15px; }\n          .theme-panel > .theme-options > .theme-option.theme-colors > ul > li {\n            width: 40px;\n            height: 40px;\n            margin: 0 4px;\n            cursor: pointer;\n            list-style: none;\n            float: left;\n            border: solid 1px #707070;\n            /* theme colors */ }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li:first-child {\n              margin-left: 0; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li:hover, .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.current {\n              border: solid 2px #d64635; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-default {\n              background: #333438; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-darkblue {\n              background: #2b3643; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-blue {\n              background: #2D5F8B; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-grey {\n              background: #697380; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-light {\n              background: #F9FAFD; }\n            .theme-panel > .theme-options > .theme-option.theme-colors > ul > li.color-light2 {\n              background: #F1F1F1; }\n  .page-content-white .theme-panel,\n  .page-container-bg-solid .theme-panel {\n    position: absolute;\n    margin-top: 30px;\n    margin-right: 20px;\n    right: 0; }\n    .page-content-white .theme-panel > .toggler1,\n    .page-container-bg-solid .theme-panel > .toggler1 {\n      background: #BFCAD1 url(../img/icon-color.png) center no-repeat; }\n  .page-content-white.page-sidebar-reversed .theme-panel,\n  .page-container-bg-solid.page-sidebar-reversed .theme-panel {\n    margin-right: 255px; }\n  .page-content-white.page-sidebar-reversed.page-sidebar-closed .theme-panel,\n  .page-container-bg-solid.page-sidebar-reversed.page-sidebar-closed .theme-panel {\n    margin-right: 65px; }\n\n/******************\nPage Quick Sidebar\n******************/\n/* Quick sidebar toggler */\n.page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle {\n  padding: 19px 10px 10px 10px !important; }\n  .page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle i {\n    top: 0px; }\n    .page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle i:before {\n      content: \"\"/*rtl:\"\"*/; }\n    .page-quick-sidebar-open .page-header .top-menu .dropdown-quick-sidebar-toggler > .dropdown-toggle i:before {\n      content: \"\"/*rtl:\"\"*/; }\n\n/* Page Portlet Fullscreen */\n.page-portlet-fullscreen .page-quick-sidebar-wrapper,\n.page-portlet-fullscreen .page-quick-sidebar-toggler {\n  z-index: -1; }\n\n/* Quick sidebar toggler */\n.page-quick-sidebar-toggler {\n  overflow: hidden;\n  z-index: 99999;\n  display: none;\n  width: 28px;\n  height: 27px;\n  position: fixed;\n  top: 10px;\n  right: 15px;\n  text-align: center;\n  padding-top: 6px; }\n  .page-quick-sidebar-toggler:hover {\n    background: #303a43; }\n  .page-quick-sidebar-open .page-quick-sidebar-toggler {\n    display: inline-block; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler:hover {\n      background: none; }\n  .page-quick-sidebar-toggler > i {\n    color: #99a8b5;\n    font-size: 17px; }\n    .page-quick-sidebar-toggler > i:hover {\n      color: #fff !important; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler > i:before {\n      content: \"\"/*rtl:\"\"*/; }\n\n/* Quick sidebar wrapper */\n.page-quick-sidebar-wrapper {\n  transition: right 0.3s;\n  z-index: 10500;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  width: 320px;\n  right: -320px;\n  overflow: hidden;\n  color: #99a8b5;\n  background: #21282e; }\n  .page-quick-sidebar-open .page-quick-sidebar-wrapper {\n    transition: right 0.3s;\n    right: 0; }\n  .page-quick-sidebar-wrapper .page-quick-sidebar {\n    background: #21282e;\n    /* Quick sidebar tabs content */\n    /* Quick sidebar general list heading */\n    /* Quick sidebar general list-items */\n    /* Inner content */\n    /* Quick sidebar list */\n    /* Quick sidebar list item */\n    /* Quick sidebar list item shown */\n    /* Quick sidebar chat */\n    /* Quick sidebar alerts */\n    /* Quick sidebar settings */ }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs {\n      margin: 0;\n      padding: 0;\n      border: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li {\n        display: table-cell !important;\n        width: 1%  !important;\n        padding: 0;\n        margin: 0;\n        float: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a {\n          position: relative;\n          display: block;\n          text-align: center;\n          border: 0;\n          height: auto;\n          font-size: 14px;\n          padding: 45px 15px 8px;\n          text-transform: uppercase;\n          background: none;\n          margin-right: 0;\n          color: #90a1af;\n          border: 0;\n          border-bottom: 3px solid rgba(243, 86, 93, 0.3);\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0;\n          outline: none !important; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a > .badge {\n            position: absolute;\n            top: 45px;\n            right: 3px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.active > a, .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li:hover > a {\n          border: 0;\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          color: #fff;\n          text-decoration: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu {\n          border: 0;\n          background: #36424c;\n          box-shadow: 5px 5px rgba(97, 117, 135, 0.1);\n          margin-top: 8px;\n          margin-right: 20px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:before {\n            position: absolute;\n            top: -7px;\n            right: 19px;\n            display: inline-block !important;\n            border-right: 7px solid transparent;\n            border-left: 7px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:after {\n            position: absolute;\n            top: -6px;\n            right: 20px;\n            display: inline-block !important;\n            border-right: 6px solid transparent;\n            border-left: 6px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a {\n            padding: 10px 15px;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a > i {\n              color: #93a3b1; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a {\n            background: #3d4a55;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a > i {\n              color: #9babb8; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.active > a {\n            background: #38444f;\n            color: #99a8b5; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.divider {\n            background-color: #3d4a55; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.open > a.dropdown-toggle {\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          text-decoration: none;\n          color: #90a1af; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .tab-content {\n      margin: 0;\n      padding: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-heading {\n      font-size: 16px;\n      margin: 10px 10px;\n      color: #6c8296; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-items {\n      margin: 0;\n      padding: 0;\n      list-style: none; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li {\n        margin: 0;\n        padding: 15px;\n        background: none;\n        border-bottom-width: 1px;\n        border-bottom-style: solid;\n        border-bottom-color: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:hover {\n          background: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:last-child {\n          border-bottom: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li {\n        border: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .inner-content {\n      margin: 10px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list {\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item {\n      width: 320px;\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s;\n      margin-left: 320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav {\n        padding: 15px 10px 0px 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list {\n          vertical-align: middle;\n          display: inline-block;\n          font-size: 14px;\n          color: #90a1af; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list:hover {\n            text-decoration: none; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list > i {\n            font-size: 17px;\n            line-height: 17px;\n            vertical-align: top;\n            margin-right: 3px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list {\n      transition: margin 0.3s;\n      margin-left: -320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail {\n        display: none !important; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item {\n      transition: margin 0.3s;\n      margin-left: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media {\n        padding: 15px 15px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object {\n          border-radius: 50% !important;\n          width: 45.71429px;\n          opacity: 0.8;\n          filter: alpha(opacity=80);\n          float: left;\n          margin-right: 10px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before, .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            content: \" \";\n            display: table; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            clear: both; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover {\n          cursor: pointer; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object {\n            opacity: 1;\n            filter: alpha(opacity=100); }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading {\n          margin: 5px 0 0 0;\n          font-size: 14px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub {\n          font-size: 11px;\n          text-transform: uppercase;\n          color: #657b8d; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small {\n          font-size: 10px;\n          color: #5d7081; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status {\n          margin-top: 10px;\n          right: 10px;\n          position: absolute;\n          display: inline-block; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages {\n      padding: 0px 10px;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post {\n        transition: display 0.3s;\n        padding: 5px 0;\n        margin: 10px auto;\n        font-size: 13px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body {\n          color: #c3c3c3;\n          display: block; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar {\n          width: 45.71429px;\n          border-radius: 50% !important; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar {\n          float: left;\n          margin-right: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar {\n          float: right;\n          margin-left: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message {\n          display: block;\n          padding: 5px;\n          position: relative;\n          color: #90a1af;\n          background: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message {\n          text-align: left;\n          margin-left: 55px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            left: -6px;\n            width: 0;\n            height: 0;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-right-width: 6px;\n            border-right-style: solid;\n            border-right-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message {\n          margin-right: 55px;\n          text-align: right; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            right: -6px;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-left-width: 6px;\n            border-left-style: solid;\n            border-left-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name,\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime {\n          text-align: right; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form {\n      padding: 20px 10px 15px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a {\n        color: #7e91a2; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .label {\n          margin-top: 5px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc {\n          text-decoration: underline;\n          padding: 0;\n          color: #788c9e; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .date {\n          color: #5d7081; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch {\n        margin-top: -3px;\n        float: right;\n        border: 0;\n        min-width: 59px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control {\n        width: 75px !important;\n        padding: 4px 4px !important;\n        float: right;\n        border: 0;\n        margin-top: -4px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control {\n        padding: 4px 0px !important; }\n\n.quick-nav {\n  position: fixed;\n  z-index: 10103;\n  top: 50%;\n  right: 10px;\n  margin-top: -230px;\n  pointer-events: none; }\n  .quick-nav .quick-nav-bg {\n    /* this is the stretching navigation background */\n    position: absolute;\n    z-index: 10102;\n    top: 0;\n    right: 0;\n    width: 60px;\n    height: 60px;\n    border-radius: 30px !important;\n    background: #36C6D3;\n    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);\n    webkit-transition: height .2s, box-shadow .2s;\n    -moz-transition: height .2s, box-shadow .2s;\n    -ms-transition: height .2s, box-shadow .2s;\n    -o-transition: height .2s, box-shadow .2s;\n    transition: height .2s, box-shadow .2s; }\n  .quick-nav.nav-is-visible {\n    pointer-events: auto; }\n  .quick-nav.nav-is-visible .quick-nav-bg {\n    height: 100%;\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n\n.quick-nav-trigger {\n  position: absolute;\n  z-index: 10103;\n  top: 0;\n  right: 0;\n  height: 60px;\n  width: 60px;\n  border-radius: 50% !important;\n  overflow: hidden;\n  white-space: nowrap;\n  color: transparent;\n  pointer-events: auto; }\n  .quick-nav-trigger span,\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* this is the hamburger icon */\n    position: absolute;\n    width: 16px;\n    height: 2px;\n    background-color: #ffffff; }\n  .quick-nav-trigger span {\n    /* middle line of the hamburger icon */\n    webkit-transition: background-color 0.2s;\n    -moz-transition: background-color 0.2s;\n    -ms-transition: background-color 0.2s;\n    -o-transition: background-color 0.2s;\n    transition: background-color 0.2s;\n    left: 50%;\n    top: 50%;\n    bottom: auto;\n    right: auto;\n    webkit-transform: translateX(-50%) translateY(-50%);\n    -moz-transform: translateX(-50%) translateY(-50%);\n    -ms-transform: translateX(-50%) translateY(-50%);\n    -o-transform: translateX(-50%) translateY(-50%);\n    transform: translateX(-50%) translateY(-50%); }\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* top and bottom lines of the hamburger icon */\n    content: '';\n    top: 0;\n    left: 0;\n    -webkit-backface-visibility: hidden;\n    -moz-backface-visibility: hidden;\n    backface-visibility: hidden;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .quick-nav-trigger span::before {\n    webkit-transform: translateY(-6px);\n    -moz-transform: translateY(-6px);\n    -ms-transform: translateY(-6px);\n    -o-transform: translateY(-6px);\n    transform: translateY(-6px); }\n  .quick-nav-trigger span::after {\n    webkit-transform: translateY(6px);\n    -moz-transform: translateY(6px);\n    -ms-transform: translateY(6px);\n    -o-transform: translateY(6px);\n    transform: translateY(6px); }\n  .no-touch .quick-nav-trigger:hover ~ .quick-nav-bg {\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n  .nav-is-visible .quick-nav-trigger span {\n    background-color: transparent; }\n  .nav-is-visible .quick-nav-trigger span::before {\n    webkit-transform: rotate(-45deg);\n    -moz-transform: rotate(-45deg);\n    -ms-transform: rotate(-45deg);\n    -o-transform: rotate(-45deg);\n    transform: rotate(-45deg); }\n  .nav-is-visible .quick-nav-trigger span::after {\n    webkit-transform: rotate(45deg);\n    -moz-transform: rotate(45deg);\n    -ms-transform: rotate(45deg);\n    -o-transform: rotate(45deg);\n    transform: rotate(45deg); }\n\n.quick-nav ul {\n  position: relative;\n  z-index: 10103;\n  padding: 60px 0 0;\n  visibility: hidden;\n  webkit-transition: visibility 0.3s;\n  -moz-transition: visibility 0.3s;\n  -ms-transition: visibility 0.3s;\n  -o-transition: visibility 0.3s;\n  transition: visibility 0.3s;\n  text-align: right;\n  list-style: none; }\n  .quick-nav ul > li a {\n    position: relative;\n    display: block;\n    height: 50px;\n    line-height: 50px;\n    padding: 0 calc(1em + 60px) 0 1em;\n    font-size: 1.4rem;\n    webkit-transition: color 0.2s;\n    -moz-transition: color 0.2s;\n    -ms-transition: color 0.2s;\n    -o-transition: color 0.2s;\n    transition: color 0.2s; }\n    .quick-nav ul > li a:hover {\n      text-decoration: none; }\n      .quick-nav ul > li a:hover > span {\n        text-decoration: none; }\n    .quick-nav ul > li a > i {\n      /* navigation item icons */\n      content: '';\n      position: absolute;\n      height: 16px;\n      width: 16px;\n      font-size: 18px;\n      right: 24px;\n      top: 16px;\n      color: #ebebeb; }\n    .quick-nav ul > li a::before {\n      /* line visible next to the active navigation item */\n      content: '';\n      position: absolute;\n      width: 3px;\n      height: 16px;\n      top: 50%;\n      right: 60px;\n      webkit-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -moz-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -ms-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -o-transform: translateX(3px) translateY(-50%) scaleY(0);\n      transform: translateX(3px) translateY(-50%) scaleY(0);\n      background-color: #FF3F3F; }\n  .quick-nav ul > li span {\n    /* navigation item labels */\n    color: #ebebeb;\n    font-weight: 400;\n    display: block;\n    opacity: 0;\n    webkit-transform: translateX(-25px);\n    -moz-transform: translateX(-25px);\n    -ms-transform: translateX(-25px);\n    -o-transform: translateX(-25px);\n    transform: translateX(-25px); }\n  .quick-nav ul > li:last-child {\n    padding-bottom: 10px; }\n\n.quick-nav.nav-is-visible ul {\n  visibility: visible; }\n  .quick-nav.nav-is-visible ul a::after {\n    /* navigation item icons */\n    webkit-transform: translateY(-50%) scale(1);\n    -moz-transform: translateY(-50%) scale(1);\n    -ms-transform: translateY(-50%) scale(1);\n    -o-transform: translateY(-50%) scale(1);\n    transform: translateY(-50%) scale(1);\n    -webkit-animation: scaleIn 0.15s backwards;\n    -o-animation: scaleIn 0.15s backwards;\n    animation: scaleIn 0.15s backwards;\n    webkit-transition: opacity 0.2s;\n    -moz-transition: opacity 0.2s;\n    -ms-transition: opacity 0.2s;\n    -o-transition: opacity 0.2s;\n    transition: opacity 0.2s; }\n  .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .quick-nav.nav-is-visible ul a:hover::before {\n    webkit-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -moz-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -ms-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -o-transform: translateX(3px) translateY(-50%) scaleY(2);\n    transform: translateX(3px) translateY(-50%) scaleY(2);\n    webkit-transition: transform 0.15s 0.3s;\n    -moz-transition: transform 0.15s 0.3s;\n    -ms-transition: transform 0.15s 0.3s;\n    -o-transition: transform 0.15s 0.3s;\n    transition: transform 0.15s 0.3s; }\n  .quick-nav.nav-is-visible ul a:hover > span {\n    color: white; }\n  .quick-nav.nav-is-visible ul a:hover > i {\n    color: #fafafa; }\n  .quick-nav.nav-is-visible ul span {\n    opacity: 1;\n    webkit-transform: translateX(0);\n    -moz-transform: translateX(0);\n    -ms-transform: translateX(0);\n    -o-transform: translateX(0);\n    transform: translateX(0);\n    -webkit-animation: slideIn 0.15s backwards;\n    -o-animation: slideIn 0.15s backwards;\n    animation: slideIn 0.15s backwards;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover span {\n    webkit-transform: translateX(-5px);\n    -moz-transform: translateX(-5px);\n    -ms-transform: translateX(-5px);\n    -o-transform: translateX(-5px);\n    transform: translateX(-5px); }\n\n.quick-nav-overlay {\n  display: none;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  position: fixed;\n  z-index: 10101;\n  background: transparent; }\n\n.quick-nav.nav-is-visible + .quick-nav-overlay {\n  background: rgba(0, 0, 0, 0.8);\n  display: block;\n  -webkit-transition: background .7s ease-out;\n  -moz-transition: background .7s ease-out;\n  -o-transition: background .7s ease-out;\n  transition: background .7s ease-out; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .quick-nav {\n    top: 120px;\n    margin-top: 0; } }\n\n/***  \nPage Loading       \n***/\n.page-on-load {\n  background: #fefefe; }\n  .page-on-load .page-header,\n  .page-on-load .page-container,\n  .page-on-load .page-footer,\n  .page-on-load > .clearfix {\n    display: none;\n    transition: all 2s; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout/css/themes/darkblue.css",
    "content": "/* Cubic Bezier Transition */\n/*********** \n    Page Header\n    ***********/\n/* Header search bar, toggler button & top menu */\n.page-header.navbar {\n  background-color: #2b3643;\n  /* Top notification menu/bar */\n  /* Header seaech box */\n  /* Toggler button for sidebar expand/collapse and responsive sidebar menu */ }\n  .page-header.navbar .top-menu .navbar-nav {\n    /* Extended Dropdowns */\n    /* Notification */\n    /* Inbox */\n    /* Tasks */\n    /* User */\n    /* Language */\n    /* Dark version */ }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle > i {\n      color: #79869a; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle .badge.badge-default {\n      background-color: #36c6d3;\n      color: #ffffff; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle:hover {\n      background-color: #3f4f62; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown .dropdown-toggle:hover > i {\n        color: #a4aebb; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle {\n      background-color: #3f4f62; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle > i {\n        color: #a4aebb; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu {\n      border-color: #e7eaf0; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu:after {\n        border-bottom-color: #eaedf2; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n        background: #eaedf2; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n          color: #62878f; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n          color: #337ab7; }\n          .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n            color: #23527c;\n            text-decoration: none; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n        border-bottom: 1px solid #EFF2F6 !important;\n        color: #888888; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n          background: #f8f9fa; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a .time {\n      background: #f1f1f1; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n      background: #e4e4e4; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .circle {\n      background-color: #36c6d3;\n      color: #ffffff; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner {\n      border-color: transparent transparent transparent #36c6d3; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from {\n      color: #5b9bd1; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress {\n      background-color: #dfe2e9; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > .username {\n      color: #c6cfda; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > i {\n      color: #c6cfda; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-user > .dropdown-menu {\n      width: 195px; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > .langname {\n      color: #c6cfda; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu {\n      background: #3f4f62;\n      border: 0; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu:after {\n        border-bottom-color: #3f4f62; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external {\n        background: #2f3b49; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > h3 {\n          color: #adbaca; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > a:hover {\n          color: #5496cf; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a,\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a {\n        color: #bcc7d4;\n        border-bottom: 1px solid #4b5e75 !important; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a > i,\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a > i {\n          color: #9dadc0; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a:hover,\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a:hover {\n          background: #47596e; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a {\n        border-bottom: 0 !important; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li.divider {\n        background: #4b5e75; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a .time {\n      background: #354353; }\n    .page-header.navbar .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n      background: #2b3643; }\n  .page-header.navbar .search-form {\n    background: #232c37; }\n    .page-header.navbar .search-form:hover {\n      background: #3f4f62; }\n    .page-header.navbar .search-form .input-group .form-control {\n      color: #959fad; }\n      .page-header.navbar .search-form .input-group .form-control::-moz-placeholder {\n        color: #929cab;\n        opacity: 1; }\n      .page-header.navbar .search-form .input-group .form-control:-ms-input-placeholder {\n        color: #929cab; }\n      .page-header.navbar .search-form .input-group .form-control::-webkit-input-placeholder {\n        color: #929cab; }\n    .page-header.navbar .search-form .input-group .input-group-btn .btn.submit > i {\n      color: #959fad; }\n    .page-header.navbar .search-form.open {\n      background: #3f4f62; }\n  .page-header.navbar .menu-toggler > span,\n  .page-header.navbar .menu-toggler > span:before,\n  .page-header.navbar .menu-toggler > span:after {\n    background: #a7b5c6; }\n  .page-header.navbar .menu-toggler > span:hover {\n    background: #a7b5c6; }\n    .page-header.navbar .menu-toggler > span:hover:before, .page-header.navbar .menu-toggler > span:hover:after {\n      background: #a7b5c6; }\n  .page-header.navbar .menu-toggler.th-toggle-exit > span {\n    background-color: transparent !important; }\n\n/* Default Horizontal Menu */\n.page-header.navbar {\n  /* Default Mega Menu */\n  /* Light Mega Menu */ }\n  .page-header.navbar .hor-menu .navbar-nav {\n    /* Mega menu content */\n    /* Classic menu */ }\n    .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n      box-shadow: 5px 5px rgba(63, 79, 98, 0.2); }\n      .page-header.navbar .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n        color: #c6cfda; }\n    .page-header.navbar .hor-menu .navbar-nav > li > a {\n      color: #c6cfda; }\n      .page-header.navbar .hor-menu .navbar-nav > li > a > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu .navbar-nav > li:hover > a,\n    .page-header.navbar .hor-menu .navbar-nav > li.open > a,\n    .page-header.navbar .hor-menu .navbar-nav > li > a:hover {\n      color: #d5dce4;\n      background: #3f4f62 !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li:hover > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li.open > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li > a:hover > i {\n        color: #889bb2; }\n    .page-header.navbar .hor-menu .navbar-nav > li.active > a,\n    .page-header.navbar .hor-menu .navbar-nav > li.active > a, .page-header.navbar .hor-menu .navbar-nav > li.current > a,\n    .page-header.navbar .hor-menu .navbar-nav > li.current > a {\n      color: white;\n      background: #36c6d3 !important; }\n      .page-header.navbar .hor-menu .navbar-nav > li.active > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li.active > a > i, .page-header.navbar .hor-menu .navbar-nav > li.current > a > i,\n      .page-header.navbar .hor-menu .navbar-nav > li.current > a > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu .navbar-nav > li.active .selected, .page-header.navbar .hor-menu .navbar-nav > li.current .selected {\n      border-top: 6px solid #36c6d3; }\n    .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu {\n      box-shadow: 5px 5px rgba(63, 79, 98, 0.2);\n      background: #3f4f62; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a {\n        color: #c6cfda; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li > a > i {\n          color: #c6cfda; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li:hover > a {\n        color: #f1f3f6;\n        background: #47596e; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li:hover > a > i {\n          color: #f1f3f6; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a,\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a,\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover {\n        color: #f1f3f6;\n        background: #47596e; }\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a > i,\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a > i,\n        .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n          color: #f1f3f6; }\n      .page-header.navbar .hor-menu .navbar-nav > li .dropdown-menu li.divider {\n        background-color: #495c72; }\n    .page-header.navbar .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n      color: #c6cfda; }\n  .page-header.navbar .hor-menu.hor-menu-light .navbar-nav {\n    /* Mega menu content */\n    /* Classic menu */ }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n      box-shadow: 5px 5px rgba(102, 102, 102, 0.1); }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n        color: #666; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a {\n      color: #c6cfda; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li:hover > a,\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a:hover {\n      color: #d5dce4;\n      background: #3f4f62; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li:hover > a > i,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > a:hover > i {\n        color: #889bb2; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.open > a {\n      color: #333 !important;\n      background: white !important; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.open > a > i {\n        color: #333 !important; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a,\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a,\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover {\n      color: white;\n      background: #36c6d3; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a > i,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover > i, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a > i,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover > i {\n        color: #788ea8; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu {\n      box-shadow: 5px 5px rgba(102, 102, 102, 0.1);\n      background: white; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a {\n        color: #000; }\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a > i {\n          color: #888; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a {\n        color: #000;\n        background: whitesmoke; }\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a > i {\n          color: #666; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a,\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover {\n        color: #000;\n        background: whitesmoke; }\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a > i,\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a > i,\n        .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n          color: #666; }\n      .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.divider {\n        background-color: whitesmoke; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu {\n      border: 1px solid #f2f2f2; }\n    .page-header.navbar .hor-menu.hor-menu-light .navbar-nav > li > .dropdown-menu {\n      border-top: 0; }\n\n/* Page sidebar */\n.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover,\n.page-sidebar {\n  background-color: #364150;\n  /* Default sidebar */\n  /* light sidebar */\n  /* Sidebar search */ }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu,\n  .page-sidebar .page-sidebar-menu {\n    /* 1st level links */\n    /* All links */ }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a,\n    .page-sidebar .page-sidebar-menu > li > a {\n      border-top: 1px solid #3d4957;\n      color: #b4bcc8; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i,\n      .page-sidebar .page-sidebar-menu > li > a > i {\n        color: #606C7D; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i[class*=\"icon-\"],\n      .page-sidebar .page-sidebar-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar .page-sidebar-menu > li > a > i[class*=\"icon-\"] {\n        color: #6b788b; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li > a > .arrow.open:before {\n        color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.heading > h3,\n    .page-sidebar .page-sidebar-menu > li.heading > h3 {\n      color: #708096; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a,\n    .page-sidebar .page-sidebar-menu > li:hover > a,\n    .page-sidebar .page-sidebar-menu > li.open > a {\n      background: #2C3542;\n      color: #b4bcc8; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a > i,\n      .page-sidebar .page-sidebar-menu > li:hover > a > i,\n      .page-sidebar .page-sidebar-menu > li.open > a > i {\n        color: #606C7D; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:hover > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li:hover > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li:hover > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li.open > a > .arrow.open:before {\n        color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a,\n    .page-sidebar .page-sidebar-menu > li.active > a,\n    .page-sidebar .page-sidebar-menu > li.active.open > a {\n      background: #36c6d3;\n      border-top-color: transparent;\n      color: #ffffff; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a:hover, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a:hover,\n      .page-sidebar .page-sidebar-menu > li.active > a:hover,\n      .page-sidebar .page-sidebar-menu > li.active.open > a:hover {\n        background: #36c6d3; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a > i,\n      .page-sidebar .page-sidebar-menu > li.active > a > i,\n      .page-sidebar .page-sidebar-menu > li.active.open > a > i {\n        color: #ffffff; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li.active > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li.active > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu > li.active.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu > li.active.open > a > .arrow.open:before {\n        color: #ffffff; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active + li > a,\n    .page-sidebar .page-sidebar-menu > li.active + li > a {\n      border-top-color: transparent; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li.active.open + li > a,\n    .page-sidebar .page-sidebar-menu > li.active.open + li > a {\n      border-top-color: #3d4957; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li:last-child > a,\n    .page-sidebar .page-sidebar-menu > li:last-child > a {\n      border-bottom: 1px solid transparent !important; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow.open:before,\n    .page-sidebar .page-sidebar-menu li > a > .arrow:before,\n    .page-sidebar .page-sidebar-menu li > a > .arrow.open:before {\n      color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow.open:before,\n    .page-sidebar .page-sidebar-menu li:hover > a > .arrow:before,\n    .page-sidebar .page-sidebar-menu li:hover > a > .arrow.open:before {\n      color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active > a > .arrow.open:before,\n    .page-sidebar .page-sidebar-menu li.active > a > .arrow:before,\n    .page-sidebar .page-sidebar-menu li.active > a > .arrow.open:before {\n      color: #ffffff; }\n    .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu:hover .sub-menu, .page-sidebar-closed\n    .page-sidebar .page-sidebar-menu:hover .sub-menu {\n      background-color: #364150; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li > a {\n      color: #b4bcc8; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > i {\n        color: #606C7D; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > i[class*=\"icon-\"],\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > i[class^=\"icon-\"],\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > i[class*=\"icon-\"] {\n        color: #6b788b; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow.open:before {\n        color: #606C7D; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li.open > a,\n    .page-sidebar .page-sidebar-menu .sub-menu > li.active > a {\n      background: #3e4b5c !important; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.open > a > i,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.active > a > i {\n        color: #606C7D;\n        color: #959fae; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li:hover > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.active > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu .sub-menu > li.active > a > .arrow.open:before {\n        color: #606C7D; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light,\n  .page-sidebar .page-sidebar-menu.page-sidebar-menu-light {\n    /* 1st level links */ }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.open > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li:hover > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.open > a {\n      background: #3a4656; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {\n      background: #3e4b5c;\n      border-left: 4px solid #36c6d3;\n      color: #f1f1f1; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {\n        border-left: 4px solid #36c6d3;\n        background: #3a4656; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i {\n        color: #eeeeee; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow.open:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > .arrow.open:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow:before,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > .arrow.open:before {\n        color: #eeeeee; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu,\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu {\n      background: #3a4656; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a,\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a {\n        background: #3e4b5c !important; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler,\n  .page-sidebar .sidebar-toggler {\n    background: #2c3541; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:before,\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:after,\n    .page-sidebar .sidebar-toggler > span,\n    .page-sidebar .sidebar-toggler > span:before,\n    .page-sidebar .sidebar-toggler > span:after {\n      background: #a7b5c6; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover,\n    .page-sidebar .sidebar-toggler > span:hover {\n      background: #a7b5c6; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler > span:hover:after,\n      .page-sidebar .sidebar-toggler > span:hover:before,\n      .page-sidebar .sidebar-toggler > span:hover:after {\n        background: #a7b5c6; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler.th-toggle-exit > span,\n    .page-sidebar .sidebar-toggler.th-toggle-exit > span {\n      background-color: transparent !important; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover,\n    .page-sidebar .sidebar-toggler:hover {\n      background: #212832; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group,\n  .page-sidebar .sidebar-search .input-group {\n    border-bottom: 1px solid #435060; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,\n    .page-sidebar .sidebar-search .input-group .form-control {\n      background-color: #364150;\n      color: #4e5d6f; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder,\n      .page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder {\n        color: #4e5d6f;\n        opacity: 1; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control:-ms-input-placeholder,\n      .page-sidebar .sidebar-search .input-group .form-control:-ms-input-placeholder {\n        color: #4e5d6f; }\n      .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-webkit-input-placeholder,\n      .page-sidebar .sidebar-search .input-group .form-control::-webkit-input-placeholder {\n        color: #4e5d6f; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn > i,\n    .page-sidebar .sidebar-search .input-group .input-group-btn .btn > i {\n      color: #4e5d6f; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group,\n  .page-sidebar .sidebar-search.sidebar-search-bordered .input-group {\n    border: 1px solid #435060; }\n  .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .input-group, .page-sidebar-closed\n  .page-sidebar .sidebar-search.open .input-group {\n    background-color: #364150; }\n  .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .remove > i, .page-sidebar-closed\n  .page-sidebar .sidebar-search.open .remove > i {\n    color: #4e5d6f; }\n  .page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group, .page-sidebar-closed\n  .page-sidebar .sidebar-search.sidebar-search-solid .input-group {\n    background: none; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group,\n  .page-sidebar .sidebar-search.sidebar-search-solid .input-group {\n    border: 1px solid #2c3541;\n    background: #2c3541; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group .form-control,\n    .page-sidebar .sidebar-search.sidebar-search-solid .input-group .form-control {\n      background: #2c3541; }\n  .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group,\n  .page-sidebar .sidebar-search.sidebar-search-solid.open .input-group {\n    border: 1px solid #364150;\n    background: #364150; }\n    .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group .form-control,\n    .page-sidebar .sidebar-search.sidebar-search-solid.open .input-group .form-control {\n      background: #364150; }\n\n.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light {\n  /* 1st level links */ }\n  .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {\n    border-left: 0;\n    border-right: 4px solid #36c6d3; }\n    .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {\n      border-left: 0;\n      border-right: 4px solid #36c6d3; }\n\n/******\n    Page Footer \n    ******/\n.page-footer .page-footer-inner {\n  color: #98a6ba; }\n\n.page-footer-fixed .page-footer {\n  background-color: #28303b; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  /* Sidebar menu closed */\n  .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu {\n    box-shadow: 5px 5px rgba(44, 53, 66, 0.2); }\n    .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu.sidebar-toggler-wrapper, .page-sidebar-menu.page-sidebar-menu-hover-submenu > li:hover > .sub-menu.sidebar-search-wrapper {\n      box-shadow: none; }\n  .page-sidebar-menu.page-sidebar-menu-closed > li:hover {\n    box-shadow: 5px 5px rgba(44, 53, 66, 0.2); }\n    .page-sidebar-menu.page-sidebar-menu-closed > li:hover.sidebar-toggler-wrapper, .page-sidebar-menu.page-sidebar-menu-closed > li:hover.sidebar-search-wrapper {\n      box-shadow: none; }\n    .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu {\n      box-shadow: 5px 5px rgba(44, 53, 66, 0.2); }\n      .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu.sidebar-toggler-wrapper, .page-sidebar-menu.page-sidebar-menu-closed > li:hover > .sub-menu.sidebar-search-wrapper {\n        box-shadow: none; }\n  /* Light sidebar menu */\n  .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed > li.heading {\n    padding: 0;\n    margin-top: 15px;\n    margin-bottom: 15px;\n    border-top: 1px solid #3d4957 !important; }\n  /* Fixed Sidebar */\n  .page-sidebar-fixed:not(.page-footer-fixed) .page-content {\n    border-bottom: 0; }\n  .page-sidebar-fixed:not(.page-footer-fixed) .page-footer {\n    background-color: #fff; }\n    .page-sidebar-fixed:not(.page-footer-fixed) .page-footer .page-footer-inner {\n      color: #333; }\n  /* Boxed Layout */\n  .page-boxed {\n    background-color: #303a47 !important;\n    /* Page container */\n    /* Page sidebar */\n    /* Page footer */ }\n    .page-boxed .page-container {\n      background-color: #364150;\n      border-left: 1px solid #3d4957;\n      border-bottom: 1px solid #3d4957; }\n    .page-boxed.page-sidebar-reversed .page-container {\n      border-left: 0;\n      border-right: 1px solid #3d4957; }\n    .page-boxed.page-sidebar-fixed .page-container {\n      border-left: 0;\n      border-bottom: 0; }\n    .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container {\n      border-left: 0;\n      border-right: 0;\n      border-bottom: 0; }\n    .page-boxed.page-sidebar-fixed .page-sidebar {\n      border-left: 1px solid #3d4957; }\n    .page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar {\n      border-right: 1px solid #3d4957;\n      border-left: 0; }\n    .page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer {\n      background-color: #303a47 !important; }\n      .page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer .page-footer-inner {\n        color: #98a6ba; }\n  /* Sidebar Menu Wirh Hoverable Submenu */\n  .page-sidebar-menu-hover-submenu li:hover a > .arrow {\n    border-right: 8px solid #323c4b; }\n    .page-sidebar-reversed .page-sidebar-menu-hover-submenu li:hover a > .arrow {\n      border-left: 8px solid #323c4b; }\n  .page-sidebar-menu-hover-submenu li:hover > .sub-menu {\n    background: #323c4b !important; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Page sidebar */\n  .page-sidebar {\n    background-color: #28303b;\n    /* light sidebar */ }\n    .page-sidebar .page-sidebar-menu > li > a {\n      border-top: 1px solid #364150; }\n    .page-sidebar .page-sidebar-menu > li:hover > a, .page-sidebar .page-sidebar-menu > li.open > a {\n      background: #2e3744; }\n    .page-sidebar .page-sidebar-menu > li:last-child > a {\n      border-bottom: 0 !important; }\n    .page-sidebar .page-sidebar-menu > li .sub-menu {\n      background-color: #28303b !important; }\n    .page-sidebar .page-sidebar-menu .sidebar-search input {\n      background-color: #28303b !important; }\n    .page-sidebar .page-sidebar-menu.page-sidebar-menu-light {\n      /* 1st level links */ }\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li:hover > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.open > a {\n        background: #2e3744; }\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {\n        background: #2e3744; }\n        .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {\n          background: #2e3744; }\n      .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu {\n        background: #28303b !important; }\n        .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a, .page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a {\n          background: #2e3744 !important; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header.navbar {\n    /* Top menu */ }\n    .page-header.navbar .top-menu {\n      background-color: #364150; }\n      .page-header-fixed-mobile .page-header.navbar .top-menu {\n        background-color: #2b3643; }\n      .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n        background-color: #415265; }\n        .page-header-fixed-mobile .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          background: none; }\n        .page-header.navbar .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle:hover {\n          background-color: #3f4f62; } }\n\n/****\n    Boby\n    ****/\nbody {\n  background-color: #364150; }\n\n/****\n CSS3 Spinner Bar\n****/\n.page-spinner-bar > div,\n.block-spinner-bar > div {\n  background: #4bccd8; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout/scripts/demo.js",
    "content": "/**\nDemo script to handle the theme demo\n**/\nvar Demo = function() {\n\n    // Handle Theme Settings\n    var handleTheme = function() {\n\n        var panel = $('.theme-panel');\n\n        if ($('body').hasClass('page-boxed') === false) {\n            $('.layout-option', panel).val(\"fluid\");\n        }\n\n        $('.sidebar-option', panel).val(\"default\");\n        $('.page-header-option', panel).val(\"fixed\");\n        $('.page-footer-option', panel).val(\"default\");\n        if ($('.sidebar-pos-option').attr(\"disabled\") === false) {\n            $('.sidebar-pos-option', panel).val(App.isRTL() ? 'right' : 'left');\n        }\n\n        //handle theme layout\n        var resetLayout = function() {\n            $(\"body\").\n            removeClass(\"page-boxed\").\n            removeClass(\"page-footer-fixed\").\n            removeClass(\"page-sidebar-fixed\").\n            removeClass(\"page-header-fixed\").\n            removeClass(\"page-sidebar-reversed\");\n\n            $('.page-header > .page-header-inner').removeClass(\"container\");\n\n            if ($('.page-container').parent(\".container\").size() === 1) {\n                $('.page-container').insertAfter('body > .clearfix');\n            }\n\n            if ($('.page-footer > .container').size() === 1) {\n                $('.page-footer').html($('.page-footer > .container').html());\n            } else if ($('.page-footer').parent(\".container\").size() === 1) {\n                $('.page-footer').insertAfter('.page-container');\n                $('.scroll-to-top').insertAfter('.page-footer');\n            }\n\n             $(\".top-menu > .navbar-nav > li.dropdown\").removeClass(\"dropdown-dark\");\n\n            $('body > .container').remove();\n        };\n\n        var lastSelectedLayout = '';\n\n        var setLayout = function() {\n\n            var layoutOption = $('.layout-option', panel).val();\n            var sidebarOption = $('.sidebar-option', panel).val();\n            var headerOption = $('.page-header-option', panel).val();\n            var footerOption = $('.page-footer-option', panel).val();\n            var sidebarPosOption = $('.sidebar-pos-option', panel).val();\n            var sidebarStyleOption = $('.sidebar-style-option', panel).val();\n            var sidebarMenuOption = $('.sidebar-menu-option', panel).val();\n            var headerTopDropdownStyle = $('.page-header-top-dropdown-style-option', panel).val();\n\n            if (sidebarOption == \"fixed\" && headerOption == \"default\") {\n                alert('Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar.');\n                $('.page-header-option', panel).val(\"fixed\");\n                $('.sidebar-option', panel).val(\"fixed\");\n                sidebarOption = 'fixed';\n                headerOption = 'fixed';\n            }\n\n            resetLayout(); // reset layout to default state\n\n            if (layoutOption === \"boxed\") {\n                $(\"body\").addClass(\"page-boxed\");\n\n                // set header\n                $('.page-header > .page-header-inner').addClass(\"container\");\n                var cont = $('body > .page-wrapper > .clearfix').after('<div class=\"container\"></div>');\n\n                // set content\n                $('.page-container').appendTo('body > .page-wrapper > .container');\n\n                // set footer\n                if (footerOption === 'fixed') {\n                    $('.page-footer').html('<div class=\"container\">' + $('.page-footer').html() + '</div>');\n                } else {\n                    $('.page-footer').appendTo('body > .page-wrapper > .container');\n                }\n            }\n\n            if (lastSelectedLayout != layoutOption) {\n                //layout changed, run responsive handler: \n                App.runResizeHandlers();\n            }\n            lastSelectedLayout = layoutOption;\n\n            //header\n            if (headerOption === 'fixed') {\n                $(\"body\").addClass(\"page-header-fixed\");\n                $(\".page-header\").removeClass(\"navbar-static-top\").addClass(\"navbar-fixed-top\");\n            } else {\n                $(\"body\").removeClass(\"page-header-fixed\");\n                $(\".page-header\").removeClass(\"navbar-fixed-top\").addClass(\"navbar-static-top\");\n            }\n\n            //sidebar\n            if ($('body').hasClass('page-full-width') === false) {\n                if (sidebarOption === 'fixed') {\n                    $(\"body\").addClass(\"page-sidebar-fixed\");\n                    $(\"page-sidebar-menu\").addClass(\"page-sidebar-menu-fixed\");\n                    $(\"page-sidebar-menu\").removeClass(\"page-sidebar-menu-default\");\n                    Layout.initFixedSidebarHoverEffect();\n                } else {\n                    $(\"body\").removeClass(\"page-sidebar-fixed\");\n                    $(\"page-sidebar-menu\").addClass(\"page-sidebar-menu-default\");\n                    $(\"page-sidebar-menu\").removeClass(\"page-sidebar-menu-fixed\");\n                    $('.page-sidebar-menu').unbind('mouseenter').unbind('mouseleave');\n                }\n            }\n\n            // top dropdown style\n            if (headerTopDropdownStyle === 'dark') {\n                $(\".top-menu > .navbar-nav > li.dropdown\").addClass(\"dropdown-dark\");\n            } else {\n                $(\".top-menu > .navbar-nav > li.dropdown\").removeClass(\"dropdown-dark\");\n            }\n\n            //footer \n            if (footerOption === 'fixed') {\n                $(\"body\").addClass(\"page-footer-fixed\");\n            } else {\n                $(\"body\").removeClass(\"page-footer-fixed\");\n            }\n\n            //sidebar style\n            if (sidebarStyleOption === 'light') {\n                $(\".page-sidebar-menu\").addClass(\"page-sidebar-menu-light\");\n            } else {\n                $(\".page-sidebar-menu\").removeClass(\"page-sidebar-menu-light\");\n            }\n\n            //sidebar menu \n            if (sidebarMenuOption === 'hover') {\n                if (sidebarOption == 'fixed') {\n                    $('.sidebar-menu-option', panel).val(\"accordion\");\n                    alert(\"Hover Sidebar Menu is not compatible with Fixed Sidebar Mode. Select Default Sidebar Mode Instead.\");\n                } else {\n                    $(\".page-sidebar-menu\").addClass(\"page-sidebar-menu-hover-submenu\");\n                }\n            } else {\n                $(\".page-sidebar-menu\").removeClass(\"page-sidebar-menu-hover-submenu\");\n            }\n\n            //sidebar position\n            if (App.isRTL()) {\n                if (sidebarPosOption === 'left') {\n                    $(\"body\").addClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'right'\n                    });\n                } else {\n                    $(\"body\").removeClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'left'\n                    });\n                }\n            } else {\n                if (sidebarPosOption === 'right') {\n                    $(\"body\").addClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'left'\n                    });\n                } else {\n                    $(\"body\").removeClass(\"page-sidebar-reversed\");\n                    $('#frontend-link').tooltip('destroy').tooltip({\n                        placement: 'right'\n                    });\n                }\n            }\n\n            Layout.fixContentHeight(); // fix content height            \n            Layout.initFixedSidebar(); // reinitialize fixed sidebar\n        };\n\n        // handle theme colors\n        var setColor = function(color) {\n            var color_ = (App.isRTL() ? color + '-rtl' : color);\n            $('#style_color').attr(\"href\", Layout.getLayoutCssPath() + 'themes/' + color_ + \".min.css\");\n            if (color == 'light2') {\n                $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo-invert.png');\n            } else {\n                $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo.png');\n            }\n        };\n\n        $('.toggler', panel).click(function() {\n            $('.toggler').hide();\n            $('.toggler-close').show();\n            $('.theme-panel > .theme-options').show();\n        });\n\n        $('.toggler-close', panel).click(function() {\n            $('.toggler').show();\n            $('.toggler-close').hide();\n            $('.theme-panel > .theme-options').hide();\n        });\n\n        $('.theme-colors > ul > li', panel).click(function() {\n            var color = $(this).attr(\"data-style\");\n            setColor(color);\n            $('ul > li', panel).removeClass(\"current\");\n            $(this).addClass(\"current\");\n        });\n\n        // set default theme options:\n\n        if ($(\"body\").hasClass(\"page-boxed\")) {\n            $('.layout-option', panel).val(\"boxed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-sidebar-fixed\")) {\n            $('.sidebar-option', panel).val(\"fixed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-header-fixed\")) {\n            $('.page-header-option', panel).val(\"fixed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-footer-fixed\")) {\n            $('.page-footer-option', panel).val(\"fixed\");\n        }\n\n        if ($(\"body\").hasClass(\"page-sidebar-reversed\")) {\n            $('.sidebar-pos-option', panel).val(\"right\");\n        }\n\n        if ($(\".page-sidebar-menu\").hasClass(\"page-sidebar-menu-light\")) {\n            $('.sidebar-style-option', panel).val(\"light\");\n        }\n\n        if ($(\".page-sidebar-menu\").hasClass(\"page-sidebar-menu-hover-submenu\")) {\n            $('.sidebar-menu-option', panel).val(\"hover\");\n        }\n\n        var sidebarOption = $('.sidebar-option', panel).val();\n        var headerOption = $('.page-header-option', panel).val();\n        var footerOption = $('.page-footer-option', panel).val();\n        var sidebarPosOption = $('.sidebar-pos-option', panel).val();\n        var sidebarStyleOption = $('.sidebar-style-option', panel).val();\n        var sidebarMenuOption = $('.sidebar-menu-option', panel).val();\n\n        $('.layout-option, .page-header-option, .page-header-top-dropdown-style-option, .sidebar-option, .page-footer-option, .sidebar-pos-option, .sidebar-style-option, .sidebar-menu-option', panel).change(setLayout);\n    };\n\n    // handle theme style\n    var setThemeStyle = function(style) {\n        var file = (style === 'rounded' ? 'components-rounded' : 'components');\n        file = (App.isRTL() ? file + '-rtl' : file);\n\n        $('#style_components').attr(\"href\", App.getGlobalCssPath() + file + \".min.css\");\n\n        if (typeof Cookies !== \"undefined\") {\n            Cookies.set('layout-style-option', style);\n        }\n    };\n\n    return {\n\n        //main function to initiate the theme\n        init: function() {\n            // handles style customer tool\n            handleTheme(); \n            \n            // handle layout style change\n            $('.theme-panel .layout-style-option').change(function() {\n                 setThemeStyle($(this).val());\n            });\n\n            // set layout style from cookie\n            if (typeof Cookies !== \"undefined\" && Cookies.get('layout-style-option') === 'rounded') {\n                setThemeStyle(Cookies.get('layout-style-option'));\n                $('.theme-panel .layout-style-option').val(Cookies.get('layout-style-option'));\n            }            \n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n       Demo.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout/scripts/layout.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\nvar Layout = function () {\n\n    var layoutImgPath = 'layouts/layout/img/';  \n\n    var layoutCssPath = 'layouts/layout/css/';\n\n    var resBreakpointMd = App.getResponsiveBreakpoint('md');\n\n    var ajaxContentSuccessCallbacks = [];\n    var ajaxContentErrorCallbacks = [];\n\n    //* BEGIN:CORE HANDLERS *//\n    // this function handles responsive layout on screen size resize or mobile device rotate.\n\n    // Set proper height for sidebar and content. The content and sidebar height must be synced always.\n    var handleSidebarAndContentHeight = function () {\n        var content = $('.page-content');\n        var sidebar = $('.page-sidebar');\n        var body = $('body');\n        var height;\n\n        if (body.hasClass(\"page-footer-fixed\") === true && body.hasClass(\"page-sidebar-fixed\") === false) {\n            var available_height = App.getViewPort().height - $('.page-footer').outerHeight() - $('.page-header').outerHeight();\n            var sidebar_height = sidebar.outerHeight();\n            if (sidebar_height > available_height) {\n                available_height = sidebar_height + $('.page-footer').outerHeight();\n            }\n            if (content.height() < available_height) {\n                content.css('min-height', available_height);\n            }\n        } else {\n            if (body.hasClass('page-sidebar-fixed')) {\n                height = _calculateFixedSidebarViewportHeight();\n                if (body.hasClass('page-footer-fixed') === false) {\n                    height = height - $('.page-footer').outerHeight();\n                }\n            } else {\n                var headerHeight = $('.page-header').outerHeight();\n                var footerHeight = $('.page-footer').outerHeight();\n\n                if (App.getViewPort().width < resBreakpointMd) {\n                    height = App.getViewPort().height - headerHeight - footerHeight;\n                } else {\n                    height = sidebar.height() + 20;\n                }\n\n                if ((height + headerHeight + footerHeight) <= App.getViewPort().height) {\n                    height = App.getViewPort().height - headerHeight - footerHeight;\n                }\n            }\n            content.css('min-height', height);\n        }\n    };\n\n    // Handle sidebar menu links\n    var handleSidebarMenuActiveLink = function (mode, el, $state) {\n        var url = location.hash.toLowerCase();\n        var menu = $('.page-sidebar-menu');\n \n        if (mode === 'click' || mode === 'set') {\n            el = $(el);\n        } else if (mode === 'match') {\n            menu.find('li > a').each(function () {\n                var state = $(this).attr('ui-sref');\n                if ($state && state) {\n                    if ($state.is(state)) {\n                        el = $(this);\n                        return;\n                    }\n                } else {\n                    var path = $(this).attr('href');\n                    if (path) {\n                        // url match condition         \n                        path = path.toLowerCase();\n                        if (path.length > 1 && url.substr(1, path.length - 1) == path.substr(1)) {\n                            el = $(this);\n                            return;\n                        }\n                    }\n                }\n            });\n        }\n \n        if (!el || el.size() == 0) {\n            return;\n        }\n \n        if (el.attr('href') == 'javascript:;' ||\n            el.attr('ui-sref') == 'javascript:;' ||\n            el.attr('href') == '#' ||\n            el.attr('ui-sref') == '#'\n            ) {\n            return;\n        }\n \n        var slideSpeed = parseInt(menu.data('slide-speed'));\n        var keepExpand = menu.data('keep-expanded');\n \n        // begin: handle active state\n        if (menu.hasClass('page-sidebar-menu-hover-submenu') === false) {\n            menu.find('li.nav-item.open').each(function () {\n                var match = false;\n                $(this).find('li').each(function () {\n                    var state = $(this).attr('ui-sref');\n                    if ($state && state) {\n                        if ($state.is(state)) {\n                            match = true;\n                            return;\n                        }\n                    } else if ($(this).find(' > a').attr('href') === el.attr('href')) {\n                        match = true;\n                        return;\n                    }\n                });\n \n                if (match === true) {\n                    return;\n                }\n \n                $(this).removeClass('open');\n                $(this).find('> a > .arrow.open').removeClass('open');\n                $(this).find('> .sub-menu').slideUp();\n            });\n        } else {\n            menu.find('li.open').removeClass('open');\n        }\n \n        menu.find('li.active').removeClass('active');\n        menu.find('li > a > .selected').remove();\n        // end: handle active state\n \n        el.parents('li').each(function () {\n            $(this).addClass('active');\n            $(this).find('> a > span.arrow').addClass('open');\n \n            if ($(this).parent('ul.page-sidebar-menu').size() === 1) {\n                $(this).find('> a').append('<span class=\"selected\"></span>');\n            }\n \n            if ($(this).children('ul.sub-menu').size() === 1) {\n                $(this).addClass('open');\n            }\n        });\n \n        if (mode === 'click') {\n            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass('in')) { // close the menu on mobile view while laoding a page \n                $('.page-header .responsive-toggler').click();\n            }\n        }\n    };\n\n    // Handle sidebar menu\n    var handleSidebarMenu = function () {\n        // offcanvas mobile menu \n        $('.page-sidebar-mobile-offcanvas .responsive-toggler').click(function(e) {\n            $('body').toggleClass('page-sidebar-mobile-offcanvas-open');\n            e.preventDefault();\n            e.stopPropagation();\n        });\n\n        if ($('body').hasClass('page-sidebar-mobile-offcanvas')) {\n            $(document).on('click', function(e) {\n                if ($('body').hasClass('page-sidebar-mobile-offcanvas-open')) {\n                    if ($(e.target).closest('.page-sidebar-mobile-offcanvas .responsive-toggler').length === 0 && \n                        $(e.target).closest('.page-sidebar-wrapper').length === 0) { \n                        $('body').removeClass('page-sidebar-mobile-offcanvas-open');\n                        e.preventDefault();\n                        e.stopPropagation();\n                    }\n                }                \n            });\n        }\n\n        // handle sidebar link click\n        $('.page-sidebar-menu').on('click', 'li > a.nav-toggle, li > a > span.nav-toggle', function (e) {\n            var that = $(this).closest('.nav-item').children('.nav-link');\n\n            if (App.getViewPort().width >= resBreakpointMd && !$('.page-sidebar-menu').attr(\"data-initialized\") && $('body').hasClass('page-sidebar-closed') &&  that.parent('li').parent('.page-sidebar-menu').size() === 1) {\n                return;\n            }\n\n            var hasSubMenu = that.next().hasClass('sub-menu');\n\n            if (App.getViewPort().width >= resBreakpointMd && that.parents('.page-sidebar-menu-hover-submenu').size() === 1) { // exit of hover sidebar menu\n                return;\n            }\n\n            if (hasSubMenu === false) {\n                if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass(\"in\")) { // close the menu on mobile view while laoding a page \n                    $('.page-header .responsive-toggler').click();\n                }\n                return;\n            }\n\n            var parent =that.parent().parent();\n            var the = that;\n            var menu = $('.page-sidebar-menu');\n            var sub = that.next();\n\n            var autoScroll = menu.data(\"auto-scroll\");\n            var slideSpeed = parseInt(menu.data(\"slide-speed\"));\n            var keepExpand = menu.data(\"keep-expanded\");\n            \n            if (!keepExpand) {\n                parent.children('li.open').children('a').children('.arrow').removeClass('open');\n                parent.children('li.open').children('.sub-menu:not(.always-open)').slideUp(slideSpeed);\n                parent.children('li.open').removeClass('open');\n            }\n\n            var slideOffeset = -200;\n\n            if (sub.is(\":visible\")) {\n                $('.arrow', the).removeClass(\"open\");\n                the.parent().removeClass(\"open\");\n                sub.slideUp(slideSpeed, function () {\n                    if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {\n                        if ($('body').hasClass('page-sidebar-fixed')) {\n                            menu.slimScroll({\n                                'scrollTo': (the.position()).top\n                            });\n                        } else {\n                            App.scrollTo(the, slideOffeset);\n                        }\n                    }\n                    handleSidebarAndContentHeight();\n                });\n            } else if (hasSubMenu) {\n                $('.arrow', the).addClass(\"open\");\n                the.parent().addClass(\"open\");\n                sub.slideDown(slideSpeed, function () {\n                    if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {\n                        if ($('body').hasClass('page-sidebar-fixed')) {\n                            menu.slimScroll({\n                                'scrollTo': (the.position()).top\n                            });\n                        } else {\n                            App.scrollTo(the, slideOffeset);\n                        }\n                    }\n                    handleSidebarAndContentHeight();\n                });\n            }\n\n            e.preventDefault();\n        });\n\n        // handle menu close for angularjs version\n        if (App.isAngularJsApp()) {\n            $(\".page-sidebar-menu li > a\").on(\"click\", function(e) {\n                if (App.getViewPort().width < resBreakpointMd && $(this).next().hasClass('sub-menu') === false) {\n                    $('.page-header .responsive-toggler').click();\n                }\n            });\n        }\n\n        // handle ajax links within sidebar menu\n        $('.page-sidebar').on('click', ' li > a.ajaxify', function (e) {\n            e.preventDefault();\n            App.scrollTop();\n            var url = $(this).attr(\"href\");\n            var menuContainer = $('.page-sidebar ul');\n\n            menuContainer.children('li.active').removeClass('active');\n            menuContainer.children('arrow.open').removeClass('open');\n\n            $(this).parents('li').each(function () {\n                $(this).addClass('active');\n                $(this).children('a > span.arrow').addClass('open');\n            });\n            $(this).parents('li').addClass('active');\n\n            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass(\"in\")) { // close the menu on mobile view while laoding a page \n                $('.page-header .responsive-toggler').click();\n            }\n\n            Layout.loadAjaxContent(url, $(this));\n        });\n\n        // handle ajax link within main content\n        $('.page-content').on('click', '.ajaxify', function (e) {\n            e.preventDefault();\n            App.scrollTop();\n\n            var url = $(this).attr(\"href\");\n\n            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass(\"in\")) { // close the menu on mobile view while laoding a page \n                $('.page-header .responsive-toggler').click();\n            }\n\n            Layout.loadAjaxContent(url);\n        });\n\n        // handle scrolling to top on responsive menu toggler click when header is fixed for mobile view\n        $(document).on('click', '.page-header-fixed-mobile .page-header .responsive-toggler', function(){\n            App.scrollTop(); \n        });      \n     \n        // handle sidebar hover effect        \n        handleFixedSidebarHoverEffect();\n\n        // handle the search bar close\n        $('.page-sidebar').on('click', '.sidebar-search .remove', function (e) {\n            e.preventDefault();\n            $('.sidebar-search').removeClass(\"open\");\n        });\n\n        // handle the search query submit on enter press\n        $('.page-sidebar .sidebar-search').on('keypress', 'input.form-control', function (e) {\n            if (e.which == 13) {\n                $('.sidebar-search').submit();\n                return false; //<---- Add this line\n            }\n        });\n\n        // handle the search submit(for sidebar search and responsive mode of the header search)\n        $('.sidebar-search .submit').on('click', function (e) {\n            e.preventDefault();\n            if ($('body').hasClass(\"page-sidebar-closed\")) {\n                if ($('.sidebar-search').hasClass('open') === false) {\n                    if ($('.page-sidebar-fixed').size() === 1) {\n                        $('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button\n                    }\n                    $('.sidebar-search').addClass(\"open\");\n                } else {\n                    $('.sidebar-search').submit();\n                }\n            } else {\n                $('.sidebar-search').submit();\n            }\n        });\n\n        // handle close on body click\n        if ($('.sidebar-search').size() !== 0) {\n            $('.sidebar-search .input-group').on('click', function(e){\n                e.stopPropagation();\n            });\n\n            $('body').on('click', function() {\n                if ($('.sidebar-search').hasClass('open')) {\n                    $('.sidebar-search').removeClass(\"open\");\n                }\n            });\n        }\n    };\n\n    // Helper function to calculate sidebar height for fixed sidebar layout.\n    var _calculateFixedSidebarViewportHeight = function () {\n        var sidebarHeight = App.getViewPort().height - $('.page-header').outerHeight(true);\n        if ($('body').hasClass(\"page-footer-fixed\")) {\n            sidebarHeight = sidebarHeight - $('.page-footer').outerHeight();\n        }\n\n        return sidebarHeight;\n    };\n\n    // Handles fixed sidebar\n    var handleFixedSidebar = function () {\n        var menu = $('.page-sidebar-menu');\n\n        handleSidebarAndContentHeight();\n\n        if ($('.page-sidebar-fixed').size() === 0) {\n            App.destroySlimScroll(menu);\n            return;\n        }\n\n        if (App.getViewPort().width >= resBreakpointMd && !$('body').hasClass('page-sidebar-menu-not-fixed')) {\n            menu.attr(\"data-height\", _calculateFixedSidebarViewportHeight());\n            App.destroySlimScroll(menu);\n            App.initSlimScroll(menu);\n            handleSidebarAndContentHeight();\n        } \n    };\n\n    // Handles sidebar toggler to close/hide the sidebar.\n    var handleFixedSidebarHoverEffect = function () {\n        if ($('body').hasClass('page-sidebar-fixed')) {\n            $('.page-sidebar').on('mouseenter', function () {\n                if ($('body').hasClass('page-sidebar-closed')) {\n                    $(this).find('.page-sidebar-menu').removeClass('page-sidebar-menu-closed');\n                }\n            }).on('mouseleave', function () {\n                if ($('body').hasClass('page-sidebar-closed')) {\n                    $(this).find('.page-sidebar-menu').addClass('page-sidebar-menu-closed');\n                }\n            });\n        }\n    };\n\n    // Hanles sidebar toggler\n    var handleSidebarToggler = function () {       \n        /**\n        if (Cookies && Cookies.get('sidebar_closed') === '1' && App.getViewPort().width >= resBreakpointMd) {\n            $('body').addClass('page-sidebar-closed');\n            $('.page-sidebar-menu').addClass('page-sidebar-menu-closed');\n        }\n        */\n\n        // handle sidebar show/hide\n        $('body').on('click', '.sidebar-toggler', function (e) {\n            var body = $('body');\n            var sidebar = $('.page-sidebar');\n            var sidebarMenu = $('.page-sidebar-menu');\n            $(\".sidebar-search\", sidebar).removeClass(\"open\");\n\n            if (body.hasClass(\"page-sidebar-closed\")) {\n                body.removeClass(\"page-sidebar-closed\");\n                sidebarMenu.removeClass(\"page-sidebar-menu-closed\");\n                if (Cookies) {\n                    Cookies.set('sidebar_closed', '0');\n                }\n            } else {\n                body.addClass(\"page-sidebar-closed\");\n                sidebarMenu.addClass(\"page-sidebar-menu-closed\");\n                if (body.hasClass(\"page-sidebar-fixed\")) {\n                    sidebarMenu.trigger(\"mouseleave\");\n                }\n                if (Cookies) {\n                    Cookies.set('sidebar_closed', '1');\n                }\n            }\n\n            $(window).trigger('resize');\n        });\n    };\n\n    // Handles the horizontal menu\n    var handleHorizontalMenu = function () {\n        //handle tab click\n        $('.page-header').on('click', '.hor-menu a[data-toggle=\"tab\"]', function (e) {\n            e.preventDefault();\n            var nav = $(\".hor-menu .nav\");\n            var active_link = nav.find('li.current');\n            $('li.active', active_link).removeClass(\"active\");\n            $('.selected', active_link).remove();\n            var new_link = $(this).parents('li').last();\n            new_link.addClass(\"current\");\n            new_link.find(\"a:first\").append('<span class=\"selected\"></span>');\n        });\n\n        // handle search box expand/collapse        \n        $('.page-header').on('click', '.search-form', function (e) {\n            $(this).addClass(\"open\");\n            $(this).find('.form-control').focus();\n\n            $('.page-header .search-form .form-control').on('blur', function (e) {\n                $(this).closest('.search-form').removeClass(\"open\");\n                $(this).unbind(\"blur\");\n            });\n        });\n\n        // handle hor menu search form on enter press\n        $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function (e) {\n            if (e.which == 13) {\n                $(this).closest('.search-form').submit();\n                return false;\n            }\n        });\n\n        // handle header search button click\n        $('.page-header').on('mousedown', '.search-form.open .submit', function (e) {\n            e.preventDefault();\n            e.stopPropagation();\n            $(this).closest('.search-form').submit();\n        });\n\n        \n        $(document).on('click', '.mega-menu-dropdown .dropdown-menu', function (e) {\n            e.stopPropagation();\n        });\n    };\n\n    // Handles Bootstrap Tabs.\n    var handleTabs = function () {\n        // fix content height on tab click\n        $('body').on('shown.bs.tab', 'a[data-toggle=\"tab\"]', function () {\n            handleSidebarAndContentHeight();\n        });\n    };\n\n    // Handles the go to top button at the footer\n    var handleGoTop = function () {\n        var offset = 300;\n        var duration = 500;\n\n        if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {  // ios supported\n            $(window).bind(\"touchend touchcancel touchleave\", function(e){\n               if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        } else {  // general \n            $(window).scroll(function() {\n                if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        }\n        \n        $('.scroll-to-top').click(function(e) {\n            e.preventDefault();\n            $('html, body').animate({scrollTop: 0}, duration);\n            return false;\n        });\n    };\n\n    // Hanlde 100% height elements(block, portlet, etc)\n    var handle100HeightContent = function () {\n\n        $('.full-height-content').each(function(){\n            var target = $(this);\n            var height;\n\n            height = App.getViewPort().height -\n                $('.page-header').outerHeight(true) -\n                $('.page-footer').outerHeight(true) -\n                $('.page-title').outerHeight(true) -\n                $('.page-bar').outerHeight(true);\n\n            if (target.hasClass('portlet')) {\n                var portletBody = target.find('.portlet-body');\n\n                App.destroySlimScroll(portletBody.find('.full-height-content-body')); // destroy slimscroll \n                \n                height = height -\n                    target.find('.portlet-title').outerHeight(true) -\n                    parseInt(target.find('.portlet-body').css('padding-top')) -\n                    parseInt(target.find('.portlet-body').css('padding-bottom')) - 5;\n\n                if (App.getViewPort().width >= resBreakpointMd && target.hasClass(\"full-height-content-scrollable\")) {\n                    height = height - 35;\n                    portletBody.find('.full-height-content-body').css('height', height);\n                    App.initSlimScroll(portletBody.find('.full-height-content-body'));\n                } else {\n                    portletBody.css('min-height', height);\n                }\n            } else {\n               App.destroySlimScroll(target.find('.full-height-content-body')); // destroy slimscroll \n\n                if (App.getViewPort().width >= resBreakpointMd && target.hasClass(\"full-height-content-scrollable\")) {\n                    height = height - 35;\n                    target.find('.full-height-content-body').css('height', height);\n                    App.initSlimScroll(target.find('.full-height-content-body'));\n                } else {\n                    target.css('min-height', height);\n                }\n            }\n        });        \n    };\n    //* END:CORE HANDLERS *//\n\n    return {\n        // Main init methods to initialize the layout\n        //IMPORTANT!!!: Do not modify the core handlers call order.\n\n        initHeader: function() {\n            handleHorizontalMenu(); // handles horizontal menu    \n        },\n\n        setSidebarMenuActiveLink: function(mode, el) {\n            handleSidebarMenuActiveLink(mode, el, null);\n        },\n\n        setAngularJsSidebarMenuActiveLink: function(mode, el, $state) {\n            handleSidebarMenuActiveLink(mode, el, $state);\n        },\n\n        initSidebar: function($state) {\n            //layout handlers\n            handleFixedSidebar(); // handles fixed sidebar menu\n            handleSidebarMenu(); // handles main menu\n            handleSidebarToggler(); // handles sidebar hide/show\n\n            if (App.isAngularJsApp()) {      \n                handleSidebarMenuActiveLink('match', null, $state); // init sidebar active links \n            }\n\n            App.addResizeHandler(handleFixedSidebar); // reinitialize fixed sidebar on window resize\n        },\n\n        initContent: function() {\n            handle100HeightContent(); // handles 100% height elements(block, portlet, etc)\n            handleTabs(); // handle bootstrah tabs\n\n            App.addResizeHandler(handleSidebarAndContentHeight); // recalculate sidebar & content height on window resize\n            App.addResizeHandler(handle100HeightContent); // reinitialize content height on window resize \n        },\n\n        initFooter: function() {\n            handleGoTop(); //handles scroll to top functionality in the footer\n        },\n\n        init: function () {            \n            this.initHeader();\n            this.initSidebar(null);\n            this.initContent();\n            this.initFooter();\n        },\n\n        loadAjaxContent: function(url, sidebarMenuLink) {\n            var pageContent = $('.page-content .page-content-body');    \n\n            App.startPageLoading({animate: true});\n            \n            $.ajax({\n                type: \"GET\",\n                cache: false,\n                url: url,\n                dataType: \"html\",\n                success: function (res) {\n                    App.stopPageLoading();\n                                    \n                    for (var i = 0; i < ajaxContentSuccessCallbacks.length; i++) {\n                        ajaxContentSuccessCallbacks[i].call(res);\n                    }\n\n                    if (sidebarMenuLink.size() > 0 && sidebarMenuLink.parents('li.open').size() === 0) {\n                        $('.page-sidebar-menu > li.open > a').click();\n                    }\n\n                    pageContent.html(res);\n                    Layout.fixContentHeight(); // fix content height\n                    App.initAjax(); // initialize core stuff\n                },\n                error: function (response, ajaxOptions, thrownError) {\n                    App.stopPageLoading();\n                    debugger;\n                    if (response.status == 404) {// 页面没有找到\n                    \tpageContent.html('<h4><div>404...</div><div>找不到页面...</div></h4>');\n                    } else if (response.status == 401) {// session过期\n                    \tSweetAlert.errorSessionExpire();\n//                    \twindow.location = $(\"#hdnContextPath\").val() + \"/login.shtml\";\n                    } else if (response.status == 507) {// 用户访问次数太频繁 \n                    \tSweetAlert.error(\"您的访问次数太频繁, 请过一会再试...\");\n                    } else {// 其它错误\n                    \tpageContent.html('<h4><div>发生其他错误...</div><div>请联系管理员...</div></h4>');\n                    }\n\n                    for (var i = 0; i < ajaxContentErrorCallbacks.length; i++) {\n                        ajaxContentSuccessCallbacks[i].call(response);\n                    }                    \n                }\n            });\n        },\n\n        addAjaxContentSuccessCallback: function(callback) {\n            ajaxContentSuccessCallbacks.push(callback);\n        },\n\n        addAjaxContentErrorCallback: function(callback) {\n            ajaxContentErrorCallbacks.push(callback);\n        },\n\n        //public function to fix the sidebar and content height accordingly\n        fixContentHeight: function () {\n            handleSidebarAndContentHeight();\n        },\n\n        initFixedSidebarHoverEffect: function() {\n            handleFixedSidebarHoverEffect();\n        },\n\n        initFixedSidebar: function() {\n            handleFixedSidebar();\n        },\n\n        getLayoutImgPath: function () {\n            return App.getAssetsPath() + layoutImgPath;\n        },\n\n        getLayoutCssPath: function () {\n            return App.getAssetsPath() + layoutCssPath;\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n       Layout.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout3/css/custom.css",
    "content": "/* 此文件用于覆盖原css */\n\n/* *,  */\nbody{font:14px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\nh1, h2, h3, h4, h5, h6, h7 {font:13px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\n/* .page-content-wrapper { */\n/* \tmargin-top: -23px; */\n/* } */\n\n/* 必填项 */\n.field-required {\n\tcolor: red;\n}\n\n\n/* .page-header .page-header-menu { */\n/*     background: #3c763d; */\n/* } */\n\n.page-header .page-header-menu .hor-menu .navbar-nav>li>a, .page-header .page-header-menu .hor-menu .navbar-nav>li>a>i {\n    color: #d6e8d5;\n}\n\n\n/** PC 常用尺寸 start **/\n@media screen and (max-width: 2059px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1809px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1559px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1309px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 1059px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #3c763d; \n\t}\n}\n\n@media screen and (max-width: 991px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n\t\n\t.breadcrumb {\n\t\tmargin-top: 15px;\t\n\t}\n}\n\n@media screen and (max-width: 809px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media only screen and (max-width: 870px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media screen and (max-width: 520px){\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n/** PC 常用尺寸 end **/\n\n@media (max-width: 767px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media (max-width: 568px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n\t}\n}\n\n@media (max-width: 320px) {\n\t.page-header .page-header-menu {\n\t\tbackground: #EFF3F8; \n/* \t\t#EFF3F8 */\n\t}\n}\n\t\n\n\n.page-prefooter {\n    background: #3c763d;\n    color: #91b389;\n    padding: 15px 0;\n    clear: both;\n}\n\n.page-footer {\n    background: #104a06;\n    color: #91b389;\n}\n\n.page-prefooter h2 {\n\tfont-size: 18px;\n    color: #c1d8c7;\n}\n\n.footer-p-first-line {\n\tfont-size: 16px;\n}\n\n.footer-p-other-line {\n\tline-height:25px;\n\tfont-size: 16px;\n}\n\n.page-prefooter a {\n    color: #abccb9;\n}\n\n\n.scroll-to-top > i {\n    color: #6ab98e;\n}\n\n\n.faq-content-1 .faq-section {\n    background-color: #fff;\n    padding: 5px 30px 30px;\n    margin-bottom: 30px;\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout3/css/layout.css",
    "content": "@charset \"UTF-8\";\n/* Cubic Bezier Transition */\n@media print {\n  body {\n    background-color: #fff !important; }\n  .page-header {\n    display: none; }\n  .theme-panel {\n    display: none; }\n  .hidden-print {\n    display: none; }\n  .page-prefooter {\n    display: none; }\n  .page-footer {\n    display: none; }\n  .page-head {\n    display: none; }\n  .page-breadcrumb {\n    display: none; }\n  .no-page-break {\n    page-break-after: avoid; }\n  .page-container {\n    margin: 0px !important;\n    padding: 0px !important; }\n    .page-container .page-content {\n      padding: 0 !important;\n      margin: 0 !important; }\n      .page-container .page-content > .container {\n        width: 100%;\n        max-width: none !important;\n        margin: 0 !important; }\n      .page-container .page-content > .container > .portlet,\n      .page-container .page-content > .container-fluid > .portlet {\n        padding: 0;\n        margin: 0; }\n        .page-container .page-content > .container > .portlet > .portlet-body,\n        .page-container .page-content > .container-fluid > .portlet > .portlet-body {\n          padding: 0;\n          margin: 0; } }\n\n/***\nPage Header\n***/\n.page-header {\n  opacity: 1 ;\n  filter: alpha(opacity=100) ;\n  width: 100%;\n  margin: 0;\n  border: 0;\n  padding: 0;\n  box-shadow: none;\n  height: 126px;\n  background-image: none;\n  /* Header container */\n  /* Fixed header */\n  /* Static header */\n  /* Page Header Top */\n  /* Page Header Menu */ }\n  .page-header:before, .page-header:after {\n    content: \" \";\n    display: table; }\n  .page-header:after {\n    clear: both; }\n  .page-header .container,\n  .page-header .container-fluid {\n    position: relative; }\n  .page-header.navbar-fixed-top {\n    z-index: 9995; }\n  .page-header.navbar-static-top {\n    z-index: 9995; }\n  .page-header .page-header-top {\n    height: 75px;\n    /* Header logo */\n    /* Top menu */\n    /* Menu Toggler */ }\n    .page-header .page-header-top.fixed {\n      width: 100%;\n      position: fixed;\n      top: 0;\n      left: 0;\n      z-index: 9995; }\n    .page-header .page-header-top .page-logo {\n      float: left;\n      display: block;\n      width: 255px;\n      height: 75px; }\n      .page-header .page-header-top .page-logo .logo-default {\n        margin: 29.5px 0 0 0; }\n    .page-header .page-header-top .top-menu {\n      margin: 13px 0 0;\n      padding: 0;\n      float: right; }\n      .page-header .page-header-top .top-menu .navbar-nav {\n        padding: 0;\n        margin-right: 0;\n        display: block;\n        /* Top Links */\n        /* Separator */\n        /* Extended Dropdowns */\n        /* Notification */\n        /* Inbox */\n        /* Tasks */\n        /* User */\n        /* Quick Sidebar Toggler */\n        /* Language */\n        /* Dark version */ }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown {\n          margin: 0;\n          padding: 0 4px;\n          height: 50px;\n          display: inline-block;\n          /* 1st level */\n          /* 2nd level */ }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle {\n            margin: 0 0 0 1px;\n            padding: 17px 10px 8px 10px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:last-child {\n              padding-right: 0; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i {\n              font-size: 19px; }\n              .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i.glyphicon {\n                font-size: 18px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > .badge {\n              font-family: \"Open Sans\", sans-serif;\n              position: absolute;\n              top: 9px;\n              right: 24px;\n              font-weight: 300;\n              padding: 3px 6px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus {\n              background: none; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-menu {\n            z-index: 9996;\n            margin-top: 5px;\n            margin-right: 7px;\n            font-family: \"Open Sans\", sans-serif;\n            -webkit-border-radius: 4px;\n            -moz-border-radius: 4px;\n            -ms-border-radius: 4px;\n            -o-border-radius: 4px;\n            border-radius: 4px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-menu:before {\n              position: absolute;\n              top: -8px;\n              right: 9px;\n              display: inline-block !important;\n              border-right: 8px solid transparent;\n              border-bottom: 8px solid #efefef;\n              border-left: 8px solid transparent;\n              content: ''; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-menu:after {\n              position: absolute;\n              top: -7px;\n              right: 10px;\n              display: inline-block !important;\n              border-right: 7px solid transparent;\n              border-bottom: 7px solid #fff;\n              border-left: 7px solid transparent;\n              content: ''; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-separator {\n          padding-left: 0px;\n          padding-right: 6px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-separator .separator {\n            float: left;\n            display: inline-block;\n            width: 1px;\n            height: 18px;\n            margin-left: 5px;\n            margin-top: 17px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu {\n          min-width: 160px;\n          max-width: 300px;\n          width: 300px;\n          z-index: 9996;\n          /* header notifications dropdowns */ }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n            display: block;\n            overflow: hidden;\n            padding: 15px 15px;\n            letter-spacing: 0.5px;\n            -webkit-border-radius: 4px 4px 0 0;\n            -moz-border-radius: 4px 4px 0 0;\n            -ms-border-radius: 4px 4px 0 0;\n            -o-border-radius: 4px 4px 0 0;\n            border-radius: 4px 4px 0 0; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n              margin: 0;\n              padding: 0;\n              float: left;\n              font-size: 13px;\n              display: inline-block; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n              display: inline-block;\n              padding: 0;\n              background: none;\n              clear: inherit;\n              font-size: 12px;\n              font-weight: 400;\n              position: absolute;\n              right: 10px;\n              border: 0;\n              margin-top: -2px; }\n              .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n                text-decoration: none; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list {\n            padding-right: 0 !important;\n            padding-left: 0;\n            list-style: none; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n              display: block;\n              clear: both;\n              font-weight: 300;\n              line-height: 20px;\n              white-space: normal;\n              font-size: 13px;\n              padding: 16px 15px 18px;\n              text-shadow: none; }\n              .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n                opacity: 1 ;\n                filter: alpha(opacity=100) ;\n                text-decoration: none; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li:first-child a {\n              border-top: none; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details {\n          overflow: hidden; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon {\n            margin-right: 10px;\n            -webkit-border-radius: 50%;\n            -moz-border-radius: 50%;\n            -ms-border-radius: 50%;\n            -o-border-radius: 50%;\n            border-radius: 50%; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon i {\n              margin-right: 2px;\n              margin-left: 1px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .details .label-icon .badge {\n              right: 15px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li a .time {\n          float: right;\n          max-width: 75px;\n          font-size: 11px;\n          font-weight: 400;\n          opacity: 0.7 ;\n          filter: alpha(opacity=70) ;\n          text-align: right;\n          padding: 1px 5px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle {\n          padding: 17px 0px 8px 8px;\n          /* safari only hack */ }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .circle {\n            float: left;\n            margin-top: -5px;\n            padding: 3px 10px 4px 10px;\n            -webkit-border-radius: 50% !important;\n            -moz-border-radius: 50% !important;\n            -ms-border-radius: 50% !important;\n            -o-border-radius: 50% !important;\n            border-radius: 50% !important;\n            font-family: \"Open Sans\", sans-serif;\n            font-weight: 300; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner {\n            float: left;\n            margin-left: -4px;\n            width: 0;\n            height: 0;\n            border-style: solid;\n            border-width: 8px 0 9px 9px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner:not(:root:root) {\n            margin-left: -5px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo {\n          float: left;\n          margin: 0 6px 6px 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .photo img {\n            height: 40px;\n            width: 40px;\n            -webkit-border-radius: 50% !important;\n            -moz-border-radius: 50% !important;\n            -ms-border-radius: 50% !important;\n            -o-border-radius: 50% !important;\n            border-radius: 50% !important; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li a:hover {\n          text-decoration: none; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject {\n          display: block;\n          margin-left: 46px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .from {\n            font-size: 14px;\n            font-weight: 600; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .subject .time {\n            font-size: 12px;\n            font-weight: 400;\n            opacity: 0.5 ;\n            filter: alpha(opacity=50) ;\n            float: right; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-menu .dropdown-menu-list > li .message {\n          display: block !important;\n          font-size: 12px;\n          line-height: 1.3;\n          margin-left: 46px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task {\n          margin-bottom: 5px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .desc {\n            font-size: 13px;\n            font-weight: 300; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .task .percent {\n            color: #36c6d3;\n            float: right;\n            font-weight: 600;\n            display: inline-block; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress {\n          display: block;\n          height: 8px;\n          margin: 8px 0 2px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list > li .progress .progress-bar {\n            box-shadow: none; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          padding: 12px 6px 7px 6px;\n          padding-left: 0;\n          padding-right: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > img {\n            margin-top: -8px;\n            margin-right: 8px;\n            height: 40px;\n            float: left; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > .username {\n            float: left;\n            font-size: 400;\n            font-size: 14px;\n            margin-top: 4px;\n            margin-right: 2px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle > i {\n            float: left;\n            font-size: 14px;\n            margin-top: 7px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu {\n          width: 210px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a {\n            font-size: 14px;\n            font-weight: 300;\n            font-size: 13px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a i {\n              width: 15px;\n              display: inline-block;\n              margin-right: 9px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user .dropdown-menu > li > a .badge {\n              margin-right: 10px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler {\n          cursor: pointer;\n          padding: 17px 10px 8px 10px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i {\n            color: #c1ccd1;\n            font-size: 19px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i:before {\n              content: \"\"/*rtl:\"\"*/; }\n            .page-quick-sidebar-open .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i:before {\n              content: \"\"/*rtl:\"\"*/; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.quick-sidebar-toggler > i:hover {\n              color: #a4b4bb; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language {\n          padding-left: 0;\n          padding-right: 0;\n          margin: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle {\n            padding: 16px 10px 9px 2px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > img {\n              margin-bottom: 2px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > i {\n              font-size: 14px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a {\n            font-size: 13px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-menu > li > a > img {\n              margin-bottom: 2px;\n              margin-right: 5px; }\n        .page-header .page-header-top .top-menu .navbar-nav li.dropdown-dark .dropdown-menu {\n          border: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before {\n            border-left: none;\n            border-right: none; }\n          .page-header .page-header-top .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list > li.external a {\n            background: none !important;\n            border: none !important; }\n    .page-header .page-header-top .menu-toggler {\n      float: right;\n      display: none;\n      margin: 23px 3px 0 13px;\n      width: 40px;\n      height: 30px;\n      background: url(../img/menu-toggler.png) center center;\n      background-repeat: no-repeat;\n      opacity: 0.7 ;\n      filter: alpha(opacity=70) ; }\n      .page-header .page-header-top .menu-toggler:hover {\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n  .page-header .page-header-menu {\n    display: block;\n    height: 51px;\n    clear: both;\n    /* Mega menu */\n    /* Search box */ }\n    .page-header .page-header-menu .hor-menu {\n      margin: 0 0 0 -17px;\n      margin: 0;\n      float: left; }\n      .page-header .page-header-menu .hor-menu .navbar-nav {\n        position: static;\n        /* Mega menu */\n        /* Mega Menu Dropdown */\n        /* Classic menu */ }\n        .page-header .page-header-menu .hor-menu .navbar-nav.navbar-right .dropdown-menu {\n          left: auto;\n          right: 0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown {\n          position: static; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n            left: auto;\n            width: auto; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content {\n              font-family: \"Open Sans\", sans-serif;\n              padding: 15px;\n              margin: 0; }\n              .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content.mega-menu-responsive-content {\n                padding: 10px 18px 10px 45px; }\n              .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu {\n                padding: 0;\n                margin: 0; }\n                .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu:last-child {\n                  border-right: 0; }\n                .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li {\n                  padding: 1px !important;\n                  margin: 0 !important;\n                  list-style: none; }\n                  .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n                    margin-top: 5px;\n                    padding-left: 5px;\n                    font-size: 15px;\n                    font-weight: normal; }\n                  .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a {\n                    display: block;\n                    white-space: normal;\n                    font-family: \"Open Sans\", sans-serif;\n                    padding: 7px;\n                    margin: 0;\n                    font-size: 14px;\n                    font-weight: 300; }\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a:focus, .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a:hover {\n                      text-decoration: none; }\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify {\n                      padding: 7px 7px 7px 30px; }\n                      .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a.iconify > i {\n                        position: absolute;\n                        top: auto !important;\n                        margin-left: -24px;\n                        font-size: 15px;\n                        margin-top: 3px !important; }\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .badge,\n                    .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > a .label {\n                      margin-left: 5px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown.mega-menu-full .dropdown-menu {\n            left: 15px;\n            right: 15px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:after, .page-header .page-header-menu .hor-menu .navbar-nav > li.menu-dropdown .dropdown-menu:before {\n          display: none !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n          font-size: 14px;\n          font-weight: normal;\n          padding: 16px 18px 15px 18px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus {\n            background: none !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.current .selected, .page-header .page-header-menu .hor-menu .navbar-nav > li.active .selected {\n          left: 50%;\n          bottom: 0;\n          position: absolute;\n          border-left: 6px solid transparent;\n          border-right: 6px solid transparent;\n          border-top: 6px solid transparent;\n          display: inline-block;\n          margin: 0;\n          width: 0;\n          height: 0px;\n          margin-left: -7px;\n          margin-bottom: -6px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu {\n          margin-top: 0;\n          border: none; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a {\n            font-family: \"Open Sans\", sans-serif;\n            font-size: 14px;\n            font-weight: 300;\n            padding: 10px 12px;\n            white-space: normal; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a .label,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a .badge {\n              font-weight: 300; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu {\n          min-width: 195px;\n          max-width: 235px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-submenu > .dropdown-menu {\n          top: 0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n          top: 9px;\n          right: 10px; }\n    .page-header .page-header-menu .search-form {\n      position: relative;\n      display: inline-block;\n      float: right;\n      width: 176px;\n      transition: width 0.4s;\n      margin-top: 8px;\n      -webkit-border-radius: 4px;\n      -moz-border-radius: 4px;\n      -ms-border-radius: 4px;\n      -o-border-radius: 4px;\n      border-radius: 4px; }\n      .page-header .page-header-menu .search-form .input-group {\n        -webkit-border-radius: 4px;\n        -moz-border-radius: 4px;\n        -ms-border-radius: 4px;\n        -o-border-radius: 4px;\n        border-radius: 4px; }\n        .page-header .page-header-menu .search-form .input-group .form-control {\n          border: 0;\n          font-size: 13px;\n          padding-right: 20px;\n          font-weight: 300; }\n          .page-header .page-header-menu .search-form .input-group .form-control:hover {\n            cursor: pointer; }\n        .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit {\n          padding: 0;\n          height: 34px;\n          z-index: 3;\n          position: relative;\n          top: 10px;\n          right: 11px; }\n          .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit > i {\n            font-size: 15px; }\n      .page-header .page-header-menu .search-form.open {\n        width: 300px !important;\n        transition: width 0.4s; }\n        .page-header .page-header-menu .search-form.open .input-group .form-control {\n          text-indent: 0; }\n          .page-header .page-header-menu .search-form.open .input-group .form-control:hover {\n            cursor: text; }\n        .page-header .page-header-menu .search-form.open .input-group .input-group-btn .btn.submit {\n          margin-left: 0; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .page-header {\n    /* Page Header Menu */ }\n    .page-header .page-header-menu.fixed {\n      width: 100%;\n      position: fixed;\n      top: 0;\n      left: 0;\n      z-index: 9995; }\n    .page-header .page-header-menu .hor-menu .navbar-nav > li.menu-dropdown:hover > .dropdown-menu {\n      display: block; }\n    .page-header .page-header-menu .container-fluid .navbar-nav > li.mega-menu-dropdown.mega-menu-full .dropdown-menu {\n      left: 60px;\n      right: 60px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  /* Page header */\n  .page-header {\n    padding: 0;\n    clear: both;\n    height: auto; }\n    .page-header .page-header-top {\n      height: auto;\n      /* Page logo */\n      /* Top Menu */\n      /* Menu Toggler */ }\n      .page-header .page-header-top > .container {\n        width: 100%;\n        max-width: none !important;\n        margin: 0 !important; }\n      .page-header .page-header-top .page-logo {\n        width: auto;\n        padding: 0;\n        margin-right: 10px;\n        margin-left: 4px;\n        padding-left: 0; }\n      .page-header .page-header-top .top-menu .navbar-nav {\n        display: inline-block;\n        margin: 0 10px 0 0; }\n        .page-header .page-header-top .top-menu .navbar-nav > li {\n          float: left; }\n      .page-header .page-header-top .menu-toggler {\n        display: block; }\n    .page-header .page-header-menu {\n      background: #eff3f8;\n      padding: 20px 0 0 0;\n      height: auto;\n      display: none; }\n      .page-header .page-header-menu > .container {\n        width: 100%;\n        max-width: none !important;\n        margin: 0 !important; }\n      .page-header .page-header-menu .hor-menu {\n        float: none;\n        -webkit-border-radius: 4px;\n        -moz-border-radius: 4px;\n        -ms-border-radius: 4px;\n        -o-border-radius: 4px;\n        border-radius: 4px; }\n        .page-header .page-header-menu .hor-menu .navbar-nav {\n          float: none;\n          -webkit-border-radius: 4px;\n          -moz-border-radius: 4px;\n          -ms-border-radius: 4px;\n          -o-border-radius: 4px;\n          border-radius: 4px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li > a > .arrow:after {\n            position: absolute;\n            display: inline-block;\n            font-size: 14px;\n            right: 15px;\n            top: 11px;\n            font-family: FontAwesome;\n            height: auto;\n            content: \"\\f104\";\n            font-weight: 300; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.opened > a > .arrow:after {\n            content: \"\\f107\";\n            right: 12px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav .dropdown-submenu > a:after {\n            display: none !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li {\n            float: none; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n              padding: 10px; }\n              .page-header .page-header-menu .hor-menu .navbar-nav > li > a .fa-angle-down {\n                float: right; }\n                .page-header .page-header-menu .hor-menu .navbar-nav > li > a .fa-angle-down:before {\n                  content: \"\\f104\"; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li:first-child > a {\n              -webkit-border-radius: 4px 4px 0 0;\n              -moz-border-radius: 4px 4px 0 0;\n              -ms-border-radius: 4px 4px 0 0;\n              -o-border-radius: 4px 4px 0 0;\n              border-radius: 4px 4px 0 0; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li:last-child > a {\n              -webkit-border-radius: 0 0 4px 4px;\n              -moz-border-radius: 0 0 4px 4px;\n              -ms-border-radius: 0 0 4px 4px;\n              -o-border-radius: 0 0 4px 4px;\n              border-radius: 0 0 4px 4px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a .fa-angle-down:before {\n              content: \"\\f107\"; }\n          .page-header .page-header-menu .hor-menu .navbar-nav .dropdown-menu {\n            position: static;\n            float: none !important;\n            width: auto;\n            background: #fff;\n            display: none; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.mega-menu-dropdown.opened > .dropdown-menu {\n            display: block;\n            width: 100%;\n            min-width: inherit !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.mega-menu-dropdown > .dropdown-menu .mega-menu-content {\n            padding-top: 0; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown.opened > .dropdown-menu {\n            display: block; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown li.opened > .dropdown-menu {\n            display: block; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown > .dropdown-menu > li > a {\n            padding-left: 20px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown > .dropdown-menu > li > .dropdown-menu > li > a {\n            padding-left: 40px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown > .dropdown-menu > li > .dropdown-menu > li > .dropdown-menu > li > a {\n            padding-left: 60px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu {\n            max-width: none;\n            width: auto; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.divider {\n              background: none;\n              margin: 5px 12px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu > a:after {\n              content: \"\\f104\";\n              font-size: 14px;\n              margin-right: 7px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.open > a:after {\n              content: \"\\f107\";\n              margin-right: 5px; }\n            .page-header .page-header-menu .hor-menu .navbar-nav li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.open > .dropdown-menu {\n              display: block; }\n      .page-header .page-header-menu .search-form {\n        float: none !important;\n        width: auto;\n        margin: 0 0 20px 0; }\n        .page-header .page-header-menu .search-form.open {\n          width: auto !important; }\n        .page-header .page-header-menu .search-form .input-group .form-control {\n          height: 38px; }\n          .page-header .page-header-menu .search-form .input-group .form-control:hover {\n            cursor: text; }\n        .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit {\n          height: 38px;\n          width: 44px;\n          top: 0;\n          right: 0; }\n          .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit i {\n            position: relative;\n            top: 13px; } }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .page-header {\n    /* Header Top */ }\n    .page-header .page-header-top .page-logo {\n      width: auto !important; }\n    .page-header .page-header-top .top-menu {\n      display: block; }\n      .page-header .page-header-top .top-menu:before, .page-header .page-header-top .top-menu:after {\n        content: \" \";\n        display: table; }\n      .page-header .page-header-top .top-menu:after {\n        clear: both; }\n      .page-header .page-header-top .top-menu .navbar-nav {\n        margin-right: 0px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle {\n          padding: 17px 6px 8px 6px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > .badge {\n            right: 18px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended > .dropdown-menu {\n          max-width: 255px;\n          width: 255px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-notification > .dropdown-menu {\n          margin-right: -160px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-notification > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-notification > .dropdown-menu:before {\n            margin-right: 160px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox {\n          margin-right: 0;\n          padding-right: 2px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-menu {\n            margin-right: -40px; }\n            .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-menu:before {\n              margin-right: 40px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-inbox > .dropdown-toggle {\n            padding: 17px 0px 8px 2px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-tasks > .dropdown-menu {\n          margin-right: -115px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-tasks > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended.dropdown-tasks > .dropdown-menu:before {\n            margin-right: 115px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-menu {\n          margin-right: -20px; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-menu:after, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-menu:before {\n            margin-right: 20px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-language > .dropdown-toggle {\n          padding: 16px 6px 9px 2px; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-user {\n          padding-left: 0;\n          margin-right: 0; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.dropdown-user > .dropdown-toggle {\n            padding: 12px 0px 7px 4px; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header {\n    /* Top navigation menu*/ }\n    .page-header .page-header-top .top-menu {\n      display: block;\n      clear: both;\n      margin-top: -10px; }\n      .page-header .page-header-top .top-menu:before, .page-header .page-header-top .top-menu:after {\n        content: \" \";\n        display: table; }\n      .page-header .page-header-top .top-menu:after {\n        clear: both; }\n      .page-header .page-header-top .top-menu .username-hide-mobile {\n        display: none; } }\n\n/***  \nPace - Page Progress\n***/\n.pace .pace-progress {\n  z-index: 10000;\n  top: 126px !important;\n  height: 3px !important; }\n\n.pace .pace-progress-inner {\n  box-shadow: none; }\n\n.pace .pace-activity {\n  top: 128px;\n  right: 22px;\n  border-radius: 10px !important; }\n\n@media (max-width: 480px) {\n  .page-header-fixed .pace .pace-progress {\n    top: 252px; }\n  .page-header-fixed .pace .pace-activity {\n    top: 508px;\n    right: 15px; } }\n\nhtml,\nbody {\n  height: 100%;\n  margin: 0px;\n  padding: 0px; }\n\n.page-wrapper {\n  display: table;\n  width: 100%;\n  height: 100%;\n  table-layout: fixed; }\n  .page-wrapper .page-wrapper-row {\n    width: 100%;\n    display: table-row; }\n    .page-wrapper .page-wrapper-row.full-height {\n      height: 100%; }\n  .page-wrapper .page-wrapper-top {\n    width: 100%;\n    display: table-cell; }\n  .page-wrapper .page-wrapper-middle {\n    background: #eff3f8;\n    width: 100%;\n    display: table-cell;\n    height: 100%; }\n  .page-wrapper .page-wrapper-bottom {\n    width: 100%;\n    display: table-cell; }\n\n/* Page Container */\n.page-container {\n  clear: both; }\n\n.page-head {\n  background: #fff; }\n  .page-head .container {\n    position: relative; }\n  .page-head .page-title {\n    display: inline-block;\n    float: left;\n    padding: 19px 0; }\n    .page-head .page-title > h1 {\n      color: #697882;\n      font-size: 22px;\n      font-weight: 400;\n      margin: 0; }\n      .page-head .page-title > h1 > small {\n        color: #9eacb4;\n        font-size: 13px;\n        font-weight: 400; }\n  .page-head .page-toolbar {\n    display: inline-block;\n    float: right; }\n\n.breadcrumb {\n  background: none;\n  padding: 0 0 15px 0;\n  margin: 0;\n  color: #a7b2c0; }\n\n.breadcrumb > li + li:before {\n  display: none; }\n\n.breadcrumb .fa {\n  font-size: 6px;\n  margin: 0 2px 0 4px;\n  position: relative;\n  top: -1px; }\n\n.breadcrumb > .active {\n  color: #9eacb4; }\n\n.page-content {\n  padding: 15px 0 15px; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .container-fluid {\n    padding-left: 60px;\n    padding-right: 60px; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-head {\n    background: #EFF3F8; }\n    .page-head > .container {\n      width: 100%;\n      max-width: none !important;\n      margin: 0 !important; }\n  .page-content {\n    padding-top: 0px; }\n    .page-content > .container {\n      width: 100%;\n      max-width: none !important;\n      margin: 0 !important; } }\n\n/*  admin 3 portlet styles */\n.portlet .portlet-input .form-control {\n  background: #F1F3F8;\n  border-radius: 0 !important;\n  border-color: #F1F3F8; }\n  .portlet .portlet-input .form-control:focus {\n    border-color: #cfd6e7; }\n\n/* Pre-footer */\n.page-prefooter {\n  padding: 30px 0;\n  clear: both; }\n  .page-prefooter h2 {\n    font-weight: 700;\n    font-size: 15px;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    margin: 0 0 12px; }\n  .page-prefooter .subscribe-form {\n    padding-top: 5px; }\n    .page-prefooter .subscribe-form .form-control {\n      font-size: 12px;\n      padding: 0 14px;\n      height: 36px; }\n    .page-prefooter .subscribe-form .btn {\n      height: 34px;\n      text-transform: uppercase;\n      padding: 7px 16px; }\n  .page-prefooter .social-icons {\n    padding-top: 9px; }\n    .page-prefooter .social-icons li {\n      opacity: 0.35 ;\n      filter: alpha(opacity=35) ; }\n      .page-prefooter .social-icons li:hover {\n        opacity: 1 ;\n        filter: alpha(opacity=100) ; }\n  .page-prefooter p,\n  .page-prefooter address {\n    margin: 0; }\n\n/* Footer */\n.page-footer {\n  font-size: 13px;\n  font-weight: 300;\n  padding: 17px 0; }\n  .page-footer a {\n    color: #e6e6e6; }\n    .page-footer a:hover {\n      color: #f2f2f2; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-prefooter {\n    padding-bottom: 10px; }\n    .page-prefooter .footer-block {\n      margin-bottom: 20px; }\n    .page-prefooter > .container {\n      width: 100%;\n      max-width: none !important;\n      margin: 0 !important; }\n  .page-footer > .container {\n    width: 100%;\n    max-width: none !important;\n    margin: 0 !important; } }\n\n/* Scroll Top */\n.scroll-to-top {\n  padding: 2px;\n  text-align: center;\n  position: fixed;\n  z-index: 10001;\n  bottom: 10px;\n  display: none;\n  right: 20px; }\n  .scroll-to-top > i {\n    display: inline-block;\n    font-size: 32px;\n    opacity: 0.7 ;\n    filter: alpha(opacity=70) ; }\n  .scroll-to-top:hover {\n    cursor: pointer; }\n    .scroll-to-top:hover > i {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .scroll-to-top {\n    right: 10px; }\n    .scroll-to-top > i {\n      font-size: 28px; } }\n\n/***\nTheme Panel\n***/\n.btn-theme-panel {\n  margin-top: 25px; }\n  .btn-theme-panel .btn {\n    opacity: 0.6 ;\n    filter: alpha(opacity=60) ;\n    padding: 0 6px; }\n    .btn-theme-panel .btn > i {\n      font-size: 24px;\n      color: #acbac6; }\n    .btn-theme-panel .btn:hover {\n      opacity: 1 ;\n      filter: alpha(opacity=100) ; }\n  .btn-theme-panel.open .btn {\n    opacity: 1 ;\n    filter: alpha(opacity=100) ; }\n\n.theme-panel {\n  z-index: 1000;\n  min-width: 675px;\n  padding: 20px 10px;\n  font-family: \"Open Sans\", sans-serif; }\n  .theme-panel h3 {\n    margin: 8px 0 8px 0;\n    font-size: 15px;\n    padding-left: 12px; }\n  .theme-panel .seperator {\n    border-left: 1px solid #EFF2F4; }\n  .theme-panel .theme-colors {\n    list-style: none;\n    padding: 0;\n    margin: 0; }\n    .theme-panel .theme-colors > li.theme-color {\n      padding: 8px 12px; }\n      .theme-panel .theme-colors > li.theme-color:hover, .theme-panel .theme-colors > li.theme-color.active {\n        background: #f5f7f8; }\n      .theme-panel .theme-colors > li.theme-color:hover {\n        cursor: pointer; }\n      .theme-panel .theme-colors > li.theme-color > .theme-color-view {\n        float: left;\n        margin-top: 0px;\n        margin-right: 8px;\n        display: inline-block;\n        border-radius: 10px !important;\n        height: 20px;\n        width: 20px; }\n      .theme-panel .theme-colors > li.theme-color > .theme-color-name {\n        display: inline-block;\n        color: #777;\n        font-size: 14px;\n        font-weight: 300;\n        padding-top: -4px; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-default .theme-color-view {\n        background: #32c5d2; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-red-sunglo .theme-color-view {\n        background: #E26A6A; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-red-intense .theme-color-view {\n        background: #E35B5A; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-blue-hoki .theme-color-view {\n        background: #67809F; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-blue-steel .theme-color-view {\n        background: #4B77BE; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-green-haze .theme-color-view {\n        background: #44B6AE; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-purple-plum .theme-color-view {\n        background: #8775A7; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-purple-studio .theme-color-view {\n        background: #8E44AD; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-yellow-orange .theme-color-view {\n        background: #F2784B; }\n      .theme-panel .theme-colors > li.theme-color.theme-color-yellow-crusta .theme-color-view {\n        background: #F3C200; }\n  .theme-panel .theme-settings {\n    list-style: none;\n    padding: 0;\n    margin: 0; }\n    .theme-panel .theme-settings > li {\n      padding: 8px 12px;\n      font-size: 14px;\n      font-weight: 300;\n      color: #777; }\n      .theme-panel .theme-settings > li .form-control {\n        color: #777;\n        margin-top: -3px;\n        float: right; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .theme-panel {\n    left: 20px;\n    right: 20px;\n    min-width: 285px; }\n    .theme-panel .seperator {\n      border: 0; }\n    .theme-panel .theme-settings .form-control {\n      width: 105px !important; } }\n\n/* Page Portlet Fullscreen */\n.page-portlet-fullscreen .page-quick-sidebar-wrapper,\n.page-portlet-fullscreen .page-quick-sidebar-toggler {\n  z-index: -1; }\n\n/* Quick sidebar toggler */\n.page-quick-sidebar-toggler {\n  overflow: hidden;\n  z-index: 99999;\n  display: none;\n  width: 28px;\n  height: 27px;\n  position: fixed;\n  top: 10px;\n  right: 15px;\n  text-align: center;\n  padding-top: 6px; }\n  .page-quick-sidebar-toggler:hover {\n    background: #303a43; }\n  .page-quick-sidebar-open .page-quick-sidebar-toggler {\n    display: inline-block; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler:hover {\n      background: none; }\n  .page-quick-sidebar-toggler > i {\n    color: #99a8b5;\n    font-size: 17px; }\n    .page-quick-sidebar-toggler > i:hover {\n      color: #fff !important; }\n    .page-quick-sidebar-open .page-quick-sidebar-toggler > i:before {\n      content: \"\"/*rtl:\"\"*/; }\n\n/* Quick sidebar wrapper */\n.page-quick-sidebar-wrapper {\n  transition: right 0.3s;\n  z-index: 9999;\n  position: fixed;\n  top: 0;\n  bottom: 0;\n  width: 320px;\n  right: -320px;\n  overflow: hidden;\n  color: #99a8b5;\n  background: #21282e; }\n  .page-quick-sidebar-open .page-quick-sidebar-wrapper {\n    transition: right 0.3s;\n    right: 0; }\n  .page-quick-sidebar-wrapper .page-quick-sidebar {\n    background: #21282e;\n    /* Quick sidebar tabs content */\n    /* Quick sidebar general list heading */\n    /* Quick sidebar general list-items */\n    /* Inner content */\n    /* Quick sidebar list */\n    /* Quick sidebar list item */\n    /* Quick sidebar list item shown */\n    /* Quick sidebar chat */\n    /* Quick sidebar alerts */\n    /* Quick sidebar settings */ }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs {\n      margin: 0;\n      padding: 0;\n      border: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li {\n        display: table-cell !important;\n        width: 1%  !important;\n        padding: 0;\n        margin: 0;\n        float: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a {\n          position: relative;\n          display: block;\n          text-align: center;\n          border: 0;\n          height: auto;\n          font-size: 14px;\n          padding: 45px 15px 8px;\n          text-transform: uppercase;\n          background: none;\n          margin-right: 0;\n          color: #90a1af;\n          border: 0;\n          border-bottom: 3px solid rgba(243, 86, 93, 0.3);\n          -webkit-border-radius: 0;\n          -moz-border-radius: 0;\n          -ms-border-radius: 0;\n          -o-border-radius: 0;\n          border-radius: 0;\n          outline: none !important; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li > a > .badge {\n            position: absolute;\n            top: 45px;\n            right: 3px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.active > a, .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li:hover > a {\n          border: 0;\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          color: #fff;\n          text-decoration: none; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu {\n          border: 0;\n          background: #36424c;\n          box-shadow: 5px 5px rgba(97, 117, 135, 0.1);\n          margin-top: 8px;\n          margin-right: 20px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:before {\n            position: absolute;\n            top: -7px;\n            right: 19px;\n            display: inline-block !important;\n            border-right: 7px solid transparent;\n            border-left: 7px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu:after {\n            position: absolute;\n            top: -6px;\n            right: 20px;\n            display: inline-block !important;\n            border-right: 6px solid transparent;\n            border-left: 6px solid transparent;\n            border-bottom: 7px solid #36424c;\n            content: ''; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a {\n            padding: 10px 15px;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li > a > i {\n              color: #93a3b1; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a {\n            background: #3d4a55;\n            color: #99a8b5; }\n            .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li:hover > a > i {\n              color: #9babb8; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.active > a {\n            background: #38444f;\n            color: #99a8b5; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li .dropdown-menu > li.divider {\n            background-color: #3d4a55; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .nav-tabs > li.open > a.dropdown-toggle {\n          border-bottom: 3px solid #f3565d;\n          background: none;\n          text-decoration: none;\n          color: #90a1af; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .tab-content {\n      margin: 0;\n      padding: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-heading {\n      font-size: 16px;\n      margin: 10px 10px;\n      color: #6c8296; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .list-items {\n      margin: 0;\n      padding: 0;\n      list-style: none; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li {\n        margin: 0;\n        padding: 15px;\n        background: none;\n        border-bottom-width: 1px;\n        border-bottom-style: solid;\n        border-bottom-color: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:hover {\n          background: #273037; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .list-items > li:last-child {\n          border-bottom: 0; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li {\n        border: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .inner-content {\n      margin: 10px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list {\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item {\n      width: 320px;\n      position: absolute !important;\n      width: 320px !important;\n      transition: margin 0.3s;\n      margin-left: 320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav {\n        padding: 15px 10px 0px 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list {\n          vertical-align: middle;\n          display: inline-block;\n          font-size: 14px;\n          color: #90a1af; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list:hover {\n            text-decoration: none; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list > i {\n            font-size: 17px;\n            line-height: 17px;\n            vertical-align: top;\n            margin-right: 3px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list {\n      transition: margin 0.3s;\n      margin-left: -320px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail {\n        display: none !important; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item {\n      transition: margin 0.3s;\n      margin-left: 0; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media {\n        padding: 15px 15px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object {\n          border-radius: 50% !important;\n          width: 45.71429px;\n          opacity: 0.8;\n          filter: alpha(opacity=80);\n          float: left;\n          margin-right: 10px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before, .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            content: \" \";\n            display: table; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after {\n            clear: both; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover {\n          cursor: pointer; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object {\n            opacity: 1;\n            filter: alpha(opacity=100); }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading {\n          margin: 5px 0 0 0;\n          font-size: 14px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub {\n          font-size: 11px;\n          text-transform: uppercase;\n          color: #657b8d; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small {\n          font-size: 10px;\n          color: #5d7081; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status {\n          margin-top: 10px;\n          right: 10px;\n          position: absolute;\n          display: inline-block; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages {\n      padding: 0px 10px;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post {\n        transition: display 0.3s;\n        padding: 5px 0;\n        margin: 10px auto;\n        font-size: 13px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body {\n          color: #c3c3c3;\n          display: block; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar {\n          width: 45.71429px;\n          border-radius: 50% !important; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar {\n          float: left;\n          margin-right: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar {\n          float: right;\n          margin-left: 10px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime {\n          font-size: 12px;\n          font-weight: 300;\n          color: #8496a7; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message {\n          display: block;\n          padding: 5px;\n          position: relative;\n          color: #90a1af;\n          background: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message {\n          text-align: left;\n          margin-left: 55px; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            left: -6px;\n            width: 0;\n            height: 0;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-right-width: 6px;\n            border-right-style: solid;\n            border-right-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message {\n          margin-right: 55px;\n          text-align: right; }\n          .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow {\n            display: block;\n            position: absolute;\n            top: 9px;\n            right: -6px;\n            border-top: 6px solid transparent;\n            border-bottom: 6px solid transparent;\n            border-left-width: 6px;\n            border-left-style: solid;\n            border-left-color: #36424c; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name,\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime {\n          text-align: right; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form {\n      padding: 20px 10px 15px 10px; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a {\n        color: #7e91a2; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .label {\n          margin-top: 5px; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc {\n          text-decoration: underline;\n          padding: 0;\n          color: #788c9e; }\n        .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .date {\n          color: #5d7081; }\n    .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list {\n      padding: 10px 0;\n      position: relative; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch {\n        margin-top: -3px;\n        float: right;\n        border: 0;\n        min-width: 59px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control {\n        width: 75px !important;\n        padding: 4px 4px !important;\n        float: right;\n        border: 0;\n        margin-top: -4px; }\n      .page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control {\n        padding: 4px 0px !important; }\n\n.quick-nav {\n  position: fixed;\n  z-index: 10103;\n  top: 50%;\n  right: 10px;\n  margin-top: -230px;\n  pointer-events: none; }\n  .quick-nav .quick-nav-bg {\n    /* this is the stretching navigation background */\n    position: absolute;\n    z-index: 10102;\n    top: 0;\n    right: 0;\n    width: 60px;\n    height: 60px;\n    border-radius: 30px !important;\n    background: #36C6D3;\n    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);\n    webkit-transition: height .2s, box-shadow .2s;\n    -moz-transition: height .2s, box-shadow .2s;\n    -ms-transition: height .2s, box-shadow .2s;\n    -o-transition: height .2s, box-shadow .2s;\n    transition: height .2s, box-shadow .2s; }\n  .quick-nav.nav-is-visible {\n    pointer-events: auto; }\n  .quick-nav.nav-is-visible .quick-nav-bg {\n    height: 100%;\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n\n.quick-nav-trigger {\n  position: absolute;\n  z-index: 10103;\n  top: 0;\n  right: 0;\n  height: 60px;\n  width: 60px;\n  border-radius: 50% !important;\n  overflow: hidden;\n  white-space: nowrap;\n  color: transparent;\n  pointer-events: auto; }\n  .quick-nav-trigger span,\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* this is the hamburger icon */\n    position: absolute;\n    width: 16px;\n    height: 2px;\n    background-color: #ffffff; }\n  .quick-nav-trigger span {\n    /* middle line of the hamburger icon */\n    webkit-transition: background-color 0.2s;\n    -moz-transition: background-color 0.2s;\n    -ms-transition: background-color 0.2s;\n    -o-transition: background-color 0.2s;\n    transition: background-color 0.2s;\n    left: 50%;\n    top: 50%;\n    bottom: auto;\n    right: auto;\n    webkit-transform: translateX(-50%) translateY(-50%);\n    -moz-transform: translateX(-50%) translateY(-50%);\n    -ms-transform: translateX(-50%) translateY(-50%);\n    -o-transform: translateX(-50%) translateY(-50%);\n    transform: translateX(-50%) translateY(-50%); }\n  .quick-nav-trigger span::after,\n  .quick-nav-trigger span::before {\n    /* top and bottom lines of the hamburger icon */\n    content: '';\n    top: 0;\n    left: 0;\n    -webkit-backface-visibility: hidden;\n    -moz-backface-visibility: hidden;\n    backface-visibility: hidden;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .quick-nav-trigger span::before {\n    webkit-transform: translateY(-6px);\n    -moz-transform: translateY(-6px);\n    -ms-transform: translateY(-6px);\n    -o-transform: translateY(-6px);\n    transform: translateY(-6px); }\n  .quick-nav-trigger span::after {\n    webkit-transform: translateY(6px);\n    -moz-transform: translateY(6px);\n    -ms-transform: translateY(6px);\n    -o-transform: translateY(6px);\n    transform: translateY(6px); }\n  .no-touch .quick-nav-trigger:hover ~ .quick-nav-bg {\n    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); }\n  .nav-is-visible .quick-nav-trigger span {\n    background-color: transparent; }\n  .nav-is-visible .quick-nav-trigger span::before {\n    webkit-transform: rotate(-45deg);\n    -moz-transform: rotate(-45deg);\n    -ms-transform: rotate(-45deg);\n    -o-transform: rotate(-45deg);\n    transform: rotate(-45deg); }\n  .nav-is-visible .quick-nav-trigger span::after {\n    webkit-transform: rotate(45deg);\n    -moz-transform: rotate(45deg);\n    -ms-transform: rotate(45deg);\n    -o-transform: rotate(45deg);\n    transform: rotate(45deg); }\n\n.quick-nav ul {\n  position: relative;\n  z-index: 10103;\n  padding: 60px 0 0;\n  visibility: hidden;\n  webkit-transition: visibility 0.3s;\n  -moz-transition: visibility 0.3s;\n  -ms-transition: visibility 0.3s;\n  -o-transition: visibility 0.3s;\n  transition: visibility 0.3s;\n  text-align: right;\n  list-style: none; }\n  .quick-nav ul > li a {\n    position: relative;\n    display: block;\n    height: 50px;\n    line-height: 50px;\n    padding: 0 calc(1em + 60px) 0 1em;\n    font-size: 1.4rem;\n    webkit-transition: color 0.2s;\n    -moz-transition: color 0.2s;\n    -ms-transition: color 0.2s;\n    -o-transition: color 0.2s;\n    transition: color 0.2s; }\n    .quick-nav ul > li a:hover {\n      text-decoration: none; }\n      .quick-nav ul > li a:hover > span {\n        text-decoration: none; }\n    .quick-nav ul > li a > i {\n      /* navigation item icons */\n      content: '';\n      position: absolute;\n      height: 16px;\n      width: 16px;\n      font-size: 18px;\n      right: 24px;\n      top: 16px;\n      color: #ebebeb; }\n    .quick-nav ul > li a::before {\n      /* line visible next to the active navigation item */\n      content: '';\n      position: absolute;\n      width: 3px;\n      height: 16px;\n      top: 50%;\n      right: 60px;\n      webkit-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -moz-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -ms-transform: translateX(3px) translateY(-50%) scaleY(0);\n      -o-transform: translateX(3px) translateY(-50%) scaleY(0);\n      transform: translateX(3px) translateY(-50%) scaleY(0);\n      background-color: #FF3F3F; }\n  .quick-nav ul > li span {\n    /* navigation item labels */\n    color: #ebebeb;\n    font-weight: 400;\n    display: block;\n    opacity: 0;\n    webkit-transform: translateX(-25px);\n    -moz-transform: translateX(-25px);\n    -ms-transform: translateX(-25px);\n    -o-transform: translateX(-25px);\n    transform: translateX(-25px); }\n  .quick-nav ul > li:last-child {\n    padding-bottom: 10px; }\n\n.quick-nav.nav-is-visible ul {\n  visibility: visible; }\n  .quick-nav.nav-is-visible ul a::after {\n    /* navigation item icons */\n    webkit-transform: translateY(-50%) scale(1);\n    -moz-transform: translateY(-50%) scale(1);\n    -ms-transform: translateY(-50%) scale(1);\n    -o-transform: translateY(-50%) scale(1);\n    transform: translateY(-50%) scale(1);\n    -webkit-animation: scaleIn 0.15s backwards;\n    -o-animation: scaleIn 0.15s backwards;\n    animation: scaleIn 0.15s backwards;\n    webkit-transition: opacity 0.2s;\n    -moz-transition: opacity 0.2s;\n    -ms-transition: opacity 0.2s;\n    -o-transition: opacity 0.2s;\n    transition: opacity 0.2s; }\n  .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .quick-nav.nav-is-visible ul a:hover::before {\n    webkit-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -moz-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -ms-transform: translateX(3px) translateY(-50%) scaleY(2);\n    -o-transform: translateX(3px) translateY(-50%) scaleY(2);\n    transform: translateX(3px) translateY(-50%) scaleY(2);\n    webkit-transition: transform 0.15s 0.3s;\n    -moz-transition: transform 0.15s 0.3s;\n    -ms-transition: transform 0.15s 0.3s;\n    -o-transition: transform 0.15s 0.3s;\n    transition: transform 0.15s 0.3s; }\n  .quick-nav.nav-is-visible ul a:hover > span {\n    color: white; }\n  .quick-nav.nav-is-visible ul a:hover > i {\n    color: #fafafa; }\n  .quick-nav.nav-is-visible ul span {\n    opacity: 1;\n    webkit-transform: translateX(0);\n    -moz-transform: translateX(0);\n    -ms-transform: translateX(0);\n    -o-transform: translateX(0);\n    transform: translateX(0);\n    -webkit-animation: slideIn 0.15s backwards;\n    -o-animation: slideIn 0.15s backwards;\n    animation: slideIn 0.15s backwards;\n    webkit-transition: transform 0.2s;\n    -moz-transition: transform 0.2s;\n    -ms-transition: transform 0.2s;\n    -o-transition: transform 0.2s;\n    transition: transform 0.2s; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover::after {\n    opacity: 1; }\n  .no-touch .quick-nav.nav-is-visible ul a:hover span {\n    webkit-transform: translateX(-5px);\n    -moz-transform: translateX(-5px);\n    -ms-transform: translateX(-5px);\n    -o-transform: translateX(-5px);\n    transform: translateX(-5px); }\n\n.quick-nav-overlay {\n  display: none;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  position: fixed;\n  z-index: 10101;\n  background: transparent; }\n\n.quick-nav.nav-is-visible + .quick-nav-overlay {\n  background: rgba(0, 0, 0, 0.8);\n  display: block;\n  -webkit-transition: background .7s ease-out;\n  -moz-transition: background .7s ease-out;\n  -o-transition: background .7s ease-out;\n  transition: background .7s ease-out; }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .quick-nav {\n    top: 120px;\n    margin-top: 0; } }\n\n/***  \nPage Loading      \n***/\n.page-on-load {\n  background: #fefefe; }\n  .page-on-load .page-header,\n  .page-on-load .page-container,\n  .page-on-load .page-prefooter,\n  .page-on-load .page-footer,\n  .page-on-load > .clearfix {\n    display: none;\n    transition: all 2s; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout3/css/themes/default.css",
    "content": "/* Cubic Bezier Transition */\n/****\nBoby\n****/\nbody {\n  background-color: #fff; }\n  body.page-md {\n    background: white; }\n\n/******\nGeneral \n******/\n/* Theme Font Color */\n.theme-font {\n  color: #32c5d2 !important; }\n\n/* Pace - Page Progress */\n.pace .pace-progress {\n  background: #32c5d2; }\n\n/* Theme Light Portlet */\n.portlet.light .btn.btn-circle.btn-icon-only.btn-default {\n  border-color: #bbc2ce; }\n  .portlet.light .btn.btn-circle.btn-icon-only.btn-default > i {\n    font-size: 13px;\n    color: #a6b0bf; }\n  .portlet.light .btn.btn-circle.btn-icon-only.btn-default:hover, .portlet.light .btn.btn-circle.btn-icon-only.btn-default.active {\n    color: #fff;\n    background: #32c5d2;\n    border-color: #32c5d2; }\n    .portlet.light .btn.btn-circle.btn-icon-only.btn-default:hover > i, .portlet.light .btn.btn-circle.btn-icon-only.btn-default.active > i {\n      color: #fff; }\n\n/******\nPage Header \n******/\n.page-header {\n  background-color: #fff;\n  /* Page Header Top */\n  /* Page Header Menu */ }\n  .page-header .page-header-top {\n    /* Top menu */ }\n    .page-header .page-header-top.fixed {\n      background: #fff !important;\n      box-shadow: 0px 1px 10px 0px rgba(50, 50, 50, 0.2); }\n    .page-header .page-header-top .top-menu .navbar-nav {\n      /* Top Links */\n      /* Separator */\n      /* Extended Dropdowns */\n      /* Notification */\n      /* Inbox */\n      /* Tasks */\n      /* User */\n      /* Language */\n      /* Dark version */ }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown .separator {\n        border-left: 1px solid #E3E8EC; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle > i {\n        color: #C1CCD1; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:active, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:hover {\n        background-color: #fff; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:active > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:focus > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:hover > i {\n          color: #a4b4bb; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown > .dropdown-toggle .badge.badge-default {\n        background-color: #f36a5a;\n        color: #ffffff; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:active .dropdown-toggle, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:focus .dropdown-toggle, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle {\n        background-color: #fff; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:active .dropdown-toggle > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown:focus .dropdown-toggle > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown.open .dropdown-toggle > i {\n          color: #a4b4bb; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-separator .separator {\n        border-left: 1px solid #E3E8EC; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu:after {\n        border-bottom-color: #f7f8fa; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external {\n        background: #f7f8fa; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > h3 {\n          color: #6f949c; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a {\n          color: #337ab7; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu > li.external > a:hover {\n            color: #23527c;\n            text-decoration: none; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a {\n        border-bottom: 1px solid #EFF2F6 !important;\n        color: #222222; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-extended .dropdown-menu .dropdown-menu-list > li > a:hover {\n          background: #f8f9fa; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a .time {\n        background: #f1f1f1; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n        background: #e4e4e4; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .circle {\n        background-color: #32c5d2;\n        color: #ffffff; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox > .dropdown-toggle > .corner {\n        border-color: transparent transparent transparent #32c5d2; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from {\n        color: #5b9bd1; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress {\n        background-color: #dfe2e9; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > .username {\n        color: #8ea3b6; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user > .dropdown-toggle > i {\n        color: #8ea3b6; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user > .dropdown-menu {\n        width: 195px; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user:hover > .dropdown-toggle > .username,\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user:hover > .dropdown-toggle > i, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user.open > .dropdown-toggle > .username,\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-user.open > .dropdown-toggle > i {\n        color: #7089a2; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language > .dropdown-toggle > .langname {\n        color: #8ea3b6; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language:hover > .dropdown-toggle > .langname, .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-language.open > .dropdown-toggle > .langname {\n        color: #7089a2; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu {\n        background: #2e343b;\n        border: 0; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu:after {\n          border-bottom-color: #2e343b; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external {\n          background: #272c33; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > h3 {\n            color: #a2abb7; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu > li.external > a:hover {\n            color: #5496cf; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a,\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a {\n          color: #aaafb7;\n          border-bottom: 1px solid #3b434c !important; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a > i,\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a > i {\n            color: #6FA7D7; }\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a:hover,\n          .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu .dropdown-menu-list > li a:hover {\n            background: #373e47; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li a {\n          border-bottom: 0 !important; }\n        .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-dark .dropdown-menu.dropdown-menu-default > li.divider {\n          background: #3b434c; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a .time {\n        background: #23272d; }\n      .page-header .page-header-top .top-menu .navbar-nav > li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list > li > a:hover .time {\n        background: #181b1e; }\n  .page-header .page-header-menu {\n    background: #3c763d;\n    /* Default Mega Menu */\n    /* Light Mega Menu */\n    /* Header seaech box */ }\n    .page-header .page-header-menu.fixed {\n      box-shadow: 0px 1px 10px 0px rgba(68, 77, 88, 0.2); }\n    .page-header .page-header-menu .hor-menu .navbar-nav {\n      /* Mega menu content */\n      /* Classic menu */ }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2); }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n          color: #ced5de; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n        color: #BCC2CB; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a:hover,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li > a:active {\n        color: #ffffff;\n        background: #5c8e5d !important; }<!-- #5c8e5d 导航底色修改 -->\n        .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a:hover > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a:active > i {\n          color: #ffffff; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover {\n        color: #f1f1f1;\n        background: #4E5966; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a > i,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2);\n        background: #5c8e5d; }\t/* 原: #55616f */\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a {\n          color: #ced5de; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a {\n          color: #ced5de;\n          background: #5d6b7a; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover {\n          color: #ced5de;\n          background: #5d6b7a; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.divider {\n          background-color: #606d7d; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-submenu > a:after {\n        color: #6fa7d7; }\n    .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav {\n      /* Mega menu content */\n      /* Classic menu */ }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2); }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n          color: #555; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a {\n        color: #BCC2CB; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a:hover {\n        color: #ffffff;\n        background: #55616f; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > a:hover > i {\n          color: #ffffff; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li:hover > a,\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.open > a {\n        color: #333 !important;\n        background: #fafafc !important; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li:hover > a > i,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.open > a > i {\n          color: #333 !important; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a,\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a,\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover {\n        color: #f1f1f1;\n        background: #4E5966; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a > i,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.active > a:hover > i, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a > i,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li.current > a:hover > i {\n          color: #BCC2CB; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu {\n        box-shadow: 5px 5px rgba(85, 97, 111, 0.2);\n        background: #fafafc; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a {\n          color: #000; }\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a {\n          color: #000;\n          background: #eaeaf2; }\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li:hover > a > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a,\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover {\n          color: #000;\n          background: #eaeaf2; }\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a > i,\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a > i,\n          .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n            color: #6fa7d7; }\n        .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li .dropdown-menu li.divider {\n          background-color: #ededf4; }\n      .page-header .page-header-menu .hor-menu.hor-menu-light .navbar-nav > li > .dropdown-menu {\n        border: 1px solid #eaeaf2;\n        border-top: 0; }\n    .page-header .page-header-menu .search-form {\n      background: #38414c; }\n      .page-header .page-header-menu .search-form .input-group {\n        background: #38414c; }\n        .page-header .page-header-menu .search-form .input-group .form-control {\n          color: #616d7d;\n          background: #38414c; }\n          .page-header .page-header-menu .search-form .input-group .form-control::-moz-placeholder {\n            color: #5f6a7a;\n            opacity: 1; }\n          .page-header .page-header-menu .search-form .input-group .form-control:-ms-input-placeholder {\n            color: #5f6a7a; }\n          .page-header .page-header-menu .search-form .input-group .form-control::-webkit-input-placeholder {\n            color: #5f6a7a; }\n        .page-header .page-header-menu .search-form .input-group .input-group-btn .btn.submit > i {\n          color: #616d7d; }\n\n/******\nPage Footer \n******/\n.page-prefooter {\n  background: #48525e;\n  color: #a2abb7; }\n  .page-prefooter h2 {\n    color: #32c5d2; }\n  .page-prefooter a {\n    color: #32c5d2; }\n  .page-prefooter .subscribe-form .form-control {\n    background: #343b44;\n    border-color: #343b44;\n    color: #a2abb7; }\n    .page-prefooter .subscribe-form .form-control::-moz-placeholder {\n      color: #939eac;\n      opacity: 1; }\n    .page-prefooter .subscribe-form .form-control:-ms-input-placeholder {\n      color: #939eac; }\n    .page-prefooter .subscribe-form .form-control::-webkit-input-placeholder {\n      color: #939eac; }\n  .page-prefooter .subscribe-form .btn {\n    color: #fff;\n    background-color: #3fc9d5;\n    border-color: #3fc9d5; }\n    .page-prefooter .subscribe-form .btn:focus, .page-prefooter .subscribe-form .btn.focus {\n      color: #fff;\n      background-color: #28adb9;\n      border-color: #1b727a; }\n    .page-prefooter .subscribe-form .btn:hover {\n      color: #fff;\n      background-color: #28adb9;\n      border-color: #27a5b0; }\n    .page-prefooter .subscribe-form .btn:active, .page-prefooter .subscribe-form .btn.active,\n    .open > .page-prefooter .subscribe-form .btn.dropdown-toggle {\n      color: #fff;\n      background-color: #28adb9;\n      border-color: #27a5b0; }\n      .page-prefooter .subscribe-form .btn:active:hover, .page-prefooter .subscribe-form .btn:active:focus, .page-prefooter .subscribe-form .btn:active.focus, .page-prefooter .subscribe-form .btn.active:hover, .page-prefooter .subscribe-form .btn.active:focus, .page-prefooter .subscribe-form .btn.active.focus,\n      .open > .page-prefooter .subscribe-form .btn.dropdown-toggle:hover,\n      .open > .page-prefooter .subscribe-form .btn.dropdown-toggle:focus,\n      .open > .page-prefooter .subscribe-form .btn.dropdown-toggle.focus {\n        color: #fff;\n        background-color: #22929b;\n        border-color: #1b727a; }\n    .page-prefooter .subscribe-form .btn:active, .page-prefooter .subscribe-form .btn.active,\n    .open > .page-prefooter .subscribe-form .btn.dropdown-toggle {\n      background-image: none; }\n    .page-prefooter .subscribe-form .btn.disabled:hover, .page-prefooter .subscribe-form .btn.disabled:focus, .page-prefooter .subscribe-form .btn.disabled.focus, .page-prefooter .subscribe-form .btn[disabled]:hover, .page-prefooter .subscribe-form .btn[disabled]:focus, .page-prefooter .subscribe-form .btn[disabled].focus,\n    fieldset[disabled] .page-prefooter .subscribe-form .btn:hover,\n    fieldset[disabled] .page-prefooter .subscribe-form .btn:focus,\n    fieldset[disabled] .page-prefooter .subscribe-form .btn.focus {\n      background-color: #3fc9d5;\n      border-color: #3fc9d5; }\n    .page-prefooter .subscribe-form .btn .badge {\n      color: #3fc9d5;\n      background-color: #fff; }\n\n.page-footer {\n  background: #3b434c;\n  color: #a2abb7; }\n\n/* Scroll Top */\n.scroll-to-top > i {\n  color: #657383;\n  font-size: 32px;\n  opacity: 0.7 ;\n  filter: alpha(opacity=70) ; }\n\n@media (min-width: 992px) {\n  /* 992px */\n  .page-header {\n    /* Page Header Menu */ }\n    .page-header .page-header-menu.fixed {\n      width: 100%;\n      position: fixed;\n      top: 0;\n      left: 0;\n      z-index: 9995; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .page-header .page-header-menu {\n    background: #eff3f8;\n    /* Horizontal mega menu */ }\n    .page-header .page-header-menu .hor-menu .navbar-nav {\n      background: #fff !important;\n      /* Mega menu content */\n      /* Classic menu */ }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu {\n        box-shadow: none; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu {\n          border-right: none !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.mega-menu-dropdown > .dropdown-menu .mega-menu-content .mega-menu-submenu li > h3 {\n            color: #72808a; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li {\n        border-bottom: 1px solid #F0F0F0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li:last-child {\n          border-bottom: 0; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li > a {\n          background: none !important;\n          color: #666 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li > a > i {\n            color: #666 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li > a:focus, .page-header .page-header-menu .hor-menu .navbar-nav > li > a:active, .page-header .page-header-menu .hor-menu .navbar-nav > li > a:hover {\n            background: none !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a {\n          background: none !important;\n          color: #32c5d2 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li:hover > a > i {\n            color: #32c5d2 !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a,\n        .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover {\n          color: #fff !important;\n          background: #32c5d2 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.open > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a > i,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li.current > a:hover > i {\n            color: #fff !important; }\n        .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu {\n          border: 0 !important;\n          border-top: 1px solid #eee;\n          box-shadow: none !important;\n          background: #fff !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.divider {\n            border-bottom: 1px solid #F0F0F0; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:first-child {\n            margin-top: 1px; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a {\n            color: #666 !important; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li > a > i {\n              color: #666 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a {\n            background: none !important;\n            color: #32c5d2 !important; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li:hover > a > i {\n              color: #32c5d2 !important; }\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a,\n          .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover {\n            color: #fff !important;\n            background: #32c5d2 !important; }\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a > i,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.open > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a > i,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.active > a:hover > i, .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a > i,\n            .page-header .page-header-menu .hor-menu .navbar-nav > li .dropdown-menu li.current > a:hover > i {\n              color: #fff !important; }\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.active > a:after,\n      .page-header .page-header-menu .hor-menu .navbar-nav > li.classic-menu-dropdown .dropdown-menu > li.dropdown-submenu.open > a:after {\n        color: #fff !important; }\n    .page-header .page-header-menu .hor-menu .nav {\n      border: 0 !important;\n      margin: 0 !important; }\n      .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a,\n      .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a:hover {\n        border: 0 !important;\n        margin: 0 !important;\n        color: #fff !important;\n        background: #47cbd7 !important; }\n        .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a > i,\n        .page-header .page-header-menu .hor-menu .nav .dropdown-submenu.open > a:hover > i {\n          color: #fff !important; }\n  .page-header .search-form {\n    background: #fff !important; }\n    .page-header .search-form .input-group {\n      background: #fff !important; }\n      .page-header .search-form .input-group .form-control {\n        background: #fff !important; }\n      .page-header .search-form .input-group .input-group-btn .btn.submit {\n        background: #32c5d2; }\n        .page-header .search-form .input-group .input-group-btn .btn.submit i {\n          color: #fff !important; }\n        .page-header .search-form .input-group .input-group-btn .btn.submit:hover, .page-header .search-form .input-group .input-group-btn .btn.submit:focus, .page-header .search-form .input-group .input-group-btn .btn.submit:active, .page-header .search-form .input-group .input-group-btn .btn.submit.active {\n          background: #27a9b4; } }\n\n@media (max-width: 480px) {\n  /* 480px */\n  .page-header {\n    /* Top menu */ }\n    .page-header .top-menu {\n      background-color: #fff; }\n      .page-header-fixed-mobile .page-header .top-menu {\n        background-color: #fff; }\n      .page-header .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n        background-color: white; }\n        .page-header-fixed-mobile .page-header .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle {\n          background: none; }\n        .page-header .top-menu .navbar-nav > li.dropdown-user .dropdown-toggle:hover {\n          background-color: #fff; } }\n\n/****\n CSS3 Spinner Bar\n****/\n.page-spinner-bar > div,\n.block-spinner-bar > div {\n  background: #47cbd7; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout3/scripts/demo.js",
    "content": "/**\nDemo script to handle the theme demo\n**/\n\nvar Demo = function () {\n\n    // Handle Theme Settings\n    var handleTheme = function () {\n\n        var panel = $('.theme-panel');\n\n        if ($('.page-head > .container-fluid').size() === 1) {\n            $('.theme-setting-layout', panel).val(\"fluid\");\n        } else {\n            $('.theme-setting-layout', panel).val(\"boxed\");\n        }\n\n        if ($('.top-menu li.dropdown.dropdown-dark').size() > 0) {\n            $('.theme-setting-top-menu-style', panel).val(\"dark\");\n        } else {\n            $('.theme-setting-top-menu-style', panel).val(\"light\");\n        }\n\n        if ($('body').hasClass(\"page-header-top-fixed\")) {\n            $('.theme-setting-top-menu-mode', panel).val(\"fixed\");\n        } else {\n            $('.theme-setting-top-menu-mode', panel).val(\"not-fixed\");\n        }\n\n        if ($('.hor-menu.hor-menu-light').size() > 0) {\n            $('.theme-setting-mega-menu-style', panel).val(\"light\");\n        } else {\n            $('.theme-setting-mega-menu-style', panel).val(\"dark\");\n        }\n\n        if ($('body').hasClass(\"page-header-menu-fixed\")) {\n            $('.theme-setting-mega-menu-mode', panel).val(\"fixed\");\n        } else {\n            $('.theme-setting-mega-menu-mode', panel).val(\"not-fixed\");\n        }\n\n        //handle theme layout\n        var resetLayout = function () {\n            $(\"body\").\n            removeClass(\"page-header-top-fixed\").\n            removeClass(\"page-header-menu-fixed\");\n\n            $('.page-header-top > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-header-menu > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-head > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-content > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-prefooter > .container-fluid').removeClass(\"container-fluid\").addClass('container');\n            $('.page-footer > .container-fluid').removeClass(\"container-fluid\").addClass('container');              \n        };\n\n        var setLayout = function () {\n\n            var layoutMode = $('.theme-setting-layout', panel).val();\n            var headerTopMenuStyle = $('.theme-setting-top-menu-style', panel).val();\n            var headerTopMenuMode = $('.theme-setting-top-menu-mode', panel).val();\n            var headerMegaMenuStyle = $('.theme-setting-mega-menu-style', panel).val();\n            var headerMegaMenuMode = $('.theme-setting-mega-menu-mode', panel).val();\n            \n            resetLayout(); // reset layout to default state\n\n            if (layoutMode === \"fluid\") {\n                $('.page-header-top > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-header-menu > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-head > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-content > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-prefooter > .container').removeClass(\"container\").addClass('container-fluid');\n                $('.page-footer > .container').removeClass(\"container\").addClass('container-fluid');\n\n                //App.runResizeHandlers();\n            }\n\n            if (headerTopMenuStyle === 'dark') {\n                $(\".top-menu > .navbar-nav > li.dropdown\").addClass(\"dropdown-dark\");\n            } else {\n                $(\".top-menu > .navbar-nav > li.dropdown\").removeClass(\"dropdown-dark\");\n            }\n\n            if (headerTopMenuMode === 'fixed') {\n                $(\"body\").addClass(\"page-header-top-fixed\");\n            } else {\n                $(\"body\").removeClass(\"page-header-top-fixed\");\n            }\n\n            if (headerMegaMenuStyle === 'light') {\n                $(\".hor-menu\").addClass(\"hor-menu-light\");\n            } else {\n                $(\".hor-menu\").removeClass(\"hor-menu-light\");\n            }\n\n            if (headerMegaMenuMode === 'fixed') {\n                $(\"body\").addClass(\"page-header-menu-fixed\");\n            } else {\n                $(\"body\").removeClass(\"page-header-menu-fixed\");\n            }          \n        };\n\n        // handle theme colors\n        var setColor = function (color) {\n            var color_ = (App.isRTL() ? color + '-rtl' : color);\n            $('#style_color').attr(\"href\", Layout.getLayoutCssPath() + 'themes/' + color_ + \".min.css\");\n            $('.page-logo img').attr(\"src\", Layout.getLayoutImgPath() + 'logo-' + color + '.png');\n        };\n\n        $('.theme-colors > li', panel).click(function () {\n            var color = $(this).attr(\"data-theme\");\n            setColor(color);\n            $('.theme-colors > li', panel).removeClass(\"active\");\n            $(this).addClass(\"active\");\n        });\n\n        $('.theme-setting-top-menu-mode', panel).change(function(){\n            var headerTopMenuMode = $('.theme-setting-top-menu-mode', panel).val();\n            var headerMegaMenuMode = $('.theme-setting-mega-menu-mode', panel).val();            \n\n            if (headerMegaMenuMode === \"fixed\") {\n                alert(\"The top menu and mega menu can not be fixed at the same time.\");\n                $('.theme-setting-mega-menu-mode', panel).val(\"not-fixed\");   \n                headerTopMenuMode = 'not-fixed';\n            }                \n        });\n\n        $('.theme-setting-mega-menu-mode', panel).change(function(){\n            var headerTopMenuMode = $('.theme-setting-top-menu-mode', panel).val();\n            var headerMegaMenuMode = $('.theme-setting-mega-menu-mode', panel).val();            \n\n            if (headerTopMenuMode === \"fixed\") {\n                alert(\"The top menu and mega menu can not be fixed at the same time.\");\n                $('.theme-setting-top-menu-mode', panel).val(\"not-fixed\");   \n                headerTopMenuMode = 'not-fixed';\n            }                \n        });\n\n        $('.theme-setting', panel).change(setLayout);\n    };\n\n    // handle theme style\n    var setThemeStyle = function(style) {\n        var file = (style === 'rounded' ? 'components-rounded' : 'components');\n        file = (App.isRTL() ? file + '-rtl' : file);\n\n        $('#style_components').attr(\"href\", App.getGlobalCssPath() + file + \".min.css\");\n\n        if (typeof Cookies !== \"undefined\") {\n            Cookies.set('layout-style-option', style);\n        }\n    };\n\n    return {\n\n        //main function to initiate the theme\n        init: function() {\n            // handles style customer tool\n            handleTheme();\n\n            // handle layout style change\n            $('.theme-panel .theme-setting-style').change(function() {\n                 setThemeStyle($(this).val());\n            });\n\n            // set layout style from cookie\n            if (typeof Cookies !== \"undefined\" && Cookies.get('layout-style-option') === 'rounded') {\n                setThemeStyle(Cookies.get('layout-style-option'));\n                $('.theme-panel .layout-style-option').val(Cookies.get('layout-style-option'));\n            }             \n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {   \n        Demo.init();\n    });\n} "
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/layouts/layout3/scripts/layout.js",
    "content": "/**\nCore script to handle the entire theme and core functions\n**/\n\nvar Layout = function () {\n\n    var layoutImgPath = 'layouts/layout3/img/';\n\n    var layoutCssPath = 'layouts/layout3/css/';\n\n    var resBreakpointMd = App.getResponsiveBreakpoint('md');\n\n    //* BEGIN:CORE HANDLERS *//\n    // this function handles responsive layout on screen size resize or mobile device rotate.\n\n    // Handles header\n    var handleHeader = function () {        \n        // handle search box expand/collapse        \n        $('.page-header').on('click', '.search-form', function (e) {\n            $(this).addClass(\"open\");\n            $(this).find('.form-control').focus();\n\n            $('.page-header .search-form .form-control').on('blur', function (e) {\n                $(this).closest('.search-form').removeClass(\"open\");\n                $(this).unbind(\"blur\");\n            });\n        });\n\n        // handle hor menu search form on enter press\n        $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function (e) {\n            if (e.which == 13) {\n                $(this).closest('.search-form').submit();\n                return false;\n            }\n        });\n\n        // handle header search button click\n        $('.page-header').on('mousedown', '.search-form.open .submit', function (e) {\n            e.preventDefault();\n            e.stopPropagation();\n            $(this).closest('.search-form').submit();\n        });\n\n        // handle scrolling to top on responsive menu toggler click when header is fixed for mobile view\n        $('body').on('click', '.page-header-top-fixed .page-header-top .menu-toggler', function(){\n            App.scrollTop();\n        });     \n    };\n\n    // Handles main menu\n    var handleMainMenu = function () {\n\n        // handle menu toggler icon click\n        $(\".page-header .menu-toggler\").on(\"click\", function(event) {\n            if (App.getViewPort().width < resBreakpointMd) {\n                var menu = $(\".page-header .page-header-menu\");\n                if (menu.is(\":visible\")) {\n                    menu.slideUp(300);\n                } else {  \n                    menu.slideDown(300);\n                }\n\n                if ($('body').hasClass('page-header-top-fixed')) {\n                    App.scrollTop();\n                }\n            }\n        });\n\n        // handle sub dropdown menu click for mobile devices only\n        $(\".hor-menu .menu-dropdown > a, .hor-menu .dropdown-submenu > a\").on(\"click\", function(e) {                \n            if (App.getViewPort().width < resBreakpointMd) {\n                if ($(this).next().hasClass('dropdown-menu')) {\n                    e.stopPropagation();\n                    if ($(this).parent().hasClass(\"opened\")) {\n                        $(this).parent().removeClass(\"opened\");\n                    } else {\n                        $(this).parent().addClass(\"opened\");\n                    }\n                }\n            }\n        });\n\n        // close main menu on final link click for mobile mode\n        $(\".hor-menu li > a\").on(\"click\", function(e) {\n            if (App.getViewPort().width < resBreakpointMd) {\n                if (!$(this).parent('li').hasClass('classic-menu-dropdown') && !$(this).parent('li').hasClass('mega-menu-dropdown')\n                    && !$(this).parent('li').hasClass('dropdown-submenu')) {\n                    $(\".page-header .page-header-menu\").slideUp(300);\n                     App.scrollTop();\n                }\n            }\n        });\n\n        // hold mega menu content open on click/tap. \n        $(document).on('click', '.mega-menu-dropdown .dropdown-menu, .classic-menu-dropdown .dropdown-menu', function (e) {\n            e.stopPropagation();\n        });\n\n        // handle fixed mega menu(minimized) \n        $(window).scroll(function() {                \n            var offset = 75;\n            if ($('body').hasClass('page-header-menu-fixed')) {\n                if ($(window).scrollTop() > offset){\n                    $(\".page-header-menu\").addClass(\"fixed\");\n                } else {\n                    $(\".page-header-menu\").removeClass(\"fixed\");  \n                }\n            }\n\n            if ($('body').hasClass('page-header-top-fixed')) {\n                if ($(window).scrollTop() > offset){\n                    $(\".page-header-top\").addClass(\"fixed\");\n                } else {\n                    $(\".page-header-top\").removeClass(\"fixed\");  \n                }\n            }\n        });\n    };\n\n    // Handle sidebar menu links\n    var handleMainMenuActiveLink = function(mode, el, $state) {\n        var url = encodeURI(location.hash).toLowerCase();    \n\n        var menu = $('.hor-menu');\n\n        if (mode === 'click' || mode === 'set') {\n            el = $(el);\n        } else if (mode === 'match') {\n            menu.find(\"li > a\").each(function() {\n                var state = $(this).attr('ui-sref');\n                if ($state && state) {\n                    if ($state.is(state)) {\n                        el = $(this);\n                        return;\n                    }\n                } else {\n                    var path = $(this).attr('href');\n                    if (path) {\n                        // url match condition         \n                        path = path.toLowerCase();\n                        if (path.length > 1 && url.substr(1, path.length - 1) == path.substr(1)) {\n                            el = $(this);\n                            return;\n                        }\n                    }\n                }\n            });\n        }\n\n        if (!el || el.size() == 0) {\n            return;\n        }\n\n        if (el.attr('href') == 'javascript:;' ||\n            el.attr('ui-sref') == 'javascript:;' ||\n            el.attr('href') == '#' ||\n            el.attr('ui-sref') == '#'\n            ) {\n            return;\n        }      \n\n        // disable active states\n        menu.find('li.active').removeClass('active');\n        menu.find('li > a > .selected').remove();\n        menu.find('li.open').removeClass('open');\n\n        el.parents('li').each(function () {\n            $(this).addClass('active');\n\n            if ($(this).parent('ul.navbar-nav').size() === 1) {\n                $(this).find('> a').append('<span class=\"selected\"></span>');\n            }\n        });\n    };\n\n    // Handles main menu on window resize\n    var handleMainMenuOnResize = function() {\n        // handle hover dropdown menu for desktop devices only\n        var width = App.getViewPort().width;\n        var menu = $(\".page-header-menu\");\n            \n        if (width >= resBreakpointMd) { \n            $(\".page-header-menu\").css(\"display\", \"block\");\n        } else if (width < resBreakpointMd) {\n            $(\".page-header-menu\").css(\"display\", \"none\"); \n        } \n    };\n\n    var handleContentHeight = function() {\n        return;\n        var height;\n\n        if ($('body').height() < App.getViewPort().height) {            \n            height = App.getViewPort().height -\n                $('.page-header').outerHeight() - \n                ($('.page-container').outerHeight() - $('.page-content').outerHeight()) -\n                $('.page-prefooter').outerHeight() - \n                $('.page-footer').outerHeight();\n\n            $('.page-content').css('min-height', height);\n        }\n    };\n\n    // Handles the go to top button at the footer\n    var handleGoTop = function () {\n        var offset = 100;\n        var duration = 500;\n\n        if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {  // ios supported\n            $(window).bind(\"touchend touchcancel touchleave\", function(e){\n               if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        } else {  // general \n            $(window).scroll(function() {\n                if ($(this).scrollTop() > offset) {\n                    $('.scroll-to-top').fadeIn(duration);\n                } else {\n                    $('.scroll-to-top').fadeOut(duration);\n                }\n            });\n        }\n        \n        $('.scroll-to-top').click(function(e) {\n            e.preventDefault();\n            $('html, body').animate({scrollTop: 0}, duration);\n            return false;\n        });\n    };\n\n    //* END:CORE HANDLERS *//\n\n    return {\n        \n        // Main init methods to initialize the layout\n        // IMPORTANT!!!: Do not modify the core handlers call order.\n\n        initHeader: function($state) {\n            handleHeader(); // handles horizontal menu    \n            handleMainMenu(); // handles menu toggle for mobile\n            App.addResizeHandler(handleMainMenuOnResize); // handle main menu on window resize\n\n            if (App.isAngularJsApp()) {      \n                handleMainMenuActiveLink('match', null, $state); // init sidebar active links \n            }\n        },\n\n        initContent: function() {\n            handleContentHeight(); // handles content height \n        },\n\n        initFooter: function() {\n            handleGoTop(); //handles scroll to top functionality in the footer\n        },\n\n        init: function () {            \n            this.initHeader();\n            this.initContent();\n            this.initFooter();\n        },\n\n        setMainMenuActiveLink: function(mode, el) {\n            handleMainMenuActiveLink(mode, el);\n        },\n\n        setAngularJsMainMenuActiveLink: function(mode, el, $state) {\n            handleMainMenuActiveLink(mode, el, $state);\n        },\n\n        closeMainMenu: function() {\n            $('.hor-menu').find('li.open').removeClass('open');\n\n            if (App.getViewPort().width < resBreakpointMd && $('.page-header-menu').is(\":visible\")) { // close the menu on mobile view while laoding a page \n                $('.page-header .menu-toggler').click();\n            }\n        },\n\n        getLayoutImgPath: function() {\n            return App.getAssetsPath() + layoutImgPath;\n        },\n\n        getLayoutCssPath: function() {\n            return App.getAssetsPath() + layoutCssPath;\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {   \n        Layout.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/about.css",
    "content": "/* Cubic Bezier Transition */\n/***\nAnout Us Page\n***/\n/* BEGIN HEADER */\n.about-header {\n  height: 500px;\n  background-image: url(\"../media/bg/5.jpg\");\n  background-position: center;\n  text-align: center;\n  margin: 0 -20px; }\n\n.about-header h1 {\n  color: #fff;\n  font-size: 55px;\n  font-weight: 600;\n  margin-top: 130px;\n  text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.2); }\n\n.about-header h2 {\n  color: #fff;\n  font-size: 22px;\n  font-weight: 400;\n  letter-spacing: 1px;\n  text-transform: uppercase;\n  margin-top: 30px;\n  margin-bottom: 40px; }\n\n/* END HEADER */\n/* BEGIN CARD */\n.card-icon {\n  width: 100%;\n  text-align: center;\n  overflow: hidden; }\n\n.card-icon i {\n  font-size: 50px;\n  border: 1px solid #ecf0f4;\n  -webkit-border-radius: 50%;\n  -moz-border-radius: 50%;\n  border-radius: 50%;\n  padding: 47px 30px;\n  margin: 30px 0 30px 0; }\n\n.card-title {\n  text-align: center; }\n\n.card-title span {\n  font-size: 18px;\n  font-weight: 600;\n  color: #373d43; }\n\n.card-desc {\n  text-align: center;\n  margin-top: 20px;\n  margin-bottom: 30px; }\n\n.card-desc span {\n  font-size: 14px;\n  font-weight: 400;\n  color: #808a94; }\n\n/* END CARD */\n/* BEGIN LINKS BLOCK */\n.about-links-cont {\n  background-color: #fff;\n  margin: 0 -20px; }\n\n.about-links-cont .about-links {\n  padding: 70px 0 70px 70px; }\n\n.about-links-cont .about-image {\n  padding-left: 110px; }\n\n.about-links-item h4 {\n  font-size: 18px;\n  font-weight: 600;\n  color: #373d43; }\n\n.about-links-item ul {\n  margin: 0;\n  padding: 0;\n  list-style-type: none; }\n\n.about-links-item ul li {\n  padding-top: 5px; }\n\n.about-links-item ul li a {\n  font-size: 14px;\n  font-weight: 400;\n  color: #4a8fba; }\n\n.about-image {\n  background-repeat: no-repeat;\n  background-size: cover; }\n\n/* END LINKS BLOCK */\n/* BEGIN MEMBERS SUCCESS STORIES */\n.stories-header {\n  text-align: center; }\n\n.stories-header h1 {\n  color: #373d43;\n  font-size: 35px;\n  font-weight: 600; }\n\n.stories-header h2 {\n  color: #808a94;\n  font-size: 18px;\n  font-weight: 400;\n  letter-spacing: 1px;\n  text-transform: uppercase;\n  margin-top: 20px; }\n\n.stories-cont .photo {\n  width: 100%; }\n\n.stories-cont .photo img {\n  margin: 30px auto;\n  width: 130px;\n  height: 130px;\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important; }\n\n.stories-cont .title {\n  text-align: center; }\n\n.stories-cont .title span {\n  font-size: 18px;\n  font-weight: 600;\n  color: #373d43; }\n\n.stories-cont .desc {\n  text-align: center;\n  margin-top: 20px;\n  margin-bottom: 30px; }\n\n.stories-cont .desc span {\n  font-size: 14px;\n  font-weight: 400;\n  color: #808a94; }\n\n.stories-footer {\n  text-align: center; }\n\n/* END MEMBERS SUCCESS STORIES */\n/* BEGIN ABOUt AND VIDEO */\n.about-text {\n  height: 500px;\n  padding: 0 !important; }\n  .about-text > h4 {\n    background-color: #d9534f;\n    font-size: 24px;\n    font-weight: 600;\n    color: #fff;\n    padding: 1em 20px;\n    margin: 0; }\n    .about-text > h4 > i {\n      font-size: 24px !important;\n      color: #fff; }\n  .about-text > p {\n    color: #808a94; }\n  .about-text ul,\n  .about-text > p,\n  .about-text .about-quote {\n    padding-left: 20px;\n    padding-right: 20px; }\n  .about-text li {\n    margin-bottom: 0.5em; }\n  .about-text .about-quote > h3 {\n    border-left: 3px solid;\n    border-color: #ccc;\n    padding-left: 1em;\n    font-style: italic;\n    line-height: 1.3em; }\n  .about-text .about-quote > .about-author {\n    text-align: right; }\n\n.about-image {\n  height: 545px; }\n\n.about-links-item {\n  margin-bottom: 2em; }\n\n/* END ABOUt AND VIDEO */\n/* BEGIN RESPONSIVE */\n@media (max-width: 600px) {\n  .about-text {\n    height: auto;\n    padding-bottom: 1.5em !important; }\n  .about-image {\n    margin: 0 -20px; } }\n\n/* END RESPONSIVE */\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/blog.css",
    "content": "@charset \"UTF-8\";\n/* Cubic Bezier Transition */\n/***\nBlog Page\n***/\n.blog-page .bordered {\n  border: 1px solid;\n  border-color: #e7ecf1; }\n\n.blog-page .blog-container {\n  margin-bottom: 30px; }\n\n.blog-page .blog-title > a {\n  color: #4e5a64;\n  font-weight: 600; }\n  .blog-page .blog-title > a:hover {\n    color: #3598DC;\n    text-decoration: none; }\n\n.blog-content-1 .blog-img-thumb {\n  overflow: hidden;\n  position: relative; }\n  .blog-content-1 .blog-img-thumb img {\n    width: 100%;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    position: absolute;\n    margin: auto; }\n\n.blog-content-1 .blog-post-content {\n  padding: 20px 30px 30px 30px;\n  background-color: #fff; }\n  .blog-content-1 .blog-post-content > .blog-post-title {\n    margin: 0 0 30px 0; }\n    .blog-content-1 .blog-post-content > .blog-post-title > a {\n      font-size: 20px; }\n  .blog-content-1 .blog-post-content > .blog-post-desc {\n    color: #a0a9b4;\n    font-size: 14px;\n    margin: 15px 0; }\n  .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta {\n    display: inline-block;\n    margin-right: 10px; }\n    .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta > a {\n      color: #9aa5b2;\n      font-size: 13px;\n      font-weight: 600; }\n      .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta > a:hover {\n        color: #3598DC;\n        text-decoration: none; }\n    .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta > i {\n      margin-right: 5px; }\n    .blog-content-1 .blog-post-content > .blog-post-foot > .blog-post-meta:last-child {\n      margin-right: 0; }\n\n.blog-content-1 .blog-post-lg > .blog-img-thumb {\n  height: 480px; }\n\n.blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-desc {\n  margin-bottom: 30px; }\n\n.blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot {\n  border-top: 1px solid;\n  border-top-color: #f0f1f2;\n  padding-top: 20px;\n  text-align: right; }\n  .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags {\n    text-align: left;\n    float: left;\n    padding: 0; }\n    .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li {\n      list-style: none;\n      display: inline-block;\n      margin-right: 5px; }\n      .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li > a {\n        background-color: #f4f6f8;\n        color: #a0a9b4;\n        font-size: 11px;\n        font-weight: 600;\n        padding: 7px 10px; }\n        .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li > a:hover {\n          background-color: #3598DC;\n          color: #fff;\n          text-decoration: none; }\n      .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags > li:last-child {\n        margin-right: 0; }\n\n.blog-content-1 .blog-post-sm > .blog-img-thumb {\n  height: 200px; }\n\n.blog-content-1 .blog-post-sm > .blog-post-content > .blog-post-title {\n  margin: 0 0 15px 0; }\n\n.blog-content-1 .blog-post-sm > .blog-post-content > .blog-post-foot {\n  border: none; }\n\n.blog-content-1 .blog-quote {\n  background-color: #fff;\n  padding-bottom: 30px; }\n  .blog-content-1 .blog-quote > .blog-quote-label {\n    color: #fff;\n    padding: 30px 40px 80px 40px;\n    font-size: 18px;\n    line-height: 28px; }\n    .blog-content-1 .blog-quote > .blog-quote-label > i {\n      display: block;\n      font-size: 30px;\n      margin-bottom: 15px; }\n  .blog-content-1 .blog-quote > .blog-quote-avatar {\n    width: 110px;\n    height: 110px;\n    border-radius: 50% !important;\n    margin: -55px auto 25px auto;\n    overflow: hidden; }\n    .blog-content-1 .blog-quote > .blog-quote-avatar img {\n      width: 100%; }\n  .blog-content-1 .blog-quote > .blog-quote-author {\n    text-align: center; }\n    .blog-content-1 .blog-quote > .blog-quote-author > .blog-quote-title {\n      font-size: 20px;\n      margin: 0 0 15px 0; }\n    .blog-content-1 .blog-quote > .blog-quote-author > .blog-quote-desc {\n      font-size: 16px;\n      color: #9aa5b2;\n      margin: 0; }\n\n.blog-content-1 .blog-video > .blog-img-thumb {\n  height: 330px; }\n  .blog-content-1 .blog-video > .blog-img-thumb img {\n    margin: 0; }\n\n.blog-content-1 .blog-video > .blog-video-play i {\n  color: #da555b;\n  background-color: rgba(0, 0, 0, 0.64);\n  font-size: 35px;\n  padding: 27px 20px;\n  position: absolute;\n  z-index: 5;\n  margin: -90px 0 0 20px;\n  border-radius: 50%; }\n\n.blog-content-1 .blog-video > .blog-video-content {\n  text-align: center;\n  padding: 30px; }\n  .blog-content-1 .blog-video > .blog-video-content > .blog-video-title {\n    font-size: 20px;\n    margin: 0 0 15px 0; }\n  .blog-content-1 .blog-video > .blog-video-content > .blog-video-desc {\n    font-size: 16px;\n    color: #9aa5b2;\n    margin: 0; }\n\n.blog-content-1 .blog-banner {\n  background-position: center;\n  text-align: center;\n  padding: 100px 0; }\n  .blog-content-1 .blog-banner > .blog-banner-title > a {\n    color: #fff; }\n    .blog-content-1 .blog-banner > .blog-banner-title > a:hover {\n      color: #3598DC; }\n\n.blog-content-2 .blog-single-content {\n  padding: 40px 30px 15px 30px;\n  background-color: #fff; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-title {\n    font-size: 25px;\n    font-weight: 600;\n    color: #4e5a64;\n    margin: 0 0 40px 0;\n    display: inline-block; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date {\n    float: right;\n    font-size: 13px;\n    font-weight: 600;\n    margin-top: 7px; }\n    .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date > i {\n      margin-right: 5px; }\n    .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date > a {\n      color: #9aa5b2; }\n      .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date > a:hover {\n        color: #3598DC;\n        text-decoration: none; }\n  .blog-content-2 .blog-single-content > .blog-single-img {\n    margin: 0 0 35px 0; }\n    .blog-content-2 .blog-single-content > .blog-single-img > img {\n      width: 100%; }\n  .blog-content-2 .blog-single-content > .blog-single-desc > p {\n    margin: 0 0 35px 0;\n    font-size: 16px;\n    color: #7e8691;\n    line-height: 24px; }\n  .blog-content-2 .blog-single-content > .blog-single-foot {\n    border-top: 1px solid;\n    border-bottom: 1px solid;\n    border-color: #f0f1f2;\n    padding: 20px 0 25px 0;\n    margin-bottom: 20px; }\n    .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags {\n      text-align: left;\n      padding: 0;\n      margin: 0; }\n      .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li {\n        list-style: none;\n        display: inline-block;\n        margin-right: 5px; }\n        .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li > a {\n          background-color: #f4f6f8;\n          color: #a0a9b4;\n          font-size: 11px;\n          font-weight: 600;\n          padding: 7px 10px; }\n          .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li > a:hover {\n            background-color: #3598DC;\n            color: #fff;\n            text-decoration: none; }\n        .blog-content-2 .blog-single-content > .blog-single-foot > .blog-post-tags > li:last-child {\n          margin-right: 0; }\n  .blog-content-2 .blog-single-content .blog-comments {\n    display: inline-block;\n    font-size: 14px;\n    font-weight: 400;\n    margin: 6px 10px 3px 0; }\n    .blog-content-2 .blog-single-content .blog-comments .blog-comments-title {\n      font-size: 20px; }\n    .blog-content-2 .blog-single-content .blog-comments .c-comment-list {\n      margin-bottom: 60px; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media {\n        margin: 30px 0; }\n        .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media .media-body > .media:last-child {\n          margin-bottom: 0; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-object {\n        height: 50px;\n        width: 50px;\n        border-radius: 50px !important; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-heading > a {\n        color: #9aa5b2;\n        font-weight: 600; }\n        .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-heading > a:hover {\n          color: #3598DC;\n          text-decoration: none; }\n      .blog-content-2 .blog-single-content .blog-comments .c-comment-list .media-heading > .c-date {\n        font-size: 14px; }\n    .blog-content-2 .blog-single-content .blog-comments i {\n      position: relative;\n      top: 2px; }\n    .blog-content-2 .blog-single-content .blog-comments input:focus,\n    .blog-content-2 .blog-single-content .blog-comments textarea:focus {\n      outline: 0;\n      border: 1px solid #ccc; }\n\n.blog-content-2 .blog-single-sidebar {\n  padding: 40px 30px;\n  background-color: #fff; }\n  .blog-content-2 .blog-single-sidebar .blog-sidebar-title {\n    font-weight: 600;\n    font-size: 14px;\n    color: #4e5a64;\n    letter-spacing: 1px;\n    margin-top: 40px;\n    margin-bottom: 30px; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-search input {\n    font-size: 14px;\n    color: #a0a9b4; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-search input:focus {\n      outline: 0;\n      border: 1px solid #ccc; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul {\n    padding: 0; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li {\n      list-style: none;\n      margin-bottom: 10px;\n      position: relative; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li > a {\n        color: #49a7fa;\n        font-size: 16px;\n        padding-left: 20px;\n        display: block; }\n        .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li > a:hover {\n          text-decoration: none;\n          color: #3598DC; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-recent > ul > li:before {\n        content: \"•\";\n        color: #dae0e5;\n        font-size: 30px;\n        position: absolute;\n        margin-top: -9px; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags {\n    text-align: left;\n    padding: 0;\n    margin: 20px 0 0 0; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li {\n      list-style: none;\n      display: inline-block;\n      margin: 0 5px 20px 0; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li > a {\n        background-color: #f4f6f8;\n        color: #a0a9b4;\n        font-size: 11px;\n        font-weight: 600;\n        padding: 7px 10px; }\n        .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li > a:hover {\n          background-color: #3598DC;\n          color: #fff;\n          text-decoration: none; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-tags .blog-post-tags > li:last-child {\n        margin-right: 0; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul {\n    padding: 0; }\n    .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li {\n      list-style: none;\n      border-bottom: 1px solid;\n      border-color: #f0f1f2;\n      padding: 20px 0; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li > a {\n        color: #49a7fa;\n        font-size: 16px; }\n        .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li > a:hover {\n          text-decoration: none;\n          color: #3598DC; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li:first-child {\n        padding-top: 0; }\n      .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-links > ul > li:last-child {\n        border: none; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-ui .ui-margin {\n    margin: 0; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-ui .ui-padding {\n    padding: 0 5px 5px 0; }\n  .blog-content-2 .blog-single-sidebar > .blog-single-sidebar-ui img {\n    width: 100%; }\n\n@media (max-width: 991px) {\n  .blog-content-1 .blog-post-lg > .blog-img-thumb {\n    height: 330px; }\n  .blog-content-1 .blog-post-sm > .blog-img-thumb {\n    height: 170px; }\n  .blog-content-1 .blog-video > .blog-img-thumb {\n    height: 301px; }\n    .blog-content-1 .blog-video > .blog-img-thumb img {\n      height: auto;\n      width: 100%; } }\n\n@media (max-width: 480px) {\n  .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot {\n    text-align: left; }\n    .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-tags {\n      float: none; }\n    .blog-content-1 .blog-post-lg > .blog-post-content > .blog-post-foot > .blog-post-meta {\n      margin-right: 10px;\n      margin-top: 10px; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-title {\n    margin-bottom: 0px; }\n  .blog-content-2 .blog-single-content > .blog-single-head > .blog-single-head-date {\n    float: none;\n    margin-bottom: 40px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/coming-soon.css",
    "content": "/* Cubic Bezier Transition */\n/***\nComing Soon Page\n***/\nbody {\n  background-color: #ddd;\n  padding: 0;\n  margin: 0; }\n\n.coming-soon-header {\n  padding: 20px;\n  margin-top: 80px; }\n\n.coming-soon-content {\n  padding: 20px;\n  margin-top: 10px; }\n\n.coming-soon-countdown {\n  padding: 20px; }\n\n.coming-soon-content h1,\n.coming-soon-content p {\n  color: #fff; }\n\n.coming-soon-content h1 {\n  font-size: 42px;\n  line-height: 50px;\n  margin-bottom: 15px;\n  font-weight: 300; }\n\n.coming-soon-content p {\n  font-size: 14px; }\n\n.coming-soon-footer {\n  text-align: left !important;\n  font-size: 13px;\n  color: #fefefe;\n  padding: 30px; }\n\n/*Countdown*/\n#defaultCountdown {\n  width: 100%;\n  margin: 60px 0;\n  overflow: hidden; }\n\n#defaultCountdown span.countdown_row {\n  overflow: hidden; }\n\n#defaultCountdown span.countdown_row span {\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 20px;\n  margin-right: 2px; }\n\n#defaultCountdown span.countdown_row > span {\n  float: left; }\n\n#defaultCountdown span.countdown_section {\n  color: #fff;\n  padding: 7px 15px !important;\n  margin-bottom: 2px;\n  font-weight: 300;\n  background: url(../img/bg-white.png) repeat;\n  text-align: center; }\n\n#defaultCountdown span.countdown_amount {\n  display: inline-block;\n  font-size: 38px !important;\n  padding: 15px !important;\n  font-weight: 300; }\n\n/*Responsive*/\n@media (max-width: 1024px) {\n  #defaultCountdown span.countdown_amount {\n    padding: 10px; } }\n\n@media (max-width: 767px) {\n  .coming-soon-header,\n  .coming-soon-countdown,\n  .coming-soon-content,\n  .coming-soon-footer {\n    margin-top: 0px;\n    padding: 10px; } }\n\n@media (max-width: 320px) {\n  .coming-soon-content .btn-subscribe span {\n    display: none; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/contact.css",
    "content": ".c-content-contact-1 {\n  width: 100%;\n  position: relative;\n  margin-bottom: 70px; }\n  .c-content-contact-1:before {\n    background-color: rgba(255, 255, 255, 0.5); }\n  .c-content-contact-1:after {\n    background-color: rgba(255, 255, 255, 0.5); }\n  .c-content-contact-1 > .row .c-body {\n    position: relative;\n    z-index: 100;\n    background: #ffffff;\n    margin: 40px 40px 40px 0;\n    padding: 60px 40px; }\n    .c-content-contact-1 > .row .c-body > .c-section {\n      margin-bottom: 15px;\n      text-align: right; }\n      .c-content-contact-1 > .row .c-body > .c-section > .c-content-label {\n        display: inline;\n        padding: 3px 7px;\n        color: #fff; }\n      .c-content-contact-1 > .row .c-body > .c-section > h3 {\n        font-size: 26px;\n        margin: 0 0 30px 0;\n        text-transform: uppercase; }\n      .c-content-contact-1 > .row .c-body > .c-section > p {\n        font-size: 16px;\n        line-height: 24px;\n        color: #7f8c97;\n        font-weight: 300; }\n      .c-content-contact-1 > .row .c-body > .c-section > p,\n      .c-content-contact-1 > .row .c-body > .c-section > .c-content-iconlist-1 {\n        margin-top: 20px; }\n        .c-content-contact-1 > .row .c-body > .c-section > p > li,\n        .c-content-contact-1 > .row .c-body > .c-section > .c-content-iconlist-1 > li {\n          list-style: none;\n          display: inline-block;\n          font-size: 24px;\n          padding: 0 10px 5px 10px;\n          background-color: #eee; }\n\n.c-content-contact-1-gmap {\n  display: block;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  position: absolute;\n  width: 100%; }\n\n.c-content-feedback-1 {\n  width: 100%; }\n  .c-content-feedback-1 > .row > div .c-content-title-1 > h3 {\n    margin-top: 10px;\n    margin-bottom: 20px; }\n  .c-content-feedback-1 > .row > div .c-content-title-1 > .c-line-left {\n    margin-bottom: 30px;\n    height: 3px;\n    width: 40px; }\n  .c-content-feedback-1 > .row > div .c-content-title-1 > p {\n    margin-bottom: 30px;\n    font-weight: 300; }\n  .c-content-feedback-1 > .row > div > .c-container {\n    background-size: auto;\n    padding: 30px;\n    margin: 0 0 30px 0; }\n    .c-content-feedback-1 > .row > div > .c-container > .c-inverse > h3 {\n      color: #ffffff;\n      margin-top: 10px; }\n    .c-content-feedback-1 > .row > div > .c-container > .c-inverse > .c-line-left {\n      background-color: #ffffff; }\n    .c-content-feedback-1 > .row > div > .c-container > .c-inverse > p {\n      color: #ffffff; }\n    .c-content-feedback-1 > .row > div > .c-container:last-child {\n      margin-bottom: 0; }\n      .c-content-feedback-1 > .row > div > .c-container:last-child p {\n        margin-bottom: 0; }\n  .c-content-feedback-1 > .row > div form {\n    margin-bottom: 20px; }\n    .c-content-feedback-1 > .row > div form .input-group {\n      width: 340px; }\n  .c-content-feedback-1 .input-group {\n    border: 0; }\n    .c-content-feedback-1 .input-group .input-group-addon,\n    .c-content-feedback-1 .input-group .btn {\n      border: 0; }\n\n@media (max-width: 1024px) {\n  .c-content-feedback-1 > .row > div form .input-group {\n    width: 100%; } }\n\n@media (max-width: 991px) {\n  /* 991px */\n  .c-content-contact-1-gmap {\n    display: block;\n    position: static;\n    width: 100%;\n    height: 300px !important; }\n  .c-content-contact-1 > .row > div {\n    width: 100%; }\n    .c-content-contact-1 > .row > div .c-body {\n      position: static;\n      display: block;\n      padding: 30px 20px 10px 20px;\n      background: #fafafa;\n      margin: 0;\n      text-align: left; }\n  .c-content-feedback-1 > .row > div > .c-container {\n    margin-right: 0;\n    margin-bottom: 40px; }\n  .c-content-feedback-1 > .row > div > .c-contact {\n    padding: 40px 30px 0 30px;\n    margin: 0; }\n  .c-content-feedback-1.c-option-2 > .row > div > .c-contact {\n    padding: 30px;\n    margin-top: 40px;\n    background-color: #ffffff; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/error.css",
    "content": "/* Cubic Bezier Transition */\n/***\nError Pages\n***/\n/* 404 page option #1 */\n.page-404 {\n  text-align: center; }\n\n.page-404 .number {\n  position: relative;\n  top: 35px;\n  display: inline-block;\n  letter-spacing: -10px;\n  margin-top: 0px;\n  margin-bottom: 10px;\n  line-height: 128px;\n  font-size: 128px;\n  font-weight: 300;\n  color: #7bbbd6;\n  text-align: right; }\n\n.page-404 .details {\n  margin-left: 40px;\n  display: inline-block;\n  padding-top: 0px;\n  text-align: left; }\n\n/* 500 page option #1 */\n.page-500 {\n  text-align: center; }\n\n.page-500 .number {\n  display: inline-block;\n  letter-spacing: -10px;\n  line-height: 128px;\n  font-size: 128px;\n  font-weight: 300;\n  color: #ec8c8c;\n  text-align: right; }\n\n.page-500 .details {\n  margin-left: 40px;\n  display: inline-block;\n  text-align: left; }\n\n/* 404 page option #2*/\n.page-404-full-page {\n  overflow-x: hidden;\n  padding: 20px;\n  margin-bottom: 20px;\n  background-color: #fafafa !important; }\n\n.page-404-full-page .details input {\n  background-color: #ffffff; }\n\n.page-404-full-page .page-404 {\n  margin-top: 100px; }\n\n/* 500 page option #2*/\n.page-500-full-page {\n  overflow-x: hidden;\n  padding: 20px;\n  background-color: #fafafa !important; }\n\n.page-500-full-page .details input {\n  background-color: #ffffff; }\n\n.page-500-full-page .page-500 {\n  margin-top: 100px; }\n\n/* 404 page option #3*/\n.page-404-3 {\n  background: #000 !important; }\n\n.page-404-3 .page-inner img {\n  right: 0;\n  bottom: 0;\n  z-index: -1;\n  position: absolute; }\n\n.page-404-3 .error-404 {\n  color: #fff;\n  text-align: left;\n  padding: 70px 20px 0; }\n\n.page-404-3 h1 {\n  color: #fff;\n  font-size: 130px;\n  line-height: 160px; }\n\n.page-404-3 h2 {\n  color: #fff;\n  font-size: 30px;\n  margin-bottom: 30px; }\n\n.page-404-3 p {\n  color: #fff;\n  font-size: 16px; }\n\n@media (max-width: 480px) {\n  .page-404 .number,\n  .page-500 .number,\n  .page-404 .details,\n  .page-500 .details {\n    text-align: center;\n    margin-left: 0px; }\n  .page-404-full-page .page-404 {\n    margin-top: 30px; }\n  .page-404-3 .error-404 {\n    text-align: left;\n    padding-top: 10px; }\n  .page-404-3 .page-inner img {\n    right: 0;\n    bottom: 0;\n    z-index: -1;\n    position: fixed; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/faq.css",
    "content": "/* Cubic Bezier Transition */\n/***\nFAQ page\n***/\n.faq-page .bordered {\n  border: 1px solid;\n  border-color: #e7ecf1; }\n\n.faq-page .search-bar {\n  padding: 20px;\n  margin-bottom: 30px;\n  background-color: #fff; }\n  .faq-page .search-bar .input-group {\n    width: 100%; }\n    .faq-page .search-bar .input-group > input {\n      border: none;\n      background-color: #f3f6f9;\n      color: #a0a9b4;\n      height: 55px; }\n\n.faq-content-1 .faq-section {\n  background-color: #fff;\n  padding: 40px 30px 30px 30px;\n  margin-bottom: 30px; }\n  .faq-content-1 .faq-section > .faq-title {\n    margin: 0 0 20px 0;\n    font-size: 14px;\n    font-weight: 600;\n    letter-spacing: 1px; }\n  .faq-content-1 .faq-section .panel-group {\n    margin-bottom: 0; }\n  .faq-content-1 .faq-section > .faq-content .panel {\n    border: none; }\n  .faq-content-1 .faq-section > .faq-content .panel-heading {\n    background-color: transparent;\n    margin-top: 15px; }\n    .faq-content-1 .faq-section > .faq-content .panel-heading i {\n      font-size: 10px;\n      color: #dae0e5;\n      margin-right: 10px;\n      margin-top: 4px;\n      float: left; }\n    .faq-content-1 .faq-section > .faq-content .panel-heading .accordion-toggle {\n      padding-left: 0;\n      padding-right: 0;\n      font-size: 16px;\n      font-weight: 600;\n      color: #5c646a;\n      padding: 0 0 10px 20px;\n      line-height: 22px; }\n      .faq-content-1 .faq-section > .faq-content .panel-heading .accordion-toggle:hover {\n        text-decoration: none;\n        color: #3598DC; }\n  .faq-content-1 .faq-section > .faq-content .panel-body {\n    border: none;\n    background-color: #f3f6f9;\n    margin-left: 20px; }\n    .faq-content-1 .faq-section > .faq-content .panel-body > p {\n      color: #6a757e;\n      font-size: 14px;\n      line-height: 22px; }\n      .faq-content-1 .faq-section > .faq-content .panel-body > p:first-child {\n        margin-top: 0; }\n      .faq-content-1 .faq-section > .faq-content .panel-body > p:last-child {\n        margin-bottom: 0; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/image-crop.css",
    "content": "/* Cubic Bezier Transition */\n/* Apply these styles only when #preview-pane has\n   been placed within the Jcrop widget */\n#preview-pane {\n  display: block;\n  position: absolute;\n  z-index: 2000;\n  right: -200px;\n  padding: 6px;\n  border: 1px rgba(0, 0, 0, 0.4) solid;\n  background-color: white;\n  -webkit-border-radius: 6px;\n  -moz-border-radius: 6px;\n  border-radius: 6px;\n  -webkit-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);\n  -moz-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);\n  box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2); }\n\n@media (max-width: 1024px) {\n  #preview-pane {\n    right: 0; } }\n\n/* The Javascript code will set the aspect ratio of the crop\n   area based on the size of the thumbnail preview,\n   specified here */\n#preview-pane .preview-container {\n  width: 175px;\n  height: 150px;\n  overflow: hidden; }\n\n#demo7 {\n  background-color: #eee;\n  width: 500px;\n  height: 330px;\n  font-size: 24px;\n  font-weight: 300;\n  display: block; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/invoice-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nInvoice page 2\n***/\n.invoice-content-2 {\n  background-color: #fff;\n  padding: 80px 70px; }\n  .invoice-content-2.bordered {\n    border: 1px solid;\n    border-color: #e7ecf1; }\n  .invoice-content-2 .invoice-head {\n    margin-bottom: 50px; }\n    .invoice-content-2 .invoice-head .invoice-logo {\n      text-align: center; }\n      .invoice-content-2 .invoice-head .invoice-logo > img {\n        float: left;\n        margin-right: 45px; }\n      .invoice-content-2 .invoice-head .invoice-logo > h1 {\n        float: left;\n        font-size: 17px;\n        font-weight: 700;\n        color: #39424a;\n        margin-top: 48px; }\n    .invoice-content-2 .invoice-head .company-address {\n      text-align: right;\n      font-size: 14px;\n      color: #7e8691; }\n  .invoice-content-2 .invoice-title {\n    font-size: 12px;\n    font-weight: 600;\n    letter-spacing: 1px;\n    color: #9ea8b7; }\n  .invoice-content-2 .invoice-desc {\n    font-size: 14px;\n    color: #4e5a64;\n    font-weight: 600; }\n    .invoice-content-2 .invoice-desc.inv-address {\n      font-size: 13px;\n      color: #7e8691;\n      font-weight: 400; }\n    .invoice-content-2 .invoice-desc.grand-total {\n      font-size: 16px;\n      font-weight: 700; }\n  .invoice-content-2 .invoice-cust-add {\n    margin-bottom: 50px; }\n  .invoice-content-2 .invoice-body .text-center {\n    text-align: center; }\n  .invoice-content-2 .invoice-body tr:last-child {\n    border-bottom: 1px solid #e7ecf1; }\n  .invoice-content-2 .invoice-body th, .invoice-content-2 .invoice-body td {\n    vertical-align: middle;\n    padding-left: 40px;\n    padding-right: 40px; }\n    .invoice-content-2 .invoice-body th:first-child, .invoice-content-2 .invoice-body td:first-child {\n      padding-left: 0; }\n    .invoice-content-2 .invoice-body th:last-child, .invoice-content-2 .invoice-body td:last-child {\n      padding-right: 0; }\n  .invoice-content-2 .invoice-body h3 {\n    font-size: 14px;\n    font-weight: 600;\n    color: #4e5a64;\n    margin-bottom: 0; }\n  .invoice-content-2 .invoice-body p {\n    font-size: 13px;\n    color: #7e8691; }\n  .invoice-content-2 .print-btn {\n    float: right;\n    font-size: 14px;\n    font-weight: 600;\n    letter-spacing: 1px; }\n\n@media (max-width: 1024px) {\n  .invoice-content-2 .invoice-head .invoice-logo > img {\n    width: 130px;\n    margin-top: 26px; } }\n\n@media (max-width: 991px) {\n  .invoice-content-2 {\n    padding: 40px 30px; } }\n\n@media (max-width: 480px) {\n  .invoice-content-2 .invoice-head .invoice-logo > h1 {\n    margin-top: 10px; }\n  .invoice-content-2 .invoice-head .company-address {\n    font-size: 12px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/invoice.css",
    "content": "/* Cubic Bezier Transition */\n/***\nInvoice page\n***/\n.invoice {\n  margin: 0; }\n  .invoice table {\n    margin: 30px 0 30px 0; }\n\n.invoice .invoice-logo {\n  margin-bottom: 20px; }\n\n.invoice .invoice-logo p {\n  padding: 5px 0;\n  font-size: 26px;\n  line-height: 28px;\n  text-align: right; }\n\n.invoice .invoice-logo p span {\n  display: block;\n  font-size: 14px; }\n\n.invoice .invoice-logo-space {\n  margin-bottom: 15px; }\n\n.invoice .invoice-payment strong {\n  margin-right: 5px; }\n\n.invoice .invoice-block {\n  text-align: right; }\n\n.invoice .invoice-block .amounts {\n  margin-top: 20px;\n  font-size: 14px; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/lock-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLock Page\n***/\nbody {\n  background-color: #ddd;\n  padding: 0;\n  margin: 0; }\n\n.page-lock {\n  top: 50%;\n  left: 50%;\n  position: absolute;\n  margin-top: -140px;\n  margin-left: -260px; }\n\n.page-lock .page-logo {\n  margin-bottom: 15px; }\n\n.page-lock .page-body {\n  width: 510px;\n  padding: 15px;\n  background: url(../img/bg-white-lock.png) repeat;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.page-lock .page-body:after,\n.page-lock .page-body:before {\n  display: table;\n  content: \"\";\n  line-height: 0; }\n\n.page-lock .page-body:after {\n  clear: both; }\n\n.page-lock .page-footer-custom {\n  margin-top: 10px;\n  text-align: left !important;\n  font-size: 12px;\n  color: #eaeaea; }\n\n.page-lock img.page-lock-img {\n  float: left;\n  width: 200px;\n  height: auto; }\n\n.page-lock .page-lock-info {\n  padding-left: 10px;\n  float: right;\n  width: 280px; }\n\n.page-lock .page-lock-info h1 {\n  margin-top: -5px;\n  font-weight: 300;\n  color: #fff;\n  font-size: 28px;\n  line-height: 32px;\n  margin-bottom: 5px; }\n\n.page-lock .page-lock-info .email {\n  color: #eee;\n  display: block;\n  font-size: 14px;\n  line-height: 14px;\n  margin-bottom: 10px; }\n\n.page-lock .page-lock-info .locked {\n  color: #333;\n  font-size: 14px;\n  line-height: 14px;\n  font-style: normal; }\n\n.page-lock .page-lock-info form {\n  margin: 28px 0; }\n\n.page-lock .page-lock-info input {\n  background: #fff; }\n\n.page-lock .relogin {\n  margin-top: 10px; }\n\n.page-lock .relogin a {\n  color: #e1e1e1; }\n\n/*Responsive*/\n@media (max-width: 768px) {\n  .page-lock {\n    top: 0px;\n    width: 280px;\n    margin-top: 20px;\n    margin-left: -140px; }\n  .page-lock .page-body {\n    padding: 20px 10px;\n    text-align: center;\n    width: 280px; }\n  .page-lock img.page-lock-img {\n    float: none !important;\n    display: block;\n    margin: 0 auto;\n    text-align: center;\n    margin-bottom: 15px; }\n  .page-lock .page-lock-info {\n    float: none !important;\n    width: 260px;\n    margin: 0 auto; }\n  .page-lock .page-lock-info input {\n    width: 200px !important; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/lock.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLock Page\n***/\nbody {\n  background-color: #465568 !important;\n  padding: 0;\n  margin: 0; }\n\n.page-lock {\n  margin: 90px auto 30px auto;\n  width: 450px; }\n\n.page-lock .page-logo {\n  text-align: center;\n  margin-bottom: 15px; }\n\n.page-lock .page-body {\n  width: 100%;\n  margin-top: 50px;\n  background-color: #3a4554;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.lock-head {\n  display: block;\n  background-color: #323d4b;\n  text-align: center;\n  padding-top: 15px;\n  padding-bottom: 15px;\n  font-size: 22px;\n  font-weight: 400;\n  color: #4db3a5;\n  -webkit-border-radius: 7px 7px 0 0;\n  -moz-border-radius: 7px 7px 0 0;\n  -ms-border-radius: 7px 7px 0 0;\n  -o-border-radius: 7px 7px 0 0;\n  border-radius: 7px 7px 0 0; }\n\n.lock-body {\n  display: block;\n  margin: 35px;\n  overflow: hidden; }\n\n.lock-avatar {\n  margin-top: 15px;\n  height: 110px;\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important; }\n\n.lock-form {\n  padding-left: 40px; }\n\n.lock-form h4 {\n  margin-top: 0px;\n  color: #dbe2ea;\n  font-size: 18px;\n  font-weight: 400; }\n\n.lock-form .form-group {\n  margin-top: 20px; }\n\n.lock-form .form-group .form-control {\n  background-color: #303a48;\n  border: none;\n  width: 220px;\n  height: 40px;\n  color: #697687; }\n\n.lock-form .form-group .form-control::-moz-placeholder {\n  color: #556376;\n  opacity: 1; }\n\n.lock-form .form-group .form-control:-ms-input-placeholder {\n  color: #556376; }\n\n.lock-form .form-group .form-control::-webkit-input-placeholder {\n  color: #556376; }\n\n.lock-form .form-group .form-control:focus {\n  background-color: #2b3542; }\n\n.lock-form .form-actions {\n  margin-top: 20px; }\n\n.lock-form .form-actions .btn {\n  width: 220px;\n  font-weight: 600;\n  padding: 10px; }\n\n.lock-bottom {\n  display: block;\n  background-color: #323d4b;\n  text-align: center;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  -webkit-border-radius: 0 0 7px 7px;\n  -moz-border-radius: 0 0 7px 7px;\n  -ms-border-radius: 0 0 7px 7px;\n  -o-border-radius: 0 0 7px 7px;\n  border-radius: 0 0 7px 7px; }\n\n.lock-bottom a {\n  font-size: 14px;\n  font-weight: 400;\n  color: #638cac; }\n\n.lock-bottom a:hover {\n  color: #7ba2c0; }\n\n.page-footer-custom {\n  text-align: center;\n  padding-top: 40px;\n  color: #5f6e83; }\n\n@media (max-width: 768px) {\n  .page-lock {\n    margin: 30px auto;\n    width: 280px; }\n  .lock-body {\n    margin: 0px; }\n  .page-lock .page-body {\n    margin-top: 30px; }\n  .lock-avatar {\n    margin-top: 20px; }\n  .lock-avatar-block {\n    display: block;\n    width: 100%;\n    text-align: center;\n    margin-bottom: 10px; }\n  .lock-form {\n    padding-left: 20px; }\n  .lock-form h4 {\n    font-size: 16px;\n    text-align: center; }\n  .lock-form .form-group .form-control {\n    padding: 20px 20px;\n    width: 240px; }\n  .lock-form .form-actions .btn {\n    width: 100%;\n    margin-bottom: 20px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/login-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* bg color */\n.login {\n  background-color: #5c97bd; }\n  .login a {\n    color: #edf4f8 !important; }\n\n.login .logo {\n  margin: 0 auto;\n  margin-top: 100px;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  width: 400px;\n  margin: 40px auto 40px auto; }\n\n.login .form-title {\n  margin-bottom: 20px; }\n\n.login .form-title {\n  color: #edf4f8;\n  font-size: 19px;\n  font-weight: 400 !important; }\n\n.login .form-subtitle {\n  color: #c9dce9;\n  font-size: 17px;\n  font-weight: 300 !important;\n  padding-left: 10px; }\n\n.login .content h4 {\n  color: #555; }\n\n.login .content .hint {\n  color: #b7d1e2;\n  padding: 0;\n  font-size: 14px;\n  margin: 15px 0 7px 0; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .form-control {\n  border: none;\n  background-color: #6ba3c8;\n  border: 1px solid #6ba3c8;\n  height: 43px;\n  color: #d9ecf9; }\n  .login .content .form-control:focus, .login .content .form-control:active {\n    border: 1px solid #83b8db; }\n  .login .content .form-control::-moz-placeholder {\n    color: #d9ecf9;\n    opacity: 1; }\n  .login .content .form-control:-ms-input-placeholder {\n    color: #d9ecf9; }\n  .login .content .form-control::-webkit-input-placeholder {\n    color: #d9ecf9; }\n\n.login .content select.form-control {\n  padding-left: 9px;\n  padding-right: 9px; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  clear: both;\n  border: 0px;\n  padding: 0px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n\n.form-actions .forget-password-block {\n  padding-top: 7px; }\n\n.login-options {\n  margin-top: 30px;\n  padding-top: 20px;\n  padding-bottom: 50px;\n  border-top: 1px solid #69a0c4;\n  border-bottom: 1px solid #69a0c4; }\n\n.login-options h4 {\n  margin-top: 8px;\n  font-weight: 600;\n  font-size: 15px;\n  color: #b7d1e2 !important; }\n\n.login .forget-password {\n  font-size: 14px; }\n\n.login-options .social-icons {\n  float: right;\n  padding-top: 3px; }\n\n.login-options .social-icons li a {\n  border-radius: 15px 15px 15px 15px !important;\n  -moz-border-radius: 15px 15px 15px 15px !important;\n  -webkit-border-radius: 15px 15px 15px 15px !important; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .checkbox {\n  margin-top: 8px;\n  display: inline-block; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .btn {\n  background-color: #5995bb;\n  border: 1px solid #72a9cc;\n  color: #8fc4e5;\n  font-weight: 600;\n  padding: 10px 25px !important; }\n  .login .btn:hover {\n    border: 1px solid #90bbd7;\n    background-color: #5995bb;\n    color: #8fc4e5; }\n\n.login .btn-default {\n  background-color: #5995bb;\n  border: 1px solid #72a9cc;\n  color: #8fc4e5;\n  font-weight: 600;\n  padding: 10px 25px !important; }\n  .login .btn-default:hover {\n    border: 1px solid #90bbd7;\n    background-color: #5995bb;\n    color: #8fc4e5; }\n\n.login .content .forget-password {\n  color: #d7eaf7;\n  font-size: 15px; }\n\n.login .content .rememberme {\n  margin-top: 8px; }\n\n.login .content .mt-checkbox {\n  color: #c9dce9 !important; }\n\n.login .content .mt-checkbox > span:after {\n  border-color: #c9dce9 !important; }\n\n.login .content .create-account {\n  text-align: center;\n  margin-top: 20px; }\n\n.login .content .create-account p a {\n  font-weight: 300;\n  font-size: 16px;\n  color: #ffffff; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 10px auto 30px 0;\n  padding: 10px;\n  color: #c9dce9;\n  font-size: 13px; }\n\n@media (max-width: 1400px) {\n  .login .logo {\n    margin-top: 100px; } }\n\n@media (max-width: 480px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 30px;\n    padding: 0px; }\n  .login .content {\n    width: 245px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/login-3.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* logo page */\n.login {\n  background-color: #a0b4c9 !important; }\n\n.login .logo {\n  margin: 60px auto 20px auto;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  background-color: #fff;\n  width: 360px;\n  margin: 0 auto;\n  margin-bottom: 0px;\n  padding: 30px;\n  padding-top: 20px;\n  padding-bottom: 15px;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.login .content h3 {\n  color: #000; }\n\n.login .content h4 {\n  color: #555; }\n\n.login .content p {\n  color: #222; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .input-icon {\n  border-left: 2px solid #44B6AE !important; }\n\n.login .content .input-icon {\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px; }\n  .login .content .input-icon .form-control {\n    border-left: 0; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  background-color: #fff;\n  clear: both;\n  border: 0px;\n  border-bottom: 1px solid #eee;\n  padding: 0px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .rememberme {\n  margin-top: 8px;\n  display: inline-block; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .content .forget-password {\n  margin-top: 25px; }\n\n.login .content .create-account {\n  border-top: 1px dotted #eee;\n  padding-top: 10px;\n  margin-top: 15px; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* select2 dropdowns */\n.login .content .select2-container {\n  border-left: 2px solid #44B6AE !important; }\n\n.login .content .select2-container .select2-choice {\n  border-left: none !important; }\n\n.login .content .select2-container i {\n  display: inline-block;\n  position: relative;\n  color: #ccc;\n  z-index: 1;\n  top: 1px;\n  margin: 4px 4px 0px -1px;\n  width: 16px;\n  height: 16px;\n  font-size: 16px;\n  text-align: center; }\n\n.login .content .has-error .select2-container i {\n  color: #b94a48; }\n\n.login .content .select2-container a span {\n  font-size: 13px; }\n\n.login .content .select2-container a span img {\n  margin-left: 4px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 0 auto;\n  padding: 10px;\n  color: #999;\n  font-size: 13px; }\n\n@media (max-width: 480px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 10px; }\n  .login .content {\n    width: 280px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/login-4.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* logo page */\n.login {\n  background-color: #666 !important; }\n\n.login .logo {\n  margin: 60px auto 20px auto;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  background: url(../img/bg-white-lock.png) repeat;\n  width: 360px;\n  margin: 0 auto;\n  margin-bottom: 0px;\n  padding: 30px;\n  padding-top: 20px;\n  padding-bottom: 15px;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px; }\n\n.login .content h3 {\n  color: #eee; }\n\n.login .content h4 {\n  color: #eee; }\n\n.login .content p,\n.login .content label {\n  color: #fff; }\n\n.login .mt-checkbox > span:after {\n  border-color: #eee; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .form-control {\n  background-color: #fff; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  background-color: transparent;\n  clear: both;\n  border: 0px;\n  padding: 0px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .rememberme {\n  margin-top: 8px;\n  display: inline-block; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .content .forget-password {\n  margin-top: 25px; }\n\n.login .content .create-account {\n  border-top: 1px dotted #eee;\n  padding-top: 10px;\n  margin-top: 15px; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* select2 dropdowns */\n.login .content .select2-container i {\n  display: inline-block;\n  position: relative;\n  color: #ccc;\n  z-index: 1;\n  top: 1px;\n  margin: 4px 4px 0px -1px;\n  width: 16px;\n  height: 16px;\n  font-size: 16px;\n  text-align: center; }\n\n.login .content .has-error .select2-container i {\n  color: #b94a48; }\n\n.login .content .select2-container a span {\n  font-size: 13px; }\n\n.login .content .select2-container a span img {\n  margin-left: 4px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 0 auto;\n  padding: 10px;\n  color: #eee;\n  font-size: 13px; }\n\n@media (max-width: 480px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 10px; }\n  .login .content {\n    padding: 30px;\n    width: 222px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/login-5.css",
    "content": "/* Cubic Bezier Transition */\n/* html, body { */\n/* \tfont-family: PingFang SC, Helvetica Neue, \"microsoft yahei\", arial !important; */\n/* } */\n\n*, body{font:13px/180% Arial,Lucida,Verdana,\"microsoft yahei\",Helvetica,sans-serif;}\n\nh1 {\n\tfont-weight: 300;\n\tfont-size: 36px;\n\tline-height: normal;\n\tmargin: auto;\n\tmargin-top: 30px;\n}\n\n.user-login-5 {\n  min-height: 100vh; }\n  .user-login-5 .bs-reset {\n    margin: 0;\n    padding: 0; }\n  .user-login-5 .text-right {\n    text-align: right; }\n  .user-login-5 .login-bg {\n    background-position: center;\n    background-size: cover;\n    background-repeat: no-repeat;\n    min-height: 100vh; }\n  .user-login-5 .login-logo {\n    position: absolute;\n    top: 2.5em;\n    left: 2.5em; }\n    .user-login-5 .login-logo.login-6 {\n      top: 80px;\n      left: 80px; }\n  .user-login-5 .login-container {\n    position: relative;\n    min-height: 100vh; }\n    .user-login-5 .login-container > .login-content,\n    .user-login-5 .login-container .login-social,\n    .user-login-5 .login-container .login-copyright {\n      padding: 0 80px; }\n    .user-login-5 .login-container > .login-content {\n      margin-top: 35%; }\n      .user-login-5 .login-container > .login-content > h1 {\n        font-size: 30px;\n        font-weight: 300;\n        color: #4e5a64; }\n      .user-login-5 .login-container > .login-content p {\n        color: #a0a9b4;\n        font-size: 15px;\n        line-height: 22px; }\n      .user-login-5 .login-container > .login-content > .login-form {\n        margin-top: 80px;\n        color: #a4aab2;\n        font-size: 13px; }\n        .user-login-5 .login-container > .login-content > .login-form .form-control {\n          width: 100%;\n          padding: 10px 0;\n          border: none;\n          border-bottom: 1px solid;\n          border-color: #a0a9b4;\n          color: #868e97;\n          font-size: 14px;\n          margin-bottom: 30px; }\n          .user-login-5 .login-container > .login-content > .login-form .form-control:focus {\n            outline: 0; }\n        .user-login-5 .login-container > .login-content > .login-form .forgot-password,\n        .user-login-5 .login-container > .login-content > .login-form .login-button {\n          display: inline-block; }\n        .user-login-5 .login-container > .login-content > .login-form .rem-password {\n          margin-top: 10px; }\n          .user-login-5 .login-container > .login-content > .login-form .rem-password > p {\n            margin: 0; }\n          .user-login-5 .login-container > .login-content > .login-form .rem-password > .rem-checkbox {\n            border-color: #a4aab2; }\n        .user-login-5 .login-container > .login-content > .login-form .forgot-password {\n          margin-right: 1em; }\n          .user-login-5 .login-container > .login-content > .login-form .forgot-password > a {\n            color: #a4aab2; }\n            .user-login-5 .login-container > .login-content > .login-form .forgot-password > a:hover {\n              color: #337ab7;\n              text-decoration: none; }\n            .user-login-5 .login-container > .login-content > .login-form .forgot-password > a:focus {\n              color: #a4aab2;\n              text-decoration: none; }\n    .user-login-5 .login-container > .login-footer {\n      position: absolute;\n      bottom: 0;\n      width: 100%;\n      padding-bottom: 10px; }\n      .user-login-5 .login-container > .login-footer .login-social {\n        padding-right: 0; }\n        .user-login-5 .login-container > .login-footer .login-social li {\n          display: inline-block;\n          list-style: none;\n          margin-right: 1em; }\n        .user-login-5 .login-container > .login-footer .login-social a {\n          color: #a9b5be;\n          font-size: 18px; }\n          .user-login-5 .login-container > .login-footer .login-social a:hover {\n            color: #337ab7;\n            text-decoration: none; }\n          .user-login-5 .login-container > .login-footer .login-social a:focus {\n            color: #a9b5be; }\n      .user-login-5 .login-container > .login-footer .login-copyright {\n        padding-left: 0;\n        margin-top: 6px; }\n        .user-login-5 .login-container > .login-footer .login-copyright > p {\n          margin: 0;\n          font-size: 13px;\n          color: #a9b5be; }\n  .user-login-5 .alert {\n    margin-top: -60px; }\n  .user-login-5 .form-group.has-error {\n    border-bottom: 2px solid #ed6b75 !important; }\n  .user-login-5 .form-group.valid {\n    border-bottom: 1px solid #a0a9b4 !important; }\n\n@media (max-width: 1365px) {\n  .user-login-5 .login-logo.login-6 {\n    top: 40px;\n    left: 40px; }\n  .user-login-5 .login-container > .login-content,\n  .user-login-5 .login-container .login-social,\n  .user-login-5 .login-container .login-copyright {\n    padding: 0 40px; }\n  .user-login-5 .login-container .login-social {\n    padding-right: 0; }\n  .user-login-5 .login-container .login-copyright {\n    padding-left: 0; } }\n\n@media (max-width: 1023px) {\n  .user-login-5 {\n    min-height: 50vh; }\n    .user-login-5 .mt-login-5-bsfix {\n      width: 100%; }\n    .user-login-5 .login-bg {\n      min-height: 50vh; }\n    .user-login-5 .login-logo.login-6 {\n      position: relative;\n      margin: 0 0 40px 0; }\n    .user-login-5 .login-container {\n      min-height: 50vh; }\n      .user-login-5 .login-container > .login-content {\n        margin-top: 60px; }\n        .user-login-5 .login-container > .login-content .login-form {\n          margin-top: 40px; }\n      .user-login-5 .login-container .rem-password {\n        margin-bottom: 1em; }\n      .user-login-5 .login-container > .login-footer {\n        position: relative;\n        margin-top: 40px;\n        padding-bottom: 0; }\n        .user-login-5 .login-container > .login-footer .login-social li {\n          margin-right: 0.5em; }\n    .user-login-5 .alert {\n      margin-top: -20px; } }\n\n@media (max-width: 640px) {\n  .user-login-5 .login-container > .login-content .text-right {\n    text-align: left; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/login.css",
    "content": "/* Cubic Bezier Transition */\n/***\nLogin page\n***/\n/* bg color */\n.login {\n  background-color: #364150 !important; }\n\n.login .logo {\n  margin: 0 auto;\n  margin-top: 60px;\n  padding: 15px;\n  text-align: center; }\n\n.login .content {\n  background-color: white;\n  -webkit-border-radius: 7px;\n  -moz-border-radius: 7px;\n  -ms-border-radius: 7px;\n  -o-border-radius: 7px;\n  border-radius: 7px;\n  width: 400px;\n  margin: 40px auto 10px auto;\n  padding: 30px;\n  padding-top: 10px;\n  overflow: hidden;\n  position: relative; }\n\n.login .content h3 {\n  color: #4db3a5;\n  text-align: center;\n  font-size: 28px;\n  font-weight: 400 !important; }\n\n.login .content h4 {\n  color: #555; }\n\n.login .content .hint {\n  color: #999;\n  padding: 0;\n  margin: 15px 0 7px 0; }\n\n.login .content .login-form,\n.login .content .forget-form {\n  padding: 0px;\n  margin: 0px; }\n\n.login .content .form-control {\n  border: none;\n  background-color: #dde3ec;\n  height: 43px;\n  color: #8290a3;\n  border: 1px solid #dde3ec; }\n  .login .content .form-control:focus, .login .content .form-control:active {\n    border: 1px solid #c3ccda; }\n  .login .content .form-control::-moz-placeholder {\n    color: #8290a3;\n    opacity: 1; }\n  .login .content .form-control:-ms-input-placeholder {\n    color: #8290a3; }\n  .login .content .form-control::-webkit-input-placeholder {\n    color: #8290a3; }\n\n.login .content select.form-control {\n  padding-left: 9px;\n  padding-right: 9px; }\n\n.login .content .forget-form {\n  display: none; }\n\n.login .content .register-form {\n  display: none; }\n\n.login .content .form-title {\n  font-weight: 300;\n  margin-bottom: 25px; }\n\n.login .content .form-actions {\n  clear: both;\n  border: 0px;\n  border-bottom: 1px solid #eee;\n  padding: 25px 30px 25px 30px;\n  margin-left: -30px;\n  margin-right: -30px; }\n  .login .content .form-actions > .btn {\n    margin-top: -2px; }\n\n.login-options {\n  margin-top: 30px;\n  margin-bottom: 30px;\n  overflow: hidden; }\n\n.login-options h4 {\n  float: left;\n  font-weight: 600;\n  font-size: 15px;\n  color: #7d91aa !important; }\n\n.login-options .social-icons {\n  float: right;\n  padding-top: 3px; }\n\n.login-options .social-icons li a {\n  border-radius: 15px 15px 15px 15px !important;\n  -moz-border-radius: 15px 15px 15px 15px !important;\n  -webkit-border-radius: 15px 15px 15px 15px !important; }\n\n.login .content .form-actions .checkbox {\n  margin-left: 0;\n  padding-left: 0; }\n\n.login .content .forget-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 20px; }\n\n.login .content .register-form .form-actions {\n  border: 0;\n  margin-bottom: 0;\n  padding-bottom: 0px; }\n\n.login .content .form-actions .btn {\n  margin-top: 1px; }\n\n.login .content .form-actions .btn {\n  font-weight: 600;\n  padding: 10px 20px !important; }\n\n.login .content .form-actions .btn-default {\n  font-weight: 600;\n  padding: 10px 25px !important;\n  color: #6c7a8d;\n  background-color: #ffffff;\n  border: none; }\n\n.login .content .form-actions .btn-default:hover {\n  background-color: #fafaff;\n  color: #45b6af; }\n\n.login .content .forget-password {\n  font-size: 14px;\n  float: right;\n  display: inline-block;\n  margin-top: 10px; }\n\n.login .content .check {\n  color: #8290a3; }\n\n.login .content .rememberme {\n  margin-left: 8px; }\n\n.login .content .create-account {\n  margin: 0 -40px -30px -40px;\n  padding: 15px 0 17px 0;\n  text-align: center;\n  background-color: #6c7a8d;\n  -webkit-border-radius: 0 0 7px 7px;\n  -moz-border-radius: 0 0 7px 7px;\n  -ms-border-radius: 0 0 7px 7px;\n  -o-border-radius: 0 0 7px 7px;\n  border-radius: 0 0 7px 7px; }\n  .login .content .create-account > p {\n    margin: 0; }\n\n.login .content .create-account p a {\n  font-weight: 600;\n  font-size: 14px;\n  color: #c3cedd; }\n\n.login .content .create-account a {\n  display: inline-block;\n  margin-top: 5px; }\n\n/* footer copyright */\n.login .copyright {\n  text-align: center;\n  margin: 0 auto 30px 0;\n  padding: 10px;\n  color: #7a8ca5;\n  font-size: 13px; }\n\n@media (max-width: 440px) {\n  /***\n  Login page\n  ***/\n  .login .logo {\n    margin-top: 10px; }\n  .login .content {\n    width: 280px;\n    margin-top: 10px; }\n  .login .content h3 {\n    font-size: 22px; }\n  .forget-password {\n    display: inline-block;\n    margin-top: 20px; }\n  .login-options .social-icons {\n    float: left;\n    padding-top: 3px; }\n  .login .checkbox {\n    font-size: 13px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/portfolio.css",
    "content": "/* Cubic Bezier Transition */\n/***\nPortfolio\n***/\n.portfolio-content {\n  padding-top: 10px; }\n  .portfolio-content .cbp-l-filters-buttonCenter .cbp-filter-item,\n  .portfolio-content .cbp-l-filters-buttonCenter .cbp-filter-counter,\n  .portfolio-content .cbp-l-filters-big .cbp-l-filters-big .cbp-filter-item,\n  .portfolio-content .cbp-l-grid-work-title,\n  .portfolio-content .cbp-l-clients-title-block,\n  .portfolio-content .cbp-l-grid-masonry-projects-title,\n  .portfolio-content .cbp-l-grid-masonry-projects-desc,\n  .portfolio-content .cbp-l-grid-mosaic .cbp-l-caption-title,\n  .portfolio-content .cbp-l-grid-mosaic .cbp-l-caption-desc,\n  .portfolio-content .cbp-l-slider-title-block div,\n  .portfolio-content .cbp-l-grid-slider-team-name,\n  .portfolio-content .cbp-l-grid-slider-team-position,\n  .portfolio-content .cbp-l-grid-slider-team-desc,\n  .portfolio-content .cbp-l-grid-slider-testimonials-footer,\n  .portfolio-content .cbp-l-testimonials-title-block,\n  .portfolio-content .cbp-l-grid-testimonials-footer,\n  .portfolio-content .cbp-caption-expand .cbp-caption-defaultWrap,\n  .portfolio-content .cbp-caption-expand .cbp-l-caption-body {\n    font-family: \"Open Sans\", sans-serif !important; }\n  .portfolio-content .text-center {\n    text-align: center; }\n  .portfolio-content .cbp-l-project-related-link:hover {\n    text-decoration: none; }\n  .portfolio-content .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active,\n  .portfolio-content .cbp-l-filters-button .cbp-filter-counter {\n    background-color: #2F353B;\n    border-color: #2F353B;\n    color: #fff; }\n    .portfolio-content .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active:before,\n    .portfolio-content .cbp-l-filters-button .cbp-filter-counter:before {\n      border-top-color: #2F353B; }\n  .portfolio-content .cbp-l-project-desc-title span,\n  .portfolio-content .cbp-l-project-details-title span {\n    border-bottom-color: #e7505a;\n    text-transform: uppercase;\n    font-weight: 600; }\n  .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active,\n  .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-counter {\n    background-color: #32C5D2;\n    border-color: #32C5D2;\n    color: #fff; }\n    .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active:before,\n    .portfolio-content.portfolio-2 .cbp-l-filters-button .cbp-filter-counter:before {\n      border-top-color: #32C5D2; }\n  .portfolio-content.portfolio-2 .cbp-l-grid-mosaic .cbp-caption-activeWrap {\n    background-color: rgba(50, 197, 210, 0.9); }\n    .portfolio-content.portfolio-2 .cbp-l-grid-mosaic .cbp-caption-activeWrap .cbp-l-caption-title,\n    .portfolio-content.portfolio-2 .cbp-l-grid-mosaic .cbp-caption-activeWrap .cbp-l-caption-desc {\n      color: #fff; }\n  .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active,\n  .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-counter {\n    background-color: #3598DC;\n    border-color: #3598DC;\n    color: #fff; }\n    .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active:before,\n    .portfolio-content.portfolio-3 .cbp-l-filters-button .cbp-filter-counter:before {\n      border-top-color: #3598DC; }\n  .portfolio-content.portfolio-3 .cbp-caption-zoom .cbp-caption-activeWrap {\n    background-color: rgba(0, 0, 0, 0.7); }\n  .portfolio-content.portfolio-3 .cbp-l-project-desc-title span,\n  .portfolio-content.portfolio-3 .cbp-l-project-details-title span {\n    border-bottom-color: #3598DC; }\n  .portfolio-content.portfolio-3 .cbp-l-filters-dropdown {\n    margin-bottom: 25px; }\n  .portfolio-content.portfolio-4 .cbp-caption-zoom .cbp-caption-activeWrap {\n    background-color: rgba(0, 0, 0, 0.7); }\n  .portfolio-content.portfolio-4 .cbp-l-filters-alignCenter {\n    margin-bottom: 25px; }\n    .portfolio-content.portfolio-4 .cbp-l-filters-alignCenter .cbp-filter-item {\n      margin-bottom: 0; }\n  .portfolio-content .cbp-l-filters-dropdown-floated {\n    margin-top: 0; }\n  .portfolio-content .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownHeader {\n    line-height: 31px; }\n  .portfolio-content .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item {\n    line-height: 31px; }\n  .portfolio-content .cbp-popup-singlePage .cbp-popup-content {\n    max-width: 1170px; }\n  .portfolio-content .cbp-l-filters-button {\n    margin-bottom: 25px; }\n  .portfolio-content .cbp-l-loadMore-button {\n    margin-bottom: 60px; }\n  .portfolio-content .btn {\n    padding: 6px 12px; }\n\n.cbp-popup-wrap,\n.cbp-popup-singlePage-open {\n  z-index: 10105 !important; }\n\n.cbp-popup-singlePage .cbp-popup-navigation-wrap {\n  z-index: 10106 !important; }\n\n.portfolio-tile {\n  margin-bottom: 30px; }\n\n.cbp-l-filters-dropdownWrap {\n  background: none;\n  border: 1px solid #2F353B; }\n  .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownHeader {\n    color: #2F353B;\n    font-size: 12px; }\n    .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownHeader:after {\n      border-color: #2F353B transparent; }\n  .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList {\n    background: #ffffff; }\n    .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item {\n      font-size: 12px;\n      color: #2F353B;\n      border: 0; }\n      .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item:hover {\n        background: #f3f4f5; }\n      .cbp-l-filters-dropdownWrap .cbp-l-filters-dropdownList .cbp-filter-item.cbp-filter-item-active {\n        background: #e5e8ea; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/pricing.css",
    "content": "/* Cubic Bezier Transition */\n/***\nPricing Table 1\n***/\n.pricing-content-1 {\n  background-color: #fff; }\n  .pricing-content-1:before, .pricing-content-1:after {\n    content: \" \";\n    display: table; }\n  .pricing-content-1:after {\n    clear: both; }\n  .pricing-content-1 .arrow-down {\n    width: 0;\n    height: 0;\n    border-left: 15px solid transparent;\n    border-right: 15px solid transparent;\n    border-top: 15px solid;\n    margin: auto; }\n    .pricing-content-1 .arrow-down.arrow-blue {\n      border-top-color: #3598DC; }\n    .pricing-content-1 .arrow-down.arrow-green {\n      border-top-color: #32C5D2; }\n    .pricing-content-1 .arrow-down.arrow-dark {\n      border-top-color: #2F353B; }\n    .pricing-content-1 .arrow-down.arrow-grey {\n      border-top-color: #f7f9fb; }\n  .pricing-content-1 .price-ribbon {\n    position: absolute;\n    top: 75px;\n    right: -4px;\n    width: 90px;\n    font-size: 14px;\n    text-transform: uppercase;\n    font-weight: 300;\n    padding: 6px 20px 6px 15px;\n    color: #fff;\n    background-color: #D91E18;\n    text-shadow: 0px 1px 2px #bbb;\n    -webkit-box-shadow: 0px 2px 4px #888;\n    -moz-box-shadow: 0px 2px 4px #888;\n    box-shadow: 0px 2px 4px #888; }\n    .pricing-content-1 .price-ribbon:after {\n      content: ' ';\n      position: absolute;\n      width: 0;\n      height: 0;\n      right: 0px;\n      top: 100%;\n      border-width: 5px 10px;\n      border-style: solid;\n      border-color: #64120f transparent transparent #64120f; }\n  .pricing-content-1 .pricing-title {\n    border-bottom: 1px solid;\n    border-color: #fff; }\n    .pricing-content-1 .pricing-title > h1 {\n      margin: 20px 0; }\n  .pricing-content-1 .price-column-container {\n    text-align: center;\n    margin: 0;\n    background-color: #fff; }\n    .pricing-content-1 .price-column-container.border-active {\n      border: 1px solid #e5e9ee; }\n    .pricing-content-1 .price-column-container:first-child {\n      margin-left: 0; }\n    .pricing-content-1 .price-column-container:last-child {\n      margin-right: 0; }\n  .pricing-content-1 .price-table-head {\n    color: #fff;\n    padding: 20px 0; }\n    .pricing-content-1 .price-table-head h2 {\n      font-size: 26px; }\n    .pricing-content-1 .price-table-head.price-1 {\n      background-color: #3598DC; }\n    .pricing-content-1 .price-table-head.price-2 {\n      background-color: #32C5D2; }\n    .pricing-content-1 .price-table-head.price-3 {\n      background-color: #2F353B; }\n  .pricing-content-1 .price-table-pricing > h3 {\n    font-size: 60px;\n    position: relative; }\n    .pricing-content-1 .price-table-pricing > h3 > .price-sign {\n      font-size: 24px;\n      margin-left: -15px;\n      vertical-align: top;\n      top: 15px; }\n  .pricing-content-1 .price-table-pricing > p {\n    margin-top: 0; }\n  .pricing-content-1 .price-table-content {\n    background-color: #f7f9fb;\n    color: #5c6d7e;\n    font-weight: 600;\n    font-size: 16px; }\n    .pricing-content-1 .price-table-content .row {\n      padding-top: 10px;\n      padding-bottom: 10px; }\n      .pricing-content-1 .price-table-content .row i {\n        color: #6cade6; }\n      .pricing-content-1 .price-table-content .row:first-child {\n        padding-top: 20px; }\n      .pricing-content-1 .price-table-content .row:last-child {\n        padding-bottom: 20px; }\n  .pricing-content-1 .price-table-footer {\n    padding: 20px 0; }\n    .pricing-content-1 .price-table-footer > .price-button {\n      font-weight: bold;\n      padding: 10px 20px; }\n\n@media (max-width: 1024px) {\n  .pricing-content-1 .mobile-padding {\n    padding: 0;\n    margin: 0; }\n    .pricing-content-1 .mobile-padding > i {\n      margin-right: 5px; }\n  .pricing-content-1 .price-table-content {\n    padding-left: 10px;\n    padding-right: 10px; } }\n\n@media (max-width: 1024px) {\n  .pricing-content-1 .mobile-padding {\n    padding: 0 15px;\n    margin: 0 -15px; }\n    .pricing-content-1 .mobile-padding > i {\n      margin-right: 20px; }\n  .pricing-content-1 .price-table-content {\n    padding-left: 15px;\n    padding-right: 15px; } }\n\n/***\nPricing Table 2\n***/\n.pricing-content-2 {\n  background-color: #fff; }\n  .pricing-content-2 .no-padding {\n    padding: 0; }\n  .pricing-content-2 .text-left {\n    text-align: left; }\n  .pricing-content-2 .text-right {\n    text-align: right; }\n  .pricing-content-2.pricing-bg-dark {\n    background-color: #2F353B; }\n  .pricing-content-2 .pricing-title {\n    border-color: #444; }\n    .pricing-content-2 .pricing-title > h1 {\n      color: #fff; }\n  .pricing-content-2 .pricing-table-container {\n    padding-top: 40px;\n    padding-bottom: 40px; }\n    .pricing-content-2 .pricing-table-container .padding-fix {\n      padding-left: 15px;\n      padding-right: 15px; }\n    .pricing-content-2 .pricing-table-container .price-column-container {\n      background-color: #fff;\n      margin: 30px 0;\n      padding: 60px 0;\n      text-align: center;\n      border-bottom: 4px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.border-right {\n        border-right: 1px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.border-left {\n        border-left: 1px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.border-top {\n        border-top: 1px solid #ccc; }\n      .pricing-content-2 .pricing-table-container .price-column-container.featured-price {\n        margin: 0;\n        padding: 89px 0;\n        border: 1px solid;\n        border-bottom: 4px solid;\n        border-color: #ccc; }\n        .pricing-content-2 .pricing-table-container .price-column-container.featured-price > .price-feature-label {\n          position: absolute;\n          top: 0;\n          left: 50%;\n          display: inline-block;\n          width: 110px;\n          margin: 0 0 0 -60px;\n          padding: 7px 15px;\n          color: #fff;\n          font-weight: 300; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-head > h2 {\n        letter-spacing: 1px;\n        font-weight: 600;\n        font-size: 18px;\n        color: #ACB5C3; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-head > h2.opt-pricing-5 {\n          padding: 7px 15px;\n          display: inline;\n          margin: 0 auto 20px auto;\n          font-size: 16px; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-pricing > h3 {\n        font-size: 60px;\n        position: relative;\n        font-weight: 600; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-pricing > h3 > .price-sign {\n          font-size: 24px;\n          margin-left: -15px;\n          vertical-align: top;\n          top: 15px; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-pricing > p {\n        margin-top: 0; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-content {\n        color: #333;\n        font-weight: 300;\n        font-size: 16px; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-content .row {\n          padding-top: 20px;\n          padding-bottom: 20px;\n          border-bottom: 1px solid;\n          border-color: #eee; }\n          .pricing-content-2 .pricing-table-container .price-column-container > .price-table-content .row:first-child {\n            border-top: 1px solid;\n            border-color: #eee; }\n      .pricing-content-2 .pricing-table-container .price-column-container > .price-table-footer {\n        padding: 40px 0 0 0; }\n        .pricing-content-2 .pricing-table-container .price-column-container > .price-table-footer > .featured-price {\n          font-size: 20px;\n          font-weight: 300;\n          border-bottom: 3px solid #3FABA4; }\n\n@media (max-width: 991px) {\n  .pricing-content-2 .price-column-container {\n    border-left: 1px solid;\n    border-right: 1px solid;\n    border-color: #ccc; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/profile-2.css",
    "content": "/* Cubic Bezier Transition */\n/***\nProfile Page\n***/\n.profile {\n  position: relative; }\n  .page-container-bg-solid .profile {\n    background: #ffffff;\n    padding: 20px; }\n\n.profile p {\n  color: #636363;\n  font-size: 13px; }\n\n.profile p a {\n  color: #169ef4; }\n\n.profile label {\n  margin-top: 10px; }\n\n.profile label:first-child {\n  margin-top: 0; }\n\n/*profile info*/\n.profile-classic .profile-image {\n  position: relative; }\n\n.profile-classic .profile-edit {\n  top: 0;\n  right: 0;\n  margin: 0;\n  color: #fff;\n  opacity: 0.6;\n  padding: 0 9px;\n  font-size: 11px;\n  background: #000;\n  position: absolute;\n  filter: alpha(opacity=60);\n  /*for ie*/ }\n\n.profile-classic .profile-image img {\n  margin-bottom: 15px; }\n\n.profile-classic li {\n  padding: 8px 0;\n  font-size: 13px;\n  border-top: solid 1px #f5f5f5; }\n\n.profile-classic li:first-child {\n  border-top: none; }\n\n.profile-classic li span {\n  color: #666;\n  font-size: 13px;\n  margin-right: 7px; }\n\n/*profile tabs*/\n.profile .tabbable-custom-profile .nav-tabs > li > a {\n  padding: 6px 12px; }\n\n/*profile navigation*/\n.profile ul.profile-nav {\n  margin-bottom: 30px; }\n  .profile ul.profile-nav img.pic-bordered {\n    border: 1px solid #e1e7ee; }\n\n.profile ul.profile-nav li {\n  position: relative; }\n\n.profile ul.profile-nav li a {\n  color: #557386;\n  display: block;\n  font-size: 14px;\n  padding: 8px 10px;\n  margin-bottom: 1px;\n  background: #f0f6fa;\n  border-left: solid 2px #c4d5df; }\n\n.profile ul.profile-nav li a:hover {\n  color: #169ef4;\n  background: #ecf5fb;\n  text-decoration: none;\n  border-left: solid 2px #169ef4; }\n\n.profile ul.profile-nav li a.profile-edit {\n  top: 0;\n  right: 0;\n  margin: 0;\n  color: #fff;\n  opacity: 0.6;\n  border: none;\n  padding: 3px 9px;\n  font-size: 12px;\n  background: #000;\n  position: absolute;\n  filter: alpha(opacity=60);\n  /*for ie*/ }\n\n.profile ul.profile-nav li a.profile-edit:hover {\n  text-decoration: underline; }\n\n.profile ul.profile-nav a span {\n  top: 0;\n  right: 0;\n  color: #fff;\n  font-size: 16px;\n  padding: 7px 13px;\n  position: absolute;\n  background: #169ef4; }\n\n.profile ul.profile-nav a:hover span {\n  background: #0b94ea; }\n\n/*profile information*/\n.profile-info h1 {\n  color: #383839;\n  font-size: 24px;\n  font-weight: 400;\n  margin: 0 0 10px 0; }\n\n.profile-info ul {\n  margin-bottom: 15px; }\n\n.profile-info li {\n  color: #6b6b6b;\n  font-size: 13px;\n  margin-right: 15px;\n  margin-bottom: 5px;\n  padding: 0 !important; }\n\n.profile-info li i {\n  color: #b5c1c9;\n  font-size: 15px; }\n\n.profile-info li:hover i {\n  color: #169ef4; }\n\n/*profile sales summary*/\n.sale-summary ul {\n  margin-top: -10px; }\n\n.sale-summary li {\n  padding: 10px 0;\n  overflow: hidden;\n  border-top: solid 1px #eee; }\n\n.sale-summary li:first-child {\n  border-top: none; }\n\n.sale-summary li .sale-info {\n  margin-top: 4px;\n  float: left;\n  color: #646464;\n  font-size: 14px;\n  text-transform: uppercase; }\n\n.sale-summary li .sale-num {\n  float: right;\n  color: #169ef4;\n  font-size: 20px;\n  font-weight: 300; }\n\n.sale-summary li span i {\n  top: 1px;\n  width: 13px;\n  height: 14px;\n  margin-left: 3px;\n  position: relative;\n  display: inline-block; }\n\n.sale-summary .caption h4 {\n  color: #383839;\n  font-size: 18px; }\n\n.sale-summary .caption {\n  border-color: #c9c9c9; }\n\n/*latest customers table*/\n.profile .table-advance thead tr th {\n  background: #f0f6fa; }\n\n.profile .table-bordered th,\n.profile .table-bordered td,\n.profile .table-bordered {\n  border-color: #e5eff6; }\n\n.profile .table-striped tbody > tr:nth-child(2n+1) > td,\n.profile .table-striped tbody > tr:nth-child(2n+1) > th {\n  background: #fcfcfc; }\n\n.profile .table-hover tbody tr:hover td,\n.profile .table-hover tbody tr:hover th {\n  background: #f5fafd; }\n\n/*add portfolio*/\n.add-portfolio {\n  overflow: hidden;\n  margin-bottom: 30px;\n  background: #f0f6fa;\n  padding: 12px 14px; }\n\n.add-portfolio span {\n  float: left;\n  display: inline-block;\n  font-weight: 300;\n  font-size: 22px;\n  margin-top: 0px; }\n\n.add-portfolio .btn {\n  margin-left: 20px; }\n\n/*portfolio block*/\n.portfolio-block {\n  background: #f7f7f7;\n  margin-bottom: 15px;\n  overflow: hidden; }\n\n.portfolio-stat {\n  overflow: hidden; }\n\n/*portfolio text*/\n.portfolio-text {\n  overflow: hidden; }\n\n.portfolio-text img {\n  float: left;\n  margin-right: 15px; }\n\n.portfolio-text .portfolio-text-info {\n  overflow: hidden; }\n\n/*portfolio button*/\n.portfolio-btn a {\n  display: block;\n  padding: 25px 0;\n  background: #ddd !important; }\n\n.portfolio-btn a:hover {\n  background: #1d943b !important; }\n\n.portfolio-btn span {\n  color: #fff;\n  font-size: 22px;\n  font-weight: 200; }\n\n/*portfolio info*/\n.portfolio-info {\n  float: left;\n  color: #616161;\n  font-size: 12px;\n  padding: 10px 25px;\n  margin-bottom: 5px;\n  text-transform: uppercase; }\n\n.portfolio-info span {\n  color: #16a1f2;\n  display: block;\n  font-size: 28px;\n  line-height: 28px;\n  margin-top: 0px;\n  font-weight: 200;\n  text-transform: uppercase; }\n\n/*portfolio settings*/\n.profile-settings {\n  background: #fafafa;\n  padding: 15px 8px 0;\n  margin-bottom: 5px; }\n\n.profile-settings p {\n  padding-left: 5px;\n  margin-bottom: 3px; }\n\n.profile-settings .controls > .radio,\n.profile-settings .controls > .checkbox {\n  font-size: 12px;\n  margin-top: 2px !important; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/profile.css",
    "content": "/* Cubic Bezier Transition */\n/***\nNew Profile Page\n***/\n.profile-sidebar {\n  float: left;\n  width: 300px;\n  margin-right: 20px; }\n\n.profile-content {\n  overflow: hidden; }\n\n/* PROFILE SIDEBAR */\n.profile-sidebar-portlet {\n  padding: 30px 0 0 0 !important; }\n\n.profile-userpic img {\n  float: none;\n  margin: 0 auto;\n  width: 50%;\n  height: 50%;\n  -webkit-border-radius: 50% !important;\n  -moz-border-radius: 50% !important;\n  border-radius: 50% !important; }\n\n.profile-usertitle {\n  text-align: center;\n  margin-top: 20px; }\n\n.profile-usertitle-name {\n  color: #5a7391;\n  font-size: 20px;\n  font-weight: 600;\n  margin-bottom: 7px; }\n\n.profile-usertitle-job {\n  text-transform: uppercase;\n  color: #5b9bd1;\n  font-size: 13px;\n  font-weight: 800;\n  margin-bottom: 7px; }\n\n.profile-userbuttons {\n  text-align: center;\n  margin-top: 10px; }\n\n.profile-userbuttons .btn {\n  margin-right: 5px; }\n  .profile-userbuttons .btn:last-child {\n    margin-right: 0; }\n\n.profile-userbuttons button {\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 600;\n  padding: 6px 15px; }\n\n.profile-usermenu {\n  margin-top: 30px;\n  padding-bottom: 20px; }\n\n.profile-usermenu ul li {\n  border-bottom: 1px solid #f0f4f7; }\n\n.profile-usermenu ul li:last-child {\n  border-bottom: none; }\n\n.profile-usermenu ul li a {\n  color: #93a3b5;\n  font-size: 16px;\n  font-weight: 400; }\n\n.profile-usermenu ul li a i {\n  margin-right: 8px;\n  font-size: 16px; }\n\n.profile-usermenu ul li a:hover {\n  background-color: #fafcfd;\n  color: #5b9bd1; }\n\n.profile-usermenu ul li.active a {\n  color: #5b9bd1;\n  background-color: #f6f9fb;\n  border-left: 2px solid #5b9bd1;\n  margin-left: -2px; }\n\n.profile-stat {\n  padding-bottom: 20px;\n  border-bottom: 1px solid #f0f4f7; }\n\n.profile-stat-title {\n  color: #7f90a4;\n  font-size: 25px;\n  text-align: center; }\n\n.profile-stat-text {\n  color: #5b9bd1;\n  font-size: 11px;\n  font-weight: 800;\n  text-align: center; }\n\n.profile-desc-title {\n  color: #7f90a4;\n  font-size: 17px;\n  font-weight: 600; }\n\n.profile-desc-text {\n  color: #7e8c9e;\n  font-size: 14px; }\n\n.profile-desc-link i {\n  width: 22px;\n  font-size: 19px;\n  color: #abb6c4;\n  margin-right: 5px; }\n\n.profile-desc-link a {\n  font-size: 14px;\n  font-weight: 600;\n  color: #5b9bd1; }\n\n/* END PROFILE SIDEBAR */\n/* RESPONSIVE MODE */\n@media (max-width: 991px) {\n  /* 991px */\n  /* 991px */\n  .profile-sidebar {\n    float: none;\n    width: 100% !important;\n    margin: 0; }\n  .profile-sidebar > .portlet {\n    margin-bottom: 20px; }\n  .profile-content {\n    overflow: visible; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/search.css",
    "content": "/* Cubic Bezier Transition */\n/* \nSearch Page\n***/\n.search-page .bordered {\n  border: 1px solid;\n  border-color: #e7ecf1; }\n\n.search-page .search-bar {\n  padding: 20px;\n  margin-bottom: 40px;\n  background-color: #fff; }\n  .search-page .search-bar input {\n    border: none;\n    background-color: #f3f6f9;\n    color: #a0a9b4;\n    height: 55px; }\n  .search-page .search-bar button {\n    color: #fff;\n    height: 55px;\n    width: 130px;\n    margin-left: -3px;\n    margin-top: -2px; }\n  .search-page .search-bar .search-desc {\n    margin: 0;\n    color: #a0a9b4;\n    font-size: 13px; }\n\n.search-page .search-filter {\n  background-color: #fff;\n  padding: 40px 30px 0 30px;\n  margin-bottom: 30px; }\n  .search-page .search-filter > .search-label {\n    color: #a0a9b4;\n    font-size: 11px;\n    letter-spacing: 1px;\n    font-weight: 700;\n    margin-bottom: 10px;\n    margin-top: 40px; }\n    .search-page .search-filter > .search-label:first-child {\n      margin-top: 0; }\n  .search-page .search-filter input,\n  .search-page .search-filter select {\n    color: #727f89;\n    font-weight: 700;\n    font-size: 14px; }\n  .search-page .search-filter button {\n    margin: 40px 0;\n    padding: 15px 0; }\n  .search-page .search-filter .search-filter-divider {\n    display: block;\n    height: 1px; }\n\n.search-page .search-pagination {\n  text-align: center; }\n  .search-page .search-pagination > .pagination > li > a {\n    margin: 0 3px;\n    border: none;\n    background: #ddd;\n    color: #666; }\n    .search-page .search-pagination > .pagination > li > a:hover {\n      text-decoration: none;\n      color: #fff;\n      background-color: #3598DC; }\n  .search-page .search-pagination > .pagination > .page-active > a {\n    background-color: #3598DC;\n    color: #fff; }\n  .search-page .search-pagination.pagination-rounded > .pagination > li > a {\n    border-radius: 50% !important; }\n\n.search-content-1 .search-container {\n  background-color: #fff; }\n  .search-content-1 .search-container > ul {\n    padding: 0 20px 20px 20px;\n    margin-bottom: 0; }\n    .search-content-1 .search-container > ul .search-item {\n      list-style: none;\n      padding: 20px 0;\n      border-bottom: 1px solid;\n      border-color: #f4f6f8; }\n      .search-content-1 .search-container > ul .search-item > a > img {\n        width: 100px;\n        float: left;\n        margin-right: 20px; }\n      .search-content-1 .search-container > ul .search-item > .search-content {\n        padding-left: 120px; }\n        .search-content-1 .search-container > ul .search-item > .search-content > .search-title {\n          font-size: 20px;\n          margin: 10px 0 20px 0;\n          font-weight: 600; }\n          .search-content-1 .search-container > ul .search-item > .search-content > .search-title > a {\n            color: #4e5a64; }\n            .search-content-1 .search-container > ul .search-item > .search-content > .search-title > a:hover {\n              text-decoration: none;\n              color: #49a7fa; }\n        .search-content-1 .search-container > ul .search-item > .search-content > .search-desc {\n          color: #a0a9b4;\n          font-size: 13px;\n          margin: 0; }\n      .search-content-1 .search-container > ul .search-item:last-child {\n        border: none; }\n\n.search-content-2 .search-container {\n  background-color: #fff; }\n  .search-content-2 .search-container > ul {\n    padding: 20px;\n    margin-bottom: 0; }\n    .search-content-2 .search-container > ul > .search-item-header {\n      list-style: none;\n      padding: 0 0 5px 0;\n      border-bottom: 1px solid;\n      border-color: #f4f6f8; }\n      .search-content-2 .search-container > ul > .search-item-header h3 {\n        font-size: 17px;\n        color: #a0a9b4;\n        margin: 5px 0 0 0; }\n    .search-content-2 .search-container > ul .search-item {\n      list-style: none;\n      padding: 20px 0;\n      border-bottom: 1px solid;\n      border-color: #f4f6f8; }\n      .search-content-2 .search-container > ul .search-item > .search-content p {\n        margin: 0; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-title {\n        font-size: 19px;\n        margin: 0 0 20px 0;\n        font-weight: 600; }\n        .search-content-2 .search-container > ul .search-item > .search-content .search-title > a {\n          color: #4e5a64; }\n          .search-content-2 .search-container > ul .search-item > .search-content .search-title > a:hover {\n            text-decoration: none;\n            color: #49a7fa; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-desc {\n        color: #a0a9b4;\n        font-size: 13px; }\n        .search-content-2 .search-container > ul .search-item > .search-content .search-desc > a {\n          color: #49a7fa; }\n          .search-content-2 .search-container > ul .search-item > .search-content .search-desc > a:hover {\n            text-decoration: none;\n            color: #326b9e; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-number,\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-label {\n        text-align: center; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-number {\n        font-size: 21px;\n        color: #4e5a64;\n        margin-bottom: 15px; }\n      .search-content-2 .search-container > ul .search-item > .search-content .search-counter-label {\n        font-size: 13px;\n        color: #8b96a4; }\n      .search-content-2 .search-container > ul .search-item:last-child {\n        border: none; }\n\n.search-content-3 .tile-container {\n  margin-bottom: 30px; }\n  .search-content-3 .tile-container > .tile-thumbnail {\n    height: 200px;\n    overflow: hidden;\n    position: relative; }\n    .search-content-3 .tile-container > .tile-thumbnail img {\n      width: 100%;\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      margin: auto; }\n  .search-content-3 .tile-container > .tile-title {\n    background-color: #fff;\n    padding: 30px 20px; }\n    .search-content-3 .tile-container > .tile-title > h3 {\n      font-size: 19px;\n      font-weight: 600;\n      margin: 0;\n      display: inline-block; }\n      .search-content-3 .tile-container > .tile-title > h3 > a {\n        color: #4e5a64; }\n        .search-content-3 .tile-container > .tile-title > h3 > a:hover {\n          text-decoration: none;\n          color: #49a7fa; }\n    .search-content-3 .tile-container > .tile-title i {\n      float: right;\n      font-size: 24px;\n      margin: 0 5px; }\n    .search-content-3 .tile-container > .tile-title > .tile-desc {\n      font-size: 14px; }\n      .search-content-3 .tile-container > .tile-title > .tile-desc > p {\n        margin: 20px 0 0 0; }\n        .search-content-3 .tile-container > .tile-title > .tile-desc > p > a:hover {\n          text-decoration: none; }\n\n.search-content-4 .search-bar .extra-buttons button {\n  margin-right: 20px; }\n  .search-content-4 .search-bar .extra-buttons button:last-child {\n    margin-right: 0;\n    width: 170px; }\n\n.search-content-4 .search-table th {\n  border: none; }\n  .search-content-4 .search-table th > a {\n    color: #fff; }\n    .search-content-4 .search-table th > a:hover {\n      text-decoration: none;\n      color: #eee; }\n\n.search-content-4 .search-table th, .search-content-4 .search-table td {\n  padding: 20px 30px;\n  vertical-align: middle; }\n\n.search-content-4 .search-table td {\n  border-color: #fff; }\n\n.search-content-4 .search-table .table-status {\n  text-align: center; }\n  .search-content-4 .search-table .table-status i {\n    font-size: 26px;\n    padding-top: 10px; }\n\n.search-content-4 .search-table .table-date {\n  font-weight: 600;\n  font-size: 14px;\n  width: 180px; }\n  .search-content-4 .search-table .table-date a {\n    color: #49a7fa; }\n    .search-content-4 .search-table .table-date a:hover {\n      text-decoration: none;\n      color: #326b9e; }\n\n.search-content-4 .search-table .table-title {\n  width: 390px; }\n  .search-content-4 .search-table .table-title > h3 {\n    margin: 0;\n    color: #4e5a64;\n    font-size: 19px;\n    font-weight: 600; }\n    .search-content-4 .search-table .table-title > h3 > a {\n      color: #4e5a64; }\n      .search-content-4 .search-table .table-title > h3 > a:hover {\n        text-decoration: none;\n        color: #49a7fa; }\n  .search-content-4 .search-table .table-title > p {\n    margin-bottom: 0;\n    margin-top: 10px; }\n    .search-content-4 .search-table .table-title > p > a {\n      color: #49a7fa; }\n      .search-content-4 .search-table .table-title > p > a:hover {\n        text-decoration: none;\n        color: #326b9e; }\n\n.search-content-4 .search-table .table-desc {\n  font-size: 14px;\n  color: #8b96a4; }\n\n.search-content-4 .search-table .table-download {\n  text-align: center; }\n  .search-content-4 .search-table .table-download i {\n    font-size: 30px;\n    padding-top: 10px; }\n\n@media (max-width: 1024px) {\n  .search-content-4 .search-bar .extra-buttons {\n    margin-top: 30px; }\n  .search-content-4 .search-table th, .search-content-4 .search-table td {\n    vertical-align: top; }\n  .search-content-4 .search-table .table-date {\n    width: auto; }\n  .search-content-4 .search-table .table-title {\n    width: auto; } }\n\n@media (max-width: 991px) {\n  .search-bar .search-desc {\n    margin-top: 20px !important; }\n  .search-pagination {\n    margin-bottom: 40px; }\n  .search-content-2 .search-container .search-item > .search-content.text-left {\n    text-align: left; }\n  .search-content-2 .search-container .search-item > .search-content .search-desc {\n    margin-bottom: 40px; } }\n\n@media (max-width: 767px) {\n  .search-content-2 .search-container .search-item > .search-content {\n    text-align: center; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/tasks.css",
    "content": "/* Cubic Bezier Transition */\n/***\nTasks Widget\n***/\n.tasks-widget:after {\n  clear: both; }\n\n.tasks-widget .task-list {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .tasks-widget .task-list > li {\n    position: relative;\n    padding: 10px 0;\n    border-bottom: 1px solid #F4F6F9; }\n    .tasks-widget .task-list > li:hover {\n      background: #F4F6F9; }\n    .tasks-widget .task-list > li.last-line {\n      border-bottom: none; }\n    .tasks-widget .task-list > li.task-done {\n      background: #f6f6f6; }\n      .tasks-widget .task-list > li.task-done:hover {\n        background: #f4f4f4; }\n      .tasks-widget .task-list > li.task-done .task-title-sp {\n        text-decoration: line-through; }\n    .tasks-widget .task-list > li > .task-bell {\n      margin-left: 10px; }\n    .tasks-widget .task-list > li > .task-checkbox {\n      float: left;\n      width: 30px; }\n      .tasks-widget .task-list > li > .task-checkbox input[type=\"checkbox\"] {\n        cursor: pointer; }\n    .tasks-widget .task-list > li > .task-title {\n      color: #838FA1;\n      margin-right: 10px; }\n      .tasks-widget .task-list > li > .task-title .task-title-sp {\n        margin-right: 5px; }\n    .tasks-widget .task-list > li .task-config-btn {\n      margin-top: -1px; }\n    .tasks-widget .task-list > li > .task-config {\n      display: none;\n      position: absolute;\n      top: 10px;\n      right: 10px; }\n    .tasks-widget .task-list > li:hover > .task-config {\n      display: block;\n      margin-bottom: 0 !important; }\n\n.tasks-widget .task-footer {\n  margin-top: 5px; }\n  .tasks-widget .task-footer:before, .tasks-widget .task-footer:after {\n    content: \" \";\n    display: table; }\n  .tasks-widget .task-footer:after {\n    clear: both; }\n\n@media only screen and (max-width: 480px) {\n  .tasks-widget .task-config-btn {\n    float: inherit;\n    display: block; }\n  .tasks-widget .task-list-projects li > .label {\n    margin-bottom: 5px; } }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/test.css",
    "content": "/* Cubic Bezier Transition */\n.mt-comments .mt-comment {\n  padding: 10px;\n  margin: 0 0 10px 0; }\n  .mt-comments .mt-comment .mt-comment-img {\n    width: 40px;\n    float: left; }\n    .mt-comments .mt-comment .mt-comment-img > img {\n      border-radius: 50% !important; }\n  .mt-comments .mt-comment .mt-comment-body {\n    padding-left: 20px;\n    position: relative;\n    overflow: hidden; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:before,\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      content: \" \";\n      display: table; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info:after {\n      clear: both; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-author {\n      display: inline-block;\n      float: left;\n      margin: 0px 0px 10px 0;\n      color: #060606;\n      font-weight: 600; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-info .mt-comment-date {\n      display: inline-block;\n      float: right;\n      margin: 0px;\n      color: #BABABA; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-text {\n      color: #a6a6a6; }\n    .mt-comments .mt-comment .mt-comment-body .mt-comment-details {\n      margin: 10px 0px 0px 0; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status {\n        text-transform: uppercase;\n        float: left; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-pending {\n          color: #B8C0F5; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-approved {\n          color: #6BD873; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-status.mt-comment-status-rejected {\n          color: red; }\n      .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions {\n        display: none;\n        list-style: none;\n        margin: 0;\n        padding: 0;\n        float: right; }\n        .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li {\n          float: left;\n          padding: 0 5px;\n          margin: 0; }\n          .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a {\n            text-transform: uppercase;\n            color: #999999; }\n            .mt-comments .mt-comment .mt-comment-body .mt-comment-details .mt-comment-actions > li > a:hover {\n              color: #666666;\n              text-decoration: none; }\n  .mt-comments .mt-comment:hover {\n    background: #f9f9f9; }\n    .mt-comments .mt-comment:hover .mt-comment-body .mt-comment-details .mt-comment-actions {\n      display: inline-block; }\n\n.mt-actions .mt-action {\n  margin: 0px;\n  padding: 15px 0 15px 0;\n  border-bottom: 1px solid #f7f8f9; }\n  .mt-actions .mt-action:last-child {\n    border-bottom: 0px; }\n  .mt-actions .mt-action .mt-action-img {\n    width: 40px;\n    float: left; }\n    .mt-actions .mt-action .mt-action-img > img {\n      border-radius: 50% !important;\n      margin-bottom: 2px; }\n  .mt-actions .mt-action .mt-action-body {\n    padding-left: 15px;\n    position: relative;\n    overflow: hidden; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row {\n      display: table;\n      width: 100%; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n        display: table-cell;\n        vertical-align: top; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon {\n          display: table-cell;\n          padding: 6px 20px 6px 6px; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-icon > i {\n            display: inline-block;\n            position: relative;\n            top: 10px;\n            font-size: 25px;\n            color: #78E0E8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details {\n          display: table-cell;\n          vertical-align: top; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-author {\n            color: #060606;\n            font-weight: 600; }\n          .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info .mt-action-details .mt-action-desc {\n            margin-bottom: 0;\n            color: #A6A8A8; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 150px;\n        white-space: nowrap;\n        padding-top: 15px;\n        color: #A6A8A8; }\n        .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime .mt-action-dot {\n          display: inline-block;\n          width: 10px;\n          height: 10px;\n          background-color: red;\n          border-radius: 50% !important;\n          margin-left: 5px;\n          margin-right: 5px; }\n      .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n        vertical-align: top;\n        display: table-cell;\n        text-align: center;\n        width: 120px;\n        white-space: nowrap;\n        padding-top: 10px; }\n\n@media (max-width: 767px) {\n  /* 767px */\n  .mt-actions .mt-action .mt-action-body .mt-action-row {\n    display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-info {\n      display: block; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-datetime {\n      display: inline-block;\n      margin-left: 40px; }\n    .mt-actions .mt-action .mt-action-body .mt-action-row .mt-action-buttons {\n      display: inline-block;\n      float: right; } }\n\n.mt-wiget-1 {\n  border: 1px solid #e7ecf1;\n  text-align: center;\n  border-radius: 4px !important;\n  position: relative; }\n  .mt-wiget-1 .mt-icon {\n    position: absolute;\n    right: 10px;\n    top: 10px;\n    margin: 7px;\n    font-size: 20px; }\n    .mt-wiget-1 .mt-icon > a > i {\n      color: #a1e5e1; }\n    .mt-wiget-1 .mt-icon > a:hover > i {\n      color: #79dad5; }\n  .mt-wiget-1 .mt-img {\n    display: inline-block;\n    border-radius: 50% !important;\n    border: 4px solid #e7ecf1;\n    margin: 40px 0 30px 0; }\n    .mt-wiget-1 .mt-img > img {\n      border: 1px solid trnsparent;\n      border-radius: 50% !important; }\n  .mt-wiget-1 .mt-body .mt-username {\n    text-align: center;\n    margin: 5px 10px; }\n  .mt-wiget-1 .mt-body .mt-user-title {\n    text-align: center;\n    margin: 10px 10px 10px 10px;\n    color: #D1D4D6;\n    font-size: 12px; }\n  .mt-wiget-1 .mt-body .mt-stats {\n    margin: 30px 0px 0px 0px; }\n    .mt-wiget-1 .mt-body .mt-stats .btn-group {\n      border-top: 1px solid #e7ecf1; }\n      .mt-wiget-1 .mt-body .mt-stats .btn-group .btn {\n        padding: 10px 10px;\n        font-size: 10px;\n        border-right: 1px solid #e7ecf1; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:hover {\n          background-color: #e7ecf1; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border: 0; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn > i {\n          position: relative;\n          top: 3px;\n          right: 2px;\n          color: #79dad5;\n          font-size: 16px; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:first-child {\n          border-bottom-left-radius: 4px !important; }\n        .mt-wiget-1 .mt-body .mt-stats .btn-group .btn:last-child {\n          border-bottom-right-radius: 4px !important; }\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/css/timeline-old.css",
    "content": "/*--------------------------------------------------\n    [TRANSITION]\n----------------------------------------------------*/\n/* Cubic Bezier Transition */\n/***\nTimeline UI Base\n***/\n.timeline {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  position: relative;\n}\n\n/* The line */\n.timeline:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  width: 10px;\n  background: #ccc;\n  left: 20%;\n  margin-left: -10px;\n}\n\n.timeline > li {\n  position: relative;\n}\n\n/*Remove timeline line for last entry*/\n.timeline > li.timeline-noline:before {\n  content: '';\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  width: 10px;\n  background: #fff;\n  left: 20%;\n  margin-left: -10px;\n}\n\n/* The date/time */\n.timeline > li .timeline-time {\n  display: block;\n  width: 15%;\n  text-align: right;\n  position: absolute;\n}\n\n.timeline > li .timeline-time span {\n  display: block;\n  text-align: right;\n}\n\n.timeline > li .timeline-time span.date {\n  font-size: 12px;\n  color: #aaa;\n  display: block;\n  font-weight: 300;\n}\n\n.timeline > li .timeline-time span.time {\n  font-weight: 300;\n  font-size: 38px;\n  line-height: 38px;\n}\n\n/* Right content */\n.timeline > li .timeline-body {\n  margin: 0 0 15px 25%;\n  color: #fff;\n  padding: 10px;\n  font-weight: 300;\n  position: relative;\n  border-radius: 5px;\n}\n\n.timeline > li .timeline-body h2 {\n  margin-top: 0px;\n  padding: 0 0 5px 0;\n  border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n  font-size: 24px;\n}\n\n.timeline > li .timeline-content {\n  font-size: 14px;\n}\n\n.ie8 .timeline > li .timeline-body h2 {\n  border-bottom: 1px solid #eee;\n}\n\n.timeline > li .timeline-body img.timeline-img {\n  width: 75px;\n  height: 75px;\n  margin: 5px 10px 0 0px;\n}\n\n.timeline > li .timeline-body img.pull-right {\n  margin-left: 10px;\n}\n\n.timeline > li .timeline-body a.nav-link {\n  display: inline-block;\n  margin-top: 10px;\n  color: #fff;\n  font-size: 14px;\n  padding: 0px;\n  text-align: left;\n  text-decoration: none;\n}\n\n.timeline > li .timeline-body a.nav-link:hover {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.timeline > li .timeline-body .btn {\n  margin-top: 10px;\n}\n\n/* The triangle */\n.timeline > li .timeline-body:after {\n  right: 100%;\n  border: solid transparent;\n  content: \" \";\n  height: 0;\n  width: 0;\n  position: absolute;\n  pointer-events: none;\n  border-right-color: #3594cb;\n  border-width: 10px;\n  top: 19px;\n}\n\n.timeline > li .timeline-content:after,\n.timeline > li .timeline-content:before {\n  display: table;\n  line-height: 0;\n  content: \"\";\n}\n\n.timeline > li .timeline-content:after {\n  clear: both;\n}\n\n.timeline > li .timeline-footer:after,\n.timeline > li .timeline-footer:before {\n  content: \"\";\n  display: table;\n  line-height: 0;\n}\n\n.timeline > li .timeline-footer:after {\n  clear: both;\n}\n\n/* The icons */\n.timeline > li .timeline-icon {\n  width: 40px;\n  height: 40px;\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: 1.4em;\n  line-height: 40px;\n  -webkit-font-smoothing: antialiased;\n  position: absolute;\n  color: #fff;\n  background: #aaa;\n  border-radius: 50%;\n  box-shadow: 0 0 0 8px #ccc;\n  text-align: center;\n  left: 20%;\n  top: 0;\n  margin: 5px 0 0 -25px;\n  padding-bottom: 3px;\n  padding-right: 1px;\n  padding-left: 2px;\n  -webkit-border-radius: 30px !important;\n  -moz-border-radius: 30px !important;\n  border-radius: 30px !important;\n}\n\n.timeline > li .timeline-icon > i {\n  font-size: 18px;\n}\n\n/* Red */\n.timeline li.timeline-red .timeline-body:after {\n  border-right-color: #e02222;\n}\n\n.timeline li.timeline-red .timeline-body {\n  background: #e02222;\n}\n\n.timeline li.timeline-red .timeline-time span.time {\n  color: #e02222;\n}\n\n/* Yellow */\n.timeline li.timeline-yellow .timeline-body:after {\n  border-right-color: #ffb848;\n}\n\n.timeline li.timeline-yellow .timeline-body {\n  background: #ffb848;\n}\n\n.timeline li.timeline-yellow .timeline-time span.time {\n  color: #ffb848;\n}\n\n/* Green */\n.timeline li.timeline-green .timeline-body:after {\n  border-right-color: #35aa47;\n}\n\n.timeline li.timeline-green .timeline-body {\n  background: #35aa47;\n}\n\n.timeline li.timeline-green .timeline-time span.time {\n  color: #35aa47;\n}\n\n/* Blue */\n.timeline li.timeline-blue .timeline-body:after {\n  border-right-color: #4b8df8;\n}\n\n.timeline li.timeline-blue .timeline-body {\n  background: #4b8df8;\n}\n\n.timeline li.timeline-blue .timeline-time span.time {\n  color: #4b8df8;\n}\n\n/* Purple */\n.timeline li.timeline-purple .timeline-body:after {\n  border-right-color: #852b99;\n}\n\n.timeline li.timeline-purple .timeline-body {\n  background: #852b99;\n}\n\n.timeline li.timeline-purple .timeline-time span.time {\n  color: #852b99;\n}\n\n/* Grey */\n.timeline li.timeline-grey .timeline-body:after {\n  border-right-color: #555555;\n}\n\n.timeline li.timeline-grey .timeline-body {\n  background: #555555;\n}\n\n.timeline li.timeline-grey .timeline-time span.time {\n  color: #555555;\n}\n\n@media (max-width: 767px) {\n  timeline > li .timeline-time span.time {\n    font-size: 18px;\n  }\n\n  .timeline:before {\n    display: none;\n  }\n\n  .timeline > li .timeline-time {\n    width: 100%;\n    position: relative;\n    padding: 0 0 20px 0;\n  }\n\n  .timeline > li .timeline-time span {\n    text-align: left;\n  }\n\n  .timeline > li .timeline-body {\n    margin: 0 0 30px 0;\n    padding: 1em;\n  }\n\n  .timeline > li .timeline-body:after {\n    right: auto;\n    left: 20px;\n    top: -20px;\n  }\n\n  .timeline > li .timeline-icon {\n    position: relative;\n    float: right;\n    left: auto;\n    margin: -55px 5px 0 0px;\n  }\n\n  /*colors*/\n  .timeline li.timeline-red .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #e02222;\n  }\n\n  .timeline li.timeline-blue .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #4b8df8;\n  }\n\n  .timeline li.timeline-green .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #35aa47;\n  }\n\n  .timeline li.timeline-yellow .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #ffb848;\n  }\n\n  .timeline li.timeline-purple .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #852b99;\n  }\n\n  .timeline li.timeline-grey .timeline-body:after {\n    border-right-color: transparent;\n    border-bottom-color: #555555;\n  }\n}\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/ajaxCallbackError.js",
    "content": "var Error = function () {\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        },\n        \n    \t// 显示或者记录错误\n\t    displayError: function(response, ajaxOptions, thrownError) {\n\t    \tif (response.status == 404) {// 页面没有找到\n\t    \t\tSweetAlert.error(\"404: 找不到页面...\");\n            } else if (response.status == 401) {// session过期\n            \tSweetAlert.errorSessionExpire();\n            } else if (response.status == 507) {// 用户访问次数太频繁 \n            \tSweetAlert.error(\"您的访问次数太频繁, 请过一会再试...\");\n            } else {//其他错误\n            \tSweetAlert.error(\"500: 服务端发生错误...\"); \n            }\n            console.log(thrownError);\n\t    }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tError.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/bgmList.js",
    "content": "var deleteBgm = function(bgmId) {\n\t\n\tvar flag = window.confirm(\"是否确认删除？？？\");\n\tif (!flag) {\n\t\treturn;\n\t}\n\t\n\t$.ajax({\n\t\turl: $(\"#hdnContextPath\").val() + '/video/delBgm.action?bgmId=' + bgmId,\n\t\ttype: \"POST\",\n\t\tsuccess: function(data) {\n\t\t\tif (data.status == 200 && data.msg == 'OK') {\n\t\t\t\talert('删除成功~~');\n\t\t\t\tvar jqGrid = $(\"#bgmList\");  \n\t\t\t\tjqGrid.jqGrid().trigger(\"reloadGrid\");\n\t\t\t}\n\t\t}\n\t})\n}\n\nvar BgmList = function() {\n\n\t// 构建bgm列表对象\n    var handleBgmList = function() {\n    \t\n    \t// 上下文对象路径\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\tvar bgmServer = $(\"#bgmServer\").val();\n\t\t\n\t\t\n\t\tvar jqGrid = $(\"#bgmList\");  \n        jqGrid.jqGrid({  \n            caption: \"所有bgm列表\",  \n            url: hdnContextPath + \"/video/queryBgmList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '歌曲名称','作者', '保存路径', '操作'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 30 },  \n                { name: 'name', index: 'name', width: 30 },\n                { name: 'author', index: 'author', width: 20 },\n                { name: 'path', index: 'path', width: 50, \n                \tformatter: function(cellvalue, option, rowObject){\n                \t\t\n                \t\tvar src = bgmServer + cellvalue;\n                \t\tvar html = \"<a href='\" + src + \"' target='_blank'>点我播放</a>\"\n                \t\t\n                \t\treturn html;\n                \t}\n                },\n                { name: '', index: '', width: 50, \n                \tformatter: function(cellvalue, option, rowObject){\n                \t\t\n                \t\tvar html = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=deleteBgm(\"' + rowObject.id + '\") style=\"padding: 1px 3px 1px 3px;\">删除</button>';\n                \t\t\n                \t\treturn html;\n                \t}\n                }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 400,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#bgmListPager\",\t\t// 分页控件的id  \n            subGrid: false\t\t\t\t// 是否启用子表格\n        }).navGrid('#bgmListPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n        \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.bgmList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    \t\n    }\n    \n    return {\n        init: function() {\n        \thandleBgmList();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tBgmList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/commonJSFunction.js",
    "content": "var Common = function () {\n\t\n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        },\n        \n        strIsNotEmpty: function(str) {\n        \tif (str != null && str != undefined && str != '') { \n        \t\treturn true;\n        \t}\n        \treturn false;\n        },\n        \n        // 时间戳转换成指定日期格式\n        formatTime: function(time, format) {\n\t    \tvar t = new Date(time);\n    \t    var tf = function(i){return (i < 10 ? '0' : '') + i};\n    \t    return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){\n    \t        switch(a){\n    \t            case 'yyyy':\n    \t                return tf(t.getFullYear());\n    \t                break;\n    \t            case 'MM':\n    \t                return tf(t.getMonth() + 1);\n    \t                break;\n    \t            case 'mm':\n    \t                return tf(t.getMinutes());\n    \t                break;\n    \t            case 'dd':\n    \t                return tf(t.getDate());\n    \t                break;\n    \t            case 'HH':\n    \t                return tf(t.getHours());\n    \t                break;\n    \t            case 'ss':\n    \t                return tf(t.getSeconds());\n    \t                break;\n    \t        }\n    \t    })\n\t    }    \n\t    \n\t    \n    };\n\n}();\n\njQuery(document).ready(function() {\n\tCommon.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/dataDict.js",
    "content": "var reloadDataDictGrid = function() {\n\tvar jqGrid = $(\"#jqGridDataDictList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/dataDict/getDataDictList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\nvar DataDict = function () {\n\n    // 用户信息\n\tvar handleDataDict = function() {\n\t\t\n        $('#dataDictForm').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            rules: {\n            \ttypeName: {\n                    required: true\n                },\n                typeCode: {\n                    required: true\n                },\n                ddkey: {\n                    required: true\n                },\n                ddvalue: {\n                    required: true\n                },\n                isShow: {\n                \trequired: true\n                }\n            },\n\n            messages: {\n                typeName: {\n                    required: \"字典名称不能为空.\"\n                },\n                typeCode: {\n                    required: \"字典码不能为空.\"\n                },\n                ddkey: {\n                    required: \"key不能为空.\"\n                },\n                ddvalue: {\n                    required: \"value不能为空.\"\n                },\n                isShow: {\n                \trequired: \"是否显示不能为空.\"\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit   \n                $('.alert-danger', $('#dataDictForm')).show();\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tApp.blockUI();\n            \t\n            \tvar dataDictId = $(\"#dataDictId\").val();\n            \n            \tvar dataDictForm = $('#dataDictForm');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \tdataDictForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/dataDict/saveOrUpdate.action', // 需要提交的 url\n                    data: dataDictForm.serialize(),\n                    success: function(data) {\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \tSweetAlert.success(\"保存成功！\");\n                        \tApp.unblockUI();\n                        \t\n                        \t// 修改操作需要刷新grid以及关闭窗口\n                        \tif (dataDictId != \"\" && dataDictId != null && dataDictId != undefined) {\n                        \t\treloadDataDictGrid();\n                        \t\t$(\"#ajax-modifyDataDict-modal\").modal('hide');\n                        \t}\n                        } else {\n                        \tSweetAlert.error(data.msg);\n                        \tApp.unblockUI();\n                        }\n                    },\n\t                error: function (response, ajaxOptions, thrownError) {\n\t                \tError.displayError(response, ajaxOptions, thrownError); \n\t                \tApp.unblockUI();\n\t                }\n                });\n            \t\n            }\n        });\n\n        $('#dataDictForm input').keypress(function(e) {\n            if (e.which == 13) {\n                if ($('#dataDictForm').validate().form()) {\n                    $('#dataDictForm').submit(); //form validation success, call ajax form submit\n                }\n                return false;\n            }\n        });\n        \n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleDataDict();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tDataDict.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/dataDictList.js",
    "content": "// 删除数据字典\nvar deleteDataDict = function(dataDictId) {\n\t\n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\n\tswal({\n\t\t  title: \"提醒\",\n\t\t  text: \"确认删除?\",\n\t\t  type: \"warning\",\n\t\t  confirmButtonText: \"确认!\",\n\t\t  confirmButtonClass: \"btn-warning\",\n\t\t  showCancelButton: true,\n\t\t  cancelButtonText: \"噢!等等...\",\n\t\t  confirmButtonColor: \"#DD6B55\",  \n\t\t  closeOnConfirm: false\n\t}, function(isConfirm) {\n\t\tif (isConfirm) {\n\t\t\tApp.blockUI();\n\t\t\t\n\t\t\t$.ajax({\n\t\t    \turl: $(\"#hdnContextPath\").val() + \"/dataDict/delete.action\",\n\t\t    \ttype: \"POST\",\n\t\t    \tasync: false,\n\t\t    \tdata: {\"ddId\": dataDictId},\n\t\t    \tsuccess: function(data) {\n\t\t            if(data.status == 200 && data.msg == \"OK\") {\n\t\t            \tApp.unblockUI();\n\t\t            \tSweetAlert.success(\"删除成功！\");\n\t\t            \t\n\t\t            \t// 刷新jqgrid\n\t\t            \treloadDataDictGrid();\n\t\t            } else {\n\t\t            \tApp.unblockUI();\n\t\t            \tconsole.log(JSON.stringify(data));\n\t\t            }\n\t\t    \t},\n\t\t        error: function (response, ajaxOptions, thrownError) {\n\t\t        \tApp.unblockUI();\n\t\t        \tError.displayError(response, ajaxOptions, thrownError);                \n\t\t        }\n\t\t    });\n\t\t\t\n\t\t}\n\t});\n\t\n}\n\n// 重新刷新grid\nvar reloadDataDictGrid = function() {\n\tvar jqGrid = $(\"#jqGridDataDictList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/dataDict/getDataDictList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\n// 重新渲染modal\nfunction renderModal() {\n\t// 重新渲染ajax modal\n\tCommon.openAjaxModal('a[name=\"ajaxModifyDataDictLink\"]', '#ajax-modifyDataDict-modal');\n} \n\n// 数据字典对象\nvar DataDictList = function () {\n\t\n    // 数据字典列表\n\tvar handleDataDictList = function() {\n    \t\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\t\n\t\tvar jqGrid = $(\"#jqGridDataDictList\");  \n        jqGrid.jqGrid({  \n            caption: \"数据字典列表\",  \n            url: hdnContextPath + \"/dataDict/getDataDictList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '字典名称', '字典码', 'key', 'value', '是否显示', '操作'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 60, sortable: false, hidden: true },  \n                { name: 'typeName', index: 'typeName', width: 30, sortable: false },\n                { name: 'typeCode', index: 'typeCode', width: 30, sortable: false },\n                { name: 'ddkey', index: 'ddkey', width: 30, sortable: false },\n                { name: 'ddvalue', index: 'ddvalue', width: 30, sortable: false },\n                { name: 'isShow', index: 'isShow', width: 30, sortable: false },\n                {\n                \twidth:50, sortable: false,\n\t\t\t    \tformatter:function(cellvalue, options, rowObject) {\n\t\t\t    \t\t\n\t\t\t    \tvar ddId = rowObject.id;\n\t\t\t    \t\n\t\t\t    \tvar btnModify = '<a class=\"btn btn-outline blue-chambray\" id=\"ajaxModifyDataDictLink\" name=\"ajaxModifyDataDictLink\" data-url=\"' + hdnContextPath + '/dataDict/modifyDataDict.action?ddId=' + ddId + '\" data-toggle=\"modal\" style=\"padding: 1px 3px 1px 3px;\">编辑</a>';\n\t\t\t    \t\n\t\t\t    \tvar btnDelete = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=deleteDataDict(\"' + ddId + '\") style=\"padding: 1px 3px 1px 3px;\">删除</button>';\n\t\t\t    \t\n\t\t\t    \treturn btnModify + btnDelete}  // success\n                }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n//            multiselect: true,  \t\t// 定义是否可以多选\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n//            width: 900,\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 500,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#jqGridDataDictPager\",\t\t// 分页控件的id  \n            subGrid: false,\t\t\t\t// 是否启用子表格\n            gridComplete: renderModal\n        }).navGrid('#jqGridDataDictPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.jqGridDataDictList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        \thandleDataDictList();\n        \t\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {\n\tDataDictList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/demoItem.js",
    "content": "var reloadItemGrid = function() {\n\tvar jqGrid = $(\"#jqGridDemoItemList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/demoItem/getItemInfoList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\n// 商品对象信息\nvar DemoItemInfo = function () {\n\n    // 商品对象的操作函数\n\tvar handleDemoItemInfo = function() {\n\t\t\n        $('#itemForm').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            rules: {\n            \tname: {\n                    required: true\n                },\n                amount: {\n                    required: true,\n                    digits: true\n                }\n            },\n\n            messages: {\n            \tname: {\n                    required: \"商品名称不能为空.\"\n                },\n                amount: {\n                    required: \"金额不能为空.\",\n                    digits: \"请输入一个数字作为价格.\"\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit   \n                $('.alert-danger', $('#itemForm')).show();\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tApp.blockUI();\n            \t\n            \tvar itemForm = $('#itemForm');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \titemForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/demoItem/saveOrUpdate.action', // 需要提交的 url\n                    data: itemForm.serialize(),\n                    success: function(data) {\n                    \tdebugger;\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \tSweetAlert.success(\"保存成功！\");\n                        \tApp.unblockUI();\n                        \t\n                        \t// 修改操作需要刷新grid以及关闭窗口\n                        \tvar itemId = $(\"#itemId\").val();\n                        \tif (itemId != \"\" && itemId != null && itemId != undefined) {\n                        \t\treloadItemGrid();\n                        \t\t$(\"#ajax-modifyItem-modal\").modal('hide');\n                        \t}\n                        } else {\n                        \tSweetAlert.error(data.msg);\n                        \tApp.unblockUI();\n                        }\n                    },\n\t                error: function (response, ajaxOptions, thrownError) {\n\t                \tError.displayError(response, ajaxOptions, thrownError); \n\t                \tApp.unblockUI();\n\t                }\n                });\n            \t\n            }\n        });\n\n        $('#itemForm input').keypress(function(e) {\n            if (e.which == 13) {\n                if ($('#itemForm').validate().form()) {\n                    $('#itemForm').submit(); //form validation success, call ajax form submit\n                }\n                return false;\n            }\n        });\n        \n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleDemoItemInfo();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tDemoItemInfo.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/demoItemList.js",
    "content": "\n// 重新渲染modal\nfunction renderModal() {\n\t// 重新渲染ajax modal\n\tCommon.openAjaxModal('a[name=\"ajaxDetailUserInfoLink\"]', '#ajax-detailItemInfo-modal');\n\tCommon.openAjaxModal('a[name=\"ajaxModifyItemLink\"]', '#ajax-modifyItem-modal');\n} \n\nvar reloadItemGrid = function() {\n\tvar jqGrid = $(\"#jqGridDemoItemList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/demoItem/getItemInfoList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\n// 删除商品\nvar deleteItem = function(itemId) {\n\t\n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\n\tswal({\n\t\t  title: \"提醒\",\n\t\t  text: \"确认删除?\",\n\t\t  type: \"warning\",\n\t\t  confirmButtonText: \"确认!\",\n\t\t  confirmButtonClass: \"btn-warning\",\n\t\t  showCancelButton: true,\n\t\t  cancelButtonText: \"噢!等等...\",\n\t\t  confirmButtonColor: \"#DD6B55\",  \n\t\t  closeOnConfirm: false\n\t}, function(isConfirm) {\n\t\tif (isConfirm) {\n\t\t\tApp.blockUI();\n\t\t\t\n\t\t\t$.ajax({\n\t\t    \turl: $(\"#hdnContextPath\").val() + \"/demoItem/deleteItem.action\",\n\t\t    \ttype: \"POST\",\n\t\t    \tasync: false,\n\t\t    \tdata: {\"itemId\": itemId},\n\t\t    \tsuccess: function(data) {\n\t\t            if(data.status == 200 && data.msg == \"OK\") {\n\t\t            \tApp.unblockUI();\n\t\t            \tSweetAlert.success(\"删除成功！\");\n\t\t            \t\n\t\t            \t// 刷新jqgrid\n\t\t            \treloadItemGrid();\n\t\t            } else {\n\t\t            \tApp.unblockUI();\n\t\t            \tconsole.log(JSON.stringify(data));\n\t\t            }\n\t\t    \t},\n\t\t        error: function (response, ajaxOptions, thrownError) {\n\t\t        \tApp.unblockUI();\n\t\t        \tError.displayError(response, ajaxOptions, thrownError);                \n\t\t        }\n\t\t    });\n\t\t\t\n\t\t}\n\t});\n\t\n}\n\n// 商品对象\nvar DemoItemList = function () {\n\t\n    // 商品列表\n\tvar handleDemoItemList = function() {\n    \t\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\t\n\t\tvar jqGrid = $(\"#jqGridDemoItemList\");  \n        jqGrid.jqGrid({  \n            caption: \"商品信息列表\",  \n            url: hdnContextPath + \"/demoItem/getItemInfoList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '商品名', '金额', '操作'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 60, sortable: false, hidden: true },  \n                { name: 'name', index: 'name', width: 30, sortable: false },\n                { name: 'amount', index: 'amount', width: 30, sortable: false,\n                \tformatter: function (cellvalue, options, rowObject) {\n                \t\t\n                \t\tvar amount = cellvalue / 100;\n                \t\t\n                \t\treturn \"￥\" + amount + \" 元\";\n                \t}\n                },\n                { width: 30, sortable: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n\t\t\t    \t\t\n    \t\t\t    \tvar itemId = rowObject.id;\n    \t\t\t    \t\n    \t\t\t    \tvar btnDetail = '<a class=\"btn btn-outline blue-chambray\" id=\"ajaxDetailItemInfoLink\" name=\"ajaxDetailUserInfoLink\" data-url=\"' + hdnContextPath + '/demoItem/showItemInfoPage.action?itemId=' + itemId + '\" data-toggle=\"modal\" style=\"padding: 1px 3px 1px 3px;\">详情</a>';\n    \t\t\t    \t\n    \t\t\t    \tvar btnModify = '<a class=\"btn btn-outline blue-chambray\" id=\"ajaxModifyItemLink\" name=\"ajaxModifyItemLink\" data-url=\"' + hdnContextPath + '/demoItem/showModifyItemPage.action?itemId=' + itemId + '\" data-toggle=\"modal\" style=\"padding: 1px 3px 1px 3px;\">编辑</a>';\n    \t\t\t    \t\n    \t\t\t    \tvar btnDelete = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=deleteItem(\"' + itemId + '\") style=\"padding: 1px 3px 1px 3px;\">删除</button>';\n    \t\t\t    \t\n    \t\t\t    return btnDetail + btnModify + btnDelete; }  // success\n                }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n//            multiselect: true,  \t\t// 定义是否可以多选\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n//            width: 900,\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: \"auto\",\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#jqGridDemoItemPager\",\t\t// 分页控件的id  \n            subGrid: false,\t\t\t\t// 是否启用子表格\n            gridComplete: renderModal\t// grid加载完毕后重新渲染model\n        }).navGrid('#jqGridDemoItemPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.jqGridDemoItemList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        \thandleDemoItemList();\n        \t\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {\n\tDemoItemList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/login.js",
    "content": "var Login = function() {\n\n\t// 构建登录对象\n    var handleLogin = function() {\n\n    \t// jquery-form-validate 前端的验证框架\n        $('.login-form').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            rules: {\n                username: {\n                    required: true\n                },\n                password: {\n                    required: true\n                }\n            },\n\n            messages: {\n                username: {\n                    required: \"用户名不能为空.\"\n                },\n                password: {\n                    required: \"密码不能为空.\"\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tvar loginForm = $('.login-form');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \tloginForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/users/login.action', // 需要提交的 url\n                    data: loginForm.serialize(),\n                    success: function(data) {\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \twindow.location.href = hdnContextPath + \"/center.action\";\n                        } else {\n//                        \tSweetAlert.error(data.msg);\n                        \talert(data.msg);\n                        }\n                    }\n                });\n            \t\n            }\n        });\n\n    }\n    \n    return {\n        init: function() {\n            handleLogin();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Login.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/menu.js",
    "content": "var Menu = function () {\n\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n\n        },\n    \n    \t// 动态加载页面\n\t    ajaxLoadPage: function(url) {\n\t    \t$(\".page-content\").load(url);\n\t    }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tMenu.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/reportList.js",
    "content": "var forbidVideo = function(videoId) {\n\t\n\tvar flag = window.confirm(\"是否禁播\");\n\tif (!flag) {\n\t\treturn;\n\t}\n\t\n\t$.ajax({\n    \turl: $(\"#hdnContextPath\").val() + \"/video/forbidVideo.action?videoId=\" + videoId,\n    \ttype: \"POST\",\n    \tasync: false,\n    \tsuccess: function(data) {\n            if(data.status == 200 && data.msg == \"OK\") {\n            \talert(\"操作成功\");\n            \tvar jqGrid = $(\"#usersReportsList\");  \n\t\t\t\tjqGrid.jqGrid().trigger(\"reloadGrid\");\n            } else {\n            \tconsole.log(JSON.stringify(data));\n            }\n    \t}\n\t})\n}\n\n// 定义举报列表对象\nvar UsersReportsList = function () {\n\t\n    // 举报列表\n\tvar handleUsersReportsList = function() {\n    \t\n\t\t// 上下文对象路径\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\tvar apiServer = $(\"#apiServer\").val();\n\t\tvar apiSourceServer = $(\"#apiSourceServer\").val();\n\t\tdebugger;\n\t\tvar jqGrid = $(\"#usersReportsList\");  \n        jqGrid.jqGrid({  \n            caption: \"被举报的视频列表\",  \n            url: hdnContextPath + \"/video/reportList.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '举报类型', '举报内容', '被举报人', '被举报视频id', '被举报视频', '视频状态', '提交用户', '举报日期', \"操作\"],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 30, sortable: false, hidden: false },  \n                { name: 'title', index: 'title', width: 30, sortable: false },\n                { name: 'content', index: 'content', width: 60, sortable: false },\n                { name: 'dealUsername', index: 'dealUsername', width: 20, sortable: false },\n                { name: 'dealVideoId', index: 'dealVideoId', width: 30, sortable: false },\n                { name: 'videoPath', index: 'videoPath', width: 30, sortable: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar src = apiSourceServer + cellvalue;\n                \t\tvar display = \"<a href='\" + src + \"' target='_blank'>点我播放</a>\"\n\t\t\t    \t\treturn display;\n\t\t\t    \t}\n                },\n                { name: 'status', index: 'status', width: 40, sortable: false, hidden: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n\t\t\t    \t\treturn cellvalue==1 ? '正常' : '禁播';\n\t\t\t    \t}\n\t\t\t    },\n                { name: 'submitUsername', index: 'submitUsername', width: 20, sortable: false },\n                { name: 'createDate', index: 'createDate', width: 40, sortable: false, hidden: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar createTime = Common.formatTime(cellvalue,'yyyy-MM-dd HH:mm:ss');\n\t\t\t    \t\treturn createTime;\n\t\t\t    \t}\n\t\t\t    },\n                { name: '', index: '', width: 20, sortable: false, hidden: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar button = '<button class=\"btn btn-outline blue-chambray\" id=\"\" onclick=forbidVideo(\"' + rowObject.dealVideoId + '\") style=\"padding: 1px 3px 1px 3px;\">禁止播放</button>';\n\t\t\t    \t\treturn button;\n\t\t\t    \t}\n\t\t\t    }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 500,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#usersReportsListPager\",\t\t// 分页控件的id  \n            subGrid: false\t\t\t\t// 是否启用子表格\n        }).navGrid('#usersReportsListPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.usersReportsList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {debugger;\n        \thandleUsersReportsList();\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {debugger;\n\tUsersReportsList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/userInfo.js",
    "content": "var reloadUserGrid = function() {\n\tvar jqGrid = $(\"#jqGridUserInfoList\");  \n\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\tjqGrid.jqGrid('setGridParam',{datatype:'json'}).setGridParam({ \n\t\tpage: 1,\n        url: hdnContextPath + \"/user/getUserInfoList.action\",\n    }).trigger(\"reloadGrid\");\n}\n\nvar UserInfo = function () {\n\n    // 用户信息\n\tvar handleUserInfo = function() {\n\t\t\n\t\tjQuery.validator.addMethod(\"nicknameIsExist\", function(value, element) {\n\t\t\t\n\t\t\tvar nickname = value;\n\t\t\tvar userId = $(\"#userId\").val();\n\t\t\t\n\t    \tvar flag = true;\n\t        $.ajax({\n\t        \turl: $(\"#hdnContextPath\").val() + \"/user/nicknameIsExist.action\",\n\t        \ttype: \"POST\",\n\t        \tasync: false,\n\t        \tdata: {\"nickname\": nickname, \"userId\": userId},\n\t        \tsuccess: function(data) {\n\t                if(data.status == 200 && data.msg == \"OK\") {\n\t                \tif (data.data) {\n\t                \t\tflag = false;\n\t                \t} else {\n\t                \t\tflag = true;\n\t                \t}\n\t                } else {\n\t                \tconsole.log(JSON.stringify(data));\n\t                }\n\t        \t},\n                error: function (response, ajaxOptions, thrownError) {\n                \tError.displayError(response, ajaxOptions, thrownError);                \n                }\n\t        });\n\t    \t\n\t    \treturn flag;\n\t\t}, \"该昵称已经存在.\");\n\t\t\n\t\tjQuery.validator.addMethod(\"usernameIsExist\", function(value, element) {\n    \t\t\n    \t\tvar username = value;\n    \t\tvar userId = $(\"#userId\").val();\n    \t\t\n        \tvar flag = true;\n            $.ajax({\n            \turl: $(\"#hdnContextPath\").val() + \"/user/usernameIsExist.action\",\n            \ttype: \"POST\",\n            \tasync: false,\n            \tdata: {\"username\": username, \"userId\": userId},\n            \tsuccess: function(data) {\n                    if(data.status == 200 && data.msg == \"OK\") {\n                    \tif (data.data) {\n                    \t\tflag = false;\n                    \t} else {\n                    \t\tflag = true;\n                    \t}\n                    } else {\n                    \tconsole.log(JSON.stringify(data));\n                    }\n            \t},\n                error: function (response, ajaxOptions, thrownError) {\n                \tError.displayError(response, ajaxOptions, thrownError);                \n                }\n            });\n        \t\n        \treturn flag;\n    \t}, \"该用户名已经存在.\");\n    \t\n        $('#userInfoForm').validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            rules: {\n            \tusername: {\n                    required: true,\n                    rangelength: [2,8],\n                    usernameIsExist: true\n                },\n                password: {\n                    required: true,\n                    minlength:6\n                    \n                },\n                confirmPassword: {\n                    required: true,\n                    equalTo: \"#password\"\n                },\n                nickname: {\n                    required: true,\n                    rangelength: [2,8],\n                    nicknameIsExist: true\n                },\n                age: {\n                \tdigits: true,\n                \trange: [12,100] \n                }\n            },\n\n            messages: {\n            \tusername: {\n                    required: \"用户名不能为空.\",\n                    rangelength: \"用户名的长度请控制在2-8位.\"\n                },\n                password: {\n                    required: \"密码不能为空.\",\n                    minlength: \"密码长度不能少于6位.\"\n                },\n                confirmPassword: {\n                    required: \"确认密码不能为空.\",\n                    equalTo: \"两次密码输入不一致.\"\n                },\n                nickname: {\n                    required: \"昵称不能为空.\",\n                    rangelength: \"昵称的长度请控制在2-8位.\"\n                },\n                age: {\n                \tdigits: \"年龄必须为整数.\",\n                \trange: \"年龄范围12岁-100岁 (-_-|||)\"\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit   \n                $('.alert-danger', $('#userInfoForm')).show();\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element).closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label.closest('.form-group').removeClass('has-error');\n                label.remove();\n            },\n\n            errorPlacement: function(error, element) {\n                error.insertAfter(element.closest('#input-error'));\n            },\n\n            submitHandler: function(form) {\n            \t\n            \tApp.blockUI();\n            \t\n            \tvar userId = $(\"#userId\").val();\n            \n            \tvar userInfoForm = $('#userInfoForm');\n            \tvar hdnContextPath = $(\"#hdnContextPath\").val();\n            \tuserInfoForm.ajaxSubmit({\n            \t\tdataType: \"json\",\n                    type: \"post\", // 提交方式 get/post\n                    url: hdnContextPath + '/user/saveOrUpdate.action', // 需要提交的 url\n                    data: userInfoForm.serialize(),\n                    success: function(data) {\n                        // 登录成功或者失败的提示信息\n                        if (data.status == 200 && data.msg == \"OK\") {\n                        \tSweetAlert.success(\"保存成功！\");\n                        \tApp.unblockUI();\n                        \t\n                        \t// 修改操作需要刷新grid以及关闭窗口\n                        \tif (userId != \"\" && userId != null && userId != undefined) {\n                        \t\treloadUserGrid();\n                        \t\t$(\"#ajax-modifyUserInfo-modal\").modal('hide');\n                        \t}\n                        } else {\n                        \tSweetAlert.error(data.msg);\n                        \tApp.unblockUI();\n                        }\n                    },\n\t                error: function (response, ajaxOptions, thrownError) {\n\t                \tError.displayError(response, ajaxOptions, thrownError); \n\t                \tApp.unblockUI();\n\t                }\n                });\n            \t\n            }\n        });\n\n        $('#userInfoForm input').keypress(function(e) {\n            if (e.which == 13) {\n                if ($('#userInfoForm').validate().form()) {\n                    $('#userInfoForm').submit(); //form validation success, call ajax form submit\n                }\n                return false;\n            }\n        });\n        \n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleUserInfo();\n        \t\n        \t'use strict';\n        \t$(\"#distpicker\").distpicker({\n//        \t\tprovince: \"浙江省\",\n//        \t\tcity: \"杭州市\",\n//        \t\tdistrict: \"西湖区\"\n        \t});\n        \t\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n\tUserInfo.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/js/usersList.js",
    "content": "// 定义举报列表对象\nvar List = function () {\n\t\n    // 举报列表\n\tvar handleList = function() {\n    \t\n\t\t// 上下文对象路径\n\t\tvar hdnContextPath = $(\"#hdnContextPath\").val();\n\t\tvar apiServer = $(\"#apiServer\").val();\n\t\tvar bgmServer = $(\"#bgmServer\").val();\n\t\tvar apiSourceServer = $(\"#apiSourceServer\").val();\n\n\t\tvar jqGrid = $(\"#usersList\");  \n        jqGrid.jqGrid({  \n            caption: \"短视频用户列表\",  \n            url: hdnContextPath + \"/users/list.action\",  \n            mtype: \"post\",  \n            styleUI: 'Bootstrap',//设置jqgrid的全局样式为bootstrap样式  \n            datatype: \"json\",  \n            colNames: ['ID', '头像', '用户名', '昵称', '粉丝数', '关注数', '获赞数'],  \n            colModel: [  \n                { name: 'id', index: 'id', width: 30, sortable: false, hidden: false },  \n                { name: 'faceImage', index: 'username', width: 50, sortable: false,\n                \tformatter:function(cellvalue, options, rowObject) {\n                \t\tvar src = apiSourceServer + cellvalue;\n                \t\tvar img = \"<img src='\" + src + \"' width='120'></img>\"\n\t\t\t    \t\treturn img;\n\t\t\t    \t}  \n                },\n                { name: 'username', index: 'password', width: 30, sortable: false },\n                { name: 'nickname', index: 'nickname', width: 30, sortable: false },\n                { name: 'fansCounts', index: 'age', width: 20, sortable: false },\n                { name: 'followCounts', index: 'sexValue', width: 20, sortable: false },\n                { name: 'receiveLikeCounts', index: 'province', width: 20, sortable: false, hidden: false }\n            ],  \n            viewrecords: true,  \t\t// 定义是否要显示总记录数\n            rowNum: 10,\t\t\t\t\t// 在grid上显示记录条数，这个参数是要被传递到后台\n            rownumbers: true,  \t\t\t// 如果为ture则会在表格左边新增一列，显示行顺序号，从1开始递增。此列名为'rn'\n            autowidth: true,  \t\t\t// 如果为ture时，则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变，为了使表格宽度能够自动调整则需要实现函数：setGridWidth\n            height: 500,\t\t\t\t// 表格高度，可以是数字，像素值或者百分比\n            rownumWidth: 36, \t\t\t// 如果rownumbers为true，则可以设置行号 的宽度\n            pager: \"#usersListPager\",\t\t// 分页控件的id  \n            subGrid: false\t\t\t\t// 是否启用子表格\n        }).navGrid('#usersListPager', {\n            edit: false,\n            add: false,\n            del: false,\n            search: false\n        });\n        \n  \n        // 随着窗口的变化，设置jqgrid的宽度  \n        $(window).bind('resize', function () {  \n            var width = $('.usersList_wrapper').width()*0.99;  \n            jqGrid.setGridWidth(width);  \n        });  \n        \n        // 不显示水平滚动条\n        jqGrid.closest(\".ui-jqgrid-bdiv\").css({ \"overflow-x\" : \"hidden\" });\n        \n        // 条件查询所有用户列表\n        $(\"#searchUserListButton\").click(function(){\n        \tvar searchUsersListForm = $(\"#searchUserListForm\");\n        \tjqGrid.jqGrid().setGridParam({ \n        \t\tpage: 1,\n                url: hdnContextPath + \"/users/list.action?\" + searchUsersListForm.serialize(),\n            }).trigger(\"reloadGrid\");\n        });\n    }\n    \n    return {\n        // 初始化各个函数及对象\n        init: function () {\n        \thandleList();\n        }\n\n    };\n\n}();\n\n\njQuery(document).ready(function() {\n\tList.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/coming-soon.js",
    "content": "var ComingSoon = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            var austDay = new Date();\n            austDay = new Date(austDay.getFullYear() + 1, 1 - 1, 26);\n            $('#defaultCountdown').countdown({until: austDay});\n            $('#year').text(austDay.getFullYear());\n\n            $.backstretch([\n\t\t            \"../assets/pages/media/bg/1.jpg\",\n\t\t            \"../assets/pages/media/bg/2.jpg\",\n\t\t            \"../assets/pages/media/bg/3.jpg\",\n\t\t    \t\t\"../assets/pages/media/bg/4.jpg\"\n\t\t        ], {\n\t\t        fade: 1000,\n\t\t        duration: 10000\n\t\t   });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComingSoon.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-bootstrap-maxlength.js",
    "content": "var ComponentsBootstrapMaxlength = function () {\n\n    var handleBootstrapMaxlength = function() {\n        $('#maxlength_defaultconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n        })\n    \n        $('#maxlength_thresholdconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n            threshold: 20\n        });\n\n        $('#maxlength_alloptions').maxlength({\n            alwaysShow: true,\n            warningClass: \"label label-success\",\n            limitReachedClass: \"label label-danger\",\n            separator: ' out of ',\n            preText: 'You typed ',\n            postText: ' chars available.',\n            validate: true\n        });\n\n        $('#maxlength_textarea').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true\n        });\n\n        $('#maxlength_placement').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            placement: App.isRTL() ? 'top-right' : 'top-left'\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleBootstrapMaxlength();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapMaxlength.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-bootstrap-multiselect.js",
    "content": "var ComponentsBootstrapMultiselect = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        \t$('.mt-multiselect').each(function(){\n        \t\tvar btn_class = $(this).attr('class');\n        \t\tvar clickable_groups = ($(this).data('clickable-groups')) ? $(this).data('clickable-groups') : false ;\n        \t\tvar collapse_groups = ($(this).data('collapse-groups')) ? $(this).data('collapse-groups') : false ;\n        \t\tvar drop_right = ($(this).data('drop-right')) ? $(this).data('drop-right') : false ;\n        \t\tvar drop_up = ($(this).data('drop-up')) ? $(this).data('drop-up') : false ;\n        \t\tvar select_all = ($(this).data('select-all')) ? $(this).data('select-all') : false ;\n        \t\tvar width = ($(this).data('width')) ? $(this).data('width') : '' ;\n        \t\tvar height = ($(this).data('height')) ? $(this).data('height') : '' ;\n        \t\tvar filter = ($(this).data('filter')) ? $(this).data('filter') : false ;\n\n        \t\t// advanced functions\n        \t\tvar onchange_function = function(option, checked, select) {\n\t                alert('Changed option ' + $(option).val() + '.');\n\t            }\n\t            var dropdownshow_function = function(event) {\n\t                alert('Dropdown shown.');\n\t            }\n\t            var dropdownhide_function = function(event) {\n\t                alert('Dropdown Hidden.');\n\t            }\n\n\t            // init advanced functions\n\t            var onchange = ($(this).data('action-onchange') == true) ? onchange_function : '';\n\t            var dropdownshow = ($(this).data('action-dropdownshow') == true) ? dropdownshow_function : '';\n\t            var dropdownhide = ($(this).data('action-dropdownhide') == true) ? dropdownhide_function : '';\n\n\t            // template functions\n\t            // init variables\n\t            var li_template;\n\t            if ($(this).attr('multiple')){\n\t            \tli_template = '<li class=\"mt-checkbox-list\"><a href=\"javascript:void(0);\"><label class=\"mt-checkbox\"> <span></span></label></a></li>';\n        \t\t} else {\n        \t\t\tli_template = '<li><a href=\"javascript:void(0);\"><label></label></a></li>';\n         \t\t}\n\n\t            // init multiselect\n        \t\t$(this).multiselect({\n        \t\t\tenableClickableOptGroups: clickable_groups,\n        \t\t\tenableCollapsibleOptGroups: collapse_groups,\n        \t\t\tdisableIfEmpty: true,\n        \t\t\tenableFiltering: filter,\n        \t\t\tincludeSelectAllOption: select_all,\n        \t\t\tdropRight: drop_right,\n        \t\t\tbuttonWidth: width,\n        \t\t\tmaxHeight: height,\n        \t\t\tonChange: onchange,\n        \t\t\tonDropdownShow: dropdownshow,\n        \t\t\tonDropdownHide: dropdownhide,\n        \t\t\tbuttonClass: btn_class,\n        \t\t\t//optionClass: function(element) { return \"mt-checkbox\"; },\n        \t\t\t//optionLabel: function(element) { console.log(element); return $(element).html() + '<span></span>'; },\n        \t\t\t/*templates: {\n\t\t                li: li_template,\n\t\t            }*/\n        \t\t});   \n        \t});\n         \t\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapMultiselect.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-bootstrap-select-splitter.js",
    "content": "var ComponentsBootstrapSelectSplitter = function() {\n\n    var selectSplitter = function() {\n        $('#select_selectsplitter1').selectsplitter({\n            selectSize: 4\n        });\n        $('#select_selectsplitter2').selectsplitter({\n            selectSize: 6\n        });\n        $('#select_selectsplitter3').selectsplitter({\n            selectSize: 5\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            selectSplitter();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapSelectSplitter.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-bootstrap-select.js",
    "content": "var ComponentsBootstrapSelect = function () {\n\n    var handleBootstrapSelect = function() {\n        $('.bs-select').selectpicker({\n            iconBase: 'fa',\n            tickIcon: 'fa-check'\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {      \n            handleBootstrapSelect();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n        ComponentsBootstrapSelect.init(); \n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-bootstrap-switch.js",
    "content": "var ComponentsBootstrapSwitch = function () {\n\n    var handleBootstrapSwitch = function() {\n\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioState');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck', false);\n        });\n\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleBootstrapSwitch();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsBootstrapSwitch.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-bootstrap-tagsinput.js",
    "content": "var ComponentsBootstrapTagsinput = function() {\n\n    var handleDemo1 = function() {\n        var elt = $('#object_tagsinput');\n        \n        elt.tagsinput({\n          itemValue: 'value',\n          itemText: 'text',\n        });\n\n        $('#object_tagsinput_add').on('click', function(){\n            elt.tagsinput('add', { \n                \"value\": $('#object_tagsinput_value').val(), \n                \"text\": $('#object_tagsinput_city').val(), \n                \"continent\": $('#object_tagsinput_continent').val()    \n            });\n        });\n\n        elt.tagsinput('add', { \"value\": 1 , \"text\": \"Amsterdam\"   , \"continent\": \"Europe\"    });\n        elt.tagsinput('add', { \"value\": 4 , \"text\": \"Washington\"  , \"continent\": \"America\"   });\n        elt.tagsinput('add', { \"value\": 7 , \"text\": \"Sydney\"      , \"continent\": \"Australia\" });\n        elt.tagsinput('add', { \"value\": 10, \"text\": \"Beijing\"     , \"continent\": \"Asia\"      });\n        elt.tagsinput('add', { \"value\": 13, \"text\": \"Cairo\"       , \"continent\": \"Africa\"    });\n    }\n\n    var handleDemo2 = function() {\n\n        var elt = $('#state_tagsinput');\n\n        elt.tagsinput({\n            tagClass: function(item) {\n                switch (item.continent) {\n                    case 'Europe':\n                        return 'label label-primary';\n                    case 'America':\n                        return 'label label-danger label-important';\n                    case 'Australia':\n                        return 'label label-success';\n                    case 'Africa':\n                        return 'label label-default';\n                    case 'Asia':\n                        return 'label label-warning';\n                }\n            },\n            itemValue: 'value',\n            itemText: 'text'\n        });\n\n         $('#state_tagsinput_add').on('click', function(){\n            elt.tagsinput('add', { \n                \"value\": $('#state_tagsinput_value').val(), \n                \"text\": $('#state_tagsinput_city').val(), \n                \"continent\": $('#state_tagsinput_continent').val()    \n            });\n        });\n        \n        elt.tagsinput('add', {\n            \"value\": 1,\n            \"text\": \"Amsterdam\",\n            \"continent\": \"Europe\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 4,\n            \"text\": \"Washington\",\n            \"continent\": \"America\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 7,\n            \"text\": \"Sydney\",\n            \"continent\": \"Australia\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 10,\n            \"text\": \"Beijing\",\n            \"continent\": \"Asia\"\n        });\n        elt.tagsinput('add', {\n            \"value\": 13,\n            \"text\": \"Cairo\",\n            \"continent\": \"Africa\"\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleDemo1();\n            handleDemo2();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsBootstrapTagsinput.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-bootstrap-touchspin.js",
    "content": "var ComponentsBootstrapTouchSpin = function() {\n\n    var handleDemo = function() {\n\n        $(\"#touchspin_1\").TouchSpin({\n            min: 0,\n            max: 100,\n            step: 0.1,\n            decimals: 2,\n            boostat: 5,\n            maxboostedstep: 10,\n            postfix: '%'\n        });\n\n        $(\"#touchspin_2\").TouchSpin({\n            min: -1000000000,\n            max: 1000000000,\n            stepinterval: 50,\n            maxboostedstep: 10000000,\n            prefix: '$'\n        });\n\n        $(\"#touchspin_3\").TouchSpin({\n            verticalbuttons: true\n        });\n\n        $(\"#touchspin_4\").TouchSpin({\n            verticalbuttons: true,\n            verticalupclass: 'glyphicon glyphicon-plus',\n            verticaldownclass: 'glyphicon glyphicon-minus'\n        });\n\n        $(\"#touchspin_5\").TouchSpin();\n\n        $(\"#touchspin_6\").TouchSpin({\n            initval: 40\n        });\n\n        $(\"#touchspin_7\").TouchSpin({\n            initval: 40\n        });\n\n        $(\"#touchspin_8\").TouchSpin({\n            postfix: \"a button\",\n            postfix_extraclass: \"btn red\"\n        });\n\n        $(\"#touchspin_9\").TouchSpin({\n            postfix: \"a button\",\n            postfix_extraclass: \"btn green\"\n        });\n\n        $(\"#touchspin_10\").TouchSpin({\n            prefix: \"pre\",\n            postfix: \"post\"\n        });\n\n        $(\"#touchspin_11\").TouchSpin({\n            buttondown_class: \"btn blue\",\n            buttonup_class: \"btn red\"\n        });\n\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleDemo();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsBootstrapTouchSpin.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-clipboard.js",
    "content": "// ClipboardJS\n\nvar ComponentsClipboard = function() {\n\n    return {\n        //main function to initiate the module\n        init: function() {\n        \tvar paste_text;\n\n        \t$('.mt-clipboard').each(function(){\n        \t\tvar clipboard = new Clipboard(this);\t\n\n        \t\tclipboard.on('success', function(e) {\n\t\t\t\t    paste_text = e.text;\n\t\t\t\t    console.log(paste_text);\n\t\t\t\t});\n        \t});\n\n        \t$('.mt-clipboard').click(function(){\n    \t\t\tif($(this).data('clipboard-paste') == true){\n    \t\t\t\tif(paste_text){\n        \t\t\t\tvar paste_target = $(this).data('paste-target');\n        \t\t\t\t$(paste_target).val(paste_text);\n        \t\t\t\t$(paste_target).html(paste_text);\n        \t\t\t} else {\n        \t\t\t\talert('No text was copied or cut.');\n        \t\t\t}\n        \t\t} \n    \t\t});\n        }\n    }\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsClipboard.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-code-editors.js",
    "content": "var ComponentsCodeEditors = function () {\n    \n    var handleDemo1 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_1');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"ambiance\",\n            mode: 'javascript'\n        });\n    }\n\n    var handleDemo2 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_2');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"material\",\n            mode: 'css'\n        });\n    }\n\n    var handleDemo3 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_3');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"neat\",\n            mode: 'javascript',\n            readOnly: true\n        });\n    }\n\n    var handleDemo4 = function () {\n        var myTextArea = document.getElementById('code_editor_demo_4');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            theme:\"neo\",\n            mode: 'css',\n            readOnly: true\n        });\n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleDemo1();\n            handleDemo2();\n            handleDemo3();\n            handleDemo4();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsCodeEditors.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-color-pickers.js",
    "content": "var ComponentsColorPickers = function() {\n\n    var handleColorPicker = function () {\n        if (!jQuery().colorpicker) {\n            return;\n        }\n        $('.colorpicker-default').colorpicker({\n            format: 'hex'\n        });\n        $('.colorpicker-rgba').colorpicker();\n    }\n\n    var handleMiniColors = function() {\n        $('.demo').each(function() {\n            //\n            // Dear reader, it's actually very easy to initialize MiniColors. For example:\n            //\n            //  $(selector).minicolors();\n            //\n            // The way I've done it below is just for the demo, so don't get confused\n            // by it. Also, data- attributes aren't supported at this time...they're\n            // only used for this demo.\n            //\n            $(this).minicolors({\n                control: $(this).attr('data-control') || 'hue',\n                defaultValue: $(this).attr('data-defaultValue') || '',\n                inline: $(this).attr('data-inline') === 'true',\n                letterCase: $(this).attr('data-letterCase') || 'lowercase',\n                opacity: $(this).attr('data-opacity'),\n                position: $(this).attr('data-position') || 'bottom left',\n                change: function(hex, opacity) {\n                    if (!hex) return;\n                    if (opacity) hex += ', ' + opacity;\n                    if (typeof console === 'object') {\n                        console.log(hex);\n                    }\n                },\n                theme: 'bootstrap'\n            });\n\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleMiniColors();\n            handleColorPicker();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsColorPickers.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-context-menu.js",
    "content": "var ComponentsContextMenu = function () {\n\n    var demo2 = function() {\n        $('#main').contextmenu({\n            target: '#context-menu2',\n            before: function (e) {\n                // This function is optional.\n                // Here we use it to stop the event if the user clicks a span\n                e.preventDefault();\n                if (e.target.tagName == 'SPAN') {\n                    e.preventDefault();\n                    this.closemenu();\n                    return false;\n                }\n                //this.getMenu().find(\"li\").eq(2).find('a').html(\"Dynamically changed!\");\n                return true;\n            }\n        });\n    }\n\n    var demo3 = function() {\n        // Demo 3\n        $('#context2').contextmenu({\n            target: '#context-menu2',\n            onItem: function (context, e) {\n                alert($(e.target).text());\n            }\n        });\n\n        $('#context-menu2').on('show.bs.context', function (e) {\n            console.log('before show event');\n        });\n\n        $('#context-menu2').on('shown.bs.context', function (e) {\n            console.log('after show event');\n        });\n\n        $('#context-menu2').on('hide.bs.context', function (e) {\n            console.log('before hide event');\n        });\n\n        $('#context-menu2').on('hidden.bs.context', function (e) {\n            console.log('after hide event');\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        \n        init: function () {\n            demo2();\n            demo3();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsContextMenu.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-date-time-pickers.js",
    "content": "var ComponentsDateTimePickers = function () {\n\n    var handleDatePickers = function () {\n\n        if (jQuery().datepicker) {\n            $('.date-picker').datepicker({\n                rtl: App.isRTL(),\n                orientation: \"left\",\n                autoclose: true\n            });\n            //$('body').removeClass(\"modal-open\"); // fix bug when inline picker is used in modal\n        }\n\n        /* Workaround to restrict daterange past date select: http://stackoverflow.com/questions/11933173/how-to-restrict-the-selectable-date-ranges-in-bootstrap-datepicker */\n    \n        // Workaround to fix datepicker position on window scroll\n        $( document ).scroll(function(){\n            $('#form_modal2 .date-picker').datepicker('place'); //#modal is the id of the modal\n        });\n    }\n\n    var handleTimePickers = function () {\n\n        if (jQuery().timepicker) {\n            $('.timepicker-default').timepicker({\n                autoclose: true,\n                showSeconds: true,\n                minuteStep: 1\n            });\n\n            $('.timepicker-no-seconds').timepicker({\n                autoclose: true,\n                minuteStep: 5,\n                defaultTime: false\n            });\n\n            $('.timepicker-24').timepicker({\n                autoclose: true,\n                minuteStep: 5,\n                showSeconds: false,\n                showMeridian: false\n            });\n\n            // handle input group button click\n            $('.timepicker').parent('.input-group').on('click', '.input-group-btn', function(e){\n                e.preventDefault();\n                $(this).parent('.input-group').find('.timepicker').timepicker('showWidget');\n            });\n\n            // Workaround to fix timepicker position on window scroll\n            $( document ).scroll(function(){\n                $('#form_modal4 .timepicker-default, #form_modal4 .timepicker-no-seconds, #form_modal4 .timepicker-24').timepicker('place'); //#modal is the id of the modal\n            });\n        }\n    }\n\n    var handleDateRangePickers = function () {\n        if (!jQuery().daterangepicker) {\n            return;\n        }\n\n        $('#defaultrange').daterangepicker({\n                opens: (App.isRTL() ? 'left' : 'right'),\n                format: 'MM/DD/YYYY',\n                separator: ' to ',\n                startDate: moment().subtract('days', 29),\n                endDate: moment(),\n                ranges: {\n                    'Today': [moment(), moment()],\n                    'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],\n                    'Last 7 Days': [moment().subtract('days', 6), moment()],\n                    'Last 30 Days': [moment().subtract('days', 29), moment()],\n                    'This Month': [moment().startOf('month'), moment().endOf('month')],\n                    'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]\n                },\n                minDate: '01/01/2012',\n                maxDate: '12/31/2018',\n            },\n            function (start, end) {\n                $('#defaultrange input').val(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n            }\n        );        \n\n        $('#defaultrange_modal').daterangepicker({\n                opens: (App.isRTL() ? 'left' : 'right'),\n                format: 'MM/DD/YYYY',\n                separator: ' to ',\n                startDate: moment().subtract('days', 29),\n                endDate: moment(),\n                minDate: '01/01/2012',\n                maxDate: '12/31/2018',\n            },\n            function (start, end) {\n                $('#defaultrange_modal input').val(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n            }\n        );  \n\n        // this is very important fix when daterangepicker is used in modal. in modal when daterange picker is opened and mouse clicked anywhere bootstrap modal removes the modal-open class from the body element.\n        // so the below code will fix this issue.\n        $('#defaultrange_modal').on('click', function(){\n            if ($('#daterangepicker_modal').is(\":visible\") && $('body').hasClass(\"modal-open\") == false) {\n                $('body').addClass(\"modal-open\");\n            }\n        });\n\n        $('#reportrange').daterangepicker({\n                opens: (App.isRTL() ? 'left' : 'right'),\n                startDate: moment().subtract('days', 29),\n                endDate: moment(),\n                //minDate: '01/01/2012',\n                //maxDate: '12/31/2014',\n                dateLimit: {\n                    days: 60\n                },\n                showDropdowns: true,\n                showWeekNumbers: true,\n                timePicker: false,\n                timePickerIncrement: 1,\n                timePicker12Hour: true,\n                ranges: {\n                    'Today': [moment(), moment()],\n                    'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],\n                    'Last 7 Days': [moment().subtract('days', 6), moment()],\n                    'Last 30 Days': [moment().subtract('days', 29), moment()],\n                    'This Month': [moment().startOf('month'), moment().endOf('month')],\n                    'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]\n                },\n                buttonClasses: ['btn'],\n                applyClass: 'green',\n                cancelClass: 'default',\n                format: 'MM/DD/YYYY',\n                separator: ' to ',\n                locale: {\n                    applyLabel: 'Apply',\n                    fromLabel: 'From',\n                    toLabel: 'To',\n                    customRangeLabel: 'Custom Range',\n                    daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n                    monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n                    firstDay: 1\n                }\n            },\n            function (start, end) {\n                $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n            }\n        );\n        //Set the initial state of the picker label\n        $('#reportrange span').html(moment().subtract('days', 29).format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));\n    }\n\n    var handleDatetimePicker = function () {\n\n        if (!jQuery().datetimepicker) {\n            return;\n        }\n\n        $(\".form_datetime\").datetimepicker({\n            autoclose: true,\n            isRTL: App.isRTL(),\n            format: \"dd MM yyyy - hh:ii\",\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\")\n        });\n\n        $(\".form_advance_datetime\").datetimepicker({\n            isRTL: App.isRTL(),\n            format: \"dd MM yyyy - hh:ii\",\n            autoclose: true,\n            todayBtn: true,\n            startDate: \"2013-02-14 10:00\",\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            minuteStep: 10\n        });\n\n        $(\".form_meridian_datetime\").datetimepicker({\n            isRTL: App.isRTL(),\n            format: \"dd MM yyyy - HH:ii P\",\n            showMeridian: true,\n            autoclose: true,\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            todayBtn: true\n        });\n\n        $('body').removeClass(\"modal-open\"); // fix bug when inline picker is used in modal\n\n        // Workaround to fix datetimepicker position on window scroll\n        $( document ).scroll(function(){\n            $('#form_modal1 .form_datetime, #form_modal1 .form_advance_datetime, #form_modal1 .form_meridian_datetime').datetimepicker('place'); //#modal is the id of the modal\n        });\n    }\n\n    var handleClockfaceTimePickers = function () {\n\n        if (!jQuery().clockface) {\n            return;\n        }\n\n        $('.clockface_1').clockface();\n\n        $('#clockface_2').clockface({\n            format: 'HH:mm',\n            trigger: 'manual'\n        });\n\n        $('#clockface_2_toggle').click(function (e) {\n            e.stopPropagation();\n            $('#clockface_2').clockface('toggle');\n        });\n\n        $('#clockface_2_modal').clockface({\n            format: 'HH:mm',\n            trigger: 'manual'\n        });\n\n        $('#clockface_2_modal_toggle').click(function (e) {\n            e.stopPropagation();\n            $('#clockface_2_modal').clockface('toggle');\n        });\n\n        $('.clockface_3').clockface({\n            format: 'H:mm'\n        }).clockface('show', '14:30');\n\n        // Workaround to fix clockface position on window scroll\n        $( document ).scroll(function(){\n            $('#form_modal5 .clockface_1, #form_modal5 #clockface_2_modal').clockface('place'); //#modal is the id of the modal\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleDatePickers();\n            handleTimePickers();\n            handleDatetimePicker();\n            handleDateRangePickers();\n            handleClockfaceTimePickers();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {    \n        ComponentsDateTimePickers.init(); \n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-dropdowns.js",
    "content": "var ComponentsDropdowns = function () {\n\n    var handleSelect2 = function () {\n\n        $('#select2_sample1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample3\").select2({\n            placeholder: \"Select...\",\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample4\").select2({\n            placeholder: \"Select a Country\",\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleSelect2Modal = function () {\n\n        $('#select2_sample_modal_1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample_modal_2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample_modal_3\").select2({\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample_modal_4\").select2({\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample_modal_5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample_modal_6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleBootstrapSelect = function() {\n        $('.bs-select').selectpicker({\n            iconBase: 'fa',\n            tickIcon: 'fa-check'\n        });\n    }\n\n    var handleMultiSelect = function () {\n        $('#my_multi_select1').multiSelect();\n        $('#my_multi_select2').multiSelect({\n            selectableOptgroup: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {            \n            handleSelect2();\n            handleSelect2Modal();\n            handleMultiSelect();\n            handleBootstrapSelect();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsDropdowns.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-editors.js",
    "content": "var ComponentsEditors = function () {\n    \n    var handleWysihtml5 = function () {\n        if (!jQuery().wysihtml5) {\n            return;\n        }\n\n        if ($('.wysihtml5').size() > 0) {\n            $('.wysihtml5').wysihtml5({\n                \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n            });\n        }\n    }\n\n    var handleSummernote = function () {\n        $('#summernote_1').summernote({height: 300});\n        //API:\n        //var sHTML = $('#summernote_1').code(); // get code\n        //$('#summernote_1').destroy(); // destroy\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleWysihtml5();\n            handleSummernote();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsEditors.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-form-tools-2.js",
    "content": "var ComponentsFormTools = function () {\n\n    var handleTwitterTypeahead = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_2').attr(\"dir\", \"rtl\");  \n        } \n        $('#typeahead_example_2').typeahead(null, {\n          name: 'typeahead_example_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: '../demo/typeahead_custom.php?query=%QUERY'\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_3').attr(\"dir\", \"rtl\");  \n        }  \n        $('#typeahead_example_3').typeahead(null, {\n          name: 'datypeahead_example_3',\n          displayKey: 'value',\n          source: custom.ttAdapter(),\n          hint: (App.isRTL() ? false : true),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_4').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_4').typeahead({\n          hint: (App.isRTL() ? false : true),\n          highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    var handleTwitterTypeaheadModal = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_modal_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_2').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_2').typeahead(null, {\n          name: 'typeahead_example_modal_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: '../demo/typeahead_custom.php?query=%QUERY'\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_3').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_3').typeahead(null, {\n          name: 'datypeahead_example_modal_3',\n          displayKey: 'value',\n          hint: (App.isRTL() ? false : true),\n          source: custom.ttAdapter(),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        $('#typeahead_example_modal_4').typeahead({\n            hint: (App.isRTL() ? false : true),\n            highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    var handleBootstrapSwitch = function() {\n\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioState');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck');\n        });\n\n        // or\n        $('.switch-radio1').on('switch-change', function () {\n            $('.switch-radio1').bootstrapSwitch('toggleRadioStateAllowUncheck', false);\n        });\n\n    }\n\n    var handleBootstrapTouchSpin = function() {\n\n        $(\"#touchspin_demo1\").TouchSpin({          \n            buttondown_class: 'btn green',\n            buttonup_class: 'btn green',\n            min: -1000000000,\n            max: 1000000000,\n            stepinterval: 50,\n            maxboostedstep: 10000000,\n            prefix: '$'\n        }); \n        \n        $(\"#touchspin_demo2\").TouchSpin({\n            buttondown_class: 'btn blue',\n            buttonup_class: 'btn blue',\n            min: 0,\n            max: 100,\n            step: 0.1,\n            decimals: 2,\n            boostat: 5,\n            maxboostedstep: 10,\n            postfix: '%'\n        });         \n\n        $(\"#touchspin_demo3\").TouchSpin({          \n            buttondown_class: 'btn green',\n            buttonup_class: 'btn green',\n            prefix: \"$\",\n            postfix: \"%\"\n        });\n    }\n\n    var handleBootstrapMaxlength = function() {\n        $('#maxlength_defaultconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n        })\n    \n        $('#maxlength_thresholdconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n            threshold: 20\n        });\n\n        $('#maxlength_alloptions').maxlength({\n            alwaysShow: true,\n            warningClass: \"label label-success\",\n            limitReachedClass: \"label label-danger\",\n            separator: ' out of ',\n            preText: 'You typed ',\n            postText: ' chars available.',\n            validate: true\n        });\n\n        $('#maxlength_textarea').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true\n        });\n\n        $('#maxlength_placement').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            placement: App.isRTL() ? 'top-right' : 'top-left'\n        });\n    }\n\n    var handleSpinners = function () {\n        $('#spinner1').spinner();\n        $('#spinner2').spinner({disabled: true});\n        $('#spinner3').spinner({value:0, min: 0, max: 10});\n        $('#spinner4').spinner({value:0, step: 5, min: 0, max: 200});\n    }\n    \n    var handleTagsInput = function () {\n        if (!jQuery().tagsInput) {\n            return;\n        }\n        $('#tags_1').tagsInput({\n            width: 'auto',\n            'onAddTag': function () {\n                //alert(1);\n            },\n        });\n        $('#tags_2').tagsInput({\n            width: 300\n        });\n    }\n    \n    var handleInputMasks = function () {\n        \n        $(\"#mask_date\").inputmask(\"d/m/y\", {\n            autoUnmask: true\n        }); //direct mask        \n        $(\"#mask_date1\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"*\"\n        }); //change the placeholder\n        $(\"#mask_date2\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"dd/mm/yyyy\"\n        }); //multi-char placeholder\n        $(\"#mask_phone\").inputmask(\"mask\", {\n            \"mask\": \"(999) 999-9999\"\n        }); //specifying fn & options\n        $(\"#mask_tin\").inputmask({\n            \"mask\": \"99-9999999\",\n            placeholder: \"\" // remove underscores from the input mask\n        }); //specifying options only\n        $(\"#mask_number\").inputmask({\n            \"mask\": \"9\",\n            \"repeat\": 10,\n            \"greedy\": false\n        }); // ~ mask \"9\" or mask \"99\" or ... mask \"9999999999\"\n        $(\"#mask_decimal\").inputmask('decimal', {\n            rightAlignNumerics: false\n        }); //disables the right alignment of the decimal input\n        $(\"#mask_currency\").inputmask('€ 999.999.999,99', {\n            numericInput: true\n        }); //123456  =>  € ___.__1.234,56\n\n        $(\"#mask_currency2\").inputmask('€ 999,999,999.99', {\n            numericInput: true,\n            rightAlignNumerics: false,\n            greedy: false\n        }); //123456  =>  € ___.__1.234,56\n        $(\"#mask_ssn\").inputmask(\"999-99-9999\", {\n            placeholder: \" \",\n            clearMaskOnLostFocus: true\n        }); //default\n    }\n\n    var handleIPAddressInput = function () {\n        $('#input_ipv4').ipAddress();\n        $('#input_ipv6').ipAddress({\n            v: 6\n        });\n    }\n\n    var handlePasswordStrengthChecker = function () {\n        var initialized = false;\n        var input = $(\"#password_strength\");\n\n        input.keydown(function () {\n            if (initialized === false) {\n                // set base options\n                input.pwstrength({\n                    raisePower: 1.4,\n                    minChar: 8,\n                    verdicts: [\"Weak\", \"Normal\", \"Medium\", \"Strong\", \"Very Strong\"],\n                    scores: [17, 26, 40, 50, 60]\n                });\n\n                // add your own rule to calculate the password strength\n                input.pwstrength(\"addRule\", \"demoRule\", function (options, word, score) {\n                    return word.match(/[a-z].[0-9]/) && score;\n                }, 10, true);\n\n                // set as initialized \n                initialized = true;\n            }\n        });\n    }\n\n    var handleUsernameAvailabilityChecker1 = function () {\n        var input = $(\"#username1_input\");\n\n        $(\"#username1_checker\").click(function (e) {\n            var pop = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                pop.popover('destroy');\n                pop.popover({\n                    'placement': (App.isRTL() ? 'left' : 'right'),\n                    'html': true,\n                    'container': 'body',\n                    'content': 'Please enter a username to check its availability.',\n                });\n                // add error class to the popover\n                pop.data('bs.popover').tip().addClass('error');\n                // set last poped popover to be closed on click(see App.js => handlePopovers function)     \n                App.setLastPopedPopover(pop);\n                pop.popover('show');\n                e.stopPropagation(); // prevent closing the popover\n\n                return;\n            }\n\n            var btn = $(this);\n\n            btn.attr('disabled', true);\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                btn.attr('disabled', false);\n\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('success').addClass('error');\n                    App.setLastPopedPopover(pop);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    var handleUsernameAvailabilityChecker2 = function () {\n        $(\"#username2_input\").change(function () {\n            var input = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-error').removeClass('has-success');\n                $('.fa-check, fa-warning', input.closest('.form-group')).remove();\n\n                return;\n            }\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                // change popover font color based on the result\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n                    $('.fa-warning', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-check\"></i>');\n                    input.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n                    $('.fa-check', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-warning\"></i>');\n\n                    input.popover('destroy');\n                    input.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    input.popover('show');\n                    input.data('bs.popover').tip().removeClass('success').addClass('error');\n\n                    App.setLastPopedPopover(input);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleTwitterTypeahead();\n            handleTwitterTypeaheadModal();\n\n            handleBootstrapSwitch();\n            handleBootstrapTouchSpin();\n            handleBootstrapMaxlength();\n            handleSpinners();\n            handleTagsInput();\n            handleInputMasks();\n            handleIPAddressInput();\n            handlePasswordStrengthChecker();\n            handleUsernameAvailabilityChecker1();\n            handleUsernameAvailabilityChecker2();\n        }\n    };\n\n}();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-form-tools.js",
    "content": "var ComponentsFormTools = function () {\n\n    var handleBootstrapMaxlength = function() {\n        $('#maxlength_defaultconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n        })\n    \n        $('#maxlength_thresholdconfig').maxlength({\n            limitReachedClass: \"label label-danger\",\n            threshold: 20\n        });\n\n        $('#maxlength_alloptions').maxlength({\n            alwaysShow: true,\n            warningClass: \"label label-success\",\n            limitReachedClass: \"label label-danger\",\n            separator: ' out of ',\n            preText: 'You typed ',\n            postText: ' chars available.',\n            validate: true\n        });\n\n        $('#maxlength_textarea').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true\n        });\n\n        $('#maxlength_placement').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            placement: App.isRTL() ? 'top-right' : 'top-left'\n        });\n    }\n    \n    var handlePasswordStrengthChecker = function () {\n        var initialized = false;\n        var input = $(\"#password_strength\");\n\n        input.keydown(function () {\n            if (initialized === false) {\n                // set base options\n                input.pwstrength({\n                    raisePower: 1.4,\n                    minChar: 8,\n                    verdicts: [\"Weak\", \"Normal\", \"Medium\", \"Strong\", \"Very Strong\"],\n                    scores: [17, 26, 40, 50, 60]\n                });\n\n                // add your own rule to calculate the password strength\n                input.pwstrength(\"addRule\", \"demoRule\", function (options, word, score) {\n                    return word.match(/[a-z].[0-9]/) && score;\n                }, 10, true);\n\n                // set as initialized \n                initialized = true;\n            }\n        });\n    }\n\n    var handleUsernameAvailabilityChecker1 = function () {\n        var input = $(\"#username1_input\");\n\n        $(\"#username1_checker\").click(function (e) {\n            var pop = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                pop.popover('destroy');\n                pop.popover({\n                    'placement': (App.isRTL() ? 'left' : 'right'),\n                    'html': true,\n                    'container': 'body',\n                    'content': 'Please enter a username to check its availability.',\n                });\n                // add error class to the popover\n                pop.data('bs.popover').tip().addClass('error');\n                // set last poped popover to be closed on click(see App.js => handlePopovers function)     \n                App.setLastPopedPopover(pop);\n                pop.popover('show');\n                e.stopPropagation(); // prevent closing the popover\n\n                return;\n            }\n\n            var btn = $(this);\n\n            btn.attr('disabled', true);\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                btn.attr('disabled', false);\n\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n\n                    pop.popover('destroy');\n                    pop.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    pop.popover('show');\n                    pop.data('bs.popover').tip().removeClass('success').addClass('error');\n                    App.setLastPopedPopover(pop);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    var handleUsernameAvailabilityChecker2 = function () {\n        $(\"#username2_input\").change(function () {\n            var input = $(this);\n\n            if (input.val() === \"\") {\n                input.closest('.form-group').removeClass('has-error').removeClass('has-success');\n                $('.fa-check, fa-warning', input.closest('.form-group')).remove();\n\n                return;\n            }\n\n            input.attr(\"readonly\", true).\n            attr(\"disabled\", true).\n            addClass(\"spinner\");\n\n            $.post('../demo/username_checker.php', {\n                username: input.val()\n            }, function (res) {\n                input.attr(\"readonly\", false).\n                attr(\"disabled\", false).\n                removeClass(\"spinner\");\n\n                // change popover font color based on the result\n                if (res.status == 'OK') {\n                    input.closest('.form-group').removeClass('has-error').addClass('has-success');\n                    $('.fa-warning', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-check\"></i>');\n                    input.data('bs.popover').tip().removeClass('error').addClass('success');\n                } else {\n                    input.closest('.form-group').removeClass('has-success').addClass('has-error');\n                    $('.fa-check', input.closest('.form-group')).remove();\n                    input.before('<i class=\"fa fa-warning\"></i>');\n\n                    input.popover('destroy');\n                    input.popover({\n                        'html': true,\n                        'placement': (App.isRTL() ? 'left' : 'right'),\n                        'container': 'body',\n                        'content': res.message,\n                    });\n                    input.popover('show');\n                    input.data('bs.popover').tip().removeClass('success').addClass('error');\n\n                    App.setLastPopedPopover(input);\n                }\n\n            }, 'json');\n\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleBootstrapMaxlength();\n            handlePasswordStrengthChecker();\n            handleUsernameAvailabilityChecker1();\n            handleUsernameAvailabilityChecker2();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        ComponentsFormTools.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-ion-sliders.js",
    "content": "var ComponentsIonSliders = function() {\n\n    var handleBasicDemo = function() {\n        // demo 1\n        $(\"#range_1\").ionRangeSlider();\n\n        // demo 2\n        $(\"#range_2\").ionRangeSlider({\n            min: 100,\n            max: 1000,\n            from: 550\n        });\n\n        // demo 3\n        $(\"#range_3\").ionRangeSlider({\n            type: \"double\",\n            grid: true,\n            min: 0,\n            max: 1000,\n            from: 200,\n            to: 800,\n            prefix: \"$\"\n        });\n\n        // demo 4\n        $(\"#range_4\").ionRangeSlider({\n            type: \"double\",\n            grid: true,\n            min: -1000,\n            max: 1000,\n            from: -500,\n            to: 500\n        });\n\n        // demo 5\n        $(\"#range_5\").ionRangeSlider({\n            type: \"double\",\n            grid: true,\n            from: 1,\n            to: 5,\n            values: [0, 10, 100, 1000, 10000, 100000, 1000000]\n        });\n\n        // demo 6\n        $(\"#range_6\").ionRangeSlider({\n            grid: true,\n            from: 5,\n            values: [\n                \"zero\", \"one\",\n                \"two\", \"three\",\n                \"four\", \"five\",\n                \"six\", \"seven\",\n                \"eight\", \"nine\",\n                \"ten\"\n            ]\n        });\n\n        // demo 7\n        $(\"#range_7\").ionRangeSlider({\n            grid: true,\n            from: 3,\n            values: [\n                \"January\", \"February\", \"March\",\n                \"April\", \"May\", \"June\",\n                \"July\", \"August\", \"September\",\n                \"October\", \"November\", \"December\"\n            ]\n        });\n\n        // demo 8\n        $(\"#range_8\").ionRangeSlider({\n            type: \"double\",\n            min: 100,\n            max: 200,\n            from: 145,\n            to: 155,\n            prefix: \"Weight: \",\n            postfix: \" million pounds\",\n            decorate_both: true\n        });\n\n        // demo 9\n        $(\"#range_9\").ionRangeSlider({\n            type: \"double\",\n            min: 100,\n            max: 200,\n            from: 148,\n            to: 152,\n            prefix: \"Weight: \",\n            postfix: \" million pounds\",\n            values_separator: \" → \"\n        });\n    }\n\n    var handleAdvancedDemo = function() {\n        $(\"#range_10\").ionRangeSlider({\n            type: \"double\",\n            min: 0,\n            max: 100,\n            from: 30,\n            to: 70,\n            from_fixed: true\n        });\n\n        $(\"#range_11\").ionRangeSlider({\n            min: 0,\n            max: 100,\n            from: 30,\n            from_min: 10,\n            from_max: 50\n        });\n\n        $(\"#range_12\").ionRangeSlider({\n            type: \"double\",\n            min: 0,\n            max: 100,\n            from: 20,\n            from_min: 10,\n            from_max: 30,\n            from_shadow: true,\n            to: 80,\n            to_min: 70,\n            to_max: 90,\n            to_shadow: true,\n            grid: true,\n            grid_num: 10\n        });\n\n        $(\"#range_13\").ionRangeSlider({\n            min: 0,\n            max: 100,\n            from: 30,\n            disable: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleBasicDemo();\n            handleAdvancedDemo();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    ComponentsIonSliders.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-knob-dials.js",
    "content": "var ComponentsKnobDials = function () {\n\n    return {\n        //main function to initiate the module\n        \n        init: function () {\n            //knob does not support ie8 so skip it\n            if (!jQuery().knob || App.isIE8()) {\n                return;\n            }\n\n            // general knob\n            $(\".knob\").knob({\n                'dynamicDraw': true,\n                'thickness': 0.2,\n                'tickColorizeValues': true,\n                'skin': 'tron'\n            });  \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsKnobDials.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-multi-select.js",
    "content": "var ComponentsDropdowns = function () {\n\n    var handleSelect2 = function () {\n\n        $('#select2_sample1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample3\").select2({\n            placeholder: \"Select...\",\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample4\").select2({\n            placeholder: \"Select a Country\",\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleSelect2Modal = function () {\n\n        $('#select2_sample_modal_1').select2({\n            placeholder: \"Select an option\",\n            allowClear: true\n        });\n\n        $('#select2_sample_modal_2').select2({\n            placeholder: \"Select a State\",\n            allowClear: true\n        });\n\n        $(\"#select2_sample_modal_3\").select2({\n            allowClear: true,\n            minimumInputLength: 1,\n            query: function (query) {\n                var data = {\n                    results: []\n                }, i, j, s;\n                for (i = 1; i < 5; i++) {\n                    s = \"\";\n                    for (j = 0; j < i; j++) {\n                        s = s + query.term;\n                    }\n                    data.results.push({\n                        id: query.term + i,\n                        text: s\n                    });\n                }\n                query.callback(data);\n            }\n        });\n\n        function format(state) {\n            if (!state.id) return state.text; // optgroup\n            return \"<img class='flag' src='\" + App.getGlobalImgPath() + \"flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n        }\n        $(\"#select2_sample_modal_4\").select2({\n            allowClear: true,\n            formatResult: format,\n            formatSelection: format,\n            escapeMarkup: function (m) {\n                return m;\n            }\n        });\n\n        $(\"#select2_sample_modal_5\").select2({\n            tags: [\"red\", \"green\", \"blue\", \"yellow\", \"pink\"]\n        });\n\n\n        function movieFormatResult(movie) {\n            var markup = \"<table class='movie-result'><tr>\";\n            if (movie.posters !== undefined && movie.posters.thumbnail !== undefined) {\n                markup += \"<td valign='top'><img src='\" + movie.posters.thumbnail + \"'/></td>\";\n            }\n            markup += \"<td valign='top'><h5>\" + movie.title + \"</h5>\";\n            if (movie.critics_consensus !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.critics_consensus + \"</div>\";\n            } else if (movie.synopsis !== undefined) {\n                markup += \"<div class='movie-synopsis'>\" + movie.synopsis + \"</div>\";\n            }\n            markup += \"</td></tr></table>\"\n            return markup;\n        }\n\n        function movieFormatSelection(movie) {\n            return movie.title;\n        }\n\n        $(\"#select2_sample_modal_6\").select2({\n            placeholder: \"Search for a movie\",\n            minimumInputLength: 1,\n            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper\n                url: \"http://api.rottentomatoes.com/api/public/v1.0/movies.json\",\n                dataType: 'jsonp',\n                data: function (term, page) {\n                    return {\n                        q: term, // search term\n                        page_limit: 10,\n                        apikey: \"ju6z9mjyajq2djue3gbvv26t\" // please do not use so this example keeps working\n                    };\n                },\n                results: function (data, page) { // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to alter remote JSON data\n                    return {\n                        results: data.movies\n                    };\n                }\n            },\n            initSelection: function (element, callback) {\n                // the input tag has a value attribute preloaded that points to a preselected movie's id\n                // this function resolves that id attribute to an object that select2 can render\n                // using its formatResult renderer - that way the movie name is shown preselected\n                var id = $(element).val();\n                if (id !== \"\") {\n                    $.ajax(\"http://api.rottentomatoes.com/api/public/v1.0/movies/\" + id + \".json\", {\n                        data: {\n                            apikey: \"ju6z9mjyajq2djue3gbvv26t\"\n                        },\n                        dataType: \"jsonp\"\n                    }).done(function (data) {\n                        callback(data);\n                    });\n                }\n            },\n            formatResult: movieFormatResult, // omitted for brevity, see the source of this page\n            formatSelection: movieFormatSelection, // omitted for brevity, see the source of this page\n            dropdownCssClass: \"bigdrop\", // apply css that makes the dropdown taller\n            escapeMarkup: function (m) {\n                return m;\n            } // we do not want to escape markup since we are displaying html in results\n        });\n    }\n\n    var handleBootstrapSelect = function() {\n        $('.bs-select').selectpicker({\n            iconBase: 'fa',\n            tickIcon: 'fa-check'\n        });\n    }\n\n    var handleMultiSelect = function () {\n        $('#my_multi_select1').multiSelect();\n        $('#my_multi_select2').multiSelect({\n            selectableOptgroup: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {            \n            handleSelect2();\n            handleSelect2Modal();\n            handleMultiSelect();\n            handleBootstrapSelect();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsDropdowns.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-nouisliders.js",
    "content": "var ComponentsNoUiSliders = function() {\n\n    var demo2 = function() {\n        var connectSlider = document.getElementById('demo2');\n\n        noUiSlider.create(connectSlider, {\n            start: [20],\n            connect: false,\n            range: {\n                'min': 0,\n                'max': 100\n            }\n        });\n    }\n\n    var demo3 = function() {\n        var connectSlider = document.getElementById('demo3');\n\n        noUiSlider.create(connectSlider, {\n            start: [20, 80],\n            connect: false,\n            range: {\n                'min': 0,\n                'max': 100\n            }\n        });\n\n        var connectBar = document.createElement('div'),\n            connectBase = connectSlider.getElementsByClassName('noUi-base')[0],\n            connectHandles = connectSlider.getElementsByClassName('noUi-origin');\n\n        // Give the bar a class for styling and add it to the slider.\n        connectBar.className += 'connect';\n        connectBase.appendChild(connectBar);\n\n        connectSlider.noUiSlider.on('update', function( values, handle ) {\n\n            // Pick left for the first handle, right for the second.\n            var side = handle ? 'right' : 'left',\n            // Get the handle position and trim the '%' sign.\n                offset = (connectHandles[handle].style.left).slice(0, - 1);\n\n            // Right offset is 100% - left offset\n            if ( handle === 1 ) {\n                offset = 100 - offset;\n            }\n\n            connectBar.style[side] = offset + '%';\n        });\n    }\n\n    var demo4 = function() {\n        //** init the select\n        var select = document.getElementById('demo4_select');\n\n        // Append the option elements\n        for ( var i = -20; i <= 40; i++ ) {\n            var option = document.createElement(\"option\");\n                option.text = i;\n                option.value = i;\n            select.appendChild(option);\n        }\n\n        //** init the slider\n        var html5Slider = document.getElementById('demo4');\n\n        noUiSlider.create(html5Slider, {\n            start: [ 10, 30 ],\n            connect: true,\n            range: {\n                'min': -20,\n                'max': 40\n            }\n        });\n\n        //** init the input\n        var inputNumber = document.getElementById('demo4_input');\n\n        html5Slider.noUiSlider.on('update', function( values, handle ) {\n\n            var value = values[handle];\n\n            if ( handle ) {\n                inputNumber.value = value;\n            } else {\n                select.value = Math.round(value);\n            }\n        });\n\n        select.addEventListener('change', function(){\n            html5Slider.noUiSlider.set([this.value, null]);\n        });\n\n        inputNumber.addEventListener('change', function(){\n            html5Slider.noUiSlider.set([null, this.value]);\n        });\n    }\n\n    var demo5 = function() {\n        var nonLinearSlider = document.getElementById('demo5');\n\n        noUiSlider.create(nonLinearSlider, {\n            connect: true,\n            behaviour: 'tap',\n            start: [ 500, 4000 ],\n            range: {\n                // Starting at 500, step the value by 500,\n                // until 4000 is reached. From there, step by 1000.\n                'min': [ 0 ],\n                '10%': [ 500, 500 ],\n                '50%': [ 4000, 1000 ],\n                'max': [ 10000 ]\n            }\n        });\n\n        // Write the CSS 'left' value to a span.\n        function leftValue ( handle ) {\n            return handle.parentElement.style.left;\n        }\n\n        var lowerValue = document.getElementById('demo5_lower-value'),\n            upperValue = document.getElementById('demo5_upper-value'),\n            handles = nonLinearSlider.getElementsByClassName('noUi-handle');\n\n        // Display the slider value and how far the handle moved\n        // from the left edge of the slider.\n        nonLinearSlider.noUiSlider.on('update', function ( values, handle ) {\n            if ( !handle ) {\n                lowerValue.innerHTML = values[handle] + ', ' + leftValue(handles[handle]);\n            } else {\n                upperValue.innerHTML = values[handle] + ', ' + leftValue(handles[handle]);\n            }\n        });\n    }\n\n    var demo6 = function() {\n        // Store the locked state and slider values.\n        var lockedState = false,\n            lockedSlider = false,\n            lockedValues = [60, 80],\n            slider1 = document.getElementById('demo6_slider1'),\n            slider2 = document.getElementById('demo6_slider2'),\n            lockButton = document.getElementById('demo6_lockbutton'),\n            slider1Value = document.getElementById('demo6_slider1-span'),\n            slider2Value = document.getElementById('demo6_slider2-span');\n\n        // When the button is clicked, the locked\n        // state is inverted.\n        lockButton.addEventListener('click', function(){\n            lockedState = !lockedState;\n            this.textContent = lockedState ? 'unlock' : 'lock';\n        });\n\n        function crossUpdate ( value, slider ) {\n\n            // If the sliders aren't interlocked, don't\n            // cross-update.\n            if ( !lockedState ) return;\n\n            // Select whether to increase or decrease\n            // the other slider value.\n            var a = slider1 === slider ? 0 : 1, b = a ? 0 : 1;\n\n            // Offset the slider value.\n            value -= lockedValues[b] - lockedValues[a];\n\n            // Set the value\n            slider.noUiSlider.set(value);\n        }\n\n        noUiSlider.create(slider1, {\n            start: 60,\n\n            // Disable animation on value-setting,\n            // so the sliders respond immediately.\n            animate: false,\n            range: {\n                min: 50,\n                max: 100\n            }\n        });\n\n        noUiSlider.create(slider2, {\n            start: 80,\n            animate: false,\n            range: {\n                min: 50,\n                max: 100\n            }\n        });\n\n        slider1.noUiSlider.on('update', function( values, handle ){\n            slider1Value.innerHTML = values[handle];\n        });\n\n        slider2.noUiSlider.on('update', function( values, handle ){\n            slider2Value.innerHTML = values[handle];\n        });\n\n        function setLockedValues ( ) {\n            lockedValues = [\n                Number(slider1.noUiSlider.get()),\n                Number(slider2.noUiSlider.get())\n            ];\n        }\n\n        slider1.noUiSlider.on('change', setLockedValues);\n        slider2.noUiSlider.on('change', setLockedValues);\n\n        // The value will be send to the other slider,\n        // using a custom function as the serialization\n        // method. The function uses the global 'lockedState'\n        // variable to decide whether the other slider is updated.\n        slider1.noUiSlider.on('slide', function( values, handle ){\n            crossUpdate(values[handle], slider2);\n        });\n\n        slider2.noUiSlider.on('slide', function( values, handle ){\n            crossUpdate(values[handle], slider1);\n        });\n    }\n\n    var demo7 = function() {\n        var softSlider = document.getElementById('demo7');\n\n        noUiSlider.create(softSlider, {\n            start: 50,\n            range: {\n                min: 0,\n                max: 100\n            },\n            pips: {\n                mode: 'values',\n                values: [20, 80],\n                density: 4\n            }\n        });\n\n        softSlider.noUiSlider.on('change', function ( values, handle ) {\n            if ( values[handle] < 20 ) {\n                softSlider.noUiSlider.set(20);\n            } else if ( values[handle] > 80 ) {\n                softSlider.noUiSlider.set(80);\n            }\n        });\n    }\n\n    var demo8 = function() {\n        var tooltipSlider = document.getElementById('demo8');\n\n        noUiSlider.create(tooltipSlider, {\n            start: [40, 50],\n            connect: true,\n            range: {\n                'min': 30,\n                '30%': 40,\n                'max': 50\n            }\n        });\n\n        var tipHandles = tooltipSlider.getElementsByClassName('noUi-handle'),\n            tooltips = [];\n\n        // Add divs to the slider handles.\n        for ( var i = 0; i < tipHandles.length; i++ ){\n            tooltips[i] = document.createElement('div');\n            tipHandles[i].appendChild(tooltips[i]);\n        }\n  \n        // Add a class for styling\n        tooltips[1].className += 'noUi-tooltip';\n        // Add additional markup\n        tooltips[1].innerHTML = '<strong>Value: </strong><span></span>';\n        // Replace the tooltip reference with the span we just added\n        tooltips[1] = tooltips[1].getElementsByTagName('span')[0];\n\n        // Add a class for styling\n        tooltips[0].className += 'noUi-tooltip';\n        // Add additional markup\n        tooltips[0].innerHTML = '<strong>Value: </strong><span></span>';\n        // Replace the tooltip reference with the span we just added\n        tooltips[0] = tooltips[0].getElementsByTagName('span')[0];\n\n        // When the slider changes, write the value to the tooltips.\n        tooltipSlider.noUiSlider.on('update', function( values, handle ){\n            tooltips[handle].innerHTML = values[handle];\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            demo2();\n            demo3();\n            demo4();\n            demo5();\n            demo6();\n            demo7();\n            demo8();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsNoUiSliders.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-select2.js",
    "content": "var ComponentsSelect2 = function() {\n\n    var handleDemo = function() {\n\n        // Set the \"bootstrap\" theme as the default theme for all Select2\n        // widgets.\n        //\n        // @see https://github.com/select2/select2/issues/2927\n        $.fn.select2.defaults.set(\"theme\", \"bootstrap\");\n\n        var placeholder = \"Select a State\";\n\n        $(\".select2, .select2-multiple\").select2({\n            placeholder: placeholder,\n            width: null\n        });\n\n        $(\".select2-allow-clear\").select2({\n            allowClear: true,\n            placeholder: placeholder,\n            width: null\n        });\n\n        // @see https://select2.github.io/examples.html#data-ajax\n        function formatRepo(repo) {\n            if (repo.loading) return repo.text;\n\n            var markup = \"<div class='select2-result-repository clearfix'>\" +\n                \"<div class='select2-result-repository__avatar'><img src='\" + repo.owner.avatar_url + \"' /></div>\" +\n                \"<div class='select2-result-repository__meta'>\" +\n                \"<div class='select2-result-repository__title'>\" + repo.full_name + \"</div>\";\n\n            if (repo.description) {\n                markup += \"<div class='select2-result-repository__description'>\" + repo.description + \"</div>\";\n            }\n\n            markup += \"<div class='select2-result-repository__statistics'>\" +\n                \"<div class='select2-result-repository__forks'><span class='glyphicon glyphicon-flash'></span> \" + repo.forks_count + \" Forks</div>\" +\n                \"<div class='select2-result-repository__stargazers'><span class='glyphicon glyphicon-star'></span> \" + repo.stargazers_count + \" Stars</div>\" +\n                \"<div class='select2-result-repository__watchers'><span class='glyphicon glyphicon-eye-open'></span> \" + repo.watchers_count + \" Watchers</div>\" +\n                \"</div>\" +\n                \"</div></div>\";\n\n            return markup;\n        }\n\n        function formatRepoSelection(repo) {\n            return repo.full_name || repo.text;\n        }\n\n        $(\".js-data-example-ajax\").select2({\n            width: \"off\",\n            ajax: {\n                url: \"https://api.github.com/search/repositories\",\n                dataType: 'json',\n                delay: 250,\n                data: function(params) {\n                    return {\n                        q: params.term, // search term\n                        page: params.page\n                    };\n                },\n                processResults: function(data, page) {\n                    // parse the results into the format expected by Select2.\n                    // since we are using custom formatting functions we do not need to\n                    // alter the remote JSON data\n                    return {\n                        results: data.items\n                    };\n                },\n                cache: true\n            },\n            escapeMarkup: function(markup) {\n                return markup;\n            }, // let our custom formatter work\n            minimumInputLength: 1,\n            templateResult: formatRepo,\n            templateSelection: formatRepoSelection\n        });\n\n        $(\"button[data-select2-open]\").click(function() {\n            $(\"#\" + $(this).data(\"select2-open\")).select2(\"open\");\n        });\n\n        $(\":checkbox\").on(\"click\", function() {\n            $(this).parent().nextAll(\"select\").prop(\"disabled\", !this.checked);\n        });\n\n        // copy Bootstrap validation states to Select2 dropdown\n        //\n        // add .has-waring, .has-error, .has-succes to the Select2 dropdown\n        // (was #select2-drop in Select2 v3.x, in Select2 v4 can be selected via\n        // body > .select2-container) if _any_ of the opened Select2's parents\n        // has one of these forementioned classes (YUCK! ;-))\n        $(\".select2, .select2-multiple, .select2-allow-clear, .js-data-example-ajax\").on(\"select2:open\", function() {\n            if ($(this).parents(\"[class*='has-']\").length) {\n                var classNames = $(this).parents(\"[class*='has-']\")[0].className.split(/\\s+/);\n\n                for (var i = 0; i < classNames.length; ++i) {\n                    if (classNames[i].match(\"has-\")) {\n                        $(\"body > .select2-container\").addClass(classNames[i]);\n                    }\n                }\n            }\n        });\n\n        $(\".js-btn-set-scaling-classes\").on(\"click\", function() {\n            $(\"#select2-multiple-input-sm, #select2-single-input-sm\").next(\".select2-container--bootstrap\").addClass(\"input-sm\");\n            $(\"#select2-multiple-input-lg, #select2-single-input-lg\").next(\".select2-container--bootstrap\").addClass(\"input-lg\");\n            $(this).removeClass(\"btn-primary btn-outline\").prop(\"disabled\", true);\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleDemo();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {\n        ComponentsSelect2.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/components-typeahead.js",
    "content": "var ComponentsTypeahead = function () {\n\n    var handleTwitterTypeahead = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_2').attr(\"dir\", \"rtl\");  \n        } \n        $('#typeahead_example_2').typeahead(null, {\n          name: 'typeahead_example_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: {\n            url: '../demo/typeahead_custom.php?query=%QUERY',\n            wildcard: '%QUERY'\n          }\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_3').attr(\"dir\", \"rtl\");  \n        }  \n        $('#typeahead_example_3').typeahead(null, {\n          name: 'datypeahead_example_3',\n          displayKey: 'value',\n          source: custom.ttAdapter(),\n          hint: (App.isRTL() ? false : true),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_4').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_4').typeahead({\n          hint: (App.isRTL() ? false : true),\n          highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    var handleTwitterTypeaheadModal = function() {\n\n        // Example #1\n        // instantiate the bloodhound suggestion engine\n        var numbers = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          local: [\n            { num: 'metronic' },\n            { num: 'keenthemes' },\n            { num: 'metronic theme' },\n            { num: 'metronic template' },\n            { num: 'keenthemes team' }\n          ]\n        });\n         \n        // initialize the bloodhound suggestion engine\n        numbers.initialize();\n         \n        // instantiate the typeahead UI\n        if (App.isRTL()) {\n          $('#typeahead_example_modal_1').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_1').typeahead(null, {\n          displayKey: 'num',\n          hint: (App.isRTL() ? false : true),\n          source: numbers.ttAdapter()\n        });\n\n        // Example #2\n        var countries = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 10,\n          prefetch: {\n            url: '../demo/typeahead_countries.json',\n            filter: function(list) {\n              return $.map(list, function(country) { return { name: country }; });\n            }\n          }\n        });\n \n        countries.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_2').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_2').typeahead(null, {\n          name: 'typeahead_example_modal_2',\n          displayKey: 'name',\n          hint: (App.isRTL() ? false : true),\n          source: countries.ttAdapter()\n        });\n\n        // Example #3\n        var custom = new Bloodhound({\n          datumTokenizer: function(d) { return d.tokens; },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          remote: '../demo/typeahead_custom.php?query=%QUERY'\n        });\n         \n        custom.initialize();\n         \n        if (App.isRTL()) {\n          $('#typeahead_example_modal_3').attr(\"dir\", \"rtl\");  \n        }\n        $('#typeahead_example_modal_3').typeahead(null, {\n          name: 'datypeahead_example_modal_3',\n          displayKey: 'value',\n          hint: (App.isRTL() ? false : true),\n          source: custom.ttAdapter(),\n          templates: {\n            suggestion: Handlebars.compile([\n              '<div class=\"media\">',\n                    '<div class=\"pull-left\">',\n                        '<div class=\"media-object\">',\n                            '<img src=\"{{img}}\" width=\"50\" height=\"50\"/>',\n                        '</div>',\n                    '</div>',\n                    '<div class=\"media-body\">',\n                        '<h4 class=\"media-heading\">{{value}}</h4>',\n                        '<p>{{desc}}</p>',\n                    '</div>',\n              '</div>',\n            ].join(''))\n          }\n        });\n\n        // Example #4\n\n        var nba = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nba.json'\n        });\n         \n        var nhl = new Bloodhound({\n          datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.team); },\n          queryTokenizer: Bloodhound.tokenizers.whitespace,\n          limit: 3,\n          prefetch: '../demo/typeahead_nhl.json'\n        });\n         \n        nba.initialize();\n        nhl.initialize();\n         \n        $('#typeahead_example_modal_4').typeahead({\n            hint: (App.isRTL() ? false : true),\n            highlight: true\n        },\n        {\n          name: 'nba',\n          displayKey: 'team',\n          source: nba.ttAdapter(),\n          templates: {\n                header: '<h3>NBA Teams</h3>'\n          }\n        },\n        {\n          name: 'nhl',\n          displayKey: 'team',\n          source: nhl.ttAdapter(),\n          templates: {\n                header: '<h3>NHL Teams</h3>'\n          }\n        });\n\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleTwitterTypeahead();\n            handleTwitterTypeaheadModal();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   ComponentsTypeahead.init(); \n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/contact.js",
    "content": "var Contact = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\t\t\tvar map;\n\t\t\t$(document).ready(function(){\n\t\t\t  map = new GMaps({\n\t\t\t\tdiv: '#gmapbg',\n\t\t\t\tlat: -13.004333,\n\t\t\t\tlng: -38.494333\n\t\t\t  });\n\t\t\t   var marker = map.addMarker({\n\t\t            lat: -13.004333,\n\t\t\t\t\tlng: -38.494333,\n\t\t            title: 'Loop, Inc.',\n\t\t            infoWindow: {\n\t\t                content: \"<b>Metronic, Inc.</b> 795 Park Ave, Suite 120<br>San Francisco, CA 94107\"\n\t\t            }\n\t\t        });\n\n\t\t\t   marker.infoWindow.open(map, marker);\n\t\t\t});\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   Contact.init(); \n});\n\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/custom.js",
    "content": "/**\nCustom module for you to write your own javascript functions\n**/\nvar Custom = function () {\n\n    // private functions & variables\n\n    var myFunc = function(text) {\n        alert(text);\n    }\n\n    // public functions\n    return {\n\n        //main function\n        init: function () {\n            //initialize here something.            \n        },\n\n        //some helper function\n        doSomeStuff: function () {\n            myFunc();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   Custom.init(); \n});\n\n/***\nUsage\n***/\n//Custom.doSomeStuff();"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/dashboard.js",
    "content": "var Dashboard = function() {\n\n    return {\n\n        initJQVMAP: function() {\n            if (!jQuery().vectorMap) {\n                return;\n            }\n\n            var showMap = function(name) {\n                jQuery('.vmaps').hide();\n                jQuery('#vmap_' + name).show();\n            }\n\n            var setMap = function(name) {\n                var map = jQuery('#vmap_' + name);\n                \n                if (map.size() !== 1) {\n                    return;\n                }\n\n                var data = {\n                    map: 'world_en',\n                    backgroundColor: null,\n                    borderColor: '#333333',\n                    borderOpacity: 0.5,\n                    borderWidth: 1,\n                    color: '#c6c6c6',\n                    enableZoom: true,\n                    hoverColor: '#c9dfaf',\n                    hoverOpacity: null,\n                    values: sample_data,\n                    normalizeFunction: 'linear',\n                    scaleColors: ['#b6da93', '#909cae'],\n                    selectedColor: '#c9dfaf',\n                    selectedRegion: null,\n                    showTooltip: true,\n                    onLabelShow: function(event, label, code) {\n\n                    },\n                    onRegionOver: function(event, code) {\n                        if (code == 'ca') {\n                            event.preventDefault();\n                        }\n                    },\n                    onRegionClick: function(element, code, region) {\n                        var message = 'You clicked \"' + region + '\" which has the code: ' + code.toUpperCase();\n                        alert(message);\n                    }\n                };\n\n                data.map = name + '_en';\n              \n                map.width(map.parent().parent().width());\n                map.show();\n                map.vectorMap(data);\n                map.hide();\n            }\n\n            setMap(\"world\");\n            setMap(\"usa\");\n            setMap(\"europe\");\n            setMap(\"russia\");\n            setMap(\"germany\");\n            showMap(\"world\");\n\n            jQuery('#regional_stat_world').click(function() {\n                showMap(\"world\");\n            });\n\n            jQuery('#regional_stat_usa').click(function() {\n                showMap(\"usa\");\n            });\n\n            jQuery('#regional_stat_europe').click(function() {\n                showMap(\"europe\");\n            });\n            jQuery('#regional_stat_russia').click(function() {\n                showMap(\"russia\");\n            });\n            jQuery('#regional_stat_germany').click(function() {\n                showMap(\"germany\");\n            });\n\n            $('#region_statistics_loading').hide();\n            $('#region_statistics_content').show();\n\n            App.addResizeHandler(function() {\n                jQuery('.vmaps').each(function() {\n                    var map = jQuery(this);\n                    map.width(map.parent().width());\n                });\n            });\n        },\n\n        initCalendar: function() {\n            if (!jQuery().fullCalendar) {\n                return;\n            }\n\n            var date = new Date();\n            var d = date.getDate();\n            var m = date.getMonth();\n            var y = date.getFullYear();\n\n            var h = {};\n\n            if ($('#calendar').width() <= 400) {\n                $('#calendar').addClass(\"mobile\");\n                h = {\n                    left: 'title, prev, next',\n                    center: '',\n                    right: 'today,month,agendaWeek,agendaDay'\n                };\n            } else {\n                $('#calendar').removeClass(\"mobile\");\n                if (App.isRTL()) {\n                    h = {\n                        right: 'title',\n                        center: '',\n                        left: 'prev,next,today,month,agendaWeek,agendaDay'\n                    };\n                } else {\n                    h = {\n                        left: 'title',\n                        center: '',\n                        right: 'prev,next,today,month,agendaWeek,agendaDay'\n                    };\n                }\n            }\n\n\n\n            $('#calendar').fullCalendar('destroy'); // destroy the calendar\n            $('#calendar').fullCalendar({ //re-initialize the calendar\n                disableDragging: false,\n                header: h,\n                editable: true,\n                events: [{\n                    title: 'All Day',\n                    start: new Date(y, m, 1),\n                    backgroundColor: App.getBrandColor('yellow')\n                }, {\n                    title: 'Long Event',\n                    start: new Date(y, m, d - 5),\n                    end: new Date(y, m, d - 2),\n                    backgroundColor: App.getBrandColor('blue')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d - 3, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('red')\n                }, {\n                    title: 'Repeating Event',\n                    start: new Date(y, m, d + 6, 16, 0),\n                    allDay: false,\n                    backgroundColor: App.getBrandColor('green')\n                }, {\n                    title: 'Meeting',\n                    start: new Date(y, m, d + 9, 10, 30),\n                    allDay: false\n                }, {\n                    title: 'Lunch',\n                    start: new Date(y, m, d, 14, 0),\n                    end: new Date(y, m, d, 14, 0),\n                    backgroundColor: App.getBrandColor('grey'),\n                    allDay: false\n                }, {\n                    title: 'Birthday',\n                    start: new Date(y, m, d + 1, 19, 0),\n                    end: new Date(y, m, d + 1, 22, 30),\n                    backgroundColor: App.getBrandColor('purple'),\n                    allDay: false\n                }, {\n                    title: 'Click for Google',\n                    start: new Date(y, m, 28),\n                    end: new Date(y, m, 29),\n                    backgroundColor: App.getBrandColor('yellow'),\n                    url: 'http://google.com/'\n                }]\n            });\n        },\n\n        initCharts: function() {\n            if (!jQuery.plot) {\n                return;\n            }\n\n            function showChartTooltip(x, y, xValue, yValue) {\n                $('<div id=\"tooltip\" class=\"chart-tooltip\">' + yValue + '<\\/div>').css({\n                    position: 'absolute',\n                    display: 'none',\n                    top: y - 40,\n                    left: x - 40,\n                    border: '0px solid #ccc',\n                    padding: '2px 6px',\n                    'background-color': '#fff'\n                }).appendTo(\"body\").fadeIn(200);\n            }\n\n            var data = [];\n            var totalPoints = 250;\n\n            // random data generator for plot charts\n\n            function getRandomData() {\n                if (data.length > 0) data = data.slice(1);\n                // do a random walk\n                while (data.length < totalPoints) {\n                    var prev = data.length > 0 ? data[data.length - 1] : 50;\n                    var y = prev + Math.random() * 10 - 5;\n                    if (y < 0) y = 0;\n                    if (y > 100) y = 100;\n                    data.push(y);\n                }\n                // zip the generated y values with the x values\n                var res = [];\n                for (var i = 0; i < data.length; ++i) res.push([i, data[i]])\n                return res;\n            }\n\n            function randValue() {\n                return (Math.floor(Math.random() * (1 + 50 - 20))) + 10;\n            }\n\n            var visitors = [\n                ['02/2013', 1500],\n                ['03/2013', 2500],\n                ['04/2013', 1700],\n                ['05/2013', 800],\n                ['06/2013', 1500],\n                ['07/2013', 2350],\n                ['08/2013', 1500],\n                ['09/2013', 1300],\n                ['10/2013', 4600]\n            ];\n\n\n            if ($('#site_statistics').size() != 0) {\n\n                $('#site_statistics_loading').hide();\n                $('#site_statistics_content').show();\n\n                var plot_statistics = $.plot($(\"#site_statistics\"), [{\n                        data: visitors,\n                        lines: {\n                            fill: 0.6,\n                            lineWidth: 0\n                        },\n                        color: ['#f89f9f']\n                    }, {\n                        data: visitors,\n                        points: {\n                            show: true,\n                            fill: true,\n                            radius: 5,\n                            fillColor: \"#f89f9f\",\n                            lineWidth: 3\n                        },\n                        color: '#fff',\n                        shadowSize: 0\n                    }],\n\n                    {\n                        xaxis: {\n                            tickLength: 0,\n                            tickDecimals: 0,\n                            mode: \"categories\",\n                            min: 0,\n                            font: {\n                                lineHeight: 14,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        yaxis: {\n                            ticks: 5,\n                            tickDecimals: 0,\n                            tickColor: \"#eee\",\n                            font: {\n                                lineHeight: 14,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        grid: {\n                            hoverable: true,\n                            clickable: true,\n                            tickColor: \"#eee\",\n                            borderColor: \"#eee\",\n                            borderWidth: 1\n                        }\n                    });\n\n                var previousPoint = null;\n                $(\"#site_statistics\").bind(\"plothover\", function(event, pos, item) {\n                    $(\"#x\").text(pos.x.toFixed(2));\n                    $(\"#y\").text(pos.y.toFixed(2));\n                    if (item) {\n                        if (previousPoint != item.dataIndex) {\n                            previousPoint = item.dataIndex;\n\n                            $(\"#tooltip\").remove();\n                            var x = item.datapoint[0].toFixed(2),\n                                y = item.datapoint[1].toFixed(2);\n\n                            showChartTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1] + ' visits');\n                        }\n                    } else {\n                        $(\"#tooltip\").remove();\n                        previousPoint = null;\n                    }\n                });\n            }\n\n\n            if ($('#site_activities').size() != 0) {\n                //site activities\n                var previousPoint2 = null;\n                $('#site_activities_loading').hide();\n                $('#site_activities_content').show();\n\n                var data1 = [\n                    ['DEC', 300],\n                    ['JAN', 600],\n                    ['FEB', 1100],\n                    ['MAR', 1200],\n                    ['APR', 860],\n                    ['MAY', 1200],\n                    ['JUN', 1450],\n                    ['JUL', 1800],\n                    ['AUG', 1200],\n                    ['SEP', 600]\n                ];\n\n\n                var plot_statistics = $.plot($(\"#site_activities\"),\n\n                    [{\n                        data: data1,\n                        lines: {\n                            fill: 0.2,\n                            lineWidth: 0,\n                        },\n                        color: ['#BAD9F5']\n                    }, {\n                        data: data1,\n                        points: {\n                            show: true,\n                            fill: true,\n                            radius: 4,\n                            fillColor: \"#9ACAE6\",\n                            lineWidth: 2\n                        },\n                        color: '#9ACAE6',\n                        shadowSize: 1\n                    }, {\n                        data: data1,\n                        lines: {\n                            show: true,\n                            fill: false,\n                            lineWidth: 3\n                        },\n                        color: '#9ACAE6',\n                        shadowSize: 0\n                    }],\n\n                    {\n\n                        xaxis: {\n                            tickLength: 0,\n                            tickDecimals: 0,\n                            mode: \"categories\",\n                            min: 0,\n                            font: {\n                                lineHeight: 18,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        yaxis: {\n                            ticks: 5,\n                            tickDecimals: 0,\n                            tickColor: \"#eee\",\n                            font: {\n                                lineHeight: 14,\n                                style: \"normal\",\n                                variant: \"small-caps\",\n                                color: \"#6F7B8A\"\n                            }\n                        },\n                        grid: {\n                            hoverable: true,\n                            clickable: true,\n                            tickColor: \"#eee\",\n                            borderColor: \"#eee\",\n                            borderWidth: 1\n                        }\n                    });\n\n                $(\"#site_activities\").bind(\"plothover\", function(event, pos, item) {\n                    $(\"#x\").text(pos.x.toFixed(2));\n                    $(\"#y\").text(pos.y.toFixed(2));\n                    if (item) {\n                        if (previousPoint2 != item.dataIndex) {\n                            previousPoint2 = item.dataIndex;\n                            $(\"#tooltip\").remove();\n                            var x = item.datapoint[0].toFixed(2),\n                                y = item.datapoint[1].toFixed(2);\n                            showChartTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1] + 'M$');\n                        }\n                    }\n                });\n\n                $('#site_activities').bind(\"mouseleave\", function() {\n                    $(\"#tooltip\").remove();\n                });\n            }\n        },\n\n        initEasyPieCharts: function() {\n            if (!jQuery().easyPieChart) {\n                return;\n            }\n\n            $('.easy-pie-chart .number.transactions').easyPieChart({\n                animate: 1000,\n                size: 75,\n                lineWidth: 3,\n                barColor: App.getBrandColor('yellow')\n            });\n\n            $('.easy-pie-chart .number.visits').easyPieChart({\n                animate: 1000,\n                size: 75,\n                lineWidth: 3,\n                barColor: App.getBrandColor('green')\n            });\n\n            $('.easy-pie-chart .number.bounce').easyPieChart({\n                animate: 1000,\n                size: 75,\n                lineWidth: 3,\n                barColor: App.getBrandColor('red')\n            });\n\n            $('.easy-pie-chart-reload').click(function() {\n                $('.easy-pie-chart .number').each(function() {\n                    var newValue = Math.floor(100 * Math.random());\n                    $(this).data('easyPieChart').update(newValue);\n                    $('span', this).text(newValue);\n                });\n            });\n        },\n\n        initSparklineCharts: function() {\n            if (!jQuery().sparkline) {\n                return;\n            }\n            $(\"#sparkline_bar\").sparkline([8, 9, 10, 11, 10, 10, 12, 10, 10, 11, 9, 12, 11, 10, 9, 11, 13, 13, 12], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#f36a5b',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar2\").sparkline([9, 11, 12, 13, 12, 13, 10, 14, 13, 11, 11, 12, 11, 11, 10, 12, 11, 10], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#5c9bd1',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar5\").sparkline([8, 9, 10, 11, 10, 10, 12, 10, 10, 11, 9, 12, 11, 10, 9, 11, 13, 13, 12], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#35aa47',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar6\").sparkline([9, 11, 12, 13, 12, 13, 10, 14, 13, 11, 11, 12, 11, 11, 10, 12, 11, 10], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '55',\n                barColor: '#ffb848',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_line\").sparkline([9, 10, 9, 10, 10, 11, 12, 10, 10, 11, 11, 12, 11, 10, 12, 11, 10, 12], {\n                type: 'line',\n                width: '100',\n                height: '55',\n                lineColor: '#ffb848'\n            });\n        },\n\n        initMorisCharts: function() {\n            if (Morris.EventEmitter && $('#sales_statistics').size() > 0) {\n                // Use Morris.Area instead of Morris.Line\n                dashboardMainChart = Morris.Area({\n                    element: 'sales_statistics',\n                    padding: 0,\n                    behaveLikeLine: false,\n                    gridEnabled: false,\n                    gridLineColor: false,\n                    axes: false,\n                    fillOpacity: 1,\n                    data: [{\n                        period: '2011 Q1',\n                        sales: 1400,\n                        profit: 400\n                    }, {\n                        period: '2011 Q2',\n                        sales: 1100,\n                        profit: 600\n                    }, {\n                        period: '2011 Q3',\n                        sales: 1600,\n                        profit: 500\n                    }, {\n                        period: '2011 Q4',\n                        sales: 1200,\n                        profit: 400\n                    }, {\n                        period: '2012 Q1',\n                        sales: 1550,\n                        profit: 800\n                    }],\n                    lineColors: ['#399a8c', '#92e9dc'],\n                    xkey: 'period',\n                    ykeys: ['sales', 'profit'],\n                    labels: ['Sales', 'Profit'],\n                    pointSize: 0,\n                    lineWidth: 0,\n                    hideHover: 'auto',\n                    resize: true\n                });\n\n            }\n        },\n\n        initChat: function() {\n            var cont = $('#chats');\n            var list = $('.chats', cont);\n            var form = $('.chat-form', cont);\n            var input = $('input', form);\n            var btn = $('.btn', form);\n\n            var handleClick = function(e) {\n                e.preventDefault();\n\n                var text = input.val();\n                if (text.length == 0) {\n                    return;\n                }\n\n                var time = new Date();\n                var time_str = (time.getHours() + ':' + time.getMinutes());\n                var tpl = '';\n                tpl += '<li class=\"out\">';\n                tpl += '<img class=\"avatar\" alt=\"\" src=\"' + Layout.getLayoutImgPath() + 'avatar1.jpg\"/>';\n                tpl += '<div class=\"message\">';\n                tpl += '<span class=\"arrow\"></span>';\n                tpl += '<a href=\"#\" class=\"name\">Bob Nilson</a>&nbsp;';\n                tpl += '<span class=\"datetime\">at ' + time_str + '</span>';\n                tpl += '<span class=\"body\">';\n                tpl += text;\n                tpl += '</span>';\n                tpl += '</div>';\n                tpl += '</li>';\n\n                var msg = list.append(tpl);\n                input.val(\"\");\n\n                var getLastPostPos = function() {\n                    var height = 0;\n                    cont.find(\"li.out, li.in\").each(function() {\n                        height = height + $(this).outerHeight();\n                    });\n\n                    return height;\n                }\n\n                cont.find('.scroller').slimScroll({\n                    scrollTo: getLastPostPos()\n                });\n            }\n\n            $('body').on('click', '.message .name', function(e) {\n                e.preventDefault(); // prevent click event\n\n                var name = $(this).text(); // get clicked user's full name\n                input.val('@' + name + ':'); // set it into the input field\n                App.scrollTo(input); // scroll to input if needed\n            });\n\n            btn.click(handleClick);\n\n            input.keypress(function(e) {\n                if (e.which == 13) {\n                    handleClick(e);\n                    return false; //<---- Add this line\n                }\n            });\n        },\n\n        initDashboardDaterange: function() {\n            if (!jQuery().daterangepicker) {\n                return;\n            }\n\n            $('#dashboard-report-range').daterangepicker({\n                \"ranges\": {\n                    'Today': [moment(), moment()],\n                    'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],\n                    'Last 7 Days': [moment().subtract('days', 6), moment()],\n                    'Last 30 Days': [moment().subtract('days', 29), moment()],\n                    'This Month': [moment().startOf('month'), moment().endOf('month')],\n                    'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]\n                },\n                \"locale\": {\n                    \"format\": \"MM/DD/YYYY\",\n                    \"separator\": \" - \",\n                    \"applyLabel\": \"Apply\",\n                    \"cancelLabel\": \"Cancel\",\n                    \"fromLabel\": \"From\",\n                    \"toLabel\": \"To\",\n                    \"customRangeLabel\": \"Custom\",\n                    \"daysOfWeek\": [\n                        \"Su\",\n                        \"Mo\",\n                        \"Tu\",\n                        \"We\",\n                        \"Th\",\n                        \"Fr\",\n                        \"Sa\"\n                    ],\n                    \"monthNames\": [\n                        \"January\",\n                        \"February\",\n                        \"March\",\n                        \"April\",\n                        \"May\",\n                        \"June\",\n                        \"July\",\n                        \"August\",\n                        \"September\",\n                        \"October\",\n                        \"November\",\n                        \"December\"\n                    ],\n                    \"firstDay\": 1\n                },\n                //\"startDate\": \"11/08/2015\",\n                //\"endDate\": \"11/14/2015\",\n                opens: (App.isRTL() ? 'right' : 'left'),\n            }, function(start, end, label) {\n                if ($('#dashboard-report-range').attr('data-display-range') != '0') {\n                    $('#dashboard-report-range span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));\n                }\n            });\n             if ($('#dashboard-report-range').attr('data-display-range') != '0') {\n                $('#dashboard-report-range span').html(moment().subtract('days', 29).format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));\n            }\n            $('#dashboard-report-range').show();\n        },\n\n        initAmChart1: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_1').size() === 0) {\n                return;\n            }\n\n            var chartData = [{\n                \"date\": \"2012-01-05\",\n                \"distance\": 480,\n                \"townName\": \"Miami\",\n                \"townName2\": \"Miami\",\n                \"townSize\": 10,\n                \"latitude\": 25.83,\n                \"duration\": 501\n            }, {\n                \"date\": \"2012-01-06\",\n                \"distance\": 386,\n                \"townName\": \"Tallahassee\",\n                \"townSize\": 7,\n                \"latitude\": 30.46,\n                \"duration\": 443\n            }, {\n                \"date\": \"2012-01-07\",\n                \"distance\": 348,\n                \"townName\": \"New Orleans\",\n                \"townSize\": 10,\n                \"latitude\": 29.94,\n                \"duration\": 405\n            }, {\n                \"date\": \"2012-01-08\",\n                \"distance\": 238,\n                \"townName\": \"Houston\",\n                \"townName2\": \"Houston\",\n                \"townSize\": 16,\n                \"latitude\": 29.76,\n                \"duration\": 309\n            }, {\n                \"date\": \"2012-01-09\",\n                \"distance\": 218,\n                \"townName\": \"Dalas\",\n                \"townSize\": 17,\n                \"latitude\": 32.8,\n                \"duration\": 287\n            }, {\n                \"date\": \"2012-01-10\",\n                \"distance\": 349,\n                \"townName\": \"Oklahoma City\",\n                \"townSize\": 11,\n                \"latitude\": 35.49,\n                \"duration\": 485\n            }, {\n                \"date\": \"2012-01-11\",\n                \"distance\": 603,\n                \"townName\": \"Kansas City\",\n                \"townSize\": 10,\n                \"latitude\": 39.1,\n                \"duration\": 890\n            }, {\n                \"date\": \"2012-01-12\",\n                \"distance\": 534,\n                \"townName\": \"Denver\",\n                \"townName2\": \"Denver\",\n                \"townSize\": 18,\n                \"latitude\": 39.74,\n                \"duration\": 810\n            }, {\n                \"date\": \"2012-01-13\",\n                \"townName\": \"Salt Lake City\",\n                \"townSize\": 12,\n                \"distance\": 425,\n                \"duration\": 670,\n                \"latitude\": 40.75,\n                \"alpha\": 0.4\n            }, {\n                \"date\": \"2012-01-14\",\n                \"latitude\": 36.1,\n                \"duration\": 470,\n                \"townName\": \"Las Vegas\",\n                \"townName2\": \"Las Vegas\",\n                \"bulletClass\": \"lastBullet\"\n            }, {\n                \"date\": \"2012-01-15\"\n            }];\n            var chart = AmCharts.makeChart(\"dashboard_amchart_1\", {\n                type: \"serial\",\n                fontSize: 12,\n                fontFamily: \"Open Sans\",\n                dataDateFormat: \"YYYY-MM-DD\",\n                dataProvider: chartData,\n\n                addClassNames: true,\n                startDuration: 1,\n                color: \"#6c7b88\",\n                marginLeft: 0,\n\n                categoryField: \"date\",\n                categoryAxis: {\n                    parseDates: true,\n                    minPeriod: \"DD\",\n                    autoGridCount: false,\n                    gridCount: 50,\n                    gridAlpha: 0.1,\n                    gridColor: \"#FFFFFF\",\n                    axisColor: \"#555555\",\n                    dateFormats: [{\n                        period: 'DD',\n                        format: 'DD'\n                    }, {\n                        period: 'WW',\n                        format: 'MMM DD'\n                    }, {\n                        period: 'MM',\n                        format: 'MMM'\n                    }, {\n                        period: 'YYYY',\n                        format: 'YYYY'\n                    }]\n                },\n\n                valueAxes: [{\n                    id: \"a1\",\n                    title: \"distance\",\n                    gridAlpha: 0,\n                    axisAlpha: 0\n                }, {\n                    id: \"a2\",\n                    position: \"right\",\n                    gridAlpha: 0,\n                    axisAlpha: 0,\n                    labelsEnabled: false\n                }, {\n                    id: \"a3\",\n                    title: \"duration\",\n                    position: \"right\",\n                    gridAlpha: 0,\n                    axisAlpha: 0,\n                    inside: true,\n                    duration: \"mm\",\n                    durationUnits: {\n                        DD: \"d. \",\n                        hh: \"h \",\n                        mm: \"min\",\n                        ss: \"\"\n                    }\n                }],\n                graphs: [{\n                    id: \"g1\",\n                    valueField: \"distance\",\n                    title: \"distance\",\n                    type: \"column\",\n                    fillAlphas: 0.7,\n                    valueAxis: \"a1\",\n                    balloonText: \"[[value]] miles\",\n                    legendValueText: \"[[value]] mi\",\n                    legendPeriodValueText: \"total: [[value.sum]] mi\",\n                    lineColor: \"#08a3cc\",\n                    alphaField: \"alpha\",\n                }, {\n                    id: \"g2\",\n                    valueField: \"latitude\",\n                    classNameField: \"bulletClass\",\n                    title: \"latitude/city\",\n                    type: \"line\",\n                    valueAxis: \"a2\",\n                    lineColor: \"#786c56\",\n                    lineThickness: 1,\n                    legendValueText: \"[[description]]/[[value]]\",\n                    descriptionField: \"townName\",\n                    bullet: \"round\",\n                    bulletSizeField: \"townSize\",\n                    bulletBorderColor: \"#02617a\",\n                    bulletBorderAlpha: 1,\n                    bulletBorderThickness: 2,\n                    bulletColor: \"#89c4f4\",\n                    labelText: \"[[townName2]]\",\n                    labelPosition: \"right\",\n                    balloonText: \"latitude:[[value]]\",\n                    showBalloon: true,\n                    animationPlayed: true,\n                }, {\n                    id: \"g3\",\n                    title: \"duration\",\n                    valueField: \"duration\",\n                    type: \"line\",\n                    valueAxis: \"a3\",\n                    lineAlpha: 0.8,\n                    lineColor: \"#e26a6a\",\n                    balloonText: \"[[value]]\",\n                    lineThickness: 1,\n                    legendValueText: \"[[value]]\",\n                    bullet: \"square\",\n                    bulletBorderColor: \"#e26a6a\",\n                    bulletBorderThickness: 1,\n                    bulletBorderAlpha: 0.8,\n                    dashLengthField: \"dashLength\",\n                    animationPlayed: true\n                }],\n\n                chartCursor: {\n                    zoomable: false,\n                    categoryBalloonDateFormat: \"DD\",\n                    cursorAlpha: 0,\n                    categoryBalloonColor: \"#e26a6a\",\n                    categoryBalloonAlpha: 0.8,\n                    valueBalloonsEnabled: false\n                },\n                legend: {\n                    bulletType: \"round\",\n                    equalWidths: false,\n                    valueWidth: 120,\n                    useGraphSettings: true,\n                    color: \"#6c7b88\"\n                }\n            });\n        },\n\n        initAmChart2: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_2').size() === 0) {\n                return;\n            }\n\n            // svg path for target icon\n            var targetSVG = \"M9,0C4.029,0,0,4.029,0,9s4.029,9,9,9s9-4.029,9-9S13.971,0,9,0z M9,15.93 c-3.83,0-6.93-3.1-6.93-6.93S5.17,2.07,9,2.07s6.93,3.1,6.93,6.93S12.83,15.93,9,15.93 M12.5,9c0,1.933-1.567,3.5-3.5,3.5S5.5,10.933,5.5,9S7.067,5.5,9,5.5 S12.5,7.067,12.5,9z\";\n            // svg path for plane icon\n            var planeSVG = \"M19.671,8.11l-2.777,2.777l-3.837-0.861c0.362-0.505,0.916-1.683,0.464-2.135c-0.518-0.517-1.979,0.278-2.305,0.604l-0.913,0.913L7.614,8.804l-2.021,2.021l2.232,1.061l-0.082,0.082l1.701,1.701l0.688-0.687l3.164,1.504L9.571,18.21H6.413l-1.137,1.138l3.6,0.948l1.83,1.83l0.947,3.598l1.137-1.137V21.43l3.725-3.725l1.504,3.164l-0.687,0.687l1.702,1.701l0.081-0.081l1.062,2.231l2.02-2.02l-0.604-2.689l0.912-0.912c0.326-0.326,1.121-1.789,0.604-2.306c-0.452-0.452-1.63,0.101-2.135,0.464l-0.861-3.838l2.777-2.777c0.947-0.947,3.599-4.862,2.62-5.839C24.533,4.512,20.618,7.163,19.671,8.11z\";\n\n            var map = AmCharts.makeChart(\"dashboard_amchart_2\", {\n                type: \"map\",\n                \"theme\": \"light\",\n                pathToImages: \"../assets/global/plugins/amcharts/ammap/images/\",\n\n                dataProvider: {\n                    map: \"worldLow\",\n                    linkToObject: \"london\",\n                    images: [{\n                            id: \"london\",\n                            color: \"#009dc7\",\n                            svgPath: targetSVG,\n                            title: \"London\",\n                            latitude: 51.5002,\n                            longitude: -0.1262,\n                            scale: 1.5,\n                            zoomLevel: 2.74,\n                            zoomLongitude: -20.1341,\n                            zoomLatitude: 49.1712,\n\n                            lines: [{\n                                latitudes: [51.5002, 50.4422],\n                                longitudes: [-0.1262, 30.5367]\n                            }, {\n                                latitudes: [51.5002, 46.9480],\n                                longitudes: [-0.1262, 7.4481]\n                            }, {\n                                latitudes: [51.5002, 59.3328],\n                                longitudes: [-0.1262, 18.0645]\n                            }, {\n                                latitudes: [51.5002, 40.4167],\n                                longitudes: [-0.1262, -3.7033]\n                            }, {\n                                latitudes: [51.5002, 46.0514],\n                                longitudes: [-0.1262, 14.5060]\n                            }, {\n                                latitudes: [51.5002, 48.2116],\n                                longitudes: [-0.1262, 17.1547]\n                            }, {\n                                latitudes: [51.5002, 44.8048],\n                                longitudes: [-0.1262, 20.4781]\n                            }, {\n                                latitudes: [51.5002, 55.7558],\n                                longitudes: [-0.1262, 37.6176]\n                            }, {\n                                latitudes: [51.5002, 38.7072],\n                                longitudes: [-0.1262, -9.1355]\n                            }, {\n                                latitudes: [51.5002, 54.6896],\n                                longitudes: [-0.1262, 25.2799]\n                            }, {\n                                latitudes: [51.5002, 64.1353],\n                                longitudes: [-0.1262, -21.8952]\n                            }, {\n                                latitudes: [51.5002, 40.4300],\n                                longitudes: [-0.1262, -74.0000]\n                            }],\n\n                            images: [{\n                                label: \"Flights from London\",\n                                svgPath: planeSVG,\n                                left: 100,\n                                top: 45,\n                                labelShiftY: 5,\n                                color: \"#d93d5e\",\n                                labelColor: \"#d93d5e\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 20\n                            }, {\n                                label: \"show flights from Vilnius\",\n                                left: 106,\n                                top: 70,\n                                labelColor: \"#6c7b88\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 11,\n                                linkToObject: \"vilnius\"\n                            }]\n                        },\n\n                        {\n                            id: \"vilnius\",\n                            color: \"#009dc7\",\n                            svgPath: targetSVG,\n                            title: \"Vilnius\",\n                            latitude: 54.6896,\n                            longitude: 25.2799,\n                            scale: 1.5,\n                            zoomLevel: 4.92,\n                            zoomLongitude: 15.4492,\n                            zoomLatitude: 50.2631,\n\n                            lines: [{\n                                latitudes: [54.6896, 50.8371],\n                                longitudes: [25.2799, 4.3676]\n                            }, {\n                                latitudes: [54.6896, 59.9138],\n                                longitudes: [25.2799, 10.7387]\n                            }, {\n                                latitudes: [54.6896, 40.4167],\n                                longitudes: [25.2799, -3.7033]\n                            }, {\n                                latitudes: [54.6896, 50.0878],\n                                longitudes: [25.2799, 14.4205]\n                            }, {\n                                latitudes: [54.6896, 48.2116],\n                                longitudes: [25.2799, 17.1547]\n                            }, {\n                                latitudes: [54.6896, 44.8048],\n                                longitudes: [25.2799, 20.4781]\n                            }, {\n                                latitudes: [54.6896, 55.7558],\n                                longitudes: [25.2799, 37.6176]\n                            }, {\n                                latitudes: [54.6896, 37.9792],\n                                longitudes: [25.2799, 23.7166]\n                            }, {\n                                latitudes: [54.6896, 54.6896],\n                                longitudes: [25.2799, 25.2799]\n                            }, {\n                                latitudes: [54.6896, 51.5002],\n                                longitudes: [25.2799, -0.1262]\n                            }, {\n                                latitudes: [54.6896, 53.3441],\n                                longitudes: [25.2799, -6.2675]\n                            }],\n\n                            images: [{\n                                label: \"Flights from Vilnius\",\n                                svgPath: planeSVG,\n                                left: 100,\n                                top: 45,\n                                labelShiftY: 5,\n                                color: \"#d93d5e\",\n                                labelColor: \"#d93d5e\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 20\n                            }, {\n                                label: \"show flights from London\",\n                                left: 106,\n                                top: 70,\n                                labelColor: \"#009dc7\",\n                                labelRollOverColor: \"#d93d5e\",\n                                labelFontSize: 11,\n                                linkToObject: \"london\"\n                            }]\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Brussels\",\n                            latitude: 50.8371,\n                            longitude: 4.3676\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Prague\",\n                            latitude: 50.0878,\n                            longitude: 14.4205\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Athens\",\n                            latitude: 37.9792,\n                            longitude: 23.7166\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Reykjavik\",\n                            latitude: 64.1353,\n                            longitude: -21.8952\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Dublin\",\n                            latitude: 53.3441,\n                            longitude: -6.2675\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Oslo\",\n                            latitude: 59.9138,\n                            longitude: 10.7387\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Lisbon\",\n                            latitude: 38.7072,\n                            longitude: -9.1355\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Moscow\",\n                            latitude: 55.7558,\n                            longitude: 37.6176\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Belgrade\",\n                            latitude: 44.8048,\n                            longitude: 20.4781\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Bratislava\",\n                            latitude: 48.2116,\n                            longitude: 17.1547\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Ljubljana\",\n                            latitude: 46.0514,\n                            longitude: 14.5060\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Madrid\",\n                            latitude: 40.4167,\n                            longitude: -3.7033\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Stockholm\",\n                            latitude: 59.3328,\n                            longitude: 18.0645\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Bern\",\n                            latitude: 46.9480,\n                            longitude: 7.4481\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Kiev\",\n                            latitude: 50.4422,\n                            longitude: 30.5367\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"Paris\",\n                            latitude: 48.8567,\n                            longitude: 2.3510\n                        }, {\n                            svgPath: targetSVG,\n                            title: \"New York\",\n                            latitude: 40.43,\n                            longitude: -74\n                        }\n                    ]\n                },\n\n                zoomControl: {\n                    buttonFillColor: \"#dddddd\"\n                },\n\n                areasSettings: {\n                    unlistedAreasColor: \"#15A892\"\n                },\n\n                imagesSettings: {\n                    color: \"#d93d5e\",\n                    rollOverColor: \"#d93d5e\",\n                    selectedColor: \"#009dc7\"\n                },\n\n                linesSettings: {\n                    color: \"#d93d5e\",\n                    alpha: 0.4\n                },\n\n\n                backgroundZoomsToTop: true,\n                linesAboveImages: true,\n\n                \"export\": {\n                    \"enabled\": true,\n                    \"libs\": {\n                        \"path\": \"http://www.amcharts.com/lib/3/plugins/export/libs/\"\n                    }\n                }\n            });\n        },\n\n        initAmChart3: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_3').size() === 0) {\n                return;\n            }\n\n            var chart = AmCharts.makeChart(\"dashboard_amchart_3\", {\n                \"type\": \"serial\",\n                \"addClassNames\": true,\n                \"theme\": \"light\",\n                \"path\": \"../assets/global/plugins/amcharts/ammap/images/\",\n                \"autoMargins\": false,\n                \"marginLeft\": 30,\n                \"marginRight\": 8,\n                \"marginTop\": 10,\n                \"marginBottom\": 26,\n                \"balloon\": {\n                    \"adjustBorderColor\": false,\n                    \"horizontalPadding\": 10,\n                    \"verticalPadding\": 8,\n                    \"color\": \"#ffffff\"\n                },\n\n                \"dataProvider\": [{\n                    \"year\": 2009,\n                    \"income\": 23.5,\n                    \"expenses\": 21.1\n                }, {\n                    \"year\": 2010,\n                    \"income\": 26.2,\n                    \"expenses\": 30.5\n                }, {\n                    \"year\": 2011,\n                    \"income\": 30.1,\n                    \"expenses\": 34.9\n                }, {\n                    \"year\": 2012,\n                    \"income\": 29.5,\n                    \"expenses\": 31.1\n                }, {\n                    \"year\": 2013,\n                    \"income\": 30.6,\n                    \"expenses\": 28.2,\n                }, {\n                    \"year\": 2014,\n                    \"income\": 34.1,\n                    \"expenses\": 32.9,\n                    \"dashLengthColumn\": 5,\n                    \"alpha\": 0.2,\n                    \"additional\": \"(projection)\"\n                }],\n                \"valueAxes\": [{\n                    \"axisAlpha\": 0,\n                    \"position\": \"left\"\n                }],\n                \"startDuration\": 1,\n                \"graphs\": [{\n                    \"alphaField\": \"alpha\",\n                    \"balloonText\": \"<span style='font-size:12px;'>[[title]] in [[category]]:<br><span style='font-size:20px;'>[[value]]</span> [[additional]]</span>\",\n                    \"fillAlphas\": 1,\n                    \"title\": \"Income\",\n                    \"type\": \"column\",\n                    \"valueField\": \"income\",\n                    \"dashLengthField\": \"dashLengthColumn\"\n                }, {\n                    \"id\": \"graph2\",\n                    \"balloonText\": \"<span style='font-size:12px;'>[[title]] in [[category]]:<br><span style='font-size:20px;'>[[value]]</span> [[additional]]</span>\",\n                    \"bullet\": \"round\",\n                    \"lineThickness\": 3,\n                    \"bulletSize\": 7,\n                    \"bulletBorderAlpha\": 1,\n                    \"bulletColor\": \"#FFFFFF\",\n                    \"useLineColorForBulletBorder\": true,\n                    \"bulletBorderThickness\": 3,\n                    \"fillAlphas\": 0,\n                    \"lineAlpha\": 1,\n                    \"title\": \"Expenses\",\n                    \"valueField\": \"expenses\"\n                }],\n                \"categoryField\": \"year\",\n                \"categoryAxis\": {\n                    \"gridPosition\": \"start\",\n                    \"axisAlpha\": 0,\n                    \"tickLength\": 0\n                },\n                \"export\": {\n                    \"enabled\": true\n                }\n            });\n        },\n\n        initAmChart4: function() {\n            if (typeof(AmCharts) === 'undefined' || $('#dashboard_amchart_4').size() === 0) {\n                return;\n            }\n\n            var chart = AmCharts.makeChart(\"dashboard_amchart_4\", {\n                \"type\": \"pie\",\n                \"theme\": \"light\",\n                \"path\": \"../assets/global/plugins/amcharts/ammap/images/\",\n                \"dataProvider\": [{\n                    \"country\": \"Lithuania\",\n                    \"value\": 260\n                }, {\n                    \"country\": \"Ireland\",\n                    \"value\": 201\n                }, {\n                    \"country\": \"Germany\",\n                    \"value\": 65\n                }, {\n                    \"country\": \"Australia\",\n                    \"value\": 39\n                }, {\n                    \"country\": \"UK\",\n                    \"value\": 19\n                }, {\n                    \"country\": \"Latvia\",\n                    \"value\": 10\n                }],\n                \"valueField\": \"value\",\n                \"titleField\": \"country\",\n                \"outlineAlpha\": 0.4,\n                \"depth3D\": 15,\n                \"balloonText\": \"[[title]]<br><span style='font-size:14px'><b>[[value]]</b> ([[percents]]%)</span>\",\n                \"angle\": 30,\n                \"export\": {\n                    \"enabled\": true\n                }\n            });\n            jQuery('.chart-input').off().on('input change', function() {\n                var property = jQuery(this).data('property');\n                var target = chart;\n                var value = Number(this.value);\n                chart.startDuration = 0;\n\n                if (property == 'innerRadius') {\n                    value += \"%\";\n                }\n\n                target[property] = value;\n                chart.validateNow();\n            });\n        },\n\n        initWorldMapStats: function() {\n            if ($('#mapplic').size() === 0) {\n                return;\n            }\n\n            $('#mapplic').mapplic({\n                source: '../assets/global/plugins/mapplic/world.json',\n                height: 265,\n                animate: false,\n                sidebar: false,\n                minimap: false,\n                locations: true,\n                deeplinking: true,\n                fullscreen: false,\n                hovertip: true,\n                zoombuttons: false,\n                clearbutton: false,\n                developer: false,\n                maxscale: 2,\n                skin: 'mapplic-dark',\n                zoom: true\n            });\n\n            $(\"#widget_sparkline_bar\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#4db3a4',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#widget_sparkline_bar2\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#f36a5a',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#widget_sparkline_bar3\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#5b9bd1',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#widget_sparkline_bar4\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n                type: 'bar',\n                width: '100',\n                barWidth: 5,\n                height: '30',\n                barColor: '#9a7caf',\n                negBarColor: '#e02222'\n            });\n        },\n\n        init: function() {\n\n            this.initJQVMAP();\n            this.initCalendar();\n            this.initCharts();\n            this.initEasyPieCharts();\n            this.initSparklineCharts();\n            this.initChat();\n            this.initDashboardDaterange();\n            this.initMorisCharts();\n\n            this.initAmChart1();\n            this.initAmChart2();\n            this.initAmChart3();\n            this.initAmChart4();\n\n            this.initWorldMapStats();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {\n        Dashboard.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ecommerce-dashboard.js",
    "content": "var EcommerceDashboard = function() {\n\n    function showTooltip(x, y, labelX, labelY) {\n        $('<div id=\"tooltip\" class=\"chart-tooltip\">' + (labelY.toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,')) + 'USD<\\/div>').css({\n            position: 'absolute',\n            display: 'none',\n            top: y - 40,\n            left: x - 60,\n            border: '0px solid #ccc',\n            padding: '2px 6px',\n            'background-color': '#fff'\n        }).appendTo(\"body\").fadeIn(200);\n    }\n\n    var initChart1 = function() {\n\n        var data = [\n            ['01/2013', 4],\n            ['02/2013', 8],\n            ['03/2013', 10],\n            ['04/2013', 12],\n            ['05/2013', 2125],\n            ['06/2013', 324],\n            ['07/2013', 1223],\n            ['08/2013', 1365],\n            ['09/2013', 250],\n            ['10/2013', 999],\n            ['11/2013', 390]\n        ];\n\n        var plot_statistics = $.plot(\n            $(\"#statistics_1\"), [{\n                data: data,\n                lines: {\n                    fill: 0.6,\n                    lineWidth: 0\n                },\n                color: ['#f89f9f']\n            }, {\n                data: data,\n                points: {\n                    show: true,\n                    fill: true,\n                    radius: 5,\n                    fillColor: \"#f89f9f\",\n                    lineWidth: 3\n                },\n                color: '#fff',\n                shadowSize: 0\n            }], {\n\n                xaxis: {\n                    tickLength: 0,\n                    tickDecimals: 0,\n                    mode: \"categories\",\n                    min: 2,\n                    font: {\n                        lineHeight: 15,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                yaxis: {\n                    ticks: 3,\n                    tickDecimals: 0,\n                    tickColor: \"#f0f0f0\",\n                    font: {\n                        lineHeight: 15,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                grid: {\n                    backgroundColor: {\n                        colors: [\"#fff\", \"#fff\"]\n                    },\n                    borderWidth: 1,\n                    borderColor: \"#f0f0f0\",\n                    margin: 0,\n                    minBorderMargin: 0,\n                    labelMargin: 20,\n                    hoverable: true,\n                    clickable: true,\n                    mouseActiveRadius: 6\n                },\n                legend: {\n                    show: false\n                }\n            }\n        );\n\n        var previousPoint = null;\n\n        $(\"#statistics_1\").bind(\"plothover\", function(event, pos, item) {\n            $(\"#x\").text(pos.x.toFixed(2));\n            $(\"#y\").text(pos.y.toFixed(2));\n            if (item) {\n                if (previousPoint != item.dataIndex) {\n                    previousPoint = item.dataIndex;\n\n                    $(\"#tooltip\").remove();\n                    var x = item.datapoint[0].toFixed(2),\n                        y = item.datapoint[1].toFixed(2);\n\n                    showTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1]);\n                }\n            } else {\n                $(\"#tooltip\").remove();\n                previousPoint = null;\n            }\n        });\n\n    }\n\n    var initChart2 = function() {\n\n        var data = [\n            ['01/2013', 10],\n            ['02/2013', 0],\n            ['03/2013', 10],\n            ['04/2013', 12],\n            ['05/2013', 212],\n            ['06/2013', 324],\n            ['07/2013', 122],\n            ['08/2013', 136],\n            ['09/2013', 250],\n            ['10/2013', 99],\n            ['11/2013', 190]\n        ];\n\n        var plot_statistics = $.plot(\n            $(\"#statistics_2\"), [{\n                data: data,\n                lines: {\n                    fill: 0.6,\n                    lineWidth: 0\n                },\n                color: ['#BAD9F5']\n            }, {\n                data: data,\n                points: {\n                    show: true,\n                    fill: true,\n                    radius: 5,\n                    fillColor: \"#BAD9F5\",\n                    lineWidth: 3\n                },\n                color: '#fff',\n                shadowSize: 0\n            }], {\n\n                xaxis: {\n                    tickLength: 0,\n                    tickDecimals: 0,\n                    mode: \"categories\",\n                    min: 2,\n                    font: {\n                        lineHeight: 14,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                yaxis: {\n                    ticks: 3,\n                    tickDecimals: 0,\n                    tickColor: \"#f0f0f0\",\n                    font: {\n                        lineHeight: 14,\n                        style: \"normal\",\n                        variant: \"small-caps\",\n                        color: \"#6F7B8A\"\n                    }\n                },\n                grid: {\n                    backgroundColor: {\n                        colors: [\"#fff\", \"#fff\"]\n                    },\n                    borderWidth: 1,\n                    borderColor: \"#f0f0f0\",\n                    margin: 0,\n                    minBorderMargin: 0,\n                    labelMargin: 20,\n                    hoverable: true,\n                    clickable: true,\n                    mouseActiveRadius: 6\n                },\n                legend: {\n                    show: false\n                }\n            }\n        );\n\n        var previousPoint = null;\n\n        $(\"#statistics_2\").bind(\"plothover\", function(event, pos, item) {\n            $(\"#x\").text(pos.x.toFixed(2));\n            $(\"#y\").text(pos.y.toFixed(2));\n            if (item) {\n                if (previousPoint != item.dataIndex) {\n                    previousPoint = item.dataIndex;\n\n                    $(\"#tooltip\").remove();\n                    var x = item.datapoint[0].toFixed(2),\n                        y = item.datapoint[1].toFixed(2);\n\n                    showTooltip(item.pageX, item.pageY, item.datapoint[0], item.datapoint[1]);\n                }\n            } else {\n                $(\"#tooltip\").remove();\n                previousPoint = null;\n            }\n        });\n\n    }\n\n    return {\n\n        //main function\n        init: function() {\n            initChart1();\n\n            $('#statistics_orders_tab').on('shown.bs.tab', function(e) {\n                initChart2();\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceDashboard.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ecommerce-orders-view.js",
    "content": "var EcommerceOrdersView = function () {\n\n\n    var handleInvoices = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_invoices\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [19, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_invoices.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n    }\n\n    var handleCreditMemos = function () {\n\n        var grid = new Datatable();\n        \n        grid.init({\n            src: $(\"#datatable_credit_memos\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_credit_memos.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n    }\n\n    var handleShipment = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_shipment\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_shipment.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n    }\n\n    var handleHistory = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_history\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_order_history.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n    }\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n\n        $(\".datetime-picker\").datetimepicker({\n            isRTL: App.isRTL(),\n            autoclose: true,\n            todayBtn: true,\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            minuteStep: 10\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            initPickers();\n\n            handleInvoices();\n            handleCreditMemos();\n            handleShipment();\n            handleHistory();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceOrdersView.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ecommerce-orders.js",
    "content": "var EcommerceOrders = function () {\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n    }\n\n    var handleOrders = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_orders\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_orders.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            initPickers();\n            handleOrders();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceOrders.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ecommerce-products-edit.js",
    "content": "var EcommerceProductsEdit = function () {\n\n    var handleImages = function() {\n\n        // see http://www.plupload.com/\n        var uploader = new plupload.Uploader({\n            runtimes : 'html5,flash,silverlight,html4',\n             \n            browse_button : document.getElementById('tab_images_uploader_pickfiles'), // you can pass in id...\n            container: document.getElementById('tab_images_uploader_container'), // ... or DOM Element itself\n             \n            url : \"assets/plugins/plupload/examples/upload.php\",\n             \n            filters : {\n                max_file_size : '10mb',\n                mime_types: [\n                    {title : \"Image files\", extensions : \"jpg,gif,png\"},\n                    {title : \"Zip files\", extensions : \"zip\"}\n                ]\n            },\n         \n            // Flash settings\n            flash_swf_url : 'assets/plugins/plupload/js/Moxie.swf',\n     \n            // Silverlight settings\n            silverlight_xap_url : 'assets/plugins/plupload/js/Moxie.xap',             \n         \n            init: {\n                PostInit: function() {\n                    $('#tab_images_uploader_filelist').html(\"\");\n         \n                    $('#tab_images_uploader_uploadfiles').click(function() {\n                        uploader.start();\n                        return false;\n                    });\n\n                    $('#tab_images_uploader_filelist').on('click', '.added-files .remove', function(){\n                        uploader.removeFile($(this).parent('.added-files').attr(\"id\"));    \n                        $(this).parent('.added-files').remove();                     \n                    });\n                },\n         \n                FilesAdded: function(up, files) {\n                    plupload.each(files, function(file) {\n                        $('#tab_images_uploader_filelist').append('<div class=\"alert alert-warning added-files\" id=\"uploaded_file_' + file.id + '\">' + file.name + '(' + plupload.formatSize(file.size) + ') <span class=\"status label label-info\"></span>&nbsp;<a href=\"javascript:;\" style=\"margin-top:-5px\" class=\"remove pull-right btn btn-sm red\"><i class=\"fa fa-times\"></i> remove</a></div>');\n                    });\n                },\n         \n                UploadProgress: function(up, file) {\n                    $('#uploaded_file_' + file.id + ' > .status').html(file.percent + '%');\n                },\n\n                FileUploaded: function(up, file, response) {\n                    var response = $.parseJSON(response.response);\n\n                    if (response.result && response.result == 'OK') {\n                        var id = response.id; // uploaded file's unique name. Here you can collect uploaded file names and submit an jax request to your server side script to process the uploaded files and update the images tabke\n\n                        $('#uploaded_file_' + file.id + ' > .status').removeClass(\"label-info\").addClass(\"label-success\").html('<i class=\"fa fa-check\"></i> Done'); // set successfull upload\n                    } else {\n                        $('#uploaded_file_' + file.id + ' > .status').removeClass(\"label-info\").addClass(\"label-danger\").html('<i class=\"fa fa-warning\"></i> Failed'); // set failed upload\n                        App.alert({type: 'danger', message: 'One of uploads failed. Please retry.', closeInSeconds: 10, icon: 'warning'});\n                    }\n                },\n         \n                Error: function(up, err) {\n                    App.alert({type: 'danger', message: err.message, closeInSeconds: 10, icon: 'warning'});\n                }\n            }\n        });\n\n        uploader.init();\n\n    }\n\n    var handleReviews = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_reviews\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_product_reviews.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n    }\n\n    var handleHistory = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_history\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_product_history.php\", // ajax source\n                },\n                \"columnDefs\": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)\n                    'orderable': true,\n                    'targets': [0]\n                }],\n                \"order\": [\n                    [0, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n    } \n\n    var initComponents = function () {\n        //init datepickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n\n        //init datetimepickers\n        $(\".datetime-picker\").datetimepicker({\n            isRTL: App.isRTL(),\n            autoclose: true,\n            todayBtn: true,\n            pickerPosition: (App.isRTL() ? \"bottom-right\" : \"bottom-left\"),\n            minuteStep: 10\n        });\n\n        //init maxlength handler\n        $('.maxlength-handler').maxlength({\n            limitReachedClass: \"label label-danger\",\n            alwaysShow: true,\n            threshold: 5\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            initComponents();\n\n            handleImages();\n            handleReviews();\n            handleHistory();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceProductsEdit.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ecommerce-products.js",
    "content": "var EcommerceProducts = function () {\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n    }\n\n    var handleProducts = function() {\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_products\"),\n            onSuccess: function (grid) {\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150],\n                    [10, 20, 50, 100, 150] // change per page values here \n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/ecommerce_products.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ] // set first column as a default sort by asc\n            }\n        });\n\n         // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            handleProducts();\n            initPickers();\n            \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   EcommerceProducts.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-dropzone.js",
    "content": "var FormDropzone = function () {\n\n\n    return {\n        //main function to initiate the module\n        init: function () {  \n\n            Dropzone.options.myDropzone = {\n                dictDefaultMessage: \"\",\n                init: function() {\n                    this.on(\"addedfile\", function(file) {\n                        // Create the remove button\n                        var removeButton = Dropzone.createElement(\"<a href='javascript:;'' class='btn red btn-sm btn-block'>Remove</a>\");\n                        \n                        // Capture the Dropzone instance as closure.\n                        var _this = this;\n\n                        // Listen to the click event\n                        removeButton.addEventListener(\"click\", function(e) {\n                          // Make sure the button click doesn't submit the form:\n                          e.preventDefault();\n                          e.stopPropagation();\n\n                          // Remove the file preview.\n                          _this.removeFile(file);\n                          // If you want to the delete the file on the server as well,\n                          // you can do the AJAX request here.\n                        });\n\n                        // Add the button to the file preview element.\n                        file.previewElement.appendChild(removeButton);\n                    });\n                }            \n            }\n        }\n    };\n}();\n\njQuery(document).ready(function() {    \n   FormDropzone.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-editable.js",
    "content": "var FormEditable = function() {\n\n    $.mockjaxSettings.responseTime = 500;\n\n    var log = function(settings, response) {\n        var s = [],\n            str;\n        s.push(settings.type.toUpperCase() + ' url = \"' + settings.url + '\"');\n        for (var a in settings.data) {\n            if (settings.data[a] && typeof settings.data[a] === 'object') {\n                str = [];\n                for (var j in settings.data[a]) {\n                    str.push(j + ': \"' + settings.data[a][j] + '\"');\n                }\n                str = '{ ' + str.join(', ') + ' }';\n            } else {\n                str = '\"' + settings.data[a] + '\"';\n            }\n            s.push(a + ' = ' + str);\n        }\n        s.push('RESPONSE: status = ' + response.status);\n\n        if (response.responseText) {\n            if ($.isArray(response.responseText)) {\n                s.push('[');\n                $.each(response.responseText, function(i, v) {\n                    s.push('{value: ' + v.value + ', text: \"' + v.text + '\"}');\n                });\n                s.push(']');\n            } else {\n                s.push($.trim(response.responseText));\n            }\n        }\n        s.push('--------------------------------------\\n');\n        $('#console').val(s.join('\\n') + $('#console').val());\n    }\n\n    var initAjaxMock = function() {\n        //ajax mocks\n\n        $.mockjax({\n            url: '/post',\n            response: function(settings) {\n                log(settings, this);\n            }\n        });\n\n        $.mockjax({\n            url: '/error',\n            status: 400,\n            statusText: 'Bad Request',\n            response: function(settings) {\n                this.responseText = 'Please input correct value';\n                log(settings, this);\n            }\n        });\n\n        $.mockjax({\n            url: '/status',\n            status: 500,\n            response: function(settings) {\n                this.responseText = 'Internal Server Error';\n                log(settings, this);\n            }\n        });\n\n        $.mockjax({\n            url: '/groups',\n            response: function(settings) {\n                this.responseText = [{\n                    value: 0,\n                    text: 'Guest'\n                }, {\n                    value: 1,\n                    text: 'Service'\n                }, {\n                    value: 2,\n                    text: 'Customer'\n                }, {\n                    value: 3,\n                    text: 'Operator'\n                }, {\n                    value: 4,\n                    text: 'Support'\n                }, {\n                    value: 5,\n                    text: 'Admin'\n                }];\n                log(settings, this);\n            }\n        });\n\n    }\n\n    var initEditables = function() {\n\n        //set editable mode based on URL parameter\n        if (App.getURLParameter('mode') == 'inline') {\n            $.fn.editable.defaults.mode = 'inline';\n            $('#inline').attr(\"checked\", true);\n        } else {\n            $('#inline').attr(\"checked\", false);\n        }\n\n        //global settings \n        $.fn.editable.defaults.inputclass = 'form-control';\n        $.fn.editable.defaults.url = '/post';\n\n        //editables element samples \n        $('#username').editable({\n            url: '/post',\n            type: 'text',\n            pk: 1,\n            name: 'username',\n            title: 'Enter username'\n        });\n\n        $('#firstname').editable({\n            validate: function(value) {\n                if ($.trim(value) == '') return 'This field is required';\n            }\n        });\n\n        $('#sex').editable({\n            prepend: \"not selected\",\n            inputclass: 'form-control',\n            source: [{\n                value: 1,\n                text: 'Male'\n            }, {\n                value: 2,\n                text: 'Female'\n            }],\n            display: function(value, sourceData) {\n                var colors = {\n                        \"\": \"gray\",\n                        1: \"green\",\n                        2: \"blue\"\n                    },\n                    elem = $.grep(sourceData, function(o) {\n                        return o.value == value;\n                    });\n\n                if (elem.length) {\n                    $(this).text(elem[0].text).css(\"color\", colors[value]);\n                } else {\n                    $(this).empty();\n                }\n            }\n        });\n\n        $('#status').editable();\n\n        $('#group').editable({\n            showbuttons: false\n        });\n\n        $('#vacation').editable({\n            rtl: App.isRTL()\n        });\n\n        $('#dob').editable({\n            inputclass: 'form-control',\n        });\n\n        $('#event').editable({\n            placement: (App.isRTL() ? 'left' : 'right'),\n            combodate: {\n                firstItem: 'name'\n            }\n        });\n\n        $('#meeting_start').editable({\n            format: 'yyyy-mm-dd hh:ii',\n            viewformat: 'dd/mm/yyyy hh:ii',\n            validate: function(v) {\n                if (v && v.getDate() == 10) return 'Day cant be 10!';\n            },\n            datetimepicker: {\n                rtl: App.isRTL(),\n                todayBtn: 'linked',\n                weekStart: 1\n            }\n        });\n\n        $('#comments').editable({\n            showbuttons: 'bottom'\n        });\n\n        $('#note').editable({\n            showbuttons: (App.isRTL() ? 'left' : 'right')\n        });\n\n        $('#pencil').click(function(e) {\n            e.stopPropagation();\n            e.preventDefault();\n            $('#note').editable('toggle');\n        });\n\n        $('#state').editable({\n            source: [\"Alabama\", \"Alaska\", \"Arizona\", \"Arkansas\", \"California\", \"Colorado\", \"Connecticut\", \"Delaware\", \"Florida\", \"Georgia\", \"Hawaii\", \"Idaho\", \"Illinois\", \"Indiana\", \"Iowa\", \"Kansas\", \"Kentucky\", \"Louisiana\", \"Maine\", \"Maryland\", \"Massachusetts\", \"Michigan\", \"Minnesota\", \"Mississippi\", \"Missouri\", \"Montana\", \"Nebraska\", \"Nevada\", \"New Hampshire\", \"New Jersey\", \"New Mexico\", \"New York\", \"North Dakota\", \"North Carolina\", \"Ohio\", \"Oklahoma\", \"Oregon\", \"Pennsylvania\", \"Rhode Island\", \"South Carolina\", \"South Dakota\", \"Tennessee\", \"Texas\", \"Utah\", \"Vermont\", \"Virginia\", \"Washington\", \"West Virginia\", \"Wisconsin\", \"Wyoming\"]\n        });\n\n        $('#fruits').editable({\n            pk: 1,\n            limit: 3,\n            source: [{\n                value: 1,\n                text: 'banana'\n            }, {\n                value: 2,\n                text: 'peach'\n            }, {\n                value: 3,\n                text: 'apple'\n            }, {\n                value: 4,\n                text: 'watermelon'\n            }, {\n                value: 5,\n                text: 'orange'\n            }]\n        });\n\n        $('#fruits').on('shown', function(e, reason) {\n            \n        });\n\n        $('#tags').editable({\n            inputclass: 'form-control input-medium',\n            select2: {\n                data: ['html', 'javascript', 'css', 'ajax'],\n                tags: true,\n                tokenSeparators: [','], \n                multiple: true\n            }\n        });\n\n        var countries = [];\n        $.each({\n            \"BD\": \"Bangladesh\",\n            \"BE\": \"Belgium\",\n            \"BF\": \"Burkina Faso\",\n            \"BG\": \"Bulgaria\",\n            \"BA\": \"Bosnia and Herzegovina\",\n            \"BB\": \"Barbados\",\n            \"WF\": \"Wallis and Futuna\",\n            \"BL\": \"Saint Bartelemey\",\n            \"BM\": \"Bermuda\",\n            \"BN\": \"Brunei Darussalam\",\n            \"BO\": \"Bolivia\",\n            \"BH\": \"Bahrain\",\n            \"BI\": \"Burundi\",\n            \"BJ\": \"Benin\",\n            \"BT\": \"Bhutan\",\n            \"JM\": \"Jamaica\",\n            \"BV\": \"Bouvet Island\",\n            \"BW\": \"Botswana\",\n            \"WS\": \"Samoa\",\n            \"BR\": \"Brazil\",\n            \"BS\": \"Bahamas\",\n            \"JE\": \"Jersey\",\n            \"BY\": \"Belarus\",\n            \"O1\": \"Other Country\",\n            \"LV\": \"Latvia\",\n            \"RW\": \"Rwanda\",\n            \"RS\": \"Serbia\",\n            \"TL\": \"Timor-Leste\",\n            \"RE\": \"Reunion\",\n            \"LU\": \"Luxembourg\",\n            \"TJ\": \"Tajikistan\",\n            \"RO\": \"Romania\",\n            \"PG\": \"Papua New Guinea\",\n            \"GW\": \"Guinea-Bissau\",\n            \"GU\": \"Guam\",\n            \"GT\": \"Guatemala\",\n            \"GS\": \"South Georgia and the South Sandwich Islands\",\n            \"GR\": \"Greece\",\n            \"GQ\": \"Equatorial Guinea\",\n            \"GP\": \"Guadeloupe\",\n            \"JP\": \"Japan\",\n            \"GY\": \"Guyana\",\n            \"GG\": \"Guernsey\",\n            \"GF\": \"French Guiana\",\n            \"GE\": \"Georgia\",\n            \"GD\": \"Grenada\",\n            \"GB\": \"United Kingdom\",\n            \"GA\": \"Gabon\",\n            \"SV\": \"El Salvador\",\n            \"GN\": \"Guinea\",\n            \"GM\": \"Gambia\",\n            \"GL\": \"Greenland\",\n            \"GI\": \"Gibraltar\",\n            \"GH\": \"Ghana\",\n            \"OM\": \"Oman\",\n            \"TN\": \"Tunisia\",\n            \"JO\": \"Jordan\",\n            \"HR\": \"Croatia\",\n            \"HT\": \"Haiti\",\n            \"HU\": \"Hungary\",\n            \"HK\": \"Hong Kong\",\n            \"HN\": \"Honduras\",\n            \"HM\": \"Heard Island and McDonald Islands\",\n            \"VE\": \"Venezuela\",\n            \"PR\": \"Puerto Rico\",\n            \"PS\": \"Palestinian Territory\",\n            \"PW\": \"Palau\",\n            \"PT\": \"Portugal\",\n            \"SJ\": \"Svalbard and Jan Mayen\",\n            \"PY\": \"Paraguay\",\n            \"IQ\": \"Iraq\",\n            \"PA\": \"Panama\",\n            \"PF\": \"French Polynesia\",\n            \"BZ\": \"Belize\",\n            \"PE\": \"Peru\",\n            \"PK\": \"Pakistan\",\n            \"PH\": \"Philippines\",\n            \"PN\": \"Pitcairn\",\n            \"TM\": \"Turkmenistan\",\n            \"PL\": \"Poland\",\n            \"PM\": \"Saint Pierre and Miquelon\",\n            \"ZM\": \"Zambia\",\n            \"EH\": \"Western Sahara\",\n            \"RU\": \"Russian Federation\",\n            \"EE\": \"Estonia\",\n            \"EG\": \"Egypt\",\n            \"TK\": \"Tokelau\",\n            \"ZA\": \"South Africa\",\n            \"EC\": \"Ecuador\",\n            \"IT\": \"Italy\",\n            \"VN\": \"Vietnam\",\n            \"SB\": \"Solomon Islands\",\n            \"EU\": \"Europe\",\n            \"ET\": \"Ethiopia\",\n            \"SO\": \"Somalia\",\n            \"ZW\": \"Zimbabwe\",\n            \"SA\": \"Saudi Arabia\",\n            \"ES\": \"Spain\",\n            \"ER\": \"Eritrea\",\n            \"ME\": \"Montenegro\",\n            \"MD\": \"Moldova, Republic of\",\n            \"MG\": \"Madagascar\",\n            \"MF\": \"Saint Martin\",\n            \"MA\": \"Morocco\",\n            \"MC\": \"Monaco\",\n            \"UZ\": \"Uzbekistan\",\n            \"MM\": \"Myanmar\",\n            \"ML\": \"Mali\",\n            \"MO\": \"Macao\",\n            \"MN\": \"Mongolia\",\n            \"MH\": \"Marshall Islands\",\n            \"MK\": \"Macedonia\",\n            \"MU\": \"Mauritius\",\n            \"MT\": \"Malta\",\n            \"MW\": \"Malawi\",\n            \"MV\": \"Maldives\",\n            \"MQ\": \"Martinique\",\n            \"MP\": \"Northern Mariana Islands\",\n            \"MS\": \"Montserrat\",\n            \"MR\": \"Mauritania\",\n            \"IM\": \"Isle of Man\",\n            \"UG\": \"Uganda\",\n            \"TZ\": \"Tanzania, United Republic of\",\n            \"MY\": \"Malaysia\",\n            \"MX\": \"Mexico\",\n            \"IL\": \"Israel\",\n            \"FR\": \"France\",\n            \"IO\": \"British Indian Ocean Territory\",\n            \"FX\": \"France, Metropolitan\",\n            \"SH\": \"Saint Helena\",\n            \"FI\": \"Finland\",\n            \"FJ\": \"Fiji\",\n            \"FK\": \"Falkland Islands (Malvinas)\",\n            \"FM\": \"Micronesia, Federated States of\",\n            \"FO\": \"Faroe Islands\",\n            \"NI\": \"Nicaragua\",\n            \"NL\": \"Netherlands\",\n            \"NO\": \"Norway\",\n            \"NA\": \"Namibia\",\n            \"VU\": \"Vanuatu\",\n            \"NC\": \"New Caledonia\",\n            \"NE\": \"Niger\",\n            \"NF\": \"Norfolk Island\",\n            \"NG\": \"Nigeria\",\n            \"NZ\": \"New Zealand\",\n            \"NP\": \"Nepal\",\n            \"NR\": \"Nauru\",\n            \"NU\": \"Niue\",\n            \"CK\": \"Cook Islands\",\n            \"CI\": \"Cote d'Ivoire\",\n            \"CH\": \"Switzerland\",\n            \"CO\": \"Colombia\",\n            \"CN\": \"China\",\n            \"CM\": \"Cameroon\",\n            \"CL\": \"Chile\",\n            \"CC\": \"Cocos (Keeling) Islands\",\n            \"CA\": \"Canada\",\n            \"CG\": \"Congo\",\n            \"CF\": \"Central African Republic\",\n            \"CD\": \"Congo, The Democratic Republic of the\",\n            \"CZ\": \"Czech Republic\",\n            \"CY\": \"Cyprus\",\n            \"CX\": \"Christmas Island\",\n            \"CR\": \"Costa Rica\",\n            \"CV\": \"Cape Verde\",\n            \"CU\": \"Cuba\",\n            \"SZ\": \"Swaziland\",\n            \"SY\": \"Syrian Arab Republic\",\n            \"KG\": \"Kyrgyzstan\",\n            \"KE\": \"Kenya\",\n            \"SR\": \"Suriname\",\n            \"KI\": \"Kiribati\",\n            \"KH\": \"Cambodia\",\n            \"KN\": \"Saint Kitts and Nevis\",\n            \"KM\": \"Comoros\",\n            \"ST\": \"Sao Tome and Principe\",\n            \"SK\": \"Slovakia\",\n            \"KR\": \"Korea, Republic of\",\n            \"SI\": \"Slovenia\",\n            \"KP\": \"Korea, Democratic People's Republic of\",\n            \"KW\": \"Kuwait\",\n            \"SN\": \"Senegal\",\n            \"SM\": \"San Marino\",\n            \"SL\": \"Sierra Leone\",\n            \"SC\": \"Seychelles\",\n            \"KZ\": \"Kazakhstan\",\n            \"KY\": \"Cayman Islands\",\n            \"SG\": \"Singapore\",\n            \"SE\": \"Sweden\",\n            \"SD\": \"Sudan\",\n            \"DO\": \"Dominican Republic\",\n            \"DM\": \"Dominica\",\n            \"DJ\": \"Djibouti\",\n            \"DK\": \"Denmark\",\n            \"VG\": \"Virgin Islands, British\",\n            \"DE\": \"Germany\",\n            \"YE\": \"Yemen\",\n            \"DZ\": \"Algeria\",\n            \"US\": \"United States\",\n            \"UY\": \"Uruguay\",\n            \"YT\": \"Mayotte\",\n            \"UM\": \"United States Minor Outlying Islands\",\n            \"LB\": \"Lebanon\",\n            \"LC\": \"Saint Lucia\",\n            \"LA\": \"Lao People's Democratic Republic\",\n            \"TV\": \"Tuvalu\",\n            \"TW\": \"Taiwan\",\n            \"TT\": \"Trinidad and Tobago\",\n            \"TR\": \"Turkey\",\n            \"LK\": \"Sri Lanka\",\n            \"LI\": \"Liechtenstein\",\n            \"A1\": \"Anonymous Proxy\",\n            \"TO\": \"Tonga\",\n            \"LT\": \"Lithuania\",\n            \"A2\": \"Satellite Provider\",\n            \"LR\": \"Liberia\",\n            \"LS\": \"Lesotho\",\n            \"TH\": \"Thailand\",\n            \"TF\": \"French Southern Territories\",\n            \"TG\": \"Togo\",\n            \"TD\": \"Chad\",\n            \"TC\": \"Turks and Caicos Islands\",\n            \"LY\": \"Libyan Arab Jamahiriya\",\n            \"VA\": \"Holy See (Vatican City State)\",\n            \"VC\": \"Saint Vincent and the Grenadines\",\n            \"AE\": \"United Arab Emirates\",\n            \"AD\": \"Andorra\",\n            \"AG\": \"Antigua and Barbuda\",\n            \"AF\": \"Afghanistan\",\n            \"AI\": \"Anguilla\",\n            \"VI\": \"Virgin Islands, U.S.\",\n            \"IS\": \"Iceland\",\n            \"IR\": \"Iran, Islamic Republic of\",\n            \"AM\": \"Armenia\",\n            \"AL\": \"Albania\",\n            \"AO\": \"Angola\",\n            \"AN\": \"Netherlands Antilles\",\n            \"AQ\": \"Antarctica\",\n            \"AP\": \"Asia/Pacific Region\",\n            \"AS\": \"American Samoa\",\n            \"AR\": \"Argentina\",\n            \"AU\": \"Australia\",\n            \"AT\": \"Austria\",\n            \"AW\": \"Aruba\",\n            \"IN\": \"India\",\n            \"AX\": \"Aland Islands\",\n            \"AZ\": \"Azerbaijan\",\n            \"IE\": \"Ireland\",\n            \"ID\": \"Indonesia\",\n            \"UA\": \"Ukraine\",\n            \"QA\": \"Qatar\",\n            \"MZ\": \"Mozambique\"\n        }, function(k, v) {\n            countries.push({\n                id: k,\n                text: v\n            });\n        });\n\n        $('#country').editable({\n            inputclass: 'form-control input-medium',\n            source: countries\n        });\n\n        $('#address').editable({\n            url: '/post',\n            value: {\n                city: \"San Francisco\",\n                street: \"Valencia\",\n                building: \"#24\"\n            },\n            validate: function(value) {\n                if (value.city == '') return 'city is required!';\n            },\n            display: function(value) {\n                if (!value) {\n                    $(this).empty();\n                    return;\n                }\n                var html = '<b>' + $('<div>').text(value.city).html() + '</b>, ' + $('<div>').text(value.street).html() + ' st., bld. ' + $('<div>').text(value.building).html();\n                $(this).html(html);\n            }\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n\n            // inii ajax simulation\n            initAjaxMock();\n\n            // init editable elements\n            initEditables();\n\n            // init editable toggler\n            $('#enable').click(function() {\n                $('#user .editable').editable('toggleDisabled');\n            });\n\n            // init \n            $('#inline').on('change', function(e) {\n                if ($(this).is(':checked')) {\n                    window.location.href = 'form_editable.html?mode=inline';\n                } else {\n                    window.location.href = 'form_editable.html';\n                }\n            });\n\n            // handle editable elements on hidden event fired\n            $('#user .editable').on('hidden', function(e, reason) {\n                if (reason === 'save' || reason === 'nochange') {\n                    var $next = $(this).closest('tr').next().find('.editable');\n                    if ($('#autoopen').is(':checked')) {\n                        setTimeout(function() {\n                            $next.editable('show');\n                        }, 300);\n                    } else {\n                        $next.focus();\n                    }\n                }\n            });\n\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormEditable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-fileupload.js",
    "content": "var FormFileUpload = function () {\n    return {\n        //main function to initiate the module\n        init: function () {\n\n             // Initialize the jQuery File Upload widget:\n            $('#fileupload').fileupload({\n                disableImageResize: false,\n                autoUpload: false,\n                disableImageResize: /Android(?!.*Chrome)|Opera/.test(window.navigator.userAgent),\n                maxFileSize: 5000000,\n                acceptFileTypes: /(\\.|\\/)(gif|jpe?g|png)$/i,\n                // Uncomment the following to send cross-domain cookies:\n                //xhrFields: {withCredentials: true},                \n            });\n\n            // Enable iframe cross-domain access via redirect option:\n            $('#fileupload').fileupload(\n                'option',\n                'redirect',\n                window.location.href.replace(\n                    /\\/[^\\/]*$/,\n                    '/cors/result.html?%s'\n                )\n            );\n\n            // Upload server status check for browsers with CORS support:\n            if ($.support.cors) {\n                $.ajax({\n                    type: 'HEAD'\n                }).fail(function () {\n                    $('<div class=\"alert alert-danger\"/>')\n                        .text('Upload server currently unavailable - ' +\n                                new Date())\n                        .appendTo('#fileupload');\n                });\n            }\n\n            // Load & display existing files:\n            $('#fileupload').addClass('fileupload-processing');\n            $.ajax({\n                // Uncomment the following to send cross-domain cookies:\n                //xhrFields: {withCredentials: true},\n                url: $('#fileupload').attr(\"action\"),\n                dataType: 'json',\n                context: $('#fileupload')[0]\n            }).always(function () {\n                $(this).removeClass('fileupload-processing');\n            }).done(function (result) {\n                $(this).fileupload('option', 'done')\n                .call(this, $.Event('done'), {result: result});\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormFileUpload.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-icheck.js",
    "content": "var FormiCheck = function () {\n    return {\n        //main function to initiate the module\n        init: function () {  \n\n            $('.icheck-colors li').click(function() {\n              var self = $(this);\n\n              if (!self.hasClass('active')) {\n                  self.siblings().removeClass('active');\n\n                var skin = self.closest('.skin'),\n                  color = self.attr('class') ? '-' + self.attr('class') : '',\n                  colorTmp = skin.data('color') ? '-' + skin.data('color') : '-grey',\n                  colorTmp = (colorTmp === '-black' ? '' : colorTmp);\n\n                  checkbox_default = 'icheckbox_minimal',\n                  radio_default = 'iradio_minimal',\n                  checkbox = 'icheckbox_minimal' + colorTmp,\n                  radio = 'iradio_minimal' + colorTmp;\n\n                if (skin.hasClass('skin-square')) {\n                  checkbox_default = 'icheckbox_square';\n                  radio_default = 'iradio_square';\n                  checkbox = 'icheckbox_square' + colorTmp;\n                  radio = 'iradio_square'  + colorTmp;\n                };\n\n                if (skin.hasClass('skin-flat')) {\n                  checkbox_default = 'icheckbox_flat';\n                  radio_default = 'iradio_flat';\n                  checkbox = 'icheckbox_flat' + colorTmp;\n                  radio = 'iradio_flat'  + colorTmp;\n                };\n\n                if (skin.hasClass('skin-line')) {\n                  checkbox_default = 'icheckbox_line';\n                  radio_default = 'iradio_line';\n                  checkbox = 'icheckbox_line' + colorTmp;\n                  radio = 'iradio_line'  + colorTmp;\n                };\n\n                skin.find('.icheck').each(function() {\n                  var element = $(this).hasClass('state') ? $(this) : $(this).parent();\n                  var element_class = element.attr('class').replace(checkbox, checkbox_default + color).replace(radio, radio_default + color);\n                  element.attr('class', element_class);\n                });\n\n                skin.data('color', self.attr('class') ? self.attr('class') : 'black');\n                self.addClass('active');\n              };\n            });\n        }\n    };\n}();\n\njQuery(document).ready(function() {\n    FormiCheck.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-image-crop.js",
    "content": "var FormImageCrop = function () {\n\n    var demo1 = function() {\n        $('#demo1').Jcrop();\n    }\n\n    var demo2 = function() {\n        var jcrop_api;\n\n        $('#demo2').Jcrop({\n          onChange:   showCoords,\n          onSelect:   showCoords,\n          onRelease:  clearCoords\n        },function(){\n          jcrop_api = this;\n        });\n\n        $('#coords').on('change','input',function(e){\n          var x1 = $('#x1').val(),\n              x2 = $('#x2').val(),\n              y1 = $('#y1').val(),\n              y2 = $('#y2').val();\n          jcrop_api.setSelect([x1,y1,x2,y2]);\n        });\n\n        // Simple event handler, called from onChange and onSelect\n        // event handlers, as per the Jcrop invocation above\n        function showCoords(c)\n        {\n            $('#x1').val(c.x);\n            $('#y1').val(c.y);\n            $('#x2').val(c.x2);\n            $('#y2').val(c.y2);\n            $('#w').val(c.w);\n            $('#h').val(c.h);\n        };\n\n        function clearCoords()\n        {\n            $('#coords input').val('');\n        };\n    }\n\n    var demo3 = function() {\n        // Create variables (in this scope) to hold the API and image size\n        var jcrop_api,\n            boundx,\n            boundy,\n            // Grab some information about the preview pane\n            $preview = $('#preview-pane'),\n            $pcnt = $('#preview-pane .preview-container'),\n            $pimg = $('#preview-pane .preview-container img'),\n\n            xsize = $pcnt.width(),\n            ysize = $pcnt.height();\n        \n            console.log('init',[xsize,ysize]);\n\n        $('#demo3').Jcrop({\n          onChange: updatePreview,\n          onSelect: updatePreview,\n          aspectRatio: xsize / ysize\n        },function(){\n          // Use the API to get the real image size\n          var bounds = this.getBounds();\n          boundx = bounds[0];\n          boundy = bounds[1];\n          // Store the API in the jcrop_api variable\n          jcrop_api = this;\n          // Move the preview into the jcrop container for css positioning\n          $preview.appendTo(jcrop_api.ui.holder);\n        });\n\n        function updatePreview(c)\n        {\n          if (parseInt(c.w) > 0)\n          {\n            var rx = xsize / c.w;\n            var ry = ysize / c.h;\n\n            $pimg.css({\n              width: Math.round(rx * boundx) + 'px',\n              height: Math.round(ry * boundy) + 'px',\n              marginLeft: '-' + Math.round(rx * c.x) + 'px',\n              marginTop: '-' + Math.round(ry * c.y) + 'px'\n            });\n          }\n        };\n    }\n\n    var demo4 = function() {\n        var jcrop_api;\n\n        $('#demo4').Jcrop({\n          bgFade:     true,\n          bgOpacity: .2,\n          setSelect: [ 60, 70, 540, 330 ]\n        },function(){\n          jcrop_api = this;\n        });\n\n        $('#fadetog').change(function(){\n          jcrop_api.setOptions({\n            bgFade: this.checked\n          });\n        }).attr('checked', true);\n\n        $('#shadetog').change(function(){\n          if (this.checked) $('#shadetxt').slideDown();\n            else $('#shadetxt').slideUp();\n          jcrop_api.setOptions({\n            shade: this.checked\n          });\n        }).attr('checked', false);\n\n        // Define page sections\n        var sections = {\n          bgc_buttons: 'Change bgColor',\n          bgo_buttons: 'Change bgOpacity',\n          anim_buttons: 'Animate Selection'\n        };\n        // Define animation buttons\n        var ac = {\n          anim1: [217,122,382,284],\n          anim2: [20,20,580,380],\n          anim3: [24,24,176,376],\n          anim4: [347,165,550,355],\n          anim5: [136,55,472,183]\n        };\n        // Define bgOpacity buttons\n        var bgo = {\n          Low: .2,\n          Mid: .5,\n          High: .8,\n          Full: 1\n        };\n        // Define bgColor buttons\n        var bgc = {\n          R: '#900',\n          B: '#4BB6F0',\n          Y: '#F0B207',\n          G: '#46B81C',\n          W: 'white',\n          K: 'black'\n        };\n        // Create fieldset targets for buttons\n        for(i in sections)\n          insertSection(i,sections[i]);\n\n        function create_btn(c) {\n          var $o = $('<button />').addClass('btn small');\n          if (c) $o.append(c);\n          return $o;\n        }\n\n        var a_count = 1;\n        // Create animation buttons\n        for(i in ac) {\n          $('#anim_buttons .btn-group')\n            .append(\n              create_btn(a_count++).click(animHandler(ac[i])),\n              ' '\n            );\n        }\n\n        $('#anim_buttons .btn-group').append(\n          create_btn('Bye!').click(function(e){\n            $(e.target).addClass('active');\n            jcrop_api.animateTo(\n              [300,200,300,200],\n              function(){\n                this.release();\n                $(e.target).closest('.btn-group').find('.active').removeClass('active');\n              }\n            );\n            return false;\n          })\n        );\n\n        // Create bgOpacity buttons\n        for(i in bgo) {\n          $('#bgo_buttons .btn-group').append(\n            create_btn(i).click(setoptHandler('bgOpacity',bgo[i])),\n            ' '\n          );\n        }\n        // Create bgColor buttons\n        for(i in bgc) {\n          $('#bgc_buttons .btn-group').append(\n            create_btn(i).css({\n              background: bgc[i],\n              color: ((i == 'K') || (i == 'R'))?'white':'black'\n            }).click(setoptHandler('bgColor',bgc[i])), ' '\n          );\n        }\n        // Function to insert named sections into interface\n        function insertSection(k,v) {\n          $('#interface').prepend(\n            $('<fieldset></fieldset>').attr('id',k).append(\n              $('<h4></h4>').append(v),\n              '<div class=\"btn-toolbar\"><div class=\"btn-group\"></div></div>'\n            )\n          );\n        };\n        // Handler for option-setting buttons\n        function setoptHandler(k,v) {\n          return function(e) {\n            $(e.target).closest('.btn-group').find('.active').removeClass('active');\n            $(e.target).addClass('active');\n            var opt = { };\n            opt[k] = v;\n            jcrop_api.setOptions(opt);\n            return false;\n          };\n        };\n        // Handler for animation buttons\n        function animHandler(v) {\n          return function(e) {\n            $(e.target).addClass('active');\n            jcrop_api.animateTo(v,function(){\n              $(e.target).closest('.btn-group').find('.active').removeClass('active');\n            });\n            return false;\n          };\n        };\n\n        $('#bgo_buttons .btn:first,#bgc_buttons .btn:last').addClass('active');\n        $('#interface').show();\n    }\n\n    var demo5 = function() {\n        // The variable jcrop_api will hold a reference to the\n        // Jcrop API once Jcrop is instantiated.\n        var jcrop_api;\n\n        // In this example, since Jcrop may be attached or detached\n        // at the whim of the user, I've wrapped the call into a function\n        initJcrop();\n        \n        // The function is pretty simple\n        function initJcrop()//{{{\n        {\n          // Hide any interface elements that require Jcrop\n          // (This is for the local user interface portion.)\n          $('.requiresjcrop').hide();\n\n          // Invoke Jcrop in typical fashion\n          $('#demo5').Jcrop({\n            onRelease: releaseCheck\n          },function(){\n\n            jcrop_api = this;\n            jcrop_api.animateTo([100,100,400,300]);\n\n            // Setup and dipslay the interface for \"enabled\"\n            $('#can_click,#can_move,#can_size').attr('checked','checked');\n\n            $('#ar_lock,#size_lock,#bg_swap').attr('checked',false);\n            \n            $('.requiresjcrop').show();\n\n          });\n\n        };\n        //}}}\n\n        // Use the API to find cropping dimensions\n        // Then generate a random selection\n        // This function is used by setSelect and animateTo buttons\n        // Mainly for demonstration purposes\n        function getRandom() {\n          var dim = jcrop_api.getBounds();\n          return [\n            Math.round(Math.random() * dim[0]),\n            Math.round(Math.random() * dim[1]),\n            Math.round(Math.random() * dim[0]),\n            Math.round(Math.random() * dim[1])\n          ];\n        };\n\n        // This function is bound to the onRelease handler...\n        // In certain circumstances (such as if you set minSize\n        // and aspectRatio together), you can inadvertently lose\n        // the selection. This callback re-enables creating selections\n        // in such a case. Although the need to do this is based on a\n        // buggy behavior, it's recommended that you in some way trap\n        // the onRelease callback if you use allowSelect: false\n        function releaseCheck()\n        {\n          jcrop_api.setOptions({ allowSelect: true });\n          $('#can_click').attr('checked',false);\n        };\n\n        // Attach interface buttons\n        // This may appear to be a lot of code but it's simple stuff\n        $('#setSelect').click(function(e) {\n          // Sets a random selection\n          jcrop_api.setSelect(getRandom());\n        });\n        $('#animateTo').click(function(e) {\n          // Animates to a random selection\n          jcrop_api.animateTo(getRandom());\n        });\n        $('#release').click(function(e) {\n          // Release method clears the selection\n          jcrop_api.release();\n        });\n        $('#disable').click(function(e) {\n          // Disable Jcrop instance\n          jcrop_api.disable();\n          // Update the interface to reflect disabled state\n          $('#enable').show();\n          $('.requiresjcrop').hide();\n        });\n        $('#enable').click(function(e) {\n          // Re-enable Jcrop instance\n          jcrop_api.enable();\n          // Update the interface to reflect enabled state\n          $('#enable').hide();\n          $('.requiresjcrop').show();\n        });\n        $('#rehook').click(function(e) {\n          // This button is visible when Jcrop has been destroyed\n          // It performs the re-attachment and updates the UI\n          $('#rehook,#enable').hide();\n          initJcrop();\n          $('#unhook,.requiresjcrop').show();\n          return false;\n        });\n        $('#unhook').click(function(e) {\n          // Destroy Jcrop widget, restore original state\n          jcrop_api.destroy();\n          // Update the interface to reflect un-attached state\n          $('#unhook,#enable,.requiresjcrop').hide();\n          $('#rehook').show();\n          return false;\n        });\n\n        // Hook up the three image-swapping buttons\n        $('#img1').click(function(e) {\n          $(this).addClass('active').closest('.btn-group')\n            .find('button.active').not(this).removeClass('active');\n\n          jcrop_api.setImage('../../assets/global/plugins/jcrop/demos/demo_files/sago.jpg');\n          jcrop_api.setOptions({ bgOpacity: .6 });\n          return false;\n        });\n        $('#img2').click(function(e) {\n          $(this).addClass('active').closest('.btn-group')\n            .find('button.active').not(this).removeClass('active');\n\n          jcrop_api.setImage('../../assets/global/plugins/jcrop/demos/demo_files/pool.jpg');\n          jcrop_api.setOptions({ bgOpacity: .6 });\n          return false;\n        });\n        $('#img3').click(function(e) {\n          $(this).addClass('active').closest('.btn-group')\n            .find('button.active').not(this).removeClass('active');\n\n          jcrop_api.setImage('../../assets/global/plugins/jcrop/demos/demo_files/sago.jpg',function(){\n            this.setOptions({\n              bgOpacity: 1,\n              outerImage: '../../assets/global/plugins/jcrop/demos/demo_files/sagomod.jpg'\n            });\n            this.animateTo(getRandom());\n          });\n          return false;\n        });\n\n        // The checkboxes simply set options based on it's checked value\n        // Options are changed by passing a new options object\n\n        // Also, to prevent strange behavior, they are initially checked\n        // This matches the default initial state of Jcrop\n\n        $('#can_click').change(function(e) {\n          jcrop_api.setOptions({ allowSelect: !!this.checked });\n          jcrop_api.focus();\n        });\n        $('#can_move').change(function(e) {\n          jcrop_api.setOptions({ allowMove: !!this.checked });\n          jcrop_api.focus();\n        });\n        $('#can_size').change(function(e) {\n          jcrop_api.setOptions({ allowResize: !!this.checked });\n          jcrop_api.focus();\n        });\n        $('#ar_lock').change(function(e) {\n          jcrop_api.setOptions(this.checked?\n            { aspectRatio: 4/3 }: { aspectRatio: 0 });\n          jcrop_api.focus();\n        });\n        $('#size_lock').change(function(e) {\n          jcrop_api.setOptions(this.checked? {\n            minSize: [ 80, 80 ],\n            maxSize: [ 350, 350 ]\n          }: {\n            minSize: [ 0, 0 ],\n            maxSize: [ 0, 0 ]\n          });\n          jcrop_api.focus();\n        });\n\n    }\n\n    var demo6 = function() {\n        var api;\n\n        $('#demo6').Jcrop({\n          // start off with jcrop-light class\n          bgOpacity: 0.5,\n          bgColor: 'white',\n          addClass: 'jcrop-light'\n        },function(){\n          api = this;\n          api.setSelect([130,65,130+350,65+285]);\n          api.setOptions({ bgFade: true });\n          api.ui.selection.addClass('jcrop-selection');\n        });\n\n        $('#buttonbar').on('click','button',function(e){\n          var $t = $(this), $g = $t.closest('.btn-group');\n          $g.find('button.active').removeClass('active');\n          $t.addClass('active');\n          $g.find('[data-setclass]').each(function(){\n            var $th = $(this), c = $th.data('setclass'),\n              a = $th.hasClass('active');\n            if (a) {\n              api.ui.holder.addClass(c);\n              switch(c){\n                case 'jcrop-light':\n                  api.setOptions({ bgColor: 'white', bgOpacity: 0.5 });\n                  break;\n\n                case 'jcrop-dark':\n                  api.setOptions({ bgColor: 'black', bgOpacity: 0.4 });\n                  break;\n\n                case 'jcrop-normal':\n                  api.setOptions({\n                    bgColor: $.Jcrop.defaults.bgColor,\n                    bgOpacity: $.Jcrop.defaults.bgOpacity\n                  });\n                  break;\n              }\n            }\n            else api.ui.holder.removeClass(c);\n          });\n        });\n    }\n\n    var demo7 = function() {\n        // I did JSON.stringify(jcrop_api.tellSelect()) on a crop I liked:\n        var c = {\"x\":13,\"y\":7,\"x2\":487,\"y2\":107,\"w\":474,\"h\":100};\n\n        $('#demo7').Jcrop({\n          bgFade: true,\n          setSelect: [c.x,c.y,c.x2,c.y2]\n        });\n    }\n\n    var demo8 = function() {\n        $('#demo8').Jcrop({\n          aspectRatio: 1,\n          onSelect: updateCoords\n        });\n\n        function updateCoords(c)\n          {\n            $('#crop_x').val(c.x);\n            $('#crop_y').val(c.y);\n            $('#crop_w').val(c.w);\n            $('#crop_h').val(c.h);\n          };\n\n          $('#demo8_form').submit(function(){\n            if (parseInt($('#crop_w').val())) return true;\n            alert('Please select a crop region then press submit.');\n            return false;\n            });\n\n    }\n\n    var handleResponsive = function() {\n      if ($(window).width() <= 1024 && $(window).width() >= 678) {\n        $('.responsive-1024').each(function(){\n          $(this).attr(\"data-class\", $(this).attr(\"class\"));\n          $(this).attr(\"class\", 'responsive-1024 col-md-12');\n        }); \n      } else {\n        $('.responsive-1024').each(function(){\n          if ($(this).attr(\"data-class\")) {\n            $(this).attr(\"class\", $(this).attr(\"data-class\"));  \n            $(this).removeAttr(\"data-class\");\n          }\n        });\n      }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            \n            if (!jQuery().Jcrop) {;\n                return;\n            }\n\n            App.addResizeHandler(handleResponsive);\n            handleResponsive();\n\n            demo1();\n            demo2();\n            demo3();\n            demo4();\n            demo5();\n            demo6();\n            demo7();\n            demo8();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormImageCrop.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-input-mask.js",
    "content": "var FormInputMask = function () {\n    \n    var handleInputMasks = function () {\n        \n\n        $(\"#mask_date\").inputmask(\"d/m/y\", {\n            autoUnmask: true\n        }); //direct mask        \n        $(\"#mask_date1\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"*\"\n        }); //change the placeholder\n        $(\"#mask_date2\").inputmask(\"d/m/y\", {\n            \"placeholder\": \"dd/mm/yyyy\"\n        }); //multi-char placeholder\n        $(\"#mask_phone\").inputmask(\"mask\", {\n            \"mask\": \"(999) 999-9999\"\n        }); //specifying fn & options\n        $(\"#mask_tin\").inputmask({\n            \"mask\": \"99-9999999\",\n            placeholder: \"\" // remove underscores from the input mask\n        }); //specifying options only\n        $(\"#mask_number\").inputmask({\n            \"mask\": \"9\",\n            \"repeat\": 10,\n            \"greedy\": false\n        }); // ~ mask \"9\" or mask \"99\" or ... mask \"9999999999\"\n        $(\"#mask_decimal\").inputmask('decimal', {\n            rightAlignNumerics: false\n        }); //disables the right alignment of the decimal input\n        $(\"#mask_currency\").inputmask('€ 999.999.999,99', {\n            numericInput: true\n        }); //123456  =>  € ___.__1.234,56\n\n        $(\"#mask_currency2\").inputmask('€ 999,999,999.99', {\n            numericInput: true,\n            rightAlignNumerics: false,\n            greedy: false\n        }); //123456  =>  € ___.__1.234,56\n        $(\"#mask_ssn\").inputmask(\"999-99-9999\", {\n            placeholder: \" \",\n            clearMaskOnLostFocus: true\n        }); //default\n    }\n\n    var handleIPAddressInput = function () {\n        $('#input_ipv4').ipAddress();\n        $('#input_ipv6').ipAddress({\n            v: 6\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleInputMasks();\n            handleIPAddressInput();\n        }\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        FormInputMask.init(); // init metronic core componets\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-repeater.js",
    "content": "var FormRepeater = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        \t$('.mt-repeater').each(function(){\n        \t\t$(this).repeater({\n        \t\t\tshow: function () {\n\t                \t$(this).slideDown();\n                        $('.date-picker').datepicker({\n                            rtl: App.isRTL(),\n                            orientation: \"left\",\n                            autoclose: true\n                        });\n\t\t            },\n\n\t\t            hide: function (deleteElement) {\n\t\t                if(confirm('Are you sure you want to delete this element?')) {\n\t\t                    $(this).slideUp(deleteElement);\n\t\t                }\n\t\t            },\n\n\t\t            ready: function (setIndexes) {\n\n\t\t            }\n\n        \t\t});\n        \t});\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormRepeater.init();\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-samples.js",
    "content": "var FormSamples = function () {\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormSamples.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-validation-md.js",
    "content": "var FormValidationMd = function() {\n\n    var handleValidation1 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n        var form1 = $('#form_sample_1');\n        var error1 = $('.alert-danger', form1);\n        var success1 = $('.alert-success', form1);\n\n        form1.validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block help-block-error', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            messages: {\n                payment: {\n                    maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                },\n                'checkboxes1[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                },\n                'checkboxes2[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                }\n            },\n            rules: {\n                name: {\n                    minlength: 2,\n                    required: true\n                },\n                email: {\n                    required: true,\n                    email: true\n                },\n                email2: {\n                    required: true,\n                    email: true\n                },\n                url: {\n                    required: true,\n                    url: true\n                },\n                url2: {\n                    required: true,\n                    url: true\n                },\n                number: {\n                    required: true,\n                    number: true\n                },\n                number2: {\n                    required: true,\n                    number: true\n                },\n                digits: {\n                    required: true,\n                    digits: true\n                },\n                creditcard: {\n                    required: true,\n                    creditcard: true\n                },\n                delivery: {\n                    required: true\n                },\n                payment: {\n                    required: true,\n                    minlength: 2,\n                    maxlength: 4\n                },\n                memo: {\n                    required: true,\n                    minlength: 10,\n                    maxlength: 40\n                },\n                'checkboxes1[]': {\n                    required: true,\n                    minlength: 2,\n                },\n                'checkboxes2[]': {\n                    required: true,\n                    minlength: 3,\n                },\n                radio1: {\n                    required: true\n                },\n                radio2: {\n                    required: true\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit              \n                success1.hide();\n                error1.show();\n                App.scrollTo(error1, -200);\n            },\n\n            errorPlacement: function(error, element) {\n                if (element.is(':checkbox')) {\n                    error.insertAfter(element.closest(\".md-checkbox-list, .md-checkbox-inline, .checkbox-list, .checkbox-inline\"));\n                } else if (element.is(':radio')) {\n                    error.insertAfter(element.closest(\".md-radio-list, .md-radio-inline, .radio-list,.radio-inline\"));\n                } else {\n                    error.insertAfter(element); // for other inputs, just perform default behavior\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element)\n                    .closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            unhighlight: function(element) { // revert the change done by hightlight\n                $(element)\n                    .closest('.form-group').removeClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label\n                    .closest('.form-group').removeClass('has-error'); // set success class to the control group\n            },\n\n            submitHandler: function(form) {\n                success1.show();\n                error1.hide();\n            }\n        });\n    }\n\n    var handleValidation2 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n        var form1 = $('#form_sample_2');\n        var error1 = $('.alert-danger', form1);\n        var success1 = $('.alert-success', form1);\n\n        form1.validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block help-block-error', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            messages: {\n                payment: {\n                    maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                },\n                'checkboxes1[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                },\n                'checkboxes2[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                }\n            },\n            rules: {\n                name: {\n                    minlength: 2,\n                    required: true\n                },\n                email: {\n                    required: true,\n                    email: true\n                },\n                email2: {\n                    required: true,\n                    email: true\n                },\n                url: {\n                    required: true,\n                    url: true\n                },\n                url2: {\n                    required: true,\n                    url: true\n                },\n                number: {\n                    required: true,\n                    number: true\n                },\n                number2: {\n                    required: true,\n                    number: true\n                },\n                digits: {\n                    required: true,\n                    digits: true\n                },\n                creditcard: {\n                    required: true,\n                    creditcard: true\n                },\n                delivery: {\n                    required: true\n                },\n                payment: {\n                    required: true,\n                    minlength: 2,\n                    maxlength: 4\n                },\n                memo: {\n                    required: true,\n                    minlength: 10,\n                    maxlength: 40\n                },\n                'checkboxes1[]': {\n                    required: true,\n                    minlength: 2,\n                },\n                'checkboxes2[]': {\n                    required: true,\n                    minlength: 3,\n                },\n                radio1: {\n                    required: true\n                },\n                radio2: {\n                    required: true\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit              \n                success1.hide();\n                error1.show();\n                App.scrollTo(error1, -200);\n            },\n\n            errorPlacement: function(error, element) {\n                if (element.is(':checkbox')) {\n                    error.insertAfter(element.closest(\".md-checkbox-list, .md-checkbox-inline, .checkbox-list, .checkbox-inline\"));\n                } else if (element.is(':radio')) {\n                    error.insertAfter(element.closest(\".md-radio-list, .md-radio-inline, .radio-list,.radio-inline\"));\n                } else {\n                    error.insertAfter(element); // for other inputs, just perform default behavior\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element)\n                    .closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            unhighlight: function(element) { // revert the change done by hightlight\n                $(element)\n                    .closest('.form-group').removeClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label\n                    .closest('.form-group').removeClass('has-error'); // set success class to the control group\n            },\n\n            submitHandler: function(form) {\n                success1.show();\n                error1.hide();\n            }\n        });\n    }\n\n    var handleValidation3 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n        var form1 = $('#form_sample_3');\n        var error1 = $('.alert-danger', form1);\n        var success1 = $('.alert-success', form1);\n\n        form1.validate({\n            errorElement: 'span', //default input error message container\n            errorClass: 'help-block help-block-error', // default input error message class\n            focusInvalid: false, // do not focus the last invalid input\n            ignore: \"\", // validate all fields including form hidden input\n            messages: {\n                payment: {\n                    maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                },\n                'checkboxes1[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                },\n                'checkboxes2[]': {\n                    required: 'Please check some options',\n                    minlength: jQuery.validator.format(\"At least {0} items must be selected\"),\n                }\n            },\n            rules: {\n                name: {\n                    minlength: 2,\n                    required: true\n                },\n                email: {\n                    required: true,\n                    email: true\n                },\n                email2: {\n                    required: true,\n                    email: true\n                },\n                url: {\n                    required: true,\n                    url: true\n                },\n                url2: {\n                    required: true,\n                    url: true\n                },\n                number: {\n                    required: true,\n                    number: true\n                },\n                number2: {\n                    required: true,\n                    number: true\n                },\n                digits: {\n                    required: true,\n                    digits: true\n                },\n                creditcard: {\n                    required: true,\n                    creditcard: true\n                },\n                delivery: {\n                    required: true\n                },\n                payment: {\n                    required: true,\n                    minlength: 2,\n                    maxlength: 4\n                },\n                memo: {\n                    required: true,\n                    minlength: 10,\n                    maxlength: 40\n                }\n            },\n\n            invalidHandler: function(event, validator) { //display error alert on form submit              \n                success1.hide();\n                error1.show();\n                App.scrollTo(error1, -200);\n            },\n\n            errorPlacement: function(error, element) {\n                if (element.is(':checkbox')) {\n                    error.insertAfter(element.closest(\".md-checkbox-list, .md-checkbox-inline, .checkbox-list, .checkbox-inline\"));\n                } else if (element.is(':radio')) {\n                    error.insertAfter(element.closest(\".md-radio-list, .md-radio-inline, .radio-list,.radio-inline\"));\n                } else {\n                    error.insertAfter(element); // for other inputs, just perform default behavior\n                }\n            },\n\n            highlight: function(element) { // hightlight error inputs\n                $(element)\n                    .closest('.form-group').addClass('has-error'); // set error class to the control group\n            },\n\n            unhighlight: function(element) { // revert the change done by hightlight\n                $(element)\n                    .closest('.form-group').removeClass('has-error'); // set error class to the control group\n            },\n\n            success: function(label) {\n                label\n                    .closest('.form-group').removeClass('has-error'); // set success class to the control group\n            },\n\n            submitHandler: function(form) {\n                success1.show();\n                error1.hide();\n            }\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function() {\n            handleValidation1();\n            handleValidation2();\n            handleValidation3();\n        }\n    };\n}();\n\njQuery(document).ready(function() {\n    FormValidationMd.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-validation.js",
    "content": "var FormValidation = function () {\n\n    // basic validation\n    var handleValidation1 = function() {\n        // for more info visit the official plugin documentation: \n            // http://docs.jquery.com/Plugins/Validation\n\n            var form1 = $('#form_sample_1');\n            var error1 = $('.alert-danger', form1);\n            var success1 = $('.alert-success', form1);\n\n            form1.validate({\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                ignore: \"\",  // validate all fields including form hidden input\n                messages: {\n                    select_multi: {\n                        maxlength: jQuery.validator.format(\"Max {0} items allowed for selection\"),\n                        minlength: jQuery.validator.format(\"At least {0} items must be selected\")\n                    }\n                },\n                rules: {\n                    name: {\n                        minlength: 2,\n                        required: true\n                    },\n                    input_group: {\n                        email: true,\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    url: {\n                        required: true,\n                        url: true\n                    },\n                    number: {\n                        required: true,\n                        number: true\n                    },\n                    digits: {\n                        required: true,\n                        digits: true\n                    },\n                    creditcard: {\n                        required: true,\n                        creditcard: true\n                    },\n                    occupation: {\n                        minlength: 5,\n                    },\n                    select: {\n                        required: true\n                    },\n                    select_multi: {\n                        required: true,\n                        minlength: 1,\n                        maxlength: 3\n                    }\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit              \n                    success1.hide();\n                    error1.show();\n                    App.scrollTo(error1, -200);\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    var cont = $(element).parent('.input-group');\n                    if (cont) {\n                        cont.after(error);\n                    } else {\n                        element.after(error);\n                    }\n                },\n\n                highlight: function (element) { // hightlight error inputs\n\n                    $(element)\n                        .closest('.form-group').addClass('has-error'); // set error class to the control group\n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    $(element)\n                        .closest('.form-group').removeClass('has-error'); // set error class to the control group\n                },\n\n                success: function (label) {\n                    label\n                        .closest('.form-group').removeClass('has-error'); // set success class to the control group\n                },\n\n                submitHandler: function (form) {\n                    success1.show();\n                    error1.hide();\n                }\n            });\n\n\n    }\n\n    // validation using icons\n    var handleValidation2 = function() {\n        // for more info visit the official plugin documentation: \n            // http://docs.jquery.com/Plugins/Validation\n\n            var form2 = $('#form_sample_2');\n            var error2 = $('.alert-danger', form2);\n            var success2 = $('.alert-success', form2);\n\n            form2.validate({\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                ignore: \"\",  // validate all fields including form hidden input\n                rules: {\n                    name: {\n                        minlength: 2,\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    url: {\n                        required: true,\n                        url: true\n                    },\n                    number: {\n                        required: true,\n                        number: true\n                    },\n                    digits: {\n                        required: true,\n                        digits: true\n                    },\n                    creditcard: {\n                        required: true,\n                        creditcard: true\n                    },\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit              \n                    success2.hide();\n                    error2.show();\n                    App.scrollTo(error2, -200);\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    var icon = $(element).parent('.input-icon').children('i');\n                    icon.removeClass('fa-check').addClass(\"fa-warning\");  \n                    icon.attr(\"data-original-title\", error.text()).tooltip({'container': 'body'});\n                },\n\n                highlight: function (element) { // hightlight error inputs\n                    $(element)\n                        .closest('.form-group').removeClass(\"has-success\").addClass('has-error'); // set error class to the control group   \n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    \n                },\n\n                success: function (label, element) {\n                    var icon = $(element).parent('.input-icon').children('i');\n                    $(element).closest('.form-group').removeClass('has-error').addClass('has-success'); // set success class to the control group\n                    icon.removeClass(\"fa-warning\").addClass(\"fa-check\");\n                },\n\n                submitHandler: function (form) {\n                    success2.show();\n                    error2.hide();\n                    form[0].submit(); // submit the form\n                }\n            });\n\n\n    }\n\n    // advance validation\n    var handleValidation3 = function() {\n        // for more info visit the official plugin documentation: \n        // http://docs.jquery.com/Plugins/Validation\n\n            var form3 = $('#form_sample_3');\n            var error3 = $('.alert-danger', form3);\n            var success3 = $('.alert-success', form3);\n\n            //IMPORTANT: update CKEDITOR textarea with actual content before submit\n            form3.on('submit', function() {\n                for(var instanceName in CKEDITOR.instances) {\n                    CKEDITOR.instances[instanceName].updateElement();\n                }\n            })\n\n            form3.validate({\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                ignore: \"\", // validate all fields including form hidden input\n                rules: {\n                    name: {\n                        minlength: 2,\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },  \n                    options1: {\n                        required: true\n                    },\n                    options2: {\n                        required: true\n                    },\n                    select2tags: {\n                        required: true\n                    },\n                    datepicker: {\n                        required: true\n                    },\n                    occupation: {\n                        minlength: 5,\n                    },\n                    membership: {\n                        required: true\n                    },\n                    service: {\n                        required: true,\n                        minlength: 2\n                    },\n                    markdown: {\n                        required: true\n                    },\n                    editor1: {\n                        required: true\n                    },\n                    editor2: {\n                        required: true\n                    }\n                },\n\n                messages: { // custom messages for radio buttons and checkboxes\n                    membership: {\n                        required: \"Please select a Membership type\"\n                    },\n                    service: {\n                        required: \"Please select  at least 2 types of Service\",\n                        minlength: jQuery.validator.format(\"Please select  at least {0} types of Service\")\n                    }\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    if (element.parents('.mt-radio-list') || element.parents('.mt-checkbox-list')) {\n                        if (element.parents('.mt-radio-list')[0]) {\n                            error.appendTo(element.parents('.mt-radio-list')[0]);\n                        }\n                        if (element.parents('.mt-checkbox-list')[0]) {\n                            error.appendTo(element.parents('.mt-checkbox-list')[0]);\n                        }\n                    } else if (element.parents('.mt-radio-inline') || element.parents('.mt-checkbox-inline')) {\n                        if (element.parents('.mt-radio-inline')[0]) {\n                            error.appendTo(element.parents('.mt-radio-inline')[0]);\n                        }\n                        if (element.parents('.mt-checkbox-inline')[0]) {\n                            error.appendTo(element.parents('.mt-checkbox-inline')[0]);\n                        }\n                    } else if (element.parent(\".input-group\").size() > 0) {\n                        error.insertAfter(element.parent(\".input-group\"));\n                    } else if (element.attr(\"data-error-container\")) { \n                        error.appendTo(element.attr(\"data-error-container\"));\n                    } else {\n                        error.insertAfter(element); // for other inputs, just perform default behavior\n                    }\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit   \n                    success3.hide();\n                    error3.show();\n                    App.scrollTo(error3, -200);\n                },\n\n                highlight: function (element) { // hightlight error inputs\n                   $(element)\n                        .closest('.form-group').addClass('has-error'); // set error class to the control group\n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    $(element)\n                        .closest('.form-group').removeClass('has-error'); // set error class to the control group\n                },\n\n                success: function (label) {\n                    label\n                        .closest('.form-group').removeClass('has-error'); // set success class to the control group\n                },\n\n                submitHandler: function (form) {\n                    success3.show();\n                    error3.hide();\n                    form[0].submit(); // submit the form\n                }\n\n            });\n\n             //apply validation on select2 dropdown value change, this only needed for chosen dropdown integration.\n            $('.select2me', form3).change(function () {\n                form3.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input\n            });\n\n            //initialize datepicker\n            $('.date-picker').datepicker({\n                rtl: App.isRTL(),\n                autoclose: true\n            });\n            $('.date-picker .form-control').change(function() {\n                form3.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input \n            })\n    }\n\n    var handleWysihtml5 = function() {\n        if (!jQuery().wysihtml5) {\n            \n            return;\n        }\n\n        if ($('.wysihtml5').size() > 0) {\n            $('.wysihtml5').wysihtml5({\n                \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n            });\n        }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            handleWysihtml5();\n            handleValidation1();\n            handleValidation2();\n            handleValidation3();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormValidation.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/form-wizard.js",
    "content": "var FormWizard = function () {\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            if (!jQuery().bootstrapWizard) {\n                return;\n            }\n\n            function format(state) {\n                if (!state.id) return state.text; // optgroup\n                return \"<img class='flag' src='../../assets/global/img/flags/\" + state.id.toLowerCase() + \".png'/>&nbsp;&nbsp;\" + state.text;\n            }\n\n            $(\"#country_list\").select2({\n                placeholder: \"Select\",\n                allowClear: true,\n                formatResult: format,\n                width: 'auto', \n                formatSelection: format,\n                escapeMarkup: function (m) {\n                    return m;\n                }\n            });\n\n            var form = $('#submit_form');\n            var error = $('.alert-danger', form);\n            var success = $('.alert-success', form);\n\n            form.validate({\n                doNotHideMessage: true, //this option enables to show the error/success messages on tab switch.\n                errorElement: 'span', //default input error message container\n                errorClass: 'help-block help-block-error', // default input error message class\n                focusInvalid: false, // do not focus the last invalid input\n                rules: {\n                    //account\n                    username: {\n                        minlength: 5,\n                        required: true\n                    },\n                    password: {\n                        minlength: 5,\n                        required: true\n                    },\n                    rpassword: {\n                        minlength: 5,\n                        required: true,\n                        equalTo: \"#submit_form_password\"\n                    },\n                    //profile\n                    fullname: {\n                        required: true\n                    },\n                    email: {\n                        required: true,\n                        email: true\n                    },\n                    phone: {\n                        required: true\n                    },\n                    gender: {\n                        required: true\n                    },\n                    address: {\n                        required: true\n                    },\n                    city: {\n                        required: true\n                    },\n                    country: {\n                        required: true\n                    },\n                    //payment\n                    card_name: {\n                        required: true\n                    },\n                    card_number: {\n                        minlength: 16,\n                        maxlength: 16,\n                        required: true\n                    },\n                    card_cvc: {\n                        digits: true,\n                        required: true,\n                        minlength: 3,\n                        maxlength: 4\n                    },\n                    card_expiry_date: {\n                        required: true\n                    },\n                    'payment[]': {\n                        required: true,\n                        minlength: 1\n                    }\n                },\n\n                messages: { // custom messages for radio buttons and checkboxes\n                    'payment[]': {\n                        required: \"Please select at least one option\",\n                        minlength: jQuery.validator.format(\"Please select at least one option\")\n                    }\n                },\n\n                errorPlacement: function (error, element) { // render error placement for each input type\n                    if (element.attr(\"name\") == \"gender\") { // for uniform radio buttons, insert the after the given container\n                        error.insertAfter(\"#form_gender_error\");\n                    } else if (element.attr(\"name\") == \"payment[]\") { // for uniform checkboxes, insert the after the given container\n                        error.insertAfter(\"#form_payment_error\");\n                    } else {\n                        error.insertAfter(element); // for other inputs, just perform default behavior\n                    }\n                },\n\n                invalidHandler: function (event, validator) { //display error alert on form submit   \n                    success.hide();\n                    error.show();\n                    App.scrollTo(error, -200);\n                },\n\n                highlight: function (element) { // hightlight error inputs\n                    $(element)\n                        .closest('.form-group').removeClass('has-success').addClass('has-error'); // set error class to the control group\n                },\n\n                unhighlight: function (element) { // revert the change done by hightlight\n                    $(element)\n                        .closest('.form-group').removeClass('has-error'); // set error class to the control group\n                },\n\n                success: function (label) {\n                    if (label.attr(\"for\") == \"gender\" || label.attr(\"for\") == \"payment[]\") { // for checkboxes and radio buttons, no need to show OK icon\n                        label\n                            .closest('.form-group').removeClass('has-error').addClass('has-success');\n                        label.remove(); // remove error label here\n                    } else { // display success icon for other inputs\n                        label\n                            .addClass('valid') // mark the current input as valid and display OK icon\n                        .closest('.form-group').removeClass('has-error').addClass('has-success'); // set success class to the control group\n                    }\n                },\n\n                submitHandler: function (form) {\n                    success.show();\n                    error.hide();\n                    form[0].submit();\n                    //add here some ajax code to submit your form or just call form.submit() if you want to submit the form without ajax\n                }\n\n            });\n\n            var displayConfirm = function() {\n                $('#tab4 .form-control-static', form).each(function(){\n                    var input = $('[name=\"'+$(this).attr(\"data-display\")+'\"]', form);\n                    if (input.is(\":radio\")) {\n                        input = $('[name=\"'+$(this).attr(\"data-display\")+'\"]:checked', form);\n                    }\n                    if (input.is(\":text\") || input.is(\"textarea\")) {\n                        $(this).html(input.val());\n                    } else if (input.is(\"select\")) {\n                        $(this).html(input.find('option:selected').text());\n                    } else if (input.is(\":radio\") && input.is(\":checked\")) {\n                        $(this).html(input.attr(\"data-title\"));\n                    } else if ($(this).attr(\"data-display\") == 'payment[]') {\n                        var payment = [];\n                        $('[name=\"payment[]\"]:checked', form).each(function(){ \n                            payment.push($(this).attr('data-title'));\n                        });\n                        $(this).html(payment.join(\"<br>\"));\n                    }\n                });\n            }\n\n            var handleTitle = function(tab, navigation, index) {\n                var total = navigation.find('li').length;\n                var current = index + 1;\n                // set wizard title\n                $('.step-title', $('#form_wizard_1')).text('Step ' + (index + 1) + ' of ' + total);\n                // set done steps\n                jQuery('li', $('#form_wizard_1')).removeClass(\"done\");\n                var li_list = navigation.find('li');\n                for (var i = 0; i < index; i++) {\n                    jQuery(li_list[i]).addClass(\"done\");\n                }\n\n                if (current == 1) {\n                    $('#form_wizard_1').find('.button-previous').hide();\n                } else {\n                    $('#form_wizard_1').find('.button-previous').show();\n                }\n\n                if (current >= total) {\n                    $('#form_wizard_1').find('.button-next').hide();\n                    $('#form_wizard_1').find('.button-submit').show();\n                    displayConfirm();\n                } else {\n                    $('#form_wizard_1').find('.button-next').show();\n                    $('#form_wizard_1').find('.button-submit').hide();\n                }\n                App.scrollTo($('.page-title'));\n            }\n\n            // default form wizard\n            $('#form_wizard_1').bootstrapWizard({\n                'nextSelector': '.button-next',\n                'previousSelector': '.button-previous',\n                onTabClick: function (tab, navigation, index, clickedIndex) {\n                    return false;\n                    \n                    success.hide();\n                    error.hide();\n                    if (form.valid() == false) {\n                        return false;\n                    }\n                    \n                    handleTitle(tab, navigation, clickedIndex);\n                },\n                onNext: function (tab, navigation, index) {\n                    success.hide();\n                    error.hide();\n\n                    if (form.valid() == false) {\n                        return false;\n                    }\n\n                    handleTitle(tab, navigation, index);\n                },\n                onPrevious: function (tab, navigation, index) {\n                    success.hide();\n                    error.hide();\n\n                    handleTitle(tab, navigation, index);\n                },\n                onTabShow: function (tab, navigation, index) {\n                    var total = navigation.find('li').length;\n                    var current = index + 1;\n                    var $percent = (current / total) * 100;\n                    $('#form_wizard_1').find('.progress-bar').css({\n                        width: $percent + '%'\n                    });\n                }\n            });\n\n            $('#form_wizard_1').find('.button-previous').hide();\n            $('#form_wizard_1 .button-submit').click(function () {\n                alert('Finished! Hope you like it :)');\n            }).hide();\n\n            //apply validation on select2 dropdown value change, this only needed for chosen dropdown integration.\n            $('#country_list', form).change(function () {\n                form.validate().element($(this)); //revalidate the chosen dropdown value and show error or success message for the input\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    FormWizard.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/inbox.js",
    "content": "var AppInbox = function () {\n\n    var content = $('.inbox-content');\n    var loading = $('.inbox-loading');\n    var listListing = '';\n\n    var loadInbox = function (el, name) {\n        var url = 'app_inbox_inbox.html';\n        var title = $('.inbox-nav > li.' + name + ' a').attr('data-title');\n        listListing = name;\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-nav > li.' + name).addClass('active');\n                $('.inbox-header > h1').text(title);\n\n                loading.hide();\n                content.html(res);\n                if (Layout.fixContentHeight) {\n                    Layout.fixContentHeight();\n                }\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n\n        // handle group checkbox:\n        jQuery('body').on('change', '.mail-group-checkbox', function () {\n            var set = jQuery('.mail-checkbox');\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                $(this).attr(\"checked\", checked);\n            });\n        });\n    }\n\n    var loadMessage = function (el, name, resetMenu) {\n        var url = 'app_inbox_view.html';\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        var message_id = el.parent('tr').attr(\"data-messageid\");  \n        \n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            data: {'message_id': message_id},\n            success: function(res) \n            {\n                toggleButton(el);\n\n                if (resetMenu) {\n                    $('.inbox-nav > li.active').removeClass('active');\n                }\n                $('.inbox-header > h1').text('View Message');\n\n                loading.hide();\n                content.html(res);\n                Layout.fixContentHeight();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var initWysihtml5 = function () {\n        $('.inbox-wysihtml5').wysihtml5({\n            \"stylesheets\": [\"../static/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css\"]\n        });\n    }\n\n    var initFileupload = function () {\n\n        $('#fileupload').fileupload({\n            // Uncomment the following to send cross-domain cookies:\n            //xhrFields: {withCredentials: true},\n            url: '../assets/global/plugins/jquery-file-upload/server/php/',\n            autoUpload: true\n        });\n\n        // Upload server status check for browsers with CORS support:\n        if ($.support.cors) {\n            $.ajax({\n                url: '../assets/global/plugins/jquery-file-upload/server/php/',\n                type: 'HEAD'\n            }).fail(function () {\n                $('<span class=\"alert alert-error\"/>')\n                    .text('Upload server currently unavailable - ' +\n                    new Date())\n                    .appendTo('#fileupload');\n            });\n        }\n    }\n\n    var loadCompose = function (el) {\n        var url = 'app_inbox_compose.html';\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Compose');\n\n                loading.hide();\n                content.html(res);\n\n                initFileupload();\n                initWysihtml5();\n\n                $('.inbox-wysihtml5').focus();\n                Layout.fixContentHeight();\n                App.initUniform();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var loadReply = function (el) {\n        var messageid = $(el).attr(\"data-messageid\");\n        var url = 'app_inbox_reply.html&messageid=' + messageid;\n        \n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        // load the form via ajax\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Reply');\n\n                loading.hide();\n                content.html(res);\n                $('[name=\"message\"]').val($('#reply_email_content_body').html());\n\n                handleCCInput(); // init \"CC\" input field\n\n                initFileupload();\n                initWysihtml5();\n                Layout.fixContentHeight();\n                App.initUniform();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var loadSearchResults = function (el) {\n        var url = 'app_inbox_inbox.html';\n\n        loading.show();\n        content.html('');\n        toggleButton(el);\n\n        $.ajax({\n            type: \"GET\",\n            cache: false,\n            url: url,\n            dataType: \"html\",\n            success: function(res) \n            {\n                toggleButton(el);\n\n                $('.inbox-nav > li.active').removeClass('active');\n                $('.inbox-header > h1').text('Search');\n\n                loading.hide();\n                content.html(res);\n                Layout.fixContentHeight();\n                App.initUniform();\n            },\n            error: function(xhr, ajaxOptions, thrownError)\n            {\n                toggleButton(el);\n            },\n            async: false\n        });\n    }\n\n    var handleCCInput = function () {\n        var the = $('.inbox-compose .mail-to .inbox-cc');\n        var input = $('.inbox-compose .input-cc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var handleBCCInput = function () {\n\n        var the = $('.inbox-compose .mail-to .inbox-bcc');\n        var input = $('.inbox-compose .input-bcc');\n        the.hide();\n        input.show();\n        $('.close', input).click(function () {\n            input.hide();\n            the.show();\n        });\n    }\n\n    var toggleButton = function(el) {\n        if (typeof el == 'undefined') {\n            return;\n        }\n        if (el.attr(\"disabled\")) {\n            el.attr(\"disabled\", false);\n        } else {\n            el.attr(\"disabled\", true);\n        }\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            // handle compose btn click\n            $('.inbox').on('click', '.compose-btn a', function () {\n                loadCompose($(this));\n            });\n\n            // handle discard btn\n            $('.inbox').on('click', '.inbox-discard-btn', function(e) {\n                e.preventDefault();\n                loadInbox($(this), listListing);\n            });\n\n            // handle reply and forward button click\n            $('.inbox').on('click', '.reply-btn', function () {\n                loadReply($(this));\n            });\n\n            // handle view message\n            $('.inbox-content').on('click', '.view-message', function () {\n                loadMessage($(this));\n            });\n\n            // handle inbox listing\n            $('.inbox-nav > li.inbox > a').click(function () {\n                loadInbox($(this), 'inbox');\n            });\n\n            // handle sent listing\n            $('.inbox-nav > li.sent > a').click(function () {\n                loadInbox($(this), 'sent');\n            });\n\n            // handle draft listing\n            $('.inbox-nav > li.draft > a').click(function () {\n                loadInbox($(this), 'draft');\n            });\n\n            // handle trash listing\n            $('.inbox-nav > li.trash > a').click(function () {\n                loadInbox($(this), 'trash');\n            });\n\n            //handle compose/reply cc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-cc', function () {\n                handleCCInput();\n            });\n\n            //handle compose/reply bcc input toggle\n            $('.inbox-content').on('click', '.mail-to .inbox-bcc', function () {\n                handleBCCInput();\n            });\n\n            //handle loading content based on URL parameter\n            if (App.getURLParameter(\"a\") === \"view\") {\n                loadMessage();\n            } else if (App.getURLParameter(\"a\") === \"compose\") {\n                loadCompose();\n            } else {\n               $('.inbox-nav > li.inbox > a').click();\n            }\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppInbox.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/jquery-gantt.js",
    "content": "var jgantt = function () {\n\n    return {\n        \n        init: function () {\n            var gantt_data = [\n\t\t\t\t{ \"name\": \" Step A \",\"desc\": \"&rarr; Step B\"  ,\"values\": [{\"id\": \"b0\", \"from\": \"/Date(1320182000000)/\", \"to\": \"/Date(1320301600000)/\", \"desc\": \"Id: 0<br/>Name:   Step A\", \"label\": \" Step A\", \"customClass\": \"ganttRed\", \"dep\": \"b1\"}]}\n\t\t\t];\n\n            $(\".jgantt\").gantt({source: gantt_data, navigate: 'scroll', scale: 'days', maxScale: 'weeks', minScale: 'hours'});\n\t\t}\n    };\n}();\n\njQuery(document).ready(function() {    \n\t jgantt.init(); \n});\n  "
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/lock-2.js",
    "content": "var Lock = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n             $.backstretch([\n\t\t        \"../assets/pages/media/bg/1.jpg\",\n    \t\t    \"../assets/pages/media/bg/2.jpg\",\n    \t\t    \"../assets/pages/media/bg/3.jpg\",\n    \t\t    \"../assets/pages/media/bg/4.jpg\"\n\t\t        ], {\n\t\t          fade: 1000,\n\t\t          duration: 8000\n\t\t      });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Lock.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/lock.js",
    "content": "var Lock = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Lock.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/portfolio-1.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-juicy-projects').cubeportfolio({\n        filters: '#js-filters-juicy-projects',\n        loadMore: '#js-loadMore-juicy-projects',\n        loadMoreAction: 'click',\n        layoutMode: 'grid',\n        defaultFilter: '*',\n        animationType: 'quicksand',\n        gapHorizontal: 35,\n        gapVertical: 30,\n        gridAdjustment: 'responsive',\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        caption: 'overlayBottomReveal',\n        displayType: 'sequentially',\n        displayTypeSpeed: 80,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n\n        // singlePage popup\n        singlePageDelegate: '.cbp-singlePage',\n        singlePageDeeplinking: true,\n        singlePageStickyNavigation: true,\n        singlePageCounter: '<div class=\"cbp-popup-singlePage-counter\">{{current}} of {{total}}</div>',\n        singlePageCallback: function(url, element) {\n            // to update singlePage content use the following method: this.updateSinglePage(yourContent)\n            var t = this;\n\n            $.ajax({\n                    url: url,\n                    type: 'GET',\n                    dataType: 'html',\n                    timeout: 10000\n                })\n                .done(function(result) {\n                    t.updateSinglePage(result);\n                })\n                .fail(function() {\n                    t.updateSinglePage('AJAX Error! Please refresh the page!');\n                });\n        },\n    });\n    \n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/portfolio-2.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-mosaic').cubeportfolio({\n        filters: '#js-filters-mosaic',\n        loadMore: '#js-loadMore-mosaic',\n        loadMoreAction: 'click',\n        layoutMode: 'mosaic',\n        sortToPreventGaps: true,\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        defaultFilter: '*',\n        animationType: 'quicksand',\n        gapHorizontal: 0,\n        gapVertical: 0,\n        gridAdjustment: 'responsive',\n        caption: 'zoom',\n        displayType: 'sequentially',\n        displayTypeSpeed: 100,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n    });\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/portfolio-3.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-lightbox-gallery').cubeportfolio({\n        filters: '#js-filters-lightbox-gallery1, #js-filters-lightbox-gallery2',\n        loadMore: '#js-loadMore-lightbox-gallery',\n        loadMoreAction: 'click',\n        layoutMode: 'grid',\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        defaultFilter: '*',\n        animationType: 'rotateSides',\n        gapHorizontal: 10,\n        gapVertical: 10,\n        gridAdjustment: 'responsive',\n        caption: 'zoom',\n        displayType: 'sequentially',\n        displayTypeSpeed: 100,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n\n        // singlePageInline\n        singlePageInlineDelegate: '.cbp-singlePageInline',\n        singlePageInlinePosition: 'below',\n        singlePageInlineInFocus: true,\n        singlePageInlineCallback: function(url, element) {\n            // to update singlePageInline content use the following method: this.updateSinglePageInline(yourContent)\n            var t = this;\n\n            $.ajax({\n                    url: url,\n                    type: 'GET',\n                    dataType: 'html',\n                    timeout: 10000\n                })\n                .done(function(result) {\n\n                    t.updateSinglePageInline(result);\n\n                })\n                .fail(function() {\n                    t.updateSinglePageInline('AJAX Error! Please refresh the page!');\n                });\n        },\n    });\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/portfolio-4.js",
    "content": "(function($, window, document, undefined) {\n    'use strict';\n\n    // init cubeportfolio\n    $('#js-grid-full-width').cubeportfolio({\n        filters: '#js-filters-full-width',\n        loadMore: '#js-loadMore-full-width',\n        loadMoreAction: 'auto',\n        layoutMode: 'mosaic',\n        sortToPreventGaps: true,\n        defaultFilter: '*',\n        animationType: 'fadeOutTop',\n        gapHorizontal: 0,\n        gapVertical: 0,\n        gridAdjustment: 'responsive',\n        mediaQueries: [{\n            width: 1500,\n            cols: 5\n        }, {\n            width: 1100,\n            cols: 4\n        }, {\n            width: 800,\n            cols: 3\n        }, {\n            width: 480,\n            cols: 2\n        }, {\n            width: 320,\n            cols: 1\n        }],\n        caption: 'zoom',\n        displayType: 'lazyLoading',\n        displayTypeSpeed: 100,\n\n        // lightbox\n        lightboxDelegate: '.cbp-lightbox',\n        lightboxGallery: true,\n        lightboxTitleSrc: 'data-title',\n        lightboxCounter: '<div class=\"cbp-popup-lightbox-counter\">{{current}} of {{total}}</div>',\n    });\n})(jQuery, window, document);\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/portlet-ajax.js",
    "content": "var PortletAjax = function () {\n\n    var handlePortletAjax = function () {\n        //custom portlet reload handler\n        $('#my_portlet .portlet-title a.reload').click(function(e){\n            e.preventDefault();  // prevent default event\n            e.stopPropagation(); // stop event handling here(cancel the default reload handler)\n            // do here some custom work:\n            App.alert({\n                'type': 'danger', \n                'icon': 'warning',\n                'message': 'Custom reload handler!',\n                'container': $('#my_portlet .portlet-body') \n            });\n        })\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handlePortletAjax();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   PortletAjax.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/portlet-draggable.js",
    "content": "var PortletDraggable = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().sortable) {\n                return;\n            }\n\n            $(\"#sortable_portlets\").sortable({\n                connectWith: \".portlet\",\n                items: \".portlet\", \n                opacity: 0.8,\n                handle : '.portlet-title',\n                coneHelperSize: true,\n                placeholder: 'portlet-sortable-placeholder',\n                forcePlaceholderSize: true,\n                tolerance: \"pointer\",\n                helper: \"clone\",\n                tolerance: \"pointer\",\n                forcePlaceholderSize: !0,\n                helper: \"clone\",\n                cancel: \".portlet-sortable-empty, .portlet-fullscreen\", // cancel dragging if portlet is in fullscreen mode\n                revert: 250, // animation in milliseconds\n                update: function(b, c) {\n                    if (c.item.prev().hasClass(\"portlet-sortable-empty\")) {\n                        c.item.prev().before(c.item);\n                    }                    \n                }\n            });\n        }\n    };\n}();\n\njQuery(document).ready(function() {\n    PortletDraggable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/profile.js",
    "content": "var Profile = function() {\n\n    var dashboardMainChart = null;\n\n    return {\n\n        //main function\n        init: function() {\n        \n            Profile.initMiniCharts();\n        },\n\n        initMiniCharts: function() {\n\n            // IE8 Fix: function.bind polyfill\n            if (App.isIE8() && !Function.prototype.bind) {\n                Function.prototype.bind = function(oThis) {\n                    if (typeof this !== \"function\") {\n                        // closest thing possible to the ECMAScript 5 internal IsCallable function\n                        throw new TypeError(\"Function.prototype.bind - what is trying to be bound is not callable\");\n                    }\n\n                    var aArgs = Array.prototype.slice.call(arguments, 1),\n                        fToBind = this,\n                        fNOP = function() {},\n                        fBound = function() {\n                            return fToBind.apply(this instanceof fNOP && oThis ? this : oThis,\n                                aArgs.concat(Array.prototype.slice.call(arguments)));\n                        };\n\n                    fNOP.prototype = this.prototype;\n                    fBound.prototype = new fNOP();\n\n                    return fBound;\n                };\n            }\n\n            $(\"#sparkline_bar\").sparkline([8, 9, 10, 11, 10, 10, 12, 10, 10, 11, 9, 12, 11], {\n                type: 'bar',\n                width: '100',\n                barWidth: 6,\n                height: '45',\n                barColor: '#F36A5B',\n                negBarColor: '#e02222'\n            });\n\n            $(\"#sparkline_bar2\").sparkline([9, 11, 12, 13, 12, 13, 10, 14, 13, 11, 11, 12, 11], {\n                type: 'bar',\n                width: '100',\n                barWidth: 6,\n                height: '45',\n                barColor: '#5C9BD1',\n                negBarColor: '#e02222'\n            });\n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        Profile.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/search.js",
    "content": "var Search = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n           \t$('.date-picker').datepicker({\n                rtl: App.isRTL(),\n                orientation: \"left\",\n                autoclose: true\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    Search.init();\n})"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-bootstrap-master.js",
    "content": "var $table = $('#table'),\n        $remove = $('#remove'),\n        selections = [];\n\n    function initTable() {\n        $table.bootstrapTable({\n            height: getHeight(),\n            columns: [\n                [\n                    {\n                        field: 'state',\n                        checkbox: true,\n                        rowspan: 2,\n                        align: 'center',\n                        valign: 'middle'\n                    }, {\n                        title: 'Item ID',\n                        field: 'id',\n                        rowspan: 2,\n                        align: 'center',\n                        valign: 'middle',\n                        sortable: true,\n                        footerFormatter: totalTextFormatter\n                    }, {\n                        title: 'Item Detail',\n                        colspan: 3,\n                        align: 'center'\n                    }\n                ],\n                [\n                    {\n                        field: 'name',\n                        title: 'Item Name',\n                        sortable: true,\n                        editable: true,\n                        footerFormatter: totalNameFormatter,\n                        align: 'center'\n                    }, {\n                        field: 'price',\n                        title: 'Item Price',\n                        sortable: true,\n                        align: 'center',\n                        editable: {\n                            type: 'text',\n                            title: 'Item Price',\n                            validate: function (value) {\n                                value = $.trim(value);\n                                if (!value) {\n                                    return 'This field is required';\n                                }\n                                if (!/^$/.test(value)) {\n                                    return 'This field needs to start width $.'\n                                }\n                                var data = $table.bootstrapTable('getData'),\n                                    index = $(this).parents('tr').data('index');\n                                console.log(data[index]);\n                                return '';\n                            }\n                        },\n                        footerFormatter: totalPriceFormatter\n                    }, {\n                        field: 'operate',\n                        title: 'Item Operate',\n                        align: 'center',\n                        events: operateEvents,\n                        formatter: operateFormatter\n                    }\n                ]\n            ]\n        });\n        // sometimes footer render error.\n        setTimeout(function () {\n            $table.bootstrapTable('resetView');\n        }, 200);\n        $table.on('check.bs.table uncheck.bs.table ' +\n                'check-all.bs.table uncheck-all.bs.table', function () {\n            $remove.prop('disabled', !$table.bootstrapTable('getSelections').length);\n\n            // save your data, here just save the current page\n            selections = getIdSelections();\n            // push or splice the selections if you want to save all data selections\n        });\n        $table.on('expand-row.bs.table', function (e, index, row, $detail) {\n            if (index % 2 == 1) {\n                $detail.html('Loading from ajax request...');\n                $.get('LICENSE', function (res) {\n                    $detail.html(res.replace(/\\n/g, '<br>'));\n                });\n            }\n        });\n        $table.on('all.bs.table', function (e, name, args) {\n            console.log(name, args);\n        });\n        $remove.click(function () {\n            var ids = getIdSelections();\n            $table.bootstrapTable('remove', {\n                field: 'id',\n                values: ids\n            });\n            $remove.prop('disabled', true);\n        });\n        $(window).resize(function () {\n            $table.bootstrapTable('resetView', {\n                height: getHeight()\n            });\n        });\n    }\n\n    function getIdSelections() {\n        return $.map($table.bootstrapTable('getSelections'), function (row) {\n            return row.id\n        });\n    }\n\n    function responseHandler(res) {\n        $.each(res.rows, function (i, row) {\n            row.state = $.inArray(row.id, selections) !== -1;\n        });\n        return res;\n    }\n\n    function detailFormatter(index, row) {\n        var html = [];\n        $.each(row, function (key, value) {\n            html.push('<p><b>' + key + ':</b> ' + value + '</p>');\n        });\n        return html.join('');\n    }\n\n    function operateFormatter(value, row, index) {\n        return [\n            '<a class=\"like\" href=\"javascript:void(0)\" title=\"Like\">',\n            '<i class=\"glyphicon glyphicon-heart\"></i>',\n            '</a>  ',\n            '<a class=\"remove\" href=\"javascript:void(0)\" title=\"Remove\">',\n            '<i class=\"glyphicon glyphicon-remove\"></i>',\n            '</a>'\n        ].join('');\n    }\n\n    window.operateEvents = {\n        'click .like': function (e, value, row, index) {\n            alert('You click like action, row: ' + JSON.stringify(row));\n        },\n        'click .remove': function (e, value, row, index) {\n            $table.bootstrapTable('remove', {\n                field: 'id',\n                values: [row.id]\n            });\n        }\n    };\n\n    function totalTextFormatter(data) {\n        return 'Total';\n    }\n\n    function totalNameFormatter(data) {\n        return data.length;\n    }\n\n    function totalPriceFormatter(data) {\n        var total = 0;\n        $.each(data, function (i, row) {\n            total += +(row.price.substring(1));\n        });\n        return '$' + total;\n    }\n\n    function getHeight() {\n        return $(window).height() - $('h1').outerHeight(true);\n    }\n\n    $(function () {\n        var scripts = [\n                location.search.substring(1) || 'assets/bootstrap-table/src/bootstrap-table.js',\n                'assets/bootstrap-table/src/extensions/export/bootstrap-table-export.js',\n                'http://rawgit.com/hhurz/tableExport.jquery.plugin/master/tableExport.js',\n                'assets/bootstrap-table/src/extensions/editable/bootstrap-table-editable.js',\n                'http://rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/js/bootstrap-editable.js'\n            ],\n            eachSeries = function (arr, iterator, callback) {\n                callback = callback || function () {};\n                if (!arr.length) {\n                    return callback();\n                }\n                var completed = 0;\n                var iterate = function () {\n                    iterator(arr[completed], function (err) {\n                        if (err) {\n                            callback(err);\n                            callback = function () {};\n                        }\n                        else {\n                            completed += 1;\n                            if (completed >= arr.length) {\n                                callback(null);\n                            }\n                            else {\n                                iterate();\n                            }\n                        }\n                    });\n                };\n                iterate();\n            };\n\n        eachSeries(scripts, getScript, initTable);\n    });\n\n    function getScript(url, callback) {\n        var head = document.getElementsByTagName('head')[0];\n        var script = document.createElement('script');\n        script.src = url;\n\n        var done = false;\n        // Attach handlers for all browsers\n        script.onload = script.onreadystatechange = function() {\n            if (!done && (!this.readyState ||\n                    this.readyState == 'loaded' || this.readyState == 'complete')) {\n                done = true;\n                if (callback)\n                    callback();\n\n                // Handle memory leak in IE\n                script.onload = script.onreadystatechange = null;\n            }\n        };\n\n        head.appendChild(script);\n\n        // We handle everything using the script element injection\n        return undefined;\n    }"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-bootstrap.js",
    "content": "var BootstrapTable = function () {\n\n    var TableTransform = function () {\n         var $table_transform = $('#table-transform');\n        $('#transform').click(function () {\n            $table_transform.bootstrapTable();\n        });\n        $('#destroy').click(function () {\n            $table_transform.bootstrapTable('destroy');\n        });\n    }\n\n    var TableStyle = function () {\n        var $table_style = $('#table-style');\n       // $table_style.bootstrapTable();\n\n        $('#hover, #striped, #condensed').click(function () {\n            var classes = 'table';\n\n            if ($('#hover').prop('checked')) {\n                classes += ' table-hover';\n            }\n            if ($('#condensed').prop('checked')) {\n                classes += ' table-condensed';\n            }\n            $('#table-style').bootstrapTable('destroy')\n                .bootstrapTable({\n                    classes: classes,\n                    striped: $('#striped').prop('checked')\n                });\n        });\n\n        function rowStyle(row, index) {\n            var bs_classes = ['active', 'success', 'info', 'warning', 'danger'];\n\n            if (index % 2 === 0 && index / 2 < bs_classes.length) {\n                return {\n                    classes: bs_classes[index / 2]\n                };\n            }\n            return {};\n        }\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            TableTransform();\n            TableStyle();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    BootstrapTable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-ajax.js",
    "content": "var TableDatatablesAjax = function () {\n\n    var initPickers = function () {\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n    }\n\n    var handleDemo1 = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_ajax\"),\n            onSuccess: function (grid, response) {\n                // grid:        grid object\n                // response:    json object of server side ajax response\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            onDataLoad: function(grid) {\n                // execute some code on ajax data load\n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n                \n                \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/table_ajax.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ]// set first column as a default sort by asc\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n        //grid.setAjaxParam(\"customActionType\", \"group_action\");\n        //grid.getDataTable().ajax.reload();\n        //grid.clearAjaxParams();\n    }\n\n    var handleDemo2 = function () {\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_ajax_2\"),\n            onSuccess: function (grid, response) {\n                // grid:        grid object\n                // response:    json object of server side ajax response\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            onDataLoad: function(grid) {\n                // execute some code on ajax data load\n            },\n\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n               \n                \"dom\": \"<'row'<'col-md-8 col-sm-12'i><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'i><'col-md-4 col-sm-12'>>\",\n\n                \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n                \"pageLength\": 10, // default record count per page\n\n                \"ajax\": {\n                    \"url\": \"../demo/table_ajax.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ],// set first column as a default sort by asc,\n\n                \"language\": {\n                    \"loadingRecords\": \"Please wait ...\",\n                    \"zeroRecords\": \"No records\",\n                    \"emptyTable\": \"No data available in table\",\n                    \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                },\n\n                scrollY: 400,\n                deferRender:    true,\n                scroller: {\n                    loadingIndicator: true\n                }\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n        //grid.setAjaxParam(\"customActionType\", \"group_action\");\n        //grid.getDataTable().ajax.reload();\n        //grid.clearAjaxParams();\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            initPickers();\n            handleDemo1();\n            handleDemo2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesAjax.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-buttons.js",
    "content": "var TableDatatablesButtons = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'copy', className: 'btn red btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'excel', className: 'btn yellow btn-outline ' },\n                { extend: 'csv', className: 'btn purple btn-outline ' },\n                { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: true,\n\n            //\"ordering\": false, disable column ordering \n            //\"paging\": false, disable pagination\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'copy', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'excel', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' },\n                {\n                    text: 'Reload',\n                    className: 'btn default',\n                    action: function ( e, dt, node, config ) {\n                        //dt.ajax.reload();\n                        alert('Custom Button');\n                    }\n                }\n            ],\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable3 = function () {\n        var table = $('#sample_3');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'copy', className: 'btn red btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'excel', className: 'btn yellow btn-outline ' },\n                { extend: 'csv', className: 'btn purple btn-outline ' },\n                { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: true,\n\n            //\"ordering\": false, disable column ordering \n            //\"paging\": false, disable pagination\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            //\"dom\": \"<'row' <'col-md-12'>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n\n        // handle datatable custom tools\n        $('#sample_3_tools > li > a.tool-action').on('click', function() {\n            var action = $(this).attr('data-action');\n            oTable.DataTable().button(action).trigger();\n        });\n    }\n\n    var initAjaxDatatables = function () {\n\n        //init date pickers\n        $('.date-picker').datepicker({\n            rtl: App.isRTL(),\n            autoclose: true\n        });\n\n        var grid = new Datatable();\n\n        grid.init({\n            src: $(\"#datatable_ajax\"),\n            onSuccess: function (grid, response) {\n                // grid:        grid object\n                // response:    json object of server side ajax response\n                // execute some code after table records loaded\n            },\n            onError: function (grid) {\n                // execute some code on network or other general error  \n            },\n            onDataLoad: function(grid) {\n                // execute some code on ajax data load\n            },\n            loadingMessage: 'Loading...',\n            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options \n\n                // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). \n                // So when dropdowns used the scrollable div should be removed. \n                \n                //\"dom\": \"<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>\",\n                \n                \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n                \"lengthMenu\": [\n                    [10, 20, 50, 100, 150, -1],\n                    [10, 20, 50, 100, 150, \"All\"] // change per page values here\n                ],\n                \"pageLength\": 10, // default record count per page\n                \"ajax\": {\n                    \"url\": \"../demo/table_ajax.php\", // ajax source\n                },\n                \"order\": [\n                    [1, \"asc\"]\n                ],// set first column as a default sort by asc\n            \n                // Or you can use remote translation file\n                //\"language\": {\n                //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n                //},\n\n                buttons: [\n                    { extend: 'print', className: 'btn default' },\n                    { extend: 'copy', className: 'btn default' },\n                    { extend: 'pdf', className: 'btn default' },\n                    { extend: 'excel', className: 'btn default' },\n                    { extend: 'csv', className: 'btn default' },\n                    {\n                        text: 'Reload',\n                        className: 'btn default',\n                        action: function ( e, dt, node, config ) {\n                            dt.ajax.reload();\n                            alert('Datatable reloaded!');\n                        }\n                    }\n                ],\n\n            }\n        });\n\n        // handle group actionsubmit button click\n        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {\n            e.preventDefault();\n            var action = $(\".table-group-action-input\", grid.getTableWrapper());\n            if (action.val() != \"\" && grid.getSelectedRowsCount() > 0) {\n                grid.setAjaxParam(\"customActionType\", \"group_action\");\n                grid.setAjaxParam(\"customActionName\", action.val());\n                grid.setAjaxParam(\"id\", grid.getSelectedRows());\n                grid.getDataTable().ajax.reload();\n                grid.clearAjaxParams();\n            } else if (action.val() == \"\") {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'Please select an action',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            } else if (grid.getSelectedRowsCount() === 0) {\n                App.alert({\n                    type: 'danger',\n                    icon: 'warning',\n                    message: 'No record selected',\n                    container: grid.getTableWrapper(),\n                    place: 'prepend'\n                });\n            }\n        });\n\n        //grid.setAjaxParam(\"customActionType\", \"group_action\");\n        //grid.getDataTable().ajax.reload();\n        //grid.clearAjaxParams();\n\n        // handle datatable custom tools\n        $('#datatable_ajax_tools > li > a.tool-action').on('click', function() {\n            var action = $(this).attr('data-action');\n            grid.getDataTable().button(action).trigger();\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n            initTable3();\n\n            initAjaxDatatables();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesButtons.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-colreorder.js",
    "content": "var TableDatatablesColreorder = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: true,\n\n            // setup colreorder extension: http://datatables.net/extensions/colreorder/\n            colReorder: {\n                reorderCallback: function () {\n                    console.log( 'callback' );\n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup colreorder extension: http://datatables.net/extensions/colreorder/\n            colReorder: {\n                reorderCallback: function () {\n                    console.log( 'callback' );\n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesColreorder.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-editable.js",
    "content": "var TableDatatablesEditable = function () {\n\n    var handleTable = function () {\n\n        function restoreRow(oTable, nRow) {\n            var aData = oTable.fnGetData(nRow);\n            var jqTds = $('>td', nRow);\n\n            for (var i = 0, iLen = jqTds.length; i < iLen; i++) {\n                oTable.fnUpdate(aData[i], nRow, i, false);\n            }\n\n            oTable.fnDraw();\n        }\n\n        function editRow(oTable, nRow) {\n            var aData = oTable.fnGetData(nRow);\n            var jqTds = $('>td', nRow);\n            jqTds[0].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[0] + '\">';\n            jqTds[1].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[1] + '\">';\n            jqTds[2].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[2] + '\">';\n            jqTds[3].innerHTML = '<input type=\"text\" class=\"form-control input-small\" value=\"' + aData[3] + '\">';\n            jqTds[4].innerHTML = '<a class=\"edit\" href=\"\">Save</a>';\n            jqTds[5].innerHTML = '<a class=\"cancel\" href=\"\">Cancel</a>';\n        }\n\n        function saveRow(oTable, nRow) {\n            var jqInputs = $('input', nRow);\n            oTable.fnUpdate(jqInputs[0].value, nRow, 0, false);\n            oTable.fnUpdate(jqInputs[1].value, nRow, 1, false);\n            oTable.fnUpdate(jqInputs[2].value, nRow, 2, false);\n            oTable.fnUpdate(jqInputs[3].value, nRow, 3, false);\n            oTable.fnUpdate('<a class=\"edit\" href=\"\">Edit</a>', nRow, 4, false);\n            oTable.fnUpdate('<a class=\"delete\" href=\"\">Delete</a>', nRow, 5, false);\n            oTable.fnDraw();\n        }\n\n        function cancelEditRow(oTable, nRow) {\n            var jqInputs = $('input', nRow);\n            oTable.fnUpdate(jqInputs[0].value, nRow, 0, false);\n            oTable.fnUpdate(jqInputs[1].value, nRow, 1, false);\n            oTable.fnUpdate(jqInputs[2].value, nRow, 2, false);\n            oTable.fnUpdate(jqInputs[3].value, nRow, 3, false);\n            oTable.fnUpdate('<a class=\"edit\" href=\"\">Edit</a>', nRow, 4, false);\n            oTable.fnDraw();\n        }\n\n        var table = $('#sample_editable_1');\n\n        var oTable = table.dataTable({\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // set the initial value\n            \"pageLength\": 5,\n\n            \"language\": {\n                \"lengthMenu\": \" _MENU_ records\"\n            },\n            \"columnDefs\": [{ // set default column settings\n                'orderable': true,\n                'targets': [0]\n            }, {\n                \"searchable\": true,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [0, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = $(\"#sample_editable_1_wrapper\");\n\n        var nEditing = null;\n        var nNew = false;\n\n        $('#sample_editable_1_new').click(function (e) {\n            e.preventDefault();\n\n            if (nNew && nEditing) {\n                if (confirm(\"Previose row not saved. Do you want to save it ?\")) {\n                    saveRow(oTable, nEditing); // save\n                    $(nEditing).find(\"td:first\").html(\"Untitled\");\n                    nEditing = null;\n                    nNew = false;\n\n                } else {\n                    oTable.fnDeleteRow(nEditing); // cancel\n                    nEditing = null;\n                    nNew = false;\n                    \n                    return;\n                }\n            }\n\n            var aiNew = oTable.fnAddData(['', '', '', '', '', '']);\n            var nRow = oTable.fnGetNodes(aiNew[0]);\n            editRow(oTable, nRow);\n            nEditing = nRow;\n            nNew = true;\n        });\n\n        table.on('click', '.delete', function (e) {\n            e.preventDefault();\n\n            if (confirm(\"Are you sure to delete this row ?\") == false) {\n                return;\n            }\n\n            var nRow = $(this).parents('tr')[0];\n            oTable.fnDeleteRow(nRow);\n            alert(\"Deleted! Do not forget to do some ajax to sync with backend :)\");\n        });\n\n        table.on('click', '.cancel', function (e) {\n            e.preventDefault();\n            if (nNew) {\n                oTable.fnDeleteRow(nEditing);\n                nEditing = null;\n                nNew = false;\n            } else {\n                restoreRow(oTable, nEditing);\n                nEditing = null;\n            }\n        });\n\n        table.on('click', '.edit', function (e) {\n            e.preventDefault();\n            nNew = false;\n            \n            /* Get the row as a parent of the link that was clicked on */\n            var nRow = $(this).parents('tr')[0];\n\n            if (nEditing !== null && nEditing != nRow) {\n                /* Currently editing - but not this row - restore the old before continuing to edit mode */\n                restoreRow(oTable, nEditing);\n                editRow(oTable, nRow);\n                nEditing = nRow;\n            } else if (nEditing == nRow && this.innerHTML == \"Save\") {\n                /* Editing this row and want to save it */\n                saveRow(oTable, nEditing);\n                nEditing = null;\n                alert(\"Updated! Do not forget to do some ajax to sync with backend :)\");\n            } else {\n                /* No edit in progress - let's start one */\n                editRow(oTable, nRow);\n                nEditing = nRow;\n            }\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            handleTable();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesEditable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-fixedheader.js",
    "content": "var TableDatatablesFixedHeader = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var fixedHeaderOffset = 0;\n        if (App.getViewPort().width < App.getResponsiveBreakpoint('md')) {\n            if ($('.page-header').hasClass('page-header-fixed-mobile')) {\n                fixedHeaderOffset = $('.page-header').outerHeight(true);\n            } \n        } else if ($('.page-header').hasClass('navbar-fixed-top')) {\n            fixedHeaderOffset = $('.page-header').outerHeight(true);\n        } else if ($('body').hasClass('page-header-fixed')) {\n            fixedHeaderOffset = 64; // admin 5 fixed height\n        }\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup rowreorder extension: http://datatables.net/extensions/fixedheader/\n            fixedHeader: {\n                header: true,\n                headerOffset: fixedHeaderOffset\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 20,\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n      });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var fixedHeaderOffset = 0;\n        if (App.getViewPort().width < App.getResponsiveBreakpoint('md')) {\n            if ($('.page-header').hasClass('page-header-fixed-mobile')) {\n                fixedHeaderOffset = $('.page-header').outerHeight(true);\n            } \n        } else if ($('.page-header').hasClass('navbar-fixed-top')) {\n            fixedHeaderOffset = $('.page-header').outerHeight(true);\n        } else if ($('body').hasClass('page-header-fixed')) {\n            fixedHeaderOffset = 64; // admin 5 fixed height\n        }\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup rowreorder extension: http://datatables.net/extensions/fixedheader/\n            fixedHeader: {\n                header: true,\n                footer: true,\n                headerOffset: fixedHeaderOffset\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 30, -1],\n                [5, 10, 15, 30, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 30,\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n      });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesFixedHeader.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-managed.js",
    "content": "var TableDatatablesManaged = function () {\n\n    var initTable1 = function () {\n\n        var table = $('#sample_1');\n\n        // begin first table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 5,            \n            \"pagingType\": \"bootstrap_full_number\",\n            \"columnDefs\": [\n                {  // set default column settings\n                    'orderable': false,\n                    'targets': [0]\n                }, \n                {\n                    \"searchable\": false,\n                    \"targets\": [0]\n                },\n                {\n                    \"className\": \"dt-right\", \n                    //\"targets\": [2]\n                }\n            ],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_1_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                    $(this).parents('tr').addClass(\"active\");\n                } else {\n                    $(this).prop(\"checked\", false);\n                    $(this).parents('tr').removeClass(\"active\");\n                }\n            });\n        });\n\n        table.on('change', 'tbody tr .checkboxes', function () {\n            $(this).parents('tr').toggleClass(\"active\");\n        });\n    }\n\n    var initTable1_2 = function () {\n\n        var table = $('#sample_1_2');\n\n        // begin first table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": false, // save datatable state(pagination, sort, etc) in cookie.\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n\n            // set the initial value\n            \"pageLength\": 5,            \n            \"pagingType\": \"bootstrap_full_number\",\n            \"columnDefs\": [\n                {  // set default column settings\n                    'orderable': false,\n                    'targets': [0]\n                }, \n                {\n                    \"searchable\": false,\n                    \"targets\": [0]\n                },\n                {\n                    \"className\": \"dt-right\", \n                    //\"targets\": [2]\n                }\n            ],\n\n            \"order\": [\n                [1, \"asc\"]\n            ], // set first column as a default sort by asc\n\n            initComplete: function () {\n\n                // username column\n                this.api().column(1).every(function(){\n                    var column = this;\n                    var select = $('<select class=\"form-control input-sm\"><option value=\"\">Select</option></select>')\n                        .appendTo( $(column.footer()).empty() )\n                        .on( 'change', function () {\n                            var val = $.fn.dataTable.util.escapeRegex(\n                                $(this).val()\n                            );     \n                            column\n                                .search( val ? '^'+val+'$' : '', true, false )\n                                .draw();\n                        } );\n     \n                    column.data().unique().sort().each( function ( d, j ) {\n                        select.append( '<option value=\"'+d+'\">'+d+'</option>' )\n                    } );\n                });\n\n            }\n        });\n\n        var tableWrapper = jQuery('#sample_1_2_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                    $(this).parents('tr').addClass(\"active\");\n                } else {\n                    $(this).prop(\"checked\", false);\n                    $(this).parents('tr').removeClass(\"active\");\n                }\n            });\n        });\n\n        table.on('change', 'tbody tr .checkboxes', function () {\n            $(this).parents('tr').toggleClass(\"active\");\n        });\n    }\n\n    var initTable2 = function () {\n\n        var table = $('#sample_2');\n\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \"pagingType\": \"bootstrap_extended\",\n\n            \"lengthMenu\": [\n                [5, 15, 20, -1],\n                [5, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 5,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_2_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    var initTable3 = function () {\n\n        var table = $('#sample_3');\n\n        // begin: third table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \n            \"lengthMenu\": [\n                [6, 15, 20, -1],\n                [6, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 6,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_3_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    var initTable4 = function () {\n\n        var table = $('#sample_4');\n\n        // begin: third table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \n            \"lengthMenu\": [\n                [6, 15, 20, -1],\n                [6, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 6,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_4_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    var initTable5 = function () {\n\n        var table = $('#sample_5');\n\n        // begin: third table\n        table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ records\",\n                \"infoEmpty\": \"No records found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total records)\",\n                \"lengthMenu\": \"Show _MENU_\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\",\n                \"paginate\": {\n                    \"previous\":\"Prev\",\n                    \"next\": \"Next\",\n                    \"last\": \"Last\",\n                    \"first\": \"First\"\n                }\n            },\n\n            \"footerCallback\": function ( row, data, start, end, display ) {\n                var api = this.api(), data;\n     \n                // Remove the formatting to get integer data for summation\n                var intVal = function ( i ) {\n                    return typeof i === 'string' ?\n                        i.replace(/[\\$,]/g, '')*1 :\n                        typeof i === 'number' ?\n                            i : 0;\n                };\n     \n                // Total over all pages\n                total = api\n                    .column( 3 )\n                    .data()\n                    .reduce( function (a, b) {\n                        return intVal(a) + intVal(b);\n                    }, 0 );\n     \n                // Total over this page\n                pageTotal = api\n                    .column( 3, { page: 'current'} )\n                    .data()\n                    .reduce( function (a, b) {\n                        return intVal(a) + intVal(b);\n                    }, 0 );\n     \n                // Update footer\n                $( api.column( 3 ).footer() ).html(\n                    '$'+pageTotal +' ( $'+ total +' total)'\n                );\n            },\n            \n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n\n            \"bStateSave\": true, // save datatable state(pagination, sort, etc) in cookie.\n            \n            \"lengthMenu\": [\n                [6, 15, 20, -1],\n                [6, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 6,\n            \"columnDefs\": [{  // set default column settings\n                'orderable': false,\n                'targets': [0]\n            }, {\n                \"searchable\": false,\n                \"targets\": [0]\n            }],\n            \"order\": [\n                [1, \"asc\"]\n            ] // set first column as a default sort by asc\n        });\n\n        var tableWrapper = jQuery('#sample_5_wrapper');\n\n        table.find('.group-checkable').change(function () {\n            var set = jQuery(this).attr(\"data-set\");\n            var checked = jQuery(this).is(\":checked\");\n            jQuery(set).each(function () {\n                if (checked) {\n                    $(this).prop(\"checked\", true);\n                } else {\n                    $(this).prop(\"checked\", false);\n                }\n            });\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable1_2();\n\n            initTable2();\n            initTable3();\n            initTable4();\n            initTable5();\n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) { \n    jQuery(document).ready(function() {\n        TableDatatablesManaged.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-responsive.js",
    "content": "var TableDatatablesResponsive = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                   \n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                    type: 'column',\n                    target: 'tr'\n                }\n            },\n            columnDefs: [ {\n                className: 'control',\n                orderable: false,\n                targets:   0\n            } ],\n\n            order: [ 1, 'asc' ],\n            \n            // pagination control\n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n            \"pagingType\": 'bootstrap_extended', // pagination type\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable3 = function () {\n        var table = $('#sample_3');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                   \n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable4 = function () {\n        var table = $('#sample_4');\n\n        var oTable = table.dataTable({\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup responsive extension: http://datatables.net/extensions/responsive/\n            responsive: {\n                details: {\n                   \n                }\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n    \n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n            initTable3();\n            initTable4();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesResponsive.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-rowreorder.js",
    "content": "var TableDatatablesRowreorder = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extentension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // setup rowreorder extension: http://datatables.net/extensions/rowreorder/\n            rowReorder: {\n\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // setup colreorder extension: http://datatables.net/extensions/colreorder/\n            colReorder: {\n                reorderCallback: function () {\n                    console.log( 'callback' );\n                }\n            },\n\n            // setup rowreorder extension: http://datatables.net/extensions/rowreorder/\n            rowReorder: {\n\n            },\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [5, 10, 15, 20, -1],\n                [5, 10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesRowreorder.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/table-datatables-scroller.js",
    "content": "var TableDatatablesScroller = function () {\n\n    var initTable1 = function () {\n        var table = $('#sample_1');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            scrollY:        300,\n            deferRender:    true,\n            scroller:       true,\n\n            stateSave:      true,\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [10, 15, 20, -1],\n                [10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable2 = function () {\n        var table = $('#sample_2');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"Loading...\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            buttons: [\n                { extend: 'print', className: 'btn default' },\n                { extend: 'pdf', className: 'btn default' },\n                { extend: 'csv', className: 'btn default' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            serverSide: true,\n            ordering: false,\n            searching: false,\n            ajax: function ( data, callback, settings ) {\n                var out = [];\n     \n                for ( var i=data.start, ien=data.start+data.length ; i<ien ; i++ ) {\n                    out.push( [ i+'-1', i+'-2', i+'-3', i+'-4', i+'-5' ] );\n                }\n     \n                setTimeout( function () {\n                    callback( {\n                        draw: data.draw,\n                        data: out,\n                        recordsTotal: 5000000,\n                        recordsFiltered: 5000000\n                    } );\n                }, 50 );\n            },\n            scrollY: 400,\n            scroller: {\n                loadingIndicator: true\n            },\n\n            \"dom\": \"<'row' <'col-md-12'B>><'table-scrollable't><'row'<'col-md-12'i>>\"\n        });\n    }\n\n    var initTable3 = function () {\n        var table = $('#sample_3');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            scrollY:        300,\n            deferRender:    true,\n            scroller:       true,\n            deferRender:    true,\n            scrollX:        true,\n            scrollCollapse: true,        \n\n            stateSave:      true,\n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [10, 15, 20, -1],\n                [10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    var initTable4 = function () {\n        var table = $('#sample_4');\n\n        var oTable = table.dataTable({\n\n            // Internationalisation. For more info refer to http://datatables.net/manual/i18n\n            \"language\": {\n                \"aria\": {\n                    \"sortAscending\": \": activate to sort column ascending\",\n                    \"sortDescending\": \": activate to sort column descending\"\n                },\n                \"emptyTable\": \"No data available in table\",\n                \"info\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\n                \"infoEmpty\": \"No entries found\",\n                \"infoFiltered\": \"(filtered1 from _MAX_ total entries)\",\n                \"lengthMenu\": \"_MENU_ entries\",\n                \"search\": \"Search:\",\n                \"zeroRecords\": \"No matching records found\"\n            },\n\n            // Or you can use remote translation file\n            //\"language\": {\n            //   url: '//cdn.datatables.net/plug-ins/3cfcc339e89/i18n/Portuguese.json'\n            //},\n\n            // setup buttons extension: http://datatables.net/extensions/buttons/\n            buttons: [\n                { extend: 'print', className: 'btn dark btn-outline' },\n                { extend: 'pdf', className: 'btn green btn-outline' },\n                { extend: 'csv', className: 'btn purple btn-outline ' }\n            ],\n\n            // scroller extension: http://datatables.net/extensions/scroller/\n            scrollY:        300,\n            deferRender:    true,\n            scroller:       true,\n            deferRender:    true,\n            scrollX:        true,\n            scrollCollapse: true,      \n\n            \"order\": [\n                [0, 'asc']\n            ],\n            \n            \"lengthMenu\": [\n                [10, 15, 20, -1],\n                [10, 15, 20, \"All\"] // change per page values here\n            ],\n            // set the initial value\n            \"pageLength\": 10,\n\n            \"dom\": \"<'row' <'col-md-12'B>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r><'table-scrollable't><'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\", // horizobtal scrollable datatable\n\n            // Uncomment below line(\"dom\" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout\n            // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js). \n            // So when dropdowns used the scrollable div should be removed. \n            //\"dom\": \"<'row' <'col-md-12'T>><'row'<'col-md-6 col-sm-12'l><'col-md-6 col-sm-12'f>r>t<'row'<'col-md-5 col-sm-12'i><'col-md-7 col-sm-12'p>>\",\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            if (!jQuery().dataTable) {\n                return;\n            }\n\n            initTable1();\n            initTable2();\n            initTable3();\n            initTable4();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    TableDatatablesScroller.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/tasks.js",
    "content": "var AppTask = function () {\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\t\t\t$('.task-list input[type=\"checkbox\"]').change(function() {\n\t\t\t\tif ($(this).is(':checked')) { \n\t\t\t\t\t$(this).parents('li').addClass(\"task-done\"); \n\t\t\t\t} else { \n\t\t\t\t\t$(this).parents('li').removeClass(\"task-done\"); \n\t\t\t\t}\n\t\t\t}); \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTask.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/timeline-2.js",
    "content": "var AppTimeline2 = function () {\n\n    var mapPolygone = function () {\n        var map = new GMaps({\n            div: '#gmap_polygons',\n            lat: -12.043333,\n            lng: -77.028333\n        });\n\n        var path = [\n            [-12.040397656836609, -77.03373871559225],\n            [-12.040248585302038, -77.03993927003302],\n            [-12.050047116528843, -77.02448169303511],\n            [-12.044804866577001, -77.02154422636042]\n        ];\n\n        var polygon = map.drawPolygon({\n            paths: path,\n            strokeColor: '#BBD8E9',\n            strokeOpacity: 1,\n            strokeWeight: 3,\n            fillColor: '#BBD8E9',\n            fillOpacity: 0.6\n        });\n    }\n\n    return {\n        //main function to initiate map samples\n        init: function () {\n            mapPolygone();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTimeline2.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/timeline.js",
    "content": "var AppTimeline = function () {\n\n    var mapPolygone = function () {\n        var map = new GMaps({\n            div: '#gmap_polygons',\n            lat: -12.043333,\n            lng: -77.028333\n        });\n\n        var path = [\n            [-12.040397656836609, -77.03373871559225],\n            [-12.040248585302038, -77.03993927003302],\n            [-12.050047116528843, -77.02448169303511],\n            [-12.044804866577001, -77.02154422636042]\n        ];\n\n        var polygon = map.drawPolygon({\n            paths: path,\n            strokeColor: '#BBD8E9',\n            strokeOpacity: 1,\n            strokeWeight: 3,\n            fillColor: '#BBD8E9',\n            fillOpacity: 0.6\n        });\n    }\n\n    return {\n        //main function to initiate map samples\n        init: function () {\n            mapPolygone();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {\n    AppTimeline.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-alerts-api.js",
    "content": "var UIAlertsApi = function () {\n\n    var handleDemo = function() {        \n        $('#alert_show').click(function(){\n            App.alert({\n                container: $('#alert_container').val(), // alerts parent container(by default placed after the page breadcrumbs)\n                place: $('#alert_place').val(), // append or prepent in container \n                type: $('#alert_type').val(),  // alert's type\n                message: $('#alert_message').val(),  // alert's message\n                close: $('#alert_close').is(\":checked\"), // make alert closable\n                reset: $('#alert_reset').is(\":checked\"), // close all previouse alerts first\n                focus: $('#alert_focus').is(\":checked\"), // auto scroll to the alert after shown\n                closeInSeconds: $('#alert_close_in_seconds').val(), // auto close after defined seconds\n                icon: $('#alert_icon').val() // put icon before the message\n            });\n        });\n    }\n\n    var handleCode = function() {\n        var myTextArea = document.getElementById('code_editor_demo');\n        var myCodeMirror = CodeMirror.fromTextArea(myTextArea, {\n            lineNumbers: true,\n            matchBrackets: true,\n            styleActiveLine: true,\n            mode: 'javascript',\n            smartIndent: true,\n            indentWithTabs: true,\n            readOnly: true,\n            inputStyle: 'textarea',\n            theme: 'neo'\n        });\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            handleDemo();\n            handleCode();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIAlertsApi.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-blockui.js",
    "content": "var UIBlockUI = function() {\n\n    var handleSample1 = function() {\n\n        $('#blockui_sample_1_1').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_1_portlet_body'\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_1_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_1_2').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_1_portlet_body',\n                boxed: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_1_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_1_3').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_1_portlet_body',\n                animate: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_1_portlet_body');\n            }, 2000);\n        });\n    }\n\n    var handleSample2 = function() {\n\n        $('#blockui_sample_2_1').click(function() {\n            App.blockUI();\n\n            window.setTimeout(function() {\n                App.unblockUI();\n            }, 2000);\n        });\n\n        $('#blockui_sample_2_2').click(function() {\n            App.blockUI({\n                boxed: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI();\n            }, 2000);\n        });\n\n        $('#blockui_sample_2_3').click(function() {\n            App.startPageLoading({message: 'Please wait...'});\n\n            window.setTimeout(function() {\n                App.stopPageLoading();\n            }, 2000);\n        });\n\n        $('#blockui_sample_2_4').click(function() {\n            App.startPageLoading({animate: true});\n\n            window.setTimeout(function() {\n                App.stopPageLoading();\n            }, 2000);\n        });\n    }\n\n    var handleSample3 = function() {\n\n        $('#blockui_sample_3_1_0').click(function() {\n            App.blockUI({\n                target: '#basic',\n                overlayColor: 'none',\n                cenrerY: true,\n                animate: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#basic');\n            }, 2000);\n        });\n\n        $('#blockui_sample_3_1').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_3_1_element',\n                overlayColor: 'none',\n                animate: true\n            });\n        });\n\n        $('#blockui_sample_3_1_1').click(function() {\n            App.unblockUI('#blockui_sample_3_1_element');\n        });\n\n        $('#blockui_sample_3_2').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_3_2_element',\n                boxed: true\n            });\n        });\n\n        $('#blockui_sample_3_2_1').click(function() {\n            App.unblockUI('#blockui_sample_3_2_element');\n        });\n    }\n\n    var handleSample4 = function() {\n\n        $('#blockui_sample_4_1').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_4_portlet_body',\n                boxed: true,\n                message: 'Processing...'\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_4_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_4_2').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_4_portlet_body',\n                iconOnly: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_4_portlet_body');\n            }, 2000);\n        });\n\n        $('#blockui_sample_4_3').click(function() {\n            App.blockUI({\n                target: '#blockui_sample_4_portlet_body',\n                boxed: true,\n                textOnly: true\n            });\n\n            window.setTimeout(function() {\n                App.unblockUI('#blockui_sample_4_portlet_body');\n            }, 2000);\n        });\n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function() {\n\n            handleSample1();\n            handleSample2();\n            handleSample3();\n            handleSample4();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIBlockUI.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-bootbox.js",
    "content": "var UIBootbox = function () {\n\n    var handleDemo = function() {\n\n        $('#demo_1').click(function(){\n                bootbox.alert(\"Hello world!\");    \n            });\n            //end #demo_1\n\n            $('#demo_2').click(function(){\n                bootbox.alert(\"Hello world!\", function() {\n                    alert(\"Hello world callback\");\n                });  \n            });\n            //end #demo_2\n        \n            $('#demo_3').click(function(){\n                bootbox.confirm(\"Are you sure?\", function(result) {\n                   alert(\"Confirm result: \"+result);\n                }); \n            });\n            //end #demo_3\n\n            $('#demo_4').click(function(){\n                bootbox.prompt(\"What is your name?\", function(result) {\n                    if (result === null) {\n                        alert(\"Prompt dismissed\");\n                    } else {\n                        alert(\"Hi <b>\"+result+\"</b>\");\n                    }\n                });\n            });\n            //end #demo_6\n\n            $('#demo_5').click(function(){\n                bootbox.dialog({\n                    message: \"I am a custom dialog\",\n                    title: \"Custom title\",\n                    buttons: {\n                      success: {\n                        label: \"Success!\",\n                        className: \"green\",\n                        callback: function() {\n                          alert(\"great success\");\n                        }\n                      },\n                      danger: {\n                        label: \"Danger!\",\n                        className: \"red\",\n                        callback: function() {\n                          alert(\"uh oh, look out!\");\n                        }\n                      },\n                      main: {\n                        label: \"Click ME!\",\n                        className: \"blue\",\n                        callback: function() {\n                          alert(\"Primary button\");\n                        }\n                      }\n                    }\n                });\n            });\n            //end #demo_7\n\n    }\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n            handleDemo();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIBootbox.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-bootstrap-growl.js",
    "content": "var UIBootstrapGrowl = function() {\n\n    return {\n        //main function to initiate the module\n        init: function() {\n\n\n            $('#bs_growl_show').click(function(event) {\n\n                $.bootstrapGrowl($('#growl_text').val(), {\n                    ele: 'body', // which element to append to\n                    type: $('#growl_type').val(), // (null, 'info', 'danger', 'success', 'warning')\n                    offset: {\n                        from: $('#growl_offset').val(),\n                        amount: parseInt($('#growl_offset_val').val())\n                    }, // 'top', or 'bottom'\n                    align: $('#growl_align').val(), // ('left', 'right', or 'center')\n                    width: parseInt($('#growl_width')), // (integer, or 'auto')\n                    delay: $('#growl_delay').val(), // Time while the message will be displayed. It's not equivalent to the *demo* timeOut!\n                    allow_dismiss: $('#glowl_dismiss').is(\":checked\"), // If true then will display a cross to close the popup.\n                    stackup_spacing: 10 // spacing between consecutively stacked growls.\n                });\n\n            });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIBootstrapGrowl.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-buttons.js",
    "content": "var UIButtons = function () {\n\n    var handleButtons = function () {\n        $('.demo-loading-btn').click(function () {\n            var btn = $(this)\n            btn.button('loading')\n            setTimeout(function () {\n                btn.button('reset')\n            }, 3000)\n        });\n\n        Ladda.bind( '.mt-ladda-btn', { timeout: 2000 } );\n        Ladda.bind( '.mt-ladda-btn.mt-progress-demo ', {\n                callback: function( instance ) {\n                    var progress = 0;\n                    var interval = setInterval( function() {\n                        progress = Math.min( progress + Math.random() * 0.1, 1 );\n                        instance.setProgress( progress );\n\n                        if( progress === 1 ) {\n                            instance.stop();\n                            clearInterval( interval );\n                        }\n                    }, 200 );\n                }\n            } );\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleButtons();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIButtons.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-confirmations.js",
    "content": "var UIConfirmations = function () {\n\n    var handleSample = function () {\n        \n        $('#bs_confirmation_demo_1').on('confirmed.bs.confirmation', function () {\n            alert('You confirmed action #1');\n        });\n\n        $('#bs_confirmation_demo_1').on('canceled.bs.confirmation', function () {\n            alert('You canceled action #1');\n        });   \n\n        $('#bs_confirmation_demo_2').on('confirmed.bs.confirmation', function () {\n            alert('You confirmed action #2');\n        });\n\n        $('#bs_confirmation_demo_2').on('canceled.bs.confirmation', function () {\n            alert('You canceled action #2');\n        });\n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n           handleSample();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIConfirmations.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-datepaginator.js",
    "content": "var UIDatepaginator = function () {\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            //sample #1\n            $('#datepaginator_sample_1').datepaginator();\n\n            //sample #2\n            $('#datepaginator_sample_2').datepaginator({\n                size: \"large\"\n            });\n\n            //sample #3\n            $('#datepaginator_sample_3').datepaginator({\n                size: \"small\"\n            });\n\n            //sample #3\n            $('#datepaginator_sample_4').datepaginator({\n                onSelectedDateChanged: function(event, date) {\n                  alert(\"Selected date: \" + moment(date).format(\"Do, MMM YYYY\"));\n                }\n            });\n            \n        } // end init\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIDatepaginator.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-extended-modals.js",
    "content": "var UIExtendedModals = function () {\n\n    \n    return {\n        //main function to initiate the module\n        init: function () {\n        \n            // general settings\n            $.fn.modal.defaults.spinner = $.fn.modalmanager.defaults.spinner = \n              '<div class=\"loading-spinner\" style=\"width: 200px; margin-left: -100px;\">' +\n                '<div class=\"progress progress-striped active\">' +\n                  '<div class=\"progress-bar\" style=\"width: 100%;\"></div>' +\n                '</div>' +\n              '</div>';\n\n            $.fn.modalmanager.defaults.resize = true;\n\n            //dynamic demo:\n            $('.dynamic .demo').click(function(){\n              var tmpl = [\n                // tabindex is required for focus\n                '<div class=\"modal hide fade\" tabindex=\"-1\">',\n                  '<div class=\"modal-header\">',\n                    '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">×</button>',\n                    '<h4 class=\"modal-title\">Modal header</h4>', \n                  '</div>',\n                  '<div class=\"modal-body\">',\n                    '<p>Test</p>',\n                  '</div>',\n                  '<div class=\"modal-footer\">',\n                    '<a href=\"#\" data-dismiss=\"modal\" class=\"btn btn-default\">Close</a>',\n                    '<a href=\"#\" class=\"btn btn-primary\">Save changes</a>',\n                  '</div>',\n                '</div>'\n              ].join('');\n              \n              $(tmpl).modal();\n            });\n\n            //ajax demo:\n            var $modal = $('#ajax-modal');\n\n            $('#ajax-demo').on('click', function(){\n              // create the backdrop and wait for next modal to be triggered\n              $('body').modalmanager('loading');\n              var el = $(this);\n\n              setTimeout(function(){\n                  $modal.load(el.attr('data-url'), '', function(){\n                  $modal.modal();\n                });\n              }, 1000);\n            });\n\n            $modal.on('click', '.update', function(){\n              $modal.modal('loading');\n              setTimeout(function(){\n                $modal\n                  .modal('loading')\n                  .find('.modal-body')\n                    .prepend('<div class=\"alert alert-info fade in\">' +\n                      'Updated!<button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>' +\n                    '</div>');\n              }, 1000);\n            });\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {   alert(123);\n   UIExtendedModals.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-general.js",
    "content": "var UIGeneral = function () {\n\n    var handlePulsate = function () {\n        if (!jQuery().pulsate) {\n            return;\n        }\n\n        if (App.isIE8() == true) {\n            return; // pulsate plugin does not support IE8 and below\n        }\n\n        if (jQuery().pulsate) {\n            jQuery('#pulsate-regular').pulsate({\n                color: \"#bf1c56\"\n            });\n\n            jQuery('#pulsate-once').click(function () {\n                $('#pulsate-once-target').pulsate({\n                    color: \"#399bc3\",\n                    repeat: false\n                });\n            });\n\n            jQuery('#pulsate-crazy').click(function () {\n                $('#pulsate-crazy-target').pulsate({\n                    color: \"#fdbe41\",\n                    reach: 50,\n                    repeat: 10,\n                    speed: 100,\n                    glow: true\n                });\n            });\n        }\n    }\n\n    var handleDynamicPagination = function() {\n        $('#dynamic_pager_demo1').bootpag({\n            paginationClass: 'pagination',\n            next: '<i class=\"fa fa-angle-right\"></i>',\n            prev: '<i class=\"fa fa-angle-left\"></i>',\n            total: 6,\n            page: 1,\n        }).on(\"page\", function(event, num){\n            $(\"#dynamic_pager_content1\").html(\"Page \" + num + \" content here\"); // or some ajax content loading...\n        });\n\n        $('#dynamic_pager_demo2').bootpag({\n            paginationClass: 'pagination pagination-sm',\n            next: '<i class=\"fa fa-angle-right\"></i>',\n            prev: '<i class=\"fa fa-angle-left\"></i>',\n            total: 24,\n            page: 1,\n            maxVisible: 6 \n        }).on('page', function(event, num){\n            $(\"#dynamic_pager_content2\").html(\"Page \" + num + \" content here\"); // or some ajax content loading...\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handlePulsate();\n            handleDynamicPagination();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIGeneral.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-idletimeout.js",
    "content": "var UIIdleTimeout = function () {\n\n    return {\n\n        //main function to initiate the module\n        init: function () {\n\n            // cache a reference to the countdown element so we don't have to query the DOM for it on each ping.\n            var $countdown;\n\n            $('body').append('');\n                    \n            // start the idle timer plugin\n            $.idleTimeout('#idle-timeout-dialog', '.modal-content button:last', {\n                idleAfter: 5, // 5 seconds\n                timeout: 30000, //30 seconds to timeout\n                pollingInterval: 5, // 5 seconds\n                keepAliveURL: '../demo/idletimeout_keepalive.php',\n                serverResponseEquals: 'OK',\n                onTimeout: function(){\n                    window.location = \"?p=page_user_lock_1\";\n                },\n                onIdle: function(){\n                    $('#idle-timeout-dialog').modal('show');\n                    $countdown = $('#idle-timeout-counter');\n\n                    $('#idle-timeout-dialog-keepalive').on('click', function () { \n                        $('#idle-timeout-dialog').modal('hide');\n                    });\n\n                    $('#idle-timeout-dialog-logout').on('click', function () { \n                        $('#idle-timeout-dialog').modal('hide');\n                        $.idleTimeout.options.onTimeout.call(this);\n                    });\n                },\n                onCountdown: function(counter){\n                    $countdown.html(counter); // update the counter\n                }\n            });\n            \n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIIdleTimeout.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-modals.js",
    "content": "var UIModals = function () {\n\n    var handleModals = function () {\n        $(\"#draggable\").draggable({\n            handle: \".modal-header\"\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handleModals();\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIModals.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-nestable.js",
    "content": "var UINestable = function () {\n\n    var updateOutput = function (e) {\n        var list = e.length ? e : $(e.target),\n            output = list.data('output');\n        if (window.JSON) {\n            output.val(window.JSON.stringify(list.nestable('serialize'))); //, null, 2));\n        } else {\n            output.val('JSON browser support required for this demo.');\n        }\n    };\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            // activate Nestable for list 1\n            $('#nestable_list_1').nestable({\n                group: 1\n            })\n                .on('change', updateOutput);\n\n            // activate Nestable for list 2\n            $('#nestable_list_2').nestable({\n                group: 1\n            })\n                .on('change', updateOutput);\n\n            // output initial serialised data\n            updateOutput($('#nestable_list_1').data('output', $('#nestable_list_1_output')));\n            updateOutput($('#nestable_list_2').data('output', $('#nestable_list_2_output')));\n\n            $('#nestable_list_menu').on('click', function (e) {\n                var target = $(e.target),\n                    action = target.data('action');\n                if (action === 'expand-all') {\n                    $('.dd').nestable('expandAll');\n                }\n                if (action === 'collapse-all') {\n                    $('.dd').nestable('collapseAll');\n                }\n            });\n\n            $('#nestable_list_3').nestable();\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UINestable.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-notific8.js",
    "content": "var UINotific8 = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            \n                    $('#notific8_show').click(function(event) {\n                        var settings = {\n                                theme: $('#notific8_theme').val(),\n                                sticky: $('#notific8_sticky').is(':checked'),\n                                horizontalEdge: $('#notific8_pos_hor').val(),\n                                verticalEdge: $('#notific8_pos_ver').val()\n                            },\n                            $button = $(this);\n                        \n                        if ($.trim($('#notific8_heading').val()) != '') {\n                            settings.heading = $.trim($('#notific8_heading').val());\n                        }\n                        \n                        if (!settings.sticky) {\n                            settings.life = $('#notific8_life').val();\n                        }\n\n                        $.notific8('zindex', 11500);\n                        $.notific8($.trim($('#notific8_text').val()), settings);\n                        \n                        $button.attr('disabled', 'disabled');\n                        \n                        setTimeout(function() {\n                            $button.removeAttr('disabled');\n                        }, 1000);\n\n                    });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UINotific8.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-session-timeout.js",
    "content": "var SessionTimeout = function () {\n\n    var handlesessionTimeout = function () {\n        $.sessionTimeout({\n            title: 'Session Timeout Notification',\n            message: 'Your session is about to expire.',\n            keepAliveUrl: '../demo/timeout-keep-alive.php',\n            redirUrl: 'page_user_lock_1.html',\n            logoutUrl: 'page_user_login_1.html',\n            warnAfter: 5000, //warn after 5 seconds\n            redirAfter: 15000, //redirect after 10 secons,\n            ignoreUserActivity: true,\n            countdownMessage: 'Redirecting in {timer} seconds.',\n            countdownBar: true\n        });\n    }\n\n    return {\n        //main function to initiate the module\n        init: function () {\n            handlesessionTimeout();\n        }\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   SessionTimeout.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-sweetalert.js",
    "content": "var SweetAlert = function () {\n\t\n\tvar setSweetAlertEvents = function() {\n\t\t$('.mt-sweetalert').each(function(){\n    \t\tvar sa_title = $(this).data('title');\n    \t\tvar sa_message = $(this).data('message');\n    \t\tvar sa_type = $(this).data('type');\t\n    \t\tvar sa_allowOutsideClick = $(this).data('allow-outside-click');\n    \t\tvar sa_showConfirmButton = $(this).data('show-confirm-button');\n    \t\tvar sa_showCancelButton = $(this).data('show-cancel-button');\n    \t\tvar sa_closeOnConfirm = $(this).data('close-on-confirm');\n    \t\tvar sa_closeOnCancel = $(this).data('close-on-cancel');\n    \t\tvar sa_confirmButtonText = $(this).data('confirm-button-text');\n    \t\tvar sa_cancelButtonText = $(this).data('cancel-button-text');\n    \t\tvar sa_popupTitleSuccess = $(this).data('popup-title-success');\n    \t\tvar sa_popupMessageSuccess = $(this).data('popup-message-success');\n    \t\tvar sa_popupTitleCancel = $(this).data('popup-title-cancel');\n    \t\tvar sa_popupMessageCancel = $(this).data('popup-message-cancel');\n    \t\tvar sa_confirmButtonClass = $(this).data('confirm-button-class');\n    \t\tvar sa_cancelButtonClass = $(this).data('cancel-button-class');\n    \t\n    \t\t$(this).click(function(){\n    \t\t\t//console.log(sa_btnClass);\n    \t\t\tswal({\n\t\t\t\t  title: sa_title,\n\t\t\t\t  text: sa_message,\n\t\t\t\t  type: sa_type,\n\t\t\t\t  allowOutsideClick: sa_allowOutsideClick,\n\t\t\t\t  showConfirmButton: sa_showConfirmButton,\n\t\t\t\t  showCancelButton: sa_showCancelButton,\n\t\t\t\t  confirmButtonClass: sa_confirmButtonClass,\n\t\t\t\t  cancelButtonClass: sa_cancelButtonClass,\n\t\t\t\t  closeOnConfirm: sa_closeOnConfirm,\n\t\t\t\t  closeOnCancel: sa_closeOnCancel,\n\t\t\t\t  confirmButtonText: sa_confirmButtonText,\n\t\t\t\t  cancelButtonText: sa_cancelButtonText,\n\t\t\t\t},\n\t\t\t\tfunction(isConfirm){\n\t\t\t        if (isConfirm){\n\t\t\t        \tswal(sa_popupTitleSuccess, sa_popupMessageSuccess, \"success\");\n\t\t\t        } else {\n\t\t\t\t\t\tswal(sa_popupTitleCancel, sa_popupMessageCancel, \"error\");\n\t\t\t        }\n\t\t\t\t});\n    \t\t});\n    \t});\n\t}\n\n    return {\n        //main function to initiate the module\n        init: function () {\n        \tsetSweetAlertEvents();\n//        \tvvv();\n    \t},\n    \t\n    \tsuccess: function (msg){\n    \t\tswal({\n  \t\t\t  title: \"成功\",\n  \t\t\t  text: msg,\n  \t\t\t  type: \"success\",\n  \t\t\t  confirmButtonClass: \"btn-success\"\n  \t\t\t});\n    \t},\n    \t\n    \tinfo: function (msg){\n    \t\tswal({\n  \t\t\t  title: \"消息\",\n  \t\t\t  text: msg,\n  \t\t\t  type: \"info\",\n  \t\t\t  confirmButtonClass: \"btn-info \"\n  \t\t\t});\n    \t},\n    \t\n    \twarning: function (msg){\n    \t\tswal({\n  \t\t\t  title: \"提醒\",\n  \t\t\t  text: msg,\n  \t\t\t  type: \"warning\",\n  \t\t\t  confirmButtonClass: \"btn-warning \"\n  \t\t\t});\n    \t},\n    \t\n    \terror: function (msg){\n    \t\tswal({\n    \t\t\t  title: \"失败\",\n    \t\t\t  text: msg,\n    \t\t\t  type: \"error\",\n    \t\t\t  confirmButtonClass: \"btn-danger\"\n    \t\t\t});\n    \t},\n    \t\n    \terrorSessionExpire: function (){\n    \t\tswal({\n    \t\t\t  title: \"失败\",\n    \t\t\t  text: \"您的登录信息已过期，请重新登录\",\n    \t\t\t  type: \"error\",\n    \t\t\t  confirmButtonClass: \"btn-danger\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/login.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tuserRegistSuccess: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"注册成功\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/center.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tuserResetPwdSuccess: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"新密码重置成功，请重新登录...\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/login.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tuserFaceImageUploadSuccess: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"图片上传成功\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/center.action\";\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \tresetPwdToLogin: function (){\n    \t\tswal({\n    \t\t\t  title: \"成功\",\n    \t\t\t  text: \"密码重置成功！请重新登录.\",\n    \t\t\t  type: \"success\",\n    \t\t\t  confirmButtonClass: \"btn-success\"\n          \t}, function(isConfirm) {\n    \t\t\t\tif (isConfirm) {\n    \t\t\t\t\twindow.location.reload();\n    \t\t\t\t}\n    \t\t\t});\n    \t},\n    \t\n    \t// 门户页面上的部分功能需要登录才可以继续\n    \tuNeedLogin: function (url){\n    \t\tswal({\n  \t\t\t  title: \"\",\n  \t\t\t  text: \"请登录后操作\",\n  \t\t\t  type: \"info\",\n  \t\t\t  confirmButtonClass: \"btn-info\"\n        \t}, function(isConfirm) {\n  \t\t\t\tif (isConfirm) {\n  \t\t\t\t\twindow.location = $(\"#hdnContextPath\").val() + \"/login.action?redirectUrl=\" + url;\n  \t\t\t\t}\n  \t\t\t});\n    \t}\n    \t\n    }\n\n}();\n\njQuery(document).ready(function() {\n    SweetAlert.init();\n});\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-toastr.js",
    "content": "var UIToastr = function () {\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            var i = -1,\n                toastCount = 0,\n                $toastlast,\n                getMessage = function () {\n                    var msgs = ['Hello, some notification sample goes here',\n                        '<div><input class=\"form-control input-small\" value=\"textbox\"/>&nbsp;<a href=\"http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469?ref=keenthemes\" target=\"_blank\">Check this out</a></div><div><button type=\"button\" id=\"okBtn\" class=\"btn blue\">Close me</button><button type=\"button\" id=\"surpriseBtn\" class=\"btn default\" style=\"margin: 0 8px 0 8px\">Surprise me</button></div>',\n                        'Did you like this one ? :)',\n                        'Totally Awesome!!!',\n                        'Yeah, this is the Metronic!',\n                        'Explore the power of App. Purchase it now!'\n                    ];\n                    i++;\n                    if (i === msgs.length) {\n                        i = 0;\n                    }\n\n                    return msgs[i];\n                };\n\n            $('#showtoast').click(function () {\n                var shortCutFunction = $(\"#toastTypeGroup input:checked\").val();\n                var msg = $('#message').val();\n                var title = $('#title').val() || '';\n                var $showDuration = $('#showDuration');\n                var $hideDuration = $('#hideDuration');\n                var $timeOut = $('#timeOut');\n                var $extendedTimeOut = $('#extendedTimeOut');\n                var $showEasing = $('#showEasing');\n                var $hideEasing = $('#hideEasing');\n                var $showMethod = $('#showMethod');\n                var $hideMethod = $('#hideMethod');\n                var toastIndex = toastCount++;\n\n                toastr.options = {\n                    closeButton: $('#closeButton').prop('checked'),\n                    debug: $('#debugInfo').prop('checked'),\n                    positionClass: $('#positionGroup input:checked').val() || 'toast-top-right',\n                    onclick: null\n                };\n\n                if ($('#addBehaviorOnToastClick').prop('checked')) {\n                    toastr.options.onclick = function () {\n                        alert('You can perform some custom action after a toast goes away');\n                    };\n                }\n\n                if ($showDuration.val().length) {\n                    toastr.options.showDuration = $showDuration.val();\n                }\n\n                if ($hideDuration.val().length) {\n                    toastr.options.hideDuration = $hideDuration.val();\n                }\n\n                if ($timeOut.val().length) {\n                    toastr.options.timeOut = $timeOut.val();\n                }\n\n                if ($extendedTimeOut.val().length) {\n                    toastr.options.extendedTimeOut = $extendedTimeOut.val();\n                }\n\n                if ($showEasing.val().length) {\n                    toastr.options.showEasing = $showEasing.val();\n                }\n\n                if ($hideEasing.val().length) {\n                    toastr.options.hideEasing = $hideEasing.val();\n                }\n\n                if ($showMethod.val().length) {\n                    toastr.options.showMethod = $showMethod.val();\n                }\n\n                if ($hideMethod.val().length) {\n                    toastr.options.hideMethod = $hideMethod.val();\n                }\n\n                if (!msg) {\n                    msg = getMessage();\n                }\n\n                $(\"#toastrOptions\").text(\"Command: toastr[\" + shortCutFunction + \"](\\\"\" + msg + (title ? \"\\\", \\\"\" + title : '') + \"\\\")\\n\\ntoastr.options = \" + JSON.stringify(toastr.options, null, 2));\n\n                var $toast = toastr[shortCutFunction](msg, title); // Wire up an event handler to a button in the toast, if it exists\n                $toastlast = $toast;\n                if ($toast.find('#okBtn').length) {\n                    $toast.delegate('#okBtn', 'click', function () {\n                        alert('you clicked me. i was toast #' + toastIndex + '. goodbye!');\n                        $toast.remove();\n                    });\n                }\n                if ($toast.find('#surpriseBtn').length) {\n                    $toast.delegate('#surpriseBtn', 'click', function () {\n                        alert('Surprise! you clicked me. i was toast #' + toastIndex + '. You could perform an action here.');\n                    });\n                }\n\n                $('#clearlasttoast').click(function () {\n                    toastr.clear($toastlast);\n                });\n            });\n            $('#cleartoasts').click(function () {\n                toastr.clear();\n            });\n\n        }\n\n    };\n\n}();\n\njQuery(document).ready(function() {    \n   UIToastr.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/ui-tree.js",
    "content": "var UITree = function () {\n\n    var handleSample1 = function () {\n\n        $('#tree_1').jstree({\n            \"core\" : {\n                \"themes\" : {\n                    \"responsive\": false\n                }            \n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            },\n            \"plugins\": [\"types\"]\n        });\n\n        // handle link clicks in tree nodes(support target=\"_blank\" as well)\n        $('#tree_1').on('select_node.jstree', function(e,data) { \n            var link = $('#' + data.selected).find('a');\n            if (link.attr(\"href\") != \"#\" && link.attr(\"href\") != \"javascript:;\" && link.attr(\"href\") != \"\") {\n                if (link.attr(\"target\") == \"_blank\") {\n                    link.attr(\"href\").target = \"_blank\";\n                }\n                document.location.href = link.attr(\"href\");\n                return false;\n            }\n        });\n    }\n\n    var handleSample2 = function () {\n        $('#tree_2').jstree({\n            'plugins': [\"wholerow\", \"checkbox\", \"types\"],\n            'core': {\n                \"themes\" : {\n                    \"responsive\": false\n                },    \n                'data': [{\n                        \"text\": \"Same but with checkboxes\",\n                        \"children\": [{\n                            \"text\": \"initially selected\",\n                            \"state\": {\n                                \"selected\": true\n                            }\n                        }, {\n                            \"text\": \"custom icon\",\n                            \"icon\": \"fa fa-warning icon-state-danger\"\n                        }, {\n                            \"text\": \"initially open\",\n                            \"icon\" : \"fa fa-folder icon-state-default\",\n                            \"state\": {\n                                \"opened\": true\n                            },\n                            \"children\": [\"Another node\"]\n                        }, {\n                            \"text\": \"custom icon\",\n                            \"icon\": \"fa fa-warning icon-state-warning\"\n                        }, {\n                            \"text\": \"disabled node\",\n                            \"icon\": \"fa fa-check icon-state-success\",\n                            \"state\": {\n                                \"disabled\": true\n                            }\n                        }]\n                    },\n                    \"And wholerow selection\"\n                ]\n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            }\n        });\n    }\n\n    var contextualMenuSample = function() {\n\n        $(\"#tree_3\").jstree({\n            \"core\" : {\n                \"themes\" : {\n                    \"responsive\": false\n                }, \n                // so that create works\n                \"check_callback\" : true,\n                'data': [{\n                        \"text\": \"Parent Node\",\n                        \"children\": [{\n                            \"text\": \"Initially selected\",\n                            \"state\": {\n                                \"selected\": true\n                            }\n                        }, {\n                            \"text\": \"Custom Icon\",\n                            \"icon\": \"fa fa-warning icon-state-danger\"\n                        }, {\n                            \"text\": \"Initially open\",\n                            \"icon\" : \"fa fa-folder icon-state-success\",\n                            \"state\": {\n                                \"opened\": true\n                            },\n                            \"children\": [\n                                {\"text\": \"Another node\", \"icon\" : \"fa fa-file icon-state-warning\"}\n                            ]\n                        }, {\n                            \"text\": \"Another Custom Icon\",\n                            \"icon\": \"fa fa-warning icon-state-warning\"\n                        }, {\n                            \"text\": \"Disabled Node\",\n                            \"icon\": \"fa fa-check icon-state-success\",\n                            \"state\": {\n                                \"disabled\": true\n                            }\n                        }, {\n                            \"text\": \"Sub Nodes\",\n                            \"icon\": \"fa fa-folder icon-state-danger\",\n                            \"children\": [\n                                {\"text\": \"Item 1\", \"icon\" : \"fa fa-file icon-state-warning\"},\n                                {\"text\": \"Item 2\", \"icon\" : \"fa fa-file icon-state-success\"},\n                                {\"text\": \"Item 3\", \"icon\" : \"fa fa-file icon-state-default\"},\n                                {\"text\": \"Item 4\", \"icon\" : \"fa fa-file icon-state-danger\"},\n                                {\"text\": \"Item 5\", \"icon\" : \"fa fa-file icon-state-info\"}\n                            ]\n                        }]\n                    },\n                    \"Another Node\"\n                ]\n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            },\n            \"state\" : { \"key\" : \"demo2\" },\n            \"plugins\" : [ \"contextmenu\", \"dnd\", \"state\", \"types\" ]\n        });\n    \n    }\n\n     var ajaxTreeSample = function() {\n\n        $(\"#tree_4\").jstree({\n            \"core\" : {\n                \"themes\" : {\n                    \"responsive\": false\n                }, \n                // so that create works\n                \"check_callback\" : true,\n                'data' : {\n                    'url' : function (node) {\n                      return '../demo/jstree_ajax_data.php';\n                    },\n                    'data' : function (node) {\n                      return { 'parent' : node.id };\n                    }\n                }\n            },\n            \"types\" : {\n                \"default\" : {\n                    \"icon\" : \"fa fa-folder icon-state-warning icon-lg\"\n                },\n                \"file\" : {\n                    \"icon\" : \"fa fa-file icon-state-warning icon-lg\"\n                }\n            },\n            \"state\" : { \"key\" : \"demo3\" },\n            \"plugins\" : [ \"dnd\", \"state\", \"types\" ]\n        });\n    \n    }\n\n\n    return {\n        //main function to initiate the module\n        init: function () {\n\n            handleSample1();\n            handleSample2();\n            contextualMenuSample();\n            ajaxTreeSample();\n\n        }\n\n    };\n\n}();\n\nif (App.isAngularJsApp() === false) {\n    jQuery(document).ready(function() {    \n       UITree.init();\n    });\n}"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/kkvideo-admin-web/static/pages/scripts/widgets.js",
    "content": "var Widgets = function () {\n\n\tvar handleMapplic = function () {\n\t\t$('#mapplic').mapplic({\n\t\t\tsource: '../../assets/global/plugins/mapplic/world.json',\n\t\t\theight: 265,\n\t\t\tanimate: false,\n\t\t\tsidebar: false,\n\t\t\tminimap: false,\n            locations: true,\n\t\t\tdeeplinking: true,\n\t\t\tfullscreen: false,\n\t\t\thovertip: true,\n\t\t\tzoombuttons: false,\n\t\t\tclearbutton: false,\n\t\t\tdeveloper: false,\n\t\t\tmaxscale: 2,\n\t\t\tskin: 'mapplic-dark',\n\t\t\tzoom: true\n\t\t});\n\t}\n\n\tvar handleSparklineChart = function () {\n\t\t$(\"#widget_sparkline_bar\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#4db3a4',\n            negBarColor: '#e02222'\n        });\n        $(\"#widget_sparkline_bar2\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#f36a5a',\n            negBarColor: '#e02222'\n        });\n        $(\"#widget_sparkline_bar3\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#5b9bd1',\n            negBarColor: '#e02222'\n        });\n        $(\"#widget_sparkline_bar4\").sparkline([8, 7, 9, 8.5, 8, 8.2, 8, 8.5, 9, 8, 9], {\n            type: 'bar',\n            width: '100',\n            barWidth: 5,\n            height: '30',\n            barColor: '#9a7caf',\n            negBarColor: '#e02222'\n        });\n\t}\n    \n    var handleCounter = function () {\n        $('.counter').counterUp({\n            delay: 10,\n            time: 1000\n        });\n    }\n\n\treturn {\n\n        // main function\n        init: function () {\n            handleMapplic(); // handle mapplic map\n            handleSparklineChart(); // handle sparkline chart\n            handleCounter(); // handle counter\n        }\n        \n    };\n}();\n\njQuery(document).ready(function() {    \n   Widgets.init();\n});"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/maven-archiver/pom.properties",
    "content": "#Generated by Maven\n#Sun Jun 24 23:05:31 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kkvideo-admin-web\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": "kkvideo\\admin\\controller\\PageController.class\nkkvideo\\admin\\controller\\UserController.class\nkkvideo\\admin\\bean\\AdminUser.class\nkkvideo\\admin\\interceptor\\LoginInterceptor.class\nkkvideo\\admin\\controller\\VideoController.class\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\java\\kkvideo\\admin\\controller\\PageController.java\nE:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\java\\kkvideo\\admin\\controller\\UserController.java\nE:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\java\\kkvideo\\admin\\bean\\AdminUser.java\nE:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\java\\kkvideo\\admin\\controller\\VideoController.java\nE:\\IntelliJIDEAWork\\kkvideo-admin\\kkvideo-admin-web\\src\\main\\java\\kkvideo\\admin\\interceptor\\LoginInterceptor.java\n"
  },
  {
    "path": "kk-video-admin/kkvideo-admin-web/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-admin/kkvideo-admin.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-admin/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.jimisun</groupId>\n    <artifactId>kkvideo-admin</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <modules>\n        <module>kkvideo-admin-common</module>\n        <module>kkvideo-admin-pojo</module>\n        <module>kkvideo-admin-service</module>\n        <module>kkvideo-admin-dao</module>\n        <module>kkvideo-admin-web</module>\n    </modules>\n    <packaging>pom</packaging>\n    <name>kkvideo-admin后台管理系统</name>\n\n    <!-- 集中定义依赖版本号 -->\n    <properties>\n        <spring.version>4.3.8.RELEASE</spring.version>\n        <spring-data-redis.version>1.8.7.RELEASE</spring-data-redis.version>\n        <mybatis.version>3.2.8</mybatis.version>\n        <mybatis.spring.version>1.2.2</mybatis.spring.version>\n        <mybatis.paginator.version>1.2.15</mybatis.paginator.version>\n        <mysql.version>5.1.41</mysql.version>\n        <slf4j.version>1.7.21</slf4j.version>\n        <jackson.version>2.7.4</jackson.version>\n        <!-- 连接池 阿里巴巴数据源 全世界最牛逼的data source 没有之一 -->\n        <druid.version>1.1.0</druid.version>\n        <httpclient.version>4.3.5</httpclient.version>\n        <commons.httpclient.version>3.1</commons.httpclient.version>\n        <jstl.version>1.2</jstl.version>\n        <servlet-api.version>2.5</servlet-api.version>\n        <jsp-api.version>2.0</jsp-api.version>\n        <joda-time.version>2.5</joda-time.version>\n        <commons-lang3.version>3.3.2</commons-lang3.version>\n        <commons-io.version>1.3.2</commons-io.version>\n        <commons-net.version>3.3</commons-net.version>\n        <pagehelper.version>4.1.3</pagehelper.version>\n        <commons-fileupload.version>1.3.1</commons-fileupload.version>\n        <jedis.version>2.9.0</jedis.version>\n        <apache-commons-pool2>2.4.2</apache-commons-pool2>\n        <log4j.version>1.2.16</log4j.version>\n        <zookeeper.version>3.4.11</zookeeper.version>\n        <curator.version>4.0.0</curator.version>\n    </properties>\n\n    <!-- 只定义依赖的版本，不会实际依赖 -->\n    <dependencyManagement>\n        <dependencies>\n\n            <!-- 时间操作组件 -->\n            <dependency>\n                <groupId>joda-time</groupId>\n                <artifactId>joda-time</artifactId>\n                <version>${joda-time.version}</version>\n            </dependency>\n            <!-- Apache工具组件 -->\n            <dependency>\n                <groupId>org.apache.commons</groupId>\n                <artifactId>commons-lang3</artifactId>\n                <version>${commons-lang3.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.apache.commons</groupId>\n                <artifactId>commons-io</artifactId>\n                <version>${commons-io.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>commons-net</groupId>\n                <artifactId>commons-net</artifactId>\n                <version>${commons-net.version}</version>\n            </dependency>\n            <!-- Jackson Json处理工具包 -->\n            <dependency>\n                <groupId>com.fasterxml.jackson.core</groupId>\n                <artifactId>jackson-databind</artifactId>\n                <version>${jackson.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>com.fasterxml.jackson.core</groupId>\n                <artifactId>jackson-core</artifactId>\n                <version>${jackson.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>com.fasterxml.jackson.core</groupId>\n                <artifactId>jackson-annotations</artifactId>\n                <version>${jackson.version}</version>\n            </dependency>\n            <!-- httpclient -->\n            <dependency>\n                <groupId>org.apache.httpcomponents</groupId>\n                <artifactId>httpclient</artifactId>\n                <version>${httpclient.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>commons-httpclient</groupId>\n                <artifactId>commons-httpclient</artifactId>\n                <version>${commons.httpclient.version}</version>\n            </dependency>\n\n            <!-- Mybatis -->\n            <dependency>\n                <groupId>org.mybatis</groupId>\n                <artifactId>mybatis</artifactId>\n                <version>${mybatis.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.mybatis</groupId>\n                <artifactId>mybatis-spring</artifactId>\n                <version>${mybatis.spring.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>com.github.miemiedev</groupId>\n                <artifactId>mybatis-paginator</artifactId>\n                <version>${mybatis.paginator.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>com.github.pagehelper</groupId>\n                <artifactId>pagehelper</artifactId>\n                <version>${pagehelper.version}</version>\n            </dependency>\n            <!-- MySql -->\n            <dependency>\n                <groupId>mysql</groupId>\n                <artifactId>mysql-connector-java</artifactId>\n                <version>${mysql.version}</version>\n            </dependency>\n\n            <!-- 连接池 阿里巴巴数据源 全世界最牛逼的data source 没有之一 -->\n            <dependency>\n                <groupId>com.alibaba</groupId>\n                <artifactId>druid</artifactId>\n                <version>${druid.version}</version>\n            </dependency>\n            <!-- Spring -->\n            <dependency>\n                <groupId>org.springframework</groupId>\n                <artifactId>spring-core</artifactId>\n                <version>${spring.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.springframework</groupId>\n                <artifactId>spring-context</artifactId>\n                <version>${spring.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.springframework</groupId>\n                <artifactId>spring-context-support</artifactId>\n                <version>${spring.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.springframework</groupId>\n                <artifactId>spring-beans</artifactId>\n                <version>${spring.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.springframework</groupId>\n                <artifactId>spring-webmvc</artifactId>\n                <version>${spring.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.springframework</groupId>\n                <artifactId>spring-jdbc</artifactId>\n                <version>${spring.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.springframework</groupId>\n                <artifactId>spring-aspects</artifactId>\n                <version>${spring.version}</version>\n            </dependency>\n            <!-- JSP相关 -->\n            <dependency>\n                <groupId>jstl</groupId>\n                <artifactId>jstl</artifactId>\n                <version>${jstl.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>javax.servlet</groupId>\n                <artifactId>servlet-api</artifactId>\n                <version>${servlet-api.version}</version>\n                <scope>provided</scope>\n            </dependency>\n            <dependency>\n                <groupId>javax.servlet</groupId>\n                <artifactId>jsp-api</artifactId>\n                <version>${jsp-api.version}</version>\n                <scope>provided</scope>\n            </dependency>\n            <!-- 文件上传组件 -->\n            <dependency>\n                <groupId>commons-fileupload</groupId>\n                <artifactId>commons-fileupload</artifactId>\n                <version>${commons-fileupload.version}</version>\n            </dependency>\n            <!-- Redis客户端 -->\n            <dependency>\n                <groupId>redis.clients</groupId>\n                <artifactId>jedis</artifactId>\n                <version>${jedis.version}</version>\n            </dependency>\n            <!-- 用于jedis-spring-data redisTemplate -->\n            <dependency>\n                <groupId>org.apache.commons</groupId>\n                <artifactId>commons-pool2</artifactId>\n                <version>${apache-commons-pool2}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.springframework.data</groupId>\n                <artifactId>spring-data-redis</artifactId>\n                <version>${spring-data-redis.version}</version>\n            </dependency>\n\n            <!-- 日志处理 -->\n            <dependency>\n                <groupId>org.slf4j</groupId>\n                <artifactId>slf4j-api</artifactId>\n                <version>${slf4j.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>org.slf4j</groupId>\n                <artifactId>slf4j-log4j12</artifactId>\n                <version>${slf4j.version}</version>\n            </dependency>\n\n            <!-- zookeeper -->\n            <dependency>\n                <groupId>org.apache.zookeeper</groupId>\n                <artifactId>zookeeper</artifactId>\n                <version>${zookeeper.version}</version>\n            </dependency>\n\n            <dependency>\n                <groupId>org.apache.curator</groupId>\n                <artifactId>curator-framework</artifactId>\n                <version>${curator.version}</version>\n            </dependency>\n\n            <dependency>\n                <groupId>org.apache.curator</groupId>\n                <artifactId>curator-recipes</artifactId>\n                <version>${curator.version}</version>\n            </dependency>\n        </dependencies>\n\n    </dependencyManagement>\n\n    <build>\n        <finalName>${project.artifactId}</finalName>\n        <plugins>\n            <!-- 资源文件拷贝插件 -->\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-resources-plugin</artifactId>\n                <version>2.7</version>\n                <configuration>\n                    <encoding>UTF-8</encoding>\n                </configuration>\n            </plugin>\n            <!-- java编译插件 -->\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-compiler-plugin</artifactId>\n                <version>3.2</version>\n                <configuration>\n                    <source>1.8</source>\n                    <target>1.8</target>\n                    <encoding>UTF-8</encoding>\n                </configuration>\n            </plugin>\n        </plugins>\n        <pluginManagement>\n            <plugins>\n                <!-- 配置Tomcat插件 -->\n                <plugin>\n                    <groupId>org.apache.tomcat.maven</groupId>\n                    <artifactId>tomcat7-maven-plugin</artifactId>\n                    <version>2.2</version>\n                </plugin>\n            </plugins>\n        </pluginManagement>\n\n    </build>\n\n\n</project>"
  },
  {
    "path": "kk-video-api/kkvideoapi.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-api/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>jimisun.kkvideo</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>war</packaging>\n    <artifactId>kk-video-api</artifactId>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kk-video-service</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>javax.servlet-api</artifactId>\n            <scope>provided</scope>\n        </dependency>\n    </dependencies>\n\n\n\n\n</project>"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/Application.java",
    "content": "package com.kkvideo;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.context.annotation.ComponentScan;\nimport tk.mybatis.spring.annotation.MapperScan;\n\n@SpringBootApplication\n@MapperScan(basePackages = \"com.kkvideo.mapper\")\n@ComponentScan(basePackages = {\"com.kkvideo\", \"org.n3r.idworker\"})\npublic class Application {\n\n    public static void main(String[] args) {\n        SpringApplication.run(Application.class, args);\n    }\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/Swagger2.java",
    "content": "package com.kkvideo;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\nimport springfox.documentation.builders.ApiInfoBuilder;\nimport springfox.documentation.builders.ParameterBuilder;\nimport springfox.documentation.builders.PathSelectors;\nimport springfox.documentation.builders.RequestHandlerSelectors;\nimport springfox.documentation.schema.ModelRef;\nimport springfox.documentation.service.ApiInfo;\nimport springfox.documentation.service.Contact;\nimport springfox.documentation.service.Parameter;\nimport springfox.documentation.spi.DocumentationType;\nimport springfox.documentation.spring.web.plugins.Docket;\nimport springfox.documentation.swagger2.annotations.EnableSwagger2;\n\n@Configuration\n@EnableSwagger2\npublic class Swagger2 {\n\n\t/**\n\t * @Description:swagger2的配置文件，这里可以配置swagger2的一些基本的内容，比如扫描的包等等\n\t */\n\t@Bean\n\tpublic Docket createRestApi() {\n\t\t\n\t\t// 为swagger添加header参数可供输入  \n        ParameterBuilder userTokenHeader = new ParameterBuilder();\n        ParameterBuilder userIdHeader = new ParameterBuilder();\n        List<Parameter> pars = new ArrayList<Parameter>();  \n        userTokenHeader.name(\"headerUserToken\").description(\"userToken\")\n        \t.modelRef(new ModelRef(\"string\")).parameterType(\"header\")\n        \t.required(false).build();  \n        userIdHeader.name(\"headerUserId\").description(\"userId\")\n\t    \t.modelRef(new ModelRef(\"string\")).parameterType(\"header\")\n\t    \t.required(false).build(); \n        pars.add(userTokenHeader.build());\n        pars.add(userIdHeader.build());\n\t\t\n\t\treturn new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()\n\t\t\t\t.apis(RequestHandlerSelectors.basePackage(\"com.kkvideo.controller\"))\n\t\t\t\t.paths(PathSelectors.any()).build()\n\t\t\t\t.globalOperationParameters(pars);\n\t}\n\n\t/**\n\t * @Description: 构建 api文档的信息\n\t */\n\tprivate ApiInfo apiInfo() {\n\t\treturn new ApiInfoBuilder()\n\t\t\t\t// 设置页面标题\n\t\t\t\t.title(\"使用swagger2构建短视频后端api接口文档\")\n\t\t\t\t// 设置联系人\n\t\t\t\t.contact(new Contact(\"jimisun\", \"localhost:8081\", \"jimisun@163.com\"))\n\t\t\t\t// 描述\n\t\t\t\t.description(\"欢迎访问短视频接口文档，这里是描述信息\")\n\t\t\t\t// 定义版本号\n\t\t\t\t.version(\"1.0\").build();\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/WarStartApplication.java",
    "content": "package com.kkvideo;\n\nimport org.springframework.boot.builder.SpringApplicationBuilder;\nimport org.springframework.boot.web.support.SpringBootServletInitializer;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 21:36 2018-06-23\n * @Modified By:\n */\npublic class WarStartApplication extends SpringBootServletInitializer {\n\n    @Override\n    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {\n        return builder.sources(Application.class);\n    }\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/WebMvcConfig.java",
    "content": "package com.kkvideo;\n\nimport com.kkvideo.interceptor.UserInterceptor;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.InterceptorRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 11:56 2018-06-16\n * @Modified By:\n */\n@Configuration\npublic class WebMvcConfig extends WebMvcConfigurerAdapter {\n\n\n    @Bean\n    public UserInterceptor userInterceptor(){\n        return new UserInterceptor();\n    }\n\n   @Override\n    public void addInterceptors(InterceptorRegistry registry) {\n        registry.addInterceptor(userInterceptor()).addPathPatterns(\"/user/**\").excludePathPatterns(\"/user/queryPublisher\");\n    }\n\n    @Bean(initMethod=\"init\")\n    public ZKCuratorClient zkCuratorClient() {\n        return new ZKCuratorClient();\n    }\n\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/ZKCuratorClient.java",
    "content": "package com.kkvideo;\n\nimport com.kkvideo.cofig.ResourceConfig;\nimport com.kkvideo.enums.BGMOperatorTypeEnum;\nimport com.kkvideo.utils.JsonUtils;\nimport org.apache.commons.io.FileUtils;\nimport org.apache.curator.RetryPolicy;\nimport org.apache.curator.framework.CuratorFramework;\nimport org.apache.curator.framework.CuratorFrameworkFactory;\nimport org.apache.curator.framework.recipes.cache.PathChildrenCache;\nimport org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;\nimport org.apache.curator.framework.recipes.cache.PathChildrenCacheListener;\nimport org.apache.curator.retry.ExponentialBackoffRetry;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Component;\n\nimport java.io.File;\nimport java.net.URL;\nimport java.util.Map;\n\n@Component\npublic class ZKCuratorClient {\n\n\t// zk客户端\n\tprivate CuratorFramework client = null;\t\n\tfinal static Logger log = LoggerFactory.getLogger(ZKCuratorClient.class);\n\n\t\n\t@Autowired\n\tprivate ResourceConfig resourceConfig;\n\t\n\tpublic void init() {\n\t\t\n\t\tif (client != null) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t// 重试策略\n\t\tRetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 5);\n\t\t// 创建zk客户端\n\t\tclient = CuratorFrameworkFactory.builder().connectString(resourceConfig.getZookeeperServer())\n\t\t\t\t.sessionTimeoutMs(10000).retryPolicy(retryPolicy).namespace(\"admin\").build();\n\t\t// 启动客户端\n\t\tclient.start();\n\t\t\n\t\ttry {\n\t\t\taddChildWatch(\"/bgm\");\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\t\n\t}\n\t\n\tpublic void addChildWatch(String nodePath) throws Exception {\n\t\t\n\t\tfinal PathChildrenCache cache = new PathChildrenCache(client, nodePath, true);\n\t\tcache.start();\n\t\tcache.getListenable().addListener(new PathChildrenCacheListener() {\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void childEvent(CuratorFramework client, PathChildrenCacheEvent event) \n\t\t\t\t\tthrows Exception {\n\t\t\t\t\n\t\t\t\tif (event.getType().equals(PathChildrenCacheEvent.Type.CHILD_ADDED)) {\n\t\t\t\t\tlog.info(\"监听到事件 CHILD_ADDED\");\n\n\t\t\t\t\t// 1. 从数据库查询bgm对象，获取路径path\n\t\t\t\t\tString path = event.getData().getPath();\n\t\t\t\t\tString operatorObjStr = new String(event.getData().getData(),\"UTF-8\");\n\t\t\t\t\tMap<String, String> map = JsonUtils.jsonToPojo(operatorObjStr, Map.class);\n\t\t\t\t\tString operatorType = map.get(\"operType\");\n\t\t\t\t\tString songPath = map.get(\"path\");\n\n\t\t\t\t\tString filePath = resourceConfig.getFileSpace()+ songPath;\n\n/*\t\t\t\t\t// 3. 定义下载的路径（播放url） bgm使用uuid避免中文乱码\n\t\t\t\t\tString arrPath[] = songPath.split(\"\\\\\\\\\");\n\t\t\t\t\tString finalPath = \"\";\n\t\t\t\t\t// 3.1 处理url的斜杠以及编码\n\t\t\t\t\tfor(int i = 0; i < arrPath.length ; i ++) {\n\t\t\t\t\t\tif (StringUtils.isNotBlank(arrPath[i])) {\n\t\t\t\t\t\t\tfinalPath += \"/\";\n\t\t\t\t\t\t\tfinalPath += URLEncoder.encode(arrPath[i], \"UTF-8\") ;\n\t\t\t\t\t\t}\n\t\t\t\t\t}*/\n\t\t\t\t\tString bgmUrl = resourceConfig.getBgmServer() + songPath;\n\t\t\t\t\t\n\t\t\t\t\tif (operatorType.equals(BGMOperatorTypeEnum.ADD.type)) {\n\t\t\t\t\t\t// 下载bgm到spingboot服务器\n\t\t\t\t\t\tURL url = new URL(bgmUrl);\n\t\t\t\t\t\tFile file = new File(filePath);\n\t\t\t\t\t\tFileUtils.copyURLToFile(url, file);\n\t\t\t\t\t\tclient.delete().forPath(path);\n\t\t\t\t\t} else if (operatorType.equals(BGMOperatorTypeEnum.DELETE.type)) {\n\t\t\t\t\t\tFile file = new File(filePath);\n\t\t\t\t\t\tFileUtils.forceDelete(file);\n\t\t\t\t\t\tclient.delete().forPath(path);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/cofig/ResourceConfig.java",
    "content": "package com.kkvideo.cofig;\n\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.context.annotation.PropertySource;\n\n@Configuration\n@ConfigurationProperties(prefix=\"com.kkvideo\")\n@PropertySource(\"classpath:resource.properties\")\npublic class ResourceConfig {\n\n\tprivate String zookeeperServer;\n\tprivate String bgmServer;\n\tprivate String fileSpace;\n\n\tpublic String getZookeeperServer() {\n\t\treturn zookeeperServer;\n\t}\n\tpublic void setZookeeperServer(String zookeeperServer) {\n\t\tthis.zookeeperServer = zookeeperServer;\n\t}\n\tpublic String getBgmServer() {\n\t\treturn bgmServer;\n\t}\n\tpublic void setBgmServer(String bgmServer) {\n\t\tthis.bgmServer = bgmServer;\n\t}\n\tpublic String getFileSpace() {\n\t\treturn fileSpace;\n\t}\n\tpublic void setFileSpace(String fileSpace) {\n\t\tthis.fileSpace = fileSpace;\n\t}\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/controller/BasicController.java",
    "content": "package com.kkvideo.controller;\n\nimport com.kkvideo.utils.RedisOperator;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class BasicController {\n\t\n\t@Autowired\n\tpublic RedisOperator redis;\n\n\tpublic static final String USER_REDIS_SESSION = \"user-redis-session\";\n\t\n\t// 文件保存的命名空间\n\tpublic static final String FILE_SPACE = \"C:\\\\resource\";\n\t\n\t// ffmpeg所在目录\n/*\tpublic static final String FFMPEG_EXE = \"C:\\\\ffmpeg\\\\bin\\\\ffmpeg.exe\";*/\n\tpublic static final String FFMPEG_EXE = \"C:\\\\ffmpeg\\\\bin\\\\ffmpeg.exe\";\n\n\t// 每页分页的记录数\n\tpublic static final Integer PAGE_SIZE = 5;\n\t\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/controller/BgmController.java",
    "content": "package com.kkvideo.controller;\n\nimport com.kkvideo.pojo.Bgm;\nimport com.kkvideo.service.BgmService;\nimport com.kkvideo.utils.KkJsonResult;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 11:09 2018-06-12\n * @Modified By:\n */\n@RestController\n@Api(value = \"背景音乐的Controller\",tags = {\"背景音乐api\"})\n@RequestMapping(\"/bgm\")\npublic class BgmController {\n\n    @Autowired\n    private BgmService bgmService;\n\n\n    @PostMapping(\"/list\")\n    @ApiOperation(value = \"查询背景音乐列表\",notes = \"查询背景音乐列表\")\n    public KkJsonResult list(){\n        return KkJsonResult.ok(bgmService.queryBgmList());\n    }\n\n\n\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/controller/RegistLoginController.java",
    "content": "package com.kkvideo.controller;\n\nimport com.kkvideo.pojo.Users;\nimport com.kkvideo.service.UserService;\nimport com.kkvideo.vo.UsersVo;\nimport com.kkvideo.utils.KkJsonResult;\nimport com.kkvideo.utils.MD5Utils;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiImplicitParam;\nimport io.swagger.annotations.ApiOperation;\nimport org.apache.commons.lang3.StringUtils;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport java.util.UUID;\n\n/**\n * @Author:jimisun\n * @Description:用户注册和登陆的controller\n * @Date:Created in 21:23 2018-06-10\n * @Modified By:\n */\n@RestController\n@Api(value = \"用户登陆和注册的接口\",tags = {\"注册和登陆的controller\"})\npublic class RegistLoginController extends BasicController {\n\n    @Autowired\n    private UserService userService;\n\n\n    @ApiOperation(value = \"用户注册\",notes = \"用户注册的接口\")\n    @PostMapping(\"/regist\")\n    public KkJsonResult register(@RequestBody Users user) throws Exception {\n\n        //校验用户传递的参数是否正确\n        if(StringUtils.isBlank(user.getUsername())||StringUtils.isBlank(user.getPassword())){\n            return KkJsonResult.errorMsg(\"用户名或密码不能为空\");\n        }\n\n        //判断用户是否存在 不存在既然注册\n        Boolean flag = userService.queryUserExistByUsername(user.getUsername());\n        if(!flag){\n            user.setNickname(user.getUsername());\n            user.setPassword(MD5Utils.getMD5Str(user.getPassword()));\n            user.setFansCounts(0);\n            user.setReceiveLikeCounts(0);\n            user.setReceiveLikeCounts(0);\n            //存储\n            userService.saveUser(user);\n        }else{\n            return KkJsonResult.errorMsg(\"用户名已经存在！\");\n        }\n\n        user.setPassword(\"\");\n        UsersVo usersVo = setUserRedisSessionToken(user);\n        return KkJsonResult.ok(usersVo);\n    }\n\n    @ApiOperation(value=\"用户登录\", notes=\"用户登录的接口\")\n    @PostMapping(\"/login\")\n    public KkJsonResult login(@RequestBody Users user) throws Exception {\n\n        String username = user.getUsername();\n        String password = user.getPassword();\n\n        // 1. 判断用户名和密码必须不为空\n        if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {\n            return KkJsonResult.ok(\"用户名或密码不能为空...\");\n        }\n\n        // 2. 判断用户是否存在\n        Users userResult = userService.queryUserForLogin(username,\n                MD5Utils.getMD5Str(user.getPassword()));\n\n        // 3. 返回\n        if (userResult != null) {\n            userResult.setPassword(\"\");\n            UsersVo usersVo = setUserRedisSessionToken(userResult);\n            return KkJsonResult.ok(usersVo);\n\n        } else {\n            return KkJsonResult.errorMsg(\"用户名或密码不正确, 请重试...\");\n        }\n    }\n\n\n    public UsersVo setUserRedisSessionToken(Users userModel) {\n        String uniqueToken = UUID.randomUUID().toString().replace(\"-\",\"\");\n        redis.set(USER_REDIS_SESSION + \":\" + userModel.getId(), uniqueToken, 1000 * 60 * 30);\n\n        UsersVo userVO = new UsersVo();\n        BeanUtils.copyProperties(userModel, userVO);\n        userVO.setUserToken(uniqueToken);\n        return userVO;\n    }\n\n    @ApiOperation(value=\"用户注销\", notes=\"用户注销的接口\")\n    @ApiImplicitParam(name=\"userId\", value=\"用户id\", required=true,\n            dataType=\"String\", paramType=\"query\")\n    @PostMapping(\"/logout\")\n    public KkJsonResult logout(String userId) throws Exception {\n        redis.del(USER_REDIS_SESSION + \":\" + userId);\n        return KkJsonResult.ok();\n    }\n\n\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/controller/UserController.java",
    "content": "package com.kkvideo.controller;\n\nimport com.kkvideo.pojo.Users;\nimport com.kkvideo.pojo.UsersReport;\nimport com.kkvideo.service.UserService;\nimport com.kkvideo.utils.KkJsonResult;\nimport com.kkvideo.vo.PublisherVideo;\nimport com.kkvideo.vo.UsersVo;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiImplicitParam;\nimport io.swagger.annotations.ApiOperation;\nimport org.apache.commons.io.IOUtils;\nimport org.apache.commons.lang3.StringUtils;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.*;\nimport org.springframework.web.multipart.MultipartFile;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\nimport java.io.InputStream;\n\n@RestController\n@Api(value=\"用户相关业务的接口\", tags= {\"用户相关业务的controller\"})\n@RequestMapping(\"/user\")\npublic class UserController extends BasicController {\n\t\n\t@Autowired\n\tprivate UserService userService;\n\t\n\t@ApiOperation(value=\"用户上传头像\", notes=\"用户上传头像的接口\")\n\t@ApiImplicitParam(name=\"userId\", value=\"用户id\", required=true, \n\t\t\t\t\t\tdataType=\"String\", paramType=\"query\")\n\t@PostMapping(\"/uploadFace\")\n\tpublic KkJsonResult uploadFace(String userId,\n\t\t\t\t\t\t\t\t   @RequestParam(\"file\") MultipartFile[] files) throws Exception {\n\t\t\n\t\tif (StringUtils.isBlank(userId)) {\n\t\t\treturn KkJsonResult.errorMsg(\"登陆成功！\");\n\t\t}\n\t\t\n\t\t// 文件保存的命名空间\n\t\t/*String fileSpace = \"E:\\\\worktest\\\\kkvideo\";*/\n\t\tString fileSpace = FILE_SPACE;\n\t\t// 保存到数据库中的相对路径\n\t\tString uploadPathDB = \"/usersresource/\" + userId + \"/face\";\n\t\t\n\t\tFileOutputStream fileOutputStream = null;\n\t\tInputStream inputStream = null;\n\t\ttry {\n\t\t\tif (files != null && files.length > 0) {\n\t\t\t\t\n\t\t\t\tString fileName = files[0].getOriginalFilename();\n\t\t\t\tif (StringUtils.isNotBlank(fileName)) {\n\t\t\t\t\t// 文件上传的最终保存路径\n\t\t\t\t\tString finalFacePath = fileSpace + uploadPathDB + \"/\" + fileName;\n\t\t\t\t\t// 设置数据库保存的路径\n\t\t\t\t\tuploadPathDB += (\"/\" + fileName);\n\n\t\t\t\t\tFile outFile = new File(finalFacePath);\n\t\t\t\t\tif (outFile.getParentFile() != null || !outFile.getParentFile().isDirectory()) {\n\t\t\t\t\t\t// 创建父文件夹\n\t\t\t\t\t\toutFile.getParentFile().mkdirs();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tfileOutputStream = new FileOutputStream(outFile);\n\t\t\t\t\tinputStream = files[0].getInputStream();\n\t\t\t\t\tIOUtils.copy(inputStream, fileOutputStream);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\treturn KkJsonResult.errorMsg(\"上传出错...\");\n\t\t\t}\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t\treturn KkJsonResult.errorMsg(\"上传出错...\");\n\t\t} finally {\n\t\t\tif (fileOutputStream != null) {\n\t\t\t\tfileOutputStream.flush();\n\t\t\t\tfileOutputStream.close();\n\t\t\t}\n\t\t}\n\t\t\n\t\tUsers user = new Users();\n\t\tuser.setId(userId);\n\t\tuser.setFaceImage(uploadPathDB);\n\t\tuserService.updateUserInfo(user);\n\t\t\n\t\treturn KkJsonResult.ok(uploadPathDB);\n\t}\n\n\t@ApiOperation(value=\"查询用户信息\", notes=\"查询用户信息的接口\")\n\t@ApiImplicitParam(name=\"userId\", value=\"用户id\", required=true,\n\t\t\tdataType=\"String\", paramType=\"query\")\n\t@PostMapping(\"/query\")\n\tpublic KkJsonResult query(String userId, String fanId) throws Exception {\n\n\t\tif (StringUtils.isBlank(userId)) {\n\t\t\treturn KkJsonResult.errorMsg(\"用户id不能为空...\");\n\t\t}\n\n\t\tUsers userInfo = userService.queryUserInfo(userId);\n\t\tUsersVo userVO = new UsersVo();\n\t\tBeanUtils.copyProperties(userInfo, userVO);\n\n\t\tuserVO.setFollow(userService.queryIfFollow(userId, fanId));\n\n\t\treturn KkJsonResult.ok(userVO);\n\t}\n\n\t/**\n\t * 进入视频详情页面查询用户是否已经喜欢此视频，查询发布者的信息（如头像等）\n\t * @param loginUserId\n\t * @param videoId\n\t * @param publishUserId\n\t * @return\n\t * @throws Exception\n\t */\n\t@PostMapping(\"/queryPublisher\")\n\tpublic KkJsonResult queryPublisher(String loginUserId, String videoId,\n\t\t\t\t\t\t\t\t\t\t  String publishUserId) throws Exception {\n\n\t\tif (StringUtils.isBlank(publishUserId)) {\n\t\t\treturn KkJsonResult.errorMsg(\"\");\n\t\t}\n\n\t\t// 1. 查询视频发布者的信息\n\t\tUsers userInfo = userService.queryUserInfo(publishUserId);\n\t\tUsersVo publisher = new UsersVo();\n\t\tBeanUtils.copyProperties(userInfo, publisher);\n\n\t\t// 2. 查询当前登录者和视频的点赞关系\n\t\tboolean userLikeVideo = userService.isUserLikeVideo(loginUserId, videoId);\n\n\t\tPublisherVideo bean = new PublisherVideo();\n\t\tbean.setPublisher(publisher);\n\t\tbean.setUserLikeVideo(userLikeVideo);\n\n\t\treturn KkJsonResult.ok(bean);\n\t}\n\n\t/**\n\t * 关注用户\n\t * @param userId\n\t * @param fanId\n\t * @return\n\t * @throws Exception\n\t */\n\t@PostMapping(\"/beyourfans\")\n\tpublic KkJsonResult beyourfans(String userId, String fanId) throws Exception {\n\n\t\tif (StringUtils.isBlank(userId) || StringUtils.isBlank(fanId)) {\n\t\t\treturn KkJsonResult.errorMsg(\"\");\n\t\t}\n\n\t\tuserService.saveUserFanRelation(userId, fanId);\n\n\t\treturn KkJsonResult.ok(\"关注成功...\");\n\t}\n\n\t/**\n\t * 取消关注某个用户\n\t * @param userId\n\t * @param fanId\n\t * @return\n\t * @throws Exception\n\t */\n\t@PostMapping(\"/dontbeyourfans\")\n\tpublic KkJsonResult dontbeyourfans(String userId, String fanId) throws Exception {\n\n\t\tif (StringUtils.isBlank(userId) || StringUtils.isBlank(fanId)) {\n\t\t\treturn KkJsonResult.errorMsg(\"\");\n\t\t}\n\n\t\tuserService.deleteUserFanRelation(userId, fanId);\n\n\t\treturn KkJsonResult.ok(\"取消关注成功...\");\n\t}\n\n\t/**\n\t * 举报某个用户的视频\n\t * @param usersReport\n\t * @return\n\t * @throws Exception\n\t */\n\t@PostMapping(\"/reportUser\")\n\tpublic KkJsonResult reportUser(@RequestBody UsersReport usersReport) throws Exception {\n\n\t\t// 保存举报信息\n\t\tuserService.reportUser(usersReport);\n\n\t\treturn KkJsonResult.errorMsg(\"举报成功...有你平台变得更美好...\");\n\t}\n\n\n\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/controller/VideoController.java",
    "content": "package com.kkvideo.controller;\n\nimport com.kkvideo.enums.VideoStatusEnum;\nimport com.kkvideo.pojo.Bgm;\nimport com.kkvideo.pojo.Comments;\nimport com.kkvideo.pojo.Videos;\nimport com.kkvideo.service.BgmService;\nimport com.kkvideo.service.VideoService;\nimport com.kkvideo.utils.FetchVideoCover;\nimport com.kkvideo.utils.KkJsonResult;\nimport com.kkvideo.utils.MergeVideoMp3;\nimport com.kkvideo.utils.PagedResult;\nimport io.swagger.annotations.ApiParam;\nimport org.apache.commons.io.IOUtils;\nimport org.apache.commons.lang3.StringUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\nimport org.springframework.web.multipart.MultipartFile;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\nimport java.io.InputStream;\nimport java.util.Date;\nimport java.util.UUID;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 12:01 2018-06-12\n * @Modified By:\n */\n@RestController\n@RequestMapping(\"/video\")\npublic class VideoController extends BasicController {\n\n    @Autowired\n    private BgmService bgmService;\n\n    @Autowired\n    private VideoService videoService;\n\n\n    /**\n     * 上传视频\n     * @param userId\n     * @param bgmId\n     * @param videoSeconds\n     * @param videoWidth\n     * @param videoHeight\n     * @param desc\n     * @param file\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(value = \"/upload\", headers = \"content-type=multipart/form-data\")\n    public KkJsonResult upload(String userId,\n                               String bgmId, double videoSeconds,\n                               int videoWidth, int videoHeight,\n                               String desc,\n                               MultipartFile file) throws Exception {\n        if (StringUtils.isBlank(userId)) {\n            return KkJsonResult.errorMsg(\"用户id不能为空...\");\n        }\n\n        String uploadPathDB = \"/usersresource/\" + userId + \"/video\";\n        String coverPathDB = \"/usersresource/\" + userId + \"/video\";\n\n        FileOutputStream fileOutputStream = null;\n        InputStream inputStream = null;\n        // 文件上传的最终保存路径\n        String finalVideoPath = \"\";\n        String videoOutputName = UUID.randomUUID().toString() + \".mp4\";\n        try {\n            if (file != null) {\n\n\n                String fileName = file.getOriginalFilename();\n                // abc.mp4\n                String arrayFilenameItem[] =  fileName.split(\"\\\\.\");\n                String fileNamePrefix = \"\";\n                for (int i = 0 ; i < arrayFilenameItem.length-1 ; i ++) {\n                    fileNamePrefix += arrayFilenameItem[i];\n                }\n                if (StringUtils.isNotBlank(fileName)) {\n\n                    finalVideoPath = FILE_SPACE + uploadPathDB + \"/\" + videoOutputName;\n                    // 设置数据库保存的路径\n                    uploadPathDB += (\"/\" + videoOutputName);\n                    coverPathDB = coverPathDB + \"/\" + videoOutputName + \".jpg\";\n\n                    File outFile = new File(finalVideoPath);\n                    if (outFile.getParentFile() != null || !outFile.getParentFile().isDirectory()) {\n                        // 创建父文件夹\n                        outFile.getParentFile().mkdirs();\n                    }\n\n                    fileOutputStream = new FileOutputStream(outFile);\n                    inputStream = file.getInputStream();\n                    IOUtils.copy(inputStream, fileOutputStream);\n                }\n\n            } else {\n                return KkJsonResult.errorMsg(\"上传出错...\");\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n            return KkJsonResult.errorMsg(\"上传出错...\");\n        } finally {\n            if (fileOutputStream != null) {\n                fileOutputStream.flush();\n                fileOutputStream.close();\n            }\n        }\n        // 判断bgmId是否为空，如果不为空，\n        // 那就查询bgm的信息，并且合并视频，生产新的视频\n        if (StringUtils.isNotBlank(bgmId)) {\n            Bgm bgm = bgmService.queryBgmById(bgmId);\n            String mp3InputPath = FILE_SPACE + bgm.getPath();\n\n            MergeVideoMp3 tool = new MergeVideoMp3(FFMPEG_EXE);\n            String videoInputPath = finalVideoPath;\n\n\n            uploadPathDB = \"/usersresource/\" + userId + \"/video\" + \"/bgm\" + videoOutputName;\n            finalVideoPath = FILE_SPACE + uploadPathDB;\n            tool.convertor(mp3InputPath,videoInputPath, videoSeconds, finalVideoPath);\n        }\n\n        // 对视频进行截图\n        FetchVideoCover videoInfo = new FetchVideoCover(FFMPEG_EXE);\n        videoInfo.getCover(finalVideoPath, FILE_SPACE + coverPathDB);\n\n        // 保存视频信息到数据库\n        Videos video = new Videos();\n        video.setAudioId(bgmId);\n        video.setUserId(userId);\n        video.setVideoSeconds((float)videoSeconds);\n        video.setVideoHeight(videoHeight);\n        video.setVideoWidth(videoWidth);\n        video.setVideoDesc(desc);\n        video.setVideoPath(uploadPathDB);\n        video.setCoverPath(coverPathDB);\n        video.setStatus(VideoStatusEnum.SUCCESS.value);\n        video.setCreateTime(new Date());\n\n        String videoId = videoService.saveVideo(video);\n\n        return KkJsonResult.ok(videoId);\n\n\n    }\n\n    /**\n     * 上传视频封面\n     * @param userId\n     * @param videoId\n     * @param file\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(value=\"/uploadCover\", headers=\"content-type=multipart/form-data\")\n    public KkJsonResult uploadCover(String userId,\n                                       String videoId,\n                                       @ApiParam(value=\"视频封面\", required=true)\n                                               MultipartFile file) throws Exception {\n\n        if (StringUtils.isBlank(videoId) || StringUtils.isBlank(userId)) {\n            return KkJsonResult.errorMsg(\"视频主键id和用户id不能为空...\");\n        }\n\n        // 保存到数据库中的相对路径\n        String uploadPathDB = \"/usersresource/\" + userId + \"/video\";\n\n        FileOutputStream fileOutputStream = null;\n        InputStream inputStream = null;\n        // 文件上传的最终保存路径\n        String finalCoverPath = \"\";\n        try {\n            if (file != null) {\n\n                String fileName = file.getOriginalFilename();\n                if (StringUtils.isNotBlank(fileName)) {\n\n                    finalCoverPath = FILE_SPACE + uploadPathDB + \"/\" + fileName;\n                    // 设置数据库保存的路径\n                    uploadPathDB += (\"/\" + fileName);\n\n                    File outFile = new File(finalCoverPath);\n                    if (outFile.getParentFile() != null || !outFile.getParentFile().isDirectory()) {\n                        // 创建父文件夹\n                        outFile.getParentFile().mkdirs();\n                    }\n\n                    fileOutputStream = new FileOutputStream(outFile);\n                    inputStream = file.getInputStream();\n                    IOUtils.copy(inputStream, fileOutputStream);\n                }\n\n            } else {\n                return KkJsonResult.errorMsg(\"上传出错...\");\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n            return KkJsonResult.errorMsg(\"上传出错...\");\n        } finally {\n            if (fileOutputStream != null) {\n                fileOutputStream.flush();\n                fileOutputStream.close();\n            }\n        }\n\n        videoService.updateVideo(videoId, uploadPathDB);\n\n        return KkJsonResult.ok();\n    }\n\n    /**\n     *\n     * @Description: 分页和搜索查询视频列表\n     * isSaveRecord：1 - 需要保存\n     * \t\t\t\t 0 - 不需要保存 ，或者为空的时候\n     */\n    @PostMapping(value=\"/showAll\")\n    public KkJsonResult showAll(@RequestBody Videos video, Integer isSaveRecord,\n                                   Integer page, Integer pageSize) throws Exception {\n\n        if (page == null) {\n            page = 1;\n        }\n\n        if (pageSize == null) {\n            pageSize = PAGE_SIZE;\n        }\n\n        PagedResult result = videoService.getAllVideos(video, isSaveRecord, page, pageSize);\n        return KkJsonResult.ok(result);\n    }\n\n    /**\n     *获取热搜词\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(value=\"/hot\")\n    public KkJsonResult hot() throws Exception {\n        return KkJsonResult.ok(videoService.getHotwords());\n    }\n\n    /**\n     * 喜欢某个视频\n     * @param userId\n     * @param videoId\n     * @param videoCreaterId\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(value=\"/userLike\")\n    public KkJsonResult userLike(String userId, String videoId, String videoCreaterId)\n            throws Exception {\n        videoService.userLikeVideo(userId, videoId, videoCreaterId);\n        return KkJsonResult.ok();\n    }\n\n    /**\n     * 取消喜欢某个视频\n     * @param userId\n     * @param videoId\n     * @param videoCreaterId\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(value=\"/userUnLike\")\n    public KkJsonResult userUnLike(String userId, String videoId, String videoCreaterId) throws Exception {\n        videoService.userUnLikeVideo(userId, videoId, videoCreaterId);\n        return KkJsonResult.ok();\n    }\n\n    /**\n     * @Description: 我收藏(点赞)过的视频列表\n     */\n    @PostMapping(\"/showMyLike\")\n    public KkJsonResult showMyLike(String userId, Integer page, Integer pageSize) throws Exception {\n\n        if (StringUtils.isBlank(userId)) {\n            return KkJsonResult.ok();\n        }\n\n        if (page == null) {\n            page = 1;\n        }\n\n        if (pageSize == null) {\n            pageSize = 6;\n        }\n\n        PagedResult videosList = videoService.queryMyLikeVideos(userId, page, pageSize);\n\n        return KkJsonResult.ok(videosList);\n    }\n\n    /**\n     * @Description: 我关注的人发的视频\n     */\n    @PostMapping(\"/showMyFollow\")\n    public KkJsonResult showMyFollow(String userId, Integer page) throws Exception {\n\n        if (StringUtils.isBlank(userId)) {\n            return KkJsonResult.ok();\n        }\n\n        if (page == null) {\n            page = 1;\n        }\n\n        int pageSize = 6;\n\n        PagedResult videosList = videoService.queryMyFollowVideos(userId, page, pageSize);\n\n        return KkJsonResult.ok(videosList);\n    }\n\n    /**\n     * 保存留言\n     * @param comment\n     * @param fatherCommentId\n     * @param toUserId\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(\"/saveComment\")\n    public KkJsonResult saveComment(@RequestBody Comments comment,\n                                       String fatherCommentId, String toUserId) throws Exception {\n\n        comment.setFatherCommentId(fatherCommentId);\n        comment.setToUserId(toUserId);\n\n        videoService.saveComment(comment);\n        return KkJsonResult.ok();\n    }\n\n    /**\n     * 通过videoId查询留言/分页\n     * @param videoId\n     * @param page\n     * @param pageSize\n     * @return\n     * @throws Exception\n     */\n    @PostMapping(\"/getVideoComments\")\n    public KkJsonResult getVideoComments(String videoId, Integer page, Integer pageSize) throws Exception {\n\n        if (StringUtils.isBlank(videoId)) {\n            return KkJsonResult.ok();\n        }\n\n        // 分页查询视频列表，时间顺序倒序排序\n        if (page == null) {\n            page = 1;\n        }\n\n        if (pageSize == null) {\n            pageSize = 10;\n        }\n\n        PagedResult list = videoService.getAllComments(videoId, page, pageSize);\n\n        return KkJsonResult.ok(list);\n    }\n\n\n\n\n\n}\n"
  },
  {
    "path": "kk-video-api/src/main/java/com/kkvideo/interceptor/UserInterceptor.java",
    "content": "package com.kkvideo.interceptor;\n\nimport com.kkvideo.utils.JsonUtils;\nimport com.kkvideo.utils.KkJsonResult;\nimport com.kkvideo.utils.RedisOperator;\nimport org.apache.commons.lang3.StringUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.servlet.HandlerInterceptor;\nimport org.springframework.web.servlet.ModelAndView;\n\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\nimport java.io.IOException;\nimport java.io.OutputStream;\nimport java.io.UnsupportedEncodingException;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 11:54 2018-06-16\n * @Modified By:\n */\npublic class UserInterceptor implements HandlerInterceptor {\n\n    @Autowired\n    public RedisOperator redis;\n    public static final String USER_REDIS_SESSION = \"user-redis-session\";\n\n    @Override\n    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {\n        String userId = request.getHeader(\"headerUserId\");\n        String userToken = request.getHeader(\"headerUserToken\");\n\n        if (StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(userToken)) {\n            String uniqueToken = redis.get(USER_REDIS_SESSION + \":\" + userId);\n            if (StringUtils.isEmpty(uniqueToken) && StringUtils.isBlank(uniqueToken)) {\n                System.out.println(\"请登录...\");\n                returnErrorResponse(response, new KkJsonResult().errorTokenMsg(\"请登录...\"));\n                return false;\n            } else {\n                if (!uniqueToken.equals(userToken)) {\n                    System.out.println(\"账号被挤出...\");\n                    returnErrorResponse(response, new KkJsonResult().errorTokenMsg(\"账号被挤出...\"));\n                    return false;\n                }\n            }\n        } else {\n            System.out.println(\"请登录...\");\n            returnErrorResponse(response, new KkJsonResult().errorTokenMsg(\"请登录...\"));\n            return false;\n        }\n        return true;\n    }\n\n    @Override\n    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {\n\n    }\n\n    @Override\n    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {\n\n    }\n\n\n    public void returnErrorResponse(HttpServletResponse response, KkJsonResult result)\n            throws IOException, UnsupportedEncodingException {\n        OutputStream out=null;\n        try{\n            response.setCharacterEncoding(\"utf-8\");\n            response.setContentType(\"text/json\");\n            out = response.getOutputStream();\n            out.write(JsonUtils.objectToJson(result).getBytes(\"utf-8\"));\n            out.flush();\n        } finally{\n            if(out!=null){\n                out.close();\n            }\n        }\n    }\n\n}\n"
  },
  {
    "path": "kk-video-api/src/main/resources/application.properties",
    "content": "\n############################################################\n#\n# REDIS \\u914d\\u7f6e\n#\n############################################################\n# Redis\\u6570\\u636e\\u5e93\\u7d22\\u5f15\\uff08\\u9ed8\\u8ba4\\u4e3a0\\uff09\nspring.redis.database=1\n# Redis\\u670d\\u52a1\\u5668\\u5730\\u5740\nspring.redis.host=118.25.189.54\n# Redis\\u670d\\u52a1\\u5668\\u8fde\\u63a5\\u7aef\\u53e3\nspring.redis.port=6379\n# Redis\\u670d\\u52a1\\u5668\\u8fde\\u63a5\\u5bc6\\u7801\\uff08\\u9ed8\\u8ba4\\u4e3a\\u7a7a\\uff09\nspring.redis.password=jimisun\n# \\u8fde\\u63a5\\u6c60\\u6700\\u5927\\u8fde\\u63a5\\u6570\\uff08\\u4f7f\\u7528\\u8d1f\\u503c\\u8868\\u793a\\u6ca1\\u6709\\u9650\\u5236\\uff09\nspring.redis.pool.max-active=1000\n# \\u8fde\\u63a5\\u6c60\\u6700\\u5927\\u963b\\u585e\\u7b49\\u5f85\\u65f6\\u95f4\\uff08\\u4f7f\\u7528\\u8d1f\\u503c\\u8868\\u793a\\u6ca1\\u6709\\u9650\\u5236\\uff09\nspring.redis.pool.max-wait=-1\n# \\u8fde\\u63a5\\u6c60\\u4e2d\\u7684\\u6700\\u5927\\u7a7a\\u95f2\\u8fde\\u63a5\nspring.redis.pool.max-idle=10\n# \\u8fde\\u63a5\\u6c60\\u4e2d\\u7684\\u6700\\u5c0f\\u7a7a\\u95f2\\u8fde\\u63a5\nspring.redis.pool.min-idle=2\n# \\u8fde\\u63a5\\u8d85\\u65f6\\u65f6\\u95f4\\uff08\\u6beb\\u79d2\\uff09\nspring.redis.timeout=0\n\n\n############################################################\n#\n# mysql\n#\n############################################################\nspring.datasource.url=jdbc:mysql://119.28.193.218:3306/kkvideo\nspring.datasource.username=root\nspring.datasource.password=jimisun\nspring.datasource.driver-class-name=com.mysql.jdbc.Driver\nspring.datasource.druid.initial-size=1\nspring.datasource.druid.min-idle=1\nspring.datasource.druid.max-active=20\nspring.datasource.druid.test-on-borrow=true\nspring.datasource.druid.stat-view-servlet.allow=true\n\n\n############################################################\n#\n# mybatis\n#\n############################################################\n# mybatis \\u914d\\u7f6e\nmybatis.type-aliases-package=com.kkvideo.pojo\nmybatis.mapper-locations=classpath:mapper/*.xml\n# \\u901a\\u7528 Mapper \\u914d\\u7f6e\nmapper.mappers=com.kkvideo.mapper\nmapper.not-empty=false\nmapper.identity=MYSQL\n# \\u5206\\u9875\\u63d2\\u4ef6\\u914d\\u7f6e\npagehelper.helperDialect=mysql\npagehelper.supportMethodsArguments=true\npagehelper.params=count=countSql\n\n\nspring.http.multipart.maxFileSize=100Mb\nspring.http.multipart.maxRequestSize=1000Mb\n\n############################################################\n#\n# Server \\u670d\\u52a1\\u7aef\\u76f8\\u5173\\u914d\\u7f6e\n#\n############################################################\n# \\u914d\\u7f6eapi\\u7aef\\u53e3\\u53f7\nserver.port=8081\n\n############################################################\n# Server - tomcat \\u76f8\\u5173\\u5e38\\u7528\\u914d\\u7f6e\n############################################################\n# tomcat\\u7684URI\\u7f16\\u7801\nserver.tomcat.uri-encoding=UTF-8\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "kk-video-api/src/main/resources/log4j.properties",
    "content": "log4j.rootLogger=INFO,console,dailyFile\n# TODO \\u53d1\\u5e03\\u5230\\u963f\\u91cc\\u4e91\\u8bb0\\u5f97\\u6dfb\\u52a0\\uff0c\\u53e6\\u5916\\u63a7\\u5236\\u53f0\\u4e0d\\u8f93\\u51fa(\\u53ea\\u8f93\\u51fawarn\\u6216\\u8005error\\u4fe1\\u606f)\n#INFO,console,dailyFile\n\n#log4j.logger.org.mybatis = DEBUG\nlog4j.logger.com.kkvideo.mapper=INFO\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender.console.encoding=UTF-8\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n\n\n# \\u5b9a\\u671f\\u6eda\\u52a8\\u65e5\\u5fd7\\u6587\\u4ef6\\uff0c\\u6bcf\\u5929\\u90fd\\u4f1a\\u751f\\u6210\\u65e5\\u5fd7\nlog4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.dailyFile.encoding=UTF-8\nlog4j.appender.dailyFile.Threshold=INFO\n# TODO \\u672c\\u5730\\u65e5\\u5fd7\\u5730\\u5740\\uff0c\\u6b63\\u5f0f\\u73af\\u5883\\u8bf7\\u52a1\\u5fc5\\u5207\\u6362\\u4e3a\\u963f\\u91cc\\u4e91\\u5730\\u5740\nlog4j.appender.dailyFile.File=/kkvideo/logs/log.txt\nlog4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd\nlog4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout\nlog4j.appender.dailyFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n\n\n"
  },
  {
    "path": "kk-video-api/src/main/resources/resource.properties",
    "content": "com.kkvideo.zookeeperServer=118.25.189.54:2181\ncom.kkvideo.bgmServer=http://admin.video.redrat.cn:8888\ncom.kkvideo.fileSpace=C:\\\\resource"
  },
  {
    "path": "kk-video-api/target/classes/application.properties",
    "content": "\n############################################################\n#\n# REDIS \\u914d\\u7f6e\n#\n############################################################\n# Redis\\u6570\\u636e\\u5e93\\u7d22\\u5f15\\uff08\\u9ed8\\u8ba4\\u4e3a0\\uff09\nspring.redis.database=1\n# Redis\\u670d\\u52a1\\u5668\\u5730\\u5740\nspring.redis.host=118.25.189.54\n# Redis\\u670d\\u52a1\\u5668\\u8fde\\u63a5\\u7aef\\u53e3\nspring.redis.port=6379\n# Redis\\u670d\\u52a1\\u5668\\u8fde\\u63a5\\u5bc6\\u7801\\uff08\\u9ed8\\u8ba4\\u4e3a\\u7a7a\\uff09\nspring.redis.password=jimisun\n# \\u8fde\\u63a5\\u6c60\\u6700\\u5927\\u8fde\\u63a5\\u6570\\uff08\\u4f7f\\u7528\\u8d1f\\u503c\\u8868\\u793a\\u6ca1\\u6709\\u9650\\u5236\\uff09\nspring.redis.pool.max-active=1000\n# \\u8fde\\u63a5\\u6c60\\u6700\\u5927\\u963b\\u585e\\u7b49\\u5f85\\u65f6\\u95f4\\uff08\\u4f7f\\u7528\\u8d1f\\u503c\\u8868\\u793a\\u6ca1\\u6709\\u9650\\u5236\\uff09\nspring.redis.pool.max-wait=-1\n# \\u8fde\\u63a5\\u6c60\\u4e2d\\u7684\\u6700\\u5927\\u7a7a\\u95f2\\u8fde\\u63a5\nspring.redis.pool.max-idle=10\n# \\u8fde\\u63a5\\u6c60\\u4e2d\\u7684\\u6700\\u5c0f\\u7a7a\\u95f2\\u8fde\\u63a5\nspring.redis.pool.min-idle=2\n# \\u8fde\\u63a5\\u8d85\\u65f6\\u65f6\\u95f4\\uff08\\u6beb\\u79d2\\uff09\nspring.redis.timeout=0\n\n\n############################################################\n#\n# mysql\n#\n############################################################\nspring.datasource.url=jdbc:mysql://119.28.193.218:3306/kkvideo\nspring.datasource.username=root\nspring.datasource.password=jimisun\nspring.datasource.driver-class-name=com.mysql.jdbc.Driver\nspring.datasource.druid.initial-size=1\nspring.datasource.druid.min-idle=1\nspring.datasource.druid.max-active=20\nspring.datasource.druid.test-on-borrow=true\nspring.datasource.druid.stat-view-servlet.allow=true\n\n\n############################################################\n#\n# mybatis\n#\n############################################################\n# mybatis \\u914d\\u7f6e\nmybatis.type-aliases-package=com.kkvideo.pojo\nmybatis.mapper-locations=classpath:mapper/*.xml\n# \\u901a\\u7528 Mapper \\u914d\\u7f6e\nmapper.mappers=com.kkvideo.mapper\nmapper.not-empty=false\nmapper.identity=MYSQL\n# \\u5206\\u9875\\u63d2\\u4ef6\\u914d\\u7f6e\npagehelper.helperDialect=mysql\npagehelper.supportMethodsArguments=true\npagehelper.params=count=countSql\n\n\nspring.http.multipart.maxFileSize=100Mb\nspring.http.multipart.maxRequestSize=1000Mb\n\n############################################################\n#\n# Server \\u670d\\u52a1\\u7aef\\u76f8\\u5173\\u914d\\u7f6e\n#\n############################################################\n# \\u914d\\u7f6eapi\\u7aef\\u53e3\\u53f7\nserver.port=8081\n\n############################################################\n# Server - tomcat \\u76f8\\u5173\\u5e38\\u7528\\u914d\\u7f6e\n############################################################\n# tomcat\\u7684URI\\u7f16\\u7801\nserver.tomcat.uri-encoding=UTF-8\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "kk-video-api/target/classes/log4j.properties",
    "content": "log4j.rootLogger=INFO,console,dailyFile\n# TODO \\u53d1\\u5e03\\u5230\\u963f\\u91cc\\u4e91\\u8bb0\\u5f97\\u6dfb\\u52a0\\uff0c\\u53e6\\u5916\\u63a7\\u5236\\u53f0\\u4e0d\\u8f93\\u51fa(\\u53ea\\u8f93\\u51fawarn\\u6216\\u8005error\\u4fe1\\u606f)\n#INFO,console,dailyFile\n\n#log4j.logger.org.mybatis = DEBUG\nlog4j.logger.com.kkvideo.mapper=INFO\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender.console.encoding=UTF-8\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n\n\n# \\u5b9a\\u671f\\u6eda\\u52a8\\u65e5\\u5fd7\\u6587\\u4ef6\\uff0c\\u6bcf\\u5929\\u90fd\\u4f1a\\u751f\\u6210\\u65e5\\u5fd7\nlog4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.dailyFile.encoding=UTF-8\nlog4j.appender.dailyFile.Threshold=INFO\n# TODO \\u672c\\u5730\\u65e5\\u5fd7\\u5730\\u5740\\uff0c\\u6b63\\u5f0f\\u73af\\u5883\\u8bf7\\u52a1\\u5fc5\\u5207\\u6362\\u4e3a\\u963f\\u91cc\\u4e91\\u5730\\u5740\nlog4j.appender.dailyFile.File=/kkvideo/logs/log.txt\nlog4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd\nlog4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout\nlog4j.appender.dailyFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n\n\n"
  },
  {
    "path": "kk-video-api/target/classes/resource.properties",
    "content": "com.kkvideo.zookeeperServer=118.25.189.54:2181\ncom.kkvideo.bgmServer=http://admin.video.redrat.cn:8888\ncom.kkvideo.fileSpace=C:\\\\resource"
  },
  {
    "path": "kk-video-api/target/kk-video-api-1.0-SNAPSHOT/WEB-INF/classes/application.properties",
    "content": "\n############################################################\n#\n# REDIS \\u914d\\u7f6e\n#\n############################################################\n# Redis\\u6570\\u636e\\u5e93\\u7d22\\u5f15\\uff08\\u9ed8\\u8ba4\\u4e3a0\\uff09\nspring.redis.database=1\n# Redis\\u670d\\u52a1\\u5668\\u5730\\u5740\nspring.redis.host=118.25.189.54\n# Redis\\u670d\\u52a1\\u5668\\u8fde\\u63a5\\u7aef\\u53e3\nspring.redis.port=6379\n# Redis\\u670d\\u52a1\\u5668\\u8fde\\u63a5\\u5bc6\\u7801\\uff08\\u9ed8\\u8ba4\\u4e3a\\u7a7a\\uff09\nspring.redis.password=jimisun\n# \\u8fde\\u63a5\\u6c60\\u6700\\u5927\\u8fde\\u63a5\\u6570\\uff08\\u4f7f\\u7528\\u8d1f\\u503c\\u8868\\u793a\\u6ca1\\u6709\\u9650\\u5236\\uff09\nspring.redis.pool.max-active=1000\n# \\u8fde\\u63a5\\u6c60\\u6700\\u5927\\u963b\\u585e\\u7b49\\u5f85\\u65f6\\u95f4\\uff08\\u4f7f\\u7528\\u8d1f\\u503c\\u8868\\u793a\\u6ca1\\u6709\\u9650\\u5236\\uff09\nspring.redis.pool.max-wait=-1\n# \\u8fde\\u63a5\\u6c60\\u4e2d\\u7684\\u6700\\u5927\\u7a7a\\u95f2\\u8fde\\u63a5\nspring.redis.pool.max-idle=10\n# \\u8fde\\u63a5\\u6c60\\u4e2d\\u7684\\u6700\\u5c0f\\u7a7a\\u95f2\\u8fde\\u63a5\nspring.redis.pool.min-idle=2\n# \\u8fde\\u63a5\\u8d85\\u65f6\\u65f6\\u95f4\\uff08\\u6beb\\u79d2\\uff09\nspring.redis.timeout=0\n\n\n############################################################\n#\n# mysql\n#\n############################################################\nspring.datasource.url=jdbc:mysql://119.28.193.218:3306/kkvideo\nspring.datasource.username=root\nspring.datasource.password=jimisun\nspring.datasource.driver-class-name=com.mysql.jdbc.Driver\nspring.datasource.druid.initial-size=1\nspring.datasource.druid.min-idle=1\nspring.datasource.druid.max-active=20\nspring.datasource.druid.test-on-borrow=true\nspring.datasource.druid.stat-view-servlet.allow=true\n\n\n############################################################\n#\n# mybatis\n#\n############################################################\n# mybatis \\u914d\\u7f6e\nmybatis.type-aliases-package=com.kkvideo.pojo\nmybatis.mapper-locations=classpath:mapper/*.xml\n# \\u901a\\u7528 Mapper \\u914d\\u7f6e\nmapper.mappers=com.kkvideo.mapper\nmapper.not-empty=false\nmapper.identity=MYSQL\n# \\u5206\\u9875\\u63d2\\u4ef6\\u914d\\u7f6e\npagehelper.helperDialect=mysql\npagehelper.supportMethodsArguments=true\npagehelper.params=count=countSql\n\n\nspring.http.multipart.maxFileSize=100Mb\nspring.http.multipart.maxRequestSize=1000Mb\n\n############################################################\n#\n# Server \\u670d\\u52a1\\u7aef\\u76f8\\u5173\\u914d\\u7f6e\n#\n############################################################\n# \\u914d\\u7f6eapi\\u7aef\\u53e3\\u53f7\nserver.port=8081\n\n############################################################\n# Server - tomcat \\u76f8\\u5173\\u5e38\\u7528\\u914d\\u7f6e\n############################################################\n# tomcat\\u7684URI\\u7f16\\u7801\nserver.tomcat.uri-encoding=UTF-8\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "kk-video-api/target/kk-video-api-1.0-SNAPSHOT/WEB-INF/classes/log4j.properties",
    "content": "log4j.rootLogger=INFO,console,dailyFile\n# TODO \\u53d1\\u5e03\\u5230\\u963f\\u91cc\\u4e91\\u8bb0\\u5f97\\u6dfb\\u52a0\\uff0c\\u53e6\\u5916\\u63a7\\u5236\\u53f0\\u4e0d\\u8f93\\u51fa(\\u53ea\\u8f93\\u51fawarn\\u6216\\u8005error\\u4fe1\\u606f)\n#INFO,console,dailyFile\n\n#log4j.logger.org.mybatis = DEBUG\nlog4j.logger.com.kkvideo.mapper=INFO\n\nlog4j.appender.console=org.apache.log4j.ConsoleAppender\nlog4j.appender.console.encoding=UTF-8\nlog4j.appender.console.layout=org.apache.log4j.PatternLayout\nlog4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n\n\n# \\u5b9a\\u671f\\u6eda\\u52a8\\u65e5\\u5fd7\\u6587\\u4ef6\\uff0c\\u6bcf\\u5929\\u90fd\\u4f1a\\u751f\\u6210\\u65e5\\u5fd7\nlog4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender\nlog4j.appender.dailyFile.encoding=UTF-8\nlog4j.appender.dailyFile.Threshold=INFO\n# TODO \\u672c\\u5730\\u65e5\\u5fd7\\u5730\\u5740\\uff0c\\u6b63\\u5f0f\\u73af\\u5883\\u8bf7\\u52a1\\u5fc5\\u5207\\u6362\\u4e3a\\u963f\\u91cc\\u4e91\\u5730\\u5740\nlog4j.appender.dailyFile.File=/kkvideo/logs/log.txt\nlog4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd\nlog4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout\nlog4j.appender.dailyFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%l] - [%p] %m%n\n\n"
  },
  {
    "path": "kk-video-api/target/kk-video-api-1.0-SNAPSHOT/WEB-INF/classes/resource.properties",
    "content": "com.kkvideo.zookeeperServer=118.25.189.54:2181\ncom.kkvideo.bgmServer=http://admin.video.redrat.cn:8888\ncom.kkvideo.fileSpace=C:\\\\resource"
  },
  {
    "path": "kk-video-api/target/maven-archiver/pom.properties",
    "content": "#Generated by Apache Maven\n#Mon Jun 25 16:40:13 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kk-video-api\n"
  },
  {
    "path": "kk-video-api/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": "com\\kkvideo\\cofig\\ResourceConfig.class\ncom\\kkvideo\\controller\\VideoController.class\ncom\\kkvideo\\controller\\RegistLoginController.class\ncom\\kkvideo\\ZKCuratorClient.class\ncom\\kkvideo\\ZKCuratorClient$1.class\ncom\\kkvideo\\controller\\BasicController.class\ncom\\kkvideo\\controller\\BgmController.class\ncom\\kkvideo\\interceptor\\UserInterceptor.class\ncom\\kkvideo\\WarStartApplication.class\ncom\\kkvideo\\Swagger2.class\ncom\\kkvideo\\controller\\UserController.class\ncom\\kkvideo\\WebMvcConfig.class\ncom\\kkvideo\\Application.class\n"
  },
  {
    "path": "kk-video-api/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\controller\\BgmController.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\controller\\RegistLoginController.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\cofig\\ResourceConfig.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\WebMvcConfig.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\Swagger2.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\interceptor\\UserInterceptor.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\controller\\BasicController.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\controller\\VideoController.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\controller\\UserController.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\ZKCuratorClient.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\WarStartApplication.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-api\\src\\main\\java\\com\\kkvideo\\Application.java\n"
  },
  {
    "path": "kk-video-api/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-common/kkvideocommon.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-common/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>jimisun.kkvideo</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kk-video-common</artifactId>\n\n    <properties>\n        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n    </properties>\n\n    <dependencies>\n\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter</artifactId>\n            <exclusions>\n                <!-- 排除springboot默认的logback日志框架 -->\n                <exclusion>\n                    <groupId>org.springframework.boot</groupId>\n                    <artifactId>spring-boot-starter-logging</artifactId>\n                </exclusion>\n            </exclusions>\n        </dependency>\n\n        <!-- 引入log4j日志依赖 -->\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-log4j</artifactId>\n            <version>1.3.8.RELEASE</version>\n        </dependency>\n\n        <!-- 引入spring aop依赖 -->\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-aop</artifactId>\n        </dependency>\n\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-web</artifactId>\n            <exclusions>\n            </exclusions>\n        </dependency>\n\n        <!-- 资源配置 -->\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-configuration-processor</artifactId>\n            <optional>true</optional>\n        </dependency>\n\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-thymeleaf</artifactId>\n        </dependency>\n\n        <!-- 阿里开源数据源 -->\n        <dependency>\n            <groupId>com.alibaba</groupId>\n            <artifactId>druid</artifactId>\n            <version>1.1.0</version>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba</groupId>\n            <artifactId>druid-spring-boot-starter</artifactId>\n            <version>1.1.0</version>\n        </dependency>\n\n        <dependency>\n            <groupId>mysql</groupId>\n            <artifactId>mysql-connector-java</artifactId>\n            <version>5.1.41</version>\n        </dependency>\n\n        <!-- mybatis -->\n        <dependency>\n            <groupId>org.mybatis.spring.boot</groupId>\n            <artifactId>mybatis-spring-boot-starter</artifactId>\n            <version>1.3.1</version>\n        </dependency>\n        <!--mapper -->\n        <dependency>\n            <groupId>tk.mybatis</groupId>\n            <artifactId>mapper-spring-boot-starter</artifactId>\n            <version>1.2.4</version>\n        </dependency>\n        <!--pagehelper -->\n        <dependency>\n            <groupId>com.github.pagehelper</groupId>\n            <artifactId>pagehelper-spring-boot-starter</artifactId>\n            <version>1.2.3</version>\n        </dependency>\n\n        <!-- apache 工具类 -->\n        <dependency>\n            <groupId>commons-codec</groupId>\n            <artifactId>commons-codec</artifactId>\n            <version>1.11</version>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-lang3</artifactId>\n            <version>3.4</version>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-io</artifactId>\n            <version>1.3.2</version>\n        </dependency>\n\n        <!-- swagger2 配置 -->\n        <dependency>\n            <groupId>io.springfox</groupId>\n            <artifactId>springfox-swagger2</artifactId>\n            <version>2.4.0</version>\n        </dependency>\n        <dependency>\n            <groupId>io.springfox</groupId>\n            <artifactId>springfox-swagger-ui</artifactId>\n            <version>2.4.0</version>\n        </dependency>\n\n        <!-- 引入 redis 依赖 -->\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-redis</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>redis.clients</groupId>\n            <artifactId>jedis</artifactId>\n            <version>2.9.0</version>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.data</groupId>\n            <artifactId>spring-data-redis</artifactId>\n            <version>1.8.7.RELEASE</version>\n        </dependency>\n\n        <!-- 引入zookeeper -->\n        <dependency>\n            <groupId>org.apache.curator</groupId>\n            <artifactId>curator-framework</artifactId>\n            <version>4.0.0</version>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.zookeeper</groupId>\n            <artifactId>zookeeper</artifactId>\n            <version>3.4.11</version>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.curator</groupId>\n            <artifactId>curator-recipes</artifactId>\n            <version>4.0.0</version>\n        </dependency>\n\n    </dependencies>\n\n\n</project>"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/enums/BGMOperatorTypeEnum.java",
    "content": "package com.kkvideo.enums;\n\npublic enum BGMOperatorTypeEnum {\n\t\n\tADD(\"1\", \"添加bgm\"),\t\t\t\t\n\tDELETE(\"2\", \"删除bgm\");\t\t\n\t\n\tpublic final String type;\n\tpublic final String value;\n\t\n\tBGMOperatorTypeEnum(String type, String value){\n\t\tthis.type = type;\n\t\tthis.value = value;\n\t}\n\t\n\tpublic String getUserType() {\n\t\treturn type;\n\t}  \n\t\n\tpublic String getValue() {\n\t\treturn value;\n\t} \n\t\n\tpublic static String getValueByKey(String key) {\n\t\tfor (BGMOperatorTypeEnum type : BGMOperatorTypeEnum.values()) {\n\t\t\tif (type.getUserType().equals(key)) {\n\t\t\t\treturn type.value;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\t\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/enums/VideoStatusEnum.java",
    "content": "package com.kkvideo.enums;\n\npublic enum VideoStatusEnum {\n\t\n\tSUCCESS(1),\t\t// 发布成功\n\tFORBID(2);\t\t// 禁止播放，管理员操作\n\t\n\tpublic final int value;\n\t\n\tVideoStatusEnum(int value) {\n\t\tthis.value = value;\n\t}\n\t\n\tpublic int getValue() {\n\t\treturn value;\n\t}\n\t\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/FFMpegTest.java",
    "content": "package com.kkvideo.utils;\n\nimport java.io.BufferedReader;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class FFMpegTest {\n\n\tprivate String ffmpegEXE;\n\t\n\tpublic FFMpegTest(String ffmpegEXE) {\n\t\tsuper();\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\t\n\tpublic void convertor(String videoInputPath, String videoOutputPath) throws Exception {\n//\t\tffmpeg -i input.mp4 -y output.avi\n\t\tList<String> command = new ArrayList<>();\n\t\tcommand.add(ffmpegEXE);\n\t\t\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(videoInputPath);\n\t\tcommand.add(\"-y\");\n\t\tcommand.add(videoOutputPath);\n\t\t\n\t\tfor (String c : command) {\n\t\t\tSystem.out.print(c + \" \");\n\t\t}\n\t\t\n\t\tProcessBuilder builder = new ProcessBuilder(command);\n\t\tProcess process = builder.start();\n\t\t\n\t\tInputStream errorStream = process.getErrorStream();\n\t\tInputStreamReader inputStreamReader = new InputStreamReader(errorStream);\n\t\tBufferedReader br = new BufferedReader(inputStreamReader);\n\t\t\n\t\tString line = \"\";\n\t\twhile ( (line = br.readLine()) != null ) {\n\t\t}\n\t\t\n\t\tif (br != null) {\n\t\t\tbr.close();\n\t\t}\n\t\tif (inputStreamReader != null) {\n\t\t\tinputStreamReader.close();\n\t\t}\n\t\tif (errorStream != null) {\n\t\t\terrorStream.close();\n\t\t}\n\t\t\n\t}\n\n\tpublic static void main(String[] args) {\n\t\tFFMpegTest ffmpeg = new FFMpegTest(\"C:\\\\ffmpeg\\\\bin\\\\ffmpeg.exe\");\n\t\ttry {\n\t\t\tffmpeg.convertor(\"C:\\\\苏州大裤衩.mp4\", \"C:\\\\北京北京.avi\");\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/FetchVideoCover.java",
    "content": "package com.kkvideo.utils;\n\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.util.List;\n\n/**\n * \n * @Description: 获取视频的信息\n */\npublic class FetchVideoCover {\n\t// 视频路径\n\tprivate String ffmpegEXE;\n\n\tpublic void getCover(String videoInputPath, String coverOutputPath) throws IOException, InterruptedException {\n//\t\tffmpeg.exe -ss 00:00:01 -i spring.mp4 -vframes 1 bb.jpg\n\t\tList<String> command = new java.util.ArrayList<String>();\n\t\tcommand.add(ffmpegEXE);\n\t\t\n\t\t// 指定截取第1秒\n\t\tcommand.add(\"-ss\");\n\t\tcommand.add(\"00:00:01\");\n\t\t\t\t\n\t\tcommand.add(\"-y\");\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(videoInputPath);\n\t\t\n\t\tcommand.add(\"-vframes\");\n\t\tcommand.add(\"1\");\n\t\t\n\t\tcommand.add(coverOutputPath);\n\t\t\n\t\tfor (String c : command) {\n\t\t\tSystem.out.print(c + \" \");\n\t\t}\n\t\t\n\t\tProcessBuilder builder = new ProcessBuilder(command);\n\t\tProcess process = builder.start();\n\t\t\n\t\tInputStream errorStream = process.getErrorStream();\n\t\tInputStreamReader inputStreamReader = new InputStreamReader(errorStream);\n\t\tBufferedReader br = new BufferedReader(inputStreamReader);\n\t\t\n\t\tString line = \"\";\n\t\twhile ( (line = br.readLine()) != null ) {\n\t\t}\n\t\t\n\t\tif (br != null) {\n\t\t\tbr.close();\n\t\t}\n\t\tif (inputStreamReader != null) {\n\t\t\tinputStreamReader.close();\n\t\t}\n\t\tif (errorStream != null) {\n\t\t\terrorStream.close();\n\t\t}\n\t}\n\n\tpublic String getFfmpegEXE() {\n\t\treturn ffmpegEXE;\n\t}\n\n\tpublic void setFfmpegEXE(String ffmpegEXE) {\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\n\tpublic FetchVideoCover() {\n\t\tsuper();\n\t}\n\n\tpublic FetchVideoCover(String ffmpegEXE) {\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\t\n\tpublic static void main(String[] args) {\n\t\t// 获取视频信息。\n\t\tFetchVideoCover videoInfo = new FetchVideoCover(\"E:\\\\ffmpeg\\\\ffmpeg\\\\bin\\\\ffmpeg.exe\");\n\t\ttry {\n\t\t\tvideoInfo.getCover(\"D:\\\\test.mp4\",\"D:\\\\test.jpg\");\n\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n}"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/JsonUtils.java",
    "content": "package com.kkvideo.utils;\n\nimport com.fasterxml.jackson.core.JsonProcessingException;\nimport com.fasterxml.jackson.databind.JavaType;\nimport com.fasterxml.jackson.databind.ObjectMapper;\n\nimport java.util.List;\n\n/**\n * \n * @Title: JsonUtils.java\n * @Package com.lee.utils\n * @Description: 自定义响应结构, 转换类\n * Copyright: Copyright (c) 2016\n * Company:Nathan.Lee.Salvatore\n * \n * @author leechenxiang\n * @date 2016年4月29日 下午11:05:03\n * @version V1.0\n */\npublic class JsonUtils {\n\n    // 定义jackson对象\n    private static final ObjectMapper MAPPER = new ObjectMapper();\n\n    /**\n     * 将对象转换成json字符串。\n     * <p>Title: pojoToJson</p>\n     * <p>Description: </p>\n     * @param data\n     * @return\n     */\n    public static String objectToJson(Object data) {\n    \ttry {\n\t\t\tString string = MAPPER.writeValueAsString(data);\n\t\t\treturn string;\n\t\t} catch (JsonProcessingException e) {\n\t\t\te.printStackTrace();\n\t\t}\n    \treturn null;\n    }\n    \n    /**\n     * 将json结果集转化为对象\n     * \n     * @param jsonData json数据\n     * @param clazz 对象中的object类型\n     * @return\n     */\n    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {\n        try {\n            T t = MAPPER.readValue(jsonData, beanType);\n            return t;\n        } catch (Exception e) {\n        \te.printStackTrace();\n        }\n        return null;\n    }\n    \n    /**\n     * 将json数据转换成pojo对象list\n     * <p>Title: jsonToList</p>\n     * <p>Description: </p>\n     * @param jsonData\n     * @param beanType\n     * @return\n     */\n    public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {\n    \tJavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);\n    \ttry {\n    \t\tList<T> list = MAPPER.readValue(jsonData, javaType);\n    \t\treturn list;\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n    \t\n    \treturn null;\n    }\n    \n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/KkJsonResult.java",
    "content": "package com.kkvideo.utils;\n\n/**\n * @Description: 自定义响应数据结构\n * \t\t\t\t这个类是提供给门户，ios，安卓，微信商城用的\n * \t\t\t\t门户接受此类数据后需要使用本类的方法转换成对于的数据类型格式（类，或者list）\n * \t\t\t\t其他自行处理\n * \t\t\t\t200：表示成功\n * \t\t\t\t500：表示错误，错误信息在msg字段中\n * \t\t\t\t501：bean验证错误，不管多少个错误都以map形式返回\n * \t\t\t\t502：拦截器拦截到用户token出错\n * \t\t\t\t555：异常抛出信息\n */\npublic class KkJsonResult {\n\n    // 响应业务状态\n    private Integer status;\n\n    // 响应消息\n    private String msg;\n\n    // 响应中的数据\n    private Object data;\n    \n    private String ok;\t// 不使用\n\n    public static KkJsonResult build(Integer status, String msg, Object data) {\n        return new KkJsonResult(status, msg, data);\n    }\n\n    public static KkJsonResult ok(Object data) {\n        return new KkJsonResult(data);\n    }\n\n    public static KkJsonResult ok() {\n        return new KkJsonResult(null);\n    }\n    \n    public static KkJsonResult errorMsg(String msg) {\n        return new KkJsonResult(500, msg, null);\n    }\n    \n    public static KkJsonResult errorMap(Object data) {\n        return new KkJsonResult(501, \"error\", data);\n    }\n    \n    public static KkJsonResult errorTokenMsg(String msg) {\n        return new KkJsonResult(502, msg, null);\n    }\n    \n    public static KkJsonResult errorException(String msg) {\n        return new KkJsonResult(555, msg, null);\n    }\n\n    public KkJsonResult() {\n\n    }\n\n    public KkJsonResult(Integer status, String msg, Object data) {\n        this.status = status;\n        this.msg = msg;\n        this.data = data;\n    }\n\n    public KkJsonResult(Object data) {\n        this.status = 200;\n        this.msg = \"OK\";\n        this.data = data;\n    }\n\n    public Boolean isOK() {\n        return this.status == 200;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public String getMsg() {\n        return msg;\n    }\n\n    public void setMsg(String msg) {\n        this.msg = msg;\n    }\n\n    public Object getData() {\n        return data;\n    }\n\n    public void setData(Object data) {\n        this.data = data;\n    }\n\n\tpublic String getOk() {\n\t\treturn ok;\n\t}\n\n\tpublic void setOk(String ok) {\n\t\tthis.ok = ok;\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/MD5Utils.java",
    "content": "package com.kkvideo.utils;\n\nimport java.security.MessageDigest;\n\nimport org.apache.commons.codec.binary.Base64;\n\npublic class MD5Utils {\n\n\t/**\n\t * @Description: 对字符串进行md5加密\n\t */\n\tpublic static String getMD5Str(String strValue) throws Exception {\n\t\tMessageDigest md5 = MessageDigest.getInstance(\"MD5\");\n\t\tString newstr = Base64.encodeBase64String(md5.digest(strValue.getBytes()));\n\t\treturn newstr;\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/MergeVideoMp3.java",
    "content": "package com.kkvideo.utils;\n\nimport java.io.BufferedReader;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class MergeVideoMp3 {\n\n\tprivate String ffmpegEXE;\n\t\n\tpublic MergeVideoMp3(String ffmpegEXE) {\n\t\tsuper();\n\t\tthis.ffmpegEXE = ffmpegEXE;\n\t}\n\t\n\tpublic void convertor(String mp3InputPath,String videoInputPath,\n\t\t\tdouble seconds, String videoOutputPath) throws Exception {\n\t\tList<String> command = new ArrayList<>();\n\t\tcommand.add(ffmpegEXE);\n\t\t\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(mp3InputPath);\n\t\t\n\t\tcommand.add(\"-i\");\n\t\tcommand.add(videoInputPath);\n\t\t\n\t\tcommand.add(\"-t\");\n\t\tcommand.add(String.valueOf(seconds));\n\t\t\n\t\tcommand.add(\"-y\");\n\t\tcommand.add(videoOutputPath);\n\t\t\n\n\t\t\n\t\tProcessBuilder builder = new ProcessBuilder(command);\n\t\tProcess process = builder.start();\n\t\t\n\t\tInputStream errorStream = process.getErrorStream();\n\t\tInputStreamReader inputStreamReader = new InputStreamReader(errorStream);\n\t\tBufferedReader br = new BufferedReader(inputStreamReader);\n\t\t\n\t\tString line = \"\";\n\t\twhile ( (line = br.readLine()) != null ) {\n\t\t}\n\t\t\n\t\tif (br != null) {\n\t\t\tbr.close();\n\t\t}\n\t\tif (inputStreamReader != null) {\n\t\t\tinputStreamReader.close();\n\t\t}\n\t\tif (errorStream != null) {\n\t\t\terrorStream.close();\n\t\t}\n\t\t\n\t}\n\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/MyMapper.java",
    "content": "/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2014-2016 abel533@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\npackage com.kkvideo.utils;\n\nimport tk.mybatis.mapper.common.Mapper;\nimport tk.mybatis.mapper.common.MySqlMapper;\n\npublic interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {\n    //TODO\n    //FIXME 特别注意，该接口不能被扫描到，否则会出错\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/PagedResult.java",
    "content": "package com.kkvideo.utils;\n\nimport java.util.List;\n\n/**\n * @Description: 封装分页后的数据格式\n */\npublic class PagedResult {\n\t\n\tprivate int page;\t\t\t// 当前页数\n\tprivate int total;\t\t\t// 总页数\t\n\tprivate long records;\t\t// 总记录数\n\tprivate List<?> rows;\t\t// 每行显示的内容\n\t\n\tpublic int getPage() {\n\t\treturn page;\n\t}\n\tpublic void setPage(int page) {\n\t\tthis.page = page;\n\t}\n\tpublic int getTotal() {\n\t\treturn total;\n\t}\n\tpublic void setTotal(int total) {\n\t\tthis.total = total;\n\t}\n\tpublic long getRecords() {\n\t\treturn records;\n\t}\n\tpublic void setRecords(long records) {\n\t\tthis.records = records;\n\t}\n\tpublic List<?> getRows() {\n\t\treturn rows;\n\t}\n\tpublic void setRows(List<?> rows) {\n\t\tthis.rows = rows;\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/RedisOperator.java",
    "content": "package com.kkvideo.utils;\n\nimport java.util.Map;\nimport java.util.Set;\nimport java.util.concurrent.TimeUnit;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.redis.core.StringRedisTemplate;\nimport org.springframework.stereotype.Component;\n\n/**\n * @Description: 使用redisTemplate的操作实现类 \n */\n@Component\npublic class RedisOperator {\n\t\n//\t@Autowired\n//    private RedisTemplate<String, Object> redisTemplate;\n\t\n\t@Autowired\n\tprivate StringRedisTemplate redisTemplate;\n\t\n\t// Key（键），简单的key-value操作\n\n\t/**\n\t * 实现命令：TTL key，以秒为单位，返回给定 key的剩余生存时间(TTL, time to live)。\n\t * \n\t * @param key\n\t * @return\n\t */\n\tpublic long ttl(String key) {\n\t\treturn redisTemplate.getExpire(key);\n\t}\n\t\n\t/**\n\t * 实现命令：expire 设置过期时间，单位秒\n\t * \n\t * @param key\n\t * @return\n\t */\n\tpublic void expire(String key, long timeout) {\n\t\tredisTemplate.expire(key, timeout, TimeUnit.SECONDS);\n\t}\n\t\n\t/**\n\t * 实现命令：INCR key，增加key一次\n\t * \n\t * @param key\n\t * @return\n\t */\n\tpublic long incr(String key, long delta) {\n\t\treturn redisTemplate.opsForValue().increment(key, delta);\n\t}\n\n\t/**\n\t * 实现命令：KEYS pattern，查找所有符合给定模式 pattern的 key\n\t */\n\tpublic Set<String> keys(String pattern) {\n\t\treturn redisTemplate.keys(pattern);\n\t}\n\n\t/**\n\t * 实现命令：DEL key，删除一个key\n\t * \n\t * @param key\n\t */\n\tpublic void del(String key) {\n\t\tredisTemplate.delete(key);\n\t}\n\n\t// String（字符串）\n\n\t/**\n\t * 实现命令：SET key value，设置一个key-value（将字符串值 value关联到 key）\n\t * \n\t * @param key\n\t * @param value\n\t */\n\tpublic void set(String key, String value) {\n\t\tredisTemplate.opsForValue().set(key, value);\n\t}\n\n\t/**\n\t * 实现命令：SET key value EX seconds，设置key-value和超时时间（秒）\n\t * \n\t * @param key\n\t * @param value\n\t * @param timeout\n\t *            （以秒为单位）\n\t */\n\tpublic void set(String key, String value, long timeout) {\n\t\tredisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);\n\t}\n\n\t/**\n\t * 实现命令：GET key，返回 key所关联的字符串值。\n\t * \n\t * @param key\n\t * @return value\n\t */\n\tpublic String get(String key) {\n\t\treturn (String)redisTemplate.opsForValue().get(key);\n\t}\n\n\t// Hash（哈希表）\n\n\t/**\n\t * 实现命令：HSET key field value，将哈希表 key中的域 field的值设为 value\n\t * \n\t * @param key\n\t * @param field\n\t * @param value\n\t */\n\tpublic void hset(String key, String field, Object value) {\n\t\tredisTemplate.opsForHash().put(key, field, value);\n\t}\n\n\t/**\n\t * 实现命令：HGET key field，返回哈希表 key中给定域 field的值\n\t * \n\t * @param key\n\t * @param field\n\t * @return\n\t */\n\tpublic String hget(String key, String field) {\n\t\treturn (String) redisTemplate.opsForHash().get(key, field);\n\t}\n\n\t/**\n\t * 实现命令：HDEL key field [field ...]，删除哈希表 key 中的一个或多个指定域，不存在的域将被忽略。\n\t * \n\t * @param key\n\t * @param fields\n\t */\n\tpublic void hdel(String key, Object... fields) {\n\t\tredisTemplate.opsForHash().delete(key, fields);\n\t}\n\n\t/**\n\t * 实现命令：HGETALL key，返回哈希表 key中，所有的域和值。\n\t * \n\t * @param key\n\t * @return\n\t */\n\tpublic Map<Object, Object> hgetall(String key) {\n\t\treturn redisTemplate.opsForHash().entries(key);\n\t}\n\n\t// List（列表）\n\n\t/**\n\t * 实现命令：LPUSH key value，将一个值 value插入到列表 key的表头\n\t * \n\t * @param key\n\t * @param value\n\t * @return 执行 LPUSH命令后，列表的长度。\n\t */\n\tpublic long lpush(String key, String value) {\n\t\treturn redisTemplate.opsForList().leftPush(key, value);\n\t}\n\n\t/**\n\t * 实现命令：LPOP key，移除并返回列表 key的头元素。\n\t * \n\t * @param key\n\t * @return 列表key的头元素。\n\t */\n\tpublic String lpop(String key) {\n\t\treturn (String)redisTemplate.opsForList().leftPop(key);\n\t}\n\n\t/**\n\t * 实现命令：RPUSH key value，将一个值 value插入到列表 key的表尾(最右边)。\n\t * \n\t * @param key\n\t * @param value\n\t * @return 执行 LPUSH命令后，列表的长度。\n\t */\n\tpublic long rpush(String key, String value) {\n\t\treturn redisTemplate.opsForList().rightPush(key, value);\n\t}\n\n}"
  },
  {
    "path": "kk-video-common/src/main/java/com/kkvideo/utils/TimeAgoUtils.java",
    "content": "package com.kkvideo.utils;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\npublic class TimeAgoUtils {\n\n\tprivate static final long ONE_MINUTE = 60000L;\n\tprivate static final long ONE_HOUR = 3600000L;\n\tprivate static final long ONE_DAY = 86400000L;\n\tprivate static final long ONE_WEEK = 604800000L;\n\n\tprivate static final String ONE_SECOND_AGO = \"秒前\";\n\tprivate static final String ONE_MINUTE_AGO = \"分钟前\";\n\tprivate static final String ONE_HOUR_AGO = \"小时前\";\n\tprivate static final String ONE_DAY_AGO = \"天前\";\n\tprivate static final String ONE_MONTH_AGO = \"月前\";\n\tprivate static final String ONE_YEAR_AGO = \"年前\";\n\n\tpublic static String format(Date date) {\n\t\tlong delta = new Date().getTime() - date.getTime();\n\t\tif (delta < 1L * ONE_MINUTE) {\n\t\t\tlong seconds = toSeconds(delta);\n\t\t\treturn (seconds <= 0 ? 1 : seconds) + ONE_SECOND_AGO;\n\t\t}\n\t\tif (delta < 45L * ONE_MINUTE) {\n\t\t\tlong minutes = toMinutes(delta);\n\t\t\treturn (minutes <= 0 ? 1 : minutes) + ONE_MINUTE_AGO;\n\t\t}\n\t\tif (delta < 24L * ONE_HOUR) {\n\t\t\tlong hours = toHours(delta);\n\t\t\treturn (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO;\n\t\t}\n\t\tif (delta < 48L * ONE_HOUR) {\n\t\t\treturn \"昨天\";\n\t\t}\n\t\tif (delta < 30L * ONE_DAY) {\n\t\t\tlong days = toDays(delta);\n\t\t\treturn (days <= 0 ? 1 : days) + ONE_DAY_AGO;\n\t\t}\n\t\tif (delta < 12L * 4L * ONE_WEEK) {\n\t\t\tlong months = toMonths(delta);\n\t\t\treturn (months <= 0 ? 1 : months) + ONE_MONTH_AGO;\n\t\t} else {\n\t\t\tlong years = toYears(delta);\n\t\t\treturn (years <= 0 ? 1 : years) + ONE_YEAR_AGO;\n\t\t}\n\t}\n\n\tprivate static long toSeconds(long date) {\n\t\treturn date / 1000L;\n\t}\n\n\tprivate static long toMinutes(long date) {\n\t\treturn toSeconds(date) / 60L;\n\t}\n\n\tprivate static long toHours(long date) {\n\t\treturn toMinutes(date) / 60L;\n\t}\n\n\tprivate static long toDays(long date) {\n\t\treturn toHours(date) / 24L;\n\t}\n\n\tprivate static long toMonths(long date) {\n\t\treturn toDays(date) / 30L;\n\t}\n\n\tprivate static long toYears(long date) {\n\t\treturn toMonths(date) / 365L;\n\t}\n\n\tpublic static void main(String[] args) throws Exception {\n\t\tSimpleDateFormat format = new SimpleDateFormat(\"yyyy-MM-dd HH:m:s\");\n\t\tDate date = format.parse(\"2018-05-01 18:35:35\");\n\t\tSystem.out.println(format(date));\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/Code.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DefaultRandomCodeStrategy;\n\npublic class Code {\n    private static RandomCodeStrategy strategy;\n\n    static {\n        RandomCodeStrategy strategy = new DefaultRandomCodeStrategy();\n        strategy.init();\n        configure(strategy);\n    }\n\n    public static synchronized void configure(RandomCodeStrategy custom) {\n        if (strategy == custom) return;\n        if (strategy != null) strategy.release();\n\n        strategy = custom;\n    }\n\n    /**\n     * Next Unique code.\n     * The max length will be 1024-Integer.MAX-Integer.MAX(2147483647) which has 4+10+10+2*1=26 characters.\n     * The min length will be 0-0.\n     *\n     * @return unique string code.\n     */\n    public static synchronized String next() {\n        long workerId = Id.getWorkerId();\n        int prefix = strategy.prefix();\n        int next = strategy.next();\n\n        return String.format(\"%d-%03d-%06d\", workerId, prefix, next);\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/DayCode.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DayPrefixRandomCodeStrategy;\n\npublic class DayCode {\n    static RandomCodeStrategy strategy;\n\n    static {\n        DayPrefixRandomCodeStrategy dayPrefixCodeStrategy = new DayPrefixRandomCodeStrategy(\"yyMM\");\n        dayPrefixCodeStrategy.setMinRandomSize(7);\n        dayPrefixCodeStrategy.setMaxRandomSize(7);\n        strategy = dayPrefixCodeStrategy;\n        strategy.init();\n    }\n\n    public static synchronized String next() {\n        return String.format(\"%d-%04d-%07d\", Id.getWorkerId(), strategy.prefix(), strategy.next());\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/Id.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DefaultWorkerIdStrategy;\n\npublic class Id {\n    private static WorkerIdStrategy workerIdStrategy;\n    private static IdWorker idWorker;\n\n    static {\n        configure(DefaultWorkerIdStrategy.instance);\n    }\n\n    public static synchronized void configure(WorkerIdStrategy custom) {\n        if (workerIdStrategy == custom) return;\n\n        if (workerIdStrategy != null) workerIdStrategy.release();\n        workerIdStrategy = custom;\n        workerIdStrategy.initialize();\n        idWorker = new IdWorker(workerIdStrategy.availableWorkerId());\n    }\n\n    public static long next() {\n        return idWorker.nextId();\n    }\n\n    public static long getWorkerId() {\n        return idWorker.getWorkerId();\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/IdWorker.java",
    "content": "package org.n3r.idworker;\n\nimport java.security.SecureRandom;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\npublic class IdWorker {\n    protected long epoch = 1288834974657L;\n//    protected long epoch = 1387886498127L; // 2013-12-24 20:01:38.127\n    \n\n    protected long workerIdBits = 10L;\n    protected long maxWorkerId = -1L ^ (-1L << workerIdBits);\n    protected long sequenceBits = 11L;\n\n    protected long workerIdShift = sequenceBits;\n    protected long timestampLeftShift = sequenceBits + workerIdBits;\n    protected long sequenceMask = -1L ^ (-1L << sequenceBits);\n\n    protected long lastMillis = -1L;\n\n    protected final long workerId;\n    protected long sequence = 0L;\n    protected Logger logger = LoggerFactory.getLogger(IdWorker.class);\n\n    public IdWorker(long workerId) {\n        this.workerId = checkWorkerId(workerId);\n\n        logger.debug(\"worker starting. timestamp left shift {}, worker id {}\", timestampLeftShift, workerId);\n    }\n\n    public long getEpoch() {\n        return epoch;\n    }\n\n    private long checkWorkerId(long workerId) {\n        // sanity check for workerId\n        if (workerId > maxWorkerId || workerId < 0) {\n            int rand = new SecureRandom().nextInt((int) maxWorkerId + 1);\n            logger.warn(\"worker Id can't be greater than {} or less than 0, use a random {}\", maxWorkerId, rand);\n            return rand;\n        }\n\n        return workerId;\n    }\n\n    public synchronized long nextId() {\n        long timestamp = millisGen();\n\n        if (timestamp < lastMillis) {\n            logger.error(\"clock is moving backwards.  Rejecting requests until {}.\", lastMillis);\n            throw new InvalidSystemClock(String.format(\n                    \"Clock moved backwards.  Refusing to generate id for {} milliseconds\", lastMillis - timestamp));\n        }\n\n        if (lastMillis == timestamp) {\n            sequence = (sequence + 1) & sequenceMask;\n            if (sequence == 0)\n                timestamp = tilNextMillis(lastMillis);\n        } else {\n            sequence = 0;\n        }\n\n        lastMillis = timestamp;\n        long diff = timestamp - getEpoch();\n        return (diff << timestampLeftShift) |\n                (workerId << workerIdShift) |\n                sequence;\n    }\n\n    protected long tilNextMillis(long lastMillis) {\n        long millis = millisGen();\n        while (millis <= lastMillis)\n            millis = millisGen();\n\n        return millis;\n    }\n\n    protected long millisGen() {\n        return System.currentTimeMillis();\n    }\n\n    public long getLastMillis() {\n        return lastMillis;\n    }\n\n    public long getWorkerId() {\n        return workerId;\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/InvalidSystemClock.java",
    "content": "package org.n3r.idworker;\n\npublic class InvalidSystemClock extends RuntimeException {\n    public InvalidSystemClock(String message) {\n        super(message);\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/RandomCodeStrategy.java",
    "content": "package org.n3r.idworker;\n\npublic interface RandomCodeStrategy {\n    void init();\n\n    int prefix();\n\n    int next();\n\n    void release();\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/Sid.java",
    "content": "package org.n3r.idworker;\n\nimport org.n3r.idworker.strategy.DefaultWorkerIdStrategy;\nimport org.n3r.idworker.utils.Utils;\nimport org.springframework.stereotype.Component;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n@Component\npublic class Sid {\n    private static WorkerIdStrategy workerIdStrategy;\n    private static IdWorker idWorker;\n\n    static {\n        configure(DefaultWorkerIdStrategy.instance);\n    }\n\n\n    public static synchronized void configure(WorkerIdStrategy custom) {\n        if (workerIdStrategy != null) workerIdStrategy.release();\n        workerIdStrategy = custom;\n        idWorker = new IdWorker(workerIdStrategy.availableWorkerId()) {\n            @Override\n            public long getEpoch() {\n                return Utils.midnightMillis();\n            }\n        };\n    }\n\n    /**\n     * 一天最大毫秒86400000，最大占用27比特\n     * 27+10+11=48位 最大值281474976710655(15字)，YK0XXHZ827(10字)\n     * 6位(YYMMDD)+15位，共21位\n     *\n     * @return 固定21位数字字符串\n     */\n\n    public static String next() {\n        long id = idWorker.nextId();\n        String yyMMdd = new SimpleDateFormat(\"yyMMdd\").format(new Date());\n        return yyMMdd + String.format(\"%014d\", id);\n    }\n\n\n    /**\n     * 返回固定16位的字母数字混编的字符串。\n     */\n    public String nextShort() {\n        long id = idWorker.nextId();\n        String yyMMdd = new SimpleDateFormat(\"yyMMdd\").format(new Date());\n        return yyMMdd + Utils.padLeft(Utils.encode(id), 10, '0');\n    }\n    \n//    public static void main(String[] args) {\n//\t\tString aa = new Sid().nextShort();\n//\t\tString bb = new Sid().next();\n//\t\t\n//\t\tSystem.out.println(aa);\n//\t\tSystem.out.println(bb);\n//\t}\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/Test.java",
    "content": "package org.n3r.idworker;\n\npublic class Test {\n\n\tpublic static void main(String[] args) {\n\n\t\tfor (int i = 0 ; i < 1000 ; i ++) {\n//\t\t\tSystem.out.println(Sid.nextShort());\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/WorkerIdStrategy.java",
    "content": "package org.n3r.idworker;\n\npublic interface WorkerIdStrategy {\n    void initialize();\n\n    long availableWorkerId();\n\n    void release();\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/strategy/DayPrefixRandomCodeStrategy.java",
    "content": "package org.n3r.idworker.strategy;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\npublic class DayPrefixRandomCodeStrategy extends DefaultRandomCodeStrategy {\n    private final String dayFormat;\n    private String lastDay;\n\n    public DayPrefixRandomCodeStrategy(String dayFormat) {\n        this.dayFormat = dayFormat;\n    }\n\n    @Override\n    public void init() {\n        String day = createDate();\n        if (day.equals(lastDay))\n            throw new RuntimeException(\"init failed for day unrolled\");\n\n        lastDay = day;\n\n        availableCodes.clear();\n        release();\n\n        prefixIndex = Integer.parseInt(lastDay);\n        if (tryUsePrefix()) return;\n\n        throw new RuntimeException(\"prefix is not available \" + prefixIndex);\n    }\n\n    private String createDate() {\n        return new SimpleDateFormat(dayFormat).format(new Date());\n    }\n\n    @Override\n    public int next() {\n        if (!lastDay.equals(createDate())) init();\n\n        return super.next();\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/strategy/DefaultRandomCodeStrategy.java",
    "content": "package org.n3r.idworker.strategy;\n\nimport org.n3r.idworker.Id;\nimport org.n3r.idworker.RandomCodeStrategy;\nimport org.n3r.idworker.utils.Utils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.security.SecureRandom;\nimport java.util.ArrayDeque;\nimport java.util.BitSet;\nimport java.util.Queue;\n\npublic class DefaultRandomCodeStrategy implements RandomCodeStrategy {\n    public static final int MAX_BITS = 1000000;\n\n    Logger log = LoggerFactory.getLogger(DefaultRandomCodeStrategy.class);\n\n    File idWorkerHome = Utils.createIdWorkerHome();\n    volatile FileLock fileLock;\n    BitSet codesFilter;\n\n    int prefixIndex = -1;\n    File codePrefixIndex;\n\n    int minRandomSize = 6;\n    int maxRandomSize = 6;\n\n    public DefaultRandomCodeStrategy() {\n        destroyFileLockWhenShutdown();\n    }\n\n    @Override\n    public void init() {\n        release();\n\n        while (++prefixIndex < 1000) {\n            if (tryUsePrefix()) return;\n        }\n\n        throw new RuntimeException(\"all prefixes are used up, the world maybe ends!\");\n    }\n\n    public DefaultRandomCodeStrategy setMinRandomSize(int minRandomSize) {\n        this.minRandomSize = minRandomSize;\n        return this;\n    }\n\n    public DefaultRandomCodeStrategy setMaxRandomSize(int maxRandomSize) {\n        this.maxRandomSize = maxRandomSize;\n        return this;\n    }\n\n    protected boolean tryUsePrefix() {\n        codePrefixIndex = new File(idWorkerHome, Id.getWorkerId() + \".code.prefix.\" + prefixIndex);\n\n        if (!createPrefixIndexFile()) return false;\n        if (!createFileLock()) return false;\n        if (!createBloomFilter()) return false;\n\n        log.info(\"get available prefix index file {}\", codePrefixIndex);\n\n        return true;\n    }\n\n    private boolean createFileLock() {\n        if (fileLock != null) fileLock.destroy();\n        fileLock = new FileLock(codePrefixIndex);\n        return fileLock.tryLock();\n    }\n\n    private boolean createBloomFilter() {\n        codesFilter = fileLock.readObject();\n        if (codesFilter == null) {\n            log.info(\"create new bloom filter\");\n            codesFilter = new BitSet(MAX_BITS); // 2^24\n        } else {\n            int size = codesFilter.cardinality();\n            if (size >= MAX_BITS) {\n                log.warn(\"bloom filter with prefix file {} is already full\", codePrefixIndex);\n                return false;\n            }\n            log.info(\"recreate bloom filter with cardinality {}\", size);\n        }\n\n        return true;\n    }\n\n    private void destroyFileLockWhenShutdown() {\n        Runtime.getRuntime().addShutdownHook(new Thread() {\n            @Override\n            public void run() {\n                release();\n            }\n        });\n    }\n\n    private boolean createPrefixIndexFile() {\n        try {\n            codePrefixIndex.createNewFile();\n            return codePrefixIndex.exists();\n        } catch (IOException e) {\n            e.printStackTrace();\n            log.warn(\"create file {} error {}\", codePrefixIndex, e.getMessage());\n        }\n        return false;\n    }\n\n    @Override\n    public int prefix() {\n        return prefixIndex;\n    }\n\n    static final int CACHE_CODES_NUM = 1000;\n\n    SecureRandom secureRandom = new SecureRandom();\n    Queue<Integer> availableCodes = new ArrayDeque<Integer>(CACHE_CODES_NUM);\n\n    @Override\n    public int next() {\n        if (availableCodes.isEmpty()) generate();\n\n        return availableCodes.poll();\n    }\n\n    @Override\n    public synchronized void release() {\n        if (fileLock != null) {\n            fileLock.writeObject(codesFilter);\n            fileLock.destroy();\n            fileLock = null;\n        }\n    }\n\n    private void generate() {\n        for (int i = 0; i < CACHE_CODES_NUM; ++i)\n            availableCodes.add(generateOne());\n\n        fileLock.writeObject(codesFilter);\n    }\n\n    private int generateOne() {\n        while (true) {\n            int code = secureRandom.nextInt(max(maxRandomSize));\n            boolean existed = contains(code);\n\n            code = !existed ? add(code) : tryFindAvailableCode(code);\n            if (code >= 0) return code;\n\n            init();\n        }\n    }\n\n    private int tryFindAvailableCode(int code) {\n        int next = codesFilter.nextClearBit(code);\n        if (next != -1 && next < max(maxRandomSize)) return add(next);\n\n        next = codesFilter.previousClearBit(code);\n        if (next != -1) return add(next);\n\n        return -1;\n    }\n\n    private int add(int code) {\n        codesFilter.set(code);\n        return code;\n    }\n\n    private boolean contains(int code) {\n        return codesFilter.get(code);\n    }\n\n\n    private int max(int size) {\n        switch (size) {\n            case 1: // fall through\n            case 2: // fall through\n            case 3: // fall through\n            case 4:\n                return 10000;\n            case 5:\n                return 100000;\n            case 6:\n                return 1000000;\n            case 7:\n                return 10000000;\n            case 8:\n                return 100000000;\n            case 9:\n                return 1000000000;\n            default:\n                return Integer.MAX_VALUE;\n        }\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/strategy/DefaultWorkerIdStrategy.java",
    "content": "package org.n3r.idworker.strategy;\n\nimport org.n3r.idworker.WorkerIdStrategy;\nimport org.n3r.idworker.utils.HttpReq;\nimport org.n3r.idworker.utils.Ip;\nimport org.n3r.idworker.utils.Props;\nimport org.n3r.idworker.utils.Utils;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.security.SecureRandom;\nimport java.util.Properties;\nimport java.util.Random;\n\npublic class DefaultWorkerIdStrategy implements WorkerIdStrategy {\n    static long workerIdBits = 10L;\n    static long maxWorkerId = -1L ^ (-1L << workerIdBits);\n    static Random random = new SecureRandom();\n\n    public static final WorkerIdStrategy instance = new DefaultWorkerIdStrategy();\n\n    private final Properties props =\n            Props.tryProperties(\"idworker-client.properties\", Utils.DOT_IDWORKERS);\n    private final String idWorkerServerUrl =\n            props.getProperty(\"server.address\", \"http://id.worker.server:18001\");\n\n    String userName = System.getProperty(\"user.name\");\n\n    String ipDotUsername = Ip.ip + \".\" + userName;\n    String ipudotlock = ipDotUsername + \".lock.\";\n    int workerIdIndex = ipudotlock.length();\n    long workerId;\n    FileLock fileLock;\n\n    Logger logger = LoggerFactory.getLogger(DefaultWorkerIdStrategy.class);\n    private boolean inited;\n\n\n    private void init() {\n        workerId = findAvailWorkerId();\n        if (workerId >= 0) {\n            destroyFileLockWhenShutdown();\n            startSyncThread();\n        } else {\n            syncWithWorkerIdServer();\n            workerId = findAvailWorkerId();\n            if (workerId < 0) workerId = increaseWithWorkerIdServer();\n        }\n\n        if (workerId < 0) workerId = tryToCreateOnIp();\n        if (workerId < 0) {\n            logger.warn(\"DANGEROUS!!! Try to use random worker id.\");\n            workerId = tryToRandomOnIp(); // Try avoiding! it could cause duplicated\n        }\n\n        if (workerId < 0) {\n            logger.warn(\"the world may be ended!\");\n            throw new RuntimeException(\"the world may be ended\");\n        }\n    }\n\n    private void destroyFileLockWhenShutdown() {\n        Runtime.getRuntime().addShutdownHook(new Thread() {\n            @Override\n            public void run() {\n                fileLock.destroy();\n            }\n        });\n    }\n\n    private void startSyncThread() {\n        new Thread() {\n            @Override\n            public void run() {\n                syncWithWorkerIdServer();\n            }\n        }.start();\n    }\n\n    private long increaseWithWorkerIdServer() {\n        String incId = HttpReq.get(idWorkerServerUrl)\n                .req(\"/inc\")\n                .param(\"ipu\", ipDotUsername)\n                .exec();\n        if (incId == null || incId.trim().isEmpty()) return -1L;\n\n        long lid = Long.parseLong(incId);\n\n        return checkAvail(lid);\n    }\n\n    private long tryToCreateOnIp() {\n        long wid = Ip.lip & maxWorkerId;\n\n        return checkAvail(wid);\n    }\n\n    private long tryToRandomOnIp() {\n        long avaiWorkerId = -1L;\n        long tryTimes = -1;\n\n        while (avaiWorkerId < 0 && ++tryTimes < maxWorkerId) {\n            long wid = Ip.lip & random.nextInt((int) maxWorkerId);\n\n            avaiWorkerId = checkAvail(wid);\n        }\n        return avaiWorkerId;\n    }\n\n    private long checkAvail(long wid) {\n        long availWorkerId = -1L;\n        try {\n            File idWorkerHome = Utils.createIdWorkerHome();\n            new File(idWorkerHome, ipudotlock + String.format(\"%04d\", wid)).createNewFile();\n            availWorkerId = findAvailWorkerId();\n        } catch (IOException e) {\n            logger.warn(\"checkAvail error\", e);\n        }\n\n        return availWorkerId;\n    }\n\n    private void syncWithWorkerIdServer() {\n        String syncIds = HttpReq.get(idWorkerServerUrl).req(\"/sync\")\n                .param(\"ipu\", ipDotUsername).param(\"ids\", buildWorkerIdsOfCurrentIp())\n                .exec();\n        if (syncIds == null || syncIds.trim().isEmpty()) return;\n\n        String[] syncIdsArr = syncIds.split(\",\");\n        File idWorkerHome = Utils.createIdWorkerHome();\n        for (String syncId : syncIdsArr) {\n            try {\n                new File(idWorkerHome, ipudotlock + syncId).createNewFile();\n            } catch (IOException e) {\n                logger.warn(\"create workerid lock file error\", e);\n            }\n        }\n    }\n\n    private String buildWorkerIdsOfCurrentIp() {\n        StringBuilder sb = new StringBuilder();\n        File idWorkerHome = Utils.createIdWorkerHome();\n        for (File lockFile : idWorkerHome.listFiles()) {\n            // check the format like 10.142.1.151.lock.0001\n            if (!lockFile.getName().startsWith(ipudotlock)) continue;\n\n            String workerId = lockFile.getName().substring(workerIdIndex);\n            if (!workerId.matches(\"\\\\d\\\\d\\\\d\\\\d\")) continue;\n\n            if (sb.length() > 0) sb.append(',');\n            sb.append(workerId);\n        }\n\n        return sb.toString();\n    }\n\n\n    /**\n     * Find the local available worker id.\n     *\n     * @return -1 when N/A\n     */\n    private long findAvailWorkerId() {\n        File idWorkerHome = Utils.createIdWorkerHome();\n\n        for (File lockFile : idWorkerHome.listFiles()) {\n            // check the format like 10.142.1.151.lock.0001\n            if (!lockFile.getName().startsWith(ipudotlock)) continue;\n\n            String workerId = lockFile.getName().substring(workerIdIndex);\n            if (!workerId.matches(\"\\\\d\\\\d\\\\d\\\\d\")) continue;\n\n            FileLock fileLock = new FileLock(lockFile);\n            if (!fileLock.tryLock()) {\n                fileLock.destroy();\n                continue;\n            }\n\n            this.fileLock = fileLock;\n            return Long.parseLong(workerId);\n        }\n\n        return -1;\n    }\n\n    @Override\n    public void initialize() {\n        if (inited) return;\n        init();\n        this.inited = true;\n    }\n\n    @Override\n    public long availableWorkerId() {\n        return workerId;\n    }\n\n    @Override\n    public void release() {\n        if (fileLock != null) fileLock.destroy();\n        inited = false;\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/strategy/FileLock.java",
    "content": "package org.n3r.idworker.strategy;\n\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.*;\nimport java.nio.channels.Channels;\nimport java.nio.channels.ClosedChannelException;\nimport java.nio.channels.FileChannel;\nimport java.nio.channels.OverlappingFileLockException;\n\n/**\n * A file lock a la flock/funlock\n * <p/>\n * The given path will be created and opened if it doesn't exist.\n */\npublic class FileLock {\n    private final File file;\n    private FileChannel channel;\n    private java.nio.channels.FileLock flock = null;\n    Logger logger = LoggerFactory.getLogger(FileLock.class);\n\n    public FileLock(File file) {\n        this.file = file;\n\n        try {\n            file.createNewFile(); // create the file if it doesn't exist\n            channel = new RandomAccessFile(file, \"rw\").getChannel();\n        } catch (IOException e) {\n            throw new RuntimeException(e);\n        }\n    }\n\n\n    /**\n     * Lock the file or throw an exception if the lock is already held\n     */\n    public void lock() {\n        try {\n            synchronized (this) {\n                logger.trace(\"Acquiring lock on {}\", file.getAbsolutePath());\n                flock = channel.lock();\n            }\n        } catch (IOException e) {\n            throw new RuntimeException(e);\n        }\n    }\n\n    /**\n     * Try to lock the file and return true if the locking succeeds\n     */\n    public boolean tryLock() {\n        synchronized (this) {\n            logger.trace(\"Acquiring lock on {}\", file.getAbsolutePath());\n            try {\n                // weirdly this method will return null if the lock is held by another\n                // process, but will throw an exception if the lock is held by this process\n                // so we have to handle both cases\n                flock = channel.tryLock();\n                return flock != null;\n            } catch (OverlappingFileLockException e) {\n                return false;\n            } catch (IOException e) {\n                throw new RuntimeException(e);\n            }\n        }\n    }\n\n    /**\n     * Unlock the lock if it is held\n     */\n    public void unlock() {\n        synchronized (this) {\n            logger.trace(\"Releasing lock on {}\", file.getAbsolutePath());\n            if (flock == null) return;\n            try {\n                flock.release();\n            } catch (ClosedChannelException e) {\n                // Ignore\n            } catch (IOException e) {\n                throw new RuntimeException(e);\n            }\n        }\n    }\n\n    /**\n     * Destroy this lock, closing the associated FileChannel\n     */\n    public void destroy() {\n        synchronized (this) {\n            unlock();\n            if (!channel.isOpen()) return;\n\n            try {\n                channel.close();\n            } catch (IOException e) {\n                throw new RuntimeException(e);\n            }\n        }\n    }\n\n\n    @SuppressWarnings(\"unchecked\")\n    public <T> T readObject() {\n        try {\n            InputStream is = Channels.newInputStream(channel);\n            ObjectInputStream objectReader = new ObjectInputStream(is);\n            return (T) objectReader.readObject();\n        } catch (EOFException e) {\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        }\n\n        return null;\n    }\n\n\n    public synchronized boolean writeObject(Object object) {\n        if (!channel.isOpen()) return false;\n\n        try {\n            channel.position(0);\n            OutputStream out = Channels.newOutputStream(channel);\n            ObjectOutputStream objectOutput = new ObjectOutputStream(out);\n            objectOutput.writeObject(object);\n            return true;\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        }\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/utils/HttpReq.java",
    "content": "package org.n3r.idworker.utils;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.ByteArrayOutputStream;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.UnsupportedEncodingException;\nimport java.net.*;\n\npublic class HttpReq {\n    private final String baseUrl;\n    private String req;\n    private StringBuilder params = new StringBuilder();\n    Logger logger = LoggerFactory.getLogger(HttpReq.class);\n\n    public HttpReq(String baseUrl) {\n        this.baseUrl = baseUrl;\n    }\n\n    public static HttpReq get(String baseUrl) {\n        return new HttpReq(baseUrl);\n    }\n\n    public HttpReq req(String req) {\n        this.req = req;\n        return this;\n    }\n\n    public HttpReq param(String name, String value) {\n        if (params.length() > 0) params.append('&');\n        try {\n            params.append(name).append('=').append(URLEncoder.encode(value, \"UTF-8\"));\n        } catch (UnsupportedEncodingException e) {\n            throw new RuntimeException(e);\n        }\n\n        return this;\n    }\n\n    public String exec() {\n        HttpURLConnection http = null;\n        try {\n            http = (HttpURLConnection) new URL(baseUrl\n                    + (req == null ? \"\" : req)\n                    + (params.length() > 0 ? (\"?\" + params) : \"\")).openConnection();\n            http.setRequestProperty(\"Accept-Charset\", \"UTF-8\");\n            HttpURLConnection.setFollowRedirects(false);\n            http.setConnectTimeout(5 * 1000);\n            http.setReadTimeout(5 * 1000);\n            http.connect();\n\n            int status = http.getResponseCode();\n            String charset = getCharset(http.getHeaderField(\"Content-Type\"));\n\n            if (status == 200) {\n                return readResponseBody(http, charset);\n            } else {\n                logger.warn(\"non 200 respoonse :\" + readErrorResponseBody(http, status, charset));\n                return null;\n            }\n        } catch (Exception e) {\n            logger.error(\"exec error {}\", e.getMessage());\n            return null;\n        } finally {\n            if (http != null) http.disconnect();\n        }\n\n    }\n\n    private static String readErrorResponseBody(HttpURLConnection http, int status, String charset) throws IOException {\n        InputStream errorStream = http.getErrorStream();\n        if (errorStream != null) {\n            String error = toString(charset, errorStream);\n            return (\"STATUS CODE =\" + status + \"\\n\\n\" + error);\n        } else {\n            return (\"STATUS CODE =\" + status);\n        }\n    }\n\n    private static String readResponseBody(HttpURLConnection http, String charset) throws IOException {\n        InputStream inputStream = http.getInputStream();\n\n        return toString(charset, inputStream);\n    }\n\n    private static String toString(String charset, InputStream inputStream) throws IOException {\n        ByteArrayOutputStream baos = new ByteArrayOutputStream();\n        byte[] buffer = new byte[1024];\n\n        int length;\n        while ((length = inputStream.read(buffer)) != -1) {\n            baos.write(buffer, 0, length);\n        }\n\n        return new String(baos.toByteArray(), charset);\n    }\n\n    private static String getCharset(String contentType) {\n        if (contentType == null) return \"UTF-8\";\n\n        String charset = null;\n        for (String param : contentType.replace(\" \", \"\").split(\";\")) {\n            if (param.startsWith(\"charset=\")) {\n                charset = param.split(\"=\", 2)[1];\n                break;\n            }\n        }\n\n        return charset == null ? \"UTF-8\" : charset;\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/utils/IPv4Utils.java",
    "content": "package org.n3r.idworker.utils;\n\n/**\n * This utility provides methods to either convert an IPv4 address to its long format or a 32bit dotted format.\n *\n * @author Aion\n *         Created on 22/11/12\n */\npublic class IPv4Utils {\n\n    /**\n     * Returns the long format of the provided IP address.\n     *\n     * @param ipAddress the IP address\n     * @return the long format of <code>ipAddress</code>\n     * @throws IllegalArgumentException if <code>ipAddress</code> is invalid\n     */\n    public static long toLong(String ipAddress) {\n        if (ipAddress == null || ipAddress.isEmpty()) {\n            throw new IllegalArgumentException(\"ip address cannot be null or empty\");\n        }\n        String[] octets = ipAddress.split(java.util.regex.Pattern.quote(\".\"));\n        if (octets.length != 4) {\n            throw new IllegalArgumentException(\"invalid ip address\");\n        }\n        long ip = 0;\n        for (int i = 3; i >= 0; i--) {\n            long octet = Long.parseLong(octets[3 - i]);\n            if (octet > 255 || octet < 0) {\n                throw new IllegalArgumentException(\"invalid ip address\");\n            }\n            ip |= octet << (i * 8);\n        }\n        return ip;\n    }\n\n    /**\n     * Returns the 32bit dotted format of the provided long ip.\n     *\n     * @param ip the long ip\n     * @return the 32bit dotted format of <code>ip</code>\n     * @throws IllegalArgumentException if <code>ip</code> is invalid\n     */\n    public static String toString(long ip) {\n        // if ip is bigger than 255.255.255.255 or smaller than 0.0.0.0\n        if (ip > 4294967295l || ip < 0) {\n            throw new IllegalArgumentException(\"invalid ip\");\n        }\n        StringBuilder ipAddress = new StringBuilder();\n        for (int i = 3; i >= 0; i--) {\n            int shift = i * 8;\n            ipAddress.append((ip & (0xff << shift)) >> shift);\n            if (i > 0) {\n                ipAddress.append(\".\");\n            }\n        }\n        return ipAddress.toString();\n    }\n\n}"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/utils/Ip.java",
    "content": "package org.n3r.idworker.utils;\n\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.net.Inet4Address;\nimport java.net.InetAddress;\nimport java.net.NetworkInterface;\nimport java.net.SocketException;\nimport java.util.Enumeration;\n\npublic class Ip {\n    static Logger logger = LoggerFactory.getLogger(Ip.class);\n\n    public static String ip;\n    public static long lip;\n\n    static {\n        try {\n            InetAddress localHostLANAddress = getFirstNonLoopbackAddress();\n            ip = localHostLANAddress.getHostAddress();\n\n            byte[] address = localHostLANAddress.getAddress();\n            lip =  ((address [0] & 0xFFL) << (3*8)) +\n                    ((address [1] & 0xFFL) << (2*8)) +\n                    ((address [2] & 0xFFL) << (1*8)) +\n                    (address [3] &  0xFFL);\n        } catch (Exception e) {\n            logger.error(\"get ipv4 failed \", e);\n        }\n    }\n\n    private static InetAddress getFirstNonLoopbackAddress() throws SocketException {\n        Enumeration en = NetworkInterface.getNetworkInterfaces();\n        while (en.hasMoreElements()) {\n            NetworkInterface i = (NetworkInterface) en.nextElement();\n            for (Enumeration en2 = i.getInetAddresses(); en2.hasMoreElements(); ) {\n                InetAddress addr = (InetAddress) en2.nextElement();\n                if (addr.isLoopbackAddress()) continue;\n\n                if (addr instanceof Inet4Address) {\n                    return addr;\n                }\n            }\n        }\n        return null;\n    }\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/utils/Props.java",
    "content": "package org.n3r.idworker.utils;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.io.*;\nimport java.util.Properties;\n\nimport static java.io.File.separator;\nimport static org.n3r.idworker.utils.Serializes.closeQuietly;\n\npublic class Props {\n    static Logger log = LoggerFactory.getLogger(Props.class);\n\n    public static Properties tryProperties(String propertiesFileName, String userHomeBasePath) {\n        Properties properties = new Properties();\n        InputStream is = null;\n        try {\n            is = Props.tryResource(propertiesFileName, userHomeBasePath, Silent.ON);\n            if (is != null) properties.load(is);\n        } catch (IOException e) {\n            log.error(\"load properties error: {}\", e.getMessage());\n        } finally {\n            closeQuietly(is);\n        }\n\n        return properties;\n    }\n\n\n    enum Silent {ON, OFF}\n\n    public static InputStream tryResource(String propertiesFileName, String userHomeBasePath, Silent silent) {\n        InputStream is = currentDirResource(new File(propertiesFileName));\n        if (is != null) return is;\n\n        is = userHomeResource(propertiesFileName, userHomeBasePath);\n        if (is != null) return is;\n\n        is = classpathResource(propertiesFileName);\n        if (is != null || silent == Silent.ON) return is;\n\n        throw new RuntimeException(\"fail to find \" + propertiesFileName + \" in current dir or classpath\");\n    }\n\n    private static InputStream userHomeResource(String pathname, String appHome) {\n        String filePath = System.getProperty(\"user.home\") + separator + appHome;\n        File dir = new File(filePath);\n        if (!dir.exists()) return null;\n\n        return currentDirResource(new File(dir, pathname));\n    }\n\n    private static InputStream currentDirResource(File file) {\n        if (!file.exists()) return null;\n\n        try {\n            return new FileInputStream(file);\n        } catch (FileNotFoundException e) {\n            // This should not happened\n            log.error(\"read file {} error\", file, e);\n            return null;\n        }\n    }\n\n    public static InputStream classpathResource(String resourceName) {\n        return Props.class.getClassLoader().getResourceAsStream(resourceName);\n    }\n\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/utils/Serializes.java",
    "content": "package org.n3r.idworker.utils;\n\nimport java.io.*;\nimport java.nio.channels.FileChannel;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class Serializes {\n\n    @SuppressWarnings(\"unchecked\")\n    public static <T> List<T> readObjects(File file) {\n        ArrayList<T> objects = new ArrayList<T>();\n        ObjectInputStream objectReader = null;\n        FileInputStream fis = null;\n        try {\n            fis = new FileInputStream(file);\n            objectReader = new ObjectInputStream(fis);\n            while (true)\n                objects.add((T) objectReader.readObject());\n\n        } catch (EOFException e) {\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectReader);\n            closeQuietly(fis);\n        }\n\n        return objects;\n    }\n\n\n    @SuppressWarnings(\"unchecked\")\n    public static <T> T readObject(File file) {\n        ObjectInputStream objectReader = null;\n        FileInputStream fis = null;\n        try {\n            fis = new FileInputStream(file);\n            objectReader = new ObjectInputStream(fis);\n            return (T) objectReader.readObject();\n\n        } catch (EOFException e) {\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectReader);\n            closeQuietly(fis);\n        }\n\n        return null;\n    }\n\n    public static void writeObject(File file, Object object) {\n        ObjectOutputStream objectOutput = null;\n        FileOutputStream fos = null;\n        try {\n            fos = new FileOutputStream(file);\n            objectOutput = new ObjectOutputStream(fos);\n            objectOutput.writeObject(object);\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectOutput);\n            closeQuietly(fos);\n        }\n    }\n\n    public static void writeObject(FileOutputStream fos, Object object) {\n        FileChannel channel = fos.getChannel();\n        if (!channel.isOpen()) throw new RuntimeException(\"channel is closed\");\n\n        try {\n            channel.position(0);\n            ObjectOutputStream objectOutput = new ObjectOutputStream(fos);\n            objectOutput.writeObject(object);\n            fos.flush();\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n        }\n    }\n\n    public static void writeObjects(File file, Object... objects) {\n        ObjectOutputStream objectOutput = null;\n        FileOutputStream fos = null;\n        try {\n            fos = new FileOutputStream(file);\n            objectOutput = new ObjectOutputStream(fos);\n\n            for (Object object : objects)\n                objectOutput.writeObject(object);\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        } finally {\n            closeQuietly(objectOutput);\n            closeQuietly(fos);\n        }\n\n    }\n\n    public static void closeQuietly(OutputStream os) {\n        if (os != null) try {\n            os.close();\n        } catch (IOException e) {\n            // ignore\n        }\n    }\n\n\n    public static void closeQuietly(InputStream is) {\n        if (is != null) try {\n            is.close();\n        } catch (IOException e) {\n            // ignore\n        }\n\n    }\n}\n"
  },
  {
    "path": "kk-video-common/src/main/java/org/n3r/idworker/utils/Utils.java",
    "content": "package org.n3r.idworker.utils;\n\nimport java.io.*;\nimport java.sql.Timestamp;\nimport java.text.SimpleDateFormat;\nimport java.util.Calendar;\n\npublic class Utils {\n\n    public static final String DOT_IDWORKERS = \".idworkers\";\n\n    public static ClassLoader getClassLoader() {\n        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();\n        return contextClassLoader != null ? contextClassLoader : Utils.class.getClassLoader();\n    }\n\n\n    public static InputStream classResourceToStream(String resourceName) {\n        return getClassLoader().getResourceAsStream(resourceName);\n    }\n\n\n    public static String firstLine(String classResourceName) {\n        InputStream inputStream = null;\n        try {\n            inputStream = classResourceToStream(classResourceName);\n            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, \"UTF-8\"));\n\n            return bufferedReader.readLine();\n        } catch (IOException e) {\n            return null;\n        } finally {\n            if (inputStream != null) try {\n                inputStream.close();\n            } catch (IOException e) {\n                // ignore\n            }\n        }\n    }\n\n    public static String checkNotEmpty(String param, String name) {\n        if (param == null || param.isEmpty())\n            throw new IllegalArgumentException(name + \" is empty\");\n\n        return param;\n    }\n\n\n    public static long midnightMillis() {\n        // today\n        Calendar date = Calendar.getInstance();\n        // reset hour, minutes, seconds and millis\n        date.set(Calendar.HOUR_OF_DAY, 0);\n        date.set(Calendar.MINUTE, 0);\n        date.set(Calendar.SECOND, 0);\n        date.set(Calendar.MILLISECOND, 0);\n\n        return date.getTimeInMillis();\n    }\n\n    public static void main(String[] args) {\n        // 2013-12-25 00:00:00.000\n        System.out.println(new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Timestamp(midnightMillis())));\n        System.out.println(encode(281474976710655L));\n    }\n\n    public static long decode(String s, String symbols) {\n        final int B = symbols.length();\n        long num = 0;\n        for (char ch : s.toCharArray()) {\n            num *= B;\n            num += symbols.indexOf(ch);\n        }\n        return num;\n    }\n\n    public static String encode(long num) {\n        return encode(num, defaultRange);\n    }\n\n    public static String encode(long num, String symbols) {\n        final int B = symbols.length();\n        StringBuilder sb = new StringBuilder();\n        while (num != 0) {\n            sb.append(symbols.charAt((int) (num % B)));\n            num /= B;\n        }\n        return sb.reverse().toString();\n    }\n\n    // all un-clearly-recognized letters are skiped.\n    static String defaultRange = \"0123456789ABCDFGHKMNPRSTWXYZ\";\n\n    public static String padLeft(String str, int size, char padChar) {\n        if (str.length() >= size) return str;\n\n        StringBuilder s = new StringBuilder();\n        for (int i = size - str.length(); i > 0; --i) {\n            s.append(padChar);\n        }\n        s.append(str);\n\n        return s.toString();\n    }\n\n    public static File createIdWorkerHome() {\n        String userHome = System.getProperty(\"user.home\");\n        File idWorkerHome = new File(userHome + File.separator + DOT_IDWORKERS);\n        idWorkerHome.mkdirs();\n        if (idWorkerHome.isDirectory()) return idWorkerHome;\n\n        throw new RuntimeException(\"failed to create .idworkers at user home\");\n    }\n}\n"
  },
  {
    "path": "kk-video-common/target/maven-archiver/pom.properties",
    "content": "#Generated by Apache Maven\n#Sun Jun 24 23:05:15 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kk-video-common\n"
  },
  {
    "path": "kk-video-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": "com\\kkvideo\\utils\\TimeAgoUtils.class\norg\\n3r\\idworker\\Id.class\norg\\n3r\\idworker\\strategy\\DefaultRandomCodeStrategy.class\norg\\n3r\\idworker\\utils\\HttpReq.class\norg\\n3r\\idworker\\Code.class\ncom\\kkvideo\\utils\\JsonUtils.class\norg\\n3r\\idworker\\strategy\\FileLock.class\norg\\n3r\\idworker\\Test.class\norg\\n3r\\idworker\\Sid$1.class\norg\\n3r\\idworker\\utils\\Props.class\norg\\n3r\\idworker\\strategy\\DefaultRandomCodeStrategy$1.class\ncom\\kkvideo\\enums\\BGMOperatorTypeEnum.class\ncom\\kkvideo\\utils\\MyMapper.class\ncom\\kkvideo\\utils\\MD5Utils.class\norg\\n3r\\idworker\\Sid.class\norg\\n3r\\idworker\\RandomCodeStrategy.class\norg\\n3r\\idworker\\utils\\IPv4Utils.class\norg\\n3r\\idworker\\utils\\Props$Silent.class\ncom\\kkvideo\\enums\\VideoStatusEnum.class\ncom\\kkvideo\\utils\\KkJsonResult.class\ncom\\kkvideo\\utils\\RedisOperator.class\norg\\n3r\\idworker\\WorkerIdStrategy.class\norg\\n3r\\idworker\\utils\\Utils.class\ncom\\kkvideo\\utils\\MergeVideoMp3.class\norg\\n3r\\idworker\\DayCode.class\norg\\n3r\\idworker\\strategy\\DayPrefixRandomCodeStrategy.class\norg\\n3r\\idworker\\IdWorker.class\ncom\\kkvideo\\utils\\FFMpegTest.class\norg\\n3r\\idworker\\strategy\\DefaultWorkerIdStrategy$1.class\ncom\\kkvideo\\utils\\PagedResult.class\norg\\n3r\\idworker\\utils\\Serializes.class\norg\\n3r\\idworker\\InvalidSystemClock.class\norg\\n3r\\idworker\\utils\\Ip.class\norg\\n3r\\idworker\\strategy\\DefaultWorkerIdStrategy$2.class\norg\\n3r\\idworker\\strategy\\DefaultWorkerIdStrategy.class\ncom\\kkvideo\\utils\\FetchVideoCover.class\n"
  },
  {
    "path": "kk-video-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\enums\\BGMOperatorTypeEnum.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\Sid.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\WorkerIdStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\Code.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\IPv4Utils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\RandomCodeStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\FileLock.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\FFMpegTest.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\KkJsonResult.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Ip.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\HttpReq.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\Id.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\InvalidSystemClock.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\FetchVideoCover.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\DayCode.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\DayPrefixRandomCodeStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\TimeAgoUtils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Props.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\RedisOperator.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\DefaultRandomCodeStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\JsonUtils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Utils.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\MergeVideoMp3.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\IdWorker.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\utils\\Serializes.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\MyMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\enums\\VideoStatusEnum.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\PagedResult.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\strategy\\DefaultWorkerIdStrategy.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\org\\n3r\\idworker\\Test.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-common\\src\\main\\java\\com\\kkvideo\\utils\\MD5Utils.java\n"
  },
  {
    "path": "kk-video-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-dao/kkvideodao.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-dao/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>jimisun.kkvideo</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kk-video-dao</artifactId>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kk-video-pojo</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n    </dependencies>\n\n\n</project>"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/BgmMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.Bgm;\nimport com.kkvideo.utils.MyMapper;\n\npublic interface BgmMapper extends MyMapper<Bgm> {\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/CommentsMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.Comments;\nimport com.kkvideo.utils.MyMapper;\n\npublic interface CommentsMapper extends MyMapper<Comments> {\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/CommentsMapperCustom.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.Comments;\nimport com.kkvideo.utils.MyMapper;\nimport com.kkvideo.vo.CommentsVO;\n\nimport java.util.List;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 11:28 2018-06-21\n * @Modified By:\n */\npublic interface CommentsMapperCustom extends MyMapper<Comments> {\n    public List<CommentsVO> queryComments(String videoId);\n}\n"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/SearchRecordsMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.SearchRecords;\nimport com.kkvideo.utils.MyMapper;\n\nimport java.util.List;\n\npublic interface SearchRecordsMapper extends MyMapper<SearchRecords> {\n\n    public List<String> getHotwords();\n\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/UsersFansMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.UsersFans;\nimport com.kkvideo.utils.MyMapper;\n\npublic interface UsersFansMapper extends MyMapper<UsersFans> {\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/UsersLikeVideosMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.UsersLikeVideos;\nimport com.kkvideo.utils.MyMapper;\n\npublic interface UsersLikeVideosMapper extends MyMapper<UsersLikeVideos> {\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/UsersMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.Users;\nimport com.kkvideo.utils.MyMapper;\n\npublic interface UsersMapper extends MyMapper<Users> {\n\n    /**\n     * @Description: 用户受喜欢数累加\n     */\n    public void addReceiveLikeCount(String userId);\n\n    /**\n     * @Description: 用户受喜欢数累减\n     */\n    public void reduceReceiveLikeCount(String userId);\n\n    /**\n     * @Description: 增加粉丝数\n     */\n    public void addFansCount(String userId);\n\n    /**\n     * @Description: 增加关注数\n     */\n    public void addFollersCount(String userId);\n\n    /**\n     * @Description: 减少粉丝数\n     */\n    public void reduceFansCount(String userId);\n\n    /**\n     * @Description: 减少关注数\n     */\n    public void reduceFollersCount(String userId);\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/UsersReportMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.UsersReport;\nimport com.kkvideo.utils.MyMapper;\n\npublic interface UsersReportMapper extends MyMapper<UsersReport> {\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/VideosMapper.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.Videos;\nimport com.kkvideo.utils.MyMapper;\n\npublic interface VideosMapper extends MyMapper<Videos> {\n}"
  },
  {
    "path": "kk-video-dao/src/main/java/com/kkvideo/mapper/VideosMapperCustom.java",
    "content": "package com.kkvideo.mapper;\n\nimport com.kkvideo.pojo.Videos;\nimport com.kkvideo.utils.MyMapper;\nimport com.kkvideo.vo.VideosVo;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\npublic interface VideosMapperCustom extends MyMapper<Videos> {\n\n    /**\n     * @Description: 条件查询所有视频列表\n     */\n    public List<VideosVo> queryAllVideos(@Param(\"videoDesc\") String videoDesc,\n                                         @Param(\"userId\") String userId);\n\n    /**\n     * 喜欢视频\n     * @param videoId\n     */\n    public void addVideoLikeCount(String videoId);\n\n\n    /**\n     * 取消喜欢视频\n     * @param videoId\n     */\n    public void reduceVideoLikeCount(String videoId);\n\n    /**\n     * @Description: 查询点赞视频\n     */\n    public List<VideosVo> queryMyLikeVideos(@Param(\"userId\") String userId);\n\n    /**\n     * @Description: 查询关注的视频\n     */\n    public List<VideosVo> queryMyFollowVideos(String userId);\n\n\n\n\n}\n\n"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/BgmMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.BgmMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Bgm\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"author\" property=\"author\" jdbcType=\"VARCHAR\" />\n    <result column=\"name\" property=\"name\" jdbcType=\"VARCHAR\" />\n    <result column=\"path\" property=\"path\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/CommentsMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.CommentsMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Comments\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"father_comment_id\" property=\"fatherCommentId\" jdbcType=\"VARCHAR\" />\n    <result column=\"to_user_id\" property=\"toUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_id\" property=\"videoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"from_user_id\" property=\"fromUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n    <result column=\"comment\" property=\"comment\" jdbcType=\"LONGVARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/CommentsMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.CommentsMapperCustom\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.vo.CommentsVO\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_id\" property=\"videoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"from_user_id\" property=\"fromUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n    <result column=\"comment\" property=\"comment\" jdbcType=\"LONGVARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"toNickname\" property=\"toNickname\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  \n<!--   \tselect c.*,u.face_image as face_image,u.nickname from comments c left join users u on c.from_user_id = u.id -->\n<!--   \twhere c.video_id = #{videoId} order by c.create_time desc -->\n  <select id=\"queryComments\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\tselect c.*,u.face_image as face_image,u.nickname,tu.nickname as toNickname \n\tfrom comments c \n\tleft join users u on c.from_user_id = u.id\n\tleft join users tu on c.to_user_id = tu.id\n  \twhere c.video_id = #{videoId} order by c.create_time desc\n  </select>\n  \n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/SearchRecordsMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.SearchRecordsMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.SearchRecords\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"content\" property=\"content\" jdbcType=\"VARCHAR\" />\n\n  </resultMap>\n\n  <select id=\"getHotwords\" resultType=\"String\">\n  \tselect content from search_records group by content order by count(content) desc\n  </select>\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/UsersFansMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersFansMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.UsersFans\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"fan_id\" property=\"fanId\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/UsersLikeVideosMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersLikeVideosMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.UsersLikeVideos\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_id\" property=\"videoId\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/UsersMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Users\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"username\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"password\" property=\"password\" jdbcType=\"VARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"fans_counts\" property=\"fansCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"follow_counts\" property=\"followCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"receive_like_counts\" property=\"receiveLikeCounts\" jdbcType=\"INTEGER\" />\n  </resultMap>\n\n\n\n  <update id=\"addReceiveLikeCount\" parameterType=\"String\">\n  \tupdate users set receive_like_counts=receive_like_counts+1 where id=#{userId}\n  </update>\n\n  <update id=\"reduceReceiveLikeCount\" parameterType=\"String\">\n  \tupdate users set receive_like_counts=receive_like_counts-1 where id=#{userId}\n  </update>\n\n\n\n\n  <update id=\"addFansCount\" parameterType=\"String\">\n  \tupdate users set fans_counts=fans_counts+1 where id=#{userId}\n  </update>\n\n  <update id=\"reduceFansCount\" parameterType=\"String\">\n  \tupdate users set fans_counts=fans_counts-1 where id=#{userId}\n  </update>\n\n  <update id=\"addFollersCount\" parameterType=\"String\">\n  \tupdate users set follow_counts=follow_counts+1 where id=#{userId}\n  </update>\n\n  <update id=\"reduceFollersCount\" parameterType=\"String\">\n  \tupdate users set follow_counts=follow_counts-1 where id=#{userId}\n  </update>\n\n\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/UsersReportMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersReportMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.UsersReport\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_user_id\" property=\"dealUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_video_id\" property=\"dealVideoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"title\" property=\"title\" jdbcType=\"VARCHAR\" />\n    <result column=\"content\" property=\"content\" jdbcType=\"VARCHAR\" />\n    <result column=\"userid\" property=\"userid\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_date\" property=\"createDate\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/VideosMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.VideosMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Videos\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"audio_id\" property=\"audioId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_desc\" property=\"videoDesc\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_path\" property=\"videoPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_seconds\" property=\"videoSeconds\" jdbcType=\"REAL\" />\n    <result column=\"video_width\" property=\"videoWidth\" jdbcType=\"INTEGER\" />\n    <result column=\"video_height\" property=\"videoHeight\" jdbcType=\"INTEGER\" />\n    <result column=\"cover_path\" property=\"coverPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"like_counts\" property=\"likeCounts\" jdbcType=\"BIGINT\" />\n    <result column=\"status\" property=\"status\" jdbcType=\"INTEGER\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/src/main/resources/mapper/VideosMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.VideosMapperCustom\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.vo.VideosVo\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"audio_id\" property=\"audioId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_desc\" property=\"videoDesc\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_path\" property=\"videoPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_seconds\" property=\"videoSeconds\" jdbcType=\"REAL\" />\n    <result column=\"video_width\" property=\"videoWidth\" jdbcType=\"INTEGER\" />\n    <result column=\"video_height\" property=\"videoHeight\" jdbcType=\"INTEGER\" />\n    <result column=\"cover_path\" property=\"coverPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"like_counts\" property=\"likeCounts\" jdbcType=\"BIGINT\" />\n    <result column=\"status\" property=\"status\" jdbcType=\"INTEGER\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n\n  <select id=\"queryAllVideos\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\n    select v.*,u.face_image as face_image,u.nickname as nickname from videos v\n    left join users u on u.id = v.user_id\n    where\n    1 = 1\n    <if test=\" videoDesc != null and videoDesc != '' \">\n      and v.video_desc like '%${videoDesc}%'\n    </if>\n    <if test=\" userId != null and userId != '' \">\n      and v.user_id = #{userId}\n    </if>\n    and v.status = 1\n    order by v.create_time desc\n\n  </select>\n\n\n  <update id=\"addVideoLikeCount\" parameterType=\"String\">\n  \tupdate videos set like_counts=like_counts+1 where id=#{videoId}\n  </update>\n\n\n  <update id=\"reduceVideoLikeCount\" parameterType=\"String\">\n  \tupdate videos set like_counts=like_counts-1 where id=#{videoId}\n  </update>\n\n  <!-- 查询我关注的人发的视频 -->\n  <select id=\"queryMyFollowVideos\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\t\tselect v.*,u.face_image as face_image,u.nickname as nickname from videos v\n\t\tleft join users u on v.user_id = u.id\n\t\twhere\n\t\t\tv.user_id in (select uf.user_id from users_fans uf where uf.fan_id = #{userId})\n\t\t\tand v.status = 1\n\t\t\torder by v.create_time desc\n\t</select>\n\n  <!-- 查询我喜欢的视频 -->\n  <select id=\"queryMyLikeVideos\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\t\tselect v.*,u.face_image as face_image,u.nickname as nickname from videos v\n\t\tleft join users u on v.user_id = u.id\n\t\twhere\n\t\t\tv.id in (select ulv.video_id from users_like_videos ulv where ulv.user_id = #{userId})\n\t\t\tand v.status = 1\n\t\t\torder by v.create_time desc\n\t</select>\n\n\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/BgmMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.BgmMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Bgm\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"author\" property=\"author\" jdbcType=\"VARCHAR\" />\n    <result column=\"name\" property=\"name\" jdbcType=\"VARCHAR\" />\n    <result column=\"path\" property=\"path\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/CommentsMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.CommentsMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Comments\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"father_comment_id\" property=\"fatherCommentId\" jdbcType=\"VARCHAR\" />\n    <result column=\"to_user_id\" property=\"toUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_id\" property=\"videoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"from_user_id\" property=\"fromUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n    <result column=\"comment\" property=\"comment\" jdbcType=\"LONGVARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/CommentsMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.CommentsMapperCustom\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.vo.CommentsVO\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_id\" property=\"videoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"from_user_id\" property=\"fromUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n    <result column=\"comment\" property=\"comment\" jdbcType=\"LONGVARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"toNickname\" property=\"toNickname\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n  \n<!--   \tselect c.*,u.face_image as face_image,u.nickname from comments c left join users u on c.from_user_id = u.id -->\n<!--   \twhere c.video_id = #{videoId} order by c.create_time desc -->\n  <select id=\"queryComments\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\tselect c.*,u.face_image as face_image,u.nickname,tu.nickname as toNickname \n\tfrom comments c \n\tleft join users u on c.from_user_id = u.id\n\tleft join users tu on c.to_user_id = tu.id\n  \twhere c.video_id = #{videoId} order by c.create_time desc\n  </select>\n  \n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/SearchRecordsMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.SearchRecordsMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.SearchRecords\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"content\" property=\"content\" jdbcType=\"VARCHAR\" />\n\n  </resultMap>\n\n  <select id=\"getHotwords\" resultType=\"String\">\n  \tselect content from search_records group by content order by count(content) desc\n  </select>\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/UsersFansMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersFansMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.UsersFans\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"fan_id\" property=\"fanId\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/UsersLikeVideosMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersLikeVideosMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.UsersLikeVideos\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_id\" property=\"videoId\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/UsersMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Users\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"username\" property=\"username\" jdbcType=\"VARCHAR\" />\n    <result column=\"password\" property=\"password\" jdbcType=\"VARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"fans_counts\" property=\"fansCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"follow_counts\" property=\"followCounts\" jdbcType=\"INTEGER\" />\n    <result column=\"receive_like_counts\" property=\"receiveLikeCounts\" jdbcType=\"INTEGER\" />\n  </resultMap>\n\n\n\n  <update id=\"addReceiveLikeCount\" parameterType=\"String\">\n  \tupdate users set receive_like_counts=receive_like_counts+1 where id=#{userId}\n  </update>\n\n  <update id=\"reduceReceiveLikeCount\" parameterType=\"String\">\n  \tupdate users set receive_like_counts=receive_like_counts-1 where id=#{userId}\n  </update>\n\n\n\n\n  <update id=\"addFansCount\" parameterType=\"String\">\n  \tupdate users set fans_counts=fans_counts+1 where id=#{userId}\n  </update>\n\n  <update id=\"reduceFansCount\" parameterType=\"String\">\n  \tupdate users set fans_counts=fans_counts-1 where id=#{userId}\n  </update>\n\n  <update id=\"addFollersCount\" parameterType=\"String\">\n  \tupdate users set follow_counts=follow_counts+1 where id=#{userId}\n  </update>\n\n  <update id=\"reduceFollersCount\" parameterType=\"String\">\n  \tupdate users set follow_counts=follow_counts-1 where id=#{userId}\n  </update>\n\n\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/UsersReportMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.UsersReportMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.UsersReport\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_user_id\" property=\"dealUserId\" jdbcType=\"VARCHAR\" />\n    <result column=\"deal_video_id\" property=\"dealVideoId\" jdbcType=\"VARCHAR\" />\n    <result column=\"title\" property=\"title\" jdbcType=\"VARCHAR\" />\n    <result column=\"content\" property=\"content\" jdbcType=\"VARCHAR\" />\n    <result column=\"userid\" property=\"userid\" jdbcType=\"VARCHAR\" />\n    <result column=\"create_date\" property=\"createDate\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/VideosMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.VideosMapper\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.pojo.Videos\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"audio_id\" property=\"audioId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_desc\" property=\"videoDesc\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_path\" property=\"videoPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_seconds\" property=\"videoSeconds\" jdbcType=\"REAL\" />\n    <result column=\"video_width\" property=\"videoWidth\" jdbcType=\"INTEGER\" />\n    <result column=\"video_height\" property=\"videoHeight\" jdbcType=\"INTEGER\" />\n    <result column=\"cover_path\" property=\"coverPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"like_counts\" property=\"likeCounts\" jdbcType=\"BIGINT\" />\n    <result column=\"status\" property=\"status\" jdbcType=\"INTEGER\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n  </resultMap>\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/classes/mapper/VideosMapperCustom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\" >\n<mapper namespace=\"com.kkvideo.mapper.VideosMapperCustom\" >\n  <resultMap id=\"BaseResultMap\" type=\"com.kkvideo.vo.VideosVo\" >\n    <!--\n      WARNING - @mbg.generated\n    -->\n    <id column=\"id\" property=\"id\" jdbcType=\"VARCHAR\" />\n    <result column=\"user_id\" property=\"userId\" jdbcType=\"VARCHAR\" />\n    <result column=\"audio_id\" property=\"audioId\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_desc\" property=\"videoDesc\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_path\" property=\"videoPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"video_seconds\" property=\"videoSeconds\" jdbcType=\"REAL\" />\n    <result column=\"video_width\" property=\"videoWidth\" jdbcType=\"INTEGER\" />\n    <result column=\"video_height\" property=\"videoHeight\" jdbcType=\"INTEGER\" />\n    <result column=\"cover_path\" property=\"coverPath\" jdbcType=\"VARCHAR\" />\n    <result column=\"like_counts\" property=\"likeCounts\" jdbcType=\"BIGINT\" />\n    <result column=\"status\" property=\"status\" jdbcType=\"INTEGER\" />\n    <result column=\"create_time\" property=\"createTime\" jdbcType=\"TIMESTAMP\" />\n    <result column=\"nickname\" property=\"nickname\" jdbcType=\"VARCHAR\" />\n    <result column=\"face_image\" property=\"faceImage\" jdbcType=\"VARCHAR\" />\n  </resultMap>\n\n  <select id=\"queryAllVideos\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\n    select v.*,u.face_image as face_image,u.nickname as nickname from videos v\n    left join users u on u.id = v.user_id\n    where\n    1 = 1\n    <if test=\" videoDesc != null and videoDesc != '' \">\n      and v.video_desc like '%${videoDesc}%'\n    </if>\n    <if test=\" userId != null and userId != '' \">\n      and v.user_id = #{userId}\n    </if>\n    and v.status = 1\n    order by v.create_time desc\n\n  </select>\n\n\n  <update id=\"addVideoLikeCount\" parameterType=\"String\">\n  \tupdate videos set like_counts=like_counts+1 where id=#{videoId}\n  </update>\n\n\n  <update id=\"reduceVideoLikeCount\" parameterType=\"String\">\n  \tupdate videos set like_counts=like_counts-1 where id=#{videoId}\n  </update>\n\n  <!-- 查询我关注的人发的视频 -->\n  <select id=\"queryMyFollowVideos\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\t\tselect v.*,u.face_image as face_image,u.nickname as nickname from videos v\n\t\tleft join users u on v.user_id = u.id\n\t\twhere\n\t\t\tv.user_id in (select uf.user_id from users_fans uf where uf.fan_id = #{userId})\n\t\t\tand v.status = 1\n\t\t\torder by v.create_time desc\n\t</select>\n\n  <!-- 查询我喜欢的视频 -->\n  <select id=\"queryMyLikeVideos\" resultMap=\"BaseResultMap\" parameterType=\"String\">\n\t\tselect v.*,u.face_image as face_image,u.nickname as nickname from videos v\n\t\tleft join users u on v.user_id = u.id\n\t\twhere\n\t\t\tv.id in (select ulv.video_id from users_like_videos ulv where ulv.user_id = #{userId})\n\t\t\tand v.status = 1\n\t\t\torder by v.create_time desc\n\t</select>\n\n\n</mapper>"
  },
  {
    "path": "kk-video-dao/target/maven-archiver/pom.properties",
    "content": "#Generated by Apache Maven\n#Sun Jun 24 23:05:16 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kk-video-dao\n"
  },
  {
    "path": "kk-video-dao/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": "com\\kkvideo\\mapper\\UsersMapper.class\ncom\\kkvideo\\mapper\\CommentsMapperCustom.class\ncom\\kkvideo\\mapper\\UsersReportMapper.class\ncom\\kkvideo\\mapper\\CommentsMapper.class\ncom\\kkvideo\\mapper\\SearchRecordsMapper.class\ncom\\kkvideo\\mapper\\UsersLikeVideosMapper.class\ncom\\kkvideo\\mapper\\VideosMapper.class\ncom\\kkvideo\\mapper\\BgmMapper.class\ncom\\kkvideo\\mapper\\VideosMapperCustom.class\ncom\\kkvideo\\mapper\\UsersFansMapper.class\n"
  },
  {
    "path": "kk-video-dao/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\UsersMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\BgmMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\UsersFansMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\UsersReportMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\CommentsMapperCustom.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\SearchRecordsMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\VideosMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\CommentsMapper.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\VideosMapperCustom.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-dao\\src\\main\\java\\com\\kkvideo\\mapper\\UsersLikeVideosMapper.java\n"
  },
  {
    "path": "kk-video-dao/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-pojo/kkvideopojo.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-pojo/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>jimisun.kkvideo</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kk-video-pojo</artifactId>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kk-video-common</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n    </dependencies>\n\n\n</project>"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/Bgm.java",
    "content": "package com.kkvideo.pojo;\n\nimport javax.persistence.Id;\n\npublic class Bgm {\n    @Id\n    private String id;\n\n    private String author;\n\n    private String name;\n\n    /**\n     * 播放地址\n     */\n    private String path;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * @return author\n     */\n    public String getAuthor() {\n        return author;\n    }\n\n    /**\n     * @param author\n     */\n    public void setAuthor(String author) {\n        this.author = author;\n    }\n\n    /**\n     * @return name\n     */\n    public String getName() {\n        return name;\n    }\n\n    /**\n     * @param name\n     */\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    /**\n     * 获取播放地址\n     *\n     * @return path - 播放地址\n     */\n    public String getPath() {\n        return path;\n    }\n\n    /**\n     * 设置播放地址\n     *\n     * @param path 播放地址\n     */\n    public void setPath(String path) {\n        this.path = path;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/Comments.java",
    "content": "package com.kkvideo.pojo;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\nimport java.util.Date;\n\npublic class Comments {\n    @Id\n    private String id;\n\n    @Column(name = \"father_comment_id\")\n    private String fatherCommentId;\n\n    @Column(name = \"to_user_id\")\n    private String toUserId;\n\n    /**\n     * 视频id\n     */\n    @Column(name = \"video_id\")\n    private String videoId;\n\n    /**\n     * 留言者，评论的用户id\n     */\n    @Column(name = \"from_user_id\")\n    private String fromUserId;\n\n    @Column(name = \"create_time\")\n    private Date createTime;\n\n    /**\n     * 评论内容\n     */\n    private String comment;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * @return father_comment_id\n     */\n    public String getFatherCommentId() {\n        return fatherCommentId;\n    }\n\n    /**\n     * @param fatherCommentId\n     */\n    public void setFatherCommentId(String fatherCommentId) {\n        this.fatherCommentId = fatherCommentId;\n    }\n\n    /**\n     * @return to_user_id\n     */\n    public String getToUserId() {\n        return toUserId;\n    }\n\n    /**\n     * @param toUserId\n     */\n    public void setToUserId(String toUserId) {\n        this.toUserId = toUserId;\n    }\n\n    /**\n     * 获取视频id\n     *\n     * @return video_id - 视频id\n     */\n    public String getVideoId() {\n        return videoId;\n    }\n\n    /**\n     * 设置视频id\n     *\n     * @param videoId 视频id\n     */\n    public void setVideoId(String videoId) {\n        this.videoId = videoId;\n    }\n\n    /**\n     * 获取留言者，评论的用户id\n     *\n     * @return from_user_id - 留言者，评论的用户id\n     */\n    public String getFromUserId() {\n        return fromUserId;\n    }\n\n    /**\n     * 设置留言者，评论的用户id\n     *\n     * @param fromUserId 留言者，评论的用户id\n     */\n    public void setFromUserId(String fromUserId) {\n        this.fromUserId = fromUserId;\n    }\n\n    /**\n     * @return create_time\n     */\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    /**\n     * @param createTime\n     */\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    /**\n     * 获取评论内容\n     *\n     * @return comment - 评论内容\n     */\n    public String getComment() {\n        return comment;\n    }\n\n    /**\n     * 设置评论内容\n     *\n     * @param comment 评论内容\n     */\n    public void setComment(String comment) {\n        this.comment = comment;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/SearchRecords.java",
    "content": "package com.kkvideo.pojo;\n\nimport javax.persistence.Id;\nimport javax.persistence.Table;\n\n@Table(name = \"search_records\")\npublic class SearchRecords {\n    @Id\n    private String id;\n\n    /**\n     * 搜索的内容\n     */\n    private String content;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取搜索的内容\n     *\n     * @return content - 搜索的内容\n     */\n    public String getContent() {\n        return content;\n    }\n\n    /**\n     * 设置搜索的内容\n     *\n     * @param content 搜索的内容\n     */\n    public void setContent(String content) {\n        this.content = content;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/Users.java",
    "content": "package com.kkvideo.pojo;\n\nimport com.fasterxml.jackson.annotation.JsonIgnore;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\n\n@ApiModel(value = \"用户对象\",description = \"用户对象\")\npublic class Users {\n\n    @ApiModelProperty(hidden = true)\n    @Id\n    private String id;\n\n    /**\n     * 用户名\n     */\n    @ApiModelProperty(value = \"用户名\",name = \"username\",example = \"username\",required = true)\n    private String username;\n\n    /**\n     * 密码\n     */\n    @ApiModelProperty(value = \"密码\",name = \"password\",example = \"password\",required = true)\n    private String password;\n\n    /**\n     * 我的头像，如果没有默认给一张\n     */\n    @ApiModelProperty(hidden = true)\n    @Column(name = \"face_image\")\n    private String faceImage;\n\n    /**\n     * 昵称\n     */\n    @ApiModelProperty(hidden = true)\n    private String nickname;\n\n    /**\n     * 我的粉丝数量\n     */\n    @ApiModelProperty(hidden = true)\n    @Column(name = \"fans_counts\")\n    private Integer fansCounts;\n\n    /**\n     * 我关注的人总数\n     */\n    @ApiModelProperty(hidden = true)\n    @Column(name = \"follow_counts\")\n    private Integer followCounts;\n\n    /**\n     * 我接受到的赞美/收藏 的数量\n     */\n    @ApiModelProperty(hidden = true)\n    @Column(name = \"receive_like_counts\")\n    private Integer receiveLikeCounts;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取用户名\n     *\n     * @return username - 用户名\n     */\n    public String getUsername() {\n        return username;\n    }\n\n    /**\n     * 设置用户名\n     *\n     * @param username 用户名\n     */\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    /**\n     * 获取密码\n     *\n     * @return password - 密码\n     */\n    public String getPassword() {\n        return password;\n    }\n\n    /**\n     * 设置密码\n     *\n     * @param password 密码\n     */\n    public void setPassword(String password) {\n        this.password = password;\n    }\n\n    /**\n     * 获取我的头像，如果没有默认给一张\n     *\n     * @return face_image - 我的头像，如果没有默认给一张\n     */\n    public String getFaceImage() {\n        return faceImage;\n    }\n\n    /**\n     * 设置我的头像，如果没有默认给一张\n     *\n     * @param faceImage 我的头像，如果没有默认给一张\n     */\n    public void setFaceImage(String faceImage) {\n        this.faceImage = faceImage;\n    }\n\n    /**\n     * 获取昵称\n     *\n     * @return nickname - 昵称\n     */\n    public String getNickname() {\n        return nickname;\n    }\n\n    /**\n     * 设置昵称\n     *\n     * @param nickname 昵称\n     */\n    public void setNickname(String nickname) {\n        this.nickname = nickname;\n    }\n\n    /**\n     * 获取我的粉丝数量\n     *\n     * @return fans_counts - 我的粉丝数量\n     */\n    public Integer getFansCounts() {\n        return fansCounts;\n    }\n\n    /**\n     * 设置我的粉丝数量\n     *\n     * @param fansCounts 我的粉丝数量\n     */\n    public void setFansCounts(Integer fansCounts) {\n        this.fansCounts = fansCounts;\n    }\n\n    /**\n     * 获取我关注的人总数\n     *\n     * @return follow_counts - 我关注的人总数\n     */\n    public Integer getFollowCounts() {\n        return followCounts;\n    }\n\n    /**\n     * 设置我关注的人总数\n     *\n     * @param followCounts 我关注的人总数\n     */\n    public void setFollowCounts(Integer followCounts) {\n        this.followCounts = followCounts;\n    }\n\n    /**\n     * 获取我接受到的赞美/收藏 的数量\n     *\n     * @return receive_like_counts - 我接受到的赞美/收藏 的数量\n     */\n    public Integer getReceiveLikeCounts() {\n        return receiveLikeCounts;\n    }\n\n    /**\n     * 设置我接受到的赞美/收藏 的数量\n     *\n     * @param receiveLikeCounts 我接受到的赞美/收藏 的数量\n     */\n    public void setReceiveLikeCounts(Integer receiveLikeCounts) {\n        this.receiveLikeCounts = receiveLikeCounts;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/UsersFans.java",
    "content": "package com.kkvideo.pojo;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\nimport javax.persistence.Table;\n\n@Table(name = \"users_fans\")\npublic class UsersFans {\n    @Id\n    private String id;\n\n    /**\n     * 用户\n     */\n    @Column(name = \"user_id\")\n    private String userId;\n\n    /**\n     * 粉丝\n     */\n    @Column(name = \"fan_id\")\n    private String fanId;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取用户\n     *\n     * @return user_id - 用户\n     */\n    public String getUserId() {\n        return userId;\n    }\n\n    /**\n     * 设置用户\n     *\n     * @param userId 用户\n     */\n    public void setUserId(String userId) {\n        this.userId = userId;\n    }\n\n    /**\n     * 获取粉丝\n     *\n     * @return fan_id - 粉丝\n     */\n    public String getFanId() {\n        return fanId;\n    }\n\n    /**\n     * 设置粉丝\n     *\n     * @param fanId 粉丝\n     */\n    public void setFanId(String fanId) {\n        this.fanId = fanId;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/UsersLikeVideos.java",
    "content": "package com.kkvideo.pojo;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\nimport javax.persistence.Table;\n\n@Table(name = \"users_like_videos\")\npublic class UsersLikeVideos {\n    @Id\n    private String id;\n\n    /**\n     * 用户\n     */\n    @Column(name = \"user_id\")\n    private String userId;\n\n    /**\n     * 视频\n     */\n    @Column(name = \"video_id\")\n    private String videoId;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取用户\n     *\n     * @return user_id - 用户\n     */\n    public String getUserId() {\n        return userId;\n    }\n\n    /**\n     * 设置用户\n     *\n     * @param userId 用户\n     */\n    public void setUserId(String userId) {\n        this.userId = userId;\n    }\n\n    /**\n     * 获取视频\n     *\n     * @return video_id - 视频\n     */\n    public String getVideoId() {\n        return videoId;\n    }\n\n    /**\n     * 设置视频\n     *\n     * @param videoId 视频\n     */\n    public void setVideoId(String videoId) {\n        this.videoId = videoId;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/UsersReport.java",
    "content": "package com.kkvideo.pojo;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\nimport javax.persistence.Table;\nimport java.util.Date;\n\n@Table(name = \"users_report\")\npublic class UsersReport {\n    @Id\n    private String id;\n\n    /**\n     * 被举报用户id\n     */\n    @Column(name = \"deal_user_id\")\n    private String dealUserId;\n\n    @Column(name = \"deal_video_id\")\n    private String dealVideoId;\n\n    /**\n     * 类型标题，让用户选择，详情见 枚举\n     */\n    private String title;\n\n    /**\n     * 内容\n     */\n    private String content;\n\n    /**\n     * 举报人的id\n     */\n    private String userid;\n\n    /**\n     * 举报时间\n     */\n    @Column(name = \"create_date\")\n    private Date createDate;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取被举报用户id\n     *\n     * @return deal_user_id - 被举报用户id\n     */\n    public String getDealUserId() {\n        return dealUserId;\n    }\n\n    /**\n     * 设置被举报用户id\n     *\n     * @param dealUserId 被举报用户id\n     */\n    public void setDealUserId(String dealUserId) {\n        this.dealUserId = dealUserId;\n    }\n\n    /**\n     * @return deal_video_id\n     */\n    public String getDealVideoId() {\n        return dealVideoId;\n    }\n\n    /**\n     * @param dealVideoId\n     */\n    public void setDealVideoId(String dealVideoId) {\n        this.dealVideoId = dealVideoId;\n    }\n\n    /**\n     * 获取类型标题，让用户选择，详情见 枚举\n     *\n     * @return title - 类型标题，让用户选择，详情见 枚举\n     */\n    public String getTitle() {\n        return title;\n    }\n\n    /**\n     * 设置类型标题，让用户选择，详情见 枚举\n     *\n     * @param title 类型标题，让用户选择，详情见 枚举\n     */\n    public void setTitle(String title) {\n        this.title = title;\n    }\n\n    /**\n     * 获取内容\n     *\n     * @return content - 内容\n     */\n    public String getContent() {\n        return content;\n    }\n\n    /**\n     * 设置内容\n     *\n     * @param content 内容\n     */\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    /**\n     * 获取举报人的id\n     *\n     * @return userid - 举报人的id\n     */\n    public String getUserid() {\n        return userid;\n    }\n\n    /**\n     * 设置举报人的id\n     *\n     * @param userid 举报人的id\n     */\n    public void setUserid(String userid) {\n        this.userid = userid;\n    }\n\n    /**\n     * 获取举报时间\n     *\n     * @return create_date - 举报时间\n     */\n    public Date getCreateDate() {\n        return createDate;\n    }\n\n    /**\n     * 设置举报时间\n     *\n     * @param createDate 举报时间\n     */\n    public void setCreateDate(Date createDate) {\n        this.createDate = createDate;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/pojo/Videos.java",
    "content": "package com.kkvideo.pojo;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\nimport java.util.Date;\n\npublic class Videos {\n    @Id\n    private String id;\n\n    /**\n     * 发布者id\n     */\n    @Column(name = \"user_id\")\n    private String userId;\n\n    /**\n     * 用户使用音频的信息\n     */\n    @Column(name = \"audio_id\")\n    private String audioId;\n\n    /**\n     * 视频描述\n     */\n    @Column(name = \"video_desc\")\n    private String videoDesc;\n\n    /**\n     * 视频存放的路径\n     */\n    @Column(name = \"video_path\")\n    private String videoPath;\n\n    /**\n     * 视频秒数\n     */\n    @Column(name = \"video_seconds\")\n    private Float videoSeconds;\n\n    /**\n     * 视频宽度\n     */\n    @Column(name = \"video_width\")\n    private Integer videoWidth;\n\n    /**\n     * 视频高度\n     */\n    @Column(name = \"video_height\")\n    private Integer videoHeight;\n\n    /**\n     * 视频封面图\n     */\n    @Column(name = \"cover_path\")\n    private String coverPath;\n\n    /**\n     * 喜欢/赞美的数量\n     */\n    @Column(name = \"like_counts\")\n    private Long likeCounts;\n\n    /**\n     * 视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     */\n    private Integer status;\n\n    /**\n     * 创建时间\n     */\n    @Column(name = \"create_time\")\n    private Date createTime;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取发布者id\n     *\n     * @return user_id - 发布者id\n     */\n    public String getUserId() {\n        return userId;\n    }\n\n    /**\n     * 设置发布者id\n     *\n     * @param userId 发布者id\n     */\n    public void setUserId(String userId) {\n        this.userId = userId;\n    }\n\n    /**\n     * 获取用户使用音频的信息\n     *\n     * @return audio_id - 用户使用音频的信息\n     */\n    public String getAudioId() {\n        return audioId;\n    }\n\n    /**\n     * 设置用户使用音频的信息\n     *\n     * @param audioId 用户使用音频的信息\n     */\n    public void setAudioId(String audioId) {\n        this.audioId = audioId;\n    }\n\n    /**\n     * 获取视频描述\n     *\n     * @return video_desc - 视频描述\n     */\n    public String getVideoDesc() {\n        return videoDesc;\n    }\n\n    /**\n     * 设置视频描述\n     *\n     * @param videoDesc 视频描述\n     */\n    public void setVideoDesc(String videoDesc) {\n        this.videoDesc = videoDesc;\n    }\n\n    /**\n     * 获取视频存放的路径\n     *\n     * @return video_path - 视频存放的路径\n     */\n    public String getVideoPath() {\n        return videoPath;\n    }\n\n    /**\n     * 设置视频存放的路径\n     *\n     * @param videoPath 视频存放的路径\n     */\n    public void setVideoPath(String videoPath) {\n        this.videoPath = videoPath;\n    }\n\n    /**\n     * 获取视频秒数\n     *\n     * @return video_seconds - 视频秒数\n     */\n    public Float getVideoSeconds() {\n        return videoSeconds;\n    }\n\n    /**\n     * 设置视频秒数\n     *\n     * @param videoSeconds 视频秒数\n     */\n    public void setVideoSeconds(Float videoSeconds) {\n        this.videoSeconds = videoSeconds;\n    }\n\n    /**\n     * 获取视频宽度\n     *\n     * @return video_width - 视频宽度\n     */\n    public Integer getVideoWidth() {\n        return videoWidth;\n    }\n\n    /**\n     * 设置视频宽度\n     *\n     * @param videoWidth 视频宽度\n     */\n    public void setVideoWidth(Integer videoWidth) {\n        this.videoWidth = videoWidth;\n    }\n\n    /**\n     * 获取视频高度\n     *\n     * @return video_height - 视频高度\n     */\n    public Integer getVideoHeight() {\n        return videoHeight;\n    }\n\n    /**\n     * 设置视频高度\n     *\n     * @param videoHeight 视频高度\n     */\n    public void setVideoHeight(Integer videoHeight) {\n        this.videoHeight = videoHeight;\n    }\n\n    /**\n     * 获取视频封面图\n     *\n     * @return cover_path - 视频封面图\n     */\n    public String getCoverPath() {\n        return coverPath;\n    }\n\n    /**\n     * 设置视频封面图\n     *\n     * @param coverPath 视频封面图\n     */\n    public void setCoverPath(String coverPath) {\n        this.coverPath = coverPath;\n    }\n\n    /**\n     * 获取喜欢/赞美的数量\n     *\n     * @return like_counts - 喜欢/赞美的数量\n     */\n    public Long getLikeCounts() {\n        return likeCounts;\n    }\n\n    /**\n     * 设置喜欢/赞美的数量\n     *\n     * @param likeCounts 喜欢/赞美的数量\n     */\n    public void setLikeCounts(Long likeCounts) {\n        this.likeCounts = likeCounts;\n    }\n\n    /**\n     * 获取视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     *\n     * @return status - 视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     */\n    public Integer getStatus() {\n        return status;\n    }\n\n    /**\n     * 设置视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     *\n     * @param status 视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     */\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    /**\n     * 获取创建时间\n     *\n     * @return create_time - 创建时间\n     */\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    /**\n     * 设置创建时间\n     *\n     * @param createTime 创建时间\n     */\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/vo/CommentsVO.java",
    "content": "package com.kkvideo.vo;\n\nimport java.util.Date;\n\npublic class CommentsVO {\n    private String id;\n\n    /**\n     * 视频id\n     */\n    private String videoId;\n\n    /**\n     * 留言者，评论的用户id\n     */\n    private String fromUserId;\n\n    private Date createTime;\n\n    /**\n     * 评论内容\n     */\n    private String comment;\n    \n    private String faceImage;\n    private String nickname;\n    private String toNickname;\n    private String timeAgoStr;\n    \n\n    public String getTimeAgoStr() {\n\t\treturn timeAgoStr;\n\t}\n\n\tpublic void setTimeAgoStr(String timeAgoStr) {\n\t\tthis.timeAgoStr = timeAgoStr;\n\t}\n\n\tpublic String getNickname() {\n\t\treturn nickname;\n\t}\n\n\tpublic void setNickname(String nickname) {\n\t\tthis.nickname = nickname;\n\t}\n\n\tpublic String getFaceImage() {\n\t\treturn faceImage;\n\t}\n\n\tpublic void setFaceImage(String faceImage) {\n\t\tthis.faceImage = faceImage;\n\t}\n\n\t/**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取视频id\n     *\n     * @return video_id - 视频id\n     */\n    public String getVideoId() {\n        return videoId;\n    }\n\n    /**\n     * 设置视频id\n     *\n     * @param videoId 视频id\n     */\n    public void setVideoId(String videoId) {\n        this.videoId = videoId;\n    }\n\n    /**\n     * 获取留言者，评论的用户id\n     *\n     * @return from_user_id - 留言者，评论的用户id\n     */\n    public String getFromUserId() {\n        return fromUserId;\n    }\n\n    /**\n     * 设置留言者，评论的用户id\n     *\n     * @param fromUserId 留言者，评论的用户id\n     */\n    public void setFromUserId(String fromUserId) {\n        this.fromUserId = fromUserId;\n    }\n\n    /**\n     * @return create_time\n     */\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    /**\n     * @param createTime\n     */\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    /**\n     * 获取评论内容\n     *\n     * @return comment - 评论内容\n     */\n    public String getComment() {\n        return comment;\n    }\n\n    /**\n     * 设置评论内容\n     *\n     * @param comment 评论内容\n     */\n    public void setComment(String comment) {\n        this.comment = comment;\n    }\n\n\tpublic String getToNickname() {\n\t\treturn toNickname;\n\t}\n\n\tpublic void setToNickname(String toNickname) {\n\t\tthis.toNickname = toNickname;\n\t}\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/vo/PublisherVideo.java",
    "content": "package com.kkvideo.vo;\n\npublic class PublisherVideo {\n    \n\tpublic UsersVo publisher;\n\tpublic boolean userLikeVideo;\n\tpublic UsersVo getPublisher() {\n\t\treturn publisher;\n\t}\n\tpublic void setPublisher(UsersVo publisher) {\n\t\tthis.publisher = publisher;\n\t}\n\tpublic boolean isUserLikeVideo() {\n\t\treturn userLikeVideo;\n\t}\n\tpublic void setUserLikeVideo(boolean userLikeVideo) {\n\t\tthis.userLikeVideo = userLikeVideo;\n\t}\n}"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/vo/UsersVo.java",
    "content": "package com.kkvideo.vo;\n\nimport com.fasterxml.jackson.annotation.JsonIgnore;\nimport io.swagger.annotations.ApiModelProperty;\n\n\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 18:10 2018-06-11\n * @Modified By:\n */\npublic class UsersVo {\n\n    @ApiModelProperty(hidden = true)\n    private String id;\n\n\n    /**\n     * 用户的Token\n     */\n    @ApiModelProperty(hidden = true)\n    private String userToken;\n\n    /**\n     * 用户的Token\n     */\n    @ApiModelProperty(hidden = true)\n    private boolean isFollow;\n\n    /**\n     * 用户名\n     */\n    @ApiModelProperty(value = \"用户名\",name = \"username\",example = \"username\",required = true)\n    private String username;\n\n    /**\n     * 密码\n     */\n    @JsonIgnore\n    @ApiModelProperty(value = \"密码\",name = \"password\",example = \"password\",required = true)\n    private String password;\n\n    /**\n     * 我的头像，如果没有默认给一张\n     */\n    @ApiModelProperty(hidden = true)\n    private String faceImage;\n\n    /**\n     * 昵称\n     */\n    @ApiModelProperty(hidden = true)\n    private String nickname;\n\n    /**\n     * 我的粉丝数量\n     */\n    @ApiModelProperty(hidden = true)\n    private Integer fansCounts;\n\n    /**\n     * 我关注的人总数\n     */\n    @ApiModelProperty(hidden = true)\n    private Integer followCounts;\n\n    /**\n     * 我接受到的赞美/收藏 的数量\n     */\n    @ApiModelProperty(hidden = true)\n    private Integer receiveLikeCounts;\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取用户名\n     *\n     * @return username - 用户名\n     */\n    public String getUsername() {\n        return username;\n    }\n\n    /**\n     * 设置用户名\n     *\n     * @param username 用户名\n     */\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    /**\n     * 获取密码\n     *\n     * @return password - 密码\n     */\n    public String getPassword() {\n        return password;\n    }\n\n    /**\n     * 设置密码\n     *\n     * @param password 密码\n     */\n    public void setPassword(String password) {\n        this.password = password;\n    }\n\n    /**\n     * 获取我的头像，如果没有默认给一张\n     *\n     * @return face_image - 我的头像，如果没有默认给一张\n     */\n    public String getFaceImage() {\n        return faceImage;\n    }\n\n    /**\n     * 设置我的头像，如果没有默认给一张\n     *\n     * @param faceImage 我的头像，如果没有默认给一张\n     */\n    public void setFaceImage(String faceImage) {\n        this.faceImage = faceImage;\n    }\n\n    /**\n     * 获取昵称\n     *\n     * @return nickname - 昵称\n     */\n    public String getNickname() {\n        return nickname;\n    }\n\n    /**\n     * 设置昵称\n     *\n     * @param nickname 昵称\n     */\n    public void setNickname(String nickname) {\n        this.nickname = nickname;\n    }\n\n    /**\n     * 获取我的粉丝数量\n     *\n     * @return fans_counts - 我的粉丝数量\n     */\n    public Integer getFansCounts() {\n        return fansCounts;\n    }\n\n    /**\n     * 设置我的粉丝数量\n     *\n     * @param fansCounts 我的粉丝数量\n     */\n    public void setFansCounts(Integer fansCounts) {\n        this.fansCounts = fansCounts;\n    }\n\n    /**\n     * 获取我关注的人总数\n     *\n     * @return follow_counts - 我关注的人总数\n     */\n    public Integer getFollowCounts() {\n        return followCounts;\n    }\n\n    /**\n     * 设置我关注的人总数\n     *\n     * @param followCounts 我关注的人总数\n     */\n    public void setFollowCounts(Integer followCounts) {\n        this.followCounts = followCounts;\n    }\n\n    /**\n     * 获取我接受到的赞美/收藏 的数量\n     *\n     * @return receive_like_counts - 我接受到的赞美/收藏 的数量\n     */\n    public Integer getReceiveLikeCounts() {\n        return receiveLikeCounts;\n    }\n\n    /**\n     * 设置我接受到的赞美/收藏 的数量\n     *\n     * @param receiveLikeCounts 我接受到的赞美/收藏 的数量\n     */\n    public void setReceiveLikeCounts(Integer receiveLikeCounts) {\n        this.receiveLikeCounts = receiveLikeCounts;\n    }\n\n    public String getUserToken() {\n        return userToken;\n    }\n\n    public void setUserToken(String userToken) {\n        this.userToken = userToken;\n    }\n\n    public boolean isFollow() {\n        return isFollow;\n    }\n\n    public void setFollow(boolean follow) {\n        isFollow = follow;\n    }\n}\n"
  },
  {
    "path": "kk-video-pojo/src/main/java/com/kkvideo/vo/VideosVo.java",
    "content": "package com.kkvideo.vo;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\nimport java.util.Date;\n\npublic class VideosVo {\n\n    private String id;\n\n\n    private String userId;\n\n\n    private String audioId;\n\n\n    private String videoDesc;\n\n\n    private String videoPath;\n\n\n    private Float videoSeconds;\n\n\n    private Integer videoWidth;\n\n\n    private Integer videoHeight;\n\n\n    private String coverPath;\n\n\n    private Long likeCounts;\n\n\n    private Integer status;\n\n\n    private Date createTime;\n\n    private String nickname;\n\n    private String faceImage;\n\n    public String getNickname() {\n        return nickname;\n    }\n\n    public void setNickname(String nickname) {\n        this.nickname = nickname;\n    }\n\n    public String getFaceImage() {\n        return faceImage;\n    }\n\n    public void setFaceImage(String faceImage) {\n        this.faceImage = faceImage;\n    }\n\n    /**\n     * @return id\n     */\n    public String getId() {\n        return id;\n    }\n\n    /**\n     * @param id\n     */\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    /**\n     * 获取发布者id\n     *\n     * @return user_id - 发布者id\n     */\n    public String getUserId() {\n        return userId;\n    }\n\n    /**\n     * 设置发布者id\n     *\n     * @param userId 发布者id\n     */\n    public void setUserId(String userId) {\n        this.userId = userId;\n    }\n\n    /**\n     * 获取用户使用音频的信息\n     *\n     * @return audio_id - 用户使用音频的信息\n     */\n    public String getAudioId() {\n        return audioId;\n    }\n\n    /**\n     * 设置用户使用音频的信息\n     *\n     * @param audioId 用户使用音频的信息\n     */\n    public void setAudioId(String audioId) {\n        this.audioId = audioId;\n    }\n\n    /**\n     * 获取视频描述\n     *\n     * @return video_desc - 视频描述\n     */\n    public String getVideoDesc() {\n        return videoDesc;\n    }\n\n    /**\n     * 设置视频描述\n     *\n     * @param videoDesc 视频描述\n     */\n    public void setVideoDesc(String videoDesc) {\n        this.videoDesc = videoDesc;\n    }\n\n    /**\n     * 获取视频存放的路径\n     *\n     * @return video_path - 视频存放的路径\n     */\n    public String getVideoPath() {\n        return videoPath;\n    }\n\n    /**\n     * 设置视频存放的路径\n     *\n     * @param videoPath 视频存放的路径\n     */\n    public void setVideoPath(String videoPath) {\n        this.videoPath = videoPath;\n    }\n\n    /**\n     * 获取视频秒数\n     *\n     * @return video_seconds - 视频秒数\n     */\n    public Float getVideoSeconds() {\n        return videoSeconds;\n    }\n\n    /**\n     * 设置视频秒数\n     *\n     * @param videoSeconds 视频秒数\n     */\n    public void setVideoSeconds(Float videoSeconds) {\n        this.videoSeconds = videoSeconds;\n    }\n\n    /**\n     * 获取视频宽度\n     *\n     * @return video_width - 视频宽度\n     */\n    public Integer getVideoWidth() {\n        return videoWidth;\n    }\n\n    /**\n     * 设置视频宽度\n     *\n     * @param videoWidth 视频宽度\n     */\n    public void setVideoWidth(Integer videoWidth) {\n        this.videoWidth = videoWidth;\n    }\n\n    /**\n     * 获取视频高度\n     *\n     * @return video_height - 视频高度\n     */\n    public Integer getVideoHeight() {\n        return videoHeight;\n    }\n\n    /**\n     * 设置视频高度\n     *\n     * @param videoHeight 视频高度\n     */\n    public void setVideoHeight(Integer videoHeight) {\n        this.videoHeight = videoHeight;\n    }\n\n    /**\n     * 获取视频封面图\n     *\n     * @return cover_path - 视频封面图\n     */\n    public String getCoverPath() {\n        return coverPath;\n    }\n\n    /**\n     * 设置视频封面图\n     *\n     * @param coverPath 视频封面图\n     */\n    public void setCoverPath(String coverPath) {\n        this.coverPath = coverPath;\n    }\n\n    /**\n     * 获取喜欢/赞美的数量\n     *\n     * @return like_counts - 喜欢/赞美的数量\n     */\n    public Long getLikeCounts() {\n        return likeCounts;\n    }\n\n    /**\n     * 设置喜欢/赞美的数量\n     *\n     * @param likeCounts 喜欢/赞美的数量\n     */\n    public void setLikeCounts(Long likeCounts) {\n        this.likeCounts = likeCounts;\n    }\n\n    /**\n     * 获取视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     *\n     * @return status - 视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     */\n    public Integer getStatus() {\n        return status;\n    }\n\n    /**\n     * 设置视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     *\n     * @param status 视频状态：\n1、发布成功\n2、禁止播放，管理员操作\n     */\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    /**\n     * 获取创建时间\n     *\n     * @return create_time - 创建时间\n     */\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    /**\n     * 设置创建时间\n     *\n     * @param createTime 创建时间\n     */\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n}"
  },
  {
    "path": "kk-video-pojo/target/maven-archiver/pom.properties",
    "content": "#Generated by Apache Maven\n#Sun Jun 24 23:05:16 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kk-video-pojo\n"
  },
  {
    "path": "kk-video-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": "com\\kkvideo\\pojo\\Comments.class\ncom\\kkvideo\\pojo\\Users.class\ncom\\kkvideo\\pojo\\SearchRecords.class\ncom\\kkvideo\\vo\\VideosVo.class\ncom\\kkvideo\\pojo\\UsersFans.class\ncom\\kkvideo\\pojo\\Bgm.class\ncom\\kkvideo\\pojo\\UsersLikeVideos.class\ncom\\kkvideo\\vo\\CommentsVO.class\ncom\\kkvideo\\vo\\PublisherVideo.class\ncom\\kkvideo\\vo\\UsersVo.class\ncom\\kkvideo\\pojo\\UsersReport.class\ncom\\kkvideo\\pojo\\Videos.class\n"
  },
  {
    "path": "kk-video-pojo/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\vo\\CommentsVO.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\UsersLikeVideos.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\SearchRecords.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\Users.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\Videos.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\vo\\VideosVo.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\Comments.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\UsersFans.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\UsersReport.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\pojo\\Bgm.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\vo\\UsersVo.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-pojo\\src\\main\\java\\com\\kkvideo\\vo\\PublisherVideo.java\n"
  },
  {
    "path": "kk-video-pojo/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-service/kkvideoservice.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "kk-video-service/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <parent>\n        <artifactId>jimisun.kkvideo</artifactId>\n        <groupId>com.jimisun</groupId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>jar</packaging>\n    <artifactId>kk-video-service</artifactId>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.jimisun</groupId>\n            <artifactId>kk-video-dao</artifactId>\n            <version>1.0-SNAPSHOT</version>\n        </dependency>\n    </dependencies>\n\n\n</project>"
  },
  {
    "path": "kk-video-service/src/main/java/com/kkvideo/service/BgmService.java",
    "content": "package com.kkvideo.service;\n\nimport com.kkvideo.pojo.Bgm;\nimport org.hibernate.validator.constraints.ModCheck;\n\nimport java.util.List;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 11:04 2018-06-12\n * @Modified By:\n */\npublic interface BgmService {\n\n    public List<Bgm> queryBgmList();\n\n    public Bgm queryBgmById(String bgmId);\n}\n"
  },
  {
    "path": "kk-video-service/src/main/java/com/kkvideo/service/UserService.java",
    "content": "package com.kkvideo.service;\n\nimport com.kkvideo.pojo.Users;\nimport com.kkvideo.pojo.UsersReport;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 22:45 2018-06-10\n * @Modified By:\n */\npublic interface UserService {\n\n    Boolean queryUserExistByUsername(String username);\n\n    void saveUser(Users users);\n\n\n    /**\n     * @Description: 用户登录，根据用户名和密码查询用户\n     */\n    public Users queryUserForLogin(String username, String password);\n\n    /**\n     * @Description: 用户修改信息\n     */\n    public void updateUserInfo(Users user);\n\n    /**\n     * 查询用户信息\n     * @param userId\n     * @return\n     */\n    public Users queryUserInfo(String userId);\n\n    /**\n     * @Description: 查询用户是否喜欢点赞视频\n     */\n    public boolean isUserLikeVideo(String userId, String videoId);\n\n    /**\n     * @Description: 增加用户和粉丝的关系\n     */\n    public void saveUserFanRelation(String userId, String fanId);\n\n    /**\n     * @Description: 删除用户和粉丝的关系\n     */\n    public void deleteUserFanRelation(String userId, String fanId);\n\n    /**\n     * @Description: 查询用户是否关注\n     */\n    public boolean queryIfFollow(String userId, String fanId);\n\n    /**\n     * @Description: 举报用户\n     */\n    public void reportUser(UsersReport userReport);\n\n\n\n\n}\n"
  },
  {
    "path": "kk-video-service/src/main/java/com/kkvideo/service/VideoService.java",
    "content": "package com.kkvideo.service;\n\nimport com.kkvideo.pojo.Comments;\nimport com.kkvideo.pojo.Videos;\nimport com.kkvideo.utils.PagedResult;\n\nimport java.util.List;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 20:16 2018-06-12\n * @Modified By:\n */\npublic interface VideoService {\n\n    /**\n     * 上传视频\n     * @param videos\n     * @return\n     */\n    public String saveVideo(Videos videos);\n\n    /**\n     * 更新视频封面\n     * @param videoId\n     * @param coverPath\n     */\n    public void updateVideo(String videoId,String coverPath);\n\n    /**\n     * @Description: 分页查询视频列表\n     */\n    public PagedResult getAllVideos(Videos video, Integer isSaveRecord,\n                                    Integer page, Integer pageSize);\n    /**\n     * @Description: 获取热搜词列表\n     */\n    public List<String> getHotwords();\n\n    /**\n     * @Description: 用户喜欢/点赞视频\n     */\n    public void userLikeVideo(String userId, String videoId, String videoCreaterId);\n\n    /**\n     * @Description: 用户不喜欢/取消点赞视频\n     */\n    public void userUnLikeVideo(String userId, String videoId, String videoCreaterId);\n\n    /**\n     * @Description: 查询我喜欢的视频列表\n     */\n    public PagedResult queryMyLikeVideos(String userId, Integer page, Integer pageSize);\n\n    /**\n     * @Description: 查询我关注的人的视频列表\n     */\n    public PagedResult queryMyFollowVideos(String userId, Integer page, Integer pageSize);\n\n    /**\n     * @Description: 用户留言\n     */\n    public void saveComment(Comments comment);\n\n    /**\n     * @Description: 留言分页\n     */\n    public PagedResult getAllComments(String videoId, Integer page, Integer pageSize);\n\n}\n"
  },
  {
    "path": "kk-video-service/src/main/java/com/kkvideo/service/impl/BgmServiceImpl.java",
    "content": "package com.kkvideo.service.impl;\n\nimport com.kkvideo.mapper.BgmMapper;\nimport com.kkvideo.pojo.Bgm;\nimport com.kkvideo.service.BgmService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 11:05 2018-06-12\n * @Modified By:\n */\n@Service\npublic class BgmServiceImpl implements BgmService {\n\n    @Autowired\n    private BgmMapper bgmMapper;\n\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public List<Bgm> queryBgmList() {\n\n        return bgmMapper.selectAll();\n    }\n\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public Bgm queryBgmById(String bgmId) {\n        return bgmMapper.selectByPrimaryKey(bgmId);\n    }\n}\n"
  },
  {
    "path": "kk-video-service/src/main/java/com/kkvideo/service/impl/UserServiceImpl.java",
    "content": "package com.kkvideo.service.impl;\n\nimport com.kkvideo.mapper.UsersFansMapper;\nimport com.kkvideo.mapper.UsersLikeVideosMapper;\nimport com.kkvideo.mapper.UsersMapper;\nimport com.kkvideo.mapper.UsersReportMapper;\nimport com.kkvideo.pojo.Users;\nimport com.kkvideo.pojo.UsersFans;\nimport com.kkvideo.pojo.UsersLikeVideos;\nimport com.kkvideo.pojo.UsersReport;\nimport com.kkvideo.service.UserService;\nimport org.apache.commons.lang3.StringUtils;\nimport org.n3r.idworker.Sid;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\nimport tk.mybatis.mapper.entity.Example;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 22:46 2018-06-10\n * @Modified By:\n */\n@Service\npublic class UserServiceImpl implements UserService {\n\n    @Autowired\n    private UsersMapper usersMapper;\n\n    @Autowired\n    private UsersLikeVideosMapper usersLikeVideosMapper;\n\n    @Autowired\n    private UsersReportMapper usersReportMapper;\n\n    @Autowired\n    private UsersFansMapper usersFansMapper;\n\n    @Autowired\n    private Sid sid;\n\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public Boolean queryUserExistByUsername(String username) {\n        Users users = new Users();\n        users.setUsername(username);\n        Users result = usersMapper.selectOne(users);\n        return result == null?false:true;\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void saveUser(Users users) {\n\n        String userid = sid.nextShort();\n        users.setId(userid);\n        usersMapper.insertSelective(users);\n\n    }\n\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public Users queryUserForLogin(String username, String password) {\n\n        Example userExample = new Example(Users.class);\n        Example.Criteria criteria = userExample.createCriteria();\n        criteria.andEqualTo(\"username\", username);\n        criteria.andEqualTo(\"password\", password);\n        Users result = usersMapper.selectOneByExample(userExample);\n\n        return result;\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void updateUserInfo(Users user) {\n\n        Example userExample = new Example(Users.class);\n        Example.Criteria criteria = userExample.createCriteria();\n        criteria.andEqualTo(\"id\", user.getId());\n        usersMapper.updateByExampleSelective(user, userExample);\n    }\n\n    /**\n     * 查询用户信息\n     *\n     * @param\n     * @return\n     */\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public Users queryUserInfo(String userId) {\n        Example userExample = new Example(Users.class);\n        Example.Criteria criteria = userExample.createCriteria();\n        criteria.andEqualTo(\"id\",userId);\n        Users user = usersMapper.selectOneByExample(userExample);\n        return user;\n    }\n\n    /**\n     * @param userId\n     * @param videoId\n     * @Description: 查询用户是否喜欢点赞视频\n     */\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public boolean isUserLikeVideo(String userId, String videoId) {\n\n        if (StringUtils.isBlank(userId) || StringUtils.isBlank(videoId)) {\n            return false;\n        }\n\n        Example example = new Example(UsersLikeVideos.class);\n        Example.Criteria criteria = example.createCriteria();\n\n        criteria.andEqualTo(\"userId\", userId);\n        criteria.andEqualTo(\"videoId\", videoId);\n\n        List<UsersLikeVideos> list =usersLikeVideosMapper.selectByExample(example);\n\n        if (list != null && list.size() >0) {\n            return true;\n        }\n\n        return false;\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void saveUserFanRelation(String userId, String fanId) {\n\n        String relId = sid.nextShort();\n\n        UsersFans userFan = new UsersFans();\n        userFan.setId(relId);\n        userFan.setUserId(userId);\n        userFan.setFanId(fanId);\n\n        usersFansMapper.insert(userFan);\n\n        usersMapper.addFansCount(userId);\n        usersMapper.addFollersCount(fanId);\n\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void deleteUserFanRelation(String userId, String fanId) {\n\n        Example example = new Example(UsersFans.class);\n        Example.Criteria criteria = example.createCriteria();\n\n        criteria.andEqualTo(\"userId\", userId);\n        criteria.andEqualTo(\"fanId\", fanId);\n\n        usersFansMapper.deleteByExample(example);\n\n        usersMapper.reduceFansCount(userId);\n        usersMapper.reduceFollersCount(fanId);\n\n    }\n\n    @Override\n    public boolean queryIfFollow(String userId, String fanId) {\n\n        Example example = new Example(UsersFans.class);\n        Example.Criteria criteria = example.createCriteria();\n\n        criteria.andEqualTo(\"userId\", userId);\n        criteria.andEqualTo(\"fanId\", fanId);\n\n        List<UsersFans> list = usersFansMapper.selectByExample(example);\n\n        if (list != null && !list.isEmpty() && list.size() > 0) {\n            return true;\n        }\n\n        return false;\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void reportUser(UsersReport userReport) {\n\n        String urId = sid.nextShort();\n        userReport.setId(urId);\n        userReport.setCreateDate(new Date());\n\n        usersReportMapper.insert(userReport);\n    }\n\n}\n"
  },
  {
    "path": "kk-video-service/src/main/java/com/kkvideo/service/impl/VideoServiceImpl.java",
    "content": "package com.kkvideo.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\nimport com.kkvideo.mapper.*;\nimport com.kkvideo.pojo.Comments;\nimport com.kkvideo.pojo.SearchRecords;\nimport com.kkvideo.pojo.UsersLikeVideos;\nimport com.kkvideo.pojo.Videos;\nimport com.kkvideo.service.VideoService;\nimport com.kkvideo.utils.PagedResult;\nimport com.kkvideo.utils.TimeAgoUtils;\nimport com.kkvideo.vo.CommentsVO;\nimport com.kkvideo.vo.VideosVo;\nimport org.n3r.idworker.Sid;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\nimport tk.mybatis.mapper.entity.Example;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * @Author:jimisun\n * @Description:\n * @Date:Created in 20:16 2018-06-12\n * @Modified By:\n */\n@Service\npublic class VideoServiceImpl implements VideoService {\n\n    @Autowired\n    private Sid sid;\n\n    @Autowired\n    private VideosMapper videosMapper;\n\n    @Autowired\n    private VideosMapperCustom videosMapperCustom;\n\n    @Autowired\n    private SearchRecordsMapper searchRecordsMapper;\n\n    @Autowired\n    private UsersLikeVideosMapper usersLikeVideosMapper;\n\n    @Autowired\n    private UsersMapper usersMapper;\n\n    @Autowired\n    private CommentsMapper commentsMapper;\n\n    @Autowired\n    private CommentsMapperCustom commentsMapperCustom;\n\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public String saveVideo(Videos video) {\n\n        String id = sid.nextShort();\n        video.setId(id);\n        videosMapper.insertSelective(video);\n        return id;\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void updateVideo(String videoId, String coverPath) {\n        Videos videos = new Videos();\n        videos.setCoverPath(coverPath);\n        videos.setId(videoId);\n        videosMapper.updateByPrimaryKeySelective(videos);\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public PagedResult getAllVideos(Videos video, Integer isSaveRecord,\n                                    Integer page, Integer pageSize) {\n\n        // 保存热搜词\n        String desc = video.getVideoDesc();\n        String userId = video.getUserId();\n        if (isSaveRecord != null && isSaveRecord == 1) {\n            SearchRecords record = new SearchRecords();\n            String recordId = sid.nextShort();\n            record.setId(recordId);\n            record.setContent(desc);\n            searchRecordsMapper.insert(record);\n        }\n\n        PageHelper.startPage(page, pageSize);\n        List<VideosVo> list = videosMapperCustom.queryAllVideos(desc, userId);\n\n        PageInfo<VideosVo> pageList = new PageInfo<>(list);\n\n        PagedResult pagedResult = new PagedResult();\n        pagedResult.setPage(page);\n        pagedResult.setTotal(pageList.getPages());\n        pagedResult.setRows(list);\n        pagedResult.setRecords(pageList.getTotal());\n\n        return pagedResult;\n    }\n\n    /**\n     * 获取热搜词\n     * @return\n     */\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public List<String> getHotwords() {\n        return searchRecordsMapper.getHotwords();\n    }\n\n\n    /**\n     * 用户喜欢视频\n     * @param userId\n     * @param videoId\n     * @param videoCreaterId\n     */\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void userLikeVideo(String userId, String videoId, String videoCreaterId) {\n        //第一步：将喜欢关系保存到关联表中\n        UsersLikeVideos usersLikeVideos = new UsersLikeVideos();\n        String id = sid.nextShort();\n        usersLikeVideos.setId(id);\n        usersLikeVideos.setUserId(userId);\n        usersLikeVideos.setVideoId(videoId);\n        usersLikeVideosMapper.insert(usersLikeVideos);\n\n        //第二步：视频喜欢数量累加\n        videosMapperCustom.addVideoLikeCount(videoId);\n\n        //第三步：视频发布者的总喜欢数进行累加\n        usersMapper.addReceiveLikeCount(videoCreaterId);\n    }\n\n    /**\n     * @param userId\n     * @param videoId\n     * @param videoCreaterId\n     * @Description: 用户不喜欢/取消点赞视频\n     */\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void userUnLikeVideo(String userId, String videoId, String videoCreaterId) {\n        // 1. 删除用户和视频的喜欢点赞关联关系表\n\n        Example example = new Example(UsersLikeVideos.class);\n        Example.Criteria criteria = example.createCriteria();\n\n        criteria.andEqualTo(\"userId\", userId);\n        criteria.andEqualTo(\"videoId\", videoId);\n\n        usersLikeVideosMapper.deleteByExample(example);\n\n        // 2. 视频喜欢数量累减\n        videosMapperCustom.reduceVideoLikeCount(videoId);\n\n        // 3. 用户受喜欢数量的累减\n        usersMapper.reduceReceiveLikeCount(videoCreaterId);\n\n\n    }\n\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public PagedResult queryMyLikeVideos(String userId, Integer page, Integer pageSize) {\n        PageHelper.startPage(page, pageSize);\n        List<VideosVo> list = videosMapperCustom.queryMyLikeVideos(userId);\n\n        PageInfo<VideosVo> pageList = new PageInfo<>(list);\n\n        PagedResult pagedResult = new PagedResult();\n        pagedResult.setTotal(pageList.getPages());\n        pagedResult.setRows(list);\n        pagedResult.setPage(page);\n        pagedResult.setRecords(pageList.getTotal());\n\n        return pagedResult;\n    }\n\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public PagedResult queryMyFollowVideos(String userId, Integer page, Integer pageSize) {\n        PageHelper.startPage(page, pageSize);\n        List<VideosVo> list = videosMapperCustom.queryMyFollowVideos(userId);\n\n        PageInfo<VideosVo> pageList = new PageInfo<>(list);\n\n        PagedResult pagedResult = new PagedResult();\n        pagedResult.setTotal(pageList.getPages());\n        pagedResult.setRows(list);\n        pagedResult.setPage(page);\n        pagedResult.setRecords(pageList.getTotal());\n\n        return pagedResult;\n    }\n\n    @Transactional(propagation = Propagation.REQUIRED)\n    @Override\n    public void saveComment(Comments comment) {\n        String id = sid.nextShort();\n        comment.setId(id);\n        comment.setCreateTime(new Date());\n        commentsMapper.insert(comment);\n    }\n\n    @Transactional(propagation = Propagation.SUPPORTS)\n    @Override\n    public PagedResult getAllComments(String videoId, Integer page, Integer pageSize) {\n\n        PageHelper.startPage(page, pageSize);\n\n        List<CommentsVO> list = commentsMapperCustom.queryComments(videoId);\n\n        for (CommentsVO c : list) {\n            String timeAgo = TimeAgoUtils.format(c.getCreateTime());\n            c.setTimeAgoStr(timeAgo);\n        }\n\n        PageInfo<CommentsVO> pageList = new PageInfo<>(list);\n\n        PagedResult grid = new PagedResult();\n        grid.setTotal(pageList.getPages());\n        grid.setRows(list);\n        grid.setPage(page);\n        grid.setRecords(pageList.getTotal());\n\n        return grid;\n    }\n\n\n\n\n}\n"
  },
  {
    "path": "kk-video-service/target/maven-archiver/pom.properties",
    "content": "#Generated by Apache Maven\n#Sun Jun 24 23:05:17 CST 2018\nversion=1.0-SNAPSHOT\ngroupId=com.jimisun\nartifactId=kk-video-service\n"
  },
  {
    "path": "kk-video-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst",
    "content": "com\\kkvideo\\service\\VideoService.class\ncom\\kkvideo\\service\\impl\\VideoServiceImpl.class\ncom\\kkvideo\\service\\impl\\UserServiceImpl.class\ncom\\kkvideo\\service\\impl\\BgmServiceImpl.class\ncom\\kkvideo\\service\\BgmService.class\ncom\\kkvideo\\service\\UserService.class\n"
  },
  {
    "path": "kk-video-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst",
    "content": "E:\\IntelliJIDEAWork\\kkvideo\\kk-video-service\\src\\main\\java\\com\\kkvideo\\service\\UserService.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-service\\src\\main\\java\\com\\kkvideo\\service\\impl\\VideoServiceImpl.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-service\\src\\main\\java\\com\\kkvideo\\service\\VideoService.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-service\\src\\main\\java\\com\\kkvideo\\service\\impl\\UserServiceImpl.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-service\\src\\main\\java\\com\\kkvideo\\service\\BgmService.java\nE:\\IntelliJIDEAWork\\kkvideo\\kk-video-service\\src\\main\\java\\com\\kkvideo\\service\\impl\\BgmServiceImpl.java\n"
  },
  {
    "path": "kk-video-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst",
    "content": ""
  },
  {
    "path": "kk-video-wechat/app.js",
    "content": "App({\n  serverUrl:\"https://video.redrat.cn\",\n  resourceUrl:\"http://video.redrat.cn:8888\",\n  userInfo: null,\n  applicationName:\"十秒笑哈哈\",\n\n  setGlobalUserInfo: function(user) {\n    wx.setStorageSync(\"userInfo\", user);\n  },\n\n  getGlobalUserInfo: function () {\n    return wx.getStorageSync(\"userInfo\");\n  },\n\n  reportReasonArray: [\n    \"色情低俗\",\n    \"政治敏感\",\n    \"涉嫌诈骗\",\n    \"辱骂谩骂\",\n    \"广告垃圾\",\n    \"诱导分享\",\n    \"引人不适\",\n    \"过于暴力\",\n    \"违法违纪\",\n    \"其它原因\"\n  ]\n})"
  },
  {
    "path": "kk-video-wechat/app.json",
    "content": "{\n  \"pages\":[\n    \"pages/index/index\",\n    \"pages/videoinfo/videoinfo\",\n    \"pages/videotest/videotest\",\n    \"pages/userLogin/login\",\n    \"pages/report/report\",\n    \"pages/mine/mine\",\n    \"pages/userRegist/regist\",\n    \n    \"pages/chooseBgm/chooseBgm\",\n    \"pages/searchVideo/searchVideo\"\n    \n  ],\n  \"window\": {\n    \"backgroundTextStyle\": \"light\",\n    \"navigationBarBackgroundColor\": \"#fff\",\n    \"navigationBarTitleText\": \"十秒笑哈哈\",\n    \"navigationBarTextStyle\": \"black\"\n  },\n  \"debug\": true\n}\n"
  },
  {
    "path": "kk-video-wechat/app.wxss",
    "content": "/**app.wxss**/\n/* .container {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: space-between;\n  padding: 200rpx 0;\n  box-sizing: border-box;\n}  */\n"
  },
  {
    "path": "kk-video-wechat/pages/chooseBgm/chooseBgm.js",
    "content": "const app = getApp()\n\nPage({\n    data: {\n      bgmList: [],\n      serverUrl: \"\",\n      resourceUrl:\"\",\n      videoParams: {}\n    },\n\n    onLoad: function (params) {\n      \n      var me = this;\n      me.setData({\n        videoParams: params\n      });\n\n      wx.showLoading({\n        title: '请等待...',\n      });\n      var serverUrl = app.serverUrl;\n      var resourceUrl = app.resourceUrl;\n      var user = app.getGlobalUserInfo();\n      wx.request({\n        url: serverUrl + '/bgm/list',\n        method: \"POST\",\n        header: {\n          'content-type': 'application/json', // 默认值\n          'headerUserId': user.id,\n          'headerUserToken': user.userToken\n        },\n        success: function (res) {\n          wx.hideLoading();\n          if (res.data.status == 200) {\n            var bgmList = res.data.data;\n            me.setData({\n              bgmList: bgmList,\n              resourceUrl: resourceUrl\n            });\n          } else if (res.data.status == 502) {\n            wx.showToast({\n              title: res.data.msg,\n              duration: 2000,\n              icon: \"none\",\n              success: function () {\n                wx.redirectTo({\n                  url: '../userLogin/login',\n                })\n              }\n            });\n          }\n        }\n      })\n    },\n\n    upload: function(e) {\n      var me = this;\n\n      var bgmId = e.detail.value.bgmId;\n      var desc = e.detail.value.desc;\n\n\n      var duration = me.data.videoParams.duration;\n      var tmpHeight = me.data.videoParams.tmpHeight;\n      var tmpWidth = me.data.videoParams.tmpWidth;\n      var tmpVideoUrl = me.data.videoParams.tmpVideoUrl;\n      var tmpCoverUrl = me.data.videoParams.tmpCoverUrl;\n      wx.showLoading({\n        title: '上传中...',\n      })\n      var serverUrl = app.serverUrl;\n      var userInfo = app.getGlobalUserInfo();\n\n      wx.uploadFile({\n        url: serverUrl + '/video/upload',\n        formData: {\n          userId: userInfo.id,    // fixme 原来的 app.userInfo.id\n          bgmId: bgmId,\n          desc: desc,\n          videoSeconds: duration,\n          videoHeight: tmpHeight,\n          videoWidth: tmpWidth\n        },\n        filePath: tmpVideoUrl,\n        name: 'file',\n        header: {\n          'content-type': 'application/json', // 默认值\n          'headerUserId': userInfo.id,\n          'headerUserToken': userInfo.userToken\n        },\n        success: function (res) {\n          var data = JSON.parse(res.data);\n          wx.hideLoading();\n          if (data.status == 200) {\n            wx.showToast({\n              title: '上传成功!~~',\n              icon: \"success\"\n            });     \n            // 上传成功后跳回之前的页面\n            wx.navigateBack({\n              delta: 1\n            })\n\n            var videoId = data.data;\n            \n            wx.showLoading({\n              title: '上传中...',\n            })\n            \n    \n\n\n          } else if (res.data.status == 502) {\n            wx.showToast({\n              title: res.data.msg,\n              duration: 2000,\n              icon: \"none\"\n            });\n            wx.redirectTo({\n              url: '../userLogin/login',\n            })\n          } else {\n            wx.showToast({\n              title: '上传失败!~~',\n              icon: \"success\"\n            });\n          }\n\n        }\n      })\n    }\n})\n\n"
  },
  {
    "path": "kk-video-wechat/pages/chooseBgm/chooseBgm.json",
    "content": "{}"
  },
  {
    "path": "kk-video-wechat/pages/chooseBgm/chooseBgm.wxml",
    "content": "<view>\n    <form bindsubmit='upload'>\n\n        <radio-group name=\"bgmId\">\n\n\n          <block wx:for=\"{{bgmList}}\">\n            <view class='container'>\n          <audio name=\"{{item.name}}\" author=\"{{item.author}}\" src=\"{{resourceUrl}}{{item.path}}\" style='width:300px' id=\"myAudio\" controls loop></audio>\n          <radio style='margin-top:20px;' value='{{item.id}}'></radio>\n        </view>\n          </block>\n\n\n        </radio-group>\n\n        <view class=\"inputView\">\n            <label class=\"loginLabel\">视频描述：</label>\n            <input name=\"desc\" class=\"inputText\" placeholder=\"说点什么吧\" />\n        </view>\n\n        <!-- 提交 -->\n        <button class=\"submitBtn\" type=\"primary\" form-type='submit'>上传视频</button>\n        \n        <button class=\"gobackBtn\" type=\"warn\" form-type='reset'>重置</button>\n    </form>\n</view>"
  },
  {
    "path": "kk-video-wechat/pages/chooseBgm/chooseBgm.wxss",
    "content": "page {\n    height: 100%;\n} \n\n.container {\n    display: flex;\n    margin-top: 20rpx; \n     justify-content: space-around;   \n}\n\n.submitBtn {\n    width: 80%;\n    margin-top: 15px;\n}\n\n.gobackBtn {\n    width: 80%;\n    margin-top: 15px;\n}\n\n\n.loginLabel {\n    color: gray;\n    font-size: 15px;\n}\n\n.inputText {\n    float: right;\n    text-align: right;\n    margin-right: 22px;\n    margin-top: 11px;\n    font-size: 15px;\n}\n\n.inputView {\n    padding: 5px;\n    background-color: white;\n    line-height: 45px;\n    border: solid 1px whitesmoke;\n}"
  },
  {
    "path": "kk-video-wechat/pages/index/index.js",
    "content": "const app = getApp()\n\nPage({\n  data: {\n    totalPage: 1,\n    page:1,\n    videoList:[],\n\n    screenWidth: 350,\n    serverUrl: \"\",\n    resourceUrl:\"\",\n\n    searchContent: \"\"\n  },\n\n  onLoad: function (params) {\n    var me = this;\n    var screenWidth = wx.getSystemInfoSync().screenWidth;\n    me.setData({\n      screenWidth: screenWidth,\n    });\n\n    var searchContent = params.search;\n    var isSaveRecord = params.isSaveRecord;\n    if (isSaveRecord == null || isSaveRecord == '' || isSaveRecord == undefined) {\n      isSaveRecord = 0;\n    }\n\n    me.setData({\n      searchContent: searchContent\n    });\n\n    var page = me.data.page;\n    me.getAllVideoList(page, isSaveRecord);\n  },\n\n  onShareAppMessage: function (res) {\n\n    var me = this;\n    var videoInfo = me.data.videoInfo;\n\n    return {\n      title: app.applicationName + '，给你不一样的搞笑时光',\n      path: \"pages/index/index\",\n    }\n  },\n\n  getAllVideoList: function (page, isSaveRecord) {\n    var me = this;\n    var serverUrl = app.serverUrl;\n    var resourceUrl = app.resourceUrl;\n    wx.showLoading({\n      title: '请等待，加载中...',\n    });\n\n    var searchContent = me.data.searchContent;\n\n    wx.request({\n      url: serverUrl + '/video/showAll?page=' + page + \"&isSaveRecord=\" + isSaveRecord,\n      method: \"POST\",\n      data: {\n        videoDesc: searchContent\n      },\n      success: function (res) {\n        wx.hideLoading();\n        wx.hideNavigationBarLoading();\n        wx.stopPullDownRefresh();\n\n\n        // 判断当前页page是否是第一页，如果是第一页，那么设置videoList为空\n        if (page === 1) {\n          me.setData({\n            videoList: []\n          });\n        }\n\n        var videoList = res.data.data.rows;\n        var newVideoList = me.data.videoList;\n\n        me.setData({\n          videoList: newVideoList.concat(videoList),\n          page: page,\n          totalPage: res.data.data.total,\n          serverUrl: serverUrl,\n          resourceUrl: resourceUrl\n        });\n\n      }\n    })\n  },\n\n  onPullDownRefresh: function() {\n    wx.showNavigationBarLoading();\n    this.getAllVideoList(1, 0);\n  },\n\n  onReachBottom:function() {\n    var me = this;\n    var currentPage = me.data.page;\n    var totalPage = me.data.totalPage;\n\n    // 判断当前页数和总页数是否相等，如果想的则无需查询\n    if (currentPage === totalPage) {\n      wx.showToast({\n        title: '已经没有视频啦~~',\n        icon: \"none\"\n      })\n      return;\n    }\n\n    var page = currentPage + 1;\n\n    me.getAllVideoList(page, 0);\n  },\n\n  showVideoInfo: function(e) {\n    var me = this;\n    var videoList = me.data.videoList;\n    var arrindex = e.target.dataset.arrindex;\n    var videoInfo = JSON.stringify(videoList[arrindex]);\n\n    wx.redirectTo({\n      url: '../videoinfo/videoinfo?videoInfo=' + videoInfo\n    })\n  }\n\n  \n\n})\n"
  },
  {
    "path": "kk-video-wechat/pages/index/index.json",
    "content": "{\n  \"enablePullDownRefresh\": true,\n  \"backgroundTextStyle\": \"dark\"\n}"
  },
  {
    "path": "kk-video-wechat/pages/index/index.wxml",
    "content": "  <view wx:for=\"{{videoList}}\" class=\"item-container\">  \n\n\n\n     <view style='width:{{screenWidth}}px;height:210px;' class='back-img'> \n        <image src=\"{{resourceUrl}}{{item.coverPath}}\" style='width:{{screenWidth}}px;height:210px;' mode=\"aspectFit\" bindtap='showVideoInfo' data-arrindex='{{index}}'></image>\n     </view> \n\n\n    <view class=\"desc\">\n        <view class=\"faceName\">\n            <image class='myface' src=\"{{resourceUrl}}{{item.faceImage}}\"></image>\n            <view class=\"nickname\">{{item.nickname}}</view>\n        </view>\n    </view>\n\n\n  </view>  "
  },
  {
    "path": "kk-video-wechat/pages/index/index.wxss",
    "content": ".item-container {\n    position: relative;\n}\n\n.cover {\n    width: 100%;\n    height: 400rpx;\n    display: block; \n}\n\n.back-img{\n    display: block; \n    background-color: black;\n}\n\n.desc {\n    margin-top: -40rpx;\n    margin-bottom: 10rpx;\n    display: flex;\n    align-items: center;\n}\n\n.desc .right {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n}\n\n.desc .faceName {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    \n    margin-left: 10px;\n}\n\n.title {\n    font-size: 30rpx;\n    margin-top: 10rpx;\n    margin-left: 20rpx;\n    width: 600rpx;\n}\n\n.myface {\n    display: block;\n    width: 60rpx;\n    height: 60rpx;\n    border-radius: 30rpx;\n    margin-top: 10rpx;\n    margin-right: 20rpx;\n}\n\n.nickname {\n    font-size: 20rpx;\n    margin-top: 6rpx;\n    margin-right: 20rpx;\n    color: darkgray;\n}\n"
  },
  {
    "path": "kk-video-wechat/pages/mine/mine.js",
    "content": "var videoUtil = require('../../utils/videoUtil.js')\n\nconst app = getApp()\n\nPage({\n  data: {\n    faceUrl: \"../resource/images/noneface.png\",\n    isMe: true,\n    isFollow: false,\n\n\n    videoSelClass: \"video-info\",\n    isSelectedWork: \"video-info-selected\",\n    isSelectedLike: \"\",\n    isSelectedFollow: \"\",\n\n    myVideoList: [],\n    myVideoPage: 1,\n    myVideoTotal: 1,\n\n    likeVideoList: [],\n    likeVideoPage: 1,\n    likeVideoTotal: 1,\n\n    followVideoList: [],\n    followVideoPage: 1,\n    followVideoTotal: 1,\n\n    myWorkFalg: false,\n    myLikesFalg: true,\n    myFollowFalg: true\n\n  },\n\n  onLoad: function (params) {\n    var me = this;\n\n    // var user = app.userInfo;\n    // fixme 修改原有的全局对象为本地缓存\n    var user = app.getGlobalUserInfo();\n    var userId = user.id;\n\n    var publisherId = params.publisherId;\n    if (publisherId != null && publisherId != '' && publisherId != undefined) {\n      userId = publisherId;\n      me.setData({\n        isMe: false,\n        publisherId: publisherId,\n        serverUrl: app.serverUrl\n      })\n    }\n    me.setData({\n      userId: userId\n    })\n\n\n    wx.showLoading({\n      title: '请等待...',\n    });\n    var serverUrl = app.serverUrl;\n    var resourceUrl = app.resourceUrl;\n    // 调用后端\n    wx.request({\n      url: serverUrl + '/user/query?userId=' + userId + \"&fanId=\" + user.id,\n      method: \"POST\",\n      header: {\n        'content-type': 'application/json', // 默认值\n        'headerUserId': user.id,\n        'headerUserToken': user.userToken\n      },\n      success: function (res) {\n        wx.hideLoading();\n        if (res.data.status == 200) {\n          var userInfo = res.data.data;\n          var faceUrl = \"../resource/images/noneface.png\";\n          if (userInfo.faceImage != null && userInfo.faceImage != '' && userInfo.faceImage != undefined) {\n            faceUrl = resourceUrl + userInfo.faceImage;\n          }\n\n\n          me.setData({\n            faceUrl: faceUrl,\n            fansCounts: userInfo.fansCounts,\n            followCounts: userInfo.followCounts,\n            receiveLikeCounts: userInfo.receiveLikeCounts,\n            nickname: userInfo.nickname,\n            isFollow: userInfo.follow\n          });\n        } else if (res.data.status == 502) {\n          wx.showToast({\n            title: res.data.msg,\n            duration: 3000,\n            icon: \"none\",\n            success: function () {\n              wx.redirectTo({\n                url: '../userLogin/login',\n              })\n            }\n          })\n        }\n      }\n    })\n\n    me.getMyVideoList(1);\n  },\n\n  followMe: function (e) {\n    var me = this;\n\n    var user = app.getGlobalUserInfo();\n    var userId = user.id;\n    var publisherId = me.data.publisherId;\n\n    var followType = e.currentTarget.dataset.followtype;\n\n    // 1：关注 0：取消关注\n    var url = '';\n    if (followType == '1') {\n      url = '/user/beyourfans?userId=' + publisherId + '&fanId=' + userId;\n    } else {\n      url = '/user/dontbeyourfans?userId=' + publisherId + '&fanId=' + userId;\n    }\n\n    wx.showLoading();\n    wx.request({\n      url: app.serverUrl + url,\n      method: 'POST',\n      header: {\n        'content-type': 'application/json', // 默认值\n        'headerUserId': user.id,\n        'headerUserToken': user.userToken\n      },\n      success: function () {\n        wx.hideLoading();\n        if (followType == '1') {\n          me.setData({\n            isFollow: true,\n            fansCounts: ++me.data.fansCounts\n          })\n        } else {\n          me.setData({\n            isFollow: false,\n            fansCounts: --me.data.fansCounts\n          })\n        }\n      }\n    })\n  },\n\n\n\n  logout: function () {\n    // var user = app.userInfo;\n    var user = app.getGlobalUserInfo();\n\n    var serverUrl = app.serverUrl;\n    wx.showLoading({\n      title: '请等待...',\n    });\n    // 调用后端\n    wx.request({\n      url: serverUrl + '/logout?userId=' + user.id,\n      method: \"POST\",\n      header: {\n        'content-type': 'application/json' // 默认值\n      },\n      success: function (res) {\n        wx.hideLoading();\n        if (res.data.status == 200) {\n          // 登录成功跳转 \n          wx.showToast({\n            title: '注销成功',\n            icon: 'success',\n            duration: 2000\n          });\n          // app.userInfo = null;\n          // 注销以后，清空缓存\n          wx.removeStorageSync(\"userInfo\")\n          // 页面跳转\n          wx.redirectTo({\n            url: '../userLogin/login',\n          })\n        }\n      }\n    })\n  },\n\n  changeFace: function () {\n    var me = this;\n    wx.chooseImage({\n      count: 1,\n      sizeType: ['compressed'],\n      sourceType: ['album', 'camera'],\n      success: function (res) {\n        var tempFilePaths = res.tempFilePaths;\n\n        wx.showLoading({\n          title: '上传中...',\n        })\n        var serverUrl = app.serverUrl;\n        var resourceUrl = app.resourceUrl;\n        // fixme 修改原有的全局对象为本地缓存\n        var userInfo = app.getGlobalUserInfo();\n\n        wx.uploadFile({\n          url: serverUrl + '/user/uploadFace?userId=' + userInfo.id,  //app.userInfo.id,\n          filePath: tempFilePaths[0],\n          name: 'file',\n          header: {\n            'content-type': 'application/json', // 默认值\n            'headerUserId': userInfo.id,\n            'headerUserToken': userInfo.userToken\n          },\n          success: function (res) {\n            var data = JSON.parse(res.data);\n            wx.hideLoading();\n            if (data.status == 200) {\n              wx.showToast({\n                title: '上传成功!~~',\n                icon: \"success\"\n              });\n\n              var imageUrl = data.data;\n              me.setData({\n                faceUrl: resourceUrl + imageUrl\n              });\n\n            } else if (data.status == 500) {\n              wx.showToast({\n                title: data.msg\n              });\n            } else if (res.data.status == 502) {\n              wx.showToast({\n                title: res.data.msg,\n                duration: 2000,\n                icon: \"none\",\n                success: function () {\n                  wx.redirectTo({\n                    url: '../userLogin/login',\n                  })\n                }\n              });\n\n            }\n\n          }\n        })\n\n\n      }\n    })\n  },\n\n  uploadVideo: function () {\n    // fixme 视频上传复用\n     videoUtil.uploadVideo();\n  },\n\n\n  doSelectWork: function () {\n    this.setData({\n      isSelectedWork: \"video-info-selected\",\n      isSelectedLike: \"\",\n      isSelectedFollow: \"\",\n\n      myWorkFalg: false,\n      myLikesFalg: true,\n      myFollowFalg: true,\n\n      myVideoList: [],\n      myVideoPage: 1,\n      myVideoTotal: 1,\n\n      likeVideoList: [],\n      likeVideoPage: 1,\n      likeVideoTotal: 1,\n\n      followVideoList: [],\n      followVideoPage: 1,\n      followVideoTotal: 1\n    });\n\n    this.getMyVideoList(1);\n  },\n\n  doSelectLike: function () {\n    this.setData({\n      isSelectedWork: \"\",\n      isSelectedLike: \"video-info-selected\",\n      isSelectedFollow: \"\",\n\n      myWorkFalg: true,\n      myLikesFalg: false,\n      myFollowFalg: true,\n\n      myVideoList: [],\n      myVideoPage: 1,\n      myVideoTotal: 1,\n\n      likeVideoList: [],\n      likeVideoPage: 1,\n      likeVideoTotal: 1,\n\n      followVideoList: [],\n      followVideoPage: 1,\n      followVideoTotal: 1\n    });\n\n    this.getMyLikesList(1);\n  },\n\n  doSelectFollow: function () {\n    this.setData({\n      isSelectedWork: \"\",\n      isSelectedLike: \"\",\n      isSelectedFollow: \"video-info-selected\",\n\n      myWorkFalg: true,\n      myLikesFalg: true,\n      myFollowFalg: false,\n\n      myVideoList: [],\n      myVideoPage: 1,\n      myVideoTotal: 1,\n\n      likeVideoList: [],\n      likeVideoPage: 1,\n      likeVideoTotal: 1,\n\n      followVideoList: [],\n      followVideoPage: 1,\n      followVideoTotal: 1\n    });\n\n    this.getMyFollowList(1)\n  },\n\n  getMyVideoList: function (page) {\n    var me = this;\n\n    // 查询视频信息\n    wx.showLoading();\n    // 调用后端\n    var serverUrl = app.serverUrl;\n    var resourceUrl = app.resourceUrl;\n    wx.request({\n      url: serverUrl + '/video/showAll/?page=' + page + '&pageSize=6',\n      method: \"POST\",\n      data: {\n        userId: me.data.userId\n      },\n      header: {\n        'content-type': 'application/json' // 默认值\n      },\n      success: function (res) {\n        var myVideoList = res.data.data.rows;\n        wx.hideLoading();\n\n        var newVideoList = me.data.myVideoList;\n        me.setData({\n          myVideoPage: page,\n          myVideoList: newVideoList.concat(myVideoList),\n          myVideoTotal: res.data.data.total,\n          //这里是个人中心资源url的设置\n          serverUrl: app.resourceUrl\n        });\n      }\n    })\n  },\n\n  getMyLikesList: function (page) {\n    var me = this;\n    var userId = me.data.userId;\n\n    // 查询视频信息\n    wx.showLoading();\n    // 调用后端\n    var serverUrl = app.serverUrl;\n    wx.request({\n      url: serverUrl + '/video/showMyLike/?userId=' + userId + '&page=' + page + '&pageSize=6',\n      method: \"POST\",\n      header: {\n        'content-type': 'application/json' // 默认值\n      },\n      success: function (res) {\n        var likeVideoList = res.data.data.rows;\n        wx.hideLoading();\n\n        var newVideoList = me.data.likeVideoList;\n        me.setData({\n          likeVideoPage: page,\n          likeVideoList: newVideoList.concat(likeVideoList),\n          likeVideoTotal: res.data.data.total,\n          //这里是个人中心资源url的设置\n          serverUrl: app.resourceUrl\n        });\n      }\n    })\n  },\n\n  getMyFollowList: function (page) {\n    var me = this;\n    var userId = me.data.userId;\n\n    // 查询视频信息\n    wx.showLoading();\n    // 调用后端\n    var serverUrl = app.serverUrl;\n    wx.request({\n      url: serverUrl + '/video/showMyFollow/?userId=' + userId + '&page=' + page + '&pageSize=6',\n      method: \"POST\",\n      header: {\n        'content-type': 'application/json' // 默认值\n      },\n      success: function (res) {\n        var followVideoList = res.data.data.rows;\n        wx.hideLoading();\n\n        var newVideoList = me.data.followVideoList;\n        me.setData({\n          followVideoPage: page,\n          followVideoList: newVideoList.concat(followVideoList),\n          followVideoTotal: res.data.data.total,\n          //这里是个人中心资源url的设置\n          serverUrl: app.resourceUrl\n        });\n      }\n    })\n  },\n\n  // 点击跳转到视频详情页面\n  showVideo: function (e) {\n    var myWorkFalg = this.data.myWorkFalg;\n    var myLikesFalg = this.data.myLikesFalg;\n    var myFollowFalg = this.data.myFollowFalg;\n    \n    if (!myWorkFalg) {\n      var videoList = this.data.myVideoList;\n    } else if (!myLikesFalg) {\n      var videoList = this.data.likeVideoList;\n    } else if (!myFollowFalg) {\n      var videoList = this.data.followVideoList;\n    }\n\n    var arrindex = e.target.dataset.arrindex;\n    var videoInfo = JSON.stringify(videoList[arrindex]);\n\n    wx.redirectTo({\n      url: '../videoinfo/videoinfo?videoInfo=' + videoInfo\n    })\n\n  },\n\n  // 到底部后触发加载\n  onReachBottom: function () {\n    var myWorkFalg = this.data.myWorkFalg;\n    var myLikesFalg = this.data.myLikesFalg;\n    var myFollowFalg = this.data.myFollowFalg;\n\n    if (!myWorkFalg) {\n      var currentPage = this.data.myVideoPage;\n      var totalPage = this.data.myVideoTotal;\n      // 获取总页数进行判断，如果当前页数和总页数相等，则不分页\n      if (currentPage === totalPage) {\n        wx.showToast({\n          title: '已经没有视频啦...',\n          icon: \"none\"\n        });\n        return;\n      }\n      var page = currentPage + 1;\n      this.getMyVideoList(page);\n    } else if (!myLikesFalg) {\n      var currentPage = this.data.likeVideoPage;\n      var totalPage = this.data.myLikesTotal;\n      // 获取总页数进行判断，如果当前页数和总页数相等，则不分页\n      if (currentPage === totalPage) {\n        wx.showToast({\n          title: '已经没有视频啦...',\n          icon: \"none\"\n        });\n        return;\n      }\n      var page = currentPage + 1;\n      this.getMyLikesList(page);\n    } else if (!myFollowFalg) {\n      var currentPage = this.data.followVideoPage;\n      var totalPage = this.data.followVideoTotal;\n      // 获取总页数进行判断，如果当前页数和总页数相等，则不分页\n      if (currentPage === totalPage) {\n        wx.showToast({\n          title: '已经没有视频啦...',\n          icon: \"none\"\n        });\n        return;\n      }\n      var page = currentPage + 1;\n      this.getMyFollowList(page);\n    }\n\n  }\n\n})\n"
  },
  {
    "path": "kk-video-wechat/pages/mine/mine.json",
    "content": "{}\n"
  },
  {
    "path": "kk-video-wechat/pages/mine/mine.wxml",
    "content": "<view>\n\n  <view class='container'>\n\n    <block wx:if=\"{{isMe}}\">\n      <image src=\"{{faceUrl}}\" class=\"face\" bindtap='changeFace'></image>\n    </block>\n    <block wx:if=\"{{!isMe}}\">\n      <image src=\"{{faceUrl}}\" class=\"face\"></image>\n    </block>\n    <label class='nickname'>{{nickname}}</label>\n\n    <block wx:if=\"{{isMe}}\">\n      <button size='mini' class='primary' bindtap='uploadVideo'> 上传作品</button>\n      <button size='mini' type='' class='logout' bindtap='logout'>注销</button>\n    </block>\n    <block wx:if=\"{{!isMe}}\">\n      <block wx:if=\"{{isFollow}}\">\n        <button size='mini' type='' class='follow' data-followType='0' bindtap='followMe'>已关注</button>\n      </block>\n      <block wx:if=\"{{!isFollow}}\">\n        <button size='mini' type='primary' class='follow' data-followType='1' bindtap='followMe'>关注我</button>\n      </block>\n\n    </block>\n\n    <view class='container-row'>\n      <label class='info-items'>{{fansCounts}} 粉丝</label>\n      <label class='info-items'>{{followCounts}} 关注</label>\n      <label class='info-items'>{{receiveLikeCounts}} 获赞</label>\n    </view>\n  </view>\n\n</view>\n\n<view class=\"line\"></view>\n\n<view class='container-video'>\n    <!-- 发布过的作品 -->\n    <view class='{{videoSelClass}} {{isSelectedWork}}' bindtap='doSelectWork'>作品</view>\n    <!-- 收藏的点赞的视频 -->\n    <view class='{{videoSelClass}} {{isSelectedLike}}' bindtap='doSelectLike'>收藏</view>\n    <!-- 用户关注过人发表的视频 -->\n    <view class='{{videoSelClass}} {{isSelectedFollow}}' bindtap='doSelectFollow'>关注</view>\n</view>\n\n<view class='container-video-list'>\n\n<view hidden='{{myWorkFalg}}'>\n    <block wx:for=\"{{myVideoList}}\" >\n        <image src='{{serverUrl}}{{item.coverPath}}' class='videoImage' mode=\"aspectFill\" bindtap='showVideo' data-arrindex='{{index}}'></image>\n    </block>\n</view>\n\n<view hidden='{{myLikesFalg}}'>\n    <block wx:for=\"{{likeVideoList}}\" >\n        <image src='{{serverUrl}}{{item.coverPath}}' class='videoImage' mode=\"aspectFill\" bindtap='showVideo' data-arrindex='{{index}}'></image>\n    </block>\n</view>\n\n<view hidden='{{myFollowFalg}}'>\n    <block wx:for=\"{{followVideoList}}\" >\n        <image src='{{serverUrl}}{{item.coverPath}}' class='videoImage' mode=\"aspectFill\" bindtap='showVideo' data-arrindex='{{index}}'></image>\n    </block>\n</view>\n\n</view>"
  },
  {
    "path": "kk-video-wechat/pages/mine/mine.wxss",
    "content": "page {\n    font-size: 14px;\n}\n\n.container {\n    background-color: whitesmoke;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n}\n\n.container-row {\n    display: flex;\n    flex-direction: row;\n    margin-bottom: 10px;\n    margin-top: 10px;\n}\n\n.info-items {\n    margin-left: 30px;\n}\n\n.face {\n    width: 180rpx;\n    height: 180rpx;\n    border-radius: 50%;\n    margin-top: 20px;\n}\n\n.nickname {\n    margin-top: 5px;\n    font-weight: bold;\n    font-size: 18px;\n}\n\n.logout {\n    margin-top: 3px;\n    float: right;\n}\n\n.follow {\n    margin-top: 3px;\n}\n\n.line {\n    width: 100%;\n    height: 1px;\n    background-color: gainsboro;\n    margin-top: 1px;\n}\n\n.container-video {\n    display: flex;\n    flex-direction: row;\n    margin-top: 20px;\n    text-align: center;\n    border: solid 1px;\n    line-height: 30px;\n}\n\n.video-info {\n    width: 100%;\n}\n\n.video-info-selected {\n    background-color: gainsboro;\n}\n\n.container-video-list {\n    display: flex;\n    flex-direction: row;\n    flex-wrap: wrap;\n}\n\n.videoImage {\n    width: 250rpx;\n    height: 180px;\n}\n"
  },
  {
    "path": "kk-video-wechat/pages/report/report.js",
    "content": "const app = getApp()\n\nPage({\n    data: {\n        reasonType: \"请选择原因\",\n        reportReasonArray: app.reportReasonArray,\n        publishUserId:\"\",\n        videoId:\"\"\n    },\n\n    onLoad:function(params) {\n      var me = this;\n\n      var videoId = params.videoId;\n      var publishUserId = params.publishUserId;\n\n      me.setData({\n        publishUserId: publishUserId,\n        videoId: videoId\n      });\n    },\n\n    changeMe:function(e) {\n      var me = this;\n\n      var index = e.detail.value;\n      var reasonType = app.reportReasonArray[index];\n\n      me.setData({\n        reasonType: reasonType\n      });\n    },\n\n    submitReport:function(e) {\n      var me = this;\n\n      var reasonIndex = e.detail.value.reasonIndex;\n      var reasonContent = e.detail.value.reasonContent;\n\n      var user = app.getGlobalUserInfo();\n      var currentUserId = user.id;\n\n      if (reasonIndex == null || reasonIndex == '' || reasonIndex == undefined) {\n        wx.showToast({\n          title: '选择举报理由',\n          icon: \"none\"\n        })\n        return;\n      }\n\n      var serverUrl = app.serverUrl;\n      wx.request({\n        url: serverUrl + '/user/reportUser',\n        method: 'POST',\n        data: {\n          dealUserId: me.data.publishUserId,\n          dealVideoId: me.data.videoId,\n          title: app.reportReasonArray[reasonIndex],\n          content:reasonContent,\n          userid: currentUserId\n        },\n        header: {\n          'content-type': 'application/json', // 默认值\n          'headerUserId': user.id,\n          'headerUserToken': user.userToken\n        },\n        success:function(res) {\n          wx.showToast({\n            title: res.data.msg,\n            duration: 2000,\n            icon: 'none',\n            success: function() {\n              wx.navigateBack();\n            }\n          })\n        }\n\n      })\n\n    }\n    \n})\n"
  },
  {
    "path": "kk-video-wechat/pages/report/report.json",
    "content": "{}\n"
  },
  {
    "path": "kk-video-wechat/pages/report/report.wxml",
    "content": "<view>\n\n    <form bindsubmit='submitReport'>\n\n        <view class='container-reason'>\n            <label class='label'>举报理由:</label>\n            <picker name=\"reasonIndex\" value=\"{{index}}\" range=\"{{reportReasonArray}}\" bindchange=\"changeMe\">\n                <view class=\"picker\">\n                    {{reasonType}}\n                </view>\n            </picker>\n        </view>\n\n        <view class='container-content'>\n            <label class='label'>举报描述（选填）:</label>\n            <textarea name=\"reasonContent\" class='content' placeholder='请详细说明举报原因...'>\n            </textarea>\n        </view>\n\n        <view class='container-tips'>\n            <image src='../resource/images/report_face.png' class='report-face'></image>\n            收到举报后，我们会在12小时内处理，感谢您的举报，互联网环境因你更美好！~~\n        </view>\n\n        <view>\n            <button class=\"submitBtn\" type=\"\" form-type='submit'>提  交</button>\n        </view>\n\n    </form>\n</view>"
  },
  {
    "path": "kk-video-wechat/pages/report/report.wxss",
    "content": "page {\n    background-color: #0e0f1a;\n    /* background-color: red; */\n}\n\n.container-reason {\n    display: flex;\n    color: whitesmoke;\n    padding: 15px;\n    background-color: #161823;\n}\n\n.label {\n    /* margin-left: 15px; */\n    margin-right: 15px;\n    color: white;\n}\n\n.container-content {\n    margin-top: 10px;\n    color: whitesmoke;\n    padding: 15px;\n    background-color: #161823;\n}\n\n.content {\n    margin-top: 10px;\n    padding: 10px;\n    color: white;\n    background-color: #242630;\n    width: 95%;\n}\n\n.container-tips{\n    padding: 25px;\n    color: #56575e;\n    font-size: 15px;\n}\n\n.report-face{\n    width:12px;\n    height:13px;\n}\n\n.submitBtn {\n    width: 80%;\n    margin-top: 10px;\n    background-color: #fe2c55;\n    color: white;\n}"
  },
  {
    "path": "kk-video-wechat/pages/searchVideo/searchVideo.js",
    "content": "// 1 导入js文件\nvar WxSearch = require('../../wxSearchView/wxSearchView.js');\n\nconst app = getApp()\n\nPage({\n  data: {\n  },\n\n  onLoad: function () {\n\n    // 2 搜索栏初始化\n    var that = this;\n\n    // 查询热搜词\n    var serverUrl = app.serverUrl;\n    wx.request({\n      url: serverUrl + '/video/hot',\n      method: \"POST\",\n      success: function(res) {\n        var hotList = res.data.data;\n\n        WxSearch.init(\n          that,  // 本页面一个引用\n          hotList,\n          hotList,// 搜索匹配，[]表示不使用\n          that.mySearchFunction, // 提供一个搜索回调函数\n          that.myGobackFunction //提供一个返回回调函数\n        );\n\n\n\n      }\n    })\n\n  },\n\n  // 3 转发函数，固定部分，直接拷贝即可\n  wxSearchInput: WxSearch.wxSearchInput,  // 输入变化时的操作\n  wxSearchKeyTap: WxSearch.wxSearchKeyTap,  // 点击提示或者关键字、历史记录时的操作\n  wxSearchDeleteAll: WxSearch.wxSearchDeleteAll, // 删除所有的历史记录\n  wxSearchConfirm: WxSearch.wxSearchConfirm,  // 搜索函数\n  wxSearchClear: WxSearch.wxSearchClear,  // 清空函数\n\n  // 4 搜索回调函数  \n  mySearchFunction: function (value) {\n    // do your job here\n    // 示例：跳转\n    wx.redirectTo({\n      url: '../index/index?isSaveRecord=1&search=' + value\n    })\n  },\n\n  // 5 返回回调函数\n  myGobackFunction: function () {\n    // do your job here\n    // 示例：返回\n    wx.redirectTo({\n      url: '../index/index'\n    })\n  }\n\n\n})"
  },
  {
    "path": "kk-video-wechat/pages/searchVideo/searchVideo.json",
    "content": "{\n}"
  },
  {
    "path": "kk-video-wechat/pages/searchVideo/searchVideo.wxml",
    "content": "<include src=\"../../wxSearchView/wxSearchView.wxml\" />"
  },
  {
    "path": "kk-video-wechat/pages/searchVideo/searchVideo.wxss",
    "content": "@import \"../../wxSearchView/wxSearchView.wxss\";"
  },
  {
    "path": "kk-video-wechat/pages/userLogin/login.js",
    "content": "const app = getApp()\n\nPage({\n  data: {\n  },\n\n  onLoad: function (params) {\n    var me = this;\n    var redirectUrl = params.redirectUrl;\n    // debugger;\n    if (redirectUrl != null && redirectUrl != undefined && redirectUrl != '') {\n      redirectUrl = redirectUrl.replace(/#/g, \"?\");\n      redirectUrl = redirectUrl.replace(/@/g, \"=\");\n\n      me.redirectUrl = redirectUrl;\n    }\n  },\n\n  // 登录  \n  doLogin: function (e) {\n    var me = this;\n    var formObject = e.detail.value;\n    var username = formObject.username;\n    var password = formObject.password;\n    // 简单验证\n    if (username.length == 0 || password.length == 0) {\n      wx.showToast({\n        title: '用户名或密码不能为空',\n        icon: 'none',\n        duration: 3000\n      })\n    } else {\n      var serverUrl = app.serverUrl;\n      wx.showLoading({\n        title: '请等待...',\n      });\n      // 调用后端\n      wx.request({\n        url: serverUrl + '/login',\n        method: \"POST\",\n        data: {\n          username: username,\n          password: password\n        },\n        header: {\n          'content-type': 'application/json' // 默认值\n        },\n        success: function (res) {\n          wx.hideLoading();\n          if (res.data.status == 200) {\n            // 登录成功跳转 \n            wx.showToast({\n              title: '登录成功',\n              icon: 'success',\n              duration: 2000\n            });\n            // app.userInfo = res.data.data;\n            // fixme 修改原有的全局对象为本地缓存\n            app.setGlobalUserInfo(res.data.data);\n            // 页面跳转\n\n            var redirectUrl = me.redirectUrl;\n            if (redirectUrl != null && redirectUrl != undefined && redirectUrl != '') {\n              wx.redirectTo({\n                url: redirectUrl,\n              })\n            } else {\n              wx.redirectTo({\n                url: '../mine/mine',\n              })\n            }\n            \n          } else if (res.data.status == 500) {\n            // 失败弹出框\n            wx.showToast({\n              title: res.data.msg,\n              icon: 'none',\n              duration: 3000\n            })\n          }\n        }\n      })\n    }\n  },\n\n  goRegistPage:function() {\n    wx.redirectTo({\n      url: '../userRegist/regist',\n    })\n  }\n})"
  },
  {
    "path": "kk-video-wechat/pages/userLogin/login.json",
    "content": "{}"
  },
  {
    "path": "kk-video-wechat/pages/userLogin/login.wxml",
    "content": "<view>\n    <view class=\"login-icon\">\n        <image class=\"login-img\" src=\"../resource/images/dsp.jpg\"></image>\n    </view>\n    <view class=\"login-from\">\n        <form bindsubmit='doLogin'>\n            <!--账号-->\n            <view class=\"inputView\">\n                <image class=\"nameImage\" src=\"../resource/images/username.png\"></image>\n                <label class=\"loginLabel\">账号</label>\n                <input name=\"username\" value='' class=\"inputText\" placeholder=\"请输入账号\" />\n            </view>\n            <view class=\"line\"></view>\n\n            <!--密码-->\n            <view class=\"inputView\">\n                <image class=\"keyImage\" src=\"../resource/images/password.png\"></image>\n                <label class=\"loginLabel\">密码</label>\n                <input name=\"password\" value='' class=\"inputText\" password=\"true\" placeholder=\"请输入密码\" />\n            </view>\n\n            <!--按钮-->\n            <view>\n                <button class=\"loginBtn\" type=\"primary\" form-type='submit'>登录</button>\n            </view>\n\n            <view>\n                <button class=\"goRegistBtn\" type=\"warn\" bindtap=\"goRegistPage\">没有账号？点击注册</button>\n            </view>\n        </form>\n    </view>\n</view>"
  },
  {
    "path": "kk-video-wechat/pages/userLogin/login.wxss",
    "content": "page {\n    background-color: whitesmoke;\n}\n\n.login-img {\n    width: 750rpx;\n}\n\n/*表单内容*/\n.inputView {\n    background-color: white;\n    line-height: 45px;\n}\n\n/*输入框*/\n.nameImage, .keyImage {\n    margin-left: 22px;\n    width: 20px;\n    height: 20px;\n}\n\n.loginLabel {\n    margin: 15px 15px 15px 10px;\n    color: gray;\n    font-size: 15px;\n}\n\n.inputText {\n    float: right;\n    text-align: right;\n    margin-right: 22px;\n    margin-top: 11px;\n    font-size: 15px;\n}\n\n.line {\n    width: 100%;\n    height: 1px;\n    background-color: gainsboro;\n    margin-top: 1px;\n}\n\n/*按钮*/\n.loginBtn {\n    width: 80%;\n    margin-top: 35px;\n}\n\n.goRegistBtn {\n    width: 80%;\n    margin-top: 15px;\n}\n"
  },
  {
    "path": "kk-video-wechat/pages/userRegist/regist.js",
    "content": "const app = getApp()\n\nPage({\n    data: {\n\n    },\n\n    doRegist: function(e) {\n      var me = this;\n      var formObject = e.detail.value;\n      var username = formObject.username;\n      var password = formObject.password;\n\n      // 简单验证\n      if (username.length == 0 || password.length == 0) {\n        wx.showToast({\n          title: '用户名或密码不能为空',\n          icon: 'none',\n          duration: 3000\n        })\n      } else {\n        var serverUrl = app.serverUrl;\n        wx.showLoading({\n          title: '请等待...',\n        });\n        wx.request({\n          url: serverUrl + '/regist',\n          method: \"POST\",\n          data: {\n            username: username,\n            password: password\n          },\n          header: {\n            'content-type': 'application/json' // 默认值\n          },\n          success: function(res) {\n            wx.hideLoading();\n            var status = res.data.status;\n            if (status == 200) {\n              wx.showToast({\n                title: \"用户注册成功~！！！\",\n                icon: 'none',\n                duration: 3000\n              }),\n              // app.userInfo = res.data.data;\n              // fixme 修改原有的全局对象为本地缓存\n              app.setGlobalUserInfo(res.data.data);\n              // 页面跳转\n                wx.redirectTo({\n                  url: '../mine/mine',\n                })\n            } else if (status == 500) {\n              wx.showToast({\n                title: res.data.msg,\n                icon: 'none',\n                duration: 3000\n              })\n            }\n          }\n        })\n      }\n    },\n\n    goLoginPage:function() {\n      wx.navigateTo({\n        url: '../userLogin/login',\n      })\n    }\n})"
  },
  {
    "path": "kk-video-wechat/pages/userRegist/regist.json",
    "content": "{}"
  },
  {
    "path": "kk-video-wechat/pages/userRegist/regist.wxml",
    "content": "<view>\n    <view class=\"login-icon\">\n        <image class=\"login-img\" src=\"../resource/images/dsp.jpg\"></image>\n    </view>\n    <view class=\"login-from\">\n        <form bindsubmit='doRegist'>\n            <!--账号-->\n            <view class=\"inputView\">\n                <image class=\"nameImage\" src=\"../resource/images/username.png\"></image>\n                <label class=\"loginLabel\">账号</label>\n                <input name=\"username\" class=\"inputText\" placeholder=\"请输入账号\"/>\n            </view>\n            \n            <view class=\"line\"></view>\n\n            <!--密码-->\n            <view class=\"inputView\">\n                <image class=\"keyImage\" src=\"../resource/images/password.png\"></image>\n                <label class=\"loginLabel\">密码</label>\n                <input name=\"password\" class=\"inputText\" password=\"true\" placeholder=\"请输入密码\"/>\n            </view>\n\n            <!--按钮-->\n            <view>\n                <button class=\"loginBtn\" type=\"primary\" form-type='submit'>注册</button>\n            </view>\n\n            <view>\n                <button class=\"goLoginBtn\" type=\"warn\" bindtap=\"goLoginPage\">返回登录</button>\n            </view>\n        </form>\n    </view>\n</view>"
  },
  {
    "path": "kk-video-wechat/pages/userRegist/regist.wxss",
    "content": "page {\n    background-color: whitesmoke;\n}\n\n.login-img {\n    width: 750rpx;\n}\n\n/*表单内容*/\n.inputView {\n    background-color: white;\n    line-height: 45px;\n}\n\n/*输入框*/\n.nameImage, .keyImage {\n    margin-left: 22px;\n    width: 20px;\n    height: 20px;\n}\n\n.loginLabel {\n    margin: 15px 15px 15px 10px;\n    color: gray;\n    font-size: 15px;\n}\n\n.inputText {\n    float: right;\n    text-align: right;\n    margin-right: 22px;\n    margin-top: 11px;\n    font-size: 15px;\n}\n\n.line {\n    width: 100%;\n    height: 1px;\n    background-color: gainsboro;\n    margin-top: 1px;\n}\n\n/*按钮*/\n.loginBtn {\n    width: 80%;\n    margin-top: 35px;\n}\n\n.goLoginBtn {\n    width: 80%;\n    margin-top: 15px;\n}\n"
  },
  {
    "path": "kk-video-wechat/pages/videoinfo/videoinfo.js",
    "content": "var videoUtil = require('../../utils/videoUtil.js')\n\nconst app = getApp()\n\nPage({\n  data: {\n    cover: \"cover\",\n    videoId: \"\",\n    src: \"\",\n    videoInfo: {},\n\n    userLikeVideo: false,\n\n\n    commentsPage: 1,\n    commentsTotalPage:1,\n    commentsList:[],\n\n\n    placeholder: \"说点什么...\"\n  },\n\n  videoCtx: {},\n\n  onLoad: function (params) {    \n    var me = this;\n    me.videoCtx = wx.createVideoContext(\"myVideo\", me);\n\n    // 获取上一个页面传入的参数\n    var videoInfo = JSON.parse(params.videoInfo);\n\n    var height = videoInfo.videoHeight;\n    var width = videoInfo.videoWidth;\n    var cover = \"cover\";\n    if (width >= height) {\n      cover = \"\";\n    }\n\n    me.setData({\n      videoId: videoInfo.id,\n      src: app.resourceUrl + videoInfo.videoPath,\n      videoInfo: videoInfo,\n      cover: cover\n    });\n\n    var serverUrl = app.serverUrl;\n    var resourceUrl = app.resourceUrl;\n    var user = app.getGlobalUserInfo();\n    var loginUserId = \"\";\n    if (user != null && user != undefined && user != '') {\n      loginUserId = user.id;\n    }\n    wx.request({\n      url: serverUrl + '/user/queryPublisher?loginUserId=' + loginUserId + \"&videoId=\" + videoInfo.id + \"&publishUserId=\" + videoInfo.userId,\n      method: 'POST',\n      success: function(res) {\n\n        var publisher = res.data.data.publisher;\n        var userLikeVideo = res.data.data.userLikeVideo;\n\n        me.setData({\n          serverUrl: resourceUrl,\n          publisher: publisher,\n          userLikeVideo: userLikeVideo\n        });\n      }\n    })\n\n    me.getCommentsList(1);\n  },\n\n  onShow: function () {\n    var me = this;\n    me.videoCtx.play();\n  },\n\n  onHide: function () {\n    var me = this;\n    me.videoCtx.pause();\n  },\n\n  showSearch: function () {\n    wx.navigateTo({\n      url: '../searchVideo/searchVideo',\n    })\n  },\n\n  showPublisher: function () {\n    var me = this;\n\n    var user = app.getGlobalUserInfo();\n\n    var videoInfo = me.data.videoInfo;\n    var realUrl = '../mine/mine#publisherId@' + videoInfo.userId;\n\n    if (user == null || user == undefined || user == '') {\n      wx.navigateTo({\n        url: '../userLogin/login?redirectUrl=' + realUrl,\n      })\n    } else {\n      wx.navigateTo({\n        url: '../mine/mine?publisherId=' + videoInfo.userId,\n      })\n    }\n\n  },\n\n\n  upload: function () {\n    var me = this;\n\n    var user = app.getGlobalUserInfo();\n\n    var videoInfo = JSON.stringify(me.data.videoInfo);\n    var realUrl = '../videoinfo/videoinfo#videoInfo@' + videoInfo;\n\n    if (user == null || user == undefined || user == '') {\n      wx.navigateTo({\n        url: '../userLogin/login?redirectUrl=' + realUrl,\n      })\n    } else {\n      videoUtil.uploadVideo();\n    }\n    \n  },\n\n  showIndex: function () {\n    wx.redirectTo({\n      url: '../index/index',\n    })\n  },\n\n  showMine: function () {\n    var user = app.getGlobalUserInfo();\n\n    if (user == null || user == undefined || user == '') {\n      wx.navigateTo({\n        url: '../userLogin/login',\n      })\n    } else {\n      wx.navigateTo({\n        url: '../mine/mine',\n      })\n    }\n  },\n\n  likeVideoOrNot: function () {\n    var me = this;\n    var videoInfo = me.data.videoInfo;\n    var user = app.getGlobalUserInfo();\n\n    if (user == null || user == undefined || user == '') {\n      wx.navigateTo({\n        url: '../userLogin/login',\n      })\n    } else {\n      \n      var userLikeVideo = me.data.userLikeVideo;\n      var url = '/video/userLike?userId=' + user.id + '&videoId=' + videoInfo.id + '&videoCreaterId=' + videoInfo.userId;\n      if (userLikeVideo) {\n        url = '/video/userUnLike?userId=' + user.id + '&videoId=' + videoInfo.id + '&videoCreaterId=' + videoInfo.userId;\n      }\n\n      var serverUrl = app.serverUrl;\n      wx.showLoading({\n        title: '...',\n      })\n      wx.request({\n        url: serverUrl + url,\n        method: 'POST',\n        header: {\n          'content-type': 'application/json', // 默认值\n          'headerUserId': user.id,\n          'headerUserToken': user.userToken\n        },\n        success:function(res) {\n          wx.hideLoading();\n          me.setData({\n            userLikeVideo: !userLikeVideo\n          });\n        }\n      })\n\n\n    }\n  },\n\n  shareMe: function() {\n    var me = this;\n    var user = app.getGlobalUserInfo();\n\n    wx.showActionSheet({\n      itemList: ['下载到本地', '举报用户', '分享到朋友圈', '分享到QQ空间', '分享到微博'],\n      success: function(res) {\n        if (res.tapIndex == 0) {\n          // 下载\n          wx.showLoading({\n            title: '下载中...',\n          })\n          wx.downloadFile({\n            url: app.resourceUrl + me.data.videoInfo.videoPath,\n            success: function (res) {\n              // 只要服务器有响应数据，就会把响应内容写入文件并进入 success 回调，业务需要自行判断是否下载到了想要的内容\n              if (res.statusCode === 200) {\n                wx.saveVideoToPhotosAlbum({\n                  filePath: res.tempFilePath,\n                  success:function(res) {\n                    wx.hideLoading();\n                  }\n                })\n              }\n            }\n          })\n        } else if (res.tapIndex == 1) {\n          // 举报\n          var videoInfo = JSON.stringify(me.data.videoInfo);\n          var realUrl = '../videoinfo/videoinfo#videoInfo@' + videoInfo;\n\n          if (user == null || user == undefined || user == '') {\n            wx.navigateTo({\n              url: '../userLogin/login?redirectUrl=' + realUrl,\n            })\n          } else {\n            var publishUserId = me.data.videoInfo.userId;\n            var videoId = me.data.videoInfo.id;\n            var currentUserId = user.id;\n            wx.navigateTo({\n              url: '../report/report?videoId=' + videoId + \"&publishUserId=\" + publishUserId\n            })\n          }\n        } else{\n          wx.showToast({\n            title: '官方暂未开放...',\n          })\n        } \n      }\n    })\n  },\n\n  onShareAppMessage: function (res) {\n    \n    var me = this;\n    var videoInfo = me.data.videoInfo;\n\n    return {\n      title: app.applicationName+'精彩内容分享',\n      path: \"pages/videoinfo/videoinfo?videoInfo=\" + JSON.stringify(videoInfo)\n    }\n  },\n\n\n  leaveComment: function() {\n    this.setData({\n      commentFocus: true\n    });\n  },\n\n  replyFocus: function(e) {\n    var fatherCommentId = e.currentTarget.dataset.fathercommentid;\n    var toUserId = e.currentTarget.dataset.touserid;\n    var toNickname = e.currentTarget.dataset.tonickname;\n \n    this.setData({\n      placeholder: \"回复  \" + toNickname,\n      replyFatherCommentId: fatherCommentId,\n      replyToUserId: toUserId,\n      commentFocus: true\n    });\n  },\n\n  saveComment:function(e) {\n    var me = this;\n    var content = e.detail.value;\n\n    // 获取评论回复的fatherCommentId和toUserId\n    var fatherCommentId = e.currentTarget.dataset.replyfathercommentid;\n    var toUserId = e.currentTarget.dataset.replytouserid;\n\n    var user = app.getGlobalUserInfo();\n    var videoInfo = JSON.stringify(me.data.videoInfo);\n    var realUrl = '../videoinfo/videoinfo#videoInfo@' + videoInfo;\n\n    if (user == null || user == undefined || user == '') {\n      wx.navigateTo({\n        url: '../userLogin/login?redirectUrl=' + realUrl,\n      })\n    } else {\n      wx.showLoading({\n        title: '请稍后...',\n      })\n      wx.request({\n        url: app.serverUrl + '/video/saveComment?fatherCommentId=' + fatherCommentId + \"&toUserId=\" + toUserId,\n        method: 'POST',\n        header: {\n          'content-type': 'application/json', // 默认值\n          'headerUserId': user.id,\n          'headerUserToken': user.userToken\n        },\n        data: {\n          fromUserId: user.id,\n          videoId: me.data.videoInfo.id,\n          comment: content\n        },\n        success: function(res) {\n          wx.hideLoading();\n\n          me.setData({\n            contentValue: \"\",\n            commentsList: []\n          });\n\n          me.getCommentsList(1);\n        }\n      })\n    }\n  },\n\n// commentsPage: 1,\n//   commentsTotalPage: 1,\n//   commentsList: []\n\n    getCommentsList: function(page) {\n      var me = this;\n\n      var videoId = me.data.videoInfo.id;\n\n      wx.request({\n        url: app.serverUrl + '/video/getVideoComments?videoId=' + videoId + \"&page=\" + page + \"&pageSize=5\",\n        method: \"POST\",\n        success: function(res) {\n\n          var commentsList = res.data.data.rows;\n          var newCommentsList = me.data.commentsList;\n\n          me.setData({\n            commentsList: newCommentsList.concat(commentsList),\n            commentsPage: page,\n            commentsTotalPage: res.data.data.total\n          });\n        }\n      })\n    },\n\n    onReachBottom: function() {\n      var me = this;\n      var currentPage = me.data.commentsPage;\n      var totalPage = me.data.commentsTotalPage;\n      if (currentPage === totalPage) {\n        return;\n      }\n      var page = currentPage + 1;\n      me.getCommentsList(page);\n    }\n})"
  },
  {
    "path": "kk-video-wechat/pages/videoinfo/videoinfo.json",
    "content": "{\n}"
  },
  {
    "path": "kk-video-wechat/pages/videoinfo/videoinfo.wxml",
    "content": "<view style='width:100%;height:100%;'>\n\n<video  id=\"myVideo\" src=\"{{src}}\"\nmuted=\"{{false}}\"\ncontrols=\"{{false}}\"\nautoplay=\"{{true}}\"\nloop=\"{{true}}\"\nenable-progress-gesture=\"{{false}}\"\nstyle='width:100%;height:100%;'\nobjectFit='{{cover}}'\n>\n\n<cover-view class='container'>\n            <!-- 上传视频 -->\n\n            <cover-image src='../resource/images/camera.png' style='width:50rpx;height:50rpx;' bindtap='upload'></cover-image>\n\n\n            <!-- 搜索按钮 -->\n            <cover-image src='../resource/images/search.png' style='width:45rpx;height:45rpx;' bindtap='showSearch'></cover-image>\n\n        </cover-view>\n\n\n<cover-view class='container-me'>\n            <!-- 头像 -->\n            <cover-image class=\"face\" src='{{serverUrl}}{{publisher.faceImage}}' bindtap='showPublisher'></cover-image>\n\n\n            <!-- 喜欢收藏按钮 -->\n            <block wx:if=\"{{userLikeVideo}}\">\n                <cover-image class=\"size-me\" src='../resource/images/like.png' style='margin-top:30rpx;' bindtap='likeVideoOrNot'></cover-image>\n            </block>\n            <block wx:else>\n                <cover-image class=\"size-me\" src='../resource/images/unlike.png' style='margin-top:30rpx;' bindtap='likeVideoOrNot'></cover-image>\n            </block>\n\n\n            <!-- 评论按钮 -->\n            <cover-image class=\"size-me\" src='../resource/images/comments.png' style='margin-top:30rpx;' bindtap='leaveComment'></cover-image>\n\n            <!-- 分享按钮 -->\n            <cover-image class=\"size-me\" src='../resource/images/share.png' style='margin-top:30rpx;' bindtap='shareMe'></cover-image>\n\n        </cover-view>\n\n      <cover-view class='container-words'>\n\n            <cover-view>@{{publisher.nickname}}</cover-view>\n\n            <cover-view class='video-desc'>{{videoInfo.videoDesc}}</cover-view>\n\n\n\n        </cover-view>\n\n        <cover-view class='container-bottom'>\n            <!-- 首页按钮 -->\n            <cover-image class='' src='../resource/images/index.png' class=\"size-bottom\" bindtap='showIndex'></cover-image>\n\n          \n\n            <!-- 我的按钮 -->\n            <cover-image class='' src='../resource/images/mine.png' class=\"size-bottom\" bindtap='showMine'></cover-image>\n\n        </cover-view>\n\n</video>\n\n</view>\n\n\n<view>\n\n<view class=\"saySthView\">\n<input name=\"commentContent\" class=\"saySth\" placeholder=\"{{placeholder}}\" confirm-type=\"send\" bindconfirm=\"saveComment\" focus='{{commentFocus}}' value='{{contentValue}}'\ndata-replyFatherCommentId='{{replyFatherCommentId}}'\ndata-replyToUserId='{{replyToUserId}}'\n/>\n</view>\n\n<block wx:for=\"{{commentsList}}\">\n  <view class='comments-all' bindtap='replyFocus' \n  data-fatherCommentId='{{item.id}}'  \n  data-toUserId='{{item.fromUserId}}' \n  data-toNickname='{{item.nickname}}' \n  >\n      <view class='container-comments'>\n          <image class=\"face-comments\" src='{{serverUrl}}{{item.faceImage}}' ></image>\n          <view class='nickname-comments'>\n              <label class='nickname-lbl'>@{{item.nickname}}</label>\n              于 \n              <label class='date-lbl'>{{item.timeAgoStr}}</label>\n              <!-- 留言： -->\n              <block wx:if=\"{{item.toNickname != null}}\">\n                回复\n                <label class='nickname-lbl'>@{{item.toNickname}}</label>\n              </block>\n              <block wx:else>\n                留言：\n              </block>\n          </view>\n      </view>\n      <view class='comments-content'>{{item.comment}}</view>\n  </view>\n</block> \n\n</view>"
  },
  {
    "path": "kk-video-wechat/pages/videoinfo/videoinfo.wxss",
    "content": "page {\n    height: 100%;\n    background-color: #141414;\n}\n\n.container {\n    display: flex;\n    margin-top: 20rpx;\n    margin-left: 50rpx;\n    margin-right: 50rpx;\n    justify-content: space-between;\n}\n\n.container-me {\n    margin-top: 360rpx;\n    margin-left: 50rpx;\n    width: 80rpx;\n}\n\n.container-words {\n    /* display: flex;\n    flex-direction: column; */\n    margin-top: 60rpx;\n    margin-left: 50rpx;\n    width: 100%;\n    color: white;\n    font-size: 14px;\n}\n\n.inputText {\n    background-color: gainsboro;\n    height: 35px;\n}\n\n.video-desc {\n    width: 600rpx;\n    height: 100rpx;\n    white-space: pre-wrap;\n}\n\n.container-bottom {\n    /* bottom: 10px;  */\n    display: flex;\n    margin-top: 60rpx;\n    margin-left: 50rpx;\n    margin-right: 50rpx;\n    /* margin-bottom: 10rpx; */\n    justify-content: space-between;\n    /* position: fixed;  */\n}\n\n.size-me {\n    width: 70rpx;\n    height: 70rpx;\n}\n\n.size-me-bgm {\n    width: 40rpx;\n    height: 40rpx;\n}\n\n.bgm-style {\n    display: flex;\n    flex-direction: row;\n}\n\n.size-bottom {\n    width: 60rpx;\n    height: 60rpx;\n}\n\n.face2 {\n    width: 75rpx;\n    height: 75rpx;\n    border: 0 solid #f00;\n    border-radius: 100rpx;\n    background-color: #f10b2e;\n}\n\n.face {\n    width: 75rpx;\n    height: 75rpx;\n    /* margin: 20rpx; */\n    border-radius: 50%;\n}\n\n.icoBtn {\n    flex: 1;\n    width: 80rpx;\n    height: 100%;\n}\n\n\n.comments-scoll {\n    height: 1200rpx;\n}\n\n\n.comments-all {\n    /* margin-top: 10px; */\n      margin-bottom: 10px;  \n      /* border-bottom: solid 1px gray;   */\n    background-color: #141414;\n    color: #e8e8e8;\n}\n\n.face-comments {\n    width: 60rpx;\n    height: 60rpx;\n    border-radius: 50%;\n    margin-left: 5px;\n}\n\n.container-comments{\n    display: flex;\n    \n    /* margin-top: 20rpx;\n    margin-left: 50rpx;\n    margin-right: 50rpx;\n    justify-content: space-between; */\n    \n}\n\n\n.nickname-comments {\n    margin-left: 10px;\n}\n\n.nickname-lbl{\n    color: #a1a1a1;\n}\n\n.date-lbl{\n    color: #a1a1a1;\n}\n\n.comments-content{\n    margin-left: 5px;\n    margin-right: 5px;\n    /* margin-bottom: 10px; */\n    border-bottom: solid 1px #232323;\n    background-color: #141414;\n}\n\n.saySthView {\n    padding: 10px;\n    background-color: #141414;\n    line-height: 45px;\n    border-bottom: solid 1px #232323;\n    color: white;\n}\n\n.saySth {\n    margin-top: 10px;\n    margin-left: 10px;\n    font-size: 18px;\n}"
  },
  {
    "path": "kk-video-wechat/pages/videotest/videotest.js",
    "content": "const app = getApp()\n\nPage({\n  data: {\n    danmuList: [\n      {\n        text: '第 1s 出现的弹幕',\n        color: '#ff0000',\n        time: 1\n      },\n      {\n        text: '第 3s 出现的弹幕',\n        color: '#ff00ff',\n        time: 3\n      }]\n      \n  },\n\n  bindplay:function() {\n  },\n  bindpause: function () {\n  }\n  \n\n})"
  },
  {
    "path": "kk-video-wechat/pages/videotest/videotest.json",
    "content": "{\n}"
  },
  {
    "path": "kk-video-wechat/pages/videotest/videotest.wxml",
    "content": "<video src=\"http://192.168.1.2:8081/180425CFA4RB6T0H/video/wxa2049f5aead89372.o6zAJs5sm5bPFcTzKXp_5wXsWuso.nPTyoc9tyI3kabf2c7ceeb9b446b60b47b1705668857.mp4\"\nmuted=\"{{true}}\"\ninitial-time=\"1\"\nduration=\"8\"\ncontrols=\"{{true}}\"\ndanmu-list=\"{{danmuList}}\"\nenable-danmu=\"{{true}}\"\ndanmu-btn=\"{{true}}\"\nautoplay=\"{{false}}\"\nloop=\"{{true}}\"\npage-gesture=\"{{true}}\"\ndirection=\"-90\"\nshow-progress=\"{{true}}\"\nshow-fullscreen-btn=\"{{true}}\"\nshow-play-btn=\"{{true}}\"\nshow-center-play-btn=\"{{true}}\"\nenable-progress-gesture=\"{{true}}\"\nposter=\"http://192.168.1.2:8081/180425CFA4RB6T0H/face/wxa2049f5aead89372.o6zAJs5sm5bPFcTzKXp_5wXsWuso.W0eLNdT6MIvD3ba01f74ba779caa63d038c3c8200b4a.jpg\"\nbindplay=\"bindplay\"\nbindpause=\"bindpause\"\n></video>"
  },
  {
    "path": "kk-video-wechat/pages/videotest/videotest.wxss",
    "content": ""
  },
  {
    "path": "kk-video-wechat/project.config.json",
    "content": "{\n\t\"description\": \"项目配置文件。\",\n\t\"packOptions\": {\n\t\t\"ignore\": []\n\t},\n\t\"setting\": {\n\t\t\"urlCheck\": true,\n\t\t\"es6\": true,\n\t\t\"postcss\": true,\n\t\t\"minified\": true,\n\t\t\"newFeature\": true\n\t},\n\t\"compileType\": \"miniprogram\",\n\t\"libVersion\": \"2.1.1\",\n\t\"appid\": \"wxa2049f5aead89372\",\n\t\"projectname\": \"imooc-video-dev\",\n\t\"isGameTourist\": false,\n\t\"condition\": {\n\t\t\"search\": {\n\t\t\t\"current\": -1,\n\t\t\t\"list\": []\n\t\t},\n\t\t\"conversation\": {\n\t\t\t\"current\": -1,\n\t\t\t\"list\": []\n\t\t},\n\t\t\"game\": {\n\t\t\t\"currentL\": -1,\n\t\t\t\"list\": []\n\t\t},\n\t\t\"miniprogram\": {\n\t\t\t\"current\": -1,\n\t\t\t\"list\": []\n\t\t}\n\t}\n}"
  },
  {
    "path": "kk-video-wechat/utils/videoUtil.js",
    "content": "\nfunction uploadVideo() {\n  var me = this;\n\n  wx.chooseVideo({\n    sourceType: ['album','camera'],\n    success: function (res) {\n\n      var duration = res.duration;\n      var tmpHeight = res.height;\n      var tmpWidth = res.width;\n      var tmpVideoUrl = res.tempFilePath;\n      var tmpCoverUrl = res.thumbTempFilePath;\n\n      if (duration > 11) {\n        wx.showToast({\n          title: '视频长度不能超过10秒...',\n          icon: \"none\",\n          duration: 2500\n        })\n      } else if (duration < 1) {\n        wx.showToast({\n          title: '视频长度太短，请上传超过1秒的视频...',\n          icon: \"none\",\n          duration: 2500\n        })\n      } else {\n        // 打开选择bgm的页面\n        wx.navigateTo({\n          url: '../chooseBgm/chooseBgm?duration=' + duration\n          + \"&tmpHeight=\" + tmpHeight\n          + \"&tmpWidth=\" + tmpWidth\n          + \"&tmpVideoUrl=\" + tmpVideoUrl\n          + \"&tmpCoverUrl=\" + tmpCoverUrl\n          ,\n        })\n      }\n\n    }\n  })\n\n}\n\nmodule.exports = {\n  uploadVideo: uploadVideo\n}\n"
  },
  {
    "path": "kk-video-wechat/wxSearchView/wxSearchView.js",
    "content": "/***\n * // 定义数据格式\n * \"wxSearchData\":{\n *  configconfig:{\n *    style: \"wxSearchNormal\"\n *  },\n *  view:{\n *    hidden: true,\n *    searchbarHeght: 20\n *  }\n *  hotKeys:[],//自定义热门搜索\n *  his:[]//历史搜索关键字\n *  value\n * }\n */\n\n// 提示集合\nvar __tipKeys = [];\n// 搜索回调函数 \nvar __searchFunction = null;\n// 返回函数 \nvar __goBackFunction = null;\n// 应用变量\nvar __that = null;\n\n// 初始化函数\nfunction init(that, hotKeys, tipKeys, searchFunction, goBackFunction) {\n\n  __that = that;\n  __tipKeys = tipKeys;\n  __searchFunction = searchFunction;\n  __goBackFunction = goBackFunction;\n\n  var temData = {};\n  var barHeight = 43;\n  var view = {\n    barHeight: barHeight\n  }\n  temData.hotKeys = hotKeys;\n\n  wx.getSystemInfo({\n    success: function (res) {\n      var wHeight = res.windowHeight;\n      view.seachHeight = wHeight - barHeight;\n      temData.view = view;\n      __that.setData({\n        wxSearchData: temData\n      });\n    }\n  });\n\n  getHisKeys(__that);\n}\n\n// 搜索框输入时候操作\nfunction wxSearchInput(e) {\n  var inputValue = e.detail.value;\n  // 页面数据\n  var temData = __that.data.wxSearchData;\n  // 寻找提示值 \n  var tipKeys = [];\n  if (inputValue && inputValue.length > 0) {\n    for (var i = 0; i < __tipKeys.length; i++) {\n      var mindKey = __tipKeys[i];\n      // 包含字符串\n      if (mindKey.indexOf(inputValue) != -1) {\n        tipKeys.push(mindKey);\n      }\n    }\n  }\n  // 更新数据\n  temData.value = inputValue;\n  temData.tipKeys = tipKeys;\n  // 更新视图\n  __that.setData({\n    wxSearchData: temData\n  });\n}\n\n// 清空输入\nfunction wxSearchClear() {\n  // 页面数据\n  var temData = __that.data.wxSearchData;\n  // 更新数据\n  temData.value = \"\";\n  temData.tipKeys = [];\n  // 更新视图\n  __that.setData({\n    wxSearchData: temData\n  });\n}\n\n// 点击提示或者关键字、历史记录时的操作\nfunction wxSearchKeyTap(e) {\n  search(e.target.dataset.key);\n}\n\n// 确任或者回车\nfunction wxSearchConfirm(e) {\n  var key = e.target.dataset.key;\n  if(key=='back'){\n    __goBackFunction();\n  }else{\n    search(__that.data.wxSearchData.value);\n  }\n}\n\nfunction search(inputValue) {\n  if (inputValue && inputValue.length > 0) {\n    // 添加历史记录\n    wxSearchAddHisKey(inputValue);\n    // 更新\n    var temData = __that.data.wxSearchData;\n    temData.value = inputValue;\n    __that.setData({\n      wxSearchData: temData\n    });\n    // 回调搜索\n    __searchFunction(inputValue);\n  }\n}\n\n// 读取缓存\nfunction getHisKeys() {\n  var value = [];\n  try {\n    value = wx.getStorageSync('wxSearchHisKeys')\n    if (value) {\n      // Do something with return value\n      var temData = __that.data.wxSearchData;\n      temData.his = value;\n      __that.setData({\n        wxSearchData: temData\n      });\n    }\n  } catch (e) {\n    // Do something when catch error\n  }\n}\n\n// 添加缓存\nfunction wxSearchAddHisKey(inputValue) {\n  if (!inputValue || inputValue.length == 0) {\n    return;\n  }\n  var value = wx.getStorageSync('wxSearchHisKeys');\n  if (value) {\n    if (value.indexOf(inputValue) < 0) {\n      value.unshift(inputValue);\n    }\n    wx.setStorage({\n      key: \"wxSearchHisKeys\",\n      data: value,\n      success: function () {\n        getHisKeys(__that);\n      }\n    })\n  } else {\n    value = [];\n    value.push(inputValue);\n    wx.setStorage({\n      key: \"wxSearchHisKeys\",\n      data: value,\n      success: function () {\n        getHisKeys(__that);\n      }\n    })\n  }\n}\n\n// 删除缓存\nfunction wxSearchDeleteAll() {\n  wx.removeStorage({\n    key: 'wxSearchHisKeys',\n    success: function (res) {\n      var value = [];\n      var temData = __that.data.wxSearchData;\n      temData.his = value;\n      __that.setData({\n        wxSearchData: temData\n      });\n    }\n  })\n}\n\n// 导出接口\nmodule.exports = {\n  init: init, //初始化函数\n  wxSearchInput: wxSearchInput,// 输入变化时的操作\n  wxSearchKeyTap: wxSearchKeyTap, // 点击提示或者关键字、历史记录时的操作\n  wxSearchDeleteAll: wxSearchDeleteAll, // 删除所有的历史记录\n  wxSearchConfirm: wxSearchConfirm, // 搜索函数\n  wxSearchClear: wxSearchClear,  // 清空函数\n}"
  },
  {
    "path": "kk-video-wechat/wxSearchView/wxSearchView.wxml",
    "content": "<view class=\"weui-search-bar\">\n   <view class=\"weui-search-bar__form\">\n    <view class=\"weui-search-bar__box\">\n      <icon class=\"weui-icon-search_in-box\" type=\"search\" size=\"14\"></icon>\n      <input type=\"text\" class=\"weui-search-bar__input\" placeholder=\"请输入查询内容\" value=\"{{wxSearchData.value}}\" bindinput=\"wxSearchInput\" bindconfirm=\"wxSearchConfirm\" />\n      <view class=\"weui-icon-clear\" wx:if=\"{{wxSearchData.value.length > 0}}\" bindtap=\"wxSearchClear\">\n        <icon type=\"clear\" size=\"14\"></icon>\n      </view>\n    </view>\n  </view>\n    <view class=\"weui-search-bar__cancel-btn\" bindtap=\"wxSearchConfirm\">\n         <text wx:if=\"{{wxSearchData.value.length>0}}\" data-key='search'>搜索</text>\n         <text wx:else data-key='back'>主页</text>\n     </view>\n</view>\n\n<view class=\"wxSearch\" style=\"'block';height:{{wxSearchData.view.seachHeight}}px;top:{{wxSearchData.view.barHeight}}px;\">\n\n  <view class=\"wxSearchInner\">\n    <!-- 搜索提示部分 -->\n    <view class=\"wxSearchMindKey\">\n      <view class=\"wxSearchMindKeyList\">\n        <block wx:for=\"{{wxSearchData.tipKeys}}\">\n          <view class=\"wxSearchMindKeyItem\" bindtap=\"wxSearchKeyTap\" data-key=\"{{item}}\">{{item}}</view>\n        </block>\n      </view>\n    </view>\n\n    <view wx:if=\"{{wxSearchData.his[0]}}\" class=\"wxSearchHistory\" style=\"display:{{wxSearchData.value.length>0 ? 'none':'block'}}\">\n      <view class=\"wxSearchHistoryItem\">\n        <text class=\"wxSearchHistoryItemTitle\">搜索记录</text>\n        <!--text class=\"wxSearchHistoryItemDel\" bindtap=\"wxSearchDeleteAll\">删除</text-->\n        <icon type=\"clear\" bindtap=\"wxSearchDeleteAll\" size=\"18\" />\n      </view>\n      <view class=\"wxSearchKeyList\">\n        <block wx:for=\"{{wxSearchData.his}}\">\n          <view class=\"wxSearchKeyItem\" bindtap=\"wxSearchKeyTap\" data-key=\"{{item}}\">{{item}}</view>\n        </block>\n      </view>\n    </view>\n\n    <view class=\"wxSearchKey\" style=\"display:{{wxSearchData.value.length>0 ? 'none':'block'}}\">\n      <text wx:if=\"{{wxSearchData.hotKeys[0]}}\" class=\"wxSearchTitle\">搜索热点</text>\n      <view class=\"wxSearchKeyList\">\n        <block wx:for=\"{{wxSearchData.hotKeys}}\">\n          <view class=\"wxSearchKeyItem\" bindtap=\"wxSearchKeyTap\" data-key=\"{{item}}\">{{item}}</view>\n        </block>\n      </view>\n    </view>\n  </view>\n</view>"
  },
  {
    "path": "kk-video-wechat/wxSearchView/wxSearchView.wxss",
    "content": "/** 整个区域 */\n.wxSearch{\n  position: absolute;\n  top: 43px;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border-top: 1px #eee solid;\n  background-color: rgba(200, 200, 200, 0.1);\n  z-index: 9999;\n}\n\n/** 搜索框下面的提示区域 */\n.wxSearchInner{\n  background-color: #fff;\n}\n\n/** 搜索热点标题 */\n.wxSearchTitle{\n  display: block;\n  padding: 10px 5px 5px 10px;\n  font-size: 13px;\n  text-align: left;\n}\n\n/** 提示样式 */\n.wxSearchMindKeyItem{\n  padding: 10px 5px 10px 15px;\n  margin-left: 10px;\n  border-bottom: 1px solid #eee;\n  display: flex;\n  font-size: 13px;\n}\n\n/** 标签样式 */\n.wxSearchKeyList{\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  border-bottom: 1px solid #eee;\n}\n\n/** 标签样式 */\n.wxSearchKeyItem{\n  flex: 0 0 18%;\n  font-size: 13px;\n  text-align: center;\n  border: 1px solid #eee;\n  margin: 5px;\n  padding: 4px 5px 4px 5px;\n  border-radius: 0px;\n  background-color: rgba(200, 200, 200, 0.1);\n}\n\n/** 搜索记录标题栏 */\n.wxSearchHistoryItem{\n  padding-left: 10px;\n  padding-top: 10px;\n  padding-right: 5px;\n  padding-bottom: 5px;\n  display: flex;\n}\n\n/** 搜索记录标题 */\n.wxSearchHistoryItemTitle{\n  flex: 8;\n  font-size: 13px;\n}\n\n/** 搜索记录删除按钮 */\n.wxSearchHistoryItemDel{\n  flex: 1;\n  font-size: 13px;\n  text-align: center;\n  padding-top:2px;\n  padding-bottom: 2px;\n  border: 1px solid #eee;\n  border-radius: 2px;\n}\n\n/** ---------------------- 以下是搜索框的 we-ui 样式--------------------------------*/\n\n/*!\n * WeUI v1.1.1 (https://github.com/weui/weui-wxss)\n * Copyright 2017 Tencent, Inc.\n * Licensed under the MIT license\n */\n\n.weui-search-bar {\n  position: relative;\n  padding: 8px 10px;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: flex;\n  box-sizing: border-box;\n  background-color: #efeff4;\n  border-top: 1rpx solid #d7d6dc;\n  border-bottom: 1rpx solid #d7d6dc;\n}\n\n.weui-icon-search {\n  margin-right: 8px;\n  font-size: inherit;\n}\n\n.weui-icon-search_in-box {\n  position: absolute;\n  left: 10px;\n  top: 7px;\n}\n\n.weui-search-bar__text {\n  display: inline-block;\n  font-size: 14px;\n  vertical-align: middle;\n}\n\n.weui-search-bar__form {\n  position: relative;\n  -webkit-box-flex: 1;\n  -webkit-flex: auto;\n  flex: auto;\n  border-radius: 5px;\n  background: #fff;\n  border: 1rpx solid #e6e6ea;\n}\n\n.weui-search-bar__box {\n  position: relative;\n  padding-left: 30px;\n  padding-right: 30px;\n  width: 100%;\n  box-sizing: border-box;\n  z-index: 1;\n}\n\n.weui-search-bar__input {\n  height: 28px;\n  line-height: 28px;\n  font-size: 14px;\n}\n\n.weui-icon-clear {\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 7px 8px;\n  font-size: 0;\n}\n\n.weui-search-bar__label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  border-radius: 3px;\n  text-align: center;\n  color: #9b9b9b;\n  background: #fff;\n  line-height: 28px;\n}\n\n.weui-search-bar__cancel-btn {\n  margin-left: 10px;\n  line-height: 28px;\n  color: #09bb07;\n  white-space: nowrap;\n}\n"
  },
  {
    "path": "kkvideo.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"JAVA_MODULE\" version=\"4\" />"
  },
  {
    "path": "pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n\n\n    <modelVersion>4.0.0</modelVersion>\n    <packaging>pom</packaging>\n    <groupId>com.jimisun</groupId>\n    <artifactId>jimisun.kkvideo</artifactId>\n    <version>1.0-SNAPSHOT</version>\n\n\n    <modules>\n        <module>kk-video-common</module>\n        <module>kk-video-pojo</module>\n        <module>kk-video-dao</module>\n        <module>kk-video-service</module>\n        <module>kk-video-api</module>\n    </modules>\n\n\n\n    <name>kk短视频</name>\n\n    <description>\n        maven\n        springmvc\n        springboot\n        mybatis\n        mybatis-pagehelper\n        redis\n        ffmpeg\n        druid\n        mariadb/mysql\n        zookeeper音频操作\n    </description>\n\n    <parent>\n        <groupId>org.springframework.boot</groupId>\n        <artifactId>spring-boot-starter-parent</artifactId>\n        <version>1.5.12.RELEASE</version>\n        <relativePath/>\n    </parent>\n\n    <properties>\n        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\n        <java.version>1.8</java.version>\n    </properties>\n    \n\n\n</project>"
  }
]